diff --git a/.authorspellings b/.authorspellings
new file mode 100644
--- /dev/null
+++ b/.authorspellings
@@ -0,0 +1,22 @@
+-- Use darcs show authors to see the number of patches per person
+
+Aarne Ranta		<aarne@chalmers.se>,		aarne@cs.chalmers.se, aarne
+Björn Bringert		<bjorn@bringert.net>,		bringert@cs.chalmers.se, bringert
+Krasimir Angelov	<krasimir@chalmers.se>,		kr.angelov@chalmers.se,kr.angelov@gmail.com,kr_angelov@gmail.com
+Peter Ljunglöf		<peb@ling.gu.se>,		peb,peb@cs.chalmers.se
+Thomas Hallgren		<hallgren@chalmers.se>,		hallgren@altocumulus.org
+Janna Khegai		<janna@cs.chalmer.se>,		janna,janna@cs.chalmers.se
+Jordi Saludes 		<jordi.saludes@upc.edu>
+Ramona Enache		<ramona.enache@chalmers.se>,	ra.monique@gmail.com
+Hans-Joachim Daniels	<hdaniels>
+Jean-Philippe Bernardy	<bernardy@chalmers.se>
+Kevin Kofler		<kevin.kofler@chello.at>
+Harald Hammarström	<harald2>
+Olga Caprotti		<caprotti@chalmers.se>,		olga.caprotti@gmail.com
+Adam Slaski		<adam.slaski@gmail.com>,	Adam Slaski <adam.slaski@gmail.com>
+Moisés Salvador Meza Moreno<meza@student.chalmers.se>,	'Moises Meza <meza@student.chalmers.se>'
+Ali El Dada		<eldada@student.chalmers.se>,	'ali.eldada@gmail.com'
+Markus Forsberg		<markus>
+Server Cimen		<e1560697@ceng.metu.edu.tr>
+Grégoire Détrez		<gdetrez@crans.org>
+Ketil Malde <ketil@ii.uib.no>
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,3 +1,38 @@
+Grammatical Framework is a software package consisting of several different
+components. The common wish of the GF development team is to provide software
+that is easy to use for everyone with no restrictions. Still in some cases
+we want to reserve some rights, in other cases the software that we provide
+is derived from someone else's work and we have to respect the rights for the
+other. For this reason the different components have different licenses.
+
+In summary:
+
+  - the GF compiler in the folder src/compiler and the PGF Web service in src/server
+are under the GNU GENERAL PUBLIC LICENSE. 
+
+  - the GF runtime in src/runtime is under dual GNU LESSER GENERAL PUBLIC LICENSE
+and BSD LICENSE
+
+  - the resource grammar library in lib/src is under GNU LESSER GENERAL PUBLIC LICENSE.
+However the user have the right to choose any license for any application grammar
+derived from the resource grammar by using the grammar API.
+
+  - the resource grammar library also includes large coverage lexicons for some languages.
+Since these lexicons are derived from external sources they might be under different licenses.
+Look at the source file for every lexicon for details. The lexicons that we currently have
+are:
+
+       lib/src/bulgarian/    DictBul.gf DictBulAbs.gf    for Bulgarian
+       lib/src/english/      DictEng.gf DictEngAbs.gf    for English
+       lib/src/turkish/      DictTur.gf DictTurAbs.gf    for Turkish
+       lib/src/swedish/      DictSwe.gf DictSweAbs.gf    for Swedish
+
+The rest of this document contains copies of the GPL, LGPL and BSD licenses
+which are applicable to the different components of Grammatical Framework
+as it is described above.
+
+
+
 		    GNU GENERAL PUBLIC LICENSE
 		       Version 2, June 1991
 
@@ -55,7 +90,7 @@
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
+
 		    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
@@ -110,7 +145,7 @@
     License.  (Exception: if the Program itself is interactive but
     does not normally print such an announcement, your work based on
     the Program is not required to print an announcement.)
-
+
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
 and can be reasonably considered independent and separate works in
@@ -168,7 +203,7 @@
 access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
-
+
   4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +260,7 @@
 
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
-
+
   8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
@@ -278,7 +313,7 @@
 POSSIBILITY OF SUCH DAMAGES.
 
 		     END OF TERMS AND CONDITIONS
-
+
 	    How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
@@ -338,3 +373,200 @@
 consider it more useful to permit linking proprietary applications with the
 library.  If this is what you want to do, use the GNU Library General
 Public License instead of this License.
+
+
+
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+
+
+		    BSD LICENSE
+
+Copyright (c) 1998, Grammatical Framework
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of the <organization> nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
 
 all: build
 
-dist/setup-config: GF.cabal
+dist/setup-config: gf.cabal
 	chmod u+x lib/src/mkPresent
 	chmod u+x lib/src/mkMinimal
 	runghc Setup.hs configure
@@ -25,3 +25,5 @@
 	runghc Setup.hs build rgl-none
 	strip dist/build/gf/gf
 
+html::
+	bash bin/update_html
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -8,6 +8,7 @@
 import Distribution.PackageDescription hiding (Flag)
 import Control.Monad
 import Data.Maybe
+import Data.List(isPrefixOf)
 import System.IO
 import System.Cmd
 import System.FilePath
@@ -31,17 +32,15 @@
 -- Commands for building the Resource Grammar Library
 --------------------------------------------------------
 
-data Mode
-  = AllTenses
-  | Present
-  | Minimal
-  deriving Show
+data Mode = AllTenses | Present | Minimal deriving Show
+all_modes = ["minimal","present","alltenses"]
+default_modes = [Present,AllTenses]
 
 data RGLCommand
   = RGLCommand
       { cmdName   :: String
       , cmdIsDef  :: Bool
-      , cmdAction :: Mode -> [String] -> PackageDescription -> LocalBuildInfo -> IO ()
+      , cmdAction :: [Mode] -> [String] -> PackageDescription -> LocalBuildInfo -> IO ()
       }
 
 rglCommands =
@@ -59,12 +58,17 @@
        mapM_ (gfc mode pkg lbi . compat) (optl langsCompat args)
   , RGLCommand "api"     True  $ \mode args pkg lbi -> do
        mapM_ (gfc mode pkg lbi . try) (optl langsAPI args)
-       mapM_ (gfc mode pkg lbi . symbolic) (optl langsAPI args)
-  , RGLCommand "pgf"     False $ \mode args pkg lbi -> do
-       let dir = getRGLBuildDir lbi mode
-       createDirectoryIfMissing True dir
-       sequence_ [run_gfc pkg lbi ["-s","-make","-name=Lang"++la,dir ++ "/Lang" ++ la ++ ".gfo"] | (_,la) <- optl langsPGF args]
-       run_gfc pkg lbi (["-s","-make","-name=Lang"]++["Lang" ++ la ++ ".pgf" | (_,la) <- optl langsPGF args])
+       mapM_ (gfc mode pkg lbi . symbolic) (optl langsSymbolic args)
+  , RGLCommand "pgf"     False $ \modes args pkg lbi ->
+     sequence_ [
+       do let dir = getRGLBuildDir lbi mode
+          createDirectoryIfMissing True dir
+          sequence_ [run_gfc pkg lbi ["-s","-make","-name=Lang"++la,
+                                       dir ++ "/Lang" ++ la ++ ".gfo"] 
+                      | (_,la) <- optl langsPGF args]
+          run_gfc pkg lbi (["-s","-make","-name=Lang"]++
+                           ["Lang" ++ la ++ ".pgf"|(_,la)<-optl langsPGF args])
+       | mode <- modes]
   , RGLCommand "demo"    False $ \mode args pkg lbi -> do
        let ls = optl langsDemo args
        gf (demos "Demo" ls) ["demo/Demo" ++ la ++ ".gf" | (_,la) <- ls] pkg lbi
@@ -75,38 +79,37 @@
        return ()
   ]
   where
-    optl ls args = fromMaybe ls $ getOptLangs args
+    optl ls args = getOptLangs ls args
 
 --------------------------------------------------------
 
 checkRGLArgs args flags = do
-  let args' = filter (\arg -> not (arg == "present" ||
-                                   arg == "minimal" ||
-                                   take (length rgl_prefix) arg == rgl_prefix ||
-                                   take (length langs_prefix) arg == langs_prefix)) args
+  let args' = filter (\arg -> not (arg `elem` all_modes ||
+                                   rgl_prefix `isPrefixOf` arg ||
+                                   langs_prefix `isPrefixOf` arg)) args
   if null args'
     then return emptyHookedBuildInfo
     else die $ "Unrecognised flags: " ++ intercalate ", " args'
 
 buildRGL args flags pkg lbi = do
   let cmds = getRGLCommands args
-  let mode = getOptMode args
-  mapM_ (\cmd -> cmdAction cmd mode args pkg lbi) cmds
+  let modes = getOptMode args
+  mapM_ (\cmd -> cmdAction cmd modes args pkg lbi) cmds
 
 installRGL args flags pkg lbi = do
-  let mode = getOptMode args
+  let modes = getOptMode args
   let inst_gf_lib_dir = datadir (absoluteInstallDirs pkg lbi NoCopyDest) </> "lib"
   copyAll "prelude"   (rgl_dst_dir lbi </> "prelude") (inst_gf_lib_dir </> "prelude")
-  copyAll (show mode) (getRGLBuildDir lbi mode) (inst_gf_lib_dir </> getRGLBuildSubDir lbi mode)
+  sequence_ [copyAll (show mode) (getRGLBuildDir lbi mode) (inst_gf_lib_dir </> getRGLBuildSubDir lbi mode)|mode<-modes]
 
 copyRGL args flags pkg lbi = do
-  let mode = getOptMode args
+  let modes = getOptMode args
       dest = case copyDest flags of
                NoFlag -> NoCopyDest
                Flag d -> d
   let inst_gf_lib_dir = datadir (absoluteInstallDirs pkg lbi dest) </> "lib"
   copyAll "prelude"   (rgl_dst_dir lbi </> "prelude") (inst_gf_lib_dir </> "prelude")
-  copyAll (show mode) (getRGLBuildDir lbi mode) (inst_gf_lib_dir </> getRGLBuildSubDir lbi mode)
+  sequence_ [copyAll (show mode) (getRGLBuildDir lbi mode) (inst_gf_lib_dir </> getRGLBuildSubDir lbi mode)|mode<-modes]
 
 copyAll s from to = do
   putStrLn $ "Installing [" ++ s ++ "] " ++ to
@@ -176,10 +179,12 @@
 -- don't support all flags needed; they are used in tests
  
 langsCoding = [
+  (("amharic",  "Amh"),""),
   (("arabic",   "Ara"),""),
   (("bulgarian","Bul"),""),
   (("catalan",  "Cat"),""),
   (("danish",   "Dan"),""),
+  (("dutch",    "Dut"),""),
   (("english",  "Eng"),""),
   (("finnish",  "Fin"),""),
   (("french",   "Fre"),""),
@@ -195,17 +200,25 @@
   (("spanish",  "Spa"),""),
   (("swedish",  "Swe"),""), 
   (("thai",     "Tha"),"to_thai"),
-  (("turkish",  "Tur"),"")
+  (("turkish",  "Tur"),""),
+  (("urdu",     "Urd"),"")
   ]
 
 langs = map fst langsCoding
 
+-- default set of languages to compile
+-- defaultLangs = langs `only` words "Eng Fre Ger Ita Spa Swe"
+
 -- languagues for which to compile Lang
-langsLang = langs `except` ["Ara","Lat","Tur"]
+langsLang = langs `except` ["Amh","Ara","Lat","Hin","Tha","Tur"]
+--langsLang = langs `only` ["Fin"] --test
 
 -- languages for which to compile Try 
-langsAPI  = langsLang `except` ["Hin","Ina","Rus","Tha"]
+langsAPI  = langsLang `except` ["Hin","Ina","Tha"]
 
+-- languages for which to compile Symbolic 
+langsSymbolic  = langsAPI `except` ["Rus"]
+
 -- languages for which to run demo test
 langsDemo = langsLang `except` ["Ara","Hin","Ina","Tha"]
 
@@ -218,12 +231,13 @@
 -- languages for which Compatibility exists (to be extended)
 langsCompat = langsLang `only` ["Cat","Eng","Fin","Fre","Ita","Spa","Swe"]
 
-gfc mode pkg lbi file = do
+gfc modes pkg lbi file = sequence_ [gfc1 mode pkg lbi file | mode<-modes]
+gfc1 mode pkg lbi file = do
   let dir = getRGLBuildDir lbi mode
       preproc = case mode of
                   AllTenses -> ""
-                  Present   -> "-preproc="++(rgl_src_dir </> "mkPresent")
-                  Minimal   -> "-preproc="++(rgl_src_dir </> "mkMinimal")
+                  Present   -> "-preproc="++({-rgl_src_dir </>-} "mkPresent")
+                  Minimal   -> "-preproc="++({-rgl_src_dir </>-} "mkMinimal")
   createDirectoryIfMissing True dir
   putStrLn $ "Compiling [" ++ show mode ++ "] " ++ file
   run_gfc pkg lbi ["-s", preproc, "--gfo-dir="++dir, file]
@@ -252,18 +266,34 @@
 except ls es = filter (flip notElem es . snd) ls
 only   ls es = filter (flip elem es . snd) ls
 
-getOptMode args
-  | elem "present" args = Present
-  | elem "minimal" args = Minimal
-  | otherwise           = AllTenses
+getOptMode args =
+    if null explicit_modes
+    then default_modes
+    else explicit_modes
+  where
+    explicit_modes = 
+      [Minimal|have "minimal"]++
+      [Present|have "present"]++
+      [AllTenses|have "alltenses"]
 
+    have mode = mode `elem` args
+
 -- list of languages overriding the definitions above
-getOptLangs args = case [ls | arg <- args, let (f,ls) = splitAt (length langs_prefix) arg, f==langs_prefix] of
-  ls:_ -> return $ findLangs $ seps ls
-  _    -> Nothing
- where
-  seps = words . map (\c -> if c==',' then ' ' else c)
-  findLangs ls = [lang | lang@(_,la) <- langs, elem la ls]
+getOptLangs defaultLangs args =
+    case [ls | arg <- args,
+               let (f,ls) = splitAt (length langs_prefix) arg,
+               f==langs_prefix] of
+      ('+':ls):_ -> foldr addLang defaultLangs (seps ls)
+      ('-':ls):_ -> foldr removeLang defaultLangs (seps ls)
+      ls:_ -> findLangs langs (seps ls)
+      _    -> defaultLangs
+  where
+    seps = words . map (\c -> if c==',' then ' ' else c)
+    findLangs langs ls = [lang | lang@(_,la) <- langs, la `elem` ls]
+    removeLang l ls = [lang | lang@(_,la) <- ls, la/=l]
+    addLang l ls = if null (findLangs ls [l])
+                   then findLangs langs [l]++ls
+                   else ls
 
 getRGLBuildSubDir lbi mode =
   case mode of
@@ -297,7 +327,7 @@
 -- | Runs the gf executable in compile mode with the given arguments.
 run_gfc :: PackageDescription -> LocalBuildInfo -> [String] -> IO ()
 run_gfc pkg lbi args = 
-    do let args' = ["-batch","-gf-lib-path="++rgl_src_dir] ++ filter (not . null) args
+    do let args' = ["-batch","-gf-lib-path="++rgl_src_dir,"+RTS","-K32M","-RTS"] ++ filter (not . null) args
            gf = default_gf pkg lbi
        putStrLn $ "Running: " ++ gf ++ " " ++ unwords (map showArg args')
        e <- rawSystem gf args'
diff --git a/bin/update_html b/bin/update_html
new file mode 100644
--- /dev/null
+++ b/bin/update_html
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+### This script finds all .t2t (txt2tags) files and updates the corresponding
+### .html file, if it is out-of-date.
+
+find . -name '*.t2t' | while read t2t ; do
+  html="${t2t%.t2t}.html"
+  if [ "$t2t" -nt "$html" ] ; then
+    txt2tags -thtml "$t2t"
+  fi
+done
diff --git a/book/examples/chapter2/Copy.gf b/book/examples/chapter2/Copy.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Copy.gf
@@ -0,0 +1,7 @@
+concrete Copy of CopyAbs = {
+  lincat S, AB = Str ;
+  lin s x = x ++ x ;
+      end = [] ;
+      a x = "a" ++ x ;
+      b x = "b" ++ x ;
+}
diff --git a/book/examples/chapter2/CopyAbs.gf b/book/examples/chapter2/CopyAbs.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/CopyAbs.gf
@@ -0,0 +1,6 @@
+abstract CopyAbs = {
+  cat S ; AB ;
+  fun s   : AB -> S ;
+      end : AB ;
+      a,b : AB -> AB ;
+}
diff --git a/book/examples/chapter2/Food.gf b/book/examples/chapter2/Food.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Food.gf
@@ -0,0 +1,13 @@
+abstract Food = {
+  flags startcat = Comment ;
+  cat
+    Comment ; Item ; Kind ; Quality ; 
+  fun
+    Pred : Item -> Quality -> Comment ;
+    This, That : Kind -> Item ;
+    Mod : Quality -> Kind -> Kind ;
+    Wine, Cheese, Fish : Kind ;
+    Very : Quality -> Quality ;
+    Fresh, Warm, Italian, 
+      Expensive, Delicious, Boring : Quality ;
+}
diff --git a/book/examples/chapter2/Food.probs b/book/examples/chapter2/Food.probs
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Food.probs
@@ -0,0 +1,4 @@
+  This  0.8
+  Mod   0.2
+  Wine  0.0
+  Fresh 0.4
diff --git a/book/examples/chapter2/FoodEng.gf b/book/examples/chapter2/FoodEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/FoodEng.gf
@@ -0,0 +1,19 @@
+concrete FoodEng of Food = {
+  lincat
+    Comment, Item, Kind, Quality = Str ;
+  lin
+    Pred item quality = item ++ "is" ++ quality ;
+    This kind = "this" ++ kind ;
+    That kind = "that" ++ kind ;
+    Mod quality kind = quality ++ kind ;
+    Wine = "wine" ;
+    Cheese = "cheese" ;
+    Fish = "fish" ;
+    Very quality = "very" ++ quality ;
+    Fresh = "fresh" ;
+    Warm = "warm" ;
+    Italian = "Italian" ;
+    Expensive = "expensive" ;
+    Delicious = "delicious" ;
+    Boring = "boring" ;
+}  
diff --git a/book/examples/chapter2/FoodHin.gf b/book/examples/chapter2/FoodHin.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/FoodHin.gf
@@ -0,0 +1,24 @@
+
+ concrete FoodHin of Food = {
+   flags coding = utf8 ;
+   lincat Comment, Item, Kind, Quality = Str ;
+   lin
+     Pred item quality = item ++ quality ++ "है" ;
+     This kind = "यह" ++ kind ;
+     That kind = "वह" ++ kind ;
+     Mod quality kind = quality ++ kind ;
+     Wine = "मदिरा" ;
+     Cheese = "पनीर" ;
+     Fish = "मछली" ;
+     Very quality = "अति" ++ quality ;
+     Fresh = "ताज़ा" ;
+     Warm = "गरम" ;
+     Italian = "इटली" ; 
+     Expensive = "बहुमूल्य" ;
+     Delicious = "स्वादिष्ट" ;
+     Boring = "अरुचिकर" ;
+ }
+
+
+
+
diff --git a/book/examples/chapter2/FoodIta.gf b/book/examples/chapter2/FoodIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/FoodIta.gf
@@ -0,0 +1,19 @@
+concrete FoodIta of Food = {
+  lincat
+    Comment, Item, Kind, Quality = Str ;
+  lin
+    Pred item quality = item ++ "è" ++ quality ;
+    This kind = "questo" ++ kind ;
+    That kind = "quel" ++ kind ;
+    Mod quality kind = kind ++ quality ;
+    Wine = "vino" ;
+    Cheese = "formaggio" ;
+    Fish = "pesce" ;
+    Very quality = "molto" ++ quality ;
+    Fresh = "fresco" ;
+    Warm = "caldo" ;
+    Italian = "italiano" ;
+    Expensive = "caro" ;
+    Delicious = "delizioso" ;
+    Boring = "noioso" ;
+}
diff --git a/book/examples/chapter2/Letters.gf b/book/examples/chapter2/Letters.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Letters.gf
@@ -0,0 +1,8 @@
+abstract Letters = {
+
+cat L ;
+fun 
+  a, b, c, d, e, f, g, h, i, j, k, l, m, 
+  n, o, p, q, r, s, t, u, v, w, x, y, z : L ;
+
+}
diff --git a/book/examples/chapter2/LettersCnc.gf b/book/examples/chapter2/LettersCnc.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/LettersCnc.gf
@@ -0,0 +1,31 @@
+concrete LettersCnc of Letters = {
+
+  lincat L = Str ;
+  lin 
+    a = "a" ;
+    b = "b" ;
+    c = "c" ;
+    d = "d" ;
+    e = "e" ;
+    f = "f" ;
+    g = "g" ;
+    h = "h" ;
+    i = "i" ;
+    j = "j" ;
+    k = "k" ;
+    l = "l" ;
+    m = "m" ;
+    n = "n" ;
+    o = "o" ;
+    p = "p" ;
+    q = "q" ;
+    r = "r" ;
+    s = "s" ;
+    t = "t" ;
+    u = "u" ;
+    v = "v" ;
+    w = "w" ;
+    x = "x" ;
+    y = "y" ;
+    z = "z" ;
+}
diff --git a/book/examples/chapter2/Strings.gf b/book/examples/chapter2/Strings.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Strings.gf
@@ -0,0 +1,7 @@
+abstract Strings = Letters ** {
+
+cat S ;
+fun 
+  E : S ;
+  C : L -> S -> S ;
+}
diff --git a/book/examples/chapter2/StringsBW.gf b/book/examples/chapter2/StringsBW.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/StringsBW.gf
@@ -0,0 +1,5 @@
+concrete StringsBW of Strings = LettersCnc ** {
+  lincat S = Str ;
+  lin E = [] ;
+  lin C head tail = tail ++ head ;
+}
diff --git a/book/examples/chapter2/StringsFW.gf b/book/examples/chapter2/StringsFW.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/StringsFW.gf
@@ -0,0 +1,5 @@
+concrete StringsFW of Strings = LettersCnc ** {
+  lincat S = Str ;
+  lin E = [] ;
+  lin C head tail = head ++ tail ;
+}
diff --git a/book/examples/chapter2/Ticket.gf b/book/examples/chapter2/Ticket.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/Ticket.gf
@@ -0,0 +1,10 @@
+abstract Ticket = {
+
+flags startcat = Request ;
+cat
+  Request ; Station ;
+fun 
+  Ticket : Station -> Station -> Request ;
+  Hamburg, Paris : Station ;
+
+}
diff --git a/book/examples/chapter2/TicketEng.gf b/book/examples/chapter2/TicketEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/TicketEng.gf
@@ -0,0 +1,19 @@
+concrete TicketEng of Ticket = {
+
+lincat
+  Request, Station = Str ;
+lin 
+  Ticket X Y = 
+    ((("I" ++ ("would like" | "want") ++ "to get" |
+      ("may" | "can") ++ "I get" | 
+      "can you give me" |
+      []) ++ 
+        "a ticket") | 
+     []) ++ 
+     "from" ++ X ++ "to" ++ Y ++ 
+     ("please" | []) ;
+
+  Hamburg = "Hamburg" ;
+  Paris = "Paris" ;
+
+}
diff --git a/book/examples/chapter2/foodEng.cf b/book/examples/chapter2/foodEng.cf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/foodEng.cf
@@ -0,0 +1,14 @@
+Pred.      Comment ::= Item "is" Quality
+This.      Item    ::= "this" Kind 
+That.      Item    ::= "that" Kind
+Mod.       Kind    ::= Quality Kind 
+Wine.      Kind    ::= "wine" 
+Cheese.    Kind    ::= "cheese" 
+Fish.      Kind    ::= "fish"
+Very.      Quality ::= "very" Quality
+Fresh.     Quality ::= "fresh" 
+Warm.      Quality ::= "warm" 
+Italian.   Quality ::= "Italian" 
+Expensive. Quality ::= "expensive" 
+Delicious. Quality ::= "delicious" 
+Boring.    Quality ::= "boring"
diff --git a/book/examples/chapter2/foodIta.cf b/book/examples/chapter2/foodIta.cf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter2/foodIta.cf
@@ -0,0 +1,14 @@
+Pred.      Comment ::= Item "è" Quality
+This.      Item    ::= "questo" Kind 
+That.      Item    ::= "quel" Kind
+Mod.       Kind    ::= Kind Quality
+Wine.      Kind    ::= "vino" 
+Cheese.    Kind    ::= "formaggio"
+Fish.      Kind    ::= "pesce"
+Very.      Quality ::= "molto" Quality
+Fresh.     Quality ::= "fresco" 
+Warm.      Quality ::= "caldo" 
+Italian.   Quality ::= "italiano" 
+Expensive. Quality ::= "caro" 
+Delicious. Quality ::= "delizioso" 
+Boring.    Quality ::= "noioso"
diff --git a/book/examples/chapter3/Arabic.gf b/book/examples/chapter3/Arabic.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/Arabic.gf
@@ -0,0 +1,118 @@
+resource Arabic = {
+oper
+  Root    : Type = {F,C,L : Str} ;
+  Pattern : Type = Root -> Str ;
+
+  Filling : Type = {F,FC,CL,L : Str} ;
+
+  fill : Filling -> Root -> Str = \p,r ->
+    p.F + r.F + p.FC + r.C + p.CL + r.L + p.L ;
+
+  dfill : Filling -> Root -> Str = \p,r ->
+    p.F + r.F + p.FC + r.C + r.C + p.CL + r.L + p.L ;
+
+  getRoot : Str -> Root = \s -> case s of {
+    F@? + C@? + L@? => {F = F ; C = C ; L = L} ;
+    _ => Predef.error ("cannot get root from" ++ s)
+    } ;
+
+  getPattern : Str -> Pattern = \s -> case s of {
+    F + "F" + FC + "CC" + CL + "L" + L => 
+      dfill {F = F ; FC = FC ; CL = CL ; L = L} ;
+    F + "F" + FC + "C" + CL + "L" + L => 
+      fill {F = F ; FC = FC ; CL = CL ; L = L} ;
+    _ => Predef.error ("cannot get pattern from" ++ s)
+    } ;
+
+  word : Str -> Str -> Str = \p,r ->
+    getPattern p (getRoot r) ;
+
+param
+  Number = Sg | Dl | Pl ;
+  Gender = Masc | Fem ;
+  Tense  = Perf | Impf ;
+
+  VPer = Vp3 Number Gender | Vp2Sg Gender | Vp2Dl | Vp2Pl Gender | Vp1Sg | Vp1Pl ;
+
+oper
+  Verb : Type = {s : Tense => VPer => Str} ;  
+
+  pattV_u : Tense -> VPer -> Pattern = \t,v -> getPattern (case t of {
+    Perf => case v of {
+      Vp3 Sg Masc => "FaCaLa" ;
+      Vp3 Sg Fem  => "FaCaLat" ;
+      Vp3 Dl Masc => "FaCaLaA" ;
+      Vp3 Dl Fem  => "FaCaLataA" ;
+      Vp3 Pl Masc => "FaCaLuwA" ;
+      Vp3 Pl Fem  => "FaCaLona" ;
+
+      Vp2Sg  Masc => "FaCaLota" ;
+      Vp2Sg  Fem  => "FaCaLoti" ;
+      Vp2Dl       => "FaCaLotumaA" ;
+      Vp2Pl  Masc => "FaCaLotum" ;
+      Vp2Pl  Fem  => "FaCaLotunv2a" ;
+       
+      Vp1Sg       => "FaCaLotu" ;
+      Vp1Pl       => "FaCaLonaA"
+      } ;
+    Impf => case v of {
+      Vp3 Sg Masc => "yaFoCuLu" ;
+      Vp3 Sg Fem  => "taFoCuLu" ;
+      Vp3 Dl Masc => "yaFoCuLaAni" ;
+      Vp3 Dl Fem  => "taFoCuLaAni" ;
+      Vp3 Pl Masc => "yaFoCuLuwna" ;
+      Vp3 Pl Fem  => "yaFoCuLna" ;
+
+      Vp2Sg  Masc => "taFoCuLu" ;
+      Vp2Sg  Fem  => "taFoCuLiyna" ;
+      Vp2Dl       => "taFoCuLaAni" ;
+      Vp2Pl  Masc => "taFoCuLuwna" ;
+      Vp2Pl  Fem  => "taFoCuLona" ;
+       
+      Vp1Sg       => "A?aFoCuLu" ;
+      Vp1Pl       => "naFoCuLu"
+      }
+   }) ;
+
+  u_Verb : Str -> Verb = \s -> {
+    s = \\t,p => pattV_u t p (getRoot s) ;
+    } ;
+
+-- for html
+
+  tag : Str -> Str = \t -> "<" + t + ">" ;
+  etag : Str -> Str = \t -> "</" + t + ">" ;
+  atag : Str -> Str -> Str = \t,a -> "<" + t ++ a + ">" ;
+
+  intag : Str -> Str -> Str = \t,s -> tag t ++ s ++ etag t ;
+  intagAttr : Str -> Str -> Str -> Str = \t,a,s -> atag t a ++ s ++ etag t ;
+
+  verbTable : Verb -> Str = \v -> 
+    let 
+      vsp = v.s ! Perf ;
+      vsi = v.s ! Impf ;
+      tr : Str -> Str = intag "tr" ;
+      td : Str -> Str = intag "td" ;
+      ts : Str -> Str = \s -> td ("\"" ++ s ++ "\"") ;
+      trs : Str -> Str -> VPer -> Str = \s,n,v -> 
+        tr (td s ++ td n ++ ts (vsp ! v) ++ ts (vsi ! v))
+    in 
+    intagAttr "table" "border=1" (
+       tr ((td "Persona") ++ (td "Numerus") ++ (td "Perfectum") ++ (td "Imperfectum")) ++
+       trs "3. masc." "sing." (Vp3 Sg Masc) ++
+       trs "3. fem."  "sing." (Vp3 Sg Fem) ++
+       trs "2. masc." "sing." (Vp2Sg Masc) ++
+       trs "2. fem."  "sing." (Vp2Sg Fem) ++
+       trs "1."       "sing." (Vp1Sg) ++
+       trs "3. masc." "dual." (Vp3 Dl Masc) ++
+       trs "3. fem."  "dual." (Vp3 Dl Fem) ++
+       trs "2."       "dual." (Vp2Dl) ++
+       trs "3. masc." "plur." (Vp3 Pl Masc) ++
+       trs "3. fem."  "plur." (Vp3 Pl Fem) ++
+       trs "2. masc." "plur." (Vp2Pl Masc) ++
+       trs "2. fem."  "plur." (Vp2Pl Fem) ++
+       trs "1."       "plur." (Vp1Pl)
+      ) ;
+
+
+}
diff --git a/book/examples/chapter3/Discont.gf b/book/examples/chapter3/Discont.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/Discont.gf
@@ -0,0 +1,11 @@
+abstract Discont = {
+  cat 
+    S ; Cl ; NP ; VP ; AP ; 
+  fun 
+    DeclCl  : Cl -> S ;
+    QuestCl : Cl -> S ;
+    PredVP  : NP -> VP -> Cl ; 
+    CompAP  : AP -> VP ;
+    John : NP ;
+    Old : AP ;
+}
diff --git a/book/examples/chapter3/DiscontEng.gf b/book/examples/chapter3/DiscontEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/DiscontEng.gf
@@ -0,0 +1,21 @@
+concrete DiscontEng of Discont = {
+  param
+    SForm = SDecl | SQuest ;
+  lincat 
+    S, NP, AP = Str ;
+    Cl = SForm => Str ;
+    VP = {verb,comp : Str} ; 
+  lin 
+    DeclCl  cl = cl ! SDecl ;
+    QuestCl cl = cl ! SQuest ;
+    PredVP np vp = table {
+      SDecl  => np ++ vp.verb ++ vp.comp ;
+      SQuest => vp.verb ++ np ++ vp.comp
+      } ;
+    CompAP ap = {
+      verb = "is" ;
+      comp = ap
+      } ;
+    John = "John" ;
+    Old = "old" ;
+}
diff --git a/book/examples/chapter3/Foods.gf b/book/examples/chapter3/Foods.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/Foods.gf
@@ -0,0 +1,13 @@
+abstract Foods = {
+  flags startcat = Comment ;
+  cat
+    Comment ; Item ; Kind ; Quality ;
+  fun
+    Pred : Item -> Quality -> Comment ;
+    This, That, These, Those : Kind -> Item ;
+    Mod : Quality -> Kind -> Kind ;
+    Wine, Cheese, Fish, Pizza : Kind ;
+    Very : Quality -> Quality ;
+    Fresh, Warm, Italian, 
+      Expensive, Delicious, Boring : Quality ;
+}
diff --git a/book/examples/chapter3/FoodsEng.gf b/book/examples/chapter3/FoodsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/FoodsEng.gf
@@ -0,0 +1,40 @@
+concrete FoodsEng of Foods = {
+  lincat
+    Comment, Quality = {s : Str} ; 
+    Kind = {s : Number => Str} ; 
+    Item = {s : Str ; n : Number} ; 
+  lin
+    Pred item quality = 
+      {s = item.s ++ copula ! item.n ++ quality.s} ;
+    This  = det Sg "this" ;
+    That  = det Sg "that" ;
+    These = det Pl "these" ;
+    Those = det Pl "those" ;
+    Mod quality kind = 
+      {s = \\n => quality.s ++ kind.s ! n} ;
+    Wine = regNoun "wine" ;
+    Cheese = regNoun "cheese" ;
+    Fish = noun "fish" "fish" ;
+    Pizza = regNoun "pizza" ;
+    Very a = {s = "very" ++ a.s} ;
+    Fresh = adj "fresh" ;
+    Warm = adj "warm" ;
+    Italian = adj "Italian" ;
+    Expensive = adj "expensive" ;
+    Delicious = adj "delicious" ;
+    Boring = adj "boring" ;
+  param
+    Number = Sg | Pl ;
+  oper
+    det : Number -> Str -> 
+      {s : Number => Str} -> {s : Str ; n : Number} = 
+        \n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
+    noun : Str -> Str -> {s : Number => Str} = 
+      \man,men -> {s = table {Sg => man ; Pl => men}} ;
+    regNoun : Str -> {s : Number => Str} = 
+      \car -> noun car (car + "s") ;
+    adj : Str -> {s : Str} = 
+      \cold -> {s = cold} ;
+    copula : Number => Str = 
+      table {Sg => "is" ; Pl => "are"} ;
+}
diff --git a/book/examples/chapter3/FoodsIta.gf b/book/examples/chapter3/FoodsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/FoodsIta.gf
@@ -0,0 +1,32 @@
+concrete FoodsIta of Foods = open ResIta in {
+  lincat
+    Comment = {s : Str} ; 
+    Quality = Adjective ; 
+    Kind = Noun ; 
+    Item = NounPhrase ;
+  lin
+    Pred item quality = 
+      {s = item.s ++ copula ! item.n ++ 
+           quality.s ! item.g ! item.n} ;
+    This  = det Sg "questo" "questa" ;
+    That  = det Sg "quel"   "quella" ;
+    These = det Pl "questi" "queste" ;
+    Those = det Pl "quei"   "quelle" ;
+    Mod quality kind = {
+      s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ;
+      g = kind.g
+      } ;
+    Wine = noun "vino" "vini" Masc ;
+    Cheese = noun "formaggio" "formaggi" Masc ;
+    Fish = noun "pesce" "pesci" Masc ;
+    Pizza = noun "pizza" "pizze" Fem ;
+    Very qual = {s = \\g,n => "molto" ++ qual.s ! g ! n} ;
+    Fresh = 
+      adjective "fresco" "fresca" "freschi" "fresche" ;
+    Warm = regAdj "caldo" ;
+    Italian = regAdj "italiano" ;
+    Expensive = regAdj "caro" ;
+    Delicious = regAdj "delizioso" ;
+    Boring = regAdj "noioso" ;
+}
+
diff --git a/book/examples/chapter3/ResIta.gf b/book/examples/chapter3/ResIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter3/ResIta.gf
@@ -0,0 +1,36 @@
+resource ResIta = open Prelude in {
+  param
+    Number = Sg | Pl ;
+    Gender = Masc | Fem ;
+  oper
+    NounPhrase : Type = 
+      {s : Str ; g : Gender ; n : Number} ; 
+    Noun : Type = {s : Number => Str ; g : Gender} ;
+    Adjective : Type = {s : Gender => Number => Str} ;
+
+    det : Number -> Str -> Str -> Noun -> NounPhrase =
+      \n,m,f,cn -> {
+        s = table {Masc => m ; Fem => f} ! cn.g ++ 
+            cn.s ! n ;
+        g = cn.g ;
+        n = n
+      } ;
+    noun : Str -> Str -> Gender -> Noun =
+      \vino,vini,g -> {
+        s = table {Sg => vino ; Pl => vini} ;
+        g = g
+      } ;
+    adjective : (nero,nera,neri,nere : Str) -> Adjective =
+      \nero,nera,neri,nere -> {
+        s = table {
+          Masc => table {Sg => nero ; Pl => neri} ; 
+          Fem => table {Sg => nera ; Pl => nere}
+          }
+        } ;
+    regAdj : Str -> Adjective = \nero ->
+      let ner : Str = init nero 
+      in 
+      adjective nero (ner+"a") (ner+"i") (ner+"e") ;
+    copula : Number => Str = 
+      table {Sg => "è" ; Pl => "sono"} ;
+}
diff --git a/book/examples/chapter4/Clothes.gf b/book/examples/chapter4/Clothes.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Clothes.gf
@@ -0,0 +1,5 @@
+abstract Clothes = Comments ** {
+  fun
+    Shirt, Jacket : Kind ;
+    Comfortable, Elegant : Quality ;
+}
diff --git a/book/examples/chapter4/ClothesEng.gf b/book/examples/chapter4/ClothesEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ClothesEng.gf
@@ -0,0 +1,10 @@
+--# -path=.:present
+
+concrete ClothesEng of Clothes = CommentsEng ** 
+    open SyntaxEng, ParadigmsEng in {
+  lin
+    Shirt = mkCN (mkN "shirt") ;
+    Jacket = mkCN (mkN "jacket") ;
+    Comfortable = mkAP (mkA "comfortable") ;
+    Elegant = mkAP (mkA "elegant") ;
+}
diff --git a/book/examples/chapter4/ClothesIta.gf b/book/examples/chapter4/ClothesIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ClothesIta.gf
@@ -0,0 +1,8 @@
+concrete ClothesIta of Clothes = CommentsIta ** 
+    open SyntaxIta, ParadigmsIta in {
+  lin
+    Shirt = mkCN (mkN "camicia") ;
+    Jacket = mkCN (mkN "giacca") ;
+    Comfortable = mkAP (mkA "comodo") ;
+    Elegant = mkAP (mkA "elegante") ;
+}
diff --git a/book/examples/chapter4/Comment.gf b/book/examples/chapter4/Comment.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Comment.gf
@@ -0,0 +1,13 @@
+abstract Comment = {
+  flags startcat = Comment ;
+  cat
+    Comment ; Item ; Kind ; Quality ;
+  fun
+    Pred : Item -> Quality -> Comment ;
+    This, That, These, Those : Kind -> Item ;
+    Mod : Quality -> Kind -> Kind ;
+    Wine, Cheese, Fish, Pizza : Kind ;
+    Very : Quality -> Quality ;
+    Fresh, Warm, Italian, 
+      Expensive, Delicious, Boring : Quality ;
+}
diff --git a/book/examples/chapter4/Comments.gf b/book/examples/chapter4/Comments.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Comments.gf
@@ -0,0 +1,10 @@
+abstract Comments = {
+  flags startcat = Comment ;
+  cat
+    Comment ; Item ; Kind ; Quality ;
+  fun
+    Pred : Item -> Quality -> Comment ;
+    This, That, These, Those : Kind -> Item ;
+    Mod : Quality -> Kind -> Kind ;
+    Very : Quality -> Quality ;
+}
diff --git a/book/examples/chapter4/CommentsEng.gf b/book/examples/chapter4/CommentsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/CommentsEng.gf
@@ -0,0 +1,4 @@
+--# -path=.:present
+
+concrete CommentsEng of Comments = CommentsI with 
+  (Syntax = SyntaxEng) ;
diff --git a/book/examples/chapter4/CommentsI.gf b/book/examples/chapter4/CommentsI.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/CommentsI.gf
@@ -0,0 +1,15 @@
+incomplete concrete CommentsI of Comments = open Syntax in {
+  lincat
+    Comment = Cl ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+  lin
+    Pred item quality = mkCl item quality ;
+    This kind = mkNP this_QuantSg kind ;
+    That kind = mkNP that_QuantSg kind ;
+    These kind = mkNP these_QuantPl kind ;
+    Those kind = mkNP those_QuantPl kind ;
+    Mod quality kind = mkCN quality kind ;
+    Very quality = mkAP very_AdA quality ;
+}
diff --git a/book/examples/chapter4/CommentsIta.gf b/book/examples/chapter4/CommentsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/CommentsIta.gf
@@ -0,0 +1,4 @@
+--# -path=.:present
+
+concrete CommentsIta of Comments = CommentsI with 
+  (Syntax = SyntaxIta) ;
diff --git a/book/examples/chapter4/Computers.gf b/book/examples/chapter4/Computers.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Computers.gf
@@ -0,0 +1,5 @@
+abstract Computers = Comments ** {
+  fun
+    Computer, HardDisk : Kind ;
+    Efficient, Slow : Quality ;
+}
diff --git a/book/examples/chapter4/ComputersEng.gf b/book/examples/chapter4/ComputersEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ComputersEng.gf
@@ -0,0 +1,10 @@
+--# -path=.:present
+
+concrete ComputersEng of Computers = CommentsEng ** 
+    open SyntaxEng, ParadigmsEng in {
+  lin
+    Computer = mkCN (mkN "computer") ;
+    HardDisk = mkCN (mkA "hard") (mkN "disk") ;
+    Efficient = mkAP (mkA "efficient") ;
+    Slow = mkAP (mkA "slow") ;
+}
diff --git a/book/examples/chapter4/ComputersIta.gf b/book/examples/chapter4/ComputersIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ComputersIta.gf
@@ -0,0 +1,9 @@
+concrete ComputersIta of Computers = 
+    CommentsIta ** open ResIta in {
+  lin
+    Computer = noun "computer" "computer" Masc ;
+    HardDisk = noun "disco rigido" "dischi rigidi" Masc ;
+    Efficient = adjective "efficiente" "efficiente" 
+                          "efficienti" "efficienti" ;
+    Slow = regAdj "lento" ;
+}
diff --git a/book/examples/chapter4/DefArtGer.gf b/book/examples/chapter4/DefArtGer.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/DefArtGer.gf
@@ -0,0 +1,16 @@
+resource DefArtGer = {
+
+  param DetForm = DSg Gender Case | DPl Case ;
+  param Gender = Masc | Fem | Neutr ;
+  param Case = Nom | Acc | Dat | Gen ;
+
+  oper artDef : DetForm => Str = table {
+    DSg Masc Acc | DPl Dat => "den" ;
+    DSg (Masc | Neutr) Dat => "dem" ;
+    DSg (Masc | Neutr) Gen => "des" ;
+    DSg Neutr _ => "das" ;
+    DSg Fem (Nom | Acc) | DPl (Nom | Acc) => "die" ; 
+    _ => "der"
+    } ;
+
+}
diff --git a/book/examples/chapter4/Foods.gf b/book/examples/chapter4/Foods.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Foods.gf
@@ -0,0 +1,6 @@
+abstract Foods = Comments ** {
+  fun
+    Wine, Cheese, Fish, Pizza : Kind ;
+    Fresh, Warm, Italian, 
+      Expensive, Delicious, Boring : Quality ;
+}
diff --git a/book/examples/chapter4/FoodsEng.gf b/book/examples/chapter4/FoodsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/FoodsEng.gf
@@ -0,0 +1,16 @@
+--# -path=.:present
+
+concrete FoodsEng of Foods = CommentsEng ** 
+    open SyntaxEng, ParadigmsEng in {
+  lin
+    Wine = mkCN (mkN "wine") ;
+    Pizza = mkCN (mkN "pizza") ;
+    Cheese = mkCN (mkN "cheese") ;
+    Fish = mkCN (mkN "fish" "fish") ;
+    Fresh = mkAP (mkA "fresh") ;
+    Warm = mkAP (mkA "warm") ;
+    Italian = mkAP (mkA "Italian") ;
+    Expensive = mkAP (mkA "expensive") ;
+    Delicious = mkAP (mkA "delicious") ;
+    Boring = mkAP (mkA "boring") ;
+}
diff --git a/book/examples/chapter4/FoodsIta.gf b/book/examples/chapter4/FoodsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/FoodsIta.gf
@@ -0,0 +1,16 @@
+--# -path=.:present
+
+concrete FoodsIta of Foods = CommentsIta ** 
+    open SyntaxIta, ParadigmsIta in {
+  lin
+    Wine = mkCN (mkN "vino") ;
+    Pizza = mkCN (mkN "pizza") ;
+    Cheese = mkCN (mkN "formaggio") ;
+    Fish = mkCN (mkN "pesce") ;
+    Fresh = mkAP (mkA "fresco") ;
+    Warm = mkAP (mkA "caldo") ;
+    Italian = mkAP (mkA "italiano") ;
+    Expensive = mkAP (mkA "caro") ;
+    Delicious = mkAP (mkA "delizioso") ;
+    Boring = mkAP (mkA "noioso") ;
+}
diff --git a/book/examples/chapter4/Shopping.gf b/book/examples/chapter4/Shopping.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/Shopping.gf
@@ -0,0 +1,2 @@
+abstract Shopping = Foods, Clothes ;
+
diff --git a/book/examples/chapter4/ShoppingEng.gf b/book/examples/chapter4/ShoppingEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ShoppingEng.gf
@@ -0,0 +1,4 @@
+--# -path=.:present
+
+concrete ShoppingEng of Shopping = FoodsEng, ClothesEng ;
+
diff --git a/book/examples/chapter4/ShoppingIta.gf b/book/examples/chapter4/ShoppingIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/ShoppingIta.gf
@@ -0,0 +1,4 @@
+--# -path=.:present
+
+concrete ShoppingIta of Shopping = FoodsIta, ClothesIta ;
+
diff --git a/book/examples/chapter4/SmallShopping.gf b/book/examples/chapter4/SmallShopping.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter4/SmallShopping.gf
@@ -0,0 +1,3 @@
+abstract SmallShopping = 
+  Foods - [Wine], 
+  Clothes [Kind,Quality,Shirt,Elegant] ;
diff --git a/book/examples/chapter5/Foods.gf b/book/examples/chapter5/Foods.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/Foods.gf
@@ -0,0 +1,15 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+abstract Foods = {
+  flags startcat = Comment ;
+  cat
+    Comment ; Item ; Kind ; Quality ;
+  fun
+    Pred : Item -> Quality -> Comment ;
+    This, That, These, Those : Kind -> Item ;
+    Mod : Quality -> Kind -> Kind ;
+    Wine, Cheese, Fish, Pizza : Kind ;
+    Very : Quality -> Quality ;
+    Fresh, Warm, Italian, 
+      Expensive, Delicious, Boring : Quality ;
+}
diff --git a/book/examples/chapter5/FoodsCat.gf b/book/examples/chapter5/FoodsCat.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsCat.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+-- (c) 2009 Jordi Saludes under LGPL
+
+concrete FoodsCat of Foods = FoodsI with 
+  (Syntax = SyntaxCat),
+  (LexFoods = LexFoodsCat) ;
diff --git a/book/examples/chapter5/FoodsEng.gf b/book/examples/chapter5/FoodsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsEng.gf
@@ -0,0 +1,28 @@
+--# -path=.:present
+
+concrete FoodsEng of Foods = 
+    open SyntaxEng,ParadigmsEng in {
+  lincat
+    Comment = Utt ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+  lin
+    Pred item quality = mkUtt (mkCl item quality) ;
+    This kind = mkNP this_Quant kind ;
+    That kind = mkNP that_Quant kind ;
+    These kind = mkNP this_Quant plNum kind ;
+    Those kind = mkNP that_Quant plNum kind ;
+    Mod quality kind = mkCN quality kind ;
+    Wine = mkCN (mkN "wine") ;
+    Pizza = mkCN (mkN "pizza") ;
+    Cheese = mkCN (mkN "cheese") ;
+    Fish = mkCN (mkN "fish" "fish") ;
+    Very quality = mkAP very_AdA quality ;
+    Fresh = mkAP (mkA "fresh") ;
+    Warm = mkAP (mkA "warm") ;
+    Italian = mkAP (mkA "Italian") ;
+    Expensive = mkAP (mkA "expensive") ;
+    Delicious = mkAP (mkA "delicious") ;
+    Boring = mkAP (mkA "boring") ;
+}
diff --git a/book/examples/chapter5/FoodsFin.gf b/book/examples/chapter5/FoodsFin.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsFin.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+-- (c) 2009 Aarne Ranta under LGPL
+
+concrete FoodsFin of Foods = FoodsI with 
+  (Syntax = SyntaxFin),
+  (LexFoods = LexFoodsFin) ;
diff --git a/book/examples/chapter5/FoodsGer.gf b/book/examples/chapter5/FoodsGer.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsGer.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+-- (c) 2009 Aarne Ranta under LGPL
+
+concrete FoodsGer of Foods = FoodsI with 
+  (Syntax = SyntaxGer),
+  (LexFoods = LexFoodsGer) ;
diff --git a/book/examples/chapter5/FoodsI.gf b/book/examples/chapter5/FoodsI.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsI.gf
@@ -0,0 +1,29 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+incomplete concrete FoodsI of Foods = 
+    open Syntax, LexFoods in {
+  lincat
+    Comment = Utt ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+  lin
+    Pred item quality = mkUtt (mkCl item quality) ;
+    This kind = mkNP this_Det kind ;
+    That kind = mkNP that_Det kind ;
+    These kind = mkNP these_Det kind ;
+    Those kind = mkNP those_Det kind ;
+    Mod quality kind = mkCN quality kind ;
+    Very quality = mkAP very_AdA quality ;
+
+    Wine = mkCN wine_N ;
+    Pizza = mkCN pizza_N ;
+    Cheese = mkCN cheese_N ;
+    Fish = mkCN fish_N ;
+    Fresh = mkAP fresh_A ;
+    Warm = mkAP warm_A ;
+    Italian = mkAP italian_A ;
+    Expensive = mkAP expensive_A ;
+    Delicious = mkAP delicious_A ;
+    Boring = mkAP boring_A ;
+}
diff --git a/book/examples/chapter5/FoodsIta.gf b/book/examples/chapter5/FoodsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsIta.gf
@@ -0,0 +1,8 @@
+--# -path=.:present
+
+-- (c) 2009 Aarne Ranta under LGPL
+
+concrete FoodsIta of Foods = FoodsI with 
+  (Syntax = SyntaxIta),
+  (LexFoods = LexFoodsIta) ;
+
diff --git a/book/examples/chapter5/FoodsSwe.gf b/book/examples/chapter5/FoodsSwe.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/FoodsSwe.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+-- (c) 2009 Aarne Ranta under LGPL
+
+concrete FoodsSwe of Foods = FoodsI with 
+  (Syntax = SyntaxSwe),
+  (LexFoods = LexFoodsSwe) ** {flags language = sv_SE;} ;
diff --git a/book/examples/chapter5/LexFoods.gf b/book/examples/chapter5/LexFoods.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoods.gf
@@ -0,0 +1,15 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+interface LexFoods = open Syntax in {
+  oper
+    wine_N : N ;
+    pizza_N : N ;
+    cheese_N : N ;
+    fish_N : N ;
+    fresh_A : A ;
+    warm_A : A ;
+    italian_A : A ;
+    expensive_A : A ;
+    delicious_A : A ;
+    boring_A : A ;
+}
diff --git a/book/examples/chapter5/LexFoodsCat.gf b/book/examples/chapter5/LexFoodsCat.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsCat.gf
@@ -0,0 +1,18 @@
+-- (c) 2009 Jordi Saludes under LGPL
+
+instance LexFoodsCat of LexFoods = 
+    open SyntaxCat, ParadigmsCat, (M = MorphoCat) in {
+  flags
+	coding = utf8 ;
+  oper
+    wine_N = mkN "vi" "vins" M.Masc ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "formatge" ;
+    fish_N = mkN "peix" "peixos" M.Masc;
+    fresh_A = mkA "fresc" "fresca" "frescos" "fresques" "frescament";
+    warm_A = mkA "calent" ;
+    italian_A = mkA "italià" "italiana" "italians" "italianes" "italianament" ;
+    expensive_A = mkA "car" ;
+    delicious_A = mkA "deliciós" "deliciosa" "deliciosos" "delicioses" "deliciosament";
+    boring_A = mkA "aburrit" "aburrida" "aburrits" "aburrides" "aburridament" ;
+}
diff --git a/book/examples/chapter5/LexFoodsEng.gf b/book/examples/chapter5/LexFoodsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsEng.gf
@@ -0,0 +1,20 @@
+instance LexFoodsEng of LexFoods = open SyntaxEng, ParadigmsEng, IrregEng in {
+  oper
+    wine_N = mkN "wine" ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "cheese" ;
+    fish_N = mkN "fish" "fish" ;
+    fresh_A = mkA "fresh" ;
+    warm_A = mkA "warm" ;
+    italian_A = mkA "Italian" ;
+    expensive_A = mkA "expensive" ;
+    delicious_A = mkA "delicious" ;
+    boring_A = mkA "boring" ;
+
+    eat_V2 = mkV2 eat_V ;
+    drink_V2 = mkV2 drink_V ;
+    pay_V2 = mkV2 pay_V ;
+    lady_N = mkN "lady" ;
+    gentleman_N = mkN "gentleman" "gentlemen" ;
+
+}
diff --git a/book/examples/chapter5/LexFoodsFin.gf b/book/examples/chapter5/LexFoodsFin.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsFin.gf
@@ -0,0 +1,20 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+instance LexFoodsFin of LexFoods = 
+    open SyntaxFin, ParadigmsFin in {
+  oper
+    wine_N = mkN "viini" ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "juusto" ;
+    fish_N = mkN "kala" ;
+    fresh_A = mkA "tuore" ;
+    warm_A = mkA 
+    (mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään" 
+         "lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
+	 ) 
+    "lämpimämpi" "lämpimin" ;
+    italian_A = mkA "italialainen" ;
+    expensive_A = mkA "kallis" ;
+    delicious_A = mkA "herkullinen" ;
+    boring_A = mkA "tylsä" ;
+}
diff --git a/book/examples/chapter5/LexFoodsGer.gf b/book/examples/chapter5/LexFoodsGer.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsGer.gf
@@ -0,0 +1,16 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+instance LexFoodsGer of LexFoods = 
+    open SyntaxGer, ParadigmsGer in {
+  oper
+    wine_N = mkN "Wein" ;
+    pizza_N = mkN "Pizza" "Pizzen" feminine ;
+    cheese_N = mkN "Käse" "Käse" masculine ;
+    fish_N = mkN "Fisch" ;
+    fresh_A = mkA "frisch" ;
+    warm_A = mkA "warm" "wärmer" "wärmste" ;
+    italian_A = mkA "italienisch" ;
+    expensive_A = mkA "teuer" ;
+    delicious_A = mkA "köstlich" ;
+    boring_A = mkA "langweilig" ;
+}
diff --git a/book/examples/chapter5/LexFoodsIta.gf b/book/examples/chapter5/LexFoodsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsIta.gf
@@ -0,0 +1,16 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+instance LexFoodsIta of LexFoods = 
+    open SyntaxIta, ParadigmsIta in {
+  oper
+    wine_N = mkN "vino" ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "formaggio" ;
+    fish_N = mkN "pesce" ;
+    fresh_A = mkA "fresco" ;
+    warm_A = mkA "caldo" ;
+    italian_A = mkA "italiano" ;
+    expensive_A = mkA "caro" ;
+    delicious_A = mkA "delizioso" ;
+    boring_A = mkA "noioso" ;
+}
diff --git a/book/examples/chapter5/LexFoodsSwe.gf b/book/examples/chapter5/LexFoodsSwe.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter5/LexFoodsSwe.gf
@@ -0,0 +1,16 @@
+-- (c) 2009 Aarne Ranta under LGPL
+
+instance LexFoodsSwe of LexFoods = 
+    open SyntaxSwe, ParadigmsSwe in {
+  oper
+    wine_N = mkN "vin" "vinet" "viner" "vinerna" ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "ost" ;
+    fish_N = mkN "fisk" ;
+    fresh_A = mkA "färsk" ;
+    warm_A = mkA "varm" ;
+    italian_A = mkA "italiensk" ;
+    expensive_A = mkA "dyr" ;
+    delicious_A = mkA "läcker" ;
+    boring_A = mkA "tråkig" ;
+}
diff --git a/book/examples/chapter6/Aggregation.gf b/book/examples/chapter6/Aggregation.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Aggregation.gf
@@ -0,0 +1,33 @@
+abstract Aggregation = {
+  cat S ; NP ; VP ;
+  data 
+    PredVP : NP -> VP -> S ;
+    ConjS  : S -> S -> S ;
+    ConjVP : VP -> VP -> VP ;
+    ConjNP : NP -> NP -> NP ;
+    Run, Walk : VP ;
+    John, Mary : NP ;
+
+  fun aggr : S -> S ; -- main aggregation function
+  def aggr (ConjS (PredVP x X) (PredVP y Y)) = 
+    ifS (eqNP x y) 
+      (PredVP x (ConjVP X Y)) 
+      (ifS (eqVP X Y) 
+         (PredVP (ConjNP x y) X)
+         (ConjS (PredVP x X) (PredVP y Y))) ;
+  fun ifS : Bool -> S -> S -> S ; -- if b then x else y 
+  def
+    ifS True  x _ = x ;
+    ifS False _ y = y ;
+  fun eqNP : NP -> NP -> Bool ;  -- x == y
+  def 
+    eqNP John John = True ;
+    eqNP Mary Mary = True ;
+    eqNP _ _ = False ;
+  fun eqVP : VP -> VP -> Bool ;  -- X == Y
+  def 
+    eqVP Run  Run  = True ;
+    eqVP Walk Walk = True ;
+    eqVP _ _ = False ;
+  cat Bool ; data True, False : Bool ;
+}
diff --git a/book/examples/chapter6/AggregationEng.gf b/book/examples/chapter6/AggregationEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/AggregationEng.gf
@@ -0,0 +1,17 @@
+concrete AggregationEng of Aggregation = {
+
+lincat S, NP, VP = Str ;
+
+lin 
+  PredVP x y = x ++ y ;
+  ConjS  a b = a ++ "or" ++ b ;
+  ConjVP a b = a ++ "or" ++ b ;
+  ConjNP a b = a ++ "or" ++ b ;
+
+  Run = "runs" ;
+  Walk = "walks" ;
+  John = "John" ;
+  Mary = "Mary" ;
+
+}
+
diff --git a/book/examples/chapter6/Arithm.gf b/book/examples/chapter6/Arithm.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Arithm.gf
@@ -0,0 +1,30 @@
+abstract Arithm = {
+  cat
+    Prop ;                        -- proposition
+    Nat ;                         -- natural number
+  data
+    Zero : Nat ;                  -- 0
+    Succ : Nat -> Nat ;           -- the successor of x
+  fun
+    Even : Nat -> Prop ;          -- x is even
+    And  : Prop -> Prop -> Prop ; -- A and B
+
+  cat Less Nat Nat ; 
+  data LessZ : (y : Nat) -> Less Zero (Succ y) ;
+  data LessS : (x,y : Nat) -> Less x y -> Less (Succ x) (Succ y) ;
+
+  cat Span ;
+  data FromTo : (m,n : Nat) -> Less m n -> Span ;
+
+  fun one : Nat ;
+  def one = Succ Zero ;
+
+  fun twice : Nat -> Nat ;
+  def twice x = plus x x ;
+
+  fun plus : Nat -> Nat -> Nat ;
+  def 
+    plus x Zero = x ;
+    plus x (Succ y) = Succ (plus x y) ;
+
+} 
diff --git a/book/examples/chapter6/Bin.gf b/book/examples/chapter6/Bin.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Bin.gf
@@ -0,0 +1,50 @@
+abstract Bin = {
+
+cat Nat ; Bin ; Pos ;
+
+data 
+  Zero : Nat ; 
+  Succ : Nat -> Nat ;
+
+  BZero : Bin ;         -- 0
+  BPos  : Pos -> Bin ;  -- p
+  BOne  : Pos ;         -- 1
+  AZero : Pos -> Pos ;  -- p0
+  AOne  : Pos -> Pos ;  -- p1
+
+fun
+  bin2nat : Bin -> Nat ;
+def
+  bin2nat BZero = Zero ;
+  bin2nat (BPos p) = pos2nat p ;
+fun 
+  pos2nat : Pos -> Nat ;
+def
+  pos2nat BOne = one ;
+  pos2nat (AZero p) = twice (pos2nat p) ;
+  pos2nat (AOne  p) = Succ (twice (pos2nat p)) ;
+fun one : Nat ;
+def one = Succ Zero ;
+fun twice : Nat -> Nat ;
+def 
+  twice Zero = Zero ;
+  twice (Succ n) = Succ (Succ (twice n)) ;
+
+fun
+  nat2bin : Nat -> Bin ;
+def
+  nat2bin Zero = BZero ;
+  nat2bin (Succ n) = bSucc (nat2bin n) ;
+fun
+  bSucc : Bin -> Bin ;
+def
+  bSucc BZero = BPos BOne ;
+  bSucc (BPos p) = BPos (pSucc p) ;
+fun
+  pSucc : Pos -> Pos ;
+def
+  pSucc BOne = AZero BOne ;
+  pSucc (AZero p) = AOne p ;
+  pSucc (AOne p) = AZero (pSucc p) ;
+
+}
diff --git a/book/examples/chapter6/Classes.gf b/book/examples/chapter6/Classes.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Classes.gf
@@ -0,0 +1,28 @@
+abstract Classes = {
+
+flags 
+  startcat = Command ;
+
+cat
+  Command ;
+  Kind ;
+  Class ;
+  Instance Class Kind ;
+  Action Class ;
+  Device Kind ;
+
+fun
+  Act  : (c : Class) -> (k : Kind) -> Instance c k -> Action c -> Device k -> Command ;
+  The : (k : Kind) -> Device k ;
+
+  Light, Fan : Kind ;
+  Switchable, Dimmable : Class ;
+  
+  SwitchOn, SwitchOff : Action Switchable ;
+  Dim : Action Dimmable ;
+
+  switchable_Light : Instance Switchable Light ;
+  switchable_Fan : Instance Switchable Fan ;
+  dimmable_Light : Instance Dimmable Light ;
+
+}
diff --git a/book/examples/chapter6/ClassesEng.gf b/book/examples/chapter6/ClassesEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/ClassesEng.gf
@@ -0,0 +1,29 @@
+--# -path=.:present
+
+concrete ClassesEng of Classes = open SyntaxEng, ParadigmsEng in {
+
+lincat
+  Command = Utt ;
+  Kind = CN ;
+  Class = {} ;
+  Instance = {} ;
+  Action = V2 ;
+  Device = NP ;
+
+lin
+  Act _ _ _ a d = mkUtt (mkImp a d) ;
+  The k = mkNP the_Det k ;
+
+  Light = mkCN (mkN "light") ;
+  Fan = mkCN (mkN "fan") ;
+  Switchable, Dimmable = <> ;
+  
+  SwitchOn = mkV2 (partV (mkV "switch") "on") ;
+  SwitchOff = mkV2 (partV (mkV "switch") "off") ;
+  Dim = mkV2 (mkV "dim") ;
+
+  switchable_Light = <> ;
+  switchable_Fan = <> ;
+  dimmable_Light = <> ;
+
+}
diff --git a/book/examples/chapter6/DShopping.gf b/book/examples/chapter6/DShopping.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/DShopping.gf
@@ -0,0 +1,24 @@
+abstract DShopping = {
+  flags startcat = Comment ;
+  cat
+    Comment ; 
+    Dom ;
+    Item Dom ; 
+    Kind Dom ; 
+    Quality Dom ;
+  fun
+    DFood, DCloth : Dom ;
+
+    Pred : (d : Dom) -> Item d -> Quality d -> Comment ;
+    This, That : (d : Dom) -> Kind d -> Item d ;
+    Mod : (d : Dom) -> Quality d -> Kind d -> Kind d ;
+    Wine, Cheese, Fish : Kind DFood ;
+    Very : (d : Dom) -> Quality d -> Quality d ;
+    Fresh, Warm, Delicious, Boring : Quality DFood ;
+
+    Shirt, Jacket : Kind DCloth ;
+    Comfortable : Quality DCloth ;
+
+    Italian, Expensive, Elegant : (d : Dom) -> Quality d ;
+
+}
diff --git a/book/examples/chapter6/DShoppingEng.gf b/book/examples/chapter6/DShoppingEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/DShoppingEng.gf
@@ -0,0 +1,33 @@
+--# -path=.:present
+
+concrete DShoppingEng of DShopping = open SyntaxEng, ParadigmsEng in {
+
+  lincat
+    Comment = Cl ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+  lin
+    Pred _ item quality = mkCl item quality ;
+    This _ kind = mkNP this_QuantSg kind ;
+    That _ kind = mkNP that_QuantSg kind ;
+    Mod _ quality kind = mkCN quality kind ;
+    Very _ quality = mkAP very_AdA quality ;
+
+    Shirt = mkCN (mkN "shirt") ;
+    Jacket = mkCN (mkN "jacket") ;
+    Wine = mkCN (mkN "wine") ;
+    Cheese = mkCN (mkN "cheese") ;
+    Fish = mkCN (mkN "fish" "fish") ;
+    Fresh = mkAP (mkA "fresh") ;
+    Warm = mkAP (mkA "warm") ;
+    Italian _ = mkAP (mkA "Italian") ;
+    Expensive _ = mkAP (mkA "expensive") ;
+    Elegant _ = mkAP (mkA "elegant") ;
+    Delicious = mkAP (mkA "delicious") ;
+    Boring = mkAP (mkA "boring") ;
+    Comfortable = mkAP (mkA "comfortable") ;
+
+    DFood, DCloth = {s = []} ;
+
+}
diff --git a/book/examples/chapter6/Nat.gf b/book/examples/chapter6/Nat.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Nat.gf
@@ -0,0 +1,22 @@
+abstract Nat = {
+  cat
+    Prop ;                        -- proposition
+    Nat ;                         -- natural number
+  data
+    Zero : Nat ;                  -- 0
+    Succ : Nat -> Nat ;           -- the successor of x
+  fun
+    Even : Nat -> Prop ;          -- x is even
+    And  : Prop -> Prop -> Prop ; -- A and B
+
+  fun one : Nat ;
+  def one = Succ Zero ;
+
+  fun twice : Nat -> Nat ;
+  def twice x = plus x x ;
+
+  fun plus : Nat -> Nat -> Nat ;
+  def 
+    plus x Zero = x ;
+    plus x (Succ y) = Succ (plus x y) ;
+}
diff --git a/book/examples/chapter6/Smart.gf b/book/examples/chapter6/Smart.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Smart.gf
@@ -0,0 +1,16 @@
+abstract Smart = {
+
+  cat
+    Command ;
+    Kind ; 
+    Device Kind ; 
+    Action Kind ; 
+
+  fun 
+    Act : (k : Kind) -> Action k -> Device k -> Command ;
+    The : (k : Kind) -> Device k ;  -- the light
+    Light, Fan : Kind ;
+    Dim : Action Light ;
+    SwitchOn, SwitchOff : (k : Kind) -> Action k ;
+
+}
diff --git a/book/examples/chapter6/Verbs.gf b/book/examples/chapter6/Verbs.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/Verbs.gf
@@ -0,0 +1,22 @@
+abstract Verbs = {
+
+cat
+  S ; NP ; Subcat ; V Subcat ; Args Subcat ;
+
+fun
+  cIntr : Subcat ;
+  cTr   : Subcat ;
+  cS    : Subcat ;
+
+  aIntr : NP -> Args cIntr ;
+  aTr   : NP -> NP -> Args cTr ;
+  aS    : NP -> S  -> Args cS ;
+
+  pred  : (s : Subcat) -> V s -> Args s -> S ;
+
+  john, mary : NP ;
+  walk : V cIntr ;
+  love : V cTr ;
+  know : V cS ;
+
+}
diff --git a/book/examples/chapter6/VerbsEng.gf b/book/examples/chapter6/VerbsEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter6/VerbsEng.gf
@@ -0,0 +1,22 @@
+concrete VerbsEng of Verbs = {
+
+lincat
+  S, NP, Subcat, V = Str ; Args = Str * Str ;
+
+lin
+  cIntr = [] ;
+  cTr   = [] ;
+  cS    = [] ;
+
+  aIntr su    = <su,[]> ;
+  aTr   su ob = <su,ob> ;
+  aS    su s  = <su,"that" ++ s> ;
+
+  pred _ v xs = xs.p1 ++ v ++ xs.p2 ;
+
+  john = "John" ; mary = "Mary" ;
+  walk = "walks" ;
+  love = "loves" ;
+  know = "knows" ;
+
+}
diff --git a/book/examples/chapter7/Map.gf b/book/examples/chapter7/Map.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter7/Map.gf
@@ -0,0 +1,10 @@
+abstract Map = {
+flags startcat = Query ;
+cat
+  Query ; Input ; Place ; Click ;
+fun
+  GoFromTo   : Place -> Place -> Input ;
+  ThisPlace  : Click -> Place ;
+  QueryInput : Input -> Query ;
+  ClickCoord : Int -> Int -> Click ;
+}
diff --git a/book/examples/chapter7/MapEng.gf b/book/examples/chapter7/MapEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter7/MapEng.gf
@@ -0,0 +1,17 @@
+concrete MapEng of Map = {
+lincat
+  Query        = {s : Str} ;
+  Input, Place = {s : Str ; p : Str} ;
+  Click        = {p : Str} ;
+lin
+  GoFromTo x y = {
+    s = "I want to go from" ++ x.s ++ "to" ++ y.s ; 
+    p = x.p ++ y.p
+    } ;
+  ThisPlace c = {
+    s = "this place" ; 
+    p = c.p
+    } ;
+  QueryInput i = {s = i.s ++ ";" ++ i.p} ;
+  ClickCoord x y = {p = "(" ++ x.s ++ "," ++ y.s ++ ")"} ;
+}
diff --git a/book/examples/chapter7/Query.gf b/book/examples/chapter7/Query.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter7/Query.gf
@@ -0,0 +1,12 @@
+abstract Query = {
+  flags startcat=Question ;
+  cat 
+    Answer ; Question ; Object ;
+  fun 
+    Even   : Object -> Question ;
+    Odd    : Object -> Question ;
+    Prime  : Object -> Question ;
+    Number : Int -> Object ;
+    Yes    : Answer ;
+    No     : Answer ;
+}
diff --git a/book/examples/chapter7/QueryEng.gf b/book/examples/chapter7/QueryEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter7/QueryEng.gf
@@ -0,0 +1,13 @@
+concrete QueryEng of Query = {
+  lincat 
+    Answer, Question, Object = Str ;
+  lin 
+    Even  = pred "even" ;
+    Odd   = pred "odd" ;
+    Prime = pred "prime" ;
+    Number i = i.s ;
+    Yes = "yes" ;
+    No = "no" ;
+  oper
+    pred : Str -> Str -> Str = \f,x -> "is" ++ x ++ f ;
+}
diff --git a/book/examples/chapter7/QueryFin.gf b/book/examples/chapter7/QueryFin.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter7/QueryFin.gf
@@ -0,0 +1,13 @@
+concrete QueryFin of Query = {
+  lincat 
+    Answer, Question, Object = Str ;
+  lin 
+    Even  = pred "parillinen" ;
+    Odd   = pred "pariton" ;
+    Prime = pred "alkuluku" ;
+    Number i = i.s ;
+    Yes = "kyllä" ;
+    No = "ei" ;
+  oper
+    pred : Str -> Str -> Str = \f,x -> "onko" ++ x ++ f ;
+}
diff --git a/book/examples/chapter8/Calculator.gf b/book/examples/chapter8/Calculator.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Calculator.gf
@@ -0,0 +1,7 @@
+abstract Calculator = {
+flags startcat = Exp ;
+cat Exp ;
+fun
+  EPlus, EMinus, ETimes, EDiv : Exp -> Exp -> Exp ;
+  EInt : Int -> Exp ;
+}
diff --git a/book/examples/chapter8/CalculatorC.gf b/book/examples/chapter8/CalculatorC.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/CalculatorC.gf
@@ -0,0 +1,10 @@
+concrete CalculatorC of Calculator = open Formal, Prelude in {
+lincat 
+  Exp = TermPrec ;
+lin
+  EPlus  = infixl 0 "+" ;
+  EMinus = infixl 0 "-" ;
+  ETimes = infixl 1 "*" ;
+  EDiv   = infixl 1 "/" ;
+  EInt i = constant i.s ;
+}
diff --git a/book/examples/chapter8/CalculatorJ.gf b/book/examples/chapter8/CalculatorJ.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/CalculatorJ.gf
@@ -0,0 +1,13 @@
+concrete CalculatorJ of Calculator = open Prelude in {
+lincat 
+  Exp = SS ;
+lin
+  EPlus  = postfix "iadd" ;
+  EMinus = postfix "isub" ;
+  ETimes = postfix "imul" ;
+  EDiv   = postfix "idiv" ;
+  EInt i = ss ("ldc" ++ i.s) ;
+oper
+  postfix : Str -> SS -> SS -> SS = \op,x,y -> 
+    ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
+}
diff --git a/book/examples/chapter8/CalculatorP.gf b/book/examples/chapter8/CalculatorP.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/CalculatorP.gf
@@ -0,0 +1,14 @@
+concrete CalculatorP of Calculator = open Prelude in {
+
+lincat 
+  Exp = SS ;
+lin
+  EPlus  = infix "+" ;
+  EMinus = infix "-" ;
+  ETimes = infix "*" ;
+  EDiv   = infix "/" ;
+  EInt i = i ;
+oper
+  infix : Str -> SS -> SS -> SS = \f,x,y -> 
+    ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
+}
diff --git a/book/examples/chapter8/CalculatorS.gf b/book/examples/chapter8/CalculatorS.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/CalculatorS.gf
@@ -0,0 +1,11 @@
+concrete CalculatorS of Calculator = open Prelude in {
+  lin
+    EPlus  = infix "plus" ;
+    EMinus = infix "minus" ;
+    ETimes = infix "times" ;
+    EDiv   = infix ["divided by"] ;
+    EInt i = i ;
+  oper
+    infix : Str -> SS -> SS -> SS = \op,x,y -> 
+      ss (x.s ++ op ++ y.s ++ "PAUSE") ;
+}
diff --git a/book/examples/chapter8/Geometry.gf b/book/examples/chapter8/Geometry.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Geometry.gf
@@ -0,0 +1,7 @@
+abstract Geometry = Logic ** {
+fun
+  Line, Point, Circle : Dom ;
+  Intersect, Parallel : Ind -> Ind -> Atom ;
+  Vertical : Ind -> Atom ;
+  Centre : Ind -> Ind ;
+}
diff --git a/book/examples/chapter8/GeometryEng.gf b/book/examples/chapter8/GeometryEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/GeometryEng.gf
@@ -0,0 +1,13 @@
+--# -path=.:present
+
+concrete GeometryEng of Geometry = LogicEng ** 
+  open SyntaxEng, ParadigmsEng in {
+lin
+  Line = mkCN (mkN "line") ;
+  Point = mkCN (mkN "point") ; 
+  Circle = mkCN (mkN "circle") ;
+  Intersect = pred (mkV2 "intersect") ;
+  Parallel = pred (mkA2 (mkA "parallel") (mkPrep "to")) ;
+  Vertical = pred (mkA "vertical") ;
+  Centre = app (mkN2 (mkN "centre") (mkPrep "of")) ;
+}
diff --git a/book/examples/chapter8/GeometryEngb.gf b/book/examples/chapter8/GeometryEngb.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/GeometryEngb.gf
@@ -0,0 +1,11 @@
+concrete GeometryEng of Geometry = LogicEng ** 
+  open SyntaxEng, ParadigmsEng in {
+lin
+  Line = mkN "line" ;
+  Point = mkN "point" ; 
+  Circle = mkN "circle" ;
+  Intersect = pred (mkV2 "intersect") ;
+  Parallel = pred (mkA2 (mkA "parallel") (mkPrep "to")) ;
+  Vertical = pred (mkA "vertical") ;
+  Centre = app (mkN2 (mkN "centre") (mkPrep "of")) ;
+}
diff --git a/book/examples/chapter8/Geometryb.gf b/book/examples/chapter8/Geometryb.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Geometryb.gf
@@ -0,0 +1,7 @@
+abstract Geometry = Logic ** {
+fun
+  Line, Point, Circle : Dom ;
+  Intersect, Parallel : Ind -> Ind -> Prop ;
+  Vertical : Ind -> Prop ;
+  Centre : Ind -> Ind ;
+}
diff --git a/book/examples/chapter8/Graftal.gf b/book/examples/chapter8/Graftal.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Graftal.gf
@@ -0,0 +1,7 @@
+-- (c) Krasimir Angelov 2009
+abstract Graftal = {
+  cat N; S;
+  fun z : N ;
+      s : N -> N ;
+      c : N -> S ;
+  }
diff --git a/book/examples/chapter8/Logic.gf b/book/examples/chapter8/Logic.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Logic.gf
@@ -0,0 +1,21 @@
+abstract Logic = {
+flags startcat = Stm ;
+cat
+  Stm ;        -- top-level statement 
+  Prop ;       -- proposition 
+  Atom ;       -- atomic formula
+  Ind ;        -- individual term 
+  Dom ;        -- domain expression
+  Var ;        -- variable
+  [Prop] {2} ; -- list of propositions, 2 or more
+  [Var] {1} ;  -- list of variables, 1 or more
+fun
+  SProp : Prop -> Stm ;
+  And, Or : [Prop] -> Prop ;
+  If  : Prop -> Prop -> Prop ;
+  Not : Prop -> Prop ;
+  PAtom : Atom -> Prop ;
+  All, Exist : [Var] -> Dom -> Prop -> Prop ;
+  IVar : Var -> Ind ;
+  VString : String -> Var ;
+}
diff --git a/book/examples/chapter8/LogicBEng.gf b/book/examples/chapter8/LogicBEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/LogicBEng.gf
@@ -0,0 +1,38 @@
+concrete LogicEng of Logic = open 
+  SyntaxEng, (P = ParadigmsEng), SymbolicEng, Prelude in {
+lincat
+  Stm  = Text ;
+  Prop = S ;
+  Atom = Cl ; 
+  Ind  = NP ; 
+  Dom  = CN ; 
+  Var  = NP ; 
+  [Prop] = [S] ; 
+  [Var]  = NP ; 
+lin
+  SProp = mkText ;
+  And = mkS and_Conj ;      -- A, B ... and C
+  Or = mkS or_Conj ;        -- A, B ... or C
+  If A B =                  -- if A B
+    mkS (mkAdv if_Subj A) B ;  
+  Not A =                   -- it is not the case that A
+    mkS negativePol (mkCl 
+      (mkVP (mkNP the_Quant 
+         (mkCN case_CN A)))) ; 
+  All xs A B =              -- for all A's xs, B
+    mkS (mkAdv for_Prep 
+      (mkNP all_Predet (mkNP a_Quant 
+         plNum (mkCN A xs)))) B ;
+  Exist xs A B =            -- for some A's xs, B
+    mkS (mkAdv for_Prep 
+      (mkNP somePl_Det (mkCN A xs))) B ;
+  PAtom = mkS ;
+  IVar x = x ;
+  VString s = symb s ;
+  BaseProp A B = mkListS A B ; 
+  ConsProp A As = mkListS A As ;
+  BaseVar x = x ;
+  ConsVar x xs = mkNP and_Conj (mkListNP x xs) ;
+oper
+  case_CN : CN = mkCN (P.mkN "case") ;
+}
diff --git a/book/examples/chapter8/LogicEng.gf b/book/examples/chapter8/LogicEng.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/LogicEng.gf
@@ -0,0 +1,39 @@
+concrete LogicEng of Logic = open 
+  SyntaxEng, (P = ParadigmsEng), SymbolicEng, Prelude in {
+lincat
+  Stm  = Text ;
+  Prop = {pos,neg : S ; isAtom : Bool} ; 
+  Atom = Cl ; 
+  Ind  = NP ; 
+  Dom  = CN ; 
+  Var  = NP ; 
+  [Prop] = ListS ; 
+  [Var]  = NP ; 
+lin
+  SProp p = mkText p.pos ;
+  And ps = complexProp (mkS and_Conj ps) ;
+  Or ps = complexProp (mkS or_Conj ps) ;
+  If A B = complexProp (mkS if_then_Conj (mkListS A.pos B.pos)) ;
+  Not A = complexProp A.neg ;
+  All xs A B = complexProp (mkS (mkAdv for_Prep 
+    (mkNP all_Predet (mkNP a_Quant plNum (mkCN A xs)))) B.pos) ;
+  Exist xs A B = complexProp (mkS (mkAdv for_Prep 
+    (mkNP somePl_Det (mkCN A xs))) B.pos) ;
+  PAtom p = 
+    {pos = mkS p ; neg = mkS negativePol p ; isAtom = True} ;
+  IVar x = x ;
+  VString s = symb s ;
+  BaseProp A B = mkListS A.pos B.pos ; 
+  ConsProp A As = mkListS A.pos As ;
+  BaseVar x = x ;
+  ConsVar x xs = mkNP and_Conj (mkListNP x xs) ;
+oper 
+  complexProp : S -> {pos,neg : S ; isAtom : Bool} = \s -> {
+    pos = s ; 
+    neg = negS s ; 
+    isAtom = False 
+    } ;
+  negS : S -> S = \s -> mkS negativePol (mkCl (mkNP it_Pron) 
+      (mkNP the_Quant (mkCN (mkCN (P.mkN "case")) s))) ; 
+  if_Then_Conj : Conj = P.mkConj "if" "then" ;
+}
diff --git a/book/examples/chapter8/Logicb.gf b/book/examples/chapter8/Logicb.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Logicb.gf
@@ -0,0 +1,11 @@
+abstract Logic = {
+cat
+  Prop ; Ind ; Dom ; Var ; [Prop] {2} ; [Var] {1} ;
+fun
+  And, Or : [Prop] -> Prop ;
+  If : Prop -> Prop -> Prop ;
+  Not : Prop -> Prop ;
+  All, Exist : [Var] -> Dom -> Prop -> Prop ;
+  IVar : Var -> Ind ;
+  VString : String -> Var ;
+}
diff --git a/book/examples/chapter8/Sierpinski.gf b/book/examples/chapter8/Sierpinski.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter8/Sierpinski.gf
@@ -0,0 +1,16 @@
+concrete Sierpinski of Graftal = {
+  lincat N = {a : Str; b : Str} ;
+  lincat S = {s : Str} ;
+
+  lin z = {a = A; b = B} ;
+  lin s x = {
+    a = x.b ++ R ++ x.a ++ R ++ x.b ; 
+    b = x.a ++ L ++ x.b ++ L ++ x.a
+    } ;
+  lin c x = {s = "newpath 300 550 moveto" ++ x.a ++ "stroke showpage"} ;
+
+  oper A : Str = "0 2 rlineto" ;
+  oper B : Str = "0 2 rlineto" ;
+  oper L : Str = "+60 rotate" ;
+  oper R : Str = "-60 rotate" ;
+}
diff --git a/book/examples/chapter9/Anaphora.gf b/book/examples/chapter9/Anaphora.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Anaphora.gf
@@ -0,0 +1,17 @@
+abstract Anaphora = TestSemantics - [she_NP] ** {
+
+cat
+  Proof Prop ;
+
+fun
+  IfS : (A : S) -> (Proof (iS A) -> S) -> S ;
+
+  AnaNP : (A : CN) -> (a : Ind) -> Proof (iCN A a) -> NP ;
+
+  pe : (B : Ind -> Prop) -> Proof (Exist B) -> Ind ;
+  qe : (B : Ind -> Prop) -> (c : Proof (Exist B)) -> Proof (B (pe B c)) ;
+
+  pc : (A,B : Prop) -> Proof (And A B) -> Proof A ;
+  qc : (A,B : Prop) -> Proof (And A B) -> Proof B ;
+
+}
diff --git a/book/examples/chapter9/AnaphoraIta.gf b/book/examples/chapter9/AnaphoraIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/AnaphoraIta.gf
@@ -0,0 +1,17 @@
+concrete AnaphoraIta of Anaphora = TestSemanticsIta - [she_NP] ** 
+  open ResIta, Prelude, Formal in {
+
+lincat
+  Proof = {} ;
+
+lin
+  IfS A B = {s = "se" ++ A.s ++ B.s} ;
+
+  AnaNP cn _ _ = case cn.g of {
+    Masc => pronNP "lui" "lo" "gli" Masc  Sg Per3 ;
+    Fem  => pronNP "lei" "la" "le" Fem  Sg Per3
+    } ;
+
+  pe _ _ = constant [] ; ----
+
+}
diff --git a/book/examples/chapter9/Grammar.gf b/book/examples/chapter9/Grammar.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Grammar.gf
@@ -0,0 +1,39 @@
+abstract Grammar = {
+
+  flags startcat = S ;
+
+  cat 
+    S ; Cl ; NP ; VP ; AP ; CN ; 
+    Det ; N ; A ; V ; V2 ; AdA ; 
+    Tense ; Pol ;
+    Conj ;
+  data
+    UseCl   : Tense -> Pol -> Cl -> S ;
+    PredVP  : NP -> VP -> Cl ;
+    ComplV2 : V2 -> NP -> VP ;
+    DetCN   : Det -> CN -> NP ;
+    ModCN   : AP -> CN -> CN ;
+
+    CompAP  : AP -> VP ;
+    AdAP    : AdA -> AP -> AP ;
+
+    ConjS   : Conj -> S  -> S  -> S ;
+    ConjNP  : Conj -> NP -> NP -> NP ;
+
+    UseV    : V -> VP ;
+    UseN    : N -> CN ;
+    UseA    : A -> AP ;
+
+    a_Det, the_Det, every_Det : Det ;
+    this_Det, these_Det : Det ;
+    that_Det, those_Det : Det ;
+    i_NP, she_NP, we_NP : NP ;
+    very_AdA : AdA ;
+
+    Pos, Neg : Pol ;
+    Pres, Perf : Tense ;
+
+    and_Conj, or_Conj : Conj ;
+
+  
+}
diff --git a/book/examples/chapter9/GrammarIta.gf b/book/examples/chapter9/GrammarIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/GrammarIta.gf
@@ -0,0 +1,141 @@
+concrete GrammarIta of Grammar = open ResIta, Prelude in {
+  lincat  
+    S  = {s : Str} ;
+    Cl = {s : ResIta.Tense => Bool => Str} ; 
+    NP = ResIta.NP ;  
+      -- {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ; 
+    VP = ResIta.VP ;  
+      -- {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ;
+    AP = {s : Gender => Number => Str ; isPre : Bool} ;
+    CN = Noun ;           -- {s : Number => Str ; g : Gender} ;
+    Det = {s : Gender => Case => Str ; n : Number} ;
+    N = Noun ;            -- {s : Number => Str ; g : Gender} ;
+    A = Adj ;             -- {s : Gender => Number => Str ; isPre : Bool} ;
+    V = Verb ;            -- {s : VForm => Str ; aux : Aux} ;
+    V2 = Verb ** {c : Case} ;
+    AdA = {s : Str} ;
+    Pol = {s : Str ; b : Bool} ;
+    Tense = {s : Str ; t : ResIta.Tense} ;
+    Conj = {s : Str ; n : Number} ;
+  lin
+    UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! p.b} ; 
+    PredVP np vp = 
+      let 
+        subj = (np.s ! Nom).obj ;
+        obj  = vp.obj ! np.a ;
+        clit = vp.clit ;
+        verb = table {
+          Pres => agrV vp.v np.a ;
+          Perf => agrV (auxVerb vp.v.aux) np.a ++ agrPart vp.v np.a vp.clitAgr
+          }
+      in {
+        s = \\t,b => subj ++ neg b ++ clit ++ verb ! t ++ obj
+      } ;
+
+    ComplV2 v2 np = 
+      let
+        nps = np.s ! v2.c
+      in {
+        v = v2 ; 
+        clit = nps.clit ; 
+        clitAgr = case <nps.isClit,v2.c> of {
+          <True,Acc> => CAgr np.a ;
+          _ => CAgrNo
+          } ;
+        obj  = \\_ => nps.obj
+        } ;
+
+    UseV v = {
+      v = v ; 
+      clit = [] ; 
+      clitAgr = CAgrNo ;
+      obj = \\_ => []
+      } ;
+
+    DetCN det cn = {
+      s = \\c => {
+        obj = det.s ! cn.g ! c ++ cn.s ! det.n ; 
+        clit = [] ; 
+        isClit = False
+        } ;
+      a = Ag cn.g det.n Per3
+      } ;
+
+    ModCN ap cn = {
+      s = \\n => preOrPost ap.isPre (ap.s ! cn.g ! n) (cn.s ! n) ;
+      g = cn.g
+      } ;
+
+    CompAP ap = {
+      v = essere_V ; 
+      clit = [] ; 
+      clitAgr = CAgrNo ;
+      obj = \\ag => case ag of {
+        Ag g n _ => ap.s ! g ! n
+        }
+      } ;
+
+    AdAP ada ap = {
+      s = \\g,n => ada.s ++ ap.s ! g ! n ;
+      isPre = ap.isPre ;
+      } ;
+
+    ConjNP co nx ny = {
+      s = \\c => {
+        obj = (nx.s ! c).obj ++ co.s ++ (ny.s ! c).obj ; 
+        clit = [] ; 
+        isClit = False
+        } ;
+      a = conjAgr co.n nx.a ny.a
+      } ;
+
+    ConjS co x y = {s = x.s ++ co.s ++ y.s} ;
+
+    UseN n = n ;
+
+    UseA adj = adj ;
+
+    a_Det = adjDet (mkAdj "un" "una" [] [] True) Sg ;
+
+    every_Det = adjDet (regAdj "ogni") Sg ;
+
+    the_Det = {
+      s = table {
+        Masc => table {
+          Nom | Acc => elisForms "lo" "l'" "il" ;
+          Dat => elisForms "allo" "all'" "al"
+          } ;
+        Fem => table {
+          Nom | Acc => elisForms "la" "'l" "la" ;
+          Dat => elisForms "alla" "all'" "alla"
+          }
+        } ;
+      n = Sg
+      } ;
+        
+    this_Det = adjDet (regAdj "questo") Sg ;
+    these_Det = adjDet (regAdj "questo") Pl ;
+    that_Det = adjDet quello_A Sg ;
+    those_Det = adjDet quello_A Pl ;
+
+    i_NP =   pronNP "io"  "mi" "mi" Masc Sg Per1 ;
+    she_NP = pronNP "lei" "la" "le" Fem  Sg Per3 ;
+    we_NP =  pronNP "noi" "ci" "ci" Masc Pl Per1 ;
+
+    very_AdA = ss "molto" ;
+
+    Pos  = {s = [] ; b = True} ;
+    Neg  = {s = [] ; b = False} ;
+    Pres = {s = [] ; t = ResIta.Pres} ;
+    Perf = {s = [] ; t = ResIta.Perf} ;
+
+    and_Conj = {s = "e" ; n = Pl} ;
+    or_Conj  = {s = "o" ; n = Sg} ;
+
+  oper
+    quello_A : Adj = mkAdj 
+      (elisForms "quello" "quell'" "quel") "quella"
+      (elisForms "quegli" "quegli" "quei") "quelle"
+      True ;
+
+}
diff --git a/book/examples/chapter9/Logic.gf b/book/examples/chapter9/Logic.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Logic.gf
@@ -0,0 +1,9 @@
+abstract Logic = {
+  cat
+    Prop ; Ind ;
+  data
+    And, Or, If : Prop -> Prop -> Prop ;
+    Not         : Prop -> Prop ;
+    All, Exist  : (Ind -> Prop) -> Prop ;
+    Past        : Prop -> Prop ;
+}
diff --git a/book/examples/chapter9/LogicIta.gf b/book/examples/chapter9/LogicIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/LogicIta.gf
@@ -0,0 +1,54 @@
+concrete LogicIta of Logic = GrammarIta ** open ResIta, Formal, Prelude in {
+
+
+lincat
+  T, I = SS ;
+lin
+  And x y = infixSS "&" x y ;
+  Or x y = infixSS "v" x y ;
+  If x y = infixSS "->" x y ;
+  Not x = prefixSS "~" x ;
+  All P = prefixSS (parenth ("A" ++ P.$0)) P ;
+  Exist P = prefixSS (parenth ("E" ++ P.$0)) P ;
+  Past P = prefixSS "Past" P ;
+
+lin
+  iN f = star (f.s ! Sg) ;
+  iA f = star (f.s ! Masc ! Sg) ;
+  iV f = star (f.s ! VInf) ;
+  iV2 f x y = star (f.s ! VInf) (cc2 x y) ;
+
+oper star : Str -> SS -> SS = \f,x -> prefixSS f (ss (parenth x.s)) ;
+
+{-
+
+lincat
+  T, I = TermPrec ;
+lin
+  And = infixl 2 "&" ;
+  Or  = infixl 2 "v" ;
+  If  = infixr 1 "->" ;
+--  Not = prefix 3 "~" ;
+--  All : (I -> T) -> T ;
+--  Exist : (I -> T) -> T ;
+--  Past : T -> T ;
+
+lin
+  iS   : S -> T ;
+  iCl  : Cl -> T ;
+  iNP  : NP -> (I -> T) -> T ;
+  iVP  : VP -> I -> T ;
+  iAP  : AP -> I -> T ;
+  iCN  : CN -> I -> T ;
+  iDet : Det -> (I -> T) -> (I -> T) -> T ;
+  iN   : N -> I -> T ;
+  iA   : A -> I -> T ;
+  iV   : V -> I -> T ;
+  iV2  : V2 -> I -> I -> T ;
+  iAdA : AdA -> (I -> T) -> I -> T ;
+  iTense : Tense -> T -> T ;
+  iPol  : Pol  -> T -> T ;
+  iConj : Conj -> T -> T -> T ;
+-}
+
+}
diff --git a/book/examples/chapter9/LogicSymb.gf b/book/examples/chapter9/LogicSymb.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/LogicSymb.gf
@@ -0,0 +1,13 @@
+concrete LogicSymb of Logic = open Formal, Prelude in {
+
+lincat
+  Prop, Ind = TermPrec ;
+lin
+  And = infixl 2 "\\&" ;
+  Or  = infixl 2 "\\vee" ;
+  If  = infixr 1 "\\sup" ;
+  Not = prefix 3 "\\sim" ;
+  All P = prefix 3 (parenth ("\\forall" ++ P.$0)) P ;
+  Exist P = prefix 3 (parenth ("\\exists" ++ P.$0)) P ;
+  Past = prefix 3 "P" ;
+}
diff --git a/book/examples/chapter9/ParadigmsIta.gf b/book/examples/chapter9/ParadigmsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/ParadigmsIta.gf
@@ -0,0 +1,47 @@
+resource ParadigmsIta = GrammarIta [N,A,V] ** 
+  open ResIta, GrammarIta, Prelude in {
+
+oper
+  masculine : Gender = Masc ;
+  feminine : Gender = Fem ;
+
+  accusative : Case = Acc ;
+  dative : Case = Dat ;
+
+  mkN = overload {
+    mkN : (vino : Str) -> N 
+      = \n -> lin N (regNoun n) ;
+    mkN : (uomo, uomini : Str) -> Gender -> N 
+      = \s,p,g -> lin N (mkNoun s p g) ;
+    } ;
+
+  mkA = overload {
+    mkA : (nero : Str) -> A 
+      = \a -> lin A (regAdj a) ;
+    mkA : (buono,buona,buoni,buone : Str) -> Bool -> A 
+      = \sm,sf,pm,pf,p -> lin A (mkAdj sm sf pm pf False) ;
+    } ;
+
+  preA : A -> A
+      = \a -> lin A {s = a.s ; isPre = True} ;
+
+  mkV = overload {
+    mkV : (finire : Str) -> V 
+      = \v -> lin V (regVerb v) ;
+    mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andato : Str) -> V 
+      = \i,p1,p2,p3,p4,p5,p6,p -> lin V (mkVerb i p1 p2 p3 p4 p5 p6 p Avere) ;
+    } ;
+
+  essereV : V -> V
+    = \v -> lin V {s = v.s ; aux = Essere} ;
+
+  mkV2 = overload {
+    mkV2 : Str -> V2
+      = \s -> lin V2 (regVerb s ** {c = accusative}) ;
+    mkV2 : V -> V2
+      = \v -> lin V2 (v ** {c = accusative}) ;
+    mkV2 : V -> Case -> V2
+      = \v,c -> lin V2 (v ** {c = c}) ;
+    } ;
+
+}
diff --git a/book/examples/chapter9/ResIta.gf b/book/examples/chapter9/ResIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/ResIta.gf
@@ -0,0 +1,178 @@
+resource ResIta = open Prelude in {
+
+-- parameters
+
+param
+  Number = Sg | Pl ;
+  Gender = Masc | Fem ;
+  Case   = Nom | Acc | Dat ;
+  Agr    = Ag Gender Number Person ;
+  Aux    = Avere | Essere ;
+  Tense  = Pres | Perf ;
+  Person = Per1 | Per2 | Per3 ;
+
+  VForm = VInf | VPres Number Person | VPart Gender Number ;
+
+  ClitAgr = CAgrNo | CAgr Agr ;
+
+-- parts of speech
+
+oper
+  VP = {
+    v : Verb ; 
+    clit : Str ; 
+    clitAgr : ClitAgr ; 
+    obj : Agr => Str
+    } ;
+  NP = {
+    s : Case => {clit,obj : Str ; isClit : Bool} ; 
+    a : Agr
+    } ; 
+
+-- the preposition word of an abstract case
+
+  prepCase : Case -> Str = \c -> case c of {
+    Dat => "a" ;
+    _ => []
+    } ;
+
+-- for predication
+
+  agrV : Verb -> Agr -> Str = \v,a -> case a of {
+    Ag _ n p => v.s ! VPres n p
+    } ;
+
+  auxVerb : Aux -> Verb = \a -> case a of {
+    Avere => 
+      mkVerb "avere" "ho" "hai" "ha" "abbiamo" "avete" "hanno" "avuto" Avere ;
+    Essere => 
+      mkVerb "essere" "sono" "sei" "è" "siamo" "siete" "sono" "stato" Essere
+    } ;
+
+  agrPart : Verb -> Agr -> ClitAgr -> Str = \v,a,c -> case v.aux of {
+    Avere  => case c of {
+      CAgr (Ag g n _) => v.s ! VPart g n ;
+      _ => v.s ! VPart Masc Sg
+      } ;
+    Essere => case a of {
+      Ag g n _ => v.s ! VPart g n
+      }
+    } ;
+
+  neg : Bool -> Str = \b -> case b of {True => [] ; False => "non"} ;
+
+  essere_V = auxVerb Essere ;
+
+-- for coordination
+
+  conjAgr : Number -> Agr -> Agr -> Agr = \n,xa,ya -> 
+    let 
+      x = agrFeatures xa ; y = agrFeatures ya
+    in Ag 
+      (conjGender x.g y.g) 
+      (conjNumber (conjNumber x.n y.n) n)
+      (conjPerson x.p y.p) ;
+
+  agrFeatures : Agr -> {g : Gender ; n : Number ; p : Person} = \a -> 
+    case a of {Ag g n p => {g = g ; n = n ; p = p}} ;
+
+  conjGender : Gender -> Gender -> Gender = \g,h ->
+    case g of {Masc => Masc ; _ => h} ;
+
+  conjNumber : Number -> Number -> Number = \m,n ->
+    case m of {Pl => Pl ; _ => n} ;
+
+  conjPerson : Person -> Person -> Person = \p,q ->
+    case <p,q> of {
+      <Per1,_> | <_,Per1> => Per1 ;
+      <Per2,_> | <_,Per2> => Per2 ;
+      _                   => Per3
+      } ;
+
+
+
+-- for morphology
+
+  Noun : Type = {s : Number => Str ; g : Gender} ;
+  Adj  : Type = {s : Gender => Number => Str ; isPre : Bool} ;
+  Verb : Type = {s : VForm => Str ; aux : Aux} ;
+
+  mkNoun : Str -> Str -> Gender -> Noun = \vino,vini,g -> {
+    s = table {Sg => vino ; Pl => vini} ;
+    g = g
+    } ;
+
+  regNoun : Str -> Noun = \vino -> case vino of {
+    fuo + c@("c"|"g") + "o" => mkNoun vino (fuo + c + "hi") Masc ;
+    ol  + "io" => mkNoun vino (ol + "i") Masc ;
+    vin + "o" => mkNoun vino (vin + "i") Masc ;
+    cas + "a" => mkNoun vino (cas + "e") Fem ;
+    pan + "e" => mkNoun vino (pan + "i") Masc ;
+    _ => mkNoun vino vino Masc 
+    } ;
+
+  mkAdj : (_,_,_,_ : Str) -> Bool -> Adj = \buono,buona,buoni,buone,p -> {
+    s = table {
+          Masc => table {Sg => buono ; Pl => buoni} ;
+          Fem  => table {Sg => buona ; Pl => buone}
+        } ;
+    isPre = p
+    } ;
+
+  regAdj : Str -> Adj = \nero -> case nero of {
+    ner + "o"  => mkAdj nero (ner + "a") (ner + "i") (ner + "e") False ;
+    verd + "e" => mkAdj nero nero (verd + "i") (verd + "i") False ;
+    _ => mkAdj nero nero nero nero False
+    } ;
+
+  mkVerb : (_,_,_,_,_,_,_,_ : Str) -> Aux -> Verb = 
+    \amare,amo,ami,ama,amiamo,amate,amano,amato,aux -> {
+    s = table {
+          VInf          => amare ;
+          VPres Sg Per1 => amo ;
+          VPres Sg Per2 => ami ;
+          VPres Sg Per3 => ama ;
+          VPres Pl Per1 => amiamo ;
+          VPres Pl Per2 => amate ;
+          VPres Pl Per3 => amano ;
+          VPart g n     => (regAdj amato).s ! g ! n
+          } ;
+    aux = aux
+    } ;
+
+  regVerb : Str -> Verb = \amare -> case amare of {
+    am  + "are" => mkVerb amare (am+"o") (am+"i") (am+"a") 
+                     (am+"iamo") (am+"ate") (am+"ano") (am+"ato") Avere ;
+    tem + "ere" => mkVerb amare (tem+"o") (tem+"i") (tem+"e") 
+                     (tem+"iamo") (tem+"ete") (tem+"ono") (tem+"uto") Avere ;
+    fin + "ire" => mkVerb amare (fin+"isco") (fin+"isci") (fin+"isce") 
+                     (fin+"iamo") (fin+"ite") (fin+"iscono") (fin+"ito") Avere
+    } ; 
+
+-- for structural words
+
+  adjDet : Adj -> Number -> {s : Gender => Case => Str ; n : Number} = 
+  \adj,n -> {
+    s = \\g,c => prepCase c ++ adj.s ! g ! n ;
+    n = n
+    } ;
+
+  pronNP : (s,a,d : Str) -> Gender -> Number -> Person -> NP = 
+  \s,a,d,g,n,p -> {
+    s = table {
+      Nom => {clit = [] ; obj = s  ; isClit = False} ;
+      Acc => {clit = a  ; obj = [] ; isClit = True} ;
+      Dat => {clit = d  ; obj = [] ; isClit = True}
+      } ;
+    a = Ag g n p
+    } ;
+
+-- phonological auxiliaries
+
+  vowel    : pattern Str = #("a" | "e" | "i" | "o" | "u" | "h") ;
+  s_impuro : pattern Str = #("z" | "s" + ("b"|"c"|"d"|"f"|"m"|"p"|"q"|"t")) ;
+
+  elisForms : (_,_,_ : Str) -> Str = \lo,l',il ->
+    pre {#s_impuro => lo ; #vowel => l' ; _ => il} ;
+
+}
diff --git a/book/examples/chapter9/Semantics.gf b/book/examples/chapter9/Semantics.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Semantics.gf
@@ -0,0 +1,39 @@
+abstract Semantics = Grammar, Logic ** {
+fun
+  iS     : S     -> Prop ;
+  iCl    : Cl    -> Prop ;
+  iNP    : NP    -> (Ind -> Prop) -> Prop ;
+  iVP    : VP    -> Ind -> Prop ;
+  iAP    : AP    -> Ind -> Prop ;
+  iCN    : CN    -> Ind -> Prop ;
+  iDet   : Det   -> (Ind -> Prop) -> (Ind -> Prop) -> Prop ;
+  iN     : N     -> Ind -> Prop ;
+  iA     : A     -> Ind -> Prop ;
+  iV     : V     -> Ind -> Prop ;
+  iV2    : V2    -> Ind -> Ind -> Prop ;
+  iAdA   : AdA   -> (Ind -> Prop) -> Ind -> Prop ;
+  iTense : Tense -> Prop -> Prop ;
+  iPol   : Pol   -> Prop -> Prop ;
+  iConj  : Conj  -> Prop -> Prop -> Prop ;
+def
+  iS  (UseCl t p cl) = iTense t (iPol p (iCl cl)) ;
+  iCl (PredVP np vp) = iNP np (iVP vp) ;
+  iVP (ComplV2 v2 np) i = iNP np (iV2 v2 i) ;
+  iNP (DetCN det cn) f = iDet det (iCN cn) f ;
+  iCN (ModCN ap cn) i = And (iAP ap i) (iCN cn i) ;
+  iVP (CompAP ap) i = iAP ap i ;
+  iAP (AdAP ada ap) i = iAdA ada (iAP ap) i ;
+  iS  (ConjS conj x y) = iConj conj (iS x) (iS y) ;
+  iNP (ConjNP conj x y) f = iConj conj (iNP x f) (iNP y f) ;
+  iVP (UseV v) i = iV v i ;
+  iAP (UseA a) i = iA a i ;
+  iCN (UseN n) i = iN n i ;
+  iDet a_Det d f = Exist (\x -> And (d x) (f x)) ;
+  iDet every_Det d f = All (\x -> If (d x) (f x)) ;
+  iPol Pos t = t ;
+  iPol Neg t = Not t ;
+  iTense Pres t = t ;
+  iTense Perf t = Past t ;
+  iConj and_Conj a b = And a b ;
+  iConj or_Conj  a b = Or a b ;
+}
diff --git a/book/examples/chapter9/SemanticsIta.gf b/book/examples/chapter9/SemanticsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/SemanticsIta.gf
@@ -0,0 +1,42 @@
+concrete SemanticsIta of Semantics = GrammarIta, LogicSymb ** open ResIta, Formal, Prelude in {
+
+lin
+  iN f = star (f.s ! Sg) ;
+  iA f = star (f.s ! Masc ! Sg) ;
+  iV f = star (f.s ! VInf) ;
+  iV2 f x y = star (f.s ! VInf) (cc2 x y) ;
+
+oper star : Str -> SS -> TermPrec = \f,x -> prefix 3 (f ++ "*") (constant (parenth x.s)) ;
+
+{-
+
+lincat
+  T, I = TermPrec ;
+lin
+  And = infixl 2 "&" ;
+  Or  = infixl 2 "v" ;
+  If  = infixr 1 "->" ;
+--  Not = prefix 3 "~" ;
+--  All : (I -> T) -> T ;
+--  Exist : (I -> T) -> T ;
+--  Past : T -> T ;
+
+lin
+  iS   : S -> T ;
+  iCl  : Cl -> T ;
+  iNP  : NP -> (I -> T) -> T ;
+  iVP  : VP -> I -> T ;
+  iAP  : AP -> I -> T ;
+  iCN  : CN -> I -> T ;
+  iDet : Det -> (I -> T) -> (I -> T) -> T ;
+  iN   : N -> I -> T ;
+  iA   : A -> I -> T ;
+  iV   : V -> I -> T ;
+  iV2  : V2 -> I -> I -> T ;
+  iAdA : AdA -> (I -> T) -> I -> T ;
+  iTense : Tense -> T -> T ;
+  iPol  : Pol  -> T -> T ;
+  iConj : Conj -> T -> T -> T ;
+-}
+
+}
diff --git a/book/examples/chapter9/Syntax.gf b/book/examples/chapter9/Syntax.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Syntax.gf
@@ -0,0 +1,47 @@
+interface Syntax = Grammar - 
+    [UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,
+     ConjS,ConjNP,UseN,UseA,Pres,Perf,Pos,Neg] **
+  open Grammar in {
+
+oper
+  mkS = overload {
+    mkS : Cl -> S = UseCl Pres Pos ;
+    mkS : Tense -> Cl -> S = \t -> UseCl t Pos ;
+    mkS : Pol -> Cl -> S = UseCl Pres ;
+    mkS : Tense -> Pol -> Cl -> S = UseCl ;
+    mkS : Conj -> S -> S -> S = ConjS ;
+    } ;
+
+  mkCl = overload {
+    mkCl : NP -> V  -> Cl = \np,v -> PredVP np (UseV v) ;
+    mkCl : NP -> V2 -> NP -> Cl = \np,v,o -> PredVP np (ComplV2 v o) ;
+    mkCl : NP -> A  -> Cl = \np,a -> PredVP np (CompAP (UseA a)) ;
+    mkCl : NP -> AP -> Cl = \np,ap -> PredVP np (CompAP ap) ;
+    mkCl : NP -> VP -> Cl = PredVP ;
+    } ;
+
+  mkAP = overload {
+    mkAP : A -> AP = UseA ;
+    mkAP : AdA -> AP -> AP = AdAP ;
+    } ;
+
+  mkNP = overload {
+    mkNP : Det -> N -> NP = \d,n -> DetCN d (UseN n) ;
+    mkNP : Det -> CN -> NP = \d,n -> DetCN d n ;
+    mkNP : Conj -> NP -> NP -> NP = ConjNP ;
+    } ;
+
+  mkCN = overload {
+    mkCN : N  -> CN = UseN ;
+    mkCN : A  -> N  -> CN = \a,n -> ModCN (UseA a) (UseN n) ; 
+    mkCN : A  -> CN -> CN = \a,n -> ModCN (UseA a) n ; 
+    mkCN : AP -> N  -> CN = \a,n -> ModCN a (UseN n) ; 
+    mkCN : AP -> CN -> CN = \a,n -> ModCN a n ; 
+    } ;
+
+  presTense : Tense = Pres ;
+  perfTense : Tense = Perf ;
+  posPol : Pol = Pos ;
+  negPol : Pol = Neg ;
+
+}
diff --git a/book/examples/chapter9/SyntaxIta.gf b/book/examples/chapter9/SyntaxIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/SyntaxIta.gf
@@ -0,0 +1,3 @@
+instance SyntaxIta of Syntax = GrammarIta - 
+    [PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,UseN,UseA] **
+  open GrammarIta in {} ;
diff --git a/book/examples/chapter9/Test.gf b/book/examples/chapter9/Test.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/Test.gf
@@ -0,0 +1,9 @@
+abstract Test = Grammar ** {
+
+fun
+  man_N, woman_N, house_N, tree_N : N ;
+  big_A, small_A, green_A : A ;
+  walk_V, arrive_V : V ;
+  love_V2, please_V2 : V2 ;
+
+} ;
diff --git a/book/examples/chapter9/TestIta.gf b/book/examples/chapter9/TestIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/TestIta.gf
@@ -0,0 +1,17 @@
+concrete TestIta of Test = GrammarIta ** open ParadigmsIta in {
+
+lin
+  man_N = mkN "uomo" "uomini" masculine ;
+  woman_N = mkN "donna" ;
+  house_N = mkN "casa" ;
+  tree_N = mkN "albero" ;
+  big_A = preA (mkA "grande") ;
+  small_A = preA (mkA "piccolo") ;
+  green_A = mkA "verde" ;
+  walk_V = mkV "camminare" ;
+  arrive_V = essereV (mkV "arrivare") ;
+  love_V2 = mkV2 "amare" ;
+  please_V2 = mkV2 (essereV (mkV "piacere" "piaccio" "piaci" "piace" 
+                        "piacciamo" "piacete" "piacciono" "piaciuto")) dative ;
+
+} ;
diff --git a/book/examples/chapter9/TestSemantics.gf b/book/examples/chapter9/TestSemantics.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/TestSemantics.gf
@@ -0,0 +1,1 @@
+abstract TestSemantics = Test, Semantics ;
diff --git a/book/examples/chapter9/TestSemanticsIta.gf b/book/examples/chapter9/TestSemanticsIta.gf
new file mode 100644
--- /dev/null
+++ b/book/examples/chapter9/TestSemanticsIta.gf
@@ -0,0 +1,1 @@
+concrete TestSemanticsIta of TestSemantics = TestIta, SemanticsIta ;
diff --git a/build-binary-dist.sh b/build-binary-dist.sh
new file mode 100644
--- /dev/null
+++ b/build-binary-dist.sh
@@ -0,0 +1,35 @@
+#! /bin/bash
+
+### This script builds a binary distribution of GF from the source package
+### that this script is a part of. It also assumes that you have installed
+### the Haskell Platform, version 2010.1.0.0 or 2010.2.0.0
+
+destdir=/tmp/gf-build-binary-dist  # assemble binary dist here
+prefix=/usr/local                  # where to install
+targz=gf-bin.tar.gz                # the final tar file, should be renamed 
+langs=""                           # which languages?
+#langs="langs=-Pol" # temporary problem with Polish, omit it
+
+set -e                             # Stop if an error occurs
+set -x                             # print commands before exuting them
+
+cabal install    # gf needs to be installed before building gf-server below
+
+runhaskell Setup.hs configure --user --prefix $prefix
+runhaskell Setup.hs build $langs
+runhaskell Setup.hs copy --destdir=$destdir $langs
+
+(
+cd src/server
+
+## If you don't already have the packages gf-server depends on, this is
+## the easiest way to install them:
+#cabal install
+
+runhaskell Setup.hs configure --user --prefix $prefix
+runhaskell Setup.hs build
+runhaskell Setup.hs copy --destdir=$destdir
+)
+tar -C $destdir/$prefix -zcf $targz .
+echo "Created $targz, rename it to something more informative"
+rm -r $destdir
diff --git a/contrib/c-bindings/PGFFFI.hs b/contrib/c-bindings/PGFFFI.hs
--- a/contrib/c-bindings/PGFFFI.hs
+++ b/contrib/c-bindings/PGFFFI.hs
@@ -1,5 +1,5 @@
 -- GF C Bindings
--- Copyright (C) 2008-2009 Kevin Kofler
+-- Copyright (C) 2008-2010 Kevin Kofler
 --
 -- This library is free software; you can redistribute it and/or
 -- modify it under the terms of the GNU Lesser General Public
@@ -24,7 +24,7 @@
 import Control.Exception
 import IO
 import Data.Maybe
-import GF.Text.Lexing
+-- import GF.Text.Lexing
 
 
 -- Utility functions used in the implementation (not exported):
@@ -53,8 +53,7 @@
     return buf
 
 
--- PGF:
-
+-- * PGF
 foreign export ccall "gf_freePGF" freeStablePtr :: StablePtr PGF -> IO ()
 
 foreign export ccall gf_readPGF :: CString -> IO (StablePtr PGF)
@@ -63,6 +62,34 @@
   result <- (readPGF p)
   (newStablePtr result)
 
+-- * Identifiers
+foreign export ccall "gf_freeCId" freeStablePtr :: StablePtr CId -> IO ()
+
+foreign export ccall gf_mkCId :: CString -> IO (StablePtr CId)
+gf_mkCId str = do
+  s <- (peekCString str)
+  (newStablePtr (mkCId s))
+
+foreign export ccall gf_wildCId :: IO (StablePtr CId)
+gf_wildCId = do
+  (newStablePtr (wildCId))
+
+foreign export ccall gf_showCId :: StablePtr CId -> IO CString
+gf_showCId cid = do
+  c <- (deRefStablePtr cid)
+  (newCString (showCId c))
+
+foreign export ccall gf_readCId :: CString -> IO (StablePtr CId)
+gf_readCId str = do
+  s <- (peekCString str)
+  case (readCId s) of
+    Just x -> (newStablePtr x)
+    Nothing -> (return (nullStablePtr))
+
+-- TODO: So we can create, print and free a CId, but can we do anything useful with it?
+--       We need some kind of C wrapper for the tree datastructures.
+
+-- * Languages
 foreign export ccall "gf_freeLanguage" freeStablePtr :: StablePtr Language -> IO ()
 
 foreign export ccall gf_showLanguage :: StablePtr Language -> IO CString
@@ -95,12 +122,16 @@
     Just s -> (newCString s)
     Nothing -> (return nullPtr)
 
+-- * Types
 foreign export ccall "gf_freeType" freeStablePtr :: StablePtr Type -> IO ()
 
+-- TODO: Hypo
+
+-- TODO: allow nonempty scope
 foreign export ccall gf_showType :: StablePtr Type -> IO CString
 gf_showType tp = do
   t <- (deRefStablePtr tp)
-  (newCString (showType t))
+  (newCString (showType [] t))
 
 foreign export ccall gf_readType :: CString -> IO (StablePtr Type)
 gf_readType str = do
@@ -109,7 +140,9 @@
     Just x -> (newStablePtr x)
     Nothing -> (return (nullStablePtr))
 
-foreign export ccall gf_categories :: StablePtr PGF -> IO (Ptr (StablePtr Type))
+-- TODO: mkType, mkHypo, mkDepHypo, mkImplHypo
+
+foreign export ccall gf_categories :: StablePtr PGF -> IO (Ptr (StablePtr CId))
 gf_categories pgf = do
   p <- (deRefStablePtr pgf)
   (listToArray (categories p))
@@ -119,51 +152,20 @@
   p <- (deRefStablePtr pgf)
   (newStablePtr (startCat p))
 
-foreign export ccall "gf_freeCId" freeStablePtr :: StablePtr CId -> IO ()
-
-foreign export ccall gf_mkCId :: CString -> IO (StablePtr CId)
-gf_mkCId str = do
-  s <- (peekCString str)
-  (newStablePtr (mkCId s))
-
-foreign export ccall gf_prCId :: StablePtr CId -> IO CString
-gf_prCId cid = do
-  c <- (deRefStablePtr cid)
-  (newCString (prCId c))
-
-foreign export ccall gf_wildCId :: IO (StablePtr CId)
-gf_wildCId = do
-  (newStablePtr (wildCId))
-
--- TODO: So we can create, print and free a CId, but can we do anything useful with it?
---       We need some kind of C wrapper for the tree datastructures.
+-- TODO: * Functions
 
+-- * Expressions & Trees
+-- ** Tree
 foreign export ccall "gf_freeTree" freeStablePtr :: StablePtr Tree -> IO ()
 
--- TODO: Literal(..)
--- (Not much use exporting a free function for that type if you can't do anything with it.)
-
-foreign export ccall gf_showTree :: StablePtr Tree -> IO CString
-gf_showTree tree = do
-  t <- (deRefStablePtr tree)
-  (newCString (showTree t))
-
-foreign export ccall gf_readTree :: CString -> IO (StablePtr Tree)
-gf_readTree str = do
-  s <- (peekCString str)
-  case (readTree s) of
-    Just x -> (newStablePtr x)
-    Nothing -> (return (nullStablePtr))
-
+-- ** Expr
 foreign export ccall "gf_freeExpr" freeStablePtr :: StablePtr Expr -> IO ()
 
--- TODO: Equation(..)
--- (Not much use exporting a free function for that type if you can't do anything with it.)
-
+-- TODO: allow nonempty scope
 foreign export ccall gf_showExpr :: StablePtr Expr -> IO CString
 gf_showExpr expr = do
   e <- (deRefStablePtr expr)
-  (newCString (showExpr e))
+  (newCString (showExpr [] e))
 
 foreign export ccall gf_readExpr :: CString -> IO (StablePtr Expr)
 gf_readExpr str = do
@@ -172,6 +174,8 @@
     Just x -> (newStablePtr x)
     Nothing -> (return (nullStablePtr))
 
+-- * Operations
+-- ** Linearization
 foreign export ccall gf_linearize :: StablePtr PGF -> StablePtr Language -> StablePtr Tree -> IO CString
 gf_linearize pgf lang tree = do
   p <- (deRefStablePtr pgf)
@@ -179,15 +183,19 @@
   t <- (deRefStablePtr tree)
   (newCString (linearize p l t))
 
--- TODO: linearizeAllLang, linearizeAll
+-- TODO: linearizeAllLang, linearizeAll, bracketedLinearize, tabularLinearizes
+-- TODO: groupResults
 
-foreign export ccall gf_showPrintName :: StablePtr PGF -> StablePtr Language -> StablePtr Type -> IO CString
-gf_showPrintName pgf lang tp = do
+foreign export ccall gf_showPrintName :: StablePtr PGF -> StablePtr Language -> StablePtr CId -> IO CString
+gf_showPrintName pgf lang cid = do
   p <- (deRefStablePtr pgf)
   l <- (deRefStablePtr lang)
-  t <- (deRefStablePtr tp)
-  (newCString (showPrintName p l t))
+  c <- (deRefStablePtr cid)
+  (newCString (showPrintName p l c))
 
+-- TODO: BracketedString(..), FId, LIndex, Forest.showBracketedString
+
+-- ** Parsing
 foreign export ccall gf_parse :: StablePtr PGF -> StablePtr Language -> StablePtr Type -> CString -> IO (Ptr (StablePtr Tree))
 gf_parse pgf lang cat input = do
   p <- (deRefStablePtr pgf)
@@ -196,32 +204,26 @@
   i <- (peekCString input)
   (listToArray (parse p l c i))
 
-foreign export ccall gf_canParse :: StablePtr PGF -> StablePtr Language -> IO CInt
-gf_canParse pgf lang = do
-  p <- (deRefStablePtr pgf)
-  l <- (deRefStablePtr lang)
-  case (canParse p l) of
-    True -> (return 1)
-    False -> (return 0)
-
--- TODO: parseAllLang, parseAll
-
--- TODO: tree2expr, expr2tree, PGF.compute, paraphrase, typecheck
-
--- TODO: complete, Incremental.ParseState, initState, Incremental.nextState, Incremental.getCompletions, extractExps
+-- TODO: parseAllLang, parseAll, parse_, parseWithRecovery
 
--- TODO: generateRandom, generateAll, generateAllDepth
+-- TODO: ** Evaluation
+-- TODO: ** Type Checking
+-- TODO: ** Low level parsing API
+-- TODO: ** Generation
+-- TODO: ** Morphological Analysis
+-- TODO: ** Visualizations
 
+-- TODO: * Browsing
 
 -- GF.Text.Lexing:
 
-foreign export ccall gf_stringOp :: CString -> CString -> IO CString
-gf_stringOp op str = do
-  o <- (peekCString op)
-  s <- (peekCString str)
-  case (stringOp o) of
-    Just fn -> (newCString (fn s))
-    Nothing -> (return nullPtr)
+-- foreign export ccall gf_stringOp :: CString -> CString -> IO CString
+-- gf_stringOp op str = do
+--   o <- (peekCString op)
+--   s <- (peekCString str)
+--   case (stringOp o) of
+--     Just fn -> (newCString (fn s))
+--     Nothing -> (return nullPtr)
 
 
 -- Unused (exception handling):
diff --git a/contrib/c-bindings/build-gfctest.sh b/contrib/c-bindings/build-gfctest.sh
--- a/contrib/c-bindings/build-gfctest.sh
+++ b/contrib/c-bindings/build-gfctest.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # GF C Bindings
-# Copyright (C) 2008-2009 Kevin Kofler
+# Copyright (C) 2008-2010 Kevin Kofler
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -15,6 +15,8 @@
 #
 # You should have received a copy of the GNU Lesser General Public
 # License along with this library; if not, see <http://www.gnu.org/licenses/>.
-
-ghc --make -fglasgow-exts -O2 -no-hs-main $* -c PGFFFI.hs &&
-ghc --make -fglasgow-exts -O2 -no-hs-main $* gfctest.c PGFFFI.hs -o gfctest
+src=../../src
+import=-i$src/runtime/haskell:$src/compiler
+gf --make ../../examples/tutorial/embedded/QueryEng.gf &&
+ghc $import --make -fglasgow-exts -O2 -no-hs-main $* -c PGFFFI.hs &&
+ghc $import --make -fglasgow-exts -O2 -no-hs-main $* gfctest.c gf_lexing.c PGFFFI.hs -o gfctest
diff --git a/contrib/c-bindings/gf_lexing.c b/contrib/c-bindings/gf_lexing.c
new file mode 100644
--- /dev/null
+++ b/contrib/c-bindings/gf_lexing.c
@@ -0,0 +1,287 @@
+/* GF C Bindings
+   Copyright (C) 2010 Kevin Kofler
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "gf_lexing.h"
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+typedef char **(*GF_Lexer)(const char *str);
+typedef char *(*GF_Unlexer)(char **arr);
+
+static inline void freev(char **p)
+{
+  char **q = p;
+  while (*q)
+    free(*(q++));
+  free(p);
+}
+
+static char **words(const char *str)
+{
+  unsigned char *buf = (unsigned char *) strdup(str);
+  unsigned char *p = buf, *q;
+  char **result, **r;
+  size_t count = 0u;
+  while (isspace(*p)) p++;
+  q = p;
+  if (*p) count++;
+  while (*p) {
+    if (isspace(*p)) {
+      *(p++) = 0;
+      while (isspace(*p)) *(p++) = 0;
+      if (*p) count++;
+    } else p++;
+  }
+  r = result = malloc((count+1)*sizeof(char *));
+  if (count) while (1) {
+    *(r++) = strdup((char *) q);
+    if (!--count) break;
+    while (*q) q++;
+    while (!*q) q++;
+  }
+  *r = NULL;
+  return result;
+}
+
+static char *unwords(char **arr)
+{
+  size_t len = 0u;
+  char **p = arr, *result, *r;
+  while (*p)
+    len += strlen(*(p++)) + 1u;
+  if (!len) return calloc(1, 1);
+  r = result = malloc(len);
+  p = arr;
+  while (1) {
+    size_t l = strlen(*p);
+    strcpy(r, *(p++));
+    if (!*p) break;
+    r += l;
+    *(r++) = ' ';
+  }
+  return result;
+}
+
+static char **lines(const char *str)
+{
+  unsigned char *buf = (unsigned char *) strdup(str);
+  unsigned char *p = buf, *q;
+  char **result, **r;
+  size_t count = 0u;
+  while (*p == '\n') p++;
+  q = p;
+  if (*p) count++;
+  while (*p) {
+    if (*p == '\n') {
+      *(p++) = 0;
+      while (*p == '\n') *(p++) = 0;
+      if (*p) count++;
+    } else p++;
+  }
+  r = result = malloc((count+1)*sizeof(char *));
+  if (count) while (1) {
+    *(r++) = strdup((char *) q);
+    if (!--count) break;
+    while (*q) q++;
+    while (!*q) q++;
+  }
+  *r = NULL;
+  return result;
+}
+
+static char *unlines(char **arr)
+{
+  size_t len = 0u;
+  char **p = arr, *result, *r;
+  while (*p)
+    len += strlen(*(p++)) + 1u;
+  if (!len) return calloc(1, 1);
+  r = result = malloc(len);
+  p = arr;
+  while (1) {
+    size_t l = strlen(*p);
+    strcpy(r, *(p++));
+    if (!*p) break;
+    r += l;
+    *(r++) = '\n';
+  }
+  return result;
+}
+
+static char *appLexer(GF_Lexer f, const char *str)
+{
+  char **arr = f(str), **p = arr, *result;
+  int ofs = 0;
+  while (*p && **p) p++;
+  while (*p) {
+    if (**p) p[-ofs] = *p; else ofs++;
+    p++;
+  }
+  p[-ofs] = NULL;
+  result = unwords(arr);
+  freev(arr);
+  return result;
+}
+
+static char *appUnlexer(GF_Unlexer f, const char *str)
+{
+  char **arr = lines(str), **p = arr, *result;
+  while (*p) {
+    char **warr = words(*p);
+    free(*p);
+    *(p++) = f(warr);
+    freev(warr);
+  }
+  result = unlines(arr);
+  freev(arr);
+  return result;
+}
+
+static inline int isPunct(char c)
+{
+  return c && strchr(".?!,:;", c);
+}
+
+static inline int isMajorPunct(char c)
+{
+  return c && strchr(".?!", c);
+}
+
+static inline int isMinorPunct(char c)
+{
+  return c && strchr(",:;", c);
+}
+
+static char *charToStr(char c)
+{
+  char *result = malloc(2), *p = result;
+  *(p++) = c;
+  *p = 0;
+  return result;
+}
+
+static char **lexChars(const char *str)
+{
+  char **result = malloc((strlen(str)+1)*sizeof(char *)), **r = result;
+  const char *p = str;
+  while (*p) {
+    if (!isspace(*p)) *(r++) = charToStr(*p);
+    p++;
+  }
+  *r = NULL;
+  return result;
+}
+
+static char **lexText(const char *str)
+{
+  char **result = malloc((strlen(str)+1)*sizeof(char *)), **r = result;
+  const char *p = str;
+  int uncap = 1;
+  while (*p) {
+    if (isMajorPunct(*p)) {
+      *(r++) = charToStr(*(p++));
+      uncap = 1;
+    } else if (isMinorPunct(*p)) {
+      *(r++) = charToStr(*(p++));
+      uncap = 0;
+    } else if (isspace(*p)) {
+      p++;
+      uncap = 0;
+    } else {
+      const char *q = p;
+      char *word;
+      size_t l;
+      while (*p && !isspace(*p) && !isPunct(*p)) p++;
+      l = p - q;
+      word = malloc(l + 1);
+      strncpy(word, q, l);
+      word[l] = 0;
+      if (uncap) *word = tolower(*word);
+      *(r++) = word;
+      uncap = 0;
+    }
+  }
+  *r = NULL;
+  return result;
+}
+
+static char *unlexText(char **arr)
+{
+  size_t len = 0u;
+  char **p = arr, *result, *r;
+  int cap = 1;
+  while (*p)
+    len += strlen(*(p++)) + 1u;
+  if (!len) return calloc(1, 1);
+  r = result = malloc(len);
+  p = arr;
+  while (1) {
+    size_t l = strlen(*p);
+    char *word = *(p++);
+    if (*word == '"' && word[l-1] == '"') word++, l--;
+    strncpy(r, word, l);
+    if (cap) *r = toupper(*r);
+    if (!*p) break;
+    r += l;
+    if (isPunct(**p) && !(*p)[1]) {
+      *(r++) = **p;
+      if (!p[1]) break;
+      cap = isMajorPunct(**(p++));
+    } else cap = 0;
+    *(r++) = ' ';
+  }
+  *r = 0;
+  return result;
+
+}
+
+static char *stringop_chars(const char *str)
+{
+  return appLexer(lexChars, str);
+}
+
+static char *stringop_lextext(const char *str)
+{
+  return appLexer(lexText, str);
+}
+
+static char *stringop_words(const char *str)
+{
+  return appLexer(words, str);
+}
+
+static char *stringop_unlextext(const char *str)
+{
+  return appUnlexer(unlexText, str);
+}
+
+static char *stringop_unwords(const char *str)
+{
+  return appUnlexer(unwords, str);
+}
+
+GF_StringOp gf_stringOp(const char *op)
+{
+  if (!strcmp(op, "chars")) return stringop_chars;
+  if (!strcmp(op, "lextext")) return stringop_lextext;
+  if (!strcmp(op, "words")) return stringop_words;
+  if (!strcmp(op, "unlextext")) return stringop_unlextext;
+  if (!strcmp(op, "unwords")) return stringop_unwords;
+  return NULL;
+}
diff --git a/contrib/c-bindings/gf_lexing.h b/contrib/c-bindings/gf_lexing.h
new file mode 100644
--- /dev/null
+++ b/contrib/c-bindings/gf_lexing.h
@@ -0,0 +1,26 @@
+/* GF C Bindings
+   Copyright (C) 2010 Kevin Kofler
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* Function pointer type which applies a string operation to str, which is
+   assumed to be non-NULL.
+   The resulting string can be assumed to be non-NULL and must be freed using
+   free. */
+typedef char *(*GF_StringOp)(const char *str);
+
+/* Returns a GF_StringOp applying the operation op if available, otherwise
+   NULL. op is assumed to be non-NULL. The GF_StringOp MUST NOT be freed. */
+GF_StringOp gf_stringOp(const char *op);
diff --git a/contrib/c-bindings/gfctest.c b/contrib/c-bindings/gfctest.c
--- a/contrib/c-bindings/gfctest.c
+++ b/contrib/c-bindings/gfctest.c
@@ -18,21 +18,23 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include "pgf.h"
+#include "gf_lexing.h"
 
 int main(int argc, char *argv[])
 {
   gf_init(&argc, &argv);
 
-  GF_PGF pgf = gf_readPGF("../examples/tutorial/embedded/Query.pgf");
+  GF_PGF pgf = gf_readPGF("Query.pgf");
   GF_Language lang = gf_readLanguage("QueryEng");
   GF_Type cat = gf_startCat(pgf);
-  char *lexed = gf_stringOp("lextext", "Is 2 prime");
+  char *lexed = gf_stringOp("lextext")("Is 2 prime");
+  // char *lexed = "is 23 odd";
   GF_Tree *result = gf_parse(pgf, lang, cat, lexed);
   free(lexed);
   GF_Tree *p = result;
   if (*p) {
     do {
-      char *str = gf_showTree(*(p++));
+      char *str = gf_showExpr(*(p++));
       puts(str);
       free(str);
     } while (*p);
diff --git a/contrib/c-bindings/pgf.h b/contrib/c-bindings/pgf.h
--- a/contrib/c-bindings/pgf.h
+++ b/contrib/c-bindings/pgf.h
@@ -36,26 +36,26 @@
   hs_exit();
 }
 
-typedef HsStablePtr GF_Language;
 typedef HsStablePtr GF_PGF;
-typedef HsStablePtr GF_Type;
 typedef HsStablePtr GF_CId;
+typedef HsStablePtr GF_Language;
+typedef HsStablePtr GF_Type;
 typedef HsStablePtr GF_Tree;
 typedef HsStablePtr GF_Expr;
 
-static inline void gf_freeLanguages(GF_Language *p)
+static inline void gf_freeCIds(GF_CId *p)
 {
-  GF_Language *q = p;
+  GF_CId *q = p;
   while (*q)
-    gf_freeLanguage(*(q++));
+    gf_freeCId(*(q++));
   free(p);
 }
 
-static inline void gf_freeTypes(GF_Type *p)
+static inline void gf_freeLanguages(GF_Language *p)
 {
-  GF_Type *q = p;
+  GF_Language *q = p;
   while (*q)
-    gf_freeType(*(q++));
+    gf_freeLanguage(*(q++));
   free(p);
 }
 
diff --git a/contrib/c-bindings/readme-ffi.txt b/contrib/c-bindings/readme-ffi.txt
--- a/contrib/c-bindings/readme-ffi.txt
+++ b/contrib/c-bindings/readme-ffi.txt
@@ -1,5 +1,5 @@
 GF C Bindings
-Copyright (C) 2008-2009 Kevin Kofler
+Copyright (C) 2008-2010 Kevin Kofler
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -25,26 +25,25 @@
 
 Currently, the following functions from PGF are wrapped:
 readPGF  :: FilePath -> IO PGF
+mkCId :: String -> CId
+wildCId :: CId
+showCId :: CId -> String
+readCId :: String -> Maybe CId
 showLanguage :: Language -> String
 readLanguage :: String -> Maybe Language
-languages    :: PGF -> [Language]
+languages :: PGF -> [Language]
 abstractName :: PGF -> Language
 languageCode :: PGF -> Language -> Maybe String
-showType :: Type -> String
+showType :: Type -> [CId] -> String (*)
 readType :: String -> Maybe Type
-categories :: PGF -> [Type]
-startCat   :: PGF -> Type
-mkCId :: String -> CId
-prCId :: CId -> String
-wildCId :: CId
-showTree :: Tree -> String
-readTree :: String -> Maybe Tree
-showExpr :: Expr -> String
+categories :: PGF -> [CId]
+startCat :: PGF -> Type
+showExpr :: Expr -> [CId] -> String (*)
 readExpr :: String -> Maybe Expr
-linearize    :: PGF -> Language -> Tree -> String
-showPrintName :: PGF -> Language -> Type -> String
-parse        :: PGF -> Language -> Type -> String -> [Tree]
-canParse     :: PGF -> Language -> Bool
+linearize :: PGF -> Language -> Tree -> String
+showPrintName :: PGF -> Language -> CId -> String
+parse :: PGF -> Language -> Type -> String -> [Tree]
+(*) The [CId] parameter is currently not mapped; instead, [] is always passed.
 
 
 Some notes about the wrapping:
@@ -78,6 +77,10 @@
 
 Thus, the C prototypes for the wrapped functions are:
 GF_PGF *gf_readPGF(char *path);
+GF_CId gf_mkCId(char *str);
+GF_CId wildCId(void);
+char *gf_showCId(GF_CID cid);
+GF_CId gf_readCId(char *str); /* may return NULL */
 char *gf_showLanguage(GF_Language lang);
 GF_Language gf_readLanguage(char *str); /* may return NULL */
 GF_Language *gf_languages(GF_PGF pgf);
@@ -85,37 +88,33 @@
 char *gf_languageCode(GF_PGF pgf, GF_Language lang); /* may return NULL */
 char *gf_showType(GF_Type tp);
 GF_Type gf_readType(char *str); /* may return NULL */
-GF_Type *gf_categories(GF_PGF pgf);
+GF_CId *gf_categories(GF_PGF pgf);
 GF_Type gf_startCat(GF_PGF pgf);
-GF_CId gf_mkCId(char *str);
-char *gf_prCId(GF_CID cid);
-GF_CId wildCId(void);
-char *gf_showTree(GF_Tree tree);
-GF_Tree gf_readTree(char *str); /* may return NULL */
 char *gf_showExpr(GF_Expr expr);
 GF_Expr gf_readExpr(char *str); /* may return NULL */
 char *gf_linearize(GF_PGF pgf, GF_Language lang, GF_Tree tree);
-char *gf_showPrintName(GF_PGF pgf, GF_Language lang, GF_Type tp);
+char *gf_showPrintName(GF_PGF pgf, GF_Language lang, GF_CId cid);
 GF_Tree *gf_parse(GF_PGF pgf, GF_Language lang, GF_Type cat, char *input);
-int gf_canParse(GF_PGF pgf, GF_Language lang); /* returns 0 or 1 */
 
 The C prototypes for the freeing functions are:
 void gf_freePGF(GF_PGF pgf);
+void gf_freeCId(GF_CId cid);
 void gf_freeLanguage(GF_Language lang);
 void gf_freeType(GF_Type tp);
-void gf_freeCId(GF_CId cid);
 void gf_freeTree(GF_Tree tree);
 void gf_freeExpr(GF_Expr expr);
+void gf_freeCIds(GF_Type *p);
 void gf_freeLanguages(GF_Language *p);
-void gf_freeTypes(GF_Type *p);
 void gf_freeTrees(GF_Tree *p);
 
 
 
-In addition, the following function from GF.Text.Lexing:
+In addition, a C equivalent to the following function from GF.Text.Lexing:
 stringOp :: String -> Maybe (String -> String)
-is wrapped as:
-char *gf_stringOp(char *op, char *str)
-which returns NULL if op is not a valid operation name, otherwise applies the
-function corresponding to op to the string str. The resulting string must be
-freed with free if non-NULL.
+is provided as:
+typedef char *(*GF_StringOp)(const char *str);
+GF_StringOp gf_stringOp(const char *op); /* may return NULL */
+which returns NULL if op is not a valid operation name, otherwise a pointer to a
+function which applies the function corresponding to op to the string str. The
+resulting string must be freed with free. The function pointer MUST NOT be
+freed.
diff --git a/contrib/py-bindings/Makefile b/contrib/py-bindings/Makefile
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/Makefile
@@ -0,0 +1,37 @@
+src=../../src
+import=-i$(src)/runtime/haskell:$(src)/compiler
+cbind=../c-bindings
+pyversion = $(shell python -c 'import sys; print ".".join(`t` for t in sys.version_info[:2])')
+pythoninc=/usr/include/python$(pyversion)
+debug= #-optc '-DDEBUG=1'
+exdir=../../examples/tutorial/embedded
+
+build: gf.so
+
+test:
+	python test.py
+
+gf.so:  PyGF.hs gfmodule.c Query.pgf
+	ghc $(import) --make -fglasgow-exts -O2 -no-hs-main -c $<
+	ghc -O2 --make -fglasgow-exts -no-hs-main -optl '-shared' \
+	 -optc '-DMODULE=$(basename $<)' $(debug) -optc '-I$(pythoninc)' -o $@ \
+	$(filter-out %.pgf, $^)
+
+
+
+clean:
+	rm -f *.hi  *.o
+	rm -f *_stub.*
+	rm -f PyGF.hs
+
+superclean: 
+	make clean
+	rm -f Query.pgf
+	rm -f gf.so
+	rm -f mtest
+
+PyGF.hs: PyGF.hsc
+	hsc2hs -I$(pythoninc) $<
+
+Query.pgf:
+	gf --make  $(exdir)/QueryEng.gf $(exdir)/QuerySpa.gf 
diff --git a/contrib/py-bindings/PyGF.hsc b/contrib/py-bindings/PyGF.hsc
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/PyGF.hsc
@@ -0,0 +1,266 @@
+{-# LANGUAGE ForeignFunctionInterface #-} 
+-- GF Python bindings                                                                                                                                        -- Jordi Saludes, upc.edu 2010
+-- Jordi Saludes, upc.edu 2010
+--
+module PyGF where
+
+import PGF
+import Foreign
+import CString
+import Foreign.C.Types
+import Control.Monad
+
+#include "pygf.h"
+
+freeSp :: String -> Ptr a -> IO ()
+freeSp tname p = do
+    --DEBUG putStrLn $ "about to free pointer " ++ tname ++ " at " ++ (show p)
+    sp <- (#peek PyGF, sp) p
+    --DEBUG putStrLn "peeked"
+    freeStablePtr sp
+    --DEBUG putStrLn $ "freeing " ++ tname ++ " at " ++ (show p)
+
+instance Storable PGF where
+    sizeOf _ = (#size PyGF)
+    alignment _ = alignment (undefined::CInt)
+    poke p o = do
+      sp <- newStablePtr o
+      (#poke PyGF, sp) p sp
+    peek p = do
+      sp <- (#peek PyGF, sp) p
+      deRefStablePtr sp
+
+instance Storable Type where
+    sizeOf _ = (#size PyGF)
+    alignment _ = alignment (undefined::CInt)
+    poke p o = do
+      sp <- newStablePtr o
+      (#poke PyGF, sp) p sp
+    peek p = do
+      sp <- (#peek PyGF, sp) p
+      deRefStablePtr sp
+
+instance Storable Language where
+    sizeOf _ = (#size PyGF)
+    alignment _ = alignment (undefined::CInt)
+    poke p o = do
+      sp <- newStablePtr o
+      (#poke PyGF, sp) p sp
+    peek p = do
+      sp <- (#peek PyGF, sp) p
+      deRefStablePtr sp
+
+instance Storable Tree where
+    sizeOf _ = (#size PyGF)
+    alignment _ = alignment (undefined::CInt)
+    poke p o = do
+      sp <- newStablePtr o
+      (#poke PyGF, sp) p sp
+    peek p = do
+      sp <- (#peek PyGF, sp) p
+      deRefStablePtr sp
+
+-- It is CId the same as Tree?
+
+{- instance Storable CId where
+    sizeOf _ = (#size PyGF)
+    alignment _ = alignment (undefined::CInt)
+    poke p o = do
+      sp <- newStablePtr o
+      (#poke PyGF, sp) p sp
+    peek p = do
+      sp <- (#peek PyGF, sp) p
+      deRefStablePtr sp
+-}
+
+foreign export ccall gf_freePGF :: Ptr PGF -> IO ()
+foreign export ccall gf_freeType :: Ptr Type -> IO ()
+foreign export ccall gf_freeLanguage :: Ptr Language -> IO ()
+foreign export ccall gf_freeTree :: Ptr Tree -> IO ()
+foreign export ccall gf_freeExpr :: Ptr Expr -> IO ()
+foreign export ccall gf_freeCId :: Ptr CId -> IO ()
+gf_freePGF = freeSp "pgf"
+gf_freeType = freeSp "type"
+gf_freeLanguage = freeSp "language"
+gf_freeTree = freeSp "tree"
+gf_freeExpr = freeSp "expression"
+gf_freeCId = freeSp "CId"
+
+           
+{-foreign export ccall gf_printCId :: Ptr CId-> IO CString
+gf_printCId p = do
+    c <- peek p
+    newCString (showCId c)
+-}
+
+foreign export ccall gf_readPGF :: CString -> IO (Ptr PGF)
+gf_readPGF path = do
+  ppgf <- pyPGF
+  p <- peekCString path
+  readPGF p >>= poke ppgf
+  return ppgf
+  
+foreign export ccall gf_readLanguage :: Ptr Language -> CString -> IO Bool
+gf_readLanguage pt str = do
+  s <- (peekCString str)
+  case (readLanguage s) of
+    Just x -> do
+            poke pt x
+            return True
+    Nothing -> return False
+
+foreign export ccall gf_startCat :: Ptr PGF -> IO (Ptr Type)
+gf_startCat ppgf = do
+  pgf <- peek ppgf
+  pcat <- pyType
+  poke pcat (startCat pgf)
+  return pcat
+
+foreign export ccall gf_parse :: Ptr PGF -> Ptr Language -> Ptr Type -> CString -> IO  (Ptr ())
+gf_parse ppgf plang pcat input = do
+  p <- peek ppgf
+  c <- peek pcat
+  i <- peekCString input
+  l <- peek plang
+  let parsed = parse p l c i
+  --DEBUG putStrLn $  (show $ length  parsed) ++ " parsings"
+  listToPy pyTree parsed
+  
+foreign export ccall gf_showExpr :: Ptr Expr -> IO CString
+gf_showExpr pexpr = do
+  e <- peek pexpr
+  newCString (showExpr [] e)
+
+listToPy :: Storable a => IO (Ptr a) -> [a] -> IO (Ptr ()) -- opaque -- IO (Ptr (Ptr Language))
+listToPy mk ls = do
+    pyls <- pyList
+    mapM_ (mpoke pyls)  ls
+    return pyls
+  where  mpoke pyl l = do
+          pl <- mk
+          poke pl l
+          pyl << pl
+       
+-- foreign export ccall "gf_freeArray" free :: Ptr a -> IO ()
+
+              
+foreign export ccall gf_showLanguage :: Ptr Language -> IO CString
+gf_showLanguage plang = do
+  l <- peek plang
+  newCString $ showLanguage l
+
+foreign export ccall gf_showType :: Ptr Type -> IO CString
+gf_showType ptp = do
+  t <- peek ptp
+  newCString $ showType [] t
+
+foreign export ccall gf_showPrintName :: Ptr PGF -> Ptr Language -> Ptr CId -> IO CString
+gf_showPrintName ppgf plang pcid = do
+  pgf <- peek ppgf
+  lang <- peek plang
+  cid <- peek pcid
+  newCString (showPrintName pgf lang cid)
+
+foreign export ccall gf_abstractName :: Ptr PGF -> IO (Ptr Language)
+gf_abstractName ppgf = do
+  pabs <- pyLang
+  pgf <- peek ppgf
+  poke pabs $ abstractName pgf
+  return pabs
+
+foreign export ccall gf_linearize :: Ptr PGF -> Ptr Language -> Ptr Tree -> IO CString
+gf_linearize ppgf plang ptree = do
+  pgf <- peek ppgf
+  lang <- peek plang
+  tree <- peek ptree
+  newCString $ linearize pgf lang tree
+
+foreign export ccall gf_languageCode :: Ptr PGF -> Ptr Language -> IO CString
+gf_languageCode ppgf plang = do
+  pgf <- peek ppgf
+  lang <- peek plang
+  case languageCode pgf lang of
+    Just s -> newCString s
+    Nothing -> return nullPtr
+
+foreign export ccall gf_languages :: Ptr PGF -> IO (Ptr ()) -- (Ptr (Ptr Language))
+gf_languages ppgf = do
+  pgf <- peek ppgf
+  listToPy pyLang $ languages pgf
+
+foreign export ccall gf_categories :: Ptr PGF -> IO (Ptr ())
+gf_categories ppgf = do
+  pgf <- peek ppgf
+  listToPy pyCId $ categories pgf
+
+foreign export ccall gf_showCId :: Ptr CId -> IO CString
+gf_showCId pcid = do
+  cid <- peek pcid
+  newCString $ showCId cid
+
+foreign export ccall gf_unapp :: Ptr Expr -> IO (Ptr ())
+foreign export ccall gf_unint :: Ptr Expr -> IO CInt
+foreign export ccall gf_unstr :: Ptr Expr -> IO CString
+
+gf_unapp pexp = do
+    exp <- peek pexp
+    case unApp exp of
+        Just (f,args) -> do
+                   puexp <- pyList
+                   pf <- pyCId
+                   poke pf f
+                   puexp << pf
+                   mapM_ (\e -> do
+                              pe <- pyExpr
+                              poke pe e
+                              puexp << pe) args 
+                   return puexp
+        Nothing -> return nullPtr
+gf_unint pexp = do
+    exp <- peek pexp
+    return $ fromIntegral $ case unInt exp of
+                              Just n -> n
+                              _      -> (-9)
+gf_unstr pexp = do
+   exp <- peek pexp
+   case unStr exp of
+        Just s -> newCString s
+        _      -> return nullPtr
+
+foreign export ccall gf_inferexpr :: Ptr PGF -> Ptr Expr -> IO (Ptr Type)
+gf_inferexpr ppgf pexp = do
+    pgf <- peek ppgf
+    exp <- peek pexp
+    case inferExpr pgf exp of
+      Right (_,t) -> do
+                 ptype <- pyType
+                 poke ptype t
+                 return ptype
+      Left _       -> return nullPtr 
+
+
+foreign export ccall gf_functions :: Ptr PGF -> IO (Ptr ())
+gf_functions ppgf = do
+    pgf <- peek ppgf
+    listToPy pyCId $ functions pgf 
+
+foreign export ccall gf_functiontype :: Ptr PGF -> Ptr CId -> IO (Ptr Type)
+gf_functiontype ppgf pcid = do
+    pgf <- peek ppgf
+    cid <- peek pcid
+    case functionType pgf cid of
+        Just t -> do
+               ptp <- pyType
+               poke ptp t
+               return ptp
+        _      -> return nullPtr
+
+
+foreign import ccall "newLang" pyLang :: IO (Ptr Language) 
+foreign import ccall "newPGF" pyPGF :: IO (Ptr PGF) 
+foreign import ccall "newTree" pyTree :: IO (Ptr Tree) 
+foreign import ccall "newgfType" pyType :: IO (Ptr Type) 
+foreign import ccall "newCId" pyCId :: IO (Ptr CId) 
+foreign import ccall "newExpr" pyExpr :: IO (Ptr Expr) 
+foreign import ccall "newList" pyList :: IO (Ptr ()) 
+foreign import ccall "append" (<<) :: Ptr () -> Ptr a -> IO ()
diff --git a/contrib/py-bindings/gfmodule.c b/contrib/py-bindings/gfmodule.c
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/gfmodule.c
@@ -0,0 +1,314 @@
+// GF Python bindings
+// Jordi Saludes, upc.edu 2010
+//
+
+#include <Python.h>
+#include <sys/stat.h>
+#include "pygf.h"
+
+/* utilities */
+
+int
+checkType(void* obj, PyTypeObject* tp)
+{
+  int isRight = PyObject_TypeCheck((PyObject*)obj, tp);
+  if (!isRight)
+    PyErr_Format(PyExc_TypeError, "Expecting a %s.", tp->tp_doc);
+  return isRight;
+}
+
+
+/* new types and declarations */
+
+NEWGF(CId,GF_CId,CIdType,"gf.cid","identifier")
+NEWGF(Lang,GF_Language,LangType,"gf.lang","language")
+NEWGF(gfType,GF_Type,gfTypeType,"gf.type","gf type")
+NEWGF(PGF,GF_PGF,PGFType,"gf.pgf","PGF module")
+NEWGF(Expr,GF_Expr,ExprType,"gf.expr","gf expression")	
+NEWGF(Tree,GF_Tree,TreeType,"gf.tree","gf tree")
+
+
+/* CId methods, constructor and destructor */
+
+DEALLOCFN(CId_dealloc, CId, gf_freeCId, "freeCId")
+
+
+/* PGF methods, constructor and destructor */
+
+DEALLOCFN(PGF_dealloc, PGF, gf_freePGF, "freePGF")
+
+static PyObject* 
+pgf_repr(PGF *self) {
+  Lang* lang = gf_abstractName(self);
+  char* abs = gf_showLanguage(lang);
+  Py_DECREF(lang);					     
+  PyObject* str = PyString_FromFormat("<gf.pgf with abstract %s>", abs);
+  free(abs);
+return str;
+}
+
+static PyObject*
+languageCode(PGF *self, PyObject *args)
+{
+  Lang *lang;
+  if (!PyArg_ParseTuple(args, "O", &lang))
+    return NULL;
+  if (!checkType(lang, &LangType)) return NULL;
+  char* scode = gf_languageCode(self, lang);
+  if (scode) {
+    PyObject* result = PyString_FromString(scode);
+    free(scode);
+    return result;
+  } else {
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
+}
+
+static PyObject*
+linearize(PGF *self, PyObject *args)
+{
+  Lang *lang;
+  Tree *tree;
+  if (!PyArg_ParseTuple(args, "OO", &lang, &tree))
+    return NULL;
+  if (!checkType(lang,&LangType)) return NULL;
+  if (!checkType(tree,&TreeType)) return NULL;
+  char* c_lin = gf_linearize(self, lang, tree);
+  PyObject* lin = PyString_FromString(c_lin);
+  free(c_lin);
+  return lin;
+}
+
+static Lang*
+abstractName(PGF *self)
+{
+  if (!checkType(self,&PGFType)) return NULL;
+  return gf_abstractName(self);
+}
+
+static PyObject*
+printName(PGF *self, PyObject *args)
+{
+	Lang* lang;
+	CId* id;
+	if (!PyArg_ParseTuple(args, "OO", &lang, &id))
+		return NULL;
+	if (!checkType(lang,&LangType)) return NULL;
+	if (!checkType(id,&CIdType)) return NULL;
+	char *pname = gf_showPrintName(self, lang, id);
+	PyObject* result = PyString_FromString(pname);
+	free(pname);
+	return result;
+}
+
+static gfType*
+functiontype(PGF *self, PyObject* args)
+{
+  CId* cid;
+  gfType* gftp;
+  if (!PyArg_ParseTuple(args, "O", &cid))
+    return NULL;
+  if (!checkType(cid,&CIdType)) {
+    PyErr_Format(PyExc_TypeError, "Must be a gf identifier.");
+    return NULL;
+  }
+  return gf_functiontype(self, cid);
+}
+
+
+static PyObject*
+parse(PGF *self, PyObject *args, PyObject *kws)
+{
+	Lang *lang;
+	gfType *cat = NULL;
+	char *lexed;
+	static char *kwlist[] = {"lexed", "lang", "cat", NULL};
+	if (!PyArg_ParseTupleAndKeywords(args, kws, "sO|O", kwlist,
+				       &lexed, &lang, &cat))
+    	return NULL;
+	if (!checkType(self, &PGFType)) return NULL;
+	if (!checkType(lang, &LangType)) return NULL;
+	if (cat) {
+	  if (!checkType(cat, &gfTypeType)) return NULL;
+	} else { 
+	  cat = gf_startCat(self);		
+	} 
+	return gf_parse(self, lang, cat, lexed);
+}
+
+static PGF*
+readPGF(PyObject *self, PyObject *args)
+{
+  char *path;
+  struct stat info;
+  if (!PyArg_ParseTuple(args, "s", &path))
+    return NULL;
+  if (stat(path, &info) == 0) {
+    	PGF* pgf = gf_readPGF(path);
+    	return pgf;
+  } else {
+		PyErr_Format(PyExc_IOError, "No such file: %s", path);
+    	return NULL;
+  }
+}
+
+
+
+static PyMethodDef pgf_methods[] = {
+  {"parse", (PyCFunction)parse, METH_VARARGS|METH_KEYWORDS,"Parse a string."},
+  {"lin", (PyCFunction)linearize, METH_VARARGS,"Linearize tree."},
+  {"lang_code", (PyCFunction)languageCode, METH_VARARGS,"Get the language code."},
+  {"print_name", (PyCFunction)printName, METH_VARARGS,"Get the print name for a id."},
+  {"fun_type", (PyCFunction)functiontype, METH_VARARGS,"Get the type of a fun expression."},
+  {"startcat", (PyCFunction)gf_startCat, METH_NOARGS,"Get the start category."},
+  {"categories", (PyCFunction)gf_categories, METH_NOARGS,"Get all categories."},
+  {"functions", (PyCFunction)gf_functions, METH_NOARGS,"Get all functions."},
+  {"abstract", (PyCFunction)abstractName, METH_NOARGS,"Get the module abstract name."},
+  {"languages", (PyCFunction)gf_languages, METH_NOARGS,"Get the module languages."},
+  {NULL, NULL, 0, NULL}  /* Sentinel */
+};
+
+REPRCB(CId_repr, CId, gf_showCId)
+
+
+/* Language methods, constructor and destructor */
+
+REPRCB(lang_repr, Lang, gf_showLanguage)
+DEALLOCFN(Lang_dealloc, Lang, gf_freeLanguage, "freeLanguage")
+
+static Lang*
+readLang(PyObject *self, PyObject *args)
+{
+  char *langName;
+  Lang *l;
+  if (!PyArg_ParseTuple(args,"s",&langName))
+    return NULL;
+  l = (Lang*)LangType.tp_new(&LangType,NULL,NULL);
+  if(!l) return NULL;
+  gf_readLanguage(l,langName);
+  return l;
+}
+
+
+
+/* gf types: methods, constructor and destructor */
+
+DEALLOCFN(gfType_dealloc, gfType, gf_freeType, "freeType")
+REPRCB(gfType_repr, gfType, gf_showType)
+
+
+/* expression type: methods, destructor */
+
+DEALLOCFN(expr_dealloc, Expr, gf_freeExpr, "freeExpr")
+REPRCB(expr_repr, Expr, gf_showExpr)
+
+
+static PyObject*
+unapp(Expr *self) {
+  PyObject* obj = gf_unapp(self);
+  if (!obj) {
+    char* s = gf_unstr(self);
+    if (s) {
+      obj = PyString_FromString(s);
+      free(s);
+    } else {
+      long n = gf_unint(self);
+      if (n != -9) {
+	obj = PyInt_FromLong(n);
+      } else {
+	PyErr_Format(PyExc_TypeError, "Cannot unapply expr.");
+      }
+    }
+  }
+  return obj;
+}
+
+static PyObject*
+infer_expr(Expr *self, PyObject* args) {
+  PGF* pgf;
+  if (!PyArg_ParseTuple(args, "O", &pgf))
+    return NULL;
+  if (!checkType(pgf, &PGFType)) {
+    PyErr_Format(PyExc_ValueError, "Must be a pgf module.");
+    return NULL;
+  }
+  return gf_inferexpr(pgf, self);
+}
+
+
+
+/* todo: Is Tree == Expr ? */
+
+static PyMethodDef expr_methods[] = {
+  {"unapply", (PyCFunction)unapp, METH_NOARGS, "Unapply an expression."},
+  {"infer", (PyCFunction)infer_expr, METH_VARARGS, "Infer the type of an expression."},
+  {NULL, NULL, 0, NULL}  /* Sentinel */
+};
+
+
+
+/* tree typr: methods, constructor and destructor */
+//  Are Expr and Tree equivalent ? 
+
+REPRCB(tree_repr, Tree, gf_showExpr)
+DEALLOCFN(Tree_dealloc, Tree, gf_freeTree, "freeTree")
+
+
+
+
+
+/* gf module methods */
+
+static PyMethodDef gf_methods[] = {
+  {"read_pgf", (PyCFunction)readPGF, METH_VARARGS,"Read pgf file."},
+  {"read_language", (PyCFunction)readLang, METH_VARARGS,"Get the language."},
+  {NULL, NULL, 0, NULL}  /* Sentinel */
+};
+
+
+#ifndef PyMODINIT_FUNC/* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
+#endif
+
+PyMODINIT_FUNC
+initgf(void) 
+{
+  PyObject* m;
+#define READYTYPE(t,trepr,tdealloc) t.tp_new = PyType_GenericNew; \
+    t.tp_repr = (reprfunc)trepr; \
+	t.tp_dealloc = (destructor)tdealloc; \
+	if (PyType_Ready(&t) < 0) return;
+	
+        READYTYPE(CIdType, CId_repr, CId_dealloc)
+	PGFType.tp_methods = pgf_methods;
+	READYTYPE(PGFType, pgf_repr, PGF_dealloc)
+	READYTYPE(LangType, lang_repr, Lang_dealloc)
+	READYTYPE(gfTypeType, gfType_repr, gfType_dealloc)
+        ExprType.tp_methods = expr_methods;
+	READYTYPE(ExprType, expr_repr, expr_dealloc)
+	TreeType.tp_methods = expr_methods; // Tree == Expr ?
+	READYTYPE(TreeType, tree_repr, Tree_dealloc)	
+
+  m = Py_InitModule3("gf", gf_methods,
+		     "Grammatical Framework.");
+  static char *argv[] = {"gf.so", 0}, **argv_ = argv;
+  static int argc = 1;
+  gf_init (&argc, &argv_);
+  hs_add_root (__stginit_PyGF);
+
+#define ADDTYPE(t) Py_INCREF(&t);\
+PyModule_AddObject(m, "gf", (PyObject *)&t);
+
+	ADDTYPE(PGFType)
+	ADDTYPE(LangType)
+	ADDTYPE(gfTypeType)
+	ADDTYPE(TreeType)
+	ADDTYPE(ExprType)
+}
+
+
+/* List utilities to be imported by FFI */
+
+inline PyObject* newList() { return  PyList_New(0); }
+inline void append(PyObject* l, PyObject* ob) { PyList_Append(l, ob); }
diff --git a/contrib/py-bindings/lgpl-3.0.txt b/contrib/py-bindings/lgpl-3.0.txt
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/lgpl-3.0.txt
@@ -0,0 +1,165 @@
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/contrib/py-bindings/pygf.h b/contrib/py-bindings/pygf.h
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/pygf.h
@@ -0,0 +1,96 @@
+#include <Python.h>
+#include "HsFFI.h"
+
+#ifdef __GLASGOW_HASKELL__
+#include "PyGF_stub.h"
+
+extern void __stginit_PyGF ( void );
+#endif
+
+static inline void gf_init(int *argc, char ***argv)
+{
+  hs_init(argc, argv);
+#ifdef __GLASGOW_HASKELL__
+  hs_add_root(__stginit_PyGF);
+#endif
+}
+
+static inline void gf_exit(void)
+{
+  hs_exit();
+}
+
+typedef HsStablePtr GF_PGF;
+typedef HsStablePtr GF_CId;
+typedef HsStablePtr GF_Language;
+typedef HsStablePtr GF_Type;
+typedef HsStablePtr GF_Tree;
+typedef HsStablePtr GF_Expr;
+typedef struct {
+  PyObject_HEAD;
+  HsStablePtr sp;
+} PyGF;
+
+
+#define NEWOBJECT(OBJ, GFTYPE) typedef struct {\
+  PyObject_HEAD \
+  GFTYPE obj; \
+  } OBJ;
+
+#define PYTYPE(OBJ) OBJ ## Type
+#define NEWCONSTRUCTOR(OBJ) inline OBJ* new ## OBJ () {\
+    return (OBJ*)PYTYPE(OBJ).tp_new(&PYTYPE(OBJ),NULL,NULL); }
+
+#define NEWTYPE(TYPE,NAME,OBJECT,DOC) static PyTypeObject TYPE = {\
+    PyObject_HEAD_INIT(NULL)\
+    0,                         /*ob_size*/\
+    NAME,             /*tp_name*/\
+    sizeof(OBJECT), /*tp_basicsize*/\
+    0,                         /*tp_itemsize*/\
+    0,                         /*tp_dealloc*/\
+    0,                         /*tp_print*/\
+    0,                         /*tp_getattr*/\
+    0,                         /*tp_setattr*/\
+    0,                         /*tp_compare*/\
+    0,                         /*tp_repr*/\
+    0,                         /*tp_as_number*/\
+    0,                         /*tp_as_sequence*/\
+    0,                         /*tp_as_mapping*/\
+    0,                         /*tp_hash */\
+    0,                         /*tp_call*/\
+    0,                         /*tp_str*/\
+    0,                         /*tp_getattro*/\
+    0,                         /*tp_setattro*/\
+    0,                         /*tp_as_buffer*/\
+    Py_TPFLAGS_DEFAULT,        /*tp_flags*/\
+    DOC,           /* tp_doc */\
+  };
+#define NEWGF(OBJ,GFTYPE,TYPE,NAME,DOC) NEWOBJECT(OBJ,GFTYPE)   \
+  NEWTYPE(TYPE,NAME,OBJ,DOC)\
+  NEWCONSTRUCTOR(OBJ)
+
+
+// NEWOBJECT(CID, GF_CId)
+
+#ifdef DEBUG
+#define DEALLOCFN(delname,t,cb,cbname) static void \
+delname(t *self){ cb(self);\
+	printf("gf_%s has been called for stable pointer 0x%x\n", cbname, self->obj);\
+	self->ob_type->tp_free((PyObject*)self); }
+#else
+#define DEALLOCFN(delname,t,cb,cbname) static void \
+delname(t *self){ cb(self);\
+	self->ob_type->tp_free((PyObject*)self); }
+#endif
+
+#ifdef DEBUG
+#define REPRCB(cbid,t,gfcb) static PyObject* \
+cbid(t *self) { \
+	const char *str = gfcb(self); \
+ 	return PyString_FromFormat("0x%x: %s", self->obj, str); }
+#else
+#define REPRCB(cbid,t,gfcb) static PyObject* \
+cbid(t *self) { \
+	const char *str = gfcb(self); \
+ 	return PyString_FromString(str); }
+#endif
diff --git a/contrib/py-bindings/test.py b/contrib/py-bindings/test.py
new file mode 100644
--- /dev/null
+++ b/contrib/py-bindings/test.py
@@ -0,0 +1,167 @@
+#!/usr/bin/env python
+# GF Python bindings
+# Jordi Saludes 2010
+#
+ 
+
+import gf
+import unittest
+
+
+samples = [
+	(['Odd', ['Number', 89]],
+	 {'eng': "is 89 odd",
+	  'spa': "89 es impar"}),
+	(['Prime', ['Number', 21]],
+	 {'eng': "is 21 prime",
+	  'spa': "21 es primo"})]
+
+def lang2iso(l):
+	s = rmprefix(l)
+	assert s[:5]=="Query"
+	return s[5:].lower()
+
+def exp2str(e):
+	def e2s(e,n):
+		if type(e) == type([2]):
+			f = e[0]
+			sr = ' '.join([e2s(arg,n+1) for arg in e[1:]])
+			ret =f + ' ' + sr
+			return n and '('+ret+')' or ret
+		elif type(e) == type('2'):
+			return e
+		elif type(e) == type(2):
+			return `e`
+		else:
+			raise ValueError, "Do not know how to render " + `e`
+	return e2s(e,0)
+		
+
+import re
+hexre = re.compile('0x[0-9a-f]+:[ ]*')
+def rmprefix(obj):
+	return `obj`
+#	s = `obj`
+#	m = hexre.match(s)
+#	return m and s[m.end(0):]
+
+class TestPgfInfo(unittest.TestCase):
+	def pgf(self, path=None):
+		path = path or self.path
+		return gf.read_pgf(path)
+	def setUp(self):
+		self.path = 'Query.pgf'
+	def test_readPgf(self):
+		pgf = self.pgf()
+		self.assertNotEqual(pgf,None)
+	def test_readNonExistent(self):
+		nopath = 'x' + self.path
+		self.assertRaises(IOError, self.pgf, nopath)
+	def test_startcat(self):
+		pgf = self.pgf()
+		cat = pgf.startcat()
+		self.assertEqual(rmprefix(cat),'Question')
+	def test_categories(self):
+		pgf = self.pgf()
+		cats = [`c` for c in pgf.categories()]
+		self.failUnless('Float' in cats)
+		self.failUnless('Int' in cats)
+		self.failUnless('String' in cats)
+	def test_createLanguage(self):
+		pgf = self.pgf()
+		for lang in 'QueryEng QuerySpa'.split():
+			l = gf.read_language(lang) 
+			self.assertEqual(rmprefix(l),lang)
+	def test_functions(self):
+		pgf = self.pgf()
+		self.assertTrue('Even' in [`f` for f in pgf.functions()])
+	def test_function_types(self):
+		pgf = self.pgf()
+		gftypes = dict((`f`,`pgf.fun_type(f)`) for f in pgf.functions())
+		for p in "Prime : Object -> Question; Yes : Answer".split(';'):
+			lhs,rhs = [s.strip() for s in p.split(':')]
+			self.assertEqual(gftypes[lhs],rhs)
+
+class TestParsing(unittest.TestCase):
+	def setUp(self):
+		self.lexed = samples
+		self.lang = 'QueryEng'
+		self.pgf = "Query.pgf"
+
+	def test_parse(self):
+		pgf = gf.read_pgf(self.pgf)
+		l = gf.read_language(self.lang)
+		for abs,cnc in self.lexed:
+			rabs = exp2str(abs)
+			ps = pgf.parse(cnc['eng'], l)
+			self.failUnless(ps)
+			pt = rmprefix(ps[0])
+			self.assertEqual(pt,rabs)
+
+
+class TestLinearize(unittest.TestCase):
+	def setUp(self):
+		self.samples = samples
+		self.pgf = gf.read_pgf('Query.pgf') 
+		self.lang = gf.read_language('QueryEng')
+
+	def test_Linearize(self):
+		l = self.lang
+		for abs,cnc in self.samples:
+			ts = self.pgf.parse(cnc['eng'], l)
+			self.assertEqual(cnc['eng'],self.pgf.lin(l,ts[0]))
+
+class TestTranslate(unittest.TestCase):
+	def setUp(self):
+		self.samples = samples
+		self.pgf = gf.read_pgf('Query.pgf')
+		self.langs = [(lang2iso(l),l) for l in self.pgf.languages()]
+
+	def test_translate(self):
+		for abs,cnc in self.samples:
+			for i,l in self.langs:
+				for j,m in self.langs:
+					if i==j: continue
+					parsed = self.pgf.parse(cnc[i],l)
+					assert len(parsed) == 1
+					lin = self.pgf.lin(m,parsed[0])
+					self.assertEqual(lin,cnc[j])
+
+class TestUnapplyExpr(unittest.TestCase):
+	def setUp(self):
+		self.samples = samples
+		self.pgf = gf.read_pgf('Query.pgf')
+		self.langs = dict([(lang2iso(l),l) for l in self.pgf.languages()])
+
+	def deep_unapp(self,exp):
+		exp = exp.unapply()
+		if type(exp) == type([2]):
+			f = exp[0]
+			return [`f`] + map(self.deep_unapp,exp[1:])
+		else:
+			return exp
+		
+
+	def test_unapply(self):
+		lg = 'eng'
+		lang = self.langs[lg]
+		for abs,cnc in self.samples:
+			parsed = self.pgf.parse(cnc[lg],lang)
+			uparsed = self.deep_unapp(parsed[0])
+			self.assertEqual(abs,uparsed)
+
+	def test_infer(self):
+		lg = 'eng'
+		lang = self.langs[lg]
+		cnc = self.samples[0][1]
+		parsed = self.pgf.parse(cnc[lg],lang)
+		exp = parsed[0]
+		for t in 'Question Object Int'.split():
+			self.assertEqual(`exp.infer(self.pgf)`, t)
+			uexp = exp.unapply()
+			if type(uexp) != type(2) and type(uexp) != type('2'):
+				exp = uexp[1]
+
+
+if __name__ == '__main__':
+	unittest.main()
diff --git a/contrib/summerschool/foods/FoodsAmh.gf b/contrib/summerschool/foods/FoodsAmh.gf
new file mode 100644
--- /dev/null
+++ b/contrib/summerschool/foods/FoodsAmh.gf
@@ -0,0 +1,21 @@
+concrete FoodsAmh of Foods ={
+ flags coding = utf8;
+ lincat
+  Comment,Item,Kind,Quality = Str;
+ lin
+  Pred item quality = item ++ quality++ "ነው::" ;
+  This kind = "ይህ" ++ kind;
+  That kind = "ያ" ++ kind;
+  Mod quality kind = quality ++ kind;
+  Wine = "ወይን";
+  Cheese = "አይብ";
+  Fish = "ዓሳ";
+  Very quality = "በጣም" ++ quality;
+  Fresh = "አዲስ";
+  Warm = "ትኩስ";
+  Italian = "የጥልያን";
+  Expensive = "ውድ";
+  Delicious = "ጣፋጭ";
+  Boring = "አስቀያሚ";
+  
+}   
diff --git a/contrib/summerschool/foods/FoodsFas.gf b/contrib/summerschool/foods/FoodsFas.gf
deleted file mode 100644
--- a/contrib/summerschool/foods/FoodsFas.gf
+++ /dev/null
@@ -1,64 +0,0 @@
--- (c) 2009 Sedigheh Moradi under LGPL
-
-concrete FoodsFas of Foods = {
-
-      lincat
-        Comment = {s : Str} ;
-		Quality = {s : Add => Str; prep : Str} ;
-        Kind = {s : Add => Number => Str ; prep : Str};
-        Item = {s : Str ; n : Number};
-      lin
-        Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ;
-        This = det Sg "in" ;
-        That = det Sg "aan" ;
-        These = det Pl "in" ;
-        Those = det Pl "aan" ;
-        
-        Mod quality kind = {s = \\a,n =>  kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ;                                  
-                            prep = quality.prep             
-                            };
-        Wine = regN "sharaab" ; 
-        Cheese = regN "panir" ;
-        Fish = regN "mahi" ;
-        Pizza = regN "pitza" ;
-        Very a = {s = \\at => "xeili" ++ a.s ! at ; prep = a.prep} ;
-        Fresh = adj "taze" ;
-        Warm = adj "garm" ;
-        Italian = adj "Italia'i" ;
-        Expensive = adj "geraan" ;
-        Delicious = adj "laziz" ;
-        Boring = adj "keselkonande" ;
-     
-     param
-        Number = Sg | Pl ;
-		Add = Indep | Attr ;
-     oper
-        det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} =
-           \n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n };
-           
-        noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pitza, pitzaye, pitzaha,pr -> 
-         {s = \\a,n => case <a,n> of
-		        {<Indep,Sg> => pitza ; <Indep,Pl> => pitzaha ;
-  				 <Attr,Sg>  =>pitzaye ; <Attr,Pl>  => pitzaha + "ye" };
-		 prep = pr
-		 };		 
-         
-        regN : Str -> {s: Add => Number => Str ; prep : Str} = \mard -> 
-		case mard of 
-		{ _ + ("a"|"e"|"i"|"o"|"u") => noun mard (mard+"ye") (mard + "ha") "";
-		  _                         => noun mard mard (mard + "ha") "e"
-		};
-        
-        adj : Str -> {s : Add => Str; prep : Str} = \taze -> 
-		case taze of 
-		{ _ + ("a"|"e"|"i"|"o"|"u") => mkAdj taze (taze+"ye") "" ;
-		  _                         => mkAdj taze taze "e"
-        };
-		
-		mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \taze, tazeye, pr  ->
-		{s = table {Indep => taze;
-		            Attr => tazeye};
-		 prep = pr 			
-		};
-        copula : Number => Str = table {Sg => "ast"; Pl => "hastand"};
-    }  
diff --git a/contrib/summerschool/foods/FoodsPes.gf b/contrib/summerschool/foods/FoodsPes.gf
new file mode 100644
--- /dev/null
+++ b/contrib/summerschool/foods/FoodsPes.gf
@@ -0,0 +1,65 @@
+concrete FoodsPes of Foods = {
+
+      flags optimize=noexpand ; coding=utf8 ;
+	  
+      lincat
+        Comment = {s : Str} ;
+		Quality = {s : Add => Str; prep : Str} ;
+        Kind = {s : Add => Number => Str ; prep : Str};
+        Item = {s : Str ; n : Number};
+      lin
+        Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ;
+        This = det Sg "این" ;
+        That = det Sg "آن" ;
+        These = det Pl "این" ;
+        Those = det Pl "آن" ;
+        
+        Mod quality kind = {s = \\a,n =>  kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ;                                  
+                            prep = quality.prep             
+                            };
+        Wine = regN "شراب" ; 
+        Cheese = regN "پنیر" ;
+        Fish = regN "ماهى" ;
+        Pizza = regN "پیتزا" ;
+        Very a = {s = \\at => "خیلی" ++ a.s ! at ; prep = a.prep} ;
+        Fresh = adj "تازه" ;
+        Warm = adj "گرم" ;
+        Italian = adj "ایتالیایی" ;
+        Expensive = adj "گران" ;
+        Delicious = adj "لذىذ" ;
+        Boring = adj "ملال آور" ;  -- it must be written as ملال آور. 
+     
+     param
+        Number = Sg | Pl ;
+		Add = Indep | Attr ;
+     oper
+        det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} =
+           \n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n };
+           
+        noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pytzA, pytzAy, pytzAhA,pr -> 
+         {s = \\a,n => case <a,n> of
+		        {<Indep,Sg> => pytzA ; <Indep,Pl> => pytzAhA ;
+  				 <Attr,Sg>  =>pytzA ; <Attr,Pl>  => pytzAhA + "ى" };
+		 prep = pr
+		 };		 
+         
+        regN : Str -> {s: Add => Number => Str ; prep : Str} = \mrd -> 
+		case mrd of 
+		{ _ + ("ا"|"ه"|"ى"|"و"|"") => noun mrd (mrd+"ى") (mrd + "ها") "";
+		  _                        => noun mrd mrd (mrd + "ها") "e"
+		};
+        
+        adj : Str -> {s : Add => Str; prep : Str} = \tAzh -> 
+		case tAzh of 
+		{ _ + ("ا"|"ه"|"ى"|"و"|"") => mkAdj tAzh (tAzh ++ "ى") "" ;
+		  _                        => mkAdj tAzh tAzh "ه"
+        };
+		
+		mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \tAzh, tAzhy, pr  ->
+		{s = table {Indep => tAzh;
+		            Attr => tAzhy};
+		 prep = pr 			
+		};
+        copula : Number => Str = table {Sg => "است"; Pl => "هستند"};
+      
+}
diff --git a/contrib/summerschool/foods/FoodsRon.gf b/contrib/summerschool/foods/FoodsRon.gf
--- a/contrib/summerschool/foods/FoodsRon.gf
+++ b/contrib/summerschool/foods/FoodsRon.gf
@@ -15,9 +15,9 @@
 
 lin
 
-This = det Sg (mkTab "acest" "aceastã");
+This = det Sg (mkTab "acest" "această");
 That = det Sg (mkTab "acel" "acea");
-These = det Pl (mkTab "aceºti" "aceste");
+These = det Pl (mkTab "acești" "aceste");
 Those = det Pl (mkTab "acei" "acele");
 
 Wine = mkNoun "vin" "vinuri" NNeut ;
diff --git a/contrib/summerschool/foods/Makefile b/contrib/summerschool/foods/Makefile
--- a/contrib/summerschool/foods/Makefile
+++ b/contrib/summerschool/foods/Makefile
@@ -2,7 +2,7 @@
 all:: Foods.pgf
 
 Foods.pgf: Foods???.gf
-	gf -make -s Foods???.gf
+	gf -make -s -optimize-pgf Foods???.gf
 
 clean:
 	rm -rf *.gfo Foods.pgf
diff --git a/css/style.css b/css/style.css
new file mode 100644
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,20 @@
+
+body { background-color: #f2f2f2; }
+
+
+h1,h2,h3 { font-family: sans-serif; }
+h1 { text-align: center; }
+h2 { border-bottom: 2px solid black; clear: right; }
+
+div.center { text-align: center; }
+div.news { font-size: small; }
+
+table { border-collapse: collapse; }
+
+
+th,td { border: 1px solid #333; }
+
+td { background: white; }
+th { background: #9df; }
+
+h1>img { float: right; }
diff --git a/demos/TransQuiz/brushed-metal.png b/demos/TransQuiz/brushed-metal.png
new file mode 100644
Binary files /dev/null and b/demos/TransQuiz/brushed-metal.png differ
diff --git a/demos/TransQuiz/minibar_quiz.css b/demos/TransQuiz/minibar_quiz.css
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/minibar_quiz.css
@@ -0,0 +1,93 @@
+body {
+    background: #eee url("brushed-metal.png");
+}
+
+/*th, td { vertical-align: baseline; text-align: left; }*/
+
+div#surface {
+    min-height: 3ex;
+    margin: 5px;
+    padding: 5px;
+    border: 3px dashed #e0e0e0;
+}
+
+div#words {
+    min-height: 3ex;
+    margin: 5px;
+    padding: 6px;
+    border: 3px solid #e0e0e0;
+}
+
+div.word, span.word, div#words input[type=button] {
+    display: inline-block;
+    font-family: sans-serif;
+    font-size: 100%;
+    background-color: white;
+    border: 1px solid black;
+    padding: 3px;
+    margin: 3px;
+}
+
+/* added for quiz */
+ textarea.quest {
+   width: 452px;
+   height: 35px;
+   font-size:16px;
+ }
+
+ textarea.explain {
+   width: 452px;
+   height: 70px;
+   font-size:16px;
+ }
+ 
+  input.answer1 {
+   width: 442px;
+   height: 20px;
+   font-size:16px;
+ }
+ 
+ div.hint {
+ font-family: Verdana; 
+ font-weight: bold; 
+ font-size:16px;
+ }
+ 
+ div.bold { 
+ font-weight: bold; 
+ font-size:16px;
+ }
+ 
+ input.number {
+ text-align:center; 
+ font-family: Verdana; 
+ font-weight: bold; 
+ font-size:16px;
+ }
+ 
+  div.shift_left {
+   padding-left: 320px;
+ }
+ /* default for all links */
+ a:link {color: #2E8B57; font-size:16px; font-weight: bold; text-decoration: underline; }
+ a:active {color: #2E8B57; font-size:16px; font-weight: bold; text-decoration: underline; }
+ a:visited {color: #2E8B57; font-size:16px; font-weight: bold; text-decoration: underline; }
+ a:hover {color: #CD853F; font-size:16px; font-weight: bold; text-decoration: none; }
+
+.invalid { color: red; }
+
+div.modtime { float: right; }
+.modtime { color: #444; white-space: nowrap; }
+
+ul.space>li { margin-top: 0.5ex; }
+
+div#saldospel input[type=button] { font-size: 100%; }
+
+div#saldospel input.correct { color: green; }
+div#saldospel input.incorrect { color: red; }
+
+#surface input[type=text] { width: 5em; }
+
+
+span.field { background-color: #eee; }
+
diff --git a/demos/TransQuiz/minibar_quiz.js b/demos/TransQuiz/minibar_quiz.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/minibar_quiz.js
@@ -0,0 +1,637 @@
+// minibar.js, assumes that support.js has also been loaded
+
+var tree_icon="tree-btn.png";
+
+/*
+// This is essentially what happens when you call start_minibar:
+if(server.grammar_list) grammars=server.grammar_list;
+else grammars=server.get_grammarlist();
+show_grammarlist(grammars)
+select_grammar(grammars[0])
+grammar_info=server.get_languages()
+show_languages(grammar_info)
+new_language()
+complete_output=get_completions()
+show_completions(complete_output)
+*/
+
+function Minibar(server,opts,target) {
+    // Typically called when the HTML document is loaded
+
+    /* --- Configuration ---------------------------------------------------- */
+
+    // default values for options:
+    this.options={
+	show_abstract: false,
+	show_trees: false,
+	show_grouped_translations: true,
+	delete_button_text: "⌫",
+	default_source_language: null,
+	
+	//modified for quiz
+	try_google: false,
+	
+	feedback_url: null,
+	
+	//modified for quiz
+	random_button: false,
+	
+	help_url: null
+    }
+
+    // Apply supplied options
+    if(opts) for(var o in opts) this.options[o]=opts[o];
+
+    /* --- Creating user interface elements --------------------------------- */
+
+    this.surface=div_id("surface");
+    this.extra=div_id("extra");
+    this.menubar=div_id("menubar");
+    this.words=div_id("words");
+    this.translations=div_id("translations");
+
+    this.minibar=element(target || "minibar");
+    this.minibar_contin=element("minibar_contin");
+    this.minibar_buttons=element("minibar_buttons");
+    this.minibar.innerHTML="";
+	
+	//modified for quiz
+    with(this) {
+	appendChildren(minibar,[menubar]);
+	appendChildren(minibar_contin,[surface,words]);
+	append_extra_buttons(extra,options);
+    }
+
+    // Filled in and added to minibar later:
+    this.grammar_menu=empty_id("select","grammar_menu");
+    this.from_menu=empty_id("select","from_menu");
+    this.to_menu=empty_id("select","to_menu");
+	
+
+    /* --- Minibar client state initialisation ------------------------------ */
+    this.grammar=null;
+	
+	//modified for quiz
+    this.current={from: null, to:null, input: ""};
+	
+    this.previous=null;
+
+    this.server=server;
+
+    /* --- Main program, this gets things going ----------------------------- */
+    with(this) {
+	if(server.grammar_list) show_grammarlist(server.grammar_list);
+	else server.get_grammarlist(bind(show_grammarlist,this));
+    }
+}
+
+/* --- Auxiliary functions ---------------------------------------------- */
+
+
+Minibar.prototype.show_grammarlist=function(grammars) {
+    debug(this)
+    with(this) {
+	//debug("show_grammarlist ")
+	menubar.innerHTML="";
+	if(grammars.length>1) {
+	    function opt(g) { return option(g,g); }
+	    appendChildren(grammar_menu,map(opt,grammars));
+    	    grammar_menu.onchange=
+		bind(function() { select_grammar(grammar_menu.value); },this);
+	    appendChildren(menubar,[text("Grammar: "),grammar_menu]);
+	}
+	//modified for quiz
+	appendChildren(menubar,
+		       [text(" From: "), from_menu,
+			    text(" To: "), to_menu]);
+	//modified for quiz
+	appendChildren(minibar_buttons,
+			[button(options.delete_button_text,bind(delete_last,this),"H"),
+			button("Clear",bind(clear_all,this),"L")]);
+					
+	if(options.random_button)
+	    menubar.appendChild(button("Random",bind(generate_random,this),"R"));
+	if(options.help_url)
+	    menubar.appendChild(button("Help",bind(open_help,this)));
+		
+	select_grammar(grammars[0]);
+    }
+}
+
+Minibar.prototype.select_grammar=function(grammar_name) {
+    var t=this;
+    //debug("select_grammar ");
+    function get_languages() {
+	t.server.get_languages(bind(t.show_languages,t));
+    }
+    t.server.switch_grammar(grammar_name,get_languages);
+}
+
+Minibar.prototype.show_languages=function(grammar_info) {
+    var t=this;
+    with(t) {
+	//debug("show_languages ");
+	grammar=grammar_info;
+
+	var new_language=function () {
+	    current.from=from_menu.value;
+		
+		//modified for quiz
+	    //clear_all();
+	}
+	
+	//added for quiz
+	var change_tolang=function () {
+	    current.to=to_menu.value;
+		
+		//var langname = element("to_menu").value;
+	    //to_menu.current={to: langname, input: ""};
+		clear_all();
+	}
+	
+	from_menu.onchange=bind(new_language,t);
+	update_language_menu(from_menu,grammar);
+	set_initial_language(options,from_menu,grammar);
+    
+	//modified and added for quiz
+	//to_menu.onchange=bind(get_translations,t);
+    to_menu.onchange=bind(change_tolang,t);
+	
+	update_language_menu(to_menu,grammar);
+	
+	//modified for quiz
+	//insertFirst(to_menu,option("All","All"));
+	//to_menu.value="All";
+
+	new_language();
+	
+	//added for quiz
+	change_tolang();
+    }
+}
+
+Minibar.prototype.clear_all1=function() {
+    with(this) {
+	remove_typed_input();
+	current.input="";
+	previous=null;
+	surface.innerHTML="";
+	translations.innerHTML="";
+    }
+	
+	//added for quiz
+	document.answer.answer_text.value = "";
+	document.explanation.explanation_text.value= "";	
+	document.getElementById("hint_txt").innerHTML = "";
+}
+
+Minibar.prototype.clear_all=function() {
+    with(this) {
+	clear_all1();
+	get_completions();
+    }
+}
+
+Minibar.prototype.get_completions=function() {
+	  
+    with(this) {
+	//debug("get_completions ");
+	words.innerHTML="...";
+	
+	//modified for quiz
+	server.complete(current.to,current.input,bind(show_completions,this));
+    }
+}
+
+Minibar.prototype.show_completions=function(complete_output) {
+    with(this) {
+	//debug("show_completions ");
+	var completions=complete_output[0].completions;
+	var emptycnt=add_completions(completions)
+	if(true/*emptycnt>0*/) get_translations();
+	else translations.innerHTML="";
+	if(surface.typed && emptycnt==completions.length) {
+	    if(surface.typed.value=="") remove_typed_input();
+	}
+	else add_typed_input();
+    }
+	
+	//added for quiz :updates the hint and prevents the check_notEmpty alert in show_hint when all words are deleted
+    if (!(document.answer.answer_text.value == null || document.answer.answer_text.value ==""))
+	  { if (hint_times > 0  && hint_times < max_hint_times)
+	    show_hint();
+		}	  
+    else 
+	  document.getElementById("hint_txt").innerHTML = "";
+}
+
+Minibar.prototype.add_completions=function(completions) {
+    with(this) {
+	if(words.timeout) clearTimeout(words.timeout),words.timeout=null;
+	words.innerHTML="";
+	words.completions=completions;
+	words.word=[];
+	var t=surface.typed ? surface.typed.value : "";
+	var emptycnt=0;
+	for(var i=0;i<completions.length;i++) {
+	    var s=completions[i];
+	    if(s.length>0) {
+		var w=word(s);
+		words.appendChild(w);
+		words.word[i]=w;
+	    }
+	    else emptycnt++;
+	}
+	filter_completions(t,true);
+	return emptycnt;
+    }
+}
+
+Minibar.prototype.filter_completions=function(t,dim) {
+    with(this) {
+	if(words.timeout) clearTimeout(words.timeout),words.timeout=null;
+	words.filtered=t;
+	//if(dim) debug('filter "'+t+'"');
+	var w=words.word;
+	words.count=0;
+	var dimmed=0;
+	var prefix=""; // longest common prefix, for completion
+	for(var i=0;i<w.length;i++) {
+	    var s=words.completions[i];
+	    var keep=hasPrefix(s,t);
+	    if(keep) {
+		if(words.count==0) prefix=s;
+		else prefix=(commonPrefix(prefix,s));
+		words.count++;
+	    }
+	    if(dim) {
+		w[i].style.opacity= keep ? "1" : "0.5";
+		if(keep) w[i].style.display="inline";
+		else dimmed++;
+	    }
+	    else 
+		w[i].style.display=keep ? "inline" : "none";
+	}
+	words.theword=prefix;
+	if(dimmed>0)
+	    words.timeout=setTimeout(function(){ filter_completions(t,false)},1000);
+    }
+}
+ 
+Minibar.prototype.get_translations=function() {
+    with(this) {
+	var c=current;
+	if(options.show_grouped_translations)
+	    server.translategroup(c.from,c.input,bind(show_groupedtranslations,this));
+	else
+	    server.translate(c.from,c.input,bind(show_translations,this));
+    }
+}
+
+Minibar.prototype.target_lang=function() {
+    with(this) return langpart(to_menu.value,grammar.name);
+}
+
+Minibar.prototype.add_typed_input=function() {
+    with(this) {
+	var inp;
+	if(surface.typed) inp=surface.typed;
+	else {
+	    inp=empty("input","type","text");
+	    inp.value="";
+	    inp.setAttribute("accesskey","t");
+	    inp.style.width="10em";
+	    inp.onkeyup=bind(complete_typed,this);
+	    surface.appendChild(inp);
+	    surface.typed=inp;
+	}
+	inp.focus();
+    }
+}
+
+Minibar.prototype.remove_typed_input=function() {
+    with(this) {
+	if(surface.typed) {
+	    surface.typed.parentNode.removeChild(surface.typed);
+	    surface.typed=null;
+	}
+    }
+}
+
+Minibar.prototype.complete_typed=function(event) {
+    with(this) {
+	//element("debug").innerHTML=show_props(event,"event");
+	var inp=surface.typed;
+	//debug('"'+inp.value+'"');
+	var s=inp.value;
+	var ws=s.split(" ");
+	if(ws.length>1 || event.keyCode==13) {
+	    if(ws[0]!=words.filtered) filter_completions(ws[0],true);
+	    if(words.count==1) add_word(words.theword);
+	    else if(elem(ws[0],words.completions)) add_word(ws[0]);
+	    else if(words.theword.length>ws[0].length) inp.value=words.theword;
+	}
+	else if(s!=words.filtered) filter_completions(s,true)
+    }
+}
+
+Minibar.prototype.generate_random=function() {
+    var t=this;
+    function show_random(random) {
+	t.clear_all1();
+	t.add_words(random[0].text);
+    }
+    
+    function lin_random(abs) {
+	t.server.linearize(abs[0].tree,t.current.from,show_random);
+    }
+    t.server.get_random(lin_random);
+}
+
+Minibar.prototype.add_words=function(s) {
+    with(this) {
+	var ws=s.split(" ");
+	for(var i=0;i<ws.length;i++)
+	    add_word1(ws[i]+" ");
+	get_completions();
+    }
+	//added for quiz
+    document.answer.answer_text.value += s+" ";	
+}
+
+Minibar.prototype.word=function(s) { 
+    var t=this;
+    function click_word() {
+	if(t.surface.typed) t.surface.typed.value="";
+	t.add_word(s);
+    }
+    return button(s,click_word);
+}
+
+Minibar.prototype.add_word=function(s) {
+    with(this) {
+	add_word1(s+" ");
+	if(surface.typed) {
+	    var s2;
+	    if(hasPrefix(s2=surface.typed.value,s)) {
+		s2=s2.substr(s.length);
+		while(s2.length>0 && s2[0]==" ") s2=s2.substr(1);
+		surface.typed.value=s2;
+	    }
+	    else surface.typed.value="";
+	}
+	get_completions();
+    }
+	
+	//added for quiz
+    document.answer.answer_text.value += s+" ";
+}
+
+Minibar.prototype.add_word1=function(s) {
+    with(this) {
+	previous={ input: current.input, previous: previous };
+	current.input+=s;
+	var w=span_class("word",text(s));
+	if(surface.typed) surface.insertBefore(w,surface.typed);
+	else surface.appendChild(w);
+    }
+}
+
+Minibar.prototype.delete_last=function() {
+    with(this) {
+	if(surface.typed && surface.typed.value!="")
+	    surface.typed.value="";
+	else if(previous) {
+	    current.input=previous.input;
+	    previous=previous.previous;
+	    if(surface.typed) {
+		surface.removeChild(surface.typed.previousSibling);
+		surface.typed.focus();
+	    }
+	    else surface.removeChild(surface.lastChild);
+	    translations.innerHTML="";
+		
+		//added for quiz (to update the user answer area)
+	    var last_answer= document.answer.answer_text.value ;
+	    document.answer.answer_text.value = remove_last(last_answer);
+		
+	    get_completions();
+	}
+    }
+}
+
+	//added for quiz
+    function remove_last(txt){
+      var str = remove_unwanted_characters(txt);
+      var ls= str.lastIndexOf(" ");
+      if (ls > -1)
+	    return str.substring(0,ls ) + " ";
+      else
+        return "";
+    }
+
+Minibar.prototype.tdt=function(tree_btn,txt) {
+    with(this) {
+	return options.show_trees ? tda([tree_btn,txt]) : td(txt);
+    }
+}
+
+Minibar.prototype.show_translations=function(translationResults) {
+    with(this) {
+	var trans=translations;
+	//var to=target_lang(); // wrong
+	var to=to_menu.value;
+	var cnt=translationResults.length;
+	//trans.translations=translations;
+	trans.single_translation=[];
+	trans.innerHTML="";
+	/*
+	  trans.appendChild(wrap("h3",text(cnt<1 ? "No translations?" :
+	  cnt>1 ? ""+cnt+" translations:":
+	  "One translation:")));
+	*/
+	for(p=0;p<cnt;p++) {
+	    var tra=translationResults[p];
+	    if (tra.translations != null) {
+		for (q = 0; q < tra.translations.length; q++) {
+		    var t = tra.translations[q];
+		    var lin=t.linearizations;
+		    var tbody=empty("tbody");
+		    if(options.show_abstract && t.tree)
+			tbody.appendChild(tr([th(text("Abstract: ")),
+					      tdt(abstree_button(t.tree),text(" "+t.tree))]));
+		    for(var i=0;i<lin.length;i++) 
+			if(to=="All" || lin[i].to==to)
+			    tbody.appendChild(tr([th(text(langpart(lin[i].to,grammar.name)+": ")),
+						  tdt(parsetree_button(t.tree,lin[i].to),
+						      text(lin[i].text))]));
+		    trans.appendChild(wrap("table",tbody));
+		}
+	    }
+	    else if(tra.typeErrors) {
+		var errs=tra.typeErrors;
+		for(var i=0;i<errs.length;i++)
+		    trans.appendChild(wrap("pre",text(errs[i].msg)))
+	    }
+	}
+    }
+}
+
+Minibar.prototype.show_groupedtranslations=function(translationsResult) {
+    with(this) {
+	var trans=translations;
+	var to=target_lang();
+	//var to=to_menu.value // wrong
+	var cnt=translationsResult.length;
+	//trans.translations=translationsResult;
+	trans.single_translation=[];
+	trans.innerHTML="";
+	for(p=0;p<cnt;p++) {
+	    var t=translationsResult[p];
+	    if(to=="All" || t.to==to) {
+		var lin=t.linearizations;
+		var tbody=empty("tbody");
+		if(to=="All") tbody.appendChild(tr([th(text(t.to+":"))]));
+		for(var i=0;i<lin.length;i++) {
+		    if(to!="All") trans.single_translation[i]=lin[i].text;
+		    tbody.appendChild(tr([td(text(lin[i].text))]));
+		    if (lin.length > 1) tbody.appendChild(tr([td(text(lin[i].tree))]));
+		}
+		trans.appendChild(wrap("table",tbody));
+	    }
+	}
+    }
+}
+
+Minibar.prototype.append_extra_buttons=function(extra,options) {
+    with(this) {
+	if(options.try_google)
+	    extra.appendChild(button("Try Google Translate",bind(try_google,this)));
+	if(options.feedback_url)
+	    appendChildren(extra,[text(" "),button("Feedback",bind(open_feedback,this))]);
+    }
+}
+
+Minibar.prototype.try_google=function() {
+    with(this) {
+	var to=target_lang();
+	var s=current.input;
+	if(surface.typed) s+=surface.typed.value;
+	var url="http://translate.google.com/?sl="
+	        +langpart(current.from,grammar.name);
+	if(to!="All") url+="&tl="+to;
+	url+="&q="+encodeURIComponent(s);
+	window.open(url);
+    }
+}
+
+Minibar.prototype.open_help=function() {
+    with(this) open_popup(options.help_url,"help");
+}
+
+Minibar.prototype.open_feedback=function() {
+    with(this) {
+	// make the minibar state easily accessible from the feedback page:
+	minibar.state={grammar:grammar,current:current,to:to_menu.value,
+		       translations:translations};
+	open_popup(options.feedback_url,'feedback');
+    }
+}
+
+function update_language_menu(menu,grammar) {
+    // Replace the options in the menu with the languages in the grammar
+    var lang=grammar.languages;
+    menu.innerHTML="";
+	
+    for(var i=0; i<lang.length; i++) {
+	var ln=lang[i].name;
+	if(!hasPrefix(ln,"Disamb")) {
+	    var lp=langpart(ln,grammar.name);
+	    menu.appendChild(option(lp,ln));
+	}
+    }
+}
+
+function set_initial_language(options,menu,grammar) {
+    if(grammar.userLanguage) menu.value=grammar.userLanguage;
+    else if(options.default_source_language) {
+	for(var i=0;i<menu.options.length;i++) {
+	    var o=menu.options[i].value;
+	    var l=langpart(o,grammar.name);
+	    if(l==options.default_source_language) menu.value=o;
+	}
+    }
+}
+
+function langpart(conc,abs) { // langpart("FoodsEng","Foods") == "Eng"
+    return hasPrefix(conc,abs) ? conc.substr(abs.length) : conc;
+}
+
+function abstree_button(abs) {
+  var i=img(tree_icon);
+  i.setAttribute("onclick","toggle_img(this)");
+  i.other=server.current_grammar_url+"?command=abstrtree&tree="+encodeURIComponent(abs);
+  return i;
+}
+
+function parsetree_button(abs,lang) {
+  var i=img(tree_icon);
+  i.setAttribute("onclick","toggle_img(this)");
+  i.other=server.current_grammar_url
+          +"?command=parsetree&from="+lang+"&tree="+encodeURIComponent(abs);
+  return i;
+}
+
+function toggle_img(i) {
+  var tmp=i.src;
+  i.src=i.other;
+  i.other=tmp;
+}
+
+function open_popup(url,target) {
+    var w=window.open(url,target,'toolbar=no,location=no,status=no,menubar=no');
+    w.focus();
+}
+
+function setField(form,name,value) {
+    form[name].value=value;
+    var el=element(name);
+    if(el) el.innerHTML=value;
+}
+
+function opener_element(id) { with(window.opener) return element(id); }
+
+// This function is called from feedback.html
+function prefill_feedback_form() {
+    var state=opener_element("minibar").state;
+    var trans=state.translations;
+    var gn=state.grammar.name
+    var to=langpart(state.to,gn);
+
+    var form=document.forms.namedItem("feedback");
+    setField(form,"grammar",gn);
+    setField(form,"from",langpart(state.current.from,gn));
+    setField(form,"input",state.current.input);
+    setField(form,"to",to);
+    if(to=="All") element("translation_box").style.display="none";
+    else setField(form,"translation",trans.single_translation.join(" / "));
+    
+    // Browser info:
+    form["inner_size"].value=window.innerWidth+"×"+window.innerHeight;
+    form["outer_size"].value=window.outerWidth+"×"+window.outerHeight;
+    form["screen_size"].value=screen.width+"×"+screen.height;
+    form["available_screen_size"].value=screen.availWidth+"×"+screen.availHeight;
+    form["color_depth"].value=screen.colorDepth;
+    form["pixel_depth"].value=screen.pixelDepth;
+
+    window.focus();
+}
+    
+
+/*
+se.chalmers.cs.gf.gwt.TranslateApp/align-btn.png
+
+GET /grammars/Foods.pgf?&command=abstrtree&tree=Pred+(This+Fish)+(Very+Fresh)
+GET /grammars/Foods.pgf?&command=parsetree&tree=Pred+(This+Fish)+Expensive&from=FoodsAfr
+GET /grammars/Foods.pgf?&command=alignment&tree=Pred+(This+Fish)+Expensive
+*/
diff --git a/demos/TransQuiz/pgf_online.js b/demos/TransQuiz/pgf_online.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/pgf_online.js
@@ -0,0 +1,56 @@
+
+/* --- Grammar access object ------------------------------------------------ */
+
+function pgf_online(options) {
+    var server = {
+	// State variables (private):
+	grammars_url: "/grammars/",
+	grammar_list: null,
+	current_grammar_url: null,
+	
+	// Methods:
+	switch_grammar: function(grammar_url,cont) {
+ 	    this.current_grammar_url=this.grammars_url+grammar_url;
+	    if(cont) cont();
+	},
+	get_grammarlist: function(cont) {
+	    http_get_json(this.grammars_url+"grammars.cgi",cont);
+	},
+	pgf_call: function(cmd,args,cont) {
+	    var url=this.current_grammar_url+"?command="+cmd;
+	    for(var arg in args) url+="&"+arg+"="+encodeURIComponent(args[arg]);
+	    http_get_json(url,cont);
+	},
+	
+	get_languages: function(cont) {
+	    this.pgf_call("grammar",{},cont);
+	},
+	
+	get_random: function(cont) {
+	    this.pgf_call("random",{random:Math.random()},cont);
+	},
+	linearize: function(tree,to,cont) {
+	    this.pgf_call("linearize",{tree:tree,to:to},cont);
+	},
+	linearizeAll: function(tree,to,cont) {
+	    this.pgf_call("linearizeAll",{tree:tree,to:to},cont);
+    },
+	complete: function(from,input,cont) {
+	    this.pgf_call("complete",{from:from,input:input},cont);
+	},
+	parse: function(from,input,cont) {
+	    this.pgf_call("parse",{from:from,input:input},cont);
+	},
+	translate: function(from,input,cont) {
+	    this.pgf_call("translate",{from:from,input:input},cont);
+	},
+	translategroup: function(from,input,cont) {
+	    this.pgf_call("translategroup",{from:from,input:input},cont);
+	}
+	
+    };
+    for(var o in options) server[o]=options[o];
+    if(server.grammar_list && server.grammar_list.length>0)
+	server.switch_grammar(server.grammar_list[0]);
+    return server;
+}
diff --git a/demos/TransQuiz/quiz_about.html b/demos/TransQuiz/quiz_about.html
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/quiz_about.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Quiz About</title>
+<link rel=stylesheet type="text/css" href="minibar_quiz.css">
+
+<meta name = "viewport" content = "width = device-width">
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
+<meta charset="UTF-8">
+
+</head>
+
+<body>
+
+<h3>About GF Translation Quiz </h3>
+
+<p style="font-size:18px;">
+ This project is actually part of my master thesis work at <a href="http://chalmers.se/en/Pages/default.aspx" >Chalmers University of Technology</a>
+ , in the Language Technology group under supervision of Professor <a href="http://www.cse.chalmers.se/~aarne/">Aarne Ranta.</a> The application
+ is an exercise generator to be used in training the lexical, morphological and syntactic aspects of human languages.
+ One important aspect of this application is that it is intended to be as general as possible and specially not 
+ to be limited to any specific human language. For this purpose GF’s (The <a href="http://www.grammaticalframework.org/" >Grammatical Framework </a>) 
+ Resource Grammar Libraries have been applied as the constructive core of the project. The application also uses the
+ <a href="http://code.google.com/p/grammatical-framework/wiki/GFWebServiceAPI" >GF web services API </a> 
+ which has made it possible to apply the PGF API as Web Service, to be more precise the Quiz uses the additional API for JavaScript defined in pgf_online.js provided by the 
+ <a href="http://www.grammaticalframework.org:41296/minibar/minibar.html"> Minibar </a> application. 
+ The Quiz also relies on the Minibar,
+ in the "Easy Study Mode" of the Quiz, where word magnets from the Minibar are available to help the user construct his/her answer.
+</p>
+<p style="font-size:18px;"> The generated exercises are in the preliminary form of sentences 
+ in a certain language - selected by the  user - which need to be translated to another one - which is also the user's choice. 
+ The user may choose the grammar he/she wants to train with as well. More information about how the quiz works can be found from the
+ <a href="quiz_help.html" >link </a> in  the Quiz main page. 
+ 
+</p>  
+ 
+<br/> 
+ Author:  <i><b> Elnaz Abolahrar </b></i> (elnaz dot abolahrar at gmail dot com) 
+<br/>
+  Date: December, 2010 - Göteborg, Sweden
+<br/>
+<br/>
+
+<br/>
+<div class="shift_left"><a href="javascript: window.close()">Close page</a></div>
+
+</body>
+
+</html> 
diff --git a/demos/TransQuiz/quiz_help.html b/demos/TransQuiz/quiz_help.html
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/quiz_help.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Quiz Help</title>
+<link rel=stylesheet type="text/css" href="minibar_quiz.css">
+
+<meta name = "viewport" content = "width = device-width">
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
+<meta charset="UTF-8">
+
+</head>
+
+<body>
+<a href="quiz_about.html" >About GF Translation Quiz </a>
+
+<h3>&#x095 How the Quiz works?  </h3>
+
+<p style="font-size:18px;">
+ <b>Hint:</b> You will find the Hint button very handy in all quiz modes. In fact it works very much similar to the famous <a href="http://en.wikipedia.org/wiki/Mastermind_(board_game)">Mastermind</a> game. Words in green stand for correct words in their correct place in the sentence, and yellow words mean these words are correct words and are part of the right answer but they are misplaced, while red words stand for words which do not exist in the right answer and are either misspelled or totally wrong lexically or grammatically.
+<br/><br/>
+ <b>Check Answer:</b> You can check whether your answer is right by either clicking on this button or pressing the Enter/Return key of your keyboard. (Exception: In the "Easy Study Mode" you cannot use the Enter/Return key for checking your answer, because it has another functionality which is adding typed words to your answer.) Please note that by checking your answer you also submit it, and for each question you have only one submission chance to increase your score - further submissions don't have any impact on your score. Use the Hint if you are not sure and of course if it is available. Also note that Check Answer moves you automatically to the next question if your answer is right. 
+<br/><br/> 
+ <b>History:</b> At the end of the quiz, either if you end it manually by pressing the "End" button or when the quiz ends itself e.g.  when you pass the quiz or at the end of an exam, you will get a "Show Quiz History" button by which you may review and print the whole questions together with your answers and the programs' feedback. 
+</p>
+<hr>
+
+<h3>&#x095 How different are different Quiz Modes?  </h3>
+
+<p style="font-size:18px;"> <b>Easy Study Mode: </b>
+In this mode word magnets are available to help you; you can type and/or click on them freely to construct your answer. Use "&#x232B" (Delete last) <!--img border="0" src="Delete_button.jpg" alt="&#x232B"  width="30" height="17" /--> and "Clear" buttons to delete the last word or all of your answer in case required. Theses words come from the grammar you have chosen, and therefore it keeps you from mistyping words and even making grammatically wrong sentences. Also you have unlimited Hint which is automatically updated as you modify your answer. You can also go to one previous question at a time and of course check your answer's correctness. 
+<br/><br/><b>Medium Study Mode: </b>
+In this mode you can use the Hint button for a maximum of 3 times for each question, and you have the possibility of going to one previous question at a time as well as checking your answer's correctness.
+<br/><br/><b>Hard Study Mode: </b>
+In this mode you can use the Hint button only once for each question, and you may not use the Previous question button however you may check your answer's correctness.
+<br/><br/><b>Exam Mode: </b>
+In this mode you cannot use the Hint, Previous question or Check answer buttons, and you will not see your score until the end of the exam.
+</p>
+
+<br/>
+<div class="shift_left"><a href="javascript: window.close()">Close page</a></div>
+
+</body>
+
+</html>
+
diff --git a/demos/TransQuiz/quiz_pre_start.js b/demos/TransQuiz/quiz_pre_start.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/quiz_pre_start.js
@@ -0,0 +1,63 @@
+// pre_start: runs on load time before evrything else to prepare the quiz
+
+function pre_start()
+{
+  hide_element('history_part');
+  hide_element('toggle_show'); 
+
+  default_values();
+
+  var quiz_mode=empty_id("select","quiz_mode");
+
+  //adds the  "Quiz Mode" and "Restart Quiz" and "End Quiz" and "Start Quiz"  
+  appendChildren(minibar.menubar,
+		    [empty("br"),
+		    text(" Quiz Mode: "), quiz_mode, 
+			button("Restart Quiz","restart_quiz()","R"),
+			button("End Quiz","end_quiz(true)","E"),
+			button("Start Quiz","start_quiz()","S")]);
+			
+				
+  //adds the  "Next Question" and "Previous Question" and "Hint" and "Check Answer" buttons
+  var buttons_bar=element("buttons_bar");
+  appendChildren(buttons_bar,
+		   [button("< Previous Question","previous_question_quiz()","B", "previous_question"),
+			button("Next Question >","generate_question()","N", "next_question"),
+			button("Hint","show_hint()","H", "hint"),
+			submit_button("Check Answer", "check_answer")]);
+	
+    disable_all();	
+	
+	//hide the minibar word magnets
+      hide_element('minibar_contin');
+		   
+	//hide the delete and clear buttons
+	  hide_element('minibar_buttons');
+
+	mode_options(quiz_mode);
+}
+
+
+function mode_options(quiz_mode)
+     {
+	  var opt=empty("option");
+	  opt.setAttribute("value","Easy Study Mode");
+	  opt.innerHTML="Easy Study Mode";
+	  quiz_mode.appendChild(opt);
+	  
+	  var opt=empty("option");
+	  opt.setAttribute("value","Medium Study Mode");
+	  opt.innerHTML="Medium Study Mode";
+	  quiz_mode.appendChild(opt);
+	  
+	  var opt=empty("option");
+	  opt.setAttribute("value","Hard Study Mode");
+	  opt.innerHTML="Hard Study Mode";
+	  quiz_mode.appendChild(opt);
+	  
+	  var opt=empty("option");
+	  opt.setAttribute("value","Exam Mode");
+	  opt.innerHTML="Exam Mode";
+	  quiz_mode.appendChild(opt);  
+     }
+	 
diff --git a/demos/TransQuiz/quiz_support.js b/demos/TransQuiz/quiz_support.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/quiz_support.js
@@ -0,0 +1,247 @@
+
+function hide_element(elem_id)
+{
+  document.getElementById(elem_id).style.display="none";
+}
+
+function show_element(elem_id)
+{
+  document.getElementById(elem_id).style.display="";
+}
+
+function toggle_info()
+{ 
+  if ( info_hidden == true )
+    {
+     show_element("info");
+	 hide_element("toggle_show");
+	 show_element("toggle_hide");
+	 info_hidden = false;
+     }
+  else
+    {
+     hide_element("info");
+	 show_element("toggle_show");
+	 hide_element("toggle_hide");
+	 info_hidden = true;
+     }
+}
+
+function show_word_magnets()
+{ 
+  if ( words_hidden == true )
+    {
+     show_element("words");
+     words_hidden= false;
+     var buttons_bar=element("buttons_bar")
+     buttons_bar.removeChild(buttons_bar.lastChild);
+	 } 
+}
+
+function hide_word_magnets()
+{ 
+  if ( words_hidden == false )
+    {
+      hide_element("words");
+      words_hidden= true;
+  
+     //add "Show magnets" button
+     var buttons_bar=element("buttons_bar")
+     appendChildren(buttons_bar,
+		   [ button("Show Magnets","show_word_magnets()","M", "show_magnets")]);
+	 }
+}		   
+
+function popUp(newPage, pageName) 
+{
+  window.open(newPage, pageName, "dependent = 1, scrollbars=1, location=1, statusbar=1, width=540, height=650, left = 10, top = 20");
+}
+
+
+function disable_all()
+{
+  //disables the "Hint", "Check Answer", "Next Question" and "Previous Question" buttons + user answer area	
+    document.getElementById('check_answer').disabled = true;
+    document.getElementById('next_question').disabled = true;
+    document.getElementById('previous_question').disabled = true;
+    document.getElementById('hint').disabled = true;
+    document.getElementById('user_answer').disabled = true;
+}
+
+function set_mode()
+{	
+    //disable the grammar - To - From languages, and mode menubar
+      document.getElementById('grammar_menu').disabled = true;	
+      document.getElementById('from_menu').disabled = true;
+      document.getElementById('to_menu').disabled = true;
+      document.getElementById('quiz_mode').disabled = true;
+    	
+	
+    selected_mode = element("quiz_mode").value;
+		
+    //sets the Quiz mode displayed
+      document.getElementById('mode').value = selected_mode;
+	  
+/*-------------------------------------- Modes Settings --------------------------------------*/	  
+    switch (selected_mode)
+	 {
+	  case "Easy Study Mode":
+	        have_minibar = true;
+			have_prevQuestion = true;
+			have_checkAns = true;
+			max_hint_times = 100;
+			break;
+	         
+	  case "Medium Study Mode":
+			have_minibar = false;
+			have_prevQuestion = true;
+			have_checkAns = true;
+			max_hint_times = 3;
+			break;
+			
+	  case "Hard Study Mode":
+			have_minibar = false;
+			have_prevQuestion = false;
+			have_checkAns = true;
+			max_hint_times = 1;
+			break;
+			
+	  case "Exam Mode":
+			have_minibar = false;
+			have_prevQuestion = false;
+			have_checkAns = false;
+			max_hint_times = 0;
+			break;
+	  }
+}
+
+function reset_mode()
+{		 	  
+    //enable the grammar - To - From languages, and mode menubar
+      document.getElementById('grammar_menu').disabled = false;	
+      document.getElementById('from_menu').disabled = false;
+      document.getElementById('to_menu').disabled = false;
+      document.getElementById('quiz_mode').disabled = false;
+			 
+    //clears the Quiz mode displayed
+      document.getElementById('mode').value = "";
+}
+
+function remove_minibar()
+{
+  if (have_minibar && is_ended == false )
+	{
+	    //hide the minibar word magnets
+        hide_element("minibar_contin");
+		   
+	   //hide the delete and clear buttons
+	    hide_element("minibar_buttons");
+	 }
+}
+
+function remove_unwanted_characters(txt)
+{
+  //removes digits, special characters and extra spaces from user's answer 
+    txt =  txt.replace(/[\u0021-\u0026 \u0028-\u0040 \u005b-\u0060 \u007b-\u007e]+/g,' ').replace(/^\s+|\s+$/g,'').replace(/\s+/g,' ');
+  
+  //changes the first character to lowercase 
+    txt= txt.replace(txt.charAt(0),txt.charAt(0).toLowerCase());
+ 
+  return txt;
+}
+
+function split_to_words(str)
+{
+  if (!(str == "" || str == null))
+	str = str.split(" ");
+  else 
+	str = "";
+	
+  return str;
+}
+
+function string_matching(serv_answer,use_answer)
+{
+  var result = new Array();
+  
+  //for empty answers
+  if ( use_answer== "" || use_answer== null)
+	  result= "";	
+  else
+    {
+	  var min_length = Math.min(serv_answer.length, use_answer.length);
+	  
+	  var i=0;   
+	  for (i= 0; i < min_length; i++)
+        {
+	      if (serv_answer[i] == use_answer[i])
+		     result[i] = 1;
+		  else
+           	 result[i] = 0;
+		 }
+	  //for answers with extra words (more than the number of words in the right answer)   
+	    while ( i < use_answer.length)
+	        {
+		    	result[i] = 0;
+		 	    i++;
+		     } 
+	 }
+	 
+   return result;
+}
+
+function sum_all(arr) {
+  var s = 0;
+  for (var i = 0; i < arr.length; i++) 
+  {
+    s += arr[i];
+  }
+  return s;
+}
+
+function find_closest(all_ans)
+{ 
+  var best_match = new Array();
+  var comp = new Array();
+  var server_answer2  = new Array();
+  var max=0;
+  var k = 0;
+  for (k= 0; k < all_ans.length; k++)
+      {
+	    server_answer = remove_unwanted_characters(all_ans[k]);
+		server_answer2 = split_to_words(server_answer);
+		
+		comp = string_matching(server_answer2, user_answer_splited);
+        var sum = sum_all(comp);
+		if (sum >= max)
+		  {
+		    best_match = server_answer2;
+			max= sum;
+			}	
+		}
+	return best_match;
+}
+
+function clearing()
+{
+  //clears the question, answer and the explanation and hint display areas
+	document.question.question_text.value= "...";
+	document.answer.answer_text.value = "";
+	document.explanation.explanation_text.value= "";	
+	document.getElementById("hint_txt").innerHTML = ""; 
+}
+
+//checks that the answer field is not empty
+function check_notEmpty()
+{
+  if (document.answer.answer_text.value == null || document.answer.answer_text.value =="")
+    {
+	  alert(" You have to write something first!");	
+	  //sets the focus on the answer area
+        document.answer.answer_text.focus();
+	   
+	  return false; 
+      }
+  else
+      return true;
+}
diff --git a/demos/TransQuiz/support.js b/demos/TransQuiz/support.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/support.js
@@ -0,0 +1,285 @@
+/* --- Accessing document elements ------------------------------------------ */
+
+function element(id) {
+  return document.getElementById(id);
+}
+
+/* --- JavaScript tricks ---------------------------------------------------- */
+
+// To be able to object methods that refer to "this" as callbacks
+// See section 3.3 of https://github.com/spencertipping/js-in-ten-minutes/raw/master/js-in-ten-minutes.pdf
+function bind(f, this_value) {
+    return function () {return f.apply (this_value, arguments)};
+};
+
+/* --- JSONP ---------------------------------------------------------------- */
+
+// Inspired by the function jsonp from 
+//          http://www.west-wind.com/Weblog/posts/107136.aspx
+// See also http://niryariv.wordpress.com/2009/05/05/jsonp-quickly/
+//          http://en.wikipedia.org/wiki/JSON#JSONP
+function jsonp(url,callback)
+{                
+    if (url.indexOf("?") > -1)
+        url += "&jsonp=" 
+    else
+        url += "?jsonp=" 
+    url += callback;
+    //url += "&" + new Date().getTime().toString(); // prevent caching        
+    
+    var script = empty("script");        
+    script.setAttribute("src",url);
+    script.setAttribute("type","text/javascript");                
+    document.body.appendChild(script);
+}
+
+var json = {next:0};
+
+// Like jsonp, but instead of passing the name of the ballback function, you 
+// pass the callback function directly, making it possible to use anonymous
+// functions.
+function jsonpf(url,callback)
+{
+    var name="callback"+(json.next++);
+    json[name]=function(x) { delete json[name]; callback(x); }
+    jsonp(url,"json."+name);
+}
+
+/* --- AJAX ----------------------------------------------------------------- */
+
+function GetXmlHttpObject(handler)
+{ 
+  var objXMLHttp=null
+  if (window.XMLHttpRequest)
+  {
+    objXMLHttp=new XMLHttpRequest()
+  }
+  else if (window.ActiveXObject)
+  {
+    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
+  }
+  return objXMLHttp
+}
+
+function ajax_http_get(url,callback) {
+    var http=GetXmlHttpObject()
+    if (http==null) {
+	alert ("Browser does not support HTTP Request")
+	return
+    } 
+    var statechange=function() {
+	if (http.readyState==4 || http.readyState=="complete") {
+	    if(http.status==200) callback(http.responseText);
+	    else alert("Request for "+url+" failed: "
+		       +http.status+" "+http.statusText);
+	}
+    }
+    http.onreadystatechange=statechange;
+    http.open("GET",url,true)
+    http.send(null)
+    //dump("http get "+url+"\n")
+    return http
+}
+
+// JSON via AJAX
+function ajax_http_get_json(url,cont) {
+    ajax_http_get(url,function(txt) { cont(eval("("+txt+")")); });
+}
+
+function sameOrigin(url) {
+    return hasPrefix(url,location.protocol+"//"+location.host+"/");
+}
+
+// Use AJAX when possible, fallback to JSONP
+function http_get_json(url,cont) {
+    if(sameOrigin(url)) ajax_http_get_json(url,cont);
+    else jsonpf(url,cont);
+}
+
+
+/* --- HTML construction ---------------------------------------------------- */
+function text(s) { return document.createTextNode(s); }
+
+function node(tag,as,ds) {
+    var n=document.createElement(tag);
+    for(var a in as) n.setAttribute(a,as[a]);
+    for(var i in ds) n.appendChild(ds[i]);
+    return n;
+}
+
+function empty(tag,name,value) {
+    var el=node(tag,{},[])
+    if(name && value) el.setAttribute(name,value);
+    return el;
+}
+
+function empty_id(tag,id) { return empty(tag,"id",id); }
+function empty_class(tag,cls) { return empty(tag,"class",cls); }
+
+function div_id(id) { return empty_id("div",id); }
+function span_id(id) { return empty_id("span",id); }
+
+function wrap(tag,contents) { return node(tag,{},[contents]); }
+
+function wrap_class(tag,cls,contents) {
+  var el=empty_class(tag,cls);
+  if(contents) el.appendChild(contents);
+  return el;
+}
+
+function span_class(cls,contents) { return wrap_class("span",cls,contents); }
+function div_class(cls,contents)  { return wrap_class("div",cls,contents); }
+
+function p(contents) { return wrap("p",contents); }
+function dt(contents) { return wrap("dt",contents); }
+function li(contents) { return wrap("li",contents); }
+
+function th(contents) { return wrap("th",contents); }
+function td(contents) { return wrap("td",contents); }
+
+function tr(cells) { return node("tr",{},cells); }
+
+//modified for quiz (id added)
+function button(label,action,key ,id) {
+    var el=node("input",{"type":"button","value":label},[]);
+    if(typeof action=="string") el.setAttribute("onclick",action);
+    else el.onclick=action;
+    if(key) el.setAttribute("accesskey",key);
+	if(id) el.setAttribute("id",id);
+    return el;
+}
+
+//added for quiz
+function submit_button(label, id) {
+  var el=empty("input","type","submit");
+  el.setAttribute("value",label);
+  if(id) el.setAttribute("id", id);
+  return el;
+}
+
+function option(label,value) {
+    return node("option",{"value":value},[text(label)]);
+}
+
+function appendChildren(el,ds) {
+    for(var i in ds) el.appendChild(ds[i]);
+    return el;
+}
+
+function insertFirst(parent,child) {
+    parent.insertBefore(child,parent.firstChild);
+}
+
+function tda(cs) { return node("td",{},cs); }
+
+function img(src) { return empty("img","src",src); }
+
+/* --- Debug ---------------------------------------------------------------- */
+
+function debug(s) {
+    var d=element("debug");
+    if(d) d.appendChild(text(s+"\n"))
+}
+
+function show_props(obj, objName) {
+   var result = "";
+   for (var i in obj) {
+      result += objName + "." + i + " = " + obj[i] + "<br>";
+   }
+   return result;
+}
+
+function field_names(obj) {
+   var result = "";
+   for (var i in obj) {
+      result += " " + i;
+   }
+   return result;
+}
+
+/* --- Data manipulation ---------------------------------------------------- */
+function swap(a,i,j) { // Note: this doesn't work on strings.
+  var tmp=a[i];
+  a[i]=a[j];
+  a[j]=tmp;
+  return a;
+}
+
+function sort(a) {
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort
+  return a.sort();
+  /* // Note: this doesn't work on strings.
+  for(var i=0;i<a.length-1;i++) {
+    var min=i;
+    for(var j=i+1;j<a.length;j++)
+      if(a[j]<a[min]) min=j;
+    if(min!=i) swap(a,i,min);
+  }
+  return a;
+  */
+}
+
+function filter(p,xs) {
+  var ys=[];
+  for(var i=0;i<xs.length;i++)
+    if(p(xs[i])) ys[ys.length]=xs[i];
+  return ys;
+}
+
+function implode(cs) { // array of strings to string
+  /*
+  var s="";
+  for(var i=0;i<cs.length;i++)
+    s+=cs[i];
+  return s;
+  */
+  return cs.join("");
+}
+
+function hasPrefix(s,pre) { return s.substr(0,pre.length)==pre; }
+
+function commonPrefix(s1,s2) {
+    for(var i=0;i<s1.length && i<s2.length && s1[i]==s2[i];i++);
+    return s1.substr(0,i);
+}
+
+/*
+function all(p,xs) {
+  for(var i=0;i<xs.length;i++)
+    if(!p(xs[i])) return false;
+  return true;
+}
+*/
+
+function map(f,xs) {
+  var ys=[];
+  for(var i=0;i<xs.length;i++) ys[i]=f(xs[i]);
+  return ys;
+}
+
+// map in continuation passing style 
+function mapc(f,xs,cont) { mapc_from(f,xs,0,[],cont); }
+
+function mapc_from(f,xs,i,ys,cont) {
+  if(i<xs.length)
+    f(xs[i],function(y){ys[i]=y;mapc_from(f,xs,i+1,ys,cont)});
+  else
+    cont(ys);
+}
+
+function overlaps(as,bs) {
+    for(var i=0;i<as.length;i++)
+	if(elem(as[i],bs)) return true;
+    return false;
+}
+
+function elem(a,as) {
+    for(var i=0;i<as.length;i++)
+	if(a==as[i]) return true;
+    return false;
+}
+
+function shuffle(a) {
+    for(i=0;i<a.length;i++) swap(a,i,Math.floor(Math.random()*a.length))
+    return a;
+}
diff --git a/demos/TransQuiz/translation_quiz.html b/demos/TransQuiz/translation_quiz.html
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/translation_quiz.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>GF Translation Quiz</title>
+
+<link rel=stylesheet type="text/css" href="minibar_quiz.css">
+
+<meta name = "viewport" content = "width = device-width">
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<meta charset="UTF-8">
+
+<script type="text/JavaScript" src="support.js"></script>
+<script type="text/JavaScript" src="minibar_quiz.js"></script>
+<script type="text/JavaScript" src="pgf_online.js"></script>
+<script type="text/JavaScript" src="quiz_support.js"></script>
+<script type="text/javascript" src="translation_quiz.js"></script>
+<script type="text/JavaScript" src="quiz_pre_start.js"></script>
+
+</head>
+
+<body onLoad="pre_start()">
+
+<div id = "info" >
+<a href="javascript:popUp('quiz_about.html', 'about')">About GF Translation Quiz</a>
+<h2 style=" padding-left: 35px;"><i> Welcome to <b>GF Translation Quiz </i></b></h2>
+
+<p style="font-size:20px;"> 
+    To start the quiz choose a grammar, From and To languages
+	<br/>  as well as a quiz mode, then press the "Start Quiz" button. 
+	<br/> <b>Note:</b> You may not change these settings in the middle of
+    <br/>  a quiz.
+	The quiz is over when you have done at least
+	<span style="color:#2E8B57;"><b><script type="text/javascript"> document.write(min_no_questions); </script></b></span> 
+	<br/>examples with a minimum success of  
+	<span style="color:#2E8B57;"><b><script type="text/javascript"> document.write(pass_percentage * 100); </script> % </b></span> 
+	. However <br/> you can restart or quit the quiz 
+	at any time by clicking <br/>on the "Restart Quiz" or "End Quiz" buttons.
+</p>
+
+<a style="font-size:18px;" href="javascript:popUp('quiz_help.html', 'help')">Click here to learn more about how the Quiz works.</a>
+<br/>
+
+</div>
+
+<div id = "toggle_hide"; class="shift_left"; ><a href="javascript: toggle_info()">Hide Information</a></div>
+<div id = "toggle_show"; class="shift_left"; ><a href="javascript: toggle_info()">Show Information</a></div>
+
+<hr noshade size=0 />
+
+<div id = "minibar1" class="bold">
+</div>
+
+<hr noshade size=0 /> 
+
+<table  frame="void" cellpadding="5" >
+		<tr>
+			<td><b>Quiz  Question:</b></td>
+		</tr>
+		<tr>
+		  <td>
+			<form name="question">
+				<textarea class="quest" name="question_text" wrap="virtual" readonly="true">
+				</textarea>
+			</form>
+		  </td>
+		</tr>
+</table>
+
+<form name="answer" onsubmit="check_answer_quiz(); return false;">
+  <fieldset>
+  
+   <legend><b>Your Answer: </b></legend>
+    <div id = "minibar_buttons" class="shift_left";></div>
+    <div id = "minibar_contin"></div>
+	<table cellpadding="2">
+			<tr>
+			  <td>
+				<input class="answer1" type="text" id="user_answer" name="answer_text" value="" />
+			  </td>
+			</tr>
+			<tr>
+				<td>
+					<div id="hint_txt" class="hint">
+				</td>
+			</tr>
+			
+			<tr>
+			  <td>
+				<div id = "buttons_bar"></div>
+			  </td>
+			</tr> 
+            <tr>
+			  <td>
+				<div id = "history_bar"></div>
+			  </td>
+			</tr> 			
+	</table>		
+		
+  </fieldset>
+</form>
+
+
+<table  frame="void" cellpadding="5" >
+		<tr>
+			<td><b>Explanation:</b></td>
+		</tr>
+		<tr>
+		  <td>
+			<form name="explanation">
+				<textarea class="explain" name="explanation_text" wrap="virtual" readonly="true">
+				</textarea>
+			</form>
+		  </td>
+		</tr>
+</table>
+
+<table cellpadding="1" cellspacing="10">
+		<tr>
+		    <td><b>Current Quiz Mode:</b></td>
+			<td><b>Answered Questions</b></td>
+			<td><b>Your Score</b></td>
+		</tr>   
+		<tr>
+		    <td><input type="text" id="mode" style="border: 0; text-align:left; color:#CD5C5C; background-color:#ccc;"  class="number" size="18" readonly="true"/></td>
+			<td><input type="text" id="counter_display" class="number" size="4" readonly="true"  value="0" /></td>
+			<td><input type="text" id="score_display"  style="color:#2E8B57" class="number" size="3" readonly="true" value="0" /></td>
+		</tr>
+</table>
+ 
+<div id="history_part">
+</div>
+
+<script type="text/javascript">
+
+var online_options={
+  grammars_url: "http://www.grammaticalframework.org/grammars/"
+//grammars_url: "http://tournesol.cs.chalmers.se:41296/grammars",
+//grammars_url: "http://localhost:41296/grammars",
+//grammar_list: ["Foods.pgf"], // leave undefined to get list from server
+}
+
+var server=pgf_online(online_options);
+
+var minibar_options= {
+  show_abstract: false,
+  show_trees: false,
+  show_grouped_translations: false,
+  default_source_language: "Eng",
+  try_google: false
+} 
+
+var minibar=new Minibar(server,minibar_options,"minibar1");
+
+</script>
+
+</body>
+
+</html>
diff --git a/demos/TransQuiz/translation_quiz.js b/demos/TransQuiz/translation_quiz.js
new file mode 100644
--- /dev/null
+++ b/demos/TransQuiz/translation_quiz.js
@@ -0,0 +1,762 @@
+// translation_quiz.js, assumes that quiz_support.js has also been loaded
+
+/*-------------------------------------- Configuration Variables --------------------------------------*/
+
+var pass_percentage = 0.75;
+var min_no_questions = 10;
+var exam_quesNo = 10;  // sets the number of questions appearing in an exam
+var max_answer_times = 1; // the max limit for the user to increase his/her score
+
+
+/*-------------------------------------- other Variables --------------------------------------*/
+
+var grammar;
+var question_lang;
+var answer_lang;
+
+//saves the random tree generated by the server in generate_question function to be used by the check_answer
+var rand_tree;  
+
+var counter;
+var score;
+var confirmed_check = new Boolean(true);
+var prev_pressed = new Boolean();
+
+var prev_question;
+var prev_explanation;
+var prev_answer;
+var prev_hint;
+var current_question;
+var current_answer;
+var current_explanation= "";
+var current_hint;
+
+//for history
+var quiz_history = [];
+var history_shown= new Boolean();
+var index =0;
+
+//for check answer
+var answer_was_right= new Boolean();
+var raw_user_answer;
+var user_answer;
+var user_answer_splited;
+var server_answer;
+var all_answers = [];
+var parsed_trees = 0;
+var words_hidden = new Boolean();
+
+var answer_times ;
+var hint_times ;
+var hint_pressed = new Boolean();
+var restart_active = new Boolean();
+var is_ended = new Boolean();
+var info_hidden = new Boolean();
+
+//modes variables 
+var have_minibar = new Boolean();
+var have_prevQuestion = new Boolean();
+var have_checkAns = new Boolean();
+var max_hint_times;
+var selected_mode;
+
+/*-------------------------------------- Functions --------------------------------------*/
+	
+
+function default_values()
+{     
+  //resets the question, answer and the explanation and hint display areas
+    document.question.question_text.value= "Quiz questions will be displayed here.";
+    document.answer.answer_text.value = " ";
+    document.explanation.explanation_text.value= "Explanations are displayed here.";  
+    document.getElementById("hint_txt").innerHTML = ""; 
+	
+  //resets some flags
+    prev_pressed = false;
+    is_ended = false;  //refering to the End button or end o quiz by score or end of exam
+    restart_active = false;  //refering to the Restart button
+	hint_pressed = false;  
+	answer_was_right= false;
+	history_shown= false;
+	  
+  //resets the counter and score displays and some variables
+    answer_times = 1;
+    counter = 0;
+    score = 0;
+    hint_times =0;
+    document.getElementById('counter_display').value = counter;
+    document.getElementById('score_display').value = score;
+	
+  //resets the variables for keeping the history	
+	quiz_history = [];
+	index =0;
+	var history=element("history_part");
+	history.innerHTML ="";
+	
+  //resets the variables for keeping the parsing and linearization altenatives		
+	parsed_trees = 0;
+    all_answers = [];
+	
+  //shows the normal user answer area	
+    show_element("user_answer");
+}
+
+function start_quiz()
+{
+   //sets the grammar and From and To languages
+	grammar= minibar.grammar_menu.value;
+	question_lang= minibar.from_menu.value;
+	answer_lang= minibar.to_menu.value;
+      
+   //removes the start button  	
+     minibar.menubar.removeChild(minibar.menubar.lastChild);	  	
+   
+   set_mode();
+   	 
+	//shows the minibar area and buttons	
+	var buttons_bar=element("buttons_bar");			
+    if (have_minibar)
+      {
+	   //show the minibar word magnets
+         show_element("minibar_contin");
+		   
+	   //show the delete and clear buttons
+	     show_element("minibar_buttons");
+				 
+	   //hides the normal user answer area	 
+	     hide_element("user_answer");
+		 
+	   //changes the "Check Answer" button to a none_submit one
+         buttons_bar.removeChild(buttons_bar.lastChild);
+		 appendChildren(buttons_bar,
+		   [ button("Check Answer","check_answer_quiz()","C", "check_answer")]);
+	   }
+	else
+	  { 
+	    //enable the user answer area	
+	    document.getElementById('user_answer').disabled = false;
+	  
+	   //hide the minibar word magnets
+         hide_element("minibar_contin");
+		   
+	   //hide the delete and clear buttons
+	     hide_element("minibar_buttons");
+	  
+	  //changes the "Check Answer" button to a submit one
+	    buttons_bar.removeChild(buttons_bar.lastChild);
+		 appendChildren(buttons_bar,
+		   [ submit_button("Check Answer", "check_answer")]);
+		}
+	   
+	//conditionally enbles the "Hint", "Check Answer", "Next Question" and "Previous Question" buttons, and the minibar
+
+    if (have_checkAns)
+	   document.getElementById('check_answer').disabled = false;
+	else
+	   document.getElementById('check_answer').disabled = true;
+	  
+    if (have_prevQuestion)
+	   document.getElementById('previous_question').disabled = false;
+		
+    if ( max_hint_times > 0 )		
+	   document.getElementById('hint').disabled = false;
+			
+    document.getElementById('next_question').disabled = false;
+		  
+	//generates the first quiz question
+	  generate_question();	
+
+    //resets the restart_active
+	  restart_active= true ;	  
+	  
+	//hides the information
+    if ( info_hidden == false )	
+	    toggle_info();
+}
+
+function restart_quiz()
+{
+  //javascript:location.reload(true);
+ 
+   if (restart_active == true)
+     { 
+	   var end_confirmed= new Boolean(true);
+	  
+	   if (!is_ended )
+	      end_confirmed = confirm(" Are you sure you want to quit this quiz!");
+	  
+	   if (end_confirmed)  
+	     {
+		  end_quiz(false);
+		  
+	      reset_mode();
+			
+	      //add the start button
+		    appendChildren(minibar.menubar,[ button("Start Quiz","start_quiz()","S")]);
+		  
+		  //removes the History button
+	      var history_bar=element("history_bar");
+		  history_bar.removeChild(history_bar.lastChild);
+		  
+          default_values();
+		  }
+	  }
+}
+
+function generate_question()
+{  
+ //for the exam mode   
+   if (selected_mode == "Exam Mode")
+    { 	
+       if (check_notEmpty())
+         {
+	       if (counter > 0)
+	          {  			
+				document.getElementById('score_display').value = "?";
+				
+			   //save the current user answer for history
+	             current_answer = document.answer.answer_text.value;  
+		         quiz_history[index][1] = current_answer;
+		
+				make_all_answers();
+		        }
+		   else
+		      exam_continue();
+	    }
+	}
+  else
+    {
+	   if (prev_pressed == true )
+	       {
+	         //changes the question, answer and the explanation back to the current one
+		       document.question.question_text.value= current_question;
+		       document.answer.answer_text.value = current_answer;
+		       document.explanation.explanation_text.value= current_explanation;
+		       document.getElementById("hint_txt").innerHTML = current_hint;
+		 
+		     prev_pressed = false; // to go back to normal	 
+		 
+	         //enables the "Previous Question","Hint" and "Check Answer" buttons
+		       document.getElementById('previous_question').disabled = false;
+		       document.getElementById('check_answer').disabled = false;
+		       document.getElementById('hint').disabled = false;
+	        }
+	   else
+	       {  
+	         // if the user clicks the "Next Question" without cheking his/her previous answer, 
+	         // asks for user's confirmation before moving to the next question
+		     if ( answer_times == 0 )
+		        {
+		          confirmed_check = confirm("Are you sure you don't want to check your answer's correctness!");
+			
+		          if ( hint_times == 0 )
+			         {
+			           //saves the current answer and the explanation which is null(the answer was not checked or hinted)   
+			            current_answer = document.answer.answer_text.value; 
+							
+		                current_explanation = "You did not check your answer's correctness!"; 
+						
+			            current_hint = "";
+			           }
+				 //save the current user answer for  history 
+		           quiz_history[index][1] = document.answer.answer_text.value;  
+						 
+				 //save the current explanation for  history 
+		           quiz_history[index][2] = "You did not check your answer's correctness!";
+		         }
+		     if (confirmed_check == true )
+		        {		
+		          //save the current question for the "previous question" button and history
+			        prev_question = current_question; 
+			
+		          //save the current answer for the "previous question" button
+			        prev_answer = current_answer; 
+				
+		          //save the current explanation and hint for the "previous question" button
+		          	prev_explanation = current_explanation; 
+		          	prev_hint= current_hint;
+				
+		          //clears the question, answer and the explanation and hint display areas
+			        clearing(); 
+
+                  if (have_minibar)	
+                      {				  
+						minibar.clear_all();
+						
+                        //unhides the words area and removes the "Show Magnets" button	
+				        show_word_magnets();
+						}
+					   
+				  if (answer_was_right) //here it still contains info about the previous question
+				      document.explanation.explanation_text.value= current_explanation;
+					  
+		          //resets the times user has answered to the current question
+		            answer_times = 0;	
+			   
+	              //resets the times user has pressed hint for the current question
+		            hint_times = 0;	
+					
+				  document.getElementById('counter_display').value = counter;	
+		          //increments the counter
+		            counter= ++ counter;
+					
+				  //sends a question retrival request to the server
+		            server.get_random(generate_question2);
+		        }
+		    }
+	}
+  //sets the focus on the answer area
+	document.answer.answer_text.focus();  
+}
+
+function generate_question2(random_trees)
+{
+  //we now have a random abstract syntax tree that we need to linearize
+    server.pgf_call("linearizeAll",{tree:random_trees[0].tree,
+                               to:question_lang}, generate_question3);
+    rand_tree= random_trees[0].tree;
+}
+
+function generate_question3(random_texts)
+{  
+    var no_of_lins = random_texts[0].texts.length;
+	
+    //generates a random number, to determine which linearization should be used as the question
+	  var which= Math.floor(Math.random()* no_of_lins );
+	  if (which >= no_of_lins)
+	      which = which - 1;
+	  
+	//display the new quiz quetion sent by server
+      document.question.question_text.value= counter +". " + random_texts[0].texts[which];
+	
+    //save the current question for the "previous question" button and history
+      current_question = document.question.question_text.value; 
+      index  = quiz_history.length;
+	  quiz_history[index] = [];
+	  quiz_history[index][0]= current_question;	  
+}
+	 
+function check_answer_quiz()
+{ 
+  if (check_notEmpty())
+    {  	 
+	  //resets the user confirmation for moving to next question without checking the answer
+	    confirmed_check = true;
+		   
+	  //clears the explanation and Hint display area
+	    document.explanation.explanation_text.value = "";
+	    document.getElementById("hint_txt").innerHTML = ""; 
+	  
+	  //save the current user answer for the "peivious question" button and history
+	    current_answer = document.answer.answer_text.value;  
+		quiz_history[index][1] = current_answer;
+		
+	  //increments the times the user has answered to the current question
+	    answer_times ++;	
+		
+	  //resets the hint_pressed flag
+		hint_pressed = false;
+			
+      if ((answer_times + hint_times) <= 1)		
+		  make_all_answers(); 
+	  else	
+          continue_checking();		
+	 }
+}
+
+function make_all_answers()
+{
+  //resets the variables for keeping the parsing and linearization altenatives		
+	parsed_trees = 0;
+	all_answers = [];		
+      		
+  //we now need to linearize the random abstract syntax tree in order to 
+  //find all possible correct answers then we check user's answer against these answers.
+	server.pgf_call("linearize",{tree:rand_tree, to:question_lang}, parse_answer);
+}
+
+function parse_answer(right_answer)
+{
+  server.parse(question_lang,right_answer[0].text, parse_answer2);
+}
+
+function parse_answer2(parsed_answer)
+{
+  parsed_trees = parsed_answer[0].trees.length; 
+  var j =0;
+  for (j= 0; j < parsed_trees ; j++)
+       {
+         server.linearizeAll(parsed_answer[0].trees[j], answer_lang, collect_answers);
+        }
+}
+
+function collect_answers(lin_answer)
+{
+   var next= 0;
+   var i=0;
+   for (i= 0; i < lin_answer[0].texts.length ; i++)
+      {
+        next = all_answers.length;
+        all_answers[next]= lin_answer[0].texts[i];
+       }
+	   
+	if ( all_answers.length > (parsed_trees - 1) * i) 
+	     continue_checking();
+}	   
+	   
+function continue_checking()
+{
+    if (selected_mode == "Exam Mode") 
+	    {
+	     check_answer_exam2();
+		 exam_continue();
+		 }
+    else	
+	    if (hint_pressed)
+		    show_hint2();
+		else
+            check_answer2();
+} 
+
+function check_answer2()
+{  
+  if (have_minibar)	
+      hide_word_magnets();
+  
+  raw_user_answer= document.answer.answer_text.value;
+  user_answer = remove_unwanted_characters(raw_user_answer);
+  answer_was_right= false;
+  var k = 0 ;
+  for (k= 0; k < all_answers.length; k++)
+      {
+	    server_answer = remove_unwanted_characters(all_answers[k]);
+  
+	    if ( user_answer == server_answer )
+	       {	
+		     if (answer_times <= max_answer_times)
+		       {
+			      //increments the score
+			        score ++; 
+			      document.getElementById('score_display').value = score;
+			     }
+				 
+		     document.explanation.explanation_text.value = "Yes, that was the correct answer."; 
+			 answer_was_right= true;
+			  
+			 break;
+			 
+		    }		
+	    }
+
+  if (k >= all_answers.length) 
+	{
+	  document.explanation.explanation_text.value= "No, the correct answer(s) is(are): \n "
+	                                                                           + all_answers;  
+      document.getElementById('counter_display').value = counter;																			   
+	  }
+	  
+   //save the current explanation for the "previous question" button and history
+	 current_explanation = document.explanation.explanation_text.value;
+	 quiz_history[index][2] = current_explanation;
+ 
+   if ((counter >= min_no_questions) && ((score/counter) >= pass_percentage))
+       {
+	     if (answer_was_right)  
+	        document.explanation.explanation_text.value += "\nAlso, ";
+		 else
+		    document.explanation.explanation_text.value += "\nHowever, ";
+			
+         document.explanation.explanation_text.value += "Congratulations!!! You passed the quiz. Click \"Restart Quiz\" for a new one.";   
+         
+		 document.getElementById('counter_display').value = counter;
+		 
+		 end_quiz(false);   
+        }
+   else
+      if (answer_was_right)
+	    {  
+	     //goes to the next question automaticly after getting the correct answer
+		   generate_question();
+		 }
+
+  //save the current hint for the "previous question" button
+    current_hint = document.getElementById("hint_txt").innerHTML ;  
+}
+
+function check_answer_exam2()
+{ 
+ 
+  raw_user_answer= document.answer.answer_text.value;
+  user_answer = remove_unwanted_characters(raw_user_answer);
+
+  var k = 0 ;
+  for (k= 0; k < all_answers.length; k++)
+      {
+	    server_answer = remove_unwanted_characters(all_answers[k]);
+  
+	    if ( user_answer == server_answer )
+	       {	
+			  //increments the score
+				score ++; 
+				
+			  //save the current explanation for history
+	            current_explanation = "Yes, that was the correct answer."; 
+	            quiz_history[index][2] = current_explanation;
+				
+              break;			  
+			 }
+		}	 
+        
+  if (k >= all_answers.length) 
+	  {
+	    //save the current explanation for history
+	      current_explanation = "No, the correct answer(s) is(are): \n " + all_answers; 
+	      quiz_history[index][2] = current_explanation;		
+		} 
+}
+
+function exam_continue()
+{
+  if (counter >= exam_quesNo)
+	 exam_result();
+  else			 
+	{ 
+		//clears the question and answer display areas
+          clearing();				  
+				   
+		document.getElementById('counter_display').value = counter + "/" + exam_quesNo;   
+		//increments the counter
+		  counter= ++ counter;
+				 
+		//sends a question retrival request to the server
+		  server.get_random(generate_question2);
+	  }
+}
+
+function exam_result()
+{
+   document.getElementById('score_display').value = score;
+   document.getElementById('counter_display').value = counter + "/" + exam_quesNo;
+   document.explanation.explanation_text.value= "That's the end of exam."; 
+   end_quiz(false); 
+}				 
+
+function show_hint()
+{   
+  if (hint_times < max_hint_times)
+   {
+     if (check_notEmpty())
+	    {  	 
+	      //clears the explanation and Hint area
+	        document.explanation.explanation_text.value = "";		   
+	        document.getElementById("hint_txt").innerHTML = ""; 
+			   
+	     //increments the times the user has pressed hint button
+	       hint_times= ++ hint_times; 
+			  
+	     //resets the user confirmation for moving to next question without checking the answer
+	       confirmed_check = true;
+		  
+	     //save the current user answer for the "peivious question" button
+	       current_answer = document.answer.answer_text.value;  
+		  
+		  //sets the hint_pressed flag
+		    hint_pressed = true;
+			
+		 raw_user_answer= document.answer.answer_text.value;
+         user_answer = remove_unwanted_characters(raw_user_answer);
+         user_answer_splited = split_to_words(user_answer); 
+		  
+		 if ((answer_times + hint_times) <= 1)		
+		   make_all_answers(); 
+	     else	
+           continue_checking();	   
+	    }
+    }  
+  else
+	{
+ 	 //Error message (max_hint_times is passed)
+	   document.explanation.explanation_text.value = "Sorry, you have already used up your allowed number of hints for this question.";
+ 	 }
+}
+
+function show_hint2()
+{  
+	var best_answer = new Array();
+	best_answer= find_closest(all_answers);
+	
+	var compared = new Array();
+	compared = string_matching(best_answer, user_answer_splited);
+	
+    //preparing the Hint spans
+      var hint = element("hint_txt");
+      hint.innerHTML = "<b>Hint: </b>";
+      var max_length = Math.max(best_answer.length, user_answer_splited.length);
+      for (k= 0; k < max_length; k++)
+	    {  
+	       var id = "word" + k.toString();
+	       var word_span= span_id(id);
+	       hint.appendChild(word_span);
+		 } 
+		 
+	var k=0;
+	var visited = new Array();
+    for (k= 0; k < best_answer.length; k++)
+	  {	
+	    visited[k] = 0;
+	   }
+		
+    var i= 0;   //i is used for the user_answer
+    var myid = "";
+    while ( i < compared.length)
+	    {
+		   myid = "word" + i.toString();
+		   if (compared[i] == 0)
+			 { 
+			    var j =0;    //j is used for the server_answer
+			    while (j < best_answer.length)
+					{
+					  if (visited[j] == 0 && user_answer_splited[i] == best_answer[j] && (j >= compared.length || compared[j] == 0 ))
+						{
+						 //yellow for the right word in wrong place
+						   document.getElementById(myid).style.color="#FFFF00"; 
+						 visited[j] = 1;
+						 break;
+						 }
+					  j++;
+					 }
+				
+	            if ( j >= best_answer.length)
+				    {		
+					  //red for the totaly wrong word
+					  document.getElementById(myid).style.color="#FF0000"; 
+				     }
+			   }
+		   else
+		       {  //green for the right word in right place
+                           document.getElementById(myid).style.color="#339933";				
+		       }
+                   document.getElementById(myid).innerHTML = user_answer_splited[i] + " ";		   
+		   i++;
+		 } 	
+		 
+	while ( i < best_answer.length)
+		{
+		  myid = "word" + i.toString();
+		  document.getElementById(myid).style.color="#FF0000";
+		  document.getElementById(myid).innerHTML = "____ ";
+		  i++;
+		 } 
+  	
+	//save the current explanation and hint for the "previous question" button
+	  current_explanation = document.explanation.explanation_text.value;
+	  current_hint = document.getElementById("hint_txt").innerHTML ;  
+}
+
+function previous_question_quiz()
+{
+    if ( counter > 1)
+ 	   {
+          if ( answer_times == 0 && hint_times == 0 )
+	         {
+		       //sets the current answer and the explanation and hint   
+		         current_answer = document.answer.answer_text.value;   
+		         current_explanation = ""; 
+		         current_hint = "";
+		      }
+
+	      //disables the "Previous Question","Hint" and "Check Answer" buttons
+	        document.getElementById('previous_question').disabled = true; 
+	        document.getElementById('check_answer').disabled = true;
+	        document.getElementById('hint').disabled = true;
+
+	      //changes the question, answer and the explanation 
+	        document.question.question_text.value= prev_question;
+	        document.answer.answer_text.value = prev_answer;
+	        document.explanation.explanation_text.value= prev_explanation;
+	        document.getElementById("hint_txt").innerHTML = prev_hint;
+				 
+	      prev_pressed = true; // to remember the current question, answer and explanation	    
+	    }
+}
+
+function end_quiz(confirm_needed)
+{
+  if (restart_active == true && is_ended == false)
+    {
+	   var end= new Boolean(true);
+	   
+	   if (confirm_needed)
+          end = confirm(" Are you sure you want to quit this quiz!");
+       		  
+       if (end)  
+	    {  
+		   if (have_minibar)	
+		     {
+		      //removes the "Show Magnets" button if exists	  
+		        show_word_magnets();
+			  //remove the minibar word magnets if there was any	
+	            remove_minibar(); 
+			  //shows the normal user answer area	
+	            show_element("user_answer"); 
+			  }
+           disable_all();
+           is_ended = true;  
+           
+		   //adds a Show Quiz History button
+           var history_bar=element("history_bar");
+           appendChildren(history_bar,
+		   [ button("Show Quiz History","show_history()","H", "quiz_history")]);		   
+	     }
+    }
+}
+
+function show_history()
+{
+  var current_grammar = minibar.grammar.name; // minibar.grammar.name gives the grammar name without .pgf
+  var to_lang= langpart(minibar.to_menu.value,current_grammar);
+  var from_lang= langpart(minibar.from_menu.value,current_grammar);
+  var history=element("history_part");
+  if (history_shown == false)
+     {
+	  var i=0;
+	  for (i= 0; i < quiz_history.length ; i++)
+		  { 
+		   var question = text("Question" + " "+quiz_history[i][0] + "\n");
+		   history.appendChild(empty("br"));
+		   history.appendChild(question);
+		   history.appendChild(empty("br"));
+		   
+		   var answer = text("Your Answer" + ":  "+ quiz_history[i][1] + "\n");
+		   history.appendChild(answer);
+		   history.appendChild(empty("br"));
+		   
+		   var explan = text("Explanation" + ":  "+ quiz_history[i][2] + "\n");
+		   history.appendChild(explan);
+		   history.appendChild(empty("br"));
+		   history.appendChild(empty("br")); 
+		   }
+		history_shown = true;
+		}
+	   
+	var history_content = history.innerHTML;
+	
+	var history_window = window.open('', 'historyPopup', "dependent = 1, scrollbars=1, location=1, statusbar=1, width=540, height=650, left = 10, top = 20");
+	history_window.document.writeln('<html><head><title>Quiz History</title></head><body>');
+	history_window.document.writeln('<h3> Your Quiz History </h3>');
+	history_window.document.write('<b> Quiz Mode: </b>');
+	history_window.document.write(selected_mode+ ",  ");
+	history_window.document.write('<b> Grammar: </b> ');
+	history_window.document.write(" "+ current_grammar +",  ");
+	history_window.document.write('<b> From: </b>');
+	history_window.document.write(" "+ from_lang + ",  ");
+	history_window.document.write('<b> To: </b>');
+	history_window.document.writeln(" "+ to_lang);
+	history_window.document.writeln('<div style="font-size:18px;">');
+	history_window.document.writeln(history_content);
+	history_window.document.writeln('</div>');
+	history_window.document.writeln('<div style="color: #2E8B57; font-size:16px; font-weight: bold;"><a href="javascript: window.print()">Print History</a></div>');
+	history_window.document.writeln('<div style="padding-left: 320px; color: #2E8B57; font-size:16px; font-weight: bold;"><a href="javascript: window.close()">Close page</a></div>');
+	history_window.document.writeln('</body></html>');
+	history_window.document.close();
+} 
diff --git a/demos/index-numbers.t2t b/demos/index-numbers.t2t
new file mode 100644
--- /dev/null
+++ b/demos/index-numbers.t2t
@@ -0,0 +1,27 @@
+Portable Numeral Translator
+15 August 2008
+
+Here is the first GF application for the iPhone. It translates
+numerals from digits into number words in 15 languages. It works for
+numerals in the range 1-999,999. You can use the demo online in your iPhone's
+browser, or download and install it by using FileMagnet (from AppStore).
+
+The demo should work in any web browser supporting JavaScript, but it has been
+specially dimensioned for the iPhone screen. It is an application of a general
+technology, namely the compilation of GF grammars to JavaScript. Thus you can 
+easily build similar applications from your own grammars.
+
+The 
+[full numeral translator http://www.cs.chalmers.se/~bringert/gf/translate/], which
+works in 88 language and permits arbitrary cross translations, cannot yet be ported
+to the iPhone because of memory problems.
+
+The current version has some encoding/font issues in Hebrew and Hindi.
+
+[Use the translator online numbers/numbers.html]
+
+[Download the translator numbers.tgz]. To install: unpack the file and move
+the directory ``numbers`` to your FileMagnet uploader.
+
+
+
diff --git a/demos/index-numbers.txt b/demos/index-numbers.txt
deleted file mode 100644
--- a/demos/index-numbers.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Portable Numeral Translator
-15 August 2008
-
-Here is the first GF application for the iPhone. It translates
-numerals from digits into number words in 15 languages. It works for
-numerals in the range 1-999,999. You can use the demo online in your iPhone's
-browser, or download and install it by using FileMagnet (from AppStore).
-
-The demo should work in any web browser supporting JavaScript, but it has been
-specially dimensioned for the iPhone screen. It is an application of a general
-technology, namely the compilation of GF grammars to JavaScript. Thus you can 
-easily build similar applications from your own grammars.
-
-The 
-[full numeral translator http://www.cs.chalmers.se/~bringert/gf/translate/], which
-works in 88 language and permits arbitrary cross translations, cannot yet be ported
-to the iPhone because of memory problems.
-
-The current version has some encoding/font issues in Hebrew and Hindi.
-
-[Use the translator online numbers/numbers.html]
-
-[Download the translator numbers.tgz]. To install: unpack the file and move
-the directory ``numbers`` to your FileMagnet uploader.
-
-
-
diff --git a/demos/index.html b/demos/index.html
--- a/demos/index.html
+++ b/demos/index.html
@@ -1,61 +1,71 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <HTML>
 <HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
 <TITLE>Grammatical Framework Demos</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Grammatical Framework Demos</H1>
-<FONT SIZE="4">
-</FONT></CENTER>
+<link rel=stylesheet href="../css/style.css">
+</HEAD>
 
+<BODY>
+<H1><IMG SRC="../doc/Logos/gf0.png" alt="">Grammatical Framework Demos</H1>
+
+<p>
+<a href="http://www.grammaticalframework.org/demos/phrasebook/">Tourist
+Phrasebook</a>
+
+<p>
+<strong>NEW</strong>
+<a href="TransQuiz/">Translation Quiz</a>
+
 <P>
-<B>NEW</B> <A HREF="http://tournesol.cs.chalmers.se:41296/fridge">Fridge poetry</A>
-</P>
+<A HREF="http://www.grammaticalframework.org:41296/minibar/minibar.html">Minibar
+online</A>
+ | <small><a href="http://www.grammaticalframework.org/~hallgren/hs2js/test/">Minibar offline</a></small>
 <P>
-<B>NEW</B> <A HREF="http://tournesol.cs.chalmers.se:41296/translate">Word-completing translator</A>
-</P>
+<A HREF="http://www.grammaticalframework.org:41296/fridge">Fridge poetry</A>
+
 <P>
-<B>NEW</B> <A HREF="http://www.youtube.com/watch?v=1bfaYHWS6zU">Tramdemo on YouTube</A>: 
+<A HREF="http://www.grammaticalframework.org:41296/translate">Word-completing translator</A>
+
+<P>
+<A HREF="http://www.youtube.com/watch?v=1bfaYHWS6zU">Tramdemo on YouTube</A>: 
 find your way in Gothenburg public transport system, in six languages (film).
-</P>
+
 <P>
 <!-- <B>NEW</B> <A HREF="http://csmisc14.cs.chalmers.se/~meza/restWiki/wiki.cgi">Multilingual Wiki</A>. -->
-</P>
+
 <P>
 <A HREF="index-numbers.html">Numeral translator for the iPhone</A>: number words in 15 languages.
-</P>
+
 <P>
-<A HREF="http://www.cs.chalmers.se/~bringert/gf/translate/">Numeral translator</A>:
+<A HREF="http://www.cse.chalmers.se/alumni/bringert/gf/translate/">Numeral translator</A>:
 number words in 88 languages.
-</P>
+
 <P>
-<A HREF="http://www.cs.chalmers.se/~markus/gramlets/letter-applet.html">Letter editor</A>: compose
+<A HREF="http://www.cse.chalmers.se/alumni/markus/gramlets/letter-applet.html">Letter editor</A>: compose
 a letter in a language you don't know.
-</P>
+
 <P>
-<A HREF="http://www.cs.chalmers.se/~bringert/xv/pizza/">Pizza</A>: order a pizza by speaking
+<A HREF="http://www.cse.chalmers.se/alumni/bringert/xv/pizza/">Pizza</A>: order a pizza by speaking
 to your web browser.
-</P>
+
 <P>
 <A HREF="http://webalt.math.helsinki.fi/PublicFiles/CD/Screencast/TextMathEditor%20Demo.swf">WebALT Math Editor</A>:
 create mathematical exercises in six languages simultaneously (film).
-</P>
+
 <P>
 <A HREF="http://www.jem-thematic.net/en/node/846#comment-209">WebALT Math translator</A>:
 translate mathematical exercises in a web service using incremental parsing.
-</P>
+
 <P>
 <!-- <A HREF="http://csmisc14.cs.chalmers.se/~bjorn/langtrain.cgi">GF Language Trainer</A>:
 translation quizzes in Arabic, English, Russian, Swedish. -->
-</P>
+
 <P>
 <A HREF="resource-api/editor.html">Library API browser-editor</A>: construct phrases in
 the <A HREF="../lib/doc/synopsis.html">GF resource library</A>
-</P>
+
+<!--
 <P>
 <A HREF="../old-lib/resource/doc/resdemo.html">Random library examples</A>
-</P>
 
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml index.txt -->
-</BODY></HTML>
+-->
diff --git a/demos/index.txt b/demos/index.txt
deleted file mode 100644
--- a/demos/index.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-Grammatical Framework Demos
-
-
-
-**NEW** [Fridge poetry http://tournesol.cs.chalmers.se:41296/fridge]
-
-**NEW** [Word-completing translator http://tournesol.cs.chalmers.se:41296/translate]
-
-**NEW** [Tramdemo on YouTube http://www.youtube.com/watch?v=1bfaYHWS6zU]: 
-find your way in Gothenburg public transport system, in six languages (film).
-
-**NEW** [Multilingual Wiki http://csmisc14.cs.chalmers.se/~meza/restWiki/wiki.cgi].
-
-[Numeral translator for the iPhone index-numbers.html]: number words in 15 languages.
-
-[Numeral translator http://www.cs.chalmers.se/~bringert/gf/translate/]:
-number words in 88 languages.
-
-[Letter editor http://www.cs.chalmers.se/~markus/gramlets/letter-applet.html]: compose
-a letter in a language you don't know.
-
-[Pizza http://www.cs.chalmers.se/~bringert/xv/pizza/]: order a pizza by speaking
-to your web browser.
-
-[WebALT Math Editor  http://webalt.math.helsinki.fi/PublicFiles/CD/Screencast/TextMathEditor%20Demo.swf]:
-create mathematical exercises in six languages simultaneously (film).
-
-[WebALT Math translator http://www.jem-thematic.net/en/node/846#comment-209]:
-translate mathematical exercises in a web service using incremental parsing.
-
-[GF Language Trainer http://csmisc14.cs.chalmers.se/~bjorn/langtrain.cgi]:
-translation quizzes in Arabic, English, Russian, Swedish.
-
-[Library API browser-editor resource-api/editor.html]: construct phrases in
-the [GF resource library ../lib/resource/doc/synopsis.html]
-
-[Random library examples ../lib/resource/doc/resdemo.html]
diff --git a/doc/10lang-small.png b/doc/10lang-small.png
deleted file mode 100644
Binary files a/doc/10lang-small.png and /dev/null differ
diff --git a/doc/2341.html b/doc/2341.html
deleted file mode 100644
--- a/doc/2341.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<html>
-<HEAD><META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
-<body>
-af_tunni : lámma kún síddi? boqól afartón i ków
-
-<p>
-albanian : dy mijë tre qind e dyzet e një
-
-<p>
-amharic : ሁለት ሺህ ሦስት መቶ ኣርባ ኣንድ 
-
-<p>
-arabic_classical : الفان و ثلاث مائة و واحد و أربعون 
-
-<p>
-arabic_modern : ﺍﻟﻔﻴﻦ ﻭ ﺛﻼﺛﻤﺎﺋﺔ ﻭ ﻭﺍﺣﺪ ﻭ ﺃﺭﺑﻌﻴﻦ
-
-<p>
-basque : bi mila ta hirurehun berrogei ta bat
-
-<p>
-bearlake_slave : nákee lamíl tai lak'o, óno, di,i, honéno, ?ó, l-ée
-
-<p>
-bulgarian : две жиляди триста четирисет и едно
-
-<p>
-catalan : dos mil tres-cents quaranta - u
-
-<p>
-chinese : è´° ä» é¶ å ä½° è æ¾ å£¹
-
-<p>
-croatian : dva hiljade tri stotine četrdeset i jedan 
-
-<p>
-czech : dva tisíce tr^i sta čtyr^icet jeden 
-
-<p>
-dagur : hoire miange guarebe jau duci neke
-
-<p>
-danish : to tusind og tre hundrede og en og fyrre
-
-<p>
-decimal : 2341
-
-<p>
-dutch : twee duizend drie honderd een en veertig
-
-<p>
-english : two thousand three hundred and forty - one
-
-<p>
-finnish : kaksi tuhatta kolme sataa neljä kymmentä yksi
-
-<p>
-french : deux mille trois cent quarante et un
-
-<p>
-french_swiss : deux mille trois cent quarante et un
-
-<p>
-fulfulde : ujine d.id.i temed.d.e tati e chappand.e nai e go'o
-
-<p>
-geez : ዕሽራ ወ ሠላስቱ ምእት አርብዓ ወ አሐዱ 
-
-<p>
-german : zwei tausend drei hundert ein und vierzig
-
-<p>
-greek_classical : δισχίλιοι τριακόσιοι τετταράκοντα εἵς
-
-<p>
-greek_modern : δύο χιλιάδες τριακόσια σαράντα ένα
-
-<p>
-guahibo : aniha sunu akueya sia yana bae kae
-
-<p>
-guarani : moko~i ma mpohapy sa~ irundy kua~ petei~
-
-<p>
-hebrew_biblical : אלפים ו שלש מאות ו ארבעים ו אחד 
-
-<p>
-hindi : दो हज़ार तीन सौ एक्तालीस 
-
-<p>
-hungarian : két ezer három száz negyven egy
-
-<p>
-icelandic : tvö Þúsund Þrjú hundrað fjörutíu og einn
-
-<p>
-irish : dhá mhíle trí chead dhá fhichead a haon
-
-<p>
-italian : due mila tre cento quaranta uno
-
-<p>
-japanese : にせん さんびゃく よんぢゅう いち 
-
-<p>
-kabardian : m&yn&yt' s'a&ys' p'L-'&s'ra z&ra
-
-<p>
-kambera : dua riu tailu ngahu patu kambulu hau
-
-<p>
-kawaiisu : N
-<p>
-khmer : bīra bā'na pī raya sē sipa mwya 
-
-<p>
-khowar : joo hazâr troi shọr oché joo bîsher î 
-
-<p>
-kodagu : i:ra:yrat mu:nu:yt.a na:padï
-
-<p>
-kolyma_yukaghir : N
-<p>
-kulung : ni habau su chhum lik i
-
-<p>
-kwami : dùbúk póllów dálmágí kúnún kán kúu pòD^òw kán múndí 
-
-<p>
-kwaza : N
-<p>
-lalo : `n. t'w sa há i tjhí tjh`&
-
-<p>
-lamani : di hajaar do se caaLise par ek
-
-<p>
-latvian : divtu^kstoš trīssimt četrdesmit viens 
-
-<p>
-lithuanian : dù tú:kstanc^iu, try:s s^imtai~ ke:turiasdes^imt víenas
-
-<p>
-lotuxo : tausand ârrexai ikO EssIxa xunixoi ikO atOmwana aNwan x' âbotye
-
-<p>
-maale : lam?ó $íya haitsó s'ééta ?oydí-támmi pétte
-
-<p>
-malay : dua ribu tiga ratus empat puluh satu
-
-<p>
-maltese : elfejn tliet mija u wieh-ed u erbgh-in
-
-<p>
-mapuche : epu warangka külá pataka meli mari kiñe
-
-<p>
-margi : dúbú s`&d>àN ghàrú mák`&r agá fód>ú kùmì gà s'&r pátlú*
-
-<p>
-maybrat : N
-<p>
-miya : d'&bu ts`&r '`&náa d>àriy kìdi '`&náa díb>i f`&d>& bèh&n wut'&
-
-<p>
-mongolian : qoyar mingGan Gurban ĵa'un döčin nigän 
-
-<p>
-nenets : side juonar n-ahar jur t-êt ju' ~ob
-
-<p>
-norwegian_book : to tusen og tre hundre og førti et
-
-<p>
-old_church_slavonic : дъвѣ тысѭшти триѥ съта четыре десѧте и ѥдинъ 
-
-<p>
-oromo : kuma lama fi dhibba sadii fi afurtamii tokko
-
-<p>
-pashto : دوه زره دري سوه او يو څلوۍښت 
-
-<p>
-polish : dwa tysiace trzysta czterdziesci jeden
-
-<p>
-portuguese : dois mil trezentos quarenta e um
-
-<p>
-quechua : iskay warank'a kinsa pachak tawa chunka jukniyuq
-
-<p>
-romanian : două mii trei sute patruzeci şi unu 
-
-<p>
-russian : две тысячи триста сорок один
-
-<p>
-sango : ngbangbu bale óse na ndó ní ngbangbu otá na ndó ní bale osió na ndó ní ÓkO
-
-<p>
-sanskrit : त्रि शतान्य एकचत्वारिंशच च द्वे सहस्रे 
-
-<p>
-slovak : dva tisic tri sto styridsat jedna
-
-<p>
-sorani : دۇ ههزار سىسهد ځل و يهك 
-
-<p>
-spanish : dos mil trescientos cuarenta y uno
-
-<p>
-stieng : baar ban pê riêng puôn jo't muôi
-
-<p>
-swahili : elfu mbili mia tatu arobaini na moja
-
-<p>
-swedish : två tusen tre hundra fyrtio ett
-
-<p>
-tamil : இரணௌடௌ ஆயாரதௌதீ மீனௌ ந஽ரீ ந஽ரௌ பதௌ ஓனௌரீ 
-
-<p>
-tampere : kaks tuhatta kolme sataa nel kyt yks
-
-<p>
-tibetan : t̆ong ṭ'a' n̆yī d́ang sumğya d́ang z̆hyib chu źhye chi' 
-
-<p>
-totonac : maa t~u3 mil lii ~a tuhun pus^um tun
-
-<p>
-tuda_daza : dubu cu sao kidra ago.zo. sao mOrta tozo sao tro
-
-<p>
-tukang_besi : dua riwu tolu hatu hato hulu sa'asa
-
-<p>
-turkish : iki bin üç yüz kırk bir 
-
-<p>
-votic : kahsi tuhatta keVmsata: nelläts^ümmet ühsi
-
-<p>
-welsh : dau fil tri chan un a deugain
-
-<p>
-yasin_burushaski : altó hazár iskí tha altó-áltar hek
-
-<p>
-zaiwa : i55 hing55 sum11 syo31 mi11 cue31 ra11
-
-</body>
-</html>
-
diff --git a/doc/DocGF.pdf b/doc/DocGF.pdf
deleted file mode 100644
Binary files a/doc/DocGF.pdf and /dev/null differ
diff --git a/doc/DocGF.tex b/doc/DocGF.tex
deleted file mode 100644
--- a/doc/DocGF.tex
+++ /dev/null
@@ -1,569 +0,0 @@
-\batchmode
-%This Latex file is machine-generated by the BNF-converter
-
-\documentclass[a4paper,11pt]{article}
-\author{BNF-converter}
-\title{The Language GF}
-\setlength{\parindent}{0mm}
-\setlength{\parskip}{1mm}
-\begin{document}
-
-\maketitle
-
-\newcommand{\emptyP}{\mbox{$\epsilon$}}
-\newcommand{\terminal}[1]{\mbox{{\texttt {#1}}}}
-\newcommand{\nonterminal}[1]{\mbox{$\langle \mbox{{\sl #1 }} \! \rangle$}}
-\newcommand{\arrow}{\mbox{::=}}
-\newcommand{\delimit}{\mbox{$|$}}
-\newcommand{\reserved}[1]{\mbox{{\texttt {#1}}}}
-\newcommand{\literal}[1]{\mbox{{\texttt {#1}}}}
-\newcommand{\symb}[1]{\mbox{{\texttt {#1}}}}
-
-This document was automatically generated by the {\em BNF-Converter}. It was generated together with the lexer, the parser, and the abstract syntax module, which guarantees that the document matches with the implementation of the language (provided no hand-hacking has taken place).
-
-\section*{The lexical structure of GF}
-\subsection*{Identifiers}
-Identifiers \nonterminal{Ident} are unquoted strings beginning with a letter,
-followed by any combination of letters, digits, and the characters {\tt \_ '},
-reserved words excluded.
-
-
-\subsection*{Literals}
-Integer literals \nonterminal{Int}\ are nonempty sequences of digits.
-
-
-String literals \nonterminal{String}\ have the form
-\terminal{"}$x$\terminal{"}, where $x$ is any sequence of any characters
-except \terminal{"}\ unless preceded by \verb6\6.
-
-
-
-
-LString literals are recognized by the regular expression
-\(\mbox{`''} ({\nonterminal{anychar}} - \mbox{`''})* \mbox{`''}\)
-
-
-\subsection*{Reserved words and symbols}
-The set of reserved words is the set of terminals appearing in the grammar. Those reserved words that consist of non-letter characters are called symbols, and they are treated in a different way from those that are similar to identifiers. The lexer follows rules familiar from languages like Haskell, C, and Java, including longest match and spacing conventions.
-
-The reserved words used in GF are the following: \\
-
-\begin{tabular}{lll}
-{\reserved{Lin}} &{\reserved{PType}} &{\reserved{Str}} \\
-{\reserved{Strs}} &{\reserved{Tok}} &{\reserved{Type}} \\
-{\reserved{abstract}} &{\reserved{case}} &{\reserved{cat}} \\
-{\reserved{concrete}} &{\reserved{data}} &{\reserved{def}} \\
-{\reserved{flags}} &{\reserved{fn}} &{\reserved{fun}} \\
-{\reserved{grammar}} &{\reserved{in}} &{\reserved{include}} \\
-{\reserved{incomplete}} &{\reserved{instance}} &{\reserved{interface}} \\
-{\reserved{let}} &{\reserved{lin}} &{\reserved{lincat}} \\
-{\reserved{lindef}} &{\reserved{lintype}} &{\reserved{of}} \\
-{\reserved{open}} &{\reserved{oper}} &{\reserved{out}} \\
-{\reserved{package}} &{\reserved{param}} &{\reserved{pattern}} \\
-{\reserved{pre}} &{\reserved{printname}} &{\reserved{resource}} \\
-{\reserved{reuse}} &{\reserved{strs}} &{\reserved{table}} \\
-{\reserved{tokenizer}} &{\reserved{transfer}} &{\reserved{union}} \\
-{\reserved{var}} &{\reserved{variants}} &{\reserved{where}} \\
-{\reserved{with}} & & \\
-\end{tabular}\\
-
-The symbols used in GF are the following: \\
-
-\begin{tabular}{lll}
-{\symb{;}} &{\symb{{$=$}}} &{\symb{\{}} \\
-{\symb{\}}} &{\symb{(}} &{\symb{)}} \\
-{\symb{:}} &{\symb{{$-$}{$>$}}} &{\symb{**}} \\
-{\symb{,}} &{\symb{[}} &{\symb{]}} \\
-{\symb{.}} &{\symb{{$|$}}} &{\symb{\%}} \\
-{\symb{?}} &{\symb{{$<$}}} &{\symb{{$>$}}} \\
-{\symb{@}} &{\symb{!}} &{\symb{*}} \\
-{\symb{$\backslash$}} &{\symb{{$=$}{$>$}}} &{\symb{{$+$}{$+$}}} \\
-{\symb{{$+$}}} &{\symb{\_}} &{\symb{\$}} \\
-{\symb{/}} &{\symb{{$-$}}} & \\
-\end{tabular}\\
-
-\subsection*{Comments}
-Single-line comments begin with {\symb{{$-$}{$-$}}}. \\Multiple-line comments are  enclosed with {\symb{\{{$-$}}} and {\symb{{$-$}\}}}.
-
-\section*{The syntactic structure of GF}
-Non-terminals are enclosed between $\langle$ and $\rangle$. 
-The symbols  {\arrow}  (production),  {\delimit}  (union) 
-and {\emptyP} (empty rule) belong to the BNF notation. 
-All other symbols are terminals.\\
-
-\begin{tabular}{lll}
-{\nonterminal{Grammar}} & {\arrow}  &{\nonterminal{ListModDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListModDef}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{ModDef}} {\nonterminal{ListModDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ModDef}} & {\arrow}  &{\nonterminal{ModDef}} {\terminal{;}}  \\
- & {\delimit}  &{\terminal{grammar}} {\nonterminal{Ident}} {\terminal{{$=$}}} {\terminal{\{}} {\terminal{abstract}} {\terminal{{$=$}}} {\nonterminal{Ident}} {\terminal{;}} {\nonterminal{ListConcSpec}} {\terminal{\}}}  \\
- & {\delimit}  &{\nonterminal{ComplMod}} {\nonterminal{ModType}} {\terminal{{$=$}}} {\nonterminal{ModBody}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ConcSpec}} & {\arrow}  &{\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{ConcExp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListConcSpec}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{ConcSpec}}  \\
- & {\delimit}  &{\nonterminal{ConcSpec}} {\terminal{;}} {\nonterminal{ListConcSpec}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ConcExp}} & {\arrow}  &{\nonterminal{Ident}} {\nonterminal{ListTransfer}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListTransfer}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Transfer}} {\nonterminal{ListTransfer}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Transfer}} & {\arrow}  &{\terminal{(}} {\terminal{transfer}} {\terminal{in}} {\nonterminal{Open}} {\terminal{)}}  \\
- & {\delimit}  &{\terminal{(}} {\terminal{transfer}} {\terminal{out}} {\nonterminal{Open}} {\terminal{)}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ModType}} & {\arrow}  &{\terminal{abstract}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{resource}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{interface}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{concrete}} {\nonterminal{Ident}} {\terminal{of}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{instance}} {\nonterminal{Ident}} {\terminal{of}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{transfer}} {\nonterminal{Ident}} {\terminal{:}} {\nonterminal{Open}} {\terminal{{$-$}{$>$}}} {\nonterminal{Open}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ModBody}} & {\arrow}  &{\nonterminal{Extend}} {\nonterminal{Opens}} {\terminal{\{}} {\nonterminal{ListTopDef}} {\terminal{\}}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{with}} {\nonterminal{ListOpen}}  \\
- & {\delimit}  &{\nonterminal{ListIdent}} {\terminal{**}} {\nonterminal{Ident}} {\terminal{with}} {\nonterminal{ListOpen}}  \\
- & {\delimit}  &{\terminal{reuse}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{union}} {\nonterminal{ListIncluded}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListTopDef}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{TopDef}} {\nonterminal{ListTopDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Extend}} & {\arrow}  &{\nonterminal{ListIdent}} {\terminal{**}}  \\
- & {\delimit}  &{\emptyP} \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListOpen}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Open}}  \\
- & {\delimit}  &{\nonterminal{Open}} {\terminal{,}} {\nonterminal{ListOpen}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Opens}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\terminal{open}} {\nonterminal{ListOpen}} {\terminal{in}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Open}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{(}} {\nonterminal{QualOpen}} {\nonterminal{Ident}} {\terminal{)}}  \\
- & {\delimit}  &{\terminal{(}} {\nonterminal{QualOpen}} {\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{Ident}} {\terminal{)}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ComplMod}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\terminal{incomplete}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{QualOpen}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\terminal{incomplete}}  \\
- & {\delimit}  &{\terminal{interface}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListIncluded}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Included}}  \\
- & {\delimit}  &{\nonterminal{Included}} {\terminal{,}} {\nonterminal{ListIncluded}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Included}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{[}} {\nonterminal{ListIdent}} {\terminal{]}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Def}} & {\arrow}  &{\nonterminal{ListName}} {\terminal{:}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{ListName}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Name}} {\nonterminal{ListPatt}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{ListName}} {\terminal{:}} {\nonterminal{Exp}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{TopDef}} & {\arrow}  &{\terminal{cat}} {\nonterminal{ListCatDef}}  \\
- & {\delimit}  &{\terminal{fun}} {\nonterminal{ListFunDef}}  \\
- & {\delimit}  &{\terminal{data}} {\nonterminal{ListFunDef}}  \\
- & {\delimit}  &{\terminal{def}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{data}} {\nonterminal{ListDataDef}}  \\
- & {\delimit}  &{\terminal{transfer}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{param}} {\nonterminal{ListParDef}}  \\
- & {\delimit}  &{\terminal{oper}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{lincat}} {\nonterminal{ListPrintDef}}  \\
- & {\delimit}  &{\terminal{lindef}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{lin}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{printname}} {\terminal{cat}} {\nonterminal{ListPrintDef}}  \\
- & {\delimit}  &{\terminal{printname}} {\terminal{fun}} {\nonterminal{ListPrintDef}}  \\
- & {\delimit}  &{\terminal{flags}} {\nonterminal{ListFlagDef}}  \\
- & {\delimit}  &{\terminal{printname}} {\nonterminal{ListPrintDef}}  \\
- & {\delimit}  &{\terminal{lintype}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{pattern}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{package}} {\nonterminal{Ident}} {\terminal{{$=$}}} {\terminal{\{}} {\nonterminal{ListTopDef}} {\terminal{\}}} {\terminal{;}}  \\
- & {\delimit}  &{\terminal{var}} {\nonterminal{ListDef}}  \\
- & {\delimit}  &{\terminal{tokenizer}} {\nonterminal{Ident}} {\terminal{;}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{CatDef}} & {\arrow}  &{\nonterminal{Ident}} {\nonterminal{ListDDecl}}  \\
- & {\delimit}  &{\terminal{[}} {\nonterminal{Ident}} {\nonterminal{ListDDecl}} {\terminal{]}}  \\
- & {\delimit}  &{\terminal{[}} {\nonterminal{Ident}} {\nonterminal{ListDDecl}} {\terminal{]}} {\terminal{\{}} {\nonterminal{Integer}} {\terminal{\}}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{FunDef}} & {\arrow}  &{\nonterminal{ListIdent}} {\terminal{:}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{DataDef}} & {\arrow}  &{\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{ListDataConstr}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{DataConstr}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{.}} {\nonterminal{Ident}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListDataConstr}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{DataConstr}}  \\
- & {\delimit}  &{\nonterminal{DataConstr}} {\terminal{{$|$}}} {\nonterminal{ListDataConstr}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ParDef}} & {\arrow}  &{\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{ListParConstr}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{{$=$}}} {\terminal{(}} {\terminal{in}} {\nonterminal{Ident}} {\terminal{)}}  \\
- & {\delimit}  &{\nonterminal{Ident}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ParConstr}} & {\arrow}  &{\nonterminal{Ident}} {\nonterminal{ListDDecl}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{PrintDef}} & {\arrow}  &{\nonterminal{ListName}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{FlagDef}} & {\arrow}  &{\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{Ident}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListDef}} & {\arrow}  &{\nonterminal{Def}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{Def}} {\terminal{;}} {\nonterminal{ListDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListCatDef}} & {\arrow}  &{\nonterminal{CatDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{CatDef}} {\terminal{;}} {\nonterminal{ListCatDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListFunDef}} & {\arrow}  &{\nonterminal{FunDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{FunDef}} {\terminal{;}} {\nonterminal{ListFunDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListDataDef}} & {\arrow}  &{\nonterminal{DataDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{DataDef}} {\terminal{;}} {\nonterminal{ListDataDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListParDef}} & {\arrow}  &{\nonterminal{ParDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{ParDef}} {\terminal{;}} {\nonterminal{ListParDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListPrintDef}} & {\arrow}  &{\nonterminal{PrintDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{PrintDef}} {\terminal{;}} {\nonterminal{ListPrintDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListFlagDef}} & {\arrow}  &{\nonterminal{FlagDef}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{FlagDef}} {\terminal{;}} {\nonterminal{ListFlagDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListParConstr}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{ParConstr}}  \\
- & {\delimit}  &{\nonterminal{ParConstr}} {\terminal{{$|$}}} {\nonterminal{ListParConstr}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListIdent}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{,}} {\nonterminal{ListIdent}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Name}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{[}} {\nonterminal{Ident}} {\terminal{]}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListName}} & {\arrow}  &{\nonterminal{Name}}  \\
- & {\delimit}  &{\nonterminal{Name}} {\terminal{,}} {\nonterminal{ListName}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{LocDef}} & {\arrow}  &{\nonterminal{ListIdent}} {\terminal{:}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{ListIdent}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{ListIdent}} {\terminal{:}} {\nonterminal{Exp}} {\terminal{{$=$}}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListLocDef}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{LocDef}}  \\
- & {\delimit}  &{\nonterminal{LocDef}} {\terminal{;}} {\nonterminal{ListLocDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exp4}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{\{}} {\nonterminal{Ident}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{\%}} {\nonterminal{Ident}} {\terminal{\%}}  \\
- & {\delimit}  &{\nonterminal{Sort}}  \\
- & {\delimit}  &{\nonterminal{String}}  \\
- & {\delimit}  &{\nonterminal{Integer}}  \\
- & {\delimit}  &{\terminal{?}}  \\
- & {\delimit}  &{\terminal{[}} {\terminal{]}}  \\
- & {\delimit}  &{\terminal{data}}  \\
- & {\delimit}  &{\terminal{[}} {\nonterminal{Ident}} {\nonterminal{Exps}} {\terminal{]}}  \\
- & {\delimit}  &{\terminal{[}} {\nonterminal{String}} {\terminal{]}}  \\
- & {\delimit}  &{\terminal{\{}} {\nonterminal{ListLocDef}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{{$<$}}} {\nonterminal{ListTupleComp}} {\terminal{{$>$}}}  \\
- & {\delimit}  &{\terminal{(}} {\terminal{in}} {\nonterminal{Ident}} {\terminal{)}}  \\
- & {\delimit}  &{\terminal{{$<$}}} {\nonterminal{Exp}} {\terminal{:}} {\nonterminal{Exp}} {\terminal{{$>$}}}  \\
- & {\delimit}  &{\terminal{(}} {\nonterminal{Exp}} {\terminal{)}}  \\
- & {\delimit}  &{\nonterminal{LString}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exp3}} & {\arrow}  &{\nonterminal{Exp3}} {\terminal{.}} {\nonterminal{Label}}  \\
- & {\delimit}  &{\terminal{\{}} {\nonterminal{Ident}} {\terminal{.}} {\nonterminal{Ident}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{\%}} {\nonterminal{Ident}} {\terminal{.}} {\nonterminal{Ident}} {\terminal{\%}}  \\
- & {\delimit}  &{\nonterminal{Exp4}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exp2}} & {\arrow}  &{\nonterminal{Exp2}} {\nonterminal{Exp3}}  \\
- & {\delimit}  &{\terminal{table}} {\terminal{\{}} {\nonterminal{ListCase}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{table}} {\nonterminal{Exp4}} {\terminal{\{}} {\nonterminal{ListCase}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{table}} {\nonterminal{Exp4}} {\terminal{[}} {\nonterminal{ListExp}} {\terminal{]}}  \\
- & {\delimit}  &{\terminal{case}} {\nonterminal{Exp}} {\terminal{of}} {\terminal{\{}} {\nonterminal{ListCase}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{variants}} {\terminal{\{}} {\nonterminal{ListExp}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{pre}} {\terminal{\{}} {\nonterminal{Exp}} {\terminal{;}} {\nonterminal{ListAltern}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{strs}} {\terminal{\{}} {\nonterminal{ListExp}} {\terminal{\}}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{@}} {\nonterminal{Exp4}}  \\
- & {\delimit}  &{\nonterminal{Exp3}}  \\
- & {\delimit}  &{\terminal{Lin}} {\nonterminal{Ident}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exp1}} & {\arrow}  &{\nonterminal{Exp1}} {\terminal{!}} {\nonterminal{Exp2}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{*}} {\nonterminal{Exp2}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{**}} {\nonterminal{Exp2}}  \\
- & {\delimit}  &{\nonterminal{Exp2}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exp}} & {\arrow}  &{\terminal{$\backslash$}} {\nonterminal{ListBind}} {\terminal{{$-$}{$>$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\terminal{$\backslash$}} {\terminal{$\backslash$}} {\nonterminal{ListBind}} {\terminal{{$=$}{$>$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Decl}} {\terminal{{$-$}{$>$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{{$=$}{$>$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{{$+$}{$+$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{{$+$}}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\terminal{let}} {\terminal{\{}} {\nonterminal{ListLocDef}} {\terminal{\}}} {\terminal{in}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\terminal{let}} {\nonterminal{ListLocDef}} {\terminal{in}} {\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Exp1}} {\terminal{where}} {\terminal{\{}} {\nonterminal{ListLocDef}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{fn}} {\terminal{\{}} {\nonterminal{ListEquation}} {\terminal{\}}}  \\
- & {\delimit}  &{\nonterminal{Exp1}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListExp}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Exp}}  \\
- & {\delimit}  &{\nonterminal{Exp}} {\terminal{;}} {\nonterminal{ListExp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Exps}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Exp4}} {\nonterminal{Exps}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Patt1}} & {\arrow}  &{\terminal{\_}}  \\
- & {\delimit}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{\{}} {\nonterminal{Ident}} {\terminal{\}}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{.}} {\nonterminal{Ident}}  \\
- & {\delimit}  &{\nonterminal{Integer}}  \\
- & {\delimit}  &{\nonterminal{String}}  \\
- & {\delimit}  &{\terminal{\{}} {\nonterminal{ListPattAss}} {\terminal{\}}}  \\
- & {\delimit}  &{\terminal{{$<$}}} {\nonterminal{ListPattTupleComp}} {\terminal{{$>$}}}  \\
- & {\delimit}  &{\terminal{(}} {\nonterminal{Patt}} {\terminal{)}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Patt}} & {\arrow}  &{\nonterminal{Ident}} {\nonterminal{ListPatt}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\terminal{.}} {\nonterminal{Ident}} {\nonterminal{ListPatt}}  \\
- & {\delimit}  &{\nonterminal{Patt1}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{PattAss}} & {\arrow}  &{\nonterminal{ListIdent}} {\terminal{{$=$}}} {\nonterminal{Patt}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Label}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{\$}} {\nonterminal{Integer}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Sort}} & {\arrow}  &{\terminal{Type}}  \\
- & {\delimit}  &{\terminal{PType}}  \\
- & {\delimit}  &{\terminal{Tok}}  \\
- & {\delimit}  &{\terminal{Str}}  \\
- & {\delimit}  &{\terminal{Strs}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListPattAss}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{PattAss}}  \\
- & {\delimit}  &{\nonterminal{PattAss}} {\terminal{;}} {\nonterminal{ListPattAss}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{PattAlt}} & {\arrow}  &{\nonterminal{Patt}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListPatt}} & {\arrow}  &{\nonterminal{Patt1}}  \\
- & {\delimit}  &{\nonterminal{Patt1}} {\nonterminal{ListPatt}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListPattAlt}} & {\arrow}  &{\nonterminal{PattAlt}}  \\
- & {\delimit}  &{\nonterminal{PattAlt}} {\terminal{{$|$}}} {\nonterminal{ListPattAlt}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Bind}} & {\arrow}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{\_}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListBind}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Bind}}  \\
- & {\delimit}  &{\nonterminal{Bind}} {\terminal{,}} {\nonterminal{ListBind}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Decl}} & {\arrow}  &{\terminal{(}} {\nonterminal{ListBind}} {\terminal{:}} {\nonterminal{Exp}} {\terminal{)}}  \\
- & {\delimit}  &{\nonterminal{Exp2}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{TupleComp}} & {\arrow}  &{\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{PattTupleComp}} & {\arrow}  &{\nonterminal{Patt}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListTupleComp}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{TupleComp}}  \\
- & {\delimit}  &{\nonterminal{TupleComp}} {\terminal{,}} {\nonterminal{ListTupleComp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListPattTupleComp}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{PattTupleComp}}  \\
- & {\delimit}  &{\nonterminal{PattTupleComp}} {\terminal{,}} {\nonterminal{ListPattTupleComp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Case}} & {\arrow}  &{\nonterminal{ListPattAlt}} {\terminal{{$=$}{$>$}}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListCase}} & {\arrow}  &{\nonterminal{Case}}  \\
- & {\delimit}  &{\nonterminal{Case}} {\terminal{;}} {\nonterminal{ListCase}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Equation}} & {\arrow}  &{\nonterminal{ListPatt}} {\terminal{{$-$}{$>$}}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListEquation}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Equation}}  \\
- & {\delimit}  &{\nonterminal{Equation}} {\terminal{;}} {\nonterminal{ListEquation}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Altern}} & {\arrow}  &{\nonterminal{Exp}} {\terminal{/}} {\nonterminal{Exp}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListAltern}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{Altern}}  \\
- & {\delimit}  &{\nonterminal{Altern}} {\terminal{;}} {\nonterminal{ListAltern}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{DDecl}} & {\arrow}  &{\terminal{(}} {\nonterminal{ListBind}} {\terminal{:}} {\nonterminal{Exp}} {\terminal{)}}  \\
- & {\delimit}  &{\nonterminal{Exp4}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListDDecl}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\nonterminal{DDecl}} {\nonterminal{ListDDecl}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{OldGrammar}} & {\arrow}  &{\nonterminal{Include}} {\nonterminal{ListTopDef}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{Include}} & {\arrow}  &{\emptyP} \\
- & {\delimit}  &{\terminal{include}} {\nonterminal{ListFileName}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{FileName}} & {\arrow}  &{\nonterminal{String}}  \\
- & {\delimit}  &{\nonterminal{Ident}}  \\
- & {\delimit}  &{\terminal{/}} {\nonterminal{FileName}}  \\
- & {\delimit}  &{\terminal{.}} {\nonterminal{FileName}}  \\
- & {\delimit}  &{\terminal{{$-$}}} {\nonterminal{FileName}}  \\
- & {\delimit}  &{\nonterminal{Ident}} {\nonterminal{FileName}}  \\
-\end{tabular}\\
-
-\begin{tabular}{lll}
-{\nonterminal{ListFileName}} & {\arrow}  &{\nonterminal{FileName}} {\terminal{;}}  \\
- & {\delimit}  &{\nonterminal{FileName}} {\terminal{;}} {\nonterminal{ListFileName}}  \\
-\end{tabular}\\
-
-
-
-\end{document}
-
diff --git a/doc/German.png b/doc/German.png
deleted file mode 100644
Binary files a/doc/German.png and /dev/null differ
diff --git a/doc/Grammar.dot b/doc/Grammar.dot
deleted file mode 100644
--- a/doc/Grammar.dot
+++ /dev/null
@@ -1,75 +0,0 @@
-digraph {
-
-size = "12,8" ;
-
-Lang [style = "solid", shape = "ellipse", URL = "Lang.gf"];
-
-Lang -> Grammar [style = "solid"];
-Lang -> Lexicon [style = "solid"];
-
-Grammar [style = "solid", shape = "ellipse", URL = "Lang.gf"];
-
-
-Grammar -> Noun [style = "solid"];
-Grammar -> Verb [style = "solid"];
-Grammar -> Adjective [style = "solid"];
-Grammar -> Adverb [style = "solid"];
-Grammar -> Numeral [style = "solid"];
-Grammar -> Sentence [style = "solid"];
-Grammar -> Question [style = "solid"];
-Grammar -> Relative [style = "solid"];
-Grammar -> Conjunction [style = "solid"];
-Grammar -> Phrase [style = "solid"];
-Grammar -> Text [style = "solid"];
-Grammar -> Idiom [style = "solid"];
-Grammar -> Structural [style = "solid"];
-
-
-Noun [style = "solid", shape = "ellipse", URL = "Noun.gf"];
-Noun -> Cat [style = "solid"];
-
-Verb [style = "solid", shape = "ellipse", URL = "Verb.gf"];
-Verb -> Cat [style = "solid"];
-
-Adjective [style = "solid", shape = "ellipse", URL = "Adjective.gf"];
-Adjective -> Cat [style = "solid"];
-
-Adverb [style = "solid", shape = "ellipse", URL = "Adverb.gf"];
-Adverb -> Cat [style = "solid"];
-
-Numeral [style = "solid", shape = "ellipse", URL = "Numeral.gf"];
-Numeral -> Cat [style = "solid"];
-
-Sentence [style = "solid", shape = "ellipse", URL = "Sentence.gf"];
-Sentence -> Cat [style = "solid"];
-
-Question [style = "solid", shape = "ellipse", URL = "Question.gf"];
-Question -> Cat [style = "solid"];
-
-Relative [style = "solid", shape = "ellipse", URL = "Relative.gf"];
-Relative -> Cat [style = "solid"];
-
-Conjunction [style = "solid", shape = "ellipse", URL = "Conjunction.gf"];
-Conjunction -> Cat [style = "solid"];
-
-Phrase [style = "solid", shape = "ellipse", URL = "Phrase.gf"];
-Phrase -> Cat [style = "solid"];
-
-Text [style = "solid", shape = "ellipse", URL = "Phrase.gf"];
-Text -> Cat [style = "solid"];
-
-Idiom [style = "solid", shape = "ellipse", URL = "Phrase.gf"];
-Idiom -> Cat [style = "solid"];
-
-Structural [style = "solid", shape = "ellipse", URL = "Structural.gf"];
-Structural -> Cat [style = "solid"];
-
-Lexicon [style = "solid", shape = "ellipse", URL = "Lexicon.gf"];
-Lexicon -> Cat [style = "solid"];
-
-Cat [style = "solid", shape = "ellipse", URL = "Cat.gf"];
-Cat -> Common [style = "solid"];
-
-Common [style = "solid", shape = "ellipse", URL = "Tense.gf"];
-
-}
diff --git a/doc/Grammar.png b/doc/Grammar.png
deleted file mode 100644
Binary files a/doc/Grammar.png and /dev/null differ
diff --git a/doc/Makefile b/doc/Makefile
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -21,14 +21,3 @@
 
 Logos/gf0.png: Logos/gf0.svg Makefile
 	convert -background 'rgba(255,255,255,0)' -size 320x240 -depth 8 $< $@
-
-### Updating automatically generated HTML files
-
-GENERATED_HTML=gf-developers.html
-
-%.html: %.txt
-	txt2tags $<
-
-generated_html:: $(GENERATED_HTML)
-
-gf-developers.html: gf-developers.txt
diff --git a/doc/Resource-HOWTO.html b/doc/Resource-HOWTO.html
deleted file mode 100644
--- a/doc/Resource-HOWTO.html
+++ /dev/null
@@ -1,967 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>Resource grammar writing HOWTO</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Resource grammar writing HOWTO</H1>
-<FONT SIZE="4">
-<I>Author: Aarne Ranta &lt;aarne (at) cs.chalmers.se&gt;</I><BR>
-Last update: Mon Sep 22 14:28:01 2008
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-    <UL>
-    <LI><A HREF="#toc1">The resource grammar structure</A>
-      <UL>
-      <LI><A HREF="#toc2">Library API modules</A>
-      <LI><A HREF="#toc3">Phrase category modules</A>
-      <LI><A HREF="#toc4">Infrastructure modules</A>
-      <LI><A HREF="#toc5">Lexical modules</A>
-      </UL>
-    <LI><A HREF="#toc6">Language-dependent syntax modules</A>
-      <UL>
-      <LI><A HREF="#toc7">The present-tense fragment</A>
-      </UL>
-    <LI><A HREF="#toc8">Phases of the work</A>
-      <UL>
-      <LI><A HREF="#toc9">Putting up a directory</A>
-      <LI><A HREF="#toc10">Direction of work</A>
-      <LI><A HREF="#toc11">The develop-test cycle</A>
-      <LI><A HREF="#toc12">Auxiliary modules</A>
-      <LI><A HREF="#toc13">Morphology and lexicon</A>
-      <LI><A HREF="#toc14">Lock fields</A>
-      <LI><A HREF="#toc15">Lexicon construction</A>
-      </UL>
-    <LI><A HREF="#toc16">Lexicon extension</A>
-      <UL>
-      <LI><A HREF="#toc17">The irregularity lexicon</A>
-      <LI><A HREF="#toc18">Lexicon extraction from a word list</A>
-      <LI><A HREF="#toc19">Lexicon extraction from raw text data</A>
-      <LI><A HREF="#toc20">Bootstrapping with smart paradigms</A>
-      </UL>
-    <LI><A HREF="#toc21">Extending the resource grammar API</A>
-    <LI><A HREF="#toc22">Using parametrized modules</A>
-      <UL>
-      <LI><A HREF="#toc23">Writing an instance of parametrized resource grammar implementation</A>
-      <LI><A HREF="#toc24">Parametrizing a resource grammar implementation</A>
-      </UL>
-    <LI><A HREF="#toc25">Character encoding and transliterations</A>
-    <LI><A HREF="#toc26">Coding conventions in GF</A>
-    <LI><A HREF="#toc27">Transliterations</A>
-    </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<P>
-<B>History</B>
-</P>
-<P>
-September 2008: updated for Version 1.5.
-</P>
-<P>
-October 2007: updated for Version 1.2.
-</P>
-<P>
-January 2006: first version.
-</P>
-<P>
-The purpose of this document is to tell how to implement the GF
-resource grammar API for a new language. We will <I>not</I> cover how
-to use the resource grammar, nor how to change the API. But we
-will give some hints how to extend the API.
-</P>
-<P>
-A manual for using the resource grammar is found in
-</P>
-<P>
-<A HREF="../lib/resource/doc/synopsis.html"><CODE>www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/doc/synopsis.html</CODE></A>.
-</P>
-<P>
-A tutorial on GF, also introducing the idea of resource grammars, is found in
-</P>
-<P>
-<A HREF="./gf-tutorial.html"><CODE>www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-tutorial.html</CODE></A>.
-</P>
-<P>
-This document concerns the API v. 1.5, while the current stable release is 1.4. 
-You can find the code for the stable release in 
-</P>
-<P>
-<A HREF="../lib/resource"><CODE>www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/</CODE></A>
-</P>
-<P>
-and the next release in
-</P>
-<P>
-<A HREF="../next-lib/src"><CODE>www.cs.chalmers.se/Cs/Research/Language-technology/GF/next-lib/src/</CODE></A>
-</P>
-<P>
-It is recommended to build new grammars to match the next release.
-</P>
-<A NAME="toc1"></A>
-<H2>The resource grammar structure</H2>
-<P>
-The library is divided into a bunch of modules, whose dependencies
-are given in the following figure.
-</P>
-<P>
-<IMG ALIGN="left" SRC="Syntax.png" BORDER="0" ALT=""> 
-</P>
-<P>
-Modules of different kinds are distinguished as follows:
-</P>
-<UL>
-<LI>solid contours: module seen by end users
-<LI>dashed contours: internal module
-<LI>ellipse: abstract/concrete pair of modules
-<LI>rectangle: resource or instance
-<LI>diamond: interface
-</UL>
-
-<P>
-Put in another way:
-</P>
-<UL>
-<LI>solid rectangles and diamonds: user-accessible library API
-<LI>solid ellipses: user-accessible top-level grammar for parsing and linearization
-<LI>dashed contours: not visible to users
-</UL>
-
-<P>
-The dashed ellipses form the main parts of the implementation, on which the resource
-grammar programmer has to work with. She also has to work on the <CODE>Paradigms</CODE>
-module. The rest of the modules can be produced mechanically from corresponding
-modules for other languages, by just changing the language codes appearing in
-their module headers.
-</P>
-<P>
-The module structure is rather flat: most modules are direct
-parents of <CODE>Grammar</CODE>. The idea
-is that the implementors can concentrate on one linguistic aspect at a time, or
-also distribute the work among several authors. The module <CODE>Cat</CODE>
-defines the "glue" that ties the aspects together - a type system
-to which all the other modules conform, so that e.g. <CODE>NP</CODE> means
-the same thing in those modules that use <CODE>NP</CODE>s and those that
-constructs them.
-</P>
-<A NAME="toc2"></A>
-<H3>Library API modules</H3>
-<P>
-For the user of the library, these modules are the most important ones.
-In a typical application, it is enough to open <CODE>Paradigms</CODE> and <CODE>Syntax</CODE>.
-The module <CODE>Try</CODE> combines these two, making it possible to experiment
-with combinations of syntactic and lexical constructors by using the
-<CODE>cc</CODE> command in the GF shell. Here are short explanations of each API module:
-</P>
-<UL>
-<LI><CODE>Try</CODE>: the whole resource library for a language (<CODE>Paradigms</CODE>, <CODE>Syntax</CODE>,
-  <CODE>Irreg</CODE>, and <CODE>Extra</CODE>); 
-  produced mechanically as a collection of modules
-<LI><CODE>Syntax</CODE>: language-independent categories, syntax functions, and structural words;
-  produced mechanically as a collection of modules
-<LI><CODE>Constructors</CODE>: language-independent syntax functions and structural words;
-  produced mechanically via functor instantiation
-<LI><CODE>Paradigms</CODE>: language-dependent morphological paradigms
-</UL>
-
-<A NAME="toc3"></A>
-<H3>Phrase category modules</H3>
-<P>
-The immediate parents of <CODE>Grammar</CODE> will be called <B>phrase category modules</B>,
-since each of them concentrates on a particular phrase category (nouns, verbs,
-adjectives, sentences,...). A phrase category module tells 
-<I>how to construct phrases in that category</I>. You will find out that
-all functions in any of these modules have the same value type (or maybe
-one of a small number of different types). Thus we have
-</P>
-<UL>
-<LI><CODE>Noun</CODE>: construction of nouns and noun phrases
-<LI><CODE>Adjective</CODE>: construction of adjectival phrases
-<LI><CODE>Verb</CODE>: construction of verb phrases
-<LI><CODE>Adverb</CODE>: construction of adverbial phrases
-<LI><CODE>Numeral</CODE>: construction of cardinal and ordinal numerals
-<LI><CODE>Sentence</CODE>: construction of sentences and imperatives
-<LI><CODE>Question</CODE>: construction of questions
-<LI><CODE>Relative</CODE>: construction of relative clauses
-<LI><CODE>Conjunction</CODE>: coordination of phrases
-<LI><CODE>Phrase</CODE>: construction of the major units of text and speech
-<LI><CODE>Text</CODE>: construction of texts as sequences of phrases
-<LI><CODE>Idiom</CODE>: idiomatic expressions such as existentials
-</UL>
-
-<A NAME="toc4"></A>
-<H3>Infrastructure modules</H3>
-<P>
-Expressions of each phrase category are constructed in the corresponding
-phrase category module. But their <I>use</I> takes mostly place in other modules.
-For instance, noun phrases, which are constructed in <CODE>Noun</CODE>, are
-used as arguments of functions of almost all other phrase category modules. 
-How can we build all these modules independently of each other?
-</P>
-<P>
-As usual in typeful programming, the <I>only</I> thing you need to know
-about an object you use is its type. When writing a linearization rule
-for a GF abstract syntax function, the only thing you need to know is
-the linearization types of its value and argument categories. To achieve
-the division of the resource grammar to several parallel phrase category modules,
-what we need is an underlying definition of the linearization types. This
-definition is given as the implementation of
-</P>
-<UL>
-<LI><CODE>Cat</CODE>: syntactic categories of the resource grammar
-</UL>
-
-<P>
-Any resource grammar implementation has first to agree on how to implement
-<CODE>Cat</CODE>. Luckily enough, even this can be done incrementally: you
-can skip the <CODE>lincat</CODE> definition of a category and use the default
-<CODE>{s : Str}</CODE> until you need to change it to something else. In
-English, for instance, many categories do have this linearization type.
-</P>
-<A NAME="toc5"></A>
-<H3>Lexical modules</H3>
-<P>
-What is lexical and what is syntactic is not as clearcut in GF as in
-some other grammar formalisms. Logically, lexical means atom, i.e. a
-<CODE>fun</CODE> with no arguments. Linguistically, one may add to this
-that the <CODE>lin</CODE> consists of only one token (or of a table whose values
-are single tokens). Even in the restricted lexicon included in the resource
-API, the latter rule is sometimes violated in some languages. For instance,
-<CODE>Structural.both7and_DConj</CODE> is an atom, but its linearization is
-two words e.g. <I>both - and</I>.
-</P>
-<P>
-Another characterization of lexical is that lexical units can be added
-almost <I>ad libitum</I>, and they cannot be defined in terms of already
-given rules. The lexical modules of the resource API are thus more like
-samples than complete lists. There are two such modules:
-</P>
-<UL>
-<LI><CODE>Structural</CODE>: structural words (determiners, conjunctions,...)
-<LI><CODE>Lexicon</CODE>: basic everyday content words (nouns, verbs,...)
-</UL>
-
-<P>
-The module <CODE>Structural</CODE> aims for completeness, and is likely to
-be extended in future releases of the resource. The module <CODE>Lexicon</CODE>
-gives a "random" list of words, which enables testing the syntax.
-It also provides a check list for morphology, since those words are likely to include
-most morphological patterns of the language.
-</P>
-<P>
-In the case of <CODE>Lexicon</CODE> it may come out clearer than anywhere else
-in the API that it is impossible to give exact translation equivalents in
-different languages on the level of a resource grammar. This is no problem,
-since application grammars can use the resource in different ways for
-different languages.
-</P>
-<A NAME="toc6"></A>
-<H2>Language-dependent syntax modules</H2>
-<P>
-In addition to the common API, there is room for language-dependent extensions
-of the resource. The top level of each languages looks as follows (with German 
-as example):
-</P>
-<PRE>
-    abstract AllGerAbs = Lang, ExtraGerAbs, IrregGerAbs
-</PRE>
-<P>
-where <CODE>ExtraGerAbs</CODE> is a collection of syntactic structures specific to German,
-and <CODE>IrregGerAbs</CODE> is a dictionary of irregular words of German 
-(at the moment, just verbs). Each of these language-specific grammars has 
-the potential to grow into a full-scale grammar of the language. These grammar
-can also be used as libraries, but the possibility of using functors is lost.
-</P>
-<P>
-To give a better overview of language-specific structures, 
-modules like <CODE>ExtraGerAbs</CODE>
-are built from a language-independent module <CODE>ExtraAbs</CODE> 
-by restricted inheritance:
-</P>
-<PRE>
-    abstract ExtraGerAbs = Extra [f,g,...]
-</PRE>
-<P>
-Thus any category and function in <CODE>Extra</CODE> may be shared by a subset of all
-languages. One can see this set-up as a matrix, which tells 
-what <CODE>Extra</CODE> structures
-are implemented in what languages. For the common API in <CODE>Grammar</CODE>, the matrix
-is filled with 1's (everything is implemented in every language).
-</P>
-<P>
-In a minimal resource grammar implementation, the language-dependent
-extensions are just empty modules, but it is good to provide them for
-the sake of uniformity.
-</P>
-<A NAME="toc7"></A>
-<H3>The present-tense fragment</H3>
-<P>
-Some lines in the resource library are suffixed with the comment
-</P>
-<PRE>
-    --# notpresent
-</PRE>
-<P>
-which is used by a preprocessor to exclude those lines from 
-a reduced version of the full resource. This present-tense-only
-version is useful for applications in most technical text, since
-they reduce the grammar size and compilation time. It can also
-be useful to exclude those lines in a first version of resource
-implementation. To compile a grammar with present-tense-only, use
-</P>
-<PRE>
-    make Present
-</PRE>
-<P>
-with <CODE>resource/Makefile</CODE>.
-</P>
-<A NAME="toc8"></A>
-<H2>Phases of the work</H2>
-<A NAME="toc9"></A>
-<H3>Putting up a directory</H3>
-<P>
-Unless you are writing an instance of a parametrized implementation
-(Romance or Scandinavian), which will be covered later, the
-simplest way is to follow roughly the following procedure. Assume you
-are building a grammar for the German language. Here are the first steps,
-which we actually followed ourselves when building the German implementation
-of resource v. 1.0 at Ubuntu linux. We have slightly modified them to
-match resource v. 1.5 and GF v. 3.0.
-</P>
-<OL>
-<LI>Create a sister directory for <CODE>GF/lib/resource/english</CODE>, named
-     <CODE>german</CODE>.
-<PRE>
-         cd GF/lib/resource/
-         mkdir german
-         cd german
-</PRE>
-<P></P>
-<LI>Check out the [ISO 639 3-letter language code 
-   <A HREF="http://www.w3.org/WAI/ER/IG/ert/iso639.htm">http://www.w3.org/WAI/ER/IG/ert/iso639.htm</A>] 
-   for German: both <CODE>Ger</CODE> and <CODE>Deu</CODE> are given, and we pick <CODE>Ger</CODE>.
-   (We use the 3-letter codes rather than the more common 2-letter codes,
-    since they will suffice for many more languages!)
-<P></P>
-<LI>Copy the <CODE>*Eng.gf</CODE> files from <CODE>english</CODE> <CODE>german</CODE>,
-     and rename them:
-<PRE>
-         cp ../english/*Eng.gf .
-         rename 's/Eng/Ger/' *Eng.gf
-</PRE>
-  If you don't have the <CODE>rename</CODE> command, you can use a bash script with <CODE>mv</CODE>.
-</OL>
-
-<OL>
-<LI>Change the <CODE>Eng</CODE> module references to <CODE>Ger</CODE> references
-     in all files:
-<PRE>
-         sed -i 's/English/German/g' *Ger.gf
-         sed -i 's/Eng/Ger/g' *Ger.gf
-</PRE>
-  The first line prevents changing the word <CODE>English</CODE>, which appears
-  here and there in comments, to <CODE>Gerlish</CODE>. The <CODE>sed</CODE> command syntax
-  may vary depending on your operating system.
-<P></P>
-<LI>This may of course change unwanted occurrences of the 
-     string <CODE>Eng</CODE> - verify this by
-<PRE>
-         grep Ger *.gf
-</PRE>
-     But you will have to make lots of manual changes in all files anyway!
-<P></P>
-<LI>Comment out the contents of these files:
-<PRE>
-         sed -i 's/^/--/' *Ger.gf
-</PRE>
-     This will give you a set of templates out of which the grammar
-     will grow as you uncomment and modify the files rule by rule.
-<P></P>
-<LI>In all <CODE>.gf</CODE> files, uncomment the module headers and brackets,
-  leaving the module bodies commented. Unfortunately, there is no
-  simple way to do this automatically (or to avoid commenting these
-  lines in the previous step) - but uncommenting the first
-  and the last lines will actually do the job for many of the files.
-<P></P>
-<LI>Uncomment the contents of the main grammar file:
-<PRE>
-         sed -i 's/^--//' LangGer.gf
-</PRE>
-<P></P>
-<LI>Now you can open the grammar <CODE>LangGer</CODE> in GF:
-<PRE>
-         gf LangGer.gf
-</PRE>
-  You will get lots of warnings on missing rules, but the grammar will compile.
-<P></P>
-<LI>At all the following steps you will now have a valid, but incomplete
-     GF grammar. The GF command
-<PRE>
-         pg -missing
-</PRE>
-     tells you what exactly is missing.
-</OL>
-
-<P>
-Here is the module structure of <CODE>LangGer</CODE>. It has been simplified by leaving out
-the majority of the phrase category modules. Each of them has the same dependencies
-as <CODE>VerbGer</CODE>, whose complete dependencies are shown as an example.
-</P>
-<P>
-<IMG ALIGN="middle" SRC="German.png" BORDER="0" ALT="">
-</P>
-<A NAME="toc10"></A>
-<H3>Direction of work</H3>
-<P>
-The real work starts now. There are many ways to proceed, the most obvious ones being
-</P>
-<UL>
-<LI>Top-down: start from the module <CODE>Phrase</CODE> and go down to <CODE>Sentence</CODE>, then
-  <CODE>Verb</CODE>, <CODE>Noun</CODE>, and in the end <CODE>Lexicon</CODE>. In this way, you are all the time
-  building complete phrases, and add them with more content as you proceed.
-  <B>This approach is not recommended</B>. It is impossible to test the rules if
-  you have no words to apply the constructions to.
-<P></P>
-<LI>Bottom-up: set as your first goal to implement <CODE>Lexicon</CODE>. To this end, you
-  need to write <CODE>ParadigmsGer</CODE>, which in turn needs parts of 
-  <CODE>MorphoGer</CODE> and <CODE>ResGer</CODE>.
-  <B>This approach is not recommended</B>. You can get stuck to details of
-  morphology such as irregular words, and you don't have enough grasp about
-  the type system to decide what forms to cover in morphology.
-</UL>
-
-<P>
-The practical working direction is thus a saw-like motion between the morphological
-and top-level modules. Here is a possible course of the work that gives enough
-test data and enough general view at any point:
-</P>
-<OL>
-<LI>Define <CODE>Cat.N</CODE> and the required parameter types in <CODE>ResGer</CODE>. As we define
-<PRE>
-    lincat N  = {s : Number =&gt; Case =&gt; Str ; g : Gender} ;
-</PRE>
-we need the parameter types <CODE>Number</CODE>, <CODE>Case</CODE>, and <CODE>Gender</CODE>. The definition
-of <CODE>Number</CODE> in <A HREF="../lib/resource/common/ParamX.gf"><CODE>common/ParamX</CODE></A> 
-works for German, so we
-use it and just define <CODE>Case</CODE> and <CODE>Gender</CODE> in <CODE>ResGer</CODE>.
-<P></P>
-<LI>Define some cases of <CODE>mkN</CODE> in <CODE>ParadigmsGer</CODE>. In this way you can 
-already implement a huge amount of nouns correctly in <CODE>LexiconGer</CODE>. Actually
-just adding the worst-case instance of <CODE>mkN</CODE> (the one taking the most
-arguments) should suffice for every noun - but, 
-since it is tedious to use, you
-might proceed to the next step before returning to morphology and defining the
-real work horse, <CODE>mkN</CODE> taking two forms and a gender.
-<P></P>
-<LI>While doing this, you may want to test the resource independently. Do this by
-  starting the GF shell in the <CODE>resource</CODE> directory, by the commands
-<PRE>
-    &gt; i -retain german/ParadigmsGer
-    &gt; cc -table mkN "Kirche"
-</PRE>
-<P></P>
-<LI>Proceed to determiners and pronouns in 
-<CODE>NounGer</CODE> (<CODE>DetCN UsePron DetQuant NumSg DefArt IndefArt UseN</CODE>) and 
-<CODE>StructuralGer</CODE> (<CODE>i_Pron this_Quant</CODE>). You also need some categories and
-parameter types. At this point, it is maybe not possible to find out the final
-linearization types of <CODE>CN</CODE>, <CODE>NP</CODE>, <CODE>Det</CODE>, and <CODE>Quant</CODE>, but at least you should
-be able to correctly inflect noun phrases such as <I>every airplane</I>:
-<PRE>
-    &gt; i german/LangGer.gf
-    &gt; l -table DetCN every_Det (UseN airplane_N)
-  
-    Nom: jeder Flugzeug
-    Acc: jeden Flugzeug
-    Dat: jedem Flugzeug
-    Gen: jedes Flugzeugs
-</PRE>
-<P></P>
-<LI>Proceed to verbs: define <CODE>CatGer.V</CODE>,  <CODE>ResGer.VForm</CODE>, and
-<CODE>ParadigmsGer.mkV</CODE>. You may choose to exclude <CODE>notpresent</CODE>
-cases at this point. But anyway, you will be able to inflect a good
-number of verbs in <CODE>Lexicon</CODE>, such as
-<CODE>live_V</CODE> (<CODE>mkV "leben"</CODE>).
-<P></P>
-<LI>Now you can soon form your first sentences: define <CODE>VP</CODE> and
-<CODE>Cl</CODE> in <CODE>CatGer</CODE>, <CODE>VerbGer.UseV</CODE>, and <CODE>SentenceGer.PredVP</CODE>.
-Even if you have excluded the tenses, you will be able to produce
-<PRE>
-    &gt; i -preproc=./mkPresent german/LangGer.gf
-    &gt; l -table PredVP (UsePron i_Pron) (UseV live_V)
-  
-    Pres Simul Pos Main: ich lebe
-    Pres Simul Pos Inv:  lebe ich
-    Pres Simul Pos Sub:  ich lebe
-    Pres Simul Neg Main: ich lebe nicht
-    Pres Simul Neg Inv:  lebe ich nicht
-    Pres Simul Neg Sub:  ich nicht lebe
-</PRE>
-You should also be able to parse:
-<PRE>
-    &gt; p -cat=Cl "ich lebe"
-    PredVP (UsePron i_Pron) (UseV live_V)
-</PRE>
-<P></P>
-<LI>Transitive verbs 
-(<CODE>CatGer.V2 CatGer.VPSlash ParadigmsGer.mkV2 VerbGer.ComplSlash VerbGer.SlashV2a</CODE>) 
-are a natural next step, so that you can
-produce <CODE>ich liebe dich</CODE> ("I love you").
-<P></P>
-<LI>Adjectives (<CODE>CatGer.A ParadigmsGer.mkA NounGer.AdjCN AdjectiveGer.PositA</CODE>) 
-will force you to think about strong and weak declensions, so that you can
-correctly inflect <I>mein neuer Wagen, dieser neue Wagen</I> 
-("my new car, this new car"). 
-<P></P>
-<LI>Once you have implemented the set
-(``Noun.DetCN Noun.AdjCN Verb.UseV Verb.ComplSlash Verb.SlashV2a Sentence.PredVP),
-you have overcome most of difficulties. You know roughly what parameters
-and dependences there are in your language, and you can now proceed very
-much in the order you please. 
-</OL>
-
-<A NAME="toc11"></A>
-<H3>The develop-test cycle</H3>
-<P>
-The following develop-test cycle will
-be applied most of the time, both in the first steps described above
-and in later steps where you are more on your own.
-</P>
-<OL>
-<LI>Select a phrase category module, e.g. <CODE>NounGer</CODE>, and uncomment some
-  linearization rules (for instance, <CODE>DetCN</CODE>, as above).
-<P></P>
-<LI>Write down some German examples of this rule, for instance translations
-     of "the dog", "the house", "the big house", etc. Write these in all their
-     different forms (two numbers and four cases).
-<P></P>
-<LI>Think about the categories involved (<CODE>CN, NP, N, Det</CODE>) and the
-     variations they have. Encode this in the lincats of <CODE>CatGer</CODE>.
-     You may have to define some new parameter types in <CODE>ResGer</CODE>.
-<P></P>
-<LI>To be able to test the construction, 
-     define some words you need to instantiate it
-     in <CODE>LexiconGer</CODE>. You will also need some regular inflection patterns
-     in<CODE>ParadigmsGer</CODE>.
-<P></P>
-<LI>Test by parsing, linearization,
-     and random generation. In particular, linearization to a table should
-     be used so that you see all forms produced; the <CODE>treebank</CODE> option
-     preserves the tree
-<PRE>
-      &gt; gr -cat=NP -number=20 | l -table -treebank
-</PRE>
-<P></P>
-<LI>Save some tree-linearization pairs for later regression testing. You can save
-  a gold standard treebank and use the Unix <CODE>diff</CODE> command to compare later
-  linearizations produced from the same list of trees. If you save the trees
-  in a file <CODE>trees</CODE>, you can do as follows:
-<PRE>
-      &gt; rf -file=trees -tree -lines | l -table -treebank | wf -file=treebank
-</PRE>
-<P></P>
-<LI>A file with trees testing all resource functions is included in the resource,
-  entitled <CODE>resource/exx-resource.gft</CODE>. A treebank can be created from this by
-  the Unix command
-<PRE>
-    % runghc Make.hs test langs=Ger
-</PRE>
-</OL>
-
-<P>
-You are likely to run this cycle a few times for each linearization rule
-you implement, and some hundreds of times altogether. There are roughly
-70 <CODE>cat</CODE>s and
-600 <CODE>funs</CODE> in <CODE>Lang</CODE> at the moment; 170 of the <CODE>funs</CODE> are outside the two
-lexicon modules).
-</P>
-<A NAME="toc12"></A>
-<H3>Auxiliary modules</H3>
-<P>
-These auxuliary <CODE>resource</CODE> modules will be written by you.
-</P>
-<UL>
-<LI><CODE>ResGer</CODE>: parameter types and auxiliary operations 
-(a resource for the resource grammar!)
-<LI><CODE>ParadigmsGer</CODE>: complete inflection engine and most important regular paradigms
-<LI><CODE>MorphoGer</CODE>: auxiliaries for <CODE>ParadigmsGer</CODE> and <CODE>StructuralGer</CODE>. This need
-not be separate from <CODE>ResGer</CODE>.
-</UL>
-
-<P>
-These modules are language-independent and provided by the existing resource
-package.
-</P>
-<UL>
-<LI><CODE>ParamX</CODE>: parameter types used in many languages
-<LI><CODE>CommonX</CODE>: implementation of language-uniform categories 
-    such as $Text$ and $Phr$, as well as of
-    the logical tense, anteriority, and polarity parameters
-<LI><CODE>Coordination</CODE>: operations to deal with lists and coordination
-<LI><CODE>Prelude</CODE>: general-purpose operations on strings, records,
-      truth values, etc.
-<LI><CODE>Predef</CODE>: general-purpose operations with hard-coded definitions
-</UL>
-
-<P>
-An important decision is what rules to implement in terms of operations in
-<CODE>ResGer</CODE>. The <B>golden rule of functional programming</B> says:
-</P>
-<UL>
-<LI><I>Whenever you find yourself programming by copy and paste, write a function instead!</I>. 
-</UL>
-
-<P>
-This rule suggests that an operation should be created if it is to be
-used at least twice. At the same time, a sound principle of <B>vicinity</B> says: 
-</P>
-<UL>
-<LI><I>It should not require too much browsing to understand what a piece of code does.</I>
-</UL>
-
-<P>
-From these two principles, we have derived the following practice:
-</P>
-<UL>
-<LI>If an operation is needed <I>in two different modules</I>, 
-  it should be created in as an <CODE>oper</CODE> in <CODE>ResGer</CODE>. An example is <CODE>mkClause</CODE>, 
-  used in <CODE>Sentence</CODE>, <CODE>Question</CODE>, and <CODE>Relative</CODE>-
-<LI>If an operation is needed <I>twice in the same module</I>, but never
-  outside, it should be created in the same module. Many examples are
-  found in <CODE>Numerals</CODE>.
-<LI>If an operation is needed <I>twice in the same judgement</I>, but never
-  outside, it should be created by a <CODE>let</CODE> definition. 
-<LI>If an operation is only needed once, it should not be created as an <CODE>oper</CODE>, 
-  but rather inlined. However, a <CODE>let</CODE> definition may well be in place just
-  to make the readable. 
-  Most functions in phrase category modules 
-  are implemented in this way. 
-</UL>
-
-<P>
-This discipline is very different from the one followed in early
-versions of the library (up to 0.9). We then valued the principle of
-abstraction more than vicinity, creating layers of abstraction for
-almost everything. This led in practice to the duplication of almost
-all code on the <CODE>lin</CODE> and <CODE>oper</CODE> levels, and made the code
-hard to understand and maintain.
-</P>
-<A NAME="toc13"></A>
-<H3>Morphology and lexicon</H3>
-<P>
-The paradigms needed to implement
-<CODE>LexiconGer</CODE> are defined in
-<CODE>ParadigmsGer</CODE>.
-This module provides high-level ways to define the linearization of
-lexical items, of categories <CODE>N, A, V</CODE> and their complement-taking
-variants.
-</P>
-<P>
-For ease of use, the <CODE>Paradigms</CODE> modules follow a certain
-naming convention. Thus they for each lexical category, such as <CODE>N</CODE>,
-the overloaded functions, such as <CODE>mkN</CODE>, with the following cases:
-</P>
-<UL>
-<LI>the worst-case construction of <CODE>N</CODE>. Its type signature
-     has the form
-<PRE>
-         mkN : Str -&gt; ... -&gt; Str -&gt; P -&gt; ... -&gt; Q -&gt; N
-</PRE>
-     with as many string and parameter arguments as can ever be needed to
-     construct an <CODE>N</CODE>.
-<LI>the most regular cases, with just one string argument:
-<PRE>
-         mkN : Str -&gt; N
-</PRE>
-<LI>A language-dependent (small) set of functions to handle mild irregularities
-     and common exceptions.
-</UL>
-
-<P>
-For the complement-taking variants, such as <CODE>V2</CODE>, we provide
-</P>
-<UL>
-<LI>a case that takes a <CODE>V</CODE> and all necessary arguments, such
-     as case and preposition:
-<PRE>
-         mkV2 : V -&gt; Case -&gt; Str -&gt; V2 ;
-</PRE>
-<LI>a case that takes a <CODE>Str</CODE> and produces a transitive verb with the direct
-  object case:
-<PRE>
-         mkV2 : Str -&gt; V2 ;
-</PRE>
-<LI>A language-dependent (small) set of functions to handle common special cases,
-  such as transitive verbs that are not regular:
-<PRE>
-         mkV2 : V -&gt; V2 ;
-</PRE>
-</UL>
-
-<P>
-The golden rule for the design of paradigms is that
-</P>
-<UL>
-<LI><I>The user of the library will only need function applications with constants and strings, never any records or tables.</I>
-</UL>
-
-<P>
-The discipline of data abstraction moreover requires that the user of the resource
-is not given access to parameter constructors, but only to constants that denote 
-them. This gives the resource grammarian the freedom to change the underlying
-data representation if needed. It means that the <CODE>ParadigmsGer</CODE> module has
-to define constants for those parameter types and constructors that 
-the application grammarian may need to use, e.g.
-</P>
-<PRE>
-    oper 
-      Case : Type ;
-      nominative, accusative, genitive, dative : Case ;
-</PRE>
-<P>
-These constants are defined in terms of parameter types and constructors
-in <CODE>ResGer</CODE> and <CODE>MorphoGer</CODE>, which modules are not
-visible to the application grammarian.
-</P>
-<A NAME="toc14"></A>
-<H3>Lock fields</H3>
-<P>
-An important difference between <CODE>MorphoGer</CODE> and
-<CODE>ParadigmsGer</CODE> is that the former uses "raw" record types
-for word classes, whereas the latter used category symbols defined in
-<CODE>CatGer</CODE>. When these category symbols are used to denote
-record types in a resource modules, such as <CODE>ParadigmsGer</CODE>,
-a <B>lock field</B> is added to the record, so that categories
-with the same implementation are not confused with each other.
-(This is inspired by the <CODE>newtype</CODE> discipline in Haskell.)
-For instance, the lincats of adverbs and conjunctions are the same
-in <CODE>CommonX</CODE> (and therefore in <CODE>CatGer</CODE>, which inherits it):
-</P>
-<PRE>
-    lincat Adv  = {s : Str} ;
-    lincat Conj = {s : Str} ;
-</PRE>
-<P>
-But when these category symbols are used to denote their linearization 
-types in resource module, these definitions are translated to
-</P>
-<PRE>
-    oper Adv  : Type = {s : Str  ; lock_Adv  : {}} ;
-    oper Conj : Type = {s : Str} ; lock_Conj : {}} ;
-</PRE>
-<P>
-In this way, the user of a resource grammar cannot confuse adverbs with
-conjunctions. In other words, the lock fields force the type checker
-to function as grammaticality checker.
-</P>
-<P>
-When the resource grammar is <CODE>open</CODE>ed in an application grammar, the
-lock fields are never seen (except possibly in type error messages),
-and the application grammarian should never write them herself. If she
-has to do this, it is a sign that the resource grammar is incomplete, and
-the proper way to proceed is to fix the resource grammar.
-</P>
-<P>
-The resource grammarian has to provide the dummy lock field values
-in her hidden definitions of constants in <CODE>Paradigms</CODE>. For instance,
-</P>
-<PRE>
-    mkAdv : Str -&gt; Adv ;
-    -- mkAdv s = {s = s ; lock_Adv = &lt;&gt;} ;
-</PRE>
-<P></P>
-<A NAME="toc15"></A>
-<H3>Lexicon construction</H3>
-<P>
-The lexicon belonging to <CODE>LangGer</CODE> consists of two modules:
-</P>
-<UL>
-<LI><CODE>StructuralGer</CODE>, structural words, built by using both
-  <CODE>ParadigmsGer</CODE> and <CODE>MorphoGer</CODE>.
-<LI><CODE>LexiconGer</CODE>, content words, built by using <CODE>ParadigmsGer</CODE> only.
-</UL>
-
-<P>
-The reason why <CODE>MorphoGer</CODE> has to be used in <CODE>StructuralGer</CODE>
-is that <CODE>ParadigmsGer</CODE> does not contain constructors for closed
-word classes such as pronouns and determiners. The reason why we
-recommend <CODE>ParadigmsGer</CODE> for building <CODE>LexiconGer</CODE> is that
-the coverage of the paradigms gets thereby tested and that the
-use of the paradigms in <CODE>LexiconGer</CODE> gives a good set of examples for
-those who want to build new lexica.
-</P>
-<A NAME="toc16"></A>
-<H2>Lexicon extension</H2>
-<A NAME="toc17"></A>
-<H3>The irregularity lexicon</H3>
-<P>
-It is useful in most languages to provide a separate module of irregular
-verbs and other words which are difficult for a lexicographer
-to handle. There are usually a limited number of such words - a
-few hundred perhaps. Building such a lexicon separately also
-makes it less important to cover <I>everything</I> by the
-worst-case variants of the paradigms <CODE>mkV</CODE> etc.
-</P>
-<A NAME="toc18"></A>
-<H3>Lexicon extraction from a word list</H3>
-<P>
-You can often find resources such as lists of 
-irregular verbs on the internet. For instance, the
-Irregular German Verb page 
-previously found in 
-<CODE>http://www.iee.et.tu-dresden.de/~wernerr/grammar/verben_dt.html</CODE>
-page gives a list of verbs in the
-traditional tabular format, which begins as follows:
-</P>
-<PRE>
-    backen (du bäckst, er bäckt)                   backte [buk]              gebacken
-    befehlen (du befiehlst, er befiehlt; befiehl!) befahl (beföhle; befähle) befohlen
-    beginnen                                       begann (begönne; begänne) begonnen
-    beißen                                         biß                       gebissen
-</PRE>
-<P>
-All you have to do is to write a suitable verb paradigm
-</P>
-<PRE>
-    irregV : (x1,_,_,_,_,x6 : Str) -&gt; V ;
-</PRE>
-<P>
-and a Perl or Python or Haskell script that transforms
-the table to
-</P>
-<PRE>
-    backen_V   = irregV "backen" "bäckt" "back" "backte" "backte" "gebacken" ;
-    befehlen_V = irregV "befehlen" "befiehlt" "befiehl" "befahl" "beföhle" "befohlen" ;
-</PRE>
-<P></P>
-<P>
-When using ready-made word lists, you should think about
-coyright issues. All resource grammar material should
-be provided under GNU Lesser General Public License (LGPL).
-</P>
-<A NAME="toc19"></A>
-<H3>Lexicon extraction from raw text data</H3>
-<P>
-This is a cheap technique to build a lexicon of thousands
-of words, if text data is available in digital format.
-See the <A HREF="http://www.cs.chalmers.se/~markus/extract/">Extract Homepage</A> 
-homepage for details.
-</P>
-<A NAME="toc20"></A>
-<H3>Bootstrapping with smart paradigms</H3>
-<P>
-This is another cheap technique, where you need as input a list of words with
-part-of-speech marking. You initialize the lexicon by using the one-argument
-<CODE>mkN</CODE> etc paradigms, and add forms to those words that do not come out right.
-This procedure is described in the paper
-</P>
-<P>
-A. Ranta.
-How predictable is Finnish morphology? An experiment on lexicon construction.
-In J. Nivre, M. Dahllöf and B. Megyesi (eds),
-<I>Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein</I>,
-University of Uppsala,
-2008.
-Available from the <A HREF="http://publications.uu.se/abstract.xsql?dbid=8933">series homepage</A>
-</P>
-<A NAME="toc21"></A>
-<H2>Extending the resource grammar API</H2>
-<P>
-Sooner or later it will happen that the resource grammar API
-does not suffice for all applications. A common reason is
-that it does not include idiomatic expressions in a given language.
-The solution then is in the first place to build language-specific
-extension modules, like <CODE>ExtraGer</CODE>. 
-</P>
-<A NAME="toc22"></A>
-<H2>Using parametrized modules</H2>
-<A NAME="toc23"></A>
-<H3>Writing an instance of parametrized resource grammar implementation</H3>
-<P>
-Above we have looked at how a resource implementation is built by
-the copy and paste method (from English to German), that is, formally
-speaking, from scratch. A more elegant solution available for 
-families of languages such as Romance and Scandinavian is to
-use parametrized modules. The advantages are
-</P>
-<UL>
-<LI>theoretical: linguistic generalizations and insights
-<LI>practical: maintainability improves with fewer components
-</UL>
-
-<P>
-Here is a set of
-<A HREF="http://www.cs.chalmers.se/~aarne/geocal2006.pdf">slides</A>
-on the topic.
-</P>
-<A NAME="toc24"></A>
-<H3>Parametrizing a resource grammar implementation</H3>
-<P>
-This is the most demanding form of resource grammar writing.
-We do <I>not</I> recommend the method of parametrizing from the
-beginning: it is easier to have one language first implemented 
-in the conventional way and then add another language of the
-same family by aprametrization. This means that the copy and
-paste method is still used, but at this time the differences
-are put into an <CODE>interface</CODE> module. 
-</P>
-<A NAME="toc25"></A>
-<H2>Character encoding and transliterations</H2>
-<P>
-This section is relevant for languages using a non-ASCII character set. 
-</P>
-<A NAME="toc26"></A>
-<H2>Coding conventions in GF</H2>
-<P>
-From version 3.0, GF follows a simple encoding convention:
-</P>
-<UL>
-<LI>GF source files may follow any encoding, such as isolatin-1 or UTF-8;
-  the default is isolatin-1, and UTF8 must be indicated by the judgement
-<PRE>
-      flags coding = utf8 ;
-</PRE>
-  in each source module.
-<LI>for internal processing, all characters are converted to 16-bit unicode, 
-  as the first step of grammar compilation guided by the <CODE>coding</CODE> flag
-<LI>as the last step of compilation, all characters are converted to UTF-8
-<LI>thus, GF object files (<CODE>gfo</CODE>) and the Portable Grammar Format (<CODE>pgf</CODE>)
-  are in UTF-8
-</UL>
-
-<P>
-Most current resource grammars use isolatin-1 in the source, but this does
-not affect their use in parallel with grammars written in other encodings.
-In fact, a grammar can be put up from modules using different codings.
-</P>
-<P>
-<B>Warning</B>. While string literals may contain any characters, identifiers
-must be isolatin-1 letters (or digits, underscores, or dashes). This has to
-do with the restrictions of the lexer tool that is used.
-</P>
-<A NAME="toc27"></A>
-<H2>Transliterations</H2>
-<P>
-While UTF-8 is well supported by most web browsers, its use in terminals and
-text editors may cause disappointment. Many grammarians therefore prefer to
-use ASCII transliterations. GF 3.0beta2 provides the following built-in
-transliterations:
-</P>
-<UL>
-<LI>Arabic
-<LI>Devanagari (Hindi)
-<LI>Thai
-</UL>
-
-<P>
-New transliterations can be defined in the GF source file
-<A HREF="../src/GF/Text/Transliterations.hs"><CODE>GF/Text/Transliterations.hs</CODE></A>.
-This file also gives instructions on how new ones are added.
-</P>
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -\-toc Resource-HOWTO.txt -->
-</BODY></HTML>
diff --git a/doc/Resource-HOWTO.txt b/doc/Resource-HOWTO.txt
deleted file mode 100644
--- a/doc/Resource-HOWTO.txt
+++ /dev/null
@@ -1,827 +0,0 @@
-Resource grammar writing HOWTO
-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 -thtml Resource-HOWTO.txt
-
-%!target:html
-
-**History**
-
-September 2008: updated for Version 1.5.
-
-October 2007: updated for Version 1.2.
-
-January 2006: first version.
-
-
-The purpose of this document is to tell how to implement the GF
-resource grammar API for a new language. We will //not// cover how
-to use the resource grammar, nor how to change the API. But we
-will give some hints how to extend the API.
-
-A manual for using the resource grammar is found in
-
-[``www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/doc/synopsis.html`` ../lib/resource/doc/synopsis.html].
-
-A tutorial on GF, also introducing the idea of resource grammars, is found in
-
-[``www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-tutorial.html`` ./gf-tutorial.html].
-
-This document concerns the API v. 1.5, while the current stable release is 1.4. 
-You can find the code for the stable release in 
-
-[``www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/`` ../lib/resource]
-
-and the next release in
-
-[``www.cs.chalmers.se/Cs/Research/Language-technology/GF/next-lib/src/`` ../next-lib/src]
-
-It is recommended to build new grammars to match the next release.
-
-
-
-
-==The resource grammar structure==
-
-The library is divided into a bunch of modules, whose dependencies
-are given in the following figure.
-
-[Syntax.png] 
-
-Modules of different kinds are distinguished as follows:
-- solid contours: module seen by end users
-- dashed contours: internal module
-- ellipse: abstract/concrete pair of modules
-- rectangle: resource or instance
-- diamond: interface
-
-
-Put in another way:
-- solid rectangles and diamonds: user-accessible library API
-- solid ellipses: user-accessible top-level grammar for parsing and linearization
-- dashed contours: not visible to users
-
-
-The dashed ellipses form the main parts of the implementation, on which the resource
-grammar programmer has to work with. She also has to work on the ``Paradigms``
-module. The rest of the modules can be produced mechanically from corresponding
-modules for other languages, by just changing the language codes appearing in
-their module headers.
-
-The module structure is rather flat: most modules are direct
-parents of ``Grammar``. The idea
-is that the implementors can concentrate on one linguistic aspect at a time, or
-also distribute the work among several authors. The module ``Cat``
-defines the "glue" that ties the aspects together - a type system
-to which all the other modules conform, so that e.g. ``NP`` means
-the same thing in those modules that use ``NP``s and those that
-constructs them.
-
-
-===Library API modules===
-
-For the user of the library, these modules are the most important ones.
-In a typical application, it is enough to open ``Paradigms`` and ``Syntax``.
-The module ``Try`` combines these two, making it possible to experiment
-with combinations of syntactic and lexical constructors by using the
-``cc`` command in the GF shell. Here are short explanations of each API module:
-- ``Try``: the whole resource library for a language (``Paradigms``, ``Syntax``,
-  ``Irreg``, and ``Extra``); 
-  produced mechanically as a collection of modules
-- ``Syntax``: language-independent categories, syntax functions, and structural words;
-  produced mechanically as a collection of modules
-- ``Constructors``: language-independent syntax functions and structural words;
-  produced mechanically via functor instantiation
-- ``Paradigms``: language-dependent morphological paradigms
-
-
-
-
-
-===Phrase category modules===
-
-The immediate parents of ``Grammar`` will be called **phrase category modules**,
-since each of them concentrates on a particular phrase category (nouns, verbs,
-adjectives, sentences,...). A phrase category module tells 
-//how to construct phrases in that category//. You will find out that
-all functions in any of these modules have the same value type (or maybe
-one of a small number of different types). Thus we have
-- ``Noun``: construction of nouns and noun phrases
-- ``Adjective``: construction of adjectival phrases
-- ``Verb``: construction of verb phrases
-- ``Adverb``: construction of adverbial phrases
-- ``Numeral``: construction of cardinal and ordinal numerals
-- ``Sentence``: construction of sentences and imperatives
-- ``Question``: construction of questions
-- ``Relative``: construction of relative clauses
-- ``Conjunction``: coordination of phrases
-- ``Phrase``: construction of the major units of text and speech
-- ``Text``: construction of texts as sequences of phrases
-- ``Idiom``: idiomatic expressions such as existentials
-
-
-
-
-===Infrastructure modules===
-
-Expressions of each phrase category are constructed in the corresponding
-phrase category module. But their //use// takes mostly place in other modules.
-For instance, noun phrases, which are constructed in ``Noun``, are
-used as arguments of functions of almost all other phrase category modules. 
-How can we build all these modules independently of each other?
-
-As usual in typeful programming, the //only// thing you need to know
-about an object you use is its type. When writing a linearization rule
-for a GF abstract syntax function, the only thing you need to know is
-the linearization types of its value and argument categories. To achieve
-the division of the resource grammar to several parallel phrase category modules,
-what we need is an underlying definition of the linearization types. This
-definition is given as the implementation of
-- ``Cat``: syntactic categories of the resource grammar
-
-
-Any resource grammar implementation has first to agree on how to implement
-``Cat``. Luckily enough, even this can be done incrementally: you
-can skip the ``lincat`` definition of a category and use the default
-``{s : Str}`` until you need to change it to something else. In
-English, for instance, many categories do have this linearization type.
-
-
-
-===Lexical modules===
-
-What is lexical and what is syntactic is not as clearcut in GF as in
-some other grammar formalisms. Logically, lexical means atom, i.e. a
-``fun`` with no arguments. Linguistically, one may add to this
-that the ``lin`` consists of only one token (or of a table whose values
-are single tokens). Even in the restricted lexicon included in the resource
-API, the latter rule is sometimes violated in some languages. For instance,
-``Structural.both7and_DConj`` is an atom, but its linearization is
-two words e.g. //both - and//.
-
-Another characterization of lexical is that lexical units can be added
-almost //ad libitum//, and they cannot be defined in terms of already
-given rules. The lexical modules of the resource API are thus more like
-samples than complete lists. There are two such modules:
-- ``Structural``: structural words (determiners, conjunctions,...)
-- ``Lexicon``: basic everyday content words (nouns, verbs,...)
-
-
-The module ``Structural`` aims for completeness, and is likely to
-be extended in future releases of the resource. The module ``Lexicon``
-gives a "random" list of words, which enables testing the syntax.
-It also provides a check list for morphology, since those words are likely to include
-most morphological patterns of the language.
-
-In the case of ``Lexicon`` it may come out clearer than anywhere else
-in the API that it is impossible to give exact translation equivalents in
-different languages on the level of a resource grammar. This is no problem,
-since application grammars can use the resource in different ways for
-different languages.
-
-
-==Language-dependent syntax modules==
-
-In addition to the common API, there is room for language-dependent extensions
-of the resource. The top level of each languages looks as follows (with German 
-as example):
-```
-  abstract AllGerAbs = Lang, ExtraGerAbs, IrregGerAbs
-```
-where ``ExtraGerAbs`` is a collection of syntactic structures specific to German,
-and ``IrregGerAbs`` is a dictionary of irregular words of German 
-(at the moment, just verbs). Each of these language-specific grammars has 
-the potential to grow into a full-scale grammar of the language. These grammar
-can also be used as libraries, but the possibility of using functors is lost.
-
-To give a better overview of language-specific structures, 
-modules like ``ExtraGerAbs``
-are built from a language-independent module ``ExtraAbs`` 
-by restricted inheritance:
-```
-  abstract ExtraGerAbs = Extra [f,g,...]
-```
-Thus any category and function in ``Extra`` may be shared by a subset of all
-languages. One can see this set-up as a matrix, which tells 
-what ``Extra`` structures
-are implemented in what languages. For the common API in ``Grammar``, the matrix
-is filled with 1's (everything is implemented in every language).
-
-In a minimal resource grammar implementation, the language-dependent
-extensions are just empty modules, but it is good to provide them for
-the sake of uniformity.
-
-
-
-===The present-tense fragment===
-
-Some lines in the resource library are suffixed with the comment
-```
-  --# notpresent
-```
-which is used by a preprocessor to exclude those lines from 
-a reduced version of the full resource. This present-tense-only
-version is useful for applications in most technical text, since
-they reduce the grammar size and compilation time. It can also
-be useful to exclude those lines in a first version of resource
-implementation. To compile a grammar with present-tense-only, use
-```
-  make Present
-```
-with ``resource/Makefile``.
-
-
-
-==Phases of the work==
-
-===Putting up a directory===
-
-Unless you are writing an instance of a parametrized implementation
-(Romance or Scandinavian), which will be covered later, the
-simplest way is to follow roughly the following procedure. Assume you
-are building a grammar for the German language. Here are the first steps,
-which we actually followed ourselves when building the German implementation
-of resource v. 1.0 at Ubuntu linux. We have slightly modified them to
-match resource v. 1.5 and GF v. 3.0.
-
-+ Create a sister directory for ``GF/lib/resource/english``, named
-     ``german``.
-```
-       cd GF/lib/resource/
-       mkdir german
-       cd german
-```
-
-+ Check out the [ISO 639 3-letter language code 
-   http://www.w3.org/WAI/ER/IG/ert/iso639.htm] 
-   for German: both ``Ger`` and ``Deu`` are given, and we pick ``Ger``.
-   (We use the 3-letter codes rather than the more common 2-letter codes,
-    since they will suffice for many more languages!)
-
-+ Copy the ``*Eng.gf`` files from ``english`` ``german``,
-     and rename them:
-```
-       cp ../english/*Eng.gf .
-       rename 's/Eng/Ger/' *Eng.gf
-```
-  If you don't have the ``rename`` command, you can use a bash script with ``mv``.
-
-
-+ Change the ``Eng`` module references to ``Ger`` references
-     in all files:
-```
-       sed -i 's/English/German/g' *Ger.gf
-       sed -i 's/Eng/Ger/g' *Ger.gf
-```
-  The first line prevents changing the word ``English``, which appears
-  here and there in comments, to ``Gerlish``. The ``sed`` command syntax
-  may vary depending on your operating system.
-
-+ This may of course change unwanted occurrences of the 
-     string ``Eng`` - verify this by
-```
-       grep Ger *.gf
-```
-     But you will have to make lots of manual changes in all files anyway!
-
-+ Comment out the contents of these files:
-``` 
-       sed -i 's/^/--/' *Ger.gf
-```
-     This will give you a set of templates out of which the grammar
-     will grow as you uncomment and modify the files rule by rule.
-
-+ In all ``.gf`` files, uncomment the module headers and brackets,
-  leaving the module bodies commented. Unfortunately, there is no
-  simple way to do this automatically (or to avoid commenting these
-  lines in the previous step) - but uncommenting the first
-  and the last lines will actually do the job for many of the files.
-
-+ Uncomment the contents of the main grammar file:
-``` 
-       sed -i 's/^--//' LangGer.gf
-```
-
-+ Now you can open the grammar ``LangGer`` in GF:
-``` 
-       gf LangGer.gf
-```
-  You will get lots of warnings on missing rules, but the grammar will compile.
-
-+ At all the following steps you will now have a valid, but incomplete
-     GF grammar. The GF command
-``` 
-       pg -missing
-```
-     tells you what exactly is missing.
-
-
-Here is the module structure of ``LangGer``. It has been simplified by leaving out
-the majority of the phrase category modules. Each of them has the same dependencies
-as ``VerbGer``, whose complete dependencies are shown as an example.
-
-[German.png]
-
-
-===Direction of work===
-
-The real work starts now. There are many ways to proceed, the most obvious ones being
-- Top-down: start from the module ``Phrase`` and go down to ``Sentence``, then
-  ``Verb``, ``Noun``, and in the end ``Lexicon``. In this way, you are all the time
-  building complete phrases, and add them with more content as you proceed.
-  **This approach is not recommended**. It is impossible to test the rules if
-  you have no words to apply the constructions to.
-
-- Bottom-up: set as your first goal to implement ``Lexicon``. To this end, you
-  need to write ``ParadigmsGer``, which in turn needs parts of 
-  ``MorphoGer`` and ``ResGer``.
-  **This approach is not recommended**. You can get stuck to details of
-  morphology such as irregular words, and you don't have enough grasp about
-  the type system to decide what forms to cover in morphology.
-
-
-The practical working direction is thus a saw-like motion between the morphological
-and top-level modules. Here is a possible course of the work that gives enough
-test data and enough general view at any point:
-+ Define ``Cat.N`` and the required parameter types in ``ResGer``. As we define
-```
-  lincat N  = {s : Number => Case => Str ; g : Gender} ;
-```
-we need the parameter types ``Number``, ``Case``, and ``Gender``. The definition
-of ``Number`` in [``common/ParamX``  ../lib/resource/common/ParamX.gf] 
-works for German, so we
-use it and just define ``Case`` and ``Gender`` in ``ResGer``.
-
-+ Define some cases of ``mkN`` in ``ParadigmsGer``. In this way you can 
-already implement a huge amount of nouns correctly in ``LexiconGer``. Actually
-just adding the worst-case instance of ``mkN`` (the one taking the most
-arguments) should suffice for every noun - but, 
-since it is tedious to use, you
-might proceed to the next step before returning to morphology and defining the
-real work horse, ``mkN`` taking two forms and a gender.
-
-+ While doing this, you may want to test the resource independently. Do this by
-  starting the GF shell in the ``resource`` directory, by the commands
-```
-  > i -retain german/ParadigmsGer
-  > cc -table mkN "Kirche"
-```
-
-+ Proceed to determiners and pronouns in 
-``NounGer`` (``DetCN UsePron DetQuant NumSg DefArt IndefArt UseN``) and 
-``StructuralGer`` (``i_Pron this_Quant``). You also need some categories and
-parameter types. At this point, it is maybe not possible to find out the final
-linearization types of ``CN``, ``NP``, ``Det``, and ``Quant``, but at least you should
-be able to correctly inflect noun phrases such as //every airplane//:
-```
-  > i german/LangGer.gf
-  > l -table DetCN every_Det (UseN airplane_N)
-
-  Nom: jeder Flugzeug
-  Acc: jeden Flugzeug
-  Dat: jedem Flugzeug
-  Gen: jedes Flugzeugs
-```
-
-+ Proceed to verbs: define ``CatGer.V``,  ``ResGer.VForm``, and
-``ParadigmsGer.mkV``. You may choose to exclude ``notpresent``
-cases at this point. But anyway, you will be able to inflect a good
-number of verbs in ``Lexicon``, such as
-``live_V`` (``mkV "leben"``).
-
-+ Now you can soon form your first sentences: define ``VP`` and
-``Cl`` in ``CatGer``, ``VerbGer.UseV``, and ``SentenceGer.PredVP``.
-Even if you have excluded the tenses, you will be able to produce
-```
-  > i -preproc=./mkPresent german/LangGer.gf
-  > l -table PredVP (UsePron i_Pron) (UseV live_V)
-
-  Pres Simul Pos Main: ich lebe
-  Pres Simul Pos Inv:  lebe ich
-  Pres Simul Pos Sub:  ich lebe
-  Pres Simul Neg Main: ich lebe nicht
-  Pres Simul Neg Inv:  lebe ich nicht
-  Pres Simul Neg Sub:  ich nicht lebe
-```
-You should also be able to parse:
-```
-  > p -cat=Cl "ich lebe"
-  PredVP (UsePron i_Pron) (UseV live_V)
-```
-
-+ Transitive verbs 
-(``CatGer.V2 CatGer.VPSlash ParadigmsGer.mkV2 VerbGer.ComplSlash VerbGer.SlashV2a``) 
-are a natural next step, so that you can
-produce ``ich liebe dich`` ("I love you").
-
-+ Adjectives (``CatGer.A ParadigmsGer.mkA NounGer.AdjCN AdjectiveGer.PositA``) 
-will force you to think about strong and weak declensions, so that you can
-correctly inflect //mein neuer Wagen, dieser neue Wagen// 
-("my new car, this new car"). 
-
-+ Once you have implemented the set
-(``Noun.DetCN Noun.AdjCN Verb.UseV Verb.ComplSlash Verb.SlashV2a Sentence.PredVP),
-you have overcome most of difficulties. You know roughly what parameters
-and dependences there are in your language, and you can now proceed very
-much in the order you please. 
-
-
-
-===The develop-test cycle===
-
-The following develop-test cycle will
-be applied most of the time, both in the first steps described above
-and in later steps where you are more on your own.
-
-+ Select a phrase category module, e.g. ``NounGer``, and uncomment some
-  linearization rules (for instance, ``DetCN``, as above).
-
-+ Write down some German examples of this rule, for instance translations
-     of "the dog", "the house", "the big house", etc. Write these in all their
-     different forms (two numbers and four cases).
-
-+ Think about the categories involved (``CN, NP, N, Det``) and the
-     variations they have. Encode this in the lincats of ``CatGer``.
-     You may have to define some new parameter types in ``ResGer``.
-
-+ To be able to test the construction, 
-     define some words you need to instantiate it
-     in ``LexiconGer``. You will also need some regular inflection patterns
-     in``ParadigmsGer``.
-
-+ Test by parsing, linearization,
-     and random generation. In particular, linearization to a table should
-     be used so that you see all forms produced; the ``treebank`` option
-     preserves the tree
-```
-    > gr -cat=NP -number=20 | l -table -treebank
-```
-
-+ Save some tree-linearization pairs for later regression testing. You can save
-  a gold standard treebank and use the Unix ``diff`` command to compare later
-  linearizations produced from the same list of trees. If you save the trees
-  in a file ``trees``, you can do as follows:
-```
-    > rf -file=trees -tree -lines | l -table -treebank | wf -file=treebank
-```
-
-+ A file with trees testing all resource functions is included in the resource,
-  entitled ``resource/exx-resource.gft``. A treebank can be created from this by
-  the Unix command
-```
-  % runghc Make.hs test langs=Ger
-```
-
-
-
-You are likely to run this cycle a few times for each linearization rule
-you implement, and some hundreds of times altogether. There are roughly
-70 ``cat``s and
-600 ``funs`` in ``Lang`` at the moment; 170 of the ``funs`` are outside the two
-lexicon modules).
-
-
-===Auxiliary modules===
-
-These auxuliary ``resource`` modules will be written by you.
-
-- ``ResGer``: parameter types and auxiliary operations 
-(a resource for the resource grammar!)
-- ``ParadigmsGer``: complete inflection engine and most important regular paradigms
-- ``MorphoGer``: auxiliaries for ``ParadigmsGer`` and ``StructuralGer``. This need
-not be separate from ``ResGer``.
-
-
-These modules are language-independent and provided by the existing resource
-package.
-
-- ``ParamX``: parameter types used in many languages
-- ``CommonX``: implementation of language-uniform categories 
-    such as $Text$ and $Phr$, as well as of
-    the logical tense, anteriority, and polarity parameters
-- ``Coordination``: operations to deal with lists and coordination
-- ``Prelude``: general-purpose operations on strings, records,
-      truth values, etc.
-- ``Predef``: general-purpose operations with hard-coded definitions
-
-
-An important decision is what rules to implement in terms of operations in
-``ResGer``. The **golden rule of functional programming** says:
-- //Whenever you find yourself programming by copy and paste, write a function instead!//. 
-
-
-This rule suggests that an operation should be created if it is to be
-used at least twice. At the same time, a sound principle of **vicinity** says: 
-- //It should not require too much browsing to understand what a piece of code does.//
-
-
-From these two principles, we have derived the following practice:
-- If an operation is needed //in two different modules//, 
-  it should be created in as an ``oper`` in ``ResGer``. An example is ``mkClause``, 
-  used in ``Sentence``, ``Question``, and ``Relative``-
-- If an operation is needed //twice in the same module//, but never
-  outside, it should be created in the same module. Many examples are
-  found in ``Numerals``.
-- If an operation is needed //twice in the same judgement//, but never
-  outside, it should be created by a ``let`` definition. 
-- If an operation is only needed once, it should not be created as an ``oper``, 
-  but rather inlined. However, a ``let`` definition may well be in place just
-  to make the readable. 
-  Most functions in phrase category modules 
-  are implemented in this way. 
-
-
-This discipline is very different from the one followed in early
-versions of the library (up to 0.9). We then valued the principle of
-abstraction more than vicinity, creating layers of abstraction for
-almost everything. This led in practice to the duplication of almost
-all code on the ``lin`` and ``oper`` levels, and made the code
-hard to understand and maintain.
-
-
-
-===Morphology and lexicon===
-
-The paradigms needed to implement
-``LexiconGer`` are defined in
-``ParadigmsGer``.
-This module provides high-level ways to define the linearization of
-lexical items, of categories ``N, A, V`` and their complement-taking
-variants.
-
-For ease of use, the ``Paradigms`` modules follow a certain
-naming convention. Thus they for each lexical category, such as ``N``,
-the overloaded functions, such as ``mkN``, with the following cases:
-
-- the worst-case construction of ``N``. Its type signature
-     has the form
-```
-       mkN : Str -> ... -> Str -> P -> ... -> Q -> N
-```
-     with as many string and parameter arguments as can ever be needed to
-     construct an ``N``.
-- the most regular cases, with just one string argument:
-```
-       mkN : Str -> N
-```
-- A language-dependent (small) set of functions to handle mild irregularities
-     and common exceptions.
-
-
-For the complement-taking variants, such as ``V2``, we provide
-- a case that takes a ``V`` and all necessary arguments, such
-     as case and preposition:
-```
-       mkV2 : V -> Case -> Str -> V2 ;
-```
-- a case that takes a ``Str`` and produces a transitive verb with the direct
-  object case:
-```
-       mkV2 : Str -> V2 ;
-```
-- A language-dependent (small) set of functions to handle common special cases,
-  such as transitive verbs that are not regular:
-```
-       mkV2 : V -> V2 ;
-```
-
-
-The golden rule for the design of paradigms is that
-- //The user of the library will only need function applications with constants and strings, never any records or tables.//
-
-
-The discipline of data abstraction moreover requires that the user of the resource
-is not given access to parameter constructors, but only to constants that denote 
-them. This gives the resource grammarian the freedom to change the underlying
-data representation if needed. It means that the ``ParadigmsGer`` module has
-to define constants for those parameter types and constructors that 
-the application grammarian may need to use, e.g.
-```
-  oper 
-    Case : Type ;
-    nominative, accusative, genitive, dative : Case ;
-```
-These constants are defined in terms of parameter types and constructors
-in ``ResGer`` and ``MorphoGer``, which modules are not
-visible to the application grammarian.
-
-
-===Lock fields===
-
-An important difference between ``MorphoGer`` and
-``ParadigmsGer`` is that the former uses "raw" record types
-for word classes, whereas the latter used category symbols defined in
-``CatGer``. When these category symbols are used to denote
-record types in a resource modules, such as ``ParadigmsGer``,
-a **lock field** is added to the record, so that categories
-with the same implementation are not confused with each other.
-(This is inspired by the ``newtype`` discipline in Haskell.)
-For instance, the lincats of adverbs and conjunctions are the same
-in ``CommonX`` (and therefore in ``CatGer``, which inherits it):
-```
-  lincat Adv  = {s : Str} ;
-  lincat Conj = {s : Str} ;
-```
-But when these category symbols are used to denote their linearization 
-types in resource module, these definitions are translated to
-```
-  oper Adv  : Type = {s : Str  ; lock_Adv  : {}} ;
-  oper Conj : Type = {s : Str} ; lock_Conj : {}} ;
-```
-In this way, the user of a resource grammar cannot confuse adverbs with
-conjunctions. In other words, the lock fields force the type checker
-to function as grammaticality checker.
-
-When the resource grammar is ``open``ed in an application grammar, the
-lock fields are never seen (except possibly in type error messages),
-and the application grammarian should never write them herself. If she
-has to do this, it is a sign that the resource grammar is incomplete, and
-the proper way to proceed is to fix the resource grammar.
-
-The resource grammarian has to provide the dummy lock field values
-in her hidden definitions of constants in ``Paradigms``. For instance,
-```
-  mkAdv : Str -> Adv ;
-  -- mkAdv s = {s = s ; lock_Adv = <>} ;
-```
-
-
-===Lexicon construction===
-
-The lexicon belonging to ``LangGer`` consists of two modules:
-- ``StructuralGer``, structural words, built by using both
-  ``ParadigmsGer`` and ``MorphoGer``.
-- ``LexiconGer``, content words, built by using ``ParadigmsGer`` only.
-
-
-The reason why ``MorphoGer`` has to be used in ``StructuralGer``
-is that ``ParadigmsGer`` does not contain constructors for closed
-word classes such as pronouns and determiners. The reason why we
-recommend ``ParadigmsGer`` for building ``LexiconGer`` is that
-the coverage of the paradigms gets thereby tested and that the
-use of the paradigms in ``LexiconGer`` gives a good set of examples for
-those who want to build new lexica.
-
-
-
-
-
-==Lexicon extension==
-
-===The irregularity lexicon===
-
-It is useful in most languages to provide a separate module of irregular
-verbs and other words which are difficult for a lexicographer
-to handle. There are usually a limited number of such words - a
-few hundred perhaps. Building such a lexicon separately also
-makes it less important to cover //everything// by the
-worst-case variants of the paradigms ``mkV`` etc.
-
-
-
-===Lexicon extraction from a word list===
-
-You can often find resources such as lists of 
-irregular verbs on the internet. For instance, the
-Irregular German Verb page 
-previously found in 
-``http://www.iee.et.tu-dresden.de/~wernerr/grammar/verben_dt.html``
-page gives a list of verbs in the
-traditional tabular format, which begins as follows:
-```
-  backen (du bäckst, er bäckt)                   backte [buk]              gebacken
-  befehlen (du befiehlst, er befiehlt; befiehl!) befahl (beföhle; befähle) befohlen
-  beginnen                                       begann (begönne; begänne) begonnen
-  beißen                                         biß                       gebissen
-```
-All you have to do is to write a suitable verb paradigm
-```
-  irregV : (x1,_,_,_,_,x6 : Str) -> V ;
-```
-and a Perl or Python or Haskell script that transforms
-the table to
-```
-  backen_V   = irregV "backen" "bäckt" "back" "backte" "backte" "gebacken" ;
-  befehlen_V = irregV "befehlen" "befiehlt" "befiehl" "befahl" "beföhle" "befohlen" ;
-```
-
-When using ready-made word lists, you should think about
-coyright issues. All resource grammar material should
-be provided under GNU Lesser General Public License (LGPL).
-
-
-
-===Lexicon extraction from raw text data===
-
-This is a cheap technique to build a lexicon of thousands
-of words, if text data is available in digital format.
-See the [Extract Homepage http://www.cs.chalmers.se/~markus/extract/] 
-homepage for details.
-
-
-===Bootstrapping with smart paradigms===
-
-This is another cheap technique, where you need as input a list of words with
-part-of-speech marking. You initialize the lexicon by using the one-argument
-``mkN`` etc paradigms, and add forms to those words that do not come out right.
-This procedure is described in the paper
-
-A. Ranta.
-How predictable is Finnish morphology? An experiment on lexicon construction.
-In J. Nivre, M. Dahllöf and B. Megyesi (eds),
-//Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein//,
-University of Uppsala,
-2008.
-Available from the [series homepage http://publications.uu.se/abstract.xsql?dbid=8933]
-
-
-
-
-==Extending the resource grammar API==
-
-Sooner or later it will happen that the resource grammar API
-does not suffice for all applications. A common reason is
-that it does not include idiomatic expressions in a given language.
-The solution then is in the first place to build language-specific
-extension modules, like ``ExtraGer``. 
-
-==Using parametrized modules==
-
-===Writing an instance of parametrized resource grammar implementation===
-
-Above we have looked at how a resource implementation is built by
-the copy and paste method (from English to German), that is, formally
-speaking, from scratch. A more elegant solution available for 
-families of languages such as Romance and Scandinavian is to
-use parametrized modules. The advantages are
-- theoretical: linguistic generalizations and insights
-- practical: maintainability improves with fewer components
-
-
-Here is a set of
-[slides http://www.cs.chalmers.se/~aarne/geocal2006.pdf]
-on the topic.
-
-
-===Parametrizing a resource grammar implementation===
-
-This is the most demanding form of resource grammar writing.
-We do //not// recommend the method of parametrizing from the
-beginning: it is easier to have one language first implemented 
-in the conventional way and then add another language of the
-same family by aprametrization. This means that the copy and
-paste method is still used, but at this time the differences
-are put into an ``interface`` module. 
-
-
-==Character encoding and transliterations==
-
-This section is relevant for languages using a non-ASCII character set. 
-
-==Coding conventions in GF==
-
-From version 3.0, GF follows a simple encoding convention:
-- GF source files may follow any encoding, such as isolatin-1 or UTF-8;
-  the default is isolatin-1, and UTF8 must be indicated by the judgement
-```
-    flags coding = utf8 ;
-``` 
-  in each source module.
-- for internal processing, all characters are converted to 16-bit unicode, 
-  as the first step of grammar compilation guided by the ``coding`` flag
-- as the last step of compilation, all characters are converted to UTF-8
-- thus, GF object files (``gfo``) and the Portable Grammar Format (``pgf``)
-  are in UTF-8
-
-
-Most current resource grammars use isolatin-1 in the source, but this does
-not affect their use in parallel with grammars written in other encodings.
-In fact, a grammar can be put up from modules using different codings.
-
-**Warning**. While string literals may contain any characters, identifiers
-must be isolatin-1 letters (or digits, underscores, or dashes). This has to
-do with the restrictions of the lexer tool that is used.
-
-
-==Transliterations==
-
-While UTF-8 is well supported by most web browsers, its use in terminals and
-text editors may cause disappointment. Many grammarians therefore prefer to
-use ASCII transliterations. GF 3.0beta2 provides the following built-in
-transliterations:
-- Arabic
-- Devanagari (Hindi)
-- Thai
-
-
-New transliterations can be defined in the GF source file
-[``GF/Text/Transliterations.hs`` ../src/GF/Text/Transliterations.hs].
-This file also gives instructions on how new ones are added.
-
-
-
-
-
diff --git a/doc/Syntax.png b/doc/Syntax.png
deleted file mode 100644
Binary files a/doc/Syntax.png and /dev/null differ
diff --git a/doc/TODO b/doc/TODO
deleted file mode 100644
--- a/doc/TODO
+++ /dev/null
@@ -1,231 +0,0 @@
-
-* Some notes on the syntax of this file, making it possible to use todoo-mode.el:
-
-- Items start with "* "
-- Sub-items start with "- "
-- It should be noted somewhere in the item, who has reported the item
-   Suggestion: Add "[who]" at the beginning of the item title
-   (then one can use "assign item" in todoo-mode)
-- Each item should have a priority
-   Suggestion: Add "URGENT", "IMPORTANT" or "WISH" at the beginning of
-   the item title
-- Sort the items in priority order
-   (todoo-mode can move an item up or down)
-
-----------------------------------------------------------------------
-
-
-* [peb] URGENT: Error messages for syntax errors
-
-   When a syntax error is reported, it should be noted which file it
-   is. Otherwise it is impossible to know where the error is 
-   (if one uses the -s flag):
-
-   	> i -s Domain/MP3/Domain_MP_Semantics.gf
-   	syntax error at line 33 before ve , Proposition ,
-
-   There's no problem with other kinds of errors:
-
-	> i -s Domain/MP3/Domain_MP_Semantics.gf
-	checking module Godis_Semantics
-	Happened in linearization of userMove :
-	product expected instead of {
-	  pl : Str 
-	}
-
-
-* [peb] IMPORTANT: Add the -path of a module to daughter modules
-
-   Then the main module does not have to know where all grandchildren are:
-
-   file A.gf:
-   abstract A = B ** {...}
-
-   file B.gf:
-   --# -path=./resource
-   abstract B = Lang ** {...}
-
-   I.e.: the file A.gf should not need to know that B.gf uses the
-   resource library.
-
-
-* [peb] IMPORTANT: incomplete concrete and interfaces
-
-- The following works in GF:
-
-   incomplete concrete TestDI of TestA = open (C=TestCI) in {
-     lincat A = TestCI.A ** {p : Str};
-     lin f = TestCI.f ** {p = "f"};
-         g = TestCI.g ** {p = "g"};
-   }
-
-   > i -src TestDE.gf
-
-- BUT, if we exchange "TestCI" for "C" we get an error:
-
-   incomplete concrete TestDI of TestA = open (C=TestCI) in {
-     lincat A = C.A ** {p : Str};
-     lin f = C.f ** {p = "f"};
-         g = C.g ** {p = "g"};
-   }
-
-   > i -src TestDE.gf
-   compiling TestDE.gf... failed to find C
-   OCCURRED IN
-   atomic term C given TestCE TestCI TestCE TestDE
-   OCCURRED IN
-   renaming definition of f
-   OCCURRED IN
-   renaming module TestDE
-
-- the other modules:
-
-   abstract TestA = {
-     cat A;
-     fun f, g : A;
-   }
-
-   instance TestBE of TestBI = {
-     oper hello = "hello";
-          bye  = "bye";
-   }
-
-   interface TestBI = {
-   oper hello : Str;
-        bye : Str;
-   }
-
-   concrete TestCE of TestA = TestCI with (TestBI = TestBE);
-
-   incomplete concrete TestCI of TestA = open TestBI in {
-   lincat A = {s : Str};
-   lin f = {s = hello};
-       g = {s = bye};
-   }
-
-   concrete TestDE of TestA = TestDI with (TestCI = TestCE);
-
-* [peb] IMPORTANT: Missing things in the help command
-
-   > h -printer
-   (the flag -printer=cfgm is missing)
-   
-   > h -cat
-   WARNING: invalid option: cat
-
-   > h -lang
-   WARNING: invalid option: lang
-
-   > h -language
-   WARNING: invalid option: language
-
-   > h -parser
-   WARNING: invalid option: parser
-
-   > h -aslkdjaslkdjss
-   WARNING: invalid option: aslkdjaslkdjss
-   Command not found.
-   (it should note: "option not found")
-
-   > h -optimize
-   WARNING: invalid option: optimize
-
-   > h -startcat
-   WARNING: invalid option: startcat
-
-   > h h
-   h, help: h Command?
-   (it should also mention "h -option")
-
-
-* [peb] IMPORTANT: Set GF_LIb-PATH within GF 
-
-   > sf libpath=~/GF/lib
-
-
-* [peb] IMPORTANT: Set the starting category with "sf"
-
-   > sf startcat=X
-
-
-* [peb] IMPORTANT: import-flags 
-
-- There are some inconsistencies when importing grammars:
-   
-   1. when doing "pg -printer=cfg", one must have used "i -conversion=finite",
-   since "pg" doesn't care about the flags that are set in the grammar file
-
-   2. when doing "pm -printer=cfgm", one must have set the flag
-   "conversion=finite" within the grammar file, since "pm" doesn't
-   care about the flags to the import command
-
-   (I guess it's me (peb) who should fix this, but I don't know where
-   the different flags reside...)
-
-- Also, it must be decided in what cases flags can override other flags:
-
-   a) in the grammar file, e.g. "flags conversion=finite;"
-   b) on the command line, e.g. "> sf conversion=finite"
-   c) as argument to a command, e.g. "> i -conversion=finite file.gf"
-
-- A related issue is to decide the scope of flags:
-
-   Some flags are (or should be) local to the module 
-   (e.g. -coding and -path) 
-   Other flags override daughter flags for daughter modules
-   (e.g. -startcat and -conversion)
-
-* [bringert] IMPORTANT: get right startcat flag when printing CFGM
-   GF.CFGM.PrintCFGrammar.prCanonAsCFGM currently only gets the startcat
-   flag from the top-level concrete module. This might be easier
-   to fix if the multi grammar printers had access to more than just
-   the CanonGrammar. 
-
-* [peb] WISH: generalizing incomplete concrete 
-
-   I want to be able to open an incomplete concrete module
-   inside another incomplete conrete.
-   Then I can instantiate both incompletes at the same time.
-
-* [peb] WISH: _tmpi, _tmpo
-
-   The files _tmpi and _tmpo are never removed when quitting GF.
-   Further suggestion: put them in /tmp or similar.
-
-   peb: när man använder "|" till ett systemanrop, t.ex:
-   pg | ! sort
-   så skapas filerna _tmpi och _tmpo. Men de tas aldrig bort.
-
-   peb: Ännu bättre: ta bort filerna efteråt.
-
-   aarne: Sant: när GF quittas (om detta inte sker onormalt).
-   Eller när kommandot har kört färdigt (om det terminerar).
-
-   peb: Bäst(?): skapa filerna i /tmp eller liknande.
-
-   aarne: Ibland får man skrivrättighetsproblem - och det är
-   inte kul om man måste ange en tmp-path. Och olika
-   användare och gf-processer måste ha unika filnamn.
-   Och vet inte hur det funkar på windows...
-
-   aarne: Ett till alternativ skulle vara att använda handles
-   utan några tmp-filer alls. Men jag har inte hunnit
-   ta reda på hur det går till.
-
-   björn: Lite slumpmässiga tankar:
-   + man kan använda System.Directory.getTemporaryDirectory, så slipper man iaf bry sig om olika plattformsproblem.
-   + sen kan man använda System.IO.openTempFile för att skapa en temporär fil. Den tas dock inte bort när programmet avslutas, så det får man fixa själv.
-   + System.Posix.Temp.mkstemp gör nåt liknande, men dokumentationen är dålig.
-   + biblioteket HsShellScript har lite funktioner för sånt här, se
-   http://www.volker-wysk.de/hsshellscript/apidoc/HsShellScript.html#16
-
-
-* [peb] WISH: Hierarchic modules
-
-   Suggestion by peb: 
-   The module A.B.C is located in the file A/B/C.gf
-   
-   Main advantage: you no longer need to state "--# -path=..." in
-   modules
-
-- How can this be combined with several modules inside one file?  
diff --git a/doc/categories.png b/doc/categories.png
deleted file mode 100644
Binary files a/doc/categories.png and /dev/null differ
diff --git a/doc/compiling-gf.txt b/doc/compiling-gf.txt
deleted file mode 100644
--- a/doc/compiling-gf.txt
+++ /dev/null
@@ -1,750 +0,0 @@
-Compiling GF
-Aarne Ranta
-Proglog meeting, 1 November 2006
-
-% to compile: txt2tags -thtml compiling-gf.txt ; htmls compiling-gf.html
-
-%!target:html
-%!postproc(html): #NEW <!-- NEW -->
-
-#NEW
-
-==The compilation task==
-
-GF is a grammar formalism, i.e. a special purpose programming language
-for writing grammars.
-
-Other grammar formalisms: 
-- BNF, YACC, Happy (grammars for programming languages); 
-- PATR, HPSG, LFG (grammars for natural languages).
-
-
-The grammar compiler prepares a GF grammar for two computational tasks:
-- linearization: take syntax trees to strings
-- parsing: take strings to syntax trees
-
-
-The grammar gives a declarative description of these functionalities,
-on a high abstraction level that improves grammar writing
-productivity.
-
-For efficiency, the grammar is compiled to lower-level formats.
-
-Type checking is another essential compilation phase. Its purpose is
-twofold, as usual:
-- checking the correctness of the grammar
-- type-annotating expressions for code generation
-
-
-#NEW
-
-==Characteristics of GF language==
-
-Functional language with types, both built-in and user-defined.
-```
-  Str : Type
-
-  param Number = Sg | Pl
-
-  param AdjForm = ASg Gender | APl
-
-  Noun : Type = {s : Number => Str ; g : Gender}
-```
-Pattern matching.
-```
-  svart_A = table {
-    ASg _ => "svart" ;
-    _ => "svarta"
-    }
-```
-Higher-order functions.
-
-Dependent types.
-```
-  flip : (a, b, c : Type) -> (a -> b -> c) -> b -> a -> c = 
-    \_,_,_,f,y,x -> f x y ;
-```
-
-
-#NEW
-
-==The module system of GF==
-
-Main division: abstract syntax and concrete syntax
-```
-  abstract Greeting = {
-    cat Greet ;
-    fun Hello : Greet ;
-  }
-
-  concrete GreetingEng of Greeting = {
-    lincat Greet = {s : Str} ;
-    lin Hello = {s = "hello"} ;
-  }
-
-  concrete GreetingIta of Greeting = {
-    param Politeness = Familiar | Polite ;
-    lincat Greet = {s : Politeness => Str} ;
-    lin Hello = {s = table {
-      Familiar => "ciao" ;
-      Polite => "buongiorno"
-    } ;
-  }
-```
-Other features of the module system:
-- extension and opening
-- parametrized modules (cf. ML: signatures, structures, functors)
-
-
-
-
-#NEW
-
-==GF vs. Haskell==
-
-Some things that (standard) Haskell hasn't:
-- records and record subtyping
-- regular expression patterns
-- dependent types
-- ML-style modules 
-
-
-Some things that GF hasn't:
-- infinite (recursive) data types
-- recursive functions
-- classes, polymorphism
-
-
-#NEW
-
-==GF vs. most linguistic grammar formalisms==
-
-GF separates abstract syntax from concrete syntax.
-
-GF has a module system with separate compilation.
-
-GF is generation-oriented (as opposed to parsing).
-
-GF has unidirectional matching (as opposed to unification).
-
-GF has a static type system (as opposed to a type-free universe).
-
-"I was - and I still am - firmly convinced that a program composed
-out of statically type-checked parts is more likely to faithfully
-express a well-thought-out design than a program relying on
-weakly-typed interfaces or dynamically-checked interfaces."
-(B. Stroustrup, 1994, p. 107)
-
-
-
-#NEW
-
-==The computation model: abstract syntax==
-
-An abstract syntax defines a free algebra of trees (using
-dependent types, recursion, higher-order abstract syntax: 
-GF includes a complete Logical Framework).
-```
-  cat C (x_1 : A_1)...(x_n : A_n)  
-  a_1 : A_1 
-  ... 
-  a_n : A_n{x_1 : A_1,...,x_n-1 : A_n-1}
-  ----------------------------------------------------
-  (C a_1 ... a_n) : Type 
-
-
-  fun f : (x_1 : A_1) -> ... -> (x_n : A_n) -> A
-  a_1 : A_1 
-  ... 
-  a_n : A_n{x_1 : A_1,...,x_n-1 : A_n-1}
-  ----------------------------------------------------
-  (f a_1 ... a_n) : A{x_1 : A_1,...,x_n : A_n}
-
-
- A : Type  x : A |- B : Type       x : A |- b : B        f : (x : A) -> B   a : A
- ----------------------------   ----------------------   ------------------------
-     (x : A) -> B : Type        \x -> b : (x : A) -> B       f a : B{x := A}
-```
-Notice that all syntax trees are in eta-long form.
-
-
-#NEW
-
-==The computation model: concrete syntax==
-
-A concrete syntax defines a homomorphism (compositional mapping)
-from the abstract syntax to a system of concrete syntax objects.
-```
-  cat C _
-  --------------------
-  lincat C = C* : Type
-
-  fun f : (x_1 : A_1) -> ... -> (x_n : A_n) -> A
-  -----------------------------------------------
-  lin f = f* : A_1* -> ... -> A_n* -> A*
-
-  (f a_1 ... a_n)*  =  f* a_1* ... a_n*
-```
-The homomorphism can as such be used as linearization function.
-
-It is a functional program, but a restricted one, since it works 
-in the end on finite data structures only.
-
-But a more efficient program is obtained via compilation to 
-GFC = Canonical GF: the "machine code" of GF.
-
-The parsing problem of GFC can be reduced to that of MPCFG (Multiple
-Parallel Context Free Grammars), see P. Ljunglöf's thesis (2004).
-
-
-
-#NEW
-
-==The core type system of concrete syntax: basic types==
-
-```
-                   param P      P : PType
-  PType : Type    ---------     ---------
-                  P : PType      P : Type
-
-                                          s : Str  t : Str
-  Str : type     "foo" : Str   [] : Str   ----------------
-                                            s ++ t : Str
-```
-
-
-#NEW
-
-==The core type system of concrete syntax: functions and tables==
-
-```
- A : Type  x : A |- B : Type       x : A |- b : B        f : (x : A) -> B   a : A
- ----------------------------   ----------------------   ------------------------
-     (x : A) -> B : Type        \x -> b : (x : A) -> B       f a : B{x := A}
-
-
-        P : PType   A : Type      t : P => A  p : p
-        --------------------      -----------------
-            P => A : Type            t ! p : A
-
-                   v_1,...,v_n : A
-       ---------------------------------------------- P = {C_1,...,C_n}
-       table {C_1 => v_1 ; ... ; C_n => v_n} : P => A 
-```
-Pattern matching is treated as an abbreviation for tables. Notice that
-```
-  case e of {...}  ==  table {...} ! e
-```
-
-
-#NEW
-
-==The core type system of concrete syntax: records==
-
-```
-              A_1,...,A_n : Type
-     ------------------------------------ n >= 0
-     {r_1 : A_1 ; ... ; r_n : A_n} : Type
-
-
-                 a_1 : A_1  ...  a_n : A_n
-     ------------------------------------------------------------
-     {r_1 = a_1 ; ... ; r_n = a_n} : {r_1 : A_1 ; ... ; r_n : A_n}
-
-
-             r : {r_1 : A_1 ; ... ; r_n : A_n}
-            ----------------------------------- i = 1,...,n
-                          r.r_1 : A_1
-```
-Subtyping: if ``r : R`` then ``r : R ** {r : A}``
-
-
-
-#NEW
-
-==Computation rules==
-
-```
-  (\x -> b) a = b{x := a}
-
-  (table {C_1 => v_1 ; ... ; C_n => v_n} : P => A) ! C_i  =  v_i
-
-  {r_1 = a_1 ; ... ; r_n = a_n}.r_i  =  a_i
-```
-
-
-
-#NEW
-
-==Canonical GF==
-
-Concrete syntax type system:
-```
-                             A_1 : Type ... A_n : Type
-  Str : Type   Int : Type    -------------------------   $i : A
-                               [A_1, ..., A_n] : Type
-
-
-     a_1 : A_1  ...  a_n : A_n         t : [A_1, ..., A_n]
-  ---------------------------------    ------------------- i = 1,..,n
-  [a_1, ..., a_n] : [A_1, ..., A_n]        t ! i : A_i 
-```
-Tuples represent both records and tables.
-
-There are no functions.
-
-Linearization:
-```
-  lin f = f*
-
-  (f a_1 ... a_n)*  =  f*{$1 = a_1*, ..., $n = a_n*} 
-```
-
-
-#NEW
-
-==The compilation task, again==
-
-1. From a GF source grammar, derive a canonical GF grammar.
-
-2. From the canonical GF grammar derive an MPCFG grammar
-
-The canonical GF grammar can be used for linearization, with
-linear time complexity (w.r.t. the size of the tree).
-
-The MPCFG grammar can be used for parsing, with (unbounded)
-polynomial time complexity (w.r.t. the size of the string).
-
-For these target formats, we have also built interpreters in
-different programming languages (C, C++, Haskell, Java, Prolog).
-
-Moreover, we generate supplementary formats such as grammars
-required by various speech recognition systems.
-
-
-#NEW
-
-==An overview of compilation phases==
-
-Legend:
-- ellipse node: representation saved in a file
-- plain text node: internal representation
-- solid arrow or ellipse: essential phare or format
-- dashed arrow or ellipse: optional phase or format
-- arrow label: the module implementing the phase
-
-
-[gf-compiler.png]
-
-
-#NEW
-
-==Using the compiler==
-
-Batch mode (cf. GHC).
-
-Interactive mode, building the grammar incrementally from
-different files, with the possibility of testing them
-(cf. GHCI).
-
-The interactive mode was first, built on the model of ALF-2
-(L. Magnusson), and there was no file output of compiled
-grammars.
-
-
-#NEW
-
-==Modules and separate compilation==
-
-The above diagram shows what happens to each module.
-(But not quite, since some of the back-end formats must be
-built for sets of modules: GFCC and the parser formats.)
-
-When the grammar compiler is called, it has a main module as its
-argument. It then builds recursively a dependency graph with all
-the other modules, and decides which ones must be recompiled.
-The behaviour is rather similar to GHC.
-
-Separate compilation is //extremely important// when developing
-big grammars, especially when using grammar libraries. Example: compiling
-the GF resource grammar library takes 5 minutes, whereas reading
-in the compiled image takes 10 seconds.
-
-
-#NEW
-
-==Module dependencies and recompilation==
-
-(For later use, not for the Proglog talk)
-
-For each module M, there are 3 kinds of files:
-- M.gf, source file
-- M.gfc, compiled file ("object file")
-- M.gfr, type-checked and optimized source file (for resource modules only)
-
-
-The compiler reads gf files and writes gfc files (and gfr files if appropriate)
-
-The Main module is the one used as argument when calling GF.
-
-A module M (immediately) depends on the module K, if either
-- M is a concrete of K
-- M is an instance of K
-- M extends K
-- M opens K
-- M is a completion of K with something
-- M is a completion of some module with K instantiated with something
-
-
-A module M (transitively) depends on the module K, if either
-- M immediately depends on K
-- M depends on some L such that L immediately depends on K
-
-
-Immediate dependence is readable from the module header without parsing
-the whole module.
-
-The compiler reads recursively the headers of all modules that Main depends on.
-
-These modules are arranged in a dependency graph, which is checked to be acyclic.
-
-To decide whether a module M has to be compiled, do:
-+ Get the time stamps t() of M.gf and M.gfc (if a file doesn't exist, its
-  time is minus infinity).
-+ If t(M.gf) > t(M.gfc), M must be compiled.
-+ If M depends on K and K must be compiled, then M must be compiled.
-+ If M depends on K and t(K.gf) > t(M.gfc), then M must be compiled.
-
-
-Decorate the dependency graph by information on whether the gf or the gfc (and gfr)
-format is to be read.
-
-Topologically sort the decorated graph, and read each file in the chosen format.
-
-The gfr file is generated for these module types only:
-- resource
-- instance
-
-
-When reading K.gfc, also K.gfr is read if some M depending on K has to be compiled.
-In other cases, it is enough to read K.gfc.
-
-In an interactive GF session, some modules may be in memory already.
-When read to the memory, each module M is given time stamp t(M.m).
-The additional rule now is:
-- If M.gfc is to be read, and t(M.m) > t(M.gfc), don't read M.gfc.
-
-
-
-
-#NEW
-
-==Techniques used==
-
-The compiler is written in Haskell, with some C foreign function calls
-in the interactive version (readline, killing threads).
-
-BNFC is used for generating both the parsers and printers.
-This has helped to make the formats portable.
-
-"Almost compositional functions" (``composOp``) are used in
-many compiler passes, making them easier to write and understand. 
-A ``grep`` on the sources reveals 40 uses (outside the definition 
-of ``composOp`` itself).
-
-The key algorithmic ideas are
-- type-driven partial evaluation in GF-to-GFC generation
-- common subexpression elimination as back-end optimization
-- some ideas in GFC-to-MCFG encoding
-
-
-#NEW
-
-==Type-driven partial evaluation==
-
-Each abstract syntax category in GF has a corresponding linearization type:
-```
-  cat C
-  lincat C = T
-```
-The general form of a GF rule pair is
-```
-  fun f : C1 -> ... -> Cn -> C
-  lin f = t
-```
-with the typing condition following the ``lincat`` definitions
-```
-  t : T1 -> ... -> Tn -> T
-```
-The term ``t`` is in general built by using abstraction methods such
-as pattern matching, higher-order functions, local definitions,
-and library functions.
-
-The compilation technique proceeds as follows:
-- use eta-expansion on ``t`` to determine the canonical form of the term
-```
-  \ $C1, ...., $Cn -> (t $C1 .... $Cn)
-```
-with unique variables ``$C1 .... $Cn`` for the arguments; repeat this
-inside the term for records and tables
-- evaluate the resulting term using the computation rules of GF
-- what remains is a canonical term with ``$C1 .... $Cn`` the only
-variables (the run-time input of the linearization function)
-
-
-#NEW
-
-==Eta-expanding records and tables==
-
-For records that are valied via subtyping, eta expansion 
-eliminates superfluous fields:
-```
-  {r1 = t1 ; r2 = t2} : {r1 : T1}  ---->  {r1 = t1}
-```
-For tables, the effect is always expansion, since
-pattern matching can be used to represent tables
-compactly:
-```
-  table {n => "fish"} : Number => Str   --->
-
-  table {
-    Sg => "fish" ;
-    Pl => "fish"
-    }
-```
-This can be helped by back-end optimizations (see below).
-
-
-#NEW
-
-==Eliminating functions==
-
-"Everything is finite": parameter types, records, tables;
-finite number of string tokens per grammar.
-
-But "inifinite types" such as function types are useful when
-writing grammars, to enable abstractions.
-
-Since function types do not appear in linearization types,
-we want functions to be eliminated from linearization terms.
-
-This is similar to the **subformula property** in logic.
-Also the main problem is similar: function depending on
-a run-time variable,
-```
-  (table {P => f ; Q = g} ! x) a
-```
-This is not a redex, but we can make it closer to one by moving
-the application inside the table,
-```
-  table {P => f a ; Q = g a} ! x
-```
-This transformation is the same as Prawitz's (1965) elimination
-of maximal segments in natural deduction:
-```
-                                            A           B
-                                          C -> D  C   C -> D  C
-           A       B                      ---------   ---------
-  A v B  C -> D  C -> D            A v B       D          D
-  ---------------------     ===>   -------------------------
-      C -> D             C                    D
-      --------------------
-              D
-```
-
-
-
-#NEW
-
-==Size effects of partial evaluation==
-
-Irrelevant table branches are thrown away, which can reduce the size.
-
-But, since tables are expanded and auxiliary functions are inlined,
-the size can grow exponentially.
-
-How can we keep the first property and eliminate the second?
-
-
-#NEW
-
-==Parametrization of tables==
-
-Algorithm: for each branch in a table, consider replacing the
-argument by a variable:
-```
-  table {             table {
-    P => t ;    --->    x => t[P->x] ;
-    Q => u              x => u[Q->x]
-    }                   }
-```
-If the resulting branches are all equal, you can replace the table
-by a lambda abstract
-```
-  \\x => t[P->x]
-```
-If each created variable ``x`` is unique in the grammar, computation
-with the lambda abstract is efficient.
-
-
-
-#NEW
-
-==Course-of-values tables==
-
-By maintaining a canonical order of parameters in a type, we can
-eliminate the left hand sides of branches.
-```
-  table {              table T [
-    P => t ;    --->     t ;
-    Q => u               u
-    }                    ]
-```
-The treatment is similar to ``Enum`` instances in Haskell.
-
-In the end, all parameter types can be translated to
-initial segments of integers.
-
-
-#NEW
-
-==Common subexpression elimination==
-
-Algorithm: 
-+ Go through all terms and subterms in a module, creating
-  a symbol table mapping terms to the number of occurrences.
-+ For each subterm appearing at least twice, create a fresh
-  constant defined as that subterm.
-+ Go through all rules (incl. rules for the new constants),
-  replacing largest possible subterms with such new constants.
-
-
-This algorithm, in a way, creates the strongest possible abstractions.
-
-In general, the new constants have open terms as definitions.
-But since all variables (and constants) are unique, they can
-be computed by simple replacement.
-
-
-
-#NEW
-
-==Size effects of optimizations==
-
-Example: the German resource grammar
-``LangGer``
-
-|| optimization |  lines |  characters |  size % | blow-up |
-| none       |  5394 |  3208435 |   100 |  25 |
-| all        |  5394 |   750277 |    23 |   6 |
-| none_subs  |  5772 |  1290866 |    40 |  10 |
-| all_subs   |  5644 |   414119 |    13 |   3 |
-| gfcc       |  3279 |   190004 |     6 |   1.5 |
-| gf source  |  3976 |   121939 |     4 |   1 |
-
-
-Optimization "all" means parametrization + course-of-values.
-
-The source code size is an estimate, since it includes
-potentially irrelevant library modules, and comments.
-
-The GFCC format is not reusable in separate compilation.
-
-
-
-#NEW
-
-==The shared prefix optimization==
-
-This is currently performed in GFCC only.
-
-The idea works for languages that have a rich morphology
-based on suffixes. Then we can replace a course of values
-with a pair of a prefix and a suffix set:
-```
-  ["apa", "apan", "apor", "aporna"] ---> 
-  ("ap" + ["a", "an", "or", "orna"])
-```
-The real gain comes via common subexpression elimination:
-```
-  _34 = ["a", "an", "or", "orna"]
-  apa = ("ap" + _34)
-  blomma = ("blomm" + _34)
-  flicka = ("flick" + _34)
-```
-Notice that it now matters a lot how grammars are written.
-For instance, if German verbs are treated as a one-dimensional
-table,
-```
-  ["lieben", "liebe", "liebst", ...., "geliebt", "geliebter",...]
-```
-no shared prefix optimization is possible. A better form is
-separate tables for non-"ge" and "ge" forms:
-```
-  [["lieben", "liebe", "liebst", ....], ["geliebt", "geliebter",...]]
-```
-
-
-#NEW
-
-==Reuse of grammars as libraries==
-
-The idea of resource grammars: take care of all aspects of
-surface grammaticality (inflection, agreement, word order).
-
-Reuse in application grammar: via translations
-```
-  cat C          --->  oper C : Type = T
-  lincat C = T 
-
-  fun f : A      --->  oper f : A* = t
-  lin f = t 
-```
-The user only needs to know the type signatures (abstract syntax).
-
-However, this does not quite guarantee grammaticality, because
-different categories can have the same lincat:
-```
-  lincat Conj = {s : Str}
-  lincat Adv  = {s : Str}
-```
-Thus someone may by accident use "and" as an adverb!
-
-
-#NEW
-
-==Forcing the type checker to act as a grammar checker==
-
-We just have to make linearization types unique for each category.
-
-The technique is reminiscent of Haskell's ``newtype`` but uses
-records instead: we add **lock fields** e.g.
-```
-  lincat Conj = {s : Str ; lock_Conj : {}}
-  lincat Adv  = {s : Str ; lock_Adv  : {}}
-```
-Thanks to record subtyping, the translation is simple:
-```
-  fun f : C1 -> ... -> Cn -> C        
-  lin f = t
-
-                  --->
-
-  oper f : C1* -> ... -> Cn* -> C* = 
-    \x1,...,xn -> (t x1 ... xn) ** {lock_C = {}}
-```
-
-#NEW
-
-==Things to do==
-
-Better compression of gfc file format.
-
-Type checking of dependent-type pattern matching in abstract syntax.
-
-Compilation-related modules that need rewriting
-- ``ReadFiles``: clarify the logic of dependencies
-- ``Compile``: clarify the logic of what to do with each module
-- ``Compute``: make the evaluation more efficient
-- ``Parsing/*``, ``OldParsing/*``, ``Conversion/*``: reduce the number
-  of parser formats and algorithms
diff --git a/doc/eu-langs.dot b/doc/eu-langs.dot
deleted file mode 100644
--- a/doc/eu-langs.dot
+++ /dev/null
@@ -1,79 +0,0 @@
-graph{
-
-size = "7,7" ;
-
-overlap = scale ;
-
-"Abs" [label = "Abstract Syntax", style = "solid", shape = "rectangle"] ;
-
-"1"   [label = "Bulgarian", style = "solid", shape = "ellipse", color = "green"] ;
-"1" -- "Abs" [style = "solid"];
-
-"2"   [label = "Czech", style = "solid", shape = "ellipse", color = "red"] ;
-"2" -- "Abs" [style = "solid"];
-
-"3"   [label = "Danish", style = "solid", shape = "ellipse", color = "green"] ;
-"3" -- "Abs" [style = "solid"];
-
-"4"   [label = "German", style = "solid", shape = "ellipse", color = "green"] ;
-"4" -- "Abs" [style = "solid"];
-
-"5"   [label = "Estonian", style = "solid", shape = "ellipse", color = "red"] ;
-"5" -- "Abs" [style = "solid"];
-
-"6"   [label = "Greek", style = "solid", shape = "ellipse", color = "red"] ;
-"6" -- "Abs" [style = "solid"];
-
-"7"   [label = "English", style = "solid", shape = "ellipse", color = "green"] ;
-"7" -- "Abs" [style = "solid"];
-
-"8"   [label = "Spanish", style = "solid", shape = "ellipse", color = "green"] ;
-"8" -- "Abs" [style = "solid"];
-
-"9"   [label = "French", style = "solid", shape = "ellipse", color = "green"] ;
-"9" -- "Abs" [style = "solid"];
-
-"10"   [label = "Italian", style = "solid", shape = "ellipse", color = "green"] ;
-"10" -- "Abs" [style = "solid"];
-
-"11"   [label = "Latvian", style = "solid", shape = "ellipse", color = "red"] ;
-"11" -- "Abs" [style = "solid"];
-
-"12"   [label = "Lithuanian", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "12" [style = "solid"];
-
-"13"   [label = "Irish", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "13" [style = "solid"];
-
-"14"   [label = "Hungarian", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "14" [style = "solid"];
-
-"15"   [label = "Maltese", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "15" [style = "solid"];
-
-"16"   [label = "Dutch", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "16" [style = "solid"];
-
-"17"   [label = "Polish", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "17" [style = "solid"];
-
-"18"   [label = "Portuguese", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "18" [style = "solid"];
-
-"19"   [label = "Slovak", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "19" [style = "solid"];
-
-"20"   [label = "Slovene", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "20" [style = "solid"];
-
-"21"   [label = "Romanian", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "21" [style = "solid"];
-
-"22"   [label = "Finnish", style = "solid", shape = "ellipse", color = "green"] ;
-"Abs" -- "22" [style = "solid"];
-
-"23"   [label = "Swedish", style = "solid", shape = "ellipse", color = "green"] ;
-"Abs" -- "23" [style = "solid"];
-
-
-}
diff --git a/doc/eu-langs.png b/doc/eu-langs.png
deleted file mode 100644
Binary files a/doc/eu-langs.png and /dev/null differ
diff --git a/doc/food-js.png b/doc/food-js.png
deleted file mode 100644
Binary files a/doc/food-js.png and /dev/null differ
diff --git a/doc/food-magnet.png b/doc/food-magnet.png
deleted file mode 100644
Binary files a/doc/food-magnet.png and /dev/null differ
diff --git a/doc/food-translet.png b/doc/food-translet.png
deleted file mode 100644
Binary files a/doc/food-translet.png and /dev/null differ
diff --git a/doc/food1.png b/doc/food1.png
deleted file mode 100644
Binary files a/doc/food1.png and /dev/null differ
diff --git a/doc/food2.png b/doc/food2.png
deleted file mode 100644
Binary files a/doc/food2.png and /dev/null differ
diff --git a/doc/foodmarket.png b/doc/foodmarket.png
deleted file mode 100644
Binary files a/doc/foodmarket.png and /dev/null differ
diff --git a/doc/gf-bibliography.t2t b/doc/gf-bibliography.t2t
new file mode 100644
--- /dev/null
+++ b/doc/gf-bibliography.t2t
@@ -0,0 +1,629 @@
+Grammatical Framework Bibliography
+Aarne Ranta
+%%date(%c)
+
+% NOTE: this is a txt2tags file.
+% Create an html file from this file using:
+% txt2tags -thtml --toc gf-reference.html
+
+%!target:html
+%!postproc(html): #BR <br>
+
+==Publications on GF==
+
+In reverse temporal order:
+
+A. Ranta.
+The GF Resource Grammar Library,
+to appear in the on-line journal //Linguistics in Language Technology//,
+2009.
+#BR
+//A systematic presentation of the library from the linguistic point of view.//
+
+A. Ranta.
+Grammatical Framework: A Multilingual Grammar Formalism, 
+//Language and Linguistics Compass//, 
+Vol. 3, [on-line http://www.blackwell-compass.com/subject/linguistics/article_view?parent=section&last_results=section%3Dlnco-computational&sortby=date&section=lnco-computational&browse_id=lnco_articles_bpl155&article_id=lnco_articles_bpl155]
+2009.
+#BR
+//An overview of GF for readers with a general academic brackground.//
+
+A. Ranta and K. Angelov.
+Implementing Controlled Languages in GF.
+//CNL-2009//,
+//CEUR Workshop Proceedings//,
+vol. 448,
+[on-line http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-448/],
+2009.
+#BR
+//Makes a case for using GF in controlled language implementation, illustrated by Attempto Controlled English ported to French, German, and Swedish.//
+
+A. Ranta. Grammars as Software Libraries.
+In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
+//From Semantics to Computer Science//,
+Cambridge University Press, Cambridge, 
+pp. 281-308,
+2009.
+[pdf (preliminary version) http://www.cs.chalmers.se/~aarne/articles/libraries-kahn.pdf]
+#BR
+//Grammar-libraries from the software engineering point of view, with an example application to mathematical language.//
+
+K. Angelov.
+Incremental Parsing in Parallel Multiple Context-Free Grammars.
+EACL 2009.
+#BR
+//Describes the algorithm used in parsing with GF.//
+
+A. Ranta, B. Bringert, and K. Angelov. 
+The GF Grammar Development Environment. 
+System demo. Proceedings of //EACL-2009//,
+2009.
+#BR
+//An overview of GF from the grammarian's point of view.//
+ 
+B. Bringert, K. Angelov, and A. Ranta. 
+Grammatical Framework Web Service,
+System demo. Proceedings of //EACL-2009//,
+2009.
+#BR
+//An overview of how to build web services on top of PGF using the Google Web Toolkit.//
+
+
+A. Ranta and K. Angelov. 
+Implementing Controlled Languages in GF,
+To appear in the proceedings of //CNL-2009//, LNCS, Springer,
+2009.
+#BR
+//On the use of GF for controlled languages, exemplified by an implementation of Attempto Controlled English then ported to three other language.//
+
+R. Cooper and A. Ranta. 
+Natural Languages as Collections of Resources. 
+In //Language in Flux: Dialogue Coordination, Language Variation, Change//, 
+ed. by R. Cooper and R. Kempson, pp. 109-120. London: College Publications,
+2008.
+#BR
+//The resource grammar idea applied to language learning and evolution.//
+
+Moisés Salvador Meza Moreno and B. Bringert.
+Interactive Multilingual Web Applications with Grammatical Framework.
+In B. Nordström and A. Ranta (eds), 
+//Advances in Natural Language Processing (GoTAL 2008)//, 
+LNCS/LNAI 5221, Springer,
+2008.
+#BR
+//Shows how GF compiled to JavaScript is used in dynamic multilingual web pages.//
+
+Peter Ljunglöf and Staffan Larsson. 
+A grammar formalism for specifying ISU-based dialogue systems.
+In B. Nordström and A. Ranta (eds), 
+//Advances in Natural Language Processing (GoTAL 2008)//, 
+LNCS/LNAI 5221, Springer,
+2008.
+[pdf http://www.ling.gu.se/~peb/pubs/LjunglofLarsson-2008a.pdf]
+#BR
+//Explains how GoDiS dialogue systems are specified by GF grammars.//
+
+K. Angelov.
+Type-Theoretical Bulgarian Grammar.
+In B. Nordström and A. Ranta (eds), 
+//Advances in Natural Language Processing (GoTAL 2008)//, 
+LNCS/LNAI 5221, Springer,
+2008.
+#BR
+//Explains the implementation of a Bulgarian resource grammar in GF.//
+
+B. Bringert.
+High-precision Domain-specific Interlingua-based Speech Translation
+with Grammatical Framework.
+//Coling 2008 Workshop on Speech Translation for Medical and Other Safety-Critical Applications//, 
+Manchester, UK, August 23, 
+2008.
+#BR
+//Shows how to build spoken language translators based on GF grammars and their compilation to Nuance.//
+
+A. Ranta.
+How predictable is Finnish morphology? An experiment on lexicon construction.
+In J. Nivre, M. Dahllöf and B. Megyesi (eds),
+//Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein//,
+University of Uppsala,
+2008.
+Available from [series homepage http://publications.uu.se/abstract.xsql?dbid=8933]
+#BR
+//Presents an experiment on smart paradigms in Finnish.//
+
+A. Ranta.
+Example-based grammar writing.
+To appear in L. Borin and S. Larsson (eds),
+Festschrift for Robin Cooper,
+2007.
+#BR
+//Presents and discusses the ideas of grammar composition and example-based grammar writing.//
+
+B. Bringert.
+Rapid Development of Dialogue Systems by Grammar Compilation.
+//8th SIGdial Workshop on Discourse and Dialogue//, 
+Antwerp, Belgium, September 1-2, 
+2007.
+[pdf http://www.cs.chalmers.se/~bringert/publ/gf-voicexml/gf-voicexml.pdf]
+#BR
+//Shows how to build a web-based spoken dialogue system by generating VoiceXML and JavaScript.//
+
+A. El Dada and A. Ranta.
+Implementing an Open Source Arabic Resource Grammar in GF.
+In M. Mughazy (ed),
+//Perspectives on Arabic Linguistics XX. Papers from the Twentieth Annual Symposium on Arabic Linguistics, Kalamazoo, March 26//
+John Benjamins Publishing Company.
+2007.
+#BR
+//An outline of the Arabic resource grammar project, focusing on linguistic aspects.//
+
+A. El Dada.
+Implementation of the Arabic Numerals and their Syntax in GF.
+Computational Approaches to Semitic Languages: Common Issues and Resources, 
+  ACL-2007 Workshop,
+June 28, 2007, Prague.
+2007.
+#BR
+//A case study with the resource grammar, focusing on the morphosyntax//
+//and agreement of constructions with numerals.//
+
+A. Ranta.
+Modular Grammar Engineering in GF.
+//Research on Language and Computation//, 
+5:133-158, 2007.
+Draft available as [pdf http://www.cs.chalmers.se/~aarne/articles/multieng3.pdf].
+#BR
+//Adapts library-based software engineering methods to grammar writing// 
+//and introduces the module system of GF.//
+
+A. Ranta.
+The GF Grammar Compiler.
+//Workshop on New Directions in Type-theoretic Grammars//,
+Dublin, August 2007 (ESSLLI workshop).
+2007.
+[pdf http://www.cs.chalmers.se/~aarne/articles/ar-compiler.pdf]
+#BR
+//Describes the compilation of GF source code to lower-level run-time formats.//
+
+M. Humayoun, H. Hammarström, and A. Ranta.
+Urdu Morphology, Orthography and Lexicon Extraction.
+//CAASL-2: The Second Workshop on Computational Approaches to Arabic Script-based Languages//,
+July 21-22, 2007, LSA 2007 Linguistic Institute, Stanford University.
+2007.
+#BR
+//Fairly complete open-source Urdu morphology and elemenraty syntax in GF.//
+
+N. Perera and A. Ranta.
+Dialogue System Localization with the GF Resource Grammar Library.
+//SPEECHGRAM 2007: ACL Workshop on Grammar-Based Approaches to Spoken Language Processing//,
+June 29, 2007, Prague.
+2007.
+[pdf http://www.cs.chalmers.se/~aarne/articles/perera-ranta.pdf]
+#BR
+//An experiment in porting an in-car dialogue system from two to six languages.// 
+
+
+B. Bringert.
+Speech Recognition Grammar Compilation in Grammatical Framework
+//SPEECHGRAM 2007: ACL Workshop on Grammar-Based Approaches to Spoken Language Processing//,
+June 29, 2007, Prague.
+2007.
+#BR
+//Generation of speech recognition language models from GF in several formats:// 
+//GSL (Nuance), SRGS, JSGF, and HTK SLF, with embedded semantic interpretation.//
+
+A. Ranta.
+Features in Abstract and Concrete Syntax.
+//The 2nd International Workshop on Typed Feature Structure Grammars//,
+Tartu, 24 May 2007 (NODALIDA workshop).
+2007.
+[pdf http://www.cs.chalmers.se/~aarne/articles/ranta-tfsg2007.pdf]
+#BR
+//Explores the design choices of incorporating features in a GF-like grammar,//
+//with comparisons to feature-based unification grammars.//
+
+
+O. Caprotti and M. Seppälä.
+Multilingual Delivery of Online Tests in mathematics.
+Proceedings of Online Educa Berlin 2006. 29 November - 1 December 2006. 
+  Berlin, Germany.
+2006.
+[pdf http://webalt.math.helsinki.fi/content/e16/e301/e785/MultilingualDeliveryofOnlineTestsinMathematics_eng.pdf]
+#BR
+//This papers shows screenshots of multilingual generation in the//
+//WebALT project, using GF and the resource grammar library.//
+
+J. Khegai. 
+Language engineering in Grammatical Framework (GF).
+Phd thesis, Computer Science, Chalmers University of Technology,
+2006.
+[pdf http://www.cs.chalmers.se/~janna/Janna_Khegai_phd.pdf]
+#BR
+//Collection of articles and technical reports on multilingual authoring//
+//and the Russian resource grammar.//
+
+B. Bringert and A. Ranta.
+A Pattern for Almost Compositional Functions.
+//ICFP 2006, The 11th ACM SIGPLAN International Conference on Functional Programming, Portland, Oregon, September 18-20, 2006//,
+2006.
+[pdf http://www.cs.chalmers.se/~bringert/publ/composOp/composOp.pdf].
+#BR
+//A method of generic programming useful for compiler construction//
+//and transfer-based translation.//
+
+M. Forsberg, H. Hammarstrom, and A. Ranta.
+Morphological Lexicon Extraction from Raw Text Data. 
+//FinTAL 2006//, 
+Turku, August 23-25, 2006.
+Springer LNCS/LNAI 4139,
+pp. 488-499,
+2006.
+#BR
+//A method for automatical production of morphological lexica based//
+//on inflection engines such as those of GF resource grammar library.//
+
+A. Ranta.
+Type Theory and Universal Grammar.
+//Philosophia Scientiae, Constructivism: Mathematics, Logic, Philosophy and Linguistics//,
+cahier spécial 6,
+pp. 115-131,
+2006.
+#BR
+//A philosophical study of the medieval thesis that//
+//grammar is the same in all languages and the difference is only in words.//
+
+J. Khegai. 
+GF parallel resource grammars and Russian.
+In proceedings of ACL2006 
+  (The joint conference of the International Committee on Computational 
+  Linguistics and the Association for Computational Linguistics) (pp. 475-482),
+  Sydney, Australia, July 2006.
+#BR
+//Gives an outline of the Russian resource grammar project.//
+
+J. Khegai. 
+Grammatical Framework (GF) for MT in sublanguage domains. 
+Proceedings of 11th Annual conference of the European Association for 
+      Machine Translation, , Oslo.
+pp. 95-104,
+2005.
+#BR
+//Shows how GF is used in controlled language translation.//
+
+
+
+W. Ng'ang'a. 
+Multilingual content development for eLearning in Africa. 
+eLearning Africa: 1st Pan-African Conference on ICT for Development, 
+  Education and Training. 24-26 May 2006, Addis Ababa, Ethiopia.
+2006.
+[pdf http://webalt.math.helsinki.fi/content/e16/e301/e583/MultilingualContentDevelopmentforeLearninginAfrica-final1_eng.pdf]
+#BR
+//Presents a programme for producing educational material in African languages//
+//via multilingual generation in GF.//
+
+R. Jonson. 
+Generating statistical language models from interpretation grammars in dialogue system. 
+In Proceedings of EACL'06, Trento, Italy.
+2006.
+#BR
+//Uses GF grammars to generate statistical language models for speech recognition.//
+
+A. El Dada and A. Ranta.
+Arabic Resource Grammar.
+//Arabic Language Processing (JETALA)//, 
+5-6 June 2006, IERA, Rabat, Morocco,
+2006.
+#BR
+//An outline of the Arabic resource grammar project, focusing on software aspects.//
+
+D. A. Burke and K. Johannisson.
+Translating Formal Software Specifications to Natural Language. A Grammar-Based Approach.
+In P. Blache, E. Stabler, J. Busquets and R. Moot (eds),
+Logical Aspects of Computational Linguistics (LACL 2005), 
+Springer LNAI 3402, 
+pp. 51-66, 
+2005.
+#BR
+//A paper explaining how a multilingual GF grammar is completed with//
+//Natural Language Generation techniques to improve text quality.//
+
+
+B. Bringert, R. Cooper, P. Ljunglöf, A. Ranta, 
+Multimodal Dialogue System Grammars.
+//Proceedings of DIALOR'05, Ninth Workshop on the Semantics and Pragmatics of Dialogue, Nancy, France, June 9-11, 2005//,
+2005.
+[pdf http://www.cs.chalmers.se/~bringert/publ/mm-grammars-dialor/mm-grammars-dialor.pdf].
+#BR
+//Shows how mouse clicks can be integrated in GF grammars//
+//alongside with speech input.//
+
+
+
+K.  Johannisson,
+Formal and Informal Software Specifications.
+PhD thesis,
+Computer Science, Göteborg University, 
+2005.
+[http://www.cs.chalmers.se/~krijo/thesis/thesisA4.pdf]
+#BR
+//Collection of articles in the GF-KeY project, with an introduction.//
+
+P. Ljunglöf.
+Expressivity and Complexity of the  Grammatical Framework.
+PhD thesis, Computer Science, 
+Göteborg University, 
+2004.
+[pdf http://www.cs.chalmers.se/~peb/pubs/p04-PhD-thesis.pdf]
+#BR
+//Language-theoretical study of GF and its parsing problem.//
+
+A. Ranta.
+Grammatical Framework: A Type-Theoretical Grammar Formalism.
+//Journal of Functional Programming//, 14(2),
+pp. 145-189, 
+2004.
+Draft available as [ps.gz http://www.cs.chalmers.se/~aarne/articles/gf-jfp.ps.gz].
+#BR
+//Theoretical paper explaining the GF formalism and its implementation.//
+//The standard reference on GF, but doesn't cover the module system.//
+
+
+A. Ranta.
+Computational semantics in type theory.
+//Mathematics and Social Sciences//, 165,
+pp. 31-57, 
+2004.
+Draft available as [pdf http://www.cs.chalmers.se/~aarne/articles/3formsem.pdf].
+#BR
+// Shows how Montague-style grammars are implemented in GF and extends//
+//this to type-theoretical grammars for anaphoric expressions.//
+
+H. Hammarström and A. Ranta.
+Cardinal Numerals Revisited in GF.
+//Workshop on Numerals in the World's Languages//. 
+Dept. of Linguistics Max Planck Institute for Evolutionary Anthropology, Leipzig,
+2004.
+#BR
+//An overview of the numeral grammar project, covering 88 languages.//
+
+
+A. Ranta.
+Grammatical Framework Tutorial.
+In A. Beckmann and N. Preining, editors, 
+//ESSLLI 2003 Course Material I//, 
+//Collegium Logicum//, 
+volume V,
+pp. 1-86. 
+Kurt Gödel Society, 
+Vienna,
+2004.
+#BR
+//A revised version of the on-line GF tutorial, v1.0.//
+
+
+J. Khegai and A. Ranta.
+Building and Using a Russian Resource Grammar in GF.
+In A. Gelbukh (ed), 
+//Intelligent Text Processing and Computational Linguistics (CICLing-2004)//, 
+Seoul, Korea, February 2003,
+Springer LNCS 945, 
+pp. 38-41,
+2004.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/mexico.ps.gz].
+#BR
+//An introduction to the GF resource grammar project, with Russian as prime example.//
+
+
+A. Ranta and R. Cooper.
+Dialogue Systems as Proof Editors.
+ //Journal of Logic, Language and Information//, 13,
+pp. 225-240, 
+2004.
+Conference version (IJCAR/ICoS-3, Siena, June 2001) available as
+  [ps.gz http://www.cs.chalmers.se/~aarne/articles/dialogue3.ps.gz].
+//Shows a close analogy between task-oriented dialogue systems//
+//and metavariable-based proof editors.//
+
+
+J. Khegai and A. Ranta.
+Building and Using a Russian Resource Grammar in GF.
+In A. Gelbukh (ed), 
+//Intelligent Text Processing and Computational Linguistics (CICLing-2004)//, 
+Seoul, Korea, February 2003,
+Springer LNCS 945, 
+pp. 38-41,
+2004.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/mexico.ps.gz].
+#BR
+//Explains how the GF GUI is used in syntax editing and discusses//
+//how new grammars are created.//
+
+
+R. Hähnle, K. Johannisson, and A. Ranta.
+An Authoring Tool for Informal and Formal Requirements Specifications.
+In R. D. Kutsche and H. Weber (eds),
+//ETAPS/FASE-2002: Fundamental Approaches to Software Engineering//,
+Springer LNCS, 
+vol. 2306,
+pp. 233--248, 
+2002.
+[pdf http://www.cs.chalmers.se/~krijo/GF/FASE.pdf]
+#BR
+//Describes a GF-based authoring tool for object-oriented//
+//specifications in OCL and English. Carries out in full//
+//the work proposed in the position paper (Hähnle & Ranta 2001).//
+
+
+
+K. Johannisson and A.Ranta,
+Formal Verification of Multilingual Instructions.
+//Proceedings of the Joint Winter Meeting 2001//.
+Departments of Computer Science and Computer Engineering,
+Chalmers University of Technology and Göteborg University.
+2001.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/aarne+krijo.ps.gz].
+#BR
+//Instructions for an alarm system in four languages, verified in the proof editor Alfa.//
+
+
+R. Hähnle and A. Ranta,
+Connecting OCL with the Rest of the World.
+//ETAPS 2001 Workshop on Transformations in UML (WTUML)//, 
+Genova, 
+2001.
+[ps.gz http://www.cs.chalmers.se/~reiner/papers/wtuml.ps.gz].
+#BR
+//A position paper explaining how GF can be used to help in object-oriented//
+//modelling, with some examples on natural-language interaction with//
+//OCL (Object Constraint Language)//.
+
+
+
+T. Hallgren, "The Correctness of Insertion Sort",
+Manuscript, Chalmers University, Göteborg, 2001.
+Available in
+[ps http://www.cs.chalmers.se/~hallgren/Papers/insertion_sort.ps]
+#BR
+//A seven-page text generated by GF-Alfa//.
+
+
+A. Ranta. "Bescherelle bricolé",
+[ps.gz ../../GF2.0/doc/BeschBric.ps.gz], 
+2001.
+#BR
+//A machine-generated book on French conjugation implemented in GF.//
+
+
+T. Hallgren and A. Ranta,
+An Extensible Proof Text Editor.
+In M. Parigot and A. Voronkov (eds),
+//Logic for Programming and Automated Reasoning (LPAR'2000)//,
+LNCS/LNAI 1955, 
+pp. 70-84,
+Springer Verlag, Heidelberg, 
+2000.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/lpar2000.ps.gz].
+#BR
+//Describes an interface to the proof editor Alfa written in GF//.
+
+
+M. Dymetman, V. Lux, and A. Ranta,
+XML and multilingual document authoring: converging trends.
+//Proceedings of the The 18th International Conference on Computational Linguistics (COLING 2000)//,
+pp. 243-249,
+Saarbruecken, 
+2000.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/coling2000.ps.gz].
+#BR
+//Relates GF not only with XML but also with definite clause grammars//.
+
+
+
+P. Mäenpää and A. Ranta.
+The type theory and type checker of GF.
+//Colloquium on Principles, Logics, and Implementations of High-Level Programming Languages, Workshop on Logical Frameworks and Meta-languages, Paris, 28 September 1999//.
+1999. 
+[ps.gz href=http://www.cs.chalmers.se/~aarne/papers/lfm1999.ps.gz].
+#BR
+//Concise theoretical presentation of GF, using the old notation prior to v0.9//.
+
+
+
+
+
+
+
+
+==Background for GF==
+
+In alphabetical order:
+
+
+
+L. Magnusson.
+//The Implementation of ALF - a Proof Editor based on Martin-Löf's//
+//Monomorphic Type Theory with Explicit Substitutions//.
+PhD Thesis, Department of Computing Science,
+Chalmers University of Technology and Göteborg University,
+1994.
+#BR
+//Back in 1992 the most wonderful program in the world, ALF is//
+//a model that GF directly follows: GF is Yet ALF.//
+
+
+
+P. Martin-Löf.
+//Intuitionistic Type Theory//.
+Bibliopolis, Naples, 1984.
+#BR
+//A very accessible book (if you have access to it!) on type theory directly from the source.//
+
+
+
+B. Nordström, K. Petersson, and J. Smith.
+//Programming in Martin-Löf's Type Theory: an Introduction//.
+Oxford University Press, 1990.
+ The book is out of print, but a free version can be picked up from
+[www.cs.chalmers.se/Cs/Research/Logic/book/ http://www.cs.chalmers.se/Cs/Research/Logic/book/]
+#BR
+//Standard reference on the subject//.
+
+
+A. Ranta.
+//Type Theoretical Grammar//.
+Oxford University Press, Oxford, 
+1994.
+#BR
+//Monograph on type theory in linguistics. Includes an introduction//
+//to type theory. Focused on semantics, in particular anaphora. A first,// 
+//very rudimentary implementation of linearization in the proof system ALF.//
+
+
+A. Ranta.
+Syntactic categories in the language of mathematics.
+In P. Dybjer, B. Nordström, and J. Smith, eds.,
+//Types for Proofs and Programs//, 
+pp. 162-182,
+Lecture Notes in Computer Science
+996,  
+Springer-Verlag, 
+Heidelberg, 
+1995.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/baastad.ps.gz]
+#BR
+//Predecessor of GF: grammar defined in type theory and implemented in ALF//. 
+
+A. Ranta.
+Context-relative syntactic categories and the formalization of mathematical text.
+In S. Berardi and M. Coppo, eds.,
+//Types for Proofs and Programs//, 
+pp. 231-248,
+Lecture Notes in Computer Science 
+1158, 
+Springer-Verlag, 
+Heidelberg, 
+1996.
+[ps.gz http://www.cs.chalmers.se/~aarne/articles/torino.ps.gz].
+#BR
+//Extending the theory of the previous paper. The implementation in ALF// 
+//eventually became so heavy that the need arose for GF.//
+
+
+A. Ranta.
+Structures grammaticales dans le français mathématique. 
+//Mathématiques, informatique et Sciences Humaines.//,
+vol. 138 pp. 5-56 and 139 pp. 5-36, 
+1997.
+#BR
+//A rather comprehensive French grammar presented in a type-theoretical style.//
+
+
+A. Ranta.
+ Syntactic calculus with dependent types.
+ //Journal of Logic, Language and Information//, vol. 4,
+  pp. 413-431, 1998.
+#BR
+//Interprets Lambek Calculus in type theory and defines some extensions//.
+
+
diff --git a/doc/gf-bibliography.txt b/doc/gf-bibliography.txt
deleted file mode 100644
--- a/doc/gf-bibliography.txt
+++ /dev/null
@@ -1,629 +0,0 @@
-Grammatical Framework Bibliography
-Aarne Ranta
-%%date(%c)
-
-% NOTE: this is a txt2tags file.
-% Create an html file from this file using:
-% txt2tags -thtml --toc gf-reference.html
-
-%!target:html
-%!postproc(html): #BR <br>
-
-==Publications on GF==
-
-In reverse temporal order:
-
-A. Ranta.
-The GF Resource Grammar Library,
-to appear in the on-line journal //Linguistics in Language Technology//,
-2009.
-#BR
-//A systematic presentation of the library from the linguistic point of view.//
-
-A. Ranta.
-Grammatical Framework: A Multilingual Grammar Formalism, 
-//Language and Linguistics Compass//, 
-Vol. 3, [on-line http://www.blackwell-compass.com/subject/linguistics/article_view?parent=section&last_results=section%3Dlnco-computational&sortby=date&section=lnco-computational&browse_id=lnco_articles_bpl155&article_id=lnco_articles_bpl155]
-2009.
-#BR
-//An overview of GF for readers with a general academic brackground.//
-
-A. Ranta and K. Angelov.
-Implementing Controlled Languages in GF.
-//CNL-2009//,
-//CEUR Workshop Proceedings//,
-vol. 448,
-[on-line http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-448/],
-2009.
-#BR
-//Makes a case for using GF in controlled language implementation, illustrated by Attempto Controlled English ported to French, German, and Swedish.//
-
-A. Ranta. Grammars as Software Libraries.
-In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
-//From Semantics to Computer Science//,
-Cambridge University Press, Cambridge, 
-pp. 281-308,
-2009.
-[pdf (preliminary version) http://www.cs.chalmers.se/~aarne/articles/libraries-kahn.pdf]
-#BR
-//Grammar-libraries from the software engineering point of view, with an example application to mathematical language.//
-
-K. Angelov.
-Incremental Parsing in Parallel Multiple Context-Free Grammars.
-EACL 2009.
-#BR
-//Describes the algorithm used in parsing with GF.//
-
-A. Ranta, B. Bringert, and K. Angelov. 
-The GF Grammar Development Environment. 
-System demo. Proceedings of //EACL-2009//,
-2009.
-#BR
-//An overview of GF from the grammarian's point of view.//
- 
-B. Bringert, K. Angelov, and A. Ranta. 
-Grammatical Framework Web Service,
-System demo. Proceedings of //EACL-2009//,
-2009.
-#BR
-//An overview of how to build web services on top of PGF using the Google Web Toolkit.//
-
-
-A. Ranta and K. Angelov. 
-Implementing Controlled Languages in GF,
-To appear in the proceedings of //CNL-2009//, LNCS, Springer,
-2009.
-#BR
-//On the use of GF for controlled languages, exemplified by an implementation of Attempto Controlled English then ported to three other language.//
-
-R. Cooper and A. Ranta. 
-Natural Languages as Collections of Resources. 
-In //Language in Flux: Dialogue Coordination, Language Variation, Change//, 
-ed. by R. Cooper and R. Kempson, pp. 109-120. London: College Publications,
-2008.
-#BR
-//The resource grammar idea applied to language learning and evolution.//
-
-Moisés Salvador Meza Moreno and B. Bringert.
-Interactive Multilingual Web Applications with Grammatical Framework.
-In B. Nordström and A. Ranta (eds), 
-//Advances in Natural Language Processing (GoTAL 2008)//, 
-LNCS/LNAI 5221, Springer,
-2008.
-#BR
-//Shows how GF compiled to JavaScript is used in dynamic multilingual web pages.//
-
-Peter Ljunglöf and Staffan Larsson. 
-A grammar formalism for specifying ISU-based dialogue systems.
-In B. Nordström and A. Ranta (eds), 
-//Advances in Natural Language Processing (GoTAL 2008)//, 
-LNCS/LNAI 5221, Springer,
-2008.
-[pdf http://www.ling.gu.se/~peb/pubs/LjunglofLarsson-2008a.pdf]
-#BR
-//Explains how GoDiS dialogue systems are specified by GF grammars.//
-
-K. Angelov.
-Type-Theoretical Bulgarian Grammar.
-In B. Nordström and A. Ranta (eds), 
-//Advances in Natural Language Processing (GoTAL 2008)//, 
-LNCS/LNAI 5221, Springer,
-2008.
-#BR
-//Explains the implementation of a Bulgarian resource grammar in GF.//
-
-B. Bringert.
-High-precision Domain-specific Interlingua-based Speech Translation
-with Grammatical Framework.
-//Coling 2008 Workshop on Speech Translation for Medical and Other Safety-Critical Applications//, 
-Manchester, UK, August 23, 
-2008.
-#BR
-//Shows how to build spoken language translators based on GF grammars and their compilation to Nuance.//
-
-A. Ranta.
-How predictable is Finnish morphology? An experiment on lexicon construction.
-In J. Nivre, M. Dahllöf and B. Megyesi (eds),
-//Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein//,
-University of Uppsala,
-2008.
-Available from [series homepage http://publications.uu.se/abstract.xsql?dbid=8933]
-#BR
-//Presents an experiment on smart paradigms in Finnish.//
-
-A. Ranta.
-Example-based grammar writing.
-To appear in L. Borin and S. Larsson (eds),
-Festschrift for Robin Cooper,
-2007.
-#BR
-//Presents and discusses the ideas of grammar composition and example-based grammar writing.//
-
-B. Bringert.
-Rapid Development of Dialogue Systems by Grammar Compilation.
-//8th SIGdial Workshop on Discourse and Dialogue//, 
-Antwerp, Belgium, September 1-2, 
-2007.
-[pdf http://www.cs.chalmers.se/~bringert/publ/gf-voicexml/gf-voicexml.pdf]
-#BR
-//Shows how to build a web-based spoken dialogue system by generating VoiceXML and JavaScript.//
-
-A. El Dada and A. Ranta.
-Implementing an Open Source Arabic Resource Grammar in GF.
-In M. Mughazy (ed),
-//Perspectives on Arabic Linguistics XX. Papers from the Twentieth Annual Symposium on Arabic Linguistics, Kalamazoo, March 26//
-John Benjamins Publishing Company.
-2007.
-#BR
-//An outline of the Arabic resource grammar project, focusing on linguistic aspects.//
-
-A. El Dada.
-Implementation of the Arabic Numerals and their Syntax in GF.
-Computational Approaches to Semitic Languages: Common Issues and Resources, 
-  ACL-2007 Workshop,
-June 28, 2007, Prague.
-2007.
-#BR
-//A case study with the resource grammar, focusing on the morphosyntax//
-//and agreement of constructions with numerals.//
-
-A. Ranta.
-Modular Grammar Engineering in GF.
-//Research on Language and Computation//, 
-5:133-158, 2007.
-Draft available as [pdf http://www.cs.chalmers.se/~aarne/articles/multieng3.pdf].
-#BR
-//Adapts library-based software engineering methods to grammar writing// 
-//and introduces the module system of GF.//
-
-A. Ranta.
-The GF Grammar Compiler.
-//Workshop on New Directions in Type-theoretic Grammars//,
-Dublin, August 2007 (ESSLLI workshop).
-2007.
-[pdf http://www.cs.chalmers.se/~aarne/articles/ar-compiler.pdf]
-#BR
-//Describes the compilation of GF source code to lower-level run-time formats.//
-
-M. Humayoun, H. Hammarström, and A. Ranta.
-Urdu Morphology, Orthography and Lexicon Extraction.
-//CAASL-2: The Second Workshop on Computational Approaches to Arabic Script-based Languages//,
-July 21-22, 2007, LSA 2007 Linguistic Institute, Stanford University.
-2007.
-#BR
-//Fairly complete open-source Urdu morphology and elemenraty syntax in GF.//
-
-N. Perera and A. Ranta.
-Dialogue System Localization with the GF Resource Grammar Library.
-//SPEECHGRAM 2007: ACL Workshop on Grammar-Based Approaches to Spoken Language Processing//,
-June 29, 2007, Prague.
-2007.
-[pdf http://www.cs.chalmers.se/~aarne/articles/perera-ranta.pdf]
-#BR
-//An experiment in porting an in-car dialogue system from two to six languages.// 
-
-
-B. Bringert.
-Speech Recognition Grammar Compilation in Grammatical Framework
-//SPEECHGRAM 2007: ACL Workshop on Grammar-Based Approaches to Spoken Language Processing//,
-June 29, 2007, Prague.
-2007.
-#BR
-//Generation of speech recognition language models from GF in several formats:// 
-//GSL (Nuance), SRGS, JSGF, and HTK SLF, with embedded semantic interpretation.//
-
-A. Ranta.
-Features in Abstract and Concrete Syntax.
-//The 2nd International Workshop on Typed Feature Structure Grammars//,
-Tartu, 24 May 2007 (NODALIDA workshop).
-2007.
-[pdf http://www.cs.chalmers.se/~aarne/articles/ranta-tfsg2007.pdf]
-#BR
-//Explores the design choices of incorporating features in a GF-like grammar,//
-//with comparisons to feature-based unification grammars.//
-
-
-O. Caprotti and M. Seppälä.
-Multilingual Delivery of Online Tests in mathematics.
-Proceedings of Online Educa Berlin 2006. 29 November - 1 December 2006. 
-  Berlin, Germany.
-2006.
-[pdf http://webalt.math.helsinki.fi/content/e16/e301/e785/MultilingualDeliveryofOnlineTestsinMathematics_eng.pdf]
-#BR
-//This papers shows screenshots of multilingual generation in the//
-//WebALT project, using GF and the resource grammar library.//
-
-J. Khegai. 
-Language engineering in Grammatical Framework (GF).
-Phd thesis, Computer Science, Chalmers University of Technology,
-2006.
-[pdf http://www.cs.chalmers.se/~janna/Janna_Khegai_phd.pdf]
-#BR
-//Collection of articles and technical reports on multilingual authoring//
-//and the Russian resource grammar.//
-
-B. Bringert and A. Ranta.
-A Pattern for Almost Compositional Functions.
-//ICFP 2006, The 11th ACM SIGPLAN International Conference on Functional Programming, Portland, Oregon, September 18-20, 2006//,
-2006.
-[pdf http://www.cs.chalmers.se/~bringert/publ/composOp/composOp.pdf].
-#BR
-//A method of generic programming useful for compiler construction//
-//and transfer-based translation.//
-
-M. Forsberg, H. Hammarstrom, and A. Ranta.
-Morphological Lexicon Extraction from Raw Text Data. 
-//FinTAL 2006//, 
-Turku, August 23-25, 2006.
-Springer LNCS/LNAI 4139,
-pp. 488-499,
-2006.
-#BR
-//A method for automatical production of morphological lexica based//
-//on inflection engines such as those of GF resource grammar library.//
-
-A. Ranta.
-Type Theory and Universal Grammar.
-//Philosophia Scientiae, Constructivism: Mathematics, Logic, Philosophy and Linguistics//,
-cahier spécial 6,
-pp. 115-131,
-2006.
-#BR
-//A philosophical study of the medieval thesis that//
-//grammar is the same in all languages and the difference is only in words.//
-
-J. Khegai. 
-GF parallel resource grammars and Russian.
-In proceedings of ACL2006 
-  (The joint conference of the International Committee on Computational 
-  Linguistics and the Association for Computational Linguistics) (pp. 475-482),
-  Sydney, Australia, July 2006.
-#BR
-//Gives an outline of the Russian resource grammar project.//
-
-J. Khegai. 
-Grammatical Framework (GF) for MT in sublanguage domains. 
-Proceedings of 11th Annual conference of the European Association for 
-      Machine Translation, , Oslo.
-pp. 95-104,
-2005.
-#BR
-//Shows how GF is used in controlled language translation.//
-
-
-
-W. Ng'ang'a. 
-Multilingual content development for eLearning in Africa. 
-eLearning Africa: 1st Pan-African Conference on ICT for Development, 
-  Education and Training. 24-26 May 2006, Addis Ababa, Ethiopia.
-2006.
-[pdf http://webalt.math.helsinki.fi/content/e16/e301/e583/MultilingualContentDevelopmentforeLearninginAfrica-final1_eng.pdf]
-#BR
-//Presents a programme for producing educational material in African languages//
-//via multilingual generation in GF.//
-
-R. Jonson. 
-Generating statistical language models from interpretation grammars in dialogue system. 
-In Proceedings of EACL'06, Trento, Italy.
-2006.
-#BR
-//Uses GF grammars to generate statistical language models for speech recognition.//
-
-A. El Dada and A. Ranta.
-Arabic Resource Grammar.
-//Arabic Language Processing (JETALA)//, 
-5-6 June 2006, IERA, Rabat, Morocco,
-2006.
-#BR
-//An outline of the Arabic resource grammar project, focusing on software aspects.//
-
-D. A. Burke and K. Johannisson.
-Translating Formal Software Specifications to Natural Language. A Grammar-Based Approach.
-In P. Blache, E. Stabler, J. Busquets and R. Moot (eds),
-Logical Aspects of Computational Linguistics (LACL 2005), 
-Springer LNAI 3402, 
-pp. 51-66, 
-2005.
-#BR
-//A paper explaining how a multilingual GF grammar is completed with//
-//Natural Language Generation techniques to improve text quality.//
-
-
-B. Bringert, R. Cooper, P. Ljunglöf, A. Ranta, 
-Multimodal Dialogue System Grammars.
-//Proceedings of DIALOR'05, Ninth Workshop on the Semantics and Pragmatics of Dialogue, Nancy, France, June 9-11, 2005//,
-2005.
-[pdf http://www.cs.chalmers.se/~bringert/publ/mm-grammars-dialor/mm-grammars-dialor.pdf].
-#BR
-//Shows how mouse clicks can be integrated in GF grammars//
-//alongside with speech input.//
-
-
-
-K.  Johannisson,
-Formal and Informal Software Specifications.
-PhD thesis,
-Computer Science, Göteborg University, 
-2005.
-[http://www.cs.chalmers.se/~krijo/thesis/thesisA4.pdf]
-#BR
-//Collection of articles in the GF-KeY project, with an introduction.//
-
-P. Ljunglöf.
-Expressivity and Complexity of the  Grammatical Framework.
-PhD thesis, Computer Science, 
-Göteborg University, 
-2004.
-[pdf http://www.cs.chalmers.se/~peb/pubs/p04-PhD-thesis.pdf]
-#BR
-//Language-theoretical study of GF and its parsing problem.//
-
-A. Ranta.
-Grammatical Framework: A Type-Theoretical Grammar Formalism.
-//Journal of Functional Programming//, 14(2),
-pp. 145-189, 
-2004.
-Draft available as [ps.gz http://www.cs.chalmers.se/~aarne/articles/gf-jfp.ps.gz].
-#BR
-//Theoretical paper explaining the GF formalism and its implementation.//
-//The standard reference on GF, but doesn't cover the module system.//
-
-
-A. Ranta.
-Computational semantics in type theory.
-//Mathematics and Social Sciences//, 165,
-pp. 31-57, 
-2004.
-Draft available as [pdf http://www.cs.chalmers.se/~aarne/articles/3formsem.pdf].
-#BR
-// Shows how Montague-style grammars are implemented in GF and extends//
-//this to type-theoretical grammars for anaphoric expressions.//
-
-H. Hammarström and A. Ranta.
-Cardinal Numerals Revisited in GF.
-//Workshop on Numerals in the World's Languages//. 
-Dept. of Linguistics Max Planck Institute for Evolutionary Anthropology, Leipzig,
-2004.
-#BR
-//An overview of the numeral grammar project, covering 88 languages.//
-
-
-A. Ranta.
-Grammatical Framework Tutorial.
-In A. Beckmann and N. Preining, editors, 
-//ESSLLI 2003 Course Material I//, 
-//Collegium Logicum//, 
-volume V,
-pp. 1-86. 
-Kurt Gödel Society, 
-Vienna,
-2004.
-#BR
-//A revised version of the on-line GF tutorial, v1.0.//
-
-
-J. Khegai and A. Ranta.
-Building and Using a Russian Resource Grammar in GF.
-In A. Gelbukh (ed), 
-//Intelligent Text Processing and Computational Linguistics (CICLing-2004)//, 
-Seoul, Korea, February 2003,
-Springer LNCS 945, 
-pp. 38-41,
-2004.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/mexico.ps.gz].
-#BR
-//An introduction to the GF resource grammar project, with Russian as prime example.//
-
-
-A. Ranta and R. Cooper.
-Dialogue Systems as Proof Editors.
- //Journal of Logic, Language and Information//, 13,
-pp. 225-240, 
-2004.
-Conference version (IJCAR/ICoS-3, Siena, June 2001) available as
-  [ps.gz http://www.cs.chalmers.se/~aarne/articles/dialogue3.ps.gz].
-//Shows a close analogy between task-oriented dialogue systems//
-//and metavariable-based proof editors.//
-
-
-J. Khegai and A. Ranta.
-Building and Using a Russian Resource Grammar in GF.
-In A. Gelbukh (ed), 
-//Intelligent Text Processing and Computational Linguistics (CICLing-2004)//, 
-Seoul, Korea, February 2003,
-Springer LNCS 945, 
-pp. 38-41,
-2004.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/mexico.ps.gz].
-#BR
-//Explains how the GF GUI is used in syntax editing and discusses//
-//how new grammars are created.//
-
-
-R. Hähnle, K. Johannisson, and A. Ranta.
-An Authoring Tool for Informal and Formal Requirements Specifications.
-In R. D. Kutsche and H. Weber (eds),
-//ETAPS/FASE-2002: Fundamental Approaches to Software Engineering//,
-Springer LNCS, 
-vol. 2306,
-pp. 233--248, 
-2002.
-[pdf http://www.cs.chalmers.se/~krijo/GF/FASE.pdf]
-#BR
-//Describes a GF-based authoring tool for object-oriented//
-//specifications in OCL and English. Carries out in full//
-//the work proposed in the position paper (Hähnle & Ranta 2001).//
-
-
-
-K. Johannisson and A.Ranta,
-Formal Verification of Multilingual Instructions.
-//Proceedings of the Joint Winter Meeting 2001//.
-Departments of Computer Science and Computer Engineering,
-Chalmers University of Technology and Göteborg University.
-2001.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/aarne+krijo.ps.gz].
-#BR
-//Instructions for an alarm system in four languages, verified in the proof editor Alfa.//
-
-
-R. Hähnle and A. Ranta,
-Connecting OCL with the Rest of the World.
-//ETAPS 2001 Workshop on Transformations in UML (WTUML)//, 
-Genova, 
-2001.
-[ps.gz http://www.cs.chalmers.se/~reiner/papers/wtuml.ps.gz].
-#BR
-//A position paper explaining how GF can be used to help in object-oriented//
-//modelling, with some examples on natural-language interaction with//
-//OCL (Object Constraint Language)//.
-
-
-
-T. Hallgren, "The Correctness of Insertion Sort",
-Manuscript, Chalmers University, Göteborg, 2001.
-Available in
-[ps http://www.cs.chalmers.se/~hallgren/Papers/insertion_sort.ps]
-#BR
-//A seven-page text generated by GF-Alfa//.
-
-
-A. Ranta. "Bescherelle bricolé",
-[ps.gz ../../GF2.0/doc/BeschBric.ps.gz], 
-2001.
-#BR
-//A machine-generated book on French conjugation implemented in GF.//
-
-
-T. Hallgren and A. Ranta,
-An Extensible Proof Text Editor.
-In M. Parigot and A. Voronkov (eds),
-//Logic for Programming and Automated Reasoning (LPAR'2000)//,
-LNCS/LNAI 1955, 
-pp. 70-84,
-Springer Verlag, Heidelberg, 
-2000.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/lpar2000.ps.gz].
-#BR
-//Describes an interface to the proof editor Alfa written in GF//.
-
-
-M. Dymetman, V. Lux, and A. Ranta,
-XML and multilingual document authoring: converging trends.
-//Proceedings of the The 18th International Conference on Computational Linguistics (COLING 2000)//,
-pp. 243-249,
-Saarbruecken, 
-2000.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/coling2000.ps.gz].
-#BR
-//Relates GF not only with XML but also with definite clause grammars//.
-
-
-
-P. Mäenpää and A. Ranta.
-The type theory and type checker of GF.
-//Colloquium on Principles, Logics, and Implementations of High-Level Programming Languages, Workshop on Logical Frameworks and Meta-languages, Paris, 28 September 1999//.
-1999. 
-[ps.gz href=http://www.cs.chalmers.se/~aarne/papers/lfm1999.ps.gz].
-#BR
-//Concise theoretical presentation of GF, using the old notation prior to v0.9//.
-
-
-
-
-
-
-
-
-==Background for GF==
-
-In alphabetical order:
-
-
-
-L. Magnusson.
-//The Implementation of ALF - a Proof Editor based on Martin-Löf's//
-//Monomorphic Type Theory with Explicit Substitutions//.
-PhD Thesis, Department of Computing Science,
-Chalmers University of Technology and Göteborg University,
-1994.
-#BR
-//Back in 1992 the most wonderful program in the world, ALF is//
-//a model that GF directly follows: GF is Yet ALF.//
-
-
-
-P. Martin-Löf.
-//Intuitionistic Type Theory//.
-Bibliopolis, Naples, 1984.
-#BR
-//A very accessible book (if you have access to it!) on type theory directly from the source.//
-
-
-
-B. Nordström, K. Petersson, and J. Smith.
-//Programming in Martin-Löf's Type Theory: an Introduction//.
-Oxford University Press, 1990.
- The book is out of print, but a free version can be picked up from
-[www.cs.chalmers.se/Cs/Research/Logic/book/ http://www.cs.chalmers.se/Cs/Research/Logic/book/]
-#BR
-//Standard reference on the subject//.
-
-
-A. Ranta.
-//Type Theoretical Grammar//.
-Oxford University Press, Oxford, 
-1994.
-#BR
-//Monograph on type theory in linguistics. Includes an introduction//
-//to type theory. Focused on semantics, in particular anaphora. A first,// 
-//very rudimentary implementation of linearization in the proof system ALF.//
-
-
-A. Ranta.
-Syntactic categories in the language of mathematics.
-In P. Dybjer, B. Nordström, and J. Smith, eds.,
-//Types for Proofs and Programs//, 
-pp. 162-182,
-Lecture Notes in Computer Science
-996,  
-Springer-Verlag, 
-Heidelberg, 
-1995.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/baastad.ps.gz]
-#BR
-//Predecessor of GF: grammar defined in type theory and implemented in ALF//. 
-
-A. Ranta.
-Context-relative syntactic categories and the formalization of mathematical text.
-In S. Berardi and M. Coppo, eds.,
-//Types for Proofs and Programs//, 
-pp. 231-248,
-Lecture Notes in Computer Science 
-1158, 
-Springer-Verlag, 
-Heidelberg, 
-1996.
-[ps.gz http://www.cs.chalmers.se/~aarne/articles/torino.ps.gz].
-#BR
-//Extending the theory of the previous paper. The implementation in ALF// 
-//eventually became so heavy that the need arose for GF.//
-
-
-A. Ranta.
-Structures grammaticales dans le français mathématique. 
-//Mathématiques, informatique et Sciences Humaines.//,
-vol. 138 pp. 5-56 and 139 pp. 5-36, 
-1997.
-#BR
-//A rather comprehensive French grammar presented in a type-theoretical style.//
-
-
-A. Ranta.
- Syntactic calculus with dependent types.
- //Journal of Logic, Language and Information//, vol. 4,
-  pp. 413-431, 1998.
-#BR
-//Interprets Lambek Calculus in type theory and defines some extensions//.
-
-
diff --git a/doc/gf-compiler.dot b/doc/gf-compiler.dot
deleted file mode 100644
--- a/doc/gf-compiler.dot
+++ /dev/null
@@ -1,88 +0,0 @@
-digraph {
-
-  gfe [label = "file.gfe", style = "dashed", shape = "ellipse"];
-  gfe -> gf1 [label = " MkConcrete", style = "dashed"];
-
-gf1 [label = "file.gf", style = "solid", shape = "ellipse"];
-gf1 -> gf2 [label = " LexGF", style = "solid"];
-
-gf2 [label = "token list", style = "solid", shape = "plaintext"];
-gf2 -> gf3 [label = " ParGF", style = "solid"];
-
-gf3 [label = "source tree", style = "solid", shape = "plaintext"];
-gf3 -> gf4 [label = " SourceToGrammar", style = "solid"];
-
-  cf [label = "file.cf", style = "dashed", shape = "ellipse"];
-  cf -> gf4 [label = " CF.PPrCF", style = "dashed"];
-
-  ebnf [label = "file.ebnf", style = "dashed", shape = "ellipse"];
-  ebnf -> gf4 [label = " CF.EBNF", style = "dashed"];
-
-
-gf4 [label = "GF tree", style = "solid", shape = "plaintext"];
-gf4 -> gf5 [label = " Extend", style = "solid"];
-
-gf5 [label = "inheritance-linked GF tree", style = "solid", shape = "plaintext"];
-gf5 -> gf6 [label = " Rename", style = "solid"];
-
-gf6 [label = "name-resolved GF tree", style = "solid", shape = "plaintext"];
-gf6 -> gf7 [label = " CheckGrammar", style = "solid"];
-
-gf7 [label = "type-annotated GF tree", style = "solid", shape = "plaintext"];
-gf7 -> gf8 [label = " Optimize", style = "solid"];
-
-gf8 [label = "optimized GF tree", style = "solid", shape = "plaintext"];
-gf8 -> gf9 [label = " GrammarToCanon", style = "solid"];
-
-gf9 [label = "GFC tree", style = "solid", shape = "plaintext"];
-gf9 -> gfc [label = " BackOpt", style = "solid"];
-
-gfc [label = "optimized GFC tree", style = "solid", shape = "box"];
-gfc -> gf11 [label = " PrintGFC", style = "solid"];
-
-gf11 [label = "file.gfc", style = "solid", shape = "ellipse"];
-
-
-  gfcc [label = "file.gfcc", style = "solid", shape = "ellipse"];
-  gfc -> gfcc [label = " CanonToGFCC", style = "solid"];
-
-  mcfg [label = "file.gfcm", style = "dashed", shape = "ellipse"];
-  gfc -> mcfg [label = " PrintGFC", style = "dashed"];
-
-  bnf [label = "file.cf", style = "dashed", shape = "ellipse"];
-  gfc -> bnf [label = " CF.PrLBNF", style = "dashed"];
-
-  happy [label = "file.y (Happy)", style = "dashed", shape = "ellipse"];
-  bnf -> happy [label = " bnfc", style = "dashed"];
-
-  bison [label = "file.y (Bison)", style = "dashed", shape = "ellipse"];
-  bnf -> bison [label = " bnfc", style = "dashed"];
-
-  cup [label = "parser.java (CUP)", style = "dashed", shape = "ellipse"];
-  bnf -> cup [label = " bnfc", style = "dashed"];
-
-  xml [label = "file.dtd (XML)", style = "dashed", shape = "ellipse"];
-  bnf -> xml [label = " bnfc", style = "dashed"];
-
-  cfg [label = "CFG tree", style = "solid", shape = "plaintext"];
-  gfc -> cfg [label = " Conversions.GFC", style = "dashed"];
-
-  cfgm [label = "file.cfgm", style = "dashed", shape = "ellipse"];
-  cfg -> cfgm [label = " Conversions.GFC", style = "dashed"];
-
-  srg [label = "Non-LR CFG", style = "solid", shape = "plaintext"];
-  cfg -> srg [label = " Speech.SRG", style = "dashed"];
-
-  gsl [label = "file.gsl", style = "dashed", shape = "ellipse"];
-  srg -> gsl [label = " Speech.PrGSL", style = "dashed"]; 
-
-  jsgf [label = "file.jsgf", style = "dashed", shape = "ellipse"];
-  srg -> jsgf [label = " Speech.PrJSGF", style = "dashed"]; 
-
-  fa [label = "DFA", style = "solid", shape = "plaintext"];
-  cfg -> fa [label = " Speech.CFGToFiniteState", style = "dashed"];
-
-  slf [label = "file.slf", style = "dashed", shape = "ellipse"];
-  fa -> slf [label = " Speech.PrSLF", style = "dashed"];
-
-}
diff --git a/doc/gf-compiler.png b/doc/gf-compiler.png
deleted file mode 100644
Binary files a/doc/gf-compiler.png and /dev/null differ
diff --git a/doc/gf-developers.t2t b/doc/gf-developers.t2t
new file mode 100644
--- /dev/null
+++ b/doc/gf-developers.t2t
@@ -0,0 +1,380 @@
+GF Developers Guide
+Authors: Björn Bringert  and  Krasimir Angelov
+Last update: %%mtime(%c)
+
+% NOTE: this is a txt2tags file.
+% Create an html file from this file using:
+% txt2tags -t html --toc darcs.txt
+
+%!target:html
+%!options(html): --toc
+%!encoding:utf-8
+
+= Setting up your system for building GF =
+
+Before to build GF from sources you need to install some tools on your system.
+GF is written in Haskell, so first of all you need recent version of the Haskell compiler GHC.
+Currently we use GHC 6.10.3 and we recommend that you should use the same version
+as well. This version is not backward compatible with the previous major releases
+so you cannot use previous versions. GHC is available from here:
+
+http://www.haskell.org/ghc/
+
+Once you have installed GHC, open a terminal (Command Prompt on Windows) and try
+to execute the following command:
+```
+$ ghc --version
+```
+This command should show you which version of GHC you have. If the installation
+of GHC was successful you should see message like:
+```
+The Glorious Glasgow Haskell Compilation System, version 6.10.3
+```
+The other two tools that we use are the lexer generator for Haskell - Alex:
+http://www.haskell.org/alex/
+and the parser generator - Happy:
+http://www.haskell.org/happy/.
+Again after the installation check that the tools are available from the terminal.
+If they are not then probably you have to update the current search path in your system.
+
+It is also a good idea to have either readline, editline or haskeline installed.
+This are libraries for user friendly command line editing. On Linux, without some of this
+libraries, the command line editor is very basic. Actually the only key for editing
+that you can use is backspace. On Windows you get much more user friendly editor
+by default but with it you cannot use the GF specific tab completion. In any case if you
+plan to use GF for continuous development then it is recomended to install
+some of these libraries. The GF configuration script checks the libraries
+in the following order:
+
+- haskeline
+- readline
+- editline
+
+
+the first that is found will be used in the compilation. The libraries are also written
+in Haskell and could be found on Hackage: http://hackage.haskell.org/packages/archive/pkg-list.html. If you want to check whether,
+you already have some of these you can use the following command:
+```
+$ ghc-pkg list
+```
+which shows the list of all installed libraries. 
+
+Haskeline is the easiest to install because it is a pure Haskell library but currently
+with this editor GF doesn't provide word completion. With editline we provide word completion
+but the library is harder to install because it is a Haskell binding to a
+library with the same name written in C. If you do not have the C library you will have to install
+it first. Unfortunately editline does not have good support for Unicode. This will be a problem
+if you tend to work on non-Latin language. Finaly readline supports both word completion
+and Unicode. Currently this is the best supported library.
+
+Before to get the GF sources you also need Darcs, version 2 or later.
+Darcs is a decentralized revision control system, 
+see http://darcs.net/ for more information. There are precompiled packages for many platforms available at
+http://darcs.net/DarcsWiki/CategoryBinaries. There is also source code if you want to compile it yourself. Darcs is
+also written in Haskell and so you can use GHC to compile it.
+
+
+= Getting the sources =
+
+Once you have all tools in place you can get the GF sources. If you just want to compile and use GF
+then it is enough to have read-only access. It is also possible to make changes in the sources but if
+you want these changes to be applied back to the main sources you will have to send the changes to us.
+If you plan to work continuously on GF then you should consider to get read-write access.
+
+== Read-only access ==
+
+=== Getting a fresh copy for read-only access ===
+
+Anyone can get the latest development version of GF by running (all on one line):
+
+```
+$ darcs get --lazy --set-scripts-executable http://code.haskell.org/gf/
+```
+
+This will create a directory called ``gf`` in the current
+directory.
+
+
+=== Updating your copy ===
+
+To get all new patches from the main repo:
+```
+$ darcs pull -a
+```
+This can be done anywhere in your local repository, i.e. in the ``gf``
+directory, or any of its subdirectories.
+Without ``-a``, you can choose which patches you want to get.
+
+
+=== Recording local changes ===
+
+Since every copy is a repository, you can have local version control
+of your changes.
+
+If you have added files, you first need to tell your local repository to 
+keep them under revision control:
+
+```
+$ darcs add file1 file2 ...
+```
+
+To record changes, use:
+
+```
+$ darcs record
+```
+
+This creates a patch against the previous version and stores it in your
+local repository. You can record any number of changes before
+pushing them to the main repo. In fact, you don't have to push them at
+all if you want to keep the changes only in your local repo.
+
+If you think there are too many questions about what to record, you
+can use the ``-a`` flag to ``record``. Or answer ``a`` to the first
+question. Both of these record all the changes you have in your local
+repository.
+
+
+=== Submitting patches ===
+
+If you are using read-only access, send your patches by email to
+someone with write-access. First record your changes in your local 
+repository, as described above. You can send any number of recorded
+patches as one patch bundle. You create the patch bundle with:
+
+```
+$ darcs send -o mypatch.patch
+$ gzip mypatch.patch
+```
+
+(where ``mypatch`` is hopefully replaced by a slightly more
+descriptive name). Since some e-mail setups change text attachments
+(most likely by changing the newline characters) you need to send
+the patch in some compressed format, such as GZIP, BZIP2 or ZIP.
+
+Send it as an e-mail attachment. If you have
+sendmail or something equivalent installed, it is possible to send the
+patch directly from darcs. If so, replace ``-o mypatch.patch`` with
+``--to=EMAIL`` where ``EMAIL`` is the address to send it to.
+
+
+
+
+
+== Read-write access ==
+
+If you have a user account on code.haskell.org, you can get read-write access over SSH
+to the GF repository. 
+To get an account, [fill out this form http://community.haskell.org/admin/account_request.html].
+Once you have an account, ask <aarne@chalmers.se> to add you to the ``GF`` project.
+
+
+=== Getting a fresh copy ===
+
+Get your copy with (all on one line),
+replacing ``bringert`` with your own username on code.haskell.org:
+
+```
+$ darcs get --lazy --set-scripts-executable bringert@code.haskell.org:/srv/code/gf
+```
+
+The option ``--lazy`` means that darcs defers downloading all the
+history for the repository. This saves space, bandwidth and CPU time,
+and most people don't need the full history of all changes in the
+past.
+
+
+=== Getting other people's changes? ===
+
+Get all new patches from the main repo:
+
+```
+$ darcs pull -a
+```
+
+Without ``-a``, you can choose which patches you want to get.
+
+
+
+=== Commit your changes ===
+
+There are two steps to commiting a change to the main repo. First you
+have to record the changes that you want to commit, then you push them
+to the main repo. For instructions on recording your changes locally,
+see "Recording local changes" above. Then you can push the patch(es) to 
+the main repo. If you are using ssh-access, all you need to do is:
+
+```
+$ darcs push
+```
+
+If you use the ``-a`` flag to push, all local patches which are not in
+the main repo are pushed.
+
+
+
+=== Apply a patch from someone else ===
+
+Use:
+
+```
+$ darcs apply < mypatch.patch
+```
+
+This applies the patch to your local repository. To commit it to the
+main repo, use ``darcs push``.
+
+== Further information about Darcs ==
+
+
+For more info about what you can do with darcs, see http://darcs.net/manual/
+
+
+= Compilation from sources =
+
+The build system of GF is based on Cabal (see http://www.haskell.org/cabal/ for more information).
+Cabal is installed by default together with the GHC compiler. This is actually a library which could
+be used from Haskell to compile projects written in Haskell. The entry point is a script
+called Setup.hs which is placed in the top directory of every project managed with Cabal.
+The three main steps that are needed for compilation are much like what you do in a project
+written in C, you have: configure, build and install.
+
+
+== Configure ==
+
+During the configuration phase Cabal will check that you have all necessary tools and libraries
+needed for GF. The configuration is started by the command:
+```
+$ runghc Setup.hs configure
+```
+The command ```runghc``` comes with the GHC compiler and is batch interpreter which executes
+the specified script without the need to compile it advance. Setup.hs is our compilation driver
+which is based on Cabal. If you don't see any error message from the above command then
+you have everything that is needed for GF. You can also add the option ```-v``` to see
+more details about the configuration.
+
+== Build ==
+
+The build phase does two things. First it builds the GF compiler from the Haskell sources
+and after that it builds the GF Resource Grammar Library using the already build compiler.
+The simplest command is:
+```
+$ runghc Setup.hs build
+```
+Again you can add the option ```-v``` if you want to see more details.
+
+Sometimes you just want to work on the GF compiler and don't want to recompile the resource
+library after each change. In this case use this extended command:
+```
+$ runghc Setup.hs build rgl-none
+```
+The resource library could also be compiled in two modes: with present tense only and 
+with all tenses. By default it is compiled with all tenses. If you want to use
+the library with only present tense you can compile it in this special mode with
+the command:
+```
+$ runghc Setup.hs build present
+```
+Before to use this command make sure that the script lib/src/mkPresent has executable
+permissions on Linux.
+
+You could also control which languages you want to be recompiled by adding the option
+```langs=list```. For example the following command will compile only the English and the Swedish
+language:
+```
+$ runghc Setup.hs build langs=Eng,Swe
+```
+
+== Install ==
+
+After you have compiled GF you can install the binaries to make the system usable.
+On Linux you will need root privileges to do this. Use the command:
+```
+$ su
+```
+and enter the root password. This step should be skipped on Windows.
+
+The installation itself is started with the command:
+```
+$ runghc Setup.hs install
+```
+This command installs the GF compiler in the default place for executable
+files in your system. For example on Linux this is usualy /usr/local/bin and on
+Windows this is c:\Program Files\Haskell\bin. If you want to install in some
+other place then use the ```--prefix``` option during the configuration phase.
+
+The compiled GF Resource Grammar Library will be installed in /usr/local/share/gf-3.1/lib
+on Linux and in c:\Program Files\Haskell\gf-3.1\lib on Windows. Again the location could
+be changed using the ```--prefix``` option.
+
+== Clean ==
+
+Sometimes you want to clean up the compilation and start again from clean
+sources. Use the clean command for this purpose:
+```
+$ runghc Setup.hs clean
+```
+
+== SDist ==
+
+You can use the command:
+```
+$ runghc Setup.hs sdist
+```
+to prepare archive with all source codes needed to compile GF.
+
+= Compilation with make =
+
+If you feel more comfortable with Makefiles then there is a thin Makefile
+wrapper arround Cabal for you. If you just type:
+```
+$ make
+```
+the configuration phase will be run automatically if needed and after that
+the sources will be compiled. If you don't want to compile the resource library
+every time then you can use:
+```
+$ make gf
+```
+For installation use:
+```
+$ make install
+```
+For cleaning:
+```
+$ make clean
+```
+and to build source distribution archive run:
+```
+$ make sdist
+```
+
+= Running the testsuite =
+
+GF has testsuite. It is run with the following command:
+```
+$ runghc Setup.hs test
+```
+The testsuite architecture for GF is very simple but still very flexible.
+GF by itself is an interpreter and could execute commands in batch mode.
+This is everything that we need to organize a testsuite. The root of the 
+testsuite is the testsuite/ directory. It contains subdirectories which
+themself contain GF batch files (with extension .gfs). The above command
+searches the subdirectories of the testsuite/ directory for files with extension
+.gfs and when it finds one it is executed with the GF interpreter.
+The output of the script is stored in file with extension .out and is compared
+with the content of the corresponding file with extension .gold, if there is one.
+If the contents are identical the command reports that the test was passed successfully.
+Otherwise the test had failed.
+
+Every time when you make some changes to GF that have to be tested, instead of
+writing the commands by hand in the GF shell, add them to one .gfs file in the testsuite
+and run the test. In this way you can use the same test later and we will be sure
+that we will not incidentaly break your code later.
+
+If you don't want to run the whole testsuite you can write the path to the subdirectory
+in which you are interested. For example:
+```
+$ runghc Setup.hs test testsuite/compiler
+```
+will run only the testsuite for the compiler.
diff --git a/doc/gf-developers.txt b/doc/gf-developers.txt
deleted file mode 100644
--- a/doc/gf-developers.txt
+++ /dev/null
@@ -1,380 +0,0 @@
-GF Developers Guide
-Authors: Björn Bringert  and  Krasimir Angelov
-Last update: %%mtime(%c)
-
-% NOTE: this is a txt2tags file.
-% Create an html file from this file using:
-% txt2tags -t html --toc darcs.txt
-
-%!target:html
-%!options(html): --toc
-%!encoding:utf-8
-
-= Setting up your system for building GF =
-
-Before to build GF from sources you need to install some tools on your system.
-GF is written in Haskell, so first of all you need recent version of the Haskell compiler GHC.
-Currently we use GHC 6.10.3 and we recommend that you should use the same version
-as well. This version is not backward compatible with the previous major releases
-so you cannot use previous versions. GHC is available from here:
-
-http://www.haskell.org/ghc/
-
-Once you have installed GHC, open a terminal (Command Prompt on Windows) and try
-to execute the following command:
-```
-$ ghc --version
-```
-This command should show you which version of GHC you have. If the installation
-of GHC was successful you should see message like:
-```
-The Glorious Glasgow Haskell Compilation System, version 6.10.3
-```
-The other two tools that we use are the lexer generator for Haskell - Alex:
-http://www.haskell.org/alex/
-and the parser generator - Happy:
-http://www.haskell.org/happy/.
-Again after the installation check that the tools are available from the terminal.
-If they are not then probably you have to update the current search path in your system.
-
-It is also a good idea to have either readline, editline or haskeline installed.
-This are libraries for user friendly command line editing. On Linux, without some of this
-libraries, the command line editor is very basic. Actually the only key for editing
-that you can use is backspace. On Windows you get much more user friendly editor
-by default but with it you cannot use the GF specific tab completion. In any case if you
-plan to use GF for continuous development then it is recomended to install
-some of these libraries. The GF configuration script checks the libraries
-in the following order:
-
-- haskeline
-- readline
-- editline
-
-
-the first that is found will be used in the compilation. The libraries are also written
-in Haskell and could be found on Hackage: http://hackage.haskell.org/packages/archive/pkg-list.html. If you want to check whether,
-you already have some of these you can use the following command:
-```
-$ ghc-pkg list
-```
-which shows the list of all installed libraries. 
-
-Haskeline is the easiest to install because it is a pure Haskell library but currently
-with this editor GF doesn't provide word completion. With editline we provide word completion
-but the library is harder to install because it is a Haskell binding to a
-library with the same name written in C. If you do not have the C library you will have to install
-it first. Unfortunately editline does not have good support for Unicode. This will be a problem
-if you tend to work on non-Latin language. Finaly readline supports both word completion
-and Unicode. Currently this is the best supported library.
-
-Before to get the GF sources you also need Darcs, version 2 or later.
-Darcs is a decentralized revision control system, 
-see http://darcs.net/ for more information. There are precompiled packages for many platforms available at
-http://darcs.net/DarcsWiki/CategoryBinaries. There is also source code if you want to compile it yourself. Darcs is
-also written in Haskell and so you can use GHC to compile it.
-
-
-= Getting the sources =
-
-Once you have all tools in place you can get the GF sources. If you just want to compile and use GF
-then it is enough to have read-only access. It is also possible to make changes in the sources but if
-you want these changes to be applied back to the main sources you will have to send the changes to us.
-If you plan to work continuously on GF then you should consider to get read-write access.
-
-== Read-only access ==
-
-=== Getting a fresh copy for read-only access ===
-
-Anyone can get the latest development version of GF by running (all on one line):
-
-```
-$ darcs get --lazy --set-scripts-executable http://code.haskell.org/gf/
-```
-
-This will create a directory called ``gf`` in the current
-directory.
-
-
-=== Updating your copy ===
-
-To get all new patches from the main repo:
-```
-$ darcs pull -a
-```
-This can be done anywhere in your local repository, i.e. in the ``gf``
-directory, or any of its subdirectories.
-Without ``-a``, you can choose which patches you want to get.
-
-
-=== Recording local changes ===
-
-Since every copy is a repository, you can have local version control
-of your changes.
-
-If you have added files, you first need to tell your local repository to 
-keep them under revision control:
-
-```
-$ darcs add file1 file2 ...
-```
-
-To record changes, use:
-
-```
-$ darcs record
-```
-
-This creates a patch against the previous version and stores it in your
-local repository. You can record any number of changes before
-pushing them to the main repo. In fact, you don't have to push them at
-all if you want to keep the changes only in your local repo.
-
-If you think there are too many questions about what to record, you
-can use the ``-a`` flag to ``record``. Or answer ``a`` to the first
-question. Both of these record all the changes you have in your local
-repository.
-
-
-=== Submitting patches ===
-
-If you are using read-only access, send your patches by email to
-someone with write-access. First record your changes in your local 
-repository, as described above. You can send any number of recorded
-patches as one patch bundle. You create the patch bundle with:
-
-```
-$ darcs send -o mypatch.patch
-$ gzip mypatch.patch
-```
-
-(where ``mypatch`` is hopefully replaced by a slightly more
-descriptive name). Since some e-mail setups change text attachments
-(most likely by changing the newline characters) you need to send
-the patch in some compressed format, such as GZIP, BZIP2 or ZIP.
-
-Send it as an e-mail attachment. If you have
-sendmail or something equivalent installed, it is possible to send the
-patch directly from darcs. If so, replace ``-o mypatch.patch`` with
-``--to=EMAIL`` where ``EMAIL`` is the address to send it to.
-
-
-
-
-
-== Read-write access ==
-
-If you have a user account on code.haskell.org, you can get read-write access over SSH
-to the GF repository. 
-To get an account, [fill out this form http://community.haskell.org/admin/account_request.html].
-Once you have an account, ask <aarne@chalmers.se> to add you to the ``GF`` project.
-
-
-=== Getting a fresh copy ===
-
-Get your copy with (all on one line),
-replacing ``bringert`` with your own username on code.haskell.org:
-
-```
-$ darcs get --lazy --set-scripts-executable bringert@code.haskell.org:/srv/code/gf
-```
-
-The option ``--lazy`` means that darcs defers downloading all the
-history for the repository. This saves space, bandwidth and CPU time,
-and most people don't need the full history of all changes in the
-past.
-
-
-=== Getting other people's changes? ===
-
-Get all new patches from the main repo:
-
-```
-$ darcs pull -a
-```
-
-Without ``-a``, you can choose which patches you want to get.
-
-
-
-=== Commit your changes ===
-
-There are two steps to commiting a change to the main repo. First you
-have to record the changes that you want to commit, then you push them
-to the main repo. For instructions on recording your changes locally,
-see "Recording local changes" above. Then you can push the patch(es) to 
-the main repo. If you are using ssh-access, all you need to do is:
-
-```
-$ darcs push
-```
-
-If you use the ``-a`` flag to push, all local patches which are not in
-the main repo are pushed.
-
-
-
-=== Apply a patch from someone else ===
-
-Use:
-
-```
-$ darcs apply < mypatch.patch
-```
-
-This applies the patch to your local repository. To commit it to the
-main repo, use ``darcs push``.
-
-== Further information about Darcs ==
-
-
-For more info about what you can do with darcs, see http://darcs.net/manual/
-
-
-= Compilation from sources =
-
-The build system of GF is based on Cabal (see http://www.haskell.org/cabal/ for more information).
-Cabal is installed by default together with the GHC compiler. This is actually a library which could
-be used from Haskell to compile projects written in Haskell. The entry point is a script
-called Setup.hs which is placed in the top directory of every project managed with Cabal.
-The three main steps that are needed for compilation are much like what you do in a project
-written in C, you have: configure, build and install.
-
-
-== Configure ==
-
-During the configuration phase Cabal will check that you have all necessary tools and libraries
-needed for GF. The configuration is started by the command:
-```
-$ runghc Setup.hs configure
-```
-The command ```runghc``` comes with the GHC compiler and is batch interpreter which executes
-the specified script without the need to compile it advance. Setup.hs is our compilation driver
-which is based on Cabal. If you don't see any error message from the above command then
-you have everything that is needed for GF. You can also add the option ```-v``` to see
-more details about the configuration.
-
-== Build ==
-
-The build phase does two things. First it builds the GF compiler from the Haskell sources
-and after that it builds the GF Resource Grammar Library using the already build compiler.
-The simplest command is:
-```
-$ runghc Setup.hs build
-```
-Again you can add the option ```-v``` if you want to see more details.
-
-Sometimes you just want to work on the GF compiler and don't want to recompile the resource
-library after each change. In this case use this extended command:
-```
-$ runghc Setup.hs build rgl-none
-```
-The resource library could also be compiled in two modes: with present tense only and 
-with all tenses. By default it is compiled with all tenses. If you want to use
-the library with only present tense you can compile it in this special mode with
-the command:
-```
-$ runghc Setup.hs build present
-```
-Before to use this command make sure that the script lib/src/mkPresent has executable
-permissions on Linux.
-
-You could also control which languages you want to be recompiled by adding the option
-```langs=list```. For example the following command will compile only the English and the Swedish
-language:
-```
-$ runghc Setup.hs build langs=Eng,Swe
-```
-
-== Install ==
-
-After you have compiled GF you can install the binaries to make the system usable.
-On Linux you will need root privileges to do this. Use the command:
-```
-$ su
-```
-and enter the root password. This step should be skipped on Windows.
-
-The installation itself is started with the command:
-```
-$ runghc Setup.hs install
-```
-This command installs the GF compiler in the default place for executable
-files in your system. For example on Linux this is usualy /usr/local/bin and on
-Windows this is c:\Program Files\Haskell\bin. If you want to install in some
-other place then use the ```--prefix``` option during the configuration phase.
-
-The compiled GF Resource Grammar Library will be installed in /usr/local/share/gf-3.1/lib
-on Linux and in c:\Program Files\Haskell\gf-3.1\lib on Windows. Again the location could
-be changed using the ```--prefix``` option.
-
-== Clean ==
-
-Sometimes you want to clean up the compilation and start again from clean
-sources. Use the clean command for this purpose:
-```
-$ runghc Setup.hs clean
-```
-
-== SDist ==
-
-You can use the command:
-```
-$ runghc Setup.hs sdist
-```
-to prepare archive with all source codes needed to compile GF.
-
-= Compilation with make =
-
-If you feel more comfortable with Makefiles then there is a thin Makefile
-wrapper arround Cabal for you. If you just type:
-```
-$ make
-```
-the configuration phase will be run automatically if needed and after that
-the sources will be compiled. If you don't want to compile the resource library
-every time then you can use:
-```
-$ make gf
-```
-For installation use:
-```
-$ make install
-```
-For cleaning:
-```
-$ make clean
-```
-and to build source distribution archive run:
-```
-$ make sdist
-```
-
-= Running the testsuite =
-
-GF has testsuite. It is run with the following command:
-```
-$ runghc Setup.hs test
-```
-The testsuite architecture for GF is very simple but still very flexible.
-GF by itself is an interpreter and could execute commands in batch mode.
-This is everything that we need to organize a testsuite. The root of the 
-testsuite is the testsuite/ directory. It contains subdirectories which
-themself contain GF batch files (with extension .gfs). The above command
-searches the subdirectories of the testsuite/ directory for files with extension
-.gfs and when it finds one it is executed with the GF interpreter.
-The output of the script is stored in file with extension .out and is compared
-with the content of the corresponding file with extension .gold, if there is one.
-If the contents are identical the command reports that the test was passed successfully.
-Otherwise the test had failed.
-
-Every time when you make some changes to GF that have to be tested, instead of
-writing the commands by hand in the GF shell, add them to one .gfs file in the testsuite
-and run the test. In this way you can use the same test later and we will be sure
-that we will not incidentaly break your code later.
-
-If you don't want to run the whole testsuite you can write the path to the subdirectory
-in which you are interested. For example:
-```
-$ runghc Setup.hs test testsuite/compiler
-```
-will run only the testsuite for the compiler.
diff --git a/doc/gf-formalism.html b/doc/gf-formalism.html
deleted file mode 100644
--- a/doc/gf-formalism.html
+++ /dev/null
@@ -1,350 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>A Birds-Eye View of GF as a Grammar Formalism</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>A Birds-Eye View of GF as a Grammar Formalism</H1>
-<FONT SIZE="4">
-<I>Author: Aarne Ranta</I><BR>
-Last update: Thu Feb  2 14:16:01 2006
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-    <UL>
-    <LI><A HREF="#toc1">GF in a few words</A>
-    <LI><A HREF="#toc2">History of GF</A>
-    <LI><A HREF="#toc3">Some key ingredients of GF in other grammar formalisms</A>
-    <LI><A HREF="#toc4">Examples of descriptions in each formalism</A>
-    <LI><A HREF="#toc5">Lambda terms and records</A>
-    <LI><A HREF="#toc6">The structure of GF formalisms</A>
-    <LI><A HREF="#toc7">The expressivity of GF</A>
-    <LI><A HREF="#toc8">Grammars and parsing</A>
-    <LI><A HREF="#toc9">Grammars as software libraries</A>
-    <LI><A HREF="#toc10">Multilinguality</A>
-    <LI><A HREF="#toc11">Parametrized modules</A>
-    </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<P>
-<IMG ALIGN="middle" SRC="Logos/gf0.png" BORDER="0" ALT="">
-</P>
-<P>
-<I>Abstract. This document gives a general description of the</I>
-<I>Grammatical Framework (GF), with comparisons to other grammar</I>
-<I>formalisms such as CG, ACG, HPSG, and LFG.</I>
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc1"></A>
-<H2>GF in a few words</H2>
-<P>
-Grammatical Framework (GF) is a grammar formalism 
-based on <B>constructive type theory</B>.
-</P>
-<P>
-GF makes a distinction between <B>abstract syntax</B> and <B>concrete syntax</B>.
-</P>
-<P>
-The abstract syntax part of GF is a <B>logical framework</B>, with
-dependent types and higher-order functions.
-</P>
-<P>
-The concrete syntax is a system of <B>records</B> containing strings and features.
-</P>
-<P>
-A GF grammar defines a <B>reversible homomorphism</B> from an abstract syntax to a
-concrete syntax.
-</P>
-<P>
-A <B>multilingual GF grammar</B> is a set of concrete syntaxes associated with
-one abstract syntax.
-</P>
-<P>
-GF grammars are written in a high-level <B>functional programming language</B>,
-which is compiled into a <B>core language</B> (GFC).
-</P>
-<P>
-GF grammars can be used as <B>resources</B>, i.e. as libraries for writing
-new grammars; these are compiled and optimized by the method of
-<B>grammar composition</B>.
-</P>
-<P>
-GF has a <B>module system</B> that supports grammar engineering and separate 
-compilation.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc2"></A>
-<H2>History of GF</H2>
-<P>
-1988. Intuitionistic Categorial Grammar; type theory as abstract syntax,
-playing the role of Montague's analysis trees. Grammars implemented in Prolog.
-</P>
-<P>
-1994. Type-Theoretical Grammar. Abstract syntax organized as a system of
-combinators. Grammars implemented in ALF.
-</P>
-<P>
-1996. Multilingual Type-Theoretical Grammar. Rules for generating six
-languages from the same abstract syntax. Grammars implemented in ALF, ML, and
-Haskell.
-</P>
-<P>
-1998. The first implementation of GF as a language of its own.
-</P>
-<P>
-2000. New version of GF: high-level functional source language, records used
-for concrete syntax.
-</P>
-<P>
-2003. The module system.
-</P>
-<P>
-2004. Ljunglöf's thesis <I>Expressivity and Complexity of GF</I>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc3"></A>
-<H2>Some key ingredients of GF in other grammar formalisms</H2>
-<UL>
-<LI>[GF ]: Grammatical Framework
-<LI>[CG ]: categorial grammar
-<LI>[ACG ]: abstract categorial grammar
-<LI>[HPSG ]: head-driven phrase structure grammar
-<LI>[LFG ]: lexical functional grammar
-</UL>
-
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TD ALIGN="center">/</TD>
-<TD>GF</TD>
-<TD>ACG</TD>
-<TD>LFG</TD>
-<TD>HPSG</TD>
-<TD>CG</TD>
-</TR>
-<TR>
-<TD>abstract vs concrete syntax</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>?</TD>
-<TD>-</TD>
-<TD>-</TD>
-</TR>
-<TR>
-<TD>type theory</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>-</TD>
-<TD>-</TD>
-<TD>X</TD>
-</TR>
-<TR>
-<TD>records and features</TD>
-<TD>X</TD>
-<TD>-</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>-</TD>
-</TR>
-</TABLE>
-
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc4"></A>
-<H2>Examples of descriptions in each formalism</H2>
-<P>
-To be written...
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc5"></A>
-<H2>Lambda terms and records</H2>
-<P>
-In CS, abstract syntax is trees and concrete syntax is strings.
-This works more or less for programming languages.
-</P>
-<P>
-In CG, all syntax is lambda terms. 
-</P>
-<P>
-In Montague grammar, abstract syntax is lambda terms and
-concrete syntax is trees. Abstract syntax as lambda terms
-can be considered well-established.
-</P>
-<P>
-In PATR and HPSG, concrete syntax it records. This can be considered
-well-established for natural languages.
-</P>
-<P>
-In ACG, both are lambda terms. This is more general than GF,
-but reversibility requires linearity restriction, which can be
-unnatural for grammar writing.
-</P>
-<P>
-In GF, linearization from lambda terms to records is reversible,
-and grammar writing is not restricted to linear terms.
-</P>
-<P>
-Grammar composition in ACG is just function composition. In GF,
-it is more restricted...
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc6"></A>
-<H2>The structure of GF formalisms</H2>
-<P>
-The following diagram (to be drawn properly!) describes the
-levels.
-</P>
-<PRE>
-         |   programming language design
-         V
-    GF source language
-         |
-         |   type-directed partial evaluation
-         V
-    GFC assembly language
-         |
-         |   Ljunglöf's translation
-         V
-    MCFG parser
-</PRE>
-<P>
-The last two phases are nontrivial mathematica properties.
-</P>
-<P>
-In most grammar formalisms, grammarians have to work on the GFC
-(or MCFG) level.
-</P>
-<P>
-Maybe they use macros - they are therefore like macro assemblers. But there
-are no separately compiled library modules, no type checking, etc.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc7"></A>
-<H2>The expressivity of GF</H2>
-<P>
-Parsing complexity is the same as MCFG: polynomial, with
-unrestricted exponent depending on grammar.
-This is between TAG and HPSG.
-</P>
-<P>
-If semantic well-formedness (type theory) is taken into account,
-then arbitrary logic can be expressed. The well-formedness of
-abstract syntax is decidable, but the well-formedness of a
-concrete-syntax string can require an arbitrary proof construction
-and is therefore undecidable.
-</P>
-<P>
-Separability between AS and CS: like TAG (Tree Adjoining Grammar), GF
-has the goal of assigning intended trees for strings. This is
-generalized to shared trees for different languages.
-</P>
-<P>
-The high-level language strives after the properties of
-writability and readability (programming language notions).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc8"></A>
-<H2>Grammars and parsing</H2>
-<P>
-In many projects, a grammar is just seen as a <B>declarative parsing program</B>.
-</P>
-<P>
-For GF, a grammar is primarily the <B>definition of a language</B>.
-</P>
-<P>
-Detaching grammars from parsers is a good idea, giving
-</P>
-<UL>
-<LI>more efficient and robust parsing (statistical etc)
-<LI>cleaner grammars
-</UL>
-
-<P>
-Separating abstract from concrete syntax is a prerequisite for this:
-we want parsers to return abstract syntax objects, and these must exist
-independently of parse trees.
-</P>
-<P>
-A possible radical approach to parsing: 
-use a grammar to generate a treebank and machine-learn
-a statistical parser from this.
-</P>
-<P>
-Comparison: Steedman in CCG has done something like this.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc9"></A>
-<H2>Grammars as software libraries</H2>
-<P>
-Reuse for different purposes.
-</P>
-<P>
-Grammar composition.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc10"></A>
-<H2>Multilinguality</H2>
-<P>
-In <B>application grammars</B>, the AS is a semantic
-model, and a CS covers domain terminology and idioms.
-</P>
-<P>
-This can give publication-quality translation on
-limited domains (e.g. the WebALT project).
-</P>
-<P>
-Resource grammars with grammar composition lead to
-<B>compile-time transfer</B>.
-</P>
-<P>
-When is <B>run-time transfer</B> necessary?
-</P>
-<P>
-Cf. CLE (Core Language Engine).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc11"></A>
-<H2>Parametrized modules</H2>
-<P>
-This notion comes from the ML language in the 1980's.
-</P>
-<P>
-It can be used for sharing even more code between languages
-than their AS.
-</P>
-<P>
-Especially, for related languages (Scandinavian, Romance).
-</P>
-<P>
-Cf. grammar porting in CLE: what they do with untyped 
-macro packages GF does with typable interfaces.
-</P>
-
-<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml -\-toc gf-formalism.txt -->
-</BODY></HTML>
diff --git a/doc/gf-formalism.txt b/doc/gf-formalism.txt
deleted file mode 100644
--- a/doc/gf-formalism.txt
+++ /dev/null
@@ -1,279 +0,0 @@
-A Birds-Eye View of GF as a Grammar Formalism
-Author: Aarne Ranta
-Last update: %%date(%c)
-
-% NOTE: this is a txt2tags file.
-% Create an html file from this file using:
-% txt2tags -thtml --toc gf-formalism.txt
-
-%!target:html
-
-%!postproc(html): #NEW <!-- NEW -->
-
-[Logos/gf0.png]
-
-//Abstract. This document gives a general description of the//
-//Grammatical Framework (GF), with comparisons to other grammar//
-//formalisms such as CG, ACG, HPSG, and LFG.//
-
-
-#NEW
-
-==Logical Frameworks and Grammar Formalisms==
-
-Logic - formalization of mathematics (mathematical language?)
-
-Linguistics - formalization of natural language
-
-Since math lang is a subset, we can expect similarities.
-
-But in natural language we have
-- masses of empirical data
-- no right of reform
-
-
-
-#NEW
-
-==High-level programming==
-
-We have to write a lot of program code when formalizing language.
-
-We need a language with proper abstractions.
-
-Cf. Paul Graham on Prolog: very high-level, but wrong abstractions.
-
-Typed functional languages work well in maths.
-
-We have developed one for linguistics
-- some extra constructs, e.g. inflection tables
-- constraint of reversibility (nontrivial math problem)
-
-
-Writing a grammar of e.g. French clitics should not be a topic
-on which one can write a paper - it should be easy to render in code
-the known facts about languages!
-
-
-
-#NEW
-
-==GF in a few words==
-
-Grammatical Framework (GF) is a grammar formalism 
-based on **constructive type theory**.
-
-GF makes a distinction between **abstract syntax** and **concrete syntax**.
-
-The abstract syntax part of GF is a **logical framework**, with
-dependent types and higher-order functions.
-
-The concrete syntax is a system of **records** containing strings and features.
-
-A GF grammar defines a **reversible homomorphism** from an abstract syntax to a
-concrete syntax.
-
-A **multilingual GF grammar** is a set of concrete syntaxes associated with
-one abstract syntax.
-
-GF grammars are written in a high-level **functional programming language**,
-which is compiled into a **core language** (GFC).
-
-GF grammars can be used as **resources**, i.e. as libraries for writing
-new grammars; these are compiled and optimized by the method of
-**grammar composition**.
-
-GF has a **module system** that supports grammar engineering and separate 
-compilation.
-
-
-#NEW
-
-==History of GF==
-
-1988. Intuitionistic Categorial Grammar; type theory as abstract syntax,
-playing the role of Montague's analysis trees. Grammars implemented in Prolog.
-
-1994. Type-Theoretical Grammar. Abstract syntax organized as a system of
-combinators. Grammars implemented in ALF.
-
-1996. Multilingual Type-Theoretical Grammar. Rules for generating six
-languages from the same abstract syntax. Grammars implemented in ALF, ML, and
-Haskell.
-
-1998. The first implementation of GF as a language of its own.
-
-2000. New version of GF: high-level functional source language, records used
-for concrete syntax.
-
-2003. The module system.
-
-2004. Ljunglöf's thesis //Expressivity and Complexity of GF//.
-
-
-
-#NEW
-
-==Some key ingredients of GF in other grammar formalisms==
-
-- [GF ]: Grammatical Framework
-- [CG ]: categorial grammar
-- [ACG ]: abstract categorial grammar
-- [HPSG ]: head-driven phrase structure grammar
-- [LFG ]: lexical functional grammar
-
-
-|            /                | GF | ACG | LFG | HPSG | CG |
-| abstract vs concrete syntax | X  | X   | ?   | -    | -  |
-| type theory                 | X  | X   | -   | -    | X  |
-| records and features        | X  | -   | X   | X    | -  |
-
-
-#NEW
-
-==Examples of descriptions in each formalism==
-
-To be written...
-
-
-#NEW
-
-==Lambda terms and records==
-
-In CS, abstract syntax is trees and concrete syntax is strings.
-This works more or less for programming languages.
-
-In CG, all syntax is lambda terms. 
-
-In Montague grammar, abstract syntax is lambda terms and
-concrete syntax is trees. Abstract syntax as lambda terms
-can be considered well-established.
-
-In PATR and HPSG, concrete syntax it records. This can be considered
-well-established for natural languages.
-
-In ACG, both are lambda terms. This is more general than GF,
-but reversibility requires linearity restriction, which can be
-unnatural for grammar writing.
-
-In GF, linearization from lambda terms to records is reversible,
-and grammar writing is not restricted to linear terms.
-
-Grammar composition in ACG is just function composition. In GF,
-it is more restricted...
-
-
-#NEW
-
-==The structure of GF formalisms==
-
-The following diagram (to be drawn properly!) describes the
-levels.
-```
-       |   programming language design
-       V
-  GF source language
-       |
-       |   type-directed partial evaluation
-       V
-  GFC assembly language
-       |
-       |   Ljunglöf's translation
-       V
-  MCFG parser
-```
-The last two phases are nontrivial mathematica properties.
-
-In most grammar formalisms, grammarians have to work on the GFC
-(or MCFG) level.
-
-Maybe they use macros - they are therefore like macro assemblers. But there
-are no separately compiled library modules, no type checking, etc.
-
-
-#NEW
-
-==The expressivity of GF==
-
-Parsing complexity is the same as MCFG: polynomial, with
-unrestricted exponent depending on grammar.
-This is between TAG and HPSG.
-
-If semantic well-formedness (type theory) is taken into account,
-then arbitrary logic can be expressed. The well-formedness of
-abstract syntax is decidable, but the well-formedness of a
-concrete-syntax string can require an arbitrary proof construction
-and is therefore undecidable.
-
-Separability between AS and CS: like TAG (Tree Adjoining Grammar), GF
-has the goal of assigning intended trees for strings. This is
-generalized to shared trees for different languages.
-
-The high-level language strives after the properties of
-writability and readability (programming language notions).
-
-
-#NEW
-
-==Grammars and parsing==
-
-In many projects, a grammar is just seen as a **declarative parsing program**.
-
-For GF, a grammar is primarily the **definition of a language**.
-
-Detaching grammars from parsers is a good idea, giving
-- more efficient and robust parsing (statistical etc)
-- cleaner grammars
-
-
-Separating abstract from concrete syntax is a prerequisite for this:
-we want parsers to return abstract syntax objects, and these must exist
-independently of parse trees.
-
-A possible radical approach to parsing: 
-use a grammar to generate a treebank and machine-learn
-a statistical parser from this.
-
-Comparison: Steedman in CCG has done something like this.
-
-
-#NEW
-
-==Grammars as software libraries==
-
-Reuse for different purposes.
-
-Grammar composition.
-
-
-#NEW
-
-==Multilinguality==
-
-In **application grammars**, the AS is a semantic
-model, and a CS covers domain terminology and idioms.
-
-This can give publication-quality translation on
-limited domains (e.g. the WebALT project).
-
-Resource grammars with grammar composition lead to
-**compile-time transfer**.
-
-When is **run-time transfer** necessary?
-
-Cf. CLE (Core Language Engine).
-
-
-#NEW
-
-==Parametrized modules==
-
-This notion comes from the ML language in the 1980's.
-
-It can be used for sharing even more code between languages
-than their AS.
-
-Especially, for related languages (Scandinavian, Romance).
-
-Cf. grammar porting in CLE: what they do with untyped 
-macro packages GF does with typable interfaces.
diff --git a/doc/gf-ideas.html b/doc/gf-ideas.html
deleted file mode 100644
--- a/doc/gf-ideas.html
+++ /dev/null
@@ -1,311 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<TITLE>GF Project Ideas</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-
-<P>
-<center>
-<IMG ALIGN="middle" SRC="Logos/gf0.png" BORDER="0" ALT="">
-</center>
-</P>
-
-<P ALIGN="center"><CENTER>
-<H1>GF Project Ideas</H1>
-<FONT SIZE="4">
-<I>Resource Grammars, Web Applications, etc</I><BR>
-contact: Aarne Ranta (aarne at chalmers dot se)
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-    <UL>
-    <LI><A HREF="#toc1">Resource Grammar Implementations</A>
-      <UL>
-      <LI><A HREF="#toc2">Tasks</A>
-      <LI><A HREF="#toc3">Who is qualified</A>
-      <LI><A HREF="#toc4">The Summer School</A>
-      </UL>
-    <LI><A HREF="#toc5">Other project ideas</A>
-      <UL>
-      <LI><A HREF="#toc6">GF interpreter in Java</A>
-      <LI><A HREF="#toc7">GF interpreter in C#</A>
-      <LI><A HREF="#toc8">GF localization library</A>
-      <LI><A HREF="#toc9">Multilingual grammar applications for mobile phones</A>
-      <LI><A HREF="#toc10">Multilingual grammar applications for the web</A>
-      <LI><A HREF="#toc11">GMail gadget for GF</A>
-      </UL>
-    <LI><A HREF="#toc12">Dissemination and intellectual property</A>
-    </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<A NAME="toc1"></A>
-<H2>Resource Grammar Implementations</H2>
-<P>
-GF Resource Grammar Library is an open-source computational grammar resource
-that currently covers 12 languages.
-The Library is a collaborative effort to which programmers from many countries
-have contributed. The next goal is to extend the library 
-to all of the 23 official EU languages. Also other languages
-are welcome all the time. The following diagram show the current status of the
-library. Each of the red and yellow ones are a potential project.
-</P>
-<P>
-<center>
-<IMG ALIGN="middle" SRC="school-langs.png" BORDER="0" ALT="">
-</center>
-</P>
-<P>
-<I>red=wanted, green=exists, orange=in-progress, solid=official-eu, dotted=non-eu</I>
-</P>
-<P>
-The linguistic coverage of the library includes the inflectional morphology
-and basic syntax of each language. It can be used in GF applications
-and also ported to other formats. It can also be used for building other
-linguistic resources, such as morphological lexica and parsers.
-The library is licensed under LGPL.
-</P>
-<A NAME="toc2"></A>
-<H3>Tasks</H3>
-<P>
-Writing a grammar for a language is usually easier if other languages
-from the same family already have grammars. The colours have the same
-meaning as in the diagram above; in addition, we use boldface for the
-red, still unimplemented languages and italics for the
-orange languages in progress. Thus, in particular, each of the languages
-coloured red below are possible programming projects.
-</P>
-<P>
-Baltic:
-</P>
-<UL>
-<LI><font color="red"><b> Latvian </b></font>
-<LI><font color="red"><b> Lithuanian </b></font>
-</UL>
-
-<P>
-Celtic: 
-</P>
-<UL>
-<LI><font color="red"><b> Irish </b></font>
-</UL>
-
-<P>
-Fenno-Ugric: 
-</P>
-<UL>
-<LI><font color="red"><b> Estonian </b></font> 
-<LI><font color="green" size="-1"> Finnish </font> 
-<LI><font color="red"><b> Hungarian </b></font>
-</UL>
-
-<P>
-Germanic: 
-</P>
-<UL>
-<LI><font color="green" size="-1"> Danish </font>
-<LI><font color="red"><b> Dutch </b></font>
-<LI><font color="green" size="-1"> English </font>
-<LI><font color="green" size="-1"> German </font>
-<LI><font color="green" size="-1"> Norwegian </font>
-<LI><font color="green" size="-1"> Swedish </font>
-</UL>
-
-<P>
-Hellenic:
-</P>
-<UL>
-<LI><font color="red"><b> Greek </b></font>
-</UL>
-
-<P>
-Indo-Iranian:
-</P>
-<UL>
-<LI><font color="orange"><i> Hindi </i></font>
-<LI><font color="orange"><i> Urdu </i></font>
-</UL>
-
-<P>
-Romance:
-</P>
-<UL>
-<LI><font color="green" size="-1"> Catalan </font>
-<LI><font color="green" size="-1"> French </font>
-<LI><font color="green" size="-1"> Italian </font>
-<LI><font color="red"><b> Portuguese </b></font>
-<LI><font color="orange"><i> Romanian </i></font>
-<LI><font color="green" size="-1"> Spanish </font>
-</UL>
-
-<P>
-Semitic:
-</P>
-<UL>
-<LI><font color="orange"><i> Arabic </i></font>
-<LI><font color="red"><b> Maltese </b></font>
-</UL>
-
-<P>
-Slavonic:
-</P>
-<UL>
-<LI><font color="green" size="-1"> Bulgarian </font>
-<LI><font color="red"><b> Czech </b></font>
-<LI><font color="orange"><i> Polish </i></font>
-<LI><font color="green" size="-1"> Russian </font>
-<LI><font color="red"><b> Slovak </b></font>
-<LI><font color="red"><b> Slovenian </b></font>
-</UL>
-
-<P>
-Tai:
-</P>
-<UL>
-<LI><font color="orange"><i> Thai </i></font>
-</UL>
-
-<P>
-Turkic:
-</P>
-<UL>
-<LI><font color="orange"><i> Turkish </i></font>
-</UL>
-
-<A NAME="toc3"></A>
-<H3>Who is qualified</H3>
-<P>
-Writing a resource grammar implementation requires good general programming
-skills, and a good explicit knowledge of the grammar of the target language. 
-A typical participant could be 
-</P>
-<UL>
-<LI>native or fluent speaker of the target language
-<LI>interested in languages on the theoretical level, and preferably familiar
-  with many languages (to be able to think about them on an abstract level)
-<LI>familiar with functional programming languages such as ML or Haskell
-  (GF itself is a language similar to these)
-<LI>on Master's or PhD level in linguistics, computer science, or mathematics
-</UL>
-
-<P>
-But it is the quality of the assignment that is assessed, not any formal
-requirements. The "typical participant" was described to give an idea of
-who is likely to succeed in this.
-</P>
-<A NAME="toc4"></A>
-<H3>The Summer School</H3>
-<P>
-A Summer School on resource grammars and applications will
-be organized at the campus of Chalmers University of Technology in Gothenburg,
-Sweden, on 17-28 August 2009. It can be seen as a natural checkpoint in 
-a resource grammar project; the participants are assumed to learn GF before
-the Summer School, but how far they have come in their projects may vary.
-</P>
-<P>
-More information on the Summer School web page:
-</P>
-<P>
-<A HREF="http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-summerschool.html"><CODE>http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-summerschool.html</CODE></A>
-</P>
-<A NAME="toc5"></A>
-<H2>Other project ideas</H2>
-<A NAME="toc6"></A>
-<H3>GF interpreter in Java</H3>
-<P>
-The idea is to write a run-time system for GF grammars in Java. This enables
-the use of <B>embedded grammars</B> in Java applications. This project is
-a fresh-up of <A HREF="http://www.cs.chalmers.se/~bringert/gf/gf-java.html">earlier work</A>,
-now using the new run-time format PGF and addressing a new parsing algorithm.
-</P>
-<P>
-Requirements: Java, Haskell, basics of compilers and parsing algorithms.
-</P>
-<A NAME="toc7"></A>
-<H3>GF interpreter in C#</H3>
-<P>
-The idea is to write a run-time system for GF grammars in C#. This enables
-the use of <B>embedded grammars</B> in C# applications. This project is
-similar to <A HREF="http://www.cs.chalmers.se/~bringert/gf/gf-java.html">earlier work</A>
-on Java, now addressing C# and using the new run-time format PGF.
-</P>
-<P>
-Requirements: C#, Haskell, basics of compilers and parsing algorithms.
-</P>
-<A NAME="toc8"></A>
-<H3>GF localization library</H3>
-<P>
-This is an idea for a software localization library using GF grammars.
-The library should replace strings by grammar rules, which can be conceived
-as very smart templates always guaranteeing grammatically correct output.
-The library should be based on the 
-<A HREF="http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/doc/synopsis.html">GF Resource Grammar Library</A>, providing infrastructure
-currently for 12 languages.
-</P>
-<P>
-Requirements: GF, some natural languages, some localization platform
-</P>
-<A NAME="toc9"></A>
-<H3>Multilingual grammar applications for mobile phones</H3>
-<P>
-GF grammars can be compiled into programs that can be run on different 
-platforms, such as web browsers and mobile phones. An example is a
-<A HREF="http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/demos/index-numbers.html">numeral translator</A> running on both these platforms.
-</P>
-<P>
-The proposed project is rather open: find some cool applications of 
-the technology that are useful or entertaining for mobile phone users. A 
-part of the project is to investigate implementation issues such as making 
-the best use of the phone's resources. Possible applications have 
-something to do with translation; one suggestion is an sms editor/translator.
-</P>
-<P>
-Requirements: GF, JavaScript, some phone application development tools
-</P>
-<A NAME="toc10"></A>
-<H3>Multilingual grammar applications for the web</H3>
-<P>
-This project is rather open: find some cool applications of 
-the technology that are useful or entertaining on the web. Examples include
-</P>
-<UL>
-<LI>translators: see  <A HREF="http://tournesol.cs.chalmers.se:41296/translate">demo</A>
-<LI>multilingual wikis: see <A HREF="http://csmisc14.cs.chalmers.se/~meza/restWiki/wiki.cgi">demo</A>
-<LI>fridge magnets: see  <A HREF="http://tournesol.cs.chalmers.se:41296/fridge">demo</A>
-</UL>
-
-<P>
-Requirements: GF, JavaScript or Java and Google Web Toolkit, CGI
-</P>
-<A NAME="toc11"></A>
-<H3>GMail gadget for GF</H3>
-<P>
-It is possible to add custom gadgets to GMail. If you are going to write 
-e-mail in a foreign language then you probably will need help from 
-dictonary or you may want to check something in the grammar. GF provides 
-all resources that you may need but you have to think about how to 
-design gadget that fits well in the GMail environment and what 
-functionality from GF you want to expose.
-</P>
-<P>
-Requirements: GF, Google Web Toolkit
-</P>
-<A NAME="toc12"></A>
-<H2>Dissemination and intellectual property</H2>
-<P>
-All code suggested here will be released under the LGPL just like 
-the current resource grammars and run-time GF libraries,
-with the copyright held by respective authors.
-</P>
-<P>
-As a rule, the code will be distributed via the GF web site.
-</P>
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -\-toc gf-ideas.txt -->
-</BODY></HTML>
diff --git a/doc/gf-ideas.txt b/doc/gf-ideas.txt
deleted file mode 100644
--- a/doc/gf-ideas.txt
+++ /dev/null
@@ -1,231 +0,0 @@
-GF Project Ideas
-Resource Grammars, Web Applications, etc
-contact: Aarne Ranta (aarne at chalmers dot se)
-
-%!Encoding : iso-8859-1
-
-%!target:html
-%!postproc(html): #BECE <center>
-%!postproc(html): #ENCE </center>
-%!postproc(html): #GRAY <font color="green" size="-1">
-%!postproc(html): #EGRAY </font>
-%!postproc(html): #RED <font color="red"><b>
-%!postproc(html): #YELLOW <font color="orange"><i>
-%!postproc(html): #ERED </b></font>
-%!postproc(html): #EYELLOW </i></font>
-
-#BECE
-[Logos/gf0.png]
-#ENCE
-
-
-==Resource Grammar Implementations==
-
-GF Resource Grammar Library is an open-source computational grammar resource
-that currently covers 12 languages.
-The Library is a collaborative effort to which programmers from many countries
-have contributed. The next goal is to extend the library 
-to all of the 23 official EU languages. Also other languages
-are welcome all the time. The following diagram show the current status of the
-library. Each of the red and yellow ones are a potential project.
-
-#BECE
-[school-langs.png]
-#ENCE
-
-
-//red=wanted, green=exists, orange=in-progress, solid=official-eu, dotted=non-eu//
-
-The linguistic coverage of the library includes the inflectional morphology
-and basic syntax of each language. It can be used in GF applications
-and also ported to other formats. It can also be used for building other
-linguistic resources, such as morphological lexica and parsers.
-The library is licensed under LGPL.
-
-
-===Tasks===
-
-Writing a grammar for a language is usually easier if other languages
-from the same family already have grammars. The colours have the same
-meaning as in the diagram above; in addition, we use boldface for the
-red, still unimplemented languages and italics for the
-orange languages in progress. Thus, in particular, each of the languages
-coloured red below are possible programming projects.
-
-Baltic:
-- #RED Latvian #ERED
-- #RED Lithuanian #ERED
-
-
-Celtic: 
-- #RED Irish #ERED
-
-
-Fenno-Ugric: 
-- #RED Estonian #ERED 
-- #GRAY Finnish #EGRAY 
-- #RED Hungarian #ERED
-
-
-Germanic: 
-- #GRAY Danish #EGRAY
-- #RED Dutch #ERED
-- #GRAY English #EGRAY
-- #GRAY German #EGRAY
-- #GRAY Norwegian #EGRAY
-- #GRAY Swedish #EGRAY
-
-
-Hellenic:
-- #RED Greek #ERED
-
-
-Indo-Iranian:
-- #YELLOW Hindi #EYELLOW
-- #YELLOW Urdu #EYELLOW
-
-
-Romance:
-- #GRAY Catalan #EGRAY
-- #GRAY French #EGRAY
-- #GRAY Italian #EGRAY
-- #RED Portuguese #ERED
-- #YELLOW Romanian #EYELLOW
-- #GRAY Spanish #EGRAY
-
-
-Semitic:
-- #YELLOW Arabic #EYELLOW
-- #RED Maltese #ERED
-
-
-Slavonic:
-- #GRAY Bulgarian #EGRAY
-- #RED Czech #ERED
-- #YELLOW Polish #EYELLOW
-- #GRAY Russian #EGRAY
-- #RED Slovak #ERED
-- #RED Slovenian #ERED
-
-
-Tai:
-- #YELLOW Thai #EYELLOW
-
-
-Turkic:
-- #YELLOW Turkish #EYELLOW
-
-
-===Who is qualified===
-
-Writing a resource grammar implementation requires good general programming
-skills, and a good explicit knowledge of the grammar of the target language. 
-A typical participant could be 
-- native or fluent speaker of the target language
-- interested in languages on the theoretical level, and preferably familiar
-  with many languages (to be able to think about them on an abstract level)
-- familiar with functional programming languages such as ML or Haskell
-  (GF itself is a language similar to these)
-- on Master's or PhD level in linguistics, computer science, or mathematics
-
-
-But it is the quality of the assignment that is assessed, not any formal
-requirements. The "typical participant" was described to give an idea of
-who is likely to succeed in this.
-
-
-===The Summer School===
-
-A Summer School on resource grammars and applications will
-be organized at the campus of Chalmers University of Technology in Gothenburg,
-Sweden, on 17-28 August 2009. It can be seen as a natural checkpoint in 
-a resource grammar project; the participants are assumed to learn GF before
-the Summer School, but how far they have come in their projects may vary.
-
-More information on the Summer School web page:
-
-[``http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-summerschool.html`` http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/doc/gf-summerschool.html]
-
-
-==Other project ideas==
-
-===GF interpreter in Java===
-
-The idea is to write a run-time system for GF grammars in Java. This enables
-the use of **embedded grammars** in Java applications. This project is
-a fresh-up of [earlier work http://www.cs.chalmers.se/~bringert/gf/gf-java.html],
-now using the new run-time format PGF and addressing a new parsing algorithm.
-
-Requirements: Java, Haskell, basics of compilers and parsing algorithms.
-
-
-===GF interpreter in C#===
-
-The idea is to write a run-time system for GF grammars in C#. This enables
-the use of **embedded grammars** in C# applications. This project is
-similar to [earlier work http://www.cs.chalmers.se/~bringert/gf/gf-java.html]
-on Java, now addressing C# and using the new run-time format PGF.
-
-Requirements: C#, Haskell, basics of compilers and parsing algorithms.
-
-
-===GF localization library===
-
-This is an idea for a software localization library using GF grammars.
-The library should replace strings by grammar rules, which can be conceived
-as very smart templates always guaranteeing grammatically correct output.
-The library should be based on the 
-[GF Resource Grammar Library http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/lib/resource/doc/synopsis.html], providing infrastructure
-currently for 12 languages.
-
-Requirements: GF, some natural languages, some localization platform
-
-
-===Multilingual grammar applications for mobile phones===
-
-GF grammars can be compiled into programs that can be run on different 
-platforms, such as web browsers and mobile phones. An example is a
-[numeral translator http://www.cs.chalmers.se/Cs/Research/Language-technology/GF/demos/index-numbers.html] running on both these platforms.
-
-The proposed project is rather open: find some cool applications of 
-the technology that are useful or entertaining for mobile phone users. A 
-part of the project is to investigate implementation issues such as making 
-the best use of the phone's resources. Possible applications have 
-something to do with translation; one suggestion is an sms editor/translator.
-
-Requirements: GF, JavaScript, some phone application development tools
-
-
-===Multilingual grammar applications for the web===
-
-This project is rather open: find some cool applications of 
-the technology that are useful or entertaining on the web. Examples include
-- translators: see  [demo http://129.16.250.57:41296/translate]
-- multilingual wikis: see [demo http://csmisc14.cs.chalmers.se/~meza/restWiki/wiki.cgi]
-- fridge magnets: see  [demo http://129.16.250.57:41296/fridge]
-
-
-Requirements: GF, JavaScript or Java and Google Web Toolkit, CGI
-
-
-===GMail gadget for GF===
-
-It is possible to add custom gadgets to GMail. If you are going to write 
-e-mail in a foreign language then you probably will need help from 
-dictonary or you may want to check something in the grammar. GF provides 
-all resources that you may need but you have to think about how to 
-design gadget that fits well in the GMail environment and what 
-functionality from GF you want to expose.
-
-Requirements: GF, Google Web Toolkit
-
-
-
-==Dissemination and intellectual property==
-
-All code suggested here will be released under the LGPL just like 
-the current resource grammars and run-time GF libraries,
-with the copyright held by respective authors.
-
-As a rule, the code will be distributed via the GF web site.
-
diff --git a/doc/gf-lrec-2010.pdf b/doc/gf-lrec-2010.pdf
new file mode 100644
# file too large to diff: doc/gf-lrec-2010.pdf
diff --git a/doc/gf-people.html b/doc/gf-people.html
--- a/doc/gf-people.html
+++ b/doc/gf-people.html
@@ -1,10 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html> 
 
 <head>
 <title>GF People</title>
+<link rel=stylesheet href="../css/style.css">
 </head>
 
-<body bgcolor="#FFFFFF" text="#000000" >
+<body>
 
 <center>
 <IMG SRC="Logos/gf0.png">
@@ -13,37 +15,41 @@
 
 </center>
 
-Most of the code is by
-<a "http://www.chalmers.se/cse/EN/organization/divisions/computing-science/people/angelov-krasimir">Krasimir Angelov</a>,
-<a href="http://www.cs.chalmers.se/~bringert">Björn Bringert</a>,
+The current developers and maintainers are
+<a href="http://www.chalmers.se/cse/EN/organization/divisions/computing-science/people/angelov-krasimir">Krasimir Angelov</a>,
+<a href="http://www.cse.chalmers.se/~hallgren/">Thomas Hallgren</a>,
 and
-<a href="http://www.cs.chalmers.se/~aarne">Aarne Ranta</a>. Bug reports should be
-posted via the <a href="http://trac.haskell.org/gf/">GF bug tracker</a>.
+<a href="http://www.cse.chalmers.se/~aarne/">Aarne Ranta</a>. Bug reports should be
+posted via the
+<a href="http://code.google.com/p/grammatical-framework/issues/list">GF bug tracker</a>.
 
 
 <p>
 
 Also the following people have contributed code to some of the versions:
 
-<p>
+<dl>
 
-Håkan Burden (Chalmers)
-<br>
+<dt>Grégoire Détrez (University of Gothenburg)
+<dt>Ramona Enache (University of Gothenburg)
+<dt>
+<a href="http://www.cse.chalmers.se/alumni/bringert">Björn Bringert</a> (University of Gothenburg)
+<dt>
+Håkan Burden (University of Gothenburg)
+<dt>
 Hans-Joachim Daniels (Karlsruhe)
-<br>
+<dt>
 <a href="http://www.cs.chalmers.se/~markus">Markus Forsberg</a> (Chalmers)
-<br>
-<a href="http://www.cs.chalmers.se/~hallgren">Thomas Hallgren</a> (Chalmers)
-<br>
-<a href="http://www.cs.chalmers.se/~krijo">Kristofer Johannisson</a> (Chalmers)
-<br>
-<a href="http://www.cs.chalmers.se/~janna">Janna Khegai</a>  (Chalmers)
-<br>
-<a href="http://www.cs.chalmers.se/~peb">Peter Ljunglöf</a>  (Chalmers)
-<br>
+<dt>
+<a href="http://www.cs.chalmers.se/~krijo">Kristofer Johannisson</a> (University of Gothenburg)
+<dt>
+<a href="http://www.cs.chalmers.se/~janna">Janna Khegai</a> (Chalmers)
+<dt>
+<a href="http://www.cs.chalmers.se/~peb">Peter Ljunglöf</a> (University of Gothenburg)
+<dt>
 Petri Mäenpää (Nokia)
+</dl>
 
-<p>
 
 At least the following colleagues are thanked for suggestions,
 bug reports, and other indirect contributions to the code. (Notice:
diff --git a/doc/gf-quickstart.html b/doc/gf-quickstart.html
--- a/doc/gf-quickstart.html
+++ b/doc/gf-quickstart.html
@@ -1,15 +1,19 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html><head><title>GF Quickstart</title></head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>GF Quickstart</title>
+<link rel=stylesheet href="../css/style.css">
+</head>
  
 
-<body bgcolor="#ffffff" text="#000000">
+<body>
 
 <center>
 <img src="Logos/gf0.png">
 <p>
 Aarne Ranta
 <p>
-3 September, 2007
+December 2010 for GF 3.2
 
 <p>
 
@@ -17,14 +21,14 @@
 
 </center>
 
-This Quick Start shows two examples of how GF can be used.
+This Quick Start shows a few examples of how GF can be used.
 We assume that you have downloaded and installed GF, so that
 the command <tt>gf</tt> works for you. See download and install
-instructions <a href="http://digitalgrammars.com/gf/download/">here</a>.
+instructions <a href="../download/index.html">here</a>.
 
 
 
-<h2>Translation and generation</h2>
+<h2>Using GF for translation and generation</h2>
 
 When you have downloaded and installed GF:
 <ol>
@@ -35,22 +39,45 @@
 Or go to <tt>GF/examples/tutorial/food/</tt>, if you have downloaded the
 GF sources.
 
- <li> Start GF with the command
+ <li> Start GF with the shell command (without the prompt <tt>$</tt>)
 <pre>
-  gf FoodIta.gf FoodEng.gf
+  $ gf FoodIta.gf FoodEng.gf
 </pre>
 
 <li> <b>Translation</b>. Try your first translation by giving the GF command
 <pre>
-  parse "this cheese is very very Italian" | tree_bank
+  parse "this cheese is very very Italian" | linearize
 </pre>
+Notice that the parser accept the tabulator for word completion.
 
 <li> <b>Generation</b>. Random-generate sentences in two languages:
 <pre>
-  generate_random | l -multi
+  generate_random | linearize
 </pre>
 
-<li> <b>Grammar development</b>. Add words to the <tt>Food</tt>
+<li> <b>Other commands</b>. Use the help command
+<pre>
+  help
+</pre>
+<li> <b>More examples</b>. Go to <tt>GF/examples/phrasebook</tt> or some other
+subdirectory of  <tt>GF/examples/</tt>. Or try a resource grammar by, for instance,
+<pre>
+  import alltenses/LangEng.gfo alltenses/LangGer.gfo
+
+  parse -lang=Eng "I love you" | linearize -treebank
+</pre>
+The resource grammars are found relative to the value of <tt>GF_LIB_PATH</tt>, which
+you may have to set; see <a href="../download/index.html">here</a> for instructions.
+
+
+
+</ol>
+
+
+
+<h2>Grammar development</h2>
+
+Add words to the <tt>Food</tt>
 grammars and try the above commands again. For instance, add the following lines:
 <pre>
   Bread : Kind ;          -- in Food.gf
@@ -61,39 +88,59 @@
 <i>this bread is very Italian</i>.
 </ol>
 To lear more on GF commands and
-grammar development, go to the
-<a href="tutorial/gf-tutorial2.html">New Grammarian's Tutorial</a>.
+grammar development, go to the one of the tutorials:
+<ul>
+<li> <a href="tutorial/gf-tutorial.html">GF Tutorial</a>: older, more programmer-oriented
+<li> <a href="gf-lrec-2010.pdf">GF Resource Tutorial</a>: newer, more linguist-oriented
+</ul>
+To learn about how GF is used for easily writing grammars for 16 languages, consult the
+<ul>
+<li> <a href="../lib/doc/synopsis.html">GF Resource Grammar Library</a>.
+</ul>
 
 
 
-<h2>Multilingual authoring</h2>
+<h2>Run-time grammars and web applications</h2>
 
-This demo also requires the GUI package, which makes the command
-<tt>jgf</tt> work for you.
-<ol>
-<li> Download the file <a href="../examples/letter/Letter.gfcm"><tt>Letter.gfcm</tt></a>.
-<li> Start the GF editor by the command
+GF has its own "machine language", PGF (Portable Grammar Format),
+which is recommended for use in applications at run time. To produce a PGF file from
+the two grammars above, do
 <pre>
-  gfeditor Letter.gfcm
+  gf -make FoodIta.gf FoodEng.gf
+  wrote Food.pgf
 </pre>
-<li> When the editor window is open, select "Letter" from the "New" menu.
-<li> Push the button "Random" in the lower end of the window.
-<li> Move the pointer to some place in the text, e.g. to the first word (in any
-  of the languages), and click. The first word should now be highlighted and
-  a number of alternatives appear in the lower window part (a similar situation
-  is shown in the picture below).
-<li> Double-click at some of the alternatives marked "ch ..." and observe how
-  the text changes in each of the languages.
-</ol>
-See the <a href="http://www.cs.chalmers.se/~aarne/GF2.0/doc/javaGUImanual/javaGUImanual.htm">Editor User Manual</a>
-for more information on how to use the
-editor. To change the grammars, you should not edit <tt>Letter.gfcm</tt>,
-which is low-level code generated by the GF grammar compiler. Instead, you
-can edit the files in <tt>examples/letter</tt> in the GF grammar package,
-and compile by using the script <tt>mkLetter.gfs</tt> in the same package.
+You can use this in Haskell and Java programs, and also on web services, such as
+<ul>
+<li> the 
+  <a href="http://www.grammaticalframework.org:41296/minibar/minibar.html">minibar</a>
+  fridge magnets
+</ul>
 
+The quickest way to provide a GF web service is to start the program <tt>pgh-http</tt>
+<pre>
+  $ pgh-http
+  Starting HTTP server, open http://localhost:41296/ in your web browser
+
+  Options {documentRoot = "/home/aarne/.cabal/share/gf-server-1.0/www", port = 41296}
+</pre>
+which resides next to your <tt>gf</tt> program. You can view it locally by pointing your
+browser to the URL shown. You can add your own <tt>.pgf</tt> grammar to the service by
+copying it over to the <tt>documentRoot</tt> directory. Just push "reload" in 
+your browser after each such update.
+
 <p>
 
-<img src="quick-editor.gif">
+To build more customized web application, consult the
+<a href="http://code.google.com/p/grammatical-framework/wiki/SideBar?tm=6">developer wiki</a>.
+
+
+<h2>User group</h2>
+
+You are welcome to join the <A HREF="http://groups.google.com/group/gf-dev">User Group</A>
+to get help and discuss GF-related issues!
+
+
+
+
 
 </body></html>
diff --git a/doc/gf-reference.html b/doc/gf-reference.html
--- a/doc/gf-reference.html
+++ b/doc/gf-reference.html
@@ -2,12 +2,13 @@
 <HTML>
 <HEAD>
 <META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">
 <TITLE>GF Quick Reference</TITLE>
 </HEAD><BODY BGCOLOR="white" TEXT="black">
 <P ALIGN="center"><CENTER><H1>GF Quick Reference</H1>
 <FONT SIZE="4">
 <I>Aarne Ranta</I><BR>
-Tue Apr  4 09:41:30 2006
+April 4, 2006
 </FONT></CENTER>
 
 <P></P>
@@ -572,6 +573,6 @@
 <I>The Journal of Functional Programming</I>, vol. 14:2. 2004, pp. 145-189. 
 </P>
 
-<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml -\-toc gf-reference.txt -->
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml ./doc/gf-reference.t2t -->
 </BODY></HTML>
diff --git a/doc/gf-reference.t2t b/doc/gf-reference.t2t
new file mode 100644
--- /dev/null
+++ b/doc/gf-reference.t2t
@@ -0,0 +1,479 @@
+GF Quick Reference
+Aarne Ranta
+April 4, 2006
+
+% NOTE: this is a txt2tags file.
+% Create an html file from this file using:
+% txt2tags -thtml --toc gf-reference.html
+
+%!style:../css/style.css
+%!target:html
+%!options: --toc
+
+This is a quick reference on GF grammars. It aims to
+cover all forms of expression available when writing
+grammars. It assumes basic knowledge of GF, which
+can be acquired from the 
+[GF Tutorial http://www.cs.chalmers.se/~aarne/GF/doc/tutorial/].
+Help on GF commands is obtained on line by the
+help command (``help``), and help on invoking
+GF with (``gf -help``).
+
+
+===A complete example===
+
+This is a complete example of a GF grammar divided
+into three modules in files. The grammar recognizes the
+phrases //one pizza// and //two pizzas//.
+
+File ``Order.gf``:
+```
+abstract Order = {
+cat 
+  Order ; 
+  Item ;
+fun 
+  One, Two : Item -> Order ;
+  Pizza : Item ;
+}
+```
+File ``OrderEng.gf`` (the top file):
+```
+--# -path=.:prelude
+concrete OrderEng of Order = 
+ open Res, Prelude in {
+flags startcat=Order ;
+lincat 
+  Order = SS ; 
+  Item  = {s : Num => Str} ;
+lin 
+  One it = ss ("one" ++ it.s ! Sg) ;
+  Two it = ss ("two" ++ it.s ! Pl) ;
+  Pizza  = regNoun "pizza" ;
+}
+```
+File ``Res.gf``:
+```
+resource Res = open Prelude in {
+param Num = Sg | Pl ;
+oper regNoun : Str -> {s : Num => Str} =
+  \dog -> {s = table {
+    Sg => dog ;
+    _  => dog + "s"
+    }
+  } ;
+}
+```
+To use this example, do
+```
+  % gf             -- in shell: start GF
+  > i OrderEng.gf  -- in GF: import grammar
+  > p "one pizza"  --        parse string
+  > l Two Pizza    --        linearize tree
+```
+
+
+
+===Modules and files===
+
+One module per file.
+File named ``Foo.gf`` contains module named
+``Foo``.
+
+Each module has the structure
+```
+moduletypename =   
+  Inherits **        -- optional
+  open Opens in      -- optional
+  { Judgements }   
+```
+Inherits are names of modules of the same type.
+Inheritance can be restricted:
+```
+  Mo[f,g],  -- inherit only f,g from Mo
+  Lo-[f,g]  -- inheris all but f,g from Lo
+```
+Opens are possible in ``concrete`` and ``resource``.
+They are names of modules of these two types, possibly
+qualified:
+```
+  (M = Mo), -- refer to f as M.f or Mo.f
+  (Lo = Lo) -- refer to f as Lo.f
+```
+Module types and judgements in them:
+```
+abstract A          -- cat, fun, def, data
+concrete C of A     -- lincat, lin, lindef, printname
+resource R          -- param, oper
+
+interface I         -- like resource, but can have
+                       oper f : T without definition
+instance J of I     -- like resource, defines opers
+                       that I leaves undefined
+incomplete          -- functor: concrete that opens 
+ concrete CI of A =    one or more interfaces
+  open I in ...
+concrete CJ of A =  -- completion: concrete that
+  CI with              instantiates a functor by
+    (I = J)            instances of open interfaces
+``` 
+The forms 
+``param``, ``oper`` 
+may appear in ``concrete`` as well, but are then
+not inherited to extensions.
+
+All modules can moreover have ``flags`` and comments.
+Comments have the forms
+```
+-- till the end of line
+{- any number of lines between -}
+--# used for compiler pragmas
+```
+A ``concrete`` can be opened like a ``resource``.
+It is translated as follows:
+```
+cat C          --->  oper C : Type = 
+lincat C = T           T ** {lock_C : {}}
+
+fun f : G -> C --->  oper f : A* -> C* = \g -> 
+lin f = t              t g ** {lock_C = <>}          
+```
+An ``abstract`` can be opened like an ``interface``.
+Any ``concrete`` of it then works as an ``instance``.
+
+
+
+===Judgements===
+
+```
+cat C               -- declare category C
+cat C (x:A)(y:B x)  -- dependent category C
+cat C A B           -- same as C (x : A)(y : B)
+fun f : T           -- declare function f of type T
+def f = t           -- define f as t
+def f p q = t       -- define f by pattern matching
+data C = f | g      -- set f,g as constructors of C
+data f : A -> C     -- same as 
+                       fun f : A -> C; data C=f
+
+lincat C = T        -- define lin.type of cat C
+lin f = t           -- define lin. of fun f
+lin f x y = t       -- same as lin f = \x y -> t
+lindef C = \s -> t  -- default lin. of cat C
+printname fun f = s -- printname shown in menus
+printname cat C = s -- printname shown in menus
+printname f = s     -- same as printname fun f = s
+
+param P = C | D Q R -- define parameter type P 
+                       with constructors
+                       C : P, D : Q -> R -> P
+oper h : T = t      -- define oper h of type T
+oper h = t          -- omit type, if inferrable
+
+flags p=v           -- set value of flag p
+```
+Judgements are terminated by semicolons (``;``).
+Subsequent judgments of the same form may share the
+keyword:
+```
+cat C ; D ;         -- same as cat C ; cat D ;
+```
+Judgements can also share RHS:
+```
+fun f,g : A         -- same as fun f : A ; g : A
+```
+
+
+===Types===
+
+Abstract syntax (in ``fun``):
+```
+C                -- basic type, if cat C
+C a b            -- basic type for dep. category
+(x : A) -> B     -- dep. functions from A to B
+(_ : A) -> B     -- nondep. functions from A to B
+(p,q : A) -> B   -- same as (p : A)-> (q : A) -> B
+A -> B           -- same as (_ : A) -> B
+Int              -- predefined integer type
+Float            -- predefined float type
+String           -- predefined string type
+```
+Concrete syntax (in ``lincat``):
+```
+Str              -- token lists
+P                -- parameter type, if param P
+P => B           -- table type, if P param. type
+{s : Str ; p : P}-- record type
+{s,t : Str}      -- same as {s : Str ; t : Str}
+{a : A} **{b : B}-- record type extension, same as  
+                    {a : A ; b : B}
+A * B * C        -- tuple type, same as
+                    {p1 : A ; p2 : B ; p3 : C}
+Ints n           -- type of n first integers
+```
+Resource (in ``oper``): all those of concrete, plus
+``` 
+Tok              -- tokens (subtype of Str)
+A -> B           -- functions from A to B
+Int              -- integers
+Strs             -- list of prefixes (for pre)
+PType            -- parameter type
+Type             -- any type
+```
+As parameter types, one can use any finite type:
+``P`` defined in ``param P``,
+``Ints n``, and record types of parameter types.
+
+
+
+===Expressions===
+
+Syntax trees = full function applications
+```
+f a b              -- : C if fun f : A -> B -> C
+1977               -- : Int
+3.14               -- : Float
+"foo"              -- : String
+```
+Higher-Order Abstract syntax (HOAS): functions as arguments:
+```
+F a (\x -> c)      -- : C if a : A, c : C (x : B), 
+                      fun F : A -> (B -> C) -> C
+```
+Tokens and token lists
+```
+"hello"            -- : Tok, singleton Str
+"hello" ++ "world" -- : Str
+["hello world"]    -- : Str, same as "hello" ++ "world"
+"hello" + "world"  -- : Tok, computes to "helloworld"
+[]                 -- : Str, empty list
+```
+Parameters
+```
+Sg                   -- atomic constructor
+VPres Sg P2          -- applied constructor
+{n = Sg ; p = P3}    -- record of parameters
+```
+Tables
+```
+table {              -- by full branches
+  Sg => "mouse" ;
+  Pl => "mice"
+  }
+table {              -- by pattern matching
+  Pl => "mice" ;
+  _  => "mouse"      -- wildcard pattern
+  }
+table {               
+  n => regn n "cat"  -- variable pattern 
+  }
+table Num {...}      -- table given with arg. type
+table ["ox"; "oxen"] -- table as course of values
+\\_ => "fish"        -- same as table {_ => "fish"} 
+\\p,q => t           -- same as \\p => \\q => t
+
+t ! p                -- select p from table t
+case e of {...}      -- same as table {...} ! e 
+```
+Records
+```
+{s = "Liz"; g = Fem} -- record in full form
+{s,t = "et"}         -- same as {s = "et";t= "et"}
+{s = "Liz"} **       -- record extension: same as
+  {g = Fem}             {s = "Liz" ; g = Fem}
+
+<a,b,c>        -- tuple, same as {p1=a;p2=b;p3=c}
+```
+Functions
+```
+\x -> t            -- lambda abstract
+\x,y -> t          -- same as \x -> \y -> t
+\x,_ -> t          -- binding not in t
+```
+Local definitions
+```
+let x : A = d in t -- let definition
+let x = d in t     -- let defin, type inferred
+let x=d ; y=e in t -- same as 
+                      let x=d in let y=e in t
+let {...} in t     -- same as let ... in t
+
+t where {...}      -- same as let ... in t
+```
+Free variation
+```
+variants {x ; y}     -- both x and y possible
+variants {}          -- nothing possible
+```
+Prefix-dependent choices
+```
+pre {"a" ; "an" / v} -- "an" before v, "a" otherw.
+strs {"a" ; "i" ;"o"}-- list of condition prefixes
+```
+Typed expression
+```
+<t:T>                -- same as t, to help type inference
+```
+Accessing bound variables in ``lin``: use fields ``$1, $2, $3,...``. 
+Example:
+```
+fun F : (A : Set) -> (El A -> Prop) -> Prop ; 
+lin F A B = {s = ["for all"] ++ A.s ++ B.$1 ++ B.s}
+```
+
+
+===Pattern matching===
+
+These patterns can be used in branches of ``table`` and
+``case`` expressions. Patterns are matched in the order in
+which they appear in the grammar.
+```
+C                 -- atomic param constructor
+C p q             -- param constr. applied to patterns
+x                 -- variable, matches anything
+_                 -- wildcard, matches anything
+"foo"             -- string
+56                -- integer
+{s = p ; y = q}   -- record, matches extensions too
+<p,q>             -- tuple, same as {p1=p ; p2=q}
+p | q             -- disjunction, binds to first match
+x@p               -- binds x to what p matches
+- p               -- negation
+p + "s"           -- sequence of two string patterns
+p*                -- repetition of a string pattern
+```
+
+===Sample library functions===
+
+```
+-- lib/prelude/Predef.gf
+drop   : Int -> Tok -> Tok   -- drop prefix of length
+take   : Int -> Tok -> Tok   -- take prefix of length
+tk     : Int -> Tok -> Tok   -- drop suffix of length
+dp     : Int -> Tok -> Tok   -- take suffix of length
+occur  : Tok -> Tok -> PBool -- test if substring
+occurs : Tok -> Tok -> PBool -- test if any char occurs
+show   : (P:Type) -> P ->Tok -- param to string
+read   : (P:Type) -> Tok-> P -- string to param
+toStr  : (L:Type) -> L ->Str -- find "first" string
+
+-- lib/prelude/Prelude.gf
+param Bool = True | False
+oper
+  SS  : Type                   -- the type {s : Str}
+  ss  : Str -> SS              -- construct SS
+  cc2 : (_,_ : SS) -> SS       -- concat SS's
+  optStr : Str -> Str          -- string or empty
+  strOpt : Str -> Str          -- empty or string
+  bothWays : Str -> Str -> Str -- X++Y or Y++X 
+  init : Tok -> Tok            -- all but last char
+  last : Tok -> Tok            -- last char
+  prefixSS : Str -> SS -> SS
+  postfixSS : Str -> SS -> SS
+  infixSS : Str -> SS -> SS -> SS
+  if_then_else : (A : Type) -> Bool -> A -> A -> A
+  if_then_Str : Bool -> Str -> Str -> Str
+```
+
+
+===Flags===
+
+Flags can appear, with growing priority,
+- in files, judgement ``flags`` and without dash (``-``)
+- as flags to ``gf`` when invoked, with dash
+- as flags to various GF commands, with dash
+
+
+Some common flags used in grammars:
+```
+startcat=cat    use this category as default 
+
+lexer=literals  int and string literals recognized
+lexer=code      like program code
+lexer=text      like text: spacing, capitals
+lexer=textlit   text, unknowns as string lits
+
+unlexer=code    like program code
+unlexer=codelit code, remove string lit quotes
+unlexer=text    like text: punctuation, capitals
+unlexer=textlit text, remove string lit quotes
+unlexer=concat  remove all spaces
+unlexer=bind    remove spaces around "&+"
+
+optimize=all_subs  best for almost any concrete
+optimize=values    good for lexicon concrete
+optimize=all       usually good for resource
+optimize=noexpand  for resource, if =all too big
+```
+For the full set of values for ``FLAG``, 
+use on-line ``h -FLAG``.
+
+
+
+===File paths===
+
+Colon-separated lists of directories searched in the
+given order: 
+```
+--# -path=.:../abstract:../common:prelude
+```
+This can be (in order of growing preference), as
+first line in the top file, as flag to ``gf``
+when invoked, or as flag to the ``i`` command.
+The prefix ``--#`` is used only in files.
+
+If the environment variabls ``GF_LIB_PATH`` is defined, its
+value is automatically prefixed to each directory to
+extend the original search path.
+
+
+===Alternative grammar formats===
+
+**Old GF** (before GF 2.0): 
+all judgements in any kinds of modules,
+division into files uses ``include``s.
+A file ``Foo.gf`` is recognized as the old format
+if it lacks a module header. 
+
+**Context-free** (file ``foo.cf``). The form of rules is e.g.
+```
+Fun. S ::= NP "is" AP ;
+```
+If ``Fun`` is omitted, it is generated automatically. 
+Rules must be one per line. The RHS can be empty.
+
+**Extended BNF** (file ``foo.ebnf``). The form of rules is e.g.
+```
+S ::= (NP+ ("is" | "was") AP | V NP*) ;
+```
+where the RHS is a regular expression of categories
+and quoted tokens: ``"foo", CAT, T U, T|U, T*, T+, T?``, or empty.
+Rule labels are generated automatically.
+
+
+**Probabilistic grammars** (not a separate format).
+You can set the probability of a function ``f`` (in its value category) by
+```
+--# prob f 0.009
+```
+These are put into a file given to GF using the ``probs=File`` flag
+on command line. This file can be the grammar file itself.
+
+**Example-based grammars**  (file ``foo.gfe``). Expressions of the form
+```
+in Cat "example string"
+```
+are preprocessed by using a parser given by the flag 
+```
+--# -resource=File
+```
+and the result is written to ``foo.gf``.
+
+
+===References===
+
+[GF Homepage http://www.cs.chalmers.se/~aarne/GF/]
+
+A. Ranta, Grammatical Framework: A Type-Theoretical Grammar Formalism.
+//The Journal of Functional Programming//, vol. 14:2. 2004, pp. 145-189. 
+
diff --git a/doc/gf-reference.txt b/doc/gf-reference.txt
deleted file mode 100644
--- a/doc/gf-reference.txt
+++ /dev/null
@@ -1,478 +0,0 @@
-GF Quick Reference
-Aarne Ranta
-%%date(%c)
-
-% NOTE: this is a txt2tags file.
-% Create an html file from this file using:
-% txt2tags -thtml --toc gf-reference.html
-
-%!target:html
-
-
-This is a quick reference on GF grammars. It aims to
-cover all forms of expression available when writing
-grammars. It assumes basic knowledge of GF, which
-can be acquired from the 
-[GF Tutorial http://www.cs.chalmers.se/~aarne/GF/doc/tutorial/].
-Help on GF commands is obtained on line by the
-help command (``help``), and help on invoking
-GF with (``gf -help``).
-
-
-===A complete example===
-
-This is a complete example of a GF grammar divided
-into three modules in files. The grammar recognizes the
-phrases //one pizza// and //two pizzas//.
-
-File ``Order.gf``:
-```
-abstract Order = {
-cat 
-  Order ; 
-  Item ;
-fun 
-  One, Two : Item -> Order ;
-  Pizza : Item ;
-}
-```
-File ``OrderEng.gf`` (the top file):
-```
---# -path=.:prelude
-concrete OrderEng of Order = 
- open Res, Prelude in {
-flags startcat=Order ;
-lincat 
-  Order = SS ; 
-  Item  = {s : Num => Str} ;
-lin 
-  One it = ss ("one" ++ it.s ! Sg) ;
-  Two it = ss ("two" ++ it.s ! Pl) ;
-  Pizza  = regNoun "pizza" ;
-}
-```
-File ``Res.gf``:
-```
-resource Res = open Prelude in {
-param Num = Sg | Pl ;
-oper regNoun : Str -> {s : Num => Str} =
-  \dog -> {s = table {
-    Sg => dog ;
-    _  => dog + "s"
-    }
-  } ;
-}
-```
-To use this example, do
-```
-  % gf             -- in shell: start GF
-  > i OrderEng.gf  -- in GF: import grammar
-  > p "one pizza"  --        parse string
-  > l Two Pizza    --        linearize tree
-```
-
-
-
-===Modules and files===
-
-One module per file.
-File named ``Foo.gf`` contains module named
-``Foo``.
-
-Each module has the structure
-```
-moduletypename =   
-  Inherits **        -- optional
-  open Opens in      -- optional
-  { Judgements }   
-```
-Inherits are names of modules of the same type.
-Inheritance can be restricted:
-```
-  Mo[f,g],  -- inherit only f,g from Mo
-  Lo-[f,g]  -- inheris all but f,g from Lo
-```
-Opens are possible in ``concrete`` and ``resource``.
-They are names of modules of these two types, possibly
-qualified:
-```
-  (M = Mo), -- refer to f as M.f or Mo.f
-  (Lo = Lo) -- refer to f as Lo.f
-```
-Module types and judgements in them:
-```
-abstract A          -- cat, fun, def, data
-concrete C of A     -- lincat, lin, lindef, printname
-resource R          -- param, oper
-
-interface I         -- like resource, but can have
-                       oper f : T without definition
-instance J of I     -- like resource, defines opers
-                       that I leaves undefined
-incomplete          -- functor: concrete that opens 
- concrete CI of A =    one or more interfaces
-  open I in ...
-concrete CJ of A =  -- completion: concrete that
-  CI with              instantiates a functor by
-    (I = J)            instances of open interfaces
-``` 
-The forms 
-``param``, ``oper`` 
-may appear in ``concrete`` as well, but are then
-not inherited to extensions.
-
-All modules can moreover have ``flags`` and comments.
-Comments have the forms
-```
--- till the end of line
-{- any number of lines between -}
---# used for compiler pragmas
-```
-A ``concrete`` can be opened like a ``resource``.
-It is translated as follows:
-```
-cat C          --->  oper C : Type = 
-lincat C = T           T ** {lock_C : {}}
-
-fun f : G -> C --->  oper f : A* -> C* = \g -> 
-lin f = t              t g ** {lock_C = <>}          
-```
-An ``abstract`` can be opened like an ``interface``.
-Any ``concrete`` of it then works as an ``instance``.
-
-
-
-===Judgements===
-
-```
-cat C               -- declare category C
-cat C (x:A)(y:B x)  -- dependent category C
-cat C A B           -- same as C (x : A)(y : B)
-fun f : T           -- declare function f of type T
-def f = t           -- define f as t
-def f p q = t       -- define f by pattern matching
-data C = f | g      -- set f,g as constructors of C
-data f : A -> C     -- same as 
-                       fun f : A -> C; data C=f
-
-lincat C = T        -- define lin.type of cat C
-lin f = t           -- define lin. of fun f
-lin f x y = t       -- same as lin f = \x y -> t
-lindef C = \s -> t  -- default lin. of cat C
-printname fun f = s -- printname shown in menus
-printname cat C = s -- printname shown in menus
-printname f = s     -- same as printname fun f = s
-
-param P = C | D Q R -- define parameter type P 
-                       with constructors
-                       C : P, D : Q -> R -> P
-oper h : T = t      -- define oper h of type T
-oper h = t          -- omit type, if inferrable
-
-flags p=v           -- set value of flag p
-```
-Judgements are terminated by semicolons (``;``).
-Subsequent judgments of the same form may share the
-keyword:
-```
-cat C ; D ;         -- same as cat C ; cat D ;
-```
-Judgements can also share RHS:
-```
-fun f,g : A         -- same as fun f : A ; g : A
-```
-
-
-===Types===
-
-Abstract syntax (in ``fun``):
-```
-C                -- basic type, if cat C
-C a b            -- basic type for dep. category
-(x : A) -> B     -- dep. functions from A to B
-(_ : A) -> B     -- nondep. functions from A to B
-(p,q : A) -> B   -- same as (p : A)-> (q : A) -> B
-A -> B           -- same as (_ : A) -> B
-Int              -- predefined integer type
-Float            -- predefined float type
-String           -- predefined string type
-```
-Concrete syntax (in ``lincat``):
-```
-Str              -- token lists
-P                -- parameter type, if param P
-P => B           -- table type, if P param. type
-{s : Str ; p : P}-- record type
-{s,t : Str}      -- same as {s : Str ; t : Str}
-{a : A} **{b : B}-- record type extension, same as  
-                    {a : A ; b : B}
-A * B * C        -- tuple type, same as
-                    {p1 : A ; p2 : B ; p3 : C}
-Ints n           -- type of n first integers
-```
-Resource (in ``oper``): all those of concrete, plus
-``` 
-Tok              -- tokens (subtype of Str)
-A -> B           -- functions from A to B
-Int              -- integers
-Strs             -- list of prefixes (for pre)
-PType            -- parameter type
-Type             -- any type
-```
-As parameter types, one can use any finite type:
-``P`` defined in ``param P``,
-``Ints n``, and record types of parameter types.
-
-
-
-===Expressions===
-
-Syntax trees = full function applications
-```
-f a b              -- : C if fun f : A -> B -> C
-1977               -- : Int
-3.14               -- : Float
-"foo"              -- : String
-```
-Higher-Order Abstract syntax (HOAS): functions as arguments:
-```
-F a (\x -> c)      -- : C if a : A, c : C (x : B), 
-                      fun F : A -> (B -> C) -> C
-```
-Tokens and token lists
-```
-"hello"            -- : Tok, singleton Str
-"hello" ++ "world" -- : Str
-["hello world"]    -- : Str, same as "hello" ++ "world"
-"hello" + "world"  -- : Tok, computes to "helloworld"
-[]                 -- : Str, empty list
-```
-Parameters
-```
-Sg                   -- atomic constructor
-VPres Sg P2          -- applied constructor
-{n = Sg ; p = P3}    -- record of parameters
-```
-Tables
-```
-table {              -- by full branches
-  Sg => "mouse" ;
-  Pl => "mice"
-  }
-table {              -- by pattern matching
-  Pl => "mice" ;
-  _  => "mouse"      -- wildcard pattern
-  }
-table {               
-  n => regn n "cat"  -- variable pattern 
-  }
-table Num {...}      -- table given with arg. type
-table ["ox"; "oxen"] -- table as course of values
-\\_ => "fish"        -- same as table {_ => "fish"} 
-\\p,q => t           -- same as \\p => \\q => t
-
-t ! p                -- select p from table t
-case e of {...}      -- same as table {...} ! e 
-```
-Records
-```
-{s = "Liz"; g = Fem} -- record in full form
-{s,t = "et"}         -- same as {s = "et";t= "et"}
-{s = "Liz"} **       -- record extension: same as
-  {g = Fem}             {s = "Liz" ; g = Fem}
-
-<a,b,c>        -- tuple, same as {p1=a;p2=b;p3=c}
-```
-Functions
-```
-\x -> t            -- lambda abstract
-\x,y -> t          -- same as \x -> \y -> t
-\x,_ -> t          -- binding not in t
-```
-Local definitions
-```
-let x : A = d in t -- let definition
-let x = d in t     -- let defin, type inferred
-let x=d ; y=e in t -- same as 
-                      let x=d in let y=e in t
-let {...} in t     -- same as let ... in t
-
-t where {...}      -- same as let ... in t
-```
-Free variation
-```
-variants {x ; y}     -- both x and y possible
-variants {}          -- nothing possible
-```
-Prefix-dependent choices
-```
-pre {"a" ; "an" / v} -- "an" before v, "a" otherw.
-strs {"a" ; "i" ;"o"}-- list of condition prefixes
-```
-Typed expression
-```
-<t:T>                -- same as t, to help type inference
-```
-Accessing bound variables in ``lin``: use fields ``$1, $2, $3,...``. 
-Example:
-```
-fun F : (A : Set) -> (El A -> Prop) -> Prop ; 
-lin F A B = {s = ["for all"] ++ A.s ++ B.$1 ++ B.s}
-```
-
-
-===Pattern matching===
-
-These patterns can be used in branches of ``table`` and
-``case`` expressions. Patterns are matched in the order in
-which they appear in the grammar.
-```
-C                 -- atomic param constructor
-C p q             -- param constr. applied to patterns
-x                 -- variable, matches anything
-_                 -- wildcard, matches anything
-"foo"             -- string
-56                -- integer
-{s = p ; y = q}   -- record, matches extensions too
-<p,q>             -- tuple, same as {p1=p ; p2=q}
-p | q             -- disjunction, binds to first match
-x@p               -- binds x to what p matches
-- p               -- negation
-p + "s"           -- sequence of two string patterns
-p*                -- repetition of a string pattern
-```
-
-===Sample library functions===
-
-```
--- lib/prelude/Predef.gf
-drop   : Int -> Tok -> Tok   -- drop prefix of length
-take   : Int -> Tok -> Tok   -- take prefix of length
-tk     : Int -> Tok -> Tok   -- drop suffix of length
-dp     : Int -> Tok -> Tok   -- take suffix of length
-occur  : Tok -> Tok -> PBool -- test if substring
-occurs : Tok -> Tok -> PBool -- test if any char occurs
-show   : (P:Type) -> P ->Tok -- param to string
-read   : (P:Type) -> Tok-> P -- string to param
-toStr  : (L:Type) -> L ->Str -- find "first" string
-
--- lib/prelude/Prelude.gf
-param Bool = True | False
-oper
-  SS  : Type                   -- the type {s : Str}
-  ss  : Str -> SS              -- construct SS
-  cc2 : (_,_ : SS) -> SS       -- concat SS's
-  optStr : Str -> Str          -- string or empty
-  strOpt : Str -> Str          -- empty or string
-  bothWays : Str -> Str -> Str -- X++Y or Y++X 
-  init : Tok -> Tok            -- all but last char
-  last : Tok -> Tok            -- last char
-  prefixSS : Str -> SS -> SS
-  postfixSS : Str -> SS -> SS
-  infixSS : Str -> SS -> SS -> SS
-  if_then_else : (A : Type) -> Bool -> A -> A -> A
-  if_then_Str : Bool -> Str -> Str -> Str
-```
-
-
-===Flags===
-
-Flags can appear, with growing priority,
-- in files, judgement ``flags`` and without dash (``-``)
-- as flags to ``gf`` when invoked, with dash
-- as flags to various GF commands, with dash
-
-
-Some common flags used in grammars:
-```
-startcat=cat    use this category as default 
-
-lexer=literals  int and string literals recognized
-lexer=code      like program code
-lexer=text      like text: spacing, capitals
-lexer=textlit   text, unknowns as string lits
-
-unlexer=code    like program code
-unlexer=codelit code, remove string lit quotes
-unlexer=text    like text: punctuation, capitals
-unlexer=textlit text, remove string lit quotes
-unlexer=concat  remove all spaces
-unlexer=bind    remove spaces around "&+"
-
-optimize=all_subs  best for almost any concrete
-optimize=values    good for lexicon concrete
-optimize=all       usually good for resource
-optimize=noexpand  for resource, if =all too big
-```
-For the full set of values for ``FLAG``, 
-use on-line ``h -FLAG``.
-
-
-
-===File paths===
-
-Colon-separated lists of directories searched in the
-given order: 
-```
---# -path=.:../abstract:../common:prelude
-```
-This can be (in order of growing preference), as
-first line in the top file, as flag to ``gf``
-when invoked, or as flag to the ``i`` command.
-The prefix ``--#`` is used only in files.
-
-If the environment variabls ``GF_LIB_PATH`` is defined, its
-value is automatically prefixed to each directory to
-extend the original search path.
-
-
-===Alternative grammar formats===
-
-**Old GF** (before GF 2.0): 
-all judgements in any kinds of modules,
-division into files uses ``include``s.
-A file ``Foo.gf`` is recognized as the old format
-if it lacks a module header. 
-
-**Context-free** (file ``foo.cf``). The form of rules is e.g.
-```
-Fun. S ::= NP "is" AP ;
-```
-If ``Fun`` is omitted, it is generated automatically. 
-Rules must be one per line. The RHS can be empty.
-
-**Extended BNF** (file ``foo.ebnf``). The form of rules is e.g.
-```
-S ::= (NP+ ("is" | "was") AP | V NP*) ;
-```
-where the RHS is a regular expression of categories
-and quoted tokens: ``"foo", CAT, T U, T|U, T*, T+, T?``, or empty.
-Rule labels are generated automatically.
-
-
-**Probabilistic grammars** (not a separate format).
-You can set the probability of a function ``f`` (in its value category) by
-```
---# prob f 0.009
-```
-These are put into a file given to GF using the ``probs=File`` flag
-on command line. This file can be the grammar file itself.
-
-**Example-based grammars**  (file ``foo.gfe``). Expressions of the form
-```
-in Cat "example string"
-```
-are preprocessed by using a parser given by the flag 
-```
---# -resource=File
-```
-and the result is written to ``foo.gf``.
-
-
-===References===
-
-[GF Homepage http://www.cs.chalmers.se/~aarne/GF/]
-
-A. Ranta, Grammatical Framework: A Type-Theoretical Grammar Formalism.
-//The Journal of Functional Programming//, vol. 14:2. 2004, pp. 145-189. 
-
diff --git a/doc/gf-refman.html b/doc/gf-refman.html
--- a/doc/gf-refman.html
+++ b/doc/gf-refman.html
@@ -106,7 +106,7 @@
 found in the GF tutorial available on line on the GF web page,
 </P>
 <P>
-<A HREF="http://digitalgrammars.com/gf"><CODE>digitalgrammars.com/gf</CODE></A>
+<A HREF="http://grammaticalframework.org"><CODE>grammaticalframework.org</CODE></A>
 </P>
 <P>
 This manual covers only the language, not the GF compiler or
diff --git a/doc/gf-statistics.txt b/doc/gf-statistics.txt
deleted file mode 100644
--- a/doc/gf-statistics.txt
+++ /dev/null
@@ -1,289 +0,0 @@
-(Adapted from KeY statistics by Vladimir Klebanov)
-
-This is GF right now:
-
-Total Physical Source Lines of Code (SLOC)                = 42,467
-
-Development Effort Estimate, Person-Years (Person-Months) = 10.24 (122.932)
- (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
-
-Schedule Estimate, Years (Months)                         = 1.30 (15.56)
- (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
-
-Estimated Average Number of Developers (Effort/Schedule)  = 7.90
-
-Total Estimated Cost to Develop                           = $ 1,383,870
- (average salary = $56,286/year, overhead = 2.40).
-
-SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
-
-
-
------------ basis of counting: Haskell code + BNFC code - generated Happy parsers
-
--- GF/src% wc -l *.hs GF/*.hs GF/*/*.hs GF/*/*/*.hs GF/*/*.cf JavaGUI/*.java
--- date Fri Jun  3 10:00:31 CEST 2005
-
-    104 GF.hs
-    402 GF/API.hs
-     98 GF/GFModes.hs
-    379 GF/Shell.hs
-      4 GF/Today.hs
-     43 GF/API/BatchTranslate.hs
-    145 GF/API/GrammarToHaskell.hs
-     77 GF/API/IOGrammar.hs
-     25 GF/API/MyParser.hs
-    177 GF/Canon/AbsGFC.hs
-     37 GF/Canon/ByLine.hs
-    192 GF/Canon/CanonToGrammar.hs
-    293 GF/Canon/CMacros.hs
-     79 GF/Canon/GetGFC.hs
-     86 GF/Canon/GFC.hs
-    291 GF/Canon/LexGFC.hs
-    201 GF/Canon/Look.hs
-    235 GF/Canon/MkGFC.hs
-     46 GF/Canon/PrExp.hs
-    352 GF/Canon/PrintGFC.hs
-    147 GF/Canon/Share.hs
-    207 GF/Canon/SkelGFC.hs
-     46 GF/Canon/TestGFC.hs
-     49 GF/Canon/Unlex.hs
-    202 GF/CF/CanonToCF.hs
-    213 GF/CF/CF.hs
-    217 GF/CF/CFIdent.hs
-     62 GF/CF/CFtoGrammar.hs
-     47 GF/CF/CFtoSRG.hs
-    206 GF/CF/ChartParser.hs
-    191 GF/CF/EBNF.hs
-     45 GF/CFGM/AbsCFG.hs
-    312 GF/CFGM/LexCFG.hs
-    157 GF/CFGM/PrintCFG.hs
-    109 GF/CFGM/PrintCFGrammar.hs
-     85 GF/CF/PPrCF.hs
-    150 GF/CF/PrLBNF.hs
-    106 GF/CF/Profile.hs
-    141 GF/Compile/BackOpt.hs
-    763 GF/Compile/CheckGrammar.hs
-    337 GF/Compile/Compile.hs
-    136 GF/Compile/Extend.hs
-    124 GF/Compile/GetGrammar.hs
-    282 GF/Compile/GrammarToCanon.hs
-     93 GF/Compile/MkConcrete.hs
-    128 GF/Compile/MkResource.hs
-     83 GF/Compile/MkUnion.hs
-    146 GF/Compile/ModDeps.hs
-    294 GF/Compile/NewRename.hs
-    227 GF/Compile/Optimize.hs
-     76 GF/Compile/PGrammar.hs
-     84 GF/Compile/PrOld.hs
-    119 GF/Compile/Rebuild.hs
-     63 GF/Compile/RemoveLiT.hs
-    274 GF/Compile/Rename.hs
-    535 GF/Compile/ShellState.hs
-    135 GF/Compile/Update.hs
-    129 GF/Conversion/GFC.hs
-    149 GF/Conversion/GFCtoSimple.hs
-     53 GF/Conversion/MCFGtoCFG.hs
-     46 GF/Conversion/RemoveEpsilon.hs
-    102 GF/Conversion/RemoveErasing.hs
-     82 GF/Conversion/RemoveSingletons.hs
-    137 GF/Conversion/SimpleToFinite.hs
-     26 GF/Conversion/SimpleToMCFG.hs
-    230 GF/Conversion/Types.hs
-    143 GF/Data/Assoc.hs
-    118 GF/Data/BacktrackM.hs
-     20 GF/Data/ErrM.hs
-    119 GF/Data/GeneralDeduction.hs
-     30 GF/Data/Glue.hs
-     67 GF/Data/IncrementalDeduction.hs
-     61 GF/Data/Map.hs
-    662 GF/Data/Operations.hs
-    127 GF/Data/OrdMap2.hs
-    120 GF/Data/OrdSet.hs
-    193 GF/Data/Parsers.hs
-     64 GF/Data/RedBlack.hs
-    150 GF/Data/RedBlackSet.hs
-     19 GF/Data/SharedString.hs
-    127 GF/Data/SortedList.hs
-    134 GF/Data/Str.hs
-    120 GF/Data/Trie2.hs
-    129 GF/Data/Trie.hs
-     71 GF/Data/Utilities.hs
-    243 GF/Data/Zipper.hs
-     78 GF/Embed/EmbedAPI.hs
-    113 GF/Embed/EmbedCustom.hs
-    137 GF/Embed/EmbedParsing.hs
-     50 GF/Formalism/CFG.hs
-     51 GF/Formalism/GCFG.hs
-     58 GF/Formalism/MCFG.hs
-    246 GF/Formalism/SimpleGFC.hs
-    349 GF/Formalism/Utilities.hs
-     30 GF/Fudgets/ArchEdit.hs
-    134 GF/Fudgets/CommandF.hs
-     51 GF/Fudgets/EventF.hs
-     59 GF/Fudgets/FudgetOps.hs
-     37 GF/Fudgets/UnicodeF.hs
-     86 GF/Grammar/AbsCompute.hs
-     38 GF/Grammar/Abstract.hs
-    149 GF/Grammar/AppPredefined.hs
-    312 GF/Grammar/Compute.hs
-    215 GF/Grammar/Grammar.hs
-     46 GF/Grammar/Lockfield.hs
-    189 GF/Grammar/LookAbs.hs
-    182 GF/Grammar/Lookup.hs
-    745 GF/Grammar/Macros.hs
-    340 GF/Grammar/MMacros.hs
-    115 GF/Grammar/PatternMatch.hs
-    279 GF/Grammar/PrGrammar.hs
-    121 GF/Grammar/Refresh.hs
-     44 GF/Grammar/ReservedWords.hs
-    251 GF/Grammar/TC.hs
-    301 GF/Grammar/TypeCheck.hs
-     96 GF/Grammar/Unify.hs
-    101 GF/Grammar/Values.hs
-     89 GF/Infra/CheckM.hs
-     43 GF/Infra/Comments.hs
-    152 GF/Infra/Ident.hs
-    390 GF/Infra/Modules.hs
-    358 GF/Infra/Option.hs
-    179 GF/Infra/Print.hs
-    331 GF/Infra/ReadFiles.hs
-    337 GF/Infra/UseIO.hs
-    153 GF/OldParsing/CFGrammar.hs
-    283 GF/OldParsing/ConvertFiniteGFC.hs
-    121 GF/OldParsing/ConvertFiniteSimple.hs
-     34 GF/OldParsing/ConvertGFCtoMCFG.hs
-    122 GF/OldParsing/ConvertGFCtoSimple.hs
-     44 GF/OldParsing/ConvertGrammar.hs
-     52 GF/OldParsing/ConvertMCFGtoCFG.hs
-     30 GF/OldParsing/ConvertSimpleToMCFG.hs
-     43 GF/OldParsing/GCFG.hs
-     86 GF/OldParsing/GeneralChart.hs
-    148 GF/OldParsing/GrammarTypes.hs
-     50 GF/OldParsing/IncrementalChart.hs
-    206 GF/OldParsing/MCFGrammar.hs
-     43 GF/OldParsing/ParseCFG.hs
-     82 GF/OldParsing/ParseCF.hs
-    177 GF/OldParsing/ParseGFC.hs
-     37 GF/OldParsing/ParseMCFG.hs
-    161 GF/OldParsing/SimpleGFC.hs
-    188 GF/OldParsing/Utilities.hs
-     51 GF/Parsing/CFG.hs
-     66 GF/Parsing/CF.hs
-    151 GF/Parsing/GFC.hs
-     64 GF/Parsing/MCFG.hs
-     83 GF/Printing/PrintParser.hs
-    127 GF/Printing/PrintSimplifiedTerm.hs
-    190 GF/Shell/CommandL.hs
-    556 GF/Shell/Commands.hs
-    524 GF/Shell/HelpFile.hs
-     79 GF/Shell/JGF.hs
-    171 GF/Shell/PShell.hs
-    221 GF/Shell/ShellCommands.hs
-     66 GF/Shell/SubShell.hs
-     87 GF/Shell/TeachYourself.hs
-    296 GF/Source/AbsGF.hs
-    229 GF/Source/GrammarToSource.hs
-    312 GF/Source/LexGF.hs
-    528 GF/Source/PrintGF.hs
-    353 GF/Source/SkelGF.hs
-    657 GF/Source/SourceToGrammar.hs
-     58 GF/Source/TestGF.hs
-     72 GF/Speech/PrGSL.hs
-     65 GF/Speech/PrJSGF.hs
-    128 GF/Speech/SRG.hs
-    103 GF/Speech/TransformCFG.hs
-     30 GF/System/ArchEdit.hs
-     90 GF/System/Arch.hs
-     27 GF/System/NoReadline.hs
-     27 GF/System/Readline.hs
-     73 GF/System/Tracing.hs
-     25 GF/System/UseReadline.hs
-     63 GF/Text/Arabic.hs
-     97 GF/Text/Devanagari.hs
-     72 GF/Text/Ethiopic.hs
-     99 GF/Text/ExtendedArabic.hs
-     37 GF/Text/ExtraDiacritics.hs
-    172 GF/Text/Greek.hs
-     53 GF/Text/Hebrew.hs
-     95 GF/Text/Hiragana.hs
-     69 GF/Text/LatinASupplement.hs
-     47 GF/Text/OCSCyrillic.hs
-     45 GF/Text/Russian.hs
-     77 GF/Text/Tamil.hs
-    125 GF/Text/Text.hs
-     69 GF/Text/Unicode.hs
-     47 GF/Text/UTF8.hs
-     56 GF/Translate/GFT.hs
-    427 GF/UseGrammar/Custom.hs
-    435 GF/UseGrammar/Editing.hs
-    180 GF/UseGrammar/Generate.hs
-     71 GF/UseGrammar/GetTree.hs
-    143 GF/UseGrammar/Information.hs
-    228 GF/UseGrammar/Linear.hs
-    130 GF/UseGrammar/Morphology.hs
-     70 GF/UseGrammar/Paraphrases.hs
-    157 GF/UseGrammar/Parsing.hs
-     66 GF/UseGrammar/Randomized.hs
-    170 GF/UseGrammar/Session.hs
-    186 GF/UseGrammar/Tokenize.hs
-     43 GF/UseGrammar/Transfer.hs
-    122 GF/Visualization/NewVisualizationGrammar.hs
-    123 GF/Visualization/VisualizeGrammar.hs
-     63 GF/Conversion/SimpleToMCFG/Coercions.hs
-    256 GF/Conversion/SimpleToMCFG/Nondet.hs
-    129 GF/Conversion/SimpleToMCFG/Strict.hs
-     71 GF/OldParsing/ConvertGFCtoMCFG/Coercions.hs
-    281 GF/OldParsing/ConvertGFCtoMCFG/Nondet.hs
-    277 GF/OldParsing/ConvertGFCtoMCFG/Old.hs
-    189 GF/OldParsing/ConvertGFCtoMCFG/Strict.hs
-     70 GF/OldParsing/ConvertSimpleToMCFG/Coercions.hs
-    245 GF/OldParsing/ConvertSimpleToMCFG/Nondet.hs
-    277 GF/OldParsing/ConvertSimpleToMCFG/Old.hs
-    139 GF/OldParsing/ConvertSimpleToMCFG/Strict.hs
-     83 GF/OldParsing/ParseCFG/General.hs
-    142 GF/OldParsing/ParseCFG/Incremental.hs
-    156 GF/OldParsing/ParseMCFG/Basic.hs
-    103 GF/Parsing/CFG/General.hs
-    150 GF/Parsing/CFG/Incremental.hs
-     98 GF/Parsing/CFG/PInfo.hs
-    226 GF/Parsing/MCFG/Active2.hs
-    304 GF/Parsing/MCFG/Active.hs
-    144 GF/Parsing/MCFG/Incremental2.hs
-    163 GF/Parsing/MCFG/Incremental.hs
-    128 GF/Parsing/MCFG/Naive.hs
-    163 GF/Parsing/MCFG/PInfo.hs
-    194 GF/Parsing/MCFG/Range.hs
-    183 GF/Parsing/MCFG/ViaCFG.hs
-    167 GF/Canon/GFC.cf
-     36 GF/CFGM/CFG.cf
-    321 GF/Source/GF.cf
-    272 JavaGUI/DynamicTree2.java
-    272 JavaGUI/DynamicTree.java
-   2357 JavaGUI/GFEditor2.java
-   1420 JavaGUI/GFEditor.java
-     30 JavaGUI/GrammarFilter.java
-     13 JavaGUI/LinPosition.java
-     18 JavaGUI/MarkedArea.java
-   1552 JavaGUI/Numerals.java
-     22 JavaGUI/Utils.java
-   5956 total
-  48713 total
-
--  2131 GF/Canon/ParGFC.hs   
-   3336 GF/Source/ParGF.hs
-    779 GF/CFGM/ParCFG.hs
-
-  42467 total
-
---------
-
-sloccount sloc = 
-  let
-    ksloc    = sloc / 1000
-    effort   = 2.4 * (ksloc ** 1.05)
-    schedule = 2.5 * (effort ** 0.38)
-    develops = effort / schedule
-    cost     = 56286 * (effort/12) * 2.4
-  in
-    [sloc,ksloc,effort,effort/12,schedule,schedule/12,develops,cost]
diff --git a/doc/gf-summerschool.txt b/doc/gf-summerschool.txt
deleted file mode 100644
--- a/doc/gf-summerschool.txt
+++ /dev/null
@@ -1,533 +0,0 @@
-GF Resource Grammar Summer School
-Gothenburg, 17-28 August 2009
-Aarne Ranta (aarne at chalmers.se)
-
-%!Encoding : iso-8859-1
-
-%!target:html
-%!postproc(html): #BECE <center>
-%!postproc(html): #ENCE </center>
-%!postproc(html): #GRAY <font color="green" size="-1">
-%!postproc(html): #EGRAY </font>
-%!postproc(html): #RED <font color="red">
-%!postproc(html): #YELLOW <font color="orange">
-%!postproc(html): #ERED </font>
-
-#BECE
-[school-langs.png]
-#ENCE
-
-
-//red=wanted, green=exists, orange=in-progress, solid=official-eu, dotted=non-eu//
-
-
-==News==
-
-An on-line course //GF for Resource Grammar Writers// will start on
-Monday 20 April at 15.30 CEST. The slides and recordings of the five
-45-minute lectures will be made available via this web page. If requested,
-the course may be repeated in the beginning of the summer school.
-
-
-==Executive summary==
-
-GF Resource Grammar Library is an open-source computational grammar resource
-that currently covers 12 languages.
-The Summer School is a part of a collaborative effort to extend the library 
-to all of the 23 official EU languages. Also other languages
-chosen by the participants are welcome.
-
-The missing EU languages are: 
-Czech, Dutch, Estonian, Greek, Hungarian, Irish, Latvian, Lithuanian,
-Maltese, Portuguese, Slovak, and Slovenian. There is also more work to
-be done on Polish and Romanian.
-
-The linguistic coverage of the library includes the inflectional morphology
-and basic syntax of each language. It can be used in GF applications
-and also ported to other formats. It can also be used for building other
-linguistic resources, such as morphological lexica and parsers.
-The library is licensed under LGPL.
-
-In the summer school, each language will be implemented by one or two students 
-working together. A morphology implementation will be credited
-as a Chalmers course worth 7.5 ETCS points; adding a syntax implementation 
-will be worth more. The estimated total work load is 1-2 months for the
-morphology, and 3-6 months for the whole grammar.
-
-Participation in the course is free. Registration is done via the courses's
-Google group, [``groups.google.com/group/gf-resource-school-2009/`` http://groups.google.com/group/gf-resource-school-2009/]. The registration deadline is 15 June 2009.
-
-Some travel grants will be available. They are distributed on the basis of a
-GF programming contest in April and May.
-
-The summer school will be held on 17-28 August 2009, at the campus of 
-Chalmers University of Technology in Gothenburg, Sweden.
-
-
-[align6.png]
-
-//Word alignment produced by GF from the resource grammar in Bulgarian, English, Italian, German, Finnish, French, and Swedish.//
-
-==Introduction==
-
-Since 2007, EU-27 has 23 official languages, listed in the diagram on top of this
-document. There is a growing need of linguistic resources for these 
-languages, to help in tasks such as translation and information retrieval. 
-These resources should be **portable** and **freely accessible**.
-Languages marked in red in the diagram are of particular interest for 
-the summer school, since they are those on which the effort will be concentrated.
-
-GF (Grammatical Framework, 
-[``digitalgrammars.com/gf`` http://digitalgrammars.com/gf])
-is a **functional programming language** designed for writing natural
-language grammars. It provides an efficient platform for this task, due to
-its modern characteristics:
-- It is a functional programming language, similar to Haskell and ML.
-- It has a static type system and type checker.
-- It has a powerful module system supporting separate compilation 
-  and data abstraction.
-- It has an optimizing compiler to **Portable Grammar Format** (PGF).
-- PGF can be further compiled to other formats, such as JavaScript and
-  speech recognition language models.
-- GF has a **resource grammar library** giving access to the morphology and
-  basic syntax of 12 languages.
-
-
-In addition to "ordinary" grammars for single languages, GF
-supports **multilingual grammars**. A multilingual GF grammar consists of an 
-**abstract syntax** and a set of **concrete syntaxes**. 
-An abstract syntax is system of **trees**, serving as a semantic
-model or an ontology. A concrete syntax is a mapping from abstract syntax 
-trees to strings of a particular language.
-
-These mappings defined in concrete syntax are **reversible**: they
-can be used both for **generating** strings from trees, and for
-**parsing** strings into trees. Combinations of generation and
-parsing can be used for **translation**, where the abstract
-syntax works as an **interlingua**. Thus GF has been used as a
-framework for building translation systems in several areas
-of application and large sets of languages.
-
-
-
-==The GF resource grammar library==
-
-The GF resource grammar library is a set of grammars usable as libraries when
-building translation systems and other applications. 
-The library currently covers
-the 9 languages coloured in green in the diagram above; in addition, 
-Catalan, Norwegian, and Russian are covered, and there is ongoing work on
-Arabic, Hindi/Urdu, Polish, Romanian, and Thai.
-
-The purpose of the resource grammar library is to define the "low-level" structure
-of a language: inflection, word order, agreement. This structure belongs to what
-linguists call morphology and syntax. It can be very complex and requires
-a lot of knowledge. Yet, when translating from one language to 
-another, knowing morphology and syntax is but a part of what is needed. 
-The translator (whether human
-or machine) must understand the meaning of what is translated, and must also know
-the idiomatic way to express the meaning in the target language. This knowledge
-can be very domain-dependent and requires in general an expert in the field to
-reach high quality: a mathematician in the field of mathematics, a meteorologist
-in the field of weather reports, etc.
-
-The problem is to find a person who is an expert in both the domain of translation
-and in the low-level linguistic details. It is the rareness of this combination
-that has made it difficult to build interlingua-based translation systems.
-The GF resource grammar library has the mission of helping in this task. 
-It encapsulates the low-level linguistics in program modules 
-accessed through easy-to-use interfaces.
-Experts on different domains can build translation systems by using the library, 
-without knowing low-level linguistics. The idea is much the same as when a 
-programmer builds a graphical user interface (GUI) from high-level elements such as
-buttons and menus, without having to care about pixels or geometrical forms.
-
-
-===Missing EU languages, by the family===
-
-Writing a grammar for a language is usually easier if other languages
-from the same family already have grammars. The colours have the same
-meaning as in the diagram above.
-
-Baltic:
-#RED Latvian #ERED
-#RED Lithuanian #ERED
-
-Celtic: 
-#RED Irish #ERED
-
-Fenno-Ugric: 
-#RED Estonian #ERED 
-#GRAY Finnish #EGRAY 
-#RED Hungarian #ERED
-
-Germanic: 
-#GRAY Danish #EGRAY
-#RED Dutch #ERED
-#GRAY English #EGRAY
-#GRAY German #EGRAY
-#GRAY Swedish #EGRAY
-
-Hellenic:
-#RED Greek #ERED
-
-Romance:
-#GRAY French #EGRAY
-#GRAY Italian #EGRAY
-#RED Portuguese #ERED
-#YELLOW Romanian #ERED
-#GRAY Spanish #EGRAY
-
-Semitic:
-#RED Maltese #ERED
-
-Slavonic:
-#GRAY Bulgarian #EGRAY
-#RED Czech #ERED
-#YELLOW Polish #ERED
-#RED Slovak #ERED
-#RED Slovenian #ERED
-
-
-
-
-
-
-===Applications of the library===
-
-In addition to translation, the library is also useful in **localization**,
-that is, porting a piece of software to new languages. 
-The GF resource grammar library has been used in three major projects that need
-interlingua-based translation or localization of systems to new languages:
-- in KeY, 
-  [``http://www.key-project.org/`` http://www.key-project.org/],
-  for writing formal and informal software specifications (3 languages)
-- in WebALT,
-  [``http://webalt.math.helsinki.fi/content/index_eng.html`` http://webalt.math.helsinki.fi/content/index_eng.html],
-  for translating mathematical exercises to 7 languages
-- in TALK [``http://www.talk-project.org`` http://www.talk-project.org],
-  where the library was used for localizing spoken dialogue systems 
-  to six languages
-
-
-The library is also a generic **linguistic resource**, 
-which can be used for tasks
-such as language teaching and information retrieval. The liberal license (LGPL)
-makes it usable for anyone and for any task. GF also has tools supporting the
-use of grammars in programs written in other 
-programming languages: C, C++, Haskell,
-Java, JavaScript, and Prolog. In connection with the TALK project, 
-support has also been
-developed for translating GF grammars to language models used in speech
-recognition (GSL/Nuance, HTK/ATK, SRGS, JSGF).
-
-
-
-===The structure of the library===
-
-The library has the following main parts:
-- **Inflection paradigms**, covering the inflection of each language.
-- **Core Syntax**, covering a large set of syntax rule that
-  can be implemented for all languages involved.
-- **Common Test Lexicon**, giving ca. 500 common words that can be used for
-  testing the library.
-- **Language-Specific Syntax Extensions**, covering syntax rules that are
-  not implementable for all languages.
-- **Language-Specific Lexica**, word lists for each language, with
-  accurate morphological and syntactic information.
-
-
-The goal of the summer school is to implement, for each language, at least
-the first three components. The latter three are more open-ended in character.
-
-
-==The summer school==
-
-The goal of the summer school is to extend the GF resource grammar library
-to covering all 23 EU languages, which means we need 15 new languages.
-We also welcome other languages than these 23, 
-if there are interested participants.
-
-The amount of work and skill is between a Master's thesis and a PhD thesis.
-The Russian implementation was made by Janna Khegai as a part of her
-PhD thesis; the thesis contains other material, too.
-The Arabic implementation was started by Ali El Dada in his Master's thesis,
-but the thesis does not cover the whole API. The realistic amount of work is
-somewhere between 3 and 8 person months, 
-but this is very much language-dependent.
-Dutch, for instance, can profit from previous implementations of German and
-Scandinavian languages, and will probably require less work.
-Latvian and Lithuanian are the first languages of the Baltic family and
-will probably require more work.
-
-In any case, the proposed allocation of work power is 2 participants per
-language. They will do 1 months' worth of home work, followed
-by 2 weeks of summer school, followed by 4 months work at home. 
-Who are these participants?
-
-
-===Selecting participants===
-
-Persons interested to participate in the Summer School should sign up in
-the **Google Group** of the course,
-
-[``groups.google.com/group/gf-resource-school-2009/`` http://groups.google.com/group/gf-resource-school-2009/]
-
-The registration deadline is 15 June 2009. 
-
-Notice: you can sign up in the Google 
-group even if you are not planning to attend the summer school, but are
-just interested in the topic. There will be a separate registration to the
-school itself later.
-
-The participants are recommended to learn GF in advance, by self-study from the 
-[tutorial http://digitalgrammars.com/gf/doc/gf-tutorial.html]. 
-This should take a couple of weeks. An **on-line course** will be
-arranged on 20-29 April to help in getting started with GF.
-
-At the end of the on-line course, a **programming assignment** will be published.
-This assignment will test skills required in resource grammar programming.
-Work on the assignment will take a couple of weeks.
-Those who are interested in getting a travel grant will submit
-their sample resource grammar fragment 
-to the Summer School Committee by 12 May.
-The Committee then decides who is given a travel grant of up to 1000 EUR.
-
-Notice: you can participate in the summer school without following the on-line
-course or participating in the contest. These things are required only if you
-want a travel grant. If requested by enough many participants, the lectures of
-the on-line course will be repeated in the beginning of the summer school.
-
-The summer school itself is devoted for working on resource grammars.
-In addition to grammar writing itself, testing and evaluation is
-performed. One way to do this is via adding new languages 
-to resource grammar applications - in particular, to the WebALT mathematical
-exercise translator.
-
-The resource grammars are expected to be completed by December 2009. They will 
-be published at GF website and licensed under LGPL.
-
-The participants are encouraged to contact each other and even work in groups.
-
-
-
-===Who is qualified===
-
-Writing a resource grammar implementation requires good general programming
-skills, and a good explicit knowledge of the grammar of the target language. 
-A typical participant could be 
-- native or fluent speaker of the target language
-- interested in languages on the theoretical level, and preferably familiar
-  with many languages (to be able to think about them on an abstract level)
-- familiar with functional programming languages such as ML or Haskell
-  (GF itself is a language similar to these)
-- on Master's or PhD level in linguistics, computer science, or mathematics
-
-
-But it is the quality of the assignment that is assessed, not any formal
-requirements. The "typical participant" was described to give an idea of
-who is likely to succeed in this.
-
-
-===Costs===
-
-The summer school is free of charge. 
-
-Some travel grants are given, on the basis of a programming contest, 
-to cover travel and accommodation costs up to 1000 EUR
-per person.
-
-The number of grants will be decided during Spring 2009, and the grand
-holders will be notified before the beginning of June.
-
-Special terms will apply to students in
-[GSLT http://www.gslt.hum.gu.se/] and
-[NGSLT http://ngslt.org/].
-
-
-
-
-
-===Teachers===
-
-A list of teachers will be published here later. Some of the local teachers 
-probably involved are the following:
-- Krasimir Angelov
-- Robin Cooper
-- Håkan Burden
-- Markus Forsberg
-- Harald Hammarström
-- Peter Ljunglöf
-- Aarne Ranta
-
-
-More teachers are welcome! If you are interested, please contact us so that
-we can discuss your involvement and travel arrangements.
-
-In addition to teachers, we will look for consultants who can help to assess 
-the results for each language. Please contact us!
-
-
-
-===The Summer School Committee===
-
-This committee consists of a number of teachers and informants, 
-who will select the participants. It will be selected by April 2009.
-
-
-===Time and Place===
-
-The summer school will
-be organized at the campus of Chalmers University of Technology in Gothenburg,
-Sweden, on 17-28 August 2009.
-
-Time schedule:
-- February: announcement of summer school
-- 20-29 April: on-line course
-- 12 May: submission deadline for assignment work
-- 31 May: review of assignments, notifications of acceptance
-- 15 June: **registration deadline**
-- 17-28 August: Summer School
-- September-December: homework on resource grammars
-- December: release of the extended Resource Grammar Library
-
-
-===Dissemination and intellectual property===
-
-The new resource grammars will be released under the LGPL just like 
-the current resource grammars,
-with the copyright held by respective authors.
-
-The grammars will be distributed via the GF web site.
-
-
-
-==Why I should participate==
-
-Seven reasons:
-+ participation in a pioneering language technology work in an 
-  enthusiastic atmosphere
-+ work and fun with people from all over Europe and the world
-+ job opportunities and business ideas
-+ credits: the school project will be established as a course at Chalmers worth
-  7.5 or 15 ETCS points per person, depending on the work accompliched; also 
-  extensions to Master's thesis will be considered (special credit arrangements
-  for [GSLT http://www.gslt.hum.gu.se/] and [NGSLT http://ngslt.org/])
-+ merits: the resulting grammar can easily lead to a published paper (see below)
-+ contribution to the multilingual and multicultural development of Europe and the
-  world
-+ free trip and stay in Gothenburg (for travel grant students)
-
-
-==More information==
-
-[Course Google Group http://groups.google.com/group/gf-resource-school-2009/]
-
-[GF web page http://digitalgrammars.com/gf/]
-
-[GF tutorial http://digitalgrammars.com/gf/doc/gf-tutorial.html]
-
-[GF resource synopsis http://digitalgrammars.com/gf/lib/resource/doc/synopsis.html]
-
-[Resource-HOWTO document http://digitalgrammars.com/gf/doc/Resource-HOWTO.html]
-
-
-===Contact===
-
-Håkan Burden: burden at chalmers se
-
-Aarne Ranta: aarne at chalmers se
-
-
-
-===Selected publications from earlier resource grammar projects===
-
-K. Angelov.
-Type-Theoretical Bulgarian Grammar.
-In B. Nordström and A. Ranta (eds), 
-//Advances in Natural Language Processing (GoTAL 2008)//, 
-LNCS/LNAI 5221, Springer,
-2008.
-
-B. Bringert. 
-//Programming Language Techniques for Natural Language Applications//.
-Phd thesis, Computer Science, University of Gothenburg,
-2008.
-
-A. El Dada and A. Ranta.
-Implementing an Open Source Arabic Resource Grammar in GF.
-In M. Mughazy (ed),
-//Perspectives on Arabic Linguistics XX. Papers from the Twentieth Annual Symposium on Arabic Linguistics, Kalamazoo, March 26//
-John Benjamins Publishing Company.
-2007.
-
-A. El Dada.
-Implementation of the Arabic Numerals and their Syntax in GF.
-Computational Approaches to Semitic Languages: Common Issues and Resources, 
-  ACL-2007 Workshop,
-June 28, 2007, Prague.
-2007.
-
-H. Hammarström and A. Ranta.
-Cardinal Numerals Revisited in GF.
-//Workshop on Numerals in the World's Languages//. 
-Dept. of Linguistics Max Planck Institute for Evolutionary Anthropology, Leipzig,
-2004.
-
-M. Humayoun, H. Hammarström, and A. Ranta.
-Urdu Morphology, Orthography and Lexicon Extraction.
-//CAASL-2: The Second Workshop on Computational Approaches to Arabic Script-based Languages//,
-July 21-22, 2007, LSA 2007 Linguistic Institute, Stanford University.
-2007.
-
-K. Johannisson.
-//Formal and Informal Software Specifications.//
-Phd thesis, Computer Science, University of Gothenburg,
-2005.
-
-J. Khegai. 
-GF parallel resource grammars and Russian.
-In proceedings of ACL2006 
-  (The joint conference of the International Committee on Computational 
-  Linguistics and the Association for Computational Linguistics) (pp. 475-482),
-  Sydney, Australia, July 2006.
-
-J. Khegai. 
-//Language engineering in Grammatical Framework (GF)//.
-Phd thesis, Computer Science, Chalmers University of Technology,
-2006.
-
-W. Ng'ang'a. 
-Multilingual content development for eLearning in Africa. 
-eLearning Africa: 1st Pan-African Conference on ICT for Development, 
-  Education and Training. 24-26 May 2006, Addis Ababa, Ethiopia.
-2006.
-
-N. Perera and A. Ranta.
-Dialogue System Localization with the GF Resource Grammar Library.
-//SPEECHGRAM 2007: ACL Workshop on Grammar-Based Approaches to Spoken Language Processing//,
-June 29, 2007, Prague.
-2007.
-
-A. Ranta.
-Modular Grammar Engineering in GF.
-//Research on Language and Computation//, 
-5:133-158, 2007.
-
-A. Ranta.
-How predictable is Finnish morphology? An experiment on lexicon construction.
-In J. Nivre, M. Dahllöf and B. Megyesi (eds),
-//Resourceful Language Technology: Festschrift in Honor of Anna Sågvall Hein//,
-University of Uppsala,
-2008.
-
-A. Ranta. Grammars as Software Libraries.
-To appear in
-Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
-//From Semantics to Computer Science//,
-Cambridge University Press, Cambridge, 2009.
-
-A. Ranta and K. Angelov.
-Implementing Controlled Languages in GF.
-To appear in the proceedings of //CNL 2009//.
-
diff --git a/doc/gf-tutorial.html b/doc/gf-tutorial.html
deleted file mode 100644
--- a/doc/gf-tutorial.html
+++ /dev/null
@@ -1,5857 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<TITLE>Grammatical Framework Tutorial</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Grammatical Framework Tutorial</H1>
-<FONT SIZE="4">
-<I>Aarne Ranta</I><BR>
-Version 3.1.2, November 2008
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-  <UL>
-  <LI><A HREF="#toc1">Overview</A>
-    <UL>
-    <LI><A HREF="#toc2">Outline</A>
-    <LI><A HREF="#toc3">Slides</A>
-    </UL>
-  <LI><A HREF="#toc4">Lesson 1: Getting Started with GF</A>
-    <UL>
-    <LI><A HREF="#toc5">What GF is</A>
-    <LI><A HREF="#toc6">GF grammars and language processing tasks</A>
-    <LI><A HREF="#toc7">Getting the GF system</A>
-    <LI><A HREF="#toc8">Running the GF system</A>
-    <LI><A HREF="#toc9">A "Hello World" grammar</A>
-      <UL>
-      <LI><A HREF="#toc10">The program: abstract syntax and concrete syntaxes</A>
-      <LI><A HREF="#toc11">Using grammars in the GF system</A>
-      <LI><A HREF="#toc12">Exercises on the Hello World grammar</A>
-      </UL>
-    <LI><A HREF="#toc13">Using grammars from outside GF</A>
-    <LI><A HREF="#toc14">GF scripts</A>
-    <LI><A HREF="#toc15">What else can be done with the grammar</A>
-    <LI><A HREF="#toc16">Embedded grammar applications</A>
-    </UL>
-  <LI><A HREF="#toc17">Lesson 2: Designing a grammar for complex phrases</A>
-    <UL>
-    <LI><A HREF="#toc18">The abstract syntax Food</A>
-    <LI><A HREF="#toc19">The concrete syntax FoodEng</A>
-      <UL>
-      <LI><A HREF="#toc20">Exercises on the Food grammar</A>
-      </UL>
-    <LI><A HREF="#toc21">Commands for testing grammars</A>
-      <UL>
-      <LI><A HREF="#toc22">Generating trees and strings</A>
-      <LI><A HREF="#toc23">Exercises on generation</A>
-      <LI><A HREF="#toc24">More on pipes: tracing</A>
-      <LI><A HREF="#toc25">Writing and reading files</A>
-      <LI><A HREF="#toc26">Visualizing trees</A>
-      <LI><A HREF="#toc27">System commands</A>
-      </UL>
-    <LI><A HREF="#toc28">An Italian concrete syntax</A>
-      <UL>
-      <LI><A HREF="#toc29">Exercises on multilinguality</A>
-      </UL>
-    <LI><A HREF="#toc30">Free variation</A>
-    <LI><A HREF="#toc31">More application of multilingual grammars</A>
-      <UL>
-      <LI><A HREF="#toc32">Multilingual treebanks</A>
-      <LI><A HREF="#toc33">Translation quiz</A>
-      </UL>
-    <LI><A HREF="#toc34">Context-free grammars and GF</A>
-      <UL>
-      <LI><A HREF="#toc35">The "cf" grammar format</A>
-      <LI><A HREF="#toc36">Restrictions of context-free grammars</A>
-      </UL>
-    <LI><A HREF="#toc37">Modules and files</A>
-    <LI><A HREF="#toc38">Using operations and resource modules</A>
-      <UL>
-      <LI><A HREF="#toc39">Operation definitions</A>
-      <LI><A HREF="#toc40">The ``resource`` module type</A>
-      <LI><A HREF="#toc41">Opening a resource</A>
-      <LI><A HREF="#toc42">Partial application</A>
-      <LI><A HREF="#toc43">Testing resource modules</A>
-      </UL>
-    <LI><A HREF="#toc44">Grammar architecture</A>
-      <UL>
-      <LI><A HREF="#toc45">Extending a grammar</A>
-      <LI><A HREF="#toc46">Multiple inheritance</A>
-      </UL>
-    </UL>
-  <LI><A HREF="#toc47">Lesson 3: Grammars with parameters</A>
-    <UL>
-    <LI><A HREF="#toc48">The problem: words have to be inflected</A>
-    <LI><A HREF="#toc49">Parameters and tables</A>
-    <LI><A HREF="#toc50">Inflection tables and paradigms</A>
-      <UL>
-      <LI><A HREF="#toc51">Exercises on morphology</A>
-      </UL>
-    <LI><A HREF="#toc52">Using parameters in concrete syntax</A>
-      <UL>
-      <LI><A HREF="#toc53">Agreement</A>
-      <LI><A HREF="#toc54">Determiners</A>
-      <LI><A HREF="#toc55">Parametric vs. inherent features</A>
-      </UL>
-    <LI><A HREF="#toc56">An English concrete syntax for Foods with parameters</A>
-    <LI><A HREF="#toc57">More on inflection paradigms</A>
-      <UL>
-      <LI><A HREF="#toc58">Worst-case functions</A>
-      <LI><A HREF="#toc59">Smart paradigms</A>
-      <LI><A HREF="#toc60">Exercises on regular patterns</A>
-      <LI><A HREF="#toc61">Function types with variables</A>
-      <LI><A HREF="#toc62">Separating operation types and definitions</A>
-      <LI><A HREF="#toc63">Overloading of operations</A>
-      <LI><A HREF="#toc64">Morphological analysis and morphology quiz</A>
-      </UL>
-    <LI><A HREF="#toc65">The Italian Foods grammar</A>
-      <UL>
-      <LI><A HREF="#toc66">Exercises on using parameters</A>
-      </UL>
-    <LI><A HREF="#toc67">Discontinuous constituents</A>
-    <LI><A HREF="#toc68">Strings at compile time vs. run time</A>
-      <UL>
-      <LI><A HREF="#toc69">Supplementary constructs for concrete syntax</A>
-      </UL>
-    </UL>
-  <LI><A HREF="#toc70">Lesson 4: Using the resource grammar library</A>
-    <UL>
-    <LI><A HREF="#toc71">The coverage of the library</A>
-    <LI><A HREF="#toc72">The structure of the library</A>
-      <UL>
-      <LI><A HREF="#toc73">Lexical vs. phrasal rules</A>
-      <LI><A HREF="#toc74">Lexical categories</A>
-      <LI><A HREF="#toc75">Lexical rules</A>
-      <LI><A HREF="#toc76">Resource lexicon</A>
-      <LI><A HREF="#toc77">Phrasal categories</A>
-      <LI><A HREF="#toc78">Syntactic combinations</A>
-      <LI><A HREF="#toc79">Example syntactic combination</A>
-      </UL>
-    <LI><A HREF="#toc80">The resource API</A>
-      <UL>
-      <LI><A HREF="#toc81">A miniature resource API: categories</A>
-      <LI><A HREF="#toc82">A miniature resource API: rules</A>
-      <LI><A HREF="#toc83">A miniature resource API: structural words</A>
-      <LI><A HREF="#toc84">A miniature resource API: paradigms</A>
-      <LI><A HREF="#toc85">A miniature resource API: more paradigms</A>
-      <LI><A HREF="#toc86">Exercises</A>
-      </UL>
-    <LI><A HREF="#toc87">Example: English</A>
-      <UL>
-      <LI><A HREF="#toc88">English example: linearization types and combination rules</A>
-      <LI><A HREF="#toc89">English example: lexical rules</A>
-      <LI><A HREF="#toc90">English example: exercises</A>
-      </UL>
-    <LI><A HREF="#toc91">Functor implementation of multilingual grammars</A>
-      <UL>
-      <LI><A HREF="#toc92">New language by copy and paste</A>
-      <LI><A HREF="#toc93">Functors: functions on the module level</A>
-      <LI><A HREF="#toc94">Code for the Foods functor</A>
-      <LI><A HREF="#toc95">Code for the LexFoods interface</A>
-      <LI><A HREF="#toc96">Code for a German instance of the lexicon</A>
-      <LI><A HREF="#toc97">Code for a German functor instantiation</A>
-      <LI><A HREF="#toc98">Adding languages to a functor implementation</A>
-      <LI><A HREF="#toc99">Example: adding Finnish</A>
-      <LI><A HREF="#toc100">A design pattern</A>
-      <LI><A HREF="#toc101">Functors: exercises</A>
-      </UL>
-    <LI><A HREF="#toc102">Restricted inheritance</A>
-      <UL>
-      <LI><A HREF="#toc103">A problem with functors</A>
-      <LI><A HREF="#toc104">Restricted inheritance: include or exclude</A>
-      <LI><A HREF="#toc105">The functor problem solved</A>
-      </UL>
-    <LI><A HREF="#toc106">Grammar reuse</A>
-      <UL>
-      <LI><A HREF="#toc107">Library exercises</A>
-      </UL>
-    <LI><A HREF="#toc108">Tenses</A>
-    </UL>
-  <LI><A HREF="#toc109">Lesson 5: Refining semantics in abstract syntax</A>
-    <UL>
-    <LI><A HREF="#toc110">Dependent types</A>
-      <UL>
-      <LI><A HREF="#toc111">A dependent type system</A>
-      <LI><A HREF="#toc112">Examples of devices and actions</A>
-      <LI><A HREF="#toc113">Linearization and parsing with dependent types</A>
-      <LI><A HREF="#toc114">Solving metavariables</A>
-      </UL>
-    <LI><A HREF="#toc115">Polymorphism</A>
-      <UL>
-      <LI><A HREF="#toc116">Dependent types: exercises</A>
-      </UL>
-    <LI><A HREF="#toc117">Proof objects</A>
-      <UL>
-      <LI><A HREF="#toc118">Proof-carrying documents</A>
-      </UL>
-    <LI><A HREF="#toc119">Restricted polymorphism</A>
-      <UL>
-      <LI><A HREF="#toc120">Example: classes for switching and dimming</A>
-      </UL>
-    <LI><A HREF="#toc121">Variable bindings</A>
-      <UL>
-      <LI><A HREF="#toc122">Higher-order abstract syntax</A>
-      <LI><A HREF="#toc123">Higher-order abstract syntax: linearization</A>
-      <LI><A HREF="#toc124">Eta expansion</A>
-      <LI><A HREF="#toc125">Parsing variable bindings</A>
-      <LI><A HREF="#toc126">Exercises on variable bindings</A>
-      </UL>
-    <LI><A HREF="#toc127">Semantic definitions</A>
-      <UL>
-      <LI><A HREF="#toc128">Computing a tree</A>
-      <LI><A HREF="#toc129">Definitional equality</A>
-      <LI><A HREF="#toc130">Judgement forms for constructors</A>
-      <LI><A HREF="#toc131">Exercises on semantic definitions</A>
-      </UL>
-    <LI><A HREF="#toc132">Lesson 6: Grammars of formal languages</A>
-      <UL>
-      <LI><A HREF="#toc133">Arithmetic expressions</A>
-      <LI><A HREF="#toc134">Concrete syntax: a simple approach</A>
-      </UL>
-    <LI><A HREF="#toc135">Lexing and unlexing</A>
-      <UL>
-      <LI><A HREF="#toc136">Most common lexers and unlexers</A>
-      </UL>
-    <LI><A HREF="#toc137">Precedence and fixity</A>
-      <UL>
-      <LI><A HREF="#toc138">Precedence as a parameter</A>
-      <LI><A HREF="#toc139">Fixities</A>
-      <LI><A HREF="#toc140">Exercises on precedence</A>
-      </UL>
-    <LI><A HREF="#toc141">Code generation as linearization</A>
-      <UL>
-      <LI><A HREF="#toc142">Programs with variables</A>
-      <LI><A HREF="#toc143">Exercises on code generation</A>
-      </UL>
-    </UL>
-  <LI><A HREF="#toc144">Lesson 7: Embedded grammars</A>
-    <UL>
-    <LI><A HREF="#toc145">Functionalities of an embedded grammar format</A>
-    <LI><A HREF="#toc146">The portable grammar format</A>
-      <UL>
-      <LI><A HREF="#toc147">Haskell: the EmbedAPI module</A>
-      <LI><A HREF="#toc148">First application: a translator</A>
-      <LI><A HREF="#toc149">Producing GFCC for the translator</A>
-      <LI><A HREF="#toc150">A translator loop</A>
-      <LI><A HREF="#toc151">A question-answer system</A>
-      <LI><A HREF="#toc152">Abstract syntax of the query system</A>
-      <LI><A HREF="#toc153">Exporting GF datatypes to Haskell</A>
-      <LI><A HREF="#toc154">The question-answer function</A>
-      <LI><A HREF="#toc155">Converting between Haskell and GF trees</A>
-      <LI><A HREF="#toc156">Putting it all together: the transfer definition</A>
-      <LI><A HREF="#toc157">Putting it all together: the Main module</A>
-      <LI><A HREF="#toc158">Putting it all together: the Makefile</A>
-      </UL>
-    <LI><A HREF="#toc159">Web server applications</A>
-    <LI><A HREF="#toc160">JavaScript applications</A>
-      <UL>
-      <LI><A HREF="#toc161">Compiling to JavaScript</A>
-      <LI><A HREF="#toc162">Using the JavaScript grammar</A>
-      </UL>
-    <LI><A HREF="#toc163">Language models for speech recognition</A>
-      <UL>
-      <LI><A HREF="#toc164">More speech recognition grammar formats</A>
-      </UL>
-    </UL>
-  </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc1"></A>
-<H1>Overview</H1>
-<P>
-This is a hands-on introduction to grammar writing in GF.
-</P>
-<P>
-Main ingredients of GF:
-</P>
-<UL>
-<LI>linguistics
-<LI>functional programming
-</UL>
-
-<P>
-Prerequisites:
-</P>
-<UL>
-<LI>some previous experience from some programming language
-<LI>the basics of using computers, e.g. the use of 
-  text editors and the management of files.
-<LI>knowledge of Unix commands is useful but not necessary
-<LI>knowledge of many natural languages may add fun to experience
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc2"></A>
-<H2>Outline</H2>
-<P>
-<a href="#chaptwo">Lesson 1</a>: a multilingual "Hello World" grammar. English, Finnish, Italian.
-</P>
-<P>
-<a href="#chapthree">Lesson 2</a>: a larger grammar for the domain of food. English and Italian.
-</P>
-<P>
-<a href="#chaptwo">Lesson 3</a>: parameters - morphology and agreement.
-</P>
-<P>
-<a href="#chapfive">Lesson 4</a>: using the resource grammar library.
-</P>
-<P>
-<a href="#chapsix">Lesson 5</a>: semantics -  <B>dependent types</B>, <B>variable bindings</B>, 
-and <B>semantic definitions</B>.
-</P>
-<P>
-<a href="#chapseven">Lesson 6</a>: implementing formal languages.
-</P>
-<P>
-<a href="#chapeight">Lesson 7</a>: embedded grammar applications.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc3"></A>
-<H2>Slides</H2>
-<P>
-You can chop this tutorial into a set of slides by the command
-</P>
-<PRE>
-    htmls gf-tutorial.html
-</PRE>
-<P>
-where the program <CODE>htmls</CODE> is distributed with GF (see below), in
-</P>
-<P>
-  <A HREF="http://digitalgrammars.com/gf/src/tools/Htmls.hs"><CODE>GF/src/tools/Htmls.hs</CODE></A>
-</P>
-<P>
-The slides will appear as a set of files beginning with <CODE>01-gf-tutorial.htmls</CODE>.
-</P>
-<P>
-Internal links will not work in the slide format, except for those in the
-upper left corner of each slide, and the links behind the "Contents" link.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc4"></A>
-<H1>Lesson 1: Getting Started with GF</H1>
-<P>
-<a name="chaptwo"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>install and run GF
-<LI>write the first GF grammar: a "Hello World" grammar in three languages
-<LI>use GF for translation and multilingual generation
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc5"></A>
-<H2>What GF is</H2>
-<P>
-We use the term GF for three different things:
-</P>
-<UL>
-<LI>a <B>system</B> (computer program) used for working with grammars
-<LI>a <B>programming language</B> in which grammars can be written
-<LI>a <B>theory</B> about grammars and languages
-</UL>
-
-<P>
-The GF system is an implementation
-of the GF programming language, which in turn is built on the ideas of the
-GF theory. 
-</P>
-<P>
-The focus of this tutorial is on using the GF programming language.
-</P>
-<P>
-At the same time, we learn the way of thinking in the GF theory. 
-</P>
-<P>
-We make the grammars run on a computer by 
-using the GF system. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc6"></A>
-<H2>GF grammars and language processing tasks</H2>
-<P>
-A GF program is called a <B>grammar</B>. 
-</P>
-<P>
-A grammar defines a language. 
-</P>
-<P>
-From this definition, language processing components can be derived:
-</P>
-<UL>
-<LI><B>parsing</B>: to analyse the language
-<LI><B>linearization</B>: to generate the language
-<LI><B>translation</B>: to analyse one language and generate another
-</UL>
-
-<P>
-In general, a GF grammar is <B>multilingual</B>:
-</P>
-<UL>
-<LI>many languages in one grammar
-<LI>translations between them
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc7"></A>
-<H2>Getting the GF system</H2>
-<P>
-Open-source free software, downloaded via the GF Homepage:
-</P>
-<P>
-<A HREF="http://digitalgrammars.com/gf/"><CODE>digitalgrammars.com/gf</CODE></A>
-</P>
-<P>
-There you find
-</P>
-<UL>
-<LI>binaries for Linux, Mac OS X, and Windows
-<LI>source code and documentation
-<LI>grammar libraries and examples 
-</UL>
-
-<P>
-Many examples in this tutorial are
-<A HREF="http://digitalgrammars.com/gf/examples/tutorial">online</A>.
-</P>
-<P>
-Normally you don't have to compile GF yourself.
-But, if you do want to compile GF from source follow the
-instructions in the <A HREF="gf-developers.html">Developers Guide</A>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc8"></A>
-<H2>Running the GF system</H2>
-<P>
-Type <CODE>gf</CODE> in the Unix (or Cygwin) shell:
-</P>
-<PRE>
-    % gf
-</PRE>
-<P>
-You will see GF's welcome message and the prompt <CODE>&gt;</CODE>.
-The command
-</P>
-<PRE>
-    &gt; help
-</PRE>
-<P>
-will give you a list of available commands.
-</P>
-<P>
-As a common convention, we will use
-</P>
-<UL>
-<LI><CODE>%</CODE> as a prompt that marks system commands
-<LI><CODE>&gt;</CODE> as a prompt that marks GF commands
-</UL>
-
-<P>
-Thus you should not type these prompts, but only the characters that
-follow them.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc9"></A>
-<H2>A "Hello World" grammar</H2>
-<P>
-Like most programming language tutorials, we start with a
-program that prints "Hello World" on the terminal. 
-</P>
-<P>
-Extra features:
-</P>
-<UL>
-<LI><B>Multilinguality</B>: the message is printed in many languages.
-<LI><B>Reversibility</B>: in addition to printing, you can <B>parse</B> the
-  message and <B>translate</B> it to other languages.
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc10"></A>
-<H3>The program: abstract syntax and concrete syntaxes</H3>
-<P>
-A GF program, in general, is a <B>multilingual grammar</B>. Its main parts
-are
-</P>
-<UL>
-<LI>an <B>abstract syntax</B>
-<LI>one or more <B>concrete syntaxes</B>
-</UL>
-
-<P>
-The abstract syntax defines what <B>meanings</B>
-can be expressed in the grammar
-</P>
-<UL>
-<LI><I>Greetings</I>, where we greet a <I>Recipient</I>, which can be 
-  <I>World</I> or <I>Mum</I> or <I>Friends</I> 
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<P>
-GF code for the abstract syntax:
-</P>
-<PRE>
-    -- a "Hello World" grammar
-    abstract Hello = {
-  
-      flags startcat = Greeting ;
-  
-      cat Greeting ; Recipient ;
-  
-      fun 
-        Hello : Recipient -&gt; Greeting ;
-        World, Mum, Friends : Recipient ;
-    }
-</PRE>
-<P>
-The code has the following parts:
-</P>
-<UL>
-<LI>a <B>comment</B> (optional), saying what the module is doing 
-<LI>a <B>module header</B> indicating that it is an abstract syntax
-  module named <CODE>Hello</CODE>
-<LI>a <B>module body</B> in braces, consisting of
-  <UL>
-  <LI>a <B>startcat flag declaration</B> stating that <CODE>Greeting</CODE> is the
-    default start category for parsing and generation
-  <LI><B>category declarations</B> introducing two categories, i.e. types of meanings
-  <LI><B>function declarations</B> introducing three meaning-building functions
-  </UL>
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<P>
-English concrete syntax (mapping from meanings to strings):
-</P>
-<PRE>
-    concrete HelloEng of Hello = {
-  
-      lincat Greeting, Recipient = {s : Str} ;
-  
-      lin 
-        Hello recip = {s = "hello" ++ recip.s} ;
-        World = {s = "world"} ;
-        Mum = {s = "mum"} ;
-        Friends = {s = "friends"} ;
-    }
-</PRE>
-<P>
-The major parts of this code are:
-</P>
-<UL>
-<LI>a module header indicating that it is a concrete syntax of the abstract syntax
-  <CODE>Hello</CODE>, itself named <CODE>HelloEng</CODE>
-<LI>a module body in curly brackets, consisting of
-  <UL>
-  <LI><B>linearization type definitions</B> stating that 
-    <CODE>Greeting</CODE> and <CODE>Recipient</CODE> are <B>records</B> with a <B>string</B> <CODE>s</CODE>
-  <LI><B>linearization definitions</B> telling what records are assigned to
-    each of the meanings defined in the abstract syntax
-  </UL>
-</UL>
-
-<P>
-Notice the concatenation <CODE>++</CODE> and the record projection <CODE>.</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Finnish and an Italian concrete syntaxes:
-</P>
-<PRE>
-    concrete HelloFin of Hello = {
-      lincat Greeting, Recipient = {s : Str} ;
-      lin 
-        Hello recip = {s = "terve" ++ recip.s} ;
-        World = {s = "maailma"} ;
-        Mum = {s = "äiti"} ;
-        Friends = {s = "ystävät"} ;
-    }
-  
-    concrete HelloIta of Hello = {
-      lincat Greeting, Recipient = {s : Str} ;
-      lin 
-        Hello recip = {s = "ciao" ++ recip.s} ;
-        World = {s = "mondo"} ;
-        Mum = {s = "mamma"} ;
-        Friends = {s = "amici"} ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc11"></A>
-<H3>Using grammars in the GF system</H3>
-<P>
-In order to compile the grammar in GF,
-we create four files, one for each module, named <I>Modulename</I><CODE>.gf</CODE>:
-</P>
-<PRE>
-    Hello.gf  HelloEng.gf  HelloFin.gf  HelloIta.gf
-</PRE>
-<P>
-The first GF command: <B>import</B> a grammar.
-</P>
-<PRE>
-    &gt; import HelloEng.gf
-</PRE>
-<P>
-All commands also have short names; here:
-</P>
-<PRE>
-    &gt; i HelloEng.gf
-</PRE>
-<P>
-The GF system will <B>compile</B> your grammar 
-into an internal representation and show the CPU time was consumed, followed
-by a new prompt:
-</P>
-<PRE>
-    &gt; i HelloEng.gf
-    - compiling Hello.gf...   wrote file Hello.gfo 8 msec
-    - compiling HelloEng.gf...   wrote file HelloEng.gfo 12 msec
-  
-    12 msec
-    &gt;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-You can use GF for <B>parsing</B> (<CODE>parse</CODE> = <CODE>p</CODE>)
-</P>
-<PRE>
-    &gt; parse "hello world"
-    Hello World
-</PRE>
-<P>
-Parsing takes a <B>string</B> into an <B>abstract syntax tree</B>.
-</P>
-<P>
-The notation for trees is that of <B>function application</B>:
-</P>
-<PRE>
-    function argument1 ... argumentn
-</PRE>
-<P>
-Parentheses are only needed for grouping. 
-</P>
-<P>
-Parsing something that is not in grammar will fail:
-</P>
-<PRE>
-    &gt; parse "hello dad"
-    Unknown words: dad
-  
-    &gt; parse "world hello"
-    no tree found
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-You can also use GF for <B>linearization</B> (<CODE>linearize = l</CODE>). 
-It takes trees into strings:
-</P>
-<PRE>
-    &gt; linearize Hello World
-    hello world
-</PRE>
-<P>
-<B>Translation</B>: <B>pipe</B> linearization to parsing:
-</P>
-<PRE>
-    &gt; import HelloEng.gf
-    &gt; import HelloIta.gf
-  
-    &gt; parse -lang=HelloEng "hello mum" | linearize -lang=HelloIta
-    ciao mamma
-</PRE>
-<P>
-Default of the language flag (<CODE>-lang</CODE>): the last-imported concrete syntax.
-</P>
-<P>
-<B>Multilingual generation</B>:
-</P>
-<PRE>
-    &gt; parse -lang=HelloEng "hello friends" | linearize
-    terve ystävät
-    ciao amici
-    hello friends
-</PRE>
-<P>
-Linearization is by default to all available languages.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc12"></A>
-<H3>Exercises on the Hello World grammar</H3>
-<OL>
-<LI>Test the parsing and translation examples shown above, as well as
-some other examples, in different combinations of languages.
-<P></P>
-<LI>Extend the grammar <CODE>Hello.gf</CODE> and some of the
-concrete syntaxes by five new recipients and one new greeting
-form.
-<P></P>
-<LI>Add a concrete syntax for some other
-languages you might know.
-<P></P>
-<LI>Add a pair of greetings that are expressed in one and 
-the same way in
-one language and in two different ways in another. 
-For instance, <I>good morning</I>
-and <I>good afternoon</I> in English are both expressed 
-as <I>buongiorno</I> in Italian.
-Test what happens when you translate <I>buongiorno</I> to English in GF.
-<P></P>
-<LI>Inject errors in the <CODE>Hello</CODE> grammars, for example, leave out
-some line, omit a variable in a <CODE>lin</CODE> rule, or change the name 
-in one occurrence
-of a variable. Inspect the error messages generated by GF.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc13"></A>
-<H2>Using grammars from outside GF</H2>
-<P>
-You can use the <CODE>gf</CODE> program in a Unix pipe. 
-</P>
-<UL>
-<LI>echo a GF command
-<LI>pipe it into GF with grammar names as arguments
-</UL>
-
-<PRE>
-    % echo "l Hello World" | gf HelloEng.gf HelloFin.gf HelloIta.gf
-</PRE>
-<P>
-You can also write a <B>script</B>, a file containing the lines
-</P>
-<PRE>
-    import HelloEng.gf
-    import HelloFin.gf
-    import HelloIta.gf
-    linearize Hello World
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc14"></A>
-<H2>GF scripts</H2>
-<P>
-If we name this script <CODE>hello.gfs</CODE>, we can do
-</P>
-<PRE>
-    $ gf --run &lt;hello.gfs
-  
-    ciao mondo
-    terve maailma
-    hello world
-</PRE>
-<P>
-The option <CODE>--run</CODE> removes prompts, CPU time, and other messages. 
-</P>
-<P>
-See <a href="#chapeight">Lesson 7</a>, for stand-alone programs that don't need the GF system to run.
-</P>
-<P>
-<B>Exercise</B>. (For Unix hackers.) Write a GF application that reads
-an English string from the standard input and writes an Italian
-translation to the output.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc15"></A>
-<H2>What else can be done with the grammar</H2>
-<P>
-Some more functions that will be covered:
-</P>
-<UL>
-<LI><B>morphological analysis</B>: find out the possible inflection forms of words
-<LI><B>morphological synthesis</B>: generate all inflection forms of words
-<LI><B>random generation</B>: generate random expressions
-<LI><B>corpus generation</B>: generate all expressions
-<LI><B>treebank generation</B>: generate a list of trees with their linearizations
-<LI><B>teaching quizzes</B>: train morphology and translation
-<LI><B>multilingual authoring</B>: create a document in many languages simultaneously
-<LI><B>speech input</B>: optimize a speech recognition system for a grammar
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc16"></A>
-<H2>Embedded grammar applications</H2>
-<P>
-Application programs, using techniques from <a href="#chapeight">Lesson 7</a>:
-</P>
-<UL>
-<LI>compile grammars to new formats, such as speech recognition grammars
-<LI>embed grammars in Java and Haskell programs
-<LI>build applications using compilation and embedding:
-  <UL>
-  <LI>voice commands
-  <LI>spoken language translators
-  <LI>dialogue systems
-  <LI>user interfaces
-  <LI>localization: render the messages printed by a program
-    in different languages
-  </UL>
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc17"></A>
-<H1>Lesson 2: Designing a grammar for complex phrases</H1>
-<P>
-<a name="chapthree"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>build a larger grammar: phrases about food in English and Italian
-<LI>learn to write reusable library functions ("operations")
-<LI>learn the basics of GF's module system
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc18"></A>
-<H2>The abstract syntax Food</H2>
-<P>
-Phrases usable for speaking about food:
-</P>
-<UL>
-<LI>the start category is <CODE>Phrase</CODE>
-<LI>a <CODE>Phrase</CODE> can be built by assigning a <CODE>Quality</CODE> to an <CODE>Item</CODE> 
-  (e.g. <I>this cheese is Italian</I>)
-<LI>an<CODE>Item</CODE> is build from a <CODE>Kind</CODE> by prefixing <I>this</I> or <I>that</I> 
-  (e.g. <I>this wine</I>)
-<LI>a <CODE>Kind</CODE> is either <B>atomic</B> (e.g. <I>cheese</I>), or formed 
-  qualifying a given <CODE>Kind</CODE> with a <CODE>Quality</CODE> (e.g. <I>Italian cheese</I>)
-<LI>a <CODE>Quality</CODE> is either atomic (e.g. <I>Italian</I>,
-  or built by modifying a given <CODE>Quality</CODE> with the word <I>very</I> (e.g. <I>very warm</I>)
-</UL>
-
-<P>
-Abstract syntax:
-</P>
-<PRE>
-    abstract Food = {
-  
-      flags startcat = Phrase ;
-  
-      cat
-        Phrase ; Item ; Kind ; Quality ;
-  
-      fun
-        Is : Item -&gt; Quality -&gt; Phrase ;
-        This, That : Kind -&gt; Item ;
-        QKind : Quality -&gt; Kind -&gt; Kind ;
-        Wine, Cheese, Fish : Kind ;
-        Very : Quality -&gt; Quality ;
-        Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
-    }
-</PRE>
-<P>
-Example <CODE>Phrase</CODE>
-</P>
-<PRE>
-    Is (This (QKind Delicious (QKind Italian Wine))) (Very (Very Expensive))
-    this delicious Italian wine is very very expensive
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc19"></A>
-<H2>The concrete syntax FoodEng</H2>
-<PRE>
-    concrete FoodEng of Food = {
-  
-      lincat
-        Phrase, Item, Kind, Quality = {s : Str} ;
-  
-      lin
-        Is item quality = {s = item.s ++ "is" ++ quality.s} ;
-        This kind = {s = "this" ++ kind.s} ;
-        That kind = {s = "that" ++ kind.s} ;
-        QKind quality kind = {s = quality.s ++ kind.s} ;
-        Wine = {s = "wine"} ;
-        Cheese = {s = "cheese"} ;
-        Fish = {s = "fish"} ;
-        Very quality = {s = "very" ++ quality.s} ;
-        Fresh = {s = "fresh"} ;
-        Warm = {s = "warm"} ;
-        Italian = {s = "Italian"} ;
-        Expensive = {s = "expensive"} ;
-        Delicious = {s = "delicious"} ;
-        Boring = {s = "boring"} ;
-    }  
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Test the grammar for parsing:
-</P>
-<PRE>
-    &gt; import FoodEng.gf
-    &gt; parse "this delicious wine is very very Italian"
-    Is (This (QKind Delicious Wine)) (Very (Very Italian))
-</PRE>
-<P>
-Parse in other categories setting the <CODE>cat</CODE> flag:
-</P>
-<PRE>
-    p -cat=Kind "very Italian wine"
-    QKind (Very Italian) Wine
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc20"></A>
-<H3>Exercises on the Food grammar</H3>
-<OL>
-<LI>Extend the <CODE>Food</CODE> grammar by ten new food kinds and
-qualities, and run the parser with new kinds of examples.
-<P></P>
-<LI>Add a rule that enables question phrases of the form 
-<I>is this cheese Italian</I>.
-<P></P>
-<LI>Enable the optional prefixing of 
-phrases with the words "excuse me but". Do this in such a way that
-the prefix can occur at most once.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc21"></A>
-<H2>Commands for testing grammars</H2>
-<A NAME="toc22"></A>
-<H3>Generating trees and strings</H3>
-<P>
-Random generation (<CODE>generate_random = gr</CODE>): build
-build a random tree in accordance with an abstract syntax:
-</P>
-<PRE>
-    &gt; generate_random
-    Is (This (QKind Italian Fish)) Fresh
-</PRE>
-<P>
-By using a pipe, random generation can be fed into linearization:
-</P>
-<PRE>
-    &gt; generate_random | linearize
-    this Italian fish is fresh
-</PRE>
-<P>
-Use the <CODE>number</CODE> flag to generate several trees:
-</P>
-<PRE>
-    &gt; gr -number=4 | l
-    that wine is boring
-    that fresh cheese is fresh
-    that cheese is very boring
-    this cheese is Italian
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-To generate <I>all</I> phrases that a grammar can produce,
-use <CODE>generate_trees = gt</CODE>.
-</P>
-<PRE>
-    &gt; generate_trees | l
-    that cheese is very Italian
-    that cheese is very boring
-    that cheese is very delicious
-    ...
-    this wine is fresh
-    this wine is warm
-</PRE>
-<P>
-The default <B>depth</B> is 3; the depth can be
-set by using the <CODE>depth</CODE> flag:
-</P>
-<PRE>
-    &gt; generate_trees -depth=2 | l
-</PRE>
-<P>
-What options a command has can be seen by the <CODE>help = h</CODE> command:
-</P>
-<PRE>
-    &gt; help gr
-    &gt; help gt
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc23"></A>
-<H3>Exercises on generation</H3>
-<OL>
-<LI>If the command <CODE>gt</CODE> generated all
-trees in your grammar, it would never terminate. Why?
-<P></P>
-<LI>Measure how many trees the grammar gives with depths 4 and 5,
-respectively. <B>Hint</B>. You can 
-use the Unix <B>word count</B> command <CODE>wc</CODE> to count lines.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc24"></A>
-<H3>More on pipes: tracing</H3>
-<P>
-Put the <B>tracing</B> option <CODE>-tr</CODE> to each command whose output you
-want to see:
-</P>
-<PRE>
-    &gt; gr -tr | l -tr | p
-  
-    Is (This Cheese) Boring
-    this cheese is boring
-    Is (This Cheese) Boring  
-</PRE>
-<P>
-Useful for test purposes: the pipe above can show
-if a grammar is <B>ambiguous</B>, i.e.
-contains strings that can be parsed in more than one way.
-</P>
-<P>
-<B>Exercise</B>. Extend the <CODE>Food</CODE> grammar so that it produces ambiguous 
-strings, and try out the ambiguity test.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc25"></A>
-<H3>Writing and reading files</H3>
-<P>
-To save the outputs into a file, pipe it to the <CODE>write_file = wf</CODE> command,
-</P>
-<PRE>
-    &gt; gr -number=10 | linearize | write_file -file=exx.tmp
-</PRE>
-<P>
-To read a file to GF, use the <CODE>read_file = rf</CODE> command,
-</P>
-<PRE>
-    &gt; read_file -file=exx.tmp -lines | parse
-</PRE>
-<P>
-The flag <CODE>-lines</CODE> tells GF to read each line of the file separately. 
-</P>
-<P>
-Files with examples can be used for <B>regression testing</B>
-of grammars - the most systematic way to do this is by
-<B>treebanks</B>; see <a href="#sectreebank">here</a>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc26"></A>
-<H3>Visualizing trees</H3>
-<P>
-Parentheses give a linear representation of trees,
-useful for the computer. 
-</P>
-<P>
-Human eye may prefer to see a visualization: <CODE>visualize_tree = vt</CODE>:
-</P>
-<PRE>
-    &gt; parse "this delicious cheese is very Italian" | visualize_tree
-</PRE>
-<P>
-The tree is generated in postscript (<CODE>.ps</CODE>) file. The <CODE>-view</CODE> option is used for
-telling what command to use to view the file. Its default is <CODE>"gv"</CODE>, which works
-on most Linux installations. On a Mac, one would probably write
-</P>
-<PRE>
-    &gt; parse "this delicious cheese is very Italian" | visualize_tree -view="open"
-</PRE>
-<P></P>
-<P>
-<IMG ALIGN="middle" SRC="mytree.png" BORDER="0" ALT="">
-</P>
-<P>
-This command uses the program <A HREF="http://www.graphviz.org/">Graphviz</A>, which you
-might not have, but which are freely available on the web.
-</P>
-<P>
-You can save the temporary file <CODE>_grph.dot</CODE>, 
-which the command <CODE>vt</CODE> produces. 
-</P>
-<P>
-Then you can process this file with the <CODE>dot</CODE> 
-program (from the Graphviz package).
-</P>
-<PRE>
-    % dot -Tpng _grph.dot &gt; mytree.png
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc27"></A>
-<H3>System commands</H3>
-<P>
-You can give a <B>system command</B> without leaving GF:
-<CODE>!</CODE> followed by a Unix command,
-</P>
-<PRE>
-    &gt; ! dot -Tpng grphtmp.dot &gt; mytree.png
-    &gt; ! open mytree.png
-</PRE>
-<P>
-A system command may also receive its argument from
-a GF pipes. It then has the name <CODE>sp</CODE> = <CODE>system_pipe</CODE>:
-</P>
-<PRE>
-    &gt; generate_trees -depth=4 | sp -command="wc -l"
-</PRE>
-<P>
-This command example returns the number of generated trees.
-</P>
-<P>
-<B>Exercise</B>.
-Measure how many trees the grammar <CODE>FoodEng</CODE> gives with depths 4 and 5,
-respectively. Use the Unix <B>word count</B> command <CODE>wc</CODE> to count lines, and
-a system pipe from a GF command into a Unix command.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc28"></A>
-<H2>An Italian concrete syntax</H2>
-<P>
-<a name="secanitalian"></a>
-</P>
-<P>
-Just (?) replace English words with their dictionary equivalents:
-</P>
-<PRE>
-    concrete FoodIta of Food = {
-  
-      lincat
-        Phrase, Item, Kind, Quality = {s : Str} ;
-  
-      lin
-        Is item quality = {s = item.s ++ "è" ++ quality.s} ;
-        This kind = {s = "questo" ++ kind.s} ;
-        That kind = {s = "quel" ++ kind.s} ;
-        QKind quality kind = {s = kind.s ++ quality.s} ;
-        Wine = {s = "vino"} ;
-        Cheese = {s = "formaggio"} ;
-        Fish = {s = "pesce"} ;
-        Very quality = {s = "molto" ++ quality.s} ;
-        Fresh = {s = "fresco"} ;
-        Warm = {s = "caldo"} ;
-        Italian = {s = "italiano"} ;
-        Expensive = {s = "caro"} ;
-        Delicious = {s = "delizioso"} ;
-        Boring = {s = "noioso"} ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Not just replacing words:
-</P>
-<P>
-The order of a quality and the kind it modifies is changed in
-</P>
-<PRE>
-      QKind quality kind = {s = kind.s ++ quality.s} ;
-</PRE>
-<P>
-Thus Italian says <CODE>vino italiano</CODE> for <CODE>Italian wine</CODE>. 
-</P>
-<P>
-(Some Italian adjectives
-are put before the noun. This distinction can be controlled by parameters, 
-which are introduced in <a href="#chaptwo">Lesson 3</a>.)
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc29"></A>
-<H3>Exercises on multilinguality</H3>
-<OL>
-<LI>Write a concrete syntax of <CODE>Food</CODE> for some other language.
-You will probably end up with grammatically incorrect 
-linearizations - but don't
-worry about this yet.
-<P></P>
-<LI>If you have written <CODE>Food</CODE> for German, Swedish, or some
-other language, test with random or exhaustive generation what constructs
-come out incorrect, and prepare a list of those ones that cannot be helped
-with the currently available fragment of GF. You can return to your list
-after having worked out <a href="#chaptwo">Lesson 3</a>.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc30"></A>
-<H2>Free variation</H2>
-<P>
-Semantically indistinguishable ways of expressing a thing.
-</P>
-<P>
-The <B>variants</B> construct of GF expresses free variation. For example,
-</P>
-<PRE>
-    lin Delicious = {s = "delicious" | "exquisit" | "tasty"} ;
-</PRE>
-<P>
-By default, the <CODE>linearize</CODE> command
-shows only the first variant from such lists; to see them
-all, use the option <CODE>-all</CODE>:
-</P>
-<PRE>
-    &gt; p "this exquisit wine is delicious" | l -all
-    this delicious wine is delicious
-    this delicious wine is exquisit
-    ...
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-An equivalent notation for variants is
-</P>
-<PRE>
-    lin Delicious = {s = variants {"delicious" ; "exquisit" ; "tasty"}} ;
-</PRE>
-<P>
-This notation also allows the limiting case: an empty variant list,
-</P>
-<PRE>
-    variants {}
-</PRE>
-<P>
-It can be used e.g. if a word lacks a certain inflection form. 
-</P>
-<P>
-Free variation works for all types in concrete syntax; all terms in
-a variant list must be of the same type.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc31"></A>
-<H2>More application of multilingual grammars</H2>
-<A NAME="toc32"></A>
-<H3>Multilingual treebanks</H3>
-<P>
-<a name="sectreebank"></a>
-</P>
-<P>
-<B>Multilingual treebank</B>: a set of trees with their
-linearizations in different languages:
-</P>
-<PRE>
-    &gt; gr -number=2 | l -treebank
-  
-    Is (That Cheese) (Very Boring)
-    quel formaggio è molto noioso
-    that cheese is very boring
-  
-    Is (That Cheese) Fresh
-    quel formaggio è fresco
-    that cheese is fresh
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc33"></A>
-<H3>Translation quiz</H3>
-<P>
-<CODE>translation_quiz = tq</CODE>:
-generate random sentences, display them in one language, and check the user's
-answer given in another language. 
-</P>
-<PRE>
-    &gt; translation_quiz -from=FoodEng -to=FoodIta
-  
-    Welcome to GF Translation Quiz.
-    The quiz is over when you have done at least 10 examples
-    with at least 75 % success.
-    You can interrupt the quiz by entering a line consisting of a dot ('.').
-  
-    this fish is warm
-    questo pesce è caldo
-    &gt; Yes.
-    Score 1/1
-  
-    this cheese is Italian
-    questo formaggio è noioso
-    &gt; No, not questo formaggio è noioso, but
-    questo formaggio è italiano
-  
-    Score 1/2
-    this fish is expensive
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc34"></A>
-<H2>Context-free grammars and GF</H2>
-<A NAME="toc35"></A>
-<H3>The "cf" grammar format</H3>
-<P>
-The grammar <CODE>FoodEng</CODE> can be written in a BNF format as follows:
-</P>
-<PRE>
-    Is.        Phrase  ::= Item "is" Quality ;
-    That.      Item    ::= "that" Kind ;
-    This.      Item    ::= "this" Kind ;
-    QKind.     Kind    ::= Quality Kind ;
-    Cheese.    Kind    ::= "cheese" ;
-    Fish.      Kind    ::= "fish" ;
-    Wine.      Kind    ::= "wine" ;
-    Italian.   Quality ::= "Italian" ;
-    Boring.    Quality ::= "boring" ;
-    Delicious. Quality ::= "delicious" ;
-    Expensive. Quality ::= "expensive" ;
-    Fresh.     Quality ::= "fresh" ;
-    Very.      Quality ::= "very" Quality ;
-    Warm.      Quality ::= "warm" ;
-</PRE>
-<P>
-GF can convert BNF grammars into GF. 
-BNF files are recognized by the file name suffix <CODE>.cf</CODE> (for <B>context-free</B>): 
-</P>
-<PRE>
-    &gt; import food.cf
-</PRE>
-<P>
-The compiler creates separate abstract and concrete modules internally.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc36"></A>
-<H3>Restrictions of context-free grammars</H3>
-<P>
-Separating concrete and abstract syntax allows
-three deviations from context-free grammar:
-</P>
-<UL>
-<LI><B>permutation</B>: changing the order of constituents
-<LI><B>suppression</B>: omitting constituents
-<LI><B>reduplication</B>: repeating constituents
-</UL>
-
-<P>
-<B>Exercise</B>. Define the non-context-free
-copy language <CODE>{x x | x &lt;- (a|b)*}</CODE> in GF.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc37"></A>
-<H2>Modules and files</H2>
-<P>
-GF uses suffixes to recognize different file formats:
-</P>
-<UL>
-<LI>Source files: <I>Modulename</I><CODE>.gf</CODE>
-<LI>Target files: <I>Modulename</I><CODE>.gfo</CODE>
-</UL>
-
-<P>
-Importing generates target from source:
-</P>
-<PRE>
-    &gt; i FoodEng.gf
-    - compiling Food.gf...   wrote file Food.gfo 16 msec
-    - compiling FoodEng.gf...   wrote file FoodEng.gfo 20 msec
-</PRE>
-<P>
-The <CODE>.gfo</CODE> format (="GF Object") is precompiled GF, which is
-faster to load than source GF (<CODE>.gf</CODE>).
-</P>
-<P>
-When reading a module, GF decides whether
-to use an existing <CODE>.gfo</CODE> file or to generate
-a new one, by looking at modification times.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-<B>Exercise</B>.  What happens when you import <CODE>FoodEng.gf</CODE> for 
-a second time? Try this in different situations:
-</P>
-<UL>
-<LI>Right after importing it the first time (the modules are kept in
-  the memory of GF and need no reloading).
-<LI>After issuing the command <CODE>empty</CODE> (<CODE>e</CODE>), which clears the memory
-  of GF.
-<LI>After making a small change in <CODE>FoodEng.gf</CODE>, be it only an added space.
-<LI>After making a change in <CODE>Food.gf</CODE>.
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc38"></A>
-<H2>Using operations and resource modules</H2>
-<A NAME="toc39"></A>
-<H3>Operation definitions</H3>
-<P>
-The golden rule of functional programmin:
-</P>
-<P>
-<I>Whenever you find yourself programming by copy-and-paste, write a function instead.</I>
-</P>
-<P>
-Functions in concrete syntax are defined using the keyword <CODE>oper</CODE> (for
-<B>operation</B>), distinct from <CODE>fun</CODE> for the sake of clarity.
-</P>
-<P>
-Example:
-</P>
-<PRE>
-    oper ss : Str -&gt; {s : Str} = \x -&gt; {s = x} ;
-</PRE>
-<P>
-The operation can be <B>applied</B> to an argument, and GF will
-<B>compute</B> the value:
-</P>
-<PRE>
-    ss "boy" ===&gt; {s = "boy"}
-</PRE>
-<P>
-The symbol <CODE>===&gt;</CODE> will be used for computation.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Notice the <B>lambda abstraction</B> form 
-</P>
-<UL>
-<LI><CODE>\</CODE><I>x</I> <CODE>-&gt;</CODE> <I>t</I>
-</UL>
-
-<P>
-This is read:
-</P>
-<UL>
-<LI>function with variable <I>x</I> and <B>function body</B> <I>t</I>
-</UL>
-
-<P>
-For lambda abstraction with multiple arguments, we have the shorthand
-</P>
-<PRE>
-    \x,y -&gt; t   ===  \x -&gt; \y -&gt; t
-</PRE>
-<P>
-Linearization rules actually use syntactic
-sugar for abstraction:
-</P>
-<PRE>
-    lin f x = t   ===  lin f = \x -&gt; t
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc40"></A>
-<H3>The ``resource`` module type</H3>
-<P>
-The <CODE>resource</CODE> module type is used to package
-<CODE>oper</CODE> definitions into reusable resources. 
-</P>
-<PRE>
-    resource StringOper = {
-      oper
-        SS : Type = {s : Str} ;
-        ss : Str -&gt; SS = \x -&gt; {s = x} ;
-        cc : SS -&gt; SS -&gt; SS = \x,y -&gt; ss (x.s ++ y.s) ;
-        prefix : Str -&gt; SS -&gt; SS = \p,x -&gt; ss (p ++ x.s) ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc41"></A>
-<H3>Opening a resource</H3>
-<P>
-Any number of <CODE>resource</CODE> modules can be
-<B>open</B>ed in a <CODE>concrete</CODE> syntax.
-</P>
-<PRE>
-    concrete FoodEng of Food = open StringOper in {
-  
-      lincat
-        S, Item, Kind, Quality = SS ;
-  
-      lin
-        Is item quality = cc item (prefix "is" quality) ;
-        This k = prefix "this" k ;
-        That k = prefix "that" k ;
-        QKind k q = cc k q ;
-        Wine = ss "wine" ;
-        Cheese = ss "cheese" ;
-        Fish = ss "fish" ;
-        Very = prefix "very" ;
-        Fresh = ss "fresh" ;
-        Warm = ss "warm" ;
-        Italian = ss "Italian" ;
-        Expensive = ss "expensive" ;
-        Delicious = ss "delicious" ;
-        Boring = ss "boring" ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc42"></A>
-<H3>Partial application</H3>
-<P>
-<a name="secpartapp"></a>
-</P>
-<P>
-The rule
-</P>
-<PRE>
-    lin This k = prefix "this" k ;
-</PRE>
-<P>
-can be written more concisely
-</P>
-<PRE>
-    lin This = prefix "this" ;
-</PRE>
-<P>
-Part of the art in functional programming: 
-decide the order of arguments in a function, 
-so that partial application can be used as much as possible. 
-</P>
-<P>
-For instance, <CODE>prefix</CODE> is typically applied to 
-linearization variables with constant strings. Hence we
-put the <CODE>Str</CODE> argument before the <CODE>SS</CODE> argument.
-</P>
-<P>
-<B>Exercise</B>. Define an operation <CODE>infix</CODE> analogous to <CODE>prefix</CODE>,
-such that it allows you to write
-</P>
-<PRE>
-    lin Is = infix "is" ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc43"></A>
-<H3>Testing resource modules</H3>
-<P>
-Import with the flag <CODE>-retain</CODE>, 
-</P>
-<PRE>
-    &gt; import -retain StringOper.gf
-</PRE>
-<P>
-Compute the value with <CODE>compute_concrete = cc</CODE>,
-</P>
-<PRE>
-    &gt; compute_concrete prefix "in" (ss "addition")
-    {s : Str = "in" ++ "addition"}
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc44"></A>
-<H2>Grammar architecture</H2>
-<P>
-<a name="secarchitecture"></a>
-</P>
-<A NAME="toc45"></A>
-<H3>Extending a grammar</H3>
-<P>
-A new module can <B>extend</B> an old one:
-</P>
-<PRE>
-    abstract Morefood = Food ** {
-      cat
-        Question ;
-      fun
-        QIs : Item -&gt; Quality -&gt; Question ;
-        Pizza : Kind ;      
-    }
-</PRE>
-<P>
-Parallel to the abstract syntax, extensions can
-be built for concrete syntaxes:
-</P>
-<PRE>
-    concrete MorefoodEng of Morefood = FoodEng ** {
-      lincat
-        Question = {s : Str} ;
-      lin
-        QIs item quality = {s = "is" ++ item.s ++ quality.s} ;
-        Pizza = {s = "pizza"} ;
-    }
-</PRE>
-<P>
-The effect of extension: all of the contents of the extended
-and extending modules are put together. 
-</P>
-<P>
-In other words: the new module <B>inherits</B> the contents of the old module.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Simultaneous extension and opening:
-</P>
-<PRE>
-    concrete MorefoodIta of Morefood = FoodIta ** open StringOper in {
-      lincat
-        Question = SS ;
-      lin
-        QIs item quality = ss (item.s ++ "è" ++ quality.s) ;
-        Pizza = ss "pizza" ;
-    }
-</PRE>
-<P>
-Resource modules can extend other resource modules - thus it is 
-possible to build resource hierarchies.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc46"></A>
-<H3>Multiple inheritance</H3>
-<P>
-Extend several grammars at the same time:
-</P>
-<PRE>
-    abstract Foodmarket = Food, Fruit, Mushroom ** {
-      fun 
-        FruitKind    : Fruit    -&gt; Kind ;
-        MushroomKind : Mushroom -&gt; Kind ;
-      }
-</PRE>
-<P>
-where
-</P>
-<PRE>
-    abstract Fruit = {
-      cat Fruit ;
-      fun Apple, Peach : Fruit ;
-    }
-  
-    abstract Mushroom = {
-      cat Mushroom ;
-      fun Cep, Agaric : Mushroom ;
-    }
-</PRE>
-<P></P>
-<P>
-<B>Exercise</B>. Refactor <CODE>Food</CODE> by taking apart <CODE>Wine</CODE> into a special
-<CODE>Drink</CODE> module.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc47"></A>
-<H1>Lesson 3: Grammars with parameters</H1>
-<P>
-<a name="chapfour"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>implement sophisticated linguistic structures:
-  <UL>
-  <LI>morphology: the inflection of words
-  <LI>agreement: rules for selecting word forms in syntactic combinations
-  </UL>
-</UL>
-
-<UL>
-<LI>Cover all GF constructs for concrete syntax
-</UL>
-
-<P>
-It is possible to skip this chapter and go directly
-to the next, since the use of the GF Resource Grammar library
-makes it unnecessary to use parameters: they 
-could be left to library implementors.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc48"></A>
-<H2>The problem: words have to be inflected</H2>
-<P>
-Plural forms are needed in things like
-<center>
-<I>these Italian wines are delicious</I>
-</center>
-This requires two things:
-</P>
-<UL>
-<LI>the <B>inflection</B> of nouns and verbs in singular and plural
-<LI>the <B>agreement</B> of the verb to subject: 
-  the verb must have the same number as the subject
-</UL>
-
-<P>
-Different languages have different types of inflection and agreement.
-</P>
-<UL>
-<LI>Italian has also gender (masculine vs. feminine).
-</UL>
-
-<P>
-In a multilingual grammar,
-we want to ignore such distinctions in abstract syntax.
-</P>
-<P>
-<B>Exercise</B>. Make a list of the possible forms that nouns,
-adjectives, and verbs can have in some languages that you know.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc49"></A>
-<H2>Parameters and tables</H2>
-<P>
-We define the <B>parameter type</B> of number in English by
-a new form of judgement:
-</P>
-<PRE>
-    param Number = Sg | Pl ;
-</PRE>
-<P>
-This judgement defines the parameter type <CODE>Number</CODE> by listing
-its two <B>constructors</B>, <CODE>Sg</CODE> and <CODE>Pl</CODE> 
-(singular and plural). 
-</P>
-<P>
-We give <CODE>Kind</CODE> a linearization type that has a <B>table</B> depending on number:
-</P>
-<PRE>
-    lincat Kind = {s : Number =&gt; Str} ;
-</PRE>
-<P>
-The <B>table type</B> <CODE>Number =&gt; Str</CODE> is similar a function type 
-(<CODE>Number -&gt; Str</CODE>). 
-</P>
-<P>
-Difference: the argument must be a parameter type. Then
-the argument-value pairs can be listed in a finite table. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Here is a table:
-</P>
-<PRE>
-    lin Cheese = {
-      s = table {
-        Sg =&gt; "cheese" ;
-        Pl =&gt; "cheeses"
-      }
-    } ;
-</PRE>
-<P>
-The table has <B>branches</B>, with a <B>pattern</B> on the
-left of the arrow <CODE>=&gt;</CODE> and a <B>value</B> on the right.
-</P>
-<P>
-The application of a table is done by the <B>selection</B> operator <CODE>!</CODE>. 
-</P>
-<P>
-It which is computed by <B>pattern matching</B>: return
-the value from the first branch whose pattern matches the
-argument. For instance,
-</P>
-<PRE>
-     table {Sg =&gt; "cheese" ; Pl =&gt; "cheeses"} ! Pl 
-     ===&gt; "cheeses"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-<B>Case expressions</B> are syntactic sugar:
-</P>
-<PRE>
-    case e of {...} ===  table {...} ! e
-</PRE>
-<P>
-Since they are familiar to Haskell and ML programmers, they can come out handy
-when writing GF programs.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Constructors can take arguments from other parameter types. 
-</P>
-<P>
-Example: forms of English verbs (except <I>be</I>):
-</P>
-<PRE>
-    param VerbForm = VPresent Number | VPast | VPastPart | VPresPart ;
-</PRE>
-<P>
-Fact expressed: only present tense has number variation. 
-</P>
-<P>
-Example table: the forms of the verb <I>drink</I>:
-</P>
-<PRE>
-    table {
-      VPresent Sg =&gt; "drinks" ;
-      VPresent Pl =&gt; "drink" ;
-      VPast       =&gt; "drank" ;
-      VPastPart   =&gt; "drunk" ;
-      VPresPart   =&gt; "drinking"
-      }
-</PRE>
-<P></P>
-<P>
-<B>Exercise</B>. In an earlier exercise (previous section), 
-you made a list of the possible 
-forms that nouns, adjectives, and verbs can have in some languages that 
-you know. Now take some of the results and implement them by
-using parameter type definitions and tables. Write them into a <CODE>resource</CODE>
-module, which you can test by using the command <CODE>compute_concrete</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc50"></A>
-<H2>Inflection tables and paradigms</H2>
-<P>
-A morphological <B>paradigm</B> is a formula telling how a class of 
-words is inflected.
-</P>
-<P>
-From the GF point of view, a paradigm is a function that takes 
-a <B>lemma</B> (also known as a <B>dictionary form</B>, or a <B>citation form</B>) and 
-returns an inflection table. 
-</P>
-<P>
-The following operation defines the regular noun paradigm of English:
-</P>
-<PRE>
-    oper regNoun : Str -&gt; {s : Number =&gt; Str} = \dog -&gt; {
-      s = table {
-        Sg =&gt; dog ;
-        Pl =&gt; dog + "s"
-        }
-      } ;
-</PRE>
-<P>
-The <B>gluing</B> operator <CODE>+</CODE> glues strings to one <B>token</B>:
-</P>
-<PRE>
-    (regNoun "cheese").s ! Pl  ===&gt; "cheese" + "s"  ===&gt;  "cheeses"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-A more complex example: regular verbs,
-</P>
-<PRE>
-    oper regVerb : Str -&gt; {s : VerbForm =&gt; Str} = \talk -&gt; {
-      s = table {
-        VPresent Sg =&gt; talk + "s" ;
-        VPresent Pl =&gt; talk ;
-        VPresPart   =&gt; talk + "ing" ;
-        _           =&gt; talk + "ed"
-        }
-      } ;
-</PRE>
-<P>
-The catch-all case for the past tense and the past participle
-uses a <B>wild card</B> pattern <CODE>_</CODE>. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc51"></A>
-<H3>Exercises on morphology</H3>
-<OL>
-<LI>Identify cases in which the <CODE>regNoun</CODE> paradigm does not
-apply in English, and implement some alternative paradigms.
-<P></P>
-<LI>Implement some regular paradigms for other languages you have
-considered in earlier exercises.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc52"></A>
-<H2>Using parameters in concrete syntax</H2>
-<P>
-Purpose: a more radical
-variation between languages
-than just the use of different words and word orders. 
-</P>
-<P>
-We add to the grammar <CODE>Food</CODE> two rules for forming plural items:
-</P>
-<PRE>
-    fun These, Those : Kind -&gt; Item ;
-</PRE>
-<P>
-We also add a noun which in Italian has the feminine case:
-</P>
-<PRE>
-    fun Pizza : Kind ;
-</PRE>
-<P>
-This will force us to deal with gender- 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc53"></A>
-<H3>Agreement</H3>
-<P>
-In English, the phrase-forming rule
-</P>
-<PRE>
-    fun Is : Item -&gt; Quality -&gt; Phrase ;
-</PRE>
-<P>
-is affected by the number because of <B>subject-verb agreement</B>:
-the verb of a sentence must be inflected in the number of the subject,
-</P>
-<PRE>
-    Is (This Pizza) Warm   ===&gt;  "this pizza is warm"
-    Is (These Pizza) Warm  ===&gt;  "these pizzas are warm"
-</PRE>
-<P>
-It is the <B>copula</B> (the verb <I>be</I>) that is affected:
-</P>
-<PRE>
-    oper copula : Number -&gt; Str = \n -&gt; 
-      case n of {
-        Sg =&gt; "is" ;
-        Pl =&gt; "are"
-        } ;
-</PRE>
-<P>
-The <B>subject</B> <CODE>Item</CODE> must have such a number to provide to the copula:
-</P>
-<PRE>
-    lincat Item = {s : Str ; n : Number} ;
-</PRE>
-<P>
-Now we can write
-</P>
-<PRE>
-    lin Is item qual = {s = item.s ++ copula item.n ++ qual.s} ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc54"></A>
-<H3>Determiners</H3>
-<P>
-How does an <CODE>Item</CODE> subject receive its number? The rules
-</P>
-<PRE>
-    fun This, These : Kind -&gt; Item ;
-</PRE>
-<P>
-add <B>determiners</B>, either <I>this</I> or <I>these</I>, which
-require different <I>this pizza</I> vs.
-<I>these pizzas</I>. 
-</P>
-<P>
-Thus <CODE>Kind</CODE> must have both singular and plural forms:
-</P>
-<PRE>
-    lincat Kind = {s : Number =&gt; Str} ;
-</PRE>
-<P>
-We can write
-</P>
-<PRE>
-    lin This kind = {
-      s = "this" ++ kind.s ! Sg ; 
-      n = Sg
-    } ; 
-  
-    lin These kind = {
-      s = "these" ++ kind.s ! Pl ; 
-      n = Pl
-    } ; 
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-To avoid copy-and-paste, we can factor out the pattern of determination,
-</P>
-<PRE>
-    oper det : 
-      Str -&gt; Number -&gt; {s : Number =&gt; Str} -&gt; {s : Str ; n : Number} = 
-        \det,n,kind -&gt; {
-        s = det ++ kind.s ! n ; 
-        n = n
-      } ; 
-</PRE>
-<P>
-Now we can write
-</P>
-<PRE>
-    lin This  = det Sg "this" ;
-    lin These = det Pl "these" ;
-</PRE>
-<P>
-In a more <B>lexicalized</B> grammar, determiners would be a category:
-</P>
-<PRE>
-    lincat Det = {s : Str ; n : Number} ;
-    fun Det : Det -&gt; Kind -&gt; Item ;
-    lin Det det kind = {
-        s = det.s ++ kind.s ! det.n ; 
-        n = det.n
-      } ; 
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc55"></A>
-<H3>Parametric vs. inherent features</H3>
-<P>
-<CODE>Kind</CODE>s have number as a <B>parametric feature</B>: both singular and plural
-can be formed,
-</P>
-<PRE>
-    lincat Kind = {s : Number =&gt; Str} ;
-</PRE>
-<P>
-<CODE>Item</CODE>s have number as an <B>inherent feature</B>: they are inherently either
-singular or plural,
-</P>
-<PRE>
-    lincat Item = {s : Str ; n : Number} ;
-</PRE>
-<P>
-Italian <CODE>Kind</CODE> will have parametric number and inherent gender:
-</P>
-<PRE>
-    lincat Kind = {s : Number =&gt; Str ; g : Gender} ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Questions to ask when designing parameters:
-</P>
-<UL>
-<LI>existence: what forms are possible to build by morphological and
-  other means?
-<LI>need: what features are expected via agreement or government?
-</UL>
-
-<P>
-Dictionaries give good advice:
-<center>
-<B>uomo</B>, pl. <I>uomini</I>, n.m. "man"
-</center>
-tells that <I>uomo</I> is a masculine noun with the plural form <I>uomini</I>.
-Hence, parametric number and an inherent gender.
-</P>
-<P>
-For words, inherent features are usually given as lexical information.
-</P>
-<P>
-For combinations, they are <I>inherited</I> from some part of the construction
-(typically the one called the <B>head</B>). Italian modification:
-</P>
-<PRE>
-    lin QKind qual kind = 
-      let gen = kind.g in {
-        s = table {n =&gt; kind.s ! n ++ qual.s ! gen ! n} ;
-        g = gen
-        } ;
-</PRE>
-<P>
-Notice 
-</P>
-<UL>
-<LI><B>local definition</B> (<CODE>let</CODE> expression)
-<LI><B>variable pattern</B> <CODE>n</CODE>
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc56"></A>
-<H2>An English concrete syntax for Foods with parameters</H2>
-<P>
-We use some string operations from the library <CODE>Prelude</CODE> are used. 
-</P>
-<PRE>
-     concrete FoodsEng of Foods = open Prelude in {
-  
-    lincat
-      S, Quality = SS ; 
-      Kind = {s : Number =&gt; Str} ; 
-      Item = {s : Str ; n : Number} ; 
-  
-    lin
-      Is item quality = ss (item.s ++ copula item.n ++ quality.s) ;
-      This  = det Sg "this" ;
-      That  = det Sg "that" ;
-      These = det Pl "these" ;
-      Those = det Pl "those" ;
-      QKind quality kind = {s = table {n =&gt; quality.s ++ kind.s ! n}} ;
-      Wine = regNoun "wine" ;
-      Cheese = regNoun "cheese" ;
-      Fish = noun "fish" "fish" ;
-      Pizza = regNoun "pizza" ;
-      Very = prefixSS "very" ;
-      Fresh = ss "fresh" ;
-      Warm = ss "warm" ;
-      Italian = ss "Italian" ;
-      Expensive = ss "expensive" ;
-      Delicious = ss "delicious" ;
-      Boring = ss "boring" ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<PRE>
-    param
-      Number = Sg | Pl ;
-  
-    oper
-      det : Number -&gt; Str -&gt; {s : Number =&gt; Str} -&gt; {s : Str ; n : Number} = 
-        \n,d,cn -&gt; {
-          s = d ++ cn.s ! n ;
-          n = n
-        } ;
-      noun : Str -&gt; Str -&gt; {s : Number =&gt; Str} = 
-        \man,men -&gt; {s = table {
-          Sg =&gt; man ;
-          Pl =&gt; men 
-          }
-        } ;
-      regNoun : Str -&gt; {s : Number =&gt; Str} = 
-        \car -&gt; noun car (car + "s") ;
-      copula : Number -&gt; Str = 
-        \n -&gt; case n of {
-          Sg =&gt; "is" ;
-          Pl =&gt; "are"
-          } ;
-    }    
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc57"></A>
-<H2>More on inflection paradigms</H2>
-<P>
-<a name="secinflection"></a>
-</P>
-<P>
-Let us extend the English noun paradigms so that we can
-deal with all nouns, not just the regular ones. The goal is to
-provide a morphology module that makes it easy to
-add words to a lexicon. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc58"></A>
-<H3>Worst-case functions</H3>
-<P>
-We perform <B>data abstraction</B> from the type
-of nouns by writing a a <B>worst-case function</B>:
-</P>
-<PRE>
-    oper Noun : Type = {s : Number =&gt; Str} ;
-  
-    oper mkNoun : Str -&gt; Str -&gt; Noun = \x,y -&gt; {
-      s = table {
-        Sg =&gt; x ;
-        Pl =&gt; y
-        }
-      } ;
-  
-    oper regNoun : Str -&gt; Noun = \x -&gt; mkNoun x (x + "s") ;
-</PRE>
-<P>
-Then we can define
-</P>
-<PRE>
-    lincat N = Noun ;
-    lin Mouse = mkNoun "mouse" "mice" ;
-    lin House = regNoun "house" ;
-</PRE>
-<P>
-where the underlying types are not seen.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-We are free to change the undelying definitions, e.g.
-add <B>case</B> (nominative or genitive) to noun inflection:
-</P>
-<PRE>
-    param Case = Nom | Gen ;
-  
-    oper Noun : Type = {s : Number =&gt; Case =&gt; Str} ;
-</PRE>
-<P>
-Now we have to redefine the worst-case function
-</P>
-<PRE>
-    oper mkNoun : Str -&gt; Str -&gt; Noun = \x,y -&gt; {
-      s = table {
-        Sg =&gt; table {
-          Nom =&gt; x ;
-          Gen =&gt; x + "'s"
-          } ;
-        Pl =&gt; table {
-          Nom =&gt; y ;
-          Gen =&gt; y + case last y of {
-            "s" =&gt; "'" ;
-            _   =&gt; "'s"
-          }
-        }
-      } ;
-</PRE>
-<P>
-But up from this level, we can retain the old definitions
-</P>
-<PRE>
-    lin Mouse = mkNoun "mouse" "mice" ;
-    oper regNoun : Str -&gt; Noun = \x -&gt; mkNoun x (x + "s") ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-In the last definition of <CODE>mkNoun</CODE>, we used a case expression
-on the last character of the plural, as well as the <CODE>Prelude</CODE> 
-operation
-</P>
-<PRE>
-    last : Str -&gt; Str ;
-</PRE>
-<P>
-returning the string consisting of the last character.
-</P>
-<P>
-The case expression uses <B>pattern matching over strings</B>, which
-is supported in GF, alongside with pattern matching over
-parameters.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc59"></A>
-<H3>Smart paradigms</H3>
-<P>
-The regular <I>dog</I>-<I>dogs</I> paradigm has
-predictable variations:
-</P>
-<UL>
-<LI>nouns ending with an <I>y</I>: <I>fly</I>-<I>flies</I>, except if
-  a vowel precedes the <I>y</I>: <I>boy</I>-<I>boys</I>
-<LI>nouns ending with <I>s</I>, <I>ch</I>, and a number of
-  other endings: <I>bus</I>-<I>buses</I>, <I>leech</I>-<I>leeches</I>
-</UL>
-
-<P>
-We could provide alternative paradigms:
-</P>
-<PRE>
-    noun_y : Str -&gt; Noun = \fly -&gt; mkNoun fly (init fly + "ies") ;  
-    noun_s : Str -&gt; Noun = \bus -&gt; mkNoun bus (bus + "es") ;
-</PRE>
-<P>
-(The Prelude function <CODE>init</CODE> drops the last character of a token.)
-</P>
-<P>
-Drawbacks: 
-</P>
-<UL>
-<LI>it can be difficult to select the correct paradigm
-<LI>it can be difficult to remember the names of the different paradigms
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<P>
-Better solution: a <B>smart paradigm</B>:
-</P>
-<PRE>
-    regNoun : Str -&gt; Noun = \w -&gt; 
-      let 
-        ws : Str = case w of {
-          _ + ("a" | "e" | "i" | "o") + "o" =&gt; w + "s" ;  -- bamboo
-          _ + ("s" | "x" | "sh" | "o")      =&gt; w + "es" ; -- bus, hero
-          _ + "z"                           =&gt; w + "zes" ;-- quiz 
-          _ + ("a" | "e" | "o" | "u") + "y" =&gt; w + "s" ;  -- boy
-          x + "y"                           =&gt; x + "ies" ;-- fly
-          _                                 =&gt; w + "s"    -- car
-          } 
-      in 
-      mkNoun w ws
-</PRE>
-<P>
-GF has <B>regular expression patterns</B>:
-</P>
-<UL>
-<LI><B>disjunctive patterns</B>  <I>P</I> <CODE>|</CODE> <I>Q</I>
-<LI><B>concatenation patterns</B> <I>P</I> <CODE>+</CODE> <I>Q</I>
-</UL>
-
-<P>
-The patterns are ordered in such a way that, for instance, 
-the suffix <CODE>"oo"</CODE> prevents <I>bamboo</I> from matching the suffix
-<CODE>"o"</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc60"></A>
-<H3>Exercises on regular patterns</H3>
-<OL>
-<LI>The same rules that form plural nouns in English also
-apply in the formation of third-person singular verbs. 
-Write a regular verb paradigm that uses this idea, but first
-rewrite <CODE>regNoun</CODE> so that the analysis needed to build <I>s</I>-forms
-is factored out as a separate <CODE>oper</CODE>, which is shared with
-<CODE>regVerb</CODE>.
-<P></P>
-<LI>Extend the verb paradigms to cover all verb forms
-in English, with special care taken of variations with the suffix
-<I>ed</I> (e.g. <I>try</I>-<I>tried</I>, <I>use</I>-<I>used</I>).
-<P></P>
-<LI>Implement the German <B>Umlaut</B> operation on word stems.
-The operation changes the vowel of the stressed stem syllable as follows:
-<I>a</I> to <I>ä</I>, <I>au</I> to <I>äu</I>, <I>o</I> to <I>ö</I>, and <I>u</I> to <I>ü</I>. You
-can assume that the operation only takes syllables as arguments. Test the
-operation to see whether it correctly changes <I>Arzt</I> to <I>Ärzt</I>,
-<I>Baum</I> to <I>Bäum</I>, <I>Topf</I> to <I>Töpf</I>, and <I>Kuh</I> to <I>Küh</I>.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc61"></A>
-<H3>Function types with variables</H3>
-<P>
-In <a href="#chapsix">Lesson 5</a>, <B>dependent function types</B> need a notation
-that binds a variable to the argument type, as in
-</P>
-<PRE>
-    switchOff : (k : Kind) -&gt; Action k
-</PRE>
-<P>
-Function types <I>without</I> variables are actually a shorthand:
-</P>
-<PRE>
-    PredVP : NP -&gt; VP -&gt; S
-</PRE>
-<P>
-means
-</P>
-<PRE>
-    PredVP : (x : NP) -&gt; (y : VP) -&gt; S
-</PRE>
-<P>
-or any other naming of the variables.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Sometimes variables shorten the code, since they can share a type:
-</P>
-<PRE>
-    octuple : (x,y,z,u,v,w,s,t : Str) -&gt; Str
-</PRE>
-<P>
-If a bound variable is not used, it can be replaced by a wildcard:
-</P>
-<PRE>
-    octuple : (_,_,_,_,_,_,_,_ : Str) -&gt; Str
-</PRE>
-<P>
-A good practice is to indicate the number of arguments:
-</P>
-<PRE>
-    octuple : (x1,_,_,_,_,_,_,x8 : Str) -&gt; Str
-</PRE>
-<P>
-For inflection paradigms, it is handy to use heuristic variable names,
-looking like the expected forms:
-</P>
-<PRE>
-    mkNoun : (mouse,mice : Str) -&gt; Noun
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc62"></A>
-<H3>Separating operation types and definitions</H3>
-<P>
-In librarues, it is useful to group type signatures separately from
-definitions. It is possible to divide an <CODE>oper</CODE> judgement, 
-</P>
-<PRE>
-    oper regNoun : Str -&gt; Noun ;
-    oper regNoun s = mkNoun s (s + "s") ;
-</PRE>
-<P>
-and put the parts in different places.
-</P>
-<P>
-With the <CODE>interface</CODE> and <CODE>instance</CODE> module types
-(see <a href="#secinterface">here</a>): the parts can even be put to different files.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc63"></A>
-<H3>Overloading of operations</H3>
-<P>
-<B>Overloading</B>: different functions can be given the same name, as e.g. in C++.
-</P>
-<P>
-The compiler performs <B>overload resolution</B>, which works as long as the
-functions have different types.
-</P>
-<P>
-In GF, the functions must be grouped together in <CODE>overload</CODE> groups. 
-</P>
-<P>
-Example: different ways to define nouns in English:
-</P>
-<PRE>
-    oper mkN : overload {
-      mkN : (dog : Str) -&gt; Noun ;         -- regular nouns
-      mkN : (mouse,mice : Str) -&gt; Noun ;  -- irregular nouns
-    }
-</PRE>
-<P>
-Cf. dictionaries: if the
-word is regular, just one form is needed. If it is irregular,
-more forms are given. 
-</P>
-<P>
-The definition can be given separately, or at the same time, as the types:
-</P>
-<PRE>
-    oper mkN = overload {
-      mkN : (dog : Str) -&gt; Noun = regNoun ;
-      mkN : (mouse,mice : Str) -&gt; Noun = mkNoun ;
-    }
-</PRE>
-<P>
-<B>Exercise</B>. Design a system of English verb paradigms presented by
-an overload group.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc64"></A>
-<H3>Morphological analysis and morphology quiz</H3>
-<P>
-The command <CODE>morpho_analyse = ma</CODE>
-can be used to read a text and return for each word its analyses
-(in the current grammar):
-</P>
-<PRE>
-    &gt; read_file bible.txt | morpho_analyse
-</PRE>
-<P>
-The command <CODE>morpho_quiz = mq</CODE> generates inflection exercises. 
-</P>
-<PRE>
-    % gf -path=alltenses:prelude $GF_LIB_PATH/alltenses/IrregFre.gfc
-  
-    &gt; morpho_quiz -cat=V
-  
-    Welcome to GF Morphology Quiz.
-    ...
-  
-    réapparaître : VFin VCondit  Pl  P2
-    réapparaitriez
-    &gt; No, not réapparaitriez, but
-    réapparaîtriez
-    Score 0/1
-</PRE>
-<P>
-To create a list for later use, use the command <CODE>morpho_list = ml</CODE>
-</P>
-<PRE>
-    &gt; morpho_list -number=25 -cat=V | write_file exx.txt
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc65"></A>
-<H2>The Italian Foods grammar</H2>
-<P>
-<a name="secitalian"></a>
-</P>
-<P>
-Parameters include not only number but also gender.
-</P>
-<PRE>
-  concrete FoodsIta of Foods = open Prelude in {
-  
-    param
-      Number = Sg | Pl ;
-      Gender = Masc | Fem ;
-</PRE>
-<P>
-Qualities are inflected for gender and number, whereas kinds
-have a parametric number and an inherent gender.
-Items have an inherent number and gender.
-</P>
-<PRE>
-    lincat
-      Phr = SS ; 
-      Quality = {s : Gender =&gt; Number =&gt; Str} ; 
-      Kind = {s : Number =&gt; Str ; g : Gender} ; 
-      Item = {s : Str ; g : Gender ; n : Number} ; 
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-A Quality is an adjective, with one form for each gender-number combination.
-</P>
-<PRE>
-    oper
-      adjective : (_,_,_,_ : Str) -&gt; {s : Gender =&gt; Number =&gt; Str} = 
-        \nero,nera,neri,nere -&gt; {
-          s = table {
-            Masc =&gt; table {
-              Sg =&gt; nero ;
-              Pl =&gt; neri
-              } ; 
-            Fem =&gt; table {
-              Sg =&gt; nera ;
-              Pl =&gt; nere
-              }
-            }
-        } ;
-</PRE>
-<P>
-Regular adjectives work by adding endings to the stem.
-</P>
-<PRE>
-      regAdj : Str -&gt; {s : Gender =&gt; Number =&gt; Str} = \nero -&gt;
-        let ner = init nero 
-        in adjective nero (ner + "a") (ner + "i") (ner + "e") ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-For noun inflection, we are happy to give the two forms and the gender 
-explicitly:
-</P>
-<PRE>
-      noun : Str -&gt; Str -&gt; Gender -&gt; {s : Number =&gt; Str ; g : Gender} = 
-        \vino,vini,g -&gt; {
-          s = table {
-            Sg =&gt; vino ;
-            Pl =&gt; vini
-            } ;
-          g = g
-        } ;
-</PRE>
-<P>
-We need only number variation for the copula.
-</P>
-<PRE>
-      copula : Number -&gt; Str = 
-        \n -&gt; case n of {
-          Sg =&gt; "è" ;
-          Pl =&gt; "sono"
-          } ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Determination is more complex than in English, because of gender:
-</P>
-<PRE>
-      det : Number -&gt; Str -&gt; Str -&gt; {s : Number =&gt; Str ; g : Gender} -&gt; 
-          {s : Str ; g : Gender ; n : Number} = 
-        \n,m,f,cn -&gt; {
-          s = case cn.g of {Masc =&gt; m ; Fem =&gt; f} ++ cn.s ! n ;
-          g = cn.g ;
-          n = n
-        } ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-The complete set of linearization rules:
-</P>
-<PRE>
-    lin
-      Is item quality = 
-        ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n) ;
-      This  = det Sg "questo" "questa" ;
-      That  = det Sg "quel"   "quella" ;
-      These = det Pl "questi" "queste" ;
-      Those = det Pl "quei"   "quelle" ;
-      QKind quality kind = {
-        s = \\n =&gt; kind.s ! n ++ quality.s ! kind.g ! n ;
-        g = kind.g
-        } ;
-      Wine = noun "vino" "vini" Masc ;
-      Cheese = noun "formaggio" "formaggi" Masc ;
-      Fish = noun "pesce" "pesci" Masc ;
-      Pizza = noun "pizza" "pizze" Fem ;
-      Very qual = {s = \\g,n =&gt; "molto" ++ qual.s ! g ! n} ;
-      Fresh = adjective "fresco" "fresca" "freschi" "fresche" ;
-      Warm = regAdj "caldo" ;
-      Italian = regAdj "italiano" ;
-      Expensive = regAdj "caro" ;
-      Delicious = regAdj "delizioso" ;
-      Boring = regAdj "noioso" ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc66"></A>
-<H3>Exercises on using parameters</H3>
-<OL>
-<LI>Experiment with multilingual generation and translation in the
-<CODE>Foods</CODE> grammars.
-<P></P>
-<LI>Add items, qualities, and determiners to the grammar, 
-and try to get their inflection and inherent features right.
-<P></P>
-<LI>Write a concrete syntax of <CODE>Food</CODE> for a language of your choice,
-now aiming for complete grammatical correctness by the use of parameters.
-<P></P>
-<LI>Measure the size of the context-free grammar corresponding to
-<CODE>FoodsIta</CODE>. You can do this by printing the grammar in the context-free format
-(<CODE>print_grammar -printer=bnf</CODE>) and counting the lines.
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc67"></A>
-<H2>Discontinuous constituents</H2>
-<P>
-A linearization record may contain more strings than one, and those
-strings can be put apart in linearization.
-</P>
-<P>
-Example: English particle
-verbs, (<I>switch off</I>). The object can appear between:
-</P>
-<P>
-<I>he switched it off</I>
-</P>
-<P>
-The verb <I>switch off</I> is called a
-<B>discontinuous constituents</B>.
-</P>
-<P>
-We can define transitive verbs and their combinations as follows:
-</P>
-<PRE>
-    lincat TV = {s : Number =&gt; Str ; part : Str} ;
-  
-    fun AppTV : Item -&gt; TV -&gt; Item -&gt; Phrase ;
-  
-    lin AppTV subj tv obj = 
-      {s = subj.s ++ tv.s ! subj.n ++ obj.s ++ tv.part} ;
-</PRE>
-<P></P>
-<P>
-<B>Exercise</B>. Define the language <CODE>a^n b^n c^n</CODE> in GF, i.e.
-any number of <I>a</I>'s followed by the same number of <I>b</I>'s and
-the same number of <I>c</I>'s. This language is not context-free,
-but can be defined in GF by using discontinuous constituents.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc68"></A>
-<H2>Strings at compile time vs. run time</H2>
-<P>
-Tokens are created in the following ways:
-</P>
-<UL>
-<LI>quoted string: <CODE>"foo"</CODE>
-<LI>gluing : <CODE>t + s</CODE>
-<LI>predefined operations <CODE>init, tail, tk, dp</CODE>
-<LI>pattern matching over strings
-</UL>
-
-<P>
-Since <I>tokens must be known at compile time</I>,
-the above operations may not be applied to <B>run-time variables</B>
-(i.e. variables that stand for function arguments in linearization rules).
-</P>
-<P>
-Hence it is not legal to write
-</P>
-<PRE>
-    cat Noun ;
-    fun Plural : Noun -&gt; Noun ;
-    lin Plural n = {s = n.s + "s"} ;
-</PRE>
-<P>
-because <CODE>n</CODE> is a run-time variable. Also
-</P>
-<PRE>
-    lin Plural n = {s = (regNoun n).s ! Pl} ; 
-</PRE>
-<P>
-is incorrect with <CODE>regNoun</CODE> as defined <a href="#secinflection">here</a>, because the run-time 
-variable is eventually sent to string pattern matching and gluing.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-How to write tokens together without a space?
-</P>
-<PRE>
-    lin Question p = {s = p + "?"} ;
-</PRE>
-<P>
-is incorrect. 
-</P>
-<P>
-The way to go is to use an <B>unlexer</B> that creates correct spacing
-after linearization. 
-</P>
-<P>
-Correspondingly, a <B>lexer</B> that e.g. analyses <CODE>"warm?"</CODE> into
-to tokens is needed before parsing. 
-This topic will be covered in <a href="#seclexing">here</a>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc69"></A>
-<H3>Supplementary constructs for concrete syntax</H3>
-<H4>Record extension and subtyping</H4>
-<P>
-The symbol <CODE>**</CODE> is used for both record types and record objects.
-</P>
-<PRE>
-    lincat TV = Verb ** {c : Case} ;
-  
-    lin Follow = regVerb "folgen" ** {c = Dative} ; 
-</PRE>
-<P>
-<CODE>TV</CODE> becomes a <B>subtype</B> of <CODE>Verb</CODE>.
-</P>
-<P>
-If <I>T</I> is a subtype of <I>R</I>, an object of <I>T</I> can be used whenever
-an object of <I>R</I> is required. 
-</P>
-<P>
-<B>Covariance</B>: a function returning a record <I>T</I> as value can
-also be used to return a value of a supertype <I>R</I>.
-</P>
-<P>
-<B>Contravariance</B>: a function taking an <I>R</I> as argument
-can also be applied to any object of a subtype <I>T</I>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<H4>Tuples and product types</H4>
-<P>
-Product types and tuples are syntactic sugar for record types and records:
-</P>
-<PRE>
-    T1 * ... * Tn   ===   {p1 : T1 ; ... ; pn : Tn}
-    &lt;t1, ...,  tn&gt;  ===   {p1 = T1 ; ... ; pn = Tn}
-</PRE>
-<P>
-Thus the labels <CODE>p1, p2,...</CODE> are hard-coded.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<H4>Prefix-dependent choices</H4>
-<P>
-English indefinite article:
-</P>
-<PRE>
-    oper artIndef : Str = 
-      pre {"a" ; "an" / strs {"a" ; "e" ; "i" ; "o"}} ;
-</PRE>
-<P>
-Thus
-</P>
-<PRE>
-    artIndef ++ "cheese"  ---&gt;  "a" ++ "cheese"
-    artIndef ++ "apple"   ---&gt;  "an" ++ "apple"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc70"></A>
-<H1>Lesson 4: Using the resource grammar library</H1>
-<P>
-<a name="chapfive"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>navigate in the GF resource grammar library and use it in applications
-<LI>get acquainted with basic linguistic categories
-<LI>write functors to achieve maximal sharing of code in multilingual grammars
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc71"></A>
-<H2>The coverage of the library</H2>
-<P>
-The current 12 resource languages are
-</P>
-<UL>
-<LI><CODE>Bul</CODE>garian
-<LI><CODE>Cat</CODE>alan
-<LI><CODE>Dan</CODE>ish
-<LI><CODE>Eng</CODE>lish
-<LI><CODE>Fin</CODE>nish
-<LI><CODE>Fre</CODE>nch
-<LI><CODE>Ger</CODE>man
-<LI><CODE>Ita</CODE>lian
-<LI><CODE>Nor</CODE>wegian
-<LI><CODE>Rus</CODE>sian
-<LI><CODE>Spa</CODE>nish
-<LI><CODE>Swe</CODE>dish
-</UL>
-
-<P>
-The first three letters (<CODE>Eng</CODE> etc) are used in grammar module names
-(ISO 639 standard).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc72"></A>
-<H2>The structure of the library</H2>
-<P>
-<a name="seclexical"></a>
-</P>
-<P>
-Semantic grammars (up to now in this tutorial):
-a grammar defines a system of meanings (abstract syntax) and
-tells how they are expressed(concrete syntax).
-</P>
-<P>
-Resource grammars (as usual in linguistic tradition):
-a grammar specifies the <B>grammatically correct combinations of words</B>, 
-whatever their meanings are. 
-</P>
-<P>
-With resource grammars, we can achieve a
-wider coverage than with semantic grammars.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc73"></A>
-<H3>Lexical vs. phrasal rules</H3>
-<P>
-A resource grammar has two kinds of categories and two kinds of rules:
-</P>
-<UL>
-<LI>lexical:
-  <UL>
-  <LI>lexical categories, to classify words
-  <LI>lexical rules, to define words and their properties
-  <P></P>
-  </UL>
-<LI>phrasal (combinatorial, syntactic):
-  <UL>
-  <LI>phrasal categories, to classify phrases of arbitrary size
-  <LI>phrasal rules, to combine phrases into larger phrases
-  </UL>
-</UL>
-
-<P>
-GE makes no formal distinction between these two kinds.
-</P>
-<P>
-But it is a good discipline to follow.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc74"></A>
-<H3>Lexical categories</H3>
-<P>
-Two kinds of lexical categories:
-</P>
-<UL>
-<LI><B>closed</B>: 
-  <UL>
-  <LI>a finite number of words
-  <LI>seldom extended in the history of language
-  <LI>structural words / function words, e.g.
-<PRE>
-      Conj ;     -- conjunction           e.g. "and"
-      QuantSg ;  -- singular quantifier   e.g. "this"
-      QuantPl ;  -- plural quantifier     e.g. "this"
-</PRE>
-  <P></P>
-  </UL>
-<LI><B>open</B>:
-  <UL>
-  <LI>new words are added all the time
-  <LI>content words, e.g.
-<PRE>
-      N ;        -- noun         e.g. "pizza"
-      A ;        -- adjective    e.g. "good"
-      V ;        -- verb         e.g. "sleep"
-</PRE>
-  </UL>
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc75"></A>
-<H3>Lexical rules</H3>
-<P>
-Closed classes: module <CODE>Syntax</CODE>. In the <CODE>Foods</CODE> grammar, we need
-</P>
-<PRE>
-    this_QuantSg, that_QuantSg : QuantSg ; 
-    these_QuantPl, those_QuantPl : QuantPl ; 
-    very_AdA  : AdA ;
-</PRE>
-<P>
-Naming convention: word followed by the category (so we can
-distinguish the quantifier <I>that</I> from the conjunction <I>that</I>). 
-</P>
-<P>
-Open classes have no objects in <CODE>Syntax</CODE>. Words are
-built as they are needed in applications: if we have
-</P>
-<PRE>
-    fun Wine : Kind ;
-</PRE>
-<P>
-we will define
-</P>
-<PRE>
-    lin Wine = mkN "wine" ;
-</PRE>
-<P>
-where we use <CODE>mkN</CODE> from <CODE>ParadigmsEng</CODE>:
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc76"></A>
-<H3>Resource lexicon</H3>
-<P>
-Alternative concrete syntax for
-</P>
-<PRE>
-    fun Wine : Kind ;
-</PRE>
-<P>
-is to provide a <B>resource lexicon</B>, which contains definitions such as
-</P>
-<PRE>
-    oper wine_N : N = mkN "wine" ;
-</PRE>
-<P>
-so that we can write
-</P>
-<PRE>
-    lin Wine = wine_N ;
-</PRE>
-<P>
-Advantages:
-</P>
-<UL>
-<LI>we accumulate a reusable lexicon
-<LI>we can use a <a href="#secfunctor">here</a> to speed up multilingual grammar implementation
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc77"></A>
-<H3>Phrasal categories</H3>
-<P>
-In <CODE>Foods</CODE>, we need just four phrasal categories:
-</P>
-<PRE>
-    Cl ;   -- clause             e.g. "this pizza is good"
-    NP ;   -- noun phrase        e.g. "this pizza"
-    CN ;   -- common noun        e.g. "warm pizza"
-    AP ;   -- adjectival phrase  e.g. "very warm"
-</PRE>
-<P>
-Clauses are similar to sentences (<CODE>S</CODE>), but without a
-fixed tense and mood; see <a href="#secextended">here</a> for how they relate.
-</P>
-<P>
-Common nouns are made into noun phrases by adding determiners.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc78"></A>
-<H3>Syntactic combinations</H3>
-<P>
-We need the following combinations:
-</P>
-<PRE>
-    mkCl : NP -&gt; AP -&gt; Cl ;      -- e.g. "this pizza is very warm"
-    mkNP : QuantSg -&gt; CN -&gt; NP ; -- e.g. "this pizza" 
-    mkNP : QuantPl -&gt; CN -&gt; NP ; -- e.g. "these pizzas"
-    mkCN : AP -&gt; CN -&gt; CN ;      -- e.g. "warm pizza"
-    mkAP : AdA -&gt; AP -&gt; AP ;     -- e.g. "very warm" 
-</PRE>
-<P>
-We also need <B>lexical insertion</B>, to form phrases from single words:
-</P>
-<PRE>
-    mkCN : N -&gt; NP ;
-    mkAP : A -&gt; AP ;
-</PRE>
-<P>
-Naming convention: to construct a <I>C</I>, use a function <CODE>mk</CODE><I>C</I>.
-</P>
-<P>
-Heavy overloading: the current library
-(version 1.2) has 23 operations named <CODE>mkNP</CODE>!
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc79"></A>
-<H3>Example syntactic combination</H3>
-<P>
-The sentence
-<center>
-<I>these very warm pizzas are Italian</I>
-</center>
-can be built as follows:
-</P>
-<PRE>
-    mkCl 
-      (mkNP these_QuantPl 
-         (mkCN (mkAP very_AdA (mkAP warm_A)) (mkCN pizza_CN)))
-      (mkAP italian_AP) 
-</PRE>
-<P>
-The task now: to define the concrete syntax of <CODE>Foods</CODE> so that
-this syntactic tree gives the value of linearizing the semantic tree
-</P>
-<PRE>
-    Is (These (QKind (Very Warm) Pizza)) Italian
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc80"></A>
-<H2>The resource API</H2>
-<P>
-Language-specific and language-independent parts - roughly,
-</P>
-<UL>
-<LI>the syntax API <CODE>Syntax</CODE><I>L</I> has the same types and 
-  functions for all languages <I>L</I>
-<LI>the morphology API <CODE>Paradigms</CODE><I>L</I> has partly 
-  different types and functions
-  for different languages <I>L</I>
-</UL>
-
-<P>
-Full API documentation on-line: the <B>resource synopsis</B>,
-</P>
-<P>
-<A HREF="http://digitalgrammars.com/gf/lib/resource/doc/synopsis.html"><CODE>digitalgrammars.com/gf/lib/resource/doc/synopsis.html</CODE></A>
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc81"></A>
-<H3>A miniature resource API: categories</H3>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Category</TH>
-<TH>Explanation</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>Cl</CODE></TD>
-<TD>clause (sentence), with all tenses</TD>
-<TD><I>she looks at this</I></TD>
-</TR>
-<TR>
-<TD><CODE>AP</CODE></TD>
-<TD>adjectival phrase</TD>
-<TD><I>very warm</I></TD>
-</TR>
-<TR>
-<TD><CODE>CN</CODE></TD>
-<TD>common noun (without determiner)</TD>
-<TD><I>red house</I></TD>
-</TR>
-<TR>
-<TD><CODE>NP</CODE></TD>
-<TD>noun phrase (subject or object)</TD>
-<TD><I>the red house</I></TD>
-</TR>
-<TR>
-<TD><CODE>AdA</CODE></TD>
-<TD>adjective-modifying adverb,</TD>
-<TD><I>very</I></TD>
-</TR>
-<TR>
-<TD><CODE>QuantSg</CODE></TD>
-<TD>singular quantifier</TD>
-<TD><I>these</I></TD>
-</TR>
-<TR>
-<TD><CODE>QuantPl</CODE></TD>
-<TD>plural quantifier</TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>A</CODE></TD>
-<TD>one-place adjective</TD>
-<TD><I>warm</I></TD>
-</TR>
-<TR>
-<TD><CODE>N</CODE></TD>
-<TD>common noun</TD>
-<TD><I>house</I></TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc82"></A>
-<H3>A miniature resource API: rules</H3>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><CODE>NP -&gt; AP -&gt; Cl</CODE></TD>
-<TD><I>John is very old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><CODE>QuantSg -&gt; CN -&gt; NP</CODE></TD>
-<TD><I>this old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><CODE>QuantPl -&gt; CN -&gt; NP</CODE></TD>
-<TD><I>these old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><CODE>N -&gt; CN</CODE></TD>
-<TD><I>house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><CODE>AP -&gt; CN -&gt; CN</CODE></TD>
-<TD><I>very big blue house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><CODE>A -&gt; AP</CODE></TD>
-<TD><I>old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><CODE>AdA -&gt; AP -&gt; AP</CODE></TD>
-<TD><I>very very old</I></TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc83"></A>
-<H3>A miniature resource API: structural words</H3>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">In English</TH>
-</TR>
-<TR>
-<TD><CODE>this_QuantSg</CODE></TD>
-<TD><CODE>QuantSg</CODE></TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>that_QuantSg</CODE></TD>
-<TD><CODE>QuantSg</CODE></TD>
-<TD><I>that</I></TD>
-</TR>
-<TR>
-<TD><CODE>these_QuantPl</CODE></TD>
-<TD><CODE>QuantPl</CODE></TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>those_QuantPl</CODE></TD>
-<TD><CODE>QuantPl</CODE></TD>
-<TD><I>that</I></TD>
-</TR>
-<TR>
-<TD><CODE>very_AdA</CODE></TD>
-<TD><CODE>AdA</CODE></TD>
-<TD><I>very</I></TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc84"></A>
-<H3>A miniature resource API: paradigms</H3>
-<P>
-From <CODE>ParadigmsEng</CODE>:
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(dog : Str) -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(man,men : Str) -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(cold : Str) -&gt; A</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-From <CODE>ParadigmsIta</CODE>:
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(vino : Str) -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(caro : Str) -&gt; A</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc85"></A>
-<H3>A miniature resource API: more paradigms</H3>
-<P>
-From <CODE>ParadigmsGer</CODE>:
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><CODE>Type</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><CODE>Gender</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><CODE>Gender</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>neuter</CODE></TD>
-<TD><CODE>Gender</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(Stufe : Str) -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(Bild,Bilder : Str) -&gt; Gender -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(klein : Str) -&gt; A</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(gut,besser,beste : Str) -&gt; A</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-From <CODE>ParadigmsFin</CODE>:
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(talo : Str) -&gt; N</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(hieno : Str) -&gt; A</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc86"></A>
-<H3>Exercises</H3>
-<P>
-1. Try out the morphological paradigms in different languages. Do 
-as follows:
-</P>
-<PRE>
-    &gt; i -path=alltenses -retain alltenses/ParadigmsGer.gfo
-    &gt; cc -table mkN "Farbe"
-    &gt; cc -table mkA "gut" "besser" "beste"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc87"></A>
-<H2>Example: English</H2>
-<P>
-<a name="secenglish"></a>
-</P>
-<P>
-We assume the abstract syntax <CODE>Foods</CODE> from <a href="#chaptwo">Lesson 3</a>.
-</P>
-<P>
-We don't need to think about inflection and agreement, but just pick
-functions from the resource grammar library.
-</P>
-<P>
-We need a path with
-</P>
-<UL>
-<LI>the current directory <CODE>.</CODE> 
-<LI>the directory <CODE>../foods</CODE>, in which <CODE>Foods.gf</CODE> resides.
-<LI>the library directory <CODE>present</CODE>, which is relative to the 
-  environment variable <CODE>GF_LIB_PATH</CODE>
-</UL>
-
-<P>
-Thus the beginning of the module is
-</P>
-<PRE>
-    --# -path=.:../foods:present
-  
-    concrete FoodsEng of Foods = open SyntaxEng,ParadigmsEng in {
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc88"></A>
-<H3>English example: linearization types and combination rules</H3>
-<P>
-As linearization types, we use clauses for <CODE>Phrase</CODE>, noun phrases
-for <CODE>Item</CODE>, common nouns for <CODE>Kind</CODE>, and adjectival phrases for <CODE>Quality</CODE>.
-</P>
-<PRE>
-    lincat
-      Phrase = Cl ; 
-      Item = NP ;
-      Kind = CN ;
-      Quality = AP ;
-</PRE>
-<P>
-Now the combination rules we need almost write themselves automatically:
-</P>
-<PRE>
-    lin
-      Is item quality = mkCl item quality ;
-      This kind = mkNP this_QuantSg kind ;
-      That kind = mkNP that_QuantSg kind ;
-      These kind = mkNP these_QuantPl kind ;
-      Those kind = mkNP those_QuantPl kind ;
-      QKind quality kind = mkCN quality kind ;
-      Very quality = mkAP very_AdA quality ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc89"></A>
-<H3>English example: lexical rules</H3>
-<P>
-We use resource paradigms and lexical insertion rules.
-</P>
-<P>
-The two-place noun paradigm is needed only once, for
-<I>fish</I> - everythins else is regular.
-</P>
-<PRE>
-      Wine = mkCN (mkN "wine") ;
-      Pizza = mkCN (mkN "pizza") ;
-      Cheese = mkCN (mkN "cheese") ;
-      Fish = mkCN (mkN "fish" "fish") ;
-      Fresh = mkAP (mkA "fresh") ;
-      Warm = mkAP (mkA "warm") ;
-      Italian = mkAP (mkA "Italian") ;
-      Expensive = mkAP (mkA "expensive") ;
-      Delicious = mkAP (mkA "delicious") ;
-      Boring = mkAP (mkA "boring") ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc90"></A>
-<H3>English example: exercises</H3>
-<P>
-1. Compile the grammar <CODE>FoodsEng</CODE> and generate 
-and parse some sentences.
-</P>
-<P>
-2. Write a concrete syntax of <CODE>Foods</CODE> for Italian 
-or some other language included in the resource library. You can 
-compare the results with the hand-written
-grammars presented earlier in this tutorial.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc91"></A>
-<H2>Functor implementation of multilingual grammars</H2>
-<P>
-<a name="secfunctor"></a>
-</P>
-<A NAME="toc92"></A>
-<H3>New language by copy and paste</H3>
-<P>
-If you write  a concrete syntax of <CODE>Foods</CODE> for some other
-language, much of the code will look exactly the same
-as for English. This is because 
-</P>
-<UL>
-<LI>the <CODE>Syntax</CODE> API is the same for all languages (because
-  all languages in the resource package do implement the same 
-  syntactic structures) 
-<LI>languages tend to use the syntactic structures in similar ways
-</UL>
-
-<P>
-But lexical rules are more language-dependent.
-</P>
-<P>
-Thus, to port a grammar to a new language, you
-</P>
-<OL>
-<LI>copy the concrete syntax of a given language
-<LI>change the words (strings and inflection paradigms)
-</OL>
-
-<P>
-Can we avoid this programming by copy-and-paste?
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc93"></A>
-<H3>Functors: functions on the module level</H3>
-<P>
-<B>Functors</B> familiar from the functional programming languages ML and OCaml, 
-also known as <B>parametrized modules</B>.
-</P>
-<P>
-In GF, a functor is a module that <CODE>open</CODE>s one or more <B>interfaces</B>.
-</P>
-<P>
-An <CODE>interface</CODE> is a module similar to a <CODE>resource</CODE>, but it only
-contains the <I>types</I> of <CODE>oper</CODE>s, not (necessarily) their definitions. 
-</P>
-<P>
-Syntax for functors: add the keyword <CODE>incomplete</CODE>. We will use the header
-</P>
-<PRE>
-    incomplete concrete FoodsI of Foods = open Syntax, LexFoods in
-</PRE>
-<P>
-where
-</P>
-<PRE>
-    interface Syntax    -- the resource grammar interface
-    interface LexFoods  -- the domain lexicon interface
-</PRE>
-<P>
-When we moreover have
-</P>
-<PRE>
-    instance SyntaxEng of Syntax     -- the English resource grammar
-    instance LexFoodsEng of LexFoods -- the English domain lexicon
-</PRE>
-<P>
-we can write a <B>functor instantiation</B>,
-</P>
-<PRE>
-    concrete FoodsGer of Foods = FoodsI with 
-      (Syntax = SyntaxGer),
-      (LexFoods = LexFoodsGer) ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc94"></A>
-<H3>Code for the Foods functor</H3>
-<PRE>
-    --# -path=.:../foods
-  
-    incomplete concrete FoodsI of Foods = open Syntax, LexFoods in {
-    lincat
-      Phrase = Cl ; 
-      Item = NP ;
-      Kind = CN ;
-      Quality = AP ;
-    lin
-      Is item quality = mkCl item quality ;
-      This kind = mkNP this_QuantSg kind ;
-      That kind = mkNP that_QuantSg kind ;
-      These kind = mkNP these_QuantPl kind ;
-      Those kind = mkNP those_QuantPl kind ;
-      QKind quality kind = mkCN quality kind ;
-      Very quality = mkAP very_AdA quality ;
-  
-      Wine = mkCN wine_N ;
-      Pizza = mkCN pizza_N ;
-      Cheese = mkCN cheese_N ;
-      Fish = mkCN fish_N ;
-      Fresh = mkAP fresh_A ;
-      Warm = mkAP warm_A ;
-      Italian = mkAP italian_A ;
-      Expensive = mkAP expensive_A ;
-      Delicious = mkAP delicious_A ;
-      Boring = mkAP boring_A ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc95"></A>
-<H3>Code for the LexFoods interface</H3>
-<P>
-<a name="secinterface"></a>
-</P>
-<PRE>
-    interface LexFoods = open Syntax in {
-    oper
-      wine_N : N ;
-      pizza_N : N ;
-      cheese_N : N ;
-      fish_N : N ;
-      fresh_A : A ;
-      warm_A : A ;
-      italian_A : A ;
-      expensive_A : A ;
-      delicious_A : A ;
-      boring_A : A ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc96"></A>
-<H3>Code for a German instance of the lexicon</H3>
-<PRE>
-    instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in {
-    oper
-      wine_N = mkN "Wein" ;
-      pizza_N = mkN "Pizza" "Pizzen" feminine ;
-      cheese_N = mkN "Käse" "Käsen" masculine ;
-      fish_N = mkN "Fisch" ;
-      fresh_A = mkA "frisch" ;
-      warm_A = mkA "warm" "wärmer" "wärmste" ;
-      italian_A = mkA "italienisch" ;
-      expensive_A = mkA "teuer" ;
-      delicious_A = mkA "köstlich" ;
-      boring_A = mkA "langweilig" ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc97"></A>
-<H3>Code for a German functor instantiation</H3>
-<PRE>
-    --# -path=.:../foods:present
-  
-    concrete FoodsGer of Foods = FoodsI with 
-      (Syntax = SyntaxGer),
-      (LexFoods = LexFoodsGer) ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc98"></A>
-<H3>Adding languages to a functor implementation</H3>
-<P>
-Just two modules are needed:
-</P>
-<UL>
-<LI>a domain lexicon instance
-<LI>a functor instantiation
-</UL>
-
-<P>
-The functor instantiation is completely mechanical to write.
-</P>
-<P>
-The domain lexicon instance requires some knowledge of the words of the
-language: 
-</P>
-<UL>
-<LI>what words are used for which concepts
-<LI>how the words are
-<LI>features such as genders
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc99"></A>
-<H3>Example: adding Finnish</H3>
-<P>
-Lexicon instance
-</P>
-<PRE>
-    instance LexFoodsFin of LexFoods = open SyntaxFin, ParadigmsFin in {
-    oper
-      wine_N = mkN "viini" ;
-      pizza_N = mkN "pizza" ;
-      cheese_N = mkN "juusto" ;
-      fish_N = mkN "kala" ;
-      fresh_A = mkA "tuore" ;
-      warm_A = mkA "lämmin" ;
-      italian_A = mkA "italialainen" ;
-      expensive_A = mkA "kallis" ;
-      delicious_A = mkA "herkullinen" ;
-      boring_A = mkA "tylsä" ;
-    }
-</PRE>
-<P>
-Functor instantiation
-</P>
-<PRE>
-    --# -path=.:../foods:present
-  
-    concrete FoodsFin of Foods = FoodsI with 
-      (Syntax = SyntaxFin),
-      (LexFoods = LexFoodsFin) ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc100"></A>
-<H3>A design pattern</H3>
-<P>
-This can be seen as a <I>design pattern</I> for multilingual grammars:
-</P>
-<PRE>
-                        concrete DomainL*
-  
-      instance LexDomainL                 instance SyntaxL*
-     
-                   incomplete concrete DomainI
-                   /           |              \               
-     interface LexDomain   abstract Domain    interface Syntax*
-</PRE>
-<P>
-Modules marked with <CODE>*</CODE> are either given in the library, or trivial.
-</P>
-<P>
-Of the hand-written modules, only <CODE>LexDomainL</CODE> is language-dependent.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc101"></A>
-<H3>Functors: exercises</H3>
-<P>
-1. Compile and test <CODE>FoodsGer</CODE>.
-</P>
-<P>
-2. Refactor <CODE>FoodsEng</CODE> into a functor instantiation.
-</P>
-<P>
-3. Instantiate the functor <CODE>FoodsI</CODE> to some language of
-your choice.
-</P>
-<P>
-4. Design a small grammar that can be used for controlling
-an MP3 player. The grammar should be able to recognize commands such
-as <I>play this song</I>, with the following variations:
-</P>
-<UL>
-<LI>verbs: <I>play</I>, <I>remove</I>
-<LI>objects: <I>song</I>, <I>artist</I>
-<LI>determiners: <I>this</I>, <I>the previous</I>
-<LI>verbs without arguments: <I>stop</I>, <I>pause</I>
-</UL>
-
-<P>
-The implementation goes in the following phases:
-</P>
-<OL>
-<LI>abstract syntax
-<LI>(optional:) prototype string-based concrete syntax
-<LI>functor over resource syntax and lexicon interface
-<LI>lexicon instance for the first language
-<LI>functor instantiation for the first language
-<LI>lexicon instance for the second language
-<LI>functor instantiation for the second language
-<LI>...
-</OL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc102"></A>
-<H2>Restricted inheritance</H2>
-<A NAME="toc103"></A>
-<H3>A problem with functors</H3>
-<P>
-Problem: a functor only works when all languages use the resource <CODE>Syntax</CODE> 
-in the same way.
-</P>
-<P>
-Example (contrived): assume that English has
-no word for <CODE>Pizza</CODE>, but has to use the paraphrase <I>Italian pie</I>.
-This is no longer a noun <CODE>N</CODE>, but a complex phrase
-in the category <CODE>CN</CODE>. 
-</P>
-<P>
-Possible solution: change interface the <CODE>LexFoods</CODE> with
-</P>
-<PRE>
-    oper pizza_CN : CN ;
-</PRE>
-<P>
-Problem with this solution: 
-</P>
-<UL>
-<LI>we may end up changing the interface and the function with each new language
-<LI>we must every time also change the instances for the old languages to maintain
-  type correctness
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc104"></A>
-<H3>Restricted inheritance: include or exclude</H3>
-<P>
-A module may inherit just a selection of names.
-</P>
-<P>
-Example: the <CODE>FoodMarket</CODE> example "Rsecarchitecture:
-</P>
-<PRE>
-    abstract Foodmarket = Food, Fruit [Peach], Mushroom - [Agaric]
-</PRE>
-<P>
-Here, from <CODE>Fruit</CODE> we include <CODE>Peach</CODE> only, and from <CODE>Mushroom</CODE>
-we exclude <CODE>Agaric</CODE>.
-</P>
-<P>
-A concrete syntax of <CODE>Foodmarket</CODE> must make the analogous restrictions.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc105"></A>
-<H3>The functor problem solved</H3>
-<P>
-The English instantiation inherits the functor 
-implementation except for the constant <CODE>Pizza</CODE>. This constant
-is defined in the body instead:
-</P>
-<PRE>
-    --# -path=.:../foods:present
-  
-    concrete FoodsEng of Foods = FoodsI - [Pizza] with 
-      (Syntax = SyntaxEng),
-      (LexFoods = LexFoodsEng) ** 
-        open SyntaxEng, ParadigmsEng in {
-  
-      lin Pizza = mkCN (mkA "Italian") (mkN "pie") ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc106"></A>
-<H2>Grammar reuse</H2>
-<P>
-Abstract syntax modules can be used as interfaces, 
-and concrete syntaxes as their instances.
-</P>
-<P>
-The following correspondencies are then applied:
-</P>
-<PRE>
-    cat C         &lt;---&gt;  oper C : Type
-  
-    fun f : A     &lt;---&gt;  oper f : A
-  
-    lincat C = T  &lt;---&gt;  oper C : Type = T
-  
-    lin f = t     &lt;---&gt;  oper f : A = t
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc107"></A>
-<H3>Library exercises</H3>
-<P>
-1. Find resource grammar terms for the following
-English phrases (in the category <CODE>Phr</CODE>). You can first try to
-build the terms manually.
-</P>
-<P>
-<I>every man loves a woman</I>
-</P>
-<P>
-<I>this grammar speaks more than ten languages</I>
-</P>
-<P>
-<I>which languages aren't in the grammar</I>
-</P>
-<P>
-<I>which languages did you want to speak</I>
-</P>
-<P>
-Then translate the phrases to other languages.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc108"></A>
-<H2>Tenses</H2>
-<P>
-<a name="sectense"></a>
-</P>
-<P>
-In <CODE>Foods</CODE> grammars, we have used the path
-</P>
-<PRE>
-    --# -path=.:../foods
-</PRE>
-<P>
-The library subdirectory <CODE>present</CODE> is a restricted version
-of the resource, with only present tense of verbs and sentences.
-</P>
-<P>
-By just changing the path, we get all tenses:
-</P>
-<PRE>
-    --# -path=.:../foods:alltenses
-</PRE>
-<P>
-Now we can see all the tenses of phrases, by using the <CODE>-all</CODE> flag 
-in linearization:
-</P>
-<PRE>
-    &gt; gr | l -all
-    This wine is delicious
-    Is this wine delicious
-    This wine isn't delicious
-    Isn't this wine delicious
-    This wine is not delicious
-    Is this wine not delicious
-    This wine has been delicious
-    Has this wine been delicious
-    This wine hasn't been delicious
-    Hasn't this wine been delicious
-    This wine has not been delicious
-    Has this wine not been delicious
-    This wine was delicious
-    Was this wine delicious
-    This wine wasn't delicious
-    Wasn't this wine delicious
-    This wine was not delicious
-    Was this wine not delicious
-    This wine had been delicious
-    Had this wine been delicious
-    This wine hadn't been delicious
-    Hadn't this wine been delicious
-    This wine had not been delicious
-    Had this wine not been delicious
-    This wine will be delicious
-    Will this wine be delicious
-    This wine won't be delicious
-    Won't this wine be delicious
-    This wine will not be delicious
-    Will this wine not be delicious
-    This wine will have been delicious
-    Will this wine have been delicious
-    This wine won't have been delicious
-    Won't this wine have been delicious
-    This wine will not have been delicious
-    Will this wine not have been delicious
-    This wine would be delicious
-    Would this wine be delicious
-    This wine wouldn't be delicious
-    Wouldn't this wine be delicious
-    This wine would not be delicious
-    Would this wine not be delicious
-    This wine would have been delicious
-    Would this wine have been delicious
-    This wine wouldn't have been delicious
-    Wouldn't this wine have been delicious
-    This wine would not have been delicious
-    Would this wine not have been delicious
-</PRE>
-<P>
-We also see 
-</P>
-<UL>
-<LI>polarity (positive vs. negative)
-<LI>word order (direct vs. inverted)
-<LI>variation between contracted and full negation
-</UL>
-
-<P>
-The list is even longer in languages that have more
-tenses and moods, e.g. the Romance languages.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc109"></A>
-<H1>Lesson 5: Refining semantics in abstract syntax</H1>
-<P>
-<a name="chapsix"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>include semantic conditions in grammars, by using
-  <UL>
-  <LI><B>dependent types</B> 
-  <LI><B>higher order abstract syntax</B> 
-  <LI>proof objects  
-  <LI>semantic definitions
-  <P></P>
-These concepts are inherited from <B>type theory</B> (more precisely:
-constructive type theory, or Martin-Löf type theory).
-  <P></P>
-Type theory is the basis <B>logical frameworks</B>.
-  <P></P>
-GF = logical framework + concrete syntax.
-  </UL>
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc110"></A>
-<H2>Dependent types</H2>
-<P>
-<a name="secsmarthouse"></a>
-</P>
-<P>
-Problem: to express <B>conditions of semantic well-formedness</B>.
-</P>
-<P>
-Example: a voice command system for a "smart house" wants to
-eliminate meaningless commands.
-</P>
-<P>
-Thus we want to restrict particular actions to
-particular devices - we can <I>dim a light</I>, but we cannot
-<I>dim a fan</I>.
-</P>
-<P>
-The following example is borrowed from the 
-Regulus Book (Rayner &amp; al. 2006).
-</P>
-<P>
-A simple example is a "smart house" system, which
-defines voice commands for household appliances.   
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc111"></A>
-<H3>A dependent type system</H3>
-<P>
-Ontology: 
-</P>
-<UL>
-<LI>there are commands and device kinds
-<LI>for each kind of device, there are devices and actions
-<LI>a command concerns an action of some kind on a device of the same kind
-</UL>
-
-<P>
-Abstract syntax formalizing this:
-</P>
-<PRE>
-    cat
-      Command ;
-      Kind ; 
-      Device Kind ; -- argument type Kind 
-      Action Kind ; 
-    fun 
-      CAction : (k : Kind) -&gt; Action k -&gt; Device k -&gt; Command ;
-</PRE>
-<P>
-<CODE>Device</CODE> and <CODE>Action</CODE> are both dependent types.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc112"></A>
-<H3>Examples of devices and actions</H3>
-<P>
-Assume the kinds <CODE>light</CODE> and <CODE>fan</CODE>,
-</P>
-<PRE>
-    light, fan : Kind ;
-    dim : Action light ;
-</PRE>
-<P>
-Given a kind, <I>k</I>, you can form the device <I>the k</I>.
-</P>
-<PRE>
-    DKindOne  : (k : Kind) -&gt; Device k ;  -- the light
-</PRE>
-<P>
-Now we can form the syntax tree
-</P>
-<PRE>
-    CAction light dim (DKindOne light)
-</PRE>
-<P>
-but we cannot form the trees
-</P>
-<PRE>
-    CAction light dim (DKindOne fan)
-    CAction fan   dim (DKindOne light)
-    CAction fan   dim (DKindOne fan)
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc113"></A>
-<H3>Linearization and parsing with dependent types</H3>
-<P>
-Concrete syntax does not know if a category is a dependent type. 
-</P>
-<PRE>
-    lincat Action = {s : Str} ;
-    lin CAction _ act dev = {s = act.s ++ dev.s} ; 
-</PRE>
-<P>
-Notice that the <CODE>Kind</CODE> argument is suppressed in linearization.
-</P>
-<P>
-Parsing with dependent types is performed in two phases:
-</P>
-<OL>
-<LI>context-free parsing
-<LI>filtering through type checker
-</OL>
-
-<P>
-By just doing the first phase, the <CODE>kind</CODE> argument is not found:
-</P>
-<PRE>
-    &gt; parse "dim the light"
-    CAction ? dim (DKindOne light)
-</PRE>
-<P>
-Moreover, type-incorrect commands are not rejected:
-</P>
-<PRE>
-    &gt; parse "dim the fan"
-    CAction ? dim (DKindOne fan)
-</PRE>
-<P>
-The term <CODE>?</CODE> is a <B>metavariable</B>, returned by the parser
-for any subtree that is suppressed by a linearization rule.
-These are the same kind of metavariables as were used <a href="#secediting">here</a>
-to mark incomplete parts of trees in the syntax editor.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc114"></A>
-<H3>Solving metavariables</H3>
-<P>
-Use the command <CODE>put_tree = pt</CODE> with the option <CODE>-typecheck</CODE>:
-</P>
-<PRE>
-    &gt; parse "dim the light" | put_tree -typecheck
-    CAction light dim (DKindOne light)
-</PRE>
-<P>
-The <CODE>typecheck</CODE> process may fail, in which case an error message
-is shown and no tree is returned:
-</P>
-<PRE>
-    &gt; parse "dim the fan" | put_tree -typecheck
-  
-    Error in tree UCommand (CAction ? 0 dim (DKindOne fan)) :
-      (? 0 &lt;&gt; fan) (? 0 &lt;&gt; light)
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc115"></A>
-<H2>Polymorphism</H2>
-<P>
-<a name="secpolymorphic"></a>
-</P>
-<P>
-Sometimes an action can be performed on all kinds of devices. 
-</P>
-<P>
-This is represented as a function that takes a <CODE>Kind</CODE> as an argument 
-and produce an <CODE>Action</CODE> for that <CODE>Kind</CODE>:
-</P>
-<PRE>
-    fun switchOn, switchOff : (k : Kind) -&gt; Action k ;
-</PRE>
-<P>
-Functions of this kind are called <B>polymorphic</B>. 
-</P>
-<P>
-We can use this kind of polymorphism in concrete syntax as well,
-to express Haskell-type library functions:
-</P>
-<PRE>
-    oper const :(a,b : Type) -&gt; a -&gt; b -&gt; a =
-      \_,_,c,_ -&gt; c ;
-  
-    oper flip : (a,b,c : Type) -&gt; (a -&gt; b -&gt;c) -&gt; b -&gt; a -&gt; c =
-      \_,_,_,f,x,y -&gt; f y x ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc116"></A>
-<H3>Dependent types: exercises</H3>
-<P>
-1. Write an abstract syntax module with above contents
-and an appropriate English concrete syntax. Try to parse the commands
-<I>dim the light</I> and <I>dim the fan</I>, with and without <CODE>solve</CODE> filtering.
-</P>
-<P>
-2. Perform random and exhaustive generation, with and without
-<CODE>solve</CODE> filtering.
-</P>
-<P>
-3. Add some device kinds and actions to the grammar.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc117"></A>
-<H2>Proof objects</H2>
-<P>
-<B>Curry-Howard isomorphism</B> = <B>propositions as types principle</B>:
-a proposition is a type of proofs (= proof objects).
-</P>
-<P>
-Example: define the <I>less than</I> proposition for natural numbers,
-</P>
-<PRE>
-    cat Nat ; 
-    fun Zero : Nat ;
-    fun Succ : Nat -&gt; Nat ;
-</PRE>
-<P>
-Define inductively what it means for a number <I>x</I> to be <I>less than</I>
-a number <I>y</I>:
-</P>
-<UL>
-<LI><CODE>Zero</CODE> is less than <CODE>Succ</CODE> <I>y</I> for any <I>y</I>.
-<LI>If <I>x</I> is less than <I>y</I>, then <CODE>Succ</CODE> <I>x</I> is less than <CODE>Succ</CODE> <I>y</I>.
-</UL>
-
-<P>
-Expressing these axioms in type theory
-with a dependent type <CODE>Less</CODE> <I>x y</I> and two functions constructing
-its objects:
-</P>
-<PRE>
-    cat Less Nat Nat ; 
-    fun lessZ : (y : Nat) -&gt; Less Zero (Succ y) ;
-    fun lessS : (x,y : Nat) -&gt; Less x y -&gt; Less (Succ x) (Succ y) ;
-</PRE>
-<P>
-Example: the fact that 2 is less that 4 has the proof object
-</P>
-<PRE>
-    lessS (Succ Zero) (Succ (Succ (Succ Zero)))
-          (lessS Zero (Succ (Succ Zero)) (lessZ (Succ Zero)))
-     : Less (Succ (Succ Zero)) (Succ (Succ (Succ (Succ Zero))))
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc118"></A>
-<H3>Proof-carrying documents</H3>
-<P>
-Idea: to be semantically well-formed, the abstract syntax of a document 
-must contain a proof of some property, 
-although the proof is not shown in the concrete document.
-</P>
-<P>
-Example: documents describing flight connections:
-</P>
-<P>
-<I>To fly from Gothenburg to Prague, first take LH3043 to Frankfurt, then OK0537 to Prague.</I>
-</P>
-<P>
-The well-formedness of this text is partly expressible by dependent typing: 
-</P>
-<PRE>
-    cat
-      City ;
-      Flight City City ;
-    fun
-      Gothenburg, Frankfurt, Prague : City ;
-      LH3043 : Flight Gothenburg Frankfurt ;
-      OK0537 : Flight Frankfurt Prague ;
-</PRE>
-<P>
-To extend the conditions to flight connections, we introduce a category
-of proofs that a change is possible:
-</P>
-<PRE>
-    cat IsPossible (x,y,z : City)(Flight x y)(Flight y z) ;
-</PRE>
-<P>
-A legal connection is formed by the function
-</P>
-<PRE>
-    fun Connect : (x,y,z : City) -&gt; 
-      (u : Flight x y) -&gt; (v : Flight y z) -&gt; 
-        IsPossible x y z u v -&gt; Flight x z ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc119"></A>
-<H2>Restricted polymorphism</H2>
-<P>
-Above, all Actions were either of
-</P>
-<UL>
-<LI><B>monomorphic</B>: defined for one Kind
-<LI><B>polymorphic</B>: defined for all Kinds
-</UL>
-
-<P>
-To make this scale up for new Kinds, we can refine this to 
-<B>restricted polymorphism</B>: defined for Kinds of a certain <B>class</B>
-</P>
-<P>
-The notion of class uses the Curry-Howard isomorphism as follows:
-</P>
-<UL>
-<LI>a class is a <B>predicate</B> of Kinds --- i.e. a type depending of Kinds
-<LI>a Kind is in a class if there is a proof object of this type
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc120"></A>
-<H3>Example: classes for switching and dimming</H3>
-<P>
-We modify the smart house grammar:
-</P>
-<PRE>
-  cat
-    Switchable Kind ;
-    Dimmable   Kind ;
-  fun
-    switchable_light : Switchable light ;
-    switchable_fan   : Switchable fan ;
-    dimmable_light   : Dimmable light ;
-  
-    switchOn : (k : Kind) -&gt; Switchable k -&gt; Action k ;
-    dim      : (k : Kind) -&gt; Dimmable k -&gt; Action k ;
-</PRE>
-<P>
-Classes for new actions can be added incrementally. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc121"></A>
-<H2>Variable bindings</H2>
-<P>
-<a name="secbinding"></a>
-</P>
-<P>
-Mathematical notation and programming languages have
-expressions that <B>bind</B> variables. 
-</P>
-<P>
-Example: universal quantifier formula
-</P>
-<PRE>
-    (All x)B(x)
-</PRE>
-<P>
-The variable <CODE>x</CODE> has a <B>binding</B> <CODE>(All x)</CODE>, and
-occurs <B>bound</B> in the <B>body</B> <CODE>B(x)</CODE>.
-</P>
-<P>
-Examples from informal mathematical language:
-</P>
-<PRE>
-    for all x, x is equal to x
-  
-    the function that for any numbers x and y returns the maximum of x+y
-    and x*y
-  
-    Let x be a natural number. Assume that x is even. Then x + 3 is odd.
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc122"></A>
-<H3>Higher-order abstract syntax</H3>
-<P>
-Abstract syntax can use functions as arguments:
-</P>
-<PRE>
-    cat Ind ; Prop ;
-    fun All : (Ind -&gt; Prop) -&gt; Prop
-</PRE>
-<P>
-where <CODE>Ind</CODE> is the type of individuals and <CODE>Prop</CODE>,
-the type of propositions. 
-</P>
-<P>
-Let us add an equality predicate
-</P>
-<PRE>
-    fun Eq : Ind -&gt; Ind -&gt; Prop
-</PRE>
-<P>
-Now we can form the tree
-</P>
-<PRE>
-    All (\x -&gt; Eq x x)
-</PRE>
-<P>
-which we want to relate to the ordinary notation
-</P>
-<PRE>
-    (All x)(x = x)
-</PRE>
-<P>
-In <B>higher-order abstract syntax</B> (HOAS), all variable bindings are
-expressed using higher-order syntactic constructors.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc123"></A>
-<H3>Higher-order abstract syntax: linearization</H3>
-<P>
-HOAS has proved to be useful in the semantics and computer implementation of
-variable-binding expressions. 
-</P>
-<P>
-How do we relate HOAS to the concrete syntax?
-</P>
-<P>
-In GF, we write
-</P>
-<PRE>
-    fun All : (Ind -&gt; Prop) -&gt; Prop
-    lin All B = {s = "(" ++ "All" ++ B.$0 ++ ")" ++ B.s}
-</PRE>
-<P>
-General rule: if an argument type of a <CODE>fun</CODE> function is
-a function type <CODE>A -&gt; C</CODE>, the linearization type of
-this argument is the linearization type of <CODE>C</CODE>
-together with a new field <CODE>$0 : Str</CODE>. 
-</P>
-<P>
-The argument <CODE>B</CODE> thus has the linearization type
-</P>
-<PRE>
-    {s : Str ; $0 : Str},
-</PRE>
-<P>
-If there are more bindings, we add <CODE>$1</CODE>, <CODE>$2</CODE>, etc.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc124"></A>
-<H3>Eta expansion</H3>
-<P>
-To make sense of linearization, syntax trees must be
-<B>eta-expanded</B>: for any function of type
-</P>
-<PRE>
-    A -&gt; B
-</PRE>
-<P>
-an eta-expanded syntax tree has the form
-</P>
-<PRE>
-    \x -&gt; b
-</PRE>
-<P>
-where <CODE>b : B</CODE> under the assumption <CODE>x : A</CODE>.
-</P>
-<P>
-Given the linearization rule
-</P>
-<PRE>
-    lin Eq a b = {s = "(" ++ a.s ++ "=" ++ b.s ++ ")"}
-</PRE>
-<P>
-the linearization of the tree 
-</P>
-<PRE>
-    \x -&gt; Eq x x
-</PRE>
-<P>
-is the record
-</P>
-<PRE>
-    {$0 = "x", s = ["( x = x )"]}
-</PRE>
-<P>
-Then we can compute the linearization of the formula,
-</P>
-<PRE>
-    All (\x -&gt; Eq x x)  --&gt; {s = "[( All x ) ( x = x )]"}.
-</PRE>
-<P>
-The linearization of the variable <CODE>x</CODE> is, 
-"automagically", the string <CODE>"x"</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc125"></A>
-<H3>Parsing variable bindings</H3>
-<P>
-GF can treat any one-word string as a variable symbol.
-</P>
-<PRE>
-    &gt; p -cat=Prop "( All x ) ( x = x )"
-    All (\x -&gt; Eq x x)
-</PRE>
-<P>
-Variables must be bound if they are used:
-</P>
-<PRE>
-    &gt; p -cat=Prop "( All x ) ( x = y )"
-    no tree found
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc126"></A>
-<H3>Exercises on variable bindings</H3>
-<P>
-1. Write an abstract syntax of the whole
-<B>predicate calculus</B>, with the
-<B>connectives</B> "and", "or", "implies", and "not", and the
-<B>quantifiers</B> "exists" and "for all". Use higher-order functions
-to guarantee that unbounded variables do not occur.
-</P>
-<P>
-2. Write a concrete syntax for your favourite
-notation of predicate calculus. Use Latex as target language
-if you want nice output. You can also try producing boolean
-expressions of some programming language. Use as many parenthesis as you need to
-guarantee non-ambiguity.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc127"></A>
-<H2>Semantic definitions</H2>
-<P>
-<a name="secdefdef"></a>
-</P>
-<P>
-The <CODE>fun</CODE> judgements of GF are declarations of functions, giving their types.
-</P>
-<P>
-Can we <B>compute</B> <CODE>fun</CODE> functions?
-</P>
-<P>
-Mostly we are not interested, since functions are seen as constructors,
-i.e. data forms - as usual with
-</P>
-<PRE>
-    fun Zero : Nat ;
-    fun Succ : Nat -&gt; Nat ;
-</PRE>
-<P>
-But it is also possible to give <B>semantic definitions</B> to functions.
-The key word is <CODE>def</CODE>:
-</P>
-<PRE>
-    fun one : Nat ;
-    def one = Succ Zero ;
-  
-    fun twice : Nat -&gt; Nat ;
-    def twice x = plus x x ;
-  
-    fun plus : Nat -&gt; Nat -&gt; Nat ;
-    def 
-      plus x Zero = x ;
-      plus x (Succ y) = Succ (Sum x y) ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc128"></A>
-<H3>Computing a tree</H3>
-<P>
-Computation: follow a chain of definition until no definition
-can be applied,
-</P>
-<PRE>
-    plus one one --&gt;
-    plus (Succ Zero) (Succ Zero) --&gt;
-    Succ (plus (Succ Zero) Zero) --&gt;
-    Succ (Succ Zero)
-</PRE>
-<P>
-Computation in GF is performed with the <CODE>put_term</CODE> command and the
-<CODE>compute</CODE> transformation, e.g.
-</P>
-<PRE>
-    &gt; parse -tr "1 + 1" | put_term -transform=compute -tr | l
-    plus one one
-    Succ (Succ Zero)
-    s(s(0))
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc129"></A>
-<H3>Definitional equality</H3>
-<P>
-Two trees are definitionally equal if they compute into the same tree.
-</P>
-<P>
-Definitional equality does not guarantee sameness of linearization:
-</P>
-<PRE>
-    plus one one     ===&gt; 1 + 1
-    Succ (Succ Zero) ===&gt; s(s(0))
-</PRE>
-<P>
-The main use of this concept is in type checking: sameness of types.
-</P>
-<P>
-Thus e.g. the following types are equal
-</P>
-<PRE>
-    Less Zero one
-    Less Zero (Succ Zero))
-</PRE>
-<P>
-so that an object of one also is an object of the other.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc130"></A>
-<H3>Judgement forms for constructors</H3>
-<P>
-The judgement form <CODE>data</CODE> tells that a category has 
-certain functions as constructors:
-</P>
-<PRE>
-    data Nat = Succ | Zero ;
-</PRE>
-<P>
-The type signatures of constructors are given separately, 
-</P>
-<PRE>
-    fun Zero : Nat ;
-    fun Succ : Nat -&gt; Nat ;
-</PRE>
-<P>
-There is also a shorthand:
-</P>
-<PRE>
-    data Succ : Nat -&gt; Nat ;    ===   fun Succ : Nat -&gt; Nat ;
-                                      data Nat = Succ ;
-</PRE>
-<P>
-Notice: in <CODE>def</CODE> definitions, identifier patterns not
-marked as <CODE>data</CODE> will be treated as variables.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc131"></A>
-<H3>Exercises on semantic definitions</H3>
-<P>
-1. Implement an interpreter of a small functional programming
-language with natural numbers, lists, pairs, lambdas, etc. Use higher-order
-abstract syntax with semantic definitions. As concrete syntax, use
-your favourite programming language.
-</P>
-<P>
-2. There is no termination checking for <CODE>def</CODE> definitions. 
-Construct an examples that makes type checking loop.
-Type checking can be invoked with <CODE>put_term -transform=solve</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc132"></A>
-<H2>Lesson 6: Grammars of formal languages</H2>
-<P>
-<a name="chapseven"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>write grammars for formal languages (mathematical notation, programming languages)
-<LI>interface between formal and natural langauges
-<LI>implement a compiler by using GF
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc133"></A>
-<H3>Arithmetic expressions</H3>
-<P>
-We construct a calculator with addition, subtraction, multiplication, and
-division of integers. 
-</P>
-<PRE>
-    abstract Calculator = {
-  
-    cat Exp ;
-  
-    fun
-      EPlus, EMinus, ETimes, EDiv : Exp -&gt; Exp -&gt; Exp ;
-      EInt : Int -&gt; Exp ;
-    }
-</PRE>
-<P>
-The category <CODE>Int</CODE> is a built-in category of
-integers. Its syntax trees <B>integer literals</B>, i.e.
-sequences of digits:
-</P>
-<PRE>
-    5457455814608954681 : Int
-</PRE>
-<P>
-These are the only objects of type <CODE>Int</CODE>:
-grammars are not allowed to declare functions with <CODE>Int</CODE> as value type.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc134"></A>
-<H3>Concrete syntax: a simple approach</H3>
-<P>
-We begin with a
-concrete syntax that always uses parentheses around binary
-operator applications: 
-</P>
-<PRE>
-    concrete CalculatorP of Calculator = {
-  
-    lincat 
-      Exp = SS ;
-    lin
-      EPlus  = infix "+" ;
-      EMinus = infix "-" ;
-      ETimes = infix "*" ;
-      EDiv   = infix "/" ;
-      EInt i = i ;
-  
-    oper
-      infix : Str -&gt; SS -&gt; SS -&gt; SS = \f,x,y -&gt; 
-        ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
-    }
-</PRE>
-<P>
-Now we have
-</P>
-<PRE>
-    &gt; linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-    ( 2 + ( 3 * 4 ) )
-</PRE>
-<P>
-First problems: 
-</P>
-<UL>
-<LI>to get rid of superfluous spaces and 
-<LI>to recognize integer literals in the parser
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc135"></A>
-<H2>Lexing and unlexing</H2>
-<P>
-<a name="seclexing"></a>
-</P>
-<P>
-The input of parsing in GF is not just a string, but a list of
-<B>tokens</B>, returned by a <B>lexer</B>.
-</P>
-<P>
-The default lexer in GF returns chunks separated by spaces:
-</P>
-<PRE>
-    "(12 + (3 * 4))"  ===&gt;  "(12", "+", "(3". "*". "4))"
-</PRE>
-<P>
-The proper way would be
-</P>
-<PRE>
-    "(", "12", "+", "(", "3", "*", "4", ")", ")"
-</PRE>
-<P>
-Moreover, the tokens <CODE>"12"</CODE>, <CODE>"3"</CODE>, and <CODE>"4"</CODE> should be recognized as
-integer literals - they cannot be found in the grammar.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Lexers are invoked by flags to the command <CODE>put_string = ps</CODE>.
-</P>
-<PRE>
-    &gt; put_string -lexcode "(2 + (3 * 4))"
-    ( 2 + ( 3 * 4 ) )
-</PRE>
-<P>
-This can be piped into a parser, as usual:
-</P>
-<PRE>
-    &gt; ps -lexcode "(2 + (3 * 4))" | parse
-    EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-</PRE>
-<P>
-In linearization, we use a corresponding <B>unlexer</B>:
-</P>
-<PRE>
-    &gt; linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4)) | ps -unlexcode
-    (2 + (3 * 4))
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc136"></A>
-<H3>Most common lexers and unlexers</H3>
-<TABLE ALIGN="center" CELLPADDING="4" BORDER="1">
-<TR>
-<TH>lexer</TH>
-<TH>unlexer</TH>
-<TH COLSPAN="2">description</TH>
-</TR>
-<TR>
-<TD><CODE>chars</CODE></TD>
-<TD><CODE>unchars</CODE></TD>
-<TD>each character is a token</TD>
-</TR>
-<TR>
-<TD><CODE>lexcode</CODE></TD>
-<TD><CODE>unlexcode</CODE></TD>
-<TD>program code conventions (uses Haskell's lex)</TD>
-</TR>
-<TR>
-<TD><CODE>lexmixed</CODE></TD>
-<TD><CODE>unlexmixed</CODE></TD>
-<TD>like text, but between $ signs like code</TD>
-</TR>
-<TR>
-<TD><CODE>lextext</CODE></TD>
-<TD><CODE>unlextext</CODE></TD>
-<TD>with conventions on punctuation and capitals</TD>
-</TR>
-<TR>
-<TD><CODE>words</CODE></TD>
-<TD><CODE>unwords</CODE></TD>
-<TD>(default) tokens separated by space characters</TD>
-</TR>
-</TABLE>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc137"></A>
-<H2>Precedence and fixity</H2>
-<P>
-Arithmetic expressions should be unambiguous. If we write
-</P>
-<PRE>
-    2 + 3 * 4
-</PRE>
-<P>
-it should be parsed as one, but not both, of
-</P>
-<PRE>
-    EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-    ETimes (EPlus (EInt 2) (EInt 3)) (EInt 4)
-</PRE>
-<P>
-We choose the former tree, because
-multiplication has <B>higher precedence</B> than addition.
-</P>
-<P>
-To express the latter tree, we have to use parentheses:
-</P>
-<PRE>
-    (2 + 3) * 4
-</PRE>
-<P>
-The usual precedence rules:
-</P>
-<UL>
-<LI>Integer constants and expressions in parentheses have the highest precedence.
-<LI>Multiplication and division have equal precedence, lower than the highest
-  but higher than addition and subtraction, which are again equal.
-<LI>All the four binary operations are <B>left-associative</B>:
-  <CODE>1 + 2 + 3</CODE> means the same as <CODE>(1 + 2) + 3</CODE>.
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc138"></A>
-<H3>Precedence as a parameter</H3>
-<P>
-Precedence can be made into an inherent feature of expressions:
-</P>
-<PRE>
-    oper
-      Prec : PType = Ints 2 ;
-      TermPrec : Type = {s : Str ; p : Prec} ;
-  
-      mkPrec : Prec -&gt; Str -&gt; TermPrec = \p,s -&gt; {s = s ; p = p} ;
-  
-    lincat 
-      Exp = TermPrec ;
-</PRE>
-<P>
-Notice <CODE>Ints 2</CODE>: a parameter type, whose values are the integers
-<CODE>0,1,2</CODE>. 
-</P>
-<P>
-Using precedence levels: compare the inherent precedence of an 
-expression with the expected precedence.
-</P>
-<UL>
-<LI>if the inherent precedence is lower than the expected precedence,
-  use parentheses
-<LI>otherwise, no parentheses are needed
-</UL>
-
-<P>
-This idea is encoded in the operation
-</P>
-<PRE>
-    oper usePrec : TermPrec -&gt; Prec -&gt; Str = \x,p -&gt;
-      case lessPrec x.p p of {
-        True  =&gt; "(" x.s ")" ;
-        False =&gt; x.s
-      } ;
-</PRE>
-<P>
-(We use <CODE>lessPrec</CODE> from <CODE>lib/prelude/Formal</CODE>.)
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc139"></A>
-<H3>Fixities</H3>
-<P>
-We can define left-associative infix expressions:
-</P>
-<PRE>
-    infixl : Prec -&gt; Str -&gt; (_,_ : TermPrec) -&gt; TermPrec = \p,f,x,y -&gt;
-      mkPrec p (usePrec x p ++ f ++ usePrec y (nextPrec p)) ;
-</PRE>
-<P>
-Constant-like expressions (the highest level):
-</P>
-<PRE>
-    constant : Str -&gt; TermPrec = mkPrec 2 ;
-</PRE>
-<P>
-All these operations can be found in <CODE>lib/prelude/Formal</CODE>,
-which has 5 levels.
-</P>
-<P>
-Now we can write the whole concrete syntax of <CODE>Calculator</CODE> compactly:
-</P>
-<PRE>
-    concrete CalculatorC of Calculator = open Formal, Prelude in {
-  
-    flags lexer = codelit ; unlexer = code ; startcat = Exp ;
-  
-    lincat Exp = TermPrec ;
-  
-    lin
-      EPlus  = infixl 0 "+" ;
-      EMinus = infixl 0 "-" ;
-      ETimes = infixl 1 "*" ;
-      EDiv   = infixl 1 "/" ;
-      EInt i = constant i.s ;
-    }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc140"></A>
-<H3>Exercises on precedence</H3>
-<P>
-1. Define non-associative and right-associative infix operations
-analogous to <CODE>infixl</CODE>.
-</P>
-<P>
-2. Add a constructor that puts parentheses around expressions
-to raise their precedence, but that is eliminated by a <CODE>def</CODE> definition.
-Test parsing with and without a pipe to <CODE>pt -transform=compute</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc141"></A>
-<H2>Code generation as linearization</H2>
-<P>
-Translate arithmetic (infix) to JVM (postfix):
-</P>
-<PRE>
-    2 + 3 * 4
-  
-      ===&gt;
-  
-    iconst 2 : iconst 3 ; iconst 4 ; imul ; iadd
-</PRE>
-<P>
-Just give linearization rules for JVM:
-</P>
-<PRE>
-    lin
-      EPlus  = postfix "iadd" ;
-      EMinus = postfix "isub" ;
-      ETimes = postfix "imul" ;
-      EDiv   = postfix "idiv" ;
-      EInt i = ss ("iconst" ++ i.s) ;
-    oper
-      postfix : Str -&gt; SS -&gt; SS -&gt; SS = \op,x,y -&gt; 
-        ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc142"></A>
-<H3>Programs with variables</H3>
-<P>
-A <B>straight code</B> programming language, with
-<B>initializations</B> and <B>assignments</B>:
-</P>
-<PRE>
-    int x = 2 + 3 ;  
-    int y = x + 1 ; 
-    x = x + 9 * y ;
-</PRE>
-<P>
-We define programs by the following constructors:
-</P>
-<PRE>
-    fun
-      PEmpty : Prog ;
-      PInit  : Exp -&gt; (Var -&gt; Prog) -&gt; Prog ;
-      PAss   : Var -&gt; Exp  -&gt; Prog  -&gt; Prog ;
-</PRE>
-<P>
-<CODE>PInit</CODE> uses higher-order abstract syntax for making the 
-initialized variable available in the <B>continuation</B> of the program. 
-</P>
-<P>
-The abstract syntax tree for the above code is
-</P>
-<PRE>
-    PInit (EPlus (EInt 2) (EInt 3)) (\x -&gt; 
-      PInit (EPlus (EVar x) (EInt 1)) (\y -&gt; 
-        PAss x (EPlus (EVar x) (ETimes (EInt 9) (EVar y))) 
-          PEmpty))
-</PRE>
-<P>
-No uninitialized variables are allowed - there are no constructors for <CODE>Var</CODE>! 
-But we do have the rule
-</P>
-<PRE>
-    fun EVar : Var -&gt; Exp ;
-</PRE>
-<P>
-The rest of the grammar is just the same as for arithmetic expressions
-<a href="#secprecedence">here</a>. The best way to implement it is perhaps by writing a
-module that extends the expression module. The most natural start category
-of the extension is <CODE>Prog</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc143"></A>
-<H3>Exercises on code generation</H3>
-<P>
-1. Define a C-like concrete syntax of the straight-code language.
-</P>
-<P>
-2. Extend the straight-code language to expressions of type <CODE>float</CODE>.
-To guarantee type safety, you can define a category <CODE>Typ</CODE> of types, and
-make <CODE>Exp</CODE> and <CODE>Var</CODE> dependent on <CODE>Typ</CODE>. Basic floating point expressions
-can be formed from literal of the built-in GF type <CODE>Float</CODE>. The arithmetic
-operations should be made polymorphic (as <a href="#secpolymorphic">here</a>).
-</P>
-<P>
-3. Extend JVM generation to the straight-code language, using
-two more instructions
-</P>
-<UL>
-<LI><CODE>iload</CODE> <I>x</I>, which loads the value of the variable <I>x</I>
-<LI><CODE>istore</CODE> <I>x</I> which stores a value to the variable <I>x</I>
-</UL>
-
-<P>
-Thus the code for the example in the previous section is
-</P>
-<PRE>
-    iconst 2 ; iconst 3 ; iadd ; istore x ;
-    iload x ; iconst 1 ; iadd ; istore y ;
-    iload x ; iconst 9 ; iload y ; imul ; iadd ; istore x ;
-</PRE>
-<P></P>
-<P>
-4. If you made the exercise of adding floating point numbers to
-the language, you can now cash out the main advantage of type checking
-for code generation: selecting type-correct JVM instructions. The floating
-point instructions are precisely the same as the integer one, except that
-the prefix is <CODE>f</CODE> instead of <CODE>i</CODE>, and that <CODE>fconst</CODE> takes floating
-point literals as arguments.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc144"></A>
-<H1>Lesson 7: Embedded grammars</H1>
-<P>
-<a name="chapeight"></a>
-</P>
-<P>
-Goals:
-</P>
-<UL>
-<LI>use grammars as parts of programs written in Haskell and JavaScript
-<LI>implement stand-alone question-answering systems and translators based on
-  GF grammars
-<LI>generate language models for speech recognition from GF grammars
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc145"></A>
-<H2>Functionalities of an embedded grammar format</H2>
-<P>
-GF grammars can be used as parts of programs written in other programming
-languages, to be called <B>host languages</B>.
-This facility is based on several components:
-</P>
-<UL>
-<LI>PGF: a portable format for multilingual GF grammars
-<LI>a PGF interpreter written in the host language
-<LI>a library in the host language that enables calling the interpreter
-<LI>a way to manipulate abstract syntax trees in the host language
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc146"></A>
-<H2>The portable grammar format</H2>
-<P>
-The portable format is called PGF, "Portable Grammar Format".
-</P>
-<P>
-This format is produced by the GF batch compiler <CODE>gfc</CODE>, 
-executable from the operative system shell:
-</P>
-<PRE>
-    % gfc --make SOURCE.gf
-</PRE>
-<P>
-PGF is the recommended format in 
-which final grammar products are distributed, because they
-are stripped from superfluous information and can be started and applied
-faster than sets of separate modules.
-</P>
-<P>
-Application programmers have never any need to read or modify PGF files. 
-</P>
-<P>
-PGF thus plays the same role as machine code in 
-general-purpose programming (or bytecode in Java).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc147"></A>
-<H3>Haskell: the EmbedAPI module</H3>
-<P>
-The Haskell API contains (among other things) the following types and functions:
-</P>
-<PRE>
-    readPGF   :: FilePath -&gt; IO PGF
-  
-    linearize :: PGF -&gt; Language -&gt; Tree -&gt; String
-    parse     :: PGF -&gt; Language -&gt; Category -&gt; String -&gt; [Tree]
-  
-    linearizeAll     :: PGF -&gt; Tree -&gt; [String]
-    linearizeAllLang :: PGF -&gt; Tree -&gt; [(Language,String)]
-  
-    parseAll     :: PGF -&gt; Category -&gt; String -&gt; [[Tree]]
-    parseAllLang :: PGF -&gt; Category -&gt; String -&gt; [(Language,[Tree])]
-  
-    languages    :: PGF -&gt; [Language]
-    categories   :: PGF -&gt; [Category]
-    startCat     :: PGF -&gt; Category
-</PRE>
-<P>
-This is the only module that needs to be imported in the Haskell application.
-It is available as a part of the GF distribution, in the file
-<CODE>src/PGF.hs</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc148"></A>
-<H3>First application: a translator</H3>
-<P>
-Let us first build a stand-alone translator, which can translate
-in any multilingual grammar between any languages in the grammar.
-</P>
-<PRE>
-  module Main where
-  
-  import PGF
-  import System (getArgs)
-  
-  main :: IO () 
-  main = do
-    file:_ &lt;- getArgs
-    gr     &lt;- readPGF file
-    interact (translate gr)
-  
-  translate :: PGF -&gt; String -&gt; String
-  translate gr s = case parseAllLang gr (startCat gr) s of
-    (lg,t:_):_ -&gt; unlines [linearize gr l t | l &lt;- languages gr, l /= lg]
-    _ -&gt; "NO PARSE"
-</PRE>
-<P>
-To run the translator, first compile it by
-</P>
-<PRE>
-    % ghc --make -o trans Translator.hs 
-</PRE>
-<P>
-For this, you need the Haskell compiler <A HREF="http://www.haskell.org/ghc">GHC</A>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc149"></A>
-<H3>Producing GFCC for the translator</H3>
-<P>
-Then produce a GFCC file. For instance, the <CODE>Food</CODE> grammar set can be 
-compiled as follows:
-</P>
-<PRE>
-    % gfc --make FoodEng.gf FoodIta.gf
-</PRE>
-<P>
-This produces the file <CODE>Food.pgf</CODE> (its name comes from the abstract syntax).
-</P>
-<P>
-The Haskell library function <CODE>interact</CODE> makes the <CODE>trans</CODE> program work
-like a Unix filter, which reads from standard input and writes to standard
-output. Therefore it can be a part of a pipe and read and write files.
-The simplest way to translate is to <CODE>echo</CODE> input to the program:
-</P>
-<PRE>
-    % echo "this wine is delicious" | ./trans Food.pgf
-    questo vino è delizioso
-</PRE>
-<P>
-The result is given in all languages except the input language.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc150"></A>
-<H3>A translator loop</H3>
-<P>
-To avoid starting the translator over and over again:
-change <CODE>interact</CODE> in the main function to <CODE>loop</CODE>, defined as
-follows:
-</P>
-<PRE>
-  loop :: (String -&gt; String) -&gt; IO ()
-  loop trans = do 
-    s &lt;- getLine
-    if s == "quit" then putStrLn "bye" else do  
-      putStrLn $ trans s
-      loop trans
-</PRE>
-<P>
-The loop keeps on translating line by line until the input line
-is <CODE>quit</CODE>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc151"></A>
-<H3>A question-answer system</H3>
-<P>
-<a name="secmathprogram"></a>
-</P>
-<P>
-The next application is also a translator, but it adds a
-<B>transfer</B> component - a function that transforms syntax trees.
-</P>
-<P>
-The transfer function we use is one that computes a question into an answer.
-</P>
-<P>
-The program accepts simple questions about arithmetic and answers
-"yes" or "no" in the language in which the question was made:
-</P>
-<PRE>
-    Is 123 prime?
-    No.
-    77 est impair ?
-    Oui.
-</PRE>
-<P>
-We change the pure translator by giving
-the <CODE>translate</CODE> function the transfer as an extra argument:
-</P>
-<PRE>
-    translate :: (Tree -&gt; Tree) -&gt; PGF -&gt; String -&gt; String
-</PRE>
-<P>
-Ordinary translation as a special case where
-transfer is the identity function (<CODE>id</CODE> in Haskell).
-</P>
-<P>
-To reply in the <I>same</I> language as the question:
-</P>
-<PRE>
-    translate tr gr = case parseAllLang gr (startCat gr) s of
-      (lg,t:_):_ -&gt; linearize gr lg (tr t)
-      _ -&gt; "NO PARSE"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc152"></A>
-<H3>Abstract syntax of the query system</H3>
-<P>
-Input: abstract syntax judgements
-</P>
-<PRE>
-  abstract Query = {
-  
-    flags startcat=Question ;
-  
-    cat 
-      Answer ; Question ; Object ;
-  
-    fun 
-      Even   : Object -&gt; Question ;
-      Odd    : Object -&gt; Question ;
-      Prime  : Object -&gt; Question ;
-      Number : Int -&gt; Object ;
-  
-      Yes : Answer ;
-      No  : Answer ;
-  }
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc153"></A>
-<H3>Exporting GF datatypes to Haskell</H3>
-<P>
-To make it easy to define a transfer function, we export the
-abstract syntax to a system of Haskell datatypes:
-</P>
-<PRE>
-    % gfc --output-format=haskell Query.pgf
-</PRE>
-<P>
-It is also possible to produce the Haskell file together with GFCC, by
-</P>
-<PRE>
-    % gfc --make --output-format=haskell QueryEng.gf
-</PRE>
-<P>
-The result is a file named <CODE>Query.hs</CODE>, containing a 
-module named <CODE>Query</CODE>. 
-</P>
-<P>
-<!-- NEW -->
-</P>
-<P>
-Output: Haskell definitions
-</P>
-<PRE>
-  module Query where
-  import PGF
-  
-  data GAnswer =
-     GYes 
-   | GNo 
-  
-  data GObject = GNumber GInt 
-  
-  data GQuestion =
-     GPrime GObject 
-   | GOdd GObject 
-   | GEven GObject 
-  
-  newtype GInt = GInt Integer
-</PRE>
-<P>
-All type and constructor names are prefixed with a <CODE>G</CODE> to prevent clashes.
-</P>
-<P>
-The Haskell module name is the same as the abstract syntax name.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc154"></A>
-<H3>The question-answer function</H3>
-<P>
-Haskell's type checker guarantees that the functions are well-typed also with
-respect to GF. 
-</P>
-<PRE>
-  answer :: GQuestion -&gt; GAnswer
-  answer p = case p of
-    GOdd x   -&gt; test odd x
-    GEven x  -&gt; test even x
-    GPrime x -&gt; test prime x
-  
-  value :: GObject -&gt; Int
-  value e = case e of
-    GNumber (GInt i) -&gt; fromInteger i
-  
-  test :: (Int -&gt; Bool) -&gt; GObject -&gt; GAnswer
-  test f x = if f (value x) then GYes else GNo
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc155"></A>
-<H3>Converting between Haskell and GF trees</H3>
-<P>
-The generated Haskell module also contains
-</P>
-<PRE>
-  class Gf a where 
-    gf :: a -&gt; Tree
-    fg :: Tree -&gt; a
-  
-  instance Gf GQuestion where
-    gf (GEven x1) = DTr [] (AC (CId "Even")) [gf x1]
-    gf (GOdd x1) = DTr [] (AC (CId "Odd")) [gf x1]
-    gf (GPrime x1) = DTr [] (AC (CId "Prime")) [gf x1]
-    fg t =
-      case t of
-        DTr [] (AC (CId "Even")) [x1] -&gt; GEven (fg x1)
-        DTr [] (AC (CId "Odd")) [x1] -&gt; GOdd (fg x1)
-        DTr [] (AC (CId "Prime")) [x1] -&gt; GPrime (fg x1)
-        _ -&gt; error ("no Question " ++ show t)
-</PRE>
-<P>
-For the programmer, it is enougo to know:
-</P>
-<UL>
-<LI>all GF names are in Haskell prefixed with <CODE>G</CODE>
-<LI><CODE>gf</CODE> translates from Haskell objects to GF trees
-<LI><CODE>fg</CODE> translates from GF trees to Haskell objects
-</UL>
-
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc156"></A>
-<H3>Putting it all together: the transfer definition</H3>
-<PRE>
-  module TransferDef where
-  
-  import PGF (Tree)
-  import Query   -- generated from GF
-  
-  transfer :: Tree -&gt; Tree
-  transfer = gf . answer . fg
-  
-  answer :: GQuestion -&gt; GAnswer
-  answer p = case p of
-    GOdd x   -&gt; test odd x
-    GEven x  -&gt; test even x
-    GPrime x -&gt; test prime x
-  
-  value :: GObject -&gt; Int
-  value e = case e of
-    GNumber (GInt i) -&gt; fromInteger i
-  
-  test :: (Int -&gt; Bool) -&gt; GObject -&gt; GAnswer
-  test f x = if f (value x) then GYes else GNo
-  
-  prime :: Int -&gt; Bool
-  prime x = elem x primes where
-    primes = sieve [2 .. x]
-    sieve (p:xs) = p : sieve [ n | n &lt;- xs, n `mod` p &gt; 0 ]
-    sieve [] = []
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc157"></A>
-<H3>Putting it all together: the Main module</H3>
-<P>
-Here is the complete code in the Haskell file <CODE>TransferLoop.hs</CODE>.
-</P>
-<PRE>
-  module Main where
-  
-  import PGF
-  import TransferDef (transfer)
-  
-  main :: IO () 
-  main = do
-    gr &lt;- readPGF "Query.pgf"
-    loop (translate transfer gr)
-  
-  loop :: (String -&gt; String) -&gt; IO ()
-  loop trans = do 
-    s &lt;- getLine
-    if s == "quit" then putStrLn "bye" else do  
-      putStrLn $ trans s
-      loop trans
-  
-  translate :: (Tree -&gt; Tree) -&gt; PGF -&gt; String -&gt; String
-  translate tr gr s = case parseAllLang gr (startCat gr) s of
-    (lg,t:_):_ -&gt; linearize gr lg (tr t)
-    _ -&gt; "NO PARSE"
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc158"></A>
-<H3>Putting it all together: the Makefile</H3>
-<P>
-To automate the production of the system, we write a <CODE>Makefile</CODE> as follows:
-</P>
-<PRE>
-  all:
-          gfc --make --output-format=haskell QueryEng
-          ghc --make -o ./math TransferLoop.hs
-          strip math
-</PRE>
-<P>
-(The empty segments starting the command lines in a Makefile must be tabs.)
-Now we can compile the whole system by just typing 
-</P>
-<PRE>
-    make
-</PRE>
-<P>
-Then you can run it by typing
-</P>
-<PRE>
-    ./math
-</PRE>
-<P>
-Just to summarize, the source of the application consists of the following files:
-</P>
-<PRE>
-    Makefile         -- a makefile
-    Math.gf          -- abstract syntax
-    Math???.gf       -- concrete syntaxes
-    TransferDef.hs   -- definition of question-to-answer function
-    TransferLoop.hs  -- Haskell Main module
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc159"></A>
-<H2>Web server applications</H2>
-<P>
-PGF files can be used in web servers, for which there is a Haskell library included
-in <CODE>src/server/</CODE>. How to build a server for tasks like translators is explained 
-in the <A HREF="../src/server/README"><CODE>README</CODE></A> file in that directory. 
-</P>
-<P>
-One of the servers that can be readily built with the library (without any
-programming required) is <B>fridge poetry magnets</B>. It is an application that
-uses an incremental parser to suggest grammatically correct next words. Here
-is an example of its application to the <CODE>Foods</CODE> grammars.
-</P>
-<P>
-<IMG ALIGN="middle" SRC="food-magnet.png" BORDER="0" ALT="">
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc160"></A>
-<H2>JavaScript applications</H2>
-<P>
-JavaScript is a programming language that has interpreters built in in most
-web browsers. It is therefore usable for client side web programs, which can even
-be run without access to the internet. The following figure shows a JavaScript
-program compiled from GF grammars as run on an iPhone.
-</P>
-<P>
-<IMG ALIGN="middle" SRC="iphone.jpg" BORDER="0" ALT="">
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc161"></A>
-<H3>Compiling to JavaScript</H3>
-<P>
-JavaScript is one of the output formats of the GF batch compiler. Thus the following
-command generates a JavaScript file from two <CODE>Food</CODE> grammars.
-</P>
-<PRE>
-    % gfc --make --output-format=js FoodEng.gf FoodIta.gf
-</PRE>
-<P>
-The name of the generated file is <CODE>Food.js</CODE>, derived from the top-most abstract
-syntax name. This file contains the multilingual grammar as a JavaScript object.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc162"></A>
-<H3>Using the JavaScript grammar</H3>
-<P>
-To perform parsing and linearization, the run-time library
-<CODE>gflib.js</CODE> is used. It is included in <CODE>GF/lib/javascript/</CODE>, together with
-some other JavaScript and HTML files; these files can be used 
-as templates for building applications.
-</P>
-<P>
-An example of usage is 
-<A HREF="../lib/javascript/translator.html"><CODE>translator.html</CODE></A>, 
-which is in fact initialized with
-a pointer to the Food grammar, so that it provides translation between the English
-and Italian grammars:
-</P>
-<P>
-<IMG ALIGN="middle" SRC="food-js.png" BORDER="0" ALT="">
-</P>
-<P>
-The grammar must have the name <CODE>grammar.js</CODE>. The abstract syntax and start 
-category names in <CODE>translator.html</CODE> must match the ones in the grammar.
-With these changes, the translator works for any multilingual GF grammar.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc163"></A>
-<H2>Language models for speech recognition</H2>
-<P>
-The standard way of using GF in speech recognition is by building
-<B>grammar-based language models</B>. 
-</P>
-<P>
-GF supports several formats, including
-GSL, the formatused in the <A HREF="http://www.nuance.com">Nuance speech recognizer</A>.
-</P>
-<P>
-GSL is produced from GF by running <CODE>gfc</CODE> with the flag
-<CODE>--output-format=gsl</CODE>. 
-</P>
-<P>
-Example: GSL  generated from <CODE>FoodsEng.gf</CODE>.
-</P>
-<PRE>
-    % gfc --make --output-format=gsl FoodsEng.gf
-    % more FoodsEng.gsl
-  
-    ;GSL2.0
-    ; Nuance speech recognition grammar for FoodsEng
-    ; Generated by GF
-  
-    .MAIN Phrase_cat
-  
-    Item_1 [("that" Kind_1) ("this" Kind_1)]
-    Item_2 [("these" Kind_2) ("those" Kind_2)]
-    Item_cat [Item_1 Item_2]
-    Kind_1 ["cheese" "fish" "pizza" (Quality_1 Kind_1)
-            "wine"]
-    Kind_2 ["cheeses" "fish" "pizzas"
-            (Quality_1 Kind_2) "wines"]
-    Kind_cat [Kind_1 Kind_2]
-    Phrase_1 [(Item_1 "is" Quality_1)
-              (Item_2 "are" Quality_1)]
-    Phrase_cat Phrase_1
-    
-    Quality_1 ["boring" "delicious" "expensive"
-               "fresh" "italian" ("very" Quality_1) "warm"]
-    Quality_cat Quality_1
-</PRE>
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc164"></A>
-<H3>More speech recognition grammar formats</H3>
-<P>
-Other formats available via the <CODE>--output-format</CODE> flag include:
-</P>
-<TABLE ALIGN="center" CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Format</TH>
-<TH COLSPAN="2">Description</TH>
-</TR>
-<TR>
-<TD><CODE>gsl</CODE></TD>
-<TD>Nuance GSL speech recognition grammar</TD>
-</TR>
-<TR>
-<TD><CODE>jsgf</CODE></TD>
-<TD>Java Speech Grammar Format (JSGF)</TD>
-</TR>
-<TR>
-<TD><CODE>jsgf_sisr_old</CODE></TD>
-<TD>JSGF with semantic tags in SISR  WD 20030401 format</TD>
-</TR>
-<TR>
-<TD><CODE>srgs_abnf</CODE></TD>
-<TD>SRGS ABNF format</TD>
-</TR>
-<TR>
-<TD><CODE>srgs_xml</CODE></TD>
-<TD>SRGS XML format</TD>
-</TR>
-<TR>
-<TD><CODE>srgs_xml_prob</CODE></TD>
-<TD>SRGS XML format, with weights</TD>
-</TR>
-<TR>
-<TD><CODE>slf</CODE></TD>
-<TD>finite automaton in the HTK SLF format</TD>
-</TR>
-<TR>
-<TD><CODE>slf_sub</CODE></TD>
-<TD>finite automaton with sub-automata in HTK SLF</TD>
-</TR>
-</TABLE>
-
-<P>
-All currently available formats can be seen with <CODE>gfc --help</CODE>.
-</P>
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -\-toc -thtml gf-tutorial.txt -->
-</BODY></HTML>
diff --git a/doc/gf-tutorial.txt b/doc/gf-tutorial.txt
deleted file mode 100644
--- a/doc/gf-tutorial.txt
+++ /dev/null
@@ -1,5022 +0,0 @@
-Grammatical Framework Tutorial
-Aarne Ranta
-Version 3.1.2, November 2008
-
-
-% NOTE: this is a txt2tags file.
-% Create a tex file from this file using:
-% txt2tags --toc -ttex gf-tutorial.txt
-
-%!target:html
-%!encoding: iso-8859-1
-
-%!postproc(tex) : "\\subsection\*" "\\newslide"
-%!preproc(tex): "#NEW" ""
-%!postproc(html): #NEW <!-- NEW -->
-
-
-
-%!postproc(html): #OVERVIEW <h2>Overview</h2>
-
-%%!postproc(tex): "section\*" "section"
-
-%!postproc(tex): "\\documentclass{article}" ""
-
-%!postproc(tex): "subsection\*" "section"
-%!postproc(tex): "section\*" "chapter"
-
-%!postproc(tex): "textbf{Exercise}" "exercise"
-%!postproc(tex): "textbf" "keywrd"
-
-%!postproc(html): #BCEN <center>
-%!postproc(html): #ECEN </center>
-
-%!postproc(tex): #BCEN "begin{center}"
-%!postproc(tex): #ECEN "end{center}"
-
-%!postproc(tex): #BEQU "bequ"
-%!postproc(tex): #ENQU "enqu"
-%!postproc(html): #BEQU "<center>"
-%!postproc(html): #ENQU "</center>"
-
-%!preproc(html): #EDITORPNG [quick-editor.png]
-%!preproc(tex):  #EDITORPNG [10lang-small.png]
-
-%!preproc(html): #LOGOPNG [Logos/gf0.png]
-%!preproc(tex):  #LOGOPNG [Logos/gf0.png]
-
-
-%!postproc(tex): #PARTone "part{Tutorial}"
-%!postproc(tex): #PARTtwo "part{Applications of Grammars}"
-%!postproc(tex): #PARTfour "part{Advanced Grammar Writing}"
-%!postproc(tex): #PARTthree "part{Reference Manual}"
-
-%%!postproc(tex): #PARTbnf "include{DocGF}"
-%!postproc(tex): #PARTquickref "chapter{Quick Reference}"
-%!postproc(tex): #twocolumn ""%twocolumn"
-%!postproc(tex): #newpage "newpage"
-%!postproc(tex): #smallsize "small"
-%!postproc(tex): #normalsize "normalsize"
-%!postproc(tex): #startappendix "appendix"
-
-
-%!postproc(tex): #indexYACC "index{YACC}"
-
-%!postproc(tex): #MYTREE "input{mytree}"
-%!preproc(html): #MYTREE [mytree.png]
-%!postproc(tex): #FOODMARKET "input{foodmarket}"
-%!preproc(html): #FOODMARKET [foodmarket.png]
-%!postproc(tex): #CATEGORIES "input{categories}"
-%!preproc(html): #CATEGORIES [categories.png]
-
-%!postproc(tex): #Syntaxpic "input{Syntax}"
-%!postproc(tex): #Germanpic "input{German}"
-
-%!postproc(tex): #REFERENCES "input{references}"
-
-%!postproc(tex): #FORMULAone "input{FORMULAone}"
-
-%!postproc(tex): #SETLENGTHS "input{SETLENGTHS}"
-
-%!postproc(tex): #PRINTINDEX "printindex"
-
-%!postproc(tex): #Lchaptwo "label{chaptwo}"
-%!postproc(tex): #Rchaptwo "chref{chaptwo}"
-%!postproc(html): #Lchaptwo <a name="chaptwo"></a>
-%!postproc(html): #Rchaptwo <a href="#chaptwo">Lesson 1</a>
-
-%!postproc(tex): #Lchapthree "label{chapthree}"
-%!postproc(tex): #Rchapthree "chref{chapthree}"
-%!postproc(html): #Lchapthree <a name="chapthree"></a>
-%!postproc(html): #Rchapthree <a href="#chapthree">Lesson 2</a>
-
-%!postproc(tex): #Lchapfour "label{chapfour}"
-%!postproc(tex): #Rchapfour "chref{chapfour}"
-%!postproc(html): #Lchapfour <a name="chapfour"></a>
-%!postproc(html): #Rchapfour <a href="#chaptwo">Lesson 3</a>
-
-%!postproc(tex): #Lchapfive "label{chapfive}"
-%!postproc(tex): #Rchapfive "chref{chapfive}"
-%!postproc(html): #Lchapfive <a name="chapfive"></a>
-%!postproc(html): #Rchapfive <a href="#chapfive">Lesson 4</a>
-
-%!postproc(tex): #Lchapsix "label{chapsix}"
-%!postproc(tex): #Rchapsix "chref{chapsix}"
-%!postproc(html): #Lchapsix <a name="chapsix"></a>
-%!postproc(html): #Rchapsix <a href="#chapsix">Lesson 5</a>
-
-%!postproc(tex): #Lchapseven "label{chapseven}"
-%!postproc(tex): #Rchapseven "chref{chapseven}"
-%!postproc(html): #Lchapseven <a name="chapseven"></a>
-%!postproc(html): #Rchapseven <a href="#chapseven">Lesson 6</a>
-
-%!postproc(tex): #Lchapeight "label{chapeight}"
-%!postproc(tex): #Rchapeight "chref{chapeight}"
-%!postproc(html): #Lchapeight <a name="chapeight"></a>
-%!postproc(html): #Rchapeight <a href="#chapeight">Lesson 7</a>
-
-
-%2.7.2
-%!postproc(tex): #Lsecjment "label{secjment}"
-%!postproc(tex): #Rsecjment "sref{secjment}"
-%!postproc(html): #Lsecjment <a name="secjment"></a>
-%!postproc(html): #Rsecjment <a href="#secjment">here</a>
-
-%3.4
-%!postproc(tex): #Lsecanitalian "label{secanitalian}"
-%!postproc(tex): #Rsecanitalian "sref{secanitalian}"
-%!postproc(html): #Lsecanitalian <a name="secanitalian"></a>
-%!postproc(html): #Rsecanitalian <a href="#secanitalian">here</a>
-
-%3.6.1
-%!postproc(tex): #Lsectreebank "label{sectreebank}"
-%!postproc(tex): #Rsectreebank "sref{sectreebank}"
-%!postproc(html): #Lsectreebank <a name="sectreebank"></a>
-%!postproc(html): #Rsectreebank <a href="#sectreebank">here</a>
-
-
-%3.6.4
-%!postproc(tex): #Lsecediting "label{secediting}"
-%!postproc(tex): #Rsecediting "sref{secediting}"
-%!postproc(html): #Lsecediting <a name="secediting"></a>
-%!postproc(html): #Rsecediting <a href="#secediting">here</a>
-
-
-%3.9.5
-%!postproc(tex): #Lsecpartapp "label{secpartapp}"
-%!postproc(tex): #Rsecpartapp "sref{secpartapp}"
-%!postproc(html): #Lsecpartapp <a name="secpartapp"></a>
-%!postproc(html): #Rsecpartapp <a href="#secpartapp">here</a>
-
-%3.10
-%!postproc(tex): #Lsecarchitecture "label{secarchitecture}"
-%!postproc(tex): #Rsecarchitecture "sref{secarchitecture}"
-%!postproc(html): #Lsecarchitecture <a name="secarchitecture"></a>
-%!postproc(html): #Rsecarchitecture <a href="#secarchitecture">here</a>
-
-%4.6
-%!postproc(tex): #Lsecinflection "label{secinflection}"
-%!postproc(tex): #Rsecinflection "sref{secinflection}"
-%!postproc(html): #Lsecinflection <a name="secinflection"></a>
-%!postproc(html): #Rsecinflection <a href="#secinflection">here</a>
-
-%4.7
-%!postproc(tex): #Lsecitalian "label{secitalian}"
-%!postproc(tex): #Rsecitalian "sref{secitalian}"
-%!postproc(html): #Lsecitalian <a name="secitalian"></a>
-%!postproc(html): #Rsecitalian <a href="#secitalian">here</a>
-
-%4.10.2
-%!postproc(tex): #Lsecmatching "label{secmatching}"
-%!postproc(tex): #Rsecmatching "sref{secmatching}"
-%!postproc(html): #Lsecmatching <a name="secmatching"></a>
-%!postproc(html): #Rsecmatching <a href="#secmatching">here</a>
-
-%5.2
-%!postproc(tex): #Lseclexical "label{seclexical}"
-%!postproc(tex): #Rseclexical "sref{seclexical}"
-%!postproc(html): #Lseclexical <a name="seclexical"></a>
-%!postproc(html): #Rseclexical <a href="#seclexical">here</a>
-
-%5.4
-%!postproc(tex): #Lsecenglish "label{secenglish}"
-%!postproc(tex): #Rsecenglish "sref{secenglish}"
-%!postproc(html): #Lsecenglish <a name="secenglish"></a>
-%!postproc(html): #Rsecenglish <a href="#secenglish">here</a>
-
-%5.5
-%!postproc(tex): #Lsecfunctor "label{secfunctor}"
-%!postproc(tex): #Rsecfunctor "sref{secfunctor}"
-%!postproc(html): #Lsecfunctor <a name="secfunctor"></a>
-%!postproc(html): #Rsecfunctor <a href="#secfunctor">here</a>
-
-%5.6
-%!postproc(tex): #Lsecinterface "label{secinterface}"
-%!postproc(tex): #Rsecinterface "sref{secinterface}"
-%!postproc(html): #Lsecinterface <a name="secinterface"></a>
-%!postproc(html): #Rsecinterface <a href="#secinterface">here</a>
-
-%5.11
-%!postproc(tex): #Lsecbrowsing "label{secbrowsing}"
-%!postproc(tex): #Rsecbrowsing "sref{secbrowsing}"
-%!postproc(html): #Lsecbrowsing <a name="secbrowsing"></a>
-%!postproc(html): #Rsecbrowsing <a href="#secbrowsing">here</a>
-
-%5.12
-%!postproc(tex): #Lsecextended "label{secextended}"
-%!postproc(tex): #Rsecextended "sref{secextended}"
-%!postproc(html): #Lsecextended <a name="secextended"></a>
-%!postproc(html): #Rsecextended <a href="#secextended">here</a>
-
-%5.13
-%!postproc(tex): #Lsectense "label{sectense}"
-%!postproc(tex): #Rsectense "sref{sectense}"
-%!postproc(html): #Lsectense <a name="sectense"></a>
-%!postproc(html): #Rsectense <a href="#sectense">here</a>
-
-%5.14.2
-%!postproc(tex): #Lseclock "label{seclock}"
-%!postproc(tex): #Rseclock "sref{seclock}"
-%!postproc(html): #Lseclock <a name="seclock"></a>
-%!postproc(html): #Rseclock <a href="#seclock">here</a>
-
-%6.2
-%!postproc(tex): #Lsecsmarthouse "label{secsmarthouse}"
-%!postproc(tex): #Rsecsmarthouse "sref{secsmarthouse}"
-%!postproc(html): #Lsecsmarthouse <a name="secsmarthouse"></a>
-%!postproc(html): #Rsecsmarthouse <a href="#secsmarthouse">here</a>
-
-%6.3
-%!postproc(tex): #Lsecpolymorphic "label{secpolymorphic}"
-%!postproc(tex): #Rsecpolymorphic "sref{secpolymorphic}"
-%!postproc(html): #Lsecpolymorphic <a name="secpolymorphic"></a>
-%!postproc(html): #Rsecpolymorphic <a href="#secpolymorphic">here</a>
-
-%6.7
-%!postproc(tex): #Lsecbinding "label{secbinding}"
-%!postproc(tex): #Rsecbinding "sref{secbinding}"
-%!postproc(html): #Lsecbinding <a name="secbinding"></a>
-%!postproc(html): #Rsecbinding <a href="#secbinding">here</a>
-
-
-%6.8
-%!postproc(tex): #Lsecdefdef "label{secdefdef}"
-%!postproc(tex): #Rsecdefdef "sref{secdefdef}"
-%!postproc(html): #Lsecdefdef <a name="secdefdef"></a>
-%!postproc(html): #Rsecdefdef <a href="#secdefdef">here</a>
-
-%7.2
-%!postproc(tex): #Lseclexing "label{seclexing}"
-%!postproc(tex): #Rseclexing "sref{seclexing}"
-%!postproc(html): #Lseclexing <a name="seclexing"></a>
-%!postproc(html): #Rseclexing <a href="#seclexing">here</a>
-
-%7.3
-%!postproc(tex): #Lsecprecedence "label{secprecedence}"
-%!postproc(tex): #Rsecprecedence "sref{secprecedence}"
-%!postproc(html): #Lsecprecedence <a name="secprecedence"></a>
-%!postproc(html): #Rsecprecedence <a href="#secprecedence">here</a>
-
-%8.3.4
-%!postproc(tex): #Lsecmathprogram "label{secmathprogram}"
-%!postproc(tex): #Rsecmathprogram "sref{secmathprogram}"
-%!postproc(html): #Lsecmathprogram <a name="secmathprogram"></a>
-%!postproc(html): #Rsecmathprogram <a href="#secmathprogram">here</a>
-
-
-
-
-
-
-%!postproc(tex): #APPENDIX "appendix"
-%!postproc(tex): #CHAPTER "chapter{The GF Programming Language}"
-%!postproc(tex): #TOC "tableofcontents"
-
-%!postproc(tex): #BECE "begin{center}"
-%!postproc(tex): #ENCE "end{center}"
-%!postproc(tex): "subsection\*" "section"
-%!postproc(tex): "section\*" "chapter"
-%%!postproc(tex): "paragraph\{\}\\bf" "subsubsection"
-
-%!postproc(tex): #PARTbnf "input{RefDocGF.tex}"
-%!preproc(html): #PARTbnf %!include: RefDocGF.txt
-
-%!postproc(tex): "textbf" "keywrd"
-%!postproc(tex): #PRINTINDEX "printindex"
-%!preproc(html): #PRINTINDEX "" 
-
-%!postproc(tex): #sugar "sugar"
-%!postproc(tex): #comput "computes"
-
-%!postproc(tex): #Aone "subscr{A}{1}"
-%!postproc(tex): #Aen "subscr{A}{n}"
-%!postproc(tex): #Aii "subscr{A}{i}"
-%!postproc(tex): #aone "subscr{a}{1}"
-%!postproc(tex): #anone "subscr{a}{n-1}"
-%!postproc(tex): #aen "subscr{a}{n}"
-%!postproc(tex): #Bone "subscr{B}{1}"
-%!postproc(tex): #Bem "subscr{B}{m}"
-%!postproc(tex): #Ben "subscr{B}{n}"
-%!postproc(tex): #Cone "subscr{C}{1}"
-%!postproc(tex): #Cen "subscr{C}{n}"
-%!postproc(tex): #Cii "subscr{C}{i}"
-%!postproc(tex): #fone "subscr{f}{1}"
-%!postproc(tex): #fen "subscr{f}{n}"
-%!postproc(tex): #Gone "subscr{G}{1}"
-%!postproc(tex): #Gen "subscr{G}{n}"
-%!postproc(tex): #pone "subscr{p}{1}"
-%!postproc(tex): #pem "subscr{p}{m}"
-%!postproc(tex): #pen "subscr{p}{n}"
-%!postproc(tex): #pii "subscr{p}{i}"
-%!postproc(tex): #rii "subscr{r}{i}"
-%!postproc(tex): #rone "subscr{r}{1}"
-%!postproc(tex): #ren "subscr{r}{n}"
-%!postproc(tex): #sii "subscr{s}{i}"
-%!postproc(tex): #sone "subscr{s}{1}"
-%!postproc(tex): #sen "subscr{s}{n}"
-%!postproc(tex): #Tone "subscr{T}{1}"
-%!postproc(tex): #Ten "subscr{T}{n}"
-%!postproc(tex): #tone "subscr{t}{1}"
-%!postproc(tex): #tem "subscr{t}{m}"
-%!postproc(tex): #ten "subscr{t}{n}"
-%!postproc(tex): #tii "subscr{t}{i}"
-%!postproc(tex): #Vone "subscr{V}{1}"
-%!postproc(tex): #Ven "subscr{V}{n}"
-%!postproc(tex): #Vii "subscr{V}{i}"
-%!postproc(tex): #xnone "subscr{x}{n-1}"
-%!postproc(tex): #xone "subscr{x}{1}"
-%!postproc(tex): #xen "subscr{x}{n}"
-%!postproc(tex): #xii "subscr{x}{i}"
-%!postproc(tex): #yone "subscr{y}{1}"
-%!postproc(tex): #yem "subscr{y}{m}"
-%!postproc(tex): #zone "subscr{z}{1}"
-%!postproc(tex): #zem "subscr{z}{m}"
-
-%%% undo the effect for these links in the synopsis
-%!postproc(tex): "subscr\{G\}\{n\}der" "#Gender"
-%!postproc(tex): "subscr\{T\}\{n\}se" "#Tense"
-
-
-%%!target:html
-%!postproc(html): #APPENDIX ""
-%!postproc(html): #CHAPTER ""
-%!postproc(html): #TOC ""
-
-%!postproc(html): #BECE "<center>"
-%!postproc(html): #ENCE "</center>"
-%%!postproc(html): "subsection\*" "section"
-%%!postproc(html): "section\*" "chapter"
-%%!preproc(html): #PARTbnf "[BNF Grammar of GF RefDocGF.html]"
-
-%!postproc(html): #sugar "==="
-%!postproc(html): #comput "==>"
-
-%!postproc(html): #Aone "<i>A</i><sub>1</sub>"
-%!postproc(html): #Aen "<i>A</i><sub>n</sub>"
-%!postproc(html): #Aii "<i>A</i><sub>i</sub>"
-%!postproc(html): #aone "<i>a</i><sub>1</sub>"
-%!postproc(html): #anone "<i>a</i><sub>n-1</sub>"
-%!postproc(html): #aen "<i>a</i><sub>n</sub>"
-%!postproc(html): #Bone "<i>B</i><sub>1</sub>"
-%!postproc(html): #Bem "<i>B</i><sub>m</sub>"
-%!postproc(html): #Ben "<i>B</i><sub>n</sub>"
-%!postproc(html): #Cone "<i>C</i><sub>1</sub>"
-%!postproc(html): #Cen "<i>C</i><sub>n</sub>"
-%!postproc(html): #Cii "<i>C</i><sub>i</sub>"
-%!postproc(html): #fone "<i>f</i><sub>1</sub>"
-%!postproc(html): #fen "<i>f</i><sub>n</sub>"
-%!postproc(html): #Gone "<i>G</i><sub>1</sub>"
-%!postproc(html): #Gen "<i>G</i><sub>n</sub>"
-%!postproc(html): #pone "<i>p</i><sub>1</sub>"
-%!postproc(html): #pem "<i>p</i><sub>m</sub>"
-%!postproc(html): #pen "<i>p</i><sub>n</sub>"
-%!postproc(html): #pii "<i>p</i><sub>i</sub>"
-%!postproc(html): #rii "<i>r</i><sub>i</sub>"
-%!postproc(html): #rone "<i>r</i><sub>1</sub>"
-%!postproc(html): #ren "<i>r</i><sub>n</sub>"
-%!postproc(html): #sii "<i>s</i><sub>i</sub>"
-%!postproc(html): #sone "<i>s</i><sub>1</sub>"
-%!postproc(html): #sen "<i>s</i><sub>n</sub>"
-%!postproc(html): #Tone "<i>T</i><sub>1</sub>"
-%!postproc(html): #Ten "<i>T</i><sub>n</sub>"
-%!postproc(html): #tone "<i>t</i><sub>1</sub>"
-%!postproc(html): #tem "<i>t</i><sub>m</sub>"
-%!postproc(html): #ten "<i>t</i><sub>n</sub>"
-%!postproc(html): #tii "<i>t</i><sub>i</sub>"
-%!postproc(html): #Vone "<i>V</i><sub>1</sub>"
-%!postproc(html): #Ven "<i>V</i><sub>n</sub>"
-%!postproc(html): #Vii "<i>V</i><sub>i</sub>"
-%!postproc(html): #xnone "<i>x</i><sub>n-1</sub>"
-%!postproc(html): #xone "<i>x</i><sub>1</sub>"
-%!postproc(html): #xen "<i>x</i><sub>n</sub>"
-%!postproc(html): #xii "<i>x</i><sub>i</sub>"
-%!postproc(html): #yone "<i>y</i><sub>1</sub>"
-%!postproc(html): #yem "<i>y</i><sub>m</sub>"
-%!postproc(html): #zone "<i>z</i><sub>1</sub>"
-%!postproc(html): #zem "<i>z</i><sub>m</sub>"
-
-
-%!postproc(tex): #Lpatternmatching "label{patternmatching}"
-%!postproc(tex): #Rpatternmatching "sref{patternmatching}"
-%!postproc(html): #Lpatternmatching <a name="patternmatching"></a>
-%!postproc(html): #Rpatternmatching <a href="#patternmatching">here</a>
-
-%!postproc(tex): #Lcatjudgements "label{catjudgements}"
-%!postproc(tex): #Rcatjudgements "sref{catjudgements}"
-%!postproc(html): #Lcatjudgements <a name="catjudgements"></a>
-%!postproc(html): #Rcatjudgements <a href="#catjudgements">here</a>
-
-%!postproc(tex): #Lcnctypes "label{cnctypes}"
-%!postproc(tex): #Rcnctypes "sref{cnctypes}"
-%!postproc(html): #Lcnctypes <a name="cnctypes"></a>
-%!postproc(html): #Rcnctypes <a href="#cnctypes">here</a>
-
-%!postproc(tex): #Lcompleteness "label{completeness}"
-%!postproc(tex): #Rcompleteness "sref{completeness}"
-%!postproc(html): #Lcompleteness <a name="completeness"></a>
-%!postproc(html): #Rcompleteness <a href="#completeness">here</a>
-
-%!postproc(tex): #Lcontexts "label{contexts}"
-%!postproc(tex): #Rcontexts "sref{contexts}"
-%!postproc(html): #Lcontexts <a name="contexts"></a>
-%!postproc(html): #Rcontexts <a href="#contexts">here</a>
-
-%!postproc(tex): #Lconversions "label{conversions}"
-%!postproc(tex): #Rconversions "sref{conversions}"
-%!postproc(html): #Lconversions <a name="conversions"></a>
-%!postproc(html): #Rconversions <a href="#conversions">here</a>
-
-%!postproc(tex): #Lexpressions "label{expressions}"
-%!postproc(tex): #Rexpressions "sref{expressions}"
-%!postproc(html): #Lexpressions <a name="expressions"></a>
-%!postproc(html): #Rexpressions <a href="#expressions">here</a>
-
-%!postproc(tex): #Lflagvalues "label{flagvalues}"
-%!postproc(tex): #Rflagvalues "sref{flagvalues}"
-%!postproc(html): #Lflagvalues <a name="flagvalues"></a>
-%!postproc(html): #Rflagvalues <a href="#flagvalues">here</a>
-
-%!postproc(tex): #Lfunctionelimination "label{functionelimination}"
-%!postproc(tex): #Rfunctionelimination "sref{functionelimination}"
-%!postproc(html): #Lfunctionelimination <a name="functionelimination"></a>
-%!postproc(html): #Rfunctionelimination <a href="#functionelimination">here</a>
-
-%!postproc(tex): #Lfunctiontype "label{functiontype}"
-%!postproc(tex): #Rfunctiontype "sref{functiontype}"
-%!postproc(html): #Lfunctiontype <a name="functiontype"></a>
-%!postproc(html): #Rfunctiontype <a href="#functiontype">here</a>
-
-%!postproc(tex): #Lgluing "label{gluing}"
-%!postproc(tex): #Rgluing "sref{gluing}"
-%!postproc(html): #Lgluing <a name="gluing"></a>
-%!postproc(html): #Rgluing <a href="#gluing">here</a>
-
-%!postproc(tex): #LHOAS "label{HOAS}"
-%!postproc(tex): #RHOAS "sref{HOAS}"
-%!postproc(html): #LHOAS <a name="HOAS"></a>
-%!postproc(html): #RHOAS <a href="#HOAS">here</a>
-
-%!postproc(tex): #Lidentifiers "label{identifiers}"
-%!postproc(tex): #Ridentifiers "sref{identifiers}"
-%!postproc(html): #Lidentifiers <a name="identifiers"></a>
-%!postproc(html): #Ridentifiers <a href="#identifiers">here</a>
-
-%!postproc(tex): #Ljudgementforms "label{judgementforms}"
-%!postproc(tex): #Rjudgementforms "sref{judgementforms}"
-%!postproc(html): #Ljudgementforms <a name="judgementforms"></a>
-%!postproc(html): #Rjudgementforms <a href="#judgementforms">here</a>
-
-%!postproc(tex): #Llindefjudgements "label{lindefjudgements}"
-%!postproc(tex): #Rlindefjudgements "sref{lindefjudgements}"
-%!postproc(html): #Llindefjudgements <a name="lindefjudgements"></a>
-%!postproc(html): #Rlindefjudgements <a href="#lindefjudgements">here</a>
-
-%!postproc(tex): #Llinexpansion "label{linexpansion}"
-%!postproc(tex): #Rlinexpansion "sref{linexpansion}"
-%!postproc(html): #Llinexpansion <a name="linexpansion"></a>
-%!postproc(html): #Rlinexpansion <a href="#linexpansion">here</a>
-
-%!postproc(tex): #Loldgf "label{oldgf}"
-%!postproc(tex): #Roldgf "sref{oldgf}"
-%!postproc(html): #Loldgf <a name="oldgf"></a>
-%!postproc(html): #Roldgf <a href="#oldgf">here</a>
-
-%!postproc(tex): #Lopenabstract "label{openabstract}"
-%!postproc(tex): #Ropenabstract "sref{openabstract}"
-%!postproc(html): #Lopenabstract <a name="openabstract"></a>
-%!postproc(html): #Ropenabstract <a href="#openabstract">here</a>
-
-%!postproc(tex): #Loverloading "label{overloading}"
-%!postproc(tex): #Roverloading "sref{overloading}"
-%!postproc(html): #Loverloading <a name="overloading"></a>
-%!postproc(html): #Roverloading <a href="#overloading">here</a>
-
-%!postproc(tex): #Lparamjudgements "label{paramjudgements}"
-%!postproc(tex): #Rparamjudgements "sref{paramjudgements}"
-%!postproc(html): #Lparamjudgements <a name="paramjudgements"></a>
-%!postproc(html): #Rparamjudgements <a href="#paramjudgements">here</a>
-
-%!postproc(tex): #Lparamtypes "label{paramtypes}"
-%!postproc(tex): #Rparamtypes "sref{paramtypes}"
-%!postproc(html): #Lparamtypes <a name="paramtypes"></a>
-%!postproc(html): #Rparamtypes <a href="#paramtypes">here</a>
-
-%!postproc(tex): #Lparamvalues "label{paramvalues}"
-%!postproc(tex): #Rparamvalues "sref{paramvalues}"
-%!postproc(html): #Lparamvalues <a name="paramvalues"></a>
-%!postproc(html): #Rparamvalues <a href="#paramvalues">here</a>
-
-%!postproc(tex): #Lpredefabs "label{predefabs}"
-%!postproc(tex): #Rpredefabs "sref{predefabs}"
-%!postproc(html): #Lpredefabs <a name="predefabs"></a>
-%!postproc(html): #Rpredefabs <a href="#predefabs">here</a>
-
-%!postproc(tex): #Lpredefcnc "label{predefcnc}"
-%!postproc(tex): #Rpredefcnc "sref{predefcnc}"
-%!postproc(html): #Lpredefcnc <a name="predefcnc"></a>
-%!postproc(html): #Rpredefcnc <a href="#predefcnc">here</a>
-
-%!postproc(tex): #Lqualifiednames "label{qualifiednames}"
-%!postproc(tex): #Rqualifiednames "sref{qualifiednames}"
-%!postproc(html): #Lqualifiednames <a name="qualifiednames"></a>
-%!postproc(html): #Rqualifiednames <a href="#qualifiednames">here</a>
-
-%!postproc(tex): #Lrenaming "label{renaming}"
-%!postproc(tex): #Rrenaming "sref{renaming}"
-%!postproc(html): #Lrenaming <a name="renaming"></a>
-%!postproc(html): #Rrenaming <a href="#renaming">here</a>
-
-%!postproc(tex): #Lrestrictedinheritance "label{restrictedinheritance}"
-%!postproc(tex): #Rrestrictedinheritance "sref{restrictedinheritance}"
-%!postproc(html): #Lrestrictedinheritance <a name="restrictedinheritance"></a>
-%!postproc(html): #Rrestrictedinheritance <a href="#restrictedinheritance">here</a>
-
-%!postproc(tex): #Lreuse "label{reuse}"
-%!postproc(tex): #Rreuse "sref{reuse}"
-%!postproc(html): #Lreuse <a name="reuse"></a>
-%!postproc(html): #Rreuse <a href="#reuse">here</a>
-
-%!postproc(tex): #Lruntimevariables "label{runtimevariables}"
-%!postproc(tex): #Rruntimevariables "sref{runtimevariables}"
-%!postproc(html): #Lruntimevariables <a name="runtimevariables"></a>
-%!postproc(html): #Rruntimevariables <a href="#runtimevariables">here</a>
-
-%!postproc(tex): #Lstrtype "label{strtype}"
-%!postproc(tex): #Rstrtype "sref{strtype}"
-%!postproc(html): #Lstrtype <a name="strtype"></a>
-%!postproc(html): #Rstrtype <a href="#strtype">here</a>
-
-%!postproc(tex): #Lsubtyping "label{subtyping}"
-%!postproc(tex): #Rsubtyping "sref{subtyping}"
-%!postproc(html): #Lsubtyping <a name="subtyping"></a>
-%!postproc(html): #Rsubtyping <a href="#subtyping">here</a>
-
-%!postproc(tex): #Lsyntaxtrees "label{syntaxtrees}"
-%!postproc(tex): #Rsyntaxtrees "sref{syntaxtrees}"
-%!postproc(html): #Lsyntaxtrees <a name="syntaxtrees"></a>
-%!postproc(html): #Rsyntaxtrees <a href="#syntaxtrees">here</a>
-
-%!postproc(tex): #Ltables "label{tables}"
-%!postproc(tex): #Rtables "sref{tables}"
-%!postproc(html): #Ltables <a name="tables"></a>
-%!postproc(html): #Rtables <a href="#tables">here</a>
-
-%!postproc(tex): #Lvariablebinding "label{variablebinding}"
-%!postproc(tex): #Rvariablebinding "sref{variablebinding}"
-%!postproc(html): #Lvariablebinding <a name="variablebinding"></a>
-%!postproc(html): #Rvariablebinding <a href="#variablebinding">here</a>
-
-%% last, to avoid overriding with subsection* -> section
-%!postproc(tex): #PREFACE "subsection*{Preface}"
-%!postproc(tex): #OVERVIEW "subsection*{Overview}"
-%!postproc(html): #OVERVIEW <h2>Overview</h2>
-
-
-
-
-#NEW
-
-=Overview=
-
-This is a hands-on introduction to grammar writing in GF.
-
-Main ingredients of GF:
-- linguistics
-- functional programming
-
-
-Prerequisites:
-- some previous experience from some programming language
-- the basics of using computers, e.g. the use of 
-  text editors and the management of files.
-- knowledge of Unix commands is useful but not necessary
-- knowledge of many natural languages may add fun to experience
-
-
-
-
-#NEW
-
-==Outline==
-
-#Rchaptwo: a multilingual "Hello World" grammar. English, Finnish, Italian.
-
-#Rchapthree: a larger grammar for the domain of food. English and Italian.
-
-#Rchapfour: parameters - morphology and agreement.
-
-#Rchapfive: using the resource grammar library.
-
-#Rchapsix: semantics -  **dependent types**, **variable bindings**, 
-and **semantic definitions**.
-
-#Rchapseven: implementing formal languages.
-
-#Rchapeight: embedded grammar applications.
-
-
-
-#NEW
-
-==Slides==
-
-You can chop this tutorial into a set of slides by the command
-```
-  htmls gf-tutorial.html
-```
-where the program ``htmls`` is distributed with GF (see below), in
-
-  [``GF/src/tools/Htmls.hs`` http://digitalgrammars.com/gf/src/tools/Htmls.hs]
-
-The slides will appear as a set of files beginning with ``01-gf-tutorial.htmls``.
-
-Internal links will not work in the slide format, except for those in the
-upper left corner of each slide, and the links behind the "Contents" link.
-
-
-
-#NEW
-
-=Lesson 1: Getting Started with GF=
-
-
-#Lchaptwo
-
-Goals:
-- install and run GF
-- write the first GF grammar: a "Hello World" grammar in three languages
-- use GF for translation and multilingual generation
-
-
-#NEW
-
-==What GF is==
-
-We use the term GF for three different things:
-- a **system** (computer program) used for working with grammars
-- a **programming language** in which grammars can be written
-- a **theory** about grammars and languages
-
-
-The GF system is an implementation
-of the GF programming language, which in turn is built on the ideas of the
-GF theory. 
-
-The focus of this tutorial is on using the GF programming language.
-
-At the same time, we learn the way of thinking in the GF theory. 
-
-We make the grammars run on a computer by 
-using the GF system. 
-
-
-#NEW
-
-==GF grammars and language processing tasks==
-
-A GF program is called a **grammar**. 
-
-A grammar defines a language. 
-
-From this definition, language processing components can be derived:
-- **parsing**: to analyse the language
-- **linearization**: to generate the language
-- **translation**: to analyse one language and generate another
-
-
-In general, a GF grammar is **multilingual**:
-- many languages in one grammar
-- translations between them
-
-
-
-
-
-
-
-#NEW
-
-==Getting the GF system==
-
-Open-source free software, downloaded via the GF Homepage:
-
-[``digitalgrammars.com/gf`` http://digitalgrammars.com/gf/]
-
-There you find
-- binaries for Linux, Mac OS X, and Windows
-- source code and documentation
-- grammar libraries and examples 
-
-
-Many examples in this tutorial are
-[online http://digitalgrammars.com/gf/examples/tutorial].
-
-Normally you don't have to compile GF yourself.
-But, if you do want to compile GF from source follow the
-instructions in the [Developers Guide gf-developers.html].
-
-
-#NEW
-
-==Running the GF system==
-
-Type ``gf`` in the Unix (or Cygwin) shell:
-```
-  % gf
-```
-You will see GF's welcome message and the prompt ``>``.
-The command
-```
-  > help
-```
-will give you a list of available commands.
-
-As a common convention, we will use
-- ``%`` as a prompt that marks system commands
-- ``>`` as a prompt that marks GF commands
-
-
-Thus you should not type these prompts, but only the characters that
-follow them.
-
-
-#NEW
-
-==A "Hello World" grammar==
-
-Like most programming language tutorials, we start with a
-program that prints "Hello World" on the terminal. 
-
-Extra features:
-- **Multilinguality**: the message is printed in many languages.
-- **Reversibility**: in addition to printing, you can **parse** the
-  message and **translate** it to other languages.
-
-
-#NEW
-
-===The program: abstract syntax and concrete syntaxes===
-
-A GF program, in general, is a **multilingual grammar**. Its main parts
-are
-- an **abstract syntax**
-- one or more **concrete syntaxes**
-
-
-The abstract syntax defines what **meanings**
-can be expressed in the grammar
-- //Greetings//, where we greet a //Recipient//, which can be 
-  //World// or //Mum// or //Friends// 
-
-
-
-#NEW
-
-GF code for the abstract syntax:
-```
-  -- a "Hello World" grammar
-  abstract Hello = {
-
-    flags startcat = Greeting ;
-
-    cat Greeting ; Recipient ;
-
-    fun 
-      Hello : Recipient -> Greeting ;
-      World, Mum, Friends : Recipient ;
-  }
-```
-The code has the following parts:
-- a **comment** (optional), saying what the module is doing 
-- a **module header** indicating that it is an abstract syntax
-  module named ``Hello``
-- a **module body** in braces, consisting of
-  - a **startcat flag declaration** stating that ``Greeting`` is the
-    default start category for parsing and generation
-  - **category declarations** introducing two categories, i.e. types of meanings
-  - **function declarations** introducing three meaning-building functions
-
-
-#NEW
-
-English concrete syntax (mapping from meanings to strings):
-```
-  concrete HelloEng of Hello = {
-
-    lincat Greeting, Recipient = {s : Str} ;
-
-    lin 
-      Hello recip = {s = "hello" ++ recip.s} ;
-      World = {s = "world"} ;
-      Mum = {s = "mum"} ;
-      Friends = {s = "friends"} ;
-  }
-```
-The major parts of this code are:
-- a module header indicating that it is a concrete syntax of the abstract syntax
-  ``Hello``, itself named ``HelloEng``
-- a module body in curly brackets, consisting of
-  - **linearization type definitions** stating that 
-    ``Greeting`` and ``Recipient`` are **records** with a **string** ``s``
-  - **linearization definitions** telling what records are assigned to
-    each of the meanings defined in the abstract syntax
-
-
-Notice the concatenation ``++`` and the record projection ``.``.
-
-
-#NEW
-
-Finnish and an Italian concrete syntaxes:
-```
-  concrete HelloFin of Hello = {
-    lincat Greeting, Recipient = {s : Str} ;
-    lin 
-      Hello recip = {s = "terve" ++ recip.s} ;
-      World = {s = "maailma"} ;
-      Mum = {s = "äiti"} ;
-      Friends = {s = "ystävät"} ;
-  }
-
-  concrete HelloIta of Hello = {
-    lincat Greeting, Recipient = {s : Str} ;
-    lin 
-      Hello recip = {s = "ciao" ++ recip.s} ;
-      World = {s = "mondo"} ;
-      Mum = {s = "mamma"} ;
-      Friends = {s = "amici"} ;
-  }
-```
-
-
-#NEW
-
-===Using grammars in the GF system===
-
-In order to compile the grammar in GF,
-we create four files, one for each module, named //Modulename//``.gf``:
-```
-  Hello.gf  HelloEng.gf  HelloFin.gf  HelloIta.gf
-```
-The first GF command: **import** a grammar.
-```
-  > import HelloEng.gf
-```
-All commands also have short names; here:
-```
-  > i HelloEng.gf
-```
-The GF system will **compile** your grammar 
-into an internal representation and show the CPU time was consumed, followed
-by a new prompt:
-```
-  > i HelloEng.gf
-  - compiling Hello.gf...   wrote file Hello.gfo 8 msec
-  - compiling HelloEng.gf...   wrote file HelloEng.gfo 12 msec
-
-  12 msec
-  >
-```
-
-#NEW
-
-You can use GF for **parsing** (``parse`` = ``p``)
-```
-  > parse "hello world"
-  Hello World
-```
-Parsing takes a **string** into an **abstract syntax tree**.
-
-The notation for trees is that of **function application**:
-```
-  function argument1 ... argumentn
-```
-Parentheses are only needed for grouping. 
-
-Parsing something that is not in grammar will fail:
-```
-  > parse "hello dad"
-  Unknown words: dad
-
-  > parse "world hello"
-  no tree found
-```
-
-#NEW
-
-You can also use GF for **linearization** (``linearize = l``). 
-It takes trees into strings:
-```
-  > linearize Hello World
-  hello world
-```
-**Translation**: **pipe** linearization to parsing:
-```
-  > import HelloEng.gf
-  > import HelloIta.gf
-
-  > parse -lang=HelloEng "hello mum" | linearize -lang=HelloIta
-  ciao mamma
-```
-Default of the language flag (``-lang``): the last-imported concrete syntax.
-
-**Multilingual generation**:
-```
-  > parse -lang=HelloEng "hello friends" | linearize
-  terve ystävät
-  ciao amici
-  hello friends
-```
-Linearization is by default to all available languages.
-
-#NEW
-
-===Exercises on the Hello World grammar===
-
-+ Test the parsing and translation examples shown above, as well as
-some other examples, in different combinations of languages.
-
-+ Extend the grammar ``Hello.gf`` and some of the
-concrete syntaxes by five new recipients and one new greeting
-form.
-
-+ Add a concrete syntax for some other
-languages you might know.
-
-+ Add a pair of greetings that are expressed in one and 
-the same way in
-one language and in two different ways in another. 
-For instance, //good morning//
-and //good afternoon// in English are both expressed 
-as //buongiorno// in Italian.
-Test what happens when you translate //buongiorno// to English in GF.
-
-+ Inject errors in the ``Hello`` grammars, for example, leave out
-some line, omit a variable in a ``lin`` rule, or change the name 
-in one occurrence
-of a variable. Inspect the error messages generated by GF.
-
-
-#NEW
-
-==Using grammars from outside GF==
-
-You can use the ``gf`` program in a Unix pipe. 
-- echo a GF command
-- pipe it into GF with grammar names as arguments
-
-
-```
-  % echo "l Hello World" | gf HelloEng.gf HelloFin.gf HelloIta.gf
-```
-You can also write a **script**, a file containing the lines
-```
-  import HelloEng.gf
-  import HelloFin.gf
-  import HelloIta.gf
-  linearize Hello World
-```
-
-
-#NEW
-
-==GF scripts==
-
-If we name this script ``hello.gfs``, we can do
-```
-  $ gf --run <hello.gfs
-
-  ciao mondo
-  terve maailma
-  hello world
-```
-The option ``--run`` removes prompts, CPU time, and other messages. 
-
-See #Rchapeight, for stand-alone programs that don't need the GF system to run.
-
-**Exercise**. (For Unix hackers.) Write a GF application that reads
-an English string from the standard input and writes an Italian
-translation to the output.
-
-
-#NEW
-
-==What else can be done with the grammar==
-
-Some more functions that will be covered:
-- **morphological analysis**: find out the possible inflection forms of words
-- **morphological synthesis**: generate all inflection forms of words
-- **random generation**: generate random expressions
-- **corpus generation**: generate all expressions
-- **treebank generation**: generate a list of trees with their linearizations
-- **teaching quizzes**: train morphology and translation
-- **multilingual authoring**: create a document in many languages simultaneously
-- **speech input**: optimize a speech recognition system for a grammar
-
-
-
-#NEW
-
-==Embedded grammar applications==
-
-Application programs, using techniques from #Rchapeight:
-- compile grammars to new formats, such as speech recognition grammars
-- embed grammars in Java and Haskell programs
-- build applications using compilation and embedding:
-  - voice commands
-  - spoken language translators
-  - dialogue systems
-  - user interfaces
-  - localization: render the messages printed by a program
-    in different languages
-
-
-
-
-#NEW
-
-=Lesson 2: Designing a grammar for complex phrases=
-
-#Lchapthree
-
-Goals:
-- build a larger grammar: phrases about food in English and Italian
-- learn to write reusable library functions ("operations")
-- learn the basics of GF's module system
-
-
-#NEW
-
-
-==The abstract syntax Food==
-
-Phrases usable for speaking about food:
-- the start category is ``Phrase``
-- a ``Phrase`` can be built by assigning a ``Quality`` to an ``Item`` 
-  (e.g. //this cheese is Italian//)
-- an``Item`` is build from a ``Kind`` by prefixing //this// or //that// 
-  (e.g. //this wine//)
-- a ``Kind`` is either **atomic** (e.g. //cheese//), or formed 
-  qualifying a given ``Kind`` with a ``Quality`` (e.g. //Italian cheese//)
-- a ``Quality`` is either atomic (e.g. //Italian//,
-  or built by modifying a given ``Quality`` with the word //very// (e.g. //very warm//)
-
-
-Abstract syntax:
-```
-  abstract Food = {
-
-    flags startcat = Phrase ;
-
-    cat
-      Phrase ; Item ; Kind ; Quality ;
-
-    fun
-      Is : Item -> Quality -> Phrase ;
-      This, That : Kind -> Item ;
-      QKind : Quality -> Kind -> Kind ;
-      Wine, Cheese, Fish : Kind ;
-      Very : Quality -> Quality ;
-      Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
-  }
-```
-Example ``Phrase``
-```
-  Is (This (QKind Delicious (QKind Italian Wine))) (Very (Very Expensive))
-  this delicious Italian wine is very very expensive
-```
-
-
-#NEW
-
-==The concrete syntax FoodEng==
-
-```
-  concrete FoodEng of Food = {
-
-    lincat
-      Phrase, Item, Kind, Quality = {s : Str} ;
-
-    lin
-      Is item quality = {s = item.s ++ "is" ++ quality.s} ;
-      This kind = {s = "this" ++ kind.s} ;
-      That kind = {s = "that" ++ kind.s} ;
-      QKind quality kind = {s = quality.s ++ kind.s} ;
-      Wine = {s = "wine"} ;
-      Cheese = {s = "cheese"} ;
-      Fish = {s = "fish"} ;
-      Very quality = {s = "very" ++ quality.s} ;
-      Fresh = {s = "fresh"} ;
-      Warm = {s = "warm"} ;
-      Italian = {s = "Italian"} ;
-      Expensive = {s = "expensive"} ;
-      Delicious = {s = "delicious"} ;
-      Boring = {s = "boring"} ;
-  }  
-```
-
-#NEW
-
-Test the grammar for parsing:
-```
-  > import FoodEng.gf
-  > parse "this delicious wine is very very Italian"
-  Is (This (QKind Delicious Wine)) (Very (Very Italian))
-```
-Parse in other categories setting the ``cat`` flag:
-```
-  p -cat=Kind "very Italian wine"
-  QKind (Very Italian) Wine
-```
-
-
-#NEW
-
-===Exercises on the Food grammar===
-
-+ Extend the ``Food`` grammar by ten new food kinds and
-qualities, and run the parser with new kinds of examples.
-
-+ Add a rule that enables question phrases of the form 
-//is this cheese Italian//.
-
-+ Enable the optional prefixing of 
-phrases with the words "excuse me but". Do this in such a way that
-the prefix can occur at most once.
-
-
-
-#NEW
-
-==Commands for testing grammars==
-
-===Generating trees and strings===
-
-Random generation (``generate_random = gr``): build
-build a random tree in accordance with an abstract syntax:
-```
-  > generate_random
-  Is (This (QKind Italian Fish)) Fresh
-```
-By using a pipe, random generation can be fed into linearization:
-```
-  > generate_random | linearize
-  this Italian fish is fresh
-```
-Use the ``number`` flag to generate several trees:
-```
-  > gr -number=4 | l
-  that wine is boring
-  that fresh cheese is fresh
-  that cheese is very boring
-  this cheese is Italian
-```
-
-#NEW
-
-To generate //all// phrases that a grammar can produce,
-use ``generate_trees = gt``.
-```
-  > generate_trees | l
-  that cheese is very Italian
-  that cheese is very boring
-  that cheese is very delicious
-  ...
-  this wine is fresh
-  this wine is warm
-```
-The default **depth** is 3; the depth can be
-set by using the ``depth`` flag:
-```
-  > generate_trees -depth=2 | l
-```
-What options a command has can be seen by the ``help = h`` command:
-```
-  > help gr
-  > help gt
-```
-
-
-#NEW
-
-===Exercises on generation===
-
-+ If the command ``gt`` generated all
-trees in your grammar, it would never terminate. Why?
-
-+ Measure how many trees the grammar gives with depths 4 and 5,
-respectively. **Hint**. You can 
-use the Unix **word count** command ``wc`` to count lines.
-
-
-
-#NEW
-
-===More on pipes: tracing===
-
-Put the **tracing** option ``-tr`` to each command whose output you
-want to see:
-```
-  > gr -tr | l -tr | p
-
-  Is (This Cheese) Boring
-  this cheese is boring
-  Is (This Cheese) Boring  
-```
-Useful for test purposes: the pipe above can show
-if a grammar is **ambiguous**, i.e.
-contains strings that can be parsed in more than one way.
-
-**Exercise**. Extend the ``Food`` grammar so that it produces ambiguous 
-strings, and try out the ambiguity test.
-
-
-#NEW
-
-===Writing and reading files===
-
-To save the outputs into a file, pipe it to the ``write_file = wf`` command,
-```
-  > gr -number=10 | linearize | write_file -file=exx.tmp
-```
-To read a file to GF, use the ``read_file = rf`` command,
-```
-  > read_file -file=exx.tmp -lines | parse
-```
-The flag ``-lines`` tells GF to read each line of the file separately. 
-
-Files with examples can be used for **regression testing**
-of grammars - the most systematic way to do this is by
-**treebanks**; see #Rsectreebank.
-
-
-#NEW
-
-===Visualizing trees===
-
-Parentheses give a linear representation of trees,
-useful for the computer. 
-
-Human eye may prefer to see a visualization: ``visualize_tree = vt``:
-``` 
-  > parse "this delicious cheese is very Italian" | visualize_tree
-```
-The tree is generated in postscript (``.ps``) file. The ``-view`` option is used for
-telling what command to use to view the file. Its default is ``"gv"``, which works
-on most Linux installations. On a Mac, one would probably write
-``` 
-  > parse "this delicious cheese is very Italian" | visualize_tree -view="open"
-```
-
-
-
-#MYTREE
-
-This command uses the program [Graphviz http://www.graphviz.org/], which you
-might not have, but which are freely available on the web.
-
-You can save the temporary file ``_grph.dot``, 
-which the command ``vt`` produces. 
-
-Then you can process this file with the ``dot`` 
-program (from the Graphviz package).
-```
-  % dot -Tpng _grph.dot > mytree.png
-```
-
-
-#NEW
-
-===System commands===
-
-You can give a **system command** without leaving GF:
-``!`` followed by a Unix command,
-```
-  > ! dot -Tpng grphtmp.dot > mytree.png
-  > ! open mytree.png
-```
-A system command may also receive its argument from
-a GF pipes. It then has the name ``sp`` = ``system_pipe``:
-```
-  > generate_trees -depth=4 | sp -command="wc -l"
-```
-This command example returns the number of generated trees.
-
-
-**Exercise**.
-Measure how many trees the grammar ``FoodEng`` gives with depths 4 and 5,
-respectively. Use the Unix **word count** command ``wc`` to count lines, and
-a system pipe from a GF command into a Unix command.
-
-
-
-
-
-#NEW
-
-==An Italian concrete syntax==
-
-#Lsecanitalian
-
-Just (?) replace English words with their dictionary equivalents:
-```
-  concrete FoodIta of Food = {
-
-    lincat
-      Phrase, Item, Kind, Quality = {s : Str} ;
-
-    lin
-      Is item quality = {s = item.s ++ "è" ++ quality.s} ;
-      This kind = {s = "questo" ++ kind.s} ;
-      That kind = {s = "quel" ++ kind.s} ;
-      QKind quality kind = {s = kind.s ++ quality.s} ;
-      Wine = {s = "vino"} ;
-      Cheese = {s = "formaggio"} ;
-      Fish = {s = "pesce"} ;
-      Very quality = {s = "molto" ++ quality.s} ;
-      Fresh = {s = "fresco"} ;
-      Warm = {s = "caldo"} ;
-      Italian = {s = "italiano"} ;
-      Expensive = {s = "caro"} ;
-      Delicious = {s = "delizioso"} ;
-      Boring = {s = "noioso"} ;
-  }
-```
-
-
-#NEW
-
-Not just replacing words:
-
-The order of a quality and the kind it modifies is changed in
-```
-    QKind quality kind = {s = kind.s ++ quality.s} ;
-```
-Thus Italian says ``vino italiano`` for ``Italian wine``. 
-
-(Some Italian adjectives
-are put before the noun. This distinction can be controlled by parameters, 
-which are introduced in #Rchapfour.)
-
-#NEW
-
-===Exercises on multilinguality===
-
-+ Write a concrete syntax of ``Food`` for some other language.
-You will probably end up with grammatically incorrect 
-linearizations - but don't
-worry about this yet.
-
-+ If you have written ``Food`` for German, Swedish, or some
-other language, test with random or exhaustive generation what constructs
-come out incorrect, and prepare a list of those ones that cannot be helped
-with the currently available fragment of GF. You can return to your list
-after having worked out #Rchapfour.
-
-
-
-
-#NEW
-
-==Free variation==
-
-Semantically indistinguishable ways of expressing a thing.
-
-The **variants** construct of GF expresses free variation. For example,
-```
-  lin Delicious = {s = "delicious" | "exquisit" | "tasty"} ;
-```
-By default, the ``linearize`` command
-shows only the first variant from such lists; to see them
-all, use the option ``-all``:
-```
-  > p "this exquisit wine is delicious" | l -all
-  this delicious wine is delicious
-  this delicious wine is exquisit
-  ...
-```
-
-#NEW
-
-An equivalent notation for variants is
-```
-  lin Delicious = {s = variants {"delicious" ; "exquisit" ; "tasty"}} ;
-```
-This notation also allows the limiting case: an empty variant list,
-```
-  variants {}
-```
-It can be used e.g. if a word lacks a certain inflection form. 
-
-Free variation works for all types in concrete syntax; all terms in
-a variant list must be of the same type.
-
-
-#NEW
-
-==More application of multilingual grammars==
-
-===Multilingual treebanks===
-
-#Lsectreebank
-
-**Multilingual treebank**: a set of trees with their
-linearizations in different languages:
-```
-  > gr -number=2 | l -treebank
-
-  Is (That Cheese) (Very Boring)
-  quel formaggio è molto noioso
-  that cheese is very boring
-
-  Is (That Cheese) Fresh
-  quel formaggio è fresco
-  that cheese is fresh
-```
-
-
-
-#NEW
-
-===Translation quiz===
-
-``translation_quiz = tq``:
-generate random sentences, display them in one language, and check the user's
-answer given in another language. 
-```
-  > translation_quiz -from=FoodEng -to=FoodIta
-
-  Welcome to GF Translation Quiz.
-  The quiz is over when you have done at least 10 examples
-  with at least 75 % success.
-  You can interrupt the quiz by entering a line consisting of a dot ('.').
-
-  this fish is warm
-  questo pesce è caldo
-  > Yes.
-  Score 1/1
-
-  this cheese is Italian
-  questo formaggio è noioso
-  > No, not questo formaggio è noioso, but
-  questo formaggio è italiano
-
-  Score 1/2
-  this fish is expensive
-```
-
-
-
-#NEW
-
-==Context-free grammars and GF==
-
-===The "cf" grammar format===
-
-The grammar ``FoodEng`` can be written in a BNF format as follows:
-```
-  Is.        Phrase  ::= Item "is" Quality ;
-  That.      Item    ::= "that" Kind ;
-  This.      Item    ::= "this" Kind ;
-  QKind.     Kind    ::= Quality Kind ;
-  Cheese.    Kind    ::= "cheese" ;
-  Fish.      Kind    ::= "fish" ;
-  Wine.      Kind    ::= "wine" ;
-  Italian.   Quality ::= "Italian" ;
-  Boring.    Quality ::= "boring" ;
-  Delicious. Quality ::= "delicious" ;
-  Expensive. Quality ::= "expensive" ;
-  Fresh.     Quality ::= "fresh" ;
-  Very.      Quality ::= "very" Quality ;
-  Warm.      Quality ::= "warm" ;
-```
-GF can convert BNF grammars into GF. 
-BNF files are recognized by the file name suffix ``.cf`` (for **context-free**): 
-```
-  > import food.cf
-```
-The compiler creates separate abstract and concrete modules internally.
-
-
-#NEW
-
-===Restrictions of context-free grammars===
-
-Separating concrete and abstract syntax allows
-three deviations from context-free grammar:
-- **permutation**: changing the order of constituents
-- **suppression**: omitting constituents
-- **reduplication**: repeating constituents
-
-
-**Exercise**. Define the non-context-free
-copy language ``{x x | x <- (a|b)*}`` in GF.
-
-
-
-#NEW
-
-%--!
-==Modules and files==
-
-GF uses suffixes to recognize different file formats:
-- Source files: //Modulename//``.gf``
-- Target files: //Modulename//``.gfo``
-
-
-Importing generates target from source:
-```
-  > i FoodEng.gf
-  - compiling Food.gf...   wrote file Food.gfo 16 msec
-  - compiling FoodEng.gf...   wrote file FoodEng.gfo 20 msec
-```
-The ``.gfo`` format (="GF Object") is precompiled GF, which is
-faster to load than source GF (``.gf``).
-
-When reading a module, GF decides whether
-to use an existing ``.gfo`` file or to generate
-a new one, by looking at modification times.
-
-
-#NEW
-
-**Exercise**.  What happens when you import ``FoodEng.gf`` for 
-a second time? Try this in different situations:
-- Right after importing it the first time (the modules are kept in
-  the memory of GF and need no reloading).
-- After issuing the command ``empty`` (``e``), which clears the memory
-  of GF.
-- After making a small change in ``FoodEng.gf``, be it only an added space.
-- After making a change in ``Food.gf``.
-
-
-
-#NEW
-
-==Using operations and resource modules==
-
-===Operation definitions===
-
-The golden rule of functional programmin:
-
-//Whenever you find yourself programming by copy-and-paste, write a function instead.//
-
-Functions in concrete syntax are defined using the keyword ``oper`` (for
-**operation**), distinct from ``fun`` for the sake of clarity.
-
-Example:
-```
-  oper ss : Str -> {s : Str} = \x -> {s = x} ;
-```
-The operation can be **applied** to an argument, and GF will
-**compute** the value:
-```
-  ss "boy" ===> {s = "boy"}
-```
-The symbol ``===>`` will be used for computation.
-
-
-#NEW
-
-Notice the **lambda abstraction** form 
-- ``\``//x// ``->`` //t//
-
-
-This is read:
-- function with variable //x// and **function body** //t//
-
-
-For lambda abstraction with multiple arguments, we have the shorthand
-```
-  \x,y -> t   ===  \x -> \y -> t
-```
-Linearization rules actually use syntactic
-sugar for abstraction:
-```
-  lin f x = t   ===  lin f = \x -> t
-```
-
-
-
-#NEW
-
-%--!
-===The ``resource`` module type===
-
-The ``resource`` module type is used to package
-``oper`` definitions into reusable resources. 
-```
-  resource StringOper = {
-    oper
-      SS : Type = {s : Str} ;
-      ss : Str -> SS = \x -> {s = x} ;
-      cc : SS -> SS -> SS = \x,y -> ss (x.s ++ y.s) ;
-      prefix : Str -> SS -> SS = \p,x -> ss (p ++ x.s) ;
-  }
-```
-
-
-#NEW
-
-%--!
-===Opening a resource===
-
-Any number of ``resource`` modules can be
-**open**ed in a ``concrete`` syntax.
-```
-  concrete FoodEng of Food = open StringOper in {
-
-    lincat
-      S, Item, Kind, Quality = SS ;
-
-    lin
-      Is item quality = cc item (prefix "is" quality) ;
-      This k = prefix "this" k ;
-      That k = prefix "that" k ;
-      QKind k q = cc k q ;
-      Wine = ss "wine" ;
-      Cheese = ss "cheese" ;
-      Fish = ss "fish" ;
-      Very = prefix "very" ;
-      Fresh = ss "fresh" ;
-      Warm = ss "warm" ;
-      Italian = ss "Italian" ;
-      Expensive = ss "expensive" ;
-      Delicious = ss "delicious" ;
-      Boring = ss "boring" ;
-  }
-```
-
-
-#NEW
-
-%--!
-===Partial application===
-
-#Lsecpartapp
-
-The rule
-```
-  lin This k = prefix "this" k ;
-```
-can be written more concisely
-```
-  lin This = prefix "this" ;
-```
-Part of the art in functional programming: 
-decide the order of arguments in a function, 
-so that partial application can be used as much as possible. 
-
-For instance, ``prefix`` is typically applied to 
-linearization variables with constant strings. Hence we
-put the ``Str`` argument before the ``SS`` argument.
-
-
-**Exercise**. Define an operation ``infix`` analogous to ``prefix``,
-such that it allows you to write
-```
-  lin Is = infix "is" ;
-```
-
-
-#NEW
-
-===Testing resource modules===
-
-Import with the flag ``-retain``, 
-```
-  > import -retain StringOper.gf
-```
-Compute the value with ``compute_concrete = cc``,
-```
-  > compute_concrete prefix "in" (ss "addition")
-  {s : Str = "in" ++ "addition"}
-```
-
-
-#NEW
-
-==Grammar architecture==
-
-#Lsecarchitecture
-
-===Extending a grammar===
-
-A new module can **extend** an old one:
-```
-  abstract Morefood = Food ** {
-    cat
-      Question ;
-    fun
-      QIs : Item -> Quality -> Question ;
-      Pizza : Kind ;      
-  }
-```
-Parallel to the abstract syntax, extensions can
-be built for concrete syntaxes:
-```
-  concrete MorefoodEng of Morefood = FoodEng ** {
-    lincat
-      Question = {s : Str} ;
-    lin
-      QIs item quality = {s = "is" ++ item.s ++ quality.s} ;
-      Pizza = {s = "pizza"} ;
-  }
-```
-The effect of extension: all of the contents of the extended
-and extending modules are put together. 
-
-In other words: the new module **inherits** the contents of the old module.
-
-#NEW
-
-Simultaneous extension and opening:
-```
-  concrete MorefoodIta of Morefood = FoodIta ** open StringOper in {
-    lincat
-      Question = SS ;
-    lin
-      QIs item quality = ss (item.s ++ "è" ++ quality.s) ;
-      Pizza = ss "pizza" ;
-  }
-```
-Resource modules can extend other resource modules - thus it is 
-possible to build resource hierarchies.
-
-
-
-#NEW
-
-===Multiple inheritance===
-
-Extend several grammars at the same time:
-```
-  abstract Foodmarket = Food, Fruit, Mushroom ** {
-    fun 
-      FruitKind    : Fruit    -> Kind ;
-      MushroomKind : Mushroom -> Kind ;
-    }
-```
-where
-```
-  abstract Fruit = {
-    cat Fruit ;
-    fun Apple, Peach : Fruit ;
-  }
-
-  abstract Mushroom = {
-    cat Mushroom ;
-    fun Cep, Agaric : Mushroom ;
-  }
-```
-
-**Exercise**. Refactor ``Food`` by taking apart ``Wine`` into a special
-``Drink`` module.
-
-
-
-#NEW
-
-=Lesson 3: Grammars with parameters=
-
-#Lchapfour
-
-Goals:
-- implement sophisticated linguistic structures:
-  - morphology: the inflection of words
-  - agreement: rules for selecting word forms in syntactic combinations
-
-
-- Cover all GF constructs for concrete syntax
-
-
-It is possible to skip this chapter and go directly
-to the next, since the use of the GF Resource Grammar library
-makes it unnecessary to use parameters: they 
-could be left to library implementors.
-
-
-#NEW
-
-==The problem: words have to be inflected==
-
-Plural forms are needed in things like
-#BEQU
-//these Italian wines are delicious//
-#ENQU
-This requires two things:
-- the **inflection** of nouns and verbs in singular and plural
-- the **agreement** of the verb to subject: 
-  the verb must have the same number as the subject
-
-
-Different languages have different types of inflection and agreement.
-- Italian has also gender (masculine vs. feminine).
-
-
-
-In a multilingual grammar,
-we want to ignore such distinctions in abstract syntax.
-
-**Exercise**. Make a list of the possible forms that nouns,
-adjectives, and verbs can have in some languages that you know.
-
-
-#NEW
-
-==Parameters and tables==
-
-We define the **parameter type** of number in English by
-a new form of judgement:
-```
-  param Number = Sg | Pl ;
-```
-This judgement defines the parameter type ``Number`` by listing
-its two **constructors**, ``Sg`` and ``Pl`` 
-(singular and plural). 
-
-We give ``Kind`` a linearization type that has a **table** depending on number:
-```
-  lincat Kind = {s : Number => Str} ;
-```
-The **table type** ``Number => Str`` is similar a function type 
-(``Number -> Str``). 
-
-Difference: the argument must be a parameter type. Then
-the argument-value pairs can be listed in a finite table. 
-
-#NEW
-
-Here is a table:
-```
-  lin Cheese = {
-    s = table {
-      Sg => "cheese" ;
-      Pl => "cheeses"
-    }
-  } ;
-```
-The table has **branches**, with a **pattern** on the
-left of the arrow ``=>`` and a **value** on the right.
-
-The application of a table is done by the **selection** operator ``!``. 
-
-It which is computed by **pattern matching**: return
-the value from the first branch whose pattern matches the
-argument. For instance,
-```
-   table {Sg => "cheese" ; Pl => "cheeses"} ! Pl 
-   ===> "cheeses"
-```
-
-#NEW
-
-**Case expressions** are syntactic sugar:
-```
-  case e of {...} ===  table {...} ! e
-```
-Since they are familiar to Haskell and ML programmers, they can come out handy
-when writing GF programs.
-
-
-#NEW
-
-Constructors can take arguments from other parameter types. 
-
-Example: forms of English verbs (except //be//):
-```
-  param VerbForm = VPresent Number | VPast | VPastPart | VPresPart ;
-```
-Fact expressed: only present tense has number variation. 
-
-Example table: the forms of the verb //drink//:
-```
-  table {
-    VPresent Sg => "drinks" ;
-    VPresent Pl => "drink" ;
-    VPast       => "drank" ;
-    VPastPart   => "drunk" ;
-    VPresPart   => "drinking"
-    }
-``` 
-
-
-**Exercise**. In an earlier exercise (previous section), 
-you made a list of the possible 
-forms that nouns, adjectives, and verbs can have in some languages that 
-you know. Now take some of the results and implement them by
-using parameter type definitions and tables. Write them into a ``resource``
-module, which you can test by using the command ``compute_concrete``.
-
-
-
-#NEW
-
-==Inflection tables and paradigms==
-
-A morphological **paradigm** is a formula telling how a class of 
-words is inflected.
-
-From the GF point of view, a paradigm is a function that takes 
-a **lemma** (also known as a **dictionary form**, or a **citation form**) and 
-returns an inflection table. 
-
-The following operation defines the regular noun paradigm of English:
-```
-  oper regNoun : Str -> {s : Number => Str} = \dog -> {
-    s = table {
-      Sg => dog ;
-      Pl => dog + "s"
-      }
-    } ;
-```
-The **gluing** operator ``+`` glues strings to one **token**:
-```
-  (regNoun "cheese").s ! Pl  ===> "cheese" + "s"  ===>  "cheeses"
-```
-
-
-#NEW
-
-A more complex example: regular verbs,
-```
-  oper regVerb : Str -> {s : VerbForm => Str} = \talk -> {
-    s = table {
-      VPresent Sg => talk + "s" ;
-      VPresent Pl => talk ;
-      VPresPart   => talk + "ing" ;
-      _           => talk + "ed"
-      }
-    } ;
-```
-The catch-all case for the past tense and the past participle
-uses a **wild card** pattern ``_``. 
-
-
-#NEW
-
-===Exercises on morphology===
-
-+ Identify cases in which the ``regNoun`` paradigm does not
-apply in English, and implement some alternative paradigms.
-
-+ Implement some regular paradigms for other languages you have
-considered in earlier exercises.
-
-
-
-#NEW
-
-==Using parameters in concrete syntax==
-
-Purpose: a more radical
-variation between languages
-than just the use of different words and word orders. 
-
-We add to the grammar ``Food`` two rules for forming plural items:
-```
-  fun These, Those : Kind -> Item ;
-```
-We also add a noun which in Italian has the feminine case:
-```
-  fun Pizza : Kind ;
-```
-This will force us to deal with gender- 
-
-
-#NEW
-
-%--!
-===Agreement===
-
-In English, the phrase-forming rule
-```
-  fun Is : Item -> Quality -> Phrase ;
-```
-is affected by the number because of **subject-verb agreement**:
-the verb of a sentence must be inflected in the number of the subject,
-```
-  Is (This Pizza) Warm   ===>  "this pizza is warm"
-  Is (These Pizza) Warm  ===>  "these pizzas are warm"
-```
-It is the **copula** (the verb //be//) that is affected:
-```
-  oper copula : Number -> Str = \n -> 
-    case n of {
-      Sg => "is" ;
-      Pl => "are"
-      } ;
-```
-The **subject** ``Item`` must have such a number to provide to the copula:
-```
-  lincat Item = {s : Str ; n : Number} ;
-```
-Now we can write
-```
-  lin Is item qual = {s = item.s ++ copula item.n ++ qual.s} ;
-```
-
-
-
-#NEW
-
-===Determiners===
-
-How does an ``Item`` subject receive its number? The rules
-```
-  fun This, These : Kind -> Item ;
-```
-add **determiners**, either //this// or //these//, which
-require different //this pizza// vs.
-//these pizzas//. 
-
-Thus ``Kind`` must have both singular and plural forms:
-```
-  lincat Kind = {s : Number => Str} ;
-```
-We can write
-```
-  lin This kind = {
-    s = "this" ++ kind.s ! Sg ; 
-    n = Sg
-  } ; 
-
-  lin These kind = {
-    s = "these" ++ kind.s ! Pl ; 
-    n = Pl
-  } ; 
-```
-
-
-#NEW
-
-To avoid copy-and-paste, we can factor out the pattern of determination,
-```
-  oper det : 
-    Str -> Number -> {s : Number => Str} -> {s : Str ; n : Number} = 
-      \det,n,kind -> {
-      s = det ++ kind.s ! n ; 
-      n = n
-    } ; 
-```
-Now we can write
-```
-  lin This  = det Sg "this" ;
-  lin These = det Pl "these" ;
-```
-In a more **lexicalized** grammar, determiners would be a category:
-```
-  lincat Det = {s : Str ; n : Number} ;
-  fun Det : Det -> Kind -> Item ;
-  lin Det det kind = {
-      s = det.s ++ kind.s ! det.n ; 
-      n = det.n
-    } ; 
-```
-
-
-#NEW
-
-===Parametric vs. inherent features===
-
-``Kind``s have number as a **parametric feature**: both singular and plural
-can be formed,
-```
-  lincat Kind = {s : Number => Str} ;
-```
-``Item``s have number as an **inherent feature**: they are inherently either
-singular or plural,
-```
-  lincat Item = {s : Str ; n : Number} ;
-```
-Italian ``Kind`` will have parametric number and inherent gender:
-```
-  lincat Kind = {s : Number => Str ; g : Gender} ;
-```
-
-
-#NEW
-
-Questions to ask when designing parameters:
-- existence: what forms are possible to build by morphological and
-  other means?
-- need: what features are expected via agreement or government?
-
-
-Dictionaries give good advice:
-#BEQU
-**uomo**, pl. //uomini//, n.m. "man"
-#ENQU
-tells that //uomo// is a masculine noun with the plural form //uomini//.
-Hence, parametric number and an inherent gender.
-
-For words, inherent features are usually given as lexical information.
-
-For combinations, they are //inherited// from some part of the construction
-(typically the one called the **head**). Italian modification:
-```
-  lin QKind qual kind = 
-    let gen = kind.g in {
-      s = table {n => kind.s ! n ++ qual.s ! gen ! n} ;
-      g = gen
-      } ;
-```
-Notice 
-- **local definition** (``let`` expression)
-- **variable pattern** ``n``
-
-
-
-#NEW
-
-==An English concrete syntax for Foods with parameters==
-
-We use some string operations from the library ``Prelude`` are used. 
-```
-   concrete FoodsEng of Foods = open Prelude in {
-
-  lincat
-    S, Quality = SS ; 
-    Kind = {s : Number => Str} ; 
-    Item = {s : Str ; n : Number} ; 
-
-  lin
-    Is item quality = ss (item.s ++ copula item.n ++ quality.s) ;
-    This  = det Sg "this" ;
-    That  = det Sg "that" ;
-    These = det Pl "these" ;
-    Those = det Pl "those" ;
-    QKind quality kind = {s = table {n => quality.s ++ kind.s ! n}} ;
-    Wine = regNoun "wine" ;
-    Cheese = regNoun "cheese" ;
-    Fish = noun "fish" "fish" ;
-    Pizza = regNoun "pizza" ;
-    Very = prefixSS "very" ;
-    Fresh = ss "fresh" ;
-    Warm = ss "warm" ;
-    Italian = ss "Italian" ;
-    Expensive = ss "expensive" ;
-    Delicious = ss "delicious" ;
-    Boring = ss "boring" ;
-```
-
-#NEW
-
-```
-  param
-    Number = Sg | Pl ;
-
-  oper
-    det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} = 
-      \n,d,cn -> {
-        s = d ++ cn.s ! n ;
-        n = n
-      } ;
-    noun : Str -> Str -> {s : Number => Str} = 
-      \man,men -> {s = table {
-        Sg => man ;
-        Pl => men 
-        }
-      } ;
-    regNoun : Str -> {s : Number => Str} = 
-      \car -> noun car (car + "s") ;
-    copula : Number -> Str = 
-      \n -> case n of {
-        Sg => "is" ;
-        Pl => "are"
-        } ;
-  }    
-```
-
-#NEW
-
-==More on inflection paradigms==
-
-#Lsecinflection
-
-Let us extend the English noun paradigms so that we can
-deal with all nouns, not just the regular ones. The goal is to
-provide a morphology module that makes it easy to
-add words to a lexicon. 
-
-
-#NEW
-
-===Worst-case functions===
-
-We perform **data abstraction** from the type
-of nouns by writing a a **worst-case function**:
-```
-  oper Noun : Type = {s : Number => Str} ;
-
-  oper mkNoun : Str -> Str -> Noun = \x,y -> {
-    s = table {
-      Sg => x ;
-      Pl => y
-      }
-    } ;
-
-  oper regNoun : Str -> Noun = \x -> mkNoun x (x + "s") ;
-```
-Then we can define
-```
-  lincat N = Noun ;
-  lin Mouse = mkNoun "mouse" "mice" ;
-  lin House = regNoun "house" ;
-```
-where the underlying types are not seen.
-
-#NEW
-
-We are free to change the undelying definitions, e.g.
-add **case** (nominative or genitive) to noun inflection:
-```
-  param Case = Nom | Gen ;
-
-  oper Noun : Type = {s : Number => Case => Str} ;
-```
-Now we have to redefine the worst-case function
-```
-  oper mkNoun : Str -> Str -> Noun = \x,y -> {
-    s = table {
-      Sg => table {
-        Nom => x ;
-        Gen => x + "'s"
-        } ;
-      Pl => table {
-        Nom => y ;
-        Gen => y + case last y of {
-          "s" => "'" ;
-          _   => "'s"
-        }
-      }
-    } ;
-```
-But up from this level, we can retain the old definitions
-```
-  lin Mouse = mkNoun "mouse" "mice" ;
-  oper regNoun : Str -> Noun = \x -> mkNoun x (x + "s") ;
-```
-
-
-
-#NEW
-
-In the last definition of ``mkNoun``, we used a case expression
-on the last character of the plural, as well as the ``Prelude`` 
-operation
-```
-  last : Str -> Str ;
-```
-returning the string consisting of the last character.
-
-The case expression uses **pattern matching over strings**, which
-is supported in GF, alongside with pattern matching over
-parameters.
-
-
-
-#NEW
-
-===Smart paradigms===
-
-The regular //dog//-//dogs// paradigm has
-predictable variations:
-- nouns ending with an //y//: //fly//-//flies//, except if
-  a vowel precedes the //y//: //boy//-//boys//
-- nouns ending with //s//, //ch//, and a number of
-  other endings: //bus//-//buses//, //leech//-//leeches//
-
-
-We could provide alternative paradigms:
-```
-  noun_y : Str -> Noun = \fly -> mkNoun fly (init fly + "ies") ;  
-  noun_s : Str -> Noun = \bus -> mkNoun bus (bus + "es") ;
-```
-(The Prelude function ``init`` drops the last character of a token.)
-
-Drawbacks: 
-- it can be difficult to select the correct paradigm
-- it can be difficult to remember the names of the different paradigms
-
-
-#NEW
-
-Better solution: a **smart paradigm**:
-```
-  regNoun : Str -> Noun = \w -> 
-    let 
-      ws : Str = case w of {
-        _ + ("a" | "e" | "i" | "o") + "o" => w + "s" ;  -- bamboo
-        _ + ("s" | "x" | "sh" | "o")      => w + "es" ; -- bus, hero
-        _ + "z"                           => w + "zes" ;-- quiz 
-        _ + ("a" | "e" | "o" | "u") + "y" => w + "s" ;  -- boy
-        x + "y"                           => x + "ies" ;-- fly
-        _                                 => w + "s"    -- car
-        } 
-    in 
-    mkNoun w ws
-```
-GF has **regular expression patterns**:
-- **disjunctive patterns**  //P// ``|`` //Q//
-- **concatenation patterns** //P// ``+`` //Q//
-
-
-The patterns are ordered in such a way that, for instance, 
-the suffix ``"oo"`` prevents //bamboo// from matching the suffix
-``"o"``.
-
-
-#NEW
-
-===Exercises on regular patterns===
-
-+ The same rules that form plural nouns in English also
-apply in the formation of third-person singular verbs. 
-Write a regular verb paradigm that uses this idea, but first
-rewrite ``regNoun`` so that the analysis needed to build //s//-forms
-is factored out as a separate ``oper``, which is shared with
-``regVerb``.
-
-+ Extend the verb paradigms to cover all verb forms
-in English, with special care taken of variations with the suffix
-//ed// (e.g. //try//-//tried//, //use//-//used//).
-
-+ Implement the German **Umlaut** operation on word stems.
-The operation changes the vowel of the stressed stem syllable as follows:
-//a// to //ä//, //au// to //äu//, //o// to //ö//, and //u// to //ü//. You
-can assume that the operation only takes syllables as arguments. Test the
-operation to see whether it correctly changes //Arzt// to //Ärzt//,
-//Baum// to //Bäum//, //Topf// to //Töpf//, and //Kuh// to //Küh//.
-
-
-
-#NEW
-
-===Function types with variables===
-
-In #Rchapsix, **dependent function types** need a notation
-that binds a variable to the argument type, as in
-```
-  switchOff : (k : Kind) -> Action k
-```
-Function types //without// variables are actually a shorthand:
-```
-  PredVP : NP -> VP -> S
-```
-means
-```
-  PredVP : (x : NP) -> (y : VP) -> S
-```
-or any other naming of the variables.
-
-
-#NEW
-
-Sometimes variables shorten the code, since they can share a type:
-```
-  octuple : (x,y,z,u,v,w,s,t : Str) -> Str
-```
-If a bound variable is not used, it can be replaced by a wildcard:
-```
-  octuple : (_,_,_,_,_,_,_,_ : Str) -> Str
-```
-A good practice is to indicate the number of arguments:
-```
-  octuple : (x1,_,_,_,_,_,_,x8 : Str) -> Str
-```
-For inflection paradigms, it is handy to use heuristic variable names,
-looking like the expected forms:
-```
-  mkNoun : (mouse,mice : Str) -> Noun
-```
-
-
-#NEW
-
-===Separating operation types and definitions===
-
-In librarues, it is useful to group type signatures separately from
-definitions. It is possible to divide an ``oper`` judgement, 
-```
-  oper regNoun : Str -> Noun ;
-  oper regNoun s = mkNoun s (s + "s") ;
-```
-and put the parts in different places.
-
-With the ``interface`` and ``instance`` module types
-(see #Rsecinterface): the parts can even be put to different files.
-
-
-#NEW
-
-===Overloading of operations===
-
-**Overloading**: different functions can be given the same name, as e.g. in C++.
-
-The compiler performs **overload resolution**, which works as long as the
-functions have different types.
-
-In GF, the functions must be grouped together in ``overload`` groups. 
-
-Example: different ways to define nouns in English:
-```
-  oper mkN : overload {
-    mkN : (dog : Str) -> Noun ;         -- regular nouns
-    mkN : (mouse,mice : Str) -> Noun ;  -- irregular nouns
-  }
-```
-Cf. dictionaries: if the
-word is regular, just one form is needed. If it is irregular,
-more forms are given. 
-
-The definition can be given separately, or at the same time, as the types:
-```
-  oper mkN = overload {
-    mkN : (dog : Str) -> Noun = regNoun ;
-    mkN : (mouse,mice : Str) -> Noun = mkNoun ;
-  }
-```
-**Exercise**. Design a system of English verb paradigms presented by
-an overload group.
-
-
-#NEW
-
-===Morphological analysis and morphology quiz===
-
-The command ``morpho_analyse = ma``
-can be used to read a text and return for each word its analyses
-(in the current grammar):
-```
-  > read_file bible.txt | morpho_analyse
-```
-The command ``morpho_quiz = mq`` generates inflection exercises. 
-```
-  % gf -path=alltenses:prelude $GF_LIB_PATH/alltenses/IrregFre.gfc
-
-  > morpho_quiz -cat=V
-
-  Welcome to GF Morphology Quiz.
-  ...
-
-  réapparaître : VFin VCondit  Pl  P2
-  réapparaitriez
-  > No, not réapparaitriez, but
-  réapparaîtriez
-  Score 0/1
-```
-To create a list for later use, use the command ``morpho_list = ml``
-```
-  > morpho_list -number=25 -cat=V | write_file exx.txt
-```
-
-
-
-
-#NEW
-
-==The Italian Foods grammar==
-
-#Lsecitalian
-
-Parameters include not only number but also gender.
-```
-concrete FoodsIta of Foods = open Prelude in {
-
-  param
-    Number = Sg | Pl ;
-    Gender = Masc | Fem ;
-```
-Qualities are inflected for gender and number, whereas kinds
-have a parametric number and an inherent gender.
-Items have an inherent number and gender.
-```
-  lincat
-    Phr = SS ; 
-    Quality = {s : Gender => Number => Str} ; 
-    Kind = {s : Number => Str ; g : Gender} ; 
-    Item = {s : Str ; g : Gender ; n : Number} ; 
-```
-
-#NEW
-
-A Quality is an adjective, with one form for each gender-number combination.
-```
-  oper
-    adjective : (_,_,_,_ : Str) -> {s : Gender => Number => Str} = 
-      \nero,nera,neri,nere -> {
-        s = table {
-          Masc => table {
-            Sg => nero ;
-            Pl => neri
-            } ; 
-          Fem => table {
-            Sg => nera ;
-            Pl => nere
-            }
-          }
-      } ;
-```
-Regular adjectives work by adding endings to the stem.
-```
-    regAdj : Str -> {s : Gender => Number => Str} = \nero ->
-      let ner = init nero 
-      in adjective nero (ner + "a") (ner + "i") (ner + "e") ;
-```
-
-#NEW
-
-For noun inflection, we are happy to give the two forms and the gender 
-explicitly:
-```
-    noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = 
-      \vino,vini,g -> {
-        s = table {
-          Sg => vino ;
-          Pl => vini
-          } ;
-        g = g
-      } ;
-```
-We need only number variation for the copula.
-```
-    copula : Number -> Str = 
-      \n -> case n of {
-        Sg => "è" ;
-        Pl => "sono"
-        } ;
-```
-
-#NEW
-
-Determination is more complex than in English, because of gender:
-```
-    det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} -> 
-        {s : Str ; g : Gender ; n : Number} = 
-      \n,m,f,cn -> {
-        s = case cn.g of {Masc => m ; Fem => f} ++ cn.s ! n ;
-        g = cn.g ;
-        n = n
-      } ;
-```
-
-
-#NEW
-
-The complete set of linearization rules:
-```
-  lin
-    Is item quality = 
-      ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n) ;
-    This  = det Sg "questo" "questa" ;
-    That  = det Sg "quel"   "quella" ;
-    These = det Pl "questi" "queste" ;
-    Those = det Pl "quei"   "quelle" ;
-    QKind quality kind = {
-      s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ;
-      g = kind.g
-      } ;
-    Wine = noun "vino" "vini" Masc ;
-    Cheese = noun "formaggio" "formaggi" Masc ;
-    Fish = noun "pesce" "pesci" Masc ;
-    Pizza = noun "pizza" "pizze" Fem ;
-    Very qual = {s = \\g,n => "molto" ++ qual.s ! g ! n} ;
-    Fresh = adjective "fresco" "fresca" "freschi" "fresche" ;
-    Warm = regAdj "caldo" ;
-    Italian = regAdj "italiano" ;
-    Expensive = regAdj "caro" ;
-    Delicious = regAdj "delizioso" ;
-    Boring = regAdj "noioso" ;
-  }
-```
-
-
-#NEW
-
-===Exercises on using parameters===
-
-+ Experiment with multilingual generation and translation in the
-``Foods`` grammars.
-
-+ Add items, qualities, and determiners to the grammar, 
-and try to get their inflection and inherent features right.
-
-+ Write a concrete syntax of ``Food`` for a language of your choice,
-now aiming for complete grammatical correctness by the use of parameters.
-
-+ Measure the size of the context-free grammar corresponding to
-``FoodsIta``. You can do this by printing the grammar in the context-free format
-(``print_grammar -printer=bnf``) and counting the lines.
-
-
-
-
-#NEW
-
-==Discontinuous constituents==
-
-A linearization record may contain more strings than one, and those
-strings can be put apart in linearization.
-
-Example: English particle
-verbs, (//switch off//). The object can appear between:
-
-//he switched it off//
-
-The verb //switch off// is called a
-**discontinuous constituents**.
-
-We can define transitive verbs and their combinations as follows:
-```
-  lincat TV = {s : Number => Str ; part : Str} ;
-
-  fun AppTV : Item -> TV -> Item -> Phrase ;
-
-  lin AppTV subj tv obj = 
-    {s = subj.s ++ tv.s ! subj.n ++ obj.s ++ tv.part} ;
-```
-
-**Exercise**. Define the language ``a^n b^n c^n`` in GF, i.e.
-any number of //a//'s followed by the same number of //b//'s and
-the same number of //c//'s. This language is not context-free,
-but can be defined in GF by using discontinuous constituents.
-
-
-#NEW
-
-==Strings at compile time vs. run time==
-
-Tokens are created in the following ways:
-- quoted string: ``"foo"``
-- gluing : ``t + s``
-- predefined operations ``init, tail, tk, dp``
-- pattern matching over strings
-
-
-Since //tokens must be known at compile time//,
-the above operations may not be applied to **run-time variables**
-(i.e. variables that stand for function arguments in linearization rules).
-
-Hence it is not legal to write
-```
-  cat Noun ;
-  fun Plural : Noun -> Noun ;
-  lin Plural n = {s = n.s + "s"} ;
-```
-because ``n`` is a run-time variable. Also
-```
-  lin Plural n = {s = (regNoun n).s ! Pl} ; 
-```
-is incorrect with ``regNoun`` as defined #Rsecinflection, because the run-time 
-variable is eventually sent to string pattern matching and gluing.
-
-
-#NEW
-
-How to write tokens together without a space?
-```
-  lin Question p = {s = p + "?"} ;
-```
-is incorrect. 
-
-The way to go is to use an **unlexer** that creates correct spacing
-after linearization. 
-
-Correspondingly, a **lexer** that e.g. analyses ``"warm?"`` into
-to tokens is needed before parsing. 
-This topic will be covered in #Rseclexing.
-
-
-
-
-
-
-#NEW
-
-===Supplementary constructs for concrete syntax===
-
-====Record extension and subtyping====
-
-The symbol ``**`` is used for both record types and record objects.
-```
-  lincat TV = Verb ** {c : Case} ;
-
-  lin Follow = regVerb "folgen" ** {c = Dative} ; 
-```
-``TV`` becomes a **subtype** of ``Verb``.
-
-If //T// is a subtype of //R//, an object of //T// can be used whenever
-an object of //R// is required. 
-
-**Covariance**: a function returning a record //T// as value can
-also be used to return a value of a supertype //R//.
-
-**Contravariance**: a function taking an //R// as argument
-can also be applied to any object of a subtype //T//.
-
-
-#NEW
-
-====Tuples and product types====
-
-Product types and tuples are syntactic sugar for record types and records:
-```
-  T1 * ... * Tn   ===   {p1 : T1 ; ... ; pn : Tn}
-  <t1, ...,  tn>  ===   {p1 = T1 ; ... ; pn = Tn}
-```
-Thus the labels ``p1, p2,...`` are hard-coded.
-
-
-#NEW
-
-====Prefix-dependent choices====
-
-English indefinite article:
-```
-  oper artIndef : Str = 
-    pre {"a" ; "an" / strs {"a" ; "e" ; "i" ; "o"}} ;
-```
-Thus
-```
-  artIndef ++ "cheese"  --->  "a" ++ "cheese"
-  artIndef ++ "apple"   --->  "an" ++ "apple"
-```
-
-
-
-
-
-
-
-
-#NEW
-
-=Lesson 4: Using the resource grammar library=
-
-#Lchapfive
-
-Goals:
-- navigate in the GF resource grammar library and use it in applications
-- get acquainted with basic linguistic categories
-- write functors to achieve maximal sharing of code in multilingual grammars
-
-
-#NEW
-
-==The coverage of the library==
-
-The current 12 resource languages are
-- ``Bul``garian
-- ``Cat``alan
-- ``Dan``ish
-- ``Eng``lish
-- ``Fin``nish
-- ``Fre``nch
-- ``Ger``man
-- ``Ita``lian
-- ``Nor``wegian
-- ``Rus``sian
-- ``Spa``nish
-- ``Swe``dish
-
-
-The first three letters (``Eng`` etc) are used in grammar module names
-(ISO 639 standard).
-
-
-#NEW
-
-==The structure of the library==
-
-#Lseclexical
-
-Semantic grammars (up to now in this tutorial):
-a grammar defines a system of meanings (abstract syntax) and
-tells how they are expressed(concrete syntax).
-
-Resource grammars (as usual in linguistic tradition):
-a grammar specifies the **grammatically correct combinations of words**, 
-whatever their meanings are. 
-
-With resource grammars, we can achieve a
-wider coverage than with semantic grammars.
-
-#NEW
-
-===Lexical vs. phrasal rules===
-
-A resource grammar has two kinds of categories and two kinds of rules:
-- lexical:
-  - lexical categories, to classify words
-  - lexical rules, to define words and their properties
-
-- phrasal (combinatorial, syntactic):
-  - phrasal categories, to classify phrases of arbitrary size
-  - phrasal rules, to combine phrases into larger phrases
-
-
-GE makes no formal distinction between these two kinds.
-
-But it is a good discipline to follow.
-
-
-#NEW
-
-===Lexical categories===
-
-Two kinds of lexical categories:
-- **closed**: 
-  - a finite number of words
-  - seldom extended in the history of language
-  - structural words / function words, e.g.
-```
-    Conj ;     -- conjunction           e.g. "and"
-    QuantSg ;  -- singular quantifier   e.g. "this"
-    QuantPl ;  -- plural quantifier     e.g. "this"
-```
-
-- **open**:
-  - new words are added all the time
-  - content words, e.g.
-```
-    N ;        -- noun         e.g. "pizza"
-    A ;        -- adjective    e.g. "good"
-    V ;        -- verb         e.g. "sleep"
-```
-
-
-#NEW
-
-===Lexical rules===
-
-Closed classes: module ``Syntax``. In the ``Foods`` grammar, we need
-```
-  this_QuantSg, that_QuantSg : QuantSg ; 
-  these_QuantPl, those_QuantPl : QuantPl ; 
-  very_AdA  : AdA ;
-```
-Naming convention: word followed by the category (so we can
-distinguish the quantifier //that// from the conjunction //that//). 
-
-Open classes have no objects in ``Syntax``. Words are
-built as they are needed in applications: if we have
-```
-  fun Wine : Kind ;
-```
-we will define
-```
-  lin Wine = mkN "wine" ;
-```
-where we use ``mkN`` from ``ParadigmsEng``:
-
-
-
-#NEW
-
-===Resource lexicon===
-
-Alternative concrete syntax for
-```
-  fun Wine : Kind ;
-```
-is to provide a **resource lexicon**, which contains definitions such as
-```
-  oper wine_N : N = mkN "wine" ;
-```
-so that we can write
-```
-  lin Wine = wine_N ;
-```
-Advantages:
-- we accumulate a reusable lexicon
-- we can use a #Rsecfunctor to speed up multilingual grammar implementation
-
-
-#NEW
-
-===Phrasal categories===
-
-In ``Foods``, we need just four phrasal categories:
-```
-  Cl ;   -- clause             e.g. "this pizza is good"
-  NP ;   -- noun phrase        e.g. "this pizza"
-  CN ;   -- common noun        e.g. "warm pizza"
-  AP ;   -- adjectival phrase  e.g. "very warm"
-```
-Clauses are similar to sentences (``S``), but without a
-fixed tense and mood; see #Rsecextended for how they relate.
-
-Common nouns are made into noun phrases by adding determiners.
-
-
-#NEW
-
-===Syntactic combinations===
-
-We need the following combinations:
-```
-  mkCl : NP -> AP -> Cl ;      -- e.g. "this pizza is very warm"
-  mkNP : QuantSg -> CN -> NP ; -- e.g. "this pizza" 
-  mkNP : QuantPl -> CN -> NP ; -- e.g. "these pizzas"
-  mkCN : AP -> CN -> CN ;      -- e.g. "warm pizza"
-  mkAP : AdA -> AP -> AP ;     -- e.g. "very warm" 
-```
-We also need **lexical insertion**, to form phrases from single words:
-```
-  mkCN : N -> NP ;
-  mkAP : A -> AP ;
-```
-Naming convention: to construct a //C//, use a function ``mk``//C//.
-
-Heavy overloading: the current library
-(version 1.2) has 23 operations named ``mkNP``!
-
-
-#NEW
-
-===Example syntactic combination===
-
-The sentence
-#BEQU
-//these very warm pizzas are Italian//
-#ENQU
-can be built as follows:
-```
-  mkCl 
-    (mkNP these_QuantPl 
-       (mkCN (mkAP very_AdA (mkAP warm_A)) (mkCN pizza_CN)))
-    (mkAP italian_AP) 
-```
-The task now: to define the concrete syntax of ``Foods`` so that
-this syntactic tree gives the value of linearizing the semantic tree
-```
-  Is (These (QKind (Very Warm) Pizza)) Italian
-```
-
-
-
-#NEW
-
-==The resource API==
-
-Language-specific and language-independent parts - roughly,
-- the syntax API ``Syntax``//L// has the same types and 
-  functions for all languages //L//
-- the morphology API ``Paradigms``//L// has partly 
-  different types and functions
-  for different languages //L//
-
-
-Full API documentation on-line: the **resource synopsis**,
-
-[``digitalgrammars.com/gf/lib/resource/doc/synopsis.html`` http://digitalgrammars.com/gf/lib/resource/doc/synopsis.html]
-
-
-#NEW
-
-===A miniature resource API: categories===
-
-|| Category  | Explanation  | Example  ||
-| ``Cl``  | clause (sentence), with all tenses | //she looks at this// |
-| ``AP`` | adjectival phrase | //very warm// |
-| ``CN`` | common noun (without determiner) | //red house// |
-| ``NP`` | noun phrase (subject or object) | //the red house// |
-| ``AdA`` | adjective-modifying adverb, | //very// |
-| ``QuantSg`` | singular quantifier | //these// |
-| ``QuantPl`` | plural quantifier | //this// |
-| ``A`` | one-place adjective | //warm// |
-| ``N`` | common noun | //house// |
-
-
-#NEW
-
-===A miniature resource API: rules===
-
-|| Function  | Type  | Example  ||
-| ``mkCl``  | ``NP -> AP -> Cl`` | //John is very old// |
-| ``mkNP``  | ``QuantSg -> CN -> NP`` | //this old man// |
-| ``mkNP``  | ``QuantPl -> CN -> NP`` | //these old man// |
-| ``mkCN``  | ``N -> CN`` | //house// |
-| ``mkCN``  | ``AP -> CN -> CN`` | //very big blue house// |
-| ``mkAP``  | ``A -> AP`` | //old// |
-| ``mkAP``  | ``AdA -> AP -> AP`` | //very very old// |
-
-#NEW
-
-===A miniature resource API: structural words===
-
-|| Function      | Type       | In English  ||
-| ``this_QuantSg`` | ``QuantSg``  | //this// |
-| ``that_QuantSg`` | ``QuantSg``  | //that// |
-| ``these_QuantPl`` | ``QuantPl``  | //this// |
-| ``those_QuantPl`` | ``QuantPl``  | //that// |
-| ``very_AdA``   | ``AdA``    | //very// |
-
-
-#NEW
-
-===A miniature resource API: paradigms===
-
-From ``ParadigmsEng``:
-
-|| Function  | Type  ||
-| ``mkN`` | ``(dog : Str) -> N`` | 
-| ``mkN`` | ``(man,men : Str) -> N`` | 
-| ``mkA`` | ``(cold : Str) -> A`` | 
-
-From ``ParadigmsIta``:
-
-|| Function  | Type  ||
-| ``mkN`` | ``(vino : Str) -> N`` | 
-| ``mkA`` | ``(caro : Str) -> A`` | 
-
-
-#NEW
-
-===A miniature resource API: more paradigms===
-
-From ``ParadigmsGer``:
-
-|| Function  | Type  ||
-| ``Gender`` | ``Type`` | 
-| ``masculine`` | ``Gender`` |
-| ``feminine`` | ``Gender`` |
-| ``neuter`` | ``Gender`` | 
-| ``mkN`` | ``(Stufe : Str) -> N`` | 
-| ``mkN`` | ``(Bild,Bilder : Str) -> Gender -> N`` |
-| ``mkA`` | ``(klein : Str) -> A`` |
-| ``mkA`` | ``(gut,besser,beste : Str) -> A`` |
-
-From ``ParadigmsFin``:
-
-|| Function  | Type  ||
-| ``mkN`` | ``(talo : Str) -> N`` | 
-| ``mkA`` | ``(hieno : Str) -> A`` | 
-
-
-
-#NEW
-
-===Exercises===
-
-1. Try out the morphological paradigms in different languages. Do 
-as follows:
-```
-  > i -path=alltenses -retain alltenses/ParadigmsGer.gfo
-  > cc -table mkN "Farbe"
-  > cc -table mkA "gut" "besser" "beste"
-```
-
-
-#NEW
-
-==Example: English==
-
-#Lsecenglish
-
-We assume the abstract syntax ``Foods`` from #Rchapfour.
-
-We don't need to think about inflection and agreement, but just pick
-functions from the resource grammar library.
-
-We need a path with
-- the current directory ``.`` 
-- the directory ``../foods``, in which ``Foods.gf`` resides.
-- the library directory ``present``, which is relative to the 
-  environment variable ``GF_LIB_PATH``
-
-
-Thus the beginning of the module is
-```
-  --# -path=.:../foods:present
-
-  concrete FoodsEng of Foods = open SyntaxEng,ParadigmsEng in {
-```
-
-
-#NEW
-
-===English example: linearization types and combination rules===
-
-As linearization types, we use clauses for ``Phrase``, noun phrases
-for ``Item``, common nouns for ``Kind``, and adjectival phrases for ``Quality``.
-```
-  lincat
-    Phrase = Cl ; 
-    Item = NP ;
-    Kind = CN ;
-    Quality = AP ;
-```
-Now the combination rules we need almost write themselves automatically:
-```
-  lin
-    Is item quality = mkCl item quality ;
-    This kind = mkNP this_QuantSg kind ;
-    That kind = mkNP that_QuantSg kind ;
-    These kind = mkNP these_QuantPl kind ;
-    Those kind = mkNP those_QuantPl kind ;
-    QKind quality kind = mkCN quality kind ;
-    Very quality = mkAP very_AdA quality ;
-```
-
-
-#NEW
-
-===English example: lexical rules===
-
-We use resource paradigms and lexical insertion rules.
-
-The two-place noun paradigm is needed only once, for
-//fish// - everythins else is regular.
-```
-    Wine = mkCN (mkN "wine") ;
-    Pizza = mkCN (mkN "pizza") ;
-    Cheese = mkCN (mkN "cheese") ;
-    Fish = mkCN (mkN "fish" "fish") ;
-    Fresh = mkAP (mkA "fresh") ;
-    Warm = mkAP (mkA "warm") ;
-    Italian = mkAP (mkA "Italian") ;
-    Expensive = mkAP (mkA "expensive") ;
-    Delicious = mkAP (mkA "delicious") ;
-    Boring = mkAP (mkA "boring") ;
-  }
-```
-
-
-#NEW
-
-===English example: exercises===
-
-1. Compile the grammar ``FoodsEng`` and generate 
-and parse some sentences.
-
-2. Write a concrete syntax of ``Foods`` for Italian 
-or some other language included in the resource library. You can 
-compare the results with the hand-written
-grammars presented earlier in this tutorial.
-
-
-
-#NEW
-
-==Functor implementation of multilingual grammars==
-
-#Lsecfunctor
-
-===New language by copy and paste===
-
-If you write  a concrete syntax of ``Foods`` for some other
-language, much of the code will look exactly the same
-as for English. This is because 
-- the ``Syntax`` API is the same for all languages (because
-  all languages in the resource package do implement the same 
-  syntactic structures) 
-- languages tend to use the syntactic structures in similar ways
-
-
-But lexical rules are more language-dependent.
-
-Thus, to port a grammar to a new language, you
-+ copy the concrete syntax of a given language
-+ change the words (strings and inflection paradigms)
-
-
-Can we avoid this programming by copy-and-paste?
-
-
-
-#NEW
-
-===Functors: functions on the module level===
-
-**Functors** familiar from the functional programming languages ML and OCaml, 
-also known as **parametrized modules**.
-
-In GF, a functor is a module that ``open``s one or more **interfaces**.
-
-An ``interface`` is a module similar to a ``resource``, but it only
-contains the //types// of ``oper``s, not (necessarily) their definitions. 
-
-Syntax for functors: add the keyword ``incomplete``. We will use the header
-```
-  incomplete concrete FoodsI of Foods = open Syntax, LexFoods in
-```
-where
-```
-  interface Syntax    -- the resource grammar interface
-  interface LexFoods  -- the domain lexicon interface
-```
-When we moreover have
-```
-  instance SyntaxEng of Syntax     -- the English resource grammar
-  instance LexFoodsEng of LexFoods -- the English domain lexicon
-```
-we can write a **functor instantiation**,
-```
-  concrete FoodsGer of Foods = FoodsI with 
-    (Syntax = SyntaxGer),
-    (LexFoods = LexFoodsGer) ;
-```
-
-#NEW
-
-===Code for the Foods functor===
-
-```
-  --# -path=.:../foods
-
-  incomplete concrete FoodsI of Foods = open Syntax, LexFoods in {
-  lincat
-    Phrase = Cl ; 
-    Item = NP ;
-    Kind = CN ;
-    Quality = AP ;
-  lin
-    Is item quality = mkCl item quality ;
-    This kind = mkNP this_QuantSg kind ;
-    That kind = mkNP that_QuantSg kind ;
-    These kind = mkNP these_QuantPl kind ;
-    Those kind = mkNP those_QuantPl kind ;
-    QKind quality kind = mkCN quality kind ;
-    Very quality = mkAP very_AdA quality ;
-
-    Wine = mkCN wine_N ;
-    Pizza = mkCN pizza_N ;
-    Cheese = mkCN cheese_N ;
-    Fish = mkCN fish_N ;
-    Fresh = mkAP fresh_A ;
-    Warm = mkAP warm_A ;
-    Italian = mkAP italian_A ;
-    Expensive = mkAP expensive_A ;
-    Delicious = mkAP delicious_A ;
-    Boring = mkAP boring_A ;
-  }
-```
-
-
-#NEW
-
-===Code for the LexFoods interface===
-
-#Lsecinterface
-
-```
-  interface LexFoods = open Syntax in {
-  oper
-    wine_N : N ;
-    pizza_N : N ;
-    cheese_N : N ;
-    fish_N : N ;
-    fresh_A : A ;
-    warm_A : A ;
-    italian_A : A ;
-    expensive_A : A ;
-    delicious_A : A ;
-    boring_A : A ;
-  }
-```
-
-#NEW
-
-===Code for a German instance of the lexicon===
-
-```
-  instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in {
-  oper
-    wine_N = mkN "Wein" ;
-    pizza_N = mkN "Pizza" "Pizzen" feminine ;
-    cheese_N = mkN "Käse" "Käsen" masculine ;
-    fish_N = mkN "Fisch" ;
-    fresh_A = mkA "frisch" ;
-    warm_A = mkA "warm" "wärmer" "wärmste" ;
-    italian_A = mkA "italienisch" ;
-    expensive_A = mkA "teuer" ;
-    delicious_A = mkA "köstlich" ;
-    boring_A = mkA "langweilig" ;
-  }
-```
-
-
-#NEW
-
-===Code for a German functor instantiation===
-
-```
-  --# -path=.:../foods:present
-
-  concrete FoodsGer of Foods = FoodsI with 
-    (Syntax = SyntaxGer),
-    (LexFoods = LexFoodsGer) ;
-```
-
-
-
-#NEW
-
-===Adding languages to a functor implementation===
-
-Just two modules are needed:
-- a domain lexicon instance
-- a functor instantiation
-
-
-The functor instantiation is completely mechanical to write.
-
-The domain lexicon instance requires some knowledge of the words of the
-language: 
-- what words are used for which concepts
-- how the words are
-- features such as genders
-
-
-#NEW
-
-===Example: adding Finnish===
-
-Lexicon instance
-```
-  instance LexFoodsFin of LexFoods = open SyntaxFin, ParadigmsFin in {
-  oper
-    wine_N = mkN "viini" ;
-    pizza_N = mkN "pizza" ;
-    cheese_N = mkN "juusto" ;
-    fish_N = mkN "kala" ;
-    fresh_A = mkA "tuore" ;
-    warm_A = mkA "lämmin" ;
-    italian_A = mkA "italialainen" ;
-    expensive_A = mkA "kallis" ;
-    delicious_A = mkA "herkullinen" ;
-    boring_A = mkA "tylsä" ;
-  }
-```
-Functor instantiation
-```
-  --# -path=.:../foods:present
-
-  concrete FoodsFin of Foods = FoodsI with 
-    (Syntax = SyntaxFin),
-    (LexFoods = LexFoodsFin) ;
-```
-
-
-#NEW
-
-===A design pattern===
-
-This can be seen as a //design pattern// for multilingual grammars:
-```
-                      concrete DomainL*
-
-    instance LexDomainL                 instance SyntaxL*
-   
-                 incomplete concrete DomainI
-                 /           |              \               
-   interface LexDomain   abstract Domain    interface Syntax*
-```
-Modules marked with ``*`` are either given in the library, or trivial.
-
-Of the hand-written modules, only ``LexDomainL`` is language-dependent.
-
-
-#NEW
-
-===Functors: exercises===
-
-1. Compile and test ``FoodsGer``.
-
-2. Refactor ``FoodsEng`` into a functor instantiation.
-
-3. Instantiate the functor ``FoodsI`` to some language of
-your choice.
-
-4. Design a small grammar that can be used for controlling
-an MP3 player. The grammar should be able to recognize commands such
-as //play this song//, with the following variations:
-- verbs: //play//, //remove//
-- objects: //song//, //artist//
-- determiners: //this//, //the previous//
-- verbs without arguments: //stop//, //pause//
-
-
-The implementation goes in the following phases:
-+ abstract syntax
-+ (optional:) prototype string-based concrete syntax
-+ functor over resource syntax and lexicon interface
-+ lexicon instance for the first language
-+ functor instantiation for the first language
-+ lexicon instance for the second language
-+ functor instantiation for the second language
-+ ...
-
-
-
-#NEW
-
-==Restricted inheritance==
-
-===A problem with functors===
-
-Problem: a functor only works when all languages use the resource ``Syntax`` 
-in the same way.
-
-Example (contrived): assume that English has
-no word for ``Pizza``, but has to use the paraphrase //Italian pie//.
-This is no longer a noun ``N``, but a complex phrase
-in the category ``CN``. 
-
-Possible solution: change interface the ``LexFoods`` with
-```
-  oper pizza_CN : CN ;
-```
-Problem with this solution: 
-- we may end up changing the interface and the function with each new language
-- we must every time also change the instances for the old languages to maintain
-  type correctness
-
-
-#NEW
-
-===Restricted inheritance: include or exclude===
-
-A module may inherit just a selection of names.
-
-Example: the ``FoodMarket`` example "Rsecarchitecture:
-```
-  abstract Foodmarket = Food, Fruit [Peach], Mushroom - [Agaric]
-```
-Here, from ``Fruit`` we include ``Peach`` only, and from ``Mushroom``
-we exclude ``Agaric``.
-
-A concrete syntax of ``Foodmarket`` must make the analogous restrictions.
-
-
-#NEW
-
-===The functor problem solved===
-
-The English instantiation inherits the functor 
-implementation except for the constant ``Pizza``. This constant
-is defined in the body instead:
-```
-  --# -path=.:../foods:present
-
-  concrete FoodsEng of Foods = FoodsI - [Pizza] with 
-    (Syntax = SyntaxEng),
-    (LexFoods = LexFoodsEng) ** 
-      open SyntaxEng, ParadigmsEng in {
-
-    lin Pizza = mkCN (mkA "Italian") (mkN "pie") ;
-  }
-```
- 
-
-#NEW
-
-==Grammar reuse==
-
-Abstract syntax modules can be used as interfaces, 
-and concrete syntaxes as their instances.
- 
-The following correspondencies are then applied:
-```
-  cat C         <--->  oper C : Type
-
-  fun f : A     <--->  oper f : A
-
-  lincat C = T  <--->  oper C : Type = T
-
-  lin f = t     <--->  oper f : A = t
-```
-
-
-
-
-#NEW
-
-===Library exercises===
-
-1. Find resource grammar terms for the following
-English phrases (in the category ``Phr``). You can first try to
-build the terms manually.
-
-//every man loves a woman//
-
-//this grammar speaks more than ten languages//
-
-//which languages aren't in the grammar//
-
-//which languages did you want to speak//
-
-
-Then translate the phrases to other languages.
-
-
-#NEW
-
-==Tenses==
-
-#Lsectense
-
-In ``Foods`` grammars, we have used the path
-```
-  --# -path=.:../foods
-```
-The library subdirectory ``present`` is a restricted version
-of the resource, with only present tense of verbs and sentences.
-
-By just changing the path, we get all tenses:
-```
-  --# -path=.:../foods:alltenses
-```
-Now we can see all the tenses of phrases, by using the ``-all`` flag 
-in linearization:
-```
-  > gr | l -all
-  This wine is delicious
-  Is this wine delicious
-  This wine isn't delicious
-  Isn't this wine delicious
-  This wine is not delicious
-  Is this wine not delicious
-  This wine has been delicious
-  Has this wine been delicious
-  This wine hasn't been delicious
-  Hasn't this wine been delicious
-  This wine has not been delicious
-  Has this wine not been delicious
-  This wine was delicious
-  Was this wine delicious
-  This wine wasn't delicious
-  Wasn't this wine delicious
-  This wine was not delicious
-  Was this wine not delicious
-  This wine had been delicious
-  Had this wine been delicious
-  This wine hadn't been delicious
-  Hadn't this wine been delicious
-  This wine had not been delicious
-  Had this wine not been delicious
-  This wine will be delicious
-  Will this wine be delicious
-  This wine won't be delicious
-  Won't this wine be delicious
-  This wine will not be delicious
-  Will this wine not be delicious
-  This wine will have been delicious
-  Will this wine have been delicious
-  This wine won't have been delicious
-  Won't this wine have been delicious
-  This wine will not have been delicious
-  Will this wine not have been delicious
-  This wine would be delicious
-  Would this wine be delicious
-  This wine wouldn't be delicious
-  Wouldn't this wine be delicious
-  This wine would not be delicious
-  Would this wine not be delicious
-  This wine would have been delicious
-  Would this wine have been delicious
-  This wine wouldn't have been delicious
-  Wouldn't this wine have been delicious
-  This wine would not have been delicious
-  Would this wine not have been delicious
-```
-We also see 
-- polarity (positive vs. negative)
-- word order (direct vs. inverted)
-- variation between contracted and full negation
-
-
-The list is even longer in languages that have more
-tenses and moods, e.g. the Romance languages.
-
-
-
-#NEW
-
-=Lesson 5: Refining semantics in abstract syntax=
-
-#Lchapsix
-
-Goals:
-- include semantic conditions in grammars, by using
-  - **dependent types** 
-  - **higher order abstract syntax** 
-  - proof objects  
-  - semantic definitions
-
-These concepts are inherited from **type theory** (more precisely:
-constructive type theory, or Martin-Löf type theory).
-
-Type theory is the basis **logical frameworks**.
-
-GF = logical framework + concrete syntax.
-
-
-#NEW
-
-==Dependent types==
-
-#Lsecsmarthouse
-
-Problem: to express **conditions of semantic well-formedness**.
-
-Example: a voice command system for a "smart house" wants to
-eliminate meaningless commands.
-
-Thus we want to restrict particular actions to
-particular devices - we can //dim a light//, but we cannot
-//dim a fan//.
-
-The following example is borrowed from the 
-Regulus Book (Rayner & al. 2006).
-
-A simple example is a "smart house" system, which
-defines voice commands for household appliances.   
-
-
-#NEW
-
-===A dependent type system===
-
-Ontology: 
-- there are commands and device kinds
-- for each kind of device, there are devices and actions
-- a command concerns an action of some kind on a device of the same kind
-
-
-Abstract syntax formalizing this:
-```
-  cat
-    Command ;
-    Kind ; 
-    Device Kind ; -- argument type Kind 
-    Action Kind ; 
-  fun 
-    CAction : (k : Kind) -> Action k -> Device k -> Command ;
-```
-``Device`` and ``Action`` are both dependent types.
-
-
-#NEW
-
-===Examples of devices and actions===
-
-Assume the kinds ``light`` and ``fan``,
-```
-  light, fan : Kind ;
-  dim : Action light ;
-```
-Given a kind, //k//, you can form the device //the k//.
-```
-  DKindOne  : (k : Kind) -> Device k ;  -- the light
-```
-Now we can form the syntax tree
-```
-  CAction light dim (DKindOne light)
-```
-but we cannot form the trees
-```
-  CAction light dim (DKindOne fan)
-  CAction fan   dim (DKindOne light)
-  CAction fan   dim (DKindOne fan)
-```
-
-
-#NEW
-
-===Linearization and parsing with dependent types===
-
-Concrete syntax does not know if a category is a dependent type. 
-```
-  lincat Action = {s : Str} ;
-  lin CAction _ act dev = {s = act.s ++ dev.s} ; 
-```
-Notice that the ``Kind`` argument is suppressed in linearization.
-
-Parsing with dependent types is performed in two phases:
-+ context-free parsing
-+ filtering through type checker
-
-
-By just doing the first phase, the ``kind`` argument is not found:
-```
-  > parse "dim the light"
-  CAction ? dim (DKindOne light)
-```
-Moreover, type-incorrect commands are not rejected:
-```
-  > parse "dim the fan"
-  CAction ? dim (DKindOne fan)
-```
-The term ``?`` is a **metavariable**, returned by the parser
-for any subtree that is suppressed by a linearization rule.
-These are the same kind of metavariables as were used #Rsecediting
-to mark incomplete parts of trees in the syntax editor.
-
-
-
-#NEW
-
-===Solving metavariables===
-
-Use the command ``put_tree = pt`` with the option ``-typecheck``:
-```
-  > parse "dim the light" | put_tree -typecheck
-  CAction light dim (DKindOne light)
-```
-The ``typecheck`` process may fail, in which case an error message
-is shown and no tree is returned:
-```
-  > parse "dim the fan" | put_tree -typecheck
-
-  Error in tree UCommand (CAction ? 0 dim (DKindOne fan)) :
-    (? 0 <> fan) (? 0 <> light)
-```
-
-
-
-
-#NEW
-
-==Polymorphism==
-
-#Lsecpolymorphic
-
-Sometimes an action can be performed on all kinds of devices. 
-
-This is represented as a function that takes a ``Kind`` as an argument 
-and produce an ``Action`` for that ``Kind``:
-```
-  fun switchOn, switchOff : (k : Kind) -> Action k ;
-```
-Functions of this kind are called **polymorphic**. 
-
-We can use this kind of polymorphism in concrete syntax as well,
-to express Haskell-type library functions:
-```
-  oper const :(a,b : Type) -> a -> b -> a =
-    \_,_,c,_ -> c ;
-
-  oper flip : (a,b,c : Type) -> (a -> b ->c) -> b -> a -> c =
-    \_,_,_,f,x,y -> f y x ;
-```
-
-
-#NEW
-
-===Dependent types: exercises===
-
-1. Write an abstract syntax module with above contents
-and an appropriate English concrete syntax. Try to parse the commands
-//dim the light// and //dim the fan//, with and without ``solve`` filtering.
-
-
-2. Perform random and exhaustive generation, with and without
-``solve`` filtering.
-
-3. Add some device kinds and actions to the grammar.
-
-
-
-#NEW
-
-==Proof objects==
-
-**Curry-Howard isomorphism** = **propositions as types principle**:
-a proposition is a type of proofs (= proof objects).
-
-Example: define the //less than// proposition for natural numbers,
-```
-  cat Nat ; 
-  fun Zero : Nat ;
-  fun Succ : Nat -> Nat ;
-```
-Define inductively what it means for a number //x// to be //less than//
-a number //y//:
-- ``Zero`` is less than ``Succ`` //y// for any //y//.
-- If //x// is less than //y//, then ``Succ`` //x// is less than ``Succ`` //y//.
-
-
-Expressing these axioms in type theory
-with a dependent type ``Less`` //x y// and two functions constructing
-its objects:
-```
-  cat Less Nat Nat ; 
-  fun lessZ : (y : Nat) -> Less Zero (Succ y) ;
-  fun lessS : (x,y : Nat) -> Less x y -> Less (Succ x) (Succ y) ;
-```
-Example: the fact that 2 is less that 4 has the proof object
-```
-  lessS (Succ Zero) (Succ (Succ (Succ Zero)))
-        (lessS Zero (Succ (Succ Zero)) (lessZ (Succ Zero)))
-   : Less (Succ (Succ Zero)) (Succ (Succ (Succ (Succ Zero))))
-```
-
-
-
-#NEW
-
-===Proof-carrying documents===
-
-Idea: to be semantically well-formed, the abstract syntax of a document 
-must contain a proof of some property, 
-although the proof is not shown in the concrete document.
-
-Example: documents describing flight connections:
-
-//To fly from Gothenburg to Prague, first take LH3043 to Frankfurt, then OK0537 to Prague.//
-
-The well-formedness of this text is partly expressible by dependent typing: 
-```
-  cat
-    City ;
-    Flight City City ;
-  fun
-    Gothenburg, Frankfurt, Prague : City ;
-    LH3043 : Flight Gothenburg Frankfurt ;
-    OK0537 : Flight Frankfurt Prague ;
-```
-To extend the conditions to flight connections, we introduce a category
-of proofs that a change is possible:
-```
-  cat IsPossible (x,y,z : City)(Flight x y)(Flight y z) ;
-```
-A legal connection is formed by the function
-```
-  fun Connect : (x,y,z : City) -> 
-    (u : Flight x y) -> (v : Flight y z) -> 
-      IsPossible x y z u v -> Flight x z ;
-```
-
-
-#NEW
-
-==Restricted polymorphism==
-
-Above, all Actions were either of
-- **monomorphic**: defined for one Kind
-- **polymorphic**: defined for all Kinds
-
-
-To make this scale up for new Kinds, we can refine this to 
-**restricted polymorphism**: defined for Kinds of a certain **class**
-
-
-The notion of class uses the Curry-Howard isomorphism as follows:
-- a class is a **predicate** of Kinds --- i.e. a type depending of Kinds
-- a Kind is in a class if there is a proof object of this type
-
-
-#NEW
-
-===Example: classes for switching and dimming===
-
-We modify the smart house grammar:
-```
-cat
-  Switchable Kind ;
-  Dimmable   Kind ;
-fun
-  switchable_light : Switchable light ;
-  switchable_fan   : Switchable fan ;
-  dimmable_light   : Dimmable light ;
-
-  switchOn : (k : Kind) -> Switchable k -> Action k ;
-  dim      : (k : Kind) -> Dimmable k -> Action k ;
-```
-Classes for new actions can be added incrementally. 
-
-
-
-#NEW
-
-==Variable bindings==
-
-#Lsecbinding
-
-Mathematical notation and programming languages have
-expressions that **bind** variables. 
-
-Example: universal quantifier formula
-```
-  (All x)B(x)
-```
-The variable ``x`` has a **binding** ``(All x)``, and
-occurs **bound** in the **body** ``B(x)``.
-
-Examples from informal mathematical language:
-```
-  for all x, x is equal to x
-
-  the function that for any numbers x and y returns the maximum of x+y
-  and x*y
-
-  Let x be a natural number. Assume that x is even. Then x + 3 is odd.
-```
-
-
-
-#NEW
-
-===Higher-order abstract syntax===
-
-Abstract syntax can use functions as arguments:
-```
-  cat Ind ; Prop ;
-  fun All : (Ind -> Prop) -> Prop
-```
-where ``Ind`` is the type of individuals and ``Prop``,
-the type of propositions. 
-
-Let us add an equality predicate
-```
-  fun Eq : Ind -> Ind -> Prop
-```
-Now we can form the tree
-```
-  All (\x -> Eq x x)
-```
-which we want to relate to the ordinary notation
-```
-  (All x)(x = x)
-```
-In **higher-order abstract syntax** (HOAS), all variable bindings are
-expressed using higher-order syntactic constructors.
-
-
-#NEW
-
-===Higher-order abstract syntax: linearization===
-
-HOAS has proved to be useful in the semantics and computer implementation of
-variable-binding expressions. 
-
-How do we relate HOAS to the concrete syntax?
-
-In GF, we write
-```
-  fun All : (Ind -> Prop) -> Prop
-  lin All B = {s = "(" ++ "All" ++ B.$0 ++ ")" ++ B.s}
-```
-General rule: if an argument type of a ``fun`` function is
-a function type ``A -> C``, the linearization type of
-this argument is the linearization type of ``C``
-together with a new field ``$0 : Str``. 
-
-The argument ``B`` thus has the linearization type
-```
-  {s : Str ; $0 : Str},
-```
-If there are more bindings, we add ``$1``, ``$2``, etc.
-
-
-#NEW
-
-===Eta expansion===
-
-To make sense of linearization, syntax trees must be
-**eta-expanded**: for any function of type
-```
-  A -> B
-```
-an eta-expanded syntax tree has the form
-```
-  \x -> b
-```
-where ``b : B`` under the assumption ``x : A``.
-
-Given the linearization rule
-```
-  lin Eq a b = {s = "(" ++ a.s ++ "=" ++ b.s ++ ")"}
-```
-the linearization of the tree 
-```
-  \x -> Eq x x
-```
-is the record
-```
-  {$0 = "x", s = ["( x = x )"]}
-```
-Then we can compute the linearization of the formula,
-```
-  All (\x -> Eq x x)  --> {s = "[( All x ) ( x = x )]"}.
-```
-The linearization of the variable ``x`` is, 
-"automagically", the string ``"x"``.
-
-
-
-#NEW
-
-===Parsing variable bindings===
-
-GF can treat any one-word string as a variable symbol.
-```
-  > p -cat=Prop "( All x ) ( x = x )"
-  All (\x -> Eq x x)
-```
-Variables must be bound if they are used:
-```
-  > p -cat=Prop "( All x ) ( x = y )"
-  no tree found
-```
-
-
-
-
-#NEW
-
-===Exercises on variable bindings===
-
-1. Write an abstract syntax of the whole
-**predicate calculus**, with the
-**connectives** "and", "or", "implies", and "not", and the
-**quantifiers** "exists" and "for all". Use higher-order functions
-to guarantee that unbounded variables do not occur.
-
-2. Write a concrete syntax for your favourite
-notation of predicate calculus. Use Latex as target language
-if you want nice output. You can also try producing boolean
-expressions of some programming language. Use as many parenthesis as you need to
-guarantee non-ambiguity.
-
-
-#NEW
-
-==Semantic definitions==
-
-#Lsecdefdef
-
-The ``fun`` judgements of GF are declarations of functions, giving their types.
-
-Can we **compute** ``fun`` functions?
-
-Mostly we are not interested, since functions are seen as constructors,
-i.e. data forms - as usual with
-```
-  fun Zero : Nat ;
-  fun Succ : Nat -> Nat ;
-```
-But it is also possible to give **semantic definitions** to functions.
-The key word is ``def``:
-```
-  fun one : Nat ;
-  def one = Succ Zero ;
-
-  fun twice : Nat -> Nat ;
-  def twice x = plus x x ;
-
-  fun plus : Nat -> Nat -> Nat ;
-  def 
-    plus x Zero = x ;
-    plus x (Succ y) = Succ (Sum x y) ;
-```
-
-#NEW
-
-===Computing a tree===
-
-Computation: follow a chain of definition until no definition
-can be applied,
-```
-  plus one one -->
-  plus (Succ Zero) (Succ Zero) -->
-  Succ (plus (Succ Zero) Zero) -->
-  Succ (Succ Zero)
-```
-Computation in GF is performed with the ``put_term`` command and the
-``compute`` transformation, e.g.
-```
-  > parse -tr "1 + 1" | put_term -transform=compute -tr | l
-  plus one one
-  Succ (Succ Zero)
-  s(s(0))
-```
-
-
-#NEW
-
-===Definitional equality===
-
-Two trees are definitionally equal if they compute into the same tree.
-
-Definitional equality does not guarantee sameness of linearization:
-```
-  plus one one     ===> 1 + 1
-  Succ (Succ Zero) ===> s(s(0))
-```
-The main use of this concept is in type checking: sameness of types.
-
-Thus e.g. the following types are equal
-```
-  Less Zero one
-  Less Zero (Succ Zero))
-```
-so that an object of one also is an object of the other.
-
-
-
-#NEW
-
-===Judgement forms for constructors===
-
-The judgement form ``data`` tells that a category has 
-certain functions as constructors:
-```
-  data Nat = Succ | Zero ;
-```
-The type signatures of constructors are given separately, 
-```
-  fun Zero : Nat ;
-  fun Succ : Nat -> Nat ;
-```
-There is also a shorthand:
-```
-  data Succ : Nat -> Nat ;    ===   fun Succ : Nat -> Nat ;
-                                    data Nat = Succ ;
-```
-Notice: in ``def`` definitions, identifier patterns not
-marked as ``data`` will be treated as variables.
-
-
-#NEW
-
-===Exercises on semantic definitions===
-
-1. Implement an interpreter of a small functional programming
-language with natural numbers, lists, pairs, lambdas, etc. Use higher-order
-abstract syntax with semantic definitions. As concrete syntax, use
-your favourite programming language.
-
-2. There is no termination checking for ``def`` definitions. 
-Construct an examples that makes type checking loop.
-Type checking can be invoked with ``put_term -transform=solve``.
-
-
-
-#NEW
-
-==Lesson 6: Grammars of formal languages==
-
-
-#Lchapseven
-
-Goals:
-- write grammars for formal languages (mathematical notation, programming languages)
-- interface between formal and natural langauges
-- implement a compiler by using GF
-
-
-#NEW
-
-===Arithmetic expressions===
-
-We construct a calculator with addition, subtraction, multiplication, and
-division of integers. 
-```
-  abstract Calculator = {
-
-  cat Exp ;
-
-  fun
-    EPlus, EMinus, ETimes, EDiv : Exp -> Exp -> Exp ;
-    EInt : Int -> Exp ;
-  }
-```
-The category ``Int`` is a built-in category of
-integers. Its syntax trees **integer literals**, i.e.
-sequences of digits:
-```
-  5457455814608954681 : Int
-```
-These are the only objects of type ``Int``:
-grammars are not allowed to declare functions with ``Int`` as value type.
-
-
-#NEW
-
-===Concrete syntax: a simple approach===
-
-We begin with a
-concrete syntax that always uses parentheses around binary
-operator applications: 
-```
-  concrete CalculatorP of Calculator = {
-
-  lincat 
-    Exp = SS ;
-  lin
-    EPlus  = infix "+" ;
-    EMinus = infix "-" ;
-    ETimes = infix "*" ;
-    EDiv   = infix "/" ;
-    EInt i = i ;
-
-  oper
-    infix : Str -> SS -> SS -> SS = \f,x,y -> 
-      ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
-  }
-```
-Now we have
-```
-  > linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-  ( 2 + ( 3 * 4 ) )
-```
-First problems: 
-- to get rid of superfluous spaces and 
-- to recognize integer literals in the parser
-
-
-#NEW
-
-==Lexing and unlexing==
-
-#Lseclexing
-
-The input of parsing in GF is not just a string, but a list of
-**tokens**, returned by a **lexer**.
-
-The default lexer in GF returns chunks separated by spaces:
-```
-  "(12 + (3 * 4))"  ===>  "(12", "+", "(3". "*". "4))"
-```
-The proper way would be
-```
-  "(", "12", "+", "(", "3", "*", "4", ")", ")"
-```
-Moreover, the tokens ``"12"``, ``"3"``, and ``"4"`` should be recognized as
-integer literals - they cannot be found in the grammar.
-
-
-#NEW
-
-Lexers are invoked by flags to the command ``put_string = ps``.
-```
-  > put_string -lexcode "(2 + (3 * 4))"
-  ( 2 + ( 3 * 4 ) )
-```
-This can be piped into a parser, as usual:
-```
-  > ps -lexcode "(2 + (3 * 4))" | parse
-  EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-```
-In linearization, we use a corresponding **unlexer**:
-```
-  > linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4)) | ps -unlexcode
-  (2 + (3 * 4))
-```
-
-
-#NEW
-
-===Most common lexers and unlexers===
-
-  || lexer       | unlexer        | description ||
-  | ``chars``    | ``unchars``    | each character is a token
-  | ``lexcode``  | ``unlexcode``  | program code conventions (uses Haskell's lex)
-  | ``lexmixed`` | ``unlexmixed`` | like text, but between $ signs like code
-  | ``lextext``  | ``unlextext``  | with conventions on punctuation and capitals
-  | ``words``    | ``unwords``    | (default) tokens separated by space characters 
-
-%TODO: also on alphabet encodings - although somewhere else
-
-
-#NEW
-
-==Precedence and fixity==
-
-Arithmetic expressions should be unambiguous. If we write
-```
-  2 + 3 * 4
-```
-it should be parsed as one, but not both, of
-```
-  EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
-  ETimes (EPlus (EInt 2) (EInt 3)) (EInt 4)
-```
-We choose the former tree, because
-multiplication has **higher precedence** than addition.
-
-To express the latter tree, we have to use parentheses:
-```
-  (2 + 3) * 4
-```
-The usual precedence rules:
-- Integer constants and expressions in parentheses have the highest precedence.
-- Multiplication and division have equal precedence, lower than the highest
-  but higher than addition and subtraction, which are again equal.
-- All the four binary operations are **left-associative**:
-  ``1 + 2 + 3`` means the same as ``(1 + 2) + 3``.
-
-
-
-#NEW
-
-===Precedence as a parameter===
-
-Precedence can be made into an inherent feature of expressions:
-```
-  oper
-    Prec : PType = Ints 2 ;
-    TermPrec : Type = {s : Str ; p : Prec} ;
-
-    mkPrec : Prec -> Str -> TermPrec = \p,s -> {s = s ; p = p} ;
-
-  lincat 
-    Exp = TermPrec ;
-```
-Notice ``Ints 2``: a parameter type, whose values are the integers
-``0,1,2``. 
-
-Using precedence levels: compare the inherent precedence of an 
-expression with the expected precedence.
-- if the inherent precedence is lower than the expected precedence,
-  use parentheses
-- otherwise, no parentheses are needed
-
-
-This idea is encoded in the operation
-```
-  oper usePrec : TermPrec -> Prec -> Str = \x,p ->
-    case lessPrec x.p p of {
-      True  => "(" x.s ")" ;
-      False => x.s
-    } ;
-```
-(We use ``lessPrec`` from ``lib/prelude/Formal``.)
-
-
-
-#NEW
-
-===Fixities===
-
-We can define left-associative infix expressions:
-```
-  infixl : Prec -> Str -> (_,_ : TermPrec) -> TermPrec = \p,f,x,y ->
-    mkPrec p (usePrec x p ++ f ++ usePrec y (nextPrec p)) ;
-```
-Constant-like expressions (the highest level):
-```
-  constant : Str -> TermPrec = mkPrec 2 ;
-```
-All these operations can be found in ``lib/prelude/Formal``,
-which has 5 levels.
-
-Now we can write the whole concrete syntax of ``Calculator`` compactly:
-```
-  concrete CalculatorC of Calculator = open Formal, Prelude in {
-
-  flags lexer = codelit ; unlexer = code ; startcat = Exp ;
-
-  lincat Exp = TermPrec ;
-
-  lin
-    EPlus  = infixl 0 "+" ;
-    EMinus = infixl 0 "-" ;
-    ETimes = infixl 1 "*" ;
-    EDiv   = infixl 1 "/" ;
-    EInt i = constant i.s ;
-  }
-```
-
-
-#NEW
-
-===Exercises on precedence===
-
-1. Define non-associative and right-associative infix operations
-analogous to ``infixl``.
-
-2. Add a constructor that puts parentheses around expressions
-to raise their precedence, but that is eliminated by a ``def`` definition.
-Test parsing with and without a pipe to ``pt -transform=compute``.
-
-
-
-#NEW
-
-==Code generation as linearization==
-
-Translate arithmetic (infix) to JVM (postfix):
-```
-  2 + 3 * 4
-
-    ===>
-
-  iconst 2 : iconst 3 ; iconst 4 ; imul ; iadd
-```
-Just give linearization rules for JVM:
-```
-  lin
-    EPlus  = postfix "iadd" ;
-    EMinus = postfix "isub" ;
-    ETimes = postfix "imul" ;
-    EDiv   = postfix "idiv" ;
-    EInt i = ss ("iconst" ++ i.s) ;
-  oper
-    postfix : Str -> SS -> SS -> SS = \op,x,y -> 
-      ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
-```
-
-
-#NEW
-
-===Programs with variables===
-
-A **straight code** programming language, with
-**initializations** and **assignments**:
-```
-  int x = 2 + 3 ;  
-  int y = x + 1 ; 
-  x = x + 9 * y ;
-```
-We define programs by the following constructors:
-```
-  fun
-    PEmpty : Prog ;
-    PInit  : Exp -> (Var -> Prog) -> Prog ;
-    PAss   : Var -> Exp  -> Prog  -> Prog ;
-```
-``PInit`` uses higher-order abstract syntax for making the 
-initialized variable available in the **continuation** of the program. 
-
-The abstract syntax tree for the above code is
-```
-  PInit (EPlus (EInt 2) (EInt 3)) (\x -> 
-    PInit (EPlus (EVar x) (EInt 1)) (\y -> 
-      PAss x (EPlus (EVar x) (ETimes (EInt 9) (EVar y))) 
-        PEmpty))
-```
-No uninitialized variables are allowed - there are no constructors for ``Var``! 
-But we do have the rule
-```
-  fun EVar : Var -> Exp ;
-```
-The rest of the grammar is just the same as for arithmetic expressions
-#Rsecprecedence. The best way to implement it is perhaps by writing a
-module that extends the expression module. The most natural start category
-of the extension is ``Prog``.
-
-
-#NEW
-
-===Exercises on code generation===
-
-1. Define a C-like concrete syntax of the straight-code language.
-
-2. Extend the straight-code language to expressions of type ``float``.
-To guarantee type safety, you can define a category ``Typ`` of types, and
-make ``Exp`` and ``Var`` dependent on ``Typ``. Basic floating point expressions
-can be formed from literal of the built-in GF type ``Float``. The arithmetic
-operations should be made polymorphic (as #Rsecpolymorphic).
-
-3. Extend JVM generation to the straight-code language, using
-two more instructions
-- ``iload`` //x//, which loads the value of the variable //x//
-- ``istore`` //x// which stores a value to the variable //x//
-
-
-Thus the code for the example in the previous section is
-```
-  iconst 2 ; iconst 3 ; iadd ; istore x ;
-  iload x ; iconst 1 ; iadd ; istore y ;
-  iload x ; iconst 9 ; iload y ; imul ; iadd ; istore x ;
-```
-
-4. If you made the exercise of adding floating point numbers to
-the language, you can now cash out the main advantage of type checking
-for code generation: selecting type-correct JVM instructions. The floating
-point instructions are precisely the same as the integer one, except that
-the prefix is ``f`` instead of ``i``, and that ``fconst`` takes floating
-point literals as arguments.
-
-
-
-#NEW
-
-=Lesson 7: Embedded grammars=
-
-#Lchapeight
-
-Goals:
-- use grammars as parts of programs written in Haskell and JavaScript
-- implement stand-alone question-answering systems and translators based on
-  GF grammars
-- generate language models for speech recognition from GF grammars
-
-
- 
-#NEW
-
-==Functionalities of an embedded grammar format==
-
-GF grammars can be used as parts of programs written in other programming
-languages, to be called **host languages**.
-This facility is based on several components:
-- PGF: a portable format for multilingual GF grammars
-- a PGF interpreter written in the host language
-- a library in the host language that enables calling the interpreter
-- a way to manipulate abstract syntax trees in the host language
-
-
-
-
-#NEW
-
-==The portable grammar format==
-
-The portable format is called PGF, "Portable Grammar Format".
-
-This format is produced by the GF batch compiler ``gfc``, 
-executable from the operative system shell:
-```
-  % gfc --make SOURCE.gf
-```
-PGF is the recommended format in 
-which final grammar products are distributed, because they
-are stripped from superfluous information and can be started and applied
-faster than sets of separate modules.
-
-Application programmers have never any need to read or modify PGF files. 
-
-PGF thus plays the same role as machine code in 
-general-purpose programming (or bytecode in Java).
-
-
-#NEW
-
-===Haskell: the EmbedAPI module===
-
-The Haskell API contains (among other things) the following types and functions:
-```
-  readPGF   :: FilePath -> IO PGF
-
-  linearize :: PGF -> Language -> Tree -> String
-  parse     :: PGF -> Language -> Category -> String -> [Tree]
-
-  linearizeAll     :: PGF -> Tree -> [String]
-  linearizeAllLang :: PGF -> Tree -> [(Language,String)]
-
-  parseAll     :: PGF -> Category -> String -> [[Tree]]
-  parseAllLang :: PGF -> Category -> String -> [(Language,[Tree])]
-
-  languages    :: PGF -> [Language]
-  categories   :: PGF -> [Category]
-  startCat     :: PGF -> Category
-```
-This is the only module that needs to be imported in the Haskell application.
-It is available as a part of the GF distribution, in the file
-``src/PGF.hs``.
-
-
-
-#NEW
-
-===First application: a translator===
-
-Let us first build a stand-alone translator, which can translate
-in any multilingual grammar between any languages in the grammar.
-```
-module Main where
-
-import PGF
-import System (getArgs)
-
-main :: IO () 
-main = do
-  file:_ <- getArgs
-  gr     <- readPGF file
-  interact (translate gr)
-
-translate :: PGF -> String -> String
-translate gr s = case parseAllLang gr (startCat gr) s of
-  (lg,t:_):_ -> unlines [linearize gr l t | l <- languages gr, l /= lg]
-  _ -> "NO PARSE"
-```
-To run the translator, first compile it by
-```
-  % ghc --make -o trans Translator.hs 
-```
-For this, you need the Haskell compiler [GHC http://www.haskell.org/ghc].
-
-
-#NEW
-
-===Producing GFCC for the translator===
-
-Then produce a GFCC file. For instance, the ``Food`` grammar set can be 
-compiled as follows:
-```
-  % gfc --make FoodEng.gf FoodIta.gf
-```
-This produces the file ``Food.pgf`` (its name comes from the abstract syntax).
-
-The Haskell library function ``interact`` makes the ``trans`` program work
-like a Unix filter, which reads from standard input and writes to standard
-output. Therefore it can be a part of a pipe and read and write files.
-The simplest way to translate is to ``echo`` input to the program:
-```
-  % echo "this wine is delicious" | ./trans Food.pgf
-  questo vino è delizioso
-```
-The result is given in all languages except the input language.
-
-%TODO convert the output to UTF8
-
-
-#NEW
-
-===A translator loop===
-
-To avoid starting the translator over and over again:
-change ``interact`` in the main function to ``loop``, defined as
-follows:
-```
-loop :: (String -> String) -> IO ()
-loop trans = do 
-  s <- getLine
-  if s == "quit" then putStrLn "bye" else do  
-    putStrLn $ trans s
-    loop trans
-```
-The loop keeps on translating line by line until the input line
-is ``quit``.
-
-
-
-#NEW
-
-===A question-answer system===
-
-#Lsecmathprogram
-
-The next application is also a translator, but it adds a
-**transfer** component - a function that transforms syntax trees.
-
-The transfer function we use is one that computes a question into an answer.
-
-The program accepts simple questions about arithmetic and answers
-"yes" or "no" in the language in which the question was made:
-```
-  Is 123 prime?
-  No.
-  77 est impair ?
-  Oui.
-```
-We change the pure translator by giving
-the ``translate`` function the transfer as an extra argument:
-```
-  translate :: (Tree -> Tree) -> PGF -> String -> String
-```
-Ordinary translation as a special case where
-transfer is the identity function (``id`` in Haskell).
-
-To reply in the //same// language as the question:
-```
-  translate tr gr = case parseAllLang gr (startCat gr) s of
-    (lg,t:_):_ -> linearize gr lg (tr t)
-    _ -> "NO PARSE"
-```
-
-
-#NEW
-
-===Abstract syntax of the query system===
-
-Input: abstract syntax judgements
-```
-abstract Query = {
-
-  flags startcat=Question ;
-
-  cat 
-    Answer ; Question ; Object ;
-
-  fun 
-    Even   : Object -> Question ;
-    Odd    : Object -> Question ;
-    Prime  : Object -> Question ;
-    Number : Int -> Object ;
-
-    Yes : Answer ;
-    No  : Answer ;
-}
-```
-
-
-#NEW
-
-===Exporting GF datatypes to Haskell===
-
-To make it easy to define a transfer function, we export the
-abstract syntax to a system of Haskell datatypes:
-```
-  % gfc --output-format=haskell Query.pgf
-```
-It is also possible to produce the Haskell file together with GFCC, by
-```
-  % gfc --make --output-format=haskell QueryEng.gf
-```
-The result is a file named ``Query.hs``, containing a 
-module named ``Query``. 
-
-
-#NEW
-
-Output: Haskell definitions
-```
-module Query where
-import PGF
-
-data GAnswer =
-   GYes 
- | GNo 
-
-data GObject = GNumber GInt 
-
-data GQuestion =
-   GPrime GObject 
- | GOdd GObject 
- | GEven GObject 
-
-newtype GInt = GInt Integer
-```
-All type and constructor names are prefixed with a ``G`` to prevent clashes.
-
-The Haskell module name is the same as the abstract syntax name.
-
-
-#NEW
-
-===The question-answer function===
-
-Haskell's type checker guarantees that the functions are well-typed also with
-respect to GF. 
-```
-answer :: GQuestion -> GAnswer
-answer p = case p of
-  GOdd x   -> test odd x
-  GEven x  -> test even x
-  GPrime x -> test prime x
-
-value :: GObject -> Int
-value e = case e of
-  GNumber (GInt i) -> fromInteger i
-
-test :: (Int -> Bool) -> GObject -> GAnswer
-test f x = if f (value x) then GYes else GNo
-```
-
-
-#NEW
-
-===Converting between Haskell and GF trees===
-
-The generated Haskell module also contains
-```
-class Gf a where 
-  gf :: a -> Tree
-  fg :: Tree -> a
-
-instance Gf GQuestion where
-  gf (GEven x1) = DTr [] (AC (CId "Even")) [gf x1]
-  gf (GOdd x1) = DTr [] (AC (CId "Odd")) [gf x1]
-  gf (GPrime x1) = DTr [] (AC (CId "Prime")) [gf x1]
-  fg t =
-    case t of
-      DTr [] (AC (CId "Even")) [x1] -> GEven (fg x1)
-      DTr [] (AC (CId "Odd")) [x1] -> GOdd (fg x1)
-      DTr [] (AC (CId "Prime")) [x1] -> GPrime (fg x1)
-      _ -> error ("no Question " ++ show t)
-```
-For the programmer, it is enougo to know:
-- all GF names are in Haskell prefixed with ``G``
-- ``gf`` translates from Haskell objects to GF trees
-- ``fg`` translates from GF trees to Haskell objects
-
-
-
-#NEW
-
-===Putting it all together: the transfer definition===
-
-```
-module TransferDef where
-
-import PGF (Tree)
-import Query   -- generated from GF
-
-transfer :: Tree -> Tree
-transfer = gf . answer . fg
-
-answer :: GQuestion -> GAnswer
-answer p = case p of
-  GOdd x   -> test odd x
-  GEven x  -> test even x
-  GPrime x -> test prime x
-
-value :: GObject -> Int
-value e = case e of
-  GNumber (GInt i) -> fromInteger i
-
-test :: (Int -> Bool) -> GObject -> GAnswer
-test f x = if f (value x) then GYes else GNo
-
-prime :: Int -> Bool
-prime x = elem x primes where
-  primes = sieve [2 .. x]
-  sieve (p:xs) = p : sieve [ n | n <- xs, n `mod` p > 0 ]
-  sieve [] = []
-```
-
-
-#NEW
-
-===Putting it all together: the Main module===
-
-Here is the complete code in the Haskell file ``TransferLoop.hs``.
-```
-module Main where
-
-import PGF
-import TransferDef (transfer)
-
-main :: IO () 
-main = do
-  gr <- readPGF "Query.pgf"
-  loop (translate transfer gr)
-
-loop :: (String -> String) -> IO ()
-loop trans = do 
-  s <- getLine
-  if s == "quit" then putStrLn "bye" else do  
-    putStrLn $ trans s
-    loop trans
-
-translate :: (Tree -> Tree) -> PGF -> String -> String
-translate tr gr s = case parseAllLang gr (startCat gr) s of
-  (lg,t:_):_ -> linearize gr lg (tr t)
-  _ -> "NO PARSE"
-```
-
-
-
-#NEW
-
-===Putting it all together: the Makefile===
-
-To automate the production of the system, we write a ``Makefile`` as follows:
-```
-all:
-        gfc --make --output-format=haskell QueryEng
-        ghc --make -o ./math TransferLoop.hs
-        strip math
-```
-(The empty segments starting the command lines in a Makefile must be tabs.)
-Now we can compile the whole system by just typing 
-```
-  make
-```
-Then you can run it by typing
-```
-  ./math
-```
-Just to summarize, the source of the application consists of the following files:
-```
-  Makefile         -- a makefile
-  Math.gf          -- abstract syntax
-  Math???.gf       -- concrete syntaxes
-  TransferDef.hs   -- definition of question-to-answer function
-  TransferLoop.hs  -- Haskell Main module
-```
-
-#NEW
-
-==Web server applications==
-
-PGF files can be used in web servers, for which there is a Haskell library included
-in ``src/server/``. How to build a server for tasks like translators is explained 
-in the [``README`` ../src/server/README] file in that directory. 
-
-One of the servers that can be readily built with the library (without any
-programming required) is **fridge poetry magnets**. It is an application that
-uses an incremental parser to suggest grammatically correct next words. Here
-is an example of its application to the ``Foods`` grammars.
-
-[food-magnet.png]
-
-
-#NEW
-
-==JavaScript applications==
-
-JavaScript is a programming language that has interpreters built in in most
-web browsers. It is therefore usable for client side web programs, which can even
-be run without access to the internet. The following figure shows a JavaScript
-program compiled from GF grammars as run on an iPhone.
-
-[iphone.jpg]
-
-
-#NEW
-
-===Compiling to JavaScript===
-
-JavaScript is one of the output formats of the GF batch compiler. Thus the following
-command generates a JavaScript file from two ``Food`` grammars.
-```
-  % gfc --make --output-format=js FoodEng.gf FoodIta.gf
-```
-The name of the generated file is ``Food.js``, derived from the top-most abstract
-syntax name. This file contains the multilingual grammar as a JavaScript object.
-
-
-#NEW
-
-===Using the JavaScript grammar===
-
-To perform parsing and linearization, the run-time library
-``gflib.js`` is used. It is included in ``GF/lib/javascript/``, together with
-some other JavaScript and HTML files; these files can be used 
-as templates for building applications.
-
-An example of usage is 
-[``translator.html`` ../lib/javascript/translator.html], 
-which is in fact initialized with
-a pointer to the Food grammar, so that it provides translation between the English
-and Italian grammars:
-
-[food-js.png]
-
-The grammar must have the name ``grammar.js``. The abstract syntax and start 
-category names in ``translator.html`` must match the ones in the grammar.
-With these changes, the translator works for any multilingual grammar.
-
-
-
-
-
-#NEW
-
-==Language models for speech recognition==
-
-The standard way of using GF in speech recognition is by building
-**grammar-based language models**. 
-
-GF supports several formats, including
-GSL, the formatused in the [Nuance speech recognizer www.nuance.com].
-
-GSL is produced from GF by running ``gfc`` with the flag
-``--output-format=gsl``. 
-
-Example: GSL  generated from ``FoodsEng.gf``.
-```
-  % gfc --make --output-format=gsl FoodsEng.gf
-  % more FoodsEng.gsl
-
-  ;GSL2.0
-  ; Nuance speech recognition grammar for FoodsEng
-  ; Generated by GF
-
-  .MAIN Phrase_cat
-
-  Item_1 [("that" Kind_1) ("this" Kind_1)]
-  Item_2 [("these" Kind_2) ("those" Kind_2)]
-  Item_cat [Item_1 Item_2]
-  Kind_1 ["cheese" "fish" "pizza" (Quality_1 Kind_1)
-          "wine"]
-  Kind_2 ["cheeses" "fish" "pizzas"
-          (Quality_1 Kind_2) "wines"]
-  Kind_cat [Kind_1 Kind_2]
-  Phrase_1 [(Item_1 "is" Quality_1)
-            (Item_2 "are" Quality_1)]
-  Phrase_cat Phrase_1
-  
-  Quality_1 ["boring" "delicious" "expensive"
-             "fresh" "italian" ("very" Quality_1) "warm"]
-  Quality_cat Quality_1
-```
-
-
-#NEW
-
-===More speech recognition grammar formats===
-
-Other formats available via the ``--output-format`` flag include:
-
-    || Format            | Description ||
-    | ``gsl``            | Nuance GSL speech recognition grammar
-    | ``jsgf``           | Java Speech Grammar Format (JSGF)
-    | ``jsgf_sisr_old``  | JSGF with semantic tags in SISR  WD 20030401 format
-    | ``srgs_abnf``      | SRGS ABNF format
-    | ``srgs_xml``       | SRGS XML format
-    | ``srgs_xml_prob``  | SRGS XML format, with weights
-    | ``slf``            | finite automaton in the HTK SLF format
-    | ``slf_sub``        | finite automaton with sub-automata in HTK SLF
-
-All currently available formats can be seen with ``gfc --help``.
-
-
diff --git a/doc/gf3-release.html b/doc/gf3-release.html
deleted file mode 100644
--- a/doc/gf3-release.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>GF 3.0</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>GF 3.0</H1>
-<FONT SIZE="4">
-<I>Krasimir Angelov, Björn Bringert, and Aarne Ranta</I><BR>
-Beta release, 27 June 2008
-</FONT></CENTER>
-
-<P>
-GF Version 3.0 is a major revision of GF. The source language is a superset of the
-language in 2.9, which means backward compatibility. But the target languages, the
-compiler implementation, and the functionalities (e.g. the shell) have undergone
-radical changes. 
-</P>
-<H2>New features</H2>
-<P>
-Here is a summary of the main novelties visible to the user:
-</P>
-<UL>
-<LI><B>Size</B>: the source code and the executable binary size have gone 
-  down to about the half of 2.9.
-<LI><B>Portability</B>: the new back end format PGF (Portable Grammar Format) is
-  much simpler than the old GFC format, and therefore easier to port to new
-  platforms.
-<LI><B>Multilingual web page support</B>: as an example of portability, GF 3.0 provides a
-  compiler from PGF to JavaScript. There are also JavaScript libraries for creating
-  translators and syntax editors as client-side web applications.
-<LI><B>Incremental parsing</B>: there is a possibility of word completion when
-  input strings are sent to the parser.
-<LI><B>Application programmer's interfaces</B>: both source-GF and PGF formats,
-  the shell, and the compiler are accessible via high-level APIs.
-<LI><B>Resource library version 1.4</B>: more coverage, more languages; some of
-  the new GF language features are exploited.
-<LI><B>Uniform character encoding</B>: UTF8 in generated files, user-definable in
-  source files
-</UL>
-
-<H2>Non-supported features</H2>
-<P>
-There are some features of GF 2.9 that will <I>not</I> work in the 3.0 beta release.
-</P>
-<UL>
-<LI>Java Editor GUI: we now see the JavaScript editor as the main form of 
-  syntax editing.
-<LI>Pre-module multi-file grammar format: the grammar format of GF before version 2.0 
-  is still not yet supported.
-<LI>Context-free and EBNF input grammar formats.
-<LI>Probabilistic GF grammars.
-<LI>Some output formats: LBNF.
-<LI>Some GF shell commands: while the main ones will be supported with their familiar
-  syntax and options, some old commands have not been included. The GF shell
-  command <CODE>help -changes</CODE> gives the actual list.
-</UL>
-
-<P>
-Users who want to have these features are welcome to contact us, 
-and even more welcome to contribute code that restores them!
-</P>
-<H2>GF language extensions</H2>
-<P>
-Operations for defining patterns.
-</P>
-<P>
-Inheritance of overload groups.
-</P>
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml doc/gf3-release.txt -->
-</BODY></HTML>
diff --git a/doc/gf3-release.txt b/doc/gf3-release.txt
deleted file mode 100644
--- a/doc/gf3-release.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-GF 3.0
-Krasimir Angelov, Björn Bringert, and Aarne Ranta
-Beta release, 27 June 2008
-
-
-GF Version 3.0 is a major revision of GF. The source language is a superset of the
-language in 2.9, which means backward compatibility. But the target languages, the
-compiler implementation, and the functionalities (e.g. the shell) have undergone
-radical changes. 
-
-
-==New features==
-
-Here is a summary of the main novelties visible to the user:
-- **Size**: the source code and the executable binary size have gone 
-  down to about the half of 2.9.
-- **Portability**: the new back end format PGF (Portable Grammar Format) is
-  much simpler than the old GFC format, and therefore easier to port to new
-  platforms.
-- **Multilingual web page support**: as an example of portability, GF 3.0 provides a
-  compiler from PGF to JavaScript. There are also JavaScript libraries for creating
-  translators and syntax editors as client-side web applications.
-- **Incremental parsing**: there is a possibility of word completion when
-  input strings are sent to the parser.
-- **Application programmer's interfaces**: both source-GF and PGF formats,
-  the shell, and the compiler are accessible via high-level APIs.
-- **Resource library version 1.4**: more coverage, more languages; some of
-  the new GF language features are exploited.
-- **Uniform character encoding**: UTF8 in generated files, user-definable in
-  source files
-
-
-==Non-supported features==
-
-There are some features of GF 2.9 that will //not// work in the 3.0 beta release.
-- Java Editor GUI: we now see the JavaScript editor as the main form of 
-  syntax editing.
-- Pre-module multi-file grammar format: the grammar format of GF before version 2.0 
-  is still not yet supported.
-- Context-free and EBNF input grammar formats.
-- Probabilistic GF grammars.
-- Some output formats: LBNF.
-- Some GF shell commands: while the main ones will be supported with their familiar
-  syntax and options, some old commands have not been included. The GF shell
-  command ``help -changes`` gives the actual list.
-
-
-Users who want to have these features are welcome to contact us, 
-and even more welcome to contribute code that restores them!
-
-
-==GF language extensions==
-
-Operations for defining patterns.
-
-Inheritance of overload groups.
-
-
diff --git a/doc/index.html b/doc/index.html
--- a/doc/index.html
+++ b/doc/index.html
@@ -13,31 +13,23 @@
 <h1>Grammatical Framework Documents</h1>
 </center>
 
-<b>Top-3 documents</b>:
 
-<a href="gf-tutorial.html">Tutorial</a>
+<b>Top-5 documents</b>:
 
-|
+<a href="gf-quickstart.html">Quick start instruction</a>.
 
-<a href="gf-refman.html">ReferenceManual</a>
 
-|
+<a href="tutorial/gf-tutorial.html">Old Tutorial</a>, application-oriented.
 
-<a href="../lib/resource/doc/synopsis.html">LibrarySynopsis</a>
+<a href="gf-lrec-2010.pdf">New Tutorial</a>, linguistics-oriented.
 
+<a href="gf-refman.html">ReferenceManual</a>.
 
+<a href="../lib/resource/doc/synopsis.html">LibrarySynopsis</a>.
 
-<h2>Tutorials</h2>
 
-<a href="gf-quickstart.html">Quick start instruction</a>.
 
-<p>
 
-<a href="gf-tutorial.html">GF Tutorial</a>,
-Now up-to-date for GF version 2.9. Covers all of GF.
-
-
-
 <h2>Language and system documentation</h2>
 
 <a href="gf-reference.html">GF Quick Reference</a>. Also available in
@@ -49,144 +41,13 @@
 <a href="gf-refman.html">GF Reference Manual</a>. A full-scale reference
 manual of the GF language.
 
-<p>
 
-<a href="gf-manual.html">
-User Manual</a> explaining the GF user interfaces and command language (slightly
-outdated).
 
-<p>
 
-<a href="../../GF2.0/doc/javaGUImanual/javaGUImanual.htm">Editor User Manual</a>
-on editing in the Java interface.
-
-<p>
-
-<a href="gf-compiler.png">Chart of GF grammar compiler phases</a>.
-
-
-
-<h2>Grammar library documentation</h2>
-
-<a href="gf-tutorial.html#chapfive">Resource Grammar Tutorial Chapter</a>.
-
-<p>
-
-<a href="../lib/resource/doc/synopsis.html">Resource Grammar Synopsis</a>
-for library users. With APIs and use examples.
-
-<p>
-
-<a href="../lib/resource/doc/Resource-HOWTO.html">
-Resource Grammar HOWTO</a>
-for library authors.
-
-
-
-
-<h2>Embedding GF grammars in computer programs</h2>
-
-<a href="gf-tutorial.html#chapeight">Embedded Grammar Tutorial Chapter</a>.
-
-<p>
-
-<a href="http://www.cs.chalmers.se/~bringert/gf/gf-java.html">
-Embedded GF Interpreter</a> manual for using GF grammars in Java programs.
-
-<p>
-
-<a href="http://www.cs.chalmers.se/~aarne/GF/src/GF/GFCC/API.hs">
-Embedded GF API</a> for using GF grammars in Haskell programs.
-
-<p>
-
-<a href="http://www.ling.gu.se/~peb/index.cgi/Software">
-MCFG/GF library for Prolog</a>, 
-for using GF grammars in Prolog programs.
-
-
-
-<h2>Theoretical studies</h2>
-
-<a href="http://www.cs.chalmers.se/~aarne/articles/gf-jfp.ps.gz">
-Grammatical Framework: A Type-Theoretical
-Grammar Formalism</a> (ps.gz). Theoretical paper on GF by A. Ranta. A later
-version appeared
-in <i>The Journal of Functional Programming</i>, vol. 14:2. 2004, pp. 145-189.
-The standard reference on GF.
-
-<p>
-
-<a href="http://www.ling.gu.se/~peb/pubs/Ljunglof-2004a.pdf">
-Expressivity and Complexity of the  Grammatical Framework</a>,
-PhD Thesis by
-<a href="http://www.ling.gu.se/~peb">Peter Ljunglöf</a>.
-
-
-
-<h2>Introductory talks</h2>
-
-<a href="http://www.cs.chalmers.se/~aarne/GF2.0/doc/short/gf-short.html">
-GF in 25 Minutes</a> - overview for computer science audience.
-
-<p>
-
-
-<a href="http://www.cs.chalmers.se/~aarne/slides/gf-rocquencourt.pdf">
-Slides on GF theory and implementation</a> given
-at INRIA Rocquencourt in December 2003.
-
-<p>
-  
-<a
-href="http://www.cs.chalmers.se/~aarne/slides/webalt-2005.pdf">
-Slides on example-based grammar writing</a> and a short introduction
-to GF grammars.
-
-<p>
-
-<a
-href="http://www.cs.chalmers.se/~aarne/course-langtech/lectures/lectures.html">
-Course notes on Natural Language Technology</a>, includes
-slides on using GF.
-
-
-
-<h2>Examples and applications</h2>
-
-<a href="http://www.cs.chalmers.se/~krijo/thesis/thesisA4.pdf">
-Formal and Informal Software Specifications</a>,
-PhD Thesis by
-<a href="http://www.cs.chalmers.se/~krijo">Kristofer Johannisson</a>.
-
-
-<p>
-
-<a href="http://www.dtek.chalmers.se/~d00bring/publ/exjobb/embedded-grammars.pdf">
-Embedded grammars</a>,
-Master's thesis by 
-<a href="http://www.cs.chalmers.se/~bringert/">Björn Bringert</a>
-
-<p>
-
-<a
-href="http://www.cs.chalmers.se/~bringert/misc/tramdemo.avi">Demo film</a>
-of a multimodal dialogue system built with embedded grammars.
-
-
-<p>
-
-<a href="gfcc.pdf">
-GFCC</a> (pdf): 
-report on a compiler from a fragment of C to JVM, written in GF.
-
-
-
-<h2>More</h2>
+<h2>Publications</h2>
 
 <a href="gf-bibliography.html">
-Bibliography</a>: 
-more publications on GF, as well as background literature.
+Bibliography</a>: more publications on GF, as well as background literature.
 
 
 </body></html>
diff --git a/doc/iphone.jpg b/doc/iphone.jpg
deleted file mode 100644
Binary files a/doc/iphone.jpg and /dev/null differ
diff --git a/doc/mytree.png b/doc/mytree.png
deleted file mode 100644
Binary files a/doc/mytree.png and /dev/null differ
diff --git a/doc/school-langs.dot b/doc/school-langs.dot
deleted file mode 100644
--- a/doc/school-langs.dot
+++ /dev/null
@@ -1,106 +0,0 @@
-graph{
-
-size = "8,8" ;
-
-overlap = scale ;
-
-"Abs" [label = "Abstract Syntax", style = "solid", shape = "rectangle"] ;
-
-"1"   [label = "Bulgarian", style = "solid", shape = "ellipse", color = "green"] ;
-"1" -- "Abs" [style = "solid"];
-
-"2"   [label = "Czech", style = "solid", shape = "ellipse", color = "red"] ;
-"2" -- "Abs" [style = "solid"];
-
-"3"   [label = "Danish", style = "solid", shape = "ellipse", color = "green"] ;
-"3" -- "Abs" [style = "solid"];
-
-"4"   [label = "German", style = "solid", shape = "ellipse", color = "green"] ;
-"4" -- "Abs" [style = "solid"];
-
-"5"   [label = "Estonian", style = "solid", shape = "ellipse", color = "red"] ;
-"5" -- "Abs" [style = "solid"];
-
-"6"   [label = "Greek", style = "solid", shape = "ellipse", color = "red"] ;
-"6" -- "Abs" [style = "solid"];
-
-"7"   [label = "English", style = "solid", shape = "ellipse", color = "green"] ;
-"7" -- "Abs" [style = "solid"];
-
-"8"   [label = "Spanish", style = "solid", shape = "ellipse", color = "green"] ;
-"8" -- "Abs" [style = "solid"];
-
-"9"   [label = "French", style = "solid", shape = "ellipse", color = "green"] ;
-"9" -- "Abs" [style = "solid"];
-
-"10"   [label = "Italian", style = "solid", shape = "ellipse", color = "green"] ;
-"10" -- "Abs" [style = "solid"];
-
-"11"   [label = "Latvian", style = "solid", shape = "ellipse", color = "red"] ;
-"11" -- "Abs" [style = "solid"];
-
-"12"   [label = "Lithuanian", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "12" [style = "solid"];
-
-"13"   [label = "Irish", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "13" [style = "solid"];
-
-"14"   [label = "Hungarian", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "14" [style = "solid"];
-
-"15"   [label = "Maltese", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "15" [style = "solid"];
-
-"16"   [label = "Dutch", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "16" [style = "solid"];
-
-"17"   [label = "Polish", style = "solid", shape = "ellipse", color = "orange"] ;
-"Abs" -- "17" [style = "solid"];
-
-"18"   [label = "Portuguese", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "18" [style = "solid"];
-
-"19"   [label = "Slovak", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "19" [style = "solid"];
-
-"20"   [label = "Slovene", style = "solid", shape = "ellipse", color = "red"] ;
-"Abs" -- "20" [style = "solid"];
-
-"21"   [label = "Romanian", style = "solid", shape = "ellipse", color = "orange"] ;
-"Abs" -- "21" [style = "solid"];
-
-"22"   [label = "Finnish", style = "solid", shape = "ellipse", color = "green"] ;
-"Abs" -- "22" [style = "solid"];
-
-"23"   [label = "Swedish", style = "solid", shape = "ellipse", color = "green"] ;
-"Abs" -- "23" [style = "solid"];
-
-"24"   [label = "Catalan", style = "dotted", shape = "ellipse", color = "green"] ;
-"Abs" -- "24" [style = "solid"];
-
-"25"   [label = "Norwegian", style = "dotted", shape = "ellipse", color = "green"] ;
-"Abs" -- "25" [style = "solid"];
-
-"26"   [label = "Russian", style = "dotted", shape = "ellipse", color = "green"] ;
-"Abs" -- "26" [style = "solid"];
-
-"27"   [label = "Interlingua", style = "dotted", shape = "ellipse", color = "green"] ;
-"Abs" -- "27" [style = "solid"];
-
-"28"   [label = "Latin", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "28" [style = "solid"];
-"29"   [label = "Turkish", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "29" [style = "solid"];
-"30"   [label = "Hindi", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "30" [style = "solid"];
-"31"   [label = "Thai", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "31" [style = "solid"];
-"32"   [label = "Urdu", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "32" [style = "solid"];
-"33"   [label = "Telugu", style = "dotted", shape = "ellipse", color = "red"] ;
-"Abs" -- "33" [style = "solid"];
-"34"   [label = "Arabic", style = "dotted", shape = "ellipse", color = "orange"] ;
-"Abs" -- "34" [style = "solid"];
-
-
-}
diff --git a/doc/school-langs.png b/doc/school-langs.png
deleted file mode 100644
Binary files a/doc/school-langs.png and /dev/null differ
diff --git a/doc/summer-align.png b/doc/summer-align.png
deleted file mode 100644
Binary files a/doc/summer-align.png and /dev/null differ
diff --git a/doc/summer-langs.png b/doc/summer-langs.png
deleted file mode 100644
Binary files a/doc/summer-langs.png and /dev/null differ
diff --git a/doc/tutorial/10lang-small.png b/doc/tutorial/10lang-small.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/10lang-small.png differ
diff --git a/doc/tutorial/align2.png b/doc/tutorial/align2.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/align2.png differ
diff --git a/doc/tutorial/categories.png b/doc/tutorial/categories.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/categories.png differ
diff --git a/doc/tutorial/food-js.png b/doc/tutorial/food-js.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/food-js.png differ
diff --git a/doc/tutorial/food-magnet.png b/doc/tutorial/food-magnet.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/food-magnet.png differ
diff --git a/doc/tutorial/foodmarket.png b/doc/tutorial/foodmarket.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/foodmarket.png differ
diff --git a/doc/tutorial/gf-tutorial.html b/doc/tutorial/gf-tutorial.html
new file mode 100644
--- /dev/null
+++ b/doc/tutorial/gf-tutorial.html
@@ -0,0 +1,5871 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>Grammatical Framework Tutorial</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>Grammatical Framework Tutorial</H1>
+<FONT SIZE="4">
+<I>Aarne Ranta</I><BR>
+December 2010 for GF 3.2 
+</FONT></CENTER>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+  <UL>
+  <LI><A HREF="#toc1">Overview</A>
+    <UL>
+    <LI><A HREF="#toc2">Outline</A>
+    <LI><A HREF="#toc3">Slides</A>
+    </UL>
+  <LI><A HREF="#toc4">Lesson 1: Getting Started with GF</A>
+    <UL>
+    <LI><A HREF="#toc5">What GF is</A>
+    <LI><A HREF="#toc6">GF grammars and language processing tasks</A>
+    <LI><A HREF="#toc7">Getting the GF system</A>
+    <LI><A HREF="#toc8">Running the GF system</A>
+    <LI><A HREF="#toc9">A "Hello World" grammar</A>
+      <UL>
+      <LI><A HREF="#toc10">The program: abstract syntax and concrete syntaxes</A>
+      <LI><A HREF="#toc11">Using grammars in the GF system</A>
+      <LI><A HREF="#toc12">Exercises on the Hello World grammar</A>
+      </UL>
+    <LI><A HREF="#toc13">Using grammars from outside GF</A>
+    <LI><A HREF="#toc14">GF scripts</A>
+    <LI><A HREF="#toc15">What else can be done with the grammar</A>
+    <LI><A HREF="#toc16">Embedded grammar applications</A>
+    </UL>
+  <LI><A HREF="#toc17">Lesson 2: Designing a grammar for complex phrases</A>
+    <UL>
+    <LI><A HREF="#toc18">The abstract syntax Food</A>
+    <LI><A HREF="#toc19">The concrete syntax FoodEng</A>
+      <UL>
+      <LI><A HREF="#toc20">Exercises on the Food grammar</A>
+      </UL>
+    <LI><A HREF="#toc21">Commands for testing grammars</A>
+      <UL>
+      <LI><A HREF="#toc22">Generating trees and strings</A>
+      <LI><A HREF="#toc23">Exercises on generation</A>
+      <LI><A HREF="#toc24">More on pipes: tracing</A>
+      <LI><A HREF="#toc25">Writing and reading files</A>
+      <LI><A HREF="#toc26">Visualizing trees</A>
+      <LI><A HREF="#toc27">System commands</A>
+      </UL>
+    <LI><A HREF="#toc28">An Italian concrete syntax</A>
+      <UL>
+      <LI><A HREF="#toc29">Exercises on multilinguality</A>
+      </UL>
+    <LI><A HREF="#toc30">Free variation</A>
+    <LI><A HREF="#toc31">More application of multilingual grammars</A>
+      <UL>
+      <LI><A HREF="#toc32">Multilingual treebanks</A>
+      <LI><A HREF="#toc33">Translation quiz</A>
+      </UL>
+    <LI><A HREF="#toc34">Context-free grammars and GF</A>
+      <UL>
+      <LI><A HREF="#toc35">The "cf" grammar format</A>
+      <LI><A HREF="#toc36">Restrictions of context-free grammars</A>
+      </UL>
+    <LI><A HREF="#toc37">Modules and files</A>
+    <LI><A HREF="#toc38">Using operations and resource modules</A>
+      <UL>
+      <LI><A HREF="#toc39">Operation definitions</A>
+      <LI><A HREF="#toc40">The ``resource`` module type</A>
+      <LI><A HREF="#toc41">Opening a resource</A>
+      <LI><A HREF="#toc42">Partial application</A>
+      <LI><A HREF="#toc43">Testing resource modules</A>
+      </UL>
+    <LI><A HREF="#toc44">Grammar architecture</A>
+      <UL>
+      <LI><A HREF="#toc45">Extending a grammar</A>
+      <LI><A HREF="#toc46">Multiple inheritance</A>
+      </UL>
+    </UL>
+  <LI><A HREF="#toc47">Lesson 3: Grammars with parameters</A>
+    <UL>
+    <LI><A HREF="#toc48">The problem: words have to be inflected</A>
+    <LI><A HREF="#toc49">Parameters and tables</A>
+    <LI><A HREF="#toc50">Inflection tables and paradigms</A>
+      <UL>
+      <LI><A HREF="#toc51">Exercises on morphology</A>
+      </UL>
+    <LI><A HREF="#toc52">Using parameters in concrete syntax</A>
+      <UL>
+      <LI><A HREF="#toc53">Agreement</A>
+      <LI><A HREF="#toc54">Determiners</A>
+      <LI><A HREF="#toc55">Parametric vs. inherent features</A>
+      </UL>
+    <LI><A HREF="#toc56">An English concrete syntax for Foods with parameters</A>
+    <LI><A HREF="#toc57">More on inflection paradigms</A>
+      <UL>
+      <LI><A HREF="#toc58">Worst-case functions</A>
+      <LI><A HREF="#toc59">Smart paradigms</A>
+      <LI><A HREF="#toc60">Exercises on regular patterns</A>
+      <LI><A HREF="#toc61">Function types with variables</A>
+      <LI><A HREF="#toc62">Separating operation types and definitions</A>
+      <LI><A HREF="#toc63">Overloading of operations</A>
+      <LI><A HREF="#toc64">Morphological analysis and morphology quiz</A>
+      </UL>
+    <LI><A HREF="#toc65">The Italian Foods grammar</A>
+      <UL>
+      <LI><A HREF="#toc66">Exercises on using parameters</A>
+      </UL>
+    <LI><A HREF="#toc67">Discontinuous constituents</A>
+    <LI><A HREF="#toc68">Strings at compile time vs. run time</A>
+      <UL>
+      <LI><A HREF="#toc69">Supplementary constructs for concrete syntax</A>
+      </UL>
+    </UL>
+  <LI><A HREF="#toc70">Lesson 4: Using the resource grammar library</A>
+    <UL>
+    <LI><A HREF="#toc71">The coverage of the library</A>
+    <LI><A HREF="#toc72">The structure of the library</A>
+      <UL>
+      <LI><A HREF="#toc73">Lexical vs. phrasal rules</A>
+      <LI><A HREF="#toc74">Lexical categories</A>
+      <LI><A HREF="#toc75">Lexical rules</A>
+      <LI><A HREF="#toc76">Resource lexicon</A>
+      <LI><A HREF="#toc77">Phrasal categories</A>
+      <LI><A HREF="#toc78">Syntactic combinations</A>
+      <LI><A HREF="#toc79">Example syntactic combination</A>
+      </UL>
+    <LI><A HREF="#toc80">The resource API</A>
+      <UL>
+      <LI><A HREF="#toc81">A miniature resource API: categories</A>
+      <LI><A HREF="#toc82">A miniature resource API: rules</A>
+      <LI><A HREF="#toc83">A miniature resource API: structural words</A>
+      <LI><A HREF="#toc84">A miniature resource API: paradigms</A>
+      <LI><A HREF="#toc85">A miniature resource API: more paradigms</A>
+      <LI><A HREF="#toc86">Exercises</A>
+      </UL>
+    <LI><A HREF="#toc87">Example: English</A>
+      <UL>
+      <LI><A HREF="#toc88">English example: linearization types and combination rules</A>
+      <LI><A HREF="#toc89">English example: lexical rules</A>
+      <LI><A HREF="#toc90">English example: exercises</A>
+      </UL>
+    <LI><A HREF="#toc91">Functor implementation of multilingual grammars</A>
+      <UL>
+      <LI><A HREF="#toc92">New language by copy and paste</A>
+      <LI><A HREF="#toc93">Functors: functions on the module level</A>
+      <LI><A HREF="#toc94">Code for the Foods functor</A>
+      <LI><A HREF="#toc95">Code for the LexFoods interface</A>
+      <LI><A HREF="#toc96">Code for a German instance of the lexicon</A>
+      <LI><A HREF="#toc97">Code for a German functor instantiation</A>
+      <LI><A HREF="#toc98">Adding languages to a functor implementation</A>
+      <LI><A HREF="#toc99">Example: adding Finnish</A>
+      <LI><A HREF="#toc100">A design pattern</A>
+      <LI><A HREF="#toc101">Functors: exercises</A>
+      </UL>
+    <LI><A HREF="#toc102">Restricted inheritance</A>
+      <UL>
+      <LI><A HREF="#toc103">A problem with functors</A>
+      <LI><A HREF="#toc104">Restricted inheritance: include or exclude</A>
+      <LI><A HREF="#toc105">The functor problem solved</A>
+      </UL>
+    <LI><A HREF="#toc106">Grammar reuse</A>
+      <UL>
+      <LI><A HREF="#toc107">Library exercises</A>
+      </UL>
+    <LI><A HREF="#toc108">Tenses</A>
+    </UL>
+  <LI><A HREF="#toc109">Lesson 5: Refining semantics in abstract syntax</A>
+    <UL>
+    <LI><A HREF="#toc110">Dependent types</A>
+      <UL>
+      <LI><A HREF="#toc111">A dependent type system</A>
+      <LI><A HREF="#toc112">Examples of devices and actions</A>
+      <LI><A HREF="#toc113">Linearization and parsing with dependent types</A>
+      <LI><A HREF="#toc114">Solving metavariables</A>
+      </UL>
+    <LI><A HREF="#toc115">Polymorphism</A>
+      <UL>
+      <LI><A HREF="#toc116">Dependent types: exercises</A>
+      </UL>
+    <LI><A HREF="#toc117">Proof objects</A>
+      <UL>
+      <LI><A HREF="#toc118">Proof-carrying documents</A>
+      </UL>
+    <LI><A HREF="#toc119">Restricted polymorphism</A>
+      <UL>
+      <LI><A HREF="#toc120">Example: classes for switching and dimming</A>
+      </UL>
+    <LI><A HREF="#toc121">Variable bindings</A>
+      <UL>
+      <LI><A HREF="#toc122">Higher-order abstract syntax</A>
+      <LI><A HREF="#toc123">Higher-order abstract syntax: linearization</A>
+      <LI><A HREF="#toc124">Eta expansion</A>
+      <LI><A HREF="#toc125">Parsing variable bindings</A>
+      <LI><A HREF="#toc126">Exercises on variable bindings</A>
+      </UL>
+    <LI><A HREF="#toc127">Semantic definitions</A>
+      <UL>
+      <LI><A HREF="#toc128">Computing a tree</A>
+      <LI><A HREF="#toc129">Definitional equality</A>
+      <LI><A HREF="#toc130">Judgement forms for constructors</A>
+      <LI><A HREF="#toc131">Exercises on semantic definitions</A>
+      </UL>
+    <LI><A HREF="#toc132">Lesson 6: Grammars of formal languages</A>
+      <UL>
+      <LI><A HREF="#toc133">Arithmetic expressions</A>
+      <LI><A HREF="#toc134">Concrete syntax: a simple approach</A>
+      </UL>
+    <LI><A HREF="#toc135">Lexing and unlexing</A>
+      <UL>
+      <LI><A HREF="#toc136">Most common lexers and unlexers</A>
+      </UL>
+    <LI><A HREF="#toc137">Precedence and fixity</A>
+      <UL>
+      <LI><A HREF="#toc138">Precedence as a parameter</A>
+      <LI><A HREF="#toc139">Fixities</A>
+      <LI><A HREF="#toc140">Exercises on precedence</A>
+      </UL>
+    <LI><A HREF="#toc141">Code generation as linearization</A>
+      <UL>
+      <LI><A HREF="#toc142">Programs with variables</A>
+      <LI><A HREF="#toc143">Exercises on code generation</A>
+      </UL>
+    </UL>
+  <LI><A HREF="#toc144">Lesson 7: Embedded grammars</A>
+    <UL>
+    <LI><A HREF="#toc145">Functionalities of an embedded grammar format</A>
+    <LI><A HREF="#toc146">The portable grammar format</A>
+      <UL>
+      <LI><A HREF="#toc147">Haskell: the EmbedAPI module</A>
+      <LI><A HREF="#toc148">First application: a translator</A>
+      <LI><A HREF="#toc149">Producing PGF for the translator</A>
+      <LI><A HREF="#toc150">A translator loop</A>
+      <LI><A HREF="#toc151">A question-answer system</A>
+      <LI><A HREF="#toc152">Abstract syntax of the query system</A>
+      <LI><A HREF="#toc153">Exporting GF datatypes to Haskell</A>
+      <LI><A HREF="#toc154">The question-answer function</A>
+      <LI><A HREF="#toc155">Converting between Haskell and GF trees</A>
+      <LI><A HREF="#toc156">Putting it all together: the transfer definition</A>
+      <LI><A HREF="#toc157">Putting it all together: the Main module</A>
+      <LI><A HREF="#toc158">Putting it all together: the Makefile</A>
+      </UL>
+    <LI><A HREF="#toc159">Web server applications</A>
+    <LI><A HREF="#toc160">JavaScript applications</A>
+      <UL>
+      <LI><A HREF="#toc161">Compiling to JavaScript</A>
+      <LI><A HREF="#toc162">Using the JavaScript grammar</A>
+      </UL>
+    <LI><A HREF="#toc163">Language models for speech recognition</A>
+      <UL>
+      <LI><A HREF="#toc164">More speech recognition grammar formats</A>
+      </UL>
+    </UL>
+  </UL>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc1"></A>
+<H1>Overview</H1>
+<P>
+This is a hands-on introduction to grammar writing in GF.
+</P>
+<P>
+Main ingredients of GF:
+</P>
+<UL>
+<LI>linguistics
+<LI>functional programming
+</UL>
+
+<P>
+Prerequisites:
+</P>
+<UL>
+<LI>some previous experience from some programming language
+<LI>the basics of using computers, e.g. the use of 
+  text editors and the management of files.
+<LI>knowledge of Unix commands is useful but not necessary
+<LI>knowledge of many natural languages may add fun to experience
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc2"></A>
+<H2>Outline</H2>
+<P>
+<a href="#chaptwo">Lesson 1</a>: a multilingual "Hello World" grammar. English, Finnish, Italian.
+</P>
+<P>
+<a href="#chapthree">Lesson 2</a>: a larger grammar for the domain of food. English and Italian.
+</P>
+<P>
+<a href="#chaptwo">Lesson 3</a>: parameters - morphology and agreement.
+</P>
+<P>
+<a href="#chapfive">Lesson 4</a>: using the resource grammar library.
+</P>
+<P>
+<a href="#chapsix">Lesson 5</a>: semantics -  <B>dependent types</B>, <B>variable bindings</B>, 
+and <B>semantic definitions</B>.
+</P>
+<P>
+<a href="#chapseven">Lesson 6</a>: implementing formal languages.
+</P>
+<P>
+<a href="#chapeight">Lesson 7</a>: embedded grammar applications.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc3"></A>
+<H2>Slides</H2>
+<P>
+You can chop this tutorial into a set of slides by the command
+</P>
+<PRE>
+    htmls gf-tutorial.html
+</PRE>
+<P>
+where the program <CODE>htmls</CODE> is distributed with GF (see below), in
+</P>
+<P>
+  <A HREF="http://grammaticalframework.org/src/tools/Htmls.hs"><CODE>GF/src/tools/Htmls.hs</CODE></A>
+</P>
+<P>
+The slides will appear as a set of files beginning with <CODE>01-gf-tutorial.htmls</CODE>.
+</P>
+<P>
+Internal links will not work in the slide format, except for those in the
+upper left corner of each slide, and the links behind the "Contents" link.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc4"></A>
+<H1>Lesson 1: Getting Started with GF</H1>
+<P>
+<a name="chaptwo"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>install and run GF
+<LI>write the first GF grammar: a "Hello World" grammar in three languages
+<LI>use GF for translation and multilingual generation
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc5"></A>
+<H2>What GF is</H2>
+<P>
+We use the term GF for three different things:
+</P>
+<UL>
+<LI>a <B>system</B> (computer program) used for working with grammars
+<LI>a <B>programming language</B> in which grammars can be written
+<LI>a <B>theory</B> about grammars and languages
+</UL>
+
+<P>
+The GF system is an implementation
+of the GF programming language, which in turn is built on the ideas of the
+GF theory. 
+</P>
+<P>
+The focus of this tutorial is on using the GF programming language.
+</P>
+<P>
+At the same time, we learn the way of thinking in the GF theory. 
+</P>
+<P>
+We make the grammars run on a computer by 
+using the GF system. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc6"></A>
+<H2>GF grammars and language processing tasks</H2>
+<P>
+A GF program is called a <B>grammar</B>. 
+</P>
+<P>
+A grammar defines a language. 
+</P>
+<P>
+From this definition, language processing components can be derived:
+</P>
+<UL>
+<LI><B>parsing</B>: to analyse the language
+<LI><B>linearization</B>: to generate the language
+<LI><B>translation</B>: to analyse one language and generate another
+</UL>
+
+<P>
+In general, a GF grammar is <B>multilingual</B>:
+</P>
+<UL>
+<LI>many languages in one grammar
+<LI>translations between them
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc7"></A>
+<H2>Getting the GF system</H2>
+<P>
+Open-source free software, downloaded via the GF Homepage:
+</P>
+<P>
+<A HREF="http://grammaticalframework.org/"><CODE>grammaticalframework.org</CODE></A>
+</P>
+<P>
+There you find
+</P>
+<UL>
+<LI>binaries for Linux, Mac OS X, and Windows
+<LI>source code and documentation
+<LI>grammar libraries and examples 
+</UL>
+
+<P>
+Many examples in this tutorial are
+<A HREF="http://grammaticalframework.org/examples/tutorial">online</A>.
+</P>
+<P>
+Normally you don't have to compile GF yourself.
+But, if you do want to compile GF from source follow the
+instructions in the <A HREF="../gf-developers.html">Developers Guide</A>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc8"></A>
+<H2>Running the GF system</H2>
+<P>
+Type <CODE>gf</CODE> in the Unix (or Cygwin) shell:
+</P>
+<PRE>
+    % gf
+</PRE>
+<P>
+You will see GF's welcome message and the prompt <CODE>&gt;</CODE>.
+The command
+</P>
+<PRE>
+    &gt; help
+</PRE>
+<P>
+will give you a list of available commands.
+</P>
+<P>
+As a common convention, we will use
+</P>
+<UL>
+<LI><CODE>%</CODE> as a prompt that marks system commands
+<LI><CODE>&gt;</CODE> as a prompt that marks GF commands
+</UL>
+
+<P>
+Thus you should not type these prompts, but only the characters that
+follow them.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc9"></A>
+<H2>A "Hello World" grammar</H2>
+<P>
+Like most programming language tutorials, we start with a
+program that prints "Hello World" on the terminal. 
+</P>
+<P>
+Extra features:
+</P>
+<UL>
+<LI><B>Multilinguality</B>: the message is printed in many languages.
+<LI><B>Reversibility</B>: in addition to printing, you can <B>parse</B> the
+  message and <B>translate</B> it to other languages.
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc10"></A>
+<H3>The program: abstract syntax and concrete syntaxes</H3>
+<P>
+A GF program, in general, is a <B>multilingual grammar</B>. Its main parts
+are
+</P>
+<UL>
+<LI>an <B>abstract syntax</B>
+<LI>one or more <B>concrete syntaxes</B>
+</UL>
+
+<P>
+The abstract syntax defines what <B>meanings</B>
+can be expressed in the grammar
+</P>
+<UL>
+<LI><I>Greetings</I>, where we greet a <I>Recipient</I>, which can be 
+  <I>World</I> or <I>Mum</I> or <I>Friends</I> 
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<P>
+GF code for the abstract syntax:
+</P>
+<PRE>
+    -- a "Hello World" grammar
+    abstract Hello = {
+  
+      flags startcat = Greeting ;
+  
+      cat Greeting ; Recipient ;
+  
+      fun 
+        Hello : Recipient -&gt; Greeting ;
+        World, Mum, Friends : Recipient ;
+    }
+</PRE>
+<P>
+The code has the following parts:
+</P>
+<UL>
+<LI>a <B>comment</B> (optional), saying what the module is doing 
+<LI>a <B>module header</B> indicating that it is an abstract syntax
+  module named <CODE>Hello</CODE>
+<LI>a <B>module body</B> in braces, consisting of
+  <UL>
+  <LI>a <B>startcat flag declaration</B> stating that <CODE>Greeting</CODE> is the
+    default start category for parsing and generation
+  <LI><B>category declarations</B> introducing two categories, i.e. types of meanings
+  <LI><B>function declarations</B> introducing three meaning-building functions
+  </UL>
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<P>
+English concrete syntax (mapping from meanings to strings):
+</P>
+<PRE>
+    concrete HelloEng of Hello = {
+  
+      lincat Greeting, Recipient = {s : Str} ;
+  
+      lin 
+        Hello recip = {s = "hello" ++ recip.s} ;
+        World = {s = "world"} ;
+        Mum = {s = "mum"} ;
+        Friends = {s = "friends"} ;
+    }
+</PRE>
+<P>
+The major parts of this code are:
+</P>
+<UL>
+<LI>a module header indicating that it is a concrete syntax of the abstract syntax
+  <CODE>Hello</CODE>, itself named <CODE>HelloEng</CODE>
+<LI>a module body in curly brackets, consisting of
+  <UL>
+  <LI><B>linearization type definitions</B> stating that 
+    <CODE>Greeting</CODE> and <CODE>Recipient</CODE> are <B>records</B> with a <B>string</B> <CODE>s</CODE>
+  <LI><B>linearization definitions</B> telling what records are assigned to
+    each of the meanings defined in the abstract syntax
+  </UL>
+</UL>
+
+<P>
+Notice the concatenation <CODE>++</CODE> and the record projection <CODE>.</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Finnish and an Italian concrete syntaxes:
+</P>
+<PRE>
+    concrete HelloFin of Hello = {
+      lincat Greeting, Recipient = {s : Str} ;
+      lin 
+        Hello recip = {s = "terve" ++ recip.s} ;
+        World = {s = "maailma"} ;
+        Mum = {s = "äiti"} ;
+        Friends = {s = "ystävät"} ;
+    }
+  
+    concrete HelloIta of Hello = {
+      lincat Greeting, Recipient = {s : Str} ;
+      lin 
+        Hello recip = {s = "ciao" ++ recip.s} ;
+        World = {s = "mondo"} ;
+        Mum = {s = "mamma"} ;
+        Friends = {s = "amici"} ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc11"></A>
+<H3>Using grammars in the GF system</H3>
+<P>
+In order to compile the grammar in GF,
+we create four files, one for each module, named <I>Modulename</I><CODE>.gf</CODE>:
+</P>
+<PRE>
+    Hello.gf  HelloEng.gf  HelloFin.gf  HelloIta.gf
+</PRE>
+<P>
+The first GF command: <B>import</B> a grammar.
+</P>
+<PRE>
+    &gt; import HelloEng.gf
+</PRE>
+<P>
+All commands also have short names; here:
+</P>
+<PRE>
+    &gt; i HelloEng.gf
+</PRE>
+<P>
+The GF system will <B>compile</B> your grammar 
+into an internal representation and show the CPU time was consumed, followed
+by a new prompt:
+</P>
+<PRE>
+    &gt; i HelloEng.gf
+    - compiling Hello.gf...   wrote file Hello.gfo 8 msec
+    - compiling HelloEng.gf...   wrote file HelloEng.gfo 12 msec
+  
+    12 msec
+    &gt;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+You can use GF for <B>parsing</B> (<CODE>parse</CODE> = <CODE>p</CODE>)
+</P>
+<PRE>
+    &gt; parse "hello world"
+    Hello World
+</PRE>
+<P>
+Parsing takes a <B>string</B> into an <B>abstract syntax tree</B>.
+</P>
+<P>
+The notation for trees is that of <B>function application</B>:
+</P>
+<PRE>
+    function argument1 ... argumentn
+</PRE>
+<P>
+Parentheses are only needed for grouping. 
+</P>
+<P>
+Parsing something that is not in grammar will fail:
+</P>
+<PRE>
+    &gt; parse "hello dad"
+    Unknown words: dad
+  
+    &gt; parse "world hello"
+    no tree found
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+You can also use GF for <B>linearization</B> (<CODE>linearize = l</CODE>). 
+It takes trees into strings:
+</P>
+<PRE>
+    &gt; linearize Hello World
+    hello world
+</PRE>
+<P>
+<B>Translation</B>: <B>pipe</B> linearization to parsing:
+</P>
+<PRE>
+    &gt; import HelloEng.gf
+    &gt; import HelloIta.gf
+  
+    &gt; parse -lang=HelloEng "hello mum" | linearize -lang=HelloIta
+    ciao mamma
+</PRE>
+<P>
+Default of the language flag (<CODE>-lang</CODE>): the last-imported concrete syntax.
+</P>
+<P>
+<B>Multilingual generation</B>:
+</P>
+<PRE>
+    &gt; parse -lang=HelloEng "hello friends" | linearize
+    terve ystävät
+    ciao amici
+    hello friends
+</PRE>
+<P>
+Linearization is by default to all available languages.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc12"></A>
+<H3>Exercises on the Hello World grammar</H3>
+<OL>
+<LI>Test the parsing and translation examples shown above, as well as
+some other examples, in different combinations of languages.
+<P></P>
+<LI>Extend the grammar <CODE>Hello.gf</CODE> and some of the
+concrete syntaxes by five new recipients and one new greeting
+form.
+<P></P>
+<LI>Add a concrete syntax for some other
+languages you might know.
+<P></P>
+<LI>Add a pair of greetings that are expressed in one and 
+the same way in
+one language and in two different ways in another. 
+For instance, <I>good morning</I>
+and <I>good afternoon</I> in English are both expressed 
+as <I>buongiorno</I> in Italian.
+Test what happens when you translate <I>buongiorno</I> to English in GF.
+<P></P>
+<LI>Inject errors in the <CODE>Hello</CODE> grammars, for example, leave out
+some line, omit a variable in a <CODE>lin</CODE> rule, or change the name 
+in one occurrence
+of a variable. Inspect the error messages generated by GF.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc13"></A>
+<H2>Using grammars from outside GF</H2>
+<P>
+You can use the <CODE>gf</CODE> program in a Unix pipe. 
+</P>
+<UL>
+<LI>echo a GF command
+<LI>pipe it into GF with grammar names as arguments
+</UL>
+
+<PRE>
+    % echo "l Hello World" | gf HelloEng.gf HelloFin.gf HelloIta.gf
+</PRE>
+<P>
+You can also write a <B>script</B>, a file containing the lines
+</P>
+<PRE>
+    import HelloEng.gf
+    import HelloFin.gf
+    import HelloIta.gf
+    linearize Hello World
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc14"></A>
+<H2>GF scripts</H2>
+<P>
+If we name this script <CODE>hello.gfs</CODE>, we can do
+</P>
+<PRE>
+    $ gf --run &lt;hello.gfs
+  
+    ciao mondo
+    terve maailma
+    hello world
+</PRE>
+<P>
+The option <CODE>--run</CODE> removes prompts, CPU time, and other messages. 
+</P>
+<P>
+See <a href="#chapeight">Lesson 7</a>, for stand-alone programs that don't need the GF system to run.
+</P>
+<P>
+<B>Exercise</B>. (For Unix hackers.) Write a GF application that reads
+an English string from the standard input and writes an Italian
+translation to the output.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc15"></A>
+<H2>What else can be done with the grammar</H2>
+<P>
+Some more functions that will be covered:
+</P>
+<UL>
+<LI><B>morphological analysis</B>: find out the possible inflection forms of words
+<LI><B>morphological synthesis</B>: generate all inflection forms of words
+<LI><B>random generation</B>: generate random expressions
+<LI><B>corpus generation</B>: generate all expressions
+<LI><B>treebank generation</B>: generate a list of trees with their linearizations
+<LI><B>teaching quizzes</B>: train morphology and translation
+<LI><B>multilingual authoring</B>: create a document in many languages simultaneously
+<LI><B>speech input</B>: optimize a speech recognition system for a grammar
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc16"></A>
+<H2>Embedded grammar applications</H2>
+<P>
+Application programs, using techniques from <a href="#chapeight">Lesson 7</a>:
+</P>
+<UL>
+<LI>compile grammars to new formats, such as speech recognition grammars
+<LI>embed grammars in Java and Haskell programs
+<LI>build applications using compilation and embedding:
+  <UL>
+  <LI>voice commands
+  <LI>spoken language translators
+  <LI>dialogue systems
+  <LI>user interfaces
+  <LI>localization: render the messages printed by a program
+    in different languages
+  </UL>
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc17"></A>
+<H1>Lesson 2: Designing a grammar for complex phrases</H1>
+<P>
+<a name="chapthree"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>build a larger grammar: phrases about food in English and Italian
+<LI>learn to write reusable library functions ("operations")
+<LI>learn the basics of GF's module system
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc18"></A>
+<H2>The abstract syntax Food</H2>
+<P>
+Phrases usable for speaking about food:
+</P>
+<UL>
+<LI>the start category is <CODE>Phrase</CODE>
+<LI>a <CODE>Phrase</CODE> can be built by assigning a <CODE>Quality</CODE> to an <CODE>Item</CODE> 
+  (e.g. <I>this cheese is Italian</I>)
+<LI>an<CODE>Item</CODE> is build from a <CODE>Kind</CODE> by prefixing <I>this</I> or <I>that</I> 
+  (e.g. <I>this wine</I>)
+<LI>a <CODE>Kind</CODE> is either <B>atomic</B> (e.g. <I>cheese</I>), or formed 
+  qualifying a given <CODE>Kind</CODE> with a <CODE>Quality</CODE> (e.g. <I>Italian cheese</I>)
+<LI>a <CODE>Quality</CODE> is either atomic (e.g. <I>Italian</I>,
+  or built by modifying a given <CODE>Quality</CODE> with the word <I>very</I> (e.g. <I>very warm</I>)
+</UL>
+
+<P>
+Abstract syntax:
+</P>
+<PRE>
+    abstract Food = {
+  
+      flags startcat = Phrase ;
+  
+      cat
+        Phrase ; Item ; Kind ; Quality ;
+  
+      fun
+        Is : Item -&gt; Quality -&gt; Phrase ;
+        This, That : Kind -&gt; Item ;
+        QKind : Quality -&gt; Kind -&gt; Kind ;
+        Wine, Cheese, Fish : Kind ;
+        Very : Quality -&gt; Quality ;
+        Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
+    }
+</PRE>
+<P>
+Example <CODE>Phrase</CODE>
+</P>
+<PRE>
+    Is (This (QKind Delicious (QKind Italian Wine))) (Very (Very Expensive))
+    this delicious Italian wine is very very expensive
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc19"></A>
+<H2>The concrete syntax FoodEng</H2>
+<PRE>
+    concrete FoodEng of Food = {
+  
+      lincat
+        Phrase, Item, Kind, Quality = {s : Str} ;
+  
+      lin
+        Is item quality = {s = item.s ++ "is" ++ quality.s} ;
+        This kind = {s = "this" ++ kind.s} ;
+        That kind = {s = "that" ++ kind.s} ;
+        QKind quality kind = {s = quality.s ++ kind.s} ;
+        Wine = {s = "wine"} ;
+        Cheese = {s = "cheese"} ;
+        Fish = {s = "fish"} ;
+        Very quality = {s = "very" ++ quality.s} ;
+        Fresh = {s = "fresh"} ;
+        Warm = {s = "warm"} ;
+        Italian = {s = "Italian"} ;
+        Expensive = {s = "expensive"} ;
+        Delicious = {s = "delicious"} ;
+        Boring = {s = "boring"} ;
+    }  
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Test the grammar for parsing:
+</P>
+<PRE>
+    &gt; import FoodEng.gf
+    &gt; parse "this delicious wine is very very Italian"
+    Is (This (QKind Delicious Wine)) (Very (Very Italian))
+</PRE>
+<P>
+Parse in other categories setting the <CODE>cat</CODE> flag:
+</P>
+<PRE>
+    p -cat=Kind "very Italian wine"
+    QKind (Very Italian) Wine
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc20"></A>
+<H3>Exercises on the Food grammar</H3>
+<OL>
+<LI>Extend the <CODE>Food</CODE> grammar by ten new food kinds and
+qualities, and run the parser with new kinds of examples.
+<P></P>
+<LI>Add a rule that enables question phrases of the form 
+<I>is this cheese Italian</I>.
+<P></P>
+<LI>Enable the optional prefixing of 
+phrases with the words "excuse me but". Do this in such a way that
+the prefix can occur at most once.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc21"></A>
+<H2>Commands for testing grammars</H2>
+<A NAME="toc22"></A>
+<H3>Generating trees and strings</H3>
+<P>
+Random generation (<CODE>generate_random = gr</CODE>): build
+build a random tree in accordance with an abstract syntax:
+</P>
+<PRE>
+    &gt; generate_random
+    Is (This (QKind Italian Fish)) Fresh
+</PRE>
+<P>
+By using a pipe, random generation can be fed into linearization:
+</P>
+<PRE>
+    &gt; generate_random | linearize
+    this Italian fish is fresh
+</PRE>
+<P>
+Use the <CODE>number</CODE> flag to generate several trees:
+</P>
+<PRE>
+    &gt; gr -number=4 | l
+    that wine is boring
+    that fresh cheese is fresh
+    that cheese is very boring
+    this cheese is Italian
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+To generate <I>all</I> phrases that a grammar can produce,
+use <CODE>generate_trees = gt</CODE>.
+</P>
+<PRE>
+    &gt; generate_trees | l
+    that cheese is very Italian
+    that cheese is very boring
+    that cheese is very delicious
+    ...
+    this wine is fresh
+    this wine is warm
+</PRE>
+<P>
+The default <B>depth</B> is 3; the depth can be
+set by using the <CODE>depth</CODE> flag:
+</P>
+<PRE>
+    &gt; generate_trees -depth=2 | l
+</PRE>
+<P>
+What options a command has can be seen by the <CODE>help = h</CODE> command:
+</P>
+<PRE>
+    &gt; help gr
+    &gt; help gt
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc23"></A>
+<H3>Exercises on generation</H3>
+<OL>
+<LI>If the command <CODE>gt</CODE> generated all
+trees in your grammar, it would never terminate. Why?
+<P></P>
+<LI>Measure how many trees the grammar gives with depths 4 and 5,
+respectively. <B>Hint</B>. You can 
+use the Unix <B>word count</B> command <CODE>wc</CODE> to count lines.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc24"></A>
+<H3>More on pipes: tracing</H3>
+<P>
+Put the <B>tracing</B> option <CODE>-tr</CODE> to each command whose output you
+want to see:
+</P>
+<PRE>
+    &gt; gr -tr | l -tr | p
+  
+    Is (This Cheese) Boring
+    this cheese is boring
+    Is (This Cheese) Boring  
+</PRE>
+<P>
+Useful for test purposes: the pipe above can show
+if a grammar is <B>ambiguous</B>, i.e.
+contains strings that can be parsed in more than one way.
+</P>
+<P>
+<B>Exercise</B>. Extend the <CODE>Food</CODE> grammar so that it produces ambiguous 
+strings, and try out the ambiguity test.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc25"></A>
+<H3>Writing and reading files</H3>
+<P>
+To save the outputs into a file, pipe it to the <CODE>write_file = wf</CODE> command,
+</P>
+<PRE>
+    &gt; gr -number=10 | linearize | write_file -file=exx.tmp
+</PRE>
+<P>
+To read a file to GF, use the <CODE>read_file = rf</CODE> command,
+</P>
+<PRE>
+    &gt; read_file -file=exx.tmp -lines | parse
+</PRE>
+<P>
+The flag <CODE>-lines</CODE> tells GF to read each line of the file separately. 
+</P>
+<P>
+Files with examples can be used for <B>regression testing</B>
+of grammars - the most systematic way to do this is by
+<B>treebanks</B>; see <a href="#sectreebank">here</a>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc26"></A>
+<H3>Visualizing trees</H3>
+<P>
+Parentheses give a linear representation of trees,
+useful for the computer. 
+</P>
+<P>
+Human eye may prefer to see a visualization: <CODE>visualize_tree = vt</CODE>:
+</P>
+<PRE>
+    &gt; parse "this delicious cheese is very Italian" | visualize_tree
+</PRE>
+<P>
+The tree is generated in postscript (<CODE>.ps</CODE>) file. The <CODE>-view</CODE> option is used for
+telling what command to use to view the file. Its default is <CODE>"open"</CODE>, which works
+on Mac OS X. On Ubuntu Linux, one can write
+</P>
+<PRE>
+    &gt; parse "this delicious cheese is very Italian" | visualize_tree -view="eog"
+</PRE>
+<P></P>
+<P>
+<IMG ALIGN="middle" SRC="mytree.png" BORDER="0" ALT="">
+</P>
+<P>
+This command uses the program <A HREF="http://www.graphviz.org/">Graphviz</A>, which you
+might not have, but which are freely available on the web.
+</P>
+<P>
+You can save the temporary file <CODE>_grph.dot</CODE>, 
+which the command <CODE>vt</CODE> produces. 
+</P>
+<P>
+Then you can process this file with the <CODE>dot</CODE> 
+program (from the Graphviz package).
+</P>
+<PRE>
+    % dot -Tpng _grph.dot &gt; mytree.png
+</PRE>
+<P>
+You can also visualize <B>parse trees</B>, which show categories and words instead of
+function symbols. The command is <CODE>visualize_parse = vp</CODE>:
+</P>
+<PRE>
+    &gt; parse "this delicious cheese is very Italian" | visualize_parse
+</PRE>
+<P></P>
+<P>
+<IMG ALIGN="middle" SRC="myparse.png" BORDER="0" ALT="">
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc27"></A>
+<H3>System commands</H3>
+<P>
+You can give a <B>system command</B> without leaving GF:
+<CODE>!</CODE> followed by a Unix command,
+</P>
+<PRE>
+    &gt; ! dot -Tpng grphtmp.dot &gt; mytree.png
+    &gt; ! open mytree.png
+</PRE>
+<P>
+A system command may also receive its argument from
+a GF pipes. It then uses the symbol <CODE>?</CODE>:
+</P>
+<PRE>
+    &gt; generate_trees -depth=4 | ? wc -l
+</PRE>
+<P>
+This command example returns the number of generated trees.
+</P>
+<P>
+<B>Exercise</B>.
+Measure how many trees the grammar <CODE>FoodEng</CODE> gives with depths 4 and 5,
+respectively. Use the Unix <B>word count</B> command <CODE>wc</CODE> to count lines, and
+a system pipe from a GF command into a Unix command.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc28"></A>
+<H2>An Italian concrete syntax</H2>
+<P>
+<a name="secanitalian"></a>
+</P>
+<P>
+Just (?) replace English words with their dictionary equivalents:
+</P>
+<PRE>
+    concrete FoodIta of Food = {
+  
+      lincat
+        Phrase, Item, Kind, Quality = {s : Str} ;
+  
+      lin
+        Is item quality = {s = item.s ++ "è" ++ quality.s} ;
+        This kind = {s = "questo" ++ kind.s} ;
+        That kind = {s = "quel" ++ kind.s} ;
+        QKind quality kind = {s = kind.s ++ quality.s} ;
+        Wine = {s = "vino"} ;
+        Cheese = {s = "formaggio"} ;
+        Fish = {s = "pesce"} ;
+        Very quality = {s = "molto" ++ quality.s} ;
+        Fresh = {s = "fresco"} ;
+        Warm = {s = "caldo"} ;
+        Italian = {s = "italiano"} ;
+        Expensive = {s = "caro"} ;
+        Delicious = {s = "delizioso"} ;
+        Boring = {s = "noioso"} ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Not just replacing words:
+</P>
+<P>
+The order of a quality and the kind it modifies is changed in
+</P>
+<PRE>
+      QKind quality kind = {s = kind.s ++ quality.s} ;
+</PRE>
+<P>
+Thus Italian says <CODE>vino italiano</CODE> for <CODE>Italian wine</CODE>. 
+</P>
+<P>
+(Some Italian adjectives
+are put before the noun. This distinction can be controlled by parameters, 
+which are introduced in <a href="#chaptwo">Lesson 3</a>.)
+</P>
+<P>
+Multilingual grammars have yet another visualization option:
+<B>word alignment</B>, which shows what words correspond to each other.
+Technically, this means words that have the same smallest spanning subtrees
+in abstract syntax. The command is <CODE>align_words = aw</CODE>:
+</P>
+<PRE>
+    &gt; parse "this delicious cheese is very Italian" | align_words
+</PRE>
+<P></P>
+<P>
+<IMG ALIGN="middle" SRC="align2.png" BORDER="0" ALT="">
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc29"></A>
+<H3>Exercises on multilinguality</H3>
+<OL>
+<LI>Write a concrete syntax of <CODE>Food</CODE> for some other language.
+You will probably end up with grammatically incorrect 
+linearizations - but don't
+worry about this yet.
+<P></P>
+<LI>If you have written <CODE>Food</CODE> for German, Swedish, or some
+other language, test with random or exhaustive generation what constructs
+come out incorrect, and prepare a list of those ones that cannot be helped
+with the currently available fragment of GF. You can return to your list
+after having worked out <a href="#chaptwo">Lesson 3</a>.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc30"></A>
+<H2>Free variation</H2>
+<P>
+Semantically indistinguishable ways of expressing a thing.
+</P>
+<P>
+The <B>variants</B> construct of GF expresses free variation. For example,
+</P>
+<PRE>
+    lin Delicious = {s = "delicious" | "exquisit" | "tasty"} ;
+</PRE>
+<P>
+By default, the <CODE>linearize</CODE> command
+shows only the first variant from such lists; to see them
+all, use the option <CODE>-all</CODE>:
+</P>
+<PRE>
+    &gt; p "this exquisit wine is delicious" | l -all
+    this delicious wine is delicious
+    this delicious wine is exquisit
+    ...
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+An equivalent notation for variants is
+</P>
+<PRE>
+    lin Delicious = {s = variants {"delicious" ; "exquisit" ; "tasty"}} ;
+</PRE>
+<P>
+This notation also allows the limiting case: an empty variant list,
+</P>
+<PRE>
+    variants {}
+</PRE>
+<P>
+It can be used e.g. if a word lacks a certain inflection form. 
+</P>
+<P>
+Free variation works for all types in concrete syntax; all terms in
+a variant list must be of the same type.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc31"></A>
+<H2>More application of multilingual grammars</H2>
+<A NAME="toc32"></A>
+<H3>Multilingual treebanks</H3>
+<P>
+<a name="sectreebank"></a>
+</P>
+<P>
+<B>Multilingual treebank</B>: a set of trees with their
+linearizations in different languages:
+</P>
+<PRE>
+    &gt; gr -number=2 | l -treebank
+  
+    Is (That Cheese) (Very Boring)
+    quel formaggio è molto noioso
+    that cheese is very boring
+  
+    Is (That Cheese) Fresh
+    quel formaggio è fresco
+    that cheese is fresh
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc33"></A>
+<H3>Translation quiz</H3>
+<P>
+<CODE>translation_quiz = tq</CODE>:
+generate random sentences, display them in one language, and check the user's
+answer given in another language. 
+</P>
+<PRE>
+    &gt; translation_quiz -from=FoodEng -to=FoodIta
+  
+    Welcome to GF Translation Quiz.
+    The quiz is over when you have done at least 10 examples
+    with at least 75 % success.
+    You can interrupt the quiz by entering a line consisting of a dot ('.').
+  
+    this fish is warm
+    questo pesce è caldo
+    &gt; Yes.
+    Score 1/1
+  
+    this cheese is Italian
+    questo formaggio è noioso
+    &gt; No, not questo formaggio è noioso, but
+    questo formaggio è italiano
+  
+    Score 1/2
+    this fish is expensive
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc34"></A>
+<H2>Context-free grammars and GF</H2>
+<A NAME="toc35"></A>
+<H3>The "cf" grammar format</H3>
+<P>
+The grammar <CODE>FoodEng</CODE> can be written in a BNF format as follows:
+</P>
+<PRE>
+    Is.        Phrase  ::= Item "is" Quality ;
+    That.      Item    ::= "that" Kind ;
+    This.      Item    ::= "this" Kind ;
+    QKind.     Kind    ::= Quality Kind ;
+    Cheese.    Kind    ::= "cheese" ;
+    Fish.      Kind    ::= "fish" ;
+    Wine.      Kind    ::= "wine" ;
+    Italian.   Quality ::= "Italian" ;
+    Boring.    Quality ::= "boring" ;
+    Delicious. Quality ::= "delicious" ;
+    Expensive. Quality ::= "expensive" ;
+    Fresh.     Quality ::= "fresh" ;
+    Very.      Quality ::= "very" Quality ;
+    Warm.      Quality ::= "warm" ;
+</PRE>
+<P>
+GF can convert BNF grammars into GF. 
+BNF files are recognized by the file name suffix <CODE>.cf</CODE> (for <B>context-free</B>): 
+</P>
+<PRE>
+    &gt; import food.cf
+</PRE>
+<P>
+The compiler creates separate abstract and concrete modules internally.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc36"></A>
+<H3>Restrictions of context-free grammars</H3>
+<P>
+Separating concrete and abstract syntax allows
+three deviations from context-free grammar:
+</P>
+<UL>
+<LI><B>permutation</B>: changing the order of constituents
+<LI><B>suppression</B>: omitting constituents
+<LI><B>reduplication</B>: repeating constituents
+</UL>
+
+<P>
+<B>Exercise</B>. Define the non-context-free
+copy language <CODE>{x x | x &lt;- (a|b)*}</CODE> in GF.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc37"></A>
+<H2>Modules and files</H2>
+<P>
+GF uses suffixes to recognize different file formats:
+</P>
+<UL>
+<LI>Source files: <I>Modulename</I><CODE>.gf</CODE>
+<LI>Target files: <I>Modulename</I><CODE>.gfo</CODE>
+</UL>
+
+<P>
+Importing generates target from source:
+</P>
+<PRE>
+    &gt; i FoodEng.gf
+    - compiling Food.gf...   wrote file Food.gfo 16 msec
+    - compiling FoodEng.gf...   wrote file FoodEng.gfo 20 msec
+</PRE>
+<P>
+The <CODE>.gfo</CODE> format (="GF Object") is precompiled GF, which is
+faster to load than source GF (<CODE>.gf</CODE>).
+</P>
+<P>
+When reading a module, GF decides whether
+to use an existing <CODE>.gfo</CODE> file or to generate
+a new one, by looking at modification times.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+<B>Exercise</B>.  What happens when you import <CODE>FoodEng.gf</CODE> for 
+a second time? Try this in different situations:
+</P>
+<UL>
+<LI>Right after importing it the first time (the modules are kept in
+  the memory of GF and need no reloading).
+<LI>After issuing the command <CODE>empty</CODE> (<CODE>e</CODE>), which clears the memory
+  of GF.
+<LI>After making a small change in <CODE>FoodEng.gf</CODE>, be it only an added space.
+<LI>After making a change in <CODE>Food.gf</CODE>.
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc38"></A>
+<H2>Using operations and resource modules</H2>
+<A NAME="toc39"></A>
+<H3>Operation definitions</H3>
+<P>
+The golden rule of functional programmin:
+</P>
+<P>
+<I>Whenever you find yourself programming by copy-and-paste, write a function instead.</I>
+</P>
+<P>
+Functions in concrete syntax are defined using the keyword <CODE>oper</CODE> (for
+<B>operation</B>), distinct from <CODE>fun</CODE> for the sake of clarity.
+</P>
+<P>
+Example:
+</P>
+<PRE>
+    oper ss : Str -&gt; {s : Str} = \x -&gt; {s = x} ;
+</PRE>
+<P>
+The operation can be <B>applied</B> to an argument, and GF will
+<B>compute</B> the value:
+</P>
+<PRE>
+    ss "boy" ===&gt; {s = "boy"}
+</PRE>
+<P>
+The symbol <CODE>===&gt;</CODE> will be used for computation.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Notice the <B>lambda abstraction</B> form 
+</P>
+<UL>
+<LI><CODE>\</CODE><I>x</I> <CODE>-&gt;</CODE> <I>t</I>
+</UL>
+
+<P>
+This is read:
+</P>
+<UL>
+<LI>function with variable <I>x</I> and <B>function body</B> <I>t</I>
+</UL>
+
+<P>
+For lambda abstraction with multiple arguments, we have the shorthand
+</P>
+<PRE>
+    \x,y -&gt; t   ===  \x -&gt; \y -&gt; t
+</PRE>
+<P>
+Linearization rules actually use syntactic
+sugar for abstraction:
+</P>
+<PRE>
+    lin f x = t   ===  lin f = \x -&gt; t
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc40"></A>
+<H3>The ``resource`` module type</H3>
+<P>
+The <CODE>resource</CODE> module type is used to package
+<CODE>oper</CODE> definitions into reusable resources. 
+</P>
+<PRE>
+    resource StringOper = {
+      oper
+        SS : Type = {s : Str} ;
+        ss : Str -&gt; SS = \x -&gt; {s = x} ;
+        cc : SS -&gt; SS -&gt; SS = \x,y -&gt; ss (x.s ++ y.s) ;
+        prefix : Str -&gt; SS -&gt; SS = \p,x -&gt; ss (p ++ x.s) ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc41"></A>
+<H3>Opening a resource</H3>
+<P>
+Any number of <CODE>resource</CODE> modules can be
+<B>open</B>ed in a <CODE>concrete</CODE> syntax.
+</P>
+<PRE>
+    concrete FoodEng of Food = open StringOper in {
+  
+      lincat
+        S, Item, Kind, Quality = SS ;
+  
+      lin
+        Is item quality = cc item (prefix "is" quality) ;
+        This k = prefix "this" k ;
+        That k = prefix "that" k ;
+        QKind k q = cc k q ;
+        Wine = ss "wine" ;
+        Cheese = ss "cheese" ;
+        Fish = ss "fish" ;
+        Very = prefix "very" ;
+        Fresh = ss "fresh" ;
+        Warm = ss "warm" ;
+        Italian = ss "Italian" ;
+        Expensive = ss "expensive" ;
+        Delicious = ss "delicious" ;
+        Boring = ss "boring" ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc42"></A>
+<H3>Partial application</H3>
+<P>
+<a name="secpartapp"></a>
+</P>
+<P>
+The rule
+</P>
+<PRE>
+    lin This k = prefix "this" k ;
+</PRE>
+<P>
+can be written more concisely
+</P>
+<PRE>
+    lin This = prefix "this" ;
+</PRE>
+<P>
+Part of the art in functional programming: 
+decide the order of arguments in a function, 
+so that partial application can be used as much as possible. 
+</P>
+<P>
+For instance, <CODE>prefix</CODE> is typically applied to 
+linearization variables with constant strings. Hence we
+put the <CODE>Str</CODE> argument before the <CODE>SS</CODE> argument.
+</P>
+<P>
+<B>Exercise</B>. Define an operation <CODE>infix</CODE> analogous to <CODE>prefix</CODE>,
+such that it allows you to write
+</P>
+<PRE>
+    lin Is = infix "is" ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc43"></A>
+<H3>Testing resource modules</H3>
+<P>
+Import with the flag <CODE>-retain</CODE>, 
+</P>
+<PRE>
+    &gt; import -retain StringOper.gf
+</PRE>
+<P>
+Compute the value with <CODE>compute_concrete = cc</CODE>,
+</P>
+<PRE>
+    &gt; compute_concrete prefix "in" (ss "addition")
+    {s : Str = "in" ++ "addition"}
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc44"></A>
+<H2>Grammar architecture</H2>
+<P>
+<a name="secarchitecture"></a>
+</P>
+<A NAME="toc45"></A>
+<H3>Extending a grammar</H3>
+<P>
+A new module can <B>extend</B> an old one:
+</P>
+<PRE>
+    abstract Morefood = Food ** {
+      cat
+        Question ;
+      fun
+        QIs : Item -&gt; Quality -&gt; Question ;
+        Pizza : Kind ;      
+    }
+</PRE>
+<P>
+Parallel to the abstract syntax, extensions can
+be built for concrete syntaxes:
+</P>
+<PRE>
+    concrete MorefoodEng of Morefood = FoodEng ** {
+      lincat
+        Question = {s : Str} ;
+      lin
+        QIs item quality = {s = "is" ++ item.s ++ quality.s} ;
+        Pizza = {s = "pizza"} ;
+    }
+</PRE>
+<P>
+The effect of extension: all of the contents of the extended
+and extending modules are put together. 
+</P>
+<P>
+In other words: the new module <B>inherits</B> the contents of the old module.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Simultaneous extension and opening:
+</P>
+<PRE>
+    concrete MorefoodIta of Morefood = FoodIta ** open StringOper in {
+      lincat
+        Question = SS ;
+      lin
+        QIs item quality = ss (item.s ++ "è" ++ quality.s) ;
+        Pizza = ss "pizza" ;
+    }
+</PRE>
+<P>
+Resource modules can extend other resource modules - thus it is 
+possible to build resource hierarchies.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc46"></A>
+<H3>Multiple inheritance</H3>
+<P>
+Extend several grammars at the same time:
+</P>
+<PRE>
+    abstract Foodmarket = Food, Fruit, Mushroom ** {
+      fun 
+        FruitKind    : Fruit    -&gt; Kind ;
+        MushroomKind : Mushroom -&gt; Kind ;
+      }
+</PRE>
+<P>
+where
+</P>
+<PRE>
+    abstract Fruit = {
+      cat Fruit ;
+      fun Apple, Peach : Fruit ;
+    }
+  
+    abstract Mushroom = {
+      cat Mushroom ;
+      fun Cep, Agaric : Mushroom ;
+    }
+</PRE>
+<P></P>
+<P>
+<B>Exercise</B>. Refactor <CODE>Food</CODE> by taking apart <CODE>Wine</CODE> into a special
+<CODE>Drink</CODE> module.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc47"></A>
+<H1>Lesson 3: Grammars with parameters</H1>
+<P>
+<a name="chapfour"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>implement sophisticated linguistic structures:
+  <UL>
+  <LI>morphology: the inflection of words
+  <LI>agreement: rules for selecting word forms in syntactic combinations
+  </UL>
+</UL>
+
+<UL>
+<LI>Cover all GF constructs for concrete syntax
+</UL>
+
+<P>
+It is possible to skip this chapter and go directly
+to the next, since the use of the GF Resource Grammar library
+makes it unnecessary to use parameters: they 
+could be left to library implementors.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc48"></A>
+<H2>The problem: words have to be inflected</H2>
+<P>
+Plural forms are needed in things like
+<center>
+<I>these Italian wines are delicious</I>
+</center>
+This requires two things:
+</P>
+<UL>
+<LI>the <B>inflection</B> of nouns and verbs in singular and plural
+<LI>the <B>agreement</B> of the verb to subject: 
+  the verb must have the same number as the subject
+</UL>
+
+<P>
+Different languages have different types of inflection and agreement.
+</P>
+<UL>
+<LI>Italian has also gender (masculine vs. feminine).
+</UL>
+
+<P>
+In a multilingual grammar,
+we want to ignore such distinctions in abstract syntax.
+</P>
+<P>
+<B>Exercise</B>. Make a list of the possible forms that nouns,
+adjectives, and verbs can have in some languages that you know.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc49"></A>
+<H2>Parameters and tables</H2>
+<P>
+We define the <B>parameter type</B> of number in English by
+a new form of judgement:
+</P>
+<PRE>
+    param Number = Sg | Pl ;
+</PRE>
+<P>
+This judgement defines the parameter type <CODE>Number</CODE> by listing
+its two <B>constructors</B>, <CODE>Sg</CODE> and <CODE>Pl</CODE> 
+(singular and plural). 
+</P>
+<P>
+We give <CODE>Kind</CODE> a linearization type that has a <B>table</B> depending on number:
+</P>
+<PRE>
+    lincat Kind = {s : Number =&gt; Str} ;
+</PRE>
+<P>
+The <B>table type</B> <CODE>Number =&gt; Str</CODE> is similar a function type 
+(<CODE>Number -&gt; Str</CODE>). 
+</P>
+<P>
+Difference: the argument must be a parameter type. Then
+the argument-value pairs can be listed in a finite table. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Here is a table:
+</P>
+<PRE>
+    lin Cheese = {
+      s = table {
+        Sg =&gt; "cheese" ;
+        Pl =&gt; "cheeses"
+      }
+    } ;
+</PRE>
+<P>
+The table has <B>branches</B>, with a <B>pattern</B> on the
+left of the arrow <CODE>=&gt;</CODE> and a <B>value</B> on the right.
+</P>
+<P>
+The application of a table is done by the <B>selection</B> operator <CODE>!</CODE>. 
+</P>
+<P>
+It which is computed by <B>pattern matching</B>: return
+the value from the first branch whose pattern matches the
+argument. For instance,
+</P>
+<PRE>
+     table {Sg =&gt; "cheese" ; Pl =&gt; "cheeses"} ! Pl 
+     ===&gt; "cheeses"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+<B>Case expressions</B> are syntactic sugar:
+</P>
+<PRE>
+    case e of {...} ===  table {...} ! e
+</PRE>
+<P>
+Since they are familiar to Haskell and ML programmers, they can come out handy
+when writing GF programs.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Constructors can take arguments from other parameter types. 
+</P>
+<P>
+Example: forms of English verbs (except <I>be</I>):
+</P>
+<PRE>
+    param VerbForm = VPresent Number | VPast | VPastPart | VPresPart ;
+</PRE>
+<P>
+Fact expressed: only present tense has number variation. 
+</P>
+<P>
+Example table: the forms of the verb <I>drink</I>:
+</P>
+<PRE>
+    table {
+      VPresent Sg =&gt; "drinks" ;
+      VPresent Pl =&gt; "drink" ;
+      VPast       =&gt; "drank" ;
+      VPastPart   =&gt; "drunk" ;
+      VPresPart   =&gt; "drinking"
+      }
+</PRE>
+<P></P>
+<P>
+<B>Exercise</B>. In an earlier exercise (previous section), 
+you made a list of the possible 
+forms that nouns, adjectives, and verbs can have in some languages that 
+you know. Now take some of the results and implement them by
+using parameter type definitions and tables. Write them into a <CODE>resource</CODE>
+module, which you can test by using the command <CODE>compute_concrete</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc50"></A>
+<H2>Inflection tables and paradigms</H2>
+<P>
+A morphological <B>paradigm</B> is a formula telling how a class of 
+words is inflected.
+</P>
+<P>
+From the GF point of view, a paradigm is a function that takes 
+a <B>lemma</B> (also known as a <B>dictionary form</B>, or a <B>citation form</B>) and 
+returns an inflection table. 
+</P>
+<P>
+The following operation defines the regular noun paradigm of English:
+</P>
+<PRE>
+    oper regNoun : Str -&gt; {s : Number =&gt; Str} = \dog -&gt; {
+      s = table {
+        Sg =&gt; dog ;
+        Pl =&gt; dog + "s"
+        }
+      } ;
+</PRE>
+<P>
+The <B>gluing</B> operator <CODE>+</CODE> glues strings to one <B>token</B>:
+</P>
+<PRE>
+    (regNoun "cheese").s ! Pl  ===&gt; "cheese" + "s"  ===&gt;  "cheeses"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+A more complex example: regular verbs,
+</P>
+<PRE>
+    oper regVerb : Str -&gt; {s : VerbForm =&gt; Str} = \talk -&gt; {
+      s = table {
+        VPresent Sg =&gt; talk + "s" ;
+        VPresent Pl =&gt; talk ;
+        VPresPart   =&gt; talk + "ing" ;
+        _           =&gt; talk + "ed"
+        }
+      } ;
+</PRE>
+<P>
+The catch-all case for the past tense and the past participle
+uses a <B>wild card</B> pattern <CODE>_</CODE>. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc51"></A>
+<H3>Exercises on morphology</H3>
+<OL>
+<LI>Identify cases in which the <CODE>regNoun</CODE> paradigm does not
+apply in English, and implement some alternative paradigms.
+<P></P>
+<LI>Implement some regular paradigms for other languages you have
+considered in earlier exercises.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc52"></A>
+<H2>Using parameters in concrete syntax</H2>
+<P>
+Purpose: a more radical
+variation between languages
+than just the use of different words and word orders. 
+</P>
+<P>
+We add to the grammar <CODE>Food</CODE> two rules for forming plural items:
+</P>
+<PRE>
+    fun These, Those : Kind -&gt; Item ;
+</PRE>
+<P>
+We also add a noun which in Italian has the feminine case:
+</P>
+<PRE>
+    fun Pizza : Kind ;
+</PRE>
+<P>
+This will force us to deal with gender- 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc53"></A>
+<H3>Agreement</H3>
+<P>
+In English, the phrase-forming rule
+</P>
+<PRE>
+    fun Is : Item -&gt; Quality -&gt; Phrase ;
+</PRE>
+<P>
+is affected by the number because of <B>subject-verb agreement</B>:
+the verb of a sentence must be inflected in the number of the subject,
+</P>
+<PRE>
+    Is (This Pizza) Warm   ===&gt;  "this pizza is warm"
+    Is (These Pizza) Warm  ===&gt;  "these pizzas are warm"
+</PRE>
+<P>
+It is the <B>copula</B> (the verb <I>be</I>) that is affected:
+</P>
+<PRE>
+    oper copula : Number -&gt; Str = \n -&gt; 
+      case n of {
+        Sg =&gt; "is" ;
+        Pl =&gt; "are"
+        } ;
+</PRE>
+<P>
+The <B>subject</B> <CODE>Item</CODE> must have such a number to provide to the copula:
+</P>
+<PRE>
+    lincat Item = {s : Str ; n : Number} ;
+</PRE>
+<P>
+Now we can write
+</P>
+<PRE>
+    lin Is item qual = {s = item.s ++ copula item.n ++ qual.s} ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc54"></A>
+<H3>Determiners</H3>
+<P>
+How does an <CODE>Item</CODE> subject receive its number? The rules
+</P>
+<PRE>
+    fun This, These : Kind -&gt; Item ;
+</PRE>
+<P>
+add <B>determiners</B>, either <I>this</I> or <I>these</I>, which
+require different <I>this pizza</I> vs.
+<I>these pizzas</I>. 
+</P>
+<P>
+Thus <CODE>Kind</CODE> must have both singular and plural forms:
+</P>
+<PRE>
+    lincat Kind = {s : Number =&gt; Str} ;
+</PRE>
+<P>
+We can write
+</P>
+<PRE>
+    lin This kind = {
+      s = "this" ++ kind.s ! Sg ; 
+      n = Sg
+    } ; 
+  
+    lin These kind = {
+      s = "these" ++ kind.s ! Pl ; 
+      n = Pl
+    } ; 
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+To avoid copy-and-paste, we can factor out the pattern of determination,
+</P>
+<PRE>
+    oper det : 
+      Str -&gt; Number -&gt; {s : Number =&gt; Str} -&gt; {s : Str ; n : Number} = 
+        \det,n,kind -&gt; {
+        s = det ++ kind.s ! n ; 
+        n = n
+      } ; 
+</PRE>
+<P>
+Now we can write
+</P>
+<PRE>
+    lin This  = det Sg "this" ;
+    lin These = det Pl "these" ;
+</PRE>
+<P>
+In a more <B>lexicalized</B> grammar, determiners would be a category:
+</P>
+<PRE>
+    lincat Det = {s : Str ; n : Number} ;
+    fun Det : Det -&gt; Kind -&gt; Item ;
+    lin Det det kind = {
+        s = det.s ++ kind.s ! det.n ; 
+        n = det.n
+      } ; 
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc55"></A>
+<H3>Parametric vs. inherent features</H3>
+<P>
+<CODE>Kind</CODE>s have number as a <B>parametric feature</B>: both singular and plural
+can be formed,
+</P>
+<PRE>
+    lincat Kind = {s : Number =&gt; Str} ;
+</PRE>
+<P>
+<CODE>Item</CODE>s have number as an <B>inherent feature</B>: they are inherently either
+singular or plural,
+</P>
+<PRE>
+    lincat Item = {s : Str ; n : Number} ;
+</PRE>
+<P>
+Italian <CODE>Kind</CODE> will have parametric number and inherent gender:
+</P>
+<PRE>
+    lincat Kind = {s : Number =&gt; Str ; g : Gender} ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Questions to ask when designing parameters:
+</P>
+<UL>
+<LI>existence: what forms are possible to build by morphological and
+  other means?
+<LI>need: what features are expected via agreement or government?
+</UL>
+
+<P>
+Dictionaries give good advice:
+<center>
+<B>uomo</B>, pl. <I>uomini</I>, n.m. "man"
+</center>
+tells that <I>uomo</I> is a masculine noun with the plural form <I>uomini</I>.
+Hence, parametric number and an inherent gender.
+</P>
+<P>
+For words, inherent features are usually given as lexical information.
+</P>
+<P>
+For combinations, they are <I>inherited</I> from some part of the construction
+(typically the one called the <B>head</B>). Italian modification:
+</P>
+<PRE>
+    lin QKind qual kind = 
+      let gen = kind.g in {
+        s = table {n =&gt; kind.s ! n ++ qual.s ! gen ! n} ;
+        g = gen
+        } ;
+</PRE>
+<P>
+Notice 
+</P>
+<UL>
+<LI><B>local definition</B> (<CODE>let</CODE> expression)
+<LI><B>variable pattern</B> <CODE>n</CODE>
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc56"></A>
+<H2>An English concrete syntax for Foods with parameters</H2>
+<P>
+We use some string operations from the library <CODE>Prelude</CODE> are used. 
+</P>
+<PRE>
+     concrete FoodsEng of Foods = open Prelude in {
+  
+    lincat
+      S, Quality = SS ; 
+      Kind = {s : Number =&gt; Str} ; 
+      Item = {s : Str ; n : Number} ; 
+  
+    lin
+      Is item quality = ss (item.s ++ copula item.n ++ quality.s) ;
+      This  = det Sg "this" ;
+      That  = det Sg "that" ;
+      These = det Pl "these" ;
+      Those = det Pl "those" ;
+      QKind quality kind = {s = table {n =&gt; quality.s ++ kind.s ! n}} ;
+      Wine = regNoun "wine" ;
+      Cheese = regNoun "cheese" ;
+      Fish = noun "fish" "fish" ;
+      Pizza = regNoun "pizza" ;
+      Very = prefixSS "very" ;
+      Fresh = ss "fresh" ;
+      Warm = ss "warm" ;
+      Italian = ss "Italian" ;
+      Expensive = ss "expensive" ;
+      Delicious = ss "delicious" ;
+      Boring = ss "boring" ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<PRE>
+    param
+      Number = Sg | Pl ;
+  
+    oper
+      det : Number -&gt; Str -&gt; {s : Number =&gt; Str} -&gt; {s : Str ; n : Number} = 
+        \n,d,cn -&gt; {
+          s = d ++ cn.s ! n ;
+          n = n
+        } ;
+      noun : Str -&gt; Str -&gt; {s : Number =&gt; Str} = 
+        \man,men -&gt; {s = table {
+          Sg =&gt; man ;
+          Pl =&gt; men 
+          }
+        } ;
+      regNoun : Str -&gt; {s : Number =&gt; Str} = 
+        \car -&gt; noun car (car + "s") ;
+      copula : Number -&gt; Str = 
+        \n -&gt; case n of {
+          Sg =&gt; "is" ;
+          Pl =&gt; "are"
+          } ;
+    }    
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc57"></A>
+<H2>More on inflection paradigms</H2>
+<P>
+<a name="secinflection"></a>
+</P>
+<P>
+Let us extend the English noun paradigms so that we can
+deal with all nouns, not just the regular ones. The goal is to
+provide a morphology module that makes it easy to
+add words to a lexicon. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc58"></A>
+<H3>Worst-case functions</H3>
+<P>
+We perform <B>data abstraction</B> from the type
+of nouns by writing a a <B>worst-case function</B>:
+</P>
+<PRE>
+    oper Noun : Type = {s : Number =&gt; Str} ;
+  
+    oper mkNoun : Str -&gt; Str -&gt; Noun = \x,y -&gt; {
+      s = table {
+        Sg =&gt; x ;
+        Pl =&gt; y
+        }
+      } ;
+  
+    oper regNoun : Str -&gt; Noun = \x -&gt; mkNoun x (x + "s") ;
+</PRE>
+<P>
+Then we can define
+</P>
+<PRE>
+    lincat N = Noun ;
+    lin Mouse = mkNoun "mouse" "mice" ;
+    lin House = regNoun "house" ;
+</PRE>
+<P>
+where the underlying types are not seen.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+We are free to change the undelying definitions, e.g.
+add <B>case</B> (nominative or genitive) to noun inflection:
+</P>
+<PRE>
+    param Case = Nom | Gen ;
+  
+    oper Noun : Type = {s : Number =&gt; Case =&gt; Str} ;
+</PRE>
+<P>
+Now we have to redefine the worst-case function
+</P>
+<PRE>
+    oper mkNoun : Str -&gt; Str -&gt; Noun = \x,y -&gt; {
+      s = table {
+        Sg =&gt; table {
+          Nom =&gt; x ;
+          Gen =&gt; x + "'s"
+          } ;
+        Pl =&gt; table {
+          Nom =&gt; y ;
+          Gen =&gt; y + case last y of {
+            "s" =&gt; "'" ;
+            _   =&gt; "'s"
+          }
+        }
+      } ;
+</PRE>
+<P>
+But up from this level, we can retain the old definitions
+</P>
+<PRE>
+    lin Mouse = mkNoun "mouse" "mice" ;
+    oper regNoun : Str -&gt; Noun = \x -&gt; mkNoun x (x + "s") ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+In the last definition of <CODE>mkNoun</CODE>, we used a case expression
+on the last character of the plural, as well as the <CODE>Prelude</CODE> 
+operation
+</P>
+<PRE>
+    last : Str -&gt; Str ;
+</PRE>
+<P>
+returning the string consisting of the last character.
+</P>
+<P>
+The case expression uses <B>pattern matching over strings</B>, which
+is supported in GF, alongside with pattern matching over
+parameters.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc59"></A>
+<H3>Smart paradigms</H3>
+<P>
+The regular <I>dog</I>-<I>dogs</I> paradigm has
+predictable variations:
+</P>
+<UL>
+<LI>nouns ending with an <I>y</I>: <I>fly</I>-<I>flies</I>, except if
+  a vowel precedes the <I>y</I>: <I>boy</I>-<I>boys</I>
+<LI>nouns ending with <I>s</I>, <I>ch</I>, and a number of
+  other endings: <I>bus</I>-<I>buses</I>, <I>leech</I>-<I>leeches</I>
+</UL>
+
+<P>
+We could provide alternative paradigms:
+</P>
+<PRE>
+    noun_y : Str -&gt; Noun = \fly -&gt; mkNoun fly (init fly + "ies") ;  
+    noun_s : Str -&gt; Noun = \bus -&gt; mkNoun bus (bus + "es") ;
+</PRE>
+<P>
+(The Prelude function <CODE>init</CODE> drops the last character of a token.)
+</P>
+<P>
+Drawbacks: 
+</P>
+<UL>
+<LI>it can be difficult to select the correct paradigm
+<LI>it can be difficult to remember the names of the different paradigms
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<P>
+Better solution: a <B>smart paradigm</B>:
+</P>
+<PRE>
+    regNoun : Str -&gt; Noun = \w -&gt; 
+      let 
+        ws : Str = case w of {
+          _ + ("a" | "e" | "i" | "o") + "o" =&gt; w + "s" ;  -- bamboo
+          _ + ("s" | "x" | "sh" | "o")      =&gt; w + "es" ; -- bus, hero
+          _ + "z"                           =&gt; w + "zes" ;-- quiz 
+          _ + ("a" | "e" | "o" | "u") + "y" =&gt; w + "s" ;  -- boy
+          x + "y"                           =&gt; x + "ies" ;-- fly
+          _                                 =&gt; w + "s"    -- car
+          } 
+      in 
+      mkNoun w ws
+</PRE>
+<P>
+GF has <B>regular expression patterns</B>:
+</P>
+<UL>
+<LI><B>disjunctive patterns</B>  <I>P</I> <CODE>|</CODE> <I>Q</I>
+<LI><B>concatenation patterns</B> <I>P</I> <CODE>+</CODE> <I>Q</I>
+</UL>
+
+<P>
+The patterns are ordered in such a way that, for instance, 
+the suffix <CODE>"oo"</CODE> prevents <I>bamboo</I> from matching the suffix
+<CODE>"o"</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc60"></A>
+<H3>Exercises on regular patterns</H3>
+<OL>
+<LI>The same rules that form plural nouns in English also
+apply in the formation of third-person singular verbs. 
+Write a regular verb paradigm that uses this idea, but first
+rewrite <CODE>regNoun</CODE> so that the analysis needed to build <I>s</I>-forms
+is factored out as a separate <CODE>oper</CODE>, which is shared with
+<CODE>regVerb</CODE>.
+<P></P>
+<LI>Extend the verb paradigms to cover all verb forms
+in English, with special care taken of variations with the suffix
+<I>ed</I> (e.g. <I>try</I>-<I>tried</I>, <I>use</I>-<I>used</I>).
+<P></P>
+<LI>Implement the German <B>Umlaut</B> operation on word stems.
+The operation changes the vowel of the stressed stem syllable as follows:
+<I>a</I> to <I>ä</I>, <I>au</I> to <I>äu</I>, <I>o</I> to <I>ö</I>, and <I>u</I> to <I>ü</I>. You
+can assume that the operation only takes syllables as arguments. Test the
+operation to see whether it correctly changes <I>Arzt</I> to <I>Ärzt</I>,
+<I>Baum</I> to <I>Bäum</I>, <I>Topf</I> to <I>Töpf</I>, and <I>Kuh</I> to <I>Küh</I>.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc61"></A>
+<H3>Function types with variables</H3>
+<P>
+In <a href="#chapsix">Lesson 5</a>, <B>dependent function types</B> need a notation
+that binds a variable to the argument type, as in
+</P>
+<PRE>
+    switchOff : (k : Kind) -&gt; Action k
+</PRE>
+<P>
+Function types <I>without</I> variables are actually a shorthand:
+</P>
+<PRE>
+    PredVP : NP -&gt; VP -&gt; S
+</PRE>
+<P>
+means
+</P>
+<PRE>
+    PredVP : (x : NP) -&gt; (y : VP) -&gt; S
+</PRE>
+<P>
+or any other naming of the variables.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Sometimes variables shorten the code, since they can share a type:
+</P>
+<PRE>
+    octuple : (x,y,z,u,v,w,s,t : Str) -&gt; Str
+</PRE>
+<P>
+If a bound variable is not used, it can be replaced by a wildcard:
+</P>
+<PRE>
+    octuple : (_,_,_,_,_,_,_,_ : Str) -&gt; Str
+</PRE>
+<P>
+A good practice is to indicate the number of arguments:
+</P>
+<PRE>
+    octuple : (x1,_,_,_,_,_,_,x8 : Str) -&gt; Str
+</PRE>
+<P>
+For inflection paradigms, it is handy to use heuristic variable names,
+looking like the expected forms:
+</P>
+<PRE>
+    mkNoun : (mouse,mice : Str) -&gt; Noun
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc62"></A>
+<H3>Separating operation types and definitions</H3>
+<P>
+In librarues, it is useful to group type signatures separately from
+definitions. It is possible to divide an <CODE>oper</CODE> judgement, 
+</P>
+<PRE>
+    oper regNoun : Str -&gt; Noun ;
+    oper regNoun s = mkNoun s (s + "s") ;
+</PRE>
+<P>
+and put the parts in different places.
+</P>
+<P>
+With the <CODE>interface</CODE> and <CODE>instance</CODE> module types
+(see <a href="#secinterface">here</a>): the parts can even be put to different files.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc63"></A>
+<H3>Overloading of operations</H3>
+<P>
+<B>Overloading</B>: different functions can be given the same name, as e.g. in C++.
+</P>
+<P>
+The compiler performs <B>overload resolution</B>, which works as long as the
+functions have different types.
+</P>
+<P>
+In GF, the functions must be grouped together in <CODE>overload</CODE> groups. 
+</P>
+<P>
+Example: different ways to define nouns in English:
+</P>
+<PRE>
+    oper mkN : overload {
+      mkN : (dog : Str) -&gt; Noun ;         -- regular nouns
+      mkN : (mouse,mice : Str) -&gt; Noun ;  -- irregular nouns
+    }
+</PRE>
+<P>
+Cf. dictionaries: if the
+word is regular, just one form is needed. If it is irregular,
+more forms are given. 
+</P>
+<P>
+The definition can be given separately, or at the same time, as the types:
+</P>
+<PRE>
+    oper mkN = overload {
+      mkN : (dog : Str) -&gt; Noun = regNoun ;
+      mkN : (mouse,mice : Str) -&gt; Noun = mkNoun ;
+    }
+</PRE>
+<P>
+<B>Exercise</B>. Design a system of English verb paradigms presented by
+an overload group.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc64"></A>
+<H3>Morphological analysis and morphology quiz</H3>
+<P>
+The command <CODE>morpho_analyse = ma</CODE>
+can be used to read a text and return for each word its analyses
+(in the current grammar):
+</P>
+<PRE>
+    &gt; read_file bible.txt | morpho_analyse
+</PRE>
+<P>
+The command <CODE>morpho_quiz = mq</CODE> generates inflection exercises. 
+</P>
+<PRE>
+    % gf -path=alltenses:prelude $GF_LIB_PATH/alltenses/IrregFre.gfo
+  
+    &gt; morpho_quiz -cat=V
+  
+    Welcome to GF Morphology Quiz.
+    ...
+  
+    réapparaître : VFin VCondit  Pl  P2
+    réapparaitriez
+    &gt; No, not réapparaitriez, but
+    réapparaîtriez
+    Score 0/1
+</PRE>
+<P>
+To create a list for later use, use the command <CODE>morpho_list = ml</CODE>
+</P>
+<PRE>
+    &gt; morpho_list -number=25 -cat=V | write_file exx.txt
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc65"></A>
+<H2>The Italian Foods grammar</H2>
+<P>
+<a name="secitalian"></a>
+</P>
+<P>
+Parameters include not only number but also gender.
+</P>
+<PRE>
+  concrete FoodsIta of Foods = open Prelude in {
+  
+    param
+      Number = Sg | Pl ;
+      Gender = Masc | Fem ;
+</PRE>
+<P>
+Qualities are inflected for gender and number, whereas kinds
+have a parametric number and an inherent gender.
+Items have an inherent number and gender.
+</P>
+<PRE>
+    lincat
+      Phr = SS ; 
+      Quality = {s : Gender =&gt; Number =&gt; Str} ; 
+      Kind = {s : Number =&gt; Str ; g : Gender} ; 
+      Item = {s : Str ; g : Gender ; n : Number} ; 
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+A Quality is an adjective, with one form for each gender-number combination.
+</P>
+<PRE>
+    oper
+      adjective : (_,_,_,_ : Str) -&gt; {s : Gender =&gt; Number =&gt; Str} = 
+        \nero,nera,neri,nere -&gt; {
+          s = table {
+            Masc =&gt; table {
+              Sg =&gt; nero ;
+              Pl =&gt; neri
+              } ; 
+            Fem =&gt; table {
+              Sg =&gt; nera ;
+              Pl =&gt; nere
+              }
+            }
+        } ;
+</PRE>
+<P>
+Regular adjectives work by adding endings to the stem.
+</P>
+<PRE>
+      regAdj : Str -&gt; {s : Gender =&gt; Number =&gt; Str} = \nero -&gt;
+        let ner = init nero 
+        in adjective nero (ner + "a") (ner + "i") (ner + "e") ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+For noun inflection, we are happy to give the two forms and the gender 
+explicitly:
+</P>
+<PRE>
+      noun : Str -&gt; Str -&gt; Gender -&gt; {s : Number =&gt; Str ; g : Gender} = 
+        \vino,vini,g -&gt; {
+          s = table {
+            Sg =&gt; vino ;
+            Pl =&gt; vini
+            } ;
+          g = g
+        } ;
+</PRE>
+<P>
+We need only number variation for the copula.
+</P>
+<PRE>
+      copula : Number -&gt; Str = 
+        \n -&gt; case n of {
+          Sg =&gt; "è" ;
+          Pl =&gt; "sono"
+          } ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Determination is more complex than in English, because of gender:
+</P>
+<PRE>
+      det : Number -&gt; Str -&gt; Str -&gt; {s : Number =&gt; Str ; g : Gender} -&gt; 
+          {s : Str ; g : Gender ; n : Number} = 
+        \n,m,f,cn -&gt; {
+          s = case cn.g of {Masc =&gt; m ; Fem =&gt; f} ++ cn.s ! n ;
+          g = cn.g ;
+          n = n
+        } ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+The complete set of linearization rules:
+</P>
+<PRE>
+    lin
+      Is item quality = 
+        ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n) ;
+      This  = det Sg "questo" "questa" ;
+      That  = det Sg "quel"   "quella" ;
+      These = det Pl "questi" "queste" ;
+      Those = det Pl "quei"   "quelle" ;
+      QKind quality kind = {
+        s = \\n =&gt; kind.s ! n ++ quality.s ! kind.g ! n ;
+        g = kind.g
+        } ;
+      Wine = noun "vino" "vini" Masc ;
+      Cheese = noun "formaggio" "formaggi" Masc ;
+      Fish = noun "pesce" "pesci" Masc ;
+      Pizza = noun "pizza" "pizze" Fem ;
+      Very qual = {s = \\g,n =&gt; "molto" ++ qual.s ! g ! n} ;
+      Fresh = adjective "fresco" "fresca" "freschi" "fresche" ;
+      Warm = regAdj "caldo" ;
+      Italian = regAdj "italiano" ;
+      Expensive = regAdj "caro" ;
+      Delicious = regAdj "delizioso" ;
+      Boring = regAdj "noioso" ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc66"></A>
+<H3>Exercises on using parameters</H3>
+<OL>
+<LI>Experiment with multilingual generation and translation in the
+<CODE>Foods</CODE> grammars.
+<P></P>
+<LI>Add items, qualities, and determiners to the grammar, 
+and try to get their inflection and inherent features right.
+<P></P>
+<LI>Write a concrete syntax of <CODE>Food</CODE> for a language of your choice,
+now aiming for complete grammatical correctness by the use of parameters.
+<P></P>
+<LI>Measure the size of the context-free grammar corresponding to
+<CODE>FoodsIta</CODE>. You can do this by printing the grammar in the context-free format
+(<CODE>print_grammar -printer=bnf</CODE>) and counting the lines.
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc67"></A>
+<H2>Discontinuous constituents</H2>
+<P>
+A linearization record may contain more strings than one, and those
+strings can be put apart in linearization.
+</P>
+<P>
+Example: English particle
+verbs, (<I>switch off</I>). The object can appear between:
+</P>
+<P>
+<I>he switched it off</I>
+</P>
+<P>
+The verb <I>switch off</I> is called a
+<B>discontinuous constituents</B>.
+</P>
+<P>
+We can define transitive verbs and their combinations as follows:
+</P>
+<PRE>
+    lincat TV = {s : Number =&gt; Str ; part : Str} ;
+  
+    fun AppTV : Item -&gt; TV -&gt; Item -&gt; Phrase ;
+  
+    lin AppTV subj tv obj = 
+      {s = subj.s ++ tv.s ! subj.n ++ obj.s ++ tv.part} ;
+</PRE>
+<P></P>
+<P>
+<B>Exercise</B>. Define the language <CODE>a^n b^n c^n</CODE> in GF, i.e.
+any number of <I>a</I>'s followed by the same number of <I>b</I>'s and
+the same number of <I>c</I>'s. This language is not context-free,
+but can be defined in GF by using discontinuous constituents.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc68"></A>
+<H2>Strings at compile time vs. run time</H2>
+<P>
+Tokens are created in the following ways:
+</P>
+<UL>
+<LI>quoted string: <CODE>"foo"</CODE>
+<LI>gluing : <CODE>t + s</CODE>
+<LI>predefined operations <CODE>init, tail, tk, dp</CODE>
+<LI>pattern matching over strings
+</UL>
+
+<P>
+Since <I>tokens must be known at compile time</I>,
+the above operations may not be applied to <B>run-time variables</B>
+(i.e. variables that stand for function arguments in linearization rules).
+</P>
+<P>
+Hence it is not legal to write
+</P>
+<PRE>
+    cat Noun ;
+    fun Plural : Noun -&gt; Noun ;
+    lin Plural n = {s = n.s + "s"} ;
+</PRE>
+<P>
+because <CODE>n</CODE> is a run-time variable. Also
+</P>
+<PRE>
+    lin Plural n = {s = (regNoun n).s ! Pl} ; 
+</PRE>
+<P>
+is incorrect with <CODE>regNoun</CODE> as defined <a href="#secinflection">here</a>, because the run-time 
+variable is eventually sent to string pattern matching and gluing.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+How to write tokens together without a space?
+</P>
+<PRE>
+    lin Question p = {s = p + "?"} ;
+</PRE>
+<P>
+is incorrect. 
+</P>
+<P>
+The way to go is to use an <B>unlexer</B> that creates correct spacing
+after linearization. 
+</P>
+<P>
+Correspondingly, a <B>lexer</B> that e.g. analyses <CODE>"warm?"</CODE> into
+to tokens is needed before parsing. 
+This topic will be covered in <a href="#seclexing">here</a>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc69"></A>
+<H3>Supplementary constructs for concrete syntax</H3>
+<H4>Record extension and subtyping</H4>
+<P>
+The symbol <CODE>**</CODE> is used for both record types and record objects.
+</P>
+<PRE>
+    lincat TV = Verb ** {c : Case} ;
+  
+    lin Follow = regVerb "folgen" ** {c = Dative} ; 
+</PRE>
+<P>
+<CODE>TV</CODE> becomes a <B>subtype</B> of <CODE>Verb</CODE>.
+</P>
+<P>
+If <I>T</I> is a subtype of <I>R</I>, an object of <I>T</I> can be used whenever
+an object of <I>R</I> is required. 
+</P>
+<P>
+<B>Covariance</B>: a function returning a record <I>T</I> as value can
+also be used to return a value of a supertype <I>R</I>.
+</P>
+<P>
+<B>Contravariance</B>: a function taking an <I>R</I> as argument
+can also be applied to any object of a subtype <I>T</I>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<H4>Tuples and product types</H4>
+<P>
+Product types and tuples are syntactic sugar for record types and records:
+</P>
+<PRE>
+    T1 * ... * Tn   ===   {p1 : T1 ; ... ; pn : Tn}
+    &lt;t1, ...,  tn&gt;  ===   {p1 = T1 ; ... ; pn = Tn}
+</PRE>
+<P>
+Thus the labels <CODE>p1, p2,...</CODE> are hard-coded.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<H4>Prefix-dependent choices</H4>
+<P>
+English indefinite article:
+</P>
+<PRE>
+    oper artIndef : Str = 
+      pre {"a" ; "an" / strs {"a" ; "e" ; "i" ; "o"}} ;
+</PRE>
+<P>
+Thus
+</P>
+<PRE>
+    artIndef ++ "cheese"  ---&gt;  "a" ++ "cheese"
+    artIndef ++ "apple"   ---&gt;  "an" ++ "apple"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc70"></A>
+<H1>Lesson 4: Using the resource grammar library</H1>
+<P>
+<a name="chapfive"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>navigate in the GF resource grammar library and use it in applications
+<LI>get acquainted with basic linguistic categories
+<LI>write functors to achieve maximal sharing of code in multilingual grammars
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc71"></A>
+<H2>The coverage of the library</H2>
+<P>
+The current 16 resource languages (GF version 3.2, December 2010) are
+</P>
+<UL>
+<LI><CODE>Bul</CODE>garian
+<LI><CODE>Cat</CODE>alan
+<LI><CODE>Dan</CODE>ish
+<LI><CODE>Dut</CODE>ch
+<LI><CODE>Eng</CODE>lish
+<LI><CODE>Fin</CODE>nish
+<LI><CODE>Fre</CODE>nch
+<LI><CODE>Ger</CODE>man
+<LI><CODE>Ita</CODE>lian
+<LI><CODE>Nor</CODE>wegian
+<LI><CODE>Pol</CODE>ish
+<LI><CODE>Ron</CODE>, Romanian 
+<LI><CODE>Rus</CODE>sian
+<LI><CODE>Spa</CODE>nish
+<LI><CODE>Swe</CODE>dish
+<LI><CODE>Urd</CODE>u
+</UL>
+
+<P>
+The first three letters (<CODE>Eng</CODE> etc) are used in grammar module names
+(ISO 639-3 standard).
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc72"></A>
+<H2>The structure of the library</H2>
+<P>
+<a name="seclexical"></a>
+</P>
+<P>
+Semantic grammars (up to now in this tutorial):
+a grammar defines a system of meanings (abstract syntax) and
+tells how they are expressed(concrete syntax).
+</P>
+<P>
+Resource grammars (as usual in linguistic tradition):
+a grammar specifies the <B>grammatically correct combinations of words</B>, 
+whatever their meanings are. 
+</P>
+<P>
+With resource grammars, we can achieve a
+wider coverage than with semantic grammars.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc73"></A>
+<H3>Lexical vs. phrasal rules</H3>
+<P>
+A resource grammar has two kinds of categories and two kinds of rules:
+</P>
+<UL>
+<LI>lexical:
+  <UL>
+  <LI>lexical categories, to classify words
+  <LI>lexical rules, to define words and their properties
+  <P></P>
+  </UL>
+<LI>phrasal (combinatorial, syntactic):
+  <UL>
+  <LI>phrasal categories, to classify phrases of arbitrary size
+  <LI>phrasal rules, to combine phrases into larger phrases
+  </UL>
+</UL>
+
+<P>
+GE makes no formal distinction between these two kinds.
+</P>
+<P>
+But it is a good discipline to follow.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc74"></A>
+<H3>Lexical categories</H3>
+<P>
+Two kinds of lexical categories:
+</P>
+<UL>
+<LI><B>closed</B>: 
+  <UL>
+  <LI>a finite number of words
+  <LI>seldom extended in the history of language
+  <LI>structural words / function words, e.g.
+<PRE>
+      Conj ;     -- conjunction           e.g. "and"
+      Det ;      -- determiner            e.g. "this"
+</PRE>
+  <P></P>
+  </UL>
+<LI><B>open</B>:
+  <UL>
+  <LI>new words are added all the time
+  <LI>content words, e.g.
+<PRE>
+      N ;        -- noun         e.g. "pizza"
+      A ;        -- adjective    e.g. "good"
+      V ;        -- verb         e.g. "sleep"
+</PRE>
+  </UL>
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc75"></A>
+<H3>Lexical rules</H3>
+<P>
+Closed classes: module <CODE>Syntax</CODE>. In the <CODE>Foods</CODE> grammar, we need
+</P>
+<PRE>
+    this_Det, that_Det, these_Det, those_Det : Det ; 
+    very_AdA  : AdA ;
+</PRE>
+<P>
+Naming convention: word followed by the category (so we can
+distinguish the quantifier <I>that</I> from the conjunction <I>that</I>). 
+</P>
+<P>
+Open classes have no objects in <CODE>Syntax</CODE>. Words are
+built as they are needed in applications: if we have
+</P>
+<PRE>
+    fun Wine : Kind ;
+</PRE>
+<P>
+we will define
+</P>
+<PRE>
+    lin Wine = mkN "wine" ;
+</PRE>
+<P>
+where we use <CODE>mkN</CODE> from <CODE>ParadigmsEng</CODE>:
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc76"></A>
+<H3>Resource lexicon</H3>
+<P>
+Alternative concrete syntax for
+</P>
+<PRE>
+    fun Wine : Kind ;
+</PRE>
+<P>
+is to provide a <B>resource lexicon</B>, which contains definitions such as
+</P>
+<PRE>
+    oper wine_N : N = mkN "wine" ;
+</PRE>
+<P>
+so that we can write
+</P>
+<PRE>
+    lin Wine = wine_N ;
+</PRE>
+<P>
+Advantages:
+</P>
+<UL>
+<LI>we accumulate a reusable lexicon
+<LI>we can use a <a href="#secfunctor">here</a> to speed up multilingual grammar implementation
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc77"></A>
+<H3>Phrasal categories</H3>
+<P>
+In <CODE>Foods</CODE>, we need just four phrasal categories:
+</P>
+<PRE>
+    Cl ;   -- clause             e.g. "this pizza is good"
+    NP ;   -- noun phrase        e.g. "this pizza"
+    CN ;   -- common noun        e.g. "warm pizza"
+    AP ;   -- adjectival phrase  e.g. "very warm"
+</PRE>
+<P>
+Clauses are similar to sentences (<CODE>S</CODE>), but without a
+fixed tense and mood; see <a href="#secextended">here</a> for how they relate.
+</P>
+<P>
+Common nouns are made into noun phrases by adding determiners.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc78"></A>
+<H3>Syntactic combinations</H3>
+<P>
+We need the following combinations:
+</P>
+<PRE>
+    mkCl : NP -&gt; AP -&gt; Cl ;      -- e.g. "this pizza is very warm"
+    mkNP : Det -&gt; CN -&gt; NP ;     -- e.g. "this pizza" 
+    mkCN : AP -&gt; CN -&gt; CN ;      -- e.g. "warm pizza"
+    mkAP : AdA -&gt; AP -&gt; AP ;     -- e.g. "very warm" 
+</PRE>
+<P>
+We also need <B>lexical insertion</B>, to form phrases from single words:
+</P>
+<PRE>
+    mkCN : N -&gt; NP ;
+    mkAP : A -&gt; AP ;
+</PRE>
+<P>
+Naming convention: to construct a <I>C</I>, use a function <CODE>mk</CODE><I>C</I>.
+</P>
+<P>
+Heavy overloading: the current library
+(version 1.2) has 23 operations named <CODE>mkNP</CODE>!
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc79"></A>
+<H3>Example syntactic combination</H3>
+<P>
+The sentence
+<center>
+<I>these very warm pizzas are Italian</I>
+</center>
+can be built as follows:
+</P>
+<PRE>
+    mkCl 
+      (mkNP these_Det 
+         (mkCN (mkAP very_AdA (mkAP warm_A)) (mkCN pizza_CN)))
+      (mkAP italian_AP) 
+</PRE>
+<P>
+The task now: to define the concrete syntax of <CODE>Foods</CODE> so that
+this syntactic tree gives the value of linearizing the semantic tree
+</P>
+<PRE>
+    Is (These (QKind (Very Warm) Pizza)) Italian
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc80"></A>
+<H2>The resource API</H2>
+<P>
+Language-specific and language-independent parts - roughly,
+</P>
+<UL>
+<LI>the syntax API <CODE>Syntax</CODE><I>L</I> has the same types and 
+  functions for all languages <I>L</I>
+<LI>the morphology API <CODE>Paradigms</CODE><I>L</I> has partly 
+  different types and functions
+  for different languages <I>L</I>
+</UL>
+
+<P>
+Full API documentation on-line: the <B>resource synopsis</B>,
+</P>
+<P>
+<A HREF="http://grammaticalframework.org/lib/doc/synopsis.html"><CODE>grammaticalframework.org/lib/doc/synopsis.html</CODE></A>
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc81"></A>
+<H3>A miniature resource API: categories</H3>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Category</TH>
+<TH>Explanation</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>Cl</CODE></TD>
+<TD>clause (sentence), with all tenses</TD>
+<TD><I>she looks at this</I></TD>
+</TR>
+<TR>
+<TD><CODE>AP</CODE></TD>
+<TD>adjectival phrase</TD>
+<TD><I>very warm</I></TD>
+</TR>
+<TR>
+<TD><CODE>CN</CODE></TD>
+<TD>common noun (without determiner)</TD>
+<TD><I>red house</I></TD>
+</TR>
+<TR>
+<TD><CODE>NP</CODE></TD>
+<TD>noun phrase (subject or object)</TD>
+<TD><I>the red house</I></TD>
+</TR>
+<TR>
+<TD><CODE>AdA</CODE></TD>
+<TD>adjective-modifying adverb,</TD>
+<TD><I>very</I></TD>
+</TR>
+<TR>
+<TD><CODE>Det</CODE></TD>
+<TD>determiner</TD>
+<TD><I>these</I></TD>
+</TR>
+<TR>
+<TD><CODE>A</CODE></TD>
+<TD>one-place adjective</TD>
+<TD><I>warm</I></TD>
+</TR>
+<TR>
+<TD><CODE>N</CODE></TD>
+<TD>common noun</TD>
+<TD><I>house</I></TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc82"></A>
+<H3>A miniature resource API: rules</H3>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><CODE>NP -&gt; AP -&gt; Cl</CODE></TD>
+<TD><I>John is very old</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><CODE>Det -&gt; CN -&gt; NP</CODE></TD>
+<TD><I>these old man</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><CODE>N -&gt; CN</CODE></TD>
+<TD><I>house</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><CODE>AP -&gt; CN -&gt; CN</CODE></TD>
+<TD><I>very big blue house</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><CODE>A -&gt; AP</CODE></TD>
+<TD><I>old</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><CODE>AdA -&gt; AP -&gt; AP</CODE></TD>
+<TD><I>very very old</I></TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc83"></A>
+<H3>A miniature resource API: structural words</H3>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">In English</TH>
+</TR>
+<TR>
+<TD><CODE>this_Det</CODE></TD>
+<TD><CODE>Det</CODE></TD>
+<TD><I>this</I></TD>
+</TR>
+<TR>
+<TD><CODE>that_Det</CODE></TD>
+<TD><CODE>Det</CODE></TD>
+<TD><I>that</I></TD>
+</TR>
+<TR>
+<TD><CODE>these_Det</CODE></TD>
+<TD><CODE>Det</CODE></TD>
+<TD><I>this</I></TD>
+</TR>
+<TR>
+<TD><CODE>those_Det</CODE></TD>
+<TD><CODE>Det</CODE></TD>
+<TD><I>that</I></TD>
+</TR>
+<TR>
+<TD><CODE>very_AdA</CODE></TD>
+<TD><CODE>AdA</CODE></TD>
+<TD><I>very</I></TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc84"></A>
+<H3>A miniature resource API: paradigms</H3>
+<P>
+From <CODE>ParadigmsEng</CODE>:
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH COLSPAN="2">Type</TH>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(dog : Str) -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(man,men : Str) -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(cold : Str) -&gt; A</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+From <CODE>ParadigmsIta</CODE>:
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH COLSPAN="2">Type</TH>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(vino : Str) -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(caro : Str) -&gt; A</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc85"></A>
+<H3>A miniature resource API: more paradigms</H3>
+<P>
+From <CODE>ParadigmsGer</CODE>:
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH COLSPAN="2">Type</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><CODE>Type</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><CODE>Gender</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><CODE>Gender</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>neuter</CODE></TD>
+<TD><CODE>Gender</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(Stufe : Str) -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(Bild,Bilder : Str) -&gt; Gender -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(klein : Str) -&gt; A</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(gut,besser,beste : Str) -&gt; A</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+From <CODE>ParadigmsFin</CODE>:
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Function</TH>
+<TH COLSPAN="2">Type</TH>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(talo : Str) -&gt; N</CODE></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(hieno : Str) -&gt; A</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc86"></A>
+<H3>Exercises</H3>
+<P>
+1. Try out the morphological paradigms in different languages. Do 
+as follows:
+</P>
+<PRE>
+    &gt; i -path=alltenses -retain alltenses/ParadigmsGer.gfo
+    &gt; cc -table mkN "Farbe"
+    &gt; cc -table mkA "gut" "besser" "beste"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc87"></A>
+<H2>Example: English</H2>
+<P>
+<a name="secenglish"></a>
+</P>
+<P>
+We assume the abstract syntax <CODE>Foods</CODE> from <a href="#chaptwo">Lesson 3</a>.
+</P>
+<P>
+We don't need to think about inflection and agreement, but just pick
+functions from the resource grammar library.
+</P>
+<P>
+We need a path with
+</P>
+<UL>
+<LI>the current directory <CODE>.</CODE> 
+<LI>the directory <CODE>../foods</CODE>, in which <CODE>Foods.gf</CODE> resides.
+<LI>the library directory <CODE>present</CODE>, which is relative to the 
+  environment variable <CODE>GF_LIB_PATH</CODE>
+</UL>
+
+<P>
+Thus the beginning of the module is
+</P>
+<PRE>
+    --# -path=.:../foods:present
+  
+    concrete FoodsEng of Foods = open SyntaxEng,ParadigmsEng in {
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc88"></A>
+<H3>English example: linearization types and combination rules</H3>
+<P>
+As linearization types, we use clauses for <CODE>Phrase</CODE>, noun phrases
+for <CODE>Item</CODE>, common nouns for <CODE>Kind</CODE>, and adjectival phrases for <CODE>Quality</CODE>.
+</P>
+<PRE>
+    lincat
+      Phrase = Cl ; 
+      Item = NP ;
+      Kind = CN ;
+      Quality = AP ;
+</PRE>
+<P>
+Now the combination rules we need almost write themselves automatically:
+</P>
+<PRE>
+    lin
+      Is item quality = mkCl item quality ;
+      This kind = mkNP this_Det kind ;
+      That kind = mkNP that_Det kind ;
+      These kind = mkNP these_Det kind ;
+      Those kind = mkNP those_Det kind ;
+      QKind quality kind = mkCN quality kind ;
+      Very quality = mkAP very_AdA quality ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc89"></A>
+<H3>English example: lexical rules</H3>
+<P>
+We use resource paradigms and lexical insertion rules.
+</P>
+<P>
+The two-place noun paradigm is needed only once, for
+<I>fish</I> - everythins else is regular.
+</P>
+<PRE>
+      Wine = mkCN (mkN "wine") ;
+      Pizza = mkCN (mkN "pizza") ;
+      Cheese = mkCN (mkN "cheese") ;
+      Fish = mkCN (mkN "fish" "fish") ;
+      Fresh = mkAP (mkA "fresh") ;
+      Warm = mkAP (mkA "warm") ;
+      Italian = mkAP (mkA "Italian") ;
+      Expensive = mkAP (mkA "expensive") ;
+      Delicious = mkAP (mkA "delicious") ;
+      Boring = mkAP (mkA "boring") ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc90"></A>
+<H3>English example: exercises</H3>
+<P>
+1. Compile the grammar <CODE>FoodsEng</CODE> and generate 
+and parse some sentences.
+</P>
+<P>
+2. Write a concrete syntax of <CODE>Foods</CODE> for Italian 
+or some other language included in the resource library. You can 
+compare the results with the hand-written
+grammars presented earlier in this tutorial.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc91"></A>
+<H2>Functor implementation of multilingual grammars</H2>
+<P>
+<a name="secfunctor"></a>
+</P>
+<A NAME="toc92"></A>
+<H3>New language by copy and paste</H3>
+<P>
+If you write  a concrete syntax of <CODE>Foods</CODE> for some other
+language, much of the code will look exactly the same
+as for English. This is because 
+</P>
+<UL>
+<LI>the <CODE>Syntax</CODE> API is the same for all languages (because
+  all languages in the resource package do implement the same 
+  syntactic structures) 
+<LI>languages tend to use the syntactic structures in similar ways
+</UL>
+
+<P>
+But lexical rules are more language-dependent.
+</P>
+<P>
+Thus, to port a grammar to a new language, you
+</P>
+<OL>
+<LI>copy the concrete syntax of a given language
+<LI>change the words (strings and inflection paradigms)
+</OL>
+
+<P>
+Can we avoid this programming by copy-and-paste?
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc93"></A>
+<H3>Functors: functions on the module level</H3>
+<P>
+<B>Functors</B> familiar from the functional programming languages ML and OCaml, 
+also known as <B>parametrized modules</B>.
+</P>
+<P>
+In GF, a functor is a module that <CODE>open</CODE>s one or more <B>interfaces</B>.
+</P>
+<P>
+An <CODE>interface</CODE> is a module similar to a <CODE>resource</CODE>, but it only
+contains the <I>types</I> of <CODE>oper</CODE>s, not (necessarily) their definitions. 
+</P>
+<P>
+Syntax for functors: add the keyword <CODE>incomplete</CODE>. We will use the header
+</P>
+<PRE>
+    incomplete concrete FoodsI of Foods = open Syntax, LexFoods in
+</PRE>
+<P>
+where
+</P>
+<PRE>
+    interface Syntax    -- the resource grammar interface
+    interface LexFoods  -- the domain lexicon interface
+</PRE>
+<P>
+When we moreover have
+</P>
+<PRE>
+    instance SyntaxEng of Syntax     -- the English resource grammar
+    instance LexFoodsEng of LexFoods -- the English domain lexicon
+</PRE>
+<P>
+we can write a <B>functor instantiation</B>,
+</P>
+<PRE>
+    concrete FoodsGer of Foods = FoodsI with 
+      (Syntax = SyntaxGer),
+      (LexFoods = LexFoodsGer) ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc94"></A>
+<H3>Code for the Foods functor</H3>
+<PRE>
+    --# -path=.:../foods
+  
+    incomplete concrete FoodsI of Foods = open Syntax, LexFoods in {
+    lincat
+      Phrase = Cl ; 
+      Item = NP ;
+      Kind = CN ;
+      Quality = AP ;
+    lin
+      Is item quality = mkCl item quality ;
+      This kind = mkNP this_Det kind ;
+      That kind = mkNP that_Det kind ;
+      These kind = mkNP these_Det kind ;
+      Those kind = mkNP those_Det kind ;
+      QKind quality kind = mkCN quality kind ;
+      Very quality = mkAP very_AdA quality ;
+  
+      Wine = mkCN wine_N ;
+      Pizza = mkCN pizza_N ;
+      Cheese = mkCN cheese_N ;
+      Fish = mkCN fish_N ;
+      Fresh = mkAP fresh_A ;
+      Warm = mkAP warm_A ;
+      Italian = mkAP italian_A ;
+      Expensive = mkAP expensive_A ;
+      Delicious = mkAP delicious_A ;
+      Boring = mkAP boring_A ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc95"></A>
+<H3>Code for the LexFoods interface</H3>
+<P>
+<a name="secinterface"></a>
+</P>
+<PRE>
+    interface LexFoods = open Syntax in {
+    oper
+      wine_N : N ;
+      pizza_N : N ;
+      cheese_N : N ;
+      fish_N : N ;
+      fresh_A : A ;
+      warm_A : A ;
+      italian_A : A ;
+      expensive_A : A ;
+      delicious_A : A ;
+      boring_A : A ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc96"></A>
+<H3>Code for a German instance of the lexicon</H3>
+<PRE>
+    instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in {
+    oper
+      wine_N = mkN "Wein" ;
+      pizza_N = mkN "Pizza" "Pizzen" feminine ;
+      cheese_N = mkN "Käse" "Käsen" masculine ;
+      fish_N = mkN "Fisch" ;
+      fresh_A = mkA "frisch" ;
+      warm_A = mkA "warm" "wärmer" "wärmste" ;
+      italian_A = mkA "italienisch" ;
+      expensive_A = mkA "teuer" ;
+      delicious_A = mkA "köstlich" ;
+      boring_A = mkA "langweilig" ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc97"></A>
+<H3>Code for a German functor instantiation</H3>
+<PRE>
+    --# -path=.:../foods:present
+  
+    concrete FoodsGer of Foods = FoodsI with 
+      (Syntax = SyntaxGer),
+      (LexFoods = LexFoodsGer) ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc98"></A>
+<H3>Adding languages to a functor implementation</H3>
+<P>
+Just two modules are needed:
+</P>
+<UL>
+<LI>a domain lexicon instance
+<LI>a functor instantiation
+</UL>
+
+<P>
+The functor instantiation is completely mechanical to write.
+</P>
+<P>
+The domain lexicon instance requires some knowledge of the words of the
+language: 
+</P>
+<UL>
+<LI>what words are used for which concepts
+<LI>how the words are
+<LI>features such as genders
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc99"></A>
+<H3>Example: adding Finnish</H3>
+<P>
+Lexicon instance
+</P>
+<PRE>
+    instance LexFoodsFin of LexFoods = open SyntaxFin, ParadigmsFin in {
+    oper
+      wine_N = mkN "viini" ;
+      pizza_N = mkN "pizza" ;
+      cheese_N = mkN "juusto" ;
+      fish_N = mkN "kala" ;
+      fresh_A = mkA "tuore" ;
+      warm_A = mkA "lämmin" ;
+      italian_A = mkA "italialainen" ;
+      expensive_A = mkA "kallis" ;
+      delicious_A = mkA "herkullinen" ;
+      boring_A = mkA "tylsä" ;
+    }
+</PRE>
+<P>
+Functor instantiation
+</P>
+<PRE>
+    --# -path=.:../foods:present
+  
+    concrete FoodsFin of Foods = FoodsI with 
+      (Syntax = SyntaxFin),
+      (LexFoods = LexFoodsFin) ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc100"></A>
+<H3>A design pattern</H3>
+<P>
+This can be seen as a <I>design pattern</I> for multilingual grammars:
+</P>
+<PRE>
+                        concrete DomainL*
+  
+      instance LexDomainL                 instance SyntaxL*
+     
+                   incomplete concrete DomainI
+                   /           |              \               
+     interface LexDomain   abstract Domain    interface Syntax*
+</PRE>
+<P>
+Modules marked with <CODE>*</CODE> are either given in the library, or trivial.
+</P>
+<P>
+Of the hand-written modules, only <CODE>LexDomainL</CODE> is language-dependent.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc101"></A>
+<H3>Functors: exercises</H3>
+<P>
+1. Compile and test <CODE>FoodsGer</CODE>.
+</P>
+<P>
+2. Refactor <CODE>FoodsEng</CODE> into a functor instantiation.
+</P>
+<P>
+3. Instantiate the functor <CODE>FoodsI</CODE> to some language of
+your choice.
+</P>
+<P>
+4. Design a small grammar that can be used for controlling
+an MP3 player. The grammar should be able to recognize commands such
+as <I>play this song</I>, with the following variations:
+</P>
+<UL>
+<LI>verbs: <I>play</I>, <I>remove</I>
+<LI>objects: <I>song</I>, <I>artist</I>
+<LI>determiners: <I>this</I>, <I>the previous</I>
+<LI>verbs without arguments: <I>stop</I>, <I>pause</I>
+</UL>
+
+<P>
+The implementation goes in the following phases:
+</P>
+<OL>
+<LI>abstract syntax
+<LI>(optional:) prototype string-based concrete syntax
+<LI>functor over resource syntax and lexicon interface
+<LI>lexicon instance for the first language
+<LI>functor instantiation for the first language
+<LI>lexicon instance for the second language
+<LI>functor instantiation for the second language
+<LI>...
+</OL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc102"></A>
+<H2>Restricted inheritance</H2>
+<A NAME="toc103"></A>
+<H3>A problem with functors</H3>
+<P>
+Problem: a functor only works when all languages use the resource <CODE>Syntax</CODE> 
+in the same way.
+</P>
+<P>
+Example (contrived): assume that English has
+no word for <CODE>Pizza</CODE>, but has to use the paraphrase <I>Italian pie</I>.
+This is no longer a noun <CODE>N</CODE>, but a complex phrase
+in the category <CODE>CN</CODE>. 
+</P>
+<P>
+Possible solution: change interface the <CODE>LexFoods</CODE> with
+</P>
+<PRE>
+    oper pizza_CN : CN ;
+</PRE>
+<P>
+Problem with this solution: 
+</P>
+<UL>
+<LI>we may end up changing the interface and the function with each new language
+<LI>we must every time also change the instances for the old languages to maintain
+  type correctness
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc104"></A>
+<H3>Restricted inheritance: include or exclude</H3>
+<P>
+A module may inherit just a selection of names.
+</P>
+<P>
+Example: the <CODE>FoodMarket</CODE> example "Rsecarchitecture:
+</P>
+<PRE>
+    abstract Foodmarket = Food, Fruit [Peach], Mushroom - [Agaric]
+</PRE>
+<P>
+Here, from <CODE>Fruit</CODE> we include <CODE>Peach</CODE> only, and from <CODE>Mushroom</CODE>
+we exclude <CODE>Agaric</CODE>.
+</P>
+<P>
+A concrete syntax of <CODE>Foodmarket</CODE> must make the analogous restrictions.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc105"></A>
+<H3>The functor problem solved</H3>
+<P>
+The English instantiation inherits the functor 
+implementation except for the constant <CODE>Pizza</CODE>. This constant
+is defined in the body instead:
+</P>
+<PRE>
+    --# -path=.:../foods:present
+  
+    concrete FoodsEng of Foods = FoodsI - [Pizza] with 
+      (Syntax = SyntaxEng),
+      (LexFoods = LexFoodsEng) ** 
+        open SyntaxEng, ParadigmsEng in {
+  
+      lin Pizza = mkCN (mkA "Italian") (mkN "pie") ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc106"></A>
+<H2>Grammar reuse</H2>
+<P>
+Abstract syntax modules can be used as interfaces, 
+and concrete syntaxes as their instances.
+</P>
+<P>
+The following correspondencies are then applied:
+</P>
+<PRE>
+    cat C         &lt;---&gt;  oper C : Type
+  
+    fun f : A     &lt;---&gt;  oper f : A
+  
+    lincat C = T  &lt;---&gt;  oper C : Type = T
+  
+    lin f = t     &lt;---&gt;  oper f : A = t
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc107"></A>
+<H3>Library exercises</H3>
+<P>
+1. Find resource grammar terms for the following
+English phrases (in the category <CODE>Phr</CODE>). You can first try to
+build the terms manually.
+</P>
+<P>
+<I>every man loves a woman</I>
+</P>
+<P>
+<I>this grammar speaks more than ten languages</I>
+</P>
+<P>
+<I>which languages aren't in the grammar</I>
+</P>
+<P>
+<I>which languages did you want to speak</I>
+</P>
+<P>
+Then translate the phrases to other languages.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc108"></A>
+<H2>Tenses</H2>
+<P>
+<a name="sectense"></a>
+</P>
+<P>
+In <CODE>Foods</CODE> grammars, we have used the path
+</P>
+<PRE>
+    --# -path=.:../foods
+</PRE>
+<P>
+The library subdirectory <CODE>present</CODE> is a restricted version
+of the resource, with only present tense of verbs and sentences.
+</P>
+<P>
+By just changing the path, we get all tenses:
+</P>
+<PRE>
+    --# -path=.:../foods:alltenses
+</PRE>
+<P>
+Now we can see all the tenses of phrases, by using the <CODE>-all</CODE> flag 
+in linearization:
+</P>
+<PRE>
+    &gt; gr | l -all
+    This wine is delicious
+    Is this wine delicious
+    This wine isn't delicious
+    Isn't this wine delicious
+    This wine is not delicious
+    Is this wine not delicious
+    This wine has been delicious
+    Has this wine been delicious
+    This wine hasn't been delicious
+    Hasn't this wine been delicious
+    This wine has not been delicious
+    Has this wine not been delicious
+    This wine was delicious
+    Was this wine delicious
+    This wine wasn't delicious
+    Wasn't this wine delicious
+    This wine was not delicious
+    Was this wine not delicious
+    This wine had been delicious
+    Had this wine been delicious
+    This wine hadn't been delicious
+    Hadn't this wine been delicious
+    This wine had not been delicious
+    Had this wine not been delicious
+    This wine will be delicious
+    Will this wine be delicious
+    This wine won't be delicious
+    Won't this wine be delicious
+    This wine will not be delicious
+    Will this wine not be delicious
+    This wine will have been delicious
+    Will this wine have been delicious
+    This wine won't have been delicious
+    Won't this wine have been delicious
+    This wine will not have been delicious
+    Will this wine not have been delicious
+    This wine would be delicious
+    Would this wine be delicious
+    This wine wouldn't be delicious
+    Wouldn't this wine be delicious
+    This wine would not be delicious
+    Would this wine not be delicious
+    This wine would have been delicious
+    Would this wine have been delicious
+    This wine wouldn't have been delicious
+    Wouldn't this wine have been delicious
+    This wine would not have been delicious
+    Would this wine not have been delicious
+</PRE>
+<P>
+We also see 
+</P>
+<UL>
+<LI>polarity (positive vs. negative)
+<LI>word order (direct vs. inverted)
+<LI>variation between contracted and full negation
+</UL>
+
+<P>
+The list is even longer in languages that have more
+tenses and moods, e.g. the Romance languages.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc109"></A>
+<H1>Lesson 5: Refining semantics in abstract syntax</H1>
+<P>
+<a name="chapsix"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>include semantic conditions in grammars, by using
+  <UL>
+  <LI><B>dependent types</B> 
+  <LI><B>higher order abstract syntax</B> 
+  <LI>proof objects  
+  <LI>semantic definitions
+  <P></P>
+These concepts are inherited from <B>type theory</B> (more precisely:
+constructive type theory, or Martin-Löf type theory).
+  <P></P>
+Type theory is the basis <B>logical frameworks</B>.
+  <P></P>
+GF = logical framework + concrete syntax.
+  </UL>
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc110"></A>
+<H2>Dependent types</H2>
+<P>
+<a name="secsmarthouse"></a>
+</P>
+<P>
+Problem: to express <B>conditions of semantic well-formedness</B>.
+</P>
+<P>
+Example: a voice command system for a "smart house" wants to
+eliminate meaningless commands.
+</P>
+<P>
+Thus we want to restrict particular actions to
+particular devices - we can <I>dim a light</I>, but we cannot
+<I>dim a fan</I>.
+</P>
+<P>
+The following example is borrowed from the 
+Regulus Book (Rayner &amp; al. 2006).
+</P>
+<P>
+A simple example is a "smart house" system, which
+defines voice commands for household appliances.   
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc111"></A>
+<H3>A dependent type system</H3>
+<P>
+Ontology: 
+</P>
+<UL>
+<LI>there are commands and device kinds
+<LI>for each kind of device, there are devices and actions
+<LI>a command concerns an action of some kind on a device of the same kind
+</UL>
+
+<P>
+Abstract syntax formalizing this:
+</P>
+<PRE>
+    cat
+      Command ;
+      Kind ; 
+      Device Kind ; -- argument type Kind 
+      Action Kind ; 
+    fun 
+      CAction : (k : Kind) -&gt; Action k -&gt; Device k -&gt; Command ;
+</PRE>
+<P>
+<CODE>Device</CODE> and <CODE>Action</CODE> are both dependent types.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc112"></A>
+<H3>Examples of devices and actions</H3>
+<P>
+Assume the kinds <CODE>light</CODE> and <CODE>fan</CODE>,
+</P>
+<PRE>
+    light, fan : Kind ;
+    dim : Action light ;
+</PRE>
+<P>
+Given a kind, <I>k</I>, you can form the device <I>the k</I>.
+</P>
+<PRE>
+    DKindOne  : (k : Kind) -&gt; Device k ;  -- the light
+</PRE>
+<P>
+Now we can form the syntax tree
+</P>
+<PRE>
+    CAction light dim (DKindOne light)
+</PRE>
+<P>
+but we cannot form the trees
+</P>
+<PRE>
+    CAction light dim (DKindOne fan)
+    CAction fan   dim (DKindOne light)
+    CAction fan   dim (DKindOne fan)
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc113"></A>
+<H3>Linearization and parsing with dependent types</H3>
+<P>
+Concrete syntax does not know if a category is a dependent type. 
+</P>
+<PRE>
+    lincat Action = {s : Str} ;
+    lin CAction _ act dev = {s = act.s ++ dev.s} ; 
+</PRE>
+<P>
+Notice that the <CODE>Kind</CODE> argument is suppressed in linearization.
+</P>
+<P>
+Parsing with dependent types is performed in two phases:
+</P>
+<OL>
+<LI>context-free parsing
+<LI>filtering through type checker
+</OL>
+
+<P>
+By just doing the first phase, the <CODE>kind</CODE> argument is not found:
+</P>
+<PRE>
+    &gt; parse "dim the light"
+    CAction ? dim (DKindOne light)
+</PRE>
+<P>
+Moreover, type-incorrect commands are not rejected:
+</P>
+<PRE>
+    &gt; parse "dim the fan"
+    CAction ? dim (DKindOne fan)
+</PRE>
+<P>
+The term <CODE>?</CODE> is a <B>metavariable</B>, returned by the parser
+for any subtree that is suppressed by a linearization rule.
+These are the same kind of metavariables as were used <a href="#secediting">here</a>
+to mark incomplete parts of trees in the syntax editor.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc114"></A>
+<H3>Solving metavariables</H3>
+<P>
+Use the command <CODE>put_tree = pt</CODE> with the option <CODE>-typecheck</CODE>:
+</P>
+<PRE>
+    &gt; parse "dim the light" | put_tree -typecheck
+    CAction light dim (DKindOne light)
+</PRE>
+<P>
+The <CODE>typecheck</CODE> process may fail, in which case an error message
+is shown and no tree is returned:
+</P>
+<PRE>
+    &gt; parse "dim the fan" | put_tree -typecheck
+  
+    Error in tree UCommand (CAction ? 0 dim (DKindOne fan)) :
+      (? 0 &lt;&gt; fan) (? 0 &lt;&gt; light)
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc115"></A>
+<H2>Polymorphism</H2>
+<P>
+<a name="secpolymorphic"></a>
+</P>
+<P>
+Sometimes an action can be performed on all kinds of devices. 
+</P>
+<P>
+This is represented as a function that takes a <CODE>Kind</CODE> as an argument 
+and produce an <CODE>Action</CODE> for that <CODE>Kind</CODE>:
+</P>
+<PRE>
+    fun switchOn, switchOff : (k : Kind) -&gt; Action k ;
+</PRE>
+<P>
+Functions of this kind are called <B>polymorphic</B>. 
+</P>
+<P>
+We can use this kind of polymorphism in concrete syntax as well,
+to express Haskell-type library functions:
+</P>
+<PRE>
+    oper const :(a,b : Type) -&gt; a -&gt; b -&gt; a =
+      \_,_,c,_ -&gt; c ;
+  
+    oper flip : (a,b,c : Type) -&gt; (a -&gt; b -&gt;c) -&gt; b -&gt; a -&gt; c =
+      \_,_,_,f,x,y -&gt; f y x ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc116"></A>
+<H3>Dependent types: exercises</H3>
+<P>
+1. Write an abstract syntax module with above contents
+and an appropriate English concrete syntax. Try to parse the commands
+<I>dim the light</I> and <I>dim the fan</I>, with and without <CODE>solve</CODE> filtering.
+</P>
+<P>
+2. Perform random and exhaustive generation, with and without
+<CODE>solve</CODE> filtering.
+</P>
+<P>
+3. Add some device kinds and actions to the grammar.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc117"></A>
+<H2>Proof objects</H2>
+<P>
+<B>Curry-Howard isomorphism</B> = <B>propositions as types principle</B>:
+a proposition is a type of proofs (= proof objects).
+</P>
+<P>
+Example: define the <I>less than</I> proposition for natural numbers,
+</P>
+<PRE>
+    cat Nat ; 
+    fun Zero : Nat ;
+    fun Succ : Nat -&gt; Nat ;
+</PRE>
+<P>
+Define inductively what it means for a number <I>x</I> to be <I>less than</I>
+a number <I>y</I>:
+</P>
+<UL>
+<LI><CODE>Zero</CODE> is less than <CODE>Succ</CODE> <I>y</I> for any <I>y</I>.
+<LI>If <I>x</I> is less than <I>y</I>, then <CODE>Succ</CODE> <I>x</I> is less than <CODE>Succ</CODE> <I>y</I>.
+</UL>
+
+<P>
+Expressing these axioms in type theory
+with a dependent type <CODE>Less</CODE> <I>x y</I> and two functions constructing
+its objects:
+</P>
+<PRE>
+    cat Less Nat Nat ; 
+    fun lessZ : (y : Nat) -&gt; Less Zero (Succ y) ;
+    fun lessS : (x,y : Nat) -&gt; Less x y -&gt; Less (Succ x) (Succ y) ;
+</PRE>
+<P>
+Example: the fact that 2 is less that 4 has the proof object
+</P>
+<PRE>
+    lessS (Succ Zero) (Succ (Succ (Succ Zero)))
+          (lessS Zero (Succ (Succ Zero)) (lessZ (Succ Zero)))
+     : Less (Succ (Succ Zero)) (Succ (Succ (Succ (Succ Zero))))
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc118"></A>
+<H3>Proof-carrying documents</H3>
+<P>
+Idea: to be semantically well-formed, the abstract syntax of a document 
+must contain a proof of some property, 
+although the proof is not shown in the concrete document.
+</P>
+<P>
+Example: documents describing flight connections:
+</P>
+<P>
+<I>To fly from Gothenburg to Prague, first take LH3043 to Frankfurt, then OK0537 to Prague.</I>
+</P>
+<P>
+The well-formedness of this text is partly expressible by dependent typing: 
+</P>
+<PRE>
+    cat
+      City ;
+      Flight City City ;
+    fun
+      Gothenburg, Frankfurt, Prague : City ;
+      LH3043 : Flight Gothenburg Frankfurt ;
+      OK0537 : Flight Frankfurt Prague ;
+</PRE>
+<P>
+To extend the conditions to flight connections, we introduce a category
+of proofs that a change is possible:
+</P>
+<PRE>
+    cat IsPossible (x,y,z : City)(Flight x y)(Flight y z) ;
+</PRE>
+<P>
+A legal connection is formed by the function
+</P>
+<PRE>
+    fun Connect : (x,y,z : City) -&gt; 
+      (u : Flight x y) -&gt; (v : Flight y z) -&gt; 
+        IsPossible x y z u v -&gt; Flight x z ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc119"></A>
+<H2>Restricted polymorphism</H2>
+<P>
+Above, all Actions were either of
+</P>
+<UL>
+<LI><B>monomorphic</B>: defined for one Kind
+<LI><B>polymorphic</B>: defined for all Kinds
+</UL>
+
+<P>
+To make this scale up for new Kinds, we can refine this to 
+<B>restricted polymorphism</B>: defined for Kinds of a certain <B>class</B>
+</P>
+<P>
+The notion of class uses the Curry-Howard isomorphism as follows:
+</P>
+<UL>
+<LI>a class is a <B>predicate</B> of Kinds --- i.e. a type depending of Kinds
+<LI>a Kind is in a class if there is a proof object of this type
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc120"></A>
+<H3>Example: classes for switching and dimming</H3>
+<P>
+We modify the smart house grammar:
+</P>
+<PRE>
+  cat
+    Switchable Kind ;
+    Dimmable   Kind ;
+  fun
+    switchable_light : Switchable light ;
+    switchable_fan   : Switchable fan ;
+    dimmable_light   : Dimmable light ;
+  
+    switchOn : (k : Kind) -&gt; Switchable k -&gt; Action k ;
+    dim      : (k : Kind) -&gt; Dimmable k -&gt; Action k ;
+</PRE>
+<P>
+Classes for new actions can be added incrementally. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc121"></A>
+<H2>Variable bindings</H2>
+<P>
+<a name="secbinding"></a>
+</P>
+<P>
+Mathematical notation and programming languages have
+expressions that <B>bind</B> variables. 
+</P>
+<P>
+Example: universal quantifier formula
+</P>
+<PRE>
+    (All x)B(x)
+</PRE>
+<P>
+The variable <CODE>x</CODE> has a <B>binding</B> <CODE>(All x)</CODE>, and
+occurs <B>bound</B> in the <B>body</B> <CODE>B(x)</CODE>.
+</P>
+<P>
+Examples from informal mathematical language:
+</P>
+<PRE>
+    for all x, x is equal to x
+  
+    the function that for any numbers x and y returns the maximum of x+y
+    and x*y
+  
+    Let x be a natural number. Assume that x is even. Then x + 3 is odd.
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc122"></A>
+<H3>Higher-order abstract syntax</H3>
+<P>
+Abstract syntax can use functions as arguments:
+</P>
+<PRE>
+    cat Ind ; Prop ;
+    fun All : (Ind -&gt; Prop) -&gt; Prop
+</PRE>
+<P>
+where <CODE>Ind</CODE> is the type of individuals and <CODE>Prop</CODE>,
+the type of propositions. 
+</P>
+<P>
+Let us add an equality predicate
+</P>
+<PRE>
+    fun Eq : Ind -&gt; Ind -&gt; Prop
+</PRE>
+<P>
+Now we can form the tree
+</P>
+<PRE>
+    All (\x -&gt; Eq x x)
+</PRE>
+<P>
+which we want to relate to the ordinary notation
+</P>
+<PRE>
+    (All x)(x = x)
+</PRE>
+<P>
+In <B>higher-order abstract syntax</B> (HOAS), all variable bindings are
+expressed using higher-order syntactic constructors.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc123"></A>
+<H3>Higher-order abstract syntax: linearization</H3>
+<P>
+HOAS has proved to be useful in the semantics and computer implementation of
+variable-binding expressions. 
+</P>
+<P>
+How do we relate HOAS to the concrete syntax?
+</P>
+<P>
+In GF, we write
+</P>
+<PRE>
+    fun All : (Ind -&gt; Prop) -&gt; Prop
+    lin All B = {s = "(" ++ "All" ++ B.$0 ++ ")" ++ B.s}
+</PRE>
+<P>
+General rule: if an argument type of a <CODE>fun</CODE> function is
+a function type <CODE>A -&gt; C</CODE>, the linearization type of
+this argument is the linearization type of <CODE>C</CODE>
+together with a new field <CODE>$0 : Str</CODE>. 
+</P>
+<P>
+The argument <CODE>B</CODE> thus has the linearization type
+</P>
+<PRE>
+    {s : Str ; $0 : Str},
+</PRE>
+<P>
+If there are more bindings, we add <CODE>$1</CODE>, <CODE>$2</CODE>, etc.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc124"></A>
+<H3>Eta expansion</H3>
+<P>
+To make sense of linearization, syntax trees must be
+<B>eta-expanded</B>: for any function of type
+</P>
+<PRE>
+    A -&gt; B
+</PRE>
+<P>
+an eta-expanded syntax tree has the form
+</P>
+<PRE>
+    \x -&gt; b
+</PRE>
+<P>
+where <CODE>b : B</CODE> under the assumption <CODE>x : A</CODE>.
+</P>
+<P>
+Given the linearization rule
+</P>
+<PRE>
+    lin Eq a b = {s = "(" ++ a.s ++ "=" ++ b.s ++ ")"}
+</PRE>
+<P>
+the linearization of the tree 
+</P>
+<PRE>
+    \x -&gt; Eq x x
+</PRE>
+<P>
+is the record
+</P>
+<PRE>
+    {$0 = "x", s = ["( x = x )"]}
+</PRE>
+<P>
+Then we can compute the linearization of the formula,
+</P>
+<PRE>
+    All (\x -&gt; Eq x x)  --&gt; {s = "[( All x ) ( x = x )]"}.
+</PRE>
+<P>
+The linearization of the variable <CODE>x</CODE> is, 
+"automagically", the string <CODE>"x"</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc125"></A>
+<H3>Parsing variable bindings</H3>
+<P>
+GF can treat any one-word string as a variable symbol.
+</P>
+<PRE>
+    &gt; p -cat=Prop "( All x ) ( x = x )"
+    All (\x -&gt; Eq x x)
+</PRE>
+<P>
+Variables must be bound if they are used:
+</P>
+<PRE>
+    &gt; p -cat=Prop "( All x ) ( x = y )"
+    no tree found
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc126"></A>
+<H3>Exercises on variable bindings</H3>
+<P>
+1. Write an abstract syntax of the whole
+<B>predicate calculus</B>, with the
+<B>connectives</B> "and", "or", "implies", and "not", and the
+<B>quantifiers</B> "exists" and "for all". Use higher-order functions
+to guarantee that unbounded variables do not occur.
+</P>
+<P>
+2. Write a concrete syntax for your favourite
+notation of predicate calculus. Use Latex as target language
+if you want nice output. You can also try producing boolean
+expressions of some programming language. Use as many parenthesis as you need to
+guarantee non-ambiguity.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc127"></A>
+<H2>Semantic definitions</H2>
+<P>
+<a name="secdefdef"></a>
+</P>
+<P>
+The <CODE>fun</CODE> judgements of GF are declarations of functions, giving their types.
+</P>
+<P>
+Can we <B>compute</B> <CODE>fun</CODE> functions?
+</P>
+<P>
+Mostly we are not interested, since functions are seen as constructors,
+i.e. data forms - as usual with
+</P>
+<PRE>
+    fun Zero : Nat ;
+    fun Succ : Nat -&gt; Nat ;
+</PRE>
+<P>
+But it is also possible to give <B>semantic definitions</B> to functions.
+The key word is <CODE>def</CODE>:
+</P>
+<PRE>
+    fun one : Nat ;
+    def one = Succ Zero ;
+  
+    fun twice : Nat -&gt; Nat ;
+    def twice x = plus x x ;
+  
+    fun plus : Nat -&gt; Nat -&gt; Nat ;
+    def 
+      plus x Zero = x ;
+      plus x (Succ y) = Succ (Sum x y) ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc128"></A>
+<H3>Computing a tree</H3>
+<P>
+Computation: follow a chain of definition until no definition
+can be applied,
+</P>
+<PRE>
+    plus one one --&gt;
+    plus (Succ Zero) (Succ Zero) --&gt;
+    Succ (plus (Succ Zero) Zero) --&gt;
+    Succ (Succ Zero)
+</PRE>
+<P>
+Computation in GF is performed with the <CODE>put_term</CODE> command and the
+<CODE>compute</CODE> transformation, e.g.
+</P>
+<PRE>
+    &gt; parse -tr "1 + 1" | put_term -transform=compute -tr | l
+    plus one one
+    Succ (Succ Zero)
+    s(s(0))
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc129"></A>
+<H3>Definitional equality</H3>
+<P>
+Two trees are definitionally equal if they compute into the same tree.
+</P>
+<P>
+Definitional equality does not guarantee sameness of linearization:
+</P>
+<PRE>
+    plus one one     ===&gt; 1 + 1
+    Succ (Succ Zero) ===&gt; s(s(0))
+</PRE>
+<P>
+The main use of this concept is in type checking: sameness of types.
+</P>
+<P>
+Thus e.g. the following types are equal
+</P>
+<PRE>
+    Less Zero one
+    Less Zero (Succ Zero))
+</PRE>
+<P>
+so that an object of one also is an object of the other.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc130"></A>
+<H3>Judgement forms for constructors</H3>
+<P>
+The judgement form <CODE>data</CODE> tells that a category has 
+certain functions as constructors:
+</P>
+<PRE>
+    data Nat = Succ | Zero ;
+</PRE>
+<P>
+The type signatures of constructors are given separately, 
+</P>
+<PRE>
+    fun Zero : Nat ;
+    fun Succ : Nat -&gt; Nat ;
+</PRE>
+<P>
+There is also a shorthand:
+</P>
+<PRE>
+    data Succ : Nat -&gt; Nat ;    ===   fun Succ : Nat -&gt; Nat ;
+                                      data Nat = Succ ;
+</PRE>
+<P>
+Notice: in <CODE>def</CODE> definitions, identifier patterns not
+marked as <CODE>data</CODE> will be treated as variables.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc131"></A>
+<H3>Exercises on semantic definitions</H3>
+<P>
+1. Implement an interpreter of a small functional programming
+language with natural numbers, lists, pairs, lambdas, etc. Use higher-order
+abstract syntax with semantic definitions. As concrete syntax, use
+your favourite programming language.
+</P>
+<P>
+2. There is no termination checking for <CODE>def</CODE> definitions. 
+Construct an examples that makes type checking loop.
+Type checking can be invoked with <CODE>put_term -transform=solve</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc132"></A>
+<H2>Lesson 6: Grammars of formal languages</H2>
+<P>
+<a name="chapseven"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>write grammars for formal languages (mathematical notation, programming languages)
+<LI>interface between formal and natural langauges
+<LI>implement a compiler by using GF
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc133"></A>
+<H3>Arithmetic expressions</H3>
+<P>
+We construct a calculator with addition, subtraction, multiplication, and
+division of integers. 
+</P>
+<PRE>
+    abstract Calculator = {
+  
+    cat Exp ;
+  
+    fun
+      EPlus, EMinus, ETimes, EDiv : Exp -&gt; Exp -&gt; Exp ;
+      EInt : Int -&gt; Exp ;
+    }
+</PRE>
+<P>
+The category <CODE>Int</CODE> is a built-in category of
+integers. Its syntax trees <B>integer literals</B>, i.e.
+sequences of digits:
+</P>
+<PRE>
+    5457455814608954681 : Int
+</PRE>
+<P>
+These are the only objects of type <CODE>Int</CODE>:
+grammars are not allowed to declare functions with <CODE>Int</CODE> as value type.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc134"></A>
+<H3>Concrete syntax: a simple approach</H3>
+<P>
+We begin with a
+concrete syntax that always uses parentheses around binary
+operator applications: 
+</P>
+<PRE>
+    concrete CalculatorP of Calculator = {
+  
+    lincat 
+      Exp = SS ;
+    lin
+      EPlus  = infix "+" ;
+      EMinus = infix "-" ;
+      ETimes = infix "*" ;
+      EDiv   = infix "/" ;
+      EInt i = i ;
+  
+    oper
+      infix : Str -&gt; SS -&gt; SS -&gt; SS = \f,x,y -&gt; 
+        ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
+    }
+</PRE>
+<P>
+Now we have
+</P>
+<PRE>
+    &gt; linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+    ( 2 + ( 3 * 4 ) )
+</PRE>
+<P>
+First problems: 
+</P>
+<UL>
+<LI>to get rid of superfluous spaces and 
+<LI>to recognize integer literals in the parser
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc135"></A>
+<H2>Lexing and unlexing</H2>
+<P>
+<a name="seclexing"></a>
+</P>
+<P>
+The input of parsing in GF is not just a string, but a list of
+<B>tokens</B>, returned by a <B>lexer</B>.
+</P>
+<P>
+The default lexer in GF returns chunks separated by spaces:
+</P>
+<PRE>
+    "(12 + (3 * 4))"  ===&gt;  "(12", "+", "(3". "*". "4))"
+</PRE>
+<P>
+The proper way would be
+</P>
+<PRE>
+    "(", "12", "+", "(", "3", "*", "4", ")", ")"
+</PRE>
+<P>
+Moreover, the tokens <CODE>"12"</CODE>, <CODE>"3"</CODE>, and <CODE>"4"</CODE> should be recognized as
+integer literals - they cannot be found in the grammar.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Lexers are invoked by flags to the command <CODE>put_string = ps</CODE>.
+</P>
+<PRE>
+    &gt; put_string -lexcode "(2 + (3 * 4))"
+    ( 2 + ( 3 * 4 ) )
+</PRE>
+<P>
+This can be piped into a parser, as usual:
+</P>
+<PRE>
+    &gt; ps -lexcode "(2 + (3 * 4))" | parse
+    EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+</PRE>
+<P>
+In linearization, we use a corresponding <B>unlexer</B>:
+</P>
+<PRE>
+    &gt; linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4)) | ps -unlexcode
+    (2 + (3 * 4))
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc136"></A>
+<H3>Most common lexers and unlexers</H3>
+<TABLE ALIGN="center" CELLPADDING="4" BORDER="1">
+<TR>
+<TH>lexer</TH>
+<TH>unlexer</TH>
+<TH COLSPAN="2">description</TH>
+</TR>
+<TR>
+<TD><CODE>chars</CODE></TD>
+<TD><CODE>unchars</CODE></TD>
+<TD>each character is a token</TD>
+</TR>
+<TR>
+<TD><CODE>lexcode</CODE></TD>
+<TD><CODE>unlexcode</CODE></TD>
+<TD>program code conventions (uses Haskell's lex)</TD>
+</TR>
+<TR>
+<TD><CODE>lexmixed</CODE></TD>
+<TD><CODE>unlexmixed</CODE></TD>
+<TD>like text, but between $ signs like code</TD>
+</TR>
+<TR>
+<TD><CODE>lextext</CODE></TD>
+<TD><CODE>unlextext</CODE></TD>
+<TD>with conventions on punctuation and capitals</TD>
+</TR>
+<TR>
+<TD><CODE>words</CODE></TD>
+<TD><CODE>unwords</CODE></TD>
+<TD>(default) tokens separated by space characters</TD>
+</TR>
+</TABLE>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc137"></A>
+<H2>Precedence and fixity</H2>
+<P>
+Arithmetic expressions should be unambiguous. If we write
+</P>
+<PRE>
+    2 + 3 * 4
+</PRE>
+<P>
+it should be parsed as one, but not both, of
+</P>
+<PRE>
+    EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+    ETimes (EPlus (EInt 2) (EInt 3)) (EInt 4)
+</PRE>
+<P>
+We choose the former tree, because
+multiplication has <B>higher precedence</B> than addition.
+</P>
+<P>
+To express the latter tree, we have to use parentheses:
+</P>
+<PRE>
+    (2 + 3) * 4
+</PRE>
+<P>
+The usual precedence rules:
+</P>
+<UL>
+<LI>Integer constants and expressions in parentheses have the highest precedence.
+<LI>Multiplication and division have equal precedence, lower than the highest
+  but higher than addition and subtraction, which are again equal.
+<LI>All the four binary operations are <B>left-associative</B>:
+  <CODE>1 + 2 + 3</CODE> means the same as <CODE>(1 + 2) + 3</CODE>.
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc138"></A>
+<H3>Precedence as a parameter</H3>
+<P>
+Precedence can be made into an inherent feature of expressions:
+</P>
+<PRE>
+    oper
+      Prec : PType = Ints 2 ;
+      TermPrec : Type = {s : Str ; p : Prec} ;
+  
+      mkPrec : Prec -&gt; Str -&gt; TermPrec = \p,s -&gt; {s = s ; p = p} ;
+  
+    lincat 
+      Exp = TermPrec ;
+</PRE>
+<P>
+Notice <CODE>Ints 2</CODE>: a parameter type, whose values are the integers
+<CODE>0,1,2</CODE>. 
+</P>
+<P>
+Using precedence levels: compare the inherent precedence of an 
+expression with the expected precedence.
+</P>
+<UL>
+<LI>if the inherent precedence is lower than the expected precedence,
+  use parentheses
+<LI>otherwise, no parentheses are needed
+</UL>
+
+<P>
+This idea is encoded in the operation
+</P>
+<PRE>
+    oper usePrec : TermPrec -&gt; Prec -&gt; Str = \x,p -&gt;
+      case lessPrec x.p p of {
+        True  =&gt; "(" x.s ")" ;
+        False =&gt; x.s
+      } ;
+</PRE>
+<P>
+(We use <CODE>lessPrec</CODE> from <CODE>lib/prelude/Formal</CODE>.)
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc139"></A>
+<H3>Fixities</H3>
+<P>
+We can define left-associative infix expressions:
+</P>
+<PRE>
+    infixl : Prec -&gt; Str -&gt; (_,_ : TermPrec) -&gt; TermPrec = \p,f,x,y -&gt;
+      mkPrec p (usePrec x p ++ f ++ usePrec y (nextPrec p)) ;
+</PRE>
+<P>
+Constant-like expressions (the highest level):
+</P>
+<PRE>
+    constant : Str -&gt; TermPrec = mkPrec 2 ;
+</PRE>
+<P>
+All these operations can be found in <CODE>lib/prelude/Formal</CODE>,
+which has 5 levels.
+</P>
+<P>
+Now we can write the whole concrete syntax of <CODE>Calculator</CODE> compactly:
+</P>
+<PRE>
+    concrete CalculatorC of Calculator = open Formal, Prelude in {
+  
+    flags lexer = codelit ; unlexer = code ; startcat = Exp ;
+  
+    lincat Exp = TermPrec ;
+  
+    lin
+      EPlus  = infixl 0 "+" ;
+      EMinus = infixl 0 "-" ;
+      ETimes = infixl 1 "*" ;
+      EDiv   = infixl 1 "/" ;
+      EInt i = constant i.s ;
+    }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc140"></A>
+<H3>Exercises on precedence</H3>
+<P>
+1. Define non-associative and right-associative infix operations
+analogous to <CODE>infixl</CODE>.
+</P>
+<P>
+2. Add a constructor that puts parentheses around expressions
+to raise their precedence, but that is eliminated by a <CODE>def</CODE> definition.
+Test parsing with and without a pipe to <CODE>pt -transform=compute</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc141"></A>
+<H2>Code generation as linearization</H2>
+<P>
+Translate arithmetic (infix) to JVM (postfix):
+</P>
+<PRE>
+    2 + 3 * 4
+  
+      ===&gt;
+  
+    iconst 2 : iconst 3 ; iconst 4 ; imul ; iadd
+</PRE>
+<P>
+Just give linearization rules for JVM:
+</P>
+<PRE>
+    lin
+      EPlus  = postfix "iadd" ;
+      EMinus = postfix "isub" ;
+      ETimes = postfix "imul" ;
+      EDiv   = postfix "idiv" ;
+      EInt i = ss ("iconst" ++ i.s) ;
+    oper
+      postfix : Str -&gt; SS -&gt; SS -&gt; SS = \op,x,y -&gt; 
+        ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc142"></A>
+<H3>Programs with variables</H3>
+<P>
+A <B>straight code</B> programming language, with
+<B>initializations</B> and <B>assignments</B>:
+</P>
+<PRE>
+    int x = 2 + 3 ;  
+    int y = x + 1 ; 
+    x = x + 9 * y ;
+</PRE>
+<P>
+We define programs by the following constructors:
+</P>
+<PRE>
+    fun
+      PEmpty : Prog ;
+      PInit  : Exp -&gt; (Var -&gt; Prog) -&gt; Prog ;
+      PAss   : Var -&gt; Exp  -&gt; Prog  -&gt; Prog ;
+</PRE>
+<P>
+<CODE>PInit</CODE> uses higher-order abstract syntax for making the 
+initialized variable available in the <B>continuation</B> of the program. 
+</P>
+<P>
+The abstract syntax tree for the above code is
+</P>
+<PRE>
+    PInit (EPlus (EInt 2) (EInt 3)) (\x -&gt; 
+      PInit (EPlus (EVar x) (EInt 1)) (\y -&gt; 
+        PAss x (EPlus (EVar x) (ETimes (EInt 9) (EVar y))) 
+          PEmpty))
+</PRE>
+<P>
+No uninitialized variables are allowed - there are no constructors for <CODE>Var</CODE>! 
+But we do have the rule
+</P>
+<PRE>
+    fun EVar : Var -&gt; Exp ;
+</PRE>
+<P>
+The rest of the grammar is just the same as for arithmetic expressions
+<a href="#secprecedence">here</a>. The best way to implement it is perhaps by writing a
+module that extends the expression module. The most natural start category
+of the extension is <CODE>Prog</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc143"></A>
+<H3>Exercises on code generation</H3>
+<P>
+1. Define a C-like concrete syntax of the straight-code language.
+</P>
+<P>
+2. Extend the straight-code language to expressions of type <CODE>float</CODE>.
+To guarantee type safety, you can define a category <CODE>Typ</CODE> of types, and
+make <CODE>Exp</CODE> and <CODE>Var</CODE> dependent on <CODE>Typ</CODE>. Basic floating point expressions
+can be formed from literal of the built-in GF type <CODE>Float</CODE>. The arithmetic
+operations should be made polymorphic (as <a href="#secpolymorphic">here</a>).
+</P>
+<P>
+3. Extend JVM generation to the straight-code language, using
+two more instructions
+</P>
+<UL>
+<LI><CODE>iload</CODE> <I>x</I>, which loads the value of the variable <I>x</I>
+<LI><CODE>istore</CODE> <I>x</I> which stores a value to the variable <I>x</I>
+</UL>
+
+<P>
+Thus the code for the example in the previous section is
+</P>
+<PRE>
+    iconst 2 ; iconst 3 ; iadd ; istore x ;
+    iload x ; iconst 1 ; iadd ; istore y ;
+    iload x ; iconst 9 ; iload y ; imul ; iadd ; istore x ;
+</PRE>
+<P></P>
+<P>
+4. If you made the exercise of adding floating point numbers to
+the language, you can now cash out the main advantage of type checking
+for code generation: selecting type-correct JVM instructions. The floating
+point instructions are precisely the same as the integer one, except that
+the prefix is <CODE>f</CODE> instead of <CODE>i</CODE>, and that <CODE>fconst</CODE> takes floating
+point literals as arguments.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc144"></A>
+<H1>Lesson 7: Embedded grammars</H1>
+<P>
+<a name="chapeight"></a>
+</P>
+<P>
+Goals:
+</P>
+<UL>
+<LI>use grammars as parts of programs written in Haskell and JavaScript
+<LI>implement stand-alone question-answering systems and translators based on
+  GF grammars
+<LI>generate language models for speech recognition from GF grammars
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc145"></A>
+<H2>Functionalities of an embedded grammar format</H2>
+<P>
+GF grammars can be used as parts of programs written in other programming
+languages, to be called <B>host languages</B>.
+This facility is based on several components:
+</P>
+<UL>
+<LI>PGF: a portable format for multilingual GF grammars
+<LI>a PGF interpreter written in the host language
+<LI>a library in the host language that enables calling the interpreter
+<LI>a way to manipulate abstract syntax trees in the host language
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc146"></A>
+<H2>The portable grammar format</H2>
+<P>
+The portable format is called PGF, "Portable Grammar Format".
+</P>
+<P>
+This format is produced by using GF as batch compiler, with the option <CODE>-make</CODE>, 
+from the operative system shell:
+</P>
+<PRE>
+    % gf -make SOURCE.gf
+</PRE>
+<P>
+PGF is the recommended format in 
+which final grammar products are distributed, because they
+are stripped from superfluous information and can be started and applied
+faster than sets of separate modules.
+</P>
+<P>
+Application programmers have never any need to read or modify PGF files. 
+</P>
+<P>
+PGF thus plays the same role as machine code in 
+general-purpose programming (or bytecode in Java).
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc147"></A>
+<H3>Haskell: the EmbedAPI module</H3>
+<P>
+The Haskell API contains (among other things) the following types and functions:
+</P>
+<PRE>
+    readPGF   :: FilePath -&gt; IO PGF
+  
+    linearize :: PGF -&gt; Language -&gt; Tree -&gt; String
+    parse     :: PGF -&gt; Language -&gt; Category -&gt; String -&gt; [Tree]
+  
+    linearizeAll     :: PGF -&gt; Tree -&gt; [String]
+    linearizeAllLang :: PGF -&gt; Tree -&gt; [(Language,String)]
+  
+    parseAll     :: PGF -&gt; Category -&gt; String -&gt; [[Tree]]
+    parseAllLang :: PGF -&gt; Category -&gt; String -&gt; [(Language,[Tree])]
+  
+    languages    :: PGF -&gt; [Language]
+    categories   :: PGF -&gt; [Category]
+    startCat     :: PGF -&gt; Category
+</PRE>
+<P>
+This is the only module that needs to be imported in the Haskell application.
+It is available as a part of the GF distribution, in the file
+<CODE>src/PGF.hs</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc148"></A>
+<H3>First application: a translator</H3>
+<P>
+Let us first build a stand-alone translator, which can translate
+in any multilingual grammar between any languages in the grammar.
+</P>
+<PRE>
+  module Main where
+  
+  import PGF
+  import System (getArgs)
+  
+  main :: IO () 
+  main = do
+    file:_ &lt;- getArgs
+    gr     &lt;- readPGF file
+    interact (translate gr)
+  
+  translate :: PGF -&gt; String -&gt; String
+  translate gr s = case parseAllLang gr (startCat gr) s of
+    (lg,t:_):_ -&gt; unlines [linearize gr l t | l &lt;- languages gr, l /= lg]
+    _ -&gt; "NO PARSE"
+</PRE>
+<P>
+To run the translator, first compile it by
+</P>
+<PRE>
+    % ghc -make -o trans Translator.hs 
+</PRE>
+<P>
+For this, you need the Haskell compiler <A HREF="http://www.haskell.org/ghc">GHC</A>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc149"></A>
+<H3>Producing PGF for the translator</H3>
+<P>
+Then produce a PGF file. For instance, the <CODE>Food</CODE> grammar set can be 
+compiled as follows:
+</P>
+<PRE>
+    % gf -make FoodEng.gf FoodIta.gf
+</PRE>
+<P>
+This produces the file <CODE>Food.pgf</CODE> (its name comes from the abstract syntax).
+</P>
+<P>
+The Haskell library function <CODE>interact</CODE> makes the <CODE>trans</CODE> program work
+like a Unix filter, which reads from standard input and writes to standard
+output. Therefore it can be a part of a pipe and read and write files.
+The simplest way to translate is to <CODE>echo</CODE> input to the program:
+</P>
+<PRE>
+    % echo "this wine is delicious" | ./trans Food.pgf
+    questo vino è delizioso
+</PRE>
+<P>
+The result is given in all languages except the input language.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc150"></A>
+<H3>A translator loop</H3>
+<P>
+To avoid starting the translator over and over again:
+change <CODE>interact</CODE> in the main function to <CODE>loop</CODE>, defined as
+follows:
+</P>
+<PRE>
+  loop :: (String -&gt; String) -&gt; IO ()
+  loop trans = do 
+    s &lt;- getLine
+    if s == "quit" then putStrLn "bye" else do  
+      putStrLn $ trans s
+      loop trans
+</PRE>
+<P>
+The loop keeps on translating line by line until the input line
+is <CODE>quit</CODE>.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc151"></A>
+<H3>A question-answer system</H3>
+<P>
+<a name="secmathprogram"></a>
+</P>
+<P>
+The next application is also a translator, but it adds a
+<B>transfer</B> component - a function that transforms syntax trees.
+</P>
+<P>
+The transfer function we use is one that computes a question into an answer.
+</P>
+<P>
+The program accepts simple questions about arithmetic and answers
+"yes" or "no" in the language in which the question was made:
+</P>
+<PRE>
+    Is 123 prime?
+    No.
+    77 est impair ?
+    Oui.
+</PRE>
+<P>
+We change the pure translator by giving
+the <CODE>translate</CODE> function the transfer as an extra argument:
+</P>
+<PRE>
+    translate :: (Tree -&gt; Tree) -&gt; PGF -&gt; String -&gt; String
+</PRE>
+<P>
+Ordinary translation as a special case where
+transfer is the identity function (<CODE>id</CODE> in Haskell).
+</P>
+<P>
+To reply in the <I>same</I> language as the question:
+</P>
+<PRE>
+    translate tr gr = case parseAllLang gr (startCat gr) s of
+      (lg,t:_):_ -&gt; linearize gr lg (tr t)
+      _ -&gt; "NO PARSE"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc152"></A>
+<H3>Abstract syntax of the query system</H3>
+<P>
+Input: abstract syntax judgements
+</P>
+<PRE>
+  abstract Query = {
+  
+    flags startcat=Question ;
+  
+    cat 
+      Answer ; Question ; Object ;
+  
+    fun 
+      Even   : Object -&gt; Question ;
+      Odd    : Object -&gt; Question ;
+      Prime  : Object -&gt; Question ;
+      Number : Int -&gt; Object ;
+  
+      Yes : Answer ;
+      No  : Answer ;
+  }
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc153"></A>
+<H3>Exporting GF datatypes to Haskell</H3>
+<P>
+To make it easy to define a transfer function, we export the
+abstract syntax to a system of Haskell datatypes:
+</P>
+<PRE>
+    % gf --output-format=haskell Query.pgf
+</PRE>
+<P>
+It is also possible to produce the Haskell file together with PGF, by
+</P>
+<PRE>
+    % gf -make --output-format=haskell QueryEng.gf
+</PRE>
+<P>
+The result is a file named <CODE>Query.hs</CODE>, containing a 
+module named <CODE>Query</CODE>. 
+</P>
+<P>
+<!-- NEW -->
+</P>
+<P>
+Output: Haskell definitions
+</P>
+<PRE>
+  module Query where
+  import PGF
+  
+  data GAnswer =
+     GYes 
+   | GNo 
+  
+  data GObject = GNumber GInt 
+  
+  data GQuestion =
+     GPrime GObject 
+   | GOdd GObject 
+   | GEven GObject 
+  
+  newtype GInt = GInt Integer
+</PRE>
+<P>
+All type and constructor names are prefixed with a <CODE>G</CODE> to prevent clashes.
+</P>
+<P>
+The Haskell module name is the same as the abstract syntax name.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc154"></A>
+<H3>The question-answer function</H3>
+<P>
+Haskell's type checker guarantees that the functions are well-typed also with
+respect to GF. 
+</P>
+<PRE>
+  answer :: GQuestion -&gt; GAnswer
+  answer p = case p of
+    GOdd x   -&gt; test odd x
+    GEven x  -&gt; test even x
+    GPrime x -&gt; test prime x
+  
+  value :: GObject -&gt; Int
+  value e = case e of
+    GNumber (GInt i) -&gt; fromInteger i
+  
+  test :: (Int -&gt; Bool) -&gt; GObject -&gt; GAnswer
+  test f x = if f (value x) then GYes else GNo
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc155"></A>
+<H3>Converting between Haskell and GF trees</H3>
+<P>
+The generated Haskell module also contains
+</P>
+<PRE>
+  class Gf a where 
+    gf :: a -&gt; Tree
+    fg :: Tree -&gt; a
+  
+  instance Gf GQuestion where
+    gf (GEven x1) = DTr [] (AC (CId "Even")) [gf x1]
+    gf (GOdd x1) = DTr [] (AC (CId "Odd")) [gf x1]
+    gf (GPrime x1) = DTr [] (AC (CId "Prime")) [gf x1]
+    fg t =
+      case t of
+        DTr [] (AC (CId "Even")) [x1] -&gt; GEven (fg x1)
+        DTr [] (AC (CId "Odd")) [x1] -&gt; GOdd (fg x1)
+        DTr [] (AC (CId "Prime")) [x1] -&gt; GPrime (fg x1)
+        _ -&gt; error ("no Question " ++ show t)
+</PRE>
+<P>
+For the programmer, it is enougo to know:
+</P>
+<UL>
+<LI>all GF names are in Haskell prefixed with <CODE>G</CODE>
+<LI><CODE>gf</CODE> translates from Haskell objects to GF trees
+<LI><CODE>fg</CODE> translates from GF trees to Haskell objects
+</UL>
+
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc156"></A>
+<H3>Putting it all together: the transfer definition</H3>
+<PRE>
+  module TransferDef where
+  
+  import PGF (Tree)
+  import Query   -- generated from GF
+  
+  transfer :: Tree -&gt; Tree
+  transfer = gf . answer . fg
+  
+  answer :: GQuestion -&gt; GAnswer
+  answer p = case p of
+    GOdd x   -&gt; test odd x
+    GEven x  -&gt; test even x
+    GPrime x -&gt; test prime x
+  
+  value :: GObject -&gt; Int
+  value e = case e of
+    GNumber (GInt i) -&gt; fromInteger i
+  
+  test :: (Int -&gt; Bool) -&gt; GObject -&gt; GAnswer
+  test f x = if f (value x) then GYes else GNo
+  
+  prime :: Int -&gt; Bool
+  prime x = elem x primes where
+    primes = sieve [2 .. x]
+    sieve (p:xs) = p : sieve [ n | n &lt;- xs, n `mod` p &gt; 0 ]
+    sieve [] = []
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc157"></A>
+<H3>Putting it all together: the Main module</H3>
+<P>
+Here is the complete code in the Haskell file <CODE>TransferLoop.hs</CODE>.
+</P>
+<PRE>
+  module Main where
+  
+  import PGF
+  import TransferDef (transfer)
+  
+  main :: IO () 
+  main = do
+    gr &lt;- readPGF "Query.pgf"
+    loop (translate transfer gr)
+  
+  loop :: (String -&gt; String) -&gt; IO ()
+  loop trans = do 
+    s &lt;- getLine
+    if s == "quit" then putStrLn "bye" else do  
+      putStrLn $ trans s
+      loop trans
+  
+  translate :: (Tree -&gt; Tree) -&gt; PGF -&gt; String -&gt; String
+  translate tr gr s = case parseAllLang gr (startCat gr) s of
+    (lg,t:_):_ -&gt; linearize gr lg (tr t)
+    _ -&gt; "NO PARSE"
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc158"></A>
+<H3>Putting it all together: the Makefile</H3>
+<P>
+To automate the production of the system, we write a <CODE>Makefile</CODE> as follows:
+</P>
+<PRE>
+  all:
+          gf -make --output-format=haskell QueryEng
+          ghc --make -o ./math TransferLoop.hs
+          strip math
+</PRE>
+<P>
+(The empty segments starting the command lines in a Makefile must be tabs.)
+Now we can compile the whole system by just typing 
+</P>
+<PRE>
+    make
+</PRE>
+<P>
+Then you can run it by typing
+</P>
+<PRE>
+    ./math
+</PRE>
+<P>
+Just to summarize, the source of the application consists of the following files:
+</P>
+<PRE>
+    Makefile         -- a makefile
+    Math.gf          -- abstract syntax
+    Math???.gf       -- concrete syntaxes
+    TransferDef.hs   -- definition of question-to-answer function
+    TransferLoop.hs  -- Haskell Main module
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc159"></A>
+<H2>Web server applications</H2>
+<P>
+PGF files can be used in web servers, for which there is a Haskell library included
+in <CODE>src/server/</CODE>. How to build a server for tasks like translators is explained 
+in the <A HREF="../src/server/README"><CODE>README</CODE></A> file in that directory. 
+</P>
+<P>
+One of the servers that can be readily built with the library (without any
+programming required) is <B>fridge poetry magnets</B>. It is an application that
+uses an incremental parser to suggest grammatically correct next words. Here
+is an example of its application to the <CODE>Foods</CODE> grammars.
+</P>
+<P>
+<IMG ALIGN="middle" SRC="food-magnet.png" BORDER="0" ALT="">
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc160"></A>
+<H2>JavaScript applications</H2>
+<P>
+JavaScript is a programming language that has interpreters built in in most
+web browsers. It is therefore usable for client side web programs, which can even
+be run without access to the internet. The following figure shows a JavaScript
+program compiled from GF grammars as run on an iPhone.
+</P>
+<P>
+<IMG ALIGN="middle" SRC="iphone.jpg" BORDER="0" ALT="">
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc161"></A>
+<H3>Compiling to JavaScript</H3>
+<P>
+JavaScript is one of the output formats of the GF batch compiler. Thus the following
+command generates a JavaScript file from two <CODE>Food</CODE> grammars.
+</P>
+<PRE>
+    % gf -make --output-format=js FoodEng.gf FoodIta.gf
+</PRE>
+<P>
+The name of the generated file is <CODE>Food.js</CODE>, derived from the top-most abstract
+syntax name. This file contains the multilingual grammar as a JavaScript object.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc162"></A>
+<H3>Using the JavaScript grammar</H3>
+<P>
+To perform parsing and linearization, the run-time library
+<CODE>gflib.js</CODE> is used. It is included in <CODE>GF/lib/javascript/</CODE>, together with
+some other JavaScript and HTML files; these files can be used 
+as templates for building applications.
+</P>
+<P>
+An example of usage is 
+<A HREF="http://grammaticalframework.org:41296"><CODE>translator.html</CODE></A>, 
+which is in fact initialized with
+a pointer to the Food grammar, so that it provides translation between the English
+and Italian grammars:
+</P>
+<P>
+<IMG ALIGN="middle" SRC="food-js.png" BORDER="0" ALT="">
+</P>
+<P>
+The grammar must have the name <CODE>grammar.js</CODE>. The abstract syntax and start 
+category names in <CODE>translator.html</CODE> must match the ones in the grammar.
+With these changes, the translator works for any multilingual grammar.
+</P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc163"></A>
+<H2>Language models for speech recognition</H2>
+<P>
+The standard way of using GF in speech recognition is by building
+<B>grammar-based language models</B>. 
+</P>
+<P>
+GF supports several formats, including
+GSL, the formatused in the <A HREF="http://www.nuance.com">Nuance speech recognizer</A>.
+</P>
+<P>
+GSL is produced from GF by running <CODE>gf</CODE> with the flag
+<CODE>--output-format=gsl</CODE>. 
+</P>
+<P>
+Example: GSL  generated from <CODE>FoodsEng.gf</CODE>.
+</P>
+<PRE>
+    % gf -make --output-format=gsl FoodsEng.gf
+    % more FoodsEng.gsl
+  
+    ;GSL2.0
+    ; Nuance speech recognition grammar for FoodsEng
+    ; Generated by GF
+  
+    .MAIN Phrase_cat
+  
+    Item_1 [("that" Kind_1) ("this" Kind_1)]
+    Item_2 [("these" Kind_2) ("those" Kind_2)]
+    Item_cat [Item_1 Item_2]
+    Kind_1 ["cheese" "fish" "pizza" (Quality_1 Kind_1)
+            "wine"]
+    Kind_2 ["cheeses" "fish" "pizzas"
+            (Quality_1 Kind_2) "wines"]
+    Kind_cat [Kind_1 Kind_2]
+    Phrase_1 [(Item_1 "is" Quality_1)
+              (Item_2 "are" Quality_1)]
+    Phrase_cat Phrase_1
+    
+    Quality_1 ["boring" "delicious" "expensive"
+               "fresh" "italian" ("very" Quality_1) "warm"]
+    Quality_cat Quality_1
+</PRE>
+<P></P>
+<P>
+<!-- NEW -->
+</P>
+<A NAME="toc164"></A>
+<H3>More speech recognition grammar formats</H3>
+<P>
+Other formats available via the <CODE>--output-format</CODE> flag include:
+</P>
+<TABLE ALIGN="center" CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Format</TH>
+<TH COLSPAN="2">Description</TH>
+</TR>
+<TR>
+<TD><CODE>gsl</CODE></TD>
+<TD>Nuance GSL speech recognition grammar</TD>
+</TR>
+<TR>
+<TD><CODE>jsgf</CODE></TD>
+<TD>Java Speech Grammar Format (JSGF)</TD>
+</TR>
+<TR>
+<TD><CODE>jsgf_sisr_old</CODE></TD>
+<TD>JSGF with semantic tags in SISR  WD 20030401 format</TD>
+</TR>
+<TR>
+<TD><CODE>srgs_abnf</CODE></TD>
+<TD>SRGS ABNF format</TD>
+</TR>
+<TR>
+<TD><CODE>srgs_xml</CODE></TD>
+<TD>SRGS XML format</TD>
+</TR>
+<TR>
+<TD><CODE>srgs_xml_prob</CODE></TD>
+<TD>SRGS XML format, with weights</TD>
+</TR>
+<TR>
+<TD><CODE>slf</CODE></TD>
+<TD>finite automaton in the HTK SLF format</TD>
+</TR>
+<TR>
+<TD><CODE>slf_sub</CODE></TD>
+<TD>finite automaton with sub-automata in HTK SLF</TD>
+</TR>
+</TABLE>
+
+<P>
+All currently available formats can be seen with <CODE>gf --help</CODE>.
+</P>
+
+<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -\-toc gf-tutorial.t2t -->
+</BODY></HTML>
diff --git a/doc/tutorial/gf-tutorial.t2t b/doc/tutorial/gf-tutorial.t2t
new file mode 100644
--- /dev/null
+++ b/doc/tutorial/gf-tutorial.t2t
@@ -0,0 +1,5040 @@
+Grammatical Framework Tutorial
+Aarne Ranta
+December 2010 for GF 3.2 
+
+
+% NOTE: this is a txt2tags file.
+% Create a tex file from this file using:
+% txt2tags --toc -ttex gf-tutorial.txt
+
+%!target:html
+%!encoding: iso-8859-1
+
+%!postproc(tex) : "\\subsection\*" "\\newslide"
+%!preproc(tex): "#NEW" ""
+%!postproc(html): #NEW <!-- NEW -->
+
+
+
+%!postproc(html): #OVERVIEW <h2>Overview</h2>
+
+%%!postproc(tex): "section\*" "section"
+
+%!postproc(tex): "\\documentclass{article}" ""
+
+%!postproc(tex): "subsection\*" "section"
+%!postproc(tex): "section\*" "chapter"
+
+%!postproc(tex): "textbf{Exercise}" "exercise"
+%!postproc(tex): "textbf" "keywrd"
+
+%!postproc(html): #BCEN <center>
+%!postproc(html): #ECEN </center>
+
+%!postproc(tex): #BCEN "begin{center}"
+%!postproc(tex): #ECEN "end{center}"
+
+%!postproc(tex): #BEQU "bequ"
+%!postproc(tex): #ENQU "enqu"
+%!postproc(html): #BEQU "<center>"
+%!postproc(html): #ENQU "</center>"
+
+%!preproc(html): #EDITORPNG [quick-editor.png]
+%!preproc(tex):  #EDITORPNG [10lang-small.png]
+
+%!preproc(html): #LOGOPNG [Logos/gf0.png]
+%!preproc(tex):  #LOGOPNG [Logos/gf0.png]
+
+
+%!postproc(tex): #PARTone "part{Tutorial}"
+%!postproc(tex): #PARTtwo "part{Applications of Grammars}"
+%!postproc(tex): #PARTfour "part{Advanced Grammar Writing}"
+%!postproc(tex): #PARTthree "part{Reference Manual}"
+
+%%!postproc(tex): #PARTbnf "include{DocGF}"
+%!postproc(tex): #PARTquickref "chapter{Quick Reference}"
+%!postproc(tex): #twocolumn ""%twocolumn"
+%!postproc(tex): #newpage "newpage"
+%!postproc(tex): #smallsize "small"
+%!postproc(tex): #normalsize "normalsize"
+%!postproc(tex): #startappendix "appendix"
+
+
+%!postproc(tex): #indexYACC "index{YACC}"
+
+%!postproc(tex): #MYTREE "input{mytree}"
+%!preproc(html): #MYTREE [mytree.png]
+%!preproc(html): #MYPARSE [myparse.png]
+%!postproc(tex): #FOODMARKET "input{foodmarket}"
+%!preproc(html): #FOODMARKET [foodmarket.png]
+%!postproc(tex): #CATEGORIES "input{categories}"
+%!preproc(html): #CATEGORIES [categories.png]
+
+%!postproc(tex): #Syntaxpic "input{Syntax}"
+%!postproc(tex): #Germanpic "input{German}"
+
+%!postproc(tex): #REFERENCES "input{references}"
+
+%!postproc(tex): #FORMULAone "input{FORMULAone}"
+
+%!postproc(tex): #SETLENGTHS "input{SETLENGTHS}"
+
+%!postproc(tex): #PRINTINDEX "printindex"
+
+%!postproc(tex): #Lchaptwo "label{chaptwo}"
+%!postproc(tex): #Rchaptwo "chref{chaptwo}"
+%!postproc(html): #Lchaptwo <a name="chaptwo"></a>
+%!postproc(html): #Rchaptwo <a href="#chaptwo">Lesson 1</a>
+
+%!postproc(tex): #Lchapthree "label{chapthree}"
+%!postproc(tex): #Rchapthree "chref{chapthree}"
+%!postproc(html): #Lchapthree <a name="chapthree"></a>
+%!postproc(html): #Rchapthree <a href="#chapthree">Lesson 2</a>
+
+%!postproc(tex): #Lchapfour "label{chapfour}"
+%!postproc(tex): #Rchapfour "chref{chapfour}"
+%!postproc(html): #Lchapfour <a name="chapfour"></a>
+%!postproc(html): #Rchapfour <a href="#chaptwo">Lesson 3</a>
+
+%!postproc(tex): #Lchapfive "label{chapfive}"
+%!postproc(tex): #Rchapfive "chref{chapfive}"
+%!postproc(html): #Lchapfive <a name="chapfive"></a>
+%!postproc(html): #Rchapfive <a href="#chapfive">Lesson 4</a>
+
+%!postproc(tex): #Lchapsix "label{chapsix}"
+%!postproc(tex): #Rchapsix "chref{chapsix}"
+%!postproc(html): #Lchapsix <a name="chapsix"></a>
+%!postproc(html): #Rchapsix <a href="#chapsix">Lesson 5</a>
+
+%!postproc(tex): #Lchapseven "label{chapseven}"
+%!postproc(tex): #Rchapseven "chref{chapseven}"
+%!postproc(html): #Lchapseven <a name="chapseven"></a>
+%!postproc(html): #Rchapseven <a href="#chapseven">Lesson 6</a>
+
+%!postproc(tex): #Lchapeight "label{chapeight}"
+%!postproc(tex): #Rchapeight "chref{chapeight}"
+%!postproc(html): #Lchapeight <a name="chapeight"></a>
+%!postproc(html): #Rchapeight <a href="#chapeight">Lesson 7</a>
+
+
+%2.7.2
+%!postproc(tex): #Lsecjment "label{secjment}"
+%!postproc(tex): #Rsecjment "sref{secjment}"
+%!postproc(html): #Lsecjment <a name="secjment"></a>
+%!postproc(html): #Rsecjment <a href="#secjment">here</a>
+
+%3.4
+%!postproc(tex): #Lsecanitalian "label{secanitalian}"
+%!postproc(tex): #Rsecanitalian "sref{secanitalian}"
+%!postproc(html): #Lsecanitalian <a name="secanitalian"></a>
+%!postproc(html): #Rsecanitalian <a href="#secanitalian">here</a>
+
+%3.6.1
+%!postproc(tex): #Lsectreebank "label{sectreebank}"
+%!postproc(tex): #Rsectreebank "sref{sectreebank}"
+%!postproc(html): #Lsectreebank <a name="sectreebank"></a>
+%!postproc(html): #Rsectreebank <a href="#sectreebank">here</a>
+
+
+%3.6.4
+%!postproc(tex): #Lsecediting "label{secediting}"
+%!postproc(tex): #Rsecediting "sref{secediting}"
+%!postproc(html): #Lsecediting <a name="secediting"></a>
+%!postproc(html): #Rsecediting <a href="#secediting">here</a>
+
+
+%3.9.5
+%!postproc(tex): #Lsecpartapp "label{secpartapp}"
+%!postproc(tex): #Rsecpartapp "sref{secpartapp}"
+%!postproc(html): #Lsecpartapp <a name="secpartapp"></a>
+%!postproc(html): #Rsecpartapp <a href="#secpartapp">here</a>
+
+%3.10
+%!postproc(tex): #Lsecarchitecture "label{secarchitecture}"
+%!postproc(tex): #Rsecarchitecture "sref{secarchitecture}"
+%!postproc(html): #Lsecarchitecture <a name="secarchitecture"></a>
+%!postproc(html): #Rsecarchitecture <a href="#secarchitecture">here</a>
+
+%4.6
+%!postproc(tex): #Lsecinflection "label{secinflection}"
+%!postproc(tex): #Rsecinflection "sref{secinflection}"
+%!postproc(html): #Lsecinflection <a name="secinflection"></a>
+%!postproc(html): #Rsecinflection <a href="#secinflection">here</a>
+
+%4.7
+%!postproc(tex): #Lsecitalian "label{secitalian}"
+%!postproc(tex): #Rsecitalian "sref{secitalian}"
+%!postproc(html): #Lsecitalian <a name="secitalian"></a>
+%!postproc(html): #Rsecitalian <a href="#secitalian">here</a>
+
+%4.10.2
+%!postproc(tex): #Lsecmatching "label{secmatching}"
+%!postproc(tex): #Rsecmatching "sref{secmatching}"
+%!postproc(html): #Lsecmatching <a name="secmatching"></a>
+%!postproc(html): #Rsecmatching <a href="#secmatching">here</a>
+
+%5.2
+%!postproc(tex): #Lseclexical "label{seclexical}"
+%!postproc(tex): #Rseclexical "sref{seclexical}"
+%!postproc(html): #Lseclexical <a name="seclexical"></a>
+%!postproc(html): #Rseclexical <a href="#seclexical">here</a>
+
+%5.4
+%!postproc(tex): #Lsecenglish "label{secenglish}"
+%!postproc(tex): #Rsecenglish "sref{secenglish}"
+%!postproc(html): #Lsecenglish <a name="secenglish"></a>
+%!postproc(html): #Rsecenglish <a href="#secenglish">here</a>
+
+%5.5
+%!postproc(tex): #Lsecfunctor "label{secfunctor}"
+%!postproc(tex): #Rsecfunctor "sref{secfunctor}"
+%!postproc(html): #Lsecfunctor <a name="secfunctor"></a>
+%!postproc(html): #Rsecfunctor <a href="#secfunctor">here</a>
+
+%5.6
+%!postproc(tex): #Lsecinterface "label{secinterface}"
+%!postproc(tex): #Rsecinterface "sref{secinterface}"
+%!postproc(html): #Lsecinterface <a name="secinterface"></a>
+%!postproc(html): #Rsecinterface <a href="#secinterface">here</a>
+
+%5.11
+%!postproc(tex): #Lsecbrowsing "label{secbrowsing}"
+%!postproc(tex): #Rsecbrowsing "sref{secbrowsing}"
+%!postproc(html): #Lsecbrowsing <a name="secbrowsing"></a>
+%!postproc(html): #Rsecbrowsing <a href="#secbrowsing">here</a>
+
+%5.12
+%!postproc(tex): #Lsecextended "label{secextended}"
+%!postproc(tex): #Rsecextended "sref{secextended}"
+%!postproc(html): #Lsecextended <a name="secextended"></a>
+%!postproc(html): #Rsecextended <a href="#secextended">here</a>
+
+%5.13
+%!postproc(tex): #Lsectense "label{sectense}"
+%!postproc(tex): #Rsectense "sref{sectense}"
+%!postproc(html): #Lsectense <a name="sectense"></a>
+%!postproc(html): #Rsectense <a href="#sectense">here</a>
+
+%5.14.2
+%!postproc(tex): #Lseclock "label{seclock}"
+%!postproc(tex): #Rseclock "sref{seclock}"
+%!postproc(html): #Lseclock <a name="seclock"></a>
+%!postproc(html): #Rseclock <a href="#seclock">here</a>
+
+%6.2
+%!postproc(tex): #Lsecsmarthouse "label{secsmarthouse}"
+%!postproc(tex): #Rsecsmarthouse "sref{secsmarthouse}"
+%!postproc(html): #Lsecsmarthouse <a name="secsmarthouse"></a>
+%!postproc(html): #Rsecsmarthouse <a href="#secsmarthouse">here</a>
+
+%6.3
+%!postproc(tex): #Lsecpolymorphic "label{secpolymorphic}"
+%!postproc(tex): #Rsecpolymorphic "sref{secpolymorphic}"
+%!postproc(html): #Lsecpolymorphic <a name="secpolymorphic"></a>
+%!postproc(html): #Rsecpolymorphic <a href="#secpolymorphic">here</a>
+
+%6.7
+%!postproc(tex): #Lsecbinding "label{secbinding}"
+%!postproc(tex): #Rsecbinding "sref{secbinding}"
+%!postproc(html): #Lsecbinding <a name="secbinding"></a>
+%!postproc(html): #Rsecbinding <a href="#secbinding">here</a>
+
+
+%6.8
+%!postproc(tex): #Lsecdefdef "label{secdefdef}"
+%!postproc(tex): #Rsecdefdef "sref{secdefdef}"
+%!postproc(html): #Lsecdefdef <a name="secdefdef"></a>
+%!postproc(html): #Rsecdefdef <a href="#secdefdef">here</a>
+
+%7.2
+%!postproc(tex): #Lseclexing "label{seclexing}"
+%!postproc(tex): #Rseclexing "sref{seclexing}"
+%!postproc(html): #Lseclexing <a name="seclexing"></a>
+%!postproc(html): #Rseclexing <a href="#seclexing">here</a>
+
+%7.3
+%!postproc(tex): #Lsecprecedence "label{secprecedence}"
+%!postproc(tex): #Rsecprecedence "sref{secprecedence}"
+%!postproc(html): #Lsecprecedence <a name="secprecedence"></a>
+%!postproc(html): #Rsecprecedence <a href="#secprecedence">here</a>
+
+%8.3.4
+%!postproc(tex): #Lsecmathprogram "label{secmathprogram}"
+%!postproc(tex): #Rsecmathprogram "sref{secmathprogram}"
+%!postproc(html): #Lsecmathprogram <a name="secmathprogram"></a>
+%!postproc(html): #Rsecmathprogram <a href="#secmathprogram">here</a>
+
+
+
+
+
+
+%!postproc(tex): #APPENDIX "appendix"
+%!postproc(tex): #CHAPTER "chapter{The GF Programming Language}"
+%!postproc(tex): #TOC "tableofcontents"
+
+%!postproc(tex): #BECE "begin{center}"
+%!postproc(tex): #ENCE "end{center}"
+%!postproc(tex): "subsection\*" "section"
+%!postproc(tex): "section\*" "chapter"
+%%!postproc(tex): "paragraph\{\}\\bf" "subsubsection"
+
+%!postproc(tex): #PARTbnf "input{RefDocGF.tex}"
+%!preproc(html): #PARTbnf %!include: RefDocGF.txt
+
+%!postproc(tex): "textbf" "keywrd"
+%!postproc(tex): #PRINTINDEX "printindex"
+%!preproc(html): #PRINTINDEX "" 
+
+%!postproc(tex): #sugar "sugar"
+%!postproc(tex): #comput "computes"
+
+%!postproc(tex): #Aone "subscr{A}{1}"
+%!postproc(tex): #Aen "subscr{A}{n}"
+%!postproc(tex): #Aii "subscr{A}{i}"
+%!postproc(tex): #aone "subscr{a}{1}"
+%!postproc(tex): #anone "subscr{a}{n-1}"
+%!postproc(tex): #aen "subscr{a}{n}"
+%!postproc(tex): #Bone "subscr{B}{1}"
+%!postproc(tex): #Bem "subscr{B}{m}"
+%!postproc(tex): #Ben "subscr{B}{n}"
+%!postproc(tex): #Cone "subscr{C}{1}"
+%!postproc(tex): #Cen "subscr{C}{n}"
+%!postproc(tex): #Cii "subscr{C}{i}"
+%!postproc(tex): #fone "subscr{f}{1}"
+%!postproc(tex): #fen "subscr{f}{n}"
+%!postproc(tex): #Gone "subscr{G}{1}"
+%!postproc(tex): #Gen "subscr{G}{n}"
+%!postproc(tex): #pone "subscr{p}{1}"
+%!postproc(tex): #pem "subscr{p}{m}"
+%!postproc(tex): #pen "subscr{p}{n}"
+%!postproc(tex): #pii "subscr{p}{i}"
+%!postproc(tex): #rii "subscr{r}{i}"
+%!postproc(tex): #rone "subscr{r}{1}"
+%!postproc(tex): #ren "subscr{r}{n}"
+%!postproc(tex): #sii "subscr{s}{i}"
+%!postproc(tex): #sone "subscr{s}{1}"
+%!postproc(tex): #sen "subscr{s}{n}"
+%!postproc(tex): #Tone "subscr{T}{1}"
+%!postproc(tex): #Ten "subscr{T}{n}"
+%!postproc(tex): #tone "subscr{t}{1}"
+%!postproc(tex): #tem "subscr{t}{m}"
+%!postproc(tex): #ten "subscr{t}{n}"
+%!postproc(tex): #tii "subscr{t}{i}"
+%!postproc(tex): #Vone "subscr{V}{1}"
+%!postproc(tex): #Ven "subscr{V}{n}"
+%!postproc(tex): #Vii "subscr{V}{i}"
+%!postproc(tex): #xnone "subscr{x}{n-1}"
+%!postproc(tex): #xone "subscr{x}{1}"
+%!postproc(tex): #xen "subscr{x}{n}"
+%!postproc(tex): #xii "subscr{x}{i}"
+%!postproc(tex): #yone "subscr{y}{1}"
+%!postproc(tex): #yem "subscr{y}{m}"
+%!postproc(tex): #zone "subscr{z}{1}"
+%!postproc(tex): #zem "subscr{z}{m}"
+
+%%% undo the effect for these links in the synopsis
+%!postproc(tex): "subscr\{G\}\{n\}der" "#Gender"
+%!postproc(tex): "subscr\{T\}\{n\}se" "#Tense"
+
+
+%%!target:html
+%!postproc(html): #APPENDIX ""
+%!postproc(html): #CHAPTER ""
+%!postproc(html): #TOC ""
+
+%!postproc(html): #BECE "<center>"
+%!postproc(html): #ENCE "</center>"
+%%!postproc(html): "subsection\*" "section"
+%%!postproc(html): "section\*" "chapter"
+%%!preproc(html): #PARTbnf "[BNF Grammar of GF RefDocGF.html]"
+
+%!postproc(html): #sugar "==="
+%!postproc(html): #comput "==>"
+
+%!postproc(html): #Aone "<i>A</i><sub>1</sub>"
+%!postproc(html): #Aen "<i>A</i><sub>n</sub>"
+%!postproc(html): #Aii "<i>A</i><sub>i</sub>"
+%!postproc(html): #aone "<i>a</i><sub>1</sub>"
+%!postproc(html): #anone "<i>a</i><sub>n-1</sub>"
+%!postproc(html): #aen "<i>a</i><sub>n</sub>"
+%!postproc(html): #Bone "<i>B</i><sub>1</sub>"
+%!postproc(html): #Bem "<i>B</i><sub>m</sub>"
+%!postproc(html): #Ben "<i>B</i><sub>n</sub>"
+%!postproc(html): #Cone "<i>C</i><sub>1</sub>"
+%!postproc(html): #Cen "<i>C</i><sub>n</sub>"
+%!postproc(html): #Cii "<i>C</i><sub>i</sub>"
+%!postproc(html): #fone "<i>f</i><sub>1</sub>"
+%!postproc(html): #fen "<i>f</i><sub>n</sub>"
+%!postproc(html): #Gone "<i>G</i><sub>1</sub>"
+%!postproc(html): #Gen "<i>G</i><sub>n</sub>"
+%!postproc(html): #pone "<i>p</i><sub>1</sub>"
+%!postproc(html): #pem "<i>p</i><sub>m</sub>"
+%!postproc(html): #pen "<i>p</i><sub>n</sub>"
+%!postproc(html): #pii "<i>p</i><sub>i</sub>"
+%!postproc(html): #rii "<i>r</i><sub>i</sub>"
+%!postproc(html): #rone "<i>r</i><sub>1</sub>"
+%!postproc(html): #ren "<i>r</i><sub>n</sub>"
+%!postproc(html): #sii "<i>s</i><sub>i</sub>"
+%!postproc(html): #sone "<i>s</i><sub>1</sub>"
+%!postproc(html): #sen "<i>s</i><sub>n</sub>"
+%!postproc(html): #Tone "<i>T</i><sub>1</sub>"
+%!postproc(html): #Ten "<i>T</i><sub>n</sub>"
+%!postproc(html): #tone "<i>t</i><sub>1</sub>"
+%!postproc(html): #tem "<i>t</i><sub>m</sub>"
+%!postproc(html): #ten "<i>t</i><sub>n</sub>"
+%!postproc(html): #tii "<i>t</i><sub>i</sub>"
+%!postproc(html): #Vone "<i>V</i><sub>1</sub>"
+%!postproc(html): #Ven "<i>V</i><sub>n</sub>"
+%!postproc(html): #Vii "<i>V</i><sub>i</sub>"
+%!postproc(html): #xnone "<i>x</i><sub>n-1</sub>"
+%!postproc(html): #xone "<i>x</i><sub>1</sub>"
+%!postproc(html): #xen "<i>x</i><sub>n</sub>"
+%!postproc(html): #xii "<i>x</i><sub>i</sub>"
+%!postproc(html): #yone "<i>y</i><sub>1</sub>"
+%!postproc(html): #yem "<i>y</i><sub>m</sub>"
+%!postproc(html): #zone "<i>z</i><sub>1</sub>"
+%!postproc(html): #zem "<i>z</i><sub>m</sub>"
+
+
+%!postproc(tex): #Lpatternmatching "label{patternmatching}"
+%!postproc(tex): #Rpatternmatching "sref{patternmatching}"
+%!postproc(html): #Lpatternmatching <a name="patternmatching"></a>
+%!postproc(html): #Rpatternmatching <a href="#patternmatching">here</a>
+
+%!postproc(tex): #Lcatjudgements "label{catjudgements}"
+%!postproc(tex): #Rcatjudgements "sref{catjudgements}"
+%!postproc(html): #Lcatjudgements <a name="catjudgements"></a>
+%!postproc(html): #Rcatjudgements <a href="#catjudgements">here</a>
+
+%!postproc(tex): #Lcnctypes "label{cnctypes}"
+%!postproc(tex): #Rcnctypes "sref{cnctypes}"
+%!postproc(html): #Lcnctypes <a name="cnctypes"></a>
+%!postproc(html): #Rcnctypes <a href="#cnctypes">here</a>
+
+%!postproc(tex): #Lcompleteness "label{completeness}"
+%!postproc(tex): #Rcompleteness "sref{completeness}"
+%!postproc(html): #Lcompleteness <a name="completeness"></a>
+%!postproc(html): #Rcompleteness <a href="#completeness">here</a>
+
+%!postproc(tex): #Lcontexts "label{contexts}"
+%!postproc(tex): #Rcontexts "sref{contexts}"
+%!postproc(html): #Lcontexts <a name="contexts"></a>
+%!postproc(html): #Rcontexts <a href="#contexts">here</a>
+
+%!postproc(tex): #Lconversions "label{conversions}"
+%!postproc(tex): #Rconversions "sref{conversions}"
+%!postproc(html): #Lconversions <a name="conversions"></a>
+%!postproc(html): #Rconversions <a href="#conversions">here</a>
+
+%!postproc(tex): #Lexpressions "label{expressions}"
+%!postproc(tex): #Rexpressions "sref{expressions}"
+%!postproc(html): #Lexpressions <a name="expressions"></a>
+%!postproc(html): #Rexpressions <a href="#expressions">here</a>
+
+%!postproc(tex): #Lflagvalues "label{flagvalues}"
+%!postproc(tex): #Rflagvalues "sref{flagvalues}"
+%!postproc(html): #Lflagvalues <a name="flagvalues"></a>
+%!postproc(html): #Rflagvalues <a href="#flagvalues">here</a>
+
+%!postproc(tex): #Lfunctionelimination "label{functionelimination}"
+%!postproc(tex): #Rfunctionelimination "sref{functionelimination}"
+%!postproc(html): #Lfunctionelimination <a name="functionelimination"></a>
+%!postproc(html): #Rfunctionelimination <a href="#functionelimination">here</a>
+
+%!postproc(tex): #Lfunctiontype "label{functiontype}"
+%!postproc(tex): #Rfunctiontype "sref{functiontype}"
+%!postproc(html): #Lfunctiontype <a name="functiontype"></a>
+%!postproc(html): #Rfunctiontype <a href="#functiontype">here</a>
+
+%!postproc(tex): #Lgluing "label{gluing}"
+%!postproc(tex): #Rgluing "sref{gluing}"
+%!postproc(html): #Lgluing <a name="gluing"></a>
+%!postproc(html): #Rgluing <a href="#gluing">here</a>
+
+%!postproc(tex): #LHOAS "label{HOAS}"
+%!postproc(tex): #RHOAS "sref{HOAS}"
+%!postproc(html): #LHOAS <a name="HOAS"></a>
+%!postproc(html): #RHOAS <a href="#HOAS">here</a>
+
+%!postproc(tex): #Lidentifiers "label{identifiers}"
+%!postproc(tex): #Ridentifiers "sref{identifiers}"
+%!postproc(html): #Lidentifiers <a name="identifiers"></a>
+%!postproc(html): #Ridentifiers <a href="#identifiers">here</a>
+
+%!postproc(tex): #Ljudgementforms "label{judgementforms}"
+%!postproc(tex): #Rjudgementforms "sref{judgementforms}"
+%!postproc(html): #Ljudgementforms <a name="judgementforms"></a>
+%!postproc(html): #Rjudgementforms <a href="#judgementforms">here</a>
+
+%!postproc(tex): #Llindefjudgements "label{lindefjudgements}"
+%!postproc(tex): #Rlindefjudgements "sref{lindefjudgements}"
+%!postproc(html): #Llindefjudgements <a name="lindefjudgements"></a>
+%!postproc(html): #Rlindefjudgements <a href="#lindefjudgements">here</a>
+
+%!postproc(tex): #Llinexpansion "label{linexpansion}"
+%!postproc(tex): #Rlinexpansion "sref{linexpansion}"
+%!postproc(html): #Llinexpansion <a name="linexpansion"></a>
+%!postproc(html): #Rlinexpansion <a href="#linexpansion">here</a>
+
+%!postproc(tex): #Loldgf "label{oldgf}"
+%!postproc(tex): #Roldgf "sref{oldgf}"
+%!postproc(html): #Loldgf <a name="oldgf"></a>
+%!postproc(html): #Roldgf <a href="#oldgf">here</a>
+
+%!postproc(tex): #Lopenabstract "label{openabstract}"
+%!postproc(tex): #Ropenabstract "sref{openabstract}"
+%!postproc(html): #Lopenabstract <a name="openabstract"></a>
+%!postproc(html): #Ropenabstract <a href="#openabstract">here</a>
+
+%!postproc(tex): #Loverloading "label{overloading}"
+%!postproc(tex): #Roverloading "sref{overloading}"
+%!postproc(html): #Loverloading <a name="overloading"></a>
+%!postproc(html): #Roverloading <a href="#overloading">here</a>
+
+%!postproc(tex): #Lparamjudgements "label{paramjudgements}"
+%!postproc(tex): #Rparamjudgements "sref{paramjudgements}"
+%!postproc(html): #Lparamjudgements <a name="paramjudgements"></a>
+%!postproc(html): #Rparamjudgements <a href="#paramjudgements">here</a>
+
+%!postproc(tex): #Lparamtypes "label{paramtypes}"
+%!postproc(tex): #Rparamtypes "sref{paramtypes}"
+%!postproc(html): #Lparamtypes <a name="paramtypes"></a>
+%!postproc(html): #Rparamtypes <a href="#paramtypes">here</a>
+
+%!postproc(tex): #Lparamvalues "label{paramvalues}"
+%!postproc(tex): #Rparamvalues "sref{paramvalues}"
+%!postproc(html): #Lparamvalues <a name="paramvalues"></a>
+%!postproc(html): #Rparamvalues <a href="#paramvalues">here</a>
+
+%!postproc(tex): #Lpredefabs "label{predefabs}"
+%!postproc(tex): #Rpredefabs "sref{predefabs}"
+%!postproc(html): #Lpredefabs <a name="predefabs"></a>
+%!postproc(html): #Rpredefabs <a href="#predefabs">here</a>
+
+%!postproc(tex): #Lpredefcnc "label{predefcnc}"
+%!postproc(tex): #Rpredefcnc "sref{predefcnc}"
+%!postproc(html): #Lpredefcnc <a name="predefcnc"></a>
+%!postproc(html): #Rpredefcnc <a href="#predefcnc">here</a>
+
+%!postproc(tex): #Lqualifiednames "label{qualifiednames}"
+%!postproc(tex): #Rqualifiednames "sref{qualifiednames}"
+%!postproc(html): #Lqualifiednames <a name="qualifiednames"></a>
+%!postproc(html): #Rqualifiednames <a href="#qualifiednames">here</a>
+
+%!postproc(tex): #Lrenaming "label{renaming}"
+%!postproc(tex): #Rrenaming "sref{renaming}"
+%!postproc(html): #Lrenaming <a name="renaming"></a>
+%!postproc(html): #Rrenaming <a href="#renaming">here</a>
+
+%!postproc(tex): #Lrestrictedinheritance "label{restrictedinheritance}"
+%!postproc(tex): #Rrestrictedinheritance "sref{restrictedinheritance}"
+%!postproc(html): #Lrestrictedinheritance <a name="restrictedinheritance"></a>
+%!postproc(html): #Rrestrictedinheritance <a href="#restrictedinheritance">here</a>
+
+%!postproc(tex): #Lreuse "label{reuse}"
+%!postproc(tex): #Rreuse "sref{reuse}"
+%!postproc(html): #Lreuse <a name="reuse"></a>
+%!postproc(html): #Rreuse <a href="#reuse">here</a>
+
+%!postproc(tex): #Lruntimevariables "label{runtimevariables}"
+%!postproc(tex): #Rruntimevariables "sref{runtimevariables}"
+%!postproc(html): #Lruntimevariables <a name="runtimevariables"></a>
+%!postproc(html): #Rruntimevariables <a href="#runtimevariables">here</a>
+
+%!postproc(tex): #Lstrtype "label{strtype}"
+%!postproc(tex): #Rstrtype "sref{strtype}"
+%!postproc(html): #Lstrtype <a name="strtype"></a>
+%!postproc(html): #Rstrtype <a href="#strtype">here</a>
+
+%!postproc(tex): #Lsubtyping "label{subtyping}"
+%!postproc(tex): #Rsubtyping "sref{subtyping}"
+%!postproc(html): #Lsubtyping <a name="subtyping"></a>
+%!postproc(html): #Rsubtyping <a href="#subtyping">here</a>
+
+%!postproc(tex): #Lsyntaxtrees "label{syntaxtrees}"
+%!postproc(tex): #Rsyntaxtrees "sref{syntaxtrees}"
+%!postproc(html): #Lsyntaxtrees <a name="syntaxtrees"></a>
+%!postproc(html): #Rsyntaxtrees <a href="#syntaxtrees">here</a>
+
+%!postproc(tex): #Ltables "label{tables}"
+%!postproc(tex): #Rtables "sref{tables}"
+%!postproc(html): #Ltables <a name="tables"></a>
+%!postproc(html): #Rtables <a href="#tables">here</a>
+
+%!postproc(tex): #Lvariablebinding "label{variablebinding}"
+%!postproc(tex): #Rvariablebinding "sref{variablebinding}"
+%!postproc(html): #Lvariablebinding <a name="variablebinding"></a>
+%!postproc(html): #Rvariablebinding <a href="#variablebinding">here</a>
+
+%% last, to avoid overriding with subsection* -> section
+%!postproc(tex): #PREFACE "subsection*{Preface}"
+%!postproc(tex): #OVERVIEW "subsection*{Overview}"
+%!postproc(html): #OVERVIEW <h2>Overview</h2>
+
+
+
+
+#NEW
+
+=Overview=
+
+This is a hands-on introduction to grammar writing in GF.
+
+Main ingredients of GF:
+- linguistics
+- functional programming
+
+
+Prerequisites:
+- some previous experience from some programming language
+- the basics of using computers, e.g. the use of 
+  text editors and the management of files.
+- knowledge of Unix commands is useful but not necessary
+- knowledge of many natural languages may add fun to experience
+
+
+
+
+#NEW
+
+==Outline==
+
+#Rchaptwo: a multilingual "Hello World" grammar. English, Finnish, Italian.
+
+#Rchapthree: a larger grammar for the domain of food. English and Italian.
+
+#Rchapfour: parameters - morphology and agreement.
+
+#Rchapfive: using the resource grammar library.
+
+#Rchapsix: semantics -  **dependent types**, **variable bindings**, 
+and **semantic definitions**.
+
+#Rchapseven: implementing formal languages.
+
+#Rchapeight: embedded grammar applications.
+
+
+
+#NEW
+
+==Slides==
+
+You can chop this tutorial into a set of slides by the command
+```
+  htmls gf-tutorial.html
+```
+where the program ``htmls`` is distributed with GF (see below), in
+
+  [``GF/src/tools/Htmls.hs`` http://grammaticalframework.org/src/tools/Htmls.hs]
+
+The slides will appear as a set of files beginning with ``01-gf-tutorial.htmls``.
+
+Internal links will not work in the slide format, except for those in the
+upper left corner of each slide, and the links behind the "Contents" link.
+
+
+
+#NEW
+
+=Lesson 1: Getting Started with GF=
+
+
+#Lchaptwo
+
+Goals:
+- install and run GF
+- write the first GF grammar: a "Hello World" grammar in three languages
+- use GF for translation and multilingual generation
+
+
+#NEW
+
+==What GF is==
+
+We use the term GF for three different things:
+- a **system** (computer program) used for working with grammars
+- a **programming language** in which grammars can be written
+- a **theory** about grammars and languages
+
+
+The GF system is an implementation
+of the GF programming language, which in turn is built on the ideas of the
+GF theory. 
+
+The focus of this tutorial is on using the GF programming language.
+
+At the same time, we learn the way of thinking in the GF theory. 
+
+We make the grammars run on a computer by 
+using the GF system. 
+
+
+#NEW
+
+==GF grammars and language processing tasks==
+
+A GF program is called a **grammar**. 
+
+A grammar defines a language. 
+
+From this definition, language processing components can be derived:
+- **parsing**: to analyse the language
+- **linearization**: to generate the language
+- **translation**: to analyse one language and generate another
+
+
+In general, a GF grammar is **multilingual**:
+- many languages in one grammar
+- translations between them
+
+
+
+
+
+
+
+#NEW
+
+==Getting the GF system==
+
+Open-source free software, downloaded via the GF Homepage:
+
+[``grammaticalframework.org`` http://grammaticalframework.org/]
+
+There you find
+- binaries for Linux, Mac OS X, and Windows
+- source code and documentation
+- grammar libraries and examples 
+
+
+Many examples in this tutorial are
+[online http://grammaticalframework.org/examples/tutorial].
+
+Normally you don't have to compile GF yourself.
+But, if you do want to compile GF from source follow the
+instructions in the [Developers Guide ../gf-developers.html].
+
+
+#NEW
+
+==Running the GF system==
+
+Type ``gf`` in the Unix (or Cygwin) shell:
+```
+  % gf
+```
+You will see GF's welcome message and the prompt ``>``.
+The command
+```
+  > help
+```
+will give you a list of available commands.
+
+As a common convention, we will use
+- ``%`` as a prompt that marks system commands
+- ``>`` as a prompt that marks GF commands
+
+
+Thus you should not type these prompts, but only the characters that
+follow them.
+
+
+#NEW
+
+==A "Hello World" grammar==
+
+Like most programming language tutorials, we start with a
+program that prints "Hello World" on the terminal. 
+
+Extra features:
+- **Multilinguality**: the message is printed in many languages.
+- **Reversibility**: in addition to printing, you can **parse** the
+  message and **translate** it to other languages.
+
+
+#NEW
+
+===The program: abstract syntax and concrete syntaxes===
+
+A GF program, in general, is a **multilingual grammar**. Its main parts
+are
+- an **abstract syntax**
+- one or more **concrete syntaxes**
+
+
+The abstract syntax defines what **meanings**
+can be expressed in the grammar
+- //Greetings//, where we greet a //Recipient//, which can be 
+  //World// or //Mum// or //Friends// 
+
+
+
+#NEW
+
+GF code for the abstract syntax:
+```
+  -- a "Hello World" grammar
+  abstract Hello = {
+
+    flags startcat = Greeting ;
+
+    cat Greeting ; Recipient ;
+
+    fun 
+      Hello : Recipient -> Greeting ;
+      World, Mum, Friends : Recipient ;
+  }
+```
+The code has the following parts:
+- a **comment** (optional), saying what the module is doing 
+- a **module header** indicating that it is an abstract syntax
+  module named ``Hello``
+- a **module body** in braces, consisting of
+  - a **startcat flag declaration** stating that ``Greeting`` is the
+    default start category for parsing and generation
+  - **category declarations** introducing two categories, i.e. types of meanings
+  - **function declarations** introducing three meaning-building functions
+
+
+#NEW
+
+English concrete syntax (mapping from meanings to strings):
+```
+  concrete HelloEng of Hello = {
+
+    lincat Greeting, Recipient = {s : Str} ;
+
+    lin 
+      Hello recip = {s = "hello" ++ recip.s} ;
+      World = {s = "world"} ;
+      Mum = {s = "mum"} ;
+      Friends = {s = "friends"} ;
+  }
+```
+The major parts of this code are:
+- a module header indicating that it is a concrete syntax of the abstract syntax
+  ``Hello``, itself named ``HelloEng``
+- a module body in curly brackets, consisting of
+  - **linearization type definitions** stating that 
+    ``Greeting`` and ``Recipient`` are **records** with a **string** ``s``
+  - **linearization definitions** telling what records are assigned to
+    each of the meanings defined in the abstract syntax
+
+
+Notice the concatenation ``++`` and the record projection ``.``.
+
+
+#NEW
+
+Finnish and an Italian concrete syntaxes:
+```
+  concrete HelloFin of Hello = {
+    lincat Greeting, Recipient = {s : Str} ;
+    lin 
+      Hello recip = {s = "terve" ++ recip.s} ;
+      World = {s = "maailma"} ;
+      Mum = {s = "äiti"} ;
+      Friends = {s = "ystävät"} ;
+  }
+
+  concrete HelloIta of Hello = {
+    lincat Greeting, Recipient = {s : Str} ;
+    lin 
+      Hello recip = {s = "ciao" ++ recip.s} ;
+      World = {s = "mondo"} ;
+      Mum = {s = "mamma"} ;
+      Friends = {s = "amici"} ;
+  }
+```
+
+
+#NEW
+
+===Using grammars in the GF system===
+
+In order to compile the grammar in GF,
+we create four files, one for each module, named //Modulename//``.gf``:
+```
+  Hello.gf  HelloEng.gf  HelloFin.gf  HelloIta.gf
+```
+The first GF command: **import** a grammar.
+```
+  > import HelloEng.gf
+```
+All commands also have short names; here:
+```
+  > i HelloEng.gf
+```
+The GF system will **compile** your grammar 
+into an internal representation and show the CPU time was consumed, followed
+by a new prompt:
+```
+  > i HelloEng.gf
+  - compiling Hello.gf...   wrote file Hello.gfo 8 msec
+  - compiling HelloEng.gf...   wrote file HelloEng.gfo 12 msec
+
+  12 msec
+  >
+```
+
+#NEW
+
+You can use GF for **parsing** (``parse`` = ``p``)
+```
+  > parse "hello world"
+  Hello World
+```
+Parsing takes a **string** into an **abstract syntax tree**.
+
+The notation for trees is that of **function application**:
+```
+  function argument1 ... argumentn
+```
+Parentheses are only needed for grouping. 
+
+Parsing something that is not in grammar will fail:
+```
+  > parse "hello dad"
+  Unknown words: dad
+
+  > parse "world hello"
+  no tree found
+```
+
+#NEW
+
+You can also use GF for **linearization** (``linearize = l``). 
+It takes trees into strings:
+```
+  > linearize Hello World
+  hello world
+```
+**Translation**: **pipe** linearization to parsing:
+```
+  > import HelloEng.gf
+  > import HelloIta.gf
+
+  > parse -lang=HelloEng "hello mum" | linearize -lang=HelloIta
+  ciao mamma
+```
+Default of the language flag (``-lang``): the last-imported concrete syntax.
+
+**Multilingual generation**:
+```
+  > parse -lang=HelloEng "hello friends" | linearize
+  terve ystävät
+  ciao amici
+  hello friends
+```
+Linearization is by default to all available languages.
+
+#NEW
+
+===Exercises on the Hello World grammar===
+
++ Test the parsing and translation examples shown above, as well as
+some other examples, in different combinations of languages.
+
++ Extend the grammar ``Hello.gf`` and some of the
+concrete syntaxes by five new recipients and one new greeting
+form.
+
++ Add a concrete syntax for some other
+languages you might know.
+
++ Add a pair of greetings that are expressed in one and 
+the same way in
+one language and in two different ways in another. 
+For instance, //good morning//
+and //good afternoon// in English are both expressed 
+as //buongiorno// in Italian.
+Test what happens when you translate //buongiorno// to English in GF.
+
++ Inject errors in the ``Hello`` grammars, for example, leave out
+some line, omit a variable in a ``lin`` rule, or change the name 
+in one occurrence
+of a variable. Inspect the error messages generated by GF.
+
+
+#NEW
+
+==Using grammars from outside GF==
+
+You can use the ``gf`` program in a Unix pipe. 
+- echo a GF command
+- pipe it into GF with grammar names as arguments
+
+
+```
+  % echo "l Hello World" | gf HelloEng.gf HelloFin.gf HelloIta.gf
+```
+You can also write a **script**, a file containing the lines
+```
+  import HelloEng.gf
+  import HelloFin.gf
+  import HelloIta.gf
+  linearize Hello World
+```
+
+
+#NEW
+
+==GF scripts==
+
+If we name this script ``hello.gfs``, we can do
+```
+  $ gf --run <hello.gfs
+
+  ciao mondo
+  terve maailma
+  hello world
+```
+The option ``--run`` removes prompts, CPU time, and other messages. 
+
+See #Rchapeight, for stand-alone programs that don't need the GF system to run.
+
+**Exercise**. (For Unix hackers.) Write a GF application that reads
+an English string from the standard input and writes an Italian
+translation to the output.
+
+
+#NEW
+
+==What else can be done with the grammar==
+
+Some more functions that will be covered:
+- **morphological analysis**: find out the possible inflection forms of words
+- **morphological synthesis**: generate all inflection forms of words
+- **random generation**: generate random expressions
+- **corpus generation**: generate all expressions
+- **treebank generation**: generate a list of trees with their linearizations
+- **teaching quizzes**: train morphology and translation
+- **multilingual authoring**: create a document in many languages simultaneously
+- **speech input**: optimize a speech recognition system for a grammar
+
+
+
+#NEW
+
+==Embedded grammar applications==
+
+Application programs, using techniques from #Rchapeight:
+- compile grammars to new formats, such as speech recognition grammars
+- embed grammars in Java and Haskell programs
+- build applications using compilation and embedding:
+  - voice commands
+  - spoken language translators
+  - dialogue systems
+  - user interfaces
+  - localization: render the messages printed by a program
+    in different languages
+
+
+
+
+#NEW
+
+=Lesson 2: Designing a grammar for complex phrases=
+
+#Lchapthree
+
+Goals:
+- build a larger grammar: phrases about food in English and Italian
+- learn to write reusable library functions ("operations")
+- learn the basics of GF's module system
+
+
+#NEW
+
+
+==The abstract syntax Food==
+
+Phrases usable for speaking about food:
+- the start category is ``Phrase``
+- a ``Phrase`` can be built by assigning a ``Quality`` to an ``Item`` 
+  (e.g. //this cheese is Italian//)
+- an``Item`` is build from a ``Kind`` by prefixing //this// or //that// 
+  (e.g. //this wine//)
+- a ``Kind`` is either **atomic** (e.g. //cheese//), or formed 
+  qualifying a given ``Kind`` with a ``Quality`` (e.g. //Italian cheese//)
+- a ``Quality`` is either atomic (e.g. //Italian//,
+  or built by modifying a given ``Quality`` with the word //very// (e.g. //very warm//)
+
+
+Abstract syntax:
+```
+  abstract Food = {
+
+    flags startcat = Phrase ;
+
+    cat
+      Phrase ; Item ; Kind ; Quality ;
+
+    fun
+      Is : Item -> Quality -> Phrase ;
+      This, That : Kind -> Item ;
+      QKind : Quality -> Kind -> Kind ;
+      Wine, Cheese, Fish : Kind ;
+      Very : Quality -> Quality ;
+      Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
+  }
+```
+Example ``Phrase``
+```
+  Is (This (QKind Delicious (QKind Italian Wine))) (Very (Very Expensive))
+  this delicious Italian wine is very very expensive
+```
+
+
+#NEW
+
+==The concrete syntax FoodEng==
+
+```
+  concrete FoodEng of Food = {
+
+    lincat
+      Phrase, Item, Kind, Quality = {s : Str} ;
+
+    lin
+      Is item quality = {s = item.s ++ "is" ++ quality.s} ;
+      This kind = {s = "this" ++ kind.s} ;
+      That kind = {s = "that" ++ kind.s} ;
+      QKind quality kind = {s = quality.s ++ kind.s} ;
+      Wine = {s = "wine"} ;
+      Cheese = {s = "cheese"} ;
+      Fish = {s = "fish"} ;
+      Very quality = {s = "very" ++ quality.s} ;
+      Fresh = {s = "fresh"} ;
+      Warm = {s = "warm"} ;
+      Italian = {s = "Italian"} ;
+      Expensive = {s = "expensive"} ;
+      Delicious = {s = "delicious"} ;
+      Boring = {s = "boring"} ;
+  }  
+```
+
+#NEW
+
+Test the grammar for parsing:
+```
+  > import FoodEng.gf
+  > parse "this delicious wine is very very Italian"
+  Is (This (QKind Delicious Wine)) (Very (Very Italian))
+```
+Parse in other categories setting the ``cat`` flag:
+```
+  p -cat=Kind "very Italian wine"
+  QKind (Very Italian) Wine
+```
+
+
+#NEW
+
+===Exercises on the Food grammar===
+
++ Extend the ``Food`` grammar by ten new food kinds and
+qualities, and run the parser with new kinds of examples.
+
++ Add a rule that enables question phrases of the form 
+//is this cheese Italian//.
+
++ Enable the optional prefixing of 
+phrases with the words "excuse me but". Do this in such a way that
+the prefix can occur at most once.
+
+
+
+#NEW
+
+==Commands for testing grammars==
+
+===Generating trees and strings===
+
+Random generation (``generate_random = gr``): build
+build a random tree in accordance with an abstract syntax:
+```
+  > generate_random
+  Is (This (QKind Italian Fish)) Fresh
+```
+By using a pipe, random generation can be fed into linearization:
+```
+  > generate_random | linearize
+  this Italian fish is fresh
+```
+Use the ``number`` flag to generate several trees:
+```
+  > gr -number=4 | l
+  that wine is boring
+  that fresh cheese is fresh
+  that cheese is very boring
+  this cheese is Italian
+```
+
+#NEW
+
+To generate //all// phrases that a grammar can produce,
+use ``generate_trees = gt``.
+```
+  > generate_trees | l
+  that cheese is very Italian
+  that cheese is very boring
+  that cheese is very delicious
+  ...
+  this wine is fresh
+  this wine is warm
+```
+The default **depth** is 3; the depth can be
+set by using the ``depth`` flag:
+```
+  > generate_trees -depth=2 | l
+```
+What options a command has can be seen by the ``help = h`` command:
+```
+  > help gr
+  > help gt
+```
+
+
+#NEW
+
+===Exercises on generation===
+
++ If the command ``gt`` generated all
+trees in your grammar, it would never terminate. Why?
+
++ Measure how many trees the grammar gives with depths 4 and 5,
+respectively. **Hint**. You can 
+use the Unix **word count** command ``wc`` to count lines.
+
+
+
+#NEW
+
+===More on pipes: tracing===
+
+Put the **tracing** option ``-tr`` to each command whose output you
+want to see:
+```
+  > gr -tr | l -tr | p
+
+  Is (This Cheese) Boring
+  this cheese is boring
+  Is (This Cheese) Boring  
+```
+Useful for test purposes: the pipe above can show
+if a grammar is **ambiguous**, i.e.
+contains strings that can be parsed in more than one way.
+
+**Exercise**. Extend the ``Food`` grammar so that it produces ambiguous 
+strings, and try out the ambiguity test.
+
+
+#NEW
+
+===Writing and reading files===
+
+To save the outputs into a file, pipe it to the ``write_file = wf`` command,
+```
+  > gr -number=10 | linearize | write_file -file=exx.tmp
+```
+To read a file to GF, use the ``read_file = rf`` command,
+```
+  > read_file -file=exx.tmp -lines | parse
+```
+The flag ``-lines`` tells GF to read each line of the file separately. 
+
+Files with examples can be used for **regression testing**
+of grammars - the most systematic way to do this is by
+**treebanks**; see #Rsectreebank.
+
+
+#NEW
+
+===Visualizing trees===
+
+Parentheses give a linear representation of trees,
+useful for the computer. 
+
+Human eye may prefer to see a visualization: ``visualize_tree = vt``:
+``` 
+  > parse "this delicious cheese is very Italian" | visualize_tree
+```
+The tree is generated in postscript (``.ps``) file. The ``-view`` option is used for
+telling what command to use to view the file. Its default is ``"open"``, which works
+on Mac OS X. On Ubuntu Linux, one can write
+``` 
+  > parse "this delicious cheese is very Italian" | visualize_tree -view="eog"
+```
+
+
+
+
+#MYTREE
+
+This command uses the program [Graphviz http://www.graphviz.org/], which you
+might not have, but which are freely available on the web.
+
+You can save the temporary file ``_grph.dot``, 
+which the command ``vt`` produces. 
+
+Then you can process this file with the ``dot`` 
+program (from the Graphviz package).
+```
+  % dot -Tpng _grph.dot > mytree.png
+```
+You can also visualize **parse trees**, which show categories and words instead of
+function symbols. The command is ``visualize_parse = vp``:
+``` 
+  > parse "this delicious cheese is very Italian" | visualize_parse
+```
+
+#MYPARSE
+
+#NEW
+
+===System commands===
+
+You can give a **system command** without leaving GF:
+``!`` followed by a Unix command,
+```
+  > ! dot -Tpng grphtmp.dot > mytree.png
+  > ! open mytree.png
+```
+A system command may also receive its argument from
+a GF pipes. It then uses the symbol ``?``:
+```
+  > generate_trees -depth=4 | ? wc -l
+```
+This command example returns the number of generated trees.
+
+
+**Exercise**.
+Measure how many trees the grammar ``FoodEng`` gives with depths 4 and 5,
+respectively. Use the Unix **word count** command ``wc`` to count lines, and
+a system pipe from a GF command into a Unix command.
+
+
+
+
+
+#NEW
+
+==An Italian concrete syntax==
+
+#Lsecanitalian
+
+Just (?) replace English words with their dictionary equivalents:
+```
+  concrete FoodIta of Food = {
+
+    lincat
+      Phrase, Item, Kind, Quality = {s : Str} ;
+
+    lin
+      Is item quality = {s = item.s ++ "è" ++ quality.s} ;
+      This kind = {s = "questo" ++ kind.s} ;
+      That kind = {s = "quel" ++ kind.s} ;
+      QKind quality kind = {s = kind.s ++ quality.s} ;
+      Wine = {s = "vino"} ;
+      Cheese = {s = "formaggio"} ;
+      Fish = {s = "pesce"} ;
+      Very quality = {s = "molto" ++ quality.s} ;
+      Fresh = {s = "fresco"} ;
+      Warm = {s = "caldo"} ;
+      Italian = {s = "italiano"} ;
+      Expensive = {s = "caro"} ;
+      Delicious = {s = "delizioso"} ;
+      Boring = {s = "noioso"} ;
+  }
+```
+
+
+#NEW
+
+Not just replacing words:
+
+The order of a quality and the kind it modifies is changed in
+```
+    QKind quality kind = {s = kind.s ++ quality.s} ;
+```
+Thus Italian says ``vino italiano`` for ``Italian wine``. 
+
+(Some Italian adjectives
+are put before the noun. This distinction can be controlled by parameters, 
+which are introduced in #Rchapfour.)
+
+Multilingual grammars have yet another visualization option:
+**word alignment**, which shows what words correspond to each other.
+Technically, this means words that have the same smallest spanning subtrees
+in abstract syntax. The command is ``align_words = aw``:
+``` 
+  > parse "this delicious cheese is very Italian" | align_words
+```
+
+[align2.png]
+
+
+#NEW
+
+===Exercises on multilinguality===
+
++ Write a concrete syntax of ``Food`` for some other language.
+You will probably end up with grammatically incorrect 
+linearizations - but don't
+worry about this yet.
+
++ If you have written ``Food`` for German, Swedish, or some
+other language, test with random or exhaustive generation what constructs
+come out incorrect, and prepare a list of those ones that cannot be helped
+with the currently available fragment of GF. You can return to your list
+after having worked out #Rchapfour.
+
+
+
+
+#NEW
+
+==Free variation==
+
+Semantically indistinguishable ways of expressing a thing.
+
+The **variants** construct of GF expresses free variation. For example,
+```
+  lin Delicious = {s = "delicious" | "exquisit" | "tasty"} ;
+```
+By default, the ``linearize`` command
+shows only the first variant from such lists; to see them
+all, use the option ``-all``:
+```
+  > p "this exquisit wine is delicious" | l -all
+  this delicious wine is delicious
+  this delicious wine is exquisit
+  ...
+```
+
+#NEW
+
+An equivalent notation for variants is
+```
+  lin Delicious = {s = variants {"delicious" ; "exquisit" ; "tasty"}} ;
+```
+This notation also allows the limiting case: an empty variant list,
+```
+  variants {}
+```
+It can be used e.g. if a word lacks a certain inflection form. 
+
+Free variation works for all types in concrete syntax; all terms in
+a variant list must be of the same type.
+
+
+#NEW
+
+==More application of multilingual grammars==
+
+===Multilingual treebanks===
+
+#Lsectreebank
+
+**Multilingual treebank**: a set of trees with their
+linearizations in different languages:
+```
+  > gr -number=2 | l -treebank
+
+  Is (That Cheese) (Very Boring)
+  quel formaggio è molto noioso
+  that cheese is very boring
+
+  Is (That Cheese) Fresh
+  quel formaggio è fresco
+  that cheese is fresh
+```
+
+
+
+#NEW
+
+===Translation quiz===
+
+``translation_quiz = tq``:
+generate random sentences, display them in one language, and check the user's
+answer given in another language. 
+```
+  > translation_quiz -from=FoodEng -to=FoodIta
+
+  Welcome to GF Translation Quiz.
+  The quiz is over when you have done at least 10 examples
+  with at least 75 % success.
+  You can interrupt the quiz by entering a line consisting of a dot ('.').
+
+  this fish is warm
+  questo pesce è caldo
+  > Yes.
+  Score 1/1
+
+  this cheese is Italian
+  questo formaggio è noioso
+  > No, not questo formaggio è noioso, but
+  questo formaggio è italiano
+
+  Score 1/2
+  this fish is expensive
+```
+
+
+
+#NEW
+
+==Context-free grammars and GF==
+
+===The "cf" grammar format===
+
+The grammar ``FoodEng`` can be written in a BNF format as follows:
+```
+  Is.        Phrase  ::= Item "is" Quality ;
+  That.      Item    ::= "that" Kind ;
+  This.      Item    ::= "this" Kind ;
+  QKind.     Kind    ::= Quality Kind ;
+  Cheese.    Kind    ::= "cheese" ;
+  Fish.      Kind    ::= "fish" ;
+  Wine.      Kind    ::= "wine" ;
+  Italian.   Quality ::= "Italian" ;
+  Boring.    Quality ::= "boring" ;
+  Delicious. Quality ::= "delicious" ;
+  Expensive. Quality ::= "expensive" ;
+  Fresh.     Quality ::= "fresh" ;
+  Very.      Quality ::= "very" Quality ;
+  Warm.      Quality ::= "warm" ;
+```
+GF can convert BNF grammars into GF. 
+BNF files are recognized by the file name suffix ``.cf`` (for **context-free**): 
+```
+  > import food.cf
+```
+The compiler creates separate abstract and concrete modules internally.
+
+
+#NEW
+
+===Restrictions of context-free grammars===
+
+Separating concrete and abstract syntax allows
+three deviations from context-free grammar:
+- **permutation**: changing the order of constituents
+- **suppression**: omitting constituents
+- **reduplication**: repeating constituents
+
+
+**Exercise**. Define the non-context-free
+copy language ``{x x | x <- (a|b)*}`` in GF.
+
+
+
+#NEW
+
+%--!
+==Modules and files==
+
+GF uses suffixes to recognize different file formats:
+- Source files: //Modulename//``.gf``
+- Target files: //Modulename//``.gfo``
+
+
+Importing generates target from source:
+```
+  > i FoodEng.gf
+  - compiling Food.gf...   wrote file Food.gfo 16 msec
+  - compiling FoodEng.gf...   wrote file FoodEng.gfo 20 msec
+```
+The ``.gfo`` format (="GF Object") is precompiled GF, which is
+faster to load than source GF (``.gf``).
+
+When reading a module, GF decides whether
+to use an existing ``.gfo`` file or to generate
+a new one, by looking at modification times.
+
+
+#NEW
+
+**Exercise**.  What happens when you import ``FoodEng.gf`` for 
+a second time? Try this in different situations:
+- Right after importing it the first time (the modules are kept in
+  the memory of GF and need no reloading).
+- After issuing the command ``empty`` (``e``), which clears the memory
+  of GF.
+- After making a small change in ``FoodEng.gf``, be it only an added space.
+- After making a change in ``Food.gf``.
+
+
+
+#NEW
+
+==Using operations and resource modules==
+
+===Operation definitions===
+
+The golden rule of functional programmin:
+
+//Whenever you find yourself programming by copy-and-paste, write a function instead.//
+
+Functions in concrete syntax are defined using the keyword ``oper`` (for
+**operation**), distinct from ``fun`` for the sake of clarity.
+
+Example:
+```
+  oper ss : Str -> {s : Str} = \x -> {s = x} ;
+```
+The operation can be **applied** to an argument, and GF will
+**compute** the value:
+```
+  ss "boy" ===> {s = "boy"}
+```
+The symbol ``===>`` will be used for computation.
+
+
+#NEW
+
+Notice the **lambda abstraction** form 
+- ``\``//x// ``->`` //t//
+
+
+This is read:
+- function with variable //x// and **function body** //t//
+
+
+For lambda abstraction with multiple arguments, we have the shorthand
+```
+  \x,y -> t   ===  \x -> \y -> t
+```
+Linearization rules actually use syntactic
+sugar for abstraction:
+```
+  lin f x = t   ===  lin f = \x -> t
+```
+
+
+
+#NEW
+
+%--!
+===The ``resource`` module type===
+
+The ``resource`` module type is used to package
+``oper`` definitions into reusable resources. 
+```
+  resource StringOper = {
+    oper
+      SS : Type = {s : Str} ;
+      ss : Str -> SS = \x -> {s = x} ;
+      cc : SS -> SS -> SS = \x,y -> ss (x.s ++ y.s) ;
+      prefix : Str -> SS -> SS = \p,x -> ss (p ++ x.s) ;
+  }
+```
+
+
+#NEW
+
+%--!
+===Opening a resource===
+
+Any number of ``resource`` modules can be
+**open**ed in a ``concrete`` syntax.
+```
+  concrete FoodEng of Food = open StringOper in {
+
+    lincat
+      S, Item, Kind, Quality = SS ;
+
+    lin
+      Is item quality = cc item (prefix "is" quality) ;
+      This k = prefix "this" k ;
+      That k = prefix "that" k ;
+      QKind k q = cc k q ;
+      Wine = ss "wine" ;
+      Cheese = ss "cheese" ;
+      Fish = ss "fish" ;
+      Very = prefix "very" ;
+      Fresh = ss "fresh" ;
+      Warm = ss "warm" ;
+      Italian = ss "Italian" ;
+      Expensive = ss "expensive" ;
+      Delicious = ss "delicious" ;
+      Boring = ss "boring" ;
+  }
+```
+
+
+#NEW
+
+%--!
+===Partial application===
+
+#Lsecpartapp
+
+The rule
+```
+  lin This k = prefix "this" k ;
+```
+can be written more concisely
+```
+  lin This = prefix "this" ;
+```
+Part of the art in functional programming: 
+decide the order of arguments in a function, 
+so that partial application can be used as much as possible. 
+
+For instance, ``prefix`` is typically applied to 
+linearization variables with constant strings. Hence we
+put the ``Str`` argument before the ``SS`` argument.
+
+
+**Exercise**. Define an operation ``infix`` analogous to ``prefix``,
+such that it allows you to write
+```
+  lin Is = infix "is" ;
+```
+
+
+#NEW
+
+===Testing resource modules===
+
+Import with the flag ``-retain``, 
+```
+  > import -retain StringOper.gf
+```
+Compute the value with ``compute_concrete = cc``,
+```
+  > compute_concrete prefix "in" (ss "addition")
+  {s : Str = "in" ++ "addition"}
+```
+
+
+#NEW
+
+==Grammar architecture==
+
+#Lsecarchitecture
+
+===Extending a grammar===
+
+A new module can **extend** an old one:
+```
+  abstract Morefood = Food ** {
+    cat
+      Question ;
+    fun
+      QIs : Item -> Quality -> Question ;
+      Pizza : Kind ;      
+  }
+```
+Parallel to the abstract syntax, extensions can
+be built for concrete syntaxes:
+```
+  concrete MorefoodEng of Morefood = FoodEng ** {
+    lincat
+      Question = {s : Str} ;
+    lin
+      QIs item quality = {s = "is" ++ item.s ++ quality.s} ;
+      Pizza = {s = "pizza"} ;
+  }
+```
+The effect of extension: all of the contents of the extended
+and extending modules are put together. 
+
+In other words: the new module **inherits** the contents of the old module.
+
+#NEW
+
+Simultaneous extension and opening:
+```
+  concrete MorefoodIta of Morefood = FoodIta ** open StringOper in {
+    lincat
+      Question = SS ;
+    lin
+      QIs item quality = ss (item.s ++ "è" ++ quality.s) ;
+      Pizza = ss "pizza" ;
+  }
+```
+Resource modules can extend other resource modules - thus it is 
+possible to build resource hierarchies.
+
+
+
+#NEW
+
+===Multiple inheritance===
+
+Extend several grammars at the same time:
+```
+  abstract Foodmarket = Food, Fruit, Mushroom ** {
+    fun 
+      FruitKind    : Fruit    -> Kind ;
+      MushroomKind : Mushroom -> Kind ;
+    }
+```
+where
+```
+  abstract Fruit = {
+    cat Fruit ;
+    fun Apple, Peach : Fruit ;
+  }
+
+  abstract Mushroom = {
+    cat Mushroom ;
+    fun Cep, Agaric : Mushroom ;
+  }
+```
+
+**Exercise**. Refactor ``Food`` by taking apart ``Wine`` into a special
+``Drink`` module.
+
+
+
+#NEW
+
+=Lesson 3: Grammars with parameters=
+
+#Lchapfour
+
+Goals:
+- implement sophisticated linguistic structures:
+  - morphology: the inflection of words
+  - agreement: rules for selecting word forms in syntactic combinations
+
+
+- Cover all GF constructs for concrete syntax
+
+
+It is possible to skip this chapter and go directly
+to the next, since the use of the GF Resource Grammar library
+makes it unnecessary to use parameters: they 
+could be left to library implementors.
+
+
+#NEW
+
+==The problem: words have to be inflected==
+
+Plural forms are needed in things like
+#BEQU
+//these Italian wines are delicious//
+#ENQU
+This requires two things:
+- the **inflection** of nouns and verbs in singular and plural
+- the **agreement** of the verb to subject: 
+  the verb must have the same number as the subject
+
+
+Different languages have different types of inflection and agreement.
+- Italian has also gender (masculine vs. feminine).
+
+
+
+In a multilingual grammar,
+we want to ignore such distinctions in abstract syntax.
+
+**Exercise**. Make a list of the possible forms that nouns,
+adjectives, and verbs can have in some languages that you know.
+
+
+#NEW
+
+==Parameters and tables==
+
+We define the **parameter type** of number in English by
+a new form of judgement:
+```
+  param Number = Sg | Pl ;
+```
+This judgement defines the parameter type ``Number`` by listing
+its two **constructors**, ``Sg`` and ``Pl`` 
+(singular and plural). 
+
+We give ``Kind`` a linearization type that has a **table** depending on number:
+```
+  lincat Kind = {s : Number => Str} ;
+```
+The **table type** ``Number => Str`` is similar a function type 
+(``Number -> Str``). 
+
+Difference: the argument must be a parameter type. Then
+the argument-value pairs can be listed in a finite table. 
+
+#NEW
+
+Here is a table:
+```
+  lin Cheese = {
+    s = table {
+      Sg => "cheese" ;
+      Pl => "cheeses"
+    }
+  } ;
+```
+The table has **branches**, with a **pattern** on the
+left of the arrow ``=>`` and a **value** on the right.
+
+The application of a table is done by the **selection** operator ``!``. 
+
+It which is computed by **pattern matching**: return
+the value from the first branch whose pattern matches the
+argument. For instance,
+```
+   table {Sg => "cheese" ; Pl => "cheeses"} ! Pl 
+   ===> "cheeses"
+```
+
+#NEW
+
+**Case expressions** are syntactic sugar:
+```
+  case e of {...} ===  table {...} ! e
+```
+Since they are familiar to Haskell and ML programmers, they can come out handy
+when writing GF programs.
+
+
+#NEW
+
+Constructors can take arguments from other parameter types. 
+
+Example: forms of English verbs (except //be//):
+```
+  param VerbForm = VPresent Number | VPast | VPastPart | VPresPart ;
+```
+Fact expressed: only present tense has number variation. 
+
+Example table: the forms of the verb //drink//:
+```
+  table {
+    VPresent Sg => "drinks" ;
+    VPresent Pl => "drink" ;
+    VPast       => "drank" ;
+    VPastPart   => "drunk" ;
+    VPresPart   => "drinking"
+    }
+``` 
+
+
+**Exercise**. In an earlier exercise (previous section), 
+you made a list of the possible 
+forms that nouns, adjectives, and verbs can have in some languages that 
+you know. Now take some of the results and implement them by
+using parameter type definitions and tables. Write them into a ``resource``
+module, which you can test by using the command ``compute_concrete``.
+
+
+
+#NEW
+
+==Inflection tables and paradigms==
+
+A morphological **paradigm** is a formula telling how a class of 
+words is inflected.
+
+From the GF point of view, a paradigm is a function that takes 
+a **lemma** (also known as a **dictionary form**, or a **citation form**) and 
+returns an inflection table. 
+
+The following operation defines the regular noun paradigm of English:
+```
+  oper regNoun : Str -> {s : Number => Str} = \dog -> {
+    s = table {
+      Sg => dog ;
+      Pl => dog + "s"
+      }
+    } ;
+```
+The **gluing** operator ``+`` glues strings to one **token**:
+```
+  (regNoun "cheese").s ! Pl  ===> "cheese" + "s"  ===>  "cheeses"
+```
+
+
+#NEW
+
+A more complex example: regular verbs,
+```
+  oper regVerb : Str -> {s : VerbForm => Str} = \talk -> {
+    s = table {
+      VPresent Sg => talk + "s" ;
+      VPresent Pl => talk ;
+      VPresPart   => talk + "ing" ;
+      _           => talk + "ed"
+      }
+    } ;
+```
+The catch-all case for the past tense and the past participle
+uses a **wild card** pattern ``_``. 
+
+
+#NEW
+
+===Exercises on morphology===
+
++ Identify cases in which the ``regNoun`` paradigm does not
+apply in English, and implement some alternative paradigms.
+
++ Implement some regular paradigms for other languages you have
+considered in earlier exercises.
+
+
+
+#NEW
+
+==Using parameters in concrete syntax==
+
+Purpose: a more radical
+variation between languages
+than just the use of different words and word orders. 
+
+We add to the grammar ``Food`` two rules for forming plural items:
+```
+  fun These, Those : Kind -> Item ;
+```
+We also add a noun which in Italian has the feminine case:
+```
+  fun Pizza : Kind ;
+```
+This will force us to deal with gender- 
+
+
+#NEW
+
+%--!
+===Agreement===
+
+In English, the phrase-forming rule
+```
+  fun Is : Item -> Quality -> Phrase ;
+```
+is affected by the number because of **subject-verb agreement**:
+the verb of a sentence must be inflected in the number of the subject,
+```
+  Is (This Pizza) Warm   ===>  "this pizza is warm"
+  Is (These Pizza) Warm  ===>  "these pizzas are warm"
+```
+It is the **copula** (the verb //be//) that is affected:
+```
+  oper copula : Number -> Str = \n -> 
+    case n of {
+      Sg => "is" ;
+      Pl => "are"
+      } ;
+```
+The **subject** ``Item`` must have such a number to provide to the copula:
+```
+  lincat Item = {s : Str ; n : Number} ;
+```
+Now we can write
+```
+  lin Is item qual = {s = item.s ++ copula item.n ++ qual.s} ;
+```
+
+
+
+#NEW
+
+===Determiners===
+
+How does an ``Item`` subject receive its number? The rules
+```
+  fun This, These : Kind -> Item ;
+```
+add **determiners**, either //this// or //these//, which
+require different //this pizza// vs.
+//these pizzas//. 
+
+Thus ``Kind`` must have both singular and plural forms:
+```
+  lincat Kind = {s : Number => Str} ;
+```
+We can write
+```
+  lin This kind = {
+    s = "this" ++ kind.s ! Sg ; 
+    n = Sg
+  } ; 
+
+  lin These kind = {
+    s = "these" ++ kind.s ! Pl ; 
+    n = Pl
+  } ; 
+```
+
+
+#NEW
+
+To avoid copy-and-paste, we can factor out the pattern of determination,
+```
+  oper det : 
+    Str -> Number -> {s : Number => Str} -> {s : Str ; n : Number} = 
+      \det,n,kind -> {
+      s = det ++ kind.s ! n ; 
+      n = n
+    } ; 
+```
+Now we can write
+```
+  lin This  = det Sg "this" ;
+  lin These = det Pl "these" ;
+```
+In a more **lexicalized** grammar, determiners would be a category:
+```
+  lincat Det = {s : Str ; n : Number} ;
+  fun Det : Det -> Kind -> Item ;
+  lin Det det kind = {
+      s = det.s ++ kind.s ! det.n ; 
+      n = det.n
+    } ; 
+```
+
+
+#NEW
+
+===Parametric vs. inherent features===
+
+``Kind``s have number as a **parametric feature**: both singular and plural
+can be formed,
+```
+  lincat Kind = {s : Number => Str} ;
+```
+``Item``s have number as an **inherent feature**: they are inherently either
+singular or plural,
+```
+  lincat Item = {s : Str ; n : Number} ;
+```
+Italian ``Kind`` will have parametric number and inherent gender:
+```
+  lincat Kind = {s : Number => Str ; g : Gender} ;
+```
+
+
+#NEW
+
+Questions to ask when designing parameters:
+- existence: what forms are possible to build by morphological and
+  other means?
+- need: what features are expected via agreement or government?
+
+
+Dictionaries give good advice:
+#BEQU
+**uomo**, pl. //uomini//, n.m. "man"
+#ENQU
+tells that //uomo// is a masculine noun with the plural form //uomini//.
+Hence, parametric number and an inherent gender.
+
+For words, inherent features are usually given as lexical information.
+
+For combinations, they are //inherited// from some part of the construction
+(typically the one called the **head**). Italian modification:
+```
+  lin QKind qual kind = 
+    let gen = kind.g in {
+      s = table {n => kind.s ! n ++ qual.s ! gen ! n} ;
+      g = gen
+      } ;
+```
+Notice 
+- **local definition** (``let`` expression)
+- **variable pattern** ``n``
+
+
+
+#NEW
+
+==An English concrete syntax for Foods with parameters==
+
+We use some string operations from the library ``Prelude`` are used. 
+```
+   concrete FoodsEng of Foods = open Prelude in {
+
+  lincat
+    S, Quality = SS ; 
+    Kind = {s : Number => Str} ; 
+    Item = {s : Str ; n : Number} ; 
+
+  lin
+    Is item quality = ss (item.s ++ copula item.n ++ quality.s) ;
+    This  = det Sg "this" ;
+    That  = det Sg "that" ;
+    These = det Pl "these" ;
+    Those = det Pl "those" ;
+    QKind quality kind = {s = table {n => quality.s ++ kind.s ! n}} ;
+    Wine = regNoun "wine" ;
+    Cheese = regNoun "cheese" ;
+    Fish = noun "fish" "fish" ;
+    Pizza = regNoun "pizza" ;
+    Very = prefixSS "very" ;
+    Fresh = ss "fresh" ;
+    Warm = ss "warm" ;
+    Italian = ss "Italian" ;
+    Expensive = ss "expensive" ;
+    Delicious = ss "delicious" ;
+    Boring = ss "boring" ;
+```
+
+#NEW
+
+```
+  param
+    Number = Sg | Pl ;
+
+  oper
+    det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} = 
+      \n,d,cn -> {
+        s = d ++ cn.s ! n ;
+        n = n
+      } ;
+    noun : Str -> Str -> {s : Number => Str} = 
+      \man,men -> {s = table {
+        Sg => man ;
+        Pl => men 
+        }
+      } ;
+    regNoun : Str -> {s : Number => Str} = 
+      \car -> noun car (car + "s") ;
+    copula : Number -> Str = 
+      \n -> case n of {
+        Sg => "is" ;
+        Pl => "are"
+        } ;
+  }    
+```
+
+#NEW
+
+==More on inflection paradigms==
+
+#Lsecinflection
+
+Let us extend the English noun paradigms so that we can
+deal with all nouns, not just the regular ones. The goal is to
+provide a morphology module that makes it easy to
+add words to a lexicon. 
+
+
+#NEW
+
+===Worst-case functions===
+
+We perform **data abstraction** from the type
+of nouns by writing a a **worst-case function**:
+```
+  oper Noun : Type = {s : Number => Str} ;
+
+  oper mkNoun : Str -> Str -> Noun = \x,y -> {
+    s = table {
+      Sg => x ;
+      Pl => y
+      }
+    } ;
+
+  oper regNoun : Str -> Noun = \x -> mkNoun x (x + "s") ;
+```
+Then we can define
+```
+  lincat N = Noun ;
+  lin Mouse = mkNoun "mouse" "mice" ;
+  lin House = regNoun "house" ;
+```
+where the underlying types are not seen.
+
+#NEW
+
+We are free to change the undelying definitions, e.g.
+add **case** (nominative or genitive) to noun inflection:
+```
+  param Case = Nom | Gen ;
+
+  oper Noun : Type = {s : Number => Case => Str} ;
+```
+Now we have to redefine the worst-case function
+```
+  oper mkNoun : Str -> Str -> Noun = \x,y -> {
+    s = table {
+      Sg => table {
+        Nom => x ;
+        Gen => x + "'s"
+        } ;
+      Pl => table {
+        Nom => y ;
+        Gen => y + case last y of {
+          "s" => "'" ;
+          _   => "'s"
+        }
+      }
+    } ;
+```
+But up from this level, we can retain the old definitions
+```
+  lin Mouse = mkNoun "mouse" "mice" ;
+  oper regNoun : Str -> Noun = \x -> mkNoun x (x + "s") ;
+```
+
+
+
+#NEW
+
+In the last definition of ``mkNoun``, we used a case expression
+on the last character of the plural, as well as the ``Prelude`` 
+operation
+```
+  last : Str -> Str ;
+```
+returning the string consisting of the last character.
+
+The case expression uses **pattern matching over strings**, which
+is supported in GF, alongside with pattern matching over
+parameters.
+
+
+
+#NEW
+
+===Smart paradigms===
+
+The regular //dog//-//dogs// paradigm has
+predictable variations:
+- nouns ending with an //y//: //fly//-//flies//, except if
+  a vowel precedes the //y//: //boy//-//boys//
+- nouns ending with //s//, //ch//, and a number of
+  other endings: //bus//-//buses//, //leech//-//leeches//
+
+
+We could provide alternative paradigms:
+```
+  noun_y : Str -> Noun = \fly -> mkNoun fly (init fly + "ies") ;  
+  noun_s : Str -> Noun = \bus -> mkNoun bus (bus + "es") ;
+```
+(The Prelude function ``init`` drops the last character of a token.)
+
+Drawbacks: 
+- it can be difficult to select the correct paradigm
+- it can be difficult to remember the names of the different paradigms
+
+
+#NEW
+
+Better solution: a **smart paradigm**:
+```
+  regNoun : Str -> Noun = \w -> 
+    let 
+      ws : Str = case w of {
+        _ + ("a" | "e" | "i" | "o") + "o" => w + "s" ;  -- bamboo
+        _ + ("s" | "x" | "sh" | "o")      => w + "es" ; -- bus, hero
+        _ + "z"                           => w + "zes" ;-- quiz 
+        _ + ("a" | "e" | "o" | "u") + "y" => w + "s" ;  -- boy
+        x + "y"                           => x + "ies" ;-- fly
+        _                                 => w + "s"    -- car
+        } 
+    in 
+    mkNoun w ws
+```
+GF has **regular expression patterns**:
+- **disjunctive patterns**  //P// ``|`` //Q//
+- **concatenation patterns** //P// ``+`` //Q//
+
+
+The patterns are ordered in such a way that, for instance, 
+the suffix ``"oo"`` prevents //bamboo// from matching the suffix
+``"o"``.
+
+
+#NEW
+
+===Exercises on regular patterns===
+
++ The same rules that form plural nouns in English also
+apply in the formation of third-person singular verbs. 
+Write a regular verb paradigm that uses this idea, but first
+rewrite ``regNoun`` so that the analysis needed to build //s//-forms
+is factored out as a separate ``oper``, which is shared with
+``regVerb``.
+
++ Extend the verb paradigms to cover all verb forms
+in English, with special care taken of variations with the suffix
+//ed// (e.g. //try//-//tried//, //use//-//used//).
+
++ Implement the German **Umlaut** operation on word stems.
+The operation changes the vowel of the stressed stem syllable as follows:
+//a// to //ä//, //au// to //äu//, //o// to //ö//, and //u// to //ü//. You
+can assume that the operation only takes syllables as arguments. Test the
+operation to see whether it correctly changes //Arzt// to //Ärzt//,
+//Baum// to //Bäum//, //Topf// to //Töpf//, and //Kuh// to //Küh//.
+
+
+
+#NEW
+
+===Function types with variables===
+
+In #Rchapsix, **dependent function types** need a notation
+that binds a variable to the argument type, as in
+```
+  switchOff : (k : Kind) -> Action k
+```
+Function types //without// variables are actually a shorthand:
+```
+  PredVP : NP -> VP -> S
+```
+means
+```
+  PredVP : (x : NP) -> (y : VP) -> S
+```
+or any other naming of the variables.
+
+
+#NEW
+
+Sometimes variables shorten the code, since they can share a type:
+```
+  octuple : (x,y,z,u,v,w,s,t : Str) -> Str
+```
+If a bound variable is not used, it can be replaced by a wildcard:
+```
+  octuple : (_,_,_,_,_,_,_,_ : Str) -> Str
+```
+A good practice is to indicate the number of arguments:
+```
+  octuple : (x1,_,_,_,_,_,_,x8 : Str) -> Str
+```
+For inflection paradigms, it is handy to use heuristic variable names,
+looking like the expected forms:
+```
+  mkNoun : (mouse,mice : Str) -> Noun
+```
+
+
+#NEW
+
+===Separating operation types and definitions===
+
+In librarues, it is useful to group type signatures separately from
+definitions. It is possible to divide an ``oper`` judgement, 
+```
+  oper regNoun : Str -> Noun ;
+  oper regNoun s = mkNoun s (s + "s") ;
+```
+and put the parts in different places.
+
+With the ``interface`` and ``instance`` module types
+(see #Rsecinterface): the parts can even be put to different files.
+
+
+#NEW
+
+===Overloading of operations===
+
+**Overloading**: different functions can be given the same name, as e.g. in C++.
+
+The compiler performs **overload resolution**, which works as long as the
+functions have different types.
+
+In GF, the functions must be grouped together in ``overload`` groups. 
+
+Example: different ways to define nouns in English:
+```
+  oper mkN : overload {
+    mkN : (dog : Str) -> Noun ;         -- regular nouns
+    mkN : (mouse,mice : Str) -> Noun ;  -- irregular nouns
+  }
+```
+Cf. dictionaries: if the
+word is regular, just one form is needed. If it is irregular,
+more forms are given. 
+
+The definition can be given separately, or at the same time, as the types:
+```
+  oper mkN = overload {
+    mkN : (dog : Str) -> Noun = regNoun ;
+    mkN : (mouse,mice : Str) -> Noun = mkNoun ;
+  }
+```
+**Exercise**. Design a system of English verb paradigms presented by
+an overload group.
+
+
+#NEW
+
+===Morphological analysis and morphology quiz===
+
+The command ``morpho_analyse = ma``
+can be used to read a text and return for each word its analyses
+(in the current grammar):
+```
+  > read_file bible.txt | morpho_analyse
+```
+The command ``morpho_quiz = mq`` generates inflection exercises. 
+```
+  % gf -path=alltenses:prelude $GF_LIB_PATH/alltenses/IrregFre.gfo
+
+  > morpho_quiz -cat=V
+
+  Welcome to GF Morphology Quiz.
+  ...
+
+  réapparaître : VFin VCondit  Pl  P2
+  réapparaitriez
+  > No, not réapparaitriez, but
+  réapparaîtriez
+  Score 0/1
+```
+To create a list for later use, use the command ``morpho_list = ml``
+```
+  > morpho_list -number=25 -cat=V | write_file exx.txt
+```
+
+
+
+
+#NEW
+
+==The Italian Foods grammar==
+
+#Lsecitalian
+
+Parameters include not only number but also gender.
+```
+concrete FoodsIta of Foods = open Prelude in {
+
+  param
+    Number = Sg | Pl ;
+    Gender = Masc | Fem ;
+```
+Qualities are inflected for gender and number, whereas kinds
+have a parametric number and an inherent gender.
+Items have an inherent number and gender.
+```
+  lincat
+    Phr = SS ; 
+    Quality = {s : Gender => Number => Str} ; 
+    Kind = {s : Number => Str ; g : Gender} ; 
+    Item = {s : Str ; g : Gender ; n : Number} ; 
+```
+
+#NEW
+
+A Quality is an adjective, with one form for each gender-number combination.
+```
+  oper
+    adjective : (_,_,_,_ : Str) -> {s : Gender => Number => Str} = 
+      \nero,nera,neri,nere -> {
+        s = table {
+          Masc => table {
+            Sg => nero ;
+            Pl => neri
+            } ; 
+          Fem => table {
+            Sg => nera ;
+            Pl => nere
+            }
+          }
+      } ;
+```
+Regular adjectives work by adding endings to the stem.
+```
+    regAdj : Str -> {s : Gender => Number => Str} = \nero ->
+      let ner = init nero 
+      in adjective nero (ner + "a") (ner + "i") (ner + "e") ;
+```
+
+#NEW
+
+For noun inflection, we are happy to give the two forms and the gender 
+explicitly:
+```
+    noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = 
+      \vino,vini,g -> {
+        s = table {
+          Sg => vino ;
+          Pl => vini
+          } ;
+        g = g
+      } ;
+```
+We need only number variation for the copula.
+```
+    copula : Number -> Str = 
+      \n -> case n of {
+        Sg => "è" ;
+        Pl => "sono"
+        } ;
+```
+
+#NEW
+
+Determination is more complex than in English, because of gender:
+```
+    det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} -> 
+        {s : Str ; g : Gender ; n : Number} = 
+      \n,m,f,cn -> {
+        s = case cn.g of {Masc => m ; Fem => f} ++ cn.s ! n ;
+        g = cn.g ;
+        n = n
+      } ;
+```
+
+
+#NEW
+
+The complete set of linearization rules:
+```
+  lin
+    Is item quality = 
+      ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n) ;
+    This  = det Sg "questo" "questa" ;
+    That  = det Sg "quel"   "quella" ;
+    These = det Pl "questi" "queste" ;
+    Those = det Pl "quei"   "quelle" ;
+    QKind quality kind = {
+      s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ;
+      g = kind.g
+      } ;
+    Wine = noun "vino" "vini" Masc ;
+    Cheese = noun "formaggio" "formaggi" Masc ;
+    Fish = noun "pesce" "pesci" Masc ;
+    Pizza = noun "pizza" "pizze" Fem ;
+    Very qual = {s = \\g,n => "molto" ++ qual.s ! g ! n} ;
+    Fresh = adjective "fresco" "fresca" "freschi" "fresche" ;
+    Warm = regAdj "caldo" ;
+    Italian = regAdj "italiano" ;
+    Expensive = regAdj "caro" ;
+    Delicious = regAdj "delizioso" ;
+    Boring = regAdj "noioso" ;
+  }
+```
+
+
+#NEW
+
+===Exercises on using parameters===
+
++ Experiment with multilingual generation and translation in the
+``Foods`` grammars.
+
++ Add items, qualities, and determiners to the grammar, 
+and try to get their inflection and inherent features right.
+
++ Write a concrete syntax of ``Food`` for a language of your choice,
+now aiming for complete grammatical correctness by the use of parameters.
+
++ Measure the size of the context-free grammar corresponding to
+``FoodsIta``. You can do this by printing the grammar in the context-free format
+(``print_grammar -printer=bnf``) and counting the lines.
+
+
+
+
+#NEW
+
+==Discontinuous constituents==
+
+A linearization record may contain more strings than one, and those
+strings can be put apart in linearization.
+
+Example: English particle
+verbs, (//switch off//). The object can appear between:
+
+//he switched it off//
+
+The verb //switch off// is called a
+**discontinuous constituents**.
+
+We can define transitive verbs and their combinations as follows:
+```
+  lincat TV = {s : Number => Str ; part : Str} ;
+
+  fun AppTV : Item -> TV -> Item -> Phrase ;
+
+  lin AppTV subj tv obj = 
+    {s = subj.s ++ tv.s ! subj.n ++ obj.s ++ tv.part} ;
+```
+
+**Exercise**. Define the language ``a^n b^n c^n`` in GF, i.e.
+any number of //a//'s followed by the same number of //b//'s and
+the same number of //c//'s. This language is not context-free,
+but can be defined in GF by using discontinuous constituents.
+
+
+#NEW
+
+==Strings at compile time vs. run time==
+
+Tokens are created in the following ways:
+- quoted string: ``"foo"``
+- gluing : ``t + s``
+- predefined operations ``init, tail, tk, dp``
+- pattern matching over strings
+
+
+Since //tokens must be known at compile time//,
+the above operations may not be applied to **run-time variables**
+(i.e. variables that stand for function arguments in linearization rules).
+
+Hence it is not legal to write
+```
+  cat Noun ;
+  fun Plural : Noun -> Noun ;
+  lin Plural n = {s = n.s + "s"} ;
+```
+because ``n`` is a run-time variable. Also
+```
+  lin Plural n = {s = (regNoun n).s ! Pl} ; 
+```
+is incorrect with ``regNoun`` as defined #Rsecinflection, because the run-time 
+variable is eventually sent to string pattern matching and gluing.
+
+
+#NEW
+
+How to write tokens together without a space?
+```
+  lin Question p = {s = p + "?"} ;
+```
+is incorrect. 
+
+The way to go is to use an **unlexer** that creates correct spacing
+after linearization. 
+
+Correspondingly, a **lexer** that e.g. analyses ``"warm?"`` into
+to tokens is needed before parsing. 
+This topic will be covered in #Rseclexing.
+
+
+
+
+
+
+#NEW
+
+===Supplementary constructs for concrete syntax===
+
+====Record extension and subtyping====
+
+The symbol ``**`` is used for both record types and record objects.
+```
+  lincat TV = Verb ** {c : Case} ;
+
+  lin Follow = regVerb "folgen" ** {c = Dative} ; 
+```
+``TV`` becomes a **subtype** of ``Verb``.
+
+If //T// is a subtype of //R//, an object of //T// can be used whenever
+an object of //R// is required. 
+
+**Covariance**: a function returning a record //T// as value can
+also be used to return a value of a supertype //R//.
+
+**Contravariance**: a function taking an //R// as argument
+can also be applied to any object of a subtype //T//.
+
+
+#NEW
+
+====Tuples and product types====
+
+Product types and tuples are syntactic sugar for record types and records:
+```
+  T1 * ... * Tn   ===   {p1 : T1 ; ... ; pn : Tn}
+  <t1, ...,  tn>  ===   {p1 = T1 ; ... ; pn = Tn}
+```
+Thus the labels ``p1, p2,...`` are hard-coded.
+
+
+#NEW
+
+====Prefix-dependent choices====
+
+English indefinite article:
+```
+  oper artIndef : Str = 
+    pre {"a" ; "an" / strs {"a" ; "e" ; "i" ; "o"}} ;
+```
+Thus
+```
+  artIndef ++ "cheese"  --->  "a" ++ "cheese"
+  artIndef ++ "apple"   --->  "an" ++ "apple"
+```
+
+
+
+
+
+
+
+
+#NEW
+
+=Lesson 4: Using the resource grammar library=
+
+#Lchapfive
+
+Goals:
+- navigate in the GF resource grammar library and use it in applications
+- get acquainted with basic linguistic categories
+- write functors to achieve maximal sharing of code in multilingual grammars
+
+
+#NEW
+
+==The coverage of the library==
+
+The current 16 resource languages (GF version 3.2, December 2010) are
+- ``Bul``garian
+- ``Cat``alan
+- ``Dan``ish
+- ``Dut``ch
+- ``Eng``lish
+- ``Fin``nish
+- ``Fre``nch
+- ``Ger``man
+- ``Ita``lian
+- ``Nor``wegian
+- ``Pol``ish
+- ``Ron``, Romanian 
+- ``Rus``sian
+- ``Spa``nish
+- ``Swe``dish
+- ``Urd``u
+
+
+The first three letters (``Eng`` etc) are used in grammar module names
+(ISO 639-3 standard).
+
+
+#NEW
+
+==The structure of the library==
+
+#Lseclexical
+
+Semantic grammars (up to now in this tutorial):
+a grammar defines a system of meanings (abstract syntax) and
+tells how they are expressed(concrete syntax).
+
+Resource grammars (as usual in linguistic tradition):
+a grammar specifies the **grammatically correct combinations of words**, 
+whatever their meanings are. 
+
+With resource grammars, we can achieve a
+wider coverage than with semantic grammars.
+
+#NEW
+
+===Lexical vs. phrasal rules===
+
+A resource grammar has two kinds of categories and two kinds of rules:
+- lexical:
+  - lexical categories, to classify words
+  - lexical rules, to define words and their properties
+
+- phrasal (combinatorial, syntactic):
+  - phrasal categories, to classify phrases of arbitrary size
+  - phrasal rules, to combine phrases into larger phrases
+
+
+GE makes no formal distinction between these two kinds.
+
+But it is a good discipline to follow.
+
+
+#NEW
+
+===Lexical categories===
+
+Two kinds of lexical categories:
+- **closed**: 
+  - a finite number of words
+  - seldom extended in the history of language
+  - structural words / function words, e.g.
+```
+    Conj ;     -- conjunction           e.g. "and"
+    Det ;      -- determiner            e.g. "this"
+```
+
+- **open**:
+  - new words are added all the time
+  - content words, e.g.
+```
+    N ;        -- noun         e.g. "pizza"
+    A ;        -- adjective    e.g. "good"
+    V ;        -- verb         e.g. "sleep"
+```
+
+
+#NEW
+
+===Lexical rules===
+
+Closed classes: module ``Syntax``. In the ``Foods`` grammar, we need
+```
+  this_Det, that_Det, these_Det, those_Det : Det ; 
+  very_AdA  : AdA ;
+```
+Naming convention: word followed by the category (so we can
+distinguish the quantifier //that// from the conjunction //that//). 
+
+Open classes have no objects in ``Syntax``. Words are
+built as they are needed in applications: if we have
+```
+  fun Wine : Kind ;
+```
+we will define
+```
+  lin Wine = mkN "wine" ;
+```
+where we use ``mkN`` from ``ParadigmsEng``:
+
+
+
+#NEW
+
+===Resource lexicon===
+
+Alternative concrete syntax for
+```
+  fun Wine : Kind ;
+```
+is to provide a **resource lexicon**, which contains definitions such as
+```
+  oper wine_N : N = mkN "wine" ;
+```
+so that we can write
+```
+  lin Wine = wine_N ;
+```
+Advantages:
+- we accumulate a reusable lexicon
+- we can use a #Rsecfunctor to speed up multilingual grammar implementation
+
+
+#NEW
+
+===Phrasal categories===
+
+In ``Foods``, we need just four phrasal categories:
+```
+  Cl ;   -- clause             e.g. "this pizza is good"
+  NP ;   -- noun phrase        e.g. "this pizza"
+  CN ;   -- common noun        e.g. "warm pizza"
+  AP ;   -- adjectival phrase  e.g. "very warm"
+```
+Clauses are similar to sentences (``S``), but without a
+fixed tense and mood; see #Rsecextended for how they relate.
+
+Common nouns are made into noun phrases by adding determiners.
+
+
+#NEW
+
+===Syntactic combinations===
+
+We need the following combinations:
+```
+  mkCl : NP -> AP -> Cl ;      -- e.g. "this pizza is very warm"
+  mkNP : Det -> CN -> NP ;     -- e.g. "this pizza" 
+  mkCN : AP -> CN -> CN ;      -- e.g. "warm pizza"
+  mkAP : AdA -> AP -> AP ;     -- e.g. "very warm" 
+```
+We also need **lexical insertion**, to form phrases from single words:
+```
+  mkCN : N -> NP ;
+  mkAP : A -> AP ;
+```
+Naming convention: to construct a //C//, use a function ``mk``//C//.
+
+Heavy overloading: the current library
+(version 1.2) has 23 operations named ``mkNP``!
+
+
+#NEW
+
+===Example syntactic combination===
+
+The sentence
+#BEQU
+//these very warm pizzas are Italian//
+#ENQU
+can be built as follows:
+```
+  mkCl 
+    (mkNP these_Det 
+       (mkCN (mkAP very_AdA (mkAP warm_A)) (mkCN pizza_CN)))
+    (mkAP italian_AP) 
+```
+The task now: to define the concrete syntax of ``Foods`` so that
+this syntactic tree gives the value of linearizing the semantic tree
+```
+  Is (These (QKind (Very Warm) Pizza)) Italian
+```
+
+
+
+#NEW
+
+==The resource API==
+
+Language-specific and language-independent parts - roughly,
+- the syntax API ``Syntax``//L// has the same types and 
+  functions for all languages //L//
+- the morphology API ``Paradigms``//L// has partly 
+  different types and functions
+  for different languages //L//
+
+
+Full API documentation on-line: the **resource synopsis**,
+
+[``grammaticalframework.org/lib/doc/synopsis.html`` http://grammaticalframework.org/lib/doc/synopsis.html]
+
+
+#NEW
+
+===A miniature resource API: categories===
+
+|| Category  | Explanation  | Example  ||
+| ``Cl``  | clause (sentence), with all tenses | //she looks at this// |
+| ``AP`` | adjectival phrase | //very warm// |
+| ``CN`` | common noun (without determiner) | //red house// |
+| ``NP`` | noun phrase (subject or object) | //the red house// |
+| ``AdA`` | adjective-modifying adverb, | //very// |
+| ``Det`` | determiner | //these// |
+| ``A`` | one-place adjective | //warm// |
+| ``N`` | common noun | //house// |
+
+
+#NEW
+
+===A miniature resource API: rules===
+
+|| Function  | Type  | Example  ||
+| ``mkCl``  | ``NP -> AP -> Cl`` | //John is very old// |
+| ``mkNP``  | ``Det -> CN -> NP`` | //these old man// |
+| ``mkCN``  | ``N -> CN`` | //house// |
+| ``mkCN``  | ``AP -> CN -> CN`` | //very big blue house// |
+| ``mkAP``  | ``A -> AP`` | //old// |
+| ``mkAP``  | ``AdA -> AP -> AP`` | //very very old// |
+
+#NEW
+
+===A miniature resource API: structural words===
+
+|| Function      | Type       | In English  ||
+| ``this_Det`` | ``Det``  | //this// |
+| ``that_Det`` | ``Det``  | //that// |
+| ``these_Det`` | ``Det``  | //this// |
+| ``those_Det`` | ``Det``  | //that// |
+| ``very_AdA``   | ``AdA``    | //very// |
+
+
+#NEW
+
+===A miniature resource API: paradigms===
+
+From ``ParadigmsEng``:
+
+|| Function  | Type  ||
+| ``mkN`` | ``(dog : Str) -> N`` | 
+| ``mkN`` | ``(man,men : Str) -> N`` | 
+| ``mkA`` | ``(cold : Str) -> A`` | 
+
+From ``ParadigmsIta``:
+
+|| Function  | Type  ||
+| ``mkN`` | ``(vino : Str) -> N`` | 
+| ``mkA`` | ``(caro : Str) -> A`` | 
+
+
+#NEW
+
+===A miniature resource API: more paradigms===
+
+From ``ParadigmsGer``:
+
+|| Function  | Type  ||
+| ``Gender`` | ``Type`` | 
+| ``masculine`` | ``Gender`` |
+| ``feminine`` | ``Gender`` |
+| ``neuter`` | ``Gender`` | 
+| ``mkN`` | ``(Stufe : Str) -> N`` | 
+| ``mkN`` | ``(Bild,Bilder : Str) -> Gender -> N`` |
+| ``mkA`` | ``(klein : Str) -> A`` |
+| ``mkA`` | ``(gut,besser,beste : Str) -> A`` |
+
+From ``ParadigmsFin``:
+
+|| Function  | Type  ||
+| ``mkN`` | ``(talo : Str) -> N`` | 
+| ``mkA`` | ``(hieno : Str) -> A`` | 
+
+
+
+#NEW
+
+===Exercises===
+
+1. Try out the morphological paradigms in different languages. Do 
+as follows:
+```
+  > i -path=alltenses -retain alltenses/ParadigmsGer.gfo
+  > cc -table mkN "Farbe"
+  > cc -table mkA "gut" "besser" "beste"
+```
+
+
+#NEW
+
+==Example: English==
+
+#Lsecenglish
+
+We assume the abstract syntax ``Foods`` from #Rchapfour.
+
+We don't need to think about inflection and agreement, but just pick
+functions from the resource grammar library.
+
+We need a path with
+- the current directory ``.`` 
+- the directory ``../foods``, in which ``Foods.gf`` resides.
+- the library directory ``present``, which is relative to the 
+  environment variable ``GF_LIB_PATH``
+
+
+Thus the beginning of the module is
+```
+  --# -path=.:../foods:present
+
+  concrete FoodsEng of Foods = open SyntaxEng,ParadigmsEng in {
+```
+
+
+#NEW
+
+===English example: linearization types and combination rules===
+
+As linearization types, we use clauses for ``Phrase``, noun phrases
+for ``Item``, common nouns for ``Kind``, and adjectival phrases for ``Quality``.
+```
+  lincat
+    Phrase = Cl ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+```
+Now the combination rules we need almost write themselves automatically:
+```
+  lin
+    Is item quality = mkCl item quality ;
+    This kind = mkNP this_Det kind ;
+    That kind = mkNP that_Det kind ;
+    These kind = mkNP these_Det kind ;
+    Those kind = mkNP those_Det kind ;
+    QKind quality kind = mkCN quality kind ;
+    Very quality = mkAP very_AdA quality ;
+```
+
+
+#NEW
+
+===English example: lexical rules===
+
+We use resource paradigms and lexical insertion rules.
+
+The two-place noun paradigm is needed only once, for
+//fish// - everythins else is regular.
+```
+    Wine = mkCN (mkN "wine") ;
+    Pizza = mkCN (mkN "pizza") ;
+    Cheese = mkCN (mkN "cheese") ;
+    Fish = mkCN (mkN "fish" "fish") ;
+    Fresh = mkAP (mkA "fresh") ;
+    Warm = mkAP (mkA "warm") ;
+    Italian = mkAP (mkA "Italian") ;
+    Expensive = mkAP (mkA "expensive") ;
+    Delicious = mkAP (mkA "delicious") ;
+    Boring = mkAP (mkA "boring") ;
+  }
+```
+
+
+#NEW
+
+===English example: exercises===
+
+1. Compile the grammar ``FoodsEng`` and generate 
+and parse some sentences.
+
+2. Write a concrete syntax of ``Foods`` for Italian 
+or some other language included in the resource library. You can 
+compare the results with the hand-written
+grammars presented earlier in this tutorial.
+
+
+
+#NEW
+
+==Functor implementation of multilingual grammars==
+
+#Lsecfunctor
+
+===New language by copy and paste===
+
+If you write  a concrete syntax of ``Foods`` for some other
+language, much of the code will look exactly the same
+as for English. This is because 
+- the ``Syntax`` API is the same for all languages (because
+  all languages in the resource package do implement the same 
+  syntactic structures) 
+- languages tend to use the syntactic structures in similar ways
+
+
+But lexical rules are more language-dependent.
+
+Thus, to port a grammar to a new language, you
++ copy the concrete syntax of a given language
++ change the words (strings and inflection paradigms)
+
+
+Can we avoid this programming by copy-and-paste?
+
+
+
+#NEW
+
+===Functors: functions on the module level===
+
+**Functors** familiar from the functional programming languages ML and OCaml, 
+also known as **parametrized modules**.
+
+In GF, a functor is a module that ``open``s one or more **interfaces**.
+
+An ``interface`` is a module similar to a ``resource``, but it only
+contains the //types// of ``oper``s, not (necessarily) their definitions. 
+
+Syntax for functors: add the keyword ``incomplete``. We will use the header
+```
+  incomplete concrete FoodsI of Foods = open Syntax, LexFoods in
+```
+where
+```
+  interface Syntax    -- the resource grammar interface
+  interface LexFoods  -- the domain lexicon interface
+```
+When we moreover have
+```
+  instance SyntaxEng of Syntax     -- the English resource grammar
+  instance LexFoodsEng of LexFoods -- the English domain lexicon
+```
+we can write a **functor instantiation**,
+```
+  concrete FoodsGer of Foods = FoodsI with 
+    (Syntax = SyntaxGer),
+    (LexFoods = LexFoodsGer) ;
+```
+
+#NEW
+
+===Code for the Foods functor===
+
+```
+  --# -path=.:../foods
+
+  incomplete concrete FoodsI of Foods = open Syntax, LexFoods in {
+  lincat
+    Phrase = Cl ; 
+    Item = NP ;
+    Kind = CN ;
+    Quality = AP ;
+  lin
+    Is item quality = mkCl item quality ;
+    This kind = mkNP this_Det kind ;
+    That kind = mkNP that_Det kind ;
+    These kind = mkNP these_Det kind ;
+    Those kind = mkNP those_Det kind ;
+    QKind quality kind = mkCN quality kind ;
+    Very quality = mkAP very_AdA quality ;
+
+    Wine = mkCN wine_N ;
+    Pizza = mkCN pizza_N ;
+    Cheese = mkCN cheese_N ;
+    Fish = mkCN fish_N ;
+    Fresh = mkAP fresh_A ;
+    Warm = mkAP warm_A ;
+    Italian = mkAP italian_A ;
+    Expensive = mkAP expensive_A ;
+    Delicious = mkAP delicious_A ;
+    Boring = mkAP boring_A ;
+  }
+```
+
+
+#NEW
+
+===Code for the LexFoods interface===
+
+#Lsecinterface
+
+```
+  interface LexFoods = open Syntax in {
+  oper
+    wine_N : N ;
+    pizza_N : N ;
+    cheese_N : N ;
+    fish_N : N ;
+    fresh_A : A ;
+    warm_A : A ;
+    italian_A : A ;
+    expensive_A : A ;
+    delicious_A : A ;
+    boring_A : A ;
+  }
+```
+
+#NEW
+
+===Code for a German instance of the lexicon===
+
+```
+  instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in {
+  oper
+    wine_N = mkN "Wein" ;
+    pizza_N = mkN "Pizza" "Pizzen" feminine ;
+    cheese_N = mkN "Käse" "Käsen" masculine ;
+    fish_N = mkN "Fisch" ;
+    fresh_A = mkA "frisch" ;
+    warm_A = mkA "warm" "wärmer" "wärmste" ;
+    italian_A = mkA "italienisch" ;
+    expensive_A = mkA "teuer" ;
+    delicious_A = mkA "köstlich" ;
+    boring_A = mkA "langweilig" ;
+  }
+```
+
+
+#NEW
+
+===Code for a German functor instantiation===
+
+```
+  --# -path=.:../foods:present
+
+  concrete FoodsGer of Foods = FoodsI with 
+    (Syntax = SyntaxGer),
+    (LexFoods = LexFoodsGer) ;
+```
+
+
+
+#NEW
+
+===Adding languages to a functor implementation===
+
+Just two modules are needed:
+- a domain lexicon instance
+- a functor instantiation
+
+
+The functor instantiation is completely mechanical to write.
+
+The domain lexicon instance requires some knowledge of the words of the
+language: 
+- what words are used for which concepts
+- how the words are
+- features such as genders
+
+
+#NEW
+
+===Example: adding Finnish===
+
+Lexicon instance
+```
+  instance LexFoodsFin of LexFoods = open SyntaxFin, ParadigmsFin in {
+  oper
+    wine_N = mkN "viini" ;
+    pizza_N = mkN "pizza" ;
+    cheese_N = mkN "juusto" ;
+    fish_N = mkN "kala" ;
+    fresh_A = mkA "tuore" ;
+    warm_A = mkA "lämmin" ;
+    italian_A = mkA "italialainen" ;
+    expensive_A = mkA "kallis" ;
+    delicious_A = mkA "herkullinen" ;
+    boring_A = mkA "tylsä" ;
+  }
+```
+Functor instantiation
+```
+  --# -path=.:../foods:present
+
+  concrete FoodsFin of Foods = FoodsI with 
+    (Syntax = SyntaxFin),
+    (LexFoods = LexFoodsFin) ;
+```
+
+
+#NEW
+
+===A design pattern===
+
+This can be seen as a //design pattern// for multilingual grammars:
+```
+                      concrete DomainL*
+
+    instance LexDomainL                 instance SyntaxL*
+   
+                 incomplete concrete DomainI
+                 /           |              \               
+   interface LexDomain   abstract Domain    interface Syntax*
+```
+Modules marked with ``*`` are either given in the library, or trivial.
+
+Of the hand-written modules, only ``LexDomainL`` is language-dependent.
+
+
+#NEW
+
+===Functors: exercises===
+
+1. Compile and test ``FoodsGer``.
+
+2. Refactor ``FoodsEng`` into a functor instantiation.
+
+3. Instantiate the functor ``FoodsI`` to some language of
+your choice.
+
+4. Design a small grammar that can be used for controlling
+an MP3 player. The grammar should be able to recognize commands such
+as //play this song//, with the following variations:
+- verbs: //play//, //remove//
+- objects: //song//, //artist//
+- determiners: //this//, //the previous//
+- verbs without arguments: //stop//, //pause//
+
+
+The implementation goes in the following phases:
++ abstract syntax
++ (optional:) prototype string-based concrete syntax
++ functor over resource syntax and lexicon interface
++ lexicon instance for the first language
++ functor instantiation for the first language
++ lexicon instance for the second language
++ functor instantiation for the second language
++ ...
+
+
+
+#NEW
+
+==Restricted inheritance==
+
+===A problem with functors===
+
+Problem: a functor only works when all languages use the resource ``Syntax`` 
+in the same way.
+
+Example (contrived): assume that English has
+no word for ``Pizza``, but has to use the paraphrase //Italian pie//.
+This is no longer a noun ``N``, but a complex phrase
+in the category ``CN``. 
+
+Possible solution: change interface the ``LexFoods`` with
+```
+  oper pizza_CN : CN ;
+```
+Problem with this solution: 
+- we may end up changing the interface and the function with each new language
+- we must every time also change the instances for the old languages to maintain
+  type correctness
+
+
+#NEW
+
+===Restricted inheritance: include or exclude===
+
+A module may inherit just a selection of names.
+
+Example: the ``FoodMarket`` example "Rsecarchitecture:
+```
+  abstract Foodmarket = Food, Fruit [Peach], Mushroom - [Agaric]
+```
+Here, from ``Fruit`` we include ``Peach`` only, and from ``Mushroom``
+we exclude ``Agaric``.
+
+A concrete syntax of ``Foodmarket`` must make the analogous restrictions.
+
+
+#NEW
+
+===The functor problem solved===
+
+The English instantiation inherits the functor 
+implementation except for the constant ``Pizza``. This constant
+is defined in the body instead:
+```
+  --# -path=.:../foods:present
+
+  concrete FoodsEng of Foods = FoodsI - [Pizza] with 
+    (Syntax = SyntaxEng),
+    (LexFoods = LexFoodsEng) ** 
+      open SyntaxEng, ParadigmsEng in {
+
+    lin Pizza = mkCN (mkA "Italian") (mkN "pie") ;
+  }
+```
+ 
+
+#NEW
+
+==Grammar reuse==
+
+Abstract syntax modules can be used as interfaces, 
+and concrete syntaxes as their instances.
+ 
+The following correspondencies are then applied:
+```
+  cat C         <--->  oper C : Type
+
+  fun f : A     <--->  oper f : A
+
+  lincat C = T  <--->  oper C : Type = T
+
+  lin f = t     <--->  oper f : A = t
+```
+
+
+
+
+#NEW
+
+===Library exercises===
+
+1. Find resource grammar terms for the following
+English phrases (in the category ``Phr``). You can first try to
+build the terms manually.
+
+//every man loves a woman//
+
+//this grammar speaks more than ten languages//
+
+//which languages aren't in the grammar//
+
+//which languages did you want to speak//
+
+
+Then translate the phrases to other languages.
+
+
+#NEW
+
+==Tenses==
+
+#Lsectense
+
+In ``Foods`` grammars, we have used the path
+```
+  --# -path=.:../foods
+```
+The library subdirectory ``present`` is a restricted version
+of the resource, with only present tense of verbs and sentences.
+
+By just changing the path, we get all tenses:
+```
+  --# -path=.:../foods:alltenses
+```
+Now we can see all the tenses of phrases, by using the ``-all`` flag 
+in linearization:
+```
+  > gr | l -all
+  This wine is delicious
+  Is this wine delicious
+  This wine isn't delicious
+  Isn't this wine delicious
+  This wine is not delicious
+  Is this wine not delicious
+  This wine has been delicious
+  Has this wine been delicious
+  This wine hasn't been delicious
+  Hasn't this wine been delicious
+  This wine has not been delicious
+  Has this wine not been delicious
+  This wine was delicious
+  Was this wine delicious
+  This wine wasn't delicious
+  Wasn't this wine delicious
+  This wine was not delicious
+  Was this wine not delicious
+  This wine had been delicious
+  Had this wine been delicious
+  This wine hadn't been delicious
+  Hadn't this wine been delicious
+  This wine had not been delicious
+  Had this wine not been delicious
+  This wine will be delicious
+  Will this wine be delicious
+  This wine won't be delicious
+  Won't this wine be delicious
+  This wine will not be delicious
+  Will this wine not be delicious
+  This wine will have been delicious
+  Will this wine have been delicious
+  This wine won't have been delicious
+  Won't this wine have been delicious
+  This wine will not have been delicious
+  Will this wine not have been delicious
+  This wine would be delicious
+  Would this wine be delicious
+  This wine wouldn't be delicious
+  Wouldn't this wine be delicious
+  This wine would not be delicious
+  Would this wine not be delicious
+  This wine would have been delicious
+  Would this wine have been delicious
+  This wine wouldn't have been delicious
+  Wouldn't this wine have been delicious
+  This wine would not have been delicious
+  Would this wine not have been delicious
+```
+We also see 
+- polarity (positive vs. negative)
+- word order (direct vs. inverted)
+- variation between contracted and full negation
+
+
+The list is even longer in languages that have more
+tenses and moods, e.g. the Romance languages.
+
+
+
+#NEW
+
+=Lesson 5: Refining semantics in abstract syntax=
+
+#Lchapsix
+
+Goals:
+- include semantic conditions in grammars, by using
+  - **dependent types** 
+  - **higher order abstract syntax** 
+  - proof objects  
+  - semantic definitions
+
+These concepts are inherited from **type theory** (more precisely:
+constructive type theory, or Martin-Löf type theory).
+
+Type theory is the basis **logical frameworks**.
+
+GF = logical framework + concrete syntax.
+
+
+#NEW
+
+==Dependent types==
+
+#Lsecsmarthouse
+
+Problem: to express **conditions of semantic well-formedness**.
+
+Example: a voice command system for a "smart house" wants to
+eliminate meaningless commands.
+
+Thus we want to restrict particular actions to
+particular devices - we can //dim a light//, but we cannot
+//dim a fan//.
+
+The following example is borrowed from the 
+Regulus Book (Rayner & al. 2006).
+
+A simple example is a "smart house" system, which
+defines voice commands for household appliances.   
+
+
+#NEW
+
+===A dependent type system===
+
+Ontology: 
+- there are commands and device kinds
+- for each kind of device, there are devices and actions
+- a command concerns an action of some kind on a device of the same kind
+
+
+Abstract syntax formalizing this:
+```
+  cat
+    Command ;
+    Kind ; 
+    Device Kind ; -- argument type Kind 
+    Action Kind ; 
+  fun 
+    CAction : (k : Kind) -> Action k -> Device k -> Command ;
+```
+``Device`` and ``Action`` are both dependent types.
+
+
+#NEW
+
+===Examples of devices and actions===
+
+Assume the kinds ``light`` and ``fan``,
+```
+  light, fan : Kind ;
+  dim : Action light ;
+```
+Given a kind, //k//, you can form the device //the k//.
+```
+  DKindOne  : (k : Kind) -> Device k ;  -- the light
+```
+Now we can form the syntax tree
+```
+  CAction light dim (DKindOne light)
+```
+but we cannot form the trees
+```
+  CAction light dim (DKindOne fan)
+  CAction fan   dim (DKindOne light)
+  CAction fan   dim (DKindOne fan)
+```
+
+
+#NEW
+
+===Linearization and parsing with dependent types===
+
+Concrete syntax does not know if a category is a dependent type. 
+```
+  lincat Action = {s : Str} ;
+  lin CAction _ act dev = {s = act.s ++ dev.s} ; 
+```
+Notice that the ``Kind`` argument is suppressed in linearization.
+
+Parsing with dependent types is performed in two phases:
++ context-free parsing
++ filtering through type checker
+
+
+By just doing the first phase, the ``kind`` argument is not found:
+```
+  > parse "dim the light"
+  CAction ? dim (DKindOne light)
+```
+Moreover, type-incorrect commands are not rejected:
+```
+  > parse "dim the fan"
+  CAction ? dim (DKindOne fan)
+```
+The term ``?`` is a **metavariable**, returned by the parser
+for any subtree that is suppressed by a linearization rule.
+These are the same kind of metavariables as were used #Rsecediting
+to mark incomplete parts of trees in the syntax editor.
+
+
+
+#NEW
+
+===Solving metavariables===
+
+Use the command ``put_tree = pt`` with the option ``-typecheck``:
+```
+  > parse "dim the light" | put_tree -typecheck
+  CAction light dim (DKindOne light)
+```
+The ``typecheck`` process may fail, in which case an error message
+is shown and no tree is returned:
+```
+  > parse "dim the fan" | put_tree -typecheck
+
+  Error in tree UCommand (CAction ? 0 dim (DKindOne fan)) :
+    (? 0 <> fan) (? 0 <> light)
+```
+
+
+
+
+#NEW
+
+==Polymorphism==
+
+#Lsecpolymorphic
+
+Sometimes an action can be performed on all kinds of devices. 
+
+This is represented as a function that takes a ``Kind`` as an argument 
+and produce an ``Action`` for that ``Kind``:
+```
+  fun switchOn, switchOff : (k : Kind) -> Action k ;
+```
+Functions of this kind are called **polymorphic**. 
+
+We can use this kind of polymorphism in concrete syntax as well,
+to express Haskell-type library functions:
+```
+  oper const :(a,b : Type) -> a -> b -> a =
+    \_,_,c,_ -> c ;
+
+  oper flip : (a,b,c : Type) -> (a -> b ->c) -> b -> a -> c =
+    \_,_,_,f,x,y -> f y x ;
+```
+
+
+#NEW
+
+===Dependent types: exercises===
+
+1. Write an abstract syntax module with above contents
+and an appropriate English concrete syntax. Try to parse the commands
+//dim the light// and //dim the fan//, with and without ``solve`` filtering.
+
+
+2. Perform random and exhaustive generation, with and without
+``solve`` filtering.
+
+3. Add some device kinds and actions to the grammar.
+
+
+
+#NEW
+
+==Proof objects==
+
+**Curry-Howard isomorphism** = **propositions as types principle**:
+a proposition is a type of proofs (= proof objects).
+
+Example: define the //less than// proposition for natural numbers,
+```
+  cat Nat ; 
+  fun Zero : Nat ;
+  fun Succ : Nat -> Nat ;
+```
+Define inductively what it means for a number //x// to be //less than//
+a number //y//:
+- ``Zero`` is less than ``Succ`` //y// for any //y//.
+- If //x// is less than //y//, then ``Succ`` //x// is less than ``Succ`` //y//.
+
+
+Expressing these axioms in type theory
+with a dependent type ``Less`` //x y// and two functions constructing
+its objects:
+```
+  cat Less Nat Nat ; 
+  fun lessZ : (y : Nat) -> Less Zero (Succ y) ;
+  fun lessS : (x,y : Nat) -> Less x y -> Less (Succ x) (Succ y) ;
+```
+Example: the fact that 2 is less that 4 has the proof object
+```
+  lessS (Succ Zero) (Succ (Succ (Succ Zero)))
+        (lessS Zero (Succ (Succ Zero)) (lessZ (Succ Zero)))
+   : Less (Succ (Succ Zero)) (Succ (Succ (Succ (Succ Zero))))
+```
+
+
+
+#NEW
+
+===Proof-carrying documents===
+
+Idea: to be semantically well-formed, the abstract syntax of a document 
+must contain a proof of some property, 
+although the proof is not shown in the concrete document.
+
+Example: documents describing flight connections:
+
+//To fly from Gothenburg to Prague, first take LH3043 to Frankfurt, then OK0537 to Prague.//
+
+The well-formedness of this text is partly expressible by dependent typing: 
+```
+  cat
+    City ;
+    Flight City City ;
+  fun
+    Gothenburg, Frankfurt, Prague : City ;
+    LH3043 : Flight Gothenburg Frankfurt ;
+    OK0537 : Flight Frankfurt Prague ;
+```
+To extend the conditions to flight connections, we introduce a category
+of proofs that a change is possible:
+```
+  cat IsPossible (x,y,z : City)(Flight x y)(Flight y z) ;
+```
+A legal connection is formed by the function
+```
+  fun Connect : (x,y,z : City) -> 
+    (u : Flight x y) -> (v : Flight y z) -> 
+      IsPossible x y z u v -> Flight x z ;
+```
+
+
+#NEW
+
+==Restricted polymorphism==
+
+Above, all Actions were either of
+- **monomorphic**: defined for one Kind
+- **polymorphic**: defined for all Kinds
+
+
+To make this scale up for new Kinds, we can refine this to 
+**restricted polymorphism**: defined for Kinds of a certain **class**
+
+
+The notion of class uses the Curry-Howard isomorphism as follows:
+- a class is a **predicate** of Kinds --- i.e. a type depending of Kinds
+- a Kind is in a class if there is a proof object of this type
+
+
+#NEW
+
+===Example: classes for switching and dimming===
+
+We modify the smart house grammar:
+```
+cat
+  Switchable Kind ;
+  Dimmable   Kind ;
+fun
+  switchable_light : Switchable light ;
+  switchable_fan   : Switchable fan ;
+  dimmable_light   : Dimmable light ;
+
+  switchOn : (k : Kind) -> Switchable k -> Action k ;
+  dim      : (k : Kind) -> Dimmable k -> Action k ;
+```
+Classes for new actions can be added incrementally. 
+
+
+
+#NEW
+
+==Variable bindings==
+
+#Lsecbinding
+
+Mathematical notation and programming languages have
+expressions that **bind** variables. 
+
+Example: universal quantifier formula
+```
+  (All x)B(x)
+```
+The variable ``x`` has a **binding** ``(All x)``, and
+occurs **bound** in the **body** ``B(x)``.
+
+Examples from informal mathematical language:
+```
+  for all x, x is equal to x
+
+  the function that for any numbers x and y returns the maximum of x+y
+  and x*y
+
+  Let x be a natural number. Assume that x is even. Then x + 3 is odd.
+```
+
+
+
+#NEW
+
+===Higher-order abstract syntax===
+
+Abstract syntax can use functions as arguments:
+```
+  cat Ind ; Prop ;
+  fun All : (Ind -> Prop) -> Prop
+```
+where ``Ind`` is the type of individuals and ``Prop``,
+the type of propositions. 
+
+Let us add an equality predicate
+```
+  fun Eq : Ind -> Ind -> Prop
+```
+Now we can form the tree
+```
+  All (\x -> Eq x x)
+```
+which we want to relate to the ordinary notation
+```
+  (All x)(x = x)
+```
+In **higher-order abstract syntax** (HOAS), all variable bindings are
+expressed using higher-order syntactic constructors.
+
+
+#NEW
+
+===Higher-order abstract syntax: linearization===
+
+HOAS has proved to be useful in the semantics and computer implementation of
+variable-binding expressions. 
+
+How do we relate HOAS to the concrete syntax?
+
+In GF, we write
+```
+  fun All : (Ind -> Prop) -> Prop
+  lin All B = {s = "(" ++ "All" ++ B.$0 ++ ")" ++ B.s}
+```
+General rule: if an argument type of a ``fun`` function is
+a function type ``A -> C``, the linearization type of
+this argument is the linearization type of ``C``
+together with a new field ``$0 : Str``. 
+
+The argument ``B`` thus has the linearization type
+```
+  {s : Str ; $0 : Str},
+```
+If there are more bindings, we add ``$1``, ``$2``, etc.
+
+
+#NEW
+
+===Eta expansion===
+
+To make sense of linearization, syntax trees must be
+**eta-expanded**: for any function of type
+```
+  A -> B
+```
+an eta-expanded syntax tree has the form
+```
+  \x -> b
+```
+where ``b : B`` under the assumption ``x : A``.
+
+Given the linearization rule
+```
+  lin Eq a b = {s = "(" ++ a.s ++ "=" ++ b.s ++ ")"}
+```
+the linearization of the tree 
+```
+  \x -> Eq x x
+```
+is the record
+```
+  {$0 = "x", s = ["( x = x )"]}
+```
+Then we can compute the linearization of the formula,
+```
+  All (\x -> Eq x x)  --> {s = "[( All x ) ( x = x )]"}.
+```
+The linearization of the variable ``x`` is, 
+"automagically", the string ``"x"``.
+
+
+
+#NEW
+
+===Parsing variable bindings===
+
+GF can treat any one-word string as a variable symbol.
+```
+  > p -cat=Prop "( All x ) ( x = x )"
+  All (\x -> Eq x x)
+```
+Variables must be bound if they are used:
+```
+  > p -cat=Prop "( All x ) ( x = y )"
+  no tree found
+```
+
+
+
+
+#NEW
+
+===Exercises on variable bindings===
+
+1. Write an abstract syntax of the whole
+**predicate calculus**, with the
+**connectives** "and", "or", "implies", and "not", and the
+**quantifiers** "exists" and "for all". Use higher-order functions
+to guarantee that unbounded variables do not occur.
+
+2. Write a concrete syntax for your favourite
+notation of predicate calculus. Use Latex as target language
+if you want nice output. You can also try producing boolean
+expressions of some programming language. Use as many parenthesis as you need to
+guarantee non-ambiguity.
+
+
+#NEW
+
+==Semantic definitions==
+
+#Lsecdefdef
+
+The ``fun`` judgements of GF are declarations of functions, giving their types.
+
+Can we **compute** ``fun`` functions?
+
+Mostly we are not interested, since functions are seen as constructors,
+i.e. data forms - as usual with
+```
+  fun Zero : Nat ;
+  fun Succ : Nat -> Nat ;
+```
+But it is also possible to give **semantic definitions** to functions.
+The key word is ``def``:
+```
+  fun one : Nat ;
+  def one = Succ Zero ;
+
+  fun twice : Nat -> Nat ;
+  def twice x = plus x x ;
+
+  fun plus : Nat -> Nat -> Nat ;
+  def 
+    plus x Zero = x ;
+    plus x (Succ y) = Succ (Sum x y) ;
+```
+
+#NEW
+
+===Computing a tree===
+
+Computation: follow a chain of definition until no definition
+can be applied,
+```
+  plus one one -->
+  plus (Succ Zero) (Succ Zero) -->
+  Succ (plus (Succ Zero) Zero) -->
+  Succ (Succ Zero)
+```
+Computation in GF is performed with the ``put_term`` command and the
+``compute`` transformation, e.g.
+```
+  > parse -tr "1 + 1" | put_term -transform=compute -tr | l
+  plus one one
+  Succ (Succ Zero)
+  s(s(0))
+```
+
+
+#NEW
+
+===Definitional equality===
+
+Two trees are definitionally equal if they compute into the same tree.
+
+Definitional equality does not guarantee sameness of linearization:
+```
+  plus one one     ===> 1 + 1
+  Succ (Succ Zero) ===> s(s(0))
+```
+The main use of this concept is in type checking: sameness of types.
+
+Thus e.g. the following types are equal
+```
+  Less Zero one
+  Less Zero (Succ Zero))
+```
+so that an object of one also is an object of the other.
+
+
+
+#NEW
+
+===Judgement forms for constructors===
+
+The judgement form ``data`` tells that a category has 
+certain functions as constructors:
+```
+  data Nat = Succ | Zero ;
+```
+The type signatures of constructors are given separately, 
+```
+  fun Zero : Nat ;
+  fun Succ : Nat -> Nat ;
+```
+There is also a shorthand:
+```
+  data Succ : Nat -> Nat ;    ===   fun Succ : Nat -> Nat ;
+                                    data Nat = Succ ;
+```
+Notice: in ``def`` definitions, identifier patterns not
+marked as ``data`` will be treated as variables.
+
+
+#NEW
+
+===Exercises on semantic definitions===
+
+1. Implement an interpreter of a small functional programming
+language with natural numbers, lists, pairs, lambdas, etc. Use higher-order
+abstract syntax with semantic definitions. As concrete syntax, use
+your favourite programming language.
+
+2. There is no termination checking for ``def`` definitions. 
+Construct an examples that makes type checking loop.
+Type checking can be invoked with ``put_term -transform=solve``.
+
+
+
+#NEW
+
+==Lesson 6: Grammars of formal languages==
+
+
+#Lchapseven
+
+Goals:
+- write grammars for formal languages (mathematical notation, programming languages)
+- interface between formal and natural langauges
+- implement a compiler by using GF
+
+
+#NEW
+
+===Arithmetic expressions===
+
+We construct a calculator with addition, subtraction, multiplication, and
+division of integers. 
+```
+  abstract Calculator = {
+
+  cat Exp ;
+
+  fun
+    EPlus, EMinus, ETimes, EDiv : Exp -> Exp -> Exp ;
+    EInt : Int -> Exp ;
+  }
+```
+The category ``Int`` is a built-in category of
+integers. Its syntax trees **integer literals**, i.e.
+sequences of digits:
+```
+  5457455814608954681 : Int
+```
+These are the only objects of type ``Int``:
+grammars are not allowed to declare functions with ``Int`` as value type.
+
+
+#NEW
+
+===Concrete syntax: a simple approach===
+
+We begin with a
+concrete syntax that always uses parentheses around binary
+operator applications: 
+```
+  concrete CalculatorP of Calculator = {
+
+  lincat 
+    Exp = SS ;
+  lin
+    EPlus  = infix "+" ;
+    EMinus = infix "-" ;
+    ETimes = infix "*" ;
+    EDiv   = infix "/" ;
+    EInt i = i ;
+
+  oper
+    infix : Str -> SS -> SS -> SS = \f,x,y -> 
+      ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
+  }
+```
+Now we have
+```
+  > linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+  ( 2 + ( 3 * 4 ) )
+```
+First problems: 
+- to get rid of superfluous spaces and 
+- to recognize integer literals in the parser
+
+
+#NEW
+
+==Lexing and unlexing==
+
+#Lseclexing
+
+The input of parsing in GF is not just a string, but a list of
+**tokens**, returned by a **lexer**.
+
+The default lexer in GF returns chunks separated by spaces:
+```
+  "(12 + (3 * 4))"  ===>  "(12", "+", "(3". "*". "4))"
+```
+The proper way would be
+```
+  "(", "12", "+", "(", "3", "*", "4", ")", ")"
+```
+Moreover, the tokens ``"12"``, ``"3"``, and ``"4"`` should be recognized as
+integer literals - they cannot be found in the grammar.
+
+
+#NEW
+
+Lexers are invoked by flags to the command ``put_string = ps``.
+```
+  > put_string -lexcode "(2 + (3 * 4))"
+  ( 2 + ( 3 * 4 ) )
+```
+This can be piped into a parser, as usual:
+```
+  > ps -lexcode "(2 + (3 * 4))" | parse
+  EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+```
+In linearization, we use a corresponding **unlexer**:
+```
+  > linearize EPlus (EInt 2) (ETimes (EInt 3) (EInt 4)) | ps -unlexcode
+  (2 + (3 * 4))
+```
+
+
+#NEW
+
+===Most common lexers and unlexers===
+
+  || lexer       | unlexer        | description ||
+  | ``chars``    | ``unchars``    | each character is a token
+  | ``lexcode``  | ``unlexcode``  | program code conventions (uses Haskell's lex)
+  | ``lexmixed`` | ``unlexmixed`` | like text, but between $ signs like code
+  | ``lextext``  | ``unlextext``  | with conventions on punctuation and capitals
+  | ``words``    | ``unwords``    | (default) tokens separated by space characters 
+
+%TODO: also on alphabet encodings - although somewhere else
+
+
+#NEW
+
+==Precedence and fixity==
+
+Arithmetic expressions should be unambiguous. If we write
+```
+  2 + 3 * 4
+```
+it should be parsed as one, but not both, of
+```
+  EPlus (EInt 2) (ETimes (EInt 3) (EInt 4))
+  ETimes (EPlus (EInt 2) (EInt 3)) (EInt 4)
+```
+We choose the former tree, because
+multiplication has **higher precedence** than addition.
+
+To express the latter tree, we have to use parentheses:
+```
+  (2 + 3) * 4
+```
+The usual precedence rules:
+- Integer constants and expressions in parentheses have the highest precedence.
+- Multiplication and division have equal precedence, lower than the highest
+  but higher than addition and subtraction, which are again equal.
+- All the four binary operations are **left-associative**:
+  ``1 + 2 + 3`` means the same as ``(1 + 2) + 3``.
+
+
+
+#NEW
+
+===Precedence as a parameter===
+
+Precedence can be made into an inherent feature of expressions:
+```
+  oper
+    Prec : PType = Ints 2 ;
+    TermPrec : Type = {s : Str ; p : Prec} ;
+
+    mkPrec : Prec -> Str -> TermPrec = \p,s -> {s = s ; p = p} ;
+
+  lincat 
+    Exp = TermPrec ;
+```
+Notice ``Ints 2``: a parameter type, whose values are the integers
+``0,1,2``. 
+
+Using precedence levels: compare the inherent precedence of an 
+expression with the expected precedence.
+- if the inherent precedence is lower than the expected precedence,
+  use parentheses
+- otherwise, no parentheses are needed
+
+
+This idea is encoded in the operation
+```
+  oper usePrec : TermPrec -> Prec -> Str = \x,p ->
+    case lessPrec x.p p of {
+      True  => "(" x.s ")" ;
+      False => x.s
+    } ;
+```
+(We use ``lessPrec`` from ``lib/prelude/Formal``.)
+
+
+
+#NEW
+
+===Fixities===
+
+We can define left-associative infix expressions:
+```
+  infixl : Prec -> Str -> (_,_ : TermPrec) -> TermPrec = \p,f,x,y ->
+    mkPrec p (usePrec x p ++ f ++ usePrec y (nextPrec p)) ;
+```
+Constant-like expressions (the highest level):
+```
+  constant : Str -> TermPrec = mkPrec 2 ;
+```
+All these operations can be found in ``lib/prelude/Formal``,
+which has 5 levels.
+
+Now we can write the whole concrete syntax of ``Calculator`` compactly:
+```
+  concrete CalculatorC of Calculator = open Formal, Prelude in {
+
+  flags lexer = codelit ; unlexer = code ; startcat = Exp ;
+
+  lincat Exp = TermPrec ;
+
+  lin
+    EPlus  = infixl 0 "+" ;
+    EMinus = infixl 0 "-" ;
+    ETimes = infixl 1 "*" ;
+    EDiv   = infixl 1 "/" ;
+    EInt i = constant i.s ;
+  }
+```
+
+
+#NEW
+
+===Exercises on precedence===
+
+1. Define non-associative and right-associative infix operations
+analogous to ``infixl``.
+
+2. Add a constructor that puts parentheses around expressions
+to raise their precedence, but that is eliminated by a ``def`` definition.
+Test parsing with and without a pipe to ``pt -transform=compute``.
+
+
+
+#NEW
+
+==Code generation as linearization==
+
+Translate arithmetic (infix) to JVM (postfix):
+```
+  2 + 3 * 4
+
+    ===>
+
+  iconst 2 : iconst 3 ; iconst 4 ; imul ; iadd
+```
+Just give linearization rules for JVM:
+```
+  lin
+    EPlus  = postfix "iadd" ;
+    EMinus = postfix "isub" ;
+    ETimes = postfix "imul" ;
+    EDiv   = postfix "idiv" ;
+    EInt i = ss ("iconst" ++ i.s) ;
+  oper
+    postfix : Str -> SS -> SS -> SS = \op,x,y -> 
+      ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
+```
+
+
+#NEW
+
+===Programs with variables===
+
+A **straight code** programming language, with
+**initializations** and **assignments**:
+```
+  int x = 2 + 3 ;  
+  int y = x + 1 ; 
+  x = x + 9 * y ;
+```
+We define programs by the following constructors:
+```
+  fun
+    PEmpty : Prog ;
+    PInit  : Exp -> (Var -> Prog) -> Prog ;
+    PAss   : Var -> Exp  -> Prog  -> Prog ;
+```
+``PInit`` uses higher-order abstract syntax for making the 
+initialized variable available in the **continuation** of the program. 
+
+The abstract syntax tree for the above code is
+```
+  PInit (EPlus (EInt 2) (EInt 3)) (\x -> 
+    PInit (EPlus (EVar x) (EInt 1)) (\y -> 
+      PAss x (EPlus (EVar x) (ETimes (EInt 9) (EVar y))) 
+        PEmpty))
+```
+No uninitialized variables are allowed - there are no constructors for ``Var``! 
+But we do have the rule
+```
+  fun EVar : Var -> Exp ;
+```
+The rest of the grammar is just the same as for arithmetic expressions
+#Rsecprecedence. The best way to implement it is perhaps by writing a
+module that extends the expression module. The most natural start category
+of the extension is ``Prog``.
+
+
+#NEW
+
+===Exercises on code generation===
+
+1. Define a C-like concrete syntax of the straight-code language.
+
+2. Extend the straight-code language to expressions of type ``float``.
+To guarantee type safety, you can define a category ``Typ`` of types, and
+make ``Exp`` and ``Var`` dependent on ``Typ``. Basic floating point expressions
+can be formed from literal of the built-in GF type ``Float``. The arithmetic
+operations should be made polymorphic (as #Rsecpolymorphic).
+
+3. Extend JVM generation to the straight-code language, using
+two more instructions
+- ``iload`` //x//, which loads the value of the variable //x//
+- ``istore`` //x// which stores a value to the variable //x//
+
+
+Thus the code for the example in the previous section is
+```
+  iconst 2 ; iconst 3 ; iadd ; istore x ;
+  iload x ; iconst 1 ; iadd ; istore y ;
+  iload x ; iconst 9 ; iload y ; imul ; iadd ; istore x ;
+```
+
+4. If you made the exercise of adding floating point numbers to
+the language, you can now cash out the main advantage of type checking
+for code generation: selecting type-correct JVM instructions. The floating
+point instructions are precisely the same as the integer one, except that
+the prefix is ``f`` instead of ``i``, and that ``fconst`` takes floating
+point literals as arguments.
+
+
+
+#NEW
+
+=Lesson 7: Embedded grammars=
+
+#Lchapeight
+
+Goals:
+- use grammars as parts of programs written in Haskell and JavaScript
+- implement stand-alone question-answering systems and translators based on
+  GF grammars
+- generate language models for speech recognition from GF grammars
+
+
+ 
+#NEW
+
+==Functionalities of an embedded grammar format==
+
+GF grammars can be used as parts of programs written in other programming
+languages, to be called **host languages**.
+This facility is based on several components:
+- PGF: a portable format for multilingual GF grammars
+- a PGF interpreter written in the host language
+- a library in the host language that enables calling the interpreter
+- a way to manipulate abstract syntax trees in the host language
+
+
+
+
+#NEW
+
+==The portable grammar format==
+
+The portable format is called PGF, "Portable Grammar Format".
+
+This format is produced by using GF as batch compiler, with the option ``-make``, 
+from the operative system shell:
+```
+  % gf -make SOURCE.gf
+```
+PGF is the recommended format in 
+which final grammar products are distributed, because they
+are stripped from superfluous information and can be started and applied
+faster than sets of separate modules.
+
+Application programmers have never any need to read or modify PGF files. 
+
+PGF thus plays the same role as machine code in 
+general-purpose programming (or bytecode in Java).
+
+
+#NEW
+
+===Haskell: the EmbedAPI module===
+
+The Haskell API contains (among other things) the following types and functions:
+```
+  readPGF   :: FilePath -> IO PGF
+
+  linearize :: PGF -> Language -> Tree -> String
+  parse     :: PGF -> Language -> Category -> String -> [Tree]
+
+  linearizeAll     :: PGF -> Tree -> [String]
+  linearizeAllLang :: PGF -> Tree -> [(Language,String)]
+
+  parseAll     :: PGF -> Category -> String -> [[Tree]]
+  parseAllLang :: PGF -> Category -> String -> [(Language,[Tree])]
+
+  languages    :: PGF -> [Language]
+  categories   :: PGF -> [Category]
+  startCat     :: PGF -> Category
+```
+This is the only module that needs to be imported in the Haskell application.
+It is available as a part of the GF distribution, in the file
+``src/PGF.hs``.
+
+
+
+#NEW
+
+===First application: a translator===
+
+Let us first build a stand-alone translator, which can translate
+in any multilingual grammar between any languages in the grammar.
+```
+module Main where
+
+import PGF
+import System (getArgs)
+
+main :: IO () 
+main = do
+  file:_ <- getArgs
+  gr     <- readPGF file
+  interact (translate gr)
+
+translate :: PGF -> String -> String
+translate gr s = case parseAllLang gr (startCat gr) s of
+  (lg,t:_):_ -> unlines [linearize gr l t | l <- languages gr, l /= lg]
+  _ -> "NO PARSE"
+```
+To run the translator, first compile it by
+```
+  % ghc -make -o trans Translator.hs 
+```
+For this, you need the Haskell compiler [GHC http://www.haskell.org/ghc].
+
+
+#NEW
+
+===Producing PGF for the translator===
+
+Then produce a PGF file. For instance, the ``Food`` grammar set can be 
+compiled as follows:
+```
+  % gf -make FoodEng.gf FoodIta.gf
+```
+This produces the file ``Food.pgf`` (its name comes from the abstract syntax).
+
+The Haskell library function ``interact`` makes the ``trans`` program work
+like a Unix filter, which reads from standard input and writes to standard
+output. Therefore it can be a part of a pipe and read and write files.
+The simplest way to translate is to ``echo`` input to the program:
+```
+  % echo "this wine is delicious" | ./trans Food.pgf
+  questo vino è delizioso
+```
+The result is given in all languages except the input language.
+
+%TODO convert the output to UTF8
+
+
+#NEW
+
+===A translator loop===
+
+To avoid starting the translator over and over again:
+change ``interact`` in the main function to ``loop``, defined as
+follows:
+```
+loop :: (String -> String) -> IO ()
+loop trans = do 
+  s <- getLine
+  if s == "quit" then putStrLn "bye" else do  
+    putStrLn $ trans s
+    loop trans
+```
+The loop keeps on translating line by line until the input line
+is ``quit``.
+
+
+
+#NEW
+
+===A question-answer system===
+
+#Lsecmathprogram
+
+The next application is also a translator, but it adds a
+**transfer** component - a function that transforms syntax trees.
+
+The transfer function we use is one that computes a question into an answer.
+
+The program accepts simple questions about arithmetic and answers
+"yes" or "no" in the language in which the question was made:
+```
+  Is 123 prime?
+  No.
+  77 est impair ?
+  Oui.
+```
+We change the pure translator by giving
+the ``translate`` function the transfer as an extra argument:
+```
+  translate :: (Tree -> Tree) -> PGF -> String -> String
+```
+Ordinary translation as a special case where
+transfer is the identity function (``id`` in Haskell).
+
+To reply in the //same// language as the question:
+```
+  translate tr gr = case parseAllLang gr (startCat gr) s of
+    (lg,t:_):_ -> linearize gr lg (tr t)
+    _ -> "NO PARSE"
+```
+
+
+#NEW
+
+===Abstract syntax of the query system===
+
+Input: abstract syntax judgements
+```
+abstract Query = {
+
+  flags startcat=Question ;
+
+  cat 
+    Answer ; Question ; Object ;
+
+  fun 
+    Even   : Object -> Question ;
+    Odd    : Object -> Question ;
+    Prime  : Object -> Question ;
+    Number : Int -> Object ;
+
+    Yes : Answer ;
+    No  : Answer ;
+}
+```
+
+
+#NEW
+
+===Exporting GF datatypes to Haskell===
+
+To make it easy to define a transfer function, we export the
+abstract syntax to a system of Haskell datatypes:
+```
+  % gf --output-format=haskell Query.pgf
+```
+It is also possible to produce the Haskell file together with PGF, by
+```
+  % gf -make --output-format=haskell QueryEng.gf
+```
+The result is a file named ``Query.hs``, containing a 
+module named ``Query``. 
+
+
+#NEW
+
+Output: Haskell definitions
+```
+module Query where
+import PGF
+
+data GAnswer =
+   GYes 
+ | GNo 
+
+data GObject = GNumber GInt 
+
+data GQuestion =
+   GPrime GObject 
+ | GOdd GObject 
+ | GEven GObject 
+
+newtype GInt = GInt Integer
+```
+All type and constructor names are prefixed with a ``G`` to prevent clashes.
+
+The Haskell module name is the same as the abstract syntax name.
+
+
+#NEW
+
+===The question-answer function===
+
+Haskell's type checker guarantees that the functions are well-typed also with
+respect to GF. 
+```
+answer :: GQuestion -> GAnswer
+answer p = case p of
+  GOdd x   -> test odd x
+  GEven x  -> test even x
+  GPrime x -> test prime x
+
+value :: GObject -> Int
+value e = case e of
+  GNumber (GInt i) -> fromInteger i
+
+test :: (Int -> Bool) -> GObject -> GAnswer
+test f x = if f (value x) then GYes else GNo
+```
+
+
+#NEW
+
+===Converting between Haskell and GF trees===
+
+The generated Haskell module also contains
+```
+class Gf a where 
+  gf :: a -> Tree
+  fg :: Tree -> a
+
+instance Gf GQuestion where
+  gf (GEven x1) = DTr [] (AC (CId "Even")) [gf x1]
+  gf (GOdd x1) = DTr [] (AC (CId "Odd")) [gf x1]
+  gf (GPrime x1) = DTr [] (AC (CId "Prime")) [gf x1]
+  fg t =
+    case t of
+      DTr [] (AC (CId "Even")) [x1] -> GEven (fg x1)
+      DTr [] (AC (CId "Odd")) [x1] -> GOdd (fg x1)
+      DTr [] (AC (CId "Prime")) [x1] -> GPrime (fg x1)
+      _ -> error ("no Question " ++ show t)
+```
+For the programmer, it is enougo to know:
+- all GF names are in Haskell prefixed with ``G``
+- ``gf`` translates from Haskell objects to GF trees
+- ``fg`` translates from GF trees to Haskell objects
+
+
+
+#NEW
+
+===Putting it all together: the transfer definition===
+
+```
+module TransferDef where
+
+import PGF (Tree)
+import Query   -- generated from GF
+
+transfer :: Tree -> Tree
+transfer = gf . answer . fg
+
+answer :: GQuestion -> GAnswer
+answer p = case p of
+  GOdd x   -> test odd x
+  GEven x  -> test even x
+  GPrime x -> test prime x
+
+value :: GObject -> Int
+value e = case e of
+  GNumber (GInt i) -> fromInteger i
+
+test :: (Int -> Bool) -> GObject -> GAnswer
+test f x = if f (value x) then GYes else GNo
+
+prime :: Int -> Bool
+prime x = elem x primes where
+  primes = sieve [2 .. x]
+  sieve (p:xs) = p : sieve [ n | n <- xs, n `mod` p > 0 ]
+  sieve [] = []
+```
+
+
+#NEW
+
+===Putting it all together: the Main module===
+
+Here is the complete code in the Haskell file ``TransferLoop.hs``.
+```
+module Main where
+
+import PGF
+import TransferDef (transfer)
+
+main :: IO () 
+main = do
+  gr <- readPGF "Query.pgf"
+  loop (translate transfer gr)
+
+loop :: (String -> String) -> IO ()
+loop trans = do 
+  s <- getLine
+  if s == "quit" then putStrLn "bye" else do  
+    putStrLn $ trans s
+    loop trans
+
+translate :: (Tree -> Tree) -> PGF -> String -> String
+translate tr gr s = case parseAllLang gr (startCat gr) s of
+  (lg,t:_):_ -> linearize gr lg (tr t)
+  _ -> "NO PARSE"
+```
+
+
+
+#NEW
+
+===Putting it all together: the Makefile===
+
+To automate the production of the system, we write a ``Makefile`` as follows:
+```
+all:
+        gf -make --output-format=haskell QueryEng
+        ghc --make -o ./math TransferLoop.hs
+        strip math
+```
+(The empty segments starting the command lines in a Makefile must be tabs.)
+Now we can compile the whole system by just typing 
+```
+  make
+```
+Then you can run it by typing
+```
+  ./math
+```
+Just to summarize, the source of the application consists of the following files:
+```
+  Makefile         -- a makefile
+  Math.gf          -- abstract syntax
+  Math???.gf       -- concrete syntaxes
+  TransferDef.hs   -- definition of question-to-answer function
+  TransferLoop.hs  -- Haskell Main module
+```
+
+#NEW
+
+==Web server applications==
+
+PGF files can be used in web servers, for which there is a Haskell library included
+in ``src/server/``. How to build a server for tasks like translators is explained 
+in the [``README`` ../src/server/README] file in that directory. 
+
+One of the servers that can be readily built with the library (without any
+programming required) is **fridge poetry magnets**. It is an application that
+uses an incremental parser to suggest grammatically correct next words. Here
+is an example of its application to the ``Foods`` grammars.
+
+[food-magnet.png]
+
+
+#NEW
+
+==JavaScript applications==
+
+JavaScript is a programming language that has interpreters built in in most
+web browsers. It is therefore usable for client side web programs, which can even
+be run without access to the internet. The following figure shows a JavaScript
+program compiled from GF grammars as run on an iPhone.
+
+[iphone.jpg]
+
+
+#NEW
+
+===Compiling to JavaScript===
+
+JavaScript is one of the output formats of the GF batch compiler. Thus the following
+command generates a JavaScript file from two ``Food`` grammars.
+```
+  % gf -make --output-format=js FoodEng.gf FoodIta.gf
+```
+The name of the generated file is ``Food.js``, derived from the top-most abstract
+syntax name. This file contains the multilingual grammar as a JavaScript object.
+
+
+#NEW
+
+===Using the JavaScript grammar===
+
+To perform parsing and linearization, the run-time library
+``gflib.js`` is used. It is included in ``GF/lib/javascript/``, together with
+some other JavaScript and HTML files; these files can be used 
+as templates for building applications.
+
+An example of usage is 
+[``translator.html`` http://grammaticalframework.org:41296], 
+which is in fact initialized with
+a pointer to the Food grammar, so that it provides translation between the English
+and Italian grammars:
+
+[food-js.png]
+
+The grammar must have the name ``grammar.js``. The abstract syntax and start 
+category names in ``translator.html`` must match the ones in the grammar.
+With these changes, the translator works for any multilingual grammar.
+
+
+
+
+
+#NEW
+
+==Language models for speech recognition==
+
+The standard way of using GF in speech recognition is by building
+**grammar-based language models**. 
+
+GF supports several formats, including
+GSL, the formatused in the [Nuance speech recognizer www.nuance.com].
+
+GSL is produced from GF by running ``gf`` with the flag
+``--output-format=gsl``. 
+
+Example: GSL  generated from ``FoodsEng.gf``.
+```
+  % gf -make --output-format=gsl FoodsEng.gf
+  % more FoodsEng.gsl
+
+  ;GSL2.0
+  ; Nuance speech recognition grammar for FoodsEng
+  ; Generated by GF
+
+  .MAIN Phrase_cat
+
+  Item_1 [("that" Kind_1) ("this" Kind_1)]
+  Item_2 [("these" Kind_2) ("those" Kind_2)]
+  Item_cat [Item_1 Item_2]
+  Kind_1 ["cheese" "fish" "pizza" (Quality_1 Kind_1)
+          "wine"]
+  Kind_2 ["cheeses" "fish" "pizzas"
+          (Quality_1 Kind_2) "wines"]
+  Kind_cat [Kind_1 Kind_2]
+  Phrase_1 [(Item_1 "is" Quality_1)
+            (Item_2 "are" Quality_1)]
+  Phrase_cat Phrase_1
+  
+  Quality_1 ["boring" "delicious" "expensive"
+             "fresh" "italian" ("very" Quality_1) "warm"]
+  Quality_cat Quality_1
+```
+
+
+#NEW
+
+===More speech recognition grammar formats===
+
+Other formats available via the ``--output-format`` flag include:
+
+    || Format            | Description ||
+    | ``gsl``            | Nuance GSL speech recognition grammar
+    | ``jsgf``           | Java Speech Grammar Format (JSGF)
+    | ``jsgf_sisr_old``  | JSGF with semantic tags in SISR  WD 20030401 format
+    | ``srgs_abnf``      | SRGS ABNF format
+    | ``srgs_xml``       | SRGS XML format
+    | ``srgs_xml_prob``  | SRGS XML format, with weights
+    | ``slf``            | finite automaton in the HTK SLF format
+    | ``slf_sub``        | finite automaton with sub-automata in HTK SLF
+
+All currently available formats can be seen with ``gf --help``.
+
+
diff --git a/doc/tutorial/iphone.jpg b/doc/tutorial/iphone.jpg
new file mode 100644
Binary files /dev/null and b/doc/tutorial/iphone.jpg differ
diff --git a/doc/tutorial/myparse.png b/doc/tutorial/myparse.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/myparse.png differ
diff --git a/doc/tutorial/mytree.png b/doc/tutorial/mytree.png
new file mode 100644
Binary files /dev/null and b/doc/tutorial/mytree.png differ
diff --git a/doc/vr.html b/doc/vr.html
deleted file mode 100644
--- a/doc/vr.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>Library-Based Grammar Engineering</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Library-Based Grammar Engineering</H1>
-<FONT SIZE="4">
-<I>VR Project 2006-2008</I><BR>
-</FONT></CENTER>
-
-<H1>Staff</H1>
-<P>
-Lars Borin (co-leader)
-</P>
-<P>
-Robin Cooper (co-leader)
-</P>
-<P>
-Aarne Ranta (project responsible)
-</P>
-<P>
-Sibylle Schupp (co-leader)
-</P>
-<H1>Publications</H1>
-<P>
-Ali El Dada, MSc Thesis
-</P>
-<P>
-Muhammad Humayoun, MSc Thesis
-</P>
-<P>
-Janna Khegai,
-Language Engineering in GF, PhD Thesis, Chalmers. 2006.
-</P>
-<H1>Links</H1>
-<P>
-<A HREF="http://www.cs.chalmers.se/~aarne/GF/">GF</A>
-</P>
-<P>
-<A HREF="http://www.cs.chalmers.se/~markus/FM/">Functional Morphology</A>
-</P>
-
-<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml vr.txt -->
-</BODY></HTML>
diff --git a/doc/vr.txt b/doc/vr.txt
deleted file mode 100644
--- a/doc/vr.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Library-Based Grammar Engineering
-VR Project 2006-2008
-
-
-=Staff=
-
-Lars Borin (co-leader)
-
-Robin Cooper (co-leader)
-
-Aarne Ranta (project responsible)
-
-Sibylle Schupp (co-leader)
-
-
-
-=Publications=
-
-Ali El Dada, MSc Thesis
-
-Muhammad Humayoun, MSc Thesis
-
-Janna Khegai,
-Language Engineering in GF, PhD Thesis, Chalmers. 2006.
-
-
-
-=Links=
-
-[GF http://www.cs.chalmers.se/~aarne/GF/]
-
-[Functional Morphology http://www.cs.chalmers.se/~markus/FM/]
diff --git a/download/index-3.1.6.html b/download/index-3.1.6.html
new file mode 100644
--- /dev/null
+++ b/download/index-3.1.6.html
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<TITLE>Grammatical Framework Download and Installation</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>Grammatical Framework Download and Installation</H1>
+<FONT SIZE="4">
+<I>Version 3.1.6, 23 April 2010</I><BR>
+</FONT></CENTER>
+
+<H2>Latest developer code</H2>
+<P>
+<A HREF="../doc/darcs.html">GF darcs repository</A>
+</P>
+<H2>Latest release</H2>
+<P>
+GF 3.1.6 released 23 April 2010.
+</P>
+<UL>
+<LI>MacOS X installer package:
+  <A HREF="gf-3.1.6-leopard.pkg"><CODE>gf-3.1.6-leopard.pkg</CODE></A> (7.7MB)
+<LI>MacOS X (gzipped executable, Leopard and Snow Leopard):
+  <A HREF="gf-3.1.6-bin-intel-mac.gz"><CODE>gf-3.1.6-bin-intel-mac.gz</CODE></A> (1.9MB)
+<LI>Windows (zipped executable):
+  <A HREF="gf-3.1.6-bin-i486-windows.zip"><CODE>gf-3.1.6-bin-i486-windows.zip</CODE></A>
+  (1.6 MB)
+<LI>Ubuntu Linux (gzipped executable): 
+  <A HREF="gf-3.1.6-bin-i486-linux.gz"><CODE>gf-3.1.6-bin-i486-linux.gz</CODE></A>
+  (1.7 MB)
+<LI>compiled library package:
+  <A HREF="gf-3.1.6-lib.tar.gz"><CODE>gf-3.1.6-lib.tar.gz</CODE></A>
+  (4.4 MB)
+<LI>full source package (GF system, libraries, examples, documentation):
+  <A HREF="gf-3.1.6-src.tar.gz"><CODE>gf-3.1.6-src.tar.gz</CODE></A>
+  (11 MB)
+<P></P>
+GF is also on <A HREF="http://hackage.haskell.org/package/gf">Hackage</A>
+</UL>
+
+<P>
+What's new? See the <A HREF="release-3.1.6.html">release notes</A>.
+</P>
+<H2>Previous releases</H2>
+<P>
+<A HREF="old-index.html">Follow this link</A>.
+</P>
+<H2>Installation instructions</H2>
+<P>
+The Windows package is installed by just unpacking it anywhere. 
+It finds the libraries relative to the <CODE>.exe</CODE> file.
+</P>
+<P>
+To install a binary package for MacOS X or Linux: uncompress the executable and
+put it somewhere on your path, renaming it to just <CODE>gf</CODE>. For instance:
+</P>
+<PRE>
+    gunzip gf-bin-[version].gz
+    sudo mv gf-bin-[version] /usr/local/bin/gf
+</PRE>
+<P>
+To install the libraries (if done separately), unpack them in the place to which your
+<CODE>GF_LIB_PATH</CODE> points.
+</P>
+<PRE>
+    cd $GF_LIB_PATH
+    gtar xvfz gf-lib-[VERSION].tgz
+</PRE>
+<P>
+If this variable hasn't been defined, it is useful define it, e.g.
+</P>
+<PRE>
+    export GF_LIB_PATH=/usr/local/lib/gf/
+</PRE>
+<P></P>
+<P>
+To compile and install from source on Mac or Linux, do:
+</P>
+<PRE>
+    tar xvfz gf-[VERSION].tgz
+    cd GF/src
+    runghc Setup configure --user
+    runghc Setup build
+    runghc Setup install
+</PRE>
+<P>
+The last command must be prefixed by <CODE>sudo</CODE>, if the installation is outside
+user-writeable area.
+</P>
+
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml index.txt -->
+</BODY></HTML>
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+try {
+var pageTracker = _gat._getTracker("UA-7811807-3");
+pageTracker._trackPageview();
+} catch(err) {}</script>
diff --git a/download/index-3.1.6.t2t b/download/index-3.1.6.t2t
new file mode 100644
--- /dev/null
+++ b/download/index-3.1.6.t2t
@@ -0,0 +1,72 @@
+Grammatical Framework Download and Installation
+Version 3.1.6, 23 April 2010
+
+
+==Latest developer code==
+
+[GF darcs repository  ../doc/darcs.html]
+
+==Latest release==
+
+GF 3.1.6 released 23 April 2010.
+- MacOS X installer package:
+  [``gf-3.1.6-leopard.pkg`` gf-3.1.6-leopard.pkg] (7.7MB)
+- MacOS X (gzipped executable, Leopard and Snow Leopard):
+  [``gf-3.1.6-bin-intel-mac.gz`` gf-3.1.6-bin-intel-mac.gz] (1.9MB)
+- Windows (zipped executable):
+  [``gf-3.1.6-bin-i486-windows.zip`` gf-3.1.6-bin-i486-windows.zip]
+  (1.6 MB)
+- Ubuntu Linux (gzipped executable): 
+  [``gf-3.1.6-bin-i486-linux.gz`` gf-3.1.6-bin-i486-linux.gz]
+  (1.7 MB)
+- compiled library package:
+  [``gf-3.1.6-lib.tar.gz`` gf-3.1.6-lib.tar.gz]
+  (4.4 MB)
+- full source package (GF system, libraries, examples, documentation):
+  [``gf-3.1.6-src.tar.gz`` gf-3.1.6-src.tar.gz]
+  (11 MB)
+  
+GF is also on [Hackage http://hackage.haskell.org/package/gf]
+
+
+What's new? See the [release notes release-3.1.6.html].
+
+
+==Previous releases==
+
+[Follow this link old-index.html].
+
+
+==Installation instructions==
+
+
+The Windows package is installed by just unpacking it anywhere. 
+It finds the libraries relative to the ``.exe`` file.
+
+To install a binary package for MacOS X or Linux: uncompress the executable and
+put it somewhere on your path, renaming it to just ``gf``. For instance:
+```
+  gunzip gf-bin-[version].gz
+  sudo mv gf-bin-[version] /usr/local/bin/gf
+```
+To install the libraries (if done separately), unpack them in the place to which your
+``GF_LIB_PATH`` points.
+```
+  cd $GF_LIB_PATH
+  gtar xvfz gf-lib-[VERSION].tgz
+```
+If this variable hasn't been defined, it is useful define it, e.g.
+```
+  export GF_LIB_PATH=/usr/local/lib/gf/
+```
+
+To compile and install from source on Mac or Linux, do:
+```
+  tar xvfz gf-[VERSION].tgz
+  cd GF/src
+  runghc Setup configure --user
+  runghc Setup build
+  runghc Setup install
+```
+The last command must be prefixed by ``sudo``, if the installation is outside
+user-writeable area.
diff --git a/download/index.html b/download/index.html
--- a/download/index.html
+++ b/download/index.html
@@ -2,77 +2,123 @@
 <HTML>
 <HEAD>
 <META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">
 <TITLE>Grammatical Framework Download and Installation</TITLE>
 </HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Grammatical Framework Download and Installation</H1>
+<P ALIGN="center"><CENTER><H1><IMG src="../doc/Logos/gf0.png">Grammatical Framework Download and Installation</H1>
 <FONT SIZE="4">
 </FONT></CENTER>
 
-<H2>Latest developer code</H2>
 <P>
-<A HREF="../doc/darcs.html">GF darcs repository</A>
+<B>GF 3.2</B> was released on 23 December 2010.
 </P>
-<H2>Latest release</H2>
 <P>
-GF 3.1.6 released 23 May 2010.
+What's new? See the <A HREF="release-3.2.html">Release notes</A>.
 </P>
-<UL>
-<LI>MacOS X (Snow Leopard):
-<LI>MacOS X (Leopard):
-<LI>Windows:
-<LI>Ubuntu Linux:
-<LI>compiled library package:
-<LI>full source package (GF system, libraries, examples, documentation):
-</UL>
+<H2>Binary packages for the latest release</H2>
+<TABLE CELLPADDING="4">
+<TR>
+<TH>Platform</TH>
+<TH>Download</TH>
+<TH>How to install</TH>
+</TR>
+<TR>
+<TD>Linux (32-bit)</TD>
+<TD><A HREF="gf-3.2-bin-i386-linux.tar.gz">gf-3.2-bin-i386-linux.tar.gz</A></TD>
+<TD><CODE>sudo tar -C /usr/local -zxf gf-3.2-bin-i386-linux.tar.gz</CODE></TD>
+</TR>
+<TR>
+<TD>Linux (64-bit)</TD>
+<TD><A HREF="gf-3.2-bin-x86_64-linux.tar.gz">gf-3.2-bin-x86_64-linux.tar.gz</A></TD>
+<TD><CODE>sudo tar -C /usr/local -zxf gf-3.2-bin-x86_64-linux.tar.gz</CODE></TD>
+</TR>
+<TR>
+<TD>MacOS X</TD>
+<TD><A HREF="gf-3.2-bin-intel-mac.tar.gz">gf-3.2-bin-intel-mac.tar.gz</A></TD>
+<TD><CODE>sudo tar -C /usr/local -zxf gf-3.2-bin-intel-mac.tar.gz</CODE></TD>
+</TR>
+<TR>
+<TD>Windows</TD>
+<TD><A HREF="gf-3.2-bin-i386-windows.zip">gf-3.2-bin-i386-windows.zip</A></TD>
+<TD><CODE>unzip gf-3.2-bin-i386-windows.zip</CODE></TD>
+</TR>
+</TABLE>
 
 <P>
-What's new? See the <A HREF="release-3.1.6.txt">release notes</A>.
-</P>
-<H2>Previous releases</H2>
-<P>
-<A HREF="old-index.html">Follow this link</A>.
-</P>
-<H2>Installation instructions</H2>
-<P>
-The MacOS packages are installed by clicking at the icons, as usual.
+More packages might be added later.
 </P>
+<H3>Notes</H3>
 <P>
 The Windows package is installed by just unpacking it anywhere. 
 It finds the libraries relative to the <CODE>.exe</CODE> file.
 </P>
 <P>
-To install a binary package for Linux: uncompress the package by <CODE>tar -xfz</CODE>
-</P>
-<P>
-To compile and install from source on Mac or Linux, do:
+The MacOS and Linux packages are designed to be installed in <CODE>/usr/local</CODE>.
+You can install them in other locations, but then you need to set the
+<CODE>GF_LIB_PATH</CODE> environment variable:
 </P>
 <PRE>
-    tar xvfz gf-[VERSION].tgz
-    cd GF/src
-    runghc Setup configure --user
-    runghc Setup build
-    runghc Setup install
+    export GF_LIB_PATH=/usr/local/share/gf-3.2/lib
 </PRE>
+<P></P>
 <P>
-The last command must be prefixed by <CODE>sudo</CODE>, if the installation is outside
-user-writeable area.
+where <CODE>/usr/local</CODE> should be replaced with the path to the location where you
+unpacked the package.
 </P>
+<H2>Installing the latest release from source</H2>
 <P>
-To install the libraries (if done separately), unpack them in the place to which your
-<CODE>GF_LIB_PATH</CODE> points.
+GF is on <A HREF="http://hackage.haskell.org/package/gf">Hackage</A>, so the prodedure is
+fairly simple:
 </P>
+<OL>
+<LI>Install the
+  <A HREF="http://hackage.haskell.org/platform">Haskell Platform 2010.2.0.0 (July 2010)</A>.
+<LI><CODE>cabal update</CODE>
+<LI>On Linux: install some C libraries from your Linux distribution (see below)
+<LI><CODE>cabal install gf</CODE>
+</OL>
+
+<P>
+You can also download the full source package from here:
+<A HREF="gf-3.2.tar.gz"><CODE>gf-3.2.tar.gz</CODE></A>.
+</P>
+<H3>Notes</H3>
+<P>
+The above steps installs GF for a single user and does not require root
+privileges. The executables are put in <CODE>$HOME/.cabal/bin</CODE>, so it is a good
+idea to put a line in your <CODE>.bash_profile</CODE> to add that directory to you path:
+</P>
 <PRE>
-    cd $GF_LIB_PATH
-    gtar xvfz gf-lib-[VERSION].tgz
+    PATH=$HOME/.cabal/bin:$PATH
 </PRE>
+<P></P>
 <P>
-If this variable hasn't been defined, it is useful define it, e.g.
+GF uses <CODE>haskeline</CODE>, which depends some non-Haskell libraries that
+won't be installed automatically by cabal, so you need to install
+them manually. Here is one way to do this:
 </P>
+<UL>
+<LI>On Ubuntu: <CODE>sudo apt-get install libghc6-terminfo-dev</CODE>
+<LI>On Fedora: <CODE>sudo yum install ghc-terminfo-devel</CODE>
+</UL>
+
+<H2>Older releases</H2>
+<UL>
+<LI><A HREF="index-3.1.6.html">GF 3.1.6</A> (April 2010).
+<LI><A HREF="old-index.html">GF 3.1</A> (December 2009).
+</UL>
+
+<H2>Latest developer code</H2>
 <PRE>
-    export GF_LIB_PATH=/usr/local/lib/gf/
+    darcs get --lazy http://www.grammaticalframework.org/
 </PRE>
 <P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+<P>
+<A HREF="http://www.grammaticalframework.org">www.grammaticalframework.org</A>
+</P>
 
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml index.txt -->
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml ./download/index.t2t -->
 </BODY></HTML>
diff --git a/download/index.t2t b/download/index.t2t
new file mode 100644
--- /dev/null
+++ b/download/index.t2t
@@ -0,0 +1,91 @@
+Grammatical Framework Download and Installation
+
+
+%!style:../css/style.css
+%!postproc(html): <TD><B> <TH>
+%!postproc(html): </B></TD> </TH>
+%!postproc(html): <H1> <H1><IMG src="../doc/Logos/gf0.png">
+
+**GF 3.2** was released on 23 December 2010.
+
+What's new? See the [Release notes release-3.2.html].
+
+
+== Binary packages for the latest release ==
+
+
+| **Platform** | **Download** | **How to install**
+| Linux (32-bit) | [gf-3.2-bin-i386-linux.tar.gz gf-3.2-bin-i386-linux.tar.gz] | ``sudo tar -C /usr/local -zxf gf-3.2-bin-i386-linux.tar.gz``
+| Linux (64-bit) | [gf-3.2-bin-x86_64-linux.tar.gz gf-3.2-bin-x86_64-linux.tar.gz] | ``sudo tar -C /usr/local -zxf gf-3.2-bin-x86_64-linux.tar.gz``
+%| MacOS X | [gf-3.2-leopard.pkg gf-3.2-leopard.pkg] | Double-click on the package icon and follow the instructions
+| MacOS X | [gf-3.2-bin-intel-mac.tar.gz gf-3.2-bin-intel-mac.tar.gz] | ``sudo tar -C /usr/local -zxf gf-3.2-bin-intel-mac.tar.gz``
+| Windows | [gf-3.2-bin-i386-windows.zip gf-3.2-bin-i386-windows.zip] | ``unzip gf-3.2-bin-i386-windows.zip``
+
+More packages might be added later.
+
+===Notes===
+
+The Windows package is installed by just unpacking it anywhere. 
+It finds the libraries relative to the ``.exe`` file.
+
+The MacOS and Linux packages are designed to be installed in ``/usr/local``.
+You can install them in other locations, but then you need to set the
+``GF_LIB_PATH`` environment variable:
+
+```
+  export GF_LIB_PATH=/usr/local/share/gf-3.2/lib
+```
+
+where ``/usr/local`` should be replaced with the path to the location where you
+unpacked the package.
+
+
+==Installing the latest release from source==
+
+GF is on [Hackage http://hackage.haskell.org/package/gf], so the prodedure is
+fairly simple:
+
++ Install the
+  [Haskell Platform 2010.2.0.0 (July 2010) http://hackage.haskell.org/platform].
++ ``cabal update``
++ On Linux: install some C libraries from your Linux distribution (see below)
++ ``cabal install gf``
+
+
+You can also download the full source package from here:
+[``gf-3.2.tar.gz`` gf-3.2.tar.gz].
+
+=== Notes ===
+
+The above steps installs GF for a single user and does not require root
+privileges. The executables are put in ``$HOME/.cabal/bin``, so it is a good
+idea to put a line in your ``.bash_profile`` to add that directory to you path:
+
+```
+  PATH=$HOME/.cabal/bin:$PATH
+```
+
+GF uses ``haskeline``, which depends some non-Haskell libraries that
+won't be installed automatically by cabal, so you need to install
+them manually. Here is one way to do this:
+
+- On Ubuntu: ``sudo apt-get install libghc6-terminfo-dev``
+- On Fedora: ``sudo yum install ghc-terminfo-devel``
+
+
+==Older releases==
+
+- [GF 3.1.6 index-3.1.6.html] (April 2010).
+- [GF 3.1 old-index.html] (December 2009).
+
+
+==Latest developer code==
+
+```
+  darcs get --lazy http://www.grammaticalframework.org/
+```
+
+--------------------
+
+[www.grammaticalframework.org http://www.grammaticalframework.org]
+ 
diff --git a/download/index.txt b/download/index.txt
deleted file mode 100644
--- a/download/index.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-Grammatical Framework Download and Installation
-
-
-==Latest developer code==
-
-[GF darcs repository  ../doc/darcs.html]
-
-==Latest release==
-
-GF 3.1.6 released 23 May 2010.
-- MacOS X (Snow Leopard):
-- MacOS X (Leopard):
-- Windows:
-- Ubuntu Linux:
-- compiled library package:
-- full source package (GF system, libraries, examples, documentation):
-
-
-What's new? See the [release notes release-3.1.6.txt].
-
-==Previous releases==
-
-[Follow this link old-index.html].
-
-
-==Installation instructions==
-
-The MacOS packages are installed by clicking at the icons, as usual.
-
-The Windows package is installed by just unpacking it anywhere. 
-It finds the libraries relative to the ``.exe`` file.
-
-To install a binary package for Linux: uncompress the package by ``tar -xfz``
-
-
-To compile and install from source on Mac or Linux, do:
-```
-  tar xvfz gf-[VERSION].tgz
-  cd GF/src
-  runghc Setup configure --user
-  runghc Setup build
-  runghc Setup install
-```
-The last command must be prefixed by ``sudo``, if the installation is outside
-user-writeable area.
-
-To install the libraries (if done separately), unpack them in the place to which your
-``GF_LIB_PATH`` points.
-```
-  cd $GF_LIB_PATH
-  gtar xvfz gf-lib-[VERSION].tgz
-```
-If this variable hasn't been defined, it is useful define it, e.g.
-```
-  export GF_LIB_PATH=/usr/local/lib/gf/
-```
-
-
diff --git a/download/release-3.1.6.html b/download/release-3.1.6.html
new file mode 100644
--- /dev/null
+++ b/download/release-3.1.6.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<TITLE>GF Version 3.1.6 Release Notes</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>GF Version 3.1.6 Release Notes</H1>
+<FONT SIZE="4">
+<I>23 April 2010</I><BR>
+</FONT></CENTER>
+
+<H1>Installation</H1>
+<P>
+The binaries now work out of the box for each platform and support
+completions (file names and parsing), because readline has been 
+changed to haskeline.
+</P>
+<P>
+To compile from source, GHC 6.12 is now required. But GHC is not needed
+if the binary executables are used.
+</P>
+<P>
+Binaries (<CODE>.gfo</CODE> and <CODE>.pgf</CODE> files) compiled with GF 3.1 are incompatible 
+with 3.1.6 and must either be removed; alternatively, the <CODE>-src</CODE> flag can be
+used when compiling.
+</P>
+<P>
+Notice the new place to send bug reports (see GF's welcome message)!
+</P>
+<H1>New features</H1>
+<P>
+Grammar language
+</P>
+<UL>
+<LI>improved support for dependent types (see <CODE>SUMO</CODE>, <CODE>nqueens</CODE> in <CODE>examples</CODE>)
+</UL>
+
+<P>
+Shell commands and options (see <CODE>help</CODE> in GF for more information) 
+</P>
+<UL>
+<LI><CODE>eb</CODE>: example-based grammar file conversion 
+  (see <CODE>examples/animals/QuestionI.gf</CODE>)
+<LI><CODE>vd = visualize_dependency</CODE>: show dependency tree
+<LI><CODE>vp = visualize_parse</CODE>: show parse tree
+<LI><CODE>gr, gt, mq, tq</CODE>: use a seed tree with metavariables
+<LI><CODE>gr, p, tq</CODE>: use <CODE>-probs=FILE</CODE> to bias or rank generated trees
+<LI><CODE>gt</CODE> now tries the different alternatives in the order in which they appear in the source code
+<LI><CODE>dg</CODE>: hide modules when printing dependency graph
+<LI>-output-format=lambda_prolog let us to use Lambda Prolog for exhaustive generation with dependent types
+</UL>
+
+<P>
+Libraries
+</P>
+<UL>
+<LI>Urdu completed (Shafqat Virk)
+<LI>Turkish morphology + Zamberek's dictionary in GF (Server Cimen)
+</UL>
+
+<P>
+Examples
+</P>
+<UL>
+<LI>SUMO
+<LI>phrasebook
+<LI>nqueens
+</UL>
+
+<P>
+Internal
+</P>
+<UL>
+<LI>single PMCFG format for both linearization and parsing
+<LI>use of Haskeline for completion - more portable than Readline
+<LI>unicode support from Haskell 6.12 instead of home-made coding
+</UL>
+
+<H2>Issues</H2>
+<P>
+Javascript generation is not updated to the new PGF format.
+<A HREF="old-index.html">GF 3.1</A> should still be used for building Javascript applications.
+</P>
+
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml release-3.1.6.txt -->
+</BODY></HTML>
diff --git a/download/release-3.1.6.txt b/download/release-3.1.6.txt
--- a/download/release-3.1.6.txt
+++ b/download/release-3.1.6.txt
@@ -1,5 +1,5 @@
 GF Version 3.1.6 Release Notes
-
+23 April 2010
 
 
 =Installation=
@@ -21,8 +21,7 @@
 =New features=
 
 Grammar language
-- increased support for dependent types (see ``SUMO``,
-  ``category-theory`` and ``nqueens`` in ``examples``)
+- improved support for dependent types (see ``SUMO``, ``nqueens`` in ``examples``)
 
 
 Shell commands and options (see ``help`` in GF for more information) 
@@ -32,17 +31,18 @@
 - ``vp = visualize_parse``: show parse tree
 - ``gr, gt, mq, tq``: use a seed tree with metavariables
 - ``gr, p, tq``: use ``-probs=FILE`` to bias or rank generated trees
+- ``gt`` now tries the different alternatives in the order in which they appear in the source code
 - ``dg``: hide modules when printing dependency graph
+- -output-format=lambda_prolog let us to use Lambda Prolog for exhaustive generation with dependent types
 
 
 Libraries
-- Urdu completed
-- Turkish morphology completed
+- Urdu completed (Shafqat Virk)
+- Turkish morphology + Zamberek's dictionary in GF (Server Cimen)
 
 
 Examples
 - SUMO
-- category-theory
 - phrasebook
 - nqueens
 
@@ -51,6 +51,12 @@
 - single PMCFG format for both linearization and parsing
 - use of Haskeline for completion - more portable than Readline
 - unicode support from Haskell 6.12 instead of home-made coding
+
+
+==Issues==
+
+Javascript generation is not updated to the new PGF format.
+[GF 3.1 old-index.html] should still be used for building Javascript applications.
 
 
 
diff --git a/download/release-3.2.t2t b/download/release-3.2.t2t
new file mode 100644
--- /dev/null
+++ b/download/release-3.2.t2t
@@ -0,0 +1,40 @@
+GF Version 3.2 Release Notes
+23 December 2010
+
+%!style:../css/style.css
+%!postproc(html): <H1> <H1><IMG src="../doc/Logos/gf0.png">
+
+==Installation==
+
+See the [download page http://www.grammaticalframework.org/download/index.html].
+
+==New features==
+
+- Faster parsing.
+- Faster handling of grammars with big lexicons.
+- Dependent types.
+- Exhaustive random generation with dependent types.
+- Bracketed strings data structure.
+%- example based
+- Probabilities in PGF files.
+%- giza alignments
+%- language quiz
+- The Resource Grammar Library now supports 16 languages and has an
+  [updated synopsis ../lib/doc/synopsis.html].
+- The darcs repo is now availble from ``www.grammaticalframework.org`` and
+  should be a lot faster than ``code.haskell.org``.
+- Build of web services simplified and a instantly usable demo is included
+  in the binary distribution (see [Quickstart ../doc/gf-quickstart.html]).
+- Clarified license scheme.
+- ...
+
+
+===Licenses===
+
+- GF compiler: GPL
+- Run-time libraries and Resource Grammar Library: LGPL + BSD
+
+
+--------------------
+
+[www.grammaticalframework.org http://www.grammaticalframework.org]
diff --git a/examples/SUMO/Basic.gf b/examples/SUMO/Basic.gf
--- a/examples/SUMO/Basic.gf
+++ b/examples/SUMO/Basic.gf
@@ -1,79 +1,79 @@
 --# -path=.:englishExtended:common:prelude:abstract
-abstract Basic = open Conjunction in {
-cat Class;
-   El Class;
-   Ind Class;
-   SubClassC (c1,c2 : Class) (Var c2 -> Formula);
-   SubClass (c1,c2 : Class);
-   Inherits Class Class ;
-   [El Class];
-   [Class];
-   Formula;
-   Desc Class;
-   Var Class;
-   Stmt ;
-   
--- inheritance between classes   
-data 
-inhz : (c : Class) -> Inherits c c;
-inhs : (c1, c2, c3 : Class) -> (p : Var c2 -> Formula) -> SubClassC c1 c2 p -> Inherits c2 c3 -> Inherits c1 c3;
-inhsC : (c1, c2, c3 : Class) -> SubClass c1 c2 -> Inherits c2 c3 -> Inherits c1 c3;
+abstract Basic = {
 
+cat
+  Class;
+  El Class;
+  Ind Class;
+  SubClass (c1,c2 : Class);
+  Inherits Class Class ;
+  [El Class];
+  [Class];
+  Formula;
+  Desc Class;
+  Var Class;
+  Stmt ;
 
--- coercion from Var to El
 
+-- class-forming operations
 data 
-var : (c1 , c2 : Class) -> Inherits c1 c2 -> Var c1 -> El c2 ;
+  both : Class -> Class -> Class ;
+  either : Class -> Class -> Class ;
+  
+  KappaFn : (c : Class) -> (Var c -> Formula) -> Class ;
 
 
--- coercion from Ind to El 
-data 
-el : (c1, c2 : Class) -> Inherits c1 c2 -> Ind c1 -> El c2;
+-- inheritance between classes   
+data
+  -- simple sub-class relations
+  inhz : (c : Class) -> Inherits c c;
+  inhs : (c1, c2, c3 : Class) -> SubClass c1 c2 -> Inherits c2 c3 -> Inherits c1 c3;
 
+  -- (both c1 c2) is subclass of c1 and of c2
+  bothL : (c1, c2 : Class) -> SubClass (both c1 c2) c1 ;
+  bothR : (c1, c2 : Class) -> SubClass (both c1 c2) c2 ;
 
--- class-forming operations
-data 
-both : Class -> Class -> Class ;
-either : Class -> Class -> Class ;
+  -- relationship with other subclasses
+  bothC : (c1, c2, c3 : Class) -> Inherits c3 c1 -> Inherits c3 c2 -> Inherits c3 (both c1 c2);
 
+  -- (either c1 c2) is superclass of c1 and of c2
+  eitherL : (c1, c2 : Class) -> Inherits c1 (either c1 c2);
+  eitherR : (c1, c2 : Class) -> Inherits c2 (either c1 c2);
 
--- first-order logic operations for Formula
-data 
-not : Formula -> Formula;
-and : Formula -> Formula -> Formula;
-or : Formula -> Formula -> Formula;
-impl : Formula -> Formula -> Formula;
-equiv : Formula -> Formula -> Formula;
+  -- relationship with other subclasses
+  eitherC : (c1,c2,c3 : Class) -> SubClass c1 c3 -> SubClass c2 c3 -> SubClass (either c1 c2) c3 ; 
 
+  -- sub-class axiom for KappaFn
+  kappa : (c : Class) -> (p : Var c -> Formula) -> Inherits (KappaFn c p) c ;
 
--- quantification over instances of a Class
-data
-exists : (c : Class) -> (Var c -> Formula) -> Formula;
-forall : (c : Class) -> (Var c -> Formula) -> Formula;
 
--- axioms for both
+-- coercion from Var to El
 data 
+  var : (c1 , c2 : Class) -> Inherits c1 c2 -> Var c1 -> El c2 ;
 
--- (both c1 c2) is subclass of c1 and of c2
-bothL : (c1, c2 : Class) -> Inherits (both c1 c2) c1 ;
-bothR : (c1, c2 : Class) -> Inherits (both c1 c2) c2 ; 
 
--- relationship with other subclasses
-bothC : (c1, c2, c3 : Class) -> Inherits c3 c1 -> Inherits c3 c2 -> Inherits c3 (both c1 c2);
-
--- axioms for either 
+-- coercion from Ind to El 
 data 
+  el : (c1, c2 : Class) -> Inherits c1 c2 -> Ind c1 -> El c2;
 
--- (either c1 c2) is superclass of c1 and of c2
-eitherL : (c1, c2 : Class) -> Inherits c1 (either c1 c2);
-eitherR : (c1, c2 : Class) -> Inherits c2 (either c1 c2);
 
--- relationship with other subclasses
-eitherC : (c1,c2,c3 : Class) -> Inherits c1 c3 -> Inherits c2 c3 -> Inherits (either c1 c2) c3 ; 
+-- first-order logic operations for Formula
+data 
+  not : Formula -> Formula;
+  and : Formula -> Formula -> Formula;
+  or : Formula -> Formula -> Formula;
+  impl : Formula -> Formula -> Formula;
+  equiv : Formula -> Formula -> Formula;
 
+-- quantification over instances of a Class
+data
+  exists : (c : Class) -> (Var c -> Formula) -> Formula;
+  forall : (c : Class) -> (Var c -> Formula) -> Formula;
 
+
 -- Desc category
-data desc : (c1,c2 : Class) -> Inherits c1 c2 -> Desc c2 ;
+data
+  desc : (c1,c2 : Class) -> Inherits c1 c2 -> Desc c2 ;
 
 fun descClass : (c : Class) -> Desc c -> Class ;
 def descClass _ (desc c _ _) = c ;
@@ -89,15 +89,10 @@
 --    plusInh _ _ _ (inhs _ _ _ sc inh1) inh2 = inhs ? ? ? sc (plusInh ? ? ? inh1 inh2) ;
 
 
-
 -- statements 
-
 data 
-subClassStm : (c1,c2 : Class) -> SubClass c1 c2 -> Stmt ;
-subClassCStm : (c1,c2 : Class) -> (p : Var c2 -> Formula) -> SubClassC c1 c2 p -> Stmt ;
-instStm : (c : Class) -> Ind c -> Stmt ;
-formStm : Formula -> Stmt ;
-
-
+  subClassStm : (c1,c2 : Class) -> SubClass c1 c2 -> Stmt ;
+  instStm : (c : Class) -> Ind c -> Stmt ;
+  formStm : Formula -> Stmt ;
 
-};
+};
diff --git a/examples/SUMO/BasicBul.gf b/examples/SUMO/BasicBul.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/BasicBul.gf
@@ -0,0 +1,6 @@
+concrete BasicBul of Basic = open SyntaxBul in {
+
+lincat 
+  Class = CN ;
+
+};
diff --git a/examples/SUMO/BasicEng.gf b/examples/SUMO/BasicEng.gf
--- a/examples/SUMO/BasicEng.gf
+++ b/examples/SUMO/BasicEng.gf
@@ -1,96 +1,99 @@
 --# -path=.:englishExtended:abstract:common:
-concrete BasicEng of Basic = CatEng - [Text] ** open DictLangEng, ParadigmsEng, ResEng, Coordination, Prelude, ParamBasic, NounEng in{
+concrete BasicEng of Basic = open CatEng, ExtensionEng, DictLangEng, DictEng, ParadigmsEng, ResEng, Coordination, Prelude, ParamBasic, ConjunctionEng, NounEng in {
+
 lincat 
- Class = CN ;
- El = NP ;
- Ind = NP ;
- Var = PN ;
- SubClass = {} ;
- SubClassC = {} ;
- Inherits = {} ;
- Desc = CN ;
- Formula = PolSentence;
- [El] = [NP];
- [Class] = [CN];
- Stmt = StmtS ;
- lin 
-BaseClass = {s1,s2 = \\_,_ => "";   
-             g  =  Neutr;
-             lock_ListCN=<>};  
-ConsClass xs x = ConsCN xs x ;   
+  Class = CatEng.CN ;
+  El = CatEng.NP ;
+  Ind = CatEng.NP ;
+  Var = CatEng.PN ;
+  SubClass = {} ;
+  Inherits = {} ;
+  Desc = CatEng.CN ;
+  Formula = ExtensionEng.PolSentence;
+  [El] = ConjunctionEng.ListNP;
+  [Class] =ExtensionEng.ListCN ;
+  Stmt = ExtensionEng.StmtS ;
+
+lin 
+  BaseClass = {s1,s2 = \\_,_ => "";   
+               g  =  Neutr;
+               lock_ListCN=<>};  
+  ConsClass xs x = ExtensionEng.ConsCN xs x ;   
   
- 
-BaseEl c = {s1,s2 = \\_ => "";
-            a = agrP3 Sg;
-            lock_ListNP=<>};
+  BaseEl c = {s1,s2 = \\_ => "";
+              a = agrP3 Sg;
+              lock_ListNP=<>};
          
-ConsEl c xs x = ConsNP xs x ;     
+  ConsEl c xs x = ConjunctionEng.ConsNP xs x ;     
 
- 
-and f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "and" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
-or f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "or" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
-not f1 = {s = \\f,c => case c of
-                       {Neg  => f1.s ! f ! Pos ; 
-                        Pos  => f1.s ! Indep ! Neg }; 
-          flag = f1.flag;  
-          lock_PolSentence = <>};
-impl f1 f2 = {s = \\f,c => "if" ++ f1.s ! Indep ! c ++ "then" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
+  and f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "and" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
+  or f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "or" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
+  not f1 = {s = \\f => table {
+                         Neg  => "it is not true that" ++ f1.s ! f ! Neg ; 
+                         Pos  => f1.s ! Indep ! Neg
+                       }; 
+            flag = f1.flag;  
+            lock_PolSentence = <>
+           };
+  impl f1 f2 = {s = \\f,c => "if" ++ f1.s ! Indep ! c ++ "then" ++ f2.s ! Indep ! c; flag = NothingS; lock_PolSentence = <>};
 
-equiv f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "is" ++ "equivalent" ++ "to" ++ f2.s ! Indep ! c; flag = NothingS;
-               lock_PolSentence = <>};
+  equiv f1 f2 = {s = \\f,c => f1.s ! Indep ! c ++ "is" ++ "equivalent" ++ "to" ++ f2.s ! Indep ! c; flag = NothingS;
+                 lock_PolSentence = <>};
 
-el c1 c2 i e = e; 
-var c1 c2 i e = UsePN e;
+  el c1 c2 i e = e; 
+  var c1 c2 i e = UsePN e;
 
-exists C f = let np = DetCN (DetQuant IndefArt NumSg) C 
-                 in 
-                {s = \\form,c => case <form, f.flag> of 
-                           { <Indep, ExistS _> => "there" ++ "exists" ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
-                            <Attrib, ExistS One> => "and" ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
-                            <Attrib, ExistS _> => "," ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
-                            <Indep,_> => "there" ++ "exists" ++ np.s ! Nom ++ f.$0 ++ "such" ++ "that" ++ f.s ! Indep ! c ; 
-                             _      => "and" ++ np.s ! Nom ++ f.$0 ++ "such" ++ "that" ++ f.s ! Indep ! c }; 
-              flag = case f.flag of 
-                       {ExistS _   => ExistS Many;
-                        _        => ExistS One };
-              lock_PolSentence=<>};
+  exists C f = let np = DetCN (DetQuant IndefArt NumSg) C 
+               in { s = \\form,c => case <form, f.flag> of {
+                                      <Indep, ExistS _>    => "there" ++ "exists" ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
+                                      <Attrib, ExistS One> => "and" ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
+                                      <Attrib, ExistS _>   => "," ++ np.s ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
+                                      <Indep,_>            => "there" ++ "exists" ++ np.s ! Nom ++ f.$0 ++ "such" ++ "that" ++ f.s ! Indep ! c ; 
+                                      _                    => "and" ++ np.s ! Nom ++ f.$0 ++ "such" ++ "that" ++ f.s ! Indep ! c
+                                    }; 
+                    flag = case f.flag of {
+                             ExistS _   => ExistS Many;
+                             _        => ExistS One
+                           };
+                    lock_PolSentence=<>
+                  };
               
-forall C f = {s = \\form, c => case <form,f.flag> of
-                         {<Indep,ForallS _> => "for" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++  f.s ! Attrib ! c ;
-                          <Attrib,ForallS One> => "," ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
-                          <Attrib, ForallS _> => "," ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Attrib ! c ; 
-                          <Indep,ExistS _> => "for" ++"every"++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Indep ! c ;
-                          <Indep,_> => "for" ++"every"++ C.s ! Sg ! Nom ++ f.$0 ++ "we"++"have" ++ "that" ++ f.s ! Indep ! c ;
-                          <Attrib,ExistS _> => "and" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Indep ! c;
-                          _ => "and" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ "we" ++ "have" ++ "that" ++f.s ! Indep ! c             };                         
-              flag = case f.flag of 
-                        {ForallS _   => ForallS Many;
-                         _         => ForallS One };
-              lock_PolSentence=<>};              
+  forall C f = { s = \\form, c => case <form,f.flag> of {
+                                    <Indep,ForallS _>    => "for" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++  f.s ! Attrib ! c ;
+                                    <Attrib,ForallS One> => "," ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Attrib ! c ;
+                                    <Attrib, ForallS _>  => "," ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Attrib ! c ; 
+                                    <Indep,ExistS _>     => "for" ++"every"++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Indep ! c ;
+                                    <Indep,_>            => "for" ++"every"++ C.s ! Sg ! Nom ++ f.$0 ++ "we"++"have" ++ "that" ++ f.s ! Indep ! c ;
+                                    <Attrib,ExistS _>    => "and" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ f.s ! Indep ! c;
+                                     _                    => "and" ++ "every" ++ C.s ! Sg ! Nom ++ f.$0 ++ "we" ++ "have" ++ "that" ++f.s ! Indep ! c             };                         
+                 flag = case f.flag of {
+                          ForallS _   => ForallS Many;
+                          _           => ForallS One
+                        };
+                 lock_PolSentence=<>
+               };
  
-both c1 c2 = {s = \\c,n => c1.s ! c ! n ++ "and" ++ c2.s ! c ! n;
-             g = c2.g; lock_CN = <>};
+  both c1 c2 = { s = \\c,n => c1.s ! c ! n ++ "and" ++ c2.s ! c ! n;
+                 g = c2.g; lock_CN = <>
+               };
 
-         
-either c1 c2 = {s = \\c,n => c1.s ! c ! n ++ "or" ++ c2.s ! c ! n;
-                g = c2.g; lock_CN = <>};         
+  either c1 c2 = { s = \\c,n => c1.s ! c ! n ++ "or" ++ c2.s ! c ! n;
+                   g = c2.g; lock_CN = <>
+                 };
 
-desc c1 c2 i = c2 ;
-descClass c dc = c;                
-desc2desc c1 c2 i d = d;                
+  KappaFn c ob2 = ApposCN (AdvCN (AdvCN (UseN class_N) (PrepNP part_Prep (DetCN (DetQuant IndefArt NumPl) c))) where_Adv) (sentToNoun ob2) ;
 
-subClassStm c1 c2 sc = ss (c1. s ! Sg ! Nom ++ "is" ++ "a" ++ "subclass" ++ "of" ++ c2.s ! Sg ! Nom) ;
-instStm c i = ss (i.s ! Nom ++ "is" ++ "an" ++ "instance" ++ "of" ++ c.s ! Sg ! Nom) ;
-formStm f = ss (f.s ! Indep ! Pos) ;
-subClassCStm c1 c2 constr sc= ss (c1.s ! Sg ! Nom ++ "is" ++ "a" ++ "subclass" ++ "of" ++ c2.s ! Sg ! Nom ++ "where" ++ constr.s ! Indep ! Pos) ;
+  desc c1 c2 i = c2 ;
+  descClass c dc = c;                
+  desc2desc c1 c2 i d = d;                
 
--- lindef 
+  subClassStm c1 c2 sc = lin StmtS (ss (c1. s ! Sg ! Nom ++ "is a subclass of" ++ c2.s ! Sg ! Nom)) ;
+  instStm c i = lin StmtS (ss (i.s ! Nom ++ "is an instance of" ++ c.s ! Sg ! Nom)) ;
+  formStm f = lin StmtS (ss (f.s ! Indep ! Pos)) ;
 
-lindef Ind = \x -> {s = \\_ => x; a = agrP3 Sg; lock_NP = <>} ;
-                    
-lindef El = \x -> {s = \\_ => x; a = agrP3 Sg; lock_NP = <>} ; 
-                    
-lindef Class = \x -> {s = \\_,_ => x; g = Neutr; lock_CN =<>};         
+lindef
+  Ind = \x -> {s = \\_ => x; a = agrP3 Sg; lock_NP = <>} ;
+  El = \x -> {s = \\_ => x; a = agrP3 Sg; lock_NP = <>} ; 
+  Class = \x -> {s = \\_,_ => x; g = Neutr; lock_CN =<>};         
 
-           
- };
+};
diff --git a/examples/SUMO/BasicFre.gf b/examples/SUMO/BasicFre.gf
--- a/examples/SUMO/BasicFre.gf
+++ b/examples/SUMO/BasicFre.gf
@@ -7,7 +7,6 @@
  Ind = NP ;
  Var = PN ;
  SubClass = {} ;
- SubClassC = {} ;
  Inherits = {} ;
  Desc = CN ;
  Formula = PolSentence;
@@ -94,7 +93,6 @@
 subClassStm c1 c2 sc = ss (c1. s ! Sg ++ "est" ++ "une" ++ "sous-classe" ++ "de" ++ c2.s ! Sg) ;
 instStm c i = ss ((i.s ! Nom).comp ++ "est" ++ "une" ++ "instance" ++ "de" ++ c.s ! Sg) ;
 formStm f = ss (f.s ! Indep ! Pos) ;
-subClassCStm c1 c2 constr sc= ss (c1.s ! Sg  ++ "est" ++ "une" ++ "sous-classe" ++ "de" ++ c2.s ! Sg ++ "avec" ++ constr.s ! Indep ! Pos) ;
  
 
 -- lindef 
diff --git a/examples/SUMO/BasicRon.gf b/examples/SUMO/BasicRon.gf
--- a/examples/SUMO/BasicRon.gf
+++ b/examples/SUMO/BasicRon.gf
@@ -1,24 +1,29 @@
---# -path=.:romanian:abstract:prelude:common
-concrete BasicRon of Basic = CatRon - [Text] ** open DictLangRon,ResRon, Prelude, ParamBasic,Coordination, ParadigmsRon in{
+--# -path=.:RGLExt:alltenses
+
+concrete BasicRon of Basic = CatRon - [Text] ** open DictLangRon,ResRon, Prelude, ParamBasic,Coordination, ParadigmsRon in {
+
+flags
+  coding=utf8 ;
+
 lincat 
  Class = CN ;
  El = NP ;
  Ind = NP ;
  Var = PN ;
  SubClass = {} ;
- SubClassC = {} ;
  Inherits = {} ;
  Desc = CN ;
  Formula = PolSentence;
  Stmt = StmtS ;
  [El] = {s1,s2 : NCase => Str ; a : Agr; nForm : NForm};
- [Class] = {s1,s2 : Number => Species => ACase => Str; g : NGender; a : Animacy ; isComp : Bool};
+ [Class] = {s1,s2 : Number => Species => ACase => Str; g : NGender; a : Animacy ; isComp : Bool; needsRefForm : Bool};
  
- lin 
-BaseClass = {s1,s2 = \\_,_,_ => "";   
+ lin
+ 
+BaseClass = {s1,s2 = \\_,_,_ => "";   needsRefForm = False ;
              g  =  NNeut; a = Inanimate; isComp = False} ;
              
-ConsClass xs x = consrTable3 Number Species ACase comma xs x ** {g = x.g; a = x.a; isComp = x.isComp} ;   
+ConsClass xs x = consrTable3 Number Species ACase comma xs x ** {g = x.g; a = x.a; needsRefForm = False; isComp = x.isComp} ;   
    
  
 BaseEl c = {s1,s2 = \\_ => "";
@@ -48,7 +53,7 @@
  
 var c1 c2 i e = let np = UsePN e in
                {s = np.s;
-                a = agrP3 (agrGender c1.g Sg) Sg; indForm = np.indForm ;
+                a = agrP3 (agrGender c1.g Sg) Sg; indForm = np.indForm ; isPol = False;
                 nForm = np.nForm; ss = np.ss; isComp = np.isComp ; isPronoun = False;
                 lock_NP = <>}; 
            
@@ -84,19 +89,18 @@
              g = c2.g; a = case c1.a of 
                             {Inanimate => Inanimate;
                              _         => c2.a };                            
-             isComp = orB c1.isComp c2.isComp; lock_CN = <>};
+             isComp = orB c1.isComp c2.isComp; needsRefForm = False; lock_CN = <>};
 
          
 either c1 c2 = {s = \\c,sp,n => c1.s ! c ! sp ! n ++ "sau" ++ c2.s ! c ! sp ! n;
                 g = c2.g; a = case c1.a of 
                              {Inanimate => Inanimate;
                               _         => c2.a };
-                isComp = orB c1.isComp c2.isComp; lock_CN = <>};         
+                isComp = orB c1.isComp c2.isComp; needsRefForm = False; lock_CN = <>};         
                 
 subClassStm c1 c2 sc = ss (c1. s ! Sg ! Def ! ANomAcc ++ "este" ++ "o" ++ "subclasã" ++ "a" ++ c2.s ! Sg ! Def ! AGenDat) ;
 instStm c i = ss ((i.s ! No).comp ++ "este" ++ "o" ++ "instanþiere" ++ "a" ++ c.s ! Sg ! Def ! AGenDat) ;
 formStm f = ss (f.s ! Indep ! Pos) ;
-subClassCStm c1 c2 constr sc= ss (c1.s ! Sg ! Def ! ANomAcc ++ "este" ++ "o" ++ "subclasã" ++ "a" ++ c2.s ! Sg ! Def ! AGenDat ++ "unde" ++ constr.s ! Indep ! Pos) ;
                 
                 
 desc c1 c2 i = c2 ;
@@ -111,6 +115,6 @@
 lindef Class = \x -> {s = \\n,sp,c => case c of 
                                   {AGenDat => "lui" ++ x ;
                                    _       => x};
-                      g = NMasc; a = Animate; isComp=False; lock_CN =<>}; 
+                      g = NMasc; a = Animate; isComp=False; needsRefForm = False; lock_CN =<>}; 
                    
- };
+ };
diff --git a/examples/SUMO/BasicSwe.gf b/examples/SUMO/BasicSwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/BasicSwe.gf
@@ -0,0 +1,6 @@
+concrete BasicSwe of Basic = open SyntaxSwe in {
+
+lincat 
+  Class = CN ;
+
+};
diff --git a/examples/SUMO/Birds.gf b/examples/SUMO/Birds.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/Birds.gf
@@ -0,0 +1,451 @@
+abstract Birds = Merge ** {
+
+fun
+  GaviaStellata : Class ;
+  GaviaStellata_Class : SubClass GaviaStellata Bird ;
+
+  GaviaArctica : Class ;
+  GaviaArctica_Class : SubClass GaviaArctica Bird ;
+
+  PodicepsCristatus : Class ;
+  PodicepsCristatus_Class : SubClass PodicepsCristatus Bird ;
+
+  PodicepsAuritus : Class ;
+  PodicepsAuritus_Class : SubClass PodicepsAuritus Bird ;
+
+  ArdeaCinerea : Class ;
+  ArdeaCinerea_Class : SubClass ArdeaCinerea Bird ;
+
+  BotaurusStellaris : Class ;
+  BotaurusStellaris_Class : SubClass BotaurusStellaris Bird ;
+
+  CygnusOlor : Class ;
+  CygnusOlor_Class : SubClass CygnusOlor Bird ;
+
+  CygnusCygnus : Class ;
+  CygnusCygnus_Class : SubClass CygnusCygnus Bird ;
+
+  AnserFabalis : Class ;
+  AnserFabalis_Class : SubClass AnserFabalis Bird ;
+
+  AnserAnser : Class ;
+  AnserAnser_Class : SubClass AnserAnser Bird ;
+
+  BrantaCanadensis : Class ;
+  BrantaCanadensis_Class : SubClass BrantaCanadensis Bird ;
+
+  BrantaLeucopsis : Class ;
+  BrantaLeucopsis_Class : SubClass BrantaLeucopsis Bird ;
+
+  TadornaTadorna : Class ;
+  TadornaTadorna_Class : SubClass TadornaTadorna Bird ;
+
+  AnasPlatyrhynchos : Class ;
+  AnasPlatyrhynchos_Class : SubClass AnasPlatyrhynchos Bird ;
+
+  AnasPenelope : Class ;
+  AnasPenelope_Class : SubClass AnasPenelope Bird ;
+
+  AnasCrecca : Class ;
+  AnasCrecca_Class : SubClass AnasCrecca Bird ;
+
+  BucephalaClangula : Class ;
+  BucephalaClangula_Class : SubClass BucephalaClangula Bird ;
+
+  ClangulaHyemalis : Class ;
+  ClangulaHyemalis_Class : SubClass ClangulaHyemalis Bird ;
+
+  SomateriaMollissima : Class ;
+  SomateriaMollissima_Class : SubClass SomateriaMollissima Bird ;
+
+  MergusMerganser : Class ;
+  MergusMerganser_Class : SubClass MergusMerganser Bird ;
+
+  MelanittaNigra : Class ;
+  MelanittaNigra_Class : SubClass MelanittaNigra Bird ;
+
+  HaliaeetusAlbicilla : Class ;
+  HaliaeetusAlbicilla_Class : SubClass HaliaeetusAlbicilla Bird ;
+
+  PandionHaliaetus : Class ;
+  PandionHaliaetus_Class : SubClass PandionHaliaetus Bird ;
+
+  ButeoButeo : Class ;
+  ButeoButeo_Class : SubClass ButeoButeo Bird ;
+
+  AccipiterGentilis : Class ;
+  AccipiterGentilis_Class : SubClass AccipiterGentilis Bird ;
+
+  AccipiterNisus : Class ;
+  AccipiterNisus_Class : SubClass AccipiterNisus Bird ;
+
+  FalcoTinnunculus : Class ;
+  FalcoTinnunculus_Class : SubClass FalcoTinnunculus Bird ;
+
+  LagopusLagopus : Class ;
+  LagopusLagopus_Class : SubClass LagopusLagopus Bird ;
+
+  LagopusMutus : Class ;
+  LagopusMutus_Class : SubClass LagopusMutus Bird ;
+
+  TetraoUrogallus : Class ;
+  TetraoUrogallus_Class : SubClass TetraoUrogallus Bird ;
+
+  LyrurusTetrix : Class ;
+  LyrurusTetrix_Class : SubClass LyrurusTetrix Bird ;
+
+  PhasianusColchicus : Class ;
+  PhasianusColchicus_Class : SubClass PhasianusColchicus Bird ;
+
+  RallusAquaticus : Class ;
+  RallusAquaticus_Class : SubClass RallusAquaticus Bird ;
+
+  FulicaAtra : Class ;
+  FulicaAtra_Class : SubClass FulicaAtra Bird ;
+
+  GallinulaChloropus : Class ;
+  GallinulaChloropus_Class : SubClass GallinulaChloropus Bird ;
+
+  GrusGrus : Class ;
+  GrusGrus_Class : SubClass GrusGrus Bird ;
+
+  HaematopusOstralegus : Class ;
+  HaematopusOstralegus_Class : SubClass HaematopusOstralegus Bird ;
+
+  CharadriusHiaticula : Class ;
+  CharadriusHiaticula_Class : SubClass CharadriusHiaticula Bird ;
+
+  PluvialisApricaria : Class ;
+  PluvialisApricaria_Class : SubClass PluvialisApricaria Bird ;
+
+  VanellusVanellus : Class ;
+  VanellusVanellus_Class : SubClass VanellusVanellus Bird ;
+
+  CalidrisAlpina : Class ;
+  CalidrisAlpina_Class : SubClass CalidrisAlpina Bird ;
+
+  TringaGlareola : Class ;
+  TringaGlareola_Class : SubClass TringaGlareola Bird ;
+
+  TringaOchropus : Class ;
+  TringaOchropus_Class : SubClass TringaOchropus Bird ;
+
+  NumeniusArquata : Class ;
+  NumeniusArquata_Class : SubClass NumeniusArquata Bird ;
+
+  ScolopaxRusticola : Class ;
+  ScolopaxRusticola_Class : SubClass ScolopaxRusticola Bird ;
+
+  GallinagoGallinago : Class ;
+  GallinagoGallinago_Class : SubClass GallinagoGallinago Bird ;
+
+  LymnocryptesMinimus : Class ;
+  LymnocryptesMinimus_Class : SubClass LymnocryptesMinimus Bird ;
+
+  TringaTotanus : Class ;
+  TringaTotanus_Class : SubClass TringaTotanus Bird ;
+
+  TringaErythropus : Class ;
+  TringaErythropus_Class : SubClass TringaErythropus Bird ;
+
+  TringaNebularia : Class ;
+  TringaNebularia_Class : SubClass TringaNebularia Bird ;
+
+  StercorariusParasiticus : Class ;
+  StercorariusParasiticus_Class : SubClass StercorariusParasiticus Bird ;
+
+  LarusRidibundus : Class ;
+  LarusRidibundus_Class : SubClass LarusRidibundus Bird ;
+
+  LarusCanus : Class ;
+  LarusCanus_Class : SubClass LarusCanus Bird ;
+
+  LarusArgentatus : Class ;
+  LarusArgentatus_Class : SubClass LarusArgentatus Bird ;
+
+  LarusFuscus : Class ;
+  LarusFuscus_Class : SubClass LarusFuscus Bird ;
+
+  LarusMarinus : Class ;
+  LarusMarinus_Class : SubClass LarusMarinus Bird ;
+
+  SternaSandvicensis : Class ;
+  SternaSandvicensis_Class : SubClass SternaSandvicensis Bird ;
+
+  SternaCaspia : Class ;
+  SternaCaspia_Class : SubClass SternaCaspia Bird ;
+
+  SternaHirundo : Class ;
+  SternaHirundo_Class : SubClass SternaHirundo Bird ;
+
+  SternaParadisaea : Class ;
+  SternaParadisaea_Class : SubClass SternaParadisaea Bird ;
+
+  AlcaTorda : Class ;
+  AlcaTorda_Class : SubClass AlcaTorda Bird ;
+
+  ColumbaOenas : Class ;
+  ColumbaOenas_Class : SubClass ColumbaOenas Bird ;
+
+  ColumbaPalumnbus : Class ;
+  ColumbaPalumnbus_Class : SubClass ColumbaPalumnbus Bird ;
+
+  StreptopeliaDecaocto : Class ;
+  StreptopeliaDecaocto_Class : SubClass StreptopeliaDecaocto Bird ;
+
+  StrixAluco : Class ;
+  StrixAluco_Class : SubClass StrixAluco Bird ;
+
+  StrixUralensis : Class ;
+  StrixUralensis_Class : SubClass StrixUralensis Bird ;
+
+  BuboBubo : Class ;
+  BuboBubo_Class : SubClass BuboBubo Bird ;
+
+  AsioFlammeus : Class ;
+  AsioFlammeus_Class : SubClass AsioFlammeus Bird ;
+
+  AsioOtus : Class ;
+  AsioOtus_Class : SubClass AsioOtus Bird ;
+
+  AegoliusFunereus : Class ;
+  AegoliusFunereus_Class : SubClass AegoliusFunereus Bird ;
+
+  GlaucidiumPasserinum : Class ;
+  GlaucidiumPasserinum_Class : SubClass GlaucidiumPasserinum Bird ;
+
+  CuculusCanorus : Class ;
+  CuculusCanorus_Class : SubClass CuculusCanorus Bird ;
+
+  CaprimulgusEuropaeus : Class ;
+  CaprimulgusEuropaeus_Class : SubClass CaprimulgusEuropaeus Bird ;
+
+  PicusViridis : Class ;
+  PicusViridis_Class : SubClass PicusViridis Bird ;
+
+  DryocopusMartius : Class ;
+  DryocopusMartius_Class : SubClass DryocopusMartius Bird ;
+
+  JynxTorquilla : Class ;
+  JynxTorquilla_Class : SubClass JynxTorquilla Bird ;
+
+  DendrocoposMajor : Class ;
+  DendrocoposMajor_Class : SubClass DendrocoposMajor Bird ;
+
+  DendrocoposMinor : Class ;
+  DendrocoposMinor_Class : SubClass DendrocoposMinor Bird ;
+
+  AlaudaArvensis : Class ;
+  AlaudaArvensis_Class : SubClass AlaudaArvensis Bird ;
+
+  LullulaArborea : Class ;
+  LullulaArborea_Class : SubClass LullulaArborea Bird ;
+
+  ApusApus : Class ;
+  ApusApus_Class : SubClass ApusApus Bird ;
+
+  HirundoRustica : Class ;
+  HirundoRustica_Class : SubClass HirundoRustica Bird ;
+
+  DelichonUrbicum : Class ;
+  DelichonUrbicum_Class : SubClass DelichonUrbicum Bird ;
+
+  AnthusPratensis : Class ;
+  AnthusPratensis_Class : SubClass AnthusPratensis Bird ;
+
+  AnthusTrivialis : Class ;
+  AnthusTrivialis_Class : SubClass AnthusTrivialis Bird ;
+
+  MotacillaAlba : Class ;
+  MotacillaAlba_Class : SubClass MotacillaAlba Bird ;
+
+  MotacillaFlava : Class ;
+  MotacillaFlava_Class : SubClass MotacillaFlava Bird ;
+
+  TroglodytesTroglodytes : Class ;
+  TroglodytesTroglodytes_Class : SubClass TroglodytesTroglodytes Bird ;
+
+  BombycillaGarrulus : Class ;
+  BombycillaGarrulus_Class : SubClass BombycillaGarrulus Bird ;
+
+  PrunellaModularis : Class ;
+  PrunellaModularis_Class : SubClass PrunellaModularis Bird ;
+
+  LusciniaLuscinia : Class ;
+  LusciniaLuscinia_Class : SubClass LusciniaLuscinia Bird ;
+
+  ErithacusRubecula : Class ;
+  ErithacusRubecula_Class : SubClass ErithacusRubecula Bird ;
+
+  LusciniaSvecica : Class ;
+  LusciniaSvecica_Class : SubClass LusciniaSvecica Bird ;
+
+  PhoenicurusPhoenicurus : Class ;
+  PhoenicurusPhoenicurus_Class : SubClass PhoenicurusPhoenicurus Bird ;
+
+  OenantheOenanthe : Class ;
+  OenantheOenanthe_Class : SubClass OenantheOenanthe Bird ;
+
+  SaxicollaRubetra : Class ;
+  SaxicollaRubetra_Class : SubClass SaxicollaRubetra Bird ;
+
+  TurdusPhilomelos : Class ;
+  TurdusPhilomelos_Class : SubClass TurdusPhilomelos Bird ;
+
+  TurdusIliacus : Class ;
+  TurdusIliacus_Class : SubClass TurdusIliacus Bird ;
+
+  TurdusViscivorus : Class ;
+  TurdusViscivorus_Class : SubClass TurdusViscivorus Bird ;
+
+  TurdusPilaris : Class ;
+  TurdusPilaris_Class : SubClass TurdusPilaris Bird ;
+
+  TurdusMerula : Class ;
+  TurdusMerula_Class : SubClass TurdusMerula Bird ;
+
+  SylviaBorin : Class ;
+  SylviaBorin_Class : SubClass SylviaBorin Bird ;
+
+  SylviaAtricapilla : Class ;
+  SylviaAtricapilla_Class : SubClass SylviaAtricapilla Bird ;
+
+  SylviaCurruca : Class ;
+  SylviaCurruca_Class : SubClass SylviaCurruca Bird ;
+
+  SylviaCommunis : Class ;
+  SylviaCommunis_Class : SubClass SylviaCommunis Bird ;
+
+  AcrocephalusSchoenobaenus : Class ;
+  AcrocephalusSchoenobaenus_Class : SubClass AcrocephalusSchoenobaenus Bird ;
+
+  AcrocephalusScirpaceus : Class ;
+  AcrocephalusScirpaceus_Class : SubClass AcrocephalusScirpaceus Bird ;
+
+  AcrocephalusPalustris : Class ;
+  AcrocephalusPalustris_Class : SubClass AcrocephalusPalustris Bird ;
+
+  PhylloscopusTrochilus : Class ;
+  PhylloscopusTrochilus_Class : SubClass PhylloscopusTrochilus Bird ;
+
+  PhylloscopusCollybita : Class ;
+  PhylloscopusCollybita_Class : SubClass PhylloscopusCollybita Bird ;
+
+  PhylloscopusSibilatrix : Class ;
+  PhylloscopusSibilatrix_Class : SubClass PhylloscopusSibilatrix Bird ;
+
+  HippolaisIcterina : Class ;
+  HippolaisIcterina_Class : SubClass HippolaisIcterina Bird ;
+
+  RegulusRegulus : Class ;
+  RegulusRegulus_Class : SubClass RegulusRegulus Bird ;
+
+  FicedulaHypoleuca : Class ;
+  FicedulaHypoleuca_Class : SubClass FicedulaHypoleuca Bird ;
+
+  ParisMajor : Class ;
+  ParisMajor_Class : SubClass ParisMajor Bird ;
+
+  ParisCaeruleus : Class ;
+  ParisCaeruleus_Class : SubClass ParisCaeruleus Bird ;
+
+  SittaEuropaea : Class ;
+  SittaEuropaea_Class : SubClass SittaEuropaea Bird ;
+
+  ParisCristatus : Class ;
+  ParisCristatus_Class : SubClass ParisCristatus Bird ;
+
+  ParusAter : Class ;
+  ParusAter_Class : SubClass ParusAter Bird ;
+
+  ParusMontanus : Class ;
+  ParusMontanus_Class : SubClass ParusMontanus Bird ;
+
+  ParusPalustris : Class ;
+  ParusPalustris_Class : SubClass ParusPalustris Bird ;
+
+  AegithalosCaudatis : Class ;
+  AegithalosCaudatis_Class : SubClass AegithalosCaudatis Bird ;
+
+  PanururBiarmicus : Class ;
+  PanururBiarmicus_Class : SubClass PanururBiarmicus Bird ;
+
+  LaniusCollurio : Class ;
+  LaniusCollurio_Class : SubClass LaniusCollurio Bird ;
+
+  GarrulusGlandarius : Class ;
+  GarrulusGlandarius_Class : SubClass GarrulusGlandarius Bird ;
+
+  PicaPica : Class ;
+  PicaPica_Class : SubClass PicaPica Bird ;
+
+  NucifragaCaryocatactes : Class ;
+  NucifragaCaryocatactes_Class : SubClass NucifragaCaryocatactes Bird ;
+
+  CorvusMonedula : Class ;
+  CorvusMonedula_Class : SubClass CorvusMonedula Bird ;
+
+  CorvusFrugilegus : Class ;
+  CorvusFrugilegus_Class : SubClass CorvusFrugilegus Bird ;
+
+  CorvusCorone : Class ;
+  CorvusCorone_Class : SubClass CorvusCorone Bird ;
+
+  CorvusCorax : Class ;
+  CorvusCorax_Class : SubClass CorvusCorax Bird ;
+
+  SturnusVulgaris : Class ;
+  SturnusVulgaris_Class : SubClass SturnusVulgaris Bird ;
+
+  PasserDomesticus : Class ;
+  PasserDomesticus_Class : SubClass PasserDomesticus Bird ;
+
+  PasserMontanus : Class ;
+  PasserMontanus_Class : SubClass PasserMontanus Bird ;
+
+  FringillaCoelebs : Class ;
+  FringillaCoelebs_Class : SubClass FringillaCoelebs Bird ;
+
+  FringillaMontifringilla : Class ;
+  FringillaMontifringilla_Class : SubClass FringillaMontifringilla Bird ;
+
+  CarpodacusErythrinus : Class ;
+  CarpodacusErythrinus_Class : SubClass CarpodacusErythrinus Bird ;
+
+  CarduelisCannabina : Class ;
+  CarduelisCannabina_Class : SubClass CarduelisCannabina Bird ;
+
+  CarduelisFlammea : Class ;
+  CarduelisFlammea_Class : SubClass CarduelisFlammea Bird ;
+
+  CarduelisCarduelis : Class ;
+  CarduelisCarduelis_Class : SubClass CarduelisCarduelis Bird ;
+
+  CarduelisChloris : Class ;
+  CarduelisChloris_Class : SubClass CarduelisChloris Bird ;
+
+  CarduelisSpinus : Class ;
+  CarduelisSpinus_Class : SubClass CarduelisSpinus Bird ;
+
+  PyrrhulaPyrrhula : Class ;
+  PyrrhulaPyrrhula_Class : SubClass PyrrhulaPyrrhula Bird ;
+
+  LoxiaCurvirostra : Class ;
+  LoxiaCurvirostra_Class : SubClass LoxiaCurvirostra Bird ;
+
+  EmberizaSchoeniclus : Class ;
+  EmberizaSchoeniclus_Class : SubClass EmberizaSchoeniclus Bird ;
+
+  PlectrophenaxNivalis : Class ;
+  PlectrophenaxNivalis_Class : SubClass PlectrophenaxNivalis Bird ;
+
+  CalcariusLapponicus : Class ;
+  CalcariusLapponicus_Class : SubClass CalcariusLapponicus Bird ;
+
+  EmberizaHortulana : Class ;
+  EmberizaHortulana_Class : SubClass EmberizaHortulana Bird ;
+
+  EmberizaCitrinella : Class ;
+  EmberizaCitrinella_Class : SubClass EmberizaCitrinella Bird ;
+
+}
diff --git a/examples/SUMO/BirdsBul.gf b/examples/SUMO/BirdsBul.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/BirdsBul.gf
@@ -0,0 +1,157 @@
+concrete BirdsBul of Birds = MergeBul ** open SyntaxBul, ParadigmsBul, ResBul in {
+
+flags
+  coding=utf8 ;
+
+lin
+  GaviaStellata = mkCN (mkA076 "червеногуш") (mkN007b "гмуркач") ;
+  GaviaArctica  = mkCN (mkA076 "черногуш") (mkN007b "гмуркач") ;
+  PodicepsCristatus  = mkCN (mkA081 "голям") (mkN008a "гмурец") ;
+  PodicepsAuritus = mkCN (mkA076 "ушат") (mkN008a "гмурец") ;
+  ArdeaCinerea = mkCN (mkA076 "сив") (mkN041 "чапла") ;
+  BotaurusStellaris = mkCN (mkA081 "голям") (mkCN (mkA079 "воден") (mkN001 "бик")) ;
+  CygnusOlor = mkCN (mkA081 "ням") (mkN007 "лебед") ;
+  CygnusCygnus = mkCN (mkA085 "поен") (mkN007 "лебед") ;
+  AnserFabalis = mkCN (mkA079 "посевен") (mkN041 "гъска") ;
+  AnserAnser = mkCN (mkA076 "сив") (mkN041 "гъска") ;
+  BrantaCanadensis = mkCN (mkA078 "канадски") (mkN041 "гъска") ;
+  BrantaLeucopsis = mkCN (mkA076 "белобуз") (mkN041 "гъска") ;
+  TadornaTadorna = mkCN (mkA081 "бял") (mkN007 "ангъч") ;
+  AnasPlatyrhynchos = mkCN (mkA076 "зеленоглав") (mkN041 "патица") ;
+  AnasPenelope = mkCN (mkN001 "фиш") ;
+  AnasCrecca = mkCN (mkA079 "зимен") (mkN065 "бърне") ;
+  BucephalaClangula = mkCN (mkN041 "звънарка") ;
+  ClangulaHyemalis = mkCN (mkA076 "леден") (mkN041 "потапница") ;
+  SomateriaMollissima = mkCN (mkA076 "обикновен")  (mkN041 "гага") ;
+  MergusMerganser = mkCN (mkA081 "голям") (mkN008 "нирец") ;
+  MelanittaNigra = mkCN (mkA079 "траурен") (mkN041 "потапница") ;
+  HaliaeetusAlbicilla = mkCN (mkA078 "морски") (mkN008 "орел") ;
+  PandionHaliaetus = mkCN (compoundN (mkN008 "орел") (mkN031a "рибар")) ;
+  ButeoButeo = mkCN (mkA076 "обикновен") (mkN007 "мишелов") ;
+  AccipiterGentilis = mkCN (mkA081 "голям") (mkN007 "ястреб") ;
+  AccipiterNisus = mkCN (mkA080 "малък") (mkN007 "ястреб") ;
+  FalcoTinnunculus = mkCN (mkN007 "керкенез") ;
+  LagopusLagopus = mkCN (mkA081 "бял") (mkN041 "яребица") ;
+  LagopusMutus = mkCN (mkA076 "тундров") (mkN041 "яребица") ;
+  TetraoUrogallus = mkCN (mkN031 "глухар") ;
+  LyrurusTetrix = mkCN (mkA079 "черен") (mkN041 "яребица") ;
+  PhasianusColchicus = mkCN (mkA078 "колхидски") (mkN007 "фазан") ;
+  RallusAquaticus = mkCN (mkN008 "крещалец") ;
+  FulicaAtra = mkCN (mkN041 "лиска") ;
+  GallinulaChloropus = mkCN (mkN041 "зеленоножка") ;
+  GrusGrus = mkCN (mkA076 "сив") (mkN007 "жерав") ;
+  HaematopusOstralegus = mkCN (mkN007 "стридояд") ;
+  CharadriusHiaticula = mkCN (mkA079 "пясъчен") (mkN008 "дъждосвирец") ;
+  PluvialisApricaria = mkCN (mkA076 "златист") (mkN041 "булка") ;
+  VanellusVanellus = mkCN (mkA076 "обикновен") (mkN041 "калугерица") ;
+  CalidrisAlpina = mkCN (mkA076 "тъмногръд") (mkN007 "брегобегач") ;
+  TringaGlareola = mkCN (mkA080 "малък") (mkCN (mkA078 "горски") (mkCN (mkN007 "водобегач"))) ;
+  TringaOchropus = mkCN (mkA081 "голям") (mkCN (mkA078 "горски") (mkCN (mkN007 "водобегач"))) ;
+  NumeniusArquata = mkCN (mkA081 "голям") (mkN008 "свирец") ;
+  ScolopaxRusticola = mkCN (mkA078 "горски") (mkN007 "бекас") ;
+  GallinagoGallinago = mkCN (mkA079 "среден") (mkN041 "бекасина") ;
+  LymnocryptesMinimus = mkCN (mkA080 "малък") (mkN041 "бекасина") ;
+  TringaTotanus = mkCN (mkA080 "малък") (mkCN (mkA076 "червенокрак") (mkCN (mkN007 "водобегач"))) ;
+  TringaErythropus = mkCN (mkA081 "голям") (mkCN (mkA076 "червенокрак") (mkCN (mkN007 "водобегач"))) ;
+  TringaNebularia = mkCN (mkA081 "голям") (mkCN (mkA076 "зеленокрак") (mkCN (mkN007 "водобегач"))) ;
+  StercorariusParasiticus = mkCN (mkA079 "среден") (mkN014 "морелетник") ;
+  LarusRidibundus = mkCN (mkA079 "речен") (mkN041 "чайка") ;
+  LarusCanus = mkCN (compoundN (mkN041 "чайка") (mkN041 "буревестница")) ;
+  LarusArgentatus = mkCN (mkA076 "сребрист") (mkN041 "чайка") ;
+  LarusFuscus = mkCN (mkA080 "малък") (mkCN (mkA076 "черногърб") (mkCN (mkN041 "чайка"))) ;
+  LarusMarinus = mkCN (mkA081 "голям") (mkCN (mkA076 "черногърб") (mkCN (mkN041 "чайка"))) ;
+  SternaSandvicensis = mkCN (mkA076 "гривест") (mkN041 "рибарка") ;
+  SternaCaspia = mkCN (mkA078 "каспийски") (mkN041 "рибарка") ;
+  SternaHirundo = mkCN (mkA079 "речен") (mkN041 "рибарка") ;
+  SternaParadisaea = mkCN (mkA079 "полярен") (mkN041 "рибарка") ;
+  AlcaTorda = mkCN (mkN041a "гагарка") ;
+  ColumbaOenas = mkCN (compoundN (mkN007 "гълъб") (mkN007 "хралупар")) ;
+  ColumbaPalumnbus = mkCN (mkN014 "гривяк") ;
+  StreptopeliaDecaocto = mkCN (mkN041 "гугутка") ;
+  StrixAluco = mkCN (mkA078 "горски") (mkN041 "улулица") ;
+  StrixUralensis = mkCN (mkA078 "уралски") (mkN041 "улулица") ;
+  BuboBubo = mkCN (mkN007 "бухал") ;
+  AsioFlammeus = mkCN (mkA079 "блатен") (mkN041 "сова") ;
+  AsioOtus = mkCN (mkA078 "горски") (mkCN (mkA076 "ушат") (mkCN (mkN041 "сова"))) ;
+  AegoliusFunereus = mkCN (mkA076 "пернатоног") (mkN041 "кукумявка") ;
+  GlaucidiumPasserinum = mkCN (mkA080 "малък") (mkN041 "кукумявка") ;
+  CuculusCanorus = mkCN (mkA076 "обикновен") (mkN041 "кукувица") ;
+  CaprimulgusEuropaeus = mkCN (mkN032 "козодой") ;
+  PicusViridis = mkCN (mkA076 "зелен") (mkN007 "кълвач") ;
+  DryocopusMartius = mkCN (mkA079 "черен") (mkN007 "кълвач") ;
+  JynxTorquilla = mkCN (mkN041 "въртошийка") ;
+  DendrocoposMajor = mkCN (mkA081 "голям") (mkCN (mkA080 "пъстър") (mkCN (mkN007 "кълвач"))) ;
+  DendrocoposMinor = mkCN (mkA080 "малък") (mkCN (mkA080 "пъстър") (mkCN (mkN007 "кълвач"))) ;
+  AlaudaArvensis = mkCN (mkA078 "полски") (mkN041 "чучулига") ;
+  LullulaArborea = mkCN (mkA078 "горски") (mkN041 "чучулига") ;
+  ApusApus = mkCN (mkA079 "черен") (mkN007 "бързолет") ;
+  HirundoRustica = mkCN (mkA078 "селски") (mkN041 "лястовица") ;
+  DelichonUrbicum = mkCN (mkA078 "градски") (mkN041 "лястовица") ;
+  AnthusPratensis = mkCN (mkA079 "ливаден") (mkN041 "бъбрица") ;
+  AnthusTrivialis = mkCN (mkA078 "горски") (mkN041 "бъбрица") ;
+  MotacillaAlba = mkCN (mkA081 "бял") (mkN041 "стърчиопашка") ;
+  MotacillaFlava = mkCN (mkA076 "жълт") (mkN041 "стърчиопашка") ;
+  TroglodytesTroglodytes = mkCN (mkN065 "орехче") ;
+  BombycillaGarrulus = mkCN (mkN041 "копринарка") ;
+  PrunellaModularis = mkCN (mkA076 "сивогуш") (mkN041 "завирушка") ;
+  LusciniaLuscinia = mkCN (mkA079 "северен") (mkN032 "славей") ;
+  ErithacusRubecula = mkCN (mkN041 "червеногръдка") ;
+  LusciniaSvecica = mkCN (mkN041 "синьогушка") ;
+  PhoenicurusPhoenicurus = mkCN (mkA078 "градски") (mkN041 "червеноопашка") ;
+  OenantheOenanthe = mkCN (mkA076 "сив") (mkN065 "каменарче") ;
+  SaxicollaRubetra = mkCN (mkA076 "ръждивогуш") (mkN065 "ливадарче") ;
+  TurdusPhilomelos = mkCN (mkA085 "поен") (mkN001 "дрозд") ;
+  TurdusIliacus = mkCN (mkA076 "беловежд") (mkN001 "дрозд") ;
+  TurdusViscivorus = mkCN (mkA076 "имелов") (mkN001 "дрозд") ;
+  TurdusPilaris = mkCN (mkA076 "хвойнов") (mkN001 "дрозд") ;
+  TurdusMerula = mkCN (mkN001 "кос") ;
+  SylviaBorin = mkCN (mkA078 "градски") (mkN065 "коприварче") ;
+  SylviaAtricapilla = mkCN (mkA081 "голям") (mkCN (mkA076 "черноглав") (mkCN (mkN065 "коприварче"))) ;
+  SylviaCurruca = mkCN (mkA080 "малък") (mkCN (mkA076 "белогуш") (mkCN (mkN065 "коприварче"))) ;
+  SylviaCommunis = mkCN (mkA081 "голям") (mkCN (mkA076 "белогуш") (mkCN (mkN065 "коприварче"))) ;
+  AcrocephalusSchoenobaenus = mkCN (mkA079 "крайбрежен") (mkN065 "шаварче") ;
+  AcrocephalusScirpaceus = mkCN (mkA079 "блатен") (mkN065 "шаварче") ;
+  AcrocephalusPalustris = mkCN (mkA079 "мочурен") (mkN065 "шаварче") ;
+  PhylloscopusTrochilus = mkCN (mkA076 "брезов") (mkN008 "певец") ;
+  PhylloscopusCollybita = mkCN (mkA076 "елов") (mkN008 "певец") ;
+  PhylloscopusSibilatrix = mkCN (mkA076 "буков") (mkN008 "певец") ;
+  HippolaisIcterina = mkCN (mkA078 "градски") (mkN014 "присмехулник") ;
+  RegulusRegulus = mkCN (mkA076 "жълтоглав") (mkN065 "кралче") ;
+  FicedulaHypoleuca = mkCN (mkA079 "жалобен") (mkN041 "мухоловка") ;
+  ParisMajor = mkCN (mkA081 "голям") (mkN007 "синигер") ;
+  ParisCaeruleus = mkCN (mkA086 "син") (mkN007 "синигер") ;
+  SittaEuropaea = mkCN (mkA078 "горски") (mkN041 "зидарка") ;
+  ParisCristatus = mkCN (mkA076 "качулат") (mkN007 "синигер") ;
+  ParusAter = mkCN (mkA079 "черен") (mkN007 "синигер") ;
+  ParusMontanus = mkCN (mkA076 "матовоглав") (mkN007 "синигер") ;
+  ParusPalustris = mkCN (mkA076 "лъскавоглав") (mkN007 "синигер") ;
+  AegithalosCaudatis = mkCN (mkA076 "дългоопашат") (mkN007 "синигер") ;
+  PanururBiarmicus = mkCN (mkA076 "мустакат") (mkN007 "синигер") ;
+  LaniusCollurio = mkCN (mkA076 "червеногърб") (mkN041 "сврачка") ;
+  GarrulusGlandarius = mkCN (mkN041 "сойка") ;
+  PicaPica = mkCN (mkN041 "сврака") ;
+  NucifragaCaryocatactes = mkCN (mkN041 "сокерица") ;
+  CorvusMonedula = mkCN (mkN041 "гарга") ;
+  CorvusFrugilegus = mkCN (mkA079 "посевен") (mkN041 "врана") ;
+  CorvusCorone = mkCN (mkA079 "черен") (mkN041 "врана") ;
+  CorvusCorax = mkCN (compoundN (mkN007 "гарван") (mkN031 "гробар")) ;
+  SturnusVulgaris = mkCN (mkA076 "обикновен") (mkN008 "скорец") ;
+  PasserDomesticus = mkCN (mkA079 "домашен") (mkN065 "врабче") ;
+  PasserMontanus = mkCN (mkA078 "полски") (mkN065 "врабче") ;
+  FringillaCoelebs = mkCN (mkA076 "обикновен") (mkN041 "чинка") ;
+  FringillaMontifringilla = mkCN (mkA078 "планински") (mkN041 "чинка") ;
+  CarpodacusErythrinus = mkCN (mkA076 "червен") (mkN041 "чинка") ;
+  CarduelisCannabina = mkCN (mkA076 "обикновен") (mkN065 "конопарче") ;
+  CarduelisFlammea = mkCN (mkA076 "брезов") (mkN047 "скатия") ;
+  CarduelisCarduelis = mkCN (mkN041 "кадънка") ;
+  CarduelisChloris = mkCN (mkN041 "зеленика") ;
+  CarduelisSpinus = mkCN (mkA076 "елхов") (mkN047 "скатия") ;
+  PyrrhulaPyrrhula = mkCN (mkN041 "червенушка") ;
+  LoxiaCurvirostra = mkCN (mkA076 "обикновен") (mkN041 "кръсточовка") ;
+  EmberizaSchoeniclus = mkCN (mkA076 "тръстиков") (mkN041 "овесарка") ;
+  PlectrophenaxNivalis = mkCN (mkA079 "снежен") (mkN041 "овесарка") ;
+  CalcariusLapponicus = mkCN (mkA078 "Лапландски") (mkN041 "овесарка") ;
+  EmberizaHortulana = mkCN (mkA078 "градински") (mkN041 "овесарка") ;
+  EmberizaCitrinella = mkCN (mkA076 "жълт") (mkN041 "овесарка") ;
+
+}
diff --git a/examples/SUMO/BirdsEng.gf b/examples/SUMO/BirdsEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/BirdsEng.gf
@@ -0,0 +1,158 @@
+concrete BirdsEng of Birds = MergeEng ** open SyntaxEng, ParadigmsEng in {
+
+flags
+  coding=utf8 ;
+
+lin
+  GaviaStellata = mkCN (compoundN "red-throated" (mkN "loon")) ;
+  GaviaArctica  = mkCN (compoundN "black-throated" (mkN "loon")) ;
+  PodicepsCristatus  = mkCN (compoundN "great crested" (mkN "grebe")) ;
+  PodicepsAuritus = mkCN (compoundN "horned" (mkN "grebe")) ;
+  ArdeaCinerea = mkCN (compoundN "grey" (mkN "heron")) ;
+  BotaurusStellaris = mkCN (compoundN "eurasian" (mkN "bittern")) ;
+  CygnusOlor = mkCN (compoundN "mute" (mkN "swan")) ;
+  CygnusCygnus = mkCN (compoundN "whooper" (mkN "swan")) ;
+  AnserFabalis = mkCN (compoundN "bean" (mkN "goose")) ;
+  AnserAnser = mkCN (compoundN "greylag" (mkN "goose")) ;
+  BrantaCanadensis = mkCN (compoundN "canada" (mkN "goose")) ;
+  BrantaLeucopsis = mkCN (compoundN "barnacle" (mkN "goose")) ;
+  TadornaTadorna = mkCN (compoundN "common" (mkN "shelduck")) ;
+  AnasPlatyrhynchos = mkCN (mkN "mallard") ;
+  AnasPenelope = mkCN (compoundN "eurasian" (mkN "wigeon")) ;
+  AnasCrecca = mkCN (compoundN "common" (mkN "teal")) ;
+  BucephalaClangula = mkCN (compoundN "common" (mkN "goldeneye")) ;
+  ClangulaHyemalis = mkCN (compoundN "long-tailed" (mkN "duck")) ;
+  SomateriaMollissima = mkCN (compoundN "common" (mkN "eider")) ;
+  MergusMerganser = mkCN (compoundN "common" (mkN "merganser")) ;
+  MelanittaNigra = mkCN (compoundN "common" (mkN "scoter")) ;
+  HaliaeetusAlbicilla = mkCN (compoundN "white-tailed" (mkN "eagle")) ;
+  PandionHaliaetus = mkCN (mkN "osprey") ;
+  ButeoButeo = mkCN (compoundN "common" (mkN "buzzard")) ;
+  AccipiterGentilis = mkCN (compoundN "northern" (mkN "goshawk")) ;
+  AccipiterNisus = mkCN (compoundN "eurasian" (mkN "sparrowhawk")) ;
+  FalcoTinnunculus = mkCN (compoundN "common" (mkN "kestrel")) ;
+  LagopusLagopus = mkCN (compoundN "willow" (mkN "grouse")) ;
+  LagopusMutus = mkCN (compoundN "rock" (mkN "ptarmigan")) ;
+  TetraoUrogallus = mkCN (compoundN "western" (mkN "capercaillie")) ;
+  LyrurusTetrix = mkCN (compoundN "black" (mkN "grouse")) ;
+  PhasianusColchicus = mkCN (compoundN "common" (mkN "pheasant")) ;
+  RallusAquaticus = mkCN (compoundN "water" (mkN "rail")) ;
+  FulicaAtra = mkCN (compoundN "eurasian" (mkN "coot")) ;
+  GallinulaChloropus = mkCN (compoundN "common" (mkN "moorhen")) ;
+  GrusGrus = mkCN (compoundN "common" (mkN "crane")) ;
+  HaematopusOstralegus = mkCN (compoundN "eurasian" (mkN "oystercatcher")) ;
+  CharadriusHiaticula = mkCN (compoundN "ringed" (mkN "plover")) ;
+  PluvialisApricaria = mkCN (compoundN "eurasian Golden" (mkN "plover")) ;
+  VanellusVanellus = mkCN (compoundN "northern" (mkN "lapwing")) ;
+  CalidrisAlpina = mkCN (mkN "dunlin") ;
+  TringaGlareola = mkCN (compoundN "wood" (mkN "sandpiper")) ;
+  TringaOchropus = mkCN (compoundN "green" (mkN "sandpiper")) ;
+  NumeniusArquata = mkCN (compoundN "eurasian" (mkN "curlew")) ;
+  ScolopaxRusticola = mkCN (compoundN "eurasian" (mkN "woodcock")) ;
+  GallinagoGallinago = mkCN (compoundN "common" (mkN "snipe")) ;
+  LymnocryptesMinimus = mkCN (compoundN "jack" (mkN "snipe")) ;
+  TringaTotanus = mkCN (compoundN "common" (mkN "redshank")) ;
+  TringaErythropus = mkCN (compoundN "spotted" (mkN "redshank")) ;
+  TringaNebularia = mkCN (mkN "greenshank") ;
+  StercorariusParasiticus = mkCN (compoundN "parasitic" (mkN "jaeger")) ;
+  LarusRidibundus = mkCN (compoundN "black-headed" (mkN "gull")) ;
+  LarusCanus = mkCN (compoundN "common" (mkN "gull")) ;
+  LarusArgentatus = mkCN (compoundN "european Herring" (mkN "gull")) ;
+  LarusFuscus = mkCN (compoundN "lesser Black-backed" (mkN "gull")) ;
+  LarusMarinus = mkCN (compoundN "great Black-backed" (mkN "gull")) ;
+  SternaSandvicensis = mkCN (compoundN "sandwich" (mkN "tern")) ;
+  SternaCaspia = mkCN (compoundN "caspian" (mkN "tern")) ;
+  SternaHirundo = mkCN (compoundN "common" (mkN "tern")) ;
+  SternaParadisaea = mkCN (compoundN "arctic" (mkN "tern")) ;
+  AlcaTorda = mkCN (mkN "razorbill") ;
+  ColumbaOenas = mkCN (compoundN "stock" (mkN "pigeon")) ;
+  ColumbaPalumnbus = mkCN (compoundN "common Wood" (mkN "pigeon")) ;
+  StreptopeliaDecaocto = mkCN (compoundN "eurasian Collared" (mkN "dove")) ;
+  StrixAluco = mkCN (compoundN "tawny" (mkN "owl")) ;
+  StrixUralensis = mkCN (compoundN "ural" (mkN "owl")) ;
+  BuboBubo = mkCN (compoundN "eurasian" (mkN "eagle-owl")) ;
+  AsioFlammeus = mkCN (compoundN "short-eared" (mkN "owl")) ;
+  AsioOtus = mkCN (compoundN "long-eared" (mkN "owl")) ;
+  AegoliusFunereus = mkCN (compoundN "tengmalm's" (mkN "owl")) ;
+  GlaucidiumPasserinum = mkCN (compoundN "eurasian" (mkN "pygmy-owl")) ;
+  CuculusCanorus = mkCN (compoundN "common" (mkN "cuckoo")) ;
+  CaprimulgusEuropaeus = mkCN (compoundN "european" (mkN "nightjar")) ;
+  PicusViridis = mkCN (compoundN "green" (mkN "woodpecker")) ;
+  DryocopusMartius = mkCN (compoundN "black" (mkN "woodpecker")) ;
+  JynxTorquilla = mkCN (compoundN "eurasian" (mkN "wryneck")) ;
+  DendrocoposMajor = mkCN (compoundN "great Spotted" (mkN "woodpecker")) ;
+  DendrocoposMinor = mkCN (compoundN "lesser Spotted" (mkN "woodpecker")) ;
+  AlaudaArvensis = mkCN (mkN "skylark") ;
+  LullulaArborea = mkCN (mkN "woodlark") ;
+  ApusApus = mkCN (compoundN "common" (mkN "swift")) ;
+  HirundoRustica = mkCN (compoundN "barn" (mkN "swallow")) ;
+  DelichonUrbicum = mkCN (compoundN "common House" (mkN "martin")) ;
+  AnthusPratensis = mkCN (compoundN "meadow" (mkN "pipit")) ;
+  AnthusTrivialis = mkCN (compoundN "tree" (mkN "pipit")) ;
+  MotacillaAlba = mkCN (compoundN "white" (mkN "wagtail")) ;
+  MotacillaFlava = mkCN (compoundN "yellow" (mkN "wagtail")) ;
+  TroglodytesTroglodytes = mkCN (compoundN "winter" (mkN "wren")) ;
+  BombycillaGarrulus = mkCN (compoundN "bohemian" (mkN "waxwing")) ;
+  PrunellaModularis = mkCN (mkN "dunnock") ;
+  LusciniaLuscinia = mkCN (compoundN "thrush" (mkN "nightingale")) ;
+  ErithacusRubecula = mkCN (compoundN "european" (mkN "robin")) ;
+  LusciniaSvecica = mkCN (mkN "bluethroat") ;
+  PhoenicurusPhoenicurus = mkCN (compoundN "common" (mkN "redstart")) ;
+  OenantheOenanthe = mkCN (compoundN "northern" (mkN "wheatear")) ;
+  SaxicollaRubetra = mkCN (mkN "whinchat") ;
+  TurdusPhilomelos = mkCN (compoundN "song" (mkN "thrush")) ;
+  TurdusIliacus = mkCN (mkN "redwing") ;
+  TurdusViscivorus = mkCN (compoundN "mistle" (mkN "thrush")) ;
+  TurdusPilaris = mkCN (mkN "fieldfare") ;
+  TurdusMerula = mkCN (compoundN "common" (mkN "blackbird")) ;
+  SylviaBorin = mkCN (compoundN "garden" (mkN "warbler")) ;
+  SylviaAtricapilla = mkCN (mkN "blackcap") ;
+  SylviaCurruca = mkCN (compoundN "lesser" (mkN "whitethroat")) ;
+  SylviaCommunis = mkCN (mkN "whitethroat") ;
+  AcrocephalusSchoenobaenus = mkCN (compoundN "sedge" (mkN "warbler")) ;
+  
+  AcrocephalusScirpaceus = mkCN (compoundN "eurasian Reed" (mkN "warbler")) ;
+  AcrocephalusPalustris = mkCN (compoundN "marsh" (mkN "warbler")) ;
+  PhylloscopusTrochilus = mkCN (compoundN "willow" (mkN "warbler")) ;
+  PhylloscopusCollybita = mkCN (mkN "chiffchaff") ;
+  PhylloscopusSibilatrix = mkCN (compoundN "wood" (mkN "warbler")) ;
+  HippolaisIcterina = mkCN (compoundN "icterine" (mkN "warbler")) ;
+  RegulusRegulus = mkCN (mkN "goldcrest") ;
+  FicedulaHypoleuca = mkCN (compoundN "european Pied" (mkN "flycatcher")) ;
+  ParisMajor = mkCN (compoundN "great" (mkN "tit")) ;
+  ParisCaeruleus = mkCN (compoundN "blue" (mkN "tit")) ;
+  SittaEuropaea = mkCN (compoundN "eurasian" (mkN "nuthatch")) ;
+  ParisCristatus = mkCN (compoundN "crested" (mkN "tit")) ;
+  ParusAter = mkCN (compoundN "coal" (mkN "tit")) ;
+  ParusMontanus = mkCN (compoundN "willow" (mkN "tit")) ;
+  ParusPalustris = mkCN (compoundN "marsh" (mkN "tit")) ;
+  AegithalosCaudatis = mkCN (compoundN "long-tailed" (mkN "tit")) ;
+  PanururBiarmicus = mkCN (compoundN "bearded" (mkN "reedling")) ;
+  LaniusCollurio = mkCN (compoundN "red-backed" (mkN "shrike")) ;
+  GarrulusGlandarius = mkCN (compoundN "eurasian" (mkN "jay")) ;
+  PicaPica = mkCN (compoundN "european" (mkN "magpie")) ;
+  NucifragaCaryocatactes = mkCN (compoundN "spotted" (mkN "nutcracker")) ;
+  CorvusMonedula = mkCN (mkN "jackdaw") ;
+  CorvusFrugilegus = mkCN (mkN "rook") ;
+  CorvusCorone = mkCN (compoundN "carrion" (mkN "crow")) ;
+  CorvusCorax = mkCN (compoundN "common" (mkN "raven")) ;
+  SturnusVulgaris = mkCN (compoundN "european" (mkN "starling")) ;
+  PasserDomesticus = mkCN (compoundN "house" (mkN "sparrow")) ;
+  PasserMontanus = mkCN (compoundN "eurasian Tree" (mkN "sparrow")) ;
+  FringillaCoelebs = mkCN (mkN "chaffinch") ;
+  FringillaMontifringilla = mkCN (mkN "brambling") ;
+  CarpodacusErythrinus = mkCN (compoundN "common" (mkN "rosefinch")) ;
+  CarduelisCannabina = mkCN (mkN "linnet") ;
+  CarduelisFlammea = mkCN (compoundN "common" (mkN "redpoll")) ;
+  CarduelisCarduelis = mkCN (compoundN "european" (mkN "goldfinch")) ;
+  CarduelisChloris = mkCN (compoundN "european" (mkN "greenfinch")) ;
+  CarduelisSpinus = mkCN (compoundN "eurasian" (mkN "siskin")) ;
+  PyrrhulaPyrrhula = mkCN (compoundN "eurasian" (mkN "bullfinch")) ;
+  LoxiaCurvirostra = mkCN (compoundN "common" (mkN "crossbill")) ;
+  EmberizaSchoeniclus = mkCN (compoundN "reed" (mkN "bunting")) ;
+  PlectrophenaxNivalis = mkCN (compoundN "snow" (mkN "bunting")) ;
+  CalcariusLapponicus = mkCN (compoundN "lapland" (mkN "longspur")) ;
+  EmberizaHortulana = mkCN (compoundN "ortolan" (mkN "bunting")) ;
+  EmberizaCitrinella = mkCN (mkN "yellowhammer") ;
+
+}
diff --git a/examples/SUMO/BirdsSwe.gf b/examples/SUMO/BirdsSwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/BirdsSwe.gf
@@ -0,0 +1,157 @@
+concrete BirdsSwe of Birds = MergeSwe ** open SyntaxSwe, ParadigmsSwe, Prelude in {
+
+flags
+  coding=utf8 ;
+
+lin
+  GaviaStellata = mkCN (mkN "smålom") ;
+  GaviaArctica  = mkCN (mkN "storlom") ;
+  PodicepsCristatus  = mkCN (mkN "skäggdopping") ;
+  PodicepsAuritus = mkCN (mkN "svarthakedopping") ;
+  ArdeaCinerea = mkCN (mkN "gråhäger") ;
+  BotaurusStellaris = mkCN (mkN "rördrom") ;
+  CygnusOlor = mkCN (mkN "knölsvan") ;
+  CygnusCygnus = mkCN (mkN "sångsvan") ;
+  AnserFabalis = mkCN (mkN "sädgås") ;
+  AnserAnser = mkCN (mkN "grågås") ;
+  BrantaCanadensis = mkCN (mkN "kanadagås") ;
+  BrantaLeucopsis = mkCN (mkA "vitkindad") (mkN "gås") ; -- fixme  vitkindada -> vitkindade
+  TadornaTadorna = mkCN (mkN "gravand") ;
+  AnasPlatyrhynchos = mkCN (mkN "gräsand") ;
+  AnasPenelope = mkCN (mkN "bläsand") ;
+  AnasCrecca = mkCN (mkN "kricka") ;
+  BucephalaClangula = mkCN (mkN "knipa") ;
+  ClangulaHyemalis = mkCN (mkN "alfågel") ;
+  SomateriaMollissima = mkCN (mkN "ejder") ;
+  MergusMerganser = mkCN (mkN "storskrake") ;
+  MelanittaNigra = mkCN (mkN "sjöorre") ;
+  HaliaeetusAlbicilla = mkCN (mkN "havsörn") ;
+  PandionHaliaetus = mkCN (mkN "fiskgjuse") ;
+  ButeoButeo = mkCN (mkN "ormvråk") ;
+  AccipiterGentilis = mkCN (mkN "duvhök") ;
+  AccipiterNisus = mkCN (mkN "sparvhök") ;
+  FalcoTinnunculus = mkCN (mkN "tornfalk") ;
+  LagopusLagopus = mkCN (mkN "dalripa") ;
+  LagopusMutus = mkCN (mkN "fjällripa") ;
+  TetraoUrogallus = mkCN (mkN "tjäder") ;
+  LyrurusTetrix = mkCN (mkN "orre") ;
+  PhasianusColchicus = mkCN (mkN "fasan") ;
+  RallusAquaticus = mkCN (mkN "vattenral") ;
+  FulicaAtra = mkCN (mkN "sothöna") ;
+  GallinulaChloropus = mkCN (mkN "rörhöna") ;
+  GrusGrus = mkCN (mkN "trana") ;
+  HaematopusOstralegus = mkCN (mkN "strandskata") ;
+  CharadriusHiaticula = mkCN (mkA "större") (mkN "strandpipare" utrum) ;
+  PluvialisApricaria = mkCN (mkN "ljungpipare") ;
+  VanellusVanellus = mkCN (mkN "tofsvipa") ;
+  CalidrisAlpina = mkCN (mkN "kärrsnäppa") ;
+  TringaGlareola = mkCN (mkN "grönbena") ;
+  TringaOchropus = mkCN (mkN "skogssnäppa") ;
+  NumeniusArquata = mkCN (mkN "storspov") ;
+  ScolopaxRusticola = mkCN (mkN "morkulla") ;
+  GallinagoGallinago = mkCN (mkN "enkelbeckasin") ;
+  LymnocryptesMinimus = mkCN (mkN "dvärgbeckasin") ;
+  TringaTotanus = mkCN (mkN "rödbena") ;
+  TringaErythropus = mkCN (mkN "svartsnäppa") ;
+  TringaNebularia = mkCN (mkN "gluttsnäppa") ;
+  StercorariusParasiticus = mkCN (mkN "kustlabb") ;
+  LarusRidibundus = mkCN (mkN "skrattmås") ;
+  LarusCanus = mkCN (mkN "fiskmås") ;
+  LarusArgentatus = mkCN (mkN "gråtrut") ;
+  LarusFuscus = mkCN (mkN "silltrut") ;
+  LarusMarinus = mkCN (mkN "havstrut") ;
+  SternaSandvicensis = mkCN (mkA "kentsk") (mkN "tärna") ;
+  SternaCaspia = mkCN (mkN "skräntärna") ;
+  SternaHirundo = mkCN (mkN "fisktärna") ;
+  SternaParadisaea = mkCN (mkN "silvertärna") ;
+  AlcaTorda = mkCN (mkN "tordmule") ;
+  ColumbaOenas = mkCN (mkN "skogsduva") ;
+  ColumbaPalumnbus = mkCN (mkN "ringduva") ;
+  StreptopeliaDecaocto = mkCN (mkN "turkduva") ;
+  StrixAluco = mkCN (mkN "kattuggla") ;
+  StrixUralensis = mkCN (mkN "slaguggla") ;
+  BuboBubo = mkCN (mkN "berguv") ;
+  AsioFlammeus = mkCN (mkN "jorduggla") ;
+  AsioOtus = mkCN (mkN "hornuggla") ;
+  AegoliusFunereus = mkCN (mkN "pärluggla") ;
+  GlaucidiumPasserinum = mkCN (mkN "sparvuggla") ;
+  CuculusCanorus = mkCN (mkN "gök") ;
+  CaprimulgusEuropaeus = mkCN (mkN "nattskärra") ;
+  PicusViridis = mkCN (mkN "gröngöling") ;
+  DryocopusMartius = mkCN (mkN "spillkråka") ;
+  JynxTorquilla = mkCN (mkN "göktyta") ;
+  DendrocoposMajor = mkCN (lin AP {s=(comparAP (irregA "stor" "större" "störst")).s; isPre=True}) (mkN "hackspett") ;
+  DendrocoposMinor = mkCN (lin AP {s=(comparAP (mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta")).s; isPre=True}) (mkN "hackspett") ;
+  AlaudaArvensis = mkCN (mkN "sånglärka") ;
+  LullulaArborea = mkCN (mkN "trädlärka") ;
+  ApusApus = mkCN (mkN "tornseglare") ;
+  HirundoRustica = mkCN (mkN "ladusvala") ;
+  DelichonUrbicum = mkCN (mkN "hussvala") ;
+  AnthusPratensis = mkCN (mkN "ängspiplärka") ;
+  AnthusTrivialis = mkCN (mkN "trädpiplärka") ;
+  MotacillaAlba = mkCN (mkN "sädesärla") ;
+  MotacillaFlava = mkCN (mkN "gulärla") ;
+  TroglodytesTroglodytes = mkCN (mkN "gärdsmyg") ;
+  BombycillaGarrulus = mkCN (mkN "sidensvans") ;
+  PrunellaModularis = mkCN (mkN "järnsparv") ;
+  LusciniaLuscinia = mkCN (mkN "näktergal") ;
+  ErithacusRubecula = mkCN (mkN "rödhake") ;
+  LusciniaSvecica = mkCN (mkN "blåhake") ;
+  PhoenicurusPhoenicurus = mkCN (mkN "rödstjärt") ;
+  OenantheOenanthe = mkCN (mkN "stenskvätta") ;
+  SaxicollaRubetra = mkCN (mkN "buskskvätta") ;
+  TurdusPhilomelos = mkCN (mkN "taltrast") ;
+  TurdusIliacus = mkCN (mkN "rödvingetrast") ;
+  TurdusViscivorus = mkCN (mkN "dubbeltrast") ;
+  TurdusPilaris = mkCN (mkN "björktrast") ;
+  TurdusMerula = mkCN (mkN "koltrast") ;
+  SylviaBorin = mkCN (mkN "trädgårdssångare") ;
+  SylviaAtricapilla = mkCN (mkN "svarthätta") ;
+  SylviaCurruca = mkCN (mkN "ärtsångare") ;
+  SylviaCommunis = mkCN (mkN "törnsångare") ;
+  AcrocephalusSchoenobaenus = mkCN (mkN "sävsångare") ;
+  AcrocephalusScirpaceus = mkCN (mkN "rörsångare") ;
+  AcrocephalusPalustris = mkCN (mkN "kärrsångare") ;
+  PhylloscopusTrochilus = mkCN (mkN "lövsångare") ;
+  PhylloscopusCollybita = mkCN (mkN "gransångare") ;
+  PhylloscopusSibilatrix = mkCN (mkN "grönsångare") ;
+  HippolaisIcterina = mkCN (mkN "härmsångare") ;
+  RegulusRegulus = mkCN (mkN "kungsfågel") ;
+  FicedulaHypoleuca = mkCN (mkA "svartvit") (mkN "flugsnappare" utrum) ;
+  ParisMajor = mkCN (mkN "talgoxe" utrum) ;
+  ParisCaeruleus = mkCN (mkN "blåmes") ;
+  SittaEuropaea = mkCN (mkN "nötväcka") ;
+  ParisCristatus = mkCN (mkN "tofsmes") ;
+  ParusAter = mkCN (mkN "svartmes") ;
+  ParusMontanus = mkCN (mkN "talltita") ;
+  ParusPalustris = mkCN (mkN "entita") ;
+  AegithalosCaudatis = mkCN (mkN "stjärtmes") ;
+  PanururBiarmicus = mkCN (mkN "skäggmes") ;
+  LaniusCollurio = mkCN (mkN "törnskata") ;
+  GarrulusGlandarius = mkCN (mkN "nötskrika") ;
+  PicaPica = mkCN (mkN "skata") ;
+  NucifragaCaryocatactes = mkCN (mkN "nötkråka") ;
+  CorvusMonedula = mkCN (mkN "kaja") ;
+  CorvusFrugilegus = mkCN (mkN "råka") ;
+  CorvusCorone = mkCN (mkN "kråka") ;
+  CorvusCorax = mkCN (mkN "korp") ;
+  SturnusVulgaris = mkCN (mkN "stare") ;
+  PasserDomesticus = mkCN (mkN "gråsparv") ;
+  PasserMontanus = mkCN (mkN "pilfink") ;
+  FringillaCoelebs = mkCN (mkN "bofink") ;
+  FringillaMontifringilla = mkCN (mkN "bergfink") ;
+  CarpodacusErythrinus = mkCN (mkN "rosenfink") ;
+  CarduelisCannabina = mkCN (mkN "hämpling") ;
+  CarduelisFlammea = mkCN (mkN "gråsiska") ;
+  CarduelisCarduelis = mkCN (mkN "steglits") ;
+  CarduelisChloris = mkCN (mkN "grönfink") ;
+  CarduelisSpinus = mkCN (mkN "grönsiska") ;
+  PyrrhulaPyrrhula = mkCN (mkN "domherre") ;
+  LoxiaCurvirostra = mkCN (lin AP {s=(comparAP (mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta")).s; isPre=True}) (mkN "korsnäbb") ;
+  EmberizaSchoeniclus = mkCN (mkN "sävsparv") ;
+  PlectrophenaxNivalis = mkCN (mkN "snösparv") ;
+  CalcariusLapponicus = mkCN (mkN "lappsparv") ;
+  EmberizaHortulana = mkCN (mkN "ortolansparv") ;
+  EmberizaCitrinella = mkCN (mkN "gulsparv") ;
+  
+}
diff --git a/examples/SUMO/Communications.gf b/examples/SUMO/Communications.gf
--- a/examples/SUMO/Communications.gf
+++ b/examples/SUMO/Communications.gf
@@ -1,171 +1,157 @@
-abstract Communications = open Merge, Geography, Mid_level_ontology in{
-
-
-
-
---  An AMRadioStation is an 
--- engineeringSubcomponent of an AMRadioSystem.
-fun AMRadioStation : Class ;
-fun AMRadioStation_Class : SubClass AMRadioStation RadioStation ;
-
--- An AMRadioSystem consists of Radios, 
--- AMRadioStations, and other components that work together to make 
--- AM radio broadcasting possible in a given area.
-fun AMRadioSystem : Class ;
-fun AMRadioSystem_Class : SubClass AMRadioSystem RadioSystem ;
-
--- An ArtificialSatellite is a Device
--- that orbits the earth in space and performs various functions such as
--- aiding in communication, photographing the earth's surface, and others.
-fun ArtificialSatellite : Class ;
-fun ArtificialSatellite_Class : SubClass ArtificialSatellite (both EngineeringComponent Satellite) ;
-
-
--- A BroadcastingStation is
--- an engineeringSubcomponent of either a TelevisionSystem or
--- a RadioStation.
-fun BroadcastingStation : Class ;
-fun BroadcastingStation_Class : SubClass BroadcastingStation (both CommunicationDevice (both EngineeringComponent StationaryArtifact)) ;
-
-
--- A CableTelevisionSystem
--- is a CommunicationSystem for cable television.
-fun CableTelevisionSystem : Class ;
-fun CableTelevisionSystem_Class : SubClass CableTelevisionSystem CommunicationSystem ;
+abstract Communications = MidLevelOntology, Geography ** {
 
-fun CommunicationDevice_EngineeringComponent : SubClass CommunicationDevice EngineeringComponent ;
+  --  An AMRadioStation is an 
+  -- engineeringSubcomponent of an AMRadioSystem.
+  fun AMRadioStation : Class ;
+  fun AMRadioStation_Class : SubClass AMRadioStation RadioStation ;
 
--- Relatively low power broadcasting
--- devices designed for voice communication among specialized groups
--- in which each receiver also has the power to transmit, unlike
--- broadcast radio where most components transmitting or receiving on
--- a given frequency or set of frequencies are receivers only. This 
--- includes unlicensed walkie_talkies, public safety radios, military
--- communication systems and CB radios.
-fun CommunicationRadio : Class ;
-fun CommunicationRadio_Class : SubClass CommunicationRadio CommunicationDevice ;
+  -- An AMRadioSystem consists of Radios, 
+  -- AMRadioStations, and other components that work together to make 
+  -- AM radio broadcasting possible in a given area.
+  fun AMRadioSystem : Class ;
+  fun AMRadioSystem_Class : SubClass AMRadioSystem RadioSystem ;
 
--- A CommunicationSatellite is an
--- ArtificialSatellite that serves as one engineeringSubcomponent of a 
--- CommunicationSystem.
-fun CommunicationSatellite : Class ;
-fun CommunicationSatellite_Class : SubClass CommunicationSatellite (both ArtificialSatellite CommunicationDevice) ;
+  -- An ArtificialSatellite is a Device
+  -- that orbits the earth in space and performs various functions such as
+  -- aiding in communication, photographing the earth's surface, and others.
+  fun ArtificialSatellite : Class ;
+  fun ArtificialSatellite_Class : SubClass ArtificialSatellite (both EngineeringComponent Satellite) ;
 
+  -- A BroadcastingStation is
+  -- an engineeringSubcomponent of either a TelevisionSystem or
+  -- a RadioStation.
+  fun BroadcastingStation : Class ;
+  fun BroadcastingStation_Class : SubClass BroadcastingStation (both CommunicationDevice (both EngineeringComponent StationaryArtifact)) ;
 
--- An Eutelsat is one type of 
--- CommunicationSatellite.
-fun Eutelsat : Class ;
-fun Eutelsat_Class : SubClass Eutelsat CommunicationSatellite ;
+  -- A CableTelevisionSystem
+  -- is a CommunicationSystem for cable television.
+  fun CableTelevisionSystem : Class ;
+  fun CableTelevisionSystem_Class : SubClass CableTelevisionSystem CommunicationSystem ;
 
--- A FMRadioStation is an 
--- engineeringSubcomponent of an FMRadioSystem.
-fun FMRadioStation : Class ;
-fun FMRadioStation_Class : SubClass FMRadioStation RadioStation ;
+  -- Relatively low power broadcasting
+  -- devices designed for voice communication among specialized groups
+  -- in which each receiver also has the power to transmit, unlike
+  -- broadcast radio where most components transmitting or receiving on
+  -- a given frequency or set of frequencies are receivers only. This 
+  -- includes unlicensed walkie_talkies, public safety radios, military
+  -- communication systems and CB radios.
+  fun CommunicationRadio : Class ;
+  fun CommunicationRadio_Class : SubClass CommunicationRadio CommunicationDevice ;
 
--- A FMRadioSystem consists of Radios, 
--- FMRadioStations, and other components that work together to make 
--- FM radio broadcasting possible in a given area.
-fun FMRadioSystem : Class ;
-fun FMRadioSystem_Class : SubClass FMRadioSystem RadioSystem ;
+  -- A CommunicationSatellite is an
+  -- ArtificialSatellite that serves as one engineeringSubcomponent of a 
+  -- CommunicationSystem.
+  fun CommunicationSatellite : Class ;
+  fun CommunicationSatellite_Class : SubClass CommunicationSatellite (both ArtificialSatellite CommunicationDevice) ;
 
--- An Inmarsat is one type of 
--- CommunicationSatellite.
-fun Inmarsat : Class ;
-fun Inmarsat_Class : SubClass Inmarsat CommunicationSatellite ;
+  -- An Eutelsat is one type of 
+  -- CommunicationSatellite.
+  fun Eutelsat : Class ;
+  fun Eutelsat_Class : SubClass Eutelsat CommunicationSatellite ;
 
--- An Intelsat is one type of 
--- CommunicationSatellite.
-fun Intelsat : Class ;
-fun Intelsat_Class : SubClass Intelsat CommunicationSatellite ;
+  -- A FMRadioStation is an 
+  -- engineeringSubcomponent of an FMRadioSystem.
+  fun FMRadioStation : Class ;
+  fun FMRadioStation_Class : SubClass FMRadioStation RadioStation ;
 
--- The Internet is a CommunicationSystem
--- for the rapid delivery of information between computers.
-fun Internet : Ind CommunicationSystem ;
+  -- A FMRadioSystem consists of Radios, 
+  -- FMRadioStations, and other components that work together to make 
+  -- FM radio broadcasting possible in a given area.
+  fun FMRadioSystem : Class ;
+  fun FMRadioSystem_Class : SubClass FMRadioSystem RadioSystem ;
 
+  -- An Inmarsat is one type of 
+  -- CommunicationSatellite.
+  fun Inmarsat : Class ;
+  fun Inmarsat_Class : SubClass Inmarsat CommunicationSatellite ;
 
--- An InternetServiceProvider
--- serves as an engineeringSubcomponent of the Internet for a given
--- area.
-fun InternetServiceProvider : Class ;
-fun InternetServiceProvider_Class : SubClass InternetServiceProvider CommunicationSystem ;
+  -- An Intelsat is one type of 
+  -- CommunicationSatellite.
+  fun Intelsat : Class ;
+  fun Intelsat_Class : SubClass Intelsat CommunicationSatellite ;
 
--- An InternetUser is an individual who
--- uses the Internet.
-fun InternetUser : Ind SocialRole ;
+  -- The Internet is a CommunicationSystem
+  -- for the rapid delivery of information between computers.
+  fun Internet : Ind CommunicationSystem ;
 
+  -- An InternetServiceProvider serves as an engineeringSubcomponent of
+  -- the Internet for a given area.
+  fun InternetServiceProvider : Class ;
+  fun InternetServiceProvider_Class : SubClass InternetServiceProvider CommunicationSystem ;
 
--- An Intersputnik is one type of 
--- CommunicationSatellite.
-fun Intersputnik : Class ;
-fun Intersputnik_Class : SubClass Intersputnik CommunicationSatellite ;
+  -- An InternetUser is an individual who
+  -- uses the Internet.
+  fun InternetUser : Ind SocialRole ;
 
--- A MainTelephoneLine is one 
--- engineeringSubcomponent of a TelephoneSystem used for voice communication 
--- or computer data transfer.
-fun MainTelephoneLine : Class ;
-fun MainTelephoneLine_Class : SubClass MainTelephoneLine CommunicationDevice ;
+  -- An Intersputnik is one type of 
+  -- CommunicationSatellite.
+  fun Intersputnik : Class ;
+  fun Intersputnik_Class : SubClass Intersputnik CommunicationSatellite ;
 
--- A Telephone that can be used without
--- connection to a MainTelephoneLine.
-fun MobileCellPhone : Class ;
-fun MobileCellPhone_Class : SubClass MobileCellPhone Telephone ;
+  -- A MainTelephoneLine is one 
+  -- engineeringSubcomponent of a TelephoneSystem used for voice communication 
+  -- or computer data transfer.
+  fun MainTelephoneLine : Class ;
+  fun MainTelephoneLine_Class : SubClass MainTelephoneLine CommunicationDevice ;
 
--- An Orbita is one type of 
--- CommunicationSatellite.
-fun Orbita : Class ;
-fun Orbita_Class : SubClass Orbita CommunicationSatellite ;
+  -- A Telephone that can be used without
+  -- connection to a MainTelephoneLine.
+  fun MobileCellPhone : Class ;
+  fun MobileCellPhone_Class : SubClass MobileCellPhone Telephone ;
 
--- A RadioStation is an 
--- engineeringSubcomponent of a RadioSystem.
-fun RadioStation : Class ;
-fun RadioStation_Class : SubClass RadioStation BroadcastingStation ;
+  -- An Orbita is one type of 
+  -- CommunicationSatellite.
+  fun Orbita : Class ;
+  fun Orbita_Class : SubClass Orbita CommunicationSatellite ;
 
--- A RadioSystem consists of Radios, 
--- RadioStations, and other components that work together to make 
--- radio broadcasting possible in a given area.
-fun RadioSystem : Class ;
-fun RadioSystem_Class : SubClass RadioSystem CommunicationSystem ;
+  -- A RadioStation is an 
+  -- engineeringSubcomponent of a RadioSystem.
+  fun RadioStation : Class ;
+  fun RadioStation_Class : SubClass RadioStation BroadcastingStation ;
 
--- A ShortwaveRadioStation 
--- is an engineeringSubcomponent of a ShortwaveRadioSystem.
-fun ShortwaveRadioStation : Class ;
-fun ShortwaveRadioStation_Class : SubClass ShortwaveRadioStation RadioStation ;
+  -- A RadioSystem consists of Radios, 
+  -- RadioStations, and other components that work together to make 
+  -- radio broadcasting possible in a given area.
+  fun RadioSystem : Class ;
+  fun RadioSystem_Class : SubClass RadioSystem CommunicationSystem ;
 
--- A ShortwaveRadioSystem consists 
--- of Radios, ShortwaveRadioStations, and other components that work 
--- together to make shortwave radio broadcasting possible in a given area.
-fun ShortwaveRadioSystem : Class ;
-fun ShortwaveRadioSystem_Class : SubClass ShortwaveRadioSystem RadioSystem ;
+  -- A ShortwaveRadioStation 
+  -- is an engineeringSubcomponent of a ShortwaveRadioSystem.
+  fun ShortwaveRadioStation : Class ;
+  fun ShortwaveRadioStation_Class : SubClass ShortwaveRadioStation RadioStation ;
 
--- A TelephoneSystem consists of a complete
--- interconnection of Telephones, MainTelephoneLines, and other components
--- that work together to make telephonic communication possible from point to
--- point in a given area.
-fun TelephoneSystem : Class ;
-fun TelephoneSystem_Class : SubClass TelephoneSystem CommunicationSystem ;
+  -- A ShortwaveRadioSystem consists 
+  -- of Radios, ShortwaveRadioStations, and other components that work 
+  -- together to make shortwave radio broadcasting possible in a given area.
+  fun ShortwaveRadioSystem : Class ;
+  fun ShortwaveRadioSystem_Class : SubClass ShortwaveRadioSystem RadioSystem ;
 
-fun TelevisionReceiver_EngineeringComponent : SubClass TelevisionReceiver EngineeringComponent ;
+  -- A TelephoneSystem consists of a complete
+  -- interconnection of Telephones, MainTelephoneLines, and other components
+  -- that work together to make telephonic communication possible from point to
+  -- point in a given area.
+  fun TelephoneSystem : Class ;
+  fun TelephoneSystem_Class : SubClass TelephoneSystem CommunicationSystem ;
 
--- A TelevisionStation is an 
--- engineeringSubcomponent of a TelevisionSystem.
-fun TelevisionStation : Class ;
-fun TelevisionStation_Class : SubClass TelevisionStation BroadcastingStation ;
+  -- A TelevisionStation is an 
+  -- engineeringSubcomponent of a TelevisionSystem.
+  fun TelevisionStation : Class ;
+  fun TelevisionStation_Class : SubClass TelevisionStation BroadcastingStation ;
 
--- A system for Broadcasting and 
--- receiving television signals.
-fun TelevisionSystem : Class ;
-fun TelevisionSystem_Class : SubClass TelevisionSystem CommunicationSystem ;
+  -- A system for Broadcasting and 
+  -- receiving television signals.
+  fun TelevisionSystem : Class ;
+  fun TelevisionSystem_Class : SubClass TelevisionSystem CommunicationSystem ;
 
--- The expression
--- (communicationSatelliteForArea ?AREA ?SATELLITE ?INTEGER) means that 
--- ?INTEGER number of CommunicationSatellites of the type ?SATELLITE serve
--- as an engineeringSubcomponent of a TelephoneSystem of the GeopoliticalArea
--- ?AREA.
-fun communicationSatelliteForArea: El GeopoliticalArea -> Desc Satellite -> El Integer -> Formula ;-- replaced-- 
+  -- The expression
+  -- (communicationSatelliteForArea ?AREA ?SATELLITE ?INTEGER) means that 
+  -- ?INTEGER number of CommunicationSatellites of the type ?SATELLITE serve
+  -- as an engineeringSubcomponent of a TelephoneSystem of the GeopoliticalArea ?AREA.
+  fun communicationSatelliteForArea: El GeopoliticalArea -> Desc Satellite -> El Integer -> Formula ;-- replaced-- 
 
+  -- (internetCountryCode ?AREA ?CODE)
+  -- relates a GeopoliticalArea to the SymbolicString ?CODE used to
+  -- identify the ?AREA on internet websites.
+  fun internetCountryCode : El GeopoliticalArea -> El SymbolicString -> Formula ;
 
--- (internetCountryCode ?AREA ?CODE)
--- relates a GeopoliticalArea to the SymbolicString ?CODE used to
--- identify the ?AREA on internet websites.
-fun internetCountryCode : El GeopoliticalArea -> El SymbolicString -> Formula ;
 }
diff --git a/examples/SUMO/CountriesAndRegions.gf b/examples/SUMO/CountriesAndRegions.gf
--- a/examples/SUMO/CountriesAndRegions.gf
+++ b/examples/SUMO/CountriesAndRegions.gf
@@ -1,3039 +1,2685 @@
-abstract CountriesAndRegions = open Merge, Mid_level_ontology, Geography, Government in {
-
-
-
-
---  The City of Adana in Turkey.
-fun AdanaTurkey : Ind City ;
-
-
--- The City of AddisAbaba in Ethiopia.
-fun AddisAbabaEthiopia : Ind City ;
-
-
--- The City of Aden in Yemen.
-fun AdenYemen : Ind City ;
-
-
--- The City of Adora in WestBank.
-fun AdoraWestBank : Ind City ;
-
-
--- The City of Afula in Israel.
-fun AfulaIsrael : Ind City ;
-
-
--- The City of Agri in Turkey.
-fun AgriTurkey : Ind City ;
-
-
--- The City of AinDefla in Algeria.
-fun AinDeflaAlgeria : Ind City ;
-
-
--- The City of AinElHajar in Algeria.
-fun AinElHajarAlgeria : Ind City ;
-
-
--- The City of Ajaccio in France.
-fun AjaccioFrance : Ind City ;
-
-
--- The City of AlBalamand in Lebanon.
-fun AlBalamandLebanon : Ind City ;
-
-
--- A state in the southeastern UnitedStates that 
--- borders on the GulfOfMexico.
-fun Alabama : Ind AmericanState ;
-
-
--- The largest state in the UnitedStates.
-fun Alaska : Ind AmericanState ;
-
-
--- The City of AleiSinai in GazaStrip.
-fun AleiSinaiGazaStrip : Ind City ;
-
-
--- The City of AleiZahav in WestBank.
-fun AleiZahavWestBank : Ind City ;
-
-
--- The City of Aley in Lebanon.
-fun AleyLebanon : Ind City ;
-
-
--- The City of Algiers in Algeria.
-fun AlgiersAlgeria : Ind City ;
-
-
--- The City of AlkhanYurt in Russia.
-fun AlkhanYurtRussia : Ind City ;
-
-
--- The City of AlonMoreh in WestBank.
-fun AlonMorehWestBank : Ind City ;
-
-
--- The City of Ambon in Indonesia.
-fun AmbonIndonesia : Ind City ;
-
-
--- The class of cities that are in the 
--- UnitedStates.
-fun AmericanCity : Class ;
-fun AmericanCity_Class : SubClass AmericanCity City ;
-
--- A dependency of the UnitedStates
-fun AmericanSamoa : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The class of states that make up the 
--- UnitedStates.
-fun AmericanState : Class ;
-fun AmericanState_Class : SubClass AmericanState StateOrProvince ;
-
--- The City of Amman in Jordan.
-fun AmmanJordan : Ind City ;
-
-
--- The City of AnNuwaydirat in Bahrain.
-fun AnNuwaydiratBahrain : Ind City ;
-
-
--- The City of Andean in Spain.
-fun AndeanSpain : Ind City ;
-
-
--- The City of AngkorWat in Cambodia.
-fun AngkorWatCambodia : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun Anguilla : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Ankara in Turkey.
-fun AnkaraTurkey : Ind City ;
-
-
--- The City of Antalya in Turkey.
-fun AntalyaTurkey : Ind City ;
-
-
-fun Antarctica : Ind GeopoliticalArea ;
-
--- The City of Antioquia in Colombia.
-fun AntioquiaColombia : Ind City ;
-
-
--- The City of Antwerp in Belgium.
-fun AntwerpBelgium : Ind City ;
-
-
--- The City of Apumirac in Peru.
-fun ApumiracPeru : Ind City ;
-
-
--- The City of Apure in Venezuela.
-fun ApureVenezuela : Ind City ;
-
-
--- The City of Arauca in Colombia.
-fun AraucaColombia : Ind City ;
-
-
--- The City of Argun in Russia.
-fun ArgunRussia : Ind City ;
-
-
--- The City of Ariel in WestBank.
-fun ArielWestBank : Ind City ;
-
-
--- A state in the southwestern UnitedStates that 
--- borders on Mexico.
-fun Arizona : Ind AmericanState ;
-
-
--- A state in the southeastern UnitedStates that was 
--- part of the Confederacy.
-fun Arkansas : Ind AmericanState ;
-
-
--- The City of Armagh in NorthernIreland.
-fun ArmaghNorthernIreland : Ind City ;
-
-
--- A dependency of the Netherlands
-fun Aruba : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Arzew in Algeria.
-fun ArzewAlgeria : Ind City ;
-
-
--- The City of Ashdod in Israel.
-fun AshdodIsrael : Ind City ;
-
-
--- A dependency of Australia
-fun AshmoreAndCartierIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Askelon in Israel.
-fun AskelonIsrael : Ind City ;
-
-
--- The City of Asmara in Eritrea.
-fun AsmaraEritrea : Ind City ;
-
-
--- The City of Assam in India.
-fun AssamIndia : Ind City ;
-
-
--- The City of Aswan in Egypt.
-fun AswanEgypt : Ind City ;
-
-
--- The City of Asyut in Egypt.
-fun AsyutEgypt : Ind City ;
-
-
--- The City of Athens in Greece.
-fun AthensGreece : Ind City ;
-
-
--- The largest City in Georgia.
-fun AtlantaGeorgia : Ind AmericanCity ;
-
-
--- The City of Atrush in Iraq.
-fun AtrushIraq : Ind City ;
-
-
--- The City of Atzmona in GazaStrip.
-fun AtzmonaGazaStrip : Ind City ;
-
-
--- The City of AvneiHefetz in Israel.
-fun AvneiHefetzIsrael : Ind City ;
-
-
--- The City of Ayacucho in Peru.
-fun AyacuchoPeru : Ind City ;
-
-
--- The City of Azor in Israel.
-fun AzorIsrael : Ind City ;
-
-
--- The City of BKaot in WestBank.
-fun BKaotWestBank : Ind City ;
-
-
--- The City of BadVilbel in Germany.
-fun BadVilbelGermany : Ind City ;
-
-
--- The City of Baghdad in Iraq.
-fun BaghdadIraq : Ind City ;
-
-
--- The City of Bagre in Colombia.
-fun BagreColombia : Ind City ;
-
-
--- The City of Bahawalpur in Pakistan.
-fun BahawalpurPakistan : Ind City ;
-
-
--- The City of BakaAlGarbiyeh in Israel.
-fun BakaAlGarbiyehIsrael : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun BakerIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of BakkaAlSharkiya in WestBank.
-fun BakkaAlSharkiyaWestBank : Ind City ;
-
-
--- The City of Baku in Azerbaijan.
-fun BakuAzerbaijan : Ind City ;
-
-
--- The City of Bale in Ethiopia.
-fun BaleEthiopia : Ind City ;
-
-
--- The largest City in Maryland.
-fun BaltimoreMaryland : Ind AmericanCity ;
-
-
--- The City of Banbridge in NorthernIreland.
-fun BanbridgeNorthernIreland : Ind City ;
-
-
--- The City of Bangkok in Thailand.
-fun BangkokThailand : Ind City ;
-
-
--- The City of Bangor in NorthernIreland.
-fun BangorNorthernIreland : Ind City ;
-
-
--- The City of Bangui in CentralAfricanRepublic.
-fun BanguiCentralAfricanRepublic : Ind City ;
-
-
--- The City of Barcelona in Spain.
-fun BarcelonaSpain : Ind City ;
-
-
--- The City of Barkeo in Cambodia.
-fun BarkeoCambodia : Ind City ;
-
-
--- The City of Barrancabermeja in Colombia.
-fun BarrancabermejaColombia : Ind City ;
-
-
--- The City of Basra in Israel.
-fun BasraIsrael : Ind City ;
-
-
--- A dependency of France
-fun BassasDaIndia : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of BatYam in Israel.
-fun BatYamIsrael : Ind City ;
-
-
--- The City of Batman in Turkey.
-fun BatmanTurkey : Ind City ;
-
-
--- The City of BeErSheva in Israel.
-fun BeErShevaIsrael : Ind City ;
-
-
--- The City of Beasain in Spain.
-fun BeasainSpain : Ind City ;
-
-
--- The City of Beirut in Lebanon.
-fun BeirutLebanon : Ind City ;
-
-
--- The City of BeitEl in WestBank.
-fun BeitElWestBank : Ind City ;
-
-
--- The City of BeitHaggai in WestBank.
-fun BeitHaggaiWestBank : Ind City ;
-
-
--- The City of BeitHanina in WestBank.
-fun BeitHaninaWestBank : Ind City ;
-
-
--- The City of BeitSahur in WestBank.
-fun BeitSahurWestBank : Ind City ;
-
-
--- The City of BeitSheAn in Israel.
-fun BeitSheAnIsrael : Ind City ;
-
-
--- The City of BeitShemesh in Israel.
-fun BeitShemeshIsrael : Ind City ;
-
-
--- The City of Beledweyne in Somalia.
-fun BeledweyneSomalia : Ind City ;
-
-
--- The City of Belfast in NorthernIreland.
-fun BelfastNorthernIreland : Ind City ;
-
-
--- The City of Belgrade in SerbiaAndMontenegro.
-fun BelgradeSerbiaAndMontenegro : Ind City ;
-
-
--- The City of Berlin in Germany. BerlinGermany The capital of Germany and the largest 
--- City of the country.
-fun BerlinGermany : Ind EuropeanCity ;
-
-
--- A dependency of the UnitedKingdom
-fun Bermuda : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The capital of Switzerland.
-fun BernSwitzerland : Ind EuropeanCity ;
-
-
--- The City of BetLeHiyeh in GazaStrip.
-fun BetLeHiyehGazaStrip : Ind City ;
-
-
-fun BetLidJunctionIsrael : Ind GeographicArea ;
-
--- The City of BethEl in Israel.
-fun BethElIsrael : Ind City ;
-
-
--- The City of Bethlehem in WestBank.
-fun BethlehemWestBank : Ind City ;
-
-
--- The City of Bidya in WestBank.
-fun BidyaWestBank : Ind City ;
-
-
--- The City of Bilbao in Spain.
-fun BilbaoSpain : Ind City ;
-
-
--- The City of Billabona in Spain.
-fun BillabonaSpain : Ind City ;
-
-
--- The City of Binyamina in Israel.
-fun BinyaminaIsrael : Ind City ;
-
-
--- The City of Bishkek in Kyrgyzstan.
-fun BishkekKyrgyzstan : Ind City ;
-
-
--- The City of BneiAyish in Israel.
-fun BneiAyishIsrael : Ind City ;
-
-
--- The City of Bogota in Colombia.
-fun BogotaColombia : Ind City ;
-
-
--- The City of Bologna in Italy.
-fun BolognaItaly : Ind City ;
-
-
--- The City of Bonn in Germany.
-fun BonnGermany : Ind City ;
-
-
-fun BosphorousStraitsTurkey : Ind GeographicArea ;
-
--- The largest City in Massachusetts.
-fun BostonMassachusetts : Ind AmericanCity ;
-
-
--- The City of Bouira in Algeria.
-fun BouiraAlgeria : Ind City ;
-
-
--- A dependency of Norway
-fun BouvetIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of BouzeGuene in Algeria.
-fun BouzeGueneAlgeria : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun BritishIndianOceanTerritory : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A dependency of the UnitedKingdom
-fun BritishVirginIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Brussels in Belgium.
-fun BrusselsBelgium : Ind City ;
-
-
--- The City of Bucaramanga in Colombia.
-fun BucaramangaColombia : Ind City ;
-
-
--- The City of Bucharest in India.
-fun BucharestIndia : Ind City ;
-
-
--- The City of BuenosAires in Argentina.
-fun BuenosAiresArgentina : Ind City ;
-
-
--- The City of Buinaksk in Russia.
-fun BuinakskRussia : Ind City ;
-
-
-fun BwindiforestUganda : Ind GeographicArea ;
-
--- The City of Cabinda in Angola.
-fun CabindaAngola : Ind City ;
-
-
--- The City of Caglayan in Turkey.
-fun CaglayanTurkey : Ind City ;
-
-
--- The City of Cairo in Egypt.
-fun CairoEgypt : Ind City ;
-
-
--- The City of Calcutta in India.
-fun CalcuttaIndia : Ind City ;
-
-
--- The City of Cali in Colombia.
-fun CaliColombia : Ind City ;
-
-
--- The AmericanState with the highest population.
-fun California : Ind AmericanState ;
-
-
--- The City of CampZama in Japan.
-fun CampZamaJapan : Ind City ;
-
-
--- The City of Cankiri in Turkey.
-fun CankiriTurkey : Ind City ;
-
-
--- The City of CapeTown in SouthAfrica.
-fun CapeTownSouthAfrica : Ind City ;
-
-
-fun CaritasPolandChechnya : Ind GeographicArea ;
-
--- The City of Carmel in Israel.
-fun CarmelIsrael : Ind City ;
-
-
--- The City of CarmenDeBolivar in Colombia.
-fun CarmenDeBolivarColombia : Ind City ;
-
-
--- The City of Carrejon in Colombia.
-fun CarrejonColombia : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun CaymanIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Chaman in Pakistan.
-fun ChamanPakistan : Ind City ;
-
-
--- The City of ChararESharif in India.
-fun ChararESharifIndia : Ind City ;
-
-
--- The City of Charsaada in Pakistan.
-fun CharsaadaPakistan : Ind City ;
-
-
--- The Nation of Chechnya.
-fun Chechnya : Ind Nation ;
-
-
--- The City of ChernoRechye in Russia.
-fun ChernoRechyeRussia : Ind City ;
-
-
--- Often referred to as the second city, 
--- ChicagoUnitedStates is the largest city in the midwestern United States.
-fun ChicagoUnitedStates : Ind AmericanCity ;
-
-
--- The City of Chisimayu in Somalia.
-fun ChisimayuSomalia : Ind City ;
-
-
--- The City of Chittagong in Bangladesh.
-fun ChittagongBangladesh : Ind City ;
-
-
--- The City of Choba in Angola.
-fun ChobaAngola : Ind City ;
-
-
--- The City of Choco in Colombia.
-fun ChocoColombia : Ind City ;
-
-
--- The City of ChorrosQuero in Venezuela.
-fun ChorrosQueroVenezuela : Ind City ;
-
-
--- A dependency of Australia
-fun ChristmasIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
-fun ClarkAirbasePhilippines : Ind GeographicArea ;
-
--- Bordering Lake Erie, ClevelandOhio is 
--- the largest City in Ohio.
-fun ClevelandOhio : Ind AmericanCity ;
-
-
--- A dependency of France
-fun ClippertonIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A dependency of Australia
-fun CocosKeelingIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Coimbatore in India.
-fun CoimbatoreIndia : Ind City ;
-
-
--- The City of Cologne in Germany.
-fun CologneGermany : Ind City ;
-
-
--- The City of ColombiaCity in Colombia.
-fun ColombiaCityColombia : Ind City ;
-
-
--- The City of Colombia in Panama.
-fun ColombiaPanama : Ind City ;
-
-
--- The City of Colombo in SriLanka.
-fun ColomboSriLanka : Ind City ;
-
-
--- A large western state in the UnitedStates.
-fun Colorado : Ind AmericanState ;
-
-
--- The capital of Ohio, located in the middle 
--- of the state.
-fun ColumbusOhio : Ind AmericanCity ;
-
-
--- The City of Comayagua in Honduras.
-fun ComayaguaHonduras : Ind City ;
-
-
--- A state in NewEngland, one of the original thirteen 
--- colonies.
-fun Connecticut : Ind AmericanState ;
-
-
--- A dependency of NewZealand
-fun CookIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of CopacaBana in Cuba.
-fun CopacaBanaCuba : Ind City ;
-
-
--- The City of Copenhagen in Denmark. CopenhagenDenmark The capital of Denmark and the largest 
--- City of the country.
-fun CopenhagenDenmark : Ind EuropeanCity ;
-
-
--- A dependency of Australia
-fun CoralSeaIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Corsica in France.
-fun CorsicaFrance : Ind City ;
-
-
--- The City of Corte in France.
-fun CorteFrance : Ind City ;
-
-
--- The City of Corum in Turkey.
-fun CorumTurkey : Ind City ;
-
-
--- The City of CundiNamarca in Colombia.
-fun CundiNamarcaColombia : Ind City ;
-
-
--- The City of Cupiagua in Colombia.
-fun CupiaguaColombia : Ind City ;
-
-
--- The City of Cuzco in Peru.
-fun CuzcoPeru : Ind City ;
-
-
--- The former eastern bloc nation. It is currently 
--- divided into two independent Nations, the Czech Republic and Slovakia.
-fun Czechoslovakia : Ind EuropeanNation ;
-
-
--- The City of Dagestan in Russia.
-fun DagestanRussia : Ind City ;
-
-
--- The City of Dahuk in Iraq.
-fun DahukIraq : Ind City ;
-
-
--- A large City in northeastern Texas.
-fun DallasTexas : Ind AmericanCity ;
-
-
-fun DangDistrictNepal : Ind GeographicArea ;
-
--- The City of DarEsSalaAm in Tanzania.
-fun DarEsSalaAmTanzania : Ind City ;
-
-
--- The City of Darvaz in Tajikistan.
-fun DarvazTajikistan : Ind City ;
-
-
--- The City of Deba in Spain.
-fun DebaSpain : Ind City ;
-
-
--- A state in NewEngland, one of the original thirteen 
--- colonies.
-fun Delaware : Ind AmericanState ;
-
-
--- The City of Delhi in India.
-fun DelhiIndia : Ind City ;
-
-
--- The Nation of DemocraticRepublicOfTheCongo.
-fun DemocraticRepublicOfTheCongo : Ind Nation ;
-
-
--- The capital and largest City in Colorado.
-fun DenverColorado : Ind AmericanCity ;
-
-
--- The largest City in Michigan.
-fun DetroitMichigan : Ind AmericanCity ;
-
-
--- The City of Dhahran in SaudiArabia.
-fun DhahranSaudiArabia : Ind City ;
-
-
--- The City of Dhaka in Bangladesh.
-fun DhakaBangladesh : Ind City ;
-
-
--- The City of Dinan in France.
-fun DinanFrance : Ind City ;
-
-
--- The City of DirNaballah in WestBank.
-fun DirNaballahWestBank : Ind City ;
-
-
--- The City of DireDawa in Ethiopia.
-fun DireDawaEthiopia : Ind City ;
-
-
-fun DistrictOfMansehraPakistan : Ind GeographicArea ;
-
--- The City of Djakashari in RepublicOfGeorgia.
-fun DjakashariGeorgia : Ind City ;
-
-
--- The City of Djerba in Tunisia.
-fun DjerbaTunisia : Ind City ;
-
-
--- The City of Doda in India.
-fun DodaIndia : Ind City ;
-
-
--- The City of Dortmund in Germany.
-fun DortmundGermany : Ind City ;
-
-
--- The City of Dublin in Ireland.
-fun DublinIreland : Ind City ;
-
-
--- The City of Duesseldorf in Germany.
-fun DuesseldorfGermany : Ind City ;
-
-
--- The City of Dugit in GazaStrip.
-fun DugitGazaStrip : Ind City ;
-
-
--- The City of Durango in Spain.
-fun DurangoSpain : Ind City ;
-
-
-fun DushanbeAirportTajikistan : Ind GeographicArea ;
-
--- The City of DushanbeGarm in Tajikistan.
-fun DushanbeGarmTajikistan : Ind City ;
-
-
--- The City of Dushanbe in Tajikistan.
-fun DushanbeTajikistan : Ind City ;
-
-
--- The City of EastJerusalem in Israel.
-fun EastJerusalemIsrael : Ind City ;
-
-
--- The Nation of EastTimor.
-fun EastTimor : Ind Nation ;
-
-
--- The City of Efrat in WestBank.
-fun EfratWestBank : Ind City ;
-
-
--- The City of Eilat in Israel.
-fun EilatIsrael : Ind City ;
-
-
--- The City of Einav in WestBank.
-fun EinavWestBank : Ind City ;
-
-
--- The City of ElAzzariya in the WestBank.
-fun ElAzzariyaWestBank : Ind City ;
-
-
--- The City of ElBagre in Colombia.
-fun ElBagreColombia : Ind City ;
-
-
--- The City of ElBireh in WestBank.
-fun ElBirehWestBank : Ind City ;
-
-
--- The City of ElPlayon in Colombia.
-fun ElPlayonColombia : Ind City ;
-
-
--- The City of ElRipialApure in Venezuela.
-fun ElRipialApureVenezuela : Ind City ;
-
-
--- The City of Elayo in Somalia.
-fun ElayoSomalia : Ind City ;
-
-
--- The City of EleiSinai in GazaStrip.
-fun EleiSinaiGazaStrip : Ind City ;
-
-
--- The City of Emmanuel in WestBank.
-fun EmmanuelWestBank : Ind City ;
-
-
--- The City of Erez in GazaStrip.
-fun ErezGazaStrip : Ind City ;
-
-
--- A dependency of France
-fun EuropaIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The second smallest Continent.
-fun Europe : Ind Continent ;
-
-
--- The class of cities that are in Europe.
-fun EuropeanCity : Class ;
-fun EuropeanCity_Class : SubClass EuropeanCity City ;
-
--- A dependency of the UnitedKingdom
-fun FalklandIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The largest City in NorthDakota.
-fun FargoNorthDakota : Ind AmericanCity ;
-
-
--- A dependency of Denmark
-fun FaroeIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
-fun FethiyeAndMarmarisTurkey : Ind GeographicArea ;
-
--- A state in the southeastern UnitedStates between 
--- the GulfOfMexico and the AtlanticOcean.
-fun Florida : Ind AmericanState ;
-
-
-fun FloridaUnitedStates : Ind GeographicArea ;
-
--- The City of Formeque in Colombia.
-fun FormequeColombia : Ind City ;
-
-
--- The City of Frankfurt in Germany.
-fun FrankfurtGermany : Ind City ;
-
-
--- The City of FrenchHill in Israel.
-fun FrenchHillIsrael : Ind City ;
-
-
--- A dependency of France
-fun FrenchPolynesia : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A dependency of France
-fun FrenchSouthernAndAntarcticLands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Fuengirola in Spain.
-fun FuengirolaSpain : Ind City ;
-
-
--- The City of Fusagasusa in Colombia.
-fun FusagasusaColombia : Ind City ;
-
-
--- The City of GaliAbkhazia in RepublicOfGeorgia.
-fun GaliAbkhaziaGeorgia : Ind City ;
-
-
--- The City of Ganim in WestBank.
-fun GanimWestBank : Ind City ;
-
-
--- The City of Gashuri in Israel.
-fun GashuriIsrael : Ind City ;
-
-
--- A terroritory occupied by Israel.
-fun GazaStrip : Ind (both LandArea (both Nation (both GeographicArea GeopoliticalArea))) ;
-
-
--- The City of GeneralSantos in Philippines.
-fun GeneralSantosPhilippines : Ind City ;
-
-
--- The City of Geneva in Switzerland.
-fun GenevaSwitzerland : Ind City ;
-
-
-fun Georgia_US : Ind AmericanState ;
-
--- The City of Getxo in Spain.
-fun GetxoSpain : Ind City ;
-
-
--- The City of Ghalebieh in Iraq.
-fun GhalebiehIraq : Ind City ;
-
-
--- The City of Ghaziabad in India.
-fun GhaziabadIndia : Ind City ;
-
-
-fun GhaziabadUttarPradeshIndia : Ind GeographicArea ;
-
--- A dependency of the UnitedKingdom
-fun Gibraltar : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Gilo in Israel.
-fun GiloIsrael : Ind City ;
-
-
--- The City of GivatZeEv in WestBank.
-fun GivatZeEvWestBank : Ind City ;
-
-
--- The City of Giza in Egypt.
-fun GizaEgypt : Ind City ;
-
-
--- A dependency of France
-fun GloriosoIslands : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Gonegalle in SriLanka.
-fun GonegalleSriLanka : Ind City ;
-
-
--- The City of Granada in Spain.
-fun GranadaSpain : Ind City ;
-
-
--- The City of Graz in Austria.
-fun GrazAustria : Ind City ;
-
-
--- A dependency of Denmark
-fun Greenland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Grozny in Chechnya.
-fun GroznyChechnya : Ind City ;
-
-
--- A dependency of France
-fun Guadeloupe : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A dependency of the UnitedStates Guam An Island in the PacificOcean that is a 
--- protectorate of the UnitedStates.
-fun Guam : Ind (both DependencyOrSpecialSovereigntyArea Island) ;
-
-
--- A dependency of the UnitedKingdom
-fun Guernsey : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Guilin in China.
-fun GuilinChina : Ind City ;
-
-
--- The Nation of GuineaBissau.
-fun GuineaBissau : Ind Nation ;
-
-
--- The City of Gujarat in India.
-fun GujaratIndia : Ind City ;
-
-
--- The City of GushEtzion in WestBank.
-fun GushEtzionWestBank : Ind City ;
-
-
-fun GushKatifGazaStrip : Ind GeographicArea ;
-
--- The City of GushKhatif in GazaStrip.
-fun GushKhatifGazaStrip : Ind City ;
-
-
--- The City of Hadera in Israel.
-fun HaderaIsrael : Ind City ;
-
-
--- The City of Haifa in Israel.
-fun HaifaIsrael : Ind City ;
-
-
--- The City of Hamburg in Germany.
-fun HamburgGermany : Ind City ;
-
-
--- The City of HamisMiliyana in Algeria.
-fun HamisMiliyanaAlgeria : Ind City ;
-
-
--- The City of Hamra in WestBank.
-fun HamraWestBank : Ind City ;
-
-
--- The City of Hannover in Germany.
-fun HannoverGermany : Ind City ;
-
-
--- The City of HarBracha in WestBank.
-fun HarBrachaWestBank : Ind City ;
-
-
--- The City of Harer in Ethiopia.
-fun HarerEthiopia : Ind City ;
-
-
--- The City of Havana in Cuba.
-fun HavanaCuba : Ind City ;
-
-
--- An AmericanState that consists of several Islands in 
--- the central PacificOcean.
-fun Hawaii : Ind AmericanState ;
-
-
--- The City of Hawana in Iraq.
-fun HawanaIraq : Ind City ;
-
-
--- A dependency of Australia
-fun HeardIslandAndMcDonaldIslands : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Heart in Afghanistan.
-fun HeartAfghanistan : Ind City ;
-
-
--- The City of Hebron in WestBank.
-fun HebronWestBank : Ind City ;
-
-
--- The City of Hermesh in Israel.
-fun HermeshIsrael : Ind City ;
-
-
--- The City of Hernani in Spain.
-fun HernaniSpain : Ind City ;
-
-
--- The City of Herzliya in Israel.
-fun HerzliyaIsrael : Ind City ;
-
-
--- The City of Hilversum in Netherlands.
-fun HilversumNetherlands : Ind City ;
-
-
--- The City of Hizma in WestBank.
-fun HizmaWestBank : Ind City ;
-
-
-fun HodayaJunctionIsrael : Ind GeographicArea ;
-
-fun HolonJunctionIsrael : Ind GeographicArea ;
-
--- A dependency of China
-fun HongKong : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The capital and largest City in Hawaii.
-fun HonoluluHawaii : Ind AmericanCity ;
-
-
--- Located in southeastern Texas, the largest 
--- City in the state.
-fun HoustonTexas : Ind AmericanCity ;
-
-
--- A dependency of the UnitedStates
-fun HowlandIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Huallga in Peru.
-fun HuallgaPeru : Ind City ;
-
-
--- A large River in NewYorkState.
-fun HudsonRiver : Ind River ;
-
-
--- The City of Hurghada in Egypt.
-fun HurghadaEgypt : Ind City ;
-
-
--- The City of Hyderabad in Pakistan.
-fun HyderabadPakistan : Ind City ;
-
-
--- The City of Ibsril in Iraq.
-fun IbsrilIraq : Ind City ;
-
-
--- A state known for potatoes in the northwestern 
--- UnitedStates.
-fun Idaho : Ind AmericanState ;
-
-
--- A populous and industrial state in the midwestern 
--- UnitedStates.
-fun Illinois : Ind AmericanState ;
-
-
-fun IncirlikAirbaseTurkey : Ind GeographicArea ;
-
--- A state in the mideastern UnitedStates.
-fun Indiana : Ind AmericanState ;
-
-
--- A state in the midwestern UnitedStates.
-fun Iowa : Ind AmericanState ;
-
-
--- The City of Ipil in Philippines.
-fun IpilPhilippines : Ind City ;
-
-
--- The City of Irbil in Iraq.
-fun IrbilIraq : Ind City ;
-
-
--- The City of Islamabad in Pakistan.
-fun IslamabadPakistan : Ind City ;
-
-
-fun IslandOfBaliIndonesia : Ind GeographicArea ;
-
--- A dependency of the UnitedKingdom
-fun IsleOfMan : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Istanbul in Turkey.
-fun IstanbulTurkey : Ind City ;
-
-
--- The City of Itamar in WestBank.
-fun ItamarWestBank : Ind City ;
-
-
--- The City of Izmir in Turkey.
-fun IzmirTurkey : Ind City ;
-
-
--- The City of JMain in WestBank.
-fun JMainWestBank : Ind City ;
-
-
--- The City of Jaffa in Israel.
-fun JaffaIsrael : Ind City ;
-
-
--- The City of Jaffna in SriLanka.
-fun JaffnaSriLanka : Ind City ;
-
-
--- The City of Jakarta in Indonesia.
-fun JakartaIndonesia : Ind City ;
-
-
--- The City of Jalah in India.
-fun JalahIndia : Ind City ;
-
-
-fun JalpaiguriRailwayStationIndia : Ind GeographicArea ;
-
--- The City of Jammu in India.
-fun JammuIndia : Ind City ;
-
-
--- A dependency of Norway
-fun JanMayenIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Jangas in Peru.
-fun JangasPeru : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun JarvisIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Jenin in WestBank.
-fun JeninWestBank : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun Jersey : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of JerusalemHills in Israel.
-fun JerusalemHillsIsrael : Ind City ;
-
-
--- The capital and largest City in Israel. 
--- It is regarded as a holy city by Muslims, Jews, and Christians.
-fun JerusalemIsrael : Ind City ;
-
-
--- The City of JerusalemOldCity in Israel.
-fun JerusalemOldCityIsrael : Ind City ;
-
-
--- The City of Johannesburg in SouthAfrica.
-fun JohannesburgSouthAfrica : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun JohnstonAtoll : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Jolo in Philippines.
-fun JoloPhilippines : Ind City ;
-
-
--- A dependency of France
-fun JuanDeNovaIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Jubial in SaudiArabia.
-fun JubialSaudiArabia : Ind City ;
-
-
--- The City of Jullundur in India.
-fun JullundurIndia : Ind City ;
-
-
--- The City of Kabacan in Philippines.
-fun KabacanPhilippines : Ind City ;
-
-
--- The City of Kabul in Afghanistan.
-fun KabulAfghanistan : Ind City ;
-
-
--- The City of KafrAkab in WestBank.
-fun KafrAkabWestBank : Ind City ;
-
-
--- The City of KafrIdna in WestBank.
-fun KafrIdnaWestBank : Ind City ;
-
-
--- The City of Kalkilya in WestBank.
-fun KalkilyaWestBank : Ind City ;
-
-
--- The City of Kalmunai in SriLanka.
-fun KalmunaiSriLanka : Ind City ;
-
-
--- The City of Kampala in Uganda.
-fun KampalaUganda : Ind City ;
-
-
--- The City of Kandy in SriLanka.
-fun KandySriLanka : Ind City ;
-
-
--- The City of Kanihama in India.
-fun KanihamaIndia : Ind City ;
-
-
--- A state in the midwestern UnitedStates.
-fun Kansas : Ind AmericanState ;
-
-
--- A large City at the western edge of Missouri.
-fun KansasCityMissouri : Ind AmericanCity ;
-
-
--- The City of Karachi in Pakistan.
-fun KarachiPakistan : Ind City ;
-
-
--- The City of Karkur in Israel.
-fun KarkurIsrael : Ind City ;
-
-
--- The City of KarmeiTzur in WestBank.
-fun KarmeiTzurWestBank : Ind City ;
-
-
--- The City of KarneiShomron in WestBank.
-fun KarneiShomronWestBank : Ind City ;
-
-
--- The City of Kashmir in India.
-fun KashmirIndia : Ind City ;
-
-
-fun KatmanduAirportNepal : Ind GeographicArea ;
-
--- The Nation of Kazakhstan.
-fun Kazakhstan : Ind Nation ;
-
-
-fun KedumimSettlementWestBank : Ind GeographicArea ;
-
--- The City of Kedumim in WestBank.
-fun KedumimWestBank : Ind City ;
-
-
--- A state in the southeastern UnitedStates.
-fun Kentucky : Ind AmericanState ;
-
-
--- The City of KfarBaAneh in Israel.
-fun KfarBaAnehIsrael : Ind City ;
-
-
--- The City of KfarDarom in GazaStrip.
-fun KfarDaromGazaStrip : Ind City ;
-
-
--- The City of KfarDaromNetzarim in Israel.
-fun KfarDaromNetzarimIsrael : Ind City ;
-
-
--- The City of KfarHess in Israel.
-fun KfarHessIsrael : Ind City ;
-
-
--- The City of KfarSaba in Israel.
-fun KfarSabaIsrael : Ind City ;
-
-
--- The City of KfarTzurif in WestBank.
-fun KfarTzurifWestBank : Ind City ;
-
-
--- The City of KfarYam in GazaStrip.
-fun KfarYamGazaStrip : Ind City ;
-
-
--- The City of Khankala in Chechnya.
-fun KhankalaChechnya : Ind City ;
-
-
--- The City of Khartoum in Sudan.
-fun KhartoumSudan : Ind City ;
-
-
--- The City of Khelil in Algeria.
-fun KhelilAlgeria : Ind City ;
-
-
--- The City of Khobar in SaudiArabia.
-fun KhobarSaudiArabia : Ind City ;
-
-
--- The City of KibbutzGalEd in Israel.
-fun KibbutzGalEdIsrael : Ind City ;
-
-
--- The City of KibbutzMerav in Israel.
-fun KibbutzMeravIsrael : Ind City ;
-
-
--- The City of KibbutzSheluhot in Israel.
-fun KibbutzSheluhotIsrael : Ind City ;
-
-
--- The City of Kidapawan in Philippines.
-fun KidapawanPhilippines : Ind City ;
-
-
--- The City of Kigali in Rwanda.
-fun KigaliRwanda : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun KingmanReef : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Kirikkale in Turkey.
-fun KirikkaleTurkey : Ind City ;
-
-
--- The City of KiryatArba in WestBank.
-fun KiryatArbaWestBank : Ind City ;
-
-
--- The City of KiryatMotzkin in Israel.
-fun KiryatMotzkinIsrael : Ind City ;
-
-
--- The City of KiryatNetafim in WestBank.
-fun KiryatNetafimWestBank : Ind City ;
-
-
--- The City of Kissufim in GazaStrip.
-fun KissufimGazaStrip : Ind City ;
-
-
--- The City of KiursehirBoztep in Turkey.
-fun KiursehirBoztepTurkey : Ind City ;
-
-
--- The City of Klaiyat in Lebanon.
-fun KlaiyatLebanon : Ind City ;
-
-
--- The City of Kohlan in Yemen.
-fun KohlanYemen : Ind City ;
-
-
--- The City of KomsomoLabad in Tajikistan.
-fun KomsomoLabadTajikistan : Ind City ;
-
-
--- A Peninsula in Asia that separates 
--- the Yellow Sea from the Sea of Japan. It is occupied by the nations of 
--- North and South Korea.
-fun KoreanPeninsula : Ind Peninsula ;
-
-
--- The City of KuwaitCity in Kuwait.
-fun KuwaitCityKuwait : Ind City ;
-
-
--- The City of LIleRousse in France.
-fun LIleRousseFrance : Ind City ;
-
-
--- The City of LaCeiba in Honduras.
-fun LaCeibaHonduras : Ind City ;
-
-
--- The City of LaGabarra in Venezuela.
-fun LaGabarraVenezuela : Ind City ;
-
-
--- The City of LaGuajira in Colombia.
-fun LaGuajiraColombia : Ind City ;
-
-
--- The City of LaPaz in Bolivia.
-fun LaPazBolivia : Ind City ;
-
-
--- The City of LaVictoria in Venezuela.
-fun LaVictoriaVenezuela : Ind City ;
-
-
--- The City of Lahore in Pakistan.
-fun LahorePakistan : Ind City ;
-
-
--- The City of Larba in Algeria.
-fun LarbaAlgeria : Ind City ;
-
-
--- The City of Larnaca in Cyprus.
-fun LarnacaCyprus : Ind City ;
-
-
--- The City of Lasarte in Spain.
-fun LasarteSpain : Ind City ;
-
-
--- The City of Leiza in Spain.
-fun LeizaSpain : Ind City ;
-
-
-fun LesEucalyptusDistrictAlgeria : Ind GeographicArea ;
-
--- The City of Libertador in Venezuela.
-fun LibertadorVenezuela : Ind City ;
-
-
--- The City of Lice in Turkey.
-fun LiceTurkey : Ind City ;
-
-
--- The City of Lima in Peru.
-fun LimaPeru : Ind City ;
-
-
--- The City of Lindos in Rhodes.
-fun LindosRhodes : Ind City ;
-
-
--- The City of Linz in Australia.
-fun LinzAustralia : Ind City ;
-
-
--- The City of Lockerbie in UnitedKingdom.
-fun LockerbieUnitedKingdom : Ind City ;
-
-
--- The City of Logorno in Spain.
-fun LogornoSpain : Ind City ;
-
-
--- The City of London in UnitedKingdom.
--- The capital city and the largest city of the UnitedKingdom.
-fun LondonUnitedKingdom : Ind EuropeanCity ;
-
-
--- The City of Londonberry in NorthernIreland.
-fun LondonberryNorthernIreland : Ind City ;
-
-
--- A large Island off the coast of NewYorkState. 
--- The boroughs of Queens and Brooklyn make up the western end of this 
--- Island.
-fun LongIsland : Ind Island ;
-
-
--- The largest City in California.
-fun LosAngelesCalifornia : Ind AmericanCity ;
-
-
-fun LosAngelesInternationalAirportUnitedStates : Ind GeographicArea ;
-
--- The City of LosAngeles in UnitedStates.
-fun LosAngelesUnitedStates : Ind City ;
-
-
--- The City of LosBancos in Venezuela.
-fun LosBancosVenezuela : Ind City ;
-
-
-fun LosKatiosNationalParkColombia : Ind GeographicArea ;
-
--- A state in the south_central part of the UnitedStates. 
--- It borders on the GulfOfMexico and is known for its bayous and cajun culture.
-fun Louisiana : Ind AmericanState ;
-
-
--- The City of Luanda in Angola.
-fun LuandaAngola : Ind City ;
-
-
--- The City of Luebeck in Germany.
-fun LuebeckGermany : Ind City ;
-
-
--- The City of LundaNorte in Angola.
-fun LundaNorteAngola : Ind City ;
-
-
--- The City of Luxor in Egypt.
-fun LuxorEgypt : Ind City ;
-
-
--- The City of Lyons in France.
-fun LyonsFrance : Ind City ;
-
-
--- The City of MaAlehMichmash in WestBank.
-fun MaAlehMichmashWestBank : Ind City ;
-
-
--- A dependency of China
-fun Macau : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Maccabim in Israel.
-fun MaccabimIsrael : Ind City ;
-
-
--- The City of Madhu in SriLanka.
-fun MadhuSriLanka : Ind City ;
-
-
--- The City of Madras in India.
-fun MadrasIndia : Ind City ;
-
-
--- The City of Madrid in Spain.
-fun MadridSpain : Ind City ;
-
-
--- The City of Magdalena in Colombia.
-fun MagdalenaColombia : Ind City ;
-
-
--- The City of MaidanShar in Afghanistan.
-fun MaidanSharAfghanistan : Ind City ;
-
-
--- The most northeastern AmericanState.
-fun Maine : Ind AmericanState ;
-
-
--- The City of Makhachkala in Russia.
-fun MakhachkalaRussia : Ind City ;
-
-
--- The City of Malaga in Spain.
-fun MalagaSpain : Ind City ;
-
-
-fun MalukkaIslandsIndonesia : Ind GeographicArea ;
-
--- The City of Managua in Nigeria.
-fun ManaguaNigeria : Ind City ;
-
-
--- The City of Manama in Bahrain.
-fun ManamaBahrain : Ind City ;
-
-
--- The largest City in NewHampshire.
-fun ManchesterNewHampshire : Ind AmericanCity ;
-
-
--- The City of Manchester in UnitedKingdom.
-fun ManchesterUnitedKingdom : Ind City ;
-
-
-fun MangalsenAndSanpheBagarNepal : Ind GeographicArea ;
-
--- The City of Manila in Philippines.
-fun ManilaPhilippines : Ind City ;
-
-
--- The City of Maon in Israel.
-fun MaonIsrael : Ind City ;
-
-
--- The City of Mapourdit in Sudan.
-fun MapourditSudan : Ind City ;
-
-
--- The City of MarSaba in WestBank.
-fun MarSabaWestBank : Ind City ;
-
-
--- The City of Marawi in Philippines.
-fun MarawiPhilippines : Ind City ;
-
-
--- The City of Mardan in Pakistan.
-fun MardanPakistan : Ind City ;
-
-
--- The City of Marmaris in Turkey.
-fun MarmarisTurkey : Ind City ;
-
-
--- The City of Marseilles in France.
-fun MarseillesFrance : Ind City ;
-
-
--- A dependency of France
-fun Martinique : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A state in the eastern UnitedStates that 
--- borders on WashingtonDC.
-fun Maryland : Ind AmericanState ;
-
-
--- The City of Masha in WestBank.
-fun MashaWestBank : Ind City ;
-
-
--- A northeastern AmericanState. Its largest City 
--- is BostonMassachusetts.
-fun Massachusetts : Ind AmericanState ;
-
-
--- The City of Matsumoto in Japan.
-fun MatsumotoJapan : Ind City ;
-
-
--- The City of Mawdiyah in Yemen.
-fun MawdiyahYemen : Ind City ;
-
-
--- A dependency of France
-fun Mayotte : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of MeaShearim in Israel.
-fun MeaShearimIsrael : Ind City ;
-
-
--- The City of Mecca in SaudiArabia.
-fun MeccaSaudiArabia : Ind City ;
-
-
--- The City of Mechora in WestBank.
-fun MechoraWestBank : Ind City ;
-
-
--- The City of Medan in Indonesia.
-fun MedanIndonesia : Ind City ;
-
-
--- The City of Medellin in Colombia.
-fun MedellinColombia : Ind City ;
-
-
--- The City of Megido in Israel.
-fun MegidoIsrael : Ind City ;
-
-
--- The City of Mehola in Israel.
-fun MeholaIsrael : Ind City ;
-
-
--- The City of Mekholah in Israel.
-fun MekholahIsrael : Ind City ;
-
-
--- The largest City in Tennessee, 
--- located on the MississippiRiver.
-fun MemphisTennessee : Ind AmericanCity ;
-
-
--- The City of Mersin in Turkey.
-fun MersinTurkey : Ind City ;
-
-
--- The City of Meta in Colombia.
-fun MetaColombia : Ind City ;
-
-
--- The City of Metulla in Israel.
-fun MetullaIsrael : Ind City ;
-
-
--- The City of Metzer in Israel.
-fun MetzerIsrael : Ind City ;
-
-
--- A populous and industrial state in the midwestern 
--- UnitedStates.
-fun Michigan : Ind AmericanState ;
-
-
--- A dependency of the UnitedStates
-fun MidwayIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Milan in Italy.
-fun MilanItaly : Ind City ;
-
-
--- The City of Mindanao in Philippines.
-fun MindanaoPhilippines : Ind City ;
-
-
-fun MinharotRoadWestBank : Ind GeographicArea ;
-
--- The largest City in Minnesota.
-fun MinneapolisMinnesota : Ind AmericanCity ;
-
-
--- A state in the northern midwest of the UnitedStates.
-fun Minnesota : Ind AmericanState ;
-
-
--- The City of MiranShah in Pakistan.
-fun MiranShahPakistan : Ind City ;
-
-
--- A state in the southeastern UnitedStates that 
--- borders on the GulfOfMexico.
-fun Mississippi : Ind AmericanState ;
-
-
--- The major River in the UnitedStates. 
--- It runs almost the entire width of the UnitedStates, from Minnesota 
--- to the GulfOfMexico.
-fun MississippiRiver : Ind River ;
-
-
--- A state in the central UnitedStates.
-fun Missouri : Ind AmericanState ;
-
-
--- The City of Mitu in Colombia.
-fun MituColombia : Ind City ;
-
-
--- The City of ModiinIllit in WestBank.
-fun ModiinIllitWestBank : Ind City ;
-
-
--- The City of Mombassa in Kenya.
-fun MombassaKenya : Ind City ;
-
-
--- A state in the northwestern UnitedStates.
-fun Montana : Ind AmericanState ;
-
-
--- A large City in eastern Canada.
-fun MontrealCanada : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun Montserrat : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
-fun MoragJunctionGazaStrip : Ind GeographicArea ;
-
--- The City of Moscow in Russia. MoscowRussia The capital of Russia and the largest 
--- City of the country.
-fun MoscowRussia : Ind EuropeanCity ;
-
-
--- The City of MoshavHagor in Israel.
-fun MoshavHagorIsrael : Ind City ;
-
-
--- The City of MoshavTomer in WestBank.
-fun MoshavTomerWestBank : Ind City ;
-
-
--- The City of MukallahAden in Yemen.
-fun MukallahAdenYemen : Ind City ;
-
-
--- The City of MunchenGladbach in Germany.
-fun MunchenGladbachGermany : Ind City ;
-
-
--- The City of Munster in Germany.
-fun MunsterGermany : Ind City ;
-
-
--- The City of Murlough in NorthernIreland.
-fun MurloughNorthernIreland : Ind City ;
-
-
--- The City of MusMus in Israel.
-fun MusMusIsrael : Ind City ;
-
-
--- The City of Mutata in Colombia.
-fun MutataColombia : Ind City ;
-
-
--- The City of Muttur in SriLanka.
-fun MutturSriLanka : Ind City ;
-
-
--- A Nation in southeastern Asia, formerly known 
--- as Burma.
-fun Myanmar : Ind Nation ;
-
-
--- The City of NaAlin in WestBank.
-fun NaAlinWestBank : Ind City ;
-
-
--- The City of Nablus in WestBank.
-fun NablusWestBank : Ind City ;
-
-
--- The City of NahalOz in GazaStrip.
-fun NahalOzGazaStrip : Ind City ;
-
-
--- The City of Naharaim in Israel.
-fun NaharaimIsrael : Ind City ;
-
-
--- The City of Nahariya in Israel.
-fun NahariyaIsrael : Ind City ;
-
-
--- The City of Nairobi in Kenya.
-fun NairobiKenya : Ind City ;
-
-
--- The City of Najaf in Iraq.
-fun NajafIraq : Ind City ;
-
-
-fun NallurAreaSriLanka : Ind GeographicArea ;
-
--- The City of Naqura in Lebanon.
-fun NaquraLebanon : Ind City ;
-
-
--- The City of Narayangang in Bangladesh.
-fun NarayangangBangladesh : Ind City ;
-
-
--- A large City in Tennessee.
-fun NashvilleTennessee : Ind AmericanCity ;
-
-
--- The City of Natania in Israel.
-fun NataniaIsrael : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun NavassaIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of NearAdarim.
-fun NearAdarim : Ind City ;
-
-
--- The City of NearAleiZahav.
-fun NearAleiZahav : Ind City ;
-
-
--- The City of NearJenin.
-fun NearJenin : Ind City ;
-
-
--- A state in the midwestern UnitedStates.
-fun Nebraska : Ind AmericanState ;
-
-
--- The City of Netanya in Israel.
-fun NetanyaIsrael : Ind City ;
-
-
--- A dependency of the Netherlands
-fun NetherlandsAntilles : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Netzarim in GazaStrip.
-fun NetzarimGazaStrip : Ind City ;
-
-
--- The City of NetzerHazani in GazaStrip.
-fun NetzerHazaniGazaStrip : Ind City ;
-
-
--- A state in the western UnitedStates.
-fun Nevada : Ind AmericanState ;
-
-
--- The City of NeveDaniel in WestBank.
-fun NeveDanielWestBank : Ind City ;
-
-
--- The City of NeveDekalim.
-fun NeveDekalim : Ind City ;
-
-
--- The City of NeveYamin in Israel.
-fun NeveYaminIsrael : Ind City ;
-
-
--- The City of NewDelhi in India.
-fun NewDelhiIndia : Ind City ;
-
-
--- A GeographicArea in the UnitedStates that is 
--- made up of the states of Maine, New Hampshire, Vermont, Massachusetts, Rhode Island, 
--- and Connecticut.
-fun NewEngland : Ind GeographicArea ;
-
-
--- A northeastern AmericanState. Its largest City 
--- is ManchesterNewHampshire.
-fun NewHampshire : Ind AmericanState ;
-
-
--- A state in the eastern UnitedStates.
-fun NewJersey : Ind AmericanState ;
-
-
--- A southwestern state in the UnitedStates.
-fun NewMexico : Ind AmericanState ;
-
-
--- The City of NewYorkCity in UnitedStates. NewYorkCityUnitedStates The largest City in the UnitedStates. 
--- A worldwide center of finance and culture, it is comprised of five boroughs.
-fun NewYorkCityUnitedStates : Ind AmericanCity ;
-
-
--- A populous state in the northeastern UnitedStates.
-fun NewYorkState : Ind AmericanState ;
-
-
-fun NeztarimSettlementGazaStrip : Ind GeographicArea ;
-
--- The City of Niamey in Niger.
-fun NiameyNiger : Ind City ;
-
-
--- The City of Nissanit in GazaStrip.
-fun NissanitGazaStrip : Ind City ;
-
-
--- The City of NitzaneiOz in WestBank.
-fun NitzaneiOzWestBank : Ind City ;
-
-
--- The City of Nitzanim in Israel.
-fun NitzanimIsrael : Ind City ;
-
-
--- A dependency of NewZealand
-fun Niue : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
-fun NokdimTekoaRdWestBank : Ind GeographicArea ;
-
--- A dependency of Australia
-fun NorfolkIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of NorteDeSantander in Colombia.
-fun NorteDeSantanderColombia : Ind City ;
-
-
--- A state in the southeastern UnitedStates.
-fun NorthCarolina : Ind AmericanState ;
-
-
--- A state in the northern midwest of the UnitedStates.
-fun NorthDakota : Ind AmericanState ;
-
-
-fun NorthernCaucasiusChechnya : Ind GeographicArea ;
-
--- The Nation of NorthernIreland.
-fun NorthernIreland : Ind Nation ;
-
-
--- A dependency of the UnitedStates
-fun NorthernMarianaIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Novogrozny in Russia.
-fun NovogroznyRussia : Ind City ;
-
-
--- The City of NovyyAtagi in Russia.
-fun NovyyAtagiRussia : Ind City ;
-
-
--- The City of Oberwart in Austria.
-fun OberwartAustria : Ind City ;
-
-
--- The City of Ofra in WestBank.
-fun OfraWestBank : Ind City ;
-
-
--- A populous and industrial state in the midwestern 
--- UnitedStates.
-fun Ohio : Ind AmericanState ;
-
-
-fun OilbaseAlgeria : Ind GeographicArea ;
-
--- The City of Okara in Pakistan.
-fun OkaraPakistan : Ind City ;
-
-
--- A state in the southwestern UnitedStates.
-fun Oklahoma : Ind AmericanState ;
-
-
--- The City of OlayaHerrera in Colombia.
-fun OlayaHerreraColombia : Ind City ;
-
-
--- The City of Omagh in NorthernIreland.
-fun OmaghNorthernIreland : Ind City ;
-
-
--- The City of OrYehuda in Israel.
-fun OrYehudaIsrael : Ind City ;
-
-
--- The City of Oran in Algeria.
-fun OranAlgeria : Ind City ;
-
-
--- An AmericanState on the PacificOcean.
-fun Oregon : Ind AmericanState ;
-
-
--- The City of Osaka in Japan.
-fun OsakaJapan : Ind City ;
-
-
--- The City of Oslo in Norway.
-fun OsloNorway : Ind City ;
-
-
--- The City of Ossnabruck in Germany.
-fun OssnabruckGermany : Ind City ;
-
-
-fun OthnielJunctionIsrael : Ind GeographicArea ;
-
--- The City of Otniel in WestBank.
-fun OtnielWestBank : Ind City ;
-
-
--- The City of Otzarin in WestBank.
-fun OtzarinWestBank : Ind City ;
-
-
--- The City of Ozamis in Philippines.
-fun OzamisPhilippines : Ind City ;
-
-
--- The City of Pahalgam in India.
-fun PahalgamIndia : Ind City ;
-
-
--- A GeopoliticalArea that was divided by the 
--- UnitedKingdom into Israel and 
--- Jordan in 1948.
-fun Palestine : Ind OverseasArea ;
-
-
-fun PalestinianLiberationOrganization : Ind PoliticalOrganization ;
-
--- A dependency of the UnitedStates
-fun PalmyraAtoll : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Palorinya in Uganda.
-fun PalorinyaUganda : Ind City ;
-
-
--- The City of Pamplona in Spain.
-fun PamplonaSpain : Ind City ;
-
-
--- The City of PanamaCity in Panama.
-fun PanamaCityPanama : Ind City ;
-
-
--- The City of Pantras in Greece.
-fun PantrasGreece : Ind City ;
-
-
--- The City of Papayin in Colombia.
-fun PapayinColombia : Ind City ;
-
-
--- The City of Papua in Indonesia.
-fun PapuaIndonesia : Ind City ;
-
-
-fun ParacelIslands : Ind (both LandArea GeopoliticalArea) ;
-
--- The capital of France and the largest City of the country.
-fun Paris : Ind EuropeanCity ;
-
-
--- The capital of France and the largest City 
---  of the country.
-fun ParisFrance : Ind EuropeanCity ;
-
-
--- The City of Patikul in Philippines.
-fun PatikulPhilippines : Ind City ;
-
-
--- The City of Pau in France.
-fun PauFrance : Ind City ;
-
-
--- The City of PeAtSadeh in GazaStrip.
-fun PeAtSadehGazaStrip : Ind City ;
-
-
--- A mid_Atlantic AmericanState. Its two major cities 
--- are Philadelphia and Pittsburgh. Pennsylvania A mid_Atlantic AmericanState. Its two major cities 
--- are PhiladelphiaPennsylvania and PittsburghPennsylvania.
-fun Pennsylvania : Ind AmericanState ;
-
-
--- The City of Peshawar in Pakistan.
-fun PeshawarPakistan : Ind City ;
-
-
--- The City of PetahTikva.
-fun PetahTikva : Ind City ;
-
-
--- The City of PetahTikvah in Israel.
-fun PetahTikvahIsrael : Ind City ;
-
-
--- The largest City in Pennsylvania.
-fun PhiladelphiaPennsylvania : Ind AmericanCity ;
-
-
--- The City of PhnomPenh in Cambodia.
-fun PhnomPenhCambodia : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun PitcairnIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The second largest City in 
--- Pennsylvania. It was once a center of steel production in the 
--- UnitedStates.
-fun PittsburghPennsylvania : Ind AmericanCity ;
-
-
--- The City of Portadown in Ireland.
-fun PortadownIreland : Ind City ;
-
-
--- The City of Prague in CzechRepublic.
-fun PragueCzechRepublic : Ind City ;
-
-
--- The largest and capital city of 
--- RhodeIsland.
-fun ProvidenceRhodeIsland : Ind AmericanCity ;
-
-
--- The City of PuertoAlvira in Colombia.
-fun PuertoAlviraColombia : Ind City ;
-
-
--- The City of PuertoLleras in Colombia.
-fun PuertoLlerasColombia : Ind City ;
-
-
--- An dependent part of the UnitedStates.
-fun PuertoRico : Ind (both Archipelago DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Punjab in Pakistan.
-fun PunjabPakistan : Ind City ;
-
-
--- The City of Quetta in Pakistan.
-fun QuettaPakistan : Ind City ;
-
-
--- The City of Quito in Ecuador.
-fun QuitoEcuador : Ind City ;
-
-
--- The City of RadaAman in Yemen.
-fun RadaAmanYemen : Ind City ;
-
-
--- The City of Rafah in GazaStrip.
-fun RafahGazaStrip : Ind City ;
-
-
--- The City of RamaJunction in WestBank.
-fun RamaJunctionWestBank : Ind City ;
-
-
--- The City of RamalDeAspusana in Peru.
-fun RamalDeAspusanaPeru : Ind City ;
-
-
--- The City of Ramallah in WestBank.
-fun RamallahWestBank : Ind City ;
-
-
--- The City of RamatGan in Israel.
-fun RamatGanIsrael : Ind City ;
-
-
--- The City of Ramin in WestBank.
-fun RaminWestBank : Ind City ;
-
-
--- The City of Ramle in Israel.
-fun RamleIsrael : Ind City ;
-
-
--- The City of Rawalpindi in Pakistan.
-fun RawalpindiPakistan : Ind City ;
-
-
--- A tributary of the Mississippi River.
-fun RedRiver : Ind River ;
-
-
--- The Nation of Georgia.
-fun RepublicOfGeorgia : Ind Nation ;
-
-
--- A dependency of France
-fun Reunion : Ind (both Nation DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Reus in Spain.
-fun ReusSpain : Ind City ;
-
-
--- A northeastern AmericanState. Its capital city is 
--- ProvidenceRhodeIsland. It is the smallest AmercianState
-fun RhodeIsland : Ind AmericanState ;
-
-
--- The Nation of Rhodes.
-fun Rhodes : Ind Nation ;
-
-
--- The capital of Virginia, located in the 
--- east_central part of the state.
-fun RichmondVirginia : Ind AmericanCity ;
-
-
--- The City of Riga in Latvia.
-fun RigaLatvia : Ind City ;
-
-
--- The City of Rijeka in Croatia.
-fun RijekaCroatia : Ind City ;
-
-
-fun RimalDistrictGazaStrip : Ind GeographicArea ;
-
--- The City of RishonLeZion in Israel.
-fun RishonLeZionIsrael : Ind City ;
-
-
--- The City of Riyadh in SaudiArabia.
-fun RiyadhSaudiArabia : Ind City ;
-
-
--- The City of Roermond in Netherlands.
-fun RoermondNetherlands : Ind City ;
-
-
--- The City of Rome in Italy. RomeItaly The capital of Italy and the largest City 
--- of the country.
-fun RomeItaly : Ind EuropeanCity ;
-
-
--- The City of Rosas in Spain.
-fun RosasSpain : Ind City ;
-
-
--- The City of RostovOnDon in Russia.
-fun RostovOnDonRussia : Ind City ;
-
-
--- The City of Ruhengeri in Rwanda.
-fun RuhengeriRwanda : Ind City ;
-
-
-fun SaadaPakistan : Ind GeographicArea ;
-
--- The City of Saada in Yemen.
-fun SaadaYemen : Ind City ;
-
-
--- The City of Sabatena in Colombia.
-fun SabatenaColombia : Ind City ;
-
-
--- The City of Sacramento in UnitedStates.
-fun SacramentoUnitedStates : Ind City ;
-
-
--- The City of SaintAvold in France.
-fun SaintAvoldFrance : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun SaintHelena : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of SaintJeanDeLuz in France.
-fun SaintJeanDeLuzFrance : Ind City ;
-
-
--- A large City in Missouri.
-fun SaintLouisMissouri : Ind AmericanCity ;
-
-
--- The capital of Minnesota, borders 
--- MinneapolisMinnesota.
-fun SaintPaulMinnesota : Ind AmericanCity ;
-
-
--- A dependency of France
-fun SaintPierreAndMiquelon : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of SaintSebastian in Spain.
-fun SaintSebastianSpain : Ind City ;
-
-
--- The City of Sairanbar in Iraq.
-fun SairanbarIraq : Ind City ;
-
-
--- The City of SajaIA in GazaStrip.
-fun SajaIAGazaStrip : Ind City ;
-
-
--- The City of SallentDeGallego in Spain.
-fun SallentDeGallegoSpain : Ind City ;
-
-
--- The City of Samaria in WestBank.
-fun SamariaWestBank : Ind City ;
-
-
--- The City of Samashki in Russia.
-fun SamashkiRussia : Ind City ;
-
-
--- The Nation of Samoa.
-fun Samoa : Ind Nation ;
-
-
--- The City of SanDiego in Colombia.
-fun SanDiegoColombia : Ind City ;
-
-
--- A large City in California, 
--- located on the San Francisco Bay.
-fun SanFranciscoCalifornia : Ind AmericanCity ;
-
-
--- The City of SanJose in CostaRica.
-fun SanJoseCostaRica : Ind City ;
-
-
--- The City of SanLuis in Colombia.
-fun SanLuisColombia : Ind City ;
-
-
--- The City of SanMiguel in ElSalvador.
-fun SanMiguelElSalvador : Ind City ;
-
-
--- The City of SanPablo in Colombia.
-fun SanPabloColombia : Ind City ;
-
-
--- The City of SanSabatian in Spain.
-fun SanSabatianSpain : Ind City ;
-
-
--- The City of Sanaa in Yemen.
-fun SanaaYemen : Ind City ;
-
-
--- The City of Sangaldan in India.
-fun SangaldanIndia : Ind City ;
-
-
--- The City of SantaMarta in Colombia.
-fun SantaMartaColombia : Ind City ;
-
-
--- The City of SantaPola in Spain.
-fun SantaPolaSpain : Ind City ;
-
-
-fun SantaRitaMountainsPanama : Ind GeographicArea ;
-
--- The City of Santiago in Chile.
-fun SantiagoChile : Ind City ;
-
-
--- The City of Sanur in Israel.
-fun SanurIsrael : Ind City ;
-
-
--- The City of Sarajevo in BosniaAndHerzegovina.
-fun SarajevoBosniaAndHerzegovina : Ind City ;
-
-
--- The City of Satkhira in Bangladesh.
-fun SatkhiraBangladesh : Ind City ;
-
-
--- A City in Georgia near the mouth of 
--- the Savannah River.
-fun SavannahGeorgia : Ind AmericanCity ;
-
-
--- A division of the UnitedKingdom.
-fun Scotland : Ind GeopoliticalArea ;
-
-
--- The City of Segovia in Colombia.
-fun SegoviaColombia : Ind City ;
-
-
--- The City of Seoul in SouthKorea.
-fun SeoulSouthKorea : Ind City ;
-
-
--- The City of Seville in Spain.
-fun SevilleSpain : Ind City ;
-
-
--- The City of ShadmotMehola in WestBank.
-fun ShadmotMeholaWestBank : Ind City ;
-
-
--- The City of ShaveiShomron in WestBank.
-fun ShaveiShomronWestBank : Ind City ;
-
-
--- The City of SheikhAjlun in GazaStrip.
-fun SheikhAjlunGazaStrip : Ind City ;
-
-
--- The City of Shilo in WestBank.
-fun ShiloWestBank : Ind City ;
-
-
--- The City of Shimi in Ecuador.
-fun ShimiEcuador : Ind City ;
-
-
--- The City of Shlomi in Israel.
-fun ShlomiIsrael : Ind City ;
-
-
--- The City of SidiHalifah in Libya.
-fun SidiHalifahLibya : Ind City ;
-
-
--- The City of Sidon in Lebanon.
-fun SidonLebanon : Ind City ;
-
-
--- The City of Siirt in Turkey.
-fun SiirtTurkey : Ind City ;
-
-
--- The City of SilatADahar in WestBank.
-fun SilatADaharWestBank : Ind City ;
-
-
-fun SipadanIslandMalaysia : Ind GeographicArea ;
-
--- The City of Sitra.
-fun Sitra : Ind City ;
-
-
--- The City of Sitrah in Bahrain.
-fun SitrahBahrain : Ind City ;
-
-
--- The City of Sopore in India.
-fun SoporeIndia : Ind City ;
-
-
--- A state in the southeastern UnitedStates.
-fun SouthCarolina : Ind AmericanState ;
-
-
--- A state in the northern midwest of the UnitedStates.
-fun SouthDakota : Ind AmericanState ;
-
-
--- A dependency of the UnitedKingdom
-fun SouthGeorgiaAndTheSouthSandwichIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The former communist nation of the Soviet Union.
-fun SovietUnion : Ind EuropeanNation ;
-
-
-fun SpratlyIslands : Ind (both LandArea GeopoliticalArea) ;
-
--- The City of Srinagar in India.
-fun SrinagarIndia : Ind City ;
-
-
--- The City of Srinigar in India.
-fun SrinigarIndia : Ind City ;
-
-
--- The City of Sriperumbudur in India.
-fun SriperumbudurIndia : Ind City ;
-
-
--- The City of Stewartstown in NorthernIreland.
-fun StewartstownNorthernIreland : Ind City ;
-
-
--- The City of Stockholm in Sweden.
-fun StockholmSweden : Ind City ;
-
-
--- The City of Strasbourg in France.
-fun StrasbourgFrance : Ind City ;
-
-
--- The City of SukaiManiyah.
-fun SukaiManiyah : Ind City ;
-
-
-fun SukaimaniyahIraq : Ind GeographicArea ;
-
--- The City of Sulawesi in Indonesia.
-fun SulawesiIndonesia : Ind City ;
-
-
--- The City of Sulaymaniyah in Iraq.
-fun SulaymaniyahIraq : Ind City ;
-
-
--- The City of Sumayr in Yemen.
-fun SumayrYemen : Ind City ;
-
-
--- The City of Susiya in WestBank.
-fun SusiyaWestBank : Ind City ;
-
-
--- A dependency of Norway
-fun Svalbard : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of TBilisi in RepublicOfGeorgia.
-fun TBilisiGeorgia : Ind City ;
-
-
--- The City of Taila in Pakistan.
-fun TailaPakistan : Ind City ;
-
-
--- The City of TamezGuida in Algeria.
-fun TamezGuidaAlgeria : Ind City ;
-
-
--- The City of Tandy in SriLanka.
-fun TandySriLanka : Ind City ;
-
-
--- The City of Taxila in Pakistan.
-fun TaxilaPakistan : Ind City ;
-
-
--- The City of Tegucigalpa in Honduras.
-fun TegucigalpaHonduras : Ind City ;
-
-
--- The City of Teheran in Iran.
-fun TeheranIran : Ind City ;
-
-
--- The City of Tehran.
-fun Tehran : Ind City ;
-
-
--- The City of Tekoa in WestBank.
-fun TekoaWestBank : Ind City ;
-
-
--- The City of TelAviv in Israel.
-fun TelAvivIsrael : Ind City ;
-
-
-fun TelHaShomerJunctionIsrael : Ind GeographicArea ;
-
--- The City of TelQateifa in GazaStrip.
-fun TelQateifaGazaStrip : Ind City ;
-
-
--- The City of TelRumeiyda in Israel.
-fun TelRumeiydaIsrael : Ind City ;
-
-
--- The City of Telem in Israel.
-fun TelemIsrael : Ind City ;
-
-
--- The City of Tena in WestBank.
-fun TenaWestBank : Ind City ;
-
-
--- A state in the southeastern UnitedStates.
-fun Tennessee : Ind AmericanState ;
-
-
--- The second largest AmericanState, located in the southwest 
--- on the GulfOfMexico.
-fun Texas : Ind AmericanState ;
-
-
--- The Nation of TheBahamas.
-fun TheBahamas : Ind Nation ;
-
-
--- The City of TheHague in Netherlands.
-fun TheHagueNetherlands : Ind City ;
-
-
-fun TheKyrgyzCapitalBishkekChina : Ind GeographicArea ;
-
--- The City of Thekraguri in India.
-fun ThekraguriIndia : Ind City ;
-
-
--- The City of Tiaret in Algeria.
-fun TiaretAlgeria : Ind City ;
-
-
--- The City of Tirat in Algeria.
-fun TiratAlgeria : Ind City ;
-
-
--- A dependency of NewZealand
-fun Tokelau : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The capital and largest City in Japan.
-fun TokyoJapan : Ind City ;
-
-
--- The City of Tolosa in Spain.
-fun TolosaSpain : Ind City ;
-
-
--- The City of Topkaki in Turkey.
-fun TopkakiTurkey : Ind City ;
-
-
--- The City of Trabzon in Turkey.
-fun TrabzonTurkey : Ind City ;
-
-
-fun TrincomaleeHarborSriLanka : Ind GeographicArea ;
-
--- The City of Tripoli in Libya.
-fun TripoliLibya : Ind City ;
-
-
--- A dependency of France
-fun TromelinIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Tulkarem in WestBank.
-fun TulkaremWestBank : Ind City ;
-
-
--- The City of Tulkarm in WestBank.
-fun TulkarmWestBank : Ind City ;
-
-
--- The City of Tunceli in Turkey.
-fun TunceliTurkey : Ind City ;
-
-
--- The City of Turbat in Pakistan.
-fun TurbatPakistan : Ind City ;
-
-
--- A dependency of the UnitedKingdom
-fun TurksAndCaicosIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
-fun UWaIndianReservationColombia : Ind GeographicArea ;
-
--- The City of UmAlFahm in Israel.
-fun UmAlFahmIsrael : Ind City ;
-
-
--- The City of UmmQasr in Iraq.
-fun UmmQasrIraq : Ind City ;
-
-
--- The City of Urena in Venezuela.
-fun UrenaVenezuela : Ind City ;
-
-
--- The City of Urra in Colombia.
-fun UrraColombia : Ind City ;
-
-
--- The City of UrsMartan in Russia.
-fun UrsMartanRussia : Ind City ;
-
-
--- A state in the western UnitedStates.
-fun Utah : Ind AmericanState ;
-
-
--- The City of Valencia in Spain.
-fun ValenciaSpain : Ind City ;
-
-
--- The City of Valledupar in Colombia.
-fun ValleduparColombia : Ind City ;
-
-
--- The City of Van in Turkey.
-fun VanTurkey : Ind City ;
-
-
--- The City of Vavuniya in SriLanka.
-fun VavuniyaSriLanka : Ind City ;
-
-
--- A northeastern AmericanState know for its small towns 
--- and rustic beauty.
-fun Vermont : Ind AmericanState ;
-
-
--- The City of Vienna in Austria.
-fun ViennaAustria : Ind City ;
-
-
--- The City of Vientiane in Laos.
-fun VientianeLaos : Ind City ;
-
-
--- The City of Villavicencio in Colombia.
-fun VillavicencioColombia : Ind City ;
-
-
--- The VirginIslands is
--- an Archipelago in the West Indies that comprises both the
--- BritishVirginIslands, administered by the UnitedKingdom, and the
--- USVirginIslands, administered by the UnitedStates.
-fun VirginIslands : Ind (both Archipelago DependencyOrSpecialSovereigntyArea) ;
-
-
--- A state in the southeastern UnitedStates 
--- that borders on WashingtonDC.
-fun Virginia : Ind AmericanState ;
-
-
--- The City of Vitoria in Spain.
-fun VitoriaSpain : Ind City ;
-
-
--- The City of Vitrolles in France.
-fun VitrollesFrance : Ind City ;
-
-
--- The City of Vladikavkaz in Russia.
-fun VladikavkazRussia : Ind City ;
-
-
--- The City of Vladivostok in Russia.
-fun VladivostokRussia : Ind City ;
-
-
--- The City of Volgodonsk in Russia.
-fun VolgodonskRussia : Ind City ;
-
-
--- The City of WadiAlDabaat in Yemen.
-fun WadiAlDabaatYemen : Ind City ;
-
-
--- The City of WadiAra in Israel.
-fun WadiAraIsrael : Ind City ;
-
-
--- The City of WadiKelt in WestBank.
-fun WadiKeltWestBank : Ind City ;
-
-
--- A dependency of the UnitedStates
-fun WakeIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- A dependency of France
-fun WallisAndFutuna : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
-
-
--- The City of Warsaw in Poland. WarsawPoland The capital City of Poland.
-fun WarsawPoland : Ind EuropeanCity ;
-
-
--- An AmericanState on the PacificOcean.
-fun Washington : Ind AmericanState ;
-
-
--- The capitalCity of the UnitedStates.
-fun WashingtonDCUnitedStates : Ind AmericanCity ;
-
-
--- The City of Wattyan in Bahrain.
-fun WattyanBahrain : Ind City ;
-
-
--- A terroritory occupied by Israel.
-fun WestBank : Ind (both LandArea (both Nation (both GeographicArea GeopoliticalArea))) ;
-
-
--- The City of WestBeirut in Lebanon.
-fun WestBeirutLebanon : Ind City ;
-
-
--- A state in the southeastern UnitedStates
-fun WestVirginia : Ind AmericanState ;
-
-
--- A state in the midnorthern UnitedStates.
-fun Wisconsin : Ind AmericanState ;
-
-
--- A large western state in the UnitedStates.
-fun Wyoming : Ind AmericanState ;
-
-
--- The City of XiAn in China.
-fun XiAnChina : Ind City ;
-
-
--- The City of YaAbad in WestBank.
-fun YaAbadWestBank : Ind City ;
-
-
--- The City of YagurJunction in Israel.
-fun YagurJunctionIsrael : Ind City ;
-
-
--- The City of Yehud in Israel.
-fun YehudIsrael : Ind City ;
-
-
--- The City of Yerevan in Armenia.
-fun YerevanArmenia : Ind City ;
-
-
--- The City of Yitzhar in WestBank.
-fun YitzharWestBank : Ind City ;
-
-
--- The City of Yokota in Japan.
-fun YokotaJapan : Ind City ;
-
-
--- The City of Yopal in Colombia.
-fun YopalColombia : Ind City ;
-
-
--- The City of Yuksekova in Turkey.
-fun YuksekovaTurkey : Ind City ;
-
-
--- The City of Zaita in Israel.
-fun ZaitaIsrael : Ind City ;
-
-
--- The City of Zamar in Yemen.
-fun ZamarYemen : Ind City ;
-
-
--- The City of Zamboanga in Philippines.
-fun ZamboangaPhilippines : Ind City ;
-
-
--- The City of Zamboango in Philippines.
-fun ZamboangoPhilippines : Ind City ;
-
-
--- The City of Zaragoza in Spain.
-fun ZaragozaSpain : Ind City ;
-
-
--- The City of Zarauz in Spain.
-fun ZarauzSpain : Ind City ;
-
-
-fun ZeifIntersectionWestBank : Ind GeographicArea ;
-
--- The City of Zekharya in Israel.
-fun ZekharyaIsrael : Ind City ;
-
-
-fun Zimbabwe : Ind Nation ;
-
--- The City of Zulia in Colombia.
-fun ZuliaColombia : Ind City ;
-
-
--- The City of Zumaia in Spain.
-fun ZumaiaSpain : Ind City ;
-
-
--- The City of Zumarraga in Spain.
-fun ZumarragaSpain : Ind City ;
-
-
--- The City of Zvornik in BosniaAndHerzegovina.
-fun ZvornikBosniaAndHerzegovina : Ind City ;
-
-
-fun oilfieldsVenezuela : Ind GeographicArea ;
-}
+abstract CountriesAndRegions = MidLevelOntology, Geography, Government ** {
+
+  fun Country : Class ;
+
+  fun Afghanistan : Ind (both Country Nation);
+
+  fun Albania : Ind (both Country Nation);
+
+  fun Algeria : Ind (both Country Nation);
+
+  fun Andorra : Ind (both Country EuropeanNation);
+
+  fun Angola : Ind (both Country Nation);
+
+  fun AntiguaAndBarbuda : Ind (both Country Nation);
+
+  fun Argentina : Ind (both Country Nation);
+
+  fun Armenia : Ind (both Country Nation);
+
+  fun Australia : Ind (both Country Nation);
+
+  fun Austria : Ind (both Country Nation);
+
+  fun Azerbaijan : Ind (both Country Nation);
+
+  fun Bahamas : Ind Country ;
+
+  fun Bahrain : Ind (both Country Nation);
+
+  fun Bangladesh : Ind (both Country Nation);
+
+  fun Barbados : Ind (both Country Nation);
+
+  fun Belarus : Ind (both Country Nation);
+
+  fun Belgium : Ind (both Country EuropeanNation);
+
+  fun Belize : Ind (both Country Nation);
+
+  fun Benin : Ind (both Country Nation);
+
+  fun Bhutan : Ind (both Country Nation);
+
+  fun Bolivia : Ind (both Country Nation);
+
+  fun BosniaAndHerzegovina : Ind (both Country Nation);
+
+  fun Botswana : Ind (both Country Nation);
+
+  fun Brazil : Ind (both Country Nation);
+
+  fun Brunei : Ind (both Country Nation);
+
+  fun Bulgaria : Ind (both Country Nation);
+
+  fun BurkinaFaso : Ind (both Country Nation);
+
+  fun Burma : Ind Country ;
+
+  fun Burundi : Ind (both Country Nation);
+
+  fun Cambodia : Ind (both Country Nation);
+
+  fun Cameroon : Ind (both Country Nation);
+
+  fun Canada : Ind (both Country Nation);
+
+  fun CapeVerde : Ind (both Country Nation);
+
+  fun CentralAfricanRepublic : Ind (both Country Nation);
+
+  fun Chad : Ind (both Country Nation);
+
+  fun Chile : Ind (both Country Nation);
+
+  fun China : Ind (both Country Nation);
+
+  fun Colombia : Ind (both Country Nation);
+
+  fun Comoros : Ind (both Country Nation);
+
+  fun Congo : Ind Country ;
+
+  fun CostaRica : Ind (both Country Nation);
+
+  fun CoteDIvoire : Ind (both Country Nation);
+
+  fun Croatia : Ind (both Country Nation);
+
+  fun Cuba : Ind (both Country (both Nation Island)) ;
+
+  fun Cyprus : Ind (both Country Nation);
+
+  fun CzechRepublic : Ind (both Country Nation);
+
+  fun Denmark : Ind (both Country EuropeanNation);
+
+  fun Djibouti : Ind (both Country Nation);
+
+  fun Dominica : Ind (both Country Nation);
+
+  fun DominicanRepublic : Ind (both Country Nation);
+
+  fun Ecuador : Ind (both Country Nation);
+
+  fun Egypt : Ind (both Country Nation);
+
+  fun ElSalvador : Ind (both Country Nation);
+
+  fun EquatorialGuinea : Ind (both Country Nation);
+
+  fun Eritrea : Ind (both Country Nation);
+
+  fun Estonia : Ind (both Country Nation);
+
+  fun Ethiopia : Ind (both Country Nation);
+
+  fun Fiji : Ind (both Country Nation);
+
+  fun Finland : Ind (both Country EuropeanNation);
+
+  fun France : Ind (both Country EuropeanNation);
+
+  fun FrenchGuiana : Ind (both Country (both LandArea DependencyOrSpecialSovereigntyArea)) ;
+
+  fun Gabon : Ind (both Country Nation);
+
+  fun Gambia : Ind (both Country Nation);
+
+  fun Georgia : Ind (both Country Nation);
+
+  fun Germany : Ind (both Country EuropeanNation);
+
+  fun Ghana : Ind (both Country Nation);
+
+  fun Greece : Ind (both Country EuropeanNation);
+
+  fun Grenada : Ind (both Country Nation);
+
+  fun Guatemala : Ind (both Country Nation);
+
+  fun Guinea : Ind (both Country Nation);
+
+  fun Guyana : Ind (both Country Nation);
+
+  fun Haiti : Ind (both Country Nation);
+
+  fun HolySee : Ind (both Country EuropeanNation);
+
+  fun Honduras : Ind (both Country Nation);
+
+  fun Hungary : Ind (both Country Nation);
+
+  fun Iceland : Ind (both Country (both EuropeanNation Island)) ;
+
+  fun India : Ind (both Country Nation);
+
+  fun Indonesia : Ind (both Country Nation);
+
+  fun Iran : Ind (both Country Nation);
+
+  fun Iraq : Ind (both Country Nation);
+
+  fun Ireland : Ind (both Country EuropeanNation);
+
+  fun Israel : Ind (both Country Nation);
+
+  fun Italy : Ind (both Country EuropeanNation);
+
+  fun Jamaica : Ind (both Country Nation);
+
+  fun Japan : Ind (both Country (both Nation Island)) ;
+
+  fun Jordan : Ind (both Country Nation);
+
+  fun Kazakstan : Ind Country ;
+
+  fun Kenya : Ind (both Country Nation);
+
+  fun Kiribati : Ind (both Country Nation);
+
+  fun Kuwait : Ind (both Country Nation);
+
+  fun Kyrgyzstan : Ind (both Country Nation);
+
+  fun Laos : Ind (both Country Nation);
+
+  fun Latvia : Ind (both Country Nation);
+
+  fun Lebanon : Ind (both Country Nation);
+
+  fun Lesotho : Ind (both Country Nation);
+
+  fun Liberia : Ind (both Country Nation);
+
+  fun Libya : Ind (both Country Nation);
+
+  fun Liechtenstein : Ind (both Country Nation);
+
+  fun Lithuania : Ind (both Country Nation);
+
+  fun Luxembourg : Ind (both Country Nation);
+
+  fun Macedonia : Ind (both Country Nation);
+
+  fun Madagascar : Ind (both Country Nation);
+
+  fun Malawi : Ind (both Country Nation);
+
+  fun Malaysia : Ind (both Country Nation);
+
+  fun Maldives : Ind (both Country Nation);
+
+  fun Mali : Ind (both Country Nation);
+
+  fun Malta : Ind (both Country EuropeanNation);
+
+  fun MarshallIslands : Ind (both Country Nation);
+
+  fun Mauritania : Ind (both Country Nation);
+
+  fun Mauritius : Ind (both Country Nation);
+
+  fun Mexico : Ind (both Country Nation);
+
+  fun Micronesia : Ind (both Country Nation);
+
+  fun Moldova : Ind (both Country Nation);
+
+  fun Monaco : Ind (both Country EuropeanNation);
+
+  fun Mongolia : Ind (both Country Nation);
+
+  fun Morocco : Ind (both Country Nation);
+
+  fun Mozambique : Ind (both Country Nation);
+
+  fun Namibia : Ind (both Country Nation);
+
+  fun Nauru : Ind (both Country Nation);
+
+  fun Nepal : Ind (both Country Nation);
+
+  fun Netherlands : Ind (both Country EuropeanNation);
+
+  fun NewCaledonia : Ind (both Country (both LandArea DependencyOrSpecialSovereigntyArea)) ;
+
+  fun NewZealand : Ind (both Country Nation);
+
+  fun Nicaragua : Ind (both Country Nation);
+
+  fun Niger : Ind (both Country Nation);
+
+  fun Nigeria : Ind (both Country Nation);
+
+  fun NorthKorea : Ind (both Country Nation);
+
+  fun Norway : Ind (both Country EuropeanNation);
+
+  fun Oman : Ind (both Country Nation);
+
+  fun Pakistan : Ind (both Country Nation);
+
+  fun Palau : Ind (both Country Nation);
+
+  fun Panama : Ind (both Country Nation);
+
+  fun PapuaNewGuinea : Ind (both Country Nation);
+
+  fun Paraguay : Ind (both Country Nation);
+
+  fun Peru : Ind (both Country Nation);
+
+  fun Philippines : Ind (both Country Nation);
+
+  fun Poland : Ind (both Country EuropeanNation);
+
+  fun Portugal : Ind (both Country EuropeanNation);
+
+  fun Qatar : Ind (both Country Nation);
+
+  fun Romania : Ind (both Country Nation);
+
+  fun Russia : Ind (both Country Nation);
+
+  fun Rwanda : Ind (both Country Nation);
+
+  -- The nation of SaintKittsAndNevis
+  fun SaintKittsAndNevis : Ind (both Country Nation);
+
+  fun SaintLucia : Ind (both Country Nation);
+
+  -- The nation of SaintVincentAndTheGrenadines.
+  fun SaintVincentAndTheGrenadines : Ind (both Country Nation);
+
+  fun SanMarino : Ind (both Country EuropeanNation);
+
+  -- The nation of SaoTomeAndPrincipe.
+  fun SaoTomeAndPrincipe : Ind (both Country Nation);
+
+  fun SaudiArabia : Ind (both Country Nation);
+
+  fun Senegal : Ind (both Country Nation);
+
+  -- The nation of SerbiaAndMontenegro.
+  fun SerbiaAndMontenegro : Ind (both Country Nation);
+
+  fun Seychelles : Ind (both Country Nation);
+
+  fun SierraLeone : Ind (both Country Nation);
+
+  fun Singapore : Ind (both Country Nation);
+
+  fun Slovakia : Ind (both Country Nation);
+
+  fun Slovenia : Ind (both Country Nation);
+
+  fun SolomonIslands : Ind (both Country Nation);
+
+  fun Somalia : Ind (both Country Nation);
+
+  fun SouthAfrica : Ind (both Country Nation);
+
+  fun SouthKorea : Ind (both Country Nation);
+
+  fun Spain : Ind (both Country EuropeanNation);
+
+  fun SriLanka : Ind (both Country Nation);
+
+  fun Sudan : Ind (both Country Nation);
+
+  fun Suriname : Ind (both Country Nation);
+
+  fun Swaziland : Ind (both Country Nation);
+
+  fun Sweden : Ind (both Country EuropeanNation);
+
+  fun Switzerland : Ind (both Country EuropeanNation);
+
+  fun Syria : Ind (both Country Nation);
+
+  fun Taiwan : Ind (both Country Nation);
+
+  fun Tajikistan : Ind (both Country Nation);
+
+  fun Tanzania : Ind (both Country Nation);
+
+  fun Thailand : Ind (both Country Nation);
+
+  fun Togo : Ind (both Country Nation);
+
+  fun Tonga : Ind (both Country Nation);
+
+  -- The nation of TrinidadAndTobago.
+  fun TrinidadAndTobago : Ind (both Country Nation);
+
+  fun Tunisia : Ind (both Country Nation);
+
+  fun Turkey : Ind (both Country Nation);
+
+  fun Turkmenistan : Ind (both Country Nation);
+
+  fun Tuvalu : Ind (both Country Nation);
+
+  fun Uganda : Ind (both Country Nation);
+
+  fun Ukraine : Ind (both Country Nation);
+
+  fun UnitedArabEmirates : Ind (both Country EuropeanNation);
+
+  fun UnitedKingdom : Ind (both Country Nation);
+
+  fun UnitedStates : Ind (both Country Nation);
+
+  fun Uruguay : Ind (both Country Nation);
+
+  fun Uzbekistan : Ind (both Country Nation);
+
+  fun Vanuatu : Ind (both Country Nation);
+
+  fun Venezuela : Ind (both Country Nation);
+
+  fun Vietnam : Ind (both Country Nation);
+
+  fun WesternSahara : Ind (both Country (both Nation GeopoliticalArea)) ;
+
+  fun WesternSamoa : Ind Country ;
+
+  fun Yemen : Ind (both Country Nation);
+
+  fun Zaire : Ind Country ;
+
+  fun Zambia : Ind (both Country Nation);
+
+  --  The City of Adana in Turkey.
+  fun AdanaTurkey : Ind City ;
+
+  -- The City of AddisAbaba in Ethiopia.
+  fun AddisAbabaEthiopia : Ind City ;
+
+  -- The City of Aden in Yemen.
+  fun AdenYemen : Ind City ;
+
+  -- The City of Adora in WestBank.
+  fun AdoraWestBank : Ind City ;
+
+  -- The City of Afula in Israel.
+  fun AfulaIsrael : Ind City ;
+
+  -- The City of Agri in Turkey.
+  fun AgriTurkey : Ind City ;
+
+  -- The City of AinDefla in Algeria.
+  fun AinDeflaAlgeria : Ind City ;
+
+  -- The City of AinElHajar in Algeria.
+  fun AinElHajarAlgeria : Ind City ;
+
+  -- The City of Ajaccio in France.
+  fun AjaccioFrance : Ind City ;
+
+  -- The City of AlBalamand in Lebanon.
+  fun AlBalamandLebanon : Ind City ;
+
+  -- A state in the southeastern UnitedStates that 
+  -- borders on the GulfOfMexico.
+  fun Alabama : Ind AmericanState ;
+
+  -- The largest state in the UnitedStates.
+  fun Alaska : Ind AmericanState ;
+
+  -- The City of AleiSinai in GazaStrip.
+  fun AleiSinaiGazaStrip : Ind City ;
+
+  -- The City of AleiZahav in WestBank.
+  fun AleiZahavWestBank : Ind City ;
+
+  -- The City of Aley in Lebanon.
+  fun AleyLebanon : Ind City ;
+
+  -- The City of Algiers in Algeria.
+  fun AlgiersAlgeria : Ind City ;
+
+  -- The City of AlkhanYurt in Russia.
+  fun AlkhanYurtRussia : Ind City ;
+
+  -- The City of AlonMoreh in WestBank.
+  fun AlonMorehWestBank : Ind City ;
+
+  -- The City of Ambon in Indonesia.
+  fun AmbonIndonesia : Ind City ;
+
+  -- The class of cities that are in the UnitedStates.
+  fun AmericanCity : Class ;
+  fun AmericanCity_Class : SubClass AmericanCity City ;
+
+  -- A dependency of the UnitedStates
+  fun AmericanSamoa : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The class of states that make up the UnitedStates.
+  fun AmericanState : Class ;
+  fun AmericanState_Class : SubClass AmericanState StateOrProvince ;
+
+  -- The City of Amman in Jordan.
+  fun AmmanJordan : Ind City ;
+
+  -- The City of AnNuwaydirat in Bahrain.
+  fun AnNuwaydiratBahrain : Ind City ;
+
+  -- The City of Andean in Spain.
+  fun AndeanSpain : Ind City ;
+
+  -- The City of AngkorWat in Cambodia.
+  fun AngkorWatCambodia : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun Anguilla : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Ankara in Turkey.
+  fun AnkaraTurkey : Ind City ;
+
+  -- The City of Antalya in Turkey.
+  fun AntalyaTurkey : Ind City ;
+
+  fun Antarctica : Ind GeopoliticalArea ;
+
+  -- The City of Antioquia in Colombia.
+  fun AntioquiaColombia : Ind City ;
+
+  -- The City of Antwerp in Belgium.
+  fun AntwerpBelgium : Ind City ;
+
+  -- The City of Apumirac in Peru.
+  fun ApumiracPeru : Ind City ;
+
+  -- The City of Apure in Venezuela.
+  fun ApureVenezuela : Ind City ;
+
+  -- The City of Arauca in Colombia.
+  fun AraucaColombia : Ind City ;
+
+  -- The City of Argun in Russia.
+  fun ArgunRussia : Ind City ;
+
+  -- The City of Ariel in WestBank.
+  fun ArielWestBank : Ind City ;
+
+  -- A state in the southwestern UnitedStates that 
+  -- borders on Mexico.
+  fun Arizona : Ind AmericanState ;
+
+  -- A state in the southeastern UnitedStates that was 
+  -- part of the Confederacy.
+  fun Arkansas : Ind AmericanState ;
+
+  -- The City of Armagh in NorthernIreland.
+  fun ArmaghNorthernIreland : Ind City ;
+
+  -- A dependency of the Netherlands
+  fun Aruba : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Arzew in Algeria.
+  fun ArzewAlgeria : Ind City ;
+
+  -- The City of Ashdod in Israel.
+  fun AshdodIsrael : Ind City ;
+
+  -- A dependency of Australia
+  fun AshmoreAndCartierIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Askelon in Israel.
+  fun AskelonIsrael : Ind City ;
+
+  -- The City of Asmara in Eritrea.
+  fun AsmaraEritrea : Ind City ;
+
+  -- The City of Assam in India.
+  fun AssamIndia : Ind City ;
+
+  -- The City of Aswan in Egypt.
+  fun AswanEgypt : Ind City ;
+
+  -- The City of Asyut in Egypt.
+  fun AsyutEgypt : Ind City ;
+
+  -- The City of Athens in Greece.
+  fun AthensGreece : Ind City ;
+
+  -- The largest City in Georgia.
+  fun AtlantaGeorgia : Ind AmericanCity ;
+
+  -- The City of Atrush in Iraq.
+  fun AtrushIraq : Ind City ;
+
+  -- The City of Atzmona in GazaStrip.
+  fun AtzmonaGazaStrip : Ind City ;
+
+  -- The City of AvneiHefetz in Israel.
+  fun AvneiHefetzIsrael : Ind City ;
+
+  -- The City of Ayacucho in Peru.
+  fun AyacuchoPeru : Ind City ;
+
+  -- The City of Azor in Israel.
+  fun AzorIsrael : Ind City ;
+
+  -- The City of BKaot in WestBank.
+  fun BKaotWestBank : Ind City ;
+
+  -- The City of BadVilbel in Germany.
+  fun BadVilbelGermany : Ind City ;
+
+  -- The City of Baghdad in Iraq.
+  fun BaghdadIraq : Ind City ;
+
+  -- The City of Bagre in Colombia.
+  fun BagreColombia : Ind City ;
+
+  -- The City of Bahawalpur in Pakistan.
+  fun BahawalpurPakistan : Ind City ;
+
+  -- The City of BakaAlGarbiyeh in Israel.
+  fun BakaAlGarbiyehIsrael : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun BakerIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of BakkaAlSharkiya in WestBank.
+  fun BakkaAlSharkiyaWestBank : Ind City ;
+
+  -- The City of Baku in Azerbaijan.
+  fun BakuAzerbaijan : Ind City ;
+
+  -- The City of Bale in Ethiopia.
+  fun BaleEthiopia : Ind City ;
+
+  -- The largest City in Maryland.
+  fun BaltimoreMaryland : Ind AmericanCity ;
+
+  -- The City of Banbridge in NorthernIreland.
+  fun BanbridgeNorthernIreland : Ind City ;
+
+  -- The City of Bangkok in Thailand.
+  fun BangkokThailand : Ind City ;
+
+  -- The City of Bangor in NorthernIreland.
+  fun BangorNorthernIreland : Ind City ;
+
+  -- The City of Bangui in CentralAfricanRepublic.
+  fun BanguiCentralAfricanRepublic : Ind City ;
+
+  -- The City of Barcelona in Spain.
+  fun BarcelonaSpain : Ind City ;
+
+  -- The City of Barkeo in Cambodia.
+  fun BarkeoCambodia : Ind City ;
+
+  -- The City of Barrancabermeja in Colombia.
+  fun BarrancabermejaColombia : Ind City ;
+
+  -- The City of Basra in Israel.
+  fun BasraIsrael : Ind City ;
+ 
+  -- A dependency of France
+  fun BassasDaIndia : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of BatYam in Israel.
+  fun BatYamIsrael : Ind City ;
+
+  -- The City of Batman in Turkey.
+  fun BatmanTurkey : Ind City ;
+
+  -- The City of BeErSheva in Israel.
+  fun BeErShevaIsrael : Ind City ;
+
+  -- The City of Beasain in Spain.
+  fun BeasainSpain : Ind City ;
+
+  -- The City of Beirut in Lebanon.
+  fun BeirutLebanon : Ind City ;
+
+  -- The City of BeitEl in WestBank.
+  fun BeitElWestBank : Ind City ;
+
+  -- The City of BeitHaggai in WestBank.
+  fun BeitHaggaiWestBank : Ind City ;
+
+  -- The City of BeitHanina in WestBank.
+  fun BeitHaninaWestBank : Ind City ;
+
+  -- The City of BeitSahur in WestBank.
+  fun BeitSahurWestBank : Ind City ;
+
+  -- The City of BeitSheAn in Israel.
+  fun BeitSheAnIsrael : Ind City ;
+
+  -- The City of BeitShemesh in Israel.
+  fun BeitShemeshIsrael : Ind City ;
+
+  -- The City of Beledweyne in Somalia.
+  fun BeledweyneSomalia : Ind City ;
+
+  -- The City of Belfast in NorthernIreland.
+  fun BelfastNorthernIreland : Ind City ;
+
+  -- The City of Belgrade in SerbiaAndMontenegro.
+  fun BelgradeSerbiaAndMontenegro : Ind City ;
+
+  -- The City of Berlin in Germany. BerlinGermany The capital of Germany and the largest 
+  -- City of the country.
+  fun BerlinGermany : Ind EuropeanCity ;
+
+  -- A dependency of the UnitedKingdom
+  fun Bermuda : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The capital of Switzerland.
+  fun BernSwitzerland : Ind EuropeanCity ;
+
+  -- The City of BetLeHiyeh in GazaStrip.
+  fun BetLeHiyehGazaStrip : Ind City ;
+
+  fun BetLidJunctionIsrael : Ind GeographicArea ;
+
+  -- The City of BethEl in Israel.
+  fun BethElIsrael : Ind City ;
+
+  -- The City of Bethlehem in WestBank.
+  fun BethlehemWestBank : Ind City ;
+
+  -- The City of Bidya in WestBank.
+  fun BidyaWestBank : Ind City ;
+
+  -- The City of Bilbao in Spain.
+  fun BilbaoSpain : Ind City ;
+
+  -- The City of Billabona in Spain.
+  fun BillabonaSpain : Ind City ;
+
+  -- The City of Binyamina in Israel.
+  fun BinyaminaIsrael : Ind City ;
+
+  -- The City of Bishkek in Kyrgyzstan.
+  fun BishkekKyrgyzstan : Ind City ;
+
+  -- The City of BneiAyish in Israel.
+  fun BneiAyishIsrael : Ind City ;
+
+  -- The City of Bogota in Colombia.
+  fun BogotaColombia : Ind City ;
+
+  -- The City of Bologna in Italy.
+  fun BolognaItaly : Ind City ;
+
+  -- The City of Bonn in Germany.
+  fun BonnGermany : Ind City ;
+
+  fun BosphorousStraitsTurkey : Ind GeographicArea ;
+
+  -- The largest City in Massachusetts.
+  fun BostonMassachusetts : Ind AmericanCity ;
+
+  -- The City of Bouira in Algeria.
+  fun BouiraAlgeria : Ind City ;
+
+  -- A dependency of Norway
+  fun BouvetIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of BouzeGuene in Algeria.
+  fun BouzeGueneAlgeria : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun BritishIndianOceanTerritory : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A dependency of the UnitedKingdom
+  fun BritishVirginIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Brussels in Belgium.
+  fun BrusselsBelgium : Ind City ;
+
+  -- The City of Bucaramanga in Colombia.
+  fun BucaramangaColombia : Ind City ;
+
+  -- The City of Bucharest in Romania.
+  fun BucharestRomania : Ind City ;
+
+  -- The City of BuenosAires in Argentina.
+  fun BuenosAiresArgentina : Ind City ;
+
+  -- The City of Buinaksk in Russia.
+  fun BuinakskRussia : Ind City ;
+
+  fun BwindiforestUganda : Ind GeographicArea ;
+
+  -- The City of Cabinda in Angola.
+  fun CabindaAngola : Ind City ;
+
+  -- The City of Caglayan in Turkey.
+  fun CaglayanTurkey : Ind City ;
+
+  -- The City of Cairo in Egypt.
+  fun CairoEgypt : Ind City ;
+
+  -- The City of Calcutta in India.
+  fun CalcuttaIndia : Ind City ;
+
+  -- The City of Cali in Colombia.
+  fun CaliColombia : Ind City ;
+
+  -- The AmericanState with the highest population.
+  fun California : Ind AmericanState ;
+
+  -- The City of CampZama in Japan.
+  fun CampZamaJapan : Ind City ;
+
+  -- The City of Cankiri in Turkey.
+  fun CankiriTurkey : Ind City ;
+
+  -- The City of CapeTown in SouthAfrica.
+  fun CapeTownSouthAfrica : Ind City ;
+
+  fun CaritasPolandChechnya : Ind GeographicArea ;
+
+  -- The City of Carmel in Israel.
+  fun CarmelIsrael : Ind City ;
+
+  -- The City of CarmenDeBolivar in Colombia.
+  fun CarmenDeBolivarColombia : Ind City ;
+
+  -- The City of Carrejon in Colombia.
+  fun CarrejonColombia : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun CaymanIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Chaman in Pakistan.
+  fun ChamanPakistan : Ind City ;
+
+  -- The City of ChararESharif in India.
+  fun ChararESharifIndia : Ind City ;
+
+  -- The City of Charsaada in Pakistan.
+  fun CharsaadaPakistan : Ind City ;
+
+  -- The Nation of Chechnya.
+  fun Chechnya : Ind Nation ;
+
+  -- The City of ChernoRechye in Russia.
+  fun ChernoRechyeRussia : Ind City ;
+
+  -- Often referred to as the second city, 
+  -- ChicagoUnitedStates is the largest city in the midwestern United States.
+  fun ChicagoUnitedStates : Ind AmericanCity ;
+
+  -- The City of Chisimayu in Somalia.
+  fun ChisimayuSomalia : Ind City ;
+
+  -- The City of Chittagong in Bangladesh.
+  fun ChittagongBangladesh : Ind City ;
+
+  -- The City of Choba in Angola.
+  fun ChobaAngola : Ind City ;
+
+  -- The City of Choco in Colombia.
+  fun ChocoColombia : Ind City ;
+
+  -- The City of ChorrosQuero in Venezuela.
+  fun ChorrosQueroVenezuela : Ind City ;
+
+  -- A dependency of Australia
+  fun ChristmasIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  fun ClarkAirbasePhilippines : Ind GeographicArea ;
+
+  -- Bordering Lake Erie, ClevelandOhio is 
+  -- the largest City in Ohio.
+  fun ClevelandOhio : Ind AmericanCity ;
+
+  -- A dependency of France
+  fun ClippertonIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A dependency of Australia
+  fun CocosKeelingIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Coimbatore in India.
+  fun CoimbatoreIndia : Ind City ;
+
+  -- The City of Cologne in Germany.
+  fun CologneGermany : Ind City ;
+
+  -- The City of ColombiaCity in Colombia.
+  fun ColombiaCityColombia : Ind City ;
+
+  -- The City of Colombia in Panama.
+  fun ColombiaPanama : Ind City ;
+
+  -- The City of Colombo in SriLanka.
+  fun ColomboSriLanka : Ind City ;
+
+  -- A large western state in the UnitedStates.
+  fun Colorado : Ind AmericanState ;
+
+  -- The capital of Ohio, located in the middle of the state.
+  fun ColumbusOhio : Ind AmericanCity ;
+
+  -- The City of Comayagua in Honduras.
+  fun ComayaguaHonduras : Ind City ;
+
+  -- A state in NewEngland, one of the original thirteen colonies.
+  fun Connecticut : Ind AmericanState ;
+
+  -- A dependency of NewZealand
+  fun CookIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of CopacaBana in Cuba.
+  fun CopacaBanaCuba : Ind City ;
+
+  -- The City of Copenhagen in Denmark. CopenhagenDenmark The capital of Denmark and the largest 
+  -- City of the country.
+  fun CopenhagenDenmark : Ind EuropeanCity ;
+
+  -- A dependency of Australia
+  fun CoralSeaIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Corsica in France.
+  fun CorsicaFrance : Ind City ;
+
+  -- The City of Corte in France.
+  fun CorteFrance : Ind City ;
+
+  -- The City of Corum in Turkey.
+  fun CorumTurkey : Ind City ;
+
+  -- The City of CundiNamarca in Colombia.
+  fun CundiNamarcaColombia : Ind City ;
+
+  -- The City of Cupiagua in Colombia.
+  fun CupiaguaColombia : Ind City ;
+
+  -- The City of Cuzco in Peru.
+  fun CuzcoPeru : Ind City ;
+
+  -- The former eastern bloc nation. It is currently 
+  -- divided into two independent Nations, the Czech Republic and Slovakia.
+  fun Czechoslovakia : Ind EuropeanNation ;
+
+  -- The City of Dagestan in Russia.
+  fun DagestanRussia : Ind City ;
+
+  -- The City of Dahuk in Iraq.
+  fun DahukIraq : Ind City ;
+
+  -- A large City in northeastern Texas.
+  fun DallasTexas : Ind AmericanCity ;
+
+  fun DangDistrictNepal : Ind GeographicArea ;
+
+  -- The City of DarEsSalaAm in Tanzania.
+  fun DarEsSalaAmTanzania : Ind City ;
+
+  -- The City of Darvaz in Tajikistan.
+  fun DarvazTajikistan : Ind City ;
+
+  -- The City of Deba in Spain.
+  fun DebaSpain : Ind City ;
+
+  -- A state in NewEngland, one of the original thirteen colonies.
+  fun Delaware : Ind AmericanState ;
+
+  -- The City of Delhi in India.
+  fun DelhiIndia : Ind City ;
+
+  -- The Nation of DemocraticRepublicOfTheCongo.
+  fun DemocraticRepublicOfTheCongo : Ind Nation ;
+
+  -- The capital and largest City in Colorado.
+  fun DenverColorado : Ind AmericanCity ;
+
+  -- The largest City in Michigan.
+  fun DetroitMichigan : Ind AmericanCity ;
+
+  -- The City of Dhahran in SaudiArabia.
+  fun DhahranSaudiArabia : Ind City ;
+
+  -- The City of Dhaka in Bangladesh.
+  fun DhakaBangladesh : Ind City ;
+
+  -- The City of Dinan in France.
+  fun DinanFrance : Ind City ;
+
+  -- The City of DirNaballah in WestBank.
+  fun DirNaballahWestBank : Ind City ;
+
+  -- The City of DireDawa in Ethiopia.
+  fun DireDawaEthiopia : Ind City ;
+
+  fun DistrictOfMansehraPakistan : Ind GeographicArea ;
+
+  -- The City of Djakashari in RepublicOfGeorgia.
+  fun DjakashariGeorgia : Ind City ;
+
+  -- The City of Djerba in Tunisia.
+  fun DjerbaTunisia : Ind City ;
+
+  -- The City of Doda in India.
+  fun DodaIndia : Ind City ;
+
+  -- The City of Dortmund in Germany.
+  fun DortmundGermany : Ind City ;
+
+  -- The City of Dublin in Ireland.
+  fun DublinIreland : Ind City ;
+
+  -- The City of Duesseldorf in Germany.
+  fun DuesseldorfGermany : Ind City ;
+
+  -- The City of Dugit in GazaStrip.
+  fun DugitGazaStrip : Ind City ;
+
+  -- The City of Durango in Spain.
+  fun DurangoSpain : Ind City ;
+
+  fun DushanbeAirportTajikistan : Ind GeographicArea ;
+
+  -- The City of DushanbeGarm in Tajikistan.
+  fun DushanbeGarmTajikistan : Ind City ;
+
+  -- The City of Dushanbe in Tajikistan.
+  fun DushanbeTajikistan : Ind City ;
+
+  -- The City of EastJerusalem in Israel.
+  fun EastJerusalemIsrael : Ind City ;
+
+  -- The Nation of EastTimor.
+  fun EastTimor : Ind Nation ;
+
+  -- The City of Efrat in WestBank.
+  fun EfratWestBank : Ind City ;
+
+  -- The City of Eilat in Israel.
+  fun EilatIsrael : Ind City ;
+
+  -- The City of Einav in WestBank.
+  fun EinavWestBank : Ind City ;
+
+  -- The City of ElAzzariya in the WestBank.
+  fun ElAzzariyaWestBank : Ind City ;
+
+  -- The City of ElBagre in Colombia.
+  fun ElBagreColombia : Ind City ;
+
+  -- The City of ElBireh in WestBank.
+  fun ElBirehWestBank : Ind City ;
+
+  -- The City of ElPlayon in Colombia.
+  fun ElPlayonColombia : Ind City ;
+
+  -- The City of ElRipialApure in Venezuela.
+  fun ElRipialApureVenezuela : Ind City ;
+
+  -- The City of Elayo in Somalia.
+  fun ElayoSomalia : Ind City ;
+
+  -- The City of EleiSinai in GazaStrip.
+  fun EleiSinaiGazaStrip : Ind City ;
+
+  -- The City of Emmanuel in WestBank.
+  fun EmmanuelWestBank : Ind City ;
+
+  -- The City of Erez in GazaStrip.
+  fun ErezGazaStrip : Ind City ;
+
+  -- A dependency of France
+  fun EuropaIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The second smallest Continent.
+  fun Europe : Ind Continent ;
+
+  -- The class of cities that are in Europe.
+  fun EuropeanCity : Class ;
+  fun EuropeanCity_Class : SubClass EuropeanCity City ;
+
+  -- A dependency of the UnitedKingdom
+  fun FalklandIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The largest City in NorthDakota.
+  fun FargoNorthDakota : Ind AmericanCity ;
+
+  -- A dependency of Denmark
+  fun FaroeIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  fun FethiyeAndMarmarisTurkey : Ind GeographicArea ;
+
+  -- A state in the southeastern UnitedStates between 
+  -- the GulfOfMexico and the AtlanticOcean.
+  fun Florida : Ind AmericanState ;
+
+  fun FloridaUnitedStates : Ind GeographicArea ;
+
+  -- The City of Formeque in Colombia.
+  fun FormequeColombia : Ind City ;
+
+  -- The City of Frankfurt in Germany.
+  fun FrankfurtGermany : Ind City ;
+
+  -- The City of FrenchHill in Israel.
+  fun FrenchHillIsrael : Ind City ;
+
+  -- A dependency of France
+  fun FrenchPolynesia : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A dependency of France
+  fun FrenchSouthernAndAntarcticLands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Fuengirola in Spain.
+  fun FuengirolaSpain : Ind City ;
+
+  -- The City of Fusagasusa in Colombia.
+  fun FusagasusaColombia : Ind City ;
+
+  -- The City of GaliAbkhazia in RepublicOfGeorgia.
+  fun GaliAbkhaziaGeorgia : Ind City ;
+
+  -- The City of Ganim in WestBank.
+  fun GanimWestBank : Ind City ;
+
+  -- The City of Gashuri in Israel.
+  fun GashuriIsrael : Ind City ;
+
+  -- A terroritory occupied by Israel.
+  fun GazaStrip : Ind (both LandArea (both Nation (both GeographicArea GeopoliticalArea))) ;
+
+  -- The City of GeneralSantos in Philippines.
+  fun GeneralSantosPhilippines : Ind City ;
+
+  -- The City of Geneva in Switzerland.
+  fun GenevaSwitzerland : Ind City ;
+
+  fun Georgia_US : Ind AmericanState ;
+
+  -- The City of Getxo in Spain.
+  fun GetxoSpain : Ind City ;
+
+  -- The City of Ghalebieh in Iraq.
+  fun GhalebiehIraq : Ind City ;
+
+  -- The City of Ghaziabad in India.
+  fun GhaziabadIndia : Ind City ;
+
+  fun GhaziabadUttarPradeshIndia : Ind GeographicArea ;
+
+  -- A dependency of the UnitedKingdom
+  fun Gibraltar : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Gilo in Israel.
+  fun GiloIsrael : Ind City ;
+
+  -- The City of GivatZeEv in WestBank.
+  fun GivatZeEvWestBank : Ind City ;
+
+  -- The City of Giza in Egypt.
+  fun GizaEgypt : Ind City ;
+
+  -- A dependency of France
+  fun GloriosoIslands : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Gonegalle in SriLanka.
+  fun GonegalleSriLanka : Ind City ;
+
+  -- The City of Granada in Spain.
+  fun GranadaSpain : Ind City ;
+
+  -- The City of Graz in Austria.
+  fun GrazAustria : Ind City ;
+
+  -- A dependency of Denmark
+  fun Greenland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Grozny in Chechnya.
+  fun GroznyChechnya : Ind City ;
+
+  -- A dependency of France
+  fun Guadeloupe : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A dependency of the UnitedStates Guam An Island in the PacificOcean that is a 
+  -- protectorate of the UnitedStates.
+  fun Guam : Ind (both DependencyOrSpecialSovereigntyArea Island) ;
+
+  -- A dependency of the UnitedKingdom
+  fun Guernsey : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Guilin in China.
+  fun GuilinChina : Ind City ;
+
+  -- The Nation of GuineaBissau.
+  fun GuineaBissau : Ind (both Country Nation) ;
+
+  -- The City of Gujarat in India.
+  fun GujaratIndia : Ind City ;
+
+  -- The City of GushEtzion in WestBank.
+  fun GushEtzionWestBank : Ind City ;
+
+  fun GushKatifGazaStrip : Ind GeographicArea ;
+
+  -- The City of GushKhatif in GazaStrip.
+  fun GushKhatifGazaStrip : Ind City ;
+
+  -- The City of Hadera in Israel.
+  fun HaderaIsrael : Ind City ;
+
+  -- The City of Haifa in Israel.
+  fun HaifaIsrael : Ind City ;
+
+  -- The City of Hamburg in Germany.
+  fun HamburgGermany : Ind City ;
+
+  -- The City of HamisMiliyana in Algeria.
+  fun HamisMiliyanaAlgeria : Ind City ;
+
+  -- The City of Hamra in WestBank.
+  fun HamraWestBank : Ind City ;
+
+  -- The City of Hannover in Germany.
+  fun HannoverGermany : Ind City ;
+
+  -- The City of HarBracha in WestBank.
+  fun HarBrachaWestBank : Ind City ;
+
+  -- The City of Harer in Ethiopia.
+  fun HarerEthiopia : Ind City ;
+
+  -- The City of Havana in Cuba.
+  fun HavanaCuba : Ind City ;
+
+  -- An AmericanState that consists of several Islands in 
+  -- the central PacificOcean.
+  fun Hawaii : Ind AmericanState ;
+
+  -- The City of Hawana in Iraq.
+  fun HawanaIraq : Ind City ;
+
+  -- A dependency of Australia
+  fun HeardIslandAndMcDonaldIslands : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Heart in Afghanistan.
+  fun HeartAfghanistan : Ind City ;
+
+  -- The City of Hebron in WestBank.
+  fun HebronWestBank : Ind City ;
+
+  -- The City of Hermesh in Israel.
+  fun HermeshIsrael : Ind City ;
+
+  -- The City of Hernani in Spain.
+  fun HernaniSpain : Ind City ;
+
+  -- The City of Herzliya in Israel.
+  fun HerzliyaIsrael : Ind City ;
+
+  -- The City of Hilversum in Netherlands.
+  fun HilversumNetherlands : Ind City ;
+
+  -- The City of Hizma in WestBank.
+  fun HizmaWestBank : Ind City ;
+
+  fun HodayaJunctionIsrael : Ind GeographicArea ;
+
+  fun HolonJunctionIsrael : Ind GeographicArea ;
+
+  -- A dependency of China
+  fun HongKong : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The capital and largest City in Hawaii.
+  fun HonoluluHawaii : Ind AmericanCity ;
+
+  -- Located in southeastern Texas, the largest City in the state.
+  fun HoustonTexas : Ind AmericanCity ;
+
+  -- A dependency of the UnitedStates
+  fun HowlandIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Huallga in Peru.
+  fun HuallgaPeru : Ind City ;
+
+  -- A large River in NewYorkState.
+  fun HudsonRiver : Ind River ;
+
+  -- The City of Hurghada in Egypt.
+  fun HurghadaEgypt : Ind City ;
+
+  -- The City of Hyderabad in Pakistan.
+  fun HyderabadPakistan : Ind City ;
+
+  -- The City of Ibsril in Iraq.
+  fun IbsrilIraq : Ind City ;
+
+  -- A state known for potatoes in the northwestern UnitedStates.
+  fun Idaho : Ind AmericanState ;
+
+  -- A populous and industrial state in the midwestern UnitedStates.
+  fun Illinois : Ind AmericanState ;
+
+  fun IncirlikAirbaseTurkey : Ind GeographicArea ;
+
+  -- A state in the mideastern UnitedStates.
+  fun Indiana : Ind AmericanState ;
+
+  -- A state in the midwestern UnitedStates.
+  fun Iowa : Ind AmericanState ;
+
+  -- The City of Ipil in Philippines.
+  fun IpilPhilippines : Ind City ;
+
+  -- The City of Irbil in Iraq.
+  fun IrbilIraq : Ind City ;
+
+  -- The City of Islamabad in Pakistan.
+  fun IslamabadPakistan : Ind City ;
+
+  fun IslandOfBaliIndonesia : Ind GeographicArea ;
+
+  -- A dependency of the UnitedKingdom
+  fun IsleOfMan : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Istanbul in Turkey.
+  fun IstanbulTurkey : Ind City ;
+
+  -- The City of Itamar in WestBank.
+  fun ItamarWestBank : Ind City ;
+
+  -- The City of Izmir in Turkey.
+  fun IzmirTurkey : Ind City ;
+
+  -- The City of JMain in WestBank.
+  fun JMainWestBank : Ind City ;
+
+  -- The City of Jaffa in Israel.
+  fun JaffaIsrael : Ind City ;
+
+  -- The City of Jaffna in SriLanka.
+  fun JaffnaSriLanka : Ind City ;
+
+  -- The City of Jakarta in Indonesia.
+  fun JakartaIndonesia : Ind City ;
+
+  -- The City of Jalah in India.
+  fun JalahIndia : Ind City ;
+
+  fun JalpaiguriRailwayStationIndia : Ind GeographicArea ;
+
+  -- The City of Jammu in India.
+  fun JammuIndia : Ind City ;
+
+  -- A dependency of Norway
+  fun JanMayenIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Jangas in Peru.
+  fun JangasPeru : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun JarvisIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Jenin in WestBank.
+  fun JeninWestBank : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun Jersey : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of JerusalemHills in Israel.
+  fun JerusalemHillsIsrael : Ind City ;
+
+  -- The capital and largest City in Israel. 
+  -- It is regarded as a holy city by Muslims, Jews, and Christians.
+  fun JerusalemIsrael : Ind City ;
+
+  -- The City of JerusalemOldCity in Israel.
+  fun JerusalemOldCityIsrael : Ind City ;
+
+  -- The City of Johannesburg in SouthAfrica.
+  fun JohannesburgSouthAfrica : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun JohnstonAtoll : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Jolo in Philippines.
+  fun JoloPhilippines : Ind City ;
+
+  -- A dependency of France
+  fun JuanDeNovaIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Jubial in SaudiArabia.
+  fun JubialSaudiArabia : Ind City ;
+
+  -- The City of Jullundur in India.
+  fun JullundurIndia : Ind City ;
+
+  -- The City of Kabacan in Philippines.
+  fun KabacanPhilippines : Ind City ;
+
+  -- The City of Kabul in Afghanistan.
+  fun KabulAfghanistan : Ind City ;
+
+  -- The City of KafrAkab in WestBank.
+  fun KafrAkabWestBank : Ind City ;
+
+  -- The City of KafrIdna in WestBank.
+  fun KafrIdnaWestBank : Ind City ;
+
+  -- The City of Kalkilya in WestBank.
+  fun KalkilyaWestBank : Ind City ;
+
+  -- The City of Kalmunai in SriLanka.
+  fun KalmunaiSriLanka : Ind City ;
+
+  -- The City of Kampala in Uganda.
+  fun KampalaUganda : Ind City ;
+
+  -- The City of Kandy in SriLanka.
+  fun KandySriLanka : Ind City ;
+
+  -- The City of Kanihama in India.
+  fun KanihamaIndia : Ind City ;
+
+  -- A state in the midwestern UnitedStates.
+  fun Kansas : Ind AmericanState ;
+
+  -- A large City at the western edge of Missouri.
+  fun KansasCityMissouri : Ind AmericanCity ;
+
+  -- The City of Karachi in Pakistan.
+  fun KarachiPakistan : Ind City ;
+
+  -- The City of Karkur in Israel.
+  fun KarkurIsrael : Ind City ;
+
+  -- The City of KarmeiTzur in WestBank.
+  fun KarmeiTzurWestBank : Ind City ;
+
+  -- The City of KarneiShomron in WestBank.
+  fun KarneiShomronWestBank : Ind City ;
+
+  -- The City of Kashmir in India.
+  fun KashmirIndia : Ind City ;
+
+  fun KatmanduAirportNepal : Ind GeographicArea ;
+
+  -- The Nation of Kazakhstan.
+  fun Kazakhstan : Ind Nation ;
+
+  fun KedumimSettlementWestBank : Ind GeographicArea ;
+
+  -- The City of Kedumim in WestBank.
+  fun KedumimWestBank : Ind City ;
+
+  -- A state in the southeastern UnitedStates.
+  fun Kentucky : Ind AmericanState ;
+
+  -- The City of KfarBaAneh in Israel.
+  fun KfarBaAnehIsrael : Ind City ;
+
+  -- The City of KfarDarom in GazaStrip.
+  fun KfarDaromGazaStrip : Ind City ;
+
+  -- The City of KfarDaromNetzarim in Israel.
+  fun KfarDaromNetzarimIsrael : Ind City ;
+
+  -- The City of KfarHess in Israel.
+  fun KfarHessIsrael : Ind City ;
+
+  -- The City of KfarSaba in Israel.
+  fun KfarSabaIsrael : Ind City ;
+
+  -- The City of KfarTzurif in WestBank.
+  fun KfarTzurifWestBank : Ind City ;
+
+  -- The City of KfarYam in GazaStrip.
+  fun KfarYamGazaStrip : Ind City ;
+
+  -- The City of Khankala in Chechnya.
+  fun KhankalaChechnya : Ind City ;
+
+  -- The City of Khartoum in Sudan.
+  fun KhartoumSudan : Ind City ;
+
+  -- The City of Khelil in Algeria.
+  fun KhelilAlgeria : Ind City ;
+
+  -- The City of Khobar in SaudiArabia.
+  fun KhobarSaudiArabia : Ind City ;
+
+  -- The City of KibbutzGalEd in Israel.
+  fun KibbutzGalEdIsrael : Ind City ;
+
+  -- The City of KibbutzMerav in Israel.
+  fun KibbutzMeravIsrael : Ind City ;
+
+  -- The City of KibbutzSheluhot in Israel.
+  fun KibbutzSheluhotIsrael : Ind City ;
+
+  -- The City of Kidapawan in Philippines.
+  fun KidapawanPhilippines : Ind City ;
+
+  -- The City of Kigali in Rwanda.
+  fun KigaliRwanda : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun KingmanReef : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Kirikkale in Turkey.
+  fun KirikkaleTurkey : Ind City ;
+
+  -- The City of KiryatArba in WestBank.
+  fun KiryatArbaWestBank : Ind City ;
+
+  -- The City of KiryatMotzkin in Israel.
+  fun KiryatMotzkinIsrael : Ind City ;
+
+  -- The City of KiryatNetafim in WestBank.
+  fun KiryatNetafimWestBank : Ind City ;
+
+  -- The City of Kissufim in GazaStrip.
+  fun KissufimGazaStrip : Ind City ;
+
+  -- The City of KiursehirBoztep in Turkey.
+  fun KiursehirBoztepTurkey : Ind City ;
+
+  -- The City of Klaiyat in Lebanon.
+  fun KlaiyatLebanon : Ind City ;
+
+  -- The City of Kohlan in Yemen.
+  fun KohlanYemen : Ind City ;
+
+  -- The City of KomsomoLabad in Tajikistan.
+  fun KomsomoLabadTajikistan : Ind City ;
+
+  -- A Peninsula in Asia that separates the Yellow Sea from 
+  -- the Sea of Japan. It is occupied by the nations of North and South Korea.
+  fun KoreanPeninsula : Ind Peninsula ;
+
+  -- The City of KuwaitCity in Kuwait.
+  fun KuwaitCityKuwait : Ind City ;
+
+  -- The City of LIleRousse in France.
+  fun LIleRousseFrance : Ind City ;
+
+  -- The City of LaCeiba in Honduras.
+  fun LaCeibaHonduras : Ind City ;
+
+  -- The City of LaGabarra in Venezuela.
+  fun LaGabarraVenezuela : Ind City ;
+
+  -- The City of LaGuajira in Colombia.
+  fun LaGuajiraColombia : Ind City ;
+
+  -- The City of LaPaz in Bolivia.
+  fun LaPazBolivia : Ind City ;
+
+  -- The City of LaVictoria in Venezuela.
+  fun LaVictoriaVenezuela : Ind City ;
+
+  -- The City of Lahore in Pakistan.
+  fun LahorePakistan : Ind City ;
+
+  -- The City of Larba in Algeria.
+  fun LarbaAlgeria : Ind City ;
+
+  -- The City of Larnaca in Cyprus.
+  fun LarnacaCyprus : Ind City ;
+
+  -- The City of Lasarte in Spain.
+  fun LasarteSpain : Ind City ;
+
+  -- The City of Leiza in Spain.
+  fun LeizaSpain : Ind City ;
+
+  fun LesEucalyptusDistrictAlgeria : Ind GeographicArea ;
+
+  -- The City of Libertador in Venezuela.
+  fun LibertadorVenezuela : Ind City ;
+
+  -- The City of Lice in Turkey.
+  fun LiceTurkey : Ind City ;
+
+  -- The City of Lima in Peru.
+  fun LimaPeru : Ind City ;
+
+  -- The City of Lindos in Rhodes.
+  fun LindosRhodes : Ind City ;
+
+  -- The City of Linz in Australia.
+  fun LinzAustralia : Ind City ;
+
+  -- The City of Lockerbie in UnitedKingdom.
+  fun LockerbieUnitedKingdom : Ind City ;
+
+  -- The City of Logorno in Spain.
+  fun LogornoSpain : Ind City ;
+
+  -- The City of London in UnitedKingdom.
+  -- The capital city and the largest city of the UnitedKingdom.
+  fun LondonUnitedKingdom : Ind EuropeanCity ;
+
+  -- The City of Londonberry in NorthernIreland.
+  fun LondonberryNorthernIreland : Ind City ;
+
+  -- A large Island off the coast of NewYorkState. 
+  -- The boroughs of Queens and Brooklyn make up the western end of this Island.
+  fun LongIsland : Ind Island ;
+
+  -- The largest City in California.
+  fun LosAngelesCalifornia : Ind AmericanCity ;
+
+  fun LosAngelesInternationalAirportUnitedStates : Ind GeographicArea ;
+
+  -- The City of LosAngeles in UnitedStates.
+  fun LosAngelesUnitedStates : Ind City ;
+
+  -- The City of LosBancos in Venezuela.
+  fun LosBancosVenezuela : Ind City ;
+
+  fun LosKatiosNationalParkColombia : Ind GeographicArea ;
+
+  -- A state in the south_central part of the UnitedStates. 
+  -- It borders on the GulfOfMexico and is known for its bayous and cajun culture.
+  fun Louisiana : Ind AmericanState ;
+
+  -- The City of Luanda in Angola.
+  fun LuandaAngola : Ind City ;
+
+  -- The City of Luebeck in Germany.
+  fun LuebeckGermany : Ind City ;
+
+  -- The City of LundaNorte in Angola.
+  fun LundaNorteAngola : Ind City ;
+
+  -- The City of Luxor in Egypt.
+  fun LuxorEgypt : Ind City ;
+
+  -- The City of Lyons in France.
+  fun LyonsFrance : Ind City ;
+
+  -- The City of MaAlehMichmash in WestBank.
+  fun MaAlehMichmashWestBank : Ind City ;
+
+  -- A dependency of China
+  fun Macau : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Maccabim in Israel.
+  fun MaccabimIsrael : Ind City ;
+
+  -- The City of Madhu in SriLanka.
+  fun MadhuSriLanka : Ind City ;
+
+  -- The City of Madras in India.
+  fun MadrasIndia : Ind City ;
+
+  -- The City of Madrid in Spain.
+  fun MadridSpain : Ind City ;
+
+  -- The City of Magdalena in Colombia.
+  fun MagdalenaColombia : Ind City ;
+
+  -- The City of MaidanShar in Afghanistan.
+  fun MaidanSharAfghanistan : Ind City ;
+
+  -- The most northeastern AmericanState.
+  fun Maine : Ind AmericanState ;
+
+  -- The City of Makhachkala in Russia.
+  fun MakhachkalaRussia : Ind City ;
+
+  -- The City of Malaga in Spain.
+  fun MalagaSpain : Ind City ;
+
+  fun MalukkaIslandsIndonesia : Ind GeographicArea ;
+
+  -- The City of Managua in Nigeria.
+  fun ManaguaNigeria : Ind City ;
+
+  -- The City of Manama in Bahrain.
+  fun ManamaBahrain : Ind City ;
+
+  -- The largest City in NewHampshire.
+  fun ManchesterNewHampshire : Ind AmericanCity ;
+
+  -- The City of Manchester in UnitedKingdom.
+  fun ManchesterUnitedKingdom : Ind City ;
+
+  fun MangalsenAndSanpheBagarNepal : Ind GeographicArea ;
+
+  -- The City of Manila in Philippines.
+  fun ManilaPhilippines : Ind City ;
+
+  -- The City of Maon in Israel.
+  fun MaonIsrael : Ind City ;
+
+  -- The City of Mapourdit in Sudan.
+  fun MapourditSudan : Ind City ;
+
+  -- The City of MarSaba in WestBank.
+  fun MarSabaWestBank : Ind City ;
+
+  -- The City of Marawi in Philippines.
+  fun MarawiPhilippines : Ind City ;
+
+  -- The City of Mardan in Pakistan.
+  fun MardanPakistan : Ind City ;
+
+  -- The City of Marmaris in Turkey.
+  fun MarmarisTurkey : Ind City ;
+
+  -- The City of Marseilles in France.
+  fun MarseillesFrance : Ind City ;
+
+  -- A dependency of France
+  fun Martinique : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A state in the eastern UnitedStates that borders on WashingtonDC.
+  fun Maryland : Ind AmericanState ;
+
+  -- The City of Masha in WestBank.
+  fun MashaWestBank : Ind City ;
+
+  -- A northeastern AmericanState. Its largest City is BostonMassachusetts.
+  fun Massachusetts : Ind AmericanState ;
+
+  -- The City of Matsumoto in Japan.
+  fun MatsumotoJapan : Ind City ;
+
+  -- The City of Mawdiyah in Yemen.
+  fun MawdiyahYemen : Ind City ;
+
+  -- A dependency of France
+  fun Mayotte : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of MeaShearim in Israel.
+  fun MeaShearimIsrael : Ind City ;
+
+  -- The City of Mecca in SaudiArabia.
+  fun MeccaSaudiArabia : Ind City ;
+
+  -- The City of Mechora in WestBank.
+  fun MechoraWestBank : Ind City ;
+
+  -- The City of Medan in Indonesia.
+  fun MedanIndonesia : Ind City ;
+
+  -- The City of Medellin in Colombia.
+  fun MedellinColombia : Ind City ;
+
+  -- The City of Megido in Israel.
+  fun MegidoIsrael : Ind City ;
+
+  -- The City of Mehola in Israel.
+  fun MeholaIsrael : Ind City ;
+
+  -- The City of Mekholah in Israel.
+  fun MekholahIsrael : Ind City ;
+
+  -- The largest City in Tennessee, located on the MississippiRiver.
+  fun MemphisTennessee : Ind AmericanCity ;
+
+  -- The City of Mersin in Turkey.
+  fun MersinTurkey : Ind City ;
+
+  -- The City of Meta in Colombia.
+  fun MetaColombia : Ind City ;
+
+  -- The City of Metulla in Israel.
+  fun MetullaIsrael : Ind City ;
+
+  -- The City of Metzer in Israel.
+  fun MetzerIsrael : Ind City ;
+
+  -- A populous and industrial state in the midwestern UnitedStates.
+  fun Michigan : Ind AmericanState ;
+
+  -- A dependency of the UnitedStates
+  fun MidwayIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Milan in Italy.
+  fun MilanItaly : Ind City ;
+
+  -- The City of Mindanao in Philippines.
+  fun MindanaoPhilippines : Ind City ;
+
+  fun MinharotRoadWestBank : Ind GeographicArea ;
+
+  -- The largest City in Minnesota.
+  fun MinneapolisMinnesota : Ind AmericanCity ;
+
+  -- A state in the northern midwest of the UnitedStates.
+  fun Minnesota : Ind AmericanState ;
+
+  -- The City of MiranShah in Pakistan.
+  fun MiranShahPakistan : Ind City ;
+
+  -- A state in the southeastern UnitedStates that borders on the GulfOfMexico.
+  fun Mississippi : Ind AmericanState ;
+
+  -- The major River in the UnitedStates. 
+  -- It runs almost the entire width of the UnitedStates, from Minnesota to the GulfOfMexico.
+  fun MississippiRiver : Ind River ;
+
+  -- A state in the central UnitedStates.
+  fun Missouri : Ind AmericanState ;
+
+  -- The City of Mitu in Colombia.
+  fun MituColombia : Ind City ;
+
+  -- The City of ModiinIllit in WestBank.
+  fun ModiinIllitWestBank : Ind City ;
+
+  -- The City of Mombassa in Kenya.
+  fun MombassaKenya : Ind City ;
+
+  -- A state in the northwestern UnitedStates.
+  fun Montana : Ind AmericanState ;
+
+  -- A large City in eastern Canada.
+  fun MontrealCanada : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun Montserrat : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  fun MoragJunctionGazaStrip : Ind GeographicArea ;
+
+  -- The City of Moscow in Russia. MoscowRussia The capital of Russia and the largest 
+  -- City of the country.
+  fun MoscowRussia : Ind EuropeanCity ;
+
+  -- The City of MoshavHagor in Israel.
+  fun MoshavHagorIsrael : Ind City ;
+
+  -- The City of MoshavTomer in WestBank.
+  fun MoshavTomerWestBank : Ind City ;
+
+  -- The City of MukallahAden in Yemen.
+  fun MukallahAdenYemen : Ind City ;
+
+  -- The City of MunchenGladbach in Germany.
+  fun MunchenGladbachGermany : Ind City ;
+
+  -- The City of Munster in Germany.
+  fun MunsterGermany : Ind City ;
+
+  -- The City of Murlough in NorthernIreland.
+  fun MurloughNorthernIreland : Ind City ;
+
+  -- The City of MusMus in Israel.
+  fun MusMusIsrael : Ind City ;
+
+  -- The City of Mutata in Colombia.
+  fun MutataColombia : Ind City ;
+
+  -- The City of Muttur in SriLanka.
+  fun MutturSriLanka : Ind City ;
+
+  -- A Nation in southeastern Asia, formerly known as Burma.
+  fun Myanmar : Ind Nation ;
+
+  -- The City of NaAlin in WestBank.
+  fun NaAlinWestBank : Ind City ;
+
+  -- The City of Nablus in WestBank.
+  fun NablusWestBank : Ind City ;
+
+  -- The City of NahalOz in GazaStrip.
+  fun NahalOzGazaStrip : Ind City ;
+
+  -- The City of Naharaim in Israel.
+  fun NaharaimIsrael : Ind City ;
+
+  -- The City of Nahariya in Israel.
+  fun NahariyaIsrael : Ind City ;
+
+  -- The City of Nairobi in Kenya.
+  fun NairobiKenya : Ind City ;
+
+  -- The City of Najaf in Iraq.
+  fun NajafIraq : Ind City ;
+
+  fun NallurAreaSriLanka : Ind GeographicArea ;
+
+  -- The City of Naqura in Lebanon.
+  fun NaquraLebanon : Ind City ;
+
+  -- The City of Narayangang in Bangladesh.
+  fun NarayangangBangladesh : Ind City ;
+
+  -- A large City in Tennessee.
+  fun NashvilleTennessee : Ind AmericanCity ;
+
+  -- The City of Natania in Israel.
+  fun NataniaIsrael : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun NavassaIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of NearAdarim.
+  fun NearAdarim : Ind City ;
+
+  -- The City of NearAleiZahav.
+  fun NearAleiZahav : Ind City ;
+
+  -- The City of NearJenin.
+  fun NearJenin : Ind City ;
+
+  -- A state in the midwestern UnitedStates.
+  fun Nebraska : Ind AmericanState ;
+
+  -- The City of Netanya in Israel.
+  fun NetanyaIsrael : Ind City ;
+
+  -- A dependency of the Netherlands
+  fun NetherlandsAntilles : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Netzarim in GazaStrip.
+  fun NetzarimGazaStrip : Ind City ;
+
+  -- The City of NetzerHazani in GazaStrip.
+  fun NetzerHazaniGazaStrip : Ind City ;
+
+  -- A state in the western UnitedStates.
+  fun Nevada : Ind AmericanState ;
+
+  -- The City of NeveDaniel in WestBank.
+  fun NeveDanielWestBank : Ind City ;
+
+  -- The City of NeveDekalim.
+  fun NeveDekalim : Ind City ;
+
+  -- The City of NeveYamin in Israel.
+  fun NeveYaminIsrael : Ind City ;
+
+  -- The City of NewDelhi in India.
+  fun NewDelhiIndia : Ind City ;
+
+  -- A GeographicArea in the UnitedStates that is made up of the states of
+  -- Maine, New Hampshire, Vermont, Massachusetts, Rhode Island, and Connecticut.
+  fun NewEngland : Ind GeographicArea ;
+
+  -- A northeastern AmericanState. Its largest City is ManchesterNewHampshire.
+  fun NewHampshire : Ind AmericanState ;
+
+  -- A state in the eastern UnitedStates.
+  fun NewJersey : Ind AmericanState ;
+
+  -- A southwestern state in the UnitedStates.
+  fun NewMexico : Ind AmericanState ;
+
+  -- The City of NewYorkCity in UnitedStates. NewYorkCityUnitedStates The largest City in the UnitedStates. 
+  -- A worldwide center of finance and culture, it is comprised of five boroughs.
+  fun NewYorkCityUnitedStates : Ind AmericanCity ;
+
+  -- A populous state in the northeastern UnitedStates.
+  fun NewYorkState : Ind AmericanState ;
+
+  fun NeztarimSettlementGazaStrip : Ind GeographicArea ;
+
+  -- The City of Niamey in Niger.
+  fun NiameyNiger : Ind City ;
+
+  -- The City of Nissanit in GazaStrip.
+  fun NissanitGazaStrip : Ind City ;
+
+  -- The City of NitzaneiOz in WestBank.
+  fun NitzaneiOzWestBank : Ind City ;
+
+  -- The City of Nitzanim in Israel.
+  fun NitzanimIsrael : Ind City ;
+
+  -- A dependency of NewZealand
+  fun Niue : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  fun NokdimTekoaRdWestBank : Ind GeographicArea ;
+
+  -- A dependency of Australia
+  fun NorfolkIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of NorteDeSantander in Colombia.
+  fun NorteDeSantanderColombia : Ind City ;
+
+  -- A state in the southeastern UnitedStates.
+  fun NorthCarolina : Ind AmericanState ;
+
+  -- A state in the northern midwest of the UnitedStates.
+  fun NorthDakota : Ind AmericanState ;
+
+  fun NorthernCaucasiusChechnya : Ind GeographicArea ;
+
+  -- The Nation of NorthernIreland.
+  fun NorthernIreland : Ind Nation ;
+
+  -- A dependency of the UnitedStates
+  fun NorthernMarianaIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Novogrozny in Russia.
+  fun NovogroznyRussia : Ind City ;
+
+  -- The City of NovyyAtagi in Russia.
+  fun NovyyAtagiRussia : Ind City ;
+
+  -- The City of Oberwart in Austria.
+  fun OberwartAustria : Ind City ;
+
+  -- The City of Ofra in WestBank.
+  fun OfraWestBank : Ind City ;
+
+  -- A populous and industrial state in the midwestern UnitedStates.
+  fun Ohio : Ind AmericanState ;
+
+  fun OilbaseAlgeria : Ind GeographicArea ;
+
+  -- The City of Okara in Pakistan.
+  fun OkaraPakistan : Ind City ;
+
+  -- A state in the southwestern UnitedStates.
+  fun Oklahoma : Ind AmericanState ;
+
+  -- The City of OlayaHerrera in Colombia.
+  fun OlayaHerreraColombia : Ind City ;
+
+  -- The City of Omagh in NorthernIreland.
+  fun OmaghNorthernIreland : Ind City ;
+
+  -- The City of OrYehuda in Israel.
+  fun OrYehudaIsrael : Ind City ;
+
+  -- The City of Oran in Algeria.
+  fun OranAlgeria : Ind City ;
+
+  -- An AmericanState on the PacificOcean.
+  fun Oregon : Ind AmericanState ;
+
+  -- The City of Osaka in Japan.
+  fun OsakaJapan : Ind City ;
+
+  -- The City of Oslo in Norway.
+  fun OsloNorway : Ind City ;
+
+  -- The City of Ossnabruck in Germany.
+  fun OssnabruckGermany : Ind City ;
+
+  fun OthnielJunctionIsrael : Ind GeographicArea ;
+
+  -- The City of Otniel in WestBank.
+  fun OtnielWestBank : Ind City ;
+
+  -- The City of Otzarin in WestBank.
+  fun OtzarinWestBank : Ind City ;
+
+  -- The City of Ozamis in Philippines.
+  fun OzamisPhilippines : Ind City ;
+
+  -- The City of Pahalgam in India.
+  fun PahalgamIndia : Ind City ;
+
+  -- A GeopoliticalArea that was divided by the 
+  -- UnitedKingdom into Israel and Jordan in 1948.
+  fun Palestine : Ind OverseasArea ;
+
+  fun PalestinianLiberationOrganization : Ind PoliticalOrganization ;
+
+  -- A dependency of the UnitedStates
+  fun PalmyraAtoll : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Palorinya in Uganda.
+  fun PalorinyaUganda : Ind City ;
+
+  -- The City of Pamplona in Spain.
+  fun PamplonaSpain : Ind City ;
+
+  -- The City of PanamaCity in Panama.
+  fun PanamaCityPanama : Ind City ;
+
+  -- The City of Pantras in Greece.
+  fun PantrasGreece : Ind City ;
+
+  -- The City of Papayin in Colombia.
+  fun PapayinColombia : Ind City ;
+
+  -- The City of Papua in Indonesia.
+  fun PapuaIndonesia : Ind City ;
+
+  fun ParacelIslands : Ind (both LandArea GeopoliticalArea) ;
+
+  -- The capital of France and the largest City of the country.
+  fun Paris : Ind EuropeanCity ;
+
+  -- The capital of France and the largest City of the country.
+  fun ParisFrance : Ind EuropeanCity ;
+
+  -- The City of Patikul in Philippines.
+  fun PatikulPhilippines : Ind City ;
+
+  -- The City of Pau in France.
+  fun PauFrance : Ind City ;
+
+  -- The City of PeAtSadeh in GazaStrip.
+  fun PeAtSadehGazaStrip : Ind City ;
+
+  -- A mid_Atlantic AmericanState. Its two major cities are Philadelphia and Pittsburgh.
+  -- Pennsylvania A mid_Atlantic AmericanState. Its two major cities 
+  -- are PhiladelphiaPennsylvania and PittsburghPennsylvania.
+  fun Pennsylvania : Ind AmericanState ;
+
+  -- The City of Peshawar in Pakistan.
+  fun PeshawarPakistan : Ind City ;
+
+  -- The City of PetahTikva.
+  fun PetahTikva : Ind City ;
+
+  -- The City of PetahTikvah in Israel.
+  fun PetahTikvahIsrael : Ind City ;
+
+  -- The largest City in Pennsylvania.
+  fun PhiladelphiaPennsylvania : Ind AmericanCity ;
+
+  -- The City of PhnomPenh in Cambodia.
+  fun PhnomPenhCambodia : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun PitcairnIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The second largest City in Pennsylvania. 
+  -- It was once a center of steel production in the UnitedStates.
+  fun PittsburghPennsylvania : Ind AmericanCity ;
+
+  -- The City of Portadown in Ireland.
+  fun PortadownIreland : Ind City ;
+
+  -- The City of Prague in CzechRepublic.
+  fun PragueCzechRepublic : Ind City ;
+
+  -- The largest and capital city of RhodeIsland.
+  fun ProvidenceRhodeIsland : Ind AmericanCity ;
+
+  -- The City of PuertoAlvira in Colombia.
+  fun PuertoAlviraColombia : Ind City ;
+
+  -- The City of PuertoLleras in Colombia.
+  fun PuertoLlerasColombia : Ind City ;
+
+  -- An dependent part of the UnitedStates.
+  fun PuertoRico : Ind (both Archipelago DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Punjab in Pakistan.
+  fun PunjabPakistan : Ind City ;
+
+  -- The City of Quetta in Pakistan.
+  fun QuettaPakistan : Ind City ;
+
+  -- The City of Quito in Ecuador.
+  fun QuitoEcuador : Ind City ;
+
+  -- The City of RadaAman in Yemen.
+  fun RadaAmanYemen : Ind City ;
+
+  -- The City of Rafah in GazaStrip.
+  fun RafahGazaStrip : Ind City ;
+
+  -- The City of RamaJunction in WestBank.
+  fun RamaJunctionWestBank : Ind City ;
+
+  -- The City of RamalDeAspusana in Peru.
+  fun RamalDeAspusanaPeru : Ind City ;
+
+  -- The City of Ramallah in WestBank.
+  fun RamallahWestBank : Ind City ;
+
+  -- The City of RamatGan in Israel.
+  fun RamatGanIsrael : Ind City ;
+
+  -- The City of Ramin in WestBank.
+  fun RaminWestBank : Ind City ;
+
+  -- The City of Ramle in Israel.
+  fun RamleIsrael : Ind City ;
+
+  -- The City of Rawalpindi in Pakistan.
+  fun RawalpindiPakistan : Ind City ;
+
+  -- A tributary of the Mississippi River.
+  fun RedRiver : Ind River ;
+
+  -- The Nation of Georgia.
+  fun RepublicOfGeorgia : Ind Nation ;
+
+  -- A dependency of France
+  fun Reunion : Ind (both Nation DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Reus in Spain.
+  fun ReusSpain : Ind City ;
+
+  -- A northeastern AmericanState. Its capital city is 
+  -- ProvidenceRhodeIsland. It is the smallest AmercianState
+  fun RhodeIsland : Ind AmericanState ;
+
+  -- The Nation of Rhodes.
+  fun Rhodes : Ind Nation ;
+
+  -- The capital of Virginia, located in the 
+  -- east_central part of the state.
+  fun RichmondVirginia : Ind AmericanCity ;
+
+  -- The City of Riga in Latvia.
+  fun RigaLatvia : Ind City ;
+
+  -- The City of Rijeka in Croatia.
+  fun RijekaCroatia : Ind City ;
+
+  fun RimalDistrictGazaStrip : Ind GeographicArea ;
+
+  -- The City of RishonLeZion in Israel.
+  fun RishonLeZionIsrael : Ind City ;
+
+  -- The City of Riyadh in SaudiArabia.
+  fun RiyadhSaudiArabia : Ind City ;
+
+  -- The City of Roermond in Netherlands.
+  fun RoermondNetherlands : Ind City ;
+
+  -- The City of Rome in Italy. RomeItaly The capital of Italy and the largest City 
+  -- of the country.
+  fun RomeItaly : Ind EuropeanCity ;
+
+  -- The City of Rosas in Spain.
+  fun RosasSpain : Ind City ;
+
+  -- The City of RostovOnDon in Russia.
+  fun RostovOnDonRussia : Ind City ;
+
+  -- The City of Ruhengeri in Rwanda.
+  fun RuhengeriRwanda : Ind City ;
+
+  fun SaadaPakistan : Ind GeographicArea ;
+
+  -- The City of Saada in Yemen.
+  fun SaadaYemen : Ind City ;
+
+  -- The City of Sabatena in Colombia.
+  fun SabatenaColombia : Ind City ;
+
+  -- The City of Sacramento in UnitedStates.
+  fun SacramentoUnitedStates : Ind City ;
+
+  -- The City of SaintAvold in France.
+  fun SaintAvoldFrance : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun SaintHelena : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of SaintJeanDeLuz in France.
+  fun SaintJeanDeLuzFrance : Ind City ;
+
+  -- A large City in Missouri.
+  fun SaintLouisMissouri : Ind AmericanCity ;
+
+  -- The capital of Minnesota, borders MinneapolisMinnesota.
+  fun SaintPaulMinnesota : Ind AmericanCity ;
+
+  -- A dependency of France
+  fun SaintPierreAndMiquelon : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of SaintSebastian in Spain.
+  fun SaintSebastianSpain : Ind City ;
+
+  -- The City of Sairanbar in Iraq.
+  fun SairanbarIraq : Ind City ;
+
+  -- The City of SajaIA in GazaStrip.
+  fun SajaIAGazaStrip : Ind City ;
+
+  -- The City of SallentDeGallego in Spain.
+  fun SallentDeGallegoSpain : Ind City ;
+
+  -- The City of Samaria in WestBank.
+  fun SamariaWestBank : Ind City ;
+
+  -- The City of Samashki in Russia.
+  fun SamashkiRussia : Ind City ;
+
+  -- The Nation of Samoa.
+  fun Samoa : Ind Nation ;
+
+  -- The City of SanDiego in Colombia.
+  fun SanDiegoColombia : Ind City ;
+
+  -- A large City in California, located on the San Francisco Bay.
+  fun SanFranciscoCalifornia : Ind AmericanCity ;
+
+  -- The City of SanJose in CostaRica.
+  fun SanJoseCostaRica : Ind City ;
+
+  -- The City of SanLuis in Colombia.
+  fun SanLuisColombia : Ind City ;
+
+  -- The City of SanMiguel in ElSalvador.
+  fun SanMiguelElSalvador : Ind City ;
+
+  -- The City of SanPablo in Colombia.
+  fun SanPabloColombia : Ind City ;
+
+  -- The City of SanSabatian in Spain.
+  fun SanSabatianSpain : Ind City ;
+
+  -- The City of Sanaa in Yemen.
+  fun SanaaYemen : Ind City ;
+
+  -- The City of Sangaldan in India.
+  fun SangaldanIndia : Ind City ;
+
+  -- The City of SantaMarta in Colombia.
+  fun SantaMartaColombia : Ind City ;
+
+  -- The City of SantaPola in Spain.
+  fun SantaPolaSpain : Ind City ;
+
+  fun SantaRitaMountainsPanama : Ind GeographicArea ;
+
+  -- The City of Santiago in Chile.
+  fun SantiagoChile : Ind City ;
+
+  -- The City of Sanur in Israel.
+  fun SanurIsrael : Ind City ;
+
+  -- The City of Sarajevo in BosniaAndHerzegovina.
+  fun SarajevoBosniaAndHerzegovina : Ind City ;
+
+  -- The City of Satkhira in Bangladesh.
+  fun SatkhiraBangladesh : Ind City ;
+
+  -- A City in Georgia near the mouth of the Savannah River.
+  fun SavannahGeorgia : Ind AmericanCity ;
+
+  -- A division of the UnitedKingdom.
+  fun Scotland : Ind GeopoliticalArea ;
+
+  -- The City of Segovia in Colombia.
+  fun SegoviaColombia : Ind City ;
+
+  -- The City of Seoul in SouthKorea.
+  fun SeoulSouthKorea : Ind City ;
+
+  -- The City of Seville in Spain.
+  fun SevilleSpain : Ind City ;
+
+  -- The City of ShadmotMehola in WestBank.
+  fun ShadmotMeholaWestBank : Ind City ;
+
+  -- The City of ShaveiShomron in WestBank.
+  fun ShaveiShomronWestBank : Ind City ;
+
+  -- The City of SheikhAjlun in GazaStrip.
+  fun SheikhAjlunGazaStrip : Ind City ;
+
+  -- The City of Shilo in WestBank.
+  fun ShiloWestBank : Ind City ;
+
+  -- The City of Shimi in Ecuador.
+  fun ShimiEcuador : Ind City ;
+
+  -- The City of Shlomi in Israel.
+  fun ShlomiIsrael : Ind City ;
+
+  -- The City of SidiHalifah in Libya.
+  fun SidiHalifahLibya : Ind City ;
+
+  -- The City of Sidon in Lebanon.
+  fun SidonLebanon : Ind City ;
+
+  -- The City of Siirt in Turkey.
+  fun SiirtTurkey : Ind City ;
+
+  -- The City of SilatADahar in WestBank.
+  fun SilatADaharWestBank : Ind City ;
+
+  fun SipadanIslandMalaysia : Ind GeographicArea ;
+
+  -- The City of Sitra.
+  fun Sitra : Ind City ;
+
+  -- The City of Sitrah in Bahrain.
+  fun SitrahBahrain : Ind City ;
+
+  -- The City of Sopore in India.
+  fun SoporeIndia : Ind City ;
+
+  -- A state in the southeastern UnitedStates.
+  fun SouthCarolina : Ind AmericanState ;
+
+  -- A state in the northern midwest of the UnitedStates.
+  fun SouthDakota : Ind AmericanState ;
+
+  -- A dependency of the UnitedKingdom
+  fun SouthGeorgiaAndTheSouthSandwichIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The former communist nation of the Soviet Union.
+  fun SovietUnion : Ind EuropeanNation ;
+
+  fun SpratlyIslands : Ind (both LandArea GeopoliticalArea) ;
+
+  -- The City of Srinagar in India.
+  fun SrinagarIndia : Ind City ;
+
+  -- The City of Srinigar in India.
+  fun SrinigarIndia : Ind City ;
+
+  -- The City of Sriperumbudur in India.
+  fun SriperumbudurIndia : Ind City ;
+
+  -- The City of Stewartstown in NorthernIreland.
+  fun StewartstownNorthernIreland : Ind City ;
+
+  -- The City of Stockholm in Sweden.
+  fun StockholmSweden : Ind City ;
+
+  -- The City of Strasbourg in France.
+  fun StrasbourgFrance : Ind City ;
+
+  -- The City of SukaiManiyah.
+  fun SukaiManiyah : Ind City ;
+
+  fun SukaimaniyahIraq : Ind GeographicArea ;
+
+  -- The City of Sulawesi in Indonesia.
+  fun SulawesiIndonesia : Ind City ;
+
+  -- The City of Sulaymaniyah in Iraq.
+  fun SulaymaniyahIraq : Ind City ;
+
+  -- The City of Sumayr in Yemen.
+  fun SumayrYemen : Ind City ;
+
+  -- The City of Susiya in WestBank.
+  fun SusiyaWestBank : Ind City ;
+
+  -- A dependency of Norway
+  fun Svalbard : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of TBilisi in RepublicOfGeorgia.
+  fun TBilisiGeorgia : Ind City ;
+
+  -- The City of Taila in Pakistan.
+  fun TailaPakistan : Ind City ;
+
+  -- The City of TamezGuida in Algeria.
+  fun TamezGuidaAlgeria : Ind City ;
+
+  -- The City of Tandy in SriLanka.
+  fun TandySriLanka : Ind City ;
+
+  -- The City of Taxila in Pakistan.
+  fun TaxilaPakistan : Ind City ;
+
+  -- The City of Tegucigalpa in Honduras.
+  fun TegucigalpaHonduras : Ind City ;
+
+  -- The City of Teheran in Iran.
+  fun TeheranIran : Ind City ;
+
+  -- The City of Tehran.
+  fun Tehran : Ind City ;
+
+  -- The City of Tekoa in WestBank.
+  fun TekoaWestBank : Ind City ;
+
+  -- The City of TelAviv in Israel.
+  fun TelAvivIsrael : Ind City ;
+
+  fun TelHaShomerJunctionIsrael : Ind GeographicArea ;
+
+  -- The City of TelQateifa in GazaStrip.
+  fun TelQateifaGazaStrip : Ind City ;
+
+  -- The City of TelRumeiyda in Israel.
+  fun TelRumeiydaIsrael : Ind City ;
+
+  -- The City of Telem in Israel.
+  fun TelemIsrael : Ind City ;
+
+  -- The City of Tena in WestBank.
+  fun TenaWestBank : Ind City ;
+
+  -- A state in the southeastern UnitedStates.
+  fun Tennessee : Ind AmericanState ;
+
+  -- The second largest AmericanState, located in the southwest 
+  -- on the GulfOfMexico.
+  fun Texas : Ind AmericanState ;
+
+  -- The Nation of TheBahamas.
+  fun TheBahamas : Ind Nation ;
+
+  -- The City of TheHague in Netherlands.
+  fun TheHagueNetherlands : Ind City ;
+
+  fun TheKyrgyzCapitalBishkekChina : Ind GeographicArea ;
+
+  -- The City of Thekraguri in India.
+  fun ThekraguriIndia : Ind City ;
+
+  -- The City of Tiaret in Algeria.
+  fun TiaretAlgeria : Ind City ;
+
+  -- The City of Tirat in Algeria.
+  fun TiratAlgeria : Ind City ;
+
+  -- A dependency of NewZealand
+  fun Tokelau : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The capital and largest City in Japan.
+  fun TokyoJapan : Ind City ;
+
+  -- The City of Tolosa in Spain.
+  fun TolosaSpain : Ind City ;
+
+  -- The City of Topkaki in Turkey.
+  fun TopkakiTurkey : Ind City ;
+
+  -- The City of Trabzon in Turkey.
+  fun TrabzonTurkey : Ind City ;
+
+  fun TrincomaleeHarborSriLanka : Ind GeographicArea ;
+
+  -- The City of Tripoli in Libya.
+  fun TripoliLibya : Ind City ;
+
+  -- A dependency of France
+  fun TromelinIsland : Ind (both Island DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Tulkarem in WestBank.
+  fun TulkaremWestBank : Ind City ;
+
+  -- The City of Tulkarm in WestBank.
+  fun TulkarmWestBank : Ind City ;
+
+  -- The City of Tunceli in Turkey.
+  fun TunceliTurkey : Ind City ;
+
+  -- The City of Turbat in Pakistan.
+  fun TurbatPakistan : Ind City ;
+
+  -- A dependency of the UnitedKingdom
+  fun TurksAndCaicosIslands : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  fun UWaIndianReservationColombia : Ind GeographicArea ;
+
+  -- The City of UmAlFahm in Israel.
+  fun UmAlFahmIsrael : Ind City ;
+
+  -- The City of UmmQasr in Iraq.
+  fun UmmQasrIraq : Ind City ;
+
+  -- The City of Urena in Venezuela.
+  fun UrenaVenezuela : Ind City ;
+
+  -- The City of Urra in Colombia.
+  fun UrraColombia : Ind City ;
+
+  -- The City of UrsMartan in Russia.
+  fun UrsMartanRussia : Ind City ;
+
+  -- A state in the western UnitedStates.
+  fun Utah : Ind AmericanState ;
+
+  -- The City of Valencia in Spain.
+  fun ValenciaSpain : Ind City ;
+
+  -- The City of Valledupar in Colombia.
+  fun ValleduparColombia : Ind City ;
+
+  -- The City of Van in Turkey.
+  fun VanTurkey : Ind City ;
+
+  -- The City of Vavuniya in SriLanka.
+  fun VavuniyaSriLanka : Ind City ;
+
+  -- A northeastern AmericanState know for its small towns 
+  -- and rustic beauty.
+  fun Vermont : Ind AmericanState ;
+
+  -- The City of Vienna in Austria.
+  fun ViennaAustria : Ind City ;
+
+  -- The City of Vientiane in Laos.
+  fun VientianeLaos : Ind City ;
+
+  -- The City of Villavicencio in Colombia.
+  fun VillavicencioColombia : Ind City ;
+
+  -- The VirginIslands is an Archipelago in the West Indies that comprises both the
+  -- BritishVirginIslands, administered by the UnitedKingdom, and the
+  -- USVirginIslands, administered by the UnitedStates.
+  fun VirginIslands : Ind (both Archipelago DependencyOrSpecialSovereigntyArea) ;
+
+  -- A state in the southeastern UnitedStates that borders on WashingtonDC.
+  fun Virginia : Ind AmericanState ;
+
+  -- The City of Vitoria in Spain.
+  fun VitoriaSpain : Ind City ;
+
+  -- The City of Vitrolles in France.
+  fun VitrollesFrance : Ind City ;
+
+  -- The City of Vladikavkaz in Russia.
+  fun VladikavkazRussia : Ind City ;
+
+  -- The City of Vladivostok in Russia.
+  fun VladivostokRussia : Ind City ;
+
+  -- The City of Volgodonsk in Russia.
+  fun VolgodonskRussia : Ind City ;
+
+  -- The City of WadiAlDabaat in Yemen.
+  fun WadiAlDabaatYemen : Ind City ;
+
+  -- The City of WadiAra in Israel.
+  fun WadiAraIsrael : Ind City ;
+
+  -- The City of WadiKelt in WestBank.
+  fun WadiKeltWestBank : Ind City ;
+
+  -- A dependency of the UnitedStates
+  fun WakeIsland : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- A dependency of France
+  fun WallisAndFutuna : Ind (both LandArea DependencyOrSpecialSovereigntyArea) ;
+
+  -- The City of Warsaw in Poland. WarsawPoland The capital City of Poland.
+  fun WarsawPoland : Ind EuropeanCity ;
+
+  -- An AmericanState on the PacificOcean.
+  fun Washington : Ind AmericanState ;
+
+  -- The capitalCity of the UnitedStates.
+  fun WashingtonDCUnitedStates : Ind AmericanCity ;
+
+  -- The City of Wattyan in Bahrain.
+  fun WattyanBahrain : Ind City ;
+
+  -- A terroritory occupied by Israel.
+  fun WestBank : Ind (both LandArea (both Nation (both GeographicArea GeopoliticalArea))) ;
+
+  -- The City of WestBeirut in Lebanon.
+  fun WestBeirutLebanon : Ind City ;
+
+  -- A state in the southeastern UnitedStates
+  fun WestVirginia : Ind AmericanState ;
+
+  -- A state in the midnorthern UnitedStates.
+  fun Wisconsin : Ind AmericanState ;
+
+  -- A large western state in the UnitedStates.
+  fun Wyoming : Ind AmericanState ;
+
+  -- The City of XiAn in China.
+  fun XiAnChina : Ind City ;
+
+  -- The City of YaAbad in WestBank.
+  fun YaAbadWestBank : Ind City ;
+
+  -- The City of YagurJunction in Israel.
+  fun YagurJunctionIsrael : Ind City ;
+
+  -- The City of Yehud in Israel.
+  fun YehudIsrael : Ind City ;
+
+  -- The City of Yerevan in Armenia.
+  fun YerevanArmenia : Ind City ;
+
+  -- The City of Yitzhar in WestBank.
+  fun YitzharWestBank : Ind City ;
+
+  -- The City of Yokota in Japan.
+  fun YokotaJapan : Ind City ;
+
+  -- The City of Yopal in Colombia.
+  fun YopalColombia : Ind City ;
+
+  -- The City of Yuksekova in Turkey.
+  fun YuksekovaTurkey : Ind City ;
+
+  -- The City of Zaita in Israel.
+  fun ZaitaIsrael : Ind City ;
+
+  -- The City of Zamar in Yemen.
+  fun ZamarYemen : Ind City ;
+
+  -- The City of Zamboanga in Philippines.
+  fun ZamboangaPhilippines : Ind City ;
+
+  -- The City of Zamboango in Philippines.
+  fun ZamboangoPhilippines : Ind City ;
+
+  -- The City of Zaragoza in Spain.
+  fun ZaragozaSpain : Ind City ;
+
+  -- The City of Zarauz in Spain.
+  fun ZarauzSpain : Ind City ;
+
+  fun ZeifIntersectionWestBank : Ind GeographicArea ;
+
+  -- The City of Zekharya in Israel.
+  fun ZekharyaIsrael : Ind City ;
+
+  fun Zimbabwe : Ind Nation ;
+
+  -- The City of Zulia in Colombia.
+  fun ZuliaColombia : Ind City ;
+
+  -- The City of Zumaia in Spain.
+  fun ZumaiaSpain : Ind City ;
+
+  -- The City of Zumarraga in Spain.
+  fun ZumarragaSpain : Ind City ;
+
+  -- The City of Zvornik in BosniaAndHerzegovina.
+  fun ZvornikBosniaAndHerzegovina : Ind City ;
+
+  fun oilfieldsVenezuela : Ind GeographicArea ;
+
+}
diff --git a/examples/SUMO/CountriesAndRegionsEng.gf b/examples/SUMO/CountriesAndRegionsEng.gf
--- a/examples/SUMO/CountriesAndRegionsEng.gf
+++ b/examples/SUMO/CountriesAndRegionsEng.gf
@@ -1,852 +1,848 @@
 --# -path=.:englishExtended
-concrete CountriesAndRegionsEng of CountriesAndRegions = BasicEng ** open ParadigmsEng,NounEng  in {
-
-lin 
-NewJersey = UsePN (mkPN "New Jersey") ;
-NewYorkState = UsePN (mkPN "New York") ;
-Texas = UsePN (mkPN "Texas") ;
-AdanaTurkey = UsePN (mkPN "Adana") ;
-AddisAbabaEthiopia = UsePN (mkPN "Addis Ababa") ;
-AdenYemen = UsePN (mkPN "Aden") ;
-AdoraWestBank = UsePN (mkPN "Adora") ;
-AfulaIsrael = UsePN (mkPN "Afula") ;
-AgriTurkey = UsePN (mkPN "Agri") ;
-AinDeflaAlgeria = UsePN (mkPN "Ain Defla") ;
-AinElHajarAlgeria = UsePN (mkPN "Ain el Hajar") ;
-AjaccioFrance = UsePN (mkPN "Ajaccio") ;
-AlBalamandLebanon = UsePN (mkPN "Al-Balamand ") ;
-AleiSinaiGazaStrip = UsePN (mkPN "Alei Sinai") ;
-AleiZahavWestBank = UsePN (mkPN "Alei Zahav") ;
-AleyLebanon = UsePN (mkPN "Aley") ;
-AlgiersAlgeria = UsePN (mkPN "Algiers") ;
-AlkhanYurtRussia = UsePN (mkPN "Alkhan-Yurt") ;
-AlonMorehWestBank = UsePN (mkPN "Alon Moreh") ;
-AmbonIndonesia = UsePN (mkPN "Ambon") ;
-AmmanJordan = UsePN (mkPN "Amman") ;
-AnNuwaydiratBahrain = UsePN (mkPN "An Nuwaydirat") ;
-AndeanSpain = UsePN (mkPN "Andean") ;
-AngkorWatCambodia = UsePN (mkPN "Angkor Wat ") ;
-AnkaraTurkey = UsePN (mkPN "Ankara") ;
-AntalyaTurkey = UsePN (mkPN "Antalya") ;
-AntioquiaColombia = UsePN (mkPN "Antioquia") ;
-AntwerpBelgium = UsePN (mkPN "Antwerp") ;
-ApumiracPeru = UsePN (mkPN "Apumirac") ;
-ApureVenezuela = UsePN (mkPN "Apure") ;
-AraucaColombia = UsePN (mkPN "Arauca") ;
-ArgunRussia = UsePN (mkPN "Argun") ;
-ArielWestBank = UsePN (mkPN "Ariel") ;
-ArmaghNorthernIreland = UsePN (mkPN "Armagh") ;
-ArzewAlgeria = UsePN (mkPN "Arzew") ;
-AshdodIsrael = UsePN (mkPN "Ashdod") ;
-AskelonIsrael = UsePN (mkPN "Askelon") ;
-AsmaraEritrea = UsePN (mkPN "Asmara") ;
-AssamIndia = UsePN (mkPN "Assam") ;
-AswanEgypt = UsePN (mkPN "Aswan") ;
-AsyutEgypt = UsePN (mkPN "Asyut") ;
-AthensGreece = UsePN (mkPN "Athens") ;
-AtrushIraq = UsePN (mkPN "Atrush") ;
-AtzmonaGazaStrip = UsePN (mkPN "Atzmona") ;
-AvneiHefetzIsrael = UsePN (mkPN "Avnei Hefetz") ;
-AyacuchoPeru = UsePN (mkPN "Ayacucho") ;
-AzorIsrael = UsePN (mkPN "Azor") ;
-BadVilbelGermany = UsePN (mkPN "Bad Vilbel") ;
-BaghdadIraq = UsePN (mkPN "Baghdad") ;
-BagreColombia = UsePN (mkPN "Bagre") ;
-BahawalpurPakistan = UsePN (mkPN "Bahawalpur") ;
-BakaAlGarbiyehIsrael = UsePN (mkPN "Baka al-Garbiyeh") ;
-BakkaAlSharkiyaWestBank = UsePN (mkPN "Bakka al-Sharkiya") ;
-BakuAzerbaijan = UsePN (mkPN "Baku") ;
-BaleEthiopia = UsePN (mkPN "Bale") ;
-BanbridgeNorthernIreland = UsePN (mkPN "Banbridge") ;
-BangkokThailand = UsePN (mkPN "Bangkok") ;
-BangorNorthernIreland = UsePN (mkPN "Bangor") ;
-BanguiCentralAfricanRepublic = UsePN (mkPN "Bangui") ;
-BarcelonaSpain = UsePN (mkPN "Barcelona") ;
-BarkeoCambodia = UsePN (mkPN "Barkeo") ;
-BarrancabermejaColombia = UsePN (mkPN "Barrancabermeja") ;
-BasraIsrael = UsePN (mkPN "Basra") ;
-BatYamIsrael = UsePN (mkPN "Bat Yam") ;
-BatmanTurkey = UsePN (mkPN "Batman") ;
-BeasainSpain = UsePN (mkPN "Beasain") ;
-BeErShevaIsrael = UsePN (mkPN "Be'er Sheva") ;
-BeirutLebanon = UsePN (mkPN "Beirut") ;
-BeitElWestBank = UsePN (mkPN "Beit El") ;
-BeitHaggaiWestBank = UsePN (mkPN "Beit Haggai") ;
-BeitSahurWestBank = UsePN (mkPN "Beit Sahur") ;
-BeitSheAnIsrael = UsePN (mkPN "Beit She'an") ;
-BeitShemeshIsrael = UsePN (mkPN "Beit Shemesh") ;
-BeledweyneSomalia = UsePN (mkPN "Beledweyne") ;
-BelfastNorthernIreland = UsePN (mkPN "Belfast") ;
-BelgradeSerbiaAndMontenegro = UsePN (mkPN "Belgrade") ;
-BerlinGermany = UsePN (mkPN "Berlin") ;
-BetLeHiyehGazaStrip = UsePN (mkPN "Bet LeHiyeh") ;
-BetLidJunctionIsrael = UsePN (mkPN "Bet Lid Junction") ;
-BethElIsrael = UsePN (mkPN "Beth El") ;
-BethlehemWestBank = UsePN (mkPN "Bethlehem") ;
-BidyaWestBank = UsePN (mkPN "Bidya") ;
-BilbaoSpain = UsePN (mkPN "Bilbao") ;
-BillabonaSpain = UsePN (mkPN "Billabona") ;
-BinyaminaIsrael = UsePN (mkPN "Binyamina") ;
-BKaotWestBank = UsePN (mkPN "B'kaot") ;
-BneiAyishIsrael = UsePN (mkPN "Bnei Ayish") ;
-BogotaColombia = UsePN (mkPN "Bogota") ;
-BolognaItaly = UsePN (mkPN "Bologna") ;
-BonnGermany = UsePN (mkPN "Bonn") ;
-BosphorousStraitsTurkey = UsePN (mkPN "BosphorousStraits") ;
-BouiraAlgeria = UsePN (mkPN "Bouira") ;
-BouzeGueneAlgeria = UsePN (mkPN "Bouze-guene") ;
-BrusselsBelgium = UsePN (mkPN "Brussels") ;
-BucaramangaColombia = UsePN (mkPN "Bucaramanga") ;
-BucharestIndia = UsePN (mkPN "Bucharest") ;
-BuenosAiresArgentina = UsePN (mkPN "Buenos Aires") ;
-BuinakskRussia = UsePN (mkPN "Buinaksk") ;
-BwindiforestUganda = UsePN (mkPN "Bwindi forest") ;
-CabindaAngola = UsePN (mkPN "Cabinda") ;
-CaglayanTurkey = UsePN (mkPN "Caglayan") ;
-CairoEgypt = UsePN (mkPN "Cairo") ;
-CalcuttaIndia = UsePN (mkPN "Calcutta") ;
-CaliColombia = UsePN (mkPN "Cali") ;
-CampZamaJapan = UsePN (mkPN "Camp Zama") ;
-CankiriTurkey = UsePN (mkPN "Cankiri") ;
-CapeTownSouthAfrica = UsePN (mkPN "Cape Town") ;
-CaritasPolandChechnya = UsePN (mkPN "Caritas Poland") ;
-CarmelIsrael = UsePN (mkPN "Carmel") ;
-CarmenDeBolivarColombia = UsePN (mkPN "Carmen de Bolivar") ;
-CarrejonColombia = UsePN (mkPN "Carrejon") ;
-ChamanPakistan = UsePN (mkPN "Chaman") ;
-ChararESharifIndia = UsePN (mkPN "Charar-e-Sharif ") ;
-CharsaadaPakistan = UsePN (mkPN "Charsaada") ;
-ChernoRechyeRussia = UsePN (mkPN "Cherno-rechye") ;
-ChicagoUnitedStates = UsePN (mkPN "Chicago") ;
-ChisimayuSomalia = UsePN (mkPN "Chisimayu") ;
-ChittagongBangladesh = UsePN (mkPN "Chittagong") ;
-ChobaAngola = UsePN (mkPN "Choba") ;
-ChocoColombia = UsePN (mkPN "Choco") ;
-ChorrosQueroVenezuela = UsePN (mkPN "Chorros-quero") ;
-ClarkAirbasePhilippines = UsePN (mkPN "Clark Airbase") ;
-CoimbatoreIndia = UsePN (mkPN "Coimbatore") ;
-CologneGermany = UsePN (mkPN "Cologne") ;
-ColombiaCityColombia = UsePN (mkPN "Colombia City") ;
-ColombiaPanama = UsePN (mkPN "Colombia") ;
-ColomboSriLanka = UsePN (mkPN "Colombo") ;
-ComayaguaHonduras = UsePN (mkPN "Comayagua") ;
-CopacaBanaCuba = UsePN (mkPN "Copaca-bana") ;
-CopenhagenDenmark = UsePN (mkPN "Copenhagen") ;
-CorsicaFrance = UsePN (mkPN "Corsica") ;
-CorteFrance = UsePN (mkPN "Corte") ;
-CorumTurkey = UsePN (mkPN "Corum") ;
-CundiNamarcaColombia = UsePN (mkPN "Cundi-namarca") ;
-CupiaguaColombia = UsePN (mkPN "Cupiagua") ;
-CuzcoPeru = UsePN (mkPN "Cuzco") ;
-DagestanRussia = UsePN (mkPN "Dagestan") ;
-DahukIraq = UsePN (mkPN "Dahuk") ;
-DangDistrictNepal = UsePN (mkPN "Dang district") ;
-DarEsSalaAmTanzania = UsePN (mkPN "Dar es Sala'am") ;
-DarvazTajikistan = UsePN (mkPN "Darvaz") ;
-DebaSpain = UsePN (mkPN "Deba") ;
-DelhiIndia = UsePN (mkPN "Delhi") ;
-DhahranSaudiArabia = UsePN (mkPN "Dhahran") ;
-DhakaBangladesh = UsePN (mkPN "Dhaka") ;
-DinanFrance = UsePN (mkPN "Dinan") ;
-DirNaballahWestBank = UsePN (mkPN "Dir Naballah") ;
-DireDawaEthiopia = UsePN (mkPN "Dire Dawa") ;
-DistrictOfMansehraPakistan = UsePN (mkPN "district of Mansehra") ;
-DjakashariGeorgia = UsePN (mkPN "Djakashari") ;
-DjerbaTunisia = UsePN (mkPN "Djerba") ;
-DodaIndia = UsePN (mkPN "Doda") ;
-DortmundGermany = UsePN (mkPN "Dortmund") ;
-DublinIreland = UsePN (mkPN "Dublin") ;
-DuesseldorfGermany = UsePN (mkPN "Duesseldorf") ;
-DugitGazaStrip = UsePN (mkPN "Dugit") ;
-DurangoSpain = UsePN (mkPN "Durango") ;
-DushanbeTajikistan = UsePN (mkPN "Dushanbe") ;
-DushanbeAirportTajikistan = UsePN (mkPN "Dushanbe airport") ;
-DushanbeGarmTajikistan = UsePN (mkPN "Dushanbe Garm") ;
-EastJerusalemIsrael = UsePN (mkPN "East Jerusalem") ;
-EfratWestBank = UsePN (mkPN "Efrat") ;
-EilatIsrael = UsePN (mkPN "Eilat") ;
-EinavWestBank = UsePN (mkPN "Einav") ;
-ElBagreColombia = UsePN (mkPN "El Bagre") ;
-ElBirehWestBank = UsePN (mkPN "El Bireh") ;
-ElPlayonColombia = UsePN (mkPN "El Playon") ;
-ElRipialApureVenezuela = UsePN (mkPN "El Ripial Apure") ;
-ElayoSomalia = UsePN (mkPN "Elayo") ;
-ElAzzariyaWestBank = UsePN (mkPN "el-Azzariya") ;
-EleiSinaiGazaStrip = UsePN (mkPN "Elei Sinai") ;
-EmmanuelWestBank = UsePN (mkPN "Emmanuel") ;
-ErezGazaStrip = UsePN (mkPN "Erez") ;
-FethiyeAndMarmarisTurkey = UsePN (mkPN "Fethiye and Marmaris") ;
-FloridaUnitedStates = UsePN (mkPN "Florida") ;
-FormequeColombia = UsePN (mkPN "Formeque") ;
-FrankfurtGermany = UsePN (mkPN "Frankfurt") ;
-FrenchHillIsrael = UsePN (mkPN "French Hill") ;
-FuengirolaSpain = UsePN (mkPN "Fuengirola") ;
-FusagasusaColombia = UsePN (mkPN "Fusagasusa") ;
-GaliAbkhaziaGeorgia = UsePN (mkPN "Gali Abkhazia") ;
-GanimWestBank = UsePN (mkPN "Ganim") ;
-GashuriIsrael = UsePN (mkPN "Gashuri ") ;
-GeneralSantosPhilippines = UsePN (mkPN "General Santos") ;
-GenevaSwitzerland = UsePN (mkPN "Geneva") ;
-GetxoSpain = UsePN (mkPN "Getxo") ;
-GhalebiehIraq = UsePN (mkPN "Ghalebieh") ;
-GhaziabadUttarPradeshIndia = UsePN (mkPN "Ghaziabad Uttar Pradesh") ;
-GiloIsrael = UsePN (mkPN "Gilo") ;
-GivatZeEvWestBank = UsePN (mkPN "Givat Ze'ev") ;
-GizaEgypt = UsePN (mkPN "Giza") ;
-GonegalleSriLanka = UsePN (mkPN "Gonegalle") ;
-GranadaSpain = UsePN (mkPN "Granada") ;
-GrazAustria = UsePN (mkPN "Graz") ;
-GroznyChechnya = UsePN (mkPN "Grozny") ;
-GuilinChina = UsePN (mkPN "Guilin") ;
-GujaratIndia = UsePN (mkPN "Gujarat") ;
-GushEtzionWestBank = UsePN (mkPN "Gush Etzion") ;
-GushKatifGazaStrip = UsePN (mkPN "Gush Katif") ;
-HaderaIsrael = UsePN (mkPN "Hadera") ;
-HaifaIsrael = UsePN (mkPN "Haifa") ;
-HamburgGermany = UsePN (mkPN "Hamburg") ;
-HamisMiliyanaAlgeria = UsePN (mkPN "Hamis Miliyana") ;
-HamraWestBank = UsePN (mkPN "Hamra") ;
-HannoverGermany = UsePN (mkPN "Hannover") ;
-HarBrachaWestBank = UsePN (mkPN "Har Bracha") ;
-HarerEthiopia = UsePN (mkPN "Harer") ;
-HavanaCuba = UsePN (mkPN "Havana") ;
-HawanaIraq = UsePN (mkPN "Hawana") ;
-HeartAfghanistan = UsePN (mkPN "Heart") ;
-HebronWestBank = UsePN (mkPN "Hebron") ;
-HermeshIsrael = UsePN (mkPN "Hermesh") ;
-HernaniSpain = UsePN (mkPN "Hernani") ;
-HerzliyaIsrael = UsePN (mkPN "Herzliya") ;
-HilversumNetherlands = UsePN (mkPN "Hilversum") ;
-HizmaWestBank = UsePN (mkPN "Hizma") ;
-HodayaJunctionIsrael = UsePN (mkPN "Hodaya Junction") ;
-HolonJunctionIsrael = UsePN (mkPN "Holon Junction") ;
-HuallgaPeru = UsePN (mkPN "Huallga") ;
-HurghadaEgypt = UsePN (mkPN "Hurghada") ;
-HyderabadPakistan = UsePN (mkPN "Hyderabad") ;
-IbsrilIraq = UsePN (mkPN "Ibsril") ;
-IncirlikAirbaseTurkey = UsePN (mkPN "Incirlik Airbase") ;
-IpilPhilippines = UsePN (mkPN "Ipil") ;
-IrbilIraq = UsePN (mkPN "Irbil") ;
-IslamabadPakistan = UsePN (mkPN "Islamabad") ;
-IslandOfBaliIndonesia = UsePN (mkPN "Island of Bali") ;
-IstanbulTurkey = UsePN (mkPN "Istanbul") ;
-ItamarWestBank = UsePN (mkPN "Itamar") ;
-IzmirTurkey = UsePN (mkPN "Izmir") ;
-JaffaIsrael = UsePN (mkPN "Jaffa") ;
-JaffnaSriLanka = UsePN (mkPN "Jaffna") ;
-JakartaIndonesia = UsePN (mkPN "Jakarta") ;
-JalahIndia = UsePN (mkPN "Jalah") ;
-JalpaiguriRailwayStationIndia = UsePN (mkPN "Jalpaiguri Railway Station") ;
-JammuIndia = UsePN (mkPN "Jammu") ;
-JangasPeru = UsePN (mkPN "Jangas") ;
-JeninWestBank = UsePN (mkPN "Jenin") ;
-JerusalemIsrael = UsePN (mkPN "Jerusalem") ;
-JMainWestBank = UsePN (mkPN "J'main") ;
-JohannesburgSouthAfrica = UsePN (mkPN "Johannesburg") ;
-JoloPhilippines = UsePN (mkPN "Jolo") ;
-JubialSaudiArabia = UsePN (mkPN "Jubial") ;
-JullundurIndia = UsePN (mkPN "Jullundur") ;
-KabacanPhilippines = UsePN (mkPN "Kabacan") ;
-KabulAfghanistan = UsePN (mkPN "Kabul") ;
-KafrAkabWestBank = UsePN (mkPN "Kafr Akab") ;
-KafrIdnaWestBank = UsePN (mkPN "Kafr Idna") ;
-KalkilyaWestBank = UsePN (mkPN "Kalkilya") ;
-KalmunaiSriLanka = UsePN (mkPN "Kalmunai") ;
-KampalaUganda = UsePN (mkPN "Kampala") ;
-KandySriLanka = UsePN (mkPN "Kandy") ;
-KanihamaIndia = UsePN (mkPN "Kanihama") ;
-KarachiPakistan = UsePN (mkPN "Karachi") ;
-KarkurIsrael = UsePN (mkPN "Karkur") ;
-KarmeiTzurWestBank = UsePN (mkPN "Karmei Tzur") ;
-KarneiShomronWestBank = UsePN (mkPN "Karnei Shomron") ;
-KashmirIndia = UsePN (mkPN "Kashmir") ;
-KatmanduAirportNepal = UsePN (mkPN "Katmandu Airport") ;
-KedumimWestBank = UsePN (mkPN "Kedumim") ;
-KedumimSettlementWestBank = UsePN (mkPN "Kedumim Settlement") ;
-KfarBaAnehIsrael = UsePN (mkPN "Kfar Ba'aneh") ;
-KfarDaromGazaStrip = UsePN (mkPN "Kfar Darom") ;
-KfarHessIsrael = UsePN (mkPN "Kfar Hess") ;
-KfarSabaIsrael = UsePN (mkPN "Kfar Saba") ;
-KfarTzurifWestBank = UsePN (mkPN "Kfar Tzurif") ;
-KfarYamGazaStrip = UsePN (mkPN "Kfar Yam") ;
-KfarDaromNetzarimIsrael = UsePN (mkPN "Kfar-Darom Netzarim") ;
-KhankalaChechnya = UsePN (mkPN "Khankala") ;
-KhartoumSudan = UsePN (mkPN "Khartoum") ;
-KhelilAlgeria = UsePN (mkPN "Khelil") ;
-KhobarSaudiArabia = UsePN (mkPN "Khobar") ;
-KibbutzGalEdIsrael = UsePN (mkPN "Kibbutz Gal 'Ed") ;
-KibbutzMeravIsrael = UsePN (mkPN "Kibbutz Merav") ;
-KibbutzSheluhotIsrael = UsePN (mkPN "Kibbutz Sheluhot") ;
-KidapawanPhilippines = UsePN (mkPN "Kidapawan") ;
-KigaliRwanda = UsePN (mkPN "Kigali") ;
-KirikkaleTurkey = UsePN (mkPN "Kirikkale") ;
-KiryatArbaWestBank = UsePN (mkPN "Kiryat Arba") ;
-KiryatMotzkinIsrael = UsePN (mkPN "Kiryat Motzkin") ;
-KiryatNetafimWestBank = UsePN (mkPN "Kiryat Netafim") ;
-KissufimGazaStrip = UsePN (mkPN "Kissufim") ;
-KiursehirBoztepTurkey = UsePN (mkPN "Kiursehir-Boztep") ;
-KlaiyatLebanon = UsePN (mkPN "Klaiyat") ;
-KohlanYemen = UsePN (mkPN "Kohlan") ;
-KomsomoLabadTajikistan = UsePN (mkPN "Komsomo-labad") ;
-KuwaitCityKuwait = UsePN (mkPN "Kuwait City") ;
-LaCeibaHonduras = UsePN (mkPN "La Ceiba") ;
-LaGabarraVenezuela = UsePN (mkPN "La Gabarra") ;
-LaGuajiraColombia = UsePN (mkPN "La Guajira") ;
-LaPazBolivia = UsePN (mkPN "La Paz") ;
-LaVictoriaVenezuela = UsePN (mkPN "La Victoria") ;
-LahorePakistan = UsePN (mkPN "Lahore") ;
-LarbaAlgeria = UsePN (mkPN "Larba") ;
-LarnacaCyprus = UsePN (mkPN "Larnaca") ;
-LasarteSpain = UsePN (mkPN "Lasarte") ;
-LeizaSpain = UsePN (mkPN "Leiza") ;
-LesEucalyptusDistrictAlgeria = UsePN (mkPN "Les Eucalyptus district") ;
-LibertadorVenezuela = UsePN (mkPN "Libertador") ;
-LiceTurkey = UsePN (mkPN "Lice") ;
-LIleRousseFrance = UsePN (mkPN "L'Ile-Rousse") ;
-LimaPeru = UsePN (mkPN "Lima") ;
-LindosRhodes = UsePN (mkPN "Lindos") ;
-LinzAustralia = UsePN (mkPN "Linz") ;
-LockerbieUnitedKingdom = UsePN (mkPN "Lockerbie") ;
-LogornoSpain = UsePN (mkPN "Logorno") ;
-LondonUnitedKingdom = UsePN (mkPN "London") ;
-LondonberryNorthernIreland = UsePN (mkPN "Londonberry") ;
-LosAngelesUnitedStates = UsePN (mkPN "Los Angeles") ;
-LosAngelesInternationalAirportUnitedStates = UsePN (mkPN "Los Angeles International Airport") ;
-LosBancosVenezuela = UsePN (mkPN "Los Bancos") ;
-LosKatiosNationalParkColombia = UsePN (mkPN "Los Katios National Park") ;
-LuandaAngola = UsePN (mkPN "Luanda") ;
-LuebeckGermany = UsePN (mkPN "Luebeck") ;
-LundaNorteAngola = UsePN (mkPN "Lunda Norte") ;
-LuxorEgypt = UsePN (mkPN "Luxor") ;
-LyonsFrance = UsePN (mkPN "Lyons") ;
-MaAlehMichmashWestBank = UsePN (mkPN "Ma'aleh Michmash") ;
-MaccabimIsrael = UsePN (mkPN "Maccabim ") ;
-MadhuSriLanka = UsePN (mkPN "Madhu") ;
-MadrasIndia = UsePN (mkPN "Madras") ;
-MadridSpain = UsePN (mkPN "Madrid") ;
-MagdalenaColombia = UsePN (mkPN "Magdalena") ;
-MaidanSharAfghanistan = UsePN (mkPN "Maidan Shar") ;
-MakhachkalaRussia = UsePN (mkPN "Makhachkala") ;
-MalagaSpain = UsePN (mkPN "Malaga") ;
-MalukkaIslandsIndonesia = UsePN (mkPN "Malukka islands") ;
-ManaguaNigeria = UsePN (mkPN "Managua") ;
-ManamaBahrain = UsePN (mkPN "Manama") ;
-ManchesterUnitedKingdom = UsePN (mkPN "Manchester") ;
-MangalsenAndSanpheBagarNepal = UsePN (mkPN "Mangalsen and Sanphe Bagar ") ;
-ManilaPhilippines = UsePN (mkPN "Manila") ;
-MaonIsrael = UsePN (mkPN "Maon") ;
-MapourditSudan = UsePN (mkPN "Mapourdit") ;
-MarSabaWestBank = UsePN (mkPN "Mar Saba") ;
-MarawiPhilippines = UsePN (mkPN "Marawi") ;
-MardanPakistan = UsePN (mkPN "Mardan") ;
-MarmarisTurkey = UsePN (mkPN "Marmaris") ;
-MarseillesFrance = UsePN (mkPN "Marseilles") ;
-MashaWestBank = UsePN (mkPN "Masha") ;
-MatsumotoJapan = UsePN (mkPN "Matsumoto") ;
-MawdiyahYemen = UsePN (mkPN "Mawdiyah") ;
-MeaShearimIsrael = UsePN (mkPN "Mea Shearim") ;
-MeccaSaudiArabia = UsePN (mkPN "Mecca") ;
-MechoraWestBank = UsePN (mkPN "Mechora") ;
-MedanIndonesia = UsePN (mkPN "Medan") ;
-MedellinColombia = UsePN (mkPN "Medellin") ;
-MegidoIsrael = UsePN (mkPN "Megido") ;
-MeholaIsrael = UsePN (mkPN "Mehola") ;
-MekholahIsrael = UsePN (mkPN "Mekholah") ;
-MersinTurkey = UsePN (mkPN "Mersin") ;
-MetaColombia = UsePN (mkPN "Meta") ;
-MetullaIsrael = UsePN (mkPN "Metulla") ;
-MetzerIsrael = UsePN (mkPN "Metzer") ;
-MilanItaly = UsePN (mkPN "Milan") ;
-MindanaoPhilippines = UsePN (mkPN "Mindanao") ;
-MinharotRoadWestBank = UsePN (mkPN "Minharot Road") ;
-MiranShahPakistan = UsePN (mkPN "Miran Shah ") ;
-MituColombia = UsePN (mkPN "Mitu") ;
-ModiinIllitWestBank = UsePN (mkPN "Modiin Illit") ;
-MombassaKenya = UsePN (mkPN "Mombassa") ;
-MoragJunctionGazaStrip = UsePN (mkPN "Morag Junction") ;
-MoscowRussia = UsePN (mkPN "Moscow") ;
-MoshavHagorIsrael = UsePN (mkPN "Moshav Hagor") ;
-MoshavTomerWestBank = UsePN (mkPN "Moshav Tomer") ;
-MukallahAdenYemen = UsePN (mkPN "Mukallah-Aden") ;
-MunchenGladbachGermany = UsePN (mkPN "Munchen-Gladbach") ;
-MunsterGermany = UsePN (mkPN "Munster") ;
-MurloughNorthernIreland = UsePN (mkPN "Murlough") ;
-MusMusIsrael = UsePN (mkPN "Mus Mus") ;
-MutataColombia = UsePN (mkPN "Mutata") ;
-MutturSriLanka = UsePN (mkPN "Muttur") ;
-NaAlinWestBank = UsePN (mkPN "Na'alin") ;
-NablusWestBank = UsePN (mkPN "Nablus") ;
-NahalOzGazaStrip = UsePN (mkPN "Nahal Oz") ;
-NaharaimIsrael = UsePN (mkPN "Naharaim") ;
-NahariyaIsrael = UsePN (mkPN "Nahariya") ;
-NairobiKenya = UsePN (mkPN "Nairobi") ;
-NajafIraq = UsePN (mkPN "Najaf") ;
-NallurAreaSriLanka = UsePN (mkPN "Nallur Area") ;
-NaquraLebanon = UsePN (mkPN "Naqura") ;
-NarayangangBangladesh = UsePN (mkPN "Narayangang") ;
-NetanyaIsrael = UsePN (mkPN "Netanya") ;
-NetzarimGazaStrip = UsePN (mkPN "Netzarim") ;
-NetzerHazaniGazaStrip = UsePN (mkPN "Netzer Hazani") ;
-NeveDanielWestBank = UsePN (mkPN "Neve Daniel") ;
-NeveYaminIsrael = UsePN (mkPN "Neve Yamin") ;
-NewDelhiIndia = UsePN (mkPN "New Delhi") ;
-NewYorkCityUnitedStates = UsePN (mkPN "New York City") ;
-NeztarimSettlementGazaStrip = UsePN (mkPN "Neztarim Settlement") ;
-NiameyNiger = UsePN (mkPN "Niamey") ;
-NissanitGazaStrip = UsePN (mkPN "Nissanit") ;
-NitzaneiOzWestBank = UsePN (mkPN "Nitzanei Oz") ;
-NitzanimIsrael = UsePN (mkPN "Nitzanim") ;
-NokdimTekoaRdWestBank = UsePN (mkPN "Nokdim-Tekoa Rd.") ;
-NorteDeSantanderColombia = UsePN (mkPN "Norte de Santander") ;
-NorthernCaucasiusChechnya = UsePN (mkPN "Northern Caucasius") ;
-NovogroznyRussia = UsePN (mkPN "Novogrozny") ;
-NovyyAtagiRussia = UsePN (mkPN "Novyy Atagi ") ;
-OberwartAustria = UsePN (mkPN "Oberwart") ;
-OfraWestBank = UsePN (mkPN "Ofra") ;
-OilbaseAlgeria = UsePN (mkPN "Oil base") ;
-oilfieldsVenezuela = UsePN (mkPN "oilfields") ;
-OkaraPakistan = UsePN (mkPN "Okara") ;
-OlayaHerreraColombia = UsePN (mkPN "Olaya Herrera") ;
-OmaghNorthernIreland = UsePN (mkPN "Omagh") ;
-OrYehudaIsrael = UsePN (mkPN "Or Yehuda") ;
-OranAlgeria = UsePN (mkPN "Oran") ;
-OsakaJapan = UsePN (mkPN "Osaka") ;
-OsloNorway = UsePN (mkPN "Oslo") ;
-OssnabruckGermany = UsePN (mkPN "Ossnabruck") ;
-OthnielJunctionIsrael = UsePN (mkPN "Othniel Junction") ;
-OtnielWestBank = UsePN (mkPN "Otniel") ;
-OtzarinWestBank = UsePN (mkPN "Otzarin") ;
-OzamisPhilippines = UsePN (mkPN "Ozamis") ;
-PahalgamIndia = UsePN (mkPN "Pahalgam") ;
-PalorinyaUganda = UsePN (mkPN "Palorinya") ;
-PamplonaSpain = UsePN (mkPN "Pamplona") ;
-PanamaCityPanama = UsePN (mkPN "Panama City") ;
-PantrasGreece = UsePN (mkPN "Pantras") ;
-PapayinColombia = UsePN (mkPN "Papayin") ;
-PapuaIndonesia = UsePN (mkPN "Papua") ;
-ParisFrance = UsePN (mkPN "Paris") ;
-PatikulPhilippines = UsePN (mkPN "Patikul") ;
-PauFrance = UsePN (mkPN "Pau") ;
-PeAtSadehGazaStrip = UsePN (mkPN "Pe'at Sadeh") ;
-PeshawarPakistan = UsePN (mkPN "Peshawar") ;
-PetahTikvahIsrael = UsePN (mkPN "Petah Tikvah") ;
-PhnomPenhCambodia = UsePN (mkPN "Phnom Penh") ;
-PortadownIreland = UsePN (mkPN "Portadown") ;
-PragueCzechRepublic = UsePN (mkPN "Prague") ;
-PuertoAlviraColombia = UsePN (mkPN "Puerto Alvira") ;
-PuertoLlerasColombia = UsePN (mkPN "Puerto Lleras") ;
-PunjabPakistan = UsePN (mkPN "Punjab") ;
-QuettaPakistan = UsePN (mkPN "Quetta") ;
-QuitoEcuador = UsePN (mkPN "Quito") ;
-RadaAmanYemen = UsePN (mkPN "Rada-Aman") ;
-RafahGazaStrip = UsePN (mkPN "Rafah") ;
-RamaJunctionWestBank = UsePN (mkPN "Rama Junction") ;
-RamalDeAspusanaPeru = UsePN (mkPN "Ramal de Aspusana") ;
-RamallahWestBank = UsePN (mkPN "Ramallah") ;
-RamatGanIsrael = UsePN (mkPN "Ramat Gan") ;
-RaminWestBank = UsePN (mkPN "Ramin") ;
-RamleIsrael = UsePN (mkPN "Ramle") ;
-RawalpindiPakistan = UsePN (mkPN "Rawalpindi") ;
-ReusSpain = UsePN (mkPN "Reus") ;
-RigaLatvia = UsePN (mkPN "Riga") ;
-RijekaCroatia = UsePN (mkPN "Rijeka") ;
-RimalDistrictGazaStrip = UsePN (mkPN "Rimal district") ;
-RishonLeZionIsrael = UsePN (mkPN "Rishon Le Zion") ;
-RiyadhSaudiArabia = UsePN (mkPN "Riyadh") ;
-RoermondNetherlands = UsePN (mkPN "Roermond") ;
-RomeItaly = UsePN (mkPN "Rome") ;
-RosasSpain = UsePN (mkPN "Rosas") ;
-RostovOnDonRussia = UsePN (mkPN "Rostov-on-Don") ;
-RuhengeriRwanda = UsePN (mkPN "Ruhengeri") ;
-SaadaYemen = UsePN (mkPN "Saada") ;
-SabatenaColombia = UsePN (mkPN "Sabatena") ;
-SacramentoUnitedStates = UsePN (mkPN "Sacramento") ;
-SaintAvoldFrance = UsePN (mkPN "Saint Avold") ;
-SaintSebastianSpain = UsePN (mkPN "Saint Sebastian") ;
-SaintJeanDeLuzFrance = UsePN (mkPN "Saint-Jean-de-Luz") ;
-SairanbarIraq = UsePN (mkPN "Sairanbar") ;
-SajaIAGazaStrip = UsePN (mkPN "Saja'i'a ") ;
-SallentDeGallegoSpain = UsePN (mkPN "Sallent de Gallego") ;
-SamariaWestBank = UsePN (mkPN "Samaria") ;
-SamashkiRussia = UsePN (mkPN "Samashki") ;
-SanDiegoColombia = UsePN (mkPN "San Diego") ;
-SanJoseCostaRica = UsePN (mkPN "San Jose") ;
-SanLuisColombia = UsePN (mkPN "San Luis") ;
-SanMiguelElSalvador = UsePN (mkPN "San Miguel") ;
-SanPabloColombia = UsePN (mkPN "San Pablo") ;
-SanSabatianSpain = UsePN (mkPN "San Sabatian") ;
-SanaaYemen = UsePN (mkPN "Sanaa") ;
-SangaldanIndia = UsePN (mkPN "Sangaldan") ;
-SantaMartaColombia = UsePN (mkPN "Santa Marta") ;
-SantaPolaSpain = UsePN (mkPN "Santa Pola") ;
-SantaRitaMountainsPanama = UsePN (mkPN "Santa Rita Mountains") ;
-SantiagoChile = UsePN (mkPN "Santiago") ;
-SanurIsrael = UsePN (mkPN "Sanur") ;
-SarajevoBosniaAndHerzegovina = UsePN (mkPN "Sarajevo") ;
-SatkhiraBangladesh = UsePN (mkPN "Satkhira") ;
-SegoviaColombia = UsePN (mkPN "Segovia") ;
-SeoulSouthKorea = UsePN (mkPN "Seoul") ;
-SevilleSpain = UsePN (mkPN "Seville") ;
-ShadmotMeholaWestBank = UsePN (mkPN "Shadmot Mehola") ;
-ShaveiShomronWestBank = UsePN (mkPN "Shavei Shomron") ;
-SheikhAjlunGazaStrip = UsePN (mkPN "Sheikh Ajlun") ;
-ShiloWestBank = UsePN (mkPN "Shilo") ;
-ShimiEcuador = UsePN (mkPN "Shimi") ;
-ShlomiIsrael = UsePN (mkPN "Shlomi") ;
-SidiHalifahLibya = UsePN (mkPN "Sidi Halifah") ;
-SidonLebanon = UsePN (mkPN "Sidon") ;
-SiirtTurkey = UsePN (mkPN "Siirt") ;
-SilatADaharWestBank = UsePN (mkPN "Silat a-Dahar") ;
-SipadanIslandMalaysia = UsePN (mkPN "Sipadan Island") ;
-SitrahBahrain = UsePN (mkPN "Sitrah") ;
-SoporeIndia = UsePN (mkPN "Sopore") ;
-SrinagarIndia = UsePN (mkPN "Srinagar") ;
-SrinigarIndia = UsePN (mkPN "Srinigar") ;
-SriperumbudurIndia = UsePN (mkPN "Sriperumbudur") ;
-StewartstownNorthernIreland = UsePN (mkPN "Stewartstown") ;
-StockholmSweden = UsePN (mkPN "Stockholm") ;
-StrasbourgFrance = UsePN (mkPN "Strasbourg") ;
-SukaimaniyahIraq = UsePN (mkPN "Sukai-maniyah") ;
-SulawesiIndonesia = UsePN (mkPN "Sulawesi") ;
-SulaymaniyahIraq = UsePN (mkPN "Sulaymaniyah") ;
-SumayrYemen = UsePN (mkPN "Sumayr") ;
-SusiyaWestBank = UsePN (mkPN "Susiya") ;
-TailaPakistan = UsePN (mkPN "Taila") ;
-TamezGuidaAlgeria = UsePN (mkPN "Tamez-guida") ;
-TandySriLanka = UsePN (mkPN "Tandy") ;
-TaxilaPakistan = UsePN (mkPN "Taxila") ;
-TBilisiGeorgia = UsePN (mkPN "T'bilisi") ;
-TegucigalpaHonduras = UsePN (mkPN "Tegucigalpa") ;
-TeheranIran = UsePN (mkPN "Teheran") ;
-TekoaWestBank = UsePN (mkPN "Tekoa") ;
-TelAvivIsrael = UsePN (mkPN "Tel Aviv") ;
---TelAvivIsrael = UsePN (mkPN "Tel-Aviv") ;
-TelHaShomerJunctionIsrael = UsePN (mkPN "Tel HaShomer Junction") ;
-TelQateifaGazaStrip = UsePN (mkPN "Tel Qateifa") ;
-TelRumeiydaIsrael = UsePN (mkPN "Tel Rumeiyda") ;
-TelemIsrael = UsePN (mkPN "Telem") ;
-TenaWestBank = UsePN (mkPN "Tena") ;
-TheHagueNetherlands = UsePN (mkPN "The Hague") ;
-TheKyrgyzCapitalBishkekChina = UsePN (mkPN "The Kyrgyz capital Bishkek.") ;
-ThekraguriIndia = UsePN (mkPN "Thekraguri") ;
-TiaretAlgeria = UsePN (mkPN "Tiaret") ;
-TiratAlgeria = UsePN (mkPN "Tirat") ;
-TokyoJapan = UsePN (mkPN "Tokyo") ;
-TolosaSpain = UsePN (mkPN "Tolosa") ;
-TopkakiTurkey = UsePN (mkPN "Topkaki") ;
-TrabzonTurkey = UsePN (mkPN "Trabzon") ;
-TrincomaleeHarborSriLanka = UsePN (mkPN "Trincomalee Harbor") ;
-TripoliLibya = UsePN (mkPN "Tripoli") ;
-TulkaremWestBank = UsePN (mkPN "Tulkarem") ;
-TulkarmWestBank = UsePN (mkPN "Tulkarm") ;
-TunceliTurkey = UsePN (mkPN "Tunceli") ;
-TurbatPakistan = UsePN (mkPN "Turbat") ;
-UmAlFahmIsrael = UsePN (mkPN "Um al-Fahm") ;
-UmmQasrIraq = UsePN (mkPN "Umm Qasr") ;
-UrenaVenezuela = UsePN (mkPN "Urena") ;
-UrraColombia = UsePN (mkPN "Urra") ;
-UrsMartanRussia = UsePN (mkPN "Urs-Martan") ;
-UWaIndianReservationColombia = UsePN (mkPN "U'wa Indian reservation") ;
-ValenciaSpain = UsePN (mkPN "Valencia") ;
-ValleduparColombia = UsePN (mkPN "Valledupar") ;
-VanTurkey = UsePN (mkPN "Van") ;
-VavuniyaSriLanka = UsePN (mkPN "Vavuniya") ;
-ViennaAustria = UsePN (mkPN "Vienna") ;
-VientianeLaos = UsePN (mkPN "Vientiane") ;
-VillavicencioColombia = UsePN (mkPN "Villavicencio") ;
-VitoriaSpain = UsePN (mkPN "Vitoria") ;
-VitrollesFrance = UsePN (mkPN "Vitrolles") ;
-VladikavkazRussia = UsePN (mkPN "Vladikavkaz") ;
-VladivostokRussia = UsePN (mkPN "Vladivostok") ;
-VolgodonskRussia = UsePN (mkPN "Volgodonsk") ;
-WadiAlDabaatYemen = UsePN (mkPN "Wadi al-Dabaat") ;
-WadiAraIsrael = UsePN (mkPN "Wadi Ara") ;
-WadiKeltWestBank = UsePN (mkPN "Wadi Kelt") ;
-WarsawPoland = UsePN (mkPN "Warsaw") ;
-WashingtonDCUnitedStates = UsePN (mkPN "Washington DC.") ;
-WattyanBahrain = UsePN (mkPN "Wattyan") ;
-WestBeirutLebanon = UsePN (mkPN "West Beirut") ;
-XiAnChina = UsePN (mkPN "Xi'an") ;
-YaAbadWestBank = UsePN (mkPN "Ya'abad") ;
-YagurJunctionIsrael = UsePN (mkPN "Yagur Junction") ;
-YehudIsrael = UsePN (mkPN "Yehud") ;
-YerevanArmenia = UsePN (mkPN "Yerevan") ;
-YitzharWestBank = UsePN (mkPN "Yitzhar") ;
-YokotaJapan = UsePN (mkPN "Yokota") ;
-YopalColombia = UsePN (mkPN "Yopal") ;
-YuksekovaTurkey = UsePN (mkPN "Yuksekova") ;
-ZaitaIsrael = UsePN (mkPN "Zaita") ;
-ZamarYemen = UsePN (mkPN "Zamar") ;
-ZamboangaPhilippines = UsePN (mkPN "Zamboanga") ;
-ZaragozaSpain = UsePN (mkPN "Zaragoza") ;
-ZarauzSpain = UsePN (mkPN "Zarauz") ;
-ZeifIntersectionWestBank = UsePN (mkPN "Zeif intersection") ;
-ZekharyaIsrael = UsePN (mkPN "Zekharya") ;
-ZuliaColombia = UsePN (mkPN "Zulia") ;
-ZumaiaSpain = UsePN (mkPN "Zumaia") ;
-ZumarragaSpain = UsePN (mkPN "Zumarraga") ;
-Burundi = UsePN (mkPN "Burundi") ;
-CentralAfricanRepublic = UsePN (mkPN "Central African Republic") ;
-Chad = UsePN (mkPN "Chad") ;
-DemocraticRepublicOfTheCongo = UsePN (mkPN "Democratic Republic of the Congo") ;
-Rwanda = UsePN (mkPN "Rwanda") ;
-Djibouti = UsePN (mkPN "Djibouti") ;
-Eritrea = UsePN (mkPN "Eritrea") ;
-Ethiopia = UsePN (mkPN "Ethiopia") ;
-Kenya = UsePN (mkPN "Kenya") ;
-Seychelles = UsePN (mkPN "Seychelles") ;
-Somalia = UsePN (mkPN "Somalia") ;
-Tanzania = UsePN (mkPN "Tanzania") ;
-Uganda = UsePN (mkPN "Uganda") ;
-Algeria = UsePN (mkPN "Algeria") ;
-Egypt = UsePN (mkPN "Egypt") ;
-Libya = UsePN (mkPN "Libya") ;
-Mauritania = UsePN (mkPN "Mauritania") ;
-Morocco = UsePN (mkPN "Morocco") ;
-Sudan = UsePN (mkPN "Sudan") ;
-Tunisia = UsePN (mkPN "Tunisia") ;
-WesternSahara = UsePN (mkPN "Western Sahara") ;
-Angola = UsePN (mkPN "Angola") ;
-BassasDaIndia = UsePN (mkPN "Bassas da India") ;
-Botswana = UsePN (mkPN "Botswana") ;
-BouvetIsland = UsePN (mkPN "Bouvet Island") ;
-Comoros = UsePN (mkPN "Comoros") ;
-EuropaIsland = UsePN (mkPN "Europa Island") ;
-GloriosoIslands = UsePN (mkPN "Glorioso Islands") ;
-HeardIslandAndMcDonaldIslands = UsePN (mkPN "Heard Island and McDonald Islands") ;
-JuanDeNovaIsland = UsePN (mkPN "Juan de Nova Island") ;
-Lesotho = variants (UsePN (mkPN "Lesotho")) (UsePN (mkPN "Basutoland")) ;
-Madagascar = UsePN (mkPN "Madagascar") ;
-Malawi = UsePN (mkPN "Malawi") ;
-Mauritius = UsePN (mkPN "Mauritius") ;
-Mayotte = UsePN (mkPN "Mayotte") ;
-Mozambique = UsePN (mkPN "Mozambique") ;
-Namibia = UsePN (mkPN "Namibia") ;
-Reunion = UsePN (mkPN "Reunion") ;
-SouthAfrica = UsePN (mkPN "South Africa") ;
-Swaziland = UsePN (mkPN "Swaziland") ;
-TromelinIsland = UsePN (mkPN "Tromelin Island") ;
-Zambia = UsePN (mkPN "Zambia") ;
-Zimbabwe = UsePN (mkPN "Zimbabwe") ;
-Benin = UsePN (mkPN "Benin") ;
-BurkinaFaso = UsePN (mkPN "Burkina Faso") ;
-Cameroon = UsePN (mkPN "Cameroon") ;
-CapeVerde = UsePN (mkPN "Cape Verde") ;
-CoteDIvoire = UsePN (mkPN "Cote d'Ivoire") ;
-EquatorialGuinea = UsePN (mkPN "Equatorial Guinea") ;
-Gabon = UsePN (mkPN "Gabon") ;
-Gambia = UsePN (mkPN "Gambia") ;
-Ghana = UsePN (mkPN "Ghana") ;
-Guinea = UsePN (mkPN "Guinea") ;
-GuineaBissau = UsePN (mkPN "Guinea Bissau") ;
-Liberia = UsePN (mkPN "Liberia") ;
-Mali = UsePN (mkPN "Mali") ;
-Niger = UsePN (mkPN "Niger") ;
-Nigeria = UsePN (mkPN "Nigeria") ;
-SaoTomeAndPrincipe = UsePN (mkPN "Sao Tome and Principe") ;
-Senegal = UsePN (mkPN "Senegal") ;
-SierraLeone = UsePN (mkPN "Sierra Leone") ;
-Togo = UsePN (mkPN "Togo") ;
-SaintHelena = UsePN (mkPN "Saint Helena") ;
-Bahrain = UsePN (mkPN "Bahrain") ;
-Cyprus = UsePN (mkPN "Cyprus") ;
-GazaStrip = UsePN (mkPN "Gaza Strip") ;
-Iran = UsePN (mkPN "Iran") ;
-Iraq = UsePN (mkPN "Iran") ;
-Israel = UsePN (mkPN "Israel") ;
-Jordan = UsePN (mkPN "Jordan") ;
-Kuwait = UsePN (mkPN "Kuwait") ;
-Lebanon = UsePN (mkPN "Lebanon") ;
-Oman = UsePN (mkPN "Oman") ;
-Qatar = UsePN (mkPN "Qatar") ;
-SaudiArabia = UsePN (mkPN "Saudi Arabia") ;
-Syria = UsePN (mkPN "Syria") ;
-UnitedArabEmirates = UsePN (mkPN "United Arab Emirates") ;
-WestBank = UsePN (mkPN "West Bank") ;
-Yemen = UsePN (mkPN "Yemen") ;
-Austria = UsePN (mkPN "Austria") ;
-CzechRepublic = UsePN (mkPN "Czech Republic") ;
-Germany = UsePN (mkPN "Germany") ;
-Hungary = UsePN (mkPN "Hungary") ;
-Liechtenstein = UsePN (mkPN "Liechtenstein") ;
-Poland = UsePN (mkPN "Poland") ;
-Slovakia = UsePN (mkPN "Slovakia") ;
-Slovenia = UsePN (mkPN "Slovenia") ;
-Switzerland = UsePN (mkPN "Switzerland") ;
-Belarus = UsePN (mkPN "Belarus") ;
-Estonia = UsePN (mkPN "Estonia") ;
-Latvia = UsePN (mkPN "Latvia") ;
-Lithuania = UsePN (mkPN "Lithuania") ;
-Moldova = UsePN (mkPN "Moldova") ;
-Ukraine = UsePN (mkPN "Ukraine") ;
-Denmark = UsePN (mkPN "Denmark") ;
-FaroeIslands = UsePN (mkPN "Faroe Islands") ;
-Finland = UsePN (mkPN "Finland") ;
-Iceland = UsePN (mkPN "Iceland") ;
-JanMayenIsland = UsePN (mkPN "Jan Mayen Island") ;
-Norway = UsePN (mkPN "Norway") ;
-Svalbard = UsePN (mkPN "Svalbard") ;
-Sweden = UsePN (mkPN "Sweden") ;
-Greece = UsePN (mkPN "Greece") ;
-HolySee = UsePN (mkPN "Holy See") ;
-Italy = UsePN (mkPN "Italy") ;
-Malta = UsePN (mkPN "Malta") ;
-SanMarino = UsePN (mkPN "San Marino") ;
-Belgium = UsePN (mkPN "Belgium") ;
-France = UsePN (mkPN "France") ;
-Guernsey = UsePN (mkPN "Guernsey") ;
-Ireland = UsePN (mkPN "Ireland") ;
-Jersey = UsePN (mkPN "Jersey") ;
-Luxembourg = UsePN (mkPN "Luxembourg") ;
-IsleOfMan = UsePN (mkPN "Isle of Man") ;
-Monaco = UsePN (mkPN "Monaco") ;
-Netherlands = UsePN (mkPN "Netherlands") ;
-UnitedKingdom = UsePN (mkPN "United Kingdom of Great Britain and Northern Ireland") ;
---UnitedKingdom = UsePN (mkPN "United Kingdom") ;
---UnitedKingdom = UsePN (mkPN "Great Britain") ;
-Albania = UsePN (mkPN "Albania") ;
-BosniaAndHerzegovina = UsePN (mkPN "Bosnia and Herzegovina") ;
-Bulgaria = UsePN (mkPN "Bulgaria") ;
-Croatia = UsePN (mkPN "Croatia") ;
-Macedonia = UsePN (mkPN "Macedonia") ;
-Romania = UsePN (mkPN "Romania") ;
-Turkey = UsePN (mkPN "Turkey") ;
-SerbiaAndMontenegro = UsePN (mkPN "Serbia and Montenegro") ;
-Andorra = UsePN (mkPN "Andorra") ;
-Gibraltar = UsePN (mkPN "Gibraltar") ;
-Portugal = UsePN (mkPN "Portugal") ;
-Spain = UsePN (mkPN "Spain") ;
-Bermuda = UsePN (mkPN "Bermuda") ;
-UnitedStates = UsePN (mkPN "United States") ;
-Canada = UsePN (mkPN "Canada") ;
-Greenland = UsePN (mkPN "Greenland") ;
-SaintPierreAndMiquelon = UsePN (mkPN "Saint Pierre and Miquelon") ;
-Anguilla = UsePN (mkPN "Anguilla") ;
-AntiguaAndBarbuda = UsePN (mkPN "Antigua and Barbuda") ;
-Aruba = UsePN (mkPN "Aruba") ;
-TheBahamas = UsePN (mkPN "Bahamas") ;
-Barbados = UsePN (mkPN "Barbados") ;
-BritishVirginIslands = UsePN (mkPN "British Virgin Islands") ;
-CaymanIslands = UsePN (mkPN "Cayman Islands") ;
-Cuba = UsePN (mkPN "Cuba") ;
-Dominica = UsePN (mkPN "Dominica") ;
-DominicanRepublic = UsePN (mkPN "Dominican Republic") ;
-Grenada = UsePN (mkPN "Grenada") ;
-Guadeloupe = UsePN (mkPN "Guadeloupe") ;
-Haiti = UsePN (mkPN "Haiti") ;
-Jamaica = UsePN (mkPN "Jamaica") ;
-Martinique = UsePN (mkPN "Martinique") ;
-Montserrat = UsePN (mkPN "Montserrat") ;
-NavassaIsland = UsePN (mkPN "Navassa Island") ;
-NetherlandsAntilles = UsePN (mkPN "Netherlands Antilles") ;
-PuertoRico = UsePN (mkPN "Puerto Rico") ;
-SaintKittsAndNevis = UsePN (mkPN "Saint Kitts and Nevis") ;
-SaintLucia = UsePN (mkPN "Saint Lucia") ;
-SaintVincentAndTheGrenadines = UsePN (mkPN "Saint Vincent and the Grenadines") ;
-TrinidadAndTobago = UsePN (mkPN "Trinidad and Tobago") ;
-TurksAndCaicosIslands = UsePN (mkPN "Turks and Caicos Islands") ;
-VirginIslands = UsePN (mkPN "Virgin Islands") ;
-Belize = UsePN (mkPN "Belize") ;
-ClippertonIsland = UsePN (mkPN "Clipperton Island") ;
-CostaRica = UsePN (mkPN "Costa Rica") ;
-ElSalvador = UsePN (mkPN "El Salvador") ;
-Guatemala = UsePN (mkPN "Guatemala") ;
-Honduras = UsePN (mkPN "Honduras") ;
-Mexico = UsePN (mkPN "Mexico") ;
-Nicaragua = UsePN (mkPN "Nicaragua") ;
-Panama = UsePN (mkPN "Panama") ;
-Bolivia = UsePN (mkPN "Bolivia") ;
-Paraguay = UsePN (mkPN "Paraguay") ;
-Brazil = UsePN (mkPN "Brazil") ;
-Colombia = UsePN (mkPN "Colombia") ;
-FrenchGuiana = UsePN (mkPN "French Guiana") ;
-Guyana = UsePN (mkPN "Guyana") ;
-Suriname = UsePN (mkPN "Suriname") ;
-Venezuela = UsePN (mkPN "Venezuela") ;
-Argentina = UsePN (mkPN "Argentina") ;
-Chile = UsePN (mkPN "Chile") ;
-FalklandIslands = UsePN (mkPN "Falkland Islands") ;
-SouthGeorgiaAndTheSouthSandwichIslands = UsePN (mkPN "South Georgia and the South Sandwich Islands") ;
-Uruguay = UsePN (mkPN "Uruguay") ;
-Ecuador = UsePN (mkPN "Ecuador") ;
-Peru = UsePN (mkPN "Peru") ;
-Kazakhstan = UsePN (mkPN "Kazakhstan") ;
-Kyrgyzstan = UsePN (mkPN "Kyrgyzstan") ;
-Tajikistan = UsePN (mkPN "Tajikistan") ;
-Turkmenistan = UsePN (mkPN "Turkmenistan") ;
-Uzbekistan = UsePN (mkPN "Uzbekistan") ;
-China = UsePN (mkPN "China") ;
-HongKong = UsePN (mkPN "Hong Kong") ;
-Japan = UsePN (mkPN "Japan") ;
-NorthKorea = UsePN (mkPN "NorthKorea") ;
-SouthKorea = UsePN (mkPN "SouthKorea") ;
-Macau = UsePN (mkPN "Macau") ;
-Taiwan = UsePN (mkPN "Taiwan") ;
---Taiwan = UsePN (mkPN "Republic of China") ;
-Mongolia = UsePN (mkPN "Mongolia") ;
-Russia = UsePN (mkPN "Russia") ;
-Afghanistan = UsePN (mkPN "Afghanistan") ;
-Bangladesh = UsePN (mkPN "Bangladesh") ;
-Bhutan = UsePN (mkPN "Bhutan") ;
-BritishIndianOceanTerritory = UsePN (mkPN "British Indian Ocean Territory") ;
-India = UsePN (mkPN "India") ;
-Maldives = UsePN (mkPN "Maldives") ;
-Nepal = UsePN (mkPN "Nepal") ;
-Pakistan = UsePN (mkPN "Pakistan") ;
-SriLanka = UsePN (mkPN "Sri Lanka") ;
-FrenchSouthernAndAntarcticLands = UsePN (mkPN "French Southern and Antarctic Lands") ;
-AshmoreAndCartierIslands = UsePN (mkPN "Ashmore and Cartier Islands") ;
-Brunei = UsePN (mkPN "Brunei") ;
-Cambodia = UsePN (mkPN "Cambodia") ;
-ChristmasIsland = UsePN (mkPN "Christmas Island") ;
-CocosKeelingIslands = UsePN (mkPN "Cocos Keeling Islands") ;
-EastTimor = UsePN (mkPN "East Timor") ;
-Indonesia = UsePN (mkPN "Indonesia") ;
-Laos = UsePN (mkPN "Laos") ;
-Malaysia = UsePN (mkPN "Malaysia") ;
-Myanmar = UsePN (mkPN "Myanmar") ;
-PapuaNewGuinea = UsePN (mkPN "Papua New Guinea") ;
-ParacelIslands = UsePN (mkPN "Paracel Islands") ;
-Philippines = UsePN (mkPN "Philippines") ;
-Singapore = UsePN (mkPN "Singapore") ;
-SpratlyIslands = UsePN (mkPN "Spratly Islands") ;
-Thailand = UsePN (mkPN "Thailand") ;
-Vietnam = UsePN (mkPN "Vietnam") ;
-Armenia = UsePN (mkPN "Armenia") ;
-Azerbaijan = UsePN (mkPN "Azerbaijan") ;
-RepublicOfGeorgia = UsePN (mkPN "Republic Of Georgia") ;
-AmericanSamoa = UsePN (mkPN "American Samoa") ;
-Australia = UsePN (mkPN "Australia") ;
-BakerIsland = UsePN (mkPN "Baker Island") ;
-CookIslands = UsePN (mkPN "Cook Islands") ;
-CoralSeaIslands = UsePN (mkPN "Coral Sea Islands") ;
-Fiji = UsePN (mkPN "Fiji") ;
-FrenchPolynesia = UsePN (mkPN "French Polynesia") ;
-Guam = UsePN (mkPN "Guam") ;
-HowlandIsland = UsePN (mkPN "Howland Island") ;
-JarvisIsland = UsePN (mkPN "Jarvis Island") ;
-JohnstonAtoll = UsePN (mkPN "Johnston Atoll") ;
-KingmanReef = UsePN (mkPN "Kingman Reef") ;
-Kiribati = UsePN (mkPN "Kiribati") ;
-MarshallIslands = UsePN (mkPN "Marshall Islands") ;
-Micronesia = UsePN (mkPN "Micronesia") ;
-MidwayIslands = UsePN (mkPN "Midway Islands") ;
-Nauru = UsePN (mkPN "Nauru") ;
-NewCaledonia = UsePN (mkPN "New Caledonia") ;
-NewZealand = UsePN (mkPN "New Zealand") ;
-Niue = UsePN (mkPN "Niue") ;
-NorfolkIsland = UsePN (mkPN "Norfolk Island") ;
-NorthernMarianaIslands = UsePN (mkPN "Northern Mariana Islands") ;
-Palau = UsePN (mkPN "Palau") ;
-PalmyraAtoll = UsePN (mkPN "Palmyra Atoll") ;
-PitcairnIslands = UsePN (mkPN "Pitcairn Islands") ;
-Samoa = UsePN (mkPN "Samoa") ;
-SolomonIslands = UsePN (mkPN "Solomon Islands") ;
-Tokelau = UsePN (mkPN "Tokelau") ;
-Tonga = UsePN (mkPN "Tonga") ;
-Tuvalu = UsePN (mkPN "Tuvalu") ;
-Vanuatu = UsePN (mkPN "Vanuatu") ;
-WakeIsland = UsePN (mkPN "Wake Island") ;
-WallisAndFutuna = UsePN (mkPN "Wallis and Futuna") ;
-
-};
+concrete CountriesAndRegionsEng of CountriesAndRegions = MidLevelOntologyEng ** open ParadigmsEng,NounEng  in {
+  
+lin 
+  NewJersey = UsePN (mkPN "New Jersey") ;
+  NewYorkState = UsePN (mkPN "New York") ;
+  Texas = UsePN (mkPN "Texas") ;
+  AdanaTurkey = UsePN (mkPN "Adana") ;
+  AddisAbabaEthiopia = UsePN (mkPN "Addis Ababa") ;
+  AdenYemen = UsePN (mkPN "Aden") ;
+  AdoraWestBank = UsePN (mkPN "Adora") ;
+  AfulaIsrael = UsePN (mkPN "Afula") ;
+  AgriTurkey = UsePN (mkPN "Agri") ;
+  AinDeflaAlgeria = UsePN (mkPN "Ain Defla") ;
+  AinElHajarAlgeria = UsePN (mkPN "Ain el Hajar") ;
+  AjaccioFrance = UsePN (mkPN "Ajaccio") ;
+  AlBalamandLebanon = UsePN (mkPN "Al-Balamand") ;
+  AleiSinaiGazaStrip = UsePN (mkPN "Alei Sinai") ;
+  AleiZahavWestBank = UsePN (mkPN "Alei Zahav") ;
+  AleyLebanon = UsePN (mkPN "Aley") ;
+  AlgiersAlgeria = UsePN (mkPN "Algiers") ;
+  AlkhanYurtRussia = UsePN (mkPN "Alkhan-Yurt") ;
+  AlonMorehWestBank = UsePN (mkPN "Alon Moreh") ;
+  AmbonIndonesia = UsePN (mkPN "Ambon") ;
+  AmmanJordan = UsePN (mkPN "Amman") ;
+  AnNuwaydiratBahrain = UsePN (mkPN "An Nuwaydirat") ;
+  AndeanSpain = UsePN (mkPN "Andean") ;
+  AngkorWatCambodia = UsePN (mkPN "Angkor Wat") ;
+  AnkaraTurkey = UsePN (mkPN "Ankara") ;
+  AntalyaTurkey = UsePN (mkPN "Antalya") ;
+  AntioquiaColombia = UsePN (mkPN "Antioquia") ;
+  AntwerpBelgium = UsePN (mkPN "Antwerp") ;
+  ApumiracPeru = UsePN (mkPN "Apumirac") ;
+  ApureVenezuela = UsePN (mkPN "Apure") ;
+  AraucaColombia = UsePN (mkPN "Arauca") ;
+  ArgunRussia = UsePN (mkPN "Argun") ;
+  ArielWestBank = UsePN (mkPN "Ariel") ;
+  ArmaghNorthernIreland = UsePN (mkPN "Armagh") ;
+  ArzewAlgeria = UsePN (mkPN "Arzew") ;
+  AshdodIsrael = UsePN (mkPN "Ashdod") ;
+  AskelonIsrael = UsePN (mkPN "Askelon") ;
+  AsmaraEritrea = UsePN (mkPN "Asmara") ;
+  AssamIndia = UsePN (mkPN "Assam") ;
+  AswanEgypt = UsePN (mkPN "Aswan") ;
+  AsyutEgypt = UsePN (mkPN "Asyut") ;
+  AthensGreece = UsePN (mkPN "Athens") ;
+  AtrushIraq = UsePN (mkPN "Atrush") ;
+  AtzmonaGazaStrip = UsePN (mkPN "Atzmona") ;
+  AvneiHefetzIsrael = UsePN (mkPN "Avnei Hefetz") ;
+  AyacuchoPeru = UsePN (mkPN "Ayacucho") ;
+  AzorIsrael = UsePN (mkPN "Azor") ;
+  BadVilbelGermany = UsePN (mkPN "Bad Vilbel") ;
+  BaghdadIraq = UsePN (mkPN "Baghdad") ;
+  BagreColombia = UsePN (mkPN "Bagre") ;
+  Bahamas = UsePN (mkPN "Bahamas") ;
+  BahawalpurPakistan = UsePN (mkPN "Bahawalpur") ;
+  BakaAlGarbiyehIsrael = UsePN (mkPN "Baka al-Garbiyeh") ;
+  BakkaAlSharkiyaWestBank = UsePN (mkPN "Bakka al-Sharkiya") ;
+  BakuAzerbaijan = UsePN (mkPN "Baku") ;
+  BaleEthiopia = UsePN (mkPN "Bale") ;
+  BanbridgeNorthernIreland = UsePN (mkPN "Banbridge") ;
+  BangkokThailand = UsePN (mkPN "Bangkok") ;
+  BangorNorthernIreland = UsePN (mkPN "Bangor") ;
+  BanguiCentralAfricanRepublic = UsePN (mkPN "Bangui") ;
+  BarcelonaSpain = UsePN (mkPN "Barcelona") ;
+  BarkeoCambodia = UsePN (mkPN "Barkeo") ;
+  BarrancabermejaColombia = UsePN (mkPN "Barrancabermeja") ;
+  BasraIsrael = UsePN (mkPN "Basra") ;
+  BatYamIsrael = UsePN (mkPN "Bat Yam") ;
+  BatmanTurkey = UsePN (mkPN "Batman") ;
+  BeasainSpain = UsePN (mkPN "Beasain") ;
+  BeErShevaIsrael = UsePN (mkPN "Be'er Sheva") ;
+  BeirutLebanon = UsePN (mkPN "Beirut") ;
+  BeitElWestBank = UsePN (mkPN "Beit El") ;
+  BeitHaggaiWestBank = UsePN (mkPN "Beit Haggai") ;
+  BeitSahurWestBank = UsePN (mkPN "Beit Sahur") ;
+  BeitSheAnIsrael = UsePN (mkPN "Beit She'an") ;
+  BeitShemeshIsrael = UsePN (mkPN "Beit Shemesh") ;
+  BeledweyneSomalia = UsePN (mkPN "Beledweyne") ;
+  BelfastNorthernIreland = UsePN (mkPN "Belfast") ;
+  BelgradeSerbiaAndMontenegro = UsePN (mkPN "Belgrade") ;
+  BerlinGermany = UsePN (mkPN "Berlin") ;
+  BetLeHiyehGazaStrip = UsePN (mkPN "Bet LeHiyeh") ;
+  BetLidJunctionIsrael = UsePN (mkPN "Bet Lid Junction") ;
+  BethElIsrael = UsePN (mkPN "Beth El") ;
+  BethlehemWestBank = UsePN (mkPN "Bethlehem") ;
+  BidyaWestBank = UsePN (mkPN "Bidya") ;
+  BilbaoSpain = UsePN (mkPN "Bilbao") ;
+  BillabonaSpain = UsePN (mkPN "Billabona") ;
+  BinyaminaIsrael = UsePN (mkPN "Binyamina") ;
+  BKaotWestBank = UsePN (mkPN "B'kaot") ;
+  BneiAyishIsrael = UsePN (mkPN "Bnei Ayish") ;
+  BogotaColombia = UsePN (mkPN "Bogota") ;
+  BolognaItaly = UsePN (mkPN "Bologna") ;
+  BonnGermany = UsePN (mkPN "Bonn") ;
+  BosphorousStraitsTurkey = UsePN (mkPN "BosphorousStraits") ;
+  BouiraAlgeria = UsePN (mkPN "Bouira") ;
+  BouzeGueneAlgeria = UsePN (mkPN "Bouze-guene") ;
+  BrusselsBelgium = UsePN (mkPN "Brussels") ;
+  BucaramangaColombia = UsePN (mkPN "Bucaramanga") ;
+  BucharestRomania = UsePN (mkPN "Bucharest") ;
+  BuenosAiresArgentina = UsePN (mkPN "Buenos Aires") ;
+  BuinakskRussia = UsePN (mkPN "Buinaksk") ;
+  Burma = UsePN (mkPN "Burma") ;
+  BwindiforestUganda = UsePN (mkPN "Bwindi forest") ;
+  CabindaAngola = UsePN (mkPN "Cabinda") ;
+  CaglayanTurkey = UsePN (mkPN "Caglayan") ;
+  CairoEgypt = UsePN (mkPN "Cairo") ;
+  CalcuttaIndia = UsePN (mkPN "Calcutta") ;
+  CaliColombia = UsePN (mkPN "Cali") ;
+  CampZamaJapan = UsePN (mkPN "Camp Zama") ;
+  CankiriTurkey = UsePN (mkPN "Cankiri") ;
+  CapeTownSouthAfrica = UsePN (mkPN "Cape Town") ;
+  CaritasPolandChechnya = UsePN (mkPN "Caritas Poland") ;
+  CarmelIsrael = UsePN (mkPN "Carmel") ;
+  CarmenDeBolivarColombia = UsePN (mkPN "Carmen de Bolivar") ;
+  CarrejonColombia = UsePN (mkPN "Carrejon") ;
+  ChamanPakistan = UsePN (mkPN "Chaman") ;
+  ChararESharifIndia = UsePN (mkPN "Charar-e-Sharif") ;
+  CharsaadaPakistan = UsePN (mkPN "Charsaada") ;
+  ChernoRechyeRussia = UsePN (mkPN "Cherno-rechye") ;
+  ChicagoUnitedStates = UsePN (mkPN "Chicago") ;
+  ChisimayuSomalia = UsePN (mkPN "Chisimayu") ;
+  ChittagongBangladesh = UsePN (mkPN "Chittagong") ;
+  ChobaAngola = UsePN (mkPN "Choba") ;
+  ChocoColombia = UsePN (mkPN "Choco") ;
+  ChorrosQueroVenezuela = UsePN (mkPN "Chorros-quero") ;
+  ClarkAirbasePhilippines = UsePN (mkPN "Clark Airbase") ;
+  CoimbatoreIndia = UsePN (mkPN "Coimbatore") ;
+  CologneGermany = UsePN (mkPN "Cologne") ;
+  ColombiaCityColombia = UsePN (mkPN "Colombia City") ;
+  ColombiaPanama = UsePN (mkPN "Colombia") ;
+  ColomboSriLanka = UsePN (mkPN "Colombo") ;
+  ComayaguaHonduras = UsePN (mkPN "Comayagua") ;
+  Congo = UsePN (mkPN "Congo") ;
+  CopacaBanaCuba = UsePN (mkPN "Copaca-bana") ;
+  CopenhagenDenmark = UsePN (mkPN "Copenhagen") ;
+  CorsicaFrance = UsePN (mkPN "Corsica") ;
+  CorteFrance = UsePN (mkPN "Corte") ;
+  CorumTurkey = UsePN (mkPN "Corum") ;
+  CundiNamarcaColombia = UsePN (mkPN "Cundi-namarca") ;
+  CupiaguaColombia = UsePN (mkPN "Cupiagua") ;
+  CuzcoPeru = UsePN (mkPN "Cuzco") ;
+  DagestanRussia = UsePN (mkPN "Dagestan") ;
+  DahukIraq = UsePN (mkPN "Dahuk") ;
+  DangDistrictNepal = UsePN (mkPN "Dang district") ;
+  DarEsSalaAmTanzania = UsePN (mkPN "Dar es Sala'am") ;
+  DarvazTajikistan = UsePN (mkPN "Darvaz") ;
+  DebaSpain = UsePN (mkPN "Deba") ;
+  DelhiIndia = UsePN (mkPN "Delhi") ;
+  DhahranSaudiArabia = UsePN (mkPN "Dhahran") ;
+  DhakaBangladesh = UsePN (mkPN "Dhaka") ;
+  DinanFrance = UsePN (mkPN "Dinan") ;
+  DirNaballahWestBank = UsePN (mkPN "Dir Naballah") ;
+  DireDawaEthiopia = UsePN (mkPN "Dire Dawa") ;
+  DistrictOfMansehraPakistan = UsePN (mkPN "district of Mansehra") ;
+  DjakashariGeorgia = UsePN (mkPN "Djakashari") ;
+  DjerbaTunisia = UsePN (mkPN "Djerba") ;
+  DodaIndia = UsePN (mkPN "Doda") ;
+  DortmundGermany = UsePN (mkPN "Dortmund") ;
+  DublinIreland = UsePN (mkPN "Dublin") ;
+  DuesseldorfGermany = UsePN (mkPN "Duesseldorf") ;
+  DugitGazaStrip = UsePN (mkPN "Dugit") ;
+  DurangoSpain = UsePN (mkPN "Durango") ;
+  DushanbeTajikistan = UsePN (mkPN "Dushanbe") ;
+  DushanbeAirportTajikistan = UsePN (mkPN "Dushanbe airport") ;
+  DushanbeGarmTajikistan = UsePN (mkPN "Dushanbe Garm") ;
+  EastJerusalemIsrael = UsePN (mkPN "East Jerusalem") ;
+  EfratWestBank = UsePN (mkPN "Efrat") ;
+  EilatIsrael = UsePN (mkPN "Eilat") ;
+  EinavWestBank = UsePN (mkPN "Einav") ;
+  ElBagreColombia = UsePN (mkPN "El Bagre") ;
+  ElBirehWestBank = UsePN (mkPN "El Bireh") ;
+  ElPlayonColombia = UsePN (mkPN "El Playon") ;
+  ElRipialApureVenezuela = UsePN (mkPN "El Ripial Apure") ;
+  ElayoSomalia = UsePN (mkPN "Elayo") ;
+  ElAzzariyaWestBank = UsePN (mkPN "el-Azzariya") ;
+  EleiSinaiGazaStrip = UsePN (mkPN "Elei Sinai") ;
+  EmmanuelWestBank = UsePN (mkPN "Emmanuel") ;
+  ErezGazaStrip = UsePN (mkPN "Erez") ;
+  FethiyeAndMarmarisTurkey = UsePN (mkPN "Fethiye and Marmaris") ;
+  FloridaUnitedStates = UsePN (mkPN "Florida") ;
+  FormequeColombia = UsePN (mkPN "Formeque") ;
+  FrankfurtGermany = UsePN (mkPN "Frankfurt") ;
+  FrenchHillIsrael = UsePN (mkPN "French Hill") ;
+  FuengirolaSpain = UsePN (mkPN "Fuengirola") ;
+  FusagasusaColombia = UsePN (mkPN "Fusagasusa") ;
+  GaliAbkhaziaGeorgia = UsePN (mkPN "Gali Abkhazia") ;
+  GanimWestBank = UsePN (mkPN "Ganim") ;
+  GashuriIsrael = UsePN (mkPN "Gashuri") ;
+  GeneralSantosPhilippines = UsePN (mkPN "General Santos") ;
+  GenevaSwitzerland = UsePN (mkPN "Geneva") ;
+  Georgia = UsePN (mkPN "Georgia") ;
+  GetxoSpain = UsePN (mkPN "Getxo") ;
+  GhalebiehIraq = UsePN (mkPN "Ghalebieh") ;
+  GhaziabadUttarPradeshIndia = UsePN (mkPN "Ghaziabad Uttar Pradesh") ;
+  GiloIsrael = UsePN (mkPN "Gilo") ;
+  GivatZeEvWestBank = UsePN (mkPN "Givat Ze'ev") ;
+  GizaEgypt = UsePN (mkPN "Giza") ;
+  GonegalleSriLanka = UsePN (mkPN "Gonegalle") ;
+  GranadaSpain = UsePN (mkPN "Granada") ;
+  GrazAustria = UsePN (mkPN "Graz") ;
+  GroznyChechnya = UsePN (mkPN "Grozny") ;
+  GuilinChina = UsePN (mkPN "Guilin") ;
+  GujaratIndia = UsePN (mkPN "Gujarat") ;
+  GushEtzionWestBank = UsePN (mkPN "Gush Etzion") ;
+  GushKatifGazaStrip = UsePN (mkPN "Gush Katif") ;
+  HaderaIsrael = UsePN (mkPN "Hadera") ;
+  HaifaIsrael = UsePN (mkPN "Haifa") ;
+  HamburgGermany = UsePN (mkPN "Hamburg") ;
+  HamisMiliyanaAlgeria = UsePN (mkPN "Hamis Miliyana") ;
+  HamraWestBank = UsePN (mkPN "Hamra") ;
+  HannoverGermany = UsePN (mkPN "Hannover") ;
+  HarBrachaWestBank = UsePN (mkPN "Har Bracha") ;
+  HarerEthiopia = UsePN (mkPN "Harer") ;
+  HavanaCuba = UsePN (mkPN "Havana") ;
+  HawanaIraq = UsePN (mkPN "Hawana") ;
+  HeartAfghanistan = UsePN (mkPN "Heart") ;
+  HebronWestBank = UsePN (mkPN "Hebron") ;
+  HermeshIsrael = UsePN (mkPN "Hermesh") ;
+  HernaniSpain = UsePN (mkPN "Hernani") ;
+  HerzliyaIsrael = UsePN (mkPN "Herzliya") ;
+  HilversumNetherlands = UsePN (mkPN "Hilversum") ;
+  HizmaWestBank = UsePN (mkPN "Hizma") ;
+  HodayaJunctionIsrael = UsePN (mkPN "Hodaya Junction") ;
+  HolonJunctionIsrael = UsePN (mkPN "Holon Junction") ;
+  HuallgaPeru = UsePN (mkPN "Huallga") ;
+  HurghadaEgypt = UsePN (mkPN "Hurghada") ;
+  HyderabadPakistan = UsePN (mkPN "Hyderabad") ;
+  IbsrilIraq = UsePN (mkPN "Ibsril") ;
+  IncirlikAirbaseTurkey = UsePN (mkPN "Incirlik Airbase") ;
+  IpilPhilippines = UsePN (mkPN "Ipil") ;
+  IrbilIraq = UsePN (mkPN "Irbil") ;
+  IslamabadPakistan = UsePN (mkPN "Islamabad") ;
+  IslandOfBaliIndonesia = UsePN (mkPN "Island of Bali") ;
+  IstanbulTurkey = UsePN (mkPN "Istanbul") ;
+  ItamarWestBank = UsePN (mkPN "Itamar") ;
+  IzmirTurkey = UsePN (mkPN "Izmir") ;
+  JaffaIsrael = UsePN (mkPN "Jaffa") ;
+  JaffnaSriLanka = UsePN (mkPN "Jaffna") ;
+  JakartaIndonesia = UsePN (mkPN "Jakarta") ;
+  JalahIndia = UsePN (mkPN "Jalah") ;
+  JalpaiguriRailwayStationIndia = UsePN (mkPN "Jalpaiguri Railway Station") ;
+  JammuIndia = UsePN (mkPN "Jammu") ;
+  JangasPeru = UsePN (mkPN "Jangas") ;
+  JeninWestBank = UsePN (mkPN "Jenin") ;
+  JerusalemIsrael = UsePN (mkPN "Jerusalem") ;
+  JMainWestBank = UsePN (mkPN "J'main") ;
+  JohannesburgSouthAfrica = UsePN (mkPN "Johannesburg") ;
+  JoloPhilippines = UsePN (mkPN "Jolo") ;
+  JubialSaudiArabia = UsePN (mkPN "Jubial") ;
+  JullundurIndia = UsePN (mkPN "Jullundur") ;
+  KabacanPhilippines = UsePN (mkPN "Kabacan") ;
+  KabulAfghanistan = UsePN (mkPN "Kabul") ;
+  KafrAkabWestBank = UsePN (mkPN "Kafr Akab") ;
+  KafrIdnaWestBank = UsePN (mkPN "Kafr Idna") ;
+  KalkilyaWestBank = UsePN (mkPN "Kalkilya") ;
+  KalmunaiSriLanka = UsePN (mkPN "Kalmunai") ;
+  KampalaUganda = UsePN (mkPN "Kampala") ;
+  KandySriLanka = UsePN (mkPN "Kandy") ;
+  KanihamaIndia = UsePN (mkPN "Kanihama") ;
+  KarachiPakistan = UsePN (mkPN "Karachi") ;
+  KarkurIsrael = UsePN (mkPN "Karkur") ;
+  KarmeiTzurWestBank = UsePN (mkPN "Karmei Tzur") ;
+  KarneiShomronWestBank = UsePN (mkPN "Karnei Shomron") ;
+  KashmirIndia = UsePN (mkPN "Kashmir") ;
+  KatmanduAirportNepal = UsePN (mkPN "Katmandu Airport") ;
+  KedumimWestBank = UsePN (mkPN "Kedumim") ;
+  KedumimSettlementWestBank = UsePN (mkPN "Kedumim Settlement") ;
+  KfarBaAnehIsrael = UsePN (mkPN "Kfar Ba'aneh") ;
+  KfarDaromGazaStrip = UsePN (mkPN "Kfar Darom") ;
+  KfarHessIsrael = UsePN (mkPN "Kfar Hess") ;
+  KfarSabaIsrael = UsePN (mkPN "Kfar Saba") ;
+  KfarTzurifWestBank = UsePN (mkPN "Kfar Tzurif") ;
+  KfarYamGazaStrip = UsePN (mkPN "Kfar Yam") ;
+  KfarDaromNetzarimIsrael = UsePN (mkPN "Kfar-Darom Netzarim") ;
+  KhankalaChechnya = UsePN (mkPN "Khankala") ;
+  KhartoumSudan = UsePN (mkPN "Khartoum") ;
+  KhelilAlgeria = UsePN (mkPN "Khelil") ;
+  KhobarSaudiArabia = UsePN (mkPN "Khobar") ;
+  KibbutzGalEdIsrael = UsePN (mkPN "Kibbutz Gal 'Ed") ;
+  KibbutzMeravIsrael = UsePN (mkPN "Kibbutz Merav") ;
+  KibbutzSheluhotIsrael = UsePN (mkPN "Kibbutz Sheluhot") ;
+  KidapawanPhilippines = UsePN (mkPN "Kidapawan") ;
+  KigaliRwanda = UsePN (mkPN "Kigali") ;
+  KirikkaleTurkey = UsePN (mkPN "Kirikkale") ;
+  KiryatArbaWestBank = UsePN (mkPN "Kiryat Arba") ;
+  KiryatMotzkinIsrael = UsePN (mkPN "Kiryat Motzkin") ;
+  KiryatNetafimWestBank = UsePN (mkPN "Kiryat Netafim") ;
+  KissufimGazaStrip = UsePN (mkPN "Kissufim") ;
+  KiursehirBoztepTurkey = UsePN (mkPN "Kiursehir-Boztep") ;
+  KlaiyatLebanon = UsePN (mkPN "Klaiyat") ;
+  KohlanYemen = UsePN (mkPN "Kohlan") ;
+  KomsomoLabadTajikistan = UsePN (mkPN "Komsomo-labad") ;
+  KuwaitCityKuwait = UsePN (mkPN "Kuwait City") ;
+  LaCeibaHonduras = UsePN (mkPN "La Ceiba") ;
+  LaGabarraVenezuela = UsePN (mkPN "La Gabarra") ;
+  LaGuajiraColombia = UsePN (mkPN "La Guajira") ;
+  LaPazBolivia = UsePN (mkPN "La Paz") ;
+  LaVictoriaVenezuela = UsePN (mkPN "La Victoria") ;
+  LahorePakistan = UsePN (mkPN "Lahore") ;
+  LarbaAlgeria = UsePN (mkPN "Larba") ;
+  LarnacaCyprus = UsePN (mkPN "Larnaca") ;
+  LasarteSpain = UsePN (mkPN "Lasarte") ;
+  LeizaSpain = UsePN (mkPN "Leiza") ;
+  LesEucalyptusDistrictAlgeria = UsePN (mkPN "Les Eucalyptus district") ;
+  LibertadorVenezuela = UsePN (mkPN "Libertador") ;
+  LiceTurkey = UsePN (mkPN "Lice") ;
+  LIleRousseFrance = UsePN (mkPN "L'Ile-Rousse") ;
+  LimaPeru = UsePN (mkPN "Lima") ;
+  LindosRhodes = UsePN (mkPN "Lindos") ;
+  LinzAustralia = UsePN (mkPN "Linz") ;
+  LockerbieUnitedKingdom = UsePN (mkPN "Lockerbie") ;
+  LogornoSpain = UsePN (mkPN "Logorno") ;
+  LondonUnitedKingdom = UsePN (mkPN "London") ;
+  LondonberryNorthernIreland = UsePN (mkPN "Londonberry") ;
+  LosAngelesUnitedStates = UsePN (mkPN "Los Angeles") ;
+  LosAngelesInternationalAirportUnitedStates = UsePN (mkPN "Los Angeles International Airport") ;
+  LosBancosVenezuela = UsePN (mkPN "Los Bancos") ;
+  LosKatiosNationalParkColombia = UsePN (mkPN "Los Katios National Park") ;
+  LuandaAngola = UsePN (mkPN "Luanda") ;
+  LuebeckGermany = UsePN (mkPN "Luebeck") ;
+  LundaNorteAngola = UsePN (mkPN "Lunda Norte") ;
+  LuxorEgypt = UsePN (mkPN "Luxor") ;
+  LyonsFrance = UsePN (mkPN "Lyons") ;
+  MaAlehMichmashWestBank = UsePN (mkPN "Ma'aleh Michmash") ;
+  MaccabimIsrael = UsePN (mkPN "Maccabim") ;
+  MadhuSriLanka = UsePN (mkPN "Madhu") ;
+  MadrasIndia = UsePN (mkPN "Madras") ;
+  MadridSpain = UsePN (mkPN "Madrid") ;
+  MagdalenaColombia = UsePN (mkPN "Magdalena") ;
+  MaidanSharAfghanistan = UsePN (mkPN "Maidan Shar") ;
+  MakhachkalaRussia = UsePN (mkPN "Makhachkala") ;
+  MalagaSpain = UsePN (mkPN "Malaga") ;
+  MalukkaIslandsIndonesia = UsePN (mkPN "Malukka islands") ;
+  ManaguaNigeria = UsePN (mkPN "Managua") ;
+  ManamaBahrain = UsePN (mkPN "Manama") ;
+  ManchesterUnitedKingdom = UsePN (mkPN "Manchester") ;
+  MangalsenAndSanpheBagarNepal = UsePN (mkPN "Mangalsen and Sanphe Bagar") ;
+  ManilaPhilippines = UsePN (mkPN "Manila") ;
+  MaonIsrael = UsePN (mkPN "Maon") ;
+  MapourditSudan = UsePN (mkPN "Mapourdit") ;
+  MarSabaWestBank = UsePN (mkPN "Mar Saba") ;
+  MarawiPhilippines = UsePN (mkPN "Marawi") ;
+  MardanPakistan = UsePN (mkPN "Mardan") ;
+  MarmarisTurkey = UsePN (mkPN "Marmaris") ;
+  MarseillesFrance = UsePN (mkPN "Marseilles") ;
+  MashaWestBank = UsePN (mkPN "Masha") ;
+  MatsumotoJapan = UsePN (mkPN "Matsumoto") ;
+  MawdiyahYemen = UsePN (mkPN "Mawdiyah") ;
+  MeaShearimIsrael = UsePN (mkPN "Mea Shearim") ;
+  MeccaSaudiArabia = UsePN (mkPN "Mecca") ;
+  MechoraWestBank = UsePN (mkPN "Mechora") ;
+  MedanIndonesia = UsePN (mkPN "Medan") ;
+  MedellinColombia = UsePN (mkPN "Medellin") ;
+  MegidoIsrael = UsePN (mkPN "Megido") ;
+  MeholaIsrael = UsePN (mkPN "Mehola") ;
+  MekholahIsrael = UsePN (mkPN "Mekholah") ;
+  MersinTurkey = UsePN (mkPN "Mersin") ;
+  MetaColombia = UsePN (mkPN "Meta") ;
+  MetullaIsrael = UsePN (mkPN "Metulla") ;
+  MetzerIsrael = UsePN (mkPN "Metzer") ;
+  MilanItaly = UsePN (mkPN "Milan") ;
+  MindanaoPhilippines = UsePN (mkPN "Mindanao") ;
+  MinharotRoadWestBank = UsePN (mkPN "Minharot Road") ;
+  MiranShahPakistan = UsePN (mkPN "Miran Shah") ;
+  MituColombia = UsePN (mkPN "Mitu") ;
+  ModiinIllitWestBank = UsePN (mkPN "Modiin Illit") ;
+  MombassaKenya = UsePN (mkPN "Mombassa") ;
+  MoragJunctionGazaStrip = UsePN (mkPN "Morag Junction") ;
+  MoscowRussia = UsePN (mkPN "Moscow") ;
+  MoshavHagorIsrael = UsePN (mkPN "Moshav Hagor") ;
+  MoshavTomerWestBank = UsePN (mkPN "Moshav Tomer") ;
+  MukallahAdenYemen = UsePN (mkPN "Mukallah-Aden") ;
+  MunchenGladbachGermany = UsePN (mkPN "Munchen-Gladbach") ;
+  MunsterGermany = UsePN (mkPN "Munster") ;
+  MurloughNorthernIreland = UsePN (mkPN "Murlough") ;
+  MusMusIsrael = UsePN (mkPN "Mus Mus") ;
+  MutataColombia = UsePN (mkPN "Mutata") ;
+  MutturSriLanka = UsePN (mkPN "Muttur") ;
+  NaAlinWestBank = UsePN (mkPN "Na'alin") ;
+  NablusWestBank = UsePN (mkPN "Nablus") ;
+  NahalOzGazaStrip = UsePN (mkPN "Nahal Oz") ;
+  NaharaimIsrael = UsePN (mkPN "Naharaim") ;
+  NahariyaIsrael = UsePN (mkPN "Nahariya") ;
+  NairobiKenya = UsePN (mkPN "Nairobi") ;
+  NajafIraq = UsePN (mkPN "Najaf") ;
+  NallurAreaSriLanka = UsePN (mkPN "Nallur Area") ;
+  NaquraLebanon = UsePN (mkPN "Naqura") ;
+  NarayangangBangladesh = UsePN (mkPN "Narayangang") ;
+  NetanyaIsrael = UsePN (mkPN "Netanya") ;
+  NetzarimGazaStrip = UsePN (mkPN "Netzarim") ;
+  NetzerHazaniGazaStrip = UsePN (mkPN "Netzer Hazani") ;
+  NeveDanielWestBank = UsePN (mkPN "Neve Daniel") ;
+  NeveYaminIsrael = UsePN (mkPN "Neve Yamin") ;
+  NewDelhiIndia = UsePN (mkPN "New Delhi") ;
+  NewYorkCityUnitedStates = UsePN (mkPN "New York City") ;
+  NeztarimSettlementGazaStrip = UsePN (mkPN "Neztarim Settlement") ;
+  NiameyNiger = UsePN (mkPN "Niamey") ;
+  NissanitGazaStrip = UsePN (mkPN "Nissanit") ;
+  NitzaneiOzWestBank = UsePN (mkPN "Nitzanei Oz") ;
+  NitzanimIsrael = UsePN (mkPN "Nitzanim") ;
+  NokdimTekoaRdWestBank = UsePN (mkPN "Nokdim-Tekoa Rd.") ;
+  NorteDeSantanderColombia = UsePN (mkPN "Norte de Santander") ;
+  NorthernCaucasiusChechnya = UsePN (mkPN "Northern Caucasius") ;
+  NovogroznyRussia = UsePN (mkPN "Novogrozny") ;
+  NovyyAtagiRussia = UsePN (mkPN "Novyy Atagi") ;
+  OberwartAustria = UsePN (mkPN "Oberwart") ;
+  OfraWestBank = UsePN (mkPN "Ofra") ;
+  OilbaseAlgeria = UsePN (mkPN "Oil base") ;
+  oilfieldsVenezuela = UsePN (mkPN "oilfields") ;
+  OkaraPakistan = UsePN (mkPN "Okara") ;
+  OlayaHerreraColombia = UsePN (mkPN "Olaya Herrera") ;
+  OmaghNorthernIreland = UsePN (mkPN "Omagh") ;
+  OrYehudaIsrael = UsePN (mkPN "Or Yehuda") ;
+  OranAlgeria = UsePN (mkPN "Oran") ;
+  OsakaJapan = UsePN (mkPN "Osaka") ;
+  OsloNorway = UsePN (mkPN "Oslo") ;
+  OssnabruckGermany = UsePN (mkPN "Ossnabruck") ;
+  OthnielJunctionIsrael = UsePN (mkPN "Othniel Junction") ;
+  OtnielWestBank = UsePN (mkPN "Otniel") ;
+  OtzarinWestBank = UsePN (mkPN "Otzarin") ;
+  OzamisPhilippines = UsePN (mkPN "Ozamis") ;
+  PahalgamIndia = UsePN (mkPN "Pahalgam") ;
+  PalorinyaUganda = UsePN (mkPN "Palorinya") ;
+  PamplonaSpain = UsePN (mkPN "Pamplona") ;
+  PanamaCityPanama = UsePN (mkPN "Panama City") ;
+  PantrasGreece = UsePN (mkPN "Pantras") ;
+  PapayinColombia = UsePN (mkPN "Papayin") ;
+  PapuaIndonesia = UsePN (mkPN "Papua") ;
+  ParisFrance = UsePN (mkPN "Paris") ;
+  PatikulPhilippines = UsePN (mkPN "Patikul") ;
+  PauFrance = UsePN (mkPN "Pau") ;
+  PeAtSadehGazaStrip = UsePN (mkPN "Pe'at Sadeh") ;
+  PeshawarPakistan = UsePN (mkPN "Peshawar") ;
+  PetahTikvahIsrael = UsePN (mkPN "Petah Tikvah") ;
+  PhnomPenhCambodia = UsePN (mkPN "Phnom Penh") ;
+  PortadownIreland = UsePN (mkPN "Portadown") ;
+  PragueCzechRepublic = UsePN (mkPN "Prague") ;
+  PuertoAlviraColombia = UsePN (mkPN "Puerto Alvira") ;
+  PuertoLlerasColombia = UsePN (mkPN "Puerto Lleras") ;
+  PunjabPakistan = UsePN (mkPN "Punjab") ;
+  QuettaPakistan = UsePN (mkPN "Quetta") ;
+  QuitoEcuador = UsePN (mkPN "Quito") ;
+  RadaAmanYemen = UsePN (mkPN "Rada-Aman") ;
+  RafahGazaStrip = UsePN (mkPN "Rafah") ;
+  RamaJunctionWestBank = UsePN (mkPN "Rama Junction") ;
+  RamalDeAspusanaPeru = UsePN (mkPN "Ramal de Aspusana") ;
+  RamallahWestBank = UsePN (mkPN "Ramallah") ;
+  RamatGanIsrael = UsePN (mkPN "Ramat Gan") ;
+  RaminWestBank = UsePN (mkPN "Ramin") ;
+  RamleIsrael = UsePN (mkPN "Ramle") ;
+  RawalpindiPakistan = UsePN (mkPN "Rawalpindi") ;
+  ReusSpain = UsePN (mkPN "Reus") ;
+  RigaLatvia = UsePN (mkPN "Riga") ;
+  RijekaCroatia = UsePN (mkPN "Rijeka") ;
+  RimalDistrictGazaStrip = UsePN (mkPN "Rimal district") ;
+  RishonLeZionIsrael = UsePN (mkPN "Rishon Le Zion") ;
+  RiyadhSaudiArabia = UsePN (mkPN "Riyadh") ;
+  RoermondNetherlands = UsePN (mkPN "Roermond") ;
+  RomeItaly = UsePN (mkPN "Rome") ;
+  RosasSpain = UsePN (mkPN "Rosas") ;
+  RostovOnDonRussia = UsePN (mkPN "Rostov-on-Don") ;
+  RuhengeriRwanda = UsePN (mkPN "Ruhengeri") ;
+  SaadaYemen = UsePN (mkPN "Saada") ;
+  SabatenaColombia = UsePN (mkPN "Sabatena") ;
+  SacramentoUnitedStates = UsePN (mkPN "Sacramento") ;
+  SaintAvoldFrance = UsePN (mkPN "Saint Avold") ;
+  SaintSebastianSpain = UsePN (mkPN "Saint Sebastian") ;
+  SaintJeanDeLuzFrance = UsePN (mkPN "Saint-Jean-de-Luz") ;
+  SairanbarIraq = UsePN (mkPN "Sairanbar") ;
+  SajaIAGazaStrip = UsePN (mkPN "Saja'i'a") ;
+  SallentDeGallegoSpain = UsePN (mkPN "Sallent de Gallego") ;
+  SamariaWestBank = UsePN (mkPN "Samaria") ;
+  SamashkiRussia = UsePN (mkPN "Samashki") ;
+  SanDiegoColombia = UsePN (mkPN "San Diego") ;
+  SanJoseCostaRica = UsePN (mkPN "San Jose") ;
+  SanLuisColombia = UsePN (mkPN "San Luis") ;
+  SanMiguelElSalvador = UsePN (mkPN "San Miguel") ;
+  SanPabloColombia = UsePN (mkPN "San Pablo") ;
+  SanSabatianSpain = UsePN (mkPN "San Sabatian") ;
+  SanaaYemen = UsePN (mkPN "Sanaa") ;
+  SangaldanIndia = UsePN (mkPN "Sangaldan") ;
+  SantaMartaColombia = UsePN (mkPN "Santa Marta") ;
+  SantaPolaSpain = UsePN (mkPN "Santa Pola") ;
+  SantaRitaMountainsPanama = UsePN (mkPN "Santa Rita Mountains") ;
+  SantiagoChile = UsePN (mkPN "Santiago") ;
+  SanurIsrael = UsePN (mkPN "Sanur") ;
+  SarajevoBosniaAndHerzegovina = UsePN (mkPN "Sarajevo") ;
+  SatkhiraBangladesh = UsePN (mkPN "Satkhira") ;
+  SegoviaColombia = UsePN (mkPN "Segovia") ;
+  SeoulSouthKorea = UsePN (mkPN "Seoul") ;
+  SevilleSpain = UsePN (mkPN "Seville") ;
+  ShadmotMeholaWestBank = UsePN (mkPN "Shadmot Mehola") ;
+  ShaveiShomronWestBank = UsePN (mkPN "Shavei Shomron") ;
+  SheikhAjlunGazaStrip = UsePN (mkPN "Sheikh Ajlun") ;
+  ShiloWestBank = UsePN (mkPN "Shilo") ;
+  ShimiEcuador = UsePN (mkPN "Shimi") ;
+  ShlomiIsrael = UsePN (mkPN "Shlomi") ;
+  SidiHalifahLibya = UsePN (mkPN "Sidi Halifah") ;
+  SidonLebanon = UsePN (mkPN "Sidon") ;
+  SiirtTurkey = UsePN (mkPN "Siirt") ;
+  SilatADaharWestBank = UsePN (mkPN "Silat a-Dahar") ;
+  SipadanIslandMalaysia = UsePN (mkPN "Sipadan Island") ;
+  SitrahBahrain = UsePN (mkPN "Sitrah") ;
+  SoporeIndia = UsePN (mkPN "Sopore") ;
+  SrinagarIndia = UsePN (mkPN "Srinagar") ;
+  SrinigarIndia = UsePN (mkPN "Srinigar") ;
+  SriperumbudurIndia = UsePN (mkPN "Sriperumbudur") ;
+  StewartstownNorthernIreland = UsePN (mkPN "Stewartstown") ;
+  StockholmSweden = UsePN (mkPN "Stockholm") ;
+  StrasbourgFrance = UsePN (mkPN "Strasbourg") ;
+  SukaimaniyahIraq = UsePN (mkPN "Sukai-maniyah") ;
+  SulawesiIndonesia = UsePN (mkPN "Sulawesi") ;
+  SulaymaniyahIraq = UsePN (mkPN "Sulaymaniyah") ;
+  SumayrYemen = UsePN (mkPN "Sumayr") ;
+  SusiyaWestBank = UsePN (mkPN "Susiya") ;
+  TailaPakistan = UsePN (mkPN "Taila") ;
+  TamezGuidaAlgeria = UsePN (mkPN "Tamez-guida") ;
+  TandySriLanka = UsePN (mkPN "Tandy") ;
+  TaxilaPakistan = UsePN (mkPN "Taxila") ;
+  TBilisiGeorgia = UsePN (mkPN "T'bilisi") ;
+  TegucigalpaHonduras = UsePN (mkPN "Tegucigalpa") ;
+  TeheranIran = UsePN (mkPN "Teheran") ;
+  TekoaWestBank = UsePN (mkPN "Tekoa") ;
+  TelAvivIsrael = UsePN (mkPN "Tel Aviv" | mkPN "Tel-Aviv") ;
+  TelHaShomerJunctionIsrael = UsePN (mkPN "Tel HaShomer Junction") ;
+  TelQateifaGazaStrip = UsePN (mkPN "Tel Qateifa") ;
+  TelRumeiydaIsrael = UsePN (mkPN "Tel Rumeiyda") ;
+  TelemIsrael = UsePN (mkPN "Telem") ;
+  TenaWestBank = UsePN (mkPN "Tena") ;
+  TheHagueNetherlands = UsePN (mkPN "The Hague") ;
+  TheKyrgyzCapitalBishkekChina = UsePN (mkPN "The Kyrgyz capital Bishkek.") ;
+  ThekraguriIndia = UsePN (mkPN "Thekraguri") ;
+  TiaretAlgeria = UsePN (mkPN "Tiaret") ;
+  TiratAlgeria = UsePN (mkPN "Tirat") ;
+  TokyoJapan = UsePN (mkPN "Tokyo") ;
+  TolosaSpain = UsePN (mkPN "Tolosa") ;
+  TopkakiTurkey = UsePN (mkPN "Topkaki") ;
+  TrabzonTurkey = UsePN (mkPN "Trabzon") ;
+  TrincomaleeHarborSriLanka = UsePN (mkPN "Trincomalee Harbor") ;
+  TripoliLibya = UsePN (mkPN "Tripoli") ;
+  TulkaremWestBank = UsePN (mkPN "Tulkarem") ;
+  TulkarmWestBank = UsePN (mkPN "Tulkarm") ;
+  TunceliTurkey = UsePN (mkPN "Tunceli") ;
+  TurbatPakistan = UsePN (mkPN "Turbat") ;
+  UmAlFahmIsrael = UsePN (mkPN "Um al-Fahm") ;
+  UmmQasrIraq = UsePN (mkPN "Umm Qasr") ;
+  UrenaVenezuela = UsePN (mkPN "Urena") ;
+  UrraColombia = UsePN (mkPN "Urra") ;
+  UrsMartanRussia = UsePN (mkPN "Urs-Martan") ;
+  UWaIndianReservationColombia = UsePN (mkPN "U'wa Indian reservation") ;
+  ValenciaSpain = UsePN (mkPN "Valencia") ;
+  ValleduparColombia = UsePN (mkPN "Valledupar") ;
+  VanTurkey = UsePN (mkPN "Van") ;
+  VavuniyaSriLanka = UsePN (mkPN "Vavuniya") ;
+  ViennaAustria = UsePN (mkPN "Vienna") ;
+  VientianeLaos = UsePN (mkPN "Vientiane") ;
+  VillavicencioColombia = UsePN (mkPN "Villavicencio") ;
+  VitoriaSpain = UsePN (mkPN "Vitoria") ;
+  VitrollesFrance = UsePN (mkPN "Vitrolles") ;
+  VladikavkazRussia = UsePN (mkPN "Vladikavkaz") ;
+  VladivostokRussia = UsePN (mkPN "Vladivostok") ;
+  VolgodonskRussia = UsePN (mkPN "Volgodonsk") ;
+  WadiAlDabaatYemen = UsePN (mkPN "Wadi al-Dabaat") ;
+  WadiAraIsrael = UsePN (mkPN "Wadi Ara") ;
+  WadiKeltWestBank = UsePN (mkPN "Wadi Kelt") ;
+  WarsawPoland = UsePN (mkPN "Warsaw") ;
+  WashingtonDCUnitedStates = UsePN (mkPN "Washington DC.") ;
+  WattyanBahrain = UsePN (mkPN "Wattyan") ;
+  WestBeirutLebanon = UsePN (mkPN "West Beirut") ;
+  XiAnChina = UsePN (mkPN "Xi'an") ;
+  YaAbadWestBank = UsePN (mkPN "Ya'abad") ;
+  YagurJunctionIsrael = UsePN (mkPN "Yagur Junction") ;
+  YehudIsrael = UsePN (mkPN "Yehud") ;
+  YerevanArmenia = UsePN (mkPN "Yerevan") ;
+  YitzharWestBank = UsePN (mkPN "Yitzhar") ;
+  YokotaJapan = UsePN (mkPN "Yokota") ;
+  YopalColombia = UsePN (mkPN "Yopal") ;
+  YuksekovaTurkey = UsePN (mkPN "Yuksekova") ;
+  ZaitaIsrael = UsePN (mkPN "Zaita") ;
+  ZamarYemen = UsePN (mkPN "Zamar") ;
+  ZamboangaPhilippines = UsePN (mkPN "Zamboanga") ;
+  ZaragozaSpain = UsePN (mkPN "Zaragoza") ;
+  ZarauzSpain = UsePN (mkPN "Zarauz") ;
+  ZeifIntersectionWestBank = UsePN (mkPN "Zeif intersection") ;
+  ZekharyaIsrael = UsePN (mkPN "Zekharya") ;
+  ZuliaColombia = UsePN (mkPN "Zulia") ;
+  ZumaiaSpain = UsePN (mkPN "Zumaia") ;
+  ZumarragaSpain = UsePN (mkPN "Zumarraga") ;
+  Burundi = UsePN (mkPN "Burundi") ;
+  CentralAfricanRepublic = UsePN (mkPN "Central African Republic") ;
+  Chad = UsePN (mkPN "Chad") ;
+  DemocraticRepublicOfTheCongo = UsePN (mkPN "Democratic Republic of the Congo") ;
+  Rwanda = UsePN (mkPN "Rwanda") ;
+  Djibouti = UsePN (mkPN "Djibouti") ;
+  Eritrea = UsePN (mkPN "Eritrea") ;
+  Ethiopia = UsePN (mkPN "Ethiopia") ;
+  Kenya = UsePN (mkPN "Kenya") ;
+  Seychelles = UsePN (mkPN "Seychelles") ;
+  Somalia = UsePN (mkPN "Somalia") ;
+  Tanzania = UsePN (mkPN "Tanzania") ;
+  Uganda = UsePN (mkPN "Uganda") ;
+  Algeria = UsePN (mkPN "Algeria") ;
+  Egypt = UsePN (mkPN "Egypt") ;
+  Libya = UsePN (mkPN "Libya") ;
+  Mauritania = UsePN (mkPN "Mauritania") ;
+  Morocco = UsePN (mkPN "Morocco") ;
+  Sudan = UsePN (mkPN "Sudan") ;
+  Tunisia = UsePN (mkPN "Tunisia") ;
+  WesternSahara = UsePN (mkPN "Western Sahara") ;
+  Angola = UsePN (mkPN "Angola") ;
+  BassasDaIndia = UsePN (mkPN "Bassas da India") ;
+  Botswana = UsePN (mkPN "Botswana") ;
+  BouvetIsland = UsePN (mkPN "Bouvet Island") ;
+  Comoros = UsePN (mkPN "Comoros") ;
+  EuropaIsland = UsePN (mkPN "Europa Island") ;
+  GloriosoIslands = UsePN (mkPN "Glorioso Islands") ;
+  HeardIslandAndMcDonaldIslands = UsePN (mkPN "Heard Island and McDonald Islands") ;
+  JuanDeNovaIsland = UsePN (mkPN "Juan de Nova Island") ;
+  Lesotho = UsePN (mkPN "Lesotho" | mkPN "Basutoland") ;
+  Madagascar = UsePN (mkPN "Madagascar") ;
+  Malawi = UsePN (mkPN "Malawi") ;
+  Mauritius = UsePN (mkPN "Mauritius") ;
+  Mayotte = UsePN (mkPN "Mayotte") ;
+  Mozambique = UsePN (mkPN "Mozambique") ;
+  Namibia = UsePN (mkPN "Namibia") ;
+  Reunion = UsePN (mkPN "Reunion") ;
+  SouthAfrica = UsePN (mkPN "South Africa") ;
+  Swaziland = UsePN (mkPN "Swaziland") ;
+  TromelinIsland = UsePN (mkPN "Tromelin Island") ;
+  Zambia = UsePN (mkPN "Zambia") ;
+  Zimbabwe = UsePN (mkPN "Zimbabwe") ;
+  Benin = UsePN (mkPN "Benin") ;
+  BurkinaFaso = UsePN (mkPN "Burkina Faso") ;
+  Cameroon = UsePN (mkPN "Cameroon") ;
+  CapeVerde = UsePN (mkPN "Cape Verde") ;
+  CoteDIvoire = UsePN (mkPN "Cote d'Ivoire") ;
+  EquatorialGuinea = UsePN (mkPN "Equatorial Guinea") ;
+  Gabon = UsePN (mkPN "Gabon") ;
+  Gambia = UsePN (mkPN "Gambia") ;
+  Ghana = UsePN (mkPN "Ghana") ;
+  Guinea = UsePN (mkPN "Guinea") ;
+  GuineaBissau = UsePN (mkPN "Guinea Bissau") ;
+  Liberia = UsePN (mkPN "Liberia") ;
+  Mali = UsePN (mkPN "Mali") ;
+  Niger = UsePN (mkPN "Niger") ;
+  Nigeria = UsePN (mkPN "Nigeria") ;
+  Senegal = UsePN (mkPN "Senegal") ;
+  SierraLeone = UsePN (mkPN "Sierra Leone") ;
+  Togo = UsePN (mkPN "Togo") ;
+  SaintHelena = UsePN (mkPN "Saint Helena") ;
+  Bahrain = UsePN (mkPN "Bahrain") ;
+  Cyprus = UsePN (mkPN "Cyprus") ;
+  GazaStrip = UsePN (mkPN "Gaza Strip") ;
+  Iran = UsePN (mkPN "Iran") ;
+  Iraq = UsePN (mkPN "Iraq") ;
+  Israel = UsePN (mkPN "Israel") ;
+  Jordan = UsePN (mkPN "Jordan") ;
+  Kuwait = UsePN (mkPN "Kuwait") ;
+  Lebanon = UsePN (mkPN "Lebanon") ;
+  Oman = UsePN (mkPN "Oman") ;
+  Qatar = UsePN (mkPN "Qatar") ;
+  SaudiArabia = UsePN (mkPN "Saudi Arabia") ;
+  Syria = UsePN (mkPN "Syria") ;
+  UnitedArabEmirates = UsePN (mkPN "United Arab Emirates") ;
+  WestBank = UsePN (mkPN "West Bank") ;
+  Yemen = UsePN (mkPN "Yemen") ;
+  Austria = UsePN (mkPN "Austria") ;
+  CzechRepublic = UsePN (mkPN "Czech Republic") ;
+  Germany = UsePN (mkPN "Germany") ;
+  Hungary = UsePN (mkPN "Hungary") ;
+  Liechtenstein = UsePN (mkPN "Liechtenstein") ;
+  Poland = UsePN (mkPN "Poland") ;
+  Slovakia = UsePN (mkPN "Slovakia") ;
+  Slovenia = UsePN (mkPN "Slovenia") ;
+  Switzerland = UsePN (mkPN "Switzerland") ;
+  Belarus = UsePN (mkPN "Belarus") ;
+  Estonia = UsePN (mkPN "Estonia") ;
+  Latvia = UsePN (mkPN "Latvia") ;
+  Lithuania = UsePN (mkPN "Lithuania") ;
+  Moldova = UsePN (mkPN "Moldova") ;
+  Ukraine = UsePN (mkPN "Ukraine") ;
+  Denmark = UsePN (mkPN "Denmark") ;
+  FaroeIslands = UsePN (mkPN "Faroe Islands") ;
+  Finland = UsePN (mkPN "Finland") ;
+  Iceland = UsePN (mkPN "Iceland") ;
+  JanMayenIsland = UsePN (mkPN "Jan Mayen Island") ;
+  Norway = UsePN (mkPN "Norway") ;
+  Svalbard = UsePN (mkPN "Svalbard") ;
+  Sweden = UsePN (mkPN "Sweden") ;
+  Greece = UsePN (mkPN "Greece") ;
+  HolySee = UsePN (mkPN "Holy See") ;
+  Italy = UsePN (mkPN "Italy") ;
+  Malta = UsePN (mkPN "Malta") ;
+  SanMarino = UsePN (mkPN "San Marino") ;
+  Belgium = UsePN (mkPN "Belgium") ;
+  France = UsePN (mkPN "France") ;
+  Guernsey = UsePN (mkPN "Guernsey") ;
+  Ireland = UsePN (mkPN "Ireland") ;
+  Jersey = UsePN (mkPN "Jersey") ;
+  Luxembourg = UsePN (mkPN "Luxembourg") ;
+  IsleOfMan = UsePN (mkPN "Isle of Man") ;
+  Monaco = UsePN (mkPN "Monaco") ;
+  Netherlands = UsePN (mkPN "Netherlands") ;
+  UnitedKingdom = UsePN (mkPN "United Kingdom of Great Britain and Northern Ireland" | mkPN "United Kingdom" | mkPN "Great Britain") ;
+  Albania = UsePN (mkPN "Albania") ;
+  BosniaAndHerzegovina = UsePN (mkPN "Bosnia and Herzegovina") ;
+  Bulgaria = UsePN (mkPN "Bulgaria") ;
+  Croatia = UsePN (mkPN "Croatia") ;
+  Macedonia = UsePN (mkPN "Macedonia") ;
+  Romania = UsePN (mkPN "Romania") ;
+  Turkey = UsePN (mkPN "Turkey") ;
+  Andorra = UsePN (mkPN "Andorra") ;
+  Gibraltar = UsePN (mkPN "Gibraltar") ;
+  Portugal = UsePN (mkPN "Portugal") ;
+  Spain = UsePN (mkPN "Spain") ;
+  Bermuda = UsePN (mkPN "Bermuda") ;
+  UnitedStates = UsePN (mkPN "United States") ;
+  Canada = UsePN (mkPN "Canada") ;
+  Greenland = UsePN (mkPN "Greenland") ;
+  SaintPierreAndMiquelon = UsePN (mkPN "Saint Pierre and Miquelon") ;
+  Anguilla = UsePN (mkPN "Anguilla") ;
+  AntiguaAndBarbuda = UsePN (mkPN "Antigua and Barbuda") ;
+  Aruba = UsePN (mkPN "Aruba") ;
+  TheBahamas = UsePN (mkPN "Bahamas") ;
+  Barbados = UsePN (mkPN "Barbados") ;
+  BritishVirginIslands = UsePN (mkPN "British Virgin Islands") ;
+  CaymanIslands = UsePN (mkPN "Cayman Islands") ;
+  Cuba = UsePN (mkPN "Cuba") ;
+  Dominica = UsePN (mkPN "Dominica") ;
+  DominicanRepublic = UsePN (mkPN "Dominican Republic") ;
+  Grenada = UsePN (mkPN "Grenada") ;
+  Guadeloupe = UsePN (mkPN "Guadeloupe") ;
+  Haiti = UsePN (mkPN "Haiti") ;
+  Jamaica = UsePN (mkPN "Jamaica") ;
+  Martinique = UsePN (mkPN "Martinique") ;
+  Montserrat = UsePN (mkPN "Montserrat") ;
+  NavassaIsland = UsePN (mkPN "Navassa Island") ;
+  NetherlandsAntilles = UsePN (mkPN "Netherlands Antilles") ;
+  PuertoRico = UsePN (mkPN "Puerto Rico") ;
+  SaintLucia = UsePN (mkPN "Saint Lucia") ;
+  TurksAndCaicosIslands = UsePN (mkPN "Turks and Caicos Islands") ;
+  VirginIslands = UsePN (mkPN "Virgin Islands") ;
+  Belize = UsePN (mkPN "Belize") ;
+  ClippertonIsland = UsePN (mkPN "Clipperton Island") ;
+  CostaRica = UsePN (mkPN "Costa Rica") ;
+  ElSalvador = UsePN (mkPN "El Salvador") ;
+  Guatemala = UsePN (mkPN "Guatemala") ;
+  Honduras = UsePN (mkPN "Honduras") ;
+  Mexico = UsePN (mkPN "Mexico") ;
+  Nicaragua = UsePN (mkPN "Nicaragua") ;
+  Panama = UsePN (mkPN "Panama") ;
+  Bolivia = UsePN (mkPN "Bolivia") ;
+  Paraguay = UsePN (mkPN "Paraguay") ;
+  Brazil = UsePN (mkPN "Brazil") ;
+  Colombia = UsePN (mkPN "Colombia") ;
+  FrenchGuiana = UsePN (mkPN "French Guiana") ;
+  Guyana = UsePN (mkPN "Guyana") ;
+  Suriname = UsePN (mkPN "Suriname") ;
+  Venezuela = UsePN (mkPN "Venezuela") ;
+  Argentina = UsePN (mkPN "Argentina") ;
+  Chile = UsePN (mkPN "Chile") ;
+  FalklandIslands = UsePN (mkPN "Falkland Islands") ;
+  SouthGeorgiaAndTheSouthSandwichIslands = UsePN (mkPN "South Georgia and the South Sandwich Islands") ;
+  Uruguay = UsePN (mkPN "Uruguay") ;
+  Ecuador = UsePN (mkPN "Ecuador") ;
+  Peru = UsePN (mkPN "Peru") ;
+  Kazakhstan = UsePN (mkPN "Kazakhstan") ;
+  Kyrgyzstan = UsePN (mkPN "Kyrgyzstan") ;
+  Tajikistan = UsePN (mkPN "Tajikistan") ;
+  Turkmenistan = UsePN (mkPN "Turkmenistan") ;
+  Uzbekistan = UsePN (mkPN "Uzbekistan") ;
+  China = UsePN (mkPN "China") ;
+  HongKong = UsePN (mkPN "Hong Kong") ;
+  Japan = UsePN (mkPN "Japan") ;
+  NorthKorea = UsePN (mkPN "NorthKorea") ;
+  SouthKorea = UsePN (mkPN "SouthKorea") ;
+  Macau = UsePN (mkPN "Macau") ;
+  Taiwan = UsePN (mkPN "Taiwan" | mkPN "Republic of China") ;
+  Mongolia = UsePN (mkPN "Mongolia") ;
+  Russia = UsePN (mkPN "Russia") ;
+  Afghanistan = UsePN (mkPN "Afghanistan") ;
+  Bangladesh = UsePN (mkPN "Bangladesh") ;
+  Bhutan = UsePN (mkPN "Bhutan") ;
+  BritishIndianOceanTerritory = UsePN (mkPN "British Indian Ocean Territory") ;
+  India = UsePN (mkPN "India") ;
+  Maldives = UsePN (mkPN "Maldives") ;
+  Nepal = UsePN (mkPN "Nepal") ;
+  Pakistan = UsePN (mkPN "Pakistan") ;
+  SriLanka = UsePN (mkPN "Sri Lanka") ;
+  FrenchSouthernAndAntarcticLands = UsePN (mkPN "French Southern and Antarctic Lands") ;
+  AshmoreAndCartierIslands = UsePN (mkPN "Ashmore and Cartier Islands") ;
+  Brunei = UsePN (mkPN "Brunei") ;
+  Cambodia = UsePN (mkPN "Cambodia") ;
+  ChristmasIsland = UsePN (mkPN "Christmas Island") ;
+  CocosKeelingIslands = UsePN (mkPN "Cocos Keeling Islands") ;
+  EastTimor = UsePN (mkPN "East Timor") ;
+  Indonesia = UsePN (mkPN "Indonesia") ;
+  Laos = UsePN (mkPN "Laos") ;
+  Malaysia = UsePN (mkPN "Malaysia") ;
+  Myanmar = UsePN (mkPN "Myanmar") ;
+  PapuaNewGuinea = UsePN (mkPN "Papua New Guinea") ;
+  ParacelIslands = UsePN (mkPN "Paracel Islands") ;
+  Philippines = UsePN (mkPN "Philippines") ;
+  Singapore = UsePN (mkPN "Singapore") ;
+  SpratlyIslands = UsePN (mkPN "Spratly Islands") ;
+  Thailand = UsePN (mkPN "Thailand") ;
+  Vietnam = UsePN (mkPN "Vietnam") ;
+  Armenia = UsePN (mkPN "Armenia") ;
+  Azerbaijan = UsePN (mkPN "Azerbaijan") ;
+  RepublicOfGeorgia = UsePN (mkPN "Republic Of Georgia") ;
+  AmericanSamoa = UsePN (mkPN "American Samoa") ;
+  Australia = UsePN (mkPN "Australia") ;
+  BakerIsland = UsePN (mkPN "Baker Island") ;
+  CookIslands = UsePN (mkPN "Cook Islands") ;
+  CoralSeaIslands = UsePN (mkPN "Coral Sea Islands") ;
+  Fiji = UsePN (mkPN "Fiji") ;
+  FrenchPolynesia = UsePN (mkPN "French Polynesia") ;
+  Guam = UsePN (mkPN "Guam") ;
+  HowlandIsland = UsePN (mkPN "Howland Island") ;
+  JarvisIsland = UsePN (mkPN "Jarvis Island") ;
+  JohnstonAtoll = UsePN (mkPN "Johnston Atoll") ;
+  KingmanReef = UsePN (mkPN "Kingman Reef") ;
+  Kiribati = UsePN (mkPN "Kiribati") ;
+  MarshallIslands = UsePN (mkPN "Marshall Islands") ;
+  Micronesia = UsePN (mkPN "Micronesia") ;
+  MidwayIslands = UsePN (mkPN "Midway Islands") ;
+  Nauru = UsePN (mkPN "Nauru") ;
+  NewCaledonia = UsePN (mkPN "New Caledonia") ;
+  NewZealand = UsePN (mkPN "New Zealand") ;
+  Niue = UsePN (mkPN "Niue") ;
+  NorfolkIsland = UsePN (mkPN "Norfolk Island") ;
+  NorthernMarianaIslands = UsePN (mkPN "Northern Mariana Islands") ;
+  Palau = UsePN (mkPN "Palau") ;
+  PalmyraAtoll = UsePN (mkPN "Palmyra Atoll") ;
+  PitcairnIslands = UsePN (mkPN "Pitcairn Islands") ;
+  Samoa = UsePN (mkPN "Samoa") ;
+  SolomonIslands = UsePN (mkPN "Solomon Islands") ;
+  Tokelau = UsePN (mkPN "Tokelau") ;
+  Tonga = UsePN (mkPN "Tonga") ;
+  Tuvalu = UsePN (mkPN "Tuvalu") ;
+  Vanuatu = UsePN (mkPN "Vanuatu") ;
+  WakeIsland = UsePN (mkPN "Wake Island") ;
+  WallisAndFutuna = UsePN (mkPN "Wallis and Futuna") ;
+  Zaire = UsePN (mkPN "Zaire") ;
+  
+};
diff --git a/examples/SUMO/CountriesAndRegionsRon.gf b/examples/SUMO/CountriesAndRegionsRon.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/CountriesAndRegionsRon.gf
@@ -0,0 +1,269 @@
+--# -path=.:englishExtended
+concrete CountriesAndRegionsRon of CountriesAndRegions = MidLevelOntologyRon ** open ParadigmsRon,NounRon  in {
+
+flags
+  coding = utf8 ;
+  
+lin
+  Afghanistan = UsePN (mkPN "Afghanistan" | mkPN "Afganistan") ;
+  Albania = UsePN (mkPN "Albania") ;
+  Algeria = UsePN (mkPN "Algeria") ;
+  AlgiersAlgeria = UsePN (mkPN "Alger") ;
+  AmericanSamoa = UsePN (mkPN "Samoa Americană") ;
+  AmmanJordan = UsePN (mkPN "Amman") ;
+  Andorra = UsePN (mkPN "Andorra" | mkPN "Andora") ;
+  Angola = UsePN (mkPN "Angola") ;
+  Anguilla = UsePN (mkPN "Anguilla") ;
+  AnkaraTurkey = UsePN (mkPN "Ankara") ;
+  AntiguaAndBarbuda = UsePN (mkPN "Antigua şi Barbuda") ;
+  Argentina = UsePN (mkPN "Argentina") ;
+  ArmaghNorthernIreland = UsePN (mkPN "Armagh") ;
+  Armenia = UsePN (mkPN "Armenia") ;
+  Aruba = UsePN (mkPN "Aruba") ;
+  AshdodIsrael = UsePN (mkPN "Aşdod") ;
+  AskelonIsrael = UsePN (mkPN "Aşkelon") ;
+  AsmaraEritrea = UsePN (mkPN "Asmara") ;
+  AswanEgypt = UsePN (mkPN "Assuan" | mkPN "Aswan") ;
+  AthensGreece = UsePN (mkPN "Atena") ;
+  Australia = UsePN (mkPN "Australia") ;
+  Austria = UsePN (mkPN "Austria") ;
+  Azerbaijan = UsePN (mkPN "Azerbaijan" | mkPN "Azerbaidjan") ;
+  Bahamas = UsePN (mkPN "Bahamas") ;
+  Bahrain = UsePN (mkPN "Bahrain") ;
+  BangkokThailand = UsePN (mkPN "Bangkok") ;
+  Bangladesh = UsePN (mkPN "Bangladeş" | mkPN "Bangladesh") ;
+  Barbados = UsePN (mkPN "Barbados") ;
+  BeirutLebanon = UsePN (mkPN "Beirut") ;
+  Belarus = UsePN (mkPN "Belarus" | mkPN "Bielorusia") ;
+  BelfastNorthernIreland = UsePN (mkPN "Belfast") ;
+  Belgium = UsePN (mkPN "Belgia") ;
+  Belize = UsePN (mkPN "Belize") ;
+  Benin = UsePN (mkPN "Benin") ;
+  Bermuda = UsePN (mkPN "Insulele Bermude") ;
+  Bhutan = UsePN (mkPN "Bhutan") ;
+  Bolivia = UsePN (mkPN "Bolivia") ;
+  Botswana = UsePN (mkPN "Botswana") ;
+  BouvetIsland = UsePN (mkPN "Insula Bouvet") ;
+  Brazil = UsePN (mkPN "Brazilia") ;
+  BritishIndianOceanTerritory = UsePN (mkPN "Teritoriile Britanice din Oceanul Indian") ;
+  BritishVirginIslands = UsePN (mkPN "Insulele Virgine, Britanice") ;
+  Brunei = UsePN (mkPN "Brunei") ;
+  BrusselsBelgium = UsePN (mkPN "Bruxelles") ;
+  BucharestRomania = UsePN (mkPN "Bucureşti") ;
+  Bulgaria = UsePN (mkPN "Bulgaria") ;
+  BurkinaFaso = UsePN (mkPN "Burkina Fasso" | mkPN "Burkina Faso") ;
+  Burundi = UsePN (mkPN "Burundi") ;
+  CairoEgypt = UsePN (mkPN "Cairo") ;
+  Cambodia = UsePN (mkPN "Cambodgia") ;
+  Cameroon = UsePN (mkPN "Camerun") ;
+  Canada = UsePN (mkPN "Canada") ;
+  CapeVerde = UsePN (mkPN "Capul Verde") ;
+  CaymanIslands = UsePN (mkPN "Insulele Cayman") ;
+  CentralAfricanRepublic = UsePN (mkPN "Republica Central Africană" | mkPN "Republica Centrafricană") ;
+  Chad = UsePN (mkPN "Ciad") ;
+  Chile = UsePN (mkPN "Chile") ;
+  China = UsePN (mkPN "Republica Populară Chineză" | mkPN "China") ;
+  ChristmasIsland = UsePN (mkPN "Insula Christmas") ;
+  CocosKeelingIslands = UsePN (mkPN "Insulele Cocos (Keeling)") ;
+  Colombia = UsePN (mkPN "Columbia") ;
+  Comoros = UsePN (mkPN "Comore" | mkPN "Comoros") ;
+  Congo = UsePN (mkPN "Republica Congo" | mkPN "Congo") ;
+  CookIslands = UsePN (mkPN "Insulele Cook") ;
+  CopenhagenDenmark = UsePN (mkPN "Copenhaga") ;
+  CostaRica = UsePN (mkPN "Costa Rica") ;
+  Croatia = UsePN (mkPN "Croaţia") ;
+  Cuba = UsePN (mkPN "Cuba") ;
+  Cyprus = UsePN (mkPN "Cipru") ;
+  CzechRepublic = UsePN (mkPN "Republica Cehă" | mkPN "Cehia") ;
+  DelhiIndia = UsePN (mkPN "Delhi") ;
+  DemocraticRepublicOfTheCongo = UsePN (mkPN "Zair" | mkPN "Congo, Republica Democratică" | mkPN "Republica Democrată Congo") ;
+  Denmark = UsePN (mkPN "Danemarca") ;
+  Djibouti = UsePN (mkPN "Djibouti") ;
+  Dominica = UsePN (mkPN "Dominica") ;
+  DominicanRepublic = UsePN (mkPN "Republica Dominicană") ;
+  DortmundGermany = UsePN (mkPN "Dortmund") ;
+  DublinIreland = UsePN (mkPN "Dublin") ;
+  DuesseldorfGermany = UsePN (mkPN "Düsseldorf") ;
+  EastJerusalemIsrael = UsePN (mkPN "Ierusalim") ;
+  EastTimor = UsePN (mkPN "Timorul de Est") ;
+  Ecuador = UsePN (mkPN "Ecuador") ;
+  Egypt = UsePN (mkPN "Egipt") ;
+  ElSalvador = UsePN (mkPN "El Salvador") ;
+  EquatorialGuinea = UsePN (mkPN "Guineea Ecuatorială") ;
+  Eritrea = UsePN (mkPN "Eritreea" | mkPN "Eritrea") ;
+  Estonia = UsePN (mkPN "Estonia") ;
+  Ethiopia = UsePN (mkPN "Etiopia") ;
+  FalklandIslands = UsePN (mkPN "Insulele Falkland") ;
+  FaroeIslands = UsePN (mkPN "Insulele Feroe" | mkPN "Insulele Faroe") ;
+  Fiji = UsePN (mkPN "Fiji") ;
+  Finland = UsePN (mkPN "Finlanda") ;
+  France = UsePN (mkPN "Franţa") ;
+  FrenchGuiana = UsePN (mkPN "Guiana Franceză") ;
+  Gabon = UsePN (mkPN "Gabon") ;
+  Gambia = UsePN (mkPN "Gambia") ;
+  Georgia = UsePN (mkPN "Georgia") ;
+  Germany = UsePN (mkPN "Germania") ;
+  Ghana = UsePN (mkPN "Ghana") ;
+  Gibraltar = UsePN (mkPN "Gibraltar") ;
+  GrazAustria = UsePN (mkPN "Graz") ;
+  Greece = UsePN (mkPN "Grecia") ;
+  Greenland = UsePN (mkPN "Groenlanda") ;
+  Grenada = UsePN (mkPN "Grenada") ;
+  Guadeloupe = UsePN (mkPN "Guadeloupe") ;
+  Guam = UsePN (mkPN "Guam") ;
+  Guatemala = UsePN (mkPN "Guatemala") ;
+  Guernsey = UsePN (mkPN "Guernsey") ;
+  Guinea = UsePN (mkPN "Guinea" | mkPN "Guineea") ;
+  Guyana = UsePN (mkPN "Guiana" | mkPN "Guyana") ;
+  HaderaIsrael = UsePN (mkPN "Hadera") ;
+  HaifaIsrael = UsePN (mkPN "Haifa") ;
+  Haiti = UsePN (mkPN "Haiti") ;
+  HavanaCuba = UsePN (mkPN "Havana") ;
+  HilversumNetherlands = UsePN (mkPN "Hilversum") ;
+  Honduras = UsePN (mkPN "Honduras") ;
+  HongKong = UsePN (mkPN "Hong Kong") ;
+  Hungary = UsePN (mkPN "Ungaria") ;
+  Iceland = UsePN (mkPN "Islanda") ;
+  India = UsePN (mkPN "India") ;
+  Indonesia = UsePN (mkPN "Indonezia") ;
+  Iran = UsePN (mkPN "Iran (Republica islamică)" | mkPN "Iran") ;
+  Iraq = UsePN (mkPN "Irak" | mkPN "Iraq") ;
+  Ireland = UsePN (mkPN "Republica Irlanda" | mkPN "Irlanda") ;
+  Israel = UsePN (mkPN "Israel") ;
+  Italy = UsePN (mkPN "Italia") ;
+  Jamaica = UsePN (mkPN "Jamaica") ;
+  Japan = UsePN (mkPN "Japonia") ;
+  Jersey = UsePN (mkPN "Insula Jersey") ;
+  JerusalemIsrael = UsePN (mkPN "Ierusalim") ;
+  Jordan = UsePN (mkPN "Iordania") ;
+  Kazakhstan = UsePN (mkPN "Kazahstan") ;
+  Kenya = UsePN (mkPN "Kenya") ;
+  Kiribati = UsePN (mkPN "Kiribati") ;
+  Kuwait = UsePN (mkPN "Kuweit") ;
+  Kyrgyzstan = UsePN (mkPN "Kârgâzstan" | mkPN "Kirghizia") ;
+  LahorePakistan = UsePN (mkPN "Lahore") ;
+  Laos = UsePN (mkPN "Lao, Republica Democratică Populară" | mkPN "Laos") ;
+  Latvia = UsePN (mkPN "Letonia") ;
+  Lebanon = UsePN (mkPN "Liban") ;
+  Lesotho = UsePN (mkPN "Lesotho") ;
+  Liberia = UsePN (mkPN "Liberia") ;
+  Libya = UsePN (mkPN "Libia, Jamahiriya Arabă" | mkPN "Libia") ;
+  Liechtenstein = UsePN (mkPN "Liechtenstein") ;
+  Lithuania = UsePN (mkPN "Lituania") ;
+  LondonUnitedKingdom = UsePN (mkPN "Londra") ;
+  LosAngelesUnitedStates = UsePN (mkPN "Los Angeles") ;
+  Luxembourg = UsePN (mkPN "Luxemburg") ;
+  Macedonia = UsePN (mkPN "Fosta Republică Iugoslavă Macedonia" | mkPN "Republica Macedonia" | mkPN "Macedonia") ;
+  Madagascar = UsePN (mkPN "Madagascar") ;
+  Malawi = UsePN (mkPN "Malawi") ;
+  Malaysia = UsePN (mkPN "Malaiezia" | mkPN "Malaysia" | mkPN "Malaezia") ;
+  Maldives = UsePN (mkPN "Maldive") ;
+  Mali = UsePN (mkPN "Mali") ;
+  Malta = UsePN (mkPN "Insula Malta" | mkPN "Malta") ;
+  ManamaBahrain = UsePN (mkPN "Manama") ;
+  ManchesterUnitedKingdom = UsePN (mkPN "Manchester") ;
+  MarshallIslands = UsePN (mkPN "Insulele Marshall") ;
+  Martinique = UsePN (mkPN "Martinica") ;
+  Mauritania = UsePN (mkPN "Mauritania") ;
+  Mauritius = UsePN (mkPN "Mauriţius" | mkPN "Mauritius") ;
+  Mayotte = UsePN (mkPN "Mayotte") ;
+  MeccaSaudiArabia = UsePN (mkPN "Mecca") ;
+  Mexico = UsePN (mkPN "Mexic") ;
+  Micronesia = UsePN (mkPN "Micronezia, Republica Federală") ;
+  Moldova = UsePN (mkPN "Moldova, Republica" | mkPN "Republica Moldova") ;
+  Monaco = UsePN (mkPN "Monaco") ;
+  Mongolia = UsePN (mkPN "Mongolia") ;
+  Montserrat = UsePN (mkPN "Montserrat") ;
+  Morocco = UsePN (mkPN "Maroc") ;
+  MoscowRussia = UsePN (mkPN "Moscova") ;
+  Mozambique = UsePN (mkPN "Mozambic") ;
+  Myanmar = UsePN (mkPN "Myanmar") ;
+  NairobiKenya = UsePN (mkPN "Nairobi") ;
+  Namibia = UsePN (mkPN "Namibia") ;
+  Nauru = UsePN (mkPN "Nauru") ;
+  Nepal = UsePN (mkPN "Nepal") ;
+  NetanyaIsrael = UsePN (mkPN "Netania" | mkPN "Natania") ;
+  Netherlands = UsePN (mkPN "Ţările de Jos" | mkPN "Olanda") ;
+  NetherlandsAntilles = UsePN (mkPN "Antilele Olandeze") ;
+  NewCaledonia = UsePN (mkPN "Noua Caledonie") ;
+  NewDelhiIndia = UsePN (mkPN "New Delhi") ;
+  NewYorkCityUnitedStates = UsePN (mkPN "New York" | mkPN "New York City") ;
+  NewZealand = UsePN (mkPN "Noua Zeelandă") ;
+  Nicaragua = UsePN (mkPN "Nicaragua") ;
+  Niger = UsePN (mkPN "Niger") ;
+  Nigeria = UsePN (mkPN "Nigeria") ;
+  Niue = UsePN (mkPN "Niue") ;
+  NorfolkIsland = UsePN (mkPN "Insula Norfolk") ;
+  NorthKorea = UsePN (mkPN "Coreea de Nord") ;
+  NorthernMarianaIslands = UsePN (mkPN "Insulele Northern Mariana") ;
+  Norway = UsePN (mkPN "Norvegia") ;
+  Oman = UsePN (mkPN "Oman") ;
+  OranAlgeria = UsePN (mkPN "Oran") ;
+  Pakistan = UsePN (mkPN "Pakistan") ;
+  Palau = UsePN (mkPN "Palau") ;
+  Panama = UsePN (mkPN "Panama") ;
+  PapuaNewGuinea = UsePN (mkPN "Papua Noua Guinee") ;
+  Paraguay = UsePN (mkPN "Paraguay") ;
+  Peru = UsePN (mkPN "Peru") ;
+  Philippines = UsePN (mkPN "Filipine") ;
+  Poland = UsePN (mkPN "Polonia") ;
+  Portugal = UsePN (mkPN "Portugalia") ;
+  PuertoRico = UsePN (mkPN "Porto Rico") ;
+  Qatar = UsePN (mkPN "Qatar") ;
+  Reunion = UsePN (mkPN "Reunion") ;
+  RoermondNetherlands = UsePN (mkPN "Roermond") ;
+  Romania = UsePN (mkPN "România") ;
+  Russia = UsePN (mkPN "Federația Rusă" | mkPN "Rusia") ;
+  Rwanda = UsePN (mkPN "Ruanda" | mkPN "Rwanda") ;
+  SaintHelena = UsePN (mkPN "Saint Helena") ;
+  SaintLucia = UsePN (mkPN "Saint Lucia") ;
+  Samoa = UsePN (mkPN "Samoa") ;
+  SanMarino = UsePN (mkPN "San Marino") ;
+  SantiagoChile = UsePN (mkPN "Santiago de Chile") ;
+  SaudiArabia = UsePN (mkPN "Arabia Saudită") ;
+  Senegal = UsePN (mkPN "Senegal") ;
+  Seychelles = UsePN (mkPN "Seychelles") ;
+  SierraLeone = UsePN (mkPN "Sierra Leone") ;
+  Singapore = UsePN (mkPN "Singapore") ;
+  Slovakia = UsePN (mkPN "Slovacia") ;
+  Slovenia = UsePN (mkPN "Slovenia") ;
+  SolomonIslands = UsePN (mkPN "Insulele Solomon") ;
+  Somalia = UsePN (mkPN "Somalia") ;
+  SouthAfrica = UsePN (mkPN "Africa de Sud") ;
+  SouthKorea = UsePN (mkPN "Coreea de Sud") ;
+  Spain = UsePN (mkPN "Spania") ;
+  SriLanka = UsePN (mkPN "Sri Lanka") ;
+  Sudan = UsePN (mkPN "Sudan") ;
+  Suriname = UsePN (mkPN "Surinam") ;
+  Swaziland = UsePN (mkPN "Swaziland") ;
+  Sweden = UsePN (mkPN "Suedia") ;
+  Switzerland = UsePN (mkPN "Elveţia" | mkPN "Eleveţia") ;
+  Syria = UsePN (mkPN "Siria") ;
+  Taiwan = UsePN (mkPN "Taiwan") ;
+  Tajikistan = UsePN (mkPN "Tajikistan" | mkPN "Tadjikistan") ;
+  Tanzania = UsePN (mkPN "Tanzania") ;
+  TelAvivIsrael = UsePN (mkPN "Tel Aviv") ;
+  Thailand = UsePN (mkPN "Thailanda" | mkPN "Tailanda") ;
+  Togo = UsePN (mkPN "Togo") ;
+  Tokelau = UsePN (mkPN "Tokelau") ;
+  Tonga = UsePN (mkPN "Tonga") ;
+  Tunisia = UsePN (mkPN "Tunisia") ;
+  Turkey = UsePN (mkPN "Turcia") ;
+  Turkmenistan = UsePN (mkPN "Turkmenia" | mkPN "Turkmenistan") ;
+  Tuvalu = UsePN (mkPN "Tuvalu") ;
+  Uganda = UsePN (mkPN "Uganda") ;
+  Ukraine = UsePN (mkPN "Ucraina") ;
+  UnitedArabEmirates = UsePN (mkPN "Emiratele Arabe Unite") ;
+  UnitedKingdom = UsePN (mkPN "Regatul Unit" | mkPN "Marea Britanie") ;
+  UnitedStates = UsePN (mkPN "Statele Unite" | mkPN "Statele Unite ale Americii") ;
+  Uruguay = UsePN (mkPN "Uruguay") ;
+  Uzbekistan = UsePN (mkPN "Uzbekistan") ;
+  Vanuatu = UsePN (mkPN "Vanuatu") ;
+  Venezuela = UsePN (mkPN "Venezuela") ;
+  Vietnam = UsePN (mkPN "Vietnam") ;
+  WesternSahara = UsePN (mkPN "Sahara de Vest") ;
+  Yemen = UsePN (mkPN "Yemen") ;
+  Zambia = UsePN (mkPN "Zambia") ;
+  Zimbabwe = UsePN (mkPN "Zimbabwe") ;
+
+};
diff --git a/examples/SUMO/Economy.gf b/examples/SUMO/Economy.gf
--- a/examples/SUMO/Economy.gf
+++ b/examples/SUMO/Economy.gf
@@ -1,2373 +1,2328 @@
 -- # -path=.:englishExtended
-abstract Economy = open Merge, Transportation, Mid_level_ontology, Geography in {
-
-
-
---  AdvancedDevelopingCountry 
--- is an Attribute used to describe a LessDevelopedCountry (LDC) 
--- that is undergoing rapid industrial development. Also called 'newly 
--- industrializing economy' (or 'country').
-fun AdvancedDevelopingCountry : Ind EconomicDevelopmentLevel ;
-
-
--- AdvancedEconomy is an Attribute 
--- used to represent the InternationalMonetaryFund's top category of 
--- development levels (AdvancedEconomy,, countries in transition, and 
--- developing countries. Generally (but not exactly) corresponds with 
--- DevelopedCountry classification used by UnitedNations agencies.
-fun AdvancedEconomy : Ind IMFDevelopmentLevel ;
-
-
-fun AfghanAfghani : Ind UnitOfCurrency ;
-
-fun AfghanAfghaniCoin : Class ;
-fun AfghanAfghaniCoin_Class : SubClass AfghanAfghaniCoin CurrencyCoin ;
-fun AgriculturalProduct_Product : SubClass AgriculturalProduct Product ;
-
-fun AgriculturalSector : Ind IndustryAttribute ;
-
-fun AgricultureBasedEconomy : Ind FinancialSectorAttribute ;
-
--- (AgricultureFn ?PRODUCT) denotes the 
--- subclass of Agriculture processes in which the AgriculturalProduct 
--- ?PRODUCT is cultivated.
-fun AgricultureFn: Desc AgriculturalProduct -> Desc Agriculture ;
-
-
-fun AgricultureForestryFishingAndHunting : Ind IndustryAttribute ;
-
-fun AlbanianLek : Ind UnitOfCurrency ;
-
-fun Alfalfa : Class ;
-fun Alfalfa_Class : SubClass Alfalfa (both Fodder (both Plant PlantAgriculturalProduct)) ;
-
-fun AlgerianDinar : Ind UnitOfCurrency ;
-
-fun AlmondNut : Class ;
-fun AlmondNut_Class : SubClass AlmondNut EdibleNut ;
--- Aloes is the class of 
--- PlantAgriculturalProducts that are dried juice of 
--- the Aloe plant.
-fun Aloes : Class ;
-fun Aloes_Class : SubClass Aloes PlantAgriculturalProduct ;
-
--- Alumina is the naturally occurring oxide 
--- of aluminum which is found in corundum and bauxite.
-fun Alumina : Class ;
-fun Alumina_Class : SubClass Alumina CompoundSubstance ;
-
-fun AluminumMetal : Class ;
-fun AluminumMetal_Class : SubClass AluminumMetal MetalProduct ;
-fun AngolanKwanza : Ind UnitOfCurrency ;
-
--- AnimalSkin is the subclass of 
--- BodyCovering that includes the skins, or parts of skins, 
--- of animals.
-fun AnimalSkin : Class ;
-fun AnimalSkin_Class : SubClass AnimalSkin BodyCovering ;
-
-fun Apple_Fruit : SubClass Apple Fruit ;
-
-fun Apple_GroceryProduce : SubClass Apple GroceryProduce ;
-
-fun ArgentineAustral : Ind UnitOfCurrency ;
-
-fun ArmenianDram : Ind UnitOfCurrency ;
-
--- Asphalt is a highly viscous liquid that occurs 
--- naturally in most crude petroleums. Asphalt can be separated from the 
--- other components in crude oil (such as naphtha, gasoline and diesel) by 
--- the process of fractional distillation, usually under vacuum conditions. 
--- Both tars and asphalts are classified as bitumens, a classification that 
--- includes all materials entirely soluble in carbon disulphide. Asphalt is 
--- commonly used in roofing shingles, and combined with mineral aggregate to 
--- make asphalt concrete for making roads. (definition from Wikipedia)
-fun Asphalt : Class ;
-fun Asphalt_Class : SubClass Asphalt RefinedPetroleumProduct ;
-
-fun AsphaltPavingRoofingAndSaturatedMaterialsManufacturing : Ind IndustryAttribute ;
-
-fun AustralianDollar : Ind UnitOfCurrency ;
-
-fun AustrianSchilling : Ind UnitOfCurrency ;
-
-fun Avocado_GroceryProduce : SubClass Avocado GroceryProduce ;
-
-fun Avocado_TropicalFruit : SubClass Avocado TropicalFruit ;
-
-fun AzerbaijaniManat : Ind UnitOfCurrency ;
-
-fun BahamianDollar : Ind UnitOfCurrency ;
-
-fun BahrainianDinar : Ind UnitOfCurrency ;
-
-fun BalsaWood : Class ;
-fun BalsaWood_Class : SubClass BalsaWood WoodProduct ;
-fun Banana : Class ;
-fun Banana_Class : SubClass Banana (both GroceryProduce TropicalFruit) ;
-
-fun BangladeshiTaka : Ind UnitOfCurrency ;
-
-fun BarbadosDollar : Ind UnitOfCurrency ;
-
-fun BarleyFarming : Ind IndustryAttribute ;
-
-fun BarleyGrain : Class ;
-fun BarleyGrain_Class : SubClass BarleyGrain CerealGrain ;
--- Bauxite is an impure mixture of earthy 
--- hydrous aluminum oxides and hydroxides that is the principal 
--- source of aluminum.
-fun Bauxite : Class ;
-fun Bauxite_Class : SubClass Bauxite (both MiningProduct Mixture) ;
-
-
-fun Bean : Class ;
-fun Bean_Class : SubClass Bean Legume ;
-fun BelarusianRubel : Ind UnitOfCurrency ;
-
-fun BelgianFranc : Ind UnitOfCurrency ;
-
-fun BelizeDollar : Ind UnitOfCurrency ;
-
-fun BeninFranc : Ind UnitOfCurrency ;
-
-fun BermudaDollar : Ind UnitOfCurrency ;
-
-fun Berry : Class ;
-fun Berry_Class : SubClass Berry (both Fruit GroceryProduce) ;
-
--- BeverageProduct is the class of products 
--- that are Beverages, packaged or unpackaged.
-fun BeverageProduct : Class ;
-fun BeverageProduct_Class : SubClass BeverageProduct Product ;
-
-fun BhutaneseNgultrum : Ind UnitOfCurrency ;
-
-fun BlackPepper : Class ;
-fun BlackPepper_Class : SubClass BlackPepper Spice ;
-fun BolivianBoliviano : Ind UnitOfCurrency ;
-
-fun BotswanaPula : Ind UnitOfCurrency ;
-
-fun BrazilianReal : Ind UnitOfCurrency ;
-
-fun Breadfruit : Class ;
-fun Breadfruit_Class : SubClass Breadfruit (both GroceryProduce TropicalFruit) ;
-
-fun BritishPound : Ind UnitOfCurrency ;
-
-fun BritishPoundCoin : Class ;
-fun BritishPoundCoin_Class : SubClass BritishPoundCoin CurrencyCoin ;
-fun BruneiDollar : Ind UnitOfCurrency ;
-
-fun BulgarianLev : Ind UnitOfCurrency ;
-
-fun BurkinaFasoFranc : Ind UnitOfCurrency ;
-
-fun BurundiFranc : Ind UnitOfCurrency ;
-
-fun Cabbage : Class ;
-fun Cabbage_Class : SubClass Cabbage (both GroceryProduce Vegetable) ;
-
-fun CambodianRiel : Ind UnitOfCurrency ;
-
-fun Camel : Class ;
-fun Camel_Class : SubClass Camel (both Livestock Mammal) ;
-
-fun CameroonFranc : Ind UnitOfCurrency ;
-
-fun CanadianDollar : Ind UnitOfCurrency ;
-
-fun CanadianDollarCoin : Class ;
-fun CanadianDollarCoin_Class : SubClass CanadianDollarCoin CurrencyCoin ;
-
-fun Cannabis : Class ;
-fun Cannabis_Class : SubClass Cannabis PlantAgriculturalProduct ;
-
-fun CapeVerdeEscudo : Ind UnitOfCurrency ;
-
--- CapitalGoods are those that are used 
--- in the production of other Products. For example, raw materials 
--- from which end products are manufactured, or machines and other 
--- structures used in the production process.
-fun CapitalGood : Class ;
-fun CapitalGood_Class : SubClass CapitalGood Product ;
-
--- CapitalistEconomy is the 
--- Attribute used to characterize a country whose economy is based 
--- on private ownership of the means of production and distribution, 
--- and on private accumulation of capital.
-fun CapitalistEconomy : Ind EconomicSystemAttribute ;
-
-
-fun Cardamom : Class ;
-fun Cardamom_Class : SubClass Cardamom Spice ;
-fun Carrot : Class ;
-fun Carrot_Class : SubClass Carrot (both GroceryProduce RootVegetable) ;
-
-fun CashewNut : Class ;
-fun CashewNut_Class : SubClass CashewNut EdibleNut ;
-fun Cassava : Class ;
-fun Cassava_Class : SubClass Cassava (both GroceryProduce RootVegetable) ;
-
-fun Cattle : Class ;
-fun Cattle_Class : SubClass Cattle (both HoofedMammal Livestock) ;
-
-fun Cauliflower : Class ;
-fun Cauliflower_Class : SubClass Cauliflower (both GroceryProduce Vegetable) ;
-
-fun Caviar : Class ;
-fun Caviar_Class : SubClass Caviar FishRoe ;
-fun CaymanIslandsDollar : Ind UnitOfCurrency ;
-
--- Cement is a subclass of CompoundSubstance 
--- whose instances may contain various minerals or ores, prepared by 
--- heating and pulverizing, and used in binding Concrete or in laying 
--- brick or stone.
-fun Cement : Class ;
-fun Cement_Class : SubClass Cement (both CompoundSubstance ManufacturedProduct) ;
-
-
-fun CentralAfricanRepublicFranc : Ind UnitOfCurrency ;
-
--- CentrallyPlannedEconomy 
--- is a term used mainly to describe communist or formerly communist 
--- states, many of which are now evolving away from command economies 
--- towards market_oriented systems. Also known as a 'command economy'.
-fun CentrallyPlannedEconomy : Ind EconomicSystemAttribute ;
-
-
-fun CerealGrainFarming : Ind IndustryAttribute ;
-
-fun CerealGrain_PlantAgriculturalProduct : SubClass CerealGrain PlantAgriculturalProduct ;
-
-fun CerealGrain_Vegetable : SubClass CerealGrain Vegetable ;
-
-fun CerealGrass : Class ;
-fun CerealGrass_Class : SubClass CerealGrass Grass ;
-fun ChadianFranc : Ind UnitOfCurrency ;
-
-fun Cheese : Class ;
-fun Cheese_Class : SubClass Cheese (both DairyProduct PreparedFood) ;
-
--- ChemicalProduct is the subclass 
--- of Product comprising all chemical compounds that are end products 
--- or industrial products used in the manufacture of end products.
-fun ChemicalProduct : Class ;
-fun ChemicalProduct_Class : SubClass ChemicalProduct (both CompoundSubstance ManufacturedProduct) ;
-
-
-fun ChileanPeso : Ind UnitOfCurrency ;
-
-fun ChineseYuan : Ind UnitOfCurrency ;
-
-fun Chrysanthemum : Class ;
-fun Chrysanthemum_Class : SubClass Chrysanthemum (both FloweringPlant PlantAgriculturalProduct) ;
-
-fun Cinnamon : Class ;
-fun Cinnamon_Class : SubClass Cinnamon Spice ;
-fun CitrusFruit : Class ;
-fun CitrusFruit_Class : SubClass CitrusFruit (both Fruit GroceryProduce) ;
-
-fun ClothesDryer : Class ;
-fun ClothesDryer_Class : SubClass ClothesDryer MajorAppliance ;
-fun ClothesWashingMachine : Class ;
-fun ClothesWashingMachine_Class : SubClass ClothesWashingMachine MajorAppliance ;
-fun Clove : Class ;
-fun Clove_Class : SubClass Clove Spice ;
-fun Clover : Class ;
-fun Clover_Class : SubClass Clover (both Fodder (both Plant PlantAgriculturalProduct)) ;
-
-fun CoalIndustry : Ind IndustryAttribute ;
-
-fun CoalMining : Ind IndustryAttribute ;
-
-fun CoalProductsManufacturing : Ind IndustryAttribute ;
-
--- Coca is the class of 
--- PlantAgriculturalProducts consisting of the parts, 
--- especially leaves, of the coca plant. Coca leaves 
--- are the source of Cocaine.
-fun Coca : Class ;
-fun Coca_Class : SubClass Coca PlantAgriculturalProduct ;
-
-fun Cocaine : Class ;
-fun Cocaine_Class : SubClass Cocaine (both Narcotic PlantAgriculturalProduct) ;
-
--- Cocoa is the class of powdered 
--- PlantAgriculturalProduct derived from cacao beans.
-fun Cocoa : Class ;
-fun Cocoa_Class : SubClass Cocoa (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-
-fun CocoaBean : Class ;
-fun CocoaBean_Class : SubClass CocoaBean (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-fun Coconut_GroceryProduce : SubClass Coconut GroceryProduce ;
-
-fun Coconut_TropicalFruit : SubClass Coconut TropicalFruit ;
-
-fun CoffeeBean : Class ;
-fun CoffeeBean_Class : SubClass CoffeeBean (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-fun ColombianPeso : Ind UnitOfCurrency ;
-
-fun CommercialAndIndustrialRefrigerationAndEquipmentManufacturing : Ind IndustryAttribute ;
-
-fun CommunalLandOwnershipEconomy : Ind EconomicSystemAttribute ;
-
--- Concrete is a class of CompoundSubstances 
--- used as building materials. Concrete is made up of Mineral pieces 
--- (sand or gravel) and a Cement material used to bind them together.
-fun Concrete : Class ;
-fun Concrete_Class : SubClass Concrete (both ManufacturedProduct Mixture) ;
-
-
-fun CongoFranc : Ind UnitOfCurrency ;
-
-fun ConsumerGood : Class ;
-fun ConsumerGood_Class : SubClass ConsumerGood ManufacturedProduct ;
-fun ConsumerGoodsIndustry : Ind IndustryAttribute ;
-
-fun ControlledLaborMarketEconomy : Ind FinancialSectorAttribute ;
-
--- ControlledSubstance is 
--- the subclass of BiologicallyActiveSubstances whose distribution 
--- and use is controlled by government regulation.
-fun ControlledSubstance : Class ;
-fun ControlledSubstance_Class : SubClass ControlledSubstance BiologicallyActiveSubstance ;
-
-fun CookingOven : Class ;
-fun CookingOven_Class : SubClass CookingOven MajorAppliance ;
-fun CookingRange : Class ;
-fun CookingRange_Class : SubClass CookingRange MajorAppliance ;
-fun CopperFoundriesExceptDieCasting : Ind IndustryAttribute ;
-
-fun CopperIndustry : Ind IndustryAttribute ;
-
-fun CopperOre : Class ;
-fun CopperOre_Class : SubClass CopperOre (both Mineral MiningProduct) ;
-
-fun CopperOreMining : Ind IndustryAttribute ;
-
-fun CopperRollingDrawingExtrudingAndAlloying : Ind IndustryAttribute ;
-
--- Copra is the class of dried coconut 
--- meat valued for the extracted coconut oil.
-fun Copra : Class ;
-fun Copra_Class : SubClass Copra PlantAgriculturalProduct ;
-
-fun CornFarming : Ind IndustryAttribute ;
-
-fun CostaRicanColon : Ind UnitOfCurrency ;
-
-fun CottonFiber : Class ;
-fun CottonFiber_Class : SubClass CottonFiber PlantAgriculturalProduct ;
--- CountryInTransition is a term 
--- used by the InternationalMonetaryFund (IMF) to describe the middle 
--- group in its hierarchy of advanced countries, countries in transition, 
--- and developing countries. Most of the countries with this attribute 
--- are former USSR or Eastern European countries. Generally corresponds 
--- with FormerSovietOrEasternEuropeanCountry classification used by 
--- UnitedNations agencies.
-fun CountryInTransition : Ind IMFDevelopmentLevel ;
-
-
-fun CowPea : Class ;
-fun CowPea_Class : SubClass CowPea Legume ;
-fun Crayfish : Class ;
-fun Crayfish_Class : SubClass Crayfish Shellfish ;
-fun CrudePetroleumExtraction : Ind IndustryAttribute ;
-
-fun CubanPeso : Ind UnitOfCurrency ;
-
-fun Cucumber : Class ;
-fun Cucumber_Class : SubClass Cucumber (both GroceryProduce Vegetable) ;
-
-fun CutFlower : Class ;
-fun CutFlower_Class : SubClass CutFlower PlantAgriculturalProduct ;
-fun CypriotPound : Ind UnitOfCurrency ;
-
-fun CzechKoruna : Ind UnitOfCurrency ;
-
-fun DanishKrone : Ind UnitOfCurrency ;
-
-fun DateFruit_GroceryProduce : SubClass DateFruit GroceryProduce ;
-
-fun DateFruit_TropicalFruit : SubClass DateFruit TropicalFruit ;
-
-fun Deer : Class ;
-fun Deer_Class : SubClass Deer (both HoofedMammal Livestock) ;
-
--- DemocraticSocialism is an 
--- Attribute that describes a country in which socialism is promoted 
--- by a political party or parties within a democratic government. 
--- Under DemocraticSocialism, the government participates in central 
--- planning of the economy and may also manage nationalized industries.
-fun DemocraticSocialism : Ind EconomicSystemAttribute ;
-
-
--- DevelopedCountry (DC) is a term used to describe members of the top 
--- group in the UNEconomicDevelopmentLevels. DevelopedCountry includes 
--- market_oriented economies of mainly democratic nations, including members 
--- of the OrganizationForEconomicCooperationAndDevelopment (OECD). DCs 
--- are also known as First World countries, 'the North', and industrial 
--- countries. Developed countries generally have high incomes (high per 
--- capita GDP or GNI), but there are exceptions to DC membership both above 
--- and below that standard. There is significant overlap, but not perfect 
--- congruence, between the UN category DevelopedCountry and the IMF 
--- category AdvancedEconomy.
-fun DevelopedCountry : Ind UNEconomicDevelopmentLevel ;
-
-
--- DevelopingCountry is a term 
--- used by the InternationalMonetaryFund (IMF) for the bottom group 
--- in its hierarchy of advanced countries, countries in transition, 
--- and developing countries. Generally corresponds to the attribute 
--- LessDevelopedCountry used by UnitedNations agencies. Not to 
--- be confused with DevelopedCountry.
-fun DevelopingCountry : Ind IMFDevelopmentLevel ;
-
-
--- DieselFuel is the subclass of 
--- RefinedPetroleumProducts that are fuels for diesel engines.
-fun DieselFuel : Class ;
-fun DieselFuel_Class : SubClass DieselFuel FossilFuel ;
-
-fun Dishwasher : Class ;
-fun Dishwasher_Class : SubClass Dishwasher MajorAppliance ;
--- Distillation is a means of separating Liquids 
--- through differences in their boilingPoints. The device used in 
--- distillation is referred to as a still and consists at a minimum of a pot 
--- in which the source material is heated, a condenser in which the heated 
--- Gas is cooled back to the liquid state, and a receiver in which the 
--- concentrated or purified liquid is collected. The equipment may effect 
--- separation by one of two main methods. Firstly the vapours given off by 
--- the heated mixture may consist of two liquids with significantly different 
--- boiling points. Thus, the vapour that is given off is in the vast 
--- majority of one or the other liquid, which after condensation and 
--- collection effects the separation. The second method (fractional 
--- distillation) relies upon a gradient of temperatures existing in the 
--- condenser stage of the equipment. Often in this technique, a vertical 
--- condenser, or column, is used. By extracting products that are liquid at 
--- different heights up the column, it is possible to extract liquids that 
--- have different boiling points. (from Wikipedia)
-fun Distilling : Class ;
-fun Distilling_Class : SubClass Distilling Separating ;
-
-fun DiversifiedEconomy : Ind FinancialSectorAttribute ;
-
-fun DjiboutiFranc : Ind UnitOfCurrency ;
-
-fun DominicanDollar : Ind UnitOfCurrency ;
-
-fun DominicanPeso : Ind UnitOfCurrency ;
-
-fun DrillingOilAndGasWells : Ind IndustryAttribute ;
-
--- DurableGood is the subclass of 
--- ManufacturedProducts which are designed to last for three years 
--- or more.
-fun DurableGood : Class ;
-fun DurableGood_Class : SubClass DurableGood ManufacturedProduct ;
-
-fun DutchGuilder : Ind UnitOfCurrency ;
-
--- EconomicAttribute is the class 
--- of terms including all Attributes used to characterize the 
--- economic systems or development levels of Nations or dependent 
--- GeopoliticalAreas.
-fun EconomicAttribute : Class ;
-fun EconomicAttribute_Class : SubClass EconomicAttribute (both PoliticoEconomicAttribute RelationalAttribute) ;
-
-
--- EconomicDevelopmentLevel is a subclass of EconomicAttribute 
--- containing terms used to describe the economic development level of a 
--- Nation or GeopoliticalArea. This class is further subdivided into 
--- different scales devised or used by different agencies.
-fun EconomicDevelopmentLevel : Class ;
-fun EconomicDevelopmentLevel_Class : SubClass EconomicDevelopmentLevel EconomicAttribute ;
-
--- EconomicSystemAttribute 
--- is the class of Attributes that describe the type of economic 
--- system that a country or area has. For example, CapitalistEconomy 
--- or SocialistEconomy.
-fun EconomicSystemAttribute : Class ;
-fun EconomicSystemAttribute_Class : SubClass EconomicSystemAttribute EconomicAttribute ;
-
-fun EcuadoranSucre : Ind UnitOfCurrency ;
-
-fun EdibleNut : Class ;
-fun EdibleNut_Class : SubClass EdibleNut (both FruitOrVegetable GroceryProduce) ;
-
-fun EdibleTuber : Class ;
-fun EdibleTuber_Class : SubClass EdibleTuber (both PlantAgriculturalProduct RootVegetable) ;
-
-fun Eggplant : Class ;
-fun Eggplant_Class : SubClass Eggplant (both GroceryProduce Vegetable) ;
-
-fun EgyptianPound : Ind UnitOfCurrency ;
-
-fun ElSalvadoranColon : Ind UnitOfCurrency ;
-
--- ElectricalPowerGeneration is 
--- the subclass of PowerGeneration processes in which electricity is 
--- generated.
-fun ElectricalPowerGeneration : Class ;
-fun ElectricalPowerGeneration_Class : SubClass ElectricalPowerGeneration PowerGeneration ;
-
--- While electricity is typically thought of as just a difference
--- in electrical potential, one way of modeling electricity is as a substance
--- that can be moved from one point to another or consumed. One could make the claim
--- that subatomic physics also supports the classification as a substance since electrons
--- are objects.
-fun Electricity : Class ;
-fun Electricity_Class : SubClass Electricity Substance ;
-
-fun EstonianKroon : Ind UnitOfCurrency ;
-
-fun EthiopianBirr : Ind UnitOfCurrency ;
-
-fun EuroCentCoin : Class ;
-fun EuroCentCoin_Class : SubClass EuroCentCoin CurrencyCoin ;
-fun EuroDollarCoin : Class ;
-fun EuroDollarCoin_Class : SubClass EuroDollarCoin CurrencyCoin ;
--- Exporting is the class of actions in 
--- which there is a ChangeOfPossession of goods shipped from a 
--- provider in one Nation to a destination in another Nation. 
--- Typically, there are Selling and Buying events associated 
--- with an Exporting. Either the seller or the exporting country 
--- may be considered the origin of Exporting.
-fun Exporting : Class ;
-fun Exporting_Class : SubClass Exporting (both ChangeOfPossession FinancialTransaction) ;
-
-
--- Any Mixture which is used to provide nutrients to 
--- living Plants. Fertilizers can be made up of plant or animal material, e.g. 
--- compost, or they can be entirely synthetic, e.g. ammonium nitrate.
-fun Fertilizer : Class ;
-fun Fertilizer_Class : SubClass Fertilizer Mixture ;
-
-fun FertilizerIndustry : Ind IndustryAttribute ;
-
-fun FertilizerManufacturing : Ind IndustryAttribute ;
-
-fun FertilizerMineralMining : Ind IndustryAttribute ;
-
-fun FijiDollar : Ind UnitOfCurrency ;
-
--- FinancialSectorAttribute is 
--- a class of Attributes that are used to indicate which financial sectors 
--- are most important in the economy of a Nation or GeopoliticalArea.
-fun FinancialSectorAttribute : Class ;
-fun FinancialSectorAttribute_Class : SubClass FinancialSectorAttribute EconomicAttribute ;
-
-fun FinnishMarkka : Ind UnitOfCurrency ;
-
--- (FiscalYearFn ?PLACE) denotes the subclass 
--- of TimeIntervals that are fiscalYearPeriods of the Organization or 
--- GeopoliticalArea ?PLACE.
-fun FiscalYearFn: El Agent -> Desc TimeInterval ;
-
-
--- (FiscalYearStartingFn ?PLACE ?YEAR) 
--- denotes the particular fiscal year that is observed in ?PLACE and begins 
--- during the calendar Year indicated by ?YEAR.
-fun FiscalYearStartingFn: El Agent -> Desc Year -> Ind TimeInterval ;
-
-
--- FishProduct is the subclass of 
--- AnimalAgriculturalProduct that comprises products derived 
--- from fish.
-fun FishProduct : Class ;
-fun FishProduct_Class : SubClass FishProduct AnimalAgriculturalProduct ;
-
-fun FishRoe : Class ;
-fun FishRoe_Class : SubClass FishRoe FishProduct ;
-fun FlaxFiber : Class ;
-fun FlaxFiber_Class : SubClass FlaxFiber PlantAgriculturalProduct ;
-fun Fodder_OrganicObject : SubClass Fodder OrganicObject ;
-
-fun FoodEgg : Class ;
-fun FoodEgg_Class : SubClass FoodEgg AnimalAgriculturalProduct ;
-fun FoodFish : Class ;
-fun FoodFish_Class : SubClass FoodFish Seafood ;
--- FoodProduct is the class of food 
--- products, packaged or unpackaged.
-fun FoodProduct : Class ;
-fun FoodProduct_Class : SubClass FoodProduct Product ;
-
-fun Footwear : Class ;
-fun Footwear_Class : SubClass Footwear Clothing ;
-fun ForageCrop : Class ;
-fun ForageCrop_Class : SubClass ForageCrop (both Fodder (both Plant PlantAgriculturalProduct)) ;
-
-fun ForestProduct : Class ;
-fun ForestProduct_Class : SubClass ForestProduct Product ;
-fun ForestryAndLogging : Ind IndustryAttribute ;
-
--- FormerSovietOrEasternEuropeanCountry (former USSR_EE) is an 
--- Attribute that characterizes countries that were part of the former 
--- Soviet Union or its sphere of influence in Eastern Europe. This level 
--- occupies a middle position between DevelopedCountry (DC) and 
--- LessDevelopedCountry (LDC) in UNEconomicDevelopmentLevels. 
--- Previously, former USSR_EE countries had a CentrallyPlannedEconomy and 
--- were Marxist_Leninist states. Many are now evolving away from command 
--- economies to market economic systems. During the 1980's, the group 
--- included Albania, Bulgaria, Cambodia, China, Cuba, Czechoslovakia, the 
--- German Democratic Republic (East Germany), Hungary, North Korea, Laos, 
--- Mongolia, Poland, Romania, the USSR, Vietnam and Yugoslavia.
-fun FormerSovietOrEasternEuropeanCountry : Ind UNEconomicDevelopmentLevel ;
-
-
-fun FossilFuelPowerGeneration : Ind PowerGeneration ;
-
--- FourDragonsEconomy describes four 
--- small Asian countries that achieved rapid economic growth in the 1990s. 
--- Some systems of EconomicDevelopmentLevel place them as a 
--- LessDevelopedCountry, but the IMF includes them in AdvancedEconomy.
-fun FourDragonsEconomy : Ind EconomicDevelopmentLevel ;
-
-
-fun Freezer : Class ;
-fun Freezer_Class : SubClass Freezer MajorAppliance ;
-fun FrenchFranc : Ind UnitOfCurrency ;
-
-fun FrenchFrancCoin : Class ;
-fun FrenchFrancCoin_Class : SubClass FrenchFrancCoin CurrencyCoin ;
-fun Fruit : Class ;
-fun Fruit_Class : SubClass Fruit FruitOrVegetable ;
-fun FruitFarming : Ind IndustryAttribute ;
-
-fun FurnitureAndHomeFurnishingWholesalers : Ind IndustryAttribute ;
-
-fun FurnitureAndHomeFurnishingsStores : Ind IndustryAttribute ;
-
-fun FurnitureAndRelatedProductManufacturing : Ind IndustryAttribute ;
-
-fun FurnitureIndustry : Ind IndustryAttribute ;
-
-fun FurnitureManufacturing : Ind IndustryAttribute ;
-
-fun Furniture_DurableGood : SubClass Furniture DurableGood ;
-
-fun GabonFranc : Ind UnitOfCurrency ;
-
-fun GambianDalasi : Ind UnitOfCurrency ;
-
--- Gasoline is the subclass of 
--- RefinedPetroleumProducts that are fuels for internal combustion engines.
-fun Gasoline : Class ;
-fun Gasoline_Class : SubClass Gasoline FossilFuel ;
-
--- Gemstone is the subclass of Mineral items 
--- that are especially valued for use in jewelry and other decorative items, and also in some mechanical and industrial applications.
-fun Gemstone : Class ;
-fun Gemstone_Class : SubClass Gemstone Mixture ;
-
-fun GeorgianLari : Ind UnitOfCurrency ;
-
-fun GermanMark : Ind UnitOfCurrency ;
-
-fun GermanMarkCoin : Class ;
-fun GermanMarkCoin_Class : SubClass GermanMarkCoin CurrencyCoin ;
-fun GhanianCedi : Ind UnitOfCurrency ;
-
-fun Ginger : Class ;
-fun Ginger_Class : SubClass Ginger (both Spice Vegetable) ;
-
--- A domesticated HoofedMammal that is raised primarily 
--- for Milk.
-fun Goat : Class ;
-fun Goat_Class : SubClass Goat (both HoofedMammal Livestock) ;
-
-
--- GovernmentRegulatedEconomy 
--- is an Attribute that describes the economy of a country in which the 
--- government determines prices, production, wages, allocation of resources, 
--- or other economic factors. An economy that is wholly government planned 
--- is a CentrallyPlannedEconomy.
-fun GovernmentRegulatedEconomy : Ind EconomicSystemAttribute ;
-
-
--- GovernmentSubsidizedEconomy 
--- is an Attribute describing an economy in which the government provides 
--- subsidies to various industries, workers, or other groups as part of its 
--- economic policy.
-fun GovernmentSubsidizedEconomy : Ind EconomicSystemAttribute ;
-
-
-fun GrainAndOilseedMilling : Ind IndustryAttribute ;
-
-fun Grape : Class ;
-fun Grape_Class : SubClass Grape (both Fruit GroceryProduce) ;
-
-fun GreekDrachma : Ind UnitOfCurrency ;
-
-fun GreenPepper : Class ;
-fun GreenPepper_Class : SubClass GreenPepper (both GroceryProduce Vegetable) ;
-
-fun GrenadaDollar : Ind UnitOfCurrency ;
-
-fun Groundnut : Class ;
-fun Groundnut_Class : SubClass Groundnut (both EdibleTuber (both FruitOrVegetable GroceryProduce)) ;
-
-fun GuatemalanQuetzal : Ind UnitOfCurrency ;
-
-fun GuernseyCattle : Class ;
-fun GuernseyCattle_Class : SubClass GuernseyCattle Cattle ;
-fun GuineaBissauPeso : Ind UnitOfCurrency ;
-
-fun GuineanFranc : Ind UnitOfCurrency ;
-
-fun GumArabic : Class ;
-fun GumArabic_Class : SubClass GumArabic (both PlantAgriculturalProduct Substance) ;
-
-fun GuyanaDollar : Ind UnitOfCurrency ;
-
-fun HaitianGourde : Ind UnitOfCurrency ;
-
-fun HandicraftIndustry : Ind IndustryAttribute ;
-
--- HandicraftProduct is the class of 
--- Products that are manufactured by hand with a special skill.
-fun HandicraftProduct : Class ;
-fun HandicraftProduct_Class : SubClass HandicraftProduct Product ;
-
-fun HandwovenCarpet : Class ;
-fun HandwovenCarpet_Class : SubClass HandwovenCarpet (both HandicraftProduct TextileProduct) ;
-
-fun HandwovenCarpetManufacturing : Ind IndustryAttribute ;
-
-fun Hardwood : Class ;
-fun Hardwood_Class : SubClass Hardwood WoodProduct ;
-fun HempFiber : Class ;
-fun HempFiber_Class : SubClass HempFiber PlantAgriculturalProduct ;
--- HighIncomeCountry is an Attribute representing the World Bank 
--- classification for any country where the per capita GNI is 
--- equal to or greater than &9,266 in UnitedStatesDollars.
-fun HighIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
-
-
--- HighTechIndustrialEconomy 
--- is an Attribute used to describe industrialized countries whose 
--- infrastructure uses the most advanced kinds of technology.
-fun HighTechIndustrialEconomy : Ind EconomicDevelopmentLevel ;
-
-
-fun HonduranLempira : Ind UnitOfCurrency ;
-
-fun Honey_AnimalAgriculturalProduct : SubClass Honey AnimalAgriculturalProduct ;
-
-fun HongKongDollar : Ind UnitOfCurrency ;
-
-fun HotWaterHeater : Class ;
-fun HotWaterHeater_Class : SubClass HotWaterHeater MajorAppliance ;
-fun HouseholdRefrigeratorAndHomeFreezerManufacturing : Ind IndustryAttribute ;
-
-fun HungarianForint : Ind UnitOfCurrency ;
-
-fun HydroElectricPowerGeneration : Ind ElectricalPowerGeneration ;
-
--- IMFDevelopmentLevel is a 
--- collection of Attributes representing economic development levels 
--- used by the InternationalMonetaryFund (IMF) to characterize national 
--- economies. The hierarchy of IMF levels includes: AdvancedEconomy, 
--- CountryInTransition, and DevelopingCountry. There is some, but not 
--- complete, overlap with concepts used by UnitedNations agencies. 
--- See
-fun IMFDevelopmentLevel : Class ;
-fun IMFDevelopmentLevel_Class : SubClass IMFDevelopmentLevel EconomicDevelopmentLevel ;
-
-fun IcelandicKrona : Ind UnitOfCurrency ;
-
-fun IndianRupee : Ind UnitOfCurrency ;
-
-fun IndonesianRupiah : Ind UnitOfCurrency ;
-
-fun IndustrialRawMaterial : Class ;
-fun IndustrialRawMaterial_Class : SubClass IndustrialRawMaterial CapitalGood ;
-fun IndustrialSector : Ind IndustryAttribute ;
-
--- IndustrialSupply is the class of 
--- products that are used in industry but which are not raw materials 
--- for products being manufactured. IndustrialSupply includes maintenance, 
--- repair, and operation (MRO) supplies, including janitorial, electrical, 
--- bearings, tools, machinery, accessories, fire and safety equipment, and 
--- other industrial items.
-fun IndustrialSupply : Class ;
-fun IndustrialSupply_Class : SubClass IndustrialSupply (both CapitalGood ManufacturedProduct) ;
-
-
-fun IndustryAttribute : Class ;
-
-fun IranianRial : Ind UnitOfCurrency ;
-
-fun IraqiDinar : Ind UnitOfCurrency ;
-
-fun IrishPound : Ind UnitOfCurrency ;
-
-fun IronMetal : Class ;
-fun IronMetal_Class : SubClass IronMetal MetalProduct ;
--- IronOre is a subclass of CompoundSubstance 
--- that contains compounds of iron, of which the most common are 
--- hematite and limonite. Iron is obtained from smelting iron ores.
-fun IronOre : Class ;
-fun IronOre_Class : SubClass IronOre (both CompoundSubstance (both Mineral MiningProduct)) ;
-
-
-fun IsraeliShekel : Ind UnitOfCurrency ;
-
-fun ItalianLire : Ind UnitOfCurrency ;
-
-fun ItalianLireCoin : Class ;
-fun ItalianLireCoin_Class : SubClass ItalianLireCoin CurrencyCoin ;
-fun IvoryCoastFranc : Ind UnitOfCurrency ;
-
-fun JamaicanDollar : Ind UnitOfCurrency ;
-
-fun JapaneseYen : Ind UnitOfCurrency ;
-
-fun JapaneseYenCoin : Class ;
-fun JapaneseYenCoin_Class : SubClass JapaneseYenCoin CurrencyCoin ;
--- Jewelry is the subclass of PersonalAdornment 
--- items that are typically made of metals (especially precious metals), 
--- gems, and other non_cloth materials.
-fun Jewelry : Class ;
-fun Jewelry_Class : SubClass Jewelry (both PersonalAdornment WearableItem) ;
-
-
-fun JordanianDinar : Ind UnitOfCurrency ;
-
-fun JuteFiber : Class ;
-fun JuteFiber_Class : SubClass JuteFiber PlantAgriculturalProduct ;
-fun KazakhstaniTenge : Ind UnitOfCurrency ;
-
-fun KentiaPalmSeed : Class ;
-fun KentiaPalmSeed_Class : SubClass KentiaPalmSeed (both PlantAgriculturalProduct Seed) ;
-
-fun KenyanShilling : Ind UnitOfCurrency ;
-
--- Khat is the class of PlantAgriculturalProducts 
--- made from the leaves and buds of the staff tree, which 
--- are chewed or brewed as a stimulating tea.
-fun Khat : Class ;
-fun Khat_Class : SubClass Khat PlantAgriculturalProduct ;
-
--- KilowattHour is a UnitOfMeasure for 
--- energy that represents 1000 Watts (1 kW) of power expended over one 
--- hour (1 h) of time. This is the unit commonly used in commercial 
--- power contexts. It is equivalent to 3,600,000 Joules.
-fun KilowattHour : Ind CompositeUnitOfMeasure ;
-
-
-fun KiribatiDollar : Ind UnitOfCurrency ;
-
-fun KuwaitiDinar : Ind UnitOfCurrency ;
-
-fun KyrgyzstaniSom : Ind UnitOfCurrency ;
-
-fun LambMeat : Class ;
-fun LambMeat_Class : SubClass LambMeat Meat ;
-fun Lambskin : Class ;
-fun Lambskin_Class : SubClass Lambskin Pelt ;
-fun LaotianKip : Ind UnitOfCurrency ;
-
-fun LatvianLats : Ind UnitOfCurrency ;
-
-fun LeadIndustry : Ind IndustryAttribute ;
-
-fun LeadManufacturing : Ind IndustryAttribute ;
-
-fun LeadMetal : Class ;
-fun LeadMetal_Class : SubClass LeadMetal MetalProduct ;
-fun LeadOre : Class ;
-fun LeadOre_Class : SubClass LeadOre (both Mineral MiningProduct) ;
-
-fun LeadOreMining : Ind IndustryAttribute ;
-
-fun LeadProduct : Class ;
-fun LeadProduct_Class : SubClass LeadProduct (both LeadMetal ManufacturedProduct) ;
-
-fun Leaf : Class ;
-fun Leaf_Class : SubClass Leaf AnatomicalStructure ;
-fun LeafyGreenVegetable : Class ;
-fun LeafyGreenVegetable_Class : SubClass LeafyGreenVegetable (both GroceryProduce Vegetable) ;
-
--- LeastDevelopedCountry 
--- is a sub_classification of LessDevelopedCountry characterizing
--- those countries that have no significant economic growth, a per 
--- capita GDP of less than 1,000 UnitedStatesDollars, and low 
--- literacy. Also known as 'undeveloped countries'.
-fun LeastDevelopedCountry : Ind EconomicDevelopmentLevel ;
-
-
-fun LebanesePound : Ind UnitOfCurrency ;
-
-fun Legume : Class ;
-fun Legume_Class : SubClass Legume (both PlantAgriculturalProduct Vegetable) ;
-
-fun Lemon : Class ;
-fun Lemon_Class : SubClass Lemon CitrusFruit ;
-fun Lentil : Class ;
-fun Lentil_Class : SubClass Lentil Pulse ;
-fun LesothoLoti : Ind UnitOfCurrency ;
-
--- LessDevelopedCountry (LDC) is 
--- the Attribute used to describe the bottom group in the hierarchy 
--- of UNEconomicDevelopmentLevels. Less developed countries are countries 
--- or dependent areas with low levels of production, living standards, 
--- and technology. Per capita GDP (perCapitaGDPInPeriod), or GDI 
--- (Gross Domestic Income), is generally less than 5,000 and often 
--- below 1,500. Subgroups of LDC, however, include countries that have 
--- higher per capita incomes, as well as advanced technology, and rapid rates 
--- of growth. Subgroups of LDC include: advanced developing countries, 
--- the Four Dragons (also known as Four Tigers), LeastDevelopedCountry 
--- (LLDCs), low_income countries, middle_income countries, newly 
--- industrializing economies (NIEs), the South (from the location of 
--- most LDC countries, relative to Northern developed countries), Third 
--- World (obsolete), UnderdevelopedCountry, UndevelopedCountry.
-fun LessDevelopedCountry : Ind UNEconomicDevelopmentLevel ;
-
-
-fun LiberianDollar : Ind UnitOfCurrency ;
-
-fun LibyanDinar : Ind UnitOfCurrency ;
-
-fun Lime : Class ;
-fun Lime_Class : SubClass Lime CitrusFruit ;
-fun LithuanianLitas : Ind UnitOfCurrency ;
-
--- LowIncomeCountry is an 
--- Attribute representing the World Bank classification for any country 
--- where the per capita GNI is 755 or below in UnitedStatesDollars.
-fun LowIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
-
-
--- LowerMiddleIncomeCountry is an Attribute representing the World 
--- Bank classification for any country where the per capita GNI is 
--- between 756 and 2,995 (inclusive) in UnitedStatesDollars.
-fun LowerMiddleIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
-
-
--- A ManufacturedProduct derived from Timber.
-fun Lumber : Class ;
-fun Lumber_Class : SubClass Lumber (both DurableGood ForestProduct) ;
-
-
-fun LumberIndustry : Ind IndustryAttribute ;
-
-fun LumberPlywoodMillworkAndWoodPanelWholesalers : Ind IndustryAttribute ;
-
-fun LuxembourgFranc : Ind UnitOfCurrency ;
-
-fun MacademiaNut : Class ;
-fun MacademiaNut_Class : SubClass MacademiaNut EdibleNut ;
-fun MacaoPataca : Ind UnitOfCurrency ;
-
-fun Mace : Class ;
-fun Mace_Class : SubClass Mace Spice ;
-fun MachineTool : Class ;
-fun MachineTool_Class : SubClass MachineTool Machinery ;
-fun Machine_Machinery : SubClass Machine Machinery ;
-
--- Machinery is the class of products 
--- that includes Machines, tools, and machine parts used in industrial 
--- or other commercial processes.
-fun Machinery : Class ;
-fun Machinery_Class : SubClass Machinery (both Device (both DurableGood IndustrialSupply)) ;
-
-
-fun MadagascarFranc : Ind UnitOfCurrency ;
-
-fun MajorAppliance : Class ;
-fun MajorAppliance_Class : SubClass MajorAppliance (both Device DurableGood) ;
-
--- MajorIndustrialEconomy is an 
--- Attribute used to describe countries with the largest, industrialized, 
--- non_communist economies in the world.
-fun MajorIndustrialEconomy : Ind EconomicDevelopmentLevel ;
-
-
-fun MalawianKwacha : Ind UnitOfCurrency ;
-
-fun MalaysianRinggit : Ind UnitOfCurrency ;
-
-fun MaliFranc : Ind UnitOfCurrency ;
-
-fun MalteseLira : Ind UnitOfCurrency ;
-
-fun Mango : Class ;
-fun Mango_Class : SubClass Mango (both GroceryProduce TropicalFruit) ;
-
-fun ManufacturingBasedEconomy : Ind FinancialSectorAttribute ;
-
--- MarketEconomy is an Attribute that 
--- describes an economy in which market forces, specifically supply and 
--- demand, provide input for privately managed decisions about pricing 
--- and production of goods.
-fun MarketEconomy : Ind EconomicSystemAttribute ;
-
-
-fun MarketSocialism : Ind EconomicSystemAttribute ;
-
-fun MauritanianOuguiya : Ind UnitOfCurrency ;
-
-fun MauritianRupee : Ind UnitOfCurrency ;
-
-fun Meat_AnimalAgriculturalProduct : SubClass Meat AnimalAgriculturalProduct ;
-
-fun Melon : Class ;
-fun Melon_Class : SubClass Melon (both Fruit GroceryProduce) ;
-
-fun MetalProduct : Class ;
-fun MetalProduct_Class : SubClass MetalProduct DurableGood ;
-fun MetallurgyIndustry : Ind IndustryAttribute ;
-
-fun MexicanPeso : Ind UnitOfCurrency ;
-
-fun Milk_DairyProduct : SubClass Milk DairyProduct ;
-
-fun MilletFarming : Ind IndustryAttribute ;
-
-fun MilletGrain : Class ;
-fun MilletGrain_Class : SubClass MilletGrain CerealGrain ;
-fun Millwork : Ind IndustryAttribute ;
-
-fun MiningExceptOilAndGas : Ind IndustryAttribute ;
-
-fun MiningIndustry : Ind IndustryAttribute ;
-
--- MixedEconomy is the Attribute 
--- of a country whose economy has elements of more than one pure 
--- economic system, e.g., a market economy with government welfare 
--- for unemployed workers. A mixed_economy country may be a 
--- CountryInTransition, as from a prior communist economy to 
--- capitalism, but a mixed economy may also be a stable combination 
--- of different economic approaches in different areas of a national 
--- economy, e.g., nationally managed health care and education systems 
--- in an otherwise private_enterprise economy.
-fun MixedEconomy : Ind EconomicSystemAttribute ;
-
-
-fun MoldovanLeu : Ind UnitOfCurrency ;
-
-fun MongolianTugrik : Ind UnitOfCurrency ;
-
-fun MoroccanDirham : Ind UnitOfCurrency ;
-
--- MotorOil is the subclass of PetroleumLubricants 
--- that are used to lubricate motors.
-fun MotorOil : Class ;
-fun MotorOil_Class : SubClass MotorOil PetroleumLubricant ;
-
-fun MotorVehicleAndMotorVehiclePartsAndSuppliesWholesalers : Ind IndustryAttribute ;
-
-fun MotorVehicleAndPartsDealers : Ind IndustryAttribute ;
-
-fun MotorVehicleBodyAndTrailerManufacturing : Ind IndustryAttribute ;
-
-fun MotorVehicleIndustry : Ind IndustryAttribute ;
-
-fun MotorVehicleManufacturing : Ind IndustryAttribute ;
-
-fun MotorVehiclePartsManufacturing : Ind IndustryAttribute ;
-
-fun MozambiqueMetical : Ind UnitOfCurrency ;
-
-fun MulberryLeaf : Class ;
-fun MulberryLeaf_Class : SubClass MulberryLeaf (both Fodder (both Leaf PlantAgriculturalProduct)) ;
-
-fun Mutton : Class ;
-fun Mutton_Class : SubClass Mutton Meat ;
-fun MyanmarKyat : Ind UnitOfCurrency ;
-
--- Narcotic is a subclass of addictive 
--- BiologicallyActiveSubstances that have damping effects on the 
--- nervous system and may be fatal in large doses.
-fun Narcotic : Class ;
-fun Narcotic_Class : SubClass Narcotic ControlledSubstance ;
-
--- NationalizedIndustryEconomy 
--- is an Attribute describing an economy in which the major industries, 
--- such as energy and transportation, are owned by the national government.
-fun NationalizedIndustryEconomy : Ind EconomicSystemAttribute ;
-
-
-fun NaturalGasDistribution : Ind IndustryAttribute ;
-
-fun NaturalGasIndustry : Ind IndustryAttribute ;
-
-fun NaturalGasLiquidExtraction : Ind IndustryAttribute ;
-
--- NaturalRubber is the subclass of 
--- PlantAgriculturalProducts made from the sap of plant species 
--- which produce natural polymers.
-fun NaturalRubber : Class ;
-fun NaturalRubber_Class : SubClass NaturalRubber PlantAgriculturalProduct ;
-
-fun NepaleseRupee : Ind UnitOfCurrency ;
-
-fun NewZealandDollar : Ind UnitOfCurrency ;
-
--- NewlyIndustrializingEconomy is an Attribute used to describe a 
--- LessDevelopedCountry (LDC) that is undergoing rapid industrial 
--- development. Also called 'newly industrializing economy' (or 
--- 'country').
-fun NewlyIndustrializingEconomy : Ind EconomicDevelopmentLevel ;
-
-
-fun NicaraguanCordoba : Ind UnitOfCurrency ;
-
-fun NickelOre : Class ;
-fun NickelOre_Class : SubClass NickelOre (both Mineral MiningProduct) ;
-
-fun NigerFranc : Ind UnitOfCurrency ;
-
-fun NigerianNaira : Ind UnitOfCurrency ;
-
-fun NorfolkIslandPineSeed : Class ;
-fun NorfolkIslandPineSeed_Class : SubClass NorfolkIslandPineSeed (both PlantAgriculturalProduct Seed) ;
-
-fun NorthKoreanWon : Ind UnitOfCurrency ;
-
-fun NorwegianKrone : Ind UnitOfCurrency ;
-
-fun NuclearPowerGeneration : Ind PowerGeneration ;
-
-fun Nut : Class ;
-fun Nut_Class : SubClass Nut (both PlantAgriculturalProduct ReproductiveBody) ;
-
-fun Nutmeg : Class ;
-fun Nutmeg_Class : SubClass Nutmeg Spice ;
-fun OatFarming : Ind IndustryAttribute ;
-
-fun OatGrain : Class ;
-fun OatGrain_Class : SubClass OatGrain CerealGrain ;
-fun OffshoreBankingSectorEconomy : Ind FinancialSectorAttribute ;
-
-fun OffshoreFinancialSectorEconomy : Ind FinancialSectorAttribute ;
-
-fun Oilseed : Class ;
-fun Oilseed_Class : SubClass Oilseed (both PlantAgriculturalProduct Seed) ;
-
--- Okoume (Aucoumea klaineana), also called 
--- 'gaboon', is a wood of West African origin.
-fun Okoume : Class ;
-fun Okoume_Class : SubClass Okoume Hardwood ;
-
-fun Olive : Class ;
-fun Olive_Class : SubClass Olive (both Fruit GroceryProduce) ;
-
-fun OliveOil : Class ;
-fun OliveOil_Class : SubClass OliveOil VegetableOil ;
-fun OmaniRiyal : Ind UnitOfCurrency ;
-
-fun OpiumPoppy : Class ;
-fun OpiumPoppy_Class : SubClass OpiumPoppy (both PlantAgriculturalProduct Poppy) ;
-
-fun OpiumPoppyFarming : Class ;
-fun OpiumPoppyFarming_Class : SubClass OpiumPoppyFarming Farming ;
-fun Opium_Narcotic : SubClass Opium Narcotic ;
-
-fun Opium_PlantAgriculturalProduct : SubClass Opium PlantAgriculturalProduct ;
-
-fun Orchid : Class ;
-fun Orchid_Class : SubClass Orchid (both FloweringPlant PlantAgriculturalProduct) ;
-
-fun OrnamentalFish : Class ;
-fun OrnamentalFish_Class : SubClass OrnamentalFish (both AnimalAgriculturalProduct Fish) ;
-
--- OtherSourcePowerGeneration 
--- represents all non_fossil fuel, non_hydroelectric, and non_nuclear power 
--- generation processes, e.g., wind power generation.
-fun OtherSourcePowerGeneration : Ind PowerGeneration ;
-
-
--- PPPBasedEconomicValuation 
--- is a class of relations used to state international economic information 
--- in U.S. dollar amounts. The U.S. dollar amounts are derived from Purchasing 
--- Power Parity conversions of economic totals (e.g., GDP) given in local 
--- currency. This contrasts with a method of conversion based on currency 
--- exchange rates. The PPP method is used by the CIA World Fact Book for 
--- the purpose of presenting economic data for all countries covered. Their 
--- basis for PPP dollar price weights is the UN International Comparison Program 
--- (UNICP) and the work of Professors Robert Summers and Alan Heston of the 
--- University of Pennsylvania.
-fun PPPBasedEconomicValuation : Class ;
-
-
--- PackagedBeverageProduct is the 
--- class of Products that consist of a BeverageProduct in some kind of 
--- packaging, including cups and bottles.
-fun PackagedBeverageProduct : Class ;
-fun PackagedBeverageProduct_Class : SubClass PackagedBeverageProduct Product ;
-
--- PackagedFoodProduct is the 
--- class of Products that consist of a FoodProduct in a package.
-fun PackagedFoodProduct : Class ;
-fun PackagedFoodProduct_Class : SubClass PackagedFoodProduct Product ;
-
-fun PaddyRice : Class ;
-fun PaddyRice_Class : SubClass PaddyRice CerealGrass ;
-fun PakistaniRupee : Ind UnitOfCurrency ;
-
-fun PalmKernel : Class ;
-fun PalmKernel_Class : SubClass PalmKernel PlantAgriculturalProduct ;
-fun PalmOil : Class ;
-fun PalmOil_Class : SubClass PalmOil VegetableOil ;
-fun PalmOilNut : Class ;
-fun PalmOilNut_Class : SubClass PalmOilNut (both Nut PlantAgriculturalProduct) ;
-
-fun PanamanianBalboa : Ind UnitOfCurrency ;
-
-fun Papaw : Class ;
-fun Papaw_Class : SubClass Papaw (both GroceryProduce TropicalFruit) ;
-
-fun Papaya : Class ;
-fun Papaya_Class : SubClass Papaya (both GroceryProduce TropicalFruit) ;
-
-fun PapuanKina : Ind UnitOfCurrency ;
-
-fun ParaguayanGuarani : Ind UnitOfCurrency ;
-
-fun PartialMarketEconomy : Ind EconomicSystemAttribute ;
-
-fun PassionFruit : Class ;
-fun PassionFruit_Class : SubClass PassionFruit (both GroceryProduce TropicalFruit) ;
-
-fun Pea_Legume : SubClass Pea Legume ;
-
-fun Peanut : Class ;
-fun Peanut_Class : SubClass Peanut (both EdibleNut GroceryProduce) ;
-
-fun Pearl : Class ;
-fun Pearl_Class : SubClass Pearl Jewelry ;
-fun PecanNut : Class ;
-fun PecanNut_Class : SubClass PecanNut EdibleNut ;
--- Pelt is the subclass of AnimalSkin 
--- that comprises the pelts or hides of animals that are used in 
--- the manufacture of wearable or household items.
-fun Pelt : Class ;
-fun Pelt_Class : SubClass Pelt (both AnimalAgriculturalProduct AnimalSkin) ;
-
-
-fun PerfumeEssence : Class ;
-fun PerfumeEssence_Class : SubClass PerfumeEssence PlantAgriculturalProduct ;
--- PersonalAdornment is the subclass 
--- of WearableItems that are worn primarily for decorative purposes.
-fun PersonalAdornment : Class ;
-fun PersonalAdornment_Class : SubClass PersonalAdornment WearableItem ;
-
-fun PeruvianInti : Ind UnitOfCurrency ;
-
--- Petroleum is commonly known as crude 
--- oil. It is a thick, dark brown or greenish flammable liquid, which exists 
--- in the upper strata of some areas of the Earth's crust. It consists of a 
--- complex mixture of various hydrocarbons, largely of the methane series, 
--- but may vary much in appearance, composition, and purity. (from Wikipedia)
--- Crude oil has not be subject to the distillation that will yield a
--- RefinedPetroleumProduct.
-fun Petroleum : Class ;
-fun Petroleum_Class : SubClass Petroleum PetroleumProduct ;
-
-fun PetroleumBasedEconomy : Ind FinancialSectorAttribute ;
-
-fun PetroleumIndustry : Ind IndustryAttribute ;
-
--- PetroleumLubricant is the subclass of 
--- RefinedPetroleumProducts that are lubricants.
-fun PetroleumLubricant : Class ;
-fun PetroleumLubricant_Class : SubClass PetroleumLubricant RefinedPetroleumProduct ;
-
-fun PetroleumProductsManufacturing : Ind IndustryAttribute ;
-
-fun PetroleumRefineries : Ind IndustryAttribute ;
-
-fun PharmaceuticalProduct : Class ;
-fun PharmaceuticalProduct_Class : SubClass PharmaceuticalProduct ManufacturedProduct ;
-fun PhilippinePeso : Ind UnitOfCurrency ;
-
-fun PhosphoricAcid : Class ;
-fun PhosphoricAcid_Class : SubClass PhosphoricAcid CompoundSubstance ;
-fun Pineapple : Class ;
-fun Pineapple_Class : SubClass Pineapple (both GroceryProduce TropicalFruit) ;
-
-fun PipelineTransportationOfNaturalGas : Ind IndustryAttribute ;
-
-fun Plantain : Class ;
-fun Plantain_Class : SubClass Plantain (both GroceryProduce TropicalFruit) ;
-
-fun Plastic : Class ;
-fun Plastic_Class : SubClass Plastic ManufacturedProduct ;
-fun PolishZloty : Ind UnitOfCurrency ;
-
-fun Poppy : Class ;
-fun Poppy_Class : SubClass Poppy FloweringPlant ;
-fun PortugueseEscudo : Ind UnitOfCurrency ;
-
-fun PotatoTuber : Class ;
-fun PotatoTuber_Class : SubClass PotatoTuber (both EdibleTuber GroceryProduce) ;
-
--- PowerGeneration is the class of 
--- Processes in which some kind of power is generated either for immediate 
--- use in a Device or to be stored for future use.
-fun PowerGeneration : Class ;
-fun PowerGeneration_Class : SubClass PowerGeneration Process ;
-
--- PreciousGemstone is the class of 
--- Minerals and fossilized substances that have great monetary value.
-fun PreciousGemstone : Class ;
-fun PreciousGemstone_Class : SubClass PreciousGemstone (both Gemstone MiningProduct) ;
-
-
-fun PrimarySmeltingAndRefiningOfCopper : Ind IndustryAttribute ;
-
--- PrivateEnterpriseEconomy is 
--- the Attribute used to characterize a country in which private 
--- enterprise is the main source of economic wealth.
-fun PrivateEnterpriseEconomy : Ind EconomicSystemAttribute ;
-
-
--- PrivatizingEconomy is an 
--- Attribute that describes a country in which formerly government_
--- owned industries are being transferred into private holdings.
-fun PrivatizingEconomy : Ind EconomicSystemAttribute ;
-
-
--- ProductPackage is the class of objects 
--- designed to contain Products for shipping and sale.
-fun ProductPackage : Class ;
-fun ProductPackage_Class : SubClass ProductPackage Container ;
-
-fun Pulse : Class ;
-fun Pulse_Class : SubClass Pulse Legume ;
--- PureCapitalistEconomy is an 
--- Attribute representing a capitalist economy that has no admixture of 
--- socialism.
-fun PureCapitalistEconomy : Ind EconomicSystemAttribute ;
-
-
--- PureSocialistEconomy is an 
--- Attribute representing a socialist economy that has no admixture of 
--- capitalism.
-fun PureSocialistEconomy : Ind EconomicSystemAttribute ;
-
-
--- Pyrethrum is the subclass of 
--- BiologicallyActiveSubstance consisting of insecticidal 
--- derivations from the flower heads of Chrysanthemums.
-fun Pyrethrum : Class ;
-fun Pyrethrum_Class : SubClass Pyrethrum (both BiologicallyActiveSubstance PlantAgriculturalProduct) ;
-
-
-fun QatariRiyal : Ind UnitOfCurrency ;
-
-fun Quinine : Class ;
-fun Quinine_Class : SubClass Quinine PlantAgriculturalProduct ;
-fun ReadyMixConcrete : Class ;
-fun ReadyMixConcrete_Class : SubClass ReadyMixConcrete Concrete ;
-fun RefrigeratedWarehousingAndStorage : Ind IndustryAttribute ;
-
-fun RefrigerationEquipmentAndSuppliesWholesalers : Ind IndustryAttribute ;
-
-fun RefrigerationEquipmentManufacturing : Ind IndustryAttribute ;
-
-fun RefrigeratorAndFreezerIndustry : Ind IndustryAttribute ;
-
-fun Refrigerator_MajorAppliance : SubClass Refrigerator MajorAppliance ;
-
-fun Reindeer : Class ;
-fun Reindeer_Class : SubClass Reindeer (both HoofedMammal Livestock) ;
-
-fun RiceFarming : Ind IndustryAttribute ;
-
-fun RomanianLeu : Ind UnitOfCurrency ;
-
-fun RootStarch : Class ;
-fun RootStarch_Class : SubClass RootStarch (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-fun RootVegetable : Class ;
-fun RootVegetable_Class : SubClass RootVegetable (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-fun RussianRuble : Ind UnitOfCurrency ;
-
-fun RwandaFranc : Ind UnitOfCurrency ;
-
-fun RyeFarming : Ind IndustryAttribute ;
-
-fun RyeGrain : Class ;
-fun RyeGrain_Class : SubClass RyeGrain CerealGrain ;
-fun Salmon : Class ;
-fun Salmon_Class : SubClass Salmon FoodFish ;
-fun SaoThomeEPrincipeDobra : Ind UnitOfCurrency ;
-
-fun SaudiArabianRiyal : Ind UnitOfCurrency ;
-
-fun Seafood : Class ;
-fun Seafood_Class : SubClass Seafood Meat ;
-fun Seed_FruitOrVegetable : SubClass Seed FruitOrVegetable ;
-
--- SemipreciousGemstone is the 
--- class of Minerals and other substances that have significant 
--- monetary value, but less than those of the class PreciousGemstone.
-fun SemipreciousGemstone : Class ;
-fun SemipreciousGemstone_Class : SubClass SemipreciousGemstone (both Gemstone MiningProduct) ;
-
-
-fun SenegaleseFranc : Ind UnitOfCurrency ;
-
-fun SenepolCattle : Class ;
-fun SenepolCattle_Class : SubClass SenepolCattle Cattle ;
-fun ServiceBasedEconomy : Ind FinancialSectorAttribute ;
-
-fun ServiceSector : Ind IndustryAttribute ;
-
-fun Sesame : Class ;
-fun Sesame_Class : SubClass Sesame PlantAgriculturalProduct ;
-fun SeychellesRupee : Ind UnitOfCurrency ;
-
-fun SheaNut : Class ;
-fun SheaNut_Class : SubClass SheaNut EdibleNut ;
-fun Sheep_Livestock : SubClass Sheep Livestock ;
-
-fun Sheepskin : Class ;
-fun Sheepskin_Class : SubClass Sheepskin Pelt ;
-fun Shellfish : Class ;
-fun Shellfish_Class : SubClass Shellfish Seafood ;
-fun Shrimp : Class ;
-fun Shrimp_Class : SubClass Shrimp Shellfish ;
-fun SierraLeoneLeone : Ind UnitOfCurrency ;
-
-fun SingaporeDollar : Ind UnitOfCurrency ;
-
-fun SisalFiber : Class ;
-fun SisalFiber_Class : SubClass SisalFiber PlantAgriculturalProduct ;
-fun SlovakianKoruna : Ind UnitOfCurrency ;
-
--- Soap is a Surfactant Cleaning mixture used for 
--- personal or minor cleaning. It usually comes in solid moulded form. In 
--- the developed world, synthetic detergents have superseded soap as a 
--- laundry aid. Many soaps are mixtures of sodium or potassium salts of 
--- fatty acids which can be derived from oils or fats by reacting them with 
--- an alkali (such as sodium or potassium hydroxide) at 80_100 degrees Celsius in a 
--- process known as saponification. (from Wikipedia)
-fun Soap : Class ;
-fun Soap_Class : SubClass Soap Surfactant ;
-
--- SocialistEconomy is the Attribute 
--- used to characterize a country in which there is government ownership 
--- or direction of the means of production and distribution.
-fun SocialistEconomy : Ind EconomicSystemAttribute ;
-
-
-fun SomalianShilling : Ind UnitOfCurrency ;
-
-fun Sorghum : Class ;
-fun Sorghum_Class : SubClass Sorghum CerealGrass ;
-fun SorghumFarming : Ind IndustryAttribute ;
-
-fun SorghumGrain : Class ;
-fun SorghumGrain_Class : SubClass SorghumGrain CerealGrain ;
-fun SouthAfricanRand : Ind UnitOfCurrency ;
-
-fun SouthKoreanWon : Ind UnitOfCurrency ;
-
-fun Soya : Class ;
-fun Soya_Class : SubClass Soya PlantAgriculturalProduct ;
-fun Soybean : Class ;
-fun Soybean_Class : SubClass Soybean Bean ;
-fun SpanishPeseta : Ind UnitOfCurrency ;
-
-fun Spice : Class ;
-fun Spice_Class : SubClass Spice (both FruitOrVegetable PlantAgriculturalProduct) ;
-
-fun SpicePepper : Class ;
-fun SpicePepper_Class : SubClass SpicePepper Spice ;
-fun Squash : Class ;
-fun Squash_Class : SubClass Squash (both GroceryProduce Vegetable) ;
-
-fun SriLankanRupee : Ind UnitOfCurrency ;
-
-fun SteelForging : Ind IndustryAttribute ;
-
-fun SteelFoundriesExceptInvestment : Ind IndustryAttribute ;
-
-fun SteelIndustry : Ind IndustryAttribute ;
-
-fun SteelInvestmentFoundries : Ind IndustryAttribute ;
-
-fun SteelMills : Ind IndustryAttribute ;
-
-fun SteelProductManufacturingFromPurchasedSteel : Ind IndustryAttribute ;
-
-fun Steel_MetalProduct : SubClass Steel MetalProduct ;
-
-fun SubsistenceAgricultureEconomy : Ind FinancialSectorAttribute ;
-
-fun SudanesePound : Ind UnitOfCurrency ;
-
-fun SugarBeet : Class ;
-fun SugarBeet_Class : SubClass SugarBeet Vegetable ;
-fun SugarCane : Class ;
-fun SugarCane_Class : SubClass SugarCane (both GroceryProduce Vegetable) ;
-
-fun Sugar_PlantAgriculturalProduct : SubClass Sugar PlantAgriculturalProduct ;
-
-fun Sugar_Substance : SubClass Sugar Substance ;
-
-fun Sunflower : Class ;
-fun Sunflower_Class : SubClass Sunflower (both FloweringPlant PlantAgriculturalProduct) ;
-
-fun SunflowerSeed : Class ;
-fun SunflowerSeed_Class : SubClass SunflowerSeed (both PlantAgriculturalProduct Seed) ;
-
-fun SupportActivitiesForMetalMining : Ind IndustryAttribute ;
-
-fun SupportActivitiesForNonmetallicMineralsExceptFuels : Ind IndustryAttribute ;
-
-fun SupportActivitiesForOilOperations : Ind IndustryAttribute ;
-
-fun SurinameseGuilder : Ind UnitOfCurrency ;
-
-fun SwazilandLilangeni : Ind UnitOfCurrency ;
-
-fun SwedishKrona : Ind UnitOfCurrency ;
-
-fun SweetPepper : Class ;
-fun SweetPepper_Class : SubClass SweetPepper (both GroceryProduce Vegetable) ;
-
-fun SweetPotatoTuber : Class ;
-fun SweetPotatoTuber_Class : SubClass SweetPotatoTuber (both EdibleTuber GroceryProduce) ;
-
-fun SwissFranc : Ind UnitOfCurrency ;
-
-fun SyrianPound : Ind UnitOfCurrency ;
-
-fun TaiwanDollar : Ind UnitOfCurrency ;
-
-fun TajikSomoni : Ind UnitOfCurrency ;
-
-fun TajikSomoniCoin : Class ;
-fun TajikSomoniCoin_Class : SubClass TajikSomoniCoin CurrencyCoin ;
-fun TajikistaniRuble : Ind UnitOfCurrency ;
-
-fun TanzanianShilling : Ind UnitOfCurrency ;
-
-fun TaroTuber : Class ;
-fun TaroTuber_Class : SubClass TaroTuber (both EdibleTuber GroceryProduce) ;
-
-fun TaxHavenEconomy : Ind FinancialSectorAttribute ;
-
-fun TeaLeaf : Class ;
-fun TeaLeaf_Class : SubClass TeaLeaf TeaPlantAerialPart ;
--- TeaPlantAerialPart is the 
--- class of all parts of the tea plant from which tea may be made, 
--- including leaves, stems, and twigs.
-fun TeaPlantAerialPart : Class ;
-fun TeaPlantAerialPart_Class : SubClass TeaPlantAerialPart FruitOrVegetable ;
-
-fun TextileIndustry : Ind IndustryAttribute ;
-
-fun TextileMills : Ind IndustryAttribute ;
-
-fun TextileProduct : Class ;
-fun TextileProduct_Class : SubClass TextileProduct (both Artifact ManufacturedProduct) ;
-
-fun TextileProductMills : Ind IndustryAttribute ;
-
-fun ThaiBaht : Ind UnitOfCurrency ;
-
--- Timber is wood from trees that is 
--- suitable for use for building or other human purposes.
-fun Timber : Class ;
-fun Timber_Class : SubClass Timber (both CompoundSubstance ForestProduct) ;
-
-
-fun Tobacco_PlantAgriculturalProduct : SubClass Tobacco PlantAgriculturalProduct ;
-
-fun TogoFranc : Ind UnitOfCurrency ;
-
-fun Tomato : Class ;
-fun Tomato_Class : SubClass Tomato (both Fruit GroceryProduce) ;
-
-fun TonganPaanga : Ind UnitOfCurrency ;
-
-fun TourismBasedEconomy : Ind FinancialSectorAttribute ;
-
--- TourismIndustry is an Attribute that 
--- describes organizations that provide services or products for travellers 
--- who stay temporarily in a region to experience local attractions. There 
--- is an overlap between TourismIndustry and each of the following 
--- industries: TravelArrangementAndReservationServices, 
--- TravelerAccommodation, MuseumsHistoricalSitesAndSimilarInstitutions, 
--- AmusementGamblingAndRecreationIndustries, and
--- ArtsEntertainmentAndRecreation.
-fun TourismIndustry : Ind IndustryAttribute ;
-
-
-fun TradeBasedEconomy : Ind FinancialSectorAttribute ;
-
-fun TrinidadAndTobagoDollar : Ind UnitOfCurrency ;
-
-fun TropicalFruit : Class ;
-fun TropicalFruit_Class : SubClass TropicalFruit (both Fruit GroceryProduce) ;
-
-fun TunisianDinar : Ind UnitOfCurrency ;
-
-fun TurkeyBird : Class ;
-fun TurkeyBird_Class : SubClass TurkeyBird Poultry ;
-fun TurkeyMeat : Class ;
-fun TurkeyMeat_Class : SubClass TurkeyMeat Meat ;
-fun TurkishLira : Ind UnitOfCurrency ;
-
-fun TurkmenManat : Ind UnitOfCurrency ;
-
-fun Turnip : Class ;
-fun Turnip_Class : SubClass Turnip (both GroceryProduce RootVegetable) ;
-
-fun Turtle : Class ;
-fun Turtle_Class : SubClass Turtle (both Livestock Reptile) ;
-
-fun TuvaluDollar : Ind UnitOfCurrency ;
-
-fun TwoTierLaborMarketEconomy : Ind FinancialSectorAttribute ;
-
--- UNEconomicDevelopmentLevel 
--- is a subclass of EconomicDevelopmentLevel containing terms used to 
--- represent economic development classifications used by UnitedNations 
--- agencies. The top level of this classification scheme includes the 
--- concepts of DevelopedCountry, FormerSovietOrEasternEuropeanCountry, 
--- and LessDevelopedCountry.
-fun UNEconomicDevelopmentLevel : Class ;
-fun UNEconomicDevelopmentLevel_Class : SubClass UNEconomicDevelopmentLevel EconomicDevelopmentLevel ;
-
-fun UgandanShilling : Ind UnitOfCurrency ;
-
-fun UkranianHryvnia : Ind UnitOfCurrency ;
-
--- UnderdevelopedCountry is an 
--- Attribute describing less developed countries that have potential 
--- for above_average economic growth. See also LessDevelopedCountry.
-fun UnderdevelopedCountry : Ind EconomicDevelopmentLevel ;
-
-
-fun UnitedArabEmirateDirham : Ind UnitOfCurrency ;
-
-fun UnitedStatesCentCoin : Class ;
-fun UnitedStatesCentCoin_Class : SubClass UnitedStatesCentCoin CurrencyCoin ;
-fun UnitedStatesDollarBill : Class ;
-fun UnitedStatesDollarBill_Class : SubClass UnitedStatesDollarBill CurrencyBill ;
-fun UnitedStatesFiveCentCoin : Class ;
-fun UnitedStatesFiveCentCoin_Class : SubClass UnitedStatesFiveCentCoin CurrencyCoin ;
-fun UnitedStatesQuarterCoin : Class ;
-fun UnitedStatesQuarterCoin_Class : SubClass UnitedStatesQuarterCoin CurrencyCoin ;
-fun UnitedStatesTenCentCoin : Class ;
-fun UnitedStatesTenCentCoin_Class : SubClass UnitedStatesTenCentCoin CurrencyCoin ;
--- LowerMiddleIncomeCountry is an Attribute representing the World Bank 
--- classification for any country where the per capita GNI is 
--- between 2,996 and 9,266 (inclusive) in UnitedStatesDollars.
-fun UpperMiddleIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
-
-
-fun UruguayanPeso : Ind UnitOfCurrency ;
-
-fun UzbekistaniSom : Ind UnitOfCurrency ;
-
-fun Vanilla : Class ;
-fun Vanilla_Class : SubClass Vanilla Spice ;
-fun Veal : Class ;
-fun Veal_Class : SubClass Veal Meat ;
-fun Vegetable : Class ;
-fun Vegetable_Class : SubClass Vegetable FruitOrVegetable ;
-fun VegetableFarming : Ind IndustryAttribute ;
-
-fun VegetableOil : Class ;
-fun VegetableOil_Class : SubClass VegetableOil PlantAgriculturalProduct ;
-fun VegetableOilIndustry : Ind IndustryAttribute ;
-
-fun VenezuelanBolivar : Ind UnitOfCurrency ;
-
-fun VietnameseDong : Ind UnitOfCurrency ;
-
-fun Walnut : Class ;
-fun Walnut_Class : SubClass Walnut EdibleNut ;
-fun WaterBuffalo : Class ;
-fun WaterBuffalo_Class : SubClass WaterBuffalo (both HoofedMammal Livestock) ;
-
-fun WaterBuffaloMeat : Class ;
-fun WaterBuffaloMeat_Class : SubClass WaterBuffaloMeat Meat ;
-fun Watermelon : Class ;
-fun Watermelon_Class : SubClass Watermelon Melon ;
--- WelfareCapitalism is an Attribute 
--- describing an economy in which the government provides economic subsidies 
--- to unemployed or disabled individuals.
-fun WelfareCapitalism : Ind EconomicSystemAttribute ;
-
-
-fun WesternSamoaNtala : Ind UnitOfCurrency ;
-
-fun WheatFarming : Ind IndustryAttribute ;
-
-fun WineGrape : Class ;
-fun WineGrape_Class : SubClass WineGrape PlantAgriculturalProduct ;
-fun Wine_Beverage : SubClass Wine Beverage ;
-
-fun Wine_PlantAgriculturalProduct : SubClass Wine PlantAgriculturalProduct ;
-
-fun WoodProduct : Class ;
-fun WoodProduct_Class : SubClass WoodProduct ForestProduct ;
-fun WoodProductManufacturing : Ind IndustryAttribute ;
-
-fun WoolFiber : Class ;
-fun WoolFiber_Class : SubClass WoolFiber AnimalAgriculturalProduct ;
--- WorldBankGNIPerCapitaLevel 
--- is the subclass of EconomicDevelopmentLevel containing attributes 
--- that characterize countries according to their per capita gross national 
--- income (GNI), as determined by the WorldBankGroup. The World Bank 
--- uses the Atlas method for making cross_country comparisons of national 
--- income.
-fun WorldBankGNIPerCapitaLevel : Class ;
-fun WorldBankGNIPerCapitaLevel_Class : SubClass WorldBankGNIPerCapitaLevel EconomicDevelopmentLevel ;
-
-fun YamTuber : Class ;
-fun YamTuber_Class : SubClass YamTuber (both EdibleTuber GroceryProduce) ;
-
-fun YemeniRial : Ind UnitOfCurrency ;
-
-fun YlangYlang : Class ;
-fun YlangYlang_Class : SubClass YlangYlang PerfumeEssence ;
-fun Yugoslavia : Ind Nation ;
-
-fun YugoslavianDinar : Ind UnitOfCurrency ;
-
-fun ZaireSezaire : Ind UnitOfCurrency ;
-
-fun ZambianKwacha : Ind UnitOfCurrency ;
-
-fun ZimbabweanDollar : Ind UnitOfCurrency ;
-
-fun ZincIndustry : Ind IndustryAttribute ;
-
-fun ZincManufacturing : Ind IndustryAttribute ;
-
-fun ZincOre : Class ;
-fun ZincOre_Class : SubClass ZincOre (both Mineral MiningProduct) ;
-
-fun ZincOreMining : Ind IndustryAttribute ;
-
-fun ZincProduct : Class ;
-fun ZincProduct_Class : SubClass ZincProduct (both ManufacturedProduct MetalProduct) ;
-
--- (agriculturalProductType ?AREA ?TYPE) means that the 
--- GeopoliticalArea ?AREA produces a crop or other 
--- agricultural product of ?TYPE.
-fun agriculturalProductType: El GeopoliticalArea -> Desc Object -> Formula ;
-
-
--- (agriculturalProductTypeByRank ?AREA ?TYPE ?NTH) means that the 
--- GeopoliticalArea ?AREA produces a crop or other 
--- agricultural product of ?TYPE, which is its ?NTH most important 
--- crop.
-fun agriculturalProductTypeByRank: El GeopoliticalArea -> Desc Object -> Desc PositiveInteger -> Formula ;
-
-
--- (annualElectricityConsumption ?AREA ?AMOUNT) means that the 
--- GeopoliticalArea ?AREA uses ?AMOUNT of electricity (measured in 
--- KilowattHours) annually.
-fun annualElectricityConsumption : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
-
-
--- (annualElectricityExport ?AREA ?AMOUNT) means that the 
--- GeopoliticalArea ?AREA exported the total ?AMOUNT of 
--- electricity (measured in KilowattHours) annually.
-fun annualElectricityExport : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
-
-
--- (annualElectricityImport ?AREA ?AMOUNT) means that the 
--- GeopoliticalArea ?AREA imported the total ?AMOUNT of 
--- electricity (measured in KilowattHours) annually.
-fun annualElectricityImport : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
-
-
--- (annualElectricityProduction ?AREA ?AMOUNT) means that the amount of 
--- electricity generated annually in the GeographicalArea ?AREA is 
--- ?AMOUNT, measured in KilowattHours.
-fun annualElectricityProduction : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
-
-
--- (annualExpendituresOfArea ?AREA ?AMOUNT) means that the annual 
--- budgetary expenditures of the GeopoliticalArea ?AREA are ?AMOUNT, 
--- calculated in U.S. dollars according to the currency exchange rate 
--- method.
-fun annualExpendituresOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (annualExpendituresOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
--- the annual budgetary expenditures of the GeopoliticalArea ?AREA are 
--- ?AMOUNT for the annual TimeInterval indicated by ?PERIOD, calculated 
--- in U.S. dollars according to the currency exchange rate method.
-fun annualExpendituresOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (annualExportTotal ?AREA ?AMOUNT) means that the total 
--- value of exports from the GeopoliticalArea ?AREA is ?AMOUNT 
--- (in UnitedStatesDollars) annually. Export value is calculated 
--- on a Free on Board (F.O.B.) basis.
-fun annualExportTotal : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (annualImportTotal ?AREA ?AMOUNT) means that the total 
--- value of imports to the GeopoliticalArea ?AREA is ?AMOUNT (in 
--- UnitedStatesDollars) annually. Import value is calculated on a Cost, 
--- Insurance, and Freight (C.I.F.) or a Free on Board (F.O.B.) basis.
-fun annualImportTotal : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (annualRevenuesOfArea ?AREA ?AMOUNT) means that the annual budgetary 
--- revenues of the GeopoliticalArea ?AREA are ?AMOUNT, calculated in U.S. 
--- dollars according to the currency exchange rate method.
-fun annualRevenuesOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (annualRevenuesOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
--- annual budgetary revenues of the GeopoliticalArea ?AREA are ?AMOUNT 
--- for the annual TimeInterval indicated by ?PERIOD, calculated in U.S. 
--- dollars according to the currency exchange rate method.
-fun annualRevenuesOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (capitalExpendituresOfArea ?AREA ?AMOUNT) means that the annual 
--- capital expenditures of the GeopoliticalArea ?AREA are ?AMOUNT, 
--- calculated in U.S. dollars according to the currency exchange rate 
--- method. This figure is a portion of the annualExpendituresOfArea 
--- for ?AREA.
-fun capitalExpendituresOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (capitalExpendituresOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
--- the annual capital expenditures of the GeopoliticalArea ?AREA are 
--- ?AMOUNT for the annual TimeInterval indicated by ?PERIOD, calculated in 
--- U.S. dollars according to the currency exchange rate method. This figure 
--- is a portion of the annualExpendituresOfArea for ?AREA in ?PERIOD.
-fun capitalExpendituresOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (currencyCode ?CODE ?UNIT) means 
--- that ?CODE is the InternationalOrganizationForStandardization 
--- (ISO) 4217 alphabetic currency code for the national 
--- CurrencyMeasure ?UNIT.
-fun currencyCode : El SymbolicString -> El UnitOfCurrency -> Formula ;
-
-
--- (currencyExchangePerUSDollar ?AMOUNT ?PERIOD) means that one 
--- UnitedStatesDollar is worth ?AMOUNT (in a non_U.S. CurrencyMeasure), 
--- during the TimeInterval indicated by ?PERIOD. The rate of exchange may 
--- be based either on international market forces or official fiat.
-fun currencyExchangePerUSDollar: El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (currencyExchangeRate ?UNIT ?AMOUNT) means that the currency 
--- denomination ?UNIT is worth ?AMOUNT (which is in another 
--- CurrencyMeasure).
-fun currencyExchangeRate : El UnitOfCurrency -> El CurrencyMeasure -> Formula ;
-
-
--- (currencyExchangeRateInPeriod ?UNIT ?AMOUNT ?PERIOD) means that the 
--- currency denomination ?UNIT is worth ?AMOUNT (which is expressed in another 
--- UnitOfCurrency) during the TimeInterval indicated by ?PERIOD.
-fun currencyExchangeRateInPeriod: El UnitOfCurrency -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (currencyType ?AREA ?UNIT) means 
--- that the official currency used in the GeopoliticalArea ?AREA 
--- is the UnitOfMeasure ?UNIT.
-fun currencyType : El GeopoliticalArea -> El UnitOfCurrency -> Formula ;
-
-
--- The currencyValue is a relation between
--- a physical instrument of currency, such as a bill or coin, and the
--- measure of its worth in a particular currency.
-fun currencyValue: Desc Currency -> El CurrencyMeasure -> Formula ;
-
-
--- (economicAidDonated ?AGENT ?AMOUNT) means that the GeopoliticalArea 
--- ?AREA donated ?AMOUNT of aid (valued in U.S. dollars) to developing 
--- countries and multilateral organizations. This figure covers 'net 
--- official development assistance' (ODA), which is net financial assistance 
--- from nations belonging to the 
--- OrganizationForEconomicCooperationAndDevelopment (OECD), with the main 
--- goal of promoting economic development and welfare. Such aid contains a 
--- grant element of at least 25%. This statistic does not cover private 
--- flows of assistance or other official flows (OOF).
-fun economicAidDonated : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (economicAidDonatedInPeriod ?AGENT ?AMOUNT ?PERIOD) means that the 
--- GeopoliticalArea ?AGENT donated ?AMOUNT of aid (valued in U.S. dollars) 
--- to developing countries and multilateral organizations during the 
--- TimeInterval indicated by ?PERIOD. This figure covers 'net official 
--- development assistance' (ODA), which is net financial assistance from 
--- nations belonging to the 
--- OrganizationForEconomicCooperationAndDevelopment (OECD), with the main 
--- goal of promoting economic development and welfare. Such aid contains a 
--- grant element of at least 25%. This statistic does not cover private 
--- flows of assistance or other official flows (OOF).
-fun economicAidDonatedInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (economicAidReceivedNet ?AREA ?AMOUNT) means that the 
--- GeopoliticalArea ?AREA had a net inflow of Official Development Finance 
--- (ODF) of ?AMOUNT. ODF includes funds from the World Bank, the IMF, other 
--- international organizations, and individual donor nations, including both 
--- grants and loans. The figure includes formal commitments of aid not yet 
--- disbursed. The figure is the net amount of inflow after deducting 
--- repayments, valued in U.S. dollars.
-fun economicAidReceivedNet : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (economicAidReceivedNetInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
--- GeopoliticalArea ?AREA had a net inflow of Official Development Finance 
--- (ODF) of ?AMOUNT during the TimeInterval indicated by ?PERIOD. ODF 
--- includes funds from the World Bank, the IMF, other international 
--- organizations, and individual donor nations, including both grants and 
--- loans. The figure includes formal commitments of aid not yet disbursed. 
--- The figure is the net amount of inflow after deducting repayments, 
--- valued in U.S. dollars.
-fun economicAidReceivedNetInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (economyType ?POLITY ?TYPE) means that the 
--- GeopoliticalArea ?POLITY has an economic system of TYPE.
-fun economyType : El Agent -> El EconomicAttribute -> Formula ;
-
-
--- (electricityConsumptionInPeriod ?AREA ?AMOUNT ?YEAR) means that 
--- the GeopoliticalArea ?AREA used ?AMOUNT of electricity (measured in 
--- KilowattHours) during the TimeInterval indicated by ?YEAR.
-fun electricityConsumptionInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
-
-
--- (electricityExportInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
--- the GeopoliticalArea ?AREA exported the total ?AMOUNT of electricity 
--- (measured in KilowattHours) during the TimeInterval indicated 
--- by ?PERIOD.
-fun electricityExportInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
-
-
--- (electricityFractionFromSource ?AREA ?SOURCE ?FRACTION) means that in 
--- the GeopoliticalArea ?AREA, ?SOURCE provides ?FRACTION of the total 
--- electricity production.
-fun electricityFractionFromSource: El GeopoliticalArea -> Desc PowerGeneration -> El RealNumber -> Formula ;
-
-
--- (electricityFractionFromSourceInPeriod ?AREA ?SOURCE ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, ?SOURCE provides ?FRACTION 
--- of the total electricity production during the TimeInterval indicated 
--- by ?PERIOD.
-fun electricityFractionFromSourceInPeriod: El GeopoliticalArea -> Desc PowerGeneration -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (electricityImportInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
--- the GeopoliticalArea ?AREA imported the total ?AMOUNT of electricity 
--- (measured in KilowattHours) during the TimeInterval indicated 
--- by ?PERIOD.
-fun electricityImportInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
-
-
--- (electricityProductionInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
--- GeopoliticalArea ?AREA generates ?AMOUNT of electricity, measured in 
--- KilowattHours, during the TimeInterval indicated by ?PERIOD.
-fun electricityProductionInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
-
-
--- (exportCommodityType ?AREA ?TYPE) means that the GeopoliticalArea 
--- ?AREA exports the commodity ?TYPE.
-fun exportCommodityType: El GeopoliticalArea -> Desc Object -> Formula ;
-
-
--- (exportCommodityTypeByRank ?AREA ?TYPE ?NTH) means that the 
--- GeopoliticalArea ?AREA has the commodity ?TYPE as its ?NTH 
--- most valuable export.
-fun exportCommodityTypeByRank: El GeopoliticalArea -> Desc Object -> El PositiveInteger -> Formula ;
-
-
--- (exportPartner ?AGENT1 ?AGENT2) 
--- means that the Agent ?AGENT1 exports goods to the Agent 
--- ?AGENT2.
-fun exportPartner : El Agent -> El Agent -> Formula ;
-
-
--- (exportPartnerByFraction ?AREA1 ?AREA2 ?FRACTION) means that 
--- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
--- ?AREA2 and receives ?FRACTION of the exportTotalInPeriod of ?AREA1, 
--- based on U.S. dollar value of exports.
-fun exportPartnerByFraction : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Formula ;
-
-
--- (exportPartnerByFractionInPeriod ?AREA1 ?AREA2 ?FRACTION ?PERIOD) means 
--- that the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
--- ?AREA2 and receives ?FRACTION of the exportTotalInPeriod of ?AREA1 
--- in the TimeInterval ?PERIOD, based on U.S. dollar value of exports.
-fun exportPartnerByFractionInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (exportPartnerByRank ?AREA1 ?AREA2 ?NTH) means that 
--- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
--- ?AREA2 and is the ?NTH most important export partner of ?AREA1, 
--- based on U.S. dollar value of exports.
-fun exportPartnerByRank : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Formula ;
-
-
--- (exportPartnerByRankInPeriod ?AREA1 ?AREA2 ?NTH ?PERIOD) means that 
--- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
--- ?AREA2 and is the ?NTH most important export partner of ?AREA1, 
--- in the TimeInterval ?PERIOD, based on U.S. dollar value of exports.
-fun exportPartnerByRankInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Desc TimeInterval -> Formula ;
-
-
--- (exportPartnerInPeriod ?AGENT1 ?AGENT2 ?PERIOD) means that the Agent 
--- ?AGENT1 exports goods to the Agent ?AGENT2 during the TimeInterval 
--- indicated by ?PERIOD.
-fun exportPartnerInPeriod: El Agent -> El Agent -> Desc TimeInterval -> Formula ;
-
-
--- (exportTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
--- total value of exports from the GeopoliticalArea ?AREA is ?AMOUNT 
--- (in UnitedStatesDollars) for the TimeInterval indicated by ?PERIOD. 
--- Export value is calculated on a Free on Board (F.O.B.) basis.
-fun exportTotalInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (externalDebt ?COUNTRY ?AMOUNT) means 
--- that the GeopoliticalArea ?COUNTRY owes the total sum ?AMOUNT of debt 
--- (public and private) to nonresidents. The amount is valued in U.S. 
--- dollars but may be repayable in foreign currency, goods, or services.
-fun externalDebt : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (externalDebtInPeriod ?COUNTRY ?AMOUNT ?PERIOD) means that the 
--- GeopoliticalArea ?COUNTRY owes the total sum ?AMOUNT of debt (public 
--- and private) to nonresidents during the TimeInterval indicated by 
--- ?PERIOD. The amount is valued in U.S. dollars but may be repayable in 
--- foreign currency, goods, or services.
-fun externalDebtInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- The predicate fiscalYearPeriod 
--- indicates the period that an Agent or Organization uses as its 
--- 12_month accounting period. (fiscalYearPeriod ?AGENT Year) means 
--- that ?AGENT observes its 12_month accounting period during the 
--- regular calendar year (CY), from January to December. For 
--- fiscal years with other beginning and ending months (FYs), use 
--- (fiscalYearPeriod ?AGENT (RecurrentTimeIntervalFn ?STARTMONTH ?ENDMONTH)). 
--- For example, (fiscalYearPeriod (GovernmentFn UnitedStates) 
--- (RecurrentTimeIntervalFn October September)). For FYs that begin 
--- or end mid_month, days may be specified within RecurrentTimeIntervalFn.
-fun fiscalYearPeriod: El Agent -> Desc TimeInterval -> Formula ;
-
-
--- (highestDecileShareOfHouseholdIncome ?AREA ?FRACTION) means that 
--- in the GeopoliticalArea ?AREA, the highest decile (90_100%) of 
--- households with respect to household income (or consumption) had 
--- ?FRACTION amount of the total household income (or consumption). 
--- Data from different countries may not be directly comparable due to 
--- variation in the basis of the data (e.g., based on income versus 
--- based on consumption).
-fun highestDecileShareOfHouseholdIncome : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (highestDecileShareOfHouseholdIncomeInPeriod ?AREA ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, the highest decile (90_100%) 
--- of households with respect to household income (or consumption) had 
--- ?FRACTION amount of the total household income (or consumption), during 
--- the TimeInterval indicated by ?PERIOD. Data from different countries 
--- may not be directly comparable due to variation in the basis of the data 
--- (e.g., based on household income versus based on household consumption).
-fun highestDecileShareOfHouseholdIncomeInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (importCommodityType ?AREA ?TYPE) means that the GeopoliticalArea 
--- ?AREA imports the commodity ?TYPE.
-fun importCommodityType: El GeopoliticalArea -> Desc Object -> Formula ;
-
-
--- (importCommodityTypeByRank ?AREA ?TYPE ?NTH) means that the 
--- GeopoliticalArea ?AREA has the commodity ?TYPE as its ?NTH 
--- most valuable import.
-fun importCommodityTypeByRank: El GeopoliticalArea -> Desc Object -> El PositiveInteger -> Formula ;
-
-
--- (importPartner ?AGENT1 ?AGENT2) means 
--- that the Agent ?AGENT1 imports goods from the Agent ?AGENT2.
-fun importPartner : El Agent -> El Agent -> Formula ;
-
-
--- (importPartnerByFraction ?AREA1 ?AREA2 ?FRACTION) means that 
--- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
--- ?AREA2 and provides ?FRACTION of the importTotalInPeriod of ?AREA1, 
--- based on U.S. dollar value of imports.
-fun importPartnerByFraction : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Formula ;
-
-
--- (importPartnerByFractionInPeriod ?AREA1 ?AREA2 ?FRACTION ?PERIOD) means 
--- that the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
--- ?AREA2 and provides ?FRACTION of the importTotalInPeriod of ?AREA1 
--- during the TimeInterval ?PERIOD, in U.S. dollar value of imports.
-fun importPartnerByFractionInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (importPartnerByRank ?AREA1 ?AREA2 ?NTH) means that 
--- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
--- ?AREA2 is the ?NTH most important import partner of ?AREA1, based on 
--- U.S. dollar value of imports.
-fun importPartnerByRank : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Formula ;
-
-
--- (importPartnerByRankInPeriod ?AREA1 ?AREA2 ?NTH ?PERIOD) means that 
--- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
--- ?AREA2 is the ?NTH most important import partner of ?AREA1 during 
--- the TimeInterval ?PERIOD, based on U.S. dollar value of imports.
-fun importPartnerByRankInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Desc TimeInterval -> Formula ;
-
-
--- (importPartnerInPeriod ?AGENT1 ?AGENT2 ?PERIOD) means that the Agent 
--- ?AGENT1 imports goods from the Agent ?AGENT2 during the TimeInterval 
--- indicated by ?PERIOD.
-fun importPartnerInPeriod: El Agent -> El Agent -> Desc TimeInterval -> Formula ;
-
-
--- (importTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
--- total value of imports to the GeopoliticalArea ?AREA is ?AMOUNT 
--- (in UnitedStatesDollars) for the TimeInterval indicated by ?PERIOD. 
--- Import value is calculated on a Cost, Insurance, and Freight (C.I.F.) 
--- or a Free on Board (F.O.B.) basis.
-fun importTotalInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (incomeDistributionByGiniIndex ?AREA ?INDEX) means that in the 
--- GeopoliticalArea ?AREA, the distribution of family income is ?INDEX, 
--- as measured by the Gini index for family income distribution.
-fun incomeDistributionByGiniIndex : El GeopoliticalArea -> El NonnegativeRealNumber -> Formula ;
-
-
--- (incomeDistributionByGiniIndexInPeriod ?AREA ?INDEX ?PERIOD) means that 
--- in the GeopoliticalArea ?AREA, the distribution of family income is 
--- ?INDEX, as measured by the Gini index, during the TimeInterval indicated 
--- by ?PERIOD.
-fun incomeDistributionByGiniIndexInPeriod: El GeopoliticalArea -> El NonnegativeRealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (industrialProductionGrowthRate ?AREA ?RATE) means that in 
--- the GeopoliticalArea ?AREA, the annual percentage increase in 
--- industrial production is ?RATE.
-fun industrialProductionGrowthRate : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (industrialProductionGrowthRateInPeriod ?AREA ?RATE ?PERIOD) means 
--- that in the GeopoliticalArea ?AREA, the annual percentage increase in 
--- industrial production is ?RATE, for the TimeInterval ?PERIOD.
-fun industrialProductionGrowthRateInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (industryOfArea ?AREA ?SECTOR) 
--- means that the GeopoliticalArea ?AREA produces goods or services 
--- in the economic area ?SECTOR.
-fun industryOfArea : El GeopoliticalArea -> El IndustryAttribute -> Formula ;
-
-
--- (industryProductType ?INDUSTRY ?TYPE) means that organizations with 
--- the IndustryAttribute ?INDUSTRY produce products of the kind ?TYPE.
-fun industryProductType: El IndustryAttribute -> Desc Object -> Formula ;
-
-
--- (industryRankByOutput ?AREA ?SECTOR ?NTH) means that in the 
--- GeopoliticalArea ?AREA, the economic area ?SECTOR is ?NTH with 
--- respect to the value of its annual output.
-fun industryRankByOutput : El GeopoliticalArea -> El IndustryAttribute -> El PositiveInteger -> Formula ;
-
-
--- (industryServiceType ?INDUSTRY ?TYPE) means that organizations with 
--- the IndustryAttribute ?INDUSTRY provide services of the kind ?TYPE.
-fun industryServiceType: El IndustryAttribute -> Desc IntentionalProcess -> Formula ;
-
-
--- (inflationRateOfConsumerPrices ?AREA ?FRACTION) means that in the 
--- GeopoliticalArea ?AREA, the annual change in consumer prices was 
--- ?FRACTION, compared with prices from the previous year.
-fun inflationRateOfConsumerPrices : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (inflationRateOfConsumerPricesInPeriod ?AREA ?FRACTION ?PERIOD) means 
--- that in the GeopoliticalArea ?AREA, the annual change in consumer 
--- prices was ?FRACTION, for the TimeInterval indicated by ?PERIOD, 
--- compared with prices from the prior period.
-fun inflationRateOfConsumerPricesInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (laborForceFractionByOccupation ?AREA ?SECTOR ?FRACTION) 
--- means that in the GeopoliticalArea ?AREA, workers in the job area 
--- ?SECTOR make up ?FRACTION of the labor force. The unemployed are not 
--- included in these figures. Occupation may be indicated by an 
--- OccupationalRole or an IndustryAttribute.
-fun laborForceFractionByOccupation : El GeopoliticalArea -> El Attribute -> El RealNumber -> Formula ;
-
-
--- (laborForceFractionByOccupationInPeriod ?AREA ?SECTOR ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, workers in the job area 
--- ?SECTOR make up ?FRACTION of the labor force, during the TimeInterval 
--- indicated by ?PERIOD. The unemployed are not included in these figures. 
--- Occupation may be indicated by an OccupationalRole or an 
--- IndustryAttribute.
-fun laborForceFractionByOccupationInPeriod: El GeopoliticalArea -> El Attribute -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (laborForceTotal ?AREA ?AMOUNT) means that the total labor 
--- force of the GeopoliticalArea ?AREA is ?AMOUNT. This includes 
--- unemployed workers.
-fun laborForceTotal : El GeopoliticalArea -> El NonnegativeRealNumber -> Formula ;
-
-
--- (laborForceTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the total 
--- labor force of the GeopoliticalArea ?AREA is ?AMOUNT during the 
--- TimeInterval indicated by ?PERIOD. This includes unemployed workers.
-fun laborForceTotalInPeriod: El GeopoliticalArea -> El NonnegativeRealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (lowestDecileShareOfHouseholdIncome ?AREA ?FRACTION) means that 
--- in the GeopoliticalArea ?AREA, the lowest decile (0_10%) of 
--- households with respect to household income (or consumption) had 
--- ?FRACTION amount of the total household income (or consumption). 
--- Data from different countries may not be directly comparable due to 
--- variation in the basis of the data (e.g., based on income versus based 
--- on consumption).
-fun lowestDecileShareOfHouseholdIncome : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (lowestDecileShareOfHouseholdIncomeInPeriod ?AREA ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, the lowest decile (0_10%) 
--- of households with respect to household income (or consumption) had 
--- ?FRACTION amount of the total household income (or consumption), during 
--- the TimeInterval indicated by ?PERIOD. Data from different countries 
--- may not be directly comparable due to variation in the basis of the data 
--- (e.g., based on household income versus based on household consumption).
-fun lowestDecileShareOfHouseholdIncomeInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (organizationProductType ?BUSINESS ?TYPE) means that the Organization 
--- ?BUSINESS produces products of the kind ?TYPE.
-fun organizationProductType: El Organization -> Desc Object -> Formula ;
-
-
--- (organizationServiceType ?BUSINESS ?TYPE) means that the Organization 
--- ?BUSINESS provides services of the kind ?TYPE.
-fun organizationServiceType: El Organization -> Desc IntentionalProcess -> Formula ;
-
-
--- (perCapitaGDP ?AREA ?AMOUNT) means 
--- that the Gross Domestic Product, on a per capita basis, for the 
--- GeopoliticalArea ?AREA is ?AMOUNT, calculated in U.S. dollars on a 
--- purchasing power parity basis. See PPPBasedEconomicValuation.
-fun perCapitaGDP : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (perCapitaGDPInPeriod ?AREA ?AMOUNT ?PERIOD) means that the Gross 
--- Domestic Product, on a per capita basis, for the GeopoliticalArea 
--- ?AREA is ?AMOUNT during the period indicated by ?PERIOD, calculated in 
--- U.S. dollars on a purchasing power parity basis. See 
--- PPPBasedEconomicValuation.
-fun perCapitaGDPInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (populationFractionBelowPovertyLine ?AREA ?FRACTION) means that in 
--- the GeopoliticalArea ?AREA, the segment of the population living 
--- below the (locally defined) poverty line is ?FRACTION. Note that the 
--- definition of the poverty line varies internationally.
-fun populationFractionBelowPovertyLine : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (populationFractionBelowPovertyLineInPeriod ?AREA ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, the segment of the population 
--- living below the (locally defined) poverty line is ?FRACTION during the 
--- TimeInterval indicated by ?PERIOD. Note that the definition of the 
--- poverty line varies internationally.
-fun populationFractionBelowPovertyLineInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (realGrowthRateOfGDP ?AREA ?RATE) 
--- means that the annual rate of growth in the Gross Domestic Product (GDP) 
--- for the GeopoliticalArea ?AREA is the fraction ?RATE, adjusted for 
--- inflation, with GDP calculated on a purchasing power parity basis. 
--- See PPPBasedEconomicValuation.
-fun realGrowthRateOfGDP : El GeopoliticalArea -> El RealNumber -> Formula ;
-
-
--- (realGrowthRateOfGDPInPeriod ?AREA ?RATE ?PERIOD) means that the 
--- annual rate of growth in the Gross Domestic Product (GDP) for the 
--- GeopoliticalArea ?AREA is the fraction ?RATE in the period ?PERIOD, 
--- adjusted for inflation, with GDP calculated on a purchasing power 
--- parity basis. See PPPBasedEconomicValuation.
-fun realGrowthRateOfGDPInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (resultType ?PROCESS ?TYPE) means that 
--- the Process ?PROCESS produces some result(s) of the type ?TYPE.
-fun resultType: El Process -> Desc Object -> Formula ;
-
-
--- (sectorCompositionOfGDP ?AREA ?SECTOR ?FRACTION) means 
--- that in the GeopoliticalArea ?AREA, the economic sector ?SECTOR 
--- contributes the amount ?FRACTION to the Gross National Product.
-fun sectorCompositionOfGDP : El GeopoliticalArea -> El IndustryAttribute -> El RealNumber -> Formula ;
-
-
--- (sectorCompositionOfGDPInPeriod ?AREA ?SECTOR ?FRACTION ?PERIOD) 
--- means that in the GeopoliticalArea ?AREA, the economic sector ?SECTOR 
--- contributes the amount ?FRACTION to the Gross National Product 
--- during the TimeInterval indicated by ?PERIOD.
-fun sectorCompositionOfGDPInPeriod: El GeopoliticalArea -> El IndustryAttribute -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (sectorValueOfGDP ?AREA ?SECTOR ?AMOUNT) means that for the 
--- GeopoliticalArea ?AREA, the economic sector ?SECTOR contributes 
--- ?AMOUNT to the Gross National Product, evaluated in U.S. dollars on 
--- a purchasing power parity basis. See PPPBasedEconomicValuation.
-fun sectorValueOfGDP : El GeopoliticalArea -> El IndustryAttribute -> El CurrencyMeasure -> Formula ;
-
-
--- (sectorValueOfGDPInPeriod ?AREA ?SECTOR ?AMOUNT ?PERIOD) means that 
--- for the GeopoliticalArea ?AREA, the economic sector ?SECTOR contributes 
--- ?AMOUNT to the Gross National Product during the TimeInterval indicated 
--- by ?PERIOD, evaluated in U.S. dollars on a purchasing power parity basis. 
--- See PPPBasedEconomicValuation.
-fun sectorValueOfGDPInPeriod: El GeopoliticalArea -> El IndustryAttribute -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (totalGDP ?AREA ?AMOUNT) means that the value 
--- of all final goods and services produced within the GeopoliticalArea 
--- ?AREA is ?AMOUNT, in U.S. dollars, calculated on a purchasing power parity 
--- basis. This represents Gross Domestic Product (GDP). See 
--- PPPBasedEconomicValuation.
-fun totalGDP : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
-
-
--- (totalGDPInPeriod ?AREA ?AMOUNT ?PERIOD) 
--- means that the value of all final goods and services produced within 
--- the GeopoliticalArea ?AREA is ?AMOUNT in the period indicated by ?PERIOD, 
--- measured in U.S. dollars calculated on a purchasing power parity basis. 
--- (See PPPBasedEconomicValuation.) This is the Gross Domestic Product for 
--- ?AREA for a specified period.
-fun totalGDPInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
-
-
--- (unemploymentRateOfArea ?AREA ?RATE ?PERIOD) means that the 
--- unemployment rate in the GeographicalArea ?AREA is ?RATE, 
--- during the TimeInterval indicated by ?PERIOD.
-fun unemploymentRateOfArea: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
-
-
--- (unemploymentRateOfAreaInPeriod ?AREA ?RATE ?PERIOD) means that the 
--- unemployment rate in the GeographicalArea ?AREA is ?RATE, during the 
--- TimeInterval indicated by ?PERIOD.
-fun unemploymentRateOfAreaInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+abstract Economy = MidLevelOntology, Transportation, Geography ** {
+
+  --  AdvancedDevelopingCountry 
+  -- is an Attribute used to describe a LessDevelopedCountry (LDC) 
+  -- that is undergoing rapid industrial development. Also called 'newly 
+  -- industrializing economy' (or 'country').
+  fun AdvancedDevelopingCountry : Ind EconomicDevelopmentLevel ;
+
+  -- AdvancedEconomy is an Attribute 
+  -- used to represent the InternationalMonetaryFund's top category of 
+  -- development levels (AdvancedEconomy,, countries in transition, and 
+  -- developing countries. Generally (but not exactly) corresponds with 
+  -- DevelopedCountry classification used by UnitedNations agencies.
+  fun AdvancedEconomy : Ind IMFDevelopmentLevel ;
+
+  fun AfghanAfghani : Ind UnitOfCurrency ;
+
+  fun AfghanAfghaniCoin : Class ;
+  fun AfghanAfghaniCoin_Class : SubClass AfghanAfghaniCoin CurrencyCoin ;
+
+  fun AgriculturalSector : Ind IndustryAttribute ;
+
+  fun AgricultureBasedEconomy : Ind FinancialSectorAttribute ;
+
+  -- (AgricultureFn ?PRODUCT) denotes the 
+  -- subclass of Agriculture processes in which the AgriculturalProduct 
+  -- ?PRODUCT is cultivated.
+  fun AgricultureFn: Desc AgriculturalProduct -> Desc Agriculture ;
+
+  fun AgricultureForestryFishingAndHunting : Ind IndustryAttribute ;
+
+  fun AlbanianLek : Ind UnitOfCurrency ;
+
+  fun Alfalfa : Class ;
+  fun Alfalfa_Class : SubClass Alfalfa (both Fodder (both Plant PlantAgriculturalProduct)) ;
+
+  fun AlgerianDinar : Ind UnitOfCurrency ;
+
+  fun AlmondNut : Class ;
+  fun AlmondNut_Class : SubClass AlmondNut EdibleNut ;
+
+  -- Aloes is the class of 
+  -- PlantAgriculturalProducts that are dried juice of 
+  -- the Aloe plant.
+  fun Aloes : Class ;
+  fun Aloes_Class : SubClass Aloes PlantAgriculturalProduct ;
+
+  -- Alumina is the naturally occurring oxide 
+  -- of aluminum which is found in corundum and bauxite.
+  fun Alumina : Class ;
+  fun Alumina_Class : SubClass Alumina CompoundSubstance ;
+
+  fun AluminumMetal : Class ;
+  fun AluminumMetal_Class : SubClass AluminumMetal MetalProduct ;
+
+  fun AngolanKwanza : Ind UnitOfCurrency ;
+
+  -- AnimalSkin is the subclass of BodyCovering that 
+  -- includes the skins, or parts of skins, of animals.
+  fun AnimalSkin : Class ;
+  fun AnimalSkin_Class : SubClass AnimalSkin BodyCovering ;
+
+  -- A FruitOrVegetable that has a tart to sweet taste and a spherical shape.
+  fun Apple : Class ;
+  fun Apple_Class : SubClass Apple (both (both Food Fruit) GroceryProduce) ;
+
+  fun ArgentineAustral : Ind UnitOfCurrency ;
+
+  fun ArmenianDram : Ind UnitOfCurrency ;
+
+  -- Asphalt is a highly viscous liquid that occurs 
+  -- naturally in most crude petroleums. Asphalt can be separated from the 
+  -- other components in crude oil (such as naphtha, gasoline and diesel) by 
+  -- the process of fractional distillation, usually under vacuum conditions. 
+  -- Both tars and asphalts are classified as bitumens, a classification that 
+  -- includes all materials entirely soluble in carbon disulphide. Asphalt is 
+  -- commonly used in roofing shingles, and combined with mineral aggregate to 
+  -- make asphalt concrete for making roads. (definition from Wikipedia)
+  fun Asphalt : Class ;
+  fun Asphalt_Class : SubClass Asphalt RefinedPetroleumProduct ;
+
+  fun AsphaltPavingRoofingAndSaturatedMaterialsManufacturing : Ind IndustryAttribute ;
+
+  fun AustralianDollar : Ind UnitOfCurrency ;
+
+  fun AustrianSchilling : Ind UnitOfCurrency ;
+
+  -- A TropicalFruit that is shaped like a pear and has a dark green skin and a rich meat.
+  fun Avocado : Class ;
+  fun Avocado_Class : SubClass Avocado (both Food TropicalFruit) ;
+
+  fun AzerbaijaniManat : Ind UnitOfCurrency ;
+
+  fun BahamianDollar : Ind UnitOfCurrency ;
+
+  fun BahrainianDinar : Ind UnitOfCurrency ;
+
+  fun BalsaWood : Class ;
+  fun BalsaWood_Class : SubClass BalsaWood WoodProduct ;
+
+  fun Banana : Class ;
+  fun Banana_Class : SubClass Banana (both GroceryProduce TropicalFruit) ;
+
+  fun BangladeshiTaka : Ind UnitOfCurrency ;
+
+  fun BarbadosDollar : Ind UnitOfCurrency ;
+
+  fun BarleyFarming : Ind IndustryAttribute ;
+
+  fun BarleyGrain : Class ;
+  fun BarleyGrain_Class : SubClass BarleyGrain CerealGrain ;
+
+  -- Bauxite is an impure mixture of earthy 
+  -- hydrous aluminum oxides and hydroxides that is the principal 
+  -- source of aluminum.
+  fun Bauxite : Class ;
+  fun Bauxite_Class : SubClass Bauxite (both MiningProduct Mixture) ;
+
+  fun Bean : Class ;
+  fun Bean_Class : SubClass Bean Legume ;
+
+  fun BelarusianRubel : Ind UnitOfCurrency ;
+
+  fun BelgianFranc : Ind UnitOfCurrency ;
+
+  fun BelizeDollar : Ind UnitOfCurrency ;
+
+  fun BeninFranc : Ind UnitOfCurrency ;
+
+  fun BermudaDollar : Ind UnitOfCurrency ;
+
+  fun Berry : Class ;
+  fun Berry_Class : SubClass Berry (both Fruit GroceryProduce) ;
+
+  -- BeverageProduct is the class of products 
+  -- that are Beverages, packaged or unpackaged.
+  fun BeverageProduct : Class ;
+  fun BeverageProduct_Class : SubClass BeverageProduct Product ;
+
+  fun BhutaneseNgultrum : Ind UnitOfCurrency ;
+
+  fun BlackPepper : Class ;
+  fun BlackPepper_Class : SubClass BlackPepper Spice ;
+
+  fun BolivianBoliviano : Ind UnitOfCurrency ;
+
+  fun BotswanaPula : Ind UnitOfCurrency ;
+
+  fun BrazilianReal : Ind UnitOfCurrency ;
+
+  fun Breadfruit : Class ;
+  fun Breadfruit_Class : SubClass Breadfruit (both GroceryProduce TropicalFruit) ;
+
+  fun BritishPound : Ind UnitOfCurrency ;
+
+  fun BritishPoundCoin : Class ;
+  fun BritishPoundCoin_Class : SubClass BritishPoundCoin CurrencyCoin ;
+
+  fun BruneiDollar : Ind UnitOfCurrency ;
+
+  fun BulgarianLev : Ind UnitOfCurrency ;
+
+  fun BurkinaFasoFranc : Ind UnitOfCurrency ;
+
+  fun BurundiFranc : Ind UnitOfCurrency ;
+
+  fun Cabbage : Class ;
+  fun Cabbage_Class : SubClass Cabbage (both GroceryProduce Vegetable) ;
+
+  fun CambodianRiel : Ind UnitOfCurrency ;
+
+  fun Camel : Class ;
+  fun Camel_Class : SubClass Camel (both Livestock Mammal) ;
+
+  fun CameroonFranc : Ind UnitOfCurrency ;
+
+  fun CanadianDollar : Ind UnitOfCurrency ;
+
+  fun CanadianDollarCoin : Class ;
+  fun CanadianDollarCoin_Class : SubClass CanadianDollarCoin CurrencyCoin ;
+
+  fun Cannabis : Class ;
+  fun Cannabis_Class : SubClass Cannabis PlantAgriculturalProduct ;
+
+  fun CapeVerdeEscudo : Ind UnitOfCurrency ;
+
+  -- CapitalGoods are those that are used 
+  -- in the production of other Products. For example, raw materials 
+  -- from which end products are manufactured, or machines and other 
+  -- structures used in the production process.
+  fun CapitalGood : Class ;
+  fun CapitalGood_Class : SubClass CapitalGood Product ;
+
+  -- CapitalistEconomy is the 
+  -- Attribute used to characterize a country whose economy is based 
+  -- on private ownership of the means of production and distribution, 
+  -- and on private accumulation of capital.
+  fun CapitalistEconomy : Ind EconomicSystemAttribute ;
+
+  fun Cardamom : Class ;
+  fun Cardamom_Class : SubClass Cardamom Spice ;
+
+  fun Carrot : Class ;
+  fun Carrot_Class : SubClass Carrot (both GroceryProduce RootVegetable) ;
+
+  fun CashewNut : Class ;
+  fun CashewNut_Class : SubClass CashewNut EdibleNut ;
+
+  fun Cassava : Class ;
+  fun Cassava_Class : SubClass Cassava (both GroceryProduce RootVegetable) ;
+
+  fun Cattle : Class ;
+  fun Cattle_Class : SubClass Cattle (both HoofedMammal Livestock) ;
+
+  fun Cauliflower : Class ;
+  fun Cauliflower_Class : SubClass Cauliflower (both GroceryProduce Vegetable) ;
+
+  fun Caviar : Class ;
+  fun Caviar_Class : SubClass Caviar FishRoe ;
+
+  fun CaymanIslandsDollar : Ind UnitOfCurrency ;
+
+  -- Cement is a subclass of CompoundSubstance 
+  -- whose instances may contain various minerals or ores, prepared by 
+  -- heating and pulverizing, and used in binding Concrete or in laying 
+  -- brick or stone.
+  fun Cement : Class ;
+  fun Cement_Class : SubClass Cement (both CompoundSubstance ManufacturedProduct) ;
+
+  fun CentralAfricanRepublicFranc : Ind UnitOfCurrency ;
+
+  -- CentrallyPlannedEconomy 
+  -- is a term used mainly to describe communist or formerly communist 
+  -- states, many of which are now evolving away from command economies 
+  -- towards market_oriented systems. Also known as a 'command economy'.
+  fun CentrallyPlannedEconomy : Ind EconomicSystemAttribute ;
+
+  fun CerealGrainFarming : Ind IndustryAttribute ;
+
+  fun CerealGrain_Vegetable : SubClass CerealGrain Vegetable ;
+
+  fun CerealGrass : Class ;
+  fun CerealGrass_Class : SubClass CerealGrass Grass ;
+
+  fun ChadianFranc : Ind UnitOfCurrency ;
+
+  fun Cheese : Class ;
+  fun Cheese_Class : SubClass Cheese (both DairyProduct PreparedFood) ;
+
+  -- ChemicalProduct is the subclass 
+  -- of Product comprising all chemical compounds that are end products 
+  -- or industrial products used in the manufacture of end products.
+  fun ChemicalProduct : Class ;
+  fun ChemicalProduct_Class : SubClass ChemicalProduct (both CompoundSubstance ManufacturedProduct) ;
+
+  fun ChileanPeso : Ind UnitOfCurrency ;
+
+  fun ChineseYuan : Ind UnitOfCurrency ;
+
+  fun Chrysanthemum : Class ;
+  fun Chrysanthemum_Class : SubClass Chrysanthemum (both FloweringPlant PlantAgriculturalProduct) ;
+
+  fun Cinnamon : Class ;
+  fun Cinnamon_Class : SubClass Cinnamon Spice ;
+
+  fun CitrusFruit : Class ;
+  fun CitrusFruit_Class : SubClass CitrusFruit (both Fruit GroceryProduce) ;
+
+  fun ClothesDryer : Class ;
+  fun ClothesDryer_Class : SubClass ClothesDryer MajorAppliance ;
+
+  fun ClothesWashingMachine : Class ;
+  fun ClothesWashingMachine_Class : SubClass ClothesWashingMachine MajorAppliance ;
+
+  fun Clove : Class ;
+  fun Clove_Class : SubClass Clove Spice ;
+
+  fun Clover : Class ;
+  fun Clover_Class : SubClass Clover (both Fodder (both Plant PlantAgriculturalProduct)) ;
+
+  fun CoalIndustry : Ind IndustryAttribute ;
+
+  fun CoalMining : Ind IndustryAttribute ;
+
+  fun CoalProductsManufacturing : Ind IndustryAttribute ;
+
+  -- Coca is the class of PlantAgriculturalProducts consisting of the parts, 
+  -- especially leaves, of the coca plant. Coca leaves are the source of Cocaine.
+  fun Coca : Class ;
+  fun Coca_Class : SubClass Coca PlantAgriculturalProduct ;
+
+  fun Cocaine : Class ;
+  fun Cocaine_Class : SubClass Cocaine (both Narcotic PlantAgriculturalProduct) ;
+
+  -- Cocoa is the class of powdered 
+  -- PlantAgriculturalProduct derived from cacao beans.
+  fun Cocoa : Class ;
+  fun Cocoa_Class : SubClass Cocoa (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  fun CocoaBean : Class ;
+  fun CocoaBean_Class : SubClass CocoaBean (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  -- A FruitOrVegetable that is produced by a type of palm 
+  -- and has an edible white meat.
+  fun Coconut : Class ;
+  fun Coconut_Class : SubClass Coconut (both Food TropicalFruit) ;
+
+  fun CoffeeBean : Class ;
+  fun CoffeeBean_Class : SubClass CoffeeBean (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  fun ColombianPeso : Ind UnitOfCurrency ;
+
+  fun CommercialAndIndustrialRefrigerationAndEquipmentManufacturing : Ind IndustryAttribute ;
+
+  fun CommunalLandOwnershipEconomy : Ind EconomicSystemAttribute ;
+
+  -- Concrete is a class of CompoundSubstances 
+  -- used as building materials. Concrete is made up of Mineral pieces 
+  -- (sand or gravel) and a Cement material used to bind them together.
+  fun Concrete : Class ;
+  fun Concrete_Class : SubClass Concrete (both ManufacturedProduct Mixture) ;
+
+  fun CongoFranc : Ind UnitOfCurrency ;
+
+  fun ConsumerGood : Class ;
+  fun ConsumerGood_Class : SubClass ConsumerGood ManufacturedProduct ;
+
+  fun ConsumerGoodsIndustry : Ind IndustryAttribute ;
+
+  fun ControlledLaborMarketEconomy : Ind FinancialSectorAttribute ;
+
+  -- ControlledSubstance is 
+  -- the subclass of BiologicallyActiveSubstances whose distribution 
+  -- and use is controlled by government regulation.
+  fun ControlledSubstance : Class ;
+  fun ControlledSubstance_Class : SubClass ControlledSubstance BiologicallyActiveSubstance ;
+
+  fun CookingOven : Class ;
+  fun CookingOven_Class : SubClass CookingOven MajorAppliance ;
+
+  fun CookingRange : Class ;
+  fun CookingRange_Class : SubClass CookingRange MajorAppliance ;
+
+  fun CopperFoundriesExceptDieCasting : Ind IndustryAttribute ;
+
+  fun CopperIndustry : Ind IndustryAttribute ;
+
+  fun CopperOre : Class ;
+  fun CopperOre_Class : SubClass CopperOre (both Mineral MiningProduct) ;
+
+  fun CopperOreMining : Ind IndustryAttribute ;
+
+  fun CopperRollingDrawingExtrudingAndAlloying : Ind IndustryAttribute ;
+
+  -- Copra is the class of dried coconut 
+  -- meat valued for the extracted coconut oil.
+  fun Copra : Class ;
+  fun Copra_Class : SubClass Copra PlantAgriculturalProduct ;
+
+  fun CornFarming : Ind IndustryAttribute ;
+
+  fun CostaRicanColon : Ind UnitOfCurrency ;
+
+  fun CottonFiber : Class ;
+  fun CottonFiber_Class : SubClass CottonFiber PlantAgriculturalProduct ;
+
+  -- CountryInTransition is a term 
+  -- used by the InternationalMonetaryFund (IMF) to describe the middle 
+  -- group in its hierarchy of advanced countries, countries in transition, 
+  -- and developing countries. Most of the countries with this attribute 
+  -- are former USSR or Eastern European countries. Generally corresponds 
+  -- with FormerSovietOrEasternEuropeanCountry classification used by 
+  -- UnitedNations agencies.
+  fun CountryInTransition : Ind IMFDevelopmentLevel ;
+
+  fun CowPea : Class ;
+  fun CowPea_Class : SubClass CowPea Legume ;
+
+  fun Crayfish : Class ;
+  fun Crayfish_Class : SubClass Crayfish Shellfish ;
+
+  fun CrudePetroleumExtraction : Ind IndustryAttribute ;
+
+  fun CubanPeso : Ind UnitOfCurrency ;
+
+  fun Cucumber : Class ;
+  fun Cucumber_Class : SubClass Cucumber (both GroceryProduce Vegetable) ;
+
+  fun CutFlower : Class ;
+  fun CutFlower_Class : SubClass CutFlower PlantAgriculturalProduct ;
+
+  fun CypriotPound : Ind UnitOfCurrency ;
+
+  fun CzechKoruna : Ind UnitOfCurrency ;
+
+  fun DanishKrone : Ind UnitOfCurrency ;
+
+  -- A FruitOrVegetable that is produced by the date palm.
+  fun DateFruit : Class ;
+  fun DateFruit_Class : SubClass DateFruit (both Food TropicalFruit) ;
+
+  fun Deer : Class ;
+  fun Deer_Class : SubClass Deer (both HoofedMammal Livestock) ;
+
+  -- DemocraticSocialism is an 
+  -- Attribute that describes a country in which socialism is promoted 
+  -- by a political party or parties within a democratic government. 
+  -- Under DemocraticSocialism, the government participates in central 
+  -- planning of the economy and may also manage nationalized industries.
+  fun DemocraticSocialism : Ind EconomicSystemAttribute ;
+
+  -- DevelopedCountry (DC) is a term used to describe members of the top 
+  -- group in the UNEconomicDevelopmentLevels. DevelopedCountry includes 
+  -- market_oriented economies of mainly democratic nations, including members 
+  -- of the OrganizationForEconomicCooperationAndDevelopment (OECD). DCs 
+  -- are also known as First World countries, 'the North', and industrial 
+  -- countries. Developed countries generally have high incomes (high per 
+  -- capita GDP or GNI), but there are exceptions to DC membership both above 
+  -- and below that standard. There is significant overlap, but not perfect 
+  -- congruence, between the UN category DevelopedCountry and the IMF 
+  -- category AdvancedEconomy.
+  fun DevelopedCountry : Ind UNEconomicDevelopmentLevel ;
+
+  -- DevelopingCountry is a term 
+  -- used by the InternationalMonetaryFund (IMF) for the bottom group 
+  -- in its hierarchy of advanced countries, countries in transition, 
+  -- and developing countries. Generally corresponds to the attribute 
+  -- LessDevelopedCountry used by UnitedNations agencies. Not to 
+  -- be confused with DevelopedCountry.
+  fun DevelopingCountry : Ind IMFDevelopmentLevel ;
+
+  -- DieselFuel is the subclass of 
+  -- RefinedPetroleumProducts that are fuels for diesel engines.
+  fun DieselFuel : Class ;
+  fun DieselFuel_Class : SubClass DieselFuel FossilFuel ;
+
+  fun Dishwasher : Class ;
+  fun Dishwasher_Class : SubClass Dishwasher MajorAppliance ;
+
+  -- Distillation is a means of separating Liquids 
+  -- through differences in their boilingPoints. The device used in 
+  -- distillation is referred to as a still and consists at a minimum of a pot 
+  -- in which the source material is heated, a condenser in which the heated 
+  -- Gas is cooled back to the liquid state, and a receiver in which the 
+  -- concentrated or purified liquid is collected. The equipment may effect 
+  -- separation by one of two main methods. Firstly the vapours given off by 
+  -- the heated mixture may consist of two liquids with significantly different 
+  -- boiling points. Thus, the vapour that is given off is in the vast 
+  -- majority of one or the other liquid, which after condensation and 
+  -- collection effects the separation. The second method (fractional 
+  -- distillation) relies upon a gradient of temperatures existing in the 
+  -- condenser stage of the equipment. Often in this technique, a vertical 
+  -- condenser, or column, is used. By extracting products that are liquid at 
+  -- different heights up the column, it is possible to extract liquids that 
+  -- have different boiling points. (from Wikipedia)
+  fun Distilling : Class ;
+  fun Distilling_Class : SubClass Distilling Separating ;
+
+  fun DiversifiedEconomy : Ind FinancialSectorAttribute ;
+
+  fun DjiboutiFranc : Ind UnitOfCurrency ;
+
+  fun DominicanDollar : Ind UnitOfCurrency ;
+
+  fun DominicanPeso : Ind UnitOfCurrency ;
+
+  fun DrillingOilAndGasWells : Ind IndustryAttribute ;
+
+  -- DurableGood is the subclass of 
+  -- ManufacturedProducts which are designed to last for three years 
+  -- or more.
+  fun DurableGood : Class ;
+  fun DurableGood_Class : SubClass DurableGood ManufacturedProduct ;
+
+  fun DutchGuilder : Ind UnitOfCurrency ;
+
+  -- EconomicAttribute is the class 
+  -- of terms including all Attributes used to characterize the 
+  -- economic systems or development levels of Nations or dependent 
+  -- GeopoliticalAreas.
+  fun EconomicAttribute : Class ;
+  fun EconomicAttribute_Class : SubClass EconomicAttribute (both PoliticoEconomicAttribute RelationalAttribute) ;
+
+  -- EconomicDevelopmentLevel is a subclass of EconomicAttribute 
+  -- containing terms used to describe the economic development level of a 
+  -- Nation or GeopoliticalArea. This class is further subdivided into 
+  -- different scales devised or used by different agencies.
+  fun EconomicDevelopmentLevel : Class ;
+  fun EconomicDevelopmentLevel_Class : SubClass EconomicDevelopmentLevel EconomicAttribute ;
+
+  -- EconomicSystemAttribute 
+  -- is the class of Attributes that describe the type of economic 
+  -- system that a country or area has. For example, CapitalistEconomy 
+  -- or SocialistEconomy.
+  fun EconomicSystemAttribute : Class ;
+  fun EconomicSystemAttribute_Class : SubClass EconomicSystemAttribute EconomicAttribute ;
+
+  fun EcuadoranSucre : Ind UnitOfCurrency ;
+
+  fun EdibleNut : Class ;
+  fun EdibleNut_Class : SubClass EdibleNut (both FruitOrVegetable GroceryProduce) ;
+
+  fun EdibleTuber : Class ;
+  fun EdibleTuber_Class : SubClass EdibleTuber (both PlantAgriculturalProduct RootVegetable) ;
+
+  fun Eggplant : Class ;
+  fun Eggplant_Class : SubClass Eggplant (both GroceryProduce Vegetable) ;
+
+  fun EgyptianPound : Ind UnitOfCurrency ;
+
+  fun ElSalvadoranColon : Ind UnitOfCurrency ;
+
+  -- ElectricalPowerGeneration is 
+  -- the subclass of PowerGeneration processes in which electricity is 
+  -- generated.
+  fun ElectricalPowerGeneration : Class ;
+  fun ElectricalPowerGeneration_Class : SubClass ElectricalPowerGeneration PowerGeneration ;
+
+  -- While electricity is typically thought of as just a difference
+  -- in electrical potential, one way of modeling electricity is as a substance
+  -- that can be moved from one point to another or consumed. One could make the claim
+  -- that subatomic physics also supports the classification as a substance since electrons
+  -- are objects.
+  fun Electricity : Class ;
+  fun Electricity_Class : SubClass Electricity Substance ;
+
+  fun EstonianKroon : Ind UnitOfCurrency ;
+
+  fun EthiopianBirr : Ind UnitOfCurrency ;
+
+  fun EuroCentCoin : Class ;
+  fun EuroCentCoin_Class : SubClass EuroCentCoin CurrencyCoin ;
+
+  fun EuroDollarCoin : Class ;
+  fun EuroDollarCoin_Class : SubClass EuroDollarCoin CurrencyCoin ;
+
+  -- Exporting is the class of actions in 
+  -- which there is a ChangeOfPossession of goods shipped from a 
+  -- provider in one Nation to a destination in another Nation. 
+  -- Typically, there are Selling and Buying events associated 
+  -- with an Exporting. Either the seller or the exporting country 
+  -- may be considered the origin of Exporting.
+  fun Exporting : Class ;
+  fun Exporting_Class : SubClass Exporting (both ChangeOfPossession FinancialTransaction) ;
+
+  -- Any Mixture which is used to provide nutrients to 
+  -- living Plants. Fertilizers can be made up of plant or animal material, e.g. 
+  -- compost, or they can be entirely synthetic, e.g. ammonium nitrate.
+  fun Fertilizer : Class ;
+  fun Fertilizer_Class : SubClass Fertilizer Mixture ;
+
+  fun FertilizerIndustry : Ind IndustryAttribute ;
+
+  fun FertilizerManufacturing : Ind IndustryAttribute ;
+
+  fun FertilizerMineralMining : Ind IndustryAttribute ;
+
+  fun FijiDollar : Ind UnitOfCurrency ;
+
+  -- FinancialSectorAttribute is 
+  -- a class of Attributes that are used to indicate which financial sectors 
+  -- are most important in the economy of a Nation or GeopoliticalArea.
+  fun FinancialSectorAttribute : Class ;
+  fun FinancialSectorAttribute_Class : SubClass FinancialSectorAttribute EconomicAttribute ;
+
+  fun FinnishMarkka : Ind UnitOfCurrency ;
+
+  -- (FiscalYearFn ?PLACE) denotes the subclass 
+  -- of TimeIntervals that are fiscalYearPeriods of the Organization or 
+  -- GeopoliticalArea ?PLACE.
+  fun FiscalYearFn: El Agent -> Desc TimeInterval ;
+
+  -- (FiscalYearStartingFn ?PLACE ?YEAR) 
+  -- denotes the particular fiscal year that is observed in ?PLACE and begins 
+  -- during the calendar Year indicated by ?YEAR.
+  fun FiscalYearStartingFn: El Agent -> Desc Year -> Ind TimeInterval ;
+
+  -- FishProduct is the subclass of 
+  -- AnimalAgriculturalProduct that comprises products derived 
+  -- from fish.
+  fun FishProduct : Class ;
+  fun FishProduct_Class : SubClass FishProduct AnimalAgriculturalProduct ;
+
+  fun FishRoe : Class ;
+  fun FishRoe_Class : SubClass FishRoe FishProduct ;
+
+  fun FlaxFiber : Class ;
+  fun FlaxFiber_Class : SubClass FlaxFiber PlantAgriculturalProduct ;
+
+  -- Fodder is the class of OrganicObjects that are used as food for
+  -- domesticated animals. Fodder Fodder is the subclass of Food that is 
+  -- intended for instances of DomesticAnimal.
+  fun Fodder : Class ;
+  fun Fodder_Class : SubClass Fodder (both Food OrganicObject) ;
+
+  fun FoodEgg : Class ;
+  fun FoodEgg_Class : SubClass FoodEgg AnimalAgriculturalProduct ;
+
+  fun FoodFish : Class ;
+  fun FoodFish_Class : SubClass FoodFish Seafood ;
+
+  -- FoodProduct is the class of food 
+  -- products, packaged or unpackaged.
+  fun FoodProduct : Class ;
+  fun FoodProduct_Class : SubClass FoodProduct Product ;
+
+  fun Footwear : Class ;
+  fun Footwear_Class : SubClass Footwear Clothing ;
+
+  fun ForageCrop : Class ;
+  fun ForageCrop_Class : SubClass ForageCrop (both Fodder (both Plant PlantAgriculturalProduct)) ;
+
+  fun ForestProduct : Class ;
+  fun ForestProduct_Class : SubClass ForestProduct Product ;
+
+  fun ForestryAndLogging : Ind IndustryAttribute ;
+
+  -- FormerSovietOrEasternEuropeanCountry (former USSR_EE) is an 
+  -- Attribute that characterizes countries that were part of the former 
+  -- Soviet Union or its sphere of influence in Eastern Europe. This level 
+  -- occupies a middle position between DevelopedCountry (DC) and 
+  -- LessDevelopedCountry (LDC) in UNEconomicDevelopmentLevels. 
+  -- Previously, former USSR_EE countries had a CentrallyPlannedEconomy and 
+  -- were Marxist_Leninist states. Many are now evolving away from command 
+  -- economies to market economic systems. During the 1980's, the group 
+  -- included Albania, Bulgaria, Cambodia, China, Cuba, Czechoslovakia, the 
+  -- German Democratic Republic (East Germany), Hungary, North Korea, Laos, 
+  -- Mongolia, Poland, Romania, the USSR, Vietnam and Yugoslavia.
+  fun FormerSovietOrEasternEuropeanCountry : Ind UNEconomicDevelopmentLevel ;
+
+  fun FossilFuelPowerGeneration : Ind PowerGeneration ;
+
+  -- FourDragonsEconomy describes four 
+  -- small Asian countries that achieved rapid economic growth in the 1990s. 
+  -- Some systems of EconomicDevelopmentLevel place them as a 
+  -- LessDevelopedCountry, but the IMF includes them in AdvancedEconomy.
+  fun FourDragonsEconomy : Ind EconomicDevelopmentLevel ;
+
+  fun Freezer : Class ;
+  fun Freezer_Class : SubClass Freezer MajorAppliance ;
+
+  fun FrenchFranc : Ind UnitOfCurrency ;
+
+  fun FrenchFrancCoin : Class ;
+  fun FrenchFrancCoin_Class : SubClass FrenchFrancCoin CurrencyCoin ;
+
+  fun Fruit : Class ;
+  fun Fruit_Class : SubClass Fruit FruitOrVegetable ;
+
+  fun FruitFarming : Ind IndustryAttribute ;
+
+  fun FurnitureAndHomeFurnishingWholesalers : Ind IndustryAttribute ;
+
+  fun FurnitureAndHomeFurnishingsStores : Ind IndustryAttribute ;
+
+  fun FurnitureAndRelatedProductManufacturing : Ind IndustryAttribute ;
+
+  fun FurnitureIndustry : Ind IndustryAttribute ;
+
+  fun FurnitureManufacturing : Ind IndustryAttribute ;
+
+  fun Furniture_DurableGood : SubClass Furniture DurableGood ;
+
+  fun GabonFranc : Ind UnitOfCurrency ;
+
+  fun GambianDalasi : Ind UnitOfCurrency ;
+
+  -- Gasoline is the subclass of 
+  -- RefinedPetroleumProducts that are fuels for internal combustion engines.
+  fun Gasoline : Class ;
+  fun Gasoline_Class : SubClass Gasoline FossilFuel ;
+
+  -- Gemstone is the subclass of Mineral items 
+  -- that are especially valued for use in jewelry and other decorative items, and also in some mechanical and industrial applications.
+  fun Gemstone : Class ;
+  fun Gemstone_Class : SubClass Gemstone Mixture ;
+
+  fun GeorgianLari : Ind UnitOfCurrency ;
+
+  fun GermanMark : Ind UnitOfCurrency ;
+
+  fun GermanMarkCoin : Class ;
+  fun GermanMarkCoin_Class : SubClass GermanMarkCoin CurrencyCoin ;
+
+  fun GhanianCedi : Ind UnitOfCurrency ;
+
+  fun Ginger : Class ;
+  fun Ginger_Class : SubClass Ginger (both Spice Vegetable) ;
+
+  -- A domesticated HoofedMammal that is raised primarily for Milk.
+  fun Goat : Class ;
+  fun Goat_Class : SubClass Goat (both HoofedMammal Livestock) ;
+
+  -- GovernmentRegulatedEconomy 
+  -- is an Attribute that describes the economy of a country in which the 
+  -- government determines prices, production, wages, allocation of resources, 
+  -- or other economic factors. An economy that is wholly government planned 
+  -- is a CentrallyPlannedEconomy.
+  fun GovernmentRegulatedEconomy : Ind EconomicSystemAttribute ;
+
+  -- GovernmentSubsidizedEconomy 
+  -- is an Attribute describing an economy in which the government provides 
+  -- subsidies to various industries, workers, or other groups as part of its 
+  -- economic policy.
+  fun GovernmentSubsidizedEconomy : Ind EconomicSystemAttribute ;
+
+  fun GrainAndOilseedMilling : Ind IndustryAttribute ;
+
+  fun Grape : Class ;
+  fun Grape_Class : SubClass Grape (both Fruit GroceryProduce) ;
+
+  fun GreekDrachma : Ind UnitOfCurrency ;
+
+  fun GreenPepper : Class ;
+  fun GreenPepper_Class : SubClass GreenPepper (both GroceryProduce Vegetable) ;
+
+  fun GrenadaDollar : Ind UnitOfCurrency ;
+
+  fun Groundnut : Class ;
+  fun Groundnut_Class : SubClass Groundnut (both EdibleTuber (both FruitOrVegetable GroceryProduce)) ;
+
+  fun GuatemalanQuetzal : Ind UnitOfCurrency ;
+
+  fun GuernseyCattle : Class ;
+  fun GuernseyCattle_Class : SubClass GuernseyCattle Cattle ;
+
+  fun GuineaBissauPeso : Ind UnitOfCurrency ;
+
+  fun GuineanFranc : Ind UnitOfCurrency ;
+
+  fun GumArabic : Class ;
+  fun GumArabic_Class : SubClass GumArabic (both PlantAgriculturalProduct Substance) ;
+
+  fun GuyanaDollar : Ind UnitOfCurrency ;
+
+  fun HaitianGourde : Ind UnitOfCurrency ;
+
+  fun HandicraftIndustry : Ind IndustryAttribute ;
+
+  -- HandicraftProduct is the class of 
+  -- Products that are manufactured by hand with a special skill.
+  fun HandicraftProduct : Class ;
+  fun HandicraftProduct_Class : SubClass HandicraftProduct Product ;
+
+  fun HandwovenCarpet : Class ;
+  fun HandwovenCarpet_Class : SubClass HandwovenCarpet (both HandicraftProduct TextileProduct) ;
+
+  fun HandwovenCarpetManufacturing : Ind IndustryAttribute ;
+
+  fun Hardwood : Class ;
+  fun Hardwood_Class : SubClass Hardwood WoodProduct ;
+
+  -- Grass that has been cut and cured for use as Fodder.
+  fun Hay : Class ;
+  fun Hay_Class : SubClass Hay Fodder ;
+
+  fun HempFiber : Class ;
+  fun HempFiber_Class : SubClass HempFiber PlantAgriculturalProduct ;
+
+  -- HighIncomeCountry is an Attribute representing the World Bank 
+  -- classification for any country where the per capita GNI is 
+  -- equal to or greater than &9,266 in UnitedStatesDollars.
+  fun HighIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
+
+  -- HighTechIndustrialEconomy 
+  -- is an Attribute used to describe industrialized countries whose 
+  -- infrastructure uses the most advanced kinds of technology.
+  fun HighTechIndustrialEconomy : Ind EconomicDevelopmentLevel ;
+
+  fun HonduranLempira : Ind UnitOfCurrency ;
+
+  fun Honey_AnimalAgriculturalProduct : SubClass Honey AnimalAgriculturalProduct ;
+
+  fun HongKongDollar : Ind UnitOfCurrency ;
+
+  fun HotWaterHeater : Class ;
+  fun HotWaterHeater_Class : SubClass HotWaterHeater MajorAppliance ;
+
+  fun HouseholdRefrigeratorAndHomeFreezerManufacturing : Ind IndustryAttribute ;
+
+  fun HungarianForint : Ind UnitOfCurrency ;
+
+  fun HydroElectricPowerGeneration : Ind ElectricalPowerGeneration ;
+
+  -- IMFDevelopmentLevel is a 
+  -- collection of Attributes representing economic development levels 
+  -- used by the InternationalMonetaryFund (IMF) to characterize national 
+  -- economies. The hierarchy of IMF levels includes: AdvancedEconomy, 
+  -- CountryInTransition, and DevelopingCountry. There is some, but not 
+  -- complete, overlap with concepts used by UnitedNations agencies. 
+  -- See
+  fun IMFDevelopmentLevel : Class ;
+  fun IMFDevelopmentLevel_Class : SubClass IMFDevelopmentLevel EconomicDevelopmentLevel ;
+
+  fun IcelandicKrona : Ind UnitOfCurrency ;
+
+  fun IndianRupee : Ind UnitOfCurrency ;
+
+  fun IndonesianRupiah : Ind UnitOfCurrency ;
+
+  fun IndustrialRawMaterial : Class ;
+  fun IndustrialRawMaterial_Class : SubClass IndustrialRawMaterial CapitalGood ;
+
+  fun IndustrialSector : Ind IndustryAttribute ;
+
+  -- IndustrialSupply is the class of 
+  -- products that are used in industry but which are not raw materials 
+  -- for products being manufactured. IndustrialSupply includes maintenance, 
+  -- repair, and operation (MRO) supplies, including janitorial, electrical, 
+  -- bearings, tools, machinery, accessories, fire and safety equipment, and 
+  -- other industrial items.
+  fun IndustrialSupply : Class ;
+  fun IndustrialSupply_Class : SubClass IndustrialSupply (both CapitalGood ManufacturedProduct) ;
+
+  fun IndustryAttribute : Class ;
+
+  fun IranianRial : Ind UnitOfCurrency ;
+
+  fun IraqiDinar : Ind UnitOfCurrency ;
+
+  fun IrishPound : Ind UnitOfCurrency ;
+
+  fun IronMetal : Class ;
+  fun IronMetal_Class : SubClass IronMetal MetalProduct ;
+
+  -- IronOre is a subclass of CompoundSubstance 
+  -- that contains compounds of iron, of which the most common are 
+  -- hematite and limonite. Iron is obtained from smelting iron ores.
+  fun IronOre : Class ;
+  fun IronOre_Class : SubClass IronOre (both CompoundSubstance (both Mineral MiningProduct)) ;
+
+  fun IsraeliShekel : Ind UnitOfCurrency ;
+
+  fun ItalianLire : Ind UnitOfCurrency ;
+
+  fun ItalianLireCoin : Class ;
+  fun ItalianLireCoin_Class : SubClass ItalianLireCoin CurrencyCoin ;
+
+  fun IvoryCoastFranc : Ind UnitOfCurrency ;
+
+  fun JamaicanDollar : Ind UnitOfCurrency ;
+
+  fun JapaneseYen : Ind UnitOfCurrency ;
+
+  fun JapaneseYenCoin : Class ;
+  fun JapaneseYenCoin_Class : SubClass JapaneseYenCoin CurrencyCoin ;
+
+  -- Jewelry is the subclass of PersonalAdornment 
+  -- items that are typically made of metals (especially precious metals), 
+  -- gems, and other non_cloth materials.
+  fun Jewelry : Class ;
+  fun Jewelry_Class : SubClass Jewelry (both PersonalAdornment WearableItem) ;
+
+  fun JordanianDinar : Ind UnitOfCurrency ;
+
+  fun JuteFiber : Class ;
+  fun JuteFiber_Class : SubClass JuteFiber PlantAgriculturalProduct ;
+
+  fun KazakhstaniTenge : Ind UnitOfCurrency ;
+
+  fun KentiaPalmSeed : Class ;
+  fun KentiaPalmSeed_Class : SubClass KentiaPalmSeed (both PlantAgriculturalProduct Seed) ;
+
+  fun KenyanShilling : Ind UnitOfCurrency ;
+
+  -- Khat is the class of PlantAgriculturalProducts 
+  -- made from the leaves and buds of the staff tree, which 
+  -- are chewed or brewed as a stimulating tea.
+  fun Khat : Class ;
+  fun Khat_Class : SubClass Khat PlantAgriculturalProduct ;
+
+  -- KilowattHour is a UnitOfMeasure for 
+  -- energy that represents 1000 Watts (1 kW) of power expended over one 
+  -- hour (1 h) of time. This is the unit commonly used in commercial 
+  -- power contexts. It is equivalent to 3,600,000 Joules.
+  fun KilowattHour : Ind CompositeUnitOfMeasure ;
+
+  fun KiribatiDollar : Ind UnitOfCurrency ;
+
+  fun KuwaitiDinar : Ind UnitOfCurrency ;
+
+  fun KyrgyzstaniSom : Ind UnitOfCurrency ;
+
+  fun LambMeat : Class ;
+  fun LambMeat_Class : SubClass LambMeat Meat ;
+
+  fun Lambskin : Class ;
+  fun Lambskin_Class : SubClass Lambskin Pelt ;
+
+  fun LaotianKip : Ind UnitOfCurrency ;
+
+  fun LatvianLats : Ind UnitOfCurrency ;
+
+  fun LeadIndustry : Ind IndustryAttribute ;
+
+  fun LeadManufacturing : Ind IndustryAttribute ;
+
+  fun LeadMetal : Class ;
+  fun LeadMetal_Class : SubClass LeadMetal MetalProduct ;
+
+  fun LeadOre : Class ;
+  fun LeadOre_Class : SubClass LeadOre (both Mineral MiningProduct) ;
+
+  fun LeadOreMining : Ind IndustryAttribute ;
+
+  fun LeadProduct : Class ;
+  fun LeadProduct_Class : SubClass LeadProduct (both LeadMetal ManufacturedProduct) ;
+
+  fun Leaf : Class ;
+  fun Leaf_Class : SubClass Leaf AnatomicalStructure ;
+
+  fun LeafyGreenVegetable : Class ;
+  fun LeafyGreenVegetable_Class : SubClass LeafyGreenVegetable (both GroceryProduce Vegetable) ;
+
+  -- LeastDevelopedCountry 
+  -- is a sub_classification of LessDevelopedCountry characterizing
+  -- those countries that have no significant economic growth, a per 
+  -- capita GDP of less than 1,000 UnitedStatesDollars, and low 
+  -- literacy. Also known as 'undeveloped countries'.
+  fun LeastDevelopedCountry : Ind EconomicDevelopmentLevel ;
+
+  fun LebanesePound : Ind UnitOfCurrency ;
+
+  fun Legume : Class ;
+  fun Legume_Class : SubClass Legume (both PlantAgriculturalProduct Vegetable) ;
+
+  fun Lemon : Class ;
+  fun Lemon_Class : SubClass Lemon CitrusFruit ;
+
+  fun Lentil : Class ;
+  fun Lentil_Class : SubClass Lentil Pulse ;
+
+  fun LesothoLoti : Ind UnitOfCurrency ;
+
+  -- LessDevelopedCountry (LDC) is 
+  -- the Attribute used to describe the bottom group in the hierarchy 
+  -- of UNEconomicDevelopmentLevels. Less developed countries are countries 
+  -- or dependent areas with low levels of production, living standards, 
+  -- and technology. Per capita GDP (perCapitaGDPInPeriod), or GDI 
+  -- (Gross Domestic Income), is generally less than 5,000 and often 
+  -- below 1,500. Subgroups of LDC, however, include countries that have 
+  -- higher per capita incomes, as well as advanced technology, and rapid rates 
+  -- of growth. Subgroups of LDC include: advanced developing countries, 
+  -- the Four Dragons (also known as Four Tigers), LeastDevelopedCountry 
+  -- (LLDCs), low_income countries, middle_income countries, newly 
+  -- industrializing economies (NIEs), the South (from the location of 
+  -- most LDC countries, relative to Northern developed countries), Third 
+  -- World (obsolete), UnderdevelopedCountry, UndevelopedCountry.
+  fun LessDevelopedCountry : Ind UNEconomicDevelopmentLevel ;
+
+  fun LiberianDollar : Ind UnitOfCurrency ;
+
+  fun LibyanDinar : Ind UnitOfCurrency ;
+
+  fun Lime : Class ;
+  fun Lime_Class : SubClass Lime CitrusFruit ;
+
+  fun LithuanianLitas : Ind UnitOfCurrency ;
+
+  -- LowIncomeCountry is an 
+  -- Attribute representing the World Bank classification for any country 
+  -- where the per capita GNI is 755 or below in UnitedStatesDollars.
+  fun LowIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
+
+  -- LowerMiddleIncomeCountry is an Attribute representing the World 
+  -- Bank classification for any country where the per capita GNI is 
+  -- between 756 and 2,995 (inclusive) in UnitedStatesDollars.
+  fun LowerMiddleIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
+
+  -- A ManufacturedProduct derived from Timber.
+  fun Lumber : Class ;
+  fun Lumber_Class : SubClass Lumber (both DurableGood ForestProduct) ;
+
+  fun LumberIndustry : Ind IndustryAttribute ;
+
+  fun LumberPlywoodMillworkAndWoodPanelWholesalers : Ind IndustryAttribute ;
+
+  fun LuxembourgFranc : Ind UnitOfCurrency ;
+
+  fun MacademiaNut : Class ;
+  fun MacademiaNut_Class : SubClass MacademiaNut EdibleNut ;
+
+  fun MacaoPataca : Ind UnitOfCurrency ;
+
+  fun Mace : Class ;
+  fun Mace_Class : SubClass Mace Spice ;
+
+  fun MachineTool : Class ;
+  fun MachineTool_Class : SubClass MachineTool Machinery ;
+
+  fun Machine_Machinery : SubClass Machine Machinery ;
+
+  -- Machinery is the class of products 
+  -- that includes Machines, tools, and machine parts used in industrial 
+  -- or other commercial processes.
+  fun Machinery : Class ;
+  fun Machinery_Class : SubClass Machinery (both Device (both DurableGood IndustrialSupply)) ;
+
+  fun MadagascarFranc : Ind UnitOfCurrency ;
+
+  fun MajorAppliance : Class ;
+  fun MajorAppliance_Class : SubClass MajorAppliance (both Device DurableGood) ;
+
+  -- MajorIndustrialEconomy is an 
+  -- Attribute used to describe countries with the largest, industrialized, 
+  -- non_communist economies in the world.
+  fun MajorIndustrialEconomy : Ind EconomicDevelopmentLevel ;
+
+  fun MalawianKwacha : Ind UnitOfCurrency ;
+
+  fun MalaysianRinggit : Ind UnitOfCurrency ;
+
+  fun MaliFranc : Ind UnitOfCurrency ;
+
+  fun MalteseLira : Ind UnitOfCurrency ;
+
+  fun Mango : Class ;
+  fun Mango_Class : SubClass Mango (both GroceryProduce TropicalFruit) ;
+
+  fun ManufacturingBasedEconomy : Ind FinancialSectorAttribute ;
+
+  -- MarketEconomy is an Attribute that 
+  -- describes an economy in which market forces, specifically supply and 
+  -- demand, provide input for privately managed decisions about pricing 
+  -- and production of goods.
+  fun MarketEconomy : Ind EconomicSystemAttribute ;
+
+  fun MarketSocialism : Ind EconomicSystemAttribute ;
+
+  fun MauritanianOuguiya : Ind UnitOfCurrency ;
+
+  fun MauritianRupee : Ind UnitOfCurrency ;
+
+  fun Meat_AnimalAgriculturalProduct : SubClass Meat AnimalAgriculturalProduct ;
+
+  fun Melon : Class ;
+  fun Melon_Class : SubClass Melon (both Fruit GroceryProduce) ;
+
+  fun MetalProduct : Class ;
+  fun MetalProduct_Class : SubClass MetalProduct DurableGood ;
+
+  fun MetallurgyIndustry : Ind IndustryAttribute ;
+
+  fun MexicanPeso : Ind UnitOfCurrency ;
+
+  fun Milk_DairyProduct : SubClass Milk DairyProduct ;
+
+  fun MilletFarming : Ind IndustryAttribute ;
+
+  fun MilletGrain : Class ;
+  fun MilletGrain_Class : SubClass MilletGrain CerealGrain ;
+
+  fun Millwork : Ind IndustryAttribute ;
+
+  fun MiningExceptOilAndGas : Ind IndustryAttribute ;
+
+  fun MiningIndustry : Ind IndustryAttribute ;
+
+  -- MixedEconomy is the Attribute 
+  -- of a country whose economy has elements of more than one pure 
+  -- economic system, e.g., a market economy with government welfare 
+  -- for unemployed workers. A mixed_economy country may be a 
+  -- CountryInTransition, as from a prior communist economy to 
+  -- capitalism, but a mixed economy may also be a stable combination 
+  -- of different economic approaches in different areas of a national 
+  -- economy, e.g., nationally managed health care and education systems 
+  -- in an otherwise private_enterprise economy.
+  fun MixedEconomy : Ind EconomicSystemAttribute ;
+
+  fun MoldovanLeu : Ind UnitOfCurrency ;
+
+  fun MongolianTugrik : Ind UnitOfCurrency ;
+
+  fun MoroccanDirham : Ind UnitOfCurrency ;
+
+  -- MotorOil is the subclass of PetroleumLubricants 
+  -- that are used to lubricate motors.
+  fun MotorOil : Class ;
+  fun MotorOil_Class : SubClass MotorOil PetroleumLubricant ;
+
+  fun MotorVehicleAndMotorVehiclePartsAndSuppliesWholesalers : Ind IndustryAttribute ;
+
+  fun MotorVehicleAndPartsDealers : Ind IndustryAttribute ;
+
+  fun MotorVehicleBodyAndTrailerManufacturing : Ind IndustryAttribute ;
+
+  fun MotorVehicleIndustry : Ind IndustryAttribute ;
+
+  fun MotorVehicleManufacturing : Ind IndustryAttribute ;
+
+  fun MotorVehiclePartsManufacturing : Ind IndustryAttribute ;
+
+  fun MozambiqueMetical : Ind UnitOfCurrency ;
+
+  fun MulberryLeaf : Class ;
+  fun MulberryLeaf_Class : SubClass MulberryLeaf (both Fodder (both Leaf PlantAgriculturalProduct)) ;
+
+  fun Mutton : Class ;
+  fun Mutton_Class : SubClass Mutton Meat ;
+
+  fun MyanmarKyat : Ind UnitOfCurrency ;
+
+  -- Narcotic is a subclass of addictive 
+  -- BiologicallyActiveSubstances that have damping effects on the 
+  -- nervous system and may be fatal in large doses.
+  fun Narcotic : Class ;
+  fun Narcotic_Class : SubClass Narcotic ControlledSubstance ;
+
+  -- NationalizedIndustryEconomy 
+  -- is an Attribute describing an economy in which the major industries, 
+  -- such as energy and transportation, are owned by the national government.
+  fun NationalizedIndustryEconomy : Ind EconomicSystemAttribute ;
+
+  fun NaturalGasDistribution : Ind IndustryAttribute ;
+
+  fun NaturalGasIndustry : Ind IndustryAttribute ;
+
+  fun NaturalGasLiquidExtraction : Ind IndustryAttribute ;
+
+  -- NaturalRubber is the subclass of 
+  -- PlantAgriculturalProducts made from the sap of plant species 
+  -- which produce natural polymers.
+  fun NaturalRubber : Class ;
+  fun NaturalRubber_Class : SubClass NaturalRubber PlantAgriculturalProduct ;
+
+  fun NepaleseRupee : Ind UnitOfCurrency ;
+
+  fun NewZealandDollar : Ind UnitOfCurrency ;
+
+  -- NewlyIndustrializingEconomy is an Attribute used to describe a 
+  -- LessDevelopedCountry (LDC) that is undergoing rapid industrial 
+  -- development. Also called 'newly industrializing economy' (or 
+  -- 'country').
+  fun NewlyIndustrializingEconomy : Ind EconomicDevelopmentLevel ;
+
+  fun NicaraguanCordoba : Ind UnitOfCurrency ;
+
+  fun NickelOre : Class ;
+  fun NickelOre_Class : SubClass NickelOre (both Mineral MiningProduct) ;
+
+  fun NigerFranc : Ind UnitOfCurrency ;
+
+  fun NigerianNaira : Ind UnitOfCurrency ;
+
+  fun NorfolkIslandPineSeed : Class ;
+  fun NorfolkIslandPineSeed_Class : SubClass NorfolkIslandPineSeed (both PlantAgriculturalProduct Seed) ;
+
+  fun NorthKoreanWon : Ind UnitOfCurrency ;
+
+  fun NorwegianKrone : Ind UnitOfCurrency ;
+
+  fun NuclearPowerGeneration : Ind PowerGeneration ;
+
+  fun Nut : Class ;
+  fun Nut_Class : SubClass Nut (both PlantAgriculturalProduct ReproductiveBody) ;
+
+  fun Nutmeg : Class ;
+  fun Nutmeg_Class : SubClass Nutmeg Spice ;
+
+  fun OatFarming : Ind IndustryAttribute ;
+
+  fun OatGrain : Class ;
+  fun OatGrain_Class : SubClass OatGrain CerealGrain ;
+
+  fun OffshoreBankingSectorEconomy : Ind FinancialSectorAttribute ;
+
+  fun OffshoreFinancialSectorEconomy : Ind FinancialSectorAttribute ;
+
+  fun Oilseed : Class ;
+  fun Oilseed_Class : SubClass Oilseed (both PlantAgriculturalProduct Seed) ;
+
+  -- Okoume (Aucoumea klaineana), also called 
+  -- 'gaboon', is a wood of West African origin.
+  fun Okoume : Class ;
+  fun Okoume_Class : SubClass Okoume Hardwood ;
+
+  fun Olive : Class ;
+  fun Olive_Class : SubClass Olive (both Fruit GroceryProduce) ;
+
+  fun OliveOil : Class ;
+  fun OliveOil_Class : SubClass OliveOil VegetableOil ;
+
+  fun OmaniRiyal : Ind UnitOfCurrency ;
+
+  fun OpiumPoppy : Class ;
+  fun OpiumPoppy_Class : SubClass OpiumPoppy (both PlantAgriculturalProduct Poppy) ;
+
+  fun OpiumPoppyFarming : Class ;
+  fun OpiumPoppyFarming_Class : SubClass OpiumPoppyFarming Farming ;
+
+  -- A substance harvested from the seed capsules of the 
+  -- opium poppy that contains various powerful alkaloids.
+  fun Opium : Class ;
+  fun Opium_Class : SubClass Opium (both (both Depressant Narcotic) (both PlantSubstance PlantAgriculturalProduct)) ;
+
+  fun Orchid : Class ;
+  fun Orchid_Class : SubClass Orchid (both FloweringPlant PlantAgriculturalProduct) ;
+
+  fun OrnamentalFish : Class ;
+  fun OrnamentalFish_Class : SubClass OrnamentalFish (both AnimalAgriculturalProduct Fish) ;
+
+  -- OtherSourcePowerGeneration 
+  -- represents all non_fossil fuel, non_hydroelectric, and non_nuclear power 
+  -- generation processes, e.g., wind power generation.
+  fun OtherSourcePowerGeneration : Ind PowerGeneration ;
+
+  -- PPPBasedEconomicValuation 
+  -- is a class of relations used to state international economic information 
+  -- in U.S. dollar amounts. The U.S. dollar amounts are derived from Purchasing 
+  -- Power Parity conversions of economic totals (e.g., GDP) given in local 
+  -- currency. This contrasts with a method of conversion based on currency 
+  -- exchange rates. The PPP method is used by the CIA World Fact Book for 
+  -- the purpose of presenting economic data for all countries covered. Their 
+  -- basis for PPP dollar price weights is the UN International Comparison Program 
+  -- (UNICP) and the work of Professors Robert Summers and Alan Heston of the 
+  -- University of Pennsylvania.
+  fun PPPBasedEconomicValuation : Class ;
+
+  -- PackagedBeverageProduct is the 
+  -- class of Products that consist of a BeverageProduct in some kind of 
+  -- packaging, including cups and bottles.
+  fun PackagedBeverageProduct : Class ;
+  fun PackagedBeverageProduct_Class : SubClass PackagedBeverageProduct Product ;
+
+  -- PackagedFoodProduct is the 
+  -- class of Products that consist of a FoodProduct in a package.
+  fun PackagedFoodProduct : Class ;
+  fun PackagedFoodProduct_Class : SubClass PackagedFoodProduct Product ;
+
+  fun PaddyRice : Class ;
+  fun PaddyRice_Class : SubClass PaddyRice CerealGrass ;
+
+  fun PakistaniRupee : Ind UnitOfCurrency ;
+
+  fun PalmKernel : Class ;
+  fun PalmKernel_Class : SubClass PalmKernel PlantAgriculturalProduct ;
+
+  fun PalmOil : Class ;
+  fun PalmOil_Class : SubClass PalmOil VegetableOil ;
+
+  fun PalmOilNut : Class ;
+  fun PalmOilNut_Class : SubClass PalmOilNut (both Nut PlantAgriculturalProduct) ;
+
+  fun PanamanianBalboa : Ind UnitOfCurrency ;
+
+  fun Papaw : Class ;
+  fun Papaw_Class : SubClass Papaw (both GroceryProduce TropicalFruit) ;
+
+  fun Papaya : Class ;
+  fun Papaya_Class : SubClass Papaya (both GroceryProduce TropicalFruit) ;
+
+  fun PapuanKina : Ind UnitOfCurrency ;
+
+  fun ParaguayanGuarani : Ind UnitOfCurrency ;
+
+  fun PartialMarketEconomy : Ind EconomicSystemAttribute ;
+
+  fun PassionFruit : Class ;
+  fun PassionFruit_Class : SubClass PassionFruit (both GroceryProduce TropicalFruit) ;
+
+  -- The edible Seed of a pea plant.
+  fun Pea : Class ;
+  fun Pea_Class : SubClass Pea (both (both Food Seed) Legume) ;
+
+  fun Peanut : Class ;
+  fun Peanut_Class : SubClass Peanut (both EdibleNut GroceryProduce) ;
+
+  fun Pearl : Class ;
+  fun Pearl_Class : SubClass Pearl Jewelry ;
+
+  fun PecanNut : Class ;
+  fun PecanNut_Class : SubClass PecanNut EdibleNut ;
+
+  -- Pelt is the subclass of AnimalSkin 
+  -- that comprises the pelts or hides of animals that are used in 
+  -- the manufacture of wearable or household items.
+  fun Pelt : Class ;
+  fun Pelt_Class : SubClass Pelt (both AnimalAgriculturalProduct AnimalSkin) ;
+
+  fun PerfumeEssence : Class ;
+  fun PerfumeEssence_Class : SubClass PerfumeEssence PlantAgriculturalProduct ;
+
+  -- PersonalAdornment is the subclass 
+  -- of WearableItems that are worn primarily for decorative purposes.
+  fun PersonalAdornment : Class ;
+  fun PersonalAdornment_Class : SubClass PersonalAdornment WearableItem ;
+
+  fun PeruvianInti : Ind UnitOfCurrency ;
+
+  -- Petroleum is commonly known as crude 
+  -- oil. It is a thick, dark brown or greenish flammable liquid, which exists 
+  -- in the upper strata of some areas of the Earth's crust. It consists of a 
+  -- complex mixture of various hydrocarbons, largely of the methane series, 
+  -- but may vary much in appearance, composition, and purity. (from Wikipedia)
+  -- Crude oil has not be subject to the distillation that will yield a
+  -- RefinedPetroleumProduct.
+  fun Petroleum : Class ;
+  fun Petroleum_Class : SubClass Petroleum PetroleumProduct ;
+
+  fun PetroleumBasedEconomy : Ind FinancialSectorAttribute ;
+
+  fun PetroleumIndustry : Ind IndustryAttribute ;
+
+  -- PetroleumLubricant is the subclass of 
+  -- RefinedPetroleumProducts that are lubricants.
+  fun PetroleumLubricant : Class ;
+  fun PetroleumLubricant_Class : SubClass PetroleumLubricant RefinedPetroleumProduct ;
+
+  fun PetroleumProductsManufacturing : Ind IndustryAttribute ;
+
+  fun PetroleumRefineries : Ind IndustryAttribute ;
+
+  fun PharmaceuticalProduct : Class ;
+  fun PharmaceuticalProduct_Class : SubClass PharmaceuticalProduct ManufacturedProduct ;
+
+  fun PhilippinePeso : Ind UnitOfCurrency ;
+
+  fun PhosphoricAcid : Class ;
+  fun PhosphoricAcid_Class : SubClass PhosphoricAcid CompoundSubstance ;
+
+  fun Pineapple : Class ;
+  fun Pineapple_Class : SubClass Pineapple (both GroceryProduce TropicalFruit) ;
+
+  fun PipelineTransportationOfNaturalGas : Ind IndustryAttribute ;
+
+  fun Plantain : Class ;
+  fun Plantain_Class : SubClass Plantain (both GroceryProduce TropicalFruit) ;
+
+  fun Plastic : Class ;
+  fun Plastic_Class : SubClass Plastic ManufacturedProduct ;
+
+  fun PolishZloty : Ind UnitOfCurrency ;
+
+  fun Poppy : Class ;
+  fun Poppy_Class : SubClass Poppy FloweringPlant ;
+
+  fun PortugueseEscudo : Ind UnitOfCurrency ;
+
+  fun PotatoTuber : Class ;
+  fun PotatoTuber_Class : SubClass PotatoTuber (both EdibleTuber GroceryProduce) ;
+
+  -- PowerGeneration is the class of 
+  -- Processes in which some kind of power is generated either for immediate 
+  -- use in a Device or to be stored for future use.
+  fun PowerGeneration : Class ;
+  fun PowerGeneration_Class : SubClass PowerGeneration Process ;
+
+  -- PreciousGemstone is the class of 
+  -- Minerals and fossilized substances that have great monetary value.
+  fun PreciousGemstone : Class ;
+  fun PreciousGemstone_Class : SubClass PreciousGemstone (both Gemstone MiningProduct) ;
+
+  fun PrimarySmeltingAndRefiningOfCopper : Ind IndustryAttribute ;
+
+  -- PrivateEnterpriseEconomy is 
+  -- the Attribute used to characterize a country in which private 
+  -- enterprise is the main source of economic wealth.
+  fun PrivateEnterpriseEconomy : Ind EconomicSystemAttribute ;
+
+  -- PrivatizingEconomy is an 
+  -- Attribute that describes a country in which formerly government_
+  -- owned industries are being transferred into private holdings.
+  fun PrivatizingEconomy : Ind EconomicSystemAttribute ;
+
+  -- ProductPackage is the class of objects 
+  -- designed to contain Products for shipping and sale.
+  fun ProductPackage : Class ;
+  fun ProductPackage_Class : SubClass ProductPackage Container ;
+
+  fun Pulse : Class ;
+  fun Pulse_Class : SubClass Pulse Legume ;
+
+  -- PureCapitalistEconomy is an 
+  -- Attribute representing a capitalist economy that has no admixture of 
+  -- socialism.
+  fun PureCapitalistEconomy : Ind EconomicSystemAttribute ;
+
+  -- PureSocialistEconomy is an Attribute representing a 
+  -- socialist economy that has no admixture of capitalism.
+  fun PureSocialistEconomy : Ind EconomicSystemAttribute ;
+
+  -- Pyrethrum is the subclass of 
+  -- BiologicallyActiveSubstance consisting of insecticidal 
+  -- derivations from the flower heads of Chrysanthemums.
+  fun Pyrethrum : Class ;
+  fun Pyrethrum_Class : SubClass Pyrethrum (both BiologicallyActiveSubstance PlantAgriculturalProduct) ;
+
+  fun QatariRiyal : Ind UnitOfCurrency ;
+
+  fun Quinine : Class ;
+  fun Quinine_Class : SubClass Quinine PlantAgriculturalProduct ;
+
+  fun ReadyMixConcrete : Class ;
+  fun ReadyMixConcrete_Class : SubClass ReadyMixConcrete Concrete ;
+
+  fun RefrigeratedWarehousingAndStorage : Ind IndustryAttribute ;
+
+  fun RefrigerationEquipmentAndSuppliesWholesalers : Ind IndustryAttribute ;
+
+  fun RefrigerationEquipmentManufacturing : Ind IndustryAttribute ;
+
+  fun RefrigeratorAndFreezerIndustry : Ind IndustryAttribute ;
+
+  fun Refrigerator_MajorAppliance : SubClass Refrigerator MajorAppliance ;
+
+  fun Reindeer : Class ;
+  fun Reindeer_Class : SubClass Reindeer (both HoofedMammal Livestock) ;
+
+  fun RiceFarming : Ind IndustryAttribute ;
+
+  fun RomanianLeu : Ind UnitOfCurrency ;
+
+  fun RootStarch : Class ;
+  fun RootStarch_Class : SubClass RootStarch (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  fun RootVegetable : Class ;
+  fun RootVegetable_Class : SubClass RootVegetable (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  fun RussianRuble : Ind UnitOfCurrency ;
+
+  fun RwandaFranc : Ind UnitOfCurrency ;
+
+  fun RyeFarming : Ind IndustryAttribute ;
+
+  fun RyeGrain : Class ;
+  fun RyeGrain_Class : SubClass RyeGrain CerealGrain ;
+
+  fun Salmon : Class ;
+  fun Salmon_Class : SubClass Salmon FoodFish ;
+
+  fun SaoThomeEPrincipeDobra : Ind UnitOfCurrency ;
+
+  fun SaudiArabianRiyal : Ind UnitOfCurrency ;
+
+  fun Seafood : Class ;
+  fun Seafood_Class : SubClass Seafood Meat ;
+
+  fun Seed_FruitOrVegetable : SubClass Seed FruitOrVegetable ;
+
+  -- SemipreciousGemstone is the class of Minerals and 
+  -- other substances that have significant monetary value, 
+  -- but less than those of the class PreciousGemstone.
+  fun SemipreciousGemstone : Class ;
+  fun SemipreciousGemstone_Class : SubClass SemipreciousGemstone (both Gemstone MiningProduct) ;
+
+  fun SenegaleseFranc : Ind UnitOfCurrency ;
+
+  fun SenepolCattle : Class ;
+  fun SenepolCattle_Class : SubClass SenepolCattle Cattle ;
+
+  fun ServiceBasedEconomy : Ind FinancialSectorAttribute ;
+
+  fun ServiceSector : Ind IndustryAttribute ;
+
+  fun Sesame : Class ;
+  fun Sesame_Class : SubClass Sesame PlantAgriculturalProduct ;
+
+  fun SeychellesRupee : Ind UnitOfCurrency ;
+
+  fun SheaNut : Class ;
+  fun SheaNut_Class : SubClass SheaNut EdibleNut ;
+
+  fun Sheep_Livestock : SubClass Sheep Livestock ;
+
+  fun Sheepskin : Class ;
+  fun Sheepskin_Class : SubClass Sheepskin Pelt ;
+
+  fun Shellfish : Class ;
+  fun Shellfish_Class : SubClass Shellfish Seafood ;
+
+  fun Shrimp : Class ;
+  fun Shrimp_Class : SubClass Shrimp Shellfish ;
+
+  fun SierraLeoneLeone : Ind UnitOfCurrency ;
+
+  fun SingaporeDollar : Ind UnitOfCurrency ;
+
+  fun SisalFiber : Class ;
+  fun SisalFiber_Class : SubClass SisalFiber PlantAgriculturalProduct ;
+
+  fun SlovakianKoruna : Ind UnitOfCurrency ;
+
+  -- Soap is a Surfactant Cleaning mixture used for 
+  -- personal or minor cleaning. It usually comes in solid moulded form. In 
+  -- the developed world, synthetic detergents have superseded soap as a 
+  -- laundry aid. Many soaps are mixtures of sodium or potassium salts of 
+  -- fatty acids which can be derived from oils or fats by reacting them with 
+  -- an alkali (such as sodium or potassium hydroxide) at 80_100 degrees Celsius in a 
+  -- process known as saponification. (from Wikipedia)
+  fun Soap : Class ;
+  fun Soap_Class : SubClass Soap Surfactant ;
+
+  -- SocialistEconomy is the Attribute 
+  -- used to characterize a country in which there is government ownership 
+  -- or direction of the means of production and distribution.
+  fun SocialistEconomy : Ind EconomicSystemAttribute ;
+
+  fun SomalianShilling : Ind UnitOfCurrency ;
+
+  fun Sorghum : Class ;
+  fun Sorghum_Class : SubClass Sorghum CerealGrass ;
+
+  fun SorghumFarming : Ind IndustryAttribute ;
+
+  fun SorghumGrain : Class ;
+  fun SorghumGrain_Class : SubClass SorghumGrain CerealGrain ;
+
+  fun SouthAfricanRand : Ind UnitOfCurrency ;
+
+  fun SouthKoreanWon : Ind UnitOfCurrency ;
+
+  fun Soya : Class ;
+  fun Soya_Class : SubClass Soya PlantAgriculturalProduct ;
+
+  fun Soybean : Class ;
+  fun Soybean_Class : SubClass Soybean Bean ;
+
+  fun SpanishPeseta : Ind UnitOfCurrency ;
+
+  fun Spice : Class ;
+  fun Spice_Class : SubClass Spice (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  fun SpicePepper : Class ;
+  fun SpicePepper_Class : SubClass SpicePepper Spice ;
+
+  fun Squash : Class ;
+  fun Squash_Class : SubClass Squash (both GroceryProduce Vegetable) ;
+
+  fun SriLankanRupee : Ind UnitOfCurrency ;
+
+  fun SteelForging : Ind IndustryAttribute ;
+
+  fun SteelFoundriesExceptInvestment : Ind IndustryAttribute ;
+
+  fun SteelIndustry : Ind IndustryAttribute ;
+
+  fun SteelInvestmentFoundries : Ind IndustryAttribute ;
+
+  fun SteelMills : Ind IndustryAttribute ;
+
+  fun SteelProductManufacturingFromPurchasedSteel : Ind IndustryAttribute ;
+
+  fun Steel_MetalProduct : SubClass Steel MetalProduct ;
+
+  fun SubsistenceAgricultureEconomy : Ind FinancialSectorAttribute ;
+
+  fun SudanesePound : Ind UnitOfCurrency ;
+
+  fun SugarBeet : Class ;
+  fun SugarBeet_Class : SubClass SugarBeet Vegetable ;
+
+  fun SugarCane : Class ;
+  fun SugarCane_Class : SubClass SugarCane (both GroceryProduce Vegetable) ;
+
+  fun Sunflower : Class ;
+  fun Sunflower_Class : SubClass Sunflower (both FloweringPlant PlantAgriculturalProduct) ;
+
+  fun SunflowerSeed : Class ;
+  fun SunflowerSeed_Class : SubClass SunflowerSeed (both PlantAgriculturalProduct Seed) ;
+
+  fun SupportActivitiesForMetalMining : Ind IndustryAttribute ;
+
+  fun SupportActivitiesForNonmetallicMineralsExceptFuels : Ind IndustryAttribute ;
+
+  fun SupportActivitiesForOilOperations : Ind IndustryAttribute ;
+
+  fun SurinameseGuilder : Ind UnitOfCurrency ;
+
+  fun SwazilandLilangeni : Ind UnitOfCurrency ;
+
+  fun SwedishKrona : Ind UnitOfCurrency ;
+
+  fun SweetPepper : Class ;
+  fun SweetPepper_Class : SubClass SweetPepper (both GroceryProduce Vegetable) ;
+
+  fun SweetPotatoTuber : Class ;
+  fun SweetPotatoTuber_Class : SubClass SweetPotatoTuber (both EdibleTuber GroceryProduce) ;
+
+  fun SwissFranc : Ind UnitOfCurrency ;
+
+  fun SyrianPound : Ind UnitOfCurrency ;
+
+  fun TaiwanDollar : Ind UnitOfCurrency ;
+
+  fun TajikSomoni : Ind UnitOfCurrency ;
+
+  fun TajikSomoniCoin : Class ;
+  fun TajikSomoniCoin_Class : SubClass TajikSomoniCoin CurrencyCoin ;
+
+  fun TajikistaniRuble : Ind UnitOfCurrency ;
+
+  fun TanzanianShilling : Ind UnitOfCurrency ;
+
+  fun TaroTuber : Class ;
+  fun TaroTuber_Class : SubClass TaroTuber (both EdibleTuber GroceryProduce) ;
+
+  fun TaxHavenEconomy : Ind FinancialSectorAttribute ;
+
+  fun TeaLeaf : Class ;
+  fun TeaLeaf_Class : SubClass TeaLeaf TeaPlantAerialPart ;
+
+  -- TeaPlantAerialPart is the 
+  -- class of all parts of the tea plant from which tea may be made, 
+  -- including leaves, stems, and twigs.
+  fun TeaPlantAerialPart : Class ;
+  fun TeaPlantAerialPart_Class : SubClass TeaPlantAerialPart FruitOrVegetable ;
+
+  fun TextileIndustry : Ind IndustryAttribute ;
+
+  fun TextileMills : Ind IndustryAttribute ;
+
+  fun TextileProduct : Class ;
+  fun TextileProduct_Class : SubClass TextileProduct (both Artifact ManufacturedProduct) ;
+
+  fun TextileProductMills : Ind IndustryAttribute ;
+
+  fun ThaiBaht : Ind UnitOfCurrency ;
+
+  -- Timber is wood from trees that is 
+  -- suitable for use for building or other human purposes.
+  fun Timber : Class ;
+  fun Timber_Class : SubClass Timber (both CompoundSubstance ForestProduct) ;
+
+  fun TogoFranc : Ind UnitOfCurrency ;
+
+  fun Tomato : Class ;
+  fun Tomato_Class : SubClass Tomato (both Fruit GroceryProduce) ;
+
+  fun TonganPaanga : Ind UnitOfCurrency ;
+
+  fun TourismBasedEconomy : Ind FinancialSectorAttribute ;
+
+  -- TourismIndustry is an Attribute that 
+  -- describes organizations that provide services or products for travellers 
+  -- who stay temporarily in a region to experience local attractions. There 
+  -- is an overlap between TourismIndustry and each of the following 
+  -- industries: TravelArrangementAndReservationServices, 
+  -- TravelerAccommodation, MuseumsHistoricalSitesAndSimilarInstitutions, 
+  -- AmusementGamblingAndRecreationIndustries, and
+  -- ArtsEntertainmentAndRecreation.
+  fun TourismIndustry : Ind IndustryAttribute ;
+
+  fun TradeBasedEconomy : Ind FinancialSectorAttribute ;
+
+  fun TrinidadAndTobagoDollar : Ind UnitOfCurrency ;
+
+  fun TropicalFruit : Class ;
+  fun TropicalFruit_Class : SubClass TropicalFruit (both Fruit GroceryProduce) ;
+
+  fun TunisianDinar : Ind UnitOfCurrency ;
+
+  fun TurkeyBird : Class ;
+  fun TurkeyBird_Class : SubClass TurkeyBird Poultry ;
+
+  fun TurkeyMeat : Class ;
+  fun TurkeyMeat_Class : SubClass TurkeyMeat Meat ;
+
+  fun TurkishLira : Ind UnitOfCurrency ;
+
+  fun TurkmenManat : Ind UnitOfCurrency ;
+
+  fun Turnip : Class ;
+  fun Turnip_Class : SubClass Turnip (both GroceryProduce RootVegetable) ;
+
+  fun Turtle : Class ;
+  fun Turtle_Class : SubClass Turtle (both Livestock Reptile) ;
+
+  fun TuvaluDollar : Ind UnitOfCurrency ;
+
+  fun TwoTierLaborMarketEconomy : Ind FinancialSectorAttribute ;
+
+  -- UNEconomicDevelopmentLevel 
+  -- is a subclass of EconomicDevelopmentLevel containing terms used to 
+  -- represent economic development classifications used by UnitedNations 
+  -- agencies. The top level of this classification scheme includes the 
+  -- concepts of DevelopedCountry, FormerSovietOrEasternEuropeanCountry, 
+  -- and LessDevelopedCountry.
+  fun UNEconomicDevelopmentLevel : Class ;
+  fun UNEconomicDevelopmentLevel_Class : SubClass UNEconomicDevelopmentLevel EconomicDevelopmentLevel ;
+
+  fun UgandanShilling : Ind UnitOfCurrency ;
+
+  fun UkranianHryvnia : Ind UnitOfCurrency ;
+
+  -- UnderdevelopedCountry is an 
+  -- Attribute describing less developed countries that have potential 
+  -- for above_average economic growth. See also LessDevelopedCountry.
+  fun UnderdevelopedCountry : Ind EconomicDevelopmentLevel ;
+
+  fun UnitedArabEmirateDirham : Ind UnitOfCurrency ;
+
+  fun UnitedStatesCentCoin : Class ;
+  fun UnitedStatesCentCoin_Class : SubClass UnitedStatesCentCoin CurrencyCoin ;
+
+  fun UnitedStatesDollarBill : Class ;
+  fun UnitedStatesDollarBill_Class : SubClass UnitedStatesDollarBill CurrencyBill ;
+
+  fun UnitedStatesFiveCentCoin : Class ;
+  fun UnitedStatesFiveCentCoin_Class : SubClass UnitedStatesFiveCentCoin CurrencyCoin ;
+
+  fun UnitedStatesQuarterCoin : Class ;
+  fun UnitedStatesQuarterCoin_Class : SubClass UnitedStatesQuarterCoin CurrencyCoin ;
+
+  fun UnitedStatesTenCentCoin : Class ;
+  fun UnitedStatesTenCentCoin_Class : SubClass UnitedStatesTenCentCoin CurrencyCoin ;
+
+  -- LowerMiddleIncomeCountry is an Attribute representing the World Bank 
+  -- classification for any country where the per capita GNI is 
+  -- between 2,996 and 9,266 (inclusive) in UnitedStatesDollars.
+  fun UpperMiddleIncomeCountry : Ind WorldBankGNIPerCapitaLevel ;
+
+  fun UruguayanPeso : Ind UnitOfCurrency ;
+
+  fun UzbekistaniSom : Ind UnitOfCurrency ;
+
+  fun Vanilla : Class ;
+  fun Vanilla_Class : SubClass Vanilla Spice ;
+
+  fun Veal : Class ;
+  fun Veal_Class : SubClass Veal Meat ;
+
+  fun Vegetable : Class ;
+  fun Vegetable_Class : SubClass Vegetable FruitOrVegetable ;
+
+  fun VegetableFarming : Ind IndustryAttribute ;
+
+  fun VegetableOil : Class ;
+  fun VegetableOil_Class : SubClass VegetableOil PlantAgriculturalProduct ;
+
+  fun VegetableOilIndustry : Ind IndustryAttribute ;
+
+  fun VenezuelanBolivar : Ind UnitOfCurrency ;
+
+  fun VietnameseDong : Ind UnitOfCurrency ;
+
+  fun Walnut : Class ;
+  fun Walnut_Class : SubClass Walnut EdibleNut ;
+
+  fun WaterBuffalo : Class ;
+  fun WaterBuffalo_Class : SubClass WaterBuffalo (both HoofedMammal Livestock) ;
+
+  fun WaterBuffaloMeat : Class ;
+  fun WaterBuffaloMeat_Class : SubClass WaterBuffaloMeat Meat ;
+
+  fun Watermelon : Class ;
+  fun Watermelon_Class : SubClass Watermelon Melon ;
+
+  -- WelfareCapitalism is an Attribute 
+  -- describing an economy in which the government provides economic subsidies 
+  -- to unemployed or disabled individuals.
+  fun WelfareCapitalism : Ind EconomicSystemAttribute ;
+
+  fun WesternSamoaNtala : Ind UnitOfCurrency ;
+
+  fun WheatFarming : Ind IndustryAttribute ;
+
+  fun WineGrape : Class ;
+  fun WineGrape_Class : SubClass WineGrape PlantAgriculturalProduct ;
+
+  fun WoodProduct : Class ;
+  fun WoodProduct_Class : SubClass WoodProduct ForestProduct ;
+
+  fun WoodProductManufacturing : Ind IndustryAttribute ;
+
+  fun WoolFiber : Class ;
+  fun WoolFiber_Class : SubClass WoolFiber AnimalAgriculturalProduct ;
+
+  -- WorldBankGNIPerCapitaLevel 
+  -- is the subclass of EconomicDevelopmentLevel containing attributes 
+  -- that characterize countries according to their per capita gross national 
+  -- income (GNI), as determined by the WorldBankGroup. The World Bank 
+  -- uses the Atlas method for making cross_country comparisons of national income.
+  fun WorldBankGNIPerCapitaLevel : Class ;
+  fun WorldBankGNIPerCapitaLevel_Class : SubClass WorldBankGNIPerCapitaLevel EconomicDevelopmentLevel ;
+
+  fun YamTuber : Class ;
+  fun YamTuber_Class : SubClass YamTuber (both EdibleTuber GroceryProduce) ;
+
+  fun YemeniRial : Ind UnitOfCurrency ;
+
+  fun YlangYlang : Class ;
+  fun YlangYlang_Class : SubClass YlangYlang PerfumeEssence ;
+
+  fun Yugoslavia : Ind Nation ;
+
+  fun YugoslavianDinar : Ind UnitOfCurrency ;
+
+  fun ZaireSezaire : Ind UnitOfCurrency ;
+
+  fun ZambianKwacha : Ind UnitOfCurrency ;
+
+  fun ZimbabweanDollar : Ind UnitOfCurrency ;
+
+  fun ZincIndustry : Ind IndustryAttribute ;
+
+  fun ZincManufacturing : Ind IndustryAttribute ;
+
+  fun ZincOre : Class ;
+  fun ZincOre_Class : SubClass ZincOre (both Mineral MiningProduct) ;
+
+  fun ZincOreMining : Ind IndustryAttribute ;
+
+  fun ZincProduct : Class ;
+  fun ZincProduct_Class : SubClass ZincProduct (both ManufacturedProduct MetalProduct) ;
+
+  -- (agriculturalProductType ?AREA ?TYPE) means that the 
+  -- GeopoliticalArea ?AREA produces a crop or other 
+  -- agricultural product of ?TYPE.
+  fun agriculturalProductType: El GeopoliticalArea -> Desc Object -> Formula ;
+
+  -- (agriculturalProductTypeByRank ?AREA ?TYPE ?NTH) means that the 
+  -- GeopoliticalArea ?AREA produces a crop or other 
+  -- agricultural product of ?TYPE, which is its ?NTH most important 
+  -- crop.
+  fun agriculturalProductTypeByRank: El GeopoliticalArea -> Desc Object -> Desc PositiveInteger -> Formula ;
+
+  -- (annualElectricityConsumption ?AREA ?AMOUNT) means that the 
+  -- GeopoliticalArea ?AREA uses ?AMOUNT of electricity (measured in KilowattHours) annually.
+  fun annualElectricityConsumption : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
+
+  -- (annualElectricityExport ?AREA ?AMOUNT) means that the 
+  -- GeopoliticalArea ?AREA exported the total ?AMOUNT of 
+  -- electricity (measured in KilowattHours) annually.
+  fun annualElectricityExport : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
+
+  -- (annualElectricityImport ?AREA ?AMOUNT) means that the 
+  -- GeopoliticalArea ?AREA imported the total ?AMOUNT of 
+  -- electricity (measured in KilowattHours) annually.
+  fun annualElectricityImport : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
+
+  -- (annualElectricityProduction ?AREA ?AMOUNT) means that the amount of 
+  -- electricity generated annually in the GeographicalArea ?AREA is 
+  -- ?AMOUNT, measured in KilowattHours.
+  fun annualElectricityProduction : El GeopoliticalArea -> El PhysicalQuantity -> Formula ;
+
+  -- (annualExpendituresOfArea ?AREA ?AMOUNT) means that the annual 
+  -- budgetary expenditures of the GeopoliticalArea ?AREA are ?AMOUNT, 
+  -- calculated in U.S. dollars according to the currency exchange rate 
+  -- method.
+  fun annualExpendituresOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (annualExpendituresOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
+  -- the annual budgetary expenditures of the GeopoliticalArea ?AREA are 
+  -- ?AMOUNT for the annual TimeInterval indicated by ?PERIOD, calculated 
+  -- in U.S. dollars according to the currency exchange rate method.
+  fun annualExpendituresOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (annualExportTotal ?AREA ?AMOUNT) means that the total 
+  -- value of exports from the GeopoliticalArea ?AREA is ?AMOUNT 
+  -- (in UnitedStatesDollars) annually. Export value is calculated 
+  -- on a Free on Board (F.O.B.) basis.
+  fun annualExportTotal : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (annualImportTotal ?AREA ?AMOUNT) means that the total 
+  -- value of imports to the GeopoliticalArea ?AREA is ?AMOUNT (in 
+  -- UnitedStatesDollars) annually. Import value is calculated on a Cost, 
+  -- Insurance, and Freight (C.I.F.) or a Free on Board (F.O.B.) basis.
+  fun annualImportTotal : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (annualRevenuesOfArea ?AREA ?AMOUNT) means that the annual budgetary 
+  -- revenues of the GeopoliticalArea ?AREA are ?AMOUNT, calculated in U.S. 
+  -- dollars according to the currency exchange rate method.
+  fun annualRevenuesOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (annualRevenuesOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
+  -- annual budgetary revenues of the GeopoliticalArea ?AREA are ?AMOUNT 
+  -- for the annual TimeInterval indicated by ?PERIOD, calculated in U.S. 
+  -- dollars according to the currency exchange rate method.
+  fun annualRevenuesOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (capitalExpendituresOfArea ?AREA ?AMOUNT) means that the annual 
+  -- capital expenditures of the GeopoliticalArea ?AREA are ?AMOUNT, 
+  -- calculated in U.S. dollars according to the currency exchange rate 
+  -- method. This figure is a portion of the annualExpendituresOfArea 
+  -- for ?AREA.
+  fun capitalExpendituresOfArea : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (capitalExpendituresOfAreaInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
+  -- the annual capital expenditures of the GeopoliticalArea ?AREA are 
+  -- ?AMOUNT for the annual TimeInterval indicated by ?PERIOD, calculated in 
+  -- U.S. dollars according to the currency exchange rate method. This figure 
+  -- is a portion of the annualExpendituresOfArea for ?AREA in ?PERIOD.
+  fun capitalExpendituresOfAreaInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (currencyCode ?CODE ?UNIT) means 
+  -- that ?CODE is the InternationalOrganizationForStandardization 
+  -- (ISO) 4217 alphabetic currency code for the national 
+  -- CurrencyMeasure ?UNIT.
+  fun currencyCode : El SymbolicString -> El UnitOfCurrency -> Formula ;
+
+  -- (currencyExchangePerUSDollar ?AMOUNT ?PERIOD) means that one 
+  -- UnitedStatesDollar is worth ?AMOUNT (in a non_U.S. CurrencyMeasure), 
+  -- during the TimeInterval indicated by ?PERIOD. The rate of exchange may 
+  -- be based either on international market forces or official fiat.
+  fun currencyExchangePerUSDollar: El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (currencyExchangeRate ?UNIT ?AMOUNT) means that the currency 
+  -- denomination ?UNIT is worth ?AMOUNT (which is in another 
+  -- CurrencyMeasure).
+  fun currencyExchangeRate : El UnitOfCurrency -> El CurrencyMeasure -> Formula ;
+
+  -- (currencyExchangeRateInPeriod ?UNIT ?AMOUNT ?PERIOD) means that the 
+  -- currency denomination ?UNIT is worth ?AMOUNT (which is expressed in another 
+  -- UnitOfCurrency) during the TimeInterval indicated by ?PERIOD.
+  fun currencyExchangeRateInPeriod: El UnitOfCurrency -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (currencyType ?AREA ?UNIT) means 
+  -- that the official currency used in the GeopoliticalArea ?AREA 
+  -- is the UnitOfMeasure ?UNIT.
+  fun currencyType : El GeopoliticalArea -> El UnitOfCurrency -> Formula ;
+
+  -- The currencyValue is a relation between
+  -- a physical instrument of currency, such as a bill or coin, and the
+  -- measure of its worth in a particular currency.
+  fun currencyValue: Desc Currency -> El CurrencyMeasure -> Formula ;
+
+  -- (economicAidDonated ?AGENT ?AMOUNT) means that the GeopoliticalArea 
+  -- ?AREA donated ?AMOUNT of aid (valued in U.S. dollars) to developing 
+  -- countries and multilateral organizations. This figure covers 'net 
+  -- official development assistance' (ODA), which is net financial assistance 
+  -- from nations belonging to the 
+  -- OrganizationForEconomicCooperationAndDevelopment (OECD), with the main 
+  -- goal of promoting economic development and welfare. Such aid contains a 
+  -- grant element of at least 25%. This statistic does not cover private 
+  -- flows of assistance or other official flows (OOF).
+  fun economicAidDonated : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (economicAidDonatedInPeriod ?AGENT ?AMOUNT ?PERIOD) means that the 
+  -- GeopoliticalArea ?AGENT donated ?AMOUNT of aid (valued in U.S. dollars) 
+  -- to developing countries and multilateral organizations during the 
+  -- TimeInterval indicated by ?PERIOD. This figure covers 'net official 
+  -- development assistance' (ODA), which is net financial assistance from 
+  -- nations belonging to the 
+  -- OrganizationForEconomicCooperationAndDevelopment (OECD), with the main 
+  -- goal of promoting economic development and welfare. Such aid contains a 
+  -- grant element of at least 25%. This statistic does not cover private 
+  -- flows of assistance or other official flows (OOF).
+  fun economicAidDonatedInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (economicAidReceivedNet ?AREA ?AMOUNT) means that the 
+  -- GeopoliticalArea ?AREA had a net inflow of Official Development Finance 
+  -- (ODF) of ?AMOUNT. ODF includes funds from the World Bank, the IMF, other 
+  -- international organizations, and individual donor nations, including both 
+  -- grants and loans. The figure includes formal commitments of aid not yet 
+  -- disbursed. The figure is the net amount of inflow after deducting 
+  -- repayments, valued in U.S. dollars.
+  fun economicAidReceivedNet : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (economicAidReceivedNetInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
+  -- GeopoliticalArea ?AREA had a net inflow of Official Development Finance 
+  -- (ODF) of ?AMOUNT during the TimeInterval indicated by ?PERIOD. ODF 
+  -- includes funds from the World Bank, the IMF, other international 
+  -- organizations, and individual donor nations, including both grants and 
+  -- loans. The figure includes formal commitments of aid not yet disbursed. 
+  -- The figure is the net amount of inflow after deducting repayments, 
+  -- valued in U.S. dollars.
+  fun economicAidReceivedNetInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (economyType ?POLITY ?TYPE) means that the 
+  -- GeopoliticalArea ?POLITY has an economic system of TYPE.
+  fun economyType : El Agent -> El EconomicAttribute -> Formula ;
+
+  -- (electricityConsumptionInPeriod ?AREA ?AMOUNT ?YEAR) means that 
+  -- the GeopoliticalArea ?AREA used ?AMOUNT of electricity (measured in 
+  -- KilowattHours) during the TimeInterval indicated by ?YEAR.
+  fun electricityConsumptionInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
+
+  -- (electricityExportInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
+  -- the GeopoliticalArea ?AREA exported the total ?AMOUNT of electricity 
+  -- (measured in KilowattHours) during the TimeInterval indicated 
+  -- by ?PERIOD.
+  fun electricityExportInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
+
+  -- (electricityFractionFromSource ?AREA ?SOURCE ?FRACTION) means that in 
+  -- the GeopoliticalArea ?AREA, ?SOURCE provides ?FRACTION of the total 
+  -- electricity production.
+  fun electricityFractionFromSource: El GeopoliticalArea -> Desc PowerGeneration -> El RealNumber -> Formula ;
+
+  -- (electricityFractionFromSourceInPeriod ?AREA ?SOURCE ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, ?SOURCE provides ?FRACTION 
+  -- of the total electricity production during the TimeInterval indicated 
+  -- by ?PERIOD.
+  fun electricityFractionFromSourceInPeriod: El GeopoliticalArea -> Desc PowerGeneration -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (electricityImportInPeriod ?AREA ?AMOUNT ?PERIOD) means that 
+  -- the GeopoliticalArea ?AREA imported the total ?AMOUNT of electricity 
+  -- (measured in KilowattHours) during the TimeInterval indicated by ?PERIOD.
+  fun electricityImportInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
+
+  -- (electricityProductionInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
+  -- GeopoliticalArea ?AREA generates ?AMOUNT of electricity, measured in 
+  -- KilowattHours, during the TimeInterval indicated by ?PERIOD.
+  fun electricityProductionInPeriod: El GeopoliticalArea -> El PhysicalQuantity -> Desc TimeInterval -> Formula ;
+
+  -- (exportCommodityType ?AREA ?TYPE) means that the GeopoliticalArea 
+  -- ?AREA exports the commodity ?TYPE.
+  fun exportCommodityType: El GeopoliticalArea -> Desc Object -> Formula ;
+
+  -- (exportCommodityTypeByRank ?AREA ?TYPE ?NTH) means that the 
+  -- GeopoliticalArea ?AREA has the commodity ?TYPE as its ?NTH 
+  -- most valuable export.
+  fun exportCommodityTypeByRank: El GeopoliticalArea -> Desc Object -> El PositiveInteger -> Formula ;
+
+  -- (exportPartner ?AGENT1 ?AGENT2) means that the Agent ?AGENT1 exports goods to the Agent ?AGENT2.
+  fun exportPartner : El Agent -> El Agent -> Formula ;
+
+  -- (exportPartnerByFraction ?AREA1 ?AREA2 ?FRACTION) means that 
+  -- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
+  -- ?AREA2 and receives ?FRACTION of the exportTotalInPeriod of ?AREA1, 
+  -- based on U.S. dollar value of exports.
+  fun exportPartnerByFraction : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Formula ;
+
+  -- (exportPartnerByFractionInPeriod ?AREA1 ?AREA2 ?FRACTION ?PERIOD) means 
+  -- that the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
+  -- ?AREA2 and receives ?FRACTION of the exportTotalInPeriod of ?AREA1 
+  -- in the TimeInterval ?PERIOD, based on U.S. dollar value of exports.
+  fun exportPartnerByFractionInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (exportPartnerByRank ?AREA1 ?AREA2 ?NTH) means that 
+  -- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
+  -- ?AREA2 and is the ?NTH most important export partner of ?AREA1, 
+  -- based on U.S. dollar value of exports.
+  fun exportPartnerByRank : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Formula ;
+
+  -- (exportPartnerByRankInPeriod ?AREA1 ?AREA2 ?NTH ?PERIOD) means that 
+  -- the GeopoliticalArea ?AREA1 exports goods to GeopoliticalArea 
+  -- ?AREA2 and is the ?NTH most important export partner of ?AREA1, 
+  -- in the TimeInterval ?PERIOD, based on U.S. dollar value of exports.
+  fun exportPartnerByRankInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Desc TimeInterval -> Formula ;
+
+  -- (exportPartnerInPeriod ?AGENT1 ?AGENT2 ?PERIOD) means that the Agent 
+  -- ?AGENT1 exports goods to the Agent ?AGENT2 during the TimeInterval 
+  -- indicated by ?PERIOD.
+  fun exportPartnerInPeriod: El Agent -> El Agent -> Desc TimeInterval -> Formula ;
+
+  -- (exportTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
+  -- total value of exports from the GeopoliticalArea ?AREA is ?AMOUNT 
+  -- (in UnitedStatesDollars) for the TimeInterval indicated by ?PERIOD. 
+  -- Export value is calculated on a Free on Board (F.O.B.) basis.
+  fun exportTotalInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (externalDebt ?COUNTRY ?AMOUNT) means 
+  -- that the GeopoliticalArea ?COUNTRY owes the total sum ?AMOUNT of debt 
+  -- (public and private) to nonresidents. The amount is valued in U.S. 
+  -- dollars but may be repayable in foreign currency, goods, or services.
+  fun externalDebt : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (externalDebtInPeriod ?COUNTRY ?AMOUNT ?PERIOD) means that the 
+  -- GeopoliticalArea ?COUNTRY owes the total sum ?AMOUNT of debt (public 
+  -- and private) to nonresidents during the TimeInterval indicated by 
+  -- ?PERIOD. The amount is valued in U.S. dollars but may be repayable in 
+  -- foreign currency, goods, or services.
+  fun externalDebtInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- The predicate fiscalYearPeriod 
+  -- indicates the period that an Agent or Organization uses as its 
+  -- 12_month accounting period. (fiscalYearPeriod ?AGENT Year) means 
+  -- that ?AGENT observes its 12_month accounting period during the 
+  -- regular calendar year (CY), from January to December. For 
+  -- fiscal years with other beginning and ending months (FYs), use 
+  -- (fiscalYearPeriod ?AGENT (RecurrentTimeIntervalFn ?STARTMONTH ?ENDMONTH)). 
+  -- For example, (fiscalYearPeriod (GovernmentFn UnitedStates) 
+  -- (RecurrentTimeIntervalFn October September)). For FYs that begin 
+  -- or end mid_month, days may be specified within RecurrentTimeIntervalFn.
+  fun fiscalYearPeriod: El Agent -> Desc TimeInterval -> Formula ;
+
+  -- (highestDecileShareOfHouseholdIncome ?AREA ?FRACTION) means that 
+  -- in the GeopoliticalArea ?AREA, the highest decile (90_100%) of 
+  -- households with respect to household income (or consumption) had 
+  -- ?FRACTION amount of the total household income (or consumption). 
+  -- Data from different countries may not be directly comparable due to 
+  -- variation in the basis of the data (e.g., based on income versus 
+  -- based on consumption).
+  fun highestDecileShareOfHouseholdIncome : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (highestDecileShareOfHouseholdIncomeInPeriod ?AREA ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, the highest decile (90_100%) 
+  -- of households with respect to household income (or consumption) had 
+  -- ?FRACTION amount of the total household income (or consumption), during 
+  -- the TimeInterval indicated by ?PERIOD. Data from different countries 
+  -- may not be directly comparable due to variation in the basis of the data 
+  -- (e.g., based on household income versus based on household consumption).
+  fun highestDecileShareOfHouseholdIncomeInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (importCommodityType ?AREA ?TYPE) means that the GeopoliticalArea 
+  -- ?AREA imports the commodity ?TYPE.
+  fun importCommodityType: El GeopoliticalArea -> Desc Object -> Formula ;
+
+  -- (importCommodityTypeByRank ?AREA ?TYPE ?NTH) means that the 
+  -- GeopoliticalArea ?AREA has the commodity ?TYPE as its ?NTH 
+  -- most valuable import.
+  fun importCommodityTypeByRank: El GeopoliticalArea -> Desc Object -> El PositiveInteger -> Formula ;
+
+  -- (importPartner ?AGENT1 ?AGENT2) means 
+  -- that the Agent ?AGENT1 imports goods from the Agent ?AGENT2.
+  fun importPartner : El Agent -> El Agent -> Formula ;
+
+  -- (importPartnerByFraction ?AREA1 ?AREA2 ?FRACTION) means that 
+  -- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
+  -- ?AREA2 and provides ?FRACTION of the importTotalInPeriod of ?AREA1, 
+  -- based on U.S. dollar value of imports.
+  fun importPartnerByFraction : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Formula ;
+
+  -- (importPartnerByFractionInPeriod ?AREA1 ?AREA2 ?FRACTION ?PERIOD) means 
+  -- that the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
+  -- ?AREA2 and provides ?FRACTION of the importTotalInPeriod of ?AREA1 
+  -- during the TimeInterval ?PERIOD, in U.S. dollar value of imports.
+  fun importPartnerByFractionInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveRealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (importPartnerByRank ?AREA1 ?AREA2 ?NTH) means that 
+  -- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
+  -- ?AREA2 is the ?NTH most important import partner of ?AREA1, based on 
+  -- U.S. dollar value of imports.
+  fun importPartnerByRank : El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Formula ;
+
+  -- (importPartnerByRankInPeriod ?AREA1 ?AREA2 ?NTH ?PERIOD) means that 
+  -- the GeopoliticalArea ?AREA1 imports goods from GeopoliticalArea 
+  -- ?AREA2 is the ?NTH most important import partner of ?AREA1 during 
+  -- the TimeInterval ?PERIOD, based on U.S. dollar value of imports.
+  fun importPartnerByRankInPeriod: El GeopoliticalArea -> El GeopoliticalArea -> El PositiveInteger -> Desc TimeInterval -> Formula ;
+
+  -- (importPartnerInPeriod ?AGENT1 ?AGENT2 ?PERIOD) means that the Agent 
+  -- ?AGENT1 imports goods from the Agent ?AGENT2 during the TimeInterval 
+  -- indicated by ?PERIOD.
+  fun importPartnerInPeriod: El Agent -> El Agent -> Desc TimeInterval -> Formula ;
+
+  -- (importTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the 
+  -- total value of imports to the GeopoliticalArea ?AREA is ?AMOUNT 
+  -- (in UnitedStatesDollars) for the TimeInterval indicated by ?PERIOD. 
+  -- Import value is calculated on a Cost, Insurance, and Freight (C.I.F.) 
+  -- or a Free on Board (F.O.B.) basis.
+  fun importTotalInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (incomeDistributionByGiniIndex ?AREA ?INDEX) means that in the 
+  -- GeopoliticalArea ?AREA, the distribution of family income is ?INDEX, 
+  -- as measured by the Gini index for family income distribution.
+  fun incomeDistributionByGiniIndex : El GeopoliticalArea -> El NonnegativeRealNumber -> Formula ;
+
+  -- (incomeDistributionByGiniIndexInPeriod ?AREA ?INDEX ?PERIOD) means that 
+  -- in the GeopoliticalArea ?AREA, the distribution of family income is 
+  -- ?INDEX, as measured by the Gini index, during the TimeInterval indicated 
+  -- by ?PERIOD.
+  fun incomeDistributionByGiniIndexInPeriod: El GeopoliticalArea -> El NonnegativeRealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (industrialProductionGrowthRate ?AREA ?RATE) means that in 
+  -- the GeopoliticalArea ?AREA, the annual percentage increase in 
+  -- industrial production is ?RATE.
+  fun industrialProductionGrowthRate : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (industrialProductionGrowthRateInPeriod ?AREA ?RATE ?PERIOD) means 
+  -- that in the GeopoliticalArea ?AREA, the annual percentage increase in 
+  -- industrial production is ?RATE, for the TimeInterval ?PERIOD.
+  fun industrialProductionGrowthRateInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (industryOfArea ?AREA ?SECTOR) means that the GeopoliticalArea ?AREA produces 
+  -- goods or services in the economic area ?SECTOR.
+  fun industryOfArea : El GeopoliticalArea -> El IndustryAttribute -> Formula ;
+
+  -- (industryProductType ?INDUSTRY ?TYPE) means that organizations with 
+  -- the IndustryAttribute ?INDUSTRY produce products of the kind ?TYPE.
+  fun industryProductType: El IndustryAttribute -> Desc Object -> Formula ;
+
+  -- (industryRankByOutput ?AREA ?SECTOR ?NTH) means that in the 
+  -- GeopoliticalArea ?AREA, the economic area ?SECTOR is ?NTH with 
+  -- respect to the value of its annual output.
+  fun industryRankByOutput : El GeopoliticalArea -> El IndustryAttribute -> El PositiveInteger -> Formula ;
+
+  -- (industryServiceType ?INDUSTRY ?TYPE) means that organizations with 
+  -- the IndustryAttribute ?INDUSTRY provide services of the kind ?TYPE.
+  fun industryServiceType: El IndustryAttribute -> Desc IntentionalProcess -> Formula ;
+
+  -- (inflationRateOfConsumerPrices ?AREA ?FRACTION) means that in the 
+  -- GeopoliticalArea ?AREA, the annual change in consumer prices was 
+  -- ?FRACTION, compared with prices from the previous year.
+  fun inflationRateOfConsumerPrices : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (inflationRateOfConsumerPricesInPeriod ?AREA ?FRACTION ?PERIOD) means 
+  -- that in the GeopoliticalArea ?AREA, the annual change in consumer 
+  -- prices was ?FRACTION, for the TimeInterval indicated by ?PERIOD, 
+  -- compared with prices from the prior period.
+  fun inflationRateOfConsumerPricesInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (laborForceFractionByOccupation ?AREA ?SECTOR ?FRACTION) 
+  -- means that in the GeopoliticalArea ?AREA, workers in the job area 
+  -- ?SECTOR make up ?FRACTION of the labor force. The unemployed are not 
+  -- included in these figures. Occupation may be indicated by an 
+  -- OccupationalRole or an IndustryAttribute.
+  fun laborForceFractionByOccupation : El GeopoliticalArea -> El Attribute -> El RealNumber -> Formula ;
+
+  -- (laborForceFractionByOccupationInPeriod ?AREA ?SECTOR ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, workers in the job area 
+  -- ?SECTOR make up ?FRACTION of the labor force, during the TimeInterval 
+  -- indicated by ?PERIOD. The unemployed are not included in these figures. 
+  -- Occupation may be indicated by an OccupationalRole or an 
+  -- IndustryAttribute.
+  fun laborForceFractionByOccupationInPeriod: El GeopoliticalArea -> El Attribute -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (laborForceTotal ?AREA ?AMOUNT) means that the total labor 
+  -- force of the GeopoliticalArea ?AREA is ?AMOUNT. This includes 
+  -- unemployed workers.
+  fun laborForceTotal : El GeopoliticalArea -> El NonnegativeRealNumber -> Formula ;
+
+  -- (laborForceTotalInPeriod ?AREA ?AMOUNT ?PERIOD) means that the total 
+  -- labor force of the GeopoliticalArea ?AREA is ?AMOUNT during the 
+  -- TimeInterval indicated by ?PERIOD. This includes unemployed workers.
+  fun laborForceTotalInPeriod: El GeopoliticalArea -> El NonnegativeRealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (lowestDecileShareOfHouseholdIncome ?AREA ?FRACTION) means that 
+  -- in the GeopoliticalArea ?AREA, the lowest decile (0_10%) of 
+  -- households with respect to household income (or consumption) had 
+  -- ?FRACTION amount of the total household income (or consumption). 
+  -- Data from different countries may not be directly comparable due to 
+  -- variation in the basis of the data (e.g., based on income versus based 
+  -- on consumption).
+  fun lowestDecileShareOfHouseholdIncome : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (lowestDecileShareOfHouseholdIncomeInPeriod ?AREA ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, the lowest decile (0_10%) 
+  -- of households with respect to household income (or consumption) had 
+  -- ?FRACTION amount of the total household income (or consumption), during 
+  -- the TimeInterval indicated by ?PERIOD. Data from different countries 
+  -- may not be directly comparable due to variation in the basis of the data 
+  -- (e.g., based on household income versus based on household consumption).
+  fun lowestDecileShareOfHouseholdIncomeInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (organizationProductType ?BUSINESS ?TYPE) means that the Organization 
+  -- ?BUSINESS produces products of the kind ?TYPE.
+  fun organizationProductType: El Organization -> Desc Object -> Formula ;
+
+  -- (organizationServiceType ?BUSINESS ?TYPE) means that the Organization 
+  -- ?BUSINESS provides services of the kind ?TYPE.
+  fun organizationServiceType: El Organization -> Desc IntentionalProcess -> Formula ;
+
+  -- (perCapitaGDP ?AREA ?AMOUNT) means 
+  -- that the Gross Domestic Product, on a per capita basis, for the 
+  -- GeopoliticalArea ?AREA is ?AMOUNT, calculated in U.S. dollars on a 
+  -- purchasing power parity basis. See PPPBasedEconomicValuation.
+  fun perCapitaGDP : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (perCapitaGDPInPeriod ?AREA ?AMOUNT ?PERIOD) means that the Gross 
+  -- Domestic Product, on a per capita basis, for the GeopoliticalArea 
+  -- ?AREA is ?AMOUNT during the period indicated by ?PERIOD, calculated in 
+  -- U.S. dollars on a purchasing power parity basis. See 
+  -- PPPBasedEconomicValuation.
+  fun perCapitaGDPInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (populationFractionBelowPovertyLine ?AREA ?FRACTION) means that in 
+  -- the GeopoliticalArea ?AREA, the segment of the population living 
+  -- below the (locally defined) poverty line is ?FRACTION. Note that the 
+  -- definition of the poverty line varies internationally.
+  fun populationFractionBelowPovertyLine : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (populationFractionBelowPovertyLineInPeriod ?AREA ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, the segment of the population 
+  -- living below the (locally defined) poverty line is ?FRACTION during the 
+  -- TimeInterval indicated by ?PERIOD. Note that the definition of the 
+  -- poverty line varies internationally.
+  fun populationFractionBelowPovertyLineInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (realGrowthRateOfGDP ?AREA ?RATE) 
+  -- means that the annual rate of growth in the Gross Domestic Product (GDP) 
+  -- for the GeopoliticalArea ?AREA is the fraction ?RATE, adjusted for 
+  -- inflation, with GDP calculated on a purchasing power parity basis. 
+  -- See PPPBasedEconomicValuation.
+  fun realGrowthRateOfGDP : El GeopoliticalArea -> El RealNumber -> Formula ;
+
+  -- (realGrowthRateOfGDPInPeriod ?AREA ?RATE ?PERIOD) means that the 
+  -- annual rate of growth in the Gross Domestic Product (GDP) for the 
+  -- GeopoliticalArea ?AREA is the fraction ?RATE in the period ?PERIOD, 
+  -- adjusted for inflation, with GDP calculated on a purchasing power 
+  -- parity basis. See PPPBasedEconomicValuation.
+  fun realGrowthRateOfGDPInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (resultType ?PROCESS ?TYPE) means that 
+  -- the Process ?PROCESS produces some result(s) of the type ?TYPE.
+  fun resultType: El Process -> Desc Object -> Formula ;
+
+  -- (sectorCompositionOfGDP ?AREA ?SECTOR ?FRACTION) means 
+  -- that in the GeopoliticalArea ?AREA, the economic sector ?SECTOR 
+  -- contributes the amount ?FRACTION to the Gross National Product.
+  fun sectorCompositionOfGDP : El GeopoliticalArea -> El IndustryAttribute -> El RealNumber -> Formula ;
+
+  -- (sectorCompositionOfGDPInPeriod ?AREA ?SECTOR ?FRACTION ?PERIOD) 
+  -- means that in the GeopoliticalArea ?AREA, the economic sector ?SECTOR 
+  -- contributes the amount ?FRACTION to the Gross National Product 
+  -- during the TimeInterval indicated by ?PERIOD.
+  fun sectorCompositionOfGDPInPeriod: El GeopoliticalArea -> El IndustryAttribute -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (sectorValueOfGDP ?AREA ?SECTOR ?AMOUNT) means that for the 
+  -- GeopoliticalArea ?AREA, the economic sector ?SECTOR contributes 
+  -- ?AMOUNT to the Gross National Product, evaluated in U.S. dollars on 
+  -- a purchasing power parity basis. See PPPBasedEconomicValuation.
+  fun sectorValueOfGDP : El GeopoliticalArea -> El IndustryAttribute -> El CurrencyMeasure -> Formula ;
+
+  -- (sectorValueOfGDPInPeriod ?AREA ?SECTOR ?AMOUNT ?PERIOD) means that 
+  -- for the GeopoliticalArea ?AREA, the economic sector ?SECTOR contributes 
+  -- ?AMOUNT to the Gross National Product during the TimeInterval indicated 
+  -- by ?PERIOD, evaluated in U.S. dollars on a purchasing power parity basis. 
+  -- See PPPBasedEconomicValuation.
+  fun sectorValueOfGDPInPeriod: El GeopoliticalArea -> El IndustryAttribute -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (totalGDP ?AREA ?AMOUNT) means that the value 
+  -- of all final goods and services produced within the GeopoliticalArea 
+  -- ?AREA is ?AMOUNT, in U.S. dollars, calculated on a purchasing power parity 
+  -- basis. This represents Gross Domestic Product (GDP). See 
+  -- PPPBasedEconomicValuation.
+  fun totalGDP : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+
+  -- (totalGDPInPeriod ?AREA ?AMOUNT ?PERIOD) 
+  -- means that the value of all final goods and services produced within 
+  -- the GeopoliticalArea ?AREA is ?AMOUNT in the period indicated by ?PERIOD, 
+  -- measured in U.S. dollars calculated on a purchasing power parity basis. 
+  -- (See PPPBasedEconomicValuation.) This is the Gross Domestic Product for 
+  -- ?AREA for a specified period.
+  fun totalGDPInPeriod: El GeopoliticalArea -> El CurrencyMeasure -> Desc TimeInterval -> Formula ;
+
+  -- (unemploymentRateOfArea ?AREA ?RATE ?PERIOD) means that the 
+  -- unemployment rate in the GeographicalArea ?AREA is ?RATE, 
+  -- during the TimeInterval indicated by ?PERIOD.
+  fun unemploymentRateOfArea: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
+  -- (unemploymentRateOfAreaInPeriod ?AREA ?RATE ?PERIOD) means that the 
+  -- unemployment rate in the GeographicalArea ?AREA is ?RATE, during the 
+  -- TimeInterval indicated by ?PERIOD.
+  fun unemploymentRateOfAreaInPeriod: El GeopoliticalArea -> El RealNumber -> Desc TimeInterval -> Formula ;
+
 }
diff --git a/examples/SUMO/EconomyEng.gf b/examples/SUMO/EconomyEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EconomyEng.gf
@@ -0,0 +1,13 @@
+concrete EconomyEng of Economy = MidLevelOntologyEng ** open DictLangEng, DictEng, ParadigmsEng in {
+
+lin
+  Apple = UseN apple_N ;
+  Avocado = UseN avocado_N ;
+  Coconut = UseN coconut_N ;
+  DateFruit = ApposCN (UseN date_N) (MassNP (UseN fruit_N)) ;
+  Fodder = UseN fodder_N ;
+  Hay = UseN hay_N ;
+  Opium = UseN opium_N ;
+  Pea = UseN pea_N ;
+
+}
diff --git a/examples/SUMO/EconomyFre.gf b/examples/SUMO/EconomyFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EconomyFre.gf
@@ -0,0 +1,6 @@
+concrete EconomyFre of Economy = MidLevelOntologyFre ** open DictLangFre, LexiconFre in {
+
+lin
+  Apple = UseN apple_N ;
+
+}
diff --git a/examples/SUMO/EconomyRon.gf b/examples/SUMO/EconomyRon.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EconomyRon.gf
@@ -0,0 +1,6 @@
+concrete EconomyRon of Economy = MidLevelOntologyRon ** open DictLangRon, LexiconRon in {
+
+lin
+  Apple = UseN apple_N ;
+
+}
diff --git a/examples/SUMO/Elements.gf b/examples/SUMO/Elements.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/Elements.gf
@@ -0,0 +1,929 @@
+abstract Elements = Merge ** {
+
+  --  Silvery radioactive metallic element, belongs to 
+  -- group 3 of the periodic table. The most stable isotope, Ac_227, has a 
+  -- half_life of 217 years. Ac_228 (half_life of 6.13 hours) also occurs in 
+  -- nature. There are 22 other artificial isotopes, all radioactive and 
+  -- having very short half_lives. Chemistry similar to lanthanum. Used as a 
+  -- source of alpha particles. Discovered by A. Debierne in 1899.
+  fun Actinium : Class ;
+  fun Actinium_Class : SubClass Actinium ElementalSubstance ;
+
+  -- Silvery_white lustrous metallic element of group 
+  -- 3 of the periodic table. Highly reactive but protected by a thin 
+  -- transparent layer of the oxide which quickly forms in air. There are many 
+  -- alloys of aluminum, as well as a good number of industrial uses. Makes up 
+  -- 8.1 percent of the Earth's crust, by weight. Isolated in 1825 by H.C. 
+  -- Oersted.
+  fun Aluminum : Class ;
+  fun Aluminum_Class : SubClass Aluminum ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element, 
+  -- belongs to the actinoids. Ten known isotopes. Am_243 is the most stable 
+  -- isotope, with a half_life of 7.95*10^3 years. Discovered by Glenn T. 
+  -- Seaborg and associates in 1945, it was obtained by bombarding 
+  -- {uranium}_238 with alpha particles.
+  fun Americium : Class ;
+  fun Americium_Class : SubClass Americium ElementalSubstance ;
+
+  -- Element of group 15. Multiple allotropic forms. 
+  -- The stable form of antimony is a blue_white metal. Yellow and black 
+  -- antimony are unstable non_metals. Used in flame_proofing, paints, 
+  -- ceramics, enamels, and rubber. Attacked by oxidizing acids and halogens. 
+  -- First reported by Tholden in 1450.
+  fun Antimony : Class ;
+  fun Antimony_Class : SubClass Antimony ElementalSubstance ;
+
+  -- Monatomic noble gas. Makes up 0.93 percent of the 
+  -- air. Colourless, odorless. Is inert and has no true compounds. Lord 
+  -- Rayleigh and Sir william Ramsey identified argon in 1894.
+  fun Argon : Class ;
+  fun Argon_Class : SubClass Argon ElementalSubstance ;
+
+  -- Metalloid element of group 15. There are three 
+  -- allotropes, yellow, black, and grey. Reacts with halogens, concentrated 
+  -- oxidizing acids and hot alkalis. Albertus Magnus is believed to have been 
+  -- the first to isolate the element in 1250.
+  fun Arsenic : Class ;
+  fun Arsenic_Class : SubClass Arsenic ElementalSubstance ;
+
+  -- Radioactive halogen element. Occurs naturally 
+  -- from uranium and thorium decay. At least 20 known isotopes. At_210, the 
+  -- most stable, has a half_life of 8.3 hours. Synthesized by nuclear 
+  -- bombardment in 1940 by D.R. Corson, K.R. MacKenzie and E. Segre at the 
+  -- University of California.
+  fun Astatine : Class ;
+  fun Astatine_Class : SubClass Astatine ElementalSubstance ;
+
+  -- Silvery_white reactive element, belonging to group 
+  -- 2 of the periodic table. Soluble barium compounds are extremely 
+  -- poisonous. Identified in 1774 by Karl Scheele and extracted in 1808 by 
+  -- Humphry Davy.
+  fun Barium : Class ;
+  fun Barium_Class : SubClass Barium ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element. 
+  -- Belongs to actinoid series. Eight known isotopes, the most common Bk_247, 
+  -- has a half_life of 1.4*10^3 years. First produced by Glenn T. Seaborg 
+  -- and associates in 1949 by bombarding americium_241 with alpha 
+  -- particles.
+  fun Berkelium : Class ;
+  fun Berkelium_Class : SubClass Berkelium ElementalSubstance ;
+
+  -- Grey metallic element of group 2 of the periodic 
+  -- table. Is toxic and can cause severe lung diseases and dermatitis. Shows 
+  -- high covalent character. It was isolated independently by F. Wohler and 
+  -- A.A. Bussy in 1828.
+  fun Beryllium : Class ;
+  fun Beryllium_Class : SubClass Beryllium ElementalSubstance ;
+
+  -- White crystalline metal with a pink tinge, belongs 
+  -- to group 15. Most diamagnetic of all metals and has the lowest thermal 
+  -- conductivity of all the elements except mercury. Lead_free bismuth 
+  -- compounds are used in cosmetics and medical procedures. Burns in the air 
+  -- and produces a blue flame. In 1753, C.G. Junine first demonstrated that 
+  -- it was different from lead.
+  fun Bismuth : Class ;
+  fun Bismuth_Class : SubClass Bismuth ElementalSubstance ;
+
+  -- An element of group 13 of the periodic table. There 
+  -- are two allotropes, amorphous boron is a brown power, but metallic boron 
+  -- is black. The metallic form is hard (9.3 on Mohs' scale) and a bad 
+  -- conductor in room temperatures. It is never found free in nature. 
+  -- Boron_10 is used in nuclear reactor control rods and shields. It was 
+  -- discovered in 1808 by Sir Humphry Davy and by J.L. Gay_Lussac and L.J. 
+  -- Thenard.
+  fun Boron : Class ;
+  fun Boron_Class : SubClass Boron ElementalSubstance ;
+
+  -- Halogen element. Red volatile liquid at room 
+  -- temperature. Its reactivity is somewhere between chlorine and iodine. 
+  -- Harmful to human tissue in a liquid state, the vapour irritates eyes and 
+  -- throat. Discovered in 1826 by Antoine Balard.
+  fun Bromine : Class ;
+  fun Bromine_Class : SubClass Bromine ElementalSubstance ;
+
+  -- Soft bluish metal belonging to group 12 of the 
+  -- periodic table. Extremely toxic even in low concentrations. Chemically 
+  -- similar to zinc, but lends itself to more complex compounds. Discovered 
+  -- in 1817 by F. Stromeyer.
+  fun Cadmium : Class ;
+  fun Cadmium_Class : SubClass Cadmium ElementalSubstance ;
+
+  -- Soft silvery_white metallic element belonging to 
+  -- group 1 of the periodic table. One of the three metals which are liquid 
+  -- at room temperature. Cs_133 is the natural, and only stable, isotope. 
+  -- Fifteen other radioisotopes exist. Caesium reacts explosively with cold 
+  -- water, and ice at temperatures above 157K. Caesium hydroxide is the 
+  -- strongest base known. Caesium is the most electropositive, most alkaline 
+  -- and has the least ionization potential of all the elements. Known uses 
+  -- include the basis of atomic clocks, catalyst for the hydrogenation of some 
+  -- organic compounds, and in photoelectric cells. Caesium was discovered by 
+  -- Gustav Kirchoff and Robert Bunsen in Germany in 1860 spectroscopically. 
+  -- Its identification was based upon the bright blue lines in its spectrum. 
+  -- The name comes from the latin word caesius, which means sky blue. Caesium 
+  -- should be considered highly toxic. Some of the radioisotopes are even 
+  -- more toxic.
+  fun Caesium : Class ;
+  fun Caesium_Class : SubClass Caesium ElementalSubstance ;
+
+  -- Soft grey metallic element belonging to group 2 of 
+  -- the periodic table. Used a reducing agent in the extraction of thorium, 
+  -- zirconium and uranium. Essential element for living organisms.
+  fun Calcium : Class ;
+  fun Calcium_Class : SubClass Calcium ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element. 
+  -- Belongs to actinoid series. Cf_251 has a half life of about 700 years. 
+  -- Nine isotopes are known. Cf_252 is an intense {neutron} source, which 
+  -- makes it an intense {neutron} source and gives it a use in {neutron} 
+  -- activation analysis and a possible use as a radiation source in medicine. 
+  -- First produced by Glenn T. Seaborg and associates in 1950.
+  fun Californium : Class ;
+  fun Californium_Class : SubClass Californium ElementalSubstance ;
+
+  -- Carbon is a member of group 14 of the periodic 
+  -- table. It has three allotropic forms of it, diamonds, graphite and 
+  -- fullerite. Carbon_14 is commonly used in radioactive dating. Carbon 
+  -- occurs in all organic life and is the basis of organic chemistry. Carbon 
+  -- has the interesting chemical property of being able to bond with itself, 
+  -- and a wide variety of other elements.
+  fun Carbon : Class ;
+  fun Carbon_Class : SubClass Carbon ElementalSubstance ;
+
+  -- Silvery metallic element, belongs to the 
+  -- lanthanoids. Four natural isotopes exist, and fifteen radioactive 
+  -- isotopes have been identified. Used in some rare_earth alloys. The 
+  -- oxidized form is used in the glass industry. Discovered by Martin .H. 
+  -- Klaproth in 1803.
+  fun Cerium : Class ;
+  fun Cerium_Class : SubClass Cerium ElementalSubstance ;
+
+  -- Halogen element. Poisonous greenish_yellow gas. 
+  -- Occurs widely in nature as sodium chloride in seawater. Reacts directly 
+  -- with many elements and compounds, strong oxidizing agent. Discovered by 
+  -- Karl Scheele in 1774. Humphrey David confirmed it as an element in 
+  -- 1810.
+  fun Chlorine : Class ;
+  fun Chlorine_Class : SubClass Chlorine ElementalSubstance ;
+
+  -- Hard silvery transition element. Used in 
+  -- decorative electroplating. Discovered in 1797 by Vauquelin.
+  fun Chromium : Class ;
+  fun Chromium_Class : SubClass Chromium ElementalSubstance ;
+
+  -- Light grey transition element. Some meteorites 
+  -- contain small amounts of metallic cobalt. Generally alloyed for use. 
+  -- Mammals require small amounts of cobalt salts. Cobalt_60, an artificially 
+  -- produced radioactive isotope of Cobalt is an important radioactive tracer 
+  -- and cancer_treatment agent. Discovered by G. Brandt in 1737.
+  fun Cobalt : Class ;
+  fun Cobalt_Class : SubClass Cobalt ElementalSubstance ;
+
+  -- Red_brown transition element. Known by the Romans 
+  -- as 'cuprum.' Extracted and used for thousands of years. Malleable, 
+  -- ductile and an excellent conductor of heat and electricity. When in moist 
+  -- conditions, a greenish layer forms on the outside.
+  fun Copper : Class ;
+  fun Copper_Class : SubClass Copper ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element. Belongs 
+  -- to actinoid series. Nine known isotopes, Cm_247 has a half_life of 
+  -- 1.64*10^7 years. First identified by Glenn T. Seaborg and associates in 
+  -- 1944, first produced by L.B. Werner and I. Perlman in 1947 by bombarding 
+  -- americium_241 with {neutron}s. Named for Marie Curie.
+  fun Curium : Class ;
+  fun Curium_Class : SubClass Curium ElementalSubstance ;
+
+  -- Metallic with a bright silvery_white lustre. 
+  -- Dysprosium belongs to the lanthanoids. It is relatively stable in air at 
+  -- room temperatures, it will however dissolve in mineral acids, evolving 
+  -- hydrogen. It is found in from rare_earth minerals. There are seven 
+  -- natural isotopes of dysprosium, and eight radioisotopes, Dy_154 being the 
+  -- most stable with a half_life of 3*10^6 years. Dysprosium is used as a 
+  -- neutron absorber in nuclear fission reactions, and in compact disks. It 
+  -- was discovered by Paul Emile Lecoq de Boisbaudran in 1886 in France. Its 
+  -- name comes from the Greek word dysprositos, which means hard to obtain.
+  fun Dysprosium : Class ;
+  fun Dysprosium_Class : SubClass Dysprosium ElementalSubstance ;
+
+  -- Appearance is unknown, however it is most 
+  -- probably metallic and silver or gray in color. Radioactive metallic 
+  -- transuranic element belonging to the actinoids. Es_254 has the longest 
+  -- half_life of the eleven known isotopes at 270 days. First identified by 
+  -- Albert Ghiorso and associates in the debris of the 1952 hydrogen bomb 
+  -- explosion. In 1961 the first microgram quantities of Es_232 were 
+  -- separated. While einsteinium never exists naturally, if a sufficient 
+  -- amount was assembled, it would pose a radiation hazard.
+  fun Einsteinium : Class ;
+  fun Einsteinium_Class : SubClass Einsteinium ElementalSubstance ;
+
+  -- Soft silvery metallic element which belongs to the 
+  -- lanthanoids. Six natural isotopes that are stable. Twelve artificial 
+  -- isotopes are known. Used in nuclear technology as a neutron absorber. It 
+  -- is being investigated for other possible uses. Discovered by Carl G. 
+  -- Mosander in 1843.
+  fun Erbium : Class ;
+  fun Erbium_Class : SubClass Erbium ElementalSubstance ;
+
+  -- Soft silvery metallic element belonging to the 
+  -- lanthanoids. Eu_151 and Eu_153 are the only two stable isotopes, both of 
+  -- which are {neutron} absorbers. Discovered in 1889 by Sir William 
+  -- Crookes.
+  fun Europium : Class ;
+  fun Europium_Class : SubClass Europium ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element, belongs 
+  -- to the actinoids. Ten known isotopes, most stable is Fm_257 with a 
+  -- half_life of 10 days. First identified by Albert Ghiorso and associates 
+  -- in the debris of the first hydrogen_bomb explosion in 1952.
+  fun Fermium : Class ;
+  fun Fermium_Class : SubClass Fermium ElementalSubstance ;
+
+  -- A poisonous pale yellow gaseous element belonging 
+  -- to group 17 of the periodic table (The halogens). It is the most 
+  -- chemically reactive and electronegative element. It is highly dangerous, 
+  -- causing severe chemical burns on contact with flesh. Fluorine was 
+  -- identified by Scheele in 1771 and first isolated by Moissan in 1886.
+  fun Fluorine : Class ;
+  fun Fluorine_Class : SubClass Fluorine ElementalSubstance ;
+
+  -- Radioactive element, belongs to group 1 of the 
+  -- periodic table. Found in uranium and thorium ores. The 22 known isotopes 
+  -- are all radioactive, with the most stable being Fr_223. Its existence was 
+  -- confirmed in 1939 by Marguerite Perey.
+  fun Francium : Class ;
+  fun Francium_Class : SubClass Francium ElementalSubstance ;
+
+  -- Soft silvery metallic element belonging to the 
+  -- lanthanoids. Seven natural, stable isotopes are known in addition to 
+  -- eleven artificial isotopes. Gd_155 and Gd_157 and the best neutron 
+  -- absorbers of all elements. Gadolinium compounds are used in electronics. 
+  -- Discovered by J.C.G Marignac in 1880.
+  fun Gadolinium : Class ;
+  fun Gadolinium_Class : SubClass Gadolinium ElementalSubstance ;
+
+  -- Soft silvery metallic element, belongs to group 13 
+  -- of the periodic table. The two stable isotopes are Ga_69 and Ga_71. 
+  -- Eight radioactive isotopes are known, all having short half_lives. 
+  -- Gallium Arsenide is used as a semiconductor. Corrodes most other metals 
+  -- by diffusing into their lattice. First identified by Francois Lecoq de 
+  -- Boisbaudran in 1875.
+  fun Gallium : Class ;
+  fun Gallium_Class : SubClass Gallium ElementalSubstance ;
+
+  -- Lustrous hard metalloid element, belongs to 
+  -- group 14 of the periodic table. Forms a large number of organometallic 
+  -- compounds. Predicted by Mendeleev in 1871, it was actually found in 1886 
+  -- by Winkler.
+  fun Germanium : Class ;
+  fun Germanium_Class : SubClass Germanium ElementalSubstance ;
+
+  -- Gold is gold colored. It is the most malleable and 
+  -- ductile metal known. There is only one stable isotope of gold, and five 
+  -- radioisotopes of gold, Au_195 being the most stable with a half_life of 
+  -- 186 days. Gold is used as a monetary standard, in jewelry, dentistry, 
+  -- electronics. Au_198 is used in treating cancer and some other medical 
+  -- conditions. Gold has been known to exist as far back as 2600 BC. Gold 
+  -- comes from the Anglo_Saxon word gold. Its symbol, Au, comes from the 
+  -- Latin word aurum, which means gold. Gold is not particularly toxic, 
+  -- however it is known to cause damage to the liver and kidneys in some.
+  fun Gold : Class ;
+  fun Gold_Class : SubClass Gold ElementalSubstance ;
+
+  -- Silvery lustrous metallic transition element. 
+  -- Used in tungsten alloys in filaments and electrodes, also acts as a 
+  -- neutron absorber. First reported by Urbain in 1911, existence was finally 
+  -- established in 1923 by D. Coster, G.C. de Hevesy in 1923.
+  fun Hafnium : Class ;
+  fun Hafnium_Class : SubClass Hafnium ElementalSubstance ;
+
+  -- Colourless, odourless gaseous nonmetallic element. 
+  -- Belongs to group 18 of the periodic table. Lowest boiling point of all 
+  -- elements and can only be solidified under pressure. Chemically inert, no 
+  -- known compounds. Discovered in the solar spectrum in 1868 by Lockyer.
+  fun Helium : Class ;
+  fun Helium_Class : SubClass Helium ElementalSubstance ;
+
+  -- Relatively soft and malleable silvery_white 
+  -- metallic element, which is stable in dry air at room temperature. It 
+  -- oxidizes in moist air and at high temperatures. It belongs to the 
+  -- lanthanoids. A rare_earth metal, it is found in the minerals monazite and 
+  -- gadolinite. It possesses unusual magnetic properties. One natural 
+  -- isotope, Ho_165 exists, six radioisotopes exist, the most stable being 
+  -- Ho_163 with a half_life of 4570 years. Holmium is used in some metal 
+  -- alloys, it is also said to stimulate the metabolism. Discovered by Per 
+  -- Theodor Cleve and J.L. Soret in Switzerland in 1879. The name homium 
+  -- comes from the Greek word Holmia which means Sweden. While all holmium 
+  -- compounds should be considered highly toxic, initial evidence seems to 
+  -- indicate that they do not pose much danger. The metal's dust however, is 
+  -- a fire hazard.
+  fun Holmium : Class ;
+  fun Holmium_Class : SubClass Holmium ElementalSubstance ;
+
+  -- Colourless, odourless gaseous chemical element. 
+  -- Lightest and most abundant element in the universe. Present in water and 
+  -- in all organic compounds. Chemically reacts with most elements. 
+  -- Discovered by Henry Cavendish in 1776.
+  fun Hydrogen : Class ;
+  fun Hydrogen_Class : SubClass Hydrogen ElementalSubstance ;
+
+  -- Soft silvery element belonging to group 13 of the 
+  -- periodic table. The most common natural isotope is In_115, which has a 
+  -- half_life of 6*10^4 years. Five other radioisotopes exist. Discovered in 
+  -- 1863 by Reich and Richter.
+  fun Indium : Class ;
+  fun Indium_Class : SubClass Indium ElementalSubstance ;
+
+  -- Dark violet nonmetallic element, belongs to group 
+  -- 17 of the periodic table. Insoluble in water. Required as a trace 
+  -- element for living organisms. One stable isotope, I_127 exists, in 
+  -- addition to fourteen radioactive isotopes. Chemically the least reactive 
+  -- of the halogens, and the most electropositive metallic halogen. 
+  -- Discovered in 1812 by Courtois.
+  fun Iodine : Class ;
+  fun Iodine_Class : SubClass Iodine ElementalSubstance ;
+
+  -- Very hard and brittle, silvery metallic transition 
+  -- element. It has a yellowish cast to it. Salts of iridium are highly 
+  -- colored. It is the most corrosion resistant metal known, not attacked by 
+  -- any acid, but is attacked by molten salts. There are two natural isotopes 
+  -- of iridium, and 4 radioisotopes, the most stable being Ir_192 with a 
+  -- half_life of 73.83 days. Ir_192 decays into {platinum}, while the other 
+  -- radioisotopes decay into {osmium}. Iridium is used in high temperature 
+  -- apparatus, electrical contacts, and as a hardening agent for platinum. 
+  -- Discovered in 1803 by Smithson Tennant in England. The name comes from 
+  -- the Greek word iris, which means rainbow. Iridium metal is generally 
+  -- non_toxic due to its relative unreactivity, but iridium compounds should 
+  -- be considered highly toxic.
+  fun Iridium : Class ;
+  fun Iridium_Class : SubClass Iridium ElementalSubstance ;
+
+  -- Silvery malleable and ductile metallic transition 
+  -- element. Has nine isotopes and is the fourth most abundant element in the 
+  -- earth's crust. Required by living organisms as a trace element (used in 
+  -- hemoglobin in humans.) Quite reactive, oxidizes in moist air, displaces 
+  -- hydrogen from dilute acids and combines with nonmetallic elements.
+  fun Iron : Class ;
+  fun Iron_Class : SubClass Iron ElementalSubstance ;
+
+  -- Colorless gaseous element, belongs to the noble 
+  -- gases. Occurs in the air, 0.0001 percent by volume. It can be extracted 
+  -- from liquid air by fractional distillation. Generally not isolated, but 
+  -- used with other inert gases in fluorescent lamps. Five natural isotopes, 
+  -- and five radioactive isotopes. Kr_85, the most stable radioactive 
+  -- isotope, has a half_life of 10.76 years and is produced in fission 
+  -- reactors. Practically inert, though known to form compounds with 
+  -- {fluorine}.
+  fun Krypton : Class ;
+  fun Krypton_Class : SubClass Krypton ElementalSubstance ;
+
+  -- (From the Greek word lanthanein, to line hidden) 
+  -- Silvery metallic element belonging to group 3 of the periodic table and 
+  -- oft considered to be one of the lanthanoids. Found in some rare_earth 
+  -- minerals. Twenty_five natural isotopes exist. La_139 which is stable, 
+  -- and La_138 which has a half_life of 10^10 to 10^15 years. The other 
+  -- twenty_three isotopes are radioactive. It resembles the lanthanoids 
+  -- chemically. Lanthanum has a low to moderate level of toxicity, and should 
+  -- be handled with care. Discovered in 1839 by C.G. Mosander.
+  fun Lanthanum : Class ;
+  fun Lanthanum_Class : SubClass Lanthanum ElementalSubstance ;
+
+  -- Appearance unknown, however it is most likely 
+  -- silvery_white or grey and metallic. Lawrencium is a synthetic rare_earth 
+  -- metal. There are eight known radioisotopes, the most stable being Lr_262 
+  -- with a half_life of 3.6 hours. Due to the short half_life of lawrencium, 
+  -- and its radioactivity, there are no known uses for it. Identified by 
+  -- Albert Ghiorso in 1961 at Berkeley. It was produced by bombarding 
+  -- californium with boron ions. The name is temporary {IUPAC} nomenclature, 
+  -- the origin of the name comes from Ernest O. Lawrence, the inventor of the 
+  -- cyclotron. If sufficient amounts of lawrencium were produced, it would 
+  -- pose a radiation hazard.
+  fun Lawrencium : Class ;
+  fun Lawrencium_Class : SubClass Lawrencium ElementalSubstance ;
+
+  -- Heavy dull grey ductile metallic element, belongs to 
+  -- group 14. Used in building construction, lead_place accumulators, bullets 
+  -- and shot, and is part of solder, pewter, bearing metals, type metals and 
+  -- fusible alloys.
+  fun Lead : Class ;
+  fun Lead_Class : SubClass Lead ElementalSubstance ;
+
+  -- Socket silvery metal. First member of group 1 of 
+  -- the periodic table. Lithium salts are used in psychomedicine.
+  fun Lithium : Class ;
+  fun Lithium_Class : SubClass Lithium ElementalSubstance ;
+
+  -- Silvery_white rare_earth metal which is 
+  -- relatively stable in air. It happens to be the most expensive rare_earth 
+  -- metal. Its found with almost all rare_earth metals, but is very difficult 
+  -- to separate from other elements. Least abundant of all natural elements. 
+  -- Used in metal alloys, and as a catalyst in various processes. There are 
+  -- two natural, stable isotopes, and seven radioisotopes, the most stable 
+  -- being Lu_174 with a half_life of 3.3 years. The separation of lutetium 
+  -- from {ytterbium} was described by Georges Urbain in 1907. It was 
+  -- discovered at approximately the same time by Carl Auer von Welsbach. The 
+  -- name comes from the Greek word lutetia which means Paris.
+  fun Lutetium : Class ;
+  fun Lutetium_Class : SubClass Lutetium ElementalSubstance ;
+
+  -- Silvery metallic element belonging to group 2 of 
+  -- the periodic table (alkaline_earth metals). It is essential for living 
+  -- organisms, and is used in a number of light alloys. Chemically very 
+  -- reactive, it forms a protective oxide coating when exposed to air and 
+  -- burns with an intense white flame. It also reacts with sulphur, nitrogen 
+  -- and the halogens. First isolated by Bussy in 1828.
+  fun Magnesium : Class ;
+  fun Magnesium_Class : SubClass Magnesium ElementalSubstance ;
+
+  -- Grey brittle metallic transition element. 
+  -- Rather electropositive, combines with some non_metals when heated. 
+  -- Discovered in 1774 by Scheele.
+  fun Manganese : Class ;
+  fun Manganese_Class : SubClass Manganese ElementalSubstance ;
+
+  -- Half_life of approximately 5ms. The creation 
+  -- of this element demonstrated that fusion techniques could indeed be used 
+  -- to make new, heavy nuclei. Made and identified by physicists of the Heavy 
+  -- Ion Research Laboratory, Darmstadt, West Germany in 1982. Named in honor 
+  -- of Lise Meitner the Austrian physicist.
+  fun Meitnerium : Class ;
+  fun Meitnerium_Class : SubClass Meitnerium ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element. 
+  -- Belongs to the actinoid series. Only known isotope, Md_256 has a 
+  -- half_life of 1.3 hours. First identified by Glenn T. Seaborg, Albert 
+  -- Ghiorso and associates in 1955. Alternative name {unnilunium} has been 
+  -- proposed. Named after the 'inventor' of the periodic table, Dmitri 
+  -- Mendeleev.
+  fun Mendelevium : Class ;
+  fun Mendelevium_Class : SubClass Mendelevium ElementalSubstance ;
+
+  -- Heavy silvery liquid metallic element, belongs to 
+  -- the zinc group. Used in thermometers, barometers and other scientific 
+  -- apparatus. Less reactive than zinc and cadmium, does not displace 
+  -- hydrogen from acids. Forms a number of complexes and organomercury 
+  -- compounds.
+  fun Mercury : Class ;
+  fun Mercury_Class : SubClass Mercury ElementalSubstance ;
+
+  -- Silvery_white, hard metallic transition 
+  -- element. It is chemically unreactive and is not affected by most acids. 
+  -- It oxidizes at high temperatures. There are seven natural isotopes, and 
+  -- four radioisotopes, Mo_93 being the most stable with a half_life of 3500 
+  -- years. Molybdenum is used in almost all high_strength steels, it has 
+  -- nuclear applications, and is a catalyst in petroleum refining. Discovered 
+  -- in 1778 by Carl Welhelm Scheele of Sweden. Impure metal was prepared in 
+  -- 1782 by Peter Jacob Hjelm. The name comes from the Greek word molybdos 
+  -- which means lead. Trace amounts of molybdenum are required for all known 
+  -- forms of life. All molybdenum compounds should be considered highly 
+  -- toxic, and will also cause severe birth defects.
+  fun Molybdenum : Class ;
+  fun Molybdenum_Class : SubClass Molybdenum ElementalSubstance ;
+
+  -- Soft bright silvery metallic element, belongs to 
+  -- the lanthanoids. Seven natural isotopes, Nd_144 being the only 
+  -- radioactive one with a half_life of 10^10 to 10^15 years. Six artificial 
+  -- radioisotopes have been produced. The metal is used in glass works to 
+  -- color class a shade of violet_purple and make it dichroic. One of the 
+  -- more reactive rare_earth metals, quickly reacts with air. Used in some 
+  -- rare_earth alloys. Neodymium is used to color the glass used in welder's 
+  -- glasses. Neodymium is also used in very powerful, permanent magnets 
+  -- (Nd2Fe14B). Discovered by Carl F. Auer von Welsbach in Austria in 1885 
+  -- by separating didymium into its elemental components {praseodymium} and 
+  -- neodymium. The name comes from the Greek words 'neos didymos' which means 
+  -- 'new twin'. Neodymium should be considered highly toxic, however evidence 
+  -- would seem to show that it acts as little more than a skin and eye 
+  -- irritant. The dust however, presents a fire and explosion hazard.
+  fun Neodymium : Class ;
+  fun Neodymium_Class : SubClass Neodymium ElementalSubstance ;
+
+  -- Colourless gaseous element of group 18 on the 
+  -- periodic table (noble gases). Neon occurs in the atmosphere, and 
+  -- comprises 0.0018 percent of the volume of the atmosphere. It has a 
+  -- distinct reddish glow when used in discharge tubes and neon based lamps. 
+  -- It forms almost no chemical compounds. Neon was discovered in 1898 by Sir 
+  -- William Ramsey and M.W. Travers.
+  fun Neon : Class ;
+  fun Neon_Class : SubClass Neon ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element, 
+  -- belongs to the actinoids. Np_237, the most stable isotope, has a 
+  -- half_life of 2.2*10^6 years and is a by product of nuclear reactors. The 
+  -- other known isotopes have mass numbers 229 through 236, and 238 through 
+  -- 241. Np_236 has a half_life of 5*10^3 years. First produced by Edwin M. 
+  -- McMillan and P.H. Abelson in 1940.
+  fun Neptunium : Class ;
+  fun Neptunium_Class : SubClass Neptunium ElementalSubstance ;
+
+  -- Malleable ductile silvery metallic transition 
+  -- element. Discovered by A.F. Cronstedt in 1751.
+  fun Nickel : Class ;
+  fun Nickel_Class : SubClass Nickel ElementalSubstance ;
+
+  -- Soft, ductile grey_blue metallic transition 
+  -- element. Used in special steels and in welded joints to increase 
+  -- strength. Combines with halogens and oxidizes in air at 200 degrees 
+  -- celsius. Discovered by Charles Hatchett in 1801 and isolated by 
+  -- Blomstrand in 1864. Called {columbium} originally.
+  fun Niobium : Class ;
+  fun Niobium_Class : SubClass Niobium ElementalSubstance ;
+
+  -- Colourless, gaseous element which belongs to 
+  -- group 15 of the periodic table. Constitutes ~78 percent of the atmosphere 
+  -- and is an essential part of the ecosystem. Nitrogen for industrial 
+  -- purposes is acquired by the fractional distillation of liquid air. 
+  -- Chemically inactive, reactive generally only at high temperatures or in 
+  -- electrical discharges. It was discovered in 1772 by D. Rutherford.
+  fun Nitrogen : Class ;
+  fun Nitrogen_Class : SubClass Nitrogen ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element, belongs 
+  -- to the actinoids. Seven known isotopes exist, the most stable being 
+  -- No_254 with a half_life of 255 seconds. First identified with certainty 
+  -- by Albert Ghiorso and Glenn T. Seaborg in 1966. {Unnilbium} has been 
+  -- proposed as an alternative name.
+  fun Nobelium : Class ;
+  fun Nobelium_Class : SubClass Nobelium ElementalSubstance ;
+
+  -- Hard blue_white metallic transition element. Found 
+  -- with platinum and used in some alloys with platinum and iridium.
+  fun Osmium : Class ;
+  fun Osmium_Class : SubClass Osmium ElementalSubstance ;
+
+  -- A colourless, odourless gaseous element belonging 
+  -- to group 16 of the periodic table. It is the most abundant element 
+  -- present in the earth's crust. It also makes up 20.8 percent of the 
+  -- Earth's atmosphere. For industrial purposes, it is separated from liquid 
+  -- air by fractional distillation. It is used in high temperature welding, 
+  -- and in breathing. It commonly comes in the form of Oxygen, but is found 
+  -- as Ozone in the upper atmosphere. It was discovered by Priestley in 
+  -- 1774.
+  fun Oxygen : Class ;
+  fun Oxygen_Class : SubClass Oxygen ElementalSubstance ;
+
+  -- Soft white ductile transition element. Found 
+  -- with some copper and nickel ores. Does not react with oxygen at normal 
+  -- temperatures. Dissolves slowly in hydrochloric acid. Discovered in 1803 
+  -- by W.H. Wollaston.
+  fun Palladium : Class ;
+  fun Palladium_Class : SubClass Palladium ElementalSubstance ;
+
+  -- Non_metallic element belonging to group 15 of 
+  -- the periodic table. Has a multiple allotropic forms. Essential element 
+  -- for living organisms. It was discovered by Brandt in 1669.
+  fun Phosphorus : Class ;
+  fun Phosphorus_Class : SubClass Phosphorus ElementalSubstance ;
+
+  -- Attractive greyish_white metal. When pure, it is 
+  -- malleable and ductile. Does not oxidize in air, insoluble in hydrochloric 
+  -- and nitric acid. Corroded by halogens, cyandies, sulphur and alkalis. 
+  -- {Hydrogen} and {oxygen} react explosively in the presence of platinum. 
+  -- There are six stable isotopes and three radioisotopes, the most stable 
+  -- being Pt_193 with a half_life of 60 years. Platinum is used in jewelry, 
+  -- laboratory equipment, electrical contacts, dentistry, and anti_pollution 
+  -- devices in cars. PtCl2(NH3)2 is used to treat some forms of cancer. 
+  -- Platinum_{cobalt} alloys have magnetic properties. It is also used in the 
+  -- definition of the Standard Hydrogen Electrode. Discovered by Antonio de 
+  -- Ulloa in South America in 1735. The name comes from the Spanish word 
+  -- platina which means silver. Platinum metal is generally not a health 
+  -- concern due to its unreactivity, however platinum compounds should be 
+  -- considered highly toxic.
+  fun Platinum : Class ;
+  fun Platinum_Class : SubClass Platinum ElementalSubstance ;
+
+  -- Dense silvery radioactive metallic transuranic 
+  -- element, belongs to the actinoids. Pu_244 is the most stable isotope with 
+  -- a half_life of 7.6*10^7 years. Thirteen isotopes are known. Pu_239 is 
+  -- the most important, it undergoes nuclear fission with slow neutrons and is 
+  -- hence important to nuclear weapons and reactors. Plutonium production is 
+  -- monitored down to the gram to prevent military misuse. First produced by 
+  -- Gleen T. Seaborg, Edwin M. McMillan, J.W. Kennedy and A.C. Wahl in 
+  -- 1940.
+  fun Plutonium : Class ;
+  fun Plutonium_Class : SubClass Plutonium ElementalSubstance ;
+
+  -- Rare radioactive metallic element, belongs to 
+  -- group 16 of the periodic table. Over 30 known isotopes exist, the most of 
+  -- all elements. Po_209 has a half_life of 103 years. Possible uses in 
+  -- heating spacecraft. Discovered by Marie Curie in 1898 in a sample of 
+  -- pitchblende.
+  fun Polonium : Class ;
+  fun Polonium_Class : SubClass Polonium ElementalSubstance ;
+
+  -- Soft silvery metallic element belonging to group 
+  -- 1 of the periodic table (alkali metals). Occurs naturally in seawater and 
+  -- a many minerals. Highly reactive, chemically, it resembles sodium in its 
+  -- behavior and compounds. Discovered by Sir Humphry Davy in 1807.
+  fun Potassium : Class ;
+  fun Potassium_Class : SubClass Potassium ElementalSubstance ;
+
+  -- Soft silvery metallic element, belongs to the 
+  -- lanthanoids. Only natural isotope is Pr_141 which is not radioactive. 
+  -- Fourteen radioactive isotopes have been artificially produced. Used in 
+  -- rare_earth alloys. Discovered in 1885 by C.A. von Welsbach.
+  fun Praseodymium : Class ;
+  fun Praseodymium_Class : SubClass Praseodymium ElementalSubstance ;
+
+  -- Soft silvery metallic element, belongs to the 
+  -- lanthanoids. Pm_147, the only natural isotope, is radioactive and has a 
+  -- half_life of 252 years. Eighteen radioisotopes have been produced, but 
+  -- all have very short half_lives. Found only in nuclear decay waste. 
+  -- Pm_147 is of interest as a beta_decay source, however Pm_146 and Pm_148 
+  -- have to be removed from it first, as they generate gamma radiation. 
+  -- Discovered by J.A. Marinsky, L.E. Glendenin and C.D. Coryell in 
+  -- 1947.
+  fun Promethium : Class ;
+  fun Promethium_Class : SubClass Promethium ElementalSubstance ;
+
+  -- Radioactive metallic element, belongs to the 
+  -- actinoids. The most stable isotope, Pa_231 has a half_life of 2.43*10^4 
+  -- years. At least 10 other radioactive isotopes are known. No practical 
+  -- applications are known. Discovered in 1917 by Lise Meitner and Otto 
+  -- Hahn.
+  fun Protactinium : Class ;
+  fun Protactinium_Class : SubClass Protactinium ElementalSubstance ;
+
+  -- Radioactive metallic transuranic element, belongs 
+  -- to group 2 of the periodic table. Most stable isotope, Ra_226 has a 
+  -- half_life of 1602 years, which decays into radon. Isolated from 
+  -- pitchblende in 1898 Marie and Pierre Curie.
+  fun Radium : Class ;
+  fun Radium_Class : SubClass Radium ElementalSubstance ;
+
+  -- Colorless radioactive gaseous element, belongs to 
+  -- the noble gases. Of the twenty known isotopes, the most stable is Rn_222 
+  -- with a half_life of 3.8 days. Formed by the radioactive decay of 
+  -- {Radium}_226. Radon itself decays into {polonium}. Used in radiotherapy. 
+  -- As a noble gas, it is effectively inert, though radon fluoride has been 
+  -- synthesized. First isolated in 1908 by Ramsey and Gray.
+  fun Radon : Class ;
+  fun Radon_Class : SubClass Radon ElementalSubstance ;
+
+  -- Silvery_white metallic transition element. 
+  -- Obtained as a by_product of molybdenum refinement. Rhenium_molybdenum 
+  -- alloys are superconducting.
+  fun Rhenium : Class ;
+  fun Rhenium_Class : SubClass Rhenium ElementalSubstance ;
+
+  -- Silvery white metallic transition element. Found 
+  -- with platinum and used in some platinum alloys. Not attacked by acids, 
+  -- dissolves only in aqua regia. Discovered in 1803 by W.H. Wollaston.
+  fun Rhodium : Class ;
+  fun Rhodium_Class : SubClass Rhodium ElementalSubstance ;
+
+  -- Soft silvery metallic element, belongs to group 1 
+  -- of the periodic table. Rb_97, the naturally occurring isotope, is 
+  -- radioactive. It is highly reactive, with properties similar to other 
+  -- elements in group 1, like igniting spontaneously in air. Discovered 
+  -- spectroscopically in 1861 by W. Bunsen and G.R. Kirchoff.
+  fun Rubidium : Class ;
+  fun Rubidium_Class : SubClass Rubidium ElementalSubstance ;
+
+  -- Hard white metallic transition element. Found 
+  -- with platinum, used as a catalyst in some platinum alloys. Dissolves in 
+  -- fused alkalis, and is not attacked by acids. Reacts with halogens and 
+  -- oxygen at high temperatures. Isolated in 1844 by K.K. Klaus.
+  fun Ruthenium : Class ;
+  fun Ruthenium_Class : SubClass Ruthenium ElementalSubstance ;
+
+  -- Soft silvery metallic element, belongs to the 
+  -- lanthanoids. Seven natural isotopes, Sm_147 is the only radioisotope, and 
+  -- has a half_life of 2.5*10^11 years. Used for making special alloys needed 
+  -- in the production of nuclear reactors. Also used as a neutron absorber. 
+  -- Small quantities of samarium oxide is used in special optical glasses. 
+  -- The largest use of the element is its ferromagnetic alloy which produces 
+  -- permanent magnets that are five times stronger than magnets produced by 
+  -- any other material. Discovered by Francois Lecoq de Boisbaudran in 
+  -- 1879.
+  fun Samarium : Class ;
+  fun Samarium_Class : SubClass Samarium ElementalSubstance ;
+
+  -- Rare soft silvery metallic element belonging to 
+  -- group 3 of the periodic table. There are ten isotopes, nine of which are 
+  -- radioactive and have short half_lives. Predicted in 1869 by Mendeleev, 
+  -- isolated by Nilson in 1879.
+  fun Scandium : Class ;
+  fun Scandium_Class : SubClass Scandium ElementalSubstance ;
+
+  -- Metalloid element, belongs to group 16 of the 
+  -- periodic table. Multiple allotropic forms exist. Chemically resembles 
+  -- sulphur. Discovered in 1817 by Jons J. Berzelius.
+  fun Selenium : Class ;
+  fun Selenium_Class : SubClass Selenium ElementalSubstance ;
+
+  -- Metalloid element belonging to group 14 of the 
+  -- periodic table. It is the second most abundant element in the Earth's 
+  -- crust, making up 25.7 percent of it by weight. Chemically less reactive 
+  -- than carbon. First identified by Lavoisier in 1787 and first isolated in 
+  -- 1823 by Berzelius.
+  fun Silicon : Class ;
+  fun Silicon_Class : SubClass Silicon ElementalSubstance ;
+
+  -- White lustrous soft metallic transition element. 
+  -- Found in both its elemental form and in minerals. Used in jewellery, 
+  -- tableware and so on. Less reactive than silver, chemically.
+  fun Silver : Class ;
+  fun Silver_Class : SubClass Silver ElementalSubstance ;
+
+  -- Soft silvery reactive element belonging to group 1 
+  -- of the periodic table (alkali metals). It is highly reactive, oxidizing 
+  -- in air and reacting violently with water, forcing it to be kept under oil. 
+  -- It was first isolated by Humphrey Davy in 1807.
+  fun Sodium : Class ;
+  fun Sodium_Class : SubClass Sodium ElementalSubstance ;
+
+  -- Soft yellowish metallic element, belongs to 
+  -- group 2 of the periodic table. Highly reactive chemically. Sr_90 is 
+  -- present in radioactive fallout and has a half_life of 28 years. 
+  -- Discovered in 1798 by Klaproth and Hope, isolated in 1808 by Humphry 
+  -- Davy.
+  fun Strontium : Class ;
+  fun Strontium_Class : SubClass Strontium ElementalSubstance ;
+
+  -- Yellow, nonmetallic element belonging to group 16 
+  -- of the periodic table. It is an essential element in living organisms, 
+  -- needed in the amino acids cysteine and methionine, and hence in many 
+  -- proteins. Absorbed by plants from the soil as sulphate ion.
+  fun Sulphur : Class ;
+  fun Sulphur_Class : SubClass Sulphur ElementalSubstance ;
+
+  -- Heavy blue_grey metallic transition element. 
+  -- Ta_181 is a stable isotope, and Ta_180 is a radioactive isotope, with a 
+  -- half_life in excess of 10^7 years. Used in surgery as it is unreactive. 
+  -- Forms a passive oxide layer in air. Identified in 1802 by Ekeberg and 
+  -- isolated in 1820 by Jons J. Berzelius.
+  fun Tantalum : Class ;
+  fun Tantalum_Class : SubClass Tantalum ElementalSubstance ;
+
+  -- Radioactive metallic transition element. Can 
+  -- be detected in some stars and the fission products of uranium. First made 
+  -- by Perrier and Segre by bombarding molybdenum with deutrons, giving them 
+  -- Tc_97. Tc_99 is the most stable isotope with a half_life of 2.6*10^6 
+  -- years. Sixteen isotopes are known. Organic technetium compounds are used 
+  -- in bone imaging. Chemical properties are intermediate between rhenium and 
+  -- manganese.
+  fun Technetium : Class ;
+  fun Technetium_Class : SubClass Technetium ElementalSubstance ;
+
+  -- Silvery metalloid element of group 16. Eight 
+  -- natural isotopes, nine radioactive isotopes. Used in semiconductors and 
+  -- to a degree in some steels. Chemistry is similar to {sulphur}. 
+  -- Discovered in 1782 by Franz Miller.
+  fun Tellurium : Class ;
+  fun Tellurium_Class : SubClass Tellurium ElementalSubstance ;
+
+  -- Silvery metallic element belonging to the 
+  -- lanthanoids. Tb_159 is the only stable isotope, there are seventeen 
+  -- artificial isotopes. Discovered by G.G. Mosander in 1843.
+  fun Terbium : Class ;
+  fun Terbium_Class : SubClass Terbium ElementalSubstance ;
+
+  -- Pure, unreacted thallium appears silvery_white 
+  -- and exhibits a metallic lustre. Upon reacting with air, it begins to turn 
+  -- bluish_grey and looks like lead. It is very malleable, and can be cut 
+  -- with a knife. There are two stable isotopes, and four radioisotopes, 
+  -- Tl_204 being the most stable with a half_life of 3.78 years. Thallium 
+  -- sulphate was used as a rodenticide. Thallium sulphine's conductivity 
+  -- changes with exposure to infrared light, this gives it a use in infrared 
+  -- detectors. Discovered by Sir William Crookes via spectroscopy. Its name 
+  -- comes from the Greek word thallos, which means green twig. Thallium and 
+  -- its compounds are toxic and can cause cancer.
+  fun Thallium : Class ;
+  fun Thallium_Class : SubClass Thallium ElementalSubstance ;
+
+  -- Grey radioactive metallic element. Belongs to 
+  -- actinoids. Found in monazite sand in Brazil, India and the US. 
+  -- Thorium_232 has a half_life of 1.39x10^10 years. Can be used as a nuclear 
+  -- fuel for breeder reactors. Thorium_232 captures slow {neutron}s and 
+  -- breeds uranium_233. Discovered by Jons J. Berzelius in 1829.
+  fun Thorium : Class ;
+  fun Thorium_Class : SubClass Thorium ElementalSubstance ;
+
+  -- Soft grey metallic element that belongs to the 
+  -- lanthanoids. One natural isotope exists, Tm_169, and seventeen artificial 
+  -- isotopes have been produced. No known uses for the element. Discovered 
+  -- in 1879 by Per Theodor Cleve.
+  fun Thulium : Class ;
+  fun Thulium_Class : SubClass Thulium ElementalSubstance ;
+
+  -- Silvery malleable metallic element belonging to group 
+  -- 14 of the periodic table. Twenty_six isotopes are known, five of which 
+  -- are radioactive. Chemically reactive. Combines directly with chlorine 
+  -- and oxygen and displaces hydrogen from dilute acids.
+  fun Tin : Class ;
+  fun Tin_Class : SubClass Tin ElementalSubstance ;
+
+  -- White metallic transition element. Occurs in 
+  -- numerous minerals. Used in strong, light corrosion_resistant alloys. 
+  -- Forms a passive oxide coating when exposed to air. First discovered by 
+  -- Gregor in 1789.
+  fun Titanium : Class ;
+  fun Titanium_Class : SubClass Titanium ElementalSubstance ;
+
+  -- White or grey metallic transition element, 
+  -- formerly called {wolfram}. Forms a protective oxide in air and can be 
+  -- oxidized at high temperature. First isolated by Jose and Fausto de 
+  -- Elhuyer in 1783.
+  fun Tungsten : Class ;
+  fun Tungsten_Class : SubClass Tungsten ElementalSubstance ;
+
+  -- Half_life of approximately 10ms. Reported in 
+  -- 1994 by German researchers at Darmstadt, Germany.
+  fun Unnildecium : Class ;
+  fun Unnildecium_Class : SubClass Unnildecium ElementalSubstance ;
+
+  -- Half_life of 0.9 +/_ 0.2 s. Discovered by the 
+  -- Joint Institute for Nuclear Research at Dubna (U.S.S.R.) in June of 1974. 
+  -- Its existence was confirmed by the Lawrence Berkeley Laboratory and 
+  -- Livermore National Laboratory in September of 1974.
+  fun Unnilhexium : Class ;
+  fun Unnilhexium_Class : SubClass Unnilhexium ElementalSubstance ;
+
+  -- Radioactive transition metal.
+  fun Unniloctium : Class ;
+  fun Unniloctium_Class : SubClass Unniloctium ElementalSubstance ;
+
+  -- Radioactive transactinide element. Half_life 
+  -- of 1.6s. Discovered in 1970 by Berkeley researchers. So far, seven 
+  -- isotopes have been discovered.
+  fun Unnilpentium : Class ;
+  fun Unnilpentium_Class : SubClass Unnilpentium ElementalSubstance ;
+
+  -- Radioactive transactinide element. Expected 
+  -- to have similar chemical properties to those displayed by hafnium. Rf_260 
+  -- was discovered by the Joint Nuclear Research Institute at Dubna (U.S.S.R.) 
+  -- in 1964. Researchers at Berkeley discovered Unq_257 and Unq_258 in 
+  -- 1964.
+  fun Unnilquadium : Class ;
+  fun Unnilquadium_Class : SubClass Unnilquadium ElementalSubstance ;
+
+  -- Radioactive transition metal. Half_life of 
+  -- approximately 1/500 s. Discovered by the Joint Institute for Nuclear 
+  -- Research at Dubna (U.S.S.R.) in 1976. Confirmed by West German physicists 
+  -- at the Heavy Ion Research Laboratory at Darmstadt.
+  fun Unnilseptium : Class ;
+  fun Unnilseptium_Class : SubClass Unnilseptium ElementalSubstance ;
+
+  -- White radioactive metallic element belonging to 
+  -- the actinoids. Three natural isotopes, U_238, U_235 and U_234. 
+  -- Uranium_235 is used as the fuel for nuclear reactors and weapons. 
+  -- Discovered by Martin H. Klaproth in 1789.
+  fun Uranium : Class ;
+  fun Uranium_Class : SubClass Uranium ElementalSubstance ;
+
+  -- Soft and ductile, bright white metal. Good 
+  -- resistance to corrosion by alkalis, sulphuric and hydrochloric acid. It 
+  -- oxidizes readily about 933K. There are two naturally occurring isotopes 
+  -- of vanadium, and 5 radioisotopes, V_49 having the longest half_life at 337 
+  -- days. Vanadium has nuclear applications, the foil is used in cladding 
+  -- titanium to steel, and vanadium_gallium tape is used to produce a 
+  -- superconductive magnet. Originally discovered by Andres Manuel del Rio of 
+  -- Mexico City in 1801. His discovery went unheeded, however, and in 1820, 
+  -- Nils Gabriel Sefstron of Sweden rediscovered it. Metallic vanadium was 
+  -- isolated by Henry Enfield Roscoe in 1867. The name vanadium comes from 
+  -- {Vanadis}, a goddess of Scandinavian mythology. Silvery_white metallic 
+  -- transition element. Vanadium is essential to {ascidian}s. Rats and 
+  -- chickens are also known to require it. Metal powder is a fire hazard, and 
+  -- vanadium compounds should be considered highly toxic. May cause lung 
+  -- cancer if inhaled.
+  fun Vanadium : Class ;
+  fun Vanadium_Class : SubClass Vanadium ElementalSubstance ;
+
+  -- Colourless, odourless gas belonging to group 18 on 
+  -- the periodic table (the noble gases.) Nine natural isotopes and seven 
+  -- radioactive isotopes are known. Xenon was part of the first noble_gas 
+  -- compound synthesized. Several others involving Xenon have been found 
+  -- since then. Xenon was discovered by Ramsey and Travers in 1898.
+  fun Xenon : Class ;
+  fun Xenon_Class : SubClass Xenon ElementalSubstance ;
+
+  -- Silvery metallic element of the lanthanoids. 
+  -- Seven natural isotopes and ten artificial isotopes are known. Used in 
+  -- certain steels. Discovered by J.D.G. Marignac in 1878.
+  fun Ytterbium : Class ;
+  fun Ytterbium_Class : SubClass Ytterbium ElementalSubstance ;
+
+  -- Silvery_grey metallic element of group 3 on the 
+  -- periodic table. Found in uranium ores. The only natural isotope is Y_89, 
+  -- there are 14 other artificial isotopes. Chemically resembles the 
+  -- lanthanoids. Stable in the air below 400 degrees, celsius. Discovered in 
+  -- 1828 by Friedrich Wohler.
+  fun Yttrium : Class ;
+  fun Yttrium_Class : SubClass Yttrium ElementalSubstance ;
+
+  -- Blue_white metallic element. Occurs in multiple 
+  -- compounds naturally. Five stable isotopes are six radioactive isotopes 
+  -- have been found. Chemically a reactive metal, combines with oxygen and 
+  -- other non_metals, reacts with dilute acids to release hydrogen.
+  fun Zinc : Class ;
+  fun Zinc_Class : SubClass Zinc ElementalSubstance ;
+
+  -- Grey_white metallic transition element. Five 
+  -- natural isotopes and six radioactive isotopes are known. Used in nuclear 
+  -- reactors for a {neutron} absorber. Discovered in 1789 by Martin Klaproth, 
+  -- isolated in 1824 by Berzelius.
+  fun Zirconium : Class ;
+  fun Zirconium_Class : SubClass Zirconium ElementalSubstance ;
+
+}
diff --git a/examples/SUMO/ElementsEng.gf b/examples/SUMO/ElementsEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/ElementsEng.gf
@@ -0,0 +1,116 @@
+--# -path=.:englishExtended
+concrete ElementsEng of Elements = MergeEng ** open ParadigmsEng,NounEng  in {
+
+lin 
+  Hydrogen = UseN (mkN "Hydrogen") ;
+  Helium = UseN (mkN "Helium") ;
+  Lithium = UseN (mkN "Lithium") ;
+  Beryllium = UseN (mkN "Beryllium") ;
+  Boron = UseN (mkN "Boron") ;
+  Carbon = UseN (mkN "Carbon") ;
+  Nitrogen = UseN (mkN "Nitrogen") ;
+  Oxygen = UseN (mkN "Oxygen") ;
+  Fluorine = UseN (mkN "Fluorine") ;
+  Neon = UseN (mkN "Neon") ;
+  Sodium = UseN (mkN "Sodium") ;
+  Magnesium = UseN (mkN "Magnesium") ;
+  Aluminum = UseN (mkN "Aluminum") ;
+  Silicon = UseN (mkN "Silicon") ;
+  Phosphorus = UseN (mkN "Phosphorus") ;
+  Sulphur = UseN (mkN "Sulphur") ;
+  Chlorine = UseN (mkN "Chlorine") ;
+  Argon = UseN (mkN "Argon") ;
+  Potassium = UseN (mkN "Potassium") ;
+  Calcium = UseN (mkN "Calcium") ;
+  Scandium = UseN (mkN "Scandium") ;
+  Titanium = UseN (mkN "Titanium") ;
+  Vanadium = UseN (mkN "Vanadium") ;
+  Chromium = UseN (mkN "Chromium") ;
+  Manganese = UseN (mkN "Manganese") ;
+  Iron = UseN (mkN "Iron") ;
+  Cobalt = UseN (mkN "Cobalt") ;
+  Nickel = UseN (mkN "Nickel") ;
+  Copper = UseN (mkN "Copper") ;
+  Zinc = UseN (mkN "Zinc") ;
+  Gallium = UseN (mkN "Gallium") ;
+  Germanium = UseN (mkN "Germanium") ;
+  Arsenic = UseN (mkN "Arsenic") ;
+  Selenium = UseN (mkN "Selenium") ;
+  Bromine = UseN (mkN "Bromine") ;
+  Krypton = UseN (mkN "Krypton") ;
+  Rubidium = UseN (mkN "Rubidium") ;
+  Strontium = UseN (mkN "Strontium") ;
+  Yttrium = UseN (mkN "Yttrium") ;
+  Zirconium = UseN (mkN "Zirconium") ;
+  Niobium = UseN (mkN "Niobium") ;
+  Molybdenum = UseN (mkN "Molybdenum") ;
+  Technetium = UseN (mkN "Technetium") ;
+  Ruthenium = UseN (mkN "Ruthenium") ;
+  Rhodium = UseN (mkN "Rhodium") ;
+  Palladium = UseN (mkN "Palladium") ;
+  Silver = UseN (mkN "Silver") ;
+  Cadmium = UseN (mkN "Cadmium") ;
+  Indium = UseN (mkN "Indium") ;
+  Tin = UseN (mkN "Tin") ;
+  Antimony = UseN (mkN "Antimony") ;
+  Tellurium = UseN (mkN "Tellurium") ;
+  Iodine = UseN (mkN "Iodine") ;
+  Xenon = UseN (mkN "Xenon") ;
+  Caesium = UseN (mkN "Caesium") ;
+  Barium = UseN (mkN "Barium") ;
+  Lanthanum = UseN (mkN "Lanthanum") ;
+  Cerium = UseN (mkN "Cerium") ;
+  Praseodymium = UseN (mkN "Praseodymium") ;
+  Neodymium = UseN (mkN "Neodymium") ;
+  Promethium = UseN (mkN "Promethium") ;
+  Samarium = UseN (mkN "Samarium") ;
+  Europium = UseN (mkN "Europium") ;
+  Gadolinium = UseN (mkN "Gadolinium") ;
+  Terbium = UseN (mkN "Terbium") ;
+  Dysprosium = UseN (mkN "Dysprosium") ;
+  Holmium = UseN (mkN "Holmium") ;
+  Erbium = UseN (mkN "Erbium") ;
+  Thulium = UseN (mkN "Thulium") ;
+  Ytterbium = UseN (mkN "Ytterbium") ;
+  Lutetium = UseN (mkN "Lutetium") ;
+  Hafnium = UseN (mkN "Hafnium") ;
+  Tantalum = UseN (mkN "Tantalum") ;
+  Tungsten = UseN (mkN "Tungsten") ;
+  Rhenium = UseN (mkN "Rhenium") ;
+  Osmium = UseN (mkN "Osmium") ;
+  Iridium = UseN (mkN "Iridium") ;
+  Platinum = UseN (mkN "Platinum") ;
+  Gold = UseN (mkN "Gold") ;
+  Mercury = UseN (mkN "Mercury") ;
+  Thallium = UseN (mkN "Thallium") ;
+  Lead = UseN (mkN "Lead") ;
+  Bismuth = UseN (mkN "Bismuth") ;
+  Polonium = UseN (mkN "Polonium") ;
+  Astatine = UseN (mkN "Astatine") ;
+  Radon = UseN (mkN "Radon") ;
+  Francium = UseN (mkN "Francium") ;
+  Radium = UseN (mkN "Radium") ;
+  Actinium = UseN (mkN "Actinium") ;
+  Thorium = UseN (mkN "Thorium") ;
+  Protactinium = UseN (mkN "Protactinium") ;
+  Uranium = UseN (mkN "Uranium") ;
+  Neptunium = UseN (mkN "Neptunium") ;
+  Plutonium = UseN (mkN "Plutonium") ;
+  Americium = UseN (mkN "Americium") ;
+  Curium = UseN (mkN "Curium") ;
+  Berkelium = UseN (mkN "Berkelium") ;
+  Californium = UseN (mkN "Californium") ;
+  Einsteinium = UseN (mkN "Einsteinium") ;
+  Fermium = UseN (mkN "Fermium") ;
+  Mendelevium = UseN (mkN "Mendelevium") ;
+  Nobelium = UseN (mkN "Nobelium") ;
+  Lawrencium = UseN (mkN "Lawrencium") ;
+  Unnilquadium = UseN (mkN "Unnilquadium") ;
+  Unnilpentium = UseN (mkN "Unnilpentium") ;
+  Unnilhexium = UseN (mkN "Unnilhexium") ;
+  Unnilseptium = UseN (mkN "Unnilseptium") ;
+  Unniloctium = UseN (mkN "Unniloctium") ;
+  Meitnerium = UseN (mkN "Meitnerium") ;
+  Unnildecium = UseN (mkN "Unnildecium") ;
+
+}
diff --git a/examples/SUMO/Engineering.gf b/examples/SUMO/Engineering.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/Engineering.gf
@@ -0,0 +1,1007 @@
+abstract Engineering = MidLevelOntology ** {
+
+  --  A PureTwopole that accumulates across variable.
+  fun AcrossVariableAccumulator : Class ;
+  fun AcrossVariableAccumulator_Class : SubClass AcrossVariableAccumulator PureTwopole ;
+
+  -- A Source that models a generator of across variable.
+  fun AcrossVariableSource : Class ;
+  fun AcrossVariableSource_Class : SubClass AcrossVariableSource Source ;
+
+  -- algebraic equation or set of equations
+  fun AlgebraicAttribute : Ind EquationAttribute ;
+
+  -- An Equation that is not
+  -- a DifferentialEquation
+  fun AlgebraicEquation : Class ;
+  fun AlgebraicEquation_Class : SubClass AlgebraicEquation Equation ;
+
+  -- Set of both differential and algebraic equations
+  fun AlgebroDifferentialAttribute : Ind InternalAttribute ;
+
+  -- Electronic equipment that increases strength of
+  -- signals passing through it, it can be modeled using a controlled
+  -- source, or an operational amplifier.
+  fun Amplifier : Class ;
+  fun Amplifier_Class : SubClass Amplifier ElectricalCircuit ;
+
+  -- PhysicalDimension of angular velocity, [s^_1].
+  fun AngularVelocity : Ind PhysicalDimension ;
+
+  -- set of application domains (medicine, physics, etc)
+  fun ApplicationDomain : Class ;
+  fun ApplicationDomain_Class : SubClass ApplicationDomain InternalAttribute ;
+
+  -- article
+  fun ArticleCategory : Ind DocumentCategory ;
+
+  -- astronomy
+  fun AstronomyDomain : Class ;
+  fun AstronomyDomain_Class : SubClass AstronomyDomain PhysicsDomain ;
+
+  -- For given class and for given attribute, return
+  -- a subclass of the class of object having the attribute
+  fun AttrFn : Class -> El Attribute -> Class ;
+
+  -- autonomous
+  fun Autonomous : Class ;
+  fun Autonomous_Class : SubClass Autonomous InternalAttribute ;
+
+  -- With no backlash.
+  fun Backlashless : Class ;
+  fun Backlashless_Class : SubClass Backlashless InternalAttribute ;
+
+  -- the part of a transistor that separates the emitter 
+  -- from the collector
+  fun Base : Class ;
+  fun Base_Class : SubClass Base Terminal ;
+
+  -- Battery is a subclass of Device. Batteries are 
+  -- devices that use chemical means to store or produce electrical power.
+  fun Battery : Class ;
+  fun Battery_Class : SubClass Battery (both ElectricDevice DCPowerSource) ;
+
+  -- Bessel's equation
+  fun BesselsEquation : Class ;
+  fun BesselsEquation_Class : SubClass BesselsEquation (both NonlinearEquation OrdinaryDifferentialEquation) ;
+
+  -- Bipolar transistor
+  fun BjtTransistor : Class ;
+  fun BjtTransistor_Class : SubClass BjtTransistor Transistor ;
+
+  -- A SinglePhaseRectifier of
+  -- that exploits both polarities of the input power source.
+  fun BridgeSinglePhaseRectifier : Class ;
+  fun BridgeSinglePhaseRectifier_Class : SubClass BridgeSinglePhaseRectifier SinglePhaseRectifier ;
+
+  -- With no brushes (of electrical motors)
+  fun Brushless : Class ;
+  fun Brushless_Class : SubClass Brushless InternalAttribute ;
+
+  -- An ElectricalComponent characterized by its
+  -- capacitance.
+  fun Capacitor : Class ;
+  fun Capacitor_Class : SubClass Capacitor ElectricalComponent ;
+
+  -- An AcrossVariableAccumulator from electrical energy domain.
+  fun CapacitorElement : Class ;
+  fun CapacitorElement_Class : SubClass CapacitorElement ElectricDevice ;
+
+  -- 4_wheeled motor vehicle, usually propelled by
+  -- an internal combustion engine
+  fun Car : Class ;
+  fun Car_Class : SubClass Car Vehicle ;
+
+  -- circuit theory
+  fun CircuitTheoryDomain : Class ;
+  fun CircuitTheoryDomain_Class : SubClass CircuitTheoryDomain (both ElectricalEngineeringDomain PhysicsDomain) ;
+
+  -- the electrode in a transistor through which a 
+  -- primary flow of carriers leaves the inter_electrode region
+  fun Collector : Class ;
+  fun Collector_Class : SubClass Collector Terminal ;
+
+  -- The ability of material to stretch or bend.
+  fun Compliance : Ind PhysicalAttribute ;
+
+  -- A collection of bytes stored as an 
+  -- individual entity. All data on disk is stored as a file with an 
+  -- assigned file name that is unique within the folder (directory) 
+  -- it resides in. ComputerFile file systems contain only files and folders
+  fun ComputerFile : Class ;
+  fun ComputerFile_Class : SubClass ComputerFile ContentBearingObject ;
+
+  fun ComputerProgram_ITAgent : SubClass ComputerProgram ITAgent ;
+
+  -- the ability of a material to lead current
+  fun Conductivity : Ind PhysicalAttribute ;
+
+  -- A Substance that readily conducts
+  -- electricity.
+  fun ConductorSubstance : Class ;
+  fun ConductorSubstance_Class : SubClass ConductorSubstance Substance ;
+
+  -- A class of control design method
+  fun ControlDesignMethod : Class ;
+  fun ControlDesignMethod_Class : SubClass ControlDesignMethod Method ;
+
+  -- control
+  fun ControlDomain : Class ;
+  fun ControlDomain_Class : SubClass ControlDomain EngineeringDomain ;
+
+  -- a mechanism that controls the operation of some
+  -- device
+  fun Controller : Class ;
+  fun Controller_Class : SubClass Controller UnknownDomainDevice ;
+
+  -- PhysicalDimension of electrical current, [A].
+  fun Current : Ind PhysicalDimension ;
+
+  -- A direct_current PowerSource.
+  fun DCPowerSource : Class ;
+  fun DCPowerSource_Class : SubClass DCPowerSource PowerSource ;
+
+  -- A Dissipator from translatory energy domain.
+  fun DamperElement : Class ;
+  fun DamperElement_Class : SubClass DamperElement (both Dissipator TranslatoryTwopole) ;
+
+  -- A direct_current electrical motor.
+  fun DcMotor : Class ;
+  fun DcMotor_Class : SubClass DcMotor ElectricalMotor ;
+
+  -- differential equation or set of equations
+  fun DifferentialAttribute : Ind EquationAttribute ;
+
+  -- An Equation containing differentials
+  -- of a function
+  fun DifferentialEquation : Class ;
+  fun DifferentialEquation_Class : SubClass DifferentialEquation Equation ;
+
+  -- Dimensionless PhysicalDimension.
+  fun Dimensionless : Ind PhysicalDimension ;
+
+  -- A semiconductor device that consists of a p_n
+  -- junction, it is used e.g. in rectifiers or demodulators.
+  fun Diode : Class ;
+  fun Diode_Class : SubClass Diode SemiconductorComponent ;
+
+  -- Valve that controls the direction
+  -- of flow of a fluid
+  fun DirectionalControlValve : Class ;
+  fun DirectionalControlValve_Class : SubClass DirectionalControlValve Valve ;
+
+  -- A method of converting continuous problem
+  -- to a discrete one, loaded by some discretization error.
+  fun Discretization : Class ;
+  fun Discretization_Class : SubClass Discretization MathematicalMethod ;
+
+  -- A PureTwopole that models a dissipation of energy.
+  fun Dissipator : Class ;
+  fun Dissipator_Class : SubClass Dissipator PureTwopole ;
+
+  -- document category
+  fun DocumentCategory : Class ;
+  fun DocumentCategory_Class : SubClass DocumentCategory WebDocumentAttribute ;
+
+  -- A SinglePhaseRectifier of
+  -- that exploits both polarities of the input power source.
+  fun DoublerSinglePhaseRectifier : Class ;
+  fun DoublerSinglePhaseRectifier_Class : SubClass DoublerSinglePhaseRectifier SinglePhaseRectifier ;
+
+  -- Asserts that the constitutive relation of
+  -- a multipole does depend on time.
+  fun DynamicMultipole : Ind MultipoleAttribute ;
+
+  -- Electrical energetic interaction
+  fun Electrical : Ind PhysicalDomain ;
+
+  -- A complex ElectricDevice consisting
+  -- of several mutually interconnected electrical components.
+  fun ElectricalCircuit : Class ;
+  fun ElectricalCircuit_Class : SubClass ElectricalCircuit ElectricDevice ;
+
+  -- A discrete ElectricDevice for
+  -- general usage, such as resistors, capacitors, diodes, transistors etc.
+  fun ElectricalComponent : Class ;
+  fun ElectricalComponent_Class : SubClass ElectricalComponent ElectricDevice ;
+
+  -- An ElectricalComponent designed to
+  -- transmit electricity
+  fun ElectricalConductor : Class ;
+  fun ElectricalConductor_Class : SubClass ElectricalConductor ElectricalComponent ;
+
+  -- electrical drives (motors)
+  fun ElectricalDrivesDomain : Class ;
+  fun ElectricalDrivesDomain_Class : SubClass ElectricalDrivesDomain ElectroMechanicalDevicesDomain ;
+
+  -- domain involving electrical engineering
+  fun ElectricalEngineeringDomain : Class ;
+  fun ElectricalEngineeringDomain_Class : SubClass ElectricalEngineeringDomain EngineeringDomain ;
+
+  -- A Method used in electrical
+  -- engineering for designing and constructing electrical devices.
+  fun ElectricalEngineeringMethod : Class ;
+  fun ElectricalEngineeringMethod_Class : SubClass ElectricalEngineeringMethod Method ;
+
+  -- An electrical motor.
+  fun ElectricalMotor : Class ;
+  fun ElectricalMotor_Class : SubClass ElectricalMotor (both ElectricDevice Motor) ;
+
+  -- A MultipoleModel containing only
+  -- electrical multipoles.
+  fun ElectricalMultipoleModel : Class ;
+  fun ElectricalMultipoleModel_Class : SubClass ElectricalMultipoleModel MultipoleModel ;
+
+  -- A Process in which electrical
+  -- interactions take place
+  fun ElectricalProcess : Class ;
+  fun ElectricalProcess_Class : SubClass ElectricalProcess NaturalProcess ;
+
+  -- a resonance of electrical energy.
+  fun ElectricalResonance : Class ;
+  fun ElectricalResonance_Class : SubClass ElectricalResonance (both ElectricalProcess Resonance) ;
+
+  -- A PureTwopole from electrical energy domain.
+  fun ElectricalTwopole : Class ;
+  fun ElectricalTwopole_Class : SubClass ElectricalTwopole PureTwopole ;
+
+  -- electrical drives (motors)
+  fun ElectroMechanicalDevicesDomain : Class ;
+  fun ElectroMechanicalDevicesDomain_Class : SubClass ElectroMechanicalDevicesDomain (both ElectricalEngineeringDomain MechanicalEngineeringDomain) ;
+
+  -- electronic circuits _ electrical circuits 
+  -- containing complex semiconductor components
+  fun ElectronicsDomain : Class ;
+  fun ElectronicsDomain_Class : SubClass ElectronicsDomain ElectricalEngineeringDomain ;
+
+  -- the electrode in a transistor where electrons originate
+  fun Emitter : Class ;
+  fun Emitter_Class : SubClass Emitter Terminal ;
+
+  -- engineering (mechanical, electrical)
+  fun EngineeringDomain : Class ;
+  fun EngineeringDomain_Class : SubClass EngineeringDomain ScienceDomain ;
+
+  -- a process of designing, manufacturing and
+  -- operating of an engineering system involving all stages of the life cycle.
+  fun EngineersProcess : Class ;
+  fun EngineersProcess_Class : SubClass EngineersProcess EngineersSubprocess ;
+
+  -- a class of subprocesses that are needed to
+  -- design and operate an engineering system
+  fun EngineersSubprocess : Class ;
+  fun EngineersSubprocess_Class : SubClass EngineersSubprocess IntentionalProcess ;
+
+  -- a mathematical statement that two expressions are equal.
+  fun Equation : Class ;
+  fun Equation_Class : SubClass Equation Proposition ;
+
+  -- an attribute that applies to an equation
+  -- or to a set of equations
+  fun EquationAttribute : Class ;
+  fun EquationAttribute_Class : SubClass EquationAttribute InternalAttribute ;
+
+  -- Field_effect transistor.
+  fun FetTransistor : Class ;
+  fun FetTransistor_Class : SubClass FetTransistor Transistor ;
+
+  -- file system
+  fun FileSystem : Class ;
+  fun FileSystem_Class : SubClass FileSystem Group ;
+
+  -- A DifferentialEquation
+  -- where variables are differentiated only once.
+  fun FirstOrderDifferentialEquation : Class ;
+  fun FirstOrderDifferentialEquation_Class : SubClass FirstOrderDifferentialEquation DifferentialEquation ;
+
+  -- A FluidPowerDevice designed to transform
+  -- fluid_power energy into mechanical translatory energy.
+  fun FluidCylinder : Class ;
+  fun FluidCylinder_Class : SubClass FluidCylinder (both FluidPowerDevice MechanicalDevice) ;
+
+  -- Fluid power energetic interaction
+  fun FluidPower : Ind PhysicalDomain ;
+
+  -- An EngineeringComponent in function of
+  -- which play role fluid_power energetical interactions.
+  fun FluidPowerDevice : Class ;
+  fun FluidPowerDevice_Class : SubClass FluidPowerDevice EngineeringComponent ;
+
+  -- fluid power (hydraulic) systems
+  fun FluidPowerDomain : Class ;
+  fun FluidPowerDomain_Class : SubClass FluidPowerDomain MechanicalEngineeringDomain ;
+
+  -- PhysicalDimension of force, [N].
+  fun Force : Ind PhysicalDimension ;
+
+  -- Computing a Fourier series for given
+  -- periodic function
+  fun FourierAnalysis : Class ;
+  fun FourierAnalysis_Class : SubClass FourierAnalysis MathematicalMethod ;
+
+  -- Reconstruction of a periodic function
+  -- from its Fourier series representation.
+  fun FourierSynthesis : Class ;
+  fun FourierSynthesis_Class : SubClass FourierSynthesis MathematicalMethod ;
+
+  -- A Multipole with exactly four poles.
+  fun Fourpole : Class ;
+  fun Fourpole_Class : SubClass Fourpole Multipole ;
+
+  -- Alters the frequency spectrum of signals
+  -- passing through it
+  fun FrequencyFilter : Class ;
+  fun FrequencyFilter_Class : SubClass FrequencyFilter ElectricalCircuit ;
+
+  -- A MechanicalProcess in which mechanical
+  -- energy is converted into a heat
+  fun Friction : Class ;
+  fun Friction_Class : SubClass Friction MechanicalProcess ;
+
+  -- a toothed wheel that engages another toothed
+  -- mechanism in order to change the speed or direction of transmitted motion.
+  fun Gear : Class ;
+  fun Gear_Class : SubClass Gear MechanicalDevice ;
+
+  -- a pair of gears that are used to change speed or
+  -- direction of an angular motion, ideal gear train can be modeled using
+  -- a transformer.
+  fun GearTrain : Class ;
+  fun GearTrain_Class : SubClass GearTrain MechanicalDevice ;
+
+  -- A device composed of several gear_trains used
+  -- to change speed and torque of transmitted motion.
+  fun Gearbox : Class ;
+  fun Gearbox_Class : SubClass Gearbox MechanicalDevice ;
+
+  -- A Transducer for which the ratio of
+  -- across variable on one side and through variable on the
+  -- other side is equal to the ratio of the remaining two variables.
+  fun Gyrator : Class ;
+  fun Gyrator_Class : SubClass Gyrator Transducer ;
+
+  -- A SinglePhaseRectifier of
+  -- that exploits only one polarity of the input power source.
+  fun HalfWaveSinglePhaseRectifier : Class ;
+  fun HalfWaveSinglePhaseRectifier_Class : SubClass HalfWaveSinglePhaseRectifier SinglePhaseRectifier ;
+
+  -- A DifferentialEquation
+  -- where variables are differentiated more than once.
+  fun HigherOrderDifferentialEquation : Class ;
+  fun HigherOrderDifferentialEquation_Class : SubClass HigherOrderDifferentialEquation DifferentialEquation ;
+
+  fun Human_ITAgent : SubClass Human ITAgent ;
+
+  -- agent capable of performing ITProcess
+  fun ITAgent : Class ;
+  fun ITAgent_Class : SubClass ITAgent Agent ;
+
+  -- A process performed on a computer by a human
+  -- operator.
+  fun ITProcess : Class ;
+  fun ITProcess_Class : SubClass ITProcess IntentionalProcess ;
+
+  -- A Fourpole modeling an
+  -- OperationalAmplifier with ideal properties.
+  fun IdealOperationalAmplifier : Class ;
+  fun IdealOperationalAmplifier_Class : SubClass IdealOperationalAmplifier Fourpole ;
+
+  -- A PureTwopole that models an ideal switch.
+  fun IdealSwitch : Class ;
+  fun IdealSwitch_Class : SubClass IdealSwitch PureTwopole ;
+
+  -- A PureTwopole that is linear.
+  fun IdealTwopole : Class ;
+  fun IdealTwopole_Class : SubClass IdealTwopole PureTwopole ;
+
+  -- Asserts that a constitutive relation of a multipole 
+  -- does not refer to other variables than terminal or inner.
+  fun IndependentMultipole : Ind MultipoleAttribute ;
+
+  -- A property of an electric circuit by which an
+  -- electromotive force is induced in it by a variation of current.
+  fun Inductance : Class ; --  subattribute PhysicalAttribute
+
+  -- An electrical motor powered by a three_phase power suply.
+  fun InductionMotor : Class ;
+  fun InductionMotor_Class : SubClass InductionMotor ElectricalMotor ;
+
+  -- An ElectricalComponent that introduces inductance into a circuit.
+  fun Inductor : Class ;
+  fun Inductor_Class : SubClass Inductor ElectricalComponent ;
+
+  -- A ThroughVariableAccumulator from electrical energy domain.
+  fun InductorElement : Class ;
+  fun InductorElement_Class : SubClass InductorElement ElectricDevice ;
+
+  -- An AcrossVariableAccumulator from translatory energy domain.
+  fun Inertor : Class ;
+  fun Inertor_Class : SubClass Inertor (both AcrossVariableAccumulator TranslatoryTwopole) ;
+
+  -- The process of deploying an application
+  -- on a computer.
+  fun Installation : Class ;
+  fun Installation_Class : SubClass Installation ITProcess ;
+
+  -- a Substance such as glass or
+  -- porcelain with negligible electrical conductivity.
+  fun InsulatorSubstance : Class ;
+  fun InsulatorSubstance_Class : SubClass InsulatorSubstance Substance ;
+
+  -- An Amplifier that changes the polarity of the input signal.
+  fun InvertingAmplifier : Class ;
+  fun InvertingAmplifier_Class : SubClass InvertingAmplifier Amplifier ;
+
+  -- Junction field_effect transistor.
+  fun JfetTransistor : Class ;
+  fun JfetTransistor_Class : SubClass JfetTransistor FetTransistor ;
+
+  -- light emitted at a p_n junction is proportional 
+  -- to the bias current, color depends on the material used
+  fun LED : Class ;
+  fun LED_Class : SubClass LED Diode ;
+
+  -- PhysicalDimension of length, [m].
+  fun Length : Ind PhysicalDimension ;
+
+  -- adjective
+  fun LexAdjective : Ind LexiconCategory ;
+
+  -- adverb
+  fun LexAdverb : Ind LexiconCategory ;
+
+  -- noun
+  fun LexNoun : Ind LexiconCategory ;
+
+  -- verb
+  fun LexVerb : Ind LexiconCategory ;
+
+  -- WordNet category: noun, verb, adjective or adverb
+  fun LexiconCategory : Class ;
+  fun LexiconCategory_Class : SubClass LexiconCategory InternalAttribute ;
+
+  -- library model
+  fun LibraryModelCategory : Ind DocumentCategory ;
+
+  -- A polynomial Equation of the first degree.
+  fun LinearEquation : Class ;
+  fun LinearEquation_Class : SubClass LinearEquation Equation ;
+
+  -- Asserts that the constitutive relation of
+  -- a multipole is linear.
+  fun LinearMultipole : Ind MultipoleAttribute ;
+
+  -- A Method that involves using mathematical aparatus.
+  fun MathematicalMethod : Class ;
+  fun MathematicalMethod_Class : SubClass MathematicalMethod Method ;
+
+  -- A model that uses the mathematical aparatus
+  fun MathematicalModel : Class ;
+  fun MathematicalModel_Class : SubClass MathematicalModel Model ;
+
+  -- A model of a Pendulum consisting
+  -- of a mass hanged on a stiff string.
+  fun MathematicalPendulum : Class ;
+  fun MathematicalPendulum_Class : SubClass MathematicalPendulum MathematicalModel ;
+
+  -- mathematics
+  fun MathematicsDomain : Class ;
+  fun MathematicsDomain_Class : SubClass MathematicsDomain NaturalSciencesDomain ;
+
+  -- An EngineeringComponent in function of
+  -- which play role mechanical energetical interactions.
+  fun MechanicalDevice : Class ;
+  fun MechanicalDevice_Class : SubClass MechanicalDevice EngineeringComponent ;
+
+  -- domain involving mechanical engineering
+  fun MechanicalEngineeringDomain : Class ;
+  fun MechanicalEngineeringDomain_Class : SubClass MechanicalEngineeringDomain EngineeringDomain ;
+
+  -- A Process in which mechanical interactions take place
+  fun MechanicalProcess : Class ;
+  fun MechanicalProcess_Class : SubClass MechanicalProcess NaturalProcess ;
+
+  -- a resonance of mechanical energy.
+  fun MechanicalResonance : Class ;
+  fun MechanicalResonance_Class : SubClass MechanicalResonance (both MechanicalProcess Resonance) ;
+
+  -- basic (theoretic) mechanics
+  fun MechanicsDomain : Class ;
+  fun MechanicsDomain_Class : SubClass MechanicsDomain PhysicsDomain ;
+
+  -- a way of doing something, esp. a systematic one;
+  -- implies an orderly logical arrangement (usually in steps).
+  fun Method : Class ;
+  fun Method_Class : SubClass Method Procedure ;
+
+  -- An abstract object that models certain aspect of a
+  -- physical object, is subject to abstraction and idealization.
+  fun Model : Class ;
+  fun Model_Class : SubClass Model Abstract ;
+
+  -- A creative process of creating a model.
+  fun Modeling : Class ;
+  fun Modeling_Class : SubClass Modeling IntentionalProcess ;
+
+  -- Metal_oxyde semiconductor field_effect
+  -- transistor.
+  fun MosfetTransistor : Class ;
+  fun MosfetTransistor_Class : SubClass MosfetTransistor FetTransistor ;
+
+  -- An actuator intended to deliver mechanical power
+  fun Motor : Class ;
+  fun Motor_Class : SubClass Motor MechanicalDevice ;
+
+  -- Basic element of a multipole diagram, a
+  -- multipole is a model of a component of a dynamic system, it can model a
+  -- real separable component, such as a motor of a vehicle, or just an
+  -- attribute of the system, such as inertia or friction, multipole interacts
+  -- with other multipoles through its poles. Multipole Each multipole must have at least one section.
+  fun Multipole : Class ;
+  fun Multipole_Class : SubClass Multipole Model ;
+
+  -- a set of tags that can be associated with multipoles
+  fun MultipoleAttribute : Class ;
+  fun MultipoleAttribute_Class : SubClass MultipoleAttribute InternalAttribute ;
+
+  -- Graphical representation of a MultipoleModel.
+  fun MultipoleDiagram : Class ;
+  fun MultipoleDiagram_Class : SubClass MultipoleDiagram ContentBearingObject ;
+
+  -- Model of a physical system consisting of
+  -- mutually interconnected multipoles.
+  fun MultipoleModel : Class ;
+  fun MultipoleModel_Class : SubClass MultipoleModel Model ;
+
+  -- modeling of a dynamic system by means of
+  -- its representation by a multipole diagram.
+  fun MultipoleModeling : Class ;
+  fun MultipoleModeling_Class : SubClass MultipoleModeling Modeling ;
+
+  -- A part of multipole pole that models
+  -- a single energetical interaction. If a pole belongs to a multipole, it also belongs to
+  -- one of its sections.
+  fun MultipolePole : Class ;
+  fun MultipolePole_Class : SubClass MultipolePole Model ;
+
+  -- MultipoleSection that contains exactly two
+  -- poles. MultipolePort Ports do not have three distinct poles.
+  fun MultipolePort : Class ;
+  fun MultipolePort_Class : SubClass MultipolePort MultipoleSection ;
+
+  -- One of the postulates of the multipole modeling theory.
+  fun MultipolePostulate : Class ;
+
+  -- a multipole variable that have physical
+  -- dimension and meaning.
+  fun MultipoleQuantity : Class ;
+  fun MultipoleQuantity_Class : SubClass MultipoleQuantity Quantity ;
+
+  -- A set of poles that is subject to
+  -- the postulate of continuity. A multipole may consist of one or
+  -- more sections. Sections of a single multipole do not overlap
+  -- and cover all its poles. MultipoleSection Each section must have at least two distinct poles.
+  fun MultipoleSection : Class ;
+  fun MultipoleSection_Class : SubClass MultipoleSection Model ;
+
+  -- a variable that describes energetical
+  -- interactions between multipoles.
+  fun MultipoleVariable : Class ;
+  fun MultipoleVariable_Class : SubClass MultipoleVariable Number ;
+
+  -- Property whereby an electromotive force is
+  -- induced in a circuit by variation of current in a neighboring circuit.
+  fun MutualInductance : Class ;
+  fun MutualInductance_Class : SubClass MutualInductance Inductance ;
+
+  -- natural sciences (mathematics, physics)
+  fun NaturalSciencesDomain : Class ;
+  fun NaturalSciencesDomain_Class : SubClass NaturalSciencesDomain ScienceDomain ;
+
+  -- A body remains at rest or in motion with
+  -- a constant velocity unless acted upon by an external force
+  fun NewtonsFirstLaw : Class ;
+  fun NewtonsFirstLaw_Class : SubClass NewtonsFirstLaw NewtonsLaw ;
+
+  -- One of three basic laws of classical mechanics.
+  fun NewtonsLaw : Class ;
+  fun NewtonsLaw_Class : SubClass NewtonsLaw ScientificLaw ;
+
+  -- The rate of change of momentum is
+  -- proportional to the imposed force and goes in the direction of
+  -- the force
+  fun NewtonsSecondLaw : Class ;
+  fun NewtonsSecondLaw_Class : SubClass NewtonsSecondLaw NewtonsLaw ;
+
+  -- Action and reaction are equal and opposite.
+  fun NewtonsThirdLaw : Class ;
+  fun NewtonsThirdLaw_Class : SubClass NewtonsThirdLaw NewtonsLaw ;
+
+  -- An Amplifier that does not change the polarity 
+  -- of the input signal.
+  fun NoninvertingAmplifier : Class ;
+  fun NoninvertingAmplifier_Class : SubClass NoninvertingAmplifier Amplifier ;
+
+  -- The description of the entity (e.g. a Model)
+  -- involves nonlinear functions.
+  fun Nonlinear : Class ;
+  fun Nonlinear_Class : SubClass Nonlinear InternalAttribute ;
+
+  -- An ElectricalMultipoleModel containing
+  -- nonlinear multipoles.
+  fun NonlinearCircuit : Class ;
+  fun NonlinearCircuit_Class : SubClass NonlinearCircuit ElectricalMultipoleModel ;
+
+  -- An Equation that is not a LinearEquation.
+  fun NonlinearEquation : Class ;
+  fun NonlinearEquation_Class : SubClass NonlinearEquation Equation ;
+
+  -- A BjtTransistor with N_P_N junctions.
+  fun NpnTransistor : Class ;
+  fun NpnTransistor_Class : SubClass NpnTransistor BjtTransistor ;
+
+  -- A complex semiconductor device with
+  -- behaviour similar to the IdealOperationalAmplifier.
+  fun OperationalAmplifier : Class ;
+  fun OperationalAmplifier_Class : SubClass OperationalAmplifier ElectricalCircuit ;
+
+  -- A DifferentialEquation
+  -- that is not a PartialDifferentialEquation.
+  fun OrdinaryDifferentialEquation : Class ;
+  fun OrdinaryDifferentialEquation_Class : SubClass OrdinaryDifferentialEquation DifferentialEquation ;
+
+  -- Resonance taking place in a series RLC
+  -- circuit, i.e. in a circuit where its elements are connected in_series.
+  fun ParallelResonance : Class ;
+  fun ParallelResonance_Class : SubClass ParallelResonance ElectricalResonance ;
+
+  -- A DifferentialEquation
+  -- involving a functions of more than one variable.
+  fun PartialDifferentialEquation : Class ;
+  fun PartialDifferentialEquation_Class : SubClass PartialDifferentialEquation DifferentialEquation ;
+
+  -- A MechanicalDevice of an object mounted so that
+  -- it swings freely under the influence of gravity.
+  fun Pendulum : Class ;
+  fun Pendulum_Class : SubClass Pendulum MechanicalDevice ;
+
+  -- A DC motor in which the auxiliary
+  -- magnetic field is provided by a permanent magnet.
+  fun PermanentMagnetDcMotor : Class ;
+  fun PermanentMagnetDcMotor_Class : SubClass PermanentMagnetDcMotor DcMotor ;
+
+  -- A physical dimension such as
+  -- length, mass, force etc.
+  fun PhysicalDimension : Class ;
+  fun PhysicalDimension_Class : SubClass PhysicalDimension Quantity ;
+
+  -- An attribute of a multipole pole describing
+  -- the kind of physical interaction the pole models.
+  fun PhysicalDomain : Class ;
+  fun PhysicalDomain_Class : SubClass PhysicalDomain InternalAttribute ;
+
+  -- physics
+  fun PhysicsDomain : Class ;
+  fun PhysicsDomain_Class : SubClass PhysicsDomain NaturalSciencesDomain ;
+
+  -- A BjtTransistor with P_N_P junctions.
+  fun PnpTransistor : Class ;
+  fun PnpTransistor_Class : SubClass PnpTransistor BjtTransistor ;
+
+  -- The sum of through variables of
+  -- poles of multipole section is equal to zero.
+  fun PostulateOfContinuity : Class ;
+  fun PostulateOfContinuity_Class : SubClass PostulateOfContinuity MultipolePostulate ;
+
+  -- PhysicalDimension of power, [W].
+  fun Power : Ind PhysicalDimension ;
+
+  -- power electronic circuits (power supplies etc.)
+  fun PowerElectronicsDomain : Class ;
+  fun PowerElectronicsDomain_Class : SubClass PowerElectronicsDomain ElectronicsDomain ;
+
+  -- PhysicalDimension of pressure, [Pa],[N.m^_2].
+  fun Pressure : Ind PhysicalDimension ;
+
+  -- valve that controls the pressure in a fluid
+  fun PressureControlValve : Class ;
+  fun PressureControlValve_Class : SubClass PressureControlValve Valve ;
+
+  -- A Twopole that models single physical
+  -- phenomenon, its constitutive relation has special structure.
+  fun PureTwopole : Class ;
+  fun PureTwopole_Class : SubClass PureTwopole Twopole ;
+
+  -- Pulse_width modulation technique
+  fun Pwm : Class ;
+  fun Pwm_Class : SubClass Pwm ElectricalEngineeringMethod ;
+
+  -- An ElectricalMultipoleModel containing
+  -- a ResistorElement and a CapacitorElement.
+  fun RCCircuit : Class ;
+  fun RCCircuit_Class : SubClass RCCircuit ElectricalMultipoleModel ;
+
+  -- An ElectricalMultipoleModel containing
+  -- a ResistorElement, an InductorElement and a CapacitorElement.
+  fun RLCCircuit : Class ;
+  fun RLCCircuit_Class : SubClass RLCCircuit ElectricalMultipoleModel ;
+
+  -- An ElectricalMultipoleModel containing
+  -- a ResistorElement and an InductorElement.
+  fun RLCircuit : Class ;
+  fun RLCircuit_Class : SubClass RLCircuit ElectricalMultipoleModel ;
+
+  -- electrical device that transforms alternating
+  -- into direct current.
+  fun Rectifier : Class ;
+  fun Rectifier_Class : SubClass Rectifier ElectricalCircuit ;
+
+  -- an electro_mechanical device used as a controlled switch
+  fun Relay : Class ;
+  fun Relay_Class : SubClass Relay (both ElectricalComponent MechanicalDevice) ;
+
+  -- relays
+  fun RelaysDomain : Class ;
+  fun RelaysDomain_Class : SubClass RelaysDomain ElectroMechanicalDevicesDomain ;
+
+  -- Most common type of a presure control valve;
+  -- it consists of a piston that is retained on its seat by a spring
+  fun ReliefValve : Class ;
+  fun ReliefValve_Class : SubClass ReliefValve PressureControlValve ;
+
+  -- A material's opposition to the flow of
+  -- electric current.
+  fun Resistivity : Ind PhysicalAttribute ;
+
+  -- An ElectricalComponent that resists the flow of
+  -- electrical current. A Dissipator from electrical energy domain.
+  fun ResistorElement : Class ;
+  fun ResistorElement_Class : SubClass ResistorElement (both ElectricDevice ElectricalComponent) ;
+
+  -- a vibration of large amplitude produced by
+  -- a relatively small vibration near the same frequency of vibration
+  -- as the natural frequency of the resonating system.
+  fun Resonance : Class ;
+  fun Resonance_Class : SubClass Resonance NaturalProcess ;
+
+  -- Root_locus control design method
+  fun RootLocus : Class ;
+  fun RootLocus_Class : SubClass RootLocus ControlDesignMethod ;
+
+  -- Mechanic rotary energetic interaction
+  fun Rotary : Ind PhysicalDomain ;
+
+  -- The Rotating component of a motor, generator or similar 
+  -- Device. Rotor The rotating armature of a motor or generator.
+  fun Rotor : Class ;
+  fun Rotor_Class : SubClass Rotor (both EngineeringComponent (both ElectricDevice MechanicalDevice)) ;
+
+  -- science (natural sciences, engineering, medicine...)
+  fun ScienceDomain : Class ;
+  fun ScienceDomain_Class : SubClass ScienceDomain ApplicationDomain ;
+
+  -- A generalization based on recurring facts or events 
+  -- (in science or mathematics etc)
+  fun ScientificLaw : Class ;
+  fun ScientificLaw_Class : SubClass ScientificLaw Proposition ;
+
+  -- An electrical device that exploits
+  -- properties of semiconductors.
+  fun SemiconductorComponent : Class ;
+  fun SemiconductorComponent_Class : SubClass SemiconductorComponent ElectricalComponent ;
+
+  -- A DC motor in which the auxiliary
+  -- magnetic field is provided an active circuit.
+  fun SeparatelyExcitedDcMotor : Class ;
+  fun SeparatelyExcitedDcMotor_Class : SubClass SeparatelyExcitedDcMotor DcMotor ;
+
+  -- Resonance taking place in a parallel RLC
+  -- circuit, i.e. in a circuit where its elements are connected in_parallel.
+  fun SeriesResonance : Class ;
+  fun SeriesResonance_Class : SubClass SeriesResonance ElectricalResonance ;
+
+  -- A Set of equations
+  fun SetOfEquations : Class ;
+  fun SetOfEquations_Class : SubClass SetOfEquations Set ;
+
+  -- A revolving rod that transmits power or motion.
+  fun Shaft : Class ;
+  fun Shaft_Class : SubClass Shaft MechanicalDevice ;
+
+  -- A PowerSource of single phase
+  -- alternating current.
+  fun SinglePhasePowerSource : Class ;
+  fun SinglePhasePowerSource_Class : SubClass SinglePhasePowerSource PowerSource ;
+
+  -- A Rectifier of single phase AC
+  -- voltage.
+  fun SinglePhaseRectifier : Class ;
+  fun SinglePhaseRectifier_Class : SubClass SinglePhaseRectifier Rectifier ;
+
+  -- solved example
+  fun SolvedExampleCategory : Ind DocumentCategory ;
+
+  -- A PureTwopole that models a generator of either across or through variable.
+  fun Source : Class ;
+  fun Source_Class : SubClass Source PureTwopole ;
+
+  -- a directional control valve that uses a spool
+  -- to control the direction of flow
+  fun SpoolValve : Class ;
+  fun SpoolValve_Class : SubClass SpoolValve DirectionalControlValve ;
+
+  -- a metal device that returns to its shape or
+  -- position when pushed or pulled or pressed
+  fun Spring : Class ;
+  fun Spring_Class : SubClass Spring MechanicalDevice ;
+
+  -- A ThroughVariableAccumulator from translatory energy domain.
+  fun SpringElement : Class ;
+  fun SpringElement_Class : SubClass SpringElement (both ThroughVariableAccumulator TranslatoryTwopole) ;
+
+  -- Stationary part of a motor or generator in or
+  -- around which the rotor revolves.
+  fun Stator : Class ;
+  fun Stator_Class : SubClass Stator (both ElectricDevice MechanicalDevice) ;
+
+  -- The physical property of being inflexible
+  -- and hard to stretch.
+  fun Stiffness : Ind PhysicalAttribute ;
+
+  -- a process of designing an engineering system
+  fun SystemDesign : Class ;
+  fun SystemDesign_Class : SubClass SystemDesign EngineersSubprocess ;
+
+  -- a process of specifying requirements
+  -- on a system
+  fun SystemSpecification : Class ;
+  fun SystemSpecification_Class : SubClass SystemSpecification EngineersSubprocess ;
+
+  -- A practical Method or art applied to some
+  -- particular task
+  fun Technique : Class ;
+  fun Technique_Class : SubClass Technique Method ;
+
+  -- a point on an electrical device (such as a 
+  -- battery) at which electric current enters or leaves
+  fun Terminal : Class ; --  meronym ElectricalComponent
+
+  -- A PowerSource of three phase
+  -- alternating current.
+  fun ThreePhasePowerSource : Class ;
+  fun ThreePhasePowerSource_Class : SubClass ThreePhasePowerSource PowerSource ;
+
+  -- A Rectifier of single phase AC
+  -- voltage.
+  fun ThreePhaseRectifier : Class ;
+  fun ThreePhaseRectifier_Class : SubClass ThreePhaseRectifier Rectifier ;
+
+  -- A PureTwopole that accumulates through variable.
+  fun ThroughVariableAccumulator : Class ;
+  fun ThroughVariableAccumulator_Class : SubClass ThroughVariableAccumulator PureTwopole ;
+
+  -- A Source that models a generator of through variable.
+  fun ThroughVariableSource : Class ;
+  fun ThroughVariableSource_Class : SubClass ThroughVariableSource Source ;
+
+  -- a SemiconductorComponent that consists of three
+  -- p_n junctions, it is used e.g. in controlled rectifiers.
+  fun Thyristor : Class ;
+  fun Thyristor_Class : SubClass Thyristor SemiconductorComponent ;
+
+  -- PhysicalDimension of torque, [N/m].
+  fun Torque : Ind PhysicalDimension ;
+
+  -- A Transducer for which the ratio of
+  -- across variables and through variables respectively is equal.
+  fun Transformer : Class ;
+  fun Transformer_Class : SubClass Transformer Transducer ;
+
+  -- An ElectricalDevice by which alternating 
+  -- current of one voltage is changed to another voltage.
+  fun TransformerDevice : Class ;
+  fun TransformerDevice_Class : SubClass TransformerDevice ElectricDevice ;
+
+  -- A semiconductor device capable of amplification
+  -- or switching.
+  fun Transistor : Class ;
+  fun Transistor_Class : SubClass Transistor SemiconductorComponent ;
+
+  -- Mechanic translatory energetic interaction
+  fun Translatory : Ind PhysicalDomain ;
+
+  -- A PureTwopole from translatory energy domain.
+  fun TranslatoryTwopole : Class ;
+  fun TranslatoryTwopole_Class : SubClass TranslatoryTwopole PureTwopole ;
+
+  fun Truck_Car : SubClass Truck Car ;
+
+  -- tutorial
+  fun TutorialCategory : Ind DocumentCategory ;
+
+  -- A Multipole with exactly two poles. Twopole Twopole has exactly one port.
+  fun Twopole : Class ;
+  fun Twopole_Class : SubClass Twopole Multipole ;
+
+  -- A Multipole with exactly two sections.
+  fun Twoport : Class ;
+  fun Twoport_Class : SubClass Twoport Fourpole ;
+
+  -- The process of removing of an installed
+  -- application from a computer.
+  fun UnInstallation : Class ;
+  fun UnInstallation_Class : SubClass UnInstallation ITProcess ;
+
+  -- An EngineeringComponent for which
+  -- the principal physical domain is not specified.
+  fun UnknownDomainDevice : Class ;
+  fun UnknownDomainDevice_Class : SubClass UnknownDomainDevice EngineeringComponent ;
+
+  -- A hydraulic valve.
+  fun Valve : Class ;
+  fun Valve_Class : SubClass Valve (both FluidPowerDevice MechanicalDevice) ;
+
+  -- Bessel's equation
+  fun VanderpolsEquation : Class ;
+  fun VanderpolsEquation_Class : SubClass VanderpolsEquation (both NonlinearEquation OrdinaryDifferentialEquation) ;
+
+  -- PhysicalDimension of velocity, [m/s].
+  fun Velocity : Ind PhysicalDimension ;
+
+  -- PhysicalDimension of voltage, [V].
+  fun Voltage : Ind PhysicalDimension ;
+
+  -- valve that controls the flow rate of
+  -- a fluid
+  fun VolumeControlValve : Class ;
+  fun VolumeControlValve_Class : SubClass VolumeControlValve Valve ;
+
+  -- PhysicalDimension of volume flow, [m^_3].
+  fun VolumeFlow : Ind PhysicalDimension ;
+
+  -- knowledge base document _ a document in natural language 
+  -- representing one piece of knowledge in the knowledge base
+  fun WebDocument : Class ;
+  fun WebDocument_Class : SubClass WebDocument ContentBearingObject ;
+
+  -- knowledge base document attribute
+  fun WebDocumentAttribute : Class ;
+  fun WebDocumentAttribute_Class : SubClass WebDocumentAttribute InternalAttribute ;
+
+  fun ZenerDiode : Class ;
+  fun ZenerDiode_Class : SubClass ZenerDiode Diode ;
+
+  -- A meronymy relation similar to part, but
+  -- for abstract rather than physical things.
+  fun abstractPart : El Abstract -> El Abstract -> Formula;
+
+  -- multipole pole has across variable
+  fun hasAcrossVariable : El MultipolePole -> El MultipoleVariable -> Formula ;
+
+  -- multipole quantity has certain dimension
+  fun hasDimension : El MultipoleQuantity -> El PhysicalDimension -> Formula ;
+
+  -- multipole pole has through variable
+  fun hasThroughVariable : El MultipolePole -> El MultipoleVariable -> Formula ;
+
+  -- multipole quantity has certain variable
+  fun hasVariable : El MultipoleQuantity -> El MultipoleVariable -> Formula ;
+
+  -- associates a SUMO concept with a lexicon word
+  fun lexicon : El SetOrClass -> El LexiconCategory -> El SymbolicString -> Formula ;
+
+  -- A relation similar to WordNet meronymy relation.
+  -- If class A is a meronym of class B, it means that instances of A
+  -- typically are parts of instances of B.
+  fun meronym : Desc Object -> Desc Object -> Formula ;
+
+  -- A relation signaling that certain model is
+  -- convenient for modeling of certain class of devices.
+  fun models : El Model -> El EngineeringComponent -> Formula ;
+
+  -- Relation that holds for pairs of physical
+  -- dimensions that multiply up into a physical dimension of Power.
+  -- The first is considered for across variable, the second for through variable.
+  fun physicalDomain : El PhysicalDimension -> El PhysicalDimension -> El PhysicalDomain -> Formula ;
+
+}
diff --git a/examples/SUMO/EngineeringEng.gf b/examples/SUMO/EngineeringEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EngineeringEng.gf
@@ -0,0 +1,9 @@
+concrete EngineeringEng of Engineering = MidLevelOntologyEng ** open DictLangEng, DictEng, ParadigmsEng in {
+
+lin
+  Battery = UseN battery_N ;
+  Method = UseN method_N ;
+  Model = UseN model_N ;
+  Rotor = UseN rotor_N ;
+
+}
diff --git a/examples/SUMO/EngineeringFre.gf b/examples/SUMO/EngineeringFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EngineeringFre.gf
@@ -0,0 +1,7 @@
+--# -path=.:french:romance:abstract:prelude:common
+concrete EngineeringFre of Engineering = BasicFre ** open DictLangFre, ParadigmsFre, ResFre, LexiconFre, ExtraLexiconFre, ParamBasic,StructuralFre in {
+ 
+lin
+
+Model = UseN model_N ; -- FIX ME
+};
diff --git a/examples/SUMO/EngineeringRon.gf b/examples/SUMO/EngineeringRon.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/EngineeringRon.gf
@@ -0,0 +1,7 @@
+--# -path=.:romanian:romance:abstract:prelude:common
+concrete EngineeringRon of Engineering = BasicRon ** open DictLangRon, ParadigmsRon, ResRon, LexiconRon, ExtraLexiconRon, ParamBasic,StructuralRon in {
+ 
+lin
+
+Model = UseN model_N ; -- FIX ME
+};
diff --git a/examples/SUMO/FinancialOntology.gf b/examples/SUMO/FinancialOntology.gf
--- a/examples/SUMO/FinancialOntology.gf
+++ b/examples/SUMO/FinancialOntology.gf
@@ -1,1740 +1,1586 @@
-abstract FinancialOntology = open Merge, Mid_level_ontology in {
-
-
-
-
--- The highest rating given by bond rating agencies
-fun AAA_Rating : Ind FinancialRating ;
-
-
--- All_or_none order (AON) is a type of option order 
--- which requires that the order be executed completely or not at all. An AON 
--- order may be either a day order or a GTC order.
-fun AONOrder : Class ;
-fun AONOrder_Class : SubClass AONOrder FinancialOrder ;
-
--- (Automatic Teller Machine) A banking terminal that 
--- accepts deposits and dispenses cash. ATMs are activated by inserting a cash or 
--- credit card that contains the user's account number and PIN on a magnetic stripe. 
--- The ATM calls up the bank's computers to verify the balance, dispenses the cash 
--- and then transmits a completed transaction notice.
-fun ATMMachine : Class ;
-fun ATMMachine_Class : SubClass ATMMachine StationaryArtifact ;
-
--- A narrow opening in an ATM machine where cards are inserted.
-fun ATMSlot : Class ;
-fun ATMSlot_Class : SubClass ATMSlot Hole ;
-
--- A unary function that maps a FinancialAsset to the FinancialAccount 
--- associated with the Asset.
-fun AccountFn : El FinancialAsset -> Ind FinancialAccount ;
-
-
-fun Active : Ind StatusAttribute ;
-
--- An InterestBearingAccount in which 
--- the interest rate is adjusted periodically, usually based on a standard 
--- market rate outside the control of the bank or savings institution, such 
--- as that prevailing on TreasuryBill or the primeInterestRate.
-fun AdjustableRateAccount : Class ;
-fun AdjustableRateAccount_Class : SubClass AdjustableRateAccount InterestBearingAccount ;
-
-fun AmericanExpressCard : Class ;
-fun AmericanExpressCard_Class : SubClass AmericanExpressCard CreditCard ;
--- An option that can be exercised at any time 
--- prior to its expiration date
-fun AmericanStyleOption : Ind Option ;
-
-
--- A contract sold by an insurance company designed to provide 
--- payments to the holder at specified intervals, usually after retirement. FixedAnnuities 
--- guarantee a certain payment amount, while VariableAnnuities do not, but do have the 
--- potential for greater returns, but both are relatively safe, low_yielding investments.
-fun Annuity : Class ;
-fun Annuity_Class : SubClass Annuity FinancialContract ;
-
--- The process of dividing investments among different kinds of 
--- assets, such as Stocks, Bonds, RealEstate and cash, to optimize the risk/reward tradeoff based 
--- on an individual's or institution's specific situation and goals.
-fun AssetAllocation : Class ;
-fun AssetAllocation_Class : SubClass AssetAllocation FinancialTransaction ;
-
--- An activity which approves or 
--- disapproves a transaction.
-fun AuthorizationOfTransaction : Class ;
-fun AuthorizationOfTransaction_Class : SubClass AuthorizationOfTransaction (both ControllingAnAccount (both FinancialService RegulatoryProcess)) ;
-
-
--- Transactions which occur through computer 
--- networks and which do not require direct management.
-fun AutomaticTransaction : Class ;
-fun AutomaticTransaction_Class : SubClass AutomaticTransaction FinancialTransaction ;
-
--- A mid_range rating given by bond rating agencies.
-fun B_Rating : Ind FinancialRating ;
-
-
--- A long_term loan, often a mortgage, that has 
--- one large payment (the balloon payment) due upon maturity. Often done 
--- when refinancing or a major cash flow event is anticipated.
-fun BalloonLoan : Class ;
-fun BalloonLoan_Class : SubClass BalloonLoan Loan ;
-
--- A CreditCard or a DebitCard issued by a 
--- FinancialOrganization.
-fun BankCard : Class ;
-fun BankCard_Class : SubClass BankCard FinancialInstrument ;
-
--- A monthly report sent to a debtor or bank depositor.
-fun BankStatement : Class ;
-fun BankStatement_Class : SubClass BankStatement Proposition ;
-
--- A bank loan terminating in one year or more.
-fun BankTermLoan : Class ;
-fun BankTermLoan_Class : SubClass BankTermLoan Loan ;
-
--- An organization, chartered by a state or 
--- federal government, which does most or all of the following: receives Deposits, 
--- honors FinancialInstruments drawn on them, and pays Interest on them, discounts 
--- Notes, makes Loans, and invests in SecuredLoans, collects Checks, Drafts 
--- and Notes, certifies depositor's checks, and issues drafts and Cashier's checks.
-fun Bank_FinancialOrganization : Class ;
-fun Bank_FinancialOrganization_Class : SubClass Bank_FinancialOrganization FinancialOrganization ;
-
--- An adjective describing the opinion that a stock, or 
--- a market in general, will decline in price __ a negative or pessimistic outlook.
-fun Bearish : Class ;
-fun Bearish_Class : SubClass Bearish InvestmentAttribute ;
-
--- Stock with a solid and stable earnings record from a 
--- company that either leads or dominates or is a major player in a specific industry.
-fun BlueChipStock : Class ;
-fun BlueChipStock_Class : SubClass BlueChipStock Stock ;
-
--- A debt instrument issued for a period of more than one year with 
--- the purpose of raising capital by borrowing. The Federal government, states, cities, 
--- corporations, and many other types of institutions sell bonds. A bond is generally a 
--- promise to repay the principal along with interest on a specified maturityDate.
-fun Bond : Class ;
-fun Bond_Class : SubClass Bond (both FinancialInstrument Investment) ;
-
-
--- Stock in a short sale.
-fun BorrowedStock : Class ;
-fun BorrowedStock_Class : SubClass BorrowedStock Stock ;
-
--- Short_term financing which is expected to be paid back relatively 
--- quickly, such as by a subsequent longer_term loan.
-fun BridgeLoan : Class ;
-fun BridgeLoan_Class : SubClass BridgeLoan Loan ;
-
--- An individual or firm which acts as an intermediary between 
--- a buyer and seller, usually charging a commisssion.
-fun Broker : Class ;
-fun Broker_Class : SubClass Broker CognitiveAgent ;
-
--- Money lent to brokers by banks, for financing 
--- the underwriting of new issues, financing customer margin accounts, and 
--- other purposes.
-fun BrokerLoan : Class ;
-fun BrokerLoan_Class : SubClass BrokerLoan Loan ;
-
--- A fund that a customer has entrusted to 
--- a securities brokerage.
-fun BrokerageAccount : Ind InvestmentAccount ;
-
-
--- An attribute describing the opinion that a stock, or the 
--- market in general, will rise in price __ a positive or optimistic outlook.
-fun Bullish : Class ;
-fun Bullish_Class : SubClass Bullish InvestmentAttribute ;
-
--- A complex option strategy that involves 
--- selling two calls and buying two calls on the same or different markets, 
--- with several maturity dates. One of the options has a higher exercise 
--- price and the other has a lower exercise price than the other two options. 
--- The payoff diagram resembles the shape of a butterfly.
-fun ButterflySpread : Class ;
-fun ButterflySpread_Class : SubClass ButterflySpread SpreadOption ;
-
--- A mid_range rating given by bond rating agencies.
-fun C_Rating : Ind FinancialRating ;
-
-
-fun Call : Class ;
-fun Call_Class : SubClass Call FinancialTransaction ;
--- An option contract that gives the holder the 
--- right to buy a certain quantity (usually 100 shares) of an underlying 
--- security from the writer of the option, at a specified price (the strike 
--- price) up to a specified date (the expiration date).
-fun CallOption : Class ;
-fun CallOption_Class : SubClass CallOption Option ;
-
--- A bond which the issuer has the right to redeem 
--- prior to its maturity date, under certain conditions.
-fun CallableBond : Class ;
-fun CallableBond_Class : SubClass CallableBond Bond ;
-
--- A loan that must repaid upon the lender's demand.
-fun CallableLoan : Class ;
-fun CallableLoan_Class : SubClass CallableLoan Loan ;
-
-fun CancellingAnOrder : Class ;
-fun CancellingAnOrder_Class : SubClass CancellingAnOrder FinancialTransaction ;
--- Circulating paper money
-fun Cash : Class ;
-fun Cash_Class : SubClass Cash (both FinancialAsset FinancialInstrument) ;
-
-
--- CDs (certificates of deposit) are bank, credit union or savings 
--- and loan instruments that allow the depositor to lock in an interest rate for a specific period of 
--- time (e.g. six months, one year, five years). If the money is withdrawn from the CD before the CD 
--- matures, there is likely to be an early_withdrawal penalty __ often three month's interest. Generally, 
--- the longer the time period of the CD, the higher the interest paid.
-fun CertificateOfDeposit : Class ;
-fun CertificateOfDeposit_Class : SubClass CertificateOfDeposit SavingsAccount ;
-
--- A FinancialInstrument drawn against deposited funds, 
--- to pay a specified amount of money to a specific person upon demand.
-fun Check : Class ;
-fun Check_Class : SubClass Check FinancialInstrument ;
-
--- A bank account against which the depositor can draw checks
-fun CheckingAccount : Class ;
-fun CheckingAccount_Class : SubClass CheckingAccount DepositAccount ;
-
--- The attribute which describes services that are 
--- shut or closed.
-fun ClosedService : Ind ServiceAttribute ;
-
-
--- An activity of closing a financial account
-fun ClosingAnAccount : Class ;
-fun ClosingAnAccount_Class : SubClass ClosingAnAccount FinancialTransaction ;
-
--- Assets pledged by a borrower to secure a loan or other credit, and 
--- subject to seizure in the event of FinancialDefault.
-fun Collateral : Class ;
-fun Collateral_Class : SubClass Collateral FinancialAsset ;
-
--- Securities representing equity, ownership in a 
--- Corporation, providing voting rights, and entitling the holder to a share 
--- of the company's success through dividends and/or capital appreciation. 
--- In the event of liquidation, common stock holders have rights to a 
--- company's assets only after bondholders, other debt holders, and 
--- PreferredStock holders have been satisfied.
-fun CommonStock : Class ;
-fun CommonStock_Class : SubClass CommonStock Stock ;
-
--- The replacement of multiple loans with a single loan, often 
--- with a lower monthly payment and a longer repayment period.
-fun ConsolidationLoan : Class ;
-fun ConsolidationLoan_Class : SubClass ConsolidationLoan Loan ;
-
--- An inflationary indicator that measures 
--- the change in the cost of a fixed basket of products and services, 
--- including housing, electricity, food, and transportation. The CPI is 
--- published monthly.
-fun ConsumerPriceIndex : Class ;
-fun ConsumerPriceIndex_Class : SubClass ConsumerPriceIndex InflationIndex ;
-
--- Attribute that applies to Propositions where 
--- something is promised in return, i.e. a reciprocal promise.
-fun Contract : Class ; --  make subclass with Promise 
-
-
--- An activity of controlling a financial account
-fun ControllingAnAccount : Class ;
-fun ControllingAnAccount_Class : SubClass ControllingAnAccount FinancialTransaction ;
-
--- A mortgage that is not insured or guaranteed 
--- by the government.
-fun ConventionalMortgage : Class ;
-fun ConventionalMortgage_Class : SubClass ConventionalMortgage Mortgage ;
-
--- Short_term option contracts.
-fun ConventionalOption : Class ;
-fun ConventionalOption_Class : SubClass ConventionalOption Option ;
-
--- This is the class of accounts held by corporations. This class 
--- is disjoint with PersonalAccounts.
-fun CorporateAccount : Class ;
-fun CorporateAccount_Class : SubClass CorporateAccount FinancialAccount ;
-
--- A bond issued by a corporation. Such bonds usually have 
--- a par value of 1,000, are taxable, have a term maturity, are paid for out of a sinking 
--- fund accumulated for that purpose, and are traded on major exchanges.
-fun CorporateBond : Class ;
-fun CorporateBond_Class : SubClass CorporateBond (both Bond TaxableInvestment) ;
-
-
--- An unregistered, negotiable bond on which interest and principal 
--- are payable to the holder, regardless of whom it was originally issued to. The coupons are 
--- attached to the bond, and each coupon represents a single interest payment. The holder submits 
--- a coupon, usually semi_annually, to the issuer or paying agent to receive payment. Coupon bonds 
--- are being phased out in favor of registered bonds.
-fun CouponBond : Class ;
-fun CouponBond_Class : SubClass CouponBond Bond ;
-
--- Credit extended by a business to a customer
-fun CreditAccount : Class ;
-fun CreditAccount_Class : SubClass CreditAccount LiabilityAccount ;
-
--- Any card that may be used repeatedly to borrow money 
--- or buy products and services on credit. Issued by banks, savings and loans, retail 
--- stores, and other businesses.
-fun CreditCard : Class ;
-fun CreditCard_Class : SubClass CreditCard BankCard ;
-
--- A type of CreditAccount which uses a CreditCard for 
--- FinancialTransactions.
-fun CreditCardAccount : Class ;
-fun CreditCardAccount_Class : SubClass CreditCardAccount CreditAccount ;
-
--- Credit unions are non_profit, member_owned, financial 
--- cooperatives. They are operated entirely by and for their members. When you deposit 
--- money in a credit union, you become a member of the union because your deposit is 
--- considered partial ownership in the credit union. Many large organizations have 
--- established credit unions for their employees.
-fun CreditUnion : Class ;
-fun CreditUnion_Class : SubClass CreditUnion FinancialOrganization ;
-
--- A unary function that maps a FinancialAccount to the 
--- currency linked to the account.
-fun CurrencyFn : El FinancialAccount -> Ind FinancialInstrument ;
-
-
--- The lowest rating given by bond rating agencies.
-fun D_Rating : Ind FinancialRating ;
-
-
--- A bank loan to a broker for the purchase of securities pending delivery 
--- through clearing later the same day.
-fun DayLoan : Class ;
-fun DayLoan_Class : SubClass DayLoan Loan ;
-
--- A type of option order which instructs the broker 
--- to cancel any unfilled portion of the order at the close of trading on the 
--- day the order is first entered.
-fun DayOrder : Class ;
-fun DayOrder_Class : SubClass DayOrder FinancialOrder ;
-
--- A card which allows customers to access their funds 
--- immediately, electronically. Unlike a credit card, a debit card does not have 
--- any float.
-fun DebitCard : Class ;
-fun DebitCard_Class : SubClass DebitCard BankCard ;
-
--- DefensiveStocks are stocks of food companies, drug 
--- manufacturers and utility companies.
-fun DefensiveStock : Class ;
-fun DefensiveStock_Class : SubClass DefensiveStock Stock ;
-
--- A company retirement plan, such as 
--- a 401(k) or 403(b), in which the employee elects to defer some amount of 
--- his/her salary into the plan and bears the investment risk.
-fun DefinedContributionPlan : Class ;
-fun DefinedContributionPlan_Class : SubClass DefinedContributionPlan PensionPlan ;
-
--- An Activity of money being transferred into a customer's 
--- account at a financial institution.
-fun Deposit : Class ;
-fun Deposit_Class : SubClass Deposit FinancialTransaction ;
-
--- An account where money is deposited for checking, savings or 
--- brokerage use.
-fun DepositAccount : Class ;
-fun DepositAccount_Class : SubClass DepositAccount FinancialAccount ;
-
--- An activity of depositing a check into a 
--- FinancialOrganization.
-fun DepositingACheck : Class ;
-fun DepositingACheck_Class : SubClass DepositingACheck UsingAnAccount ;
-
--- A distribution from qualified pension plan, 401(k)
---  plan, or 403(b) plan, that is remitted directly to the trustee, custodian, or 
--- issuer of the receiving IRA and is reported to the IRS as a rollover. This can only 
--- be done once per year, per account.
-fun DirectRollover : Class ;
-fun DirectRollover_Class : SubClass DirectRollover Rollover ;
-
-fun DiscoverCard : Class ;
-fun DiscoverCard_Class : SubClass DiscoverCard CreditCard ;
--- A taxable payment declared by a company's board of directors 
--- and given to its shareHolders out of the company's current or retained earnings. 
--- Usually quarterly. Usually given as cash, but it can also take the form of Stock or 
--- other property.
-fun Dividend : Class ;
-fun Dividend_Class : SubClass Dividend Payment ;
-
--- A stock market transaction (or sometimes, a quote) 
--- at a price lower than the preceding one for the same security.
-fun Downtick : Class ;
-fun Downtick_Class : SubClass Downtick StockMarketTransaction ;
-
--- An activity of paying by a check.
-fun DrawingACheck : Class ;
-fun DrawingACheck_Class : SubClass DrawingACheck UsingAnAccount ;
-
--- Data which provide information about or 
--- predict the overall health of the economy or the financial markets, 
--- examples are inflation, interest rates, employment, etc.
-fun EconomicIndicator : Class ;
-fun EconomicIndicator_Class : SubClass EconomicIndicator Proposition ;
-
-fun Employment : Class ;
-fun Employment_Class : SubClass Employment (both FinancialContract ServiceContract) ;
-
--- A subclass of AuthorizationOfTransaction where 
--- a customer enters his/her personal identification number.
-fun EnteringAPin : Class ;
-fun EnteringAPin_Class : SubClass EnteringAPin AuthorizationOfTransaction ;
-
-fun EnteringAPing : Class ;
-fun EnteringAPing_Class : SubClass EnteringAPing ContentDevelopment ;
--- An option on shares of an individual common stock.
-fun EquityOption : Class ;
-fun EquityOption_Class : SubClass EquityOption Option ;
-
--- An option that can be exercised only during 
--- a specified period of time just prior to its expiration.
-fun EuropeanStyleOption : Ind Option ;
-
-
--- A short_term loan which is continually renewed rather than repaid.
-fun EvergreenLoan : Class ;
-fun EvergreenLoan_Class : SubClass EvergreenLoan Loan ;
-
--- An activity when the owner of the the Option 
--- contract invokes his rights. In the case of a call, the option owner buys the 
--- underlying stock. In the case of a put, the option owner sells the underlying stock.
-fun ExerciseAnOption : Ind FinancialTransaction ;
-
-
--- A class of expired BankCards.
-fun ExpiredCard : Class ;
-fun ExpiredCard_Class : SubClass ExpiredCard BankCard ;
-
--- A subclass of FinancialTransactions from one 
--- FinancialOrganization to another.
-fun ExternalTransfer : Class ;
-fun ExternalTransfer_Class : SubClass ExternalTransfer FinancialTransaction ;
-
--- A government mortgage that is insured by the Federal Housing 
--- Administration (FHA).
-fun FHALoan : Class ;
-fun FHALoan_Class : SubClass FHALoan Mortgage ;
-
--- Fill_or_kill order is a type of option order 
--- which requires that the order be executed completely or not at all. A 
--- fill_or_kill order is similar to an all_or_none (AON) order. The 
--- difference is that if the order cannot be completely executed (i.e., 
--- filled in its entirety) as soon as it is announced in the trading crowd, 
--- it is to be 'killed' (i.e., cancelled) immediately. Unlike an AON order, 
--- a FOK order cannot be used as part of a GTC order.
-fun FOKOrder : Class ;
-fun FOKOrder_Class : SubClass FOKOrder FinancialOrder ;
-
--- The communication of a printed page between remote locations.
-fun Fax : Class ;
-fun Fax_Class : SubClass Fax Communication ;
-
--- Fax machines scan a paper form and transmit a coded 
--- image over the telephone system. The receiving machine prints a facsimile of 
--- the original. A fax machine is made up of a scanner, printer and modem with 
--- fax signaling.
-fun FaxMachine : Class ;
-fun FaxMachine_Class : SubClass FaxMachine Device ;
-
-fun FederalHousingAdministration : Class ;
-fun FederalHousingAdministration_Class : SubClass FederalHousingAdministration Government ;
--- Execute an order or buy or sell a security 
--- or commodity.
-fun FillingAnOrder : Class ;
-fun FillingAnOrder_Class : SubClass FillingAnOrder FinancialTransaction ;
-
--- A financial agreement between two or more parties
-fun FinancialContract : Class ;
-
-
--- Failure to make required debt payments on a timely basis 
--- or to comply with other conditions of an obligation or agreement.
-fun FinancialDefault : Class ;
-fun FinancialDefault_Class : SubClass FinancialDefault FinancialTransaction ;
-
--- A request from a client to a broker to buy (buy order) or sell 
--- (sell order) a specified amount of a particular security or commodity at a specific 
--- price or at the market price.
-fun FinancialOrder : Class ;
-fun FinancialOrder_Class : SubClass FinancialOrder ServiceContract ;
-
--- The class FinancialOrganization includes, 
--- as subclasses, Bank_FinancialOrganization, CreditUnion and SavingsAnLoans.
-fun FinancialOrganization : Class ;
-fun FinancialOrganization_Class : SubClass FinancialOrganization Organization ;
-
--- The highest rating is usually AAA_Rating, 
--- and the lowest is D_Rating.
-fun FinancialRating : Class ;
-fun FinancialRating_Class : SubClass FinancialRating RelationalAttribute ;
-
--- A request for financial data sent in order
--- to get a FinancialResponse.
-fun FinancialRequest : Class ;
-fun FinancialRequest_Class : SubClass FinancialRequest FinancialTransaction ;
-
--- The response data provided to fulfil a FinancialRequest.
-fun FinancialResponse : Class ;
-fun FinancialResponse_Class : SubClass FinancialResponse FinancialTransaction ;
-
--- An investment vehicle offered by an insurance company, that 
--- guarantees a stream of fixed payments over the life of the annuity. The insurer, not the 
--- insured, takes the investment risk.
-fun FixedAnnuity : Class ;
-fun FixedAnnuity_Class : SubClass FixedAnnuity Annuity ;
-
--- An InterestBearingAccount in which the interest rate does not 
--- change during the entire term of the loan.
-fun FixedRateAccount : Class ;
-fun FixedRateAccount_Class : SubClass FixedRateAccount InterestBearingAccount ;
-
--- Good_'til_cancelled (GTC) order is a type of limit order 
--- that remains in effect until it is either executed (filled) or cancelled, as opposed 
--- to a day order, which expires if not executed by the end of the trading day. A GTC 
--- option order is an order which if not executed will be automatically cancelled at the 
--- option's expiration
-fun GTCOrder : Class ;
-fun GTCOrder_Class : SubClass GTCOrder FinancialOrder ;
-
--- A bond sold by the U.S. government.
-fun GovernmentBond : Class ;
-fun GovernmentBond_Class : SubClass GovernmentBond Bond ;
-
--- Investment term that is applied to a Stock that is expected 
--- to appreciate in value at a high rate, pay big dividends or split.
-fun GrowthStock : Class ;
-fun GrowthStock_Class : SubClass GrowthStock Stock ;
-
--- An Attribute of FinancialAccounts which can be easily 
--- converted to cash.
-fun HighLiquidity : Ind LiquidityAttribute ;
-
-
--- An Attribute that characterizes investments which are likely 
--- to lose their principal.
-fun HighRisk : Ind RiskAttribute ;
-
-
--- An Attribute that characterizes accounts that are very profitable.
-fun HighYield : Ind YieldAttribute ;
-
-
--- Immediate or cancel Order is a type of option order 
--- which gives the trading crowd one opportunity to take the other side of the 
--- trade. After being announced, the order will be either partially or totally 
--- filled with any remaining balance immediately cancelled. An IOC order, which 
--- can be considered a type of day order, cannot be used as part of a GTC order 
--- since it will be cancelled shortly after being entered. The difference between 
--- fill_or_kill (FOK) orders and IOC orders is that a IOC order may be partially 
--- executed.
-fun IOCOrder : Class ;
-fun IOCOrder_Class : SubClass IOCOrder FinancialOrder ;
-
--- A benchmark against which financial or economic performance is measured, 
--- such as the S&P 500 or the Consumer Price Index.
-fun Index : Class ;
-fun Index_Class : SubClass Index PerformanceMeasure ;
-
--- A bond whose cash flow is inflation_adjusted, by 
--- being linked to the purchasing power of a particular currency.
-fun IndexBond : Class ;
-fun IndexBond_Class : SubClass IndexBond Bond ;
-
--- An option whose underlying interest is an index. 
--- Generally, index options are cash_settled.
-fun IndexOption : Class ;
-fun IndexOption_Class : SubClass IndexOption Option ;
-
--- A loan in which payments change in response to 
--- changes in an index such as the Consumer Price Index.
-fun IndexedLoan : Class ;
-fun IndexedLoan_Class : SubClass IndexedLoan Loan ;
-
--- A tax_deferred retirement 
--- account for an individual that permits individuals to set aside up to 
--- 2,000 per year, with earnings tax_deferred until withdrawals begin at age 
--- 59 1/2 or later (or earlier, with a 10% penalty). Only those who do not 
--- participate in a pension plan at work or who do participate and meet 
--- certain income guidelines can make deductible contributions to an IRA. 
--- All others can make contributions to an IRA on a non_deductible basis. 
--- Such contributions qualify as a deduction against income earned in that 
--- year and interest accumulates tax_deferred until the funds are withdrawn.
-fun IndividualRetirementAccount : Class ;
-fun IndividualRetirementAccount_Class : SubClass IndividualRetirementAccount (both PensionPlan (both PersonalAccount SavingsAccount)) ;
-
-
--- The overall general upward price movement of 
--- goods and services in an economy, usually as measured by the Consumer 
--- Price Index and the Producer Price Index.
-fun Inflation : Class ;
-fun Inflation_Class : SubClass Inflation EconomicIndicator ;
-
-fun InflationIndex : Class ;
-fun InflationIndex_Class : SubClass InflationIndex Index ;
--- Money paid for the use of money.
-fun Interest : Class ;
-fun Interest_Class : SubClass Interest CurrencyMeasure ;
-
--- FinancialAccounts that have a fixed or adjustable interest rate.
-fun InterestBearingAccount : Class ;
-fun InterestBearingAccount_Class : SubClass InterestBearingAccount FinancialAccount ;
-
--- A non_amortized loan in which interest is 
--- due at regular intervals until maturity, when the full principal on the 
--- loan is due.
-fun InterestOnlyLoan : Class ;
-fun InterestOnlyLoan_Class : SubClass InterestOnlyLoan Loan ;
-
--- The usual way of calculating Interest, as a 
--- percentage of the sum borrowed.
-fun InterestRate : Class ;
-fun InterestRate_Class : SubClass InterestRate (both ConstantQuantity EconomicIndicator) ;
-
-
--- A subclass of FinancialTransactions within 
--- one FinancialOrganization.
-fun InternalTransfer : Class ;
-fun InternalTransfer_Class : SubClass InternalTransfer FinancialTransaction ;
-
--- An activity of commiting money or capital in order to 
--- gain a financial return.
-fun Investing : Class ;
-fun Investing_Class : SubClass Investing FinancialTransaction ;
-
--- An account acquired for future financial return or benefit
-fun InvestmentAccount : Class ;
-fun InvestmentAccount_Class : SubClass InvestmentAccount DepositAccount ;
-
-fun InvestmentAttribute : Class ;
-fun InvestmentAttribute_Class : SubClass InvestmentAttribute RelationalAttribute ;
--- A person who purchases income_producing assets.
-fun Investor : Class ;
-fun Investor_Class : SubClass Investor SocialRole ;
-
--- An account owned by two or more people, usually sharing a household 
--- and expenses. Each co_owner has equal access to the account. Most types of accounts, whether it's 
--- basic checking, savings or money market, allow for joint use
-fun JointAccount : Class ;
-fun JointAccount_Class : SubClass JointAccount PersonalAccount ;
-
--- A high_risk, non_investment_grade bond with a low 
--- credit rating, usually BB or lower, as a consequence, it usually has a high 
--- yield.
-fun JunkBond : Class ;
-fun JunkBond_Class : SubClass JunkBond CorporateBond ;
-
--- Calls and puts with an expiration as long as 
--- thirty_nine months. Currently, equity LEAPS have two series at any 
--- time with a January expiration. For example, in October 2000, LEAPS 
--- are available with expirations of January 2002 and January 2003.
-fun LEAPS : Class ;
-fun LEAPS_Class : SubClass LEAPS Option ;
-
--- A financial obligation, debt, claim, or potential loss
-fun Liability : Class ;
-fun Liability_Class : SubClass Liability FinancialContract ;
-
--- An account for which a person is liable
-fun LiabilityAccount : Class ;
-fun LiabilityAccount_Class : SubClass LiabilityAccount FinancialAccount ;
-
--- LimitOrder is an order to a Broker to buy a specified quantity 
--- of a Security at or below a specified price, or to sell it at or above a specified limitPrice.
-fun LimitOrder : Class ;
-fun LimitOrder_Class : SubClass LimitOrder FinancialOrder ;
-
--- The class of events of selling all of a company's assets, 
--- paying outstanding debts, and distribution of the remainder to shareholders, and them 
--- going out of business.
-fun Liquidation : Class ;
-fun Liquidation_Class : SubClass Liquidation FinancialTransaction ;
-
--- A class of attributes which describe the degree to 
--- which accounts can be easily converted to cash.
-fun LiquidityAttribute : Class ;
-fun LiquidityAttribute_Class : SubClass LiquidityAttribute RelationalAttribute ;
-
--- An arrangement in which a lender gives money or property to a borrower, 
--- and the borrower agrees to return the property or repay the money, usually along with interest, 
--- at some future point(s) in time.
-fun Loan : Class ;
-fun Loan_Class : SubClass Loan LiabilityAccount ;
-
--- A formal offer by a lender making explicit 
--- the terms under which it agrees to lend money to a borrower over a certain 
--- period of time.
-fun LoanCommitment : Class ;
-fun LoanCommitment_Class : SubClass LoanCommitment Contract ;
-
-fun Locked : Ind StatusAttribute ;
-
--- A straddle in which a long position is taken in 
--- both a put and a call option
-fun LongStraddle : Class ;
-fun LongStraddle_Class : SubClass LongStraddle Straddle ;
-
--- An Attribute of FinancialAccounts which cannot be easily 
--- converted to cash.
-fun LowLiquidity : Ind LiquidityAttribute ;
-
-
-fun LowRisk : Ind RiskAttribute ;
-
--- An Attribute that characterizes accounts that are not very profitable.
-fun LowYield : Ind YieldAttribute ;
-
-
--- A Market_not_held order is a type of market order 
--- which allows the investor to give discretion to the floor broker regarding 
--- the price and/or time at which a trade is executed.
-fun MNHOrder : Class ;
-fun MNHOrder_Class : SubClass MNHOrder FinancialOrder ;
-
--- A Market_on_close order is a type of option order 
--- which requires that an order be executed at or near the close of trading on 
--- the day the order is entered. A MOC order, which can be considered a type of 
--- day order, cannot be used as part of a GTC order
-fun MOCOrder : Class ;
-fun MOCOrder_Class : SubClass MOCOrder FinancialOrder ;
-
--- One who directs a business or other enterprise.
-fun Manager : Ind Position ;
-
-
--- An order to buy or sell security at the best prices available.
-fun MarketOrder : Class ;
-fun MarketOrder_Class : SubClass MarketOrder FinancialOrder ;
-
--- A stock index in which each stock affects the 
--- index in proportion to its number of shares outstanding.
-fun MarketShareWeightedIndex : Class ;
-fun MarketShareWeightedIndex_Class : SubClass MarketShareWeightedIndex Index ;
-
--- A stock index in which each stock 
--- affects the index in proportion to its market value. Examples include 
--- NASDAQ Composite Index, S&P 500, Wilshire 5000 Equity Index, Hang Seng 
--- Index, and EAFE Index.
-fun MarketValueWeightedIndex : Class ;
-fun MarketValueWeightedIndex_Class : SubClass MarketValueWeightedIndex Index ;
-
-fun MasterCard : Class ;
-fun MasterCard_Class : SubClass MasterCard CreditCard ;
--- MoneyMarket is for borrowing and lending money for three years 
--- or less. The securities in a money market can be U.S. government bonds, TreasuryBills and commercial 
--- paper from banks and companies.
-fun MoneyMarket : Class ;
-fun MoneyMarket_Class : SubClass MoneyMarket SavingsAccount ;
-
--- A loan to finance the purchase of real estate, usually with specified payment 
--- periods and interest rates.
-fun Mortgage : Class ;
-fun Mortgage_Class : SubClass Mortgage SecuredLoan ;
-
--- These are bonds generally bought through a 
--- government agency that deals in the real estate market. They are bonds 
--- issued by mortgage lenders.
-fun MortgageBond : Class ;
-fun MortgageBond_Class : SubClass MortgageBond CorporateBond ;
-
--- Bond issued by a state, city, or local government to 
--- finance operations or special projects, interest on it is often tax_free.
-fun MunicipalBond : Class ;
-fun MunicipalBond_Class : SubClass MunicipalBond (both Bond TaxFreeInvestment) ;
-
-
--- An open_ended fund operated by an investment company which 
--- raises money from shareholders and invests in a group of assets, in accordance with a stated 
--- set of objectives. Benefits include diversification and professional money management. Shares 
--- are issued and redeemed on demand, based on the fund's net asset value which is determined at 
--- the end of each trading session.
-fun MutualFundAccount : Class ;
-fun MutualFundAccount_Class : SubClass MutualFundAccount InvestmentAccount ;
-
--- National Association of Securities Dealers Automated Quotations 
--- system.
-fun NASDAQ : Ind Organization ;
-
-
--- A market_value weighted index of all common stocks 
--- listed on NASDAQ.
-fun NASDAQCompositeIndex : Class ;
-fun NASDAQCompositeIndex_Class : SubClass NASDAQCompositeIndex Index ;
-
--- A not_held order is a type of order which releases 
--- normal obligations implied by the other terms of the order. For example, a 
--- limit order designated as 'not_held' allows discretion to the floor trader in 
--- filling the order when the market trades at the limit price of the order. In 
--- this case, there is no obligation to provide the customer with an execution if 
--- the market trades through the limit price on the order.
-fun NHOrder : Class ;
-fun NHOrder_Class : SubClass NHOrder FinancialOrder ;
-
-fun New : Ind StatusAttribute ;
-
--- Index of 225 leading stocks traded on the Tokyo Stock 
--- Exchange.
-fun NikkeiIndex : Class ;
-fun NikkeiIndex_Class : SubClass NikkeiIndex Index ;
-
--- A legal document that obligates a borrower to repay a loan 
--- at a specified interestRate during a specified period of time or on demand
-fun Note : Class ;
-fun Note_Class : SubClass Note FinancialInstrument ;
-
--- One_cancels_other order (OCO) is a type of option 
--- order which treats two or more option orders as a package, whereby the execution 
--- of any one of the orders causes all the orders to be reduced by the same amount. 
--- For example, the investor would enter an OCO order if he/she wished to buy 
--- 10 May 60 calls or 10 June 60 calls or any combination of the two which when 
--- summed equaled 10 contracts. An OCO order may be either a day order or a GTC order
-fun OCOOrder : Class ;
-fun OCOOrder_Class : SubClass OCOOrder FinancialOrder ;
-
--- The attribute which describes services that 
--- are ready to transact business.
-fun OpenService : Ind ServiceAttribute ;
-
-
--- An activity of opening a financial account
-fun OpeningAnAccount : Class ;
-fun OpeningAnAccount_Class : SubClass OpeningAnAccount FinancialTransaction ;
-
--- An option is a contract to buy or sell 100 shares 
--- of a stock at a fixed price (the strike price) on or before a fixed date.
-fun Option : Class ;
-fun Option_Class : SubClass Option FinancialContract ;
-
--- A collection of buying/selling options 
--- whose purpose is to result in an optimal profit for the investor.
-fun OptionStrategy : Class ;
-fun OptionStrategy_Class : SubClass OptionStrategy FinancialTransaction ;
-
--- A check issued to an employee in payment of salary or wages
-fun PayCheck : Class ;
-fun PayCheck_Class : SubClass PayCheck Check ;
-
--- The partial or complete discharge of an obligation by 
--- its settlement in the form of the transfer of funds, assets, or services equal 
--- to the monetary value of part or all of the debtor's obligation.
-fun Payment : Class ;
-fun Payment_Class : SubClass Payment FinancialTransaction ;
-
--- A fee charged as a penalty.
-fun Penalty : Class ;
-fun Penalty_Class : SubClass Penalty ChargingAFee ;
-
-fun Pending : Ind StatusAttribute ;
-
--- Extremely speculative, high_risk Stock, usually 
--- with a price of less than 5 dollars per share. In the U.S., nearly all 
--- are traded on the over_the_counter bulletin board.
-fun PennyStock : Class ;
-fun PennyStock_Class : SubClass PennyStock Stock ;
-
--- A bond issued by an insurance company to 
--- guarantee satisfactory completion of a project by a contractor.
-fun PerformanceBond : Class ;
-fun PerformanceBond_Class : SubClass PerformanceBond Bond ;
-
-fun PerformanceMeasure : Class ;
-fun PerformanceMeasure_Class : SubClass PerformanceMeasure PhysicalQuantity ;
--- This is the class of personal accounts, as opposed to 
--- CorporateAccounts.
-fun PersonalAccount : Class ;
-fun PersonalAccount_Class : SubClass PersonalAccount FinancialAccount ;
-
--- Two lenders participating in the same loan.
-fun PiggybankLoan : Class ;
-fun PiggybankLoan_Class : SubClass PiggybankLoan Loan ;
-
-fun PlacingAnOrder : Class ;
-fun PlacingAnOrder_Class : SubClass PlacingAnOrder FinancialTransaction ;
--- CapitalStock which provides a specific Dividend 
--- that is paid before any dividends are paid to common stock holders, and which takes 
--- precedence over common stock in the event of a liquidation. Usually does not carry 
--- voting rights.
-fun PreferredStock : Class ;
-fun PreferredStock_Class : SubClass PreferredStock Stock ;
-
--- Prepayment is the payment of all or part of a debt 
--- prior to its due date.
-fun Prepayment : Class ;
-fun Prepayment_Class : SubClass Prepayment Payment ;
-
--- A stock index in which each stock affects the index 
--- in proportion to its price per share.
-fun PriceWeightedIndex : Class ;
-fun PriceWeightedIndex_Class : SubClass PriceWeightedIndex Index ;
-
--- An activity of paying the amount specified on the 
--- check from funds on deposit.
-fun ProcessingACheck : Class ;
-fun ProcessingACheck_Class : SubClass ProcessingACheck (both AuthorizationOfTransaction ControllingAnAccount) ;
-
-
--- An inflationary indicator published by the U.S. Bureau 
--- of Labor Statistics to evaluate wholesale price levels in the economy.
-fun ProducerPriceIndex : Class ;
-fun ProducerPriceIndex_Class : SubClass ProducerPriceIndex InflationIndex ;
-
--- An option contract that gives the holder the 
--- right to sell a certain quantity of an underlying security to the writer 
--- of the option, at a specified price (strike price) up to a specified date 
--- (expiration date).
-fun PutOption : Class ;
-fun PutOption_Class : SubClass PutOption Option ;
-
--- Land, including all the natural resources and permanent buildings on it.
-fun RealEstate : Class ;
-fun RealEstate_Class : SubClass RealEstate (both CorpuscularObject (both FinancialAsset Region)) ;
-
-
--- A written acknowledgment that a specified article, 
--- sum of money, or shipment of merchandise has been received.
-fun Receipt : Ind FinancialInstrument ;
-
-
--- Paying off an existing loan with the proceeds from a new loan, using 
--- the same property as collateral.
-fun Refinancing : Class ;
-fun Refinancing_Class : SubClass Refinancing FinancialTransaction ;
-
--- A bond issued with the name of the owner printed on the 
--- face of the certificate. It can be transferred to another individual only with the 
--- owner's endorsement.
-fun RegisteredBond : Class ;
-fun RegisteredBond_Class : SubClass RegisteredBond Bond ;
-
--- Securities, usually issued in private placements, that 
--- have limited transferability.
-fun RestrictedStock : Class ;
-fun RestrictedStock_Class : SubClass RestrictedStock Stock ;
-
--- A class of attributes which describe the degree of risk 
--- of a particular investment.
-fun RiskAttribute : Class ;
-fun RiskAttribute_Class : SubClass RiskAttribute RelationalAttribute ;
-
--- A tax_free reinvestment of a distribution from a 
--- qualified retirement plan into an IRA or other qualified plan within 60 days. 
--- Also called IRA rollover. Or more generally, a movement of funds from one investment 
--- to another.
-fun Rollover : Class ;
-fun Rollover_Class : SubClass Rollover FinancialTransaction ;
-
--- An individual retirement account in which a person 
--- can set aside after_tax income up to a specified amount each year. Earnings on the 
--- account are tax_free, and tax_free withdrawals may be made at retirement age.
-fun RothIRAAccount : Class ;
-fun RothIRAAccount_Class : SubClass RothIRAAccount IndividualRetirementAccount ;
-
-fun SARSEPPlan : Class ;
-fun SARSEPPlan_Class : SubClass SARSEPPlan DefinedContributionPlan ;
--- An account in a bank on which interest is usually paid and from 
--- which withdrawals can be made usually only by presentation of a passbook or by written authorization 
--- on a prescribed form.
-fun SavingsAccount : Class ;
-fun SavingsAccount_Class : SubClass SavingsAccount (both DepositAccount InterestBearingAccount) ;
-
-
--- A federally or state chartered FinancialOrganization 
--- that takes Deposits from individuals, funds Mortgages, and pays Dividends.
-fun SavingsAndLoans : Class ;
-fun SavingsAndLoans_Class : SubClass SavingsAndLoans FinancialOrganization ;
-
--- A defined contribution plan offered by a 
--- corporation to its employees, which allows employees to set aside 
--- tax_deferred income for retirement purposes. The name 401(k) comes from 
--- the IRS section describing the program.
-fun SavingsPlan_401K : Class ;
-fun SavingsPlan_401K_Class : SubClass SavingsPlan_401K DefinedContributionPlan ;
-
--- A retirement plan similar to a 401(k) plan, but 
--- one which is offered by non_profit organizations, such as universities and 
--- some charitable organizations, rather than corporations.
-fun SavingsPlan_403B : Class ;
-fun SavingsPlan_403B_Class : SubClass SavingsPlan_403B DefinedContributionPlan ;
-
--- A simpler alternative to a 401(k) plan available 
--- only to companies with 25 or fewer employees, which gives employees the 
--- opportunity to make contributions to their SEP accounts with pre_tax 
--- dollars and reduce their current year's net income.
-fun SavingsPlan_408K : Class ;
-fun SavingsPlan_408K_Class : SubClass SavingsPlan_408K PensionPlan ;
-
--- Bond backed by collateral, such as a mortgage 
--- or lien, the title to which would be transferred to the bondholders in the 
--- event of default.
-fun SecuredBond : Class ;
-fun SecuredBond_Class : SubClass SecuredBond Bond ;
-
-fun SecuredLoan : Class ;
-fun SecuredLoan_Class : SubClass SecuredLoan Loan ;
--- An investment instrument, other than an insurance policy or 
--- FixedAnnuity insurance policy or fixed annuity issued by a corporation, government, 
--- or other organization which offers evidence of debt or equity.
-fun Security : Class ;
-fun Security_Class : SubClass Security FinancialInstrument ;
-
--- The class of attributes which describe 
--- CommercialServices, such as OpenService and ClosedService.
-fun ServiceAttribute : Class ;
-fun ServiceAttribute_Class : SubClass ServiceAttribute RelationalAttribute ;
-
--- A Contract where an Agent agrees to 
--- perform a service for another Agent (usually for a price).
-fun ServiceContract : Class ; 
-fun ServiceContract_Class : SubClass ServiceContract Contract ;
-
--- Certificate, representing one unit of ownership in a corporation, 
--- MutualFund, or limited partnership.
-fun Share : Class ;
-fun Share_Class : SubClass Share (both CurrencyMeasure Security) ;
-
-
--- Borrowing a security (or commodity futures 
--- contract) from a broker and selling it, with the understanding that it 
--- must later be bought back (hopefully at a lower price) and returned to the 
--- broker. SEC rules allow investors to sell short only on an uptick or a 
--- zero_plus tick, to prevent 'pool operators' from driving down a stock 
--- price through heavy short_selling, then buying the shares for a large 
--- profit.
-fun ShortSale : Class ;
-fun ShortSale_Class : SubClass ShortSale FinancialTransaction ;
-
--- A put or call option by itself, as opposed to 
--- multiple options as used in a spread or straddle.
-fun SingleOption : Class ;
-fun SingleOption_Class : SubClass SingleOption OptionStrategy ;
-
--- A loan whose principal is due in total with a single 
--- payment at maturity.
-fun SinglePaymentLoan : Class ;
-fun SinglePaymentLoan_Class : SubClass SinglePaymentLoan Loan ;
-
--- The purchase of one option and the 
--- simultaneous sale of a related option, such as two options of the same 
--- class but different strike prices and/or expiration dates.
-fun SpreadOption : Class ;
-fun SpreadOption_Class : SubClass SpreadOption OptionStrategy ;
-
--- A class of four Attributes indicating the 
--- status of a FinancialAccount, viz. Active, Locked, New, and Pending.
-fun StatusAttribute : Class ;
-fun StatusAttribute_Class : SubClass StatusAttribute RelationalAttribute ;
-
--- Any index which is intended to gauge upward or downward trends 
--- in stock prices.
-fun StockIndex : Class ;
-fun StockIndex_Class : SubClass StockIndex Index ;
-
--- General term for the organized trading of stocks through 
--- exchanges and over_the_counter.
-fun StockMarket : Class ;
-fun StockMarket_Class : SubClass StockMarket Organization ;
-
--- Any FinancialTransaction which involves 
--- Stock and which occurs in a StockMarket.
-fun StockMarketTransaction : Class ;
-fun StockMarketTransaction_Class : SubClass StockMarketTransaction FinancialTransaction ;
-
--- An option in which the underlier is the 
--- common stock of a corporation, giving the holder the right to buy or 
--- sell its stock, at a specified price, by a specific date.
-fun StockOption : Class ;
-fun StockOption_Class : SubClass StockOption Option ;
-
--- Exchange of the number of shares of stock outstanding 
--- for a larger number.
-fun StockSplit : Class ;
-fun StockSplit_Class : SubClass StockSplit FinancialTransaction ;
-
--- A market order to buy or sell a certain quantity of 
--- a certain security if a specified price (the stopPrice) is reached or passed.
-fun StopOrder : Class ;
-fun StopOrder_Class : SubClass StopOrder FinancialOrder ;
-
--- The purchase or sale of an equal number of puts and 
--- calls, with the same strike price and expiration dates.
-fun Straddle : Class ;
-fun Straddle_Class : SubClass Straddle OptionStrategy ;
-
-fun TaxFreeInvestment : Class ;
-fun TaxFreeInvestment_Class : SubClass TaxFreeInvestment Investment ;
-fun TaxableInvestment : Class ;
-fun TaxableInvestment_Class : SubClass TaxableInvestment Investment ;
--- The instrument, such as a deed, that constitutes evidence 
--- of a legal right of possession or control.
-fun Title : Class ;
-fun Title_Class : SubClass Title FinancialInstrument ;
-
--- Accounts that pay interest, usually at below_market 
--- interest rates, that do not have a specific maturity, and that usually can be withdrawn upon demand
-fun TraditionalSavingsAccount : Class ;
-fun TraditionalSavingsAccount_Class : SubClass TraditionalSavingsAccount SavingsAccount ;
-
--- A negotiable debt obligation issued by the U.S. government and backed 
--- by its full faith and credit, having a maturity of one year or less. Exempt from state and local taxes
-fun TreasuryBill : Class ;
-fun TreasuryBill_Class : SubClass TreasuryBill SavingsAccount ;
-
--- A negotiable, coupon_bearing debt obligation 
--- issued by the U.S. government and backed by its full faith and credit, having 
--- a maturity of more than 7 years. Interest is paid semi_annually. Exempt from 
--- state and local taxes.
-fun TreasuryBond : Class ;
-fun TreasuryBond_Class : SubClass TreasuryBond Bond ;
-
-fun UnsecuredLoan : Class ;
-fun UnsecuredLoan_Class : SubClass UnsecuredLoan Loan ;
--- To change data in a file or database
-fun Update : Class ;
-fun Update_Class : SubClass Update (both ContentDevelopment FinancialTransaction) ;
-
-
--- A stock market transaction (or sometimes, a quote) 
--- at a price higher than the preceding one for the same security.
-fun Uptick : Class ;
-fun Uptick_Class : SubClass Uptick StockMarketTransaction ;
-
--- An activity of using a financial account
-fun UsingAnAccount : Class ;
-fun UsingAnAccount_Class : SubClass UsingAnAccount FinancialTransaction ;
-
--- A class of valid BankCards
-fun ValidCard : Class ;
-fun ValidCard_Class : SubClass ValidCard BankCard ;
-
--- When the shares in a company are considered attractive because 
--- the company is undervalue, usually because it has a low P/E ratio.
-fun ValueStock : Class ;
-fun ValueStock_Class : SubClass ValueStock Stock ;
-
--- An investment vehicle offered by an insurance company that 
--- does not guarantee a payment amount but does have the potential for greater returns than 
--- a FixedAnnuity.
-fun VariableAnnuity : Class ;
-fun VariableAnnuity_Class : SubClass VariableAnnuity Annuity ;
-
--- A subclass of AuthorizationOfTransaction 
--- where an ATM machine checks the code of the BankCard inserted to this machine.
-fun VerifyingCardCode : Class ;
-fun VerifyingCardCode_Class : SubClass VerifyingCardCode AuthorizationOfTransaction ;
-
-fun VisaCard : Class ;
-fun VisaCard_Class : SubClass VisaCard CreditCard ;
--- An activity of money being transferred from a customer's 
--- account at a financial institution.
-fun Withdrawal : Class ;
-fun Withdrawal_Class : SubClass Withdrawal FinancialTransaction ;
-
--- A class of attributes which describe the degree to which 
--- accounts are profitable.
-fun YieldAttribute : Class ;
-fun YieldAttribute_Class : SubClass YieldAttribute RelationalAttribute ;
-
--- A bond in which no periodic coupon is paid over the 
--- life of the contract. Instead, both the principal and the interest are paid at the 
--- maturity date.
-fun ZeroCouponBond : Class ;
-fun ZeroCouponBond_Class : SubClass ZeroCouponBond Bond ;
-
--- (accountAt ?Account ?Bank) means that ?Account is a 
--- FinancialAccount opened in the FinancialOrganization ?Bank.
-fun accountAt : El FinancialAccount -> El FinancialOrganization -> Formula ;
-
-
--- (accountHolder ?Account ?Agent) means that ?Agent 
--- is the account holder of the FinancialAccount ?Account.
-fun accountHolder : El FinancialAccount -> El CognitiveAgent -> Formula ;
-
-
-fun accountNumber : El FinancialAccount -> El PositiveInteger -> Formula ;
-
--- (accountStatus ?Account ?Status) holds if 
--- ?Status describes the status of the account, such as Active, Locked, 
--- New or Pending.
-fun accountStatus : El FinancialAccount -> El StatusAttribute -> Formula ;
-
-
--- The accumulated coupon interest, paid to the seller of a 
--- bond by the buyer unless the bond is in default.
-fun accruedInterest : El Bond -> El Interest -> Formula ;
-
-
-fun administrator : El FinancialAccount -> El Position -> Formula ;
-
--- (administratorStatus ?Administrator ?Status) 
--- holds is ?Status describes the status of the administrator.
-fun administratorStatus : El Position -> El StatusAttribute -> Formula ;
-
-
--- An amount (usually income) after taxes 
--- have been subtracted.
-fun afterTaxIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
-
-
--- (agreementActive ?Agreement ?Date) holds if 
--- ?Agreement is in force at the time specified by ?Date.
-fun agreementActive : El Contract -> El TimePosition -> Formula ;
-
-
--- (agreementMember ?Agreement ?Agent) means that 
--- ?Agent is one of the participants of the Agreement.
-fun agreementMember : El Contract -> El CognitiveAgent -> Formula ;
-
-
--- (agreementPeriod ?Agreement ?Period) holds if 
--- ?Period specifies a Time interval during which ?Agreement is in force.
-fun agreementPeriod : El Contract -> El TimeInterval -> Formula ;
-
-
--- (amountCharged ?Fee ?Amount) means that ?Amount is the amount of 
--- the fee charged.
-fun amountCharged : El ChargingAFee -> El CurrencyMeasure -> Formula ;
-
-
--- (amountDue ?ACCOUNT ?AMOUNT ?DATE) means ?DATE is the 
--- date on which the amount of Money ?AMOUNT of a particular ?ACCOUNT is due and payable
-fun amountDue : El FinancialAccount -> El CurrencyMeasure -> El TimePosition -> Formula ;
-
-
-fun appraisedValue : El Collateral -> El CurrencyMeasure -> Formula ;
-
--- (askPrice ?Obj ?Money ?Agent) means that ?Agent offers to sell 
--- ?Obj for the amount of ?Money.
-fun askPrice : El Object -> El CurrencyMeasure -> El Agent -> Formula ;
-
-
--- A term that describes an option with a strike 
--- price that is equal to the current market price of the underlying stock.
-fun atTheMoney : El Option -> El TimePosition -> Formula ;
-
-
--- (availableBalance ?Account ?Day ?Amount) means 
--- that ?Amount is the balance which is available for withdrawal from the FinancialAccount 
--- ?Account.
-fun availableBalance : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
--- (availableCash ?Account ?Day ?Cash) holds if 
--- ?Cash is a cash amount available for withdrawal from the FinancialAccount 
--- ?Account.
-fun availableCash : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
--- (bankAccount ?Type ?Bank) holds if ?Type is a 
--- type of the financial accounts offered by the bank.
-fun bankAccount: Desc FinancialAccount -> El Bank_FinancialOrganization -> Formula ;
-
-
--- Income before taxes are deducted
-fun beforeTaxIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
-
-
--- A standard by which something can be measured or judged.
-fun benchmark : El Abstract -> El PerformanceMeasure -> Formula ;
-
-
--- (bidPrice ?Obj ?Money ?Agent) means that ?Agent offers to buy 
--- ?Obj for the amount of ?Money.
-fun bidPrice : El Object -> El CurrencyMeasure -> El Agent -> Formula ;
-
-
--- A measure of the quality and safety of a bond, 
--- based on the issuer's financial condition. More specifically, an 
--- evaluation from a rating service indicating the likelihood that a debt 
--- issuer will be able to meet scheduled interest and principal repayments. 
--- Typically, AAA is highest (best), and D is lowest (worst).
-fun bondRating : El Bond -> El FinancialRating -> Formula ;
-
-
--- (borrower ?Loan ?Agent) means that ?Agent is a borrower of the ?Loan
-fun borrower : El Loan -> El CognitiveAgent -> Formula ;
-
-
--- (buyingPowerAmount ?Account ?Day ?Amount) holds 
--- if ?Amount is the buying power amount of the FinancialAccount ?Account on the Day 
--- ?Day.
-fun buyingPowerAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
--- Date, prior to maturity, on which a callable bond 
--- may be redeemed.
-fun callDate : El Bond -> El Day -> Formula ;
-
-
--- (cardAccount ?Card ?Account) means that ?Account is 
--- the FinancialAccount linked to a BankCard ?Card.
-fun cardAccount : El BankCard -> El FinancialAccount -> Formula ;
-
-
--- (cardCode ?Code ?Card) means that ?Code represents 
--- the account number of the BankCard ?Card.
-fun cardCode : El ContentBearingObject -> El BankCard -> Formula ;
-
-
--- (checkAccount ?Check ?Account) means that ?Account 
--- is the FinancialAccount from which the amount specifed on the check is paid.
-fun checkAccount : El Check -> El FinancialAccount -> Formula ;
-
-
-fun checkNumber : El Check -> El PositiveInteger -> Formula;
-
--- (closingPrice ?Stock ?Amount ?Day) means that the closing 
--- price of the Stock ?Stock on the Day ?Day was ?Amount.
-fun closingPrice : El Stock -> El CurrencyMeasure -> El Day -> Formula ;
-
-
--- The total monetary value an employee 
--- receives during a certain time period.
-fun compensationPackage : El Human -> El CurrencyMeasure -> El TimePosition -> Formula ;
-
-
--- (compoundInterest ?Account ?Amount ?Time) means 
--- that ?Amount is the interest which is calculated not only on the initial principal 
--- but also the accumulated interest of prior periods. Compound interest can be 
--- calculated annually, semi_annually, quartely, monthly, or daily.
-fun compoundInterest : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
-
-
-fun confirmationNumber : El FinancialTransaction -> El SymbolicString -> Formula ;
-
--- (couponInterest ?BOND ?INTEREST) means that ?INTEREST is 
--- the periodic interest payment made to bondholders during the life of the ?BOND.
-fun couponInterest : El Bond -> El Interest -> Formula ;
-
-
--- (creditLimit ?ACCOUNT ?AMNT) holds if ?AMNT is the 
--- maximum amount of credit that a bank or other lender will extend to a customer.
-fun creditLimit : El CreditAccount -> El CurrencyMeasure -> Formula ;
-
-
--- (creditRanking ?Agent ?Rating) holds if 
--- ?Rating is a FinancialRating based on financial analysis by a credit 
--- bureau, of one's financial history, specifically as it relates to one's 
--- ability to meet debt obligations. Lenders use this information to decide 
--- whether to approve a loan.
-fun creditRanking : El CognitiveAgent -> El FinancialRating -> Formula ;
-
-
--- (creditsPerPeriod ?Account ?Amount ?Period) 
--- holds if ?Amount is the amount credited to the FinancialAccount ?Account during 
--- the time period ?Period.
-fun creditsPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
-
-
--- (currentAccountBalance ?Account ?Date ?Amount) means that ?Amount is the balance of the FinancialAccount ?Account as of the date 
--- ?Date.
-fun currentAccountBalance : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
--- (currentInterestRate ?Account ?Day ?Rate) 
--- means that ?Rate is the interest rate of the Account on a specific day ?Day.
-fun currentInterestRate : El FinancialAccount -> El Day -> El InterestRate -> Formula ;
-
-
--- A very general relation that exists whenever there
--- is a FinancialTransaction between the two Agents such that the first is
--- the destination of the FinancialTransaction and the second is the
--- agent.
-fun customer : El CognitiveAgent -> El CognitiveAgent -> Formula ;
-
-
--- (customerRepresentative 
--- ?PERSON1 ?PERSON2 ?ORG) means that ?PERSON1 acts as a representative 
--- of Organization ?ORG in a SocialInteraction involving ?PERSON2.
-fun customerRepresentative : El CognitiveAgent -> El CognitiveAgent -> El Organization -> Formula ;
-
-
--- (dailyLimit ?Account ?TransactionType ?Amount) 
--- means that ?Amount is the daily limit of the ?Account for the type of 
--- FinancialTransactions ?TransactionType.
-fun dailyLimit: El FinancialAccount -> Desc FinancialTransaction -> El CurrencyMeasure -> Formula ;
-
-
--- (dateOfStatement ?Statement ?Date) holds if 
--- ?Date is the date when BankStatement was issued.
-fun dateOfStatement : El BankStatement -> El Day -> Formula ;
-
-
--- (dayPhone ?Phone ?Agent) means that ?Phone is a phone 
--- number corresponding to the location where ?Agent can be reached during the day.
-fun dayPhone : El SymbolicString -> El Agent -> Formula ;
-
-
--- The part of the purchase price paid in cash up front, 
--- reducing the amount of the loan or mortgage.
-fun downPayment : El Loan -> El CurrencyMeasure -> Formula ;
-
-
--- Legal date an agreement or document goes into force.
-fun effectiveDate : El Contract -> El Day -> Formula ;
-
-
--- (emailAddress ?Address ?Agent) means that ?Address is 
--- an electronic address of the location where ?Agent can be reached.
-fun emailAddress : El SymbolicString -> El Agent -> Formula ;
-
-
--- An individual's contribution to his/her 
--- own retirement plan, often tax_deferred.
-fun employeeContribution : El Human -> El CurrencyMeasure -> El TimeInterval -> Formula ;
-
-
--- (eveningPhone ?Phone ?Agent) means that ?Phone 
--- is a phone number corresponidng to the location where ?Agent can be reached 
--- during the evening.
-fun eveningPhone : El SymbolicString -> El Agent -> Formula ;
-
-
--- (expirationDate ?Contract ?Date) means that 
--- ?Date is the date on which ?Contract expires.
-fun expirationDate : El Contract -> El Day -> Formula ;
-
-
--- The nominal dollar amount assigned to a security by the issuer. 
--- For an equity security, par is usually a very small amount that bears no relationship to 
--- its market price, except for preferred stock, in which case par is used to calculate dividend 
--- payments. For a debt security, par is the amount repaid to the investor when the bond matures 
--- (usually, corporate bonds have a par value of 1000, municipal bonds 5000, and federal bonds 
--- 10,000).
-fun faceValue : El Collateral -> El CurrencyMeasure -> Formula ;
-
-
-fun finalPrice : El Stock -> El CurrencyMeasure -> Formula ;
-
--- (financialResponseTo ?Response ?Request) means that 
--- ?Response is a FinancialResponse to the FinancialRequest ?Request.
-fun financialResponseTo : El FinancialResponse -> El FinancialRequest -> Formula ;
-
-
--- (fixedInterestRate ?Account ?Rate) holds if 
--- ?Rate is the interest rate that does not change during the entire term of the 
--- account.
-fun fixedInterestRate : El FinancialAccount -> El InterestRate -> Formula ;
-
-
--- A minimum amount that a lender is willing to loan
-fun floorLoan : El Loan -> El CurrencyMeasure -> Formula ;
-
-
--- A call option is in the money if the stock 
--- price is above the strike price. A put option is in the money if the 
--- stock price is below the strike price.
-fun inTheMoney : El Option -> El TimePosition -> Formula ;
-
-
--- (incomeOf ?Agent ?Money ?Period) means that 
--- ?Money is the amount of money or its equivalent received during a period 
--- of time in exchange for labor or services, from the sale of goods or 
--- property, or as profit from financial investments
-fun income : El Human -> El CurrencyMeasure -> El TimeInterval -> Formula ;
-
-
--- (incomeEarned ?Agent ?Money ?Action) means 
--- that ?Agent earned the amount of money ?Money from performing ?Action. Note 
--- that incomeEarned denotes that amount of money made before taxes are 
--- deducted.
-fun incomeEarned : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
-
-
--- The percentage increase in the price of goods and services, 
--- usually annually.
-fun inflationRate : El Inflation -> El RealNumber -> Formula ;
-
-
--- The annually percentage increase 
--- in the price of goods and services for the given Nation.
-fun inflationRateInCountry : El Nation -> El RealNumber -> Formula ;
-
-
--- (insured ?Contract ?Org) means that ?Contract is insured 
--- by the ?Organization.
-fun insured : El Contract -> El Organization -> Formula ;
-
-
--- (interestEarned ?Account ?Interest ?Period) means 
--- that ?Interest is the amount earned on the FinancialAccount ?Account, for the 
--- duration ?Period.
-fun interestEarned : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
-
-
--- (interestRatePerPeriod ?ACCOUNT ?RATE ?TIME) means that ?RATE is the interest 
--- per the period TIME divided by principal amount, expressed as a percentage
-fun interestRatePerPeriod : El FinancialAccount -> El InterestRate -> El TimeInterval -> Formula ;
-
-
--- (issuedBy ?Instrument ?Agent) means that a 
--- FinancialInstrument ?Instrument is produced and offered by ?Agent.
-fun issuedBy : El FinancialInstrument -> El CognitiveAgent -> Formula ;
-
-
--- (lastStatement ?Account ?Statement) means that 
--- ?Statement is the most recent monthly report sent to a debtor or bank depositor.
-fun lastStatement : El FinancialAccount -> El BankStatement -> Formula ;
-
-
--- (lastStatementBalance ?Account ?Amount) 
--- holds if ?Amount is the balance shown on the last statement.
-fun lastStatementBalance : El FinancialAccount -> El CurrencyMeasure -> Formula ;
-
-
--- (lender ?Loan ?Agent) means that ?Agent is a private, public or 
--- institutional entity that put up the funds for the ?Loan.
-fun lender : El Loan -> El CognitiveAgent -> Formula ;
-
-
--- (limitPrice ?Order ?Money) means that ?Money is the limit price 
--- for the limit order ?Order. If ?Order is a buy order, then ?Money specifies the maximum price
--- to be paid. If ?Order is a sell order, then ?Money specifies the minimum price to be paid.
-fun limitPrice : El LimitOrder -> El CurrencyMeasure -> Formula ;
-
-
--- Degree to which accounts can be easily converted to cash.
-fun liquidity : El FinancialAccount -> El LiquidityAttribute -> Formula ;
-
-
-fun listedOn : El Stock -> El Organization -> Formula ;
-
--- (loanFeeAmount ?Loan ?Amount) means that 
--- ?Amount is the fee amount of the Loan ?Loan.
-fun loanFeeAmount : El Loan -> El CurrencyMeasure -> Formula ;
-
-
--- (loanForPurchase ?ACCOUNT ?PRODUCT) means that ?ACCOUNT is a 
--- loan to finance the purchase of ?PRODUCT.
-fun loanForPurchase : El Loan -> El Object -> Formula ;
-
-
-fun loanInterest : El Loan -> El CurrencyMeasure -> Formula ;
-
--- (marginBalanceAmount ?Account ?Day ?Amount) 
--- holds if ?Amount is the margin balance amount of the FinancialAccount ?Account 
--- on the Day ?Day.
-fun marginBalanceAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
-fun marketValueAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
--- The date on which the principal amount of the account 
--- becomes due and payable.
-fun maturityDate : El FinancialAccount -> El Day -> Formula ;
-
-
--- (minimumBalance ?Account ?ActivityType ?Amount) 
--- means that ?Amount is the mimimum amount required by the type of 
--- FinancialTransaction ?ActivityType.
-fun minimumBalance: El FinancialAccount -> Desc FinancialTransaction -> El CurrencyMeasure -> Formula ;
-
-
--- The smallest amount which can be paid on a revolving 
--- charge account to avoid a penalty.
-fun minimumPayment : El LiabilityAccount -> El CurrencyMeasure -> El TimeDuration -> Formula ;
-
-
--- (monthlyIncome ?Agent ?Money) means that 
--- ?Money is the amount of money received during one month period
-fun monthlyIncome : El Human -> El CurrencyMeasure -> Formula ;
-
-
--- The amount due the supplier after commissions 
--- have been deducted.
-fun netAmount : El Investment -> El CurrencyMeasure -> Formula ;
-
-
--- Total assets minus total liabilities of an individual or company.
-fun netWorth : El CognitiveAgent -> El CurrencyMeasure -> El Day -> Formula ;
-
-
--- (optionHolder ?Option ?Agent) means that 
--- ?Agent is the holder of the option.
-fun optionHolder : El Option -> El CognitiveAgent -> Formula ;
-
-
--- (optionSeller ?Option ?Agent) means that 
--- ?Agent is the writer of the option.
-fun optionSeller : El Option -> El CognitiveAgent -> Formula ;
-
-
--- (orderFor ?Order ?Transaction ?Security) means that the content of ?Order 
--- is to realize an instance of ?Transaction where ?Security is the patient of ?Transaction.
-fun orderFor: El FinancialTransaction -> Desc FinancialTransaction -> El Security -> Formula ;
-
-
--- (originalBalance ?ACCOUNT ?BALANCE) means that 
--- ?BALANCE is the balance of the account at the time the account is opened.
-fun originalBalance : El FinancialAccount -> El CurrencyMeasure -> Formula ;
-
-
--- A call option is out of the money if the 
--- stock price is below its strike price. A put option is out of the money 
--- if the stock price is above its strike price.
-fun outOfTheMoney : El Option -> El TimePosition -> Formula ;
-
-
--- The amount by which withdrawals exceed deposits.
-fun overdraft : El FinancialAccount -> El CurrencyMeasure -> El Day -> Formula ;
-
-
--- (paymentsPerPeriod ?Account ?Amount ?Period) 
--- holds if ?Amount is the amount paid on the FinancialAccount ?Account during the 
--- time period ?Period.
-fun paymentsPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
-
-
--- (periodicPayment ?Pay ?Amount ?Period) holds if 
--- ?Pay is one of the periodic payments for the amount ?Amount.
-fun periodicPayment : El FinancialAccount -> El CurrencyMeasure -> El TimeDuration -> Formula ;
-
-
--- (phoneNumber ?Phone ?Agent) holds if ?Phone is 
--- a phone number corresponding to the Telephone ?Phone.
-fun phoneNumber : El SymbolicString -> El Telephone -> Formula ;
-
-
--- (pin ?PIN ?Card) means that ?PIN is a personal identification 
--- number linked to the ?Card.
-fun pin : El SymbolicString -> El BankCard -> Formula ;
-
-
--- The maximum amount of money the Agent can lose by choosing 
--- this type of Investment.
-fun potentialLoss : El CognitiveAgent -> El Investment -> El CurrencyMeasure -> Formula ;
-
-
--- Total price of an option.
-fun premium : El Option -> El CurrencyMeasure -> Formula ;
-
-
--- (price ?Obj ?Money ?Agent) means that ?Agent pays the amount of 
--- money ?Money for ?Obj.
-fun price : El Physical -> El CurrencyMeasure -> El Agent -> Formula ;
-
-
--- The interest rate that commercial banks charge 
--- their most creditworthy borrowers, such as large corporations. The prime rate is 
--- a lagging indicator.
-fun primeInterestRate : El Day -> El InterestRate -> Formula ;
-
-
--- (principalAmount ?ACCOUNT ?BALANCE) means 
--- that ?BALANCE is the amount borrowed, or the part of the amount borrowed 
--- which remains unpaid (excluding interest).
-fun principalAmount : El FinancialAccount -> El CurrencyMeasure -> Formula ;
-
-
--- The positive gain from an investment or business operation after 
--- subtracting for all expenses.
-fun profit : El FinancialTransaction -> El CurrencyMeasure -> Formula ;
-
-
--- (purchasesPerPeriod ?Account ?Amount ?Period) 
--- holds if ?Amount is the amount of purchases added to the FinancialAccount ?Account 
--- during the time period ?Period.
-fun purchasesPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
-
-
--- Relates an instance of Investing to the level of risk associated 
--- with the investment.
-fun riskLevel : El Investment -> El RiskAttribute -> Formula ;
-
-
-fun riskTolerance : El Investor -> El RiskAttribute -> Formula ;
-
--- Assets pledged by a borrower to secure a loan 
--- or other credit, and subject to seizure in the event of FinancialDefault.
-fun securedBy : El FinancialAccount -> El Collateral -> Formula ;
-
-
--- A charge to the customer levied by a FinancialOrganization 
--- for a FinancialTransaction, such as OpeningAnAccount or UsingAnAccount.
-fun serviceFee : El FinancialOrganization -> El FinancialTransaction -> El CurrencyMeasure -> Formula ;
-
-
--- (shareHolder ?Stock ?Agent) means that ?Agent possesses 
--- shares of Stock in a corporation or mutual fund.
-fun shareHolder : El Share -> El CognitiveAgent -> Formula ;
-
-
-fun shareOf : El Share -> El Organization -> Formula ;
-
--- (marketvalueAmount ?Account ?Day ?Amount) holds 
--- if ?Amount is the market value amount of the FinancialAccount ?Account on the Day 
--- ?Day. shortBalanceAmount (shortBalanceAmount ?Account ?Day ?Amount) 
--- holds if ?Amount is the short balance amount of the FinancialAccount ?Account 
--- on the Day ?Day.
-fun shortBalanceAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
-
-
--- (signedBy ?Instrument ?Agent) means that ?Instrument 
--- has been signed by ?Agent.
-fun signedBy : El Certificate -> El CognitiveAgent -> Formula ;
-
-
--- (simpleInterest ?Account ?Amount ?Time) means 
--- that ?Amount is the interest calculated on a principal sum, not compounded on 
--- earned interest, for the duration ?Time.
-fun simpleInterest : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
-
-
-fun splitFor : El StockSplit -> El Integer -> El Integer -> Formula ;
-
--- (statementAccount ?Statement ?Account) means 
--- that ?Account is the account of the BankStatement ?Statement.
-fun statementAccount : El BankStatement -> El FinancialAccount -> Formula ;
-
-
--- (statementInterest ?Statement ?Amount) holds 
--- if ?Amount is the interest amount as shown on the BankStatement ?Statement.
-fun statementInterest : El BankStatement -> El CurrencyMeasure -> Formula ;
-
-
--- (statementPeriod ?Statement ?Period) means that 
--- ?Period is the time period of the BankStatement ?Statement.
-fun statementPeriod : El BankStatement -> El TimeInterval -> Formula ;
-
-
--- A unique symbol assigned to a security. NYSE and 
--- AMEX listed stocks have symbols of three characters or less. NASDAQ_listed 
--- securities have four or five characters.
-fun stockSymbol : El Stock -> El SymbolicString -> Formula ;
-
-
--- The specified price on an option contract at 
--- which the contract may be exercised, whereby a call option buyer can buy 
--- the underlier or a put option buyer can sell the underlier.
-fun strikePrice : El FinancialInstrument -> El CurrencyMeasure -> Formula ;
-
-
--- Income whose taxes can be postponed 
--- until a later date. Examples include IRA, 401(k), Keogh Plan, annuity, 
--- Savings Bond and Employee Stock Ownership Plan.
-fun taxDeferredIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
-
-
--- (underlier ?Option ?Instrument) means that 
--- ?Instrument is a security which is subject to delivery upon exercise of 
--- ?Option.
-fun underlier : El Option -> El FinancialInstrument -> Formula ;
-
-
--- The annual rate of return on an investment, expressed as a 
--- percentage. For bonds and notes, it is the coupon rate divided by the market price.
-fun yield : El Investment -> El FunctionQuantity -> Formula ;
-
-
--- A profit obtained from an investment. yieldLevel Relates a FinancialAccount to the yield level (i.e. the type of profit) 
---which can be expected from the account.
-fun yieldLevel : El FinancialAccount -> El YieldAttribute -> Formula ;
+abstract FinancialOntology = MidLevelOntology ** {
+
+  -- The highest rating given by bond rating agencies
+  fun AAA_Rating : Ind FinancialRating ;
+
+  -- All_or_none order (AON) is a type of option order 
+  -- which requires that the order be executed completely or not at all. An AON 
+  -- order may be either a day order or a GTC order.
+  fun AONOrder : Class ;
+  fun AONOrder_Class : SubClass AONOrder FinancialOrder ;
+
+  -- (Automatic Teller Machine) A banking terminal that 
+  -- accepts deposits and dispenses cash. ATMs are activated by inserting a cash or 
+  -- credit card that contains the user's account number and PIN on a magnetic stripe. 
+  -- The ATM calls up the bank's computers to verify the balance, dispenses the cash 
+  -- and then transmits a completed transaction notice.
+  fun ATMMachine : Class ;
+  fun ATMMachine_Class : SubClass ATMMachine StationaryArtifact ;
+
+  -- A narrow opening in an ATM machine where cards are inserted.
+  fun ATMSlot : Class ;
+  fun ATMSlot_Class : SubClass ATMSlot Hole ;
+
+  -- A unary function that maps a FinancialAsset to the FinancialAccount 
+  -- associated with the Asset.
+  fun AccountFn : El FinancialAsset -> Ind FinancialAccount ;
+
+  fun Active : Ind StatusAttribute ;
+
+  -- An InterestBearingAccount in which 
+  -- the interest rate is adjusted periodically, usually based on a standard 
+  -- market rate outside the control of the bank or savings institution, such 
+  -- as that prevailing on TreasuryBill or the primeInterestRate.
+  fun AdjustableRateAccount : Class ;
+  fun AdjustableRateAccount_Class : SubClass AdjustableRateAccount InterestBearingAccount ;
+
+  fun AmericanExpressCard : Class ;
+  fun AmericanExpressCard_Class : SubClass AmericanExpressCard CreditCard ;
+
+  -- An option that can be exercised at any time 
+  -- prior to its expiration date
+  fun AmericanStyleOption : Ind Option ;
+
+  -- A contract sold by an insurance company designed to provide 
+  -- payments to the holder at specified intervals, usually after retirement. FixedAnnuities 
+  -- guarantee a certain payment amount, while VariableAnnuities do not, but do have the 
+  -- potential for greater returns, but both are relatively safe, low_yielding investments.
+  fun Annuity : Class ;
+  fun Annuity_Class : SubClass Annuity FinancialContract ;
+
+  -- The process of dividing investments among different kinds of 
+  -- assets, such as Stocks, Bonds, RealEstate and cash, to optimize the risk/reward tradeoff based 
+  -- on an individual's or institution's specific situation and goals.
+  fun AssetAllocation : Class ;
+  fun AssetAllocation_Class : SubClass AssetAllocation FinancialTransaction ;
+
+  -- An activity which approves or 
+  -- disapproves a transaction.
+  fun AuthorizationOfTransaction : Class ;
+  fun AuthorizationOfTransaction_Class : SubClass AuthorizationOfTransaction (both ControllingAnAccount (both FinancialService RegulatoryProcess)) ;
+
+  -- Transactions which occur through computer 
+  -- networks and which do not require direct management.
+  fun AutomaticTransaction : Class ;
+  fun AutomaticTransaction_Class : SubClass AutomaticTransaction FinancialTransaction ;
+
+  -- A mid_range rating given by bond rating agencies.
+  fun B_Rating : Ind FinancialRating ;
+
+  -- A long_term loan, often a mortgage, that has 
+  -- one large payment (the balloon payment) due upon maturity. Often done 
+  -- when refinancing or a major cash flow event is anticipated.
+  fun BalloonLoan : Class ;
+  fun BalloonLoan_Class : SubClass BalloonLoan Loan ;
+
+  -- A CreditCard or a DebitCard issued by a 
+  -- FinancialOrganization.
+  fun BankCard : Class ;
+  fun BankCard_Class : SubClass BankCard FinancialInstrument ;
+
+  -- A monthly report sent to a debtor or bank depositor.
+  fun BankStatement : Class ;
+  fun BankStatement_Class : SubClass BankStatement Proposition ;
+
+  -- A bank loan terminating in one year or more.
+  fun BankTermLoan : Class ;
+  fun BankTermLoan_Class : SubClass BankTermLoan Loan ;
+
+  -- An organization, chartered by a state or 
+  -- federal government, which does most or all of the following: receives Deposits, 
+  -- honors FinancialInstruments drawn on them, and pays Interest on them, discounts 
+  -- Notes, makes Loans, and invests in SecuredLoans, collects Checks, Drafts 
+  -- and Notes, certifies depositor's checks, and issues drafts and Cashier's checks.
+  fun Bank_FinancialOrganization : Class ;
+  fun Bank_FinancialOrganization_Class : SubClass Bank_FinancialOrganization FinancialOrganization ;
+
+  -- An adjective describing the opinion that a stock, or 
+  -- a market in general, will decline in price __ a negative or pessimistic outlook.
+  fun Bearish : Class ;
+  fun Bearish_Class : SubClass Bearish InvestmentAttribute ;
+
+  -- Stock with a solid and stable earnings record from a 
+  -- company that either leads or dominates or is a major player in a specific industry.
+  fun BlueChipStock : Class ;
+  fun BlueChipStock_Class : SubClass BlueChipStock Stock ;
+
+  -- A debt instrument issued for a period of more than one year with 
+  -- the purpose of raising capital by borrowing. The Federal government, states, cities, 
+  -- corporations, and many other types of institutions sell bonds. A bond is generally a 
+  -- promise to repay the principal along with interest on a specified maturityDate.
+  fun Bond : Class ;
+  fun Bond_Class : SubClass Bond (both FinancialInstrument Investment) ;
+
+  -- Stock in a short sale.
+  fun BorrowedStock : Class ;
+  fun BorrowedStock_Class : SubClass BorrowedStock Stock ;
+
+  -- Short_term financing which is expected to be paid back relatively 
+  -- quickly, such as by a subsequent longer_term loan.
+  fun BridgeLoan : Class ;
+  fun BridgeLoan_Class : SubClass BridgeLoan Loan ;
+
+  -- An individual or firm which acts as an intermediary between 
+  -- a buyer and seller, usually charging a commisssion.
+  fun Broker : Class ;
+  fun Broker_Class : SubClass Broker CognitiveAgent ;
+
+  -- Money lent to brokers by banks, for financing 
+  -- the underwriting of new issues, financing customer margin accounts, and 
+  -- other purposes.
+  fun BrokerLoan : Class ;
+  fun BrokerLoan_Class : SubClass BrokerLoan Loan ;
+
+  -- A fund that a customer has entrusted to 
+  -- a securities brokerage.
+  fun BrokerageAccount : Ind InvestmentAccount ;
+
+  -- An attribute describing the opinion that a stock, or the 
+  -- market in general, will rise in price __ a positive or optimistic outlook.
+  fun Bullish : Class ;
+  fun Bullish_Class : SubClass Bullish InvestmentAttribute ;
+
+  -- A complex option strategy that involves 
+  -- selling two calls and buying two calls on the same or different markets, 
+  -- with several maturity dates. One of the options has a higher exercise 
+  -- price and the other has a lower exercise price than the other two options. 
+  -- The payoff diagram resembles the shape of a butterfly.
+  fun ButterflySpread : Class ;
+  fun ButterflySpread_Class : SubClass ButterflySpread SpreadOption ;
+
+  -- A mid_range rating given by bond rating agencies.
+  fun C_Rating : Ind FinancialRating ;
+
+  fun Call : Class ;
+  fun Call_Class : SubClass Call FinancialTransaction ;
+
+  -- An option contract that gives the holder the 
+  -- right to buy a certain quantity (usually 100 shares) of an underlying 
+  -- security from the writer of the option, at a specified price (the strike 
+  -- price) up to a specified date (the expiration date).
+  fun CallOption : Class ;
+  fun CallOption_Class : SubClass CallOption Option ;
+
+  -- A bond which the issuer has the right to redeem 
+  -- prior to its maturity date, under certain conditions.
+  fun CallableBond : Class ;
+  fun CallableBond_Class : SubClass CallableBond Bond ;
+
+  -- A loan that must repaid upon the lender's demand.
+  fun CallableLoan : Class ;
+  fun CallableLoan_Class : SubClass CallableLoan Loan ;
+
+  fun CancellingAnOrder : Class ;
+  fun CancellingAnOrder_Class : SubClass CancellingAnOrder FinancialTransaction ;
+
+  -- Circulating paper money
+  fun Cash : Class ;
+  fun Cash_Class : SubClass Cash (both FinancialAsset FinancialInstrument) ;
+
+  -- CDs (certificates of deposit) are bank, credit union or savings 
+  -- and loan instruments that allow the depositor to lock in an interest rate for a specific period of 
+  -- time (e.g. six months, one year, five years). If the money is withdrawn from the CD before the CD 
+  -- matures, there is likely to be an early_withdrawal penalty __ often three month's interest. Generally, 
+  -- the longer the time period of the CD, the higher the interest paid.
+  fun CertificateOfDeposit : Class ;
+  fun CertificateOfDeposit_Class : SubClass CertificateOfDeposit SavingsAccount ;
+
+  -- A FinancialInstrument drawn against deposited funds, 
+  -- to pay a specified amount of money to a specific person upon demand.
+  fun Check : Class ;
+  fun Check_Class : SubClass Check FinancialInstrument ;
+
+  -- A bank account against which the depositor can draw checks
+  fun CheckingAccount : Class ;
+  fun CheckingAccount_Class : SubClass CheckingAccount DepositAccount ;
+
+  -- The attribute which describes services that are 
+  -- shut or closed.
+  fun ClosedService : Ind ServiceAttribute ;
+
+  -- An activity of closing a financial account
+  fun ClosingAnAccount : Class ;
+  fun ClosingAnAccount_Class : SubClass ClosingAnAccount FinancialTransaction ;
+
+  -- Assets pledged by a borrower to secure a loan or other credit, and 
+  -- subject to seizure in the event of FinancialDefault.
+  fun Collateral : Class ;
+  fun Collateral_Class : SubClass Collateral FinancialAsset ;
+
+  -- Securities representing equity, ownership in a 
+  -- Corporation, providing voting rights, and entitling the holder to a share 
+  -- of the company's success through dividends and/or capital appreciation. 
+  -- In the event of liquidation, common stock holders have rights to a 
+  -- company's assets only after bondholders, other debt holders, and 
+  -- PreferredStock holders have been satisfied.
+  fun CommonStock : Class ;
+  fun CommonStock_Class : SubClass CommonStock Stock ;
+
+  -- The replacement of multiple loans with a single loan, often 
+  -- with a lower monthly payment and a longer repayment period.
+  fun ConsolidationLoan : Class ;
+  fun ConsolidationLoan_Class : SubClass ConsolidationLoan Loan ;
+
+  -- An inflationary indicator that measures 
+  -- the change in the cost of a fixed basket of products and services, 
+  -- including housing, electricity, food, and transportation. The CPI is 
+  -- published monthly.
+  fun ConsumerPriceIndex : Class ;
+  fun ConsumerPriceIndex_Class : SubClass ConsumerPriceIndex InflationIndex ;
+
+  -- Attribute that applies to Propositions where 
+  -- something is promised in return, i.e. a reciprocal promise.
+  fun Contract : Class ; --  make subclass with Promise 
+
+  -- An activity of controlling a financial account
+  fun ControllingAnAccount : Class ;
+  fun ControllingAnAccount_Class : SubClass ControllingAnAccount FinancialTransaction ;
+
+  -- A mortgage that is not insured or guaranteed 
+  -- by the government.
+  fun ConventionalMortgage : Class ;
+  fun ConventionalMortgage_Class : SubClass ConventionalMortgage Mortgage ;
+
+  -- Short_term option contracts.
+  fun ConventionalOption : Class ;
+  fun ConventionalOption_Class : SubClass ConventionalOption Option ;
+
+  -- This is the class of accounts held by corporations. This class 
+  -- is disjoint with PersonalAccounts.
+  fun CorporateAccount : Class ;
+  fun CorporateAccount_Class : SubClass CorporateAccount FinancialAccount ;
+
+  -- A bond issued by a corporation. Such bonds usually have 
+  -- a par value of 1,000, are taxable, have a term maturity, are paid for out of a sinking 
+  -- fund accumulated for that purpose, and are traded on major exchanges.
+  fun CorporateBond : Class ;
+  fun CorporateBond_Class : SubClass CorporateBond (both Bond TaxableInvestment) ;
+
+  -- An unregistered, negotiable bond on which interest and principal 
+  -- are payable to the holder, regardless of whom it was originally issued to. The coupons are 
+  -- attached to the bond, and each coupon represents a single interest payment. The holder submits 
+  -- a coupon, usually semi_annually, to the issuer or paying agent to receive payment. Coupon bonds 
+  -- are being phased out in favor of registered bonds.
+  fun CouponBond : Class ;
+  fun CouponBond_Class : SubClass CouponBond Bond ;
+
+  -- Credit extended by a business to a customer
+  fun CreditAccount : Class ;
+  fun CreditAccount_Class : SubClass CreditAccount LiabilityAccount ;
+
+  -- Any card that may be used repeatedly to borrow money 
+  -- or buy products and services on credit. Issued by banks, savings and loans, retail 
+  -- stores, and other businesses.
+  fun CreditCard : Class ;
+  fun CreditCard_Class : SubClass CreditCard BankCard ;
+
+  -- A type of CreditAccount which uses a CreditCard for 
+  -- FinancialTransactions.
+  fun CreditCardAccount : Class ;
+  fun CreditCardAccount_Class : SubClass CreditCardAccount CreditAccount ;
+
+  -- Credit unions are non_profit, member_owned, financial 
+  -- cooperatives. They are operated entirely by and for their members. When you deposit 
+  -- money in a credit union, you become a member of the union because your deposit is 
+  -- considered partial ownership in the credit union. Many large organizations have 
+  -- established credit unions for their employees.
+  fun CreditUnion : Class ;
+  fun CreditUnion_Class : SubClass CreditUnion FinancialOrganization ;
+
+  -- A unary function that maps a FinancialAccount to the 
+  -- currency linked to the account.
+  fun CurrencyFn : El FinancialAccount -> Ind FinancialInstrument ;
+
+  -- The lowest rating given by bond rating agencies.
+  fun D_Rating : Ind FinancialRating ;
+
+  -- A bank loan to a broker for the purchase of securities pending delivery 
+  -- through clearing later the same day.
+  fun DayLoan : Class ;
+  fun DayLoan_Class : SubClass DayLoan Loan ;
+
+  -- A type of option order which instructs the broker 
+  -- to cancel any unfilled portion of the order at the close of trading on the 
+  -- day the order is first entered.
+  fun DayOrder : Class ;
+  fun DayOrder_Class : SubClass DayOrder FinancialOrder ;
+
+  -- A card which allows customers to access their funds 
+  -- immediately, electronically. Unlike a credit card, a debit card does not have 
+  -- any float.
+  fun DebitCard : Class ;
+  fun DebitCard_Class : SubClass DebitCard BankCard ;
+
+  -- DefensiveStocks are stocks of food companies, drug 
+  -- manufacturers and utility companies.
+  fun DefensiveStock : Class ;
+  fun DefensiveStock_Class : SubClass DefensiveStock Stock ;
+
+  -- A company retirement plan, such as 
+  -- a 401(k) or 403(b), in which the employee elects to defer some amount of 
+  -- his/her salary into the plan and bears the investment risk.
+  fun DefinedContributionPlan : Class ;
+  fun DefinedContributionPlan_Class : SubClass DefinedContributionPlan PensionPlan ;
+
+  -- An Activity of money being transferred into a customer's 
+  -- account at a financial institution.
+  fun Deposit : Class ;
+  fun Deposit_Class : SubClass Deposit FinancialTransaction ;
+
+  -- An account where money is deposited for checking, savings or 
+  -- brokerage use.
+  fun DepositAccount : Class ;
+  fun DepositAccount_Class : SubClass DepositAccount FinancialAccount ;
+
+  -- An activity of depositing a check into a 
+  -- FinancialOrganization.
+  fun DepositingACheck : Class ;
+  fun DepositingACheck_Class : SubClass DepositingACheck UsingAnAccount ;
+
+  -- A distribution from qualified pension plan, 401(k)
+  --  plan, or 403(b) plan, that is remitted directly to the trustee, custodian, or 
+  -- issuer of the receiving IRA and is reported to the IRS as a rollover. This can only 
+  -- be done once per year, per account.
+  fun DirectRollover : Class ;
+  fun DirectRollover_Class : SubClass DirectRollover Rollover ;
+
+  fun DiscoverCard : Class ;
+  fun DiscoverCard_Class : SubClass DiscoverCard CreditCard ;
+
+  -- A taxable payment declared by a company's board of directors 
+  -- and given to its shareHolders out of the company's current or retained earnings. 
+  -- Usually quarterly. Usually given as cash, but it can also take the form of Stock or 
+  -- other property.
+  fun Dividend : Class ;
+  fun Dividend_Class : SubClass Dividend Payment ;
+
+  -- A stock market transaction (or sometimes, a quote) 
+  -- at a price lower than the preceding one for the same security.
+  fun Downtick : Class ;
+  fun Downtick_Class : SubClass Downtick StockMarketTransaction ;
+
+  -- An activity of paying by a check.
+  fun DrawingACheck : Class ;
+  fun DrawingACheck_Class : SubClass DrawingACheck UsingAnAccount ;
+
+  -- Data which provide information about or 
+  -- predict the overall health of the economy or the financial markets, 
+  -- examples are inflation, interest rates, employment, etc.
+  fun EconomicIndicator : Class ;
+  fun EconomicIndicator_Class : SubClass EconomicIndicator Proposition ;
+
+  fun Employment : Class ;
+  fun Employment_Class : SubClass Employment (both FinancialContract ServiceContract) ;
+
+  -- A subclass of AuthorizationOfTransaction where 
+  -- a customer enters his/her personal identification number.
+  fun EnteringAPin : Class ;
+  fun EnteringAPin_Class : SubClass EnteringAPin AuthorizationOfTransaction ;
+
+  fun EnteringAPing : Class ;
+  fun EnteringAPing_Class : SubClass EnteringAPing ContentDevelopment ;
+
+  -- An option on shares of an individual common stock.
+  fun EquityOption : Class ;
+  fun EquityOption_Class : SubClass EquityOption Option ;
+
+  -- An option that can be exercised only during 
+  -- a specified period of time just prior to its expiration.
+  fun EuropeanStyleOption : Ind Option ;
+
+  -- A short_term loan which is continually renewed rather than repaid.
+  fun EvergreenLoan : Class ;
+  fun EvergreenLoan_Class : SubClass EvergreenLoan Loan ;
+
+  -- An activity when the owner of the the Option 
+  -- contract invokes his rights. In the case of a call, the option owner buys the 
+  -- underlying stock. In the case of a put, the option owner sells the underlying stock.
+  fun ExerciseAnOption : Ind FinancialTransaction ;
+
+  -- A class of expired BankCards.
+  fun ExpiredCard : Class ;
+  fun ExpiredCard_Class : SubClass ExpiredCard BankCard ;
+
+  -- A subclass of FinancialTransactions from one 
+  -- FinancialOrganization to another.
+  fun ExternalTransfer : Class ;
+  fun ExternalTransfer_Class : SubClass ExternalTransfer FinancialTransaction ;
+
+  -- A government mortgage that is insured by the Federal Housing 
+  -- Administration (FHA).
+  fun FHALoan : Class ;
+  fun FHALoan_Class : SubClass FHALoan Mortgage ;
+
+  -- Fill_or_kill order is a type of option order 
+  -- which requires that the order be executed completely or not at all. A 
+  -- fill_or_kill order is similar to an all_or_none (AON) order. The 
+  -- difference is that if the order cannot be completely executed (i.e., 
+  -- filled in its entirety) as soon as it is announced in the trading crowd, 
+  -- it is to be 'killed' (i.e., cancelled) immediately. Unlike an AON order, 
+  -- a FOK order cannot be used as part of a GTC order.
+  fun FOKOrder : Class ;
+  fun FOKOrder_Class : SubClass FOKOrder FinancialOrder ;
+
+  -- The communication of a printed page between remote locations.
+  fun Fax : Class ;
+  fun Fax_Class : SubClass Fax Communication ;
+
+  -- Fax machines scan a paper form and transmit a coded 
+  -- image over the telephone system. The receiving machine prints a facsimile of 
+  -- the original. A fax machine is made up of a scanner, printer and modem with 
+  -- fax signaling.
+  fun FaxMachine : Class ;
+  fun FaxMachine_Class : SubClass FaxMachine Device ;
+
+  fun FederalHousingAdministration : Class ;
+  fun FederalHousingAdministration_Class : SubClass FederalHousingAdministration Government ;
+
+  -- Execute an order or buy or sell a security 
+  -- or commodity.
+  fun FillingAnOrder : Class ;
+  fun FillingAnOrder_Class : SubClass FillingAnOrder FinancialTransaction ;
+
+  -- A financial agreement between two or more parties
+  fun FinancialContract : Class ;
+
+  -- Failure to make required debt payments on a timely basis 
+  -- or to comply with other conditions of an obligation or agreement.
+  fun FinancialDefault : Class ;
+  fun FinancialDefault_Class : SubClass FinancialDefault FinancialTransaction ;
+
+  -- A request from a client to a broker to buy (buy order) or sell 
+  -- (sell order) a specified amount of a particular security or commodity at a specific 
+  -- price or at the market price.
+  fun FinancialOrder : Class ;
+  fun FinancialOrder_Class : SubClass FinancialOrder ServiceContract ;
+
+  -- The class FinancialOrganization includes, 
+  -- as subclasses, Bank_FinancialOrganization, CreditUnion and SavingsAnLoans.
+  fun FinancialOrganization : Class ;
+  fun FinancialOrganization_Class : SubClass FinancialOrganization Organization ;
+
+  -- The highest rating is usually AAA_Rating, 
+  -- and the lowest is D_Rating.
+  fun FinancialRating : Class ;
+  fun FinancialRating_Class : SubClass FinancialRating RelationalAttribute ;
+
+  -- A request for financial data sent in order
+  -- to get a FinancialResponse.
+  fun FinancialRequest : Class ;
+  fun FinancialRequest_Class : SubClass FinancialRequest FinancialTransaction ;
+
+  -- The response data provided to fulfil a FinancialRequest.
+  fun FinancialResponse : Class ;
+  fun FinancialResponse_Class : SubClass FinancialResponse FinancialTransaction ;
+
+  -- An investment vehicle offered by an insurance company, that 
+  -- guarantees a stream of fixed payments over the life of the annuity. The insurer, not the 
+  -- insured, takes the investment risk.
+  fun FixedAnnuity : Class ;
+  fun FixedAnnuity_Class : SubClass FixedAnnuity Annuity ;
+
+  -- An InterestBearingAccount in which the interest rate does not 
+  -- change during the entire term of the loan.
+  fun FixedRateAccount : Class ;
+  fun FixedRateAccount_Class : SubClass FixedRateAccount InterestBearingAccount ;
+
+  -- Good_'til_cancelled (GTC) order is a type of limit order 
+  -- that remains in effect until it is either executed (filled) or cancelled, as opposed 
+  -- to a day order, which expires if not executed by the end of the trading day. A GTC 
+  -- option order is an order which if not executed will be automatically cancelled at the 
+  -- option's expiration
+  fun GTCOrder : Class ;
+  fun GTCOrder_Class : SubClass GTCOrder FinancialOrder ;
+
+  -- A bond sold by the U.S. government.
+  fun GovernmentBond : Class ;
+  fun GovernmentBond_Class : SubClass GovernmentBond Bond ;
+
+  -- Investment term that is applied to a Stock that is expected 
+  -- to appreciate in value at a high rate, pay big dividends or split.
+  fun GrowthStock : Class ;
+  fun GrowthStock_Class : SubClass GrowthStock Stock ;
+
+  -- An Attribute of FinancialAccounts which can be easily 
+  -- converted to cash.
+  fun HighLiquidity : Ind LiquidityAttribute ;
+
+  -- An Attribute that characterizes investments which are likely 
+  -- to lose their principal.
+  fun HighRisk : Ind RiskAttribute ;
+
+  -- An Attribute that characterizes accounts that are very profitable.
+  fun HighYield : Ind YieldAttribute ;
+
+  -- Immediate or cancel Order is a type of option order 
+  -- which gives the trading crowd one opportunity to take the other side of the 
+  -- trade. After being announced, the order will be either partially or totally 
+  -- filled with any remaining balance immediately cancelled. An IOC order, which 
+  -- can be considered a type of day order, cannot be used as part of a GTC order 
+  -- since it will be cancelled shortly after being entered. The difference between 
+  -- fill_or_kill (FOK) orders and IOC orders is that a IOC order may be partially 
+  -- executed.
+  fun IOCOrder : Class ;
+  fun IOCOrder_Class : SubClass IOCOrder FinancialOrder ;
+
+  -- A benchmark against which financial or economic performance is measured, 
+  -- such as the S&P 500 or the Consumer Price Index.
+  fun Index : Class ;
+  fun Index_Class : SubClass Index PerformanceMeasure ;
+
+  -- A bond whose cash flow is inflation_adjusted, by 
+  -- being linked to the purchasing power of a particular currency.
+  fun IndexBond : Class ;
+  fun IndexBond_Class : SubClass IndexBond Bond ;
+
+  -- An option whose underlying interest is an index. 
+  -- Generally, index options are cash_settled.
+  fun IndexOption : Class ;
+  fun IndexOption_Class : SubClass IndexOption Option ;
+
+  -- A loan in which payments change in response to 
+  -- changes in an index such as the Consumer Price Index.
+  fun IndexedLoan : Class ;
+  fun IndexedLoan_Class : SubClass IndexedLoan Loan ;
+
+  -- A tax_deferred retirement 
+  -- account for an individual that permits individuals to set aside up to 
+  -- 2,000 per year, with earnings tax_deferred until withdrawals begin at age 
+  -- 59 1/2 or later (or earlier, with a 10% penalty). Only those who do not 
+  -- participate in a pension plan at work or who do participate and meet 
+  -- certain income guidelines can make deductible contributions to an IRA. 
+  -- All others can make contributions to an IRA on a non_deductible basis. 
+  -- Such contributions qualify as a deduction against income earned in that 
+  -- year and interest accumulates tax_deferred until the funds are withdrawn.
+  fun IndividualRetirementAccount : Class ;
+  fun IndividualRetirementAccount_Class : SubClass IndividualRetirementAccount (both PensionPlan (both PersonalAccount SavingsAccount)) ;
+
+  -- The overall general upward price movement of 
+  -- goods and services in an economy, usually as measured by the Consumer 
+  -- Price Index and the Producer Price Index.
+  fun Inflation : Class ;
+  fun Inflation_Class : SubClass Inflation EconomicIndicator ;
+
+  fun InflationIndex : Class ;
+  fun InflationIndex_Class : SubClass InflationIndex Index ;
+  -- Money paid for the use of money.
+  fun Interest : Class ;
+  fun Interest_Class : SubClass Interest CurrencyMeasure ;
+
+  -- FinancialAccounts that have a fixed or adjustable interest rate.
+  fun InterestBearingAccount : Class ;
+  fun InterestBearingAccount_Class : SubClass InterestBearingAccount FinancialAccount ;
+
+  -- A non_amortized loan in which interest is 
+  -- due at regular intervals until maturity, when the full principal on the 
+  -- loan is due.
+  fun InterestOnlyLoan : Class ;
+  fun InterestOnlyLoan_Class : SubClass InterestOnlyLoan Loan ;
+
+  -- The usual way of calculating Interest, as a 
+  -- percentage of the sum borrowed.
+  fun InterestRate : Class ;
+  fun InterestRate_Class : SubClass InterestRate (both ConstantQuantity EconomicIndicator) ;
+
+  -- A subclass of FinancialTransactions within 
+  -- one FinancialOrganization.
+  fun InternalTransfer : Class ;
+  fun InternalTransfer_Class : SubClass InternalTransfer FinancialTransaction ;
+
+  -- An activity of commiting money or capital in order to 
+  -- gain a financial return.
+  fun Investing : Class ;
+  fun Investing_Class : SubClass Investing FinancialTransaction ;
+
+  -- An account acquired for future financial return or benefit
+  fun InvestmentAccount : Class ;
+  fun InvestmentAccount_Class : SubClass InvestmentAccount DepositAccount ;
+
+  fun InvestmentAttribute : Class ;
+  fun InvestmentAttribute_Class : SubClass InvestmentAttribute RelationalAttribute ;
+  -- A person who purchases income_producing assets.
+  fun Investor : Class ;
+  fun Investor_Class : SubClass Investor SocialRole ;
+
+  -- An account owned by two or more people, usually sharing a household 
+  -- and expenses. Each co_owner has equal access to the account. Most types of accounts, whether it's 
+  -- basic checking, savings or money market, allow for joint use
+  fun JointAccount : Class ;
+  fun JointAccount_Class : SubClass JointAccount PersonalAccount ;
+
+  -- A high_risk, non_investment_grade bond with a low 
+  -- credit rating, usually BB or lower, as a consequence, it usually has a high 
+  -- yield.
+  fun JunkBond : Class ;
+  fun JunkBond_Class : SubClass JunkBond CorporateBond ;
+
+  -- Calls and puts with an expiration as long as 
+  -- thirty_nine months. Currently, equity LEAPS have two series at any 
+  -- time with a January expiration. For example, in October 2000, LEAPS 
+  -- are available with expirations of January 2002 and January 2003.
+  fun LEAPS : Class ;
+  fun LEAPS_Class : SubClass LEAPS Option ;
+
+  -- A financial obligation, debt, claim, or potential loss
+  fun Liability : Class ;
+  fun Liability_Class : SubClass Liability FinancialContract ;
+
+  -- An account for which a person is liable
+  fun LiabilityAccount : Class ;
+  fun LiabilityAccount_Class : SubClass LiabilityAccount FinancialAccount ;
+
+  -- LimitOrder is an order to a Broker to buy a specified quantity 
+  -- of a Security at or below a specified price, or to sell it at or above a specified limitPrice.
+  fun LimitOrder : Class ;
+  fun LimitOrder_Class : SubClass LimitOrder FinancialOrder ;
+
+  -- The class of events of selling all of a company's assets, 
+  -- paying outstanding debts, and distribution of the remainder to shareholders, and them 
+  -- going out of business.
+  fun Liquidation : Class ;
+  fun Liquidation_Class : SubClass Liquidation FinancialTransaction ;
+
+  -- A class of attributes which describe the degree to 
+  -- which accounts can be easily converted to cash.
+  fun LiquidityAttribute : Class ;
+  fun LiquidityAttribute_Class : SubClass LiquidityAttribute RelationalAttribute ;
+
+  -- An arrangement in which a lender gives money or property to a borrower, 
+  -- and the borrower agrees to return the property or repay the money, usually along with interest, 
+  -- at some future point(s) in time.
+  fun Loan : Class ;
+  fun Loan_Class : SubClass Loan LiabilityAccount ;
+
+  -- A formal offer by a lender making explicit 
+  -- the terms under which it agrees to lend money to a borrower over a certain 
+  -- period of time.
+  fun LoanCommitment : Class ;
+  fun LoanCommitment_Class : SubClass LoanCommitment Contract ;
+
+  fun Locked : Ind StatusAttribute ;
+
+  -- A straddle in which a long position is taken in 
+  -- both a put and a call option
+  fun LongStraddle : Class ;
+  fun LongStraddle_Class : SubClass LongStraddle Straddle ;
+
+  -- An Attribute of FinancialAccounts which cannot be easily 
+  -- converted to cash.
+  fun LowLiquidity : Ind LiquidityAttribute ;
+
+  fun LowRisk : Ind RiskAttribute ;
+
+  -- An Attribute that characterizes accounts that are not very profitable.
+  fun LowYield : Ind YieldAttribute ;
+
+  -- A Market_not_held order is a type of market order 
+  -- which allows the investor to give discretion to the floor broker regarding 
+  -- the price and/or time at which a trade is executed.
+  fun MNHOrder : Class ;
+  fun MNHOrder_Class : SubClass MNHOrder FinancialOrder ;
+
+  -- A Market_on_close order is a type of option order 
+  -- which requires that an order be executed at or near the close of trading on 
+  -- the day the order is entered. A MOC order, which can be considered a type of 
+  -- day order, cannot be used as part of a GTC order
+  fun MOCOrder : Class ;
+  fun MOCOrder_Class : SubClass MOCOrder FinancialOrder ;
+
+  -- One who directs a business or other enterprise.
+  fun Manager : Ind Position ;
+
+  -- An order to buy or sell security at the best prices available.
+  fun MarketOrder : Class ;
+  fun MarketOrder_Class : SubClass MarketOrder FinancialOrder ;
+
+  -- A stock index in which each stock affects the 
+  -- index in proportion to its number of shares outstanding.
+  fun MarketShareWeightedIndex : Class ;
+  fun MarketShareWeightedIndex_Class : SubClass MarketShareWeightedIndex Index ;
+
+  -- A stock index in which each stock 
+  -- affects the index in proportion to its market value. Examples include 
+  -- NASDAQ Composite Index, S&P 500, Wilshire 5000 Equity Index, Hang Seng 
+  -- Index, and EAFE Index.
+  fun MarketValueWeightedIndex : Class ;
+  fun MarketValueWeightedIndex_Class : SubClass MarketValueWeightedIndex Index ;
+
+  fun MasterCard : Class ;
+  fun MasterCard_Class : SubClass MasterCard CreditCard ;
+
+  -- MoneyMarket is for borrowing and lending money for three years 
+  -- or less. The securities in a money market can be U.S. government bonds, TreasuryBills and commercial 
+  -- paper from banks and companies.
+  fun MoneyMarket : Class ;
+  fun MoneyMarket_Class : SubClass MoneyMarket SavingsAccount ;
+
+  -- A loan to finance the purchase of real estate, usually with specified payment 
+  -- periods and interest rates.
+  fun Mortgage : Class ;
+  fun Mortgage_Class : SubClass Mortgage SecuredLoan ;
+
+  -- These are bonds generally bought through a 
+  -- government agency that deals in the real estate market. They are bonds 
+  -- issued by mortgage lenders.
+  fun MortgageBond : Class ;
+  fun MortgageBond_Class : SubClass MortgageBond CorporateBond ;
+
+  -- Bond issued by a state, city, or local government to 
+  -- finance operations or special projects, interest on it is often tax_free.
+  fun MunicipalBond : Class ;
+  fun MunicipalBond_Class : SubClass MunicipalBond (both Bond TaxFreeInvestment) ;
+
+  -- An open_ended fund operated by an investment company which 
+  -- raises money from shareholders and invests in a group of assets, in accordance with a stated 
+  -- set of objectives. Benefits include diversification and professional money management. Shares 
+  -- are issued and redeemed on demand, based on the fund's net asset value which is determined at 
+  -- the end of each trading session.
+  fun MutualFundAccount : Class ;
+  fun MutualFundAccount_Class : SubClass MutualFundAccount InvestmentAccount ;
+
+  -- National Association of Securities Dealers Automated Quotations 
+  -- system.
+  fun NASDAQ : Ind Organization ;
+
+  -- A market_value weighted index of all common stocks 
+  -- listed on NASDAQ.
+  fun NASDAQCompositeIndex : Class ;
+  fun NASDAQCompositeIndex_Class : SubClass NASDAQCompositeIndex Index ;
+
+  -- A not_held order is a type of order which releases 
+  -- normal obligations implied by the other terms of the order. For example, a 
+  -- limit order designated as 'not_held' allows discretion to the floor trader in 
+  -- filling the order when the market trades at the limit price of the order. In 
+  -- this case, there is no obligation to provide the customer with an execution if 
+  -- the market trades through the limit price on the order.
+  fun NHOrder : Class ;
+  fun NHOrder_Class : SubClass NHOrder FinancialOrder ;
+
+  fun New : Ind StatusAttribute ;
+
+  -- Index of 225 leading stocks traded on the Tokyo Stock 
+  -- Exchange.
+  fun NikkeiIndex : Class ;
+  fun NikkeiIndex_Class : SubClass NikkeiIndex Index ;
+
+  -- A legal document that obligates a borrower to repay a loan 
+  -- at a specified interestRate during a specified period of time or on demand
+  fun Note : Class ;
+  fun Note_Class : SubClass Note FinancialInstrument ;
+
+  -- One_cancels_other order (OCO) is a type of option 
+  -- order which treats two or more option orders as a package, whereby the execution 
+  -- of any one of the orders causes all the orders to be reduced by the same amount. 
+  -- For example, the investor would enter an OCO order if he/she wished to buy 
+  -- 10 May 60 calls or 10 June 60 calls or any combination of the two which when 
+  -- summed equaled 10 contracts. An OCO order may be either a day order or a GTC order
+  fun OCOOrder : Class ;
+  fun OCOOrder_Class : SubClass OCOOrder FinancialOrder ;
+
+  -- The attribute which describes services that 
+  -- are ready to transact business.
+  fun OpenService : Ind ServiceAttribute ;
+
+  -- An activity of opening a financial account
+  fun OpeningAnAccount : Class ;
+  fun OpeningAnAccount_Class : SubClass OpeningAnAccount FinancialTransaction ;
+
+  -- An option is a contract to buy or sell 100 shares 
+  -- of a stock at a fixed price (the strike price) on or before a fixed date.
+  fun Option : Class ;
+  fun Option_Class : SubClass Option FinancialContract ;
+
+  -- A collection of buying/selling options 
+  -- whose purpose is to result in an optimal profit for the investor.
+  fun OptionStrategy : Class ;
+  fun OptionStrategy_Class : SubClass OptionStrategy FinancialTransaction ;
+
+  -- A check issued to an employee in payment of salary or wages
+  fun PayCheck : Class ;
+  fun PayCheck_Class : SubClass PayCheck Check ;
+
+  -- The partial or complete discharge of an obligation by 
+  -- its settlement in the form of the transfer of funds, assets, or services equal 
+  -- to the monetary value of part or all of the debtor's obligation.
+  fun Payment : Class ;
+  fun Payment_Class : SubClass Payment FinancialTransaction ;
+
+  -- A fee charged as a penalty.
+  fun Penalty : Class ;
+  fun Penalty_Class : SubClass Penalty ChargingAFee ;
+
+  fun Pending : Ind StatusAttribute ;
+
+  -- Extremely speculative, high_risk Stock, usually 
+  -- with a price of less than 5 dollars per share. In the U.S., nearly all 
+  -- are traded on the over_the_counter bulletin board.
+  fun PennyStock : Class ;
+  fun PennyStock_Class : SubClass PennyStock Stock ;
+
+  -- A bond issued by an insurance company to 
+  -- guarantee satisfactory completion of a project by a contractor.
+  fun PerformanceBond : Class ;
+  fun PerformanceBond_Class : SubClass PerformanceBond Bond ;
+
+  fun PerformanceMeasure : Class ;
+  fun PerformanceMeasure_Class : SubClass PerformanceMeasure PhysicalQuantity ;
+
+  -- This is the class of personal accounts, as opposed to 
+  -- CorporateAccounts.
+  fun PersonalAccount : Class ;
+  fun PersonalAccount_Class : SubClass PersonalAccount FinancialAccount ;
+
+  -- Two lenders participating in the same loan.
+  fun PiggybankLoan : Class ;
+  fun PiggybankLoan_Class : SubClass PiggybankLoan Loan ;
+
+  fun PlacingAnOrder : Class ;
+  fun PlacingAnOrder_Class : SubClass PlacingAnOrder FinancialTransaction ;
+
+  -- CapitalStock which provides a specific Dividend 
+  -- that is paid before any dividends are paid to common stock holders, and which takes 
+  -- precedence over common stock in the event of a liquidation. Usually does not carry 
+  -- voting rights.
+  fun PreferredStock : Class ;
+  fun PreferredStock_Class : SubClass PreferredStock Stock ;
+
+  -- Prepayment is the payment of all or part of a debt 
+  -- prior to its due date.
+  fun Prepayment : Class ;
+  fun Prepayment_Class : SubClass Prepayment Payment ;
+
+  -- A stock index in which each stock affects the index 
+  -- in proportion to its price per share.
+  fun PriceWeightedIndex : Class ;
+  fun PriceWeightedIndex_Class : SubClass PriceWeightedIndex Index ;
+
+  -- An activity of paying the amount specified on the 
+  -- check from funds on deposit.
+  fun ProcessingACheck : Class ;
+  fun ProcessingACheck_Class : SubClass ProcessingACheck (both AuthorizationOfTransaction ControllingAnAccount) ;
+
+  -- An inflationary indicator published by the U.S. Bureau 
+  -- of Labor Statistics to evaluate wholesale price levels in the economy.
+  fun ProducerPriceIndex : Class ;
+  fun ProducerPriceIndex_Class : SubClass ProducerPriceIndex InflationIndex ;
+
+  -- An option contract that gives the holder the 
+  -- right to sell a certain quantity of an underlying security to the writer 
+  -- of the option, at a specified price (strike price) up to a specified date 
+  -- (expiration date).
+  fun PutOption : Class ;
+  fun PutOption_Class : SubClass PutOption Option ;
+
+  -- Land, including all the natural resources and permanent buildings on it.
+  fun RealEstate : Class ;
+  fun RealEstate_Class : SubClass RealEstate (both CorpuscularObject (both FinancialAsset Region)) ;
+
+  -- A written acknowledgment that a specified article, 
+  -- sum of money, or shipment of merchandise has been received.
+  fun Receipt : Ind FinancialInstrument ;
+
+  -- Paying off an existing loan with the proceeds from a new loan, using 
+  -- the same property as collateral.
+  fun Refinancing : Class ;
+  fun Refinancing_Class : SubClass Refinancing FinancialTransaction ;
+
+  -- A bond issued with the name of the owner printed on the 
+  -- face of the certificate. It can be transferred to another individual only with the 
+  -- owner's endorsement.
+  fun RegisteredBond : Class ;
+  fun RegisteredBond_Class : SubClass RegisteredBond Bond ;
+
+  -- Securities, usually issued in private placements, that 
+  -- have limited transferability.
+  fun RestrictedStock : Class ;
+  fun RestrictedStock_Class : SubClass RestrictedStock Stock ;
+
+  -- A class of attributes which describe the degree of risk 
+  -- of a particular investment.
+  fun RiskAttribute : Class ;
+  fun RiskAttribute_Class : SubClass RiskAttribute RelationalAttribute ;
+
+  -- A tax_free reinvestment of a distribution from a 
+  -- qualified retirement plan into an IRA or other qualified plan within 60 days. 
+  -- Also called IRA rollover. Or more generally, a movement of funds from one investment 
+  -- to another.
+  fun Rollover : Class ;
+  fun Rollover_Class : SubClass Rollover FinancialTransaction ;
+
+  -- An individual retirement account in which a person 
+  -- can set aside after_tax income up to a specified amount each year. Earnings on the 
+  -- account are tax_free, and tax_free withdrawals may be made at retirement age.
+  fun RothIRAAccount : Class ;
+  fun RothIRAAccount_Class : SubClass RothIRAAccount IndividualRetirementAccount ;
+
+  fun SARSEPPlan : Class ;
+  fun SARSEPPlan_Class : SubClass SARSEPPlan DefinedContributionPlan ;
+
+  -- An account in a bank on which interest is usually paid and from 
+  -- which withdrawals can be made usually only by presentation of a passbook or by written authorization 
+  -- on a prescribed form.
+  fun SavingsAccount : Class ;
+  fun SavingsAccount_Class : SubClass SavingsAccount (both DepositAccount InterestBearingAccount) ;
+
+  -- A federally or state chartered FinancialOrganization 
+  -- that takes Deposits from individuals, funds Mortgages, and pays Dividends.
+  fun SavingsAndLoans : Class ;
+  fun SavingsAndLoans_Class : SubClass SavingsAndLoans FinancialOrganization ;
+
+  -- A defined contribution plan offered by a 
+  -- corporation to its employees, which allows employees to set aside 
+  -- tax_deferred income for retirement purposes. The name 401(k) comes from 
+  -- the IRS section describing the program.
+  fun SavingsPlan_401K : Class ;
+  fun SavingsPlan_401K_Class : SubClass SavingsPlan_401K DefinedContributionPlan ;
+
+  -- A retirement plan similar to a 401(k) plan, but 
+  -- one which is offered by non_profit organizations, such as universities and 
+  -- some charitable organizations, rather than corporations.
+  fun SavingsPlan_403B : Class ;
+  fun SavingsPlan_403B_Class : SubClass SavingsPlan_403B DefinedContributionPlan ;
+
+  -- A simpler alternative to a 401(k) plan available 
+  -- only to companies with 25 or fewer employees, which gives employees the 
+  -- opportunity to make contributions to their SEP accounts with pre_tax 
+  -- dollars and reduce their current year's net income.
+  fun SavingsPlan_408K : Class ;
+  fun SavingsPlan_408K_Class : SubClass SavingsPlan_408K PensionPlan ;
+
+  -- Bond backed by collateral, such as a mortgage 
+  -- or lien, the title to which would be transferred to the bondholders in the 
+  -- event of default.
+  fun SecuredBond : Class ;
+  fun SecuredBond_Class : SubClass SecuredBond Bond ;
+
+  fun SecuredLoan : Class ;
+  fun SecuredLoan_Class : SubClass SecuredLoan Loan ;
+
+  -- An investment instrument, other than an insurance policy or 
+  -- FixedAnnuity insurance policy or fixed annuity issued by a corporation, government, 
+  -- or other organization which offers evidence of debt or equity.
+  fun Security : Class ;
+  fun Security_Class : SubClass Security FinancialInstrument ;
+
+  -- The class of attributes which describe 
+  -- CommercialServices, such as OpenService and ClosedService.
+  fun ServiceAttribute : Class ;
+  fun ServiceAttribute_Class : SubClass ServiceAttribute RelationalAttribute ;
+
+  -- A Contract where an Agent agrees to 
+  -- perform a service for another Agent (usually for a price).
+  fun ServiceContract : Class ; 
+  fun ServiceContract_Class : SubClass ServiceContract Contract ;
+
+  -- Certificate, representing one unit of ownership in a corporation, 
+  -- MutualFund, or limited partnership.
+  fun Share : Class ;
+  fun Share_Class : SubClass Share (both CurrencyMeasure Security) ;
+
+  -- Borrowing a security (or commodity futures 
+  -- contract) from a broker and selling it, with the understanding that it 
+  -- must later be bought back (hopefully at a lower price) and returned to the 
+  -- broker. SEC rules allow investors to sell short only on an uptick or a 
+  -- zero_plus tick, to prevent 'pool operators' from driving down a stock 
+  -- price through heavy short_selling, then buying the shares for a large 
+  -- profit.
+  fun ShortSale : Class ;
+  fun ShortSale_Class : SubClass ShortSale FinancialTransaction ;
+
+  -- A put or call option by itself, as opposed to 
+  -- multiple options as used in a spread or straddle.
+  fun SingleOption : Class ;
+  fun SingleOption_Class : SubClass SingleOption OptionStrategy ;
+
+  -- A loan whose principal is due in total with a single 
+  -- payment at maturity.
+  fun SinglePaymentLoan : Class ;
+  fun SinglePaymentLoan_Class : SubClass SinglePaymentLoan Loan ;
+
+  -- The purchase of one option and the 
+  -- simultaneous sale of a related option, such as two options of the same 
+  -- class but different strike prices and/or expiration dates.
+  fun SpreadOption : Class ;
+  fun SpreadOption_Class : SubClass SpreadOption OptionStrategy ;
+
+  -- A class of four Attributes indicating the 
+  -- status of a FinancialAccount, viz. Active, Locked, New, and Pending.
+  fun StatusAttribute : Class ;
+  fun StatusAttribute_Class : SubClass StatusAttribute RelationalAttribute ;
+
+  -- Any index which is intended to gauge upward or downward trends 
+  -- in stock prices.
+  fun StockIndex : Class ;
+  fun StockIndex_Class : SubClass StockIndex Index ;
+
+  -- General term for the organized trading of stocks through 
+  -- exchanges and over_the_counter.
+  fun StockMarket : Class ;
+  fun StockMarket_Class : SubClass StockMarket Organization ;
+
+  -- Any FinancialTransaction which involves 
+  -- Stock and which occurs in a StockMarket.
+  fun StockMarketTransaction : Class ;
+  fun StockMarketTransaction_Class : SubClass StockMarketTransaction FinancialTransaction ;
+
+  -- An option in which the underlier is the 
+  -- common stock of a corporation, giving the holder the right to buy or 
+  -- sell its stock, at a specified price, by a specific date.
+  fun StockOption : Class ;
+  fun StockOption_Class : SubClass StockOption Option ;
+
+  -- Exchange of the number of shares of stock outstanding 
+  -- for a larger number.
+  fun StockSplit : Class ;
+  fun StockSplit_Class : SubClass StockSplit FinancialTransaction ;
+
+  -- A market order to buy or sell a certain quantity of 
+  -- a certain security if a specified price (the stopPrice) is reached or passed.
+  fun StopOrder : Class ;
+  fun StopOrder_Class : SubClass StopOrder FinancialOrder ;
+
+  -- The purchase or sale of an equal number of puts and 
+  -- calls, with the same strike price and expiration dates.
+  fun Straddle : Class ;
+  fun Straddle_Class : SubClass Straddle OptionStrategy ;
+
+  fun TaxFreeInvestment : Class ;
+  fun TaxFreeInvestment_Class : SubClass TaxFreeInvestment Investment ;
+
+  fun TaxableInvestment : Class ;
+  fun TaxableInvestment_Class : SubClass TaxableInvestment Investment ;
+
+  -- The instrument, such as a deed, that constitutes evidence 
+  -- of a legal right of possession or control.
+  fun Title : Class ;
+  fun Title_Class : SubClass Title FinancialInstrument ;
+
+  -- Accounts that pay interest, usually at below_market 
+  -- interest rates, that do not have a specific maturity, and that usually can be withdrawn upon demand
+  fun TraditionalSavingsAccount : Class ;
+  fun TraditionalSavingsAccount_Class : SubClass TraditionalSavingsAccount SavingsAccount ;
+
+  -- A negotiable debt obligation issued by the U.S. government and backed 
+  -- by its full faith and credit, having a maturity of one year or less. Exempt from state and local taxes
+  fun TreasuryBill : Class ;
+  fun TreasuryBill_Class : SubClass TreasuryBill SavingsAccount ;
+
+  -- A negotiable, coupon_bearing debt obligation 
+  -- issued by the U.S. government and backed by its full faith and credit, having 
+  -- a maturity of more than 7 years. Interest is paid semi_annually. Exempt from 
+  -- state and local taxes.
+  fun TreasuryBond : Class ;
+  fun TreasuryBond_Class : SubClass TreasuryBond Bond ;
+
+  fun UnsecuredLoan : Class ;
+  fun UnsecuredLoan_Class : SubClass UnsecuredLoan Loan ;
+
+  -- To change data in a file or database
+  fun Update : Class ;
+  fun Update_Class : SubClass Update (both ContentDevelopment FinancialTransaction) ;
+
+  -- A stock market transaction (or sometimes, a quote) 
+  -- at a price higher than the preceding one for the same security.
+  fun Uptick : Class ;
+  fun Uptick_Class : SubClass Uptick StockMarketTransaction ;
+
+  -- An activity of using a financial account
+  fun UsingAnAccount : Class ;
+  fun UsingAnAccount_Class : SubClass UsingAnAccount FinancialTransaction ;
+
+  -- A class of valid BankCards
+  fun ValidCard : Class ;
+  fun ValidCard_Class : SubClass ValidCard BankCard ;
+
+  -- When the shares in a company are considered attractive because 
+  -- the company is undervalue, usually because it has a low P/E ratio.
+  fun ValueStock : Class ;
+  fun ValueStock_Class : SubClass ValueStock Stock ;
+
+  -- An investment vehicle offered by an insurance company that 
+  -- does not guarantee a payment amount but does have the potential for greater returns than 
+  -- a FixedAnnuity.
+  fun VariableAnnuity : Class ;
+  fun VariableAnnuity_Class : SubClass VariableAnnuity Annuity ;
+
+  -- A subclass of AuthorizationOfTransaction 
+  -- where an ATM machine checks the code of the BankCard inserted to this machine.
+  fun VerifyingCardCode : Class ;
+  fun VerifyingCardCode_Class : SubClass VerifyingCardCode AuthorizationOfTransaction ;
+
+  fun VisaCard : Class ;
+  fun VisaCard_Class : SubClass VisaCard CreditCard ;
+
+  -- An activity of money being transferred from a customer's 
+  -- account at a financial institution.
+  fun Withdrawal : Class ;
+  fun Withdrawal_Class : SubClass Withdrawal FinancialTransaction ;
+
+  -- A class of attributes which describe the degree to which 
+  -- accounts are profitable.
+  fun YieldAttribute : Class ;
+  fun YieldAttribute_Class : SubClass YieldAttribute RelationalAttribute ;
+
+  -- A bond in which no periodic coupon is paid over the 
+  -- life of the contract. Instead, both the principal and the interest are paid at the 
+  -- maturity date.
+  fun ZeroCouponBond : Class ;
+  fun ZeroCouponBond_Class : SubClass ZeroCouponBond Bond ;
+
+  -- (accountAt ?Account ?Bank) means that ?Account is a 
+  -- FinancialAccount opened in the FinancialOrganization ?Bank.
+  fun accountAt : El FinancialAccount -> El FinancialOrganization -> Formula ;
+
+  -- (accountHolder ?Account ?Agent) means that ?Agent 
+  -- is the account holder of the FinancialAccount ?Account.
+  fun accountHolder : El FinancialAccount -> El CognitiveAgent -> Formula ;
+
+  fun accountNumber : El FinancialAccount -> El PositiveInteger -> Formula ;
+
+  -- (accountStatus ?Account ?Status) holds if 
+  -- ?Status describes the status of the account, such as Active, Locked, 
+  -- New or Pending.
+  fun accountStatus : El FinancialAccount -> El StatusAttribute -> Formula ;
+
+  -- The accumulated coupon interest, paid to the seller of a 
+  -- bond by the buyer unless the bond is in default.
+  fun accruedInterest : El Bond -> El Interest -> Formula ;
+
+  fun administrator : El FinancialAccount -> El Position -> Formula ;
+
+  -- (administratorStatus ?Administrator ?Status) 
+  -- holds is ?Status describes the status of the administrator.
+  fun administratorStatus : El Position -> El StatusAttribute -> Formula ;
+
+  -- An amount (usually income) after taxes 
+  -- have been subtracted.
+  fun afterTaxIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
+
+  -- (agreementActive ?Agreement ?Date) holds if 
+  -- ?Agreement is in force at the time specified by ?Date.
+  fun agreementActive : El Contract -> El TimePosition -> Formula ;
+
+  -- (agreementMember ?Agreement ?Agent) means that 
+  -- ?Agent is one of the participants of the Agreement.
+  fun agreementMember : El Contract -> El CognitiveAgent -> Formula ;
+
+  -- (agreementPeriod ?Agreement ?Period) holds if 
+  -- ?Period specifies a Time interval during which ?Agreement is in force.
+  fun agreementPeriod : El Contract -> El TimeInterval -> Formula ;
+
+  -- (amountCharged ?Fee ?Amount) means that ?Amount is the amount of 
+  -- the fee charged.
+  fun amountCharged : El ChargingAFee -> El CurrencyMeasure -> Formula ;
+
+  -- (amountDue ?ACCOUNT ?AMOUNT ?DATE) means ?DATE is the 
+  -- date on which the amount of Money ?AMOUNT of a particular ?ACCOUNT is due and payable
+  fun amountDue : El FinancialAccount -> El CurrencyMeasure -> El TimePosition -> Formula ;
+
+  fun appraisedValue : El Collateral -> El CurrencyMeasure -> Formula ;
+
+  -- (askPrice ?Obj ?Money ?Agent) means that ?Agent offers to sell 
+  -- ?Obj for the amount of ?Money.
+  fun askPrice : El Object -> El CurrencyMeasure -> El Agent -> Formula ;
+
+  -- A term that describes an option with a strike 
+  -- price that is equal to the current market price of the underlying stock.
+  fun atTheMoney : El Option -> El TimePosition -> Formula ;
+
+  -- (availableBalance ?Account ?Day ?Amount) means that ?Amount is 
+  -- the balance which is available for withdrawal from the FinancialAccount ?Account.
+  fun availableBalance : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- (availableCash ?Account ?Day ?Cash) holds if ?Cash is 
+  -- a cash amount available for withdrawal from the FinancialAccount ?Account.
+  fun availableCash : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- (bankAccount ?Type ?Bank) holds if ?Type is a 
+  -- type of the financial accounts offered by the bank.
+  fun bankAccount: Desc FinancialAccount -> El Bank_FinancialOrganization -> Formula ;
+
+  -- Income before taxes are deducted
+  fun beforeTaxIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
+
+  -- A standard by which something can be measured or judged.
+  fun benchmark : El Abstract -> El PerformanceMeasure -> Formula ;
+
+  -- (bidPrice ?Obj ?Money ?Agent) means that ?Agent offers to buy ?Obj for the amount of ?Money.
+  fun bidPrice : El Object -> El CurrencyMeasure -> El Agent -> Formula ;
+
+  -- A measure of the quality and safety of a bond,
+  -- based on the issuer's financial condition. More specifically, an
+  -- evaluation from a rating service indicating the likelihood that a debt
+  -- issuer will be able to meet scheduled interest and principal repayments.
+  -- Typically, AAA is highest (best), and D is lowest (worst).
+  fun bondRating : El Bond -> El FinancialRating -> Formula ;
+
+  -- (borrower ?Loan ?Agent) means that ?Agent is a borrower of the ?Loan
+  fun borrower : El Loan -> El CognitiveAgent -> Formula ;
+
+  -- (buyingPowerAmount ?Account ?Day ?Amount) holds if ?Amount is
+  -- the buying power amount of the FinancialAccount ?Account on the Day ?Day.
+  fun buyingPowerAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- Date, prior to maturity, on which a callable bond may be redeemed.
+  fun callDate : El Bond -> El Day -> Formula ;
+
+  -- (cardAccount ?Card ?Account) means that ?Account is 
+  -- the FinancialAccount linked to a BankCard ?Card.
+  fun cardAccount : El BankCard -> El FinancialAccount -> Formula ;
+
+  -- (cardCode ?Code ?Card) means that ?Code represents 
+  -- the account number of the BankCard ?Card.
+  fun cardCode : El ContentBearingObject -> El BankCard -> Formula ;
+
+  -- (checkAccount ?Check ?Account) means that ?Account 
+  -- is the FinancialAccount from which the amount specifed on the check is paid.
+  fun checkAccount : El Check -> El FinancialAccount -> Formula ;
+
+  fun checkNumber : El Check -> El PositiveInteger -> Formula;
+
+  -- (closingPrice ?Stock ?Amount ?Day) means that the closing 
+  -- price of the Stock ?Stock on the Day ?Day was ?Amount.
+  fun closingPrice : El Stock -> El CurrencyMeasure -> El Day -> Formula ;
+
+  -- The total monetary value an employee receives during a certain time period.
+  fun compensationPackage : El Human -> El CurrencyMeasure -> El TimePosition -> Formula ;
+
+  -- (compoundInterest ?Account ?Amount ?Time) means 
+  -- that ?Amount is the interest which is calculated not only on the initial principal 
+  -- but also the accumulated interest of prior periods. Compound interest can be 
+  -- calculated annually, semi_annually, quartely, monthly, or daily.
+  fun compoundInterest : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
+
+  fun confirmationNumber : El FinancialTransaction -> El SymbolicString -> Formula ;
+
+  -- (couponInterest ?BOND ?INTEREST) means that ?INTEREST is 
+  -- the periodic interest payment made to bondholders during the life of the ?BOND.
+  fun couponInterest : El Bond -> El Interest -> Formula ;
+
+  -- (creditLimit ?ACCOUNT ?AMNT) holds if ?AMNT is the 
+  -- maximum amount of credit that a bank or other lender will extend to a customer.
+  fun creditLimit : El CreditAccount -> El CurrencyMeasure -> Formula ;
+
+  -- (creditRanking ?Agent ?Rating) holds if ?Rating is a FinancialRating 
+  -- based on financial analysis by a credit bureau, of one's financial history,
+  -- specifically as it relates to one's ability to meet debt obligations.
+  -- Lenders use this information to decide whether to approve a loan.
+  fun creditRanking : El CognitiveAgent -> El FinancialRating -> Formula ;
+
+  -- (creditsPerPeriod ?Account ?Amount ?Period) holds if ?Amount is the amount credited to 
+  -- the FinancialAccount ?Account during the time period ?Period.
+  fun creditsPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+
+  -- (currentAccountBalance ?Account ?Date ?Amount) means that ?Amount is the balance of 
+  -- the FinancialAccount ?Account as of the date ?Date.
+  fun currentAccountBalance : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- (currentInterestRate ?Account ?Day ?Rate) means that ?Rate is the interest rate of 
+  -- the Account on a specific day ?Day.
+  fun currentInterestRate : El FinancialAccount -> El Day -> El InterestRate -> Formula ;
+
+  -- A very general relation that exists whenever there is a FinancialTransaction between 
+  -- the two Agents such that the first is the destination of the FinancialTransaction and 
+  -- the second is the agent.
+  fun customer : El CognitiveAgent -> El CognitiveAgent -> Formula ;
+
+  -- (customerRepresentative ?PERSON1 ?PERSON2 ?ORG) means that ?PERSON1 acts as a representative 
+  -- of Organization ?ORG in a SocialInteraction involving ?PERSON2.
+  fun customerRepresentative : El CognitiveAgent -> El CognitiveAgent -> El Organization -> Formula ;
+
+  -- (dailyLimit ?Account ?TransactionType ?Amount) means that ?Amount is the daily limit of 
+  -- the ?Account for the type of FinancialTransactions ?TransactionType.
+  fun dailyLimit: El FinancialAccount -> Desc FinancialTransaction -> El CurrencyMeasure -> Formula ;
+
+  -- (dateOfStatement ?Statement ?Date) holds if ?Date is the date when BankStatement was issued.
+  fun dateOfStatement : El BankStatement -> El Day -> Formula ;
+
+  -- (dayPhone ?Phone ?Agent) means that ?Phone is a phone 
+  -- number corresponding to the location where ?Agent can be reached during the day.
+  fun dayPhone : El SymbolicString -> El Agent -> Formula ;
+
+  -- The part of the purchase price paid in cash up front, 
+  -- reducing the amount of the loan or mortgage.
+  fun downPayment : El Loan -> El CurrencyMeasure -> Formula ;
+
+  -- Legal date an agreement or document goes into force.
+  fun effectiveDate : El Contract -> El Day -> Formula ;
+
+  -- (emailAddress ?Address ?Agent) means that ?Address is 
+  -- an electronic address of the location where ?Agent can be reached.
+  fun emailAddress : El SymbolicString -> El Agent -> Formula ;
+
+  -- An individual's contribution to his/her 
+  -- own retirement plan, often tax_deferred.
+  fun employeeContribution : El Human -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+
+  -- (eveningPhone ?Phone ?Agent) means that ?Phone is a phone number 
+  -- corresponidng to the location where ?Agent can be reached during the evening.
+  fun eveningPhone : El SymbolicString -> El Agent -> Formula ;
+
+  -- (expirationDate ?Contract ?Date) means that ?Date is the date on which ?Contract expires.
+  fun expirationDate : El Contract -> El Day -> Formula ;
+
+  -- The nominal dollar amount assigned to a security by the issuer. 
+  -- For an equity security, par is usually a very small amount that bears no relationship to 
+  -- its market price, except for preferred stock, in which case par is used to calculate dividend 
+  -- payments. For a debt security, par is the amount repaid to the investor when the bond matures 
+  -- (usually, corporate bonds have a par value of 1000, municipal bonds 5000, and federal bonds 
+  -- 10,000).
+  fun faceValue : El Collateral -> El CurrencyMeasure -> Formula ;
+
+  fun finalPrice : El Stock -> El CurrencyMeasure -> Formula ;
+
+  -- (financialResponseTo ?Response ?Request) means that 
+  -- ?Response is a FinancialResponse to the FinancialRequest ?Request.
+  fun financialResponseTo : El FinancialResponse -> El FinancialRequest -> Formula ;
+
+  -- (fixedInterestRate ?Account ?Rate) holds if ?Rate is the interest rate that
+  -- does not change during the entire term of the account.
+  fun fixedInterestRate : El FinancialAccount -> El InterestRate -> Formula ;
+
+  -- A minimum amount that a lender is willing to loan
+  fun floorLoan : El Loan -> El CurrencyMeasure -> Formula ;
+
+  -- A call option is in the money if the stock 
+  -- price is above the strike price. A put option is in the money if the 
+  -- stock price is below the strike price.
+  fun inTheMoney : El Option -> El TimePosition -> Formula ;
+
+  -- (incomeOf ?Agent ?Money ?Period) means that 
+  -- ?Money is the amount of money or its equivalent received during a period 
+  -- of time in exchange for labor or services, from the sale of goods or 
+  -- property, or as profit from financial investments
+  fun income : El Human -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+
+  -- (incomeEarned ?Agent ?Money ?Action) means that ?Agent earned
+  -- the amount of money ?Money from performing ?Action. Note that incomeEarned
+  -- denotes that amount of money made before taxes are deducted.
+  fun incomeEarned : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
+
+  -- The percentage increase in the price of goods and services, usually annually.
+  fun inflationRate : El Inflation -> El RealNumber -> Formula ;
+
+  -- The annually percentage increase 
+  -- in the price of goods and services for the given Nation.
+  fun inflationRateInCountry : El Nation -> El RealNumber -> Formula ;
+
+  -- (insured ?Contract ?Org) means that ?Contract is insured 
+  -- by the ?Organization.
+  fun insured : El Contract -> El Organization -> Formula ;
+
+  -- (interestEarned ?Account ?Interest ?Period) means that ?Interest is 
+  -- the amount earned on the FinancialAccount ?Account, for the duration ?Period.
+  fun interestEarned : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
+
+  -- (interestRatePerPeriod ?ACCOUNT ?RATE ?TIME) means that ?RATE is the interest 
+  -- per the period TIME divided by principal amount, expressed as a percentage
+  fun interestRatePerPeriod : El FinancialAccount -> El InterestRate -> El TimeInterval -> Formula ;
+
+  -- (issuedBy ?Instrument ?Agent) means that a 
+  -- FinancialInstrument ?Instrument is produced and offered by ?Agent.
+  fun issuedBy : El FinancialInstrument -> El CognitiveAgent -> Formula ;
+
+  -- (lastStatement ?Account ?Statement) means that 
+  -- ?Statement is the most recent monthly report sent to a debtor or bank depositor.
+  fun lastStatement : El FinancialAccount -> El BankStatement -> Formula ;
+
+  -- (lastStatementBalance ?Account ?Amount) holds if ?Amount is the balance 
+  -- shown on the last statement.
+  fun lastStatementBalance : El FinancialAccount -> El CurrencyMeasure -> Formula ;
+
+  -- (lender ?Loan ?Agent) means that ?Agent is a private, public or 
+  -- institutional entity that put up the funds for the ?Loan.
+  fun lender : El Loan -> El CognitiveAgent -> Formula ;
+
+  -- (limitPrice ?Order ?Money) means that ?Money is the limit price 
+  -- for the limit order ?Order. If ?Order is a buy order, then ?Money specifies the maximum price
+  -- to be paid. If ?Order is a sell order, then ?Money specifies the minimum price to be paid.
+  fun limitPrice : El LimitOrder -> El CurrencyMeasure -> Formula ;
+
+  -- Degree to which accounts can be easily converted to cash.
+  fun liquidity : El FinancialAccount -> El LiquidityAttribute -> Formula ;
+
+  fun listedOn : El Stock -> El Organization -> Formula ;
+
+  -- (loanFeeAmount ?Loan ?Amount) means that 
+  -- ?Amount is the fee amount of the Loan ?Loan.
+  fun loanFeeAmount : El Loan -> El CurrencyMeasure -> Formula ;
+
+  -- (loanForPurchase ?ACCOUNT ?PRODUCT) means that ?ACCOUNT is a 
+  -- loan to finance the purchase of ?PRODUCT.
+  fun loanForPurchase : El Loan -> El Object -> Formula ;
+
+  fun loanInterest : El Loan -> El CurrencyMeasure -> Formula ;
+
+  -- (marginBalanceAmount ?Account ?Day ?Amount) 
+  -- holds if ?Amount is the margin balance amount of the FinancialAccount ?Account 
+  -- on the Day ?Day.
+  fun marginBalanceAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  fun marketValueAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- The date on which the principal amount of the account 
+  -- becomes due and payable.
+  fun maturityDate : El FinancialAccount -> El Day -> Formula ;
+
+  -- (minimumBalance ?Account ?ActivityType ?Amount) 
+  -- means that ?Amount is the mimimum amount required by the type of 
+  -- FinancialTransaction ?ActivityType.
+  fun minimumBalance: El FinancialAccount -> Desc FinancialTransaction -> El CurrencyMeasure -> Formula ;
+
+  -- The smallest amount which can be paid on a revolving 
+  -- charge account to avoid a penalty.
+  fun minimumPayment : El LiabilityAccount -> El CurrencyMeasure -> El TimeDuration -> Formula ;
+
+  -- (monthlyIncome ?Agent ?Money) means that ?Money is the amount of money received 
+  -- during one month period
+  fun monthlyIncome : El Human -> El CurrencyMeasure -> Formula ;
+
+  -- The amount due the supplier after commissions have been deducted.
+  fun netAmount : El Investment -> El CurrencyMeasure -> Formula ;
+
+  -- Total assets minus total liabilities of an individual or company.
+  fun netWorth : El CognitiveAgent -> El CurrencyMeasure -> El Day -> Formula ;
+
+  -- (optionHolder ?Option ?Agent) means that ?Agent is the holder of the option.
+  fun optionHolder : El Option -> El CognitiveAgent -> Formula ;
+
+  -- (optionSeller ?Option ?Agent) means that ?Agent is the writer of the option.
+  fun optionSeller : El Option -> El CognitiveAgent -> Formula ;
+
+  -- (orderFor ?Order ?Transaction ?Security) means that the content of ?Order 
+  -- is to realize an instance of ?Transaction where ?Security is the patient of ?Transaction.
+  fun orderFor: El FinancialTransaction -> Desc FinancialTransaction -> El Security -> Formula ;
+
+  -- (originalBalance ?ACCOUNT ?BALANCE) means that ?BALANCE is 
+  -- the balance of the account at the time the account is opened.
+  fun originalBalance : El FinancialAccount -> El CurrencyMeasure -> Formula ;
+
+  -- A call option is out of the money if the 
+  -- stock price is below its strike price. A put option is out of the money 
+  -- if the stock price is above its strike price.
+  fun outOfTheMoney : El Option -> El TimePosition -> Formula ;
+
+  -- The amount by which withdrawals exceed deposits.
+  fun overdraft : El FinancialAccount -> El CurrencyMeasure -> El Day -> Formula ;
+
+  -- (paymentsPerPeriod ?Account ?Amount ?Period) holds if ?Amount is 
+  -- the amount paid on the FinancialAccount ?Account during the time period ?Period.
+  fun paymentsPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+
+  -- (periodicPayment ?Pay ?Amount ?Period) holds if ?Pay is one of the periodic payments for the amount ?Amount.
+  fun periodicPayment : El FinancialAccount -> El CurrencyMeasure -> El TimeDuration -> Formula ;
+
+  -- (phoneNumber ?Phone ?Agent) holds if ?Phone is a phone number corresponding to the Telephone ?Phone.
+  fun phoneNumber : El SymbolicString -> El Telephone -> Formula ;
+
+  -- (pin ?PIN ?Card) means that ?PIN is a personal identification number linked to the ?Card.
+  fun pin : El SymbolicString -> El BankCard -> Formula ;
+
+  -- The maximum amount of money the Agent can lose by choosing this type of Investment.
+  fun potentialLoss : El CognitiveAgent -> El Investment -> El CurrencyMeasure -> Formula ;
+
+  -- Total price of an option.
+  fun premium : El Option -> El CurrencyMeasure -> Formula ;
+
+  -- (price ?Obj ?Money ?Agent) means that ?Agent pays the amount of 
+  -- money ?Money for ?Obj.
+  fun price : El Physical -> El CurrencyMeasure -> El Agent -> Formula ;
+
+  -- The interest rate that commercial banks charge their most creditworthy borrowers, 
+  -- such as large corporations. The prime rate is a lagging indicator.
+  fun primeInterestRate : El Day -> El InterestRate -> Formula ;
+
+  -- (principalAmount ?ACCOUNT ?BALANCE) means that ?BALANCE is the amount borrowed,
+  -- or the part of the amount borrowed which remains unpaid (excluding interest).
+  fun principalAmount : El FinancialAccount -> El CurrencyMeasure -> Formula ;
+
+  -- The positive gain from an investment or business operation after 
+  -- subtracting for all expenses.
+  fun profit : El FinancialTransaction -> El CurrencyMeasure -> Formula ;
+
+  -- (purchasesPerPeriod ?Account ?Amount ?Period) 
+  -- holds if ?Amount is the amount of purchases added to the FinancialAccount ?Account 
+  -- during the time period ?Period.
+  fun purchasesPerPeriod : El FinancialAccount -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+
+  -- Relates an instance of Investing to the level of risk associated 
+  -- with the investment.
+  fun riskLevel : El Investment -> El RiskAttribute -> Formula ;
+
+  fun riskTolerance : El Investor -> El RiskAttribute -> Formula ;
+
+  -- Assets pledged by a borrower to secure a loan 
+  -- or other credit, and subject to seizure in the event of FinancialDefault.
+  fun securedBy : El FinancialAccount -> El Collateral -> Formula ;
+
+  -- A charge to the customer levied by a FinancialOrganization 
+  -- for a FinancialTransaction, such as OpeningAnAccount or UsingAnAccount.
+  fun serviceFee : El FinancialOrganization -> El FinancialTransaction -> El CurrencyMeasure -> Formula ;
+
+  -- (shareHolder ?Stock ?Agent) means that ?Agent possesses 
+  -- shares of Stock in a corporation or mutual fund.
+  fun shareHolder : El Share -> El CognitiveAgent -> Formula ;
+
+  fun shareOf : El Share -> El Organization -> Formula ;
+
+  -- (marketvalueAmount ?Account ?Day ?Amount) holds 
+  -- if ?Amount is the market value amount of the FinancialAccount ?Account on the Day 
+  -- ?Day. shortBalanceAmount (shortBalanceAmount ?Account ?Day ?Amount) 
+  -- holds if ?Amount is the short balance amount of the FinancialAccount ?Account 
+  -- on the Day ?Day.
+  fun shortBalanceAmount : El FinancialAccount -> El Day -> El CurrencyMeasure -> Formula ;
+
+  -- (signedBy ?Instrument ?Agent) means that ?Instrument 
+  -- has been signed by ?Agent.
+  fun signedBy : El Certificate -> El CognitiveAgent -> Formula ;
+
+  -- (simpleInterest ?Account ?Amount ?Time) means 
+  -- that ?Amount is the interest calculated on a principal sum, not compounded on 
+  -- earned interest, for the duration ?Time.
+  fun simpleInterest : El FinancialAccount -> El Interest -> El TimeInterval -> Formula ;
+
+  fun splitFor : El StockSplit -> El Integer -> El Integer -> Formula ;
+
+  -- (statementAccount ?Statement ?Account) means 
+  -- that ?Account is the account of the BankStatement ?Statement.
+  fun statementAccount : El BankStatement -> El FinancialAccount -> Formula ;
+
+  -- (statementInterest ?Statement ?Amount) holds 
+  -- if ?Amount is the interest amount as shown on the BankStatement ?Statement.
+  fun statementInterest : El BankStatement -> El CurrencyMeasure -> Formula ;
+
+  -- (statementPeriod ?Statement ?Period) means that 
+  -- ?Period is the time period of the BankStatement ?Statement.
+  fun statementPeriod : El BankStatement -> El TimeInterval -> Formula ;
+
+  -- A unique symbol assigned to a security. NYSE and 
+  -- AMEX listed stocks have symbols of three characters or less. NASDAQ_listed 
+  -- securities have four or five characters.
+  fun stockSymbol : El Stock -> El SymbolicString -> Formula ;
+
+  -- The specified price on an option contract at 
+  -- which the contract may be exercised, whereby a call option buyer can buy 
+  -- the underlier or a put option buyer can sell the underlier.
+  fun strikePrice : El FinancialInstrument -> El CurrencyMeasure -> Formula ;
+
+  -- Income whose taxes can be postponed 
+  -- until a later date. Examples include IRA, 401(k), Keogh Plan, annuity, 
+  -- Savings Bond and Employee Stock Ownership Plan.
+  fun taxDeferredIncome : El Human -> El CurrencyMeasure -> El OrganizationalProcess -> Formula ;
+
+  -- (underlier ?Option ?Instrument) means that 
+  -- ?Instrument is a security which is subject to delivery upon exercise of 
+  -- ?Option.
+  fun underlier : El Option -> El FinancialInstrument -> Formula ;
+
+  -- The annual rate of return on an investment, expressed as a 
+  -- percentage. For bonds and notes, it is the coupon rate divided by the market price.
+  fun yield : El Investment -> El FunctionQuantity -> Formula ;
+
+  -- A profit obtained from an investment. yieldLevel Relates a FinancialAccount to
+  -- the yield level (i.e. the type of profit) which can be expected from the account.
+  fun yieldLevel : El FinancialAccount -> El YieldAttribute -> Formula ;
+
 }
diff --git a/examples/SUMO/Geography.gf b/examples/SUMO/Geography.gf
--- a/examples/SUMO/Geography.gf
+++ b/examples/SUMO/Geography.gf
@@ -1,3062 +1,2887 @@
-abstract Geography = open Merge, Mid_level_ontology, Transportation in {
-
-
-
-
-fun AcidRainIssue : Ind EnvironmentalIssue ;
-
---  AcidRainfall is the subclass of 
--- Raining in which the precipitate contains harmful amounts of 
--- sulfur dioxide or nitrogen oxide. The standard for acid rain 
--- is below 5.6 pH.
-fun AcidRainfall : Class ;
-fun AcidRainfall_Class : SubClass AcidRainfall WeatherProcess ;
-
--- Acidification is the process of 
--- lowering soil and water pH due to acid rain or other types of 
--- acid deposition. Potential harmful effects include killing 
--- freshwater fish and plants.
-fun Acidification : Class ;
-fun Acidification_Class : SubClass Acidification Combining ;
-
-fun AcidificationIssue : Ind EnvironmentalIssue ;
-
--- AerosolParticulate is a 
--- Substance that includes aerosol_dispersed particles 
--- that are mixed with air, gas, or smoke. A form of Pollution.
-fun AerosolParticulate : Class ;
-fun AerosolParticulate_Class : SubClass AerosolParticulate Substance ;
-
-fun AerosolParticulateIssue : Ind EnvironmentalIssue ;
-
--- Afforestation is the process of 
--- planting trees and plants on spaces that are either empty or in 
--- agricultural use.
-fun Afforestation : Class ;
-fun Afforestation_Class : SubClass Afforestation Planting ;
-
-fun Africa : Ind Continent ;
-
--- Aftershock is the subclass of EarthTremors 
--- that occur after the main tremor(s) of an Earthquake.
-fun Aftershock : Class ;
-fun Aftershock_Class : SubClass Aftershock EarthTremor ;
-
--- Agreement is the class of 
--- Propositions that express the contents of agreements 
--- entered into by CognitiveAgents. Agreement includes 
--- treaties, contracts, purchase orders, pledges, marriage 
--- vows, etc. An Agreement may be written down in a document 
--- or other ContentBearingObject.
-fun Agreement : Class ;
-fun Agreement_Class : SubClass Agreement Proposition ;
-
--- (AgreementOrganizationFn ?AGR) 
--- denotes the official Organization established by the Agreement ?AGR 
--- to administer or enforce the terms of that agreement.
-fun AgreementOrganizationFn : El Agreement -> Ind Organization ;
-
-
-fun AgriculturalChemicalsIssue : Ind EnvironmentalIssue ;
-
-fun AgriculturalExpansionIssue : Ind EnvironmentalIssue ;
-
--- Agriculture is a class of Processes 
--- in which land, plants, or animals are cultivated in order to produce 
--- food or other organic products.
-fun Agriculture : Class ;
-fun Agriculture_Class : SubClass Agriculture Maintaining ;
-
--- AirPollution is the subclass of 
--- Pollution processes in which air is contaminated.
-fun AirPollution : Class ;
-fun AirPollution_Class : SubClass AirPollution Pollution ;
-
-fun AirPollutionConvention : Ind Agreement ;
-
-fun AirPollutionIssue : Ind PollutionIssue ;
-
-fun AirPollution_NitrogenOxidesProtocol : Ind Agreement ;
-
-fun AirPollution_PeristentOrganicPollutantsProtocol : Ind Agreement ;
-
-fun AirPollution_Sulphur85Protocol : Ind Agreement ;
-
-fun AirPollution_Sulphur94Protocol : Ind Agreement ;
-
-fun AirPollution_VolatileOrganicCompoundsProtocol : Ind Agreement ;
-
--- AirStream is the class of FlowRegions that consist of air.
-fun AirStream : Class ;
-fun AirStream_Class : SubClass AirStream (both Air FlowRegion) ;
-
-
--- The area below the AntarcticCircle, which is
--- 66 degrees 33 minutes and 38 seconds south latitude. It is dark
--- for at least 24 hours at some point during the year, with an
--- increasing period of yearly continuous darkness as one gets closer
--- to the South Pole.
-fun AntarcticArea : Class ;
-fun AntarcticArea_Class : SubClass AntarcticArea LandArea ;
-
-fun AntarcticCircumpolarCurrent : Ind WaterMotion ;
-
-fun AntarcticSealsConvention : Ind Agreement ;
-
-fun AntarcticTreaty : Ind Agreement ;
-
-fun Antarctic_EnvironmentalProtocol : Ind Agreement ;
-
-fun Antarctic_MarineLivingResourcesConvention : Ind Agreement ;
-
-fun ArabianSea : Ind Sea ;
-
--- ArableLand is the subclass of 
--- LandArea that represents land in cultivation with crops that 
--- are replanted after each harvest, e.g., wheat and rice.
-fun ArableLand : Class ;
-fun ArableLand_Class : SubClass ArableLand LandArea ;
-
-fun AralSea : Ind SaltLake ;
-
--- ArcMinute represents a UnitOfMeasure 
--- equivalent to 1/60th of an AngularDegree.
-fun ArcMinute : Ind UnitOfAngularMeasure ;
-
-
--- ArcSecond represents a UnitOfMeasure 
--- equivalent to 1/60th of an ArcMinute.
-fun ArcSecond : Ind UnitOfAngularMeasure ;
-
-
--- An ArchipelagicArea is a GeographicArea 
--- including an Archipelago and the surrounding WaterArea.
-fun ArchipelagicArea : Class ;
-fun ArchipelagicArea_Class : SubClass ArchipelagicArea GeographicArea ;
-
--- An Archipelago is a group of islands.
-fun Archipelago : Class ;
-fun Archipelago_Class : SubClass Archipelago (both Collection LandForm) ;
-
-
--- ArcticOcean represents the Arctic Ocean.
-fun ArcticOcean : Ind Ocean ;
-
-
--- The area above the Artic Circle, which is
--- 66 degrees 33 minutes and 38 seconds north latitude. It is dark
--- for at least 24 hours at some point during the year, with an
--- increasing period of yearly continuous darkness as one gets closer
--- to the North Pole.
-fun ArcticRegion : Class ;
-
-
--- AreaOfConcern is a subclass of 
--- Attributes that represent and classify the kinds of interests that 
--- agents have.
-fun AreaOfConcern : Class ;
-fun AreaOfConcern_Class : SubClass AreaOfConcern RelationalAttribute ;
-
--- AridClimateZone is the 
--- class of regions in which the climate is characterized by 
--- a distinct dry season. Annual rate of moisture evaporation 
--- exceeds annual rate of precipitation. This is Class B in the 
--- Koeppen climate system.
-fun AridClimateZone : Class ;
-fun AridClimateZone_Class : SubClass AridClimateZone ClimateZone ;
-
--- Asbestos is a Mineral.
-fun Asbestos : Class ;
-fun Asbestos_Class : SubClass Asbestos Mineral ;
-
-fun AsbestosDisposalIssue : Ind EnvironmentalIssue ;
-
-fun Asia : Ind Continent ;
-
--- AtlanticOcean represents the Atlantic 
--- Ocean.
-fun AtlanticOcean : Ind Ocean ;
-
-
--- Atmosphere is a mixture of gases 
--- surrounding any celestial object that has a gravitational field 
--- strong enough to prevent the gases from escaping.
-fun Atmosphere : Class ;
-fun Atmosphere_Class : SubClass Atmosphere Region ;
-
-fun AtmosphericHazing : Class ;
-fun AtmosphericHazing_Class : SubClass AtmosphericHazing WeatherProcess ;
-
--- Atoll is the class of CoralReefs which surround 
--- a lagoon.
-fun Atoll : Class ;
-fun Atoll_Class : SubClass Atoll CoralReef ;
-
--- AvalancheProcess is a subclass of 
--- Motion that represents events in which a loosened mass of snow, ice, 
--- rock, or earth rapidly descends a steep slope, with a destructive force.
-fun AvalancheProcess : Class ;
-fun AvalancheProcess_Class : SubClass AvalancheProcess Impelling ;
-
-fun BalticSea : Ind Sea ;
-
--- Barite is Barium Sulfate occurring as a mineral.
-fun Barite : Class ;
-fun Barite_Class : SubClass Barite (both CompoundSubstance Mineral) ;
-
-
--- A Basin is an area of land enclosed or partially 
--- enclosed by higher land.
-fun Basin : Class ;
-fun Basin_Class : SubClass Basin LandForm ;
-
--- Bay is the class of extensions of a body of water 
--- (salt or fresh) that reach into the land, usually smaller than a 
--- Gulf.
-fun Bay : Class ;
-fun Bay_Class : SubClass Bay Inlet ;
-
--- BeaufortNumber is the
--- Attribute for indicating wind force, according to
--- classifications based on observable weather conditions and later
--- related to wind speed ranges.
-fun BeaufortNumber : Class ;
-fun BeaufortNumber_Class : SubClass BeaufortNumber RelationalAttribute ;
-
-fun BeaufortNumberEight : Ind BeaufortNumber ;
-
-fun BeaufortNumberEleven : Ind BeaufortNumber ;
-
-fun BeaufortNumberFive : Ind BeaufortNumber ;
-
-fun BeaufortNumberFour : Ind BeaufortNumber ;
-
-fun BeaufortNumberNine : Ind BeaufortNumber ;
-
-fun BeaufortNumberOne : Ind BeaufortNumber ;
-
-fun BeaufortNumberSeven : Ind BeaufortNumber ;
-
-fun BeaufortNumberSix : Ind BeaufortNumber ;
-
-fun BeaufortNumberTen : Ind BeaufortNumber ;
-
-fun BeaufortNumberThree : Ind BeaufortNumber ;
-
-fun BeaufortNumberTwelve : Ind BeaufortNumber ;
-
-fun BeaufortNumberTwo : Ind BeaufortNumber ;
-
-fun BeringSea : Ind Sea ;
-
--- BiodiversityAttribute is the 
--- class of Attributes that describe the level of biodiversity present 
--- in a GeographicArea or Ecosystem.
-fun BiodiversityAttribute : Class ;
-fun BiodiversityAttribute_Class : SubClass BiodiversityAttribute InternalAttribute ;
-
-fun BiodiversityConvention : Ind Agreement ;
-
-fun BiodiversityIssue : Class ;
-fun BiodiversityIssue_Class : SubClass BiodiversityIssue EnvironmentalIssue ;
--- Biome is the class of GeographicAreas 
--- representing major kinds of ecological communities, that is, areas in 
--- which certain kinds of plants, animals, weather, and terrain interact 
--- to produce and support a distinctive ecosystem.
-fun Biome : Class ;
-fun Biome_Class : SubClass Biome Ecosystem ;
-
-fun BlackSea : Ind Sea ;
-
-fun Blizzard : Class ;
-fun Blizzard_Class : SubClass Blizzard WeatherProcess ;
-fun BodyOfWater_WaterArea : SubClass BodyOfWater WaterArea ;
-
--- (BorderFn ?AREA1 ?AREA2) denotes the 
--- border area where the GeographicAreas ?AREA1 and ?AREA2 meet.
-fun BorderFn : El GeographicArea -> El GeographicArea -> Ind GeographicArea ;
-
-
-fun BorealForest : Class ;
-fun BorealForest_Class : SubClass BorealForest (both Biome Forest) ;
-
--- BrownCoal is a soft Coal harder than 
--- peat and softer than bituminous coal. Also called lignite, it is 
--- brownish in color.
-fun BrownCoal : Class ;
-fun BrownCoal_Class : SubClass BrownCoal Coal ;
-
--- A Butte is an Upland raised sharply from the 
--- surrounding region. Smaller in area than a Mesa.
-fun Butte : Class ;
-fun Butte_Class : SubClass Butte (both LandForm UplandArea) ;
-
-
--- Canal is the subclass of navigable Waterways 
--- flowing through an artificial course. Typically, a canal is a 
--- Transitway connecting two bodies of water.
-fun Canal : Class ;
-fun Canal_Class : SubClass Canal (both StationaryArtifact Waterway) ;
-
-
--- A CanalStructure is the constructed 
--- framework, including Locks, that contains the waters of a Canal.
-fun CanalStructure : Class ;
-fun CanalStructure_Class : SubClass CanalStructure StationaryArtifact ;
-
--- CanopiedVegetation describes the 
--- density of vegetation in a RainForest or Jungle.
-fun CanopiedVegetation : Ind Attribute ;
-
-
--- A Canyon is a narrow valley with steep sides, usually 
--- created by erosion.
-fun Canyon : Class ;
-fun Canyon_Class : SubClass Canyon LandForm ;
-
--- A Cape is a piece of land projecting into a body of water.
-fun Cape : Class ;
-fun Cape_Class : SubClass Cape LandForm ;
-
--- CarbonCycle is the class of 
--- GeologicalProcesses in which carbon in various forms is passed 
--- between air, water, earth, and the biosphere.
-fun CarbonCycle : Class ;
-fun CarbonCycle_Class : SubClass CarbonCycle GeologicalProcess ;
-
-fun CarbonDioxideEmission : Class ;
-fun CarbonDioxideEmission_Class : SubClass CarbonDioxideEmission Separating ;
-fun CaribbeanRegion : Ind GeographicArea ;
-
-fun CaribbeanSea : Ind Sea ;
-
-fun CaspianSea : Ind SaltLake ;
-
--- A CaveMatrix is the framework of earth or 
--- rock in which a Cave is embedded.
-fun CaveMatrix : Class ;
-fun CaveMatrix_Class : SubClass CaveMatrix LandForm ;
-
-fun Cave_Hole : SubClass Cave Hole ;
-
-fun CentralAfrica : Ind GeographicArea ;
-
-fun CentralAsia : Ind GeographicArea ;
-
-fun CentralEurope : Ind GeographicArea ;
-
-fun CentralSouthAmerica : Ind GeographicArea ;
-
-fun Channel_BodyOfWater : SubClass Channel BodyOfWater ;
-
-fun ChinookWind : Class ;
-fun ChinookWind_Class : SubClass ChinookWind WindProcess ;
--- A mineral that consists of an oxide of
--- iron and chromium.
-fun Chromite : Class ;
-fun Chromite_Class : SubClass Chromite (both CompoundSubstance Mineral) ;
-
-
--- Fine_grained soil consisting of mineral particles, not 
--- necessarily clay minerals, that are less than 0.002 mm in their maximum dimension.
-fun Clay : Class ;
-fun Clay_Class : SubClass Clay Soil ;
-
--- ClearWeather represents a condition 
--- in which less than 30% of the sky is covered with clouds.
-fun ClearWeather : Class ;
-fun ClearWeather_Class : SubClass ClearWeather WeatherProcess ;
-
--- A Cliff is any high, very_steep_to_perpendicular 
--- or overhanging face of rock or earth, a precipice.
-fun Cliff : Class ;
-fun Cliff_Class : SubClass Cliff SlopedArea ;
-
-fun ClimateChangeConvention : Ind Agreement ;
-
-fun ClimateChangeIssue : Ind EnvironmentalIssue ;
-
-fun ClimateChange_KyotoProtocol : Ind Agreement ;
-
--- &ClimateZone is a subclass of GeographicArea in which regions 
--- are classified according to their long_term weather conditions. 
--- The subclasses of ClimateZone are based on the Koeppen Climate 
--- Classification system. In the Koeppen system, climate zones are 
--- distinguished based on temperatures and rainfall.
-fun ClimateZone : Class ;
-fun ClimateZone_Class : SubClass ClimateZone GeographicArea ;
-
--- Coal is a black or brownish black solid combustible 
--- substance formed by the partial decomposition of vegetable matter without 
--- free access of air and under the influence of moisture and often increased 
--- pressure and temperature. Coal is a sedimentary rock containing a high 
--- proportion of carbon.
-fun Coal : Class ;
-fun Coal_Class : SubClass Coal (both FossilFuel (both Mineral Rock)) ;
-
-
-fun CoastalDegradation : Ind EnvironmentalIssue ;
-
-fun CoastalFlooding : Class ;
-fun CoastalFlooding_Class : SubClass CoastalFlooding Flooding ;
-fun CoastalMarinePollutionIssue : Ind EnvironmentalIssue ;
-
--- CoastalPlain is the class of broad plains 
--- areas adjacent to a Sea or Ocean. A coastal plain includes a narrower 
--- ShoreArea adjacent to a body of water.
-fun CoastalPlain : Class ;
-fun CoastalPlain_Class : SubClass CoastalPlain Plain ;
-
--- ColdClimateZone is the subclass 
--- of ClimateZone that is characterized by a warmest month with average 
--- temperature less than 10 degrees Celsius and a coldest month with 
--- average temperature less than _3 degrees Celsius. This is Koeppen climate 
--- system Type D.
-fun ColdClimateZone : Class ;
-fun ColdClimateZone_Class : SubClass ColdClimateZone ClimateZone ;
-
--- ColdDampClimateZone is the 
--- subclass of ColdClimateZone that is characterized by having more 
--- than 30 mm of precipitation in the driest month. This is subtype 
--- 'Df' in the Koeppen climate system.
-fun ColdDampClimateZone : Class ;
-fun ColdDampClimateZone_Class : SubClass ColdDampClimateZone ColdClimateZone ;
-
--- ColdFront is the class of transitional 
--- weather processes occurring between a cold air mass that is advancing 
--- upon a warm air mass.
-fun ColdFront : Class ;
-fun ColdFront_Class : SubClass ColdFront WeatherFront ;
-
--- ContinentalClimateZone is a subclass of TemperateClimateZone that is 
--- characterized by cold winters and hot summers.
-fun ContinentalClimateZone : Class ;
-fun ContinentalClimateZone_Class : SubClass ContinentalClimateZone TemperateClimateZone ;
-
--- ContinentalMargin is class of 
--- SubmergedLandAreas that are the extension of land underwater at 
--- the edge of a continent, before a drop to the sea floor. A 
--- ContinentalMargin includes the ContinentalShelf and the 
--- continental break, slope, or rise at the outer edge.
-fun ContinentalMargin : Class ;
-fun ContinentalMargin_Class : SubClass ContinentalMargin SubmergedLandArea ;
-
--- A ContinentalShelf is a natural 
--- undersea extension of land around a Continent. The shelf is a 
--- gently sloped (average less than one percent) plain that is an extension 
--- of the CoastalPlain found off the coast of most continents.
-fun ContinentalShelf : Class ;
-fun ContinentalShelf_Class : SubClass ContinentalShelf SubmergedLandArea ;
-
--- Corals are gastrovascular marine cnidarians (phylum 
--- Cnidaria, class Anthozoa) existing as small anemone_like polyps, typically 
--- forming colonies of many individuals. The group includes the important 
--- reef builders known as hermatypic corals, found in tropical oceans, and 
--- belonging to the subclass Zoantharia of order Scleractinia (formerly 
--- Madreporaria). The hermatypic corals obtain much of their nutrient 
--- requirement from symbiotic unicellular algae called zooxanthellae, and so 
--- are dependent upon growing in sunlight. As a result, these corals are 
--- usually found not far beneath the surface, although in clear waters corals 
--- can grow at depths of 60 m (200 ft). Corals breed by spawning, with all 
--- corals of the same species in a region releasing gametes simultaneously 
--- over a period of one to several nights around a full moon. (from Wikipedia)
-fun Coral : Class ;
-fun Coral_Class : SubClass Coral Invertebrate ;
-
--- CoralReef is the subclass of Reefs that are 
--- formed from living organisms that produce the limestone formations of the 
--- reef. Coral reefs include fringing reefs, barrier reefs, and Atolls.
-fun CoralReef : Class ;
-fun CoralReef_Class : SubClass CoralReef Reef ;
-
-fun CoralReefDecayIssue : Ind EnvironmentalIssue ;
-
--- A Cove is a small part of a body of water that 
--- reaches into a coast.
-fun Cove : Class ;
-fun Cove_Class : SubClass Cove Inlet ;
-
--- Crosswind is the relative attribute of a 
--- Wind to an object when the force of the wind is applied to a lateral 
--- side of the object.
-fun Crosswind : Ind Attribute ;
-
-
--- CyclonicStorm is the class of 
--- LowPressureWeatherSystems that involve a low pressure area 
--- surrounded by rapidly rotating winds, with the whole system 
--- typically moving forward at 20_30 mph.
-fun CyclonicStorm : Class ;
-fun CyclonicStorm_Class : SubClass CyclonicStorm (both LowPressureWeatherSystem Windstorm) ;
-
-
--- DDT (dichoro_diphenyl_trichloro_ethane) 
--- is a highly toxic insecticide also harmful to most other animal 
--- species. DDT was banned in the UnitedStates in 1972.
-fun DDT : Class ;
-fun DDT_Class : SubClass DDT CompoundSubstance ;
-
-fun Dam_StationaryArtifact : SubClass Dam StationaryArtifact ;
-
--- (DatumFn ?place) denotes the point of MLLW (Mean Lower Low 
--- Water) used as the initial data point for a coastal or WaterArea given on a nautical 
--- chart. High and low tides are calculated with reference to this point.
-fun DatumFn : El GeographicArea -> Ind LengthMeasure ;
-
-
-fun DeadSea : Ind SaltLake ;
-
--- Defoliant is the class of substances 
--- that are used to make plants lose their leaves, typically used 
--- in agriculture or warfare. Defoliants may have detrimental 
--- environmental side effects.
-fun Defoliant : Class ;
-fun Defoliant_Class : SubClass Defoliant PureSubstance ;
-
-fun Deforestation : Class ;
-fun Deforestation_Class : SubClass Deforestation (both ForestDamage Removing) ;
-
-fun DeforestationIssue : Ind EnvironmentalIssue ;
-
--- A Delta is a LandForm composed of silt or other 
--- alluvium, deposited at or near the mouth of a river or stream as it enters 
--- a body of relatively static water. Typically a delta is flat and fan_shaped.
-fun Delta : Class ;
-fun Delta_Class : SubClass Delta LandForm ;
-
--- DenseVegetation describes the 
--- density of vegetation in a Forest.
-fun DenseVegetation : Ind Attribute ;
-
-
--- Desert is a subclass of LandAreas that are 
--- arid regions having sparse or no vegetation.
-fun Desert : Class ;
-fun Desert_Class : SubClass Desert LandArea ;
-
--- DesertClimateZone 
--- is the class of AridClimateZones characterized by 
--- sparse, desert vegetation. Koeppen system 'BW'.
-fun DesertClimateZone : Class ;
-fun DesertClimateZone_Class : SubClass DesertClimateZone AridClimateZone ;
-
--- Desertification represents the 
--- Process by which desert conditions are spread over an area.
-fun Desertification : Class ;
-fun Desertification_Class : SubClass Desertification WeatherProcess ;
-
-fun DesertificationConvention : Ind Agreement ;
-
-fun DesertificationIssue : Ind EnvironmentalIssue ;
-
-fun DipSlipFault : Class ;
-fun DipSlipFault_Class : SubClass DipSlipFault GeologicalFault ;
--- (DirectionalSubregionFn ?DIRECTION ?AREA) denotes the part 
--- of GeographicArea ?AREA that lies in ?DIRECTION from the 
--- geographic center of ?AREA. For example, 
--- (DirectionalSubregionFn Iraq North) denotes the Northern 
--- part of Iraq. Such subregions are defined purely by geographical 
--- points of reference, not by sociological ones. For example, 
--- (DirectionalSubregionFn UnitedStatesOfAmerica South) denotes 
--- the Southern half of the United States, it does not denote the 
--- American South as distinguished for historical, literary, or 
--- cultural purposes.
-fun DirectionalSubregionFn : El DirectionalAttribute -> El GeographicArea -> Ind GeographicArea ;
-
-
-fun DiseaseConditionsIssue : Class ;
-fun DiseaseConditionsIssue_Class : SubClass DiseaseConditionsIssue EnvironmentalIssue ;
--- (DocumentFn ?PROP) denotes a class 
--- of Text objects that contain the information ?PROP.
-fun DocumentFn: El Proposition -> Desc Text ;
-
-
--- Downhill is a PositionalAttribute that 
--- describes the relation between two things, one of which is located 
--- down a slope from the other.
-fun Downhill : Ind PositionalAttribute ;
-
-
-fun Downstream : Ind PositionalAttribute ;
-
--- Downwind is a PositionalAttribute that indicates relative position 
--- downwind (leeward) with respect to the direction that the Wind is 
--- blowing.
-fun Downwind : Ind PositionalAttribute ;
-
-
-fun Dredging : Class ;
-fun Dredging_Class : SubClass Dredging Removing ;
-fun DriftNetFishingIssue : Ind EnvironmentalIssue ;
-
-fun DriftnetFishing : Class ;
-fun DriftnetFishing_Class : SubClass DriftnetFishing Fishing ;
--- Drought is the subclass of WeatherProcess 
--- that represents long periods without precipitation, which is damaging 
--- to crops, livestock, and human life.
-fun Drought : Class ;
-fun Drought_Class : SubClass Drought WeatherProcess ;
-
-fun DroughtIssue : Ind EnvironmentalIssue ;
-
--- DryWinterColdClimateZone 
--- is a subclass of ColdClimateZone that is characterized by having 
--- at least ten times as much precipitation in the wettest summer month 
--- as in the driest winter month. This is Koeppen climate system subtype 
--- 'Dw'.
-fun DryWinterColdClimateZone : Class ;
-fun DryWinterColdClimateZone_Class : SubClass DryWinterColdClimateZone ColdClimateZone ;
-
-fun DustStorm : Class ;
-fun DustStorm_Class : SubClass DustStorm WeatherProcess ;
--- An EarthTremor is an individual seismic 
--- event in which the earth shakes due to release of seismic pressures.
-fun EarthTremor : Class ;
-fun EarthTremor_Class : SubClass EarthTremor (both GeologicalProcess Tremor) ;
-
-
--- Earthquake is the class of events in 
--- which the earth shakes while its layers readjust due to tensional 
--- stresses in the surface of the earth. A single earthquake may consist 
--- of one or more EarthTremors.
-fun Earthquake : Class ;
-fun Earthquake_Class : SubClass Earthquake GeologicalProcess ;
-
--- EarthsAtmosphere is the layer of gases, 
--- a mixture of mainly oxygen and nitrogen, surrounding PlanetEarth. See 
--- also Air.
-fun EarthsAtmosphere : Ind Atmosphere ;
-
-
--- EarthsMoon is the Moon of PlanetEarth.
-fun EarthsMoon : Ind Moon ;
-
-
-fun EasternAfrica : Ind GeographicArea ;
-
-fun EasternAsia : Ind GeographicArea ;
-
-fun EasternEurope : Ind GeographicArea ;
-
--- The half of the Earth that includes Europe, 
--- Asia, Africa, and Australia.
-fun EasternHemisphere : Ind Hemisphere ;
-
-
-fun EasternSouthAmerica : Ind GeographicArea ;
-
--- Ecosystem is a subclass of GeographicAreas 
--- considered together with their organisms and environment as a functioning 
--- whole.
-fun Ecosystem : Class ;
-fun Ecosystem_Class : SubClass Ecosystem GeographicArea ;
-
--- Effluent is a Substance 
--- that generically covers any waste matter that is released into 
--- the environment, including sewage and industrial pollutants.
-fun Effluent : Class ;
-fun Effluent_Class : SubClass Effluent Substance ;
-
-fun ElNino : Class ;
-fun ElNino_Class : SubClass ElNino WeatherSeason ;
--- (ElevationHighPointFn ?AREA) 
--- denotes the area within the GeographicArea ?AREA that has the 
--- highest elevation.
-fun ElevationHighPointFn : El GeographicArea -> Ind GeographicArea ;
-
-
--- (ElevationLowPointFn ?AREA) 
--- denotes the area within the GeographicArea ?AREA that has the 
--- lowest elevation.
-fun ElevationLowPointFn : El GeographicArea -> Ind GeographicArea ;
-
-
-fun EndangeredMarineWildlifeIssue : Ind BiodiversityIssue ;
-
--- EndangeredSpecies is the 
--- subclass of Organism that includes plants and animals that 
--- are in danger of extinction from destruction of individuals 
--- or of habitat.
-fun EndangeredSpecies : Class ;
-fun EndangeredSpecies_Class : SubClass EndangeredSpecies Organism ;
-
-fun EndangeredSpeciesConvention : Ind Agreement ;
-
-fun EndangeredSpeciesIssue : Ind BiodiversityIssue ;
-
-fun EnvironmentalIssue : Class ;
-fun EnvironmentalIssue_Class : SubClass EnvironmentalIssue AreaOfConcern ;
-fun EnvironmentalModificationConvention : Ind Agreement ;
-
-fun EnvironmentalWaterIssue : Class ;
-fun EnvironmentalWaterIssue_Class : SubClass EnvironmentalWaterIssue EnvironmentalIssue ;
--- Erosion is a wearing process on 
--- LandForms by wind, running water, ice, heat, and other processes, 
--- in which rock and soil material are removed from one area and 
--- deposited elsewhere.
-fun Erosion : Class ;
-fun Erosion_Class : SubClass Erosion (both GeologicalProcess Removing) ;
-
-
--- Estuary is the subclass of BodyOfWater that 
--- represents WaterAreas where a sea or ocean Tide meets a River 
--- current.
-fun Estuary : Class ;
-fun Estuary_Class : SubClass Estuary (both BodyOfWater (both Inlet SaltWaterArea)) ;
-
-
--- ExclusiveFishingZone is the 
--- subclass of MaritimeClaimArea including offshore areas over which a 
--- nation claims exclusive jurisdiction only for fishing purposes (cf. 
--- MaritimeExclusiveEconomicZone). Zone widths vary up to 200 miles 
--- (NM).
-fun ExclusiveFishingZone : Class ;
-fun ExclusiveFishingZone_Class : SubClass ExclusiveFishingZone (both MaritimeClaimArea SaltWaterArea) ;
-
-
--- (ExclusiveFishingZoneFn ?POLITY) denotes the 
--- ExclusiveFishingZone that is claimed by the 
--- GeopoliticalArea ?POLITY.
-fun ExclusiveFishingZoneFn : El GeopoliticalArea -> Ind ExclusiveFishingZone ;
-
-
--- ExtendedFishingZone is the subclass of MaritimeClaimArea 
--- that includes offshore areas over which a nation claims fishing rights, 
--- beyond that nation's ExclusiveFishingZone. Zone widths vary, 
--- from as little as 12 miles (NM) up to a width of 200 miles (NM).
-fun ExtendedFishingZone : Class ;
-fun ExtendedFishingZone_Class : SubClass ExtendedFishingZone (both MaritimeClaimArea SaltWaterArea) ;
-
-
--- (ExtendedFishingZoneFn ?POLITY) denotes the 
--- ExtendedFishingZoneFn that is claimed by the 
--- GeopoliticalArea ?POLITY, beyond its ExclusiveFishingZone.
-fun ExtendedFishingZoneFn : El GeopoliticalArea -> Ind ExtendedFishingZone ;
-
-
-fun Famine : Class ;
-fun Famine_Class : SubClass Famine SocialInteraction ;
-fun FamineIssue : Ind EnvironmentalIssue ;
-
-fun FarmingPracticesIssue : Ind EnvironmentalIssue ;
-
--- Fathom is a UnitOfMeasure used for measuring 
--- water depth. One fathom is equal to six feet.
-fun Fathom : Ind UnitOfLength ;
-
-
--- FertileTerrain describes an area 
--- that has the type of soil and climate conditions needed to produce 
--- good quality crops.
-fun FertileTerrain : Ind TerrainAttribute ;
-
-
--- Fire is the subclass of Combustion events in 
--- which flames are present. Fires are slower combustion processes than 
--- explosions, though some fires may include explosive episodes.
-fun Fire : Class ;
-fun Fire_Class : SubClass Fire Combustion ;
-
-fun FishStockDepletionIssue : Ind EnvironmentalIssue ;
-
--- Fishing is the class of Processes in which 
--- Fish are hunted.
-fun Fishing : Class ;
-fun Fishing_Class : SubClass Fishing Hunting ;
-
-fun FlashFlooding : Class ;
-fun FlashFlooding_Class : SubClass FlashFlooding Flooding ;
--- FlatTerrain is a TerrainAttribute 
--- describing regions within which there is very little variation in 
--- altitude.
-fun FlatTerrain : Ind TerrainAttribute ;
-
-
-fun Flooding_WeatherProcess : SubClass Flooding WeatherProcess ;
-
--- (FlowFn ?FLUID) denotes the Motion process
--- associated with the constitutive pieces of the FlowRegion ?FLUID.
-fun FlowFn : El FlowRegion -> Ind Motion ;
-
-
--- (FlowRegionFn ?FLOW) denotes the region 
--- in which the coherent LiquidMotion process ?FLOW is occurring.
-fun FlowRegionFn : El LiquidMotion -> Ind Region ;
-
-
-fun FlowRegion_Region : SubClass FlowRegion Region ;
-
-fun Fogging : Class ;
-fun Fogging_Class : SubClass Fogging WeatherProcess ;
--- Forest is the class of large LandAreas that 
--- are covered by trees and associated undergrowth, either growing wild or 
--- managed for the purpose of timber production.
-fun Forest : Class ;
-fun Forest_Class : SubClass Forest LandArea ;
-
-fun ForestDamage : Class ;
-fun ForestDamage_Class : SubClass ForestDamage Damaging ;
-fun ForestDegradation : Ind EnvironmentalIssue ;
-
-fun ForestFire : Class ;
-fun ForestFire_Class : SubClass ForestFire (both Combustion ForestDamage) ;
-
-fun FragileEcosystemIssue : Ind BiodiversityIssue ;
-
-fun FreezingRain : Class ;
-fun FreezingRain_Class : SubClass FreezingRain Precipitation ;
--- Freshwater is the subclass of Water 
--- that has low soluble mineral content. See also PotableWater.
-fun Freshwater : Class ;
-fun Freshwater_Class : SubClass Freshwater Water ;
-
-fun FreshwaterOverutilization : Class ;
-fun FreshwaterOverutilization_Class : SubClass FreshwaterOverutilization SocialInteraction ;
--- (GeographicCenterFn ?REGION) denotes the geographical center 
--- of the GeographicArea ?REGION.
-fun GeographicCenterFn : El GeographicArea -> Ind GeographicArea ;
-
-
-fun GeographicRegion : Class ;
-
--- GeologicalFault is the subclass of 
--- GeographicAreas in which there is a fracture in the Earth's crust 
--- and differential movement can occur on the two sides of the fault. 
--- Such movement results in EarthTremors and is the cause of 
--- Earthquakes.
-fun GeologicalFault : Class ;
-fun GeologicalFault_Class : SubClass GeologicalFault GeographicArea ;
-
--- GeologicallyStable is a 
--- TerrainAttribute of a GeographicArea in which the geological 
--- substructure is stable, i.e., there are no active Volcanoes, 
--- no major fault lines, no blasting or other destabilizing activity.
-fun GeologicallyStable : Ind TerrainAttribute ;
-
-
-fun Ghibli : Class ;
-fun Ghibli_Class : SubClass Ghibli WindProcess ;
--- A Glacier is a large body of slow_moving ice. 
--- Glaciers displace soil and rock while moving over land surfaces and break 
--- apart, forming Icebergs, when they reach the sea.
-fun Glacier : Class ;
-fun Glacier_Class : SubClass Glacier LandForm ;
-
-fun GrassFire : Class ;
-fun GrassFire_Class : SubClass GrassFire Combustion ;
--- Grassland is the class of LandAreas 
--- where the predominant vegetation is some kind of grass.
-fun Grassland : Class ;
-fun Grassland_Class : SubClass Grassland (both Biome LandArea) ;
-
-
--- Gravel is small rounded stones, often mixed with sand.
-fun Gravel : Class ;
-fun Gravel_Class : SubClass Gravel Rock ;
-
-fun GreatSaltLake : Ind SaltLake ;
-
--- GreenhouseGas is the subclass of 
--- substances that, when present in the atmosphere, trap infrared 
--- radiation and cause global warming. Greenhouse gases include 
--- carbon dioxide, hydrofluorocarbons, methane, nitrous oxide, ozone, 
--- and water vapor.
-fun GreenhouseGas : Class ;
-fun GreenhouseGas_Class : SubClass GreenhouseGas PureSubstance ;
-
-fun GreenwichEnglandUK : Ind City ;
-
--- GroundCoverVegetation 
--- describes the density of uniform low vegetation in a field or meadow.
-fun GroundCoverVegetation : Ind Attribute ;
-
-
--- Groundwater is the subclass of 
--- Water that is found in deposits in the earth.
-fun Groundwater : Class ;
-fun Groundwater_Class : SubClass Groundwater Water ;
-
-fun GroundwaterPollutionIssue : Ind EnvironmentalWaterIssue ;
-
--- Gulf is the class of extensions of a Sea or 
--- Ocean that reach into a land mass or are partially enclosed by a 
--- LandArea. A Gulf is typically larger than a Bay.
-fun Gulf : Class ;
-fun Gulf_Class : SubClass Gulf (both BodyOfWater SaltWaterArea) ;
-
-
-fun GulfOfAden : Ind (both Gulf SaltWaterArea) ;
-
-fun GulfOfMexico : Ind (both Gulf SaltWaterArea) ;
-
-fun GulfOfOman : Ind (both Gulf SaltWaterArea) ;
-
--- Hailing is a precipitation process 
--- in which Water falls in a Solid state with round, hard pellets.
-fun Hailing : Class ;
-fun Hailing_Class : SubClass Hailing Precipitation ;
-
-fun HarmattanWind : Class ;
-fun HarmattanWind_Class : SubClass HarmattanWind WindProcess ;
-fun HazardousWastesConvention : Ind Agreement ;
-
--- Headwind is the relative attribute of a 
--- Wind to an object when the force of the wind is applied to the front 
--- of the object (FrontFn). A headwind can negatively affect the speed 
--- capability of a vehicle.
-fun Headwind : Ind Attribute ;
-
-
-fun HeavyRaining : Class ;
-fun HeavyRaining_Class : SubClass HeavyRaining Raining ;
-fun HeavySurf : Class ;
-fun HeavySurf_Class : SubClass HeavySurf (both WaterMotion WeatherProcess) ;
-
--- Hemisphere is the class of GeographicAreas 
--- that are halves of the Earth, as traditionally divided into the Northern 
--- and Southern Hemispheres along the equator and into the Eastern and Western 
--- Hemispheres along a north_south line running 20°W and 160°E.
-fun Hemisphere : Class ;
-fun Hemisphere_Class : SubClass Hemisphere GeographicArea ;
-
-fun HighBiodiversity : Ind BiodiversityAttribute ;
-
--- HighPressureWeatherSystem is 
--- the class of weather systems characterized by high barometricPressures. 
--- High pressure systems typically cause clear weather.
-fun HighPressureWeatherSystem : Class ;
-fun HighPressureWeatherSystem_Class : SubClass HighPressureWeatherSystem WeatherSystem ;
-
--- HighTide is the class of TidalProcesses that 
--- occur twice a day in marine waters, in which the water level rises above 
--- the mean sea level.
-fun HighTide : Class ;
-fun HighTide_Class : SubClass HighTide TidalProcess ;
-
--- HigherHighTide is the subclass of 
--- HighTide processes that occur in marine waters with a 
--- MixedTideProcess.
-fun HigherHighTide : Class ;
-fun HigherHighTide_Class : SubClass HigherHighTide HighTide ;
-
--- A Hill is a raised part of the earth's surface with 
--- sloping sides _ an old mountain which because of erosion has become shorter 
--- and more rounded.
-fun Hill : Class ;
-fun Hill_Class : SubClass Hill (both LandForm UplandArea) ;
-
-
--- Humus is decaying organic matter found in Soil 
--- and derived from dead animal and plant material.
-fun Humus : Class ;
-fun Humus_Class : SubClass Humus Mixture ;
-
-fun Hurricane : Class ;
-fun Hurricane_Class : SubClass Hurricane (both TropicalCyclone WeatherProcess) ;
-
-fun HurricaneSeason : Class ;
-fun HurricaneSeason_Class : SubClass HurricaneSeason WeatherSeason ;
--- HydropowerWaterArea 
--- is the class of WaterAreas with waterflow strength adequate 
--- for the production of hydropower.
-fun HydropowerWaterArea : Class ;
-fun HydropowerWaterArea_Class : SubClass HydropowerWaterArea WaterArea ;
-
--- An Iceberg is a large chunk of ice that has 
--- broken off from a glacier and fallen into the sea. The larger part of 
--- an Iceberg floats underwater.
-fun Iceberg : Class ;
-fun Iceberg_Class : SubClass Iceberg (both SelfConnectedObject Water) ;
-
-
-fun Icing : Class ;
-fun Icing_Class : SubClass Icing (both Freezing WeatherProcess) ;
-
-fun IllegalWildlifeTradeIssue : Ind EnvironmentalIssue ;
-
-fun InadequatePotableWaterIssue : Ind EnvironmentalWaterIssue ;
-
-fun InadequateSanitationIssue : Ind EnvironmentalIssue ;
-
--- IndianOcean represents the Indian Ocean.
-fun IndianOcean : Ind Ocean ;
-
-
-fun IndigenousPeoplesPreservationIssue : Ind EnvironmentalIssue ;
-
--- IndustrialPollution is 
--- the subclass of Pollution characterized by pollutants that 
--- originate in industrial processes.
-fun IndustrialPollution : Class ;
-fun IndustrialPollution_Class : SubClass IndustrialPollution Pollution ;
-
-fun IndustrialPollutionIssue : Ind PollutionIssue ;
-
--- An instance of InlandWaterSystem 
--- comprises two or more lakes or rivers, canals, or other waterways that 
--- are interconnected.
-fun InlandWaterSystem : Class ;
-fun InlandWaterSystem_Class : SubClass InlandWaterSystem (both Collection WaterArea) ;
-
-
--- Inlet is the class of bays or other recesses 
--- into the shore of a lake, sea, or river, includes InletPassages, which 
--- are passages leading from open water through some barrier to a bay or 
--- lagoon.
-fun Inlet : Class ;
-fun Inlet_Class : SubClass Inlet BodyOfWater ;
-
--- InletPassage is the class of water 
--- passages connecting an area of open water to a bay or lagoon, through 
--- some land barrier(s) close on either side.
-fun InletPassage : Class ;
-fun InletPassage_Class : SubClass InletPassage Inlet ;
-
--- (InnerBoundaryFn ?REGION) denotes the 
--- inner boundary of the Region ?REGION, where ?REGION has an inner and 
--- outer orientation with respect to another object.
-fun InnerBoundaryFn : El Region -> Ind Region ;
-
-
--- InternationalAgreement is the 
--- subclass of Agreements which are made by and between Nations.
-fun InternationalAgreement : Class ;
-fun InternationalAgreement_Class : SubClass InternationalAgreement Agreement ;
-
--- InternationalBorder is the 
--- subclass of GeographicAreas where the areas of two Nations meet.
-fun InternationalBorder : Class ;
-fun InternationalBorder_Class : SubClass InternationalBorder GeographicArea ;
-
-fun InvasiveSpeciesIssue : Ind EnvironmentalIssue ;
-
--- IrrigatedLand is the subclass of 
--- LandArea representing land whose water supply is artificially 
--- supplied or supplemented.
-fun IrrigatedLand : Class ;
-fun IrrigatedLand_Class : SubClass IrrigatedLand LandArea ;
-
--- Irrigating is the process of transporting 
--- and applying water to crops by artificial means.
-fun Irrigating : Class ;
-fun Irrigating_Class : SubClass Irrigating Motion ;
-
--- IrrigationChannel is the class of 
--- artificially created channels used for transporting water to agricultural 
--- fields for Irrigating crops.
-fun IrrigationChannel : Class ;
-fun IrrigationChannel_Class : SubClass IrrigationChannel Artifact ;
-
--- An Isthmus is a narrow strip of land that 
--- connects two larger land masses and is bordered on two sides by water.
-fun Isthmus : Class ;
-fun Isthmus_Class : SubClass Isthmus LandArea ;
-
--- JetStream is the class of high_velocity 
--- AirStreams that blow constantly in the upper atmosphere with constant 
--- speed and direction, though their location shifts somewhat. There are 
--- four JetStreams in EarthsAtmosphere.
-fun JetStream : Class ;
-fun JetStream_Class : SubClass JetStream AirStream ;
-
--- Jungle is a subclass of fertile LandAreas 
--- that are overgrown with tropical vegetation.
-fun Jungle : Class ;
-fun Jungle_Class : SubClass Jungle (both Biome LandArea) ;
-
-
-fun Khamsin : Class ;
-fun Khamsin_Class : SubClass Khamsin Windstorm ;
--- KnotUnitOfSpeed is a unit for measuring 
--- speed. One KnotUnitOfSpeed is equal to one NauticalMile per one 
--- HourDuration.
-fun KnotUnitOfSpeed : Ind CompositeUnitOfMeasure ;
-
-
-fun KokoNor : Ind SaltLake ;
-
--- Lake is the subclass of BodyOfWater whose 
--- instances are naturally occurring static bodies of water surrounded 
--- by land.
-fun Lake : Class ;
-fun Lake_Class : SubClass Lake StaticWaterArea ;
-
-fun LakeBakhtegan : Ind SaltLake ;
-
-fun LakeEyre : Ind SaltLake ;
-
-fun LakeMareotis : Ind SaltLake ;
-
--- A LakeRegion is a GeographicArea 
--- including land surrounding one or more Lakes.
-fun LakeRegion : Class ;
-fun LakeRegion_Class : SubClass LakeRegion GeographicArea ;
-
-fun LakeTorrens : Ind SaltLake ;
-
-fun LakeWalker : Ind SaltLake ;
-
-fun LandClearingIssue : Ind BiodiversityIssue ;
-
--- A LandForm is the class of geographically and/or geologically 
--- distinct areas that occur on Earth's surface, including mountains, hills, plains, valleys, 
--- deltas, and features of submerged land areas such as the ocean floor.
-fun LandForm : Class ;
-fun LandForm_Class : SubClass LandForm GeographicArea ;
-
-fun LandSubsidence : Class ;
-fun LandSubsidence_Class : SubClass LandSubsidence GeologicalProcess ;
--- LandlockedArea is the class of 
--- LandAreas that lack access to an Ocean or to a Waterway 
--- providing a link to the ocean.
-fun LandlockedArea : Class ;
-fun LandlockedArea_Class : SubClass LandlockedArea LandArea ;
-
--- LandlockedWater includes water 
--- areas that are surrounded by land, including salt lakes, fresh 
--- water lakes, ponds, reservoirs, and (more or less) wetlands.
-fun LandlockedWater : Class ;
-fun LandlockedWater_Class : SubClass LandlockedWater BodyOfWater ;
-
-fun LandminesIssue : Ind EnvironmentalIssue ;
-
-fun Landslide : Class ;
-fun Landslide_Class : SubClass Landslide GeologicalProcess ;
--- LandslideProcess is a subclass 
--- of Motion that represents events in which a loosened mass of mud, 
--- dirt, or rock slides down a slope, by the force of gravity.
-fun LandslideProcess : Class ;
-fun LandslideProcess_Class : SubClass LandslideProcess Impelling ;
-
--- Latitude is the class of Regions, 
--- associated with areas on the Earth's surface, which are parallels 
--- measured in PlaneAngleDegrees from the Equator.
-fun Latitude : Class ;
-fun Latitude_Class : SubClass Latitude Region ;
-
--- LatitudeFn is a VariableArityRelation 
--- used to denote a parallel of latitude. Examples: 
--- (LatitudeFn North (MeasureFn 38 AngularDegree)), (LatitudeFn 
--- South (MeasureFn 23 AngularDegree) (MeasureFn 30 ArcMinute)), 
--- (LatitudeFn South (MeasureFn 60 AngularDegree) (MeasureFn 0 ArcMinute) 
--- (MeasureFn 0 ArcSecond)), (LatitudeFn North 
--- (MeasureFn 42 AngularDegree) (MeasureFn 7.89 ArcMinute)).
-fun LatitudeFn : El DirectionalAttribute -> El AngleMeasure -> El AngleMeasure -> El AngleMeasure -> Ind Region ;
-
-
-fun LawOfTheSeaConvention : Ind Agreement ;
-
--- Lichen is the class of complex thallyphytic 
--- plants made up of Alga and Fungus growing symbiotically.
-fun Lichen : Class ;
-fun Lichen_Class : SubClass Lichen NonFloweringPlant ;
-
-fun LimitedFreshWaterIssue : Ind EnvironmentalWaterIssue ;
-
--- LittoralCurrent is the subclass of 
--- WaterCurrents that occur near a ShoreArea. Examples include 
--- TidalEbb, TidalFlow, and RipCurrents.
-fun LittoralCurrent : Class ;
-fun LittoralCurrent_Class : SubClass LittoralCurrent WaterCurrent ;
-
--- A LittoralZone is an area along the shore 
--- of a large body of water, especially an Ocean or Sea, including the area 
--- extending from the high tide mark out to a depth of 200 meters. The littoral 
--- zone is of interest for its land features, e.g., slope gradient and soil 
--- composition, including features of its SubmergedLandArea.
-fun LittoralZone : Class ;
-fun LittoralZone_Class : SubClass LittoralZone GeographicArea ;
-
--- Type of soil intermediate in texture between clay and sand, 
--- consisting of a mixture of clay, sand, gravel, silt, and organic matter.
-fun Loam : Class ;
-fun Loam_Class : SubClass Loam Soil ;
-
-fun Locust : Class ;
-fun Locust_Class : SubClass Locust Animal ;
--- Longitude is the class of Regions, 
--- associated with areas on the Earth's surface, which are meridians 
--- measured in PlaneAngleDegrees from the PrimeMeridian through 
--- GreenwichEnglandUK.
-fun Longitude : Class ;
-fun Longitude_Class : SubClass Longitude Region ;
-
--- (LongitudeFn ?DIRECTION @ROW) 
--- denotes a meridian of longitude. Note that LongitudeFn is 
--- a VariableArityRelation. Examples: 
--- (LongitudeFn East (MeasureFn 180 AngularDegree)), (LongitudeFn 
--- West (MeasureFn 122 AngularDegree) (MeasureFn 24 ArcMinute)), 
--- (LongitudeFn East (MeasureFn 121 AngularDegree) 
--- (MeasureFn 0 ArcMinute) (MeasureFn 15 ArcSecond)), 
--- (LongitudeFn West (MeasureFn 80 AngularDegree) 
--- (MeasureFn 6.78 ArcMinute)).
-fun LongitudeFn : El DirectionalAttribute -> El AngleMeasure -> El AngleMeasure -> El AngleMeasure -> Ind GeographicArea ;
-
-
-fun LossOfHabitatIssue : Ind EnvironmentalIssue ;
-
-fun LowBiodiversity : Ind BiodiversityAttribute ;
-
--- LowPressureWeatherSystem is 
--- the class of weather systems characterized by low or unstable 
--- barometricPressures. Low pressure systems typically introduce 
--- unsettled weather, frequently including storms.
-fun LowPressureWeatherSystem : Class ;
-fun LowPressureWeatherSystem_Class : SubClass LowPressureWeatherSystem WeatherSystem ;
-
--- LowTerrain is terrain in which the slope 
--- is less than 3%.
-fun LowTerrain : Ind TerrainAttribute ;
-
-
--- LowTide is the class of TidalProcesses that 
--- occur twice a day in marine waters, in which the water level falls below 
--- the mean sea level.
-fun LowTide : Class ;
-fun LowTide_Class : SubClass LowTide TidalProcess ;
-
--- LowerLowTide is the subclass of LowTide 
--- processes that occur in marine waters with a MixedTideProcess.
-fun LowerLowTide : Class ;
-fun LowerLowTide_Class : SubClass LowerLowTide LowTide ;
-
--- A LowlandArea is a land area lower than the surrounding region, 
--- and usually level land.
-fun LowlandArea : Class ;
-fun LowlandArea_Class : SubClass LowlandArea LandForm ;
-
-fun MarineDumpingConvention : Ind Agreement ;
-
-fun MarineLifeConservationConvention : Ind Agreement ;
-
--- A MaritimeClaimArea is a GeographicArea 
--- delimited by a geopolitical state's claim, under the LawOfTheSea, of rights 
--- to certain resources, activities, or jurisdiction in the claimed area. 
--- MaritimeClaimAreas can pertain to WaterAreas, SubmergedLandAreas, and Airspace.
-fun MaritimeClaimArea : Class ;
-fun MaritimeClaimArea_Class : SubClass MaritimeClaimArea GeographicArea ;
-
--- (MaritimeClaimsTerritorialSeaFn ?REGION) denotes a 
--- peripheral zones of maritime control extending outward from the Region 
--- ?REGION.
-fun MaritimeClaimsTerritorialSeaFn : El Region -> Ind PerimeterArea ;
-
-
--- MaritimeContiguousZone 
--- is the subclass of MaritimeClaimArea that includes areas over 
--- which a geopolitical state may exercise some control of activities 
--- beyond the 12_mile zone of its TerritorialSea. In general, 
--- the authorized control is for preventing or punishing activities 
--- that would violate laws applying within the 12_mile zone (that is, 
--- authorization to chase and intercept). According to the LawOfTheSea, 
--- a MaritimeContiguousZone may extend up to 24 nautical miles from the coast.
-fun MaritimeContiguousZone : Class ;
-fun MaritimeContiguousZone_Class : SubClass MaritimeContiguousZone (both MaritimeClaimArea SaltWaterArea) ;
-
-
--- (MaritimeContiguousZoneFn ?POLITY) denotes the MaritimeContiguousZone 
--- that is claimed by the GeopoliticalArea ?POLITY.
-fun MaritimeContiguousZoneFn : El GeopoliticalArea -> Ind MaritimeContiguousZone ;
-
-
--- MaritimeExclusiveEconomicZone is the subclass of MaritimeClaimArea 
--- that represents the offshore area that coastal nations can claim for 
--- fishing and other uses of the ocean water and seabed found there.
-fun MaritimeExclusiveEconomicZone : Class ;
-fun MaritimeExclusiveEconomicZone_Class : SubClass MaritimeExclusiveEconomicZone (both MaritimeClaimArea SaltWaterArea) ;
-
-
--- (MaritimeExclusiveEconomicZoneFn ?POLITY) denotes the 
--- MaritimeExclusiveEconomicZone that is claimed by the 
--- GeopoliticalArea ?POLITY.
-fun MaritimeExclusiveEconomicZoneFn : El GeopoliticalArea -> Ind MaritimeExclusiveEconomicZone ;
-
-
-fun MaritimeHazard : Class ;
-fun MaritimeHazard_Class : SubClass MaritimeHazard LandForm ;
--- MaritimeShelfArea 
--- is a subclass of MaritimeClaimArea that covers SubmergedLandAreas 
--- claimed by an adjacent geopolitical area. The LawOfTheSea defines 
--- the continental shelf as extending up to 200 miles (NM) offshore and 
--- including the resources found therein. The defined claim area does not 
--- correspond exactly to a geological ContinentalShelf, but if there is one, 
--- the two areas will overlap spatially.
-fun MaritimeShelfArea : Class ;
-fun MaritimeShelfArea_Class : SubClass MaritimeShelfArea (both MaritimeClaimArea SubmergedLandArea) ;
-
-
--- (MaritimeShelfAreaFn ?POLITY) denotes the MaritimeShelfArea 
--- that is claimed by the GeopoliticalArea ?POLITY.
-fun MaritimeShelfAreaFn : El GeopoliticalArea -> Ind MaritimeShelfArea ;
-
-
--- MediterraneanClimateZone 
--- is a subclass of TemperateClimateZone that is characterized by 
--- mild, cool, wet winters and warm dry summers. Mediterranean shores 
--- are the archetype, but the Mediterranean climate is also found elsewhere.
-fun MediterraneanClimateZone : Class ;
-fun MediterraneanClimateZone_Class : SubClass MediterraneanClimateZone TemperateClimateZone ;
-
-fun MediterraneanSea : Ind Sea ;
-
-fun MediumBiodiversity : Ind BiodiversityAttribute ;
-
--- A Mesa is a land formation having a relatively flat 
--- top and steep rock walls.
-fun Mesa : Class ;
-fun Mesa_Class : SubClass Mesa (both LandForm UplandArea) ;
-
-
--- MetallurgicalPlant is the 
--- subclass of Organization that includes metal refining and 
--- manufacturing plants. Such plants typically release extremely 
--- toxic waste which can pollute air and groundwater if not 
--- properly treated.
-fun MetallurgicalPlant : Class ;
-fun MetallurgicalPlant_Class : SubClass MetallurgicalPlant Organization ;
-
-fun MiddleAmerica : Ind GeographicArea ;
-
--- MiddleEastRegion is a 
--- GeopoliticalArea that comprises countries of Southwestern Asia 
--- and (in some definitions) Northwestern Africa. Here this term is 
--- defined as in the CIA World Fact Book, in which the Middle East 
--- includes: Bahrain, Cyprus, the Gaza Strip, Iran, Iraq, Israel, 
--- Jordan, Kuwait, Lebanon, Oman, Qatar, Saudi Arabia, Syria, the United 
--- Arab Emirates, the West Bank, and Yemen.
-fun MiddleEastRegion : Ind (both GeographicArea GeopoliticalArea) ;
-
-
--- MiddleLatitudeDesertClimateZone is the subclass of 
--- DesertClimateZone characterized by a cool dry climate 
--- typical of middle latitude deserts. This is subtype 'BWk' 
--- in the Keoppen climate system.
-fun MiddleLatitudeDesertClimateZone : Class ;
-fun MiddleLatitudeDesertClimateZone_Class : SubClass MiddleLatitudeDesertClimateZone DesertClimateZone ;
-
--- MidlatitudeContinentalClimateZone is a subclass of 
--- TemperateClimateZone that is characterized by cool winters 
--- and hot summers.
-fun MidlatitudeContinentalClimateZone : Class ;
-fun MidlatitudeContinentalClimateZone_Class : SubClass MidlatitudeContinentalClimateZone ClimateZone ;
-
-fun MiningPollutionIssue : Ind EnvironmentalIssue ;
-
-fun Mistral : Class ;
-fun Mistral_Class : SubClass Mistral WindProcess ;
--- MixedTideProcess is the subclass of 
--- TidalProcesses consisting of daily cycles in which the two low and 
--- two high tides are of unequal height. In areas with this kind of 
--- pattern, the chart (based on average low water) is determined by the 
--- Mean Lower Low Water.
-fun MixedTideProcess : Class ;
-fun MixedTideProcess_Class : SubClass MixedTideProcess TidalProcess ;
-
-fun Monsoon : Class ;
-fun Monsoon_Class : SubClass Monsoon WeatherSeason ;
--- MonsoonClimateZone is the class 
--- of TropicalClimateZones in which there is a short dry season between 
--- rains heavy enough to keep the ground wet all through the year. This 
--- is Koeppen climate system subtype 'Aw'.
-fun MonsoonClimateZone : Class ;
-fun MonsoonClimateZone_Class : SubClass MonsoonClimateZone TropicalClimateZone ;
-
--- Moon is the class of NaturalSatellites that 
--- orbit planets or large asteroids.
-fun Moon : Class ;
-fun Moon_Class : SubClass Moon NaturalSatellite ;
-
--- A Mountain is a high, rocky LandForm, usually 
--- with steep sides and a pointed or rounded top, and higher than a Hill.
-fun Mountain : Class ;
-fun Mountain_Class : SubClass Mountain (both LandForm UplandArea) ;
-
-
--- A MountainRange is a row or chain of connected mountains.
-fun MountainRange : Class ;
-fun MountainRange_Class : SubClass MountainRange (both LandForm UplandArea) ;
-
-
--- An area of MountainousTerrain 
--- is an area of rugged terrain in which there are many mountains.
-fun MountainousTerrain : Ind TerrainAttribute ;
-
-
-fun Mudflow : Class ;
-fun Mudflow_Class : SubClass Mudflow Landslide ;
-fun Mudslide : Class ;
-fun Mudslide_Class : SubClass Mudslide Landslide ;
--- NaturalGas is a combustible mixture 
--- of methane and higher hydrocarbons.
-fun NaturalGas : Class ;
-fun NaturalGas_Class : SubClass NaturalGas CompoundSubstance ;
-
--- NaturalSatellite is the class of 
--- large, naturally occurring astronomical bodies orbiting some other 
--- AstronomicalBody.
-fun NaturalSatellite : Class ;
-fun NaturalSatellite_Class : SubClass NaturalSatellite (both AstronomicalBody Satellite) ;
-
-
--- NauticalMile represents the international 
--- unit used for measuring distance in sea and air navigation. The unit is 
--- based on the length of a minute of arc of a great circle of 
--- PlanetEarth.
-fun NauticalMile : Ind UnitOfLength ;
-
-
-fun NormalFault : Class ;
-fun NormalFault_Class : SubClass NormalFault DipSlipFault ;
-fun NorthAmerica : Ind (both GeographicArea Continent) ;
-
--- NorthAtlanticOcean denotes the northern geographicSubregion 
--- of the AtlanticOcean.
-fun NorthAtlanticOcean : Ind (both SaltWaterArea BodyOfWater) ;
-
-
--- NorthPacificOcean denotes the northern geographicSubregion 
--- of the PacificOcean.
-fun NorthPacificOcean : Ind (both SaltWaterArea BodyOfWater) ;
-
-
-fun NorthSea : Ind Sea ;
-
--- Northeast represents the compass direction of Northeast.
-fun Northeast : Ind DirectionalAttribute ;
-
-
-fun NorthernAfrica : Ind GeographicArea ;
-
-fun NorthernAsia : Ind GeographicArea ;
-
-fun NorthernEurope : Ind GeographicArea ;
-
--- The half of the Earth that lies above the 
--- equator.
-fun NorthernHemisphere : Ind Hemisphere ;
-
-
-fun NorthernNorthAmerica : Ind GeographicArea ;
-
-fun NorthernSouthAmerica : Ind GeographicArea ;
-
--- Northwest represents the compass direction of Northwest.
-fun Northwest : Ind DirectionalAttribute ;
-
-
--- NoxiousSubstance is 
--- the class of Substances that are harmful to Humans.
-fun NoxiousSubstance : Class ;
-fun NoxiousSubstance_Class : SubClass NoxiousSubstance Substance ;
-
-fun NuclearEnvironmentalIssue : Ind PollutionIssue ;
-
-fun NuclearPollutionIssue : Ind EnvironmentalIssue ;
-
-fun NuclearTestBanTreaty : Ind Agreement ;
-
--- Oasis is a subclass of LandAreas that are 
--- fertile places within a desert, which have water and some vegetation.
-fun Oasis : Class ;
-fun Oasis_Class : SubClass Oasis (both Biome LandArea) ;
-
-
--- OccludedFront is the class of complex 
--- weather transition processes in which a cold air mass overtakes a warm 
--- air mass.
-fun OccludedFront : Class ;
-fun OccludedFront_Class : SubClass OccludedFront WeatherFront ;
-
--- Ocean is the class containing the oceans 
--- that are the major subdivisions of the WorldOcean. According to 
--- the International Hydrographic Association, there are five oceans: 
--- the AtlanticOcean, PacificOcean, IndianOcean, SouthernOcean, 
--- and ArcticOcean. Note: The largest oceans, the Atlantic and Pacific, 
--- are subdivided into Northern and Southern regions, but those regions 
--- are not separate Oceans.
-fun Ocean : Class ;
-fun Ocean_Class : SubClass Ocean (both BodyOfWater SaltWaterArea) ;
-
-
-fun Oceania : Ind (both GeographicArea Continent) ;
-
-fun OilPollutionIssue : Ind PollutionIssue ;
-
--- OpenSea is the Attribute of a WaterArea 
--- that is open ocean beyond five NauticalMiles of land, also known as 
--- 'blue water'.
-fun OpenSea : Ind Attribute ;
-
-
--- (OuterBoundaryFn ?REGION) denotes the 
--- outer boundary of the Region ?REGION, where ?REGION has an inner and 
--- outer orientation with respect to another object.
-fun OuterBoundaryFn : El Region -> Ind Region ;
-
-
--- OvercastWeather represents
---  a condition in which more than 70% of the sky is covered 
--- with clouds.
-fun OvercastWeather : Class ;
-fun OvercastWeather_Class : SubClass OvercastWeather WeatherProcess ;
-
--- Overgrazing is the class of processes 
--- in which grazing animals consume vegetation faster than it can regrow.
-fun Overgrazing : Class ;
-fun Overgrazing_Class : SubClass Overgrazing Eating ;
-
-fun OvergrazingIssue : Ind EnvironmentalIssue ;
-
-fun OverhuntingIssue : Ind EnvironmentalIssue ;
-
-fun OverpopulationIssue : Ind EnvironmentalIssue ;
-
-fun OzoneDepletionIssue : Ind EnvironmentalIssue ;
-
-fun OzoneLayerProtectionProtocol : Ind Agreement ;
-
--- The OzoneShield is a layer in 
--- EarthsAtmosphere, located about 25 miles above Earth's surface, 
--- composed of ozone gas that absorbs ultraviolent radiation from 
--- the Sun that can be damaging to living things.
-fun OzoneShield : Ind (both AtmosphericRegion CompoundSubstance) ;
-
-
--- PHValue ('pH') is a UnitOfMeasure 
--- used to measure the acidity or alkalinity of a solution. The pH 
--- scale ranges from 0 to 14. The pH of a neutral solution is 7. 
--- Acid solutions have a pH value less than seven. Alkaline solutions 
--- have a value greater than seven.
-fun PHValue : Ind NonCompositeUnitOfMeasure ;
-
-
--- PacificOcean represents the Pacific 
--- Ocean.
-fun PacificOcean : Ind Ocean ;
-
-
--- Pampa is a class of vast, level, typically grassy 
--- Plains of land in South America.
-fun Pampa : Class ;
-fun Pampa_Class : SubClass Pampa (both Grassland Plain) ;
-
-
-fun Pampero : Class ;
-fun Pampero_Class : SubClass Pampero Windstorm ;
--- PartlyCloudyWeather 
--- represents a condition in which between 30% and 70% of the 
--- sky is covered with clouds.
-fun PartlyCloudyWeather : Class ;
-fun PartlyCloudyWeather_Class : SubClass PartlyCloudyWeather WeatherProcess ;
-
--- A Peninsula is a piece of land that extends 
--- into a body of water and is surrounded on three sides by water. Typically 
--- connected by an Isthmus or neck of land that is narrower than its main 
--- portion (contrast with Cape).
-fun Peninsula : Class ;
-fun Peninsula_Class : SubClass Peninsula LandForm ;
-
--- A PerimeterArea is a region that 
--- extends outward from a boundary with another region, surrounding or 
--- partially surrounding it, but which is not part of that other region. 
--- See BorderFn and PerimeterAreaFn.
-fun PerimeterArea : Class ;
-fun PerimeterArea_Class : SubClass PerimeterArea Region ;
-
--- (PerimeterAreaFn ?REGION) denotes a 
--- class including any peripheral zones extending outward from the Region 
--- ?REGION.
-fun PerimeterAreaFn: El Region -> Desc PerimeterArea ;
-
-
-fun Permafrost : Ind CompoundSubstance ;
-
--- PermanentCropLand is the subclass 
--- of LandArea that represents land cultivated for crops that are produced 
--- without replanting after every harvest, such as fruit trees, coffee, rubber, 
--- nuts, and vineyards. Does not include timberland. Cf. arableLandArea.
-fun PermanentCropLand : Class ;
-fun PermanentCropLand_Class : SubClass PermanentCropLand LandArea ;
-
-fun PersianGulf : Ind (both Gulf SaltWaterArea) ;
-
-fun PesticideIssue : Ind EnvironmentalIssue ;
-
--- PesticidePollution is 
--- the subclass of Pollution in which the pollutant is a pesticide.
-fun PesticidePollution : Class ;
-fun PesticidePollution_Class : SubClass PesticidePollution Pollution ;
-
--- Phospate is a salt or ester of a 
--- phosphoric acid.
-fun Phosphate : Class ;
-fun Phosphate_Class : SubClass Phosphate CompoundSubstance ;
-
--- A Piedmont is a LandArea at the foot of mountains.
-fun Piedmont : Class ;
-fun Piedmont_Class : SubClass Piedmont LandArea ;
-
--- Pines are coniferous BotanicalTrees of the 
--- genus Pinus, in the family Pinaceae. They are evergreens, with needle_
--- shaped leaves and propagate by dropping pine cones, which contains
--- seeds. (from Wikipedia)
-fun PineTree : Class ;
-fun PineTree_Class : SubClass PineTree BotanicalTree ;
-
--- A Plain is a broad, flat or gently rolling area, 
--- usually low in elevation.
-fun Plain : Class ;
-fun Plain_Class : SubClass Plain LowlandArea ;
-
--- Planet is the class of large 
--- NaturalSatellites that revolve around a star.
-fun Planet : Class ;
-fun Planet_Class : SubClass Planet NaturalSatellite ;
-
-fun PlanetEarth : Ind Planet ;
-
-fun PlanetJupiter : Ind Planet ;
-
-fun PlanetMars : Ind Planet ;
-
-fun PlanetMercury : Ind Planet ;
-
-fun PlanetNeptune : Ind Planet ;
-
-fun PlanetPluto : Ind Planet ;
-
-fun PlanetSaturn : Ind Planet ;
-
-fun PlanetUranus : Ind Planet ;
-
-fun PlanetVenus : Ind Planet ;
-
--- Planting is the class of processes in 
--- which botanical Plants are planted or transplanted, whether as 
--- seeds, seedlings, or mature plants.
-fun Planting : Class ;
-fun Planting_Class : SubClass Planting Putting ;
-
--- A Plateau is a flat upland area with one steep 
--- face, elevated plain.
-fun Plateau : Class ;
-fun Plateau_Class : SubClass Plateau (both LandForm UplandArea) ;
-
-
--- Poaching is the illegal killing 
--- of non_human animals.
-fun Poaching : Class ;
-fun Poaching_Class : SubClass Poaching Killing ;
-
--- PolarClimateZone is a subclass of 
--- ClimateZone characterized by having an average temperature less than 
--- 10 degrees Celsius in the warmest month. This is Koeppen climate system 
--- Type E. No agriculture is supported in polar climates.
-fun PolarClimateZone : Class ;
-fun PolarClimateZone_Class : SubClass PolarClimateZone ClimateZone ;
-
--- PolarTypeFClimateZone is a 
--- subclass of PolarClimateZone characterized by having no month in 
--- which the temperature rises to 10 degrees Celsius or above.
-fun PolarTypeFClimateZone : Class ;
-fun PolarTypeFClimateZone_Class : SubClass PolarTypeFClimateZone PolarClimateZone ;
-
-fun PollutedFishStocksIssue : Ind EnvironmentalIssue ;
-
--- Pollution is the contamination of an 
--- environment by man_made wastes.
-fun Pollution : Class ;
-fun Pollution_Class : SubClass Pollution SocialInteraction ;
-
-fun PollutionIssue : Class ;
-fun PollutionIssue_Class : SubClass PollutionIssue EnvironmentalIssue ;
-fun PoopoLake : Ind SaltLake ;
-
-fun PopulationMigrationIssue : Ind EnvironmentalIssue ;
-
--- PotableWater is the subclass 
--- of Water that represents safely drinkable water.
-fun PotableWater : Class ;
-fun PotableWater_Class : SubClass PotableWater Freshwater ;
-
--- Potash is a Potassium carbonate from 
--- wood ashes or a potassium compound.
-fun Potash : Class ;
-fun Potash_Class : SubClass Potash CompoundSubstance ;
-
-fun PowerPlantEmissionsIssue : Ind PollutionIssue ;
-
--- Prairie is a class of large plains 
--- LandAreas with tall grass vegetation.
-fun Prairie : Class ;
-fun Prairie_Class : SubClass Prairie (both Grassland Plain) ;
-
-
--- RainForest is the subclass of LandAreas 
--- that are densely planted with trees.
-fun RainForest : Class ;
-fun RainForest_Class : SubClass RainForest (both Biome Forest) ;
-
-
--- Raining is a precipitation process 
--- in which water falls in a Liquid state.
-fun Raining : Class ;
-fun Raining_Class : SubClass Raining Precipitation ;
-
--- Rapids is the class of WaterAreas that are 
--- parts of a StreamWaterArea where the currents move swiftly over 
--- rocks.
-fun Rapids : Class ;
-fun Rapids_Class : SubClass Rapids StreamWaterArea ;
-
-fun RawSewagePollutionIssue : Ind PollutionIssue ;
-
-fun RedSea : Ind Sea ;
-
--- A Reef is a ridge of rock, coral, or sand at or near 
--- the surface of a WaterArea.
-fun Reef : Class ;
-fun Reef_Class : SubClass Reef (both LandForm MaritimeHazard) ;
-
-
--- Reforestation is the process of 
--- replanting trees on land where they were cut or burned.
-fun Reforestation : Class ;
-fun Reforestation_Class : SubClass Reforestation Planting ;
-
--- A Reservoir is an artifically made (or 
--- artifically enlarged) holding area where water is collected and stored 
--- for future use.
-fun Reservoir : Class ;
-fun Reservoir_Class : SubClass Reservoir (both Artifact FreshWaterArea) ;
-
-
--- A ReservoirLake is an artifically made 
--- (or artifically enlarged) lake used for water collection and storage.
-fun ReservoirLake : Class ;
-fun ReservoirLake_Class : SubClass ReservoirLake (both Lake Reservoir) ;
-
-
--- A RichterMagnitude is a measure 
--- of the severity of an EarthTremor. For example, 
--- (MeasureFn 6.5 RichterMagnitude) denotes the value of 6.5 on the 
--- Richter scale.
-fun RichterMagnitude : Ind CompositeUnitOfMeasure ;
-
-
--- A RipCurrent is a fast narrow surface current 
--- that flows seaward from a ShoreArea.
-fun RipCurrent : Class ;
-fun RipCurrent_Class : SubClass RipCurrent LittoralCurrent ;
-
--- River is the class of large streams of fresh 
--- water flowing through land into a lake, ocean, or other body of water.
-fun River : Class ;
-fun River_Class : SubClass River (both BodyOfWater (both FreshWaterArea StreamWaterArea)) ;
-
-
--- A RiverBank is the ShoreArea adjacent to a river.
-fun RiverBank : Class ;
-fun RiverBank_Class : SubClass RiverBank (both LandForm ShoreArea) ;
-
-
--- RiverMouth is the subclass of WaterAreas 
--- that are the outfalls of a river or stream into another body of water.
-fun RiverMouth : Class ;
-fun RiverMouth_Class : SubClass RiverMouth (both StreamWaterArea WaterArea) ;
-
-
--- A RiverSystem comprises all the tributary 
--- streams and rivers (StreamWaterAreas) that drain along converging 
--- paths into the main river of the system, which discharges into a 
--- StaticWaterArea.
-fun RiverSystem : Class ;
-fun RiverSystem_Class : SubClass RiverSystem (both Collection WaterArea) ;
-
-
-fun Rockslide : Class ;
-fun Rockslide_Class : SubClass Rockslide Landslide ;
--- Salination is the class of processes 
--- in which either Freshwater or Topsoil becomes imbued with 
--- SodiumChloride from sea water or from the evaporation of irrigation water.
-fun Salination : Class ;
-fun Salination_Class : SubClass Salination Combining ;
-
--- A Salt is a chemical substance which is a combination 
--- of a metal or a base with an acid.
-fun Salt : Class ;
-fun Salt_Class : SubClass Salt CompoundSubstance ;
-
--- SaltLake is the class of landlocked 
--- bodies of salt water, including those referred to as 'Seas', e.g., 
--- the CaspianSea. But note that the MediterraneanSea is a Sea.
-fun SaltLake : Class ;
-fun SaltLake_Class : SubClass SaltLake (both LandlockedWater SaltWaterArea) ;
-
-
-fun SaltonSea : Ind SaltLake ;
-
--- Sand is loose fragments of minerals or rocks. Smaller than 
--- gravel and larger than silt and clay, sand particles range from 8/10,000 to 8/100 
--- inch (0.02 to 2 millimeters) in diameter. Sand is formed by the Erosion of rocks 
--- through the action of water, ice, or air.
-fun Sand : Class ;
-fun Sand_Class : SubClass Sand Soil ;
-
-fun Sandstorm : Class ;
-fun Sandstorm_Class : SubClass Sandstorm WeatherProcess ;
--- Sanitation is the class of processes 
--- by which human waste and garbage are disposed of.
-fun Sanitation : Class ;
-fun Sanitation_Class : SubClass Sanitation Removing ;
-
--- Satellite is the collection of bodies that 
--- revolve around some astronomical body, e.g., planets around a star. 
--- This class includes both artificial and NaturalSatellites.
-fun Satellite : Class ;
-fun Satellite_Class : SubClass Satellite AstronomicalBody ;
-
--- Savanna is a class of tropical or subtropical 
--- Grasslands, typically treeless.
-fun Savanna : Class ;
-fun Savanna_Class : SubClass Savanna (both Grassland Plain) ;
-
-
--- ScatteredVegetation describes 
--- the pattern of vegetation in which plants appear at intervals.
-fun ScatteredVegetation : Ind Attribute ;
-
-
--- Sea is the class of smaller subdivisions of 
--- the WorldOcean, typically partially surrounded by land. However, 
--- for inland salt water bodies that are sometimes called 'Sea', see 
--- SaltLake.
-fun Sea : Class ;
-fun Sea_Class : SubClass Sea (both BodyOfWater SaltWaterArea) ;
-
-
-fun SeaIce : Class ;
-fun SeaIce_Class : SubClass SeaIce Ice ;
--- SeaLevel designates the global Mean Sea Surface 
--- (MSS). Note that SeaLevel represents a GeographicArea that comprises all 
--- the local Mean Sea Level (MSL) areas used as references for measuring altitude. 
--- In fact, there are local variations in MSL, due to tides and long_ and short_
--- term weather conditions.
-fun SeaLevel : Ind GeographicArea ;
-
-
--- SeabedArea is the class of SubmergedLandAreas that are part of 
--- the sea floor.
-fun SeabedArea : Class ;
-fun SeabedArea_Class : SubClass SeabedArea SubmergedLandArea ;
-
--- A Seacoast is the ShoreArea along the 
--- margin of an ocean, extending inland approximately 1_3 km from the low 
--- water mark.
-fun Seacoast : Class ;
-fun Seacoast_Class : SubClass Seacoast (both LandForm ShoreArea) ;
-
-
-fun SemiaridClimateZone : Class ;
-fun SemiaridClimateZone_Class : SubClass SemiaridClimateZone ClimateZone ;
-fun SevereThunderstorm : Class ;
-fun SevereThunderstorm_Class : SubClass SevereThunderstorm WeatherProcess ;
-fun SewageDisposal : Class ;
-fun SewageDisposal_Class : SubClass SewageDisposal Sanitation ;
-fun ShipPollutionProtocol : Ind Agreement ;
-
-fun Shoal : Class ;
-fun Shoal_Class : SubClass Shoal MaritimeHazard ;
--- Shoreline is the class of LandAreas that 
--- are the edge of a larger land mass abutting a bordering WaterArea.
-fun Shoreline : Class ;
-fun Shoreline_Class : SubClass Shoreline LandArea ;
-
--- (ShorelineFn ?LAND ?WATER) denotes 
--- the Shoreline where the GeographicArea ?LAND borders the 
--- WaterArea ?WATER.
-fun ShorelineFn : El GeographicArea -> El WaterArea -> Ind LandArea ;
-
-
--- (ShortageFn ?TYPE) means that there 
--- is a shortage of objects of ?TYPE, which are used as resources.
-fun ShortageFn: Desc Object -> Ind Entity ;
-
-
--- Shrub is the class of low, perennial, 
--- typically multi_stemmed woody plants, called shrubs or bushes.
-fun Shrub : Class ;
-fun Shrub_Class : SubClass Shrub FloweringPlant ;
-
--- SigningADocument is the class of 
--- actions in which an agent affixes a signature, stamp, or other evidence 
--- of authorization or attestation to a document. The document and signature 
--- may be electronic. Signings count as SocialInteractions even if done in 
--- private, because their significance derives from a social context.
-fun SigningADocument : Class ;
-fun SigningADocument_Class : SubClass SigningADocument Committing ;
-
--- Silt is sand or earth which is carried along by flowing 
--- water and deposited at a bend in a river or at a river's opening.
-fun Silt : Class ;
-fun Silt_Class : SubClass Silt Soil ;
-
--- Siltation is the class of processes 
--- in which WaterAreas become filled in with silt or mud, due to 
--- soil Erosion.
-fun Siltation : Class ;
-fun Siltation_Class : SubClass Siltation Putting ;
-
-fun SiltationIssue : Ind EnvironmentalIssue ;
-
-fun Sirocco : Class ;
-fun Sirocco_Class : SubClass Sirocco WindProcess ;
--- SlashAndBurnAgriculture 
--- is the subclass of Agriculture processes in which land is 
--- cleared by cutting and burning trees, and crops are farmed until 
--- the soil is depleted, at which point the plot is abandoned to 
--- regrowth. This rotational technique is viable only with low 
--- populations and infrequent re_use.
-fun SlashAndBurnAgriculture : Class ;
-fun SlashAndBurnAgriculture_Class : SubClass SlashAndBurnAgriculture Agriculture ;
-
-fun Sleeting : Class ;
-fun Sleeting_Class : SubClass Sleeting Precipitation ;
--- A SlopedArea is a land surface which lies at 
--- an angle to the horizontal so that some points on it are higher than 
--- others, a slope.
-fun SlopedArea : Class ;
-fun SlopedArea_Class : SubClass SlopedArea LandForm ;
-
--- Snowing is a precipitation process 
--- in which water falls in a Solid state.
-fun Snowing : Class ;
-fun Snowing_Class : SubClass Snowing Precipitation ;
-
-fun SocialInteractions : Class ;
-
--- Soil is a substance composed of fine rock material 
--- disintegrated by geological processes, mixed with humus, the organic remains of decomposed vegetation.
-fun Soil : Class ;
-fun Soil_Class : SubClass Soil Mixture ;
-
--- SoilDegradation is a class of 
--- processes in which the productive capacity of soil is lowered by 
--- over_fertilization, overuse of pesticides, erosion, or soil 
--- compaction.
-fun SoilDegradation : Class ;
-fun SoilDegradation_Class : SubClass SoilDegradation SocialInteractions ;
-
-fun SoilDegradationIssue : Ind SoilQualityIssue ;
-
--- SoilErosion is the subclass of 
--- Erosion in which the matter removed by wind or water is topsoil.
-fun SoilErosion : Class ;
-fun SoilErosion_Class : SubClass SoilErosion Erosion ;
-
-fun SoilErosionIssue : Ind SoilQualityIssue ;
-
-fun SoilExhaustionIssue : Ind SoilQualityIssue ;
-
-fun SoilPollutionIssue : Ind (both PollutionIssue SoilQualityIssue) ;
-
-fun SoilQualityIssue : Class ;
-fun SoilQualityIssue_Class : SubClass SoilQualityIssue EnvironmentalIssue ;
-fun SoilSalination : Class ;
-fun SoilSalination_Class : SubClass SoilSalination Salination ;
-fun SoilSalinityIssue : Ind SoilQualityIssue ;
-
--- SoilSolution is the liquid component of soils, 
--- which is largely water containing a number of mineral substances in solution, 
--- as well as comparatively large amounts of dissolved oxygen and carbon dioxide.
-fun SoilSolution : Class ;
-fun SoilSolution_Class : SubClass SoilSolution Solution ;
-
--- Sol is the nearest Star to PlanetEarth and 
--- the focus of its SolarSystem.
-fun Sol : Ind Star ;
-
-
--- SolarSystem is the class of systems that 
--- consist of a star or stars and any encircling astronomical bodies.
-fun SolarSystem : Class ;
-fun SolarSystem_Class : SubClass SolarSystem Collection ;
-
-fun SolidWasteDisposal : Class ;
-fun SolidWasteDisposal_Class : SubClass SolidWasteDisposal Sanitation ;
-fun SolidWasteDisposalIssue : Ind PollutionIssue ;
-
--- A Sound is a long, relatively narrow waterway 
--- lying along the shore of a land mass and protected from open water by 
--- another land area, an island or group of islands. Some sounds open at 
--- both ends into the same body of water (e.g., Long Island Sound), while 
--- others connect two different bodies of water (e.g., Melville Sound). 
--- A Sound may occur in salt or fresh water bodies. Generally wider than 
--- a Strait.
-fun Sound : Class ;
-fun Sound_Class : SubClass Sound BodyOfWater ;
-
-fun SouthAmerica : Ind Continent ;
-
--- SouthAtlanticOcean denotes the southern geographicSubregion 
--- of the AtlanticOcean.
-fun SouthAtlanticOcean : Ind (both SaltWaterArea BodyOfWater) ;
-
-
--- SouthPacificOcean denotes the southern geographicSubregion 
--- of the PacificOcean.
-fun SouthPacificOcean : Ind (both SaltWaterArea BodyOfWater) ;
-
-
-fun SouthSandwichTrench : Ind Hole ;
-
--- Southeast represents the compass direction of Southeast.
-fun Southeast : Ind DirectionalAttribute ;
-
-
-fun SoutheasternAsia : Ind GeographicArea ;
-
-fun SoutheasternEurope : Ind GeographicArea ;
-
-fun SouthernAfrica : Ind GeographicArea ;
-
-fun SouthernAsia : Ind GeographicArea ;
-
-fun SouthernEurope : Ind GeographicArea ;
-
--- The half of the Earth that lies below the 
--- equator.
-fun SouthernHemisphere : Ind Hemisphere ;
-
-
--- SouthernOcean represents the Southern 
--- Ocean.
-fun SouthernOcean : Ind (both Ocean PolarClimateZone) ;
-
-
-fun SouthernSouthAmerica : Ind GeographicArea ;
-
--- Southwest represents the compass direction of Southwest.
-fun Southwest : Ind DirectionalAttribute ;
-
-
-fun SouthwesternAsia : Ind GeographicArea ;
-
-fun SouthwesternEurope : Ind GeographicArea ;
-
--- SparseVegetation describes the 
--- pattern of vegetation in an area where there is very little vegetation.
-fun SparseVegetation : Ind Attribute ;
-
-
-fun Squall : Class ;
-fun Squall_Class : SubClass Squall WeatherProcess ;
--- SquareKilometer represents a 
--- UnitOfMeasure equal to one square kilometer.
-fun SquareKilometer : Ind UnitOfArea ;
-
-
--- SquareMeter represents a UnitOfMeasure 
--- equal to one square Meter.
-fun SquareMeter : Ind UnitOfArea ;
-
-
--- (SquareUnitFn ?UNIT) denotes the 
--- UnitOfMeasure that is the square of the UnitOfMeasure ?UNIT. 
--- For example, (SquareUnitFn (KiloFn Meter)) denotes the unit 
--- of a square kilometer.
-fun SquareUnitFn : El UnitOfMeasure -> Ind UnitOfMeasure ;
-
-
--- Star is the class of hot gaseous astronomical bodies.
-fun Star : Class ;
-fun Star_Class : SubClass Star AstronomicalBody ;
-
--- StationaryFront is the class of 
--- boundary areas between two air masses that are stationary, with neither 
--- mass presently replacing the other.
-fun StationaryFront : Class ;
-fun StationaryFront_Class : SubClass StationaryFront WeatherFront ;
-
--- A TerrainAttribute of a region in 
--- which there is a wide variation in elevation and slopeGradients 
--- of more than 10%.
-fun SteepTerrain : Ind TerrainAttribute ;
-
-
--- Steppe is a subclass of Plain, representing 
--- vast, level, treeless areas of land in Asia or SE Europe.
-fun Steppe : Class ;
-fun Steppe_Class : SubClass Steppe Plain ;
-
--- SteppeClimateZone 
--- is the class of AridClimateZones where the dominant 
--- vegetation type is grasses, with no trees. Koeppen 
--- system 'BS'.
-fun SteppeClimateZone : Class ;
-fun SteppeClimateZone_Class : SubClass SteppeClimateZone AridClimateZone ;
-
--- A Stone is any small fragment of rock or mineral matter.
-fun Stone : Class ;
-fun Stone_Class : SubClass Stone Rock ;
-
-fun StormSystem : Class ;
-fun StormSystem_Class : SubClass StormSystem WeatherSystem ;
--- Strait is the subclass of BodyOfWater that 
--- consists of narrow water areas connecting two larger bodies of water. 
--- Straits are naturally occurring bodies of water.
-fun Strait : Class ;
-fun Strait_Class : SubClass Strait BodyOfWater ;
-
-fun StraitOfHormuz : Ind (both Strait SaltWaterArea) ;
-
--- A StreamWaterConfluence is the 
--- place where a stream or other tributary joins a river.
-fun StreamWaterConfluence : Class ;
-fun StreamWaterConfluence_Class : SubClass StreamWaterConfluence WaterArea ;
-
-fun StrikeSlipFault : Class ;
-fun StrikeSlipFault_Class : SubClass StrikeSlipFault GeologicalFault ;
-fun StrongWind : Class ;
-fun StrongWind_Class : SubClass StrongWind WindProcess ;
--- SubmergedLandArea is the class of land 
--- regions that are located beneath bodies of water.
-fun SubmergedLandArea : Class ;
-fun SubmergedLandArea_Class : SubClass SubmergedLandArea GeographicArea ;
-
--- SubtropicalDesertClimateZone is a subclass of DesertClimateZone 
--- that is characterized by an average temperature greater than 18 
--- degrees Celsius, as well as very low rainfall. This is Koeppen 
--- system 'BWh'.
-fun SubtropicalDesertClimateZone : Class ;
-fun SubtropicalDesertClimateZone_Class : SubClass SubtropicalDesertClimateZone DesertClimateZone ;
-
--- SurfaceGroundArea is a subclass of 
--- GeographicArea that is restricted to regions whose surface is solid 
--- ground. A SurfaceGroundArea may be a discontinuous region overlapping 
--- a larger, continuous GeographicArea but excluding any WaterAreas 
--- enclosed therein. Rivers, lakes, reservoirs and other surface water areas 
--- are not part of any SurfaceGroundArea.
-fun SurfaceGroundArea : Class ;
-fun SurfaceGroundArea_Class : SubClass SurfaceGroundArea GeographicArea ;
-
-fun Swarming : Class ;
-fun Swarming_Class : SubClass Swarming Motion ;
--- Tailwind is the relative attribute of a 
--- Wind to an object when the force of the wind is applied to the back 
--- of the object (BackFn). A tailwind can positively affect the speed 
--- capability of a vehicle.
-fun Tailwind : Ind Attribute ;
-
-
--- Talc is a very soft Mineral that is 
--- a basic silicate of magnesium.
-fun Talc : Class ;
-fun Talc_Class : SubClass Talc Mineral ;
-
--- TemperateClimateZone is the 
--- subclass of ClimateZone whose warmest month has an average 
--- temperature greater than 10 degrees Celsius and whose coolest month 
--- has an average temperature between 18 degrees and _3 degrees Celsius. 
--- This is Class C in the Koeppen climate system.
-fun TemperateClimateZone : Class ;
-fun TemperateClimateZone_Class : SubClass TemperateClimateZone ClimateZone ;
-
-fun TemperateHardwoodForest : Class ;
-fun TemperateHardwoodForest_Class : SubClass TemperateHardwoodForest (both Biome Forest) ;
-
-fun TemperateRainForest : Class ;
-fun TemperateRainForest_Class : SubClass TemperateRainForest (both RainForest TemperateHardwoodForest) ;
-
--- TemperateSummerDryClimateZone is the subclass of TemperateClimateZone 
--- that is characterized by dry summers, and in which the wettest winter month 
--- has at least three times the moisture of the driest summer month. The 
--- driest month has less than an average of 30 mm of precipitation. Koeppen 
--- climate system type 'Cs'.
-fun TemperateSummerDryClimateZone : Class ;
-fun TemperateSummerDryClimateZone_Class : SubClass TemperateSummerDryClimateZone TemperateClimateZone ;
-
--- TemperateWinterDryClimateZone is a subclass of TemperateClimateZone 
--- characterized by having at least 10 times as much precipitation in the 
--- wettest summer month as in the driest winter month. Koeppen climate 
--- system type 'Cw'.
-fun TemperateWinterDryClimateZone : Class ;
-fun TemperateWinterDryClimateZone_Class : SubClass TemperateWinterDryClimateZone TemperateClimateZone ;
-
--- TerrainAttribute is a class of 
--- Attributes that describe terrain.
-fun TerrainAttribute : Class ;
-fun TerrainAttribute_Class : SubClass TerrainAttribute InternalAttribute ;
-
--- TerritorialSea is the class 
--- of contiguous waters over which a GeopoliticalArea claims 
--- jurisdiction in accordance with the United Nations Convention 
--- on the LawOfTheSea (LOS), Part II. A territorial sea may be
--- up to 12 miles (NauticalMiles) in breadth. A subclass of 
--- MaritimeClaimArea.
-fun TerritorialSea : Class ;
-fun TerritorialSea_Class : SubClass TerritorialSea (both MaritimeClaimArea SaltWaterArea) ;
-
-
--- (TerritorialSeaFn ?POLITY) denotes 
--- the TerritorialSea that is claimed by the GeopoliticalArea ?POLITY.
-fun TerritorialSeaFn : El GeopoliticalArea -> Ind TerritorialSea ;
-
-
-fun ThrustFault : Class ;
-fun ThrustFault_Class : SubClass ThrustFault DipSlipFault ;
-fun Thunderstorm : Class ;
-fun Thunderstorm_Class : SubClass Thunderstorm WeatherProcess ;
--- A TidalBore is an unusally high, fast tidal 
--- inflow from the sea, resulting from a high volume of water rushing from 
--- a wide_mouthed bay or Estuary into narrower landward areas.
-fun TidalBore : Class ;
-fun TidalBore_Class : SubClass TidalBore LittoralCurrent ;
-
--- TidalEbb is the subclass of WaterCurrents 
--- that are temporary and variable, but regular, currents of ocean water 
--- flowing seaward up to and during the time of low tide. Alternating with 
--- TidalFlow.
-fun TidalEbb : Class ;
-fun TidalEbb_Class : SubClass TidalEbb LittoralCurrent ;
-
--- TidalFlow is the subclass of WaterCurrents 
--- that are temporary and variable, but regular, currents of ocean water 
--- flowing landward up to and during the time of high tide. Alternating 
--- with TidalEbb.
-fun TidalFlow : Class ;
-fun TidalFlow_Class : SubClass TidalFlow LittoralCurrent ;
-
--- TidalProcess is the class of daily 
--- recurring events in which the water level in a BodyOfWater rises 
--- and falls with the changing position between Earth and the Moon.
-fun TidalProcess : Class ;
-fun TidalProcess_Class : SubClass TidalProcess InternalChange ;
-
--- A Tide is a vertical movement of the water level 
--- in a BodyOfWater due to the gravitational attraction between Earth and 
--- the moon. Tides are diurnally recurrent events. In most regions with 
--- tides, every day there are two high tides and two low tides. MixedTide 
--- represents a process in which the tides at either extreme are unequal.
-fun Tide : Class ;
-fun Tide_Class : SubClass Tide (both FlowRegion SaltWaterArea) ;
-
-
-fun Tornado : Class ;
-fun Tornado_Class : SubClass Tornado WeatherProcess ;
-fun ToxicChemicalPollutionIssue : Ind PollutionIssue ;
-
-fun ToxicWasteDisposalIssue : Ind PollutionIssue ;
-
--- TreatyDocument is the subclass of 
--- Texts that represent written agreements between Nations.
-fun TreatyDocument : Class ;
-fun TreatyDocument_Class : SubClass TreatyDocument Text ;
-
--- TropicalClimateZone is a 
--- subclass of ClimateZone in which the average temperature of the 
--- coldest month is greater than 18 degrees Celsius. This is Class 
--- 'A' in the Koeppen climate classification system.
-fun TropicalClimateZone : Class ;
-fun TropicalClimateZone_Class : SubClass TropicalClimateZone ClimateZone ;
-
--- TropicalCyclone is the class of 
--- CyclonicStorms that occur in the Tropics and typically have 
--- rotational winds of hurricane force (74 mph or higher).
-fun TropicalCyclone : Class ;
-fun TropicalCyclone_Class : SubClass TropicalCyclone CyclonicStorm ;
-
-fun TropicalRainForest : Class ;
-fun TropicalRainForest_Class : SubClass TropicalRainForest RainForest ;
-fun TropicalTimber83Agreement : Ind Agreement ;
-
-fun TropicalTimber94Agreement : Ind Agreement ;
-
--- The Tropics is the region of 
--- PlanetEarth that lies between approximately 23 and one half degrees 
--- North latitude and 23 and one half degrees South latitude, 
--- encircling the globe. 'The Tropics'. See also TropicArea.
-fun Tropics : Ind GeographicArea ;
-
-
--- Tsunami is the class of highly destructive 
--- ocean waves caused by offshore seismic processes.
-fun Tsunami : Class ;
-fun Tsunami_Class : SubClass Tsunami WeatherProcess ;
-
--- Tundra is a subclass of flat, treeless Plains 
--- areas lying within the ArcticRegion. Subsoil in Tundra is permanently 
--- frozen.
-fun Tundra : Class ;
-fun Tundra_Class : SubClass Tundra (both ArcticRegion (both Biome Plain)) ;
-
-
--- TundraClimateZone is a subclass of 
--- PolarClimateZone characterized by having an average temperature 
--- above zero degrees Celsius (but below 10 degrees) in the warmest month. 
--- Koeppen subtype 'ET'.
-fun TundraClimateZone : Class ;
-fun TundraClimateZone_Class : SubClass TundraClimateZone PolarClimateZone ;
-
-fun Typhoon : Class ;
-fun Typhoon_Class : SubClass Typhoon TropicalCyclone ;
-fun UVLevelsIssue : Ind EnvironmentalIssue ;
-
--- The class of regions located Below the surface of the earth.
-fun UndergroundArea : Class ;
-fun UndergroundArea_Class : SubClass UndergroundArea GeographicArea ;
-
-fun UnexplodedOrdinanceIssue : Ind EnvironmentalIssue ;
-
--- A UniformPerimeterArea is one 
--- that has a defined uniform width.
-fun UniformPerimeterArea : Class ;
-fun UniformPerimeterArea_Class : SubClass UniformPerimeterArea PerimeterArea ;
-
--- Uphill is a PositionalAttribute that 
--- describes the relation between two things, one of which is located 
--- up a slope from the other.
-fun Uphill : Ind PositionalAttribute ;
-
-
--- An UplandArea is a LandArea elevated above the surrounding 
--- terrain.
-fun UplandArea : Class ;
-fun UplandArea_Class : SubClass UplandArea LandForm ;
-
-fun Upstream : Ind PositionalAttribute ;
-
--- Upwind is a PositionalAttribute that indicates relative position 
--- upwind (windward) with respect to the direction that the Wind is 
--- blowing.
-fun Upwind : Ind PositionalAttribute ;
-
-
-fun UrbanizationIssue : Ind EnvironmentalIssue ;
-
--- A Valley is an area of low_lying land flanked by 
--- higher ground. Valleys typically contain a stream or river flowing along the valley floor.
-fun Valley : Class ;
-fun Valley_Class : SubClass Valley (both LandForm LowlandArea) ;
-
-
-fun VehicleEmissionsIssue : Ind PollutionIssue ;
-
--- VehicularPollution is the 
--- subclass of Pollution in which the pollutants are vehicle emissions.
-fun VehicularPollution : Class ;
-fun VehicularPollution_Class : SubClass VehicularPollution Pollution ;
-
--- Veldt is a subclass of Grasslands which have 
--- scattered shrubs or trees.
-fun Veldt : Class ;
-fun Veldt_Class : SubClass Veldt (both Grassland Plain) ;
-
-
--- A VolcanicCone is a hill of lava or 
--- pyroclastics surrounding a volcanic vent. Not as high as a 
--- VolcanicMountain.
-fun VolcanicCone : Class ;
-fun VolcanicCone_Class : SubClass VolcanicCone (both Hill Volcano) ;
-
-
--- VolcanicEruption is the subclass of 
--- GeologicalProcesses in which Volcanoes erupt.
-fun VolcanicEruption : Class ;
-fun VolcanicEruption_Class : SubClass VolcanicEruption GeologicalProcess ;
-
-fun VolcanicGasRelease : Class ;
-fun VolcanicGasRelease_Class : SubClass VolcanicGasRelease VolcanicEruption ;
--- A VolcanicMountain is a cone_shaped 
--- mountain formed out of rock or ash thrown up from inside the earth, 
--- frequently with an opening or depression at the top.
-fun VolcanicMountain : Class ;
-fun VolcanicMountain_Class : SubClass VolcanicMountain (both Mountain Volcano) ;
-
-
-fun VolcanicallyActive : Ind VolcanoStatus ;
-
-fun VolcanicallyDormant : Ind VolcanoStatus ;
-
-fun VolcanicallyExtinct : Ind VolcanoStatus ;
-
--- A Volcano in the broadest sense, i.e., a region 
--- containing a vent through which magmous and/or pyroclastic materials are 
--- passed from the interior of the Earth to its surface (atmospheric or 
--- underwater).
-fun Volcano : Class ;
-fun Volcano_Class : SubClass Volcano LandForm ;
-
-fun VolcanoStatus : Class ;
-fun VolcanoStatus_Class : SubClass VolcanoStatus InternalAttribute ;
--- WarmFront is the class of transitional 
--- weather processes occurring between a warm air mass that is advancing 
--- upon a cool air mass.
-fun WarmFront : Class ;
-fun WarmFront_Class : SubClass WarmFront WeatherFront ;
-
-fun WaterBorneDiseaseIssue : Ind EnvironmentalIssue ;
-
--- WaterCatchment is the subclass of 
--- Artifacts used to capture rainwater or runoff as a source 
--- of Freshwater.
-fun WaterCatchment : Class ;
-fun WaterCatchment_Class : SubClass WaterCatchment Artifact ;
-
--- WaterCurrent is a subclass of FlowRegions 
--- consisting of moving water, especially those currents found within a 
--- well_identified area and having an established pattern of movement, such 
--- as an OceanCurrent, a RipTide, or a River. WaterCurrent is 
--- disjoint with StaticWaterArea. As a consequence, Lakes for example 
--- cannot be FlowRegions, however, currents may be present in a lake.
-fun WaterCurrent : Class ;
-fun WaterCurrent_Class : SubClass WaterCurrent (both FlowRegion WaterArea) ;
-
-
-fun WaterInfrastructureIssue : Ind EnvironmentalIssue ;
-
-fun WaterManagementIssue : Ind EnvironmentalIssue ;
-
--- WaterOnlyArea is a subclass of 
--- GeographicArea that is restricted to regions whose surface is water. 
--- A WaterOnlyArea may be a discontinuous region overlapping a larger, 
--- continuous GeographicArea but excluding any LandAreas enclosed therein. 
--- Dry land areas, including islands, are not part of any WaterOnlyArea.
-fun WaterOnlyArea : Class ;
-fun WaterOnlyArea_Class : SubClass WaterOnlyArea GeographicArea ;
-
-fun WaterOverutilization : Class ;
-fun WaterOverutilization_Class : SubClass WaterOverutilization SocialInteraction ;
--- WaterPollution is the subclass 
--- of Pollution processes in which Water is the polluted substance.
-fun WaterPollution : Class ;
-fun WaterPollution_Class : SubClass WaterPollution Pollution ;
-
-fun WaterPollutionIssue : Ind EnvironmentalWaterIssue ;
-
--- Waterfall is the subclass of StreamWaterAreas where running water 
--- falls steeply downhill.
-fun Waterfall : Class ;
-fun Waterfall_Class : SubClass Waterfall StreamWaterArea ;
-
--- A WatershedDivide is a summit area, or 
--- narrow tract of higher ground that constitutes the watershed boundary 
--- between two adjacent drainage basins, it divides the surface waters that 
--- flow naturally in one direction from those that flow in the opposite 
--- direction.
-fun WatershedDivide : Class ;
-fun WatershedDivide_Class : SubClass WatershedDivide (both LandArea UplandArea) ;
-
-
-fun Waterspout : Class ;
-fun Waterspout_Class : SubClass Waterspout WeatherProcess ;
--- WeatherFront is the class of weather 
--- processes that are involve relationships between two air masses, such 
--- as a high pressure weather system or a low pressure system.
-fun WeatherFront : Class ;
-fun WeatherFront_Class : SubClass WeatherFront WeatherProcess ;
-
--- WeatherSeason is the class of seasonal 
--- processes that are characterized by various weather patterns. 
--- WeatherSeasons may recur on a regular annual basis, on a different 
--- pattern, or irregularly.
-fun WeatherSeason : Class ;
-fun WeatherSeason_Class : SubClass WeatherSeason WeatherProcess ;
-
--- WeatherSystem is the class of 
--- large_scale atmospheric processes that influence weather in a region 
--- for 2_5 days.
-fun WeatherSystem : Class ;
-fun WeatherSystem_Class : SubClass WeatherSystem WeatherProcess ;
-
-fun WesternAfrica : Ind GeographicArea ;
-
-fun WesternEurope : Ind GeographicArea ;
-
--- The half of the Earth that includes North 
--- and South America.
-fun WesternHemisphere : Ind Hemisphere ;
-
-
-fun WesternSouthAmerica : Ind GeographicArea ;
-
--- WetTropicalClimateZone is 
--- the subclass of TropicalClimateZone that is characterized by having 
--- no dry months. At least 60 mm of rainfall occur in the driest month. 
--- This is subtype 'Af' in the Koeppen climate system.
-fun WetTropicalClimateZone : Class ;
-fun WetTropicalClimateZone_Class : SubClass WetTropicalClimateZone TropicalClimateZone ;
-
-fun WetlandDegradationIssue : Ind EnvironmentalIssue ;
-
-fun WetlandsConvention : Ind Agreement ;
-
-fun WhalingConvention : Ind Agreement ;
-
-fun WildlifePoachingIssue : Ind EnvironmentalIssue ;
-
--- WindFlow is the class of variable AirStreams 
--- that are in the EarthsAtmosphere.
-fun WindFlow : Class ;
-fun WindFlow_Class : SubClass WindFlow AirStream ;
-
-fun WindProcess : Class ;
-fun WindProcess_Class : SubClass WindProcess WeatherProcess ;
-fun Windstorm : Class ;
-fun Windstorm_Class : SubClass Windstorm WindProcess ;
--- The WorldOcean is the collective mass of 
--- sea water that covers 70% of the surface of PlanetEarth, surrounding 
--- all of its dry land areas. Earth's individual Oceans are parts of 
--- the WorldOcean.
-fun WorldOcean : Ind (both SaltWaterArea BodyOfWater) ;
-
-
-fun Zud : Class ;
-fun Zud_Class : SubClass Zud WeatherProcess ;
--- (airTemperature ?AREA ?TEMP) means that the temperature of the 
--- air at ?AREA is ?TEMP. Temperature may be expressed in units of 
--- TemperatureMeasure, including CelsiusDegree and FahrenheitDegree, 
--- among others.
-fun airTemperature : El Object -> El TemperatureMeasure -> Formula ;
-
-
--- (arableLandArea ?REGION ?AMOUNT) 
--- means that the GeographicArea ?REGION has ?AMOUNT of land under 
--- cultivation with crops that are replanted after each harvest. ?AMOUNT 
--- may be expressed in physical units or with a percent or fraction.
--- Cf. permanentCropLandArea.
-fun arableLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
-
-
--- (averagePrecipitationForPeriod ?PLACE ?PERIOD ?AMOUNT) means 
--- that at the GeographicArea ?PLACE, and during the TimeDuration 
--- ?PERIOD, the average daily precipitation was ?AMOUNT.
-fun averagePrecipitationForPeriod : El GeographicArea -> El TimeDuration -> El ConstantQuantity -> Formula ;
-
-
--- (averageRainfallForPeriod ?AREA ?MO ?AMOUNT)
--- means that ?AREA receives ?AMOUNT of rain in month ?MO in an average
--- year. Note that ?AMOUNT is a linear measure indicating the depth of water that
--- would accumulate over ?AREA if all water were captured.
-fun averageRainfallForPeriod : El GeographicArea -> El Month -> El LengthMeasure -> Formula ;
-
-
--- (averageTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
--- at the GeographicArea ?PLACE, and during the TimeDuration 
--- ?PERIOD, the average daily temperature was ?AMOUNT. Temperature 
--- may be expressed in some UnitOfTemperature, including 
--- CelsiusDegree and FahrenheitDegree, among others.
-fun averageTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
-
-
--- (bioindicatorForHabitat ?AREA ?SPECIES) means that the health 
--- of the individuals in ?SPECIES indicates the condition of their 
--- habitat in the GeographicArea ?AREA.
-fun bioindicatorForHabitat: El GeographicArea -> Desc OrganicObject -> Formula ;
-
-
--- (claimedTerritory ?AREA ?POLITY) 
--- means that some right over the GeographicArea ?AREA is claimed by 
--- the Agent or GeopoliticalArea ?POLITY. If two politically independent 
--- states or agents claim the same area, that area is a 'disputed 
--- territory'.
-fun claimedTerritory : El GeographicArea -> El Agent -> Formula ;
-
-
--- (climateTypeInArea ?TYPE ?REGION) 
--- means that all or part of the GeographicArea ?REGION is of the 
--- ClimateZone ?TYPE.
-fun climateTypeInArea: El GeographicArea -> Desc ClimateZone -> Formula ;
-
-
--- (cloudCoverFraction ?AREA ?AMOUNT) 
--- means that in the Region ?AREA, the fraction ?AMOUNT of the sky is 
--- covered with clouds.
-fun cloudCoverFraction : El Region -> El NonnegativeRealNumber -> Formula ;
-
-
--- (coldSeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the cold season occurs 
--- during the TimeInterval ?INTERVAL.
-fun coldSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- (connectedDownstream ?OBJ1 ?OBJ2) 
--- means that ?OBJ1 is connected, remotely or immediately, with ?OBJ2 along 
--- a directed system such as a RiverSystem.
-fun connectedDownstream : El Object -> El Object -> Formula ;
-
-
--- (coolSeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the cool season occurs 
--- during the TimeInterval ?INTERVAL. For example, (coolSeasonInArea 
--- Angola (RecurringTimeIntervalFn May October
-fun coolSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- (courseWRTCompassNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
--- heading from ?OBJ1 to ?OBJ2 is ?HEADING in AngularDegrees, with 
--- the reference point of 000 degrees North as measured by compass on 
--- or at ?OBJ1.
-fun courseWRTCompassNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
-
-
--- (courseWRTMagneticNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
--- heading from ?OBJ1 to ?OBJ2 is ?HEADING in AngularDegrees, with 
--- the reference point of 000 degrees being the magnetic North pole.
-fun courseWRTMagneticNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
-
-
--- (courseWRTTrueNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
--- heading or track from ?OBJ1 to ?OBJ2 is ?HEADING, in AngularDegrees, 
--- with the reference point of 000 degrees being true North.
-fun courseWRTTrueNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
-
-
--- (dateOpenedForSignature ?PROP ?DATE) means that as of a date 
--- indicated by ?DATE, document(s) may officially be signed (by the 
--- appropriate agents) to effect commitments to the Agreement ?PROP.
-fun dateOpenedForSignature: El Proposition -> Desc TimePosition -> Formula ;
-
-
--- (daylightHoursInterval ?PLACE ?DAY ?INTERVAL) means that in the 
--- Region ?PLACE, on the Day indicated by ?DAY, there is daylight 
--- during the TimeInterval ?INTERVAL.
-fun daylightHoursInterval: El Region -> Desc Day -> El TimeInterval -> Formula ;
-
-
--- (daylightHoursTotal ?PLACE ?DAY ?TIME) means that in the Region 
--- ?PLACE, on the Day indicated by ?DAY, there is daylight for a 
--- total TimeDuration ?LENGTH.
-fun daylightHoursTotal: El Region -> Desc Day -> El TimeDuration -> Formula ;
-
-
--- (dependentGeopoliticalArea 
--- ?AREA1 ?AREA2) means that ?AREA1 is a geopolitical possession of the 
--- GeopoliticalArea ?AREA2 and is not a geopoliticalSubdivision of 
--- ?AREA2. For example, (dependentGeopoliticalArea Guam UnitedStates), 
--- because Guam is a territory of the UnitedStates, not one of the fifty 
--- U.S. states. Contrast primaryGeopoliticalSubdivision.
-fun dependentGeopoliticalArea : El GeographicArea -> El Agent -> Formula ;
-
-
--- (drySeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the dry season occurs 
--- during the TimeInterval ?INTERVAL. For example, (drySeasonInArea 
--- Angola (RecurringTimeIntervalFn May October)).
-fun drySeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- The altitude of an object
--- above the sea level of PlanetEarth
-fun earthAltitude : El Physical -> El Physical -> El LengthMeasure -> Formula ;
-
-
--- (elevation ?OBJECT ?HEIGHT) means that the 
--- physical Object ?OBJECT is located on the surface of PlanetEarth 
--- at the vertical distance ?HEIGHT above (or below, for a negative 
--- quantity) SeaLevel. ?OBJECT may be a superficialPart of Earth's 
--- surface, such as a GeographicArea. Elevation is measured from 
--- SeaLevel to the vertical top of the object.
-fun elevation : El Object -> El LengthMeasure -> Formula ;
-
-
--- (environmentalProblemTypeInArea ?AREA ?PROBLEM) means that 
--- objects or processes of type ?PROBLEM is an environmental 
--- problem in the GeographicArea ?AREA.
-fun environmentalProblemTypeInArea: El GeographicArea -> Desc Physical -> Formula ;
-
-
--- The relation between WaterMotion Processes
--- and the region in which they occur continuously over at least hours, but
--- typically months or years. A water balloon bursting and flowing downhill
--- would not use this relation, because there would be no StreamWaterArea
--- to relate to.
-fun flowCurrent : El WaterMotion -> El WaterArea -> Formula ;
-
-
--- (groundSubsurfaceType ?area ?subsoil) 
--- means that the predominant Substance in the subsoil or subsurface layer of 
--- the LandArea ?area is of type ?subsoil.
-fun groundSubsurfaceType: El LandArea -> Desc Substance -> Formula ;
-
-
--- (%&groundSurfaceType ?area ?substance) means 
--- that the predominant Substance at the ground surface of the LandArea ?area is ?substance.
-fun groundSurfaceType: El LandArea -> Desc Substance -> Formula ;
-
-
--- (headingWRTCompassNorth ?OBJ ?DEGREE) 
--- means that the front_to_back axis of the Object ?OBJ points in 
--- the direction ?DEGREE, according to the compass carried by ?OBJ.
-fun headingWRTCompassNorth : El Object -> El PlaneAngleMeasure -> Formula ;
-
-
--- (headingWRTMagneticNorth ?OBJ ?DEGREE) 
--- means that the front_to_back axis of the Object ?OBJ points in 
--- the direction ?DEGREE, with respect to magnetic North.
-fun headingWRTMagneticNorth : El Object -> El PlaneAngleMeasure -> Formula ;
-
-
--- (headingWRTTrueNorth ?OBJ ?DEGREE) 
--- means that the front_to_back axis of the Object ?OBJ points in 
--- the direction ?DEGREE, with respect to true North.
-fun headingWRTTrueNorth : El Object -> El PlaneAngleMeasure -> Formula ;
-
-
--- (highAltitudeWindSpeed ?PLACE ?RATE) means that the Wind 
--- blowing above 25,000 feet at ?PLACE has a speed of ?RATE.
-fun highAltitudeWindSpeed : El Object -> El ConstantQuantity -> Formula ;
-
-
--- (highAltitudeWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
--- Wind blowing above 25,000 feet at ?PLACE has a speed of ?SPEED 
--- and is moving toward the DirectionalAttribute ?TOWARD.
-fun highAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
-
-
--- (highTide ?PLACE ?TIME ?AMOUNT) means that 
--- there is a HighTide at the Region ?PLACE at the TimeInterval ?TIME 
--- with the relative height ?AMOUNT. The height is given in relation to 
--- the datum on a standard chart.
-fun highTide : El Region -> El TimeInterval -> El LengthMeasure -> Formula ;
-
-
--- (highestTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
--- at the GeographicArea ?PLACE, during the TimeDuration ?PERIOD, 
--- the highest temperature was ?AMOUNT. Temperature may be expressed 
--- in some UnitOfTemperature, including CelsiusDegree and 
--- FahrenheitDegree, among others.
-fun highestTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
-
-
--- (hotSeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the hot season occurs 
--- during the TimeInterval ?INTERVAL. For example, (hotSeasonInArea 
--- Angola (RecurringTimeIntervalFn November April)).
-fun hotSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- (irrigatedLandArea ?REGION ?AMOUNT) 
--- means that the GeographicArea ?REGION has the ?AMOUNT of irrigated land. 
--- ?AMOUNT may be expressed in physical units or with a percent or fraction.
-fun irrigatedLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
-
-
--- (landAreaOnly ?REGION ?MEASURE) means 
--- that the total area(s) of solid ground within the GeographicArea 
--- ?REGION has the AreaMeasure ?AMOUNT. The pieces of solid ground need 
--- not be continuous within the region.
-fun landAreaOnly : El GeographicArea -> El AreaMeasure -> Formula ;
-
-
--- (lowAltitudeWindSpeed ?PLACE ?RATE) means that the Wind blowing 
--- between 500_10,000 feet at ?PLACE has a speed of ?RATE. Wind speed 
--- may be expressed in knots (KnotUnitOfSpeed) or as any distance per 
--- time unit (using (SpeedFn ?DISTANCE ?TIME)).
-fun lowAltitudeWindSpeed : El Object -> El PhysicalQuantity -> Formula ;
-
-
--- (lowAltitudeWindVelocity ?PLACE ?SPEED ?DIRECTION) means that the 
--- low_altitude Wind blowing at ?PLACE has a speed of ?SPEED and comes 
--- from the compass point ?DIRECTION. Low_altitude wind is wind blowing 
--- between 500_10,000 feet.
-fun lowAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
-
-
--- (lowTide ?PLACE ?TIME ?AMOUNT) means that 
--- there is a LowTide at the Region ?PLACE at the TimeInterval ?TIME 
--- with the relative height ?AMOUNT. The height is given in relation to 
--- the datum on a standard chart.
-fun lowTide : El Region -> El TimeInterval -> El LengthMeasure -> Formula ;
-
-
--- (lowestTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
--- at the GeographicArea ?PLACE, during the TimeDuration ?PERIOD, 
--- the highest temperature was ?AMOUNT. Temperature may be expressed 
--- in some UnitOfTemperature, including CelsiusDegree and 
--- FahrenheitDegree, among others.
-fun lowestTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
-
-
--- (magneticVariation ?AREA ?DEGREE ?DIRECTION) means that in the 
--- GeographicArea ?AREA, the magnetic variation of a compass from 
--- 000 degrees true is ?DEGREE AngularDegrees in ?DIRECTION (East 
--- or West).
-fun magneticVariation : El GeographicArea -> El PlaneAngleMeasure -> El DirectionalAttribute -> Formula ;
-
-
--- (mapOfArea ?AREA ?POINTER) means that a map 
--- of the Region ?AREA can be found at the location ?POINTER.
-fun mapOfArea : El Region -> El SymbolicString -> Formula ;
-
-
--- (maritimeClaimType ?POLITY ?TYPE) 
--- means that the GeopoliticalArea ?POLITY claims rights over a 
--- MaritimeClaimArea of ?TYPE.
-fun maritimeClaimType: El GeopoliticalArea -> Desc MaritimeClaimArea -> Formula ;
-
-
--- (meanSeaLevel ?place ?measure) means that the Mean Sea 
--- Level (MSL) at ?place is ?measure. ?measure is a distance representing the sea level 
--- at ?place measured against a benchmark (and averaged over a long time). MSL is measured 
--- by tide gauges for maritime purposes, while geodesists use the difference between the 
--- local sea surface and an ideal level ocean surface (the geoid).
-fun meanSeaLevel : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (mediumAltitudeWindSpeed ?PLACE ?RATE) means that the Wind 
--- blowing between 10,000_25,000 feet at ?PLACE has a speed of ?RATE.
-fun mediumAltitudeWindSpeed : El Object -> El ConstantQuantity -> Formula ;
-
-
--- (mediumAltitudeWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
--- Wind blowing between 10,000_25,000 feet at ?PLACE has a speed of 
--- ?SPEED and is moving toward the DirectionalAttribute ?TOWARD.
-fun mediumAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
-
-
--- (naturalHazardTypeInArea ?AREA ?TYPE) means that in the 
--- GeographicArea ?AREA, Processes of ?TYPE occur with some 
--- frequency and may cause damage or danger to human lives and property.
-fun naturalHazardTypeInArea: El GeographicArea -> Desc Physical -> Formula ;
-
-
--- (naturalResourceTypeInArea ?REGION ?TYPE) means that the 
--- GeographicArea ?REGION has resources of the kind ?TYPE.
-fun naturalResourceTypeInArea: El GeographicArea -> Desc Object -> Formula ;
-
-
--- (objectGeographicCoordinates ?OBJECT ?LAT ?LONG) means that 
--- the Object ?OBJECT is found at the geographic coordinates 
--- ?LAT and ?LONG.
-fun objectGeographicCoordinates : El Object -> El Latitude -> El Longitude -> Formula ;
-
-
--- (oppositeDirection ?DIR1 ?DIR2) 
--- means that the PositionalAttribute ?DIR1 points in the compass 
--- direction opposite to the DirectionalAttribute ?DIR2.
-fun oppositeDirection : El PositionalAttribute -> El PositionalAttribute -> Formula ;
-
-
--- (orbits ?SATELLITE ?FOCUS) means that the Object 
--- ?SATELLITE revolves around the AstronomicalBody ?FOCUS.
-fun orbits : El Object -> El AstronomicalBody -> Formula ;
-
-
--- This predicate is used to represent information from the CIA 
--- World Fact Book. (otherLandUseArea ?REGION ?AMOUNT) means that 
--- in the GeographicArea ?REGION, the ?AMOUNT of land has some 
--- use other than planting seasonal or permanent crops. ?AMOUNT may be 
--- expressed in physical units or with a percent or fraction. See also 
--- arableLandArea and permanentLandArea.
-fun otherLandUseArea : El GeographicArea -> El ConstantQuantity -> Formula ;
-
-
--- (overcastDaysInPeriod ?AREA ?PERIOD ?NUMBER) means that during the 
--- time ?PERIOD, the GeographicArea ?AREA experienced ?NUMBER of 
--- OvercastWeather days.
-fun overcastDaysInPeriod : El GeographicArea -> El TimeDuration -> El NonnegativeRealNumber -> Formula ;
-
-
--- (partyToAgreement ?AGENT ?PROP) 
--- means that the Agent ?AGENT has committed to the agreement ?PROP.
-fun partyToAgreement : El Agent -> El Proposition -> Formula ;
-
-
--- (permanentCropLandArea ?REGION ?AMOUNT) means that the GeographicArea 
--- ?REGION has ?AMOUNT of land under cultivation with crops that are not 
--- replanted after each harvest. This includes orchards, vineyards, coffee 
--- and rubber plantations. Timberland is excluded. ?AMOUNT may be expressed 
--- in physical units or with a percent or fraction. Cf. permanentCropLandArea.
-fun permanentCropLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
-
-
--- (precipitationAmount ?EVENT ?AMOUNT) means that in the 
--- Precipitation process ?EVENT, the quantity of precipitation 
--- that fell was ?AMOUNT.
-fun precipitationAmount : El Precipitation -> El ConstantQuantity -> Formula ;
-
-
--- (precipitationRate ?EVENT ?RATE) means that in the 
--- Precipitation ?EVENT, the precipitation falls at a rate 
--- of ?RATE.
-fun precipitationRate : El Precipitation -> El FunctionQuantity -> Formula ;
-
-
--- (precipitationState ?EVENT ?STATE) means that in the Precipitation 
--- ?EVENT, the stuff falling is in the PhysicalState ?STATE (e.g., 
--- Liquid or Solid ice).
-fun precipitationState : El WeatherProcess -> El PhysicalState -> Formula ;
-
-
--- (rainySeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the rainy or wet season occurs 
--- during the TimeInterval ?INTERVAL. For example, (rainySeasonInArea 
--- Angola (RecurringTimeIntervalFn November April)).
-fun rainySeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- (regionalIssue ?AREA ?ISSUE) means 
--- that the AreaOfConcern ?ISSUE is relevant to a problem in the 
--- GeographicArea ?AREA.
-fun regionalIssue : El GeographicArea -> El AreaOfConcern -> Formula ;
-
-
--- (relativeBearing ?OBJ1?OBJ2 ?DEGREES) 
--- means that ?OBJ1 and ?OBJ2 are separated by the amount ?DEGREES of 
--- PlaneAngleMeasure.
-fun relativeBearing : El Object -> El Object -> El PlaneAngleMeasure -> Formula ;
-
-
--- (relativeHumidity ?AREA ?AMOUNT) 
--- means that the amount of moisture in the air at ?AREA is ?AMOUNT. 
--- Relative humidity expresses the amount of moisture as a percentage, 
--- or ratio, between the actual moisture saturation of the air compared 
--- to the potential moisture saturation of the air. At full (potential) 
--- saturation, precipitation would occur.
-fun relativeHumidity : El Object -> El NonnegativeRealNumber -> Formula ;
-
-
--- (seaSurfaceTemperature ?AREA ?TEMP) means that the 
--- temperature of the sea surface at ?AREA is ?TEMP. 
--- Temperature may be expressed in some UnitOfTemperature, 
--- including CelsiusDegree and FahrenheitDegree, among others.
-fun seaSurfaceTemperature : El WaterArea -> El ConstantQuantity -> Formula ;
-
-
--- The length of the boundary 
--- between two GeographicRegions.
-fun sharedBorderLength : El GeographicRegion -> El GeographicRegion -> El LengthMeasure -> Formula ;
-
-
--- (slopeGradient ?AREA ?SLOPE) means that 
--- in the LandArea ?AREA there is an incline of ?slope, where ?SLOPE is 
--- the percent of vertical rise over horizontal distance. slopeGradient 
--- gives an approximate value for nonzero slope over ?AREA, without regard 
--- to orientation. For example, (slopeGradient ?AREA 0.10) means that 
--- there is a 10% incline across the area, without specifying the 
--- orientation in which the land rises or falls. Also see 
--- slopeGradientTowardsOrientation.
-fun slopeGradient : El LandArea -> El NonnegativeRealNumber -> Formula ;
-
-
--- (slopeGradientTowardsOrientation ?AREA ?DIRECTION ?SLOPE) means that 
--- in the LandArea ?AREA, there is an incline of ?SLOPE towards the 
--- DirectionalAttribute ?DIRECTION. ?SLOPE is a RationalNumber 
--- representing the percent of vertical rise over horizontal distance.
-fun slopeGradientTowardsOrientation : El LandArea -> El DirectionalAttribute -> El RationalNumber -> Formula ;
-
-
--- (streamOutfall ?WATER ?RIVER) means that 
--- the WaterArea ?MOUTH is the outfall of the River ?RIVER.
-fun streamOutfall : El WaterArea -> El River -> Formula ;
-
-
--- (surfaceWindDirection ?PLACE ?DIRECTION) means that at ?PLACE 
--- the wind is coming from the compass point ?DIRECTION. For example, 
--- (surfaceWindDirection SanFranciscoBay Northwest) means that the 
--- wind in San Francisco Bay is coming from the Northwest. The wind is 
--- within 500 feet of Earth's surface.
-fun surfaceWindDirection : El Object -> El DirectionalAttribute -> Formula ;
-
-
--- (surfaceWindSpeed ?PLACE ?RATE) 
--- means that the speed of the surface Wind at the GeographicArea 
--- ?PLACE is ?RATE. Wind speed may be expressed in knots (KnotUnitOfSpeed) 
--- or as any distance per time unit (using (SpeedFn ?DISTANCE ?TIME)). 
--- Surface wind is found at the surface of the planet, everyday wind. 
--- Technically, Winds moving through the atmosphere up to an altitude 
--- of 500 feet.
-fun surfaceWindSpeed : El Object -> El PhysicalQuantity -> Formula ;
-
-
--- (surfaceWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
--- surface Wind blowing at ?PLACE has a speed of ?SPEED and is moving 
--- toward the DirectionalAttribute ?TOWARD. Surface wind is found at the 
--- surface of the planet, everyday wind. Technically, Winds moving 
--- through the atmosphere up to an altitude of 500 feet.
-fun surfaceWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
-
-
--- (terrainInArea ?AREA ?ATTRIBUTE) 
--- means that the GeographicArea ?AREA is or includes a region with 
--- the features of TerrainArea ?ATTRIBUTE.
-fun terrainInArea : El GeographicArea -> El TerrainAttribute -> Formula ;
-
-
--- (totalArea ?REGION ?AMOUNT) means that 
--- the total area of ?REGION is the AreaMeasure ?AMOUNT.
-fun totalArea : El Region -> El AreaMeasure -> Formula ;
-
-
--- (totalBiomass ?PLACE ?MASS) means that the 
--- total amount (in weight or volume) of living matter in the Region 
--- ?PLACE is ?MASS.
-fun totalBiomass : El GeographicArea -> El PhysicalQuantity -> Formula ;
-
-
--- (totalCoastline ?AREA ?COASTLENGTH) 
--- means that the total length of all boundaries between the GeographicArea 
--- ?AREA and the ocean is the LengthMeasure ?COASTLENGTH. The coastline 
--- counted may be discontinuous and may even be along different oceans (as 
--- in Columbia). A totalCoastline of zero indicates a LandlockedArea. 
--- Note that only Ocean coastlines are counted, not any shores with inland 
--- waters.
-fun totalCoastline : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (totalLandBoundary ?REGION ?LENGTH) 
--- means that the GeographicArea ?REGION has a total LengthMeasure 
--- ?LENGTH of land boundaries between it and other countries. Note that 
--- the boundaries included in the total length may be discontinuous, as when 
--- interrupted by stretches of Seacoast.
-fun totalLandBoundary : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (totalPrecipitationForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
--- at the GeographicArea ?PLACE, and during the TimeDuration ?PERIOD, 
--- the total amount of precipitation was ?AMOUNT.
-fun totalPrecipitationForPeriod : El GeographicArea -> El TimeDuration -> El ConstantQuantity -> Formula ;
-
-
--- (unratifiedSignatoryToAgreement ?AGENT ?PROP) means that 
--- the Agent ?AGENT has signed a document to begin the process of 
--- committing to the Agreement ?PROP, but that a ratification 
--- process required to complete the commitment has not yet occurred.
-fun unratifiedSignatoryToAgreement : El Agent -> El Proposition -> Formula ;
-
-
--- (vegetationType ?area ?type) associates 
--- a particular GeographicArea with a type of Plant that is found there.
-fun vegetationType : El GeographicArea -> Desc Plant -> Formula ;
-
-
--- (vegetationTypePattern ?AREA ?TYPE ?DENSITY) means that in the 
--- GeographicArea ?AREA the Plant ?TYPE is found with ?DENSITY.
-fun vegetationTypePattern: El GeographicArea -> Desc Plant -> El Attribute -> Formula ;
-
-
--- (warmSeasonInArea ?AREA ?INTERVAL) 
--- means that in the GeographicArea ?AREA, the warm season occurs 
--- during the TimeInterval ?INTERVAL.
-fun warmSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
-
-
--- (waterAreaOnly ?REGION ?MEASURE) means 
--- that the total area(s) of surface water within the GeographicArea 
--- ?REGION has the AreaMeasure ?AMOUNT. The pieces of water need not be 
--- continuous within the region.
-fun waterAreaOnly : El GeographicArea -> El AreaMeasure -> Formula ;
-
-
--- (waterDepth ?AREA ?LENGTH) means that the 
--- depth of water at the Region ?AREA is ?LENGTH.
-fun waterDepth : El WaterArea -> El LengthMeasure -> Formula ;
-
-
--- (windRelativePosition ?OBJECT ?POSITION) means that the Wind blows 
--- at ?OBJECT from the relative vector ?POSITION. E.g., Crosswind, 
--- Headwind, Tailwind.
-fun windRelativePosition : El Object -> El Attribute -> Formula ;
+abstract Geography = MidLevelOntology ** {
+
+  fun AcidRainIssue : Ind EnvironmentalIssue ;
+
+  --  AcidRainfall is the subclass of 
+  -- Raining in which the precipitate contains harmful amounts of 
+  -- sulfur dioxide or nitrogen oxide. The standard for acid rain 
+  -- is below 5.6 pH.
+  fun AcidRainfall : Class ;
+  fun AcidRainfall_Class : SubClass AcidRainfall WeatherProcess ;
+
+  -- Acidification is the process of 
+  -- lowering soil and water pH due to acid rain or other types of 
+  -- acid deposition. Potential harmful effects include killing 
+  -- freshwater fish and plants.
+  fun Acidification : Class ;
+  fun Acidification_Class : SubClass Acidification Combining ;
+
+  fun AcidificationIssue : Ind EnvironmentalIssue ;
+
+  -- AerosolParticulate is a 
+  -- Substance that includes aerosol_dispersed particles 
+  -- that are mixed with air, gas, or smoke. A form of Pollution.
+  fun AerosolParticulate : Class ;
+  fun AerosolParticulate_Class : SubClass AerosolParticulate Substance ;
+
+  fun AerosolParticulateIssue : Ind EnvironmentalIssue ;
+
+  -- Afforestation is the process of 
+  -- planting trees and plants on spaces that are either empty or in 
+  -- agricultural use.
+  fun Afforestation : Class ;
+  fun Afforestation_Class : SubClass Afforestation Planting ;
+
+  fun Africa : Ind Continent ;
+
+  -- Aftershock is the subclass of EarthTremors 
+  -- that occur after the main tremor(s) of an Earthquake.
+  fun Aftershock : Class ;
+  fun Aftershock_Class : SubClass Aftershock EarthTremor ;
+
+  -- Agreement is the class of 
+  -- Propositions that express the contents of agreements 
+  -- entered into by CognitiveAgents. Agreement includes 
+  -- treaties, contracts, purchase orders, pledges, marriage 
+  -- vows, etc. An Agreement may be written down in a document 
+  -- or other ContentBearingObject.
+  fun Agreement : Class ;
+  fun Agreement_Class : SubClass Agreement Proposition ;
+
+  -- (AgreementOrganizationFn ?AGR) 
+  -- denotes the official Organization established by the Agreement ?AGR 
+  -- to administer or enforce the terms of that agreement.
+  fun AgreementOrganizationFn : El Agreement -> Ind Organization ;
+
+  fun AgriculturalChemicalsIssue : Ind EnvironmentalIssue ;
+
+  fun AgriculturalExpansionIssue : Ind EnvironmentalIssue ;
+
+  -- Agriculture is a class of Processes 
+  -- in which land, plants, or animals are cultivated in order to produce 
+  -- food or other organic products.
+  fun Agriculture : Class ;
+  fun Agriculture_Class : SubClass Agriculture Maintaining ;
+
+  -- AirPollution is the subclass of 
+  -- Pollution processes in which air is contaminated.
+  fun AirPollution : Class ;
+  fun AirPollution_Class : SubClass AirPollution Pollution ;
+
+  fun AirPollutionConvention : Ind Agreement ;
+
+  fun AirPollutionIssue : Ind PollutionIssue ;
+
+  fun AirPollution_NitrogenOxidesProtocol : Ind Agreement ;
+
+  fun AirPollution_PeristentOrganicPollutantsProtocol : Ind Agreement ;
+
+  fun AirPollution_Sulphur85Protocol : Ind Agreement ;
+
+  fun AirPollution_Sulphur94Protocol : Ind Agreement ;
+
+  fun AirPollution_VolatileOrganicCompoundsProtocol : Ind Agreement ;
+
+  -- AirStream is the class of FlowRegions that consist of air.
+  fun AirStream : Class ;
+  fun AirStream_Class : SubClass AirStream (both Air FlowRegion) ;
+
+  -- The area below the AntarcticCircle, which is
+  -- 66 degrees 33 minutes and 38 seconds south latitude. It is dark
+  -- for at least 24 hours at some point during the year, with an
+  -- increasing period of yearly continuous darkness as one gets closer
+  -- to the South Pole.
+  fun AntarcticArea : Class ;
+  fun AntarcticArea_Class : SubClass AntarcticArea LandArea ;
+
+  fun AntarcticCircumpolarCurrent : Ind WaterMotion ;
+
+  fun AntarcticSealsConvention : Ind Agreement ;
+
+  fun AntarcticTreaty : Ind Agreement ;
+
+  fun Antarctic_EnvironmentalProtocol : Ind Agreement ;
+
+  fun Antarctic_MarineLivingResourcesConvention : Ind Agreement ;
+
+  fun ArabianSea : Ind Sea ;
+
+  -- ArableLand is the subclass of 
+  -- LandArea that represents land in cultivation with crops that 
+  -- are replanted after each harvest, e.g., wheat and rice.
+  fun ArableLand : Class ;
+  fun ArableLand_Class : SubClass ArableLand LandArea ;
+
+  fun AralSea : Ind SaltLake ;
+
+  -- ArcMinute represents a UnitOfMeasure 
+  -- equivalent to 1/60th of an AngularDegree.
+  fun ArcMinute : Ind UnitOfAngularMeasure ;
+
+  -- ArcSecond represents a UnitOfMeasure 
+  -- equivalent to 1/60th of an ArcMinute.
+  fun ArcSecond : Ind UnitOfAngularMeasure ;
+
+  -- An ArchipelagicArea is a GeographicArea 
+  -- including an Archipelago and the surrounding WaterArea.
+  fun ArchipelagicArea : Class ;
+  fun ArchipelagicArea_Class : SubClass ArchipelagicArea GeographicArea ;
+
+  -- An Archipelago is a group of islands.
+  fun Archipelago : Class ;
+  fun Archipelago_Class : SubClass Archipelago (both Collection LandForm) ;
+
+  -- ArcticOcean represents the Arctic Ocean.
+  fun ArcticOcean : Ind Ocean ;
+
+  -- The area above the Artic Circle, which is
+  -- 66 degrees 33 minutes and 38 seconds north latitude. It is dark
+  -- for at least 24 hours at some point during the year, with an
+  -- increasing period of yearly continuous darkness as one gets closer
+  -- to the North Pole.
+  fun ArcticRegion : Class ;
+
+  -- AreaOfConcern is a subclass of 
+  -- Attributes that represent and classify the kinds of interests that 
+  -- agents have.
+  fun AreaOfConcern : Class ;
+  fun AreaOfConcern_Class : SubClass AreaOfConcern RelationalAttribute ;
+
+  -- AridClimateZone is the 
+  -- class of regions in which the climate is characterized by 
+  -- a distinct dry season. Annual rate of moisture evaporation 
+  -- exceeds annual rate of precipitation. This is Class B in the 
+  -- Koeppen climate system.
+  fun AridClimateZone : Class ;
+  fun AridClimateZone_Class : SubClass AridClimateZone ClimateZone ;
+
+  -- Asbestos is a Mineral.
+  fun Asbestos : Class ;
+  fun Asbestos_Class : SubClass Asbestos Mineral ;
+
+  fun AsbestosDisposalIssue : Ind EnvironmentalIssue ;
+
+  fun Asia : Ind Continent ;
+
+  -- AtlanticOcean represents the Atlantic Ocean.
+  fun AtlanticOcean : Ind Ocean ;
+
+  -- Atmosphere is a mixture of gases 
+  -- surrounding any celestial object that has a gravitational field 
+  -- strong enough to prevent the gases from escaping.
+  fun Atmosphere : Class ;
+  fun Atmosphere_Class : SubClass Atmosphere Region ;
+
+  fun AtmosphericHazing : Class ;
+  fun AtmosphericHazing_Class : SubClass AtmosphericHazing WeatherProcess ;
+
+  -- Atoll is the class of CoralReefs which surround a lagoon.
+  fun Atoll : Class ;
+  fun Atoll_Class : SubClass Atoll CoralReef ;
+
+  -- AvalancheProcess is a subclass of 
+  -- Motion that represents events in which a loosened mass of snow, ice, 
+  -- rock, or earth rapidly descends a steep slope, with a destructive force.
+  fun AvalancheProcess : Class ;
+  fun AvalancheProcess_Class : SubClass AvalancheProcess Impelling ;
+
+  fun BalticSea : Ind Sea ;
+
+  -- Barite is Barium Sulfate occurring as a mineral.
+  fun Barite : Class ;
+  fun Barite_Class : SubClass Barite (both CompoundSubstance Mineral) ;
+
+  -- A Basin is an area of land enclosed or partially 
+  -- enclosed by higher land.
+  fun Basin : Class ;
+  fun Basin_Class : SubClass Basin LandForm ;
+
+  -- Bay is the class of extensions of a body of water 
+  -- (salt or fresh) that reach into the land, usually smaller than a 
+  -- Gulf.
+  fun Bay : Class ;
+  fun Bay_Class : SubClass Bay Inlet ;
+
+  -- BeaufortNumber is the
+  -- Attribute for indicating wind force, according to
+  -- classifications based on observable weather conditions and later
+  -- related to wind speed ranges.
+  fun BeaufortNumber : Class ;
+  fun BeaufortNumber_Class : SubClass BeaufortNumber RelationalAttribute ;
+
+  fun BeaufortNumberEight : Ind BeaufortNumber ;
+
+  fun BeaufortNumberEleven : Ind BeaufortNumber ;
+
+  fun BeaufortNumberFive : Ind BeaufortNumber ;
+
+  fun BeaufortNumberFour : Ind BeaufortNumber ;
+
+  fun BeaufortNumberNine : Ind BeaufortNumber ;
+
+  fun BeaufortNumberOne : Ind BeaufortNumber ;
+
+  fun BeaufortNumberSeven : Ind BeaufortNumber ;
+
+  fun BeaufortNumberSix : Ind BeaufortNumber ;
+
+  fun BeaufortNumberTen : Ind BeaufortNumber ;
+
+  fun BeaufortNumberThree : Ind BeaufortNumber ;
+
+  fun BeaufortNumberTwelve : Ind BeaufortNumber ;
+
+  fun BeaufortNumberTwo : Ind BeaufortNumber ;
+
+  fun BeringSea : Ind Sea ;
+
+  -- BiodiversityAttribute is the 
+  -- class of Attributes that describe the level of biodiversity present 
+  -- in a GeographicArea or Ecosystem.
+  fun BiodiversityAttribute : Class ;
+  fun BiodiversityAttribute_Class : SubClass BiodiversityAttribute InternalAttribute ;
+
+  fun BiodiversityConvention : Ind Agreement ;
+
+  fun BiodiversityIssue : Class ;
+  fun BiodiversityIssue_Class : SubClass BiodiversityIssue EnvironmentalIssue ;
+
+  -- Biome is the class of GeographicAreas 
+  -- representing major kinds of ecological communities, that is, areas in 
+  -- which certain kinds of plants, animals, weather, and terrain interact 
+  -- to produce and support a distinctive ecosystem.
+  fun Biome : Class ;
+  fun Biome_Class : SubClass Biome Ecosystem ;
+
+  fun BlackSea : Ind Sea ;
+
+  fun Blizzard : Class ;
+  fun Blizzard_Class : SubClass Blizzard WeatherProcess ;
+
+  -- (BorderFn ?AREA1 ?AREA2) denotes the 
+  -- border area where the GeographicAreas ?AREA1 and ?AREA2 meet.
+  fun BorderFn : El GeographicArea -> El GeographicArea -> Ind GeographicArea ;
+
+  fun BorealForest : Class ;
+  fun BorealForest_Class : SubClass BorealForest (both Biome Forest) ;
+
+  -- BrownCoal is a soft Coal harder than 
+  -- peat and softer than bituminous coal. Also called lignite, it is 
+  -- brownish in color.
+  fun BrownCoal : Class ;
+  fun BrownCoal_Class : SubClass BrownCoal Coal ;
+
+  -- A Butte is an Upland raised sharply from the 
+  -- surrounding region. Smaller in area than a Mesa.
+  fun Butte : Class ;
+  fun Butte_Class : SubClass Butte (both LandForm UplandArea) ;
+
+  -- A CanalStructure is the constructed 
+  -- framework, including Locks, that contains the waters of a Canal.
+  fun CanalStructure : Class ;
+  fun CanalStructure_Class : SubClass CanalStructure StationaryArtifact ;
+
+  -- CanopiedVegetation describes the 
+  -- density of vegetation in a RainForest or Jungle.
+  fun CanopiedVegetation : Ind Attribute ;
+
+  -- A Canyon is a narrow valley with steep sides, usually 
+  -- created by erosion.
+  fun Canyon : Class ;
+  fun Canyon_Class : SubClass Canyon LandForm ;
+
+  -- A Cape is a piece of land projecting into a body of water.
+  fun Cape : Class ;
+  fun Cape_Class : SubClass Cape LandForm ;
+
+  -- CarbonCycle is the class of 
+  -- GeologicalProcesses in which carbon in various forms is passed 
+  -- between air, water, earth, and the biosphere.
+  fun CarbonCycle : Class ;
+  fun CarbonCycle_Class : SubClass CarbonCycle GeologicalProcess ;
+
+  fun CarbonDioxideEmission : Class ;
+  fun CarbonDioxideEmission_Class : SubClass CarbonDioxideEmission Separating ;
+
+  fun CaribbeanRegion : Ind GeographicArea ;
+
+  fun CaribbeanSea : Ind Sea ;
+
+  fun CaspianSea : Ind SaltLake ;
+
+  -- A CaveMatrix is the framework of earth or 
+  -- rock in which a Cave is embedded.
+  fun CaveMatrix : Class ;
+  fun CaveMatrix_Class : SubClass CaveMatrix LandForm ;
+
+  fun CentralAfrica : Ind GeographicArea ;
+
+  fun CentralAsia : Ind GeographicArea ;
+
+  fun CentralEurope : Ind GeographicArea ;
+
+  fun CentralSouthAmerica : Ind GeographicArea ;
+
+  fun ChinookWind : Class ;
+  fun ChinookWind_Class : SubClass ChinookWind WindProcess ;
+
+  -- A mineral that consists of an oxide of
+  -- iron and chromium.
+  fun Chromite : Class ;
+  fun Chromite_Class : SubClass Chromite (both CompoundSubstance Mineral) ;
+
+  -- Fine_grained soil consisting of mineral particles, not 
+  -- necessarily clay minerals, that are less than 0.002 mm in their maximum dimension.
+  fun Clay : Class ;
+  fun Clay_Class : SubClass Clay Soil ;
+
+  -- ClearWeather represents a condition 
+  -- in which less than 30% of the sky is covered with clouds.
+  fun ClearWeather : Class ;
+  fun ClearWeather_Class : SubClass ClearWeather WeatherProcess ;
+
+  -- A Cliff is any high, very_steep_to_perpendicular 
+  -- or overhanging face of rock or earth, a precipice.
+  fun Cliff : Class ;
+  fun Cliff_Class : SubClass Cliff SlopedArea ;
+
+  fun ClimateChangeConvention : Ind Agreement ;
+
+  fun ClimateChangeIssue : Ind EnvironmentalIssue ;
+
+  fun ClimateChange_KyotoProtocol : Ind Agreement ;
+
+  -- &ClimateZone is a subclass of GeographicArea in which regions 
+  -- are classified according to their long_term weather conditions. 
+  -- The subclasses of ClimateZone are based on the Koeppen Climate 
+  -- Classification system. In the Koeppen system, climate zones are 
+  -- distinguished based on temperatures and rainfall.
+  fun ClimateZone : Class ;
+  fun ClimateZone_Class : SubClass ClimateZone GeographicArea ;
+
+  -- Coal is a black or brownish black solid combustible 
+  -- substance formed by the partial decomposition of vegetable matter without 
+  -- free access of air and under the influence of moisture and often increased 
+  -- pressure and temperature. Coal is a sedimentary rock containing a high 
+  -- proportion of carbon.
+  fun Coal : Class ;
+  fun Coal_Class : SubClass Coal (both FossilFuel (both Mineral Rock)) ;
+
+  fun CoastalDegradation : Ind EnvironmentalIssue ;
+
+  fun CoastalFlooding : Class ;
+  fun CoastalFlooding_Class : SubClass CoastalFlooding Flooding ;
+
+  fun CoastalMarinePollutionIssue : Ind EnvironmentalIssue ;
+
+  -- CoastalPlain is the class of broad plains 
+  -- areas adjacent to a Sea or Ocean. A coastal plain includes a narrower 
+  -- ShoreArea adjacent to a body of water.
+  fun CoastalPlain : Class ;
+  fun CoastalPlain_Class : SubClass CoastalPlain Plain ;
+
+  -- ColdClimateZone is the subclass 
+  -- of ClimateZone that is characterized by a warmest month with average 
+  -- temperature less than 10 degrees Celsius and a coldest month with 
+  -- average temperature less than _3 degrees Celsius. This is 
+  -- Koeppen climate system Type D.
+  fun ColdClimateZone : Class ;
+  fun ColdClimateZone_Class : SubClass ColdClimateZone ClimateZone ;
+
+  -- ColdDampClimateZone is the 
+  -- subclass of ColdClimateZone that is characterized by having more 
+  -- than 30 mm of precipitation in the driest month. This is subtype 
+  -- 'Df' in the Koeppen climate system.
+  fun ColdDampClimateZone : Class ;
+  fun ColdDampClimateZone_Class : SubClass ColdDampClimateZone ColdClimateZone ;
+
+  -- ColdFront is the class of transitional 
+  -- weather processes occurring between a cold air mass that is advancing 
+  -- upon a warm air mass.
+  fun ColdFront : Class ;
+  fun ColdFront_Class : SubClass ColdFront WeatherFront ;
+
+  -- ContinentalClimateZone is a subclass of TemperateClimateZone that is 
+  -- characterized by cold winters and hot summers.
+  fun ContinentalClimateZone : Class ;
+  fun ContinentalClimateZone_Class : SubClass ContinentalClimateZone TemperateClimateZone ;
+
+  -- ContinentalMargin is class of 
+  -- SubmergedLandAreas that are the extension of land underwater at 
+  -- the edge of a continent, before a drop to the sea floor. A 
+  -- ContinentalMargin includes the ContinentalShelf and the 
+  -- continental break, slope, or rise at the outer edge.
+  fun ContinentalMargin : Class ;
+  fun ContinentalMargin_Class : SubClass ContinentalMargin SubmergedLandArea ;
+
+  -- A ContinentalShelf is a natural 
+  -- undersea extension of land around a Continent. The shelf is a 
+  -- gently sloped (average less than one percent) plain that is an extension 
+  -- of the CoastalPlain found off the coast of most continents.
+  fun ContinentalShelf : Class ;
+  fun ContinentalShelf_Class : SubClass ContinentalShelf SubmergedLandArea ;
+
+  -- Corals are gastrovascular marine cnidarians (phylum 
+  -- Cnidaria, class Anthozoa) existing as small anemone_like polyps, typically 
+  -- forming colonies of many individuals. The group includes the important 
+  -- reef builders known as hermatypic corals, found in tropical oceans, and 
+  -- belonging to the subclass Zoantharia of order Scleractinia (formerly 
+  -- Madreporaria). The hermatypic corals obtain much of their nutrient 
+  -- requirement from symbiotic unicellular algae called zooxanthellae, and so 
+  -- are dependent upon growing in sunlight. As a result, these corals are 
+  -- usually found not far beneath the surface, although in clear waters corals 
+  -- can grow at depths of 60 m (200 ft). Corals breed by spawning, with all 
+  -- corals of the same species in a region releasing gametes simultaneously 
+  -- over a period of one to several nights around a full moon. (from Wikipedia)
+  fun Coral : Class ;
+  fun Coral_Class : SubClass Coral Invertebrate ;
+
+  -- CoralReef is the subclass of Reefs that are 
+  -- formed from living organisms that produce the limestone formations of the 
+  -- reef. Coral reefs include fringing reefs, barrier reefs, and Atolls.
+  fun CoralReef : Class ;
+  fun CoralReef_Class : SubClass CoralReef Reef ;
+
+  fun CoralReefDecayIssue : Ind EnvironmentalIssue ;
+
+  -- A Cove is a small part of a body of water that 
+  -- reaches into a coast.
+  fun Cove : Class ;
+  fun Cove_Class : SubClass Cove Inlet ;
+
+  -- Crosswind is the relative attribute of a 
+  -- Wind to an object when the force of the wind is applied to a lateral 
+  -- side of the object.
+  fun Crosswind : Ind Attribute ;
+
+  -- CyclonicStorm is the class of 
+  -- LowPressureWeatherSystems that involve a low pressure area 
+  -- surrounded by rapidly rotating winds, with the whole system 
+  -- typically moving forward at 20_30 mph.
+  fun CyclonicStorm : Class ;
+  fun CyclonicStorm_Class : SubClass CyclonicStorm (both LowPressureWeatherSystem Windstorm) ;
+
+  -- DDT (dichoro_diphenyl_trichloro_ethane) 
+  -- is a highly toxic insecticide also harmful to most other animal 
+  -- species. DDT was banned in the UnitedStates in 1972.
+  fun DDT : Class ;
+  fun DDT_Class : SubClass DDT CompoundSubstance ;
+
+  -- (DatumFn ?place) denotes the point of MLLW (Mean Lower Low 
+  -- Water) used as the initial data point for a coastal or WaterArea given on a nautical 
+  -- chart. High and low tides are calculated with reference to this point.
+  fun DatumFn : El GeographicArea -> Ind LengthMeasure ;
+
+  fun DeadSea : Ind SaltLake ;
+
+  -- Defoliant is the class of substances 
+  -- that are used to make plants lose their leaves, typically used 
+  -- in agriculture or warfare. Defoliants may have detrimental 
+  -- environmental side effects.
+  fun Defoliant : Class ;
+  fun Defoliant_Class : SubClass Defoliant PureSubstance ;
+
+  fun Deforestation : Class ;
+  fun Deforestation_Class : SubClass Deforestation (both ForestDamage Removing) ;
+
+  fun DeforestationIssue : Ind EnvironmentalIssue ;
+
+  -- A Delta is a LandForm composed of silt or other 
+  -- alluvium, deposited at or near the mouth of a river or stream as it enters 
+  -- a body of relatively static water. Typically a delta is flat and fan_shaped.
+  fun Delta : Class ;
+  fun Delta_Class : SubClass Delta LandForm ;
+
+  -- DenseVegetation describes the 
+  -- density of vegetation in a Forest.
+  fun DenseVegetation : Ind Attribute ;
+
+  -- Desert is a subclass of LandAreas that are 
+  -- arid regions having sparse or no vegetation.
+  fun Desert : Class ;
+  fun Desert_Class : SubClass Desert LandArea ;
+
+  -- DesertClimateZone 
+  -- is the class of AridClimateZones characterized by 
+  -- sparse, desert vegetation. Koeppen system 'BW'.
+  fun DesertClimateZone : Class ;
+  fun DesertClimateZone_Class : SubClass DesertClimateZone AridClimateZone ;
+
+  -- Desertification represents the 
+  -- Process by which desert conditions are spread over an area.
+  fun Desertification : Class ;
+  fun Desertification_Class : SubClass Desertification WeatherProcess ;
+
+  fun DesertificationConvention : Ind Agreement ;
+
+  fun DesertificationIssue : Ind EnvironmentalIssue ;
+
+  fun DipSlipFault : Class ;
+  fun DipSlipFault_Class : SubClass DipSlipFault GeologicalFault ;
+
+  -- (DirectionalSubregionFn ?DIRECTION ?AREA) denotes the part 
+  -- of GeographicArea ?AREA that lies in ?DIRECTION from the 
+  -- geographic center of ?AREA. For example, 
+  -- (DirectionalSubregionFn Iraq North) denotes the Northern 
+  -- part of Iraq. Such subregions are defined purely by geographical 
+  -- points of reference, not by sociological ones. For example, 
+  -- (DirectionalSubregionFn UnitedStatesOfAmerica South) denotes 
+  -- the Southern half of the United States, it does not denote the 
+  -- American South as distinguished for historical, literary, or 
+  -- cultural purposes.
+  fun DirectionalSubregionFn : El DirectionalAttribute -> El GeographicArea -> Ind GeographicArea ;
+
+  fun DiseaseConditionsIssue : Class ;
+  fun DiseaseConditionsIssue_Class : SubClass DiseaseConditionsIssue EnvironmentalIssue ;
+
+  -- (DocumentFn ?PROP) denotes a class 
+  -- of Text objects that contain the information ?PROP.
+  fun DocumentFn: El Proposition -> Desc Text ;
+
+  -- Downhill is a PositionalAttribute that 
+  -- describes the relation between two things, one of which is located 
+  -- down a slope from the other.
+  fun Downhill : Ind PositionalAttribute ;
+
+  fun Downstream : Ind PositionalAttribute ;
+
+  -- Downwind is a PositionalAttribute that indicates relative position 
+  -- downwind (leeward) with respect to the direction that the Wind is 
+  -- blowing.
+  fun Downwind : Ind PositionalAttribute ;
+
+  fun Dredging : Class ;
+  fun Dredging_Class : SubClass Dredging Removing ;
+
+  fun DriftNetFishingIssue : Ind EnvironmentalIssue ;
+
+  fun DriftnetFishing : Class ;
+  fun DriftnetFishing_Class : SubClass DriftnetFishing Fishing ;
+
+  -- Drought is the subclass of WeatherProcess 
+  -- that represents long periods without precipitation, which is damaging 
+  -- to crops, livestock, and human life.
+  fun Drought : Class ;
+  fun Drought_Class : SubClass Drought WeatherProcess ;
+
+  fun DroughtIssue : Ind EnvironmentalIssue ;
+
+  -- DryWinterColdClimateZone 
+  -- is a subclass of ColdClimateZone that is characterized by having 
+  -- at least ten times as much precipitation in the wettest summer month 
+  -- as in the driest winter month. This is Koeppen climate system subtype 
+  -- 'Dw'.
+  fun DryWinterColdClimateZone : Class ;
+  fun DryWinterColdClimateZone_Class : SubClass DryWinterColdClimateZone ColdClimateZone ;
+
+  fun DustStorm : Class ;
+  fun DustStorm_Class : SubClass DustStorm WeatherProcess ;
+
+  -- An EarthTremor is an individual seismic 
+  -- event in which the earth shakes due to release of seismic pressures.
+  fun EarthTremor : Class ;
+  fun EarthTremor_Class : SubClass EarthTremor (both GeologicalProcess Tremor) ;
+
+  -- Earthquake is the class of events in 
+  -- which the earth shakes while its layers readjust due to tensional 
+  -- stresses in the surface of the earth. A single earthquake may consist 
+  -- of one or more EarthTremors.
+  fun Earthquake : Class ;
+  fun Earthquake_Class : SubClass Earthquake GeologicalProcess ;
+
+  -- EarthsAtmosphere is the layer of gases, a mixture of mainly oxygen and nitrogen,
+  -- surrounding PlanetEarth. See also Air.
+  fun EarthsAtmosphere : Ind Atmosphere ;
+
+  -- EarthsMoon is the Moon of PlanetEarth.
+  fun EarthsMoon : Ind Moon ;
+
+  fun EasternAfrica : Ind GeographicArea ;
+
+  fun EasternAsia : Ind GeographicArea ;
+
+  fun EasternEurope : Ind GeographicArea ;
+
+  -- The half of the Earth that includes Europe, 
+  -- Asia, Africa, and Australia.
+  fun EasternHemisphere : Ind Hemisphere ;
+
+  fun EasternSouthAmerica : Ind GeographicArea ;
+
+  -- Ecosystem is a subclass of GeographicAreas considered together with
+  -- their organisms and environment as a functioning whole.
+  fun Ecosystem : Class ;
+  fun Ecosystem_Class : SubClass Ecosystem GeographicArea ;
+
+  -- Effluent is a Substance 
+  -- that generically covers any waste matter that is released into 
+  -- the environment, including sewage and industrial pollutants.
+  fun Effluent : Class ;
+  fun Effluent_Class : SubClass Effluent Substance ;
+
+  fun ElNino : Class ;
+  fun ElNino_Class : SubClass ElNino WeatherSeason ;
+
+  -- (ElevationHighPointFn ?AREA) 
+  -- denotes the area within the GeographicArea ?AREA that has the 
+  -- highest elevation.
+  fun ElevationHighPointFn : El GeographicArea -> Ind GeographicArea ;
+
+  -- (ElevationLowPointFn ?AREA) 
+  -- denotes the area within the GeographicArea ?AREA that has the 
+  -- lowest elevation.
+  fun ElevationLowPointFn : El GeographicArea -> Ind GeographicArea ;
+
+
+  fun EndangeredMarineWildlifeIssue : Ind BiodiversityIssue ;
+
+  -- EndangeredSpecies is the 
+  -- subclass of Organism that includes plants and animals that 
+  -- are in danger of extinction from destruction of individuals 
+  -- or of habitat.
+  fun EndangeredSpecies : Class ;
+  fun EndangeredSpecies_Class : SubClass EndangeredSpecies Organism ;
+
+  fun EndangeredSpeciesConvention : Ind Agreement ;
+
+  fun EndangeredSpeciesIssue : Ind BiodiversityIssue ;
+
+  fun EnvironmentalIssue : Class ;
+  fun EnvironmentalIssue_Class : SubClass EnvironmentalIssue AreaOfConcern ;
+
+  fun EnvironmentalModificationConvention : Ind Agreement ;
+
+  fun EnvironmentalWaterIssue : Class ;
+  fun EnvironmentalWaterIssue_Class : SubClass EnvironmentalWaterIssue EnvironmentalIssue ;
+
+  -- Erosion is a wearing process on 
+  -- LandForms by wind, running water, ice, heat, and other processes, 
+  -- in which rock and soil material are removed from one area and 
+  -- deposited elsewhere.
+  fun Erosion : Class ;
+  fun Erosion_Class : SubClass Erosion (both GeologicalProcess Removing) ;
+
+  -- Estuary is the subclass of BodyOfWater that 
+  -- represents WaterAreas where a sea or ocean Tide meets a River 
+  -- current.
+  fun Estuary : Class ;
+  fun Estuary_Class : SubClass Estuary (both BodyOfWater (both Inlet SaltWaterArea)) ;
+
+  -- ExclusiveFishingZone is the 
+  -- subclass of MaritimeClaimArea including offshore areas over which a 
+  -- nation claims exclusive jurisdiction only for fishing purposes (cf. 
+  -- MaritimeExclusiveEconomicZone). Zone widths vary up to 200 miles 
+  -- (NM).
+  fun ExclusiveFishingZone : Class ;
+  fun ExclusiveFishingZone_Class : SubClass ExclusiveFishingZone (both MaritimeClaimArea SaltWaterArea) ;
+
+  -- (ExclusiveFishingZoneFn ?POLITY) denotes the 
+  -- ExclusiveFishingZone that is claimed by the 
+  -- GeopoliticalArea ?POLITY.
+  fun ExclusiveFishingZoneFn : El GeopoliticalArea -> Ind ExclusiveFishingZone ;
+
+  -- ExtendedFishingZone is the subclass of MaritimeClaimArea 
+  -- that includes offshore areas over which a nation claims fishing rights, 
+  -- beyond that nation's ExclusiveFishingZone. Zone widths vary, 
+  -- from as little as 12 miles (NM) up to a width of 200 miles (NM).
+  fun ExtendedFishingZone : Class ;
+  fun ExtendedFishingZone_Class : SubClass ExtendedFishingZone (both MaritimeClaimArea SaltWaterArea) ;
+
+  -- (ExtendedFishingZoneFn ?POLITY) denotes the 
+  -- ExtendedFishingZoneFn that is claimed by the 
+  -- GeopoliticalArea ?POLITY, beyond its ExclusiveFishingZone.
+  fun ExtendedFishingZoneFn : El GeopoliticalArea -> Ind ExtendedFishingZone ;
+
+  fun Famine : Class ;
+  fun Famine_Class : SubClass Famine SocialInteraction ;
+
+  fun FamineIssue : Ind EnvironmentalIssue ;
+
+  fun FarmingPracticesIssue : Ind EnvironmentalIssue ;
+
+  -- Fathom is a UnitOfMeasure used for measuring 
+  -- water depth. One fathom is equal to six feet.
+  fun Fathom : Ind UnitOfLength ;
+
+  -- FertileTerrain describes an area 
+  -- that has the type of soil and climate conditions needed to produce 
+  -- good quality crops.
+  fun FertileTerrain : Ind TerrainAttribute ;
+
+  -- Fire is the subclass of Combustion events in 
+  -- which flames are present. Fires are slower combustion processes than 
+  -- explosions, though some fires may include explosive episodes.
+  fun Fire : Class ;
+  fun Fire_Class : SubClass Fire Combustion ;
+
+  fun FishStockDepletionIssue : Ind EnvironmentalIssue ;
+
+  -- Fishing is the class of Processes in which 
+  -- Fish are hunted.
+  fun Fishing : Class ;
+  fun Fishing_Class : SubClass Fishing Hunting ;
+
+  fun FlashFlooding : Class ;
+  fun FlashFlooding_Class : SubClass FlashFlooding Flooding ;
+
+  -- FlatTerrain is a TerrainAttribute 
+  -- describing regions within which there is very little variation in 
+  -- altitude.
+  fun FlatTerrain : Ind TerrainAttribute ;
+
+  fun Flooding_WeatherProcess : SubClass Flooding WeatherProcess ;
+
+  -- (FlowFn ?FLUID) denotes the Motion process
+  -- associated with the constitutive pieces of the FlowRegion ?FLUID.
+  fun FlowFn : El FlowRegion -> Ind Motion ;
+
+  -- (FlowRegionFn ?FLOW) denotes the region 
+  -- in which the coherent LiquidMotion process ?FLOW is occurring.
+  fun FlowRegionFn : El LiquidMotion -> Ind Region ;
+
+  fun FlowRegion_Region : SubClass FlowRegion Region ;
+
+  fun Fogging : Class ;
+  fun Fogging_Class : SubClass Fogging WeatherProcess ;
+
+  -- Forest is the class of large LandAreas that 
+  -- are covered by trees and associated undergrowth, either growing wild or 
+  -- managed for the purpose of timber production.
+  fun Forest : Class ;
+  fun Forest_Class : SubClass Forest LandArea ;
+
+  fun ForestDamage : Class ;
+  fun ForestDamage_Class : SubClass ForestDamage Damaging ;
+
+  fun ForestDegradation : Ind EnvironmentalIssue ;
+
+  fun ForestFire : Class ;
+  fun ForestFire_Class : SubClass ForestFire (both Combustion ForestDamage) ;
+
+  fun FragileEcosystemIssue : Ind BiodiversityIssue ;
+
+  fun FreezingRain : Class ;
+  fun FreezingRain_Class : SubClass FreezingRain Precipitation ;
+
+  -- Freshwater is the subclass of Water 
+  -- that has low soluble mineral content. See also PotableWater.
+  fun Freshwater : Class ;
+  fun Freshwater_Class : SubClass Freshwater Water ;
+
+  fun FreshwaterOverutilization : Class ;
+  fun FreshwaterOverutilization_Class : SubClass FreshwaterOverutilization SocialInteraction ;
+
+  -- (GeographicCenterFn ?REGION) denotes the geographical center 
+  -- of the GeographicArea ?REGION.
+  fun GeographicCenterFn : El GeographicArea -> Ind GeographicArea ;
+
+  fun GeographicRegion : Class ;
+
+  -- GeologicalFault is the subclass of 
+  -- GeographicAreas in which there is a fracture in the Earth's crust 
+  -- and differential movement can occur on the two sides of the fault. 
+  -- Such movement results in EarthTremors and is the cause of 
+  -- Earthquakes.
+  fun GeologicalFault : Class ;
+  fun GeologicalFault_Class : SubClass GeologicalFault GeographicArea ;
+
+  -- GeologicallyStable is a 
+  -- TerrainAttribute of a GeographicArea in which the geological 
+  -- substructure is stable, i.e., there are no active Volcanoes, 
+  -- no major fault lines, no blasting or other destabilizing activity.
+  fun GeologicallyStable : Ind TerrainAttribute ;
+
+  fun Ghibli : Class ;
+  fun Ghibli_Class : SubClass Ghibli WindProcess ;
+
+  -- A Glacier is a large body of slow_moving ice. 
+  -- Glaciers displace soil and rock while moving over land surfaces and break 
+  -- apart, forming Icebergs, when they reach the sea.
+  fun Glacier : Class ;
+  fun Glacier_Class : SubClass Glacier LandForm ;
+
+  fun GrassFire : Class ;
+  fun GrassFire_Class : SubClass GrassFire Combustion ;
+
+  -- Grassland is the class of LandAreas 
+  -- where the predominant vegetation is some kind of grass.
+  fun Grassland : Class ;
+  fun Grassland_Class : SubClass Grassland (both Biome LandArea) ;
+
+  -- Gravel is small rounded stones, often mixed with sand.
+  fun Gravel : Class ;
+  fun Gravel_Class : SubClass Gravel Rock ;
+
+  fun GreatSaltLake : Ind SaltLake ;
+
+  -- GreenhouseGas is the subclass of 
+  -- substances that, when present in the atmosphere, trap infrared 
+  -- radiation and cause global warming. Greenhouse gases include 
+  -- carbon dioxide, hydrofluorocarbons, methane, nitrous oxide, ozone, 
+  -- and water vapor.
+  fun GreenhouseGas : Class ;
+  fun GreenhouseGas_Class : SubClass GreenhouseGas PureSubstance ;
+
+  fun GreenwichEnglandUK : Ind City ;
+
+  -- GroundCoverVegetation 
+  -- describes the density of uniform low vegetation in a field or meadow.
+  fun GroundCoverVegetation : Ind Attribute ;
+
+  -- Groundwater is the subclass of 
+  -- Water that is found in deposits in the earth.
+  fun Groundwater : Class ;
+  fun Groundwater_Class : SubClass Groundwater Water ;
+
+  fun GroundwaterPollutionIssue : Ind EnvironmentalWaterIssue ;
+
+  -- Gulf is the class of extensions of a Sea or 
+  -- Ocean that reach into a land mass or are partially enclosed by a 
+  -- LandArea. A Gulf is typically larger than a Bay.
+  fun Gulf : Class ;
+  fun Gulf_Class : SubClass Gulf (both BodyOfWater SaltWaterArea) ;
+
+  fun GulfOfAden : Ind (both Gulf SaltWaterArea) ;
+
+  fun GulfOfMexico : Ind (both Gulf SaltWaterArea) ;
+
+  fun GulfOfOman : Ind (both Gulf SaltWaterArea) ;
+
+  -- Hailing is a precipitation process 
+  -- in which Water falls in a Solid state with round, hard pellets.
+  fun Hailing : Class ;
+  fun Hailing_Class : SubClass Hailing Precipitation ;
+
+  fun HarmattanWind : Class ;
+  fun HarmattanWind_Class : SubClass HarmattanWind WindProcess ;
+
+  fun HazardousWastesConvention : Ind Agreement ;
+
+  -- Headwind is the relative attribute of a 
+  -- Wind to an object when the force of the wind is applied to the front 
+  -- of the object (FrontFn). A headwind can negatively affect the speed 
+  -- capability of a vehicle.
+  fun Headwind : Ind Attribute ;
+
+  fun HeavyRaining : Class ;
+  fun HeavyRaining_Class : SubClass HeavyRaining Raining ;
+
+  fun HeavySurf : Class ;
+  fun HeavySurf_Class : SubClass HeavySurf (both WaterMotion WeatherProcess) ;
+
+  -- Hemisphere is the class of GeographicAreas 
+  -- that are halves of the Earth, as traditionally divided into the Northern 
+  -- and Southern Hemispheres along the equator and into the Eastern and Western 
+  -- Hemispheres along a north_south line running 20°W and 160°E.
+  fun Hemisphere : Class ;
+  fun Hemisphere_Class : SubClass Hemisphere GeographicArea ;
+
+  fun HighBiodiversity : Ind BiodiversityAttribute ;
+
+  -- HighPressureWeatherSystem is 
+  -- the class of weather systems characterized by high barometricPressures. 
+  -- High pressure systems typically cause clear weather.
+  fun HighPressureWeatherSystem : Class ;
+  fun HighPressureWeatherSystem_Class : SubClass HighPressureWeatherSystem WeatherSystem ;
+
+  -- HighTide is the class of TidalProcesses that 
+  -- occur twice a day in marine waters, in which the water level rises above 
+  -- the mean sea level.
+  fun HighTide : Class ;
+  fun HighTide_Class : SubClass HighTide TidalProcess ;
+
+  -- HigherHighTide is the subclass of 
+  -- HighTide processes that occur in marine waters with a 
+  -- MixedTideProcess.
+  fun HigherHighTide : Class ;
+  fun HigherHighTide_Class : SubClass HigherHighTide HighTide ;
+
+  -- A Hill is a raised part of the earth's surface with 
+  -- sloping sides _ an old mountain which because of erosion has become shorter 
+  -- and more rounded.
+  fun Hill : Class ;
+  fun Hill_Class : SubClass Hill (both LandForm UplandArea) ;
+
+  -- Humus is decaying organic matter found in Soil 
+  -- and derived from dead animal and plant material.
+  fun Humus : Class ;
+  fun Humus_Class : SubClass Humus Mixture ;
+
+  fun Hurricane : Class ;
+  fun Hurricane_Class : SubClass Hurricane (both TropicalCyclone WeatherProcess) ;
+
+  fun HurricaneSeason : Class ;
+  fun HurricaneSeason_Class : SubClass HurricaneSeason WeatherSeason ;
+
+  -- HydropowerWaterArea is the class of WaterAreas with waterflow strength adequate 
+  -- for the production of hydropower.
+  fun HydropowerWaterArea : Class ;
+  fun HydropowerWaterArea_Class : SubClass HydropowerWaterArea WaterArea ;
+
+  -- An Iceberg is a large chunk of ice that has 
+  -- broken off from a glacier and fallen into the sea. The larger part of 
+  -- an Iceberg floats underwater.
+  fun Iceberg : Class ;
+  fun Iceberg_Class : SubClass Iceberg (both SelfConnectedObject Water) ;
+
+  fun Icing : Class ;
+  fun Icing_Class : SubClass Icing (both Freezing WeatherProcess) ;
+
+  fun IllegalWildlifeTradeIssue : Ind EnvironmentalIssue ;
+
+  fun InadequatePotableWaterIssue : Ind EnvironmentalWaterIssue ;
+
+  fun InadequateSanitationIssue : Ind EnvironmentalIssue ;
+
+  -- IndianOcean represents the Indian Ocean.
+  fun IndianOcean : Ind Ocean ;
+
+  fun IndigenousPeoplesPreservationIssue : Ind EnvironmentalIssue ;
+
+  -- IndustrialPollution is 
+  -- the subclass of Pollution characterized by pollutants that 
+  -- originate in industrial processes.
+  fun IndustrialPollution : Class ;
+  fun IndustrialPollution_Class : SubClass IndustrialPollution Pollution ;
+
+  fun IndustrialPollutionIssue : Ind PollutionIssue ;
+
+  -- An instance of InlandWaterSystem 
+  -- comprises two or more lakes or rivers, canals, or other waterways that 
+  -- are interconnected.
+  fun InlandWaterSystem : Class ;
+  fun InlandWaterSystem_Class : SubClass InlandWaterSystem (both Collection WaterArea) ;
+
+  -- Inlet is the class of bays or other recesses 
+  -- into the shore of a lake, sea, or river, includes InletPassages, which 
+  -- are passages leading from open water through some barrier to a bay or 
+  -- lagoon.
+  fun Inlet : Class ;
+  fun Inlet_Class : SubClass Inlet BodyOfWater ;
+
+  -- InletPassage is the class of water 
+  -- passages connecting an area of open water to a bay or lagoon, through 
+  -- some land barrier(s) close on either side.
+  fun InletPassage : Class ;
+  fun InletPassage_Class : SubClass InletPassage Inlet ;
+
+  -- (InnerBoundaryFn ?REGION) denotes the 
+  -- inner boundary of the Region ?REGION, where ?REGION has an inner and 
+  -- outer orientation with respect to another object.
+  fun InnerBoundaryFn : El Region -> Ind Region ;
+
+  -- InternationalAgreement is the 
+  -- subclass of Agreements which are made by and between Nations.
+  fun InternationalAgreement : Class ;
+  fun InternationalAgreement_Class : SubClass InternationalAgreement Agreement ;
+
+  -- InternationalBorder is the 
+  -- subclass of GeographicAreas where the areas of two Nations meet.
+  fun InternationalBorder : Class ;
+  fun InternationalBorder_Class : SubClass InternationalBorder GeographicArea ;
+
+  fun InvasiveSpeciesIssue : Ind EnvironmentalIssue ;
+
+  -- IrrigatedLand is the subclass of 
+  -- LandArea representing land whose water supply is artificially 
+  -- supplied or supplemented.
+  fun IrrigatedLand : Class ;
+  fun IrrigatedLand_Class : SubClass IrrigatedLand LandArea ;
+
+  -- Irrigating is the process of transporting 
+  -- and applying water to crops by artificial means.
+  fun Irrigating : Class ;
+  fun Irrigating_Class : SubClass Irrigating Motion ;
+
+  -- IrrigationChannel is the class of 
+  -- artificially created channels used for transporting water to agricultural 
+  -- fields for Irrigating crops.
+  fun IrrigationChannel : Class ;
+  fun IrrigationChannel_Class : SubClass IrrigationChannel Artifact ;
+
+  -- An Isthmus is a narrow strip of land that 
+  -- connects two larger land masses and is bordered on two sides by water.
+  fun Isthmus : Class ;
+  fun Isthmus_Class : SubClass Isthmus LandArea ;
+
+  -- JetStream is the class of high_velocity 
+  -- AirStreams that blow constantly in the upper atmosphere with constant 
+  -- speed and direction, though their location shifts somewhat. There are 
+  -- four JetStreams in EarthsAtmosphere.
+  fun JetStream : Class ;
+  fun JetStream_Class : SubClass JetStream AirStream ;
+
+  -- Jungle is a subclass of fertile LandAreas 
+  -- that are overgrown with tropical vegetation.
+  fun Jungle : Class ;
+  fun Jungle_Class : SubClass Jungle (both Biome LandArea) ;
+
+  fun Khamsin : Class ;
+  fun Khamsin_Class : SubClass Khamsin Windstorm ;
+
+  -- KnotUnitOfSpeed is a unit for measuring 
+  -- speed. One KnotUnitOfSpeed is equal to one NauticalMile per one 
+  -- HourDuration.
+  fun KnotUnitOfSpeed : Ind CompositeUnitOfMeasure ;
+
+  fun KokoNor : Ind SaltLake ;
+
+  -- Lake is the subclass of BodyOfWater whose instances are naturally
+  -- occurring static bodies of water surrounded by land.
+  fun Lake : Class ;
+  fun Lake_Class : SubClass Lake StaticWaterArea ;
+
+  fun LakeBakhtegan : Ind SaltLake ;
+
+  fun LakeEyre : Ind SaltLake ;
+
+  fun LakeMareotis : Ind SaltLake ;
+
+  -- A LakeRegion is a GeographicArea 
+  -- including land surrounding one or more Lakes.
+  fun LakeRegion : Class ;
+  fun LakeRegion_Class : SubClass LakeRegion GeographicArea ;
+
+  fun LakeTorrens : Ind SaltLake ;
+
+  fun LakeWalker : Ind SaltLake ;
+
+  fun LandClearingIssue : Ind BiodiversityIssue ;
+
+  -- A LandForm is the class of geographically and/or geologically 
+  -- distinct areas that occur on Earth's surface, including mountains, hills, plains, valleys, 
+  -- deltas, and features of submerged land areas such as the ocean floor.
+  fun LandForm : Class ;
+  fun LandForm_Class : SubClass LandForm GeographicArea ;
+
+  fun LandSubsidence : Class ;
+  fun LandSubsidence_Class : SubClass LandSubsidence GeologicalProcess ;
+
+  -- LandlockedArea is the class of 
+  -- LandAreas that lack access to an Ocean or to a Waterway 
+  -- providing a link to the ocean.
+  fun LandlockedArea : Class ;
+  fun LandlockedArea_Class : SubClass LandlockedArea LandArea ;
+
+  -- LandlockedWater includes water 
+  -- areas that are surrounded by land, including salt lakes, fresh 
+  -- water lakes, ponds, reservoirs, and (more or less) wetlands.
+  fun LandlockedWater : Class ;
+  fun LandlockedWater_Class : SubClass LandlockedWater BodyOfWater ;
+
+  fun LandminesIssue : Ind EnvironmentalIssue ;
+
+  fun Landslide : Class ;
+  fun Landslide_Class : SubClass Landslide GeologicalProcess ;
+
+  -- LandslideProcess is a subclass 
+  -- of Motion that represents events in which a loosened mass of mud, 
+  -- dirt, or rock slides down a slope, by the force of gravity.
+  fun LandslideProcess : Class ;
+  fun LandslideProcess_Class : SubClass LandslideProcess Impelling ;
+
+  -- Latitude is the class of Regions, 
+  -- associated with areas on the Earth's surface, which are parallels 
+  -- measured in PlaneAngleDegrees from the Equator.
+  fun Latitude : Class ;
+  fun Latitude_Class : SubClass Latitude Region ;
+
+  -- LatitudeFn is a VariableArityRelation 
+  -- used to denote a parallel of latitude. Examples: 
+  -- (LatitudeFn North (MeasureFn 38 AngularDegree)), (LatitudeFn 
+  -- South (MeasureFn 23 AngularDegree) (MeasureFn 30 ArcMinute)), 
+  -- (LatitudeFn South (MeasureFn 60 AngularDegree) (MeasureFn 0 ArcMinute) 
+  -- (MeasureFn 0 ArcSecond)), (LatitudeFn North 
+  -- (MeasureFn 42 AngularDegree) (MeasureFn 7.89 ArcMinute)).
+  fun LatitudeFn : El DirectionalAttribute -> El AngleMeasure -> El AngleMeasure -> El AngleMeasure -> Ind Region ;
+
+  fun LawOfTheSeaConvention : Ind Agreement ;
+
+  -- Lichen is the class of complex thallyphytic 
+  -- plants made up of Alga and Fungus growing symbiotically.
+  fun Lichen : Class ;
+  fun Lichen_Class : SubClass Lichen NonFloweringPlant ;
+
+  fun LimitedFreshWaterIssue : Ind EnvironmentalWaterIssue ;
+
+  -- LittoralCurrent is the subclass of 
+  -- WaterCurrents that occur near a ShoreArea. Examples include 
+  -- TidalEbb, TidalFlow, and RipCurrents.
+  fun LittoralCurrent : Class ;
+  fun LittoralCurrent_Class : SubClass LittoralCurrent WaterCurrent ;
+
+  -- A LittoralZone is an area along the shore 
+  -- of a large body of water, especially an Ocean or Sea, including the area 
+  -- extending from the high tide mark out to a depth of 200 meters. The littoral 
+  -- zone is of interest for its land features, e.g., slope gradient and soil 
+  -- composition, including features of its SubmergedLandArea.
+  fun LittoralZone : Class ;
+  fun LittoralZone_Class : SubClass LittoralZone GeographicArea ;
+
+  -- Type of soil intermediate in texture between clay and sand, 
+  -- consisting of a mixture of clay, sand, gravel, silt, and organic matter.
+  fun Loam : Class ;
+  fun Loam_Class : SubClass Loam Soil ;
+
+  fun Locust : Class ;
+  fun Locust_Class : SubClass Locust Animal ;
+
+  -- Longitude is the class of Regions, 
+  -- associated with areas on the Earth's surface, which are meridians 
+  -- measured in PlaneAngleDegrees from the PrimeMeridian through 
+  -- GreenwichEnglandUK.
+  fun Longitude : Class ;
+  fun Longitude_Class : SubClass Longitude Region ;
+
+  -- (LongitudeFn ?DIRECTION @ROW) 
+  -- denotes a meridian of longitude. Note that LongitudeFn is 
+  -- a VariableArityRelation. Examples: 
+  -- (LongitudeFn East (MeasureFn 180 AngularDegree)), (LongitudeFn 
+  -- West (MeasureFn 122 AngularDegree) (MeasureFn 24 ArcMinute)), 
+  -- (LongitudeFn East (MeasureFn 121 AngularDegree) 
+  -- (MeasureFn 0 ArcMinute) (MeasureFn 15 ArcSecond)), 
+  -- (LongitudeFn West (MeasureFn 80 AngularDegree) 
+  -- (MeasureFn 6.78 ArcMinute)).
+  fun LongitudeFn : El DirectionalAttribute -> El AngleMeasure -> El AngleMeasure -> El AngleMeasure -> Ind GeographicArea ;
+
+  fun LossOfHabitatIssue : Ind EnvironmentalIssue ;
+
+  fun LowBiodiversity : Ind BiodiversityAttribute ;
+
+  -- LowPressureWeatherSystem is 
+  -- the class of weather systems characterized by low or unstable 
+  -- barometricPressures. Low pressure systems typically introduce 
+  -- unsettled weather, frequently including storms.
+  fun LowPressureWeatherSystem : Class ;
+  fun LowPressureWeatherSystem_Class : SubClass LowPressureWeatherSystem WeatherSystem ;
+
+  -- LowTerrain is terrain in which the slope 
+  -- is less than 3%.
+  fun LowTerrain : Ind TerrainAttribute ;
+
+  -- LowTide is the class of TidalProcesses that 
+  -- occur twice a day in marine waters, in which the water level falls below 
+  -- the mean sea level.
+  fun LowTide : Class ;
+  fun LowTide_Class : SubClass LowTide TidalProcess ;
+
+  -- LowerLowTide is the subclass of LowTide 
+  -- processes that occur in marine waters with a MixedTideProcess.
+  fun LowerLowTide : Class ;
+  fun LowerLowTide_Class : SubClass LowerLowTide LowTide ;
+
+  -- A LowlandArea is a land area lower than the surrounding region, 
+  -- and usually level land.
+  fun LowlandArea : Class ;
+  fun LowlandArea_Class : SubClass LowlandArea LandForm ;
+
+  fun MarineDumpingConvention : Ind Agreement ;
+
+  fun MarineLifeConservationConvention : Ind Agreement ;
+
+  -- A MaritimeClaimArea is a GeographicArea 
+  -- delimited by a geopolitical state's claim, under the LawOfTheSea, of rights 
+  -- to certain resources, activities, or jurisdiction in the claimed area. 
+  -- MaritimeClaimAreas can pertain to WaterAreas, SubmergedLandAreas, and Airspace.
+  fun MaritimeClaimArea : Class ;
+  fun MaritimeClaimArea_Class : SubClass MaritimeClaimArea GeographicArea ;
+
+  -- (MaritimeClaimsTerritorialSeaFn ?REGION) denotes a 
+  -- peripheral zones of maritime control extending outward from the Region 
+  -- ?REGION.
+  fun MaritimeClaimsTerritorialSeaFn : El Region -> Ind PerimeterArea ;
+
+  -- MaritimeContiguousZone 
+  -- is the subclass of MaritimeClaimArea that includes areas over 
+  -- which a geopolitical state may exercise some control of activities 
+  -- beyond the 12_mile zone of its TerritorialSea. In general, 
+  -- the authorized control is for preventing or punishing activities 
+  -- that would violate laws applying within the 12_mile zone (that is, 
+  -- authorization to chase and intercept). According to the LawOfTheSea, 
+  -- a MaritimeContiguousZone may extend up to 24 nautical miles from the coast.
+  fun MaritimeContiguousZone : Class ;
+  fun MaritimeContiguousZone_Class : SubClass MaritimeContiguousZone (both MaritimeClaimArea SaltWaterArea) ;
+
+  -- (MaritimeContiguousZoneFn ?POLITY) denotes the MaritimeContiguousZone 
+  -- that is claimed by the GeopoliticalArea ?POLITY.
+  fun MaritimeContiguousZoneFn : El GeopoliticalArea -> Ind MaritimeContiguousZone ;
+
+  -- MaritimeExclusiveEconomicZone is the subclass of MaritimeClaimArea 
+  -- that represents the offshore area that coastal nations can claim for 
+  -- fishing and other uses of the ocean water and seabed found there.
+  fun MaritimeExclusiveEconomicZone : Class ;
+  fun MaritimeExclusiveEconomicZone_Class : SubClass MaritimeExclusiveEconomicZone (both MaritimeClaimArea SaltWaterArea) ;
+
+  -- (MaritimeExclusiveEconomicZoneFn ?POLITY) denotes the 
+  -- MaritimeExclusiveEconomicZone that is claimed by the 
+  -- GeopoliticalArea ?POLITY.
+  fun MaritimeExclusiveEconomicZoneFn : El GeopoliticalArea -> Ind MaritimeExclusiveEconomicZone ;
+
+  fun MaritimeHazard : Class ;
+  fun MaritimeHazard_Class : SubClass MaritimeHazard LandForm ;
+
+  -- MaritimeShelfArea 
+  -- is a subclass of MaritimeClaimArea that covers SubmergedLandAreas 
+  -- claimed by an adjacent geopolitical area. The LawOfTheSea defines 
+  -- the continental shelf as extending up to 200 miles (NM) offshore and 
+  -- including the resources found therein. The defined claim area does not 
+  -- correspond exactly to a geological ContinentalShelf, but if there is one, 
+  -- the two areas will overlap spatially.
+  fun MaritimeShelfArea : Class ;
+  fun MaritimeShelfArea_Class : SubClass MaritimeShelfArea (both MaritimeClaimArea SubmergedLandArea) ;
+
+  -- (MaritimeShelfAreaFn ?POLITY) denotes the MaritimeShelfArea 
+  -- that is claimed by the GeopoliticalArea ?POLITY.
+  fun MaritimeShelfAreaFn : El GeopoliticalArea -> Ind MaritimeShelfArea ;
+
+  -- MediterraneanClimateZone 
+  -- is a subclass of TemperateClimateZone that is characterized by 
+  -- mild, cool, wet winters and warm dry summers. Mediterranean shores 
+  -- are the archetype, but the Mediterranean climate is also found elsewhere.
+  fun MediterraneanClimateZone : Class ;
+  fun MediterraneanClimateZone_Class : SubClass MediterraneanClimateZone TemperateClimateZone ;
+
+  fun MediterraneanSea : Ind Sea ;
+
+  fun MediumBiodiversity : Ind BiodiversityAttribute ;
+
+  -- A Mesa is a land formation having a relatively flat 
+  -- top and steep rock walls.
+  fun Mesa : Class ;
+  fun Mesa_Class : SubClass Mesa (both LandForm UplandArea) ;
+
+  -- MetallurgicalPlant is the 
+  -- subclass of Organization that includes metal refining and 
+  -- manufacturing plants. Such plants typically release extremely 
+  -- toxic waste which can pollute air and groundwater if not 
+  -- properly treated.
+  fun MetallurgicalPlant : Class ;
+  fun MetallurgicalPlant_Class : SubClass MetallurgicalPlant Organization ;
+
+  fun MiddleAmerica : Ind GeographicArea ;
+
+  -- MiddleEastRegion is a 
+  -- GeopoliticalArea that comprises countries of Southwestern Asia 
+  -- and (in some definitions) Northwestern Africa. Here this term is 
+  -- defined as in the CIA World Fact Book, in which the Middle East 
+  -- includes: Bahrain, Cyprus, the Gaza Strip, Iran, Iraq, Israel, 
+  -- Jordan, Kuwait, Lebanon, Oman, Qatar, Saudi Arabia, Syria, the United 
+  -- Arab Emirates, the West Bank, and Yemen.
+  fun MiddleEastRegion : Ind (both GeographicArea GeopoliticalArea) ;
+
+  -- MiddleLatitudeDesertClimateZone is the subclass of 
+  -- DesertClimateZone characterized by a cool dry climate 
+  -- typical of middle latitude deserts. This is subtype 'BWk' 
+  -- in the Keoppen climate system.
+  fun MiddleLatitudeDesertClimateZone : Class ;
+  fun MiddleLatitudeDesertClimateZone_Class : SubClass MiddleLatitudeDesertClimateZone DesertClimateZone ;
+
+  -- MidlatitudeContinentalClimateZone is a subclass of 
+  -- TemperateClimateZone that is characterized by cool winters 
+  -- and hot summers.
+  fun MidlatitudeContinentalClimateZone : Class ;
+  fun MidlatitudeContinentalClimateZone_Class : SubClass MidlatitudeContinentalClimateZone ClimateZone ;
+
+  fun MiningPollutionIssue : Ind EnvironmentalIssue ;
+
+  fun Mistral : Class ;
+  fun Mistral_Class : SubClass Mistral WindProcess ;
+
+  -- MixedTideProcess is the subclass of 
+  -- TidalProcesses consisting of daily cycles in which the two low and 
+  -- two high tides are of unequal height. In areas with this kind of 
+  -- pattern, the chart (based on average low water) is determined by the 
+  -- Mean Lower Low Water.
+  fun MixedTideProcess : Class ;
+  fun MixedTideProcess_Class : SubClass MixedTideProcess TidalProcess ;
+
+  fun Monsoon : Class ;
+  fun Monsoon_Class : SubClass Monsoon WeatherSeason ;
+
+  -- MonsoonClimateZone is the class 
+  -- of TropicalClimateZones in which there is a short dry season between 
+  -- rains heavy enough to keep the ground wet all through the year. This 
+  -- is Koeppen climate system subtype 'Aw'.
+  fun MonsoonClimateZone : Class ;
+  fun MonsoonClimateZone_Class : SubClass MonsoonClimateZone TropicalClimateZone ;
+
+  -- Moon is the class of NaturalSatellites that 
+  -- orbit planets or large asteroids.
+  fun Moon : Class ;
+  fun Moon_Class : SubClass Moon NaturalSatellite ;
+
+  -- A Mountain is a high, rocky LandForm, usually 
+  -- with steep sides and a pointed or rounded top, and higher than a Hill.
+  fun Mountain : Class ;
+  fun Mountain_Class : SubClass Mountain (both LandForm UplandArea) ;
+
+  -- A MountainRange is a row or chain of connected mountains.
+  fun MountainRange : Class ;
+  fun MountainRange_Class : SubClass MountainRange (both LandForm UplandArea) ;
+
+  -- An area of MountainousTerrain 
+  -- is an area of rugged terrain in which there are many mountains.
+  fun MountainousTerrain : Ind TerrainAttribute ;
+
+  fun Mudflow : Class ;
+  fun Mudflow_Class : SubClass Mudflow Landslide ;
+
+  fun Mudslide : Class ;
+  fun Mudslide_Class : SubClass Mudslide Landslide ;
+
+  -- NaturalGas is a combustible mixture 
+  -- of methane and higher hydrocarbons.
+  fun NaturalGas : Class ;
+  fun NaturalGas_Class : SubClass NaturalGas CompoundSubstance ;
+
+  -- NaturalSatellite is the class of large, 
+  -- naturally occurring astronomical bodies orbiting some other AstronomicalBody.
+  fun NaturalSatellite : Class ;
+  fun NaturalSatellite_Class : SubClass NaturalSatellite Satellite ;
+
+  -- NauticalMile represents the international 
+  -- unit used for measuring distance in sea and air navigation. The unit is 
+  -- based on the length of a minute of arc of a great circle of 
+  -- PlanetEarth.
+  fun NauticalMile : Ind UnitOfLength ;
+
+  fun NormalFault : Class ;
+  fun NormalFault_Class : SubClass NormalFault DipSlipFault ;
+
+  fun NorthAmerica : Ind (both GeographicArea Continent) ;
+
+  -- NorthAtlanticOcean denotes the northern geographicSubregion 
+  -- of the AtlanticOcean.
+  fun NorthAtlanticOcean : Ind (both SaltWaterArea BodyOfWater) ;
+
+  -- NorthPacificOcean denotes the northern geographicSubregion 
+  -- of the PacificOcean.
+  fun NorthPacificOcean : Ind (both SaltWaterArea BodyOfWater) ;
+
+  fun NorthSea : Ind Sea ;
+
+  -- Northeast represents the compass direction of Northeast.
+  fun Northeast : Ind DirectionalAttribute ;
+
+  fun NorthernAfrica : Ind GeographicArea ;
+
+  fun NorthernAsia : Ind GeographicArea ;
+
+  fun NorthernEurope : Ind GeographicArea ;
+
+  -- The half of the Earth that lies above the equator.
+  fun NorthernHemisphere : Ind Hemisphere ;
+
+  fun NorthernNorthAmerica : Ind GeographicArea ;
+
+  fun NorthernSouthAmerica : Ind GeographicArea ;
+
+  -- Northwest represents the compass direction of Northwest.
+  fun Northwest : Ind DirectionalAttribute ;
+
+  -- NoxiousSubstance is 
+  -- the class of Substances that are harmful to Humans.
+  fun NoxiousSubstance : Class ;
+  fun NoxiousSubstance_Class : SubClass NoxiousSubstance Substance ;
+
+  fun NuclearEnvironmentalIssue : Ind PollutionIssue ;
+
+  fun NuclearPollutionIssue : Ind EnvironmentalIssue ;
+
+  fun NuclearTestBanTreaty : Ind Agreement ;
+
+  -- Oasis is a subclass of LandAreas that are 
+  -- fertile places within a desert, which have water and some vegetation.
+  fun Oasis : Class ;
+  fun Oasis_Class : SubClass Oasis (both Biome LandArea) ;
+
+  -- OccludedFront is the class of complex 
+  -- weather transition processes in which a cold air mass overtakes a warm 
+  -- air mass.
+  fun OccludedFront : Class ;
+  fun OccludedFront_Class : SubClass OccludedFront WeatherFront ;
+
+  -- Ocean is the class containing the oceans 
+  -- that are the major subdivisions of the WorldOcean. According to 
+  -- the International Hydrographic Association, there are five oceans: 
+  -- the AtlanticOcean, PacificOcean, IndianOcean, SouthernOcean, 
+  -- and ArcticOcean. Note: The largest oceans, the Atlantic and Pacific, 
+  -- are subdivided into Northern and Southern regions, but those regions 
+  -- are not separate Oceans.
+  fun Ocean : Class ;
+  fun Ocean_Class : SubClass Ocean (both BodyOfWater SaltWaterArea) ;
+
+  fun Oceania : Ind (both GeographicArea Continent) ;
+
+  fun OilPollutionIssue : Ind PollutionIssue ;
+
+  -- OpenSea is the Attribute of a WaterArea 
+  -- that is open ocean beyond five NauticalMiles of land, also known as 
+  -- 'blue water'.
+  fun OpenSea : Ind Attribute ;
+
+  -- (OuterBoundaryFn ?REGION) denotes the 
+  -- outer boundary of the Region ?REGION, where ?REGION has an inner and 
+  -- outer orientation with respect to another object.
+  fun OuterBoundaryFn : El Region -> Ind Region ;
+
+  -- OvercastWeather represents
+  --  a condition in which more than 70% of the sky is covered 
+  -- with clouds.
+  fun OvercastWeather : Class ;
+  fun OvercastWeather_Class : SubClass OvercastWeather WeatherProcess ;
+
+  -- Overgrazing is the class of processes 
+  -- in which grazing animals consume vegetation faster than it can regrow.
+  fun Overgrazing : Class ;
+  fun Overgrazing_Class : SubClass Overgrazing Eating ;
+
+  fun OvergrazingIssue : Ind EnvironmentalIssue ;
+
+  fun OverhuntingIssue : Ind EnvironmentalIssue ;
+
+  fun OverpopulationIssue : Ind EnvironmentalIssue ;
+
+  fun OzoneDepletionIssue : Ind EnvironmentalIssue ;
+
+  fun OzoneLayerProtectionProtocol : Ind Agreement ;
+
+  -- The OzoneShield is a layer in 
+  -- EarthsAtmosphere, located about 25 miles above Earth's surface, 
+  -- composed of ozone gas that absorbs ultraviolent radiation from 
+  -- the Sun that can be damaging to living things.
+  fun OzoneShield : Ind (both AtmosphericRegion CompoundSubstance) ;
+
+  -- PHValue ('pH') is a UnitOfMeasure 
+  -- used to measure the acidity or alkalinity of a solution. The pH 
+  -- scale ranges from 0 to 14. The pH of a neutral solution is 7. 
+  -- Acid solutions have a pH value less than seven. Alkaline solutions 
+  -- have a value greater than seven.
+  fun PHValue : Ind NonCompositeUnitOfMeasure ;
+
+  -- PacificOcean represents the Pacific Ocean.
+  fun PacificOcean : Ind Ocean ;
+
+  -- Pampa is a class of vast, level, typically grassy 
+  -- Plains of land in South America.
+  fun Pampa : Class ;
+  fun Pampa_Class : SubClass Pampa (both Grassland Plain) ;
+
+  fun Pampero : Class ;
+  fun Pampero_Class : SubClass Pampero Windstorm ;
+
+  -- PartlyCloudyWeather 
+  -- represents a condition in which between 30% and 70% of the 
+  -- sky is covered with clouds.
+  fun PartlyCloudyWeather : Class ;
+  fun PartlyCloudyWeather_Class : SubClass PartlyCloudyWeather WeatherProcess ;
+
+  -- A Peninsula is a piece of land that extends 
+  -- into a body of water and is surrounded on three sides by water. Typically 
+  -- connected by an Isthmus or neck of land that is narrower than its main 
+  -- portion (contrast with Cape).
+  fun Peninsula : Class ;
+  fun Peninsula_Class : SubClass Peninsula LandForm ;
+
+  -- A PerimeterArea is a region that 
+  -- extends outward from a boundary with another region, surrounding or 
+  -- partially surrounding it, but which is not part of that other region. 
+  -- See BorderFn and PerimeterAreaFn.
+  fun PerimeterArea : Class ;
+  fun PerimeterArea_Class : SubClass PerimeterArea Region ;
+
+  -- (PerimeterAreaFn ?REGION) denotes a 
+  -- class including any peripheral zones extending outward from the Region 
+  -- ?REGION.
+  fun PerimeterAreaFn: El Region -> Desc PerimeterArea ;
+
+  fun Permafrost : Ind CompoundSubstance ;
+
+  -- PermanentCropLand is the subclass 
+  -- of LandArea that represents land cultivated for crops that are produced 
+  -- without replanting after every harvest, such as fruit trees, coffee, rubber, 
+  -- nuts, and vineyards. Does not include timberland. Cf. arableLandArea.
+  fun PermanentCropLand : Class ;
+  fun PermanentCropLand_Class : SubClass PermanentCropLand LandArea ;
+
+  fun PersianGulf : Ind (both Gulf SaltWaterArea) ;
+
+  fun PesticideIssue : Ind EnvironmentalIssue ;
+
+  -- PesticidePollution is 
+  -- the subclass of Pollution in which the pollutant is a pesticide.
+  fun PesticidePollution : Class ;
+  fun PesticidePollution_Class : SubClass PesticidePollution Pollution ;
+
+  -- Phospate is a salt or ester of a 
+  -- phosphoric acid.
+  fun Phosphate : Class ;
+  fun Phosphate_Class : SubClass Phosphate CompoundSubstance ;
+
+  -- A Piedmont is a LandArea at the foot of mountains.
+  fun Piedmont : Class ;
+  fun Piedmont_Class : SubClass Piedmont LandArea ;
+
+  -- Pines are coniferous BotanicalTrees of the 
+  -- genus Pinus, in the family Pinaceae. They are evergreens, with needle_
+  -- shaped leaves and propagate by dropping pine cones, which contains
+  -- seeds. (from Wikipedia)
+  fun PineTree : Class ;
+  fun PineTree_Class : SubClass PineTree BotanicalTree ;
+
+  -- A Plain is a broad, flat or gently rolling area, 
+  -- usually low in elevation.
+  fun Plain : Class ;
+  fun Plain_Class : SubClass Plain LowlandArea ;
+
+  -- Planet is the class of large 
+  -- NaturalSatellites that revolve around a star.
+  fun Planet : Class ;
+  fun Planet_Class : SubClass Planet NaturalSatellite ;
+
+  fun PlanetEarth : Ind Planet ;
+
+  fun PlanetJupiter : Ind Planet ;
+
+  fun PlanetMars : Ind Planet ;
+
+  fun PlanetMercury : Ind Planet ;
+
+  fun PlanetNeptune : Ind Planet ;
+
+  fun PlanetPluto : Ind Planet ;
+
+  fun PlanetSaturn : Ind Planet ;
+
+  fun PlanetUranus : Ind Planet ;
+
+  fun PlanetVenus : Ind Planet ;
+
+  -- Planting is the class of processes in 
+  -- which botanical Plants are planted or transplanted, whether as 
+  -- seeds, seedlings, or mature plants.
+  fun Planting : Class ;
+  fun Planting_Class : SubClass Planting Putting ;
+
+  -- A Plateau is a flat upland area with one steep 
+  -- face, elevated plain.
+  fun Plateau : Class ;
+  fun Plateau_Class : SubClass Plateau (both LandForm UplandArea) ;
+
+  -- Poaching is the illegal killing 
+  -- of non_human animals.
+  fun Poaching : Class ;
+  fun Poaching_Class : SubClass Poaching Killing ;
+
+  -- PolarClimateZone is a subclass of 
+  -- ClimateZone characterized by having an average temperature less than 
+  -- 10 degrees Celsius in the warmest month. This is Koeppen climate system 
+  -- Type E. No agriculture is supported in polar climates.
+  fun PolarClimateZone : Class ;
+  fun PolarClimateZone_Class : SubClass PolarClimateZone ClimateZone ;
+
+  -- PolarTypeFClimateZone is a 
+  -- subclass of PolarClimateZone characterized by having no month in 
+  -- which the temperature rises to 10 degrees Celsius or above.
+  fun PolarTypeFClimateZone : Class ;
+  fun PolarTypeFClimateZone_Class : SubClass PolarTypeFClimateZone PolarClimateZone ;
+
+  fun PollutedFishStocksIssue : Ind EnvironmentalIssue ;
+
+  -- Pollution is the contamination of an 
+  -- environment by man_made wastes.
+  fun Pollution : Class ;
+  fun Pollution_Class : SubClass Pollution SocialInteraction ;
+
+  fun PollutionIssue : Class ;
+  fun PollutionIssue_Class : SubClass PollutionIssue EnvironmentalIssue ;
+  fun PoopoLake : Ind SaltLake ;
+
+  fun PopulationMigrationIssue : Ind EnvironmentalIssue ;
+
+  -- PotableWater is the subclass 
+  -- of Water that represents safely drinkable water.
+  fun PotableWater : Class ;
+  fun PotableWater_Class : SubClass PotableWater Freshwater ;
+
+  -- Potash is a Potassium carbonate from 
+  -- wood ashes or a potassium compound.
+  fun Potash : Class ;
+  fun Potash_Class : SubClass Potash CompoundSubstance ;
+
+  fun PowerPlantEmissionsIssue : Ind PollutionIssue ;
+
+  -- Prairie is a class of large plains 
+  -- LandAreas with tall grass vegetation.
+  fun Prairie : Class ;
+  fun Prairie_Class : SubClass Prairie (both Grassland Plain) ;
+
+  -- RainForest is the subclass of LandAreas 
+  -- that are densely planted with trees.
+  fun RainForest : Class ;
+  fun RainForest_Class : SubClass RainForest (both Biome Forest) ;
+
+  -- Raining is a precipitation process 
+  -- in which water falls in a Liquid state.
+  fun Raining : Class ;
+  fun Raining_Class : SubClass Raining Precipitation ;
+
+  -- Rapids is the class of WaterAreas that are 
+  -- parts of a StreamWaterArea where the currents move swiftly over 
+  -- rocks.
+  fun Rapids : Class ;
+  fun Rapids_Class : SubClass Rapids StreamWaterArea ;
+
+  fun RawSewagePollutionIssue : Ind PollutionIssue ;
+
+  fun RedSea : Ind Sea ;
+
+  -- A Reef is a ridge of rock, coral, or sand at or near 
+  -- the surface of a WaterArea.
+  fun Reef : Class ;
+  fun Reef_Class : SubClass Reef (both LandForm MaritimeHazard) ;
+
+  -- Reforestation is the process of 
+  -- replanting trees on land where they were cut or burned.
+  fun Reforestation : Class ;
+  fun Reforestation_Class : SubClass Reforestation Planting ;
+
+  -- A Reservoir is an artifically made (or 
+  -- artifically enlarged) holding area where water is collected and stored 
+  -- for future use.
+  fun Reservoir : Class ;
+  fun Reservoir_Class : SubClass Reservoir (both Artifact FreshWaterArea) ;
+
+  -- A ReservoirLake is an artifically made 
+  -- (or artifically enlarged) lake used for water collection and storage.
+  fun ReservoirLake : Class ;
+  fun ReservoirLake_Class : SubClass ReservoirLake (both Lake Reservoir) ;
+
+  -- A RichterMagnitude is a measure 
+  -- of the severity of an EarthTremor. For example, 
+  -- (MeasureFn 6.5 RichterMagnitude) denotes the value of 6.5 on the 
+  -- Richter scale.
+  fun RichterMagnitude : Ind CompositeUnitOfMeasure ;
+
+  -- A RipCurrent is a fast narrow surface current 
+  -- that flows seaward from a ShoreArea.
+  fun RipCurrent : Class ;
+  fun RipCurrent_Class : SubClass RipCurrent LittoralCurrent ;
+
+  -- River is the class of large streams of fresh 
+  -- water flowing through land into a lake, ocean, or other body of water.
+  fun River : Class ;
+  fun River_Class : SubClass River (both BodyOfWater (both FreshWaterArea StreamWaterArea)) ;
+
+  -- A RiverBank is the ShoreArea adjacent to a river.
+  fun RiverBank : Class ;
+  fun RiverBank_Class : SubClass RiverBank (both LandForm ShoreArea) ;
+
+  -- RiverMouth is the subclass of WaterAreas 
+  -- that are the outfalls of a river or stream into another body of water.
+  fun RiverMouth : Class ;
+  fun RiverMouth_Class : SubClass RiverMouth (both StreamWaterArea WaterArea) ;
+
+  -- A RiverSystem comprises all the tributary 
+  -- streams and rivers (StreamWaterAreas) that drain along converging 
+  -- paths into the main river of the system, which discharges into a 
+  -- StaticWaterArea.
+  fun RiverSystem : Class ;
+  fun RiverSystem_Class : SubClass RiverSystem (both Collection WaterArea) ;
+
+  fun Rockslide : Class ;
+  fun Rockslide_Class : SubClass Rockslide Landslide ;
+
+  -- Salination is the class of processes 
+  -- in which either Freshwater or Topsoil becomes imbued with 
+  -- SodiumChloride from sea water or from the evaporation of irrigation water.
+  fun Salination : Class ;
+  fun Salination_Class : SubClass Salination Combining ;
+
+  -- A Salt is a chemical substance which is a combination 
+  -- of a metal or a base with an acid.
+  fun Salt : Class ;
+  fun Salt_Class : SubClass Salt CompoundSubstance ;
+
+  -- SaltLake is the class of landlocked 
+  -- bodies of salt water, including those referred to as 'Seas', e.g., 
+  -- the CaspianSea. But note that the MediterraneanSea is a Sea.
+  fun SaltLake : Class ;
+  fun SaltLake_Class : SubClass SaltLake (both LandlockedWater SaltWaterArea) ;
+
+  fun SaltonSea : Ind SaltLake ;
+
+  -- Sand is loose fragments of minerals or rocks. Smaller than 
+  -- gravel and larger than silt and clay, sand particles range from 8/10,000 to 8/100 
+  -- inch (0.02 to 2 millimeters) in diameter. Sand is formed by the Erosion of rocks 
+  -- through the action of water, ice, or air.
+  fun Sand : Class ;
+  fun Sand_Class : SubClass Sand Soil ;
+
+  fun Sandstorm : Class ;
+  fun Sandstorm_Class : SubClass Sandstorm WeatherProcess ;
+
+  -- Sanitation is the class of processes 
+  -- by which human waste and garbage are disposed of.
+  fun Sanitation : Class ;
+  fun Sanitation_Class : SubClass Sanitation Removing ;
+
+  -- Satellite is the collection of bodies that 
+  -- revolve around some astronomical body, e.g., planets around a star. 
+  -- This class includes both artificial and NaturalSatellites.
+  fun Satellite : Class ;
+  fun Satellite_Class : SubClass Satellite AstronomicalBody ;
+
+  -- Savanna is a class of tropical or subtropical 
+  -- Grasslands, typically treeless.
+  fun Savanna : Class ;
+  fun Savanna_Class : SubClass Savanna (both Grassland Plain) ;
+
+  -- ScatteredVegetation describes 
+  -- the pattern of vegetation in which plants appear at intervals.
+  fun ScatteredVegetation : Ind Attribute ;
+
+  -- Sea is the class of smaller subdivisions of 
+  -- the WorldOcean, typically partially surrounded by land. However, 
+  -- for inland salt water bodies that are sometimes called 'Sea', see 
+  -- SaltLake.
+  fun Sea : Class ;
+  fun Sea_Class : SubClass Sea (both BodyOfWater SaltWaterArea) ;
+
+  fun SeaIce : Class ;
+  fun SeaIce_Class : SubClass SeaIce Ice ;
+
+  -- SeaLevel designates the global Mean Sea Surface 
+  -- (MSS). Note that SeaLevel represents a GeographicArea that comprises all 
+  -- the local Mean Sea Level (MSL) areas used as references for measuring altitude. 
+  -- In fact, there are local variations in MSL, due to tides and long_ and short_
+  -- term weather conditions.
+  fun SeaLevel : Ind GeographicArea ;
+
+  -- SeabedArea is the class of SubmergedLandAreas that are part of 
+  -- the sea floor.
+  fun SeabedArea : Class ;
+  fun SeabedArea_Class : SubClass SeabedArea SubmergedLandArea ;
+
+  -- A Seacoast is the ShoreArea along the 
+  -- margin of an ocean, extending inland approximately 1_3 km from the low 
+  -- water mark.
+  fun Seacoast : Class ;
+  fun Seacoast_Class : SubClass Seacoast (both LandForm ShoreArea) ;
+
+  fun SemiaridClimateZone : Class ;
+  fun SemiaridClimateZone_Class : SubClass SemiaridClimateZone ClimateZone ;
+
+  fun SevereThunderstorm : Class ;
+  fun SevereThunderstorm_Class : SubClass SevereThunderstorm WeatherProcess ;
+
+  fun SewageDisposal : Class ;
+  fun SewageDisposal_Class : SubClass SewageDisposal Sanitation ;
+
+  fun ShipPollutionProtocol : Ind Agreement ;
+
+  fun Shoal : Class ;
+  fun Shoal_Class : SubClass Shoal MaritimeHazard ;
+
+  -- Shoreline is the class of LandAreas that 
+  -- are the edge of a larger land mass abutting a bordering WaterArea.
+  fun Shoreline : Class ;
+  fun Shoreline_Class : SubClass Shoreline LandArea ;
+
+  -- (ShorelineFn ?LAND ?WATER) denotes 
+  -- the Shoreline where the GeographicArea ?LAND borders the 
+  -- WaterArea ?WATER.
+  fun ShorelineFn : El GeographicArea -> El WaterArea -> Ind LandArea ;
+
+  -- (ShortageFn ?TYPE) means that there 
+  -- is a shortage of objects of ?TYPE, which are used as resources.
+  fun ShortageFn: Desc Object -> Ind Entity ;
+
+  -- Shrub is the class of low, perennial, 
+  -- typically multi_stemmed woody plants, called shrubs or bushes.
+  fun Shrub : Class ;
+  fun Shrub_Class : SubClass Shrub FloweringPlant ;
+
+  -- SigningADocument is the class of 
+  -- actions in which an agent affixes a signature, stamp, or other evidence 
+  -- of authorization or attestation to a document. The document and signature 
+  -- may be electronic. Signings count as SocialInteractions even if done in 
+  -- private, because their significance derives from a social context.
+  fun SigningADocument : Class ;
+  fun SigningADocument_Class : SubClass SigningADocument Committing ;
+
+  -- Silt is sand or earth which is carried along by flowing 
+  -- water and deposited at a bend in a river or at a river's opening.
+  fun Silt : Class ;
+  fun Silt_Class : SubClass Silt Soil ;
+
+  -- Siltation is the class of processes 
+  -- in which WaterAreas become filled in with silt or mud, due to 
+  -- soil Erosion.
+  fun Siltation : Class ;
+  fun Siltation_Class : SubClass Siltation Putting ;
+
+  fun SiltationIssue : Ind EnvironmentalIssue ;
+
+  fun Sirocco : Class ;
+  fun Sirocco_Class : SubClass Sirocco WindProcess ;
+
+  -- SlashAndBurnAgriculture 
+  -- is the subclass of Agriculture processes in which land is 
+  -- cleared by cutting and burning trees, and crops are farmed until 
+  -- the soil is depleted, at which point the plot is abandoned to 
+  -- regrowth. This rotational technique is viable only with low 
+  -- populations and infrequent re_use.
+  fun SlashAndBurnAgriculture : Class ;
+  fun SlashAndBurnAgriculture_Class : SubClass SlashAndBurnAgriculture Agriculture ;
+
+  fun Sleeting : Class ;
+  fun Sleeting_Class : SubClass Sleeting Precipitation ;
+
+  -- A SlopedArea is a land surface which lies at 
+  -- an angle to the horizontal so that some points on it are higher than 
+  -- others, a slope.
+  fun SlopedArea : Class ;
+  fun SlopedArea_Class : SubClass SlopedArea LandForm ;
+
+  -- Snowing is a precipitation process 
+  -- in which water falls in a Solid state.
+  fun Snowing : Class ;
+  fun Snowing_Class : SubClass Snowing Precipitation ;
+
+  fun SocialInteractions : Class ;
+
+  -- Soil is a substance composed of fine rock material 
+  -- disintegrated by geological processes, mixed with humus, the organic remains of decomposed vegetation.
+  fun Soil : Class ;
+  fun Soil_Class : SubClass Soil Mixture ;
+
+  -- SoilDegradation is a class of 
+  -- processes in which the productive capacity of soil is lowered by 
+  -- over_fertilization, overuse of pesticides, erosion, or soil 
+  -- compaction.
+  fun SoilDegradation : Class ;
+  fun SoilDegradation_Class : SubClass SoilDegradation SocialInteractions ;
+
+  fun SoilDegradationIssue : Ind SoilQualityIssue ;
+
+  -- SoilErosion is the subclass of 
+  -- Erosion in which the matter removed by wind or water is topsoil.
+  fun SoilErosion : Class ;
+  fun SoilErosion_Class : SubClass SoilErosion Erosion ;
+
+  fun SoilErosionIssue : Ind SoilQualityIssue ;
+
+  fun SoilExhaustionIssue : Ind SoilQualityIssue ;
+
+  fun SoilPollutionIssue : Ind (both PollutionIssue SoilQualityIssue) ;
+
+  fun SoilQualityIssue : Class ;
+  fun SoilQualityIssue_Class : SubClass SoilQualityIssue EnvironmentalIssue ;
+
+  fun SoilSalination : Class ;
+  fun SoilSalination_Class : SubClass SoilSalination Salination ;
+
+  fun SoilSalinityIssue : Ind SoilQualityIssue ;
+
+  -- SoilSolution is the liquid component of soils, 
+  -- which is largely water containing a number of mineral substances in solution, 
+  -- as well as comparatively large amounts of dissolved oxygen and carbon dioxide.
+  fun SoilSolution : Class ;
+  fun SoilSolution_Class : SubClass SoilSolution Solution ;
+
+  -- Sol is the nearest Star to PlanetEarth and 
+  -- the focus of its SolarSystem.
+  fun Sol : Ind Star ;
+
+  -- SolarSystem is the class of systems that 
+  -- consist of a star or stars and any encircling astronomical bodies.
+  fun SolarSystem : Class ;
+  fun SolarSystem_Class : SubClass SolarSystem Collection ;
+
+  fun SolidWasteDisposal : Class ;
+  fun SolidWasteDisposal_Class : SubClass SolidWasteDisposal Sanitation ;
+
+  fun SolidWasteDisposalIssue : Ind PollutionIssue ;
+
+  -- A Sound is a long, relatively narrow waterway 
+  -- lying along the shore of a land mass and protected from open water by 
+  -- another land area, an island or group of islands. Some sounds open at 
+  -- both ends into the same body of water (e.g., Long Island Sound), while 
+  -- others connect two different bodies of water (e.g., Melville Sound). 
+  -- A Sound may occur in salt or fresh water bodies. Generally wider than 
+  -- a Strait.
+  fun Sound : Class ;
+  fun Sound_Class : SubClass Sound BodyOfWater ;
+
+  fun SouthAmerica : Ind Continent ;
+
+  -- SouthAtlanticOcean denotes the southern geographicSubregion 
+  -- of the AtlanticOcean.
+  fun SouthAtlanticOcean : Ind (both SaltWaterArea BodyOfWater) ;
+
+  -- SouthPacificOcean denotes the southern geographicSubregion 
+  -- of the PacificOcean.
+  fun SouthPacificOcean : Ind (both SaltWaterArea BodyOfWater) ;
+
+  fun SouthSandwichTrench : Ind Hole ;
+
+  -- Southeast represents the compass direction of Southeast.
+  fun Southeast : Ind DirectionalAttribute ;
+
+  fun SoutheasternAsia : Ind GeographicArea ;
+
+  fun SoutheasternEurope : Ind GeographicArea ;
+
+  fun SouthernAfrica : Ind GeographicArea ;
+
+  fun SouthernAsia : Ind GeographicArea ;
+
+  fun SouthernEurope : Ind GeographicArea ;
+
+  -- The half of the Earth that lies below the 
+  -- equator.
+  fun SouthernHemisphere : Ind Hemisphere ;
+
+  -- SouthernOcean represents the Southern Ocean.
+  fun SouthernOcean : Ind (both Ocean PolarClimateZone) ;
+
+  fun SouthernSouthAmerica : Ind GeographicArea ;
+
+  -- Southwest represents the compass direction of Southwest.
+  fun Southwest : Ind DirectionalAttribute ;
+
+  fun SouthwesternAsia : Ind GeographicArea ;
+
+  fun SouthwesternEurope : Ind GeographicArea ;
+
+  -- SparseVegetation describes the 
+  -- pattern of vegetation in an area where there is very little vegetation.
+  fun SparseVegetation : Ind Attribute ;
+
+  fun Squall : Class ;
+  fun Squall_Class : SubClass Squall WeatherProcess ;
+
+  -- SquareKilometer represents a 
+  -- UnitOfMeasure equal to one square kilometer.
+  fun SquareKilometer : Ind UnitOfArea ;
+
+  -- SquareMeter represents a UnitOfMeasure 
+  -- equal to one square Meter.
+  fun SquareMeter : Ind UnitOfArea ;
+
+  -- (SquareUnitFn ?UNIT) denotes the 
+  -- UnitOfMeasure that is the square of the UnitOfMeasure ?UNIT. 
+  -- For example, (SquareUnitFn (KiloFn Meter)) denotes the unit 
+  -- of a square kilometer.
+  fun SquareUnitFn : El UnitOfMeasure -> Ind UnitOfMeasure ;
+
+  -- Star is the class of hot gaseous astronomical bodies.
+  fun Star : Class ;
+  fun Star_Class : SubClass Star AstronomicalBody ;
+
+  -- StationaryFront is the class of 
+  -- boundary areas between two air masses that are stationary, with neither 
+  -- mass presently replacing the other.
+  fun StationaryFront : Class ;
+  fun StationaryFront_Class : SubClass StationaryFront WeatherFront ;
+
+  -- A TerrainAttribute of a region in 
+  -- which there is a wide variation in elevation and slopeGradients 
+  -- of more than 10%.
+  fun SteepTerrain : Ind TerrainAttribute ;
+
+  -- Steppe is a subclass of Plain, representing 
+  -- vast, level, treeless areas of land in Asia or SE Europe.
+  fun Steppe : Class ;
+  fun Steppe_Class : SubClass Steppe Plain ;
+
+  -- SteppeClimateZone 
+  -- is the class of AridClimateZones where the dominant 
+  -- vegetation type is grasses, with no trees. Koeppen 
+  -- system 'BS'.
+  fun SteppeClimateZone : Class ;
+  fun SteppeClimateZone_Class : SubClass SteppeClimateZone AridClimateZone ;
+
+  -- A Stone is any small fragment of rock or mineral matter.
+  fun Stone : Class ;
+  fun Stone_Class : SubClass Stone Rock ;
+
+  fun StormSystem : Class ;
+  fun StormSystem_Class : SubClass StormSystem WeatherSystem ;
+
+  -- Strait is the subclass of BodyOfWater that 
+  -- consists of narrow water areas connecting two larger bodies of water. 
+  -- Straits are naturally occurring bodies of water.
+  fun Strait : Class ;
+  fun Strait_Class : SubClass Strait BodyOfWater ;
+
+  fun StraitOfHormuz : Ind (both Strait SaltWaterArea) ;
+
+  -- A StreamWaterConfluence is the 
+  -- place where a stream or other tributary joins a river.
+  fun StreamWaterConfluence : Class ;
+  fun StreamWaterConfluence_Class : SubClass StreamWaterConfluence WaterArea ;
+
+  fun StrikeSlipFault : Class ;
+  fun StrikeSlipFault_Class : SubClass StrikeSlipFault GeologicalFault ;
+
+  fun StrongWind : Class ;
+  fun StrongWind_Class : SubClass StrongWind WindProcess ;
+
+  -- SubmergedLandArea is the class of land 
+  -- regions that are located beneath bodies of water.
+  fun SubmergedLandArea : Class ;
+  fun SubmergedLandArea_Class : SubClass SubmergedLandArea GeographicArea ;
+
+  -- SubtropicalDesertClimateZone is a subclass of DesertClimateZone 
+  -- that is characterized by an average temperature greater than 18 
+  -- degrees Celsius, as well as very low rainfall. This is Koeppen 
+  -- system 'BWh'.
+  fun SubtropicalDesertClimateZone : Class ;
+  fun SubtropicalDesertClimateZone_Class : SubClass SubtropicalDesertClimateZone DesertClimateZone ;
+
+  -- SurfaceGroundArea is a subclass of 
+  -- GeographicArea that is restricted to regions whose surface is solid 
+  -- ground. A SurfaceGroundArea may be a discontinuous region overlapping 
+  -- a larger, continuous GeographicArea but excluding any WaterAreas 
+  -- enclosed therein. Rivers, lakes, reservoirs and other surface water areas 
+  -- are not part of any SurfaceGroundArea.
+  fun SurfaceGroundArea : Class ;
+  fun SurfaceGroundArea_Class : SubClass SurfaceGroundArea GeographicArea ;
+
+  fun Swarming : Class ;
+  fun Swarming_Class : SubClass Swarming Motion ;
+
+  -- Tailwind is the relative attribute of a 
+  -- Wind to an object when the force of the wind is applied to the back 
+  -- of the object (BackFn). A tailwind can positively affect the speed 
+  -- capability of a vehicle.
+  fun Tailwind : Ind Attribute ;
+
+  -- Talc is a very soft Mineral that is 
+  -- a basic silicate of magnesium.
+  fun Talc : Class ;
+  fun Talc_Class : SubClass Talc Mineral ;
+
+  -- TemperateClimateZone is the 
+  -- subclass of ClimateZone whose warmest month has an average 
+  -- temperature greater than 10 degrees Celsius and whose coolest month 
+  -- has an average temperature between 18 degrees and _3 degrees Celsius. 
+  -- This is Class C in the Koeppen climate system.
+  fun TemperateClimateZone : Class ;
+  fun TemperateClimateZone_Class : SubClass TemperateClimateZone ClimateZone ;
+
+  fun TemperateHardwoodForest : Class ;
+  fun TemperateHardwoodForest_Class : SubClass TemperateHardwoodForest (both Biome Forest) ;
+
+  fun TemperateRainForest : Class ;
+  fun TemperateRainForest_Class : SubClass TemperateRainForest (both RainForest TemperateHardwoodForest) ;
+
+  -- TemperateSummerDryClimateZone is the subclass of TemperateClimateZone 
+  -- that is characterized by dry summers, and in which the wettest winter month 
+  -- has at least three times the moisture of the driest summer month. The 
+  -- driest month has less than an average of 30 mm of precipitation. Koeppen 
+  -- climate system type 'Cs'.
+  fun TemperateSummerDryClimateZone : Class ;
+  fun TemperateSummerDryClimateZone_Class : SubClass TemperateSummerDryClimateZone TemperateClimateZone ;
+
+  -- TemperateWinterDryClimateZone is a subclass of TemperateClimateZone 
+  -- characterized by having at least 10 times as much precipitation in the 
+  -- wettest summer month as in the driest winter month. Koeppen climate 
+  -- system type 'Cw'.
+  fun TemperateWinterDryClimateZone : Class ;
+  fun TemperateWinterDryClimateZone_Class : SubClass TemperateWinterDryClimateZone TemperateClimateZone ;
+
+  -- TerrainAttribute is a class of 
+  -- Attributes that describe terrain.
+  fun TerrainAttribute : Class ;
+  fun TerrainAttribute_Class : SubClass TerrainAttribute InternalAttribute ;
+
+  -- TerritorialSea is the class 
+  -- of contiguous waters over which a GeopoliticalArea claims 
+  -- jurisdiction in accordance with the United Nations Convention 
+  -- on the LawOfTheSea (LOS), Part II. A territorial sea may be
+  -- up to 12 miles (NauticalMiles) in breadth. A subclass of 
+  -- MaritimeClaimArea.
+  fun TerritorialSea : Class ;
+  fun TerritorialSea_Class : SubClass TerritorialSea (both MaritimeClaimArea SaltWaterArea) ;
+
+  -- (TerritorialSeaFn ?POLITY) denotes 
+  -- the TerritorialSea that is claimed by the GeopoliticalArea ?POLITY.
+  fun TerritorialSeaFn : El GeopoliticalArea -> Ind TerritorialSea ;
+
+  fun ThrustFault : Class ;
+  fun ThrustFault_Class : SubClass ThrustFault DipSlipFault ;
+
+  fun Thunderstorm : Class ;
+  fun Thunderstorm_Class : SubClass Thunderstorm WeatherProcess ;
+
+  -- A TidalBore is an unusally high, fast tidal 
+  -- inflow from the sea, resulting from a high volume of water rushing from 
+  -- a wide_mouthed bay or Estuary into narrower landward areas.
+  fun TidalBore : Class ;
+  fun TidalBore_Class : SubClass TidalBore LittoralCurrent ;
+
+  -- TidalEbb is the subclass of WaterCurrents that are temporary and variable,
+  -- but regular, currents of ocean water flowing seaward up to and during 
+  -- the time of low tide. Alternating with TidalFlow.
+  fun TidalEbb : Class ;
+  fun TidalEbb_Class : SubClass TidalEbb LittoralCurrent ;
+
+  -- TidalFlow is the subclass of WaterCurrents 
+  -- that are temporary and variable, but regular, currents of ocean water 
+  -- flowing landward up to and during the time of high tide. Alternating 
+  -- with TidalEbb.
+  fun TidalFlow : Class ;
+  fun TidalFlow_Class : SubClass TidalFlow LittoralCurrent ;
+
+  -- TidalProcess is the class of daily 
+  -- recurring events in which the water level in a BodyOfWater rises 
+  -- and falls with the changing position between Earth and the Moon.
+  fun TidalProcess : Class ;
+  fun TidalProcess_Class : SubClass TidalProcess InternalChange ;
+
+  -- A Tide is a vertical movement of the water level 
+  -- in a BodyOfWater due to the gravitational attraction between Earth and 
+  -- the moon. Tides are diurnally recurrent events. In most regions with 
+  -- tides, every day there are two high tides and two low tides. MixedTide 
+  -- represents a process in which the tides at either extreme are unequal.
+  fun Tide : Class ;
+  fun Tide_Class : SubClass Tide (both FlowRegion SaltWaterArea) ;
+
+  fun Tornado : Class ;
+  fun Tornado_Class : SubClass Tornado WeatherProcess ;
+
+  fun ToxicChemicalPollutionIssue : Ind PollutionIssue ;
+
+  fun ToxicWasteDisposalIssue : Ind PollutionIssue ;
+
+  -- TreatyDocument is the subclass of 
+  -- Texts that represent written agreements between Nations.
+  fun TreatyDocument : Class ;
+  fun TreatyDocument_Class : SubClass TreatyDocument Text ;
+
+  -- TropicalClimateZone is a 
+  -- subclass of ClimateZone in which the average temperature of the 
+  -- coldest month is greater than 18 degrees Celsius. This is Class 
+  -- 'A' in the Koeppen climate classification system.
+  fun TropicalClimateZone : Class ;
+  fun TropicalClimateZone_Class : SubClass TropicalClimateZone ClimateZone ;
+
+  -- TropicalCyclone is the class of 
+  -- CyclonicStorms that occur in the Tropics and typically have 
+  -- rotational winds of hurricane force (74 mph or higher).
+  fun TropicalCyclone : Class ;
+  fun TropicalCyclone_Class : SubClass TropicalCyclone CyclonicStorm ;
+
+  fun TropicalRainForest : Class ;
+  fun TropicalRainForest_Class : SubClass TropicalRainForest RainForest ;
+
+  fun TropicalTimber83Agreement : Ind Agreement ;
+
+  fun TropicalTimber94Agreement : Ind Agreement ;
+
+  -- The Tropics is the region of 
+  -- PlanetEarth that lies between approximately 23 and one half degrees 
+  -- North latitude and 23 and one half degrees South latitude, 
+  -- encircling the globe. 'The Tropics'. See also TropicArea.
+  fun Tropics : Ind GeographicArea ;
+
+  -- Tsunami is the class of highly destructive 
+  -- ocean waves caused by offshore seismic processes.
+  fun Tsunami : Class ;
+  fun Tsunami_Class : SubClass Tsunami WeatherProcess ;
+
+  -- Tundra is a subclass of flat, treeless Plains 
+  -- areas lying within the ArcticRegion. Subsoil in Tundra is permanently 
+  -- frozen.
+  fun Tundra : Class ;
+  fun Tundra_Class : SubClass Tundra (both ArcticRegion (both Biome Plain)) ;
+
+  -- TundraClimateZone is a subclass of 
+  -- PolarClimateZone characterized by having an average temperature 
+  -- above zero degrees Celsius (but below 10 degrees) in the warmest month. 
+  -- Koeppen subtype 'ET'.
+  fun TundraClimateZone : Class ;
+  fun TundraClimateZone_Class : SubClass TundraClimateZone PolarClimateZone ;
+
+  fun Typhoon : Class ;
+  fun Typhoon_Class : SubClass Typhoon TropicalCyclone ;
+
+  fun UVLevelsIssue : Ind EnvironmentalIssue ;
+
+  -- The class of regions located Below the surface of the earth.
+  fun UndergroundArea : Class ;
+  fun UndergroundArea_Class : SubClass UndergroundArea GeographicArea ;
+
+  fun UnexplodedOrdinanceIssue : Ind EnvironmentalIssue ;
+
+  -- A UniformPerimeterArea is one 
+  -- that has a defined uniform width.
+  fun UniformPerimeterArea : Class ;
+  fun UniformPerimeterArea_Class : SubClass UniformPerimeterArea PerimeterArea ;
+
+  -- Uphill is a PositionalAttribute that 
+  -- describes the relation between two things, one of which is located 
+  -- up a slope from the other.
+  fun Uphill : Ind PositionalAttribute ;
+
+  -- An UplandArea is a LandArea elevated above the surrounding 
+  -- terrain.
+  fun UplandArea : Class ;
+  fun UplandArea_Class : SubClass UplandArea LandForm ;
+
+  fun Upstream : Ind PositionalAttribute ;
+
+  -- Upwind is a PositionalAttribute that indicates relative position 
+  -- upwind (windward) with respect to the direction that the Wind is 
+  -- blowing.
+  fun Upwind : Ind PositionalAttribute ;
+
+  fun UrbanizationIssue : Ind EnvironmentalIssue ;
+
+  -- A Valley is an area of low_lying land flanked by 
+  -- higher ground. Valleys typically contain a stream or river flowing along the valley floor.
+  fun Valley : Class ;
+  fun Valley_Class : SubClass Valley (both LandForm LowlandArea) ;
+
+  fun VehicleEmissionsIssue : Ind PollutionIssue ;
+
+  -- VehicularPollution is the 
+  -- subclass of Pollution in which the pollutants are vehicle emissions.
+  fun VehicularPollution : Class ;
+  fun VehicularPollution_Class : SubClass VehicularPollution Pollution ;
+
+  -- Veldt is a subclass of Grasslands which have 
+  -- scattered shrubs or trees.
+  fun Veldt : Class ;
+  fun Veldt_Class : SubClass Veldt (both Grassland Plain) ;
+
+  -- A VolcanicCone is a hill of lava or 
+  -- pyroclastics surrounding a volcanic vent. Not as high as a 
+  -- VolcanicMountain.
+  fun VolcanicCone : Class ;
+  fun VolcanicCone_Class : SubClass VolcanicCone (both Hill Volcano) ;
+
+  -- VolcanicEruption is the subclass of 
+  -- GeologicalProcesses in which Volcanoes erupt.
+  fun VolcanicEruption : Class ;
+  fun VolcanicEruption_Class : SubClass VolcanicEruption GeologicalProcess ;
+
+  fun VolcanicGasRelease : Class ;
+  fun VolcanicGasRelease_Class : SubClass VolcanicGasRelease VolcanicEruption ;
+
+  -- A VolcanicMountain is a cone_shaped 
+  -- mountain formed out of rock or ash thrown up from inside the earth, 
+  -- frequently with an opening or depression at the top.
+  fun VolcanicMountain : Class ;
+  fun VolcanicMountain_Class : SubClass VolcanicMountain (both Mountain Volcano) ;
+
+  fun VolcanicallyActive : Ind VolcanoStatus ;
+
+  fun VolcanicallyDormant : Ind VolcanoStatus ;
+
+  fun VolcanicallyExtinct : Ind VolcanoStatus ;
+
+  -- A Volcano in the broadest sense, i.e., a region 
+  -- containing a vent through which magmous and/or pyroclastic materials are 
+  -- passed from the interior of the Earth to its surface (atmospheric or 
+  -- underwater).
+  fun Volcano : Class ;
+  fun Volcano_Class : SubClass Volcano LandForm ;
+
+  fun VolcanoStatus : Class ;
+  fun VolcanoStatus_Class : SubClass VolcanoStatus InternalAttribute ;
+
+  -- WarmFront is the class of transitional 
+  -- weather processes occurring between a warm air mass that is advancing 
+  -- upon a cool air mass.
+  fun WarmFront : Class ;
+  fun WarmFront_Class : SubClass WarmFront WeatherFront ;
+
+  fun WaterBorneDiseaseIssue : Ind EnvironmentalIssue ;
+
+  -- WaterCatchment is the subclass of 
+  -- Artifacts used to capture rainwater or runoff as a source 
+  -- of Freshwater.
+  fun WaterCatchment : Class ;
+  fun WaterCatchment_Class : SubClass WaterCatchment Artifact ;
+
+  -- WaterCurrent is a subclass of FlowRegions 
+  -- consisting of moving water, especially those currents found within a 
+  -- well_identified area and having an established pattern of movement, such 
+  -- as an OceanCurrent, a RipTide, or a River. WaterCurrent is 
+  -- disjoint with StaticWaterArea. As a consequence, Lakes for example 
+  -- cannot be FlowRegions, however, currents may be present in a lake.
+  fun WaterCurrent : Class ;
+  fun WaterCurrent_Class : SubClass WaterCurrent (both FlowRegion WaterArea) ;
+
+  fun WaterInfrastructureIssue : Ind EnvironmentalIssue ;
+
+  fun WaterManagementIssue : Ind EnvironmentalIssue ;
+
+  -- WaterOnlyArea is a subclass of 
+  -- GeographicArea that is restricted to regions whose surface is water. 
+  -- A WaterOnlyArea may be a discontinuous region overlapping a larger, 
+  -- continuous GeographicArea but excluding any LandAreas enclosed therein. 
+  -- Dry land areas, including islands, are not part of any WaterOnlyArea.
+  fun WaterOnlyArea : Class ;
+  fun WaterOnlyArea_Class : SubClass WaterOnlyArea GeographicArea ;
+
+  fun WaterOverutilization : Class ;
+  fun WaterOverutilization_Class : SubClass WaterOverutilization SocialInteraction ;
+
+  -- WaterPollution is the subclass 
+  -- of Pollution processes in which Water is the polluted substance.
+  fun WaterPollution : Class ;
+  fun WaterPollution_Class : SubClass WaterPollution Pollution ;
+
+  fun WaterPollutionIssue : Ind EnvironmentalWaterIssue ;
+
+  -- Waterfall is the subclass of StreamWaterAreas where running water 
+  -- falls steeply downhill.
+  fun Waterfall : Class ;
+  fun Waterfall_Class : SubClass Waterfall StreamWaterArea ;
+
+  -- A WatershedDivide is a summit area, or 
+  -- narrow tract of higher ground that constitutes the watershed boundary 
+  -- between two adjacent drainage basins, it divides the surface waters that 
+  -- flow naturally in one direction from those that flow in the opposite 
+  -- direction.
+  fun WatershedDivide : Class ;
+  fun WatershedDivide_Class : SubClass WatershedDivide (both LandArea UplandArea) ;
+
+  fun Waterspout : Class ;
+  fun Waterspout_Class : SubClass Waterspout WeatherProcess ;
+
+  -- WeatherFront is the class of weather 
+  -- processes that are involve relationships between two air masses, such 
+  -- as a high pressure weather system or a low pressure system.
+  fun WeatherFront : Class ;
+  fun WeatherFront_Class : SubClass WeatherFront WeatherProcess ;
+
+  -- WeatherSeason is the class of seasonal 
+  -- processes that are characterized by various weather patterns. 
+  -- WeatherSeasons may recur on a regular annual basis, on a different 
+  -- pattern, or irregularly.
+  fun WeatherSeason : Class ;
+  fun WeatherSeason_Class : SubClass WeatherSeason WeatherProcess ;
+
+  -- WeatherSystem is the class of 
+  -- large_scale atmospheric processes that influence weather in a region 
+  -- for 2_5 days.
+  fun WeatherSystem : Class ;
+  fun WeatherSystem_Class : SubClass WeatherSystem WeatherProcess ;
+
+  fun WesternAfrica : Ind GeographicArea ;
+
+  fun WesternEurope : Ind GeographicArea ;
+
+  -- The half of the Earth that includes North 
+  -- and South America.
+  fun WesternHemisphere : Ind Hemisphere ;
+
+  fun WesternSouthAmerica : Ind GeographicArea ;
+
+  -- WetTropicalClimateZone is 
+  -- the subclass of TropicalClimateZone that is characterized by having 
+  -- no dry months. At least 60 mm of rainfall occur in the driest month. 
+  -- This is subtype 'Af' in the Koeppen climate system.
+  fun WetTropicalClimateZone : Class ;
+  fun WetTropicalClimateZone_Class : SubClass WetTropicalClimateZone TropicalClimateZone ;
+
+  fun WetlandDegradationIssue : Ind EnvironmentalIssue ;
+
+  fun WetlandsConvention : Ind Agreement ;
+
+  fun WhalingConvention : Ind Agreement ;
+
+  fun WildlifePoachingIssue : Ind EnvironmentalIssue ;
+
+  -- WindFlow is the class of variable AirStreams 
+  -- that are in the EarthsAtmosphere.
+  fun WindFlow : Class ;
+  fun WindFlow_Class : SubClass WindFlow AirStream ;
+
+  fun WindProcess : Class ;
+  fun WindProcess_Class : SubClass WindProcess WeatherProcess ;
+
+  fun Windstorm : Class ;
+  fun Windstorm_Class : SubClass Windstorm WindProcess ;
+
+  -- The WorldOcean is the collective mass of 
+  -- sea water that covers 70% of the surface of PlanetEarth, surrounding 
+  -- all of its dry land areas. Earth's individual Oceans are parts of 
+  -- the WorldOcean.
+  fun WorldOcean : Ind (both SaltWaterArea BodyOfWater) ;
+
+  fun Zud : Class ;
+  fun Zud_Class : SubClass Zud WeatherProcess ;
+
+  -- (airTemperature ?AREA ?TEMP) means that the temperature of the 
+  -- air at ?AREA is ?TEMP. Temperature may be expressed in units of 
+  -- TemperatureMeasure, including CelsiusDegree and FahrenheitDegree, 
+  -- among others.
+  fun airTemperature : El Object -> El TemperatureMeasure -> Formula ;
+
+  -- (arableLandArea ?REGION ?AMOUNT) 
+  -- means that the GeographicArea ?REGION has ?AMOUNT of land under 
+  -- cultivation with crops that are replanted after each harvest. ?AMOUNT 
+  -- may be expressed in physical units or with a percent or fraction.
+  -- Cf. permanentCropLandArea.
+  fun arableLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
+
+  -- (averagePrecipitationForPeriod ?PLACE ?PERIOD ?AMOUNT) means 
+  -- that at the GeographicArea ?PLACE, and during the TimeDuration 
+  -- ?PERIOD, the average daily precipitation was ?AMOUNT.
+  fun averagePrecipitationForPeriod : El GeographicArea -> El TimeDuration -> El ConstantQuantity -> Formula ;
+
+  -- (averageRainfallForPeriod ?AREA ?MO ?AMOUNT)
+  -- means that ?AREA receives ?AMOUNT of rain in month ?MO in an average
+  -- year. Note that ?AMOUNT is a linear measure indicating the depth of water that
+  -- would accumulate over ?AREA if all water were captured.
+  fun averageRainfallForPeriod : El GeographicArea -> El Month -> El LengthMeasure -> Formula ;
+
+  -- (averageTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
+  -- at the GeographicArea ?PLACE, and during the TimeDuration 
+  -- ?PERIOD, the average daily temperature was ?AMOUNT. Temperature 
+  -- may be expressed in some UnitOfTemperature, including 
+  -- CelsiusDegree and FahrenheitDegree, among others.
+  fun averageTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
+
+  -- (bioindicatorForHabitat ?AREA ?SPECIES) means that the health 
+  -- of the individuals in ?SPECIES indicates the condition of their 
+  -- habitat in the GeographicArea ?AREA.
+  fun bioindicatorForHabitat: El GeographicArea -> Desc OrganicObject -> Formula ;
+
+  -- (claimedTerritory ?AREA ?POLITY) 
+  -- means that some right over the GeographicArea ?AREA is claimed by 
+  -- the Agent or GeopoliticalArea ?POLITY. If two politically independent 
+  -- states or agents claim the same area, that area is a 'disputed 
+  -- territory'.
+  fun claimedTerritory : El GeographicArea -> El Agent -> Formula ;
+
+  -- (climateTypeInArea ?TYPE ?REGION) 
+  -- means that all or part of the GeographicArea ?REGION is of the 
+  -- ClimateZone ?TYPE.
+  fun climateTypeInArea: El GeographicArea -> Desc ClimateZone -> Formula ;
+
+  -- (cloudCoverFraction ?AREA ?AMOUNT) 
+  -- means that in the Region ?AREA, the fraction ?AMOUNT of the sky is 
+  -- covered with clouds.
+  fun cloudCoverFraction : El Region -> El NonnegativeRealNumber -> Formula ;
+
+  -- (coldSeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the cold season occurs 
+  -- during the TimeInterval ?INTERVAL.
+  fun coldSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- (connectedDownstream ?OBJ1 ?OBJ2) 
+  -- means that ?OBJ1 is connected, remotely or immediately, with ?OBJ2 along 
+  -- a directed system such as a RiverSystem.
+  fun connectedDownstream : El Object -> El Object -> Formula ;
+
+  -- (coolSeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the cool season occurs 
+  -- during the TimeInterval ?INTERVAL. For example, (coolSeasonInArea 
+  -- Angola (RecurringTimeIntervalFn May October
+  fun coolSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- (courseWRTCompassNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
+  -- heading from ?OBJ1 to ?OBJ2 is ?HEADING in AngularDegrees, with 
+  -- the reference point of 000 degrees North as measured by compass on 
+  -- or at ?OBJ1.
+  fun courseWRTCompassNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
+
+  -- (courseWRTMagneticNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
+  -- heading from ?OBJ1 to ?OBJ2 is ?HEADING in AngularDegrees, with 
+  -- the reference point of 000 degrees being the magnetic North pole.
+  fun courseWRTMagneticNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
+
+  -- (courseWRTTrueNorth ?OBJ1 ?OBJ2 ?HEADING) means that the course 
+  -- heading or track from ?OBJ1 to ?OBJ2 is ?HEADING, in AngularDegrees, 
+  -- with the reference point of 000 degrees being true North.
+  fun courseWRTTrueNorth : El Physical -> El Physical -> El PlaneAngleMeasure -> Formula ;
+
+  -- (dateOpenedForSignature ?PROP ?DATE) means that as of a date 
+  -- indicated by ?DATE, document(s) may officially be signed (by the 
+  -- appropriate agents) to effect commitments to the Agreement ?PROP.
+  fun dateOpenedForSignature: El Proposition -> Desc TimePosition -> Formula ;
+
+  -- (daylightHoursInterval ?PLACE ?DAY ?INTERVAL) means that in the 
+  -- Region ?PLACE, on the Day indicated by ?DAY, there is daylight 
+  -- during the TimeInterval ?INTERVAL.
+  fun daylightHoursInterval: El Region -> Desc Day -> El TimeInterval -> Formula ;
+
+  -- (daylightHoursTotal ?PLACE ?DAY ?TIME) means that in the Region 
+  -- ?PLACE, on the Day indicated by ?DAY, there is daylight for a 
+  -- total TimeDuration ?LENGTH.
+  fun daylightHoursTotal: El Region -> Desc Day -> El TimeDuration -> Formula ;
+
+  -- (dependentGeopoliticalArea 
+  -- ?AREA1 ?AREA2) means that ?AREA1 is a geopolitical possession of the 
+  -- GeopoliticalArea ?AREA2 and is not a geopoliticalSubdivision of 
+  -- ?AREA2. For example, (dependentGeopoliticalArea Guam UnitedStates), 
+  -- because Guam is a territory of the UnitedStates, not one of the fifty 
+  -- U.S. states. Contrast primaryGeopoliticalSubdivision.
+  fun dependentGeopoliticalArea : El GeographicArea -> El Agent -> Formula ;
+
+  -- (drySeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the dry season occurs 
+  -- during the TimeInterval ?INTERVAL. For example, (drySeasonInArea 
+  -- Angola (RecurringTimeIntervalFn May October)).
+  fun drySeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- The altitude of an object
+  -- above the sea level of PlanetEarth
+  fun earthAltitude : El Physical -> El Physical -> El LengthMeasure -> Formula ;
+
+  -- (elevation ?OBJECT ?HEIGHT) means that the 
+  -- physical Object ?OBJECT is located on the surface of PlanetEarth 
+  -- at the vertical distance ?HEIGHT above (or below, for a negative 
+  -- quantity) SeaLevel. ?OBJECT may be a superficialPart of Earth's 
+  -- surface, such as a GeographicArea. Elevation is measured from 
+  -- SeaLevel to the vertical top of the object.
+  fun elevation : El Object -> El LengthMeasure -> Formula ;
+
+  -- (environmentalProblemTypeInArea ?AREA ?PROBLEM) means that 
+  -- objects or processes of type ?PROBLEM is an environmental 
+  -- problem in the GeographicArea ?AREA.
+  fun environmentalProblemTypeInArea: El GeographicArea -> Desc Physical -> Formula ;
+
+  -- The relation between WaterMotion Processes
+  -- and the region in which they occur continuously over at least hours, but
+  -- typically months or years. A water balloon bursting and flowing downhill
+  -- would not use this relation, because there would be no StreamWaterArea
+  -- to relate to.
+  fun flowCurrent : El WaterMotion -> El WaterArea -> Formula ;
+
+  -- (groundSubsurfaceType ?area ?subsoil) 
+  -- means that the predominant Substance in the subsoil or subsurface layer of 
+  -- the LandArea ?area is of type ?subsoil.
+  fun groundSubsurfaceType: El LandArea -> Desc Substance -> Formula ;
+
+  -- (%&groundSurfaceType ?area ?substance) means 
+  -- that the predominant Substance at the ground surface of the LandArea ?area is ?substance.
+  fun groundSurfaceType: El LandArea -> Desc Substance -> Formula ;
+
+  -- (headingWRTCompassNorth ?OBJ ?DEGREE) 
+  -- means that the front_to_back axis of the Object ?OBJ points in 
+  -- the direction ?DEGREE, according to the compass carried by ?OBJ.
+  fun headingWRTCompassNorth : El Object -> El PlaneAngleMeasure -> Formula ;
+
+  -- (headingWRTMagneticNorth ?OBJ ?DEGREE) 
+  -- means that the front_to_back axis of the Object ?OBJ points in 
+  -- the direction ?DEGREE, with respect to magnetic North.
+  fun headingWRTMagneticNorth : El Object -> El PlaneAngleMeasure -> Formula ;
+
+  -- (headingWRTTrueNorth ?OBJ ?DEGREE) 
+  -- means that the front_to_back axis of the Object ?OBJ points in 
+  -- the direction ?DEGREE, with respect to true North.
+  fun headingWRTTrueNorth : El Object -> El PlaneAngleMeasure -> Formula ;
+
+  -- (highAltitudeWindSpeed ?PLACE ?RATE) means that the Wind 
+  -- blowing above 25,000 feet at ?PLACE has a speed of ?RATE.
+  fun highAltitudeWindSpeed : El Object -> El ConstantQuantity -> Formula ;
+
+  -- (highAltitudeWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
+  -- Wind blowing above 25,000 feet at ?PLACE has a speed of ?SPEED 
+  -- and is moving toward the DirectionalAttribute ?TOWARD.
+  fun highAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
+
+  -- (highTide ?PLACE ?TIME ?AMOUNT) means that 
+  -- there is a HighTide at the Region ?PLACE at the TimeInterval ?TIME 
+  -- with the relative height ?AMOUNT. The height is given in relation to 
+  -- the datum on a standard chart.
+  fun highTide : El Region -> El TimeInterval -> El LengthMeasure -> Formula ;
+
+  -- (highestTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
+  -- at the GeographicArea ?PLACE, during the TimeDuration ?PERIOD, 
+  -- the highest temperature was ?AMOUNT. Temperature may be expressed 
+  -- in some UnitOfTemperature, including CelsiusDegree and 
+  -- FahrenheitDegree, among others.
+  fun highestTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
+
+  -- (hotSeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the hot season occurs 
+  -- during the TimeInterval ?INTERVAL. For example, (hotSeasonInArea 
+  -- Angola (RecurringTimeIntervalFn November April)).
+  fun hotSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- (irrigatedLandArea ?REGION ?AMOUNT) 
+  -- means that the GeographicArea ?REGION has the ?AMOUNT of irrigated land. 
+  -- ?AMOUNT may be expressed in physical units or with a percent or fraction.
+  fun irrigatedLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
+
+  -- (landAreaOnly ?REGION ?MEASURE) means 
+  -- that the total area(s) of solid ground within the GeographicArea 
+  -- ?REGION has the AreaMeasure ?AMOUNT. The pieces of solid ground need 
+  -- not be continuous within the region.
+  fun landAreaOnly : El GeographicArea -> El AreaMeasure -> Formula ;
+
+  -- (lowAltitudeWindSpeed ?PLACE ?RATE) means that the Wind blowing 
+  -- between 500_10,000 feet at ?PLACE has a speed of ?RATE. Wind speed 
+  -- may be expressed in knots (KnotUnitOfSpeed) or as any distance per 
+  -- time unit (using (SpeedFn ?DISTANCE ?TIME)).
+  fun lowAltitudeWindSpeed : El Object -> El PhysicalQuantity -> Formula ;
+
+  -- (lowAltitudeWindVelocity ?PLACE ?SPEED ?DIRECTION) means that the 
+  -- low_altitude Wind blowing at ?PLACE has a speed of ?SPEED and comes 
+  -- from the compass point ?DIRECTION. Low_altitude wind is wind blowing 
+  -- between 500_10,000 feet.
+  fun lowAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
+
+  -- (lowTide ?PLACE ?TIME ?AMOUNT) means that 
+  -- there is a LowTide at the Region ?PLACE at the TimeInterval ?TIME 
+  -- with the relative height ?AMOUNT. The height is given in relation to 
+  -- the datum on a standard chart.
+  fun lowTide : El Region -> El TimeInterval -> El LengthMeasure -> Formula ;
+
+  -- (lowestTemperatureForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
+  -- at the GeographicArea ?PLACE, during the TimeDuration ?PERIOD, 
+  -- the highest temperature was ?AMOUNT. Temperature may be expressed 
+  -- in some UnitOfTemperature, including CelsiusDegree and 
+  -- FahrenheitDegree, among others.
+  fun lowestTemperatureForPeriod : El GeographicArea -> El TimeDuration -> El TemperatureMeasure -> Formula ;
+
+  -- (magneticVariation ?AREA ?DEGREE ?DIRECTION) means that in the 
+  -- GeographicArea ?AREA, the magnetic variation of a compass from 
+  -- 000 degrees true is ?DEGREE AngularDegrees in ?DIRECTION (East 
+  -- or West).
+  fun magneticVariation : El GeographicArea -> El PlaneAngleMeasure -> El DirectionalAttribute -> Formula ;
+
+  -- (mapOfArea ?AREA ?POINTER) means that a map 
+  -- of the Region ?AREA can be found at the location ?POINTER.
+  fun mapOfArea : El Region -> El SymbolicString -> Formula ;
+
+  -- (maritimeClaimType ?POLITY ?TYPE)
+  -- means that the GeopoliticalArea ?POLITY claims rights over a 
+  -- MaritimeClaimArea of ?TYPE.
+  fun maritimeClaimType: El GeopoliticalArea -> Desc MaritimeClaimArea -> Formula ;
+
+  -- (meanSeaLevel ?place ?measure) means that the Mean Sea 
+  -- Level (MSL) at ?place is ?measure. ?measure is a distance representing the sea level 
+  -- at ?place measured against a benchmark (and averaged over a long time). MSL is measured 
+  -- by tide gauges for maritime purposes, while geodesists use the difference between the 
+  -- local sea surface and an ideal level ocean surface (the geoid).
+  fun meanSeaLevel : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (mediumAltitudeWindSpeed ?PLACE ?RATE) means that the Wind 
+  -- blowing between 10,000_25,000 feet at ?PLACE has a speed of ?RATE.
+  fun mediumAltitudeWindSpeed : El Object -> El ConstantQuantity -> Formula ;
+
+  -- (mediumAltitudeWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
+  -- Wind blowing between 10,000_25,000 feet at ?PLACE has a speed of 
+  -- ?SPEED and is moving toward the DirectionalAttribute ?TOWARD.
+  fun mediumAltitudeWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
+
+  -- (naturalHazardTypeInArea ?AREA ?TYPE) means that in the 
+  -- GeographicArea ?AREA, Processes of ?TYPE occur with some 
+  -- frequency and may cause damage or danger to human lives and property.
+  fun naturalHazardTypeInArea: El GeographicArea -> Desc Physical -> Formula ;
+
+  -- (naturalResourceTypeInArea ?REGION ?TYPE) means that the 
+  -- GeographicArea ?REGION has resources of the kind ?TYPE.
+  fun naturalResourceTypeInArea: El GeographicArea -> Desc Object -> Formula ;
+
+  -- (objectGeographicCoordinates ?OBJECT ?LAT ?LONG) means that 
+  -- the Object ?OBJECT is found at the geographic coordinates 
+  -- ?LAT and ?LONG.
+  fun objectGeographicCoordinates : El Object -> El Latitude -> El Longitude -> Formula ;
+
+  -- (oppositeDirection ?DIR1 ?DIR2) 
+  -- means that the PositionalAttribute ?DIR1 points in the compass 
+  -- direction opposite to the DirectionalAttribute ?DIR2.
+  fun oppositeDirection : El PositionalAttribute -> El PositionalAttribute -> Formula ;
+
+  -- (orbits ?SATELLITE ?FOCUS) means that the Object 
+  -- ?SATELLITE revolves around the AstronomicalBody ?FOCUS.
+  fun orbits : El Object -> El AstronomicalBody -> Formula ;
+
+  -- This predicate is used to represent information from the CIA 
+  -- World Fact Book. (otherLandUseArea ?REGION ?AMOUNT) means that 
+  -- in the GeographicArea ?REGION, the ?AMOUNT of land has some 
+  -- use other than planting seasonal or permanent crops. ?AMOUNT may be 
+  -- expressed in physical units or with a percent or fraction. See also 
+  -- arableLandArea and permanentLandArea.
+  fun otherLandUseArea : El GeographicArea -> El ConstantQuantity -> Formula ;
+
+  -- (overcastDaysInPeriod ?AREA ?PERIOD ?NUMBER) means that during the 
+  -- time ?PERIOD, the GeographicArea ?AREA experienced ?NUMBER of 
+  -- OvercastWeather days.
+  fun overcastDaysInPeriod : El GeographicArea -> El TimeDuration -> El NonnegativeRealNumber -> Formula ;
+
+  -- (partyToAgreement ?AGENT ?PROP) 
+  -- means that the Agent ?AGENT has committed to the agreement ?PROP.
+  fun partyToAgreement : El Agent -> El Proposition -> Formula ;
+
+  -- (permanentCropLandArea ?REGION ?AMOUNT) means that the GeographicArea 
+  -- ?REGION has ?AMOUNT of land under cultivation with crops that are not 
+  -- replanted after each harvest. This includes orchards, vineyards, coffee 
+  -- and rubber plantations. Timberland is excluded. ?AMOUNT may be expressed 
+  -- in physical units or with a percent or fraction. Cf. permanentCropLandArea.
+  fun permanentCropLandArea : El GeographicArea -> El ConstantQuantity -> Formula ;
+
+  -- (precipitationAmount ?EVENT ?AMOUNT) means that in the 
+  -- Precipitation process ?EVENT, the quantity of precipitation 
+  -- that fell was ?AMOUNT.
+  fun precipitationAmount : El Precipitation -> El ConstantQuantity -> Formula ;
+
+  -- (precipitationRate ?EVENT ?RATE) means that in the 
+  -- Precipitation ?EVENT, the precipitation falls at a rate 
+  -- of ?RATE.
+  fun precipitationRate : El Precipitation -> El FunctionQuantity -> Formula ;
+
+  -- (precipitationState ?EVENT ?STATE) means that in the Precipitation 
+  -- ?EVENT, the stuff falling is in the PhysicalState ?STATE (e.g., 
+  -- Liquid or Solid ice).
+  fun precipitationState : El WeatherProcess -> El PhysicalState -> Formula ;
+
+  -- (rainySeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the rainy or wet season occurs 
+  -- during the TimeInterval ?INTERVAL. For example, (rainySeasonInArea 
+  -- Angola (RecurringTimeIntervalFn November April)).
+  fun rainySeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- (regionalIssue ?AREA ?ISSUE) means 
+  -- that the AreaOfConcern ?ISSUE is relevant to a problem in the 
+  -- GeographicArea ?AREA.
+  fun regionalIssue : El GeographicArea -> El AreaOfConcern -> Formula ;
+
+  -- (relativeBearing ?OBJ1?OBJ2 ?DEGREES) 
+  -- means that ?OBJ1 and ?OBJ2 are separated by the amount ?DEGREES of 
+  -- PlaneAngleMeasure.
+  fun relativeBearing : El Object -> El Object -> El PlaneAngleMeasure -> Formula ;
+
+  -- (relativeHumidity ?AREA ?AMOUNT) 
+  -- means that the amount of moisture in the air at ?AREA is ?AMOUNT. 
+  -- Relative humidity expresses the amount of moisture as a percentage, 
+  -- or ratio, between the actual moisture saturation of the air compared 
+  -- to the potential moisture saturation of the air. At full (potential) 
+  -- saturation, precipitation would occur.
+  fun relativeHumidity : El Object -> El NonnegativeRealNumber -> Formula ;
+
+  -- (seaSurfaceTemperature ?AREA ?TEMP) means that the 
+  -- temperature of the sea surface at ?AREA is ?TEMP. 
+  -- Temperature may be expressed in some UnitOfTemperature, 
+  -- including CelsiusDegree and FahrenheitDegree, among others.
+  fun seaSurfaceTemperature : El WaterArea -> El ConstantQuantity -> Formula ;
+
+  -- The length of the boundary 
+  -- between two GeographicRegions.
+  fun sharedBorderLength : El GeographicRegion -> El GeographicRegion -> El LengthMeasure -> Formula ;
+
+  -- (slopeGradient ?AREA ?SLOPE) means that 
+  -- in the LandArea ?AREA there is an incline of ?slope, where ?SLOPE is 
+  -- the percent of vertical rise over horizontal distance. slopeGradient 
+  -- gives an approximate value for nonzero slope over ?AREA, without regard 
+  -- to orientation. For example, (slopeGradient ?AREA 0.10) means that 
+  -- there is a 10% incline across the area, without specifying the 
+  -- orientation in which the land rises or falls. Also see 
+  -- slopeGradientTowardsOrientation.
+  fun slopeGradient : El LandArea -> El NonnegativeRealNumber -> Formula ;
+
+  -- (slopeGradientTowardsOrientation ?AREA ?DIRECTION ?SLOPE) means that 
+  -- in the LandArea ?AREA, there is an incline of ?SLOPE towards the 
+  -- DirectionalAttribute ?DIRECTION. ?SLOPE is a RationalNumber 
+  -- representing the percent of vertical rise over horizontal distance.
+  fun slopeGradientTowardsOrientation : El LandArea -> El DirectionalAttribute -> El RationalNumber -> Formula ;
+
+  -- (streamOutfall ?WATER ?RIVER) means that 
+  -- the WaterArea ?MOUTH is the outfall of the River ?RIVER.
+  fun streamOutfall : El WaterArea -> El River -> Formula ;
+
+  -- (surfaceWindDirection ?PLACE ?DIRECTION) means that at ?PLACE 
+  -- the wind is coming from the compass point ?DIRECTION. For example, 
+  -- (surfaceWindDirection SanFranciscoBay Northwest) means that the 
+  -- wind in San Francisco Bay is coming from the Northwest. The wind is 
+  -- within 500 feet of Earth's surface.
+  fun surfaceWindDirection : El Object -> El DirectionalAttribute -> Formula ;
+
+  -- (surfaceWindSpeed ?PLACE ?RATE) 
+  -- means that the speed of the surface Wind at the GeographicArea 
+  -- ?PLACE is ?RATE. Wind speed may be expressed in knots (KnotUnitOfSpeed) 
+  -- or as any distance per time unit (using (SpeedFn ?DISTANCE ?TIME)). 
+  -- Surface wind is found at the surface of the planet, everyday wind. 
+  -- Technically, Winds moving through the atmosphere up to an altitude 
+  -- of 500 feet.
+  fun surfaceWindSpeed : El Object -> El PhysicalQuantity -> Formula ;
+
+  -- (surfaceWindVelocity ?PLACE ?SPEED ?TOWARD) means that the 
+  -- surface Wind blowing at ?PLACE has a speed of ?SPEED and is moving 
+  -- toward the DirectionalAttribute ?TOWARD. Surface wind is found at the 
+  -- surface of the planet, everyday wind. Technically, Winds moving 
+  -- through the atmosphere up to an altitude of 500 feet.
+  fun surfaceWindVelocity : El Object -> El PhysicalQuantity -> El DirectionalAttribute -> Formula ;
+
+  -- (terrainInArea ?AREA ?ATTRIBUTE) 
+  -- means that the GeographicArea ?AREA is or includes a region with 
+  -- the features of TerrainArea ?ATTRIBUTE.
+  fun terrainInArea : El GeographicArea -> El TerrainAttribute -> Formula ;
+
+  -- (totalArea ?REGION ?AMOUNT) means that 
+  -- the total area of ?REGION is the AreaMeasure ?AMOUNT.
+  fun totalArea : El Region -> El AreaMeasure -> Formula ;
+
+  -- (totalBiomass ?PLACE ?MASS) means that the 
+  -- total amount (in weight or volume) of living matter in the Region 
+  -- ?PLACE is ?MASS.
+  fun totalBiomass : El GeographicArea -> El PhysicalQuantity -> Formula ;
+
+  -- (totalCoastline ?AREA ?COASTLENGTH) 
+  -- means that the total length of all boundaries between the GeographicArea 
+  -- ?AREA and the ocean is the LengthMeasure ?COASTLENGTH. The coastline 
+  -- counted may be discontinuous and may even be along different oceans (as 
+  -- in Columbia). A totalCoastline of zero indicates a LandlockedArea. 
+  -- Note that only Ocean coastlines are counted, not any shores with inland 
+  -- waters.
+  fun totalCoastline : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (totalLandBoundary ?REGION ?LENGTH) 
+  -- means that the GeographicArea ?REGION has a total LengthMeasure 
+  -- ?LENGTH of land boundaries between it and other countries. Note that 
+  -- the boundaries included in the total length may be discontinuous, as when 
+  -- interrupted by stretches of Seacoast.
+  fun totalLandBoundary : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (totalPrecipitationForPeriod ?PLACE ?PERIOD ?AMOUNT) means that 
+  -- at the GeographicArea ?PLACE, and during the TimeDuration ?PERIOD, 
+  -- the total amount of precipitation was ?AMOUNT.
+  fun totalPrecipitationForPeriod : El GeographicArea -> El TimeDuration -> El ConstantQuantity -> Formula ;
+
+  -- (unratifiedSignatoryToAgreement ?AGENT ?PROP) means that 
+  -- the Agent ?AGENT has signed a document to begin the process of 
+  -- committing to the Agreement ?PROP, but that a ratification 
+  -- process required to complete the commitment has not yet occurred.
+  fun unratifiedSignatoryToAgreement : El Agent -> El Proposition -> Formula ;
+
+  -- (vegetationType ?area ?type) associates 
+  -- a particular GeographicArea with a type of Plant that is found there.
+  fun vegetationType : El GeographicArea -> Desc Plant -> Formula ;
+
+  -- (vegetationTypePattern ?AREA ?TYPE ?DENSITY) means that in the 
+  -- GeographicArea ?AREA the Plant ?TYPE is found with ?DENSITY.
+  fun vegetationTypePattern: El GeographicArea -> Desc Plant -> El Attribute -> Formula ;
+
+  -- (warmSeasonInArea ?AREA ?INTERVAL) 
+  -- means that in the GeographicArea ?AREA, the warm season occurs 
+  -- during the TimeInterval ?INTERVAL.
+  fun warmSeasonInArea: El GeographicArea -> Desc TimeInterval -> Formula ;
+
+  -- (waterAreaOnly ?REGION ?MEASURE) means 
+  -- that the total area(s) of surface water within the GeographicArea 
+  -- ?REGION has the AreaMeasure ?AMOUNT. The pieces of water need not be 
+  -- continuous within the region.
+  fun waterAreaOnly : El GeographicArea -> El AreaMeasure -> Formula ;
+
+  -- (waterDepth ?AREA ?LENGTH) means that the 
+  -- depth of water at the Region ?AREA is ?LENGTH.
+  fun waterDepth : El WaterArea -> El LengthMeasure -> Formula ;
+
+  -- (windRelativePosition ?OBJECT ?POSITION) means that the Wind blows 
+  -- at ?OBJECT from the relative vector ?POSITION. E.g., Crosswind, 
+  -- Headwind, Tailwind.
+  fun windRelativePosition : El Object -> El Attribute -> Formula ;
+
 }
diff --git a/examples/SUMO/GeographyEng.gf b/examples/SUMO/GeographyEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/GeographyEng.gf
@@ -0,0 +1,8 @@
+concrete GeographyEng of Geography = MidLevelOntologyEng ** open DictLangEng, DictEng, ParadigmsEng in {
+
+lin
+  NaturalSatellite = AdjCN (PositA natural_A) (UseN satellite_N) ;
+  Planet = UseN planet_N ;
+  Satellite = UseN satellite_N ;
+
+}
diff --git a/examples/SUMO/Government.gf b/examples/SUMO/Government.gf
--- a/examples/SUMO/Government.gf
+++ b/examples/SUMO/Government.gf
@@ -1,1856 +1,1649 @@
-abstract Government = open Merge, Mid_level_ontology, Geography in {
-
-
-
-
-fun ASEANRegionalForum : Ind OrganizationOfNations ;
-
-fun AbsoluteMonarchy : Ind FormOfGovernment ;
-
--- AcceptsICJJurisdiction is the 
--- Attribute of a legal system that accepts rulings of the 
--- InternationalCourtOfJustice.
-fun AcceptsICJJurisdiction : Ind LegalSystemAttribute ;
-
-
-fun ActingConsulGeneral : Ind ForeignServicePosition ;
-
-fun AdministrationAndManagement : Ind AreaOfConcern ;
-
-fun AdvisoryCommittee : Ind MemberStatus ;
-
-fun AfricanCaribbeanAndPacificGroupOfStates : Ind OrganizationOfNations ;
-
-fun AfricanDevelopmentBank : Ind OrganizationOfNations ;
-
-fun AgencyForTheFrenchSpeakingCommunity : Ind OrganizationOfNations ;
-
-fun AgencyForTheProhibitionOfNuclearWeaponsInLatinAmericaAndTheCaribbean : Ind OrganizationOfNations ;
-
-fun AgriculturalDevelopment : Ind AreaOfConcern ;
-
--- Ambassador is the Attribute of the most 
--- highly_ranked foreign service representatives from the government of one 
--- country to another.
-fun Ambassador : Ind ForeignServicePosition ;
-
-
--- The AmericanInstituteInTaiwan 
--- is a private, nonprofit corporation under United States government 
--- oversight that conducts relations with Taiwan.
-fun AmericanInstituteInTaiwan : Ind Organization ;
-
-
-fun Anarchy : Ind FormOfGovernment ;
-
-fun AndeanCommunityOfNations : Ind OrganizationOfNations ;
-
-fun AntarcticTreatyCouncil : Ind OrganizationOfNations ;
-
--- Antiterrorism and Effective 
---  Death Penalty Act modifies the Immigration and Nationality Act
---  was enacted in 1996 and specifies that: 
---  (1) It is unlawful to provide funds or other material support to a 
---  designated FTO. 
---  (2) Representatives and certain members of a designated FTO can be denied 
---  visas or excluded from the United States. 
---  (3) US financial institutions must block funds of designated FTOs and their 
---  agents and must report the blockage to the US Department of the Treasury.
-fun AntiterrorismAndEffectiveDeathPenaltyAct : Ind Proposition ;
-
-
--- AppealsCourt is the class of 
--- JudicialOrganizations that review cases from lower courts on appeal.
-fun AppealsCourt : Class ;
-fun AppealsCourt_Class : SubClass AppealsCourt JudicialOrganization ;
-
-fun ArabBankForEconomicDevelopmentInAfrica : Ind OrganizationOfNations ;
-
-fun ArabCooperationCouncil : Ind OrganizationOfNations ;
-
-fun ArabFundForEconomicAndSocialDevelopment : Ind OrganizationOfNations ;
-
-fun ArabLeague : Ind OrganizationOfNations ;
-
-fun ArabMaghrebUnion : Ind OrganizationOfNations ;
-
-fun ArabMonetaryFund : Ind OrganizationOfNations ;
-
-fun ArmsControl : Ind TransnationalIssue ;
-
-fun AsiaPacificEconomicCooperation : Ind OrganizationOfNations ;
-
-fun AsianDevelopmentBank : Ind OrganizationOfNations ;
-
-fun AssociateMember : Ind MemberStatus ;
-
-fun AssociatePartner : Ind MemberStatus ;
-
-fun AssociationOfSoutheastAsianNations : Ind OrganizationOfNations ;
-
-fun AustraliaGroup : Ind OrganizationOfNations ;
-
-fun AustraliaNewZealandUnitedStatesSecurityTreaty : Ind OrganizationOfNations ;
-
--- AuthoritarianRegime is the 
--- attribute of a government that rules autocratically, not allowing 
--- opposition.
-fun AuthoritarianRegime : Ind FormOfGovernment ;
-
-
-fun AuthoritarianSocialist : Ind FormOfGovernment ;
-
-fun BankForInternationalSettlements : Ind OrganizationOfNations ;
-
-fun BeneluxEconomicUnion : Ind OrganizationOfNations ;
-
--- BicameralLegislature is the 
--- Attribute of governments whose legislative branches have two
--- legislative chambers. For example, in the UnitedStates the legislative 
--- branch comprises the Senate and the House of Representatives.
-fun BicameralLegislature : Ind FormOfGovernment ;
-
-
-fun BigSeven : Ind OrganizationOfNations ;
-
-fun BigSix : Ind OrganizationOfNations ;
-
-fun BlackSeaEconomicCooperationZone : Ind OrganizationOfNations ;
-
-fun BoardOfTrusteesMember : Ind MemberStatus ;
-
-fun BoundaryDetermination : Ind TransnationalIssue ;
-
-fun BritishCrownColony : Class ;
-fun BritishCrownColony_Class : SubClass BritishCrownColony OverseasArea ;
-fun CBWExportControls : Ind TransnationalIssue ;
-
--- (CabinetFn ?AREA) denotes the 
--- GovernmentCabinet associated with the government of the 
--- GeopoliticalArea ?AREA.
-fun CabinetFn : El GeopoliticalArea -> Ind GovernmentOrganization ;
-
-
-fun CaribbeanCommunityAndCommonMarket : Ind OrganizationOfNations ;
-
-fun CaribbeanDevelopmentBank : Ind OrganizationOfNations ;
-
-fun CategoryIIIMember : Ind MemberStatus ;
-
-fun CategoryIIMember : Ind MemberStatus ;
-
-fun CategoryIMember : Ind MemberStatus ;
-
-fun CentralAfricanStatesDevelopmentBank : Ind OrganizationOfNations ;
-
-fun CentralAmericanBankForEconomicIntegration : Ind OrganizationOfNations ;
-
-fun CentralAmericanCommonMarket : Ind OrganizationOfNations ;
-
-fun CentralEuropeanInitiative : Ind OrganizationOfNations ;
-
-fun Chairman : Ind Position ;
-
--- ChargeDAffaires is the Attribute of 
--- foreign servicer officers representing their governments abroad as 
--- Charges d'Affaires.
-fun ChargeDAffaires : Ind ForeignServicePosition ;
-
-
-fun Chiefdom : Ind FormOfGovernment ;
-
-fun ChildHealthServices : Ind AreaOfConcern ;
-
--- CivilLaw is the attribute of legal systems 
--- based ultimately on the code of civil law developed in Ancient Rome. 
--- Civil law systems are characterized by their expression of laws in written 
--- code and statute and by their effort to use general principles to define 
--- and rationalize the laws.
-fun CivilLaw : Ind LegalSystemAttribute ;
-
-
-fun CivilPoliceTraining : Ind AreaOfConcern ;
-
-fun ColomboPlan : Ind OrganizationOfNations ;
-
-fun CommissionForSocialDevelopment : Ind InternationalOrganization ;
-
-fun CommissionOnCrimePreventionAndCriminalJustice : Ind InternationalOrganization ;
-
-fun CommissionOnHumanRights : Ind InternationalOrganization ;
-
-fun CommissionOnNarcoticsDrugs : Ind InternationalOrganization ;
-
-fun CommissionOnPopulationAndDevelopment : Ind InternationalOrganization ;
-
-fun CommissionOnScienceAndTechnologyForDevelopment : Ind InternationalOrganization ;
-
-fun CommissionOnSustainableDevelopment : Ind InternationalOrganization ;
-
-fun CommissionOnTheStatusOfWomen : Ind InternationalOrganization ;
-
-fun Commissioner : Ind MemberStatus ;
-
-fun Commonwealth : Ind FormOfGovernment ;
-
-fun CommonwealthOfIndependentStates : Ind OrganizationOfNations ;
-
-fun CommonwealthOfNations : Ind OrganizationOfNations ;
-
-fun CommunicationsCoordination : Ind AreaOfConcern ;
-
-fun CommunistState : Ind FormOfGovernment ;
-
-fun CompactOfFreeAssociationWithNewZealand : Ind FormOfGovernment ;
-
-fun CompactOfFreeAssociationWithUnitedStates : Ind FormOfGovernment ;
-
-fun CompensationAndReparation : Ind AreaOfConcern ;
-
--- CompulsorySuffrageLaw is a law that 
--- requires all eligible voters in a country to vote, under threat of some 
--- penalty.
-fun CompulsorySuffrageLaw : Ind SuffrageLaw ;
-
-
--- The class Constitution includes the bodies of
--- abstract principles formulated to guide the laws, institutions and practices 
--- of various Governments. Also see ConstitutionDocument.
-fun Constitution : Class ;
-fun Constitution_Class : SubClass Constitution Proposition ;
-
--- ConstitutionDocument is the class 
--- of information_containing objects in which the Constitution of a 
--- government is encoded.
-fun ConstitutionDocument : Class ;
-fun ConstitutionDocument_Class : SubClass ConstitutionDocument ContentBearingObject ;
-
--- (ConstitutionFn ?AREA) denotes a class 
--- containing all Constitutions adopted by the government of the 
--- GeopoliticalArea ?AREA. For example, (ConstitutionFn UnitedStates) 
--- contains the ConstitutionOfTheUnitedStates.
-fun ConstitutionFn: El GeopoliticalArea -> Desc Constitution ;
-
-
--- ConstitutionalCourt is the class of 
--- JudicialOrganizations that rule on constitutional matters, in countries 
--- that have a Constitution.
-fun ConstitutionalCourt : Class ;
-fun ConstitutionalCourt_Class : SubClass ConstitutionalCourt JudicialOrganization ;
-
-fun ConstitutionalDemocracy : Ind FormOfGovernment ;
-
-fun ConstitutionalDemocraticRepublic : Ind FormOfGovernment ;
-
--- ConstitutionalGovernment is 
--- the attribute of a government whose authority and rule are guided by 
--- principles expressed in a written Constitution.
-fun ConstitutionalGovernment : Ind FormOfGovernment ;
-
-
-fun ConstitutionalMonarchy : Ind FormOfGovernment ;
-
-fun ConstitutionalParliamentaryDemocracy : Ind FormOfGovernment ;
-
-fun ConstitutionalRepublic : Ind FormOfGovernment ;
-
--- Consul is the Attribute of foreign service 
--- officers representing their governments abroad as Consuls.
-fun Consul : Ind ForeignServicePosition ;
-
-
--- ConsulGeneral is the Attribute of 
--- foreign service officers representing their governments abroad as 
--- Consuls General.
-fun ConsulGeneral : Ind ForeignServicePosition ;
-
-
--- Consulate is a class of government 
--- organizations that represent one nation within the territory of a second 
--- nation. Consulates offer services for citizens of their own country 
--- abroad, as well as for citizens of the host country who have dealings 
--- with the country represented by the consulate general. See also 
--- ConsulateGeneral.
-fun Consulate : Class ;
-fun Consulate_Class : SubClass Consulate DiplomaticOrganization ;
-
--- ConsulateGeneral is a class of 
--- government organizations that represent one nation within the territory of 
--- a second nation. Consulates General offer a wider variety of services 
--- than do Consulates.
-fun ConsulateGeneral : Class ;
-fun ConsulateGeneral_Class : SubClass ConsulateGeneral DiplomaticOrganization ;
-
-fun ControlBiologicalAndChemicalWeapons : Ind TransnationalIssue ;
-
-fun ControlNuclearWeapons : Ind TransnationalIssue ;
-
-fun ControlWeaponsOfMassDestruction : Ind TransnationalIssue ;
-
-fun ConventionalArmsControl : Ind TransnationalIssue ;
-
-fun CooperatingState : Ind MemberStatus ;
-
-fun CooperationInCivilAviation : Ind AreaOfConcern ;
-
-fun CoordinateCreditPolicy : Ind TransnationalIssue ;
-
--- The 
--- CoordinatingCommitteeOnExportControls was abolished as of March 31, 
--- 1994, and its members formed the WassenaarArrangement on July 12, 1996, 
--- with expanded membership and a post_Cold War aim of voluntary export 
--- controls on conventional arms and dual_use goods and technologies.
-fun CoordinatingCommitteeOnExportControls : Ind OrganizationOfNations ;
-
-
-fun Coprincipality : Ind FormOfGovernment ;
-
-fun CorrespondentMember : Ind MemberStatus ;
-
-fun CouncilForMutualEconomicAssistance : Ind OrganizationOfNations ;
-
--- The 
--- CouncilOfArabEconomicUnity was established in 1957 but did not become 
--- effective until May 30, 1964.
-fun CouncilOfArabEconomicUnity : Ind OrganizationOfNations ;
-
-
-fun CouncilOfEurope : Ind OrganizationOfNations ;
-
-fun CouncilOfTheBalticSeaStates : Ind OrganizationOfNations ;
-
-fun CouncilOfTheEntente : Ind OrganizationOfNations ;
-
-fun CrimePrevention : Ind AreaOfConcern ;
-
-fun CulturalCooperation : Ind TransnationalIssue ;
-
--- Democracy is the attribute of a government 
--- whose authority and rule are based in the will of the people governed. 
--- The will of the people is usually expressed through Elections, direct or 
--- indirect.
-fun Democracy : Ind FormOfGovernment ;
-
-
--- The US Government
--- organization founded in 2002 to consolidate and organize
--- national_level preparations to thwart security threats, primarily
--- terrorist attacks, against the United States of America.
-fun DepartmentOfHomelandSecurity : Ind GovernmentOrganization ;
-
-
--- DependencyOrSpecialSovereigntyArea is a subclass of 
--- GeopoliticalArea, representing the classification 'Dependency or Special 
--- Sovereignty Area' used by the CIA World Fact Book. Cf. 
--- IndependentState.
-fun DependencyOrSpecialSovereigntyArea : Class ;
-fun DependencyOrSpecialSovereigntyArea_Class : SubClass DependencyOrSpecialSovereigntyArea GeopoliticalArea ;
-
-fun DialoguePartner : Ind MemberStatus ;
-
-fun Dictatorship : Ind FormOfGovernment ;
-
--- DiplomaticAgent is a generic Attribute 
--- of persons charged to represent one national government to another nation 
--- or international organization. This includes any Ambassador or head of 
--- a diplomatic mission. Individuals with this attribute may also hold a 
--- career diplomatic position (see ForeignServicePosition).
-fun DiplomaticAgent : Ind ForeignServicePosition ;
-
-
--- DiplomaticOrganization is the 
--- general class of government organizations that represent one nation in 
--- official government business with other nations.
-fun DiplomaticOrganization : Class ;
-fun DiplomaticOrganization_Class : SubClass DiplomaticOrganization GovernmentOrganization ;
-
-fun EastAfricanDevelopmentBank : Ind OrganizationOfNations ;
-
-fun EcclesiasticalGovernment : Ind FormOfGovernment ;
-
-fun EconomicAndSocialCommissionForAsiaAndThePacific : Ind InternationalOrganization ;
-
-fun EconomicAndSocialCommissionForWesternAsia : Ind InternationalOrganization ;
-
--- The EconomicAndSocialCouncil is 
--- the coordinating organization for the social and economic work of the 
--- UnitedNations. It comprises five regional commissions and nine 
--- functional commissions.
-fun EconomicAndSocialCouncil : Ind OrganizationOfNations ;
-
-
-fun EconomicCommissionForAfrica : Ind InternationalOrganization ;
-
-fun EconomicCommissionForEurope : Ind InternationalOrganization ;
-
-fun EconomicCommissionForLatinAmericaAndTheCaribbean : Ind InternationalOrganization ;
-
-fun EconomicCommunityOfTheGreatLakesCountries : Ind OrganizationOfNations ;
-
-fun EconomicCommunityOfWestAfricanStates : Ind OrganizationOfNations ;
-
-fun EconomicCooperation : Ind TransnationalIssue ;
-
-fun EconomicCooperationOrganization : Ind OrganizationOfNations ;
-
-fun EconomicDevelopment : Ind AreaOfConcern ;
-
-fun EconomicIntegration : Ind TransnationalIssue ;
-
-fun EconomicPolicyCoordination : Ind TransnationalIssue ;
-
-fun EducationalCooperation : Ind (both TransnationalIssue AreaOfConcern) ;
-
-fun EfficientCustomsAdministration : Ind (both TransnationalIssue AreaOfConcern ) ;
-
--- (ElectionFn ?ORG) denotes the class of 
--- Elections conducted by the GeopoliticalArea or Organization ?ORG, 
--- in which offices or issues pertaining to ?ORG are voted upon.
-fun ElectionFn: El Agent -> Desc Election ;
-
-
-fun EliminateChemicalWeapons : Ind TransnationalIssue ;
-
--- Embassy is the class of top_ranked 
--- GovernmentOrganizations that represent one nation within the boundaries 
--- of another. Not all nations have embassy_level representation from other 
--- nations.
-fun Embassy : Class ;
-fun Embassy_Class : SubClass Embassy DiplomaticOrganization ;
-
-fun EmergingDemocracy : Ind FormOfGovernment ;
-
-fun EmigrationAndImmigrationIssues : Ind (both TransnationalIssue AreaOfConcern) ;
-
-fun EnergyAndTheEnvironment : Ind TransnationalIssue ;
-
-fun EnergyCooperation : Ind (both TransnationalIssue AreaOfConcern) ; 
-
--- EnglishCommonLaw is the attribute of 
--- legal systems based on the common law developed in England and influential 
--- in its English_speaking colonies. Common law is characterized by laws and 
--- rulings based on precedent and custom, rather than on written statute.
-fun EnglishCommonLaw : Ind LegalSystemAttribute ;
-
-
-fun EnvironmentalCooperation : Ind TransnationalIssue ;
-
-fun EuroAtlanticPartnershipCouncil : Ind OrganizationOfNations ;
-
-fun EuropeanBankForReconstructionAndDevelopment : Ind OrganizationOfNations ;
-
--- The EuropeanCommunity was merged into 
--- the EuropeanUnion on February 7, 1992.
-fun EuropeanCommunity : Ind OrganizationOfNations ;
-
-
-fun EuropeanFreeTradeAssociation : Ind OrganizationOfNations ;
-
-fun EuropeanInvestmentBank : Ind OrganizationOfNations ;
-
-fun EuropeanMonetaryUnion : Ind OrganizationOfNations ;
-
-fun EuropeanOrganizationForNuclearResearch : Ind OrganizationOfNations ;
-
-fun EuropeanSpaceAgency : Ind OrganizationOfNations ;
-
-fun EuropeanUnion : Ind OrganizationOfNations ;
-
-fun ExclusiveMaleSuffrage : Ind RestrictedSuffrage ;
-
-fun ExecutiveBoardMember : Ind MemberStatus ;
-
--- (ExecutiveBranchFn ?ORG) denotes the 
--- executive branch of ?ORG, with all its officials and agencies, considered 
--- as a whole.
-fun ExecutiveBranchFn : El Agent -> Ind Organization ;
-
-
-fun ExecutiveCommitteeMember : Ind MemberStatus ;
-
-fun Factionalism : Ind FormOfGovernment ;
-
-fun FederalDemocraticRepublic : Ind FormOfGovernment ;
-
--- FederalGovernment is the attribute of 
--- a government that is formed by agreement between a collection of political 
--- units that agree to give up some of their power to the central government, 
--- while reserving some powers to themselves. The government of the 
--- UnitedStates is a federal government, in which power is shared between 
--- the states and the central goverment, as set out in the U.S. 
--- Constitution.
-fun FederalGovernment : Ind FormOfGovernment ;
-
-
-fun FederalParliamentaryDemocracy : Ind FormOfGovernment ;
-
-fun FederalRepublic : Ind FormOfGovernment ;
-
-fun Federation : Ind FormOfGovernment ;
-
-fun FinancialCooperation : Ind TransnationalIssue ;
-
--- FixedHoliday is the class of Holidays 
--- whose observance is fixed to recurrences of the calendar day that the 
--- holiday commemorates. See commemoratesDate.
-fun FixedHoliday : Class ;
-fun FixedHoliday_Class : SubClass FixedHoliday Holiday ;
-
-fun FoodAid : Ind TransnationalIssue ;
-
-fun FoodAndAgricultureOrganization : Ind OrganizationOfNations ;
-
--- ForeignServicePosition is the 
--- subclass of Positions that belong to foreign service personnel working 
--- for a national government or international organization.
-fun ForeignServicePosition : Class ;
-fun ForeignServicePosition_Class : SubClass ForeignServicePosition Position ;
-
--- A Foreign Terrorist Organization
---  is an Organization designated by the USStateDeparment as one which
---  conducts acts of terrorism. This designation makes it subject to the
---  AntiterrorismAndEffectiveDeathPenaltyAct.
-fun ForeignTerroristOrganization : Class ;
-fun ForeignTerroristOrganization_Class : SubClass ForeignTerroristOrganization TerroristOrganization ;
-
-fun FrancZone : Ind OrganizationOfNations ;
-
-fun FullMember : Ind MemberStatus ;
-
-fun GenderEquality : Ind AreaOfConcern ;
-
--- GovernmentCabinet is the class of 
--- GovernmentOrganizations whose purpose is to advise a President, 
--- Governor, or other political leader(s) on policy matters.
-fun GovernmentCabinet : Class ;
-fun GovernmentCabinet_Class : SubClass GovernmentCabinet GovernmentOrganization ;
-
-fun GovernmentDeputy : Ind Position ;
-
--- The GroupOf10 (also known as the Paris Club) 
--- is a group of (now) 11 major creditor nations that manage the repayment of 
--- loans by debtor countries. The Group of 10 works closely with the 
--- InternationalMonetaryFund.
-fun GroupOf10 : Ind OrganizationOfNations ;
-
-
-fun GroupOf11 : Ind OrganizationOfNations ;
-
--- The GroupOf15 was a result of the NonalignedMovement.
-fun GroupOf15 : Ind OrganizationOfNations ;
-
-
--- The GroupOf24 promotes the interests of 
--- developing countries in Africa, Asia, and Latin America within the 
--- InternationalMonetaryFund.
-fun GroupOf24 : Ind OrganizationOfNations ;
-
-
-fun GroupOf3 : Ind OrganizationOfNations ;
-
-fun GroupOf5 : Ind OrganizationOfNations ;
-
-fun GroupOf6 : Ind OrganizationOfNations ;
-
--- The memberships of the BigSeven and the 
--- GroupOf7 include the same Nations.
-fun GroupOf7 : Ind OrganizationOfNations ;
-
-
-fun GroupOf77 : Ind OrganizationOfNations ;
-
--- The GroupOf8 members were participants in the 
--- Conference on International Economic Cooperation (CIEC) between 
--- 1975_1977.
-fun GroupOf8 : Ind OrganizationOfNations ;
-
-
-fun GroupOf9 : Ind OrganizationOfNations ;
-
-fun GuestStatus : Ind MemberStatus ;
-
-fun GulfCooperationCouncil : Ind OrganizationOfNations ;
-
-fun HereditaryMonarchy : Ind FormOfGovernment ;
-
--- Holiday is the class of time periods that are 
--- observed as holidays in a country, culture, or religion. Holidays may 
--- recur annually on the same date, or they may be moveable, for example, 
--- UnitedStatesThanksgivingDay falls on the last Thursday of each 
--- November.
-fun Holiday : Class ;
-fun Holiday_Class : SubClass Holiday TimeInterval ;
-
-fun HumanRightsIssues : Ind TransnationalIssue ;
-
-fun HumanitarianAid : Ind TransnationalIssue ;
-
-fun HumanitarianAssistance : Ind TransnationalIssue ;
-
-fun ImmigrationAndNationalityAct_Section219_US : Ind Proposition ;
-
-fun ImmigrationAndNationalityAct_US : Ind Proposition ;
-
-fun ImproveHumanSettlementConditions : Ind AreaOfConcern ;
-
--- IndependentState is a subclass of 
--- GeopoliticalArea, representing the classification 'Independent State' 
--- used by the CIA World Fact Book. Cf. 
--- DependencyOrSpecialSovereigntyArea.
-fun IndependentState : Class ;
-fun IndependentState_Class : SubClass IndependentState (both GeopoliticalArea Nation) ;
-
-
-fun IndianOceanCommission : Ind OrganizationOfNations ;
-
-fun IndustryStandards : Ind AreaOfConcern ;
-
-fun InformationCooperation : Ind AreaOfConcern ;
-
-fun InformationStandards : Ind AreaOfConcern ;
-
-fun InfrastructureCooperation : Ind AreaOfConcern ;
-
-fun IntellectualPropertyProtection : Ind AreaOfConcern ;
-
-fun InterAmericanDevelopmentBank : Ind OrganizationOfNations ;
-
--- The 
--- InterGovernmentalAuthorityOnDevelopment is the revitalized successor 
--- organization of the Inter_Governmental Authority on Development, which had 
--- been established 15_16 January 1986.
-fun InterGovernmentalAuthorityOnDevelopment : Ind OrganizationOfNations ;
-
-
-fun InternationalAtomicEnergyAgency : Ind OrganizationOfNations ;
-
-fun InternationalBankForReconstructionAndDevelopment : Ind OrganizationOfNations ;
-
-fun InternationalCenterForSecretariatOfInvestmentDisputes : Ind InternationalOrganization ;
-
-fun InternationalChamberOfCommerce : Ind OrganizationOfNations ;
-
-fun InternationalCivilAviationOrganization : Ind OrganizationOfNations ;
-
-fun InternationalCommitteeOfTheRedCross : Ind InternationalOrganization ;
-
-fun InternationalConfederationOfFreeTradeUnions : Ind OrganizationOfNations ;
-
--- The 
--- InternationalCourtOfJustice superseded the Permanent Court of 
--- International Justice.
-fun InternationalCourtOfJustice : Ind (both InternationalOrganization JudicialOrganization) ;
-
-
--- Interpol is the 
--- successor organization to the International Criminal Police Organization, 
--- which had been established in 1923.
-fun InternationalCriminalPoliceOrganization : Ind OrganizationOfNations ;
-
-
-fun InternationalCriminalTribunalForRwanda : Ind InternationalOrganization ;
-
-fun InternationalCriminalTribunalForTheFormerYugoslavia : Ind InternationalOrganization ;
-
-fun InternationalDevelopmentAssociation : Ind OrganizationOfNations ;
-
--- The InternationalEnergyAgency 
--- was established by the OrganizationForEconomicAndCulturalDevelopment.
-fun InternationalEnergyAgency : Ind OrganizationOfNations ;
-
-
-fun InternationalFederationOfRedCrossAndRedCrescentSocieties : Ind OrganizationOfNations ;
-
--- The 
--- InternationalFinanceCorporation is affiliated with the 
--- InternationalBankForReconstructionAndDevelopment.
-fun InternationalFinanceCorporation : Ind OrganizationOfNations ;
-
-
-fun InternationalFundForAgriculturalDevelopment : Ind OrganizationOfNations ;
-
-fun InternationalHydrographicOrganization : Ind OrganizationOfNations ;
-
-fun InternationalJustice : Ind (both AreaOfConcern TransnationalIssue) ;
-
--- The 
--- InternationalLaborOrganization became affiliated with the 
--- UnitedNations in 1946.
-fun InternationalLaborOrganization : Ind OrganizationOfNations ;
-
-
-fun InternationalMaritimeAffairs : Ind AreaOfConcern ;
-
--- The 
--- InternationalMaritimeOrganization was established in 1948 but became 
--- effective ten years later.
-fun InternationalMaritimeOrganization : Ind OrganizationOfNations ;
-
-
-fun InternationalMonetaryFund : Ind OrganizationOfNations ;
-
-fun InternationalOlympicCommittee : Ind OrganizationOfNations ;
-
-fun InternationalOrNonregionalMember : Ind MemberStatus ;
-
--- InternationalOrganization is 
--- the class of Organizations whose activities have international scope and 
--- which typically have members who are, or are from, different Nations.
-fun InternationalOrganization : Class ;
-fun InternationalOrganization_Class : SubClass InternationalOrganization Organization ;
-
-fun InternationalOrganizationForMigration : Ind OrganizationOfNations ;
-
-fun InternationalOrganizationForStandardization : Ind OrganizationOfNations ;
-
-fun InternationalPeaceAndSecurity : Ind TransnationalIssue ;
-
-fun InternationalRedCrossAndRedCrescentMovement : Ind InternationalOrganization ;
-
-fun InternationalResearchAndTrainingInstituteForTheAdvancementOfWomen : Ind OrganizationOfNations ;
-
--- The 
--- InternationalTelecommunicationUnion became affiliated with the 
--- UnitedNations on November 15, 1947.
-fun InternationalTelecommunicationUnion : Ind OrganizationOfNations ;
-
-
-fun InternationalTradeSupport : Ind TransnationalIssue ;
-
-fun IslamicDevelopmentBank : Ind OrganizationOfNations ;
-
-fun IslamicGovernment : Ind FormOfGovernment ;
-
--- IslamicLaw is the Attribute of 
--- legal systems that are based on religious principles of Islam.
-fun IslamicLaw : Ind LegalSystemAttribute ;
-
-
--- IslamicLawCourt is the subclass of 
--- JudicialOrganizations that are conducted according to principles of 
--- Islamic Law.
-fun IslamicLawCourt : Class ;
-fun IslamicLawCourt_Class : SubClass IslamicLawCourt JudicialOrganization ;
-
--- JudgeAtLaw is the Position of a person who 
--- is a public official with the authority to decide legal matters in a 
--- governmental JudicialOrganization.
-fun JudgeAtLaw : Ind Position ;
-
-
--- JudicialReviewOfExecutiveActs is an attribute of legal systems 
--- in which the judiciary has authority to review acts of the executive 
--- branch.
-fun JudicialReviewOfExecutiveActs : Ind LegalSystemAttribute ;
-
-
--- JudicialReviewOfLegislativeActs is an attribute of legal systems 
--- in which the judiciary has authority to review acts of the legislature.
-fun JudicialReviewOfLegislativeActs : Ind LegalSystemAttribute ;
-
-
--- (JudiciaryFn ?AREA) denotes the judicial 
--- branch of the GeopoliticalArea ?AREA, that is, the 
--- JudicialOrganization(s) associated with the government of ?AREA, 
--- considered as a whole.
-fun JudiciaryFn : El GeopoliticalArea -> Ind GovernmentOrganization ;
-
-
-fun JusticeIssues : Ind AreaOfConcern ;
-
-fun King : Ind Position ;
-
-fun LaborIssues : Ind AreaOfConcern ;
-
-fun LatinAmericanEconomicSystem : Ind OrganizationOfNations ;
-
-fun LatinAmericanIntegrationAssociation : Ind OrganizationOfNations ;
-
-fun Leader : Ind Position ;
-
--- LegalSystemAttribute is the class 
--- of Attributes that are used to characterize legal systems, as, e.g., 
--- according to their sources, areas of concern, or principles of 
--- organization.
-fun LegalSystemAttribute : Class ;
-fun LegalSystemAttribute_Class : SubClass LegalSystemAttribute RelationalAttribute ;
-
--- LegislativeChamber is the class of 
--- LegislativeOrganizations which are a coherent body that considers and 
--- votes upon legislation in common session. For example, the United States 
--- Senate.
-fun LegislativeChamber : Class ;
-fun LegislativeChamber_Class : SubClass LegislativeChamber LegislativeOrganization ;
-
--- (LegislatureFn ?AREA) denotes the 
--- legislative branch of the GeopoliticalArea ?AREA.
-fun LegislatureFn : El GeopoliticalArea -> Ind LegislativeOrganization ;
-
-
--- (MemberFn ?ORG) denotes the Position of 
--- a member in the Organization ?ORG.
-fun MemberFn : El Organization -> Ind Position ;
-
-
--- (MemberRoleFn ?ORG ?POSITION) denotes the 
--- role of having the Position ?POSITION the Organization ?ORG.
-fun MemberRoleFn : El Organization -> El Position -> Ind Position ;
-
-
--- MemberStatus is the class of 
--- RelationalAttributes that represent the different kinds of status 
--- that may be held in various organizations. Included in this class are 
--- membership types for InternationalOrganizations covered by the CIA World 
--- Fact Book.
-fun MemberStatus : Class ;
-fun MemberStatus_Class : SubClass MemberStatus RelationalAttribute ;
-
-fun MembershipApplicant : Ind MemberStatus ;
-
-fun MembershipPending : Ind MemberStatus ;
-
-fun MilitaryCommander : Ind Position ;
-
-fun MilitaryCooperation : Ind TransnationalIssue ;
-
-fun MilitaryDictatorship : Ind FormOfGovernment ;
-
-fun Monarch : Ind Position ;
-
--- Monarchy is the attribute of a government 
--- that is ruled by a monarch, which is usually a hereditary role.
-fun Monarchy : Ind FormOfGovernment ;
-
-
-fun MonetaryAndEconomicCommunityOfCentralAfrica : Ind OrganizationOfNations ;
-
-fun MonetaryStability : Ind AreaOfConcern ;
-
-fun MonetaryUnion : Ind TransnationalIssue ;
-
--- MoveableHoliday is the class of 
--- Holidays whose observance is not fixed to recurrences of any particular 
--- calendar day. For example, UnitedStatesMemorialDay is observed on the 
--- last Monday of May.
-fun MoveableHoliday : Class ;
-fun MoveableHoliday_Class : SubClass MoveableHoliday Holiday ;
-
-fun MulitlateralInvestmentGeographicAgency : Ind InternationalOrganization ;
-
-fun MultipartyDemocracy : Ind FormOfGovernment ;
-
-fun MutualDefensePact : Ind TransnationalIssue ;
-
--- NapoleonicCode is the specialization of 
--- CivilLaw developed in France under Napoleon Bonaparte. It is still the 
--- basis of French law as well as of legal systems developed under French 
--- influence.
-fun NapoleonicCode : Ind LegalSystemAttribute ;
-
-
-fun NationalCommitteeChairman : Ind Position ;
-
--- NationalGovernment is the class of 
--- national_level governments of Nations.
-fun NationalGovernment : Class ;
-fun NationalGovernment_Class : SubClass NationalGovernment Government ;
-
--- The NonalignedMovement was 
--- established to promote political and military cooperation outside of the 
--- traditional East and West power groups.
-fun NonalignedMovement : Ind OrganizationOfNations ;
-
-
-fun NonpermanentStatus : Ind MemberStatus ;
-
-fun NonregionalMember : Ind MemberStatus ;
-
-fun NonstateParticipant : Ind MemberStatus ;
-
-fun NordicCouncil : Ind OrganizationOfNations ;
-
-fun NordicInvestmentBank : Ind OrganizationOfNations ;
-
-fun NorthAtlanticTreatyOrganization : Ind OrganizationOfNations ;
-
-fun NuclearDisarmament : Ind TransnationalIssue ;
-
-fun NuclearEnergyAgency : Ind OrganizationOfNations ;
-
-fun NuclearExportControls : Ind TransnationalIssue ;
-
-fun NuclearNonproliferation : Ind TransnationalIssue ;
-
-fun NuclearSuppliersGroup : Ind OrganizationOfNations ;
-
-fun ObservationAndMonitoring : Ind AreaOfConcern ;
-
-fun ObserverStatus : Ind MemberStatus ;
-
-fun OrganizationForEconomicCooperationAndDevelopment : Ind OrganizationOfNations ;
-
--- The 
--- OrganizationForSecurityAndCooperationInEurope, established January 1, 
--- 1995, grew out of the Conference on Security and Cooperation in Europe, 
--- which began meeting in 1975.
-fun OrganizationForSecurityAndCooperationInEurope : Ind OrganizationOfNations ;
-
-
-fun OrganizationForTheProhibitionOfChemicalWeapons : Ind OrganizationOfNations ;
-
--- The 
--- OrganizationOfAfricanUnity was renamed to African Union 
--- (Union_Africaine) in July, 2002.
-fun OrganizationOfAfricanUnity : Ind OrganizationOfNations ;
-
-
--- The 
--- OrganizationOfAmericanStates adopted its present charter on April 30, 
--- 1948.
-fun OrganizationOfAmericanStates : Ind OrganizationOfNations ;
-
-
-fun OrganizationOfArabPetroleumExportingCountries : Ind OrganizationOfNations ;
-
-fun OrganizationOfEasternCaribbeanStates : Ind OrganizationOfNations ;
-
--- This is the 
--- class of Organizations whose members are Nations.
-fun OrganizationOfNations : Class ;
-fun OrganizationOfNations_Class : SubClass OrganizationOfNations InternationalOrganization ;
-
-fun OrganizationOfPetroleumExportingCountries : Ind OrganizationOfNations ;
-
-fun OrganizationOfTheIslamicConference : Ind OrganizationOfNations ;
-
-fun OrganizeOlympicGames : Ind TransnationalIssue ;
-
--- OverseasArea is the class of 
--- GeopoliticalAreas that are related to a Nation as overseas 
--- territories, possessions, protectorates, or departments.
-fun OverseasArea : Class ;
-fun OverseasArea_Class : SubClass OverseasArea (both DependencyOrSpecialSovereigntyArea GeopoliticalArea) ;
-
-
--- (OverseasAreaFn ?AREA) denotes the class 
--- of OverseasAreas that belong to the GeopoliticalArea ?AREA.
-fun OverseasAreaFn: El GeopoliticalArea -> Desc OverseasArea ;
-
-
-fun PacificCommunity : Ind OrganizationOfNations ;
-
-fun PacificIslandForum : Ind OrganizationOfNations ;
-
--- Parliament is the subclass of 
--- LegislativeOrganizations similar to that of the United Kingdom.
-fun Parliament : Class ;
-fun Parliament_Class : SubClass Parliament LegislativeOrganization ;
-
-fun ParliamentaryDemocracy : Ind FormOfGovernment ;
-
-fun ParliamentaryDemocraticRepublic : Ind FormOfGovernment ;
-
--- ParliamentaryGovernment is the 
--- attribute of a government whose chief LegislativeOrganization is a 
--- Parliament. A parliamentary government is compatible with various 
--- other government types, including Monarchy.
-fun ParliamentaryGovernment : Ind FormOfGovernment ;
-
-
-fun ParliamentaryRepublic : Ind FormOfGovernment ;
-
-fun ParliamentaryTerritory : Class ;
-fun ParliamentaryTerritory_Class : SubClass ParliamentaryTerritory GeopoliticalArea ;
-fun PartIIMember : Ind MemberStatus ;
-
-fun PartIMember : Ind MemberStatus ;
-
-fun PartnersForCooperation : Ind MemberStatus ;
-
-fun PartnershipForPeace : Ind OrganizationOfNations ;
-
-fun PeacefulUseOfAtomicPower : Ind TransnationalIssue ;
-
-fun PeacekeepingOperation : Ind (both TransnationalIssue AreaOfConcern) ;
-
-fun PermanentChargeDAffaires : Ind ForeignServicePosition ;
-
-fun PermanentCourtOfArbitration : Ind OrganizationOfNations ;
-
-fun PermanentRepresentative : Ind Position ;
-
-fun PermanentStatus : Ind MemberStatus ;
-
--- PoliticalCoalition is the class of 
--- political organizations that are constituted by political parties joined 
--- together for some common interest(s).
-fun PoliticalCoalition : Class ;
-fun PoliticalCoalition_Class : SubClass PoliticalCoalition (both PoliticalOrganization PoliticalParty) ;
-
-
-fun PoliticalCooperation : Ind AreaOfConcern ;
-
-fun PoliticalDevelopment : Ind AreaOfConcern ;
-
-fun PoliticalIntegration : Ind AreaOfConcern ;
-
--- PoliticalPressureGroup is the 
--- class of Organizations that exert political pressure and have leaders 
--- who are involved in politics but not standing for election. For example, 
--- corporate lobbying groups, Mothers Against Drunk Driving (MADD), or the 
--- American Civil Liberties Union (ACLU).
-fun PoliticalPressureGroup : Class ;
-fun PoliticalPressureGroup_Class : SubClass PoliticalPressureGroup PoliticalOrganization ;
-
-fun PopulationPolicySupport : Ind AreaOfConcern ;
-
-fun President : Ind Position ;
-
-fun PresidentialGovernment : Ind FormOfGovernment ;
-
-fun PrimeMinister : Ind Position ;
-
-fun PrincipalOfficer : Ind ForeignServicePosition ;
-
-fun PromotePrivateEnterprise : Ind AreaOfConcern ;
-
-fun PromoteRegionalStability : Ind TransnationalIssue ;
-
-fun PromoteSustainableDevelopment : Ind AreaOfConcern ;
-
-fun PromoteTradeUnionism : Ind AreaOfConcern ;
-
-fun PromotionOfFreeTrade : Ind TransnationalIssue ;
-
-fun PromotionOfPrivateEnterprise : Ind AreaOfConcern ;
-
-fun PromotionOfTourism : Ind AreaOfConcern ;
-
-fun PromotionOfTradeAndInvestment : Ind TransnationalIssue ;
-
-fun PublicHealthConcern : Ind AreaOfConcern ;
-
-fun Queen : Ind Position ;
-
-fun ReducePoverty : Ind AreaOfConcern ;
-
-fun ReducingCrime : Ind AreaOfConcern ;
-
-fun RefugeeAssistance : Ind (both TransnationalIssue AreaOfConcern) ;
-
--- RegionalLaw is the class of regional 
--- laws, considered as a body, established by particular Governments 
--- to regulate activities under their jurisdictions. For example, 
--- (RegionalLawFn UnitedStates) represents the content of the laws, 
--- statutes, and rulings of the United States.
-fun RegionalLaw : Class ;
-fun RegionalLaw_Class : SubClass RegionalLaw Proposition ;
-
--- (RegionalLawFn ?AREA) denotes the laws 
--- pertaining in the GeopoliticalArea ?AREA that are established and 
--- enforced by the Government of ?AREA. For example, (RegionalLawFn 
--- UnitedStates) denotes the laws of the government of the UnitedStates 
--- and its constituent units.
-fun RegionalLawFn : El GeopoliticalArea -> Ind RegionalLaw ;
-
-
-fun RegionalMember : Ind MemberStatus ;
-
-fun RegionalSecurity : Ind AreaOfConcern ;
-
-fun ReproductiveHealthAndFamilyPlannning : Ind AreaOfConcern ;
-
--- Republic is the attribute of a government 
--- whose power and authority are vested in its members, who elect 
--- representatives to exercise that power.
-fun Republic : Ind FormOfGovernment ;
-
-
--- RestrictedSuffrage is a subclass of 
--- SuffrageLaw covering laws that restrict suffrage by further 
--- conditions beyond the basics of citizenship and age.
-fun RestrictedSuffrage : Class ;
-fun RestrictedSuffrage_Class : SubClass RestrictedSuffrage SuffrageLaw ;
-
--- The RioGroup was the result of fusing the 
--- Contadora Group and the Lima (or Support) Group.
-fun RioGroup : Ind OrganizationOfNations ;
-
-
--- RomanCanonLaw is the attribute of legal 
--- systems based on the Ecclesiastical law developed by the Roman Catholic 
--- Church.
-fun RomanCanonLaw : Ind LegalSystemAttribute ;
-
-
-fun ScientificCooperation : Ind AreaOfConcern ;
-
-fun SelfGoverningTerritory : Class ;
-fun SelfGoverningTerritory_Class : SubClass SelfGoverningTerritory GeopoliticalArea ;
-fun SignatoryMember : Ind MemberStatus ;
-
-fun SocialCooperation : Ind TransnationalIssue ;
-
-fun SocialDevelopment : Ind AreaOfConcern ;
-
-fun SocioeconomicResearch : Ind AreaOfConcern ;
-
-fun SouthAsianAssociationForRegionalCooperation : Ind OrganizationOfNations ;
-
-fun SouthPacificRegionalTradeAndEconomicCooperationAgreement : Ind OrganizationOfNations ;
-
-fun SouthernAfricanCustomsUnion : Ind OrganizationOfNations ;
-
-fun SouthernAfricanDevelopmentCommunity : Ind OrganizationOfNations ;
-
-fun SouthernConeCommonMarket : Ind OrganizationOfNations ;
-
-fun SpaceResearchAndTechnology : Ind AreaOfConcern ;
-
-fun Spokesperson : Ind Position ;
-
-fun StatisticalCommission : Ind InternationalOrganization ;
-
-fun SubbureauMember : Ind MemberStatus ;
-
-fun SubscriberMember : Ind MemberStatus ;
-
--- SuffrageLaw is a class that includes the 
--- various types of suffrage rules of different Nations. Instances of 
--- SuffrageLaw represent the propositional content of various suffrage 
--- laws.
-fun SuffrageLaw : Class ;
-fun SuffrageLaw_Class : SubClass SuffrageLaw Proposition ;
-
-fun SupportLawEnforcement : Ind AreaOfConcern ;
-
--- SupremeCourt is the subclass of 
--- JudicialOrganizations that are the ultimate judicial authority for the 
--- matters on which they rule. For example, the UnitedStatesSupremeCourt, 
--- or the InternationalCourtOfJustice (World Court).
-fun SupremeCourt : Class ;
-fun SupremeCourt_Class : SubClass SupremeCourt JudicialOrganization ;
-
--- (SupremeCourtFn ?AREA) denotes the class 
--- of the highest court(s) in the judicial system of GeopoliticalArea 
--- ?AREA. For example, the UnitedStatesSupremeCourt belongs to the class
--- (SupremeCourtFn UnitedStates).
-fun SupremeCourtFn: El GeopoliticalArea -> Desc SupremeCourt ;
-
-
--- SupremeCourtJudge is the Position 
--- of a person who is a JudgeAtLaw on some SupremeCourt.
-fun SupremeCourtJudge : Ind Position ;
-
-
-fun SuspendedMember : Ind MemberStatus ;
-
-fun TechnologyCooperation : Ind AreaOfConcern ;
-
--- TheocraticGovernment is the 
--- attribute of a government that bases its authority on Religion.
-fun TheocraticGovernment : Ind FormOfGovernment ;
-
-
-fun TheocraticRepublic : Ind FormOfGovernment ;
-
-fun TransitionalAdministration : Ind (both AreaOfConcern TransnationalIssue) ;
-
--- TransitionalGovernment is the 
--- attribute of a government that is changing from one form of government 
--- to another. This may be accompanied by social unrest or instability.
-fun TransitionalGovernment : Ind FormOfGovernment ;
-
-
--- TransnationalIssue is a class of 
--- Attributes that characterize the concerns of Nations, international 
--- Non_Governmental Institutions (NGOs), and other transnational agents.
-fun TransnationalIssue : Class ;
-fun TransnationalIssue_Class : SubClass TransnationalIssue AreaOfConcern ;
-
-fun TransportationCoordination : Ind AreaOfConcern ;
-
--- The US government organization charged with protecting the
--- integrity of US national borders, primarily by detecting and
--- preventing attempts at illegal immigration.
-fun USCustomsAndBorderProtection : Ind (both GovernmentOrganization PoliceOrganization) ;
-
-
--- The branch of the US Government that
---  handles relations with foreign governments and entities. It is the chief
---  diplomatic instrument of US foreign policy. It controls US embassies and 
---  consuls.
-fun USStateDepartment : Ind Government ;
-
-
-fun UnicameralLegislature : Ind FormOfGovernment ;
-
-fun UnincorporatedUnitedStatesTerritory : Class ;
-fun UnincorporatedUnitedStatesTerritory_Class : SubClass UnincorporatedUnitedStatesTerritory OverseasArea ;
--- UnitaryRule is a FormOfGovernment in which 
--- the central government controls affairs at all levels, including the local 
--- level.
-fun UnitaryRule : Ind FormOfGovernment ;
-
-
--- The UnitedNations has six principal 
--- subOrganizations: the Secretariat, the General Assembly, the Security 
--- Council, the Economic and Social Council, the Trusteeship Council 
--- (currently inactive), and the International Court of Justice. The United 
--- Nations has numerous subordinate agencies and bodies within those six 
--- major subdivisions.
-fun UnitedNations : Ind OrganizationOfNations ;
-
-
-fun UnitedNationsCenterForHumanSettlements : Ind OrganizationOfNations ;
-
-fun UnitedNationsChildrensFund : Ind OrganizationOfNations ;
-
-fun UnitedNationsCivilianPoliceMissionInHaiti : Ind OrganizationOfNations ;
-
--- The 
--- UnitedNationsCompensationCommission was created to process claims and 
--- pay compensation for losses and damage suffered as a direct result of 
--- the unlawful invasion and occupation of Kuwait by Iraq.
-fun UnitedNationsCompensationCommission : Ind InternationalOrganization ;
-
-
-fun UnitedNationsConferenceOnTradeAndDevelopment : Ind OrganizationOfNations ;
-
-fun UnitedNationsDevelopmentProgram : Ind OrganizationOfNations ;
-
--- The 
--- UnitedNationsDisengagementObserverForce was formed by the UN Security 
--- Council in order to observe the 1973 Arab_Israeli cease_fire.
-fun UnitedNationsDisengagementObserverForce : Ind OrganizationOfNations ;
-
-
-fun UnitedNationsEducationalScientificAndCulturalOrganization : Ind OrganizationOfNations ;
-
-fun UnitedNationsEnvironmentProgram : Ind OrganizationOfNations ;
-
--- The 
--- UnitedNationsGeneralAssembly is the primary deliberative body of the 
--- UnitedNations.
-fun UnitedNationsGeneralAssembly : Ind OrganizationOfNations ;
-
-
-fun UnitedNationsHighCommissionerForHumanRights : Ind InternationalOrganization ;
-
-fun UnitedNationsHighCommissionerForRefugees : Ind OrganizationOfNations ;
-
-fun UnitedNationsIndustrialDevelopmentOrganization : Ind OrganizationOfNations ;
-
-fun UnitedNationsInstituteForDisarmamentResearch : Ind InternationalOrganization ;
-
-fun UnitedNationsInstituteForTrainingAndResearch : Ind OrganizationOfNations ;
-
-fun UnitedNationsInterimAdministrationMissionInKosovo : Ind InternationalOrganization ;
-
-fun UnitedNationsInterimAdminstrationMissionInKosovo : Ind OrganizationOfNations ;
-
-fun UnitedNationsInterimForceInLebanon : Ind OrganizationOfNations ;
-
--- The UnitedNationsInterregionalCrimeAndJusticeResearchInstitute was 
--- reconstituted (from UNSDRI) into its present form in 1989 to address 
--- broader demands introduced by the participation of more developing 
--- countries in the UnitedNations.
-fun UnitedNationsInterregionalCrimeAndJusticeResearchInstitute : Ind InternationalOrganization ;
-
-
-fun UnitedNationsIraqKuwaitBoundaryDemarcationCommission : Ind InternationalOrganization ;
-
-fun UnitedNationsIraqKuwaitObservationMission : Ind OrganizationOfNations ;
-
-fun UnitedNationsMilitaryObserverGroupInIndiaAndPakistan : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionForTheReferendumInWesternSahara : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionInBosniaAndHerzegovina : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionInEthiopiaAndEritrea : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionInSierraLeone : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionOfObserversInPrevlaka : Ind OrganizationOfNations ;
-
-fun UnitedNationsMissionOfObserversInTajikistan : Ind OrganizationOfNations ;
-
-fun UnitedNationsMonitoringAndVerificationCommission : Ind OrganizationOfNations ;
-
-fun UnitedNationsObserverMissionInGeorgia : Ind OrganizationOfNations ;
-
-fun UnitedNationsOfficeOfProjectServices : Ind InternationalOrganization ;
-
-fun UnitedNationsOrganizationMissionInTheDemocraticRepublicOfTheCongo : Ind OrganizationOfNations ;
-
-fun UnitedNationsPeaceKeepingForceInCyprus : Ind OrganizationOfNations ;
-
-fun UnitedNationsPopulationFund : Ind OrganizationOfNations ;
-
-fun UnitedNationsPreventiveDeploymentForce : Ind OrganizationOfNations ;
-
-fun UnitedNationsReliefAndWorksAgencyForPalestineRefugeesInTheNearEast : Ind OrganizationOfNations ;
-
--- The 
--- UnitedNationsResearchInstituteForSocialDevelopment conducts research 
--- into problems of social and economic development. The Chair of its Board 
--- of Directors is appointed by the UN Secretary General. (No country 
--- members.)
-fun UnitedNationsResearchInstituteForSocialDevelopment : Ind InternationalOrganization ;
-
-
--- The UnitedNationsSecretariat is 
--- the primary administrative body of the UnitedNations. It is headed by 
--- the United Nations' Secretary General, and constituted by him and his 
--- staff. The UN General Assembly appoints the Secretary General for a 
--- five_year term.
-fun UnitedNationsSecretariat : Ind InternationalOrganization ;
-
-
-fun UnitedNationsSecurityCouncil : Ind OrganizationOfNations ;
-
-fun UnitedNationsSystemStaffCollege : Ind OrganizationOfNations ;
-
-fun UnitedNationsTransitionalAdministrationInEastTimor : Ind OrganizationOfNations ;
-
-fun UnitedNationsTruceSupervisionOrganization : Ind OrganizationOfNations ;
-
--- The 
--- UnitedNationsTrusteeshipCouncil is one of the six major organs of the 
--- UnitedNations, but it is currently inactive (though not dissolved) 
--- following the transition of the last UN trust territory to an independent 
--- government.
-fun UnitedNationsTrusteeshipCouncil : Ind OrganizationOfNations ;
-
-
--- The Rector and 24 members of the 
--- UnitedNationsUniversity Council are appointed by the UN Secretary 
--- General and the Director General of UNESCO.
-fun UnitedNationsUniversity : Ind InternationalOrganization ;
-
-
--- Provides services to farmers in 
--- the UnitedStates.
-fun UnitedStatesDepartmentOfAgriculture : Ind GovernmentOrganization ;
-
-
--- Entrusted with the national 
--- security of the UnitedStates.
-fun UnitedStatesDepartmentOfDefense : Ind GovernmentOrganization ;
-
-
--- One of the two legislatures 
--- that make up the UnitedStatesCongress.
-fun UnitedStatesHouseOfRepresentatives : Ind LegislativeOrganization ;
-
-
--- The GovernmentOrganization of the 
--- UnitedStates that is entrusted with delivering the mail.
-fun UnitedStatesPostalService : Ind GovernmentOrganization ;
-
-
--- One of the two legislatures that make 
--- up the UnitedStatesCongress.
-fun UnitedStatesSenate : Ind LegislativeOrganization ;
-
-
--- The UniversalPostalUnion became 
--- affiliated with the UnitedNations on November 15, 1947.
-fun UniversalPostalUnion : Ind OrganizationOfNations ;
-
-
--- UniversalSuffrageLaw is a law that 
--- enfranchises all citizens of a country who have achieved the applicable 
--- age of maturity (suffrageAgeMinumum).
-fun UniversalSuffrageLaw : Ind SuffrageLaw ;
-
-
-fun ViceChairman : Ind Position ;
-
-fun VicePresident : Ind Position ;
-
-fun VoterAgeRequirement : Class ;
-fun VoterAgeRequirement_Class : SubClass VoterAgeRequirement SuffrageLaw ;
-fun VoterCitizenshipRequirement : Ind SuffrageLaw ;
-
--- (VotingFn ?ELECTION) denotes the class of 
--- voting events that occur as part of the Election ?ELECTION.
-fun VotingFn: El Election -> Desc Voting ;
-
-
-fun WarCrimesProsecution : Ind (both AreaOfConcern TransnationalIssue) ;
-
-fun WarsawPact : Ind OrganizationOfNations ;
-
-fun WassenaarArrangement : Ind OrganizationOfNations ;
-
-fun WeaponsInspection : Ind (both AreaOfConcern TransnationalIssue) ;
-
-fun WestAfricanDevelopmentBank : Ind OrganizationOfNations ;
-
-fun WestAfricanEconomicAndMonetaryUnion : Ind OrganizationOfNations ;
-
-fun WesternEuropeanUnion : Ind OrganizationOfNations ;
-
-fun WorldBankGroup : Ind OrganizationOfNations ;
-
--- The WorldConfederationOfLabor 
--- was previously named the International Federation of Christian Trade 
--- Unions. It was renamed on October 4, 1968.
-fun WorldConfederationOfLabor : Ind OrganizationOfNations ;
-
-
-fun WorldCustomsOrganization : Ind OrganizationOfNations ;
-
-fun WorldFederationOfTradeUnions : Ind OrganizationOfNations ;
-
-fun WorldFoodProgram : Ind OrganizationOfNations ;
-
-fun WorldHealthOrganization : Ind OrganizationOfNations ;
-
-fun WorldIntellectualPropertyOrganization : Ind OrganizationOfNations ;
-
-fun WorldLaborIssues : Ind (both AreaOfConcern TransnationalIssue) ;
-
-fun WorldMeteorologicalOrganization : Ind OrganizationOfNations ;
-
-fun WorldTourismOrganization : Ind OrganizationOfNations ;
-
--- The WorldTradeOrganization 
--- succeeded the General Agreement on Tariff and Trade (GATT).
-fun WorldTradeOrganization : Ind OrganizationOfNations ;
-
-
--- The ZanggerCommittee was established 
--- during the 1970s.
-fun ZanggerCommittee : Ind OrganizationOfNations ;
-
-
--- (abbreviation ?STRING ?THING) means that 
--- ?STRING is an abbreviation used to refer to ?THING. Abbreviations include 
--- acronyms and other abbreviated forms.
-fun abbreviation : El SymbolicString -> El Entity -> Formula ;
-
-
--- (administrativeCenter ?CENTER 
--- ?REGION) means that ?CENTER is the City (or other area) from which 
--- the larger GeopoliticalArea ?REGION is administered.
-fun administrativeCenter : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
-
-
--- (agentOperatesInArea ?AGENT ?AREA) 
--- means that the individual or Organization ?AGENT operates in the 
--- GeographicArea ?AREA.
-fun agentOperatesInArea : El Agent -> El GeographicArea -> Formula ;
-
-
--- (agreementAdoptionDate ?AGR ?TIME) 
--- means that the agreement ?AGR was adopted on the date indicated by ?TIME. 
--- For example, (agreementAdoptionDate ConstitutionOfTheUnitedStates 
--- (DayFn 17 (MonthFn September (YearFn 1787)))).
-fun agreementAdoptionDate: El Proposition -> Desc TimePosition -> Formula ;
-
-
--- (agreementEffectiveDate ?AGR 
--- ?TIME) means that the agreement ?AGR becomes effective on the date 
--- indicated by ?TIME. For example, (agreementEffectiveDate 
--- ConstitutionOfTheUnitedStates (DayFn 4 (MonthFn March (YearFn 
--- 1789)))).
-fun agreementEffectiveDate: El Proposition -> Desc TimePosition -> Formula ;
-
-
--- (agreementEffectiveDuring ?AGR 
--- ?DATE) means that the agreement ?AGR is effective during the time 
--- indicated by ?DATE. The agreement may be effective for longer than ?DATE, 
--- but it is in effect at least throughout the time indicated by ?DATE.
-fun agreementEffectiveDuring: El Proposition -> Desc TimePosition -> Formula ;
-
-
--- (agreementRevisionDate ?AGR ?DATE ?CHANGE) means that the agreement 
--- ?AGR was revised at the time indicated by ?DATE, with respect to the 
--- part ?CHANGE. Revisions cover additions and removals.
-fun agreementRevisionDate: El Proposition -> Desc TimePosition -> El Proposition -> Formula ;
-
-
--- (aimOfOrganization ?GROUP ?DESCRIPTION) means that the Organization 
--- ?GROUP has the purpose ?DESCRIPTION, formulated as a quoted text.
-fun aimOfOrganization : El Organization -> El SymbolicString -> Formula ;
-
-
--- (associateInOrganization 
--- ?AGENT ?GROUP) means that ?AGENT is associated in some way with the 
--- Group ?GROUP. This includes participation as a guest or observer,
--- as well as being a full member. See member for a more specific 
--- relation.
-fun associateInOrganization : El Agent -> El Group -> Formula ;
-
-
--- (associateWithStatus ?AGT ?STATUS ?GROUP) means that the Agent 
--- ?AGT has the RelationalAttribute ?STATUS in the Group ?GROUP. 
--- For example, (associateWithStatus UnitedStates PermanentMember 
--- UnitedNationsSecurityCouncil) means that the &UnitedStates has the status 
--- of a permanent member in the U.N. Security Council.
-fun associateWithStatus : El Agent -> El RelationalAttribute -> El Group -> Formula ;
-
-
--- (candidateForPosition ?ELECTION 
--- ?POSITION ?CONTENDER) means that in the Election ?ELECTION for 
--- ?POSITION, the Agent ?CONTENDER was one of the candidates.
-fun candidateForPosition : El Election -> El SocialRole -> El Agent -> Formula ;
-
-
--- (capitalCity ?CITY ?REGION) means that the 
--- City ?CITY is the capital of the GeopoliticalArea ?REGION.
-fun capitalCity : El City -> El GeopoliticalArea -> Formula ;
-
-
--- (cardinality ?SET ?NUMBER) means that there 
--- are ?NUMBER of elements in the SetOrClass ?SET.
-fun cardinality : El SetOrClass -> El NonnegativeInteger -> Formula ;
-
-
--- (chamberOfLegislature ?CHAMBER 
--- ?LEGISLATURE) means that ?CHAMBER is a legislative body within the 
--- ?LEGISLATURE.
-fun chamberOfLegislature : El Organization -> El Organization -> Formula ;
-
-
--- (chanceryAddressInArea ?AREA1 
--- ?ADDRESS ?AREA2) means that the address of the main foreign service 
--- organization of the GeopoliticalArea ?AREA1 for ?AREA2 is the 
--- SymbolicString ?ADDRESS.
-fun chanceryAddressInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
-
-
--- (chanceryFAXNumberInArea ?AREA1 
--- ?FAX ?AREA2) means that the FAX number of the main diplomatic office of 
--- the GeopoliticalArea ?AREA1 located in ?AREA2 is ?FAX.
-fun chanceryFAXNumberInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
-
-
--- (chanceryMailingAddressInArea ?AREA1 ?ADDRESS ?AREA2) means that the 
--- mailing address of the main foreign service organization of the 
--- GeopoliticalArea ?AREA1 located in ?AREA2 is the SymbolicString 
--- ?ADDRESS.
-fun chanceryMailingAddressInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
-
-
--- (chanceryTelephoneNumberInArea ?AREA1 ?TELEPHONE ?AREA2) means that the 
--- telephone number of the main diplomatic office of the GeopoliticalArea 
--- ?AREA1 located in ?AREA2 is ?TELEPHONE.
-fun chanceryTelephoneNumberInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
-
-
--- (chiefOfDiplomaticMission ?AGENT1 ?PERSON ?RANK ?AGENT2) means that 
--- the chief diplomatic representative sent by the Agent ?AGENT1 to the 
--- Agent ?AGENT2 is ?PERSON, whose official position is ?RANK.
-fun chiefOfDiplomaticMission : El Agent -> El Human -> El Position -> El Agent -> Formula ;
-
-
--- (chiefOfState ?POLITY ?ROLE ?PERSON) means 
--- that ?PERSON is the titular leader of the government of the 
--- GeopoliticalArea ?POLITY and represents it at official functions. The 
--- office held by this chief of state is ?ROLE (e.g., President, Queen, 
--- Chairman). Note: this term is defined as in the CIA World Fact Book.
-fun chiefOfState : El GeopoliticalArea -> El Position -> El Human -> Formula ;
-
-
--- (chiefOfStateType ?NATION ?ROLE) means 
--- that the chiefOfState of the GeopoliticalArea ?NATION holds the 
--- Position ?ROLE in its government.
-fun chiefOfStateType : El GeopoliticalArea -> El Position -> Formula ;
-
-
--- (commemoratesDate ?HOLIDAY ?DATE) means 
--- that instances of the Holiday ?HOLIDAY are observed to commemorate 
--- something that happened during the TimeInterval specified by ?DATE. For 
--- example, (commemoratesDate BastilleDay (DayFn 14 (MonthFn July 
--- (YearFn 1789)))).
-fun commemoratesDate: El Holiday -> Desc TimeInterval -> Formula ;
-
-
--- (conventionalLongName ?NAME ?THING) 
--- means that the string ?NAME is the long form of the name conventionally 
--- used for ?THING.
-fun conventionalLongName : El SymbolicString -> El Entity -> Formula ;
-
-
--- (conventionalShortName ?NAME 
--- ?THING) means that the string ?NAME is the short form of the name 
--- conventionally used for ?THING. For a more specialized subset of short 
--- names, see abbreviation.
-fun conventionalShortName : El SymbolicString -> El Entity -> Formula ;
-
-
--- (dateDissolved ?THING ?TIME) means that 
--- the Physical ?THING was dissolved, disbanded, or superseded on the date 
--- indicated by ?TIME. For example, (dateDissolved 
--- UnitedNationsPreventiveDeploymentForce (DayFn 25 (MonthFn March 
--- (YearFn 1999)))).
-fun dateDissolved: El Physical -> Desc TimePosition -> Formula ;
-
-
--- (dateEstablished ?THING ?TIME) means 
--- that the Physical ?THING was founded on the date indicated by ?TIME. 
--- For example, (dateEstablished UnitedNations 
--- (DayFn 26 (MonthFn June (YearFn 1945)))).
-fun dateEstablished: El Physical -> Desc TimePosition -> Formula ;
-
-
--- (dependentAreaOfType ?AREA ?COUNTRY 
--- ?TYPE) means that the GeopoliticalArea ?AREA is a dependency of the 
--- independent Nation ?COUNTRY, administered as a unit of ?TYPE. For 
--- example, (dependentAreaOfType SaintHelena 
--- UnitedKingdom OverseasArea).
-fun dependentAreaOfType: El GeopoliticalArea -> El GeopoliticalArea -> Desc GeopoliticalArea -> Formula ;
-
-
--- (diplomaticOrganizationType ?AGENT1 ?ORG ?AGENT2) means that the 
--- Agent ?AGENT1 has a diplomatic organization of the type ?ORG 
--- in Agent ?AGENT2. For example, 
--- (diplomaticOrganizationType UnitedStates Embassy France), or 
--- (diplomaticOrganizationType UnitedStates ConsulateGeneral 
--- ShanghaiChina).
-fun diplomaticOrganizationType: El Agent -> Desc Organization -> El Agent -> Formula ;
-
-
--- (diplomaticRelations ?COUNTRY1 ?COUNTRY2) means that there are official 
--- diplomatic relations between the two Nations ?COUNTRY1 and ?COUNTRY2.
-fun diplomaticRelations : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
-
-
--- (diplomaticRepresentationType ?AGENT1 ?RANK ?AGENT2) means that the 
--- Agent ?AGENT1 sends a representative with the Position ?RANK 
--- to the Agent ?AGENT2.
-fun diplomaticRepresentationType : El Agent -> El Position -> El Agent -> Formula ;
-
-
--- (diplomaticRepresentativeInRole ?AGENT1 ?PERSON ?RANK ?AGENT2) means 
--- that the Agent ?AGENT1 sends the individual ?PERSON with the 
--- Position ?RANK as its representative to the Agent ?AGENT2. 
--- Note: it is possible for ?PERSON to be diplomatically accredited to more 
--- than one area. For example, currently the United States Ambassador to 
--- Papua New Guinea is also accredited to Vanuatu, and there is no embassy 
--- in Vanuatu.
-fun diplomaticRepresentativeInRole : El Agent -> El Human -> El Position -> El Agent -> Formula ;
-
-
--- (electionDatePlannedForPosition ?AGENT ?TIME ?POSITION) means that the 
--- Agent ?AGENT (a Nation, Government, or Organization) plans to hold 
--- an Election on the date indicated by ?TIME for position(s) ?POSITION.
-fun electionDatePlannedForPosition: El Agent -> Desc TimePosition -> El SocialRole -> Formula ;
-
-
--- (electionForOrganization ?ELECTION ?GROUP) means that in the 
--- Election ?ELECTION, candidates run for election to the organization 
--- ?GROUP.
-fun electionForOrganization : El Election -> El Organization -> Formula ;
-
-
--- (electionForPosition ?ELECTION 
--- ?POSITION) means that in the Election ?ELECTION, candidates run for 
--- election to the role(s) ?POSITION.
-fun electionForPosition : El Election -> El SocialRole -> Formula ;
-
-
--- (electionWinner ?ELECTION ?POSITION 
--- ?CONTENDER) means that in the Election ?ELECTION, ?POSITION was won by 
--- the Agent ?CONTENDER. Contenders may be either persons or political 
--- parties.
-fun electionWinner : El Election -> El SocialRole -> El Agent -> Formula ;
-
-
--- (executiveBranch ?BRANCH ?ORG) means 
--- that the Organization ?BRANCH is the executive branch of the 
--- GeopoliticalArea or Organization ?ORG, that is, its executive offices 
--- and bodies, considered as a whole.
-fun executiveBranch : El Organization -> El Agent -> Formula ;
-
-
--- (flagDescription ?AREA ?DESCRIPTION) 
--- means that the SymbolicString ?DESCRIPTION is a verbal description of 
--- the flag of the GeopoliticalArea ?AREA.
-fun flagDescription : El GeopoliticalArea -> El SymbolicString -> Formula ;
-
-
--- (flagImage ?AREA ?POINTER) means that an image 
--- of the flag of the GeopoliticalArea ?AREA is found at the location given 
--- in the SymbolicString ?POINTER.
-fun flagImage : El GeopoliticalArea -> El SymbolicString -> Formula ;
-
-
--- (governmentType ?BODY ?FORM) means that 
--- the GeopoliticalArea or Organization ?BODY has a government with 
--- characteristic(s) of the type ?FORM.
-fun governmentType : El Agent -> El FormOfGovernment -> Formula ;
-
-
--- (headOfGovernment ?POLITY ?ROLE 
--- ?PERSON) means that ?PERSON is the top administrative leader of the 
--- Government of the GeopoliticalArea ?POLITY, with authority for 
--- managing its day_to_day functions. The office held by this person 
--- is the Position ?ROLE (e.g., President, Prime Minister, Governor). 
--- Note: this term is defined as in the CIA World Fact Book.
-fun headOfGovernment : El GeopoliticalArea -> El Position -> El Human -> Formula ;
-
-
--- (holidayTimeInArea ?AREA 
--- ?TIME) means that ?TIME is a particular time period during which Holiday 
--- is observed, thus during which normal government, business, and other 
--- services may not operate.
-fun holidayTimeInArea : El GeopoliticalArea -> El TimePosition -> Formula ;
-
-
--- (independenceDate ?AREA ?DATE) means 
--- that the GeopoliticalArea ?AREA achieved its sovereignty on the date 
--- ?DATE. For example, (independenceDate Afghanistan (DayFn 19 
--- (MonthFn August (YearFn 1919)))).
-fun independenceDate: El GeopoliticalArea -> Desc TimeInterval -> Formula ;
-
-
--- (judicialBranch ?BRANCH ?ORG) means that 
--- the Organization ?BRANCH is the judicial branch of the 
--- GeopoliticalArea or Organization ?ORG, that is, all of its courts and 
--- judicial offices, considered as a whole.
-fun judicialBranch : El Organization -> El Agent -> Formula ;
-
-
--- (leaderPosition ?ORG ?ROLE)
--- means that in the organization ?ORG, the leader is the person 
--- who holds the Position ?ROLE in the organization.
-fun leaderPosition : El Agent -> El Position -> Formula ;
-
-
--- (legalSystemType ?AREA ?TYPE) means 
--- that the GeopoliticalArea ?AREA has a legal system characterized by 
--- the LegalSystemAttribute ?TYPE. For example, (legalSystemType 
--- UnitedStates EnglishCommonLaw). A legal system may have multiple 
--- characteristics.
-fun legalSystemType : El GeopoliticalArea -> El LegalSystemAttribute -> Formula ;
-
-
--- (legislativeBranch ?BRANCH ?ORG) means 
--- that the Organization ?BRANCH is the legislative branch of the 
--- GeopoliticalArea or Organization ?ORG.
-fun legislativeBranch : El Organization -> El Agent -> Formula ;
-
-
--- (nationalCelebration ?AREA ?HOLIDAY) 
--- means that the primary day of national celebration in the 
--- GeopoliticalArea ?AREA is ?HOLIDAY. For example, (nationalCelebration 
--- Afghanistan AfghanIndependenceDay).
-fun nationalCelebration: El GeopoliticalArea -> Desc Holiday -> Formula ;
-
-
--- (nationalHoliday ?AREA ?HOLIDAY) means 
--- that ?HOLIDAY is a national holiday observed in ?AREA. The 
--- GeopoliticalArea ?AREA observes a holiday on days specified as a 
--- ?HOLIDAY, during which national government offices and other facilities 
--- typically are closed. There may be multiple nationalHolidays. For 
--- example, (nationalHoliday UnitedStates UnitedStatesMemorialDay).
-fun nationalHoliday: El GeopoliticalArea -> Desc Holiday -> Formula ;
-
-
--- (organizationalObjective ?AGENT 
--- ?FOCUS) means that the Agent ?AGENT has significant aims and 
--- concerns characterized by the AreaOfConcern ?FOCUS.
-fun organizationalObjective : El Agent -> El AreaOfConcern -> Formula ;
-
-
--- (politicalPartyOfCountry ?PARTY 
--- ?AREA) means that the PoliticalParty ?PARTY participates in politics in 
--- the GeopoliticalArea ?AREA.
-fun politicalPartyOfCountry : El PoliticalParty -> El GeopoliticalArea -> Formula ;
-
-
--- (primaryGeopoliticalSubdivision ?AREA ?COUNTRY) means that the 
--- GeopoliticalArea ?AREA is one of the first_order administrative 
--- divisions of the Nation ?COUNTRY. For example, in the United States, 
--- any of the fifty states. This does not include subordinate regions that 
--- have a lesser status, such as British Crown colonies, U.S. territories, 
--- or protectorates. See geopoliticalSubdivision.
-fun primaryGeopoliticalSubdivision : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
-
-
--- (primaryGeopoliticalSubdivisionType ?COUNTRY ?TYPE) means that the 
--- first_order administrative divisons of ?COUNTRY are of the type ?TYPE.
-fun primaryGeopoliticalSubdivisionType: El GeopoliticalArea -> Desc GeopoliticalArea -> Formula ;
-
-
--- representativeAgentToAgent ?SENDER ?REP ?RECEIVER) means that 
--- the Agent ?SENDER has the Agent ?REP as its representative 
--- to the Agent ?RECEIVER. ?REP works for ?SENDER and is not assumed 
--- to be an impartial mediator.
-fun representativeAgentToAgent : El Agent -> El Agent -> El Agent -> Formula ;
-
-
--- (roleAppointsRole ?ORG ?APPOINTER 
--- ?APPOINTED) means that in the Organization or GeopoliticalArea ?ORG, 
--- the agent holding the SocialRole ?APPOINTER has the authority to 
--- appoint a person to fill the role ?APPOINTED.
-fun roleAppointsRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
-
-
--- (roleApprovesRole ?ORG ?APPROVER 
--- ?APPOINTED) means that in the Organization or GeopoliticalArea ?ORG, 
--- the agent holding the SocialRole ?APPROVER has the authority to 
--- approve (or disapprove) of an appointee for the role ?APPOINTED.
-fun roleApprovesRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
-
-
--- (roleNominatesRole ?ORG ?NOMINATOR 
--- ?NOMINATED) means that in the Organization or GeopoliticalArea ?ORG, 
--- the agent holding the SocialRole ?NOMINATOR has the authority to 
--- nominate one or more persons to fill the role ?NOMINATED.
-fun roleNominatesRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
-
-
--- (seatsHeldInOrganization ?GROUP ?PARTY 
--- ?NUMBER) means that in the Organization ?GROUP, the PoliticalParty or other
--- Agent ?AGENT, holds or controls this ?NUMBER of seats.
-fun seatsHeldInOrganization : El Organization -> El Agent -> El NonnegativeInteger -> Formula ;
-
-
--- (seatsInOrganizationCount ?ORG 
--- ?NUMBER) means that there is a total ?NUMBER of seats in the 
--- Organization ?ORG.
-fun seatsInOrganizationCount : El Organization -> El Integer -> Formula ;
-
-
--- (seatsWonInElection ?ELECTION ?AGENT 
--- ?NUMBER) means that in the Election ?ELECTION, the PoliticalParty 
--- ?AGENT won this ?NUMBER of seats.
-fun seatsWonInElection : El Election -> El Agent -> El Integer -> Formula ;
-
-
--- (successorOrganization ?OLD ?NEW) 
--- means that the Organization ?OLD was transformed or merged into, or 
--- otherwise succeeded by, the Organization ?NEW.
-fun successorOrganization : El Organization -> El Organization -> Formula ;
-
-
--- (suffrageAgeMaximum ?POLITY ?AGE) 
--- means that in the Organization or GeopoliticalArea ?POLITY, a person 
--- must be ?AGE or younger in order to vote in the elections of ?POLITY.
-fun suffrageAgeMaximum : El Agent -> El TimeDuration -> Formula ;
-
-
--- (suffrageAgeMinimum ?POLITY ?AGE) 
--- means that in the Organization or GeopoliticalArea ?POLITY, a person 
--- must be ?AGE or older in order to vote in the elections of ?POLITY.
-fun suffrageAgeMinimum : El Agent -> El TimeDuration -> Formula ;
-
-
--- (termLength ?ORG ?ROLE ?LENGTH) means 
--- that in the Organization or GeopoliticalArea ?ORG, the term of office 
--- for the position ?ROLE is the TimeDuration ?LENGTH.
-fun termLength : El Agent -> El SocialRole -> El TimeDuration -> Formula ;
-
-
--- (voteFractionReceived ?ELECTION 
--- ?POSITION ?CONTENDER ?FRACTION) means that in the Election ?ELECTION for 
--- ?POSITION, the Agent ?CONTENDER received ?FRACTION of the votes cast. 
--- Contenders may be either persons or political parties.
-fun voteFractionReceived : El Election -> El SocialRole -> El Agent -> El RealNumber -> Formula ;
+abstract Government = MidLevelOntology, Geography ** {
+
+  fun ASEANRegionalForum : Ind OrganizationOfNations ;
+
+  fun AbsoluteMonarchy : Ind FormOfGovernment ;
+
+  -- AcceptsICJJurisdiction is the 
+  -- Attribute of a legal system that accepts rulings of the 
+  -- InternationalCourtOfJustice.
+  fun AcceptsICJJurisdiction : Ind LegalSystemAttribute ;
+
+  fun ActingConsulGeneral : Ind ForeignServicePosition ;
+
+  fun AdministrationAndManagement : Ind AreaOfConcern ;
+
+  fun AdvisoryCommittee : Ind MemberStatus ;
+
+  fun AfricanCaribbeanAndPacificGroupOfStates : Ind OrganizationOfNations ;
+
+  fun AfricanDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun AgencyForTheFrenchSpeakingCommunity : Ind OrganizationOfNations ;
+
+  fun AgencyForTheProhibitionOfNuclearWeaponsInLatinAmericaAndTheCaribbean : Ind OrganizationOfNations ;
+
+  fun AgriculturalDevelopment : Ind AreaOfConcern ;
+
+  -- Ambassador is the Attribute of the most 
+  -- highly_ranked foreign service representatives from the government of one 
+  -- country to another.
+  fun Ambassador : Ind ForeignServicePosition ;
+
+  -- The AmericanInstituteInTaiwan 
+  -- is a private, nonprofit corporation under United States government 
+  -- oversight that conducts relations with Taiwan.
+  fun AmericanInstituteInTaiwan : Ind Organization ;
+
+  fun Anarchy : Ind FormOfGovernment ;
+
+  fun AndeanCommunityOfNations : Ind OrganizationOfNations ;
+
+  fun AntarcticTreatyCouncil : Ind OrganizationOfNations ;
+
+  -- Antiterrorism and Effective 
+  --  Death Penalty Act modifies the Immigration and Nationality Act
+  --  was enacted in 1996 and specifies that: 
+  --  (1) It is unlawful to provide funds or other material support to a 
+  --  designated FTO. 
+  --  (2) Representatives and certain members of a designated FTO can be denied 
+  --  visas or excluded from the United States. 
+  --  (3) US financial institutions must block funds of designated FTOs and their 
+  --  agents and must report the blockage to the US Department of the Treasury.
+  fun AntiterrorismAndEffectiveDeathPenaltyAct : Ind Proposition ;
+
+  -- AppealsCourt is the class of 
+  -- JudicialOrganizations that review cases from lower courts on appeal.
+  fun AppealsCourt : Class ;
+  fun AppealsCourt_Class : SubClass AppealsCourt JudicialOrganization ;
+
+  fun ArabBankForEconomicDevelopmentInAfrica : Ind OrganizationOfNations ;
+
+  fun ArabCooperationCouncil : Ind OrganizationOfNations ;
+
+  fun ArabFundForEconomicAndSocialDevelopment : Ind OrganizationOfNations ;
+
+  fun ArabLeague : Ind OrganizationOfNations ;
+
+  fun ArabMaghrebUnion : Ind OrganizationOfNations ;
+
+  fun ArabMonetaryFund : Ind OrganizationOfNations ;
+
+  fun ArmsControl : Ind TransnationalIssue ;
+
+  fun AsiaPacificEconomicCooperation : Ind OrganizationOfNations ;
+
+  fun AsianDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun AssociateMember : Ind MemberStatus ;
+
+  fun AssociatePartner : Ind MemberStatus ;
+
+  fun AssociationOfSoutheastAsianNations : Ind OrganizationOfNations ;
+
+  fun AustraliaGroup : Ind OrganizationOfNations ;
+
+  fun AustraliaNewZealandUnitedStatesSecurityTreaty : Ind OrganizationOfNations ;
+
+  -- AuthoritarianRegime is the 
+  -- attribute of a government that rules autocratically, not allowing 
+  -- opposition.
+  fun AuthoritarianRegime : Ind FormOfGovernment ;
+
+  fun AuthoritarianSocialist : Ind FormOfGovernment ;
+
+  fun BankForInternationalSettlements : Ind OrganizationOfNations ;
+
+  fun BeneluxEconomicUnion : Ind OrganizationOfNations ;
+
+  -- BicameralLegislature is the 
+  -- Attribute of governments whose legislative branches have two
+  -- legislative chambers. For example, in the UnitedStates the legislative 
+  -- branch comprises the Senate and the House of Representatives.
+  fun BicameralLegislature : Ind FormOfGovernment ;
+
+  fun BigSeven : Ind OrganizationOfNations ;
+
+  fun BigSix : Ind OrganizationOfNations ;
+
+  fun BlackSeaEconomicCooperationZone : Ind OrganizationOfNations ;
+
+  fun BoardOfTrusteesMember : Ind MemberStatus ;
+
+  fun BoundaryDetermination : Ind TransnationalIssue ;
+
+  fun BritishCrownColony : Class ;
+  fun BritishCrownColony_Class : SubClass BritishCrownColony OverseasArea ;
+
+  fun CBWExportControls : Ind TransnationalIssue ;
+
+  -- (CabinetFn ?AREA) denotes the 
+  -- GovernmentCabinet associated with the government of the 
+  -- GeopoliticalArea ?AREA.
+  fun CabinetFn : El GeopoliticalArea -> Ind GovernmentOrganization ;
+
+  fun CaribbeanCommunityAndCommonMarket : Ind OrganizationOfNations ;
+
+  fun CaribbeanDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun CategoryIIIMember : Ind MemberStatus ;
+
+  fun CategoryIIMember : Ind MemberStatus ;
+
+  fun CategoryIMember : Ind MemberStatus ;
+
+  fun CentralAfricanStatesDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun CentralAmericanBankForEconomicIntegration : Ind OrganizationOfNations ;
+
+  fun CentralAmericanCommonMarket : Ind OrganizationOfNations ;
+
+  fun CentralEuropeanInitiative : Ind OrganizationOfNations ;
+
+  fun Chairman : Ind Position ;
+
+  -- ChargeDAffaires is the Attribute of 
+  -- foreign servicer officers representing their governments abroad as 
+  -- Charges d'Affaires.
+  fun ChargeDAffaires : Ind ForeignServicePosition ;
+
+  fun Chiefdom : Ind FormOfGovernment ;
+
+  fun ChildHealthServices : Ind AreaOfConcern ;
+
+  -- CivilLaw is the attribute of legal systems 
+  -- based ultimately on the code of civil law developed in Ancient Rome. 
+  -- Civil law systems are characterized by their expression of laws in written 
+  -- code and statute and by their effort to use general principles to define 
+  -- and rationalize the laws.
+  fun CivilLaw : Ind LegalSystemAttribute ;
+
+  fun CivilPoliceTraining : Ind AreaOfConcern ;
+
+  fun ColomboPlan : Ind OrganizationOfNations ;
+
+  fun CommissionForSocialDevelopment : Ind InternationalOrganization ;
+
+  fun CommissionOnCrimePreventionAndCriminalJustice : Ind InternationalOrganization ;
+
+  fun CommissionOnHumanRights : Ind InternationalOrganization ;
+
+  fun CommissionOnNarcoticsDrugs : Ind InternationalOrganization ;
+
+  fun CommissionOnPopulationAndDevelopment : Ind InternationalOrganization ;
+
+  fun CommissionOnScienceAndTechnologyForDevelopment : Ind InternationalOrganization ;
+
+  fun CommissionOnSustainableDevelopment : Ind InternationalOrganization ;
+
+  fun CommissionOnTheStatusOfWomen : Ind InternationalOrganization ;
+
+  fun Commissioner : Ind MemberStatus ;
+
+  fun Commonwealth : Ind FormOfGovernment ;
+
+  fun CommonwealthOfIndependentStates : Ind OrganizationOfNations ;
+
+  fun CommonwealthOfNations : Ind OrganizationOfNations ;
+
+  fun CommunicationsCoordination : Ind AreaOfConcern ;
+
+  fun CommunistState : Ind FormOfGovernment ;
+
+  fun CompactOfFreeAssociationWithNewZealand : Ind FormOfGovernment ;
+
+  fun CompactOfFreeAssociationWithUnitedStates : Ind FormOfGovernment ;
+
+  fun CompensationAndReparation : Ind AreaOfConcern ;
+
+  -- CompulsorySuffrageLaw is a law that 
+  -- requires all eligible voters in a country to vote, under threat of some 
+  -- penalty.
+  fun CompulsorySuffrageLaw : Ind SuffrageLaw ;
+
+  -- The class Constitution includes the bodies of
+  -- abstract principles formulated to guide the laws, institutions and practices 
+  -- of various Governments. Also see ConstitutionDocument.
+  fun Constitution : Class ;
+  fun Constitution_Class : SubClass Constitution Proposition ;
+
+  -- ConstitutionDocument is the class 
+  -- of information_containing objects in which the Constitution of a 
+  -- government is encoded.
+  fun ConstitutionDocument : Class ;
+  fun ConstitutionDocument_Class : SubClass ConstitutionDocument ContentBearingObject ;
+
+  -- (ConstitutionFn ?AREA) denotes a class 
+  -- containing all Constitutions adopted by the government of the 
+  -- GeopoliticalArea ?AREA. For example, (ConstitutionFn UnitedStates) 
+  -- contains the ConstitutionOfTheUnitedStates.
+  fun ConstitutionFn: El GeopoliticalArea -> Desc Constitution ;
+
+  -- ConstitutionalCourt is the class of 
+  -- JudicialOrganizations that rule on constitutional matters, in countries 
+  -- that have a Constitution.
+  fun ConstitutionalCourt : Class ;
+  fun ConstitutionalCourt_Class : SubClass ConstitutionalCourt JudicialOrganization ;
+
+  fun ConstitutionalDemocracy : Ind FormOfGovernment ;
+
+  fun ConstitutionalDemocraticRepublic : Ind FormOfGovernment ;
+
+  -- ConstitutionalGovernment is 
+  -- the attribute of a government whose authority and rule are guided by 
+  -- principles expressed in a written Constitution.
+  fun ConstitutionalGovernment : Ind FormOfGovernment ;
+
+  fun ConstitutionalMonarchy : Ind FormOfGovernment ;
+
+  fun ConstitutionalParliamentaryDemocracy : Ind FormOfGovernment ;
+
+  fun ConstitutionalRepublic : Ind FormOfGovernment ;
+
+  -- Consul is the Attribute of foreign service 
+  -- officers representing their governments abroad as Consuls.
+  fun Consul : Ind ForeignServicePosition ;
+
+  -- ConsulGeneral is the Attribute of 
+  -- foreign service officers representing their governments abroad as 
+  -- Consuls General.
+  fun ConsulGeneral : Ind ForeignServicePosition ;
+
+  -- Consulate is a class of government 
+  -- organizations that represent one nation within the territory of a second 
+  -- nation. Consulates offer services for citizens of their own country 
+  -- abroad, as well as for citizens of the host country who have dealings 
+  -- with the country represented by the consulate general. See also 
+  -- ConsulateGeneral.
+  fun Consulate : Class ;
+  fun Consulate_Class : SubClass Consulate DiplomaticOrganization ;
+
+  -- ConsulateGeneral is a class of 
+  -- government organizations that represent one nation within the territory of 
+  -- a second nation. Consulates General offer a wider variety of services 
+  -- than do Consulates.
+  fun ConsulateGeneral : Class ;
+  fun ConsulateGeneral_Class : SubClass ConsulateGeneral DiplomaticOrganization ;
+
+  fun ControlBiologicalAndChemicalWeapons : Ind TransnationalIssue ;
+
+  fun ControlNuclearWeapons : Ind TransnationalIssue ;
+
+  fun ControlWeaponsOfMassDestruction : Ind TransnationalIssue ;
+
+  fun ConventionalArmsControl : Ind TransnationalIssue ;
+
+  fun CooperatingState : Ind MemberStatus ;
+
+  fun CooperationInCivilAviation : Ind AreaOfConcern ;
+
+  fun CoordinateCreditPolicy : Ind TransnationalIssue ;
+
+  -- The 
+  -- CoordinatingCommitteeOnExportControls was abolished as of March 31, 
+  -- 1994, and its members formed the WassenaarArrangement on July 12, 1996, 
+  -- with expanded membership and a post_Cold War aim of voluntary export 
+  -- controls on conventional arms and dual_use goods and technologies.
+  fun CoordinatingCommitteeOnExportControls : Ind OrganizationOfNations ;
+
+  fun Coprincipality : Ind FormOfGovernment ;
+
+  fun CorrespondentMember : Ind MemberStatus ;
+
+  fun CouncilForMutualEconomicAssistance : Ind OrganizationOfNations ;
+
+  -- The 
+  -- CouncilOfArabEconomicUnity was established in 1957 but did not become 
+  -- effective until May 30, 1964.
+  fun CouncilOfArabEconomicUnity : Ind OrganizationOfNations ;
+
+  fun CouncilOfEurope : Ind OrganizationOfNations ;
+
+  fun CouncilOfTheBalticSeaStates : Ind OrganizationOfNations ;
+
+  fun CouncilOfTheEntente : Ind OrganizationOfNations ;
+
+  fun CrimePrevention : Ind AreaOfConcern ;
+
+  fun CulturalCooperation : Ind TransnationalIssue ;
+
+  -- Democracy is the attribute of a government 
+  -- whose authority and rule are based in the will of the people governed. 
+  -- The will of the people is usually expressed through Elections, direct or 
+  -- indirect.
+  fun Democracy : Ind FormOfGovernment ;
+
+  -- The US Government
+  -- organization founded in 2002 to consolidate and organize
+  -- national_level preparations to thwart security threats, primarily
+  -- terrorist attacks, against the United States of America.
+  fun DepartmentOfHomelandSecurity : Ind GovernmentOrganization ;
+
+  -- DependencyOrSpecialSovereigntyArea is a subclass of 
+  -- GeopoliticalArea, representing the classification 'Dependency or Special 
+  -- Sovereignty Area' used by the CIA World Fact Book. Cf. 
+  -- IndependentState.
+  fun DependencyOrSpecialSovereigntyArea : Class ;
+  fun DependencyOrSpecialSovereigntyArea_Class : SubClass DependencyOrSpecialSovereigntyArea GeopoliticalArea ;
+
+  fun DialoguePartner : Ind MemberStatus ;
+
+  fun Dictatorship : Ind FormOfGovernment ;
+
+  -- DiplomaticAgent is a generic Attribute 
+  -- of persons charged to represent one national government to another nation 
+  -- or international organization. This includes any Ambassador or head of 
+  -- a diplomatic mission. Individuals with this attribute may also hold a 
+  -- career diplomatic position (see ForeignServicePosition).
+  fun DiplomaticAgent : Ind ForeignServicePosition ;
+
+  -- DiplomaticOrganization is the 
+  -- general class of government organizations that represent one nation in 
+  -- official government business with other nations.
+  fun DiplomaticOrganization : Class ;
+  fun DiplomaticOrganization_Class : SubClass DiplomaticOrganization GovernmentOrganization ;
+
+  fun EastAfricanDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun EcclesiasticalGovernment : Ind FormOfGovernment ;
+
+  fun EconomicAndSocialCommissionForAsiaAndThePacific : Ind InternationalOrganization ;
+
+  fun EconomicAndSocialCommissionForWesternAsia : Ind InternationalOrganization ;
+
+  -- The EconomicAndSocialCouncil is 
+  -- the coordinating organization for the social and economic work of the 
+  -- UnitedNations. It comprises five regional commissions and nine 
+  -- functional commissions.
+  fun EconomicAndSocialCouncil : Ind OrganizationOfNations ;
+
+  fun EconomicCommissionForAfrica : Ind InternationalOrganization ;
+
+  fun EconomicCommissionForEurope : Ind InternationalOrganization ;
+
+  fun EconomicCommissionForLatinAmericaAndTheCaribbean : Ind InternationalOrganization ;
+
+  fun EconomicCommunityOfTheGreatLakesCountries : Ind OrganizationOfNations ;
+
+  fun EconomicCommunityOfWestAfricanStates : Ind OrganizationOfNations ;
+
+  fun EconomicCooperation : Ind TransnationalIssue ;
+
+  fun EconomicCooperationOrganization : Ind OrganizationOfNations ;
+
+  fun EconomicDevelopment : Ind AreaOfConcern ;
+
+  fun EconomicIntegration : Ind TransnationalIssue ;
+
+  fun EconomicPolicyCoordination : Ind TransnationalIssue ;
+
+  fun EducationalCooperation : Ind (both TransnationalIssue AreaOfConcern) ;
+
+  fun EfficientCustomsAdministration : Ind (both TransnationalIssue AreaOfConcern ) ;
+
+  -- (ElectionFn ?ORG) denotes the class of 
+  -- Elections conducted by the GeopoliticalArea or Organization ?ORG, 
+  -- in which offices or issues pertaining to ?ORG are voted upon.
+  fun ElectionFn: El Agent -> Desc Election ;
+
+  fun EliminateChemicalWeapons : Ind TransnationalIssue ;
+
+  -- Embassy is the class of top_ranked 
+  -- GovernmentOrganizations that represent one nation within the boundaries 
+  -- of another. Not all nations have embassy_level representation from other 
+  -- nations.
+  fun Embassy : Class ;
+  fun Embassy_Class : SubClass Embassy DiplomaticOrganization ;
+
+  fun EmergingDemocracy : Ind FormOfGovernment ;
+
+  fun EmigrationAndImmigrationIssues : Ind (both TransnationalIssue AreaOfConcern) ;
+
+  fun EnergyAndTheEnvironment : Ind TransnationalIssue ;
+
+  fun EnergyCooperation : Ind (both TransnationalIssue AreaOfConcern) ; 
+
+  -- EnglishCommonLaw is the attribute of 
+  -- legal systems based on the common law developed in England and influential 
+  -- in its English_speaking colonies. Common law is characterized by laws and 
+  -- rulings based on precedent and custom, rather than on written statute.
+  fun EnglishCommonLaw : Ind LegalSystemAttribute ;
+
+  fun EnvironmentalCooperation : Ind TransnationalIssue ;
+
+  fun EuroAtlanticPartnershipCouncil : Ind OrganizationOfNations ;
+
+  fun EuropeanBankForReconstructionAndDevelopment : Ind OrganizationOfNations ;
+
+  -- The EuropeanCommunity was merged into 
+  -- the EuropeanUnion on February 7, 1992.
+  fun EuropeanCommunity : Ind OrganizationOfNations ;
+
+  fun EuropeanFreeTradeAssociation : Ind OrganizationOfNations ;
+
+  fun EuropeanInvestmentBank : Ind OrganizationOfNations ;
+
+  fun EuropeanMonetaryUnion : Ind OrganizationOfNations ;
+
+  fun EuropeanOrganizationForNuclearResearch : Ind OrganizationOfNations ;
+
+  fun EuropeanSpaceAgency : Ind OrganizationOfNations ;
+
+  fun EuropeanUnion : Ind OrganizationOfNations ;
+
+  fun ExclusiveMaleSuffrage : Ind RestrictedSuffrage ;
+
+  fun ExecutiveBoardMember : Ind MemberStatus ;
+
+  -- (ExecutiveBranchFn ?ORG) denotes the 
+  -- executive branch of ?ORG, with all its officials and agencies, considered 
+  -- as a whole.
+  fun ExecutiveBranchFn : El Agent -> Ind Organization ;
+
+  fun ExecutiveCommitteeMember : Ind MemberStatus ;
+
+  fun Factionalism : Ind FormOfGovernment ;
+
+  fun FederalDemocraticRepublic : Ind FormOfGovernment ;
+
+  -- FederalGovernment is the attribute of 
+  -- a government that is formed by agreement between a collection of political 
+  -- units that agree to give up some of their power to the central government, 
+  -- while reserving some powers to themselves. The government of the 
+  -- UnitedStates is a federal government, in which power is shared between 
+  -- the states and the central goverment, as set out in the U.S. 
+  -- Constitution.
+  fun FederalGovernment : Ind FormOfGovernment ;
+
+  fun FederalParliamentaryDemocracy : Ind FormOfGovernment ;
+
+  fun FederalRepublic : Ind FormOfGovernment ;
+
+  fun Federation : Ind FormOfGovernment ;
+
+  fun FinancialCooperation : Ind TransnationalIssue ;
+
+  -- FixedHoliday is the class of Holidays 
+  -- whose observance is fixed to recurrences of the calendar day that the 
+  -- holiday commemorates. See commemoratesDate.
+  fun FixedHoliday : Class ;
+  fun FixedHoliday_Class : SubClass FixedHoliday Holiday ;
+
+  fun FoodAid : Ind TransnationalIssue ;
+
+  fun FoodAndAgricultureOrganization : Ind OrganizationOfNations ;
+
+  -- ForeignServicePosition is the 
+  -- subclass of Positions that belong to foreign service personnel working 
+  -- for a national government or international organization.
+  fun ForeignServicePosition : Class ;
+  fun ForeignServicePosition_Class : SubClass ForeignServicePosition Position ;
+
+  -- A Foreign Terrorist Organization
+  --  is an Organization designated by the USStateDeparment as one which
+  --  conducts acts of terrorism. This designation makes it subject to the
+  --  AntiterrorismAndEffectiveDeathPenaltyAct.
+  fun ForeignTerroristOrganization : Class ;
+  fun ForeignTerroristOrganization_Class : SubClass ForeignTerroristOrganization TerroristOrganization ;
+
+  fun FrancZone : Ind OrganizationOfNations ;
+
+  fun FullMember : Ind MemberStatus ;
+
+  fun GenderEquality : Ind AreaOfConcern ;
+
+  -- GovernmentCabinet is the class of 
+  -- GovernmentOrganizations whose purpose is to advise a President, 
+  -- Governor, or other political leader(s) on policy matters.
+  fun GovernmentCabinet : Class ;
+  fun GovernmentCabinet_Class : SubClass GovernmentCabinet GovernmentOrganization ;
+
+  fun GovernmentDeputy : Ind Position ;
+
+  -- The GroupOf10 (also known as the Paris Club) 
+  -- is a group of (now) 11 major creditor nations that manage the repayment of 
+  -- loans by debtor countries. The Group of 10 works closely with the 
+  -- InternationalMonetaryFund.
+  fun GroupOf10 : Ind OrganizationOfNations ;
+
+  fun GroupOf11 : Ind OrganizationOfNations ;
+
+  -- The GroupOf15 was a result of the NonalignedMovement.
+  fun GroupOf15 : Ind OrganizationOfNations ;
+
+  -- The GroupOf24 promotes the interests of 
+  -- developing countries in Africa, Asia, and Latin America within the 
+  -- InternationalMonetaryFund.
+  fun GroupOf24 : Ind OrganizationOfNations ;
+
+  fun GroupOf3 : Ind OrganizationOfNations ;
+
+  fun GroupOf5 : Ind OrganizationOfNations ;
+
+  fun GroupOf6 : Ind OrganizationOfNations ;
+
+  -- The memberships of the BigSeven and the 
+  -- GroupOf7 include the same Nations.
+  fun GroupOf7 : Ind OrganizationOfNations ;
+
+  fun GroupOf77 : Ind OrganizationOfNations ;
+
+  -- The GroupOf8 members were participants in the 
+  -- Conference on International Economic Cooperation (CIEC) between 
+  -- 1975_1977.
+  fun GroupOf8 : Ind OrganizationOfNations ;
+
+  fun GroupOf9 : Ind OrganizationOfNations ;
+
+  fun GuestStatus : Ind MemberStatus ;
+
+  fun GulfCooperationCouncil : Ind OrganizationOfNations ;
+
+  fun HereditaryMonarchy : Ind FormOfGovernment ;
+
+  -- Holiday is the class of time periods that are 
+  -- observed as holidays in a country, culture, or religion. Holidays may 
+  -- recur annually on the same date, or they may be moveable, for example, 
+  -- UnitedStatesThanksgivingDay falls on the last Thursday of each 
+  -- November.
+  fun Holiday : Class ;
+  fun Holiday_Class : SubClass Holiday TimeInterval ;
+
+  fun HumanRightsIssues : Ind TransnationalIssue ;
+
+  fun HumanitarianAid : Ind TransnationalIssue ;
+
+  fun HumanitarianAssistance : Ind TransnationalIssue ;
+
+  fun ImmigrationAndNationalityAct_Section219_US : Ind Proposition ;
+
+  fun ImmigrationAndNationalityAct_US : Ind Proposition ;
+
+  fun ImproveHumanSettlementConditions : Ind AreaOfConcern ;
+
+  -- IndependentState is a subclass of 
+  -- GeopoliticalArea, representing the classification 'Independent State' 
+  -- used by the CIA World Fact Book. Cf. 
+  -- DependencyOrSpecialSovereigntyArea.
+  fun IndependentState : Class ;
+  fun IndependentState_Class : SubClass IndependentState (both GeopoliticalArea Nation) ;
+
+  fun IndianOceanCommission : Ind OrganizationOfNations ;
+
+  fun IndustryStandards : Ind AreaOfConcern ;
+
+  fun InformationCooperation : Ind AreaOfConcern ;
+
+  fun InformationStandards : Ind AreaOfConcern ;
+
+  fun InfrastructureCooperation : Ind AreaOfConcern ;
+
+  fun IntellectualPropertyProtection : Ind AreaOfConcern ;
+
+  fun InterAmericanDevelopmentBank : Ind OrganizationOfNations ;
+
+  -- The 
+  -- InterGovernmentalAuthorityOnDevelopment is the revitalized successor 
+  -- organization of the Inter_Governmental Authority on Development, which had 
+  -- been established 15_16 January 1986.
+  fun InterGovernmentalAuthorityOnDevelopment : Ind OrganizationOfNations ;
+
+  fun InternationalAtomicEnergyAgency : Ind OrganizationOfNations ;
+
+  fun InternationalBankForReconstructionAndDevelopment : Ind OrganizationOfNations ;
+
+  fun InternationalCenterForSecretariatOfInvestmentDisputes : Ind InternationalOrganization ;
+
+  fun InternationalChamberOfCommerce : Ind OrganizationOfNations ;
+
+  fun InternationalCivilAviationOrganization : Ind OrganizationOfNations ;
+
+  fun InternationalCommitteeOfTheRedCross : Ind InternationalOrganization ;
+
+  fun InternationalConfederationOfFreeTradeUnions : Ind OrganizationOfNations ;
+
+  -- The InternationalCourtOfJustice superseded the Permanent Court of International Justice.
+  fun InternationalCourtOfJustice : Ind (both InternationalOrganization JudicialOrganization) ;
+
+  -- Interpol is the 
+  -- successor organization to the International Criminal Police Organization, 
+  -- which had been established in 1923.
+  fun InternationalCriminalPoliceOrganization : Ind OrganizationOfNations ;
+
+  fun InternationalCriminalTribunalForRwanda : Ind InternationalOrganization ;
+
+  fun InternationalCriminalTribunalForTheFormerYugoslavia : Ind InternationalOrganization ;
+
+  fun InternationalDevelopmentAssociation : Ind OrganizationOfNations ;
+
+  -- The InternationalEnergyAgency 
+  -- was established by the OrganizationForEconomicAndCulturalDevelopment.
+  fun InternationalEnergyAgency : Ind OrganizationOfNations ;
+
+  fun InternationalFederationOfRedCrossAndRedCrescentSocieties : Ind OrganizationOfNations ;
+
+  -- The InternationalFinanceCorporation is affiliated with the InternationalBankForReconstructionAndDevelopment.
+  fun InternationalFinanceCorporation : Ind OrganizationOfNations ;
+
+  fun InternationalFundForAgriculturalDevelopment : Ind OrganizationOfNations ;
+
+  fun InternationalHydrographicOrganization : Ind OrganizationOfNations ;
+
+  fun InternationalJustice : Ind (both AreaOfConcern TransnationalIssue) ;
+
+  -- The InternationalLaborOrganization became affiliated with 
+  -- the UnitedNations in 1946.
+  fun InternationalLaborOrganization : Ind OrganizationOfNations ;
+
+  fun InternationalMaritimeAffairs : Ind AreaOfConcern ;
+
+  -- The InternationalMaritimeOrganization was established in 1948 but became 
+  -- effective ten years later.
+  fun InternationalMaritimeOrganization : Ind OrganizationOfNations ;
+
+  fun InternationalMonetaryFund : Ind OrganizationOfNations ;
+
+  fun InternationalOlympicCommittee : Ind OrganizationOfNations ;
+
+  fun InternationalOrNonregionalMember : Ind MemberStatus ;
+
+  -- InternationalOrganization is 
+  -- the class of Organizations whose activities have international scope and 
+  -- which typically have members who are, or are from, different Nations.
+  fun InternationalOrganization : Class ;
+  fun InternationalOrganization_Class : SubClass InternationalOrganization Organization ;
+
+  fun InternationalOrganizationForMigration : Ind OrganizationOfNations ;
+
+  fun InternationalOrganizationForStandardization : Ind OrganizationOfNations ;
+
+  fun InternationalPeaceAndSecurity : Ind TransnationalIssue ;
+
+  fun InternationalRedCrossAndRedCrescentMovement : Ind InternationalOrganization ;
+
+  fun InternationalResearchAndTrainingInstituteForTheAdvancementOfWomen : Ind OrganizationOfNations ;
+
+  -- The InternationalTelecommunicationUnion became affiliated with the 
+  -- UnitedNations on November 15, 1947.
+  fun InternationalTelecommunicationUnion : Ind OrganizationOfNations ;
+
+  fun InternationalTradeSupport : Ind TransnationalIssue ;
+
+  fun IslamicDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun IslamicGovernment : Ind FormOfGovernment ;
+
+  -- IslamicLaw is the Attribute of 
+  -- legal systems that are based on religious principles of Islam.
+  fun IslamicLaw : Ind LegalSystemAttribute ;
+
+  -- IslamicLawCourt is the subclass of 
+  -- JudicialOrganizations that are conducted according to principles of 
+  -- Islamic Law.
+  fun IslamicLawCourt : Class ;
+  fun IslamicLawCourt_Class : SubClass IslamicLawCourt JudicialOrganization ;
+
+  -- JudgeAtLaw is the Position of a person who 
+  -- is a public official with the authority to decide legal matters in a 
+  -- governmental JudicialOrganization.
+  fun JudgeAtLaw : Ind Position ;
+
+  -- JudicialReviewOfExecutiveActs is an attribute of legal systems 
+  -- in which the judiciary has authority to review acts of the executive 
+  -- branch.
+  fun JudicialReviewOfExecutiveActs : Ind LegalSystemAttribute ;
+
+  -- JudicialReviewOfLegislativeActs is an attribute of legal systems 
+  -- in which the judiciary has authority to review acts of the legislature.
+  fun JudicialReviewOfLegislativeActs : Ind LegalSystemAttribute ;
+
+  -- (JudiciaryFn ?AREA) denotes the judicial 
+  -- branch of the GeopoliticalArea ?AREA, that is, the 
+  -- JudicialOrganization(s) associated with the government of ?AREA, 
+  -- considered as a whole.
+  fun JudiciaryFn : El GeopoliticalArea -> Ind GovernmentOrganization ;
+
+  fun JusticeIssues : Ind AreaOfConcern ;
+
+  fun King : Ind Position ;
+
+  fun LaborIssues : Ind AreaOfConcern ;
+
+  fun LatinAmericanEconomicSystem : Ind OrganizationOfNations ;
+
+  fun LatinAmericanIntegrationAssociation : Ind OrganizationOfNations ;
+
+  fun Leader : Ind Position ;
+
+  -- LegalSystemAttribute is the class 
+  -- of Attributes that are used to characterize legal systems, as, e.g., 
+  -- according to their sources, areas of concern, or principles of 
+  -- organization.
+  fun LegalSystemAttribute : Class ;
+  fun LegalSystemAttribute_Class : SubClass LegalSystemAttribute RelationalAttribute ;
+
+  -- LegislativeChamber is the class of 
+  -- LegislativeOrganizations which are a coherent body that considers and 
+  -- votes upon legislation in common session. For example, the United States 
+  -- Senate.
+  fun LegislativeChamber : Class ;
+  fun LegislativeChamber_Class : SubClass LegislativeChamber LegislativeOrganization ;
+
+  -- (LegislatureFn ?AREA) denotes the 
+  -- legislative branch of the GeopoliticalArea ?AREA.
+  fun LegislatureFn : El GeopoliticalArea -> Ind LegislativeOrganization ;
+
+  -- (MemberFn ?ORG) denotes the Position of 
+  -- a member in the Organization ?ORG.
+  fun MemberFn : El Organization -> Ind Position ;
+
+  -- (MemberRoleFn ?ORG ?POSITION) denotes the 
+  -- role of having the Position ?POSITION the Organization ?ORG.
+  fun MemberRoleFn : El Organization -> El Position -> Ind Position ;
+
+  -- MemberStatus is the class of 
+  -- RelationalAttributes that represent the different kinds of status 
+  -- that may be held in various organizations. Included in this class are 
+  -- membership types for InternationalOrganizations covered by the CIA World 
+  -- Fact Book.
+  fun MemberStatus : Class ;
+  fun MemberStatus_Class : SubClass MemberStatus RelationalAttribute ;
+
+  fun MembershipApplicant : Ind MemberStatus ;
+
+  fun MembershipPending : Ind MemberStatus ;
+
+  fun MilitaryCommander : Ind Position ;
+
+  fun MilitaryCooperation : Ind TransnationalIssue ;
+
+  fun MilitaryDictatorship : Ind FormOfGovernment ;
+
+  fun Monarch : Ind Position ;
+
+  -- Monarchy is the attribute of a government 
+  -- that is ruled by a monarch, which is usually a hereditary role.
+  fun Monarchy : Ind FormOfGovernment ;
+
+  fun MonetaryAndEconomicCommunityOfCentralAfrica : Ind OrganizationOfNations ;
+
+  fun MonetaryStability : Ind AreaOfConcern ;
+
+  fun MonetaryUnion : Ind TransnationalIssue ;
+
+  -- MoveableHoliday is the class of 
+  -- Holidays whose observance is not fixed to recurrences of any particular 
+  -- calendar day. For example, UnitedStatesMemorialDay is observed on the 
+  -- last Monday of May.
+  fun MoveableHoliday : Class ;
+  fun MoveableHoliday_Class : SubClass MoveableHoliday Holiday ;
+
+  fun MulitlateralInvestmentGeographicAgency : Ind InternationalOrganization ;
+
+  fun MultipartyDemocracy : Ind FormOfGovernment ;
+
+  fun MutualDefensePact : Ind TransnationalIssue ;
+
+  -- NapoleonicCode is the specialization of 
+  -- CivilLaw developed in France under Napoleon Bonaparte. It is still the 
+  -- basis of French law as well as of legal systems developed under French 
+  -- influence.
+  fun NapoleonicCode : Ind LegalSystemAttribute ;
+
+  fun NationalCommitteeChairman : Ind Position ;
+
+  -- NationalGovernment is the class of 
+  -- national_level governments of Nations.
+  fun NationalGovernment : Class ;
+  fun NationalGovernment_Class : SubClass NationalGovernment Government ;
+
+  -- The NonalignedMovement was 
+  -- established to promote political and military cooperation outside of the 
+  -- traditional East and West power groups.
+  fun NonalignedMovement : Ind OrganizationOfNations ;
+
+  fun NonpermanentStatus : Ind MemberStatus ;
+
+  fun NonregionalMember : Ind MemberStatus ;
+
+  fun NonstateParticipant : Ind MemberStatus ;
+
+  fun NordicCouncil : Ind OrganizationOfNations ;
+
+  fun NordicInvestmentBank : Ind OrganizationOfNations ;
+
+  fun NorthAtlanticTreatyOrganization : Ind OrganizationOfNations ;
+
+  fun NuclearDisarmament : Ind TransnationalIssue ;
+
+  fun NuclearEnergyAgency : Ind OrganizationOfNations ;
+
+  fun NuclearExportControls : Ind TransnationalIssue ;
+
+  fun NuclearNonproliferation : Ind TransnationalIssue ;
+
+  fun NuclearSuppliersGroup : Ind OrganizationOfNations ;
+
+  fun ObservationAndMonitoring : Ind AreaOfConcern ;
+
+  fun ObserverStatus : Ind MemberStatus ;
+
+  fun OrganizationForEconomicCooperationAndDevelopment : Ind OrganizationOfNations ;
+
+  -- The OrganizationForSecurityAndCooperationInEurope, established January 1, 
+  -- 1995, grew out of the Conference on Security and Cooperation in Europe, 
+  -- which began meeting in 1975.
+  fun OrganizationForSecurityAndCooperationInEurope : Ind OrganizationOfNations ;
+
+  fun OrganizationForTheProhibitionOfChemicalWeapons : Ind OrganizationOfNations ;
+
+  -- The OrganizationOfAfricanUnity was renamed to African Union 
+  -- (Union_Africaine) in July, 2002.
+  fun OrganizationOfAfricanUnity : Ind OrganizationOfNations ;
+
+  -- The OrganizationOfAmericanStates adopted its present charter on April 30, 1948.
+  fun OrganizationOfAmericanStates : Ind OrganizationOfNations ;
+
+  fun OrganizationOfArabPetroleumExportingCountries : Ind OrganizationOfNations ;
+
+  fun OrganizationOfEasternCaribbeanStates : Ind OrganizationOfNations ;
+
+  -- This is the class of Organizations whose members are Nations.
+  fun OrganizationOfNations : Class ;
+  fun OrganizationOfNations_Class : SubClass OrganizationOfNations InternationalOrganization ;
+
+  fun OrganizationOfPetroleumExportingCountries : Ind OrganizationOfNations ;
+
+  fun OrganizationOfTheIslamicConference : Ind OrganizationOfNations ;
+
+  fun OrganizeOlympicGames : Ind TransnationalIssue ;
+
+  -- OverseasArea is the class of 
+  -- GeopoliticalAreas that are related to a Nation as overseas 
+  -- territories, possessions, protectorates, or departments.
+  fun OverseasArea : Class ;
+  fun OverseasArea_Class : SubClass OverseasArea (both DependencyOrSpecialSovereigntyArea GeopoliticalArea) ;
+
+  -- (OverseasAreaFn ?AREA) denotes the class 
+  -- of OverseasAreas that belong to the GeopoliticalArea ?AREA.
+  fun OverseasAreaFn: El GeopoliticalArea -> Desc OverseasArea ;
+
+  fun PacificCommunity : Ind OrganizationOfNations ;
+
+  fun PacificIslandForum : Ind OrganizationOfNations ;
+
+  -- Parliament is the subclass of 
+  -- LegislativeOrganizations similar to that of the United Kingdom.
+  fun Parliament : Class ;
+  fun Parliament_Class : SubClass Parliament LegislativeOrganization ;
+
+  fun ParliamentaryDemocracy : Ind FormOfGovernment ;
+
+  fun ParliamentaryDemocraticRepublic : Ind FormOfGovernment ;
+
+  -- ParliamentaryGovernment is the 
+  -- attribute of a government whose chief LegislativeOrganization is a 
+  -- Parliament. A parliamentary government is compatible with various 
+  -- other government types, including Monarchy.
+  fun ParliamentaryGovernment : Ind FormOfGovernment ;
+
+  fun ParliamentaryRepublic : Ind FormOfGovernment ;
+
+  fun ParliamentaryTerritory : Class ;
+  fun ParliamentaryTerritory_Class : SubClass ParliamentaryTerritory GeopoliticalArea ;
+
+  fun PartIMember : Ind MemberStatus ;
+
+  fun PartIIMember : Ind MemberStatus ;
+
+  fun PartnersForCooperation : Ind MemberStatus ;
+
+  fun PartnershipForPeace : Ind OrganizationOfNations ;
+
+  fun PeacefulUseOfAtomicPower : Ind TransnationalIssue ;
+
+  fun PeacekeepingOperation : Ind (both TransnationalIssue AreaOfConcern) ;
+
+  fun PermanentChargeDAffaires : Ind ForeignServicePosition ;
+
+  fun PermanentCourtOfArbitration : Ind OrganizationOfNations ;
+
+  fun PermanentRepresentative : Ind Position ;
+
+  fun PermanentStatus : Ind MemberStatus ;
+
+  -- PoliticalCoalition is the class of 
+  -- political organizations that are constituted by political parties joined 
+  -- together for some common interest(s).
+  fun PoliticalCoalition : Class ;
+  fun PoliticalCoalition_Class : SubClass PoliticalCoalition (both PoliticalOrganization PoliticalParty) ;
+
+  fun PoliticalCooperation : Ind AreaOfConcern ;
+
+  fun PoliticalDevelopment : Ind AreaOfConcern ;
+
+  fun PoliticalIntegration : Ind AreaOfConcern ;
+
+  -- PoliticalPressureGroup is the 
+  -- class of Organizations that exert political pressure and have leaders 
+  -- who are involved in politics but not standing for election. For example, 
+  -- corporate lobbying groups, Mothers Against Drunk Driving (MADD), or the 
+  -- American Civil Liberties Union (ACLU).
+  fun PoliticalPressureGroup : Class ;
+  fun PoliticalPressureGroup_Class : SubClass PoliticalPressureGroup PoliticalOrganization ;
+
+  fun PopulationPolicySupport : Ind AreaOfConcern ;
+
+  fun President : Ind Position ;
+
+  fun PresidentialGovernment : Ind FormOfGovernment ;
+
+  fun PrimeMinister : Ind Position ;
+
+  fun PrincipalOfficer : Ind ForeignServicePosition ;
+
+  fun PromotePrivateEnterprise : Ind AreaOfConcern ;
+
+  fun PromoteRegionalStability : Ind TransnationalIssue ;
+
+  fun PromoteSustainableDevelopment : Ind AreaOfConcern ;
+
+  fun PromoteTradeUnionism : Ind AreaOfConcern ;
+
+  fun PromotionOfFreeTrade : Ind TransnationalIssue ;
+
+  fun PromotionOfPrivateEnterprise : Ind AreaOfConcern ;
+
+  fun PromotionOfTourism : Ind AreaOfConcern ;
+
+  fun PromotionOfTradeAndInvestment : Ind TransnationalIssue ;
+
+  fun PublicHealthConcern : Ind AreaOfConcern ;
+
+  fun Queen : Ind Position ;
+
+  fun ReducePoverty : Ind AreaOfConcern ;
+
+  fun ReducingCrime : Ind AreaOfConcern ;
+
+  fun RefugeeAssistance : Ind (both TransnationalIssue AreaOfConcern) ;
+
+  -- RegionalLaw is the class of regional 
+  -- laws, considered as a body, established by particular Governments 
+  -- to regulate activities under their jurisdictions. For example, 
+  -- (RegionalLawFn UnitedStates) represents the content of the laws, 
+  -- statutes, and rulings of the United States.
+  fun RegionalLaw : Class ;
+  fun RegionalLaw_Class : SubClass RegionalLaw Proposition ;
+
+  -- (RegionalLawFn ?AREA) denotes the laws 
+  -- pertaining in the GeopoliticalArea ?AREA that are established and 
+  -- enforced by the Government of ?AREA. For example, (RegionalLawFn 
+  -- UnitedStates) denotes the laws of the government of the UnitedStates 
+  -- and its constituent units.
+  fun RegionalLawFn : El GeopoliticalArea -> Ind RegionalLaw ;
+
+  fun RegionalMember : Ind MemberStatus ;
+
+  fun RegionalSecurity : Ind AreaOfConcern ;
+
+  fun ReproductiveHealthAndFamilyPlannning : Ind AreaOfConcern ;
+
+  -- Republic is the attribute of a government 
+  -- whose power and authority are vested in its members, who elect 
+  -- representatives to exercise that power.
+  fun Republic : Ind FormOfGovernment ;
+
+  -- RestrictedSuffrage is a subclass of 
+  -- SuffrageLaw covering laws that restrict suffrage by further 
+  -- conditions beyond the basics of citizenship and age.
+  fun RestrictedSuffrage : Class ;
+  fun RestrictedSuffrage_Class : SubClass RestrictedSuffrage SuffrageLaw ;
+
+  -- The RioGroup was the result of fusing the 
+  -- Contadora Group and the Lima (or Support) Group.
+  fun RioGroup : Ind OrganizationOfNations ;
+
+  -- RomanCanonLaw is the attribute of legal 
+  -- systems based on the Ecclesiastical law developed by the Roman Catholic 
+  -- Church.
+  fun RomanCanonLaw : Ind LegalSystemAttribute ;
+
+  fun ScientificCooperation : Ind AreaOfConcern ;
+
+  fun SelfGoverningTerritory : Class ;
+  fun SelfGoverningTerritory_Class : SubClass SelfGoverningTerritory GeopoliticalArea ;
+
+  fun SignatoryMember : Ind MemberStatus ;
+
+  fun SocialCooperation : Ind TransnationalIssue ;
+
+  fun SocialDevelopment : Ind AreaOfConcern ;
+
+  fun SocioeconomicResearch : Ind AreaOfConcern ;
+
+  fun SouthAsianAssociationForRegionalCooperation : Ind OrganizationOfNations ;
+
+  fun SouthPacificRegionalTradeAndEconomicCooperationAgreement : Ind OrganizationOfNations ;
+
+  fun SouthernAfricanCustomsUnion : Ind OrganizationOfNations ;
+
+  fun SouthernAfricanDevelopmentCommunity : Ind OrganizationOfNations ;
+
+  fun SouthernConeCommonMarket : Ind OrganizationOfNations ;
+
+  fun SpaceResearchAndTechnology : Ind AreaOfConcern ;
+
+  fun Spokesperson : Ind Position ;
+
+  fun StatisticalCommission : Ind InternationalOrganization ;
+
+  fun SubbureauMember : Ind MemberStatus ;
+
+  fun SubscriberMember : Ind MemberStatus ;
+
+  -- SuffrageLaw is a class that includes the 
+  -- various types of suffrage rules of different Nations. Instances of 
+  -- SuffrageLaw represent the propositional content of various suffrage 
+  -- laws.
+  fun SuffrageLaw : Class ;
+  fun SuffrageLaw_Class : SubClass SuffrageLaw Proposition ;
+
+  fun SupportLawEnforcement : Ind AreaOfConcern ;
+
+  -- SupremeCourt is the subclass of 
+  -- JudicialOrganizations that are the ultimate judicial authority for the 
+  -- matters on which they rule. For example, the UnitedStatesSupremeCourt, 
+  -- or the InternationalCourtOfJustice (World Court).
+  fun SupremeCourt : Class ;
+  fun SupremeCourt_Class : SubClass SupremeCourt JudicialOrganization ;
+
+  -- (SupremeCourtFn ?AREA) denotes the class 
+  -- of the highest court(s) in the judicial system of GeopoliticalArea 
+  -- ?AREA. For example, the UnitedStatesSupremeCourt belongs to the class
+  -- (SupremeCourtFn UnitedStates).
+  fun SupremeCourtFn: El GeopoliticalArea -> Desc SupremeCourt ;
+
+  -- SupremeCourtJudge is the Position 
+  -- of a person who is a JudgeAtLaw on some SupremeCourt.
+  fun SupremeCourtJudge : Ind Position ;
+
+  fun SuspendedMember : Ind MemberStatus ;
+
+  fun TechnologyCooperation : Ind AreaOfConcern ;
+
+  -- TheocraticGovernment is the 
+  -- attribute of a government that bases its authority on Religion.
+  fun TheocraticGovernment : Ind FormOfGovernment ;
+
+  fun TheocraticRepublic : Ind FormOfGovernment ;
+
+  fun TransitionalAdministration : Ind (both AreaOfConcern TransnationalIssue) ;
+
+  -- TransitionalGovernment is the 
+  -- attribute of a government that is changing from one form of government 
+  -- to another. This may be accompanied by social unrest or instability.
+  fun TransitionalGovernment : Ind FormOfGovernment ;
+
+  -- TransnationalIssue is a class of 
+  -- Attributes that characterize the concerns of Nations, international 
+  -- Non_Governmental Institutions (NGOs), and other transnational agents.
+  fun TransnationalIssue : Class ;
+  fun TransnationalIssue_Class : SubClass TransnationalIssue AreaOfConcern ;
+
+  fun TransportationCoordination : Ind AreaOfConcern ;
+
+  -- The US government organization charged with protecting the
+  -- integrity of US national borders, primarily by detecting and
+  -- preventing attempts at illegal immigration.
+  fun USCustomsAndBorderProtection : Ind (both GovernmentOrganization PoliceOrganization) ;
+
+  -- The branch of the US Government that
+  --  handles relations with foreign governments and entities. It is the chief
+  --  diplomatic instrument of US foreign policy. It controls US embassies and 
+  --  consuls.
+  fun USStateDepartment : Ind Government ;
+
+  fun UnicameralLegislature : Ind FormOfGovernment ;
+
+  fun UnincorporatedUnitedStatesTerritory : Class ;
+  fun UnincorporatedUnitedStatesTerritory_Class : SubClass UnincorporatedUnitedStatesTerritory OverseasArea ;
+
+  -- UnitaryRule is a FormOfGovernment in which 
+  -- the central government controls affairs at all levels, including the local 
+  -- level.
+  fun UnitaryRule : Ind FormOfGovernment ;
+
+  -- The UnitedNations has six principal 
+  -- subOrganizations: the Secretariat, the General Assembly, the Security 
+  -- Council, the Economic and Social Council, the Trusteeship Council 
+  -- (currently inactive), and the International Court of Justice. The United 
+  -- Nations has numerous subordinate agencies and bodies within those six 
+  -- major subdivisions.
+  fun UnitedNations : Ind OrganizationOfNations ;
+
+  fun UnitedNationsCenterForHumanSettlements : Ind OrganizationOfNations ;
+
+  fun UnitedNationsChildrensFund : Ind OrganizationOfNations ;
+
+  fun UnitedNationsCivilianPoliceMissionInHaiti : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsCompensationCommission was created to process claims and 
+  -- pay compensation for losses and damage suffered as a direct result of 
+  -- the unlawful invasion and occupation of Kuwait by Iraq.
+  fun UnitedNationsCompensationCommission : Ind InternationalOrganization ;
+
+  fun UnitedNationsConferenceOnTradeAndDevelopment : Ind OrganizationOfNations ;
+
+  fun UnitedNationsDevelopmentProgram : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsDisengagementObserverForce was formed by the UN Security 
+  -- Council in order to observe the 1973 Arab_Israeli cease_fire.
+  fun UnitedNationsDisengagementObserverForce : Ind OrganizationOfNations ;
+
+  fun UnitedNationsEducationalScientificAndCulturalOrganization : Ind OrganizationOfNations ;
+
+  fun UnitedNationsEnvironmentProgram : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsGeneralAssembly is the primary deliberative body of the UnitedNations.
+  fun UnitedNationsGeneralAssembly : Ind OrganizationOfNations ;
+
+  fun UnitedNationsHighCommissionerForHumanRights : Ind InternationalOrganization ;
+
+  fun UnitedNationsHighCommissionerForRefugees : Ind OrganizationOfNations ;
+
+  fun UnitedNationsIndustrialDevelopmentOrganization : Ind OrganizationOfNations ;
+
+  fun UnitedNationsInstituteForDisarmamentResearch : Ind InternationalOrganization ;
+
+  fun UnitedNationsInstituteForTrainingAndResearch : Ind OrganizationOfNations ;
+
+  fun UnitedNationsInterimAdministrationMissionInKosovo : Ind InternationalOrganization ;
+
+  fun UnitedNationsInterimAdminstrationMissionInKosovo : Ind OrganizationOfNations ;
+
+  fun UnitedNationsInterimForceInLebanon : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsInterregionalCrimeAndJusticeResearchInstitute was 
+  -- reconstituted (from UNSDRI) into its present form in 1989 to address 
+  -- broader demands introduced by the participation of more developing 
+  -- countries in the UnitedNations.
+  fun UnitedNationsInterregionalCrimeAndJusticeResearchInstitute : Ind InternationalOrganization ;
+
+  fun UnitedNationsIraqKuwaitBoundaryDemarcationCommission : Ind InternationalOrganization ;
+
+  fun UnitedNationsIraqKuwaitObservationMission : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMilitaryObserverGroupInIndiaAndPakistan : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionForTheReferendumInWesternSahara : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionInBosniaAndHerzegovina : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionInEthiopiaAndEritrea : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionInSierraLeone : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionOfObserversInPrevlaka : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMissionOfObserversInTajikistan : Ind OrganizationOfNations ;
+
+  fun UnitedNationsMonitoringAndVerificationCommission : Ind OrganizationOfNations ;
+
+  fun UnitedNationsObserverMissionInGeorgia : Ind OrganizationOfNations ;
+
+  fun UnitedNationsOfficeOfProjectServices : Ind InternationalOrganization ;
+
+  fun UnitedNationsOrganizationMissionInTheDemocraticRepublicOfTheCongo : Ind OrganizationOfNations ;
+
+  fun UnitedNationsPeaceKeepingForceInCyprus : Ind OrganizationOfNations ;
+
+  fun UnitedNationsPopulationFund : Ind OrganizationOfNations ;
+
+  fun UnitedNationsPreventiveDeploymentForce : Ind OrganizationOfNations ;
+
+  fun UnitedNationsReliefAndWorksAgencyForPalestineRefugeesInTheNearEast : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsResearchInstituteForSocialDevelopment conducts research 
+  -- into problems of social and economic development. The Chair of its Board 
+  -- of Directors is appointed by the UN Secretary General. (No country 
+  -- members.)
+  fun UnitedNationsResearchInstituteForSocialDevelopment : Ind InternationalOrganization ;
+
+  -- The UnitedNationsSecretariat is 
+  -- the primary administrative body of the UnitedNations. It is headed by 
+  -- the United Nations' Secretary General, and constituted by him and his 
+  -- staff. The UN General Assembly appoints the Secretary General for a 
+  -- five_year term.
+  fun UnitedNationsSecretariat : Ind InternationalOrganization ;
+
+  fun UnitedNationsSecurityCouncil : Ind OrganizationOfNations ;
+
+  fun UnitedNationsSystemStaffCollege : Ind OrganizationOfNations ;
+
+  fun UnitedNationsTransitionalAdministrationInEastTimor : Ind OrganizationOfNations ;
+
+  fun UnitedNationsTruceSupervisionOrganization : Ind OrganizationOfNations ;
+
+  -- The UnitedNationsTrusteeshipCouncil is one of the six major organs of the 
+  -- UnitedNations, but it is currently inactive (though not dissolved) 
+  -- following the transition of the last UN trust territory to an independent 
+  -- government.
+  fun UnitedNationsTrusteeshipCouncil : Ind OrganizationOfNations ;
+
+  -- The Rector and 24 members of the 
+  -- UnitedNationsUniversity Council are appointed by the UN Secretary 
+  -- General and the Director General of UNESCO.
+  fun UnitedNationsUniversity : Ind InternationalOrganization ;
+
+  -- Provides services to farmers in the UnitedStates.
+  fun UnitedStatesDepartmentOfAgriculture : Ind GovernmentOrganization ;
+
+  -- Entrusted with the national security of the UnitedStates.
+  fun UnitedStatesDepartmentOfDefense : Ind GovernmentOrganization ;
+
+  -- One of the two legislatures that make up the UnitedStatesCongress.
+  fun UnitedStatesHouseOfRepresentatives : Ind LegislativeOrganization ;
+
+  -- The GovernmentOrganization of the 
+  -- UnitedStates that is entrusted with delivering the mail.
+  fun UnitedStatesPostalService : Ind GovernmentOrganization ;
+
+  -- One of the two legislatures that make up the UnitedStatesCongress.
+  fun UnitedStatesSenate : Ind LegislativeOrganization ;
+
+  -- The UniversalPostalUnion became 
+  -- affiliated with the UnitedNations on November 15, 1947.
+  fun UniversalPostalUnion : Ind OrganizationOfNations ;
+
+  -- UniversalSuffrageLaw is a law that 
+  -- enfranchises all citizens of a country who have achieved the applicable 
+  -- age of maturity (suffrageAgeMinumum).
+  fun UniversalSuffrageLaw : Ind SuffrageLaw ;
+
+  fun ViceChairman : Ind Position ;
+
+  fun VicePresident : Ind Position ;
+
+  fun VoterAgeRequirement : Class ;
+  fun VoterAgeRequirement_Class : SubClass VoterAgeRequirement SuffrageLaw ;
+
+  fun VoterCitizenshipRequirement : Ind SuffrageLaw ;
+
+  -- (VotingFn ?ELECTION) denotes the class of 
+  -- voting events that occur as part of the Election ?ELECTION.
+  fun VotingFn: El Election -> Desc Voting ;
+
+  fun WarCrimesProsecution : Ind (both AreaOfConcern TransnationalIssue) ;
+
+  fun WarsawPact : Ind OrganizationOfNations ;
+
+  fun WassenaarArrangement : Ind OrganizationOfNations ;
+
+  fun WeaponsInspection : Ind (both AreaOfConcern TransnationalIssue) ;
+
+  fun WestAfricanDevelopmentBank : Ind OrganizationOfNations ;
+
+  fun WestAfricanEconomicAndMonetaryUnion : Ind OrganizationOfNations ;
+
+  fun WesternEuropeanUnion : Ind OrganizationOfNations ;
+
+  fun WorldBankGroup : Ind OrganizationOfNations ;
+
+  -- The WorldConfederationOfLabor 
+  -- was previously named the International Federation of Christian Trade 
+  -- Unions. It was renamed on October 4, 1968.
+  fun WorldConfederationOfLabor : Ind OrganizationOfNations ;
+
+  fun WorldCustomsOrganization : Ind OrganizationOfNations ;
+
+  fun WorldFederationOfTradeUnions : Ind OrganizationOfNations ;
+
+  fun WorldFoodProgram : Ind OrganizationOfNations ;
+
+  fun WorldHealthOrganization : Ind OrganizationOfNations ;
+
+  fun WorldIntellectualPropertyOrganization : Ind OrganizationOfNations ;
+
+  fun WorldLaborIssues : Ind (both AreaOfConcern TransnationalIssue) ;
+
+  fun WorldMeteorologicalOrganization : Ind OrganizationOfNations ;
+
+  fun WorldTourismOrganization : Ind OrganizationOfNations ;
+
+  -- The WorldTradeOrganization 
+  -- succeeded the General Agreement on Tariff and Trade (GATT).
+  fun WorldTradeOrganization : Ind OrganizationOfNations ;
+
+  -- The ZanggerCommittee was established during the 1970s.
+  fun ZanggerCommittee : Ind OrganizationOfNations ;
+
+  -- (abbreviation ?STRING ?THING) means that 
+  -- ?STRING is an abbreviation used to refer to ?THING. Abbreviations include 
+  -- acronyms and other abbreviated forms.
+  fun abbreviation : El SymbolicString -> El Entity -> Formula ;
+
+  -- (administrativeCenter ?CENTER 
+  -- ?REGION) means that ?CENTER is the City (or other area) from which 
+  -- the larger GeopoliticalArea ?REGION is administered.
+  fun administrativeCenter : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
+
+  -- (agentOperatesInArea ?AGENT ?AREA) 
+  -- means that the individual or Organization ?AGENT operates in the 
+  -- GeographicArea ?AREA.
+  fun agentOperatesInArea : El Agent -> El GeographicArea -> Formula ;
+
+  -- (agreementAdoptionDate ?AGR ?TIME) 
+  -- means that the agreement ?AGR was adopted on the date indicated by ?TIME. 
+  -- For example, (agreementAdoptionDate ConstitutionOfTheUnitedStates 
+  -- (DayFn 17 (MonthFn September (YearFn 1787)))).
+  fun agreementAdoptionDate: El Proposition -> Desc TimePosition -> Formula ;
+
+  -- (agreementEffectiveDate ?AGR ?TIME) means that the agreement ?AGR
+  -- becomes effective on the date indicated by ?TIME. 
+  -- For example, (agreementEffectiveDate ConstitutionOfTheUnitedStates (DayFn 4 (MonthFn March (YearFn 1789)))).
+  fun agreementEffectiveDate: El Proposition -> Desc TimePosition -> Formula ;
+
+  -- (agreementEffectiveDuring ?AGR ?DATE) means that the agreement ?AGR is effective during the time 
+  -- indicated by ?DATE. The agreement may be effective for longer than ?DATE, 
+  -- but it is in effect at least throughout the time indicated by ?DATE.
+  fun agreementEffectiveDuring: El Proposition -> Desc TimePosition -> Formula ;
+
+  -- (agreementRevisionDate ?AGR ?DATE ?CHANGE) means that the agreement 
+  -- ?AGR was revised at the time indicated by ?DATE, with respect to the 
+  -- part ?CHANGE. Revisions cover additions and removals.
+  fun agreementRevisionDate: El Proposition -> Desc TimePosition -> El Proposition -> Formula ;
+
+  -- (aimOfOrganization ?GROUP ?DESCRIPTION) means that the Organization 
+  -- ?GROUP has the purpose ?DESCRIPTION, formulated as a quoted text.
+  fun aimOfOrganization : El Organization -> El SymbolicString -> Formula ;
+
+  -- (associateInOrganization ?AGENT ?GROUP) means that ?AGENT is associated in some way
+  -- with the Group ?GROUP. This includes participation as a guest or observer,
+  -- as well as being a full member. See member for a more specific relation.
+  fun associateInOrganization : El Agent -> El Group -> Formula ;
+
+  -- (associateWithStatus ?AGT ?STATUS ?GROUP) means that the Agent 
+  -- ?AGT has the RelationalAttribute ?STATUS in the Group ?GROUP. 
+  -- For example, (associateWithStatus UnitedStates PermanentMember UnitedNationsSecurityCouncil)
+  -- means that the &UnitedStates has the status of a permanent member in the U.N. Security Council.
+  fun associateWithStatus : El Agent -> El RelationalAttribute -> El Group -> Formula ;
+
+  -- (candidateForPosition ?ELECTION ?POSITION ?CONTENDER) means that in the Election ?ELECTION for 
+  -- ?POSITION, the Agent ?CONTENDER was one of the candidates.
+  fun candidateForPosition : El Election -> El SocialRole -> El Agent -> Formula ;
+
+  -- (capitalCity ?CITY ?REGION) means that the 
+  -- City ?CITY is the capital of the GeopoliticalArea ?REGION.
+  fun capitalCity : El City -> El GeopoliticalArea -> Formula ;
+
+  -- (cardinality ?SET ?NUMBER) means that there 
+  -- are ?NUMBER of elements in the SetOrClass ?SET.
+  fun cardinality : El SetOrClass -> El NonnegativeInteger -> Formula ;
+
+  -- (chamberOfLegislature ?CHAMBER ?LEGISLATURE) means that ?CHAMBER is a legislative body
+  -- within the ?LEGISLATURE.
+  fun chamberOfLegislature : El Organization -> El Organization -> Formula ;
+
+  -- (chanceryAddressInArea ?AREA1 ?ADDRESS ?AREA2) means that the address of the main foreign service 
+  -- organization of the GeopoliticalArea ?AREA1 for ?AREA2 is the SymbolicString ?ADDRESS.
+  fun chanceryAddressInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
+
+  -- (chanceryFAXNumberInArea ?AREA1 ?FAX ?AREA2) means that the FAX number of the main diplomatic office of 
+  -- the GeopoliticalArea ?AREA1 located in ?AREA2 is ?FAX.
+  fun chanceryFAXNumberInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
+
+  -- (chanceryMailingAddressInArea ?AREA1 ?ADDRESS ?AREA2) means that the mailing address of
+  -- the main foreign service organization of the GeopoliticalArea ?AREA1 located in ?AREA2 is
+  -- the SymbolicString ?ADDRESS.
+  fun chanceryMailingAddressInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
+
+  -- (chanceryTelephoneNumberInArea ?AREA1 ?TELEPHONE ?AREA2) means that the 
+  -- telephone number of the main diplomatic office of the GeopoliticalArea 
+  -- ?AREA1 located in ?AREA2 is ?TELEPHONE.
+  fun chanceryTelephoneNumberInArea : El GeopoliticalArea -> El SymbolicString -> El GeopoliticalArea -> Formula ;
+
+  -- (chiefOfDiplomaticMission ?AGENT1 ?PERSON ?RANK ?AGENT2) means that 
+  -- the chief diplomatic representative sent by the Agent ?AGENT1 to the 
+  -- Agent ?AGENT2 is ?PERSON, whose official position is ?RANK.
+  fun chiefOfDiplomaticMission : El Agent -> El Human -> El Position -> El Agent -> Formula ;
+
+  -- (chiefOfState ?POLITY ?ROLE ?PERSON) means 
+  -- that ?PERSON is the titular leader of the government of the 
+  -- GeopoliticalArea ?POLITY and represents it at official functions. The 
+  -- office held by this chief of state is ?ROLE (e.g., President, Queen, 
+  -- Chairman). Note: this term is defined as in the CIA World Fact Book.
+  fun chiefOfState : El GeopoliticalArea -> El Position -> El Human -> Formula ;
+
+  -- (chiefOfStateType ?NATION ?ROLE) means 
+  -- that the chiefOfState of the GeopoliticalArea ?NATION holds the 
+  -- Position ?ROLE in its government.
+  fun chiefOfStateType : El GeopoliticalArea -> El Position -> Formula ;
+
+  -- (commemoratesDate ?HOLIDAY ?DATE) means 
+  -- that instances of the Holiday ?HOLIDAY are observed to commemorate 
+  -- something that happened during the TimeInterval specified by ?DATE. 
+  -- For example, (commemoratesDate BastilleDay (DayFn 14 (MonthFn July (YearFn 1789)))).
+  fun commemoratesDate: El Holiday -> Desc TimeInterval -> Formula ;
+
+  -- (conventionalLongName ?NAME ?THING) 
+  -- means that the string ?NAME is the long form of the name conventionally 
+  -- used for ?THING.
+  fun conventionalLongName : El SymbolicString -> El Entity -> Formula ;
+
+  -- (conventionalShortName ?NAME ?THING) means that the string ?NAME is
+  -- the short form of the name conventionally used for ?THING. 
+  -- For a more specialized subset of short names, see abbreviation.
+  fun conventionalShortName : El SymbolicString -> El Entity -> Formula ;
+
+  -- (dateDissolved ?THING ?TIME) means that the Physical ?THING was dissolved,
+  -- disbanded, or superseded on the date indicated by ?TIME. 
+  -- For example, (dateDissolved UnitedNationsPreventiveDeploymentForce (DayFn 25 (MonthFn March (YearFn 1999)))).
+  fun dateDissolved: El Physical -> Desc TimePosition -> Formula ;
+
+  -- (dateEstablished ?THING ?TIME) means 
+  -- that the Physical ?THING was founded on the date indicated by ?TIME. 
+  -- For example, (dateEstablished UnitedNations (DayFn 26 (MonthFn June (YearFn 1945)))).
+  fun dateEstablished: El Physical -> Desc TimePosition -> Formula ;
+
+  -- (dependentAreaOfType ?AREA ?COUNTRY ?TYPE) means that 
+  -- the GeopoliticalArea ?AREA is a dependency of the independent Nation ?COUNTRY, 
+  -- administered as a unit of ?TYPE. 
+  -- For example, (dependentAreaOfType SaintHelena UnitedKingdom OverseasArea).
+  fun dependentAreaOfType: El GeopoliticalArea -> El GeopoliticalArea -> Desc GeopoliticalArea -> Formula ;
+
+  -- (diplomaticOrganizationType ?AGENT1 ?ORG ?AGENT2) means that the 
+  -- Agent ?AGENT1 has a diplomatic organization of the type ?ORG 
+  -- in Agent ?AGENT2. For example, 
+  -- (diplomaticOrganizationType UnitedStates Embassy France), or 
+  -- (diplomaticOrganizationType UnitedStates ConsulateGeneral 
+  -- ShanghaiChina).
+  fun diplomaticOrganizationType: El Agent -> Desc Organization -> El Agent -> Formula ;
+
+  -- (diplomaticRelations ?COUNTRY1 ?COUNTRY2) means that there are official 
+  -- diplomatic relations between the two Nations ?COUNTRY1 and ?COUNTRY2.
+  fun diplomaticRelations : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
+
+  -- (diplomaticRepresentationType ?AGENT1 ?RANK ?AGENT2) means that the 
+  -- Agent ?AGENT1 sends a representative with the Position ?RANK 
+  -- to the Agent ?AGENT2.
+  fun diplomaticRepresentationType : El Agent -> El Position -> El Agent -> Formula ;
+
+  -- (diplomaticRepresentativeInRole ?AGENT1 ?PERSON ?RANK ?AGENT2) means 
+  -- that the Agent ?AGENT1 sends the individual ?PERSON with the 
+  -- Position ?RANK as its representative to the Agent ?AGENT2. 
+  -- Note: it is possible for ?PERSON to be diplomatically accredited to more 
+  -- than one area. For example, currently the United States Ambassador to 
+  -- Papua New Guinea is also accredited to Vanuatu, and there is no embassy 
+  -- in Vanuatu.
+  fun diplomaticRepresentativeInRole : El Agent -> El Human -> El Position -> El Agent -> Formula ;
+
+  -- (electionDatePlannedForPosition ?AGENT ?TIME ?POSITION) means that the 
+  -- Agent ?AGENT (a Nation, Government, or Organization) plans to hold 
+  -- an Election on the date indicated by ?TIME for position(s) ?POSITION.
+  fun electionDatePlannedForPosition: El Agent -> Desc TimePosition -> El SocialRole -> Formula ;
+
+  -- (electionForOrganization ?ELECTION ?GROUP) means that in the 
+  -- Election ?ELECTION, candidates run for election to the organization ?GROUP.
+  fun electionForOrganization : El Election -> El Organization -> Formula ;
+
+  -- (electionForPosition ?ELECTION ?POSITION) means that in the Election ?ELECTION, 
+  -- candidates run for election to the role(s) ?POSITION.
+  fun electionForPosition : El Election -> El SocialRole -> Formula ;
+
+  -- (electionWinner ?ELECTION ?POSITION ?CONTENDER) means that in the Election ?ELECTION, 
+  -- ?POSITION was won by the Agent ?CONTENDER. Contenders may be either persons or political parties.
+  fun electionWinner : El Election -> El SocialRole -> El Agent -> Formula ;
+
+  -- (executiveBranch ?BRANCH ?ORG) means 
+  -- that the Organization ?BRANCH is the executive branch of the 
+  -- GeopoliticalArea or Organization ?ORG, that is, its executive offices 
+  -- and bodies, considered as a whole.
+  fun executiveBranch : El Organization -> El Agent -> Formula ;
+
+  -- (flagDescription ?AREA ?DESCRIPTION) 
+  -- means that the SymbolicString ?DESCRIPTION is a verbal description of 
+  -- the flag of the GeopoliticalArea ?AREA.
+  fun flagDescription : El GeopoliticalArea -> El SymbolicString -> Formula ;
+
+  -- (flagImage ?AREA ?POINTER) means that an image 
+  -- of the flag of the GeopoliticalArea ?AREA is found at the location given 
+  -- in the SymbolicString ?POINTER.
+  fun flagImage : El GeopoliticalArea -> El SymbolicString -> Formula ;
+
+  -- (governmentType ?BODY ?FORM) means that 
+  -- the GeopoliticalArea or Organization ?BODY has a government with 
+  -- characteristic(s) of the type ?FORM.
+  fun governmentType : El Agent -> El FormOfGovernment -> Formula ;
+
+  -- (headOfGovernment ?POLITY ?ROLE ?PERSON) means that ?PERSON is
+  -- the top administrative leader of the Government of the GeopoliticalArea ?POLITY, with 
+  -- authority for managing its day_to_day functions. The office held by this person 
+  -- is the Position ?ROLE (e.g., President, Prime Minister, Governor). 
+  -- Note: this term is defined as in the CIA World Fact Book.
+  fun headOfGovernment : El GeopoliticalArea -> El Position -> El Human -> Formula ;
+
+  -- (holidayTimeInArea ?AREA ?TIME) means that ?TIME is a particular time period during which Holiday 
+  -- is observed, thus during which normal government, business, and other services may not operate.
+  fun holidayTimeInArea : El GeopoliticalArea -> El TimePosition -> Formula ;
+
+  -- (independenceDate ?AREA ?DATE) means 
+  -- that the GeopoliticalArea ?AREA achieved its sovereignty on the date ?DATE.
+  -- For example, (independenceDate Afghanistan (DayFn 19 (MonthFn August (YearFn 1919)))).
+  fun independenceDate: El GeopoliticalArea -> Desc TimeInterval -> Formula ;
+
+  -- (judicialBranch ?BRANCH ?ORG) means that 
+  -- the Organization ?BRANCH is the judicial branch of the 
+  -- GeopoliticalArea or Organization ?ORG, that is, all of its courts and 
+  -- judicial offices, considered as a whole.
+  fun judicialBranch : El Organization -> El Agent -> Formula ;
+
+  -- (leaderPosition ?ORG ?ROLE)
+  -- means that in the organization ?ORG, the leader is the person 
+  -- who holds the Position ?ROLE in the organization.
+  fun leaderPosition : El Agent -> El Position -> Formula ;
+
+  -- (legalSystemType ?AREA ?TYPE) means 
+  -- that the GeopoliticalArea ?AREA has a legal system characterized by 
+  -- the LegalSystemAttribute ?TYPE. For example, (legalSystemType 
+  -- UnitedStates EnglishCommonLaw). A legal system may have multiple characteristics.
+  fun legalSystemType : El GeopoliticalArea -> El LegalSystemAttribute -> Formula ;
+
+  -- (legislativeBranch ?BRANCH ?ORG) means 
+  -- that the Organization ?BRANCH is the legislative branch of the 
+  -- GeopoliticalArea or Organization ?ORG.
+  fun legislativeBranch : El Organization -> El Agent -> Formula ;
+
+  -- (nationalCelebration ?AREA ?HOLIDAY) 
+  -- means that the primary day of national celebration in the 
+  -- GeopoliticalArea ?AREA is ?HOLIDAY. 
+  -- For example, (nationalCelebration Afghanistan AfghanIndependenceDay).
+  fun nationalCelebration: El GeopoliticalArea -> Desc Holiday -> Formula ;
+
+  -- (nationalHoliday ?AREA ?HOLIDAY) means 
+  -- that ?HOLIDAY is a national holiday observed in ?AREA. The 
+  -- GeopoliticalArea ?AREA observes a holiday on days specified as a 
+  -- ?HOLIDAY, during which national government offices and other facilities 
+  -- typically are closed. There may be multiple nationalHolidays. 
+  -- For example, (nationalHoliday UnitedStates UnitedStatesMemorialDay).
+  fun nationalHoliday: El GeopoliticalArea -> Desc Holiday -> Formula ;
+
+  -- (organizationalObjective ?AGENT ?FOCUS) means that the Agent ?AGENT has
+  -- significant aims and concerns characterized by the AreaOfConcern ?FOCUS.
+  fun organizationalObjective : El Agent -> El AreaOfConcern -> Formula ;
+
+  -- (politicalPartyOfCountry ?PARTY ?AREA) means that the PoliticalParty ?PARTY participates
+  -- in politics in the GeopoliticalArea ?AREA.
+  fun politicalPartyOfCountry : El PoliticalParty -> El GeopoliticalArea -> Formula ;
+
+  -- (primaryGeopoliticalSubdivision ?AREA ?COUNTRY) means that the 
+  -- GeopoliticalArea ?AREA is one of the first_order administrative 
+  -- divisions of the Nation ?COUNTRY. For example, in the United States, 
+  -- any of the fifty states. This does not include subordinate regions that 
+  -- have a lesser status, such as British Crown colonies, U.S. territories, 
+  -- or protectorates. See geopoliticalSubdivision.
+  fun primaryGeopoliticalSubdivision : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
+
+  -- (primaryGeopoliticalSubdivisionType ?COUNTRY ?TYPE) means that the 
+  -- first_order administrative divisons of ?COUNTRY are of the type ?TYPE.
+  fun primaryGeopoliticalSubdivisionType: El GeopoliticalArea -> Desc GeopoliticalArea -> Formula ;
+
+  -- (representativeAgentToAgent ?SENDER ?REP ?RECEIVER) means that 
+  -- the Agent ?SENDER has the Agent ?REP as its representative 
+  -- to the Agent ?RECEIVER. ?REP works for ?SENDER and is not assumed 
+  -- to be an impartial mediator.
+  fun representativeAgentToAgent : El Agent -> El Agent -> El Agent -> Formula ;
+
+  -- (roleAppointsRole ?ORG ?APPOINTER ?APPOINTED) means that in the Organization or
+  -- GeopoliticalArea ?ORG, the agent holding the SocialRole ?APPOINTER has the authority to 
+  -- appoint a person to fill the role ?APPOINTED.
+  fun roleAppointsRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
+
+  -- (roleApprovesRole ?ORG ?APPROVER ?APPOINTED) means that in the Organization or GeopoliticalArea ?ORG, 
+  -- the agent holding the SocialRole ?APPROVER has the authority to approve (or disapprove) of an appointee for
+  -- the role ?APPOINTED.
+  fun roleApprovesRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
+
+  -- (roleNominatesRole ?ORG ?NOMINATOR ?NOMINATED) means that in the Organization or GeopoliticalArea ?ORG, 
+  -- the agent holding the SocialRole ?NOMINATOR has the authority to nominate one or more persons to
+  -- fill the role ?NOMINATED.
+  fun roleNominatesRole : El Agent -> El SocialRole -> El SocialRole -> Formula ;
+
+  -- (seatsHeldInOrganization ?GROUP ?PARTY ?NUMBER) means that in the Organization ?GROUP, 
+  -- the PoliticalParty or other Agent ?AGENT, holds or controls this ?NUMBER of seats.
+  fun seatsHeldInOrganization : El Organization -> El Agent -> El NonnegativeInteger -> Formula ;
+
+  -- (seatsInOrganizationCount ?ORG ?NUMBER) means that there is a total ?NUMBER of seats in 
+  -- the Organization ?ORG.
+  fun seatsInOrganizationCount : El Organization -> El Integer -> Formula ;
+
+  -- (seatsWonInElection ?ELECTION ?AGENT ?NUMBER) means that in the Election ?ELECTION, 
+  -- the PoliticalParty ?AGENT won this ?NUMBER of seats.
+  fun seatsWonInElection : El Election -> El Agent -> El Integer -> Formula ;
+
+  -- (successorOrganization ?OLD ?NEW) 
+  -- means that the Organization ?OLD was transformed or merged into, or 
+  -- otherwise succeeded by, the Organization ?NEW.
+  fun successorOrganization : El Organization -> El Organization -> Formula ;
+
+  -- (suffrageAgeMaximum ?POLITY ?AGE) 
+  -- means that in the Organization or GeopoliticalArea ?POLITY, a person 
+  -- must be ?AGE or younger in order to vote in the elections of ?POLITY.
+  fun suffrageAgeMaximum : El Agent -> El TimeDuration -> Formula ;
+
+  -- (suffrageAgeMinimum ?POLITY ?AGE) 
+  -- means that in the Organization or GeopoliticalArea ?POLITY, a person 
+  -- must be ?AGE or older in order to vote in the elections of ?POLITY.
+  fun suffrageAgeMinimum : El Agent -> El TimeDuration -> Formula ;
+
+  -- (termLength ?ORG ?ROLE ?LENGTH) means 
+  -- that in the Organization or GeopoliticalArea ?ORG, the term of office 
+  -- for the position ?ROLE is the TimeDuration ?LENGTH.
+  fun termLength : El Agent -> El SocialRole -> El TimeDuration -> Formula ;
+
+  -- (voteFractionReceived ?ELECTION ?POSITION ?CONTENDER ?FRACTION) means 
+  -- that in the Election ?ELECTION for ?POSITION, the Agent ?CONTENDER 
+  -- received ?FRACTION of the votes cast. Contenders may be either persons or political parties.
+  fun voteFractionReceived : El Election -> El SocialRole -> El Agent -> El RealNumber -> Formula ;
+
 }
diff --git a/examples/SUMO/HigherOrder.gf b/examples/SUMO/HigherOrder.gf
deleted file mode 100644
--- a/examples/SUMO/HigherOrder.gf
+++ /dev/null
@@ -1,98 +0,0 @@
---# -path=.:englishExtended
-abstract HigherOrder = Merge ** {
-
-fun SingleValuedRelation : (c : Class) -> (El c -> Formula) -> Formula;
-def SingleValuedRelation c f = forall c (\x -> forall c (\y -> impl (and (f (var c c ? x)) (f (var c c ? y))) (equal (var c Entity ? x) (var c Entity ? y))));
-
-fun AntisymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def AntisymmetricRelation c f = forall c (\x -> forall c (\y -> impl (and (f (var c c ? x) (var c c ? y)) (f (var c c ? y) (var c c ? x))) (equal (var c Entity ? x) (var c Entity ? y))));
-
-fun IntentionalRelation : (c1,c2 : Class) -> (El c1 -> El c2 -> Formula) -> Formula ;
-def IntentionalRelation c1 c2 f = forall c1 (\x -> forall c2 (\y -> inScopeOfInterest (var c1 CognitiveAgent ? x) (var c2 Entity ? y)));
--- assume binary predicate, since it is mostly used for that
-
-fun ReflexiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def ReflexiveRelation c f = forall c (\x -> f (var c c ? x) (var c c ? x));
-
-fun SymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def SymmetricRelation c f = forall c (\x -> forall c(\y -> impl (f (var c c ? x) (var c c ? y)) (f (var c c ? y) (var c c ? x))));
-
-fun EquivalenceRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def EquivalenceRelation c f = and (and (ReflexiveRelation c f) (SymmetricRelation c f)) (TransitiveRelation c f);
-
-fun TransitiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def TransitiveRelation c f = forall c (\x -> forall c (\y -> forall c(\z -> impl (and (f (var c c ? x) (var c c ? y)) (f (var c c ? y) (var c c ? z))) (f (var c c ? x) (var c c ? z)))));
-
-fun IrreflexiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def IrreflexiveRelation c f = forall c (\x -> not (f (var c c ? x) (var c c ? x)));
-
-fun AsymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def AsymmetricRelation c f = and (AntisymmetricRelation c f) (IrreflexiveRelation c f);
-
-fun PropositionalAttitude : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def PropositionalAttitude c f = (AsymmetricRelation c f);
-
-fun ObjectAttitude : (c1,c2 : Class) -> (El c1 -> El c2 -> Formula) -> Formula ;
-def ObjectAttitude c1 c2 f = IntentionalRelation c1 c2 f ;
-
-fun IntransitiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def IntransitiveRelation c f = forall c (\x -> forall c (\y -> forall c(\z -> impl (and (f (var c c ? x) (var c c ? y)) (f (var c c ? y) (var c c ? z))) (not (f (var c c ? x) (var c c ? z))))));
-
-fun PartialOrderingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def PartialOrderingRelation c f = and (and (TransitiveRelation c f) (AntisymmetricRelation c f)) (ReflexiveRelation c f);
-
-fun TrichotomizingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def TrichotomizingRelation c f = forall c (\x -> forall c (\y ->
-or
-(or
-(and
-(and (f (var c c ? x) (var c c ? y))
-(not (equal (var c Entity ? x) (var c Entity ? y))))
-(not (f (var c c ? y) (var c c ? x))))
-(and
-(and (not (f (var c c ? x) (var c c ? y)))
-(equal (var c Entity ? x) (var c Entity ? y)))
-(not (f (var c c ? y) (var c c ? x)))))
-(and
-(and (f (var c c ? y) (var c c ? x))
-(not (equal (var c Entity ? x) (var c Entity ? y))))
-(not (f (var c c ? x) (var c c ? y))))));
-
-fun TotalOrderingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
-def TotalOrderingRelation c f = and (PartialOrderingRelation c f) (TrichotomizingRelation c f) ;
-
-fun OneToOneFunction : (c1, c2 : Class) -> (El c1 -> Ind c2) -> Formula ;
-def OneToOneFunction c1 c2 f = forall c1(\x -> 
-                                forall c1(\y -> impl (not(equal (var c1 Entity ? x) (var c1 Entity ? y))) (not (equal (el c2 Entity ? (f (var c1 c1 ? x))) (el c2 Entity ? (f (var c1 c1 ? y)))))));
-                                                         
-fun SequenceFunction : (c : Class) -> (El Integer -> Ind c) -> Formula ;
-def SequenceFunction c f = OneToOneFunction Integer c f ;
-
-fun AssociativeFunction : (c : Class) -> (El c -> El c -> Ind c) -> Formula ;
-def AssociativeFunction c f = forall c(\x -> 
-                               forall c(\y ->
-                                forall c(\z -> equal (el c Entity ? (f (var c c ? x) (el c c ? (f (var c c ? y) (var c c ? z))))) (el c Entity ? (f (el c c ? (f (var c c ? x) (var c c ? y))) (var c c ? z))))));
-
-fun CommutativeFunction : (c1,c2 : Class) -> (El c1 -> El c1 -> Ind c2) -> Formula ;
-def CommutativeFunction c1 c2 f = forall c1 (\x -> 
-                                   forall c1 (\y ->
-                                    equal (el c2 Entity ? (f (var c1 c1 ? x) (var c1 c1 ? y))) (el c2 Entity ? (f (var c1 c1 ? y) (var c1 c1 ? y)))));
-
-fun identityElement : (c : Class) -> (El c -> El c -> Ind c) -> El c -> Formula ;
-def identityElement c f elem = forall c(\x -> equal (el c Entity ? (f (var c c ? x) elem)) (var c Entity ? x));
-
-fun distributes : (c : Class) -> (El c -> El c -> Ind c) -> (El c -> El c -> Ind c) -> Formula ;
-def distributes c f g = forall c (\x -> forall c (\y -> forall c (\z -> equal (el c Entity ? (g (el c c ? (f (var c c ? x) (var c c ? y))) (var c c ? z))) (el c Entity ? (f (el c c ? (g (var c c ? x) (var c c ? z))) (el c c ? (g (var c c ? y) (var c c ? z))))))));
- 
-fun inverse : (c : Class) -> (El c -> El c -> Formula) -> (El c -> El c -> Formula) -> Formula ;
-def inverse c f g = forall c (\x -> forall c (\y -> equiv (f (var c c ? x) (var c c ? y)) (g (var c c ? y) (var c c ? x))));                                     
-
-fun subRelation2El : (c1,c2,c3,c4 : Class) -> (El c1 -> El c2 -> Formula) -> (El c3 -> El c4 -> Formula) -> Formula ;
-def subRelation2El c1 c2 c3 c4 f g = forall c1 (\x -> forall c2 (\y -> impl (f (var c1 c1 ? x) (var c2 c2 ? y)) (g (var c1 c3 ? x) (var c2 c4 ? y))));
-
-fun KappaFn : (c : Class) -> (Ind c -> Formula) -> Class ;
-
-
-
-
-};
diff --git a/examples/SUMO/HigherOrderEng.gf b/examples/SUMO/HigherOrderEng.gf
deleted file mode 100644
--- a/examples/SUMO/HigherOrderEng.gf
+++ /dev/null
@@ -1,21 +0,0 @@
---# -path=.:englishExtended
-concrete HigherOrderEng of HigherOrder = BasicEng ** open DictLangEng, DictEng, ParadigmsEng, ResEng, ParamBasic in {
- 
-lin
-
-
-AsymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA asymmetric_A) (UseN relation_N)))))) ;
-EquivalenceRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN equivalence_N) (MassNP (UseN relation_N))))))) ;
-IntransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intransitive_A) (UseN relation_N)))))) ;
--- OneToOneFunction c1 c2 f = mkPolSent(PredVP f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdvCN (UseN one_N) (PrepNP to_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN function_N)))))))) ;
-PartialOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
-SequenceFunction c f = mkPolSent(PredVP  f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sequence_N) (MassNP (UseN function_N))))))) ;
-ReflexiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA reflexive_A) (UseN relation_N)))))) ;
-SymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA symmetric_A) (UseN relation_N)))))) ;
-TotalOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
-TransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA transitive_A) (UseN relation_N)))))) ;
-IntentionalRelation c1 c2 f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intentional_A) (UseN relation_N)))))) ;
-subRelation2El c1 c2 c3 c4 f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep (sentToNoun g)))) ;
-identityElement c f elem = mkPolSent (PredVP elem (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN identity_N) (MassNP (UseN element_N)))))) (PrepNP part_Prep f))) ;
-inverse c f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN inverse_N)))) (PrepNP part_Prep (sentToNoun g)))) ;
-};
diff --git a/examples/SUMO/Merge.gf b/examples/SUMO/Merge.gf
--- a/examples/SUMO/Merge.gf
+++ b/examples/SUMO/Merge.gf
@@ -1,6829 +1,6379 @@
--- # -path=.:englishExtended
-abstract Merge = Basic ** {
-
-
-
--- Any AnatomicalStructure which 
--- is not normally found in the Organism of which it is a part, i.e. it is 
--- the result of a PathologicProcess. This class covers tumors, birth marks, 
--- goiters, etc.
-fun AbnormalAnatomicalStructure  : Class ;
-fun AbnormalAnatomicalStructure_Class : SubClass AbnormalAnatomicalStructure AnatomicalStructure ;
-
--- This is a PositionalAttribute derived from the 
--- up/down schema and not involving contact. Note that this means directly 
--- above, i.e., if one object is Above another object, then the projections 
--- of the two objects overlap.
-fun Above  : Ind AntiSymmetricPositionalAttribute ;
-
-
--- The value of (AbsoluteValueFn ?NUMBER) 
--- is the absolute value of the RealNumber ?NUMBER.
-fun AbsoluteValueFn  : El RealNumber -> Ind NonnegativeRealNumber ;
-
-
--- Properties or qualities as distinguished from any 
--- particular embodiment of the properties/qualities in a physical medium. 
--- Instances of Abstract can be said to exist in the same sense as mathematical 
--- objects such as sets and relations, but they cannot exist at a particular 
--- place and time without some physical encoding or embodiment.
-fun Abstract  : Class ;
-fun Abstract_Class : SubClass Abstract Entity ;
-
--- A UnaryFunction that maps a Class into 
--- the instance of Attribute that specifies the condition(s) for membership 
--- in the Class.
-fun AbstractionFn  : Class -> Ind Attribute ;
-
-
--- If ?NUMBER1 and ?NUMBER2 are Numbers, then 
--- (AdditionFn ?NUMBER1 ?NUMBER2) is the arithmetical sum of these 
--- numbers.
-fun AdditionFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- Used to assert that an object ?OBJ1 is close 
--- to, near or abutting ?OBJ2. This PositionalAttribute covers the 
--- following common sense notions: adjoins, abuts, is contiguous to, 
--- is juxtaposed, and is close to.
-fun Adjacent  : Ind SymmetricPositionalAttribute ;
-
-
--- One of the parts of speech. The Class of 
--- Words that conventionally denote Attributes of Objects.
-fun Adjective  : Class ;
-fun Adjective_Class : SubClass Adjective Word ;
-
--- One of the parts of speech. The Class of Words 
--- that conventionally denote Attributes of Processes.
-fun Adverb  : Class ;
-fun Adverb_Class : SubClass Adverb Word ;
-
--- A Disseminating whose purpose is to 
--- promote the sale of an Object represented in a Text or Icon 
--- (the advertisement).
-fun Advertising  : Class ;
-fun Advertising_Class : SubClass Advertising Disseminating ;
-
--- A GroupOfPeople whose members all have the 
--- same age.
-fun AgeGroup  : Class ;
-fun AgeGroup_Class : SubClass AgeGroup GroupOfPeople ;
-
--- Something or someone that can act on its own and 
--- produce changes in the world.
-fun Agent  : Class ;
-fun Agent_Class : SubClass Agent Object ;
-
--- Air is the gaseous stuff that makes up the 
--- atmosphere surrounding Earth.
-fun Air  : Class ;
-fun Air_Class : SubClass Air GasMixture ;
-
--- A Class containing all of the Attributes 
--- relating to the notions of possibility and necessity.
-fun AlethicAttribute  : Class ;
-fun AlethicAttribute_Class : SubClass AlethicAttribute ObjectiveNorm ;
-
--- A chiefly aquatic plant that contains chlorophyll, 
--- but does not form embryos during development and lacks vascular tissue.
-fun Alga  : Class ;
-fun Alga_Class : SubClass Alga NonFloweringPlant ;
-
--- Any BodyMotion which is accomplished by 
--- means of the legs of an Animal for the purpose of moving from one 
--- point to another.
-fun Ambulating  : Class ;
-fun Ambulating_Class : SubClass Ambulating (both BodyMotion Translocation) ;
-
-
--- SI electric current measure. Symbol: A. It is 
--- one of the base units in SI. It is defined as follows: the Ampere is 
--- that constant current which, if maintained in two straight parallel 
--- conductors of infinite length, of negligible circular cross_section, and 
--- placed 1 Meter apart in a vacuum, would produce between these conductors 
--- a force equal to 2*10^(_7) Newton per Meter of length.
-fun Ampere  : Ind CompositeUnitOfMeasure ;
-
-
--- A cold_blooded, smooth_skinned Vertebrate 
--- which characteristically hatches as an aquatic larva, breathing by 
--- gills. When mature, the Amphibian breathes with Lungs.
-fun Amphibian  : Class ;
-fun Amphibian_Class : SubClass Amphibian ColdBloodedVertebrate ;
-
--- Atomic mass unit. Symbol: u. It is the mass of 
--- the twelfth part of an atom of the Carbon 12 isotope.
-fun Amu  : Ind UnitOfMass ;
-
-
--- A normal or pathological part 
--- of the anatomy or structural organization of an Organism. This 
--- class covers BodyParts, as well as structures that are given off 
--- by Organisms, e.g. ReproductiveBodies.
-fun AnatomicalStructure  : Class ;
-fun AnatomicalStructure_Class : SubClass AnatomicalStructure OrganicObject ;
-
--- The value of an angle in a plane or in a 
--- solid.
-fun AngleMeasure  : Class ;
-fun AngleMeasure_Class : SubClass AngleMeasure ConstantQuantity ;
-
--- The Angstrom is a LengthMeasure. 
--- 1 Angstrom = 10^(_10) m
-fun Angstrom  : Ind UnitOfLength ;
-
-
--- A plane angle measure.
-fun AngularDegree  : Ind UnitOfAngularMeasure ;
-
-
--- Attributes that indicate whether an 
--- Organism is alive or not.
-fun AnimacyAttribute  : Class ;
-fun AnimacyAttribute_Class : SubClass AnimacyAttribute BiologicalAttribute ;
-
--- An Organism with eukaryotic Cells, and lacking 
--- stiff cell walls, plastids, and photosynthetic pigments.
-fun Animal  : Class ;
-fun Animal_Organism  : SubClassC Animal Organism (\ANIMAL -> and (forall AnimalSubstance (\SUBSTANCE -> part(var AnimalSubstance Object ? SUBSTANCE)(var Organism Object ? ANIMAL))) (forall AnimalAnatomicalStructure (\STRUCTURE -> part(var AnimalAnatomicalStructure Object ? STRUCTURE)(var Organism Object ? ANIMAL)))) ;
-
-
--- AnatomicalStructures that 
--- are possessed exclusively by Animals.
-fun AnimalAnatomicalStructure  : Class ;
-fun AnimalAnatomicalStructure_Class : SubClass AnimalAnatomicalStructure AnatomicalStructure ;
-
--- The subclass of Languages used by 
--- Animals other than Humans.
-fun AnimalLanguage  : Class ;
-fun AnimalLanguage_Class : SubClass AnimalLanguage Language ;
-
--- BodySubstances that are produced 
--- exclusively by Animals.
-fun AnimalSubstance  : Class ;
-fun AnimalSubstance_Class : SubClass AnimalSubstance BodySubstance ;
-
--- AntiSymmetricPositionalAttribute is the class of 
--- PositionalAttribute that hold in only one direction. I.e. two objects cannot
--- simulataneously be On each other.
-fun AntiSymmetricPositionalAttribute  : Class ;
-fun AntiSymmetricPositionalAttribute_Class : SubClass AntiSymmetricPositionalAttribute PositionalAttribute ;
-
--- Various Primates with no tails or only short 
--- tails.
-fun Ape  : Class ;
-fun Ape_Class : SubClass Ape Primate ;
-
--- The Class of all Months which are April.
-fun April  : Class ;
-fun April_Class : SubClass April Month ;
-
--- The Class of Mammals that dwell chiefly 
--- in the water. Includes whales, dolphins, manatees, seals, and walruses.
-fun AquaticMammal  : Class ;
-fun AquaticMammal_Class : SubClass AquaticMammal Mammal ;
-
--- A Class of Arthropods that includes 
--- ticks and spiders.
-fun Arachnid  : Class ;
-fun Arachnid_Class : SubClass Arachnid Arthropod ;
-
--- Measures of the amount of space in two 
--- dimensions.
-fun AreaMeasure  : Class ;
-fun AreaMeasure_Class : SubClass AreaMeasure FunctionQuantity ;
-
--- Any proposition which has the form of a deductive 
--- or inductive argument, i.e. a set of premises which, it is claimed, imply 
--- a conclusion.
-fun Argument  : Class ;
-fun Argument_Class : SubClass Argument Proposition ;
-
--- Artifacts that are created primarily for 
--- aesthetic appreciation. Note that this Class does not include 
--- most examples of architecture, which belong under StationaryArtifact.
-fun ArtWork  : Class ;
-fun ArtWork_Class : SubClass ArtWork Artifact ;
-
--- A Class of Invertebrate that includes 
--- Arachnids and Insects.
-fun Arthropod  : Class ;
-fun Arthropod_Class : SubClass Arthropod Invertebrate ;
-
--- A relatively short Text that either is unbound or is 
--- bound with other Articles in a Book.
-fun Article  : Class ;
-fun Article_Class : SubClass Article Text ;
-
--- A CorpuscularObject that is the product of a 
--- Making.
-fun Artifact  : Class ;
-fun Artifact_Class : SubClass Artifact CorpuscularObject ;
-
--- The subclass of Languages that are 
--- designed by Humans.
-fun ArtificialLanguage  : Class ;
-fun ArtificialLanguage_Class : SubClass ArtificialLanguage Language ;
-
--- Asexual Processes of biological 
--- reproduction.
-fun AsexualReproduction  : Class ;
-fun AsexualReproduction_Class : SubClass AsexualReproduction Replication ;
-
--- Attribute that applies to Organisms that are 
--- sleeping.
-fun Asleep  : Ind ConsciousnessAttribute ;
-
-
--- The Class of all astronomical 
--- objects of significant size. It includes SelfConnectedObjects 
--- like planets, stars, and asteroids, as well as Collections like 
--- nebulae, galaxies, and constellations. Note that the planet Earth 
--- is an AstronomicalBody, but every Region of Earth is a 
--- GeographicArea.
-fun AstronomicalBody  : Class ;
-fun AstronomicalBody_Class : SubClass AstronomicalBody Region ;
-
--- An extremely small unit of matter that retains its 
--- identity in Chemical reactions. It consists of an AtomicNucleus and 
--- Electrons surrounding the AtomicNucleus.
-fun Atom  : Class ;
-fun Atom_Class : SubClass Atom ElementalSubstance ;
-
--- MassMeasure that is also known as the gram_atom. 
--- Defined as the mass in grams of 1 Mole of pure substance. For example, 
--- 1 AtomGram of Carbon 12 will be 12 Grams of pure Carbon 12. 2 AtomGrams 
--- of the same substance will be 24 Grams of it. This is an unusual unit in 
--- that it is essentially 1 Mole of 'stuff' measured in grams, so that the 
--- actual value (i.e. mass) depends on the type of substance.
-fun AtomGram  : Ind UnitOfMass ;
-
-
--- The core of the Atom. It is composed of 
--- Protons and Neutrons.
-fun AtomicNucleus  : Class ;
-fun AtomicNucleus_Class : SubClass AtomicNucleus SubatomicParticle ;
-
--- A Process where one Object becomes attached 
--- to another Object. Note that this differs from Putting in that two 
--- things which are attached may already be in the same location. Note that 
--- Combining is different from Attaching in that the former applies to 
--- Substances, while the latter applies to CorpuscularObjects. Note too 
--- that Attaching is different from Putting in that one or both of the 
--- two things which are attached may or may not be moved from the location 
--- where they were combined.
-fun Attaching  : Class ;
-fun Attaching_Class : SubClass Attaching DualObjectProcess ;
-
--- A Device whose purpose is to attach one thing 
--- to something else, e.g. nails, screws, buttons, etc.
-fun AttachingDevice  : Class ;
-fun AttachingDevice_Class : SubClass AttachingDevice Device ;
-
--- A Maneuver in a ViolentContest where the 
--- agent attempts to inflict damage on the patient.
-fun Attack  : Class ;
-fun Attack_Class : SubClass Attack Maneuver ;
-
--- Qualities which we cannot or choose not to 
--- reify into subclasses of Object.
-fun Attribute  : Class ;
-fun Attribute_Class : SubClass Attribute Abstract ;
-
--- A sound level capable of being heard by a Human.
-fun Audible  : Ind SoundAttribute ;
-
-
--- The Class of all Months which are August.
-fun August  : Class ;
-fun August_Class : SubClass August Month ;
-
--- The class of PhysiologicProcesses of 
--- which there is not conscious awareness and control.
-fun AutonomicProcess  : Class ;
-fun AutonomicProcess_Class : SubClass AutonomicProcess PhysiologicProcess ;
-
--- Attribute that applies to Organisms that are 
--- neither Unconscious nor Asleep.
-fun Awake  : Ind ConsciousnessAttribute ;
-
-
--- A Function that maps an Object to the side 
--- that is opposite the FrontFn of the Object. Note that this is a 
--- partial function, since some Objects do not have sides, e.g. apples 
--- and spheres. Note too that the range of this Function is indefinite in 
--- much the way that ImmediateFutureFn and ImmediatePastFn are indefinite. 
--- Although this indefiniteness is undesirable from a theoretical standpoint, 
--- it does not have significant practical implications, since there is 
--- widespread intersubjective agreement about the most common cases.
-fun BackFn  : El SelfConnectedObject -> Ind SelfConnectedObject ;
-
-
--- A small, typically one_celled, prokaryotic 
--- Microorganism.
-fun Bacterium  : Class ;
-fun Bacterium_Class : SubClass Bacterium Microorganism ;
-
--- A ViolentContest between two or more military 
--- units within the context of a war. Note that this does not cover the 
--- metaphorical sense of 'battle', which simply means a struggle of some 
--- sort. This sense should be represented with the more general concept of 
--- Contest.
-fun Battle  : Class ;
-fun Battle_Class : SubClass Battle ViolentContest ;
-
--- SI activity measure. Symbol: Bq. It measures 
--- the amount of radioactivity contained in a given sample of matter. It is 
--- that quantity of a radioactive element in which there is one atomic 
--- disintegration per SecondDuration. Becquerel = s^(_1).
-fun Becquerel  : Ind CompositeUnitOfMeasure ;
-
-
--- A UnaryFunction that maps a TimeInterval to 
--- the TimePoint at which the interval begins.
-fun BeginFn  : El TimeInterval -> Ind TimePoint ;
-
-
--- A UnaryFunction that maps a GraphPath 
--- to the GraphNode that is the beginning of the GraphPath. Note that, 
--- unlike InitialNodeFn (which relates a GraphArc to a GraphNode), 
--- BeginNodeFn is a total function _ every GraphPath has a beginning.
-fun BeginNodeFn  : El GraphPath -> Ind GraphNode ;
-
-
--- A GroupOfPeople whose members share a belief 
--- or set of beliefs.
-fun BeliefGroup  : Class ;
-fun BeliefGroup_Class : SubClass BeliefGroup GroupOfPeople ;
-
--- This PositionalAttribute is derived from the 
--- up/down schema and may or may not involve contact. Note that this means 
--- directly below, i.e., if one object is Below another object, then the 
--- projections of the two objects overlap.
-fun Below  : Ind AntiSymmetricPositionalAttribute ;
-
-
--- A FinancialTransaction where an instance of 
--- CurrencyMeasure is exchanged for the possibility of winning a larger 
--- instance of CurrencyMeasure within the context of some sort of 
--- Game.
-fun Betting  : Class ;
-fun Betting_Class : SubClass Betting FinancialTransaction ;
-
--- Any Food that is ingested by Drinking. 
--- Note that this class is disjoint with the other subclasses of Food, 
--- i.e. Meat and FruitOrVegetable.
-fun Beverage  : Class ;
-fun Beverage_Class : SubClass Beverage Food ;
-
--- Elements from the number system with base 2. 
--- Every BinaryNumber is expressed as a sequence of the digits 1 and 0.
-fun BinaryNumber  : Class ;
-fun BinaryNumber_Class : SubClass BinaryNumber RealNumber ;
-
--- Attributes that apply specifically 
--- to instances of Organism.
-fun BiologicalAttribute  : Class ;
-fun BiologicalAttribute_Class : SubClass BiologicalAttribute InternalAttribute ;
-
--- A Process embodied in an Organism.
-fun BiologicalProcess  : Class ;
-fun BiologicalProcess_Class : SubClass BiologicalProcess InternalChange ;
-
--- A Substance that is 
--- capable of inducing a change in the structure or functioning of an 
--- Organism. This Class includes Substances used in the treatment, 
--- diagnosis, prevention or analysis of normal and abnormal body function. 
--- This Class also includes Substances that occur naturally in the body 
--- and are administered therapeutically. Finally, BiologicallyActiveSubstance 
--- includes Nutrients, most drugs of abuse, and agents that require special 
--- handling because of their toxicity.
-fun BiologicallyActiveSubstance  : Class ;
-fun BiologicallyActiveSubstance_Class : SubClass BiologicallyActiveSubstance Substance ;
-
--- A Vertebrate having a constant body temperature 
--- and characterized by the presence of feathers.
-fun Bird  : Class ;
-fun Bird_Class : SubClass Bird WarmBloodedVertebrate ;
-
--- The Process of being born.
-fun Birth  : Class ;
-fun Birth_Class : SubClass Birth OrganismProcess ;
-
--- One Bit of information. A one or a zero.
-fun Bit  : Ind UnitOfInformation ;
-
-
--- The Attribute of being black in color.
-fun Black  : Ind PrimaryColor ;
-
-
--- A fluid present in Animals that transports 
--- Nutrients to and waste products away from various BodyParts.
-fun Blood  : Class ;
-fun Blood_Class : SubClass Blood BodySubstance ;
-
--- The Attribute of being blue in color.
-fun Blue  : Ind PrimaryColor ;
-
-
--- Any BodyPart which contains an unfilled space, 
--- e.g. BodyVessels, the atria and ventricles of the heart, the lungs, etc.
-fun BodyCavity  : Class ;
-fun BodyCavity_Class : SubClass BodyCavity BodyPart ;
-
--- Any BodyPart which is a covering of another 
--- BodyPart or of an entire Organism. This would include the rinds of 
--- FruitOrVegetables and the skins of Animals.
-fun BodyCovering  : Class ;
-fun BodyCovering_Class : SubClass BodyCovering BodyPart ;
-
--- The place where two BodyParts 
--- meet or connect.
-fun BodyJunction  : Class ;
-fun BodyJunction_Class : SubClass BodyJunction BodyPart ;
-
--- Any Motion where the agent is an Organism 
--- and the patient is a BodyPart.
-fun BodyMotion  : Class ;
-fun BodyMotion_Class : SubClass BodyMotion Motion ;
-
--- A collection of Cells and Tissues which 
--- are localized to a specific area of an Organism and which are not 
--- pathological. The instances of this Class range from gross structures 
--- to small components of complex Organs.
-fun BodyPart  : Class ;
-fun BodyPart_Class : SubClass BodyPart AnatomicalStructure ;
-
--- The class of Attributes expressing 
--- configurations of bodies or parts of bodies of animals or humans, 
--- e.g. standing, sitting, kneeling, lying down, etc.
-fun BodyPosition  : Class ;
-fun BodyPosition_Class : SubClass BodyPosition BiologicalAttribute ;
-
--- Extracellular material and mixtures of 
--- cells and extracellular material that are produced, excreted or accreted 
--- by an Organism. Included here are Substances such as saliva, dental 
--- enamel, sweat, hormones, and gastric acid.
-fun BodySubstance  : Class ;
-fun BodySubstance_Class : SubClass BodySubstance Substance ;
-
--- Any tube_like structure which occurs naturally in 
--- an Organism and through which a BodySubstance can circulate.
-fun BodyVessel  : Class ;
-fun BodyVessel_Class : SubClass BodyVessel BodyCavity ;
-
--- The Class of Processes where a Substance is 
--- heated and converted from a Liquid to a Gas.
-fun Boiling  : Class ;
-fun Boiling_Class : SubClass Boiling StateChange ;
-
--- Rigid Tissue composed largely of calcium that makes up 
--- the skeleton of Vertebrates. Note that this Class also includes teeth.
-fun Bone  : Class ;
-fun Bone_Class : SubClass Bone (both AnimalSubstance Tissue) ;
-
-
--- A Text that has pages and is bound.
-fun Book  : Class ;
-fun Book_Class : SubClass Book Text ;
-
--- The subclass of Getting Processes where 
--- the agent gets something for a limited period of time with the expectation 
--- that it will be returned later (perhaps with interest).
-fun Borrowing  : Class ;
-fun Borrowing_Class : SubClass Borrowing Getting ;
-
--- The Process of respiration, by which oxygen 
--- is made available to an Animal. This covers processes of inhalation, 
--- exhalation, and alternations between the two.
-fun Breathing  : Class ;
-fun Breathing_Class : SubClass Breathing (both AutonomicProcess OrganismProcess) ;
-
-
--- An energy measure.
-fun BritishThermalUnit  : Ind CompositeUnitOfMeasure ;
-
-
--- The Class of StationaryArtifacts which are 
--- intended to house Humans and their activities.
-fun Building  : Class ;
-fun Building_Class : SubClass Building StationaryArtifact ;
-
--- A FinancialTransaction in which an instance of 
--- CurrencyMeasure is exchanged for an instance of Physical.
-fun Buying  : Class ;
-fun Buying_Class : SubClass Buying FinancialTransaction ;
-
--- One Byte of information. A Byte is eight 
--- Bits.
-fun Byte  : Ind UnitOfInformation ;
-
-
--- IntentionalPsychologicalProcesses which involve 
--- the consideration and/or manipulation of instances of Quantity.
-fun Calculating  : Class ;
-fun Calculating_Class : SubClass Calculating IntentionalPsychologicalProcess ;
-
--- A Calorie is an energy measure.
-fun Calorie  : Ind CompositeUnitOfMeasure ;
-
-
--- SI luminosity intensity measure. Symbol: cd. 
--- It is one of the base units in SI, and it is currently defined as 
--- follows: the Candela is the luminous intensity, in a given direction, 
--- of a source that emits monochromatic radiation of frequency 540*10^12 
--- Hertz and that has a radiant intensity in that direction of 1/683 
--- Watt per Steradian.
-fun Candela  : Ind CompositeUnitOfMeasure ;
-
-
--- The Class of Carnivores with completely 
--- separable toes, nonretractable claws, and long muzzles.
-fun Canine  : Class ;
-fun Canine_Class : SubClass Canine Carnivore ;
-
--- An element of living cells and a source of 
--- energy for Animals. This class includes both simple Carbohydrates, 
--- i.e. sugars, and complex Carbohydrates, i.e. starches.
-fun Carbohydrate  : Class ;
-fun Carbohydrate_Class : SubClass Carbohydrate Nutrient ;
-
-fun CardinalityFn  : El (either SetOrClass Collection) -> Ind Number ;
-
--- The Class of flesh_eating Mammals. Members 
--- of this Class typically have four or five claws on each paw. Includes 
--- cats, dogs, bears, racoons, and skunks.
-fun Carnivore  : Class ;
-fun Carnivore_Class : SubClass Carnivore Mammal ;
-
--- Transfer from one point to another by means of 
--- an Animal or Human.
-fun Carrying  : Class ;
-fun Carrying_Class : SubClass Carrying Transfer ;
-
--- (CeilingFn ?NUMBER) returns the smallest 
--- Integer greater than or equal to the RealNumber ?NUMBER.
-fun CeilingFn  : El RealNumber -> Ind Integer ;
-
-
--- The fundamental structural and functional unit of 
--- living Organisms.
-fun Cell  : Class ;
-fun Cell_Class : SubClass Cell BodyPart ;
-
--- A TemperatureMeasure. The freezing point 
--- and the boiling point of water are, respectively, 0 CelsiusDegrees and 100 
--- CelsiusDegrees.
-fun CelsiusDegree  : Ind (both TemperatureMeasure UnitOfMeasure) ;
-
-
--- (CenterOfCircleFn ?CIRCLE) denotes the 
--- GeometricPoint that is the center of the Circle ?CIRCLE.
-fun CenterOfCircleFn  : El Circle -> Ind GeometricPoint ;
-
-
--- Submultiple of Meter. Symbol: cm. It is 
--- the 100th part of a Meter
-fun Centimeter  : Ind UnitOfLength ;
-
-
--- A TimeZone that covers much of the 
--- midwestern United States.
-fun CentralTimeZone  : Ind TimeZone ;
-
-
--- A Text that confers a right or obligation 
--- on the holder of the Certificate. Note that the right or obligation 
--- need not be a legal one, as in the case of an academic diploma that grants 
--- certain privileges in the professional world.
-fun Certificate  : Class ;
-fun Certificate_Class : SubClass Certificate Text ;
-
--- The Class of Processes where 
--- ownership of something is transferred from one Agent to another.
-fun ChangeOfPossession  : Class ;
-fun ChangeOfPossession_Class : SubClass ChangeOfPossession SocialInteraction ;
-
--- An element of an alphabet, a set of numerals, etc. 
--- Note that a Character may or may not be part of a Language. Character 
--- is a subclass of SymbolicString, because every instance of Character is 
--- an alphanumeric sequence consisting of a single element.
-fun Character  : Class ;
-fun Character_Class : SubClass Character SymbolicString ;
-
--- The Class of ChemicalProcesses 
--- in which a CompoundSubstance breaks down into simpler products.
-fun ChemicalDecomposition  : Class ;
-fun ChemicalDecomposition_Class : SubClass ChemicalDecomposition (both ChemicalProcess Separating) ;
-
-
--- A ChemicalProcess occurs whenever 
--- chemical compounds (CompoundSubstances) are formed or decomposed. 
--- For example, reactants disappear as chemical change occurs, and products 
--- appear as chemical change occurs. In a chemical change a chemical 
--- reaction takes place. Catalysts in a ChemicalProcess may speed up the 
--- reaction, but aren't themselves produced or consumed. Examples: rusting of 
--- iron and the decomposition of water, induced by an electric current, to 
--- gaseous hydrogen and gaseous oxygen.
-fun ChemicalProcess  : Class ;
-fun ChemicalProcess_Class : SubClass ChemicalProcess InternalChange ;
-
--- The Class of ChemicalProcesses in 
--- which a CompoundSubstance is formed from simpler reactants.
-fun ChemicalSynthesis  : Class ;
-fun ChemicalSynthesis_Class : SubClass ChemicalSynthesis (both ChemicalProcess Combining) ;
-
-
--- The class of Ovals such that all GeometricPoints 
--- that make up the Circle are equidistant from a single GeometricPoint, 
--- known as the center of the Circle.
-fun Circle  : Class ;
-fun Circle_Class : SubClass Circle Oval ;
-
--- A LandArea of relatively small size, inhabited 
--- by a community of people, and having some sort of political structure. 
--- Note that this class includes both large cities and small settlements 
--- like towns, villages, hamlets, etc.
-fun City  : Class ;
-fun City_Class : SubClass City (both GeopoliticalArea LandArea) ;
-
-
--- The Class of IntentionalPsychologicalProcesses 
--- which involve attaching a name or category to a thing or set of things. 
--- Note that Classifying is distinguished from Learning by the fact 
--- that the latter covers the acquisition by a CognitiveAgent of any 
--- Proposition, while the former involves the assignment of a label 
--- or category.
-fun Classifying  : Class ;
-fun Classifying_Class : SubClass Classifying IntentionalPsychologicalProcess ;
-
--- Any TwoDimensionalFigure which 
--- has a well defined interior and exterior.
-fun ClosedTwoDimensionalFigure  : Class ;
-fun ClosedTwoDimensionalFigure_Class : SubClass ClosedTwoDimensionalFigure TwoDimensionalFigure ;
-
--- Artifact made out of fabrics and possibly other 
--- materials that are used to cover the bodies of Humans.
-fun Clothing  : Class ;
-fun Clothing_Class : SubClass Clothing WearableItem ;
-
--- Any GasMixture that is visible, e.g. Smoke produced 
--- by a fire or clouds of water vapor in the sky.
-fun Cloud  : Class ;
-fun Cloud_Class : SubClass Cloud GasMixture ;
-
--- A SentientAgent with responsibilities 
--- and the ability to reason, deliberate, make plans, etc. This is 
--- essentially the legal/ethical notion of a person. Note that, although 
--- Human is a subclass of CognitiveAgent, there may be instances of 
--- CognitiveAgent which are not also instances of Human. For example, 
--- chimpanzees, gorillas, dolphins, whales, and some extraterrestrials 
--- (if they exist) may be CognitiveAgents.
-fun CognitiveAgent  : Class ;
-fun CognitiveAgent_Class : SubClass CognitiveAgent SentientAgent ;
-
--- Vertebrates whose body temperature 
--- is not internally regulated.
-fun ColdBloodedVertebrate  : Class ;
-fun ColdBloodedVertebrate_Class : SubClass ColdBloodedVertebrate Vertebrate ;
-
--- Collections have members like Classes, but, 
--- unlike Classes, they have a position in space_time and members can be 
--- added and subtracted without thereby changing the identity of the 
--- Collection. Some examples are toolkits, football teams, and flocks 
--- of sheep.
-fun Collection  : Class ;
-fun Collection_Class : SubClass Collection Object ;
-
--- The Class of Attributes relating to the 
--- color of Objects.
-fun ColorAttribute  : Class ;
-fun ColorAttribute_Class : SubClass ColorAttribute InternalAttribute ;
-
--- The subclass of SurfaceChange where a 
--- ColorAttribute of the patient is altered. Note that the change in
--- color may apply to just part of the object.
-fun Coloring  : Class ;
-fun Coloring_Class : SubClass Coloring SurfaceChange ;
-
--- A Process where two or more SelfConnectedObjects 
--- are incorporated into a single SelfConnectedObject. Note that Combining 
--- is different from Attaching in that the former results in one of the objects 
--- being part of the other, while Attaching only results in the two objects 
--- being connected with one another. Note too that Combining is different 
--- from Putting in that one or both of the two things which are combined may or 
--- may not be moved from the location where they were combined.
-fun Combining  : Class ;
-fun Combining_Class : SubClass Combining DualObjectProcess ;
-
--- The Class of ChemicalProcesses in which an Object 
--- reacts with oxygen and gives off heat. This includes all Processes in which 
--- something is burning.
-fun Combustion  : Class ;
-fun Combustion_Class : SubClass Combustion ChemicalDecomposition ;
-
--- An Agent that provides products and/or 
--- services for a fee with the aim of making a profit.
-fun CommercialAgent  : Class ;
-fun CommercialAgent_Class : SubClass CommercialAgent Agent ;
-
--- Any FinancialTransaction by a 
--- CommercialAgent where the aim is to produce a profit.
-fun CommercialService  : Class ;
-fun CommercialService_Class : SubClass CommercialService (both FinancialTransaction ServiceProcess) ;
-
-
--- Instances of this Class commit the agent to some 
--- future course. For example, Bob promised Susan that he would be home by 11pm.
-fun Committing  : Class ;
-fun Committing_Class : SubClass Committing LinguisticCommunication ;
-
--- A SocialInteraction that involves 
--- the transfer of information between two or more CognitiveAgents. 
--- Note that Communication is closely related to, but essentially 
--- different from, ContentDevelopment. The latter involves the creation 
--- or modification of a ContentBearingObject, while Communication is 
--- the transfer of information for the purpose of conveying a message.
-fun Communication  : Class ;
-fun Communication_Class : SubClass Communication (both ContentBearingProcess SocialInteraction) ;
-
-
--- The Class of IntentionalPsychologicalProcesses 
--- which involve comparing, relating, contrasting, etc. the properties of 
--- two or more Entities.
-fun Comparing  : Class ;
-fun Comparing_Class : SubClass Comparing (both DualObjectProcess IntentionalPsychologicalProcess) ;
-
-
--- The complement of a given SetOrClass C is the 
--- SetOrClass of all things that are not instances of C. In other words, an 
--- object is an instance of the complement of a SetOrClass C just in case it 
--- is not an instance of C.
-fun ComplementFn  : El SetOrClass -> Ind SetOrClass ;
-
-
--- A Number that has the form: x + yi, where x 
--- and y are RealNumbers and i is the square root of _1.
-fun ComplexNumber  : Class ;
-fun ComplexNumber_Class : SubClass ComplexNumber Number ;
-
--- Instances
--- of this Class are UnitsOfMeasure defined by the functional
--- composition of other units, each of which might be a
--- CompositeUnitOfMeasure or a NonCompositeUnitOfMeasure.
-fun CompositeUnitOfMeasure  : Class ;
-fun CompositeUnitOfMeasure_Class : SubClass CompositeUnitOfMeasure UnitOfMeasure ;
-
--- The Class of Substances that contain 
--- two or more elements (ElementalSubstances), in definite proportion by weight. 
--- The composition of a pure compound will be invariant, regardless of the method 
--- of preparation. Compounds are composed of more than one kind of atom (element). 
--- The term molecule is often used for the smallest unit of a compound that still 
--- retains all of the properties of the compound. Examples: Table salt (sodium 
--- chloride, NaCl), sugar (sucrose, C_{12}H_{22}O_{11}), and water (H_2O).
-fun CompoundSubstance  : Class ;
-fun CompoundSubstance_Class : SubClass CompoundSubstance PureSubstance ;
-
--- The class of Languages designed for 
--- and interpreted by a computer.
-fun ComputerLanguage  : Class ;
-fun ComputerLanguage_Class : SubClass ComputerLanguage ArtificialLanguage ;
-
--- A set of instructions in a computer 
--- programming language that can be executed by a computer.
-fun ComputerProgram  : Class ;
-fun ComputerProgram_Class : SubClass ComputerProgram Procedure ;
-
--- The process of developing a 
--- ComputerProgram
-fun ComputerProgramming  : Class ;
-fun ComputerProgramming_Class : SubClass ComputerProgramming ContentDevelopment ;
-
--- The Class of Processes where an Object is 
--- cooled and converted from a Gas to a Liquid.
-fun Condensing  : Class ;
-fun Condensing_Class : SubClass Condensing StateChange ;
-
--- The Class of Keeping Processes where the 
--- patient is a Human or an Animal and is kept involuntarily. This covers 
--- caging, imprisonment, jailing, etc.
-fun Confining  : Class ;
-fun Confining_Class : SubClass Confining Keeping ;
-
--- Attributes that indicate whether 
--- an Organism is conscious or the qualitative degree of consciousness of 
--- an Organism.
-fun ConsciousnessAttribute  : Class ;
-fun ConsciousnessAttribute_Class : SubClass ConsciousnessAttribute StateOfMind ;
-
--- A ConstantQuantity
--- is a PhysicalQuantity that has a constant value, e.g. 3 Meters and
--- 5 HourDurations. The magnitude (see MagnitudeFn) of every
--- ConstantQuantity is a RealNumber. ConstantQuantity is
--- distinguished from FunctionQuantity, in that each instance of the
--- latter is formed through the mapping of one PhysicalQuantity to
--- another PhysicalQuantity. Each instance of ConstantQuantity is
--- expressed with the BinaryFunction MeasureFn, which takes a
--- Number and a UnitOfMeasure as arguments. For example, 3 Meters
--- is expressed as (MeasureFn 3 Meter). Instances of
--- ConstantQuantity form a partial order (see
--- PartialOrderingRelation) with the lessThan relation, since
--- lessThan is a RelationExtendedToQuantities and lessThan is
--- defined over the RealNumbers. The lessThan relation is not a
--- total order (see TotalOrderingRelation) over the class
--- ConstantQuantity since elements of some subclasses of
--- ConstantQuantity (such as length quantities) are incomparable to
--- elements of other subclasses of ConstantQuantity
--- (such as mass quantities).
-fun ConstantQuantity  : Class ;
-fun ConstantQuantity_Class : SubClass ConstantQuantity PhysicalQuantity ;
-
--- An ConstructedLanguage is a 
--- HumanLanguage that did not evolve spontaneously within a language
--- community, but rather had its core grammar and vocabulary invented by 
--- one or more language experts, often with an aim to produce a more 
--- grammatically regular language than any language that has evolved 
--- naturally. This Class includes languages like Esperanto that were 
--- created to facilitate international communication
-fun ConstructedLanguage  : Class ;
-fun ConstructedLanguage_Class : SubClass ConstructedLanguage (both ArtificialLanguage HumanLanguage) ;
-
-
--- The subclass of Making in which a 
--- StationaryArtifact is built.
-fun Constructing  : Class ;
-fun Constructing_Class : SubClass Constructing Making ;
-
--- Any SelfConnectedObject that expresses 
--- content. This content may be a Proposition, e.g. when the ContentBearingObject 
--- is a Sentence or Text, or it may be a representation of an abstract or 
--- physical object, as with an Icon, a Word or a Phrase.
-fun ContentBearingObject  : Class ;
-fun ContentBearingObject_Class : SubClass ContentBearingObject (both ContentBearingPhysical CorpuscularObject) ;
-
-
--- Any Object or Process that
--- expresses content. This covers Objects that contain a Proposition,
--- such as a book, as well as ManualSignLanguage, which may similarly
--- contain a Proposition.
-fun ContentBearingPhysical  : Class ;
-fun ContentBearingPhysical_Class : SubClass ContentBearingPhysical Physical ;
-
--- Any Process, for example 
--- ManualHumanLanguage, which may contain a Proposition.
-fun ContentBearingProcess  : Class ;
-fun ContentBearingProcess_Class : SubClass ContentBearingProcess ContentBearingPhysical ;
-
--- A subclass of IntentionalProcess in 
--- which content is modified, its form is altered or it is created anew.
-fun ContentDevelopment  : Class ;
-fun ContentDevelopment_Class : SubClass ContentDevelopment IntentionalProcess ;
-
--- A SocialInteraction where the agent and 
--- patient are CognitiveAgents who are trying to defeat one another. 
--- Note that this concept is often applied in a metaphorical sense in natural 
--- language, when we speak, e.g., of the struggle of plants for space or 
--- sunlight, or of bacteria for food resources in some environment.
-fun Contest  : Class ;
-fun Contest_Class : SubClass Contest SocialInteraction ;
-
--- A Class containing Attributes that are 
--- specific to participants in a Contest. In particular, these Attributes 
--- indicate the position of one of the agents in the Contest with respect 
--- to other agent(s) in the Contest. Some examples of these Attributes 
--- are winning, losing, won, lost, etc.
-fun ContestAttribute  : Class ;
-fun ContestAttribute_Class : SubClass ContestAttribute ObjectiveNorm ;
-
--- As defined in the CIA World Fact Book, 
--- Continent covers seven land masses: Africa, NorthAmerica, 
--- SouthAmerica, Antarctica, Europe, Asia, and Oceania. 
--- Note that Australia, counted as a continent in some other systems, 
--- is included in Oceania in the Fact Book. As a consequence, there 
--- is no Nation which is also a Continent.
-fun Continent  : Class ;
-fun Continent_Class : SubClass Continent LandArea ;
-
--- The Making of an instance of Food. Note 
--- that this can cover any preparation of Food, e.g. making a salad, 
--- cutting up fruit, etc. It does not necessarily involve the application 
--- of heat.
-fun Cooking  : Class ;
-fun Cooking_Class : SubClass Cooking Making ;
-
--- Any Decreasing Process where the PhysicalQuantity 
--- decreased is a TemperatureMeasure.
-fun Cooling  : Class ;
-fun Cooling_Class : SubClass Cooling Decreasing ;
-
--- The subclass of SocialInteraction where 
--- the participants involved work together for the achievement of a common 
--- goal.
-fun Cooperation  : Class ;
-fun Cooperation_Class : SubClass Cooperation SocialInteraction ;
-
--- A TimeZone which functions 
--- as the standard time zone. It is also known as Zulu time (in the military), 
--- Greenwich Mean Time, and the Western European time zone. Note that whenever 
--- a TimeZone is not specified, the TimePosition is understood to be with 
--- respect to the CoordinatedUniversalTimeZone.
-fun CoordinatedUniversalTimeZone  : Ind TimeZone ;
-
-
--- An Organization that has a special legal status 
--- that allows a group of persons to act as a CommercialAgent and that insulates 
--- the owners (shareholders) from many liabilities that might result from the 
--- corporation's operation.
-fun Corporation  : Class ;
-fun Corporation_Class : SubClass Corporation (both CommercialAgent Organization) ;
-
-
--- A SelfConnectedObject whose parts have 
--- properties that are not shared by the whole.
-fun CorpuscularObject  : Class ;
-fun CorpuscularObject_Class : SubClass CorpuscularObject SelfConnectedObject ;
-
--- (CosineFn ?DEGREE) returns the cosine of the 
--- PlaneAngleMeasure ?DEGREE. The cosine of ?DEGREE is the ratio of the 
--- side next to ?DEGREE to the hypotenuse in a right_angled triangle.
-fun CosineFn  : El PlaneAngleMeasure -> Ind RealNumber ;
-
-
--- SI electric charge measure. Symbol: C. It is 
--- the quantity of electric charge transported through a cross section of 
--- a conductor in an electric circuit during each SecondDuration by a 
--- current of 1 Ampere. Coulomb = s*A.
-fun Coulomb  : Ind CompositeUnitOfMeasure ;
-
-
--- Enumerating something. The Class of Calculating 
--- Processes where the aim is to determine the Number corresponding to the 
--- patient.
-fun Counting  : Class ;
-fun Counting_Class : SubClass Counting Calculating ;
-
--- A GeopoliticalArea that is larger than a city, 
--- usually encompassing several cities, and smaller than a StateOrProvince. 
--- Aside from City, this is the smallest geopolitical subdivision, and it is 
--- known by various names in various counties, e.g. parrish, commune, etc.
-fun County  : Class ;
-fun County_Class : SubClass County (both GeopoliticalArea LandArea) ;
-
-
--- The Class of Putting processes where the agent 
--- covers the patient, either completely or only partially, with something 
--- else.
-fun Covering  : Class ;
-fun Covering_Class : SubClass Covering Putting ;
-
--- The subclass of Process in which 
--- something is created. Note that the thing created is specified 
--- with the result CaseRole.
-fun Creation  : Class ;
-fun Creation_Class : SubClass Creation InternalChange ;
-
--- A Class of Arthropods that mainly dwells 
--- in water and has a segmented body and a chitinous exoskeleton. Includes 
--- lobsters, crabs, shrimp, and barnacles.
-fun Crustacean  : Class ;
-fun Crustacean_Class : SubClass Crustacean Arthropod ;
-
--- English unit of volume equal to 1/2 of a 
--- Pint.
-fun Cup  : Ind UnitOfVolume ;
-
-
--- Any element of the official currrency of some 
--- Nation. This covers both CurrencyBills and CurrencyCoins.
-fun Currency  : Class ;
-fun Currency_Class : SubClass Currency FinancialInstrument ;
-
--- Instances of this
--- subclass of ConstantQuantity are measures of monetaryValue
--- stated in terms of some UnitOfCurrency such as UnitedStatesDollar,
--- UnitedStatesCent, Lire, Yen, etc.
-fun CurrencyMeasure  : Class ;
-fun CurrencyMeasure_Class : SubClass CurrencyMeasure ConstantQuantity ;
-
--- A UnaryFunction that assigns a Graph the 
--- Class of GraphPaths that partition the graph into two separate 
--- graphs if cut. There may be more than one cutset for a given graph.
-fun CutSetFn : El Graph -> Desc GraphPath ;
-
-
--- The subclass of Poking Processes which 
--- involve a sharp instrument.
-fun Cutting  : Class ;
-fun Cutting_Class : SubClass Cutting Poking ;
-
--- The Class of Processes where the agent 
--- brings about a situation where the patient no longer functions normally 
--- or as intended.
-fun Damaging  : Class ;
-fun Damaging_Class : SubClass Damaging InternalChange ;
-
--- An Attribute which indicates that the associated 
--- Object contains some Liquid.
-fun Damp  : Ind SaturationAttribute ;
-
-
--- Any BodyMotion of Humans which is 
--- deliberately coordinated with music.
-fun Dancing  : Class ;
-fun Dancing_Class : SubClass Dancing BodyMotion ;
-
--- The Class of all calendar Days.
-fun Day  : Class ;
-fun Day_Class : SubClass Day TimeInterval ;
-
--- Time unit. 1 day = 24 hours.
-fun DayDuration  : Ind UnitOfDuration ;
-
-
--- A BinaryFunction that assigns a PositiveRealNumber and 
--- a subclass of Months to the Days within each Month corresponding to that 
--- PositiveRealNumber. For example, (DayFn 16 August) is the Class of all 
--- sixteenth days of August. For another example, (DayFn 9 Month) would return 
--- the class of all ninth days of any month. For still another example, (DayFn 18 
--- (MonthFn August (YearFn 1912))) denotes the 18th day of August 1912.
-fun DayFn : El PositiveInteger -> Desc Month -> Desc Day ;
-
-
--- This Attribute applies to Organisms that are 
--- not alive.
-fun Dead  : Ind (both AnimacyAttribute ConsciousnessAttribute) ;
-
-
--- The Process of dying.
-fun Death  : Class ;
-fun Death_Class : SubClass Death OrganismProcess ;
-
--- The Class of all Months which are December.
-fun December  : Class ;
-fun December_Class : SubClass December Month ;
-
--- The subclass of Selecting where the agent 
--- opts for one course of action out of a set of multiple possibilities 
--- that are open to him/her.
-fun Deciding  : Class ;
-fun Deciding_Class : SubClass Deciding Selecting ;
-
--- The Class of LinguisticCommunications that 
--- effect an institutional alteration when performed by competent authority. 
--- Some examples are nominating, marrying, and excommunicating.
-fun Declaring  : Class ;
-fun Declaring_Class : SubClass Declaring LinguisticCommunication ;
-
--- Converting a document or message that has previously 
--- been encoded (see Encoding) into a Language that can be understood by a 
--- relatively large number of speakers.
-fun Decoding  : Class ;
-fun Decoding_Class : SubClass Decoding Writing ;
-
--- Any QuantityChange where the PhysicalQuantity 
--- is decreased.
-fun Decreasing  : Class ;
-fun Decreasing_Class : SubClass Decreasing QuantityChange ;
-
--- An Argument which has the form of a 
--- deduction, i.e. it is claimed that the set of premises entails the 
--- conclusion.
-fun DeductiveArgument  : Class ;
-fun DeductiveArgument_Class : SubClass DeductiveArgument Argument ;
-
--- A Maneuver in a ViolentContest 
--- where the agent attempts to avoid being damaged.
-fun DefensiveManeuver  : Class ;
-fun DefensiveManeuver_Class : SubClass DefensiveManeuver Maneuver ;
-
--- Exhibiting something or a range of things 
--- before the public in a particular location. This would cover software 
--- demos, theatrical plays, lectures, dance and music recitals, museum 
--- exhibitions, etc.
-fun Demonstrating  : Class ;
-fun Demonstrating_Class : SubClass Demonstrating Disseminating ;
-
--- (DenominatorFn ?NUMBER) returns the 
--- denominator of the canonical reduced form of the RealNumber ?NUMBER.
-fun DenominatorFn  : El RealNumber -> Ind Integer ;
-
-
--- DensityFn maps an instance of MassMeasure 
--- and an instance of VolumeMeasure to the density represented by this 
--- proportion of mass and volume. For example, (DensityFn (MeasureFn 3 Gram) 
--- (MeasureFn 1 Liter)) represents the density of 3 grams per liter.
-fun DensityFn  : El MassMeasure -> El VolumeMeasure -> Ind FunctionQuantity;
-
-
--- A Class containing all of the Attributes 
--- relating to the notions of permission, obligation, and prohibition.
-fun DeonticAttribute  : Class ;
-fun DeonticAttribute_Class : SubClass DeonticAttribute ObjectiveNorm ;
-
--- The spatial analogue of Planning. Designing a 
--- Collection of Objects involves determining a placement of the Objects 
--- with respect to one another and perhaps other Objects as well, in order to 
--- satisfy a particular purpose.
-fun Designing  : Class ;
-fun Designing_Class : SubClass Designing IntentionalPsychologicalProcess ;
-
--- The subclass of Damagings in which 
--- the patient (or an essential element of the patient) is destroyed. 
--- Note that the difference between this concept and its superclass is solely 
--- one of extent.
-fun Destruction  : Class ;
-fun Destruction_Class : SubClass Destruction Damaging ;
-
--- A Process where the agent detaches one thing 
--- from something else. Note that Detaching is different from Separating 
--- in that the latter applies to Substances, while the former applies to 
--- CorpuscularObjects. Note too that Detaching is different from 
--- Removing in that one or both of the two things which are detached may or 
--- may not be moved from the location where they were attached.
-fun Detaching  : Class ;
-fun Detaching_Class : SubClass Detaching DualObjectProcess ;
-
--- Attributes that indicate the 
--- stage of development of an Organism.
-fun DevelopmentalAttribute  : Class ;
-fun DevelopmentalAttribute_Class : SubClass DevelopmentalAttribute BiologicalAttribute ;
-
--- A Device is an Artifact whose purpose is to 
--- serve as an instrument in a specific subclass of Process.
-fun Device  : Class ;
-fun Device_Class : SubClass Device Artifact ;
-
--- A Process that is carried out for 
--- the purpose of determining the nature of a DiseaseOrSyndrome.
-fun DiagnosticProcess  : Class ;
-fun DiagnosticProcess_Class : SubClass DiagnosticProcess Investigating ;
-
--- The Process by which Food that has been 
--- ingested is broken down into simpler chemical compounds and absorbed by 
--- the Organism.
-fun Digesting  : Class ;
-fun Digesting_Class : SubClass Digesting (both AutonomicProcess OrganismProcess) ;
-
-
--- The Class of directed graphs. A 
--- directed graph is a Graph in which all GraphArcs
--- have direction, i.e. every GraphArc has an initial node (see 
--- InitialNodeFn) and a terminal node (see TerminalNodeFn).
-fun DirectedGraph  : Class ;
-fun DirectedGraph_Class : SubClass DirectedGraph Graph ;
-
--- Instances of this Class urge some further action 
--- among the receivers. A Directing can be an Ordering, a Requesting or 
--- a Questioning.
-fun Directing  : Class ;
-fun Directing_Class : SubClass Directing LinguisticCommunication ;
-
--- The act of changing the direction in 
--- which the patient of the act is oriented.
-fun DirectionChange  : Class ;
-fun DirectionChange_Class : SubClass DirectionChange Motion ;
-
--- The subclass of PositionalAttributes 
--- that concern compass directions.
-fun DirectionalAttribute  : Class ;
-fun DirectionalAttribute_Class : SubClass DirectionalAttribute PositionalAttribute ;
-
--- A Stating in which two Agents have
--- contradictory statements. This is distinguished from Arguing in
--- that the statement in dispute may be a simple assertion, rather than
--- a chain of deduction, and that two entities must be disagreeing with
--- each other, whereas a single entity may craft an argument for a given
--- point of view, without the need for another agent to disagree with.
-fun Disagreeing  : Class ;
-fun Disagreeing_Class : SubClass Disagreeing Stating ;
-
--- Finding something that was sought. Note that 
--- this class is restricted to cases of discovering something Physical. 
--- For cases involving the acquisition of knowledge, the class Learning 
--- should be used.
-fun Discovering  : Class ;
-fun Discovering_Class : SubClass Discovering IntentionalPsychologicalProcess ;
-
--- A BiologicalAttribute which qualifies 
--- something that alters or interferes with a normal process, state or activity 
--- of an Organism. It is usually characterized by the abnormal functioning of 
--- one or more of the host's systems, parts, or Organs.
-fun DiseaseOrSyndrome  : Class ;
-fun DiseaseOrSyndrome_Class : SubClass DiseaseOrSyndrome BiologicalAttribute ;
-
--- Any Communication that involves a 
--- single agent and many destinations. This covers the release 
--- of a published book, broadcasting, a theatrical performance, giving 
--- orders to assembled troops, delivering a public lecture, etc.
-fun Disseminating  : Class ;
-fun Disseminating_Class : SubClass Disseminating Communication ;
-
--- If ?NUMBER1 and ?NUMBER2 are Numbers, then 
--- (DivisionFn ?NUMBER1 ?NUMBER2) is the result of dividing ?NUMBER1 by 
--- ?NUMBER2. Note that when ?NUMBER1 = 1 (DivisionFn ?NUMBER1 ?NUMBER2) 
--- is the reciprocal of ?NUMBER2. Note too that (DivisionFn ?NUMBER1 
--- ?NUMBER2) is undefined when ?NUMBER2 = 0.
-fun DivisionFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- The Process by which liquid Food, i.e. 
--- Beverages, are incorporated into an Animal.
-fun Drinking  : Class ;
-fun Drinking_Class : SubClass Drinking Ingesting ;
-
--- Controlling the direction and/or speed of a 
--- Vehicle. This includes navigating a ship, driving a car or truck, 
--- operating a train, etc.
-fun Driving  : Class ;
-fun Driving_Class : SubClass Driving Guiding ;
-
--- An Attribute which indicates that the associated 
--- Object contains no Liquid.
-fun Dry  : Ind SaturationAttribute ;
-
-
--- The Class of Processes where a Liquid is removed 
--- from an Object.
-fun Drying  : Class ;
-fun Drying_Class : SubClass Drying Removing ;
-
--- Any Process that requires two, 
--- nonidentical patients.
-fun DualObjectProcess  : Class ;
-fun DualObjectProcess_Class : SubClass DualObjectProcess Process ;
-
--- The compass direction of East.
-fun East  : Ind DirectionalAttribute ;
-
-
--- A TimeZone that covers much of the 
--- eastern United States.
-fun EasternTimeZone  : Ind TimeZone ;
-
-
--- The Process by which solid Food is 
--- incorporated into an Animal.
-fun Eating  : Class ;
-fun Eating_Class : SubClass Eating Ingesting ;
-
--- A BinaryFunction that maps a type of text 
--- (e.g. Agatha Christie's Murder_on_the_Orient_Express) and a number 
--- to the edition of the text type corresponding to the number.
-fun EditionFn : Desc ContentBearingObject -> El PositiveInteger -> Desc ContentBearingObject ;
-
-
--- A EducationalOrganization is 
--- an institution of learning. Some examples are public and private K_12 
--- schools, and colleges and universities.
-fun EducationalOrganization  : Class ;
-fun EducationalOrganization_Class : SubClass EducationalOrganization Organization ;
-
--- Any Process which is intended to result 
--- in Learning.
-fun EducationalProcess  : Class ;
-fun EducationalProcess_Class : SubClass EducationalProcess Guiding ;
-
--- The fertilized or unfertilized female ReproductiveBody 
--- of an Animal. This includes Bird and Reptile eggs, as well as mammalian 
--- ova.
-fun Egg  : Class ;
-fun Egg_Class : SubClass Egg (both AnimalAnatomicalStructure ReproductiveBody) ;
-
-
--- Election is the class of events conducted by an 
--- organization, in which qualified participants vote for officers, adopt 
--- resolutions, or settle other issues in that Organization.
-fun Election  : Class ;
-fun Election_Class : SubClass Election OrganizationalProcess ;
-
--- SubatomicParticles that surround the 
--- AtomicNucleus. They have a negative charge.
-fun Electron  : Class ;
-fun Electron_Class : SubClass Electron SubatomicParticle ;
-
--- The ElectronVolt is an energy measure. 
--- Symbol: eV. It is the kinetic energy acquired by an electron in passing 
--- through a potential difference of 1 Volt in a vacuum.
-fun ElectronVolt  : Ind CompositeUnitOfMeasure ;
-
-
--- The Class of PureSubstances that 
--- cannot be separated into two or more Substances by ordinary chemical 
--- (or physical) means. This excludes nuclear reactions. ElementalSubstances 
--- are composed of only one kind of atom. Examples: Iron (Fe), copper (Cu), 
--- and oxygen (O_2). ElementalSubstances are the simplest 
--- PureSubstances.
-fun ElementalSubstance  : Class ;
-fun ElementalSubstance_Class : SubClass ElementalSubstance PureSubstance ;
-
--- The stage of an Organism or an 
--- AnatomicalStructure that exists only before the Organism is born. 
--- Mammals, for example, have this Attribute only prior to 
--- their birth.
-fun Embryonic  : Ind DevelopmentalAttribute ;
-
-
--- The Class of Attributes that denote emotional 
--- states of Organisms.
-fun EmotionalState  : Class ;
-fun EmotionalState_Class : SubClass EmotionalState StateOfMind ;
-
--- Converting a document or message into a formal 
--- language or into a code that can be understood only by a relatively small 
--- body of Agents. Generally speaking, this hinders wide dissemination of 
--- the content in the original document or message.
-fun Encoding  : Class ;
-fun Encoding_Class : SubClass Encoding Writing ;
-
--- A UnaryFunction that maps a TimeInterval to 
--- the TimePoint at which the interval ends.
-fun EndFn  : El TimeInterval -> Ind TimePoint ;
-
-
--- A UnaryFunction that maps a GraphPath 
--- to the GraphNode that is the end of the GraphPath. Note that, unlike 
--- TerminalNodeFn (which relates a GraphArc to a GraphNode), 
--- EndNodeFn is a total function _ every GraphPath has a end.
-fun EndNodeFn  : El GraphPath -> Ind GraphNode ;
-
-
--- A fundamental concept that applies 
--- in many engineering domains. An EngineeringComponent is an element of 
--- a Device that is a physically whole object, such as one might 
--- see listed as standard parts in a catalog. The main difference betweeen 
--- EngineeringComponents and arbitrary globs of matter is that 
--- EngineeringComponents are object_like in a modeling sense. Thus, an 
--- EngineeringComponent is not an arbtrary subregion, but a part of a 
--- system with a stable identity.
-fun EngineeringComponent  : Class ;
-fun EngineeringComponent_Class : SubClass EngineeringComponent Device ;
-
--- An EngineeringConnection is an 
--- EngineeringComponent that represents a connection relationship between 
--- two other EngineeringComponents. It is a reification of the 
--- Predicate connectedEngineeringComponents. That means that whenever 
--- this Predicate holds between two EngineeringComponents, there exists an 
--- EngineeringConnection. The practical reason for reifying a relationship 
--- is to be able to attach other information about it. For example, one
--- might want to say that a particular connection is associated with some 
--- shared parameters, or that it is of a particular type. 
--- EngineeringConnections are EngineeringComponents and can therefore be 
--- an engineeringSubcomponent of other EngineeringComponents. However, 
--- to provide for modular regularity in component systems, 
--- EngineeringConnections cannot be connected. For each pair of 
--- EngineeringComponents related by connectedEngineeringComponents, there 
--- exists at least one EngineeringConnection. However, that object may not 
--- be unique, and the same EngineeringConnection may be associated with 
--- several pairs of EngineeringComponents.
-fun EngineeringConnection  : Class ;
-fun EngineeringConnection_Class : SubClass EngineeringConnection EngineeringComponent ;
-
--- The universal class of individuals. This is the root 
--- node of the ontology.
-fun Entity  : Class ;
-
-
--- A complex Protein that is produced by living 
--- cells and which catalyzes specific biochemical reactions. There are six 
--- main types of enzymes: oxidoreductases, transferases, hydrolases, 
--- lyases, isomerases, and ligases.
-fun Enzyme  : Class ;
-fun Enzyme_Class : SubClass Enzyme Protein ;
-
--- A GroupOfPeople whose members originate 
--- from the same GeographicArea or share the same Language and/or cultural 
--- practices.
-fun EthnicGroup  : Class ;
-fun EthnicGroup_Class : SubClass EthnicGroup GroupOfPeople ;
-
--- A currency measure. 1 EuroCent is equal to .01 
--- EuroDollars.
-fun EuroCent  : Ind UnitOfCurrency ;
-
-
--- A currency measure of most European Union countries.
-fun EuroDollar  : Ind UnitOfCurrency ;
-
-
--- The Class of Processes where a Substance is 
--- converted from a Liquid to a Gas at a temperature below its
--- Boiling point.
-fun Evaporating  : Class ;
-fun Evaporating_Class : SubClass Evaporating StateChange ;
-
--- An Integer that is evenly divisible 
--- by 2.
-fun EvenInteger  : Class ;
-fun EvenInteger_Class : SubClass EvenInteger Integer ;
-
--- The system of Bones that are on the Outside of an organism and 
--- make up the supporting structure of many Invertebrates.
-fun Exoskeleton  : Class ;
-fun Exoskeleton_Class : SubClass Exoskeleton (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Investigating the truth of a Proposition 
--- by constructing and observing a trial. Note that the trial may be either 
--- controlled or uncontrolled, blind or not blind.
-fun Experimenting  : Class ;
-fun Experimenting_Class : SubClass Experimenting Investigating ;
-
--- An Argument where the conclusion is an 
--- observed fact and the premises are other facts which collectively imply 
--- the conclusion. Note that this is the they hypothetico_deductive model 
--- of explanation.
-fun Explanation  : Class ;
-fun Explanation_Class : SubClass Explanation DeductiveArgument ;
-
--- (ExponentiationFn ?NUMBER ?INT) returns 
--- the RealNumber ?NUMBER raised to the power of the Integer ?INT.
-fun ExponentiationFn  : El Quantity -> El Integer -> Ind Quantity ;
-
-
--- Instances of this Class express a state of the agent. 
--- For example, Jane thanked Barbara for the present she had given her. The thanking 
--- in this case expresses the gratitude of Jane towards Barbara. Note that Expressing, 
--- unlike the other speech act types, is not a subclass of LinguisticCommunication. 
--- This is because emotions, for example, can be expressed without language, e.g. by 
--- smiling.
-fun Expressing  : Class ;
-fun Expressing_Class : SubClass Expressing Communication ;
-
--- A UnaryFunction that maps an Attribute 
--- into the Class whose condition for membership is the Attribute.
-fun ExtensionFn  : El Attribute -> Class ;
-
-
--- Artifacts that are created by weaving together 
--- natural or synthetic fibers or by treating the skins of certain sorts of 
--- Animals. Note that this Class includes articles that are created by 
--- stitching together various types of fabrics, e.g. bedspreads. On the other 
--- hand, Clothing is not a subclass of Fabric, because many clothing items 
--- contain elements that are not fabrics.
-fun Fabric  : Class ;
-fun Fabric_Class : SubClass Fabric Artifact ;
-
--- The class of Texts that purport to 
--- reveal facts about the world. Such texts are often known as information 
--- or as non_fiction. Note that something can be an instance of 
--- FactualText, even if it is wholly inaccurate. Whether something 
--- is a FactualText is determined by the beliefs of the agent creating 
--- the text.
-fun FactualText  : Class ;
-fun FactualText_Class : SubClass FactualText Text ;
-
--- A UnitOfTemperature that is commonly 
--- used in the United States. On the Fahrenheit scale, the freezing point 
--- of water is 32 FahrenheitDegrees, and the boiling point of water is 
--- 212 FahrenheitDegrees.
-fun FahrenheitDegree  : Ind UnitOfTemperature ;
-
-
--- Falling is the class of events in 
--- which something moves from a higher location to a lower location 
--- under the force of gravity.
-fun Falling  : Class ;
-fun Falling_Class : SubClass Falling (both MotionDownward Translocation) ;
-
-
--- The TruthValue of being false.
-fun False  : Ind TruthValue ;
-
-
--- A GroupOfPeople whose members bear 
--- familyRelations to one another.
-fun FamilyGroup  : Class ;
-fun FamilyGroup_Class : SubClass FamilyGroup GroupOfPeople ;
-
--- SI capacitance measure. Symbol: F. It is the 
--- capacitance of a capacitator between the plates of which there appears 
--- a difference of potential of 1 Volt when it is charged by a quantity 
--- of electricity equal to 1 Coulomb. Farad = C/V = 
--- m^(_2)*kg(_1)*s^4*A^2.
-fun Farad  : Ind CompositeUnitOfMeasure ;
-
-
--- Nonrigid Tissue that is composed largely of 
--- fat cells.
-fun FatTissue  : Class ;
-fun FatTissue_Class : SubClass FatTissue Tissue ;
-
--- The Class of all Months which are February.
-fun February  : Class ;
-fun February_Class : SubClass February Month ;
-
--- The Class of Carnivores with completely
--- separable toes, slim bodies, and rounded heads. All felines other than
--- the cheetah have retractable claws.
-fun Feline  : Class ;
-fun Feline_Class : SubClass Feline Carnivore ;
-
--- An Attribute indicating that an Organism is 
--- female in nature.
-fun Female  : Ind SexAttribute ;
-
-
--- A NonFloweringPlant that contains vascular tissue. 
--- This class includes true ferns, as well as horsetails, club mosses, and 
--- whisk ferns.
-fun Fern  : Class ;
-fun Fern_Class : SubClass Fern NonFloweringPlant ;
-
--- The class of Texts that purport to 
--- be largely a product of the author's imagination, i.e. the author 
--- does not believe that most of the content conveyed by the text is 
--- an accurate depiction of the real world. Note that something can 
--- be an instance of FictionalText, even if it is completely true. 
--- Whether something is a FictionalText is determined by the beliefs 
--- of the agent creating the text.
-fun FictionalText  : Class ;
-fun FictionalText_Class : SubClass FictionalText Text ;
-
--- An academic or applied discipline with 
--- recognized experts and with a core of accepted theory or practice. Note 
--- that FieldOfStudy is a subclass of Proposition, because a 
--- FieldOfStudy is understood to be a body of abstract, informational 
--- content, with varying degrees of certainty attached to each element of 
--- this content.
-fun FieldOfStudy  : Class ;
-fun FieldOfStudy_Class : SubClass FieldOfStudy Proposition ;
-
--- Something is Fillable if it can be filled by 
--- something else. Note that 'filled' here means perfectly filled.
--- Something is fillable just in case it is part of a hole, i.e., 
--- fillability is an exclusive property of holes and their parts.
-fun Fillable  : Ind ShapeAttribute ;
-
-
--- A document having monetary value 
--- or recording a monetary transaction
-fun FinancialInstrument  : Class ;
-fun FinancialInstrument_Class : SubClass FinancialInstrument Certificate ;
-
--- A Transaction where an instance 
--- of Currency is exchanged for something else.
-fun FinancialTransaction  : Class ;
-fun FinancialTransaction_Class : SubClass FinancialTransaction Transaction ;
-
--- A Set containing a finite number of elements.
-fun FiniteSet  : Class ;
-fun FiniteSet_Class : SubClass FiniteSet Set ;
-
--- A cold_blooded aquatic Vertebrate characterized by 
--- fins and breathing by gills. Included here are Fish having either a bony 
--- skeleton, such as a perch, or a cartilaginous skeleton, such as a shark. 
--- Also included are those Fish lacking a jaw, such as a lamprey or 
--- hagfish.
-fun Fish  : Class ;
-fun Fish_Class : SubClass Fish ColdBloodedVertebrate ;
-
--- The Attribute of being flammable at normal temperatures
--- (i.e. not while a Plasma).
-fun Flammable  : Ind PhysicalAttribute ;
-
-
--- (FloorFn ?NUMBER) returns the largest Integer 
--- less than or equal to the RealNumber ?NUMBER.
-fun FloorFn  : El RealNumber -> Ind Integer ;
-
-
--- FlowRegion is a class of things whose 
--- boundaries are relatively stable but whose constitutive material is continuously moving 
--- through the region itself and being replaced by 
--- other, similar material. Each FlowRegion is constituted by a stream 
--- of matter moving as a whole. A FlowRegion may be liquid or gaseous. 
--- A wind may be considered as a Process or as a FlowRegion, similarly 
--- an OceanCurrent or a WaterWave. The motion process associated with a 
--- FlowRegion F is denoted by (FlowFn F). Note that certain 
--- properties belong to the FlowRegion itself (e.g., mass, length, volume, 
--- temperature, and speed or velocity of the region moving as a whole), 
--- while other properties of interest belong to the Motion of its 
--- constitutive stuff (e.g., velocity, direction). The motion of 
--- a FlowRegion as a whole (e.g., JetStream moves within the atmosphere) 
--- is distinguished from the motion of the pieces of stuff constituting the 
--- FlowRegion. See FlowFn and FlowRegionFn.
-fun FlowRegion  : Class ;
-
-
--- A Plant that produces seeds and flowers. 
--- This class includes trees, shrubs, herbs, and flowers.
-fun FloweringPlant  : Class ;
-fun FloweringPlant_Class : SubClass FloweringPlant Plant ;
-
--- Fluid is the PhysicalState attribute of an 
--- Object that does not have a fixed shape and thus tends to flow or to 
--- conform to the shape of a container.
-fun Fluid  : Ind PhysicalState ;
-
-
--- Any SelfConnectedObject containing Nutrients, 
--- such as carbohydrates, proteins, and fats, that can be ingested by a 
--- living Animal and metabolized into energy and body tissue.
-fun Food  : Class ;
-fun Food_Class : SubClass Food SelfConnectedObject ;
-
--- English length unit of feet.
-fun FootLength  : Ind UnitOfLength ;
-
-
--- The Class of Processes where an Object is 
--- cooled and converted from a Liquid to a Solid.
-fun Freezing  : Class ;
-fun Freezing_Class : SubClass Freezing StateChange ;
-
--- A subclass of
--- TimeDependentQuantity, instances of which are measures of the
--- frequency with which some Process occurs.
-fun FrequencyMeasure  : Class ;
-fun FrequencyMeasure_Class : SubClass FrequencyMeasure TimeDependentQuantity ;
-
--- A WaterArea whose Water is not saline, 
--- e.g. most rivers and lakes.
-fun FreshWaterArea  : Class ;
-fun FreshWaterArea_Class : SubClass FreshWaterArea WaterArea ;
-
--- The Class of all calendar Fridays.
-fun Friday  : Class ;
-fun Friday_Class : SubClass Friday Day ;
-
--- A Function that maps an Object to the side 
--- that generally receives the most attention or that typically faces the 
--- direction in which the Object moves. Note that this is a partial 
--- function, since some Objects do not have sides, e.g. apples and 
--- spheres. Note too that the range of this Function is indefinite in 
--- much the way that ImmediateFutureFn and ImmediatePastFn are indefinite. 
--- Although this indefiniteness is undesirable from a theoretical standpoint, 
--- it does not have significant practical implications, since there is 
--- widespread intersubjective agreement about the most common cases.
-fun FrontFn  : El SelfConnectedObject -> Ind SelfConnectedObject ;
-
-
--- Any fruit or vegetable, i.e. a 
--- ripened ReproductiveBody of a Plant. Note that FruitOrVegetable 
--- is not a subclass of Food, because some fruits, e.g. poisonous 
--- berries, are not edible.
-fun FruitOrVegetable  : Class ;
-fun FruitOrVegetable_Class : SubClass FruitOrVegetable (both PlantAnatomicalStructure ReproductiveBody) ;
-
-
--- The stage of an Organism when it has reached 
--- the end of its growth phase.
-fun FullyFormed  : Ind DevelopmentalAttribute ;
-
-
--- A FunctionQuantity
--- is a PhysicalQuantity that is returned by a Function that maps
--- from one or more instances of ConstantQuantity to another instance
--- of ConstantQuantity. For example, the velocity of a particle would
--- be represented by a FunctionQuantity relating values of time (which
--- are instances of ConstantQuantity) to values of distance
--- (also instances of ConstantQuantity). Note that all elements of the
--- range of the Function corresponding to a FunctionQuantity have the
--- same physical dimension as the FunctionQuantity itself.
-fun FunctionQuantity  : Class ;
-fun FunctionQuantity_Class : SubClass FunctionQuantity PhysicalQuantity ;
-
--- Any instance of Giving where the patient is an 
--- instance of Currency. Note that this class covers both financing, e.g. 
--- where a firm funds a software company with venture capital with the agreement 
--- that a certain percentage of the profits on the investment will be returned 
--- to the firm, and instances of UnilateralGiving, e.g. providing a tuition 
--- waiver and/or a stipend to a student as part of scholarship or fellowship.
-fun Funding  : Class ;
-fun Funding_Class : SubClass Funding Giving ;
-
--- A eukaryotic Organism characterized by the 
--- absence of chlorophyll and the presence of rigid cell walls. Included 
--- here are both slime molds and true fungi such as yeasts, molds, mildews, 
--- and mushrooms.
-fun Fungus  : Class ;
-fun Fungus_Class : SubClass Fungus Organism ;
-
--- A UnaryFunction that maps a TimePosition 
--- to the TimeInterval which it meets and which ends at 
--- PositiveInfinity.
-fun FutureFn  : El TimePosition -> Ind TimeInterval ;
-
-
--- A Contest whose purpose is the 
--- enjoyment/stimulation of the participants or spectators of the Game.
-fun Game  : Class ;
-fun Game_Class : SubClass Game (both Contest RecreationOrExercise) ;
-
-
--- An Object has the Attribute of Gas if it has 
--- neither a fixed volume nor a fixed shape.
-fun Gas  : Ind PhysicalState ;
-
-
--- Any Mixture that satisfies two conditions, 
--- viz. it is made up predominantly of things which are a Gas and any 
--- component other than Gas in the Mixture is in the form of fine particles 
--- which are suspended in the Gas.
-fun GasMixture  : Class ;
-fun GasMixture_Class : SubClass GasMixture Mixture ;
-
--- Any Motion where the patient is a 
--- Gas. This class would cover, in particular, the motion of 
--- Air, e.g. a breeze or wind.
-fun GasMotion  : Class ;
-fun GasMotion_Class : SubClass GasMotion Motion ;
-
--- A UnaryFunction that takes a 
--- SetOrClass of Classes as its single argument and returns a SetOrClass which 
--- is the intersection of all of the Classes in the original SetOrClass, i.e. 
--- the SetOrClass containing just those instances which are instances of all 
--- instances of the original SetOrClass.
-fun GeneralizedIntersectionFn : Desc SetOrClass -> Ind SetOrClass ;
-
-
--- A UnaryFunction that takes a SetOrClass 
--- of Classes as its single argument and returns a SetOrClass which is the 
--- merge of all of the Classes in the original SetOrClass, i.e. the SetOrClass 
--- containing just those instances which are instances of an instance of the 
--- original SetOrClass.
-fun GeneralizedUnionFn : Desc SetOrClass -> Ind SetOrClass ;
-
-
--- A geographic location, generally having 
--- definite boundaries. Note that this differs from its immediate superclass 
--- Region in that a GeographicArea is a three_dimensional Region of the 
--- earth. Accordingly, all astronomical objects other than earth and all 
--- one_dimensional and two_dimensional Regions are not classed under 
--- GeographicArea.
-fun GeographicArea  : Class ;
-fun GeographicArea_Class : SubClass GeographicArea Region ;
-
--- The class of activities that 
--- are caused by geological forces and affect geological features, 
--- and which may affect the biosphere as well.
-fun GeologicalProcess  : Class ;
-fun GeologicalProcess_Class : SubClass GeologicalProcess (both InternalChange Motion) ;
-
-
--- The class of all geometric figures, i.e. the 
--- class of all abstract, spatial representations. The instances of this class 
--- are GeometricPoints, TwoDimensionalFigures or ThreeDimensionalFigures.
-fun GeometricFigure  : Class ;
-fun GeometricFigure_Class : SubClass GeometricFigure ShapeAttribute ;
-
--- The class of zero_dimensional 
--- GeometricFigures, i.e. the class of GeometricFigures that have position 
--- but lack extension in any dimension.
-fun GeometricPoint  : Class ;
-fun GeometricPoint_Class : SubClass GeometricPoint GeometricFigure ;
-
--- Any GeographicArea which is associated 
--- with some sort of political structure. This class includes Lands, 
--- Cities, districts of cities, counties, etc. Note that the identity 
--- of a GeopoliticalArea may remain constant after a change in borders.
-fun GeopoliticalArea  : Class ;
-fun GeopoliticalArea_Class : SubClass GeopoliticalArea (both Agent GeographicArea) ;
-
-
--- Any BodyMotion, e.g. a hand wave, a nod of the 
--- head, a smile, which is also an instance of Communication.
-fun Gesture  : Class ;
-fun Gesture_Class : SubClass Gesture (both BodyMotion Communication) ;
-
-
--- The subclass of ChangeOfPossession where the
--- agent gets something. Note that the source from which something is 
--- obtained is specified with the origin CaseRole.
-fun Getting  : Class ;
-fun Getting_Class : SubClass Getting ChangeOfPossession ;
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to 1,000,000,000 units of the original 
--- UnitOfMeasure. For example, (GigaFn Hertz) is 1,000,000,000 Hertz.
-fun GigaFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- The subclass of ChangeOfPossession where the 
--- agent gives the destination something.
-fun Giving  : Class ;
-fun Giving_Class : SubClass Giving ChangeOfPossession ;
-
--- Any instance of Giving where the agent gives 
--- something to the destination which was previously given to the agent by 
--- the destination, e.g. returing a book that was borrowed from someone.
-fun GivingBack  : Class ;
-fun GivingBack_Class : SubClass GivingBack Giving ;
-
--- An Organ that removes Substances from the Blood, 
--- alters them in some way, and then releases them.
-fun Gland  : Class ;
-fun Gland_Class : SubClass Gland Organ ;
-
--- The ruling body of a GeopoliticalArea.
-fun Government  : Class ;
-fun Government_Class : SubClass Government GovernmentOrganization ;
-
--- (GovernmentFn ?AREA) denotes the 
--- Government of the GeopoliticalArea ?AREA. For example, 
--- (GovernmentFn UnitedStates) denotes the Federal_level government of 
--- the United States, (GovernmentFn PuertoRico) denotes the government of 
--- the Commonwealth of Puerto Rico.
-fun GovernmentFn  : El GeopoliticalArea -> Ind Government ;
-
-
--- GovernmentOrganization is the 
--- class of official Organizations that are concerned with the government 
--- of a GeopoliticalArea at some level. They may be a subOrganization 
--- of a government.
-fun GovernmentOrganization  : Class ;
-fun GovernmentOrganization_Class : SubClass GovernmentOrganization Organization ;
-
--- Any instance of Touching which results in 
--- a situation where the agent grasps the patient of the Touching.
-fun Grabbing  : Class ;
-fun Grabbing_Class : SubClass Grabbing (both Attaching Touching) ;
-
-
--- The OrganizationalProcess of graduating 
--- from an EducationalOrganization.
-fun Graduation  : Class ;
-fun Graduation_Class : SubClass Graduation LeavingAnOrganization ;
-
--- Submultiple of kilogram. Symbol: g. 
--- 1 kilogram = 1000 Grams.
-fun Gram  : Ind UnitOfMass ;
-
-
--- The Class of graphs, where a graph is understood 
--- to be a set of GraphNodes connected by GraphArcs. Note that this 
--- Class includes only connected graphs, i.e. graphs in which there is a 
--- GraphPath between any two GraphNodes. Note too that every Graph 
--- is required to contain at least two GraphArcs and three GraphNodes.
-fun Graph  : Class ;
-fun Graph_Class : SubClass Graph Abstract ;
-
--- Graphs are comprised of GraphNodes 
--- and GraphArcs. Every GraphArc links two GraphNodes.
-fun GraphArc  : Class ;
-fun GraphArc_Class : SubClass GraphArc GraphElement ;
-
--- A GraphPath that begins (see 
--- BeginNodeFn) and ends (see EndNodeFn) at the same 
--- GraphNode.
-fun GraphCircuit  : Class ;
-fun GraphCircuit_Class : SubClass GraphCircuit GraphPath ;
-
--- Noncompositional parts of Graphs. 
--- These parts are restricted to GraphNodes and GraphArcs.
-fun GraphElement  : Class ;
-fun GraphElement_Class : SubClass GraphElement Abstract ;
-
--- A GraphArc in which a GraphNode is 
--- linked to itself.
-fun GraphLoop  : Class ;
-fun GraphLoop_Class : SubClass GraphLoop GraphArc ;
-
--- Graphs are comprised of GraphNodes 
--- and GraphArcs. Every GraphNode is linked by a GraphArc.
-fun GraphNode  : Class ;
-fun GraphNode_Class : SubClass GraphNode GraphElement ;
-
--- Informally, a single, directed route between 
--- two GraphNodes in a Graph. Formally, a DirectedGraph that is a 
--- subGraph of the original Graph and such that no two GraphArcs in 
--- the DirectedGraph have the same intial node (see InitialNodeFn) or 
--- the same terminal node (see TerminalNodeFn).
-fun GraphPath  : Class ;
-fun GraphPath_Class : SubClass GraphPath DirectedGraph ;
-
--- A BinaryFunction that maps two GraphNodes 
--- to the Class of GraphPaths between those two nodes. Note that the two 
--- GraphNodes must belong to the same Graph.
-fun GraphPathFn : El GraphNode -> El GraphNode -> Desc GraphPath ;
-
-
--- SI absorbed dose measure. Symbol: Gy. It measures 
--- the dose of radiation absorbed in living tissue. It is equal approximately 
--- to the absorbed dose delivered when the energy per unit mass imparted to
--- matter by ionizing radiation is 1 Joule per kilogram. Gray = J/kg 
--- = m^2*s^(_2).
-fun Gray  : Ind CompositeUnitOfMeasure ;
-
-
--- (GreatestCommonDivisorFn 
--- ?NUMBER1 ?NUMBER2 ... ?NUMBER) returns the greatest common divisor of 
--- ?NUMBER1 through ?NUMBER.
-fun GreatestCommonDivisorFn  : [El Integer] -> Ind Integer ;
-
-
--- A Collection of Agents, e.g. a flock 
--- of sheep, a herd of goats, or the local Boy Scout troop.
-fun Group  : Class ;
-fun Group_Class : SubClass Group (both Agent Collection) ;
-
-
--- Any Group whose members are 
--- exclusively Humans.
-fun GroupOfPeople  : Class ;
-fun GroupOfPeople_Class : SubClass GroupOfPeople Group ;
-
--- The Process of biological development in which 
--- an Organism or part of an Organism changes its form or its size.
-fun Growth  : Class ;
-fun Growth_Class : SubClass Growth AutonomicProcess ;
-
--- Any IntentionalProcess where the agent tries to 
--- direct the behavior of another Object, whether an Agent or not.
-fun Guiding  : Class ;
-fun Guiding_Class : SubClass Guiding IntentionalProcess ;
-
--- The subclass of Perception in which the 
--- sensing is done by an auditory Organ.
-fun Hearing  : Class ;
-fun Hearing_Class : SubClass Hearing Perception ;
-
--- Any Increasing Process where the PhysicalQuantity 
--- increased is a TemperatureMeasure.
-fun Heating  : Class ;
-fun Heating_Class : SubClass Heating Increasing ;
-
--- SI inductance measure. Symbol: H. One Henry 
--- is equivalent to one Volt divided by one Ampere per SecondDuration. 
--- If a current changing at the rate of one Ampere per SecondDuration 
--- induces an electromotive force of one Volt, the circuit has an 
--- inductance of one Henry. Henry = Wb/A = m^2*kg*s^(_2)*A^(_2).
-fun Henry  : Ind CompositeUnitOfMeasure ;
-
-
--- SI frequency measure. Symbol: Hz. It is the 
--- number of cycles per second. Hertz = s^(_1). Note that Hertz 
--- does not have a conversion function.
-fun Hertz  : Ind UnitOfFrequency ;
-
-
--- OrganizationalProcesses where someone is made an 
--- employee of an Organization.
-fun Hiring  : Class ;
-fun Hiring_Class : SubClass Hiring JoiningAnOrganization ;
-
--- A hole is an immaterial body located at the surface 
--- of an Object. Since every Hole is ontologically dependent on its host 
--- (i.e., the object in which it is a hole), being a Hole is defined as 
--- being a hole in something. Note that two Holes may occupy the same 
--- region, or part of the same region, without sharing any parts. Any two 
--- hosts of a hole have a common proper part that entirely hosts the hole. A 
--- common host of two holes hosts all parts of the sum of those holes. Any 
--- object that includes the host of a hole is a host of that hole, unless its 
--- parts also include parts of that very hole. Overlapping holes have 
--- overlapping hosts. No hole is atomic. Holes are connected with their 
--- hosts. No hole can have a proper part that is externally connected with 
--- exactly the same things as the hole itself.
-fun Hole  : Class ;
-fun Hole_Class : SubClass Hole Region ;
-
--- A UnaryFunction that maps a Hole to 
--- the Object which is its principal host. The principle host of a Hole 
--- is its maximally connected host (a notion taken here to be defined only 
--- when the argument is a hole).
-fun HoleHostFn  : El Hole -> Ind Object ;
-
-
--- A UnaryFunction that maps a Hole to the skin 
--- of the Hole. The skin of a Hole is the fusion of those superficial 
--- parts (see superficialPart) of the Hole's principal host (see 
--- HoleHostFn) with which the Hole is externally connected.
-fun HoleSkinFn  : El Hole -> Ind Object ;
-
-
--- Includes Humans and relatively recent 
--- ancestors of Humans.
-fun Hominid  : Class ;
-fun Hominid_Class : SubClass Hominid Primate ;
-
--- The Class of quadruped Mammals with hooves. 
--- Includes horses, cows, sheep, pigs, antelope, etc.
-fun HoofedMammal  : Class ;
-fun HoofedMammal_Class : SubClass HoofedMammal Mammal ;
-
--- Attribute used to indicate that an Object 
--- is positioned width_wise with respect to another Object.
-fun Horizontal  : Ind PositionalAttribute ;
-
-
--- In Animals, a chemical secreted by an 
--- endocrine gland whose products are released into the circulating fluid. 
--- Plant hormones or synthetic hormones which are used only to alter or 
--- control various physiologic processes, e.g., reproductive control agents, 
--- are assigned to the Class BiologicallyActiveSubstance. Hormones act as 
--- chemical messengers and regulate various physiologic processes such as 
--- growth, reproduction, metabolism, etc. They usually fall into two broad 
--- categories, viz. steroid hormones and peptide hormones.
-fun Hormone  : Class ;
-fun Hormone_Class : SubClass Hormone (both BiologicallyActiveSubstance BodySubstance) ;
-
-
--- A power measure that is equal to 746 Watts.
-fun Horsepower  : Ind CompositeUnitOfMeasure ;
-
-
--- The Class of all clock Hours.
-fun Hour  : Class ;
-fun Hour_Class : SubClass Hour TimeInterval ;
-
--- Time unit. 1 hour = 60 minutes.
-fun HourDuration  : Ind UnitOfDuration ;
-
-
--- A BinaryFunction that assigns a PositiveRealNumber and 
--- a subclass of Days to the Hours within each Day corresponding to that 
--- NonnegativeInteger. For example, (HourFn 12 Thursday) is the Class of all 
--- instances of noon Thursday. For another example, (HourFn 0 Day) would return 
--- the class of all instances of midnight. For still another example, (HourFn 14 
--- (DayFn 18 (MonthFn August (YearFn 1912)))) denotes 2 PM on the 18th day of 
--- August 1912.
-fun HourFn : El NonnegativeInteger -> Desc Day -> Desc Hour ;
-
-
--- A ResidentialBuilding which is intended to be 
--- inhabited by members of the same SocialUnit. Houses are distinguished 
--- from temporary housing like hotels and multi_family dwellings like condominium 
--- and apartment buildings.
-fun House  : Class ;
-fun House_Class : SubClass House (both ResidentialBuilding SingleFamilyResidence) ;
-
-
--- Modern man, the only remaining species of the Homo 
--- genus.
-fun Human  : Class ;
-fun Human_Class : SubClass Human (both CognitiveAgent Hominid) ;
-
-
--- The subclass of Languages used by 
--- Humans.
-fun HumanLanguage  : Class ;
-fun HumanLanguage_Class : SubClass HumanLanguage Language ;
-
--- Hunting is the class of Processes in which 
--- an animal or animals are pursued and sometimes captured and/or killed.
-fun Hunting  : Class ;
-fun Hunting_Class : SubClass Hunting Pursuing ;
-
--- This is the subclass of ContentBearingPhysical 
--- which are not part of a Language and which have some sort of similarity 
--- with the Objects that they represent. This Class would include symbolic 
--- roadway signs, representational art works, photographs, etc.
-fun Icon  : Class ;
-fun Icon_Class : SubClass Icon ContentBearingPhysical ;
-
--- The Attribute of Regions that are 
--- illuminated to some degree, i.e. in which some shapes are visually 
--- discernable.
-fun Illuminated  : Ind VisualAttribute ;
-
-
--- Any Number that is the result of 
--- multiplying a RealNumber by the square root of _1.
-fun ImaginaryNumber  : Class ;
-fun ImaginaryNumber_Class : SubClass ImaginaryNumber Number ;
-
--- (ImaginaryPartFn ?NUMBER) returns 
--- the part of ?NUMBER that has the square root of _1 as its factor.
-fun ImaginaryPartFn  : El ComplexNumber -> Ind ImaginaryNumber ;
-
-
--- (ImmediateFamilyFn ?PERSON) denotes the 
--- immediate family of ?PERSON, i.e. the Group consisting of the parents of 
--- ?PERSON and anyone of whom ?PERSON is a parent.
-fun ImmediateFamilyFn  : El Human -> Ind FamilyGroup ;
-
-
--- A UnaryFunction that maps a 
--- TimePosition to a short, indeterminate TimeInterval that 
--- immediately follows the TimePosition.
-fun ImmediateFutureFn  : El TimePosition -> Ind TimeInterval ;
-
-
--- A UnaryFunction that maps a 
--- TimePosition to a short, indeterminate TimeInterval that 
--- immediately precedes the TimePosition.
-fun ImmediatePastFn  : El TimePosition -> Ind TimeInterval ;
-
-
--- Any Touching where something comes into 
--- sudden, forceful, physical contact with something else. Some examples 
--- would be striking, knocking, whipping etc.
-fun Impacting  : Class ;
-fun Impacting_Class : SubClass Impacting Touching ;
-
--- The subclass of Transfer where the patient 
--- travels through space by means of a sudden, forceful event. Some examples 
--- would be shooting, throwing, tossing, etc.
-fun Impelling  : Class ;
-fun Impelling_Class : SubClass Impelling Transfer ;
-
--- English length unit of inches.
-fun Inch  : Ind UnitOfLength ;
-
-
--- InchMercury is a UnitOfMeasure 
--- for barometricPressure. It is used to express the number of 
--- inches of mercury supported in a mercurial barometer by the 
--- surrounding air pressure.
-fun InchMercury  : Ind UnitOfAtmosphericPressure ;
-
-
--- Any QuantityChange where the PhysicalQuantity 
--- is increased.
-fun Increasing  : Class ;
-fun Increasing_Class : SubClass Increasing QuantityChange ;
-
--- An Argument which is inductive, i.e. it is 
--- claimed that a set of specific cases makes the conclusion, which generalizes 
--- these cases, more likely to be true.
-fun InductiveArgument  : Class ;
-fun InductiveArgument_Class : SubClass InductiveArgument Argument ;
-
--- Measures of the amount of information. 
--- Includes Bit, Byte, and multiples of these, e.g. KiloByte and 
--- MegaByte.
-fun InformationMeasure  : Class ;
-fun InformationMeasure_Class : SubClass InformationMeasure ConstantQuantity ;
-
--- The Process by which Food is 
--- taken into an Animal.
-fun Ingesting  : Class ;
-fun Ingesting_Class : SubClass Ingesting OrganismProcess ;
-
--- A UnaryFunction that maps a 
--- GraphArc to the initial node of the GraphArc. Note
--- that this is a partial function. In particular, the function is 
--- undefined for GraphArcs that are not part of a DirectedGraph.
-fun InitialNodeFn  : El GraphArc -> Ind GraphNode ;
-
-
--- Inserting a BiologicallyActiveSubstance into an 
--- Animal or a Human with a syringe.
-fun Injecting  : Class ;
-fun Injecting_Class : SubClass Injecting Inserting ;
-
--- The process of creating a traumatic wound or 
--- injury. Since Injuring is not possible without some biologic function 
--- of the organism being injured, it is a subclass of BiologicalProcess.
-fun Injuring  : Class ;
-fun Injuring_Class : SubClass Injuring PathologicProcess ;
-fun Injuring_Damaging  : SubClassC Injuring Damaging (\INJ -> exists Organism (\ORGANISM -> patient(var Damaging Process ? INJ)(var Organism Entity ? ORGANISM)));
-
-
--- A Class of small Arthropods that are 
--- air_breathing and that are distinguished by appearance.
-fun Insect  : Class ;
-fun Insect_Class : SubClass Insect Arthropod ;
-
--- Putting one thing inside of another thing.
-fun Inserting  : Class ;
-fun Inserting_Class : SubClass Inserting Putting ;
-
--- A negative or nonnegative whole number.
-fun Integer  : Class ;
-fun Integer_Class : SubClass Integer RationalNumber ;
-
--- (IntegerSquareRootFn ?NUMBER) 
--- returns the integer square root of ?NUMBER.
-fun IntegerSquareRootFn  : El RealNumber -> Ind NonnegativeInteger ;
-
-
--- A Process that has a specific 
--- purpose for the CognitiveAgent who performs it.
-fun IntentionalProcess  : Class ;
-fun IntentionalProcess_Class : SubClass IntentionalProcess Process ;
-
--- An IntentionalProcess that 
--- can be realized entirely within the mind or brain of an Organism. Thus, 
--- for example, Reasoning is a subclass of IntentionalPsychologicalProcess, 
--- because one can reason simply by exercising one's mind/brain. On the other 
--- hand, RecreationOrExercise is not a subclass of IntentionalPsychologicalProcess,
--- because many instances of RecreationOrExercise necessarily have subProcesses 
--- of BodyMotion.
-fun IntentionalPsychologicalProcess  : Class ;
-fun IntentionalPsychologicalProcess_Class : SubClass IntentionalPsychologicalProcess (both IntentionalProcess PsychologicalProcess) ;
-
-
--- Any Attribute of an Entity that is an 
--- internal property of the Entity, e.g. its shape, its color, its fragility, 
--- etc.
-fun InternalAttribute  : Class ;
-fun InternalAttribute_Class : SubClass InternalAttribute Attribute ;
-
--- Processes which involve altering an internal 
--- property of an Object, e.g. the shape of the Object, its coloring, its 
--- structure, etc. Processes that are not instances of this class include 
--- changes that only affect the relationship to other objects, e.g. changes in 
--- spatial or temporal location.
-fun InternalChange  : Class ;
-fun InternalChange_Class : SubClass InternalChange Process ;
-
--- Any Process of assigning a Proposition to 
--- a Text, i.e. understanding the Text.
-fun Interpreting  : Class ;
-fun Interpreting_Class : SubClass Interpreting IntentionalPsychologicalProcess ;
-
--- A BinaryFunction that maps two 
--- SetOrClasses to the intersection of these SetOrClasses. An object is 
--- an instance of the intersection of two SetOrClasses just in case it is 
--- an instance of both of those SetOrClasses.
-fun IntersectionFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
-
-
--- A BinaryFunction that
--- maps two instances of ConstantQuantity to the subclass of
--- ConstantQuantity that comprises the interval from the first
--- ConstantQuantity to the second ConstantQuantity. For
--- example, (IntervalFn (MeasureFn 8 Meter) (MeasureFn 14 Meter)) 
--- would return the subclass of ConstantQuantity comprising quantities 
--- between 8 and 14 meters in length.
-fun IntervalFn : El ConstantQuantity -> El ConstantQuantity -> Desc ConstantQuantity ;
-
-
--- DeductiveArguments that are not 
--- ValidDeductiveArguments, i.e. it is not the case that the set of premises 
--- in fact entails the conclusion.
-fun InvalidDeductiveArgument  : Class ;
-fun InvalidDeductiveArgument_Class : SubClass InvalidDeductiveArgument DeductiveArgument ;
-
--- An Animal which has no spinal column.
-fun Invertebrate  : Class ;
-fun Invertebrate_Class : SubClass Invertebrate Animal ;
-
--- The class of IntentionalPsychologicalProcesses 
--- where the agent attempts to obtaina information (i.e. a Proposition denoted 
--- by a Formula).
-fun Investigating  : Class ;
-fun Investigating_Class : SubClass Investigating IntentionalPsychologicalProcess ;
-
--- Any RealNumber that is not also a 
--- RationalNumber.
-fun IrrationalNumber  : Class ;
-fun IrrationalNumber_Class : SubClass IrrationalNumber RealNumber ;
-
--- A LandArea that is completely surrounded by a WaterArea.
-fun Island  : Class ;
-fun Island_Class : SubClass Island LandArea ;
-
--- The Class of all Months which are January.
-fun January  : Class ;
-fun January_Class : SubClass January Month ;
-
--- The OrganizationalProcess of 
--- becoming a member of an Organization.
-fun JoiningAnOrganization  : Class ;
-fun JoiningAnOrganization_Class : SubClass JoiningAnOrganization OrganizationalProcess ;
-
--- SI energy measure. Symbol: J. It is the work 
--- done when the point of application of 1 Newton is displaced a distance 
--- of 1 Meter in the direction of the force. Joule = N*m = 
--- m^2*kg*s^(_2).
-fun Joule  : Ind CompositeUnitOfMeasure ;
-
-
--- The subclass of Selecting where the agent opts 
--- for one belief out of a set of multiple possibilities that are available to 
--- him/her.
-fun Judging  : Class ;
-fun Judging_Class : SubClass Judging Selecting ;
-
--- JudicialOrganization is the class 
--- of Organizations whose primary purpose is to render judgments according 
--- to the statutes or regulations of a government or other organization. 
--- Judicial bodies are not necessarily government organizations, for example, 
--- those associated with sporting associations.
-fun JudicialOrganization  : Class ;
-fun JudicialOrganization_Class : SubClass JudicialOrganization Organization ;
-
--- Any legal proceeding which is conducted 
--- by a JudicialOrganization. Note that there is an important difference 
--- between the concepts LegalAction and JudicialProcess. The former 
--- refers to legal claims that are brought by a plaintiff, e.g. law suits, 
--- while the second refers to trials and other sorts of judicial hearings 
--- where the merits of a LegalAction are decided.
-fun JudicialProcess  : Class ;
-fun JudicialProcess_PoliticalProcess  : SubClassC JudicialProcess PoliticalProcess (\PROCESS -> forall Organization (\ORG -> agent(var PoliticalProcess Process ? PROCESS)(var Organization Agent ? ORG)));
-
-
--- The Class of all Months which are July.
-fun July  : Class ;
-fun July_Class : SubClass July Month ;
-
--- The Class of all Months which are June.
-fun June  : Class ;
-fun June_Class : SubClass June Month ;
-
--- The Class of Processes where the agent 
--- keeps something in a particular location for an extended period of time.
-fun Keeping  : Class ;
-fun Keeping_Class : SubClass Keeping IntentionalProcess ;
-
--- SI UnitOfMeasure used
--- with MeasureFn to produce terms denoting instances of
--- TemperatureMeasure. Symbol: K. It is one of the base units in
--- SI (it is also a unit in the ITS system). Kelvin differs from the
--- Celsius scale in that the triple point of water is defined to be
--- 273.16 KelvinDegrees while it is 0 CelsiusDegrees. The magnitudes
--- of intervals in the two scales are the same. By definition the
--- conversion constant is 273.15.
-fun KelvinDegree  : Ind UnitOfTemperature ;
-
-
--- The subclass of Destruction in which the 
--- death of an Organism is caused by an Organism. Note that in cases 
--- of suicide the Organism would be the same in both cases.
-fun Killing  : Class ;
-fun Killing_Class : SubClass Killing Destruction ;
-
--- One KiloByte (KB) of information. One 
--- KiloByte is 1024 Bytes. Note that this sense of 'kilo' is 
--- different from the one accepted in the SI system.
-fun KiloByte  : Ind UnitOfInformation ;
-
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to 1,000 units of the original UnitOfMeasure. 
--- For example, (KiloFn Gram) is 1,000 Grams.
-fun KiloFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- Supermultiple of Gramm. Symbol: kg. 1 Kilogram
--- = 1000 Grams.
-fun Kilogram  : Ind UnitOfMass ;
-
-
--- Supermultiple of Meter. Symbol: km. A
--- Meter is the 1000th part of a Kilometer
-fun Kilometer  : Ind UnitOfLength ;
-
-
--- An area which is predominantly solid ground, 
--- e.g. a Nation, a mountain, a desert, etc. Note that a LandArea may 
--- contain some relatively small WaterAreas. For example, Australia is 
--- a LandArea even though it contains various rivers and lakes.
-fun LandArea  : Class ;
-fun LandArea_Class : SubClass LandArea GeographicArea ;
-
--- LandTransitway is the subclass of 
--- Transitway that represents areas intended for motion over the ground.
-fun LandTransitway  : Class ;
-fun LandTransitway_Class : SubClass LandTransitway (both LandArea Transitway) ;
-
-
--- A system of signs for expressing thought. The 
--- system can be either natural or artificial, i.e. something that emerges 
--- gradually as a cultural artifact or something that is intentionally created 
--- by a person or group of people.
-fun Language  : Class ;
-fun Language_Class : SubClass Language LinguisticExpression ;
-
--- Form of most Invertebrates, Amphibians, and 
--- Fish immediately after they hatch. This form is fundamentally unlike 
--- the adult form, and metamorphosis is required to reach the latter form.
-fun Larval  : Ind DevelopmentalAttribute ;
-
-
--- Attribute that applies to Propositions that are 
--- required by a government or a branch of the government and that are enforced 
--- with penalties for noncompliance. These Propositions may be codified as 
--- legislation or they may be more informal, as in the case of government policy.
-fun Law  : Ind DeonticAttribute ;
-
-
--- The Class of all leap years. These are years 
--- which are either (i.) evenly divisible by 4 and not by 100 or (ii.) evenly 
--- divisible by 400 (this latter case is known as a leap century).
-fun LeapYear  : Class ;
-fun LeapYear_Class : SubClass LeapYear Year ;
-
--- The Class of Processes which relate to the 
--- acquisition of information.
-fun Learning  : Class ;
-fun Learning_Class : SubClass Learning IntentionalPsychologicalProcess ;
-
--- (LeastCommonMultipleFn 
--- ?NUMBER1 ?NUMBER2 ... ?NUMBER) returns the least common multiple of 
--- ?NUMBER1 through ?NUMBER.
-fun LeastCommonMultipleFn  : [El Integer] -> Ind Integer ;
-
-
--- The OrganizationalProcess of 
--- leaving an Organization, whether voluntarily or involuntarily.
-fun LeavingAnOrganization  : Class ;
-fun LeavingAnOrganization_Class : SubClass LeavingAnOrganization OrganizationalProcess ;
-
--- This PositionalAttribute is derived from the 
--- left/right schema. Note that this means directly to the left, so that, 
--- if one object is to the left of another, then the projections of the 
--- two objects overlap.
-fun Left  : Ind AntiSymmetricPositionalAttribute ;
-
-
--- Any Process where a CognitiveAgent seeks 
--- to obtain something through a court of law.
-fun LegalAction  : Class ;
-fun LegalAction_Class : SubClass LegalAction Contest ;
-
--- A decision issued by a court with respect to 
--- a LegalAction. Note that a LegalDecision is the act of Declaring a 
--- decision of a court, it is not the act of judge or jury Deciding the merits 
--- of a particular LegalAction.
-fun LegalDecision  : Class ;
-fun LegalDecision_Class : SubClass LegalDecision (both Declaring JudicialProcess) ;
-
-
--- The subclass of Giving Processes where 
--- the agent gives the destination something for a limited period of 
--- time with the expectation that it will be returned later (perhaps with 
--- interest).
-fun Lending  : Class ;
-fun Lending_Class : SubClass Lending Giving ;
-
--- A subclass of
--- ConstantQuantity, instances of which are measures of length.
-fun LengthMeasure  : Class ;
-fun LengthMeasure_Class : SubClass LengthMeasure ConstantQuantity ;
-
--- The ProbabilityAttribute of being probable, i.e. more 
--- likely than not to be True.
-fun Likely  : Ind ProbabilityAttribute ;
-
-
--- A Communication that involves 
--- the transfer of information via a LinguisticExpression.
-fun LinguisticCommunication  : Class ;
-fun LinguisticCommunication_Class : SubClass LinguisticCommunication Communication ;
-
--- This is the subclass of 
--- ContentBearingPhysical which are language_related. Note that this Class 
--- encompasses both Language and the the elements of Languages, 
--- e.g. Words.
-fun LinguisticExpression  : Class ;
-fun LinguisticExpression_Class : SubClass LinguisticExpression ContentBearingPhysical ;
-
--- An Object has the Attribute of Liquid if 
--- it has a fixed volume but not a fixed shape.
-fun Liquid  : Ind PhysicalState ;
-
-
--- Any Mixture that satisfies two conditions, 
--- viz. it is made up predominantly of things which are a Liquid and any 
--- component other than Liquid in the Mixture is in the form of fine particles 
--- which are suspended in the Liquid.
-fun LiquidMixture  : Class ;
-fun LiquidMixture_Class : SubClass LiquidMixture Mixture ;
-
--- Any Motion where the patient is a 
--- Liquid. This class would cover, in particular, the flow of 
--- Water.
-fun LiquidMotion  : Class ;
-fun LiquidMotion_Class : SubClass LiquidMotion Motion ;
-
--- Every List is a particular ordered n_tuple of 
--- items. Generally speaking, Lists are created by means of the ListFn 
--- Function, which takes any number of items as arguments and returns a 
--- List with the items in the same order. Anything, including other 
--- Lists, may be an item in a List. Note too that Lists are 
--- extensional _ two lists that have the same items in the same order are 
--- identical. Note too that a List may contain no items. In that case, 
--- the List is the NullList.
-fun List  : Class ;
-
-
--- A Function that returns the concatenation 
--- of the two Lists that are given as arguments. For example, the value of 
--- (ListConcatenateFn (ListFn Monday Tuesday) (ListFn Wednesday 
--- Thursday)) would be (ListFn Monday Tuesday Wednesday Thursday).
-fun ListConcatenateFn  : El List -> El List -> Ind List ;
-
-
--- A Function that takes any number of arguments and 
--- returns the List containing those arguments in exactly the same order.
-fun ListFn  : [El Entity] -> Ind List ;
-
-
--- A Function that takes a List as its sole 
--- argument and returns the number of items in the List. For example, 
--- (ListLengthFn (ListFn Monday Tuesday Wednesday)) would return the 
--- value 3.
-fun ListLengthFn  : El List -> Ind NonnegativeInteger ;
-
-
--- (ListOrderFn ?LIST ?NUMBER) denotes the item 
--- that is in the ?NUMBER position in the List ?LIST. For example, 
--- (ListOrderFn (ListFn Monday Tuesday Wednesday) 2) would return the 
--- value Tuesday.
-fun ListOrderFn  : El List -> El PositiveInteger -> Ind Entity ;
-
-
--- Any instance of Hearing which is intentional.
-fun Listening  : Class ;
-fun Listening_Class : SubClass Listening (both Hearing IntentionalProcess) ;
-
-
--- Unit of volume in the metric
--- system. It is currently defined to be equal to one cubic
--- decimeter (0.001 cubic meter). Symbol: l.
-fun Liter  : Ind UnitOfVolume ;
-
-
--- This Attribute applies to Organisms that are 
--- alive.
-fun Living  : Ind AnimacyAttribute ;
-
-
--- (LogFn ?NUMBER ?INT) returns the logarithm of the 
--- RealNumber ?NUMBER in the base denoted by the Integer ?INT.
-fun LogFn  : El RealNumber -> El PositiveInteger -> Ind RealNumber ;
-
-
--- This Class comprises all 
--- of the logical operators (viz. 'and', 'or', 'not', '=>', and '<=>').
-fun LogicalOperator  : Class ;
-
-
--- Any instance of Seeing which is intentional.
-fun Looking  : Class ;
-fun Looking_Class : SubClass Looking (both IntentionalProcess Seeing) ;
-
-
--- SI luminous flux measure. Symbol: lm. It is the 
--- amount streaming outward through one solid angle of 1 Steradian from a 
--- uniform point source having an intensity of one Candela. Lumen = 
--- cd*sr = cd * 1.
-fun Lumen  : Ind CompositeUnitOfMeasure ;
-
-
--- SI illuminance measure. Symbol: lx. It is the 
--- amount of illumination provided when one Lumen is evenly distributed 
--- over an area of 1 square Meter. This is also equivalent to the 
--- illumination that would exist on a surface all points of which are one 
--- Meter from a point source of one Candela. Lux = lm/m^2 = 
--- m^(_2)*cd.
-fun Lux  : Ind CompositeUnitOfMeasure ;
-
-
--- Machines are Devices that that have a 
--- well_defined resource and result and that automatically convert 
--- the resource into the result.
-fun Machine  : Class ;
-fun Machine_Class : SubClass Machine Device ;
-
--- The magnitude of a PhysicalQuantity is the 
--- numeric value for the quantity. In other words, MagnitudeFn converts 
--- a PhysicalQuantity with an associated UnitOfMeasure into an ordinary 
--- RealNumber. For example, the magnitude of the ConstantQuantity 2 
--- Kilometers is the RealNumber 2. Note that the magnitude of a 
--- quantity in a given unit times that unit is equal to the original 
--- quantity.
-fun MagnitudeFn  : El PhysicalQuantity -> Ind RealNumber ;
-
-
--- The Class of Processes where the agent 
--- cares for or maintains the Object.
-fun Maintaining  : Class ;
-fun Maintaining_Class : SubClass Maintaining IntentionalProcess ;
-
--- The subclass of Creation in which an individual 
--- Artifact or a type of Artifact is made.
-fun Making  : Class ;
-fun Making_Class : SubClass Making (both Creation IntentionalProcess) ;
-
-
--- An Attribute indicating that an Organism is 
--- male in nature.
-fun Male  : Ind SexAttribute ;
-
-
--- A Vertebrate having a constant body temperature 
--- and characterized by the presence of hair, mammary glands, and sweat 
--- glands.
-fun Mammal  : Class ;
-fun Mammal_Class : SubClass Mammal WarmBloodedVertebrate ;
-
--- The class of Male Humans.
-fun Man  : Class ;
-fun Man_Class : SubClass Man Human ;
-
--- OrganizationalProcesses that involve overseeing 
--- the activities of others. Note the key differences between RegulatoryProcess 
--- and its sibling Managing. The latter implies a long_term relationship between 
--- the manager and the managed, while the former implies a normative standard to which 
--- the activities of the regulated are referred.
-fun Managing  : Class ;
-fun Managing_Class : SubClass Managing (both Guiding OrganizationalProcess) ;
-
-
--- An intentional move or play within a Contest. 
--- In many cases, a Maneuver is a realization of part of a strategy for 
--- winning the Contest, but it also may be just an arbitrary or semi_arbitrary 
--- division of the overarching Contest, e.g. innings in a baseball game.
-fun Maneuver  : Class ;
-fun Maneuver_Class : SubClass Maneuver IntentionalProcess ;
-
--- A ManualHumanLanguage is a
--- HumanLanguage which has as its medium gestures and movement, such 
--- as the shape, position, and movement of the hands.
-fun ManualHumanLanguage  : Class ;
-fun ManualHumanLanguage_Class : SubClass ManualHumanLanguage HumanLanguage ;
-
--- The Making of Artifacts on a mass 
--- scale.
-fun Manufacture  : Class ;
-fun Manufacture_Class : SubClass Manufacture Making ;
-
--- Any Corporation which manufactures Products.
-fun Manufacturer  : Class ;
-fun Manufacturer_Class : SubClass Manufacturer Corporation ;
-
--- The Class of all Months which are March.
-fun March  : Class ;
-fun March_Class : SubClass March Month ;
-
--- The Class of Mammals which have a pouch for 
--- their young.
-fun Marsupial  : Class ;
-fun Marsupial_Class : SubClass Marsupial Mammal ;
-
--- A subclass of
--- ConstantQuantity, instances of which are measures of the amount of
--- matter in an Object.
-fun MassMeasure  : Class ;
-fun MassMeasure_Class : SubClass MassMeasure ConstantQuantity ;
-
--- The OrganizationalProcess of joining an 
--- EducationalOrganization as a student.
-fun Matriculation  : Class ;
-fun Matriculation_Class : SubClass Matriculation JoiningAnOrganization ;
-
--- (MaxFn ?NUMBER1 ?NUMBER2) is the largest of 
--- ?NUMBER1 and ?NUMBER2. In cases where ?NUMBER1 is equal to ?NUMBER2, 
--- MaxFn returns one of its arguments.
-fun MaxFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- This BinaryFunction assigns two 
--- GraphNodes to the GraphPath with the largest sum of weighted arcs 
--- between the two GraphNodes.
-fun MaximalWeightedPathFn  : El GraphNode -> El GraphNode -> Ind GraphPath ;
-
-
--- The Class of all Months which are May.
-fun May  : Class ;
-fun May_Class : SubClass May Month ;
-
--- This BinaryFunction maps a
--- RealNumber and a UnitOfMeasure to that Number of units. It is
--- used to express `measured' instances of PhysicalQuantity. Example:
--- the concept of three meters is represented as (MeasureFn 3
--- Meter).
-fun MeasureFn  : El RealNumber -> El UnitOfMeasure -> Ind PhysicalQuantity ;
-
-
--- The Class of Calculating Processes where 
--- the aim is to determine the PhysicalQuantity of some aspect of the patient.
-fun Measuring  : Class ;
-fun Measuring_Class : SubClass Measuring Calculating ;
-
--- Any Device whose purpose is to measure a 
--- PhysicalQuantity.
-fun MeasuringDevice  : Class ;
-fun MeasuringDevice_Class : SubClass MeasuringDevice Device ;
-
--- Any Food which was originally part of an 
--- Animal and is not ingested by drinking, including eggs and animal 
--- blood that is eaten as food. Note that this class covers both raw 
--- meat and meat that has been prepared in some way, e.g. by cooking. 
--- Note too that preparations involving Meat and FruitOrVegetable 
--- are classed directly under Food.
-fun Meat  : Class ;
-fun Meat_Class : SubClass Meat Food ;
-
--- The coming together of two or more 
--- CognitiveAgents for the purpose of Communication. This covers informal 
--- meetings, e.g. visits with family members, and formal meetings, e.g. a board 
--- of directors meeting.
-fun Meeting  : Class ;
-fun Meeting_Class : SubClass Meeting SocialInteraction ;
-
--- One MegaByte (MB) of information. One 
--- MegaByte is 1024 KiloBytes. Note that this sense of 'mega' is 
--- different from the one accepted in the SI system.
-fun MegaByte  : Ind UnitOfInformation ;
-
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to 1,000,000 units of the original 
--- UnitOfMeasure. For example, (MegaFn Hertz) is 1,000,000 Hertz.
-fun MegaFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- The Class of Processes where an Object is 
--- heated and converted from a Solid to a Liquid.
-fun Melting  : Class ;
-fun Melting_Class : SubClass Melting StateChange ;
-
--- Any Corporation which sells 
--- goods or services to customers for a profit.
-fun MercantileOrganization  : Class ;
-fun MercantileOrganization_Class : SubClass MercantileOrganization Corporation ;
-
--- (MereologicalDifferenceFn ?OBJ1 
--- ?OBJ2) denotes the Object consisting of the parts which belong to ?OBJ1 
--- and not to ?OBJ2.
-fun MereologicalDifferenceFn  : El Object -> El Object -> Ind Object ;
-
-
--- (MereologicalProductFn ?OBJ1 ?OBJ2) 
--- denotes the Object consisting of the parts which belong to both ?OBJ1 
--- and ?OBJ2.
-fun MereologicalProductFn  : El Object -> El Object -> Ind Object ;
-
-
--- (MereologicalSumFn ?OBJ1 ?OBJ2) 
--- denotes the Object consisting of the parts which belong to either 
--- ?OBJ1 or ?OBJ2.
-fun MereologicalSumFn  : El Object -> El Object -> Ind Object ;
-
-
--- A Metal is an ElementalSubstance that conducts heat 
--- and electricity, is shiny and reflects many colors of light, and can be hammered 
--- into sheets or drawn into wire. About 80% of the known chemical elements 
--- (ElementalSubstances) are metals.
-fun Metal  : Class ;
-fun Metal_Class : SubClass Metal ElementalSubstance ;
-
--- SI UnitOfLength. Symbol: m. It is one of the
--- base units in SI, and it is currently defined as follows: the Meter 
--- is the length of the path traveled by light in a vacuum during a time 
--- interval of 1/299792458 of a SecondDuration.
-fun Meter  : Ind UnitOfLength ;
-
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to .000001 units of the original UnitOfMeasure. 
--- For example, (MicroFn Meter) is .000001 Meters.
-fun MicroFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- An Organism that can be seen only with 
--- the aid of a microscope.
-fun Microorganism  : Class ;
-fun Microorganism_Class : SubClass Microorganism Organism ;
-
--- English length unit of miles.
-fun Mile  : Ind UnitOfLength ;
-
-
--- MilitaryForce is the subclass of 
--- Organizations that are organized along military lines and for the 
--- purpose of either defensive or offensive combat, whether or not 
--- the force is an official GovernmentOrganization.
-fun MilitaryForce  : Class ;
-fun MilitaryForce_Class : SubClass MilitaryForce PoliticalOrganization ;
-
--- Any heavily armed Organization 
--- that is part of a Government and that is charged with representing the 
--- Government in international conflicts.
-fun MilitaryOrganization  : Class ;
-fun MilitaryOrganization_Class : SubClass MilitaryOrganization (both GovernmentOrganization MilitaryForce) ;
-
-
--- Any Process that is carried out by a 
--- military organization. Note that this class covers Processes, e.g. 
--- military operations, that are the result of careful planning, as well as 
--- those which are unscripted.
-fun MilitaryProcess  : Class ;
-fun MilitaryProcess_Class : SubClass MilitaryProcess PoliticalProcess ;
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to .001 units of the original UnitOfMeasure. 
--- For example, (MilliFn Gram) is .001 Grams.
-fun MilliFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- Submultiple of Meter. Symbol: mm. A millimeter
--- is the 1000th part of a meter
-fun Millimeter  : Ind UnitOfLength ;
-
-
--- (MinFn ?NUMBER1 ?NUMBER2) is the smallest of 
--- ?NUMBER1 and ?NUMBER2. In cases where ?NUMBER1 is equal to ?NUMBER2, 
--- MinFn returns one of its arguments.
-fun MinFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- Any of various naturally occurring homogeneous 
--- substances (such as stone, coal, salt, sulfur, sand, petroleum), or 
--- synthetic substances having the chemical composition and crystalline form 
--- and properties of a naturally occurring mineral.
-fun Mineral  : Class ;
-fun Mineral_Class : SubClass Mineral Substance ;
-
--- A UnaryFunction that assigns a Graph 
--- the Class of GraphPaths which comprise cutsets for the Graph and 
--- which have the least number of GraphArcs.
-fun MinimalCutSetFn : El Graph -> Desc GraphPath ;
-
-
--- This BinaryFunction assigns two 
--- GraphNodes to the GraphPath with the smallest sum of weighted arcs 
--- between the two GraphNodes.
-fun MinimalWeightedPathFn  : El GraphNode -> El GraphNode -> Ind GraphPath ;
-
-
--- The Class of all clock Minutes.
-fun Minute  : Class ;
-fun Minute_Class : SubClass Minute TimeInterval ;
-
--- Time unit. 1 minute = 60 seconds.
-fun MinuteDuration  : Ind UnitOfDuration ;
-
-
--- A BinaryFunction that assigns a PositiveRealNumber and 
--- a subclass of Hours to the Minutes within each Hour corresponding to that 
--- NonnegativeInteger. For example, (MinuteFn 30 (HourFn 17 Day)) is the Class 
--- of all 5:30's in the afternoon. For another example, (MinuteFn 15 Hour) would return 
--- the class of all instances of quarter past the hour. For still another example, 
--- (MinuteFn 15 (HourFn 14 (DayFn 18 (MonthFn August (YearFn 1912))))) denotes 
--- 15 minutes after 2 PM on the 18th day of August 1912.
-fun MinuteFn : El NonnegativeInteger -> Desc Hour -> Desc Minute ;
-
-
--- A Mixture is two or more PureSubstances, 
--- combined in varying proportions _ each retaining its own specific properties. 
--- The components of a Mixture can be separated by physical means, i.e. without 
--- the making and breaking of chemical bonds. Examples: Air, table salt thoroughly 
--- dissolved in water, milk, wood, and concrete.
-fun Mixture  : Class ;
-fun Mixture_Class : SubClass Mixture Substance ;
-
--- MmMercury is a UnitOfMeasure 
--- for barometricPressure. It is used to express the number 
--- of millimeters of mercury supported in a mercurial barometer
---  by the surrounding air pressure.
-fun MmMercury  : Ind UnitOfAtmosphericPressure ;
-
-
--- SI amount of substance
--- unit. symbol: mol. It is one of the base units in SI. It is defined as
--- follows: the Mole is the amount of substance of a system which
--- contains as many elementary entities as there are atoms in 0.012
--- Kilograms of carbon 12. Note that, when this UnitOfMeasure is
--- used, the elementary entities must be specified _ they may be atoms,
--- molecules, ions, electrons, etc. or groups of such particles.
-fun Mole  : Ind UnitOfMass ;
-
-
--- A molecule is the smallest unit of matter of a 
--- CompoundSubstance that retains all the physical and chemical properties 
--- of that substance, e.g., Ne, H2, H2O. A molecule is two or more Atoms 
--- linked by a chemical bond.
-fun Molecule  : Class ;
-fun Molecule_Class : SubClass Molecule CompoundSubstance ;
-
--- Soft_bodied Invertebrate that is usually 
--- contained in a shell. Includes oysters, clams, mussels, snails, slugs, 
--- octopi, and squid.
-fun Mollusk  : Class ;
-fun Mollusk_Class : SubClass Mollusk Invertebrate ;
-
--- The Class of all calendar Mondays.
-fun Monday  : Class ;
-fun Monday_Class : SubClass Monday Day ;
-
--- Various Primates with relatively long 
--- tails.
-fun Monkey  : Class ;
-fun Monkey_Class : SubClass Monkey Primate ;
-
--- An Object with this Attribute has 
--- the same color on every part of its surface.
-fun Monochromatic  : Ind ColorAttribute ;
-
-
--- The Class of all calendar Months.
-fun Month  : Class ;
-fun Month_Class : SubClass Month TimeInterval ;
-
--- Time unit. A month's duration is at least
--- 28 days, and no more than 31 days. Note that this unit is a range, rather
--- than an exact amount, unlike most other units.
-fun MonthDuration  : Ind UnitOfDuration ;
-
-
--- A BinaryFunction that maps a subclass of Month and a 
--- subclass of Year to the class containing the Months corresponding to thos Years. 
--- For example (MonthFn January (YearFn 1912)) is the class containing the eighth 
--- Month, i.e. August, of the Year 1912. For another example, (MonthFn August 
--- Year) is equal to August, the class of all months of August. Note that this function 
--- returns a Class as a value. The reason for this is that the related functions, viz. 
--- DayFn, HourFn, MinuteFn, and SecondFn, are used to generate both specific TimeIntervals 
--- and recurrent intervals, and the only way to do this is to make the domains and ranges of 
--- these functions classes rather than individuals.
-fun MonthFn : Desc Month -> Desc Year -> Desc Month ;
-
-
--- Part of a Word which cannot be subdivided 
--- and which expresses a meaning.
-fun Morpheme  : Class ;
-fun Morpheme_Class : SubClass Morpheme LinguisticExpression ;
-
--- A NonFloweringPlant without true roots and little 
--- if any vascular tissue.
-fun Moss  : Class ;
-fun Moss_Class : SubClass Moss NonFloweringPlant ;
-
--- Any Process of movement.
-fun Motion  : Class ;
-fun Motion_Class : SubClass Motion Process ;
-
--- Motion where an Object is moving toward the 
--- ground.
-fun MotionDownward  : Class ;
-fun MotionDownward_Class : SubClass MotionDownward Motion ;
-
--- A ContentBearingObject which depicts motion 
--- (and which may have an audio or text component as well). This Class covers 
--- films, videos, etc.
-fun MotionPicture  : Class ;
-fun MotionPicture_Class : SubClass MotionPicture Text ;
-
--- Motion where an Object is moving away 
--- from the ground.
-fun MotionUpward  : Class ;
-fun MotionUpward_Class : SubClass MotionUpward Motion ;
-
--- A TimeZone that covers much of the 
--- Rocky Mountain region of the United States.
-fun MountainTimeZone  : Ind TimeZone ;
-
-
--- The Class of multigraphs. A multigraph 
--- is a Graph containing at least one pair of GraphNodes that are 
--- connected by more than one GraphArc.
-fun MultiGraph  : Class ;
-fun MultiGraph_Class : SubClass MultiGraph Graph ;
-
--- If ?NUMBER1 and ?NUMBER2 are Numbers, 
--- then (MultiplicationFn ?NUMBER1 ?NUMBER2) is the arithmetical product 
--- of these numbers.
-fun MultiplicationFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- Nonrigid Tissue appearing only in Animals and 
--- composed largely of contractile cells.
-fun Muscle  : Class ;
-fun Muscle_Class : SubClass Muscle (both AnimalSubstance Tissue) ;
-
-
--- The subclass of RadiatingSound where the 
--- sound is intended to be melodic and is produced deliberately.
-fun Music  : Class ;
-fun Music_Class : SubClass Music RadiatingSound ;
-
--- A Device which is manipulated by a Human 
--- and whose purpose is to produce Music.
-fun MusicalInstrument  : Class ;
-fun MusicalInstrument_Class : SubClass MusicalInstrument Device ;
-
--- A SetOrClass is a MutuallyDisjointClass 
--- just in case there exists nothing which is an instance of all of the instances of 
--- the original SetOrClass.
-fun MutuallyDisjointClass  : Class ;
-fun MutuallyDisjointClass_Class : SubClass MutuallyDisjointClass SetOrClass ;
-
--- A Class of Arthropods that includes 
--- centipedes and millipedes.
-fun Myriapod  : Class ;
-fun Myriapod_Class : SubClass Myriapod Arthropod ;
-
--- A Promise where nothing is promised in return, 
--- i.e. a nudum pactum.
-fun NakedPromise  : Ind DeonticAttribute ;
-
-
--- The Process of assigning a name to someone or something.
-fun Naming  : Class ;
-fun Naming_Class : SubClass Naming Declaring ;
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to .000000001 units of the original 
--- UnitOfMeasure. For example, (MicroFn SecondDuration) is .000000001 
--- SecondDurations.
-fun NanoFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- The broadest GeopoliticalArea, i.e. Nations are 
--- GeopoliticalAreas that are not part of any other overarching and 
--- comprehensive governance structure (excepting commonwealths and other sorts 
--- of loose international organizations).
-fun Nation  : Class ;
-fun Nation_Class : SubClass Nation (both GeopoliticalArea LandArea) ;
-
-
--- The subclass of HumanLanguages which 
--- are not designed and which evolve from generation to generation. This 
--- Class includes all of the national languages, e.g. English, Spanish, 
--- Japanese, etc. Note that this class includes dialects of natural 
--- languages.
-fun NaturalLanguage  : Class ;
-fun NaturalLanguage_Class : SubClass NaturalLanguage HumanLanguage ;
-
--- A Process that take place in nature
--- spontanously.
-fun NaturalProcess  : Class ;
-fun NaturalProcess_Class : SubClass NaturalProcess Process ;
-
--- Any Substance that is not the result of 
--- an IntentionalProcess, i.e. any substance that occurs naturally.
-fun NaturalSubstance  : Class ;
-fun NaturalSubstance_Class : SubClass NaturalSubstance Substance ;
-
--- The relation of common sense adjacency. Note that, if 
--- an object is Near another object, then the objects are not connected.
-fun Near  : Ind SymmetricPositionalAttribute ;
-
-
--- Attribute that applies to Propositions that are 
--- necessary, i.e. true in every possible world.
-fun Necessity  : Ind AlethicAttribute ;
-
-
--- The TimePoint that is before 
--- all other TimePoints.
-fun NegativeInfinity  : Ind TimePoint ;
-
-
--- An Integer that is less than zero.
-fun NegativeInteger  : Class ;
-fun NegativeInteger_Class : SubClass NegativeInteger (both Integer NegativeRealNumber) ;
-
-
--- A RealNumber that is less than 
--- zero.
-fun NegativeRealNumber  : Class ;
-fun NegativeRealNumber_RealNumber  : SubClassC NegativeRealNumber RealNumber (\NUMBER -> lessThan(var RealNumber Quantity ? NUMBER)(el Integer Quantity ? (toInt 0)));
-
-
--- A system in Vertebrates that is made up of 
--- the Brain, the spinal cord, nerves, etc.
-fun NervousSystem  : Class ;
-fun NervousSystem_Class : SubClass NervousSystem (both AnimalAnatomicalStructure Organ) ;
-
-
--- Components of the AtomicNucleus. They have no 
--- charge.
-fun Neutron  : Class ;
-fun Neutron_Class : SubClass Neutron SubatomicParticle ;
-
--- SI force measure. Symbol: N. It is that force 
--- which gives to a mass of 1 kilogram an acceleration of 1 Meter per 
--- SecondDuration. Newton = m*kg*s^(_2).
-fun Newton  : Ind CompositeUnitOfMeasure ;
-
-
--- Instances of
--- this Class are UnitsOfMeasure that are applied to a single
--- dimension, and so are not intrinsically defined by the functional
--- composition of other units.
-fun NonCompositeUnitOfMeasure  : Class ;
-fun NonCompositeUnitOfMeasure_Class : SubClass NonCompositeUnitOfMeasure UnitOfMeasure ;
-
--- A Plant that reproduces with spores and 
--- does not produce flowers.
-fun NonFloweringPlant  : Class ;
-fun NonFloweringPlant_Class : SubClass NonFloweringPlant Plant ;
-
--- The stage of an Organism before it is 
--- FullyFormed.
-fun NonFullyFormed  : Ind DevelopmentalAttribute ;
-
-
--- Any SetOrClass that contains at least one 
--- instance.
-fun NonNullSet  : Class ;
-fun NonNullSet_Class : SubClass NonNullSet SetOrClass ;
-
--- An Integer that is greater than 
--- or equal to zero.
-fun NonnegativeInteger  : Class ;
-fun NonnegativeInteger_Class : SubClass NonnegativeInteger (both Integer NonnegativeRealNumber) ;
-
-
--- A RealNumber that is greater than 
--- or equal to zero.
-fun NonnegativeRealNumber  : Class ;
-fun NonnegativeRealNumber_RealNumber  : SubClassC NonnegativeRealNumber RealNumber (\NUMBER -> greaterThanOrEqualTo(var RealNumber Quantity ? NUMBER)(el Integer Quantity ? (toInt 0)));
-
-
--- A Class containing all of the 
--- Attributes that are specific to morality, legality, aesthetics, 
--- etiquette, etc. Many of these attributes express a judgement that 
--- something ought or ought not to be the case.
-fun NormativeAttribute  : Class ;
-fun NormativeAttribute_Class : SubClass NormativeAttribute RelationalAttribute ;
-
--- The compass direction of North.
-fun North  : Ind DirectionalAttribute ;
-
-
--- One of the parts of speech. The Class of Words 
--- that conventionally denote Objects.
-fun Noun  : Class ;
-fun Noun_Class : SubClass Noun Word ;
-
--- A Phrase that has the same function as a 
--- Noun.
-fun NounPhrase  : Class ;
-fun NounPhrase_Class : SubClass NounPhrase Phrase ;
-
--- The Class of all Months which are November.
-fun November  : Class ;
-fun November_Class : SubClass November Month ;
-
--- The List that has no items. The uniqueness of 
--- NullList follows from the extensionality of Lists, i.e. the fact that 
--- two Lists with the same items in the same order are identical.
-fun NullList  : Ind List ;
-
-
--- Any SetOrClass that contains no instances.
-fun NullSet  : Class ;
-fun NullSet_Class : SubClass NullSet SetOrClass ;
-
--- A measure of how many things there are, or how
--- much there is, of a certain kind. Numbers are subclassed into 
--- RealNumber, ComplexNumber, and ImaginaryNumber.
-fun Number  : Class ;
-fun Number_Class : SubClass Number Quantity ;
-
--- NumberE is the RealNumber that is the base for 
--- natural logarithms. It is approximately equal to 2.718282.
-fun NumberE  : Ind PositiveRealNumber ;
-
-
--- (NumeratorFn ?NUMBER) returns the numerator 
--- of the canonical reduced form ?NUMBER.
-fun NumeratorFn  : El RealNumber -> Ind Integer ;
-
-
--- A BiologicallyActiveSubstance required by an Organism. 
--- It is generally ingested as Food, and it is of primary interest because of its role 
--- in the biologic functioning of the Organism.
-fun Nutrient  : Class ;
-fun Nutrient_Class : SubClass Nutrient BiologicallyActiveSubstance ;
-
--- Corresponds roughly to the class of ordinary 
--- objects. Examples include normal physical objects, geographical regions, 
--- and locations of Processes, the complement of Objects in the Physical 
--- class. In a 4D ontology, an Object is something whose spatiotemporal 
--- extent is thought of as dividing into spatial parts roughly parallel to the 
--- time_axis.
-fun Object  : Class ;
-fun Object_Class : SubClass Object Physical ;
-
--- The Class of NormativeAttributes that are 
--- associated with an objective criterion for their attribution, i.e. there is 
--- broad consensus about the cases where these attributes are applicable.
-fun ObjectiveNorm  : Class ;
-fun ObjectiveNorm_Class : SubClass ObjectiveNorm NormativeAttribute ;
-
--- Attribute that applies to Propositions that an 
--- Agent is required, by some authority, to make true.
-fun Obligation  : Ind DeonticAttribute ;
-
-
--- The Class of all Months which are October.
-fun October  : Class ;
-fun October_Class : SubClass October Month ;
-
--- An Integer that is not evenly divisible 
--- by 2.
-fun OddInteger  : Class ;
-fun OddInteger_Class : SubClass OddInteger Integer ;
-
--- The subclass of Committing in which a 
--- CognitiveAgent offers something Physical to another agent. Offerings 
--- may be unconditional (in which case they are a promise to effect a 
--- UnilateralGiving) or conditional (in which case they are a promise to 
--- effect a Transaction of some sort).
-fun Offering  : Class ;
-fun Offering_Class : SubClass Offering Committing ;
-
--- SI electric resistance measure. It is the electric
--- resistance between two points of a conductor when a constant difference 
--- of potential of 1 Volt, applied between these two points,
--- produces in this conductor a current of 1 Ampere, this conductor not
--- being the force of any electromotive force. Ohm = V/A = 
--- m^2*kg*s^(_3)*A^(_2).
-fun Ohm  : Ind CompositeUnitOfMeasure ;
-
-
--- The Class of properties that are 
--- detectable by smell.
-fun OlfactoryAttribute  : Class ;
-fun OlfactoryAttribute_Class : SubClass OlfactoryAttribute PerceptualAttribute ;
-
--- This is used to assert that an object is on top of 
--- another object, and it is derived from the up/down schema and involves 
--- contact.
-fun On  : Ind AntiSymmetricPositionalAttribute ;
-
-
--- The class of GeometricFigures that 
--- have position and an extension along a single dimension, viz. straight lines.
-fun OneDimensionalFigure  : Class ;
-fun OneDimensionalFigure_Class : SubClass OneDimensionalFigure GeometricFigure ;
-
--- The class of TwoDimensionalFigures that 
--- are not ClosedTwoDimensionalFigures.
-fun OpenTwoDimensionalFigure  : Class ;
-fun OpenTwoDimensionalFigure_Class : SubClass OpenTwoDimensionalFigure TwoDimensionalFigure ;
-
--- A Directing in which the receiver is 
--- commanded to realize the content of a ContentBearingObject. Orders 
--- are injunctions, the disobedience of which involves sanctions, or 
--- which express an obligation upon the part of the orderee.
-fun Ordering  : Class ;
-fun Ordering_Class : SubClass Ordering Directing ;
-
--- A somewhat independent BodyPart that performs a 
--- specialized function. Note that this functional definition covers bodily 
--- systems, e.g. the digestive system or the central nervous system.
-fun Organ  : Class ;
-fun Organ_Class : SubClass Organ BodyPart ;
-
--- A PhysiologicProcess of a 
--- particular Organ or Tissue.
-fun OrganOrTissueProcess  : Class ;
-fun OrganOrTissueProcess_Class : SubClass OrganOrTissueProcess AutonomicProcess ;
-
--- This class encompasses Organisms, 
--- CorpuscularObjects that are parts of Organisms, i.e. BodyParts, 
--- and CorpuscularObjects that are nonintentionally produced by 
--- Organisms, e.g. ReproductiveBodies.
-fun OrganicObject  : Class ;
-fun OrganicObject_Class : SubClass OrganicObject CorpuscularObject ;
-
--- Generally, a living individual, including all 
--- Plants and Animals.
-fun Organism  : Class ;
-fun Organism_Class : SubClass Organism (both Agent OrganicObject) ;
-
-
--- A physiologic function of the 
--- Organism as a whole, of multiple organ systems or of multiple 
--- Organs or Tissues.
-fun OrganismProcess  : Class ;
-fun OrganismProcess_Class : SubClass OrganismProcess PhysiologicProcess ;
-
--- An Organization is a corporate or similar 
--- institution. The members of an Organization typically have a common 
--- purpose or function. Note that this class also covers divisions, departments, 
--- etc. of organizations. For example, both the Shell Corporation and the 
--- accounting department at Shell would both be instances of Organization. 
--- Note too that the existence of an Organization is dependent on the existence 
--- of at least one member (since Organization is a subclass of Collection). 
--- Accordingly, in cases of purely legal organizations, a fictitious member 
--- should be assumed.
-fun Organization  : Class ;
-fun Organization_Class : SubClass Organization (both CognitiveAgent Group) ;
-
-
--- An IntentionalProcess that 
--- involves an Organization.
-fun OrganizationalProcess  : Class ;
-fun OrganizationalProcess_Class : SubClass OrganizationalProcess IntentionalProcess ;
-
--- English unit of volume equal to 1/8 of a 
--- Cup.
-fun Ounce  : Ind UnitOfVolume ;
-
-
--- The class of ClosedTwoDimensionalFigures that are 
--- produced by the intersection of a Cone with a ClosedTwoDimensionalFigure.
-fun Oval  : Class ;
-fun Oval_Class : SubClass Oval ClosedTwoDimensionalFigure ;
-
--- A TimeZone that covers much of the 
--- western part of the United States.
-fun PacificTimeZone  : Ind TimeZone ;
-
-
--- A SetOrClass is a PairwiseDisjointClass 
--- just in case every instance of the SetOrClass is either equal to or disjoint 
--- from every other instance of the SetOrClass.
-fun PairwiseDisjointClass  : Class ;
-fun PairwiseDisjointClass_Class : SubClass PairwiseDisjointClass SetOrClass ;
-
--- An Organization which is much like 
--- a MilitaryOrganization, e.g. it is made up of armed fighters, except that it 
--- is not associated with a Government.
-fun ParamilitaryOrganization  : Class ;
-fun ParamilitaryOrganization_Class : SubClass ParamilitaryOrganization MilitaryForce ;
-
--- An umbrella Class for any Word that does not 
--- fit into the other subclasses of Word. A ParticleWord is generally a small 
--- term that serves a grammatical or logical function, e.g. 'and', 'of', 
--- 'since', etc. At some point, this class might be broken up into the 
--- subclasses 'Connective', 'Preposition', etc. Note that the class ParticleWord 
--- includes both personal and possessive pronouns, e.g. 'she', 'hers', 'it', 'its', 
--- etc.
-fun ParticleWord  : Class ;
-fun ParticleWord_Class : SubClass ParticleWord Word ;
-
--- SI pressure measure. Symbol:Pa. It is the 
--- pressure of one Newton per square Meter. Pascal = N/m^2 
--- = m^(_1)*kg*s^(_2).
-fun Pascal  : Ind CompositeUnitOfMeasure ;
-
-
--- A UnaryFunction that maps a TimePosition 
--- to the TimeInterval that meets it and that begins at 
--- NegativeInfinity.
-fun PastFn  : El TimePosition -> Ind TimeInterval ;
-
-
--- A Certificate that expresses the content of an 
--- invention that has been accorded legal protection by a governemental 
--- entity.
-fun Patent  : Class ;
-fun Patent_Class : SubClass Patent Certificate ;
-
--- A UnaryFunction that maps a 
--- GraphPath to the sum of the arcWeights on the GraphArcs in 
--- the GraphPath.
-fun PathWeightFn  : El GraphPath -> Ind Quantity ;
-
-
--- A disordered process, activity, or 
--- state of the Organism as a whole, of a body system or systems, or of 
--- multiple Organs or Tissues. Included here are normal responses to a 
--- negative stimulus as well as patholologic conditions or states that are 
--- less specific than a disease. Pathologic functions frequently have 
--- systemic effects.
-fun PathologicProcess  : Class ;
-fun PathologicProcess_Class : SubClass PathologicProcess BiologicalProcess ;
-
--- PerFn maps two instances of PhysicalQuantity to 
--- the FunctionQuantity composed of these two instances. For example, 
--- (PerFn (MeasureFn 2 (MicroFn Gram)) (MeasureFn 1 (KiloFn 
--- Gram))) denotes the FunctionQuantity of 2 micrograms per kiogram. 
--- This function is useful, because it allows the knowledge engineer to 
--- dynamically generate instances of FunctionQuantity.
-fun PerFn  : El PhysicalQuantity -> El PhysicalQuantity -> Ind FunctionQuantity ;
-
-
--- Sensing some aspect of the material world. 
--- Note that the agent of this sensing is assumed to be an Animal.
-fun Perception  : Class ;
-fun Perception_Class : SubClass Perception PsychologicalProcess ;
-
--- Any Attribute whose presence is detected 
--- by an act of Perception.
-fun PerceptualAttribute  : Class ;
-fun PerceptualAttribute_Class : SubClass PerceptualAttribute InternalAttribute ;
-
--- A Series whose elements are published separately 
--- and on a periodic basis.
-fun Periodical  : Class ;
-fun Periodical_Class : SubClass Periodical Series ;
-
--- A BinaryFunction that maps a subclass of 
--- Periodical and a number to all of the issues of the Periodical corresponding 
--- to the number.
-fun PeriodicalIssueFn : Desc Periodical -> El PositiveInteger -> Desc Periodical ;
-
-
--- A Residence where people live, i.e. 
--- where people have a home.
-fun PermanentResidence  : Class ;
-fun PermanentResidence_Class : SubClass PermanentResidence Residence ;
-
--- Attribute that applies to Propositions that an 
--- Agent is permitted, by some authority, to make true.
-fun Permission  : Ind DeonticAttribute ;
-
-
--- A set of Words in a Language which form a unit, 
--- i.e. express a meaning in the Language.
-fun Phrase  : Class ;
-fun Phrase_Class : SubClass Phrase LinguisticExpression ;
-
--- An entity that has a location in space_time. 
--- Note that locations are themselves understood to have a location in 
--- space_time.
-fun Physical  : Class ;
-fun Physical_Class : SubClass Physical Entity ;
-
--- An InternalAttribute given by physical
--- properties of the object.
-fun PhysicalAttribute  : Class ;
-fun PhysicalAttribute_Class : SubClass PhysicalAttribute InternalAttribute ;
-
--- A PhysicalQuantity is a measure of 
--- some quantifiable aspect of the modeled world, such as 'the earth's 
--- diameter' (a constant length) and 'the stress in a loaded deformable 
--- solid' (a measure of stress, which is a function of three spatial 
--- coordinates). Every PhysicalQuantity is either a ConstantQuantity
--- or FunctionQuantity. Instances of ConstantQuantity are dependent 
--- on a UnitOfMeasure, while instances of FunctionQuantity are 
--- Functions that map instances of ConstantQuantity to other instances 
--- of ConstantQuantity (e.g., a TimeDependentQuantity is a
--- FunctionQuantity). Although the name and definition of 
--- PhysicalQuantity is borrowed from physics, a PhysicalQuantity need 
--- not be material. Aside from the dimensions of length, time, velocity, 
--- etc., nonphysical dimensions such as currency are also possible. 
--- Accordingly, amounts of money would be instances of PhysicalQuantity. 
--- A PhysicalQuantity is distinguished from a pure Number by the fact that 
--- the former is associated with a dimension of measurement.
-fun PhysicalQuantity  : Class ;
-fun PhysicalQuantity_Class : SubClass PhysicalQuantity Quantity ;
-
--- The physical state of an Object. There 
--- are three reified instances of this Class: Solid, Liquid, and Gas. 
--- Physical changes are not characterized by the transformation of one 
--- substance into another, but rather by the change of the form (physical 
--- states) of a given substance. For example, melting an iron nail yields a 
--- substance still called iron.
-fun PhysicalState  : Class ;
-fun PhysicalState_Class : SubClass PhysicalState InternalAttribute ;
-
--- PhysicalSystem is the class of complex 
--- Physical things. A PhysicalSystem may have one or more 
--- corresponding abstract Graph representations.
-fun PhysicalSystem  : Class ;
-fun PhysicalSystem_Class : SubClass PhysicalSystem Physical ;
-
--- A normal process of an Organism 
--- or part of an Organism.
-fun PhysiologicProcess  : Class ;
-fun PhysiologicProcess_Class : SubClass PhysiologicProcess BiologicalProcess ;
-
--- Pi is the RealNumber that 
--- is the ratio of the perimeter of a circle to its diameter. It is 
--- approximately equal to 3.141592653589793.
-fun Pi  : Ind PositiveRealNumber ;
-
-
--- A UnaryFunction that maps a UnitOfMeasure into 
--- a UnitOfMeasure that is equal to .000000000001 units of the original 
--- UnitOfMeasure. For example, (PicoFn SecondDuration) is .000000000001 
--- SecondDurations.
-fun PicoFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- English unit of volume equal to 1/2 of a 
--- Quart.
-fun Pint  : Ind UnitOfVolume ;
-
-
--- A specification of a sequence of Processes which 
--- is intended to satisfy a specified purpose at some future time.
-fun Plan  : Class ;
-fun Plan_Class : SubClass Plan Procedure ;
-
--- The value of an angle in a plane.
-fun PlaneAngleMeasure  : Class ;
-fun PlaneAngleMeasure_Class : SubClass PlaneAngleMeasure AngleMeasure ;
-
--- Specifying a set of actions in order to meet a 
--- set of goals or objectives.
-fun Planning  : Class ;
-fun Planning_Class : SubClass Planning IntentionalPsychologicalProcess ;
-
--- An Organism having cellulose cell walls, growing 
--- by synthesis of Substances, generally distinguished by the presence of 
--- chlorophyll, and lacking the power of locomotion.
-fun Plant  : Class ;
-fun Plant_Organism  : SubClassC Plant Organism (\PLANT -> and (forall PlantSubstance (\SUBSTANCE -> part(var PlantSubstance Object ? SUBSTANCE)(var Organism Object ? PLANT))) (forall PlantAnatomicalStructure (\STRUCTURE -> part(var PlantAnatomicalStructure Object ? STRUCTURE)(var Organism Object ? PLANT))));
-
-
--- AnatomicalStructures that 
--- are possessed exclusively by Plants.
-fun PlantAnatomicalStructure  : Class ;
-fun PlantAnatomicalStructure_Class : SubClass PlantAnatomicalStructure AnatomicalStructure ;
-
--- BodySubstances that are produced 
--- exclusively by Plants.
-fun PlantSubstance  : Class ;
-fun PlantSubstance_Class : SubClass PlantSubstance BodySubstance ;
-
--- An extremely energetic PhysicalState that consists 
--- of atomic nuclei stripped of electrons. That is, a plasma is composed of 
--- positive ions and free electrons. Plasma behaves differently enough from 
--- Gas that it is referred to as the fourth state of matter.
-fun Plasma  : Ind PhysicalState ;
-
-
--- The shape of an Object with this Attribute 
--- can easily be altered.
-fun Pliable  : Ind InternalAttribute ;
-
-
--- A Poisoning is caused by an external 
--- substance. Since Poisoning is not possible without some biologic 
--- function which affects the Organism being injured, it is a subclass 
--- of BiologicalProcess.
-fun Poisoning  : Class ;
-fun Poisoning_Class : SubClass Poisoning Injuring ;
-
--- The Class of Processes where the agent
--- pierces the surface of the Object with an instrument.
-fun Poking  : Class ;
-fun Poking_Class : SubClass Poking IntentionalProcess ;
-
--- Any GovernmentOrganization 
--- that is charged with domestic enforcement of the laws of the Government.
-fun PoliceOrganization  : Class ;
-fun PoliceOrganization_Class : SubClass PoliceOrganization GovernmentOrganization ;
-
--- An Organization that is attempting to bring about some sort 
--- of political change.
-fun PoliticalOrganization  : Class ;
-fun PoliticalOrganization_Class : SubClass PoliticalOrganization Organization ;
-
--- An OrganizationalProcess carried 
--- out by, for or against officially constituted governments. Some examples 
--- would be voting on proposed legislation, electing a government representative, 
--- or even overthrowing a government in a revolution.
-fun PoliticalProcess  : Class ;
-fun PoliticalProcess_Class : SubClass PoliticalProcess OrganizationalProcess ;
-
--- A powder produced by FloweringPlants that contains male 
--- gametes and is capable of fertilizing the seeds of FloweringPlants of the same 
--- species.
-fun Pollen  : Class ;
-fun Pollen_Class : SubClass Pollen (both PlantAnatomicalStructure ReproductiveBody) ;
-
-
--- An Object with this Attribute has 
--- different colors on different parts of its surface.
-fun Polychromatic  : Ind ColorAttribute ;
-
-
--- A formal position of reponsibility within an 
--- Organization. Examples of Positions include president, laboratory 
--- director, senior researcher, sales representative, etc.
-fun Position  : Class ;
-fun Position_Class : SubClass Position SocialRole ;
-
--- Attributes characterizing the 
--- orientation of an Object, e.g. Vertical versus Horizontal, Left 
--- versus Right etc.
-fun PositionalAttribute  : Class ;
-fun PositionalAttribute_Class : SubClass PositionalAttribute RelationalAttribute ;
-
--- The TimePoint that is after 
--- all other TimePoints.
-fun PositiveInfinity  : Ind TimePoint ;
-
-
--- An Integer that is greater than zero.
-fun PositiveInteger  : Class ;
-fun PositiveInteger_Class : SubClass PositiveInteger (both NonnegativeInteger PositiveRealNumber) ;
-
-
--- A RealNumber that is greater than 
--- zero.
-fun PositiveRealNumber  : Class ;
-fun PositiveRealNumber_NonnegativeRealNumber  : SubClassC PositiveRealNumber NonnegativeRealNumber (\NUMBER -> greaterThan(var NonnegativeRealNumber Quantity ? NUMBER)(el Integer Quantity ? (toInt 0)));
-
-
--- Attribute that applies to Propositions that are 
--- possible, i.e. true in at least one possible world.
-fun Possibility  : Ind AlethicAttribute ;
-
-
--- English pound of force. The conversion
--- factor depends on the local value of the acceleration of free fall. A
--- mean value is used in the conversion axiom associated with this 
--- constant.
-fun PoundForce  : Ind CompositeUnitOfMeasure ;
-
-
--- English mass unit of pounds.
-fun PoundMass  : Ind UnitOfMass ;
-
-
--- (PowerSetFn ?CLASS) maps the SetOrClass 
--- ?CLASS to the SetOrClass of all subclasses of ?CLASS.
-fun PowerSetFn : El SetOrClass -> Desc SetOrClass ;
-
-
--- Precipitation is the process of 
--- water molecules falling from the air to the ground, in either a 
--- liquid or frozen state.
-fun Precipitation  : Class ;
-fun Precipitation_Class : SubClass Precipitation (both Falling (both WaterMotion WeatherProcess)) ;
-
-
--- A UnaryFunction that maps an Integer to 
--- its predecessor, e.g. the predecessor of 5 is 4.
-fun PredecessorFn  : El Integer -> Ind Integer ;
-
-
--- The Class of IntentionalPsychologicalProcesses 
--- which involve the formulation of a Proposition about a state of affairs 
--- which might be realized in the future.
-fun Predicting  : Class ;
-fun Predicting_Class : SubClass Predicting IntentionalPsychologicalProcess ;
-
--- (PremisesFn ?ARGUMENT) returns the complete 
--- set of premises of the Argument ?ARGUMENT.
-fun PremisesFn  : El Argument -> Ind Proposition ;
-
-
--- A Phrase that begins with a 
--- preposition and that functions as an Adjective or an Adverb.
-fun PrepositionalPhrase  : Class ;
-fun PrepositionalPhrase_Class : SubClass PrepositionalPhrase Phrase ;
-
--- Any SocialInteraction where a 
--- CognitiveAgent or Group of CognitiveAgents attempts to make 
--- another CognitiveAgent or Group of CognitiveAgents believe 
--- something that is false. This covers deceit, affectation, 
--- impersonation, and entertainment productions, to give just a few 
--- examples.
-fun Pretending  : Class ;
-fun Pretending_Class : SubClass Pretending SocialInteraction ;
-
--- Colors which can be blended to form any 
--- color and which cannot be derived from any other colors.
-fun PrimaryColor  : Class ;
-fun PrimaryColor_Class : SubClass PrimaryColor ColorAttribute ;
-
--- The Class of Mammals which are 
--- Primates.
-fun Primate  : Class ;
-fun Primate_Class : SubClass Primate Mammal ;
-
--- An Integer that is evenly divisible only 
--- by itself and 1.
-fun PrimeNumber  : Class ;
-fun PrimeNumber_Class : SubClass PrimeNumber Integer ;
-
--- A class containing all of the Attributes 
--- relating to objective, qualitative assessments of probability, e.g. Likely and 
--- Unlikely.
-fun ProbabilityAttribute  : Class ;
-fun ProbabilityAttribute_Class : SubClass ProbabilityAttribute ObjectiveNorm ;
-
--- One of the basic ProbabilityRelations, 
--- ProbabilityFn is used to state the a priori probability of a state of 
--- affairs. (ProbabilityFn ?FORMULA) denotes the a priori probability 
--- of ?FORMULA.
-fun ProbabilityFn  : Formula -> Ind RealNumber ;
-
-
--- A sequence_dependent specification. Some 
--- examples are ComputerPrograms, finite_state machines, cooking recipes, 
--- musical scores, conference schedules, driving directions, and the scripts 
--- of plays and movies.
-fun Procedure  : Class ;
-fun Procedure_Class : SubClass Procedure Proposition ;
-
--- The class of things that happen 
--- and have temporal parts or stages. Examples include extended events 
--- like a football match or a race, actions like Pursuing and Reading, 
--- and biological processes. The formal definition is: anything that occurs in
--- time but is not an Object. Note that a Process may have 
--- participants 'inside' it which are Objects, such as the players 
--- in a football match. In a 4D ontology, a Process is something whose 
--- spatiotemporal extent is thought of as dividing into temporal stages 
--- roughly perpendicular to the time_axis.
-fun Process  : Class ;
-fun Process_Class : SubClass Process Physical ;
-
--- An Artifact that is produced by Manufacture.
-fun Product  : Class ;
-fun Product_Class : SubClass Product Artifact ;
-
--- Prohibition is the DeonticAttribute that 
--- applies to Formulas that an Agent is forbidden, by some authority, 
--- to make true.
-fun Prohibition  : Ind DeonticAttribute ;
-
-
--- Attribute that applies to Propositions that 
--- an Agent promises to make true. Promises may be implicit or explicit. 
--- They may be expressed in a written or verbal or gestural manner.
-fun Promise  : Ind DeonticAttribute ;
-
-
--- A UnaryFunction that maps an Agent to the 
--- Set of Objects owned by the Agent.
-fun PropertyFn  : El Agent -> Ind Set ;
-
-
--- Propositions are Abstract entities that 
--- express a complete thought or a set of such thoughts. As an example, 
--- the formula '(instance Yojo Cat)' expresses the Proposition that the 
--- entity named Yojo is an element of the Class of Cats. Note that 
--- propositions are not restricted to the content expressed by individual 
--- sentences of a Language. They may encompass the content expressed by 
--- theories, books, and even whole libraries. It is important to distinguish 
--- Propositions from the ContentBearingObjects that express them. A 
--- Proposition is a piece of information, e.g. that the cat is on the mat, 
--- but a ContentBearingObject is an Object that represents this information. 
--- A Proposition is an abstraction that may have multiple representations: 
--- strings, sounds, icons, etc. For example, the Proposition that the cat is 
--- on the mat is represented here as a string of graphical characters displayed 
--- on a monitor and/or printed on paper, but it can be represented by a sequence 
--- of sounds or by some non_latin alphabet or by some cryptographic form
-fun Proposition  : Class ;
-fun Proposition_Class : SubClass Proposition Abstract ;
-
--- The BodyPosition of lying down, being in a 
--- horizontal position.
-fun Prostrate  : Ind BodyPosition ;
-
-
--- A Nutrient made up of amino acids joined by 
--- peptide bonds.
-fun Protein  : Class ;
-fun Protein_Class : SubClass Protein Nutrient ;
-
--- Components of the AtomicNucleus. They have a 
--- positive charge.
-fun Proton  : Class ;
-fun Proton_Class : SubClass Proton SubatomicParticle ;
-
--- The Class of pseudographs. A pseudograph 
--- is a Graph containing at least one GraphLoop.
-fun PseudoGraph  : Class ;
-fun PseudoGraph_Class : SubClass PseudoGraph Graph ;
-
--- Attributes that characterize the mental 
--- or behavioral life of an Organism.
-fun PsychologicalAttribute  : Class ;
-fun PsychologicalAttribute_Class : SubClass PsychologicalAttribute BiologicalAttribute ;
-
--- A clinically significant 
--- dysfunction whose major manifestation is behavioral or psychological. 
--- These dysfunctions may have identified or presumed biological etiologies 
--- or manifestations.
-fun PsychologicalDysfunction  : Class ;
-fun PsychologicalDysfunction_Class : SubClass PsychologicalDysfunction (both DiseaseOrSyndrome PsychologicalAttribute) ;
-
-
--- A BiologicalProcess which takes place in 
--- the mind or brain of an Organism and which may be manifested in the behavior 
--- of the Organism.
-fun PsychologicalProcess  : Class ;
-fun PsychologicalProcess_Class : SubClass PsychologicalProcess BiologicalProcess ;
-
--- The Manufacture of Texts. Note that 
--- there is no implication that the Texts are distributed. Such 
--- distribution, when it occurs, is an instance of Dissemination.
-fun Publication  : Class ;
-fun Publication_Class : SubClass Publication (both ContentDevelopment Manufacture) ;
-
-
--- A Contract between two Agents in 
--- which one Agent agrees to render the other some good or service in 
--- exchange for currency.
-fun PurchaseContract  : Ind DeonticAttribute ;
-
-
--- The Class of Substances with constant 
--- composition. A PureSubstance can be either an element (ElementalSubstance) 
--- or a compound of elements (CompoundSubstance). Examples: Table salt 
--- (sodium chloride, NaCl), sugar (sucrose, C_{12}H_{22}O_{11}), water (H_2O), 
--- iron (Fe), copper (Cu), and oxygen (O_2).
-fun PureSubstance  : Class ;
-fun PureSubstance_Class : SubClass PureSubstance Substance ;
-
--- The class of IntentionalProcesses where something is 
--- sought. Some examples would be hunting, shopping, trawling, and stalking.
-fun Pursuing  : Class ;
-fun Pursuing_Class : SubClass Pursuing IntentionalProcess ;
-
--- The Class of Processes where something is put 
--- in a location. Note that the location is specified with the CaseRole 
--- destination.
-fun Putting  : Class ;
-fun Putting_Class : SubClass Putting Transfer ;
-
--- Any specification of how many or how much of 
--- something there is. Accordingly, there are two subclasses of Quantity: 
--- Number (how many) and PhysicalQuantity (how much).
-fun Quantity  : Class ;
-fun Quantity_Class : SubClass Quantity Abstract ;
-
--- Any InternalChange where a PhysicalQuantity 
--- associated with the patient is altered.
-fun QuantityChange  : Class ;
-fun QuantityChange_Class : SubClass QuantityChange InternalChange ;
-
--- English unit of volume equal to 1/4 of a 
--- UnitedStatesGallon.
-fun Quart  : Ind UnitOfVolume ;
-
-
--- A request for information. For example, John asked 
--- Bill if the President had said anything about taxes in his State of the Union 
--- address.
-fun Questioning  : Class ;
-fun Questioning_Class : SubClass Questioning Directing ;
-
--- SI plane angle measure. Symbol: rad. It is the 
--- angle of a circle subtended by an arc equal in length to the circle's 
--- radius. Another definition is: the plane angle between two radii of a 
--- circle which cut off on the circumference an arc equal in length to the 
--- radius. Radian = m/m = 1.
-fun Radian  : Ind UnitOfAngularMeasure ;
-
-
--- Processes in which some form of electromagnetic 
--- radiation, e.g. radio waves, light waves, electrical energy, etc., is given 
--- off or absorbed by something else.
-fun Radiating  : Class ;
-fun Radiating_Class : SubClass Radiating Motion ;
-
--- RadiatingElectromagnetic 
--- is the subclass of Radiating processes in which electromagnetic 
--- radiation is transmitted or absorbed.
-fun RadiatingElectromagnetic  : Class ;
-fun RadiatingElectromagnetic_Class : SubClass RadiatingElectromagnetic Radiating ;
-
--- Any instance of Radiating where the 
--- wavelengths are longer than those of visible light and shorter than those 
--- of radio emissions.
-fun RadiatingInfrared  : Class ;
-fun RadiatingInfrared_Class : SubClass RadiatingInfrared RadiatingElectromagnetic ;
-
--- The subclass of Radiating in which 
--- light is given off or absorbed. Some examples include blinking, flashing, 
--- and glittering.
-fun RadiatingLight  : Class ;
-fun RadiatingLight_Class : SubClass RadiatingLight RadiatingElectromagnetic ;
-
--- Releasing atomic energy, i.e. energy from 
--- a nuclear reaction.
-fun RadiatingNuclear  : Class ;
-fun RadiatingNuclear_Class : SubClass RadiatingNuclear Radiating ;
-
--- The subclass of Radiating in which 
--- sound waves are given off or absorbed. Some examples include creaking, 
--- roaring, and whistling.
-fun RadiatingSound  : Class ;
-fun RadiatingSound_Class : SubClass RadiatingSound Radiating ;
-
-fun RadiatingXRay  : Class ;
-fun RadiatingXRay_Class : SubClass RadiatingXRay RadiatingElectromagnetic ;
--- A TemperatureMeasure. Note 
--- that 0 RankineDegrees is the same as the absolute zero (i.e. 0 
--- KelvinDegrees).
-fun RankineDegree  : Ind UnitOfTemperature ;
-
-
--- Any RealNumber that is the product of 
--- dividing two Integers.
-fun RationalNumber  : Class ;
-fun RationalNumber_Class : SubClass RationalNumber RealNumber ;
-
--- (RationalNumberFn ?NUMBER) returns 
--- the rational representation of ?NUMBER.
-fun RationalNumberFn  : El Number -> Ind RationalNumber ;
-
-
--- A subclass of ContentDevelopment in which 
--- content is converted from a written form into a spoken representation. 
--- Note that the class Interpreting should be used in cases where a 
--- Text is read silently.
-fun Reading  : Class ;
-fun Reading_Class : SubClass Reading ContentDevelopment ;
-
--- Any Number that can be expressed as a 
--- (possibly infinite) decimal, i.e. any Number that has a position 
--- on the number line.
-fun RealNumber  : Class ;
-fun RealNumber_Class : SubClass RealNumber Number ;
-
--- (RealNumberFn ?NUMBER) returns the part of 
--- ?NUMBER that is a RealNumber.
-fun RealNumberFn  : El Number -> Ind RealNumber ;
-
-
--- The Class of IntentionalPsychologicalProcesses 
--- which involve concluding, on the basis of either deductive or inductive 
--- evidence, that a particular Proposition or Sentence is true.
-fun Reasoning  : Class ;
-fun Reasoning_Class : SubClass Reasoning IntentionalPsychologicalProcess ;
-
--- (ReciprocalFn ?NUMBER) is the reciprocal 
--- element of ?NUMBER with respect to the multiplication operator 
--- (MultiplicationFn), i.e. 1/?NUMBER. Not all numbers have a reciprocal 
--- element. For example the number 0 does not. If a number ?NUMBER has a 
--- reciprocal ?RECIP, then the product of ?NUMBER and ?RECIP will be 
--- 1, e.g. 3*1/3 = 1. The reciprocal of an element is equal to 
--- applying the ExponentiationFn function to the element to the power 
--- _1.
-fun ReciprocalFn  : El Quantity -> Ind Quantity ;
-
-
--- A Process that is carried out for 
--- the purpose of recreation or exercise. Since RecreationOrExercise is a 
--- subclass of IntentionalProcess, the intent of a process determines whether 
--- or not it is an instance of the class. Hence, if John and Bill watch the same 
--- program on television, and John watches it to relax while Bill watches it solely 
--- to satisfy an educational requirement, then John's watching the movie is an 
--- instance of RecreationOrExercise, while Bill's is not (both cases of 
--- watching the television program would however be in the class of Seeing, since 
--- being an instance of this latter class is not determined by intention).
-fun RecreationOrExercise  : Class ;
-fun RecreationOrExercise_Class : SubClass RecreationOrExercise IntentionalProcess ;
-
--- A function that is useful for generating 
--- recurring time intervals. For example, (RecurrentTimeIntervalFn (HourFn 6 Day) 
--- (HourFn 12 Day)) returns the Class of TimeIntervals beginning at 6 in the 
--- morning and ending at 12 noon. For another example, (RecurrentTimeInterval 
--- Saturday Sunday) returns the Class of all weekends. For still another example, 
--- (RecurrentTimeInterval June August) returns the Class containing the academic 
--- summer period.
-fun RecurrentTimeIntervalFn : Desc TimeInterval -> Desc TimeInterval -> Desc TimeInterval ;
-
-
--- The Attribute of redness.
-fun Red  : Ind PrimaryColor ;
-
-
--- A topographic location. Regions encompass 
--- surfaces of Objects, imaginary places, and GeographicAreas. Note 
--- that a Region is the only kind of Object which can be located at 
--- itself. Note too that Region is not a subclass of SelfConnectedObject, 
--- because some Regions, e.g. archipelagos, have parts which are not 
--- connected with one another.
-fun Region  : Class ;
-fun Region_Class : SubClass Region Object ;
-
--- an Guiding whose aim is the enforcement 
--- of rules or regulations. Note the key differences between RegulatoryProcess 
--- and the related concept Managing. The latter implies a long_term relationship 
--- between a single manager and limited number of agents who are managed, while the 
--- former implies a normative standard to which the activities of the regulated are 
--- referred.
-fun RegulatoryProcess  : Class ;
-fun RegulatoryProcess_Class : SubClass RegulatoryProcess Guiding ;
-
--- Any Attribute that an Entity has by 
--- virtue of a relationship that it bears to another Entity or set of Entities, 
--- e.g. SocialRoles and PositionalAttributes.
-fun RelationalAttribute  : Class ;
-fun RelationalAttribute_Class : SubClass RelationalAttribute Attribute ;
-
--- A BinaryFunction that maps two 
--- SetOrClasses to the difference between these SetOrClasses. More 
--- precisely, (RelativeComplementFn ?CLASS1 ?CLASS2) denotes the instances 
--- of ?CLASS1 that are not also instances of ?CLASS2.
-fun RelativeComplementFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
-
-
--- A means of converting TimePositions 
--- between different TimeZones. (RelativeTimeFn ?TIME ?ZONE) 
--- denotes the TimePosition in CoordinatedUniversalTime that is 
--- contemporaneous with the TimePosition ?TIME in TimeZone ?ZONE.
--- For example, (RelativeTimeFn (MeasureFn 14 HourDuration) EasternTimeZone) 
--- would return the value (MeasureFn 19 HourDuration).
-fun RelativeTimeFn  : El TimePosition -> El TimeZone -> Ind TimePosition ;
-
-
--- Any instance of Transfer which results in 
--- a situation where it is not the case that the agent grasps something 
--- which he/she grasps previously.
-fun Releasing  : Class ;
-fun Releasing_Class : SubClass Releasing Transfer ;
-
--- An Organization whose members 
--- share a set of religious beliefs.
-fun ReligiousOrganization  : Class ;
-fun ReligiousOrganization_Class : SubClass ReligiousOrganization (both BeliefGroup Organization) ;
-
-
--- An OrganizationalProcess that is 
--- carried out within or by a ReligiousOrganization.
-fun ReligiousProcess  : Class ;
-fun ReligiousProcess_Class : SubClass ReligiousProcess OrganizationalProcess ;
-
--- (RemainderFn ?NUMBER ?DIVISOR) is the 
--- remainder of the number ?NUMBER divided by the number ?DIVISOR. 
--- The result has the same sign as ?DIVISOR.
-fun RemainderFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- The Class of PsychologicalProcesses which 
--- involve the recollection of prior experiences and/or of knowledge 
--- which was previously acquired.
-fun Remembering  : Class ;
-fun Remembering_Class : SubClass Remembering PsychologicalProcess ;
-
--- The Class of Processes where something is 
--- taken away from a location. Note that the thing removed and the location 
--- are specified with the CaseRoles patient and origin, respectively.
-fun Removing  : Class ;
-fun Removing_Class : SubClass Removing Transfer ;
-
--- The Class of Processes where the agent 
--- makes a modification or series of modifications to an Object that is not 
--- functioning as intended so that it works properly.
-fun Repairing  : Class ;
-fun Repairing_Class : SubClass Repairing IntentionalProcess ;
-
--- The Process of biological reproduction. 
--- This can be either a sexual or an asexual process.
-fun Replication  : Class ;
-fun Replication_Class : SubClass Replication OrganismProcess ;
-
--- Any ArtWork that represents 
--- something Physical.
-fun RepresentationalArtWork  : Class ;
-fun RepresentationalArtWork_Class : SubClass RepresentationalArtWork (both ArtWork Icon) ;
-
-
--- Reproductive structure of Organisms. 
--- Consists of an Embryonic Object and a nutritive/protective envelope. 
--- Note that this class includes seeds, spores, and FruitOrVegetables, as 
--- well as the eggs produced by Animals.
-fun ReproductiveBody  : Class ;
-fun ReproductiveBody_Class : SubClass ReproductiveBody BodyPart ;
-
--- A ColdBloodedVertebrate having an external 
--- covering of scales or horny plates. Reptiles breathe by means of 
--- Lungs and generally lay eggs.
-fun Reptile  : Class ;
-fun Reptile_Class : SubClass Reptile ColdBloodedVertebrate ;
-
--- A request expresses a desire that some future 
--- action be performed. For example, the 5th Battalion requested air support 
--- from the 3rd Bomber Group. Note that this class covers proposals, 
--- recommendations, suggestions, etc.
-fun Requesting  : Class ;
-fun Requesting_Class : SubClass Requesting Directing ;
-
--- A Building or part of a Building which provides 
--- some accomodation for sleeping.
-fun Residence  : Class ;
-fun Residence_Class : SubClass Residence StationaryArtifact ;
-
--- A Building which provides some 
--- accomodation for sleeping. Note that this class does not cover just 
--- permanent residences, e.g. Houses and condominium and apartment buildings, 
--- but also temporary residences, e.g. hotels and dormitories. 
--- ResidentialBuildings are also distinguished from CommercialBuildings, 
--- which are intended to serve an organizational rather than a residential 
--- function.
-fun ResidentialBuilding  : Class ;
-fun ResidentialBuilding_Class : SubClass ResidentialBuilding (both Building Residence) ;
-
-
--- This PositionalAttribute is derived from the 
--- left/right schema. Note that this means directly to the right, so that, 
--- if one object is to the right of another, then the projections of the 
--- two objects overlap.
-fun Right  : Ind AntiSymmetricPositionalAttribute ;
-
-
--- The shape of an Object with this Attribute 
--- cannot be altered without breaking.
-fun Rigid  : Ind InternalAttribute ;
-
-
--- Roadway is the subclass of LandTransitways 
--- that are areas intended for surface travel by self_powered, wheeled 
--- vehicles, excluding those that travel on tracks. Roadways have been 
--- at least minimally improved to enable the passage of vehicles. 
--- Roadways include dirt and gravelled roads, paved streets, and 
--- expressways.
-fun Roadway  : Class ;
-fun Roadway_Class : SubClass Roadway LandTransitway ;
-
--- The Class of Mammals with one or two pairs 
--- of incisors for gnawing. Includes rats, mice, guinea pigs, and 
--- rabbits.
-fun Rodent  : Class ;
-fun Rodent_Class : SubClass Rodent Mammal ;
-
--- A properPart of a Building which is separated from 
--- the exterior of the Building and/or other Rooms of the Building by walls. 
--- Some Rooms may have a specific purpose, e.g. sleeping, bathing, cooking, 
--- entertainment, etc.
-fun Room  : Class ;
-fun Room_Class : SubClass Room StationaryArtifact ;
-
--- An Object with this Attribute has a rough 
--- surface.
-fun Rough  : Ind TextureAttribute ;
-
-
--- (RoundFn ?NUMBER) is the Integer closest 
--- to ?NUMBER on the number line. If ?NUMBER is halfway between two 
--- Integers (for example 3.5), it denotes the larger Integer.
-fun RoundFn  : El Quantity -> Ind Quantity ;
-
-
--- Ambulating relatively quickly, i.e. moving in such a 
--- way that, with each step, neither foot is in contact with the ground for a 
--- period of time.
-fun Running  : Class ;
-fun Running_Class : SubClass Running Ambulating ;
-
--- A WaterArea whose Water is saline, e.g. 
--- oceans and seas.
-fun SaltWaterArea  : Class ;
-fun SaltWaterArea_Class : SubClass SaltWaterArea WaterArea ;
-
--- A Class of Attributes that specify, in 
--- a qualitative manner, the extent of the presence of one kind of Object in 
--- another kind of Object.
-fun SaturationAttribute  : Class ;
-fun SaturationAttribute_Class : SubClass SaturationAttribute InternalAttribute ;
-
--- The Class of all calendar Saturdays.
-fun Saturday  : Class ;
-fun Saturday_Class : SubClass Saturday Day ;
-
--- The Class of all clock Seconds.
-fun Second  : Class ;
-fun Second_Class : SubClass Second TimeInterval ;
-
--- SI UnitOfDuration. Symbol: s. 
--- It is one of the base units in SI, and it is currently defined as 
--- follows: the SecondDuration is the duration of 9192631770 periods of 
--- the radiation corresponding to the transition between the two hyperfine 
--- levels of the ground state of the cesium 133 atom.
-fun SecondDuration  : Ind UnitOfDuration ;
-
-
--- A BinaryFunction that assigns a PositiveRealNumber and a 
--- subclass of Minutes to the Seconds within each Minute corresponding to that 
--- PositiveRealNumber. For example, (SecondFn 4 (MinuteFn 5 Hour)) is the Class 
--- of all fourth Seconds of every fifth Minute of every hour. For another example, 
--- (SecondFn 8 Minute) would return the eighth second of every minute. For still 
--- another example, (SecondFn 9 (MinuteFn 15 (HourFn 14 (DayFn 18 (MonthFn 
--- August (YearFn 1912)))))) denotes 9 seconds and 15 minutes after 2 PM on the 18th 
--- day of August 1912.
-fun SecondFn : El PositiveRealNumber -> Desc Minute -> Desc Second ;
-
-
--- The fertilized or unfertilized female ReproductiveBody 
--- of a FloweringPlant.
-fun Seed  : Class ;
-fun Seed_Class : SubClass Seed (both PlantAnatomicalStructure ReproductiveBody) ;
-
-
--- The subclass of Perception in which the 
--- sensing is done by an ocular Organ.
-fun Seeing  : Class ;
-fun Seeing_Class : SubClass Seeing Perception ;
-
--- The Class of IntentionalPsychologicalProcesses 
--- which involve opting for one or more Entity out of a larger set of Entities. 
--- Note that this covers all cases of judging or evaluating.
-fun Selecting  : Class ;
-fun Selecting_Class : SubClass Selecting IntentionalPsychologicalProcess ;
-
--- A SelfConnectedObject is any 
--- Object that does not consist of two or more disconnected parts.
-fun SelfConnectedObject  : Class ;
-fun SelfConnectedObject_Class : SubClass SelfConnectedObject Object ;
-
--- A FinancialTransaction in which an instance of 
--- Physical is exchanged for an instance of CurrencyMeasure.
-fun Selling  : Class ;
-fun Selling_Class : SubClass Selling FinancialTransaction ;
-
--- A syntactically well_formed formula of a 
--- Language. It includes, at minimum, a predicate and a subject (which 
--- may be explicit or implicit), and it expresses a Proposition.
-fun Sentence  : Class ;
-fun Sentence_Class : SubClass Sentence LinguisticExpression ;
-
--- An Agent that has rights but may or may 
--- not have responsibilities and the ability to reason. If the latter are 
--- present, then the Agent is also an instance of CognitiveAgent. 
--- Domesticated animals are an example of SentientAgents that are not 
--- also CognitiveAgents.
-fun SentientAgent  : Class ;
-fun SentientAgent_Class : SubClass SentientAgent Agent ;
-
--- A Process where a SelfConnectedObject is 
--- separated into (some of) its parts. Note that Separating is different 
--- from Detaching in that the latter only results in the two objects not 
--- being connected. Note too that Separating is different from 
--- Removing in that one or both of the two things which are separated 
--- may or may not be moved from the location where they were separated.
-fun Separating  : Class ;
-fun Separating_Class : SubClass Separating DualObjectProcess ;
-
--- The Class of all Months which are September.
-fun September  : Class ;
-fun September_Class : SubClass September Month ;
-
--- A Text consisting of multiple self_contained units. 
--- Some examples are an encyclopedia containing a couple dozen volumes, a television 
--- series made up of many episodes, a film serial, etc.
-fun Series  : Class ;
-fun Series_Class : SubClass Series Text ;
-
--- A BinaryFunction that maps a type of Series 
--- (e.g. the Encyclopedia_Britannica or the Popular_Mechanics periodical) and a 
--- number to the volumes of the text type designated by the number.
-fun SeriesVolumeFn : Desc Series -> El PositiveInteger -> Desc Text ;
-
-
--- ServiceProcess denotes the class
--- of events in which one agent performs a service for another. The
--- service need not be commercial, and it need not be the case that
--- the serviceRecipient pays or recompenses the serviceProvider
--- for the service.
-fun ServiceProcess  : Class ;
-fun ServiceProcess_Class : SubClass ServiceProcess SocialInteraction ;
-
--- A SetOrClass that satisfies extensionality as well as
--- other constraints specified by some choice of set theory. Sets differ 
--- from Classes in two important respects. First, Sets are extensional _ 
--- two Sets with the same elements are identical. Second, a Set can be 
--- an arbitrary stock of objects. That is, there is no requirement that Sets 
--- have an associated condition that determines their membership. Note that Sets 
--- are not assumed to be unique sets, i.e. elements of a Set may occur more 
--- than once in the Set.
-fun Set  : Class ;
-fun Set_Class : SubClass Set SetOrClass ;
-
--- The SetOrClass of Sets
--- and Classes, i.e. any instance of Abstract that has elements or
--- instances.
-fun SetOrClass  : Class ;
-fun SetOrClass_Class : SubClass SetOrClass Abstract ;
-
--- Attributes that indicate the sex of an 
--- Organism.
-fun SexAttribute  : Class ;
-fun SexAttribute_Class : SubClass SexAttribute BiologicalAttribute ;
-
--- Sexual Processes of biological 
--- reproduction.
-fun SexualReproduction  : Class ;
-fun SexualReproduction_Class : SubClass SexualReproduction Replication ;
-
--- Any Attribute that relates to the 
--- shape of an Object.
-fun ShapeAttribute  : Class ;
-fun ShapeAttribute_Class : SubClass ShapeAttribute InternalAttribute ;
-
--- The Process of changing the shape of an Object.
-fun ShapeChange  : Class ;
-fun ShapeChange_Class : SubClass ShapeChange InternalChange ;
-
--- The subclass of Impelling where the patient 
--- is a projectile that is fired through the air by means of some sort of 
--- Device.
-fun Shooting  : Class ;
-fun Shooting_Class : SubClass Shooting Impelling ;
-
--- A ShoreArea is a LandArea approximately 
--- 1_3 km wide bordering a body of water, such as an ocean, bay, river, 
--- or lake. A ShoreArea may comprise a variety of LandForms, such as dunes, 
--- sloughs, and marshes.
-fun ShoreArea  : Class ;
-fun ShoreArea_Class : SubClass ShoreArea LandArea ;
-
--- SI electric conductance measure. Symbol: S. 
--- In the case of direct current, the conductance in Siemens is the 
--- reciprocal of the resistance in Ohms, in the case of alternating current, 
--- it is the reciprocal of the impedance in ohms. siemens = A/V = 
--- m^(_2)*kg(_1)*s^(3)*A^2.
-fun Siemens  : Ind CompositeUnitOfMeasure ;
-
-
--- SI dose equivalent measure. Symbol: Sv. It is 
--- a unit of biologic dose of ionizing radiation. The Sievert makes it 
--- possible to normalize doses of different types of radiation. It takes 
--- into account the relative biologic effectiveness of ionizing radiation, 
--- since each form of such radiation__e.g., X rays, gamma rays, neutrons__
--- has a slightly different effect on living tissue for a given absorbed 
--- dose. The dose equivalent of a given type of radiation (in Sievert) is 
--- the dose of the radiation in Gray multiplied by a quality factor that 
--- is based on the relative biologic effectiveness of the radiation. 
--- Accordingly, one Sievert is generally defined as the amount of radiation 
--- roughly equivalent in biologic effectiveness to one Gray of gamma 
--- radiation. Sievert = J/kg = m^2*s^(_2)
-fun Sievert  : Ind CompositeUnitOfMeasure ;
-
-
--- (SignumFn ?NUMBER) denotes the sign of ?NUMBER. 
--- This is one of the following values: _1, 1, or 0.
-fun SignumFn  : El RealNumber -> Ind Integer ;
-
-
--- (SineFn ?DEGREE) is the sine of the 
--- PlaneAngleMeasure ?DEGREE. The sine of ?DEGREE is the ratio of the side 
--- opposite ?DEGREE to the hypotenuse in a right_angled triangle.
-fun SineFn  : El PlaneAngleMeasure -> Ind RealNumber ;
-
-
--- Speaking that is also Music.
-fun Singing  : Class ;
-fun Singing_Class : SubClass Singing (both Music Speaking) ;
-
-
--- SingleAgentProcess 
--- is the Class of all Processes that require exactly one agent in order to occur.
-fun SingleAgentProcess  : Class ;
-fun SingleAgentProcess_Class : SubClass SingleAgentProcess Process ;
-
--- A PermanentResidence which is 
--- intended to be the home of a single SocialUnit. This class covers 
--- Houses, ApartmentUnits, and CondominiumUnits.
-fun SingleFamilyResidence  : Class ;
-fun SingleFamilyResidence_Class : SubClass SingleFamilyResidence PermanentResidence ;
-
--- The BodyPosition of being recumbent, i.e. 
--- knees bent and back side supported.
-fun Sitting  : Ind BodyPosition ;
-
-
--- The system of Bones that make up the supporting structure 
--- of Vertebrates.
-fun Skeleton  : Class ;
-fun Skeleton_Class : SubClass Skeleton (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- English mass unit of slugs.
-fun Slug  : Ind UnitOfMass ;
-
-
--- The subclass of Perception in which the 
--- sensing is done by an olefactory Organ.
-fun Smelling  : Class ;
-fun Smelling_Class : SubClass Smelling Perception ;
-
--- A mixture of fine particles suspended in a gas that is 
--- produced by Combustion.
-fun Smoke  : Class ;
-fun Smoke_Class : SubClass Smoke Cloud ;
-
--- An Object with this Attribute has a smooth 
--- surface.
-fun Smooth  : Ind TextureAttribute ;
-
-
--- The subclass of 
--- IntentionalProcess that involves interactions between 
--- CognitiveAgents.
-fun SocialInteraction  : Class ;
-fun SocialInteraction_Class : SubClass SocialInteraction IntentionalProcess ;
-
--- The Class of all Attributes that 
--- specify the position or status of a CognitiveAgent within an 
--- Organization or other Group.
-fun SocialRole  : Class ;
-fun SocialRole_Class : SubClass SocialRole RelationalAttribute ;
-
--- A GroupOfPeople who all have the same home.
-fun SocialUnit  : Class ;
-fun SocialUnit_Class : SubClass SocialUnit GroupOfPeople ;
-
--- An Object has the Attribute of Solid if it 
--- has a fixed shape and a fixed volume.
-fun Solid  : Ind PhysicalState ;
-
-
--- The value of an angle in a solid.
-fun SolidAngleMeasure  : Class ;
-fun SolidAngleMeasure_Class : SubClass SolidAngleMeasure AngleMeasure ;
-
--- A liquid mixture. The most abundant component in 
--- a solution is called the solvent. Other components are called solutes. 
--- A solution, though homogeneous, may nonetheless have variable composition. 
--- Any amount of salt, up to a maximum limit, can be dissolved in a given 
--- amount of water.
-fun Solution  : Class ;
-fun Solution_Class : SubClass Solution LiquidMixture ;
-
--- The volume of sound relative to a listener.
-fun SoundAttribute  : Class ;
-fun SoundAttribute_Class : SubClass SoundAttribute RelationalAttribute ;
-
--- The compass direction of South.
-fun South  : Ind DirectionalAttribute ;
-
-
--- Any LinguisticGeneration which is also a 
--- Vocalizing, i.e. any LinguisticCommunication by a Human which 
--- involves his/her vocal cords.
-fun Speaking  : Class ;
-fun Speaking_Class : SubClass Speaking (both LinguisticCommunication Vocalizing) ;
-
-
--- Maps an instance of LengthMeasure and an instance of 
--- TimeDuration to the speed represented by this proportion of distance and time. 
--- For example, (SpeedFn (MeasureFn 55 Mile)(MeasureFn 1 HourDuration)) 
--- represents the velocity of 55 miles per hour.
-fun SpeedFn  : El LengthMeasure -> El TimeDuration -> Ind FunctionQuantity ;
-
-
--- A flexible column made out of bones called 
--- vertebrae. The main function of the SpinalColumn is to protect the 
--- spinal cord.
-fun SpinalColumn  : Class ;
-fun SpinalColumn_Class : SubClass SpinalColumn (both AnimalAnatomicalStructure Organ) ;
-
-
--- A SpokenHumanLanguage is a
--- HumanLanguage which has as its medium the human voice. It can also 
--- berepresented visually through writing, although not all 
--- SpokenHumanLanguages have a codified written form.
-fun SpokenHumanLanguage  : Class ;
-fun SpokenHumanLanguage_Class : SubClass SpokenHumanLanguage HumanLanguage ;
-
--- Any ReproductiveBody of a NonFloweringPlant.
-fun Spore  : Class ;
-fun Spore_Class : SubClass Spore (both PlantAnatomicalStructure ReproductiveBody) ;
-
-
--- A Game which requires some degree of physical 
--- exercion from the participants of the game.
-fun Sport  : Class ;
-fun Sport_Class : SubClass Sport Game ;
-
--- (SquareRootFn ?NUMBER) is the principal 
--- square root of ?NUMBER.
-fun SquareRootFn  : El RealNumber -> Ind Number ;
-
-
--- The BodyPosition of being upright, i.e. being 
--- fully extended and supported by nothing other than one's own feet.
-fun Standing  : Ind BodyPosition ;
-
-
--- Any Process where the PhysicalState 
--- of part of the patient of the Process changes.
-fun StateChange  : Class ;
-fun StateChange_Class : SubClass StateChange InternalChange ;
-
--- The class StateOfMind is distinguished from 
--- its complement TraitAttribute by the fact that instances of the former are 
--- transient while instances of the latter are persistent features of a creature's behavioral/psychological make_up.
-fun StateOfMind  : Class ;
-fun StateOfMind_Class : SubClass StateOfMind PsychologicalAttribute ;
-
--- Administrative subdivisions of a 
--- Nation that are broader than any other political subdivisions that 
--- may exist. This Class includes the states of the United States, as 
--- well as the provinces of Canada and European countries.
-fun StateOrProvince  : Class ;
-fun StateOrProvince_Class : SubClass StateOrProvince (both GeopoliticalArea LandArea) ;
-
-
--- A WaterArea in which water does not flow 
--- constantly or in the same direction, e.g. most lakes and ponds.
-fun StaticWaterArea  : Class ;
-fun StaticWaterArea_Class : SubClass StaticWaterArea WaterArea ;
-
--- Instances of this Class commit the agent to some truth. 
--- For example, John claimed that the moon is made of green cheese.
-fun Stating  : Class ;
-fun Stating_Class : SubClass Stating LinguisticCommunication ;
-
--- A StationaryArtifact is an Artifact 
--- that has a fixed spatial location. Most instances of this Class are 
--- architectural works, e.g. the Eiffel Tower, the Great Pyramids, office towers, 
--- single_family houses, etc.
-fun StationaryArtifact  : Class ;
-fun StationaryArtifact_Class : SubClass StationaryArtifact Artifact ;
-
--- SI solid angle measure. Symbol: sr. It is 
--- the solid angle of a sphere subtended by a portion of the surface whose 
--- area is equal to the square of the sphere's radius. Another definition 
--- is: the solid angle which, having its vertex in the center of the sphere, 
--- cuts off an area of the surface of the sphere equal to that of a square 
--- with sides of length equal to the radius of the sphere. Steradian = 
--- m^2/m^2 = 1.
-fun Steradian  : Ind UnitOfAngularMeasure ;
-
-
--- A relatively narrow WaterArea where the 
--- water flows constantly and in the same direction, e.g. a river, a stream, 
--- etc.
-fun StreamWaterArea  : Class ;
-fun StreamWaterArea_Class : SubClass StreamWaterArea (both FlowRegion WaterArea) ;
-
-
--- The class of ElementalSubstances that 
--- are smaller than Atoms and compose Atoms.
-fun SubatomicParticle  : Class ;
-fun SubatomicParticle_Class : SubClass SubatomicParticle ElementalSubstance ;
-
--- The Class of NormativeAttributes
--- which lack an objective criterion for their attribution, i.e. the attribution of 
--- these Attributes varies from subject to subject and even with respect to the 
--- same subject over time. This Class is, generally speaking, only used when 
--- mapping external knowledge sources to the SUMO. If a term from such a knowledge 
--- source seems to lack objective criteria for its attribution, it is assigned to 
--- this Class.
-fun SubjectiveAssessmentAttribute  : Class ;
-fun SubjectiveAssessmentAttribute_Class : SubClass SubjectiveAssessmentAttribute NormativeAttribute ;
-
--- An Object in which every part is similar to 
--- every other in every relevant respect. More precisely, something is a 
--- Substance when it has only arbitrary pieces as parts _ any parts have 
--- properties which are similar to those of the whole. Note that a Substance 
--- may nonetheless have physical properties that vary. For example, the 
--- temperature, chemical constitution, density, etc. may change from one part 
--- to another. An example would be a body of water.
-fun Substance  : Class ;
-fun Substance_Class : SubClass Substance SelfConnectedObject ;
-
--- The Class of Transfers where one thing is 
--- replaced with something else.
-fun Substituting  : Class ;
-fun Substituting_Class : SubClass Substituting (both DualObjectProcess Transfer) ;
-
-
--- If ?NUMBER1 and ?NUMBER2 are Numbers, 
--- then (SubtractionFn ?NUMBER1 ?NUMBER2) is the arithmetical difference 
--- between ?NUMBER1 and ?NUMBER2, i.e. ?NUMBER1 minus ?NUMBER2. An 
--- exception occurs when ?NUMBER1 is equal to 0, in which case 
--- (SubtractionFn ?NUMBER1 ?NUMBER2) is the negation of ?NUMBER2.
-fun SubtractionFn  : El Quantity -> El Quantity -> Ind Quantity ;
-
-
--- A UnaryFunction that maps an Integer to 
--- its successor, e.g. the successor of 5 is 6.
-fun SuccessorFn  : El Integer -> Ind Integer ;
-
-
--- A short Text that is a summary of another, 
--- longer Text.
-fun Summary  : Class ;
-fun Summary_Class : SubClass Summary Text ;
-
--- The Class of all calendar Sundays.
-fun Sunday  : Class ;
-fun Sunday_Class : SubClass Sunday Day ;
-
--- Instances of this Class suppose, for the sake of 
--- argument, that a proposition is true. For example, John considered what he 
--- would do if he won the lottery.
-fun Supposing  : Class ;
-fun Supposing_Class : SubClass Supposing LinguisticCommunication ;
-
--- Processes which involve altering 
--- the properties that apply to the surface of an Object.
-fun SurfaceChange  : Class ;
-fun SurfaceChange_Class : SubClass SurfaceChange InternalChange ;
-
--- Any TherapeuticProcess that involves making an 
--- incision in the Animal that is the patient of the TherapeuticProcess.
-fun Surgery  : Class ;
-fun Surgery_Class : SubClass Surgery TherapeuticProcess ;
-
--- A LiquidMixture where at least one of the 
--- components of the Mixture is equally distributed throughout the Mixture 
--- but is not dissolved in it.
-fun Suspension  : Class ;
-fun Suspension_Class : SubClass Suspension LiquidMixture ;
-
--- Any deliberate and controlled BodyMotion 
--- through water that is accomplished by an Organism.
-fun Swimming  : Class ;
-fun Swimming_Class : SubClass Swimming BodyMotion ;
-
--- The Class of alphanumeric sequences.
-fun SymbolicString  : Class ;
-fun SymbolicString_Class : SubClass SymbolicString ContentBearingObject ;
-
--- SymmetricAttribute is the class of 
--- PositionalAttribute that hold between two items regardless of their 
--- order or orientation.
-fun SymmetricPositionalAttribute  : Class ;
-fun SymmetricPositionalAttribute_Class : SubClass SymmetricPositionalAttribute PositionalAttribute ;
-
--- Any Substance that is the result of an 
--- IntentionalProcess, i.e. any substance that is created by Humans.
-fun SyntheticSubstance  : Class ;
-fun SyntheticSubstance_Substance  : SubClassC SyntheticSubstance Substance (\SUBSTANCE -> exists IntentionalProcess (\PROCESS -> result(var IntentionalProcess Process ? PROCESS)(var Substance Entity ? SUBSTANCE)));
-
-
--- The Class of Systeme 
--- International (SI) units.
-fun SystemeInternationalUnit  : Class ;
-fun SystemeInternationalUnit_Class : SubClass SystemeInternationalUnit UnitOfMeasure ;
-
--- The subclass of Perception in which 
--- the sensing is done by Touching. Note that Touching need not involve 
--- TactilePerception. For example, a person who has lost all sensation in 
--- both of his legs would have no TactilePerception of anything his legs 
--- were Touching.
-fun TactilePerception  : Class ;
-fun TactilePerception_Class : SubClass TactilePerception Perception ;
-
--- (TangentFn ?DEGREE) is the tangent of the 
--- PlaneAngleMeasure ?DEGREE. The tangent of ?DEGREE is the ratio of 
--- the side opposite ?DEGREE to the side next to ?DEGREE in a right_angled 
--- triangle.
-fun TangentFn  : El PlaneAngleMeasure -> Ind RealNumber ;
-
-
--- The Class of Attributes relating to 
--- the taste of Objects.
-fun TasteAttribute  : Class ;
-fun TasteAttribute_Class : SubClass TasteAttribute PerceptualAttribute ;
-
--- The subclass of Perception in which the 
--- sensing is done by of an Organ which can discriminate various tastes.
-fun Tasting  : Class ;
-fun Tasting_Class : SubClass Tasting Perception ;
-
--- Measures of temperature. 
--- In scientific circles, the temperature of something is understood as the 
--- average velocity of the atoms or molecules that make up the thing.
-fun TemperatureMeasure  : Class ;
-fun TemperatureMeasure_Class : SubClass TemperatureMeasure ConstantQuantity ;
-
--- The basic Function for expressing 
--- the composition of larger TimeIntervals out of smaller TimeIntervals. 
--- For example, if ThisSeptember is an instance of September, 
--- (TemporalCompositionFn ThisSeptember Day) denotes the Class of 
--- consecutive days that make up ThisSeptember. Note that one can obtain 
--- the number of instances of this Class by using the function CardinalityFn.
-fun TemporalCompositionFn : El TimeInterval -> Desc TimeInterval -> Desc TimeInterval ;
-
-
--- A Residence which is strictly temporary, 
--- i.e. where no one makes his/her home.
-fun TemporaryResidence  : Class ;
-fun TemporaryResidence_Class : SubClass TemporaryResidence Residence ;
-
--- A UnaryFunction that maps a UnitOfMeasure 
--- into a UnitOfMeasure that is equal to 1,000,000,000,000 units of the original 
--- UnitOfMeasure. For example, (TeraFn Hertz) is 1,000,000,000,000 Hertz.
-fun TeraFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
-
-
--- A UnaryFunction that maps a 
--- GraphArc to the terminal node of the GraphArc. Note that this 
--- is a partial function. In particular, the function is undefined 
--- for GraphArcs that are not part of a DirectedGraph.
-fun TerminalNodeFn  : El GraphArc -> Ind GraphNode ;
-
-
--- OrganizationalProcesses where someone 
--- ceases to be an employee of an Organization. Note that this covers being 
--- laid off, being fired, and voluntarily leaving a job.
-fun TerminatingEmployment  : Class ;
-fun TerminatingEmployment_Class : SubClass TerminatingEmployment LeavingAnOrganization ;
-
--- SI magnetic flux density measure. Symbol: T.
--- One Tesla equals one Weber per square Meter. Tesla = Wb/m^2 = 
--- kg*s^(_2)*A^(_1).
-fun Tesla  : Ind CompositeUnitOfMeasure ;
-
-
--- A LinguisticExpression or set of 
--- LinguisticExpressions that perform a specific function related 
--- to Communication, e.g. express a discourse about a particular 
--- topic, and that are inscribed in a CorpuscularObject by Humans.
-fun Text  : Class ;
-fun Text_Class : SubClass Text (both Artifact (both ContentBearingObject LinguisticExpression)) ;
-
-
--- Any Attribute that characterizes the 
--- texture of an Object.
-fun TextureAttribute  : Class ;
-fun TextureAttribute_Class : SubClass TextureAttribute PerceptualAttribute ;
-
--- A Process that is carried out 
--- for the purpose of curing, improving or reducing the pain associated 
--- with a DiseaseOrSyndrome.
-fun TherapeuticProcess  : Class ;
-fun TherapeuticProcess_Class : SubClass TherapeuticProcess Repairing ;
-
--- The class of GeometricFigures that 
--- have position and an extension along three dimensions, viz. geometric solids 
--- like polyhedrons and cylinders.
-fun ThreeDimensionalFigure  : Class ;
-fun ThreeDimensionalFigure_Class : SubClass ThreeDimensionalFigure GeometricFigure ;
-
--- The Class of all calendar Thursdays.
-fun Thursday  : Class ;
-fun Thursday_Class : SubClass Thursday Day ;
-
--- A
--- UnaryConstantFunctionQuantity of continuous time. All instances of
--- this Class are returned by Functions that map a time quantity into
--- another ConstantQuantity such as temperature. For example, 'the
--- temperature at the top of the Empire State Building' is a
--- TimeDependentQuantity, since its value depends on the time.
-fun TimeDependentQuantity  : Class ;
-fun TimeDependentQuantity_Class : SubClass TimeDependentQuantity UnaryConstantFunctionQuantity ;
-
--- Any measure of length of time, 
--- with or without respect to the universal timeline.
-fun TimeDuration  : Class ;
-fun TimeDuration_Class : SubClass TimeDuration TimeMeasure ;
-
--- An interval of time.
--- Note that a TimeInterval has both an extent and a location on the
--- universal timeline. Note too that a TimeInterval has no gaps,
--- i.e. this class contains only convex time intervals.
-fun TimeInterval  : Class ;
-fun TimeInterval_Class : SubClass TimeInterval TimePosition ;
-
--- A BinaryFunction that takes two TimePoints 
--- as arguments and returns the TimeInterval defined by these two TimePoints. 
--- Note that the first TimePoint must occur earlier than the second TimePoint.
-fun TimeIntervalFn  : El TimePoint -> El TimePoint -> Ind TimeInterval ;
-
-
--- The class of temporal durations (instances 
--- of TimeDuration) and positions of TimePoints and TimeIntervals along 
--- the universal timeline (instances of TimePosition).
-fun TimeMeasure  : Class ;
-fun TimeMeasure_Class : SubClass TimeMeasure ConstantQuantity ;
-
--- An extensionless point on
--- the universal timeline. The TimePoints at which Processes occur
--- can be known with various degrees of precision and approximation, but
--- conceptually TimePoints are point_like and not interval_like. That
--- is, it doesn't make sense to talk about how long a TimePoint
--- lasts.
-fun TimePoint  : Class ;
-fun TimePoint_Class : SubClass TimePoint TimePosition ;
-
--- Any TimePoint or TimeInterval 
--- along the universal timeline from NegativeInfinity to 
--- PositiveInfinity.
-fun TimePosition  : Class ;
-fun TimePosition_Class : SubClass TimePosition TimeMeasure ;
-
--- An Attribute which is used to specify coordinates 
--- in which time measures are uniform, i.e. all time devices are synchronized to 
--- the same TimePositions.
-fun TimeZone  : Class ;
-fun TimeZone_Class : SubClass TimeZone RelationalAttribute ;
-
--- An aggregation of similarly specialized Cells 
--- and the associated intercellular substance. Tissues are relatively 
--- non_localized in comparison to BodyParts, Organs or Organ components. 
--- The main features of Tissues are self_connectivity (see 
--- SelfConnectedObject) and being a homogeneous mass (all parts in the 
--- same granularity are instances of Tissue as well).
-fun Tissue  : Class ;
-fun Tissue_Class : SubClass Tissue BodySubstance ;
-
--- Any Transfer where two Objects are 
--- brought into immediate physical contact with one another.
-fun Touching  : Class ;
-fun Touching_Class : SubClass Touching Transfer ;
-
--- Attributes that indicate the the 
--- behavior/personality traits of an Organism.
-fun TraitAttribute  : Class ;
-fun TraitAttribute_Class : SubClass TraitAttribute PsychologicalAttribute ;
-
--- The subclass of ChangeOfPossession where 
--- something is exchanged for something else.
-fun Transaction  : Class ;
-fun Transaction_Class : SubClass Transaction (both ChangeOfPossession DualObjectProcess) ;
-
-
--- Any instance of Translocation where the agent 
--- and the patient are not the same thing.
-fun Transfer  : Class ;
-fun Transfer_Class : SubClass Transfer Translocation ;
-
--- Transitway is the broadest class 
--- of regions which may be passed through as a path in instances 
--- of Translocation. Transitway includes land, air, and sea 
--- regions, and it includes both natural and artificial transitways.
-fun Transitway  : Class ;
-fun Transitway_Class : SubClass Transitway (both Region SelfConnectedObject) ;
-
-
--- Converting content from one Language into another. 
--- This covers oral translation (i.e. interpreting) as well as written translation.
-fun Translating  : Class ;
-fun Translating_Class : SubClass Translating (both ContentDevelopment DualObjectProcess) ;
-
-
--- Translocation is that class of Motions 
--- in which an object moves from one place to another. In the case of round 
--- trips, the origin and destination are the same, but the intervening 
--- motion passes through other locations. Translocation represents linear 
--- motion, in contrast to rotation or other movement in place. A vehicle is 
--- not necessary, Ambulating is a kind of Translocation.
-fun Translocation  : Class ;
-fun Translocation_Class : SubClass Translocation Motion ;
-
--- Motion from one point to another by means 
--- of a TransportationDevice.
-fun Transportation  : Class ;
-fun Transportation_Class : SubClass Transportation Translocation ;
-
--- A TransportationDevice is a Device 
--- which serves as the instrument in a Transportation Process which carries 
--- the patient of the Process from one point to another.
-fun TransportationDevice  : Class ;
-fun TransportationDevice_Class : SubClass TransportationDevice Device ;
-
--- A Tree is a DirectedGraph that has no 
--- GraphLoops.
-fun Tree  : Class ;
-fun Tree_Class : SubClass Tree Graph ;
-
--- The TruthValue of being true.
-fun True  : Ind TruthValue ;
-
-
--- The Class of truth values, e.g. True and 
--- False. These are Attributes of Sentences and Propositions.
-fun TruthValue  : Class ;
-fun TruthValue_Class : SubClass TruthValue RelationalAttribute ;
-
--- The Class of all calendar Tuesdays.
-fun Tuesday  : Class ;
-fun Tuesday_Class : SubClass Tuesday Day ;
-
--- Any two OneDimensionalFigures (i.e. 
--- straight lines) meeting at a single GeometricPoint.
-fun TwoDimensionalAngle  : Class ;
-fun TwoDimensionalAngle_Class : SubClass TwoDimensionalAngle OpenTwoDimensionalFigure ;
-
--- The class of GeometricFigures that 
--- have position and an extension along two dimensions, viz. plane figures 
--- like circles and polygons.
-fun TwoDimensionalFigure  : Class ;
-fun TwoDimensionalFigure_Class : SubClass TwoDimensionalFigure GeometricFigure ;
-
--- A
--- subclass of FunctionQuantity, instances of which are returned by
--- UnaryFunctions that map from one instance of the Class
--- ConstantQuantity to another instance of the Class
--- ConstantQuantity.
-fun UnaryConstantFunctionQuantity  : Class ;
-fun UnaryConstantFunctionQuantity_Class : SubClass UnaryConstantFunctionQuantity FunctionQuantity ;
-
--- Attribute that applies to Organisms that 
--- are unconscious. An Organism may be Unconscious because it is Dead 
--- or because of a blow to the head, a drug, etc.
-fun Unconscious  : Ind ConsciousnessAttribute ;
-
-
--- The Class of Removing processes where the agent 
--- uncovers the patient, either completely or only partially.
-fun Uncovering  : Class ;
-fun Uncovering_Class : SubClass Uncovering Removing ;
-
--- The Attribute of a CognitiveAgent when 
--- he/she is unemployed.
-fun Unemployed  : Ind SocialRole ;
-
-
--- Any instance of Detaching which results in 
--- a situation where it is not the case that the agent grasps something 
--- which he/she grasps previously.
-fun Ungrasping  : Class ;
-fun Ungrasping_Class : SubClass Ungrasping Detaching ;
-
--- Any instance of Getting that is not part 
--- of a Transaction. In other words, any instance of Getting where nothing 
--- is given in return. Some examples of UnilateralGetting are: appropriating, 
--- commandeering, stealing, etc.
-fun UnilateralGetting  : Class ;
-fun UnilateralGetting_Class : SubClass UnilateralGetting Getting ;
-
--- Any instance of Giving that is not part 
--- of a Transaction. In other words, any instance of Giving where nothing 
--- is received in return. Some examples of UnilateralGiving are: honorary 
--- awards, gifts, and financial grants.
-fun UnilateralGiving  : Class ;
-fun UnilateralGiving_Class : SubClass UnilateralGiving Giving ;
-
--- The Attribute of Regions that are 
--- unilluminated, i.e in which no shapes are visually discernable.
-fun Unilluminated  : Ind VisualAttribute ;
-
-
--- A BinaryFunction that maps two SetOrClasses to 
--- the union of these SetOrClasses. An object is an element of the union 
--- of two SetOrClasses just in case it is an instance of either SetOrClass.
-fun UnionFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
-
-
--- A List in which no item appears more than once, 
--- i.e. a List for which there are no distinct numbers ?NUMBER1 and ?NUMBER2 
--- such that (ListOrderFn ?LIST ?NUMBER1) and (ListOrderFn ?LIST ?NUMBER2) 
--- return the same value.
-fun UniqueList  : Class ;
-fun UniqueList_Class : SubClass UniqueList List ;
-
--- UnitFn returns just the
--- UnitOfMeasure of a PhysicalQuantity with an associated
--- UnitOfMeasure and RealNumber magnitude. For example, the unit of
--- the ConstantQuantity (MeasureFn 2 Kilometer) is the
--- UnitOfMeasure Kilometer.
-fun UnitFn  : El PhysicalQuantity -> Ind UnitOfMeasure ;
-
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of AngleMeasure.
-fun UnitOfAngularMeasure  : Class ;
-fun UnitOfAngularMeasure_Class : SubClass UnitOfAngularMeasure NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of AreaMeasure.
-fun UnitOfArea  : Class ;
-fun UnitOfArea_Class : SubClass UnitOfArea CompositeUnitOfMeasure ;
-
--- UnitOfAtmosphericPressure includes those instances of
--- UnitOfMeasure used to measure atmospheric pressure (barometricPressure),
--- e.g., InchMercury.
-fun UnitOfAtmosphericPressure  : Class ;
-fun UnitOfAtmosphericPressure_Class : SubClass UnitOfAtmosphericPressure CompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of CurrencyMeasure.
-fun UnitOfCurrency  : Class ;
-fun UnitOfCurrency_Class : SubClass UnitOfCurrency NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of TimeDuration. Note that TimeDuration is a subclass
--- of TimeMeasure.
-fun UnitOfDuration  : Class ;
-fun UnitOfDuration_Class : SubClass UnitOfDuration NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of FrequencyMeasure.
-fun UnitOfFrequency  : Class ;
-fun UnitOfFrequency_Class : SubClass UnitOfFrequency CompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of InformationMeasure.
-fun UnitOfInformation  : Class ;
-fun UnitOfInformation_Class : SubClass UnitOfInformation NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of LengthMeasure.
-fun UnitOfLength  : Class ;
-fun UnitOfLength_Class : SubClass UnitOfLength NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of MassMeasure, which denote the amount of matter in
--- PhysicalObjects.
-fun UnitOfMass  : Class ;
-fun UnitOfMass_Class : SubClass UnitOfMass NonCompositeUnitOfMeasure ;
-
--- A standard of measurement for some dimension. 
--- For example, the Meter is a UnitOfMeasure for the dimension of length, 
--- as is the Inch. There is no intrinsic property of a UnitOfMeasure that 
--- makes it primitive or fundamental, rather, a system of units (e.g. 
--- SystemeInternationalUnit) defines a set of orthogonal dimensions and 
--- assigns units for each.
-fun UnitOfMeasure  : Class ;
-fun UnitOfMeasure_Class : SubClass UnitOfMeasure PhysicalQuantity ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of TemperatureMeasure.
-fun UnitOfTemperature  : Class ;
-fun UnitOfTemperature_Class : SubClass UnitOfTemperature NonCompositeUnitOfMeasure ;
-
--- Every instance of this
--- Class is a UnitOfMeasure that can be used with MeasureFn to form
--- instances of VolumeMeasure.
-fun UnitOfVolume  : Class ;
-fun UnitOfVolume_Class : SubClass UnitOfVolume CompositeUnitOfMeasure ;
-
--- Unit of volume commonly used in the 
--- United Kingdom.
-fun UnitedKingdomGallon  : Ind UnitOfVolume ;
-
-
--- A currency measure. 1 UnitedStatesCent is 
--- equal to .01 UnitedStatesDollars.
-fun UnitedStatesCent  : Ind UnitOfCurrency ;
-
-
--- A currency measure.
-fun UnitedStatesDollar  : Ind UnitOfCurrency ;
-
-
--- Unit of volume commonly used in the 
--- United States.
-fun UnitedStatesGallon  : Ind UnitOfVolume ;
-
-
--- The ProbabilityAttribute of being improbable, i.e. more 
--- likely than not to be False.
-fun Unlikely  : Ind ProbabilityAttribute ;
-
-
--- A DeductiveArgument which is 
--- valid, i.e. the set of premises in fact entails the conclusion.
-fun ValidDeductiveArgument  : Class ;
-fun ValidDeductiveArgument_Class : SubClass ValidDeductiveArgument DeductiveArgument ;
-
--- Vehicle is the subclass of 
--- TransportationDevices that transport passengers or goods 
--- from one place to another by moving from one place to the other 
--- with them, e.g., cars, trucks, ferries, and airplanes. Contrast 
--- with devices such as pipelines, escalators, or supermarket 
--- checkout belts, which carry items from one place to another by means 
--- of a moving part, without the device removing from the origin to 
--- the destination.
-fun Vehicle  : Class ;
-fun Vehicle_Class : SubClass Vehicle TransportationDevice ;
-
--- Specifies the velocity of an object, i.e. the speed 
--- and the direction of the speed. For example (VelocityFn (MeasureFn 55 Mile) 
--- (MeasureFn 2 HourDuration) ?REFERENCE North) denotes the velocity of 55 miles 
--- per hour North of the given reference point ?REFERENCE.
-fun VelocityFn  : El LengthMeasure -> El TimeDuration -> El Region -> El DirectionalAttribute -> Ind FunctionQuantity ;
-
-
--- One of the parts of speech. The Class of Words 
--- that conventionally denote Processes.
-fun Verb  : Class ;
-fun Verb_Class : SubClass Verb Word ;
-
--- A Phrase that has the same function as a 
--- Verb.
-fun VerbPhrase  : Class ;
-fun VerbPhrase_Class : SubClass VerbPhrase Phrase ;
-
--- An Animal which has a spinal column.
-fun Vertebrate  : Class ;
-fun Vertebrate_Animal  : SubClassC Vertebrate Animal (\VERT -> and (and (and (exists SpinalColumn (\SPINE -> component(var SpinalColumn CorpuscularObject ? SPINE)(var Animal CorpuscularObject ? VERT))) (forall NervousSystem (\S -> part(var NervousSystem Object ? S)(var Animal Object ? VERT)))) (forall Skeleton (\SKELETON -> part(var Skeleton Object ? SKELETON)(var Animal Object ? VERT)))) (forall Exoskeleton (\SKELETON -> part(var Exoskeleton Object ? SKELETON)(var Animal Object ? VERT))));
-
-
--- Attribute used to indicate that an Object 
--- is positioned height_wise with respect to another Object.
-fun Vertical  : Ind PositionalAttribute ;
-
-
--- A Contest where one participant attempts to 
--- physically injure another participant.
-fun ViolentContest  : Class ;
-fun ViolentContest_Class : SubClass ViolentContest Contest ;
-
--- An Organism consisting of a core of a single 
--- nucleic acid enclosed in a protective coat of protein. A virus may replicate 
--- only inside a host living cell. A virus exhibits some but not all of the 
--- usual characteristics of living things.
-fun Virus  : Class ;
-fun Virus_Class : SubClass Virus Microorganism ;
-
--- The Class of visually discernible 
--- properties.
-fun VisualAttribute  : Class ;
-fun VisualAttribute_Class : SubClass VisualAttribute PerceptualAttribute ;
-
--- A Nutrient present in natural products or made 
--- synthetically, which is essential in the diet of Humans and other higher 
--- Animals. Included here are Vitamin precursors and provitamins.
-fun Vitamin  : Class ;
-fun Vitamin_Class : SubClass Vitamin Nutrient ;
-
--- The vocal cords, are composed
--- of two folds of mucous membrane stretched horizontally across the
--- larynx. They vibrate, modulating the flow of air being expelled from the
--- lungs during Vocalizing.
-fun VocalCords  : Class ;
-fun VocalCords_Class : SubClass VocalCords Organ ;
-
--- Any instance of RadiatingSound where the 
--- instrument is the Human vocal cords. This covers grunts, screams, 
--- roars, as well as Speaking.
-fun Vocalizing  : Class ;
-fun Vocalizing_Class : SubClass Vocalizing (both BodyMotion RadiatingSound) ;
-
-
--- SI electric potential measure. Symbol: V. It is 
--- the difference of electric potential between two points of a conducting 
--- wire carrying a constant current of 1 Ampere, when the power dissipated 
--- between these points is equal to 1 Watt. Volt = W/A = 
--- m^2*kg*s^(_3)*A^(_1).
-fun Volt  : Ind CompositeUnitOfMeasure ;
-
-
--- Measures of the amount of space in three 
--- dimensions.
-fun VolumeMeasure  : Class ;
-fun VolumeMeasure_Class : SubClass VolumeMeasure FunctionQuantity ;
-
--- Voting is the activity of voting in an 
--- Election. Voting is typically done by individuals, while Elections 
--- are conducted by Organizations. The voting process by an individual 
--- voter is part of an Election process.
-fun Voting  : Class ;
-fun Voting_Class : SubClass Voting Deciding ;
-
--- Ambulating relatively slowly, i.e. moving in such a 
--- way that at least one foot is always in contact with the ground.
-fun Walking  : Class ;
-fun Walking_Class : SubClass Walking Ambulating ;
-
--- A military confrontation between two or more 
--- GeopoliticalAreas or Organizations whose members are GeopoliticalAreas. 
--- As the corresponding axiom specifies, a War is made up of Battles.
-fun War  : Class ;
-fun War_Class : SubClass War ViolentContest ;
-
--- Vertebrates whose body temperature 
--- is internally regulated.
-fun WarmBloodedVertebrate  : Class ;
-fun WarmBloodedVertebrate_Class : SubClass WarmBloodedVertebrate Vertebrate ;
-
--- A Contract that states the cirumstances 
--- under which defects in the product will be corrected for no charge. 
--- A Warranty is usually limited to a length of time that is specified 
--- in the Warranty itself. A Warranty also includes information about 
--- what is not covered and actions that invalidate the Warranty.
-fun Warranty  : Ind DeonticAttribute ;
-
-
--- The Class of samples of the compound H20. Note 
--- that this Class covers both pure and impure Water.
-fun Water  : Class ;
-fun Water_Class : SubClass Water CompoundSubstance ;
-
--- A body which is made up predominantly of water, 
--- e.g. rivers, lakes, oceans, etc.
-fun WaterArea  : Class ;
-fun WaterArea_Class : SubClass WaterArea GeographicArea ;
-
--- Any Cloud that is composed primarily of water vapor.
-fun WaterCloud  : Class ;
-fun WaterCloud_Class : SubClass WaterCloud Cloud ;
-
--- Any LiquidMotion where the Liquid is Water.
-fun WaterMotion  : Class ;
-fun WaterMotion_Class : SubClass WaterMotion LiquidMotion ;
-
--- SI power measure. Symbol: W. A UnitOfMeasure 
--- that measures power, i.e. energy produced or expended divided by 
--- TimeDuration. It is the power which gives rise to the production 
--- of energy (or work) at the rate of one Joule per SecondDuration. 
--- Watt = J/s = m^2*kg*s^(_3).
-fun Watt  : Ind CompositeUnitOfMeasure ;
-
-
--- A UnaryFunction that maps an Agent to a 
--- CurrencyMeasure specifying the value of the property owned by the Agent. 
--- Note that this Function is generally used in conjunction with the 
--- Function PropertyFn, e.g. (WealthFn (PropertyFn BillGates)) would 
--- return the monetary value of the sum of Bill Gates' holdings.
-fun WealthFn  : El Agent -> Ind CurrencyMeasure ;
-
-
--- The Class of Devices that are designed 
--- primarily to damage or destroy Humans/Animals, StationaryArtifacts or 
--- the places inhabited by Humans/Animals.
-fun Weapon  : Class ;
-fun Weapon_Class : SubClass Weapon Device ;
-
--- WearableItem is the subclass of 
--- Artifacts that are made to be worn on the body.
-fun WearableItem  : Class ;
-fun WearableItem_Class : SubClass WearableItem Artifact ;
-
--- WeatherProcess is the broadest class of 
--- processes that involve weather, including weather seasons (not to be confused 
--- with instances of SeasonOfYear), weather systems, and short_term weather 
--- events.
-fun WeatherProcess  : Class ;
-fun WeatherProcess_Class : SubClass WeatherProcess Motion ;
-
--- SI magnetic flux measure. Symbol: Wb. It is the 
--- magnetic flux which, linking a circuit of one turn, produces in it an
--- electromotive force of 1 Volt as it is reduced to zero at a uniform
--- rate in 1 SecondDuration. Weber = V*s = m^2*kg*s^(_2)*A^(_1).
-fun Weber  : Ind CompositeUnitOfMeasure ;
-
-
--- Any Declaring that leads to one person being 
--- the spouse of another.
-fun Wedding  : Class ;
-fun Wedding_Class : SubClass Wedding Declaring ;
-
--- The Class of all calendar Wednesdays.
-fun Wednesday  : Class ;
-fun Wednesday_Class : SubClass Wednesday Day ;
-
--- The Class of all calendar weeks.
-fun Week  : Class ;
-fun Week_Class : SubClass Week TimeInterval ;
-
--- Time unit. A week's duration is seven days.
-fun WeekDuration  : Ind UnitOfDuration ;
-
-
--- The compass direction of West.
-fun West  : Ind DirectionalAttribute ;
-
-
--- An Attribute which indicates that the 
--- associated Object is fully saturated with a Liquid, i.e. 
--- every part of the Object has a subpart which is a Liquid.
-fun Wet  : Ind SaturationAttribute ;
-
-
--- The Class of Processes where a Liquid is 
--- added to an Object.
-fun Wetting  : Class ;
-fun Wetting_Class : SubClass Wetting Putting ;
-
--- A UnaryFunction that maps an Object or 
--- Process to the exact TimeInterval during which it exists. Note 
--- that, for every TimePoint ?TIME outside of the TimeInterval 
--- (WhenFn ?THING), (time ?THING ?TIME) does not hold.
-fun WhenFn  : El Physical -> Ind TimeInterval ;
-
-
--- Maps an Object and a TimePoint at which the 
--- Object exists to the Region where the Object existed at that 
--- TimePoint.
-fun WhereFn  : El Physical -> El TimePoint -> Ind Region ;
-
-
--- The Attribute of being white in color.
-fun White  : Ind PrimaryColor ;
-
-
--- Any Motion of Air.
-fun Wind  : Class ;
-fun Wind_Class : SubClass Wind GasMotion ;
-
--- The class of Female Humans.
-fun Woman  : Class ;
-fun Woman_Class : SubClass Woman Human ;
-
--- A term of a Language that represents a concept.
-fun Word  : Class ;
-fun Word_Class : SubClass Word LinguisticExpression ;
-
--- Long, narrow, soft_bodied Invertebrates.
-fun Worm  : Class ;
-fun Worm_Class : SubClass Worm Invertebrate ;
-
--- A subclass of ContentDevelopment in which 
--- content is converted from one form (e.g. uttered, written or represented 
--- mentally) into a written form. Note that this class covers both 
--- transcription and original creation of written Texts.
-fun Writing  : Class ;
-fun Writing_Class : SubClass Writing ContentDevelopment ;
-
--- The Class of all calendar Years.
-fun Year  : Class ;
-fun Year_Class : SubClass Year TimeInterval ;
-
--- Time unit. one calendar year. 1 year =
--- 365 days = 31536000 seconds.
-fun YearDuration  : Ind UnitOfDuration ;
-
-
--- A UnaryFunction that maps a number to the corresponding calendar 
--- Year. For example, (YearFn 1912) returns the Class containing just one instance, 
--- the year of 1912. As might be expected, positive integers return years in the Common Era, 
--- while negative integers return years in B.C.E. Note that this function returns a Class 
--- as a value. The reason for this is that the related functions, viz. MonthFn, DayFn, 
--- HourFn, MinuteFn, and SecondFn, are used to generate both specific TimeIntervals 
--- and recurrent intervals, and the only way to do this is to make the domains and ranges of 
--- these functions classes rather than individuals.
-fun YearFn : El Integer -> Desc Year ;
-
-
--- The Attribute of being yellow in color.
-fun Yellow  : Ind PrimaryColor ;
-
-
--- (abstractCounterpart ?AB ?PHYS
--- relates a Physical entity to an Abstract one which is an idealized
--- model in some dimension of the Physical entity. For example, an
--- Abstract GraphNode could be stated to be the counterpart of an 
--- actual Computer in a ComputerNetwork.
-fun abstractCounterpart  : El Abstract -> El Physical -> Formula ;
-
-
--- (acquaintance ?H1 ?H2) means that ?H1 has
--- met and knows something about ?H2, such as ?H2's name and appearance.
--- Statements made with this predicate should be temporally specified with
--- holdsDuring. Note that acquaintance is not symmetric. For the
--- symmetric version, see mutualAcquaintance.
-fun acquaintance  : El Human -> El Human -> Formula ;
-
-
--- Simply relates an Object to a ConstantQuantity 
--- specifying the age of the Object.
-fun age  : El Object -> El TimeDuration -> Formula ;
-
-
--- (agent ?PROCESS ?AGENT) means that ?AGENT is 
--- an active determinant, either animate or inanimate, of the Process 
--- ?PROCESS, with or without voluntary intention. For example, Eve is an 
--- agent in the following proposition: Eve bit an apple.
-fun agent  : El Process -> El Agent -> Formula ;
-
-
--- A TernaryPredicate that is
--- used to state the distance between the top of an Object and
--- another point that is below the top of the Object (often this
--- other point will be sea level). Note that this Predicate can be
--- used to specify, for example, the height of geographic features,
--- e.g. mountains, the altitude of aircraft, and the orbit of satellites
--- around the Earth.
-fun altitude  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
-
-
--- The transitive closure of the parent predicate. 
--- (ancestor ?DESCENDANT ?ANCESTOR) means that ?ANCESTOR is either the 
--- parent of ?DESCENDANT or the parent of the parent of DESCENDANT or 
--- etc.
-fun ancestor  : El Organism -> El Organism -> Formula ;
-
-
--- (angleOfFigure ?ANGLE ?FIGURE) means that 
--- the TwoDimensionalAngle ?ANGLE is part of the GeometricFigure ?FIGURE.
-fun angleOfFigure  : El GeometricFigure -> El GeometricFigure -> Formula ;
-
-
--- (angularMeasure ?ANGLE ?MEASURE) means that 
--- the two_dimensional geometric angle ?ANGLE has the PlaneAngleMeasure of 
--- ?MEASURE.
-fun angularMeasure  : El TwoDimensionalAngle -> El PlaneAngleMeasure -> Formula ;
-
-
--- This predicate indicates the value of a 
--- GraphArc in a Graph. This could map to the length of a road in 
--- a road network or the flow rate of a pipe in a plumbing system.
-fun arcWeight  : El GraphArc -> El Quantity -> Formula ;
-
-
--- (atomicNumber ?ELEMENT ?NUMBER) means that 
--- the ElementalSubstance ?ELEMENT has the atomic number ?NUMBER. The 
--- atomic number is the number of Protons in the nucleus of an Atom.
-fun atomicNumber : Desc ElementalSubstance -> El PositiveInteger -> Formula ;
-
-
--- (attends ?DEMO ?PERSON) means that ?PERSON attends, 
--- i.e. is a member of the audience, of the performance event ?DEMO.
-fun attends  : El Demonstrating -> El Human -> Formula ;
-
-
--- (attribute ?OBJECT ?PROPERTY) means that 
--- ?PROPERTY is a Attribute of ?OBJECT. For example, 
--- (attribute MyLittleRedWagon Red).
-fun attribute  : El Object -> El Attribute -> Formula ;
-
-
--- (authors ?AGENT ?TEXT) means that ?AGENT is 
--- creatively responsible for ?TEXT. For example, Agatha Christie is 
--- author of Murder_on_the_Orient_Express.
-fun authors : El Agent -> Desc Text -> Formula ;
-
-
--- A partial function that relates a List to a 
--- RealNumber, provided that the List only has list elements that are 
--- RealNumbers. The RealNumber associated with the List is equal to the 
--- mathematical average of the RealNumbers in the List divided by the total
--- number of list elements.
-fun average  : El List -> El RealNumber -> Formula ;
-
-
--- (barometricPressure ?AREA ?PRESSURE) means that the atmospheric 
--- pressure measured at ?AREA is ?PRESSURE. Barometric pressure is 
--- typically expressed in units of InchMercury or MmMercury. For 
--- example, standard sea level pressure is 29.92 inches (760 mm) of mercury: 
--- (barometricPressure SeaLevel (MeasureFn 29.92 InchMercury)).
-fun barometricPressure  : El Object -> El UnitOfAtmosphericPressure -> Formula ;
-
-
--- (before ?POINT1 ?POINT2) means that ?POINT1 
--- precedes ?POINT2 on the universal timeline.
-fun before  : El TimePoint -> El TimePoint -> Formula ;
-
-
--- (beforeOrEqual ?POINT1 ?POINT2) means that ?POINT1 
--- is identical with ?POINT2 or occurs before it on the universal timeline.
-fun beforeOrEqual  : El TimePoint -> El TimePoint -> Formula ;
-
-
--- The epistemic predicate of belief. 
--- (believes ?AGENT ?FORMULA) means that ?AGENT believes the proposition 
--- expressed by ?FORMULA.
-fun believes  : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (between ?OBJ1 ?OBJ2 ?OBJ3) means that ?OBJ2 is 
--- spatially located between ?OBJ1 and ?OBJ3. Note that this implies that 
--- ?OBJ2 is directly between ?OBJ1 and ?OBJ3, i.e. the projections of ?OBJ1 
--- and ?OBJ3 overlap with ?OBJ2.
-fun between  : El Object -> El Object -> El Object -> Formula ;
-
-
--- The temperature at which a PureSubstance changes
--- state from a Liquid to a Gas.
-fun boilingPoint : Desc PureSubstance -> El TemperatureMeasure -> Formula ;
-
-
--- (bottom ?BOTTOM ?OBJECT) holds if ?BOTTOM is the 
--- lowest or deepest maximal superficial part of ?OBJECT.
-fun bottom  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
-
-
--- The general relationship of being a brother. 
--- (brother ?MAN ?PERSON) means that ?MAN is the brother of ?PERSON.
-fun brother  : El Man -> El Human -> Formula ;
-
-
--- The causation relation between instances of Process. 
--- (causes ?PROCESS1 ?PROCESS2) means that the instance of Process ?PROCESS1 
--- brings about the instance of Process ?PROCESS2.
-fun causes  : El Process -> El Process -> Formula ;
-
-
--- (causesProposition ?FORMULA1
--- ?FORMULA2) means that the state of affairs described by ?FORMULA1
--- causes, or mechanistically brings about, the state of affairs
--- described by ?FORMULA2. Note that unlike entails, the time
--- during which ?FORMULA2 holds cannot precede the time during which
--- ?FORMULA1 holds, although ?FORMULA1 and ?FORMULA2 can hold
--- simultaneously. Note, also, that causesProposition is a
--- predicate, not a truth function. The following rule
--- (contraposition) does not hold: (=> (causesProp ?FORMULA1
--- ?FORMULA2) (causesProp (not ?FORMULA2) (not ?FORMULA1))).
-fun causesProposition  : Formula -> Formula -> Formula ;
-
-
--- The causation relation between subclasses of Process. 
--- (causesSubclass ?PROCESS1 ?PROCESS2) means that the subclass of Process ?PROCESS1 
--- brings about the subclass of Process ?PROCESS2, e.g. (causesSubclass Killing 
--- Death).
-fun causesSubclass : Desc Process -> Desc Process -> Formula ;
-
-
--- (citizen ?PERSON ?NATION) means that the 
--- Human ?PERSON is a citizen of Nation ?NATION.
-fun citizen  : El Human -> El Nation -> Formula ;
-
-
--- (completelyFills ?OBJ ?HOLE) 
--- means that some part of the Object ?OBJ fills the Hole ?HOLE. 
--- Note that if (completelyFills ?OBJ1 ?HOLE) and (part 
--- ?OBJ1 ?OBJ2), then (completelyFills ?OBJ2 ?HOLE). 
--- A complete filler of (a part of) a hole is connected with everything 
--- with which (that part of) the hole itself is connected. 
--- A perfect filler of (a part of) a hole completely fills every proper 
--- part of (that part of) that hole.
-fun completelyFills  : El Object -> El Hole -> Formula ;
-
-
--- A specialized common sense notion of part 
--- for heterogeneous parts of complexes. (component ?COMPONENT ?WHOLE) 
--- means that ?COMPONENT is a component of ?WHOLE. Examples of component 
--- include the doors and walls of a house, the states or provinces of a 
--- country, or the limbs and organs of an animal. Compare piece, which 
--- is also a subrelation of part.
-fun component  : El CorpuscularObject -> El CorpuscularObject -> Formula ;
-
-
--- (conclusion ?ARGUMENT ?PROPOSITION) means that
--- the Proposition ?PROPOSITION is the conclusion explicitly drawn from the 
--- Argument ?ARGUMENT. Note that it may or may not be the case that ?ARGUMENT 
--- entails ?PROPOSITION.
-fun conclusion  : El Argument -> El Proposition -> Formula ;
-
-
--- One of the basic ProbabilityRelations. 
--- conditionalProbability is used to state the numeric value of a conditional 
--- probability. (conditionalProbability ?FORMULA1 ?FORMULA2 ?NUMBER) means 
--- that the probability of ?FORMULA2 being true given that ?FORMULA1 is true is 
--- ?NUMBER.
-fun conditionalProbability  : Formula -> Formula -> El RealNumber -> Formula ;
-
-
--- Expresses the relationship between a Formula, 
--- an Entity, and an ObjectiveNorm when the Entity brings it about that 
--- the Formula has the ObjectiveNorm.
-fun confersNorm  : El Entity -> Formula -> El ObjectiveNorm -> Formula ;
-
-
--- Expresses the relationship between a 
--- a Formula, an Entity, and a CognitiveAgent when the Entity 
--- obligates the CognitiveAgent to bring it about that the Formula is 
--- true.
-fun confersObligation  : Formula -> El Entity -> El CognitiveAgent -> Formula ;
-
-
--- Expresses the relationship between a Formula, 
--- an Entity, and a CognitiveAgent when the Entity authorizes the 
--- CognitiveAgent to bring it about that the Formula is true.
-fun confersRight  : Formula -> El Entity -> El CognitiveAgent -> Formula ;
-
-
--- (connected ?OBJ1 ?OBJ2) means that ?OBJ1 
--- meetsSpatially ?OBJ2 or that ?OBJ1 overlapsSpatially ?OBJ2.
-fun connected  : El Object -> El Object -> Formula ;
-
-
--- This is the most general 
--- connection relation between EngineeringComponents. If 
--- (connectedEngineeringComponents ?COMP1 ?COMP2), then neither ?COMP1 nor 
--- ?COMP2 can be an engineeringSubcomponent of the other. The relation 
--- connectedEngineeringComponents is a SymmetricRelation, there is no 
--- information in the direction of connection between two components. It is 
--- also an IrreflexiveRelation, no EngineeringComponent bears this relation 
--- to itself. Note that this relation does not associate a name or type 
--- with the connection.
-fun connectedEngineeringComponents  : El EngineeringComponent -> El EngineeringComponent -> Formula ;
-
-
--- The relationship between three things, when one of 
--- the three things connects the other two. More formally, (connects ?OBJ1 
--- ?OBJ2 ?OBJ3) means that (connected ?OBJ1 ?OBJ2) and (connected ?OBJ1 ?OBJ3) 
--- and not (connected ?OBJ2 ?OBJ3).
-fun connects  : El SelfConnectedObject -> El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
-
-
--- connectsEngineeringComponents 
--- is a TernaryPredicate that maps from an EngineeringConnection to the 
--- EngineeringComponents it connects. Since EngineeringComponents cannot 
--- be connected to themselves and there cannot be an EngineeringConnection 
--- without a connectedEngineeringComponents Predicate, the second and third 
--- arguments of any connectsEngineeringComponents relationship will always be 
--- distinct for any given first argument.
-fun connectsEngineeringComponents  : El EngineeringComponent -> El EngineeringComponent -> El SelfConnectedObject -> Formula ;
-
-
--- (considers ?AGENT ?FORMULA) means that ?AGENT 
--- considers or wonders about the truth of the proposition expressed by 
--- ?FORMULA.
-fun considers  : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (consistent ?PROP1 ?PROP2) means that the two 
--- Propositions ?PROP1 and ?PROP2 are consistent with one another, i.e. it 
--- is possible for both of them to be true at the same time.
-fun consistent  : El Proposition -> El Proposition -> Formula ;
-
-
--- The relation of spatial containment for two 
--- separable objects. When the two objects are not separable (e.g. an 
--- automobile and one of its seats), the relation of part should be used. 
--- (contains ?OBJ1 ?OBJ2) means that the SelfConnectedObject ?OBJ1 has 
--- a space (i.e. a Hole) which is at least partially filled by ?OBJ2.
-fun contains  : El SelfConnectedObject -> El Object -> Formula ;
-
-
--- A subrelation of represents. This 
--- predicate relates a ContentBearingPhysical to the Proposition that is 
--- expressed by the ContentBearingPhysical. Examples include the relationships 
--- between a physical novel and its story and between a printed score and its 
--- musical content.
-fun containsInformation  : El ContentBearingPhysical -> El Proposition -> Formula ;
-
-
--- A contraryAttribute is a set of Attributes 
--- such that something can not simultaneously have more than one of these Attributes. 
--- For example, (contraryAttribute Pliable Rigid) means that nothing can be both 
--- Pliable and Rigid.
-fun contraryAttribute  : [El Attribute] -> Formula ;
-
-
--- (cooccur ?THING1 ?THING2) means that the 
--- Object or Process ?THING1 occurs at the same time as, together with, 
--- or jointly with the Object or Process ?THING2. This covers the 
--- following temporal relations: is co_incident with, is concurrent with, 
--- is contemporaneous with, and is concomitant with.
-fun cooccur  : El Physical -> El Physical -> Formula ;
-
-
--- relates an Object to an exact copy of the 
--- Object, where an exact copy is indistinguishable from the original 
--- with regard to every property except (possibly) spatial and/or temporal 
--- location.
-fun copy  : El Object -> El Object -> Formula ;
-
-
--- (crosses ?OBJ1 ?OBJ2) means that 
--- Object ?OBJ1 traverses Object ?OBJ2, without being connected 
--- to it.
-fun crosses  : El Object -> El Object -> Formula ;
-
-
--- A BinaryPredicate that specifies a 
--- TimePosition in absolute calendar time, at the resolution 
--- of one day, for a particular Object or Process.
-fun date  : El Physical -> El Day -> Formula ;
-
-
--- The general relationship of daughterhood. 
--- (daughter ?CHILD ?PARENT) means that ?CHILD is the biological daughter
--- of ?PARENT.
-fun daughter  : El Organism -> El Organism -> Formula ;
-
-
--- One of the basic ProbabilityRelations. 
--- (decreasesLikelihood ?FORMULA1 ?FORMULA2) means that ?FORMULA2 is less 
--- likely to be true if ?FORMULA1 is true.
-fun decreasesLikelihood  : Formula -> Formula -> Formula ;
-
-
--- Expresses the relationship between an 
--- Entity, a Formula, and an ObjectiveNorm when the Entity 
--- brings it about that the Formula does not have the ObjectiveNorm.
-fun deprivesNorm  : El Entity -> Formula -> El ObjectiveNorm -> Formula ;
-
-
--- A TernaryPredicate that is
--- used to state the distance between the top of an Object and
--- another point that is above the top of the Object (often this
--- other point will be sea level). Note that this Predicate can be
--- used to specify, for example, the depth of marine life or submarines,
--- for example.
-fun depth  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
-
-
--- (desires ?AGENT ?FORMULA) means that ?AGENT wants 
--- to bring about the state of affairs expressed by ?FORMULA. Note that there 
--- is no implication that what is desired by the agent is not already true. 
--- Note too that desires is distinguished from wants only in that the former 
--- is a PropositionalAttitude, while wants is an ObjectAttitude.
-fun desires  : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (destination ?PROCESS ?GOAL) means that 
--- ?GOAL is the target or goal of the Process ?PROCESS. For example, 
--- Danbury would be the destination in the following proposition: Bob went 
--- to Danbury. Note that this is a very general CaseRole and, in 
--- particular, that it covers the concepts of 'recipient' and 'beneficiary'. 
--- Thus, John would be the destination in the following proposition: 
--- Tom gave a book to John.
-fun destination  : El Process -> El Entity -> Formula ;
-
-
--- (developmentalForm ?OBJECT ?FORM) 
--- means that ?FORM is an earlier stage in the individual maturation of 
--- ?OBJECT. For example, tadpole and caterpillar are developmentalForms 
--- of frogs and butterflies, respectively.
-fun developmentalForm  : El OrganicObject -> El DevelopmentalAttribute -> Formula ;
-
-
--- (diameter ?CIRCLE ?LENGTH) means that the diameter 
--- of the Circle ?CIRCLE has a length of ?LENGTH.
-fun diameter  : El Circle -> El LengthMeasure -> Formula ;
-
-
--- (direction ?PROC ?ATTR) means that the 
--- Process ?PROC is moving in the direction ?ATTR. For example, one 
--- would use this Predicate to represent the fact that Max is moving 
--- North.
-fun direction  : El Process -> El DirectionalAttribute -> Formula ;
-
-
--- Classes are disjoint only if they share no 
--- instances, i.e. just in case the result of applying IntersectionFn to
--- them is empty.
-fun disjoint  : El SetOrClass -> El SetOrClass -> Formula ;
-
-
--- A disjointDecomposition of a Class 
--- C is a set of subclasses of C that are mutually disjoint.
-fun disjointDecomposition  : Class -> [Class] -> Formula ;
-
-
--- (distance ?OBJ1 ?OBJ2 ?QUANT) means that the 
--- shortest distance between the two objects ?OBJ1 and ?OBJ2 is ?QUANT. Note 
--- that the difference between the predicates length and distance is that 
--- the length is used to state the LengthMeasure of one of the dimensions of 
--- a single object, while distance is used to state the LengthMeasure that 
--- separates two distinct objects.
-fun distance  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
-
-
--- A relation between objects 
--- in the domain of discourse and strings of natural language text stated in 
--- a particular HumanLanguage. The domain of documentation is not 
--- constants (names), but the objects themselves. This means that one does 
--- not quote the names when associating them with their documentation.
-fun documentation  : El Entity -> El HumanLanguage -> El SymbolicString -> Formula ;
-
-
--- (duration ?POS ?TIME) means that the 
--- duration of the TimePosition ?POS is ?TIME. Note that this 
--- Predicate can be used in conjunction with the Function WhenFn 
--- to specify the duration of any instance of Physical.
-fun duration  : El TimeInterval -> El TimeDuration -> Formula ;
-
-
--- (during ?INTERVAL1 ?INTERVAL2) means that 
--- ?INTERVAL1 starts after and ends before ?INTERVAL2.
-fun during  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- (earlier ?INTERVAL1 ?INTERVAL2) means that 
--- the TimeInterval ?INTERVAL1 ends before the TimeInterval ?INTERVAL2 
--- begins.
-fun earlier  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- (editor ?AGENT ?TEXT) means that ?AGENT is 
--- an editor of ?TEXT.
-fun editor : El Agent -> Desc Text -> Formula ;
-
-
--- (element ?ENTITY ?SET) is true just in case 
--- ?ENTITY is contained in the Set ?SET. An Entity can be an element 
--- of another Entity only if the latter is a Set.
-fun element  : El Entity -> El Set -> Formula ;
-
-
--- (employs ?ORG ?PERSON) means that ?ORG has 
--- hired ?PERSON and currently retains ?PERSON, on a salaried, hourly 
--- or contractual basis, to provide services in exchange for monetary 
--- compensation.
-fun employs  : El Organization -> El CognitiveAgent -> Formula ;
-
-
--- (engineeringSubcomponent ?SUB 
--- ?SUPER) means that the EngineeringComponent ?SUB is structurally a 
--- properPart of ?SUPER. This relation is an AsymmetricRelation, since 
--- two EngineeringComponents cannot be subcomponents of each other.
-fun engineeringSubcomponent  : El EngineeringComponent -> El EngineeringComponent -> Formula ;
-
-
--- The operator of logical entailment. (entails 
--- ?FORMULA1 ?FORMULA2) means that ?FORMULA2 can be derived from ?FORMULA1 
--- by means of the proof theory of SUO_KIF.
-fun entails  : Formula -> Formula -> Formula ;
-
-
--- (equal ?ENTITY1 ?ENTITY2) is true just in case 
--- ?ENTITY1 is identical with ?ENTITY2.
-fun equal  : El Entity -> El Entity -> Formula ;
-
-
--- A BinaryPredicate that relates two 
--- subclasses of ContentBearingObject. (equivalentContentClass ?CLASS1 
--- ?CLASS2) means that the content expressed by each instance of ?CLASS1 is 
--- also expressed by each instance of ?CLASS2, and vice versa. An example 
--- would be the relationship between English and Russian editions of Agatha 
--- Christie's 'Murder on the Orient Express'. Note that 
--- (equivalentContentClass ?CLASS1 ?CLASS2) implies (subsumesContentClass 
--- ?CLASS1 ?CLASS2) and (subsumesContentClass ?CLASS2 ?CLASS1).
-fun equivalentContentClass  : Desc ContentBearingObject -> Desc ContentBearingObject -> Formula ;
-
-
--- A BinaryPredicate relating two 
--- instances of ContentBearingObject. (equivalentContentInstance 
--- ?OBJ1 ?OBJ2) means that the content expressed by ?OBJ1 is identical to 
--- the content expressed by ?OBJ2. An example would be the relationship 
--- between a handwritten draft of a letter to one's lawyer and a typed 
--- copy of the same letter. Note that (equivalentContentInstance ?OBJ1 
--- ?OBJ2) implies (subsumesContentInstance ?OBJ1 ?OBJ2) and 
--- (subsumesContentInstance ?OBJ2 ?OBJ2).
-fun equivalentContentInstance  : El ContentBearingObject -> El ContentBearingObject -> Formula ;
-
-
--- The actual, minimal location of an 
--- Object. This is a subrelation of the more general Predicate 
--- located.
-fun exactlyLocated  : El Physical -> El Object -> Formula ;
-
-
--- This predicate relates a Class to a 
--- set of Attributes, and it means that the elements of this set exhaust the 
--- instances of the Class. For example, (exhaustiveAttribute PhysicalState 
--- Solid Fluid Liquid Gas Plasma) means that there are only five instances of 
--- the class PhysicalState, viz. Solid, Fluid, Liquid, Gas and Plasma.
-fun exhaustiveAttribute : Desc Attribute -> [El Attribute] -> Formula ;
-
-
--- An exhaustiveDecomposition of a 
--- Class C is a set of subclasses of C such that every instance of C is an 
--- instance of one of the subclasses in the set. Note: this does not necessarily 
--- mean that the elements of the set are disjoint (see partition _ a partition 
--- is a disjoint exhaustive decomposition).
-fun exhaustiveDecomposition  : Class -> [Class] -> Formula ;
-
-
--- (experiencer ?PROCESS ?AGENT) means 
--- that ?AGENT experiences the Process ?PROCESS. For example, Yojo 
--- is the experiencer of seeing in the following proposition: Yojo 
--- sees the fish. Note that experiencer, unlike agent, does 
--- not entail a causal relation between its arguments.
-fun experiencer  : El Process -> El Entity -> Formula ;
-
-
--- (exploits ?OBJ ?AGENT) means that ?OBJ is used 
--- by ?AGENT as a resource in an unspecified instance of Process. This 
--- Predicate, as its corresponding axiom indicates, is a composition of the 
--- relations agent and resource.
-fun exploits  : El Object -> El Agent -> Formula ;
-
-
--- (expressedInLanguage ?EXPRESS ?LANG) 
--- means that the LinguisticExpression ?EXPRESS is part of the Language 
--- ?LANG.
-fun expressedInLanguage  : El LinguisticExpression -> El Language -> Formula ;
-
-
--- (faces ?OBJ ?DIRECTION) means that the front of 
--- ?OBJ (see FrontFn) is positioned towards the compass direction ?DIRECTION. 
--- More precisely, it means that if a line were extended from the center of 
--- ?DIRECTION, the line would intersect with the front of ?OBJ before it 
--- intersected with its back (see BackFn).
-fun faces  : El Object -> El DirectionalAttribute -> Formula ;
-
-
--- A very general Predicate for biological 
--- relationships. (familyRelation ?ORGANISM1 ?ORGANISM2) means that 
--- ?ORGANISM1 and ?ORGANISM2 are biologically derived from a common ancestor.
-fun familyRelation  : El Organism -> El Organism -> Formula ;
-
-
--- The general relationship of fatherhood. 
--- (father ?CHILD ?FATHER) means that ?FATHER is the biological father
--- of ?CHILD.
-fun father  : El Organism -> El Organism -> Formula ;
-
-
--- Holes can be filled. (fills ?OBJ ?HOLE) 
--- means that the Object ?OBJ fills the Hole ?HOLE. Note that 
--- fills here means perfectly filled. Perfect fillers and fillable entities have no parts in common (rather, 
--- they may occupy the same spatial region).
-fun fills  : El Object -> El Hole -> Formula ;
-
-
--- (finishes ?INTERVAL1 ?INTERVAL2) means that 
--- ?INTERVAL1 and ?INTERVAL2 are both TimeIntervals that have the same 
--- ending TimePoint and that ?INTERVAL2 begins before ?INTERVAL1.
-fun finishes  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- (frequency ?PROC ?TIME) means that the 
--- Process type of ?PROC recurs after every interval of ?TIME.
-fun frequency : Desc Process -> El TimeDuration -> Formula ;
-
-
--- (geographicSubregion ?PART ?WHOLE) 
--- means that the GeographicArea ?PART is part of the GeographicArea 
--- ?WHOLE.
-fun geographicSubregion  : El GeographicArea -> El GeographicArea -> Formula ;
-
-
--- (geometricDistance ?POINT1 ?POINT2 
--- ?LENGTH) means that ?LENGTH is the distance between the two 
--- GeometricPoints ?POINT1 and ?POINT2.
-fun geometricDistance  : El GeometricPoint -> El GeometricPoint -> El LengthMeasure -> Formula ;
-
-
--- (geometricPart ?PART ?WHOLE) means that the 
--- GeometricFigure ?PART is part of the GeometricFigure ?WHOLE.
-fun geometricPart  : El GeometricFigure -> El GeometricFigure -> Formula ;
-
-
--- (geopoliticalSubdivision 
--- ?AREA1 ?AREA2) means that ?AREA1 is any geopolitical part of ?AREA2, 
--- that is, ?AREA1 is an integral geographicSubregion of ?AREA2 (not a 
--- DependencyOrSpecialSovereigntyArea), having its own associated 
--- GovernmentOrganization which is subordinated to or constrained by 
--- the government of ?AREA2. Cf. dependentGeopoliticalArea.
-fun geopoliticalSubdivision  : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
-
-
--- (graphMeasure ?GRAPH ?MEAS) fixes a 
--- UnitOfMeasure that is used for the arcWeight of a given Graph. Stating 
--- such a relationship entails that the components of given graph are the 
--- abstractCounterparts of sets of Physical Entity(ies).
-fun graphMeasure  : El Graph -> El UnitOfMeasure -> Formula ;
-
-
--- A basic relation for Graphs and their 
--- parts. (graphPart ?PART ?GRAPH) means that ?PART is a GraphArc 
--- or GraphNode of the Graph ?GRAPH.
-fun graphPart  : El GraphElement -> El Graph -> Formula ;
-
-
--- The state of grasping an Object. (grasps 
--- ?ANIMAL ?OBJ) means that the Animal ?ANIMAL is intentionally holding 
--- on to the Object ?OBJ.
-fun grasps  : El Animal -> El Object -> Formula ;
-
-
--- (greaterThan ?NUMBER1 ?NUMBER2) is true 
--- just in case the Quantity ?NUMBER1 is greater than the Quantity 
--- ?NUMBER2.
-fun greaterThan  : El Quantity -> El Quantity -> Formula ;
-
-
--- (greaterThanByQuality 
--- ?ENTITY1 ?ENTITY2 ?ATT) means that ?ENTITY1 has more of the given
--- quality ?ATT than ?ENTITY2)
-fun greaterThanByQuality  : El Entity -> El Entity -> El Attribute -> Formula ;
-
-
--- (greaterThanOrEqualTo ?NUMBER1 
--- ?NUMBER2) is true just in case the Quantity ?NUMBER1 is greater 
--- than the Quantity ?NUMBER2.
-fun greaterThanOrEqualTo  : El Quantity -> El Quantity -> Formula ;
-
-
--- This Predicate expresses the concept of a 
--- conventional goal, i.e. a goal with a neutralized agent's intention. 
--- Accordingly, (hasPurpose ?THING ?FORMULA) means that the instance of 
--- Physical ?THING has, as its purpose, the Proposition expressed by 
--- ?FORMULA. Note that there is an important difference in meaning between 
--- the Predicates hasPurpose and result. Although the second argument 
--- of the latter can satisfy the second argument of the former, 
--- a conventional goal is an expected and desired outcome, while a result 
--- may be neither expected nor desired. For example, a machine process may 
--- have outcomes but no goals, aimless wandering may have an outcome but no 
--- goal, a learning process may have goals with no outcomes, and so on.
-fun hasPurpose  : El Physical -> Formula -> Formula ;
-
-
--- Expresses a cognitive attitude of an 
--- agent with respect to a particular instance of Physical. More precisely, 
--- (hasPurposeForAgent ?THING ?FORMULA ?AGENT) means that the purpose of 
--- ?THING for ?AGENT is the proposition expressed by ?FORMULA. Very complex 
--- issues are involved here. In particular, the rules of inference of the 
--- first order predicate calculus are not truth_preserving for the second 
--- argument position of this Predicate.
-fun hasPurposeForAgent  : El Physical -> Formula -> El CognitiveAgent -> Formula ;
-
-
--- Similar to the capability Predicate 
--- with the additional restriction that the ability be practised/
--- demonstrated to some measurable degree.
-fun hasSkill : Desc Process -> El Agent -> Formula ;
-
-
--- The height of an Object is the distance between 
--- its top and its bottom.
-fun height  : El SelfConnectedObject -> El LengthMeasure -> Formula ;
-
-
--- (holdsDuring ?TIME ?FORMULA) means that the 
--- proposition denoted by ?FORMULA is true in the time frame ?TIME. Note 
--- that this implies that ?FORMULA is true at every TimePoint which is a 
--- temporalPart of ?TIME.
-fun holdsDuring  : El TimePosition -> Formula -> Formula ;
-
-
--- Expresses a relationship between a 
--- Formula and a CognitiveAgent whereby the CognitiveAgent has 
--- the obligation to bring it about that the Formula is true.
-fun holdsObligation  : Formula -> El CognitiveAgent -> Formula ;
-
-
--- Expresses a relationship between a Formula 
--- and a CognitiveAgent whereby the CognitiveAgent has the right to 
--- bring it about that the Formula is true.
-fun holdsRight  : Formula -> El CognitiveAgent -> Formula ;
-
-
--- (hole ?HOLE ?OBJ) means that ?HOLE is a 
--- Hole in ?OBJ. A Hole is a fillable body located at the 
--- surface an Object.
-fun hole  : El Hole -> El SelfConnectedObject -> Formula ;
-
-
--- The relation between a Human and a PermanentResidence 
--- of the Human.
-fun home  : El Human -> El PermanentResidence -> Formula ;
-
-
--- (husband ?MAN ?WOMAN) means that ?MAN is the 
--- husband of ?WOMAN.
-fun husband  : El Man -> El Woman -> Formula ;
-
-
--- (identicalListItems ?LIST1 ?LIST2) 
--- means that ?LIST1 and ?LIST2 have exactly the same items in their 
--- respective lists. Although ?LIST1 and ?LIST2 are required to share 
--- exactly the same items, they may order these items differently.
-fun identicalListItems  : El List -> El List -> Formula ;
-
-
--- A SetOrClass ?CLASS1 is an immediateSubclass 
--- of another SetOrClass ?CLASS2 just in case ?CLASS1 is a subclass of ?CLASS2 and 
--- there is no other subclass of ?CLASS2 such that ?CLASS1 is also a subclass of it.
-fun immediateSubclass  : El SetOrClass -> El SetOrClass -> Formula ;
-
-
--- The analog of element and instance for Lists. 
--- (inList ?OBJ ?LIST) means that ?OBJ is in the List ?LIST. For example, 
--- (inList Tuesday (ListFn Monday Tuesday Wednesday)) would be true.
-fun inList  : El Entity -> El List -> Formula ;
-
-
--- A very general Predicate. 
--- (inScopeOfInterest ?AGENT ?ENTITY) means that ?ENTITY is within the 
--- scope of interest of ?AGENT. Note that the interest indicated can be 
--- either positive or negative, i.e. the ?AGENT can have an interest in 
--- avoiding or promoting ?ENTITY.
-fun inScopeOfInterest  : El CognitiveAgent -> El Entity -> Formula ;
-
-
--- One of the basic ProbabilityRelations. 
--- (increasesLikelihood ?FORMULA1 ?FORMULA2) means that ?FORMULA2 is more 
--- likely to be true if ?FORMULA1 is true.
-fun increasesLikelihood  : Formula -> Formula -> Formula ;
-
-
--- One of the basic ProbabilityRelations. 
--- (independentProbability ?FORMULA1 ?FORMULA2) means that the probabilities of 
--- ?FORMULA1 and ?FORMULA2 being true are independent.
-fun independentProbability  : Formula -> Formula -> Formula ;
-
-
--- A very basic notion of living within something 
--- else. (inhabits ?ORGANISM ?OBJECT) means that ?OBJECT is the residence 
--- (either permanent or temporary), nest, etc. of ?ORGANISM.
-fun inhabits  : El Organism -> El Object -> Formula ;
-
-
--- A very general Predicate. (inhibits 
--- ?PROC1 ?PROC2) means that the Process ?PROC1 inhibits or hinders 
--- the occurrence of the Process ?PROC2. For example, obstructing an 
--- object inhibits moving it. Note that this is a relation between types 
--- of Processes, not between instances.
-fun inhibits : Desc Process -> Desc Process -> Formula ;
-
-
--- (instrument ?EVENT ?TOOL) means that ?TOOL 
--- is used by an agent in bringing about ?EVENT and that ?TOOL is not 
--- changed by ?EVENT. For example, the key is an instrument in the 
--- following proposition: The key opened the door. Note that instrument 
--- and resource cannot be satisfied by the same ordered pair.
-fun instrument  : El Process -> El Object -> Formula ;
-
-
--- (interiorPart ?OBJ1 ?OBJ2) means 
--- that ?OBJ1 is part ?OBJ2 and there is no overlap between ?OBJ1 and 
--- any superficialPart ?OBJ2.
-fun interiorPart  : El Object -> El Object -> Formula ;
-
-
--- (involvedInEvent ?EVENT ?THING) means 
--- that in the Process ?EVENT, the Entity ?THING plays some CaseRole.
-fun involvedInEvent  : El Process -> El Entity -> Formula ;
-
-
--- The epistemic predicate of knowing. (knows 
--- ?AGENT ?FORMULA) means that ?AGENT knows the proposition expressed by 
--- ?FORMULA. Note that knows entails conscious awareness, so this 
--- Predicate cannot be used to express tacit or subconscious or 
--- unconscious knowledge.
-fun knows  : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (larger ?OBJ1 ?OBJ2) means that ?OBJ1 is 
--- larger, with respect to all LengthMeasures, than ?OBJ2.
-fun larger  : El Object -> El Object -> Formula ;
-
-
--- (leader ?INSTITUTION ?PERSON)
--- means that the leader of ?INSTITUTION is ?PERSON.
-fun leader  : El Agent -> El Human -> Formula ;
-
-
--- (legalRelation ?AGENT1 ?AGENT2) means 
--- that ?AGENT1 and ?AGENT2 are relatives by virtue of a legal relationship. 
--- Some examples include marriage, adoption, etc.
-fun legalRelation  : El Human -> El Human -> Formula ;
-
-
--- BinaryPredicate that is used to state the measure 
--- of an Object along its longest span.
-fun length  : El Object -> El PhysicalQuantity -> Formula ;
-
-
--- (lessThan ?NUMBER1 ?NUMBER2) is true just 
--- in case the Quantity ?NUMBER1 is less than the Quantity ?NUMBER2.
-fun lessThan  : El Quantity -> El Quantity -> Formula ;
-
-
--- (lessThanOrEqualTo ?NUMBER1 ?NUMBER2) 
--- is true just in case the Quantity ?NUMBER1 is less than or equal to 
--- the Quantity ?NUMBER2.
-fun lessThanOrEqualTo  : El Quantity -> El Quantity -> Formula ;
-
-
--- (lineMeasure ?LINE ?MEASURE) means that the 
--- straight line ?LINE has the LengthMeasure of ?MEASURE.
-fun lineMeasure  : El OneDimensionalFigure -> El LengthMeasure -> Formula ;
-
-
--- BinaryPredicate that is used to state the measure 
--- of an Object from one point to another point along its surface. Note 
--- that the difference between the predicates length and distance is that 
--- the length is used to state the LengthMeasure of one of the dimensions of 
--- a single object, while distance is used to state the LengthMeasure that 
--- separates two distinct objects.
-fun linearExtent  : El Object -> El LengthMeasure -> Formula ;
-
-
--- a TernaryPredicate that specifies the 
--- GraphArc connecting two GraphNodes.
-fun links  : El GraphNode -> El GraphNode -> El GraphArc -> Formula ;
-
-
--- (located ?PHYS ?OBJ) means that ?PHYS is partlyLocated 
--- at ?OBJ, and there is no part or subProcess of ?PHYS that is not located at 
--- ?OBJ.
-fun located  : El Physical -> El Object -> Formula ;
-
-
--- (manner ?PROCESS ?MANNER) means that the 
--- Process ?PROCESS is qualified by the Attribute ?MANNER. The Attributes 
--- of Processes are usually denoted by adverbs and include things like the 
--- speed of the wind, the style of a dance, or the intensity of a sports 
--- competition.
-fun manner  : El Process -> El Attribute -> Formula ;
-
-
--- (material ?SUBSTANCE ?OBJECT) means that 
--- ?OBJECT is structurally made up in part of ?SUBSTANCE. This relation 
--- encompasses the concepts of 'composed of', 'made of', and 'formed of'. 
--- For example, plastic is a material of my computer monitor. Compare 
--- part and its subrelations, viz component and piece.
-fun material : Desc Substance -> El CorpuscularObject -> Formula ;
-
-
--- A very general Predicate for
--- asserting that a particular Object is measured by a particular
--- PhysicalQuantity. In general, the second argument of this
--- Predicate will be a term produced with the Function MeasureFn.
-fun measure  : El Object -> El PhysicalQuantity -> Formula ;
-
-
--- (meetsSpatially ?OBJ1 ?OBJ2) means that 
--- ?OBJ1 and ?OBJ2 are connected but that neither ?OBJ1 nor ?OBJ2 
--- overlapsSpatially the other.
-fun meetsSpatially  : El Object -> El Object -> Formula ;
-
-
--- (meetsTemporally ?INTERVAL1 ?INTERVAL2) 
--- means that the terminal point of the TimeInterval ?INTERVAL1 is the 
--- initial point of the TimeInterval ?INTERVAL2.
-fun meetsTemporally  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- The temperature at which a PureSubstance changes
--- state from a Solid to a Liquid. Note that Arsenic can sublimate directly
--- from Solid to Gas which means that its melting and boiling points are equal.
-fun meltingPoint : Desc PureSubstance -> El TemperatureMeasure -> Formula ;
-
-
--- A specialized common sense notion of part for 
--- uniform parts of Collections. For example, each sheep in a flock of 
--- sheep would have the relationship of member to the flock.
-fun member  : El SelfConnectedObject -> El Collection -> Formula ;
-
-
--- A BinaryRelation that is used to state the 
--- normative force of a Proposition. (modalAttribute ?FORMULA ?PROP) means 
--- that the Proposition expressed by ?FORMULA has the NormativeAttribute 
--- ?PROP. For example, (modalAttribute (exists (?ACT ?OBJ) (and 
--- (instance ?ACT Giving) (agent ?ACT John) (patient ?ACT ?OBJ) 
--- (destination ?ACT Tom))) Obligation) means that John is obligated to give 
--- Tom something.
-fun modalAttribute  : Formula -> El NormativeAttribute -> Formula ;
-
-
--- A BinaryPredicate that associates an 
--- Object or Process with its value expressed as an instance of 
--- CurrencyMeasure.
-fun monetaryValue  : El Physical -> El CurrencyMeasure -> Formula ;
-
-
--- The general relationship of motherhood. 
--- (mother ?CHILD ?MOTHER) means that ?MOTHER is the biological mother 
--- of ?CHILD.
-fun mother  : El Organism -> El Organism -> Formula ;
-
-
--- (multiplicativeFactor ?NUMBER1 ?NUMBER2) 
--- means that ?NUMBER1 is a factor of ?NUMBER2, i.e. ?NUMBER1 can be multiplied by 
--- some Integer to give ?NUMBER2 as a result.
-fun multiplicativeFactor  : El Integer -> El Integer -> Formula ;
-
-
--- (mutualAcquaintance ?H1 ?H2) means
--- that ?H1 and ?H2 have met each other and know something about each other,
--- such as name and appearance. Statements made with this predicate should
--- be temporally specified with holdsDuring. See also the weaker,
--- non_symmetric version of this predicate, acquaintance.
-fun mutualAcquaintance  : El Human -> El Human -> Formula ;
-
-
--- (names ?STRING ?ENTITY) means that the thing ?ENTITY 
--- has the SymbolicString ?STRING as its name. Note that names and represents 
--- are the two immediate subrelations of refers. The predicate names is used 
--- when the referring item is merely a tag without connotative content, while the 
--- predicate represents is used for referring items that have such content.
-fun names  : El SymbolicString -> El Entity -> Formula ;
-
-
--- (needs ?AGENT ?OBJECT) means that ?OBJECT is 
--- physically required for the continued existence of ?AGENT.
-fun needs  : El CognitiveAgent -> El Physical -> Formula ;
-
-
--- (occupiesPosition ?PERSON ?POSITION ?ORG) 
--- means that ?PERSON holds the Position ?POSITION at Organization ?ORG. 
--- For example, (occupiesPosition TomSmith ResearchDirector 
--- AcmeLaboratory) means that TomSmith is a research director at Acme Labs.
-fun occupiesPosition  : El Human -> El Position -> El Organization -> Formula ;
-
-
--- A general Predicate for indicating how two 
--- Objects are oriented with respect to one another. For example, 
--- (orientation ?OBJ1 ?OBJ2 North) means that ?OBJ1 is north of ?OBJ2, and 
--- (orientation ?OBJ1 ?OBJ2 Vertical) means that ?OBJ1 is positioned 
--- vertically with respect to ?OBJ2.
-fun orientation  : El Object -> El Object -> El PositionalAttribute -> Formula ;
-
-
--- (origin ?PROCESS ?SOURCE) means that ?SOURCE 
--- indicates where the ?Process began. Note that this relation implies 
--- that ?SOURCE is present at the beginning of the process, but need not 
--- participate throughout the process. For example, the submarine is the 
--- origin in the following proposition: the missile was launched from a 
--- submarine.
-fun origin  : El Process -> El Object -> Formula ;
-
-
--- (overlapsPartially ?OBJ1 ?OBJ2) means 
--- that ?OBJ1 and ?OBJ2 have part(s) in common, but neither ?OBJ1 nor ?OBJ2 
--- is a part of the other.
-fun overlapsPartially  : El Object -> El Object -> Formula ;
-
-
--- (overlapsSpatially ?OBJ1 ?OBJ2) means 
--- that the Objects ?OBJ1 and ?OBJ2 have some parts in common. This is a 
--- reflexive and symmetric (but not transitive) relation.
-fun overlapsSpatially  : El Object -> El Object -> Formula ;
-
-
--- (overlapsTemporally ?INTERVAL1 
--- ?INTERVAL2) means that the TimeIntervals ?INTERVAL1 and ?INTERVAL2 
--- have a TimeInterval as a common part.
-fun overlapsTemporally  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- (parallel ?LINE1 ?LINE2) means that the 
--- OneDimensionalFigures ?LINE1 and ?LINE2 are parallel to one another, 
--- i.e. they are equidistant from one another at every point.
-fun parallel  : El OneDimensionalFigure -> El OneDimensionalFigure -> Formula ;
-
-
--- The general relationship of parenthood. 
--- (parent ?CHILD ?PARENT) means that ?PARENT is a biological parent 
--- of ?CHILD.
-fun parent  : El Organism -> El Organism -> Formula ;
-
-
--- The basic mereological relation. All other 
--- mereological relations are defined in terms of this one. 
--- (part ?PART ?WHOLE) simply means that the Object ?PART is part
--- of the Object ?WHOLE. Note that, since part is a 
--- ReflexiveRelation, every Object is a part of itself.
-fun part  : El Object -> El Object -> Formula ;
-
-
--- (partiallyFills ?OBJ ?HOLE) means that 
--- ?OBJ completelyFills some part of ?HOLE. Note that if (partiallyFills 
--- ?OBJ1 ?HOLE) and (part ?OBJ1 ?OBJ2), then (partiallyFills ?OBJ2 ?HOLE). 
--- Note too that a partial filler need not be wholly inside a hole (it may 
--- stick out), which means that every complete filler also qualifies as 
--- (is a limit case of) a partial one.
-fun partiallyFills  : El Physical -> El Object -> Formula ;
-
-
--- A partition of a class C is a set of 
--- mutually disjoint classes (a subclass partition) which covers C. 
--- Every instance of C is an instance of exactly one of the subclasses 
--- in the partition.
-fun partition  : Class -> [Class] -> Formula ;
-
-
--- (partlyLocated ?THING ?OBJ) means that the 
--- instance of Physical ?THING is at least partially located at ?OBJ. For 
--- example, Istanbul is partly located in Asia and partly located in Europe. 
--- Note that partlyLocated is the most basic localization relation: located 
--- is an immediate subrelation of partlyLocated and exactlyLocated is 
--- an immediate subrelation of located.
-fun partlyLocated  : El Physical -> El Object -> Formula ;
-
-
--- (path ?MOTION ?PATH) means that ?PATH is a route 
--- along which ?MOTION occurs. For example, Highway 101 is the path in the 
--- following proposition: the car drove up Highway 101.
-fun path  : El Motion -> El Object -> Formula ;
-
-
--- A BinaryPredicate that specifies the 
--- length (in number of GraphNodes) of a GraphPath.
--- (pathLength ?PATH ?NUMBER) means that there are ?NUMBER nodes in 
--- the GraphPath ?PATH.
-fun pathLength  : El GraphPath -> El PositiveInteger -> Formula ;
-
-
--- (patient ?PROCESS ?ENTITY) means that ?ENTITY 
--- is a participant in ?PROCESS that may be moved, said, experienced, etc. 
--- For example, the direct objects in the sentences 'The cat swallowed the 
--- canary' and 'Billy likes the beer' would be examples of patients. Note 
--- that the patient of a Process may or may not undergo structural 
--- change as a result of the Process. The CaseRole of patient is used 
--- when one wants to specify as broadly as possible the object of a 
--- Process.
-fun patient  : El Process -> El Entity -> Formula ;
-
-
--- (penetrates ?OBJ1 ?OBJ2) means that 
--- ?OBJ1 is connected to ?OBJ2 along at least one whole dimension (length, 
--- width or depth).
-fun penetrates  : El Object -> El Object -> Formula ;
-
-
--- A specialized common sense notion of part for 
--- arbitrary parts of Substances. Quasi_synonyms are: chunk, hunk, bit, 
--- etc. Compare component, another subrelation of part.
-fun piece  : El Substance -> El Substance -> Formula ;
-
-
--- (pointOfFigure ?POINT ?FIGURE) means that 
--- the GeometricPoint ?POINT is part of the GeometricFigure ?FIGURE.
-fun pointOfFigure  : El GeometricFigure -> El GeometricFigure -> Formula ;
-
-
--- (pointOfIntersection ?FIGURE1 ?FIGURE2 
--- ?POINT) means that the two straight lines ?FIGURE1 and ?FIGURE2 meet at the 
--- point ?POINT.
-fun pointOfIntersection  : El OneDimensionalFigure -> El OneDimensionalFigure -> El GeometricPoint -> Formula ;
-
-
--- Relation that holds between an Agent and 
--- an Object when the Agent has ownership of the Object.
-fun possesses  : El Agent -> El Object -> Formula ;
-
-
--- A very general Predicate. (precondition 
--- ?PROC1 ?PROC2) means that an instance of ?PROC2 can exist only if an 
--- instance of ?PROC1 also exists.
-fun precondition : Desc Process -> Desc Process -> Formula ;
-
-
--- (prefers ?AGENT ?FORMULA1 ?FORMULA2) means that 
--- CognitiveAgent ?AGENT prefers the state of affairs expressed by ?FORMULA1
--- over the state of affairs expressed by ?FORMULA2 all things being equal.
-fun prefers  : El CognitiveAgent -> Formula -> Formula -> Formula ;
-
-
--- (premise ?ARGUMENT ?PROPOSITION) means that the 
--- Proposition ?PROPOSITION is an explicit assumption of the Argument 
--- ?ARGUMENT.
-fun premise  : El Argument -> El Proposition -> Formula ;
-
-
--- A very general Predicate. (prevents ?PROC1 
--- ?PROC2) means that ?PROC1 prevents the occurrence of ?PROC2. In other 
--- words, if ?PROC1 is occurring in a particular time and place, ?PROC2 
--- cannot occur at the same time and place. For example, innoculating 
--- prevents contracting disease. Note that this is a relation between types 
--- of Processes, not between instances.
-fun prevents : Desc Process -> Desc Process -> Formula ;
-
-
--- (properPart ?OBJ1 ?OBJ2) means that 
--- ?OBJ1 is a part of ?OBJ2 other than ?OBJ2 itself. This is a 
--- TransitiveRelation and AsymmetricRelation (hence an 
--- IrreflexiveRelation).
-fun properPart  : El Object -> El Object -> Formula ;
-
-
--- (properlyFills ?OBJ ?HOLE) 
--- means that ?HOLE is properly (though perhaps incompletely) filled by 
--- ?OBJ, i.e. some part of ?HOLE is perfectly filled by ?OBJ. Note that 
--- properlyFills is the dual of completelyFills, and is so 
--- related to partiallyFills that ?OBJ properlyFills ?HOLE just in 
--- case ?OBJ partiallyFills every part of ?HOLE. (Thus, every perfect 
--- filler is both complete and proper in this sense). 
--- Every hole is connected with everything with which a proper filler 
--- of the hole is connected. Every proper part of a perfect filler of (a part of) a hole properly 
--- fills (that part of) that hole.
-fun properlyFills  : El Object -> El Hole -> Formula ;
-
-
--- This Predicate holds between an instance of 
--- Entity and an instance of Attribute. (property ?ENTITY ?ATTR) 
--- means that ?ENTITY has the Attribute ?ATTR.
-fun property  : El Entity -> El Attribute -> Formula ;
-
-
--- (publishes ?ORG ?TEXT) means that ?ORG 
--- publishes ?TEXT. For example, Bantam Books publishes Agatha Christie's 
--- Murder_on_the_Orient_Express.
-fun publishes : El Organization -> Desc Text -> Formula ;
-
-
--- (radius ?CIRCLE ?LENGTH) means that the radius of 
--- the Circle ?CIRCLE has a length of ?LENGTH.
-fun radius  : El Circle -> El LengthMeasure -> Formula ;
-
-
--- A subrelation of represents. 
--- (realization ?PROCESS ?PROP) means that ?PROCESS is a Process which 
--- expresses the content of ?PROP. Examples include a particular musical 
--- performance, which realizes the content of a musical score, or the 
--- reading of a poem.
-fun realization  : El Process -> El Proposition -> Formula ;
-
-
--- (refers ?OBJ1 ?OBJ2) means that ?OBJ1 
--- mentions or includes a reference to ?OBJ2. Note that refers is 
--- more general in meaning than represents, because presumably something 
--- can represent something else only if it refers to this other thing. 
--- For example, an article whose topic is a recent change in the price of 
--- oil may refer to many other things, e.g. the general state of the economy, 
--- the weather in California, the prospect of global warming, the options 
--- for alternative energy sources, the stock prices of various oil companies, 
--- etc.
-fun refers  : El Entity -> El Entity -> Formula ;
-
-
--- (relatedEvent ?EVENT1 ?EVENT2) means 
--- that the Process ?EVENT1 is related to the Process ?EVENT2. The 
--- relationship is between separate individual events, not events and 
--- their subprocesses. On the other hand, two subProcesses of the same 
--- overarching event may be relatedEvents. The argument order does not 
--- imply temporal ordering.
-fun relatedEvent  : El Process -> El Process -> Formula ;
-
-
--- Used to signify a three_place 
--- relation between a concept in an external knowledge source, a concept 
--- in the SUMO, and the name of the other knowledge source.
-fun relatedExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
-
-
--- Means that the two arguments are 
--- related concepts within the SUMO, i.e. there is a significant similarity 
--- of meaning between them. To indicate a meaning relation between a SUMO 
--- concept and a concept from another source, use the Predicate 
--- relatedExternalConcept.
-fun relatedInternalConcept  : El Entity -> El Entity -> Formula ;
-
-
--- (relative ?O1 ?O2) means that ?O1
--- and ?O2 are relatives, whether through common ancestry (consanguinity),
--- someone's marriage (affinity), or someone's adoption. This definition is
--- intentionally broad, so as to capture a wide array of `familial'
--- relations. The notion of who counts as `family' also varies between
--- cultures, but that aspect of meaning is not addressed here.
-fun relative  : El Organism -> El Organism -> Formula ;
-
-
--- A very general semiotics Predicate. 
--- (represents ?THING ?ENTITY) means that ?THING in some way indicates, 
--- expresses, connotes, pictures, describes, etc. ?ENTITY. The Predicates 
--- containsInformation and realization are subrelations of represents. 
--- Note that represents is a subrelation of refers, since something can 
--- represent something else only if it refers to this other thing. See the 
--- documentation string for names.
-fun represents  : El Entity -> El Entity -> Formula ;
-
-
--- A very general predicate. 
--- (representsForAgent ?ENTITY1 ?ENTITY2 ?AGENT) means that the ?AGENT 
--- chooses to use ?ENTITY1 to 'stand for' ?ENTITY2.
-fun representsForAgent  : El Entity -> El Entity -> El Agent -> Formula ;
-
-
--- A very general predicate. 
--- (representsInLanguage ?THING ?ENTITY ?LANGUAGE) means that the 
--- LinguisticExpression ?THING stands for ?ENTITY in the Language 
--- ?LANGUAGE.
-fun representsInLanguage  : El LinguisticExpression -> El Entity -> El Language -> Formula ;
-
-
-fun resourceS  : El Process -> El Entity -> Formula ;
-
--- (result ?ACTION ?OUTPUT) means that ?OUTPUT is 
--- a product of ?ACTION. For example, house is a result in the 
--- following proposition: Eric built a house.
-fun result  : El Process -> El Entity -> Formula ;
-
-
--- The relationship between two Organisms that 
--- have the same mother and father. Note that this relationship does 
--- not hold between half_brothers, half_sisters, etc.
-fun sibling  : El Organism -> El Organism -> Formula ;
-
-
--- (side ?SIDE ?OBJECT) means that ?SIDE is a side of the object, 
--- as opposed to the top or bottom.
-fun side  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
-
-
--- The general relationship of being a sister. 
--- (sister ?WOMAN ?PERSON) means that ?WOMAN is the sister of ?PERSON.
-fun sister  : El Woman -> El Human -> Formula ;
-
-
--- (smaller ?OBJ1 ?OBJ2) means that ?OBJ1 
--- is smaller, with respect to all LengthMeasures, than ?OBJ2.
-fun smaller  : El Object -> El Object -> Formula ;
-
-
--- The general relationship of being a son. 
--- (son ?CHILD ?PARENT) means that ?CHILD is the biological 
--- son of ?PARENT.
-fun son  : El Organism -> El Organism -> Formula ;
-
-
--- The relationship of marriage between two Humans.
-fun spouse  : El Human -> El Human -> Formula ;
-
-
--- (starts ?INTERVAL1 ?INTERVAL2) means that 
--- ?INTERVAL1 and ?INTERVAL2 are both TimeIntervals that have the same 
--- initial TimePoint and that ?INTERVAL1 ends before ?INTERVAL2.
-fun starts  : El TimeInterval -> El TimeInterval -> Formula ;
-
-
--- The relation between a Human and a TemporaryResidence 
--- of the Human.
-fun stays  : El Human -> El TemporaryResidence -> Formula ;
-
-
--- Means that the second argument can be 
--- ascribed to everything which has the first argument ascribed to it.
-fun subAttribute  : El Attribute -> El Attribute -> Formula ;
-
-
--- (subCollection ?COLL1 ?COLL2) means that 
--- the Collection ?COLL1 is a proper part of the Collection ?COLL2.
-fun subCollection  : El Collection -> El Collection -> Formula ;
-
-
--- The relation between two Graphs when one 
--- Graph is a part of the other. (subGraph ?GRAPH1 ?GRAPH2) means 
--- that ?GRAPH1 is a part of ?GRAPH2.
-fun subGraph  : El Graph -> El Graph -> Formula ;
-
-
--- (subList ?LIST1 ?LIST2) means that ?LIST1 is a 
--- sublist of ?LIST2, i.e. every element of ?LIST1 is an element of ?LIST2 and 
--- the elements that are common to both Lists have the same order in both 
--- Lists. Elements that are common to both Lists and are consecutive in one 
--- list must also be consecutive in the other list. (Therefore _ the list of 
--- prime numbers smaller than 10 [1 2 3 5 7] is not a subList of the 
--- natural numbers smaller than 10 [1 2 3 4 5 6 7 8 9]).
-fun subList  : El List -> El List -> Formula ;
-
-
--- (subOrganization ?ORG1 ?ORG2) means 
--- that ?ORG1 is an Organization which is a part of the Organization 
--- ?ORG2. Note that subOrganization is a ReflexiveRelation, so every 
--- Organization is a subOrganization of itself.
-fun subOrganization  : El Organization -> El Organization -> Formula ;
-
-
--- (subPlan ?PLAN1 ?PLAN2) means that ?PLAN1 
--- is a Plan which is a proper part of ?PLAN2. This relation is generally 
--- used to relate a supporting Plan to the overall Plan in a particular 
--- context.
-fun subPlan  : El Plan -> El Plan -> Formula ;
-
-
--- (subProcess ?SUBPROC ?PROC) means that ?SUBPROC 
--- is a subprocess of ?PROC. A subprocess is here understood as a temporally 
--- distinguished part (proper or not) of a Process.
-fun subProcess  : El Process -> El Process -> Formula ;
-
-
--- (subProposition ?PROP1 ?PROP2) means that 
--- ?PROP1 is a Proposition which is a proper part of the Proposition ?PROP2. 
--- In other words, subProposition is the analogue of properPart for chunks 
--- of abstract content.
-fun subProposition  : El Proposition -> El Proposition -> Formula ;
-
-
--- (subSystem ?SUB ?SYSTEM) means that the 
--- PhysicalSystem ?SUB is a part of the PhysicalSystem ?SYSTEM.
-fun subSystem  : El PhysicalSystem -> El PhysicalSystem -> Formula ;
-
-
--- (subclass ?CLASS1 ?CLASS2) means that ?CLASS1 is 
--- a subclass of ?CLASS2, i.e. every instance of ?CLASS1 is also an instance of 
--- ?CLASS2. A class may have multiple superclasses and subclasses.
-fun subclass  : El SetOrClass -> El SetOrClass -> Formula ;
-
-
--- (subset ?SET1 ?SET2) is true just in case the 
--- elements of the Set ?SET1 are also elements of the Set ?SET2.
-fun subset  : El Set -> El Set -> Formula ;
-
-
--- (subsumedExternalConcept 
--- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING is subsumed 
--- by the meaning of ?STRING in ?LANGUAGE, i.e. the concept ?THING is narrower 
--- in meaning than ?STRING.
-fun subsumedExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
-
-
--- A BinaryPredicate that relates two 
--- subclasses of ContentBearingObject. (subsumesContentClass ?CLASS1 
--- ?CLASS2) means that the content expressed by each instance of ?CLASS2 is 
--- also expressed by each instance of ?CLASS1. Examples include the 
--- relationship between a poem and one of its stanzas or between a book and 
--- one of its chapters. Note that this is a relation between subclasses of 
--- ContentBearingObject, rather than instances. If one wants to relate 
--- instances, the Predicate subsumesContentInstance can be used. Note 
--- that subsumesContentClass is needed in many cases. Consider, for 
--- example, the relation between the King James edition of the Bible and its 
--- Book of Genesis. This relation holds for every copy of this edition and 
--- not just for a single instance.
-fun subsumesContentClass : Desc ContentBearingObject -> Desc ContentBearingObject -> Formula ;
-
-
--- A BinaryPredicate relating two 
--- instances of ContentBearingObject. (subsumesContentInstance ?OBJ1 ?OBJ2) 
--- means that the content expressed by ?OBJ2 is part of the content expressed 
--- by ?OBJ1. An example is the relationship between a handwritten poem and 
--- one of its stanzas. Note that this is a relation between instances, 
--- rather than Classes. If one wants to assert a content relationship 
--- between Classes, e.g. between the version of an intellectual work and a 
--- part of that work, the relation subsumesContentClass should be used.
-fun subsumesContentInstance  : El ContentBearingObject -> El ContentBearingObject -> Formula ;
-
-
--- (subsumingExternalConcept 
--- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING subsumes 
--- the meaning of ?STRING in ?LANGUAGE, i.e. the concept ?THING is broader 
--- in meaning than ?STRING.
-fun subsumingExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
-
-
--- (successorAttribute ?ATTR1 ?ATTR2) 
--- means that ?ATTR2 is the Attribute that comes immediately after ?ATTR1 
--- on the scale that they share.
-fun successorAttribute  : El Attribute -> El Attribute -> Formula ;
-
-
--- The transitive closure of 
--- successorAttribute. (successorAttributeClosure ?ATTR1 ?ATTR2) means 
--- that there is a chain of successorAttribute assertions connecting 
--- ?ATTR1 and ?ATTR2.
-fun successorAttributeClosure  : El Attribute -> El Attribute -> Formula ;
-
-
--- (superficialPart ?OBJ1 ?OBJ2) 
--- means that ?OBJ1 is a part of ?OBJ2 that has no interior parts of its own 
--- (or, intuitively, that only overlaps those parts of ?OBJ2 that are 
--- externally connected with the mereological complement of ?OBJ2). This too 
--- is a transitive relation closed under MereologicalSumFn and 
--- MereologicalProductFn.
-fun superficialPart  : El Object -> El Object -> Formula ;
-
-
--- (surface ?OBJ1 ?OBJ2) means that ?OBJ1 
--- is a maximally connected superficialPart of ?OBJ2. Note that some 
--- SelfConnectedObjects have more than one surface, e.g. a hollow 
--- object like a tennis ball has both an inner and an outer surface.
-fun surface  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
-
-
--- (synonymousExternalConcept 
--- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING has the 
--- same meaning as ?STRING in ?LANGUAGE.
-fun synonymousExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
-
-
--- (systemPart ?PART ?SYSTEM) means that 
--- the Physical thing ?PART is a SystemElement in the PhysicalSystem 
--- ?SYSTEM.
-fun systemPart  : El Physical -> El PhysicalSystem -> Formula ;
-
-
--- The temporal analogue of the spatial part 
--- predicate. (temporalPart ?POS1 ?POS2) means that TimePosition ?POS1 
--- is part of TimePosition ?POS2. Note that since temporalPart is a 
--- ReflexiveRelation every TimePostion is a temporalPart of itself.
-fun temporalPart  : El TimePosition -> El TimePosition -> Formula ;
-
-
--- (temporallyBetween ?POINT1 ?POINT2 
--- ?POINT3) means that the TimePoint ?POINT2 is between the TimePoints 
--- ?POINT1 and ?POINT3, i.e. ?POINT1 is before ?POINT2 and ?POINT2 is before 
--- ?POINT3.
-fun temporallyBetween  : El TimePoint -> El TimePoint -> El TimePoint -> Formula ;
-
-
--- (temporallyBetweenOrEqual ?POINT1 ?POINT2 
--- ?POINT3) means that the TimePoint ?POINT1 is before or equal to the 
--- TimePoint ?POINT2 and ?POINT2 is before or equal to the TimePoint 
--- ?POINT3.
-fun temporallyBetweenOrEqual  : El TimePoint -> El TimePoint -> El TimePoint -> Formula ;
-
-
--- This relation holds between an instance of 
--- Physical and an instance of TimePosition just in case the temporal 
--- lifespan of the former includes the latter. In other words, (time
--- ?THING ?TIME) means that ?THING existed or occurred at ?TIME. Note 
--- that time does for instances of Physical what holdsDuring does 
--- for instances of Formula. The constants located and time are 
--- the basic spatial and temporal predicates, respectively.
-fun time  : El Physical -> El TimePosition -> Formula ;
-
-
-fun toInt : Int -> Ind Integer ;
-
-fun toRealNum : Float -> Ind RealNumber ;
-
--- (top ?TOP ?OBJECT) means that ?TOP is the highest maximal 
--- superficial part of ?OBJECT.
-fun top  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
-
-
--- (transactionAmount ?TRANSACTION 
--- ?AMOUNT) means that ?AMOUNT is an instance of CurrencyMeasure being 
--- exhanged in the FinancialTransaction ?TRANSACTION.
-fun transactionAmount  : El FinancialTransaction -> El CurrencyMeasure -> Formula ;
-
-
--- (traverses ?OBJ1 ?OBJ2) means that ?OBJ1 
--- crosses or extends across ?OBJ2. Note that crosses and 
--- penetrates are subrelations of traverses.
-fun traverses  : El Object -> El Object -> Formula ;
-
-
--- The BinaryPredicate that relates a Sentence 
--- to its TruthValue.
-fun truth  : El Sentence -> El TruthValue -> Formula ;
-
-
--- The class of names that uniquely identify 
--- an instance of Entity. Some examples of uniqueIdentifiers are the keys 
--- of tables in database applications and the ISBN (International Standard Book 
--- Number).
-fun uniqueIdentifier  : El SymbolicString -> El Entity -> Formula ;
-
-
--- (uses ?OBJECT AGENT) means that ?OBJECT is used by 
--- ?AGENT as an instrument in an unspecified Process. This Predicate, 
--- as its corresponding axiom indicates, is a composition of the CaseRoles 
--- agent and instrument.
-fun uses  : El Object -> El Agent -> Formula ;
-
-
--- Some Artifacts have a life cycle with discrete 
--- stages or versions. (version ARTIFACT1 ARTIFACT2) means that ARTIFACT1 
--- is a version of ARTIFACT2. Note that this Predicate relates subclasses of 
--- Artifact and not instances.
-fun version : Desc Artifact -> Desc Artifact -> Formula ;
-
-
--- (wants ?AGENT ?OBJECT) means that ?OBJECT is desired by ?AGENT, 
--- i.e. ?AGENT believes that ?OBJECT will satisfy one of its goals. Note that there is 
--- no implication that what is wanted by an agent is not already possessed by the agent.
-fun wants  : El CognitiveAgent -> El Physical -> Formula ;
-
-
--- (wears ?AGENT ?CLOTHING) means that ?AGENT is wearing 
--- the item of Clothing ?CLOTHING.
-fun wears  : El Animal -> El Clothing -> Formula ;
-
-
--- (weight ?O ?MM) means that on planet earth
--- the SelfConnectedObject ?O has the weight ?MM.
-fun weight  : El SelfConnectedObject -> El MassMeasure -> Formula ;
-
-
--- BinaryPredicate that is used to state the measure 
--- of an Object from side to side at its widest span.
-fun width  : El Object -> El PhysicalQuantity -> Formula ;
-
-
--- (wife ?WOMAN ?MAN) means that ?WOMAN is the wife of 
--- ?MAN.
-fun wife  : El Woman -> El Man -> Formula ;
+abstract Merge = Basic ** {
+
+  -- Any AnatomicalStructure which 
+  -- is not normally found in the Organism of which it is a part, i.e. it is 
+  -- the result of a PathologicProcess. This class covers tumors, birth marks, 
+  -- goiters, etc.
+  fun AbnormalAnatomicalStructure  : Class ;
+  fun AbnormalAnatomicalStructure_Class : SubClass AbnormalAnatomicalStructure AnatomicalStructure ;
+
+  -- This is a PositionalAttribute derived from the 
+  -- up/down schema and not involving contact. Note that this means directly 
+  -- above, i.e., if one object is Above another object, then the projections 
+  -- of the two objects overlap.
+  fun Above  : Ind AntiSymmetricPositionalAttribute ;
+
+  -- The value of (AbsoluteValueFn ?NUMBER) 
+  -- is the absolute value of the RealNumber ?NUMBER.
+  fun AbsoluteValueFn  : El RealNumber -> Ind NonnegativeRealNumber ;
+
+  -- Properties or qualities as distinguished from any 
+  -- particular embodiment of the properties/qualities in a physical medium. 
+  -- Instances of Abstract can be said to exist in the same sense as mathematical 
+  -- objects such as sets and relations, but they cannot exist at a particular 
+  -- place and time without some physical encoding or embodiment.
+  fun Abstract  : Class ;
+  fun Abstract_Class : SubClass Abstract Entity ;
+
+  -- A UnaryFunction that maps a Class into 
+  -- the instance of Attribute that specifies the condition(s) for membership 
+  -- in the Class.
+  fun AbstractionFn  : Class -> Ind Attribute ;
+
+  -- If ?NUMBER1 and ?NUMBER2 are Numbers, then 
+  -- (AdditionFn ?NUMBER1 ?NUMBER2) is the arithmetical sum of these 
+  -- numbers.
+  fun AdditionFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- Used to assert that an object ?OBJ1 is close 
+  -- to, near or abutting ?OBJ2. This PositionalAttribute covers the 
+  -- following common sense notions: adjoins, abuts, is contiguous to, 
+  -- is juxtaposed, and is close to.
+  fun Adjacent  : Ind SymmetricPositionalAttribute ;
+
+  -- One of the parts of speech. The Class of 
+  -- Words that conventionally denote Attributes of Objects.
+  fun Adjective  : Class ;
+  fun Adjective_Class : SubClass Adjective Word ;
+
+  -- One of the parts of speech. The Class of Words 
+  -- that conventionally denote Attributes of Processes.
+  fun Adverb  : Class ;
+  fun Adverb_Class : SubClass Adverb Word ;
+
+  -- A Disseminating whose purpose is to 
+  -- promote the sale of an Object represented in a Text or Icon 
+  -- (the advertisement).
+  fun Advertising  : Class ;
+  fun Advertising_Class : SubClass Advertising Disseminating ;
+
+  -- A GroupOfPeople whose members all have the 
+  -- same age.
+  fun AgeGroup  : Class ;
+  fun AgeGroup_Class : SubClass AgeGroup GroupOfPeople ;
+
+  -- Something or someone that can act on its own and 
+  -- produce changes in the world.
+  fun Agent  : Class ;
+  fun Agent_Class : SubClass Agent Object ;
+
+  -- Air is the gaseous stuff that makes up the 
+  -- atmosphere surrounding Earth.
+  fun Air  : Class ;
+  fun Air_Class : SubClass Air GasMixture ;
+
+  -- A Class containing all of the Attributes 
+  -- relating to the notions of possibility and necessity.
+  fun AlethicAttribute  : Class ;
+  fun AlethicAttribute_Class : SubClass AlethicAttribute ObjectiveNorm ;
+
+  -- A chiefly aquatic plant that contains chlorophyll, 
+  -- but does not form embryos during development and lacks vascular tissue.
+  fun Alga  : Class ;
+  fun Alga_Class : SubClass Alga NonFloweringPlant ;
+
+  -- Any BodyMotion which is accomplished by 
+  -- means of the legs of an Animal for the purpose of moving from one 
+  -- point to another.
+  fun Ambulating  : Class ;
+  fun Ambulating_Class : SubClass Ambulating (both BodyMotion Translocation) ;
+
+  -- SI electric current measure. Symbol: A. It is 
+  -- one of the base units in SI. It is defined as follows: the Ampere is 
+  -- that constant current which, if maintained in two straight parallel 
+  -- conductors of infinite length, of negligible circular cross_section, and 
+  -- placed 1 Meter apart in a vacuum, would produce between these conductors 
+  -- a force equal to 2*10^(_7) Newton per Meter of length.
+  fun Ampere  : Ind CompositeUnitOfMeasure ;
+
+  -- A cold_blooded, smooth_skinned Vertebrate 
+  -- which characteristically hatches as an aquatic larva, breathing by 
+  -- gills. When mature, the Amphibian breathes with Lungs.
+  fun Amphibian  : Class ;
+  fun Amphibian_Class : SubClass Amphibian ColdBloodedVertebrate ;
+
+  -- Atomic mass unit. Symbol: u. It is the mass of 
+  -- the twelfth part of an atom of the Carbon 12 isotope.
+  fun Amu  : Ind UnitOfMass ;
+
+  -- A normal or pathological part 
+  -- of the anatomy or structural organization of an Organism. This 
+  -- class covers BodyParts, as well as structures that are given off 
+  -- by Organisms, e.g. ReproductiveBodies.
+  fun AnatomicalStructure  : Class ;
+  fun AnatomicalStructure_Class : SubClass AnatomicalStructure OrganicObject ;
+
+  -- The value of an angle in a plane or in a 
+  -- solid.
+  fun AngleMeasure  : Class ;
+  fun AngleMeasure_Class : SubClass AngleMeasure ConstantQuantity ;
+
+  -- The Angstrom is a LengthMeasure. 
+  -- 1 Angstrom = 10^(_10) m
+  fun Angstrom  : Ind UnitOfLength ;
+
+  -- A plane angle measure.
+  fun AngularDegree  : Ind UnitOfAngularMeasure ;
+
+  -- Attributes that indicate whether an 
+  -- Organism is alive or not.
+  fun AnimacyAttribute  : Class ;
+  fun AnimacyAttribute_Class : SubClass AnimacyAttribute BiologicalAttribute ;
+
+  -- An Organism with eukaryotic Cells, and lacking 
+  -- stiff cell walls, plastids, and photosynthetic pigments.
+  fun Animal : Class ;
+  def Animal = KappaFn Organism (\ANIMAL -> and (forall AnimalSubstance           (\SUBSTANCE -> part (var AnimalSubstance Object ? SUBSTANCE)
+                                                                                                      (var Organism Object ? ANIMAL)))
+                                                (forall AnimalAnatomicalStructure (\STRUCTURE -> part (var AnimalAnatomicalStructure Object ? STRUCTURE)
+                                                                                                      (var Organism Object ? ANIMAL)))) ;
+
+  -- AnatomicalStructures that 
+  -- are possessed exclusively by Animals.
+  fun AnimalAnatomicalStructure  : Class ;
+  fun AnimalAnatomicalStructure_Class : SubClass AnimalAnatomicalStructure AnatomicalStructure ;
+
+  -- The subclass of Languages used by 
+  -- Animals other than Humans.
+  fun AnimalLanguage  : Class ;
+  fun AnimalLanguage_Class : SubClass AnimalLanguage Language ;
+
+  -- BodySubstances that are produced 
+  -- exclusively by Animals.
+  fun AnimalSubstance  : Class ;
+  fun AnimalSubstance_Class : SubClass AnimalSubstance BodySubstance ;
+
+  -- AntiSymmetricPositionalAttribute is the class of 
+  -- PositionalAttribute that hold in only one direction. I.e. two objects cannot
+  -- simulataneously be On each other.
+  fun AntiSymmetricPositionalAttribute  : Class ;
+  fun AntiSymmetricPositionalAttribute_Class : SubClass AntiSymmetricPositionalAttribute PositionalAttribute ;
+
+  -- Various Primates with no tails or only short 
+  -- tails.
+  fun Ape  : Class ;
+  fun Ape_Class : SubClass Ape Primate ;
+
+  -- The Class of all Months which are April.
+  fun April  : Class ;
+  fun April_Class : SubClass April Month ;
+
+  -- The Class of Mammals that dwell chiefly 
+  -- in the water. Includes whales, dolphins, manatees, seals, and walruses.
+  fun AquaticMammal  : Class ;
+  fun AquaticMammal_Class : SubClass AquaticMammal Mammal ;
+
+  -- A Class of Arthropods that includes 
+  -- ticks and spiders.
+  fun Arachnid  : Class ;
+  fun Arachnid_Class : SubClass Arachnid Arthropod ;
+
+  -- Measures of the amount of space in two 
+  -- dimensions.
+  fun AreaMeasure  : Class ;
+  fun AreaMeasure_Class : SubClass AreaMeasure FunctionQuantity ;
+
+  -- Any proposition which has the form of a deductive 
+  -- or inductive argument, i.e. a set of premises which, it is claimed, imply 
+  -- a conclusion.
+  fun Argument  : Class ;
+  fun Argument_Class : SubClass Argument Proposition ;
+
+  -- Artifacts that are created primarily for 
+  -- aesthetic appreciation. Note that this Class does not include 
+  -- most examples of architecture, which belong under StationaryArtifact.
+  fun ArtWork  : Class ;
+  fun ArtWork_Class : SubClass ArtWork Artifact ;
+
+  -- A Class of Invertebrate that includes 
+  -- Arachnids and Insects.
+  fun Arthropod  : Class ;
+  fun Arthropod_Class : SubClass Arthropod Invertebrate ;
+
+  -- A relatively short Text that either is unbound or is 
+  -- bound with other Articles in a Book.
+  fun Article  : Class ;
+  fun Article_Class : SubClass Article Text ;
+
+  -- A CorpuscularObject that is the product of a 
+  -- Making.
+  fun Artifact  : Class ;
+  fun Artifact_Class : SubClass Artifact CorpuscularObject ;
+
+  -- The subclass of Languages that are 
+  -- designed by Humans.
+  fun ArtificialLanguage  : Class ;
+  fun ArtificialLanguage_Class : SubClass ArtificialLanguage Language ;
+
+  -- Asexual Processes of biological 
+  -- reproduction.
+  fun AsexualReproduction  : Class ;
+  fun AsexualReproduction_Class : SubClass AsexualReproduction Replication ;
+
+  -- Attribute that applies to Organisms that are 
+  -- sleeping.
+  fun Asleep  : Ind ConsciousnessAttribute ;
+
+  -- The Class of all astronomical 
+  -- objects of significant size. It includes SelfConnectedObjects 
+  -- like planets, stars, and asteroids, as well as Collections like 
+  -- nebulae, galaxies, and constellations. Note that the planet Earth 
+  -- is an AstronomicalBody, but every Region of Earth is a 
+  -- GeographicArea.
+  fun AstronomicalBody  : Class ;
+  fun AstronomicalBody_Class : SubClass AstronomicalBody Region ;
+
+  -- An extremely small unit of matter that retains its 
+  -- identity in Chemical reactions. It consists of an AtomicNucleus and 
+  -- Electrons surrounding the AtomicNucleus.
+  fun Atom  : Class ;
+  fun Atom_Class : SubClass Atom ElementalSubstance ;
+
+  -- MassMeasure that is also known as the gram_atom. 
+  -- Defined as the mass in grams of 1 Mole of pure substance. For example, 
+  -- 1 AtomGram of Carbon 12 will be 12 Grams of pure Carbon 12. 2 AtomGrams 
+  -- of the same substance will be 24 Grams of it. This is an unusual unit in 
+  -- that it is essentially 1 Mole of 'stuff' measured in grams, so that the 
+  -- actual value (i.e. mass) depends on the type of substance.
+  fun AtomGram  : Ind UnitOfMass ;
+
+  -- The core of the Atom. It is composed of 
+  -- Protons and Neutrons.
+  fun AtomicNucleus  : Class ;
+  fun AtomicNucleus_Class : SubClass AtomicNucleus SubatomicParticle ;
+
+  -- A Process where one Object becomes attached 
+  -- to another Object. Note that this differs from Putting in that two 
+  -- things which are attached may already be in the same location. Note that 
+  -- Combining is different from Attaching in that the former applies to 
+  -- Substances, while the latter applies to CorpuscularObjects. Note too 
+  -- that Attaching is different from Putting in that one or both of the 
+  -- two things which are attached may or may not be moved from the location 
+  -- where they were combined.
+  fun Attaching  : Class ;
+  fun Attaching_Class : SubClass Attaching DualObjectProcess ;
+
+  -- A Device whose purpose is to attach one thing 
+  -- to something else, e.g. nails, screws, buttons, etc.
+  fun AttachingDevice  : Class ;
+  fun AttachingDevice_Class : SubClass AttachingDevice Device ;
+
+  -- A Maneuver in a ViolentContest where the 
+  -- agent attempts to inflict damage on the patient.
+  fun Attack  : Class ;
+  fun Attack_Class : SubClass Attack Maneuver ;
+
+  -- Qualities which we cannot or choose not to 
+  -- reify into subclasses of Object.
+  fun Attribute  : Class ;
+  fun Attribute_Class : SubClass Attribute Abstract ;
+
+  -- A sound level capable of being heard by a Human.
+  fun Audible  : Ind SoundAttribute ;
+
+  -- The Class of all Months which are August.
+  fun August  : Class ;
+  fun August_Class : SubClass August Month ;
+
+  -- The class of PhysiologicProcesses of 
+  -- which there is not conscious awareness and control.
+  fun AutonomicProcess  : Class ;
+  fun AutonomicProcess_Class : SubClass AutonomicProcess PhysiologicProcess ;
+
+  -- Attribute that applies to Organisms that are 
+  -- neither Unconscious nor Asleep.
+  fun Awake  : Ind ConsciousnessAttribute ;
+
+  -- A Function that maps an Object to the side 
+  -- that is opposite the FrontFn of the Object. Note that this is a 
+  -- partial function, since some Objects do not have sides, e.g. apples 
+  -- and spheres. Note too that the range of this Function is indefinite in 
+  -- much the way that ImmediateFutureFn and ImmediatePastFn are indefinite. 
+  -- Although this indefiniteness is undesirable from a theoretical standpoint, 
+  -- it does not have significant practical implications, since there is 
+  -- widespread intersubjective agreement about the most common cases.
+  fun BackFn  : El SelfConnectedObject -> Ind SelfConnectedObject ;
+
+  -- A small, typically one_celled, prokaryotic 
+  -- Microorganism.
+  fun Bacterium  : Class ;
+  fun Bacterium_Class : SubClass Bacterium Microorganism ;
+
+  -- A ViolentContest between two or more military 
+  -- units within the context of a war. Note that this does not cover the 
+  -- metaphorical sense of 'battle', which simply means a struggle of some 
+  -- sort. This sense should be represented with the more general concept of 
+  -- Contest.
+  fun Battle  : Class ;
+  fun Battle_Class : SubClass Battle ViolentContest ;
+
+  -- SI activity measure. Symbol: Bq. It measures 
+  -- the amount of radioactivity contained in a given sample of matter. It is 
+  -- that quantity of a radioactive element in which there is one atomic 
+  -- disintegration per SecondDuration. Becquerel = s^(_1).
+  fun Becquerel  : Ind CompositeUnitOfMeasure ;
+
+  -- A UnaryFunction that maps a TimeInterval to 
+  -- the TimePoint at which the interval begins.
+  fun BeginFn  : El TimeInterval -> Ind TimePoint ;
+
+  -- A UnaryFunction that maps a GraphPath 
+  -- to the GraphNode that is the beginning of the GraphPath. Note that, 
+  -- unlike InitialNodeFn (which relates a GraphArc to a GraphNode), 
+  -- BeginNodeFn is a total function _ every GraphPath has a beginning.
+  fun BeginNodeFn  : El GraphPath -> Ind GraphNode ;
+
+  -- A GroupOfPeople whose members share a belief 
+  -- or set of beliefs.
+  fun BeliefGroup  : Class ;
+  fun BeliefGroup_Class : SubClass BeliefGroup GroupOfPeople ;
+
+  -- This PositionalAttribute is derived from the 
+  -- up/down schema and may or may not involve contact. Note that this means 
+  -- directly below, i.e., if one object is Below another object, then the 
+  -- projections of the two objects overlap.
+  fun Below  : Ind AntiSymmetricPositionalAttribute ;
+
+  -- A FinancialTransaction where an instance of 
+  -- CurrencyMeasure is exchanged for the possibility of winning a larger 
+  -- instance of CurrencyMeasure within the context of some sort of 
+  -- Game.
+  fun Betting  : Class ;
+  fun Betting_Class : SubClass Betting FinancialTransaction ;
+
+  -- Any Food that is ingested by Drinking. 
+  -- Note that this class is disjoint with the other subclasses of Food, 
+  -- i.e. Meat and FruitOrVegetable.
+  fun Beverage  : Class ;
+  fun Beverage_Class : SubClass Beverage Food ;
+
+  -- Elements from the number system with base 2. 
+  -- Every BinaryNumber is expressed as a sequence of the digits 1 and 0.
+  fun BinaryNumber  : Class ;
+  fun BinaryNumber_Class : SubClass BinaryNumber RealNumber ;
+
+  -- Attributes that apply specifically 
+  -- to instances of Organism.
+  fun BiologicalAttribute  : Class ;
+  fun BiologicalAttribute_Class : SubClass BiologicalAttribute InternalAttribute ;
+
+  -- A Process embodied in an Organism.
+  fun BiologicalProcess  : Class ;
+  fun BiologicalProcess_Class : SubClass BiologicalProcess InternalChange ;
+
+  -- A Substance that is capable of inducing a change in the structure or functioning of an 
+  -- Organism. This Class includes Substances used in the treatment, 
+  -- diagnosis, prevention or analysis of normal and abnormal body function. 
+  -- This Class also includes Substances that occur naturally in the body 
+  -- and are administered therapeutically. Finally, BiologicallyActiveSubstance 
+  -- includes Nutrients, most drugs of abuse, and agents that require special 
+  -- handling because of their toxicity.
+  fun BiologicallyActiveSubstance  : Class ;
+  fun BiologicallyActiveSubstance_Class : SubClass BiologicallyActiveSubstance Substance ;
+
+  -- A Vertebrate having a constant body temperature 
+  -- and characterized by the presence of feathers.
+  fun Bird  : Class ;
+  fun Bird_Class : SubClass Bird WarmBloodedVertebrate ;
+
+  -- The Process of being born.
+  fun Birth  : Class ;
+  fun Birth_Class : SubClass Birth OrganismProcess ;
+
+  -- One Bit of information. A one or a zero.
+  fun Bit  : Ind UnitOfInformation ;
+
+  -- The Attribute of being black in color.
+  fun Black  : Ind PrimaryColor ;
+
+  -- A fluid present in Animals that transports 
+  -- Nutrients to and waste products away from various BodyParts.
+  fun Blood  : Class ;
+  fun Blood_Class : SubClass Blood BodySubstance ;
+
+  -- The Attribute of being blue in color.
+  fun Blue  : Ind PrimaryColor ;
+
+  -- Any BodyPart which contains an unfilled space, 
+  -- e.g. BodyVessels, the atria and ventricles of the heart, the lungs, etc.
+  fun BodyCavity  : Class ;
+  fun BodyCavity_Class : SubClass BodyCavity BodyPart ;
+
+  -- Any BodyPart which is a covering of another 
+  -- BodyPart or of an entire Organism. This would include the rinds of 
+  -- FruitOrVegetables and the skins of Animals.
+  fun BodyCovering  : Class ;
+  fun BodyCovering_Class : SubClass BodyCovering BodyPart ;
+
+  -- The place where two BodyParts 
+  -- meet or connect.
+  fun BodyJunction  : Class ;
+  fun BodyJunction_Class : SubClass BodyJunction BodyPart ;
+
+  -- Any Motion where the agent is an Organism 
+  -- and the patient is a BodyPart.
+  fun BodyMotion  : Class ;
+  fun BodyMotion_Class : SubClass BodyMotion Motion ;
+
+  -- A collection of Cells and Tissues which 
+  -- are localized to a specific area of an Organism and which are not 
+  -- pathological. The instances of this Class range from gross structures 
+  -- to small components of complex Organs.
+  fun BodyPart  : Class ;
+  fun BodyPart_Class : SubClass BodyPart AnatomicalStructure ;
+
+  -- The class of Attributes expressing 
+  -- configurations of bodies or parts of bodies of animals or humans, 
+  -- e.g. standing, sitting, kneeling, lying down, etc.
+  fun BodyPosition  : Class ;
+  fun BodyPosition_Class : SubClass BodyPosition BiologicalAttribute ;
+
+  -- Extracellular material and mixtures of 
+  -- cells and extracellular material that are produced, excreted or accreted 
+  -- by an Organism. Included here are Substances such as saliva, dental 
+  -- enamel, sweat, hormones, and gastric acid.
+  fun BodySubstance  : Class ;
+  fun BodySubstance_Class : SubClass BodySubstance Substance ;
+
+  -- Any tube_like structure which occurs naturally in 
+  -- an Organism and through which a BodySubstance can circulate.
+  fun BodyVessel  : Class ;
+  fun BodyVessel_Class : SubClass BodyVessel BodyCavity ;
+
+  -- The Class of Processes where a Substance is 
+  -- heated and converted from a Liquid to a Gas.
+  fun Boiling  : Class ;
+  fun Boiling_Class : SubClass Boiling StateChange ;
+
+  -- Rigid Tissue composed largely of calcium that makes up 
+  -- the skeleton of Vertebrates. Note that this Class also includes teeth.
+  fun Bone  : Class ;
+  fun Bone_Class : SubClass Bone (both AnimalSubstance Tissue) ;
+
+  -- A Text that has pages and is bound.
+  fun Book  : Class ;
+  fun Book_Class : SubClass Book Text ;
+
+  -- The subclass of Getting Processes where 
+  -- the agent gets something for a limited period of time with the expectation 
+  -- that it will be returned later (perhaps with interest).
+  fun Borrowing  : Class ;
+  fun Borrowing_Class : SubClass Borrowing Getting ;
+
+  -- The Process of respiration, by which oxygen 
+  -- is made available to an Animal. This covers processes of inhalation, 
+  -- exhalation, and alternations between the two.
+  fun Breathing  : Class ;
+  fun Breathing_Class : SubClass Breathing (both AutonomicProcess OrganismProcess) ;
+
+  -- An energy measure.
+  fun BritishThermalUnit  : Ind CompositeUnitOfMeasure ;
+
+  -- The Class of StationaryArtifacts which are 
+  -- intended to house Humans and their activities.
+  fun Building  : Class ;
+  fun Building_Class : SubClass Building StationaryArtifact ;
+
+  -- A FinancialTransaction in which an instance of 
+  -- CurrencyMeasure is exchanged for an instance of Physical.
+  fun Buying  : Class ;
+  fun Buying_Class : SubClass Buying FinancialTransaction ;
+
+  -- One Byte of information. A Byte is eight Bits.
+  fun Byte  : Ind UnitOfInformation ;
+
+  -- IntentionalPsychologicalProcesses which involve 
+  -- the consideration and/or manipulation of instances of Quantity.
+  fun Calculating  : Class ;
+  fun Calculating_Class : SubClass Calculating IntentionalPsychologicalProcess ;
+
+  -- A Calorie is an energy measure.
+  fun Calorie  : Ind CompositeUnitOfMeasure ;
+
+  -- SI luminosity intensity measure. Symbol: cd. 
+  -- It is one of the base units in SI, and it is currently defined as 
+  -- follows: the Candela is the luminous intensity, in a given direction, 
+  -- of a source that emits monochromatic radiation of frequency 540*10^12 
+  -- Hertz and that has a radiant intensity in that direction of 1/683 
+  -- Watt per Steradian.
+  fun Candela  : Ind CompositeUnitOfMeasure ;
+
+  -- The Class of Carnivores with completely 
+  -- separable toes, nonretractable claws, and long muzzles.
+  fun Canine  : Class ;
+  fun Canine_Class : SubClass Canine Carnivore ;
+
+  -- An element of living cells and a source of 
+  -- energy for Animals. This class includes both simple Carbohydrates, 
+  -- i.e. sugars, and complex Carbohydrates, i.e. starches.
+  fun Carbohydrate  : Class ;
+  fun Carbohydrate_Class : SubClass Carbohydrate Nutrient ;
+
+  fun CardinalityFn  : El (either SetOrClass Collection) -> Ind Number ;
+
+  -- The Class of flesh_eating Mammals. Members 
+  -- of this Class typically have four or five claws on each paw. Includes 
+  -- cats, dogs, bears, racoons, and skunks.
+  fun Carnivore  : Class ;
+  fun Carnivore_Class : SubClass Carnivore Mammal ;
+
+  -- Transfer from one point to another by means of 
+  -- an Animal or Human.
+  fun Carrying  : Class ;
+  fun Carrying_Class : SubClass Carrying Transfer ;
+
+  -- (CeilingFn ?NUMBER) returns the smallest 
+  -- Integer greater than or equal to the RealNumber ?NUMBER.
+  fun CeilingFn  : El RealNumber -> Ind Integer ;
+
+  -- The fundamental structural and functional unit of 
+  -- living Organisms.
+  fun Cell  : Class ;
+  fun Cell_Class : SubClass Cell BodyPart ;
+
+  -- A TemperatureMeasure. The freezing point 
+  -- and the boiling point of water are, respectively, 0 CelsiusDegrees and 100 
+  -- CelsiusDegrees.
+  fun CelsiusDegree  : Ind (both TemperatureMeasure UnitOfMeasure) ;
+
+  -- (CenterOfCircleFn ?CIRCLE) denotes the 
+  -- GeometricPoint that is the center of the Circle ?CIRCLE.
+  fun CenterOfCircleFn  : El Circle -> Ind GeometricPoint ;
+
+  -- Submultiple of Meter. Symbol: cm. It is 
+  -- the 100th part of a Meter
+  fun Centimeter  : Ind UnitOfLength ;
+
+  -- A TimeZone that covers much of the 
+  -- midwestern United States.
+  fun CentralTimeZone  : Ind TimeZone ;
+
+  -- A Text that confers a right or obligation 
+  -- on the holder of the Certificate. Note that the right or obligation 
+  -- need not be a legal one, as in the case of an academic diploma that grants 
+  -- certain privileges in the professional world.
+  fun Certificate  : Class ;
+  fun Certificate_Class : SubClass Certificate Text ;
+
+  -- The Class of Processes where 
+  -- ownership of something is transferred from one Agent to another.
+  fun ChangeOfPossession  : Class ;
+  fun ChangeOfPossession_Class : SubClass ChangeOfPossession SocialInteraction ;
+
+  -- An element of an alphabet, a set of numerals, etc. 
+  -- Note that a Character may or may not be part of a Language. Character 
+  -- is a subclass of SymbolicString, because every instance of Character is 
+  -- an alphanumeric sequence consisting of a single element.
+  fun Character  : Class ;
+  fun Character_Class : SubClass Character SymbolicString ;
+
+  -- The Class of ChemicalProcesses 
+  -- in which a CompoundSubstance breaks down into simpler products.
+  fun ChemicalDecomposition  : Class ;
+  fun ChemicalDecomposition_Class : SubClass ChemicalDecomposition (both ChemicalProcess Separating) ;
+
+  -- A ChemicalProcess occurs whenever 
+  -- chemical compounds (CompoundSubstances) are formed or decomposed. 
+  -- For example, reactants disappear as chemical change occurs, and products 
+  -- appear as chemical change occurs. In a chemical change a chemical 
+  -- reaction takes place. Catalysts in a ChemicalProcess may speed up the 
+  -- reaction, but aren't themselves produced or consumed. Examples: rusting of 
+  -- iron and the decomposition of water, induced by an electric current, to 
+  -- gaseous hydrogen and gaseous oxygen.
+  fun ChemicalProcess  : Class ;
+  fun ChemicalProcess_Class : SubClass ChemicalProcess InternalChange ;
+
+  -- The Class of ChemicalProcesses in 
+  -- which a CompoundSubstance is formed from simpler reactants.
+  fun ChemicalSynthesis  : Class ;
+  fun ChemicalSynthesis_Class : SubClass ChemicalSynthesis (both ChemicalProcess Combining) ;
+
+  -- The class of Ovals such that all GeometricPoints 
+  -- that make up the Circle are equidistant from a single GeometricPoint, 
+  -- known as the center of the Circle.
+  fun Circle  : Class ;
+  fun Circle_Class : SubClass Circle Oval ;
+
+  -- A LandArea of relatively small size, inhabited 
+  -- by a community of people, and having some sort of political structure. 
+  -- Note that this class includes both large cities and small settlements 
+  -- like towns, villages, hamlets, etc.
+  fun City  : Class ;
+  fun City_Class : SubClass City (both GeopoliticalArea LandArea) ;
+
+  -- The Class of IntentionalPsychologicalProcesses 
+  -- which involve attaching a name or category to a thing or set of things. 
+  -- Note that Classifying is distinguished from Learning by the fact 
+  -- that the latter covers the acquisition by a CognitiveAgent of any 
+  -- Proposition, while the former involves the assignment of a label 
+  -- or category.
+  fun Classifying  : Class ;
+  fun Classifying_Class : SubClass Classifying IntentionalPsychologicalProcess ;
+
+  -- Any TwoDimensionalFigure which 
+  -- has a well defined interior and exterior.
+  fun ClosedTwoDimensionalFigure  : Class ;
+  fun ClosedTwoDimensionalFigure_Class : SubClass ClosedTwoDimensionalFigure TwoDimensionalFigure ;
+
+  -- Artifact made out of fabrics and possibly other 
+  -- materials that are used to cover the bodies of Humans.
+  fun Clothing  : Class ;
+  fun Clothing_Class : SubClass Clothing WearableItem ;
+
+  -- Any GasMixture that is visible, e.g. Smoke produced 
+  -- by a fire or clouds of water vapor in the sky.
+  fun Cloud  : Class ;
+  fun Cloud_Class : SubClass Cloud GasMixture ;
+
+  -- A SentientAgent with responsibilities 
+  -- and the ability to reason, deliberate, make plans, etc. This is 
+  -- essentially the legal/ethical notion of a person. Note that, although 
+  -- Human is a subclass of CognitiveAgent, there may be instances of 
+  -- CognitiveAgent which are not also instances of Human. For example, 
+  -- chimpanzees, gorillas, dolphins, whales, and some extraterrestrials 
+  -- (if they exist) may be CognitiveAgents.
+  fun CognitiveAgent  : Class ;
+  fun CognitiveAgent_Class : SubClass CognitiveAgent SentientAgent ;
+
+  -- Vertebrates whose body temperature 
+  -- is not internally regulated.
+  fun ColdBloodedVertebrate  : Class ;
+  fun ColdBloodedVertebrate_Class : SubClass ColdBloodedVertebrate Vertebrate ;
+
+  -- Collections have members like Classes, but, unlike Classes, 
+  -- they have a position in space_time and members can be 
+  -- added and subtracted without thereby changing the identity of the 
+  -- Collection. Some examples are toolkits, football teams, and flocks 
+  -- of sheep.
+  fun Collection  : Class ;
+  fun Collection_Class : SubClass Collection Object ;
+
+  -- The Class of Attributes relating to the 
+  -- color of Objects.
+  fun ColorAttribute  : Class ;
+  fun ColorAttribute_Class : SubClass ColorAttribute InternalAttribute ;
+
+  -- The subclass of SurfaceChange where a 
+  -- ColorAttribute of the patient is altered. Note that the change in
+  -- color may apply to just part of the object.
+  fun Coloring  : Class ;
+  fun Coloring_Class : SubClass Coloring SurfaceChange ;
+
+  -- A Process where two or more SelfConnectedObjects 
+  -- are incorporated into a single SelfConnectedObject. Note that Combining 
+  -- is different from Attaching in that the former results in one of the objects 
+  -- being part of the other, while Attaching only results in the two objects 
+  -- being connected with one another. Note too that Combining is different 
+  -- from Putting in that one or both of the two things which are combined may or 
+  -- may not be moved from the location where they were combined.
+  fun Combining  : Class ;
+  fun Combining_Class : SubClass Combining DualObjectProcess ;
+
+  -- The Class of ChemicalProcesses in which an Object 
+  -- reacts with oxygen and gives off heat. This includes all Processes in which 
+  -- something is burning.
+  fun Combustion  : Class ;
+  fun Combustion_Class : SubClass Combustion ChemicalDecomposition ;
+
+  -- An Agent that provides products and/or 
+  -- services for a fee with the aim of making a profit.
+  fun CommercialAgent  : Class ;
+  fun CommercialAgent_Class : SubClass CommercialAgent Agent ;
+
+  -- Any FinancialTransaction by a 
+  -- CommercialAgent where the aim is to produce a profit.
+  fun CommercialService  : Class ;
+  fun CommercialService_Class : SubClass CommercialService (both FinancialTransaction ServiceProcess) ;
+
+  -- Instances of this Class commit the agent to some 
+  -- future course. For example, Bob promised Susan that he would be home by 11pm.
+  fun Committing  : Class ;
+  fun Committing_Class : SubClass Committing LinguisticCommunication ;
+
+  -- A SocialInteraction that involves 
+  -- the transfer of information between two or more CognitiveAgents. 
+  -- Note that Communication is closely related to, but essentially 
+  -- different from, ContentDevelopment. The latter involves the creation 
+  -- or modification of a ContentBearingObject, while Communication is 
+  -- the transfer of information for the purpose of conveying a message.
+  fun Communication  : Class ;
+  fun Communication_Class : SubClass Communication (both ContentBearingProcess SocialInteraction) ;
+
+  -- The Class of IntentionalPsychologicalProcesses 
+  -- which involve comparing, relating, contrasting, etc. the properties of 
+  -- two or more Entities.
+  fun Comparing  : Class ;
+  fun Comparing_Class : SubClass Comparing (both DualObjectProcess IntentionalPsychologicalProcess) ;
+
+  -- The complement of a given SetOrClass C is the 
+  -- SetOrClass of all things that are not instances of C. In other words, an 
+  -- object is an instance of the complement of a SetOrClass C just in case it 
+  -- is not an instance of C.
+  fun ComplementFn  : El SetOrClass -> Ind SetOrClass ;
+
+  -- A Number that has the form: x + yi, where x 
+  -- and y are RealNumbers and i is the square root of _1.
+  fun ComplexNumber  : Class ;
+  fun ComplexNumber_Class : SubClass ComplexNumber Number ;
+
+  -- Instances
+  -- of this Class are UnitsOfMeasure defined by the functional
+  -- composition of other units, each of which might be a
+  -- CompositeUnitOfMeasure or a NonCompositeUnitOfMeasure.
+  fun CompositeUnitOfMeasure  : Class ;
+  fun CompositeUnitOfMeasure_Class : SubClass CompositeUnitOfMeasure UnitOfMeasure ;
+
+  -- The Class of Substances that contain 
+  -- two or more elements (ElementalSubstances), in definite proportion by weight. 
+  -- The composition of a pure compound will be invariant, regardless of the method 
+  -- of preparation. Compounds are composed of more than one kind of atom (element). 
+  -- The term molecule is often used for the smallest unit of a compound that still 
+  -- retains all of the properties of the compound. Examples: Table salt (sodium 
+  -- chloride, NaCl), sugar (sucrose, C_{12}H_{22}O_{11}), and water (H_2O).
+  fun CompoundSubstance  : Class ;
+  fun CompoundSubstance_Class : SubClass CompoundSubstance PureSubstance ;
+
+  -- The class of Languages designed for 
+  -- and interpreted by a computer.
+  fun ComputerLanguage  : Class ;
+  fun ComputerLanguage_Class : SubClass ComputerLanguage ArtificialLanguage ;
+
+  -- A set of instructions in a computer 
+  -- programming language that can be executed by a computer.
+  fun ComputerProgram  : Class ;
+  fun ComputerProgram_Class : SubClass ComputerProgram Procedure ;
+
+  -- The process of developing a 
+  -- ComputerProgram
+  fun ComputerProgramming  : Class ;
+  fun ComputerProgramming_Class : SubClass ComputerProgramming ContentDevelopment ;
+
+  -- The Class of Processes where an Object is 
+  -- cooled and converted from a Gas to a Liquid.
+  fun Condensing  : Class ;
+  fun Condensing_Class : SubClass Condensing StateChange ;
+
+  -- The Class of Keeping Processes where the 
+  -- patient is a Human or an Animal and is kept involuntarily. This covers 
+  -- caging, imprisonment, jailing, etc.
+  fun Confining  : Class ;
+  fun Confining_Class : SubClass Confining Keeping ;
+
+  -- Attributes that indicate whether 
+  -- an Organism is conscious or the qualitative degree of consciousness of 
+  -- an Organism.
+  fun ConsciousnessAttribute  : Class ;
+  fun ConsciousnessAttribute_Class : SubClass ConsciousnessAttribute StateOfMind ;
+
+  -- A ConstantQuantity is a PhysicalQuantity that has a constant value, e.g. 
+  -- 3 Meters and 5 HourDurations. The magnitude (see MagnitudeFn) of every
+  -- ConstantQuantity is a RealNumber. ConstantQuantity is
+  -- distinguished from FunctionQuantity, in that each instance of the
+  -- latter is formed through the mapping of one PhysicalQuantity to
+  -- another PhysicalQuantity. Each instance of ConstantQuantity is
+  -- expressed with the BinaryFunction MeasureFn, which takes a
+  -- Number and a UnitOfMeasure as arguments. For example, 3 Meters
+  -- is expressed as (MeasureFn 3 Meter). Instances of
+  -- ConstantQuantity form a partial order (see
+  -- PartialOrderingRelation) with the lessThan relation, since
+  -- lessThan is a RelationExtendedToQuantities and lessThan is
+  -- defined over the RealNumbers. The lessThan relation is not a
+  -- total order (see TotalOrderingRelation) over the class
+  -- ConstantQuantity since elements of some subclasses of
+  -- ConstantQuantity (such as length quantities) are incomparable to
+  -- elements of other subclasses of ConstantQuantity
+  -- (such as mass quantities).
+  fun ConstantQuantity  : Class ;
+  fun ConstantQuantity_Class : SubClass ConstantQuantity PhysicalQuantity ;
+
+  -- An ConstructedLanguage is a 
+  -- HumanLanguage that did not evolve spontaneously within a language
+  -- community, but rather had its core grammar and vocabulary invented by 
+  -- one or more language experts, often with an aim to produce a more 
+  -- grammatically regular language than any language that has evolved 
+  -- naturally. This Class includes languages like Esperanto that were 
+  -- created to facilitate international communication
+  fun ConstructedLanguage  : Class ;
+  fun ConstructedLanguage_Class : SubClass ConstructedLanguage (both ArtificialLanguage HumanLanguage) ;
+
+  -- The subclass of Making in which a 
+  -- StationaryArtifact is built.
+  fun Constructing  : Class ;
+  fun Constructing_Class : SubClass Constructing Making ;
+
+  -- Any SelfConnectedObject that expresses 
+  -- content. This content may be a Proposition, e.g. when the ContentBearingObject 
+  -- is a Sentence or Text, or it may be a representation of an abstract or 
+  -- physical object, as with an Icon, a Word or a Phrase.
+  fun ContentBearingObject  : Class ;
+  fun ContentBearingObject_Class : SubClass ContentBearingObject (both ContentBearingPhysical CorpuscularObject) ;
+
+  -- Any Object or Process that
+  -- expresses content. This covers Objects that contain a Proposition,
+  -- such as a book, as well as ManualSignLanguage, which may similarly
+  -- contain a Proposition.
+  fun ContentBearingPhysical  : Class ;
+  fun ContentBearingPhysical_Class : SubClass ContentBearingPhysical Physical ;
+
+  -- Any Process, for example 
+  -- ManualHumanLanguage, which may contain a Proposition.
+  fun ContentBearingProcess  : Class ;
+  fun ContentBearingProcess_Class : SubClass ContentBearingProcess ContentBearingPhysical ;
+
+  -- A subclass of IntentionalProcess in 
+  -- which content is modified, its form is altered or it is created anew.
+  fun ContentDevelopment  : Class ;
+  fun ContentDevelopment_Class : SubClass ContentDevelopment IntentionalProcess ;
+
+  -- A SocialInteraction where the agent and 
+  -- patient are CognitiveAgents who are trying to defeat one another. 
+  -- Note that this concept is often applied in a metaphorical sense in natural 
+  -- language, when we speak, e.g., of the struggle of plants for space or 
+  -- sunlight, or of bacteria for food resources in some environment.
+  fun Contest  : Class ;
+  fun Contest_Class : SubClass Contest SocialInteraction ;
+
+  -- A Class containing Attributes that are 
+  -- specific to participants in a Contest. In particular, these Attributes 
+  -- indicate the position of one of the agents in the Contest with respect 
+  -- to other agent(s) in the Contest. Some examples of these Attributes 
+  -- are winning, losing, won, lost, etc.
+  fun ContestAttribute  : Class ;
+  fun ContestAttribute_Class : SubClass ContestAttribute ObjectiveNorm ;
+
+  -- As defined in the CIA World Fact Book, 
+  -- Continent covers seven land masses: Africa, NorthAmerica, 
+  -- SouthAmerica, Antarctica, Europe, Asia, and Oceania. 
+  -- Note that Australia, counted as a continent in some other systems, 
+  -- is included in Oceania in the Fact Book. As a consequence, there 
+  -- is no Nation which is also a Continent.
+  fun Continent  : Class ;
+  fun Continent_Class : SubClass Continent LandArea ;
+
+  -- The Making of an instance of Food. Note 
+  -- that this can cover any preparation of Food, e.g. making a salad, 
+  -- cutting up fruit, etc. It does not necessarily involve the application 
+  -- of heat.
+  fun Cooking  : Class ;
+  fun Cooking_Class : SubClass Cooking Making ;
+
+  -- Any Decreasing Process where the PhysicalQuantity 
+  -- decreased is a TemperatureMeasure.
+  fun Cooling  : Class ;
+  fun Cooling_Class : SubClass Cooling Decreasing ;
+
+  -- The subclass of SocialInteraction where 
+  -- the participants involved work together for the achievement of a common 
+  -- goal.
+  fun Cooperation  : Class ;
+  fun Cooperation_Class : SubClass Cooperation SocialInteraction ;
+
+  -- A TimeZone which functions 
+  -- as the standard time zone. It is also known as Zulu time (in the military), 
+  -- Greenwich Mean Time, and the Western European time zone. Note that whenever 
+  -- a TimeZone is not specified, the TimePosition is understood to be with 
+  -- respect to the CoordinatedUniversalTimeZone.
+  fun CoordinatedUniversalTimeZone  : Ind TimeZone ;
+
+  -- An Organization that has a special legal status 
+  -- that allows a group of persons to act as a CommercialAgent and that insulates 
+  -- the owners (shareholders) from many liabilities that might result from the 
+  -- corporation's operation.
+  fun Corporation  : Class ;
+  fun Corporation_Class : SubClass Corporation (both CommercialAgent Organization) ;
+
+  -- A SelfConnectedObject whose parts have 
+  -- properties that are not shared by the whole.
+  fun CorpuscularObject  : Class ;
+  fun CorpuscularObject_Class : SubClass CorpuscularObject SelfConnectedObject ;
+
+  -- (CosineFn ?DEGREE) returns the cosine of the 
+  -- PlaneAngleMeasure ?DEGREE. The cosine of ?DEGREE is the ratio of the 
+  -- side next to ?DEGREE to the hypotenuse in a right_angled triangle.
+  fun CosineFn  : El PlaneAngleMeasure -> Ind RealNumber ;
+
+  -- SI electric charge measure. Symbol: C. It is 
+  -- the quantity of electric charge transported through a cross section of 
+  -- a conductor in an electric circuit during each SecondDuration by a 
+  -- current of 1 Ampere. Coulomb = s*A.
+  fun Coulomb  : Ind CompositeUnitOfMeasure ;
+
+  -- Enumerating something. The Class of Calculating 
+  -- Processes where the aim is to determine the Number corresponding to the 
+  -- patient.
+  fun Counting  : Class ;
+  fun Counting_Class : SubClass Counting Calculating ;
+
+  -- A GeopoliticalArea that is larger than a city, 
+  -- usually encompassing several cities, and smaller than a StateOrProvince. 
+  -- Aside from City, this is the smallest geopolitical subdivision, and it is 
+  -- known by various names in various counties, e.g. parrish, commune, etc.
+  fun County  : Class ;
+  fun County_Class : SubClass County (both GeopoliticalArea LandArea) ;
+
+  -- The Class of Putting processes where the agent 
+  -- covers the patient, either completely or only partially, with something 
+  -- else.
+  fun Covering  : Class ;
+  fun Covering_Class : SubClass Covering Putting ;
+
+  -- The subclass of Process in which 
+  -- something is created. Note that the thing created is specified 
+  -- with the result CaseRole.
+  fun Creation  : Class ;
+  fun Creation_Class : SubClass Creation InternalChange ;
+
+  -- A Class of Arthropods that mainly dwells 
+  -- in water and has a segmented body and a chitinous exoskeleton. Includes 
+  -- lobsters, crabs, shrimp, and barnacles.
+  fun Crustacean  : Class ;
+  fun Crustacean_Class : SubClass Crustacean Arthropod ;
+
+  -- English unit of volume equal to 1/2 of a Pint.
+  fun Cup  : Ind UnitOfVolume ;
+
+  -- Any element of the official currrency of some 
+  -- Nation. This covers both CurrencyBills and CurrencyCoins.
+  fun Currency  : Class ;
+  fun Currency_Class : SubClass Currency FinancialInstrument ;
+
+  -- Instances of this
+  -- subclass of ConstantQuantity are measures of monetaryValue
+  -- stated in terms of some UnitOfCurrency such as UnitedStatesDollar,
+  -- UnitedStatesCent, Lire, Yen, etc.
+  fun CurrencyMeasure  : Class ;
+  fun CurrencyMeasure_Class : SubClass CurrencyMeasure ConstantQuantity ;
+
+  -- A UnaryFunction that assigns a Graph the 
+  -- Class of GraphPaths that partition the graph into two separate 
+  -- graphs if cut. There may be more than one cutset for a given graph.
+  fun CutSetFn : El Graph -> Desc GraphPath ;
+
+  -- The subclass of Poking Processes which 
+  -- involve a sharp instrument.
+  fun Cutting  : Class ;
+  fun Cutting_Class : SubClass Cutting Poking ;
+
+  -- The Class of Processes where the agent brings about a situation
+  -- where the patient no longer functions normally or as intended.
+  fun Damaging  : Class ;
+  fun Damaging_Class : SubClass Damaging InternalChange ;
+
+  -- An Attribute which indicates that the associated 
+  -- Object contains some Liquid.
+  fun Damp  : Ind SaturationAttribute ;
+
+  -- Any BodyMotion of Humans which is deliberately coordinated with music.
+  fun Dancing  : Class ;
+  fun Dancing_Class : SubClass Dancing BodyMotion ;
+
+  -- The Class of all calendar Days.
+  fun Day  : Class ;
+  fun Day_Class : SubClass Day TimeInterval ;
+
+  -- Time unit. 1 day = 24 hours.
+  fun DayDuration  : Ind UnitOfDuration ;
+
+  -- A BinaryFunction that assigns a PositiveRealNumber and 
+  -- a subclass of Months to the Days within each Month corresponding to that 
+  -- PositiveRealNumber. For example, (DayFn 16 August) is the Class of all 
+  -- sixteenth days of August. For another example, (DayFn 9 Month) would return 
+  -- the class of all ninth days of any month. For still another example, (DayFn 18 
+  -- (MonthFn August (YearFn 1912))) denotes the 18th day of August 1912.
+  fun DayFn : El PositiveInteger -> Desc Month -> Desc Day ;
+
+  -- This Attribute applies to Organisms that are 
+  -- not alive.
+  fun Dead  : Ind (both AnimacyAttribute ConsciousnessAttribute) ;
+
+  -- The Process of dying.
+  fun Death  : Class ;
+  fun Death_Class : SubClass Death OrganismProcess ;
+
+  -- The Class of all Months which are December.
+  fun December  : Class ;
+  fun December_Class : SubClass December Month ;
+
+  -- The subclass of Selecting where the agent 
+  -- opts for one course of action out of a set of multiple possibilities 
+  -- that are open to him/her.
+  fun Deciding  : Class ;
+  fun Deciding_Class : SubClass Deciding Selecting ;
+
+  -- The Class of LinguisticCommunications that 
+  -- effect an institutional alteration when performed by competent authority. 
+  -- Some examples are nominating, marrying, and excommunicating.
+  fun Declaring  : Class ;
+  fun Declaring_Class : SubClass Declaring LinguisticCommunication ;
+
+  -- Converting a document or message that has previously 
+  -- been encoded (see Encoding) into a Language that can be understood by a 
+  -- relatively large number of speakers.
+  fun Decoding  : Class ;
+  fun Decoding_Class : SubClass Decoding Writing ;
+
+  -- Any QuantityChange where the PhysicalQuantity is decreased.
+  fun Decreasing  : Class ;
+  fun Decreasing_Class : SubClass Decreasing QuantityChange ;
+
+  -- An Argument which has the form of a deduction, i.e. 
+  -- it is claimed that the set of premises entails the conclusion.
+  fun DeductiveArgument  : Class ;
+  fun DeductiveArgument_Class : SubClass DeductiveArgument Argument ;
+
+  -- A Maneuver in a ViolentContest 
+  -- where the agent attempts to avoid being damaged.
+  fun DefensiveManeuver  : Class ;
+  fun DefensiveManeuver_Class : SubClass DefensiveManeuver Maneuver ;
+
+  -- Exhibiting something or a range of things 
+  -- before the public in a particular location. This would cover software 
+  -- demos, theatrical plays, lectures, dance and music recitals, museum 
+  -- exhibitions, etc.
+  fun Demonstrating  : Class ;
+  fun Demonstrating_Class : SubClass Demonstrating Disseminating ;
+
+  -- (DenominatorFn ?NUMBER) returns the 
+  -- denominator of the canonical reduced form of the RealNumber ?NUMBER.
+  fun DenominatorFn  : El RealNumber -> Ind Integer ;
+
+  -- DensityFn maps an instance of MassMeasure 
+  -- and an instance of VolumeMeasure to the density represented by this 
+  -- proportion of mass and volume. For example, (DensityFn (MeasureFn 3 Gram) 
+  -- (MeasureFn 1 Liter)) represents the density of 3 grams per liter.
+  fun DensityFn  : El MassMeasure -> El VolumeMeasure -> Ind FunctionQuantity;
+
+  -- A Class containing all of the Attributes 
+  -- relating to the notions of permission, obligation, and prohibition.
+  fun DeonticAttribute  : Class ;
+  fun DeonticAttribute_Class : SubClass DeonticAttribute ObjectiveNorm ;
+
+  -- The spatial analogue of Planning. Designing a 
+  -- Collection of Objects involves determining a placement of the Objects 
+  -- with respect to one another and perhaps other Objects as well, in order to 
+  -- satisfy a particular purpose.
+  fun Designing  : Class ;
+  fun Designing_Class : SubClass Designing IntentionalPsychologicalProcess ;
+
+  -- The subclass of Damagings in which the patient (or an essential element of the patient) is destroyed. 
+  -- Note that the difference between this concept and its superclass is solely one of extent.
+  fun Destruction  : Class ;
+  fun Destruction_Class : SubClass Destruction Damaging ;
+
+  -- A Process where the agent detaches one thing 
+  -- from something else. Note that Detaching is different from Separating 
+  -- in that the latter applies to Substances, while the former applies to 
+  -- CorpuscularObjects. Note too that Detaching is different from 
+  -- Removing in that one or both of the two things which are detached may or 
+  -- may not be moved from the location where they were attached.
+  fun Detaching  : Class ;
+  fun Detaching_Class : SubClass Detaching DualObjectProcess ;
+
+  -- Attributes that indicate the stage of development of an Organism.
+  fun DevelopmentalAttribute  : Class ;
+  fun DevelopmentalAttribute_Class : SubClass DevelopmentalAttribute BiologicalAttribute ;
+
+  -- A Device is an Artifact whose purpose is to 
+  -- serve as an instrument in a specific subclass of Process.
+  fun Device  : Class ;
+  fun Device_Class : SubClass Device Artifact ;
+
+  -- A Process that is carried out for 
+  -- the purpose of determining the nature of a DiseaseOrSyndrome.
+  fun DiagnosticProcess  : Class ;
+  fun DiagnosticProcess_Class : SubClass DiagnosticProcess Investigating ;
+
+  -- The Process by which Food that has been ingested is broken down
+  -- into simpler chemical compounds and absorbed by the Organism.
+  fun Digesting  : Class ;
+  fun Digesting_Class : SubClass Digesting (both AutonomicProcess OrganismProcess) ;
+
+
+  -- The Class of directed graphs. A directed graph is a Graph in which all GraphArcs
+  -- have direction, i.e. every GraphArc has an initial node (see 
+  -- InitialNodeFn) and a terminal node (see TerminalNodeFn).
+  fun DirectedGraph  : Class ;
+  fun DirectedGraph_Class : SubClass DirectedGraph Graph ;
+
+  -- Instances of this Class urge some further action 
+  -- among the receivers. A Directing can be an Ordering, a Requesting or 
+  -- a Questioning.
+  fun Directing  : Class ;
+  fun Directing_Class : SubClass Directing LinguisticCommunication ;
+
+  -- The act of changing the direction in 
+  -- which the patient of the act is oriented.
+  fun DirectionChange  : Class ;
+  fun DirectionChange_Class : SubClass DirectionChange Motion ;
+
+  -- The subclass of PositionalAttributes 
+  -- that concern compass directions.
+  fun DirectionalAttribute  : Class ;
+  fun DirectionalAttribute_Class : SubClass DirectionalAttribute PositionalAttribute ;
+
+  -- A Stating in which two Agents have
+  -- contradictory statements. This is distinguished from Arguing in
+  -- that the statement in dispute may be a simple assertion, rather than
+  -- a chain of deduction, and that two entities must be disagreeing with
+  -- each other, whereas a single entity may craft an argument for a given
+  -- point of view, without the need for another agent to disagree with.
+  fun Disagreeing  : Class ;
+  fun Disagreeing_Class : SubClass Disagreeing Stating ;
+
+  -- Finding something that was sought. Note that 
+  -- this class is restricted to cases of discovering something Physical. 
+  -- For cases involving the acquisition of knowledge, the class Learning 
+  -- should be used.
+  fun Discovering  : Class ;
+  fun Discovering_Class : SubClass Discovering IntentionalPsychologicalProcess ;
+
+  -- A BiologicalAttribute which qualifies 
+  -- something that alters or interferes with a normal process, state or activity 
+  -- of an Organism. It is usually characterized by the abnormal functioning of 
+  -- one or more of the host's systems, parts, or Organs.
+  fun DiseaseOrSyndrome  : Class ;
+  fun DiseaseOrSyndrome_Class : SubClass DiseaseOrSyndrome BiologicalAttribute ;
+
+  -- Any Communication that involves a 
+  -- single agent and many destinations. This covers the release 
+  -- of a published book, broadcasting, a theatrical performance, giving 
+  -- orders to assembled troops, delivering a public lecture, etc.
+  fun Disseminating  : Class ;
+  fun Disseminating_Class : SubClass Disseminating Communication ;
+
+  -- If ?NUMBER1 and ?NUMBER2 are Numbers, then 
+  -- (DivisionFn ?NUMBER1 ?NUMBER2) is the result of dividing ?NUMBER1 by 
+  -- ?NUMBER2. Note that when ?NUMBER1 = 1 (DivisionFn ?NUMBER1 ?NUMBER2) 
+  -- is the reciprocal of ?NUMBER2. Note too that (DivisionFn ?NUMBER1 ?NUMBER2)
+  -- is undefined when ?NUMBER2 = 0.
+  fun DivisionFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- The Process by which liquid Food, i.e. 
+  -- Beverages, are incorporated into an Animal.
+  fun Drinking  : Class ;
+  fun Drinking_Class : SubClass Drinking Ingesting ;
+
+  -- Controlling the direction and/or speed of a 
+  -- Vehicle. This includes navigating a ship, driving a car or truck, 
+  -- operating a train, etc.
+  fun Driving  : Class ;
+  fun Driving_Class : SubClass Driving Guiding ;
+
+  -- An Attribute which indicates that the associated 
+  -- Object contains no Liquid.
+  fun Dry  : Ind SaturationAttribute ;
+
+  -- The Class of Processes where a Liquid is removed 
+  -- from an Object.
+  fun Drying  : Class ;
+  fun Drying_Class : SubClass Drying Removing ;
+
+  -- Any Process that requires two, 
+  -- nonidentical patients.
+  fun DualObjectProcess  : Class ;
+  fun DualObjectProcess_Class : SubClass DualObjectProcess Process ;
+
+  -- The compass direction of East.
+  fun East  : Ind DirectionalAttribute ;
+
+  -- A TimeZone that covers much of the eastern United States.
+  fun EasternTimeZone  : Ind TimeZone ;
+
+  -- The Process by which solid Food is incorporated into an Animal.
+  fun Eating  : Class ;
+  fun Eating_Class : SubClass Eating Ingesting ;
+
+  -- A binary function that maps a type of text 
+  -- (e.g. Agatha Christie's Murder_on_the_Orient_Express) and a number 
+  -- to the edition of the text type corresponding to the number.
+  fun EditionFn : Desc ContentBearingObject -> El PositiveInteger -> Desc ContentBearingObject ;
+
+  -- A EducationalOrganization is an institution of learning. 
+  -- Some examples are public and private K_12 schools, and colleges and universities.
+  fun EducationalOrganization  : Class ;
+  fun EducationalOrganization_Class : SubClass EducationalOrganization Organization ;
+
+  -- Any Process which is intended to result in Learning.
+  fun EducationalProcess  : Class ;
+  fun EducationalProcess_Class : SubClass EducationalProcess Guiding ;
+
+  -- The fertilized or unfertilized female ReproductiveBody of an Animal. 
+  -- This includes Bird and Reptile eggs, as well as mammalian ova.
+  fun Egg  : Class ;
+  fun Egg_Class : SubClass Egg (both AnimalAnatomicalStructure ReproductiveBody) ;
+
+  -- Election is the class of events conducted by an 
+  -- organization, in which qualified participants vote for officers, adopt 
+  -- resolutions, or settle other issues in that Organization.
+  fun Election  : Class ;
+  fun Election_Class : SubClass Election OrganizationalProcess ;
+
+  -- SubatomicParticles that surround the AtomicNucleus. They have a negative charge.
+  fun Electron  : Class ;
+  fun Electron_Class : SubClass Electron SubatomicParticle ;
+
+  -- The ElectronVolt is an energy measure. 
+  -- Symbol: eV. It is the kinetic energy acquired by an electron in passing 
+  -- through a potential difference of 1 Volt in a vacuum.
+  fun ElectronVolt  : Ind CompositeUnitOfMeasure ;
+
+  -- The Class of PureSubstances that 
+  -- cannot be separated into two or more Substances by ordinary chemical 
+  -- (or physical) means. This excludes nuclear reactions. ElementalSubstances 
+  -- are composed of only one kind of atom. Examples: Iron (Fe), copper (Cu), 
+  -- and oxygen (O_2). ElementalSubstances are the simplest 
+  -- PureSubstances.
+  fun ElementalSubstance  : Class ;
+  fun ElementalSubstance_Class : SubClass ElementalSubstance PureSubstance ;
+
+  -- The stage of an Organism or an 
+  -- AnatomicalStructure that exists only before the Organism is born. 
+  -- Mammals, for example, have this Attribute only prior to 
+  -- their birth.
+  fun Embryonic  : Ind DevelopmentalAttribute ;
+
+  -- The Class of Attributes that denote emotional states of Organisms.
+  fun EmotionalState  : Class ;
+  fun EmotionalState_Class : SubClass EmotionalState StateOfMind ;
+
+  -- Converting a document or message into a formal 
+  -- language or into a code that can be understood only by a relatively small 
+  -- body of Agents. Generally speaking, this hinders wide dissemination of 
+  -- the content in the original document or message.
+  fun Encoding  : Class ;
+  fun Encoding_Class : SubClass Encoding Writing ;
+
+  -- A UnaryFunction that maps a TimeInterval to 
+  -- the TimePoint at which the interval ends.
+  fun EndFn  : El TimeInterval -> Ind TimePoint ;
+
+  -- A UnaryFunction that maps a GraphPath 
+  -- to the GraphNode that is the end of the GraphPath. Note that, unlike 
+  -- TerminalNodeFn (which relates a GraphArc to a GraphNode), 
+  -- EndNodeFn is a total function _ every GraphPath has a end.
+  fun EndNodeFn  : El GraphPath -> Ind GraphNode ;
+
+  -- A fundamental concept that applies 
+  -- in many engineering domains. An EngineeringComponent is an element of 
+  -- a Device that is a physically whole object, such as one might 
+  -- see listed as standard parts in a catalog. The main difference betweeen 
+  -- EngineeringComponents and arbitrary globs of matter is that 
+  -- EngineeringComponents are object_like in a modeling sense. Thus, an 
+  -- EngineeringComponent is not an arbtrary subregion, but a part of a 
+  -- system with a stable identity.
+  fun EngineeringComponent  : Class ;
+  fun EngineeringComponent_Class : SubClass EngineeringComponent Device ;
+
+  -- An EngineeringConnection is an 
+  -- EngineeringComponent that represents a connection relationship between 
+  -- two other EngineeringComponents. It is a reification of the 
+  -- Predicate connectedEngineeringComponents. That means that whenever 
+  -- this Predicate holds between two EngineeringComponents, there exists an 
+  -- EngineeringConnection. The practical reason for reifying a relationship 
+  -- is to be able to attach other information about it. For example, one
+  -- might want to say that a particular connection is associated with some 
+  -- shared parameters, or that it is of a particular type. 
+  -- EngineeringConnections are EngineeringComponents and can therefore be 
+  -- an engineeringSubcomponent of other EngineeringComponents. However, 
+  -- to provide for modular regularity in component systems, 
+  -- EngineeringConnections cannot be connected. For each pair of 
+  -- EngineeringComponents related by connectedEngineeringComponents, there 
+  -- exists at least one EngineeringConnection. However, that object may not 
+  -- be unique, and the same EngineeringConnection may be associated with 
+  -- several pairs of EngineeringComponents.
+  fun EngineeringConnection  : Class ;
+  fun EngineeringConnection_Class : SubClass EngineeringConnection EngineeringComponent ;
+
+  -- The universal class of individuals. This is the root 
+  -- node of the ontology.
+  fun Entity  : Class ;
+
+  -- A complex Protein that is produced by living cells and which
+  -- catalyzes specific biochemical reactions. There are six 
+  -- main types of enzymes: oxidoreductases, transferases, hydrolases, 
+  -- lyases, isomerases, and ligases.
+  fun Enzyme  : Class ;
+  fun Enzyme_Class : SubClass Enzyme Protein ;
+
+  -- A GroupOfPeople whose members originate 
+  -- from the same GeographicArea or share the same Language and/or cultural 
+  -- practices.
+  fun EthnicGroup  : Class ;
+  fun EthnicGroup_Class : SubClass EthnicGroup GroupOfPeople ;
+
+  -- A currency measure. 1 EuroCent is equal to .01 EuroDollars.
+  fun EuroCent  : Ind UnitOfCurrency ;
+
+  -- A currency measure of most European Union countries.
+  fun EuroDollar  : Ind UnitOfCurrency ;
+
+  -- The Class of Processes where a Substance is converted
+  -- from a Liquid to a Gas at a temperature below its Boiling point.
+  fun Evaporating  : Class ;
+  fun Evaporating_Class : SubClass Evaporating StateChange ;
+
+  -- An Integer that is evenly divisible 
+  -- by 2.
+  fun EvenInteger  : Class ;
+  fun EvenInteger_Class : SubClass EvenInteger Integer ;
+
+  -- The system of Bones that are on the Outside of an organism and 
+  -- make up the supporting structure of many Invertebrates.
+  fun Exoskeleton  : Class ;
+  fun Exoskeleton_Class : SubClass Exoskeleton (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Investigating the truth of a Proposition 
+  -- by constructing and observing a trial. Note that the trial may be either 
+  -- controlled or uncontrolled, blind or not blind.
+  fun Experimenting  : Class ;
+  fun Experimenting_Class : SubClass Experimenting Investigating ;
+
+  -- An Argument where the conclusion is an 
+  -- observed fact and the premises are other facts which collectively imply 
+  -- the conclusion. Note that this is the they hypothetico_deductive model 
+  -- of explanation.
+  fun Explanation  : Class ;
+  fun Explanation_Class : SubClass Explanation DeductiveArgument ;
+
+  -- (ExponentiationFn ?NUMBER ?INT) returns 
+  -- the RealNumber ?NUMBER raised to the power of the Integer ?INT.
+  fun ExponentiationFn  : El Quantity -> El Integer -> Ind Quantity ;
+
+  -- Instances of this Class express a state of the agent. 
+  -- For example, Jane thanked Barbara for the present she had given her. The thanking 
+  -- in this case expresses the gratitude of Jane towards Barbara. Note that Expressing, 
+  -- unlike the other speech act types, is not a subclass of LinguisticCommunication. 
+  -- This is because emotions, for example, can be expressed without language, e.g. by 
+  -- smiling.
+  fun Expressing  : Class ;
+  fun Expressing_Class : SubClass Expressing Communication ;
+
+  -- A UnaryFunction that maps an Attribute 
+  -- into the Class whose condition for membership is the Attribute.
+  fun ExtensionFn  : El Attribute -> Class ;
+
+  -- Artifacts that are created by weaving together 
+  -- natural or synthetic fibers or by treating the skins of certain sorts of 
+  -- Animals. Note that this Class includes articles that are created by 
+  -- stitching together various types of fabrics, e.g. bedspreads. On the other 
+  -- hand, Clothing is not a subclass of Fabric, because many clothing items 
+  -- contain elements that are not fabrics.
+  fun Fabric  : Class ;
+  fun Fabric_Class : SubClass Fabric Artifact ;
+
+  -- The class of Texts that purport to 
+  -- reveal facts about the world. Such texts are often known as information 
+  -- or as non_fiction. Note that something can be an instance of 
+  -- FactualText, even if it is wholly inaccurate. Whether something 
+  -- is a FactualText is determined by the beliefs of the agent creating 
+  -- the text.
+  fun FactualText  : Class ;
+  fun FactualText_Class : SubClass FactualText Text ;
+
+  -- A UnitOfTemperature that is commonly 
+  -- used in the United States. On the Fahrenheit scale, the freezing point 
+  -- of water is 32 FahrenheitDegrees, and the boiling point of water is 
+  -- 212 FahrenheitDegrees.
+  fun FahrenheitDegree  : Ind UnitOfTemperature ;
+
+  -- Falling is the class of events in which something moves 
+  -- from a higher location to a lower location under the force of gravity.
+  fun Falling  : Class ;
+  fun Falling_Class : SubClass Falling (both MotionDownward Translocation) ;
+
+  -- The TruthValue of being false.
+  fun False  : Ind TruthValue ;
+
+  -- A GroupOfPeople whose members bear 
+  -- familyRelations to one another.
+  fun FamilyGroup  : Class ;
+  fun FamilyGroup_Class : SubClass FamilyGroup GroupOfPeople ;
+
+  -- SI capacitance measure. Symbol: F. It is the 
+  -- capacitance of a capacitator between the plates of which there appears 
+  -- a difference of potential of 1 Volt when it is charged by a quantity 
+  -- of electricity equal to 1 Coulomb. Farad = C/V = 
+  -- m^(_2)*kg(_1)*s^4*A^2.
+  fun Farad  : Ind CompositeUnitOfMeasure ;
+
+  -- Nonrigid Tissue that is composed largely of fat cells.
+  fun FatTissue  : Class ;
+  fun FatTissue_Class : SubClass FatTissue Tissue ;
+
+  -- The Class of all Months which are February.
+  fun February  : Class ;
+  fun February_Class : SubClass February Month ;
+
+  -- The Class of Carnivores with completely
+  -- separable toes, slim bodies, and rounded heads. All felines other than
+  -- the cheetah have retractable claws.
+  fun Feline  : Class ;
+  fun Feline_Class : SubClass Feline Carnivore ;
+
+  -- An Attribute indicating that an Organism is 
+  -- female in nature.
+  fun Female  : Ind SexAttribute ;
+
+  -- A NonFloweringPlant that contains vascular tissue. 
+  -- This class includes true ferns, as well as horsetails, club mosses, and 
+  -- whisk ferns.
+  fun Fern  : Class ;
+  fun Fern_Class : SubClass Fern NonFloweringPlant ;
+
+  -- The class of Texts that purport to 
+  -- be largely a product of the author's imagination, i.e. the author 
+  -- does not believe that most of the content conveyed by the text is 
+  -- an accurate depiction of the real world. Note that something can 
+  -- be an instance of FictionalText, even if it is completely true. 
+  -- Whether something is a FictionalText is determined by the beliefs 
+  -- of the agent creating the text.
+  fun FictionalText  : Class ;
+  fun FictionalText_Class : SubClass FictionalText Text ;
+
+  -- An academic or applied discipline with 
+  -- recognized experts and with a core of accepted theory or practice. Note 
+  -- that FieldOfStudy is a subclass of Proposition, because a 
+  -- FieldOfStudy is understood to be a body of abstract, informational 
+  -- content, with varying degrees of certainty attached to each element of 
+  -- this content.
+  fun FieldOfStudy  : Class ;
+  fun FieldOfStudy_Class : SubClass FieldOfStudy Proposition ;
+
+  -- Something is Fillable if it can be filled by 
+  -- something else. Note that 'filled' here means perfectly filled.
+  -- Something is fillable just in case it is part of a hole, i.e., 
+  -- fillability is an exclusive property of holes and their parts.
+  fun Fillable  : Ind ShapeAttribute ;
+
+  -- A document having monetary value 
+  -- or recording a monetary transaction
+  fun FinancialInstrument  : Class ;
+  fun FinancialInstrument_Class : SubClass FinancialInstrument Certificate ;
+
+  -- A Transaction where an instance 
+  -- of Currency is exchanged for something else.
+  fun FinancialTransaction  : Class ;
+  fun FinancialTransaction_Class : SubClass FinancialTransaction Transaction ;
+
+  -- A Set containing a finite number of elements.
+  fun FiniteSet  : Class ;
+  fun FiniteSet_Class : SubClass FiniteSet Set ;
+
+  -- A cold_blooded aquatic Vertebrate characterized by 
+  -- fins and breathing by gills. Included here are Fish having either a bony 
+  -- skeleton, such as a perch, or a cartilaginous skeleton, such as a shark. 
+  -- Also included are those Fish lacking a jaw, such as a lamprey or 
+  -- hagfish.
+  fun Fish  : Class ;
+  fun Fish_Class : SubClass Fish ColdBloodedVertebrate ;
+
+  -- The Attribute of being flammable at normal temperatures
+  -- (i.e. not while a Plasma).
+  fun Flammable  : Ind PhysicalAttribute ;
+
+  -- (FloorFn ?NUMBER) returns the largest Integer 
+  -- less than or equal to the RealNumber ?NUMBER.
+  fun FloorFn  : El RealNumber -> Ind Integer ;
+
+  -- FlowRegion is a class of things whose 
+  -- boundaries are relatively stable but whose constitutive material is continuously moving 
+  -- through the region itself and being replaced by 
+  -- other, similar material. Each FlowRegion is constituted by a stream 
+  -- of matter moving as a whole. A FlowRegion may be liquid or gaseous. 
+  -- A wind may be considered as a Process or as a FlowRegion, similarly 
+  -- an OceanCurrent or a WaterWave. The motion process associated with a 
+  -- FlowRegion F is denoted by (FlowFn F). Note that certain 
+  -- properties belong to the FlowRegion itself (e.g., mass, length, volume, 
+  -- temperature, and speed or velocity of the region moving as a whole), 
+  -- while other properties of interest belong to the Motion of its 
+  -- constitutive stuff (e.g., velocity, direction). The motion of 
+  -- a FlowRegion as a whole (e.g., JetStream moves within the atmosphere) 
+  -- is distinguished from the motion of the pieces of stuff constituting the 
+  -- FlowRegion. See FlowFn and FlowRegionFn.
+  fun FlowRegion  : Class ;
+
+  -- A Plant that produces seeds and flowers. 
+  -- This class includes trees, shrubs, herbs, and flowers.
+  fun FloweringPlant  : Class ;
+  fun FloweringPlant_Class : SubClass FloweringPlant Plant ;
+
+  -- Fluid is the PhysicalState attribute of an 
+  -- Object that does not have a fixed shape and thus tends to flow or to 
+  -- conform to the shape of a container.
+  fun Fluid  : Ind PhysicalState ;
+
+  -- Any SelfConnectedObject containing Nutrients, 
+  -- such as carbohydrates, proteins, and fats, that can be ingested by a 
+  -- living Animal and metabolized into energy and body tissue.
+  fun Food  : Class ;
+  fun Food_Class : SubClass Food SelfConnectedObject ;
+
+  -- English length unit of feet.
+  fun FootLength  : Ind UnitOfLength ;
+
+  -- The Class of Processes where an Object is 
+  -- cooled and converted from a Liquid to a Solid.
+  fun Freezing  : Class ;
+  fun Freezing_Class : SubClass Freezing StateChange ;
+
+  -- A subclass of
+  -- TimeDependentQuantity, instances of which are measures of the
+  -- frequency with which some Process occurs.
+  fun FrequencyMeasure  : Class ;
+  fun FrequencyMeasure_Class : SubClass FrequencyMeasure TimeDependentQuantity ;
+
+  -- A WaterArea whose Water is not saline, 
+  -- e.g. most rivers and lakes.
+  fun FreshWaterArea  : Class ;
+  fun FreshWaterArea_Class : SubClass FreshWaterArea WaterArea ;
+
+  -- The Class of all calendar Fridays.
+  fun Friday  : Class ;
+  fun Friday_Class : SubClass Friday Day ;
+
+  -- A Function that maps an Object to the side 
+  -- that generally receives the most attention or that typically faces the 
+  -- direction in which the Object moves. Note that this is a partial 
+  -- function, since some Objects do not have sides, e.g. apples and 
+  -- spheres. Note too that the range of this Function is indefinite in 
+  -- much the way that ImmediateFutureFn and ImmediatePastFn are indefinite. 
+  -- Although this indefiniteness is undesirable from a theoretical standpoint, 
+  -- it does not have significant practical implications, since there is 
+  -- widespread intersubjective agreement about the most common cases.
+  fun FrontFn  : El SelfConnectedObject -> Ind SelfConnectedObject ;
+
+  -- Any fruit or vegetable, i.e. a 
+  -- ripened ReproductiveBody of a Plant. Note that FruitOrVegetable 
+  -- is not a subclass of Food, because some fruits, e.g. poisonous 
+  -- berries, are not edible.
+  fun FruitOrVegetable  : Class ;
+  fun FruitOrVegetable_Class : SubClass FruitOrVegetable (both PlantAnatomicalStructure ReproductiveBody) ;
+
+  -- The stage of an Organism when it has reached 
+  -- the end of its growth phase.
+  fun FullyFormed  : Ind DevelopmentalAttribute ;
+
+  -- A FunctionQuantity
+  -- is a PhysicalQuantity that is returned by a Function that maps
+  -- from one or more instances of ConstantQuantity to another instance
+  -- of ConstantQuantity. For example, the velocity of a particle would
+  -- be represented by a FunctionQuantity relating values of time (which
+  -- are instances of ConstantQuantity) to values of distance
+  -- (also instances of ConstantQuantity). Note that all elements of the
+  -- range of the Function corresponding to a FunctionQuantity have the
+  -- same physical dimension as the FunctionQuantity itself.
+  fun FunctionQuantity  : Class ;
+  fun FunctionQuantity_Class : SubClass FunctionQuantity PhysicalQuantity ;
+
+  -- Any instance of Giving where the patient is an 
+  -- instance of Currency. Note that this class covers both financing, e.g. 
+  -- where a firm funds a software company with venture capital with the agreement 
+  -- that a certain percentage of the profits on the investment will be returned 
+  -- to the firm, and instances of UnilateralGiving, e.g. providing a tuition 
+  -- waiver and/or a stipend to a student as part of scholarship or fellowship.
+  fun Funding  : Class ;
+  fun Funding_Class : SubClass Funding Giving ;
+
+  -- A eukaryotic Organism characterized by the 
+  -- absence of chlorophyll and the presence of rigid cell walls. Included 
+  -- here are both slime molds and true fungi such as yeasts, molds, mildews, 
+  -- and mushrooms.
+  fun Fungus  : Class ;
+  fun Fungus_Class : SubClass Fungus Organism ;
+
+  -- A UnaryFunction that maps a TimePosition 
+  -- to the TimeInterval which it meets and which ends at 
+  -- PositiveInfinity.
+  fun FutureFn  : El TimePosition -> Ind TimeInterval ;
+
+  -- A Contest whose purpose is the 
+  -- enjoyment/stimulation of the participants or spectators of the Game.
+  fun Game  : Class ;
+  fun Game_Class : SubClass Game (both Contest RecreationOrExercise) ;
+
+  -- An Object has the Attribute of Gas if it has 
+  -- neither a fixed volume nor a fixed shape.
+  fun Gas  : Ind PhysicalState ;
+
+  -- Any Mixture that satisfies two conditions, 
+  -- viz. it is made up predominantly of things which are a Gas and any 
+  -- component other than Gas in the Mixture is in the form of fine particles 
+  -- which are suspended in the Gas.
+  fun GasMixture  : Class ;
+  fun GasMixture_Class : SubClass GasMixture Mixture ;
+
+  -- Any Motion where the patient is a 
+  -- Gas. This class would cover, in particular, the motion of 
+  -- Air, e.g. a breeze or wind.
+  fun GasMotion  : Class ;
+  fun GasMotion_Class : SubClass GasMotion Motion ;
+
+  -- A UnaryFunction that takes a 
+  -- SetOrClass of Classes as its single argument and returns a SetOrClass which 
+  -- is the intersection of all of the Classes in the original SetOrClass, i.e. 
+  -- the SetOrClass containing just those instances which are instances of all 
+  -- instances of the original SetOrClass.
+  fun GeneralizedIntersectionFn : Desc SetOrClass -> Ind SetOrClass ;
+
+  -- A UnaryFunction that takes a SetOrClass 
+  -- of Classes as its single argument and returns a SetOrClass which is the 
+  -- merge of all of the Classes in the original SetOrClass, i.e. the SetOrClass 
+  -- containing just those instances which are instances of an instance of the 
+  -- original SetOrClass.
+  fun GeneralizedUnionFn : Desc SetOrClass -> Ind SetOrClass ;
+
+  -- A geographic location, generally having 
+  -- definite boundaries. Note that this differs from its immediate superclass 
+  -- Region in that a GeographicArea is a three_dimensional Region of the 
+  -- earth. Accordingly, all astronomical objects other than earth and all 
+  -- one_dimensional and two_dimensional Regions are not classed under 
+  -- GeographicArea.
+  fun GeographicArea  : Class ;
+  fun GeographicArea_Class : SubClass GeographicArea Region ;
+
+  -- The class of activities that 
+  -- are caused by geological forces and affect geological features, 
+  -- and which may affect the biosphere as well.
+  fun GeologicalProcess  : Class ;
+  fun GeologicalProcess_Class : SubClass GeologicalProcess (both InternalChange Motion) ;
+
+  -- The class of all geometric figures, i.e. the 
+  -- class of all abstract, spatial representations. The instances of this class 
+  -- are GeometricPoints, TwoDimensionalFigures or ThreeDimensionalFigures.
+  fun GeometricFigure  : Class ;
+  fun GeometricFigure_Class : SubClass GeometricFigure ShapeAttribute ;
+
+  -- The class of zero_dimensional 
+  -- GeometricFigures, i.e. the class of GeometricFigures that have position 
+  -- but lack extension in any dimension.
+  fun GeometricPoint  : Class ;
+  fun GeometricPoint_Class : SubClass GeometricPoint GeometricFigure ;
+
+  -- Any GeographicArea which is associated 
+  -- with some sort of political structure. This class includes Lands, 
+  -- Cities, districts of cities, counties, etc. Note that the identity 
+  -- of a GeopoliticalArea may remain constant after a change in borders.
+  fun GeopoliticalArea  : Class ;
+  fun GeopoliticalArea_Class : SubClass GeopoliticalArea (both Agent GeographicArea) ;
+
+  -- Any BodyMotion, e.g. a hand wave, a nod of the 
+  -- head, a smile, which is also an instance of Communication.
+  fun Gesture  : Class ;
+  fun Gesture_Class : SubClass Gesture (both BodyMotion Communication) ;
+
+  -- The subclass of ChangeOfPossession where the
+  -- agent gets something. Note that the source from which something is 
+  -- obtained is specified with the origin CaseRole.
+  fun Getting  : Class ;
+  fun Getting_Class : SubClass Getting ChangeOfPossession ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to 1,000,000,000 units of the original 
+  -- UnitOfMeasure. For example, (GigaFn Hertz) is 1,000,000,000 Hertz.
+  fun GigaFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- The subclass of ChangeOfPossession where the 
+  -- agent gives the destination something.
+  fun Giving  : Class ;
+  fun Giving_Class : SubClass Giving ChangeOfPossession ;
+
+  -- Any instance of Giving where the agent gives 
+  -- something to the destination which was previously given to the agent by 
+  -- the destination, e.g. returing a book that was borrowed from someone.
+  fun GivingBack  : Class ;
+  fun GivingBack_Class : SubClass GivingBack Giving ;
+
+  -- An Organ that removes Substances from the Blood, 
+  -- alters them in some way, and then releases them.
+  fun Gland  : Class ;
+  fun Gland_Class : SubClass Gland Organ ;
+
+  -- The ruling body of a GeopoliticalArea.
+  fun Government  : Class ;
+  fun Government_Class : SubClass Government GovernmentOrganization ;
+
+  -- (GovernmentFn ?AREA) denotes the 
+  -- Government of the GeopoliticalArea ?AREA. For example, 
+  -- (GovernmentFn UnitedStates) denotes the Federal_level government of 
+  -- the United States, (GovernmentFn PuertoRico) denotes the government of 
+  -- the Commonwealth of Puerto Rico.
+  fun GovernmentFn  : El GeopoliticalArea -> Ind Government ;
+
+  -- GovernmentOrganization is the 
+  -- class of official Organizations that are concerned with the government 
+  -- of a GeopoliticalArea at some level. They may be a subOrganization 
+  -- of a government.
+  fun GovernmentOrganization  : Class ;
+  fun GovernmentOrganization_Class : SubClass GovernmentOrganization Organization ;
+
+  -- Any instance of Touching which results in 
+  -- a situation where the agent grasps the patient of the Touching.
+  fun Grabbing  : Class ;
+  fun Grabbing_Class : SubClass Grabbing (both Attaching Touching) ;
+
+  -- The OrganizationalProcess of graduating 
+  -- from an EducationalOrganization.
+  fun Graduation  : Class ;
+  fun Graduation_Class : SubClass Graduation LeavingAnOrganization ;
+
+  -- Submultiple of kilogram. Symbol: g. 
+  -- 1 kilogram = 1000 Grams.
+  fun Gram  : Ind UnitOfMass ;
+
+  -- The Class of graphs, where a graph is understood 
+  -- to be a set of GraphNodes connected by GraphArcs. Note that this 
+  -- Class includes only connected graphs, i.e. graphs in which there is a 
+  -- GraphPath between any two GraphNodes. Note too that every Graph 
+  -- is required to contain at least two GraphArcs and three GraphNodes.
+  fun Graph  : Class ;
+  fun Graph_Class : SubClass Graph Abstract ;
+
+  -- Graphs are comprised of GraphNodes 
+  -- and GraphArcs. Every GraphArc links two GraphNodes.
+  fun GraphArc  : Class ;
+  fun GraphArc_Class : SubClass GraphArc GraphElement ;
+
+  -- A GraphPath that begins (see 
+  -- BeginNodeFn) and ends (see EndNodeFn) at the same 
+  -- GraphNode.
+  fun GraphCircuit  : Class ;
+  fun GraphCircuit_Class : SubClass GraphCircuit GraphPath ;
+
+  -- Noncompositional parts of Graphs. 
+  -- These parts are restricted to GraphNodes and GraphArcs.
+  fun GraphElement  : Class ;
+  fun GraphElement_Class : SubClass GraphElement Abstract ;
+
+  -- A GraphArc in which a GraphNode is 
+  -- linked to itself.
+  fun GraphLoop  : Class ;
+  fun GraphLoop_Class : SubClass GraphLoop GraphArc ;
+
+  -- Graphs are comprised of GraphNodes 
+  -- and GraphArcs. Every GraphNode is linked by a GraphArc.
+  fun GraphNode  : Class ;
+  fun GraphNode_Class : SubClass GraphNode GraphElement ;
+
+  -- Informally, a single, directed route between 
+  -- two GraphNodes in a Graph. Formally, a DirectedGraph that is a 
+  -- subGraph of the original Graph and such that no two GraphArcs in 
+  -- the DirectedGraph have the same intial node (see InitialNodeFn) or 
+  -- the same terminal node (see TerminalNodeFn).
+  fun GraphPath  : Class ;
+  fun GraphPath_Class : SubClass GraphPath DirectedGraph ;
+
+  -- A BinaryFunction that maps two GraphNodes 
+  -- to the Class of GraphPaths between those two nodes. Note that the two 
+  -- GraphNodes must belong to the same Graph.
+  fun GraphPathFn : El GraphNode -> El GraphNode -> Desc GraphPath ;
+
+  -- SI absorbed dose measure. Symbol: Gy. It measures 
+  -- the dose of radiation absorbed in living tissue. It is equal approximately 
+  -- to the absorbed dose delivered when the energy per unit mass imparted to
+  -- matter by ionizing radiation is 1 Joule per kilogram. Gray = J/kg 
+  -- = m^2*s^(_2).
+  fun Gray  : Ind CompositeUnitOfMeasure ;
+
+  -- (GreatestCommonDivisorFn 
+  -- ?NUMBER1 ?NUMBER2 ... ?NUMBER) returns the greatest common divisor of 
+  -- ?NUMBER1 through ?NUMBER.
+  fun GreatestCommonDivisorFn  : [El Integer] -> Ind Integer ;
+
+  -- A Collection of Agents, e.g. a flock 
+  -- of sheep, a herd of goats, or the local Boy Scout troop.
+  fun Group  : Class ;
+  fun Group_Class : SubClass Group (both Agent Collection) ;
+
+  -- Any Group whose members are 
+  -- exclusively Humans.
+  fun GroupOfPeople  : Class ;
+  fun GroupOfPeople_Class : SubClass GroupOfPeople Group ;
+
+  -- The Process of biological development in which 
+  -- an Organism or part of an Organism changes its form or its size.
+  fun Growth  : Class ;
+  fun Growth_Class : SubClass Growth AutonomicProcess ;
+
+  -- Any IntentionalProcess where the agent tries to 
+  -- direct the behavior of another Object, whether an Agent or not.
+  fun Guiding  : Class ;
+  fun Guiding_Class : SubClass Guiding IntentionalProcess ;
+
+  -- The subclass of Perception in which the 
+  -- sensing is done by an auditory Organ.
+  fun Hearing  : Class ;
+  fun Hearing_Class : SubClass Hearing Perception ;
+
+  -- Any Increasing Process where the PhysicalQuantity 
+  -- increased is a TemperatureMeasure.
+  fun Heating  : Class ;
+  fun Heating_Class : SubClass Heating Increasing ;
+
+  -- SI inductance measure. Symbol: H. One Henry 
+  -- is equivalent to one Volt divided by one Ampere per SecondDuration. 
+  -- If a current changing at the rate of one Ampere per SecondDuration 
+  -- induces an electromotive force of one Volt, the circuit has an 
+  -- inductance of one Henry. Henry = Wb/A = m^2*kg*s^(_2)*A^(_2).
+  fun Henry  : Ind CompositeUnitOfMeasure ;
+
+  -- SI frequency measure. Symbol: Hz. It is the 
+  -- number of cycles per second. Hertz = s^(_1). Note that Hertz 
+  -- does not have a conversion function.
+  fun Hertz  : Ind UnitOfFrequency ;
+
+  -- OrganizationalProcesses where someone is made an 
+  -- employee of an Organization.
+  fun Hiring  : Class ;
+  fun Hiring_Class : SubClass Hiring JoiningAnOrganization ;
+
+  -- A hole is an immaterial body located at the surface 
+  -- of an Object. Since every Hole is ontologically dependent on its host 
+  -- (i.e., the object in which it is a hole), being a Hole is defined as 
+  -- being a hole in something. Note that two Holes may occupy the same 
+  -- region, or part of the same region, without sharing any parts. Any two 
+  -- hosts of a hole have a common proper part that entirely hosts the hole. A 
+  -- common host of two holes hosts all parts of the sum of those holes. Any 
+  -- object that includes the host of a hole is a host of that hole, unless its 
+  -- parts also include parts of that very hole. Overlapping holes have 
+  -- overlapping hosts. No hole is atomic. Holes are connected with their 
+  -- hosts. No hole can have a proper part that is externally connected with 
+  -- exactly the same things as the hole itself.
+  fun Hole  : Class ;
+  fun Hole_Class : SubClass Hole Region ;
+
+  -- A UnaryFunction that maps a Hole to 
+  -- the Object which is its principal host. The principle host of a Hole 
+  -- is its maximally connected host (a notion taken here to be defined only 
+  -- when the argument is a hole).
+  fun HoleHostFn  : El Hole -> Ind Object ;
+
+  -- A UnaryFunction that maps a Hole to the skin 
+  -- of the Hole. The skin of a Hole is the fusion of those superficial 
+  -- parts (see superficialPart) of the Hole's principal host (see 
+  -- HoleHostFn) with which the Hole is externally connected.
+  fun HoleSkinFn  : El Hole -> Ind Object ;
+
+  -- Includes Humans and relatively recent 
+  -- ancestors of Humans.
+  fun Hominid  : Class ;
+  fun Hominid_Class : SubClass Hominid Primate ;
+
+  -- The Class of quadruped Mammals with hooves. 
+  -- Includes horses, cows, sheep, pigs, antelope, etc.
+  fun HoofedMammal  : Class ;
+  fun HoofedMammal_Class : SubClass HoofedMammal Mammal ;
+
+  -- Attribute used to indicate that an Object 
+  -- is positioned width_wise with respect to another Object.
+  fun Horizontal  : Ind PositionalAttribute ;
+
+  -- In Animals, a chemical secreted by an 
+  -- endocrine gland whose products are released into the circulating fluid. 
+  -- Plant hormones or synthetic hormones which are used only to alter or 
+  -- control various physiologic processes, e.g., reproductive control agents, 
+  -- are assigned to the Class BiologicallyActiveSubstance. Hormones act as 
+  -- chemical messengers and regulate various physiologic processes such as 
+  -- growth, reproduction, metabolism, etc. They usually fall into two broad 
+  -- categories, viz. steroid hormones and peptide hormones.
+  fun Hormone  : Class ;
+  fun Hormone_Class : SubClass Hormone (both BiologicallyActiveSubstance BodySubstance) ;
+
+  -- A power measure that is equal to 746 Watts.
+  fun Horsepower  : Ind CompositeUnitOfMeasure ;
+
+  -- The Class of all clock Hours.
+  fun Hour  : Class ;
+  fun Hour_Class : SubClass Hour TimeInterval ;
+
+  -- Time unit. 1 hour = 60 minutes.
+  fun HourDuration  : Ind UnitOfDuration ;
+
+  -- A BinaryFunction that assigns a PositiveRealNumber and 
+  -- a subclass of Days to the Hours within each Day corresponding to that 
+  -- NonnegativeInteger. For example, (HourFn 12 Thursday) is the Class of all 
+  -- instances of noon Thursday. For another example, (HourFn 0 Day) would return 
+  -- the class of all instances of midnight. For still another example, (HourFn 14 
+  -- (DayFn 18 (MonthFn August (YearFn 1912)))) denotes 2 PM on the 18th day of 
+  -- August 1912.
+  fun HourFn : El NonnegativeInteger -> Desc Day -> Desc Hour ;
+
+  -- A ResidentialBuilding which is intended to be 
+  -- inhabited by members of the same SocialUnit. Houses are distinguished 
+  -- from temporary housing like hotels and multi_family dwellings like condominium 
+  -- and apartment buildings.
+  fun House  : Class ;
+  fun House_Class : SubClass House (both ResidentialBuilding SingleFamilyResidence) ;
+
+  -- Modern man, the only remaining species of the Homo 
+  -- genus.
+  fun Human  : Class ;
+  fun Human_Class : SubClass Human (both CognitiveAgent Hominid) ;
+
+  -- The subclass of Languages used by 
+  -- Humans.
+  fun HumanLanguage  : Class ;
+  fun HumanLanguage_Class : SubClass HumanLanguage Language ;
+
+  -- Hunting is the class of Processes in which 
+  -- an animal or animals are pursued and sometimes captured and/or killed.
+  fun Hunting  : Class ;
+  fun Hunting_Class : SubClass Hunting Pursuing ;
+
+  -- This is the subclass of ContentBearingPhysical 
+  -- which are not part of a Language and which have some sort of similarity 
+  -- with the Objects that they represent. This Class would include symbolic 
+  -- roadway signs, representational art works, photographs, etc.
+  fun Icon  : Class ;
+  fun Icon_Class : SubClass Icon ContentBearingPhysical ;
+
+  -- The Attribute of Regions that are 
+  -- illuminated to some degree, i.e. in which some shapes are visually 
+  -- discernable.
+  fun Illuminated  : Ind VisualAttribute ;
+
+  -- Any Number that is the result of 
+  -- multiplying a RealNumber by the square root of _1.
+  fun ImaginaryNumber  : Class ;
+  fun ImaginaryNumber_Class : SubClass ImaginaryNumber Number ;
+
+  -- (ImaginaryPartFn ?NUMBER) returns 
+  -- the part of ?NUMBER that has the square root of _1 as its factor.
+  fun ImaginaryPartFn  : El ComplexNumber -> Ind ImaginaryNumber ;
+
+  -- (ImmediateFamilyFn ?PERSON) denotes the 
+  -- immediate family of ?PERSON, i.e. the Group consisting of the parents of 
+  -- ?PERSON and anyone of whom ?PERSON is a parent.
+  fun ImmediateFamilyFn  : El Human -> Ind FamilyGroup ;
+
+  -- A UnaryFunction that maps a 
+  -- TimePosition to a short, indeterminate TimeInterval that 
+  -- immediately follows the TimePosition.
+  fun ImmediateFutureFn  : El TimePosition -> Ind TimeInterval ;
+
+  -- A UnaryFunction that maps a 
+  -- TimePosition to a short, indeterminate TimeInterval that 
+  -- immediately precedes the TimePosition.
+  fun ImmediatePastFn  : El TimePosition -> Ind TimeInterval ;
+
+  -- Any Touching where something comes into 
+  -- sudden, forceful, physical contact with something else. Some examples 
+  -- would be striking, knocking, whipping etc.
+  fun Impacting  : Class ;
+  fun Impacting_Class : SubClass Impacting Touching ;
+
+  -- The subclass of Transfer where the patient 
+  -- travels through space by means of a sudden, forceful event. Some examples 
+  -- would be shooting, throwing, tossing, etc.
+  fun Impelling  : Class ;
+  fun Impelling_Class : SubClass Impelling Transfer ;
+
+  -- English length unit of inches.
+  fun Inch  : Ind UnitOfLength ;
+
+  -- InchMercury is a UnitOfMeasure 
+  -- for barometricPressure. It is used to express the number of 
+  -- inches of mercury supported in a mercurial barometer by the 
+  -- surrounding air pressure.
+  fun InchMercury  : Ind UnitOfAtmosphericPressure ;
+
+  -- Any QuantityChange where the PhysicalQuantity 
+  -- is increased.
+  fun Increasing  : Class ;
+  fun Increasing_Class : SubClass Increasing QuantityChange ;
+
+  -- An Argument which is inductive, i.e. it is 
+  -- claimed that a set of specific cases makes the conclusion, which generalizes 
+  -- these cases, more likely to be true.
+  fun InductiveArgument  : Class ;
+  fun InductiveArgument_Class : SubClass InductiveArgument Argument ;
+
+  -- Measures of the amount of information. 
+  -- Includes Bit, Byte, and multiples of these, e.g. KiloByte and 
+  -- MegaByte.
+  fun InformationMeasure  : Class ;
+  fun InformationMeasure_Class : SubClass InformationMeasure ConstantQuantity ;
+
+  -- The Process by which Food is 
+  -- taken into an Animal.
+  fun Ingesting  : Class ;
+  fun Ingesting_Class : SubClass Ingesting OrganismProcess ;
+
+  -- A UnaryFunction that maps a 
+  -- GraphArc to the initial node of the GraphArc. Note
+  -- that this is a partial function. In particular, the function is 
+  -- undefined for GraphArcs that are not part of a DirectedGraph.
+  fun InitialNodeFn  : El GraphArc -> Ind GraphNode ;
+
+  -- Inserting a BiologicallyActiveSubstance into an 
+  -- Animal or a Human with a syringe.
+  fun Injecting  : Class ;
+  fun Injecting_Class : SubClass Injecting Inserting ;
+
+  -- The process of creating a traumatic wound or 
+  -- injury. Since Injuring is not possible without some biologic function 
+  -- of the organism being injured, it is a subclass of BiologicalProcess.
+  fun Injuring : Class ;
+  def Injuring = both PathologicProcess
+                      (KappaFn Damaging (\INJ -> exists Organism (\ORGANISM -> patient (var Damaging Process ? INJ)
+                                                                                       (var Organism Entity ? ORGANISM)))) ;
+
+  -- A Class of small Arthropods that are 
+  -- air_breathing and that are distinguished by appearance.
+  fun Insect  : Class ;
+  fun Insect_Class : SubClass Insect Arthropod ;
+
+  -- Putting one thing inside of another thing.
+  fun Inserting  : Class ;
+  fun Inserting_Class : SubClass Inserting Putting ;
+
+  -- A negative or nonnegative whole number.
+  fun Integer  : Class ;
+  fun Integer_Class : SubClass Integer RationalNumber ;
+
+  -- (IntegerSquareRootFn ?NUMBER) 
+  -- returns the integer square root of ?NUMBER.
+  fun IntegerSquareRootFn  : El RealNumber -> Ind NonnegativeInteger ;
+
+  -- A Process that has a specific 
+  -- purpose for the CognitiveAgent who performs it.
+  fun IntentionalProcess  : Class ;
+  fun IntentionalProcess_Class : SubClass IntentionalProcess Process ;
+
+  -- An IntentionalProcess that 
+  -- can be realized entirely within the mind or brain of an Organism. Thus, 
+  -- for example, Reasoning is a subclass of IntentionalPsychologicalProcess, 
+  -- because one can reason simply by exercising one's mind/brain. On the other 
+  -- hand, RecreationOrExercise is not a subclass of IntentionalPsychologicalProcess,
+  -- because many instances of RecreationOrExercise necessarily have subProcesses 
+  -- of BodyMotion.
+  fun IntentionalPsychologicalProcess  : Class ;
+  fun IntentionalPsychologicalProcess_Class : SubClass IntentionalPsychologicalProcess (both IntentionalProcess PsychologicalProcess) ;
+
+  -- Any Attribute of an Entity that is an 
+  -- internal property of the Entity, e.g. its shape, its color, its fragility, 
+  -- etc.
+  fun InternalAttribute  : Class ;
+  fun InternalAttribute_Class : SubClass InternalAttribute Attribute ;
+
+  -- Processes which involve altering an internal 
+  -- property of an Object, e.g. the shape of the Object, its coloring, its 
+  -- structure, etc. Processes that are not instances of this class include 
+  -- changes that only affect the relationship to other objects, e.g. changes in 
+  -- spatial or temporal location.
+  fun InternalChange  : Class ;
+  fun InternalChange_Class : SubClass InternalChange Process ;
+
+  -- Any Process of assigning a Proposition to 
+  -- a Text, i.e. understanding the Text.
+  fun Interpreting  : Class ;
+  fun Interpreting_Class : SubClass Interpreting IntentionalPsychologicalProcess ;
+
+  -- A BinaryFunction that maps two 
+  -- SetOrClasses to the intersection of these SetOrClasses. An object is 
+  -- an instance of the intersection of two SetOrClasses just in case it is 
+  -- an instance of both of those SetOrClasses.
+  fun IntersectionFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
+
+  -- A BinaryFunction that
+  -- maps two instances of ConstantQuantity to the subclass of
+  -- ConstantQuantity that comprises the interval from the first
+  -- ConstantQuantity to the second ConstantQuantity. For
+  -- example, (IntervalFn (MeasureFn 8 Meter) (MeasureFn 14 Meter)) 
+  -- would return the subclass of ConstantQuantity comprising quantities 
+  -- between 8 and 14 meters in length.
+  fun IntervalFn : El ConstantQuantity -> El ConstantQuantity -> Desc ConstantQuantity ;
+
+  -- DeductiveArguments that are not 
+  -- ValidDeductiveArguments, i.e. it is not the case that the set of premises 
+  -- in fact entails the conclusion.
+  fun InvalidDeductiveArgument  : Class ;
+  fun InvalidDeductiveArgument_Class : SubClass InvalidDeductiveArgument DeductiveArgument ;
+
+  -- An Animal which has no spinal column.
+  fun Invertebrate  : Class ;
+  fun Invertebrate_Class : SubClass Invertebrate Animal ;
+
+  -- The class of IntentionalPsychologicalProcesses 
+  -- where the agent attempts to obtaina information (i.e. a Proposition denoted 
+  -- by a Formula).
+  fun Investigating  : Class ;
+  fun Investigating_Class : SubClass Investigating IntentionalPsychologicalProcess ;
+
+  -- Any RealNumber that is not also a 
+  -- RationalNumber.
+  fun IrrationalNumber  : Class ;
+  fun IrrationalNumber_Class : SubClass IrrationalNumber RealNumber ;
+
+  -- A LandArea that is completely surrounded by a WaterArea.
+  fun Island  : Class ;
+  fun Island_Class : SubClass Island LandArea ;
+
+  -- The Class of all Months which are January.
+  fun January  : Class ;
+  fun January_Class : SubClass January Month ;
+
+  -- The OrganizationalProcess of 
+  -- becoming a member of an Organization.
+  fun JoiningAnOrganization  : Class ;
+  fun JoiningAnOrganization_Class : SubClass JoiningAnOrganization OrganizationalProcess ;
+
+  -- SI energy measure. Symbol: J. It is the work 
+  -- done when the point of application of 1 Newton is displaced a distance 
+  -- of 1 Meter in the direction of the force. Joule = N*m = 
+  -- m^2*kg*s^(_2).
+  fun Joule  : Ind CompositeUnitOfMeasure ;
+
+  -- The subclass of Selecting where the agent opts 
+  -- for one belief out of a set of multiple possibilities that are available to 
+  -- him/her.
+  fun Judging  : Class ;
+  fun Judging_Class : SubClass Judging Selecting ;
+
+  -- JudicialOrganization is the class 
+  -- of Organizations whose primary purpose is to render judgments according 
+  -- to the statutes or regulations of a government or other organization. 
+  -- Judicial bodies are not necessarily government organizations, for example, 
+  -- those associated with sporting associations.
+  fun JudicialOrganization  : Class ;
+  fun JudicialOrganization_Class : SubClass JudicialOrganization Organization ;
+
+  -- Any legal proceeding which is conducted 
+  -- by a JudicialOrganization. Note that there is an important difference 
+  -- between the concepts LegalAction and JudicialProcess. The former 
+  -- refers to legal claims that are brought by a plaintiff, e.g. law suits, 
+  -- while the second refers to trials and other sorts of judicial hearings 
+  -- where the merits of a LegalAction are decided.
+  fun JudicialProcess  : Class ;
+  def JudicialProcess = KappaFn PoliticalProcess (\PROCESS -> forall Organization (\ORG -> agent (var PoliticalProcess Process ? PROCESS)
+                                                                                                 (var Organization Agent ? ORG))) ;
+
+  -- The Class of all Months which are July.
+  fun July  : Class ;
+  fun July_Class : SubClass July Month ;
+
+  -- The Class of all Months which are June.
+  fun June  : Class ;
+  fun June_Class : SubClass June Month ;
+
+  -- The Class of Processes where the agent 
+  -- keeps something in a particular location for an extended period of time.
+  fun Keeping  : Class ;
+  fun Keeping_Class : SubClass Keeping IntentionalProcess ;
+
+  -- SI UnitOfMeasure used
+  -- with MeasureFn to produce terms denoting instances of
+  -- TemperatureMeasure. Symbol: K. It is one of the base units in
+  -- SI (it is also a unit in the ITS system). Kelvin differs from the
+  -- Celsius scale in that the triple point of water is defined to be
+  -- 273.16 KelvinDegrees while it is 0 CelsiusDegrees. The magnitudes
+  -- of intervals in the two scales are the same. By definition the
+  -- conversion constant is 273.15.
+  fun KelvinDegree  : Ind UnitOfTemperature ;
+
+  -- The subclass of Destruction in which the 
+  -- death of an Organism is caused by an Organism. Note that in cases 
+  -- of suicide the Organism would be the same in both cases.
+  fun Killing  : Class ;
+  fun Killing_Class : SubClass Killing Destruction ;
+
+  -- One KiloByte (KB) of information. One 
+  -- KiloByte is 1024 Bytes. Note that this sense of 'kilo' is 
+  -- different from the one accepted in the SI system.
+  fun KiloByte  : Ind UnitOfInformation ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to 1,000 units of the original UnitOfMeasure. 
+  -- For example, (KiloFn Gram) is 1,000 Grams.
+  fun KiloFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- Supermultiple of Gramm. Symbol: kg. 1 Kilogram
+  -- = 1000 Grams.
+  fun Kilogram  : Ind UnitOfMass ;
+
+  -- Supermultiple of Meter. Symbol: km. A
+  -- Meter is the 1000th part of a Kilometer
+  fun Kilometer  : Ind UnitOfLength ;
+
+  -- An area which is predominantly solid ground, 
+  -- e.g. a Nation, a mountain, a desert, etc. Note that a LandArea may 
+  -- contain some relatively small WaterAreas. For example, Australia is 
+  -- a LandArea even though it contains various rivers and lakes.
+  fun LandArea  : Class ;
+  fun LandArea_Class : SubClass LandArea GeographicArea ;
+
+  -- LandTransitway is the subclass of 
+  -- Transitway that represents areas intended for motion over the ground.
+  fun LandTransitway  : Class ;
+  fun LandTransitway_Class : SubClass LandTransitway (both LandArea Transitway) ;
+
+  -- A system of signs for expressing thought. The 
+  -- system can be either natural or artificial, i.e. something that emerges 
+  -- gradually as a cultural artifact or something that is intentionally created 
+  -- by a person or group of people.
+  fun Language  : Class ;
+  fun Language_Class : SubClass Language LinguisticExpression ;
+
+  -- Form of most Invertebrates, Amphibians, and 
+  -- Fish immediately after they hatch. This form is fundamentally unlike 
+  -- the adult form, and metamorphosis is required to reach the latter form.
+  fun Larval  : Ind DevelopmentalAttribute ;
+
+  -- Attribute that applies to Propositions that are 
+  -- required by a government or a branch of the government and that are enforced 
+  -- with penalties for noncompliance. These Propositions may be codified as 
+  -- legislation or they may be more informal, as in the case of government policy.
+  fun Law  : Ind DeonticAttribute ;
+
+  -- The Class of all leap years. These are years 
+  -- which are either (i.) evenly divisible by 4 and not by 100 or (ii.) evenly 
+  -- divisible by 400 (this latter case is known as a leap century).
+  fun LeapYear  : Class ;
+  fun LeapYear_Class : SubClass LeapYear Year ;
+
+  -- The Class of Processes which relate to the 
+  -- acquisition of information.
+  fun Learning  : Class ;
+  fun Learning_Class : SubClass Learning IntentionalPsychologicalProcess ;
+
+  -- (LeastCommonMultipleFn 
+  -- ?NUMBER1 ?NUMBER2 ... ?NUMBER) returns the least common multiple of 
+  -- ?NUMBER1 through ?NUMBER.
+  fun LeastCommonMultipleFn  : [El Integer] -> Ind Integer ;
+
+  -- The OrganizationalProcess of 
+  -- leaving an Organization, whether voluntarily or involuntarily.
+  fun LeavingAnOrganization  : Class ;
+  fun LeavingAnOrganization_Class : SubClass LeavingAnOrganization OrganizationalProcess ;
+
+  -- This PositionalAttribute is derived from the 
+  -- left/right schema. Note that this means directly to the left, so that, 
+  -- if one object is to the left of another, then the projections of the 
+  -- two objects overlap.
+  fun Left  : Ind AntiSymmetricPositionalAttribute ;
+
+  -- Any Process where a CognitiveAgent seeks 
+  -- to obtain something through a court of law.
+  fun LegalAction  : Class ;
+  fun LegalAction_Class : SubClass LegalAction Contest ;
+
+  -- A decision issued by a court with respect to 
+  -- a LegalAction. Note that a LegalDecision is the act of Declaring a 
+  -- decision of a court, it is not the act of judge or jury Deciding the merits 
+  -- of a particular LegalAction.
+  fun LegalDecision  : Class ;
+  fun LegalDecision_Class : SubClass LegalDecision (both Declaring JudicialProcess) ;
+
+  -- The subclass of Giving Processes where 
+  -- the agent gives the destination something for a limited period of 
+  -- time with the expectation that it will be returned later (perhaps with 
+  -- interest).
+  fun Lending  : Class ;
+  fun Lending_Class : SubClass Lending Giving ;
+
+  -- A subclass of
+  -- ConstantQuantity, instances of which are measures of length.
+  fun LengthMeasure  : Class ;
+  fun LengthMeasure_Class : SubClass LengthMeasure ConstantQuantity ;
+
+  -- The ProbabilityAttribute of being probable, i.e. more 
+  -- likely than not to be True.
+  fun Likely  : Ind ProbabilityAttribute ;
+
+  -- A Communication that involves 
+  -- the transfer of information via a LinguisticExpression.
+  fun LinguisticCommunication  : Class ;
+  fun LinguisticCommunication_Class : SubClass LinguisticCommunication Communication ;
+
+  -- This is the subclass of 
+  -- ContentBearingPhysical which are language_related. Note that this Class 
+  -- encompasses both Language and the the elements of Languages, 
+  -- e.g. Words.
+  fun LinguisticExpression  : Class ;
+  fun LinguisticExpression_Class : SubClass LinguisticExpression ContentBearingPhysical ;
+
+  -- An Object has the Attribute of Liquid if 
+  -- it has a fixed volume but not a fixed shape.
+  fun Liquid  : Ind PhysicalState ;
+
+  -- Any Mixture that satisfies two conditions, 
+  -- viz. it is made up predominantly of things which are a Liquid and any 
+  -- component other than Liquid in the Mixture is in the form of fine particles 
+  -- which are suspended in the Liquid.
+  fun LiquidMixture  : Class ;
+  fun LiquidMixture_Class : SubClass LiquidMixture Mixture ;
+
+  -- Any Motion where the patient is a 
+  -- Liquid. This class would cover, in particular, the flow of 
+  -- Water.
+  fun LiquidMotion  : Class ;
+  fun LiquidMotion_Class : SubClass LiquidMotion Motion ;
+
+  -- Every List is a particular ordered n_tuple of 
+  -- items. Generally speaking, Lists are created by means of the ListFn 
+  -- Function, which takes any number of items as arguments and returns a 
+  -- List with the items in the same order. Anything, including other 
+  -- Lists, may be an item in a List. Note too that Lists are 
+  -- extensional _ two lists that have the same items in the same order are 
+  -- identical. Note too that a List may contain no items. In that case, 
+  -- the List is the NullList.
+  fun List  : Class ;
+
+  -- A Function that returns the concatenation 
+  -- of the two Lists that are given as arguments. For example, the value of 
+  -- (ListConcatenateFn (ListFn Monday Tuesday) (ListFn Wednesday 
+  -- Thursday)) would be (ListFn Monday Tuesday Wednesday Thursday).
+  fun ListConcatenateFn  : El List -> El List -> Ind List ;
+
+  -- A Function that takes any number of arguments and 
+  -- returns the List containing those arguments in exactly the same order.
+  fun ListFn  : [El Entity] -> Ind List ;
+
+  -- A Function that takes a List as its sole 
+  -- argument and returns the number of items in the List. For example, 
+  -- (ListLengthFn (ListFn Monday Tuesday Wednesday)) would return the 
+  -- value 3.
+  fun ListLengthFn  : El List -> Ind NonnegativeInteger ;
+
+  -- (ListOrderFn ?LIST ?NUMBER) denotes the item 
+  -- that is in the ?NUMBER position in the List ?LIST. For example, 
+  -- (ListOrderFn (ListFn Monday Tuesday Wednesday) 2) would return the 
+  -- value Tuesday.
+  fun ListOrderFn  : El List -> El PositiveInteger -> Ind Entity ;
+
+  -- Any instance of Hearing which is intentional.
+  fun Listening  : Class ;
+  fun Listening_Class : SubClass Listening (both Hearing IntentionalProcess) ;
+
+  -- Unit of volume in the metric
+  -- system. It is currently defined to be equal to one cubic
+  -- decimeter (0.001 cubic meter). Symbol: l.
+  fun Liter  : Ind UnitOfVolume ;
+
+  -- This Attribute applies to Organisms that are 
+  -- alive.
+  fun Living  : Ind AnimacyAttribute ;
+
+  -- (LogFn ?NUMBER ?INT) returns the logarithm of the 
+  -- RealNumber ?NUMBER in the base denoted by the Integer ?INT.
+  fun LogFn  : El RealNumber -> El PositiveInteger -> Ind RealNumber ;
+
+  -- This Class comprises all 
+  -- of the logical operators (viz. 'and', 'or', 'not', '=>', and '<=>').
+  fun LogicalOperator  : Class ;
+
+  -- Any instance of Seeing which is intentional.
+  fun Looking  : Class ;
+  fun Looking_Class : SubClass Looking (both IntentionalProcess Seeing) ;
+
+  -- SI luminous flux measure. Symbol: lm. It is the 
+  -- amount streaming outward through one solid angle of 1 Steradian from a 
+  -- uniform point source having an intensity of one Candela. Lumen = 
+  -- cd*sr = cd * 1.
+  fun Lumen  : Ind CompositeUnitOfMeasure ;
+
+  -- SI illuminance measure. Symbol: lx. It is the 
+  -- amount of illumination provided when one Lumen is evenly distributed 
+  -- over an area of 1 square Meter. This is also equivalent to the 
+  -- illumination that would exist on a surface all points of which are one 
+  -- Meter from a point source of one Candela. Lux = lm/m^2 = 
+  -- m^(_2)*cd.
+  fun Lux  : Ind CompositeUnitOfMeasure ;
+
+  -- Machines are Devices that that have a 
+  -- well_defined resource and result and that automatically convert 
+  -- the resource into the result.
+  fun Machine  : Class ;
+  fun Machine_Class : SubClass Machine Device ;
+
+  -- The magnitude of a PhysicalQuantity is the 
+  -- numeric value for the quantity. In other words, MagnitudeFn converts 
+  -- a PhysicalQuantity with an associated UnitOfMeasure into an ordinary 
+  -- RealNumber. For example, the magnitude of the ConstantQuantity 2 
+  -- Kilometers is the RealNumber 2. Note that the magnitude of a 
+  -- quantity in a given unit times that unit is equal to the original 
+  -- quantity.
+  fun MagnitudeFn  : El PhysicalQuantity -> Ind RealNumber ;
+
+  -- The Class of Processes where the agent 
+  -- cares for or maintains the Object.
+  fun Maintaining  : Class ;
+  fun Maintaining_Class : SubClass Maintaining IntentionalProcess ;
+
+  -- The subclass of Creation in which an individual 
+  -- Artifact or a type of Artifact is made.
+  fun Making  : Class ;
+  fun Making_Class : SubClass Making (both Creation IntentionalProcess) ;
+
+  -- An Attribute indicating that an Organism is 
+  -- male in nature.
+  fun Male  : Ind SexAttribute ;
+
+  -- A Vertebrate having a constant body temperature 
+  -- and characterized by the presence of hair, mammary glands, and sweat 
+  -- glands.
+  fun Mammal  : Class ;
+  fun Mammal_Class : SubClass Mammal WarmBloodedVertebrate ;
+
+  -- The class of Male Humans.
+  fun Man  : Class ;
+  fun Man_Class : SubClass Man Human ;
+
+  -- OrganizationalProcesses that involve overseeing 
+  -- the activities of others. Note the key differences between RegulatoryProcess 
+  -- and its sibling Managing. The latter implies a long_term relationship between 
+  -- the manager and the managed, while the former implies a normative standard to which 
+  -- the activities of the regulated are referred.
+  fun Managing  : Class ;
+  fun Managing_Class : SubClass Managing (both Guiding OrganizationalProcess) ;
+
+  -- An intentional move or play within a Contest. 
+  -- In many cases, a Maneuver is a realization of part of a strategy for 
+  -- winning the Contest, but it also may be just an arbitrary or semi_arbitrary 
+  -- division of the overarching Contest, e.g. innings in a baseball game.
+  fun Maneuver  : Class ;
+  fun Maneuver_Class : SubClass Maneuver IntentionalProcess ;
+
+  -- A ManualHumanLanguage is a
+  -- HumanLanguage which has as its medium gestures and movement, such 
+  -- as the shape, position, and movement of the hands.
+  fun ManualHumanLanguage  : Class ;
+  fun ManualHumanLanguage_Class : SubClass ManualHumanLanguage HumanLanguage ;
+
+  -- The Making of Artifacts on a mass 
+  -- scale.
+  fun Manufacture  : Class ;
+  fun Manufacture_Class : SubClass Manufacture Making ;
+
+  -- Any Corporation which manufactures Products.
+  fun Manufacturer  : Class ;
+  fun Manufacturer_Class : SubClass Manufacturer Corporation ;
+
+  -- The Class of all Months which are March.
+  fun March  : Class ;
+  fun March_Class : SubClass March Month ;
+
+  -- The Class of Mammals which have a pouch for 
+  -- their young.
+  fun Marsupial  : Class ;
+  fun Marsupial_Class : SubClass Marsupial Mammal ;
+
+  -- A subclass of
+  -- ConstantQuantity, instances of which are measures of the amount of
+  -- matter in an Object.
+  fun MassMeasure  : Class ;
+  fun MassMeasure_Class : SubClass MassMeasure ConstantQuantity ;
+
+  -- The OrganizationalProcess of joining an 
+  -- EducationalOrganization as a student.
+  fun Matriculation  : Class ;
+  fun Matriculation_Class : SubClass Matriculation JoiningAnOrganization ;
+
+  -- (MaxFn ?NUMBER1 ?NUMBER2) is the largest of 
+  -- ?NUMBER1 and ?NUMBER2. In cases where ?NUMBER1 is equal to ?NUMBER2, 
+  -- MaxFn returns one of its arguments.
+  fun MaxFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- This BinaryFunction assigns two 
+  -- GraphNodes to the GraphPath with the largest sum of weighted arcs 
+  -- between the two GraphNodes.
+  fun MaximalWeightedPathFn  : El GraphNode -> El GraphNode -> Ind GraphPath ;
+
+  -- The Class of all Months which are May.
+  fun May  : Class ;
+  fun May_Class : SubClass May Month ;
+
+  -- This BinaryFunction maps a
+  -- RealNumber and a UnitOfMeasure to that Number of units. It is
+  -- used to express `measured' instances of PhysicalQuantity. Example:
+  -- the concept of three meters is represented as (MeasureFn 3
+  -- Meter).
+  fun MeasureFn  : El RealNumber -> El UnitOfMeasure -> Ind PhysicalQuantity ;
+
+  -- The Class of Calculating Processes where 
+  -- the aim is to determine the PhysicalQuantity of some aspect of the patient.
+  fun Measuring  : Class ;
+  fun Measuring_Class : SubClass Measuring Calculating ;
+
+  -- Any Device whose purpose is to measure a 
+  -- PhysicalQuantity.
+  fun MeasuringDevice  : Class ;
+  fun MeasuringDevice_Class : SubClass MeasuringDevice Device ;
+
+  -- Any Food which was originally part of an 
+  -- Animal and is not ingested by drinking, including eggs and animal 
+  -- blood that is eaten as food. Note that this class covers both raw 
+  -- meat and meat that has been prepared in some way, e.g. by cooking. 
+  -- Note too that preparations involving Meat and FruitOrVegetable 
+  -- are classed directly under Food.
+  fun Meat  : Class ;
+  fun Meat_Class : SubClass Meat Food ;
+
+  -- The coming together of two or more 
+  -- CognitiveAgents for the purpose of Communication. This covers informal 
+  -- meetings, e.g. visits with family members, and formal meetings, e.g. a board 
+  -- of directors meeting.
+  fun Meeting  : Class ;
+  fun Meeting_Class : SubClass Meeting SocialInteraction ;
+
+  -- One MegaByte (MB) of information. One 
+  -- MegaByte is 1024 KiloBytes. Note that this sense of 'mega' is 
+  -- different from the one accepted in the SI system.
+  fun MegaByte  : Ind UnitOfInformation ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to 1,000,000 units of the original 
+  -- UnitOfMeasure. For example, (MegaFn Hertz) is 1,000,000 Hertz.
+  fun MegaFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- The Class of Processes where an Object is 
+  -- heated and converted from a Solid to a Liquid.
+  fun Melting  : Class ;
+  fun Melting_Class : SubClass Melting StateChange ;
+
+  -- Any Corporation which sells 
+  -- goods or services to customers for a profit.
+  fun MercantileOrganization  : Class ;
+  fun MercantileOrganization_Class : SubClass MercantileOrganization Corporation ;
+
+  -- (MereologicalDifferenceFn ?OBJ1 ?OBJ2)
+  -- denotes the Object consisting of the parts which belong to ?OBJ1 
+  -- and not to ?OBJ2.
+  fun MereologicalDifferenceFn  : El Object -> El Object -> Ind Object ;
+
+  -- (MereologicalProductFn ?OBJ1 ?OBJ2) 
+  -- denotes the Object consisting of the parts which belong to both ?OBJ1 
+  -- and ?OBJ2.
+  fun MereologicalProductFn  : El Object -> El Object -> Ind Object ;
+
+  -- (MereologicalSumFn ?OBJ1 ?OBJ2) 
+  -- denotes the Object consisting of the parts which belong to either 
+  -- ?OBJ1 or ?OBJ2.
+  fun MereologicalSumFn  : El Object -> El Object -> Ind Object ;
+
+  -- A Metal is an ElementalSubstance that conducts heat 
+  -- and electricity, is shiny and reflects many colors of light, and can be hammered 
+  -- into sheets or drawn into wire. About 80% of the known chemical elements 
+  -- (ElementalSubstances) are metals.
+  fun Metal  : Class ;
+  fun Metal_Class : SubClass Metal ElementalSubstance ;
+
+  -- SI UnitOfLength. Symbol: m. It is one of the
+  -- base units in SI, and it is currently defined as follows: the Meter 
+  -- is the length of the path traveled by light in a vacuum during a time 
+  -- interval of 1/299792458 of a SecondDuration.
+  fun Meter  : Ind UnitOfLength ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to .000001 units of the original UnitOfMeasure. 
+  -- For example, (MicroFn Meter) is .000001 Meters.
+  fun MicroFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- An Organism that can be seen only with the aid of a microscope.
+  fun Microorganism  : Class ;
+  fun Microorganism_Class : SubClass Microorganism Organism ;
+
+  -- English length unit of miles.
+  fun Mile  : Ind UnitOfLength ;
+
+  -- MilitaryForce is the subclass of 
+  -- Organizations that are organized along military lines and for the 
+  -- purpose of either defensive or offensive combat, whether or not 
+  -- the force is an official GovernmentOrganization.
+  fun MilitaryForce  : Class ;
+  fun MilitaryForce_Class : SubClass MilitaryForce PoliticalOrganization ;
+
+  -- Any heavily armed Organization 
+  -- that is part of a Government and that is charged with representing the 
+  -- Government in international conflicts.
+  fun MilitaryOrganization  : Class ;
+  fun MilitaryOrganization_Class : SubClass MilitaryOrganization (both GovernmentOrganization MilitaryForce) ;
+
+  -- Any Process that is carried out by a 
+  -- military organization. Note that this class covers Processes, e.g. 
+  -- military operations, that are the result of careful planning, as well as 
+  -- those which are unscripted.
+  fun MilitaryProcess  : Class ;
+  fun MilitaryProcess_Class : SubClass MilitaryProcess PoliticalProcess ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to .001 units of the original UnitOfMeasure. 
+  -- For example, (MilliFn Gram) is .001 Grams.
+  fun MilliFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- Submultiple of Meter. Symbol: mm. A millimeter
+  -- is the 1000th part of a meter
+  fun Millimeter  : Ind UnitOfLength ;
+
+  -- (MinFn ?NUMBER1 ?NUMBER2) is the smallest of 
+  -- ?NUMBER1 and ?NUMBER2. In cases where ?NUMBER1 is equal to ?NUMBER2, 
+  -- MinFn returns one of its arguments.
+  fun MinFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- Any of various naturally occurring homogeneous 
+  -- substances (such as stone, coal, salt, sulfur, sand, petroleum), or 
+  -- synthetic substances having the chemical composition and crystalline form 
+  -- and properties of a naturally occurring mineral.
+  fun Mineral  : Class ;
+  fun Mineral_Class : SubClass Mineral Substance ;
+
+  -- A UnaryFunction that assigns a Graph 
+  -- the Class of GraphPaths which comprise cutsets for the Graph and 
+  -- which have the least number of GraphArcs.
+  fun MinimalCutSetFn : El Graph -> Desc GraphPath ;
+
+  -- This BinaryFunction assigns two 
+  -- GraphNodes to the GraphPath with the smallest sum of weighted arcs 
+  -- between the two GraphNodes.
+  fun MinimalWeightedPathFn  : El GraphNode -> El GraphNode -> Ind GraphPath ;
+
+  -- The Class of all clock Minutes.
+  fun Minute  : Class ;
+  fun Minute_Class : SubClass Minute TimeInterval ;
+
+  -- Time unit. 1 minute = 60 seconds.
+  fun MinuteDuration  : Ind UnitOfDuration ;
+
+  -- A BinaryFunction that assigns a PositiveRealNumber and 
+  -- a subclass of Hours to the Minutes within each Hour corresponding to that 
+  -- NonnegativeInteger. For example, (MinuteFn 30 (HourFn 17 Day)) is the Class 
+  -- of all 5:30's in the afternoon. For another example, (MinuteFn 15 Hour) would return 
+  -- the class of all instances of quarter past the hour. For still another example, 
+  -- (MinuteFn 15 (HourFn 14 (DayFn 18 (MonthFn August (YearFn 1912))))) denotes 
+  -- 15 minutes after 2 PM on the 18th day of August 1912.
+  fun MinuteFn : El NonnegativeInteger -> Desc Hour -> Desc Minute ;
+
+  -- A Mixture is two or more PureSubstances, 
+  -- combined in varying proportions _ each retaining its own specific properties. 
+  -- The components of a Mixture can be separated by physical means, i.e. without 
+  -- the making and breaking of chemical bonds. Examples: Air, table salt thoroughly 
+  -- dissolved in water, milk, wood, and concrete.
+  fun Mixture  : Class ;
+  fun Mixture_Class : SubClass Mixture Substance ;
+
+  -- MmMercury is a UnitOfMeasure 
+  -- for barometricPressure. It is used to express the number 
+  -- of millimeters of mercury supported in a mercurial barometer
+  --  by the surrounding air pressure.
+  fun MmMercury  : Ind UnitOfAtmosphericPressure ;
+
+  -- SI amount of substance
+  -- unit. symbol: mol. It is one of the base units in SI. It is defined as
+  -- follows: the Mole is the amount of substance of a system which
+  -- contains as many elementary entities as there are atoms in 0.012
+  -- Kilograms of carbon 12. Note that, when this UnitOfMeasure is
+  -- used, the elementary entities must be specified _ they may be atoms,
+  -- molecules, ions, electrons, etc. or groups of such particles.
+  fun Mole  : Ind UnitOfMass ;
+
+  -- A molecule is the smallest unit of matter of a 
+  -- CompoundSubstance that retains all the physical and chemical properties 
+  -- of that substance, e.g., Ne, H2, H2O. A molecule is two or more Atoms 
+  -- linked by a chemical bond.
+  fun Molecule  : Class ;
+  fun Molecule_Class : SubClass Molecule CompoundSubstance ;
+
+  -- Soft_bodied Invertebrate that is usually 
+  -- contained in a shell. Includes oysters, clams, mussels, snails, slugs, 
+  -- octopi, and squid.
+  fun Mollusk  : Class ;
+  fun Mollusk_Class : SubClass Mollusk Invertebrate ;
+
+  -- The Class of all calendar Mondays.
+  fun Monday  : Class ;
+  fun Monday_Class : SubClass Monday Day ;
+
+  -- Various Primates with relatively long 
+  -- tails.
+  fun Monkey  : Class ;
+  fun Monkey_Class : SubClass Monkey Primate ;
+
+  -- An Object with this Attribute has 
+  -- the same color on every part of its surface.
+  fun Monochromatic  : Ind ColorAttribute ;
+
+  -- The Class of all calendar Months.
+  fun Month  : Class ;
+  fun Month_Class : SubClass Month TimeInterval ;
+
+  -- Time unit. A month's duration is at least
+  -- 28 days, and no more than 31 days. Note that this unit is a range, rather
+  -- than an exact amount, unlike most other units.
+  fun MonthDuration  : Ind UnitOfDuration ;
+
+  -- A BinaryFunction that maps a subclass of Month and a 
+  -- subclass of Year to the class containing the Months corresponding to thos Years. 
+  -- For example (MonthFn January (YearFn 1912)) is the class containing the eighth 
+  -- Month, i.e. August, of the Year 1912. For another example, (MonthFn August 
+  -- Year) is equal to August, the class of all months of August. Note that this function 
+  -- returns a Class as a value. The reason for this is that the related functions, viz. 
+  -- DayFn, HourFn, MinuteFn, and SecondFn, are used to generate both specific TimeIntervals 
+  -- and recurrent intervals, and the only way to do this is to make the domains and ranges of 
+  -- these functions classes rather than individuals.
+  fun MonthFn : Desc Month -> Desc Year -> Desc Month ;
+
+  -- Part of a Word which cannot be subdivided 
+  -- and which expresses a meaning.
+  fun Morpheme  : Class ;
+  fun Morpheme_Class : SubClass Morpheme LinguisticExpression ;
+
+  -- A NonFloweringPlant without true roots and little 
+  -- if any vascular tissue.
+  fun Moss  : Class ;
+  fun Moss_Class : SubClass Moss NonFloweringPlant ;
+
+  -- Any Process of movement.
+  fun Motion  : Class ;
+  fun Motion_Class : SubClass Motion Process ;
+
+  -- Motion where an Object is moving toward the 
+  -- ground.
+  fun MotionDownward  : Class ;
+  fun MotionDownward_Class : SubClass MotionDownward Motion ;
+
+  -- A ContentBearingObject which depicts motion 
+  -- (and which may have an audio or text component as well). This Class covers 
+  -- films, videos, etc.
+  fun MotionPicture  : Class ;
+  fun MotionPicture_Class : SubClass MotionPicture Text ;
+
+  -- Motion where an Object is moving away from the ground.
+  fun MotionUpward  : Class ;
+  fun MotionUpward_Class : SubClass MotionUpward Motion ;
+
+  -- A TimeZone that covers much of the 
+  -- Rocky Mountain region of the United States.
+  fun MountainTimeZone  : Ind TimeZone ;
+
+  -- The Class of multigraphs. A multigraph 
+  -- is a Graph containing at least one pair of GraphNodes that are 
+  -- connected by more than one GraphArc.
+  fun MultiGraph  : Class ;
+  fun MultiGraph_Class : SubClass MultiGraph Graph ;
+
+  -- If ?NUMBER1 and ?NUMBER2 are Numbers, 
+  -- then (MultiplicationFn ?NUMBER1 ?NUMBER2) is the arithmetical product 
+  -- of these numbers.
+  fun MultiplicationFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- Nonrigid Tissue appearing only in Animals and 
+  -- composed largely of contractile cells.
+  fun Muscle  : Class ;
+  fun Muscle_Class : SubClass Muscle (both AnimalSubstance Tissue) ;
+
+  -- The subclass of RadiatingSound where the 
+  -- sound is intended to be melodic and is produced deliberately.
+  fun Music  : Class ;
+  fun Music_Class : SubClass Music RadiatingSound ;
+
+  -- A Device which is manipulated by a Human 
+  -- and whose purpose is to produce Music.
+  fun MusicalInstrument  : Class ;
+  fun MusicalInstrument_Class : SubClass MusicalInstrument Device ;
+
+  -- A SetOrClass is a MutuallyDisjointClass 
+  -- just in case there exists nothing which is an instance of all of the instances of 
+  -- the original SetOrClass.
+  fun MutuallyDisjointClass  : Class ;
+  fun MutuallyDisjointClass_Class : SubClass MutuallyDisjointClass SetOrClass ;
+
+  -- A Class of Arthropods that includes 
+  -- centipedes and millipedes.
+  fun Myriapod  : Class ;
+  fun Myriapod_Class : SubClass Myriapod Arthropod ;
+
+  -- A Promise where nothing is promised in return, 
+  -- i.e. a nudum pactum.
+  fun NakedPromise  : Ind DeonticAttribute ;
+
+  -- The Process of assigning a name to someone or something.
+  fun Naming  : Class ;
+  fun Naming_Class : SubClass Naming Declaring ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to .000000001 units of the original 
+  -- UnitOfMeasure. For example, (MicroFn SecondDuration) is .000000001 
+  -- SecondDurations.
+  fun NanoFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- The broadest GeopoliticalArea, i.e. Nations are 
+  -- GeopoliticalAreas that are not part of any other overarching and 
+  -- comprehensive governance structure (excepting commonwealths and other sorts 
+  -- of loose international organizations).
+  fun Nation  : Class ;
+  fun Nation_Class : SubClass Nation (both GeopoliticalArea LandArea) ;
+
+  -- The subclass of HumanLanguages which 
+  -- are not designed and which evolve from generation to generation. This 
+  -- Class includes all of the national languages, e.g. English, Spanish, 
+  -- Japanese, etc. Note that this class includes dialects of natural 
+  -- languages.
+  fun NaturalLanguage  : Class ;
+  fun NaturalLanguage_Class : SubClass NaturalLanguage HumanLanguage ;
+
+  -- A Process that take place in nature
+  -- spontanously.
+  fun NaturalProcess  : Class ;
+  fun NaturalProcess_Class : SubClass NaturalProcess Process ;
+
+  -- Any Substance that is not the result of 
+  -- an IntentionalProcess, i.e. any substance that occurs naturally.
+  fun NaturalSubstance  : Class ;
+  fun NaturalSubstance_Class : SubClass NaturalSubstance Substance ;
+
+  -- The relation of common sense adjacency. Note that, if 
+  -- an object is Near another object, then the objects are not connected.
+  fun Near  : Ind SymmetricPositionalAttribute ;
+
+  -- Attribute that applies to Propositions that are 
+  -- necessary, i.e. true in every possible world.
+  fun Necessity  : Ind AlethicAttribute ;
+
+  -- The TimePoint that is before all other TimePoints.
+  fun NegativeInfinity : Ind TimePoint ;
+
+  -- An Integer that is less than zero.
+  fun NegativeInteger : Class ;
+  fun NegativeInteger_Class : SubClass NegativeInteger (both Integer NegativeRealNumber) ;
+
+  -- A RealNumber that is less than zero.
+  fun NegativeRealNumber : Class ;
+  def NegativeRealNumber = KappaFn RealNumber (\NUMBER -> lessThan (var RealNumber Quantity ? NUMBER)
+                                                                   (el Integer Quantity ? (toInt 0)));
+
+  -- A system in Vertebrates that is made up of 
+  -- the Brain, the spinal cord, nerves, etc.
+  fun NervousSystem  : Class ;
+  fun NervousSystem_Class : SubClass NervousSystem (both AnimalAnatomicalStructure Organ) ;
+
+  -- Components of the AtomicNucleus. They have no charge.
+  fun Neutron : Class ;
+  fun Neutron_Class : SubClass Neutron SubatomicParticle ;
+
+  -- SI force measure. Symbol: N. It is that force 
+  -- which gives to a mass of 1 kilogram an acceleration of 1 Meter per 
+  -- SecondDuration. Newton = m*kg*s^(_2).
+  fun Newton : Ind CompositeUnitOfMeasure ;
+
+  -- Instances of
+  -- this Class are UnitsOfMeasure that are applied to a single
+  -- dimension, and so are not intrinsically defined by the functional
+  -- composition of other units.
+  fun NonCompositeUnitOfMeasure  : Class ;
+  fun NonCompositeUnitOfMeasure_Class : SubClass NonCompositeUnitOfMeasure UnitOfMeasure ;
+
+  -- A Plant that reproduces with spores and 
+  -- does not produce flowers.
+  fun NonFloweringPlant  : Class ;
+  fun NonFloweringPlant_Class : SubClass NonFloweringPlant Plant ;
+
+  -- The stage of an Organism before it is FullyFormed.
+  fun NonFullyFormed  : Ind DevelopmentalAttribute ;
+
+  -- Any SetOrClass that contains at least one instance.
+  fun NonNullSet  : Class ;
+  fun NonNullSet_Class : SubClass NonNullSet SetOrClass ;
+
+  -- An Integer that is greater than or equal to zero.
+  fun NonnegativeInteger  : Class ;
+  fun NonnegativeInteger_Class : SubClass NonnegativeInteger (both Integer NonnegativeRealNumber) ;
+
+  -- A RealNumber that is greater than or equal to zero.
+  fun NonnegativeRealNumber : Class ;
+  def NonnegativeRealNumber = KappaFn RealNumber (\NUMBER -> greaterThanOrEqualTo (var RealNumber Quantity ? NUMBER)
+                                                                                  (el Integer Quantity ? (toInt 0))) ;
+
+  -- A Class containing all of the 
+  -- Attributes that are specific to morality, legality, aesthetics, 
+  -- etiquette, etc. Many of these attributes express a judgement that 
+  -- something ought or ought not to be the case.
+  fun NormativeAttribute  : Class ;
+  fun NormativeAttribute_Class : SubClass NormativeAttribute RelationalAttribute ;
+
+  -- The compass direction of North.
+  fun North  : Ind DirectionalAttribute ;
+
+  -- One of the parts of speech. The Class of Words 
+  -- that conventionally denote Objects.
+  fun Noun  : Class ;
+  fun Noun_Class : SubClass Noun Word ;
+
+  -- A Phrase that has the same function as a Noun.
+  fun NounPhrase  : Class ;
+  fun NounPhrase_Class : SubClass NounPhrase Phrase ;
+
+  -- The Class of all Months which are November.
+  fun November  : Class ;
+  fun November_Class : SubClass November Month ;
+
+  -- The List that has no items. The uniqueness of 
+  -- NullList follows from the extensionality of Lists, i.e. the fact that 
+  -- two Lists with the same items in the same order are identical.
+  fun NullList  : Ind List ;
+
+  -- Any SetOrClass that contains no instances.
+  fun NullSet  : Class ;
+  fun NullSet_Class : SubClass NullSet SetOrClass ;
+
+  -- A measure of how many things there are, or how
+  -- much there is, of a certain kind. Numbers are subclassed into 
+  -- RealNumber, ComplexNumber, and ImaginaryNumber.
+  fun Number  : Class ;
+  fun Number_Class : SubClass Number Quantity ;
+
+  -- NumberE is the RealNumber that is the base for 
+  -- natural logarithms. It is approximately equal to 2.718282.
+  fun NumberE  : Ind PositiveRealNumber ;
+
+  -- (NumeratorFn ?NUMBER) returns the numerator 
+  -- of the canonical reduced form ?NUMBER.
+  fun NumeratorFn  : El RealNumber -> Ind Integer ;
+
+  -- A BiologicallyActiveSubstance required by an Organism. 
+  -- It is generally ingested as Food, and it is of primary interest because of its role 
+  -- in the biologic functioning of the Organism.
+  fun Nutrient  : Class ;
+  fun Nutrient_Class : SubClass Nutrient BiologicallyActiveSubstance ;
+
+  -- Corresponds roughly to the class of ordinary 
+  -- objects. Examples include normal physical objects, geographical regions, 
+  -- and locations of Processes, the complement of Objects in the Physical 
+  -- class. In a 4D ontology, an Object is something whose spatiotemporal 
+  -- extent is thought of as dividing into spatial parts roughly parallel to the 
+  -- time_axis.
+  fun Object  : Class ;
+  fun Object_Class : SubClass Object Physical ;
+
+  -- The Class of NormativeAttributes that are 
+  -- associated with an objective criterion for their attribution, i.e. there is 
+  -- broad consensus about the cases where these attributes are applicable.
+  fun ObjectiveNorm  : Class ;
+  fun ObjectiveNorm_Class : SubClass ObjectiveNorm NormativeAttribute ;
+
+  -- Attribute that applies to Propositions that an 
+  -- Agent is required, by some authority, to make true.
+  fun Obligation  : Ind DeonticAttribute ;
+
+  -- The Class of all Months which are October.
+  fun October  : Class ;
+  fun October_Class : SubClass October Month ;
+
+  -- An Integer that is not evenly divisible by 2.
+  fun OddInteger  : Class ;
+  fun OddInteger_Class : SubClass OddInteger Integer ;
+
+  -- The subclass of Committing in which a 
+  -- CognitiveAgent offers something Physical to another agent. Offerings 
+  -- may be unconditional (in which case they are a promise to effect a 
+  -- UnilateralGiving) or conditional (in which case they are a promise to 
+  -- effect a Transaction of some sort).
+  fun Offering  : Class ;
+  fun Offering_Class : SubClass Offering Committing ;
+
+  -- SI electric resistance measure. It is the electric
+  -- resistance between two points of a conductor when a constant difference 
+  -- of potential of 1 Volt, applied between these two points,
+  -- produces in this conductor a current of 1 Ampere, this conductor not
+  -- being the force of any electromotive force. Ohm = V/A = 
+  -- m^2*kg*s^(_3)*A^(_2).
+  fun Ohm  : Ind CompositeUnitOfMeasure ;
+
+  -- The Class of properties that are 
+  -- detectable by smell.
+  fun OlfactoryAttribute  : Class ;
+  fun OlfactoryAttribute_Class : SubClass OlfactoryAttribute PerceptualAttribute ;
+
+  -- This is used to assert that an object is on top of 
+  -- another object, and it is derived from the up/down schema and involves 
+  -- contact.
+  fun On  : Ind AntiSymmetricPositionalAttribute ;
+
+  -- The class of GeometricFigures that 
+  -- have position and an extension along a single dimension, viz. straight lines.
+  fun OneDimensionalFigure  : Class ;
+  fun OneDimensionalFigure_Class : SubClass OneDimensionalFigure GeometricFigure ;
+
+  -- The class of TwoDimensionalFigures that 
+  -- are not ClosedTwoDimensionalFigures.
+  fun OpenTwoDimensionalFigure  : Class ;
+  fun OpenTwoDimensionalFigure_Class : SubClass OpenTwoDimensionalFigure TwoDimensionalFigure ;
+
+  -- A Directing in which the receiver is 
+  -- commanded to realize the content of a ContentBearingObject. Orders 
+  -- are injunctions, the disobedience of which involves sanctions, or 
+  -- which express an obligation upon the part of the orderee.
+  fun Ordering  : Class ;
+  fun Ordering_Class : SubClass Ordering Directing ;
+
+  -- A somewhat independent BodyPart that performs a 
+  -- specialized function. Note that this functional definition covers bodily 
+  -- systems, e.g. the digestive system or the central nervous system.
+  fun Organ  : Class ;
+  fun Organ_Class : SubClass Organ BodyPart ;
+
+  -- A PhysiologicProcess of a 
+  -- particular Organ or Tissue.
+  fun OrganOrTissueProcess  : Class ;
+  fun OrganOrTissueProcess_Class : SubClass OrganOrTissueProcess AutonomicProcess ;
+
+  -- This class encompasses Organisms, 
+  -- CorpuscularObjects that are parts of Organisms, i.e. BodyParts, 
+  -- and CorpuscularObjects that are nonintentionally produced by 
+  -- Organisms, e.g. ReproductiveBodies.
+  fun OrganicObject  : Class ;
+  fun OrganicObject_Class : SubClass OrganicObject CorpuscularObject ;
+
+  -- Generally, a living individual, including all 
+  -- Plants and Animals.
+  fun Organism  : Class ;
+  fun Organism_Class : SubClass Organism (both Agent OrganicObject) ;
+
+  -- A physiologic function of the 
+  -- Organism as a whole, of multiple organ systems or of multiple 
+  -- Organs or Tissues.
+  fun OrganismProcess  : Class ;
+  fun OrganismProcess_Class : SubClass OrganismProcess PhysiologicProcess ;
+
+  -- An Organization is a corporate or similar 
+  -- institution. The members of an Organization typically have a common 
+  -- purpose or function. Note that this class also covers divisions, departments, 
+  -- etc. of organizations. For example, both the Shell Corporation and the 
+  -- accounting department at Shell would both be instances of Organization. 
+  -- Note too that the existence of an Organization is dependent on the existence 
+  -- of at least one member (since Organization is a subclass of Collection). 
+  -- Accordingly, in cases of purely legal organizations, a fictitious member 
+  -- should be assumed.
+  fun Organization  : Class ;
+  fun Organization_Class : SubClass Organization (both CognitiveAgent Group) ;
+
+  -- An IntentionalProcess that involves an Organization.
+  fun OrganizationalProcess  : Class ;
+  fun OrganizationalProcess_Class : SubClass OrganizationalProcess IntentionalProcess ;
+
+  -- English unit of volume equal to 1/8 of a Cup.
+  fun Ounce  : Ind UnitOfVolume ;
+
+  -- The class of ClosedTwoDimensionalFigures that are 
+  -- produced by the intersection of a Cone with a ClosedTwoDimensionalFigure.
+  fun Oval  : Class ;
+  fun Oval_Class : SubClass Oval ClosedTwoDimensionalFigure ;
+
+  -- A TimeZone that covers much of the 
+  -- western part of the United States.
+  fun PacificTimeZone  : Ind TimeZone ;
+
+  -- A SetOrClass is a PairwiseDisjointClass 
+  -- just in case every instance of the SetOrClass is either equal to or disjoint 
+  -- from every other instance of the SetOrClass.
+  fun PairwiseDisjointClass  : Class ;
+  fun PairwiseDisjointClass_Class : SubClass PairwiseDisjointClass SetOrClass ;
+
+  -- An Organization which is much like 
+  -- a MilitaryOrganization, e.g. it is made up of armed fighters, except that it 
+  -- is not associated with a Government.
+  fun ParamilitaryOrganization  : Class ;
+  fun ParamilitaryOrganization_Class : SubClass ParamilitaryOrganization MilitaryForce ;
+
+  -- An umbrella Class for any Word that does not 
+  -- fit into the other subclasses of Word. A ParticleWord is generally a small 
+  -- term that serves a grammatical or logical function, e.g. 'and', 'of', 
+  -- 'since', etc. At some point, this class might be broken up into the 
+  -- subclasses 'Connective', 'Preposition', etc. Note that the class ParticleWord 
+  -- includes both personal and possessive pronouns, e.g. 'she', 'hers', 'it', 'its', 
+  -- etc.
+  fun ParticleWord  : Class ;
+  fun ParticleWord_Class : SubClass ParticleWord Word ;
+
+  -- SI pressure measure. Symbol:Pa. It is the 
+  -- pressure of one Newton per square Meter. Pascal = N/m^2 
+  -- = m^(_1)*kg*s^(_2).
+  fun Pascal  : Ind CompositeUnitOfMeasure ;
+
+  -- A UnaryFunction that maps a TimePosition 
+  -- to the TimeInterval that meets it and that begins at 
+  -- NegativeInfinity.
+  fun PastFn  : El TimePosition -> Ind TimeInterval ;
+
+  -- A Certificate that expresses the content of an 
+  -- invention that has been accorded legal protection by a governemental 
+  -- entity.
+  fun Patent  : Class ;
+  fun Patent_Class : SubClass Patent Certificate ;
+
+  -- A UnaryFunction that maps a GraphPath to 
+  -- the sum of the arcWeights on the GraphArcs in the GraphPath.
+  fun PathWeightFn  : El GraphPath -> Ind Quantity ;
+
+  -- A disordered process, activity, or 
+  -- state of the Organism as a whole, of a body system or systems, or of 
+  -- multiple Organs or Tissues. Included here are normal responses to a 
+  -- negative stimulus as well as patholologic conditions or states that are 
+  -- less specific than a disease. Pathologic functions frequently have 
+  -- systemic effects.
+  fun PathologicProcess  : Class ;
+  fun PathologicProcess_Class : SubClass PathologicProcess BiologicalProcess ;
+
+  -- PerFn maps two instances of PhysicalQuantity to 
+  -- the FunctionQuantity composed of these two instances. For example, 
+  -- (PerFn (MeasureFn 2 (MicroFn Gram)) (MeasureFn 1 (KiloFn 
+  -- Gram))) denotes the FunctionQuantity of 2 micrograms per kiogram. 
+  -- This function is useful, because it allows the knowledge engineer to 
+  -- dynamically generate instances of FunctionQuantity.
+  fun PerFn  : El PhysicalQuantity -> El PhysicalQuantity -> Ind FunctionQuantity ;
+
+  -- Sensing some aspect of the material world. 
+  -- Note that the agent of this sensing is assumed to be an Animal.
+  fun Perception  : Class ;
+  fun Perception_Class : SubClass Perception PsychologicalProcess ;
+
+  -- Any Attribute whose presence is detected 
+  -- by an act of Perception.
+  fun PerceptualAttribute  : Class ;
+  fun PerceptualAttribute_Class : SubClass PerceptualAttribute InternalAttribute ;
+
+  -- A Series whose elements are published separately 
+  -- and on a periodic basis.
+  fun Periodical  : Class ;
+  fun Periodical_Class : SubClass Periodical Series ;
+
+  -- A BinaryFunction that maps a subclass of 
+  -- Periodical and a number to all of the issues of the Periodical corresponding 
+  -- to the number.
+  fun PeriodicalIssueFn : Desc Periodical -> El PositiveInteger -> Desc Periodical ;
+
+  -- A Residence where people live, i.e. 
+  -- where people have a home.
+  fun PermanentResidence  : Class ;
+  fun PermanentResidence_Class : SubClass PermanentResidence Residence ;
+
+  -- Attribute that applies to Propositions that an 
+  -- Agent is permitted, by some authority, to make true.
+  fun Permission  : Ind DeonticAttribute ;
+
+  -- A set of Words in a Language which form a unit, 
+  -- i.e. express a meaning in the Language.
+  fun Phrase  : Class ;
+  fun Phrase_Class : SubClass Phrase LinguisticExpression ;
+
+  -- An entity that has a location in space_time. 
+  -- Note that locations are themselves understood to have a location in 
+  -- space_time.
+  fun Physical  : Class ;
+  fun Physical_Class : SubClass Physical Entity ;
+
+  -- An InternalAttribute given by physical
+  -- properties of the object.
+  fun PhysicalAttribute  : Class ;
+  fun PhysicalAttribute_Class : SubClass PhysicalAttribute InternalAttribute ;
+
+  -- A PhysicalQuantity is a measure of 
+  -- some quantifiable aspect of the modeled world, such as 'the earth's 
+  -- diameter' (a constant length) and 'the stress in a loaded deformable 
+  -- solid' (a measure of stress, which is a function of three spatial 
+  -- coordinates). Every PhysicalQuantity is either a ConstantQuantity
+  -- or FunctionQuantity. Instances of ConstantQuantity are dependent 
+  -- on a UnitOfMeasure, while instances of FunctionQuantity are 
+  -- Functions that map instances of ConstantQuantity to other instances 
+  -- of ConstantQuantity (e.g., a TimeDependentQuantity is a
+  -- FunctionQuantity). Although the name and definition of 
+  -- PhysicalQuantity is borrowed from physics, a PhysicalQuantity need 
+  -- not be material. Aside from the dimensions of length, time, velocity, 
+  -- etc., nonphysical dimensions such as currency are also possible. 
+  -- Accordingly, amounts of money would be instances of PhysicalQuantity. 
+  -- A PhysicalQuantity is distinguished from a pure Number by the fact that 
+  -- the former is associated with a dimension of measurement.
+  fun PhysicalQuantity  : Class ;
+  fun PhysicalQuantity_Class : SubClass PhysicalQuantity Quantity ;
+
+  -- The physical state of an Object. There 
+  -- are three reified instances of this Class: Solid, Liquid, and Gas. 
+  -- Physical changes are not characterized by the transformation of one 
+  -- substance into another, but rather by the change of the form (physical 
+  -- states) of a given substance. For example, melting an iron nail yields a 
+  -- substance still called iron.
+  fun PhysicalState  : Class ;
+  fun PhysicalState_Class : SubClass PhysicalState InternalAttribute ;
+
+  -- PhysicalSystem is the class of complex 
+  -- Physical things. A PhysicalSystem may have one or more 
+  -- corresponding abstract Graph representations.
+  fun PhysicalSystem  : Class ;
+  fun PhysicalSystem_Class : SubClass PhysicalSystem Physical ;
+
+  -- A normal process of an Organism 
+  -- or part of an Organism.
+  fun PhysiologicProcess  : Class ;
+  fun PhysiologicProcess_Class : SubClass PhysiologicProcess BiologicalProcess ;
+
+  -- Pi is the RealNumber that 
+  -- is the ratio of the perimeter of a circle to its diameter. It is 
+  -- approximately equal to 3.141592653589793.
+  fun Pi  : Ind PositiveRealNumber ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure into 
+  -- a UnitOfMeasure that is equal to .000000000001 units of the original 
+  -- UnitOfMeasure. For example, (PicoFn SecondDuration) is .000000000001 
+  -- SecondDurations.
+  fun PicoFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- English unit of volume equal to 1/2 of a 
+  -- Quart.
+  fun Pint  : Ind UnitOfVolume ;
+
+  -- A specification of a sequence of Processes which 
+  -- is intended to satisfy a specified purpose at some future time.
+  fun Plan  : Class ;
+  fun Plan_Class : SubClass Plan Procedure ;
+
+  -- The value of an angle in a plane.
+  fun PlaneAngleMeasure  : Class ;
+  fun PlaneAngleMeasure_Class : SubClass PlaneAngleMeasure AngleMeasure ;
+
+  -- Specifying a set of actions in order to meet a 
+  -- set of goals or objectives.
+  fun Planning  : Class ;
+  fun Planning_Class : SubClass Planning IntentionalPsychologicalProcess ;
+
+  -- An Organism having cellulose cell walls, growing 
+  -- by synthesis of Substances, generally distinguished by the presence of 
+  -- chlorophyll, and lacking the power of locomotion.
+  fun Plant : Class ;
+  def Plant = KappaFn Organism (\PLANT -> and (forall PlantSubstance           (\SUBSTANCE -> part (var PlantSubstance Object ? SUBSTANCE)
+                                                                                                   (var Organism Object ? PLANT)))
+                                              (forall PlantAnatomicalStructure (\STRUCTURE -> part (var PlantAnatomicalStructure Object ? STRUCTURE)
+                                                                                                   (var Organism Object ? PLANT)))) ;
+
+  -- AnatomicalStructures that 
+  -- are possessed exclusively by Plants.
+  fun PlantAnatomicalStructure  : Class ;
+  fun PlantAnatomicalStructure_Class : SubClass PlantAnatomicalStructure AnatomicalStructure ;
+
+  -- BodySubstances that are produced 
+  -- exclusively by Plants.
+  fun PlantSubstance  : Class ;
+  fun PlantSubstance_Class : SubClass PlantSubstance BodySubstance ;
+
+  -- An extremely energetic PhysicalState that consists 
+  -- of atomic nuclei stripped of electrons. That is, a plasma is composed of 
+  -- positive ions and free electrons. Plasma behaves differently enough from 
+  -- Gas that it is referred to as the fourth state of matter.
+  fun Plasma  : Ind PhysicalState ;
+
+  -- The shape of an Object with this Attribute 
+  -- can easily be altered.
+  fun Pliable  : Ind InternalAttribute ;
+
+  -- A Poisoning is caused by an external 
+  -- substance. Since Poisoning is not possible without some biologic 
+  -- function which affects the Organism being injured, it is a subclass 
+  -- of BiologicalProcess.
+  fun Poisoning  : Class ;
+  fun Poisoning_Class : SubClass Poisoning Injuring ;
+
+  -- The Class of Processes where the agent
+  -- pierces the surface of the Object with an instrument.
+  fun Poking  : Class ;
+  fun Poking_Class : SubClass Poking IntentionalProcess ;
+
+  -- Any GovernmentOrganization 
+  -- that is charged with domestic enforcement of the laws of the Government.
+  fun PoliceOrganization  : Class ;
+  fun PoliceOrganization_Class : SubClass PoliceOrganization GovernmentOrganization ;
+
+  -- An Organization that is attempting to bring about some sort 
+  -- of political change.
+  fun PoliticalOrganization  : Class ;
+  fun PoliticalOrganization_Class : SubClass PoliticalOrganization Organization ;
+
+  -- An OrganizationalProcess carried 
+  -- out by, for or against officially constituted governments. Some examples 
+  -- would be voting on proposed legislation, electing a government representative, 
+  -- or even overthrowing a government in a revolution.
+  fun PoliticalProcess  : Class ;
+  fun PoliticalProcess_Class : SubClass PoliticalProcess OrganizationalProcess ;
+
+  -- A powder produced by FloweringPlants that contains male 
+  -- gametes and is capable of fertilizing the seeds of FloweringPlants of the same 
+  -- species.
+  fun Pollen  : Class ;
+  fun Pollen_Class : SubClass Pollen (both PlantAnatomicalStructure ReproductiveBody) ;
+
+  -- An Object with this Attribute has 
+  -- different colors on different parts of its surface.
+  fun Polychromatic  : Ind ColorAttribute ;
+
+  -- A formal position of reponsibility within an 
+  -- Organization. Examples of Positions include president, laboratory 
+  -- director, senior researcher, sales representative, etc.
+  fun Position  : Class ;
+  fun Position_Class : SubClass Position SocialRole ;
+
+  -- Attributes characterizing the 
+  -- orientation of an Object, e.g. Vertical versus Horizontal, Left 
+  -- versus Right etc.
+  fun PositionalAttribute : Class ;
+  fun PositionalAttribute_Class : SubClass PositionalAttribute RelationalAttribute ;
+
+  -- The TimePoint that is after all other TimePoints.
+  fun PositiveInfinity : Ind TimePoint ;
+
+  -- An Integer that is greater than zero.
+  fun PositiveInteger : Class ;
+  fun PositiveInteger_Class : SubClass PositiveInteger (both NonnegativeInteger PositiveRealNumber) ;
+
+  -- A RealNumber that is greater than 
+  -- zero.
+  fun PositiveRealNumber : Class ;
+  def PositiveRealNumber = KappaFn NonnegativeRealNumber (\NUMBER -> greaterThan (var NonnegativeRealNumber Quantity ? NUMBER)
+                                                                                 (el Integer Quantity ? (toInt 0)));
+
+  -- Attribute that applies to Propositions that are 
+  -- possible, i.e. true in at least one possible world.
+  fun Possibility : Ind AlethicAttribute ;
+
+  -- English pound of force. The conversion
+  -- factor depends on the local value of the acceleration of free fall. A
+  -- mean value is used in the conversion axiom associated with this 
+  -- constant.
+  fun PoundForce : Ind CompositeUnitOfMeasure ;
+
+  -- English mass unit of pounds.
+  fun PoundMass : Ind UnitOfMass ;
+
+  -- (PowerSetFn ?CLASS) maps the SetOrClass 
+  -- ?CLASS to the SetOrClass of all subclasses of ?CLASS.
+  fun PowerSetFn : El SetOrClass -> Desc SetOrClass ;
+
+  -- Precipitation is the process of 
+  -- water molecules falling from the air to the ground, in either a 
+  -- liquid or frozen state.
+  fun Precipitation  : Class ;
+  fun Precipitation_Class : SubClass Precipitation (both Falling (both WaterMotion WeatherProcess)) ;
+
+  -- A unary function that maps an Integer to 
+  -- its predecessor, e.g. the predecessor of 5 is 4.
+  fun PredecessorFn  : El Integer -> Ind Integer ;
+
+  -- The Class of IntentionalPsychologicalProcesses 
+  -- which involve the formulation of a Proposition about a state of affairs 
+  -- which might be realized in the future.
+  fun Predicting  : Class ;
+  fun Predicting_Class : SubClass Predicting IntentionalPsychologicalProcess ;
+
+  -- (PremisesFn ?ARGUMENT) returns the complete 
+  -- set of premises of the Argument ?ARGUMENT.
+  fun PremisesFn  : El Argument -> Ind Proposition ;
+
+  -- A Phrase that begins with a 
+  -- preposition and that functions as an Adjective or an Adverb.
+  fun PrepositionalPhrase  : Class ;
+  fun PrepositionalPhrase_Class : SubClass PrepositionalPhrase Phrase ;
+
+  -- Any SocialInteraction where a 
+  -- CognitiveAgent or Group of CognitiveAgents attempts to make 
+  -- another CognitiveAgent or Group of CognitiveAgents believe 
+  -- something that is false. This covers deceit, affectation, 
+  -- impersonation, and entertainment productions, to give just a few 
+  -- examples.
+  fun Pretending  : Class ;
+  fun Pretending_Class : SubClass Pretending SocialInteraction ;
+
+  -- Colors which can be blended to form any 
+  -- color and which cannot be derived from any other colors.
+  fun PrimaryColor  : Class ;
+  fun PrimaryColor_Class : SubClass PrimaryColor ColorAttribute ;
+
+  -- The Class of Mammals which are 
+  -- Primates.
+  fun Primate  : Class ;
+  fun Primate_Class : SubClass Primate Mammal ;
+
+  -- An Integer that is evenly divisible only 
+  -- by itself and 1.
+  fun PrimeNumber  : Class ;
+  fun PrimeNumber_Class : SubClass PrimeNumber Integer ;
+
+  -- A class containing all of the Attributes 
+  -- relating to objective, qualitative assessments of probability, e.g. Likely and 
+  -- Unlikely.
+  fun ProbabilityAttribute  : Class ;
+  fun ProbabilityAttribute_Class : SubClass ProbabilityAttribute ObjectiveNorm ;
+
+  -- One of the basic ProbabilityRelations, 
+  -- ProbabilityFn is used to state the a priori probability of a state of 
+  -- affairs. (ProbabilityFn ?FORMULA) denotes the a priori probability 
+  -- of ?FORMULA.
+  fun ProbabilityFn  : Formula -> Ind RealNumber ;
+
+  -- A sequence_dependent specification. Some 
+  -- examples are ComputerPrograms, finite_state machines, cooking recipes, 
+  -- musical scores, conference schedules, driving directions, and the scripts 
+  -- of plays and movies.
+  fun Procedure  : Class ;
+  fun Procedure_Class : SubClass Procedure Proposition ;
+
+  -- The class of things that happen 
+  -- and have temporal parts or stages. Examples include extended events 
+  -- like a football match or a race, actions like Pursuing and Reading, 
+  -- and biological processes. The formal definition is: anything that occurs in
+  -- time but is not an Object. Note that a Process may have 
+  -- participants 'inside' it which are Objects, such as the players 
+  -- in a football match. In a 4D ontology, a Process is something whose 
+  -- spatiotemporal extent is thought of as dividing into temporal stages 
+  -- roughly perpendicular to the time_axis.
+  fun Process  : Class ;
+  fun Process_Class : SubClass Process Physical ;
+
+  -- An Artifact that is produced by Manufacture.
+  fun Product  : Class ;
+  fun Product_Class : SubClass Product Artifact ;
+
+  -- Prohibition is the DeonticAttribute that 
+  -- applies to Formulas that an Agent is forbidden, by some authority, 
+  -- to make true.
+  fun Prohibition  : Ind DeonticAttribute ;
+
+  -- Attribute that applies to Propositions that 
+  -- an Agent promises to make true. Promises may be implicit or explicit. 
+  -- They may be expressed in a written or verbal or gestural manner.
+  fun Promise  : Ind DeonticAttribute ;
+
+  -- A UnaryFunction that maps an Agent to the 
+  -- Set of Objects owned by the Agent.
+  fun PropertyFn  : El Agent -> Ind Set ;
+
+  -- Propositions are Abstract entities that 
+  -- express a complete thought or a set of such thoughts. As an example, 
+  -- the formula '(instance Yojo Cat)' expresses the Proposition that the 
+  -- entity named Yojo is an element of the Class of Cats. Note that 
+  -- propositions are not restricted to the content expressed by individual 
+  -- sentences of a Language. They may encompass the content expressed by 
+  -- theories, books, and even whole libraries. It is important to distinguish 
+  -- Propositions from the ContentBearingObjects that express them. A 
+  -- Proposition is a piece of information, e.g. that the cat is on the mat, 
+  -- but a ContentBearingObject is an Object that represents this information. 
+  -- A Proposition is an abstraction that may have multiple representations: 
+  -- strings, sounds, icons, etc. For example, the Proposition that the cat is 
+  -- on the mat is represented here as a string of graphical characters displayed 
+  -- on a monitor and/or printed on paper, but it can be represented by a sequence 
+  -- of sounds or by some non_latin alphabet or by some cryptographic form
+  fun Proposition  : Class ;
+  fun Proposition_Class : SubClass Proposition Abstract ;
+
+  -- The BodyPosition of lying down, being in a 
+  -- horizontal position.
+  fun Prostrate  : Ind BodyPosition ;
+
+  -- A Nutrient made up of amino acids joined by 
+  -- peptide bonds.
+  fun Protein  : Class ;
+  fun Protein_Class : SubClass Protein Nutrient ;
+
+  -- Components of the AtomicNucleus. They have a 
+  -- positive charge.
+  fun Proton  : Class ;
+  fun Proton_Class : SubClass Proton SubatomicParticle ;
+
+  -- The Class of pseudographs. A pseudograph 
+  -- is a Graph containing at least one GraphLoop.
+  fun PseudoGraph  : Class ;
+  fun PseudoGraph_Class : SubClass PseudoGraph Graph ;
+
+  -- Attributes that characterize the mental 
+  -- or behavioral life of an Organism.
+  fun PsychologicalAttribute  : Class ;
+  fun PsychologicalAttribute_Class : SubClass PsychologicalAttribute BiologicalAttribute ;
+
+  -- A clinically significant 
+  -- dysfunction whose major manifestation is behavioral or psychological. 
+  -- These dysfunctions may have identified or presumed biological etiologies 
+  -- or manifestations.
+  fun PsychologicalDysfunction  : Class ;
+  fun PsychologicalDysfunction_Class : SubClass PsychologicalDysfunction (both DiseaseOrSyndrome PsychologicalAttribute) ;
+
+  -- A BiologicalProcess which takes place in 
+  -- the mind or brain of an Organism and which may be manifested in the behavior 
+  -- of the Organism.
+  fun PsychologicalProcess  : Class ;
+  fun PsychologicalProcess_Class : SubClass PsychologicalProcess BiologicalProcess ;
+
+  -- The Manufacture of Texts. Note that 
+  -- there is no implication that the Texts are distributed. Such 
+  -- distribution, when it occurs, is an instance of Dissemination.
+  fun Publication  : Class ;
+  fun Publication_Class : SubClass Publication (both ContentDevelopment Manufacture) ;
+
+  -- A Contract between two Agents in 
+  -- which one Agent agrees to render the other some good or service in 
+  -- exchange for currency.
+  fun PurchaseContract  : Ind DeonticAttribute ;
+
+  -- The Class of Substances with constant 
+  -- composition. A PureSubstance can be either an element (ElementalSubstance) 
+  -- or a compound of elements (CompoundSubstance). Examples: Table salt 
+  -- (sodium chloride, NaCl), sugar (sucrose, C_{12}H_{22}O_{11}), water (H_2O), 
+  -- iron (Fe), copper (Cu), and oxygen (O_2).
+  fun PureSubstance  : Class ;
+  fun PureSubstance_Class : SubClass PureSubstance Substance ;
+
+  -- The class of IntentionalProcesses where something is 
+  -- sought. Some examples would be hunting, shopping, trawling, and stalking.
+  fun Pursuing  : Class ;
+  fun Pursuing_Class : SubClass Pursuing IntentionalProcess ;
+
+  -- The Class of Processes where something is put 
+  -- in a location. Note that the location is specified with the CaseRole 
+  -- destination.
+  fun Putting  : Class ;
+  fun Putting_Class : SubClass Putting Transfer ;
+
+  -- Any specification of how many or how much of 
+  -- something there is. Accordingly, there are two subclasses of Quantity: 
+  -- Number (how many) and PhysicalQuantity (how much).
+  fun Quantity  : Class ;
+  fun Quantity_Class : SubClass Quantity Abstract ;
+
+  -- Any InternalChange where a PhysicalQuantity 
+  -- associated with the patient is altered.
+  fun QuantityChange  : Class ;
+  fun QuantityChange_Class : SubClass QuantityChange InternalChange ;
+
+  -- English unit of volume equal to 1/4 of a 
+  -- UnitedStatesGallon.
+  fun Quart  : Ind UnitOfVolume ;
+
+  -- A request for information. For example, John asked 
+  -- Bill if the President had said anything about taxes in his State of the Union 
+  -- address.
+  fun Questioning  : Class ;
+  fun Questioning_Class : SubClass Questioning Directing ;
+
+  -- SI plane angle measure. Symbol: rad. It is the 
+  -- angle of a circle subtended by an arc equal in length to the circle's 
+  -- radius. Another definition is: the plane angle between two radii of a 
+  -- circle which cut off on the circumference an arc equal in length to the 
+  -- radius. Radian = m/m = 1.
+  fun Radian  : Ind UnitOfAngularMeasure ;
+
+  -- Processes in which some form of electromagnetic 
+  -- radiation, e.g. radio waves, light waves, electrical energy, etc., is given 
+  -- off or absorbed by something else.
+  fun Radiating  : Class ;
+  fun Radiating_Class : SubClass Radiating Motion ;
+
+  -- RadiatingElectromagnetic 
+  -- is the subclass of Radiating processes in which electromagnetic 
+  -- radiation is transmitted or absorbed.
+  fun RadiatingElectromagnetic  : Class ;
+  fun RadiatingElectromagnetic_Class : SubClass RadiatingElectromagnetic Radiating ;
+
+  -- Any instance of Radiating where the 
+  -- wavelengths are longer than those of visible light and shorter than those 
+  -- of radio emissions.
+  fun RadiatingInfrared  : Class ;
+  fun RadiatingInfrared_Class : SubClass RadiatingInfrared RadiatingElectromagnetic ;
+
+  -- The subclass of Radiating in which 
+  -- light is given off or absorbed. Some examples include blinking, flashing, 
+  -- and glittering.
+  fun RadiatingLight  : Class ;
+  fun RadiatingLight_Class : SubClass RadiatingLight RadiatingElectromagnetic ;
+
+  -- Releasing atomic energy, i.e. energy from 
+  -- a nuclear reaction.
+  fun RadiatingNuclear  : Class ;
+  fun RadiatingNuclear_Class : SubClass RadiatingNuclear Radiating ;
+
+  -- The subclass of Radiating in which 
+  -- sound waves are given off or absorbed. Some examples include creaking, 
+  -- roaring, and whistling.
+  fun RadiatingSound  : Class ;
+  fun RadiatingSound_Class : SubClass RadiatingSound Radiating ;
+
+  fun RadiatingXRay  : Class ;
+  fun RadiatingXRay_Class : SubClass RadiatingXRay RadiatingElectromagnetic ;
+
+  -- A TemperatureMeasure. Note that 0 RankineDegrees is
+  -- the same as the absolute zero (i.e. 0 KelvinDegrees).
+  fun RankineDegree  : Ind UnitOfTemperature ;
+
+  -- Any RealNumber that is the product of 
+  -- dividing two Integers.
+  fun RationalNumber  : Class ;
+  fun RationalNumber_Class : SubClass RationalNumber RealNumber ;
+
+  -- (RationalNumberFn ?NUMBER) returns 
+  -- the rational representation of ?NUMBER.
+  fun RationalNumberFn  : El Number -> Ind RationalNumber ;
+
+  -- A subclass of ContentDevelopment in which 
+  -- content is converted from a written form into a spoken representation. 
+  -- Note that the class Interpreting should be used in cases where a 
+  -- Text is read silently.
+  fun Reading  : Class ;
+  fun Reading_Class : SubClass Reading ContentDevelopment ;
+
+  -- Any Number that can be expressed as a 
+  -- (possibly infinite) decimal, i.e. any Number that has a position 
+  -- on the number line.
+  fun RealNumber  : Class ;
+  fun RealNumber_Class : SubClass RealNumber Number ;
+
+  -- (RealNumberFn ?NUMBER) returns the part of 
+  -- ?NUMBER that is a RealNumber.
+  fun RealNumberFn  : El Number -> Ind RealNumber ;
+
+  -- The Class of IntentionalPsychologicalProcesses 
+  -- which involve concluding, on the basis of either deductive or inductive 
+  -- evidence, that a particular Proposition or Sentence is true.
+  fun Reasoning  : Class ;
+  fun Reasoning_Class : SubClass Reasoning IntentionalPsychologicalProcess ;
+
+  -- (ReciprocalFn ?NUMBER) is the reciprocal 
+  -- element of ?NUMBER with respect to the multiplication operator 
+  -- (MultiplicationFn), i.e. 1/?NUMBER. Not all numbers have a reciprocal 
+  -- element. For example the number 0 does not. If a number ?NUMBER has a 
+  -- reciprocal ?RECIP, then the product of ?NUMBER and ?RECIP will be 
+  -- 1, e.g. 3*1/3 = 1. The reciprocal of an element is equal to 
+  -- applying the ExponentiationFn function to the element to the power 
+  -- _1.
+  fun ReciprocalFn  : El Quantity -> Ind Quantity ;
+
+  -- A Process that is carried out for 
+  -- the purpose of recreation or exercise. Since RecreationOrExercise is a 
+  -- subclass of IntentionalProcess, the intent of a process determines whether 
+  -- or not it is an instance of the class. Hence, if John and Bill watch the same 
+  -- program on television, and John watches it to relax while Bill watches it solely 
+  -- to satisfy an educational requirement, then John's watching the movie is an 
+  -- instance of RecreationOrExercise, while Bill's is not (both cases of 
+  -- watching the television program would however be in the class of Seeing, since 
+  -- being an instance of this latter class is not determined by intention).
+  fun RecreationOrExercise  : Class ;
+  fun RecreationOrExercise_Class : SubClass RecreationOrExercise IntentionalProcess ;
+
+  -- A function that is useful for generating 
+  -- recurring time intervals. For example, (RecurrentTimeIntervalFn (HourFn 6 Day) 
+  -- (HourFn 12 Day)) returns the Class of TimeIntervals beginning at 6 in the 
+  -- morning and ending at 12 noon. For another example, (RecurrentTimeInterval 
+  -- Saturday Sunday) returns the Class of all weekends. For still another example, 
+  -- (RecurrentTimeInterval June August) returns the Class containing the academic 
+  -- summer period.
+  fun RecurrentTimeIntervalFn : Desc TimeInterval -> Desc TimeInterval -> Desc TimeInterval ;
+
+  -- The Attribute of redness.
+  fun Red  : Ind PrimaryColor ;
+
+  -- A topographic location. Regions encompass 
+  -- surfaces of Objects, imaginary places, and GeographicAreas. Note 
+  -- that a Region is the only kind of Object which can be located at 
+  -- itself. Note too that Region is not a subclass of SelfConnectedObject, 
+  -- because some Regions, e.g. archipelagos, have parts which are not 
+  -- connected with one another.
+  fun Region  : Class ;
+  fun Region_Class : SubClass Region Object ;
+
+  -- an Guiding whose aim is the enforcement 
+  -- of rules or regulations. Note the key differences between RegulatoryProcess 
+  -- and the related concept Managing. The latter implies a long_term relationship 
+  -- between a single manager and limited number of agents who are managed, while the 
+  -- former implies a normative standard to which the activities of the regulated are 
+  -- referred.
+  fun RegulatoryProcess  : Class ;
+  fun RegulatoryProcess_Class : SubClass RegulatoryProcess Guiding ;
+
+  -- Any Attribute that an Entity has by 
+  -- virtue of a relationship that it bears to another Entity or set of Entities, 
+  -- e.g. SocialRoles and PositionalAttributes.
+  fun RelationalAttribute  : Class ;
+  fun RelationalAttribute_Class : SubClass RelationalAttribute Attribute ;
+
+  -- A BinaryFunction that maps two 
+  -- SetOrClasses to the difference between these SetOrClasses. More 
+  -- precisely, (RelativeComplementFn ?CLASS1 ?CLASS2) denotes the instances 
+  -- of ?CLASS1 that are not also instances of ?CLASS2.
+  fun RelativeComplementFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
+
+  -- A means of converting TimePositions 
+  -- between different TimeZones. (RelativeTimeFn ?TIME ?ZONE) 
+  -- denotes the TimePosition in CoordinatedUniversalTime that is 
+  -- contemporaneous with the TimePosition ?TIME in TimeZone ?ZONE.
+  -- For example, (RelativeTimeFn (MeasureFn 14 HourDuration) EasternTimeZone) 
+  -- would return the value (MeasureFn 19 HourDuration).
+  fun RelativeTimeFn  : El TimePosition -> El TimeZone -> Ind TimePosition ;
+
+  -- Any instance of Transfer which results in 
+  -- a situation where it is not the case that the agent grasps something 
+  -- which he/she grasps previously.
+  fun Releasing  : Class ;
+  fun Releasing_Class : SubClass Releasing Transfer ;
+
+  -- An Organization whose members 
+  -- share a set of religious beliefs.
+  fun ReligiousOrganization  : Class ;
+  fun ReligiousOrganization_Class : SubClass ReligiousOrganization (both BeliefGroup Organization) ;
+
+  -- An OrganizationalProcess that is 
+  -- carried out within or by a ReligiousOrganization.
+  fun ReligiousProcess  : Class ;
+  fun ReligiousProcess_Class : SubClass ReligiousProcess OrganizationalProcess ;
+
+  -- (RemainderFn ?NUMBER ?DIVISOR) is the 
+  -- remainder of the number ?NUMBER divided by the number ?DIVISOR. 
+  -- The result has the same sign as ?DIVISOR.
+  fun RemainderFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- The Class of PsychologicalProcesses which 
+  -- involve the recollection of prior experiences and/or of knowledge 
+  -- which was previously acquired.
+  fun Remembering  : Class ;
+  fun Remembering_Class : SubClass Remembering PsychologicalProcess ;
+
+  -- The Class of Processes where something is 
+  -- taken away from a location. Note that the thing removed and the location 
+  -- are specified with the CaseRoles patient and origin, respectively.
+  fun Removing  : Class ;
+  fun Removing_Class : SubClass Removing Transfer ;
+
+  -- The Class of Processes where the agent 
+  -- makes a modification or series of modifications to an Object that is not 
+  -- functioning as intended so that it works properly.
+  fun Repairing  : Class ;
+  fun Repairing_Class : SubClass Repairing IntentionalProcess ;
+
+  -- The Process of biological reproduction. 
+  -- This can be either a sexual or an asexual process.
+  fun Replication  : Class ;
+  fun Replication_Class : SubClass Replication OrganismProcess ;
+
+  -- Any ArtWork that represents 
+  -- something Physical.
+  fun RepresentationalArtWork  : Class ;
+  fun RepresentationalArtWork_Class : SubClass RepresentationalArtWork (both ArtWork Icon) ;
+
+  -- Reproductive structure of Organisms. 
+  -- Consists of an Embryonic Object and a nutritive/protective envelope. 
+  -- Note that this class includes seeds, spores, and FruitOrVegetables, as 
+  -- well as the eggs produced by Animals.
+  fun ReproductiveBody  : Class ;
+  fun ReproductiveBody_Class : SubClass ReproductiveBody BodyPart ;
+
+  -- A ColdBloodedVertebrate having an external 
+  -- covering of scales or horny plates. Reptiles breathe by means of 
+  -- Lungs and generally lay eggs.
+  fun Reptile  : Class ;
+  fun Reptile_Class : SubClass Reptile ColdBloodedVertebrate ;
+
+  -- A request expresses a desire that some future 
+  -- action be performed. For example, the 5th Battalion requested air support 
+  -- from the 3rd Bomber Group. Note that this class covers proposals, 
+  -- recommendations, suggestions, etc.
+  fun Requesting  : Class ;
+  fun Requesting_Class : SubClass Requesting Directing ;
+
+  -- A Building or part of a Building which provides 
+  -- some accomodation for sleeping.
+  fun Residence  : Class ;
+  fun Residence_Class : SubClass Residence StationaryArtifact ;
+
+  -- A Building which provides some 
+  -- accomodation for sleeping. Note that this class does not cover just 
+  -- permanent residences, e.g. Houses and condominium and apartment buildings, 
+  -- but also temporary residences, e.g. hotels and dormitories. 
+  -- ResidentialBuildings are also distinguished from CommercialBuildings, 
+  -- which are intended to serve an organizational rather than a residential 
+  -- function.
+  fun ResidentialBuilding  : Class ;
+  fun ResidentialBuilding_Class : SubClass ResidentialBuilding (both Building Residence) ;
+
+  -- This PositionalAttribute is derived from the 
+  -- left/right schema. Note that this means directly to the right, so that, 
+  -- if one object is to the right of another, then the projections of the 
+  -- two objects overlap.
+  fun Right  : Ind AntiSymmetricPositionalAttribute ;
+
+  -- The shape of an Object with this Attribute 
+  -- cannot be altered without breaking.
+  fun Rigid  : Ind InternalAttribute ;
+
+  -- Roadway is the subclass of LandTransitways 
+  -- that are areas intended for surface travel by self_powered, wheeled 
+  -- vehicles, excluding those that travel on tracks. Roadways have been 
+  -- at least minimally improved to enable the passage of vehicles. 
+  -- Roadways include dirt and gravelled roads, paved streets, and 
+  -- expressways.
+  fun Roadway  : Class ;
+  fun Roadway_Class : SubClass Roadway LandTransitway ;
+
+  -- The Class of Mammals with one or two pairs 
+  -- of incisors for gnawing. Includes rats, mice, guinea pigs, and 
+  -- rabbits.
+  fun Rodent  : Class ;
+  fun Rodent_Class : SubClass Rodent Mammal ;
+
+  -- A properPart of a Building which is separated from 
+  -- the exterior of the Building and/or other Rooms of the Building by walls. 
+  -- Some Rooms may have a specific purpose, e.g. sleeping, bathing, cooking, 
+  -- entertainment, etc.
+  fun Room  : Class ;
+  fun Room_Class : SubClass Room StationaryArtifact ;
+
+  -- An Object with this Attribute has a rough 
+  -- surface.
+  fun Rough  : Ind TextureAttribute ;
+
+  -- (RoundFn ?NUMBER) is the Integer closest 
+  -- to ?NUMBER on the number line. If ?NUMBER is halfway between two 
+  -- Integers (for example 3.5), it denotes the larger Integer.
+  fun RoundFn  : El Quantity -> Ind Quantity ;
+
+  -- Ambulating relatively quickly, i.e. moving in such a 
+  -- way that, with each step, neither foot is in contact with the ground for a 
+  -- period of time.
+  fun Running  : Class ;
+  fun Running_Class : SubClass Running Ambulating ;
+
+  -- A WaterArea whose Water is saline, e.g. 
+  -- oceans and seas.
+  fun SaltWaterArea  : Class ;
+  fun SaltWaterArea_Class : SubClass SaltWaterArea WaterArea ;
+
+  -- A Class of Attributes that specify, in 
+  -- a qualitative manner, the extent of the presence of one kind of Object in 
+  -- another kind of Object.
+  fun SaturationAttribute  : Class ;
+  fun SaturationAttribute_Class : SubClass SaturationAttribute InternalAttribute ;
+
+  -- The Class of all calendar Saturdays.
+  fun Saturday  : Class ;
+  fun Saturday_Class : SubClass Saturday Day ;
+
+  -- The Class of all clock Seconds.
+  fun Second  : Class ;
+  fun Second_Class : SubClass Second TimeInterval ;
+
+  -- SI UnitOfDuration. Symbol: s. 
+  -- It is one of the base units in SI, and it is currently defined as 
+  -- follows: the SecondDuration is the duration of 9192631770 periods of 
+  -- the radiation corresponding to the transition between the two hyperfine 
+  -- levels of the ground state of the cesium 133 atom.
+  fun SecondDuration  : Ind UnitOfDuration ;
+
+  -- A BinaryFunction that assigns a PositiveRealNumber and a 
+  -- subclass of Minutes to the Seconds within each Minute corresponding to that 
+  -- PositiveRealNumber. For example, (SecondFn 4 (MinuteFn 5 Hour)) is the Class 
+  -- of all fourth Seconds of every fifth Minute of every hour. For another example, 
+  -- (SecondFn 8 Minute) would return the eighth second of every minute. For still 
+  -- another example, 
+  --
+  -- (SecondFn 9 (MinuteFn 15 (HourFn 14 (DayFn 18 (MonthFn August (YearFn 1912)))))) 
+  --
+  -- denotes 9 seconds and 15 minutes after 2 PM on the 18th day of August 1912.
+  fun SecondFn : El PositiveRealNumber -> Desc Minute -> Desc Second ;
+
+  -- The fertilized or unfertilized female ReproductiveBody 
+  -- of a FloweringPlant.
+  fun Seed  : Class ;
+  fun Seed_Class : SubClass Seed (both PlantAnatomicalStructure ReproductiveBody) ;
+
+  -- The subclass of Perception in which the 
+  -- sensing is done by an ocular Organ.
+  fun Seeing  : Class ;
+  fun Seeing_Class : SubClass Seeing Perception ;
+
+  -- The Class of IntentionalPsychologicalProcesses 
+  -- which involve opting for one or more Entity out of a larger set of Entities. 
+  -- Note that this covers all cases of judging or evaluating.
+  fun Selecting  : Class ;
+  fun Selecting_Class : SubClass Selecting IntentionalPsychologicalProcess ;
+
+  -- A SelfConnectedObject is any 
+  -- Object that does not consist of two or more disconnected parts.
+  fun SelfConnectedObject  : Class ;
+  fun SelfConnectedObject_Class : SubClass SelfConnectedObject Object ;
+
+  -- A FinancialTransaction in which an instance of 
+  -- Physical is exchanged for an instance of CurrencyMeasure.
+  fun Selling  : Class ;
+  fun Selling_Class : SubClass Selling FinancialTransaction ;
+
+  -- A syntactically well_formed formula of a 
+  -- Language. It includes, at minimum, a predicate and a subject (which 
+  -- may be explicit or implicit), and it expresses a Proposition.
+  fun Sentence  : Class ;
+  fun Sentence_Class : SubClass Sentence LinguisticExpression ;
+
+  -- An Agent that has rights but may or may 
+  -- not have responsibilities and the ability to reason. If the latter are 
+  -- present, then the Agent is also an instance of CognitiveAgent. 
+  -- Domesticated animals are an example of SentientAgents that are not 
+  -- also CognitiveAgents.
+  fun SentientAgent  : Class ;
+  fun SentientAgent_Class : SubClass SentientAgent Agent ;
+
+  -- A Process where a SelfConnectedObject is 
+  -- separated into (some of) its parts. Note that Separating is different 
+  -- from Detaching in that the latter only results in the two objects not 
+  -- being connected. Note too that Separating is different from 
+  -- Removing in that one or both of the two things which are separated 
+  -- may or may not be moved from the location where they were separated.
+  fun Separating  : Class ;
+  fun Separating_Class : SubClass Separating DualObjectProcess ;
+
+  -- The Class of all Months which are September.
+  fun September  : Class ;
+  fun September_Class : SubClass September Month ;
+
+  -- A Text consisting of multiple self_contained units. 
+  -- Some examples are an encyclopedia containing a couple dozen volumes, a television 
+  -- series made up of many episodes, a film serial, etc.
+  fun Series  : Class ;
+  fun Series_Class : SubClass Series Text ;
+
+  -- A BinaryFunction that maps a type of Series 
+  -- (e.g. the Encyclopedia_Britannica or the Popular_Mechanics periodical) and a 
+  -- number to the volumes of the text type designated by the number.
+  fun SeriesVolumeFn : Desc Series -> El PositiveInteger -> Desc Text ;
+
+  -- ServiceProcess denotes the class
+  -- of events in which one agent performs a service for another. The
+  -- service need not be commercial, and it need not be the case that
+  -- the serviceRecipient pays or recompenses the serviceProvider
+  -- for the service.
+  fun ServiceProcess  : Class ;
+  fun ServiceProcess_Class : SubClass ServiceProcess SocialInteraction ;
+
+  -- A SetOrClass that satisfies extensionality as well as
+  -- other constraints specified by some choice of set theory. Sets differ 
+  -- from Classes in two important respects. First, Sets are extensional _ 
+  -- two Sets with the same elements are identical. Second, a Set can be 
+  -- an arbitrary stock of objects. That is, there is no requirement that Sets 
+  -- have an associated condition that determines their membership. Note that Sets 
+  -- are not assumed to be unique sets, i.e. elements of a Set may occur more 
+  -- than once in the Set.
+  fun Set  : Class ;
+  fun Set_Class : SubClass Set SetOrClass ;
+
+  -- The SetOrClass of Sets
+  -- and Classes, i.e. any instance of Abstract that has elements or
+  -- instances.
+  fun SetOrClass  : Class ;
+  fun SetOrClass_Class : SubClass SetOrClass Abstract ;
+
+  -- Attributes that indicate the sex of an 
+  -- Organism.
+  fun SexAttribute  : Class ;
+  fun SexAttribute_Class : SubClass SexAttribute BiologicalAttribute ;
+
+  -- Sexual Processes of biological 
+  -- reproduction.
+  fun SexualReproduction  : Class ;
+  fun SexualReproduction_Class : SubClass SexualReproduction Replication ;
+
+  -- Any Attribute that relates to the 
+  -- shape of an Object.
+  fun ShapeAttribute  : Class ;
+  fun ShapeAttribute_Class : SubClass ShapeAttribute InternalAttribute ;
+
+  -- The Process of changing the shape of an Object.
+  fun ShapeChange  : Class ;
+  fun ShapeChange_Class : SubClass ShapeChange InternalChange ;
+
+  -- The subclass of Impelling where the patient 
+  -- is a projectile that is fired through the air by means of some sort of 
+  -- Device.
+  fun Shooting  : Class ;
+  fun Shooting_Class : SubClass Shooting Impelling ;
+
+  -- A ShoreArea is a LandArea approximately 
+  -- 1_3 km wide bordering a body of water, such as an ocean, bay, river, 
+  -- or lake. A ShoreArea may comprise a variety of LandForms, such as dunes, 
+  -- sloughs, and marshes.
+  fun ShoreArea  : Class ;
+  fun ShoreArea_Class : SubClass ShoreArea LandArea ;
+
+  -- SI electric conductance measure. Symbol: S. 
+  -- In the case of direct current, the conductance in Siemens is the 
+  -- reciprocal of the resistance in Ohms, in the case of alternating current, 
+  -- it is the reciprocal of the impedance in ohms. siemens = A/V = 
+  -- m^(_2)*kg(_1)*s^(3)*A^2.
+  fun Siemens  : Ind CompositeUnitOfMeasure ;
+
+  -- SI dose equivalent measure. Symbol: Sv. It is 
+  -- a unit of biologic dose of ionizing radiation. The Sievert makes it 
+  -- possible to normalize doses of different types of radiation. It takes 
+  -- into account the relative biologic effectiveness of ionizing radiation, 
+  -- since each form of such radiation__e.g., X rays, gamma rays, neutrons__
+  -- has a slightly different effect on living tissue for a given absorbed 
+  -- dose. The dose equivalent of a given type of radiation (in Sievert) is 
+  -- the dose of the radiation in Gray multiplied by a quality factor that 
+  -- is based on the relative biologic effectiveness of the radiation. 
+  -- Accordingly, one Sievert is generally defined as the amount of radiation 
+  -- roughly equivalent in biologic effectiveness to one Gray of gamma 
+  -- radiation. Sievert = J/kg = m^2*s^(_2)
+  fun Sievert  : Ind CompositeUnitOfMeasure ;
+
+  -- (SignumFn ?NUMBER) denotes the sign of ?NUMBER. 
+  -- This is one of the following values: _1, 1, or 0.
+  fun SignumFn  : El RealNumber -> Ind Integer ;
+
+  -- (SineFn ?DEGREE) is the sine of the 
+  -- PlaneAngleMeasure ?DEGREE. The sine of ?DEGREE is the ratio of the side 
+  -- opposite ?DEGREE to the hypotenuse in a right_angled triangle.
+  fun SineFn  : El PlaneAngleMeasure -> Ind RealNumber ;
+
+  -- Speaking that is also Music.
+  fun Singing  : Class ;
+  fun Singing_Class : SubClass Singing (both Music Speaking) ;
+
+  -- SingleAgentProcess 
+  -- is the Class of all Processes that require exactly one agent in order to occur.
+  fun SingleAgentProcess  : Class ;
+  fun SingleAgentProcess_Class : SubClass SingleAgentProcess Process ;
+
+  -- A PermanentResidence which is 
+  -- intended to be the home of a single SocialUnit. This class covers 
+  -- Houses, ApartmentUnits, and CondominiumUnits.
+  fun SingleFamilyResidence  : Class ;
+  fun SingleFamilyResidence_Class : SubClass SingleFamilyResidence PermanentResidence ;
+
+  -- The BodyPosition of being recumbent, i.e. 
+  -- knees bent and back side supported.
+  fun Sitting  : Ind BodyPosition ;
+
+  -- The system of Bones that make up the supporting structure 
+  -- of Vertebrates.
+  fun Skeleton  : Class ;
+  fun Skeleton_Class : SubClass Skeleton (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- English mass unit of slugs.
+  fun Slug  : Ind UnitOfMass ;
+
+  -- The subclass of Perception in which the 
+  -- sensing is done by an olefactory Organ.
+  fun Smelling  : Class ;
+  fun Smelling_Class : SubClass Smelling Perception ;
+
+  -- A mixture of fine particles suspended in a gas that is 
+  -- produced by Combustion.
+  fun Smoke  : Class ;
+  fun Smoke_Class : SubClass Smoke Cloud ;
+
+  -- An Object with this Attribute has a smooth 
+  -- surface.
+  fun Smooth  : Ind TextureAttribute ;
+
+  -- The subclass of 
+  -- IntentionalProcess that involves interactions between 
+  -- CognitiveAgents.
+  fun SocialInteraction  : Class ;
+  fun SocialInteraction_Class : SubClass SocialInteraction IntentionalProcess ;
+
+  -- The Class of all Attributes that 
+  -- specify the position or status of a CognitiveAgent within an 
+  -- Organization or other Group.
+  fun SocialRole  : Class ;
+  fun SocialRole_Class : SubClass SocialRole RelationalAttribute ;
+
+  -- A GroupOfPeople who all have the same home.
+  fun SocialUnit  : Class ;
+  fun SocialUnit_Class : SubClass SocialUnit GroupOfPeople ;
+
+  -- An Object has the Attribute of Solid if it 
+  -- has a fixed shape and a fixed volume.
+  fun Solid  : Ind PhysicalState ;
+
+  -- The value of an angle in a solid.
+  fun SolidAngleMeasure  : Class ;
+  fun SolidAngleMeasure_Class : SubClass SolidAngleMeasure AngleMeasure ;
+
+  -- A liquid mixture. The most abundant component in 
+  -- a solution is called the solvent. Other components are called solutes. 
+  -- A solution, though homogeneous, may nonetheless have variable composition. 
+  -- Any amount of salt, up to a maximum limit, can be dissolved in a given 
+  -- amount of water.
+  fun Solution  : Class ;
+  fun Solution_Class : SubClass Solution LiquidMixture ;
+
+  -- The volume of sound relative to a listener.
+  fun SoundAttribute  : Class ;
+  fun SoundAttribute_Class : SubClass SoundAttribute RelationalAttribute ;
+
+  -- The compass direction of South.
+  fun South  : Ind DirectionalAttribute ;
+
+  -- Any LinguisticGeneration which is also a 
+  -- Vocalizing, i.e. any LinguisticCommunication by a Human which 
+  -- involves his/her vocal cords.
+  fun Speaking  : Class ;
+  fun Speaking_Class : SubClass Speaking (both LinguisticCommunication Vocalizing) ;
+
+  -- Maps an instance of LengthMeasure and an instance of 
+  -- TimeDuration to the speed represented by this proportion of distance and time. 
+  -- For example, (SpeedFn (MeasureFn 55 Mile)(MeasureFn 1 HourDuration)) 
+  -- represents the velocity of 55 miles per hour.
+  fun SpeedFn  : El LengthMeasure -> El TimeDuration -> Ind FunctionQuantity ;
+
+  -- A flexible column made out of bones called 
+  -- vertebrae. The main function of the SpinalColumn is to protect the 
+  -- spinal cord.
+  fun SpinalColumn  : Class ;
+  fun SpinalColumn_Class : SubClass SpinalColumn (both AnimalAnatomicalStructure Organ) ;
+
+  -- A SpokenHumanLanguage is a
+  -- HumanLanguage which has as its medium the human voice. It can also 
+  -- berepresented visually through writing, although not all 
+  -- SpokenHumanLanguages have a codified written form.
+  fun SpokenHumanLanguage  : Class ;
+  fun SpokenHumanLanguage_Class : SubClass SpokenHumanLanguage HumanLanguage ;
+
+  -- Any ReproductiveBody of a NonFloweringPlant.
+  fun Spore  : Class ;
+  fun Spore_Class : SubClass Spore (both PlantAnatomicalStructure ReproductiveBody) ;
+
+  -- A Game which requires some degree of physical 
+  -- exercion from the participants of the game.
+  fun Sport  : Class ;
+  fun Sport_Class : SubClass Sport Game ;
+
+  -- (SquareRootFn ?NUMBER) is the principal 
+  -- square root of ?NUMBER.
+  fun SquareRootFn  : El RealNumber -> Ind Number ;
+
+  -- The BodyPosition of being upright, i.e. being 
+  -- fully extended and supported by nothing other than one's own feet.
+  fun Standing  : Ind BodyPosition ;
+
+  -- Any Process where the PhysicalState 
+  -- of part of the patient of the Process changes.
+  fun StateChange  : Class ;
+  fun StateChange_Class : SubClass StateChange InternalChange ;
+
+  -- The class StateOfMind is distinguished from 
+  -- its complement TraitAttribute by the fact that instances of the former are 
+  -- transient while instances of the latter are persistent features of a creature's behavioral/psychological make_up.
+  fun StateOfMind  : Class ;
+  fun StateOfMind_Class : SubClass StateOfMind PsychologicalAttribute ;
+
+  -- Administrative subdivisions of a 
+  -- Nation that are broader than any other political subdivisions that 
+  -- may exist. This Class includes the states of the United States, as 
+  -- well as the provinces of Canada and European countries.
+  fun StateOrProvince  : Class ;
+  fun StateOrProvince_Class : SubClass StateOrProvince (both GeopoliticalArea LandArea) ;
+
+  -- A WaterArea in which water does not flow 
+  -- constantly or in the same direction, e.g. most lakes and ponds.
+  fun StaticWaterArea  : Class ;
+  fun StaticWaterArea_Class : SubClass StaticWaterArea WaterArea ;
+
+  -- Instances of this Class commit the agent to some truth. 
+  -- For example, John claimed that the moon is made of green cheese.
+  fun Stating  : Class ;
+  fun Stating_Class : SubClass Stating LinguisticCommunication ;
+
+  -- A StationaryArtifact is an Artifact 
+  -- that has a fixed spatial location. Most instances of this Class are 
+  -- architectural works, e.g. the Eiffel Tower, the Great Pyramids, office towers, 
+  -- single_family houses, etc.
+  fun StationaryArtifact  : Class ;
+  fun StationaryArtifact_Class : SubClass StationaryArtifact Artifact ;
+
+  -- SI solid angle measure. Symbol: sr. It is 
+  -- the solid angle of a sphere subtended by a portion of the surface whose 
+  -- area is equal to the square of the sphere's radius. Another definition 
+  -- is: the solid angle which, having its vertex in the center of the sphere, 
+  -- cuts off an area of the surface of the sphere equal to that of a square 
+  -- with sides of length equal to the radius of the sphere. Steradian = 
+  -- m^2/m^2 = 1.
+  fun Steradian  : Ind UnitOfAngularMeasure ;
+
+  -- A relatively narrow WaterArea where the 
+  -- water flows constantly and in the same direction, e.g. a river, a stream, 
+  -- etc.
+  fun StreamWaterArea  : Class ;
+  fun StreamWaterArea_Class : SubClass StreamWaterArea (both FlowRegion WaterArea) ;
+
+  -- The class of ElementalSubstances that 
+  -- are smaller than Atoms and compose Atoms.
+  fun SubatomicParticle  : Class ;
+  fun SubatomicParticle_Class : SubClass SubatomicParticle ElementalSubstance ;
+
+  -- The Class of NormativeAttributes
+  -- which lack an objective criterion for their attribution, i.e. the attribution of 
+  -- these Attributes varies from subject to subject and even with respect to the 
+  -- same subject over time. This Class is, generally speaking, only used when 
+  -- mapping external knowledge sources to the SUMO. If a term from such a knowledge 
+  -- source seems to lack objective criteria for its attribution, it is assigned to 
+  -- this Class.
+  fun SubjectiveAssessmentAttribute  : Class ;
+  fun SubjectiveAssessmentAttribute_Class : SubClass SubjectiveAssessmentAttribute NormativeAttribute ;
+
+  -- An Object in which every part is similar to 
+  -- every other in every relevant respect. More precisely, something is a 
+  -- Substance when it has only arbitrary pieces as parts _ any parts have 
+  -- properties which are similar to those of the whole. Note that a Substance 
+  -- may nonetheless have physical properties that vary. For example, the 
+  -- temperature, chemical constitution, density, etc. may change from one part 
+  -- to another. An example would be a body of water.
+  fun Substance  : Class ;
+  fun Substance_Class : SubClass Substance SelfConnectedObject ;
+
+  -- The Class of Transfers where one thing is 
+  -- replaced with something else.
+  fun Substituting  : Class ;
+  fun Substituting_Class : SubClass Substituting (both DualObjectProcess Transfer) ;
+
+  -- If ?NUMBER1 and ?NUMBER2 are Numbers, 
+  -- then (SubtractionFn ?NUMBER1 ?NUMBER2) is the arithmetical difference 
+  -- between ?NUMBER1 and ?NUMBER2, i.e. ?NUMBER1 minus ?NUMBER2. An 
+  -- exception occurs when ?NUMBER1 is equal to 0, in which case 
+  -- (SubtractionFn ?NUMBER1 ?NUMBER2) is the negation of ?NUMBER2.
+  fun SubtractionFn  : El Quantity -> El Quantity -> Ind Quantity ;
+
+  -- A UnaryFunction that maps an Integer to 
+  -- its successor, e.g. the successor of 5 is 6.
+  fun SuccessorFn  : El Integer -> Ind Integer ;
+
+  -- A short Text that is a summary of another, 
+  -- longer Text.
+  fun Summary  : Class ;
+  fun Summary_Class : SubClass Summary Text ;
+
+  -- The Class of all calendar Sundays.
+  fun Sunday  : Class ;
+  fun Sunday_Class : SubClass Sunday Day ;
+
+  -- Instances of this Class suppose, for the sake of 
+  -- argument, that a proposition is true. For example, John considered what he 
+  -- would do if he won the lottery.
+  fun Supposing  : Class ;
+  fun Supposing_Class : SubClass Supposing LinguisticCommunication ;
+
+  -- Processes which involve altering 
+  -- the properties that apply to the surface of an Object.
+  fun SurfaceChange  : Class ;
+  fun SurfaceChange_Class : SubClass SurfaceChange InternalChange ;
+
+  -- Any TherapeuticProcess that involves making an 
+  -- incision in the Animal that is the patient of the TherapeuticProcess.
+  fun Surgery  : Class ;
+  fun Surgery_Class : SubClass Surgery TherapeuticProcess ;
+
+  -- A LiquidMixture where at least one of the 
+  -- components of the Mixture is equally distributed throughout the Mixture 
+  -- but is not dissolved in it.
+  fun Suspension  : Class ;
+  fun Suspension_Class : SubClass Suspension LiquidMixture ;
+
+  -- Any deliberate and controlled BodyMotion 
+  -- through water that is accomplished by an Organism.
+  fun Swimming  : Class ;
+  fun Swimming_Class : SubClass Swimming BodyMotion ;
+
+  -- The Class of alphanumeric sequences.
+  fun SymbolicString  : Class ;
+  fun SymbolicString_Class : SubClass SymbolicString ContentBearingObject ;
+
+  -- SymmetricAttribute is the class of 
+  -- PositionalAttribute that hold between two items regardless of their 
+  -- order or orientation.
+  fun SymmetricPositionalAttribute  : Class ;
+  fun SymmetricPositionalAttribute_Class : SubClass SymmetricPositionalAttribute PositionalAttribute ;
+
+  -- Any Substance that is the result of an 
+  -- IntentionalProcess, i.e. any substance that is created by Humans.
+  fun SyntheticSubstance : Class ;
+  def SyntheticSubstance = KappaFn Substance (\SUBSTANCE -> exists IntentionalProcess
+                                                                   (\PROCESS -> result (var IntentionalProcess Process ? PROCESS)
+                                                                                        (var Substance Entity ? SUBSTANCE))) ;
+
+  -- The Class of Systeme 
+  -- International (SI) units.
+  fun SystemeInternationalUnit  : Class ;
+  fun SystemeInternationalUnit_Class : SubClass SystemeInternationalUnit UnitOfMeasure ;
+
+  -- The subclass of Perception in which 
+  -- the sensing is done by Touching. Note that Touching need not involve 
+  -- TactilePerception. For example, a person who has lost all sensation in 
+  -- both of his legs would have no TactilePerception of anything his legs 
+  -- were Touching.
+  fun TactilePerception  : Class ;
+  fun TactilePerception_Class : SubClass TactilePerception Perception ;
+
+  -- (TangentFn ?DEGREE) is the tangent of the 
+  -- PlaneAngleMeasure ?DEGREE. The tangent of ?DEGREE is the ratio of 
+  -- the side opposite ?DEGREE to the side next to ?DEGREE in a right_angled 
+  -- triangle.
+  fun TangentFn  : El PlaneAngleMeasure -> Ind RealNumber ;
+
+  -- The Class of Attributes relating to 
+  -- the taste of Objects.
+  fun TasteAttribute  : Class ;
+  fun TasteAttribute_Class : SubClass TasteAttribute PerceptualAttribute ;
+
+  -- The subclass of Perception in which the 
+  -- sensing is done by of an Organ which can discriminate various tastes.
+  fun Tasting  : Class ;
+  fun Tasting_Class : SubClass Tasting Perception ;
+
+  -- Measures of temperature. 
+  -- In scientific circles, the temperature of something is understood as the 
+  -- average velocity of the atoms or molecules that make up the thing.
+  fun TemperatureMeasure  : Class ;
+  fun TemperatureMeasure_Class : SubClass TemperatureMeasure ConstantQuantity ;
+
+  -- The basic Function for expressing 
+  -- the composition of larger TimeIntervals out of smaller TimeIntervals. 
+  -- For example, if ThisSeptember is an instance of September, 
+  -- (TemporalCompositionFn ThisSeptember Day) denotes the Class of 
+  -- consecutive days that make up ThisSeptember. Note that one can obtain 
+  -- the number of instances of this Class by using the function CardinalityFn.
+  fun TemporalCompositionFn : El TimeInterval -> Desc TimeInterval -> Desc TimeInterval ;
+
+  -- A Residence which is strictly temporary, 
+  -- i.e. where no one makes his/her home.
+  fun TemporaryResidence  : Class ;
+  fun TemporaryResidence_Class : SubClass TemporaryResidence Residence ;
+
+  -- A UnaryFunction that maps a UnitOfMeasure 
+  -- into a UnitOfMeasure that is equal to 1,000,000,000,000 units of the original 
+  -- UnitOfMeasure. For example, (TeraFn Hertz) is 1,000,000,000,000 Hertz.
+  fun TeraFn  : El UnitOfMeasure -> Ind UnitOfMeasure;
+
+  -- A UnaryFunction that maps a 
+  -- GraphArc to the terminal node of the GraphArc. Note that this 
+  -- is a partial function. In particular, the function is undefined 
+  -- for GraphArcs that are not part of a DirectedGraph.
+  fun TerminalNodeFn  : El GraphArc -> Ind GraphNode ;
+
+  -- OrganizationalProcesses where someone 
+  -- ceases to be an employee of an Organization. Note that this covers being 
+  -- laid off, being fired, and voluntarily leaving a job.
+  fun TerminatingEmployment  : Class ;
+  fun TerminatingEmployment_Class : SubClass TerminatingEmployment LeavingAnOrganization ;
+
+  -- SI magnetic flux density measure. Symbol: T.
+  -- One Tesla equals one Weber per square Meter. Tesla = Wb/m^2 = 
+  -- kg*s^(_2)*A^(_1).
+  fun Tesla  : Ind CompositeUnitOfMeasure ;
+
+  -- A LinguisticExpression or set of 
+  -- LinguisticExpressions that perform a specific function related 
+  -- to Communication, e.g. express a discourse about a particular 
+  -- topic, and that are inscribed in a CorpuscularObject by Humans.
+  fun Text  : Class ;
+  fun Text_Class : SubClass Text (both Artifact (both ContentBearingObject LinguisticExpression)) ;
+
+  -- Any Attribute that characterizes the 
+  -- texture of an Object.
+  fun TextureAttribute  : Class ;
+  fun TextureAttribute_Class : SubClass TextureAttribute PerceptualAttribute ;
+
+  -- A Process that is carried out 
+  -- for the purpose of curing, improving or reducing the pain associated 
+  -- with a DiseaseOrSyndrome.
+  fun TherapeuticProcess  : Class ;
+  fun TherapeuticProcess_Class : SubClass TherapeuticProcess Repairing ;
+
+  -- The class of GeometricFigures that 
+  -- have position and an extension along three dimensions, viz. geometric solids 
+  -- like polyhedrons and cylinders.
+  fun ThreeDimensionalFigure  : Class ;
+  fun ThreeDimensionalFigure_Class : SubClass ThreeDimensionalFigure GeometricFigure ;
+
+  -- The Class of all calendar Thursdays.
+  fun Thursday  : Class ;
+  fun Thursday_Class : SubClass Thursday Day ;
+
+  -- A UnaryConstantFunctionQuantity of continuous time. All instances of
+  -- this Class are returned by Functions that map a time quantity into
+  -- another ConstantQuantity such as temperature. For example, 'the
+  -- temperature at the top of the Empire State Building' is a
+  -- TimeDependentQuantity, since its value depends on the time.
+  fun TimeDependentQuantity  : Class ;
+  fun TimeDependentQuantity_Class : SubClass TimeDependentQuantity UnaryConstantFunctionQuantity ;
+
+  -- Any measure of length of time, 
+  -- with or without respect to the universal timeline.
+  fun TimeDuration  : Class ;
+  fun TimeDuration_Class : SubClass TimeDuration TimeMeasure ;
+
+  -- An interval of time.
+  -- Note that a TimeInterval has both an extent and a location on the
+  -- universal timeline. Note too that a TimeInterval has no gaps,
+  -- i.e. this class contains only convex time intervals.
+  fun TimeInterval  : Class ;
+  fun TimeInterval_Class : SubClass TimeInterval TimePosition ;
+
+  -- A BinaryFunction that takes two TimePoints 
+  -- as arguments and returns the TimeInterval defined by these two TimePoints. 
+  -- Note that the first TimePoint must occur earlier than the second TimePoint.
+  fun TimeIntervalFn  : El TimePoint -> El TimePoint -> Ind TimeInterval ;
+
+  -- The class of temporal durations (instances 
+  -- of TimeDuration) and positions of TimePoints and TimeIntervals along 
+  -- the universal timeline (instances of TimePosition).
+  fun TimeMeasure  : Class ;
+  fun TimeMeasure_Class : SubClass TimeMeasure ConstantQuantity ;
+
+  -- An extensionless point on
+  -- the universal timeline. The TimePoints at which Processes occur
+  -- can be known with various degrees of precision and approximation, but
+  -- conceptually TimePoints are point_like and not interval_like. That
+  -- is, it doesn't make sense to talk about how long a TimePoint
+  -- lasts.
+  fun TimePoint  : Class ;
+  fun TimePoint_Class : SubClass TimePoint TimePosition ;
+
+  -- Any TimePoint or TimeInterval 
+  -- along the universal timeline from NegativeInfinity to 
+  -- PositiveInfinity.
+  fun TimePosition  : Class ;
+  fun TimePosition_Class : SubClass TimePosition TimeMeasure ;
+
+  -- An Attribute which is used to specify coordinates 
+  -- in which time measures are uniform, i.e. all time devices are synchronized to 
+  -- the same TimePositions.
+  fun TimeZone  : Class ;
+  fun TimeZone_Class : SubClass TimeZone RelationalAttribute ;
+
+  -- An aggregation of similarly specialized Cells 
+  -- and the associated intercellular substance. Tissues are relatively 
+  -- non_localized in comparison to BodyParts, Organs or Organ components. 
+  -- The main features of Tissues are self_connectivity (see 
+  -- SelfConnectedObject) and being a homogeneous mass (all parts in the 
+  -- same granularity are instances of Tissue as well).
+  fun Tissue  : Class ;
+  fun Tissue_Class : SubClass Tissue BodySubstance ;
+
+  -- Any Transfer where two Objects are 
+  -- brought into immediate physical contact with one another.
+  fun Touching  : Class ;
+  fun Touching_Class : SubClass Touching Transfer ;
+
+  -- Attributes that indicate the the 
+  -- behavior/personality traits of an Organism.
+  fun TraitAttribute  : Class ;
+  fun TraitAttribute_Class : SubClass TraitAttribute PsychologicalAttribute ;
+
+  -- The subclass of ChangeOfPossession where 
+  -- something is exchanged for something else.
+  fun Transaction  : Class ;
+  fun Transaction_Class : SubClass Transaction (both ChangeOfPossession DualObjectProcess) ;
+
+  -- Any instance of Translocation where the agent 
+  -- and the patient are not the same thing.
+  fun Transfer  : Class ;
+  fun Transfer_Class : SubClass Transfer Translocation ;
+
+  -- Transitway is the broadest class 
+  -- of regions which may be passed through as a path in instances 
+  -- of Translocation. Transitway includes land, air, and sea 
+  -- regions, and it includes both natural and artificial transitways.
+  fun Transitway  : Class ;
+  fun Transitway_Class : SubClass Transitway (both Region SelfConnectedObject) ;
+
+  -- Converting content from one Language into another. 
+  -- This covers oral translation (i.e. interpreting) as well as written translation.
+  fun Translating  : Class ;
+  fun Translating_Class : SubClass Translating (both ContentDevelopment DualObjectProcess) ;
+
+  -- Translocation is that class of Motions 
+  -- in which an object moves from one place to another. In the case of round 
+  -- trips, the origin and destination are the same, but the intervening 
+  -- motion passes through other locations. Translocation represents linear 
+  -- motion, in contrast to rotation or other movement in place. A vehicle is 
+  -- not necessary, Ambulating is a kind of Translocation.
+  fun Translocation  : Class ;
+  fun Translocation_Class : SubClass Translocation Motion ;
+
+  -- Motion from one point to another by means 
+  -- of a TransportationDevice.
+  fun Transportation  : Class ;
+  fun Transportation_Class : SubClass Transportation Translocation ;
+
+  -- A TransportationDevice is a Device 
+  -- which serves as the instrument in a Transportation Process which carries 
+  -- the patient of the Process from one point to another.
+  fun TransportationDevice  : Class ;
+  fun TransportationDevice_Class : SubClass TransportationDevice Device ;
+
+  -- A Tree is a DirectedGraph that has no 
+  -- GraphLoops.
+  fun Tree  : Class ;
+  fun Tree_Class : SubClass Tree Graph ;
+
+  -- The TruthValue of being true.
+  fun True  : Ind TruthValue ;
+
+  -- The Class of truth values, e.g. True and 
+  -- False. These are Attributes of Sentences and Propositions.
+  fun TruthValue  : Class ;
+  fun TruthValue_Class : SubClass TruthValue RelationalAttribute ;
+
+  -- The Class of all calendar Tuesdays.
+  fun Tuesday  : Class ;
+  fun Tuesday_Class : SubClass Tuesday Day ;
+
+  -- Any two OneDimensionalFigures (i.e. 
+  -- straight lines) meeting at a single GeometricPoint.
+  fun TwoDimensionalAngle  : Class ;
+  fun TwoDimensionalAngle_Class : SubClass TwoDimensionalAngle OpenTwoDimensionalFigure ;
+
+  -- The class of GeometricFigures that 
+  -- have position and an extension along two dimensions, viz. plane figures 
+  -- like circles and polygons.
+  fun TwoDimensionalFigure  : Class ;
+  fun TwoDimensionalFigure_Class : SubClass TwoDimensionalFigure GeometricFigure ;
+
+  -- A subclass of FunctionQuantity, instances of which are returned by
+  -- UnaryFunctions that map from one instance of the Class
+  -- ConstantQuantity to another instance of the Class
+  -- ConstantQuantity.
+  fun UnaryConstantFunctionQuantity  : Class ;
+  fun UnaryConstantFunctionQuantity_Class : SubClass UnaryConstantFunctionQuantity FunctionQuantity ;
+
+  -- Attribute that applies to Organisms that 
+  -- are unconscious. An Organism may be Unconscious because it is Dead 
+  -- or because of a blow to the head, a drug, etc.
+  fun Unconscious  : Ind ConsciousnessAttribute ;
+
+  -- The Class of Removing processes where the agent 
+  -- uncovers the patient, either completely or only partially.
+  fun Uncovering  : Class ;
+  fun Uncovering_Class : SubClass Uncovering Removing ;
+
+  -- The Attribute of a CognitiveAgent when 
+  -- he/she is unemployed.
+  fun Unemployed  : Ind SocialRole ;
+
+  -- Any instance of Detaching which results in 
+  -- a situation where it is not the case that the agent grasps something 
+  -- which he/she grasps previously.
+  fun Ungrasping  : Class ;
+  fun Ungrasping_Class : SubClass Ungrasping Detaching ;
+
+  -- Any instance of Getting that is not part 
+  -- of a Transaction. In other words, any instance of Getting where nothing 
+  -- is given in return. Some examples of UnilateralGetting are: appropriating, 
+  -- commandeering, stealing, etc.
+  fun UnilateralGetting  : Class ;
+  fun UnilateralGetting_Class : SubClass UnilateralGetting Getting ;
+
+  -- Any instance of Giving that is not part 
+  -- of a Transaction. In other words, any instance of Giving where nothing 
+  -- is received in return. Some examples of UnilateralGiving are: honorary 
+  -- awards, gifts, and financial grants.
+  fun UnilateralGiving  : Class ;
+  fun UnilateralGiving_Class : SubClass UnilateralGiving Giving ;
+
+  -- The Attribute of Regions that are 
+  -- unilluminated, i.e in which no shapes are visually discernable.
+  fun Unilluminated  : Ind VisualAttribute ;
+
+  -- A BinaryFunction that maps two SetOrClasses to 
+  -- the union of these SetOrClasses. An object is an element of the union 
+  -- of two SetOrClasses just in case it is an instance of either SetOrClass.
+  fun UnionFn  : El SetOrClass -> El SetOrClass -> Ind SetOrClass ;
+
+  -- A List in which no item appears more than once, 
+  -- i.e. a List for which there are no distinct numbers ?NUMBER1 and ?NUMBER2 
+  -- such that (ListOrderFn ?LIST ?NUMBER1) and (ListOrderFn ?LIST ?NUMBER2) 
+  -- return the same value.
+  fun UniqueList  : Class ;
+  fun UniqueList_Class : SubClass UniqueList List ;
+
+  -- UnitFn returns just the UnitOfMeasure of a PhysicalQuantity with an associated
+  -- UnitOfMeasure and RealNumber magnitude. For example, the unit of
+  -- the ConstantQuantity (MeasureFn 2 Kilometer) is the
+  -- UnitOfMeasure Kilometer.
+  fun UnitFn  : El PhysicalQuantity -> Ind UnitOfMeasure ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used
+  -- with MeasureFn to form instances of AngleMeasure.
+  fun UnitOfAngularMeasure  : Class ;
+  fun UnitOfAngularMeasure_Class : SubClass UnitOfAngularMeasure NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of AreaMeasure.
+  fun UnitOfArea  : Class ;
+  fun UnitOfArea_Class : SubClass UnitOfArea CompositeUnitOfMeasure ;
+
+  -- UnitOfAtmosphericPressure includes those instances of
+  -- UnitOfMeasure used to measure atmospheric pressure (barometricPressure),
+  -- e.g., InchMercury.
+  fun UnitOfAtmosphericPressure  : Class ;
+  fun UnitOfAtmosphericPressure_Class : SubClass UnitOfAtmosphericPressure CompositeUnitOfMeasure ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of CurrencyMeasure.
+  fun UnitOfCurrency  : Class ;
+  fun UnitOfCurrency_Class : SubClass UnitOfCurrency NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of TimeDuration. Note that TimeDuration is a subclass of TimeMeasure.
+  fun UnitOfDuration  : Class ;
+  fun UnitOfDuration_Class : SubClass UnitOfDuration NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this
+  -- Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of FrequencyMeasure.
+  fun UnitOfFrequency  : Class ;
+  fun UnitOfFrequency_Class : SubClass UnitOfFrequency CompositeUnitOfMeasure ;
+
+  -- Every instance of this
+  -- Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of InformationMeasure.
+  fun UnitOfInformation  : Class ;
+  fun UnitOfInformation_Class : SubClass UnitOfInformation NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this
+  -- Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of LengthMeasure.
+  fun UnitOfLength  : Class ;
+  fun UnitOfLength_Class : SubClass UnitOfLength NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this
+  -- Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of MassMeasure, which denote the amount of matter in
+  -- PhysicalObjects.
+  fun UnitOfMass  : Class ;
+  fun UnitOfMass_Class : SubClass UnitOfMass NonCompositeUnitOfMeasure ;
+
+  -- A standard of measurement for some dimension. 
+  -- For example, the Meter is a UnitOfMeasure for the dimension of length, 
+  -- as is the Inch. There is no intrinsic property of a UnitOfMeasure that 
+  -- makes it primitive or fundamental, rather, a system of units (e.g. 
+  -- SystemeInternationalUnit) defines a set of orthogonal dimensions and 
+  -- assigns units for each.
+  fun UnitOfMeasure  : Class ;
+  fun UnitOfMeasure_Class : SubClass UnitOfMeasure PhysicalQuantity ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of TemperatureMeasure.
+  fun UnitOfTemperature  : Class ;
+  fun UnitOfTemperature_Class : SubClass UnitOfTemperature NonCompositeUnitOfMeasure ;
+
+  -- Every instance of this Class is a UnitOfMeasure that can be used with MeasureFn to form
+  -- instances of VolumeMeasure.
+  fun UnitOfVolume  : Class ;
+  fun UnitOfVolume_Class : SubClass UnitOfVolume CompositeUnitOfMeasure ;
+
+  -- Unit of volume commonly used in the United Kingdom.
+  fun UnitedKingdomGallon  : Ind UnitOfVolume ;
+
+  -- A currency measure. 1 UnitedStatesCent is equal to .01 UnitedStatesDollars.
+  fun UnitedStatesCent  : Ind UnitOfCurrency ;
+
+  -- A currency measure.
+  fun UnitedStatesDollar  : Ind UnitOfCurrency ;
+
+  -- Unit of volume commonly used in the United States.
+  fun UnitedStatesGallon  : Ind UnitOfVolume ;
+
+  -- The ProbabilityAttribute of being improbable, i.e. more 
+  -- likely than not to be False.
+  fun Unlikely  : Ind ProbabilityAttribute ;
+
+  -- A DeductiveArgument which is valid, i.e. the set of premises in fact entails the conclusion.
+  fun ValidDeductiveArgument  : Class ;
+  fun ValidDeductiveArgument_Class : SubClass ValidDeductiveArgument DeductiveArgument ;
+
+  -- Vehicle is the subclass of 
+  -- TransportationDevices that transport passengers or goods 
+  -- from one place to another by moving from one place to the other 
+  -- with them, e.g., cars, trucks, ferries, and airplanes. Contrast 
+  -- with devices such as pipelines, escalators, or supermarket 
+  -- checkout belts, which carry items from one place to another by means 
+  -- of a moving part, without the device removing from the origin to 
+  -- the destination.
+  fun Vehicle  : Class ;
+  fun Vehicle_Class : SubClass Vehicle TransportationDevice ;
+
+  -- Specifies the velocity of an object, i.e. the speed 
+  -- and the direction of the speed. For example (VelocityFn (MeasureFn 55 Mile) 
+  -- (MeasureFn 2 HourDuration) ?REFERENCE North) denotes the velocity of 55 miles 
+  -- per hour North of the given reference point ?REFERENCE.
+  fun VelocityFn  : El LengthMeasure -> El TimeDuration -> El Region -> El DirectionalAttribute -> Ind FunctionQuantity ;
+
+  -- One of the parts of speech. The Class of Words 
+  -- that conventionally denote Processes.
+  fun Verb  : Class ;
+  fun Verb_Class : SubClass Verb Word ;
+
+  -- A Phrase that has the same function as a Verb.
+  fun VerbPhrase  : Class ;
+  fun VerbPhrase_Class : SubClass VerbPhrase Phrase ;
+
+  -- An Animal which has a spinal column.
+  fun Vertebrate : Class ;
+  def Vertebrate = KappaFn Animal (\VERT -> and (and (and (exists SpinalColumn (\SPINE -> component (var SpinalColumn CorpuscularObject ? SPINE)
+                                                                                                    (var Animal CorpuscularObject ? VERT)))
+                                                          (forall NervousSystem (\S -> part (var NervousSystem Object ? S)
+                                                                                            (var Animal Object ? VERT))))
+                                                     (forall Skeleton (\SKELETON -> part (var Skeleton Object ? SKELETON)
+                                                                                         (var Animal Object ? VERT))))
+                                                (forall Exoskeleton (\SKELETON -> part (var Exoskeleton Object ? SKELETON)
+                                                                                       (var Animal Object ? VERT)))) ;
+
+  -- Attribute used to indicate that an Object 
+  -- is positioned height_wise with respect to another Object.
+  fun Vertical  : Ind PositionalAttribute ;
+
+  -- A Contest where one participant attempts to 
+  -- physically injure another participant.
+  fun ViolentContest  : Class ;
+  fun ViolentContest_Class : SubClass ViolentContest Contest ;
+
+  -- An Organism consisting of a core of a single 
+  -- nucleic acid enclosed in a protective coat of protein. A virus may replicate 
+  -- only inside a host living cell. A virus exhibits some but not all of the 
+  -- usual characteristics of living things.
+  fun Virus  : Class ;
+  fun Virus_Class : SubClass Virus Microorganism ;
+
+  -- The Class of visually discernible 
+  -- properties.
+  fun VisualAttribute  : Class ;
+  fun VisualAttribute_Class : SubClass VisualAttribute PerceptualAttribute ;
+
+  -- A Nutrient present in natural products or made 
+  -- synthetically, which is essential in the diet of Humans and other higher 
+  -- Animals. Included here are Vitamin precursors and provitamins.
+  fun Vitamin  : Class ;
+  fun Vitamin_Class : SubClass Vitamin Nutrient ;
+
+  -- The vocal cords, are composed
+  -- of two folds of mucous membrane stretched horizontally across the
+  -- larynx. They vibrate, modulating the flow of air being expelled from the
+  -- lungs during Vocalizing.
+  fun VocalCords  : Class ;
+  fun VocalCords_Class : SubClass VocalCords Organ ;
+
+  -- Any instance of RadiatingSound where the 
+  -- instrument is the Human vocal cords. This covers grunts, screams, 
+  -- roars, as well as Speaking.
+  fun Vocalizing  : Class ;
+  fun Vocalizing_Class : SubClass Vocalizing (both BodyMotion RadiatingSound) ;
+
+  -- SI electric potential measure. Symbol: V. It is 
+  -- the difference of electric potential between two points of a conducting 
+  -- wire carrying a constant current of 1 Ampere, when the power dissipated 
+  -- between these points is equal to 1 Watt. Volt = W/A = 
+  -- m^2*kg*s^(_3)*A^(_1).
+  fun Volt  : Ind CompositeUnitOfMeasure ;
+
+  -- Measures of the amount of space in three dimensions.
+  fun VolumeMeasure  : Class ;
+  fun VolumeMeasure_Class : SubClass VolumeMeasure FunctionQuantity ;
+
+  -- Voting is the activity of voting in an 
+  -- Election. Voting is typically done by individuals, while Elections 
+  -- are conducted by Organizations. The voting process by an individual 
+  -- voter is part of an Election process.
+  fun Voting  : Class ;
+  fun Voting_Class : SubClass Voting Deciding ;
+
+  -- Ambulating relatively slowly, i.e. moving in such a 
+  -- way that at least one foot is always in contact with the ground.
+  fun Walking  : Class ;
+  fun Walking_Class : SubClass Walking Ambulating ;
+
+  -- A military confrontation between two or more 
+  -- GeopoliticalAreas or Organizations whose members are GeopoliticalAreas. 
+  -- As the corresponding axiom specifies, a War is made up of Battles.
+  fun War  : Class ;
+  fun War_Class : SubClass War ViolentContest ;
+
+  -- Vertebrates whose body temperature 
+  -- is internally regulated.
+  fun WarmBloodedVertebrate  : Class ;
+  fun WarmBloodedVertebrate_Class : SubClass WarmBloodedVertebrate Vertebrate ;
+
+  -- A Contract that states the cirumstances 
+  -- under which defects in the product will be corrected for no charge. 
+  -- A Warranty is usually limited to a length of time that is specified 
+  -- in the Warranty itself. A Warranty also includes information about 
+  -- what is not covered and actions that invalidate the Warranty.
+  fun Warranty  : Ind DeonticAttribute ;
+
+  -- The Class of samples of the compound H20. Note 
+  -- that this Class covers both pure and impure Water.
+  fun Water  : Class ;
+  fun Water_Class : SubClass Water CompoundSubstance ;
+
+  -- A body which is made up predominantly of water, 
+  -- e.g. rivers, lakes, oceans, etc.
+  fun WaterArea  : Class ;
+  fun WaterArea_Class : SubClass WaterArea GeographicArea ;
+
+  -- Any Cloud that is composed primarily of water vapor.
+  fun WaterCloud  : Class ;
+  fun WaterCloud_Class : SubClass WaterCloud Cloud ;
+
+  -- Any LiquidMotion where the Liquid is Water.
+  fun WaterMotion  : Class ;
+  fun WaterMotion_Class : SubClass WaterMotion LiquidMotion ;
+
+  -- SI power measure. Symbol: W. A UnitOfMeasure 
+  -- that measures power, i.e. energy produced or expended divided by 
+  -- TimeDuration. It is the power which gives rise to the production 
+  -- of energy (or work) at the rate of one Joule per SecondDuration. 
+  -- Watt = J/s = m^2*kg*s^(_3).
+  fun Watt  : Ind CompositeUnitOfMeasure ;
+
+  -- A UnaryFunction that maps an Agent to a 
+  -- CurrencyMeasure specifying the value of the property owned by the Agent. 
+  -- Note that this Function is generally used in conjunction with the 
+  -- Function PropertyFn, e.g. (WealthFn (PropertyFn BillGates)) would 
+  -- return the monetary value of the sum of Bill Gates' holdings.
+  fun WealthFn  : El Agent -> Ind CurrencyMeasure ;
+
+  -- The Class of Devices that are designed 
+  -- primarily to damage or destroy Humans/Animals, StationaryArtifacts or 
+  -- the places inhabited by Humans/Animals.
+  fun Weapon  : Class ;
+  fun Weapon_Class : SubClass Weapon Device ;
+
+  -- WearableItem is the subclass of 
+  -- Artifacts that are made to be worn on the body.
+  fun WearableItem  : Class ;
+  fun WearableItem_Class : SubClass WearableItem Artifact ;
+
+  -- WeatherProcess is the broadest class of 
+  -- processes that involve weather, including weather seasons (not to be confused 
+  -- with instances of SeasonOfYear), weather systems, and short_term weather 
+  -- events.
+  fun WeatherProcess  : Class ;
+  fun WeatherProcess_Class : SubClass WeatherProcess Motion ;
+
+  -- SI magnetic flux measure. Symbol: Wb. It is the 
+  -- magnetic flux which, linking a circuit of one turn, produces in it an
+  -- electromotive force of 1 Volt as it is reduced to zero at a uniform
+  -- rate in 1 SecondDuration. Weber = V*s = m^2*kg*s^(_2)*A^(_1).
+  fun Weber  : Ind CompositeUnitOfMeasure ;
+
+  -- Any Declaring that leads to one person being 
+  -- the spouse of another.
+  fun Wedding  : Class ;
+  fun Wedding_Class : SubClass Wedding Declaring ;
+
+  -- The Class of all calendar Wednesdays.
+  fun Wednesday  : Class ;
+  fun Wednesday_Class : SubClass Wednesday Day ;
+
+  -- The Class of all calendar weeks.
+  fun Week  : Class ;
+  fun Week_Class : SubClass Week TimeInterval ;
+
+  -- Time unit. A week's duration is seven days.
+  fun WeekDuration  : Ind UnitOfDuration ;
+
+  -- The compass direction of West.
+  fun West  : Ind DirectionalAttribute ;
+
+  -- An Attribute which indicates that the 
+  -- associated Object is fully saturated with a Liquid, i.e. 
+  -- every part of the Object has a subpart which is a Liquid.
+  fun Wet  : Ind SaturationAttribute ;
+
+  -- The Class of Processes where a Liquid is 
+  -- added to an Object.
+  fun Wetting  : Class ;
+  fun Wetting_Class : SubClass Wetting Putting ;
+
+  -- A UnaryFunction that maps an Object or 
+  -- Process to the exact TimeInterval during which it exists. Note 
+  -- that, for every TimePoint ?TIME outside of the TimeInterval 
+  -- (WhenFn ?THING), (time ?THING ?TIME) does not hold.
+  fun WhenFn  : El Physical -> Ind TimeInterval ;
+
+  -- Maps an Object and a TimePoint at which the Object exists to
+  -- the Region where the Object existed at that TimePoint.
+  fun WhereFn  : El Physical -> El TimePoint -> Ind Region ;
+
+  -- The Attribute of being white in color.
+  fun White  : Ind PrimaryColor ;
+
+  -- Any Motion of Air.
+  fun Wind  : Class ;
+  fun Wind_Class : SubClass Wind GasMotion ;
+
+  -- The class of Female Humans.
+  fun Woman  : Class ;
+  fun Woman_Class : SubClass Woman Human ;
+
+  -- A term of a Language that represents a concept.
+  fun Word  : Class ;
+  fun Word_Class : SubClass Word LinguisticExpression ;
+
+  -- Long, narrow, soft_bodied Invertebrates.
+  fun Worm  : Class ;
+  fun Worm_Class : SubClass Worm Invertebrate ;
+
+  -- A subclass of ContentDevelopment in which 
+  -- content is converted from one form (e.g. uttered, written or represented 
+  -- mentally) into a written form. Note that this class covers both 
+  -- transcription and original creation of written Texts.
+  fun Writing  : Class ;
+  fun Writing_Class : SubClass Writing ContentDevelopment ;
+
+  -- The Class of all calendar Years.
+  fun Year  : Class ;
+  fun Year_Class : SubClass Year TimeInterval ;
+
+  -- Time unit. one calendar year. 1 year = 365 days = 31536000 seconds.
+  fun YearDuration  : Ind UnitOfDuration ;
+
+  -- A UnaryFunction that maps a number to the corresponding calendar 
+  -- Year. For example, (YearFn 1912) returns the Class containing just one instance, 
+  -- the year of 1912. As might be expected, positive integers return years in the Common Era, 
+  -- while negative integers return years in B.C.E. Note that this function returns a Class 
+  -- as a value. The reason for this is that the related functions, viz. MonthFn, DayFn, 
+  -- HourFn, MinuteFn, and SecondFn, are used to generate both specific TimeIntervals 
+  -- and recurrent intervals, and the only way to do this is to make the domains and ranges of 
+  -- these functions classes rather than individuals.
+  fun YearFn : El Integer -> Desc Year ;
+
+  -- The Attribute of being yellow in color.
+  fun Yellow  : Ind PrimaryColor ;
+
+  -- (abstractCounterpart ?AB ?PHYS
+  -- relates a Physical entity to an Abstract one which is an idealized
+  -- model in some dimension of the Physical entity. For example, an
+  -- Abstract GraphNode could be stated to be the counterpart of an 
+  -- actual Computer in a ComputerNetwork.
+  fun abstractCounterpart  : El Abstract -> El Physical -> Formula ;
+
+  -- (acquaintance ?H1 ?H2) means that ?H1 has
+  -- met and knows something about ?H2, such as ?H2's name and appearance.
+  -- Statements made with this predicate should be temporally specified with
+  -- holdsDuring. Note that acquaintance is not symmetric. For the
+  -- symmetric version, see mutualAcquaintance.
+  fun acquaintance  : El Human -> El Human -> Formula ;
+
+  -- Simply relates an Object to a ConstantQuantity 
+  -- specifying the age of the Object.
+  fun age  : El Object -> El TimeDuration -> Formula ;
+
+  -- (agent ?PROCESS ?AGENT) means that ?AGENT is 
+  -- an active determinant, either animate or inanimate, of the Process 
+  -- ?PROCESS, with or without voluntary intention. For example, Eve is an 
+  -- agent in the following proposition: Eve bit an apple.
+  fun agent  : El Process -> El Agent -> Formula ;
+
+  -- A TernaryPredicate that is
+  -- used to state the distance between the top of an Object and
+  -- another point that is below the top of the Object (often this
+  -- other point will be sea level). Note that this Predicate can be
+  -- used to specify, for example, the height of geographic features,
+  -- e.g. mountains, the altitude of aircraft, and the orbit of satellites
+  -- around the Earth.
+  fun altitude  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
+
+  -- The transitive closure of the parent predicate. 
+  -- (ancestor ?DESCENDANT ?ANCESTOR) means that ?ANCESTOR is either the 
+  -- parent of ?DESCENDANT or the parent of the parent of DESCENDANT or etc.
+  fun ancestor  : El Organism -> El Organism -> Formula ;
+
+  -- (angleOfFigure ?ANGLE ?FIGURE) means that 
+  -- the TwoDimensionalAngle ?ANGLE is part of the GeometricFigure ?FIGURE.
+  fun angleOfFigure  : El GeometricFigure -> El GeometricFigure -> Formula ;
+
+  -- (angularMeasure ?ANGLE ?MEASURE) means that 
+  -- the two_dimensional geometric angle ?ANGLE has the PlaneAngleMeasure of 
+  -- ?MEASURE.
+  fun angularMeasure  : El TwoDimensionalAngle -> El PlaneAngleMeasure -> Formula ;
+
+  -- This predicate indicates the value of a 
+  -- GraphArc in a Graph. This could map to the length of a road in 
+  -- a road network or the flow rate of a pipe in a plumbing system.
+  fun arcWeight  : El GraphArc -> El Quantity -> Formula ;
+
+  -- (atomicNumber ?ELEMENT ?NUMBER) means that 
+  -- the ElementalSubstance ?ELEMENT has the atomic number ?NUMBER. The 
+  -- atomic number is the number of Protons in the nucleus of an Atom.
+  fun atomicNumber : Desc ElementalSubstance -> El PositiveInteger -> Formula ;
+
+  -- (attends ?DEMO ?PERSON) means that ?PERSON attends, 
+  -- i.e. is a member of the audience, of the performance event ?DEMO.
+  fun attends  : El Demonstrating -> El Human -> Formula ;
+
+  -- (attribute ?OBJECT ?PROPERTY) means that 
+  -- ?PROPERTY is a Attribute of ?OBJECT. For example, 
+  -- (attribute MyLittleRedWagon Red).
+  fun attribute  : El Object -> El Attribute -> Formula ;
+
+  -- (authors ?AGENT ?TEXT) means that ?AGENT is 
+  -- creatively responsible for ?TEXT. For example, Agatha Christie is 
+  -- author of Murder_on_the_Orient_Express.
+  fun authors : El Agent -> Desc Text -> Formula ;
+
+  -- A partial function that relates a List to a 
+  -- RealNumber, provided that the List only has list elements that are 
+  -- RealNumbers. The RealNumber associated with the List is equal to the 
+  -- mathematical average of the RealNumbers in the List divided by the total
+  -- number of list elements.
+  fun average  : El List -> El RealNumber -> Formula ;
+
+  -- (barometricPressure ?AREA ?PRESSURE) means that the atmospheric 
+  -- pressure measured at ?AREA is ?PRESSURE. Barometric pressure is 
+  -- typically expressed in units of InchMercury or MmMercury. For 
+  -- example, standard sea level pressure is 29.92 inches (760 mm) of mercury: 
+  -- (barometricPressure SeaLevel (MeasureFn 29.92 InchMercury)).
+  fun barometricPressure  : El Object -> El UnitOfAtmosphericPressure -> Formula ;
+
+  -- (before ?POINT1 ?POINT2) means that ?POINT1 
+  -- precedes ?POINT2 on the universal timeline.
+  fun before  : El TimePoint -> El TimePoint -> Formula ;
+
+  -- (beforeOrEqual ?POINT1 ?POINT2) means that ?POINT1 
+  -- is identical with ?POINT2 or occurs before it on the universal timeline.
+  fun beforeOrEqual  : El TimePoint -> El TimePoint -> Formula ;
+
+  -- The epistemic predicate of belief. (believes ?AGENT ?FORMULA) means 
+  -- that ?AGENT believes the proposition expressed by ?FORMULA.
+  fun believes  : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (between ?OBJ1 ?OBJ2 ?OBJ3) means that ?OBJ2 is 
+  -- spatially located between ?OBJ1 and ?OBJ3. Note that this implies that 
+  -- ?OBJ2 is directly between ?OBJ1 and ?OBJ3, i.e. the projections of ?OBJ1 
+  -- and ?OBJ3 overlap with ?OBJ2.
+  fun between  : El Object -> El Object -> El Object -> Formula ;
+
+  -- The temperature at which a PureSubstance changes
+  -- state from a Liquid to a Gas.
+  fun boilingPoint : Desc PureSubstance -> El TemperatureMeasure -> Formula ;
+
+  -- (bottom ?BOTTOM ?OBJECT) holds if ?BOTTOM is the 
+  -- lowest or deepest maximal superficial part of ?OBJECT.
+  fun bottom  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
+
+  -- The general relationship of being a brother. 
+  -- (brother ?MAN ?PERSON) means that ?MAN is the brother of ?PERSON.
+  fun brother  : El Man -> El Human -> Formula ;
+
+  -- The causation relation between instances of Process. 
+  -- (causes ?PROCESS1 ?PROCESS2) means that the instance of Process ?PROCESS1 
+  -- brings about the instance of Process ?PROCESS2.
+  fun causes  : El Process -> El Process -> Formula ;
+
+  -- (causesProposition ?FORMULA1 ?FORMULA2) means
+  -- that the state of affairs described by ?FORMULA1
+  -- causes, or mechanistically brings about, the state of affairs
+  -- described by ?FORMULA2. Note that unlike entails, the time
+  -- during which ?FORMULA2 holds cannot precede the time during which
+  -- ?FORMULA1 holds, although ?FORMULA1 and ?FORMULA2 can hold
+  -- simultaneously. Note, also, that causesProposition is a
+  -- predicate, not a truth function. The following rule
+  -- (contraposition) does not hold: (=> (causesProp ?FORMULA1
+  -- ?FORMULA2) (causesProp (not ?FORMULA2) (not ?FORMULA1))).
+  fun causesProposition  : Formula -> Formula -> Formula ;
+
+  -- The causation relation between subclasses of Process. 
+  -- (causesSubclass ?PROCESS1 ?PROCESS2) means that the subclass of Process ?PROCESS1 
+  -- brings about the subclass of Process ?PROCESS2, e.g. (causesSubclass Killing 
+  -- Death).
+  fun causesSubclass : Desc Process -> Desc Process -> Formula ;
+
+  -- (citizen ?PERSON ?NATION) means that the 
+  -- Human ?PERSON is a citizen of Nation ?NATION.
+  fun citizen  : El Human -> El Nation -> Formula ;
+
+  -- (completelyFills ?OBJ ?HOLE) 
+  -- means that some part of the Object ?OBJ fills the Hole ?HOLE. 
+  -- Note that if (completelyFills ?OBJ1 ?HOLE) and (part ?OBJ1 ?OBJ2),
+  -- then (completelyFills ?OBJ2 ?HOLE). A complete filler of (a part of) a hole
+  -- is connected with everything with which (that part of) the hole itself is connected. 
+  -- A perfect filler of (a part of) a hole completely fills every proper 
+  -- part of (that part of) that hole.
+  fun completelyFills  : El Object -> El Hole -> Formula ;
+
+  -- A specialized common sense notion of part 
+  -- for heterogeneous parts of complexes. (component ?COMPONENT ?WHOLE) 
+  -- means that ?COMPONENT is a component of ?WHOLE. Examples of component 
+  -- include the doors and walls of a house, the states or provinces of a 
+  -- country, or the limbs and organs of an animal. Compare piece, which 
+  -- is also a subrelation of part.
+  fun component  : El CorpuscularObject -> El CorpuscularObject -> Formula ;
+
+  -- (conclusion ?ARGUMENT ?PROPOSITION) means that
+  -- the Proposition ?PROPOSITION is the conclusion explicitly drawn from the 
+  -- Argument ?ARGUMENT. Note that it may or may not be the case that ?ARGUMENT 
+  -- entails ?PROPOSITION.
+  fun conclusion  : El Argument -> El Proposition -> Formula ;
+
+  -- One of the basic ProbabilityRelations. 
+  -- conditionalProbability is used to state the numeric value of a conditional 
+  -- probability. (conditionalProbability ?FORMULA1 ?FORMULA2 ?NUMBER) means 
+  -- that the probability of ?FORMULA2 being true given that ?FORMULA1 is true is 
+  -- ?NUMBER.
+  fun conditionalProbability  : Formula -> Formula -> El RealNumber -> Formula ;
+
+  -- Expresses the relationship between a Formula, 
+  -- an Entity, and an ObjectiveNorm when the Entity brings it about that 
+  -- the Formula has the ObjectiveNorm.
+  fun confersNorm  : El Entity -> Formula -> El ObjectiveNorm -> Formula ;
+
+  -- Expresses the relationship between a 
+  -- a Formula, an Entity, and a CognitiveAgent when the Entity 
+  -- obligates the CognitiveAgent to bring it about that the Formula is true.
+  fun confersObligation  : Formula -> El Entity -> El CognitiveAgent -> Formula ;
+
+  -- Expresses the relationship between a Formula, 
+  -- an Entity, and a CognitiveAgent when the Entity authorizes the 
+  -- CognitiveAgent to bring it about that the Formula is true.
+  fun confersRight  : Formula -> El Entity -> El CognitiveAgent -> Formula ;
+
+  -- (connected ?OBJ1 ?OBJ2) means that ?OBJ1 
+  -- meetsSpatially ?OBJ2 or that ?OBJ1 overlapsSpatially ?OBJ2.
+  fun connected  : El Object -> El Object -> Formula ;
+
+  -- This is the most general 
+  -- connection relation between EngineeringComponents. If 
+  -- (connectedEngineeringComponents ?COMP1 ?COMP2), then neither ?COMP1 nor 
+  -- ?COMP2 can be an engineeringSubcomponent of the other. The relation 
+  -- connectedEngineeringComponents is a SymmetricRelation, there is no 
+  -- information in the direction of connection between two components. It is 
+  -- also an IrreflexiveRelation, no EngineeringComponent bears this relation 
+  -- to itself. Note that this relation does not associate a name or type 
+  -- with the connection.
+  fun connectedEngineeringComponents  : El EngineeringComponent -> El EngineeringComponent -> Formula ;
+
+  -- The relationship between three things, when one of 
+  -- the three things connects the other two. More formally, (connects ?OBJ1 ?OBJ2 ?OBJ3)
+  -- means that (connected ?OBJ1 ?OBJ2) and (connected ?OBJ1 ?OBJ3)
+  -- and not (connected ?OBJ2 ?OBJ3).
+  fun connects  : El SelfConnectedObject -> El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
+
+  -- connectsEngineeringComponents 
+  -- is a TernaryPredicate that maps from an EngineeringConnection to the 
+  -- EngineeringComponents it connects. Since EngineeringComponents cannot 
+  -- be connected to themselves and there cannot be an EngineeringConnection 
+  -- without a connectedEngineeringComponents Predicate, the second and third 
+  -- arguments of any connectsEngineeringComponents relationship will always be 
+  -- distinct for any given first argument.
+  fun connectsEngineeringComponents  : El EngineeringComponent -> El EngineeringComponent -> El SelfConnectedObject -> Formula ;
+
+  -- (considers ?AGENT ?FORMULA) means that ?AGENT considers or wonders
+  -- about the truth of the proposition expressed by ?FORMULA.
+  fun considers  : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (consistent ?PROP1 ?PROP2) means that the two 
+  -- Propositions ?PROP1 and ?PROP2 are consistent with one another, i.e. it 
+  -- is possible for both of them to be true at the same time.
+  fun consistent  : El Proposition -> El Proposition -> Formula ;
+
+  -- The relation of spatial containment for two 
+  -- separable objects. When the two objects are not separable (e.g. an 
+  -- automobile and one of its seats), the relation of part should be used. 
+  -- (contains ?OBJ1 ?OBJ2) means that the SelfConnectedObject ?OBJ1 has 
+  -- a space (i.e. a Hole) which is at least partially filled by ?OBJ2.
+  fun contains  : El SelfConnectedObject -> El Object -> Formula ;
+
+  -- A subrelation of represents. This 
+  -- predicate relates a ContentBearingPhysical to the Proposition that is 
+  -- expressed by the ContentBearingPhysical. Examples include the relationships 
+  -- between a physical novel and its story and between a printed score and its 
+  -- musical content.
+  fun containsInformation  : El ContentBearingPhysical -> El Proposition -> Formula ;
+
+  -- A contraryAttribute is a set of Attributes 
+  -- such that something can not simultaneously have more than one of these Attributes. 
+  -- For example, (contraryAttribute Pliable Rigid) means that nothing can be both 
+  -- Pliable and Rigid.
+  fun contraryAttribute  : [El Attribute] -> Formula ;
+
+  -- (cooccur ?THING1 ?THING2) means that the 
+  -- Object or Process ?THING1 occurs at the same time as, together with, 
+  -- or jointly with the Object or Process ?THING2. This covers the 
+  -- following temporal relations: is co_incident with, is concurrent with, 
+  -- is contemporaneous with, and is concomitant with.
+  fun cooccur  : El Physical -> El Physical -> Formula ;
+
+  -- relates an Object to an exact copy of the 
+  -- Object, where an exact copy is indistinguishable from the original 
+  -- with regard to every property except (possibly) spatial and/or temporal 
+  -- location.
+  fun copy  : El Object -> El Object -> Formula ;
+
+  -- (crosses ?OBJ1 ?OBJ2) means that Object ?OBJ1 
+  -- traverses Object ?OBJ2, without being connected to it.
+  fun crosses  : El Object -> El Object -> Formula ;
+
+  -- A BinaryPredicate that specifies a 
+  -- TimePosition in absolute calendar time, at the resolution 
+  -- of one day, for a particular Object or Process.
+  fun date  : El Physical -> El Day -> Formula ;
+
+  -- The general relationship of daughterhood. 
+  -- (daughter ?CHILD ?PARENT) means that ?CHILD is 
+  -- the biological daughter of ?PARENT.
+  fun daughter  : El Organism -> El Organism -> Formula ;
+
+  -- One of the basic ProbabilityRelations. 
+  -- (decreasesLikelihood ?FORMULA1 ?FORMULA2) means that ?FORMULA2 is less 
+  -- likely to be true if ?FORMULA1 is true.
+  fun decreasesLikelihood  : Formula -> Formula -> Formula ;
+
+  -- Expresses the relationship between an 
+  -- Entity, a Formula, and an ObjectiveNorm when the Entity 
+  -- brings it about that the Formula does not have the ObjectiveNorm.
+  fun deprivesNorm  : El Entity -> Formula -> El ObjectiveNorm -> Formula ;
+
+  -- A TernaryPredicate that is
+  -- used to state the distance between the top of an Object and
+  -- another point that is above the top of the Object (often this
+  -- other point will be sea level). Note that this Predicate can be
+  -- used to specify, for example, the depth of marine life or submarines,
+  -- for example.
+  fun depth  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
+
+  -- (desires ?AGENT ?FORMULA) means that ?AGENT wants 
+  -- to bring about the state of affairs expressed by ?FORMULA. Note that there 
+  -- is no implication that what is desired by the agent is not already true. 
+  -- Note too that desires is distinguished from wants only in that the former 
+  -- is a PropositionalAttitude, while wants is an ObjectAttitude.
+  fun desires  : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (destination ?PROCESS ?GOAL) means that 
+  -- ?GOAL is the target or goal of the Process ?PROCESS. For example, 
+  -- Danbury would be the destination in the following proposition: Bob went 
+  -- to Danbury. Note that this is a very general CaseRole and, in 
+  -- particular, that it covers the concepts of 'recipient' and 'beneficiary'. 
+  -- Thus, John would be the destination in the following proposition: 
+  -- Tom gave a book to John.
+  fun destination  : El Process -> El Entity -> Formula ;
+
+  -- (developmentalForm ?OBJECT ?FORM) 
+  -- means that ?FORM is an earlier stage in the individual maturation of 
+  -- ?OBJECT. For example, tadpole and caterpillar are developmentalForms 
+  -- of frogs and butterflies, respectively.
+  fun developmentalForm  : El OrganicObject -> El DevelopmentalAttribute -> Formula ;
+
+  -- (diameter ?CIRCLE ?LENGTH) means that the diameter 
+  -- of the Circle ?CIRCLE has a length of ?LENGTH.
+  fun diameter  : El Circle -> El LengthMeasure -> Formula ;
+
+  -- (direction ?PROC ?ATTR) means that the 
+  -- Process ?PROC is moving in the direction ?ATTR. For example, one 
+  -- would use this Predicate to represent the fact that Max is moving 
+  -- North.
+  fun direction  : El Process -> El DirectionalAttribute -> Formula ;
+
+  -- Classes are disjoint only if they share no 
+  -- instances, i.e. just in case the result of applying IntersectionFn to
+  -- them is empty.
+  fun disjoint  : El SetOrClass -> El SetOrClass -> Formula ;
+
+  -- A disjointDecomposition of a Class 
+  -- C is a set of subclasses of C that are mutually disjoint.
+  fun disjointDecomposition  : Class -> [Class] -> Formula ;
+
+  -- (distance ?OBJ1 ?OBJ2 ?QUANT) means that the 
+  -- shortest distance between the two objects ?OBJ1 and ?OBJ2 is ?QUANT. Note 
+  -- that the difference between the predicates length and distance is that 
+  -- the length is used to state the LengthMeasure of one of the dimensions of 
+  -- a single object, while distance is used to state the LengthMeasure that 
+  -- separates two distinct objects.
+  fun distance  : El Physical -> El Physical -> El LengthMeasure -> Formula ;
+
+  -- A relation between objects 
+  -- in the domain of discourse and strings of natural language text stated in 
+  -- a particular HumanLanguage. The domain of documentation is not 
+  -- constants (names), but the objects themselves. This means that one does 
+  -- not quote the names when associating them with their documentation.
+  fun documentation  : El Entity -> El HumanLanguage -> El SymbolicString -> Formula ;
+
+  -- (duration ?POS ?TIME) means that the 
+  -- duration of the TimePosition ?POS is ?TIME. Note that this 
+  -- Predicate can be used in conjunction with the Function WhenFn 
+  -- to specify the duration of any instance of Physical.
+  fun duration  : El TimeInterval -> El TimeDuration -> Formula ;
+
+  -- (during ?INTERVAL1 ?INTERVAL2) means that 
+  -- ?INTERVAL1 starts after and ends before ?INTERVAL2.
+  fun during  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- (earlier ?INTERVAL1 ?INTERVAL2) means that 
+  -- the TimeInterval ?INTERVAL1 ends before the TimeInterval ?INTERVAL2 
+  -- begins.
+  fun earlier  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- (editor ?AGENT ?TEXT) means that ?AGENT is 
+  -- an editor of ?TEXT.
+  fun editor : El Agent -> Desc Text -> Formula ;
+
+  -- (element ?ENTITY ?SET) is true just in case 
+  -- ?ENTITY is contained in the Set ?SET. An Entity can be an element 
+  -- of another Entity only if the latter is a Set.
+  fun element  : El Entity -> El Set -> Formula ;
+
+  -- (employs ?ORG ?PERSON) means that ?ORG has 
+  -- hired ?PERSON and currently retains ?PERSON, on a salaried, hourly 
+  -- or contractual basis, to provide services in exchange for monetary 
+  -- compensation.
+  fun employs  : El Organization -> El CognitiveAgent -> Formula ;
+
+  -- (engineeringSubcomponent ?SUB ?SUPER)
+  -- means that the EngineeringComponent ?SUB is structurally a 
+  -- properPart of ?SUPER. This relation is an AsymmetricRelation, since 
+  -- two EngineeringComponents cannot be subcomponents of each other.
+  fun engineeringSubcomponent  : El EngineeringComponent -> El EngineeringComponent -> Formula ;
+
+  -- The operator of logical entailment. (entails ?FORMULA1 ?FORMULA2)
+  -- means that ?FORMULA2 can be derived from ?FORMULA1 
+  -- by means of the proof theory of SUO_KIF.
+  fun entails  : Formula -> Formula -> Formula ;
+
+  -- (equal ?ENTITY1 ?ENTITY2) is true just in case 
+  -- ?ENTITY1 is identical with ?ENTITY2.
+  fun equal  : El Entity -> El Entity -> Formula ;
+
+  -- A binary predicate that relates two subclasses of ContentBearingObject. 
+  -- (equivalentContentClass ?CLASS1 ?CLASS2) means that the content expressed by
+  -- each instance of ?CLASS1 is also expressed by each instance of ?CLASS2, 
+  -- and vice versa. An example would be the relationship between English and Russian
+  -- editions of Agatha Christie's 'Murder on the Orient Express'. Note that 
+  -- (equivalentContentClass ?CLASS1 ?CLASS2) implies
+  -- (subsumesContentClass ?CLASS1 ?CLASS2) and (subsumesContentClass ?CLASS2 ?CLASS1).
+  fun equivalentContentClass  : Desc ContentBearingObject -> Desc ContentBearingObject -> Formula ;
+
+  -- A BinaryPredicate relating two 
+  -- instances of ContentBearingObject. (equivalentContentInstance ?OBJ1 ?OBJ2)
+  -- means that the content expressed by ?OBJ1 is identical to 
+  -- the content expressed by ?OBJ2. An example would be the relationship 
+  -- between a handwritten draft of a letter to one's lawyer and a typed 
+  -- copy of the same letter. Note that (equivalentContentInstance ?OBJ1 ?OBJ2) 
+  -- implies (subsumesContentInstance ?OBJ1 ?OBJ2) and 
+  -- (subsumesContentInstance ?OBJ2 ?OBJ2).
+  fun equivalentContentInstance  : El ContentBearingObject -> El ContentBearingObject -> Formula ;
+
+  -- The actual, minimal location of an Object. 
+  -- This is a subrelation of the more general Predicate located.
+  fun exactlyLocated  : El Physical -> El Object -> Formula ;
+
+  -- This predicate relates a Class to a 
+  -- set of Attributes, and it means that the elements of this set exhaust the 
+  -- instances of the Class. For example, (exhaustiveAttribute PhysicalState 
+  -- Solid Fluid Liquid Gas Plasma) means that there are only five instances of 
+  -- the class PhysicalState, viz. Solid, Fluid, Liquid, Gas and Plasma.
+  fun exhaustiveAttribute : Desc Attribute -> [El Attribute] -> Formula ;
+
+  -- An exhaustiveDecomposition of a 
+  -- Class C is a set of subclasses of C such that every instance of C is an 
+  -- instance of one of the subclasses in the set. Note: this does not necessarily 
+  -- mean that the elements of the set are disjoint (see partition _ a partition 
+  -- is a disjoint exhaustive decomposition).
+  fun exhaustiveDecomposition  : Class -> [Class] -> Formula ;
+
+  -- (experiencer ?PROCESS ?AGENT) means 
+  -- that ?AGENT experiences the Process ?PROCESS. For example, Yojo 
+  -- is the experiencer of seeing in the following proposition: Yojo 
+  -- sees the fish. Note that experiencer, unlike agent, does 
+  -- not entail a causal relation between its arguments.
+  fun experiencer  : El Process -> El Entity -> Formula ;
+
+  -- (exploits ?OBJ ?AGENT) means that ?OBJ is used 
+  -- by ?AGENT as a resource in an unspecified instance of Process. This 
+  -- Predicate, as its corresponding axiom indicates, is a composition of the 
+  -- relations agent and resource.
+  fun exploits  : El Object -> El Agent -> Formula ;
+
+  -- (expressedInLanguage ?EXPRESS ?LANG) means that the
+  -- LinguisticExpression ?EXPRESS is part of the Language ?LANG.
+  fun expressedInLanguage  : El LinguisticExpression -> El Language -> Formula ;
+
+  -- (faces ?OBJ ?DIRECTION) means that the front of 
+  -- ?OBJ (see FrontFn) is positioned towards the compass direction ?DIRECTION. 
+  -- More precisely, it means that if a line were extended from the center of 
+  -- ?DIRECTION, the line would intersect with the front of ?OBJ before it 
+  -- intersected with its back (see BackFn).
+  fun faces  : El Object -> El DirectionalAttribute -> Formula ;
+
+  -- A very general Predicate for biological 
+  -- relationships. (familyRelation ?ORGANISM1 ?ORGANISM2) means that 
+  -- ?ORGANISM1 and ?ORGANISM2 are biologically derived from a common ancestor.
+  fun familyRelation  : El Organism -> El Organism -> Formula ;
+
+  -- The general relationship of fatherhood. 
+  -- (father ?CHILD ?FATHER) means that ?FATHER is the biological father of ?CHILD.
+  fun father  : El Organism -> El Organism -> Formula ;
+
+  -- Holes can be filled. (fills ?OBJ ?HOLE) 
+  -- means that the Object ?OBJ fills the Hole ?HOLE. Note that 
+  -- fills here means perfectly filled. Perfect fillers and fillable entities have no parts in common (rather, 
+  -- they may occupy the same spatial region).
+  fun fills  : El Object -> El Hole -> Formula ;
+
+  -- (finishes ?INTERVAL1 ?INTERVAL2) means that 
+  -- ?INTERVAL1 and ?INTERVAL2 are both TimeIntervals that have the same 
+  -- ending TimePoint and that ?INTERVAL2 begins before ?INTERVAL1.
+  fun finishes  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- (frequency ?PROC ?TIME) means that the 
+  -- Process type of ?PROC recurs after every interval of ?TIME.
+  fun frequency : Desc Process -> El TimeDuration -> Formula ;
+
+  -- (geographicSubregion ?PART ?WHOLE) means that the GeographicArea ?PART is
+  -- part of the GeographicArea ?WHOLE.
+  fun geographicSubregion  : El GeographicArea -> El GeographicArea -> Formula ;
+
+  -- (geometricDistance ?POINT1 ?POINT2 ?LENGTH)
+  -- means that ?LENGTH is the distance between the two 
+  -- GeometricPoints ?POINT1 and ?POINT2.
+  fun geometricDistance  : El GeometricPoint -> El GeometricPoint -> El LengthMeasure -> Formula ;
+
+  -- (geometricPart ?PART ?WHOLE) means that the 
+  -- GeometricFigure ?PART is part of the GeometricFigure ?WHOLE.
+  fun geometricPart  : El GeometricFigure -> El GeometricFigure -> Formula ;
+
+  -- (geopoliticalSubdivision ?AREA1 ?AREA2) means that ?AREA1 is any 
+  -- geopolitical part of ?AREA2, that is, ?AREA1 is
+  -- an integral geographicSubregion of ?AREA2 (not a DependencyOrSpecialSovereigntyArea), 
+  -- having its own associated GovernmentOrganization which is subordinated to or constrained by 
+  -- the government of ?AREA2. Cf. dependentGeopoliticalArea.
+  fun geopoliticalSubdivision  : El GeopoliticalArea -> El GeopoliticalArea -> Formula ;
+
+  -- (graphMeasure ?GRAPH ?MEAS) fixes a 
+  -- UnitOfMeasure that is used for the arcWeight of a given Graph. Stating 
+  -- such a relationship entails that the components of given graph are the 
+  -- abstractCounterparts of sets of Physical Entity(ies).
+  fun graphMeasure  : El Graph -> El UnitOfMeasure -> Formula ;
+
+  -- A basic relation for Graphs and their 
+  -- parts. (graphPart ?PART ?GRAPH) means that ?PART is a GraphArc 
+  -- or GraphNode of the Graph ?GRAPH.
+  fun graphPart  : El GraphElement -> El Graph -> Formula ;
+
+  -- The state of grasping an Object. (grasps ?ANIMAL ?OBJ) means
+  -- that the Animal ?ANIMAL is intentionally holding
+  -- on to the Object ?OBJ.
+  fun grasps  : El Animal -> El Object -> Formula ;
+
+  -- (greaterThan ?NUMBER1 ?NUMBER2) is true 
+  -- just in case the Quantity ?NUMBER1 is greater than the Quantity 
+  -- ?NUMBER2.
+  fun greaterThan  : El Quantity -> El Quantity -> Formula ;
+
+  -- (greaterThanByQuality ?ENTITY1 ?ENTITY2 ?ATT) means that
+  -- ?ENTITY1 has more of the given quality ?ATT than ?ENTITY2
+  fun greaterThanByQuality  : El Entity -> El Entity -> El Attribute -> Formula ;
+
+  -- (greaterThanOrEqualTo ?NUMBER1 
+  -- ?NUMBER2) is true just in case the Quantity ?NUMBER1 is greater 
+  -- than the Quantity ?NUMBER2.
+  fun greaterThanOrEqualTo  : El Quantity -> El Quantity -> Formula ;
+
+  -- This Predicate expresses the concept of a 
+  -- conventional goal, i.e. a goal with a neutralized agent's intention. 
+  -- Accordingly, (hasPurpose ?THING ?FORMULA) means that the instance of 
+  -- Physical ?THING has, as its purpose, the Proposition expressed by 
+  -- ?FORMULA. Note that there is an important difference in meaning between 
+  -- the Predicates hasPurpose and result. Although the second argument 
+  -- of the latter can satisfy the second argument of the former, 
+  -- a conventional goal is an expected and desired outcome, while a result 
+  -- may be neither expected nor desired. For example, a machine process may 
+  -- have outcomes but no goals, aimless wandering may have an outcome but no 
+  -- goal, a learning process may have goals with no outcomes, and so on.
+  fun hasPurpose  : El Physical -> Formula -> Formula ;
+
+  -- Expresses a cognitive attitude of an 
+  -- agent with respect to a particular instance of Physical. More precisely, 
+  -- (hasPurposeForAgent ?THING ?FORMULA ?AGENT) means that the purpose of 
+  -- ?THING for ?AGENT is the proposition expressed by ?FORMULA. Very complex 
+  -- issues are involved here. In particular, the rules of inference of the 
+  -- first order predicate calculus are not truth_preserving for the second 
+  -- argument position of this Predicate.
+  fun hasPurposeForAgent  : El Physical -> Formula -> El CognitiveAgent -> Formula ;
+
+  -- Similar to the capability Predicate 
+  -- with the additional restriction that the ability be practised/
+  -- demonstrated to some measurable degree.
+  fun hasSkill : Desc Process -> El Agent -> Formula ;
+
+  -- The height of an Object is the distance between 
+  -- its top and its bottom.
+  fun height  : El SelfConnectedObject -> El LengthMeasure -> Formula ;
+
+  -- (holdsDuring ?TIME ?FORMULA) means that the 
+  -- proposition denoted by ?FORMULA is true in the time frame ?TIME. Note 
+  -- that this implies that ?FORMULA is true at every TimePoint which is a 
+  -- temporalPart of ?TIME.
+  fun holdsDuring  : El TimePosition -> Formula -> Formula ;
+
+  -- Expresses a relationship between a 
+  -- Formula and a CognitiveAgent whereby the CognitiveAgent has 
+  -- the obligation to bring it about that the Formula is true.
+  fun holdsObligation  : Formula -> El CognitiveAgent -> Formula ;
+
+  -- Expresses a relationship between a Formula 
+  -- and a CognitiveAgent whereby the CognitiveAgent has the right to 
+  -- bring it about that the Formula is true.
+  fun holdsRight  : Formula -> El CognitiveAgent -> Formula ;
+
+  -- (hole ?HOLE ?OBJ) means that ?HOLE is a 
+  -- Hole in ?OBJ. A Hole is a fillable body located at the 
+  -- surface an Object.
+  fun hole  : El Hole -> El SelfConnectedObject -> Formula ;
+
+  -- The relation between a Human and a PermanentResidence 
+  -- of the Human.
+  fun home  : El Human -> El PermanentResidence -> Formula ;
+
+  -- (husband ?MAN ?WOMAN) means that ?MAN is the 
+  -- husband of ?WOMAN.
+  fun husband  : El Man -> El Woman -> Formula ;
+
+  -- (identicalListItems ?LIST1 ?LIST2) 
+  -- means that ?LIST1 and ?LIST2 have exactly the same items in their 
+  -- respective lists. Although ?LIST1 and ?LIST2 are required to share 
+  -- exactly the same items, they may order these items differently.
+  fun identicalListItems  : El List -> El List -> Formula ;
+
+  -- A SetOrClass ?CLASS1 is an immediateSubclass 
+  -- of another SetOrClass ?CLASS2 just in case ?CLASS1 is a subclass of ?CLASS2 and 
+  -- there is no other subclass of ?CLASS2 such that ?CLASS1 is also a subclass of it.
+  fun immediateSubclass  : El SetOrClass -> El SetOrClass -> Formula ;
+
+  -- The analog of element and instance for Lists. 
+  -- (inList ?OBJ ?LIST) means that ?OBJ is in the List ?LIST. For example, 
+  -- (inList Tuesday (ListFn Monday Tuesday Wednesday)) would be true.
+  fun inList  : El Entity -> El List -> Formula ;
+
+  -- A very general Predicate. 
+  -- (inScopeOfInterest ?AGENT ?ENTITY) means that ?ENTITY is within the 
+  -- scope of interest of ?AGENT. Note that the interest indicated can be 
+  -- either positive or negative, i.e. the ?AGENT can have an interest in 
+  -- avoiding or promoting ?ENTITY.
+  fun inScopeOfInterest  : El CognitiveAgent -> El Entity -> Formula ;
+
+  -- One of the basic ProbabilityRelations. 
+  -- (increasesLikelihood ?FORMULA1 ?FORMULA2) means that ?FORMULA2 is more 
+  -- likely to be true if ?FORMULA1 is true.
+  fun increasesLikelihood  : Formula -> Formula -> Formula ;
+
+  -- One of the basic ProbabilityRelations. 
+  -- (independentProbability ?FORMULA1 ?FORMULA2) means that the probabilities of 
+  -- ?FORMULA1 and ?FORMULA2 being true are independent.
+  fun independentProbability  : Formula -> Formula -> Formula ;
+
+  -- A very basic notion of living within something 
+  -- else. (inhabits ?ORGANISM ?OBJECT) means that ?OBJECT is the residence 
+  -- (either permanent or temporary), nest, etc. of ?ORGANISM.
+  fun inhabits  : El Organism -> El Object -> Formula ;
+
+  -- A very general Predicate. (inhibits ?PROC1 ?PROC2) means
+  -- that the Process ?PROC1 inhibits or hinders 
+  -- the occurrence of the Process ?PROC2. For example, obstructing an 
+  -- object inhibits moving it. Note that this is a relation between types 
+  -- of Processes, not between instances.
+  fun inhibits : Desc Process -> Desc Process -> Formula ;
+
+  -- (instrument ?EVENT ?TOOL) means that ?TOOL 
+  -- is used by an agent in bringing about ?EVENT and that ?TOOL is not 
+  -- changed by ?EVENT. For example, the key is an instrument in the 
+  -- following proposition: The key opened the door. Note that instrument 
+  -- and resource cannot be satisfied by the same ordered pair.
+  fun instrument  : El Process -> El Object -> Formula ;
+
+  -- (interiorPart ?OBJ1 ?OBJ2) means 
+  -- that ?OBJ1 is part ?OBJ2 and there is no overlap between ?OBJ1 and 
+  -- any superficialPart ?OBJ2.
+  fun interiorPart  : El Object -> El Object -> Formula ;
+
+  -- (involvedInEvent ?EVENT ?THING) means 
+  -- that in the Process ?EVENT, the Entity ?THING plays some CaseRole.
+  fun involvedInEvent  : El Process -> El Entity -> Formula ;
+
+  -- The epistemic predicate of knowing. (knows 
+  -- ?AGENT ?FORMULA) means that ?AGENT knows the proposition expressed by 
+  -- ?FORMULA. Note that knows entails conscious awareness, so this 
+  -- Predicate cannot be used to express tacit or subconscious or 
+  -- unconscious knowledge.
+  fun knows  : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (larger ?OBJ1 ?OBJ2) means that ?OBJ1 is 
+  -- larger, with respect to all LengthMeasures, than ?OBJ2.
+  fun larger  : El Object -> El Object -> Formula ;
+
+  -- (leader ?INSTITUTION ?PERSON)
+  -- means that the leader of ?INSTITUTION is ?PERSON.
+  fun leader  : El Agent -> El Human -> Formula ;
+
+  -- (legalRelation ?AGENT1 ?AGENT2) means 
+  -- that ?AGENT1 and ?AGENT2 are relatives by virtue of a legal relationship. 
+  -- Some examples include marriage, adoption, etc.
+  fun legalRelation  : El Human -> El Human -> Formula ;
+
+  -- binary predicate that is used to state the measure 
+  -- of an Object along its longest span.
+  fun length  : El Object -> El PhysicalQuantity -> Formula ;
+
+  -- (lessThan ?NUMBER1 ?NUMBER2) is true just 
+  -- in case the Quantity ?NUMBER1 is less than the Quantity ?NUMBER2.
+  fun lessThan  : El Quantity -> El Quantity -> Formula ;
+
+  -- (lessThanOrEqualTo ?NUMBER1 ?NUMBER2) is true
+  -- just in case the Quantity ?NUMBER1 is less than or equal to 
+  -- the Quantity ?NUMBER2.
+  fun lessThanOrEqualTo  : El Quantity -> El Quantity -> Formula ;
+
+  -- (lineMeasure ?LINE ?MEASURE) means that the 
+  -- straight line ?LINE has the LengthMeasure of ?MEASURE.
+  fun lineMeasure  : El OneDimensionalFigure -> El LengthMeasure -> Formula ;
+
+  -- Binary predicate that is used to state the measure 
+  -- of an Object from one point to another point along its surface. Note 
+  -- that the difference between the predicates length and distance is that 
+  -- the length is used to state the LengthMeasure of one of the dimensions of 
+  -- a single object, while distance is used to state the LengthMeasure that 
+  -- separates two distinct objects.
+  fun linearExtent  : El Object -> El LengthMeasure -> Formula ;
+
+  -- a TernaryPredicate that specifies the 
+  -- GraphArc connecting two GraphNodes.
+  fun links  : El GraphNode -> El GraphNode -> El GraphArc -> Formula ;
+
+  -- (located ?PHYS ?OBJ) means that ?PHYS is partlyLocated at ?OBJ, 
+  -- and there is no part or subProcess of ?PHYS that is not located at ?OBJ.
+  fun located  : El Physical -> El Object -> Formula ;
+
+  -- (manner ?PROCESS ?MANNER) means that the 
+  -- Process ?PROCESS is qualified by the Attribute ?MANNER. The Attributes 
+  -- of Processes are usually denoted by adverbs and include things like the 
+  -- speed of the wind, the style of a dance, or the intensity of a sports 
+  -- competition.
+  fun manner  : El Process -> El Attribute -> Formula ;
+
+  -- (material ?SUBSTANCE ?OBJECT) means that 
+  -- ?OBJECT is structurally made up in part of ?SUBSTANCE. This relation 
+  -- encompasses the concepts of 'composed of', 'made of', and 'formed of'. 
+  -- For example, plastic is a material of my computer monitor. Compare 
+  -- part and its subrelations, viz component and piece.
+  fun material : Desc Substance -> El CorpuscularObject -> Formula ;
+
+  -- A very general Predicate for
+  -- asserting that a particular Object is measured by a particular
+  -- PhysicalQuantity. In general, the second argument of this
+  -- Predicate will be a term produced with the Function MeasureFn.
+  fun measure  : El Object -> El PhysicalQuantity -> Formula ;
+
+  -- (meetsSpatially ?OBJ1 ?OBJ2) means that 
+  -- ?OBJ1 and ?OBJ2 are connected but that neither ?OBJ1 nor ?OBJ2 
+  -- overlapsSpatially the other.
+  fun meetsSpatially  : El Object -> El Object -> Formula ;
+
+  -- (meetsTemporally ?INTERVAL1 ?INTERVAL2) 
+  -- means that the terminal point of the TimeInterval ?INTERVAL1 is the 
+  -- initial point of the TimeInterval ?INTERVAL2.
+  fun meetsTemporally  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- The temperature at which a PureSubstance changes
+  -- state from a Solid to a Liquid. Note that Arsenic can sublimate directly
+  -- from Solid to Gas which means that its melting and boiling points are equal.
+  fun meltingPoint : Desc PureSubstance -> El TemperatureMeasure -> Formula ;
+
+  -- A specialized common sense notion of part for 
+  -- uniform parts of Collections. For example, each sheep in a flock of 
+  -- sheep would have the relationship of member to the flock.
+  fun member  : El SelfConnectedObject -> El Collection -> Formula ;
+
+  -- A BinaryRelation that is used to state the 
+  -- normative force of a Proposition. (modalAttribute ?FORMULA ?PROP) means 
+  -- that the Proposition expressed by ?FORMULA has the NormativeAttribute 
+  -- ?PROP. For example, (modalAttribute (exists (?ACT ?OBJ) (and 
+  -- (instance ?ACT Giving) (agent ?ACT John) (patient ?ACT ?OBJ) 
+  -- (destination ?ACT Tom))) Obligation) means that John is obligated to give 
+  -- Tom something.
+  fun modalAttribute  : Formula -> El NormativeAttribute -> Formula ;
+
+  -- A BinaryPredicate that associates an 
+  -- Object or Process with its value expressed as an instance of 
+  -- CurrencyMeasure.
+  fun monetaryValue  : El Physical -> El CurrencyMeasure -> Formula ;
+
+  -- The general relationship of motherhood. 
+  -- (mother ?CHILD ?MOTHER) means that ?MOTHER is the biological mother 
+  -- of ?CHILD.
+  fun mother  : El Organism -> El Organism -> Formula ;
+
+  -- (multiplicativeFactor ?NUMBER1 ?NUMBER2) 
+  -- means that ?NUMBER1 is a factor of ?NUMBER2, i.e. ?NUMBER1 can be multiplied by 
+  -- some Integer to give ?NUMBER2 as a result.
+  fun multiplicativeFactor  : El Integer -> El Integer -> Formula ;
+
+  -- (mutualAcquaintance ?H1 ?H2) means
+  -- that ?H1 and ?H2 have met each other and know something about each other,
+  -- such as name and appearance. Statements made with this predicate should
+  -- be temporally specified with holdsDuring. See also the weaker,
+  -- non_symmetric version of this predicate, acquaintance.
+  fun mutualAcquaintance  : El Human -> El Human -> Formula ;
+
+  -- (names ?STRING ?ENTITY) means that the thing ?ENTITY 
+  -- has the SymbolicString ?STRING as its name. Note that names and represents 
+  -- are the two immediate subrelations of refers. The predicate names is used 
+  -- when the referring item is merely a tag without connotative content, while the 
+  -- predicate represents is used for referring items that have such content.
+  fun names  : El SymbolicString -> El Entity -> Formula ;
+
+  -- (needs ?AGENT ?OBJECT) means that ?OBJECT is 
+  -- physically required for the continued existence of ?AGENT.
+  fun needs  : El CognitiveAgent -> El Physical -> Formula ;
+
+  -- (occupiesPosition ?PERSON ?POSITION ?ORG) 
+  -- means that ?PERSON holds the Position ?POSITION at Organization ?ORG. 
+  -- For example, (occupiesPosition TomSmith ResearchDirector 
+  -- AcmeLaboratory) means that TomSmith is a research director at Acme Labs.
+  fun occupiesPosition  : El Human -> El Position -> El Organization -> Formula ;
+
+  -- A general Predicate for indicating how two 
+  -- Objects are oriented with respect to one another. For example, 
+  -- (orientation ?OBJ1 ?OBJ2 North) means that ?OBJ1 is north of ?OBJ2, and 
+  -- (orientation ?OBJ1 ?OBJ2 Vertical) means that ?OBJ1 is positioned 
+  -- vertically with respect to ?OBJ2.
+  fun orientation  : El Object -> El Object -> El PositionalAttribute -> Formula ;
+
+  -- (origin ?PROCESS ?SOURCE) means that ?SOURCE 
+  -- indicates where the ?Process began. Note that this relation implies 
+  -- that ?SOURCE is present at the beginning of the process, but need not 
+  -- participate throughout the process. For example, the submarine is the 
+  -- origin in the following proposition: the missile was launched from a 
+  -- submarine.
+  fun origin  : El Process -> El Object -> Formula ;
+
+  -- (overlapsPartially ?OBJ1 ?OBJ2) means 
+  -- that ?OBJ1 and ?OBJ2 have part(s) in common, but neither ?OBJ1 nor ?OBJ2 
+  -- is a part of the other.
+  fun overlapsPartially  : El Object -> El Object -> Formula ;
+
+  -- (overlapsSpatially ?OBJ1 ?OBJ2) means 
+  -- that the Objects ?OBJ1 and ?OBJ2 have some parts in common. This is a 
+  -- reflexive and symmetric (but not transitive) relation.
+  fun overlapsSpatially  : El Object -> El Object -> Formula ;
+
+  -- (overlapsTemporally ?INTERVAL1 ?INTERVAL2) 
+  -- means that the TimeIntervals ?INTERVAL1 and ?INTERVAL2 
+  -- have a TimeInterval as a common part.
+  fun overlapsTemporally  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- (parallel ?LINE1 ?LINE2) means that the 
+  -- OneDimensionalFigures ?LINE1 and ?LINE2 are parallel to one another, 
+  -- i.e. they are equidistant from one another at every point.
+  fun parallel  : El OneDimensionalFigure -> El OneDimensionalFigure -> Formula ;
+
+  -- The general relationship of parenthood. 
+  -- (parent ?CHILD ?PARENT) means that ?PARENT is a biological parent 
+  -- of ?CHILD.
+  fun parent  : El Organism -> El Organism -> Formula ;
+  
+  -- A binary predicate is a partial ordering on a set or class
+  -- only if the relation is reflexive on the set or class, 
+  -- and it is both an antisymmetric relation, and a transitive relation.
+  fun partialOrderingOn : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def partialOrderingOn c p = and (reflexiveOn c p)
+                                  (and (TransitiveRelation c p)
+                                       (AntisymmetricRelation c p)) ;
+
+  -- The basic mereological relation. All other 
+  -- mereological relations are defined in terms of this one. 
+  -- (part ?PART ?WHOLE) simply means that the Object ?PART is part
+  -- of the Object ?WHOLE. Note that, since part is a 
+  -- ReflexiveRelation, every Object is a part of itself.
+  fun part  : El Object -> El Object -> Formula ;
+
+  -- (partiallyFills ?OBJ ?HOLE) means that ?OBJ completelyFills some part of ?HOLE. 
+  -- Note that if (partiallyFills ?OBJ1 ?HOLE) and (part ?OBJ1 ?OBJ2), then (partiallyFills ?OBJ2 ?HOLE). 
+  -- Note too that a partial filler need not be wholly inside a hole (it may 
+  -- stick out), which means that every complete filler also qualifies as 
+  -- (is a limit case of) a partial one.
+  fun partiallyFills  : El Physical -> El Object -> Formula ;
+
+  -- A partition of a class C is a set of 
+  -- mutually disjoint classes (a subclass partition) which covers C. 
+  -- Every instance of C is an instance of exactly one of the subclasses 
+  -- in the partition.
+  fun partition  : Class -> [Class] -> Formula ;
+
+  -- (partlyLocated ?THING ?OBJ) means that the 
+  -- instance of Physical ?THING is at least partially located at ?OBJ. For 
+  -- example, Istanbul is partly located in Asia and partly located in Europe. 
+  -- Note that partlyLocated is the most basic localization relation: located 
+  -- is an immediate subrelation of partlyLocated and exactlyLocated is 
+  -- an immediate subrelation of located.
+  fun partlyLocated  : El Physical -> El Object -> Formula ;
+
+  -- (path ?MOTION ?PATH) means that ?PATH is a route 
+  -- along which ?MOTION occurs. For example, Highway 101 is the path in the 
+  -- following proposition: the car drove up Highway 101.
+  fun path  : El Motion -> El Object -> Formula ;
+
+  -- A BinaryPredicate that specifies the 
+  -- length (in number of GraphNodes) of a GraphPath.
+  -- (pathLength ?PATH ?NUMBER) means that there are ?NUMBER nodes in 
+  -- the GraphPath ?PATH.
+  fun pathLength  : El GraphPath -> El PositiveInteger -> Formula ;
+
+  -- (patient ?PROCESS ?ENTITY) means that ?ENTITY 
+  -- is a participant in ?PROCESS that may be moved, said, experienced, etc. 
+  -- For example, the direct objects in the sentences 'The cat swallowed the 
+  -- canary' and 'Billy likes the beer' would be examples of patients. Note 
+  -- that the patient of a Process may or may not undergo structural 
+  -- change as a result of the Process. The CaseRole of patient is used 
+  -- when one wants to specify as broadly as possible the object of a 
+  -- Process.
+  fun patient  : El Process -> El Entity -> Formula ;
+
+  -- (penetrates ?OBJ1 ?OBJ2) means that ?OBJ1 is connected to ?OBJ2 along
+  -- at least one whole dimension (length, width or depth).
+  fun penetrates  : El Object -> El Object -> Formula ;
+
+  -- A specialized common sense notion of part for 
+  -- arbitrary parts of Substances. Quasi_synonyms are: chunk, hunk, bit, 
+  -- etc. Compare component, another subrelation of part.
+  fun piece  : El Substance -> El Substance -> Formula ;
+
+  -- (pointOfFigure ?POINT ?FIGURE) means that 
+  -- the GeometricPoint ?POINT is part of the GeometricFigure ?FIGURE.
+  fun pointOfFigure  : El GeometricFigure -> El GeometricFigure -> Formula ;
+
+  -- (pointOfIntersection ?FIGURE1 ?FIGURE2 
+  -- ?POINT) means that the two straight lines ?FIGURE1 and ?FIGURE2 meet at the 
+  -- point ?POINT.
+  fun pointOfIntersection  : El OneDimensionalFigure -> El OneDimensionalFigure -> El GeometricPoint -> Formula ;
+
+  -- Relation that holds between an Agent and 
+  -- an Object when the Agent has ownership of the Object.
+  fun possesses  : El Agent -> El Object -> Formula ;
+
+  -- A very general Predicate. (precondition 
+  -- ?PROC1 ?PROC2) means that an instance of ?PROC2 can exist only if an 
+  -- instance of ?PROC1 also exists.
+  fun precondition : Desc Process -> Desc Process -> Formula ;
+
+  -- (prefers ?AGENT ?FORMULA1 ?FORMULA2) means that 
+  -- CognitiveAgent ?AGENT prefers the state of affairs expressed by ?FORMULA1
+  -- over the state of affairs expressed by ?FORMULA2 all things being equal.
+  fun prefers  : El CognitiveAgent -> Formula -> Formula -> Formula ;
+
+  -- (premise ?ARGUMENT ?PROPOSITION) means that the 
+  -- Proposition ?PROPOSITION is an explicit assumption of the Argument 
+  -- ?ARGUMENT.
+  fun premise  : El Argument -> El Proposition -> Formula ;
+
+  -- A very general Predicate. (prevents ?PROC1 ?PROC2) means that ?PROC1 
+  -- prevents the occurrence of ?PROC2. In other words, if ?PROC1 is occurring
+  -- in a particular time and place, ?PROC2 cannot occur at the same time and place.
+  -- For example, innoculating prevents contracting disease. Note that this is a 
+  -- relation between types of Processes, not between instances.
+  fun prevents : Desc Process -> Desc Process -> Formula ;
+
+  -- (properPart ?OBJ1 ?OBJ2) means that 
+  -- ?OBJ1 is a part of ?OBJ2 other than ?OBJ2 itself. This is a 
+  -- TransitiveRelation and AsymmetricRelation (hence an 
+  -- IrreflexiveRelation).
+  fun properPart  : El Object -> El Object -> Formula ;
+
+  -- (properlyFills ?OBJ ?HOLE) 
+  -- means that ?HOLE is properly (though perhaps incompletely) filled by 
+  -- ?OBJ, i.e. some part of ?HOLE is perfectly filled by ?OBJ. Note that 
+  -- properlyFills is the dual of completelyFills, and is so 
+  -- related to partiallyFills that ?OBJ properlyFills ?HOLE just in 
+  -- case ?OBJ partiallyFills every part of ?HOLE. (Thus, every perfect 
+  -- filler is both complete and proper in this sense). 
+  -- Every hole is connected with everything with which a proper filler 
+  -- of the hole is connected. Every proper part of a perfect filler of (a part of) a hole properly 
+  -- fills (that part of) that hole.
+  fun properlyFills  : El Object -> El Hole -> Formula ;
+
+  -- This Predicate holds between an instance of 
+  -- Entity and an instance of Attribute. (property ?ENTITY ?ATTR) 
+  -- means that ?ENTITY has the Attribute ?ATTR.
+  fun property  : El Entity -> El Attribute -> Formula ;
+
+  -- (publishes ?ORG ?TEXT) means that ?ORG 
+  -- publishes ?TEXT. For example, Bantam Books publishes Agatha Christie's 
+  -- Murder_on_the_Orient_Express.
+  fun publishes : El Organization -> Desc Text -> Formula ;
+
+  -- (radius ?CIRCLE ?LENGTH) means that the radius of 
+  -- the Circle ?CIRCLE has a length of ?LENGTH.
+  fun radius  : El Circle -> El LengthMeasure -> Formula ;
+
+  -- A subrelation of represents. 
+  -- (realization ?PROCESS ?PROP) means that ?PROCESS is a Process which 
+  -- expresses the content of ?PROP. Examples include a particular musical 
+  -- performance, which realizes the content of a musical score, or the 
+  -- reading of a poem.
+  fun realization  : El Process -> El Proposition -> Formula ;
+
+  -- (refers ?OBJ1 ?OBJ2) means that ?OBJ1 
+  -- mentions or includes a reference to ?OBJ2. Note that refers is 
+  -- more general in meaning than represents, because presumably something 
+  -- can represent something else only if it refers to this other thing. 
+  -- For example, an article whose topic is a recent change in the price of 
+  -- oil may refer to many other things, e.g. the general state of the economy, 
+  -- the weather in California, the prospect of global warming, the options 
+  -- for alternative energy sources, the stock prices of various oil companies, 
+  -- etc.
+  fun refers  : El Entity -> El Entity -> Formula ;
+  
+  -- A binary predicate is reflexive on a set or class only if
+  -- every instance of the set or class bears the relation to itself.
+  fun reflexiveOn  : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def reflexiveOn c p = forall c (\INST -> p (var c c ? INST) (var c c ? INST)) ;
+
+  -- (relatedEvent ?EVENT1 ?EVENT2) means 
+  -- that the Process ?EVENT1 is related to the Process ?EVENT2. The 
+  -- relationship is between separate individual events, not events and 
+  -- their subprocesses. On the other hand, two subProcesses of the same 
+  -- overarching event may be relatedEvents. The argument order does not 
+  -- imply temporal ordering.
+  fun relatedEvent  : El Process -> El Process -> Formula ;
+
+  -- Used to signify a three_place 
+  -- relation between a concept in an external knowledge source, a concept 
+  -- in the SUMO, and the name of the other knowledge source.
+  fun relatedExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
+
+  -- Means that the two arguments are 
+  -- related concepts within the SUMO, i.e. there is a significant similarity 
+  -- of meaning between them. To indicate a meaning relation between a SUMO 
+  -- concept and a concept from another source, use the Predicate 
+  -- relatedExternalConcept.
+  fun relatedInternalConcept  : El Entity -> El Entity -> Formula ;
+
+  -- (relative ?O1 ?O2) means that ?O1
+  -- and ?O2 are relatives, whether through common ancestry (consanguinity),
+  -- someone's marriage (affinity), or someone's adoption. This definition is
+  -- intentionally broad, so as to capture a wide array of `familial'
+  -- relations. The notion of who counts as `family' also varies between
+  -- cultures, but that aspect of meaning is not addressed here.
+  fun relative  : El Organism -> El Organism -> Formula ;
+
+  -- A very general semiotics Predicate. 
+  -- (represents ?THING ?ENTITY) means that ?THING in some way indicates, 
+  -- expresses, connotes, pictures, describes, etc. ?ENTITY. The Predicates 
+  -- containsInformation and realization are subrelations of represents. 
+  -- Note that represents is a subrelation of refers, since something can 
+  -- represent something else only if it refers to this other thing. See the 
+  -- documentation string for names.
+  fun represents  : El Entity -> El Entity -> Formula ;
+
+  -- A very general predicate. 
+  -- (representsForAgent ?ENTITY1 ?ENTITY2 ?AGENT) means that the ?AGENT 
+  -- chooses to use ?ENTITY1 to 'stand for' ?ENTITY2.
+  fun representsForAgent  : El Entity -> El Entity -> El Agent -> Formula ;
+
+  -- A very general predicate. 
+  -- (representsInLanguage ?THING ?ENTITY ?LANGUAGE) means that the 
+  -- LinguisticExpression ?THING stands for ?ENTITY in the Language 
+  -- ?LANGUAGE.
+  fun representsInLanguage  : El LinguisticExpression -> El Entity -> El Language -> Formula ;
+
+  fun resourceS  : El Process -> El Entity -> Formula ;
+
+  -- (result ?ACTION ?OUTPUT) means that ?OUTPUT is 
+  -- a product of ?ACTION. For example, house is a result in the 
+  -- following proposition: Eric built a house.
+  fun result  : El Process -> El Entity -> Formula ;
+
+  -- The relationship between two Organisms that 
+  -- have the same mother and father. Note that this relationship does 
+  -- not hold between half_brothers, half_sisters, etc.
+  fun sibling  : El Organism -> El Organism -> Formula ;
+
+  -- (side ?SIDE ?OBJECT) means that ?SIDE is a side of the object, 
+  -- as opposed to the top or bottom.
+  fun side  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
+
+  -- The general relationship of being a sister. 
+  -- (sister ?WOMAN ?PERSON) means that ?WOMAN is the sister of ?PERSON.
+  fun sister  : El Woman -> El Human -> Formula ;
+
+  -- (smaller ?OBJ1 ?OBJ2) means that ?OBJ1 
+  -- is smaller, with respect to all LengthMeasures, than ?OBJ2.
+  fun smaller  : El Object -> El Object -> Formula ;
+
+  -- The general relationship of being a son. 
+  -- (son ?CHILD ?PARENT) means that ?CHILD is the biological 
+  -- son of ?PARENT.
+  fun son  : El Organism -> El Organism -> Formula ;
+
+  -- The relationship of marriage between two Humans.
+  fun spouse  : El Human -> El Human -> Formula ;
+
+  -- (starts ?INTERVAL1 ?INTERVAL2) means that 
+  -- ?INTERVAL1 and ?INTERVAL2 are both TimeIntervals that have the same 
+  -- initial TimePoint and that ?INTERVAL1 ends before ?INTERVAL2.
+  fun starts  : El TimeInterval -> El TimeInterval -> Formula ;
+
+  -- The relation between a Human and a TemporaryResidence 
+  -- of the Human.
+  fun stays  : El Human -> El TemporaryResidence -> Formula ;
+
+  -- Means that the second argument can be 
+  -- ascribed to everything which has the first argument ascribed to it.
+  fun subAttribute  : El Attribute -> El Attribute -> Formula ;
+
+  -- (subCollection ?COLL1 ?COLL2) means that 
+  -- the Collection ?COLL1 is a proper part of the Collection ?COLL2.
+  fun subCollection  : El Collection -> El Collection -> Formula ;
+
+  -- The relation between two Graphs when one 
+  -- Graph is a part of the other. (subGraph ?GRAPH1 ?GRAPH2) means 
+  -- that ?GRAPH1 is a part of ?GRAPH2.
+  fun subGraph  : El Graph -> El Graph -> Formula ;
+
+  -- (subList ?LIST1 ?LIST2) means that ?LIST1 is a 
+  -- sublist of ?LIST2, i.e. every element of ?LIST1 is an element of ?LIST2 and 
+  -- the elements that are common to both Lists have the same order in both 
+  -- Lists. Elements that are common to both Lists and are consecutive in one 
+  -- list must also be consecutive in the other list. (Therefore _ the list of 
+  -- prime numbers smaller than 10 [1 2 3 5 7] is not a subList of the 
+  -- natural numbers smaller than 10 [1 2 3 4 5 6 7 8 9]).
+  fun subList  : El List -> El List -> Formula ;
+
+  -- (subOrganization ?ORG1 ?ORG2) means 
+  -- that ?ORG1 is an Organization which is a part of the Organization 
+  -- ?ORG2. Note that subOrganization is a ReflexiveRelation, so every 
+  -- Organization is a subOrganization of itself.
+  fun subOrganization  : El Organization -> El Organization -> Formula ;
+
+  -- (subPlan ?PLAN1 ?PLAN2) means that ?PLAN1 
+  -- is a Plan which is a proper part of ?PLAN2. This relation is generally 
+  -- used to relate a supporting Plan to the overall Plan in a particular 
+  -- context.
+  fun subPlan  : El Plan -> El Plan -> Formula ;
+
+  -- (subProcess ?SUBPROC ?PROC) means that ?SUBPROC 
+  -- is a subprocess of ?PROC. A subprocess is here understood as a temporally 
+  -- distinguished part (proper or not) of a Process.
+  fun subProcess  : El Process -> El Process -> Formula ;
+
+  -- (subProposition ?PROP1 ?PROP2) means that 
+  -- ?PROP1 is a Proposition which is a proper part of the Proposition ?PROP2. 
+  -- In other words, subProposition is the analogue of properPart for chunks 
+  -- of abstract content.
+  fun subProposition  : El Proposition -> El Proposition -> Formula ;
+
+  -- (subSystem ?SUB ?SYSTEM) means that the 
+  -- PhysicalSystem ?SUB is a part of the PhysicalSystem ?SYSTEM.
+  fun subSystem  : El PhysicalSystem -> El PhysicalSystem -> Formula ;
+
+  -- (subclass ?CLASS1 ?CLASS2) means that ?CLASS1 is 
+  -- a subclass of ?CLASS2, i.e. every instance of ?CLASS1 is also an instance of 
+  -- ?CLASS2. A class may have multiple superclasses and subclasses.
+  fun subclass  : El SetOrClass -> El SetOrClass -> Formula ;
+
+  -- (subset ?SET1 ?SET2) is true just in case the 
+  -- elements of the Set ?SET1 are also elements of the Set ?SET2.
+  fun subset  : El Set -> El Set -> Formula ;
+
+  -- (subsumedExternalConcept 
+  -- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING is subsumed 
+  -- by the meaning of ?STRING in ?LANGUAGE, i.e. the concept ?THING is narrower 
+  -- in meaning than ?STRING.
+  fun subsumedExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
+
+  -- A BinaryPredicate that relates two 
+  -- subclasses of ContentBearingObject. (subsumesContentClass ?CLASS1 
+  -- ?CLASS2) means that the content expressed by each instance of ?CLASS2 is 
+  -- also expressed by each instance of ?CLASS1. Examples include the 
+  -- relationship between a poem and one of its stanzas or between a book and 
+  -- one of its chapters. Note that this is a relation between subclasses of 
+  -- ContentBearingObject, rather than instances. If one wants to relate 
+  -- instances, the Predicate subsumesContentInstance can be used. Note 
+  -- that subsumesContentClass is needed in many cases. Consider, for 
+  -- example, the relation between the King James edition of the Bible and its 
+  -- Book of Genesis. This relation holds for every copy of this edition and 
+  -- not just for a single instance.
+  fun subsumesContentClass : Desc ContentBearingObject -> Desc ContentBearingObject -> Formula ;
+
+  -- A BinaryPredicate relating two 
+  -- instances of ContentBearingObject. (subsumesContentInstance ?OBJ1 ?OBJ2) 
+  -- means that the content expressed by ?OBJ2 is part of the content expressed 
+  -- by ?OBJ1. An example is the relationship between a handwritten poem and 
+  -- one of its stanzas. Note that this is a relation between instances, 
+  -- rather than Classes. If one wants to assert a content relationship 
+  -- between Classes, e.g. between the version of an intellectual work and a 
+  -- part of that work, the relation subsumesContentClass should be used.
+  fun subsumesContentInstance  : El ContentBearingObject -> El ContentBearingObject -> Formula ;
+
+  -- (subsumingExternalConcept 
+  -- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING subsumes 
+  -- the meaning of ?STRING in ?LANGUAGE, i.e. the concept ?THING is broader 
+  -- in meaning than ?STRING.
+  fun subsumingExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
+
+  -- (successorAttribute ?ATTR1 ?ATTR2) 
+  -- means that ?ATTR2 is the Attribute that comes immediately after ?ATTR1 
+  -- on the scale that they share.
+  fun successorAttribute  : El Attribute -> El Attribute -> Formula ;
+
+  -- The transitive closure of 
+  -- successorAttribute. (successorAttributeClosure ?ATTR1 ?ATTR2) means 
+  -- that there is a chain of successorAttribute assertions connecting 
+  -- ?ATTR1 and ?ATTR2.
+  fun successorAttributeClosure  : El Attribute -> El Attribute -> Formula ;
+
+  -- (superficialPart ?OBJ1 ?OBJ2) 
+  -- means that ?OBJ1 is a part of ?OBJ2 that has no interior parts of its own 
+  -- (or, intuitively, that only overlaps those parts of ?OBJ2 that are 
+  -- externally connected with the mereological complement of ?OBJ2). This too 
+  -- is a transitive relation closed under MereologicalSumFn and 
+  -- MereologicalProductFn.
+  fun superficialPart  : El Object -> El Object -> Formula ;
+
+  -- (surface ?OBJ1 ?OBJ2) means that ?OBJ1 
+  -- is a maximally connected superficialPart of ?OBJ2. Note that some 
+  -- SelfConnectedObjects have more than one surface, e.g. a hollow 
+  -- object like a tennis ball has both an inner and an outer surface.
+  fun surface  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
+
+  -- (synonymousExternalConcept 
+  -- ?STRING ?THING ?LANGUAGE) means that the SUMO concept ?THING has the 
+  -- same meaning as ?STRING in ?LANGUAGE.
+  fun synonymousExternalConcept  : El SymbolicString -> El Entity -> El Language -> Formula ;
+
+  -- (systemPart ?PART ?SYSTEM) means that 
+  -- the Physical thing ?PART is a SystemElement in the PhysicalSystem 
+  -- ?SYSTEM.
+  fun systemPart  : El Physical -> El PhysicalSystem -> Formula ;
+
+  -- The temporal analogue of the spatial part 
+  -- predicate. (temporalPart ?POS1 ?POS2) means that TimePosition ?POS1 
+  -- is part of TimePosition ?POS2. Note that since temporalPart is a 
+  -- ReflexiveRelation every TimePostion is a temporalPart of itself.
+  fun temporalPart  : El TimePosition -> El TimePosition -> Formula ;
+
+  -- (temporallyBetween ?POINT1 ?POINT2 
+  -- ?POINT3) means that the TimePoint ?POINT2 is between the TimePoints 
+  -- ?POINT1 and ?POINT3, i.e. ?POINT1 is before ?POINT2 and ?POINT2 is before 
+  -- ?POINT3.
+  fun temporallyBetween  : El TimePoint -> El TimePoint -> El TimePoint -> Formula ;
+
+  -- (temporallyBetweenOrEqual ?POINT1 ?POINT2 
+  -- ?POINT3) means that the TimePoint ?POINT1 is before or equal to the 
+  -- TimePoint ?POINT2 and ?POINT2 is before or equal to the TimePoint 
+  -- ?POINT3.
+  fun temporallyBetweenOrEqual  : El TimePoint -> El TimePoint -> El TimePoint -> Formula ;
+
+  -- This relation holds between an instance of 
+  -- Physical and an instance of TimePosition just in case the temporal 
+  -- lifespan of the former includes the latter. In other words, (time
+  -- ?THING ?TIME) means that ?THING existed or occurred at ?TIME. Note 
+  -- that time does for instances of Physical what holdsDuring does 
+  -- for instances of Formula. The constants located and time are 
+  -- the basic spatial and temporal predicates, respectively.
+  fun time  : El Physical -> El TimePosition -> Formula ;
+  
+  fun totalOrderingOn : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def totalOrderingOn c p = and (partialOrderingOn c p)
+                                (trichotomizingOn  c p) ;
+
+  -- (top ?TOP ?OBJECT) means that ?TOP is the highest maximal 
+  -- superficial part of ?OBJECT.
+  fun top  : El SelfConnectedObject -> El SelfConnectedObject -> Formula ;
+
+  -- (transactionAmount ?TRANSACTION 
+  -- ?AMOUNT) means that ?AMOUNT is an instance of CurrencyMeasure being 
+  -- exhanged in the FinancialTransaction ?TRANSACTION.
+  fun transactionAmount  : El FinancialTransaction -> El CurrencyMeasure -> Formula ;
+
+  -- (traverses ?OBJ1 ?OBJ2) means that ?OBJ1 
+  -- crosses or extends across ?OBJ2. Note that crosses and 
+  -- penetrates are subrelations of traverses.
+  fun traverses  : El Object -> El Object -> Formula ;
+
+  -- A binary predicate ?REL is trichotomizing on a set or class only if, 
+  -- for all instances ?INST1 and ?INST2 of the set or class, 
+  -- at least one of the following holds: 
+  --    (?REL ?INST1 ?INST2), 
+  --    (?REL ?INST2 ?INST1) or 
+  --    (equal ?INST1 ?INST2)
+  fun trichotomizingOn : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def trichotomizingOn c p = forall c (\INST1 -> forall c (\INST2 -> or (or (p (var c c ? INST1) (var c c ? INST2)) 
+                                                                            (p (var c c ? INST2) (var c c ? INST1)))
+                                                                        (equal (var c Entity ? INST1) (var c Entity ? INST2)))) ;
+
+  -- The BinaryPredicate that relates a Sentence 
+  -- to its TruthValue.
+  fun truth  : El Sentence -> El TruthValue -> Formula ;
+
+  -- The class of names that uniquely identify 
+  -- an instance of Entity. Some examples of uniqueIdentifiers are the keys 
+  -- of tables in database applications and
+  -- the ISBN (International Standard Book Number).
+  fun uniqueIdentifier  : El SymbolicString -> El Entity -> Formula ;
+
+  -- (uses ?OBJECT AGENT) means that ?OBJECT is used by 
+  -- ?AGENT as an instrument in an unspecified Process. This Predicate, 
+  -- as its corresponding axiom indicates, is a composition of the CaseRoles 
+  -- agent and instrument.
+  fun uses  : El Object -> El Agent -> Formula ;
+
+  -- Some Artifacts have a life cycle with discrete 
+  -- stages or versions. (version ARTIFACT1 ARTIFACT2) means that ARTIFACT1 
+  -- is a version of ARTIFACT2. Note that this Predicate relates subclasses of 
+  -- Artifact and not instances.
+  fun version : Desc Artifact -> Desc Artifact -> Formula ;
+
+  -- (wants ?AGENT ?OBJECT) means that ?OBJECT is desired by ?AGENT, 
+  -- i.e. ?AGENT believes that ?OBJECT will satisfy one of its goals. Note that there is 
+  -- no implication that what is wanted by an agent is not already possessed by the agent.
+  fun wants  : El CognitiveAgent -> El Physical -> Formula ;
+
+  -- (wears ?AGENT ?CLOTHING) means that ?AGENT is wearing 
+  -- the item of Clothing ?CLOTHING.
+  fun wears  : El Animal -> El Clothing -> Formula ;
+
+  -- (weight ?O ?MM) means that on planet earth
+  -- the SelfConnectedObject ?O has the weight ?MM.
+  fun weight  : El SelfConnectedObject -> El MassMeasure -> Formula ;
+
+  -- binary predicate that is used to state the measure 
+  -- of an Object from side to side at its widest span.
+  fun width  : El Object -> El PhysicalQuantity -> Formula ;
+
+  -- (wife ?WOMAN ?MAN) means that ?WOMAN is the wife of ?MAN.
+  fun wife  : El Woman -> El Man -> Formula ;
+
+
+  -- relations
+  fun SingleValuedRelation : (c : Class) -> (El c -> Formula) -> Formula;
+  def SingleValuedRelation c f = 
+          forall c (\x -> forall c (\y -> impl (and (f (var c c ? x)) (f (var c c ? y)))
+                                               (equal (var c Entity ? x) (var c Entity ? y))));
+
+  fun AntisymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def AntisymmetricRelation c f = 
+          forall c (\x -> forall c (\y -> impl (and (f (var c c ? x) (var c c ? y))
+                                                    (f (var c c ? y) (var c c ? x)))
+                                               (equal (var c Entity ? x) (var c Entity ? y)))) ;
+
+  fun IntentionalRelation : (c1,c2 : Class) -> (El c1 -> El c2 -> Formula) -> Formula ;
+  def IntentionalRelation c1 c2 f = 
+          -- assume binary predicate, since it is mostly used for that
+          forall c1 (\x -> forall c2 (\y -> inScopeOfInterest (var c1 CognitiveAgent ? x) (var c2 Entity ? y)));
+        
+
+  fun ReflexiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def ReflexiveRelation c f = 
+          forall c (\x -> f (var c c ? x) (var c c ? x));
+
+  fun SymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def SymmetricRelation c f = 
+          forall c (\x -> forall c (\y -> impl (f (var c c ? x) (var c c ? y))
+                                               (f (var c c ? y) (var c c ? x))));
+
+  fun EquivalenceRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def EquivalenceRelation c f = 
+          and (and (ReflexiveRelation c f)
+                   (SymmetricRelation c f))
+              (TransitiveRelation c f);
+
+  fun TransitiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def TransitiveRelation c f = 
+          forall c (\x -> forall c (\y -> forall c (\z -> impl (and (f (var c c ? x) (var c c ? y)) 
+                                                                    (f (var c c ? y) (var c c ? z)))
+                                                               (f (var c c ? x) (var c c ? z)))));
+
+  fun IrreflexiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def IrreflexiveRelation c f = 
+          forall c (\x -> not (f (var c c ? x) (var c c ? x))) ;
+
+  fun AsymmetricRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def AsymmetricRelation c f = 
+          and (AntisymmetricRelation c f) (IrreflexiveRelation c f);
+
+  fun PropositionalAttitude : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def PropositionalAttitude c f = 
+          AsymmetricRelation c f;
+
+  fun ObjectAttitude : (c1,c2 : Class) -> (El c1 -> El c2 -> Formula) -> Formula ;
+  def ObjectAttitude c1 c2 f = 
+          IntentionalRelation c1 c2 f ;
+
+  fun IntransitiveRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def IntransitiveRelation c f = 
+          forall c (\x -> forall c (\y -> forall c (\z -> impl (and (f (var c c ? x) (var c c ? y)) 
+                                                                    (f (var c c ? y) (var c c ? z)))
+                                                               (not (f (var c c ? x) (var c c ? z)))))) ;
+
+  fun PartialOrderingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def PartialOrderingRelation c f = 
+          and (and (TransitiveRelation c f)
+                   (AntisymmetricRelation c f))
+              (ReflexiveRelation c f) ;
+
+  fun TrichotomizingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def TrichotomizingRelation c f = 
+          forall c (\x -> forall c (\y -> or (or (and (and (f (var c c ? x) (var c c ? y))
+                                                           (not (equal (var c Entity ? x) (var c Entity ? y))))
+                                                      (not (f (var c c ? y) (var c c ? x))))
+                                                 (and (and (not (f (var c c ? x) (var c c ? y)))
+                                                           (equal (var c Entity ? x) (var c Entity ? y)))
+                                                      (not (f (var c c ? y) (var c c ? x)))))
+                                             (and (and (f (var c c ? y) (var c c ? x))
+                                                       (not (equal (var c Entity ? x) (var c Entity ? y))))
+                                                  (not (f (var c c ? x) (var c c ? y))))));
+
+  fun TotalOrderingRelation : (c : Class) -> (El c -> El c -> Formula) -> Formula ;
+  def TotalOrderingRelation c f = 
+            and (PartialOrderingRelation c f) (TrichotomizingRelation c f) ;
+
+  fun OneToOneFunction : (c1, c2 : Class) -> (El c1 -> Ind c2) -> Formula ;
+  def OneToOneFunction c1 c2 f = forall c1(\x -> 
+            forall c1 (\y -> impl (not (equal (var c1 Entity ? x) (var c1 Entity ? y))) 
+                                  (not (equal (el c2 Entity ? (f (var c1 c1 ? x)))
+                                              (el c2 Entity ? (f (var c1 c1 ? y)))))));
+
+  fun SequenceFunction : (c : Class) -> (El Integer -> Ind c) -> Formula ;
+  def SequenceFunction c f = 
+            OneToOneFunction Integer c f ;
+
+  fun AssociativeFunction : (c : Class) -> (El c -> El c -> Ind c) -> Formula ;
+  def AssociativeFunction c f = 
+            forall c (\x -> forall c (\y -> forall c (\z -> equal (el c Entity ? (f (var c c ? x) (el c c ? (f (var c c ? y) (var c c ? z))))) 
+                                                                  (el c Entity ? (f (el c c ? (f (var c c ? x) (var c c ? y))) (var c c ? z))))));
+
+  fun CommutativeFunction : (c1,c2 : Class) -> (El c1 -> El c1 -> Ind c2) -> Formula ;
+  def CommutativeFunction c1 c2 f = 
+            forall c1 (\x -> forall c1 (\y -> equal (el c2 Entity ? (f (var c1 c1 ? x) (var c1 c1 ? y)))
+                                                    (el c2 Entity ? (f (var c1 c1 ? y) (var c1 c1 ? y)))));
+
+  fun identityElement : (c : Class) -> (El c -> El c -> Ind c) -> El c -> Formula ;
+  def identityElement c f elem = 
+            forall c (\x -> equal (el c Entity ? (f (var c c ? x) elem)) (var c Entity ? x));
+
+  fun distributes : (c : Class) -> (El c -> El c -> Ind c) -> (El c -> El c -> Ind c) -> Formula ;
+  def distributes c f g = 
+            forall c (\x -> forall c (\y -> forall c (\z -> equal (el c Entity ? (g (el c c ? (f (var c c ? x) (var c c ? y))) (var c c ? z)))
+                                                                  (el c Entity ? (f (el c c ? (g (var c c ? x) (var c c ? z))) (el c c ? (g (var c c ? y) (var c c ? z))))))));
+ 
+  fun inverse : (c : Class) -> (El c -> El c -> Formula) -> (El c -> El c -> Formula) -> Formula ;
+  def inverse c f g = 
+            forall c (\x -> forall c (\y -> equiv (f (var c c ? x) (var c c ? y))
+                                                  (g (var c c ? y) (var c c ? x))));                                     
+
+  fun subRelation2El : (c1,c2,c3,c4 : Class) -> (El c1 -> El c2 -> Formula) -> (El c3 -> El c4 -> Formula) -> Formula ;
+  def subRelation2El c1 c2 c3 c4 f g = 
+            forall c1 (\x -> forall c2 (\y -> impl (f (var c1 c1 ? x) (var c2 c2 ? y))
+                                                   (g (var c1 c3 ? x) (var c2 c4 ? y))));
+
+
+  --others
+  fun toInt : Int -> Ind Integer ;
+  fun toRealNum : Float -> Ind RealNumber ;
+
 }
diff --git a/examples/SUMO/MergeBul.gf b/examples/SUMO/MergeBul.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MergeBul.gf
@@ -0,0 +1,16 @@
+concrete MergeBul of Merge = BasicBul ** open SyntaxBul, ParadigmsBul in {
+
+flags
+  coding=utf8 ;
+
+lin
+  Bird = mkCN (mkN041 "птица") ;
+  Monday = mkCN (mkN014 "понеделник") ;
+  Tuesday = mkCN (mkN014 "вторник") ;
+  Wednesday = mkCN (mkN043 "сряда") ;
+  Thursday = mkCN (mkN014 "четвъртък") ;
+  Friday = mkCN (mkN014 "петък") ;
+  Saturday = mkCN (mkN041 "събота") ;
+  Sunday = mkCN (mkN047 "неделя") ;
+
+};
diff --git a/examples/SUMO/MergeEng.gf b/examples/SUMO/MergeEng.gf
--- a/examples/SUMO/MergeEng.gf
+++ b/examples/SUMO/MergeEng.gf
@@ -1,990 +1,1006 @@
-concrete MergeEng of Merge = BasicEng ** open DictLangEng, DictEng, ParadigmsEng, ResEng, ParamBasic in {
- 
-lin
--- single instances 
-AngularDegree = MassNP (AdjCN (PositA angular_A) (UseN degree_N)) ;
-AtomGram = MassNP (ApposCN (UseN atom_N) (MassNP (UseN gram_N))) ;
-Bit = MassNP (UseN bit_N) ;
-Black = MassNP (UseN black_N) ;
-Blue = MassNP (UseN blue_N) ;
-BritishThermalUnit = MassNP (AdjCN (PositA british_A) (AdjCN (PositA thermal_A) (UseN unit_N))) ;
-Calorie = MassNP (UseN calorie_N) ;
-Ampere = MassNP (UseN ampere_N) ;
-Joule = MassNP (UseN joule_N) ;
-Watt = MassNP (UseN watt_N) ;
-Volt = MassNP (UseN volt_N) ;
-Ohm = MassNP (UseN ohm_N) ;
-Gray = MassNP (UseN gray_N) ;
-ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
-Gram = MassNP (UseN gram_N) ;
-Hertz = DetCN (DetQuant IndefArt NumSg) (UseN hertz_N) ;
-Kilogram = MassNP (UseN kilogram_N) ;
-Meter = MassNP (UseN meter_N) ;
-Mole = MassNP (UseN mole_N) ;
-SecondDuration = MassNP (AdjCN (AdjOrd (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) (UseN duration_N)) ;
-Left = MassNP (UseN left_N) ;
-Right = MassNP (UseN right_N) ;
-CentralTimeZone = MassNP (AdjCN (PositA central_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
-Cup = MassNP (UseN cup_N) ;
-Damp = MassNP (UseN damp_N) ;
-DayDuration = MassNP (ApposCN (UseN day_N) (MassNP (UseN duration_N))) ;
-East = MassNP (UseN east_N) ;
-EasternTimeZone = MassNP (AdjCN (PositA eastern_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
-ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
-Female = MassNP (UseN female_N) ;
-Fluid = MassNP (UseN fluid_N) ;
-FootLength = MassNP (ApposCN (UseN foot_N) (MassNP (UseN length_N))) ;
-Gas = MassNP (UseN gas_N) ;
-Horsepower = DetCN (DetQuant IndefArt NumSg) (UseN horsepower_N) ;
-HourDuration = MassNP (ApposCN (UseN hour_N) (MassNP (UseN duration_N))) ;
-Inch = MassNP (UseN inch_N) ;
-InchMercury = MassNP (ApposCN (UseN inch_N) (MassNP (UseN mercury_N))) ;
-Liquid = MassNP (UseN liquid_N) ;
-Living = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 live_V2)) ;
-Male = MassNP (UseN male_N) ;
-Mile = MassNP (UseN mile_N) ;
-MinuteDuration = MassNP (AdjCN (PositA minute_A) (UseN duration_N)) ;
-MmMercury = DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN mm_N) (MassNP (UseN mercury_N))) ;
-MonthDuration = MassNP (ApposCN (UseN month_N) (MassNP (UseN duration_N))) ;
-MountainTimeZone = MassNP (ApposCN (ApposCN (UseN mountain_N) (MassNP (UseN time_N))) (MassNP (UseN zone_N))) ;
-Necessity = MassNP (UseN necessity_N) ;
-NegativeInfinity = MassNP (AdjCN (PositA negative_A) (UseN infinity_N)) ;
-North = MassNP (UseN north_N) ;
-NullList = MassNP (AdjCN (PositA null_A) (UseN list_N)) ;
-Obligation = MassNP (UseN obligation_N) ;
-Ounce = MassNP (UseN ounce_N) ;
-PacificTimeZone = MassNP (AdjCN (PositA pacific_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
-Permission = MassNP (UseN permission_N) ;
-Pi = MassNP (UseN pi_N) ;
-Pint = MassNP (UseN pint_N) ;
-Plasma = MassNP (UseN plasma_N) ;
-PositiveInfinity = MassNP (AdjCN (PositA positive_A) (UseN infinity_N)) ;
-Possibility = MassNP (UseN possibility_N) ;
-PoundForce = MassNP (ApposCN (UseN pound_N) (MassNP (UseN force_N))) ;
-PoundMass = MassNP (ApposCN (UseN pound_N) (MassNP (UseN mass_N))) ;
-Prohibition = MassNP (UseN prohibition_N) ;
-Quart = MassNP (UseN quart_N) ;
-Red = MassNP (UseN red_N) ;
-Rough = MassNP (UseN rough_N) ;
-Sitting = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 sit_V2)) ;
-Slug = MassNP (UseN slug_N) ;
-Smooth = MassNP (UseN smooth_N) ;
-Solid = MassNP (UseN solid_N) ;
-South = MassNP (UseN south_N) ;
-Standing = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 stand_V2)) ;
-True = MassNP (UseN true_N) ;
-Unconscious = MassNP (UseN unconscious_N) ;
-UnitedKingdomGallon = MassNP (AdjCN (PositA united_A) (ApposCN (UseN kingdom_N) (MassNP (UseN gallon_N)))) ;
-UnitedStatesCent = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN cent_N)))) ;
-UnitedStatesDollar = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN dollar_N)))) ;
-UnitedStatesGallon = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN gallon_N)))) ;
-Vertical = MassNP (UseN vertical_N) ;
-WeekDuration = MassNP (ApposCN (UseN week_N) (MassNP (UseN duration_N))) ;
-West = MassNP (UseN west_N) ;
-Wet = MassNP (UseN wet_N) ;
-White = MassNP (UseN white_N) ;
-YearDuration = MassNP (ApposCN (UseN year_N) (MassNP (UseN duration_N))) ;
-Yellow = MassNP (UseN yellow_N) ;
-Law = MassNP (UseN law_N) ;
-Promise = MassNP (UseN promise_N) ;
-PurchaseContract = MassNP (ApposCN (UseN purchase_N) (MassNP (UseN contract_N))) ;
-Warranty = MassNP (UseN warranty_N) ;
-NakedPromise = MassNP (AdjCN (PositA naked_A) (UseN promise_N)) ;
-
-
-
--- subclass declarations :
-AbnormalAnatomicalStructure = AdjCN (PositA abnormal_A) (AdjCN (PositA anatomical_A) (UseN structure_N)) ;
-Abstract = UseN abstract_N ;
-Adjective = UseN adjective_N ;
-Adverb = UseN adverb_N ;
-Advertising = UseN2 (VerbToNounV2 advertise_V2) ;
-AgeGroup = ApposCN (UseN age_N) (MassNP (UseN group_N)) ;
-Agent = UseN agent_N ;
-Air = UseN air_N ;
-Alga = UseN alga_N ;
-Amphibian = UseN amphibian_N ;
-AnatomicalStructure = AdjCN (PositA anatomical_A) (UseN structure_N) ;
-AngleMeasure = ApposCN (UseN angle_N) (MassNP (UseN measure_N)) ;
-Animal = UseN animal_N ;
-AnimalAnatomicalStructure = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
-AnimalLanguage = ApposCN (UseN animal_N) (MassNP (UseN language_N)) ;
-AnimalSubstance = ApposCN (UseN animal_N) (MassNP (UseN substance_N)) ;
-Ape = UseN ape_N ;
-April = UseN april_N ;
-AquaticMammal = AdjCN (PositA aquatic_A) (UseN mammal_N) ;
-Arachnid = UseN arachnid_N ;
-AreaMeasure = ApposCN (UseN area_N) (MassNP (UseN measure_N)) ;
-Argument = UseN argument_N ;
-ArtWork = ApposCN (UseN art_N) (MassNP (UseN work_N)) ;
-Article = UseN article_N ;
-Artifact = UseN artifact_N ;
-ArtificialLanguage = AdjCN (PositA artificial_A) (UseN language_N) ;
-AsexualReproduction = AdjCN (PositA asexual_A) (UseN reproduction_N) ;
-AstronomicalBody = AdjCN (PositA astronomical_A) (UseN body_N) ;
-Atom = UseN atom_N ;
-AtomicNucleus = AdjCN (PositA atomic_A) (UseN nucleus_N) ;
-Attaching = UseN2 (VerbToNounV2 attach_V2) ;
-AttachingDevice = ApposCN (UseN2 (VerbToNounV2 attach_V2)) (MassNP (UseN device_N)) ;
-Attack = UseN attack_N ;
-Attribute = UseN attribute_N ;
-August = UseN august_N ;
-Bacterium = UseN bacterium_N ;
-Battle = UseN battle_N ;
-BeliefGroup = ApposCN (UseN belief_N) (MassNP (UseN group_N)) ;
-Betting = UseN2 (VerbToNounV2 bet_V2) ;
-Beverage = UseN beverage_N ;
-BinaryNumber = AdjCN (PositA binary_A) (UseN number_N) ;
-BiologicalAttribute = AdjCN (PositA biological_A) (UseN attribute_N) ;
-BiologicalProcess = AdjCN (PositA biological_A) (UseN process_N) ;
-Bird = UseN bird_N ;
-Birth = UseN birth_N ;
-Blood = UseN blood_N ;
-BodyCavity = ApposCN (UseN body_N) (MassNP (UseN cavity_N)) ;
-BodyCovering = ApposCN (UseN body_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 cover_V2))) ;
-BodyJunction = ApposCN (UseN body_N) (MassNP (UseN junction_N)) ;
-BodyMotion = ApposCN (UseN body_N) (MassNP (UseN motion_N)) ;
-BodyPart = AdvCN (UseN body_N) part_Adv ;
-BodyPosition = ApposCN (UseN body_N) (MassNP (UseN position_N)) ;
-BodySubstance = ApposCN (UseN body_N) (MassNP (UseN substance_N)) ;
-BodyVessel = ApposCN (UseN body_N) (MassNP (UseN vessel_N)) ;
-Boiling = UseN2 (VerbToNounV2 boil_V2) ;
-Bone = UseN bone_N ;
-Book = UseN book_N ;
-Borrowing = UseN2 (VerbToNounV2 borrow_V2) ;
-Breathing = UseN breathing_N ;
-Building = UseN building_N ;
-Buying = UseN2 (VerbToNounV2 buy_V2) ;
-Calculating = UseN2 (VerbToNounV2 calculate_V2) ;
-Carbohydrate = UseN carbohydrate_N ;
-Carnivore = UseN carnivore_N ;
-Carrying = UseN2 (VerbToNounV2 carry_V2) ;
-Cell = UseN cell_N ;
-Certificate = UseN certificate_N ;
-ChangeOfPossession = AdvCN (UseN change_N) (PrepNP part_Prep (MassNP (UseN possession_N))) ;
-Character = UseN character_N ;
-ChemicalDecomposition = AdjCN (PositA chemical_A) (UseN decomposition_N) ;
-ChemicalProcess = AdjCN (PositA chemical_A) (UseN process_N) ;
-ChemicalSynthesis = AdjCN (PositA chemical_A) (UseN synthesis_N) ;
-Circle = UseN circle_N ;
-City = UseN city_N ;
-Classifying = UseN2 (VerbToNounV2 classify_V2) ;
-ClosedTwoDimensionalFigure = AdjCN (PositA (VerbToParticipeA close_V)) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
-Clothing = UseN clothing_N ;
-Cloud = UseN cloud_N ;
-Collection = UseN collection_N ;
-Combining = UseN2 (VerbToNounV2 combine_V2) ;
-Combustion = UseN combustion_N ;
-CommercialAgent = AdjCN (PositA commercial_A) (UseN agent_N) ;
-CommercialService = AdjCN (PositA commercial_A) (UseN service_N) ;
-Committing = UseN2 (VerbToNounV2 commit_V2) ;
-Communication = UseN communication_N ;
-Comparing = UseN2 (VerbToNounV2 compare_V2) ;
-ComplexNumber = AdjCN (PositA complex_A) (UseN number_N) ;
-CompositeUnitOfMeasure = AdjCN (PositA composite_A) (AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N)))) ;
-CompoundSubstance = AdjCN (PositA compound_A) (UseN substance_N) ;
-ComputerLanguage = ApposCN (UseN computer_N) (MassNP (UseN language_N)) ;
-ComputerProgram = ApposCN (UseN computer_N) (MassNP (UseN program_N)) ;
-ComputerProgramming = ApposCN (UseN computer_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 program_V2))) ;
-Condensing = UseN2 (VerbToNounV2 condense_V2) ;
-Confining = UseN2 (VerbToNounV2 confine_V2) ;
-ConsciousnessAttribute = ApposCN (UseN consciousness_N) (MassNP (UseN attribute_N)) ;
-ConstantQuantity = AdjCN (PositA constant_A) (UseN quantity_N) ;
-Constructing = UseN2 (VerbToNounV2 construct_V2) ;
-ContentBearingObject = AdjCN (PositA content_A) (AdjCN (PositA (VerbToGerundA bear_V2)) (UseN object_N)) ;
-ContentBearingProcess = AdjCN (PositA content_A) (AdjCN (PositA (VerbToGerundA bear_V)) (UseN process_N)) ;
-ContentDevelopment = AdjCN (PositA content_A) (UseN development_N) ;
-Contest = UseN contest_N ;
-ContestAttribute = ApposCN (UseN contest_N) (MassNP (UseN attribute_N)) ;
-Continent = UseN continent_N ;
-Cooking = UseN cooking_N ;
-Cooling = UseN2 (VerbToNounV2 cool_V2) ;
-Cooperation = UseN cooperation_N ;
-Corporation = UseN corporation_N ;
-Counting = UseN2 (VerbToNounV2 count_V2) ;
-County = UseN county_N ;
-Covering = UseN covering_N ;
-Creation = UseN creation_N ;
-Crustacean = UseN crustacean_N ;
-Currency = UseN currency_N ;
-CurrencyMeasure = ApposCN (UseN currency_N) (MassNP (UseN measure_N)) ;
-Cutting = UseN cutting_N ;
-Damaging = UseN2 (VerbToNounV2 damage_V2) ;
-Dancing = UseN dancing_N ;
-Day = UseN day_N ;
-Death = UseN death_N ;
-December = UseN december_N ;
-Deciding = UseN2 (VerbToNounV2 decide_V2) ;
-Declaring = UseN2 (VerbToNounV2 declare_V2) ;
-Decoding = UseN2 (VerbToNounV2 decode_V2) ;
-Decreasing = UseN2 (VerbToNounV2 decrease_V2) ;
-DeductiveArgument = AdjCN (PositA deductive_A) (UseN argument_N) ;
-Demonstrating = UseN2 (VerbToNounV2 demonstrate_V2) ;
-Designing = UseN designing_N ;
-Destruction = UseN destruction_N ;
-Detaching = UseN2 (VerbToNounV2 detach_V2) ;
-Device = UseN device_N ;
-DiagnosticProcess = AdjCN (PositA diagnostic_A) (UseN process_N) ;
-Digesting = UseN2 (VerbToNounV2 digest_V2) ;
-DirectedGraph = AdjCN (PositA (VerbToParticipeA direct_V)) (UseN graph_N) ;
-Directing = UseN2 (VerbToNounV2 direct_V2) ;
-DirectionChange = ApposCN (UseN direction_N) (MassNP (UseN change_N)) ;
-DirectionalAttribute = AdjCN (PositA directional_A) (UseN attribute_N) ;
-Discovering = UseN2 (VerbToNounV2 discover_V2) ;
-DiseaseOrSyndrome = ConjCN or_Conj (BaseCN (UseN disease_N) (UseN syndrome_N)) ;
-Disseminating = UseN2 (VerbToNounV2 disseminate_V2) ;
-Drinking = UseN drinking_N ;
-Driving = UseN2 (VerbToNounV2 drive_V2) ;
-Drying = UseN2 (VerbToNounV2 dry_V2) ;
-DualObjectProcess = AdjCN (PositA dual_A) (ApposCN (UseN object_N) (MassNP (UseN process_N))) ;
-Eating = UseN2 (VerbToNounV2 eat_V2) ;
-EducationalOrganization = AdjCN (PositA educational_A) (UseN organization_N) ;
-EducationalProcess = AdjCN (PositA educational_A) (UseN process_N) ;
-Egg = UseN egg_N ;
-Election = UseN election_N ;
-Electron = UseN electron_N ;
-ElementalSubstance = AdjCN (PositA elemental_A) (UseN substance_N) ;
-EmotionalState = AdjCN (PositA emotional_A) (UseN state_N) ;
-Encoding = UseN2 (VerbToNounV2 encode_V2) ;
-EngineeringComponent = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN component_N) ;
-EngineeringConnection = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN connection_N) ;
-Entity = UseN entity_N ;
-Enzyme = UseN enzyme_N ;
-EthnicGroup = AdjCN (PositA ethnic_A) (UseN group_N) ;
-Evaporating = UseN2 (VerbToNounV2 evaporate_V2) ;
-EvenInteger = AdjCN (PositA even_A) (UseN integer_N) ;
-Experimenting = UseN (VerbToNoun experiment_V) ;
-Explanation = UseN explanation_N ;
-Expressing = UseN2 (VerbToNounV2 express_V2) ;
-Fabric = UseN fabric_N ;
-FactualText = AdjCN (PositA factual_A) (UseN text_N) ;
-Falling = UseN2 (VerbToNounV2 befall_V2) ;
-FamilyGroup = ApposCN (UseN family_N) (MassNP (UseN group_N)) ;
-FatTissue = AdjCN (PositA fat_A) (UseN tissue_N) ;
-February = UseN february_N ;
-Fern = UseN fern_N ;
-FictionalText = AdjCN (PositA fictional_A) (UseN text_N) ;
-FieldOfStudy = AdvCN (UseN field_N) (PrepNP part_Prep (MassNP (UseN study_N))) ;
-FinancialInstrument = AdjCN (PositA financial_A) (UseN instrument_N) ;
-FinancialTransaction = AdjCN (PositA financial_A) (UseN transaction_N) ;
-FiniteSet = AdjCN (PositA finite_A) (UseN set_N) ;
-Fish = UseN fish_N ;
-FlowRegion = ApposCN (UseN flow_N) (MassNP (UseN region_N)) ;
-FloweringPlant = AdjCN (PositA (VerbToGerundA flower_V)) (UseN plant_N) ;
-Food = UseN food_N ;
-Freezing = UseN2 (VerbToNounV2 deep_freeze_V2) ;
-FrequencyMeasure = ApposCN (UseN frequency_N) (MassNP (UseN measure_N)) ;
-FreshWaterArea = AdjCN (PositA fresh_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
-Friday = UseN friday_N ;
-FruitOrVegetable = ConjCN or_Conj (BaseCN (UseN fruit_N) (UseN vegetable_N)) ;
-FunctionQuantity = ApposCN (UseN function_N) (MassNP (UseN quantity_N)) ;
-Funding = UseN2 (VerbToNounV2 fund_V2) ;
-Fungus = UseN fungus_N ;
-Game = UseN game_N ;
-GasMixture = ApposCN (UseN gas_N) (MassNP (UseN mixture_N)) ;
-GasMotion = ApposCN (UseN gas_N) (MassNP (UseN motion_N)) ;
-GeologicalProcess = AdjCN (PositA geological_A) (UseN process_N) ;
-GeometricFigure = AdjCN (PositA geometric_A) (UseN figure_N) ;
-GeometricPoint = AdjCN (PositA geometric_A) (UseN point_N) ;
-Gesture = UseN gesture_N ;
-Getting = UseN2 (VerbToNounV2 beget_V2) ;
-Giving = UseN2 (VerbToNounV2 give_V2) ;
-GivingBack = AdjCN (PositA (VerbToGerundA give_V)) (UseN back_N) ;
-Gland = UseN gland_N ;
-Government = UseN government_N ;
-GovernmentOrganization = ApposCN (UseN government_N) (MassNP (UseN organization_N)) ;
-Grabbing = UseN2 (VerbToNounV2 grab_V2) ;
-Graduation = UseN graduation_N ;
-Graph = UseN graph_N ;
-GraphArc = ApposCN (UseN graph_N) (MassNP (UseN arc_N)) ;
-GraphCircuit = ApposCN (UseN graph_N) (MassNP (UseN circuit_N)) ;
-GraphElement = ApposCN (UseN graph_N) (MassNP (UseN element_N)) ;
-GraphLoop = ApposCN (UseN graph_N) (MassNP (UseN loop_N)) ;
-GraphNode = ApposCN (UseN graph_N) (MassNP (UseN node_N)) ;
-GraphPath = ApposCN (UseN graph_N) (MassNP (UseN path_N)) ;
-Group = UseN group_N ;
-GroupOfPeople = AdvCN (UseN group_N) (PrepNP part_Prep (MassNP (UseN people_N))) ;
-Growth = UseN growth_N ;
-Guiding = UseN2 (VerbToNounV2 guide_V2) ;
-Hearing = UseN hearing_N ;
-Heating = UseN heating_N ;
-Hiring = UseN2 (VerbToNounV2 hire_V2) ;
-Hole = UseN hole_N ;
-Hormone = UseN hormone_N ;
-Hour = UseN hour_N ;
-House = UseN house_N ;
-Human = UseN human_N ;
-HumanLanguage = AdjCN (PositA human_A) (UseN language_N) ;
-Hunting = UseN hunting_N ;
-Icon = UseN icon_N ;
-ImaginaryNumber = AdjCN (PositA imaginary_A) (UseN number_N) ;
-Impacting = UseN2 (VerbToNounV2 impact_V2) ;
-Impelling = UseN2 (VerbToNounV2 impel_V2) ;
-Increasing = UseN2 (VerbToNounV2 increase_V2) ;
-InductiveArgument = AdjCN (PositA inductive_A) (UseN argument_N) ;
-InformationMeasure = ApposCN (UseN information_N) (MassNP (UseN measure_N)) ;
-Ingesting = UseN2 (VerbToNounV2 ingest_V2) ;
-Injecting = UseN2 (VerbToNounV2 inject_V2) ;
-Injuring = UseN2 (VerbToNounV2 injure_V2) ;
-Insect = UseN insect_N ;
-Inserting = UseN2 (VerbToNounV2 insert_V2) ;
-Integer = UseN integer_N ;
-IntentionalProcess = AdjCN (PositA intentional_A) (UseN process_N) ;
-IntentionalPsychologicalProcess = AdjCN (PositA intentional_A) (AdjCN (PositA psychological_A) (UseN process_N)) ;
-InternalAttribute = AdjCN (PositA internal_A) (UseN attribute_N) ;
-InternalChange = AdjCN (PositA internal_A) (UseN change_N) ;
-Interpreting = UseN2 (VerbToNounV2 interpret_V2) ;
-InvalidDeductiveArgument = AdjCN (PositA invalid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
-Invertebrate = UseN invertebrate_N ;
-Investigating = UseN2 (VerbToNounV2 investigate_V2) ;
-IrrationalNumber = AdjCN (PositA irrational_A) (UseN number_N) ;
-Island = UseN island_N ;
-January = UseN january_N ;
-JoiningAnOrganization = ApposCN (UseN2 (VerbToNounV2 join_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
-Judging = UseN2 (VerbToNounV2 judge_V2) ;
-JudicialOrganization = AdjCN (PositA judicial_A) (UseN organization_N) ;
-JudicialProcess = AdjCN (PositA judicial_A) (UseN process_N) ;
-July = UseN july_N ;
-June = UseN june_N ;
-Keeping = UseN keeping_N ;
-Killing = UseN killing_N ;
-LandArea = ApposCN (UseN land_N) (MassNP (UseN area_N)) ;
-Language = UseN language_N ;
-LeapYear = ApposCN (UseN leap_N) (MassNP (UseN year_N)) ;
-Learning = UseN learning_N ;
-LeavingAnOrganization = ApposCN (UseN2 (VerbToNounV2 leave_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
-LegalAction = AdjCN (PositA legal_A) (UseN action_N) ;
-LegalDecision = AdjCN (PositA legal_A) (UseN decision_N) ;
-Lending = UseN2 (VerbToNounV2 lend_V2) ;
-LengthMeasure = ApposCN (UseN length_N) (MassNP (UseN measure_N)) ;
-LinguisticCommunication = AdjCN (PositA linguistic_A) (UseN communication_N) ;
-LinguisticExpression = AdjCN (PositA linguistic_A) (UseN expression_N) ;
-LiquidMixture = AdjCN (PositA liquid_A) (UseN mixture_N) ;
-LiquidMotion = AdjCN (PositA liquid_A) (UseN motion_N) ;
-List = UseN list_N ;
-Listening = UseN (VerbToNoun listen_V) ;
-LogicalOperator = AdjCN (PositA logical_A) (UseN operator_N) ;
-Looking = UseN2 (VerbToNounV2 look_V2) ;
-Machine = UseN machine_N ;
-Maintaining = UseN2 (VerbToNounV2 maintain_V2) ;
-Making = UseN making_N ;
-Mammal = UseN mammal_N ;
-Man = UseN man_N ;
-Managing = UseN2 (VerbToNounV2 manage_V2) ;
-ManualHumanLanguage = AdjCN (PositA manual_A) (AdjCN (PositA human_A) (UseN language_N)) ;
-Manufacture = UseN manufacture_N ;
-Manufacturer = UseN manufacturer_N ;
-March = UseN march_N ;
-Marsupial = UseN marsupial_N ;
-MassMeasure = ApposCN (UseN mass_N) (MassNP (UseN measure_N)) ;
-Matriculation = UseN matriculation_N ;
-May = UseN may_N ;
-Measuring = UseN2 (VerbToNounV2 measure_V2) ;
-MeasuringDevice = AdjCN (PositA (VerbToGerundA measure_V)) (UseN device_N) ;
-Meat = UseN meat_N ;
-Meeting = UseN meeting_N ;
-Melting = UseN2 (VerbToNounV2 melt_V2) ;
-MercantileOrganization = AdjCN (PositA mercantile_A) (UseN organization_N) ;
-Metal = UseN metal_N ;
-MilitaryForce = AdjCN (PositA military_A) (UseN force_N) ;
-MilitaryOrganization = AdjCN (PositA military_A) (UseN organization_N) ;
-MilitaryProcess = AdjCN (PositA military_A) (UseN process_N) ;
-Mineral = UseN mineral_N ;
-Minute = UseN minute_N ;
-Mixture = UseN mixture_N ;
-Molecule = UseN molecule_N ;
-Monday = UseN monday_N ;
-Monkey = UseN monkey_N ;
-Month = UseN month_N ;
-Morpheme = UseN morpheme_N ;
-Moss = UseN moss_N ;
-Motion = UseN motion_N ;
-MotionDownward = AdvCN (UseN motion_N) downward_Adv ;
-MotionPicture = ApposCN (UseN motion_N) (MassNP (UseN picture_N)) ;
-MotionUpward = AdvCN (UseN motion_N) upward_Adv ;
-Muscle = UseN muscle_N ;
-Music = UseN music_N ;
-MusicalInstrument = AdjCN (PositA musical_A) (UseN instrument_N) ;
-Naming = UseN2 (VerbToNounV2 name_V2) ;
-Nation = UseN nation_N ;
-NaturalLanguage = AdjCN (PositA natural_A) (UseN language_N) ;
-NaturalProcess = AdjCN (PositA natural_A) (UseN process_N) ;
-NaturalSubstance = AdjCN (PositA natural_A) (UseN substance_N) ;
-NegativeInteger = AdjCN (PositA negative_A) (UseN integer_N) ;
-NegativeRealNumber = AdjCN (PositA negative_A) (AdjCN (PositA real_A) (UseN number_N)) ;
-Neutron = UseN neutron_N ;
-NormativeAttribute = AdjCN (PositA normative_A) (UseN attribute_N) ;
-Noun = UseN noun_N ;
-NounPhrase = ApposCN (UseN noun_N) (MassNP (UseN phrase_N)) ;
-November = UseN november_N ;
-NullSet = AdjCN (PositA null_A) (UseN set_N) ;
-Number = UseN number_N ;
-Nutrient = UseN nutrient_N ;
-Object = UseN object_N ;
-ObjectiveNorm = AdjCN (PositA objective_A) (UseN norm_N) ;
-October = UseN october_N ;
-OddInteger = AdjCN (PositA odd_A) (UseN integer_N) ;
-Offering = UseN offering_N ;
-OlfactoryAttribute = AdjCN (PositA olfactory_A) (UseN attribute_N) ;
-OneDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
-OpenTwoDimensionalFigure = AdjCN (PositA open_A) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
-Ordering = UseN ordering_N ;
-Organ = UseN organ_N ;
-OrganOrTissueProcess = ApposCN (ConjCN or_Conj (BaseCN (UseN organ_N) (UseN tissue_N))) (MassNP (UseN process_N)) ;
-OrganicObject = AdjCN (PositA organic_A) (UseN object_N) ;
-Organism = UseN organism_N ;
-OrganismProcess = ApposCN (UseN organism_N) (MassNP (UseN process_N)) ;
-Organization = UseN organization_N ;
-OrganizationalProcess = AdjCN (PositA organizational_A) (UseN process_N) ;
-Oval = UseN oval_N ;
-ParamilitaryOrganization = AdjCN (PositA paramilitary_A) (UseN organization_N) ;
-ParticleWord = ApposCN (UseN particle_N) (MassNP (UseN word_N)) ;
-Patent = UseN patent_N ;
-Perception = UseN perception_N ;
-PerceptualAttribute = AdjCN (PositA perceptual_A) (UseN attribute_N) ;
-Periodical = UseN periodical_N ;
-PermanentResidence = AdjCN (PositA permanent_A) (UseN residence_N) ;
-Phrase = UseN phrase_N ;
-PhysicalAttribute = AdjCN (PositA physical_A) (UseN attribute_N) ;
-PhysicalQuantity = AdjCN (PositA physical_A) (UseN quantity_N) ;
-PhysicalState = AdjCN (PositA physical_A) (UseN state_N) ;
-PhysicalSystem = AdjCN (PositA physical_A) (UseN system_N) ;
-Plan = UseN plan_N ;
-PlaneAngleMeasure = ApposCN (ApposCN (UseN plane_N) (MassNP (UseN angle_N))) (MassNP (UseN measure_N)) ;
-Planning = UseN2 (VerbToNounV2 plan_V2) ;
-Plant = UseN plant_N ;
-PlantAnatomicalStructure = ApposCN (UseN plant_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
-PlantSubstance = ApposCN (UseN plant_N) (MassNP (UseN substance_N)) ;
-Poisoning = UseN2 (VerbToNounV2 poison_V2) ;
-Poking = UseN2 (VerbToNounV2 poke_V2) ;
-PoliticalOrganization = AdjCN (PositA political_A) (UseN organization_N) ;
-PoliticalProcess = AdjCN (PositA political_A) (UseN process_N) ;
-Pollen = UseN pollen_N ;
-Position = UseN position_N ;
-PositiveInteger = AdjCN (PositA positive_A) (UseN integer_N) ;
-PositiveRealNumber = AdjCN (PositA positive_A) (AdjCN (PositA real_A) (UseN number_N)) ;
-Precipitation = UseN precipitation_N ;
-Predicting = UseN2 (VerbToNounV2 predict_V2) ;
-PrepositionalPhrase = AdjCN (PositA prepositional_A) (UseN phrase_N) ;
-Pretending = UseN2 (VerbToNounV2 pretend_V2) ;
-Primate = UseN primate_N ;
-PrimeNumber = AdjCN (PositA prime_A) (UseN number_N) ;
-ProbabilityAttribute = ApposCN (UseN probability_N) (MassNP (UseN attribute_N)) ;
-Procedure = UseN procedure_N ;
-Process = UseN process_N ;
-Product = UseN product_N ;
-Proposition = UseN proposition_N ;
-Protein = UseN protein_N ;
-Proton = UseN proton_N ;
-PseudoGraph = AdjCN (PositA pseudo_A) (UseN graph_N) ;
-PsychologicalAttribute = AdjCN (PositA psychological_A) (UseN attribute_N) ;
-PsychologicalProcess = AdjCN (PositA psychological_A) (UseN process_N) ;
-Publication = UseN publication_N ;
-PureSubstance = AdjCN (PositA pure_A) (UseN substance_N) ;
-Pursuing = UseN2 (VerbToNounV2 pursue_V2) ;
-Putting = UseN2 (VerbToNounV2 put_V2) ;
-Quantity = UseN quantity_N ;
-QuantityChange = ApposCN (UseN quantity_N) (MassNP (UseN change_N)) ;
-Questioning = UseN2 (VerbToNounV2 question_V2) ;
-Radiating = UseN2 (VerbToNounV2 radiate_V2) ;
-RadiatingLight = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN light_N) ;
-RadiatingSound = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN sound_N) ;
-RationalNumber = AdjCN (PositA rational_A) (UseN number_N) ;
-Reading = UseN reading_N ;
-RealNumber = AdjCN (PositA real_A) (UseN number_N) ;
-Reasoning = UseN reasoning_N ;
-RecreationOrExercise = ConjCN or_Conj (BaseCN (UseN recreation_N) (UseN exercise_N)) ;
-Region = UseN region_N ;
-Releasing = UseN2 (VerbToNounV2 release_V2) ;
-ReligiousOrganization = AdjCN (PositA religious_A) (UseN organization_N) ;
-ReligiousProcess = AdjCN (PositA religious_A) (UseN process_N) ;
-Remembering = UseN2 (VerbToNounV2 remember_V2) ;
-Removing = UseN2 (VerbToNounV2 remove_V2) ;
-Repairing = UseN2 (VerbToNounV2 repair_V2) ;
-ReproductiveBody = AdjCN (PositA reproductive_A) (UseN body_N) ;
-Reptile = UseN reptile_N ;
-Requesting = UseN2 (VerbToNounV2 request_V2) ;
-Residence = UseN residence_N ;
-ResidentialBuilding = AdjCN (PositA residential_A) (UseN building_N) ;
-Roadway = UseN roadway_N ;
-Rodent = UseN rodent_N ;
-Room = UseN room_N ;
-Running = UseN running_N ;
-SaltWaterArea = AdjCN (PositA salt_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
-SaturationAttribute = ApposCN (UseN saturation_N) (MassNP (UseN attribute_N)) ;
-Saturday = UseN saturday_N ;
-Second = UseN second_N ;
-Seed = UseN seed_N ;
-Seeing = UseN2 (VerbToNounV2 foresee_V2) ;
-Selecting = UseN2 (VerbToNounV2 select_V2) ;
-SelfConnectedObject = ApposCN (UseN self_N) (MassNP (AdjCN (PositA (VerbToParticipeA connect_V)) (UseN object_N))) ;
-Selling = UseN selling_N ;
-Sentence = UseN sentence_N ;
-SentientAgent = AdjCN (PositA sentient_A) (UseN agent_N) ;
-Separating = UseN2 (VerbToNounV2 separate_V2) ;
-September = UseN september_N ;
-Series = UseN series_N ;
-ServiceProcess = ApposCN (UseN service_N) (MassNP (UseN process_N)) ;
-Set = UseN set_N ;
-SetOrClass = ConjCN or_Conj (BaseCN (UseN set_N) (UseN class_N)) ;
-SexAttribute = ApposCN (UseN sex_N) (MassNP (UseN attribute_N)) ;
-SexualReproduction = AdjCN (PositA sexual_A) (UseN reproduction_N) ;
-ShapeAttribute = ApposCN (UseN shape_N) (MassNP (UseN attribute_N)) ;
-ShapeChange = ApposCN (UseN shape_N) (MassNP (UseN change_N)) ;
-Shooting = UseN shooting_N ;
-ShoreArea = ApposCN (UseN shore_N) (MassNP (UseN area_N)) ;
-Singing = UseN singing_N ;
-SingleAgentProcess = AdjCN (PositA single_A) (ApposCN (UseN agent_N) (MassNP (UseN process_N))) ;
-SingleFamilyResidence = AdjCN (PositA single_A) (ApposCN (UseN family_N) (MassNP (UseN residence_N))) ;
-Smelling = UseN2 (VerbToNounV2 smell_V2) ;
-Smoke = UseN smoke_N ;
-SocialInteraction = AdjCN (PositA social_A) (UseN interaction_N) ;
-SocialRole = AdjCN (PositA social_A) (UseN role_1_N) ;
-SocialUnit = AdjCN (PositA social_A) (UseN unit_N) ;
-SolidAngleMeasure = AdjCN (PositA solid_A) (ApposCN (UseN angle_N) (MassNP (UseN measure_N))) ;
-Solution = UseN solution_N ;
-SoundAttribute = AdjCN (PositA sound_A) (UseN attribute_N) ;
-Speaking = UseN2 (VerbToNounV2 bespeak_V2) ;
-SpokenHumanLanguage = AdjCN (PositA (VerbToParticipeA speak_V)) (AdjCN (PositA human_A) (UseN language_N)) ;
-Spore = UseN spore_N ;
-Sport = UseN sport_N ;
-StateChange = ApposCN (UseN state_N) (MassNP (UseN change_N)) ;
-StateOfMind = AdvCN (UseN state_N) (PrepNP part_Prep (MassNP (UseN mind_N))) ;
-StateOrProvince = ConjCN or_Conj (BaseCN (UseN state_N) (UseN province_N)) ;
-StaticWaterArea = AdjCN (PositA static_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
-Stating = UseN2 (VerbToNounV2 state_V2) ;
-StationaryArtifact = AdjCN (PositA stationary_A) (UseN artifact_N) ;
-StreamWaterArea = ApposCN (ApposCN (UseN stream_N) (MassNP (UseN water_N))) (MassNP (UseN area_N)) ;
-SubatomicParticle = AdjCN (PositA subatomic_A) (UseN particle_N) ;
-SubjectiveAssessmentAttribute = AdjCN (PositA subjective_A) (ApposCN (UseN assessment_N) (MassNP (UseN attribute_N))) ;
-Substance = UseN substance_N ;
-Substituting = UseN2 (VerbToNounV2 substitute_V2) ;
-Summary = UseN summary_N ;
-Sunday = UseN sunday_N ;
-Supposing = UseN2 (VerbToNounV2 suppose_V2) ;
-SurfaceChange = ApposCN (UseN surface_N) (MassNP (UseN change_N)) ;
-Surgery = UseN surgery_N ;
-Suspension = UseN suspension_N ;
-Swimming = UseN swimming_N ;
-SymbolicString = AdjCN (PositA symbolic_A) (UseN string_N) ;
-SyntheticSubstance = AdjCN (PositA synthetic_A) (UseN substance_N) ;
-TactilePerception = AdjCN (PositA tactile_A) (UseN perception_N) ;
-TasteAttribute = ApposCN (UseN taste_N) (MassNP (UseN attribute_N)) ;
-Tasting = UseN2 (VerbToNounV2 taste_V2) ;
-TemperatureMeasure = ApposCN (UseN temperature_N) (MassNP (UseN measure_N)) ;
-TemporaryResidence = AdjCN (PositA temporary_A) (UseN residence_N) ;
-TerminatingEmployment = AdjCN (PositA (VerbToGerundA terminate_V)) (UseN employment_N) ;
-Text = UseN text_N ;
-TextureAttribute = ApposCN (UseN texture_N) (MassNP (UseN attribute_N)) ;
-TherapeuticProcess = AdjCN (PositA therapeutic_A) (UseN process_N) ;
-ThreeDimensionalFigure = AdjCN (PositA (compoundA (regA "three-dimensional"))) (UseN figure_N) ;
-Thursday = UseN thursday_N ;
-TimeDependentQuantity = ApposCN (ApposCN (UseN time_N) (MassNP (UseN dependent_N))) (MassNP (UseN quantity_N)) ;
-TimeDuration = ApposCN (UseN time_N) (MassNP (UseN duration_N)) ;
-TimeInterval = ApposCN (UseN time_N) (MassNP (UseN interval_N)) ;
-TimeMeasure = ApposCN (UseN time_N) (MassNP (UseN measure_N)) ;
-TimePoint = ApposCN (UseN time_N) (MassNP (UseN point_N)) ;
-TimePosition = ApposCN (UseN time_N) (MassNP (UseN position_N)) ;
-TimeZone = ApposCN (UseN time_N) (MassNP (UseN zone_N)) ;
-Tissue = UseN tissue_N ;
-Touching = UseN2 (VerbToNounV2 touch_V2) ;
-TraitAttribute = ApposCN (UseN trait_N) (MassNP (UseN attribute_N)) ;
-Transaction = UseN transaction_N ;
-Transfer = UseN transfer_N ;
-Translating = UseN2 (VerbToNounV2 translate_V2) ;
-Transportation = UseN transportation_N ;
-TransportationDevice = ApposCN (UseN transportation_N) (MassNP (UseN device_N)) ;
-Tree = UseN tree_N ;
-TruthValue = ApposCN (UseN truth_N) (MassNP (UseN value_N)) ;
-Tuesday = UseN tuesday_N ;
-TwoDimensionalAngle = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN angle_N) ;
-TwoDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
-Uncovering = UseN2 (VerbToNounV2 uncover_V2) ;
-UnilateralGetting = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 beget_V2)) ;
-UnilateralGiving = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 give_V2)) ;
-UniqueList = AdjCN (PositA unique_A) (UseN list_N) ;
-UnitOfAngularMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA angular_A) (UseN measure_N)))) ;
-UnitOfArea = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN area_N))) ;
-UnitOfAtmosphericPressure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA atmospheric_A) (UseN pressure_N)))) ;
-UnitOfCurrency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN currency_N))) ;
-UnitOfDuration = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN duration_N))) ;
-UnitOfFrequency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN frequency_N))) ;
-UnitOfInformation = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN information_N))) ;
-UnitOfLength = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN length_N))) ;
-UnitOfMass = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN mass_N))) ;
-UnitOfMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N))) ;
-UnitOfTemperature = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN temperature_N))) ;
-UnitOfVolume = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN volume_N))) ;
-ValidDeductiveArgument = AdjCN (PositA valid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
-Vehicle = UseN vehicle_N ;
-Verb = UseN verb_N ;
-VerbPhrase = ApposCN (UseN verb_N) (MassNP (UseN phrase_N)) ;
-Vertebrate = UseN vertebrate_N ;
-ViolentContest = AdjCN (PositA violent_A) (UseN contest_N) ;
-Virus = UseN virus_N ;
-VisualAttribute = AdjCN (PositA visual_A) (UseN attribute_N) ;
-Vitamin = UseN vitamin_N ;
-VocalCords = AdjCN (PositA vocal_A) (UseN cord_N) ;
-Vocalizing = UseN2 (VerbToNounV2 vocalize_V2) ;
-VolumeMeasure = ApposCN (UseN volume_N) (MassNP (UseN measure_N)) ;
-Voting = UseN2 (VerbToNounV2 vote_V2) ;
-Walking = UseN walking_N ;
-War = UseN war_N ;
-Water = UseN water_N ;
-WaterArea = ApposCN (UseN water_N) (MassNP (UseN area_N)) ;
-WaterCloud = ApposCN (UseN water_N) (MassNP (UseN cloud_N)) ;
-WaterMotion = ApposCN (UseN water_N) (MassNP (UseN motion_N)) ;
-Weapon = UseN weapon_N ;
-WearableItem = AdjCN (PositA wearable_A) (UseN item_N) ;
-WeatherProcess = ApposCN (UseN weather_N) (MassNP (UseN process_N)) ;
-Wedding = UseN wedding_N ;
-Wednesday = UseN wednesday_N ;
-Week = UseN week_N ;
-Wetting = UseN wetting_N ;
-Wind = UseN wind_N ;
-Woman = UseN woman_N ;
-Word = UseN word_N ;
-Worm = UseN worm_N ;
-Writing = UseN writing_N ;
-Year = UseN year_N ;
-
-
--- nullary functions 
-
-GreatestCommonDivisorFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdSuperl great_A)) (AdjCN (PositA common_A) (UseN divisor_N))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
-LeastCommonMultipleFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA least_A) (AdjCN (PositA common_A) (UseN multiple_N)))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
-ListFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN list_N)) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
-
--- unary functions 
-
-AbsoluteValueFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA absolute_A) (UseN value_N))) (PrepNP part_Prep ob) ;
-AbstractionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN abstraction_N)) (PrepNP part_Prep (MassNP ob)) ;
-BackFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN back_N)) (PrepNP part_Prep ob) ;
-BeginFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN2 (VerbToNounV2 begin_V2))) (PrepNP part_Prep ob) ;
-BeginNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
-CeilingFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN ceiling_N)) (PrepNP part_Prep ob) ;
-CenterOfCircleFn ob = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN centre_N)) (PrepNP part_Prep (MassNP (UseN circle_N)))) (PrepNP part_Prep ob) ;
-ComplementFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN complement_N)) (PrepNP part_Prep ob) ;
-CosineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN cosine_N)) (PrepNP part_Prep ob) ;
-CutSetFn ob = AdvCN (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N)) (PrepNP part_Prep ob) ;
-DenominatorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN denominator_N)) (PrepNP part_Prep ob) ;
-EndFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN end_N)) (PrepNP part_Prep ob) ;
-EndNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN end_N) (MassNP (UseN node_N)))) (PrepNP part_Prep ob) ;
-ExtensionFn ob = AdvCN (UseN extension_N) (PrepNP part_Prep  ob) ;
-FloorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN floor_N)) (PrepNP part_Prep ob) ;
-FrontFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN front_N)) (PrepNP part_Prep ob) ;
-FutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN future_N)) (PrepNP part_Prep ob) ;
-GeneralizedIntersectionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN intersection_N))) (PrepNP part_Prep (MassNP ob)) ;
-GeneralizedUnionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN union_N))) (PrepNP part_Prep (MassNP  ob)) ;
-GovernmentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN government_N)) (PrepNP part_Prep  ob) ;
-HoleHostFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN host_N)))) (PrepNP part_Prep ob) ;
-HoleSkinFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN skin_N)))) (PrepNP part_Prep ob) ;
-ImaginaryPartFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA imaginary_A) (UseN part_N))) (PrepNP part_Prep ob) ;
-ImmediateFamilyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN family_N))) (PrepNP part_Prep ob) ;
-ImmediateFutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN future_N))) (PrepNP part_Prep ob) ;
-ImmediatePastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN past_N))) (PrepNP part_Prep ob) ;
-InitialNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
-IntegerSquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN integer_N) square_Adv) (MassNP (UseN root_N)))) (PrepNP part_Prep ob) ;
-MagnitudeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN magnitude_N)) (PrepNP part_Prep ob) ;
-MinimalCutSetFn ob = AdvCN (AdjCN (PositA minimal_A) (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N))) (PrepNP part_Prep ob) ;
-NumeratorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN numerator_N)) (PrepNP part_Prep ob) ;
-PastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN past_N)) (PrepNP part_Prep ob) ;
-PathWeightFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) (MassNP (UseN weight_N)))) (PrepNP part_Prep ob) ;
-PowerSetFn ob = AdvCN (ApposCN (UseN power_N) (MassNP (UseN set_N))) (PrepNP part_Prep ob) ;
-PredecessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN predecessor_N)) (PrepNP part_Prep ob) ;
-PremisesFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN premise_N)) (PrepNP part_Prep ob) ;
-ProbabilityFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)) (PrepNP part_Prep (sentToNoun ob)) ;
-PropertyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN property_N)) (PrepNP part_Prep ob) ;
-RationalNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA rational_A) (UseN number_N))) (PrepNP part_Prep ob) ;
-RealNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA real_A) (UseN number_N))) (PrepNP part_Prep ob) ;
-ReciprocalFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN reciprocal_N)) (PrepNP part_Prep ob) ;
-RoundFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA round_A) (UseN value_N))) (PrepNP part_Prep ob) ;
-SineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sine_N)) (PrepNP part_Prep ob) ;
-SquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA square_A) (UseN root_N))) (PrepNP part_Prep ob) ;
-SuccessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN successor_N)) (PrepNP part_Prep ob) ;
-TangentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN tangent_N)) (PrepNP part_Prep ob) ;
-TerminalNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA terminal_A) (UseN node_N))) (PrepNP part_Prep ob) ;
-UnitFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN unit_N)) (PrepNP part_Prep ob) ;
-WealthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN wealth_N)) (PrepNP part_Prep ob) ;
-WhenFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)) (PrepNP part_Prep ob) ;
-YearFn ob = AdvCN (UseN year_N) (PrepNP part_Prep ob) ;
-KiloFn ob = AdvNP (MassNP (UseN kilo_N)) (PrepNP part_Prep ob) ;
-ListLengthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)) (PrepNP part_Prep ob) ;
-SignumFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sign_N)) (PrepNP part_Prep ob) ;
-
--- binary functions 
-
-AdditionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN addition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-DayFn ob1 ob2 = AdvCN (ApposCN (UseN day_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
-DivisionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN division_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
-EditionFn ob1 ob2 = AdvCN (ApposCN (UseN edition_N) (MassNP ob1)) (PrepNP part_Prep ob2) ;
-ExponentiationFn ob1 ob2 = AdvNP (AdvNP ob1 (PrepNP to_Prep (DetCN (DetQuant DefArt NumSg) (UseN power_N)))) (PrepNP part_Prep ob2) ;
-GraphPathFn ob1 ob2 = AdvCN (UseN path_N) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-HourFn ob1 ob2 = AdvCN (ApposCN (UseN hour_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
-IntersectionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN intersection_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-IntervalFn ob1 ob2 = AdvCN (AdvCN (UseN interval_N) (PrepNP from_Prep ob1)) (PrepNP to_Prep ob2) ;
-KappaFn ob1 ob2 = ApposCN (AdvCN (AdvCN (UseN class_N) (PrepNP part_Prep ob1)) where_Adv) (sentToNoun ob2) ;
-ListConcatenateFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN concatenation_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
-ListOrderFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN element_N)) (PrepNP with_Prep (MassNP (ApposCN (UseN number_N) ob2)))) (PrepNP in_Prep ob1) ;
-LogFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN logarithm_N)) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN base_N) ob2))) ;
-MaxFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN maximum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-MaximalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA maximal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-MinFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN minimum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-MinimalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA minimal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-MinuteFn ob1 ob2 = AdvCN (ApposCN (UseN minute_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
-MonthFn ob1 ob2 = AdvCN (ApposCN (UseN month_N) (MassNP ob1)) (PrepNP part_Prep (MassNP ob2)) ;
-MultiplicationFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN multiplication_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-PerFn ob1 ob2 = AdvNP ob1 (PrepNP per_Prep ob2) ;
-PeriodicalIssueFn ob1 ob2 = AdvCN (AdvCN (AdjCN (PositA periodical_A) (UseN issue_N)) (PrepNP part_Prep (MassNP ob1))) (PrepNP with_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN number_N) ob2))) ;
-RecurrentTimeIntervalFn ob1 ob2 = AdvCN (AdjCN (PositA recurrent_A) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2)))) ;
-RelativeComplementFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN complement_N) (PrepNP part_Prep ob2)) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob1) ;
-RelativeTimeFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN time_N) ob1) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob2) ;
-RemainderFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN remainder_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-SecondFn ob1 ob2 = AdvCN (ApposCN (UseN second_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
-SeriesVolumeFn ob1 ob2 = AdvCN (ApposCN (UseN volume_N) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN series_N) (MassNP ob1)))) ;
-SubtractionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN subtraction_N)) (PrepNP part_Prep ob2)) (PrepNP from_Prep ob1) ;
-TemporalCompositionFn ob1 ob2 = AdvCN (AdjCN (PositA temporal_A) (UseN composition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 (MassNP ob2)))) ;
-TimeIntervalFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-UnionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN union_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
-WhereFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)) (PrepNP part_Prep ob1)) (PrepNP at_Prep ob2) ;
-DensityFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN density_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
-SpeedFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN speed_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
-
--- quaternary functions 
-
-VelocityFn ob1 ob2 ob3 ob4 = AdvNP (AdvNP (AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN velocity_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2)) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob4) ;
-
-
--- nullary predicates
-
-contraryAttribute ob1 = mkPolSent (PredVP (ConjNP and_Conj ob1) (UseComp (CompNP (MassNP (AdjCN (PositA contrary_A) (UseN attribute_N)))))) ;
-exhaustiveAttribute ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj ob2) (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1))) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (UseN instance_N))))) ;
-exhaustiveDecomposition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1)))) ;
-partition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN partition_N)))) (PrepNP part_Prep (MassNP ob1)))) ;
-
-
-
--- binary predicates   
-abstractCounterpart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA abstract_A) (UseN counterpart_N))))) (PrepNP part_Prep ob2))) ;
-acquaintance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN acquaintance_N)))) (PrepNP part_Prep ob2))) ;
-atomicNumber ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA atomic_A) (UseN number_N))))) (PrepNP part_Prep ob2))) ;
-authors ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN author_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
-average ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN average_N)))) (PrepNP part_Prep ob2))) ;
-barometricPressure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA barometric_A) (UseN pressure_N))))) (PrepNP part_Prep ob2))) ;
-believes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a believe_V2) (sentToNoun ob2))) ;
-boilingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 boil_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
-causes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cause_V2) ob2)) ;
-causesProposition ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a cause_V2) (sentToNoun ob2))) ;
-causesSubclass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a cause_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))) (PrepNP part_Prep (MassNP ob2)))) ;
-citizen ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN citizen_N)))) (PrepNP part_Prep ob2))) ;
-conclusion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN conclusion_N)))) (PrepNP part_Prep ob2))) ;
-connected ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 connect_V2) (PrepNP to_Prep ob2))) ;
-considers ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a consider_V2) (sentToNoun ob2))) ;
-consistent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA consistent_A))) (PrepNP with_Prep ob2))) ;
-containsInformation ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN information_N) ob2)))) ;
-cooccur ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseV occur_V) (PositAdvAdj simultaneous_A)) (PrepNP with_Prep ob2))) ;
-copy ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN copy_N)))) (PrepNP part_Prep ob2))) ;
-date ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN date_N)))) (PrepNP part_Prep ob2))) ;
-decreasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a decrease_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
-desires ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a desire_V2) (sentToNoun ob2))) ;
-diameter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN diameter_N)))) (PrepNP part_Prep ob2))) ;
-duration ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN duration_N)))) (PrepNP part_Prep ob2))) ;
-earlier ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA early_A ob2)))) ;
-editor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN editor_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
-element ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
-employs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a employ_V2) ob2)) ;
-entails ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a entail_V2) (sentToNoun ob2))) ;
-equal ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA equal_A))) (PrepNP to_Prep ob2))) ;
-exploits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a exploit_V2) ob2)) ;
-expressedInLanguage ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 express_V2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
-faces ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a face_V2) ob2)) ;
-familyRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN family_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep ob2))) ;
-frequency ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN frequency_N)))) (PrepNP part_Prep ob2))) ;
-geometricPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA geometric_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
-graphMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
-graphPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
-hasPurpose ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2))))) ;
-hasSkill ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN skill_N)  ob2)))) ;
-holdsDuring ob1 ob2 = mkPolSent (PredVP (sentToNoun ob2) (AdvVP (UseV hold_V) (PrepNP during_Prep ob1))) ;
-holdsObligation ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN obligation_N) ob2)))) ;
-holdsRight ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN right_N)  ob2)))) ;
-hole ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN hole_N)))) (PrepNP part_Prep ob2))) ;
-identicalListItems ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA identical_A) (UseN item_N))))) ;
-inList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
-increasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a increase_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
-independentProbability ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (sentToNoun ob1) (sentToNoun ob2))) (ComplSlash (SlashV2a have_V2) (MassNP (AdjCN (PositA independent_A) (UseN probability_N))))) ;
-inhabits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a inhabit_V2) ob2)) ;
-inhibits ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a inhibit_V2) (MassNP ob2))) ;
-knows ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a know_V2) (sentToNoun ob2))) ;
-larger ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA large_A ob2)))) ;
-leader ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN leader_N)))) (PrepNP part_Prep ob2))) ;
-legalRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA legal_A) (UseN relation_N))))) (PrepNP part_Prep ob2))) ;
-lessThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (PositA less_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
-lineMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
-material ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN material_N)))) (PrepNP part_Prep ob2))) ;
-measure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
-meltingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 melt_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
-multiplicativeFactor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN factor_N)))) (PrepNP part_Prep ob2))) ;
-mutualAcquaintance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA mutual_A) (UseN acquaintance_N)))))) ;
-needs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a need_V2) ob2)) ;
-parallel ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA parallel_A))) (PrepNP to_Prep ob2))) ;
-parent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN parent_N)))) (PrepNP part_Prep ob2))) ;
-partialOrderingOn ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (UseN ordering_N))))) (PrepNP on_Prep ob2))) ;
-pathLength ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) ob2))))) ;
-possesses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a possess_V2) ob2)) ;
-precondition ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN precondition_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
-premise ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN premise_N)))) (PrepNP part_Prep ob2))) ;
-prevents ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a prevent_V2) (MassNP ob2))) ;
-property ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN property_N)))) (PrepNP part_Prep ob2))) ;
-publishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a publish_V2) (MassNP ob2))) ;
-radius ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN radius_N)))) (PrepNP part_Prep ob2))) ;
-refers ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV refer_V) (PrepNP to_Prep ob2))) ;
-reflexiveOn ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA reflexive_A))) (PrepNP on_Prep ob2))) ;
-relatedEvent ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (UseN event_N)))))) ;
-relatedInternalConcept ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA internal_A) (UseN concept_N))))))) ;
-relative ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN relative_N)))) (PrepNP part_Prep ob2))) ;
-sibling ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN sibling_N)))) (PrepNP part_Prep ob2))) ;
-smaller ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA small_A ob2)))) ;
-subAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
-subCollection ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN collection_N)))))) (PrepNP part_Prep ob2))) ;
-subGraph ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN graph_N)))))) (PrepNP part_Prep ob2))) ;
-subList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN list_N)))))) (PrepNP part_Prep ob2))) ;
-subProcess ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN process_N)))))) (PrepNP part_Prep ob2))) ;
-subProposition ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN proposition_N)))))) (PrepNP part_Prep ob2))) ;
-subSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN system_N)))))) (PrepNP part_Prep ob2))) ;
-subclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N)))))) (PrepNP part_Prep ob2))) ;
-
-subsumesContentClass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep (MassNP ob2)))) ;
-subsumesContentInstance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep ob2))) ;
-successorAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN successor_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
-systemPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
-temporalPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA temporal_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
-time ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)))) (PrepNP part_Prep ob2))) ;
-totalOrderingOn ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (UseN ordering_N))))) (PrepNP on_Prep ob2))) ;
-traverses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a traverse_V2) ob2)) ;
-uses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a use_V2) ob2)) ;
-version ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN version_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
-wants ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a want_V2) ob2)) ;
-wears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a outwear_V2) ob2)) ;
-weight ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep ob2))) ;
-age ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN age_N)))) (PrepNP part_Prep ob2))) ;
-agent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN agent_N)))) (PrepNP part_Prep ob2))) ;
-ancestor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN ancestor_N)))) (PrepNP part_Prep ob2))) ;
-angleOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN angle_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
-attends ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a attend_V2) ob2)) ;
-attribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN attribute_N)))) (PrepNP part_Prep ob2))) ;
-before ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAdv (PrepNP before_Prep ob2)))) ;
-bottom ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN bottom_N)))) (PrepNP part_Prep ob2))) ;
-side ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN side_N)))) (PrepNP part_Prep ob2))) ;
-surface ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN surface_N)))) (PrepNP part_Prep ob2))) ;
-top ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN top_N)))) (PrepNP part_Prep ob2))) ;
-brother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN brother_N)))) (PrepNP part_Prep ob2))) ;
-fills ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fill_V2) ob2)) ;
-completelyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj complete_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
-properlyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj proper_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
-exactlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exact_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
-partiallyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
-component ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN component_N)))) (PrepNP part_Prep ob2))) ;
-contains ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) ob2)) ;
-crosses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cross_V2) ob2)) ;
-destination ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN destination_N)))) (PrepNP part_Prep ob2))) ;
-direction ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN direction_N)))) (PrepNP part_Prep ob2))) ;
-during ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV happen_V) (PrepNP during_Prep ob2))) ;
-equivalentContentClass ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
-finishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a finish_V2) ob2)) ;
-grasps ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a grasp_V2) ob2)) ;
-penetrates ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a penetrate_V2) ob2)) ;
-height ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN height_N)))) (PrepNP part_Prep ob2))) ;
-length ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep ob2))) ;
-width ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN width_N)))) (PrepNP part_Prep ob2))) ;
-home ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN home_N)))) (PrepNP part_Prep ob2))) ;
-husband ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN husband_N)))) (PrepNP part_Prep ob2))) ;
-wife ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN wife_N)))) (PrepNP part_Prep ob2))) ;
-instrument ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN instrument_N)))) (PrepNP part_Prep ob2))) ;
-result ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN result_N)))) (PrepNP part_Prep ob2))) ;
-interiorPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN interior_N)))) part_Adv) (PrepNP part_Prep ob2))) ;
-linearExtent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA linear_A) (UseN extent_N))))) (PrepNP part_Prep ob2))) ;
-located ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)))) (PrepNP part_Prep ob1))) ;
-manner ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN manner_N)))) (PrepNP part_Prep ob2))) ;
-member ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP part_Prep ob2))) ;
-monetaryValue ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA monetary_A) (UseN value_N))))) (PrepNP part_Prep ob2))) ;
-names ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN name_N)))) (PrepNP part_Prep ob2))) ;
-origin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN origin_N)))) (PrepNP part_Prep ob2))) ;
-part ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
-path ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN path_N)))) (PrepNP part_Prep ob2))) ;
-mother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN mother_N)))) (PrepNP part_Prep ob2))) ;
-father ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN father_N)))) (PrepNP part_Prep ob2))) ;
-daughter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN daughter_N)))) (PrepNP part_Prep ob2))) ;
-son ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN son_N)))) (PrepNP part_Prep ob2))) ;
-patient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN patient_N)))) (PrepNP part_Prep ob2))) ;
-piece ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN piece_N)))) (PrepNP part_Prep ob2))) ;
-pointOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
-properPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA proper_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
-realization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN realization_N)))) (PrepNP part_Prep ob2))) ;
-represents ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a represent_V2) ob2)) ;
-sister ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN sister_N)))) (PrepNP part_Prep ob2))) ;
-spouse ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN spouse_N)))) (PrepNP part_Prep ob2))) ;
-starts ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a start_V2) ob2)) ;
-stays ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a stay_V2) ob2)) ;
-subOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN organization_N)))))) (PrepNP part_Prep ob2))) ;
-subPlan ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN plan_N)))))) (PrepNP part_Prep ob2))) ;
-superficialPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA superficial_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
-truth ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN truth_N) (MassNP (UseN value_N)))))) (PrepNP part_Prep ob2))) ;
-angularMeasure ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA angular_A) (UseN measure_N))))) (PrepNP part_Prep ob1))) ;
-arcWeight ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN arc_N) ob1))))) ;
-geographicSubregion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN region_N)))))) (PrepNP part_Prep ob2))) ;
-involvedInEvent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 involve_V2) (PrepNP in_Prep ob2))) ;
-meetsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
-partlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA partial_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
-geopoliticalSubdivision ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN division_N)))))) (PrepNP part_Prep ob2))) ;
-immediateSubclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA immediate_A) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))))) (PrepNP part_Prep ob2))) ;
-meetsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
-overlapsPartially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
-overlapsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
-subset ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN set_N)))))) (PrepNP part_Prep ob2))) ;
-greaterThan ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA great_A ob2)))) ;
-greaterThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (UseComparA great_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
-inScopeOfInterest ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 interest_V2) (PrepNP in_Prep ob2))) ;
-overlapsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
-engineeringSubcomponent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN component_N)))))) (PrepNP part_Prep ob2))) ;
-equivalentContentInstance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
-successorAttributeClosure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN successor_N) (MassNP (UseN attribute_N))) (MassNP (UseN closure_N)))))) (PrepNP part_Prep ob2))) ;
-transactionAmount ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN amount_N)))) (PrepNP part_Prep ob2))) ;
-connectedEngineeringComponents ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (PassV2 connect_V2)) ;
-
-
--- ternary predicate 
-
-between ob1 ob2 ob3 = mkPolSent (PredVP ob2 (UseComp (CompAdv (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3)))))) ;
-conditionalProbability ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)))) (PrepNP part_Prep (PPartNP (sentToNoun ob1) condition_V2))) (PrepNP by8agent_Prep (sentToNoun ob2)))) ;
-confersNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a confer_V2) (ConjNP and_Conj (BaseNP ob3 (sentToNoun ob2))))) ;
-confersObligation ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN obligation_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep  ob2))) ;
-confersRight ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN right_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob2))) ;
-connects ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a connect_V2) ob2) (PrepNP to_Prep ob3))) ;
-deprivesNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a deprive_V2) ob3) (PrepNP to_Prep ( sentToNoun ob2)))) ;
-distance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN distance_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
-documentation ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN documentation_N)))) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
-geometricDistance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA geometric_A) (UseN distance_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
-hasPurposeForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2)))) (PrepNP for_Prep (MassNP (ApposCN (UseN agent_N) ob3))))) ;
-links ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a link_V2) (ConjNP and_Conj (BaseNP ob1 ob2)))) ;
-occupiesPosition ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a occupy_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob2))) (PrepNP in_Prep ob3))) ;
-orientation ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN orientation_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
-pointOfIntersection ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (MassNP (UseN intersection_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
-relatedExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP part_Prep ob2)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
-representsForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP for_Prep ob3))) ;
-representsInLanguage ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
-temporallyBetween ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3))))) ;
-temporallyBetweenOrEqual ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (ConjAdv or_Conj (BaseAdv between_Adv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA same_A) (UseN time_N))))))) (PrepNP with_Prep (ConjNP or_Conj (BaseNP ob1 ob3))))) ;
-altitude ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN altitude_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
-connectsEngineeringComponents ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a connect_V2) (ConjNP and_Conj (BaseNP ob2 ob3)))) ;
-depth ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN depth_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
-synonymousExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA synonymous_A) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
-greaterThanByQuality ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (AdvVP (UseV (mkV "have")) more_Adv) (PrepNP part_Prep (PPartNP ob3 compare_V2))) (PrepNP to_Prep ob2))) ;
-prefers ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a prefer_V2) (sentToNoun ob2)) (PrepNP to_Prep (sentToNoun ob3)))) ;
-
-
-
---others
-toInt x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
-toRealNum x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
-};
+concrete MergeEng of Merge = BasicEng ** open DictLangEng, DictEng, ParadigmsEng, ResEng, ParamBasic,ExtensionEng in {
+   
+lin
+  -- single instances 
+  AngularDegree = MassNP (AdjCN (PositA angular_A) (UseN degree_N)) ;
+  AtomGram = MassNP (ApposCN (UseN atom_N) (MassNP (UseN gram_N))) ;
+  Bit = MassNP (UseN bit_N) ;
+  Black = MassNP (UseN black_N) ;
+  Blue = MassNP (UseN blue_N) ;
+  BritishThermalUnit = MassNP (AdjCN (PositA british_A) (AdjCN (PositA thermal_A) (UseN unit_N))) ;
+  Calorie = MassNP (UseN calorie_N) ;
+  Ampere = MassNP (UseN ampere_N) ;
+  Joule = MassNP (UseN joule_N) ;
+  Watt = MassNP (UseN watt_N) ;
+  Volt = MassNP (UseN volt_N) ;
+  Ohm = MassNP (UseN ohm_N) ;
+  Gray = MassNP (UseN gray_N) ;
+  ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
+  Gram = MassNP (UseN gram_N) ;
+  Hertz = DetCN (DetQuant IndefArt NumSg) (UseN hertz_N) ;
+  Kilogram = MassNP (UseN kilogram_N) ;
+  Meter = MassNP (UseN meter_N) ;
+  Mole = MassNP (UseN mole_N) ;
+  SecondDuration = MassNP (AdjCN (AdjOrd (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) (UseN duration_N)) ;
+  Left = MassNP (UseN left_N) ;
+  Right = MassNP (UseN right_N) ;
+  CentralTimeZone = MassNP (AdjCN (PositA central_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
+  Cup = MassNP (UseN cup_N) ;
+  Damp = MassNP (UseN damp_N) ;
+  DayDuration = MassNP (ApposCN (UseN day_N) (MassNP (UseN duration_N))) ;
+  East = MassNP (UseN east_N) ;
+  EasternTimeZone = MassNP (AdjCN (PositA eastern_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
+  ElectronVolt = MassNP (ApposCN (UseN electron_N) (MassNP (UseN volt_N))) ;
+  Female = MassNP (UseN female_N) ;
+  Fluid = MassNP (UseN fluid_N) ;
+  FootLength = MassNP (ApposCN (UseN foot_N) (MassNP (UseN length_N))) ;
+  Gas = MassNP (UseN gas_N) ;
+  Horsepower = DetCN (DetQuant IndefArt NumSg) (UseN horsepower_N) ;
+  HourDuration = MassNP (ApposCN (UseN hour_N) (MassNP (UseN duration_N))) ;
+  Inch = MassNP (UseN inch_N) ;
+  InchMercury = MassNP (ApposCN (UseN inch_N) (MassNP (UseN mercury_N))) ;
+  Liquid = MassNP (UseN liquid_N) ;
+  Living = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 live_V2)) ;
+  Male = MassNP (UseN male_N) ;
+  Mile = MassNP (UseN mile_N) ;
+  MinuteDuration = MassNP (AdjCN (PositA minute_A) (UseN duration_N)) ;
+  MmMercury = DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN mm_N) (MassNP (UseN mercury_N))) ;
+  MonthDuration = MassNP (ApposCN (UseN month_N) (MassNP (UseN duration_N))) ;
+  MountainTimeZone = MassNP (ApposCN (ApposCN (UseN mountain_N) (MassNP (UseN time_N))) (MassNP (UseN zone_N))) ;
+  Necessity = MassNP (UseN necessity_N) ;
+  NegativeInfinity = MassNP (AdjCN (PositA negative_A) (UseN infinity_N)) ;
+  North = MassNP (UseN north_N) ;
+  NullList = MassNP (AdjCN (PositA null_A) (UseN list_N)) ;
+  Obligation = MassNP (UseN obligation_N) ;
+  Ounce = MassNP (UseN ounce_N) ;
+  PacificTimeZone = MassNP (AdjCN (PositA pacific_A) (ApposCN (UseN time_N) (MassNP (UseN zone_N)))) ;
+  Permission = MassNP (UseN permission_N) ;
+  Pi = MassNP (UseN pi_N) ;
+  Pint = MassNP (UseN pint_N) ;
+  Plasma = MassNP (UseN plasma_N) ;
+  PositiveInfinity = MassNP (AdjCN (PositA positive_A) (UseN infinity_N)) ;
+  Possibility = MassNP (UseN possibility_N) ;
+  PoundForce = MassNP (ApposCN (UseN pound_N) (MassNP (UseN force_N))) ;
+  PoundMass = MassNP (ApposCN (UseN pound_N) (MassNP (UseN mass_N))) ;
+  Prohibition = MassNP (UseN prohibition_N) ;
+  Quart = MassNP (UseN quart_N) ;
+  Red = MassNP (UseN red_N) ;
+  Rough = MassNP (UseN rough_N) ;
+  Sitting = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 sit_V2)) ;
+  Slug = MassNP (UseN slug_N) ;
+  Smooth = MassNP (UseN smooth_N) ;
+  Solid = MassNP (UseN solid_N) ;
+  South = MassNP (UseN south_N) ;
+  Standing = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 stand_V2)) ;
+  True = MassNP (UseN true_N) ;
+  Unconscious = MassNP (UseN unconscious_N) ;
+  UnitedKingdomGallon = MassNP (AdjCN (PositA united_A) (ApposCN (UseN kingdom_N) (MassNP (UseN gallon_N)))) ;
+  UnitedStatesCent = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN cent_N)))) ;
+  UnitedStatesDollar = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN dollar_N)))) ;
+  UnitedStatesGallon = DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN gallon_N)))) ;
+  Vertical = MassNP (UseN vertical_N) ;
+  WeekDuration = MassNP (ApposCN (UseN week_N) (MassNP (UseN duration_N))) ;
+  West = MassNP (UseN west_N) ;
+  Wet = MassNP (UseN wet_N) ;
+  White = MassNP (UseN white_N) ;
+  YearDuration = MassNP (ApposCN (UseN year_N) (MassNP (UseN duration_N))) ;
+  Yellow = MassNP (UseN yellow_N) ;
+  Law = MassNP (UseN law_N) ;
+  Promise = MassNP (UseN promise_N) ;
+  PurchaseContract = MassNP (ApposCN (UseN purchase_N) (MassNP (UseN contract_N))) ;
+  Warranty = MassNP (UseN warranty_N) ;
+  NakedPromise = MassNP (AdjCN (PositA naked_A) (UseN promise_N)) ;
+  
+  
+  
+  -- subclass declarations :
+  AbnormalAnatomicalStructure = AdjCN (PositA abnormal_A) (AdjCN (PositA anatomical_A) (UseN structure_N)) ;
+  Abstract = AdjCN (PositA abstract_A) (UseN entity_N) ;
+  Adjective = UseN adjective_N ;
+  Adverb = UseN adverb_N ;
+  Advertising = UseN2 (VerbToNounV2 advertise_V2) ;
+  AgeGroup = ApposCN (UseN age_N) (MassNP (UseN group_N)) ;
+  Agent = UseN agent_N ;
+  Air = UseN air_N ;
+  Alga = UseN alga_N ;
+  Amphibian = UseN amphibian_N ;
+  AnatomicalStructure = AdjCN (PositA anatomical_A) (UseN structure_N) ;
+  AngleMeasure = ApposCN (UseN angle_N) (MassNP (UseN measure_N)) ;
+  Animal = UseN animal_N ;
+  AnimalAnatomicalStructure = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
+  AnimalLanguage = ApposCN (UseN animal_N) (MassNP (UseN language_N)) ;
+  AnimalSubstance = ApposCN (UseN animal_N) (MassNP (UseN substance_N)) ;
+  Ape = UseN ape_N ;
+  April = UseN april_N ;
+  AquaticMammal = AdjCN (PositA aquatic_A) (UseN mammal_N) ;
+  Arachnid = UseN arachnid_N ;
+  AreaMeasure = ApposCN (UseN area_N) (MassNP (UseN measure_N)) ;
+  Argument = UseN argument_N ;
+  ArtWork = ApposCN (UseN art_N) (MassNP (UseN work_N)) ;
+  Article = UseN article_N ;
+  Artifact = UseN artifact_N ;
+  ArtificialLanguage = AdjCN (PositA artificial_A) (UseN language_N) ;
+  AsexualReproduction = AdjCN (PositA asexual_A) (UseN reproduction_N) ;
+  AstronomicalBody = AdjCN (PositA astronomical_A) (UseN body_N) ;
+  Atom = UseN atom_N ;
+  AtomicNucleus = AdjCN (PositA atomic_A) (UseN nucleus_N) ;
+  Attaching = UseN2 (VerbToNounV2 attach_V2) ;
+  AttachingDevice = ApposCN (UseN2 (VerbToNounV2 attach_V2)) (MassNP (UseN device_N)) ;
+  Attack = UseN attack_N ;
+  Attribute = UseN attribute_N ;
+  August = UseN august_N ;
+  Bacterium = UseN bacterium_N ;
+  Battle = UseN battle_N ;
+  BeliefGroup = ApposCN (UseN belief_N) (MassNP (UseN group_N)) ;
+  Betting = UseN2 (VerbToNounV2 bet_V2) ;
+  Beverage = UseN beverage_N ;
+  BinaryNumber = AdjCN (PositA binary_A) (UseN number_N) ;
+  BiologicalAttribute = AdjCN (PositA biological_A) (UseN attribute_N) ;
+  BiologicalProcess = AdjCN (PositA biological_A) (UseN process_N) ;
+  Bird = UseN bird_N ;
+  Birth = UseN birth_N ;
+  Blood = UseN blood_N ;
+  BodyCavity = ApposCN (UseN body_N) (MassNP (UseN cavity_N)) ;
+  BodyCovering = ApposCN (UseN body_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 cover_V2))) ;
+  BodyJunction = ApposCN (UseN body_N) (MassNP (UseN junction_N)) ;
+  BodyMotion = ApposCN (UseN body_N) (MassNP (UseN motion_N)) ;
+  BodyPart = AdvCN (UseN body_N) part_Adv ;
+  BodyPosition = ApposCN (UseN body_N) (MassNP (UseN position_N)) ;
+  BodySubstance = ApposCN (UseN body_N) (MassNP (UseN substance_N)) ;
+  BodyVessel = ApposCN (UseN body_N) (MassNP (UseN vessel_N)) ;
+  Boiling = UseN2 (VerbToNounV2 boil_V2) ;
+  Bone = UseN bone_N ;
+  Book = UseN book_N ;
+  Borrowing = UseN2 (VerbToNounV2 borrow_V2) ;
+  Breathing = UseN breathing_N ;
+  Building = UseN building_N ;
+  Buying = UseN2 (VerbToNounV2 buy_V2) ;
+  Calculating = UseN2 (VerbToNounV2 calculate_V2) ;
+  Carbohydrate = UseN carbohydrate_N ;
+  Carnivore = UseN carnivore_N ;
+  Carrying = UseN2 (VerbToNounV2 carry_V2) ;
+  Cell = UseN cell_N ;
+  Certificate = UseN certificate_N ;
+  ChangeOfPossession = AdvCN (UseN change_N) (PrepNP part_Prep (MassNP (UseN possession_N))) ;
+  Character = UseN character_N ;
+  ChemicalDecomposition = AdjCN (PositA chemical_A) (UseN decomposition_N) ;
+  ChemicalProcess = AdjCN (PositA chemical_A) (UseN process_N) ;
+  ChemicalSynthesis = AdjCN (PositA chemical_A) (UseN synthesis_N) ;
+  Circle = UseN circle_N ;
+  City = UseN city_N ;
+  Classifying = UseN2 (VerbToNounV2 classify_V2) ;
+  ClosedTwoDimensionalFigure = AdjCN (PositA (VerbToParticipeA close_V)) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
+  Clothing = UseN clothing_N ;
+  Cloud = UseN cloud_N ;
+  Collection = UseN collection_N ;
+  Combining = UseN2 (VerbToNounV2 combine_V2) ;
+  Combustion = UseN combustion_N ;
+  CommercialAgent = AdjCN (PositA commercial_A) (UseN agent_N) ;
+  CommercialService = AdjCN (PositA commercial_A) (UseN service_N) ;
+  Committing = UseN2 (VerbToNounV2 commit_V2) ;
+  Communication = UseN communication_N ;
+  Comparing = UseN2 (VerbToNounV2 compare_V2) ;
+  ComplexNumber = AdjCN (PositA complex_A) (UseN number_N) ;
+  CompositeUnitOfMeasure = AdjCN (PositA composite_A) (AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N)))) ;
+  CompoundSubstance = AdjCN (PositA compound_A) (UseN substance_N) ;
+  ComputerLanguage = ApposCN (UseN computer_N) (MassNP (UseN language_N)) ;
+  ComputerProgram = ApposCN (UseN computer_N) (MassNP (UseN program_N)) ;
+  ComputerProgramming = ApposCN (UseN computer_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 program_V2))) ;
+  Condensing = UseN2 (VerbToNounV2 condense_V2) ;
+  Confining = UseN2 (VerbToNounV2 confine_V2) ;
+  ConsciousnessAttribute = ApposCN (UseN consciousness_N) (MassNP (UseN attribute_N)) ;
+  ConstantQuantity = AdjCN (PositA constant_A) (UseN quantity_N) ;
+  Constructing = UseN2 (VerbToNounV2 construct_V2) ;
+  ContentBearingObject = AdjCN (PositA (mkA "content-bearing")) (UseN object_N) ;
+  ContentBearingPhysical = AdjCN (PositA (mkA "content-bearing")) (AdjCN (PositA physical_A) (UseN entity_N)) ;
+  ContentBearingProcess = AdjCN (PositA (mkA "content-bearing")) (UseN process_N) ;
+  ContentDevelopment = AdjCN (PositA content_A) (UseN development_N) ;
+  Contest = UseN contest_N ;
+  ContestAttribute = ApposCN (UseN contest_N) (MassNP (UseN attribute_N)) ;
+  Continent = UseN continent_N ;
+  Cooking = UseN cooking_N ;
+  Cooling = UseN2 (VerbToNounV2 cool_V2) ;
+  Cooperation = UseN cooperation_N ;
+  Corporation = UseN corporation_N ;
+  Counting = UseN2 (VerbToNounV2 count_V2) ;
+  County = UseN county_N ;
+  Covering = UseN covering_N ;
+  Creation = UseN creation_N ;
+  Crustacean = UseN crustacean_N ;
+  Currency = UseN currency_N ;
+  CurrencyMeasure = ApposCN (UseN currency_N) (MassNP (UseN measure_N)) ;
+  Cutting = UseN cutting_N ;
+  Damaging = UseN2 (VerbToNounV2 damage_V2) ;
+  Dancing = UseN dancing_N ;
+  Day = UseN day_N ;
+  Death = UseN death_N ;
+  December = UseN december_N ;
+  Deciding = UseN2 (VerbToNounV2 decide_V2) ;
+  Declaring = UseN2 (VerbToNounV2 declare_V2) ;
+  Decoding = UseN2 (VerbToNounV2 decode_V2) ;
+  Decreasing = UseN2 (VerbToNounV2 decrease_V2) ;
+  DeductiveArgument = AdjCN (PositA deductive_A) (UseN argument_N) ;
+  Demonstrating = UseN2 (VerbToNounV2 demonstrate_V2) ;
+  Designing = UseN designing_N ;
+  Destruction = UseN destruction_N ;
+  Detaching = UseN2 (VerbToNounV2 detach_V2) ;
+  Device = UseN device_N ;
+  DiagnosticProcess = AdjCN (PositA diagnostic_A) (UseN process_N) ;
+  Digesting = UseN2 (VerbToNounV2 digest_V2) ;
+  DirectedGraph = AdjCN (PositA (VerbToParticipeA direct_V)) (UseN graph_N) ;
+  Directing = UseN2 (VerbToNounV2 direct_V2) ;
+  DirectionChange = ApposCN (UseN direction_N) (MassNP (UseN change_N)) ;
+  DirectionalAttribute = AdjCN (PositA directional_A) (UseN attribute_N) ;
+  Discovering = UseN2 (VerbToNounV2 discover_V2) ;
+  DiseaseOrSyndrome = ConjCN or_Conj (BaseCN (UseN disease_N) (UseN syndrome_N)) ;
+  Disseminating = UseN2 (VerbToNounV2 disseminate_V2) ;
+  Drinking = UseN drinking_N ;
+  Driving = UseN2 (VerbToNounV2 drive_V2) ;
+  Drying = UseN2 (VerbToNounV2 dry_V2) ;
+  DualObjectProcess = AdjCN (PositA dual_A) (ApposCN (UseN object_N) (MassNP (UseN process_N))) ;
+  Eating = UseN2 (VerbToNounV2 eat_V2) ;
+  EducationalOrganization = AdjCN (PositA educational_A) (UseN organization_N) ;
+  EducationalProcess = AdjCN (PositA educational_A) (UseN process_N) ;
+  Egg = UseN egg_N ;
+  Election = UseN election_N ;
+  Electron = UseN electron_N ;
+  ElementalSubstance = AdjCN (PositA elemental_A) (UseN substance_N) ;
+  EmotionalState = AdjCN (PositA emotional_A) (UseN state_N) ;
+  Encoding = UseN2 (VerbToNounV2 encode_V2) ;
+  EngineeringComponent = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN component_N) ;
+  EngineeringConnection = AdjCN (PositA (VerbToGerundA engineer_V)) (UseN connection_N) ;
+  Entity = UseN entity_N ;
+  Enzyme = UseN enzyme_N ;
+  EthnicGroup = AdjCN (PositA ethnic_A) (UseN group_N) ;
+  Evaporating = UseN2 (VerbToNounV2 evaporate_V2) ;
+  EvenInteger = AdjCN (PositA even_A) (UseN integer_N) ;
+  Experimenting = UseN (VerbToNoun experiment_V) ;
+  Explanation = UseN explanation_N ;
+  Expressing = UseN2 (VerbToNounV2 express_V2) ;
+  Fabric = UseN fabric_N ;
+  FactualText = AdjCN (PositA factual_A) (UseN text_N) ;
+  Falling = UseN2 (VerbToNounV2 befall_V2) ;
+  FamilyGroup = ApposCN (UseN family_N) (MassNP (UseN group_N)) ;
+  FatTissue = AdjCN (PositA fat_A) (UseN tissue_N) ;
+  February = UseN february_N ;
+  Fern = UseN fern_N ;
+  FictionalText = AdjCN (PositA fictional_A) (UseN text_N) ;
+  FieldOfStudy = AdvCN (UseN field_N) (PrepNP part_Prep (MassNP (UseN study_N))) ;
+  FinancialInstrument = AdjCN (PositA financial_A) (UseN instrument_N) ;
+  FinancialTransaction = AdjCN (PositA financial_A) (UseN transaction_N) ;
+  FiniteSet = AdjCN (PositA finite_A) (UseN set_N) ;
+  Fish = UseN fish_N ;
+  FlowRegion = ApposCN (UseN flow_N) (MassNP (UseN region_N)) ;
+  FloweringPlant = AdjCN (PositA (VerbToGerundA flower_V)) (UseN plant_N) ;
+  Food = UseN food_N ;
+  Freezing = UseN2 (VerbToNounV2 deep_freeze_V2) ;
+  FrequencyMeasure = ApposCN (UseN frequency_N) (MassNP (UseN measure_N)) ;
+  FreshWaterArea = AdjCN (PositA fresh_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
+  Friday = UseN friday_N ;
+  FruitOrVegetable = ConjCN or_Conj (BaseCN (UseN fruit_N) (UseN vegetable_N)) ;
+  FunctionQuantity = ApposCN (UseN function_N) (MassNP (UseN quantity_N)) ;
+  Funding = UseN2 (VerbToNounV2 fund_V2) ;
+  Fungus = UseN fungus_N ;
+  Game = UseN game_N ;
+  GasMixture = ApposCN (UseN gas_N) (MassNP (UseN mixture_N)) ;
+  GasMotion = ApposCN (UseN gas_N) (MassNP (UseN motion_N)) ;
+  GeologicalProcess = AdjCN (PositA geological_A) (UseN process_N) ;
+  GeometricFigure = AdjCN (PositA geometric_A) (UseN figure_N) ;
+  GeometricPoint = AdjCN (PositA geometric_A) (UseN point_N) ;
+  Gesture = UseN gesture_N ;
+  Getting = UseN2 (VerbToNounV2 beget_V2) ;
+  Giving = UseN2 (VerbToNounV2 give_V2) ;
+  GivingBack = AdjCN (PositA (VerbToGerundA give_V)) (UseN back_N) ;
+  Gland = UseN gland_N ;
+  Government = UseN government_N ;
+  GovernmentOrganization = ApposCN (UseN government_N) (MassNP (UseN organization_N)) ;
+  Grabbing = UseN2 (VerbToNounV2 grab_V2) ;
+  Graduation = UseN graduation_N ;
+  Graph = UseN graph_N ;
+  GraphArc = ApposCN (UseN graph_N) (MassNP (UseN arc_N)) ;
+  GraphCircuit = ApposCN (UseN graph_N) (MassNP (UseN circuit_N)) ;
+  GraphElement = ApposCN (UseN graph_N) (MassNP (UseN element_N)) ;
+  GraphLoop = ApposCN (UseN graph_N) (MassNP (UseN loop_N)) ;
+  GraphNode = ApposCN (UseN graph_N) (MassNP (UseN node_N)) ;
+  GraphPath = ApposCN (UseN graph_N) (MassNP (UseN path_N)) ;
+  Group = UseN group_N ;
+  GroupOfPeople = AdvCN (UseN group_N) (PrepNP part_Prep (MassNP (UseN people_N))) ;
+  Growth = UseN growth_N ;
+  Guiding = UseN2 (VerbToNounV2 guide_V2) ;
+  Hearing = UseN hearing_N ;
+  Heating = UseN heating_N ;
+  Hiring = UseN2 (VerbToNounV2 hire_V2) ;
+  Hole = UseN hole_N ;
+  Hormone = UseN hormone_N ;
+  Hour = UseN hour_N ;
+  House = UseN house_N ;
+  Human = UseN human_N ;
+  HumanLanguage = AdjCN (PositA human_A) (UseN language_N) ;
+  Hunting = UseN hunting_N ;
+  Icon = UseN icon_N ;
+  ImaginaryNumber = AdjCN (PositA imaginary_A) (UseN number_N) ;
+  Impacting = UseN2 (VerbToNounV2 impact_V2) ;
+  Impelling = UseN2 (VerbToNounV2 impel_V2) ;
+  Increasing = UseN2 (VerbToNounV2 increase_V2) ;
+  InductiveArgument = AdjCN (PositA inductive_A) (UseN argument_N) ;
+  InformationMeasure = ApposCN (UseN information_N) (MassNP (UseN measure_N)) ;
+  Ingesting = UseN2 (VerbToNounV2 ingest_V2) ;
+  Injecting = UseN2 (VerbToNounV2 inject_V2) ;
+  Injuring = UseN2 (VerbToNounV2 injure_V2) ;
+  Insect = UseN insect_N ;
+  Inserting = UseN2 (VerbToNounV2 insert_V2) ;
+  Integer = UseN integer_N ;
+  IntentionalProcess = AdjCN (PositA intentional_A) (UseN process_N) ;
+  IntentionalPsychologicalProcess = AdjCN (PositA intentional_A) (AdjCN (PositA psychological_A) (UseN process_N)) ;
+  InternalAttribute = AdjCN (PositA internal_A) (UseN attribute_N) ;
+  InternalChange = AdjCN (PositA internal_A) (UseN change_N) ;
+  Interpreting = UseN2 (VerbToNounV2 interpret_V2) ;
+  InvalidDeductiveArgument = AdjCN (PositA invalid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
+  Invertebrate = UseN invertebrate_N ;
+  Investigating = UseN2 (VerbToNounV2 investigate_V2) ;
+  IrrationalNumber = AdjCN (PositA irrational_A) (UseN number_N) ;
+  Island = UseN island_N ;
+  January = UseN january_N ;
+  JoiningAnOrganization = ApposCN (UseN2 (VerbToNounV2 join_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
+  Judging = UseN2 (VerbToNounV2 judge_V2) ;
+  JudicialOrganization = AdjCN (PositA judicial_A) (UseN organization_N) ;
+  JudicialProcess = AdjCN (PositA judicial_A) (UseN process_N) ;
+  July = UseN july_N ;
+  June = UseN june_N ;
+  Keeping = UseN keeping_N ;
+  Killing = UseN killing_N ;
+  LandArea = ApposCN (UseN land_N) (MassNP (UseN area_N)) ;
+  Language = UseN language_N ;
+  LeapYear = ApposCN (UseN leap_N) (MassNP (UseN year_N)) ;
+  Learning = UseN learning_N ;
+  LeavingAnOrganization = ApposCN (UseN2 (VerbToNounV2 leave_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN organization_N)) ;
+  LegalAction = AdjCN (PositA legal_A) (UseN action_N) ;
+  LegalDecision = AdjCN (PositA legal_A) (UseN decision_N) ;
+  Lending = UseN2 (VerbToNounV2 lend_V2) ;
+  LengthMeasure = ApposCN (UseN length_N) (MassNP (UseN measure_N)) ;
+  LinguisticCommunication = AdjCN (PositA linguistic_A) (UseN communication_N) ;
+  LinguisticExpression = AdjCN (PositA linguistic_A) (UseN expression_N) ;
+  LiquidMixture = AdjCN (PositA liquid_A) (UseN mixture_N) ;
+  LiquidMotion = AdjCN (PositA liquid_A) (UseN motion_N) ;
+  List = UseN list_N ;
+  Listening = UseN (VerbToNoun listen_V) ;
+  LogicalOperator = AdjCN (PositA logical_A) (UseN operator_N) ;
+  Looking = UseN2 (VerbToNounV2 look_V2) ;
+  Machine = UseN machine_N ;
+  Maintaining = UseN2 (VerbToNounV2 maintain_V2) ;
+  Making = UseN making_N ;
+  Mammal = UseN mammal_N ;
+  Man = UseN man_N ;
+  Managing = UseN2 (VerbToNounV2 manage_V2) ;
+  ManualHumanLanguage = AdjCN (PositA manual_A) (AdjCN (PositA human_A) (UseN language_N)) ;
+  Manufacture = UseN manufacture_N ;
+  Manufacturer = UseN manufacturer_N ;
+  March = UseN march_N ;
+  Marsupial = UseN marsupial_N ;
+  MassMeasure = ApposCN (UseN mass_N) (MassNP (UseN measure_N)) ;
+  Matriculation = UseN matriculation_N ;
+  May = UseN may_N ;
+  Measuring = UseN2 (VerbToNounV2 measure_V2) ;
+  MeasuringDevice = AdjCN (PositA (VerbToGerundA measure_V)) (UseN device_N) ;
+  Meat = UseN meat_N ;
+  Meeting = UseN meeting_N ;
+  Melting = UseN2 (VerbToNounV2 melt_V2) ;
+  MercantileOrganization = AdjCN (PositA mercantile_A) (UseN organization_N) ;
+  Metal = UseN metal_N ;
+  MilitaryForce = AdjCN (PositA military_A) (UseN force_N) ;
+  MilitaryOrganization = AdjCN (PositA military_A) (UseN organization_N) ;
+  MilitaryProcess = AdjCN (PositA military_A) (UseN process_N) ;
+  Mineral = UseN mineral_N ;
+  Minute = UseN minute_N ;
+  Mixture = UseN mixture_N ;
+  Molecule = UseN molecule_N ;
+  Monday = UseN monday_N ;
+  Monkey = UseN monkey_N ;
+  Month = UseN month_N ;
+  Morpheme = UseN morpheme_N ;
+  Moss = UseN moss_N ;
+  Motion = UseN motion_N ;
+  MotionDownward = AdvCN (UseN motion_N) downward_Adv ;
+  MotionPicture = ApposCN (UseN motion_N) (MassNP (UseN picture_N)) ;
+  MotionUpward = AdvCN (UseN motion_N) upward_Adv ;
+  Muscle = UseN muscle_N ;
+  Music = UseN music_N ;
+  MusicalInstrument = AdjCN (PositA musical_A) (UseN instrument_N) ;
+  Naming = UseN2 (VerbToNounV2 name_V2) ;
+  Nation = UseN nation_N ;
+  NaturalLanguage = AdjCN (PositA natural_A) (UseN language_N) ;
+  NaturalProcess = AdjCN (PositA natural_A) (UseN process_N) ;
+  NaturalSubstance = AdjCN (PositA natural_A) (UseN substance_N) ;
+  NegativeInteger = AdjCN (PositA negative_A) (UseN integer_N) ;
+  NegativeRealNumber = AdjCN (PositA negative_A) (AdjCN (PositA real_A) (UseN number_N)) ;
+  Neutron = UseN neutron_N ;
+  NormativeAttribute = AdjCN (PositA normative_A) (UseN attribute_N) ;
+  Noun = UseN noun_N ;
+  NounPhrase = ApposCN (UseN noun_N) (MassNP (UseN phrase_N)) ;
+  November = UseN november_N ;
+  NullSet = AdjCN (PositA null_A) (UseN set_N) ;
+  Number = UseN number_N ;
+  Nutrient = UseN nutrient_N ;
+  Object = UseN object_N ;
+  ObjectiveNorm = AdjCN (PositA objective_A) (UseN norm_N) ;
+  October = UseN october_N ;
+  OddInteger = AdjCN (PositA odd_A) (UseN integer_N) ;
+  Offering = UseN offering_N ;
+  OlfactoryAttribute = AdjCN (PositA olfactory_A) (UseN attribute_N) ;
+  OneDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
+  OpenTwoDimensionalFigure = AdjCN (PositA open_A) (AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N)) ;
+  Ordering = UseN ordering_N ;
+  Organ = UseN organ_N ;
+  OrganOrTissueProcess = ApposCN (ConjCN or_Conj (BaseCN (UseN organ_N) (UseN tissue_N))) (MassNP (UseN process_N)) ;
+  OrganicObject = AdjCN (PositA organic_A) (UseN object_N) ;
+  Organism = UseN organism_N ;
+  OrganismProcess = ApposCN (UseN organism_N) (MassNP (UseN process_N)) ;
+  Organization = UseN organization_N ;
+  OrganizationalProcess = AdjCN (PositA organizational_A) (UseN process_N) ;
+  Oval = UseN oval_N ;
+  ParamilitaryOrganization = AdjCN (PositA paramilitary_A) (UseN organization_N) ;
+  ParticleWord = ApposCN (UseN particle_N) (MassNP (UseN word_N)) ;
+  Patent = UseN patent_N ;
+  Perception = UseN perception_N ;
+  PerceptualAttribute = AdjCN (PositA perceptual_A) (UseN attribute_N) ;
+  Periodical = UseN periodical_N ;
+  PermanentResidence = AdjCN (PositA permanent_A) (UseN residence_N) ;
+  Phrase = UseN phrase_N ;
+  Physical = AdjCN (PositA physical_A) (UseN entity_N) ;
+  PhysicalAttribute = AdjCN (PositA physical_A) (UseN attribute_N) ;
+  PhysicalQuantity = AdjCN (PositA physical_A) (UseN quantity_N) ;
+  PhysicalState = AdjCN (PositA physical_A) (UseN state_N) ;
+  PhysicalSystem = AdjCN (PositA physical_A) (UseN system_N) ;
+  Plan = UseN plan_N ;
+  PlaneAngleMeasure = ApposCN (ApposCN (UseN plane_N) (MassNP (UseN angle_N))) (MassNP (UseN measure_N)) ;
+  Planning = UseN2 (VerbToNounV2 plan_V2) ;
+  Plant = UseN plant_N ;
+  PlantAnatomicalStructure = ApposCN (UseN plant_N) (MassNP (AdjCN (PositA anatomical_A) (UseN structure_N))) ;
+  PlantSubstance = ApposCN (UseN plant_N) (MassNP (UseN substance_N)) ;
+  Poisoning = UseN2 (VerbToNounV2 poison_V2) ;
+  Poking = UseN2 (VerbToNounV2 poke_V2) ;
+  PoliticalOrganization = AdjCN (PositA political_A) (UseN organization_N) ;
+  PoliticalProcess = AdjCN (PositA political_A) (UseN process_N) ;
+  Pollen = UseN pollen_N ;
+  Position = UseN position_N ;
+  PositiveInteger = AdjCN (PositA positive_A) (UseN integer_N) ;
+  PositiveRealNumber = AdjCN (PositA positive_A) (AdjCN (PositA real_A) (UseN number_N)) ;
+  Precipitation = UseN precipitation_N ;
+  Predicting = UseN2 (VerbToNounV2 predict_V2) ;
+  PrepositionalPhrase = AdjCN (PositA prepositional_A) (UseN phrase_N) ;
+  Pretending = UseN2 (VerbToNounV2 pretend_V2) ;
+  PrimaryColor = AdjCN (PositA primary_A) (UseN colour_N) ;
+  Primate = UseN primate_N ;
+  PrimeNumber = AdjCN (PositA prime_A) (UseN number_N) ;
+  ProbabilityAttribute = ApposCN (UseN probability_N) (MassNP (UseN attribute_N)) ;
+  Procedure = UseN procedure_N ;
+  Process = UseN process_N ;
+  Product = UseN product_N ;
+  Proposition = UseN proposition_N ;
+  Protein = UseN protein_N ;
+  Proton = UseN proton_N ;
+  PseudoGraph = AdjCN (PositA pseudo_A) (UseN graph_N) ;
+  PsychologicalAttribute = AdjCN (PositA psychological_A) (UseN attribute_N) ;
+  PsychologicalProcess = AdjCN (PositA psychological_A) (UseN process_N) ;
+  Publication = UseN publication_N ;
+  PureSubstance = AdjCN (PositA pure_A) (UseN substance_N) ;
+  Pursuing = UseN2 (VerbToNounV2 pursue_V2) ;
+  Putting = UseN2 (VerbToNounV2 put_V2) ;
+  Quantity = UseN quantity_N ;
+  QuantityChange = ApposCN (UseN quantity_N) (MassNP (UseN change_N)) ;
+  Questioning = UseN2 (VerbToNounV2 question_V2) ;
+  Radiating = UseN2 (VerbToNounV2 radiate_V2) ;
+  RadiatingLight = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN light_N) ;
+  RadiatingSound = AdjCN (PositA (VerbToGerundA radiate_V)) (UseN sound_N) ;
+  RationalNumber = AdjCN (PositA rational_A) (UseN number_N) ;
+  Reading = UseN reading_N ;
+  RealNumber = AdjCN (PositA real_A) (UseN number_N) ;
+  Reasoning = UseN reasoning_N ;
+  RecreationOrExercise = ConjCN or_Conj (BaseCN (UseN recreation_N) (UseN exercise_N)) ;
+  Region = UseN region_N ;
+  Releasing = UseN2 (VerbToNounV2 release_V2) ;
+  ReligiousOrganization = AdjCN (PositA religious_A) (UseN organization_N) ;
+  ReligiousProcess = AdjCN (PositA religious_A) (UseN process_N) ;
+  Remembering = UseN2 (VerbToNounV2 remember_V2) ;
+  Removing = UseN2 (VerbToNounV2 remove_V2) ;
+  Repairing = UseN2 (VerbToNounV2 repair_V2) ;
+  ReproductiveBody = AdjCN (PositA reproductive_A) (UseN body_N) ;
+  Reptile = UseN reptile_N ;
+  Requesting = UseN2 (VerbToNounV2 request_V2) ;
+  Residence = UseN residence_N ;
+  ResidentialBuilding = AdjCN (PositA residential_A) (UseN building_N) ;
+  Roadway = UseN roadway_N ;
+  Rodent = UseN rodent_N ;
+  Room = UseN room_N ;
+  Running = UseN running_N ;
+  SaltWaterArea = AdjCN (PositA salt_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
+  SaturationAttribute = ApposCN (UseN saturation_N) (MassNP (UseN attribute_N)) ;
+  Saturday = UseN saturday_N ;
+  Second = UseN second_N ;
+  Seed = UseN seed_N ;
+  Seeing = UseN2 (VerbToNounV2 foresee_V2) ;
+  Selecting = UseN2 (VerbToNounV2 select_V2) ;
+  SelfConnectedObject = ApposCN (UseN self_N) (MassNP (AdjCN (PositA (VerbToParticipeA connect_V)) (UseN object_N))) ;
+  Selling = UseN selling_N ;
+  Sentence = UseN sentence_N ;
+  SentientAgent = AdjCN (PositA sentient_A) (UseN agent_N) ;
+  Separating = UseN2 (VerbToNounV2 separate_V2) ;
+  September = UseN september_N ;
+  Series = UseN series_N ;
+  ServiceProcess = ApposCN (UseN service_N) (MassNP (UseN process_N)) ;
+  Set = UseN set_N ;
+  SetOrClass = ConjCN or_Conj (BaseCN (UseN set_N) (UseN class_N)) ;
+  SexAttribute = ApposCN (UseN sex_N) (MassNP (UseN attribute_N)) ;
+  SexualReproduction = AdjCN (PositA sexual_A) (UseN reproduction_N) ;
+  ShapeAttribute = ApposCN (UseN shape_N) (MassNP (UseN attribute_N)) ;
+  ShapeChange = ApposCN (UseN shape_N) (MassNP (UseN change_N)) ;
+  Shooting = UseN shooting_N ;
+  ShoreArea = ApposCN (UseN shore_N) (MassNP (UseN area_N)) ;
+  Singing = UseN singing_N ;
+  SingleAgentProcess = AdjCN (PositA single_A) (ApposCN (UseN agent_N) (MassNP (UseN process_N))) ;
+  SingleFamilyResidence = AdjCN (PositA single_A) (ApposCN (UseN family_N) (MassNP (UseN residence_N))) ;
+  Smelling = UseN2 (VerbToNounV2 smell_V2) ;
+  Smoke = UseN smoke_N ;
+  SocialInteraction = AdjCN (PositA social_A) (UseN interaction_N) ;
+  SocialRole = AdjCN (PositA social_A) (UseN role_1_N) ;
+  SocialUnit = AdjCN (PositA social_A) (UseN unit_N) ;
+  SolidAngleMeasure = AdjCN (PositA solid_A) (ApposCN (UseN angle_N) (MassNP (UseN measure_N))) ;
+  Solution = UseN solution_N ;
+  SoundAttribute = AdjCN (PositA sound_A) (UseN attribute_N) ;
+  Speaking = UseN2 (VerbToNounV2 bespeak_V2) ;
+  SpokenHumanLanguage = AdjCN (PositA (VerbToParticipeA speak_V)) (AdjCN (PositA human_A) (UseN language_N)) ;
+  Spore = UseN spore_N ;
+  Sport = UseN sport_N ;
+  StateChange = ApposCN (UseN state_N) (MassNP (UseN change_N)) ;
+  StateOfMind = AdvCN (UseN state_N) (PrepNP part_Prep (MassNP (UseN mind_N))) ;
+  StateOrProvince = ConjCN or_Conj (BaseCN (UseN state_N) (UseN province_N)) ;
+  StaticWaterArea = AdjCN (PositA static_A) (ApposCN (UseN water_N) (MassNP (UseN area_N))) ;
+  Stating = UseN2 (VerbToNounV2 state_V2) ;
+  StationaryArtifact = AdjCN (PositA stationary_A) (UseN artifact_N) ;
+  StreamWaterArea = ApposCN (ApposCN (UseN stream_N) (MassNP (UseN water_N))) (MassNP (UseN area_N)) ;
+  SubatomicParticle = AdjCN (PositA subatomic_A) (UseN particle_N) ;
+  SubjectiveAssessmentAttribute = AdjCN (PositA subjective_A) (ApposCN (UseN assessment_N) (MassNP (UseN attribute_N))) ;
+  Substance = UseN substance_N ;
+  Substituting = UseN2 (VerbToNounV2 substitute_V2) ;
+  Summary = UseN summary_N ;
+  Sunday = UseN sunday_N ;
+  Supposing = UseN2 (VerbToNounV2 suppose_V2) ;
+  SurfaceChange = ApposCN (UseN surface_N) (MassNP (UseN change_N)) ;
+  Surgery = UseN surgery_N ;
+  Suspension = UseN suspension_N ;
+  Swimming = UseN swimming_N ;
+  SymbolicString = AdjCN (PositA symbolic_A) (UseN string_N) ;
+  SyntheticSubstance = AdjCN (PositA synthetic_A) (UseN substance_N) ;
+  TactilePerception = AdjCN (PositA tactile_A) (UseN perception_N) ;
+  TasteAttribute = ApposCN (UseN taste_N) (MassNP (UseN attribute_N)) ;
+  Tasting = UseN2 (VerbToNounV2 taste_V2) ;
+  TemperatureMeasure = ApposCN (UseN temperature_N) (MassNP (UseN measure_N)) ;
+  TemporaryResidence = AdjCN (PositA temporary_A) (UseN residence_N) ;
+  TerminatingEmployment = AdjCN (PositA (VerbToGerundA terminate_V)) (UseN employment_N) ;
+  Text = UseN text_N ;
+  TextureAttribute = ApposCN (UseN texture_N) (MassNP (UseN attribute_N)) ;
+  TherapeuticProcess = AdjCN (PositA therapeutic_A) (UseN process_N) ;
+  ThreeDimensionalFigure = AdjCN (PositA (compoundA (regA "three-dimensional"))) (UseN figure_N) ;
+  Thursday = UseN thursday_N ;
+  TimeDependentQuantity = ApposCN (ApposCN (UseN time_N) (MassNP (UseN dependent_N))) (MassNP (UseN quantity_N)) ;
+  TimeDuration = ApposCN (UseN time_N) (MassNP (UseN duration_N)) ;
+  TimeInterval = ApposCN (UseN time_N) (MassNP (UseN interval_N)) ;
+  TimeMeasure = ApposCN (UseN time_N) (MassNP (UseN measure_N)) ;
+  TimePoint = ApposCN (UseN time_N) (MassNP (UseN point_N)) ;
+  TimePosition = ApposCN (UseN time_N) (MassNP (UseN position_N)) ;
+  TimeZone = ApposCN (UseN time_N) (MassNP (UseN zone_N)) ;
+  Tissue = UseN tissue_N ;
+  Touching = UseN2 (VerbToNounV2 touch_V2) ;
+  TraitAttribute = ApposCN (UseN trait_N) (MassNP (UseN attribute_N)) ;
+  Transaction = UseN transaction_N ;
+  Transfer = UseN transfer_N ;
+  Translating = UseN2 (VerbToNounV2 translate_V2) ;
+  Transportation = UseN transportation_N ;
+  TransportationDevice = ApposCN (UseN transportation_N) (MassNP (UseN device_N)) ;
+  Tree = UseN tree_N ;
+  TruthValue = ApposCN (UseN truth_N) (MassNP (UseN value_N)) ;
+  Tuesday = UseN tuesday_N ;
+  TwoDimensionalAngle = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN angle_N) ;
+  TwoDimensionalFigure = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN figure_N) ;
+  Uncovering = UseN2 (VerbToNounV2 uncover_V2) ;
+  UnilateralGetting = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 beget_V2)) ;
+  UnilateralGiving = AdjCN (PositA unilateral_A) (UseN2 (VerbToNounV2 give_V2)) ;
+  UniqueList = AdjCN (PositA unique_A) (UseN list_N) ;
+  UnitOfAngularMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA angular_A) (UseN measure_N)))) ;
+  UnitOfArea = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN area_N))) ;
+  UnitOfAtmosphericPressure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (AdjCN (PositA atmospheric_A) (UseN pressure_N)))) ;
+  UnitOfCurrency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN currency_N))) ;
+  UnitOfDuration = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN duration_N))) ;
+  UnitOfFrequency = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN frequency_N))) ;
+  UnitOfInformation = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN information_N))) ;
+  UnitOfLength = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN length_N))) ;
+  UnitOfMass = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN mass_N))) ;
+  UnitOfMeasure = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN measure_N))) ;
+  UnitOfTemperature = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN temperature_N))) ;
+  UnitOfVolume = AdvCN (UseN unit_N) (PrepNP part_Prep (MassNP (UseN volume_N))) ;
+  ValidDeductiveArgument = AdjCN (PositA valid_A) (AdjCN (PositA deductive_A) (UseN argument_N)) ;
+  Vehicle = UseN vehicle_N ;
+  Verb = UseN verb_N ;
+  VerbPhrase = ApposCN (UseN verb_N) (MassNP (UseN phrase_N)) ;
+  Vertebrate = UseN vertebrate_N ;
+  ViolentContest = AdjCN (PositA violent_A) (UseN contest_N) ;
+  Virus = UseN virus_N ;
+  VisualAttribute = AdjCN (PositA visual_A) (UseN attribute_N) ;
+  Vitamin = UseN vitamin_N ;
+  VocalCords = AdjCN (PositA vocal_A) (UseN cord_N) ;
+  Vocalizing = UseN2 (VerbToNounV2 vocalize_V2) ;
+  VolumeMeasure = ApposCN (UseN volume_N) (MassNP (UseN measure_N)) ;
+  Voting = UseN2 (VerbToNounV2 vote_V2) ;
+  Walking = UseN walking_N ;
+  War = UseN war_N ;
+  Water = UseN water_N ;
+  WaterArea = ApposCN (UseN water_N) (MassNP (UseN area_N)) ;
+  WaterCloud = ApposCN (UseN water_N) (MassNP (UseN cloud_N)) ;
+  WaterMotion = ApposCN (UseN water_N) (MassNP (UseN motion_N)) ;
+  Weapon = UseN weapon_N ;
+  WearableItem = AdjCN (PositA wearable_A) (UseN item_N) ;
+  WeatherProcess = ApposCN (UseN weather_N) (MassNP (UseN process_N)) ;
+  Wedding = UseN wedding_N ;
+  Wednesday = UseN wednesday_N ;
+  Week = UseN week_N ;
+  Wetting = UseN wetting_N ;
+  Wind = UseN wind_N ;
+  Woman = UseN woman_N ;
+  Word = UseN word_N ;
+  Worm = UseN worm_N ;
+  Writing = UseN writing_N ;
+  Year = UseN year_N ;
+  
+  
+  -- nullary functions 
+  
+  GreatestCommonDivisorFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdSuperl great_A)) (AdjCN (PositA common_A) (UseN divisor_N))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
+  LeastCommonMultipleFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA least_A) (AdjCN (PositA common_A) (UseN multiple_N)))) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
+  ListFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN list_N)) (PrepNP part_Prep (ConjNP and_Conj ob)) ;
+  
+  -- unary functions 
+  
+  AbsoluteValueFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA absolute_A) (UseN value_N))) (PrepNP part_Prep ob) ;
+  AbstractionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN abstraction_N)) (PrepNP part_Prep (MassNP ob)) ;
+  BackFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN back_N)) (PrepNP part_Prep ob) ;
+  BeginFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN2 (VerbToNounV2 begin_V2))) (PrepNP part_Prep ob) ;
+  BeginNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
+  CeilingFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN ceiling_N)) (PrepNP part_Prep ob) ;
+  CenterOfCircleFn ob = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN centre_N)) (PrepNP part_Prep (MassNP (UseN circle_N)))) (PrepNP part_Prep ob) ;
+  ComplementFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN complement_N)) (PrepNP part_Prep ob) ;
+  CosineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN cosine_N)) (PrepNP part_Prep ob) ;
+  CutSetFn ob = AdvCN (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N)) (PrepNP part_Prep ob) ;
+  DenominatorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN denominator_N)) (PrepNP part_Prep ob) ;
+  EndFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN end_N)) (PrepNP part_Prep ob) ;
+  EndNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN end_N) (MassNP (UseN node_N)))) (PrepNP part_Prep ob) ;
+  ExtensionFn ob = AdvCN (UseN extension_N) (PrepNP part_Prep  ob) ;
+  FloorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN floor_N)) (PrepNP part_Prep ob) ;
+  FrontFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN front_N)) (PrepNP part_Prep ob) ;
+  FutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN future_N)) (PrepNP part_Prep ob) ;
+  GeneralizedIntersectionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN intersection_N))) (PrepNP part_Prep (MassNP ob)) ;
+  GeneralizedUnionFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA generalize_V)) (UseN union_N))) (PrepNP part_Prep (MassNP  ob)) ;
+  GovernmentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN government_N)) (PrepNP part_Prep  ob) ;
+  HoleHostFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN host_N)))) (PrepNP part_Prep ob) ;
+  HoleSkinFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN hole_N) (MassNP (UseN skin_N)))) (PrepNP part_Prep ob) ;
+  ImaginaryPartFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA imaginary_A) (UseN part_N))) (PrepNP part_Prep ob) ;
+  ImmediateFamilyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN family_N))) (PrepNP part_Prep ob) ;
+  ImmediateFutureFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN future_N))) (PrepNP part_Prep ob) ;
+  ImmediatePastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA immediate_A) (UseN past_N))) (PrepNP part_Prep ob) ;
+  InitialNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA initial_A) (UseN node_N))) (PrepNP part_Prep ob) ;
+  IntegerSquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN integer_N) square_Adv) (MassNP (UseN root_N)))) (PrepNP part_Prep ob) ;
+  MagnitudeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN magnitude_N)) (PrepNP part_Prep ob) ;
+  MinimalCutSetFn ob = AdvCN (AdjCN (PositA minimal_A) (AdjCN (PositA (VerbToParticipeA cut_V)) (UseN set_N))) (PrepNP part_Prep ob) ;
+  NumeratorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN numerator_N)) (PrepNP part_Prep ob) ;
+  PastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN past_N)) (PrepNP part_Prep ob) ;
+  PathWeightFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) (MassNP (UseN weight_N)))) (PrepNP part_Prep ob) ;
+  PowerSetFn ob = AdvCN (ApposCN (UseN power_N) (MassNP (UseN set_N))) (PrepNP part_Prep ob) ;
+  PredecessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN predecessor_N)) (PrepNP part_Prep ob) ;
+  PremisesFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN premise_N)) (PrepNP part_Prep ob) ;
+  ProbabilityFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)) (PrepNP part_Prep (sentToNoun ob)) ;
+  PropertyFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN property_N)) (PrepNP part_Prep ob) ;
+  RationalNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA rational_A) (UseN number_N))) (PrepNP part_Prep ob) ;
+  RealNumberFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA real_A) (UseN number_N))) (PrepNP part_Prep ob) ;
+  ReciprocalFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN reciprocal_N)) (PrepNP part_Prep ob) ;
+  RoundFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA round_A) (UseN value_N))) (PrepNP part_Prep ob) ;
+  SineFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sine_N)) (PrepNP part_Prep ob) ;
+  SquareRootFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA square_A) (UseN root_N))) (PrepNP part_Prep ob) ;
+  SuccessorFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN successor_N)) (PrepNP part_Prep ob) ;
+  TangentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN tangent_N)) (PrepNP part_Prep ob) ;
+  TerminalNodeFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA terminal_A) (UseN node_N))) (PrepNP part_Prep ob) ;
+  UnitFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN unit_N)) (PrepNP part_Prep ob) ;
+  WealthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN wealth_N)) (PrepNP part_Prep ob) ;
+  WhenFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)) (PrepNP part_Prep ob) ;
+  YearFn ob = AdvCN (UseN year_N) (PrepNP part_Prep ob) ;
+  KiloFn ob = AdvNP (MassNP (UseN kilo_N)) (PrepNP part_Prep ob) ;
+  ListLengthFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)) (PrepNP part_Prep ob) ;
+  SignumFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN sign_N)) (PrepNP part_Prep ob) ;
+  
+  -- binary functions 
+  
+  AdditionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN addition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  DayFn ob1 ob2 = AdvCN (ApposCN (UseN day_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
+  DivisionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN division_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
+  EditionFn ob1 ob2 = AdvCN (ApposCN (UseN edition_N) (MassNP ob1)) (PrepNP part_Prep ob2) ;
+  ExponentiationFn ob1 ob2 = AdvNP (AdvNP ob1 (PrepNP to_Prep (DetCN (DetQuant DefArt NumSg) (UseN power_N)))) (PrepNP part_Prep ob2) ;
+  GraphPathFn ob1 ob2 = AdvCN (UseN path_N) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  HourFn ob1 ob2 = AdvCN (ApposCN (UseN hour_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
+  IntersectionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN intersection_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  IntervalFn ob1 ob2 = AdvCN (AdvCN (UseN interval_N) (PrepNP from_Prep ob1)) (PrepNP to_Prep ob2) ;
+  ListConcatenateFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN concatenation_N)) (PrepNP part_Prep ob1)) (PrepNP to_Prep ob2) ;
+  ListOrderFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN element_N)) (PrepNP with_Prep (MassNP (ApposCN (UseN number_N) ob2)))) (PrepNP in_Prep ob1) ;
+  LogFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN logarithm_N)) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN base_N) ob2))) ;
+  MaxFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN maximum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  MaximalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA maximal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  MinFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN minimum_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  MinimalWeightedPathFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN path_N)) (PrepNP part_Prep (MassNP (AdjCN (PositA minimal_A) (UseN weight_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  MinuteFn ob1 ob2 = AdvCN (ApposCN (UseN minute_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
+  MonthFn ob1 ob2 = AdvCN (ApposCN (UseN month_N) (MassNP ob1)) (PrepNP part_Prep (MassNP ob2)) ;
+  MultiplicationFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN multiplication_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  PerFn ob1 ob2 = AdvNP ob1 (PrepNP per_Prep ob2) ;
+  PeriodicalIssueFn ob1 ob2 = AdvCN (AdvCN (AdjCN (PositA periodical_A) (UseN issue_N)) (PrepNP part_Prep (MassNP ob1))) (PrepNP with_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN number_N) ob2))) ;
+  RecurrentTimeIntervalFn ob1 ob2 = AdvCN (AdjCN (PositA recurrent_A) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2)))) ;
+  RelativeComplementFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN complement_N) (PrepNP part_Prep ob2)) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob1) ;
+  RelativeTimeFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN time_N) ob1) (MassNP (UseN relative_N)))) (PrepNP to_Prep ob2) ;
+  RemainderFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN remainder_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  SecondFn ob1 ob2 = AdvCN (ApposCN (UseN second_N) ob1) (PrepNP part_Prep (MassNP ob2)) ;
+  SeriesVolumeFn ob1 ob2 = AdvCN (ApposCN (UseN volume_N) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN series_N) (MassNP ob1)))) ;
+  SubtractionFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN subtraction_N)) (PrepNP part_Prep ob2)) (PrepNP from_Prep ob1) ;
+  TemporalCompositionFn ob1 ob2 = AdvCN (AdjCN (PositA temporal_A) (UseN composition_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 (MassNP ob2)))) ;
+  TimeIntervalFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) (MassNP (UseN interval_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  UnionFn ob1 ob2 = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN union_N)) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))) ;
+  WhereFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)) (PrepNP part_Prep ob1)) (PrepNP at_Prep ob2) ;
+  DensityFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN density_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
+  SpeedFn ob1 ob2 = AdvNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN speed_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2) ;
+  
+  -- quaternary functions 
+  
+  VelocityFn ob1 ob2 ob3 ob4 = AdvNP (AdvNP (AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN velocity_N)) (PrepNP part_Prep ob1)) (PrepNP per_Prep ob2)) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob4) ;
+  
+  
+  -- nullary predicates
+  
+  contraryAttribute ob1 = mkPolSent (PredVP (ConjNP and_Conj ob1) (UseComp (CompNP (MassNP (AdjCN (PositA contrary_A) (UseN attribute_N)))))) ;
+  exhaustiveAttribute ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj ob2) (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1))) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (UseN instance_N))))) ;
+  exhaustiveDecomposition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exhaustive_A) (UseN decomposition_N))))) (PrepNP part_Prep (MassNP ob1)))) ;
+  partition ob1 ob2 = mkPolSent (PredVP (MassNP (ConjCN and_Conj ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN partition_N)))) (PrepNP part_Prep (MassNP ob1)))) ;
+  
+  
+  
+  -- binary predicates   
+  abstractCounterpart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA abstract_A) (UseN counterpart_N))))) (PrepNP part_Prep ob2))) ;
+  acquaintance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN acquaintance_N)))) (PrepNP part_Prep ob2))) ;
+  atomicNumber ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA atomic_A) (UseN number_N))))) (PrepNP part_Prep ob2))) ;
+  authors ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN author_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
+  average ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN average_N)))) (PrepNP part_Prep ob2))) ;
+  barometricPressure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA barometric_A) (UseN pressure_N))))) (PrepNP part_Prep ob2))) ;
+  believes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a believe_V2) (sentToNoun ob2))) ;
+  boilingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 boil_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
+  causes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cause_V2) ob2)) ;
+  causesProposition ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a cause_V2) (sentToNoun ob2))) ;
+  causesSubclass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a cause_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))) (PrepNP part_Prep (MassNP ob2)))) ;
+  citizen ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN citizen_N)))) (PrepNP part_Prep ob2))) ;
+  conclusion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN conclusion_N)))) (PrepNP part_Prep ob2))) ;
+  connected ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 connect_V2) (PrepNP to_Prep ob2))) ;
+  considers ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a consider_V2) (sentToNoun ob2))) ;
+  consistent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA consistent_A))) (PrepNP with_Prep ob2))) ;
+  containsInformation ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN information_N) ob2)))) ;
+  cooccur ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseV occur_V) (PositAdvAdj simultaneous_A)) (PrepNP with_Prep ob2))) ;
+  copy ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN copy_N)))) (PrepNP part_Prep ob2))) ;
+  date ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN date_N)))) (PrepNP part_Prep ob2))) ;
+  decreasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a decrease_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
+  desires ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a desire_V2) (sentToNoun ob2))) ;
+  diameter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN diameter_N)))) (PrepNP part_Prep ob2))) ;
+  duration ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN duration_N)))) (PrepNP part_Prep ob2))) ;
+  earlier ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA early_A ob2)))) ;
+  editor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN editor_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
+  element ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
+  employs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a employ_V2) ob2)) ;
+  entails ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a entail_V2) (sentToNoun ob2))) ;
+  equal ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA equal_A))) (PrepNP to_Prep ob2))) ;
+  exploits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a exploit_V2) ob2)) ;
+  expressedInLanguage ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 express_V2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
+  faces ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a face_V2) ob2)) ;
+  familyRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN family_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep ob2))) ;
+  frequency ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN frequency_N)))) (PrepNP part_Prep ob2))) ;
+  geometricPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA geometric_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
+  graphMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
+  graphPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
+  hasPurpose ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2))))) ;
+  hasSkill ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN skill_N)  ob2)))) ;
+  holdsDuring ob1 ob2 = mkPolSent (PredVP (sentToNoun ob2) (AdvVP (UseV hold_V) (PrepNP during_Prep ob1))) ;
+  holdsObligation ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN obligation_N) ob2)))) ;
+  holdsRight ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (ComplSlash (SlashV2a behold_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN right_N)  ob2)))) ;
+  hole ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN hole_N)))) (PrepNP part_Prep ob2))) ;
+  identicalListItems ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA identical_A) (UseN item_N))))) ;
+  inList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN element_N)))) (PrepNP part_Prep ob2))) ;
+  increasesLikelihood ob1 ob2 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (ComplSlash (SlashV2a increase_V2) (DetCN (DetQuant DefArt NumSg) (UseN possibility_N))) (PrepNP part_Prep (sentToNoun ob2)))) ;
+  independentProbability ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (sentToNoun ob1) (sentToNoun ob2))) (ComplSlash (SlashV2a have_V2) (MassNP (AdjCN (PositA independent_A) (UseN probability_N))))) ;
+  inhabits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a inhabit_V2) ob2)) ;
+  inhibits ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a inhibit_V2) (MassNP ob2))) ;
+  knows ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a know_V2) (sentToNoun ob2))) ;
+  larger ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA large_A ob2)))) ;
+  leader ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN leader_N)))) (PrepNP part_Prep ob2))) ;
+  legalRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA legal_A) (UseN relation_N))))) (PrepNP part_Prep ob2))) ;
+  lessThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (PositA less_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
+  lineMeasure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
+  material ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN material_N)))) (PrepNP part_Prep ob2))) ;
+  measure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN measure_N)))) (PrepNP part_Prep ob2))) ;
+  meltingPoint ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN2 (VerbToNounV2 melt_V2)) (MassNP (UseN point_N)))))) (PrepNP part_Prep ob2))) ;
+  multiplicativeFactor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN factor_N)))) (PrepNP part_Prep ob2))) ;
+  mutualAcquaintance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA mutual_A) (UseN acquaintance_N)))))) ;
+  needs ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a need_V2) ob2)) ;
+  parallel ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (PositA parallel_A))) (PrepNP to_Prep ob2))) ;
+  parent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN parent_N)))) (PrepNP part_Prep ob2))) ;
+  partialOrderingOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (UseN ordering_N))))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
+  pathLength ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN path_N) ob2))))) ;
+  possesses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a possess_V2) ob2)) ;
+  precondition ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN precondition_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
+  premise ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN premise_N)))) (PrepNP part_Prep ob2))) ;
+  prevents ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a prevent_V2) (MassNP ob2))) ;
+  property ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN property_N)))) (PrepNP part_Prep ob2))) ;
+  publishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a publish_V2) (MassNP ob2))) ;
+  radius ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN radius_N)))) (PrepNP part_Prep ob2))) ;
+  refers ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV refer_V) (PrepNP to_Prep ob2))) ;
+  reflexiveOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompAP (PositA reflexive_A))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
+  relatedEvent ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (UseN event_N)))))) ;
+  relatedInternalConcept ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA internal_A) (UseN concept_N))))))) ;
+  relative ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN relative_N)))) (PrepNP part_Prep ob2))) ;
+  sibling ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN sibling_N)))) (PrepNP part_Prep ob2))) ;
+  smaller ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA small_A ob2)))) ;
+  subAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
+  subCollection ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN collection_N)))))) (PrepNP part_Prep ob2))) ;
+  subGraph ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN graph_N)))))) (PrepNP part_Prep ob2))) ;
+  subList ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN list_N)))))) (PrepNP part_Prep ob2))) ;
+  subProcess ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN process_N)))))) (PrepNP part_Prep ob2))) ;
+  subProposition ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN proposition_N)))))) (PrepNP part_Prep ob2))) ;
+  subSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN system_N)))))) (PrepNP part_Prep ob2))) ;
+  subclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN class_N)))))) (PrepNP part_Prep ob2))) ;
+  
+  subsumesContentClass ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep (MassNP ob2)))) ;
+  subsumesContentInstance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a subsume_V2) (DetCN (DetQuant DefArt NumSg) (UseN content_N))) (PrepNP part_Prep ob2))) ;
+  successorAttribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN successor_N) (MassNP (UseN attribute_N)))))) (PrepNP part_Prep ob2))) ;
+  systemPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
+  temporalPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA temporal_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
+  time ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN time_N)))) (PrepNP part_Prep ob2))) ;
+  totalOrderingOn c p = mkPolSent (PredVP (sentToNoun p) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (UseN ordering_N))))) (PrepNP on_Prep (DetCN (DetQuant IndefArt NumSg) c)))) ;
+  traverses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a traverse_V2) ob2)) ;
+  uses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a use_V2) ob2)) ;
+  version ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN version_N)))) (PrepNP part_Prep (MassNP ob2)))) ;
+  wants ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a want_V2) ob2)) ;
+  wears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a outwear_V2) ob2)) ;
+  weight ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep ob2))) ;
+  age ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN age_N)))) (PrepNP part_Prep ob2))) ;
+  agent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN agent_N)))) (PrepNP part_Prep ob2))) ;
+  ancestor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN ancestor_N)))) (PrepNP part_Prep ob2))) ;
+  angleOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN angle_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
+  attends ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a attend_V2) ob2)) ;
+  attribute ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN attribute_N)))) (PrepNP part_Prep ob2))) ;
+  before ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAdv (PrepNP before_Prep ob2)))) ;
+  bottom ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN bottom_N)))) (PrepNP part_Prep ob2))) ;
+  side ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN side_N)))) (PrepNP part_Prep ob2))) ;
+  surface ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN surface_N)))) (PrepNP part_Prep ob2))) ;
+  top ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN top_N)))) (PrepNP part_Prep ob2))) ;
+  brother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN brother_N)))) (PrepNP part_Prep ob2))) ;
+  fills ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fill_V2) ob2)) ;
+  completelyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj complete_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
+  properlyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj proper_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
+  exactlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA exact_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
+  partiallyFills ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a fill_V2) ob2)) ;
+  component ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN component_N)))) (PrepNP part_Prep ob2))) ;
+  contains ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a contain_V2) ob2)) ;
+  crosses ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a cross_V2) ob2)) ;
+  destination ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN destination_N)))) (PrepNP part_Prep ob2))) ;
+  direction ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN direction_N)))) (PrepNP part_Prep ob2))) ;
+  during ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV happen_V) (PrepNP during_Prep ob2))) ;
+  equivalentContentClass ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP (MassNP ob1) (MassNP ob2))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
+  finishes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a finish_V2) ob2)) ;
+  grasps ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a grasp_V2) ob2)) ;
+  penetrates ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a penetrate_V2) ob2)) ;
+  height ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN height_N)))) (PrepNP part_Prep ob2))) ;
+  length ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN length_N)))) (PrepNP part_Prep ob2))) ;
+  width ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN width_N)))) (PrepNP part_Prep ob2))) ;
+  home ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN home_N)))) (PrepNP part_Prep ob2))) ;
+  husband ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN husband_N)))) (PrepNP part_Prep ob2))) ;
+  wife ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN wife_N)))) (PrepNP part_Prep ob2))) ;
+  instrument ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN instrument_N)))) (PrepNP part_Prep ob2))) ;
+  result ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN result_N)))) (PrepNP part_Prep ob2))) ;
+  interiorPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN interior_N)))) part_Adv) (PrepNP part_Prep ob2))) ;
+  linearExtent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA linear_A) (UseN extent_N))))) (PrepNP part_Prep ob2))) ;
+  located ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN location_N)))) (PrepNP part_Prep ob1))) ;
+  manner ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN manner_N)))) (PrepNP part_Prep ob2))) ;
+  member ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP part_Prep ob2))) ;
+  monetaryValue ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA monetary_A) (UseN value_N))))) (PrepNP part_Prep ob2))) ;
+  names ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN name_N)))) (PrepNP part_Prep ob2))) ;
+  origin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN origin_N)))) (PrepNP part_Prep ob2))) ;
+  part ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN part_N)))) (PrepNP part_Prep ob2))) ;
+  path ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN path_N)))) (PrepNP part_Prep ob2))) ;
+  mother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN mother_N)))) (PrepNP part_Prep ob2))) ;
+  father ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN father_N)))) (PrepNP part_Prep ob2))) ;
+  daughter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN daughter_N)))) (PrepNP part_Prep ob2))) ;
+  son ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN son_N)))) (PrepNP part_Prep ob2))) ;
+  patient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN patient_N)))) (PrepNP part_Prep ob2))) ;
+  piece ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN piece_N)))) (PrepNP part_Prep ob2))) ;
+  pointOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
+  properPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA proper_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
+  realization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN realization_N)))) (PrepNP part_Prep ob2))) ;
+  represents ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a represent_V2) ob2)) ;
+  sister ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN sister_N)))) (PrepNP part_Prep ob2))) ;
+  spouse ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN spouse_N)))) (PrepNP part_Prep ob2))) ;
+  starts ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a start_V2) ob2)) ;
+  stays ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a stay_V2) ob2)) ;
+  subOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN organization_N)))))) (PrepNP part_Prep ob2))) ;
+  subPlan ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN plan_N)))))) (PrepNP part_Prep ob2))) ;
+  superficialPart ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA superficial_A) (UseN part_N))))) (PrepNP part_Prep ob2))) ;
+  truth ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN truth_N) (MassNP (UseN value_N)))))) (PrepNP part_Prep ob2))) ;
+  angularMeasure ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA angular_A) (UseN measure_N))))) (PrepNP part_Prep ob1))) ;
+  arcWeight ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN weight_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN arc_N) ob1))))) ;
+  geographicSubregion ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN region_N)))))) (PrepNP part_Prep ob2))) ;
+  involvedInEvent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 involve_V2) (PrepNP in_Prep ob2))) ;
+  meetsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
+  partlyLocated ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA partial_A) (UseN location_N))))) (PrepNP part_Prep ob1))) ;
+  geopoliticalSubdivision ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN division_N)))))) (PrepNP part_Prep ob2))) ;
+  immediateSubclass ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA immediate_A) (ApposCN (UseN sub_N) (MassNP (UseN class_N))))))) (PrepNP part_Prep ob2))) ;
+  meetsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a meet_V2) ob2)) ;
+  overlapsPartially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj partial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
+  overlapsSpatially ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj spatial_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
+  subset ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN set_N)))))) (PrepNP part_Prep ob2))) ;
+  greaterThan ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA great_A ob2)))) ;
+  greaterThanOrEqualTo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompAP (ConjAP or_Conj (BaseAP (UseComparA great_A) (PositA equal_A))))) (PrepNP to_Prep ob2))) ;
+  inScopeOfInterest ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 interest_V2) (PrepNP in_Prep ob2))) ;
+  overlapsTemporally ob1 ob2 = mkPolSent (PredVP (AdvNP ob1 (PositAdvAdj temporal_A)) (ComplSlash (SlashV2a overlap_V2) ob2)) ;
+  engineeringSubcomponent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN component_N)))))) (PrepNP part_Prep ob2))) ;
+  equivalentContentInstance ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA equivalent_A) (UseN content_N))))) ;
+  successorAttributeClosure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN successor_N) (MassNP (UseN attribute_N))) (MassNP (UseN closure_N)))))) (PrepNP part_Prep ob2))) ;
+  transactionAmount ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN amount_N)))) (PrepNP part_Prep ob2))) ;
+  connectedEngineeringComponents ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (PassV2 connect_V2)) ;
+  
+  
+  -- ternary predicate 
+  
+  between ob1 ob2 ob3 = mkPolSent (PredVP ob2 (UseComp (CompAdv (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3)))))) ;
+  conditionalProbability ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN probability_N)))) (PrepNP part_Prep (PPartNP (sentToNoun ob1) condition_V2))) (PrepNP by8agent_Prep (sentToNoun ob2)))) ;
+  confersNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a confer_V2) (ConjNP and_Conj (BaseNP ob3 (sentToNoun ob2))))) ;
+  confersObligation ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN obligation_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep  ob2))) ;
+  confersRight ob1 ob2 ob3 = mkPolSent (PredVP (sentToNoun ob1) (AdvVP (AdvVP (ComplSlash (SlashV2a confer_V2) (DetCN (DetQuant DefArt NumSg) (UseN right_N))) (PrepNP part_Prep ob3)) (PrepNP to_Prep ob2))) ;
+  connects ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a connect_V2) ob2) (PrepNP to_Prep ob3))) ;
+  deprivesNorm ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a deprive_V2) ob3) (PrepNP to_Prep ( sentToNoun ob2)))) ;
+  distance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN distance_N)))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
+  documentation ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN documentation_N)))) (PrepNP part_Prep ob1)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2))))) ;
+  geometricDistance ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA geometric_A) (UseN distance_N))))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
+  hasPurposeForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN purpose_N) (sentToNoun ob2)))) (PrepNP for_Prep (MassNP (ApposCN (UseN agent_N) ob3))))) ;
+  links ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a link_V2) (ConjNP and_Conj (BaseNP ob1 ob2)))) ;
+  occupiesPosition ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a occupy_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob2))) (PrepNP in_Prep ob3))) ;
+  orientation ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN orientation_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
+  pointOfIntersection ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN point_N)))) (PrepNP part_Prep (MassNP (UseN intersection_N)))) (PrepNP part_Prep (ConjNP and_Conj (BaseNP ob1 ob2))))) ;
+  relatedExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA (VerbToParticipeA relate_V)) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP part_Prep ob2)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
+  representsForAgent ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP for_Prep ob3))) ;
+  representsInLanguage ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a represent_V2) ob2) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
+  temporallyBetween ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (PrepNP between_Prep (ConjNP and_Conj (BaseNP ob1 ob3))))) ;
+  temporallyBetweenOrEqual ob1 ob2 ob3 = mkPolSent (PredVP ob2 (AdvVP (AdvVP (UseComp (CompAdv (PositAdvAdj temporal_A))) (ConjAdv or_Conj (BaseAdv between_Adv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA same_A) (UseN time_N))))))) (PrepNP with_Prep (ConjNP or_Conj (BaseNP ob1 ob3))))) ;
+  altitude ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN altitude_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
+  connectsEngineeringComponents ob1 ob2 ob3 = mkPolSent (PredVP ob3 (ComplSlash (SlashV2a connect_V2) (ConjNP and_Conj (BaseNP ob2 ob3)))) ;
+  depth ob1 ob2 ob3 = mkPolSent (PredVP ob3 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (AdvCN (UseN depth_N) (PrepNP part_Prep ob1)) (MassNP (UseN relative_N)))))) (PrepNP to_Prep ob2))) ;
+  synonymousExternalConcept ob1 ob2 ob3 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA synonymous_A) (AdjCN (PositA external_A) (UseN concept_N)))))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob3))))) ;
+  greaterThanByQuality ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (AdvVP (UseV (mkV "have")) more_Adv) (PrepNP part_Prep (PPartNP ob3 compare_V2))) (PrepNP to_Prep ob2))) ;
+  prefers ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a prefer_V2) (sentToNoun ob2)) (PrepNP to_Prep (sentToNoun ob3)))) ;
+  
+  --relations
+  AsymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA asymmetric_A) (UseN relation_N)))))) ;
+  EquivalenceRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN equivalence_N) (MassNP (UseN relation_N))))))) ;
+  IntransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intransitive_A) (UseN relation_N)))))) ;
+  -- OneToOneFunction c1 c2 f = mkPolSent(PredVP f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdvCN (UseN one_N) (PrepNP to_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN function_N)))))))) ;
+  PartialOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA partial_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
+  SequenceFunction c f = mkPolSent(PredVP  f (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sequence_N) (MassNP (UseN function_N))))))) ;
+  ReflexiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA reflexive_A) (UseN relation_N)))))) ;
+  SymmetricRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA symmetric_A) (UseN relation_N)))))) ;
+  TotalOrderingRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA total_A) (ApposCN (UseN2 (VerbToNounV2 order_V2)) (MassNP (UseN relation_N)))))))) ;
+  TransitiveRelation c f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA transitive_A) (UseN relation_N)))))) ;
+  IntentionalRelation c1 c2 f = mkPolSent(PredVP (sentToNoun f) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA intentional_A) (UseN relation_N)))))) ;
+  subRelation2El c1 c2 c3 c4 f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN relation_N)))))) (PrepNP part_Prep (sentToNoun g)))) ;
+  identityElement c f elem = mkPolSent (PredVP elem (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN identity_N) (MassNP (UseN element_N)))))) (PrepNP part_Prep f))) ;
+  inverse c f g = mkPolSent (PredVP (sentToNoun f) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN inverse_N)))) (PrepNP part_Prep (sentToNoun g)))) ;
+
+  --others
+  toInt x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
+  toRealNum x = {s = \\c => x.s; a = agrP3 Sg; lock_NP = <>} ;
+};
diff --git a/examples/SUMO/MergeFre.gf b/examples/SUMO/MergeFre.gf
--- a/examples/SUMO/MergeFre.gf
+++ b/examples/SUMO/MergeFre.gf
@@ -48,4 +48,20 @@
 -- ternary predicate 
 
 
+---------------- CNL demo
+Entity = UseN entity_N ;
+Abstract = UseN abstract_N ;
+Attribute = UseN attribute_N ; 
+Graph = UseN graph_N ;
+GraphElement = AdvCN (UseN element_N) (PrepNP part_Prep (MassNP (UseN graph_N))) ;
+Proposition = UseN proposition_N ;
+Quantity = UseN quantity_N ;
+SetOrClass = ConjCN or_Conj (BaseCN (UseN set_N) (UseN class_N)) ;
+Physical = UseN physical_N ;
+ContentBearingPhysical = AdvCN (UseN physical_N) (PrepNP with_Prep (MassNP (UseN content_N))) ;
+Object = UseN object_N ;
+PhysicalSystem = AdjCN (PositA physical_A) (UseN system_N) ;
+Process = UseN process_N ;
+
+
 };
diff --git a/examples/SUMO/MergeRon.gf b/examples/SUMO/MergeRon.gf
--- a/examples/SUMO/MergeRon.gf
+++ b/examples/SUMO/MergeRon.gf
@@ -51,4 +51,22 @@
 --others
 toInt x = mkNP x.s ("lui" ++ x.s) x.s Sg Masc;
 toRealNum x = mkNP x.s ("lui" ++ x.s) x.s Sg Masc; 
+
+
+---------------- CNL demo
+Entity = UseN entity_N ;
+Abstract = UseN abstract_N ;
+Attribute = UseN attribute_N ; 
+Graph = UseN graph_N ;
+GraphElement = AdvCN (UseN element_N) (PrepNP part_Prep (MassNP (UseN graph_N))) ;
+Proposition = UseN proposition_N ;
+Quantity = UseN quantity_N ;
+SetOrClass = ConjCN or_Conj (BaseCN (UseN set_N) (UseN class_N)) ;
+Physical = UseN physical_N ;
+ContentBearingPhysical = AdvCN (UseN physical_N) (PrepNP with_Prep (MassNP (UseN content_N))) ;
+Object = UseN object_N ;
+PhysicalSystem = AdjCN (PositA physical_A) (UseN system_N) ;
+Process = UseN process_N ;
+
+
 };
diff --git a/examples/SUMO/MergeSwe.gf b/examples/SUMO/MergeSwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MergeSwe.gf
@@ -0,0 +1,16 @@
+concrete MergeSwe of Merge = BasicSwe ** open SyntaxSwe, ParadigmsSwe in {
+
+flags
+  coding=utf8 ;
+
+lin
+  Bird = mkCN (mkN "fågel") ;
+  Monday = mkCN (mkN "måndag") ;
+  Tuesday = mkCN (mkN "tisdag") ;
+  Wednesday = mkCN (mkN "onsdag") ;
+  Thursday = mkCN (mkN "torsdag") ;
+  Friday = mkCN (mkN "fredag") ;
+  Saturday = mkCN (mkN "lördag") ;
+  Sunday = mkCN (mkN "söndag") ;
+
+};
diff --git a/examples/SUMO/MidLevelOntology.gf b/examples/SUMO/MidLevelOntology.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MidLevelOntology.gf
@@ -0,0 +1,7979 @@
+abstract MidLevelOntology = Merge, Elements ** {
+
+  -- Removing a human fetus from a Pregnant woman 
+  -- in such a way that the fetus cannot survive.
+  fun Aborting : Class ;
+  fun Aborting_Class : SubClass Aborting Removing ;
+
+  -- A Certificate that demonstrates that the holder 
+  -- of the Certificate has successfully completed an EducationalProgram.
+  fun AcademicDegree : Class ;
+  fun AcademicDegree_Class : SubClass AcademicDegree Certificate ;
+
+  -- Increasing the speed with which someone 
+  -- or something is moving.
+  fun Accelerating : Class ;
+  fun Accelerating_Class : SubClass Accelerating (both Increasing Translocation) ;
+
+  -- The Profession of being an Accountant.
+  fun Accountant : Ind Profession ;
+
+  -- Any process of certifying an EducationalOrganization.
+  fun Accrediting : Class ;
+  fun Accrediting_Class : SubClass Accrediting Declaring ;
+
+  -- AchievingControl is the
+  -- class of all events in which an Agent gains physical
+  -- control over some object.
+  fun AchievingControl : Class ;
+  fun AchievingControl_Class : SubClass AchievingControl Guiding ;
+
+  -- A UnitOfMeasure equal to 4840 square yards.
+  fun Acre : Ind UnitOfArea ;
+
+  -- Any TwoDimensionalAngle that has an 
+  -- angularMeasure that is less than 90 AngularDegrees.
+  fun AcuteAngle : Class ;
+  fun AcuteAngle_Class : SubClass AcuteAngle TwoDimensionalAngle ;
+
+  -- A RelationalAttribute that indicates an address 
+  -- where an Agent can regularly be contacted.
+  fun Address : Class ;
+  fun Address_Class : SubClass Address RelationalAttribute ;
+
+  -- Combining a substance with Air.
+  fun Aerating : Class ;
+  fun Aerating_Class : SubClass Aerating Combining ;
+
+  -- A Device whose purpose is to mix Substances with 
+  -- Air.
+  fun Aerator : Class ;
+  fun Aerator_Class : SubClass Aerator Device ;
+
+  -- An RecreationOrExerciseDevice whose purpose is 
+  -- to develop the cardiovascular system.
+  fun AerobicExerciseDevice : Class ;
+  fun AerobicExerciseDevice_Class : SubClass AerobicExerciseDevice RecreationOrExerciseDevice ;
+
+  -- The class of TimeIntervals that begin at noon and 
+  -- end at Sunset.
+  fun Afternoon : Class ;
+  fun Afternoon_Class : SubClass Afternoon DayTime ;
+
+  -- A CommercialAgent whose customers are all other 
+  -- CommercialAgents, e.g. staffing agencies, food_service providers, etc.
+  fun Agency : Class ;
+  fun Agency_Class : SubClass Agency CommercialAgent ;
+
+  -- AgriculturalProduct is the subclass of Product that comprises
+  -- the products of agricultural activity.
+  fun AgriculturalProduct : Class ;
+  fun AgriculturalProduct_Class : SubClass AgriculturalProduct Product ;
+
+  -- AirForce is the subclass of MilitaryService 
+  -- that comprises military air forces.
+  fun AirForce : Class ;
+  fun AirForce_Class : SubClass AirForce MilitaryService ;
+
+  -- Any instance of Transportation where the 
+  -- instrument is an Aircraft and which is through an AtmosphericRegion.
+  fun AirTransportation : Class ;
+  fun AirTransportation_Class : SubClass AirTransportation Transportation ;
+
+  -- Any Vehicle which is capable of 
+  -- AirTransportation. Note that this class covers both fixed_wing aircraft
+  -- and helicopters.
+  fun Aircraft : Class ;
+  fun Aircraft_Class : SubClass Aircraft Vehicle ;
+
+  -- OrganicCompounds that are produced from hydrocarbons 
+  -- by distillation.
+  fun Alcohol : Class ;
+  fun Alcohol_Class : SubClass Alcohol OrganicCompound ;
+
+  -- Any Beverage that contains Alcohol.
+  fun AlcoholicBeverage : Class ;
+  fun AlcoholicBeverage_Class : SubClass AlcoholicBeverage (both Beverage Depressant) ;
+
+  -- A ChemicalBase found in some Plants that has 
+  -- physiological and psychological effects.
+  fun Alkaloid : Class ;
+  fun Alkaloid_Class : SubClass Alkaloid (both BiologicallyActiveSubstance ChemicalBase) ;
+
+  -- Any Character that is comprised of a single 
+  -- alphabetical character, e.g. A, B, C, D, ...
+  fun AlphabeticCharacter : Class ;
+  fun AlphabeticCharacter_Class : SubClass AlphabeticCharacter Character ;
+
+  -- Tiny sacs in the Lung which absorb Oxygen 
+  -- which is delivered to them by the BronchialDucts.
+  fun Alveolus : Class ;
+  fun Alveolus_Class : SubClass Alveolus (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- Any Maneuver in a ViolentContest where one 
+  -- contestParticipant attempts to conceal himself from another 
+  -- contestParticipant so that he can Attack the other 
+  -- contestParticipant.
+  fun Ambush : Class ;
+  fun Ambush_Class : SubClass Ambush Maneuver ;
+
+  -- Organic acids that are the building blocks of 
+  -- Proteins.
+  fun AminoAcid : Class ;
+  fun AminoAcid_Class : SubClass AminoAcid (both ChemicalAcid OrganicCompound) ;
+
+  -- A very large Boa that is found in South America.
+  fun Anaconda : Class ;
+  fun Anaconda_Class : SubClass Anaconda ConstrictorSnake ;
+
+  -- An RecreationOrExerciseDevice whose purpose 
+  -- is to develop Muscles without also developing the cardiovascular system.
+  fun AnaerobicExerciseDevice : Class ;
+  fun AnaerobicExerciseDevice_Class : SubClass AnaerobicExerciseDevice RecreationOrExerciseDevice ;
+
+  -- An AttachingDevice which is large hook or set of hooks 
+  -- that are used to secure a Ship on the open water.
+  fun Anchor : Class ;
+  fun Anchor_Class : SubClass Anchor AttachingDevice ;
+
+  -- The state of being wrathful, irate or indignant.
+  fun Anger : Ind EmotionalState ;
+
+  -- AnimalAgriculturalProduct is the class of AgriculturalProducts 
+  -- that are animal in nature, including meat, fish, dairy products, 
+  -- hides, furs, animal fats and oils, etc.
+  fun AnimalAgriculturalProduct : Class ;
+  fun AnimalAgriculturalProduct_Class : SubClass AnimalAgriculturalProduct AgriculturalProduct ;
+
+  -- Any Device which is used to control the 
+  -- movements of an Animal or Human, e.g. leashes, reins, harnesses, muzzles, 
+  -- bridles, shackles, handcuffs, etc.
+  fun AnimalController : Class ;
+  fun AnimalController_Class : SubClass AnimalController Device ;
+
+  -- AnimalPoweredDevice is the subclass 
+  -- of Devices that function with power supplied by animals. Examples: 
+  -- oxcarts, horse_drawn plows, mule_driven mills.
+  fun AnimalPoweredDevice : Class ;
+  fun AnimalPoweredDevice_Class : SubClass AnimalPoweredDevice Device ;
+
+  -- An Artifact which is intended to house 
+  -- Animals and not Humans. Note that an AnimalResidence may or may not 
+  -- be a StationaryArtifact, e.g. a horse stall is stationary while a doghouse 
+  -- generally is not.
+  fun AnimalResidence : Class ;
+  fun AnimalResidence_Class : SubClass AnimalResidence Artifact ;
+
+  -- A hard shell of calcium that serves as a 
+  -- supporting structure for some Invertebrates.
+  fun AnimalShell : Class ;
+  fun AnimalShell_Class : SubClass AnimalShell (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A GroupOfAnimals which are Pulling something.
+  fun AnimalTeam : Class ;
+  fun AnimalTeam_Class : SubClass AnimalTeam GroupOfAnimals ;
+
+  -- The joint in the Leg that connects the tibia and the 
+  -- fibula to the talus.
+  fun Ankle : Class ;
+  fun Ankle_Class : SubClass Ankle BodyJoint ;
+
+  -- Any Text which contains information about 
+  -- an event in the future.
+  fun Announcement : Class ;
+  fun Announcement_Class : SubClass Announcement FactualText ;
+
+  -- Responding to a Questioning, i.e. trying to answer 
+  -- someone's question.
+  fun Answering : Class ;
+  fun Answering_Class : SubClass Answering Stating ;
+
+  -- A colony Insect of three types: males, 
+  -- QueenInsect, and worker ants.
+  fun AntInsect : Class ;
+  fun AntInsect_Class : SubClass AntInsect Insect ;
+
+  -- The class of TimeIntervals that begin at midnight 
+  -- and end at noon.
+  fun AnteMeridiem : Class ;
+  fun AnteMeridiem_Class : SubClass AnteMeridiem TimeInterval ;
+
+  -- A HoofedMammal with long legs and backward_facing horns. 
+  -- This class includes gazelles, addax, blackbucks, etc.
+  fun Antelope : Class ;
+  fun Antelope_Class : SubClass Antelope HoofedMammal ;
+
+  -- A CommunicationDevice which enables or improves 
+  -- the reception of RadioEmissions by another CommunicationDevice (the 
+  -- radio or television receiver).
+  fun Antenna : Class ;
+  fun Antenna_Class : SubClass Antenna CommunicationDevice ;
+
+  -- The field of anthropology.
+  fun Anthropology : Ind SocialScience ;
+
+  -- A BiologicallyActiveSubstance than can kill 
+  -- instances of Bacterium.
+  fun Antibiotic : Class ;
+  fun Antibiotic_Class : SubClass Antibiotic BiologicallyActiveSubstance ;
+
+  -- An immunoglobulin which is produced by the body 
+  -- and which has the ability to neutralize Antigens.
+  fun Antibody : Class ;
+  fun Antibody_Class : SubClass Antibody Protein ;
+
+  -- Any BiologicallyActiveSubstance that has the 
+  -- capacity to stimulate the production of Antibodies.
+  fun Antigen : Class ;
+  fun Antigen_Class : SubClass Antigen BiologicallyActiveSubstance ;
+
+  -- An Antigen that is carried in the red blood 
+  -- cells of those with BloodTypeA.
+  fun AntigenA : Class ;
+  fun AntigenA_Class : SubClass AntigenA Antigen ;
+
+  -- An Antigen that is carried in the red blood 
+  -- cells of those with BloodTypeB.
+  fun AntigenB : Class ;
+  fun AntigenB_Class : SubClass AntigenB Antigen ;
+
+  -- The BeliefGroup that is characterized by a 
+  -- dislike for Judaism.
+  fun Antisemitism : Ind BeliefGroup ;
+
+  -- The state of being worried, troubled or uneasy.
+  fun Anxiety : Ind EmotionalState ;
+
+  -- A ResidentialBuilding containing 
+  -- ApartmentUnits.
+  fun ApartmentBuilding : Class ;
+  fun ApartmentBuilding_Class : SubClass ApartmentBuilding ResidentialBuilding ;
+
+  -- A SingleFamilyResidence that is not owned 
+  -- by any member of the SocialUnit that lives there.
+  fun ApartmentUnit : Class ;
+  fun ApartmentUnit_Class : SubClass ApartmentUnit SingleFamilyResidence ;
+
+  -- A FormText whose purpose is to obtain admission 
+  -- to an Organization or to receive assistance from an Organization.
+  fun Application : Class ;
+  fun Application_Class : SubClass Application FormText ;
+
+  -- Any instance of Declaring by which the 
+  -- patient is assigned to a Position within an Organization where 
+  -- the patient previously had no position. For example, the appointments 
+  -- of people to non_elective offices in a government.
+  fun Appointing : Class ;
+  fun Appointing_Class : SubClass Appointing Declaring ;
+
+  -- An item of Clothing that protects the front and 
+  -- middle part of the body while one is Cooking or doing other work.
+  fun Apron : Class ;
+  fun Apron_Class : SubClass Apron Clothing ;
+
+  -- The FieldOfStudy of designing Buildings, i.e. 
+  -- creating Blueprints for Buildings.
+  fun Architecture : Ind FieldOfStudy ;
+
+  -- Any Stating which has the form of an Argument.
+  fun Arguing : Class ;
+  fun Arguing_Class : SubClass Arguing Stating ;
+
+  -- The upper Limbs of a Primate.
+  fun Arm : Class ;
+  fun Arm_Class : SubClass Arm Limb ;
+
+  -- MilitaryServices that are land forces.
+  fun Army : Class ;
+  fun Army_Class : SubClass Army MilitaryService ;
+
+  -- The final part of any instance of Translocation.
+  fun Arriving : Class ;
+  fun Arriving_Class : SubClass Arriving Translocation ;
+
+  -- An Icon which has the shape of an arrow and 
+  -- which is used to indicate direction or a relationship betwee two things.
+  fun ArrowFigure : Class ;
+  fun ArrowFigure_Class : SubClass ArrowFigure Icon ;
+
+  -- An Icon which has the shape of an arrow and which 
+  -- is used to indicate direction or a relationship betwee two things.
+  fun ArrowIcon : Class ;
+  fun ArrowIcon_Class : SubClass ArrowIcon Icon ;
+
+  -- A long, thin Projectile with a pointed tip is 
+  -- fired from a bow.
+  fun ArrowProjectile : Class ;
+  fun ArrowProjectile_Class : SubClass ArrowProjectile Projectile ;
+
+  -- An act where an agent sets something which it does not possess 
+  -- on fire in order to destroy it or its contents.
+  fun Arson : Class ;
+  fun Arson_Class : SubClass Arson (both Combustion Destruction) ;
+
+  -- The Profession of reporting and critiquing current 
+  -- ArtWorks.
+  fun ArtCritic : Ind Journalist ;
+
+  -- Any ContentDevelopment that results in a 
+  -- PaintedPicture.
+  fun ArtPainting : Class ;
+  fun ArtPainting_Class : SubClass ArtPainting (both ContentDevelopment Painting) ;
+
+  -- Any School whose aim is to teach students 
+  -- how to create ArtWorks.
+  fun ArtSchool : Class ;
+  fun ArtSchool_Class : SubClass ArtSchool School ;
+
+  -- A Workshop, which is 
+  -- devoted to the creation of ArtWorks.
+  fun ArtStudio : Class ;
+  fun ArtStudio_Class : SubClass ArtStudio Workshop ;
+
+  -- Any BloodVessel which transfers Blood from 
+  -- the Heart to the extremities of the body.
+  fun Artery : Class ;
+  fun Artery_Class : SubClass Artery BloodVessel ;
+
+  -- A Gun that is too large to be carried and fired 
+  -- by a single Human. Typically, ArtilleryGuns are on wheels.
+  fun ArtilleryGun : Class ;
+  fun ArtilleryGun_Class : SubClass ArtilleryGun Gun ;
+
+  -- AtmosphericRegion is the class of 
+  -- all subregions of EarthsAtmosphere.
+  fun AtmosphericRegion : Class ;
+  fun AtmosphericRegion_Class : SubClass AtmosphericRegion SpaceRegion ;
+
+  -- Two or more Atoms that are bound together and 
+  -- comprise part of a Molecule.
+  fun AtomicGroup : Class ;
+  fun AtomicGroup_Class : SubClass AtomicGroup CompoundSubstance ;
+
+  -- Any decrease in the size of a BodyPart which is due to 
+  -- disease or lack of use.
+  fun Atrophy : Class ;
+  fun Atrophy_Class : SubClass Atrophy (both Decreasing PathologicProcess) ;
+
+  -- The Profession of practicing law, whether as a 
+  -- judge or as a legal advocate.
+  fun Attorney : Class ;
+
+  -- The head law officer of a GeopoliticalArea, 
+  -- usually a Nation or StateOrProvince.
+  fun AttorneyGeneral : Ind (both Profession GovernmentOfficer) ;
+
+  -- A representation of sound on some medium such
+  -- as wax cylinder, vinyl record, magnetic tape, CD or flash memory, that is 
+  -- intended to be used in some machine to reproduce that sound.
+  fun AudioRecording : Class ;
+  fun AudioRecording_Class : SubClass AudioRecording (both ContentBearingObject Text) ;
+
+  -- Any Building whose purpose is to hold concerts, 
+  -- sports events, plays, etc. before an audience. This class includes theaters, 
+  -- sports stadiums, university auditoriums, etc.
+  fun Auditorium : Class ;
+  fun Auditorium_Class : SubClass Auditorium Building ;
+
+  -- A Seat within an Auditorium from which one 
+  -- can observe the PerformanceStage.
+  fun AuditoriumSeat : Class ;
+  fun AuditoriumSeat_Class : SubClass AuditoriumSeat Seat ;
+
+  -- A Gun that fires a burst of Projectiles 
+  -- with each pull of the trigger. Also known as a machine gun.
+  fun AutomaticGun : Class ;
+  fun AutomaticGun_Class : SubClass AutomaticGun Gun ;
+
+  -- Automobile is a subclass of 
+  -- SelfPoweredRoadVehicles including passenger cars, family vans, light 
+  -- trucks, and sport utility vehicles. In general, this class covers 
+  -- four_wheeled passenger road vehicles.
+  fun Automobile : Class ;
+  fun Automobile_Class : SubClass Automobile (both PassengerVehicle SelfPoweredRoadVehicle) ;
+
+  -- Axle is a class of Devices each of which can 
+  -- be paired with two VehicleWheels to rotate and move a RoadVehicle.
+  fun Axle : Class ;
+  fun Axle_Class : SubClass Axle Device ;
+
+  -- A disease that is caused by instances of 
+  -- Bacterium.
+  fun BacterialDisease : Class ;
+  fun BacterialDisease_Class : SubClass BacterialDisease InfectiousDisease ;
+
+  -- Any Container which is made of Fabric.
+  fun Bag : Class ;
+  fun Bag_Class : SubClass Bag Container ;
+
+  -- Any instance of Cooking where the instrument 
+  -- is an Oven.
+  fun Baking : Class ;
+  fun Baking_Class : SubClass Baking (both Cooking Heating) ;
+
+  -- Any GamePiece which has the shape of a sphere.
+  fun Ball : Class ;
+  fun Ball_Class : SubClass Ball GamePiece ;
+
+  -- A Missile which is guided for the first stage 
+  -- of its flight but then falls to its target for the second stage.
+  fun BallisticMissile : Class ;
+  fun BallisticMissile_Class : SubClass BallisticMissile Missile ;
+
+  -- A FormText which is used in Voting. A list of 
+  -- candidates is printed on the form, and the voter selects the candidate he/she 
+  -- wants to vote for.
+  fun Ballot : Class ;
+  fun Ballot_Class : SubClass Ballot FormText ;
+
+  -- A piece of Fabric that is used in Covering an 
+  -- open wound.
+  fun Bandage : Class ;
+  fun Bandage_Class : SubClass Bandage Fabric ;
+
+  -- Any SkilledOccupation which involves working in a 
+  -- FinancialBank.
+  fun Banker : Ind SkilledOccupation ;
+
+  -- A ReligiousProcess which marks the acceptance of 
+  -- the person being baptized into the ReligiousOrganization.
+  fun Baptizing : Class ;
+  fun Baptizing_Class : SubClass Baptizing (both JoiningAnOrganization ReligiousProcess) ;
+
+  -- Offering to sell something to someone at a 
+  -- reduced price.
+  fun BargainSale : Class ;
+  fun BargainSale_Class : SubClass BargainSale Offering ;
+
+  -- Any instance of RadiatingSound which is produced 
+  -- by a Canine.
+  fun Barking : Class ;
+  fun Barking_Class : SubClass Barking RadiatingSound ;
+
+  -- A Building on a Farm that is used for keeping 
+  -- DomesticAnimals, Fodder or harvested crops.
+  fun Barn : Class ;
+  fun Barn_Class : SubClass Barn Building ;
+
+  fun BaseballBase : Class ;
+
+  -- A BuildingLevel which satisfies two conditions, viz. it is 
+  -- lower than all of the other BuildingLevels in the same Building and it is below 
+  -- ground level.
+  fun Basement : Class ;
+  fun Basement_Class : SubClass Basement BuildingLevel ;
+
+  -- Washing the entire body of a Human or Animal.
+  fun Bathing : Class ;
+  fun Bathing_Class : SubClass Bathing Washing ;
+
+  -- A WashingDevice which is intended to be used by 
+  -- Humans for washing their bodies. Note that this class covers bathtubs, showers, 
+  -- etc.
+  fun BathingDevice : Class ;
+  fun BathingDevice_Class : SubClass BathingDevice WashingDevice ;
+
+  -- A Room that contains a WashBasin and possibly a Toilet.
+  fun Bathroom : Class ;
+  def Bathroom = KappaFn Room (\R -> exists Toilet (\T -> located (var Toilet Physical ? T) (var Room Object ? R)));
+
+  -- A thin stick which is used for OrchestralConducting.
+  fun Baton : Class ;
+  fun Baton_Class : SubClass Baton Device ;
+
+  -- The process of transitioning from a state of 
+  -- being Sober to a state of being Drunk.
+  fun BecomingDrunk : Class ;
+  fun BecomingDrunk_Class : SubClass BecomingDrunk PsychologicalProcess ;
+
+  -- A piece of Furniture which is primarily for sleeping.
+  fun Bed : Class ;
+  fun Bed_Class : SubClass Bed Furniture ;
+
+  -- A Room intended primarily for sleeping.
+  fun Bedroom : Class ;
+  fun Bedroom_Class : SubClass Bedroom Room ;
+
+  -- A hairy Insect, some species of which produce honey 
+  -- and/or sting.
+  fun Bee : Class ;
+  fun Bee_Class : SubClass Bee Insect ;
+
+  -- Meat that was originally part of a Cow.
+  fun Beef : Class ;
+  fun Beef_Class : SubClass Beef Meat ;
+
+  -- An AlcoholicBeverage that is prepared by fermenting 
+  -- malt and hops.
+  fun Beer : Class ;
+  fun Beer_Class : SubClass Beer AlcoholicBeverage ;
+
+  -- The TimeInterval that runs from 
+  -- NegativeInfinity to the time of the birth of Christ.
+  fun BeforeCommonEra : Ind TimeInterval ;
+
+  -- The process of an Organization 
+  -- commencing operations. In the case of a Corporation, this would be 
+  -- the process of going into business.
+  fun BeginningOperations : Class ;
+  fun BeginningOperations_Class : SubClass BeginningOperations OrganizationalProcess ;
+
+  -- A PercussionInstrument that produces a single tone 
+  -- when it is struck.
+  fun Bell : Class ;
+  fun Bell_Class : SubClass Bell PercussionInstrument ;
+
+  -- A piece of Clothing that is worn around the waist 
+  -- to restrain another piece of clothing.
+  fun Belt : Class ;
+  fun Belt_Class : SubClass Belt Clothing ;
+
+  -- Any UnilateralGiving where the agent 
+  -- wills some part of his/her property to someone else upon his/her death.
+  fun Bequeathing : Class ;
+  fun Bequeathing_Class : SubClass Bequeathing UnilateralGiving ;
+
+  -- A HistoricalAccount which is concerned 
+  -- with the life of a single Human.
+  fun Biography : Class ;
+  fun Biography_Class : SubClass Biography HistoricalAccount ;
+
+  -- The production of a zygote from the fusion 
+  -- of a male and female gamete.
+  fun BiologicalConception : Class ;
+  fun BiologicalConception_Class : SubClass BiologicalConception OrganOrTissueProcess ;
+
+  -- The Class of all biological species, i.e. 
+  -- the class of all classes of Organism whose instances can interbreed.
+  fun BiologicalSpecies : Class ;
+
+  -- The study of the classification, development, and 
+  -- functioning of Organisms.
+  fun Biology : Ind Science ;
+
+  -- Any DiagnosticProcess which involves the examination of 
+  -- BodySubstances taken from a living Organism.
+  fun Biopsy : Class ;
+  fun Biopsy_Class : SubClass Biopsy (both DiagnosticProcess Removing) ;
+
+  -- Any Egg that is produced by a Bird.
+  fun BirdEgg : Class ;
+  fun BirdEgg_Class : SubClass BirdEgg Egg ;
+
+  -- Any instance of Grabbing where the instrument is 
+  -- the Mouth of the agent.
+  fun Biting : Class ;
+  fun Biting_Class : SubClass Biting Grabbing ;
+
+  -- A piece of Fabric whose purpose is to keep a 
+  -- person who is in bed warm.
+  fun Blanket : Class ;
+  fun Blanket_Class : SubClass Blanket Fabric ;
+
+  -- The release of Blood from an Animal in response 
+  -- to an Injuring of some sort.
+  fun Bleeding : Class ;
+  fun Bleeding_Class : SubClass Bleeding AutonomicProcess ;
+
+  -- The Attribute that applies to Animals and Humans 
+  -- that are unable to see.
+  fun Blind : Ind BiologicalAttribute ;
+
+  -- Any Process where the stomach or instestines of a 
+  -- Human or Animal become distended from excessive gas.
+  fun Bloating : Class ;
+  fun Bloating_Class : SubClass Bloating (both Increasing PathologicProcess) ;
+
+  -- Any Maneuver in a Contest where one 
+  -- contestParticipant attempts to deny access to something that is wanted 
+  -- by another contestParticipant.
+  fun Blockade : Class ;
+  fun Blockade_Class : SubClass Blockade Maneuver ;
+
+  -- A Cell that is normally present in Blood.
+  fun BloodCell : Class ;
+  fun BloodCell_Class : SubClass BloodCell (both AnimalAnatomicalStructure Cell) ;
+
+  -- The subclass of Blood that contains AntigenA 
+  -- and does not contain AntigenB.
+  fun BloodTypeA : Class ;
+  fun BloodTypeA_Class : SubClass BloodTypeA Blood ;
+
+  -- The subclass of Blood that contains both 
+  -- AntigenA and AntigenB.
+  fun BloodTypeAB : Class ;
+  fun BloodTypeAB_Class : SubClass BloodTypeAB Blood ;
+
+  -- The subclass of Blood that contains AntigenB 
+  -- and does not contain AntigenA.
+  fun BloodTypeB : Class ;
+  fun BloodTypeB_Class : SubClass BloodTypeB Blood ;
+
+  -- The subclass of Blood that contains neither 
+  -- AntigenA nor AntigenB.
+  fun BloodTypeO : Class ;
+  fun BloodTypeO_Class : SubClass BloodTypeO Blood ;
+
+  -- Any BodyVessel which is used to circulate 
+  -- Blood from one part of the body to another.
+  fun BloodVessel : Class ;
+  fun BloodVessel_Class : SubClass BloodVessel (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- An Icon which is a scale model of an Artifact, 
+  -- whether the Artifact actually exists or not.
+  fun Blueprint : Class ;
+  fun Blueprint_Class : SubClass Blueprint Icon ;
+
+  -- The process of turning red in response to a 
+  -- stimulus which has a deep emotional effect.
+  fun Blushing : Class ;
+  fun Blushing_Class : SubClass Blushing AutonomicProcess ;
+
+  -- A piece of material with flat, rectangular sides. 
+  -- Note that boards and blocks are lumped into a single concept, because the 
+  -- difference between these notions cannot be precisely defined.
+  fun BoardOrBlock : Class ;
+  fun BoardOrBlock_Class : SubClass BoardOrBlock Artifact ;
+
+  -- Getting on a Vehicle, e.g. getting into an 
+  -- Automobile, boarding an Aircraft, etc.
+  fun Boarding : Class ;
+  fun Boarding_Class : SubClass Boarding Translocation ;
+
+  -- One of the levels of a WaterVehicle, e.g. the 
+  -- upper deck and lower deck of small boats with a cabin.
+  fun BoatDeck : Class ;
+  fun BoatDeck_Class : SubClass BoatDeck Artifact ;
+
+  -- BodyJunctions where different parts of the same 
+  -- Skeleton come together.
+  fun BodyJoint : Class ;
+  fun BodyJoint_Class : SubClass BodyJoint BodyJunction ;
+
+  -- A BodyOfWater is a connected body of 
+  -- water with established boundaries marked by either geographical features 
+  -- or conventional borders.
+  fun BodyOfWater : Class ;
+  fun BodyOfWater_Class : SubClass BodyOfWater (both SelfConnectedObject WaterArea) ;
+
+  -- A weapon that explodes in order to cause damage.
+  fun Bomb : Class ;
+  fun Bomb_Class : SubClass Bomb (both ExplosiveDevice Weapon) ;
+
+  -- Any MilitaryAircraft whose purpose is to deliver 
+  -- ExplosiveDevices.
+  fun Bomber : Class ;
+  fun Bomber_Class : SubClass Bomber MilitaryAircraft ;
+
+  -- An act of Destruction where the thing destroyed
+  -- is destroyed by means of an explosive device.
+  fun Bombing : Class ;
+  fun Bombing_Class : SubClass Bombing Destruction ;
+
+  -- BotanicalTree is an imprecise term 
+  -- for a perennial woody plant that is larger than a bush or shrub, 
+  -- generally understood to describe a large growth having one main trunk 
+  -- with few or no branches projecting from its base, a well_developed crown 
+  -- of foliage, and a height at maturity of at least 12 feet.
+  fun BotanicalTree : Class ;
+  fun BotanicalTree_Class : SubClass BotanicalTree FloweringPlant ;
+
+  -- A Container whose top is narrower than its bottom, which 
+  -- has no handle, and which is intended to store Liquids.
+  fun Bottle : Class ;
+  fun Bottle_Class : SubClass Bottle FluidContainer ;
+
+  -- Any downward motion of the body that indicates respect 
+  -- for or submission to another Agent.
+  fun Bowing : Class ;
+  fun Bowing_Class : SubClass Bowing (both Gesture (both Inclining MotionDownward)) ;
+
+  -- Any six_sided Container whose sides are 
+  -- rectangular in shape.
+  fun Box : Class ;
+  fun Box_Class : SubClass Box Container ;
+
+  -- A HumanChild who is Male.
+  fun Boy : Class ;
+  fun Boy_Class : SubClass Boy (both HumanChild Man) ;
+
+  -- The seat of the central nervous system.
+  fun Brain : Class ;
+  fun Brain_Class : SubClass Brain (both AnimalAnatomicalStructure Organ) ;
+
+  -- A DistilledAlcoholicBeverage that is prepared by 
+  -- distilling Wine.
+  fun Brandy : Class ;
+  fun Brandy_Class : SubClass Brandy DistilledAlcoholicBeverage ;
+
+  -- A MetallicAlloy made from Copper and Zinc.
+  fun Brass : Class ;
+  fun Brass_Class : SubClass Brass MetallicAlloy ;
+
+  -- Food that consists largely of grain flour 
+  -- and water. Note that this class covers crackers, cookies, as well as any 
+  -- self_connected instance of bread, whether it is a loaf, a slice, a chunk 
+  -- of bread, etc.
+  fun BreadOrBiscuit : Class ;
+  fun BreadOrBiscuit_Class : SubClass BreadOrBiscuit PreparedFood ;
+
+  -- A subclass of Attributes for 
+  -- characterizing the breakability of CorpuscularObjects.
+  fun BreakabilityAttribute : Class ;
+  fun BreakabilityAttribute_Class : SubClass BreakabilityAttribute InternalAttribute ;
+
+  -- The paired Organs which are part of the chests 
+  -- of Primates.
+  fun Breast : Class ;
+  fun Breast_Class : SubClass Breast (both AnimalAnatomicalStructure Organ) ;
+
+  -- A block of fired Clay that is used in Constructing.
+  fun Brick : Class ;
+  fun Brick_Class : SubClass Brick BoardOrBlock ;
+
+  -- A MilitaryGeneral that ranks below 
+  -- a MajorGeneral.
+  fun BrigadierGeneral : Class ;
+  fun BrigadierGeneral_Class : SubClass BrigadierGeneral MilitaryGeneral ;
+
+  -- BroadcastNetwork is the subclass of 
+  -- CommunicationSystems consisting of BroadcastingStations that are linked 
+  -- electronically and managed or owned by one organization.
+  fun BroadcastNetwork : Class ;
+  fun BroadcastNetwork_Class : SubClass BroadcastNetwork CommunicationSystem ;
+
+  -- A Series of episodes that are broadcast 
+  -- on television or radio.
+  fun BroadcastProgram : Class ;
+  fun BroadcastProgram_Class : SubClass BroadcastProgram Series ;
+
+  -- Disseminating information by using a 
+  -- CommunicationDevice that radiates RadioEmissions.
+  fun Broadcasting : Class ;
+  fun Broadcasting_Class : SubClass Broadcasting (both Disseminating RadioEmission) ;
+
+  -- Any BodyVessel which is located in a 
+  -- Lung and which carries oxygen from the trachea to the alveoli.
+  fun BronchialDuct : Class ;
+  fun BronchialDuct_Class : SubClass BronchialDuct (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- A GroupOfAnimals that are all born at the same time 
+  -- and to the same parents.
+  fun Brood : Class ;
+  fun Brood_Class : SubClass Brood GroupOfAnimals ;
+
+  -- A BrushOrComb whose purpose is to remove dirt and other 
+  -- small particles from floors.
+  fun Broom : Class ;
+  fun Broom_Class : SubClass Broom BrushOrComb ;
+
+  -- A SecondaryColor that resembles the color of wood or 
+  -- of soil.
+  fun Brown : Ind SecondaryColor ;
+
+  -- A Device which consists of a handle and bristles and 
+  -- whose purpose is to remove particles from something or to smooth something out.
+  fun BrushOrComb : Class ;
+  fun BrushOrComb_Class : SubClass BrushOrComb Device ;
+
+  -- A globe which has a Liquid surface and which contains 
+  -- a Gas.
+  fun Bubble : Class ;
+  fun Bubble_Class : SubClass Bubble CorpuscularObject ;
+
+  -- A HoofedMammal with long hair whose habitat is the 
+  -- plains of NorthAmerica.
+  fun Buffalo : Class ;
+  fun Buffalo_Class : SubClass Buffalo HoofedMammal ;
+
+  -- A HornInstrument that has no valves.
+  fun Bugle : Class ;
+  fun Bugle_Class : SubClass Bugle HornInstrument ;
+
+  -- The story or level of a building, e.g. the Basement, 
+  -- the Attic, the ground level, the fourteenth floor, etc.
+  fun BuildingLevel : Class ;
+  fun BuildingLevel_Class : SubClass BuildingLevel StationaryArtifact ;
+
+  -- A Cow that is Male.
+  fun Bull : Class ;
+  def Bull = KappaFn Cow (\B -> attribute (var Cow Object ? B) (el SexAttribute Attribute ? Male)) ;
+
+  -- A Projectile that is designed to be fired by a Gun.
+  fun Bullet : Class ;
+  fun Bullet_Class : SubClass Bullet Projectile ;
+
+  -- A large Bee which lacks a stinger.
+  fun BumbleBee : Class ;
+  fun BumbleBee_Class : SubClass BumbleBee Bee ;
+
+  -- A small Cave created by an Animal for the purpose 
+  -- of inhabiting it.
+  fun Burrow : Class ;
+  fun Burrow_Class : SubClass Burrow Cave ;
+
+  -- Putting something in the ground and then covering 
+  -- it with Soil.
+  fun Burying : Class ;
+  fun Burying_Class : SubClass Burying (both Digging Putting) ;
+
+  -- Bus is the subclass of SelfPoweredRoadVehicles 
+  -- that can transport large numbers of passengers (i.e., dozens) at one 
+  -- time. It can be distinguished from a van which is
+  -- designed to carry less than a dozen people.
+  fun Bus : Class ;
+  fun Bus_Class : SubClass Bus SelfPoweredRoadVehicle ;
+
+  -- An area, often, though not necessarily with
+  -- seats or some kind of minimal shelter, where people gather to meet and
+  -- board a bus. It must border a road.
+  fun BusStop : Class ;
+  fun BusStop_Class : SubClass BusStop GeographicArea ;
+
+  -- Any Contest where the contestParticipants 
+  -- are Corporations and the aim is to win as many customers as possible.
+  fun BusinessCompetition : Class ;
+  fun BusinessCompetition_Class : SubClass BusinessCompetition Contest ;
+
+  -- Any of a class of people in a professional 
+  -- occupation such as banking, finance, management, or engineering. This is 
+  -- distinguished from blue collar jobs that primarily involve manual labor 
+  -- rather than thought as the effort expended to derive remuneration. It is 
+  -- also distinguished from professions that may be outwardly similar but are 
+  -- done in a non_profit organization.
+  fun BusinessPerson : Ind OccupationalRole ;
+
+  -- An emulsion of fat which is produced by churning Milk.
+  fun Butter : Class ;
+  fun Butter_Class : SubClass Butter (both DairyProduct PreparedFood) ;
+
+  -- An AttachingDevice that is used on Clothing.
+  fun Button : Class ;
+  fun Button_Class : SubClass Button AttachingDevice ;
+
+  -- Any Restaurant which does not offer table service. 
+  -- Food is selected and purchased at a central counter.
+  fun Cafeteria : Class ;
+  fun Cafeteria_Class : SubClass Cafeteria Restaurant ;
+
+  -- A young Cow, i.e. a Cow that is NonFullyFormed.
+  fun Calf : Class ;
+  def Calf = KappaFn Cow (\C -> attribute (var Cow Object ? C) (el DevelopmentalAttribute Attribute ? NonFullyFormed));
+
+  -- A Device which is capable of Photographing.
+  fun Camera : Class ;
+  fun Camera_Class : SubClass Camera Device ;
+
+  -- A MobileResidence consisting of tents and other temporary 
+  -- living quarters that is constructed on an undeveloped LandArea.
+  fun Camp : Class ;
+  fun Camp_Class : SubClass Camp MobileResidence ;
+
+  -- A LandArea whose purpose is to have MobileResidences 
+  -- (e.g. recreational vehicles, mobile homes, Tents, etc.) located there.
+  fun Campground : Class ;
+  fun Campground_Class : SubClass Campground LandArea ;
+
+  -- A DiseaseOrSyndrome characterized by pathologic and 
+  -- uncontrolled cell division that results in a Tumor.
+  fun Cancer : Ind DiseaseOrSyndrome ;
+
+  -- An LightFixture that consists of Wax and a wick, 
+  -- which is lit with a flame.
+  fun Candle : Class ;
+  fun Candle_Class : SubClass Candle LightFixture ;
+
+  -- A very small BloodVessel that connects arterioles 
+  -- (very small Arteries) with venules (very small Veins).
+  fun Capillary : Class ;
+  fun Capillary_Class : SubClass Capillary BloodVessel ;
+
+  -- A commissioned MilitaryOfficer who ranks 
+  -- above a Lieutenant but below a MajorOfficer.
+  fun CaptainOfficer : Class ;
+  fun CaptainOfficer_Class : SubClass CaptainOfficer MilitaryOfficer ;
+
+  -- A Capturing is a ChangeOfControl event in which an Agent
+  -- gains physical control over another Agent.
+  fun Capturing : Class ;
+  fun Capturing_Class : SubClass Capturing ChangeOfControl ;
+
+  -- A car bombing is an attack in which a car is
+  -- used as the delivery mechanism for a bomb. The car is usually destroyed
+  -- in the blast if the bomb detonates successfully.
+  fun CarBombing : Class ;
+  fun CarBombing_Class : SubClass CarBombing Bombing ;
+
+  -- Any Organization whose purpose is to 
+  -- provide medical care for for Humans who reside there, either permanently 
+  -- or temporarily.
+  fun CareOrganization : Class ;
+  fun CareOrganization_Class : SubClass CareOrganization Organization ;
+
+  -- A Vehicle that is designed to
+  -- carry Objects. Note that Vehicles that are primarily designed to carry
+  -- people rather than cargo may still carry cargo. For example, a passenger sedan
+  -- might be capable of carrying lumber strapped to the roof. For this
+  -- reason, PassengerVehicle and CargoVehicle are not disjoint.
+  fun CargoVehicle : Class ;
+  fun CargoVehicle_Class : SubClass CargoVehicle Vehicle ;
+
+  -- Any occupation that involves creating and repairing 
+  -- structural and decorative portions of Buildings that are made chiefly of Wood.
+  -- This does not include plumbing, roofing, electrical, foundation and site work.
+  fun Carpenter : Ind OccupationalTrade ;
+
+  -- Making Buildings out of Wood.
+  fun Carpentry : Class ;
+  fun Carpentry_Class : SubClass Carpentry Making ;
+
+  -- Any Maneuver in a Game which results in a 
+  -- situation where the agent grasps the Ball.
+  fun Catching : Class ;
+  fun Catching_Class : SubClass Catching (both Maneuver Touching) ;
+
+  -- Any Process whose result is that the 
+  -- patient of the process is happy.
+  fun CausingHappiness : Class ;
+  fun CausingHappiness_Class : SubClass CausingHappiness Process ;
+
+  -- Any Process whose result is that the 
+  -- patient of the process is in Pain.
+  fun CausingPain : Class ;
+  fun CausingPain_Class : SubClass CausingPain CausingUnhappiness ;
+
+  -- Any Process whose result is that the 
+  -- patient of the process is unhappy.
+  fun CausingUnhappiness : Class ;
+  fun CausingUnhappiness_Class : SubClass CausingUnhappiness Process ;
+
+  -- MilitaryUnits composed primarily of Soldiers 
+  -- who are mounted, i.e. who perform their combat missions from a Horse or 
+  -- Vehicle.
+  fun CavalryUnit : Class ;
+  fun CavalryUnit_Class : SubClass CavalryUnit MilitaryUnit ;
+
+  -- A Cave is a naturally formed opening beneath 
+  -- the surface of the Earth, generally formed by dissolution of carbonate 
+  -- bedrock. Caves may also form by erosion of coastal bedrock, partial 
+  -- melting of glaciers, or solidification of lava into hollow tubes.
+  fun Cave : Class ;
+  fun Cave_Class : SubClass Cave Hole ;
+
+  -- The process of an Organization 
+  -- ceasing operations, i.e. its folding or going out of business in 
+  -- some other fashion.
+  fun CeasingOperations : Class ;
+  fun CeasingOperations_Class : SubClass CeasingOperations OrganizationalProcess ;
+
+  -- A StationaryArtifact that is the top surface 
+  -- of a Room.
+  fun Ceiling : Class ;
+  fun Ceiling_Class : SubClass Ceiling StationaryArtifact ;
+
+  -- Anyone who is known by a large number of people,
+  -- either explicitly by name, or by action.
+  fun Celebrity : Class ;
+
+  -- The part of the Cell that contains DNA and 
+  -- RNA.
+  fun CellNucleus : Class ;
+  fun CellNucleus_Class : SubClass CellNucleus OrganicObject ;
+
+  -- The main component of Plant Tissue.
+  fun Cellulose : Class ;
+  fun Cellulose_Class : SubClass Cellulose (both Carbohydrate PlantSubstance) ;
+
+  -- A LandArea which is used for burying the dead.
+  fun Cemetery : Class ;
+  fun Cemetery_Class : SubClass Cemetery LandArea ;
+
+  -- Any instance of Rotating where there is 
+  -- Motion away from the center of the Rotating.
+  fun CentrifugalMotion : Class ;
+  fun CentrifugalMotion_Class : SubClass CentrifugalMotion Rotating ;
+
+  -- Any instance of Rotating where there is 
+  -- Motion towards the center of the Rotating.
+  fun CentripetalMotion : Class ;
+  fun CentripetalMotion_Class : SubClass CentripetalMotion Rotating ;
+
+  -- The TimeDuration of 100 years.
+  fun CenturyDuration : Ind UnitOfDuration ;
+
+  -- Any Seed which is produced by the cereal grasses, 
+  -- e.g. rice, corn, wheat, etc.
+  fun CerealGrain : Class ;
+  fun CerealGrain_Class : SubClass CerealGrain (both (both Food Seed) PlantAgriculturalProduct) ;
+
+  -- A Seat that is designed to accommodate a single 
+  -- Human.
+  fun Chair : Class ;
+  fun Chair_Class : SubClass Chair Seat ;
+
+  -- A ChangeOfControl is an event in which an agent gains
+  -- physical control over some object that was previously controlled
+  -- by a different agent.
+  fun ChangeOfControl : Class ;
+  fun ChangeOfControl_Class : SubClass ChangeOfControl AchievingControl ;
+
+  -- Any instance of a process of 
+  -- RemovingClothing and Dressing.
+  fun ChangingClothing : Class ;
+  fun ChangingClothing_Class : SubClass ChangingClothing Transfer ;
+
+  -- A numbered and/or titled
+  -- section of a Book, which is typically indicated in a table of
+  -- contents for the Book.
+  fun Chapter : Class ;
+  fun Chapter_Class : SubClass Chapter Article ;
+
+  -- An activity of a fee being charged
+  fun ChargingAFee : Class ;
+  fun ChargingAFee_Class : SubClass ChargingAFee FinancialTransaction ;
+
+  -- An Icon which depicts one or more quantities.
+  fun Chart : Class ;
+  fun Chart_Class : SubClass Chart Icon ;
+
+  -- An area on or very near a border, usually along 
+  -- a road connecting two regions, where MilitaryPersons or Police 
+  -- restrict the flow of traffic in order to extract tarrifs, deny movement to 
+  -- certain kinds of people or goods, or other enforement actions. Because of 
+  -- the power relationship involved, such areas are often the site of illegal 
+  -- activities conducted by the officials in order to extract favors or 
+  -- bribes.
+  fun Checkpoint : Class ;
+  fun Checkpoint_Class : SubClass Checkpoint GeographicArea ;
+
+  -- A bitter CompoundSubstance that is capable of 
+  -- reacting with a ChemicalBase and forming a ChemicalSalt.
+  fun ChemicalAcid : Class ;
+  fun ChemicalAcid_Class : SubClass ChemicalAcid CompoundSubstance ;
+
+  -- An attack against people or property in which
+  -- a chemical agent is used as the active ingredient of the attack.
+  fun ChemicalAttack : Class ;
+  fun ChemicalAttack_Class : SubClass ChemicalAttack ViolentContest ;
+
+  -- A CompoundSubstance that is capable of 
+  -- reacting with a ChemicalAcid and forming a ChemicalSalt.
+  fun ChemicalBase : Class ;
+  fun ChemicalBase_Class : SubClass ChemicalBase CompoundSubstance ;
+
+  -- The Attribute of being in a chemically 
+  -- stable state, i.e. the relative proportions of resources and results will 
+  -- not longer change.
+  fun ChemicalEquilibrium : Ind InternalAttribute ;
+
+  -- Any ChemicalProcess where Electrons 
+  -- are added to the substance undergoing the ChemicalProcess.
+  fun ChemicalReduction : Class ;
+  fun ChemicalReduction_Class : SubClass ChemicalReduction ChemicalSynthesis ;
+
+  -- A bitter CompoundSubstance that is formed in a 
+  -- chemical reaction of a ChemicalBase with a ChemicalAcid.
+  fun ChemicalSalt : Class ;
+  fun ChemicalSalt_Class : SubClass ChemicalSalt CompoundSubstance ;
+
+  -- The study of the compositions, properties, and 
+  -- reactions of Substances.
+  fun Chemistry : Ind Science ;
+
+  -- Any piece of Furniture which is also a 
+  -- Container, e.g. a chest of drawers, a memory chest, an armoire, etc.
+  fun ChestOrCabinet : Class ;
+  fun ChestOrCabinet_Class : SubClass ChestOrCabinet (both Container Furniture) ;
+
+  -- Breaking up or mashing Food with one's teeth.
+  fun Chewing : Class ;
+  fun Chewing_Class : SubClass Chewing BodyMotion ;
+
+  -- A subclass of Bird that is raised for its meat 
+  -- and for its eggs.
+  fun Chicken : Class ;
+  fun Chicken_Class : SubClass Chicken Poultry ;
+
+  -- Meat that was originally part of a Chicken.
+  fun ChickenMeat : Class ;
+  fun ChickenMeat_Class : SubClass ChickenMeat Meat ;
+
+  -- A thin passageway through which Smoke from a controlled 
+  -- fire is conducted Outside of a Building or Room.
+  fun Chimney : Class ;
+  fun Chimney_Class : SubClass Chimney (both Device StationaryArtifact) ;
+
+  -- A part of the Face which protrudes slightly and which 
+  -- is lower than all other parts of the Face.
+  fun Chin : Class ;
+  fun Chin_Class : SubClass Chin (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A Steroid that is produced by the Liver and that 
+  -- is believed to be closely associated with various cardiological disorders.
+  fun Cholesterol : Class ;
+  fun Cholesterol_Class : SubClass Cholesterol (both AnimalSubstance Steroid) ;
+
+  -- Planning that results in a sequence of dance 
+  -- steps that are executed as part of a Performance.
+  fun Choreographing : Class ;
+  fun Choreographing_Class : SubClass Choreographing Planning ;
+
+  -- Any instance of the collection of writings which 
+  -- is regarded as scripture by those who embrace Christianity.
+  fun ChristianBible : Class ;
+  fun ChristianBible_Class : SubClass ChristianBible Book ;
+
+  -- Four books in the New Testament of the 
+  -- ChristianBible that describe the life and teachings of Jesus Christ 
+  -- and that are referred to, respectively, as Matthew, Mark, Luke, and John.
+  fun ChristianGospel : Class ;
+  fun ChristianGospel_Class : SubClass ChristianGospel Text ;
+
+  -- Any ReligiousService that is conducted by 
+  -- members of Christianity.
+  fun ChristianService : Class ;
+  fun ChristianService_Class : SubClass ChristianService ReligiousService ;
+
+  -- Processes of Separating a LiquidMixture or 
+  -- a GasMixture into some or all of the PureSubstances that comprise it.
+  fun Chromatography : Class ;
+  fun Chromatography_Class : SubClass Chromatography Separating ;
+
+  -- A tube of thin paper containing finely ground 
+  -- tobacco that is smoked.
+  fun CigarOrCigarette : Class ;
+  fun CigarOrCigarette_Class : SubClass CigarOrCigarette SmokingDevice ;
+
+  -- A slice of a Circle, i.e. any 
+  -- ClosedTwoDimensionalFigure which consists of two Radii and the arc of 
+  -- the Circle that they bound.
+  fun CircleSector : Class ;
+  fun CircleSector_Class : SubClass CircleSector ClosedTwoDimensionalFigure ;
+
+  -- Removing the foreskin of the penis. This is
+  -- usually performed on infants, but is occasionally performed on adolescents
+  -- and adults, either for medical reasons, or after religious conversion. It is
+  -- often conducted as a religious rite, since it is prescribed by both the
+  -- Jewish and Muslim religions, although it is prevalent also as a social
+  -- norm in the UnitedStates and other Nations.
+  fun Circumision : Class ;
+  fun Circumision_Class : SubClass Circumision (both Removing Surgery) ;
+
+  -- (CitizenryFn ?AREA) denotes the 
+  -- GroupOfPeople who are legal and permanent residents of the 
+  -- GeopoliticalArea ?AREA.
+  fun CitizenryFn : El GeopoliticalArea -> Ind GroupOfPeople ;
+
+  -- A square_shaped area surrounded by Roadways 
+  -- which is part of a City and typically contains Buildings.
+  fun CityBlock : Class ;
+  fun CityBlock_Class : SubClass CityBlock LandArea ;
+
+  -- Any geopoliticalSubdivision of a City.
+  fun CityDistrict : Class ;
+  fun CityDistrict_Class : SubClass CityDistrict GeopoliticalArea ;
+
+  -- CityGovernment is the class of 
+  -- governments of Cities.
+  fun CityGovernment : Class ;
+  fun CityGovernment_Class : SubClass CityGovernment Government ;
+
+  -- A War in which the fighting GeopoliticalAreas 
+  -- are both part of the same Nation.
+  fun CivilWar : Class ;
+  fun CivilWar_Class : SubClass CivilWar War ;
+
+  -- Someone who is not a member of an active
+  -- MilitaryOrganization.
+  fun Civilian : Class ;
+  fun Civilian_Class : SubClass Civilian SocialRole ;
+
+  -- An AttachingDevice which is designed to attach 
+  -- two things together by means of a movable part which can be tightened 
+  -- or loosened.
+  fun Clamp : Class ;
+  fun Clamp_Class : SubClass Clamp AttachingDevice ;
+
+  -- Bringing the Hands together repeatedly to make 
+  -- a loud noise.
+  fun Clapping : Class ;
+  fun Clapping_Class : SubClass Clapping (both HandGesture (both Impacting RadiatingSound)) ;
+
+  -- A ClassificationScheme is a conceptual structure, 
+  -- an abstract arrangement of concepts and the relations that link them.
+  fun ClassificationScheme : Class ;
+  fun ClassificationScheme_Class : SubClass ClassificationScheme Proposition ;
+
+  -- Any Room in a School where education 
+  -- takes place.
+  fun Classroom : Class ;
+  fun Classroom_Class : SubClass Classroom Room ;
+
+  -- The Profession of being in charge of or ministering 
+  -- to a ReligousOrganization.
+  fun Cleric : Class ;
+  fun Cleric_Class : SubClass Cleric ReligiousPosition ;
+
+  -- The class of Positions where the position 
+  -- holder is responsible for clerical duties, e.g. typing documents, answering 
+  -- phones, keeping schedules, etc.
+  fun ClericalSecretary : Ind SkilledOccupation ;
+
+  -- A piece of Clothing that covers the whole body 
+  -- except the face (and possibly entire head), hands, and feet.
+  fun Cloak : Class ;
+  fun Cloak_Class : SubClass Cloak Clothing ;
+
+  -- Any Device that measures and represents TimeDuration 
+  -- or TimePosition.
+  fun Clock : Class ;
+  fun Clock_Class : SubClass Clock MeasuringDevice ;
+
+  -- A relatively small Room used for storage.
+  fun Closet : Class ;
+  fun Closet_Class : SubClass Closet Room ;
+
+  -- The Class of Processes where an aperture is 
+  -- closed in an Object.
+  fun Closing : Class ;
+  fun Closing_Class : SubClass Closing Motion ;
+
+  -- Completing a Contract of some sort, 
+  -- e.g. the purchase of a house, closing a business deal, etc.
+  fun ClosingContract : Class ;
+  fun ClosingContract_Class : SubClass ClosingContract Committing ;
+
+  -- The EyeMotion of tensing the eye lids so that 
+  -- the corneas are not exposed to light.
+  fun ClosingEyes : Class ;
+  fun ClosingEyes_Class : SubClass ClosingEyes (both Closing EyeMotion) ;
+
+  -- A Collection of instances of Clothing that 
+  -- are designed to be worn together.
+  fun ClothingSuit : Class ;
+  fun ClothingSuit_Class : SubClass ClothingSuit Collection ;
+
+  -- Any occupation that involves training an athlete or a 
+  -- sports team.
+  fun Coach : Ind SkilledOccupation ;
+
+  -- CoastGuard is the subclass of GovernmentOrganizations 
+  -- that enforce the maritime laws of a Nation and guard its Seacoast. This may be 
+  -- a military or quasi_military organization.
+  fun CoastGuard : Class ;
+  fun CoastGuard_Class : SubClass CoastGuard GovernmentOrganization ;
+
+  -- Clothing that has sleeves and covers from the neck 
+  -- down. Coats are intended to be worn outdoors.
+  fun Coat : Class ;
+  fun Coat_Class : SubClass Coat OutdoorClothing ;
+
+  -- A Beverage which is prepared by infusing ground, 
+  -- roasted coffee beans into hot water.
+  fun Coffee : Class ;
+  fun Coffee_Class : SubClass Coffee (both Beverage PreparedFood) ;
+
+  -- A Container for a HumanCorpse.
+  fun Coffin : Class ;
+  fun Coffin_Class : SubClass Coffin Container ;
+
+  -- Any abstract ArtWork that is produced by arranging 
+  -- bits of paper or photographs.
+  fun Collage : Class ;
+  fun Collage_Class : SubClass Collage ArtWork ;
+
+  -- A piece of Clothing that fits around the Neck. 
+  -- A Collar is always part of a Coat or a Shirt.
+  fun Collar : Class ;
+  fun Collar_Class : SubClass Collar Clothing ;
+
+  -- A School which admits students who have 
+  -- graduated from high school and which confers a bachelor's degree, 
+  -- normally requiring four years of study. Note that a College does 
+  -- not confer any graduate degrees. For institutions that confer both 
+  -- bachelor's and graduate degrees, the concept University should be 
+  -- used.
+  fun College : Class ;
+  fun College_Class : SubClass College PostSecondarySchool ;
+
+  -- The Positions of a student at a PostSecondarySchool 
+  -- who has completed less than one year at the school.
+  fun CollegeFreshman : Ind CollegeStudentPosition ;
+
+  -- The Positions of a student at a PostSecondarySchool 
+  -- who has completed at least two years and less than three years at the school.
+  fun CollegeJunior : Ind CollegeStudentPosition ;
+
+  -- The Positions of a student at a PostSecondarySchool 
+  -- who has completed at least three years and less than four years at the school.
+  fun CollegeSenior : Ind CollegeStudentPosition ;
+
+  -- The Positions of a student at a PostSecondarySchool 
+  -- who has completed at least one year and less than two years at the school.
+  fun CollegeSophomore : Ind CollegeStudentPosition ;
+
+  -- Any Position at a PostSecondarySchool 
+  -- which is occupied exclusively by students.
+  fun CollegeStudentPosition : Class ;
+  fun CollegeStudentPosition_Class : SubClass CollegeStudentPosition Position ;
+
+  -- A commissioned MilitaryOfficer who ranks above 
+  -- a lieutenant colonel and below a brigadier general.
+  fun Colonel : Class ;
+  fun Colonel_Class : SubClass Colonel MilitaryOfficer ;
+
+  -- Positions which involve performing stand_up comedy, which 
+  -- is recorded and/or performed in front of live audiences.
+  fun Comedian : Ind EntertainmentProfession ;
+
+  -- A Building which is intended for 
+  -- organizational activities, e.g. retail or wholesale selling, manufacturing, 
+  -- office work, etc.
+  fun CommercialBuilding : Class ;
+  fun CommercialBuilding_Class : SubClass CommercialBuilding (both Building PlaceOfCommerce) ;
+
+  -- CommercialShipping is the subclass of 
+  -- Transportation events in which a commercial agent provides transportation 
+  -- of goods for remuneration.
+  fun CommercialShipping : Class ;
+  fun CommercialShipping_Class : SubClass CommercialShipping (both CommercialService Shipping) ;
+
+  -- A Room or suite of Rooms intended for 
+  -- clerical and/or professional work of a single Organization.
+  fun CommercialUnit : Class ;
+  fun CommercialUnit_Class : SubClass CommercialUnit PlaceOfCommerce ;
+
+  -- A small, temporary Organization whose purpose 
+  -- is to investigate some issue.
+  fun Commission : Class ;
+  fun Commission_Class : SubClass Commission Organization ;
+
+  -- The TimeInterval that runs from the supposed 
+  -- time of the death of Christ to PositiveInfinity.
+  fun CommonEra : Ind TimeInterval ;
+
+  -- A CommunicationDevice is a Device
+  -- which serves at the instrument in a Communication Process by allowing
+  -- the communicated message to be conveyed between the participants.
+  fun CommunicationDevice : Class ;
+  fun CommunicationDevice_Class : SubClass CommunicationDevice EngineeringComponent ;
+
+  -- CommunicationOrganization is 
+  -- the subclass of Organizations that manage Communications over physical 
+  -- infrastructure owned or leased by the organization. Such organizations 
+  -- may also produce and disseminate information, entertainment, or other 
+  -- content. Also see MediaOrganization.
+  fun CommunicationOrganization : Class ;
+  fun CommunicationOrganization_Class : SubClass CommunicationOrganization Organization ;
+
+  -- CommunicationSystem is a complex 
+  -- system with various components, enabling communication (in some 
+  -- medium) between points in a specific area, whether local or worldwide.
+  fun CommunicationSystem : Class ;
+  fun CommunicationSystem_Class : SubClass CommunicationSystem Collection ;
+
+  -- Any PoliticalParty that advocates for a 
+  -- CommunistState.
+  fun CommunistParty : Class ;
+  fun CommunistParty_Class : SubClass CommunistParty PoliticalParty ;
+
+  -- A Container which is part of another Container, 
+  -- e.g. a drawer, a zippered pouch in a piece of luggage, a compartment in a TV 
+  -- dinner, etc.
+  fun Compartment : Class ;
+  fun Compartment_Class : SubClass Compartment Container ;
+
+  -- A Device that indicates the direction of the
+  -- various DirectionalAttributes with respect to the device.
+  fun Compass : Class ;
+  fun Compass_Class : SubClass Compass (both ContentBearingObject Device) ;
+
+  -- ContentDevelopment which results in a 
+  -- MusicalComposition.
+  fun Composing : Class ;
+  fun Composing_Class : SubClass Composing ContentDevelopment ;
+
+  -- ContentDevelopment which results in a 
+  -- MusicalComposition.
+  fun ComposingMusic : Class ;
+  fun ComposingMusic_Class : SubClass ComposingMusic ContentDevelopment ;
+
+  -- Locating something in such a way that it cannot 
+  -- be seen.
+  fun Concealing : Class ;
+  fun Concealing_Class : SubClass Concealing Putting ;
+
+  -- A ResidentialBuilding containing 
+  -- CondominiumUnits.
+  fun CondominiumBuilding : Class ;
+  fun CondominiumBuilding_Class : SubClass CondominiumBuilding ResidentialBuilding ;
+
+  -- A SingleFamilyResidence that may be owned 
+  -- by a member of the SocialUnit that lives there.
+  fun CondominiumUnit : Class ;
+  def CondominiumUnit = KappaFn SingleFamilyResidence (\UNIT -> exists Human (\PERSON -> and (home (var Human Human ? PERSON) (var SingleFamilyResidence PermanentResidence ? UNIT))
+                                                                                             (possesses (var Human Agent ? PERSON) (var SingleFamilyResidence Object ? UNIT)))) ;
+
+  -- The class of ThreeDimensionalFigures which are 
+  -- produced by rotating a RightTriangle around its RightAngle.
+  fun Cone : Class ;
+  fun Cone_Class : SubClass Cone ThreeDimensionalFigure ;
+
+  -- Any Soldier that served on the confederate side 
+  -- during the American Civil War. ConfederateSoldier Any Soldier that served on the
+  -- confederate side during the American Civil War.
+  fun ConfederateSoldier : Class ;
+  fun ConfederateSoldier_Class : SubClass ConfederateSoldier Soldier ;
+
+  -- The eleven states of the UnitedStates 
+  -- that tried to secede from the UnitedStates.
+  fun ConfederateStatesOfAmerica : Ind GeopoliticalArea ;
+
+  -- Any ExpressingApproval to a person for 
+  -- something that the person did in the past and that is regarded as being 
+  -- to the benefit of the person congratulated.
+  fun Congratulating : Class ;
+  fun Congratulating_Class : SubClass Congratulating ExpressingApproval ;
+
+  -- A CompoundSubstance that results from 
+  -- the ChemicalSynthesis of two or more CompoundSubstances.
+  fun ConjugatedSubstance : Class ;
+  fun ConjugatedSubstance_Class : SubClass ConjugatedSubstance CompoundSubstance ;
+
+  -- An AlphabeticCharacter that denotes a speech sound 
+  -- that results in audible friction when it is pronounced.
+  fun Consonant : Class ;
+  fun Consonant_Class : SubClass Consonant AlphabeticCharacter ;
+
+  -- A Snake that lacks venom and kills its 
+  -- prey by crushing it to death.
+  fun ConstrictorSnake : Class ;
+  fun ConstrictorSnake_Class : SubClass ConstrictorSnake Snake ;
+
+  -- Any Holder whose purpose is to contain 
+  -- something else. Note that Container is more specific in meaning 
+  -- than Holder, because a Container must have a Hole that is at 
+  -- least partially filled by the thing contained.
+  fun Container : Class ;
+  fun Container_Class : SubClass Container Holder ;
+
+  -- ContainerEmpty is the Attribute of a 
+  -- Container that is empty.
+  fun ContainerEmpty : Ind RelationalAttribute ;
+
+  -- ContainerFull is the Attribute of a 
+  -- Container that is full to capacity.
+  fun ContainerFull : Ind RelationalAttribute ;
+
+  -- Devices which permit sexual intercourse but 
+  -- which reduce the likelihood of conception.
+  fun ContraceptiveDevice : Class ;
+  fun ContraceptiveDevice_Class : SubClass ContraceptiveDevice Device ;
+
+  -- A group of vehicles that all are being driven
+  -- in formation (e.g., lines, rows, columns) to the same destination.
+  -- That destination may be an intermediate destination on the way to a
+  -- final destination for some of the vehicles however. This is
+  -- distinguished from vehicles that have no common purpose, such as
+  -- traffic on a freeway. This includes cases where some of the agents
+  -- driving the vehicles intend to reach a point but fail to do so.
+  fun Convoy : Class ;
+  fun Convoy_Class : SubClass Convoy Collection ;
+
+  -- A Device whose purpose is Cooling something, 
+  -- e.g. air conditioners, refrigerators, freezers, etc.
+  fun CoolingDevice : Class ;
+  fun CoolingDevice_Class : SubClass CoolingDevice Device ;
+
+  -- Making a copy of something.
+  fun Copying : Class ;
+  fun Copying_Class : SubClass Copying Making ;
+
+  -- A GovernmentOfficer who investigates deaths that are 
+  -- suspected of being due to something other than natural causes.
+  fun Coroner : Ind GovernmentOfficer ;
+
+  -- A noncomissioned MilitaryOfficer.
+  fun Corporal : Class ;
+  fun Corporal_Class : SubClass Corporal MilitaryOfficer ;
+
+  -- Instances of LinguisticCommunication which 
+  -- are achieved by means of Texts that are mailed between the persons 
+  -- communicating with one another.
+  fun Corresponding : Class ;
+  fun Corresponding_Class : SubClass Corresponding LinguisticCommunication ;
+
+  -- Fibers from the cotton plant that are used in 
+  -- Making CottonFabric.
+  fun Cotton : Class ;
+  fun Cotton_Class : SubClass Cotton PlantAnatomicalStructure ;
+
+  -- Any Fabric that is made entirely out of Cotton.
+  fun CottonFabric : Class ;
+  fun CottonFabric_Class : SubClass CottonFabric Fabric ;
+
+  -- Any Room whose purpose is to realize 
+  -- JudicialProcesses.
+  fun CourtRoom : Class ;
+  fun CourtRoom_Class : SubClass CourtRoom Room ;
+
+  -- A domesticated HoofedMammal that is raised for milk 
+  -- and beef, and is also used for work.
+  fun Cow : Class ;
+  fun Cow_Class : SubClass Cow (both DomesticAnimal HoofedMammal) ;
+
+  -- Crane is a subclass of mechanical Devices 
+  -- that consist of a HoistingDevice on a moveable boom, designed to 
+  -- assist in moving heavy loads.
+  fun Crane : Class ;
+  fun Crane_Class : SubClass Crane MaterialHandlingEquipment ;
+
+  -- Creek is the class of small streams of fresh 
+  -- water flowing through land, usually into a River.
+  fun Creek : Class ;
+  fun Creek_Class : SubClass Creek (both BodyOfWater (both FreshWaterArea StreamWaterArea)) ;
+
+  -- Any IntentionalProcess that violates a Law.
+  fun CriminalAction : Class ;
+  fun CriminalAction_Class : SubClass CriminalAction IntentionalProcess ;
+
+  -- A GroupOfPeople which exists (partially or 
+  -- wholly) for the purpose of CriminalAction.
+  fun CriminalGang : Class ;
+  fun CriminalGang_Class : SubClass CriminalGang GroupOfPeople ;
+
+  -- A LandArea which is dedicated to 
+  -- Agriculture, e.g. Lawns, gardens, and fields for growing crops.
+  fun CultivatedLandArea : Class ;
+  fun CultivatedLandArea_Class : SubClass CultivatedLandArea LandArea ;
+
+  -- A raised concrete or asphalt structure that connects a 
+  -- Sidewalk with a Roadway.
+  fun Curb : Class ;
+  fun Curb_Class : SubClass Curb StationaryArtifact ;
+
+  -- Any instance of Currency that is made 
+  -- of paper.
+  fun CurrencyBill : Class ;
+  fun CurrencyBill_Class : SubClass CurrencyBill Currency ;
+
+  -- Any instance of Currency that is made 
+  -- of Metal.
+  fun CurrencyCoin : Class ;
+  fun CurrencyCoin_Class : SubClass CurrencyCoin Currency ;
+
+  -- A piece of Fabric whose purpose is Covering a 
+  -- Window so as to keep out the light or prevent people from seeing inside.
+  fun Curtain : Class ;
+  fun Curtain_Class : SubClass Curtain (both Fabric WindowCovering) ;
+
+  -- Any Device whose purpose is Cutting something 
+  -- else. This class covers knives of all times, axes, saws, razors, chisels etc.
+  fun CuttingDevice : Class ;
+  fun CuttingDevice_Class : SubClass CuttingDevice Device ;
+
+  -- The class of ThreeDimensionalFigures such that 
+  -- all GeometricPoints that make up the Cylinder are equidistant from a 
+  -- OneDimensionalFigure, known as the axis of the Cylinder.
+  fun Cylinder : Class ;
+  fun Cylinder_Class : SubClass Cylinder ThreeDimensionalFigure ;
+
+  fun DairyProduct : Class ;
+  fun DairyProduct_Class : SubClass DairyProduct AnimalAgriculturalProduct ;
+
+  -- A School that does not board its students, i.e. 
+  -- students attend classes during the day and then return to a private residence 
+  -- for the night.
+  fun DaySchool : Class ;
+  fun DaySchool_Class : SubClass DaySchool School ;
+
+  -- The class of TimeIntervals that begin at Sunrise 
+  -- and end at Sunset.
+  fun DayTime : Class ;
+  fun DayTime_Class : SubClass DayTime TimeInterval ;
+
+  -- Any Position within a ReligiousOrganization that is held 
+  -- by a layman, which is part_time, and which involves assisting a Cleric.
+  fun Deacon : Class ;
+  fun Deacon_Class : SubClass Deacon PartTimePosition ;
+
+  -- The Attribute that applies to Animals and Humans 
+  -- that are unable to hear.
+  fun Deaf : Ind BiologicalAttribute ;
+
+  -- A Contest where each participant holds a different 
+  -- view regarding some issue, and each participant attempts to prove, by 
+  -- rhetoric or evidence, that his/her own views about a particular matter are 
+  -- correct and/or that the views of the other participants are incorrect.
+  fun Debating : Class ;
+  fun Debating_Class : SubClass Debating (both Contest LinguisticCommunication) ;
+
+  -- Getting off a Vehicle, e.g. getting out of an 
+  -- Automobile, deplaning, getting off a WaterVehicle, etc.
+  fun Deboarding : Class ;
+  fun Deboarding_Class : SubClass Deboarding Translocation ;
+
+  -- The TimeDuration of 10 years.
+  fun DecadeDuration : Ind UnitOfDuration ;
+
+  -- Decreasing the speed with which someone 
+  -- or something is moving.
+  fun Decelerating : Class ;
+  fun Decelerating_Class : SubClass Decelerating (both Decreasing Translocation) ;
+
+  -- One of the two major political parties in 
+  -- the UnitedStates. The DemocraticParty represents liberal values.
+  fun DemocraticParty : Ind PoliticalParty ;
+
+  -- The Profession of being a dentist, i.e. diagnosing 
+  -- and treating problems related to the teeth.
+  fun Dentist : Ind Profession ;
+
+  -- Any BiologicallyActiveSubstance which has 
+  -- the effect of depressing the central nervous system, i.e. decreasing 
+  -- function or activity in the Brain or SpinalCord.
+  fun Depressant : Class ;
+  fun Depressant_Class : SubClass Depressant BiologicallyActiveSubstance ;
+
+  -- A Position which authorizes the holder of the position 
+  -- to act as the sheriff when the sheriff is not available.
+  fun Deputy : Ind PoliceOfficer ;
+
+  -- (DescendantsFn ?PERSON) denotes all and only 
+  -- the descendants of ?PERSON, i.e. the Group consisting of ?OFFSPRING who 
+  -- satisfy the following formula: (ancestor ?OFFSPRING ?PERSON).
+  fun DescendantsFn : El Human -> Ind FamilyGroup ;
+
+  -- A Table for a single person which is intended to be 
+  -- used for paperwork.
+  fun Desk : Class ;
+  fun Desk_Class : SubClass Desk Table ;
+
+  -- A detergent is a compound, or a mixture of 
+  -- compounds, whose molecules have two distinct regions: one that is 
+  -- hydrophilic, and dissolves easily in water, and another region that is 
+  -- hydrophobic, with little (if any) affinity for water. As a consequence, 
+  -- these compounds can aid in the solubilization of hydrophobic compounds in 
+  -- water, and usually are optimized for this property. Though Soap also has 
+  -- these properties, soaps in general are not considered detergents. Soap is 
+  -- a particular type of surfactant that is derived from oils and fats. They 
+  -- are created through the saponification process whereby the ester linkage 
+  -- in a vegetable oil or fat is hydrolytically cleaved, creating a sodium or 
+  -- potassium salt of a fatty acid (i.e. soap). Both detergents and soaps 
+  -- are considered to be surfactants. Surfactants that are not soaps are 
+  -- considered to be detergents. Detergents are also commonly known as any 
+  -- cleaning mixture containing surfactants. (from Wikipedia)
+  fun Detergent : Class ;
+  fun Detergent_Class : SubClass Detergent (both Mixture Surfactant) ;
+
+  -- This class contains two Attributes to 
+  -- indicate whether a Device is or is not behaving as it is intended to 
+  -- behave, Functioning and Malfunctioning.
+  fun DeviceAttribute : Class ;
+  fun DeviceAttribute_Class : SubClass DeviceAttribute ObjectiveNorm ;
+
+  fun DeviceClosed : Ind (both DeviceStateAttribute RelationalAttribute) ;
+
+  fun DeviceOff : Ind (both DeviceStateAttribute InternalAttribute) ;
+
+  fun DeviceOn : Ind (both DeviceStateAttribute InternalAttribute) ;
+
+  fun DeviceOpen : Ind (both DeviceStateAttribute RelationalAttribute) ;
+
+  -- DeviceStateAttribute is the class 
+  -- of attributes that represent different states that a Device may be in. 
+  -- Examples: DeviceOff, DeviceOn, DeviceOpen, and DeviceClosed.
+  fun DeviceStateAttribute : Class ;
+  fun DeviceStateAttribute_Class : SubClass DeviceStateAttribute DeviceAttribute ;
+
+  -- Any process of Separating a Solution into two or more 
+  -- constituent PureSubstances by means of their unequal diffusion through membranes 
+  -- that are partially permeable.
+  fun Dialysis : Class ;
+  fun Dialysis_Class : SubClass Dialysis Separating ;
+
+  -- (DiameterFn ?CIRCLE) denotes the length of the 
+  -- diameter of the Circle ?CIRCLE.
+  fun DiameterFn : El Circle -> Ind LengthMeasure ;
+
+  -- Crystalline Carbon that is valued as a gem and 
+  -- used in industrial applications.
+  fun Diamond : Class ;
+  fun Diamond_Class : SubClass Diamond (both Carbon Mineral) ;
+
+  -- A DiseaseOrSyndrome of frequent, watery bowel 
+  -- movements. Severe cases can be fatal for the young or weak. It is
+  -- a common cause of death for the very young in poor developing countries.
+  fun Diarrhea : Ind DiseaseOrSyndrome ;
+
+  -- A ReferenceBook which specifies the meanings 
+  -- of the Words of a Language.
+  fun Dictionary : Class ;
+  fun Dictionary_Class : SubClass Dictionary ReferenceBook ;
+
+  -- DieselEngine is the subclass of 
+  -- InternalCombustionEngines that use DieselFuel as their resource.
+  fun DieselEngine : Class ;
+  fun DieselEngine_Class : SubClass DieselEngine InternalCombustionEngine ;
+
+  -- A Plan regarding what one is allowed to eat.
+  fun Diet : Class ;
+  fun Diet_Class : SubClass Diet Plan ;
+
+  -- Any Process of removing or turning over the Soil.
+  fun Digging : Class ;
+  fun Digging_Class : SubClass Digging (both IntentionalProcess SurfaceChange) ;
+
+  -- Any of the extremities of Limbs that are 
+  -- found in the higer Vertebrates and the Amphibians.
+  fun DigitAppendage : Class ;
+  fun DigitAppendage_Class : SubClass DigitAppendage (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Any Character that is comprised of a single digit, 
+  -- i.e. one of the numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
+  fun DigitCharacter : Class ;
+  fun DigitCharacter_Class : SubClass DigitCharacter Character ;
+
+  -- Adding a Liquid to a Solution to decrease 
+  -- the concentration of the Solution.
+  fun Diluting : Class ;
+  fun Diluting_Class : SubClass Diluting Putting ;
+
+  -- A Room intended primarily for Eating.
+  fun DiningRoom : Class ;
+  fun DiningRoom_Class : SubClass DiningRoom Room ;
+
+  -- A person who works as a facilitator for communication
+  -- between countries, in the official employ of one of the countries.
+  fun Diplomat : Ind OccupationalRole ;
+
+  -- A Holder for Food while the Food is being eaten.
+  fun Dish : Class ;
+  fun Dish_Class : SubClass Dish Holder ;
+
+  -- Any BodyMotion which results in not being On 
+  -- something else.
+  fun Dismounting : Class ;
+  fun Dismounting_Class : SubClass Dismounting BodyMotion ;
+
+  -- DisplacementHullWaterVehicle is 
+  -- a subclass of WaterVehicle with hulls designed to move water aside as they 
+  -- move through the water. Contrast with PlaningHullWaterVehicle.
+  fun DisplacementHullWaterVehicle : Class ;
+  fun DisplacementHullWaterVehicle_Class : SubClass DisplacementHullWaterVehicle WaterVehicle ;
+
+  -- Something for posting content so 
+  -- that it can be disseminated to the public.
+  fun DisplayArtifact : Class ;
+  fun DisplayArtifact_Class : SubClass DisplayArtifact Artifact ;
+
+  -- Someone who is opposed to the leadership
+  -- of a particular country. Typically, a dissident suffers punishment
+  -- at the hands of the country whose leadership he is opposing.
+  fun Dissident : Ind (both Civilian SocialRole) ; 
+
+  -- An AlcoholicBeverage that has 
+  -- had some part of its Water content removed by distillation. This class 
+  -- covers drinks of unmixed, hard liquor.
+  fun DistilledAlcoholicBeverage : Class ;
+  fun DistilledAlcoholicBeverage_Class : SubClass DistilledAlcoholicBeverage AlcoholicBeverage ;
+
+  -- A legal act whereby a marriage is dissolved. This 
+  -- includes annulments.
+  fun Divorcing : Class ;
+  fun Divorcing_Class : SubClass Divorcing Declaring ;
+
+  -- A MotionPicture which purports to represent the 
+  -- facts about a person, event, etc.
+  fun Documentary : Class ;
+  fun Documentary_Class : SubClass Documentary (both FactualText MotionPicture) ;
+
+  -- Purposely moving one's body in such a way as 
+  -- to avoid being hit by something.
+  fun Dodging : Class ;
+  fun Dodging_Class : SubClass Dodging (both BodyMotion IntentionalProcess) ;
+
+  -- Any Animal that is kept by a Human, as 
+  -- a pet, as livestock, for exhibition, etc.
+  fun DomesticAnimal : Class ;
+  fun DomesticAnimal_Class : SubClass DomesticAnimal Animal ;
+
+  -- A variety of Feline which has been domesticated 
+  -- by selective breeding.
+  fun DomesticCat : Class ;
+  fun DomesticCat_Class : SubClass DomesticCat (both DomesticAnimal Feline) ;
+
+  -- Canines which have evolved from the common 
+  -- wolf by selective breeding.
+  fun DomesticDog : Class ;
+  fun DomesticDog_Class : SubClass DomesticDog (both Canine DomesticAnimal) ;
+
+  -- A domesticated HoofedMammal that is used for work.
+  fun Donkey : Class ;
+  fun Donkey_Class : SubClass Donkey (both HoofedMammal Livestock) ;
+
+  -- An Artifact that restricts and permits access to a 
+  -- StationaryArtifact (e.g. Building or Room) depending on whether the 
+  -- Door is open or locked. Note that the class Door also covers gates, 
+  -- because it is not possible to define objective criteria that reliably 
+  -- distinguish doors from gates.
+  fun Door : Class ;
+  fun Door_Class : SubClass Door (both Artifact Device) ;
+
+  -- A StationaryArtifact consisting of a frame that 
+  -- holds a Door.
+  fun Doorway : Class ;
+  fun Doorway_Class : SubClass Doorway StationaryArtifact ;
+
+  -- A TemporaryResidence which is owned by a School 
+  -- and which is used to house students while they take classes at the School.
+  fun Dormitory : Class ;
+  fun Dormitory_Class : SubClass Dormitory (both ResidentialBuilding TemporaryResidence) ;
+
+  -- A Mixture of Flour, Water, and possibly 
+  -- other ingredients (such as Butter and Salt), which is used in 
+  -- making BreadOrBiscuits.
+  fun Dough : Class ;
+  fun Dough_Class : SubClass Dough (both Mixture PreparedFood) ;
+
+  -- A PositionalAttribute to indicate that one thing is 
+  -- one or more floors below a second thing in the same building.
+  fun Downstairs : Ind PositionalAttribute ;
+
+  -- The commercial center of a City. The part of the 
+  -- City that contains more shops and offices than any other part.
+  fun Downtown : Class ;
+  fun Downtown_Class : SubClass Downtown CityDistrict ;
+
+  -- Playing a character in a Performance, 
+  -- MotionPicture, etc.
+  fun DramaticActing : Class ;
+  fun DramaticActing_Class : SubClass DramaticActing Pretending ;
+
+  -- The GroupOfPeople who engage in DramaticActing 
+  -- as part of the realization of a single FictionalText.
+  fun DramaticCast : Class ;
+  fun DramaticCast_Class : SubClass DramaticCast GroupOfPeople ;
+
+  -- The process of directing a DramaticActing 
+  -- in a MotionPicture or the Performance of a DramaticPlay.
+  fun DramaticDirecting : Class ;
+  fun DramaticDirecting_Class : SubClass DramaticDirecting Guiding ;
+
+  -- A Performance that consists exclusively of 
+  -- DramaticActing, e.g. a live performance of Death_of_a_Salesman in front 
+  -- of an audience.
+  fun DramaticPerformance : Class ;
+  fun DramaticPerformance_Class : SubClass DramaticPerformance Performance ;
+
+  -- A FictionalText that is intended to be realized 
+  -- as DramaticActing.
+  fun DramaticPlay : Class ;
+  fun DramaticPlay_Class : SubClass DramaticPlay FictionalText ;
+
+  -- Any ContentDevelopment that results in a Sketch.
+  fun Drawing : Class ;
+  fun Drawing_Class : SubClass Drawing (both ContentDevelopment SurfaceChange) ;
+
+  -- A Process of producing metal images which occurs 
+  -- while one is Asleep.
+  fun Dreaming : Class ;
+  fun Dreaming_Class : SubClass Dreaming Imagining ;
+
+  -- An item of Clothing which covers the lower body of a Woman.
+  fun Dress : Class ;
+  fun Dress_Class : SubClass Dress Clothing ;
+
+  -- The Process of putting on Clothing.
+  fun Dressing : Class ;
+  fun Dressing_Class : SubClass Dressing Putting ;
+
+  -- Any Room which is intended for ChangingClothing.
+  fun DressingRoom : Class ;
+  fun DressingRoom_Class : SubClass DressingRoom Room ;
+
+  -- A Device that has the purpose of creating a Hole. 
+  -- This covers manual drills as well as electric or pneumatic drills.
+  fun Drill : Class ;
+  fun Drill_Class : SubClass Drill CuttingDevice ;
+
+  -- Any Process of producing a hole in a 
+  -- SelfConnectedObject which involves rotating a long, thin bit.
+  fun Drilling : Class ;
+  fun Drilling_Class : SubClass Drilling (both IntentionalProcess SurfaceChange) ;
+
+  -- An open FluidContainer that is intended to serve a Beverage 
+  -- to a single person. Note that this class includes both cups with handles and 
+  -- drinking glasses.
+  fun DrinkingCup : Class ;
+  fun DrinkingCup_Class : SubClass DrinkingCup FluidContainer ;
+
+  -- Any LiquidMotion where the Liquid is moved drop by drop.
+  fun Dripping : Class ;
+  fun Dripping_Class : SubClass Dripping LiquidMotion ;
+
+  -- An EngineeringComponent whose purpose is to 
+  -- transfer force from one part of a Device to another part.
+  fun DriveComponent : Class ;
+  fun DriveComponent_Class : SubClass DriveComponent EngineeringComponent ;
+
+  -- A License which identifies the holder and 
+  -- indicates that he has the right to drive a certain class of RoadVehicle.
+  fun DriversLicense : Class ;
+  fun DriversLicense_Class : SubClass DriversLicense License ;
+
+  -- A small, private Roadway that is used for parking 
+  -- Automobiles or for connecting a Garage to a public Roadway.
+  fun Driveway : Class ;
+  fun Driveway_Class : SubClass Driveway Roadway ;
+
+  -- A RetailStore that sells Medicine, and 
+  -- perhaps other items as well.
+  fun DrugStore : Class ;
+  fun DrugStore_Class : SubClass DrugStore RetailStore ;
+
+  -- The ConsciousnessAttribute of someone whose motor and/or 
+  -- cognitive faculties are significantly impaired by a BiologicallyActiveSubstance.
+  fun Drugged : Ind ConsciousnessAttribute ;
+
+  -- An atonal PercussionInstrument which consists of a hollow cylinder
+  -- and a fabric stretched across at least one end of the cylinder.
+  fun Drum : Class ;
+  fun Drum_Class : SubClass Drum PercussionInstrument ;
+
+  -- Playing a Drum. Note that this includes both
+  -- musical performance, as well as signalling and cerimonial applications.
+  fun Drumming : Class ;
+  fun Drumming_Class : SubClass Drumming (both Demonstrating RadiatingSound) ;
+
+  -- The ConsciousnessAttribute of someone whose motor and 
+  -- cognitive faculties are significantly impaired by Alcohol.
+  fun Drunk : Ind ConsciousnessAttribute ;
+
+  -- A subclass of Bird with webbed feet and a large bill. 
+  -- Some ducks live in the wild, and some are raised for meat and/or eggs.
+  fun Duck : Class ;
+  fun Duck_Class : SubClass Duck Poultry ;
+
+  -- Purposely moving one's body downward in such a way as 
+  -- to avoid being hit by something.
+  fun Ducking : Class ;
+  fun Ducking_Class : SubClass Ducking (both BodyMotion (both IntentionalProcess MotionDownward)) ;
+
+  -- A Tax that is levied on imports and/or exports.
+  fun DutyTax : Class ;
+  fun DutyTax_Class : SubClass DutyTax Tax ;
+
+  -- The Organ of hearing.
+  fun Ear : Class ;
+  fun Ear_Class : SubClass Ear (both AnimalAnatomicalStructure Organ) ;
+
+  -- Instances of RadiatingSound where the instrument 
+  -- is a surface which bounces sound waves back to their origin, where they can 
+  -- be heard again.
+  fun Echoing : Class ;
+  fun Echoing_Class : SubClass Echoing RadiatingSound ;
+
+  -- A class of Relations which are used 
+  -- to specify various economic measures, e.g. the GDP, the consumer price 
+  -- index, and the trade deficit.
+  fun EconomicRelation : El GeopoliticalArea -> El Entity -> Formula;
+
+  -- The field of economics.
+  fun Economics : Ind SocialScience ;
+
+  -- A schedule of class meetings offered by an 
+  -- EducationalOrganization.
+  fun EducationalCourse : Class ;
+  fun EducationalCourse_Class : SubClass EducationalCourse EducationalProgram ;
+
+  -- A building or campus, owned by an
+  -- EducationalOrganization, which is intended as the location for
+  -- EducationalProcesses.
+  fun EducationalFacility : Class ;
+  fun EducationalFacility_Class : SubClass EducationalFacility StationaryArtifact ;
+
+  -- A series of EducationalCourses that must 
+  -- be completed to receive an AcademicDegree or other Certificate. Note that 
+  -- an EducationalProgram, unlike an EducationalCourse, may be realized at more 
+  -- than one EducationalOrganization.
+  fun EducationalProgram : Class ;
+  fun EducationalProgram_Class : SubClass EducationalProgram Plan ;
+
+  -- The joint in the Arm connecting the forearm and the 
+  -- upper arm.
+  fun Elbow : Class ;
+  fun Elbow_Class : SubClass Elbow BodyJoint ;
+
+  -- ElectoralCollegeElection is 
+  -- the class of Elections in which the outcome is decided by the votes of 
+  -- electors who have been chosen by popular vote, rather than directly by 
+  -- results of the popular vote. ElectoralCollegeElection is an indirect 
+  -- method of election, in contrast to PopularElection.
+  fun ElectoralCollegeElection : Class ;
+  fun ElectoralCollegeElection_Class : SubClass ElectoralCollegeElection GeneralElection ;
+
+  -- A Device that uses Electricity as its
+  -- primary power source.
+  fun ElectricDevice : Class ;
+  fun ElectricDevice_Class : SubClass ElectricDevice Device ;
+
+  -- ElectricMotor is the subclass of Engines 
+  -- that produce mechanical power from electricity.
+  fun ElectricMotor : Class ;
+  fun ElectricMotor_Class : SubClass ElectricMotor (both ElectricDevice Engine) ;
+
+  -- ElectricalSignalling is the subclass of Signalling processes
+  -- that involve control of an electrical current. Cf. ElectronicSignalling.
+  fun ElectricalSignalling : Class ;
+  fun ElectricalSignalling_Class : SubClass ElectricalSignalling Signalling ;
+
+  -- ElectrifiedRailwayCar is the 
+  -- subclass of railway cars that are powered by electricity, which is 
+  -- provided to the car through an overhead link or electrified third rail.
+  fun ElectrifiedRailwayCar : Class ;
+  fun ElectrifiedRailwayCar_Class : SubClass ElectrifiedRailwayCar (both ElectricDevice (both PoweredVehicle RollingStock)) ;
+
+  -- ElectronicSignalling is the 
+  -- subclass of Signalling processes that involve a signal generated by 
+  -- a computer.
+  fun ElectronicSignalling : Class ;
+  fun ElectronicSignalling_Class : SubClass ElectronicSignalling Signalling ;
+
+  -- The branch of Physics that deals with the theory 
+  -- and applications of electron emissions.
+  fun Electronics : Ind FieldOfStudy ;
+
+  -- A very large, almost hairless Herbivore with a long trunk.
+  fun Elephant : Class ;
+  fun Elephant_Class : SubClass Elephant Herbivore ;
+
+  -- A TransportationDevice consisting of a car that moves 
+  -- up and down in a vertical shaft so that people or objects can move from one floor to another 
+  -- in a building.
+  fun Elevator : Class ;
+  fun Elevator_Class : SubClass Elevator TransportationDevice ;
+
+  -- An embassy is a Building that is owned by a Government to house
+  -- its diplomatic and consular staff that is in another country.
+  fun EmbassyBuilding : Class ;
+  fun EmbassyBuilding_Class : SubClass EmbassyBuilding GovernmentBuilding ;
+
+  -- The class of Touching processes where one Human hugs another one.
+  fun Embracing : Class ;
+  fun Embracing_Class : SubClass Embracing Touching ;
+
+  -- A DiseaseOrSyndrome that affects the Lungs and 
+  -- which results in a decrease of breathing ability.
+  fun Emphysema : Ind DiseaseOrSyndrome ;
+
+  -- Involuntarily ending one's employment. 
+  -- Note that this covers termination due to inadequate performance, as 
+  -- well as layoffs.
+  fun EmploymentFiring : Class ;
+  fun EmploymentFiring_Class : SubClass EmploymentFiring TerminatingEmployment ;
+
+  -- Engine is a subclass of Transducer. Engines are devices for converting
+  -- some form of energy resource into mechanical power.
+  fun Engine : Class ;
+  fun Engine_Class : SubClass Engine Transducer ;
+
+  -- The application of instances of Science to the solution 
+  -- of practical problems, i.e. the creation of various forms of technology.
+  fun Engineering : Ind Science ;
+
+  -- A building that has the primary 
+  -- purpose of entertaining people.
+  fun EntertainmentBuilding : Class ;
+  fun EntertainmentBuilding_Class : SubClass EntertainmentBuilding Building ;
+
+  -- Any business whose services include 
+  -- Performances. This class covers nightclubs, commercial live theaters, 
+  -- and comedy clubs.
+  fun EntertainmentCompany : Class ;
+  fun EntertainmentCompany_Class : SubClass EntertainmentCompany CommercialAgent ;
+
+  -- Positions which involve creating 
+  -- content or performances that are intended to entertain. This class covers 
+  -- the TheaterProfession, FilmMakingProfession, being a comedian, etc.
+  fun EntertainmentProfession : Class ;
+  fun EntertainmentProfession_Class : SubClass EntertainmentProfession SkilledOccupation ;
+
+  -- More commonly known as burying, this is the class 
+  -- of processes of putting a HumanCorpse into a Tomb. Note that this class 
+  -- is not a subclass of Burying, since some Tombs are not covered with Soil, 
+  -- e.g. those in a mausoleum.
+  fun Entombing : Class ;
+  fun Entombing_Class : SubClass Entombing Putting ;
+
+  -- A sealable Container for one or more pieces of 
+  -- paper which is designed to protect the papers while they are transferred to 
+  -- someone.
+  fun Envelope : Class ;
+  fun Envelope_Class : SubClass Envelope Container ;
+
+  -- Any instance of Translocation where the agent brings 
+  -- it about that he/she is no longer confined without having the right to do 
+  -- so.
+  fun Escaping : Class ;
+  fun Escaping_Class : SubClass Escaping Translocation ;
+
+  -- Any Investigating by one Government of another 
+  -- Government where the second Government does not know that it is being 
+  -- spied upon.
+  fun Espionage : Class ;
+  fun Espionage_Class : SubClass Espionage (both Investigating PoliticalProcess) ;
+
+  -- The class of nations that are in Europe.
+  fun EuropeanNation : Class ;
+  fun EuropeanNation_Class : SubClass EuropeanNation Nation ;
+
+  -- The state of being happy about a state of 
+  -- affairs that might occur in the future.
+  fun Excitement : Ind EmotionalState ;
+
+  -- Killing of a Human by a Government for 
+  -- the commission of a CriminalAction.
+  fun Execution : Class ;
+  fun Execution_Class : SubClass Execution Killing ;
+
+  -- A Residence of a chiefOfState, e.g. 
+  -- the White House, a state governor's mansion, Buckingham Palace, etc.
+  fun ExecutiveResidence : Class ;
+  fun ExecutiveResidence_Class : SubClass ExecutiveResidence PermanentResidence ;
+
+  -- Any instance of Breathing where the breath is 
+  -- expelled from the Lungs.
+  fun Exhaling : Class ;
+  fun Exhaling_Class : SubClass Exhaling Breathing ;
+
+  -- Any sudden and massive release of energy that is 
+  -- the product of a chemical reaction.
+  fun Explosion : Class ;
+  fun Explosion_Class : SubClass Explosion Radiating ;
+
+  -- A Device whose purpose is to explode. Note 
+  -- that ExplosiveDevice is not a subclass of Weapon, since explosives can be 
+  -- used in demolition work and in fireworks displays, for example.
+  fun ExplosiveDevice : Class ;
+  fun ExplosiveDevice_Class : SubClass ExplosiveDevice Device ;
+
+  -- An ExplosiveDevice which is designed to 
+  -- explode when there is movement over it, e.g. by a person on foot, by a 
+  -- RoadVehicle, etc.
+  fun ExplosiveMine : Class ;
+  fun ExplosiveMine_Class : SubClass ExplosiveMine (both ExplosiveDevice Weapon) ;
+
+  -- Any Substance which is capable of exploding.
+  fun ExplosiveSubstance : Class ;
+  fun ExplosiveSubstance_Class : SubClass ExplosiveSubstance Substance ;
+
+  -- Expressing favor about a physical thing 
+  -- or a state of affairs.
+  fun ExpressingApproval : Class ;
+  fun ExpressingApproval_Class : SubClass ExpressingApproval Expressing ;
+
+  -- Expressing disfavor about a physical 
+  -- thing or a state of affairs.
+  fun ExpressingDisapproval : Class ;
+  fun ExpressingDisapproval_Class : SubClass ExpressingDisapproval Expressing ;
+
+  -- Any instance of Expressing an acknowledgment 
+  -- of a person's departure. Note that this class is not a subclass of 
+  -- LinguisticCommunication, because it covers gestures of departure, e.g. Waving 
+  -- and Nodding in certain circumstances.
+  fun ExpressingFarewell : Class ;
+  fun ExpressingFarewell_Class : SubClass ExpressingFarewell Expressing ;
+
+  -- Any instance of Expressing that is also an 
+  -- instance of LinguisticCommunication, e.g. thanking someone, expressing condolence, 
+  -- expressing disapproval with an utterance rather than a Gesture, etc.
+  fun ExpressingInLanguage : Class ;
+  fun ExpressingInLanguage_Class : SubClass ExpressingInLanguage (both Expressing LinguisticCommunication) ;
+
+  -- The Organ of sight.
+  fun Eye : Class ;
+  fun Eye_Class : SubClass Eye (both AnimalAnatomicalStructure Organ) ;
+
+  -- A lens or pair of lenses with or without frames whose 
+  -- purpose is to to correct a defect in vision. This class covers ordinary eye 
+  -- glasses, reading glasses, contact lenses, monocles, etc.
+  fun EyeGlass : Class ;
+  fun EyeGlass_Class : SubClass EyeGlass OpticalDevice ;
+
+  -- Any Motion where a patient is the agent's 
+  -- own Eyelid or Eyelids.
+  fun EyeMotion : Class ;
+  fun EyeMotion_Class : SubClass EyeMotion BodyMotion ;
+
+  -- Folds of Skin that can be manipulated to 
+  -- cover or uncover Eyes.
+  fun Eyelid : Class ;
+  fun Eyelid_Class : SubClass Eyelid Skin ;
+
+  -- The part of the Head from forehead to chin and 
+  -- from ear to ear.
+  fun Face : Class ;
+  fun Face_Class : SubClass Face (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Any Gesture whose instrument is the Face.
+  fun FacialExpression : Class ;
+  fun FacialExpression_Class : SubClass FacialExpression Gesture ;
+
+  -- Hair that grows on the Face. This 
+  -- class covers beards, mustaches, sideburns, midnight shadow, etc.
+  fun FacialHair : Class ;
+  fun FacialHair_Class : SubClass FacialHair Hair ;
+
+  -- The class of Statements that are True.
+  fun Fact : Class ;
+  fun Fact_Class : SubClass Fact Statement ;
+
+  -- A Building intended to house a process that 
+  -- produces goods of some value.
+  fun Factory : Class ;
+  fun Factory_Class : SubClass Factory Building ;
+
+  -- The SeasonOfYear that begins at the autumnal 
+  -- equinox and ends at the winter solstice.
+  fun FallSeason : Class ;
+  fun FallSeason_Class : SubClass FallSeason SeasonOfYear ;
+
+  -- The process of transitioning from a state of 
+  -- being Awake to a state of being Asleep.
+  fun FallingAsleep : Class ;
+  fun FallingAsleep_Class : SubClass FallingAsleep PsychologicalProcess ;
+
+  -- Radioactive powder that is typically dispersed by 
+  -- the explosion of a nuclear weapon.
+  fun Fallout : Class ;
+  fun Fallout_Class : SubClass Fallout Powder ;
+
+  -- A Partnership that is owned by a single 
+  -- family.
+  fun FamilyBusiness : Class ;
+  fun FamilyBusiness_Class : SubClass FamilyBusiness Partnership ;
+
+  -- A CoolingDevice which consists simply of one or more 
+  -- blades that circulate the air. Note that this class covers both electrical fans 
+  -- and fans that are manually operated.
+  fun FanDevice : Class ;
+  fun FanDevice_Class : SubClass FanDevice CoolingDevice ;
+
+  -- A StationaryArtifact consisting of a cultivated 
+  -- LandArea and Buildings for maintaining the land and/or the Animals 
+  -- on the land.
+  fun Farm : Class ;
+  fun Farm_Class : SubClass Farm StationaryArtifact ;
+
+  -- A Building on a Farm that is used for keeping 
+  -- DomesticAnimals, Fodder or harvested crops.
+  fun FarmBuilding : Class ;
+  fun FarmBuilding_Class : SubClass FarmBuilding Building ;
+
+  -- OccupationalTrades which involve Agriculture.
+  fun FarmHand : Ind OccupationalTrade ;
+
+  -- Operating a farm, e.g. planting and harvesting crops, 
+  -- tending livestock, etc.
+  fun Farming : Class ;
+  fun Farming_Class : SubClass Farming Working ;
+
+  -- Each instance of this class is one of the structures 
+  -- that make up the external covering of Birds.
+  fun Feather : Class ;
+  fun Feather_Class : SubClass Feather (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Giving Food to a Human or Animal.
+  fun Feeding : Class ;
+  fun Feeding_Class : SubClass Feeding Giving ;
+
+  -- A Cow that is Female.
+  fun FemaleCow : Class ;
+  def FemaleCow = KappaFn Cow (\COW -> attribute (var Cow Object ? COW) (el SexAttribute Attribute ? Female)) ;
+
+  -- A StationaryArtifact that serves to demarcate or
+  -- to prevent access to or from the area that the Fence surrounds.
+  fun Fence : Class ;
+  fun Fence_Class : SubClass Fence StationaryArtifact ;
+
+  -- Having a body temperature which is (significantly) greater 
+  -- than 98.6 degrees Fahrenheit. This syndrome is often associated with dehydration 
+  -- and chills.
+  fun Fever : Ind DiseaseOrSyndrome ;
+
+  -- A LandArea that has been cleared of BotanicalTrees. 
+  -- Note that a Field is not necessarily used for the cultivation of crops and 
+  -- that a Field may be very small, e.g. Lawn is a subclass of Field.
+  fun Field : Class ;
+  fun Field_Class : SubClass Field LandArea ;
+
+  -- The study of legal principles and the framework of national 
+  -- and/or international laws.
+  fun FieldOfLaw : Ind FieldOfStudy ;
+
+  -- Any high_speed MilitaryAircraft whose purpose is 
+  -- to destroy enemy MilitaryAircraft.
+  fun Fighter : Class ;
+  fun Fighter_Class : SubClass Fighter MilitaryAircraft ;
+
+  -- A Device whose purpose is to make something 
+  -- smoother. For example, a nail file is used to even out the tips of one's 
+  -- finger nails.
+  fun FileDevice : Class ;
+  fun FileDevice_Class : SubClass FileDevice Device ;
+
+  -- Positions which involve directing MotionPictures.
+  fun FilmDirector : Class ;
+  fun FilmDirector_Class : SubClass FilmDirector FilmMakingProfession ;
+
+  -- ContentDevelopment where the result is a 
+  -- MotionPicture.
+  fun FilmMaking : Class ;
+  fun FilmMaking_Class : SubClass FilmMaking ContentDevelopment ;
+
+  -- Positions which involve FilmMaking, 
+  -- i.e. acting in films, directing films, producing films, etc.
+  fun FilmMakingProfession : Class ;
+  fun FilmMakingProfession_Class : SubClass FilmMakingProfession EntertainmentProfession ;
+
+  -- Positions which involve producing MotionPictures, 
+  -- i.e arranging the financing for the MotionPicture and supervising its production.
+  fun FilmProducer : Class ;
+  fun FilmProducer_Class : SubClass FilmProducer FilmMakingProfession ;
+
+  -- A Device whose purpose is to remove part of a 
+  -- Solution that is passed through the Filter.
+  fun Filter : Class ;
+  fun Filter_Class : SubClass Filter Device ;
+
+  -- A formal banking, brokerage, or business relationship 
+  -- established to provide for regular services, dealings, and other financial 
+  -- transactions.
+  fun FinancialAccount : Class ;
+
+  -- Any item of economic value owned by an individual or 
+  -- corporation, especially that which could be converted to cash. Examples are cash, 
+  -- securities, accounts receivable, inventory, office equipment, a house, a car, and 
+  -- other property.
+  fun FinancialAsset : Class ;
+
+  -- A brief statement that the stated amount 
+  -- of money is owed by the person to whom the bill is delivered.
+  fun FinancialBill : Class ;
+  fun FinancialBill_Class : SubClass FinancialBill FinancialText ;
+
+  -- The class FinancialCompany 
+  -- includes, as subclasses, FinancialBank, CreditUnion and SavingsAndLoan.
+  fun FinancialCompany : Class ;
+  fun FinancialCompany_Class : SubClass FinancialCompany CommercialAgent ;
+
+  -- Services performed by a
+  -- FinancialCompany.
+  fun FinancialService : Class ;
+  fun FinancialService_Class : SubClass FinancialService CommercialService ;
+
+  -- A Report about monetary figures. This 
+  -- class covers FinancialBills, balance sheets, account statements, etc.
+  fun FinancialText : Class ;
+  fun FinancialText_Class : SubClass FinancialText Report ;
+
+  -- Any Funding which is provided by a FinancialCompany 
+  -- with the aim of making a profit on the money invested.
+  fun Financing : Class ;
+  fun Financing_Class : SubClass Financing (both FinancialService Funding) ;
+
+  -- The five extremities of Hands.
+  fun Finger : Class ;
+  fun Finger_Class : SubClass Finger DigitAppendage ;
+
+  -- That pattern of arches, loops, and whorls that mark 
+  -- the imprint of a Finger.
+  fun Fingerprint : Class ;
+  fun Fingerprint_Class : SubClass Fingerprint (both BiologicalAttribute ShapeAttribute) ;
+
+  -- Any Quantity that is limited or bounded in 
+  -- magnitude.
+  fun FiniteQuantity : Class ;
+  fun FiniteQuantity_Class : SubClass FiniteQuantity Quantity ;
+
+  -- A Gun that is small enough to be carried and fired by 
+  -- a single Human.
+  fun Firearm : Class ;
+  fun Firearm_Class : SubClass Firearm Gun ;
+
+  -- A Device in a Building which is used for burning wood, 
+  -- coal, etc for heat.
+  fun Fireplace : Class ;
+  fun Fireplace_Class : SubClass Fireplace (both Device StationaryArtifact) ;
+
+  -- (FirstFn ?LIST) returns the first item in 
+  -- the List ?LIST. For example, (FirstFn (ListFn Monday Tuesday 
+  -- Wednesday)) would return the value of Monday.
+  fun FirstFn : El List -> Ind Entity ;
+
+  -- Meat that was originally part of a Fish.
+  fun FishMeat : Class ;
+  fun FishMeat_Class : SubClass FishMeat Meat ;
+
+  -- The BodyPosition of having the fingers drawn into 
+  -- the palm so that the hand can be used for striking something.
+  fun Fist : Ind BodyPosition ;
+
+  -- An Icon made of Fabric that refers to a particular 
+  -- GeopoliticalArea.
+  fun Flag : Class ;
+  fun Flag_Class : SubClass Flag Icon ;
+
+  -- A three dimensional object for which
+  -- two dimensions are markedly larger than the third the
+  -- two larger dimensions are also not of markedly different length.
+  fun Flat : Ind ShapeAttribute ;
+
+  -- Flooding is the subclass of LiquidMotion 
+  -- processes in which the water level of a Waterway rises or water spreads 
+  -- over a flood plain along a Waterway.
+  fun Flooding : Class ;
+  fun Flooding_Class : SubClass Flooding LiquidMotion ;
+
+  -- A StationaryArtifact that is the bottom surface 
+  -- of a Room.
+  fun Floor : Class ;
+  fun Floor_Class : SubClass Floor StationaryArtifact ;
+
+  -- A Powder that is prepared from CerealGrain, e.g. 
+  -- wheat flour, rice flour, etc. Flour is most often used in the making 
+  -- of BreadOrBiscuits.
+  fun Flour : Class ;
+  fun Flour_Class : SubClass Flour (both Powder PreparedFood) ;
+
+  -- The reproductive organ of FloweringPlants.
+  fun Flower : Class ;
+  fun Flower_Class : SubClass Flower (both Organ PlantAnatomicalStructure) ;
+
+  -- A Container which is used to store Fluids, 
+  -- i.e. Liquids and Gases.
+  fun FluidContainer : Class ;
+  fun FluidContainer_Class : SubClass FluidContainer Container ;
+
+  -- Insects with Wings and two Limbs.
+  fun FlyInsect : Class ;
+  fun FlyInsect_Class : SubClass FlyInsect Insect ;
+
+  -- Any instance of Translocation which is through an 
+  -- AtmosphericRegion and which is powered by the wings of an Animal.
+  fun Flying : Class ;
+  fun Flying_Class : SubClass Flying Translocation ;
+
+  -- Altering the relative distance of a Lens 
+  -- so that a visual image is sharper.
+  fun Focusing : Class ;
+  fun Focusing_Class : SubClass Focusing QuantityChange ;
+
+  -- Any WaterCloud that is in contact with the ground.
+  fun Fog : Class ;
+  fun Fog_Class : SubClass Fog WaterCloud ;
+
+  -- Bending something in such a way that one part of 
+  -- it covers another part.
+  fun Folding : Class ;
+  fun Folding_Class : SubClass Folding ShapeChange ;
+
+  -- The lower part of a Limb, the part which makes contact 
+  -- with the ground in locomotion of the Animal.
+  fun Foot : Class ;
+  fun Foot_Class : SubClass Foot (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- FormOfGovernment is a class of 
+  -- Attributes used to describe the characteristics of a government, 
+  -- especially a NationalGovernment. The concept FormOfGovernment is 
+  -- interpreted broadly enough to include Anarchy and Factionalism.
+  fun FormOfGovernment : Class ;
+  fun FormOfGovernment_Class : SubClass FormOfGovernment PoliticoEconomicAttribute ;
+
+  -- A page or set of pages containing spaces where 
+  -- information is to be entered by an Agent.
+  fun FormText : Class ;
+  fun FormText_Class : SubClass FormText Text ;
+
+  -- Any Meeting which is the result of Planning 
+  -- and whose purpose is not socializing.
+  fun FormalMeeting : Class ;
+  fun FormalMeeting_Class : SubClass FormalMeeting Meeting ;
+
+  -- FossilFuel is the subclass of Fuel whose 
+  -- instances are derived from fossilized organic deposits, such as Coal 
+  -- and LiquefiedPetroleumGas.
+  fun FossilFuel : Class ;
+  fun FossilFuel_Class : SubClass FossilFuel (both Fuel PetroleumProduct) ;
+
+  -- A SportsAttribute that indicates that the GamePiece of 
+  -- a Sport is no longer in play because it has gone beyond the limits of the 
+  -- sports field.
+  fun Foul : Ind SportsAttribute ;
+
+  -- Setting up an Organization.
+  fun Founding : Class ;
+  fun Founding_Class : SubClass Founding (both Declaring OrganizationalProcess) ;
+
+  -- Canines with a bushy tail and pointed ears and nose. 
+  -- Foxes tend to be much smaller than most DomesticDogs.
+  fun Fox : Class ;
+  fun Fox_Class : SubClass Fox Canine ;
+
+  -- An Attribute which indicates that the associated Object is very breakable.
+  fun Fragile : Ind BreakabilityAttribute ;
+
+  -- Any Atom which is not part of a Molecule.
+  fun FreeAtom : Class ;
+  fun FreeAtom_Class : SubClass FreeAtom Atom ;
+
+  -- A Romance language that is the official language 
+  -- of France and Belgium, and is widely spoken in Africa.
+  fun FrenchLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ; 
+
+  -- Any PsychologicalProcess where the patient comes to feel Anxiety.
+  fun Frightening : Class ;
+  fun Frightening_Class : SubClass Frightening PsychologicalProcess ;
+
+  -- Furrowing the forehead in such a way as to convey unhappiness.
+  fun Frowning : Class ;
+  fun Frowning_Class : SubClass Frowning FacialExpression ;
+
+  -- Fuel is the class of Substances that can be 
+  -- used as resources in Combustion processes in order to produce heat. 
+  -- Mechanical energy can be produced by burning fuel in an Engine.
+  fun Fuel : Class ;
+  fun Fuel_Class : SubClass Fuel Substance ;
+
+  -- Any Position where the employee is either 
+  -- salaried or paid for at least 40 hour of work per week.
+  fun FullTimePosition : Class ;
+  fun FullTimePosition_Class : SubClass FullTimePosition Position ;
+
+  -- Indicates that a Device is performing its 
+  -- intended function.
+  fun Functioning : Ind DeviceAttribute ;
+
+  -- A FormalMeeting whose purpose is to commemorate the Death of someone.
+  fun Funeral : Class ;
+  fun Funeral_Class : SubClass Funeral FormalMeeting ;
+
+  -- Any free_standing and movable Artifacts which are not which are
+  -- used in day_to_day living and designed to rest on the Floor of a Room.
+  fun Furniture : Class ;
+  fun Furniture_Class : SubClass Furniture Artifact ;
+
+  -- The process of transitioning from a state of being Unconscious to
+  -- a state of being Awake.
+  fun GainingConsciousness : Class ;
+  fun GainingConsciousness_Class : SubClass GainingConsciousness PsychologicalProcess ;
+
+  -- An Artifact that is designed to be used as an instrument in a Game.
+  fun GameArtifact : Class ;
+  fun GameArtifact_Class : SubClass GameArtifact Artifact ;
+
+  -- Any ContestAttribute that is specific to a Game.
+  fun GameAttribute : Class ;
+  fun GameAttribute_Class : SubClass GameAttribute ContestAttribute ;
+
+  -- A GameArtifact which is intended to be used as the 
+  -- game area for playing a particular game.
+  fun GameBoard : Class ;
+  fun GameBoard_Class : SubClass GameBoard GameArtifact ;
+
+  -- A decision issued by an official referee in a 
+  -- Game. Note that GameCall is a subclass of Declaring, because these 
+  -- decisions have binding, normative force.
+  fun GameCall : Class ;
+  fun GameCall_Class : SubClass GameCall (both Deciding Declaring) ;
+
+  -- A small cube with 1 to 6 dots on each face that is 
+  -- used to generate numbers at random in a Game.
+  fun GameDie : Class ;
+  fun GameDie_Class : SubClass GameDie GamePiece ;
+
+  -- The location where a GameShot must end up if it 
+  -- is to constitute a Score.
+  fun GameGoal : Class ;
+  fun GameGoal_Class : SubClass GameGoal GameArtifact ;
+
+  -- A GameArtifact that is moved around in a game 
+  -- area.
+  fun GamePiece : Class ;
+  fun GamePiece_Class : SubClass GamePiece GameArtifact ;
+
+  -- A position which involves adjudicating contested 
+  -- Maneuvers in a Game, i.e. deciding whether or not the Maneuvers are 
+  -- permitted by the rules of the Game.
+  fun GameReferee : Class ;
+  fun GameReferee_Class : SubClass GameReferee SkilledOccupation ;
+
+  -- Impelling a GamePiece for the purpose of 
+  -- scoring a point or preventing the opposing player or team from scoring 
+  -- a point. Note that this class does not cover shots which are disallowed 
+  -- by the rules of the game.
+  fun GameShot : Class ;
+  fun GameShot_Class : SubClass GameShot (both Impelling Maneuver) ;
+
+  -- A Building or part of a Building which is intended to house 
+  -- one or more Automobiles when they are not in use or are under
+  -- repair.
+  fun Garage : Class ;
+  fun Garage_Class : SubClass Garage StationaryArtifact ;
+
+  -- GasolineEngine is the subclass of 
+  -- InternalCombustionEngines that use Gasoline as their resource.
+  fun GasolineEngine : Class ;
+  fun GasolineEngine_Class : SubClass GasolineEngine InternalCombustionEngine ;
+
+  -- A Mollusk with a distinct head that has no 
+  -- shell (e.g. slugs) or a univalve shell (e.g. snails).
+  fun Gastropod : Class ;
+  fun Gastropod_Class : SubClass Gastropod Mollusk ;
+
+  -- GeneralElection is the subclass of 
+  -- Elections that are held at regular intervals and in which all or most 
+  -- constituencies of a GeopoliticalArea participate.
+  fun GeneralElection : Class ;
+  fun GeneralElection_Class : SubClass GeneralElection Election ;
+
+  -- A Germanic language that is spoken primarily in 
+  -- Germany and Austria.
+  fun GermanLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
+
+  -- A HumanChild who is Female.
+  fun Girl : Class ;
+  fun Girl_Class : SubClass Girl (both HumanChild Woman) ;
+
+  -- A transparent or translucent Mixture of silicates.
+  fun Glass : Class ;
+  fun Glass_Class : SubClass Glass Mixture ;
+
+  -- Clothing that is intended to be worn on the Hand. 
+  -- Note that this class covers both gloves which have individual compartments 
+  -- for each of the Fingers and mittens.
+  fun Glove : Class ;
+  fun Glove_Class : SubClass Glove Clothing ;
+
+  -- Any Mixture whose purpose is to be used as the instrument 
+  -- of Attaching one thing to another.
+  fun Glue : Class ;
+  fun Glue_Class : SubClass Glue Mixture ;
+
+  -- A DiseaseOrSyndrome which is due to an Iodine deficiency 
+  -- and which results in an enlarged ThyroidGland.
+  fun Goiter : Ind DiseaseOrSyndrome ;
+
+  -- A subclass of Bird with webbed feet and a long neck 
+  -- and a large body. These Birds are often raised for their Meat.
+  fun Goose : Class ;
+  fun Goose_Class : SubClass Goose Poultry ;
+
+  -- A building belonging to a Government
+  fun GovernmentBuilding : Class ;
+  fun GovernmentBuilding_Class : SubClass GovernmentBuilding Building ;
+
+  -- Any Profession where the position occupied 
+  -- is within a GovernmentOrganization.
+  fun GovernmentOfficer : Class ;
+  fun GovernmentOfficer_Class : SubClass GovernmentOfficer Profession ;
+
+  -- A person who works for a Government.
+  fun GovernmentPerson : Ind OccupationalRole ;
+
+  -- The class of Positions where the position holder 
+  -- is head of an adminstrative department of Government.
+  fun GovernmentSecretary : Class ;
+  fun GovernmentSecretary_Class : SubClass GovernmentSecretary SkilledOccupation ;
+
+  -- The head of the Government of an AmericanState.
+  fun Governor : Ind Position ;
+
+  -- A School which is devoted to a specific 
+  -- subject area, which admits students that have a bachelor's degree, which 
+  -- grants masters and/or doctorate degrees, and which is part of a University.
+  fun GraduateSchool : Class ;
+  fun GraduateSchool_Class : SubClass GraduateSchool PostSecondarySchool ;
+
+  -- An Icon which depicts one or more quantities.
+  fun GraphDiagram : Class ;
+  fun GraphDiagram_Class : SubClass GraphDiagram Icon ;
+
+  -- FloweringPlants with green, narrow leaves that are 
+  -- used for lawns and Fields. Grass includes any plant of the family 
+  -- Gramineae, a widely distributed group of mostly annual and perennial 
+  -- herbs.
+  fun Grass : Class ;
+  fun Grass_Class : SubClass Grass FloweringPlant ;
+
+  -- Insects with enormous legs that are used for 
+  -- jumping.
+  fun Grasshopper : Class ;
+  fun Grasshopper_Class : SubClass Grasshopper Insect ;
+
+  -- A SecondaryColor that results from mixing Black and 
+  -- White.
+  fun GrayColor : Ind SecondaryColor ;
+
+  -- An Indo_European language that is spoken in Greece.
+  fun GreekLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
+
+  -- A SecondaryColor that resembles the color of fresh 
+  -- grass.
+  fun Green : Ind SecondaryColor ;
+
+  -- Any instance of Expressing an acknowledgment of a 
+  -- person's arrival. Note that this class is not a subclass of ExpressingInLanguage, 
+  -- because it covers gestures of greeting, e.g. Waving and Nodding in certain 
+  -- circumstances.
+  fun Greeting : Class ;
+  fun Greeting_Class : SubClass Greeting Expressing ;
+
+  fun GroceryProduce : Class ;
+  fun GroceryProduce_Class : SubClass GroceryProduce (both FruitOrVegetable PlantAgriculturalProduct) ;
+
+  -- A RetailStore that sells Food, and perhaps 
+  -- other items as well.
+  fun GroceryStore : Class ;
+  fun GroceryStore_Class : SubClass GroceryStore RetailStore ;
+
+  -- Any Group which contains exclusively 
+  -- non_human members.
+  fun GroupOfAnimals : Class ;
+  fun GroupOfAnimals_Class : SubClass GroupOfAnimals Group ;
+
+  -- A StringInstrument that has six to twelve strings and 
+  -- is played by strumming with one hand while grasping frets with the other hand.
+  fun Guitar : Class ;
+  fun Guitar_Class : SubClass Guitar StringInstrument ;
+
+  -- A Weapon that shoots a Projectile.
+  fun Gun : Class ;
+  fun Gun_Class : SubClass Gun (both ProjectileLauncher Weapon) ;
+
+  -- The part of a Gun through which a Projectile travels 
+  -- when it is fired.
+  fun GunBarrel : Class ;
+  fun GunBarrel_Class : SubClass GunBarrel EngineeringComponent ;
+
+  -- A Mixture of potassium nitrate, sulfur, and 
+  -- charcoal that is used in ExplosiveDevices and to propell Projectiles 
+  -- in ProjectileWeapons.
+  fun GunPowder : Class ;
+  fun GunPowder_Class : SubClass GunPowder Mixture ;
+
+  -- The part of a Gun that is placed against the 
+  -- shoulder to absorb some of the recoil action when it is fired.
+  fun GunStock : Class ;
+  fun GunStock_Class : SubClass GunStock EngineeringComponent ;
+
+  -- The part of the Gun which is pulled in Shooting 
+  -- the Gun.
+  fun GunTrigger : Class ;
+  fun GunTrigger_Class : SubClass GunTrigger EngineeringComponent ;
+
+  -- A filament that covers part of the body of many 
+  -- Mammals.
+  fun Hair : Class ;
+  fun Hair_Class : SubClass Hair AnimalAnatomicalStructure ;
+
+  -- Removing (some or all) the Hair from the 
+  -- body of an Animal. Note that this covers shaving hair, cutting hair, 
+  -- pulling hair out by the roots, etc.
+  fun HairRemoval : Class ;
+  fun HairRemoval_Class : SubClass HairRemoval Removing ;
+
+  -- A Device that is used to pound Nails into a 
+  -- surface, where they become firmly attached.
+  fun Hammer : Class ;
+  fun Hammer_Class : SubClass Hammer Device ;
+
+  -- The grasping, fingered part of an upper limb of a 
+  -- Primate.
+  fun Hand : Class ;
+  fun Hand_Class : SubClass Hand (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Any Gesture which involves the Hands.
+  fun HandGesture : Class ;
+  fun HandGesture_Class : SubClass HandGesture Gesture ;
+
+  -- A hand grenade is a small explosive device
+  -- with a simple trigger mechanism, usually lasting a few seconds, designed
+  -- to be propelled by a human to its target.
+  fun HandGrenade : Class ;
+  fun HandGrenade_Class : SubClass HandGrenade Bomb ;
+
+  -- An attack in which a HandGrenade is 
+  -- employed as an explosive device for the purpose of Destruction.
+  -- A case in which a hand grenade is used as a blunt striking object in
+  -- an attack would not be in this class.
+  fun HandgrenadeAttack : Class ;
+  fun HandgrenadeAttack_Class : SubClass HandgrenadeAttack Bombing ;
+
+  -- The part or parts of an Artifact that are designed to be 
+  -- held with the Hands when the Artifact is used or carried.
+  fun Handle : Class ;
+  fun Handle_Class : SubClass Handle EngineeringComponent ;
+
+  -- The BodyPosition where one rests on one's hands 
+  -- and extends one's feet in the air.
+  fun Handstand : Ind BodyPosition ;
+
+  -- Suffocating someone by suspending him/her from 
+  -- a rope wound around the neck until asphyxiation occurs.
+  fun Hanging : Class ;
+  fun Hanging_Class : SubClass Hanging Suffocating ;
+
+  -- The state of being happy, experiencing pleasure, 
+  -- joy or contentment. Note that this Attribute covers both active enjoyment, 
+  -- as well as the emotional state of simply being free from anxiety or fear.
+  fun Happiness : Ind EmotionalState ;
+
+  -- Gathering the plant results of Agriculture.
+  fun Harvesting : Class ;
+  fun Harvesting_Class : SubClass Harvesting Removing ;
+
+  -- A type of Clothing that is worn on the Head. Note 
+  -- that this class covers caps, bonnets, berets, etc.
+  fun Hat : Class ;
+  fun Hat_Class : SubClass Hat Clothing ;
+
+  -- The part of the body containing the sense organs and 
+  -- the brain.
+  fun Head : Class ;
+  fun Head_Class : SubClass Head (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Pain that that is restricted to the Head.
+  fun Headache : Ind EmotionalState ;
+
+  -- Any VehicleLight which is attached to the front of a Vehicle.
+  fun Headlight : Class ;
+  fun Headlight_Class : SubClass Headlight VehicleLight ;
+
+  -- The Organ that pumps Blood throughout the body.
+  fun Heart : Class ;
+  fun Heart_Class : SubClass Heart (both AnimalAnatomicalStructure Organ) ;
+
+  -- A Device whose purpose is Heating something, 
+  -- e.g. electric heaters, heat lamps, ovens, stoves, etc.
+  fun HeatingDevice : Class ;
+  fun HeatingDevice_Class : SubClass HeatingDevice Device ;
+
+  -- Any Aircraft with rapidly rotating wings.
+  fun Helicopter : Class ;
+  fun Helicopter_Class : SubClass Helicopter Aircraft ;
+
+  -- A Female Chicken.
+  fun Hen : Class ;
+  def Hen = KappaFn Chicken (\H -> attribute (var Chicken Object ? H) (el SexAttribute Attribute ? Female)) ;
+
+  -- A plant_eating Mammal.
+  fun Herbivore : Class ;
+  fun Herbivore_Class : SubClass Herbivore Mammal ;
+
+  -- A School which admits students who have 
+  -- graduated from a middle school and which normally covers the ninth through 
+  -- twelfth grades. A HighSchool confers a high school diploma.
+  fun HighSchool : Class ;
+  fun HighSchool_Class : SubClass HighSchool School ;
+
+  -- Robbing a Vehicle and then driving
+  -- or piloting it away.
+  fun Hijacking : Class ;
+  fun Hijacking_Class : SubClass Hijacking Robbing ;
+
+  -- An EngineeringComponent that connects one thing to 
+  -- another in such a way that they can move relative to one another.
+  fun Hinge : Class ;
+  fun Hinge_Class : SubClass Hinge EngineeringComponent ;
+
+  -- A FactualAccount that describes 
+  -- significant events that occurred in the past.
+  fun HistoricalAccount : Class ;
+  fun HistoricalAccount_Class : SubClass HistoricalAccount (both FactualText NarrativeText) ;
+
+  -- The recording and interpretation of past events involving 
+  -- Humans, including political events and cultural practices.
+  fun History : Ind FieldOfStudy ;
+
+  -- HoistingDevice is a subclass of 
+  -- mechanical Devices that provide a mechanical advantage in lifting 
+  -- and lowering, e.g., by use of a block and tackle.
+  fun HoistingDevice : Class ;
+  fun HoistingDevice_Class : SubClass HoistingDevice MaterialHandlingEquipment ;
+
+  -- A large class of Devices whose purpose is to hold 
+  -- something else, i.e. be the instrument of a Keeping.
+  fun Holder : Class ;
+  fun Holder_Class : SubClass Holder Device ;
+
+  -- A stiff piece of Paper, usually folded over, which 
+  -- is sent to others in celebration of a Holiday.
+  fun HolidayCard : Class ;
+  fun HolidayCard_Class : SubClass HolidayCard ContentBearingObject ;
+
+  -- A Container for a Pistol. It is generally made of 
+  -- Leather and worn on either the shoulder or the waist.
+  fun Holster : Class ;
+  fun Holster_Class : SubClass Holster Container ;
+
+  -- The final BaseballBase which must be touched 
+  -- by the batter in order to achieve a BaseballRun.
+  fun HomeBase : Class ;
+  fun HomeBase_Class : SubClass HomeBase BaseballBase ;
+
+  -- An edible, sweet Substance produced by some species of 
+  -- Bees.
+  fun Honey : Class ;
+  fun Honey_Class : SubClass Honey (both AnimalSubstance Food) ;
+
+  -- The hard end of the Foot of a HoofedMammal.
+  fun Hoof : Class ;
+  fun Hoof_Class : SubClass Hoof (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A Hormone secreted by the ThyroidGland.
+  fun HormoneTSH : Class ;
+  fun HormoneTSH_Class : SubClass HormoneTSH Hormone ;
+
+  -- An outgrowth of Bone that is found on some 
+  -- HoofedMammals.
+  fun Horn : Class ;
+  fun Horn_Class : SubClass Horn Bone ;
+
+  -- A MusicalInstrument which is played by 
+  -- blowing it. It uses lip vibration to generates sound and control part 
+  -- of the pitch generation process as well.
+  fun HornInstrument : Class ;
+  fun HornInstrument_Class : SubClass HornInstrument MusicalInstrument ;
+
+  -- A domesticated HoofedMammal that is used for 
+  -- transportation and work.
+  fun Horse : Class ;
+  fun Horse_Class : SubClass Horse (both HoofedMammal Livestock) ;
+
+  -- Any instance of Carrying where the Animal is 
+  -- a Horse.
+  fun HorseRiding : Class ;
+  fun HorseRiding_Class : SubClass HorseRiding Carrying ;
+
+  -- A Building that serves at the place of business for
+  -- a HospitalOrganization.
+  fun HospitalBuilding : Class ;
+  fun HospitalBuilding_Class : SubClass HospitalBuilding TemporaryResidence ;
+
+  -- A CareOrganization where patients reside for a 
+  -- short period of time while they undergo treatment for a disease or disorder.
+  fun HospitalOrganization : Class ;
+  fun HospitalOrganization_Class : SubClass HospitalOrganization CareOrganization ;
+
+  -- An event in which one agent keeps another
+  -- against his or her will, in order to force it or a third agent to 
+  -- accede to some demand. The hostages are typically kept in the place
+  -- where they are first taken hostage, in contrast to a Kidnapping.
+  -- Hostage taking often involves a number of people (although it may be
+  -- just one), again, in contrast to a Kidnapping.
+  fun HostageTaking : Class ;
+  fun HostageTaking_Class : SubClass HostageTaking UnilateralGetting ;
+
+  -- A building which servers the purpose of a temporary
+  -- home for people, either for people who are travelling, or occasionally for
+  -- those who do not have another more permanent residence. A hotel is 
+  -- distinguished from a homeless shelter, or a residence loaned to a friend
+  -- in that the primary purpose of the building is to generate revenue in
+  -- return for the priviledge of staying there. Many hotels contains other 
+  -- facilities such as Restaurants or health clubs or even miscellaneous stores
+  -- although that is not their primary business or purpose.
+  fun Hotel : Class ;
+  fun Hotel_Class : SubClass Hotel (both Building TemporaryResidence) ;
+
+  -- A role occupied by a wife who manages the home 
+  -- while her husband earns income for the family.
+  fun Housewife : Ind SocialRole ;
+
+  -- The class of Humans that are 18 years of 
+  -- age or older.
+  fun HumanAdult : Class ;
+  fun HumanAdult_Class : SubClass HumanAdult Human ;
+
+  -- A Human between birth and the first year of age.
+  fun HumanBaby : Class ;
+  fun HumanBaby_Class : SubClass HumanBaby HumanChild ;
+
+  -- A HumanYouth between birth and puberty, i.e a 
+  -- Human who is NonFullyFormed.
+  fun HumanChild : Class ;
+  fun HumanChild_Class : SubClass HumanChild HumanYouth ;
+
+  -- A Dead thing which was formerly a Human.
+  fun HumanCorpse : Class ;
+  fun HumanCorpse_Class : SubClass HumanCorpse OrganicObject ;
+
+  -- A Human who is owned by someone else.
+  fun HumanSlave : Ind SocialRole ;
+
+  -- The class of Humans that are younger than 
+  -- 18 years of age.
+  fun HumanYouth : Class ;
+  fun HumanYouth_Class : SubClass HumanYouth Human ;
+
+  -- The Attribute that applies to Animals and Humans 
+  -- when they want Food.
+  fun Hungry : Ind BiologicalAttribute ;
+
+  -- Any OrganicCompound that contains only Carbon 
+  -- and Hydrogen.
+  fun Hydrocarbon : Class ;
+  fun Hydrocarbon_Class : SubClass Hydrocarbon OrganicCompound ;
+
+  -- The part of the Brain lying below the 
+  -- thalamus that serves to regulate AutonomicProcesses.
+  fun Hypothalamus : Class ;
+  fun Hypothalamus_Class : SubClass Hypothalamus (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Water that has the PhysicalState of Solid.
+  fun Ice : Class ;
+  def Ice = KappaFn Water (\ICE -> attribute (var Water Object ? ICE) (el PhysicalState Attribute ? Solid)) ;
+
+  -- A proposition is Illegal just in case it is inconsistent 
+  -- with any proposition that is a Law.
+  fun Illegal : Ind DeonticAttribute ;
+
+  -- Forming a mental picture of something which 
+  -- is not present.
+  fun Imagining : Class ;
+  fun Imagining_Class : SubClass Imagining PsychologicalProcess ;
+
+  -- Any Translocation by a Human from one Nation 
+  -- to another Nation where the person is not a citizen for the purpose of taking 
+  -- up residence.
+  fun Immigrating : Class ;
+  fun Immigrating_Class : SubClass Immigrating Translocation ;
+
+  -- The class of Confining processes where the detainee 
+  -- is put in Prison.
+  fun Imprisoning : Class ;
+  fun Imprisoning_Class : SubClass Imprisoning Confining ;
+
+  -- An attack in which an agent
+  -- uses a device which causes fire in order to destroy life or property.
+  fun IncendiaryDeviceAttack : Class ;
+  fun IncendiaryDeviceAttack_Class : SubClass IncendiaryDeviceAttack (both Combustion ViolentContest) ;
+
+  -- Moving one's body downward from a vertical position. 
+  -- Note that this class covers cases of leaning forward, as well as those of 
+  -- reclining backwards.
+  fun Inclining : Class ;
+  fun Inclining_Class : SubClass Inclining (both BodyMotion MotionDownward) ;
+
+  -- A Tax on annual income.
+  fun IncomeTax : Class ;
+  fun IncomeTax_Class : SubClass IncomeTax Tax ;
+
+  -- Pointing out a person, place or thing with 
+  -- one's hand or with an Artifact.
+  fun Indicating : Class ;
+  fun Indicating_Class : SubClass Indicating (both BodyMotion Communication) ;
+
+  -- Any Region which is enclosed by a Building.
+  fun Indoors : Ind Region ;
+
+  -- A Building or part of a Building or group 
+  -- of Buildings whose purpose is to Manufacture something.
+  fun IndustrialPlant : Class ;
+  fun IndustrialPlant_Class : SubClass IndustrialPlant StationaryArtifact ;
+
+  -- The class of Collections of Corporations 
+  -- which are in the same line of business.
+  fun Industry : Class ;
+  fun Industry_Class : SubClass Industry Collection ;
+
+  -- Any DiseaseOrSyndrome that is caused by a 
+  -- Microorganism.
+  fun InfectiousDisease : Class ;
+  fun InfectiousDisease_Class : SubClass InfectiousDisease DiseaseOrSyndrome ;
+
+  -- An event in which an agent joins an
+  -- organization under false pretenses. The objective of such an act
+  -- is often to gather information helpful to a rival organization.
+  fun Infiltration : Class ;
+  fun Infiltration_Class : SubClass Infiltration JoiningAnOrganization ;
+
+  -- Any Quantity that is not limited or bounded 
+  -- in magnitude.
+  fun InfiniteQuantity : Class ;
+  fun InfiniteQuantity_Class : SubClass InfiniteQuantity Quantity ;
+
+  -- Any instance of Breathing where the breath is 
+  -- taken into the Lungs.
+  fun Inhaling : Class ;
+  fun Inhaling_Class : SubClass Inhaling Breathing ;
+
+  -- Any UnilateralGetting where the agent 
+  -- receives some part of the property of a person upon the death of the 
+  -- person.
+  fun Inheriting : Class ;
+  fun Inheriting_Class : SubClass Inheriting UnilateralGetting ;
+
+  -- Inside is a PositionalAttribute used to 
+  -- describe the relative location of one object or region to another 
+  -- region. For example, (orientation Virginia UnitedStates Inside).
+  fun Inside : Ind PositionalAttribute ;
+
+  -- Putting a Device in a location and configuring 
+  -- the Device so that it can be used as intended after the installation.
+  fun Installing : Class ;
+  fun Installing_Class : SubClass Installing Putting ;
+
+  -- Music which is produced (at least in part) 
+  -- by a MusicalInstrument.
+  fun InstrumentalMusic : Class ;
+  fun InstrumentalMusic_Class : SubClass InstrumentalMusic Music ;
+
+  -- A Hormone secreted by the Pancreas that is used 
+  -- to regulate the metabolism of Carbohydrates.
+  fun Insulin : Class ;
+  fun Insulin_Class : SubClass Insulin Hormone ;
+
+  -- A CommercialAgent that insures Agents 
+  -- for the payment of a premium or premiums.
+  fun InsuranceCompany : Class ;
+  fun InsuranceCompany_Class : SubClass InsuranceCompany CommercialAgent ;
+
+  -- A Certificate that states the terms of an 
+  -- insurance contract.
+  fun InsurancePolicy : Class ;
+  fun InsurancePolicy_Class : SubClass InsurancePolicy Certificate ;
+
+  -- The FieldOfStudy of designing the interiors of Buildings.
+  fun InteriorDesign : Ind FieldOfStudy ;
+
+  -- InternalCombustionEngine is 
+  -- the subclass of Engines in which a heat reaction that occurs inside 
+  -- the engine is transformed into mechanical energy.
+  fun InternalCombustionEngine : Class ;
+  fun InternalCombustionEngine_Class : SubClass InternalCombustionEngine Engine ;
+
+  -- An Attribute that applies to Propositions 
+  -- that express Laws concerning the relations between Nations.
+  fun InternationalLaw : Ind DeonticAttribute ;
+
+  -- A FormalMeeting whose purpose is to acquire 
+  -- information from the interviewee that can be used in a media report.
+  fun Interviewing : Class ;
+  fun Interviewing_Class : SubClass Interviewing FormalMeeting ;
+
+  -- A BodyVessel which connects the Stomach to 
+  -- the anus and which is used in digesting Food.
+  fun Intestine : Class ;
+  fun Intestine_Class : SubClass Intestine (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- An item of value purchased for income or capital appreciation.
+  fun Investment : Class ;
+  fun Investment_Class : SubClass Investment FinancialAsset ;
+
+  -- An electronically charged Atom or Molecule. In 
+  -- other words, a PureSubstance that has lost one of its Electrons.
+  fun Ion : Class ;
+  fun Ion_Class : SubClass Ion PureSubstance ;
+
+  -- A very hard substance that makes up the tusks of 
+  -- elephants and walruses.
+  fun Ivory : Class ;
+  fun Ivory_Class : SubClass Ivory Bone ;
+
+  -- Any Position which involves cleaning a Building 
+  -- or some of the Rooms within a Building.
+  fun Janitor : Class ;
+  fun Janitor_Class : SubClass Janitor UnskilledOccupation ;
+
+  -- The Profession of being a news reporter, i.e. 
+  -- investigating and reporting, in a publication or broadcast program, current 
+  -- events.
+  fun Journalist : Class ;
+  fun Journalist_Class : SubClass Journalist Profession ;
+
+  -- An Attorney who has the power of deciding legal cases.
+  fun Judge : Class ;
+  fun Judge_Class : SubClass Judge (both Attorney GovernmentOfficer) ;
+
+  -- Any MotionUpward which is done by one's body 
+  -- and which results in a situation where one's feet are unsupported.
+  fun Jumping : Class ;
+  fun Jumping_Class : SubClass Jumping (both BodyMotion MotionUpward) ;
+
+  -- The class of PostSecondarySchools that 
+  -- offer an associate's degree and do not offer a bachelor's degree.
+  fun JuniorCollege : Class ;
+  fun JuniorCollege_Class : SubClass JuniorCollege PostSecondarySchool ;
+
+  -- A GroupOfPeople who are given the duty of rendering a 
+  -- verdict with respect to a LegalAction.
+  fun Jury : Class ;
+  fun Jury_Class : SubClass Jury GroupOfPeople ;
+
+  -- A Device which opens and closes a Lock.
+  fun Key : Class ;
+  fun Key_Class : SubClass Key SecurityDevice ;
+
+  -- Any instance of Impelling where the instrument 
+  -- is a Foot of the agent.
+  fun Kicking : Class ;
+  fun Kicking_Class : SubClass Kicking Impelling ;
+
+  -- An event in which one agent keeps another
+  -- against his or her will, in order to force it or a third agent to 
+  -- accede to some demand. The kidnapped party is normally removed from
+  -- the location where first attacked. In contrast to a HotageTaking,
+  -- a kidnapping normally involves an attack on one, or a very small 
+  -- number of people, such as a couple.
+  fun Kidnapping : Class ;
+  fun Kidnapping_Class : SubClass Kidnapping Robbing ;
+
+  -- An Organ that separates urine from other 
+  -- BodySubstances and passes it to the bladder.
+  fun Kidney : Class ;
+  fun Kidney_Class : SubClass Kidney (both AnimalAnatomicalStructure Organ) ;
+
+  -- The class of Touching processes where the lips 
+  -- of two persons are brought into contact with each other.
+  fun Kissing : Class ;
+  fun Kissing_Class : SubClass Kissing Touching ;
+
+  -- A Room intended for Cooking.
+  fun Kitchen : Class ;
+  fun Kitchen_Class : SubClass Kitchen Room ;
+
+  -- The joint in the Leg connecting the tibia and fibula 
+  -- with the femur.
+  fun Knee : Class ;
+  fun Knee_Class : SubClass Knee BodyJoint ;
+
+  -- The BodyPosition of resting one's weight on one's Knees.
+  fun Kneeling : Ind BodyPosition ;
+
+  -- A sharp object used for cutting. The object must 
+  -- have at least single blade or major protrusion which may be sharp at its 
+  -- end as well. It may be sharp on both sides, or just one. Unlike an awl 
+  -- it has a sharp edge rather than a point. Unlike scissors, it is a single 
+  -- blade without additional articulated parts. Unlike an axe, a knife is 
+  -- well_designed for slicing rather than chopping, although a heavy knife 
+  -- such as a broadsword can also be used for chopping, whereas a non_knife is 
+  -- not well designed for slicing meat for example. A knife can be small like 
+  -- a pocket knife, or large like a two_handed broadsword. A knife may also 
+  -- include other protrusions such as in the split swords and trident_like 
+  -- objects (that also possess a long sharp edge) in Chinese weaponry.
+  fun Knife : Class ;
+  fun Knife_Class : SubClass Knife CuttingDevice ;
+
+  -- An attack in which a knife is used.
+  fun KnifeAttack : Class ;
+  fun KnifeAttack_Class : SubClass KnifeAttack ViolentContest ;
+
+  -- A SocialRole that is assigned by the 
+  -- UnitedKingdom to persons for reasons of personal merit.
+  fun Knight : Ind SocialRole ;
+
+  -- Any joint in a Finger.
+  fun Knuckle : Class ;
+  fun Knuckle_Class : SubClass Knuckle BodyJoint ;
+
+  -- A very brief Text that is attached to an Object 
+  -- and that indicates very specific information about the Object, e.g. its 
+  -- name, its monetaryValue, etc.
+  fun Label : Class ;
+  fun Label_Class : SubClass Label Text ;
+
+  -- A Process in which some or all of the 
+  -- employees of an Organization refuse to work until their pay is 
+  -- increased or their working conditions are improved in some respect.
+  fun LaborStriking : Class ;
+  fun LaborStriking_Class : SubClass LaborStriking OrganizationalProcess ;
+
+  -- A Building, Room or suite of Rooms where 
+  -- scientific research, i.e. Experimenting, is conducted.
+  fun Laboratory : Class ;
+  fun Laboratory_Class : SubClass Laboratory StationaryArtifact ;
+
+  -- An Artifact which consists of two parallel supports 
+  -- connected by a series of rungs which can be used to ascend or descend.
+  fun Ladder : Class ;
+  fun Ladder_Class : SubClass Ladder Artifact ;
+
+  -- A young Sheep, i.e. a Sheep that is NonFullyFormed.
+  fun Lamb : Class ;
+  def Lamb = KappaFn Sheep (\L -> attribute (var Sheep Object ? L)
+                                            (el DevelopmentalAttribute Attribute ? NonFullyFormed)) ;
+
+  -- Any instance of Transportation where the 
+  -- instrument is a LandVehicle.
+  fun LandTransportation : Class ;
+  fun LandTransportation_Class : SubClass LandTransportation Transportation ;
+
+  -- LandVehicle is the class of TransportationDevices that travel on 
+  -- land. The two main types of LandVehicle are RoadVehicle and 
+  -- RailVehicle. Note that this includes vehicles which travel on any solid
+  -- surface, including a frozen body of water or snow.
+  fun LandVehicle : Class ;
+  fun LandVehicle_Class : SubClass LandVehicle Vehicle ;
+
+  -- Any instance of Translocation which ends up on something other 
+  -- than an AtmosphericRegion and which has an instance of Flying as a subProcess.
+  fun Landing : Class ;
+  fun Landing_Class : SubClass Landing Translocation ;
+
+  -- (LastFn ?LIST) returns the last item in the 
+  -- List ?LIST. For example, (LastFn (ListFn Monday Tuesday 
+  -- Wednesday)) would return the value of Wednesday.
+  fun LastFn : El List -> Ind Entity ;
+
+  -- A Language that was spoken in ancient Rome and 
+  -- is still the official language of the Vatican.
+  fun LatinLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
+
+  -- Expressing happiness by Vocalizing in a 
+  -- certain way.
+  fun Laughing : Class ;
+  fun Laughing_Class : SubClass Laughing (both FacialExpression Vocalizing) ;
+
+  -- Any RegulatoryProcess where the agent is either 
+  -- a PoliceOrganization or a member of a PoliceOrganization. This covers 
+  -- everything from issuing a traffic ticket to arresting someone on suspicion of having 
+  -- committed a Murder.
+  fun LawEnforcement : Class ;
+  fun LawEnforcement_Class : SubClass LawEnforcement (both PoliticalProcess RegulatoryProcess) ;
+
+  -- A CultivatedLandArea and Field 
+  -- containing mowed Grass.
+  fun Lawn : Class ;
+  fun Lawn_Class : SubClass Lawn (both CultivatedLandArea Field) ;
+
+  -- Any OrganismProcess where an Egg is expelled 
+  -- from the body of a Animal, e.g. a Bird or Reptile laying eggs.
+  fun LayingEggs : Class ;
+  fun LayingEggs_Class : SubClass LayingEggs OrganismProcess ;
+
+  -- A Fabric that is the result of tanning an Animal 
+  -- Skin.
+  fun Leather : Class ;
+  fun Leather_Class : SubClass Leather Fabric ;
+
+  -- The initial part of any instance of Translocation.
+  fun Leaving : Class ;
+  fun Leaving_Class : SubClass Leaving Translocation ;
+
+  -- Any instance of Speaking which is done before an 
+  -- assembled audience.
+  fun Lecture : Class ;
+  fun Lecture_Class : SubClass Lecture (both Demonstrating Speaking) ;
+
+  -- The lower Limbs of Primates.
+  fun Leg : Class ;
+  fun Leg_Class : SubClass Leg Limb ;
+
+  -- A proposition is Legal just in case it is not inconsistent 
+  -- with any proposition that is a Law.
+  fun Legal : Ind DeonticAttribute ;
+
+  -- Asking that a higher court reconsider a LegalDecision 
+  -- of a lower court.
+  fun LegalAppeal : Class ;
+  fun LegalAppeal_Class : SubClass LegalAppeal (both JudicialProcess Requesting) ;
+
+  -- Any LegalDecision where the defendant is found 
+  -- not to be guilty of the crime for which the corresponding trial was held.
+  fun LegalAquittal : Class ;
+  fun LegalAquittal_Class : SubClass LegalAquittal LegalDecision ;
+
+  -- Any LegalDecision which gives to the plaintiff of 
+  -- the corresponding LegalAction some amount of monetary compensation.
+  fun LegalAward : Class ;
+  fun LegalAward_Class : SubClass LegalAward LegalDecision ;
+
+  -- Any LegalAction of which a Government is 
+  -- the agent.
+  fun LegalCharge : Class ;
+  fun LegalCharge_Class : SubClass LegalCharge LegalAction ;
+
+  -- Any LegalDecision where the defendant is found 
+  -- guilty of the crime for which the corresponding trial was held.
+  fun LegalConviction : Class ;
+  fun LegalConviction_Class : SubClass LegalConviction LegalDecision ;
+
+  -- Any LegalDecision where the LegalAction of 
+  -- the plaintiff is dismissed by the court, e.g. for lack of merit.
+  fun LegalDismissal : Class ;
+  fun LegalDismissal_Class : SubClass LegalDismissal LegalDecision ;
+
+  -- An Argument that explains the reasoning behind a 
+  -- LegalDecision.
+  fun LegalOpinion : Class ;
+  fun LegalOpinion_Class : SubClass LegalOpinion Argument ;
+
+  -- An official order that a person appear at a 
+  -- CourtRoom at a specified time.
+  fun LegalSummons : Class ;
+  fun LegalSummons_Class : SubClass LegalSummons (both JudicialProcess Ordering) ;
+
+  -- The Attribute of being a proposed law, 
+  -- i.e. being under consideration by a legislative body of Government.
+  fun LegislativeBill : Ind DeonticAttribute ;
+
+  -- LegislativeOrganization is the 
+  -- class of Organizations that have as their main purpose the passing of 
+  -- laws or regulations.
+  fun LegislativeOrganization : Class ;
+  fun LegislativeOrganization_Class : SubClass LegislativeOrganization Organization ;
+
+  -- A citrus FruitOrVegetable that has a Yellow skin 
+  -- and a tart, acidic flavor.
+  fun LemonFruit : Class ;
+  fun LemonFruit_Class : SubClass LemonFruit (both Food FruitOrVegetable) ;
+
+  -- Increasing the length of something.
+  fun Lengthening : Class ;
+  fun Lengthening_Class : SubClass Lengthening Increasing ;
+
+  -- An OpticalDevice which consists of a polished, 
+  -- transparent piece of glass or plastic. Lenses are often part of 
+  -- other OpticalDevices.
+  fun Lens : Class ;
+  fun Lens_Class : SubClass Lens OpticalDevice ;
+
+  -- Any AbnormalAnatomicalStructure which is the result of 
+  -- an Injuring and which is found on the surface of an Organ.
+  fun Lesion : Class ;
+  fun Lesion_Class : SubClass Lesion AbnormalAnatomicalStructure ;
+
+  -- A brief message which is intended to be mailed 
+  -- to a person or Organization.
+  fun Letter : Class ;
+  fun Letter_Class : SubClass Letter FactualText ;
+
+  -- An attack with a bomb that is
+  -- concealed in a letter or package, which is typically designed to 
+  -- explode upon opening.
+  fun LetterBombAttack : Class ;
+  fun LetterBombAttack_Class : SubClass LetterBombAttack Bombing ;
+
+  -- The ShapeAttribute of Objects where no 
+  -- part of the top of the Object is higher than any other part of the 
+  -- top.
+  fun LevelShape : Ind ShapeAttribute ;
+
+  -- An EducationalOrganization which is a repository 
+  -- of Texts which have been classified for efficient retrieval.
+  fun Library : Class ;
+  fun Library_Class : SubClass Library EducationalOrganization ;
+
+  -- License is the subclass of Certificates that 
+  -- are granted by a GovernmentOrganization and that authorize the performance 
+  -- of a kind of action, e.g., driving, exporting, travelling to another 
+  -- country, etc.
+  fun License : Class ;
+  fun License_Class : SubClass License Certificate ;
+
+  -- The class of Touching processes where the Tongue 
+  -- is brought into contact with something else.
+  fun Licking : Class ;
+  fun Licking_Class : SubClass Licking Touching ;
+
+  -- A commissioned MilitaryOfficer.
+  fun Lieutenant : Class ;
+  fun Lieutenant_Class : SubClass Lieutenant MilitaryOfficer ;
+
+  -- The second_in_command of some Governments 
+  -- of AmericanStates.
+  fun LieutenantGovernor : Ind Position ;
+
+  -- Any Device whose purpose is to be a source of 
+  -- visible light.
+  fun LightFixture : Class ;
+  fun LightFixture_Class : SubClass LightFixture Device ;
+
+  -- A WeatherProcess which involves a significant 
+  -- release of electricity from a Cloud.
+  fun Lightning : Class ;
+  fun Lightning_Class : SubClass Lightning (both Radiating WeatherProcess) ;
+
+  -- A FloweringPlant that has large clusters of 
+  -- aromatic flowers.
+  fun Lilac : Class ;
+  fun Lilac_Class : SubClass Lilac FloweringPlant ;
+
+  -- Any of the limbs of a Vertebrate.
+  -- Animal Appendages with joints that are used for movement 
+  -- and grasping.
+  fun Limb : Class ;
+  fun Limb_Class : SubClass Limb (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A ShapeAttribute that applies to 
+  -- Collections and indicates that all of the members of the Collection 
+  -- are arrayed in a line, i.e. each member (except possibly the first) is 
+  -- behind or to the side of exactly one other member.
+  fun LineFormation : Ind ShapeAttribute ;
+
+  -- Any Attribute that is 
+  -- expressed by a Language or class of Languages.
+  fun LinguisticAttribute : Class ;
+  fun LinguisticAttribute_Class : SubClass LinguisticAttribute InternalAttribute ;
+
+  -- The field of linguistics.
+  fun Linguistics : Ind SocialScience ;
+
+  -- Folds of Tissue surrounding the mouths of some 
+  -- Vertebrates.
+  fun Lip : Class ;
+  fun Lip_Class : SubClass Lip (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- LiquefiedPetroleumGas is a 
+  -- compressed hydrocarbon gas.
+  fun LiquefiedPetroleumGas : Class ;
+  fun LiquefiedPetroleumGas_Class : SubClass LiquefiedPetroleumGas (both FossilFuel RefinedPetroleumProduct) ;
+
+  -- Any BodySubstance which is Liquid 
+  -- under normal circumstances.
+  fun LiquidBodySubstance : Class ;
+  fun LiquidBodySubstance_Class : SubClass LiquidBodySubstance BodySubstance ;
+
+  -- A UnitOfMeasure used in preparing AlcoholicBeverages.
+  fun LiquorShot : Ind UnitOfVolume ;
+
+  -- The ability to read and write. Someone who 
+  -- has this Attribute is able to read and write.
+  fun LiteracyAttribute : Ind TraitAttribute ;
+
+  -- The study of literature, i.e. instances of FictionalText 
+  -- that are regarded as having special merit.
+  fun Literature : Ind FieldOfStudy ;
+
+  -- An Organ that secretes bile and serves metabolic 
+  -- functions.
+  fun Liver : Class ;
+  fun Liver_Class : SubClass Liver (both AnimalAnatomicalStructure Organ) ;
+
+  -- Livestock is the class of live animals 
+  -- raised as AgriculturalProducts.
+  fun Livestock : Class ;
+  fun Livestock_Class : SubClass Livestock (both AnimalAgriculturalProduct DomesticAnimal) ;
+
+  -- Inserting ammunition into a ProjectileWeapon 
+  -- in such a way that the ammunition can be fired by the weapon.
+  fun LoadingWeapon : Class ;
+  fun LoadingWeapon_Class : SubClass LoadingWeapon Inserting ;
+
+  -- A Device, which, through a Key or a combination prevents 
+  -- access to a Container or StationaryArtifact.
+  fun Lock : Class ;
+  fun Lock_Class : SubClass Lock SecurityDevice ;
+
+  -- A three dimensional object that
+  -- has two thin dimensions and one markedly larger one.
+  fun LongAndThin : Ind ShapeAttribute ;
+
+  -- The process of transitioning from a state 
+  -- of being Awake to a state of being Unconscious.
+  fun LosingConsciousness : Class ;
+  fun LosingConsciousness_Class : SubClass LosingConsciousness PsychologicalProcess ;
+
+  -- The ContestAttribute that applies to a Contest 
+  -- participant who has lost the Contest.
+  fun Lost : Ind ContestAttribute ;
+
+  -- A respiratory organ of Vertebrates. Its function is 
+  -- to furnish the blood with oxygen and to remove carbon dioxide.
+  fun Lung : Class ;
+  fun Lung_Class : SubClass Lung (both AnimalAnatomicalStructure Organ) ;
+
+  -- The BodyMotion of moving from a Sitting 
+  -- to a Prostrate position.
+  fun LyingDown : Class ;
+  fun LyingDown_Class : SubClass LyingDown (both BodyMotion MotionDownward) ;
+
+  -- A lynching is a form of Killing conducted under 
+  -- a thin guise of legitimacy by a vigilante group. It may be a purge of an 
+  -- individual from the group who is perceived to have gone astray, or it may 
+  -- be the summary execution of an individual outside the group that the group 
+  -- has determined has violated some law or code, either of the group, or the 
+  -- larger society. A lynching is distinguished from a legal execution in 
+  -- that the laws of a government are not followed in carrying out the 
+  -- killing. A lynching is distinguished from a murder in that there is the 
+  -- pretense of some process carried out by a group in the name of their own 
+  -- group or a higher power.
+  fun Lynching : Class ;
+  fun Lynching_Class : SubClass Lynching Killing ;
+
+  -- Any Text which is intended to be sung.
+  fun Lyrics : Class ;
+  fun Lyrics_Class : SubClass Lyrics Text ;
+
+  -- A Periodical that is softbound and printed on 
+  -- glossy paper.
+  fun Magazine : Class ;
+  fun Magazine_Class : SubClass Magazine Periodical ;
+
+  -- Any instance of RadiatingElectromagnetic which 
+  -- involves the attraction of Iron.
+  fun Magnetism : Class ;
+  fun Magnetism_Class : SubClass Magnetism RadiatingElectromagnetic ;
+
+  -- Any ServicePosition where various needs of a person 
+  -- or family are served over a long period of time. Note that these Positions 
+  -- are, by definition, filled only by Women.
+  fun Maid : Class ;
+  fun Maid_Class : SubClass Maid ServicePosition ;
+
+  -- A Container whose purpose is to receive items 
+  -- that are mailed to the address associated with the Mailbox.
+  fun Mailbox : Class ;
+  fun Mailbox_Class : SubClass Mailbox Container ;
+
+  -- Any instance of Transfer where a postal system is 
+  -- used to move the patient, either a letter or a package.
+  fun Mailing : Class ;
+  fun Mailing_Class : SubClass Mailing Transfer ;
+
+  -- A CerealGrain which is found on long ears of a Plant 
+  -- native to the Americas.
+  fun MaizeGrain : Class ;
+  fun MaizeGrain_Class : SubClass MaizeGrain (both CerealGrain GroceryProduce) ;
+
+  -- A MilitaryGeneral that ranks above a BrigadierGeneral.
+  fun MajorGeneral : Class ;
+  fun MajorGeneral_Class : SubClass MajorGeneral MilitaryGeneral ;
+
+  -- Indicates that a Device is not performing 
+  -- its intended function.
+  fun Malfunctioning : Ind DeviceAttribute ;
+
+  -- A pipe which has several outlets for other pipes that flow 
+  -- into or out of it.
+  fun Manifold : Class ;
+  fun Manifold_Class : SubClass Manifold EngineeringComponent ;
+
+  -- Any Position which involves manual 
+  -- work.
+  fun ManualLabor : Class ;
+  fun ManualLabor_Class : SubClass ManualLabor Position ;
+
+  -- An Icon which represents one or more GeographicAreas 
+  -- (or even the entire Earth).
+  fun Map : Class ;
+  fun Map_Class : SubClass Map Icon ;
+
+  -- A metamorphic Rock that is used in Constructing 
+  -- and in creating Sculptures.
+  fun Marble : Class ;
+  fun Marble_Class : SubClass Marble Rock ;
+
+  -- An area, building, or set of buildings
+  -- where FinancialTransactions are intended to take place. There should
+  -- be more than one owner or renter of space or buildings within the
+  -- marketplace.
+  fun Marketplace : Class ;
+  fun Marketplace_Class : SubClass Marketplace GeographicArea ;
+
+  -- A Contract between a married couple 
+  -- about how assets owned by the couple will be distributed in the event 
+  -- that the couple is divorced.
+  fun MarriageContract : Ind DeonticAttribute ;
+
+  -- A PoliceOfficer whose responsibility is to enforce 
+  -- the decisions of a law court.
+  fun Marshal : Class ;
+  fun Marshal_Class : SubClass Marshal PoliceOfficer ;
+
+  -- A subclass of TherapeuticProcess which involves 
+  -- kneading Muscles in such a way that tension is relieved, blood circulation 
+  -- is increased, etc.
+  fun Massaging : Class ;
+  fun Massaging_Class : SubClass Massaging (both TherapeuticProcess Touching) ;
+
+  -- A large pole in the center of a WaterVehicle which is 
+  -- used to support a sail.
+  fun Mast : Class ;
+  fun Mast_Class : SubClass Mast Artifact ;
+
+  -- A small stick of carboard or wood that is treated 
+  -- with chemicals that can be easily ignited with friction. MatchDevices are 
+  -- used for starting fires.
+  fun MatchDevice : Class ;
+  fun MatchDevice_Class : SubClass MatchDevice Device ;
+
+  -- MaterialHandlingEquipment is a class of Devices that are equipment used for handling goods and 
+  -- supplies more efficiently or safely. Examples are cranes, hoists, forklifts, conveyors, racks, etc.
+  fun MaterialHandlingEquipment : Class ;
+  fun MaterialHandlingEquipment_Class : SubClass MaterialHandlingEquipment Device ;
+
+  -- The FieldOfStudy dealing with quantities and their 
+  -- relations to one another.
+  fun Mathematics : Ind FieldOfStudy ;
+
+  -- Any process of sexual intercourse between two Humans 
+  -- or Animals.
+  fun Mating : Class ;
+  fun Mating_Class : SubClass Mating OrganismProcess ;
+
+  -- The head of the Government of a City.
+  fun Mayor : Ind Position ;
+
+  -- MediaOrganization is the subclass 
+  -- of Organization for groups whose primary purpose is the production or 
+  -- dissemination of media content. For organizations that physically enable 
+  -- Communication, see CommunicationOrganization.
+  fun MediaOrganization : Class ;
+  fun MediaOrganization_Class : SubClass MediaOrganization Organization ;
+
+  -- A CareOrganization which provides medical care 
+  -- on an out_patient basis only, i.e. there are no rooms where patients may take 
+  -- up residence for a period of time while they receive care.
+  fun MedicalClinic : Class ;
+  fun MedicalClinic_Class : SubClass MedicalClinic CareOrganization ;
+
+  fun MedicalClinicBuilding : Class ;
+  fun MedicalClinicBuilding_Class : SubClass MedicalClinicBuilding Building ;
+
+  -- The Profession of being a medical doctor, 
+  -- i.e. having attended medical school and being licensed to practice medicine.
+  fun MedicalDoctor : Class ;
+
+  -- A GraduateSchool that is devoted to 
+  -- MedicalScience and that grants the degree of doctor of medicine.
+  fun MedicalSchool : Class ;
+  fun MedicalSchool_Class : SubClass MedicalSchool GraduateSchool ;
+
+  -- The field of medicine.
+  fun MedicalScience : Ind Science ;
+
+  -- Any BiologicallyActiveSubstance which has a 
+  -- therapeutic effect under certain conditions.
+  fun Medicine : Class ;
+  fun Medicine_Class : SubClass Medicine BiologicallyActiveSubstance ;
+
+  -- The process of committing a Text to memory.
+  fun Memorizing : Class ;
+  fun Memorizing_Class : SubClass Memorizing Learning ;
+
+  -- A periodic discharge of Blood and other 
+  -- BiologicalSubstances by Females that is part of a readjustment of 
+  -- the uterus.
+  fun Menstruation : Class ;
+  fun Menstruation_Class : SubClass Menstruation OrganOrTissueProcess ;
+
+  -- A FactualText which is intended to be delivered to 
+  -- and read by a Human, GroupOfPeople or Organization.
+  fun Message : Class ;
+  fun Message_Class : SubClass Message FactualText ;
+
+  -- Any instance of Transfer where a Message is the 
+  -- patient.
+  fun Messaging : Class ;
+  fun Messaging_Class : SubClass Messaging Transfer ;
+
+  -- A Mixture of two or more Metals, and possibly 
+  -- nonmetallic elements as well. For example, steel is an alloy containing iron 
+  -- and manganese.
+  fun MetallicAlloy : Class ;
+  fun MetallicAlloy_Class : SubClass MetallicAlloy Mixture ;
+
+  -- Any Meteoroid that leaves traces on the surface 
+  -- of Earth.
+  fun Meteorite : Class ;
+  fun Meteorite_Class : SubClass Meteorite Meteoroid ;
+
+  -- Any AstronomicalBody that breaks through the 
+  -- Atmosphere of Earth.
+  fun Meteoroid : Class ;
+  fun Meteoroid_Class : SubClass Meteoroid AstronomicalBody ;
+
+  -- MetricTon is a UnitOfMeasure that represents 
+  -- a weight of 2,205 PoundMass.
+  fun MetricTon : Ind UnitOfMass ;
+
+  -- A CommunicationDevice that converts sound 
+  -- into electrical energy.
+  fun Microphone : Class ;
+  fun Microphone_Class : SubClass Microphone (both CommunicationDevice ElectricDevice) ;
+
+  -- An OpticalDevice with a stand and a focus, which is 
+  -- used for magnifying the images of things that are placed in the stand.
+  fun Microscope : Class ;
+  fun Microscope_Class : SubClass Microscope OpticalDevice ;
+
+  -- A militant is someone who is not 
+  -- officially authorized by a government to engage in combat, but who
+  -- does so on behalf of a PoliticalOrganization.
+  fun Militant : Ind SocialRole ;
+
+  -- Any Aircraft which is made for a 
+  -- MilitaryOrganization. This includes fighters, Bombers, attack 
+  -- helicopters, etc.
+  fun MilitaryAircraft : Class ;
+  fun MilitaryAircraft_Class : SubClass MilitaryAircraft (both Aircraft MilitaryVehicle) ;
+
+  -- Any Artifact which is made for a 
+  -- MilitaryOrganization.
+  fun MilitaryArtifact : Class ;
+  fun MilitaryArtifact_Class : SubClass MilitaryArtifact Artifact ;
+
+  -- Any MilitaryUnit with the rank of 
+  -- corps.
+  fun MilitaryCorps : Class ;
+  fun MilitaryCorps_Class : SubClass MilitaryCorps MilitaryUnit ;
+
+  -- A GeographicArea along which opposing military 
+  -- forces confront one another in a Battle.
+  fun MilitaryFront : Class ;
+  fun MilitaryFront_Class : SubClass MilitaryFront GeographicArea ;
+
+  -- MilitaryGeneral is a generic Position 
+  -- that indicates holding (or having held) the rank of General in some 
+  -- military force. An indicator that someone uses the title, without 
+  -- committing to his or her exact rank or military affiliation.
+  fun MilitaryGeneral : Class ;
+  fun MilitaryGeneral_Class : SubClass MilitaryGeneral MilitaryOfficer ;
+
+  -- Any Process by a MilitaryOrganization 
+  -- which involves moving through enemy positions without detection by the enemy.
+  fun MilitaryInfiltration : Class ;
+  fun MilitaryInfiltration_Class : SubClass MilitaryInfiltration (both MilitaryProcess Translocation) ;
+
+  -- A StationaryArtifact consisting of grounds 
+  -- and Buildings that is intended to be used by a MilitaryOrganization.
+  fun MilitaryInstallation : Class ;
+  fun MilitaryInstallation_Class : SubClass MilitaryInstallation (both MilitaryArtifact StationaryArtifact) ;
+
+  -- Any Maneuver which takes place in a Battle 
+  -- and which is intended to secure a tactical advantage for one of the agents of 
+  -- the Battle.
+  fun MilitaryManeuver : Class ;
+  fun MilitaryManeuver_Class : SubClass MilitaryManeuver Maneuver ;
+
+  -- The class of Soldiers who have authority or command.
+  fun MilitaryOfficer : Class ;
+  fun MilitaryOfficer_Class : SubClass MilitaryOfficer Soldier ;
+
+  -- Someone who is a member of a
+  -- ModernMilitaryOrganization.
+  fun MilitaryPerson : Ind OccupationalRole ;
+
+  -- An enlisted Soldier of the lowest rank.
+  fun MilitaryPrivate : Class ;
+  fun MilitaryPrivate_Class : SubClass MilitaryPrivate Soldier ;
+
+  -- MilitaryReserveForce is the subclass 
+  -- of MilitaryOrganizations that consist of forces trained in military 
+  -- procedures and activities, which are subject to being called to active duty 
+  -- if needed.
+  fun MilitaryReserveForce : Class ;
+  fun MilitaryReserveForce_Class : SubClass MilitaryReserveForce MilitaryOrganization ;
+
+  -- The study of the principles of war.
+  fun MilitaryScience : Ind FieldOfStudy ;
+
+  -- A branch of the armed forces of a Nation. 
+  -- For example, there are five military services in the United States, the army, 
+  -- the navy, the air force, the marines, and the coast guard.
+  fun MilitaryService : Class ;
+  fun MilitaryService_Class : SubClass MilitaryService MilitaryOrganization ;
+
+  -- Any Ship which is made for a MilitaryOrganization. 
+  -- This includes aircraft carriers, destroyers, etc.
+  fun MilitaryShip : Class ;
+  fun MilitaryShip_Class : SubClass MilitaryShip (both MilitaryWaterVehicle Ship) ;
+
+  -- Any MilitaryUnit with the rank of squad.
+  fun MilitarySquad : Class ;
+  fun MilitarySquad_Class : SubClass MilitarySquad MilitaryUnit ;
+
+  -- Any MilitaryArtifact which is sold to a 
+  -- non_military customer.
+  fun MilitarySurplus : Class ;
+  fun MilitarySurplus_Class : SubClass MilitarySurplus MilitaryArtifact ;
+
+  -- A MilitaryVehicle that moves along the ground 
+  -- on treaded wheels and that contains a large cannon.
+  fun MilitaryTank : Class ;
+  fun MilitaryTank_Class : SubClass MilitaryTank (both ArtilleryGun (both MilitaryVehicle RoadVehicle)) ;
+
+  -- Any MilitaryOrganization that can be dispatched 
+  -- to an area of operations.
+  fun MilitaryUnit : Class ;
+  fun MilitaryUnit_Class : SubClass MilitaryUnit MilitaryOrganization ;
+
+  -- Any Vehicle which is intended to be 
+  -- used by a MilitaryOrganization. MilitaryVehicle Military platforms which are also vehicles. 
+  -- This would include things like airplanes and tanks, but exclude things like 
+  -- towed platforms.
+  fun MilitaryVehicle : Class ;
+  fun MilitaryVehicle_Class : SubClass MilitaryVehicle Vehicle ;
+
+  -- MilitaryWaterVehicle is the class of 
+  -- all WaterVehicle owned or leased for use by some MilitaryOrganization.
+  fun MilitaryWaterVehicle : Class ;
+  fun MilitaryWaterVehicle_Class : SubClass MilitaryWaterVehicle WaterVehicle ;
+
+  -- A nutritious BodySubstance produced by Mammals
+  -- that has evolved to provide nourishment for their offspring during
+  -- their initial period of life.
+  fun Milk : Class ;
+  fun Milk_Class : SubClass Milk (both Beverage LiquidBodySubstance) ;
+
+  -- The UnitOfDuration of 1000 years.
+  fun MillenniumDuration : Ind UnitOfDuration ;
+
+  -- An construction in the earth from which Minerals are removed, 
+  -- either in pure form or as part of ores.
+  fun Mine : Class ;
+  fun Mine_Class : SubClass Mine StationaryArtifact ;
+
+  -- MiningProduct is the class of things 
+  -- that are produced from the earth for human use by mining or another form 
+  -- of extraction. This includes metal ores, petroleum, and other products.
+  fun MiningProduct : Class ;
+  fun MiningProduct_Class : SubClass MiningProduct Product ;
+
+  -- An Artifact with a surface that is capable of 
+  -- displaying an image by reflecting light.
+  fun Mirror : Class ;
+  fun Mirror_Class : SubClass Mirror Artifact ;
+
+  -- A Projectile which is propelled by a rocket and 
+  -- contains a Bomb.
+  fun Missile : Class ;
+  fun Missile_Class : SubClass Missile (both Projectile SelfPoweredDevice) ;
+
+  -- The class of ReligiousOrganizations 
+  -- that send members to foreign countries with the aim of coverting citizens 
+  -- of those countries to the beliefs of the ReligiousOrganization.
+  fun MissionOrganization : Class ;
+  fun MissionOrganization_Class : SubClass MissionOrganization ReligiousOrganization ;
+
+  -- Anything which serves to house people but 
+  -- which changes its location from time to time, e.g. a motorhome, a mobile 
+  -- home, a camp, etc. Note that MobileResidence is disjoint from Residence, 
+  -- because the latter is a subclass of StationaryArtifact.
+  fun MobileResidence : Class ;
+  fun MobileResidence_Class : SubClass MobileResidence Artifact ;
+
+  -- Any Position which involves posing for an 
+  -- artist or photographer.
+  fun ModellingPosition : Class ;
+  fun ModellingPosition_Class : SubClass ModellingPosition Position ;
+
+  -- Music which has a single part, i.e. Music 
+  -- which cannot be divided into two or more contemporaneous subProcesses which 
+  -- are also instances of Music.
+  fun MonophonicMusic : Class ;
+  fun MonophonicMusic_Class : SubClass MonophonicMusic Music ;
+
+  -- A StationaryArtifact whose purpose is to commemorate 
+  -- a person, animal or event.
+  fun Monument : Class ;
+  fun Monument_Class : SubClass Monument StationaryArtifact ;
+
+  -- The class of TimeIntervals that begin at Sunrise 
+  -- and end at noon.
+  fun Morning : Class ;
+  fun Morning_Class : SubClass Morning DayTime ;
+
+  -- A mortar is a bomb that is shot at a location. A 
+  -- howitzer is a weapon that fires mortars. The mortar may not include the 
+  -- propelling charge that provides the motive force for delivering it to its 
+  -- target, which distinguishes it from a rocket. A mortar is distinguished 
+  -- from other bombs in that it is propelled rather than exploded in place, or 
+  -- dropped, or propelled by human power.
+  fun Mortar : Class ;
+  fun Mortar_Class : SubClass Mortar Weapon ;
+
+  -- An attack in which a Mortar weapon is
+  -- used.
+  fun MortarAttack : Class ;
+  fun MortarAttack_Class : SubClass MortarAttack Bombing ;
+
+  -- A short_range Gun that is positioned on the ground 
+  -- at a high angle and fires explosive shells.
+  fun MortarGun : Class ;
+  fun MortarGun_Class : SubClass MortarGun ArtilleryGun ;
+
+  -- Nocturnal Insect with a large body and antennae.
+  fun Moth : Class ;
+  fun Moth_Class : SubClass Moth Insect ;
+
+  -- A discrete part of a MotionPicture which is set in 
+  -- the same time period and the same location.
+  fun MotionPictureScene : Class ;
+  fun MotionPictureScene_Class : SubClass MotionPictureScene MotionPicture ;
+
+  -- A unit of action in a MotionPicture, a 
+  -- MotionPictureShot is a sequence of images which are captured by a single 
+  -- camera without interruption.
+  fun MotionPictureShot : Class ;
+  fun MotionPictureShot_Class : SubClass MotionPictureShot MotionPicture ;
+
+  -- Motorcycle is the subclass of RoadVehicles 
+  -- that have two wheels one behind the other in the frame, upon which the rider 
+  -- sits on a seat above the engine.
+  fun Motorcycle : Class ;
+  fun Motorcycle_Class : SubClass Motorcycle (both SelfPoweredRoadVehicle RoadVehicle) ;
+
+  -- MotorizedRailwayCar is the subclass 
+  -- of railway cars that carry their own power source.
+  fun MotorizedRailwayCar : Class ;
+  fun MotorizedRailwayCar_Class : SubClass MotorizedRailwayCar (both PoweredVehicle RollingStock) ;
+
+  -- Any BodyMotion which results in being On 
+  -- something else.
+  fun Mounting : Class ;
+  fun Mounting_Class : SubClass Mounting BodyMotion ;
+
+  -- A Rodent that has a hairless tail like a rat but that 
+  -- is smaller than a Rat.
+  fun Mouse : Class ;
+  fun Mouse_Class : SubClass Mouse Rodent ;
+
+  -- Part of the Face, used for Ingesting Food 
+  -- and Vocalizing.
+  fun Mouth : Class ;
+  fun Mouth_Class : SubClass Mouth (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- The process of changing one's residence, i.e. 
+  -- moving one's belongs to a new home.
+  fun MovingResidence : Class ;
+  fun MovingResidence_Class : SubClass MovingResidence Transfer ;
+
+  -- The product of a Male Donkey and a Female 
+  -- Horse. Mules are always sterile.
+  fun Mule : Class ;
+  fun Mule_Class : SubClass Mule (both DomesticAnimal HoofedMammal) ;
+
+  -- Impermissible Killing of a Human.
+  fun Murder : Class ;
+  fun Murder_Class : SubClass Murder (both CriminalAction Killing) ;
+
+  -- An EducationalOrganization where Artifacts of historic, 
+  -- scientific or aesthetic value are collected and exhibited.
+  fun Museum : Class ;
+  fun Museum_Class : SubClass Museum EducationalOrganization ;
+
+  -- An AudioRecording of Music. Note that
+  -- many AudioRecordings contain music, so only an audio recording without
+  -- any music would be an instance of AudioRecording rather than of 
+  -- MusicRecording.
+  fun MusicRecording : Class ;
+  fun MusicRecording_Class : SubClass MusicRecording AudioRecording ;
+
+  -- A Text in a Language that represents a form of music.
+  fun MusicText : Class ;
+  fun MusicText_Class : SubClass MusicText Text ;
+
+  -- A Text that expresses the notes, 
+  -- words, etc. of a song or other sort of Music.
+  fun MusicalComposition : Class ;
+  fun MusicalComposition_Class : SubClass MusicalComposition Text ;
+
+  -- A GroupOfPeople that create Music 
+  -- together.
+  fun MusicalGroup : Class ;
+  fun MusicalGroup_Class : SubClass MusicalGroup GroupOfPeople ;
+
+  -- A Performance that consists exclusively of 
+  -- Music, e.g. an orchestra playing a symphony to an assembled audience.
+  fun MusicalPerformance : Class ;
+  fun MusicalPerformance_Class : SubClass MusicalPerformance Performance ;
+
+  -- A Process of RadiatingSound where the
+  -- sound has a fundamental frequency and 0 or more partial frequencies
+  -- or unrelated transients or noise components that have a lesser
+  -- amplitude than the fundamental.
+  fun MusicalTone : Class ;
+  fun MusicalTone_Class : SubClass MusicalTone RadiatingSound ;
+
+  -- A Musician is someone who is capable of giving a MusicalPerformance.
+  -- This includes amateurs and others who don't formally make a living at the activity
+  -- or choose it as a profession.
+  fun Musician : Ind SocialRole ;
+
+  -- A FictionalText whose central plot element is a 
+  -- crime of some sort, usually a murder.
+  fun MysteryStory : Class ;
+  fun MysteryStory_Class : SubClass MysteryStory FictionalText ;
+
+  -- An AttachingDevice which is a thin piece of metal, with 
+  -- or without a head, that is fastened with a Hammer.
+  fun Nail : Class ;
+  fun Nail_Class : SubClass Nail AttachingDevice ;
+
+  -- Any of the horny structures which are found 
+  -- on the DigitAppendages of Primates and other Animals. This includes
+  -- fingernails and toenails.
+  fun NailDigit : Class ;
+  fun NailDigit_Class : SubClass NailDigit AnimalAnatomicalStructure ;
+
+  -- Any Text that tells a story, whether true 
+  -- or false.
+  fun NarrativeText : Class ;
+  fun NarrativeText_Class : SubClass NarrativeText Text ;
+
+  -- A Flag that is the official flag of a Nation, 
+  -- e.g. the stars and stripes is the NationalFlag of the UnitedStates.
+  fun NationalFlag : Class ;
+  fun NationalFlag_Class : SubClass NationalFlag Flag ;
+
+  -- The German PoliticalParty headed by Adolf Hitler.
+  fun NaziParty : Ind PoliticalParty ;
+
+  -- The part of the body that connects the Head to the 
+  -- rest of the body.
+  fun Neck : Class ;
+  fun Neck_Class : SubClass Neck (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A sweet, sticky liquid that is produced by Plants 
+  -- and that attracts Insects.
+  fun Nectar : Class ;
+  fun Nectar_Class : SubClass Nectar PlantSubstance ;
+
+  -- A Contest where each participant attempts to 
+  -- maximize his self_interest in a Promise that marks the end of the Contest.
+  fun Negotiating : Class ;
+  fun Negotiating_Class : SubClass Negotiating (both Contest LinguisticCommunication) ;
+
+  -- The Cells that make up a NervousSystem.
+  fun NerveCell : Class ;
+  fun NerveCell_Class : SubClass NerveCell (both AnimalAnatomicalStructure Cell) ;
+
+  -- Any structure which is created by nonhuman Animals for 
+  -- the purpose of giving birth to their offspring.
+  fun Nest : Class ;
+  fun Nest_Class : SubClass Nest CorpuscularObject ;
+
+  -- Any PsychologicalDysfunction which is not due 
+  -- to an organic impairment of the NervousSystem.
+  fun Neurosis : Class ;
+  fun Neurosis_Class : SubClass Neurosis PsychologicalDysfunction ;
+
+  -- The second and final part of the ChristianBible,
+  -- describing the life and teachings of Jesus Christ and the activities of his 
+  -- apostles.
+  fun NewTestament : Class ;
+  fun NewTestament_Class : SubClass NewTestament Book ;
+
+  -- A BroadcastProgram that is devoted to 
+  -- reporting the latest events in a city, region, nation or the world at 
+  -- large.
+  fun NewsProgram : Class ;
+  fun NewsProgram_Class : SubClass NewsProgram BroadcastProgram ;
+
+  -- The Profession of being a news reporter, i.e. 
+  -- investigating and reporting, in a publication or broadcast program, current 
+  -- events.
+  fun NewsReporter : Ind Profession ;
+
+  -- A Periodical that is published on a daily or 
+  -- weekly basis, that contains Reports, and whose issues are printed on 
+  -- newsprint paper.
+  fun Newspaper : Class ;
+  fun Newspaper_Class : SubClass Newspaper Periodical ;
+
+  -- The class of TimeIntervals that begin at Sunset
+  -- and end at Sunrise.
+  fun NightTime : Class ;
+  fun NightTime_Class : SubClass NightTime TimeInterval ;
+
+  -- Moving the Head up and down or side to side 
+  -- to indicate approval or disapproval.
+  fun Nodding : Class ;
+  fun Nodding_Class : SubClass Nodding Gesture ;
+
+  -- Any Organization whose purpose is something 
+  -- other than making a profit.
+  fun NonprofitOrganization : Class ;
+  fun NonprofitOrganization_Class : SubClass NonprofitOrganization Organization ;
+
+  -- The class of DiseaseOrSyndromes that are not 
+  -- caused by a single type of Microorganism.
+  fun NonspecificDisease : Class ;
+  fun NonspecificDisease_Class : SubClass NonspecificDisease DiseaseOrSyndrome ;
+
+  -- The Organ of Smelling.
+  fun Nose : Class ;
+  fun Nose_Class : SubClass Nose (both AnimalAnatomicalStructure Organ) ;
+
+  -- Either of two BodyVessels that run through the Nose 
+  -- and connect it to the Throat.
+  fun Nostril : Class ;
+  fun Nostril_Class : SubClass Nostril (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- A FictionalText that is larger than a ShortStory 
+  -- and that is bound independently (i.e. it is a Book).
+  fun Novel : Class ;
+  fun Novel_Class : SubClass Novel (both Book FictionalText) ;
+
+  -- A NuclearFamily is a SocialUnit composed
+  -- of at least two and not more than three generations of familyRelations:
+  -- parents, their children, and possibly the parents' parents (children's
+  -- grandparents).
+  fun NuclearFamily : Class ;
+  fun NuclearFamily_Class : SubClass NuclearFamily (both FamilyGroup SocialUnit) ;
+
+  -- An ExplosiveDevice and RadioactiveWeapon
+  -- which achieves its effect by means of a critical mass of a radioactive substance.
+  fun NuclearWeapon : Class ;
+  fun NuclearWeapon_Class : SubClass NuclearWeapon (both ExplosiveDevice (both RadioactiveWeapon Weapon)) ;
+
+  -- Any WoodArtifact that is made from the Wood of an oak tree.
+  fun OakWood : Class ;
+  fun OakWood_Class : SubClass OakWood WoodArtifact ;
+
+  -- A Device consisting of a flat, broad surface attached to a 
+  -- handle that is used as an instrument in Rowing.
+  fun Oar : Class ;
+  fun Oar_Class : SubClass Oar TransportationDevice ;
+
+  -- Any TwoDimensionalAngle that has an 
+  -- angularMeasure that is greater than 90 AngularDegrees.
+  fun ObliqueAngle : Class ;
+  fun ObliqueAngle_Class : SubClass ObliqueAngle TwoDimensionalAngle ;
+
+  -- (OccupationFn ?PROCESS) denotes the 
+  -- subclass of ?PROCESS where instances of ?PROCESS are performed as 
+  -- one's occupation, i.e. as part of a FinancialTransaction where one 
+  -- earns money for the performance of ?PROCESS.
+  fun OccupationFn : El IntentionalProcess -> Desc FinancialTransaction ;
+
+  -- A Role of a Human in a OrganizationalProcess.
+  fun OccupationalRole : Class ;
+  fun OccupationalRole_Class : SubClass OccupationalRole Position ;
+
+  -- Any Position that involves skilled manual work.
+  fun OccupationalTrade : Class ;
+  fun OccupationalTrade_Class : SubClass OccupationalTrade (both ManualLabor SkilledOccupation) ;
+
+  -- Offering to sell something to someone.
+  fun OfferingForSale : Class ;
+  fun OfferingForSale_Class : SubClass OfferingForSale Offering ;
+
+  -- Offering to buy something from someone.
+  fun OfferingToPurchase : Class ;
+  fun OfferingToPurchase_Class : SubClass OfferingToPurchase Offering ;
+
+  -- A building in which work activities take
+  -- place which is not primarily designed for manufacturing or retail sales.
+  fun OfficeBuilding : Class ;
+  fun OfficeBuilding_Class : SubClass OfficeBuilding Building ;
+
+  -- A greasy, viscous Solution that cannot be mixed with Water. 
+  -- Note that this general class covers petroleum oil, vegetable oil, animal fat, etc.
+  fun Oil : Class ;
+  fun Oil_Class : SubClass Oil Solution ;
+
+  -- Any Paint which is an oil_based Solution.
+  fun OilPaint : Class ;
+  fun OilPaint_Class : SubClass OilPaint Paint ;
+
+  -- Any OilPicture which is created 
+  -- with oil_based paints.
+  fun OilPicture : Class ;
+  fun OilPicture_Class : SubClass OilPicture PaintedPicture ;
+
+  -- The first part of the ChristianBible, describing 
+  -- the history of the Hebrew people.
+  fun OldTestament : Class ;
+  fun OldTestament_Class : SubClass OldTestament Book ;
+
+  -- An Ontology is a
+  -- ClassificationScheme that links concepts via many different
+  -- relations. Ontologies typically are not restricted to binary
+  -- relations and are structured by several kinds of conceptual
+  -- hierarchies, including set_ or class_based subsumption, spatial
+  -- containment, mereology
+  -- (theory of parts and wholes), and logical contexts. Thus,
+  -- an ontology typically includes multiple taxonomies.
+  fun Ontology : Class ;
+  fun Ontology_Class : SubClass Ontology ClassificationScheme ;
+
+  -- The Class of Processes where an aperture is 
+  -- created in an Object. Note that the aperture may be created intentionally, 
+  -- as when one opens a door, or unintentionally, as when the ground ruptures 
+  -- in a seismic event.
+  fun Opening : Class ;
+  fun Opening_Class : SubClass Opening Motion ;
+
+  -- The BodyMotion of relaxing the eye lids so that 
+  -- the corneas are exposed to light.
+  fun OpeningEyes : Class ;
+  fun OpeningEyes_Class : SubClass OpeningEyes (both EyeMotion Opening) ;
+
+  -- A DramaticPlay that is set to Music.
+  fun Opera : Class ;
+  fun Opera_Class : SubClass Opera DramaticPlay ;
+
+  -- A Device which enables someone to see something 
+  -- more clearly or with greater magnification.
+  fun OpticalDevice : Class ;
+  fun OpticalDevice_Class : SubClass OpticalDevice Device ;
+
+  -- A SecondaryColor that results from mixing Red 
+  -- and Yellow and resembles the color of a ripe orange fruit.
+  fun OrangeColor : Ind SecondaryColor ;
+
+  -- A citrus FruitOrVegetable that has an OrangeColor skin and a sweet, acidic flavor.
+  fun OrangeFruit : Class ;
+  fun OrangeFruit_Class : SubClass OrangeFruit (both Food FruitOrVegetable) ;
+
+  -- A GroupOfPeople that create InstrumentalMusic together.
+  fun Orchestra : Class ;
+  fun Orchestra_Class : SubClass Orchestra MusicalGroup ;
+
+  -- The Process of directing an orchestra.
+  fun OrchestralConducting : Class ;
+  fun OrchestralConducting_Class : SubClass OrchestralConducting Guiding ;
+
+  -- A Sentence that expresses an order for something or that something be done.
+  fun Order : Class ;
+  def Order = KappaFn Sentence (\SENTENCE -> exists Ordering (\ORDER -> result (var Ordering Process ? ORDER) (var Sentence Entity ? SENTENCE)));
+
+  -- Any CompoundSubstance that has a Carbon base.
+  fun OrganicCompound : Class ;
+  fun OrganicCompound_Class : SubClass OrganicCompound CompoundSubstance ;
+
+  -- Any BiologicalProcess that results in the formation of an Organ.
+  fun Organification : Class ;
+  fun Organification_Class : SubClass Organification OrganOrTissueProcess ;
+
+  -- Part of an Organization that 
+  -- is responsible for managing the Organization.
+  fun OrganizationalBoard : Class ;
+  fun OrganizationalBoard_Class : SubClass OrganizationalBoard Organization ;
+
+  -- The process of two or more 
+  -- Organizations merging into a single Organization.
+  fun OrganizationalMerging : Class ;
+  fun OrganizationalMerging_Class : SubClass OrganizationalMerging OrganizationalProcess ;
+
+  -- A method for representing the sounds of a Language 
+  -- with written Characters.
+  fun Orthography : Class ;
+  fun Orthography_Class : SubClass Orthography Procedure ;
+
+  -- Any BiologicalProcess that results in the 
+  -- formation of Bones.
+  fun Ossification : Class ;
+  fun Ossification_Class : SubClass Ossification OrganOrTissueProcess ;
+
+  -- Clothing that is intended to be worn outdoors.
+  fun OutdoorClothing : Class ;
+  fun OutdoorClothing_Class : SubClass OutdoorClothing Clothing ;
+
+  -- Any Region which is not enclosed by a Building 
+  -- or part of a Building.
+  fun Outdoors : Ind Region ;
+
+  -- The class of all Regions which are 
+  -- neither GeographicAreas nor AtmosphericRegions.
+  fun OuterSpaceRegion : Class ;
+  fun OuterSpaceRegion_Class : SubClass OuterSpaceRegion SpaceRegion ;
+
+  -- Outside is a PositionalAttribute used to 
+  -- describe the relative location of one object or region to another 
+  -- region. For example, (orientation Cuba UnitedStates Outside).
+  fun Outside : Ind PositionalAttribute ;
+
+  -- A HeatingDevice with a door for inserting and removing 
+  -- Food that is to undergo Baking.
+  fun Oven : Class ;
+  fun Oven_Class : SubClass Oven (both Container HeatingDevice) ;
+
+  -- A nocturnal bird of prey with a large head and 
+  -- forward_facing eyes.
+  fun Owl : Class ;
+  fun Owl_Class : SubClass Owl Bird ;
+
+  -- Any ChemicalProcess where Electrons 
+  -- are removed from the substance undergoing the ChemicalProcess.
+  fun Oxidation : Class ;
+  fun Oxidation_Class : SubClass Oxidation ChemicalDecomposition ;
+
+  -- A single page of Text.
+  fun Page : Ind UnitOfInformation ;
+
+  -- A physical sensation of discomfort which can vary widely 
+  -- in intensity.
+  fun Pain : Ind EmotionalState ;
+
+  -- Any Solution which is capable of Coloring something.
+  fun Paint : Class ;
+  fun Paint_Class : SubClass Paint Solution ;
+
+  -- Any ArtWork which is produced by Painting.
+  fun PaintedPicture : Class ;
+  fun PaintedPicture_Class : SubClass PaintedPicture ArtWork ;
+
+  -- The application of Paint to a surface. Note that 
+  -- this class covers both ArtPainting (the creation of PaintedPictures), as 
+  -- well as painting one's kitchen, for example.
+  fun Painting : Class ;
+  fun Painting_Class : SubClass Painting (both Coloring Covering) ;
+
+  -- A large Gland that secretes Insulin and other 
+  -- substances.
+  fun Pancreas : Class ;
+  fun Pancreas_Class : SubClass Pancreas Gland ;
+
+  -- Paper is a flat sheet of fibers, usually produced by 
+  -- spreading a wet solution of wood particles on a flat surface and drying 
+  -- through heat and pressure. The fibers can also be cotton or a synthetic, 
+  -- although typically the bulk of the substance is wood fibers. This 
+  -- includes all manner of paper products that may have varying thicknesses, 
+  -- colors or texture. This is distinguished from flat wood products such as 
+  -- plywood and particle board which have a structural function in building 
+  -- construction. Sheathing materials such as the paper affixed to sheetrock 
+  -- however, is paper.
+  fun Paper : Class ;
+  fun Paper_Class : SubClass Paper Artifact ;
+
+  -- A Text which consists of one or more sentences, 
+  -- begins with an indented line, and expresses a single topic.
+  fun Paragraph : Class ;
+  fun Paragraph_Class : SubClass Paragraph Text ;
+
+  -- A publicly owned LandArea which is intended to be used 
+  -- for recreation and/or exercise.
+  fun Park : Class ;
+  fun Park_Class : SubClass Park LandArea ;
+
+  -- A LandArea which has been levelled, paved, and 
+  -- marked off for parking Automobiles.
+  fun ParkingLot : Class ;
+  fun ParkingLot_Class : SubClass ParkingLot StationaryArtifact ;
+
+  -- Any Position where the employee is not 
+  -- salaried and is paid for less than 40 hours of work per week.
+  fun PartTimePosition : Class ;
+  fun PartTimePosition_Class : SubClass PartTimePosition Position ;
+
+  -- A CommercialAgent that is owned by more 
+  -- than one person.
+  fun Partnership : Class ;
+  fun Partnership_Class : SubClass Partnership CommercialAgent ;
+
+  -- A Text which is authored by a PoliticalParty 
+  -- and which contains the core goals and principles of the PoliticalParty for a 
+  -- particular year or election cycle.
+  fun PartyPlatform : Class ;
+  fun PartyPlatform_Class : SubClass PartyPlatform FactualText ;
+
+  -- A Certificate that allows the holder to 
+  -- be at or away from a specified location, e.g. a pass for a leave of 
+  -- absence, a hall pass, a pass to enter a cleared facility, etc.
+  fun PassCertificate : Class ;
+  fun PassCertificate_Class : SubClass PassCertificate Certificate ;
+
+  -- A Vehicle that is designed to
+  -- carry Humans. Note that Vehicles that are not designed to
+  -- carry people may still do so. For example, a boxcar might still
+  -- transport homeless people, but was not built to do so.
+  fun PassengerVehicle : Class ;
+  fun PassengerVehicle_Class : SubClass PassengerVehicle Vehicle ;
+
+  -- The Process of converting a LegislativeBill 
+  -- into Law by a duly authorized legislative body of Government.
+  fun PassingABill : Class ;
+  fun PassingABill_Class : SubClass PassingABill (both Declaring PoliticalProcess) ;
+
+  -- A License which identifies the holder and permits 
+  -- travel between different countries.
+  fun Passport : Class ;
+  fun Passport_Class : SubClass Passport License ;
+
+  -- A military deployment which is intended
+  -- to prevent hostilities between two other entities located in the same rough
+  -- geographic area.
+  fun PeaceKeepingMission : Class ;
+  fun PeaceKeepingMission_Class : SubClass PeaceKeepingMission MilitaryOrganization ;
+
+  -- A FruitOrVegetable that has a thick skin and the 
+  -- shape of a tear drop.
+  fun PearFruit : Class ;
+  fun PearFruit_Class : SubClass PearFruit (both Food FruitOrVegetable) ;
+
+  -- Removing the Skin (or part of the Skin) from 
+  -- an Organism. Note that this class covers a large range of cases, including 
+  -- peeling an orange, pelting an Animal, etc.
+  fun Peeling : Class ;
+  fun Peeling_Class : SubClass Peeling Removing ;
+
+  -- A WritingDevice that consists of an encased piece of 
+  -- graphite.
+  fun Pencil : Class ;
+  fun Pencil_Class : SubClass Pencil WritingDevice ;
+
+  -- A qualified retirement plan set up by a 
+  -- corporation, labor union, government, or other organization for its 
+  -- employees. Examples include profit_sharing plans, stock bonus and 
+  -- employee stock ownership plans, thrift plans, target benefit plans, 
+  -- money purchase plans, and defined benefit plans.
+  fun PensionPlan : Class ;
+  fun PensionPlan_Class : SubClass PensionPlan FinancialAccount ;
+
+  -- A MusicalInstrument which does not 
+  -- have strings and which is played by striking it.
+  fun PercussionInstrument : Class ;
+  fun PercussionInstrument_Class : SubClass PercussionInstrument MusicalInstrument ;
+
+  -- A Demonstrating which includes DramaticActing 
+  -- and/or Music and which is intended to entertain the audience.
+  fun Performance : Class ;
+  fun Performance_Class : SubClass Performance Demonstrating ;
+
+  -- A discrete subProcess of a Performance, 
+  -- e.g. an act of a play, a movement of a performance of a symphony, etc.
+  fun PerformanceAct : Class ;
+  fun PerformanceAct_Class : SubClass PerformanceAct Performance ;
+
+  -- A Text that describes the events 
+  -- and/or participants in a Performance.
+  fun PerformanceProgram : Class ;
+  fun PerformanceProgram_Class : SubClass PerformanceProgram FactualText ;
+
+  -- A large platform for theatrical plays, 
+  -- lectures, dances, music recitals, etc, which can be observed by an audience.
+  fun PerformanceStage : Class ;
+  fun PerformanceStage_Class : SubClass PerformanceStage StationaryArtifact ;
+
+  -- A part of the PerformanceStage that is not 
+  -- visible to members of the audience.
+  fun PerformanceStageWing : Class ;
+  fun PerformanceStageWing_Class : SubClass PerformanceStageWing StationaryArtifact ;
+
+  -- Any Publisher that publishes 
+  -- Periodicals, e.g. newspaper and magazine publishing houses.
+  fun PeriodicalPublisher : Class ;
+  fun PeriodicalPublisher_Class : SubClass PeriodicalPublisher Publisher ;
+
+  -- PetroleumProduct is a broad class that 
+  -- includes both crude oil (Petroleum) and RefinedPetroleumProducts.
+  fun PetroleumProduct : Class ;
+  fun PetroleumProduct_Class : SubClass PetroleumProduct (both MiningProduct Oil) ;
+
+  -- The Profession of being a pharmacist, i.e. 
+  -- preparing and dispensing BiologicallyActiveSubstances.
+  fun Pharmacist : Class ;
+  fun Pharmacist_Class : SubClass Pharmacist Profession ;
+
+  -- The study of first principles, including epistemology, 
+  -- metaphysics, and ethics.
+  fun Philosophy : Ind FieldOfStudy ;
+
+  -- An Icon that is the result of a process of Photographing.
+  fun Photograph : Class ;
+  fun Photograph_Class : SubClass Photograph Icon ;
+
+  -- Celluloid covered with an emulsion which can 
+  -- be converted into photographic negatives by a Camera.
+  fun PhotographicFilm : Class ;
+  fun PhotographicFilm_Class : SubClass PhotographicFilm Artifact ;
+
+  -- ContentDevelopment where the instrument 
+  -- is a camera and the result is a Photograph.
+  fun Photographing : Class ;
+  fun Photographing_Class : SubClass Photographing ContentDevelopment ;
+
+  -- The study of matter and energy and their relations.
+  fun Physics : Ind Science ;
+
+  -- The part of Biology dealing with the functioning of 
+  -- Organisms.
+  fun Physiology : Ind Science ;
+
+  -- A StringInstrument with keys that, when pressed down, 
+  -- activate hammers that, in turn, strike strings.
+  fun Piano : Class ;
+  fun Piano_Class : SubClass Piano StringInstrument ;
+
+  -- A frame which surrounds a PaintedPicture or 
+  -- Photograph and has the function of protecting and accenting the picture.
+  fun PictureFrame : Class ;
+  fun PictureFrame_Class : SubClass PictureFrame Artifact ;
+
+  -- A domesticated HoofedMammal that is raised for pork.
+  fun Pig : Class ;
+  fun Pig_Class : SubClass Pig (both HoofedMammal Livestock) ;
+
+  -- A subclass of Bird with a stout body and short legs.
+  fun Pigeon : Class ;
+  fun Pigeon_Class : SubClass Pigeon Bird ;
+
+  -- A soft, stuffed Artifact to support the Head or 
+  -- the body as a whole while one is sleeping or relaxing.
+  fun Pillow : Class ;
+  fun Pillow_Class : SubClass Pillow Artifact ;
+
+  -- A SecondaryColor that results from mixing Red and 
+  -- White.
+  fun Pink : Ind SecondaryColor ;
+
+  -- Pipeline is the class of pipelines used 
+  -- to transport various kinds of fluids.
+  fun Pipeline : Class ;
+  fun Pipeline_Class : SubClass Pipeline Transitway ;
+
+  -- A Firearm that is intended to be aimed and fired with a 
+  -- single hand.
+  fun Pistol : Class ;
+  fun Pistol_Class : SubClass Pistol Firearm ;
+
+  -- The place where the pitcher in Baseball 
+  -- stands when he is throwing balls to the batter.
+  fun PitchersMound : Class ;
+  fun PitchersMound_Class : SubClass PitchersMound GameArtifact ;
+
+  -- Throwing a Ball to the batter in a game of 
+  -- Baseball or softball.
+  fun Pitching : Class ;
+  fun Pitching_Class : SubClass Pitching (both GameShot Throwing) ;
+
+  -- The main Gland of the endocrine system.
+  fun PituitaryGland : Class ;
+  fun PituitaryGland_Class : SubClass PituitaryGland Gland ;
+
+  -- A Building or part of a Building which is 
+  -- intended for organizational activities, e.g. retail or wholesale selling, 
+  -- manufacturing, office work, etc.
+  fun PlaceOfCommerce : Class ;
+  fun PlaceOfCommerce_Class : SubClass PlaceOfCommerce StationaryArtifact ;
+
+  -- Any place designed for ReligiousProcesses.
+  fun PlaceOfWorship : Class ;
+  fun PlaceOfWorship_Class : SubClass PlaceOfWorship Building ;
+
+  -- PlacingUnderArrest is the class of events in which a
+  -- CognitiveAgent, typically a law enforcement professional,
+  -- legally takes into custody a human or group of humans.
+  fun PlacingUnderArrest : Class ;
+  fun PlacingUnderArrest_Class : SubClass PlacingUnderArrest (both Capturing (both LawEnforcement (both LegalAction SocialInteraction))) ;
+
+  -- PlantAgriculturalProduct 
+  -- is the class of AgriculturalProducts that are vegetable in nature, 
+  -- in the widest sense, e.g., fruits, grains, green vegetables, cotton, 
+  -- linen, flowers, wine grapes, hops.
+  fun PlantAgriculturalProduct : Class ;
+  fun PlantAgriculturalProduct_Class : SubClass PlantAgriculturalProduct AgriculturalProduct ;
+
+  -- The stem of a Plant or any shoot arising from 
+  -- the stem of a Plant.
+  fun PlantBranch : Class ;
+  fun PlantBranch_Class : SubClass PlantBranch (both BodyPart PlantAnatomicalStructure) ;
+
+  -- An Organ of Plants whose main purpose is 
+  -- photosynthesis.
+  fun PlantLeaf : Class ;
+  fun PlantLeaf_Class : SubClass PlantLeaf (both Organ PlantAnatomicalStructure) ;
+
+  -- An Organ of Plants whose main purpose is twofold, viz. to absorb
+  -- nutrients from the ground and to anchor the Plant in place.
+  fun PlantRoot : Class ;
+  fun PlantRoot_Class : SubClass PlantRoot (both Organ PlantAnatomicalStructure) ;
+
+  -- A small piece of stiff paper with markings 
+  -- which is intended to be used for playing card games.
+  fun PlayingCard : Class ;
+  fun PlayingCard_Class : SubClass PlayingCard (both ContentBearingObject GameArtifact) ;
+
+  -- Stating in a court of law a claim about whether or 
+  -- not one is guilty of the crime of which one has been accused.
+  fun Pleading : Class ;
+  fun Pleading_Class : SubClass Pleading Stating ;
+
+  -- An Artifact which is designed to fit snugly within a Hole.
+  fun Plug : Class ;
+  fun Plug_Class : SubClass Plug Artifact ;
+
+  -- Any occupation that involves installing, repairing, and 
+  -- replacing pipes and pipe fixtures.
+  fun Plumber : Ind OccupationalTrade ;
+
+  -- A pouch of Fabric in an instance of Clothing where something can be kept.
+  fun Pocket : Class ;
+  fun Pocket_Class : SubClass Pocket Fabric ;
+
+  -- A PoliceOfficer who is in charge of a precinct.
+  fun PoliceCaptain : Class ;
+  fun PoliceCaptain_Class : SubClass PoliceCaptain PoliceOfficer ;
+
+  -- The Profession of being a police 
+  -- detective, i.e. being a PoliceOfficer whose duties include the 
+  -- investigation of crimes.
+  fun PoliceDetective : Ind PoliceOfficer ; 
+
+  -- A building designed to house PolicePersons.
+  fun PoliceFacility : Class ;
+  fun PoliceFacility_Class : SubClass PoliceFacility Building ;
+
+  -- The Profession of being a police officer, i.e. 
+  -- working for a law enforcement agency that is part of a Government.
+  fun PoliceOfficer : Class ;
+  fun PoliceOfficer_Class : SubClass PoliceOfficer (both GovernmentOfficer Profession) ;
+
+  -- A member of a government whose occupation
+  -- has the primary purpose of preventing crime and arresting criminals.
+  fun PolicePerson : Ind OccupationalRole ;
+
+  -- A PoliceOfficer with the rank of sergeant.
+  fun PoliceSergeant : Class ;
+  fun PoliceSergeant_Class : SubClass PoliceSergeant PoliceOfficer ;
+
+  -- A CriminalAction that is committed by or 
+  -- against Governments.
+  fun PoliticalCrime : Class ;
+  fun PoliticalCrime_Class : SubClass PoliticalCrime (both CriminalAction PoliticalProcess) ;
+
+  -- A well known person who participates
+  -- in a PoliticalProcess. This must either be the person's principal
+  -- occupation, or what is intended to become his principal occupation
+  -- (for example, after an election).
+  fun PoliticalFigure : Class ;
+  fun PoliticalFigure_Class : SubClass PoliticalFigure Celebrity ;
+
+  -- PoliticalParty is the class of 
+  -- PoliticalOrganizations that may sponsor candidates for Elections.
+  fun PoliticalParty : Class ;
+  fun PoliticalParty_Class : SubClass PoliticalParty PoliticalOrganization ;
+
+  -- The violent overthrow of one Government 
+  -- and its replacement by another. This covers grass_roots revolutions, as well 
+  -- as coups d'etat.
+  fun PoliticalRevolution : Class ;
+  fun PoliticalRevolution_Class : SubClass PoliticalRevolution (both PoliticalProcess ViolentContest) ;
+
+  -- The field of political science.
+  fun PoliticalScience : Ind SocialScience ;
+
+  -- Any Attribute of a Government which specifies some aspect of the political or
+  -- economic system of the Government.
+  fun PoliticoEconomicAttribute : Class ;
+  fun PoliticoEconomicAttribute_Class : SubClass PoliticoEconomicAttribute RelationalAttribute ;
+
+  -- Investigating what people believe (and in what proportions) 
+  -- by asking a set of structured questions to a random sample of people.
+  fun Polling : Class ;
+  fun Polling_Class : SubClass Polling Investigating ;
+
+  -- A ClosedTwoDimensionalFigure that is composed 
+  -- exclusively of straight lines, i.e. OneDimensionalFigures.
+  fun Polygon : Class ;
+  fun Polygon_Class : SubClass Polygon ClosedTwoDimensionalFigure ;
+
+  -- Music which has two or more parts, i.e. Music 
+  -- which can be divided into two or more contemporaneous subProcesses which are 
+  -- also instances of Music.
+  fun PolyphonicMusic : Class ;
+  def PolyphonicMusic = KappaFn Music (\MUSIC -> exists Music (\PART1 -> 
+                                                 exists Music (\PART2 -> and (and (and (and (subProcess (var Music Process ? PART1)
+                                                                                                        (var Music Process ? MUSIC))
+                                                                                            (subProcess (var Music Process ? PART2)
+                                                                                                        (var Music Process ? MUSIC)))
+                                                                                       (not (equal (var Music Entity ? PART1)
+                                                                                                   (var Music Entity ? PART2))))
+                                                                                  (cooccur (var Music Physical ? PART1)
+                                                                                           (var Music Physical ? MUSIC)))
+                                                                             (cooccur (var Music Physical ? PART2)
+                                                                                      (var Music Physical ? MUSIC)))));
+
+  -- The Position of head of the RomanCatholicChurch.
+  fun Pope : Ind Position ;
+
+  -- PopularElection is the class of 
+  -- Elections in which office_holders and issues are determined directly by 
+  -- the outcome of the votes cast by the enfranchised. For example, U.S. 
+  -- Senators and Representatives are elected by PopularElection. By 
+  -- contrast, U.S. Presidents are elected by indirect elections, in which the 
+  -- Electoral College determines the actual outcome. See electionWinner.
+  fun PopularElection : Class ;
+  fun PopularElection_Class : SubClass PopularElection GeneralElection ;
+
+  -- A StationaryArtifact which is connected to a 
+  -- Building and which provides some shelter in entering or leaving the 
+  -- Building or in sitting outside.
+  fun Porch : Class ;
+  fun Porch_Class : SubClass Porch StationaryArtifact ;
+
+  -- Meat that was originally part of a Pig.
+  fun Pork : Class ;
+  fun Pork_Class : SubClass Pork Meat ;
+
+  -- A PaintedPicture that represents someone's Face.
+  fun Portrait : Class ;
+  fun Portrait_Class : SubClass Portrait PaintedPicture ;
+
+  -- The class of TimeIntervals that begin at noon and 
+  -- end at midnight.
+  fun PostMeridiem : Class ;
+  fun PostMeridiem_Class : SubClass PostMeridiem TimeInterval ;
+
+  -- The class of Schools that offer 
+  -- an associate's degree or a bachelor's degree.
+  fun PostSecondarySchool : Class ;
+  fun PostSecondarySchool_Class : SubClass PostSecondarySchool School ;
+
+  -- A Container which has a handle and is used for 
+  -- Cooking.
+  fun PotOrPan : Class ;
+  fun PotOrPan_Class : SubClass PotOrPan Container ;
+
+  -- Any occupation that involves the creation of Pottery.
+  fun Potter : Ind OccupationalTrade ;
+
+  -- Household Artifacts that are made out of baked Clay.
+  fun Pottery : Class ;
+  fun Pottery_Class : SubClass Pottery Artifact ;
+
+  fun Poultry : Class ;
+  fun Poultry_Class : SubClass Poultry (both Bird Livestock) ;
+
+  -- Any instance of Transfer from one Container to 
+  -- another, where the thing transferred is a Liquid.
+  fun Pouring : Class ;
+  fun Pouring_Class : SubClass Pouring (both LiquidMotion Transfer) ;
+
+  -- Any Solid Substance which consists of loose, 
+  -- identical, and very small particles.
+  fun Powder : Class ;
+  fun Powder_Class : SubClass Powder Substance ;
+
+  -- A source of electrical power.
+  fun PowerSource : Class ;
+  fun PowerSource_Class : SubClass PowerSource Device ;
+
+  -- A Vehicle that has a powerComponent.
+  -- Note that PoweredVehicles include those vehicles that have a powerComponent
+  -- where the user can and does often choose not to use it, such as a moped with pedals.
+  fun PoweredVehicle : Class ;
+  fun PoweredVehicle_Class : SubClass PoweredVehicle Vehicle ;
+
+  -- A formal or informal process of private worship which 
+  -- may or may not be carried out in a ReligiousBuilding.
+  fun Praying : Class ;
+  fun Praying_Class : SubClass Praying (both ReligiousProcess Requesting) ;
+
+  -- The Attribute that applies to Female Animals and 
+  -- Humans that have an embryo or fetus growing inside of them as the result of 
+  -- having one of the Female's Eggs fertilized.
+  fun Pregnant : Ind BiologicalAttribute ;
+
+  -- Food that is the result of Cooking.
+  fun PreparedFood : Class ;
+  fun PreparedFood_Class : SubClass PreparedFood Food ;
+
+  -- The position of being head of the 
+  -- UnitedStates.
+  fun PresidentOfTheUnitedStates : Ind Position ;
+
+  -- Any Device that measures and represents PressureMeasure.
+  fun PressureMeasuringDevice : Class ;
+  fun PressureMeasuringDevice_Class : SubClass PressureMeasuringDevice MeasuringDevice ;
+
+  -- An installation which is owned and maintained by 
+  -- a Government for the purpose of Confining people. This class covers 
+  -- jails, federal prisons, concentration camps, gulags, etc.
+  fun Prison : Class ;
+  fun Prison_Class : SubClass Prison StationaryArtifact ;
+
+  -- The Profession of being a private detective, 
+  -- i.e. a detective who can be hired for a fee to investigate something.
+  fun PrivateDetective : Ind Profession ;
+
+  -- A School which is not publicly owned.
+  fun PrivateSchool : Class ;
+  fun PrivateSchool_Class : SubClass PrivateSchool School ;
+
+  -- Any instance of Speaking before an assembled 
+  -- audience that effects an institutional change, e.g. a change in the laws of 
+  -- the government.
+  fun Proclaiming : Class ;
+  fun Proclaiming_Class : SubClass Proclaiming (both Declaring Lecture) ;
+
+  -- Any occupation that requires at least a bachelor's degree.
+  fun Profession : Class ;
+  fun Profession_Class : SubClass Profession SkilledOccupation ;
+
+  -- The Profession of being a teacher at a PostSecondarySchool.
+  fun Professor : Ind Profession ;
+
+  -- An arrangement in which an employer 
+  -- shares its profits with its employees. The compensation can be stocks, 
+  -- bonds or cash, and can be immediate or deferred until retirement.
+  fun ProfitSharingPlan : Class ;
+  fun ProfitSharingPlan_Class : SubClass ProfitSharingPlan PensionPlan ;
+
+  -- A missile, bullet, etc. that is fired from a Weapon.
+  fun Projectile : Class ;
+  fun Projectile_Class : SubClass Projectile Weapon ;
+
+  -- A Weapon that shoots a Projectile.
+  fun ProjectileLauncher : Class ;
+  fun ProjectileLauncher_Class : SubClass ProjectileLauncher Weapon ;
+
+  -- The outer casing of a Projectile.
+  fun ProjectileShell : Class ;
+  fun ProjectileShell_Class : SubClass ProjectileShell Container ;
+
+  -- A CommunicationDevice upon which images 
+  -- are projected so that they can be viewed.
+  fun ProjectionScreen : Class ;
+  fun ProjectionScreen_Class : SubClass ProjectionScreen CommunicationDevice ;
+
+  -- A CommercialAgent that is owned by a 
+  -- single person.
+  fun Proprietorship : Class ;
+  fun Proprietorship_Class : SubClass Proprietorship CommercialAgent ;
+
+  -- Unicellular Organisms that are capable of movement 
+  -- and that are found in almost every part of the world. This class includes 
+  -- amoebas, sporozoans, and paramecia.
+  fun Protozoa : Class ;
+  fun Protozoa_Class : SubClass Protozoa Microorganism ;
+
+  -- The field of psychology.
+  fun Psychology : Ind SocialScience ;
+
+  -- Any PsychologicalDysfunction which is the 
+  -- result of an organic impairment of the NervousSystem.
+  fun Psychosis : Class ;
+  fun Psychosis_Class : SubClass Psychosis PsychologicalDysfunction ;
+
+  -- The DevelopmentalAttribute of having functional sex 
+  -- glands which are not fully mature.
+  fun Puberty : Ind DevelopmentalAttribute ;
+
+  -- An Attorney who defends criminal cases for a 
+  -- GovernmentOrganization.
+  fun PublicDefender : Class ;
+  fun PublicDefender_Class : SubClass PublicDefender (both Attorney GovernmentOfficer) ;
+
+  -- A Library which is financed by taxes and which 
+  -- is open to everyone.
+  fun PublicLibrary : Class ;
+  fun PublicLibrary_Class : SubClass PublicLibrary (both GovernmentOrganization Library) ;
+
+  -- A Park that is publicly owned, i.e. owned by a Government.
+  fun PublicPark : Class ;
+  fun PublicPark_Class : SubClass PublicPark Park ;
+
+  -- An Attorney who prosecutes criminal cases for 
+  -- a GovernmentOrganization.
+  fun PublicProsecutor : Class ;
+  fun PublicProsecutor_Class : SubClass PublicProsecutor (both Attorney GovernmentOfficer) ;
+
+  -- A School which is financed primarily by taxes.
+  fun PublicSchool : Class ;
+  fun PublicSchool_Class : SubClass PublicSchool (both GovernmentOrganization School) ;
+
+  -- Any business whose services include the 
+  -- Publication of Texts.
+  fun Publisher : Class ;
+  fun Publisher_Class : SubClass Publisher CommercialAgent ;
+
+  -- Any instance of LandTransportation, where a 
+  -- TransportationDevice is dragged by something else, whether the something 
+  -- else is an Animal or a self_powered TransportationDevice.
+  fun Pulling : Class ;
+  fun Pulling_Class : SubClass Pulling LandTransportation ;
+
+  -- An Artery that carries Blood from 
+  -- the Heart to a Lung.
+  fun PulmonaryArtery : Class ;
+  fun PulmonaryArtery_Class : SubClass PulmonaryArtery Artery ;
+
+  -- A Vein that carries Blood from the 
+  -- Lungs to the Heart.
+  fun PulmonaryVein : Class ;
+  fun PulmonaryVein_Class : SubClass PulmonaryVein Vein ;
+
+  -- A Device that moves Fluids by means of pressure or suction.
+  fun Pump : Class ;
+  fun Pump_Class : SubClass Pump TransportationDevice ;
+
+  -- Any instance of Impelling where the instrument 
+  -- is a Fist of the agent.
+  fun Punching : Class ;
+  fun Punching_Class : SubClass Punching Impelling ;
+
+  -- A RegulatoryProcess where the agent does 
+  -- something to the destination that the agent knows is undesirable 
+  -- for the destination.
+  fun Punishing : Class ;
+  fun Punishing_Class : SubClass Punishing RegulatoryProcess ;
+
+  -- A SecondaryColor that results from mixing Red and Blue.
+  fun Purple : Ind SecondaryColor ;
+
+  -- Any four_sided Polygon.
+  fun Quadrilateral : Class ;
+  fun Quadrilateral_Class : SubClass Quadrilateral Polygon ;
+
+  -- A Female Insect which is the sole member of 
+  -- her colony with the capability to reproduce.
+  fun QueenInsect : Class ;
+  fun QueenInsect_Class : SubClass QueenInsect Insect ;
+
+  -- An interrogative Sentence, a Sentence that 
+  -- poses a question.
+  fun Question : Class ;
+  def Question = KappaFn Sentence (\SENTENCE -> exists Questioning (\QUESTION -> result (var Questioning Process ? QUESTION) (var Sentence Entity ? SENTENCE)));
+
+  -- A burrowing Rodent with a short tail and long ears.
+  fun Rabbit : Class ;
+  fun Rabbit_Class : SubClass Rabbit Rodent ;
+
+  -- A sport which involves a contest of speed between the 
+  -- participants. Note that this covers a variety of things, including auto 
+  -- racing, running competitions, etc.
+  fun Racing : Class ;
+  fun Racing_Class : SubClass Racing Sport ;
+
+  -- An ElectricDevice that emits and receives microwave 
+  -- radiation for the purpose of locating and tracking distant objects.
+  fun Radar : Class ;
+  fun Radar_Class : SubClass Radar ElectricDevice ;
+
+  fun RadiatingInfrared_Radiating : SubClass RadiatingInfrared Radiating ;
+
+  -- All sound waves that have frequencies 
+  -- above those that normal Human ears can detect.
+  fun RadiatingSoundUltrasonic : Class ;
+  fun RadiatingSoundUltrasonic_Class : SubClass RadiatingSoundUltrasonic RadiatingSound ;
+
+  -- Any case of RadiatingElectromagnetic where the 
+  -- wavelengths are shorter than those of visible light and longer than those 
+  -- of X_Rays.
+  fun RadiatingUltraviolet : Class ;
+  fun RadiatingUltraviolet_Class : SubClass RadiatingUltraviolet RadiatingElectromagnetic ;
+
+  -- Any instance of RadiatingLight that can 
+  -- be detected by normal human visual perception.
+  fun RadiatingVisibleLight : Class ;
+  def RadiatingVisibleLight = KappaFn RadiatingLight (\R -> exists Human (\H -> 
+                                                            exists Seeing (\S -> and (agent (var Seeing Process ? S)
+                                                                                            (var Human Agent ? H))
+                                                                                     (patient (var Seeing Process ? S)
+                                                                                              (var RadiatingLight Entity ? R))))) ;
+
+  -- Any instance of Broadcasting which is 
+  -- intended to be received by a RadioReceiver.
+  fun RadioBroadcasting : Class ;
+  fun RadioBroadcasting_Class : SubClass RadioBroadcasting Broadcasting ;
+
+  -- Any instance of RadiatingElectromagnetic 
+  -- where the waves have a wavelength between 5 milimeters and 30,000 meters.
+  fun RadioEmission : Class ;
+  fun RadioEmission_Class : SubClass RadioEmission RadiatingElectromagnetic ;
+
+  -- A RadioReceiver is a Device for receiving 
+  -- radio broadcast signals from a RadioStation.
+  fun RadioReceiver : Class ;
+  fun RadioReceiver_Class : SubClass RadioReceiver ReceiverDevice ;
+
+  -- A WeaponOfMassDestruction which 
+  -- achieves its effect through radioactivity, either by an explosion resulting 
+  -- from nuclear fission or by a conventional explosive device that scatters 
+  -- radioactive debris.
+  fun RadioactiveWeapon : Class ;
+  fun RadioactiveWeapon_Class : SubClass RadioactiveWeapon WeaponOfMassDestruction ;
+
+  -- Weapons which are designed to spread 
+  -- radioactive particles over a large area by means of a conventional 
+  -- explosive device rather than a nuclear reaction. These weapons are often 
+  -- referred to as 'dirty bombs'.
+  fun RadiologicalWeapon : Class ;
+  fun RadiologicalWeapon_Class : SubClass RadiologicalWeapon RadioactiveWeapon ;
+
+  -- A PlantRoot that is often used in salads.
+  fun Radish : Class ;
+  fun Radish_Class : SubClass Radish (both Food PlantRoot) ;
+
+  -- (RadiusFn ?CIRCLE) denotes the length of the radius 
+  -- of the Circle ?CIRCLE.
+  fun RadiusFn : El Circle -> Ind LengthMeasure ;
+
+  -- RailTransportationSystem 
+  -- is the subclass of TransitSystems whose routes are Railways.
+  fun RailTransportationSystem : Class ;
+  fun RailTransportationSystem_Class : SubClass RailTransportationSystem TransitSystem ;
+
+  -- A Vehicle designed to move on Railways.
+  fun RailVehicle : Class ;
+  fun RailVehicle_Class : SubClass RailVehicle LandVehicle ;
+
+  -- Any TransportationCompany whose services 
+  -- include Transportation by Train.
+  fun RailroadCompany : Class ;
+  fun RailroadCompany_Class : SubClass RailroadCompany TransportationCompany ;
+
+  -- Ramp is the class of SelfConnectedObjects that are 
+  -- inclined planes used for moving objects from one level to another, 
+  -- especially used for wheeled vehicles and people who cannot climb stairs.
+  fun Ramp : Class ;
+  fun Ramp_Class : SubClass Ramp SelfConnectedObject ;
+
+  -- Any instance of Mating where one participant does not 
+  -- consent. This is limited to acts between Humans.
+  fun Raping : Class ;
+  fun Raping_Class : SubClass Raping (both CriminalAction Mating) ;
+
+  -- A Rodent that has a hairless tail like a Mouse 
+  -- but that is larger than a Mouse.
+  fun Rat : Class ;
+  fun Rat_Class : SubClass Rat Rodent ;
+
+  -- A subclass of Snake which derives its name 
+  -- from the fact that it can manipulate its tail in such a way as to produce 
+  -- a sound like that of a rattle.
+  fun Rattlesnake : Class ;
+  fun Rattlesnake_Class : SubClass Rattlesnake Snake ;
+
+  -- Food that is not the result of Cooking.
+  fun RawFood : Class ;
+  fun RawFood_Class : SubClass RawFood Food ;
+
+  -- Any VehicleWindow which is located at the back 
+  -- of an Automobile.
+  fun RearWindow : Class ;
+  fun RearWindow_Class : SubClass RearWindow VehicleWindow ;
+
+  -- An ElectricDevice that is capable of 
+  -- receiving and decoding RadioEmissions, e.g. Radios and Televisions.
+  fun ReceiverDevice : Class ;
+  fun ReceiverDevice_Class : SubClass ReceiverDevice (both CommunicationDevice ElectricDevice) ;
+
+  -- Any instance of Speaking where what is 
+  -- uttered is contained within a Text.
+  fun Reciting : Class ;
+  fun Reciting_Class : SubClass Reciting Speaking ;
+
+  -- Any Process where the experiencer recovers 
+  -- from a DiseaseOrSyndrome.
+  fun RecoveringFromIllness : Class ;
+  fun RecoveringFromIllness_Class : SubClass RecoveringFromIllness OrganismProcess ;
+
+  -- A Device whose purpose is RecreationOrExercise.
+  fun RecreationOrExerciseDevice : Class ;
+  fun RecreationOrExerciseDevice_Class : SubClass RecreationOrExerciseDevice Device ;
+
+  -- Any Quadrilateral whose angles are all 
+  -- RightAngles.
+  fun Rectangle : Class ;
+  fun Rectangle_Class : SubClass Rectangle Quadrilateral ;
+
+  -- BloodCells that contain hemoglobin, lack a 
+  -- CellNucleus, and carry Oxygen to the tissues of the body.
+  fun RedBloodCell : Class ;
+  fun RedBloodCell_Class : SubClass RedBloodCell BloodCell ;
+
+  -- Any Soldier that served on the British side during 
+  -- the American revolutionary war. RedcoatSoldier Any Soldier that served on the
+  -- British side during the American revolutionary war.
+  fun RedcoatSoldier : Class ;
+  fun RedcoatSoldier_Class : SubClass RedcoatSoldier Soldier ;
+
+  -- A Book which is not intended to be read 
+  -- from cover to cover, but which is meant to be consulted to answer specific 
+  -- factual questions, e.g. about the meaning of a word, the location of a 
+  -- country, etc.
+  fun ReferenceBook : Class ;
+  fun ReferenceBook_Class : SubClass ReferenceBook (both Book FactualText) ;
+
+  -- A Text which is not intended to be read 
+  -- from beginning to end, but which is meant to be consulted to answer specific 
+  -- factual questions, e.g. about the meaning of a word, the location of a 
+  -- country, etc.
+  fun ReferenceText : Class ;
+  fun ReferenceText_Class : SubClass ReferenceText FactualText ;
+
+  -- A Substance that is the result
+  -- of the Distilling of Petroleum.
+  fun RefinedPetroleumProduct : Class ;
+  fun RefinedPetroleumProduct_Class : SubClass RefinedPetroleumProduct PetroleumProduct ;
+
+  -- Any instance of Radiating where the radiated 
+  -- waves rebound from a surface, e.g. an echo of sound or a reflection of 
+  -- light.
+  fun Reflecting : Class ;
+  fun Reflecting_Class : SubClass Reflecting Radiating ;
+
+  -- Those instances of RadiatingLight where the 
+  -- instrument is not a light source, but is simply a surface which bends light 
+  -- waves that come in contact with it.
+  fun ReflectingLight : Class ;
+  fun ReflectingLight_Class : SubClass ReflectingLight (both RadiatingLight Reflecting) ;
+
+  -- Any Muscle reaction which is a response 
+  -- to a specific stimulus and which does not reach the level of consciousness.
+  fun ReflexiveProcess : Class ;
+  fun ReflexiveProcess_Class : SubClass ReflexiveProcess AutonomicProcess ;
+
+  -- The intersection of Containers and ElectricDevices 
+  -- in which the temperature is reduced from that of the outside air by a Cooling 
+  -- process.
+  fun Refrigerator : Class ;
+  fun Refrigerator_Class : SubClass Refrigerator (both Container (both CoolingDevice ElectricDevice)) ;
+
+  -- Submitting official paperwork in a government 
+  -- agency, e.g. filing for divorce, making a legal claim against someone.
+  fun Registering : Class ;
+  fun Registering_Class : SubClass Registering (both PoliticalProcess Stating) ;
+
+  -- ExpressingDisapproval about a state of affairs 
+  -- that has already occurred.
+  fun Regretting : Class ;
+  fun Regretting_Class : SubClass Regretting ExpressingDisapproval ;
+
+  -- Any TherapeuticProcess that removes Pain from 
+  -- the patient of the process.
+  fun RelievingPain : Class ;
+  fun RelievingPain_Class : SubClass RelievingPain TherapeuticProcess ;
+
+  -- A Building which is intended to be 
+  -- used for religious worship. This class covers churches, temples, 
+  -- religious shrines, etc.
+  fun ReligiousBuilding : Class ;
+  fun ReligiousBuilding_Class : SubClass ReligiousBuilding Building ;
+
+  -- A well_known leader of a religious group.
+  fun ReligiousFigure : Class ;
+  fun ReligiousFigure_Class : SubClass ReligiousFigure Celebrity ;
+
+  -- Any Position within a ReligousOrganization.
+  fun ReligiousPosition : Class ;
+  fun ReligiousPosition_Class : SubClass ReligiousPosition Position ;
+
+  -- A formal process of public worship which is 
+  -- typically carried out in a church, temple or other sanctified building and 
+  -- which typically accords with a prescribed set of rules.
+  fun ReligiousService : Class ;
+  fun ReligiousService_Class : SubClass ReligiousService (both Demonstrating ReligiousProcess) ;
+
+  -- Any Requesting that is intended to cause a 
+  -- Remembering of something.
+  fun Reminding : Class ;
+  fun Reminding_Class : SubClass Reminding Requesting ;
+
+  -- Removing Clothing from a Human or 
+  -- Animal in such a way that the Human or Animal no longer wears the 
+  -- Clothing.
+  fun RemovingClothing : Class ;
+  fun RemovingClothing_Class : SubClass RemovingClothing Uncovering ;
+
+  -- Giving money to the owner of an Object in 
+  -- exchange for the right to use the Object for a fixed time period.
+  fun Renting : Class ;
+  fun Renting_Class : SubClass Renting (both Borrowing FinancialTransaction) ;
+
+  -- A relatively brief FactualText, often it 
+  -- describes the findings of a study or experiment, or a series of 
+  -- observations.
+  fun Report : Class ;
+  fun Report_Class : SubClass Report (both Article FactualText) ;
+
+  -- One of the two major political parties in 
+  -- the UnitedStates. The RepublicanParty represents traditional, 
+  -- conservative values.
+  fun RepublicanParty : Ind PoliticalParty ;
+
+  -- A Sentence that expresses a request for something or 
+  -- that something be done.
+  fun Request : Class ;
+  def Request = KappaFn Sentence (\SENTENCE -> exists Requesting (\REQUEST -> result (var Requesting Process ? REQUEST)(var Sentence Entity ? SENTENCE)));
+
+  -- The Profession of being a scientific 
+  -- researcher.
+  fun Researcher : Class ;
+  fun Researcher_Class : SubClass Researcher Profession ;
+
+  -- (ResidentFn ?AREA) denotes the 
+  -- GroupOfPeople who have their home in ?AREA.
+  fun ResidentFn : El GeopoliticalArea -> Ind GroupOfPeople ;
+
+  -- Voluntarily ending one's employment.
+  fun Resigning : Class ;
+  fun Resigning_Class : SubClass Resigning TerminatingEmployment ;
+
+  -- Any instance of Deciding which is conducted at a 
+  -- FormalMeeting and where the agent is an Organization.
+  fun Resolution : Class ;
+  fun Resolution_Class : SubClass Resolution Deciding ;
+
+  -- Any CommercialAgent whose services include selling 
+  -- Food to customers which is intended to be eaten on the premises.
+  fun Restaurant : Class ;
+  fun Restaurant_Class : SubClass Restaurant CommercialAgent ;
+
+  -- A Building where people pay to be served food
+  -- and eat. Some restaurants may also offer entertainment.
+  fun RestaurantBuilding : Class ;
+  fun RestaurantBuilding_Class : SubClass RestaurantBuilding Building ;
+
+  -- A Store where individuals who are not
+  -- representing an Organization purchase items. This distinguishes
+  -- retail stores from wholesale establishments, where the purchasers
+  -- are businesses or their representatives, as well as mail order or
+  -- office buildings where transactions are facillitated but the consumer
+  -- does not take possession of the item on the premises. More succinctly,
+  -- the complement of WholesaleStore, i.e. 
+  -- MercantileOrganizations that sell their goods to the general public.
+  fun RetailStore : Class ;
+  fun RetailStore_Class : SubClass RetailStore MercantileOrganization ;
+
+  -- A membrane that covers the Eye and converts 
+  -- the image formed by the lens of the Eye into neurochemical impulses 
+  -- which can be processed by the Brain.
+  fun Retina : Class ;
+  fun Retina_Class : SubClass Retina (both AnimalAnatomicalStructure Organ) ;
+
+  -- Voluntary unemployment toward the end of one's life.
+  fun Retired : Ind SocialRole ;
+
+  -- Voluntarily leaving employment at the end of one's 
+  -- career in order to take time off in the later years of one's life.
+  fun Retiring : Class ;
+  fun Retiring_Class : SubClass Retiring Resigning ;
+
+  -- Any instance of Translocation where the agent 
+  -- goes to a location where he/she had been before the Translocation took place.
+  fun Returning : Class ;
+  fun Returning_Class : SubClass Returning Translocation ;
+
+  -- Moving something in such a way that its top 
+  -- becomes its bottom and vice versa.
+  fun Reversing : Class ;
+  fun Reversing_Class : SubClass Reversing Motion ;
+
+  -- A Pistol whose magazine is a revolving cylinder with 
+  -- six chambers for Bullets.
+  fun RevolverGun : Class ;
+  fun RevolverGun_Class : SubClass RevolverGun Pistol ;
+
+  -- A CerealGrain which has short and long grain varieties 
+  -- and which is usually prepared for eating by steaming.
+  fun RiceGrain : Class ;
+  fun RiceGrain_Class : SubClass RiceGrain CerealGrain ;
+
+  -- A Firearm with a long barrel that is intended to be fired 
+  -- from the shoulder.
+  fun Rifle : Class ;
+  fun Rifle_Class : SubClass Rifle Firearm ;
+
+  -- Any TwoDimensionalAngle that has the 
+  -- angularMeasure of 90 AngularDegrees.
+  fun RightAngle : Class ;
+  fun RightAngle_Class : SubClass RightAngle TwoDimensionalAngle ;
+
+  -- Any Triangle that contains a RightAngle.
+  fun RightTriangle : Class ;
+  fun RightTriangle_Class : SubClass RightTriangle Triangle ;
+
+  -- Any instance of RadiatingSound which is produced by 
+  -- a Bell.
+  fun Ringing : Class ;
+  fun Ringing_Class : SubClass Ringing RadiatingSound ;
+
+  -- A path along which vehicles travel. It is typically,
+  -- although not necessarily, paved and intended for cars.
+  fun Road : Class ;
+  fun Road_Class : SubClass Road (both Region Roadway) ;
+
+  -- RoadTransportationSystem 
+  -- is the subclass of TransportationSystems whose routes are Roadways.
+  fun RoadTransportationSystem : Class ;
+  fun RoadTransportationSystem_Class : SubClass RoadTransportationSystem TransitSystem ;
+
+  -- The class of LandVehicles that are not 
+  -- RollingStock.
+  fun RoadVehicle : Class ;
+  fun RoadVehicle_Class : SubClass RoadVehicle LandVehicle ;
+
+  -- Any instance of Stealing which involves the threat 
+  -- of the use of force.
+  fun Robbing : Class ;
+  fun Robbing_Class : SubClass Robbing Stealing ;
+
+  -- Rock is any naturally formed aggregate of one or more 
+  -- minerals, consolidated or not, with some degree of mineralogic and chemical 
+  -- constancy, in popular use the term is usually restricted to those aggregates 
+  -- that are hard, compact, and coherent.
+  fun Rock : Class ;
+  fun Rock_Class : SubClass Rock Substance ;
+
+  -- A Spacecraft which has the shape of a cylinder 
+  -- with a cone on top and which is powered by a jet engine.
+  fun Rocket : Class ;
+  fun Rocket_Class : SubClass Rocket (both (both Projectile Spacecraft) Aircraft) ;
+
+  -- An attack in which a rocket or
+  -- missile is used.
+  fun RocketMissileAttack : Class ;
+  fun RocketMissileAttack_Class : SubClass RocketMissileAttack Bombing ;
+
+  -- A single rail car. Any RailVehicle that is 
+  -- not composed of other RailVehicles.
+  fun RollingStock : Class ;
+  fun RollingStock_Class : SubClass RollingStock RailVehicle ;
+
+  -- The top of a Building.
+  fun Roof : Class ;
+  fun Roof_Class : SubClass Roof StationaryArtifact ;
+
+  -- A Male Chicken.
+  fun Rooster : Class ;
+  def Rooster = KappaFn Chicken (\R -> attribute (var Chicken Object ? R) (el SexAttribute Attribute ? Male)) ;
+
+  -- Motion that begins and ends at the same point, 
+  -- because the trajectory of the Motion is circular.
+  fun Rotating : Class ;
+  fun Rotating_Class : SubClass Rotating Motion ;
+
+  -- Any ThreeDimensionalFigure that has a single
+  -- tangent at every point on its surface.
+  fun RoundShape : Ind ThreeDimensionalFigure ;
+
+  -- Any instance of WaterTransportation where the 
+  -- instrument is an Oar that is manually powered.
+  fun Rowing : Class ;
+  fun Rowing_Class : SubClass Rowing WaterTransportation ;
+
+  -- A latex that is produced by certain species of 
+  -- BotanticalTrees.
+  fun Rubber : Class ;
+  fun Rubber_Class : SubClass Rubber PlantSubstance ;
+
+  -- A piece of Fabric whose purpose is to cover a Floor.
+  fun Rug : Class ;
+  fun Rug_Class : SubClass Rug Fabric ;
+
+  -- A Slavic language that is spoken in Russia.
+  fun RussianLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
+
+  -- A Device which allows a Human to ride on a 
+  -- Horse.
+  fun Saddle : Class ;
+  fun Saddle_Class : SubClass Saddle Holder ;
+
+  -- A Container with a Lock which is intended 
+  -- to secure items from theft. Note that this covers safes, lockers, and locked 
+  -- storage compartments.
+  fun SafeContainer : Class ;
+  fun SafeContainer_Class : SubClass SafeContainer (both Container SecurityDevice) ;
+
+  -- The class of Positions which involve working on a 
+  -- ship, whether a merchant ship or a navy ship.
+  fun Sailor : Class ;
+  fun Sailor_Class : SubClass Sailor SkilledOccupation ;
+
+  -- Any instance of Working that involves Selling or 
+  -- trying to sell items.
+  fun Sales : Class ;
+  fun Sales_Class : SubClass Sales Working ;
+
+  -- Any Position which involves Selling 
+  -- or trying to sell items.
+  fun SalesPosition : Class ;
+  fun SalesPosition_Class : SubClass SalesPosition SkilledOccupation ;
+
+  -- A Solution consisting of SodiumChloride and 
+  -- Water.
+  fun SalineSolution : Class ;
+  fun SalineSolution_Class : SubClass SalineSolution Solution ;
+
+  -- Any kind of open shoe lacking a markedly
+  -- thicker heel. The toe may be enclosed, but there must be some opening in the upper
+  -- other than the Hole through which the foot is inserted.
+  fun Sandal : Class ;
+  fun Sandal_Class : SubClass Sandal Shoe ;
+
+  -- Any Food which consists of two or more pieces 
+  -- of bread and some sort of filling between the two pieces of bread.
+  fun Sandwich : Class ;
+  fun Sandwich_Class : SubClass Sandwich PreparedFood ;
+
+  -- The state of being happy about a state of
+  -- affairs that occurred in the past. In cases where that state of affairs 
+  -- is the product of one's own doing, this is known as pride.
+  fun Satisfaction : Ind EmotionalState ;
+
+  -- Any instance of Increasing where the PhysicalQuantity 
+  -- involved is a CurrencyMeasure. This includes saving in a financial account
+  -- as well as stuffing gold bars under the matress, or a squirrel saving nuts
+  -- for winter.
+  fun Saving : Class ;
+  fun Saving_Class : SubClass Saving Increasing ;
+
+  -- A federally or state chartered 
+  -- FinancialCompany that takes Deposits from individuals, funds 
+  -- Mortgages, and pays Dividends.
+  fun SavingsAndLoan : Class ;
+  fun SavingsAndLoan_Class : SubClass SavingsAndLoan FinancialCompany ;
+
+  -- Any AbnormalAnatomicalStructure which results from the 
+  -- healing of a Lesion.
+  fun Scar : Class ;
+  fun Scar_Class : SubClass Scar AbnormalAnatomicalStructure ;
+
+  -- Any Funding which is made on the basis of merit 
+  -- and whose purpose is to allow the destination to realize an 
+  -- EducationalProgram.
+  fun Scholarship : Class ;
+  fun Scholarship_Class : SubClass Scholarship Funding ;
+
+  -- An EducationalOrganization with a curriculum, 
+  -- teachers, and students. Most Schools are housed in a Building 
+  -- dedicated to the EducationalOrganization.
+  fun School : Class ;
+  fun School_Class : SubClass School EducationalOrganization ;
+
+  -- Any FieldOfStudy which tests theories on the basis of 
+  -- careful observations and/or experiments and which has a cumulative body of results.
+  fun Science : Class ;
+  fun Science_Class : SubClass Science FieldOfStudy ;
+
+  -- A successful attempt to score a point in a Game.
+  fun Score : Class ;
+  fun Score_Class : SubClass Score GameShot ;
+
+  -- An AttachingDevice which contains a spiral of grooves to 
+  -- hold it in place and which is fastened with a Screwdriver.
+  fun Screw : Class ;
+  fun Screw_Class : SubClass Screw AttachingDevice ;
+
+  -- A Device that is used to rotate
+  -- a Screw, which by the action of its helical threads is driven into a 
+  -- medium that is softer than the material of the screw itself.
+  fun Screwdriver : Class ;
+  fun Screwdriver_Class : SubClass Screwdriver Device ;
+
+  -- The collection of Characters in a particular 
+  -- written language. Every WrittenCommunication consists of Characters 
+  -- written in a particular script. Scripts include different typefaces, as 
+  -- well as entirely different characters. 'Times Roman' is a very specific 
+  -- script. While the 'latin' character set is a general one, that has 
+  -- specific subclasses like Times Roman. Other scripts include Devanagri 
+  -- (which may be expressed in many different more specific typefaces), or 
+  -- Simplified Chinese.
+  fun Script : Class ;
+  fun Script_Class : SubClass Script Collection ;
+
+  -- Any ArtWork which is not constructed on the 
+  -- two_dimensional surface of a canvas, piece of paper, etc.
+  fun Sculpture : Class ;
+  fun Sculpture_Class : SubClass Sculpture ArtWork ;
+
+  -- SeasonOfYear is the class of four 
+  -- seasons correlated with the calendar Year and associated with 
+  -- changes in the length of daylight and with overall temperature 
+  -- changes. Depending upon the GeographicArea, a SeasonOfYear 
+  -- may also be associated with weather patterns (e.g., rainy, dry, 
+  -- windy). The characteristics of seasons (cold vs. hot temperatures, 
+  -- long vs. short days) are reversed from the NorthernHemisphere 
+  -- to the SouthernHemisphere.
+  fun SeasonOfYear : Class ;
+  fun SeasonOfYear_Class : SubClass SeasonOfYear TimeInterval ;
+
+  -- Any instance of Furniture which is designed to 
+  -- accommodate Humans who are Sitting.
+  fun Seat : Class ;
+  fun Seat_Class : SubClass Seat Furniture ;
+
+  -- Guiding someone to a Seat, e.g. as when an usher 
+  -- shows someone to a Seat in an Auditorium.
+  fun Seating : Class ;
+  fun Seating_Class : SubClass Seating Guiding ;
+
+  -- A color that is the product of mixing together 
+  -- two or more PrimaryColors.
+  fun SecondaryColor : Class ;
+  fun SecondaryColor_Class : SubClass SecondaryColor ColorAttribute ;
+
+  -- A School which admits students who have 
+  -- graduated from a middle school and which normally covers the ninth through 
+  -- twelfth grades. A SecondarySchool confers a high school diploma.
+  fun SecondarySchool : Class ;
+  fun SecondarySchool_Class : SubClass SecondarySchool School ;
+
+  -- The head of the UnitedStatesDepartmentOfInterior.
+  fun SecretaryOfTheInterior : Ind GovernmentSecretary ;
+
+  -- The head of the United States Treasury Department.
+  fun SecretaryOfTheTreasury : Ind GovernmentSecretary ;
+
+  -- A SecurityDevice that detects intrusions to 
+  -- a StationaryArtifact and issues a warning of some sort.
+  fun SecurityAlarm : Class ;
+  fun SecurityAlarm_Class : SubClass SecurityAlarm (both ElectricDevice SecurityDevice) ;
+
+  -- A Device whose purpose is to protect people or 
+  -- property from kidnappers and/or thieves.
+  fun SecurityDevice : Class ;
+  fun SecurityDevice_Class : SubClass SecurityDevice Device ;
+
+  -- The Organization that is charged with 
+  -- ensuring the security of members of the overall Organization and the 
+  -- property of the Organization.
+  fun SecurityUnit : Class ;
+  fun SecurityUnit_Class : SubClass SecurityUnit Organization ;
+
+  -- Any instance of UnilateralGetting which is done by 
+  -- a Government and which is not permitted by the origin of the UnilateralGetting.
+  fun SeizingProperty : Class ;
+  fun SeizingProperty_Class : SubClass SeizingProperty UnilateralGetting ;
+
+  -- SelfPoweredDevice is 
+  -- the subclass of Devices whose action is powered by some kind of on_board 
+  -- component or power source (not the user, which would be a 
+  -- UserPoweredVehicle).
+  fun SelfPoweredDevice : Class ;
+  def SelfPoweredDevice = KappaFn Device (\O -> exists Artifact (\G -> powerPlant (var Device Device ? O) (var Artifact Artifact ? G))) ;
+
+  -- SelfPoweredRoadVehicle is the 
+  -- class of RoadVehicles that are also PoweredVehicles. 
+  -- SelfPoweredRoadVehicle covers motorcycles, semi_trailers, RVs, etc., 
+  -- as well as Automobiles. This class includes vehicles powered by 
+  -- electricity, gasoline, diesel, and other fuels.
+  fun SelfPoweredRoadVehicle : Class ;
+  fun SelfPoweredRoadVehicle_Class : SubClass SelfPoweredRoadVehicle (both PoweredVehicle RoadVehicle) ;
+
+  -- Any LegalDecision where the defendant is assigned 
+  -- a punishment for a CriminalAction which was the subject of an earlier 
+  -- LegalConviction.
+  fun Sentencing : Class ;
+  fun Sentencing_Class : SubClass Sentencing LegalDecision ;
+
+  -- A noncomissioned MilitaryOfficer.
+  fun Sergeant : Class ;
+  fun Sergeant_Class : SubClass Sergeant MilitaryOfficer ;
+
+  -- A Lecture that is part of a ReligiousService.
+  fun Sermon : Class ;
+  fun Sermon_Class : SubClass Sermon Lecture ;
+
+  -- Any LiquidBodySubstance other than Blood.
+  fun Serum : Class ;
+  fun Serum_Class : SubClass Serum LiquidBodySubstance ;
+
+  -- An Organization that performs 
+  -- a public service and is regulated by the Government.
+  fun ServiceOrganization : Class ;
+  fun ServiceOrganization_Class : SubClass ServiceOrganization Organization ;
+
+  -- Any Position which involves working 
+  -- as a waiter or servant, either for an Organization (e.g. a restaurant) 
+  -- or for a person or family.
+  fun ServicePosition : Class ;
+  fun ServicePosition_Class : SubClass ServicePosition SkilledOccupation ;
+
+  -- Working as a waiter or servant, either for an 
+  -- Organization (e.g. a Restaurant) or for a person or family.
+  fun Serving : Class ;
+  fun Serving_Class : SubClass Serving Working ;
+
+  -- A Pipline which is used to transport human 
+  -- waste to an area where it can be treated and/or disposed of.
+  fun SewageSystem : Class ;
+  fun SewageSystem_Class : SubClass SewageSystem Pipeline ;
+
+  -- Attaching two pieces of Fabric or one part of a 
+  -- piece of Fabric to another part by means of needle and thread.
+  fun Sewing : Class ;
+  fun Sewing_Class : SubClass Sewing Attaching ;
+
+  -- The subclass of ChangeOfPossession where a 
+  -- properPart of the patient is given by the agent or the destination.
+  fun Sharing : Class ;
+  fun Sharing_Class : SubClass Sharing ChangeOfPossession ;
+
+  -- A domesticated HoofedMammal that is bred for its 
+  -- wool and for its meat (known as mutton).
+  fun Sheep : Class ;
+  fun Sheep_Class : SubClass Sheep (both DomesticAnimal HoofedMammal) ;
+
+  -- An piece of Furniture or part of a piece of Furniture 
+  -- that is used for keeping or displaying things.
+  fun Shelf : Class ;
+  fun Shelf_Class : SubClass Shelf Artifact ;
+
+  -- A PoliceOfficer whose jurisdiction is a County.
+  fun Sheriff : Class ;
+  fun Sheriff_Class : SubClass Sheriff PoliceOfficer ;
+
+  -- An Artifact that is held by the hand or whole arm and 
+  -- is used to prevent injuries from Weapons.
+  fun Shield : Class ;
+  fun Shield_Class : SubClass Shield Artifact ;
+
+  -- Ship is the class of large WaterVehicle used 
+  -- for travel on oceans, seas, or large lakes.
+  fun Ship : Class ;
+  fun Ship_Class : SubClass Ship DisplacementHullWaterVehicle ;
+
+  -- The class of Positions which involve the command of a ship.
+  fun ShipCaptain : Class ;
+  fun ShipCaptain_Class : SubClass ShipCaptain Sailor ;
+
+  -- The class of Positions that involve some responsibility 
+  -- on a ship and are lower in rank than ShipCaptain.
+  fun ShipMate : Class ;
+  fun ShipMate_Class : SubClass ShipMate Sailor ;
+
+  -- The class of Sailors which have a position of 
+  -- responsibility on a Ship.
+  fun ShipOfficer : Class ;
+  fun ShipOfficer_Class : SubClass ShipOfficer Sailor ;
+
+  -- Shipping is the subclass of Transportation 
+  -- events in which goods are transported from one place to another by an 
+  -- agent who is entrusted with the goods temporarily just in order to move 
+  -- them. Shipping may be done within an organization or it may be done 
+  -- by an outside commercial agent. See CommercialShipping.
+  fun Shipping : Class ;
+  fun Shipping_Class : SubClass Shipping Transportation ;
+
+  -- An item of Clothing which covers the upper body of a Human.
+  fun Shirt : Class ;
+  fun Shirt_Class : SubClass Shirt Clothing ;
+
+  -- Clothing that is intended to be worn on the Foot. 
+  -- It consists of an upper, a sole, and a heel.
+  fun Shoe : Class ;
+  fun Shoe_Class : SubClass Shoe Clothing ;
+
+  -- The bottom part of a Shoe that is
+  -- intended to be the point of contact with the ground while the
+  -- shoe is being worn.
+  fun ShoeSole : Class ;
+  fun ShoeSole_Class : SubClass ShoeSole Artifact ;
+
+  -- A MercantileOrganization which is a collection 
+  -- of various shops gathered together in a single, modern development.
+  fun ShoppingMall : Class ;
+  fun ShoppingMall_Class : SubClass ShoppingMall MercantileOrganization ;
+
+  -- A brief work of fiction, often bound with other 
+  -- short stories in a Book or Periodical.
+  fun ShortStory : Class ;
+  fun ShortStory_Class : SubClass ShortStory (both Article FictionalText) ;
+
+  -- Decreasing the length of something.
+  fun Shortening : Class ;
+  fun Shortening_Class : SubClass Shortening Decreasing ;
+
+  -- A solid metal Ball that is used in the sport of shotput.
+  fun ShotBall : Class ;
+  fun ShotBall_Class : SubClass ShotBall Ball ;
+
+  -- The part of a Primate between the Arm and the neck.
+  fun Shoulder : Class ;
+  fun Shoulder_Class : SubClass Shoulder (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Moving the Shoulders in such a way that the motion 
+  -- is intended to express something to someone else.
+  fun Shrugging : Class ;
+  fun Shrugging_Class : SubClass Shrugging (both BodyMotion Gesture) ;
+
+  -- A prepared path for pedestrians alongside a Roadway.
+  fun Sidewalk : Class ;
+  fun Sidewalk_Class : SubClass Sidewalk StationaryArtifact ;
+
+  -- Signalling is the subclass of Guiding 
+  -- processes in which an agent, animate or inanimate, sends a signal to 
+  -- another Object. In many cases, this signal will be an electrical or 
+  -- electronic one. Some signals may directly control the behavior of 
+  -- the object signalled, while others may merely cause information to be 
+  -- presented. Instances of electrical Signalling are typically more 
+  -- complex than simply than operation of a DeviceSwitch, though in some 
+  -- cases, Signalling involves remote activation of such a switch by another 
+  -- device.
+  fun Signalling : Class ;
+  fun Signalling_Class : SubClass Signalling Guiding ;
+
+  -- Fabric that is woven from the strands produced by 
+  -- certain Larval Insects.
+  fun Silk : Class ;
+  fun Silk_Class : SubClass Silk Fabric ;
+
+  -- The class of Falling processes that occur in a BodyOfWater.
+  fun Sinking : Class ;
+  fun Sinking_Class : SubClass Sinking Falling ;
+
+  -- The BodyMotion of moving from a Standing 
+  -- to a Sitting position.
+  fun SittingDown : Class ;
+  fun SittingDown_Class : SubClass SittingDown (both BodyMotion MotionDownward) ;
+
+  -- Any ArtWork which is produced by a pencil or 
+  -- piece of charcoal.
+  fun Sketch : Class ;
+  fun Sketch_Class : SubClass Sketch ArtWork ;
+
+  -- Any Position which requires 
+  -- learning a set of skills.
+  fun SkilledOccupation : Class ;
+  fun SkilledOccupation_Class : SubClass SkilledOccupation Position ;
+
+  -- A BodyCovering that comprises part of the surface of Animals.
+  fun Skin : Class ;
+  fun Skin_Class : SubClass Skin (both AnimalAnatomicalStructure BodyCovering) ;
+
+  -- The Bone that is found in the Heads of Vertebrates.
+  fun Skull : Class ;
+  fun Skull_Class : SubClass Skull Bone ;
+
+  -- A Window that is part of the Ceiling of 
+  -- a Room.
+  fun Skylight : Class ;
+  fun Skylight_Class : SubClass Skylight Window ;
+
+  -- A piece of Clothing that covers the Arm. A 
+  -- Sleeve is always part of a Coat or a Shirt.
+  fun Sleeve : Class ;
+  fun Sleeve_Class : SubClass Sleeve Clothing ;
+
+  -- Spreading the lips in such a way as to convey 
+  -- happiness.
+  fun Smiling : Class ;
+  fun Smiling_Class : SubClass Smiling FacialExpression ;
+
+  -- Inhaling and exhaling Smoke produced by a CigarOrCigarette.
+  fun Smoking : Class ;
+  fun Smoking_Class : SubClass Smoking RecreationOrExercise ;
+
+  -- Any Device whose purpose is Smoking.
+  fun SmokingDevice : Class ;
+  fun SmokingDevice_Class : SubClass SmokingDevice Device ;
+
+  -- A SmokingDevice consisting of a tube and a small bowl.
+  fun SmokingPipe : Class ;
+  fun SmokingPipe_Class : SubClass SmokingPipe SmokingDevice ;
+
+  -- Any instance Transportation which is also a CriminalAction.
+  fun Smuggling : Class ;
+  fun Smuggling_Class : SubClass Smuggling (both CriminalAction Transportation) ;
+
+  -- A long and narrow Reptile which lacks Limbs.
+  fun Snake : Class ;
+  fun Snake_Class : SubClass Snake Reptile ;
+
+  -- The ConsciousnessAttribute of someone whose motor and
+  -- cognitive faculties are not significantly impaired by a BiologicallyActiveSubstance.
+  fun Sober : Ind ConsciousnessAttribute ;
+
+  -- The process of transitioning from a state of 
+  -- being Drunk to a state of being Sober.
+  fun SoberingUp : Class ;
+  fun SoberingUp_Class : SubClass SoberingUp PsychologicalProcess ;
+
+  -- Any Meeting where the intent is primarily 
+  -- to socialize and be entertained.
+  fun SocialParty : Class ;
+  fun SocialParty_Class : SubClass SocialParty (both Meeting RecreationOrExercise) ;
+
+  -- Any Science which studies human behavior, either in 
+  -- the aggregate, as do, for example, Economics and Linguistics, or with respect to 
+  -- the individual, as does Psychology.
+  fun SocialScience : Class ;
+  fun SocialScience_Class : SubClass SocialScience Science ;
+
+  -- A piece of Clothing that is made of a soft Fabric 
+  -- like Cotton and that is intended to be worn on the Foot.
+  fun Sock : Class ;
+  fun Sock_Class : SubClass Sock Clothing ;
+
+  -- SodiumChloride is the compound of Sodium and Chloride,
+  -- which may appear in crystalline form or in solution with water or other substances.
+  -- It is a compound found in solution in significant quantities in sea water.
+  fun SodiumChloride : Class ;
+  fun SodiumChloride_Class : SubClass SodiumChloride ChemicalSalt ;
+
+  -- A padded Seat that is designed to accommodate more than one Human.
+  fun Sofa : Class ;
+  fun Sofa_Class : SubClass Sofa Seat ;
+
+  -- Attaching two things by means of a MetallicAlloy.
+  fun Soldering : Class ;
+  fun Soldering_Class : SubClass Soldering Attaching ;
+
+  -- The class of SkilledOccupations which involve serving in 
+  -- the armed forces of a Nation.
+  fun Soldier : Class ;
+  fun Soldier_Class : SubClass Soldier SkilledOccupation ;
+
+  -- Any BodyMotion which begins and ends in 
+  -- a Sitting position and where the feet roll over the head and return to 
+  -- their original position.
+  fun Somersaulting : Class ;
+  fun Somersaulting_Class : SubClass Somersaulting BodyMotion ;
+
+  -- Something that emits and receives sound 
+  -- for the purpose of locating and tracking distant objects. Note that
+  -- this covers both manmade devices and BodyParts such as the sonar
+  -- of bats and dolphins.
+  fun Sonar : Class ;
+  fun Sonar_Class : SubClass Sonar CorpuscularObject ;
+
+  -- Any MusicalComposition which contains Lyrics.
+  fun Song : Class ;
+  fun Song_Class : SubClass Song MusicalComposition ;
+
+  -- Food which is prepared by reducing Meat 
+  -- and/or FruitOrVegetables to a translucent broth which can be used as 
+  -- a base for soups or sauces.
+  fun SoupStock : Class ;
+  fun SoupStock_Class : SubClass SoupStock PreparedFood ;
+
+  -- The class of all Regions which are not GeographicAreas.
+  fun SpaceRegion : Class ;
+  fun SpaceRegion_Class : SubClass SpaceRegion Region ;
+
+  -- Any instance of Transportation where the 
+  -- instrument is a Spacecraft and which is through a SpaceRegion.
+  fun SpaceTransportation : Class ;
+  fun SpaceTransportation_Class : SubClass SpaceTransportation Transportation ;
+
+  -- Any Vehicle which is capable of SpaceTransportation.
+  fun Spacecraft : Class ;
+  fun Spacecraft_Class : SubClass Spacecraft Vehicle ;
+
+  -- A Romance language that is the official language 
+  -- of Spain, Mexico, and many Central and South American countries.
+  fun SpanishLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
+
+  -- A Weapon with a long handle and a short blade.
+  fun Spear : Class ;
+  fun Spear_Class : SubClass Spear Weapon ;
+
+  -- The class of ThreeDimensionalFigures such that 
+  -- all GeometricPoints that make up the Sphere are equidistant from a 
+  -- single GeometricPoint, known as the center of the Sphere.
+  fun Sphere : Class ;
+  fun Sphere_Class : SubClass Sphere ThreeDimensionalFigure ;
+
+  -- A cord of nerves that carries impulses to 
+  -- and from the Brain. It is contained within the SpinalColumn.
+  fun SpinalCord : Class ;
+  fun SpinalCord_Class : SubClass SpinalCord Organ ;
+
+  -- Any instance of Impelling where the origin is 
+  -- the Mouth of the agent.
+  fun Spitting : Class ;
+  fun Spitting_Class : SubClass Spitting Impelling ;
+
+  -- An Organ on the left side of the body that produces 
+  -- Cells that play a crucial role in immune response.
+  fun Spleen : Class ;
+  fun Spleen_Class : SubClass Spleen (both AnimalAnatomicalStructure Organ) ;
+
+  -- The BodyPosition of extending one's Legs at 
+  -- right angles to one's Torso.
+  fun Splitting : Ind BodyPosition ;
+
+  -- A GameShot which is part of a Sport and 
+  -- which serves to start the Sport, e.g. the beginning shot in Tennis, 
+  -- Badminton or Squash.
+  fun SportServe : Class ;
+  fun SportServe_Class : SubClass SportServe GameShot ;
+
+  -- Any GameAttribute that is specific to 
+  -- a Sport.
+  fun SportsAttribute : Class ;
+  fun SportsAttribute_Class : SubClass SportsAttribute GameAttribute ;
+
+  -- A specially designated and maintained facility 
+  -- where Sports are played. Note that this covers sports fields, stadiums, 
+  -- and gymnasiums.
+  fun SportsFacility : Class ;
+  fun SportsFacility_Class : SubClass SportsFacility StationaryArtifact ;
+
+  -- A specially designated and maintained area 
+  -- where Sports are played.
+  fun SportsGround : Class ;
+  fun SportsGround_Class : SubClass SportsGround StationaryArtifact ;
+
+  -- An Organization whose members are SportsTeams 
+  -- and whose purpose is to set up games between its members.
+  fun SportsLeague : Class ;
+  fun SportsLeague_Class : SubClass SportsLeague Organization ;
+
+  -- A SportsAttribute that indicates that a player in 
+  -- a Sport can no longer compete because he has been tagged with the GamePiece.
+  fun SportsOut : Ind SportsAttribute ;
+
+  -- A Plan for a Maneuver within a TeamSport.
+  fun SportsPlay : Class ;
+  fun SportsPlay_Class : SubClass SportsPlay Plan ;
+
+  -- A Position which is filled by someone on a 
+  -- SportsTeam and which represents the role played by the person on the team.
+  fun SportsPosition : Class ;
+  fun SportsPosition_Class : SubClass SportsPosition SkilledOccupation ;
+
+  -- A GroupOfPeople who habitually play a Sport 
+  -- together, either as an occupation or as a leisure activity.
+  fun SportsTeam : Class ;
+  fun SportsTeam_Class : SubClass SportsTeam GroupOfPeople ;
+
+  -- Any instance of Transfer of a Liquid which is 
+  -- accomplished by converting the Liquid into a mist.
+  fun Spraying : Class ;
+  fun Spraying_Class : SubClass Spraying (both LiquidMotion Transfer) ;
+
+  -- The SeasonOfYear that begins at the spring 
+  -- equinox and ends at the summer solstice. SpringSeason is the class of 
+  -- TimeIntervals associated with the calendar months of March 
+  -- through May.
+  fun SpringSeason : Class ;
+  fun SpringSeason_Class : SubClass SpringSeason SeasonOfYear ;
+
+  -- Any Rectangle whose sides are all equal.
+  fun Square : Class ;
+  fun Square_Class : SubClass Square Rectangle ;
+
+  -- SquareMile represents a UnitOfMeasure equal to one square Mile.
+  fun SquareMile : Ind UnitOfArea ;
+
+  -- SquareYard represents a UnitOfMeasure equal to one square YardLength.
+  fun SquareYard : Ind UnitOfArea ;
+
+  -- Sitting on one's heels.
+  fun Squatting : Ind BodyPosition ;
+
+  -- A tree_dwelling Rodent with a bushy tail.
+  fun Squirrel : Class ;
+  fun Squirrel_Class : SubClass Squirrel Rodent ;
+
+  -- A Wagon that is pulled by Horses and whose purpose 
+  -- was to transport Humans and their luggage from one City to the next, especially 
+  -- in areas which did not have an established transportation system, e.g. the old west.
+  fun StageCoach : Class ;
+  fun StageCoach_Class : SubClass StageCoach Wagon ;
+
+  -- A StationaryArtifact which allows one to climb, step 
+  -- by step, from one level to another.
+  fun Stairway : Class ;
+  fun Stairway_Class : SubClass Stairway StationaryArtifact ;
+
+  -- The BodyMotion of moving from a Sitting 
+  -- to a Standing position.
+  fun StandingUp : Class ;
+  fun StandingUp_Class : SubClass StandingUp (both BodyMotion MotionUpward) ;
+
+  -- A complex Carbohydrate that is the main form in 
+  -- which Carbohydrates are stored.
+  fun Starch : Class ;
+  fun Starch_Class : SubClass Starch Carbohydrate ;
+
+  -- (StartFn ?PROCESS) denotes IntentionalProcesses 
+  -- of bringing it about that Processes of type ?PROCESS begin, e.g. start 
+  -- working, begin running, etc.
+  fun StartFn : El Process -> Desc IntentionalProcess ;
+
+  -- Killing someone by depriving them of Food.
+  fun Starving : Class ;
+  fun Starving_Class : SubClass Starving Killing ;
+
+  -- The class of Governments whose 
+  -- jurisdictions are StateOrProvinces.
+  fun StateGovernment : Class ;
+  fun StateGovernment_Class : SubClass StateGovernment Government ;
+
+  -- A Sentence that is stated to be true.
+  fun Statement : Class ;
+  def Statement = KappaFn Sentence (\SENTENCE -> exists Stating (\STATE -> result (var Stating Process ? STATE)
+                                                                                  (var Sentence Entity ? SENTENCE))) ;
+
+  -- Any UnilateralGetting which is not permitted by the 
+  -- origin of the UnilateralGetting. These cases of UnilateralGetting are 
+  -- distinguished from ones where the destination is the subject of charity or 
+  -- other forms of benefaction.
+  fun Stealing : Class ;
+  fun Stealing_Class : SubClass Stealing (both CriminalAction UnilateralGetting) ;
+
+  -- SteamEngine is the subclass of Engines 
+  -- that produce mechanical power from heat and steam pressure.
+  fun SteamEngine : Class ;
+  fun SteamEngine_Class : SubClass SteamEngine Engine ;
+
+  -- A MetallicAlloy made from Iron and other elements.
+  fun Steel : Class ;
+  fun Steel_Class : SubClass Steel MetallicAlloy ;
+
+  -- A component of a ReligiousBuilding that is tall 
+  -- and narrow and symbolizes the connection between humanity and a deity.
+  fun Steeple : Class ;
+  fun Steeple_Class : SubClass Steeple StationaryArtifact ;
+
+  -- A VehicleController which enables one to steer 
+  -- a Vehicle.
+  fun SteeringWheel : Class ;
+  fun SteeringWheel_Class : SubClass SteeringWheel VehicleController ;
+
+  -- The BodyMotion of extending one foot forward 
+  -- and then bringing the other foot to the same lateral position as the 
+  -- first leg.
+  fun Stepping : Class ;
+  fun Stepping_Class : SubClass Stepping BodyMotion ;
+
+  -- A StationaryArtifact which allows one to climb, step 
+  -- by step, from one level to another.
+  fun Steps : Class ;
+  fun Steps_Class : SubClass Steps StationaryArtifact ;
+
+  -- A class of OrganicCompounds having the same basic 
+  -- chemical structure and having significant physiological effects.
+  fun Steroid : Class ;
+  fun Steroid_Class : SubClass Steroid (both BiologicallyActiveSubstance OrganicCompound) ;
+
+  -- Any BiologicallyActiveSubstance which has 
+  -- the effect of stimulating the central nervous system, i.e. increasing 
+  -- function or activity in the Brain or SpinalCord.
+  fun Stimulant : Class ;
+  fun Stimulant_Class : SubClass Stimulant BiologicallyActiveSubstance ;
+
+  -- Any instance of LiquidMotion which is also an 
+  -- instance of Combining two or more Liquids.
+  fun Stirring : Class ;
+  fun Stirring_Class : SubClass Stirring (both Combining LiquidMotion) ;
+
+  -- An instrument that signifies an ownership position, 
+  -- or equity, in a Corporation, and represents a claim on its proportionate 
+  -- share in the corporation's assets and profits.
+  fun Stock : Class ;
+  fun Stock_Class : SubClass Stock (both FinancialInstrument Investment) ;
+
+  -- A muscular sac that is the principal organ of 
+  -- digestion.
+  fun Stomach : Class ;
+  fun Stomach_Class : SubClass Stomach (both AnimalAnatomicalStructure Organ) ;
+
+  -- An act where a victim or victims is attacked
+  -- with stones. The stones may either be placed on top of a victim in
+  -- order to cause death by pressure and suffocation, in which case the act
+  -- is typically part of a ritualized legal sentence, or where the victim
+  -- is pelted with stones causing injury or death by trauma. The intent
+  -- of such an act is usually the death of the victim.
+  fun Stoning : Class ;
+  fun Stoning_Class : SubClass Stoning ViolentContest ;
+
+  -- (StopFn ?PROCESS) denotes IntentionalProcesses of bringing it
+  -- about that Processes of type ?PROCESS end, e.g. stop walking, quit working, etc.
+  fun StopFn : El Process -> Desc IntentionalProcess ;
+
+  -- A Building that has the purpose of housing
+  -- FinancialTransactions.
+  fun Store : Class ;
+  fun Store_Class : SubClass Store Building ;
+
+  -- Someone who operates a store which he
+  -- either owns or rents.
+  fun StoreOwner : Ind OccupationalRole ;
+
+  -- The Region where two or more unstable air 
+  -- masses meet.
+  fun StormFront : Class ;
+  fun StormFront_Class : SubClass StormFront AtmosphericRegion ;
+
+  -- A HeatingDevice which consists one or more burners for 
+  -- heating pots and pans of Food.
+  fun Stove : Class ;
+  fun Stove_Class : SubClass Stove HeatingDevice ;
+
+  -- Any instance of Grabbing where the patient is 
+  -- someone else's throat and the intention is to make it impossible for the other 
+  -- person to breathe.
+  fun Strangling : Class ;
+  fun Strangling_Class : SubClass Strangling Grabbing ;
+
+  -- (StreetAddressFn ?BUILDING ?ROAD ?CITY 
+  -- ?COUNTRY) returns the Agent, e.g. a family, an organization, a person, 
+  -- etc. that resides or conducts business at the corresponding address.
+  fun StreetAddressFn : El StationaryArtifact -> El Roadway -> El City -> El Nation -> Ind Agent ;
+
+  -- Streetcar is the subclass of 
+  -- ElectrifiedRailwayCars that run on tracks laid into, along, or 
+  -- beside city Streets.
+  fun Streetcar : Class ;
+  fun Streetcar_Class : SubClass Streetcar ElectrifiedRailwayCar ;
+
+  -- A SoundAttribute of Syllables. It denotes the quality of
+  -- being emphasized over the other Syllables in the same Word.
+  fun Stressed : Ind SoundAttribute ;
+
+  -- Moving two sides of an object in opposite 
+  -- directions so that the object becomes both longer and thinner.
+  fun Stretching : Class ;
+  fun Stretching_Class : SubClass Stretching (both Lengthening Motion) ;
+
+  -- A long, thin strand of Fabric that is used for Tying 
+  -- things together, etc. Note that this class covers a cord of any width, including 
+  -- rope, twine, and thread, for example.
+  fun String : Class ;
+  fun String_Class : SubClass String Artifact ;
+
+  -- A MusicalInstrument which is played by 
+  -- striking strings, either directly as with a guitar or indirectly via keys 
+  -- as with Pianos.
+  fun StringInstrument : Class ;
+  fun StringInstrument_Class : SubClass StringInstrument MusicalInstrument ;
+
+  -- A person who participates in an
+  -- EducationalProcess in order to learn something.
+  fun Student : Ind SocialRole ;
+
+  -- A WaterVehicle which is capable of travelling 
+  -- under the water level by filling tanks with water.
+  fun Submarine : Class ;
+  fun Submarine_Class : SubClass Submarine WaterVehicle ;
+
+  -- A subway is a hollow area of the earth, typically
+  -- under large cities, designed for running trains that move people. It is
+  -- distinguished from other kinds of tunnels in that trains run through
+  -- them, primarily for the purpose of carrying people rather than ore, for
+  -- example.
+  fun Subway : Class ;
+  fun Subway_Class : SubClass Subway Hole ;
+
+  -- Any RailTransportationSystem that runs 
+  -- exclusively through Tunnels.
+  fun SubwaySystem : Class ;
+  fun SubwaySystem_Class : SubClass SubwaySystem RailTransportationSystem ;
+
+  -- Killing someone by asphyxiation, i.e. by 
+  -- depriving them of Oxygen.
+  fun Suffocating : Class ;
+  fun Suffocating_Class : SubClass Suffocating Killing ;
+
+  -- A simple Carbohydrate that has a sweet taste and 
+  -- consists mostly or entirely of sucrose.
+  fun Sugar : Class ;
+  fun Sugar_Class : SubClass Sugar (both Carbohydrate PlantAgriculturalProduct) ;
+
+  -- Any instance of Killing where the agent and 
+  -- the experiencer are identical.
+  fun Suicide : Class ;
+  fun Suicide_Class : SubClass Suicide Killing ;
+
+  -- A bomb attack in which the bomber
+  -- intends to blow himself up during the course of the attack. The bomber
+  -- is the delivery mechanism for the explosive and the bomb is typically
+  -- in close contact with the bomber, such as being strapped around his
+  -- torso. This action is distinguished from actions in which the bomber
+  -- merely happens to be blown up by his own bomb in that the bomber
+  -- knows that he is committing suicide.
+  fun SuicideBombing : Class ;
+  fun SuicideBombing_Class : SubClass SuicideBombing (both Bombing Killing) ;
+
+  -- The SeasonOfYear that begins at the summer 
+  -- solstice and ends at the autumnal equinox.
+  fun SummerSeason : Class ;
+  fun SummerSeason_Class : SubClass SummerSeason SeasonOfYear ;
+
+  -- Any instance of RadiatingLight where the 
+  -- Sun (Sol) is the origin.
+  fun Sunlight : Class ;
+  fun Sunlight_Class : SubClass Sunlight RadiatingLight ;
+
+  -- The TimeInterval of each Day when the sun is rising 
+  -- and is partially overlapped by the horizon line.
+  fun Sunrise : Class ;
+  fun Sunrise_Class : SubClass Sunrise TimeInterval ;
+
+  -- The TimeInterval of each Day when the sun is setting 
+  -- and is partially overlapped by the horizon line.
+  fun Sunset : Class ;
+  fun Sunset_Class : SubClass Sunset TimeInterval ;
+
+  -- A Sentence that is assumed to be true, possibly 
+  -- just for the sake of argument.
+  fun Supposition : Class ;
+  def Supposition = KappaFn Sentence (\SENTENCE -> exists Supposing (\SUPPOSE -> result (var Supposing Process ? SUPPOSE)
+                                                                                        (var Sentence Entity ? SENTENCE))) ;
+
+  -- Surfactants, also known as Wetting agents, 
+  -- lower the surface tension of a Liquid, allowing easier spreading. The 
+  -- term surfactant is a compression of 'Surface active agent'. Surfactants 
+  -- are usually organic compounds that contain both hydrophobic and 
+  -- hydrophilic groups, and are thus semi_soluble in both organic and aqueous 
+  -- solvents.
+  fun Surfactant : Class ;
+  fun Surfactant_Class : SubClass Surfactant Substance ;
+
+  -- The Profession of being a surgeon, i.e. being a 
+  -- medical doctor who specializes in performing surgical operations.
+  fun Surgeon : Class ;
+  fun Surgeon_Class : SubClass Surgeon MedicalDoctor ;
+
+  -- The EmotionalState that one experiences when something 
+  -- unexpected and of significance occurs.
+  fun Surprise : Ind EmotionalState ;
+
+  -- An AnimalSubstance that contains SodiumChloride 
+  -- and is produced by the sweat glands.
+  fun Sweat : Class ;
+  fun Sweat_Class : SubClass Sweat AnimalSubstance ;
+
+  -- Removing small particles from the floor by means of 
+  -- a Broom.
+  fun Sweeping : Class ;
+  fun Sweeping_Class : SubClass Sweeping Removing ;
+
+  -- A FluidContainer that is filled with Water 
+  -- and that is used for Swimming.
+  fun SwimmingPool : Class ;
+  fun SwimmingPool_Class : SubClass SwimmingPool (both FluidContainer StationaryArtifact) ;
+
+  -- An EngineeringComponent which is capable of turning 
+  -- an ElectricDevice on and off.
+  fun SwitchDevice : Class ;
+  fun SwitchDevice_Class : SubClass SwitchDevice EngineeringComponent ;
+
+  -- A Weapon with a long blade and covered 
+  -- handle.
+  fun Sword : Class ;
+  fun Sword_Class : SubClass Sword Weapon ;
+
+  -- A sequence of Characters from the same Word 
+  -- that denote a single sound.
+  fun Syllable : Class ;
+  fun Syllable_Class : SubClass Syllable SymbolicString ;
+
+  -- A ShapeAttribute that applies to a 
+  -- SelfConnectedObject that can be divided into two copies of each other.
+  fun SymmetricShape : Ind ShapeAttribute ;
+
+  -- A piece of Furniture with four legs and a flat top. 
+  -- It is used either for eating, paperwork or meetings.
+  fun Table : Class ;
+  fun Table_Class : SubClass Table Furniture ;
+
+  -- Devices that are used in Ingesting (Eating 
+  -- and/or Drinking) a meal. This coves dishware, flatware, and glassware.
+  fun Tableware : Class ;
+  fun Tableware_Class : SubClass Tableware Device ;
+
+  -- A BodyPart which extends from the rear of the 
+  -- main body of some Vertebrates.
+  fun Tail : Class ;
+  fun Tail_Class : SubClass Tail AnimalAnatomicalStructure ;
+
+  -- Any VehicleLight which is attached to the back 
+  -- of a Vehicle.
+  fun Taillight : Class ;
+  fun Taillight_Class : SubClass Taillight VehicleLight ;
+
+  -- Any Process where the experiencer contracts a 
+  -- DiseaseOrSyndrome.
+  fun TakingIll : Class ;
+  fun TakingIll_Class : SubClass TakingIll PathologicProcess ;
+
+  -- Any instance of Translocation which starts on something other 
+  -- than an AtmosphericRegion and which has an instance of Flying as a subProcess.
+  fun TakingOff : Class ;
+  fun TakingOff_Class : SubClass TakingOff Translocation ;
+
+  -- A thin strip of Fabric or Paper that is used to attach 
+  -- two things.
+  fun Tape : Class ;
+  fun Tape_Class : SubClass Tape AttachingDevice ;
+
+  -- A Restaurant whose primary service is selling 
+  -- AlcoholicBeverages to customers.
+  fun Tavern : Class ;
+  fun Tavern_Class : SubClass Tavern Restaurant ;
+
+  -- A fee charged by a government on a product, income, or activity.
+  fun Tax : Class ;
+  fun Tax_Class : SubClass Tax ChargingAFee ;
+
+  -- A FormText that is used for calculating the amount 
+  -- of income tax owed in a given year.
+  fun TaxReturn : Class ;
+  fun TaxReturn_Class : SubClass TaxReturn FormText ;
+
+  -- An Automobile which is used to transport people 
+  -- on short trips in exchange for a fare.
+  fun Taxicab : Class ;
+  fun Taxicab_Class : SubClass Taxicab Automobile ;
+
+  -- A Taxonomy is a ClassificationScheme
+  -- that typically includes the salient concepts of a domain of
+  -- interest, plus, minimally, a binary `broader than'/`narrower
+  -- than' relation by which the concepts are linked. The `broader
+  -- than'/`narrower than' relation is usually conceived as set_ or
+  -- class_based subsumption, but taxonomies are notorious for
+  -- conflating the set membership and set subsumption (i.e.,
+  -- subset/superset) relations into a single `IS_A' relation. Some
+  -- taxonomies include additional binary relations, such as
+  -- `subpart'/`superpart'.
+  fun Taxonomy : Class ;
+  fun Taxonomy_Class : SubClass Taxonomy ClassificationScheme ;
+
+  -- A Beverage which is prepared by infusing tea leaves 
+  -- into hot water.
+  fun Tea : Class ;
+  fun Tea_Class : SubClass Tea (both Beverage PreparedFood) ;
+
+  -- The Profession of being a teacher.
+  fun Teacher : Ind Profession ;
+
+  -- Any Sport which is played by SportsTeams, e.g. 
+  -- Baseball and Football.
+  fun TeamSport : Class ;
+  fun TeamSport_Class : SubClass TeamSport Sport ;
+
+  -- The class of SalineSolutions produced by 
+  -- the lacrimal glands of the Eyes.
+  fun TearSubstance : Class ;
+  fun TearSubstance_Class : SubClass TearSubstance (both LiquidBodySubstance SalineSolution) ;
+
+  -- A HumanYouth between puberty and the age of 20.
+  fun Teenager : Class ;
+  fun Teenager_Class : SubClass Teenager HumanYouth ;
+
+  -- A Device that permits LinguisticCommunication 
+  -- between remote points by means of a code of aural dots and dashes that can 
+  -- be converted into letters of an alphabet.
+  fun Telegraph : Class ;
+  fun Telegraph_Class : SubClass Telegraph (both CommunicationDevice ElectricDevice) ;
+
+  -- A Device that permits LinguisticCommunication 
+  -- between remote points by converting sound into electrical signals that are 
+  -- then transmitted. When the signals are received, they are converted back 
+  -- into sound.
+  fun Telephone : Class ;
+  fun Telephone_Class : SubClass Telephone (both CommunicationDevice ElectricDevice) ;
+
+  -- A WireLine that carries telephone signals and 
+  -- allows users of Telephones or Telegraphs to communicate with one another.
+  fun TelephoneLine : Class ;
+  fun TelephoneLine_Class : SubClass TelephoneLine WireLine ;
+
+  -- Any instance of Speaking where the 
+  -- instrument of Communication is a Telephone.
+  fun Telephoning : Class ;
+  fun Telephoning_Class : SubClass Telephoning Speaking ;
+
+  -- Any instance of Broadcasting which 
+  -- is intended to be received by a Television.
+  fun TelevisionBroadcasting : Class ;
+  fun TelevisionBroadcasting_Class : SubClass TelevisionBroadcasting Broadcasting ;
+
+  -- A TelevisionReceiver is a Device for 
+  -- receiving television broadcast signals from a TelevisionStation. TelevisionReceiver A TelevisionReceiver is a Device for receiving 
+  -- television broadcast signals from a TelevisionStation or signals
+  -- transmitted through a cable from a CableTelevisionSystem.
+  fun TelevisionReceiver : Class ;
+  fun TelevisionReceiver_Class : SubClass TelevisionReceiver (both ReceiverDevice EngineeringComponent) ;
+
+  -- Any Stating which is both False and believed 
+  -- to be False by the agent of the Stating.
+  fun TellingALie : Class ;
+  fun TellingALie_Class : SubClass TellingALie Stating ;
+
+  -- Tissue that connects Muscle to Bone.
+  fun Tendon : Class ;
+  fun Tendon_Class : SubClass Tendon (both AnimalSubstance Tissue) ;
+
+  -- A MobileResidence that is made of Fabric and poles and 
+  -- can be easily assembled and disassembled.
+  fun Tent : Class ;
+  fun Tent_Class : SubClass Tent MobileResidence ;
+
+  -- A group that uses violent means in an
+  --  attempt to bring about their political aims. Those violent means are
+  --  distinguished from a war between nations, or a civil war in that the group
+  --  is at least partially clandestine and a significant proportion of its acts
+  --  are against non_military targets.
+  fun TerroristOrganization : Class ;
+  fun TerroristOrganization_Class : SubClass TerroristOrganization PoliticalOrganization ;
+
+  -- A FormText which is intended to measure some aspect 
+  -- of the cognitive capabilities, e.g. intelligence or knowledge of a domain, 
+  -- of the person taking the test.
+  fun TestForm : Class ;
+  fun TestForm_Class : SubClass TestForm (both FormText MeasuringDevice) ;
+
+  -- A Certificate that describes how a person's 
+  -- property is to be distributed after the death of the person.
+  fun Testament : Class ;
+  fun Testament_Class : SubClass Testament Certificate ;
+
+  -- Giving testimony as part of a JudicialProcess.
+  fun Testifying : Class ;
+  fun Testifying_Class : SubClass Testifying Stating ;
+
+  -- Any ExpressingApproval to a person for something 
+  -- that the person did in the past and that is regarded as being to the thanker's 
+  -- benefit.
+  fun Thanking : Class ;
+  fun Thanking_Class : SubClass Thanking ExpressingApproval ;
+
+  -- Often know as the stage, the 
+  -- Position of performing live plays.
+  fun TheaterProfession : Class ;
+  fun TheaterProfession_Class : SubClass TheaterProfession EntertainmentProfession ;
+
+  -- The systematic study of religious practice and religious truth.
+  fun Theology : Ind FieldOfStudy ;
+
+  -- Any Device that measures and represents 
+  -- TemperatureMeasure.
+  fun Thermometer : Class ;
+  fun Thermometer_Class : SubClass Thermometer MeasuringDevice ;
+
+  -- Any Committing where the thing promised 
+  -- is something that is deemed undesirable by the destination of the 
+  -- Committing.
+  fun Threatening : Class ;
+  fun Threatening_Class : SubClass Threatening Committing ;
+
+  -- A BodyVessel which connects the Mouth to the 
+  -- lungs and stomach.
+  fun Throat : Class ;
+  fun Throat_Class : SubClass Throat (both AnimalAnatomicalStructure BodyVessel) ;
+
+  -- Any instance of Impelling where the instrument is 
+  -- an Arm.
+  fun Throwing : Class ;
+  fun Throwing_Class : SubClass Throwing (both BodyMotion Impelling) ;
+
+  -- The thick, short Finger of each Hand.
+  fun Thumb : Class ;
+  fun Thumb_Class : SubClass Thumb Finger ;
+
+  -- Any instance of RadiatingSound which is caused by 
+  -- an instance of Lightning.
+  fun Thunder : Class ;
+  fun Thunder_Class : SubClass Thunder (both RadiatingSound WeatherProcess) ;
+
+  -- A Gland in the neck that produces HormoneTSH, 
+  -- which regulates body weight, metabolic rate, etc.
+  fun ThyroidGland : Class ;
+  fun ThyroidGland_Class : SubClass ThyroidGland Gland ;
+
+  -- A Hormone secreted by the ThyroidGland.
+  fun ThyroidHormone : Class ;
+  fun ThyroidHormone_Class : SubClass ThyroidHormone Hormone ;
+
+  -- A Certificate that allows the holder to perform 
+  -- a specified act once, e.g. ride a bus, attend a concert, obtain a prize, 
+  -- etc.
+  fun Ticket : Class ;
+  fun Ticket_Class : SubClass Ticket Certificate ;
+
+  -- Clothing that is intended to be worn around the 
+  -- Neck and knotted at the front.
+  fun TieClothing : Class ;
+  fun TieClothing_Class : SubClass TieClothing Clothing ;
+
+  -- The ContestAttribute that applies to all contestParticipants 
+  -- in a Contest when none of them have Won or Lost the Contest.
+  fun TieScore : Ind ContestAttribute ;
+
+  -- Any Process of Digging, e.g. breaking and 
+  -- turning over Soil that facilitates Agriculture.
+  fun Tilling : Class ;
+  fun Tilling_Class : SubClass Tilling (both Digging (both IntentionalProcess SurfaceChange)) ;
+
+  -- An Amphibian that lacks a Tail and lives at least 
+  -- partially outside of water.
+  fun Toad : Class ;
+  fun Toad_Class : SubClass Toad Amphibian ;
+
+  -- A FloweringPlant containing nicotine whose leaves 
+  -- are dried and then smoked or ingested.
+  fun Tobacco : Class ;
+  fun Tobacco_Class : SubClass Tobacco (both FloweringPlant PlantAgriculturalProduct) ;
+
+  -- The five extremities of a Foot.
+  fun Toe : Class ;
+  fun Toe_Class : SubClass Toe (both AnimalAnatomicalStructure (both BodyPart DigitAppendage)) ;
+
+  -- A Device for the disposal of wastes resulting from
+  -- urination and defecation.
+  fun Toilet : Class ;
+  fun Toilet_Class : SubClass Toilet Device ;
+
+  -- A StationaryArtifact which is meant to contain someone who is Dead.
+  fun Tomb : Class ;
+  fun Tomb_Class : SubClass Tomb StationaryArtifact ;
+
+  -- English mass unit that is equal to 2000 pounds.
+  fun TonMass : Ind UnitOfMass ;
+
+  -- Any SpokenHumanLanguage that uses pitch to 
+  -- differentiate otherwise identical words, e.g. Chinese.
+  fun TonalLanguage : Class ;
+  fun TonalLanguage_Class : SubClass TonalLanguage SpokenHumanLanguage ;
+
+  -- Part of the Mouth, used for Tasting Food, 
+  -- Vocalizing, and the initial stage of Digesting.
+  fun Tongue : Class ;
+  fun Tongue_Class : SubClass Tongue (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- Part of the Mouth, used for biting and chewing.
+  fun Tooth : Class ;
+  fun Tooth_Class : SubClass Tooth Bone ;
+
+  -- A small BrushOrComb with relatively soft
+  -- bristles and a long handle, used for brushing teeth (see Tooth). It is
+  -- used help control bacteria living in the mouth. While most typically used
+  -- by humans on themselves, it can be used by Dentists on their
+  -- patients and by adults assisting children. They are occasionally used by
+  -- humans caring for pets, zoo animals and valuable livestock.
+  fun Toothbrush : Class ;
+  fun Toothbrush_Class : SubClass Toothbrush BrushOrComb ;
+
+  -- The body of a Primate excluding its Limbs.
+  fun Torso : Class ;
+  fun Torso_Class : SubClass Torso (both AnimalAnatomicalStructure BodyPart) ;
+
+  -- A tourist is a person who is travelling to a 
+  -- place primarily for reasons of entertainment or education, rather than
+  -- business, although business transaction may take place during the trip.
+  fun Tourist : Ind SocialRole ;
+
+  -- A tourist site is a location that has some
+  -- feature of interest to Tourists, which entertains or informs them.
+  fun TouristSite : Class ;
+  fun TouristSite_Class : SubClass TouristSite GeographicArea ;
+
+  -- A piece of Fabric which is used for Drying.
+  fun Towel : Class ;
+  fun Towel_Class : SubClass Towel Fabric ;
+
+  -- Any ContentDevelopment that results in a Blueprint.
+  fun Tracing : Class ;
+  fun Tracing_Class : SubClass Tracing (both ContentDevelopment SurfaceChange) ;
+
+  -- TractorTrailer is the subclass of 
+  -- RoadVehicles that are truck tractor_ truck trailer combinations.
+  fun TractorTrailer : Class ;
+  fun TractorTrailer_Class : SubClass TractorTrailer RoadVehicle ;
+
+  -- The state of being free from Anxiety.
+  fun Tranquility : Ind EmotionalState ;
+
+  -- A Device which is capable of converting one 
+  -- form of energy into another. Formally, a Twoport that neither stores 
+  -- nor dissipates, but only transfers energy between its two ports.
+  fun Transducer : Class ;
+  fun Transducer_Class : SubClass Transducer Device ;
+
+  -- Any process within an Organization 
+  -- where a person is moved from one Position to another, e.g. the promotion 
+  -- or demotion of an employee.
+  fun TransferringPosition : Class ;
+  fun TransferringPosition_Class : SubClass TransferringPosition OrganizationalProcess ;
+
+  -- A TransitSystem is a system of 
+  -- interconnected Transitways over which some type(s) of vehicles or 
+  -- travellers may pass. In addition to Transitways, TransitSystems 
+  -- may also include TransitJunctions and TransitTerminals. Transit 
+  -- systems may be demarcated by where they are located (e.g., the rail 
+  -- system of Afghanistan), who owns or manages them (e.g., American 
+  -- Airlines TransitSystem of AirRoutes, or state highways managed by 
+  -- TexDOT), or the type of vehicles or travellers accommodated (e.g., 
+  -- the system of Santa Clara county bike trails.
+  fun TransitSystem : Class ;
+  fun TransitSystem_Class : SubClass TransitSystem PhysicalSystem ;
+
+  -- A Transparent material is one through which
+  -- it is possible to have Seeing.
+  fun Transparent : Ind InternalAttribute ;
+
+  -- TransportViaRoadVehicle is the class of Transportation
+  -- events in which the instrument is an instance of
+  -- RoadVehicle.
+  fun TransportViaRoadVehicle : Class ;
+  def TransportViaRoadVehicle = both LandTransportation
+                                     (KappaFn Transportation (\TRANSPORT -> exists RoadVehicle (\VEHICLE -> instrument (var Transportation Process ? TRANSPORT) 
+                                                                                                                       (var RoadVehicle Object ? VEHICLE))));
+
+  -- A CommercialAgent whose services include Transportation, 
+  -- e.g. a RailroadCompany, an airline, a cruise ship line, etc.
+  fun TransportationCompany : Class ;
+  fun TransportationCompany_Class : SubClass TransportationCompany CommercialAgent ;
+
+  -- A Device whose purpose is to trap or cage Animals, 
+  -- i.e. to be in instrument in an act of Confining.
+  fun TrapOrCage : Class ;
+  fun TrapOrCage_Class : SubClass TrapOrCage Holder ;
+
+  -- Any Container which is intended to be 
+  -- used for carrying clothing, toiletries, and other personal effects that 
+  -- would be needed on a overnight trip.
+  fun TravelContainer : Class ;
+  fun TravelContainer_Class : SubClass TravelContainer Container ;
+
+  -- A Holder that is designed for Food, dishes, and 
+  -- flatware.
+  fun Tray : Class ;
+  fun Tray_Class : SubClass Tray Holder ;
+
+  -- Any SkilledOccupation which involves receiving 
+  -- and disbursing money.
+  fun Treasurer : Class ;
+  fun Treasurer_Class : SubClass Treasurer SkilledOccupation ;
+
+  -- Any Contract which holds between two or more Nations.
+  fun Treaty : Ind DeonticAttribute ;
+
+  -- Any PlantBranch which is part of a BotanicalTree.
+  fun TreeBranch : Class ;
+  fun TreeBranch_Class : SubClass TreeBranch PlantBranch ;
+
+  -- Any BodyMotion which is involuntary and which is 
+  -- repeated many times over a short time frame, e.g. a tremor in the hands,
+  -- shivering etc.
+  fun Trembling : Class ;
+  fun Trembling_Class : SubClass Trembling (both AutonomicProcess (both BodyMotion Tremor)) ;
+
+  -- Motion that involves rapidly Rotating between two positions.
+  fun Tremor : Class ;
+  fun Tremor_Class : SubClass Tremor Rotating ;
+
+  -- Entering property that does not belong to one and without 
+  -- the permission of the owner of the property.
+  fun Trespassing : Class ;
+  fun Trespassing_Class : SubClass Trespassing (both CriminalAction Translocation) ;
+
+  -- Any three_sided Polygon.
+  fun Triangle : Class ;
+  fun Triangle_Class : SubClass Triangle Polygon ;
+
+  -- A piece of Clothing that covers each Leg of a person separately.
+  fun Trousers : Class ;
+  fun Trousers_Class : SubClass Trousers Clothing ;
+
+  -- Any Vehicle that is intended to carry substantial
+  -- amounts of cargo, in addition to passengers. This includes 18_wheelers,
+  -- pickup trucks, tanker trucks etc. Consumer vehicles with trunks or enclosed
+  -- rear areas that can carry cargo are not defined as trucks. Truck is the subclass of RoadVehicles that 
+  -- are designed primarily for transporting various kinds of non_passenger 
+  -- loads. Truck is the class of single_bodied trucks or TruckTractors. 
+  -- Note: TractorTrailer combinations are a distinct class. Truck an automotive vehicle suitable for hauling
+  fun Truck : Class ;
+  fun Truck_Class : SubClass Truck (both CargoVehicle SelfPoweredRoadVehicle) ;
+
+  -- TruckTractor is the subclass of Trucks that are used to tow truck trailers.
+  -- Truck tractors are the cab portions of tractor_trailers. See also TruckTrailer.
+  fun TruckTractor : Class ;
+  fun TruckTractor_Class : SubClass TruckTractor Truck ;
+
+  -- TruckTrailer is the subclass of Wagons 
+  -- that are towed by TruckTractors. These are the trailers used in 
+  -- tractor_trailer (semi_trailer) rigs.
+  fun TruckTrailer : Class ;
+  fun TruckTrailer_Class : SubClass TruckTrailer Wagon ;
+
+  -- A long, narrow, and hollow Artifact that is designed for 
+  -- moving Fluids from place to another.
+  fun Tube : Class ;
+  fun Tube_Class : SubClass Tube Artifact ;
+
+  -- A BacterialDisease caused by the Tubercle Bacillus 
+  -- that results in lesions on various body parts, especially the Lungs. Tuberculosis A disease that usually infects the lungs and causes severe 
+  -- coughing. In some cases it will result in hemorrhage of the lungs.
+  fun Tuberculosis : Ind BacterialDisease ;
+
+  -- Any AbnormalAnatomicalStructure which consists of a 
+  -- mass of Tissue. Note that this class covers both malignant (i.e. cancerous) 
+  -- and benign tumors.
+  fun Tumor : Class ;
+  fun Tumor_Class : SubClass Tumor AbnormalAnatomicalStructure ;
+
+  -- An Engine which converts the kinetic energy of a moving 
+  -- Liquid (typically Water) into mechanical energy.
+  fun Turbine : Class ;
+  fun Turbine_Class : SubClass Turbine Engine ;
+
+  -- Any Process whose result is that the patient 
+  -- of the process is in the state of DeviceOff. In other words, this class covers 
+  -- any process of turning off a device, e.g. turning off the lights, switching off a 
+  -- television set, etc.
+  fun TurningOffDevice : Class ;
+  fun TurningOffDevice_Class : SubClass TurningOffDevice InternalChange ;
+
+  -- Any Process whose result is that the patient 
+  -- of the process is in the state of DeviceOn. In other words, this class covers 
+  -- any process of turning on a device, e.g. turning on the lights, switching on a 
+  -- television set, etc.
+  fun TurningOnDevice : Class ;
+  fun TurningOnDevice_Class : SubClass TurningOnDevice InternalChange ;
+
+  -- A real_world physical object
+  -- with a very flat aspect. This includes drawings on paper, cave
+  -- paintings and other surface alterations.
+  fun TwoDimensionalObject : Class ;
+  fun TwoDimensionalObject_Class : SubClass TwoDimensionalObject Object ;
+
+  -- The Process of tying two things, or two strands of 
+  -- the same thing, together.
+  fun Tying : Class ;
+  fun Tying_Class : SubClass Tying Attaching ;
+
+  -- An Attribute which indicates that the 
+  -- associated Object cannot be broken under normal usage conditions.
+  fun Unbreakable : Ind BreakabilityAttribute ;
+
+  -- The state of being unhappy, experiencing pain, 
+  -- sorrow or unease.
+  fun Unhappiness : Ind EmotionalState ;
+
+  -- An Organization comprised of workers from 
+  -- the same Corporation or Industry. The purpose of the UnionOrganization 
+  -- is to strengthen its representation in bargaining with the Corporation or 
+  -- Industry.
+  fun UnionOrganization : Class ;
+  fun UnionOrganization_Class : SubClass UnionOrganization Organization ;
+
+  -- Any Soldier that served on the union side during 
+  -- the American Civil War. UnionSoldier Any Soldier that served on the union
+  -- side during the American Civil War.
+  fun UnionSoldier : Class ;
+  fun UnionSoldier_Class : SubClass UnionSoldier Soldier ;
+
+  -- The states of the UnitedStates that the 
+  -- ConfederateStatesOfAmerica seceded from.
+  fun UnionStatesOfAmerica : Ind GeopoliticalArea ;
+
+  -- The legislative branch of the government 
+  -- of the UnitedStates.
+  fun UnitedStatesCongress : Ind LegislativeOrganization ;
+
+  -- Manages and preserves public lands and natural resources in the UnitedStates.
+  fun UnitedStatesDepartmentOfInterior : Ind GovernmentOrganization ;
+
+  -- The subOrganization of the US government that sets and enforces foreign policy.
+  fun UnitedStatesDepartmentOfState : Ind GovernmentOrganization ;
+
+  -- A School which admits students that 
+  -- have graduated from high school (known as undergraduate students) and 
+  -- students who have received a bachelor's degree (known as graduate 
+  -- students). A University confers both bachelor's and graduate 
+  -- degrees.
+  fun University : Class ;
+  fun University_Class : SubClass University PostSecondarySchool ;
+
+  -- Any Position which does not 
+  -- require learning a set of skills.
+  fun UnskilledOccupation : Class ;
+  fun UnskilledOccupation_Class : SubClass UnskilledOccupation ManualLabor ;
+
+  -- The Process of untying two things, or two strands 
+  -- of the same thing.
+  fun Untying : Class ;
+  fun Untying_Class : SubClass Untying Detaching ;
+
+  -- A PositionalAttribute to indicate that one thing is 
+  -- one or more floors above a second thing in the same building.
+  fun Upstairs : Ind PositionalAttribute ;
+
+  -- Urea is a dry, soluble, nitrogenous substance 
+  -- that is the major solid component of the urine of mammals, and which 
+  -- may be synthesized from ammonia and carbon dioxide, it is useful in the 
+  -- production of Plastic and in Fertilizers.
+  fun Urea : Class ;
+  fun Urea_Class : SubClass Urea OrganicCompound ;
+
+  -- Taking time off from Working.
+  fun Vacationing : Class ;
+  fun Vacationing_Class : SubClass Vacationing RecreationOrExercise ;
+
+  -- An event where the objective of the agent
+  -- is to damage or destroy some property of another agent. This is
+  -- distinguished from acts where the prime objective is damage or loss
+  -- of life of another agent.
+  fun Vandalism : Class ;
+  fun Vandalism_Class : SubClass Vandalism Destruction ;
+
+  -- An event in which a vehicle is used by an agent in order to inflict
+  -- injury, death or damage to people or property.
+  fun VehicleAttack : Class ;
+  fun VehicleAttack_Class : SubClass VehicleAttack ViolentContest ;
+
+  -- A VehicleController which is capable of stopping the motion of a Vehicle.
+  fun VehicleBrake : Class ;
+  fun VehicleBrake_Class : SubClass VehicleBrake VehicleController ;
+
+  -- Any Device which is used to start, stop or 
+  -- control the movements of a Vehicle. This class covers steering wheels, brakes, 
+  -- acceleration pedals, airplane sticks, etc.
+  fun VehicleController : Class ;
+  fun VehicleController_Class : SubClass VehicleController Device ;
+
+  -- Any LightFixture which is attached to the 
+  -- surface of a Vehicle and whose purpose is to illuminate that area around 
+  -- the Vehicle so that potential obstacles can be detected or alerted.
+  fun VehicleLight : Class ;
+  fun VehicleLight_Class : SubClass VehicleLight LightFixture ;
+
+  -- A VehicleController which controls the amount 
+  -- of Fuel which is supplied to the Engine.
+  fun VehicleThrottle : Class ;
+  fun VehicleThrottle_Class : SubClass VehicleThrottle VehicleController ;
+
+  -- A covering, usually made of rubber, for a Wheel.
+  fun VehicleTire : Class ;
+  fun VehicleTire_Class : SubClass VehicleTire Artifact ;
+
+  -- VehicleWheel is a class of cylindrical 
+  -- Devices used to move a RoadVehicle along a road, running either 
+  -- directly on the wheel rims or on tires attached to the wheel rims.
+  fun VehicleWheel : Class ;
+  fun VehicleWheel_Class : SubClass VehicleWheel Wheel ;
+
+  -- Any Window which is part of a Vehicle, 
+  -- e.g. the Windshield and RearWindow of an Automobile.
+  fun VehicleWindow : Class ;
+  fun VehicleWindow_Class : SubClass VehicleWindow Window ;
+
+  -- A piece of Clothing intended to cover or
+  -- obscure the face or hair of a Woman. This is commonly worn for
+  -- religious reasons when in public in Muslim countries, but is also customary
+  -- at Weddings and Funerals among some non_Muslim women.
+  fun Veil : Class ;
+  fun Veil_Class : SubClass Veil Clothing ;
+
+  -- Any BloodVessel which transfers Blood from 
+  -- the extremities of the body to the Heart.
+  fun Vein : Class ;
+  fun Vein_Class : SubClass Vein BloodVessel ;
+
+  -- A Device which is capable of Selling a Product to a customer
+  -- automatically when the customer inserts the appropriate amount of Currency.
+  fun VendingDevice : Class ;
+  fun VendingDevice_Class : SubClass VendingDevice Device ;
+
+  -- The Attribute that applies to someone who was a 
+  -- Soldier at one time, but is not currently a Soldier.
+  fun Veteran : Ind SocialRole ;
+
+  -- A representation of video on some medium such
+  -- as film, videotape or DVD. Instances of this class are also commonly
+  -- instances of AudioRecording.
+  fun VideoRecording : Class ;
+  fun VideoRecording_Class : SubClass VideoRecording ContentBearingObject ;
+
+  -- A StringInstrument that has four strings, a hollow 
+  -- body, and is played on the shoulder with a bow.
+  fun Violin : Class ;
+  fun Violin_Class : SubClass Violin StringInstrument ;
+
+  -- A disease that is caused by instances of 
+  -- Virus.
+  fun ViralDisease : Class ;
+  fun ViralDisease_Class : SubClass ViralDisease InfectiousDisease ;
+
+  -- Music which is produced (at least in part)
+  -- by Singing.
+  fun VocalMusic : Class ;
+  fun VocalMusic_Class : SubClass VocalMusic Music ;
+
+  -- Any School whose aim is to teach 
+  -- students an OccupationalTrade.
+  fun VocationalSchool : Class ;
+  fun VocationalSchool_Class : SubClass VocationalSchool School ;
+
+  -- A structure where Voting for an Election 
+  -- takes place.
+  fun VotingPoll : Class ;
+  fun VotingPoll_Class : SubClass VotingPoll StationaryArtifact ;
+
+  -- An AlphabeticCharacter that denotes a speech sound that 
+  -- does not result in audible friction when it is pronounced.
+  fun Vowel : Class ;
+  fun Vowel_Class : SubClass Vowel AlphabeticCharacter ;
+
+  -- A diurnal bird of prey with a bald head that 
+  -- feeds on carrion.
+  fun Vulture : Class ;
+  fun Vulture_Class : SubClass Vulture Bird ;
+
+  -- Any instance of Walking which occurs through a 
+  -- BodyOfWater.
+  fun Wading : Class ;
+  fun Wading_Class : SubClass Wading Walking ;
+
+  -- A Landcraft that is not self_propelled, but must be 
+  -- pulled by either an Animal or a self_propelled Vehicle to move along the 
+  -- ground.
+  fun Wagon : Class ;
+  fun Wagon_Class : SubClass Wagon LandVehicle ;
+
+  -- The process of transitioning from a state of being 
+  -- Asleep to a state of being Awake.
+  fun WakingUp : Class ;
+  fun WakingUp_Class : SubClass WakingUp PsychologicalProcess ;
+
+  -- A Device which has the form of a staff with 
+  -- a handle and which enables some people to walk with greater assurance.
+  fun WalkingCane : Class ;
+  fun WalkingCane_Class : SubClass WalkingCane Device ;
+
+  -- A StationaryArtifact that supports a Building or 
+  -- partitions it into Rooms.
+  fun Wall : Class ;
+  fun Wall_Class : SubClass Wall StationaryArtifact ;
+
+  -- Any decorative paper that is used to cover the 
+  -- Walls of Rooms.
+  fun Wallpaper : Class ;
+  fun Wallpaper_Class : SubClass Wallpaper ArtWork ;
+
+  -- A very large CommercialBuilding whose purpose is 
+  -- to store commodities.
+  fun Warehouse : Class ;
+  fun Warehouse_Class : SubClass Warehouse CommercialBuilding ;
+
+  -- A WashingDevice which is intended to be used by 
+  -- Humans for washing their Hands.
+  fun WashBasin : Class ;
+  fun WashBasin_Class : SubClass WashBasin WashingDevice ;
+
+  -- Removing small particles from something by means of 
+  -- a Detergent and Water.
+  fun Washing : Class ;
+  fun Washing_Class : SubClass Washing Removing ;
+
+  -- Any Device whose purpose is Washing 
+  -- something, e.g. washing machines, dishwashers, bathtubs, etc.
+  fun WashingDevice : Class ;
+  fun WashingDevice_Class : SubClass WashingDevice Device ;
+
+  -- A Container which is used for trash.
+  fun Wastebasket : Class ;
+  fun Wastebasket_Class : SubClass Wastebasket Container ;
+
+  -- A Clock that can be worn on the Wrist.
+  fun WatchClock : Class ;
+  def WatchClock = KappaFn Clock (\C -> exists Human (\P -> exists Wrist (\W -> and (wears (var Human Animal ? P)
+                                                                                           (var Clock Clothing ? C))
+                                                                                    (located (var Clock Physical ? C)
+                                                                                             (var Wrist Object ? W))))) ;
+
+  -- Any instance of Transportation where the instrument is a WaterVehicle.
+  fun WaterTransportation : Class ;
+  fun WaterTransportation_Class : SubClass WaterTransportation Transportation ;
+
+  -- WaterVehicle is the class of all TransportationDevices used to travel on or in water.
+  fun WaterVehicle : Class ;
+  fun WaterVehicle_Class : SubClass WaterVehicle Vehicle ;
+
+  -- A WaterWave is a raised ridge of water 
+  -- moving along the surface of a body of water. The WaterWave moves 
+  -- in a direction approximately transverse to the crest line of the wave. 
+  -- The patient of the WaterWave is successive regions of water, which 
+  -- do not travel in the direction of the wave or with it.
+  fun WaterWave : Class ;
+  fun WaterWave_Class : SubClass WaterWave LiquidMotion ;
+
+  -- Any Paint which is a water_based Solution.
+  fun WatercolorPaint : Class ;
+  fun WatercolorPaint_Class : SubClass WatercolorPaint Paint ;
+
+  -- Any PaintedPicture which is created 
+  -- with water_based paints.
+  fun WatercolorPicture : Class ;
+  fun WatercolorPicture_Class : SubClass WatercolorPicture PaintedPicture ;
+
+  -- Moving a Hand to indicate a greeting, farewell, 
+  -- recognition, goodwill, etc.
+  fun Waving : Class ;
+  fun Waving_Class : SubClass Waving HandGesture ;
+
+  -- Any Substance of high molecular weight that resembles 
+  -- beeswax.
+  fun Wax : Class ;
+  fun Wax_Class : SubClass Wax Substance ;
+
+  -- Nuclear, chemical and biological weapons. 
+  -- What these weapons have in common is that they are designed to kill large numbers 
+  -- of people indiscriminately.
+  fun WeaponOfMassDestruction : Class ;
+  fun WeaponOfMassDestruction_Class : SubClass WeaponOfMassDestruction Weapon ;
+
+  -- Any Saturday and Sunday which are contiguous.
+  fun Weekend : Class ;
+  fun Weekend_Class : SubClass Weekend TimeInterval ;
+
+  -- Expressing unhappiness by shedding tears.
+  fun Weeping : Class ;
+  fun Weeping_Class : SubClass Weeping FacialExpression ;
+
+  -- Any Funding which is provided by a ServiceOrganization 
+  -- to people in need.
+  fun Welfare : Class ;
+  fun Welfare_Class : SubClass Welfare Funding ;
+
+  -- A long CerealGrain which is produced by certain grasses and 
+  -- which is used to make BreadOrBiscuits.
+  fun WheatGrain : Class ;
+  fun WheatGrain_Class : SubClass WheatGrain CerealGrain ;
+
+  -- A circular Artifact which is a component of 
+  -- LandVehicles and of some Devices.
+  fun Wheel : Class ;
+  fun Wheel_Class : SubClass Wheel Artifact ;
+
+  -- A Weapon that consists of a thin strand of 
+  -- Fabric, usually Leather, and a handle by which the strand is 
+  -- impelled at a high rate of speed.
+  fun Whip : Class ;
+  fun Whip_Class : SubClass Whip Weapon ;
+
+  -- A DistilledAlcoholicBeverage that is prepared by 
+  -- distilling fermented grain mash.
+  fun Whiskey : Class ;
+  fun Whiskey_Class : SubClass Whiskey DistilledAlcoholicBeverage ;
+
+  -- BloodCells that lack hemoglobin, contain a 
+  -- CellNucleus, and have no color.
+  fun WhiteBloodCell : Class ;
+  fun WhiteBloodCell_Class : SubClass WhiteBloodCell BloodCell ;
+
+  -- A MercantileOrganization that sells its 
+  -- goods exclusively to Corporations.
+  fun WholesaleStore : Class ;
+  fun WholesaleStore_Class : SubClass WholesaleStore (both Agency MercantileOrganization) ;
+
+  -- The Attribute that applies to someone who was 
+  -- married to someone who has died, and who has not remarried.
+  fun Widowed : Ind SocialRole ;
+
+  -- A BotanicalTree of the genus Salix.
+  fun WillowTree : Class ;
+  fun WillowTree_Class : SubClass WillowTree BotanicalTree ;
+
+  -- A MusicalInstrument which is played by 
+  -- blowing it and which uses a reed, or resonator hole as in the case of a flute.
+  fun WindInstrument : Class ;
+  fun WindInstrument_Class : SubClass WindInstrument MusicalInstrument ;
+
+  -- Windmill is the subclass of Engines that 
+  -- produce mechanical power from Wind energy.
+  fun Windmill : Class ;
+  fun Windmill_Class : SubClass Windmill Engine ;
+
+  -- An Artifact composed of transparent material 
+  -- that admits light (and possibly air) into a Room, Building 
+  -- or Vehicle.
+  fun Window : Class ;
+  fun Window_Class : SubClass Window Artifact ;
+
+  -- An Artifact that is used to cover 
+  -- Windows. Note that this class includes blinds, drapes, shutters, 
+  -- etc.
+  fun WindowCovering : Class ;
+  fun WindowCovering_Class : SubClass WindowCovering Artifact ;
+
+  -- Any VehicleWindow which located at the front 
+  -- of an Automobile.
+  fun Windshield : Class ;
+  fun Windshield_Class : SubClass Windshield VehicleWindow ;
+
+  -- An AlcoholicBeverage that is prepared by fermenting 
+  -- the juice of grapes.
+  fun Wine : Class ;
+  fun Wine_Class : SubClass Wine (both AlcoholicBeverage PlantAgriculturalProduct) ;
+
+  -- Any Limb which is capable of being an 
+  -- instrument in Flying.
+  fun Wing : Class ;
+  fun Wing_Class : SubClass Wing Limb ;
+
+  -- The wings of Aircraft, i.e. the parts of Aircraft 
+  -- that allow them to become and remain airborne.
+  fun WingDevice : Class ;
+  fun WingDevice_Class : SubClass WingDevice EngineeringComponent ;
+
+  -- Any instance of ClosingEyes which is intended to 
+  -- express something to someone else.
+  fun Winking : Class ;
+  fun Winking_Class : SubClass Winking (both ClosingEyes Gesture) ;
+
+  -- The SeasonOfYear that begins at the winter 
+  -- solstice and ends at the spring equinox.
+  fun WinterSeason : Class ;
+  fun WinterSeason_Class : SubClass WinterSeason SeasonOfYear ;
+
+  -- A long, thin strand of Metal that is used in a wide 
+  -- range of applications, including the wiring of electrical systems, creating 
+  -- bundles and the construction of cages.
+  fun Wire : Class ;
+  fun Wire_Class : SubClass Wire Artifact ;
+
+  -- A Wire that is designed for conducting electricity.
+  fun WireLine : Class ;
+  fun WireLine_Class : SubClass WireLine (both EngineeringComponent Wire) ;
+
+  -- An EngineeringComponent consisting of a coil of 
+  -- Wire that returns to its original shape when pulled apart or pressed together.
+  fun WireSpring : Class ;
+  fun WireSpring_Class : SubClass WireSpring (both EngineeringComponent Wire) ;
+
+  -- The ContestAttribute that applies to a Contest 
+  -- participant who has won the Contest.
+  fun Won : Ind ContestAttribute ;
+
+  -- Tissue that comprises the inner trunk of Trees. 
+  -- It is often used in constructing Buildings and other Artifacts.
+  -- Wood is the principal substance making up a tree, and is distinguished from the
+  -- bark, roots, flowers, seeds, fruit and leaves.
+  fun Wood : Class ;
+  fun Wood_Class : SubClass Wood (both PlantSubstance Tissue) ;
+
+  -- Wood that has been cut (and perhaps treated) for 
+  -- some purpose, e.g. Constructing or Combustion. Note that this class covers 
+  -- both lumber and firewood.
+  fun WoodArtifact : Class ;
+  fun WoodArtifact_Class : SubClass WoodArtifact Artifact ;
+
+  -- Fabric that is made from the Hair of Sheep.
+  fun Wool : Class ;
+  fun Wool_Class : SubClass Wool Fabric ;
+
+  -- Sterile members of an Insect colony which 
+  -- are responsible for locating food and caring for eggs, larvae, etc.
+  fun WorkerInsect : Class ;
+  fun WorkerInsect_Class : SubClass WorkerInsect Insect ;
+
+  -- Any FinancialTransaction where someone exchanges 
+  -- his/her labor for an instance of CurrencyMeasure.
+  fun Working : Class ;
+  fun Working_Class : SubClass Working FinancialTransaction ;
+
+  -- A Room, suite of Rooms or Building which is 
+  -- devoted to hand_crafting Artifacts.
+  fun Workshop : Class ;
+  fun Workshop_Class : SubClass Workshop StationaryArtifact ;
+
+  -- The joint in the Arm connecting the radius and carpal bones.
+  fun Wrist : Class ;
+  fun Wrist_Class : SubClass Wrist BodyJoint ;
+
+  -- A Device whose purpose is to be an instrument 
+  -- of Writing, e.g. pens, pencils, crayons, etc.
+  fun WritingDevice : Class ;
+  fun WritingDevice_Class : SubClass WritingDevice Device ;
+
+  -- Any LinguisticCommunication where the 
+  -- instrument is a Text, e.g. a letter, an email, a memo, etc.
+  fun WrittenCommunication : Class ;
+  fun WrittenCommunication_Class : SubClass WrittenCommunication LinguisticCommunication ;
+
+  -- Electro_magnetic radiation of short wavelength, 
+  -- often made use of by devices that scan the inside of objects.
+  fun XRayRadiation : Class ;
+  fun XRayRadiation_Class : SubClass XRayRadiation Radiating ;
+
+  -- English unit of length, equal to 3 FeetLength.
+  fun YardLength : Ind UnitOfLength ;
+
+  -- (address ?AGENT ?ADDRESS) means that ?ADDRESS 
+  -- is an address or part of an address for the Agent ?AGENT.
+  fun address : El Agent -> El Address -> Formula ;
+
+  fun affiliatedOrganization : El Organization -> El Organization -> Formula ;
+
+  -- (alias ?STRING ?AGENT) means that ?STRING is an
+  -- alternate identifier for ?AGENT, and is likely being used to hide or
+  -- obscure ?AGENT's true identity.
+  fun alias : El SymbolicString -> El Agent -> Formula ;
+
+  -- (allegiance ?AGENT ?ENTITY) means that the CognitiveAgent 
+  -- ?AGENT owes its allegiance to the political entity ?ENTITY.
+  fun allegiance : El CognitiveAgent -> El CognitiveAgent -> Formula ;
+
+  -- (ancestorOrganization ?ORG1 ?ORG2) means that 
+  -- the Organization ?ORG1 descended from the Organization ?ORG2.
+  fun ancestorOrganization : El Organization -> El Organization -> Formula ;
+
+  -- (anniversary ?PHYSICAL ?TIME) means that 
+  -- ?TIME is the class of TimeIntervals which mark the anniversary of 
+  -- ?PHYSICAL. For example, (anniversary Christmas (DayFn 35 December)) 
+  -- means that Christmas is celebrated each year on the 25th of December.
+  fun anniversary : El Physical -> El TimeInterval -> Formula ;
+
+  -- (areaOfResponsibility ?AGENT ?PROCESS_TYPE ?AREA) means that ?AGENT
+  -- (typically an instance of Organization) is responsible or accountable for
+  -- actions or undertakings of type ?PROCESS_TYPE in the
+  -- GeographicArea denoted by ?AREA.
+  fun areaOfResponsibility : El Agent -> Desc Process -> El GeographicArea -> Formula ;
+
+  -- (arrested ?EVENT ?AGENT) means that during ?EVENT, ?AGENT is
+  -- taken into custody, typically by a representative of a law
+  -- enforcement organization.
+  fun arrested : El PlacingUnderArrest -> El Agent -> Formula ;
+
+  -- (aunt ?AUNT ?PERSON) means that ?AUNT is 
+  -- the sister of a parent of ?PERSON.
+  fun aunt : El Woman -> El Human -> Formula ;
+
+  -- (axis ?A ?OBJ) means that a part ?A of an Object ?OBJ
+  -- is the axis of rotation in a Rotating.
+  fun axis : El Object -> El Object -> Formula ;
+
+  -- (benefits ?PROCESS ?AGENT) means that
+  -- ?AGENT somehow derives benefit as a result of ?PROCESS. This is
+  -- a very general relation, and does not entail that ?AGENT is a
+  -- participant in ?PROCESS.
+  fun benefits : El Process -> El Agent -> Formula ;
+
+  -- (birthdate ?PERSON ?DAY) means that ?DAY is the 
+  -- Day on which the ?PERSON was born.
+  fun birthdate : El Human -> El Day -> Formula ;
+
+  -- (birthday ?PERSON ?DAY) means that ?DAY is the 
+  -- anniversary each year of the birth of ?PERSON. For example, (birthday 
+  -- WilliamJeffersonClinton (DayFn 19 August)) means that Bill Clinton's 
+  -- birthday is August 19th.
+  fun birthday : El Human -> El Day -> Formula ;
+
+  -- (birthplace ?INDIV ?PLACE) means that the Animal ?INDIV was born 
+  -- at the location ?PLACE. The location may be a geographic area or a building, such as a hospital.
+  fun birthplace : El Animal -> El Object -> Formula ;
+
+  -- (brandName ?NAME ?PRODUCT) means that ?NAME 
+  -- is the brand name for the product class ?PRODUCT, e.g. Cheerios is the 
+  -- brand name for a certain class of breakfast cereal.
+  fun brandName : El SymbolicString -> El Product -> Formula ;
+
+  -- (capacity ?OBJ ?QUANTITY) means that ?OBJ can contain 
+  -- something that has the measure of ?QUANTITY. This predicate denotes maximal 
+  -- capacity, i.e. ?OBJ can hold no more than ?QUANTITY. Note, however, that this 
+  -- does not mean that capacity is a SingleValuedRelation, since an object may 
+  -- have various maximal capacities across different dimensions, e.g. a particular 
+  -- box may have a capacity of 3 pounds and a capacity of 1 liter.
+  fun capacity : El SelfConnectedObject -> El ConstantQuantity -> Formula ;
+
+  -- (cargo ?EVENT ?OBJ) means that ?OBJ is transported as cargo in 
+  -- the Shipping event ?EVENT.
+  fun cargo : El Shipping -> El Object -> Formula ;
+
+  -- (changesLocation ?EVENT ?OBJECT) means that during the Translocation 
+  -- event ?EVENT, ?OBJECT's location changes. ?OBJECT might also be the agent,
+  -- patient, or experiencer of ?EVENT.
+  fun changesLocation : El Translocation -> El Object -> Formula ;
+
+  -- (cityAddress ?CITY ?ADDRESS) means that the 
+  -- City ?CITY is part of the address ?ADDRESS.
+  fun cityAddress : El City -> El Address -> Formula ;
+
+  -- (holdsDuring ?T1 (cohabitant ?H1 ?H2))
+  -- means that during the time ?T1, ?H1 and ?H2 have the same home.
+  fun cohabitant : El Human -> El Human -> Formula ;
+
+  -- (conjugate ?COMPOUND1 ?COMPOUND2) means that 
+  -- ?COMPOUND1 and ?COMPOUND2 are identical CompoundSubstances except that 
+  -- one has one more Proton than the other.
+  fun conjugate : El CompoundSubstance -> El CompoundSubstance -> Formula ;
+
+  -- (contestParticipant ?CONTEST ?AGENT) 
+  -- means that ?AGENT is one of the sides in the Contest ?CONTEST. For 
+  -- example, if the ?CONTEST is a football game, then ?AGENT would be one of 
+  -- the opposing teams. For another example, if ?CONTEST is a Battle, then 
+  -- ?AGENT would be one of the sides fighting each other.
+  fun contestParticipant : El Contest -> El Agent -> Formula ;
+
+  -- (controlled ?EVENT ?OBJECT) means that during the
+  -- AchievingControl denoted by ?EVENT, ?OBJECT comes to be
+  -- physically controlled by an Agent.
+  fun controlled : El AchievingControl -> El Object -> Formula ;
+
+  -- (conveyance ?EVENT ?OBJ) means that ?OBJ is the
+  -- Vehicle or other transportation device used in ?EVENT.
+  fun conveyance : El Transportation -> El TransportationDevice -> Formula ;
+
+  -- (cousin ?PERSON1 ?PERSON2) means that ?PERSON1 
+  -- and ?PERSON2 are cousins, i.e. ?PERSON1 and ?PERSON2 have grandparents 
+  -- (but not parents) in common.
+  fun cousin : El Human -> El Human -> Formula ;
+
+  -- (holdsDuring ?T1 (coworker ?H1 ?H2)) means
+  -- that during time ?T1, ?H1 and ?H2 are both employed by the same agent, are
+  -- of roughly the same job status, and come into contact at least part of the
+  -- time at the same work location.
+  fun coworker : El Human -> El Human -> Formula ;
+
+  -- (birthdate ?PERSON ?DAY) means that ?DAY is the 
+  -- Day on which the ?PERSON died.
+  fun deathdate : El Human -> El Day -> Formula ;
+
+  -- (deathplace ?INDIV ?PLACE) means that the Animal ?INDIV died 
+  -- at the location ?PLACE. The location may be a geographic area or a building, 
+  -- such as a hospital.
+  fun deathplace : El Animal -> El Object -> Formula ;
+
+  -- (deceptiveIdentifier ?OBJ ?AGENT)
+  -- means that ?AGENT presents ?OBJ as a representation of ?AGENT's `true'
+  -- identity, when in fact it is not.
+  fun deceptiveIdentifier : El ContentBearingObject -> El Agent -> Formula ;
+
+  -- (defendant ?AGENT ?ACTION) means the LegalAction 
+  -- ?ACTION makes a legal claim against ?AGENT.
+  fun defendant : El CognitiveAgent -> El LegalAction -> Formula ;
+
+  -- (detainee ?EVENT ?OBJECT) means that in the 
+  -- Confining ?EVENT, the Object ?OBJECT is restrained by force, threat, or 
+  -- other form of intimidation.
+  fun detainee : El Confining -> El Animal -> Formula ;
+
+  -- (deviceState ?DEVICE ?STATE) means that 
+  -- the Object ?DEVICE is in the DeviceStateAttribute ?STATE.
+  fun deviceState : El Object -> El DeviceStateAttribute -> Formula ;
+
+  -- (disapproves ?AGENT ?FORMULA) means that 
+  -- ?AGENT has a feeling of antipathy to the state of affairs represented by 
+  -- ?FORMULA, i.e. ?AGENT believes that the realization of ?FORMULA will 
+  -- thwart one of his/her goals. Note that there is no implication that what 
+  -- is disapproved of by an agent is not already true.
+  fun disapproves : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (dislikes ?AGENT ?OBJECT) means that ?AGENT has a 
+  -- feeling of antipathy to ?OBJECT, i.e. ?AGENT believes that ?OBJECT will 
+  -- thwart one of his/her goals. Note that there is no implication that what 
+  -- is hated by an agent is not already possessed by the agent.
+  fun dislikes : El CognitiveAgent -> El Object -> Formula ;
+
+  -- (distanceOnPath ?DIST ?PATH) means that for a given path (which is a pathInSystem) that the 
+  -- distance of the route is the measurement ?DIST. distanceOnPath (distanceOnPath ?DIST ?PATH) 
+  -- means that for a given path (which is a pathInSystem) that the distance of the route is
+  -- the measurement ?DIST.
+  fun distanceOnPath : El ConstantQuantity -> El Transitway -> Formula ;
+
+  -- (holdsDuring ?T1 (domesticPartner ?H1 ?H2)) means that during the time ?T1, ?H1
+  -- and ?H2 live together and share a common domestic life but are
+  -- not joined in a traditional marriage, a common_law marriage, or a
+  -- civil union.
+  fun domesticPartner : El Human -> El Human -> Formula ;
+
+  -- (doubts ?AGENT ?FORMULA) means that ?AGENT is unsure 
+  -- about the truth of ?FORMULA, in particular ?AGENT does not believe that 
+  -- ?FORMULA is true.
+  fun doubts : El CognitiveAgent -> Formula -> Formula ;
+
+  -- Models the effective range of some
+  -- device that is able to move by itself (like vehicles, rockets and so
+  -- on) or move other things (like weapons).
+  fun effectiveRange : El Device -> El LengthMeasure -> Formula ;
+
+  -- (electronNumber ?SUBSTANCE ?NUMBER) means that 
+  -- the PureSubstance ?SUBSTANCE has the number of Electrons ?NUMBER.
+  fun electronNumber : El PureSubstance -> El PositiveInteger -> Formula ;
+
+  -- (enjoys ?AGENT ?PROCESS) means that the 
+  -- CognitiveAgent ?AGENT tends to enjoy actions of type ?PROCESS, 
+  -- i.e. tends to enjoy being the agent or experiencer of such 
+  -- actions.
+  fun enjoys : El CognitiveAgent -> El IntentionalProcess -> Formula ;
+
+  -- (equipmentCount ?OBJECT ?TYPE ?QUANTITY) means that ?OBJECT 
+  -- is equipped with devices of the type ?TYPE, in the number ?QUANTITY. 
+  -- Equipment associated with an ?OBJECT may be a component of ?OBJECT 
+  -- (such as the emergency oxygen system built into passenger jets) or it may 
+  -- be a device simply located on or with ?OBJECT (such as a first aid kit).
+  fun equipmentCount : El Object -> Desc Device -> El Quantity -> Formula ;
+
+  -- (equipmentType ?THING ?TYPE) means that 
+  -- the Artifact ?THING has a component or attachment of Device ?TYPE. 
+  -- See also equipmentTypeCount.
+  fun equipmentType : El Artifact -> El Device -> Formula ;
+
+  -- Any belief about the future. (expects ?AGENT ?BELIEF) means that 
+  -- (believes ?AGENT ?BELIEF) and, if ?BELIEF happens, it will
+  -- happen in the future, i.e. after the expectation.
+  fun expects : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (experimentalControl ?EXPERIMENT ?OBJ) means that the Object ?OBJ
+  -- serves as a control in the instance of Experimenting ?EXPERIMENT, 
+  -- i.e. ?OBJ is the standard against which something else in 
+  -- the experiment can be compared.
+  fun experimentalControl : El Experimenting -> El Object -> Formula ;
+
+  -- (familyName ?STRING ?HUMAN) means that the SymbolicString ?STRING denotes a non_optional
+  -- name that ?HUMAN has inherited by virtue of being born into a
+  -- particular family (kin group). surname is another word for this type
+  -- of name. Cf. givenName.
+  fun familyName : El SymbolicString -> El Human -> Formula ;
+
+  -- (fears ?AGENT ?FORMULA) means that ?AGENT fears that 
+  -- the proposition ?FORMULA will be true, i.e. he/she believes that it will 
+  -- come to pass in the future and that it will be undesirable for ?AGENT.
+  fun fears : El CognitiveAgent -> Formula -> Formula ;
+
+  -- A formal banking, brokerage, or business 
+  -- relationship established to provide for regular services, dealings, and 
+  -- other financial transactions. (financialAccount ?ACCOUNT ?ORG) means that 
+  -- ?ACCOUNT is a financial account opened at the FinancialCompany 
+  -- ?ORG.
+  fun financialAccount : El FinancialAccount -> El FinancialCompany -> Formula ;
+
+  -- A predicate that relates an Agent to any 
+  -- item of economic value owned by the Agent. Examples of financial assets 
+  -- are cash, securities, accounts receivable, inventory, office equipment, a 
+  -- house, a car, and other property.
+  fun financialAsset : El Agent -> El Object -> Formula ;
+
+  -- (formerName ?NAME ?THING) means that the 
+  -- string ?NAME is a name formerly used for ?THING.
+  fun formerName : El Entity -> El Entity -> Formula ;
+
+  -- (holdsDuring ?T1 (friend ?H1 ?H2)) means that
+  -- during time ?T1, ?H1 and ?H2 know each other, share a relationship of
+  -- mutual care and concern, and probably also share some common interests.
+  fun friend : El Human -> El Human -> Formula ;
+
+  -- (gainsControl ?EVENT ?AGENT) means that during ?EVENT, ?AGENT
+  -- gains control of the patient (object).
+  fun gainsControl : El AchievingControl -> El Agent -> Formula ;
+
+  -- (givenName ?STRING ?HUMAN)
+  -- means that ?STRING is a name selected for ?HUMAN, usually from among
+  -- many options, as opposed to a mandatory name (cf. familyName) that
+  -- ?HUMAN has inherited by virtue of being born into a certain kin group,
+  -- caste, or occupation.
+  fun givenName : El SymbolicString -> El Human -> Formula ;
+
+  -- (grammaticalRelation ?PHRASE ?SENTENCE) 
+  -- means that the Phrase ?PHRASE has a grammatical relation to the Sentence 
+  -- ?SENTENCE, i.e. it is a subject, object, main verb, etc. of the ?SENTENCE.
+  fun grammaticalRelation : El Phrase -> El Sentence -> Formula ;
+
+  -- (grandfather ?PERSON ?PARENT) means that 
+  -- ?PARENT is the grandfather of ?PERSON.
+  fun grandfather : El Human -> El Man -> Formula ;
+
+  -- (grandmother ?PERSON ?PARENT) means that 
+  -- ?PARENT is the grandmother of ?PERSON.
+  fun grandmother : El Human -> El Woman -> Formula ;
+
+  -- (grandparent ?YOUNGER ?OLDER) means that
+  -- ?OLDER is a parent of ?YOUNGER's parent.
+  fun grandparent : El Human -> El Human -> Formula ;
+
+  -- A subrelation of member, groupMember 
+  -- is used to relate a Human to a GroupOfPeople of which he/she is a 
+  -- member.
+  fun groupMember : El Human -> El GroupOfPeople -> Formula ;
+
+  -- (half ?HALF ?WHOLE) means that ?HALF is one half 
+  -- of ?WHOLE.
+  fun half : El Object -> El Object -> Formula ;
+
+  -- (hasExpertise ?PERSON ?FIELD) means that ?PERSON has 
+  -- studied the FieldOfStudy ?FIELD and is regarded as an expert.
+  fun hasExpertise : El Human -> El FieldOfStudy -> Formula ;
+
+  -- (hasOccupation ?PERSON ?WORK) means that ?PERSON 
+  -- engages in activities of the class ?WORK as a means of earning a living.
+  fun hasOccupation : El Human -> Desc IntentionalProcess -> Formula ;
+
+  -- (headquartersOfOrganization ?ORG ?AREA) 
+  -- means that the Organization ?ORG is headquartered in ?AREA.
+  fun headquartersOfOrganization : El Organization -> El GeopoliticalArea -> Formula ;
+
+  -- (hopes ?AGENT ?FORMULA) means that ?AGENT hopes that 
+  -- the proposition ?FORMULA will be true, i.e. he/she believes that it will 
+  -- come to pass in the future and that it will be desirable for ?AGENT.
+  fun hopes : El CognitiveAgent -> Formula -> Formula ;
+
+  -- (hostileForces ?UNIT1 ?UNIT2) means that 
+  -- the MilitaryUnits ?UNIT1 and ?UNIT2 are, respectively, allied with 
+  -- GeopoliticalAreas that are at war with one another.
+  fun hostileForces : El MilitaryUnit -> El MilitaryUnit -> Formula ;
+
+  -- (humanCapacity ?CONSTRUCT ?NUMBER) means that the 
+  -- StationaryArtifact ?CONSTRUCT, e.g. a Building or a Room, can hold a maximum 
+  -- of ?NUMBER Humans without crowding.
+  fun humanCapacity : El StationaryArtifact -> El PositiveInteger -> Formula ;
+
+  -- (ideologicalAffiliationOfOrganization ?ORG ?GOV) means that one of the goals
+  -- of ?ORG is to realize the FormOfGovernment ?GOV.
+  fun ideologicalAffiliationOfOrganization : El Organization -> El FormOfGovernment -> Formula ;
+
+  -- Every instance of the first argument is initially 
+  -- found as part of an instance of the second argument, even though it 
+  -- might lose that part later in its lifetime. While the part must initially 
+  -- exist as part of a whole, this does not say that each whole necessarily initially 
+  -- contains such a part. For example, a thumb must at some time have been 
+  -- part of a hand, but every hand need not have a thumb, even at birth. This 
+  -- is a class_level relation roughly corresponding to part.
+  fun initialPart : Desc Object -> Desc Object -> Formula ;
+
+  -- Every instance of the second argument initially 
+  -- contains an instance of the first argument, even though it 
+  -- might lose that part later in its lifetime. Every normal human starts life with an
+  -- appendix for example. While the whole must initially 
+  -- contain such a part, this does not say that each part necessarily initially 
+  -- exists as part of such a whole. This is a class_level relation roughly 
+  -- corresponding to part.
+  fun initiallyContainsPart : Desc Object -> Desc Object -> Formula;
+
+  -- (intelligenceQuotient ?PERSON ?NUMBER) means that ?NUMBER is the I.Q. of ?PERSON. 
+  -- The I.Q. of a person is the ratio of their mental age (determined by a standardized test) 
+  -- divided by their chronological age, multiplied by 100.
+  fun intelligenceQuotient : El Human -> El RationalNumber -> Formula ;
+
+  -- (inventory ?CBO ?COLLECTION) means that 
+  -- the ContentBearingObject ?CBO contains a list or enumeration of the 
+  -- members of the Collection ?COLLECTION.
+  fun inventory : El ContentBearingObject -> El Collection -> Formula ;
+
+  -- (lacks ?AGENT ?OBJECT) means that ?AGENT needs 
+  -- ?OBJECT and it is not currently the case that ?AGENT possesses ?OBJECT.
+  fun lacks : El CognitiveAgent -> El Physical -> Formula ;
+
+  -- (landlord ?PERSON ?UNIT) means that ?PERSON is a 
+  -- landlord of the Residence ?UNIT, i.e. he or she owns ?UNIT and is renting 
+  -- the unit to someone else.
+  fun landlord : El Agent -> El PermanentResidence -> Formula ;
+
+  -- (holdsDuring ?T1 (legalGuardian ?H1 ?H2)) means that during the time ?T1,
+  -- ?H2 has legal authority over ?H1, and is responsible for looking after ?H1's interests.
+  fun legalGuardian : El Human -> El Human -> Formula ;
+
+  -- (localLongName ?NAME ?THING) means that the string ?NAME is the long form of the name
+  -- used for ?THING in its local area or language.
+  fun localLongName : El SymbolicString -> El Entity -> Formula ;
+
+  -- (localShortName ?NAME ?THING) means that the string ?NAME is the short form of the name
+  -- used for ?THING in its local area or language.
+  fun localShortName : El SymbolicString -> El Entity -> Formula ;
+
+  -- (locatedAtTime ?OBJ ?TIME ?PLACE) means
+  -- that during the time specified by ?TIME, ?OBJ was in the location
+  -- specified by ?PLACE.
+  fun locatedAtTime : El Object -> El TimePosition -> El Object -> Formula ;
+
+  -- (losesControl ?EVENT ?AGENT) means that during ?EVENT, ?AGENT
+  -- loses physical control of the controlled object.
+  fun losesControl : El ChangeOfControl -> El Agent -> Formula ;
+
+  -- The amount by which the cost of an investment or 
+  -- business operation exceeds its return, i.e. the negative quantity left 
+  -- after subtracting for all expenses.
+  fun loss : El FinancialTransaction -> El CurrencyMeasure -> Formula;
+
+  -- (measurementReading ?DEVICE ?QUANTITY) 
+  -- means that ?QUANTITY is a reading of the MeasuringDevice ?DEVICE, e.g. if 
+  -- ?THERMOMETER is a Thermometer, (measurementReading ?THERMOMETER 
+  -- (MeasureFn 42 CelsiusDegree)) would mean that ?THERMOMETER registers 42 
+  -- degrees Celsius.
+  fun measurementReading : El MeasuringDevice -> El ConstantQuantity -> Formula ;
+
+  -- (meatOfAnimal ?MEATCLASS ?ANIMALCLASS) states
+  -- that ?MEATCLASS was once part of the class of Animal ?ANIMALCLASS)
+  fun meatOfAnimal : Desc Meat -> Desc Animal -> Formula ;
+
+  -- A relation between a Human and a 
+  -- CareOrganization that treats the patient.
+  fun medicalPatient : El Human -> El CareOrganization -> Formula ;
+
+  -- (memberAtTime ?MEMBER ?COLLECTION
+  -- ?TIME) means that during the time period denoted by ?TIME,
+  -- ?MEMBER is a member of ?COLLECTION.
+  fun memberAtTime : El SelfConnectedObject -> El Collection -> El TimePosition -> Formula ;
+
+  -- (memberCount ?ORG ?NUMBER) means that there 
+  -- is a total ?NUMBER of members in the Collection ?ORG.
+  fun memberCount : El Collection -> El Integer -> Formula ;
+
+  -- (memberType ?GROUP ?TYPE) means that all 
+  -- the members of the Collection ?GROUP belong to the SetOrClass 
+  -- ?TYPE.
+  fun memberType : El Collection -> El SetOrClass -> Formula ;
+
+  -- (memberTypeCount ?GROUP ?TYPE ?NUMBER) means that the 
+  -- Collection ?GROUP has ?NUMBER members of the kind ?TYPE.
+  fun memberTypeCount : El Collection -> El SetOrClass -> El NonnegativeInteger -> Formula ;
+
+  -- (middleName ?CHAR ?INDIV) means that the 
+  -- SymbolicString ?CHAR contains the middle name of the Human ?INDIV.
+  fun middleName : El SymbolicString -> El Human -> Formula ;
+
+  -- (monetaryWage ?ORG ?PERSON ?TIME ?MONEY) means 
+  -- that the Organization employs ?PERSON and pays him/her the amount of money 
+  -- ?MONEY per TimeDuration ?TIME.
+  fun monetaryWage : El Organization -> El Human -> El TimeDuration -> El CurrencyMeasure -> Formula ;
+
+  -- (most ?MOST ?WHOLE) means that ?MOST is a part 
+  -- of ?WHOLE that is greater than half of ?WHOLE.
+  fun most : El Object -> El Object -> Formula ;
+
+  -- (moves ?MOTION ?OBJECT) means that during
+  -- the Motion event ?MOTION, ?OBJECT moves. This does not
+  -- necessarily imply that the location of ?OBJECT changes during
+  -- ?MOTION. See also changesLocation and Translocation.
+  fun moves : El Motion -> El Object -> Formula ;
+
+  -- (mutualStranger ?H1 ?H2) means that ?H1
+  -- and ?H2 have not met each other and do not know each other. Statements
+  -- made with this predicate should be temporally specified with
+  -- holdsDuring. See also the weaker, non_symmetric version of this
+  -- predicate, stranger.
+  fun mutualStranger : El Human -> El Human -> Formula ;
+
+  -- (neighbor ?PERSON1 ?PERSON2) means that ?PERSON1 is 
+  -- a neighbor of ?PERSON2, i.e. ?PERSON1 and ?PERSON2 have their homes Near 
+  -- one another.
+  fun neighbor : El Human -> El Human -> Formula ;
+
+  -- (nephew ?NEPHEW ?PERSON) means that ?NEPHEW is 
+  -- the son of a sibling of ?PERSON.
+  fun nephew : El Man -> El Human -> Formula ;
+
+  -- (niece ?NIECE ?PERSON) means that ?NIECE is 
+  -- the daughter of a sibling of ?PERSON.
+  fun niece : El Woman -> El Human -> Formula ;
+
+  -- (occupation ?PERSON ?TYPE) means that the occupation 
+  -- of ?PERSON is ?TYPE. This predicate is most often used in combination with the 
+  -- function OccupationFn, e.g. (occupation PoliceOfficerWilkins (OccupationFn 
+  -- LawEnforcement)).
+  fun occupation : El Human -> El FinancialTransaction -> Formula ;
+
+  -- (older ?OBJ1 ?OBJ2) means that ?OBJ1 is older than 
+  -- ?OBJ2, i.e. the age of ?OBJ1 is greaterThan the age of ?OBJ2.
+  fun older : El Object -> El Object -> Formula ;
+
+  -- (onboard ?OBJ ?VEHICLE) means that the 
+  -- SelfConnectedObject ?OBJ is inside the Vehicle ?VEHICLE.
+  fun onboard : El SelfConnectedObject -> El Vehicle -> Formula ;
+
+  -- (operator ?OBJECT ?AGENT) means that ?AGENT 
+  -- determines how ?OBJECT is used, either by directly or indirectly operating 
+  -- it.
+  fun operator : El Object -> El Agent -> Formula ;
+
+  -- (parasite ?ORGANISM1 ?ORGANISM2) means that there 
+  -- is a parasitic relationship between ?ORGANISM1 and ?ORGANISM2, i.e. ?ORGANISM1 
+  -- inhabits and obtains nourishment from ?ORGANISM2 in such a way that 
+  -- ?ORGANISM2 is injured.
+  fun parasite : El Organism -> El Organism -> Formula ;
+
+  -- (pathInSystem ?PATH ?SYSTEM) means that 
+  -- the Physical thing ?PATH consists of one or more connected routes in 
+  -- the PhysicalSystem ?SYSTEM.
+  fun pathInSystem : El Transitway -> El TransitSystem -> Formula ;
+
+  -- The relation of receiving medical care 
+  -- from a recognized medical practitioner. (patientMedical ?PATIENT 
+  -- ?DOCTOR) means that ?PATIENT is the patient of ?DOCTOR. Note that 
+  -- argument type restriction on the second argument is CognitiveAgent 
+  -- to allow for cases where someone is the patient of an Organization, 
+  -- viz. a CareOrganization.
+  fun patientMedical : El Human -> El CognitiveAgent -> Formula ;
+
+  -- (plaintiff ?ACTION ?AGENT) means that ?AGENT 
+  -- is responsible for initiating the LegalAction ?ACTION.
+  fun plaintiff : El LegalAction -> El CognitiveAgent -> Formula ;
+
+  -- (postalBoxNumber ?NUMBER ?ADDRESS) means 
+  -- that the post office box ?NUMBER is part of the address ?ADDRESS.
+  fun postalBoxNumber : El PositiveInteger -> El Address -> Formula ;
+
+  -- (postalCode ?NUMBER ?ADDRESS) means that the 
+  -- the postal code, e.g. zip code, ?NUMBER is part of the address ?ADDRESS.
+  fun postalCode : El PositiveInteger -> El Address -> Formula ;
+
+  -- (potentialOfHydrogen ?SOLUTION ?NUMBER) 
+  -- means that the Solution ?SOLUTION has a pH value of ?NUMBER. The ph varies 
+  -- between 0 and 14, and it is a measure of the acidity or alkalinity of ?SOLUTION. 
+  -- More precisely, and it is the logarithm of the reciprocal of the quantity of 
+  -- AtomGrams of Hydrogen ions.
+  fun potentialOfHydrogen : El Solution -> El RealNumber -> Formula ;
+
+  -- (powerPlant ?GENERATOR ?THING) means that 
+  -- the Device ?GENERATOR is the power_producing component of the Artifact 
+  -- ?THING which provides the energy for its operation.
+  fun powerPlant : El Device -> El Artifact -> Formula ;
+
+  -- (protonNumber ?SUBSTANCE ?NUMBER) means that 
+  -- the PureSubstance ?SUBSTANCE has the number of Protons ?NUMBER.
+  fun protonNumber : El PureSubstance -> El PositiveInteger -> Formula ;
+
+  -- (quarter ?QUART ?WHOLE) means that ?QUART is a 
+  -- quarter of ?WHOLE.
+  fun quarter : El Object -> El Object -> Formula ;
+
+  -- (reactant ?PROCESS ?SUBSTANCE) means that ?SUBSTANCE 
+  -- is a chemical reactant in the chemical reaction ?PROCESS, i.e. ?SUBSTANCE is 
+  -- present at the beginning of the chemical reaction ?PROCESS.
+  fun reactant : El ChemicalProcess -> El Substance -> Formula ;
+
+  -- (reagent ?PROCESS ?SUBSTANCE) means that ?SUBSTANCE 
+  -- is a chemical agent in the chemical reaction ?PROCESS.
+  fun reagent : El ChemicalProcess -> El Substance -> Formula ;
+
+  -- (registeredItem ?DOCUMENT ?ITEM) means 
+  -- that the Text ?DOCUMENT contains an official record of the Physical 
+  -- thing ?ITEM. The registered item could be an object or an event, e.g., 
+  -- an automobile, a ship, a marriage, an adoption.
+  fun registeredItem : El Text -> El Physical -> Formula ;
+
+  -- (religiousAffiliationOfOrganization ?ORG ?BELIEF) means
+  -- that one of the goals of ?ORG is to advance the religious teachings 
+  -- of the BeliefGroup ?BELIEF.
+  fun religiousAffiliationOfOrganization : El Organization -> El BeliefGroup -> Formula ;
+
+  -- (routeInSystem ?PART ?SYSTEM) means that 
+  -- the Transitway ?PART is an established route of the 
+  -- TransportationSystem ?SYSTEM.
+  fun routeInSystem : El Transitway -> El TransitSystem -> Formula ;
+
+  -- (secretesSubstance ?OBJ ?STUFF) means 
+  -- that the subclass of OrganicObject (either Organism or BodyPart) 
+  -- ?OBJ produces the subclass of Substance ?STUFF.
+  fun secretesSubstance : Desc OrganicObject -> Desc NaturalSubstance -> Formula ;
+
+  -- (sententialObject ?OBJECT ?SENTENCE) means that the NounPhrase ?OBJECT is 
+  -- the object of the Sentence ?SENTENCE.
+  fun sententialObject : El NounPhrase -> El Sentence -> Formula ;
+
+  -- (sententialSubject ?SUBJECT ?SENTENCE) means that the NounPhrase ?SUBJECT is
+  -- the subject of the Sentence ?SENTENCE.
+  fun sententialSubject : El NounPhrase -> El Sentence -> Formula ;
+
+  -- (serviceProvider ?EVENT ?AGENT)
+  -- means that ?AGENT is the supplier of the service provided in ?EVENT.
+  fun serviceProvider : El ServiceProcess -> El CognitiveAgent -> Formula ;
+
+  -- (serviceRecipient ?EVENT ?AGENT) means that ?AGENT is the
+  -- receiver of the service provided in ?EVENT.
+  fun serviceRecipient : El ServiceProcess -> El CognitiveAgent -> Formula ;
+
+  -- (sideOfFigure ?SIDE ?FIGURE) means that the 
+  -- OneDimensionalFigure ?POINT is a side of the GeometricFigure ?FIGURE.
+  fun sideOfFigure : El OneDimensionalFigure -> El GeometricFigure -> Formula ;
+
+  -- (sliceOfFigure ?SLICE ?FIGURE) indicates
+  -- that ?SLICE is a 2_d section of the 3_d figure ?FIGURE. Or, more 
+  -- formally, ?SLICE is 2_d figure formed by the intersection of a plane
+  -- with the 3_d figure ?FIGURE.
+  fun sliceOfFigure : El TwoDimensionalObject -> El CorpuscularObject -> Formula ;
+
+  -- A relation between a Process of 
+  -- MusicalTone and the fundamental frequency of that tone.
+  fun soundFrequency : El MusicalTone -> El FunctionQuantity -> Formula ;
+
+  -- (speaksLanguage ?AGENT ?LANGUAGE) means that the SentientAgent ?AGENT is
+  -- capable of understanding and/or generating the Language ?LANGUAGE.
+  fun speaksLanguage : El SentientAgent -> El Language -> Formula ;
+
+  -- (stepfather ?PERSON ?FATHER) means that ?FATHER 
+  -- is the stepfather of ?PERSON, i.e. ?FATHER is the spouse of the mother 
+  -- of ?PERSON, without also being the father of ?PERSON.
+  fun stepfather : El Human -> El Man -> Formula ;
+
+  -- (stepmother ?PERSON ?MOTHER) means that ?MOTHER 
+  -- is the stepmother of ?PERSON, i.e. ?MOTHER is the spouse of the father 
+  -- of ?PERSON, without also being the mother of ?PERSON.
+  fun stepmother : El Human -> El Woman -> Formula ;
+
+  -- (stockHolder ?Stock ?Agent) means that 
+  -- ?Agent possesses the Stock ?Stock.
+  fun stockHolder : El Stock -> El CognitiveAgent -> Formula ;
+
+  -- (stranger ?H1 ?H2) means that ?H1 has
+  -- not met ?H2, or, in other words, (not (acquaintance ?H1 ?H2)). 
+  -- Statements made with stranger should be temporally
+  -- specified with holdsDuring. Note that stranger is not
+  -- symmetric, meaning that ?H2 might know ?H1. For the symmetric
+  -- version, see mutualStranger.
+  fun stranger : El Human -> El Human -> Formula ;
+
+  -- (streetAddress ?STREET ?ADDRESS) means 
+  -- that the Roadway ?STREET is part of the address ?ADDRESS.
+  fun streetAddress : El Roadway -> El Address -> Formula ;
+
+  -- (streetNumber ?BUILDING ?ADDRESS) means 
+  -- that the Building ?BUILDING is part of the address ?ADDRESS.
+  fun streetNumber : El Building -> El Address -> Formula ;
+
+  -- (student ?ORG ?AGENT) means that ?AGENT is enrolled 
+  -- in the EducationalOrganization ?ORG.
+  fun student : El EducationalOrganization -> El CognitiveAgent -> Formula ;
+
+  -- (subField ?FIELD1 ?FIELD2) means that ?FIELD1 is a proper 
+  -- part of the FieldOfStudy ?FIELD2. For example, Physiology is a subField of 
+  -- Biology.
+  fun subField : El FieldOfStudy -> El FieldOfStudy -> Formula ;
+
+  -- (subordinateInOrganization ?ORG ?PERSON1 ?PERSON2) means that 
+  -- in the Organization ?ORG, ?PERSON1 is subordinate to ?PERSON2.
+  fun subordinateInOrganization : El Organization -> El Human -> El Human -> Formula ;
+
+  -- (subordinatePosition ?ORG ?SUB ?SUPER) means that in 
+  -- the Organization ?ORG, the holder of role ?SUB is subordinate to 
+  -- the holder of role ?SUPER.
+  fun subordinatePosition : El Organization -> El Position -> El Position -> Formula ;
+
+  -- (tangent ?LINE ?CIRCLE) means that the straight line 
+  -- ?LINE is tangent to the figure ?CIRCLE, i.e. ?LINE touches ?CIRCLE without 
+  -- intersecting it.
+  fun tangent : El OneDimensionalFigure -> El TwoDimensionalObject -> Formula ;
+
+  -- This relation identifies the patient in the event that is the object of the attack.
+  fun targetInAttack : El Process -> El Object -> Formula ;
+
+  -- (teacher ?ORG ?AGENT) means that ?AGENT is a teacher at the EducationalOrganization ?ORG.
+  fun teacher : El EducationalOrganization -> El CognitiveAgent -> Formula ;
+
+  -- (telephoneNumber ?NUMBER ?AGENT) means 
+  -- that ?NUMBER is a telephone number at which ?AGENT can be regularly contacted.
+  fun telephoneNumber : El SymbolicString -> El Agent -> Formula ;
+
+  -- (tenant ?PERSON ?UNIT) means that ?PERSON is a tenant of the Residence ?UNIT, 
+  -- i.e. he or she is renting the unit.
+  fun tenant : El Agent -> El Residence -> Formula ;
+
+  -- (third ?THIRD ?WHOLE) means that ?THIRD is one third of ?WHOLE.
+  fun third : El Object -> El Object -> Formula ;
+
+  -- A binary predicate used to indicate the title of a ContentBearingPhysical. Note that the
+  -- second argument type restriction is a subclass, rather than an
+  -- instance, of ContentBearingPhysical. Thus, the title
+  -- Murder_on_the_Orient_Express corresponds to a large class of Books,
+  -- and not just to a single copy of the book.
+  fun titles : El SymbolicString -> El ContentBearingPhysical -> Formula ;
+
+  -- (transported ?EVENT ?OBJ) means that ?OBJ is transported
+  -- (carried/moved to a different physical location) in the Transportation ?EVENT.
+  fun transported : El Transportation -> El Object -> Formula ;
+
+  -- An instance of the first argument is typically 
+  -- found as part of an instance of the second argument. This is a 
+  -- class_level relation roughly corresponding to part. Note that this does 
+  -- not imply that such wholes typically have such parts.
+  fun typicalPart : Desc Object -> Desc Object -> Formula ;
+
+  -- An instance of the second argument typically 
+  -- contains an instance of the first argument. This is a 
+  -- class_level relation roughly corresponding to part. Note that this does 
+  -- not imply that such parts typically have such wholes.
+  fun typicallyContainsPart : Desc Object -> Desc Object -> Formula ;
+
+  -- (uncle ?UNCLE ?PERSON) means that ?UNCLE is 
+  -- the brother of a parent of ?PERSON.
+  fun uncle : El Man -> El Human -> Formula ;
+
+  -- (unitNumber ?UNIT ?ADDRESS) means that the 
+  -- StationaryArtifact ?UNIT is part of the address ?ADDRESS.
+  fun unitNumber : El StationaryArtifact -> El Address -> Formula ;
+
+  -- (wavelength ?RADIATION ?MEASURE) means that the 
+  -- instance of radiation, ?RADIATION, has an average wavelength of ?MEASURE.
+  fun wavelength : El Radiating -> El LengthMeasure -> Formula ;
+
+  -- (yearOfFounding ?ORG ?NUMBER) means that the Organization ?ORG
+  -- was founded in the year expressed in ?NUMBER.
+  fun yearOfFounding : El Organization -> El Integer -> Formula ;
+
+}
diff --git a/examples/SUMO/MidLevelOntologyEng.gf b/examples/SUMO/MidLevelOntologyEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MidLevelOntologyEng.gf
@@ -0,0 +1,1488 @@
+concrete MidLevelOntologyEng of MidLevelOntology = MergeEng, ElementsEng ** open DictLangEng, DictEng, ParadigmsEng,ExtensionEng in {
+
+lin
+  -- individual instances :
+  Accountant = MassNP (UseN accountant_N) ;
+  Acre = MassNP (UseN acre_N) ;
+  Anthropology = MassNP (UseN anthropology_N) ;
+  Architecture = MassNP (UseN architecture_N) ;
+  AttorneyGeneral = MassNP (ApposCN (UseN attorney_N) (MassNP (UseN general_N))) ;
+  Banker = MassNP (UseN banker_N) ;
+  Biology = MassNP (UseN biology_N) ;
+  Blind = MassNP (UseN blind_N) ;
+  BusinessPerson = MassNP (ApposCN (UseN business_N) (MassNP (UseN person_N))) ;
+  Cancer = MassNP (UseN cancer_N) ;
+  Carpenter = MassNP (UseN carpenter_N) ;
+  CenturyDuration = MassNP (ApposCN (UseN century_N) (MassNP (UseN duration_N))) ;
+  ChemicalEquilibrium = MassNP (AdjCN (PositA chemical_A) (UseN equilibrium_N)) ;
+  Chemistry = MassNP (UseN chemistry_N) ;
+  ClericalSecretary = MassNP (AdjCN (PositA clerical_A) (UseN secretary_N)) ;
+  Coach = MassNP (UseN coach_N) ;
+  CollegeFreshman = MassNP (ApposCN (UseN college_N) (MassNP (UseN freshman_N))) ;
+  CollegeJunior = MassNP (ApposCN (UseN college_N) (MassNP (UseN junior_N))) ;
+  CollegeSenior = MassNP (ApposCN (UseN college_N) (MassNP (UseN senior_N))) ;
+  CollegeSophomore = MassNP (ApposCN (UseN college_N) (MassNP (UseN sophomore_N))) ;
+  Comedian = MassNP (UseN comedian_N) ;
+  CommonEra = MassNP (AdjCN (PositA common_A) (UseN era_N)) ;
+  ContainerEmpty = MassNP (ApposCN (UseN container_N) (MassNP (UseN empty_N))) ;
+  Coroner = MassNP (UseN coroner_N) ;
+  DecadeDuration = MassNP (ApposCN (UseN decade_N) (MassNP (UseN duration_N))) ;
+  DemocraticParty = MassNP (AdjCN (PositA democratic_A) (UseN party_N)) ;
+  Dentist = MassNP (UseN dentist_N) ;
+  Diarrhea = MassNP (UseN diarrhea_N) ;
+  Diplomat = MassNP (UseN diplomat_N) ;
+  Dissident = MassNP (UseN dissident_N) ;
+  Economics = DetCN (DetQuant IndefArt NumPl) (UseN economics_N) ;
+  Electronics = DetCN (DetQuant IndefArt NumPl) (UseN electronics_N) ;
+  Engineering = DetCN (DetQuant IndefArt NumPl) (UseN2 (VerbToNounV2 engineer_V2)) ;
+  FarmHand = MassNP (ApposCN (UseN farm_N) (MassNP (UseN hand_N))) ;
+  Fever = MassNP (UseN fever_N) ;
+  FieldOfLaw = AdvNP (MassNP (UseN field_N)) (PrepNP part_Prep (MassNP (UseN law_N))) ;
+  Fist = MassNP (UseN fist_N) ;
+  Flat = MassNP (UseN flat_N) ;
+  Foul = MassNP (UseN foul_N) ;
+  Functioning = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun function_V)) ;
+  GovernmentPerson = MassNP (ApposCN (UseN government_N) (MassNP (UseN person_N))) ;
+  Governor = MassNP (UseN governor_N) ;
+  Green = MassNP (UseN green_N) ;
+  Handstand = MassNP (UseN handstand_N) ;
+  Happiness = MassNP (UseN happiness_N) ;
+  History = MassNP (UseN history_N) ;
+  HumanSlave = MassNP (AdjCN (PositA human_A) (UseN slave_N)) ;
+  Inside = MassNP (UseN inside_N) ;
+  InteriorDesign = MassNP (AdjCN (PositA interior_A) (UseN design_N)) ;
+  Kneeling = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun kneel_V)) ;
+  Knight = MassNP (UseN knight_N) ;
+  LegislativeBill = MassNP (AdjCN (PositA legislative_A) (UseN bill_N)) ;
+  LevelShape = MassNP (AdjCN (PositA level_A) (UseN shape_N)) ;
+  LieutenantGovernor = MassNP (ApposCN (UseN lieutenant_N) (MassNP (UseN governor_N))) ;
+  LineFormation = MassNP (ApposCN (UseN line_N) (MassNP (UseN formation_N))) ;
+  Linguistics = DetCN (DetQuant IndefArt NumPl) (UseN linguistics_N) ;
+  LiquorShot = PPartNP (MassNP (UseN liquor_N)) overshoot_V2 ;
+  Literature = MassNP (UseN literature_N) ;
+  Malfunctioning = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun malfunction_V)) ;
+  Mathematics = DetCN (DetQuant IndefArt NumPl) (UseN mathematics_N) ;
+  Mayor = MassNP (UseN mayor_N) ;
+  MedicalScience = MassNP (AdjCN (PositA medical_A) (UseN science_N)) ;
+  MetricTon = MassNP (AdjCN (PositA metric_A) (UseN ton_N)) ;
+  Militant = MassNP (UseN militant_N) ;
+  MilitaryPerson = MassNP (AdjCN (PositA military_A) (UseN person_N)) ;
+  MilitaryScience = MassNP (AdjCN (PositA military_A) (UseN science_N)) ;
+  MillenniumDuration = MassNP (ApposCN (UseN millennium_N) (MassNP (UseN duration_N))) ;
+  Musician = MassNP (UseN musician_N) ;
+  NaziParty = MassNP (AdjCN (PositA nazi_A) (UseN party_N)) ;
+  NewsReporter = MassNP (ApposCN (UseN news_N) (MassNP (UseN reporter_N))) ;
+  Outside = MassNP (UseN outside_N) ;
+  Page = MassNP (UseN page_N) ;
+  Philosophy = MassNP (UseN philosophy_N) ;
+  Physics = DetCN (DetQuant IndefArt NumPl) (UseN physic_N) ;
+  Physiology = MassNP (UseN physiology_N) ;
+  Pink = MassNP (UseN pink_N) ;
+  Plumber = MassNP (UseN plumber_N) ;
+  PoliticalScience = MassNP (AdjCN (PositA political_A) (UseN science_N)) ;
+  Pope = MassNP (UseN pope_N) ;
+  Potter = MassNP (UseN potter_N) ;
+  PresidentOfTheUnitedStates = AdvNP (MassNP (UseN president_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA united_A) (UseN state_N)))) ;
+  PrivateDetective = MassNP (AdjCN (PositA private_A) (UseN detective_N)) ;
+  Psychology = MassNP (UseN psychology_N) ;
+  Purple = MassNP (UseN purple_N) ;
+  RepublicanParty = MassNP (AdjCN (PositA republican_A) (UseN party_N)) ;
+  RoundShape = MassNP (AdjCN (PositA round_A) (UseN shape_N)) ;
+  SecretaryOfTheInterior = AdvNP (MassNP (UseN secretary_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN interior_N))) ;
+  SecretaryOfTheTreasury = AdvNP (MassNP (UseN secretary_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN treasury_N))) ;
+  Splitting = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 split_V2)) ;
+  SportsOut = AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN sport_N)) out_Adv ;
+  SquareMile = MassNP (AdjCN (PositA square_A) (UseN mile_N)) ;
+  SquareYard = MassNP (AdjCN (PositA square_A) (UseN yard_N)) ;
+  StoreOwner = MassNP (ApposCN (UseN store_N) (MassNP (UseN owner_N))) ;
+  Student = MassNP (UseN student_N) ;
+  Surprise = MassNP (UseN surprise_N) ;
+  SymmetricShape = MassNP (AdjCN (PositA symmetric_A) (UseN shape_N)) ;
+  Teacher = MassNP (UseN teacher_N) ;
+  Theology = MassNP (UseN theology_N) ;
+  TieScore = MassNP (ApposCN (UseN tie_N) (MassNP (UseN score_N))) ;
+  TonMass = MassNP (ApposCN (UseN ton_N) (MassNP (UseN mass_N))) ;
+  Tourist = MassNP (UseN tourist_N) ;
+  Tuberculosis = MassNP (UseN tuberculosis_N) ;
+  Unhappiness = MassNP (UseN unhappiness_N) ;
+  UnitedStatesCongress = DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN congress_N)))) ;
+  UnitedStatesDepartmentOfInterior = AdvNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN department_N))))) (PrepNP part_Prep (MassNP (UseN interior_N))) ;
+  UnitedStatesDepartmentOfState = AdvNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN department_N))))) (PrepNP part_Prep (MassNP (UseN state_N))) ;
+  Veteran = MassNP (UseN veteran_N) ;
+  YardLength = MassNP (ApposCN (UseN yard_N) (MassNP (UseN length_N))) ;
+  Drunk = MassNP (UseN drunk_N) ;
+  InternationalLaw = MassNP (AdjCN (PositA international_A) (UseN law_N)) ;
+  MarriageContract = MassNP (ApposCN (UseN marriage_N) (MassNP (UseN contract_N))) ;
+  Treaty = MassNP (UseN treaty_N) ;
+  Satisfaction = MassNP (UseN satisfaction_N) ;
+  Tranquility = MassNP (UseN tranquility_N) ;
+  Excitement = MassNP (UseN excitement_N) ;
+  Anxiety = MassNP (UseN anxiety_N) ;
+  Anger = MassNP (UseN anger_N) ;
+  Pain = MassNP (UseN pain_N) ;
+  Headache = MassNP (UseN headache_N) ;
+  Puberty = MassNP (UseN puberty_N) ;
+  Squatting = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun squat_V)) ;
+  Housewife = MassNP (UseN housewife_N) ;
+  Deputy = MassNP (UseN deputy_N) ;
+  AttorneyGeneral = MassNP (ApposCN (UseN attorney_N) (MassNP (UseN general_N))) ;
+  Professor = MassNP (UseN professor_N) ;
+  ArtCritic = MassNP (ApposCN (UseN art_N) (MassNP (UseN critic_N))) ;
+  Dissident = MassNP (UseN dissident_N) ;
+
+
+  -- subclasses 
+  Aborting = UseN2 (VerbToNounV2 abort_V2) ;
+  AcademicDegree = AdjCN (PositA academic_A) (UseN degree_N) ;
+  Accelerating = UseN2 (VerbToNounV2 accelerate_V2) ;
+  Accrediting = UseN2 (VerbToNounV2 accredit_V2) ;
+  AchievingControl = AdjCN (PositA (VerbToGerundA achieve_V2)) (UseN control_N) ;
+  AcuteAngle = AdjCN (PositA acute_A) (UseN angle_N) ;
+  Address = UseN address_N ;
+  Aerating = UseN2 (VerbToNounV2 aerate_V2) ;
+  Afternoon = UseN afternoon_N ;
+  Agency = UseN agency_N ;
+  AirForce = ApposCN (UseN air_N) (MassNP (UseN force_N)) ;
+  AirTransportation = ApposCN (UseN air_N) (MassNP (UseN transportation_N)) ;
+  Aircraft = UseN aircraft_N ;
+  Alcohol = UseN alcohol_N ;
+  AlcoholicBeverage = AdjCN (PositA alcoholic_A) (UseN beverage_N) ;
+  Ambush = UseN ambush_N ;
+  Anaconda = UseN anaconda_N ;
+  Anchor = UseN anchor_N ;
+  AnimalController = ApposCN (UseN animal_N) (MassNP (UseN controller_N)) ;
+  AnimalPoweredDevice = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA powered_A) (UseN device_N))) ;
+  AnimalResidence = ApposCN (UseN animal_N) (MassNP (UseN residence_N)) ;
+  AnimalShell = ApposCN (UseN animal_N) (MassNP (UseN shell_N)) ;
+  AnimalTeam = ApposCN (UseN animal_N) (MassNP (UseN team_N)) ;
+  Ankle = UseN ankle_N ;
+  Announcement = UseN announcement_N ;
+  Answering = UseN2 (VerbToNounV2 answer_V2) ;
+  AntInsect = ApposCN (UseN ant_N) (MassNP (UseN insect_N)) ;
+  Antelope = UseN antelope_N ;
+  Antenna = UseN antenna_N ;
+  Antibiotic = UseN antibiotic_N ;
+  Antibody = UseN antibody_N ;
+  ApartmentBuilding = ApposCN (UseN apartment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  ApartmentUnit = ApposCN (UseN apartment_N) (MassNP (UseN unit_N)) ;
+  Application = UseN application_N ;
+  Appointing = UseN2 (VerbToNounV2 appoint_V2) ;
+  Apron = UseN apron_N ;
+  Arguing = UseN2 (VerbToNounV2 argue_V2) ;
+  Arm = UseN arm_N ;
+  Army = UseN army_N ;
+  Arriving = UseN (VerbToNoun arrive_V) ;
+  ArrowFigure = ApposCN (UseN arrow_N) (MassNP (UseN figure_N)) ;
+  ArrowIcon = ApposCN (UseN arrow_N) (MassNP (UseN icon_N)) ;
+  ArrowProjectile = ApposCN (UseN arrow_N) (MassNP (UseN projectile_N)) ;
+  Arson = UseN arson_N ;
+  ArtPainting = ApposCN (UseN art_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 paint_V2))) ;
+  ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
+  ArtStudio = ApposCN (UseN art_N) (MassNP (UseN studio_N)) ;
+  Artery = UseN artery_N ;
+  ArtilleryGun = ApposCN (UseN artillery_N) (MassNP (UseN gun_N)) ;
+  AtmosphericRegion = AdjCN (PositA atmospheric_A) (UseN region_N) ;
+  AtomicGroup = AdjCN (PositA atomic_A) (UseN group_N) ;
+  Atrophy = UseN atrophy_N ;
+  Auditorium = UseN auditorium_N ;
+  AuditoriumSeat = ApposCN (UseN auditorium_N) (MassNP (UseN seat_N)) ;
+  AutomaticGun = AdjCN (PositA automatic_A) (UseN gun_N) ;
+  Automobile = UseN automobile_N ;
+  Axle = UseN axle_N ;
+  BacterialDisease = AdjCN (PositA bacterial_A) (UseN disease_N) ;
+  Bag = UseN bag_N ;
+  Baking = UseN2 (VerbToNounV2 bake_V2) ;
+  Ball = UseN ball_N ;
+  BallisticMissile = AdjCN (PositA ballistic_A) (UseN missile_N) ;
+  Ballot = UseN ballot_N ;
+  Bandage = UseN bandage_N ;
+  Baptizing = UseN2 (VerbToNounV2 baptize_V2) ;
+  BargainSale = ApposCN (UseN bargain_N) (MassNP (UseN sale_N)) ;
+  Barking = UseN2 (VerbToNounV2 bark_V2) ;
+  Barn = UseN barn_N ;
+  Basement = UseN basement_N ;
+  Bathing = UseN bathing_N ;
+  BathingDevice = AdjCN (PositA (VerbToGerundA bath_V2)) (UseN device_N) ;
+  Bathroom = UseN bathroom_N ;
+  Baton = UseN baton_N ;
+  BecomingDrunk = AdjCN (PositA becoming_A) (UseN drunk_N) ;
+  Bed = UseN bed_N ;
+  Bedroom = UseN bedroom_N ;
+  Bee = UseN bee_N ;
+  Beef = UseN beef_N ;
+  Beer = UseN beer_N ;
+  BeginningOperations = AdjCN (PositA (VerbToGerundA begin_V2)) (UseN operation_N) ;
+  Bell = UseN bell_N ;
+  Belt = UseN belt_N ;
+  Bequeathing = UseN2 (VerbToNounV2 bequeath_V2) ;
+  Biography = UseN biography_N ;
+  BiologicalConception = AdjCN (PositA biological_A) (UseN conception_N) ;
+  BiologicalSpecies = AdjCN (PositA biological_A) (UseN species_N) ;
+  BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
+  Biting = UseN2 (VerbToNounV2 backbite_V2) ;
+  Blanket = UseN blanket_N ;
+  Bleeding = UseN2 (VerbToNounV2 bleed_V2) ;
+  Blockade = UseN blockade_N ;
+  BloodCell = ApposCN (UseN blood_N) (MassNP (UseN cell_N)) ;
+  BloodVessel = ApposCN (UseN blood_N) (MassNP (UseN vessel_N)) ;
+  Blueprint = UseN blueprint_N ;
+  Blushing = UseN (VerbToNoun blush_V) ;
+  BoardOrBlock = ConjCN or_Conj (BaseCN (UseN board_N) (UseN block_N)) ;
+  Boarding = UseN boarding_N ;
+  BoatDeck = ApposCN (UseN boat_N) (MassNP (UseN deck_N)) ;
+  BodyJoint = ApposCN (UseN body_N) (MassNP (UseN joint_N)) ;
+  Bomb = UseN bomb_N ;
+  Bomber = UseN bomber_N ;
+  Bombing = UseN2 (VerbToNounV2 bomb_V2) ;
+  Bottle = UseN bottle_N ;
+  Bowing = UseN bowing_N ;
+  Box = UseN box_N ;
+  Boy = UseN boy_N ;
+  Brain = UseN brain_N ;
+  Brandy = UseN brandy_N ;
+  Brass = UseN brass_N ;
+  BreadOrBiscuit = ConjCN or_Conj (BaseCN (UseN bread_N) (UseN biscuit_N)) ;
+  Breast = UseN breast_N ;
+  Brick = UseN brick_N ;
+  BrigadierGeneral = ApposCN (UseN brigadier_N) (MassNP (UseN general_N)) ;
+  BroadcastNetwork = ApposCN (UseN broadcast_N) (MassNP (UseN network_N)) ;
+  BroadcastProgram = ApposCN (UseN broadcast_N) (MassNP (UseN program_N)) ;
+  Broadcasting = UseN broadcasting_N ;
+  BronchialDuct = AdjCN (PositA bronchial_A) (UseN duct_N) ;
+  Brood = UseN brood_N ;
+  Broom = UseN broom_N ;
+  BrushOrComb = ConjCN or_Conj (BaseCN (UseN brush_N) (UseN comb_N)) ;
+  Bubble = UseN bubble_N ;
+  Buffalo = UseN buffalo_N ;
+  Bugle = UseN bugle_N ;
+  BuildingLevel = AdjCN (PositA (VerbToGerundA build_V2)) (UseN level_N) ;
+  Bull = UseN bull_N ;
+  Bullet = UseN bullet_N ;
+  Burrow = UseN burrow_N ;
+  Burying = UseN2 (VerbToNounV2 bury_V2) ;
+  Bus = UseN bus_N ;
+  BusStop = ApposCN (UseN bus_N) (MassNP (UseN stop_N)) ;
+  BusinessCompetition = ApposCN (UseN business_N) (MassNP (UseN competition_N)) ;
+  Butter = UseN butter_N ;
+  Button = UseN button_N ;
+  Cafeteria = UseN cafeteria_N ;
+  Calf = UseN calf_N ;
+  Camera = UseN camera_N ;
+  Camp = UseN camp_N ;
+  Candle = UseN candle_N ;
+  Capillary = UseN capillary_N ;
+  CaptainOfficer = ApposCN (UseN captain_N) (MassNP (UseN officer_N)) ;
+  Capturing = UseN2 (VerbToNounV2 capture_V2) ;
+  CarBombing = ApposCN (UseN car_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 bomb_V2))) ;
+  CareOrganization = ApposCN (UseN care_N) (MassNP (UseN organization_N)) ;
+  Carpentry = UseN carpentry_N ;
+  Catching = UseN2 (VerbToNounV2 catch_V2) ;
+  CausingHappiness = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN happiness_N) ;
+  CausingPain = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN pain_N) ;
+  CausingUnhappiness = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN unhappiness_N) ;
+  CavalryUnit = ApposCN (UseN cavalry_N) (MassNP (UseN unit_N)) ;
+  CeasingOperations = AdjCN (PositA (VerbToGerundA cease_V2)) (UseN operation_N) ;
+  Ceiling = UseN ceiling_N ;
+  CellNucleus = ApposCN (UseN cell_N) (MassNP (UseN nucleus_N)) ;
+  Cellulose = UseN cellulose_N ;
+  Cemetery = UseN cemetery_N ;
+  CentrifugalMotion = AdjCN (PositA centrifugal_A) (UseN motion_N) ;
+  CentripetalMotion = AdjCN (PositA centripetal_A) (UseN motion_N) ;
+  CerealGrain = ApposCN (UseN cereal_N) (MassNP (UseN grain_N)) ;
+  Chair = UseN chair_N ;
+  ChangeOfControl = AdvCN (UseN change_N) (PrepNP part_Prep (MassNP (UseN control_N))) ;
+  ChangingClothing = AdjCN (PositA (VerbToGerundA change_V2)) (UseN clothing_N) ;
+  Chapter = UseN chapter_N ;
+  Chart = UseN chart_N ;
+  Checkpoint = UseN checkpoint_N ;
+  ChemicalAcid = AdjCN (PositA chemical_A) (UseN acid_N) ;
+  ChemicalAttack = AdjCN (PositA chemical_A) (UseN attack_N) ;
+  ChemicalBase = AdjCN (PositA chemical_A) (UseN base_N) ;
+  ChemicalReduction = AdjCN (PositA chemical_A) (UseN reduction_N) ;
+  ChemicalSalt = AdjCN (PositA chemical_A) (UseN salt_N) ;
+  ChestOrCabinet = ConjCN or_Conj (BaseCN (UseN chest_N) (UseN cabinet_N)) ;
+  Chewing = UseN2 (VerbToNounV2 chew_V2) ;
+  Chicken = UseN chicken_N ;
+  ChickenMeat = ApposCN (UseN chicken_N) (MassNP (UseN meat_N)) ;
+  Chimney = UseN chimney_N ;
+  Chin = UseN chin_N ;
+  ChristianBible = AdjCN (PositA christian_A) (UseN bible_N) ;
+  ChristianGospel = AdjCN (PositA christian_A) (UseN gospel_N) ;
+  ChristianService = AdjCN (PositA christian_A) (UseN service_N) ;
+  CigarOrCigarette = ConjCN or_Conj (BaseCN (UseN cigar_N) (UseN cigarette_N)) ;
+  CircleSector = ApposCN (UseN circle_N) (MassNP (UseN sector_N)) ;
+  CityBlock = ApposCN (UseN city_N) (MassNP (UseN block_N)) ;
+  CityDistrict = ApposCN (UseN city_N) (MassNP (UseN district_N)) ;
+  CityGovernment = ApposCN (UseN city_N) (MassNP (UseN government_N)) ;
+  CivilWar = AdjCN (PositA civil_A) (UseN war_N) ;
+  Civilian = UseN civilian_N ;
+  Clamp = UseN clamp_N ;
+  Clapping = UseN2 (VerbToNounV2 clap_V2) ;
+  ClassificationScheme = ApposCN (UseN classification_N) (MassNP (UseN scheme_N)) ;
+  Classroom = UseN classroom_N ;
+  Cleric = UseN cleric_N ;
+  Cloak = UseN cloak_N ;
+  Clock = UseN clock_N ;
+  Closet = UseN closet_N ;
+  Closing = UseN2 (VerbToNounV2 close_V2) ;
+  ClosingContract = AdjCN (PositA (VerbToGerundA close_V2)) (UseN contract_N) ;
+  ClosingEyes = AdjCN (PositA (VerbToGerundA close_V2)) (UseN eye_N) ;
+  ClothingSuit = AdjCN (PositA (VerbToGerundA clothe_V2)) (UseN suit_N) ;
+  CoastGuard = ApposCN (UseN coast_N) (MassNP (UseN guard_N)) ;
+  Coat = UseN coat_N ;
+  Coffee = UseN coffee_N ;
+  Coffin = UseN coffin_N ;
+  Collage = UseN collage_N ;
+  Collar = UseN collar_N ;
+  College = UseN college_N ;
+  CollegeStudentPosition = ApposCN (ApposCN (UseN college_N) (MassNP (UseN student_N))) (MassNP (UseN position_N)) ;
+  Colonel = UseN colonel_N ;
+  CommercialBuilding = AdjCN (PositA commercial_A) (UseN building_N) ;
+  CommercialShipping = AdjCN (PositA commercial_A) (UseN shipping_N) ;
+  CommercialUnit = AdjCN (PositA commercial_A) (UseN unit_N) ;
+  Commission = UseN commission_N ;
+  CommunicationOrganization = ApposCN (UseN communication_N) (MassNP (UseN organization_N)) ;
+  CommunicationSystem = ApposCN (UseN communication_N) (MassNP (UseN system_N)) ;
+  CommunistParty = AdjCN (PositA communist_A) (UseN party_N) ;
+  Compartment = UseN compartment_N ;
+  Compass = UseN compass_N ;
+  Composing = UseN2 (VerbToNounV2 compose_V2) ;
+  ComposingMusic = AdjCN (PositA (VerbToGerundA compose_V2)) (UseN music_N) ;
+  Concealing = UseN2 (VerbToNounV2 conceal_V2) ;
+  CondominiumBuilding = ApposCN (UseN condominium_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  CondominiumUnit = ApposCN (UseN condominium_N) (MassNP (UseN unit_N)) ;
+  Cone = UseN cone_N ;
+  ConfederateSoldier = AdjCN (PositA confederate_A) (UseN soldier_N) ;
+  Congratulating = UseN2 (VerbToNounV2 congratulate_V2) ;
+  ConjugatedSubstance = AdjCN (PositA (VerbToParticipeA conjugate_V)) (UseN substance_N) ;
+  Consonant = UseN consonant_N ;
+  Container = UseN container_N ;
+  ContraceptiveDevice = AdjCN (PositA contraceptive_A) (UseN device_N) ;
+  Convoy = UseN convoy_N ;
+  CoolingDevice = AdjCN (PositA (VerbToGerundA cool_V2)) (UseN device_N) ;
+  Copying = UseN2 (VerbToNounV2 copy_V2) ;
+  Corporal = UseN corporal_N ;
+  Corresponding = UseN (VerbToNoun correspond_V) ;
+  Cotton = UseN cotton_N ;
+  CottonFabric = ApposCN (UseN cotton_N) (MassNP (UseN fabric_N)) ;
+  CourtRoom = ApposCN (UseN court_N) (MassNP (UseN room_N)) ;
+  Cow = UseN cow_N ;
+  Crane = UseN crane_N ;
+  Creek = UseN creek_N ;
+  CriminalAction = AdjCN (PositA criminal_A) (UseN action_N) ;
+  CriminalGang = AdjCN (PositA criminal_A) (UseN gang_N) ;
+  CultivatedLandArea = AdjCN (PositA cultivated_A) (ApposCN (UseN land_N) (MassNP (UseN area_N))) ;
+  Curb = UseN curb_N ;
+  CurrencyBill = ApposCN (UseN currency_N) (MassNP (UseN bill_N)) ;
+  CurrencyCoin = ApposCN (UseN currency_N) (MassNP (UseN coin_N)) ;
+  Curtain = UseN curtain_N ;
+  CuttingDevice = AdjCN (PositA cutting_A) (UseN device_N) ;
+  Cylinder = UseN cylinder_N ;
+  DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
+  DayTime = ApposCN (UseN day_N) (MassNP (UseN time_N)) ;
+  Deacon = UseN deacon_N ;
+  Debating = UseN2 (VerbToNounV2 debate_V2) ;
+  Decelerating = UseN2 (VerbToNounV2 decelerate_V2) ;
+  Desk = UseN desk_N ;
+  Detergent = UseN detergent_N ;
+  DeviceAttribute = ApposCN (UseN device_N) (MassNP (UseN attribute_N)) ;
+  DeviceStateAttribute = ApposCN (ApposCN (UseN device_N) (MassNP (UseN state_N))) (MassNP (UseN attribute_N)) ;
+  Diamond = UseN diamond_N ;
+  Dictionary = UseN dictionary_N ;
+  DieselEngine = ApposCN (UseN diesel_N) (MassNP (UseN engine_N)) ;
+  Diet = UseN diet_N ;
+  Digging = UseN digging_N ;
+  DigitAppendage = ApposCN (UseN digit_N) (MassNP (UseN appendage_N)) ;
+  DigitCharacter = ApposCN (UseN digit_N) (MassNP (UseN character_N)) ;
+  Diluting = UseN2 (VerbToNounV2 dilute_V2) ;
+  DiningRoom = AdjCN (PositA (VerbToGerundA dine_V2)) (UseN room_N) ;
+  Dish = UseN dish_N ;
+  Dismounting = UseN2 (VerbToNounV2 dismount_V2) ;
+  DisplayArtifact = ApposCN (UseN display_N) (MassNP (UseN artifact_N)) ;
+  DistilledAlcoholicBeverage = AdjCN (PositA (VerbToParticipeA distil_V)) (AdjCN (PositA alcoholic_A) (UseN beverage_N)) ;
+  Divorcing = UseN2 (VerbToNounV2 divorce_V2) ;
+  Dodging = UseN2 (VerbToNounV2 dodge_V2) ;
+  DomesticAnimal = AdjCN (PositA domestic_A) (UseN animal_N) ;
+  DomesticCat = AdjCN (PositA domestic_A) (UseN cat_N) ;
+  DomesticDog = AdjCN (PositA domestic_A) (UseN dog_N) ;
+  Donkey = UseN donkey_N ;
+  Door = UseN door_N ;
+  Doorway = UseN doorway_N ;
+  Dormitory = UseN dormitory_N ;
+  Dough = UseN dough_N ;
+  DramaticActing = AdjCN (PositA dramatic_A) (UseN acting_N) ;
+  DramaticCast = AdjCN (PositA dramatic_A) (UseN cast_N) ;
+  DramaticDirecting = AdjCN (PositA dramatic_A) (UseN2 (VerbToNounV2 direct_V2)) ;
+  DramaticPerformance = AdjCN (PositA dramatic_A) (UseN performance_N) ;
+  DramaticPlay = AdjCN (PositA dramatic_A) (UseN play_N) ;
+  Drawing = UseN drawing_N ;
+  Dreaming = UseN2 (VerbToNounV2 dream_V2) ;
+  Dress = UseN dress_N ;
+  Dressing = UseN dressing_N ;
+  DressingRoom = AdjCN (PositA (VerbToGerundA dress_V2)) (UseN room_N) ;
+  Drill = UseN drill_N ;
+  Drilling = UseN2 (VerbToNounV2 drill_V2) ;
+  DrinkingCup = AdjCN (PositA (VerbToGerundA drink_V2)) (UseN cup_N) ;
+  Dripping = UseN dripping_N ;
+  DriveComponent = ApposCN (UseN drive_N) (MassNP (UseN component_N)) ;
+  Driveway = UseN driveway_N ;
+  DrugStore = ApposCN (UseN drug_N) (MassNP (UseN store_N)) ;
+  Drum = UseN drum_N ;
+  Drumming = UseN2 (VerbToNounV2 drum_V2) ;
+  Duck = UseN duck_N ;
+  Ducking = UseN ducking_N ;
+  DutyTax = ApposCN (UseN duty_N) (MassNP (UseN tax_N)) ;
+  Ear = UseN ear_N ;
+  Echoing = UseN2 (VerbToNounV2 echo_V2) ;
+  EducationalCourse = AdjCN (PositA educational_A) (UseN course_N) ;
+  EducationalFacility = AdjCN (PositA educational_A) (UseN facility_N) ;
+  EducationalProgram = AdjCN (PositA educational_A) (UseN program_N) ;
+  Elbow = UseN elbow_N ;
+  ElectoralCollegeElection = AdjCN (PositA electoral_A) (ApposCN (UseN college_N) (MassNP (UseN election_N))) ;
+  ElectricDevice = AdjCN (PositA electric_A) (UseN device_N) ;
+  ElectricMotor = AdjCN (PositA electric_A) (UseN motor_N) ;
+  ElectricalSignalling = AdjCN (PositA electrical_A) (UseN2 (VerbToNounV2 signal_V2)) ;
+  ElectronicSignalling = AdjCN (PositA electronic_A) (UseN2 (VerbToNounV2 signal_V2)) ;
+  Elephant = UseN elephant_N ;
+  Elevator = UseN elevator_N ;
+  EmbassyBuilding = ApposCN (UseN embassy_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  Embracing = UseN2 (VerbToNounV2 embrace_V2) ;
+  EmploymentFiring = ApposCN (UseN employment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 fire_V2))) ;
+  Engine = UseN engine_N ;
+  EntertainmentBuilding = ApposCN (UseN entertainment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  EntertainmentCompany = ApposCN (UseN entertainment_N) (MassNP (UseN company_N)) ;
+  EntertainmentProfession = ApposCN (UseN entertainment_N) (MassNP (UseN profession_N)) ;
+  Entombing = UseN2 (VerbToNounV2 entomb_V2) ;
+  Envelope = UseN envelope_N ;
+  Escaping = UseN2 (VerbToNounV2 escape_V2) ;
+  Espionage = UseN espionage_N ;
+  EuropeanNation = AdjCN (PositA european_A) (UseN nation_N) ;
+  Execution = UseN execution_N ;
+  ExecutiveResidence = AdjCN (PositA executive_A) (UseN residence_N) ;
+  Exhaling = UseN2 (VerbToNounV2 exhale_V2) ;
+  Explosion = UseN explosion_N ;
+  ExplosiveDevice = AdjCN (PositA explosive_A) (UseN device_N) ;
+  ExplosiveMine = AdjCN (PositA explosive_A) (UseN mine_N) ;
+  ExplosiveSubstance = AdjCN (PositA explosive_A) (UseN substance_N) ;
+  ExpressingApproval = AdjCN (PositA (VerbToGerundA express_V2)) (UseN approval_N) ;
+  ExpressingDisapproval = AdjCN (PositA (VerbToGerundA express_V2)) (UseN disapproval_N) ;
+  ExpressingFarewell = AdjCN (PositA (VerbToGerundA express_V2)) (UseN farewell_N) ;
+  ExpressingInLanguage = AdjCN (PositA (VerbToGerundA express_V2)) (ApposCN (UseN in_N) (MassNP (UseN language_N))) ;
+  Eye = UseN eye_N ;
+  EyeGlass = ApposCN (UseN eye_N) (MassNP (UseN glass_N)) ;
+  EyeMotion = ApposCN (UseN eye_N) (MassNP (UseN motion_N)) ;
+  Eyelid = UseN eyelid_N ;
+  Face = UseN face_N ;
+  FacialExpression = AdjCN (PositA facial_A) (UseN expression_N) ;
+  FacialHair = AdjCN (PositA facial_A) (UseN hair_N) ;
+  Fact = UseN fact_N ;
+  Factory = UseN factory_N ;
+  FallSeason = ApposCN (UseN fall_N) (MassNP (UseN season_N)) ;
+  FallingAsleep = AdvCN (UseN2 (VerbToNounV2 befall_V2)) asleep_Adv ;
+  Fallout = UseN fallout_N ;
+  FamilyBusiness = ApposCN (UseN family_N) (MassNP (UseN business_N)) ;
+  FanDevice = ApposCN (UseN fan_N) (MassNP (UseN device_N)) ;
+  Farm = UseN farm_N ;
+  FarmBuilding = ApposCN (UseN farm_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  Farming = UseN2 (VerbToNounV2 farm_V2) ;
+  Feather = UseN feather_N ;
+  Feeding = UseN2 (VerbToNounV2 breastfeed_V2) ;
+  FemaleCow = AdjCN (PositA female_A) (UseN cow_N) ;
+  Fence = UseN fence_N ;
+  Field = UseN field_N ;
+  Fighter = UseN fighter_N ;
+  FileDevice = ApposCN (UseN file_N) (MassNP (UseN device_N)) ;
+  FilmDirector = ApposCN (UseN film_N) (MassNP (UseN director_N)) ;
+  FilmMaking = ApposCN (UseN film_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 make_V2))) ;
+  FilmMakingProfession = ApposCN (ApposCN (UseN film_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 make_V2)))) (MassNP (UseN profession_N)) ;
+  FilmProducer = ApposCN (UseN film_N) (MassNP (UseN producer_N)) ;
+  Filter = UseN filter_N ;
+  FinancialBill = AdjCN (PositA financial_A) (UseN bill_N) ;
+  FinancialCompany = AdjCN (PositA financial_A) (UseN company_N) ;
+  FinancialService = AdjCN (PositA financial_A) (UseN service_N) ;
+  FinancialText = AdjCN (PositA financial_A) (UseN text_N) ;
+  Financing = UseN2 (VerbToNounV2 finance_V2) ;
+  Finger = UseN finger_N ;
+  Fingerprint = UseN fingerprint_N ;
+  FiniteQuantity = AdjCN (PositA finite_A) (UseN quantity_N) ;
+  Firearm = UseN firearm_N ;
+  Fireplace = UseN fireplace_N ;
+  FishMeat = ApposCN (UseN fish_N) (MassNP (UseN meat_N)) ;
+  Flag = UseN flag_N ;
+  Flooding = UseN2 (VerbToNounV2 flood_V2) ;
+  Floor = UseN floor_N ;
+  Flour = UseN flour_N ;
+  Flower = UseN flower_N ;
+  FluidContainer = AdjCN (PositA fluid_A) (UseN container_N) ;
+  FlyInsect = AdjCN (PositA fly_A) (UseN insect_N) ;
+  Flying = UseN2 (VerbToNounV2 fly_V2) ;
+  Focusing = UseN2 (VerbToNounV2 focus_V2) ;
+  Fog = UseN fog_N ;
+  Folding = UseN2 (VerbToNounV2 fold_V2) ;
+  Foot = UseN foot_N ;
+  FormOfGovernment = AdvCN (UseN form_N) (PrepNP part_Prep (MassNP (UseN government_N))) ;
+  FormText = ApposCN (UseN form_N) (MassNP (UseN text_N)) ;
+  FormalMeeting = AdjCN (PositA formal_A) (UseN meeting_N) ;
+  FossilFuel = ApposCN (UseN fossil_N) (MassNP (UseN fuel_N)) ;
+  Founding = UseN2 (VerbToNounV2 found_V2) ;
+  Fox = UseN fox_N ;
+  FreeAtom = AdjCN (PositA free_A) (UseN atom_N) ;
+  Frightening = UseN2 (VerbToNounV2 frighten_V2) ;
+  Frowning = UseN (VerbToNoun frown_V) ;
+  Fuel = UseN fuel_N ;
+  FullTimePosition = AdjCN (PositA full_A) (ApposCN (UseN time_N) (MassNP (UseN position_N))) ;
+  Funeral = UseN funeral_N ;
+  Furniture = UseN furniture_N ;
+  GainingConsciousness = AdjCN (PositA (VerbToGerundA gain_V2)) (UseN consciousness_N) ;
+  GameArtifact = AdjCN (PositA game_A) (UseN artifact_N) ;
+  GameAttribute = AdjCN (PositA game_A) (UseN attribute_N) ;
+  GameBoard = AdjCN (PositA game_A) (UseN board_N) ;
+  GameCall = AdjCN (PositA game_A) (UseN call_N) ;
+  GameDie = AdjCN (PositA game_A) (UseN die_N) ;
+  GameGoal = AdjCN (PositA game_A) (UseN goal_N) ;
+  GamePiece = AdjCN (PositA game_A) (UseN piece_N) ;
+  GameReferee = AdjCN (PositA game_A) (UseN referee_N) ;
+  GameShot = AdjCN (PositA game_A) (UseN shot_N) ;
+  Garage = UseN garage_N ;
+  GasolineEngine = ApposCN (UseN gasoline_N) (MassNP (UseN engine_N)) ;
+  Girl = UseN girl_N ;
+  Glass = UseN glass_N ;
+  Glove = UseN glove_N ;
+  Glue = UseN glue_N ;
+  Goose = UseN goose_N ;
+  GovernmentBuilding = ApposCN (UseN government_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  GovernmentOfficer = ApposCN (UseN government_N) (MassNP (UseN officer_N)) ;
+  GovernmentSecretary = ApposCN (UseN government_N) (MassNP (UseN secretary_N)) ;
+  GraduateSchool = ApposCN (UseN graduate_N) (MassNP (UseN school_N)) ;
+  GraphDiagram = ApposCN (UseN graph_N) (MassNP (UseN diagram_N)) ;
+  Grass = UseN grass_N ;
+  Grasshopper = UseN grasshopper_N ;
+  Greeting = UseN greeting_N ;
+  GroceryStore = ApposCN (UseN grocery_N) (MassNP (UseN store_N)) ;
+  GroupOfAnimals = AdvCN (UseN group_N) (PrepNP part_Prep (DetCN (DetQuant IndefArt NumSg) (UseN animal_N))) ;
+  Guitar = UseN guitar_N ;
+  Gun = UseN gun_N ;
+  GunBarrel = ApposCN (UseN gun_N) (MassNP (UseN barrel_N)) ;
+  GunPowder = ApposCN (UseN gun_N) (MassNP (UseN powder_N)) ;
+  GunStock = ApposCN (UseN gun_N) (MassNP (UseN stock_N)) ;
+  GunTrigger = ApposCN (UseN gun_N) (MassNP (UseN trigger_N)) ;
+  Hair = UseN hair_N ;
+  HairRemoval = ApposCN (UseN hair_N) (MassNP (UseN removal_N)) ;
+  Hammer = UseN hammer_N ;
+  Hand = UseN hand_N ;
+  HandGesture = ApposCN (UseN hand_N) (MassNP (UseN gesture_N)) ;
+  HandGrenade = ApposCN (UseN hand_N) (MassNP (UseN grenade_N)) ;
+  Handle = UseN handle_N ;
+  Hanging = UseN hanging_N ;
+  Harvesting = UseN2 (VerbToNounV2 harvest_V2) ;
+  Hat = UseN hat_N ;
+  Head = UseN head_N ;
+  Headlight = UseN headlight_N ;
+  Heart = UseN heart_N ;
+  HeatingDevice = AdjCN (PositA (VerbToGerundA heat_V2)) (UseN device_N) ;
+  Helicopter = UseN helicopter_N ;
+  Hen = UseN hen_N ;
+  HighSchool = AdjCN (PositA high_A) (UseN school_N) ;
+  Hijacking = UseN2 (VerbToNounV2 hijack_V2) ;
+  Hinge = UseN hinge_N ;
+  HistoricalAccount = AdjCN (PositA historical_A) (UseN account_N) ;
+  HoistingDevice = AdjCN (PositA (VerbToGerundA hoist_V2)) (UseN device_N) ;
+  Holder = UseN holder_N ;
+  HolidayCard = ApposCN (UseN holiday_N) (MassNP (UseN card_N)) ;
+  Holster = UseN holster_N ;
+  HomeBase = ApposCN (UseN home_N) (MassNP (UseN base_N)) ;
+  Honey = UseN honey_N ;
+  Hoof = UseN hoof_N ;
+  Horn = UseN horn_N ;
+  HornInstrument = ApposCN (UseN horn_N) (MassNP (UseN instrument_N)) ;
+  Horse = UseN horse_N ;
+  HorseRiding = ApposCN (UseN horse_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 outride_V2))) ;
+  HospitalBuilding = ApposCN (UseN hospital_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  HospitalOrganization = ApposCN (UseN hospital_N) (MassNP (UseN organization_N)) ;
+  HostageTaking = ApposCN (UseN hostage_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 betake_V2))) ;
+  Hotel = UseN hotel_N ;
+  HumanAdult = AdjCN (PositA human_A) (UseN adult_N) ;
+  HumanBaby = AdjCN (PositA human_A) (UseN baby_N) ;
+  HumanChild = AdjCN (PositA human_A) (UseN child_N) ;
+  HumanCorpse = AdjCN (PositA human_A) (UseN corpse_N) ;
+  HumanYouth = AdjCN (PositA human_A) (UseN youth_N) ;
+  Hydrocarbon = UseN hydrocarbon_N ;
+  Ice = UseN ice_N ;
+  Imagining = UseN2 (VerbToNounV2 imagine_V2) ;
+  Immigrating = UseN (VerbToNoun immigrate_V) ;
+  Imprisoning = UseN2 (VerbToNounV2 imprison_V2) ;
+  IncendiaryDeviceAttack = ApposCN (ApposCN (UseN incendiary_N) (MassNP (UseN device_N))) (MassNP (UseN attack_N)) ;
+  Inclining = UseN2 (VerbToNounV2 incline_V2) ;
+  IncomeTax = ApposCN (UseN income_N) (MassNP (UseN tax_N)) ;
+  Indicating = UseN2 (VerbToNounV2 indicate_V2) ;
+  IndustrialPlant = AdjCN (PositA industrial_A) (UseN plant_N) ;
+  Industry = UseN industry_N ;
+  InfectiousDisease = AdjCN (PositA infectious_A) (UseN disease_N) ;
+  Infiltration = UseN infiltration_N ;
+  InfiniteQuantity = AdjCN (PositA infinite_A) (UseN quantity_N) ;
+  Inhaling = UseN2 (VerbToNounV2 inhale_V2) ;
+  Inheriting = UseN2 (VerbToNounV2 inherit_V2) ;
+  Installing = UseN2 (VerbToNounV2 install_V2) ;
+  InstrumentalMusic = AdjCN (PositA instrumental_A) (UseN music_N) ;
+  Insulin = UseN insulin_N ;
+  InsuranceCompany = ApposCN (UseN insurance_N) (MassNP (UseN company_N)) ;
+  InsurancePolicy = ApposCN (UseN insurance_N) (MassNP (UseN policy_N)) ;
+  InternalCombustionEngine = AdjCN (PositA internal_A) (ApposCN (UseN combustion_N) (MassNP (UseN engine_N))) ;
+  Interviewing = UseN2 (VerbToNounV2 interview_V2) ;
+  Intestine = UseN intestine_N ;
+  Ion = UseN ion_N ;
+  Ivory = UseN ivory_N ;
+  Janitor = UseN janitor_N ;
+  Journalist = UseN journalist_N ;
+  Judge = UseN judge_N ;
+  Jumping = UseN2 (VerbToNounV2 jump_V2) ;
+  JuniorCollege = AdjCN (PositA junior_A) (UseN college_N) ;
+  Jury = UseN jury_N ;
+  Key = UseN key_N ;
+  Kicking = UseN2 (VerbToNounV2 kick_V2) ;
+  Kidnapping = UseN2 (VerbToNounV2 kidnap_V2) ;
+  Kidney = UseN kidney_N ;
+  Kissing = UseN2 (VerbToNounV2 kiss_V2) ;
+  Kitchen = UseN kitchen_N ;
+  Knee = UseN knee_N ;
+  Knife = UseN knife_N ;
+  KnifeAttack = ApposCN (UseN knife_N) (MassNP (UseN attack_N)) ;
+  Knuckle = UseN knuckle_N ;
+  Label = UseN label_N ;
+  Laboratory = UseN laboratory_N ;
+  Ladder = UseN ladder_N ;
+  Lamb = UseN lamb_N ;
+  LandTransportation = ApposCN (UseN land_N) (MassNP (UseN transportation_N)) ;
+  LandVehicle = ApposCN (UseN land_N) (MassNP (UseN vehicle_N)) ;
+  Landing = UseN landing_N ;
+  Laughing = UseN2 (VerbToNounV2 laugh_V2) ;
+  LawEnforcement = ApposCN (UseN law_N) (MassNP (UseN enforcement_N)) ;
+  Lawn = UseN lawn_N ;
+  LayingEggs = AdjCN (PositA (VerbToGerundA inlay_V2)) (UseN egg_N) ;
+  Leather = UseN leather_N ;
+  Leaving = UseN2 (VerbToNounV2 leave_V2) ;
+  Lecture = UseN lecture_N ;
+  Leg = UseN leg_N ;
+  LegalAppeal = AdjCN (PositA legal_A) (UseN appeal_N) ;
+  LegalAward = AdjCN (PositA legal_A) (UseN award_N) ;
+  LegalCharge = AdjCN (PositA legal_A) (UseN charge_N) ;
+  LegalConviction = AdjCN (PositA legal_A) (UseN conviction_N) ;
+  LegalDismissal = AdjCN (PositA legal_A) (UseN dismissal_N) ;
+  LegalOpinion = AdjCN (PositA legal_A) (UseN opinion_N) ;
+  LegalSummons = AdjCN (PositA legal_A) (UseN summons_N) ;
+  LemonFruit = ApposCN (UseN lemon_N) (MassNP (UseN fruit_N)) ;
+  Lengthening = UseN2 (VerbToNounV2 lengthen_V2) ;
+  Lens = UseN lens_N ;
+  Lesion = UseN lesion_N ;
+  Letter = UseN letter_N ;
+  LetterBombAttack = ApposCN (ApposCN (UseN letter_N) (MassNP (UseN bomb_N))) (MassNP (UseN attack_N)) ;
+  Library = UseN library_N ;
+  Licking = UseN licking_N ;
+  Lieutenant = UseN lieutenant_N ;
+  LightFixture = AdjCN (PositA light_A) (UseN fixture_N) ;
+  Lightning = UseN lightning_N ;
+  Lilac = UseN lilac_N ;
+  Limb = UseN limb_N ;
+  LinguisticAttribute = AdjCN (PositA linguistic_A) (UseN attribute_N) ;
+  Lip = UseN lip_N ;
+  LiquefiedPetroleumGas = AdjCN (PositA (VerbToParticipeA liquefy_V)) (ApposCN (UseN petroleum_N) (MassNP (UseN gas_N))) ;
+  LiquidBodySubstance = AdjCN (PositA liquid_A) (ApposCN (UseN body_N) (MassNP (UseN substance_N))) ;
+  Liver = UseN liver_N ;
+  LoadingWeapon = AdjCN (PositA (VerbToGerundA load_V2)) (UseN weapon_N) ;
+  Lock = UseN lock_N ;
+  LosingConsciousness = AdjCN (PositA (VerbToGerundA lose_V2)) (UseN consciousness_N) ;
+  Lung = UseN lung_N ;
+  LyingDown = AdjCN (PositA (VerbToGerundA belie_V2)) (UseN down_N) ;
+  Lynching = UseN2 (VerbToNounV2 lynch_V2) ;
+  Lyrics = UseN lyric_N ;
+  Magazine = UseN magazine_N ;
+  Magnetism = UseN magnetism_N ;
+  Maid = UseN maid_N ;
+  Mailbox = UseN mailbox_N ;
+  Mailing = UseN2 (VerbToNounV2 mail_V2) ;
+  MaizeGrain = ApposCN (UseN maize_N) (MassNP (UseN grain_N)) ;
+  MajorGeneral = AdjCN (PositA major_A) (UseN general_N) ;
+  Manifold = UseN manifold_N ;
+  Map = UseN map_N ;
+  Marble = UseN marble_N ;
+  Marketplace = UseN marketplace_N ;
+  Marshal = UseN marshal_N ;
+  Massaging = UseN2 (VerbToNounV2 massage_V2) ;
+  Mast = UseN mast_N ;
+  MatchDevice = ApposCN (UseN match_N) (MassNP (UseN device_N)) ;
+  MaterialHandlingEquipment = AdjCN (PositA material_A) (AdjCN (PositA (VerbToGerundA handle_V2)) (UseN equipment_N)) ;
+  Mating = UseN2 (VerbToNounV2 mate_V2) ;
+  MedicalClinic = AdjCN (PositA medical_A) (UseN clinic_N) ;
+  MedicalClinicBuilding = AdjCN (PositA medical_A) (ApposCN (UseN clinic_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2)))) ;
+  MedicalSchool = AdjCN (PositA medical_A) (UseN school_N) ;
+  Medicine = UseN medicine_N ;
+  Memorizing = UseN2 (VerbToNounV2 memorize_V2) ;
+  Menstruation = UseN menstruation_N ;
+  Message = UseN message_N ;
+  MetallicAlloy = AdjCN (PositA metallic_A) (UseN alloy_N) ;
+  Meteorite = UseN meteorite_N ;
+  Microphone = UseN microphone_N ;
+  Microscope = UseN microscope_N ;
+  MilitaryAircraft = AdjCN (PositA military_A) (UseN aircraft_N) ;
+  MilitaryArtifact = AdjCN (PositA military_A) (UseN artifact_N) ;
+  MilitaryCorps = AdjCN (PositA military_A) (UseN corps_N) ;
+  MilitaryFront = AdjCN (PositA military_A) (UseN front_N) ;
+  MilitaryInfiltration = AdjCN (PositA military_A) (UseN infiltration_N) ;
+  MilitaryInstallation = AdjCN (PositA military_A) (UseN installation_N) ;
+  MilitaryOfficer = AdjCN (PositA military_A) (UseN officer_N) ;
+  MilitaryPrivate = AdjCN (PositA military_A) (UseN private_N) ;
+  MilitaryReserveForce = AdjCN (PositA military_A) (ApposCN (UseN reserve_N) (MassNP (UseN force_N))) ;
+  MilitaryService = AdjCN (PositA military_A) (UseN service_N) ;
+  MilitaryShip = AdjCN (PositA military_A) (UseN ship_N) ;
+  MilitarySquad = AdjCN (PositA military_A) (UseN squad_N) ;
+  MilitarySurplus = AdjCN (PositA military_A) (UseN surplus_N) ;
+  MilitaryTank = AdjCN (PositA military_A) (UseN tank_N) ;
+  MilitaryUnit = AdjCN (PositA military_A) (UseN unit_N) ;
+  MilitaryVehicle = AdjCN (PositA military_A) (UseN vehicle_N) ;
+  MilitaryWaterVehicle = AdjCN (PositA military_A) (ApposCN (UseN water_N) (MassNP (UseN vehicle_N))) ;
+  Milk = UseN milk_N ;
+  Mine = UseN mine_N ;
+  Mirror = UseN mirror_N ;
+  Missile = UseN missile_N ;
+  MissionOrganization = ApposCN (UseN mission_N) (MassNP (UseN organization_N)) ;
+  MobileResidence = AdjCN (PositA mobile_A) (UseN residence_N) ;
+  ModellingPosition = AdjCN (PositA (VerbToGerundA model_V2)) (UseN position_N) ;
+  Monument = UseN monument_N ;
+  Morning = UseN morning_N ;
+  Mortar = UseN mortar_N ;
+  MortarAttack = ApposCN (UseN mortar_N) (MassNP (UseN attack_N)) ;
+  MortarGun = ApposCN (UseN mortar_N) (MassNP (UseN gun_N)) ;
+  Moth = UseN moth_N ;
+  MotionPictureScene = ApposCN (ApposCN (UseN motion_N) (MassNP (UseN picture_N))) (MassNP (UseN scene_N)) ;
+  MotionPictureShot = ApposCN (ApposCN (UseN motion_N) (MassNP (UseN picture_N))) (MassNP (UseN shot_N)) ;
+  Motorcycle = UseN motorcycle_N ;
+  Mounting = UseN2 (VerbToNounV2 mount_V2) ;
+  Mouse = UseN mouse_N ;
+  Mouth = UseN mouth_N ;
+  MovingResidence = AdjCN (PositA (VerbToGerundA move_V2)) (UseN residence_N) ;
+  Mule = UseN mule_N ;
+  Murder = UseN murder_N ;
+  Museum = UseN museum_N ;
+  MusicRecording = ApposCN (UseN music_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 record_V2))) ;
+  MusicText = ApposCN (UseN music_N) (MassNP (UseN text_N)) ;
+  MusicalComposition = AdjCN (PositA musical_A) (UseN composition_N) ;
+  MusicalGroup = AdjCN (PositA musical_A) (UseN group_N) ;
+  MusicalPerformance = AdjCN (PositA musical_A) (UseN performance_N) ;
+  MusicalTone = AdjCN (PositA musical_A) (UseN tone_N) ;
+  MysteryStory = ApposCN (UseN mystery_N) (MassNP (UseN story_N)) ;
+  Nail = UseN nail_N ;
+  NailDigit = ApposCN (UseN nail_N) (MassNP (UseN digit_N)) ;
+  NarrativeText = ApposCN (UseN narrative_N) (MassNP (UseN text_N)) ;
+  NationalFlag = AdjCN (PositA national_A) (UseN flag_N) ;
+  Neck = UseN neck_N ;
+  Nectar = UseN nectar_N ;
+  Negotiating = UseN2 (VerbToNounV2 negotiate_V2) ;
+  NerveCell = ApposCN (UseN nerve_N) (MassNP (UseN cell_N)) ;
+  NervousSystem = AdjCN (PositA nervous_A) (UseN system_N) ;
+  Nest = UseN nest_N ;
+  Neurosis = UseN neurosis_N ;
+  NewTestament = AdjCN (PositA new_A) (UseN testament_N) ;
+  NewsProgram = ApposCN (UseN news_N) (MassNP (UseN program_N)) ;
+  Newspaper = UseN newspaper_N ;
+  NightTime = ApposCN (UseN night_N) (MassNP (UseN time_N)) ;
+  Nodding = UseN2 (VerbToNounV2 nod_V2) ;
+  Nose = UseN nose_N ;
+  Nostril = UseN nostril_N ;
+  Novel = UseN novel_N ;
+  NuclearFamily = AdjCN (PositA nuclear_A) (UseN family_N) ;
+  NuclearWeapon = AdjCN (PositA nuclear_A) (UseN weapon_N) ;
+  OakWood = ApposCN (UseN oak_N) (MassNP (UseN wood_N)) ;
+  Oar = UseN oar_N ;
+  ObliqueAngle = AdjCN (PositA oblique_A) (UseN angle_N) ;
+  OccupationalRole = AdjCN (PositA occupational_A) (UseN role_1_N) ;
+  OccupationalTrade = AdjCN (PositA occupational_A) (UseN trade_N) ;
+  OfferingForSale = AdvCN (UseN offering_N) (PrepNP for_Prep (MassNP (UseN sale_N))) ;
+  OfferingToPurchase = AdvCN (UseN offering_N) (PrepNP to_Prep (MassNP (UseN purchase_N))) ;
+  OfficeBuilding = ApposCN (UseN office_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  Oil = UseN oil_N ;
+  OilPaint = ApposCN (UseN oil_N) (MassNP (UseN paint_N)) ;
+  OilPicture = ApposCN (UseN oil_N) (MassNP (UseN picture_N)) ;
+  OldTestament = AdjCN (PositA old_A) (UseN testament_N) ;
+  Ontology = UseN ontology_N ;
+  Opening = UseN opening_N ;
+  OpeningEyes = AdjCN (PositA opening_A) (UseN eye_N) ;
+  Opera = UseN opera_N ;
+  OpticalDevice = AdjCN (PositA optical_A) (UseN device_N) ;
+  OrangeFruit = AdjCN (PositA orange_A) (UseN fruit_N) ;
+  Orchestra = UseN orchestra_N ;
+  OrchestralConducting = AdjCN (PositA orchestral_A) (UseN2 (VerbToNounV2 conduct_V2)) ;
+  Order = UseN order_N ;
+  OrganicCompound = AdjCN (PositA organic_A) (UseN compound_N) ;
+  OrganizationalBoard = AdjCN (PositA organizational_A) (UseN board_N) ;
+  OrganizationalMerging = AdjCN (PositA organizational_A) (UseN2 (VerbToNounV2 merge_V2)) ;
+  Orthography = UseN orthography_N ;
+  Ossification = UseN ossification_N ;
+  OutdoorClothing = AdjCN (PositA outdoor_A) (UseN clothing_N) ;
+  OuterSpaceRegion = AdjCN (PositA outer_A) (ApposCN (UseN space_N) (MassNP (UseN region_N))) ;
+  Oven = UseN oven_N ;
+  Owl = UseN owl_N ;
+  Oxidation = UseN oxidation_N ;
+  Paint = UseN paint_N ;
+  PaintedPicture = AdjCN (PositA (VerbToParticipeA paint_V)) (UseN picture_N) ;
+  Painting = UseN painting_N ;
+  Pancreas = UseN pancreas_N ;
+  Paper = UseN paper_N ;
+  Paragraph = UseN paragraph_N ;
+  Park = UseN park_N ;
+  ParkingLot = AdjCN (PositA (VerbToGerundA park_V2)) (UseN lot_N) ;
+  PartTimePosition = ApposCN (ApposCN (UseN part_N) (MassNP (UseN time_N))) (MassNP (UseN position_N)) ;
+  Partnership = UseN partnership_N ;
+  PartyPlatform = ApposCN (UseN party_N) (MassNP (UseN platform_N)) ;
+  PassCertificate = ApposCN (UseN pass_N) (MassNP (UseN certificate_N)) ;
+  PassingABill = ApposCN (UseN passing_N) (DetCN (DetQuant IndefArt NumSg) (UseN bill_N)) ;
+  Passport = UseN passport_N ;
+  PeaceKeepingMission = ApposCN (ApposCN (UseN peace_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 keep_V2)))) (MassNP (UseN mission_N)) ;
+  PearFruit = ApposCN (UseN pear_N) (MassNP (UseN fruit_N)) ;
+  Peeling = UseN2 (VerbToNounV2 peel_V2) ;
+  Pencil = UseN pencil_N ;
+  PensionPlan = ApposCN (UseN pension_N) (MassNP (UseN plan_N)) ;
+  PercussionInstrument = ApposCN (UseN percussion_N) (MassNP (UseN instrument_N)) ;
+  Performance = UseN performance_N ;
+  PerformanceAct = ApposCN (UseN performance_N) (MassNP (UseN act_N)) ;
+  PerformanceProgram = ApposCN (UseN performance_N) (MassNP (UseN program_N)) ;
+  PerformanceStage = ApposCN (UseN performance_N) (MassNP (UseN stage_N)) ;
+  PerformanceStageWing = ApposCN (ApposCN (UseN performance_N) (MassNP (UseN stage_N))) (MassNP (UseN wing_N)) ;
+  PeriodicalPublisher = AdjCN (PositA periodical_A) (UseN publisher_N) ;
+  PetroleumProduct = ApposCN (UseN petroleum_N) (MassNP (UseN product_N)) ;
+  Pharmacist = UseN pharmacist_N ;
+  Photograph = UseN photograph_N ;
+  PhotographicFilm = AdjCN (PositA photographic_A) (UseN film_N) ;
+  Photographing = UseN2 (VerbToNounV2 photograph_V2) ;
+  Piano = UseN piano_N ;
+  PictureFrame = ApposCN (UseN picture_N) (MassNP (UseN frame_N)) ;
+  Pig = UseN pig_N ;
+  Pigeon = UseN pigeon_N ;
+  Pillow = UseN pillow_N ;
+  Pistol = UseN pistol_N ;
+  PitchersMound = ApposCN (UseN pitcher_N) (MassNP (UseN mound_N)) ;
+  Pitching = UseN2 (VerbToNounV2 pitch_V2) ;
+  PituitaryGland = AdjCN (PositA pituitary_A) (UseN gland_N) ;
+  PlaceOfCommerce = AdvCN (UseN place_N) (PrepNP part_Prep (MassNP (UseN commerce_N))) ;
+  PlaceOfWorship = AdvCN (UseN place_N) (PrepNP part_Prep (MassNP (UseN worship_N))) ;
+  PlacingUnderArrest = AdvCN (UseN placing_N) (PrepNP under_Prep (MassNP (UseN arrest_N))) ;
+  PlantBranch = ApposCN (UseN plant_N) (MassNP (UseN branch_N)) ;
+  PlantLeaf = ApposCN (UseN plant_N) (MassNP (UseN leaf_N)) ;
+  PlantRoot = ApposCN (UseN plant_N) (MassNP (UseN root_N)) ;
+  PlayingCard = AdjCN (PositA (VerbToGerundA play_V2)) (UseN card_N) ;
+  Pleading = UseN2 (VerbToNounV2 plead_V2) ;
+  Plug = UseN plug_N ;
+  Pocket = UseN pocket_N ;
+  PoliticalCrime = AdjCN (PositA political_A) (UseN crime_N) ;
+  PoliticalFigure = AdjCN (PositA political_A) (UseN figure_N) ;
+  PoliticalRevolution = AdjCN (PositA political_A) (UseN revolution_N) ;
+  Polling = UseN2 (VerbToNounV2 poll_V2) ;
+  Polygon = UseN polygon_N ;
+  PolyphonicMusic = AdjCN (PositA polyphonic_A) (UseN music_N) ;
+  PopularElection = AdjCN (PositA popular_A) (UseN election_N) ;
+  Porch = UseN porch_N ;
+  Pork = UseN pork_N ;
+  Portrait = UseN portrait_N ;
+  PostSecondarySchool = ApposCN (UseN post_N) (MassNP (AdjCN (PositA secondary_A) (UseN school_N))) ;
+  PotOrPan = ConjCN or_Conj (BaseCN (UseN pot_N) (UseN pan_N)) ;
+  Pottery = UseN pottery_N ;
+  Pouring = UseN2 (VerbToNounV2 pour_V2) ;
+  Powder = UseN powder_N ;
+  Praying = UseN2 (VerbToNounV2 pray_V2) ;
+  PreparedFood = AdjCN (PositA (VerbToParticipeA prepare_V)) (UseN food_N) ;
+  PressureMeasuringDevice = ApposCN (ApposCN (UseN pressure_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 measure_V2)))) (MassNP (UseN device_N)) ;
+  Prison = UseN prison_N ;
+  PrivateSchool = AdjCN (PositA private_A) (UseN school_N) ;
+  Proclaiming = UseN2 (VerbToNounV2 proclaim_V2) ;
+  Profession = UseN profession_N ;
+  ProfitSharingPlan = ApposCN (ApposCN (UseN profit_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 share_V2)))) (MassNP (UseN plan_N)) ;
+  Projectile = UseN projectile_N ;
+  ProjectileLauncher = AdjCN (PositA projectile_A) (UseN launcher_N) ;
+  ProjectileShell = AdjCN (PositA projectile_A) (UseN shell_N) ;
+  ProjectionScreen = ApposCN (UseN projection_N) (MassNP (UseN screen_N)) ;
+  Psychosis = UseN psychosis_N ;
+  PublicDefender = AdjCN (PositA public_A) (UseN defender_N) ;
+  PublicLibrary = AdjCN (PositA public_A) (UseN library_N) ;
+  PublicPark = AdjCN (PositA public_A) (UseN park_N) ;
+  PublicProsecutor = AdjCN (PositA public_A) (UseN prosecutor_N) ;
+  PublicSchool = AdjCN (PositA public_A) (UseN school_N) ;
+  Publisher = UseN publisher_N ;
+  Pulling = UseN2 (VerbToNounV2 pull_V2) ;
+  PulmonaryArtery = AdjCN (PositA pulmonary_A) (UseN artery_N) ;
+  PulmonaryVein = AdjCN (PositA pulmonary_A) (UseN vein_N) ;
+  Pump = UseN pump_N ;
+  Punching = UseN2 (VerbToNounV2 punch_V2) ;
+  Punishing = UseN2 (VerbToNounV2 punish_V2) ;
+  Quadrilateral = UseN quadrilateral_N ;
+  QueenInsect = ApposCN (UseN queen_N) (MassNP (UseN insect_N)) ;
+  Question = UseN question_N ;
+  Rabbit = UseN rabbit_N ;
+  Racing = UseN racing_N ;
+  Radar = UseN radar_N ;
+  RadiatingVisibleLight = AdjCN (PositA (VerbToGerundA radiate_V2)) (AdjCN (PositA visible_A) (UseN light_N)) ;
+  RadioBroadcasting = ApposCN (UseN radio_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 broadcast_V2))) ;
+  RadioEmission = ApposCN (UseN radio_N) (MassNP (UseN emission_N)) ;
+  RadioReceiver = ApposCN (UseN radio_N) (MassNP (UseN receiver_N)) ;
+  RadioactiveWeapon = AdjCN (PositA radioactive_A) (UseN weapon_N) ;
+  Radish = UseN radish_N ;
+  RailroadCompany = ApposCN (UseN railroad_N) (MassNP (UseN company_N)) ;
+  Ramp = UseN ramp_N ;
+  Raping = UseN2 (VerbToNounV2 rape_V2) ;
+  Rat = UseN rat_N ;
+  Rattlesnake = UseN rattlesnake_N ;
+  RawFood = AdjCN (PositA raw_A) (UseN food_N) ;
+  RearWindow = ApposCN (UseN rear_N) (MassNP (UseN window_N)) ;
+  ReceiverDevice = ApposCN (UseN receiver_N) (MassNP (UseN device_N)) ;
+  Reciting = UseN2 (VerbToNounV2 recite_V2) ;
+  RecoveringFromIllness = AdvCN (UseN2 (VerbToNounV2 recover_V2)) (PrepNP from_Prep (MassNP (UseN illness_N))) ;
+  RecreationOrExerciseDevice = ApposCN (ConjCN or_Conj (BaseCN (UseN recreation_N) (UseN exercise_N))) (MassNP (UseN device_N)) ;
+  Rectangle = UseN rectangle_N ;
+  RedBloodCell = AdjCN (PositA red_A) (ApposCN (UseN blood_N) (MassNP (UseN cell_N))) ;
+  RedcoatSoldier = ApposCN (UseN redcoat_N) (MassNP (UseN soldier_N)) ;
+  ReferenceBook = ApposCN (UseN reference_N) (MassNP (UseN book_N)) ;
+  ReferenceText = ApposCN (UseN reference_N) (MassNP (UseN text_N)) ;
+  Reflecting = UseN2 (VerbToNounV2 reflect_V2) ;
+  ReflectingLight = AdjCN (PositA (VerbToGerundA reflect_V2)) (UseN light_N) ;
+  ReflexiveProcess = AdjCN (PositA reflexive_A) (UseN process_N) ;
+  Refrigerator = UseN refrigerator_N ;
+  Registering = UseN2 (VerbToNounV2 register_V2) ;
+  Regretting = UseN2 (VerbToNounV2 regret_V2) ;
+  RelievingPain = AdjCN (PositA (VerbToGerundA relieve_V2)) (UseN pain_N) ;
+  ReligiousBuilding = AdjCN (PositA religious_A) (UseN building_N) ;
+  ReligiousFigure = AdjCN (PositA religious_A) (UseN figure_N) ;
+  ReligiousPosition = AdjCN (PositA religious_A) (UseN position_N) ;
+  ReligiousService = AdjCN (PositA religious_A) (UseN service_N) ;
+  Reminding = UseN2 (VerbToNounV2 remind_V2) ;
+  RemovingClothing = AdjCN (PositA (VerbToGerundA remove_V2)) (UseN clothing_N) ;
+  Renting = UseN2 (VerbToNounV2 rent_V2) ;
+  Report = UseN report_N ;
+  Request = UseN request_N ;
+  Researcher = UseN researcher_N ;
+  Resigning = UseN2 (VerbToNounV2 resign_V2) ;
+  Resolution = UseN resolution_N ;
+  Restaurant = UseN restaurant_N ;
+  RestaurantBuilding = ApposCN (UseN restaurant_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
+  RetailStore = ApposCN (UseN retail_N) (MassNP (UseN store_N)) ;
+  Retina = UseN retina_N ;
+  Retiring = UseN2 (VerbToNounV2 retire_V2) ;
+  Returning = UseN2 (VerbToNounV2 return_V2) ;
+  Reversing = UseN2 (VerbToNounV2 reverse_V2) ;
+  RevolverGun = ApposCN (UseN revolver_N) (MassNP (UseN gun_N)) ;
+  RiceGrain = ApposCN (UseN rice_N) (MassNP (UseN grain_N)) ;
+  Rifle = UseN rifle_N ;
+  RightAngle = AdjCN (PositA right_A) (UseN angle_N) ;
+  RightTriangle = AdjCN (PositA right_A) (UseN triangle_N) ;
+  Ringing = UseN2 (VerbToNounV2 ring_V2) ;
+  Road = UseN road_N ;
+  RoadTransportationSystem = ApposCN (ApposCN (UseN road_N) (MassNP (UseN transportation_N))) (MassNP (UseN system_N)) ;
+  RoadVehicle = ApposCN (UseN road_N) (MassNP (UseN vehicle_N)) ;
+  Robbing = UseN2 (VerbToNounV2 rob_V2) ;
+  Rocket = UseN rocket_N ;
+  RocketMissileAttack = ApposCN (ApposCN (UseN rocket_N) (MassNP (UseN missile_N))) (MassNP (UseN attack_N)) ;
+  Roof = UseN roof_N ;
+  Rooster = UseN rooster_N ;
+  Rotating = UseN2 (VerbToNounV2 rotate_V2) ;
+  Rowing = UseN rowing_N ;
+  Rubber = UseN rubber_N ;
+  Rug = UseN rug_N ;
+  Saddle = UseN saddle_N ;
+  SafeContainer = AdjCN (PositA safe_A) (UseN container_N) ;
+  Sailor = UseN sailor_N ;
+  Sales = UseN sale_N ;
+  SalesPosition = ApposCN (UseN sale_N) (MassNP (UseN position_N)) ;
+  SalineSolution = AdjCN (PositA saline_A) (UseN solution_N) ;
+  Sandal = UseN sandal_N ;
+  Sandwich = UseN sandwich_N ;
+  Saving = UseN saving_N ;
+  Scar = UseN scar_N ;
+  Scholarship = UseN scholarship_N ;
+  School = UseN school_N ;
+  Science = UseN science_N ;
+  Score = UseN score_N ;
+  Screw = UseN screw_N ;
+  Screwdriver = UseN screwdriver_N ;
+  Script = UseN script_N ;
+  Sculpture = UseN sculpture_N ;
+  SeasonOfYear = AdvCN (UseN season_N) (PrepNP part_Prep (MassNP (UseN year_N))) ;
+  Seat = UseN seat_N ;
+  Seating = UseN2 (VerbToNounV2 seat_V2) ;
+  SecondarySchool = AdjCN (PositA secondary_A) (UseN school_N) ;
+  SecurityAlarm = ApposCN (UseN security_N) (MassNP (UseN alarm_N)) ;
+  SecurityDevice = ApposCN (UseN security_N) (MassNP (UseN device_N)) ;
+  SecurityUnit = ApposCN (UseN security_N) (MassNP (UseN unit_N)) ;
+  SeizingProperty = AdjCN (PositA (VerbToGerundA seize_V2)) (UseN property_N) ;
+  SelfPoweredDevice = ApposCN (UseN self_N) (MassNP (AdjCN (PositA powered_A) (UseN device_N))) ;
+  SelfPoweredRoadVehicle = ApposCN (ApposCN (UseN self_N) (MassNP (AdjCN (PositA powered_A) (UseN road_N)))) (MassNP (UseN vehicle_N)) ;
+  Sentencing = UseN2 (VerbToNounV2 sentence_V2) ;
+  Sergeant = UseN sergeant_N ;
+  Sermon = UseN sermon_N ;
+  Serum = UseN serum_N ;
+  ServiceOrganization = ApposCN (UseN service_N) (MassNP (UseN organization_N)) ;
+  ServicePosition = ApposCN (UseN service_N) (MassNP (UseN position_N)) ;
+  Serving = UseN serving_N ;
+  SewageSystem = ApposCN (UseN sewage_N) (MassNP (UseN system_N)) ;
+  Sewing = UseN sewing_N ;
+  Sharing = UseN2 (VerbToNounV2 share_V2) ;
+  Sheep = UseN sheep_N ;
+  Shelf = UseN shelf_N ;
+  Sheriff = UseN sheriff_N ;
+  Shield = UseN shield_N ;
+  ShipCaptain = ApposCN (UseN ship_N) (MassNP (UseN captain_N)) ;
+  ShipMate = ApposCN (UseN ship_N) (MassNP (UseN mate_1_N)) ;
+  ShipOfficer = ApposCN (UseN ship_N) (MassNP (UseN officer_N)) ;
+  Shipping = UseN shipping_N ;
+  Shirt = UseN shirt_N ;
+  Shoe = UseN shoe_N ;
+  ShoeSole = ApposCN (UseN shoe_N) (MassNP (UseN sole_N)) ;
+  ShortStory = AdjCN (PositA short_A) (UseN story_N) ;
+  Shortening = UseN shortening_N ;
+  ShotBall = AdjCN (PositA (VerbToParticipeA shoot_V)) (UseN ball_N) ;
+  Shoulder = UseN shoulder_N ;
+  Shrugging = UseN2 (VerbToNounV2 shrug_V2) ;
+  Sidewalk = UseN sidewalk_N ;
+  Signalling = UseN2 (VerbToNounV2 signal_V2) ;
+  Silk = UseN silk_N ;
+  Sinking = UseN sinking_N ;
+  SittingDown = AdjCN (PositA (VerbToGerundA sit_V2)) (UseN down_N) ;
+  Skeleton = UseN skeleton_N ;
+  Sketch = UseN sketch_N ;
+  SkilledOccupation = AdjCN (PositA skilled_A) (UseN occupation_N) ;
+  Skin = UseN skin_N ;
+  Skull = UseN skull_N ;
+  Skylight = UseN skylight_N ;
+  Sleeve = UseN sleeve_N ;
+  Smiling = UseN2 (VerbToNounV2 smile_V2) ;
+  Smoking = UseN smoking_N ;
+  SmokingDevice = AdjCN (PositA (VerbToGerundA smoke_V2)) (UseN device_N) ;
+  SmokingPipe = AdjCN (PositA (VerbToGerundA smoke_V2)) (UseN pipe_N) ;
+  Smuggling = UseN2 (VerbToNounV2 smuggle_V2) ;
+  Snake = UseN snake_N ;
+  SoberingUp = AdvCN (UseN2 (VerbToNounV2 sober_V2)) up_Adv ;
+  SocialParty = AdjCN (PositA social_A) (UseN party_N) ;
+  SocialScience = AdjCN (PositA social_A) (UseN science_N) ;
+  Sock = UseN sock_N ;
+  SodiumChloride = ApposCN (UseN sodium_N) (MassNP (UseN chloride_N)) ;
+  Sofa = UseN sofa_N ;
+  Soldering = UseN2 (VerbToNounV2 solder_V2) ;
+  Soldier = UseN soldier_N ;
+  Somersaulting = UseN (VerbToNoun somersault_V) ;
+  Sonar = UseN sonar_N ;
+  Song = UseN song_N ;
+  SoupStock = ApposCN (UseN soup_N) (MassNP (UseN stock_N)) ;
+  SpaceRegion = ApposCN (UseN space_N) (MassNP (UseN region_N)) ;
+  SpaceTransportation = ApposCN (UseN space_N) (MassNP (UseN transportation_N)) ;
+  Spacecraft = UseN spacecraft_N ;
+  Spear = UseN spear_N ;
+  Sphere = UseN sphere_N ;
+  SpinalColumn = AdjCN (PositA spinal_A) (UseN column_N) ;
+  SpinalCord = AdjCN (PositA spinal_A) (UseN cord_N) ;
+  Spitting = UseN spitting_N ;
+  Spleen = UseN spleen_N ;
+  SportServe = ApposCN (UseN sport_N) (MassNP (UseN serve_N)) ;
+  SportsAttribute = ApposCN (UseN sport_N) (MassNP (UseN attribute_N)) ;
+  SportsFacility = ApposCN (UseN sport_N) (MassNP (UseN facility_N)) ;
+  SportsGround = ApposCN (UseN sport_N) (MassNP (UseN ground_N)) ;
+  SportsLeague = ApposCN (UseN sport_N) (MassNP (UseN league_N)) ;
+  SportsPlay = ApposCN (UseN sport_N) (MassNP (UseN play_N)) ;
+  SportsPosition = ApposCN (UseN sport_N) (MassNP (UseN position_N)) ;
+  SportsTeam = ApposCN (UseN sport_N) (MassNP (UseN team_N)) ;
+  Spraying = UseN2 (VerbToNounV2 spray_V2) ;
+  SpringSeason = ApposCN (UseN spring_N) (MassNP (UseN season_N)) ;
+  Square = UseN square_N ;
+  Squirrel = UseN squirrel_N ;
+  StageCoach = ApposCN (UseN stage_N) (MassNP (UseN coach_N)) ;
+  Stairway = UseN stairway_N ;
+  StandingUp = AdvCN (UseN standing_N) up_Adv ;
+  Starch = UseN starch_N ;
+  Starving = UseN2 (VerbToNounV2 starve_V2) ;
+  StateGovernment = ApposCN (UseN state_N) (MassNP (UseN government_N)) ;
+  Statement = UseN statement_N ;
+  Stealing = UseN2 (VerbToNounV2 steal_V2) ;
+  SteamEngine = ApposCN (UseN steam_N) (MassNP (UseN engine_N)) ;
+  Steel = UseN steel_N ;
+  Steeple = UseN steeple_N ;
+  SteeringWheel = AdjCN (PositA (VerbToGerundA steer_V2)) (UseN wheel_N) ;
+  Stepping = UseN2 (VerbToNounV2 step_V2) ;
+  Steps = UseN step_N ;
+  Stimulant = UseN stimulant_N ;
+  Stirring = UseN2 (VerbToNounV2 stir_V2) ;
+  Stomach = UseN stomach_N ;
+  Stoning = UseN2 (VerbToNounV2 stone_V2) ;
+  Store = UseN store_N ;
+  StormFront = ApposCN (UseN storm_N) (MassNP (UseN front_N)) ;
+  Stove = UseN stove_N ;
+  Strangling = UseN2 (VerbToNounV2 strangle_V2) ;
+  Streetcar = UseN streetcar_N ;
+  Stretching = UseN2 (VerbToNounV2 stretch_V2) ;
+  String = UseN string_N ;
+  StringInstrument = ApposCN (UseN string_N) (MassNP (UseN instrument_N)) ;
+  Submarine = UseN submarine_N ;
+  Subway = UseN subway_N ;
+  SubwaySystem = ApposCN (UseN subway_N) (MassNP (UseN system_N)) ;
+  Suffocating = UseN2 (VerbToNounV2 suffocate_V2) ;
+  Sugar = UseN sugar_N ;
+  Suicide = UseN suicide_N ;
+  SuicideBombing = ApposCN (UseN suicide_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 bomb_V2))) ;
+  SummerSeason = ApposCN (UseN summer_N) (MassNP (UseN season_N)) ;
+  Sunlight = UseN sunlight_N ;
+  Sunrise = UseN sunrise_N ;
+  Sunset = UseN sunset_N ;
+  Supposition = UseN supposition_N ;
+  Surgeon = UseN surgeon_N ;
+  Sweat = UseN sweat_N ;
+  Sweeping = UseN sweeping_N ;
+  SwimmingPool = AdjCN (PositA (VerbToGerundA swim_V2)) (UseN pool_N) ;
+  SwitchDevice = ApposCN (UseN switch_N) (MassNP (UseN device_N)) ;
+  Sword = UseN sword_N ;
+  Syllable = UseN syllable_N ;
+  Table = UseN table_N ;
+  Tableware = UseN tableware_N ;
+  Tail = UseN tail_N ;
+  TakingIll = AdjCN (PositA taking_A) (UseN ill_N) ;
+  TakingOff = AdvCN (UseN2 (VerbToNounV2 betake_V2)) off_Adv ;
+  Tape = UseN tape_N ;
+  Tavern = UseN tavern_N ;
+  TaxReturn = ApposCN (UseN tax_N) (MassNP (UseN return_N)) ;
+  Taxicab = UseN taxicab_N ;
+  Taxonomy = UseN taxonomy_N ;
+  Tea = UseN tea_N ;
+  TeamSport = ApposCN (UseN team_N) (MassNP (UseN sport_N)) ;
+  TearSubstance = ApposCN (UseN tear_N) (MassNP (UseN substance_N)) ;
+  Teenager = UseN teenager_N ;
+  Telegraph = UseN telegraph_N ;
+  Telephone = UseN telephone_N ;
+  TelephoneLine = ApposCN (UseN telephone_N) (MassNP (UseN line_N)) ;
+  Telephoning = UseN2 (VerbToNounV2 telephone_V2) ;
+  TelevisionBroadcasting = ApposCN (UseN television_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 broadcast_V2))) ;
+  TelevisionReceiver = ApposCN (UseN television_N) (MassNP (UseN receiver_N)) ;
+  TellingALie = ApposCN (UseN2 (VerbToNounV2 foretell_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN lie_N)) ;
+  Tendon = UseN tendon_N ;
+  Tent = UseN tent_N ;
+  TerroristOrganization = ApposCN (UseN terrorist_N) (MassNP (UseN organization_N)) ;
+  TestForm = ApposCN (UseN test_N) (MassNP (UseN form_N)) ;
+  Testament = UseN testament_N ;
+  Testifying = UseN2 (VerbToNounV2 testify_V2) ;
+  Thanking = UseN2 (VerbToNounV2 thank_V2) ;
+  Thermometer = UseN thermometer_N ;
+  Threatening = UseN2 (VerbToNounV2 threaten_V2) ;
+  Throat = UseN throat_N ;
+  Throwing = UseN2 (VerbToNounV2 throw_V2) ;
+  Thumb = UseN thumb_N ;
+  Thunder = UseN thunder_N ;
+  ThyroidGland = ApposCN (UseN thyroid_N) (MassNP (UseN gland_N)) ;
+  ThyroidHormone = ApposCN (UseN thyroid_N) (MassNP (UseN hormone_N)) ;
+  Ticket = UseN ticket_N ;
+  TieClothing = ApposCN (UseN tie_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 clothe_V2))) ;
+  Tilling = UseN2 (VerbToNounV2 till_V2) ;
+  Toad = UseN toad_N ;
+  Tobacco = UseN tobacco_N ;
+  Toe = UseN toe_N ;
+  Toilet = UseN toilet_N ;
+  Tomb = UseN tomb_N ;
+  TonalLanguage = AdjCN (PositA tonal_A) (UseN language_N) ;
+  Tongue = UseN tongue_N ;
+  Tooth = UseN tooth_N ;
+  Toothbrush = UseN toothbrush_N ;
+  Torso = UseN torso_N ;
+  TouristSite = ApposCN (UseN tourist_N) (MassNP (UseN site_N)) ;
+  Towel = UseN towel_N ;
+  Tracing = UseN tracing_N ;
+  TractorTrailer = ApposCN (UseN tractor_N) (MassNP (UseN trailer_N)) ;
+  TransferringPosition = AdjCN (PositA (VerbToGerundA transfer_V2)) (UseN position_N) ;
+  TransportationCompany = ApposCN (UseN transportation_N) (MassNP (UseN company_N)) ;
+  TrapOrCage = ConjCN or_Conj (BaseCN (UseN trap_N) (UseN cage_N)) ;
+  TravelContainer = ApposCN (UseN travel_N) (MassNP (UseN container_N)) ;
+  Tray = UseN tray_N ;
+  Treasurer = UseN treasurer_N ;
+  TreeBranch = ApposCN (UseN tree_N) (MassNP (UseN branch_N)) ;
+  Trembling = UseN (VerbToNoun tremble_V) ;
+  Tremor = UseN tremor_N ;
+  Trespassing = UseN (VerbToNoun trespass_V) ;
+  Triangle = UseN triangle_N ;
+  Trousers = UseN trouser_N ;
+  Truck = UseN truck_N ;
+  TruckTractor = ApposCN (UseN truck_N) (MassNP (UseN tractor_N)) ;
+  TruckTrailer = ApposCN (UseN truck_N) (MassNP (UseN trailer_N)) ;
+  Tube = UseN tube_N ;
+  Turbine = UseN turbine_N ;
+  TurningOffDevice = AdjCN (PositA (VerbToGerundA turn_V2)) (AdjCN (PositA off_A) (UseN device_N)) ;
+  TurningOnDevice = AdvCN (UseN turning_N) (PrepNP on_Prep (MassNP (UseN device_N))) ;
+  TwoDimensionalObject = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN object_N) ;
+  UnionOrganization = ApposCN (UseN union_N) (MassNP (UseN organization_N)) ;
+  UnionSoldier = ApposCN (UseN union_N) (MassNP (UseN soldier_N)) ;
+  University = UseN university_N ;
+  UnskilledOccupation = AdjCN (PositA unskilled_A) (UseN occupation_N) ;
+  Vacationing = UseN (VerbToNoun vacation_V) ;
+  Vandalism = UseN vandalism_N ;
+  VehicleAttack = ApposCN (UseN vehicle_N) (MassNP (UseN attack_N)) ;
+  VehicleBrake = ApposCN (UseN vehicle_N) (MassNP (UseN brake_N)) ;
+  VehicleController = ApposCN (UseN vehicle_N) (MassNP (UseN controller_N)) ;
+  VehicleLight = AdvCN (UseN vehicle_N) light_Adv ;
+  VehicleThrottle = ApposCN (UseN vehicle_N) (MassNP (UseN throttle_N)) ;
+  VehicleTire = ApposCN (UseN vehicle_N) (MassNP (UseN tire_N)) ;
+  VehicleWheel = ApposCN (UseN vehicle_N) (MassNP (UseN wheel_N)) ;
+  VehicleWindow = ApposCN (UseN vehicle_N) (MassNP (UseN window_N)) ;
+  Veil = UseN veil_N ;
+  Vein = UseN vein_N ;
+  VendingDevice = AdjCN (PositA (VerbToGerundA vend_V2)) (UseN device_N) ;
+  VideoRecording = ApposCN (UseN video_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 record_V2))) ;
+  Violin = UseN violin_N ;
+  VocalMusic = AdjCN (PositA vocal_A) (UseN music_N) ;
+  VocationalSchool = AdjCN (PositA vocational_A) (UseN school_N) ;
+  VotingPoll = AdjCN (PositA (VerbToGerundA vote_V2)) (UseN poll_N) ;
+  Vowel = UseN vowel_N ;
+  Vulture = UseN vulture_N ;
+  Wading = UseN2 (VerbToNounV2 wade_V2) ;
+  WakingUp = AdvCN (UseN2 (VerbToNounV2 wake_V2)) up_Adv ;
+  WalkingCane = AdjCN (PositA (VerbToGerundA walk_V2)) (UseN cane_N) ;
+  Wall = UseN wall_N ;
+  Wallpaper = UseN wallpaper_N ;
+  Warehouse = UseN warehouse_N ;
+  WashBasin = ApposCN (UseN wash_N) (MassNP (UseN basin_N)) ;
+  Washing = UseN washing_N ;
+  WashingDevice = AdjCN (PositA (VerbToGerundA wash_V2)) (UseN device_N) ;
+  Wastebasket = UseN wastebasket_N ;
+  WatchClock = ApposCN (UseN watch_N) (MassNP (UseN clock_N)) ;
+  WaterTransportation = ApposCN (UseN water_N) (MassNP (UseN transportation_N)) ;
+  WaterWave = ApposCN (UseN water_N) (MassNP (UseN wave_N)) ;
+  Waving = UseN2 (VerbToNounV2 wave_V2) ;
+  Wax = UseN wax_N ;
+  WeaponOfMassDestruction = AdvCN (UseN weapon_N) (PrepNP part_Prep (MassNP (ApposCN (UseN mass_N) (MassNP (UseN destruction_N))))) ;
+  Weekend = UseN weekend_N ;
+  Weeping = UseN2 (VerbToNounV2 weep_V2) ;
+  Welfare = UseN welfare_N ;
+  WheatGrain = ApposCN (UseN wheat_N) (MassNP (UseN grain_N)) ;
+  Wheel = UseN wheel_N ;
+  Whip = UseN whip_N ;
+  Whiskey = UseN whiskey_N ;
+  WhiteBloodCell = AdjCN (PositA white_A) (ApposCN (UseN blood_N) (MassNP (UseN cell_N))) ;
+  WholesaleStore = AdjCN (PositA wholesale_A) (UseN store_N) ;
+  WillowTree = ApposCN (UseN willow_N) (MassNP (UseN tree_N)) ;
+  WindInstrument = ApposCN (UseN wind_N) (MassNP (UseN instrument_N)) ;
+  Windmill = UseN windmill_N ;
+  Window = UseN window_N ;
+  WindowCovering = ApposCN (UseN window_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 cover_V2))) ;
+  Windshield = UseN windshield_N ;
+  Wine = UseN wine_N ;
+  Wing = UseN wing_N ;
+  WingDevice = ApposCN (UseN wing_N) (MassNP (UseN device_N)) ;
+  Winking = UseN2 (VerbToNounV2 wink_V2) ;
+  WinterSeason = ApposCN (UseN winter_N) (MassNP (UseN season_N)) ;
+  Wire = UseN wire_N ;
+  WireLine = ApposCN (UseN wire_N) (MassNP (UseN line_N)) ;
+  WireSpring = ApposCN (UseN wire_N) (MassNP (UseN spring_N)) ;
+  Wood = UseN wood_N ;
+  WoodArtifact = ApposCN (UseN wood_N) (MassNP (UseN artifact_N)) ;
+  Wool = UseN wool_N ;
+  WorkerInsect = ApposCN (UseN worker_N) (MassNP (UseN insect_N)) ;
+  Working = UseN working_N ;
+  Workshop = UseN workshop_N ;
+  Wrist = UseN wrist_N ;
+  WritingDevice = AdjCN (PositA (VerbToGerundA rewrite_V2)) (UseN device_N) ;
+  WrittenCommunication = AdjCN (PositA (VerbToParticipeA write_V)) (UseN communication_N) ;
+  LegislativeOrganization = AdjCN (PositA legislative_A) (UseN organization_N) ;
+  CommunicationDevice = ApposCN (UseN communication_N) (MassNP (UseN device_N)) ;
+  PassengerVehicle = ApposCN (UseN passenger_N) (MassNP (UseN vehicle_N)) ;
+  PowerSource = ApposCN (UseN power_N) (MassNP (UseN source_N)) ;
+  MilitaryGeneral = AdjCN (PositA military_A) (UseN general_N) ;
+  Cave = UseN cave_N ;
+  DairyProduct = ApposCN (UseN dairy_N) (MassNP (UseN product_N)) ;
+  PoliticalParty = AdjCN (PositA political_A) (UseN party_N) ;
+  BodyOfWater = AdvCN (UseN body_N) (PrepNP part_Prep (MassNP (UseN water_N))) ;
+  AnimalAgriculturalProduct = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA agricultural_A) (UseN product_N))) ;
+  AgriculturalProduct = AdjCN (PositA agricultural_A) (UseN product_N) ;
+  Livestock = UseN livestock_N ;
+  Tax = UseN tax_N ;
+  ChargingAFee = ApposCN (UseN2 (VerbToNounV2 charge_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN fee_N)) ;
+  GeneralElection = AdjCN (PositA general_A) (UseN election_N) ;
+  BaseballBase = ApposCN (UseN baseball_N) (MassNP (UseN base_N)) ;
+  Attorney = UseN attorney_N ;
+  RefinedPetroleumProduct = AdjCN (PositA (VerbToParticipeA refine_V)) (ApposCN (UseN petroleum_N) (MassNP (UseN product_N))) ;
+  GroceryProduce = ApposCN (UseN grocery_N) (MassNP (UseN produce_N)) ;
+  PlantAgriculturalProduct = ApposCN (UseN plant_N) (MassNP (AdjCN (PositA agricultural_A) (UseN product_N))) ;
+  Rock = UseN rock_N ;
+  Ship = UseN ship_N ;
+  DisplacementHullWaterVehicle = ApposCN (ApposCN (ApposCN (UseN displacement_N) (MassNP (UseN hull_N))) (MassNP (UseN water_N))) (MassNP (UseN vehicle_N)) ;
+  WaterVehicle = ApposCN (UseN water_N) (MassNP (UseN vehicle_N)) ;
+  PoweredVehicle = AdjCN (PositA powered_A) (UseN vehicle_N) ;
+  RollingStock = AdjCN (PositA (VerbToGerundA roll_V2)) (UseN stock_N) ;
+  RailVehicle = ApposCN (UseN rail_N) (MassNP (UseN vehicle_N)) ;
+  FinancialAccount = AdjCN (PositA financial_A) (UseN account_N) ;
+  MiningProduct = AdjCN (PositA (VerbToGerundA mine_V2)) (UseN product_N) ;
+  Celebrity = UseN celebrity_N ;
+  TransitSystem = ApposCN (UseN transit_N) (MassNP (UseN system_N)) ;
+  Pipeline = UseN pipeline_N ;
+  RailTransportationSystem = ApposCN (ApposCN (UseN rail_N) (MassNP (UseN transportation_N))) (MassNP (UseN system_N)) ;
+  MedicalDoctor = AdjCN (PositA medical_A) (UseN doctor_N) ;
+  CargoVehicle = ApposCN (UseN cargo_N) (MassNP (UseN vehicle_N)) ;
+  BotanicalTree = AdjCN (PositA botanical_A) (UseN tree_N) ;
+  Stock = UseN stock_N ;
+  Investment = UseN investment_N ;
+  FinancialAsset = AdjCN (PositA financial_A) (UseN asset_N) ;
+
+  -- unary functions :
+
+  DescendantsFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN descendant_N)) (PrepNP part_Prep ob) ;
+  DiameterFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN diameter_N)) (PrepNP part_Prep ob) ;
+  FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
+  LastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA last_A) (UseN element_N))) (PrepNP part_Prep ob) ;
+  OccupationFn ob = AdvCN (UseN occupation_N) (PrepNP part_Prep ob) ;
+  RadiusFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN radius_N)) (PrepNP part_Prep ob) ;
+  ResidentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN resident_N)) (PrepNP part_Prep ob) ;
+  StartFn ob = AdvCN (UseN start_N) (PrepNP part_Prep ob) ;
+  StopFn ob = AdvCN (UseN stop_N) (PrepNP part_Prep ob) ;
+  CitizenryFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN citizen_N)) (PrepNP part_Prep ob) ;
+
+
+  -- quaternary functions :
+  StreetAddressFn ob1 ob2 ob3 ob4= AdvNP (DetCN (DetQuant DefArt NumSg) (UseN inhabitant_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (ApposCN (ApposCN (UseN address_N) ob1) ob2) ob3) ob4))) ;
+
+
+
+  -- ternary predicates :
+  areaOfResponsibility ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompAP (PositA responsible_A))) (PrepNP for_Prep (MassNP ob2))) (PrepNP in_Prep ob3))) ;
+  subordinateInOrganization ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN subordinate_N)))) (PrepNP part_Prep ob2)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob3))))) ;
+  subordinatePosition ob1 ob2 ob3 = mkPolSent (PredVP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN holder_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob1)))) (AdvVP (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN subordinate_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN holder_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob2)))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob3))))) ;
+  equipmentCount ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (PassV2 equip_V2) (PrepNP with_Prep (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep (MassNP ob2))) (DetCN (DetQuant IndefArt NumPl) (UseN device_N)))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob3))))) ;
+  memberTypeCount ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN member_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob3))))) ;
+  memberAtTime ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP part_Prep ob2)) (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) ob3))))) ;
+  locatedAtTime ob1 ob2 ob3 = mkPolSent (PredVP ob1 (UseComp (CompAdv (ConjAdv and_Conj (BaseAdv (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) ob2))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN place_N) ob3)))))))) ;
+
+  -- quaternary predicates 
+
+  monetaryWage ob1 ob2 ob3 ob4 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (AdvVP (ComplSlash (SlashV2a employ_V2) ob2) (PrepNP with_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA monetary_A) (UseN wage_N))))) (PrepNP part_Prep ob3)) (PrepNP per_Prep ob4))) ;
+
+
+  -- binary predicates 
+
+  address ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN address_N)))) (PrepNP part_Prep ob1))) ;
+  affiliatedOrganization ob1 ob2 = mkPolSent (PredVP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN organization_N) ob1)) (AdvVP (PassV2 affiliate_V2) (PrepNP to_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
+  alias ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN alias_N)))) (PrepNP for_Prep ob2))) ;
+  ancestorOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN ancestor_N) (MassNP (UseN organization_N)))))) (PrepNP part_Prep ob2))) ;
+  anniversary ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN anniversary_N)))) (PrepNP part_Prep ob2))) ;
+  axis ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN axis_N)))) (PrepNP part_Prep ob2))) ;
+  benefits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a benefit_V2) ob2)) ;
+  birthdate ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN birth_N) (MassNP (UseN date_N)))))) (PrepNP part_Prep ob2))) ;
+  birthplace ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN birth_N) (MassNP (UseN place_N)))))) (PrepNP part_Prep ob2))) ;
+  capacity ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN capacity_N)))) (PrepNP part_Prep ob2))) ;
+  cohabitant ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA same_A) (UseN home_N))))) ;
+  coworker ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (AdvVP (UseV work_V) together_Adv)) ;
+  deathdate ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN death_N) (MassNP (UseN date_N)))))) (PrepNP part_Prep ob2))) ;
+  deathplace ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN death_N) (MassNP (UseN place_N)))))) (PrepNP part_Prep ob2))) ;
+  deviceState ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAdv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN state_N) ob2)))))) ;
+  disapproves ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV disapprove_V) (PrepNP part_Prep (sentToNoun ob2)))) ;
+  domesticPartner ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA domestic_A) (ApposCN (UseN partner_N) ob2)))))) ;
+  doubts ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a doubt_V2) (sentToNoun ob2))) ;
+  effectiveRange ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA effective_A) (UseN range_N))))) (PrepNP part_Prep ob2))) ;
+  electronNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN electron_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
+  equipmentType ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN component_N))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob2))))) ;
+  grammaticalRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA grammatical_A) (UseN relation_N)))) (PrepNP to_Prep ob2))) ;
+  grandparent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN grandparent_N)))) (PrepNP part_Prep ob2))) ;
+  hasExpertise ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (MassNP (UseN expertise_N))) (PrepNP in_Prep ob2))) ;
+  hasOccupation ob1 ob2 = mkPolSent (PredVP (MassNP ob2) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN occupation_N)))) (PrepNP part_Prep ob1))) ;
+  hostileForces ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA hostile_A) (UseN force_N)))))) ;
+  humanCapacity ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN capacity_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN human_N)))))) ;
+  ideologicalAffiliationOfOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA ideological_A) (UseN affiliation_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
+  intelligenceQuotient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN intelligence_N) (MassNP (UseN quotient_N))))) (PrepNP part_Prep ob2))) ;
+  inventory ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN inventory_N)))) (PrepNP part_Prep ob2))) ;
+  landlord ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN landlord_N)))) (PrepNP part_Prep ob2))) ;
+  legalGuardian ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA legal_A) (UseN guardian_N))))) (PrepNP part_Prep ob2))) ;
+  measurementReading ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (UseN2 (VerbToNounV2 lip_read_V2))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN measurement_N) ob2))))) ;
+  medicalPatient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA medical_A) (UseN patient_N))))) (PrepNP part_Prep ob2))) ;
+  memberCount ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN member_N)))))) ;
+  memberType ob1 ob2 = mkPolSent (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN member_N)) (PrepNP part_Prep ob1)) (AdvVP (UseV belong_V) (PrepNP to_Prep ob2))) ;
+  mutualStranger ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA mutual_A) (UseN stranger_N)))))) ;
+  neighbor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN neighbour_N)))) (PrepNP part_Prep ob2))) ;
+  occupation ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN occupation_N)))) (PrepNP part_Prep ob1))) ;
+  older ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA old_A ob2)))) ;
+  operator ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN operator_N)))) (PrepNP part_Prep ob1))) ;
+  parasite ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN parasite_N)))) (PrepNP part_Prep ob2))) ;
+  pathInSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN path_N)))) (PrepNP in_Prep ob2))) ;
+  patientMedical ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN patient_N)))) (PrepNP part_Prep ob2))) ;
+  potentialOfHydrogen ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN potential_N)))) (PrepNP part_Prep (MassNP (UseN hydrogen_N)))) (PrepNP part_Prep ob2))) ;
+  powerPlant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN power_N) (MassNP (UseN plant_N)))))) (PrepNP part_Prep ob2))) ;
+  protonNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN proton_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
+  religiousAffiliationOfOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA religious_A) (UseN affiliation_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
+  secretesSubstance ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a secrete_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN substance_N) (MassNP ob2))))) ;
+  sliceOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN slice_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
+  speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a bespeak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
+  stranger ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN stranger_N)))) (PrepNP to_Prep ob2))) ;
+  tangent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (MassNP (UseN tangent_N)))) (PrepNP to_Prep ob2))) ;
+  tenant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN tenant_N)))) (PrepNP part_Prep ob2))) ;
+  transported ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 transport_V2) (PrepNP in_Prep ob2))) ;
+  yearOfFounding ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN year_N)))) (PrepNP part_Prep (DetCN (DetQuant IndefArt NumPl) (UseN2 (VerbToNounV2 found_V2))))) (PrepNP part_Prep ob2))) ;
+  wavelength ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN wavelength_N)))) (PrepNP part_Prep ob2))) ;
+  cityAddress ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN city_N) (MassNP (UseN address_N)))))) (PrepNP part_Prep ob2))) ;
+  streetAddress ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN street_N) (MassNP (UseN address_N)))))) (PrepNP part_Prep ob2))) ;
+  streetNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN street_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
+  unitNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN unit_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
+  detainee ob1 ob2 = mkPolSent (PredVP ob2 (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN detainee_N) ob2))))) ;
+  targetInAttack ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN target_N)))) (PrepNP in_Prep (MassNP (ApposCN (UseN attack_N) ob2))))) ;
+  enjoys ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a enjoy_V2) ob2)) ;
+  dislikes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a dislike_V2) ob2)) ;
+  groupMember ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN group_N) ob2))))) ;
+  titles ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN title_N)))) (PrepNP part_Prep ob2))) ;
+  familyName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN family_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
+  middleName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN middle_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
+  givenName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA give_V)) (UseN name_N))))) (PrepNP part_Prep ob2))) ;
+  localLongName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA local_A) (AdjCN (PositA long_A) (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
+  localShortName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA local_A) (AdjCN (PositA short_A) (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
+  defendant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN defendant_N)))) (PrepNP part_Prep ob2))) ;
+  registeredItem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a contain_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA official_A) (UseN record_N)))) (PrepNP part_Prep ob2))) ;
+  student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
+  teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
+  onboard ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (MassNP (ApposCN (UseN inside_N) ob2))))) ;
+  sideOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN side_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
+  contestParticipant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN participant_N)))) (PrepNP in_Prep ob2))) ;
+  subField ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN field_N)))))) (PrepNP part_Prep ob2))) ;
+  financialAccount ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA financial_A) (UseN account_N))))) (PrepNP part_Prep ob2))) ;
+  serviceProvider ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN provider_N)))) (PrepNP part_Prep ob2))) ;
+  serviceRecipient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN recipient_N)))) (PrepNP part_Prep ob2))) ;
+  moves ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a move_V2) ob2)) ;
+  changesLocation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a change_V2) (DetCN (DetQuant DefArt NumSg) (UseN location_N))) (PrepNP part_Prep ob2))) ;
+  friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
+  grandfather ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN grandfather_N)))) (PrepNP part_Prep ob2))) ;
+  aunt ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN aunt_N)))) (PrepNP part_Prep ob2))) ;
+  cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
+  grandmother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN grandmother_N)))) (PrepNP part_Prep ob2))) ;
+  nephew ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN nephew_N)))) (PrepNP part_Prep ob2))) ;
+  niece ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN niece_N)))) (PrepNP part_Prep ob2))) ;
+  uncle ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN uncle_N)))) (PrepNP part_Prep ob2))) ;
+  stepfather ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN stepfather_N)))) (PrepNP part_Prep ob2))) ;
+  stepmother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN stepmother_N)))) (PrepNP part_Prep ob2))) ;
+  controlled ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 control_V2) (PrepNP by8agent_Prep ob2))) ;
+  gainsControl ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a gain_V2) (MassNP (UseN control_N))) (PrepNP part_Prep ob2))) ;
+  losesControl ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a lose_V2) (MassNP (UseN control_N))) (PrepNP part_Prep ob2))) ;
+  arrested ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (PassV2 arrest_V2) (PrepNP during_Prep ob1))) ;
+  conveyance ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (PPartNP (DetCN (DetQuant IndefArt NumSg) (UseN vehicle_N)) use_V2))) (PrepNP in_Prep ob1))) ;
+  birthday ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN birthday_N)))) (PrepNP part_Prep ob2))) ;
+  routeInSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN route_N)))) (PrepNP in_Prep ob2))) ;
+  expects ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a expect_V2) (sentToNoun ob2))) ;
+  financialAsset ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA financial_A) (UseN asset_N))))) (PrepNP part_Prep ob2))) ;
+  half ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN half_N)))) (PrepNP part_Prep ob2))) ;
+  lacks ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a lack_V2) ob2)) ;
+  most ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN large_N)))) part_Adv) (PrepNP part_Prep ob2))) ;
+  quarter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN quarter_N)))) (PrepNP part_Prep ob2))) ;
+  third ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN (mkN "third"))))) (PrepNP part_Prep ob2))) ;
+  fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
+  hopes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a hope_V2) (sentToNoun ob2))) ;
+  plaintiff ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN plaintiff_N)))) (PrepNP part_Prep ob2))) ;
+  brandName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN brand_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
+  formerName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA former_A) (UseN name_N))))) (PrepNP part_Prep ob2))) ;
+  reactant ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseV participate_V) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN reaction_N) ob1))))) ;
+  reagent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN reagent_N)))) (PrepNP part_Prep ob2))) ;
+  postalBoxNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA postal_A) (ApposCN (UseN box_N) (MassNP (UseN number_N))))))) (PrepNP part_Prep ob2))) ;
+  postalCode ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA postal_A) (UseN code_N))))) (PrepNP part_Prep ob2))) ;
+  telephoneNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN telephone_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
+  conjugate ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (PassV2 conjugate_V2)) ;
+  sententialObject ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN object_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN sentence_N) ob2))))) ;
+  sententialSubject ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN subject_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN sentence_N) ob2))))) ;
+  stockHolder ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a possess_V2) ob2)) ;
+  experimentalControl ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN controller_N)))) (PrepNP in_Prep ob1))) ;
+  allegiance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a owe_V2) (MassNP (UseN allegiance_N))) (PrepNP to_Prep ob2))) ;
+  deceptiveIdentifier ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA deceptive_A) (UseN identification_N))))) (PrepNP part_Prep ob2))) ;
+  cargo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cargo_N)))) (PrepNP part_Prep ob2))) ;
+  meatOfAnimal ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (UseComp (CompNP (AdvNP (MassNP (UseN meat_N)) (PrepNP part_Prep (MassNP (ApposCN (UseN animal_N) (MassNP ob2)))))))) ;
+  distanceOnPath ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN distance_N)) (PrepNP on_Prep (MassNP (UseN path_N)))) (PrepNP part_Prep ob1))))) ;
+  loss ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN loss_N)))) (PrepNP part_Prep ob1))) ;
+  soundFrequency ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA sound_A) (UseN frequency_N))))) (PrepNP part_Prep ob1))) ;
+};
diff --git a/examples/SUMO/MidLevelOntologyFre.gf b/examples/SUMO/MidLevelOntologyFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MidLevelOntologyFre.gf
@@ -0,0 +1,41 @@
+--# -path=.:french:romance:abstract:prelude:common
+concrete MidLevelOntologyFre of MidLevelOntology = MergeFre ** open DictLangFre, ParadigmsFre, LexiconFre, ExtraLexiconFre in {
+
+lin
+
+-- individual instances :
+
+Student = MassNP (UseN student_N) ;
+Teacher = MassNP (UseN teacher_N) ;
+
+
+-- subclasses
+ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
+Beer = UseN beer_N ;
+BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
+Boy = UseN boy_N ;
+Closing = UseN2 (VerbToNounV2 close_V2) ;
+DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
+Eye = UseN eye_N ;
+Girl = UseN girl_N ;
+Grass = UseN grass_N ;
+Head = UseN head_N ;
+Heart = UseN heart_N ;
+Knee = UseN knee_N ;
+Milk = UseN milk_N ;
+Restaurant = UseN restaurant_N ;
+
+-- unary functions :
+
+FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
+
+
+--bespeak_V2
+speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a speak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
+student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
+teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
+friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
+cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
+fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
+
+ };
diff --git a/examples/SUMO/MidLevelOntologyRon.gf b/examples/SUMO/MidLevelOntologyRon.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MidLevelOntologyRon.gf
@@ -0,0 +1,42 @@
+--# -path=.:romanian:abstract:prelude:common
+concrete MidLevelOntologyRon of MidLevelOntology = MergeRon ** open DictLangRon, ParadigmsRon, LexiconRon, ExtraLexiconRon in {
+
+lin
+
+-- individual instances :
+
+Student = MassNP (UseN student_N) ;
+Teacher = MassNP (UseN teacher_N) ;
+
+
+-- subclasses 
+ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
+Beer = UseN beer_N ;
+BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
+Boy = UseN boy_N ;
+Closing = UseN2 (VerbToNounV2 close_V2) ;
+DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
+Eye = UseN eye_N ;
+Girl = UseN girl_N ;
+Grass = UseN grass_N ;
+Head = UseN head_N ;
+Heart = UseN heart_N ;
+Knee = UseN knee_N ;
+Milk = UseN milk_N ;
+Restaurant = UseN restaurant_N ;
+
+-- unary functions :
+
+FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
+--LastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA last_A) (UseN element_N))) (PrepNP part_Prep ob);
+
+
+--bespeak_V2
+speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a speak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
+student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
+teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
+friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
+cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
+fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
+
+ };
diff --git a/examples/SUMO/Mid_level_ontology.gf b/examples/SUMO/Mid_level_ontology.gf
deleted file mode 100644
--- a/examples/SUMO/Mid_level_ontology.gf
+++ /dev/null
@@ -1,8671 +0,0 @@
--- # -path=. :englishExtended
-abstract Mid_level_ontology = open Merge,elements in {
-
-
-
--- Removing a human fetus from a Pregnant woman 
--- in such a way that the fetus cannot survive.
-fun Aborting : Class ;
-fun Aborting_Class : SubClass Aborting Removing ;
-
--- A Certificate that demonstrates that the holder 
--- of the Certificate has successfully completed an EducationalProgram.
-fun AcademicDegree : Class ;
-fun AcademicDegree_Class : SubClass AcademicDegree Certificate ;
-
--- Increasing the speed with which someone 
--- or something is moving.
-fun Accelerating : Class ;
-fun Accelerating_Class : SubClass Accelerating (both Increasing Translocation) ;
-
-
--- The Profession of being an Accountant.
-fun Accountant : Ind Profession ;
-
-
--- Any process of certifying an EducationalOrganization.
-fun Accrediting : Class ;
-fun Accrediting_Class : SubClass Accrediting Declaring ;
-
--- AchievingControl is the
--- class of all events in which an Agent gains physical
--- control over some object.
-fun AchievingControl : Class ;
-fun AchievingControl_Class : SubClass AchievingControl Guiding ;
-
--- A UnitOfMeasure equal to 4840 square yards.
-fun Acre : Ind UnitOfArea ;
-
-
--- Any TwoDimensionalAngle that has an 
--- angularMeasure that is less than 90 AngularDegrees.
-fun AcuteAngle : Class ;
-fun AcuteAngle_Class : SubClass AcuteAngle TwoDimensionalAngle ;
-
--- A RelationalAttribute that indicates an address 
--- where an Agent can regularly be contacted.
-fun Address : Class ;
-fun Address_Class : SubClass Address RelationalAttribute ;
-
--- Combining a substance with Air.
-fun Aerating : Class ;
-fun Aerating_Class : SubClass Aerating Combining ;
-
--- A Device whose purpose is to mix Substances with 
--- Air.
-fun Aerator : Class ;
-fun Aerator_Class : SubClass Aerator Device ;
-
--- An RecreationOrExerciseDevice whose purpose is 
--- to develop the cardiovascular system.
-fun AerobicExerciseDevice : Class ;
-fun AerobicExerciseDevice_Class : SubClass AerobicExerciseDevice RecreationOrExerciseDevice ;
-
--- The class of TimeIntervals that begin at noon and 
--- end at Sunset.
-fun Afternoon : Class ;
-fun Afternoon_Class : SubClass Afternoon DayTime ;
-
--- A CommercialAgent whose customers are all other 
--- CommercialAgents, e.g. staffing agencies, food_service providers, etc.
-fun Agency : Class ;
-fun Agency_Class : SubClass Agency CommercialAgent ;
-
--- AgriculturalProduct is the 
--- subclass of Product that comprises the products of agricultural 
--- activity.
-fun AgriculturalProduct : Class ;
-
-
--- AirForce is the subclass of MilitaryService 
--- that comprises military air forces.
-fun AirForce : Class ;
-fun AirForce_Class : SubClass AirForce MilitaryService ;
-
--- Any instance of Transportation where the 
--- instrument is an Aircraft and which is through an AtmosphericRegion.
-fun AirTransportation : Class ;
-fun AirTransportation_Class : SubClass AirTransportation Transportation ;
-
--- Any Vehicle which is capable of 
--- AirTransportation. Note that this class covers both fixed_wing aircraft
--- and helicopters.
-fun Aircraft : Class ;
-fun Aircraft_Class : SubClass Aircraft Vehicle ;
-
--- OrganicCompounds that are produced from hydrocarbons 
--- by distillation.
-fun Alcohol : Class ;
-fun Alcohol_Class : SubClass Alcohol OrganicCompound ;
-
--- Any Beverage that contains Alcohol.
-fun AlcoholicBeverage : Class ;
-fun AlcoholicBeverage_Class : SubClass AlcoholicBeverage (both Beverage Depressant) ;
-
-
--- A ChemicalBase found in some Plants that has 
--- physiological and psychological effects.
-fun Alkaloid : Class ;
-fun Alkaloid_Class : SubClass Alkaloid (both BiologicallyActiveSubstance ChemicalBase) ;
-
-
--- Any Character that is comprised of a single 
--- alphabetical character, e.g. A, B, C, D, ...
-fun AlphabeticCharacter : Class ;
-fun AlphabeticCharacter_Class : SubClass AlphabeticCharacter Character ;
-
--- Tiny sacs in the Lung which absorb Oxygen 
--- which is delivered to them by the BronchialDucts.
-fun Alveolus : Class ;
-fun Alveolus_Class : SubClass Alveolus (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- Any Maneuver in a ViolentContest where one 
--- contestParticipant attempts to conceal himself from another 
--- contestParticipant so that he can Attack the other 
--- contestParticipant.
-fun Ambush : Class ;
-fun Ambush_Class : SubClass Ambush Maneuver ;
-
--- Organic acids that are the building blocks of 
--- Proteins.
-fun AminoAcid : Class ;
-fun AminoAcid_Class : SubClass AminoAcid (both ChemicalAcid OrganicCompound) ;
-
-
--- A very large Boa that is found in South America.
-fun Anaconda : Class ;
-fun Anaconda_Class : SubClass Anaconda ConstrictorSnake ;
-
--- An RecreationOrExerciseDevice whose purpose 
--- is to develop Muscles without also developing the cardiovascular system.
-fun AnaerobicExerciseDevice : Class ;
-fun AnaerobicExerciseDevice_Class : SubClass AnaerobicExerciseDevice RecreationOrExerciseDevice ;
-
--- An AttachingDevice which is large hook or set of hooks 
--- that are used to secure a Ship on the open water.
-fun Anchor : Class ;
-fun Anchor_Class : SubClass Anchor AttachingDevice ;
-
--- The state of being wrathful, irate or indignant.
-fun Anger : Ind EmotionalState ;
-
-
--- AnimalAgriculturalProduct is the class of AgriculturalProducts 
--- that are animal in nature, including meat, fish, dairy products, 
--- hides, furs, animal fats and oils, etc.
-fun AnimalAgriculturalProduct : Class ;
-fun AnimalAgriculturalProduct_Class : SubClass AnimalAgriculturalProduct AgriculturalProduct ;
-
--- Any Device which is used to control the 
--- movements of an Animal or Human, e.g. leashes, reins, harnesses, muzzles, 
--- bridles, shackles, handcuffs, etc.
-fun AnimalController : Class ;
-fun AnimalController_Class : SubClass AnimalController Device ;
-
--- AnimalPoweredDevice is the subclass 
--- of Devices that function with power supplied by animals. Examples: 
--- oxcarts, horse_drawn plows, mule_driven mills.
-fun AnimalPoweredDevice : Class ;
-fun AnimalPoweredDevice_Class : SubClass AnimalPoweredDevice Device ;
-
--- An Artifact which is intended to house 
--- Animals and not Humans. Note that an AnimalResidence may or may not 
--- be a StationaryArtifact, e.g. a horse stall is stationary while a doghouse 
--- generally is not.
-fun AnimalResidence : Class ;
-fun AnimalResidence_Class : SubClass AnimalResidence Artifact ;
-
--- A hard shell of calcium that serves as a 
--- supporting structure for some Invertebrates.
-fun AnimalShell : Class ;
-fun AnimalShell_Class : SubClass AnimalShell (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A GroupOfAnimals which are Pulling something.
-fun AnimalTeam : Class ;
-fun AnimalTeam_Class : SubClass AnimalTeam GroupOfAnimals ;
-
--- The joint in the Leg that connects the tibia and the 
--- fibula to the talus.
-fun Ankle : Class ;
-fun Ankle_Class : SubClass Ankle BodyJoint ;
-
--- Any Text which contains information about 
--- an event in the future.
-fun Announcement : Class ;
-fun Announcement_Class : SubClass Announcement FactualText ;
-
--- Responding to a Questioning, i.e. trying to answer 
--- someone's question.
-fun Answering : Class ;
-fun Answering_Class : SubClass Answering Stating ;
-
--- A colony Insect of three types: males, 
--- QueenInsect, and worker ants.
-fun AntInsect : Class ;
-fun AntInsect_Class : SubClass AntInsect Insect ;
-
--- The class of TimeIntervals that begin at midnight 
--- and end at noon.
-fun AnteMeridiem : Class ;
-fun AnteMeridiem_Class : SubClass AnteMeridiem TimeInterval ;
-
--- A HoofedMammal with long legs and backward_facing horns. 
--- This class includes gazelles, addax, blackbucks, etc.
-fun Antelope : Class ;
-fun Antelope_Class : SubClass Antelope HoofedMammal ;
-
--- A CommunicationDevice which enables or improves 
--- the reception of RadioEmissions by another CommunicationDevice (the 
--- radio or television receiver).
-fun Antenna : Class ;
-fun Antenna_Class : SubClass Antenna CommunicationDevice ;
-
--- The field of anthropology.
-fun Anthropology : Ind SocialScience ;
-
-
--- A BiologicallyActiveSubstance than can kill 
--- instances of Bacterium.
-fun Antibiotic : Class ;
-fun Antibiotic_Class : SubClass Antibiotic BiologicallyActiveSubstance ;
-
--- An immunoglobulin which is produced by the body 
--- and which has the ability to neutralize Antigens.
-fun Antibody : Class ;
-fun Antibody_Class : SubClass Antibody Protein ;
-
--- Any BiologicallyActiveSubstance that has the 
--- capacity to stimulate the production of Antibodies.
-fun Antigen : Class ;
-fun Antigen_Class : SubClass Antigen BiologicallyActiveSubstance ;
-
--- An Antigen that is carried in the red blood 
--- cells of those with BloodTypeA.
-fun AntigenA : Class ;
-fun AntigenA_Class : SubClass AntigenA Antigen ;
-
--- An Antigen that is carried in the red blood 
--- cells of those with BloodTypeB.
-fun AntigenB : Class ;
-fun AntigenB_Class : SubClass AntigenB Antigen ;
-
--- The BeliefGroup that is characterized by a 
--- dislike for Judaism.
-fun Antisemitism : Ind BeliefGroup ;
-
-
--- The state of being worried, troubled or uneasy.
-fun Anxiety : Ind EmotionalState ;
-
-
--- A ResidentialBuilding containing 
--- ApartmentUnits.
-fun ApartmentBuilding : Class ;
-fun ApartmentBuilding_Class : SubClass ApartmentBuilding ResidentialBuilding ;
-
--- A SingleFamilyResidence that is not owned 
--- by any member of the SocialUnit that lives there.
-fun ApartmentUnit : Class ;
-fun ApartmentUnit_Class : SubClass ApartmentUnit SingleFamilyResidence ;
-
--- A FruitOrVegetable that has a tart to sweet taste and 
--- a spherical shape.
-fun Apple : Class ;
-fun Apple_Class : SubClass Apple (both Food FruitOrVegetable) ;
-
-
--- A FormText whose purpose is to obtain admission 
--- to an Organization or to receive assistance from an Organization.
-fun Application : Class ;
-fun Application_Class : SubClass Application FormText ;
-
--- Any instance of Declaring by which the 
--- patient is assigned to a Position within an Organization where 
--- the patient previously had no position. For example, the appointments 
--- of people to non_elective offices in a government.
-fun Appointing : Class ;
-fun Appointing_Class : SubClass Appointing Declaring ;
-
--- An item of Clothing that protects the front and 
--- middle part of the body while one is Cooking or doing other work.
-fun Apron : Class ;
-fun Apron_Class : SubClass Apron Clothing ;
-
--- The FieldOfStudy of designing Buildings, i.e. 
--- creating Blueprints for Buildings.
-fun Architecture : Ind FieldOfStudy ;
-
-
--- Any Stating which has the form of an Argument.
-fun Arguing : Class ;
-fun Arguing_Class : SubClass Arguing Stating ;
-
--- The upper Limbs of a Primate.
-fun Arm : Class ;
-fun Arm_Class : SubClass Arm Limb ;
-
--- MilitaryServices that are land forces.
-fun Army : Class ;
-fun Army_Class : SubClass Army MilitaryService ;
-
--- The final part of any instance of Translocation.
-fun Arriving : Class ;
-fun Arriving_Class : SubClass Arriving Translocation ;
-
--- An Icon which has the shape of an arrow and 
--- which is used to indicate direction or a relationship betwee two things.
-fun ArrowFigure : Class ;
-fun ArrowFigure_Class : SubClass ArrowFigure Icon ;
-
--- An Icon which has the shape of an arrow and which 
--- is used to indicate direction or a relationship betwee two things.
-fun ArrowIcon : Class ;
-fun ArrowIcon_Class : SubClass ArrowIcon Icon ;
-
--- A long, thin Projectile with a pointed tip is 
--- fired from a bow.
-fun ArrowProjectile : Class ;
-fun ArrowProjectile_Class : SubClass ArrowProjectile Projectile ;
-
--- An act where an agent sets something which it does not possess 
--- on fire in order to destroy it or its contents.
-fun Arson : Class ;
-fun Arson_Class : SubClass Arson (both Combustion Destruction) ;
-
-
--- The Profession of reporting and critiquing current 
--- ArtWorks.
-fun ArtCritic : Ind Journalist ;
-
-
--- Any ContentDevelopment that results in a 
--- PaintedPicture.
-fun ArtPainting : Class ;
-fun ArtPainting_Class : SubClass ArtPainting (both ContentDevelopment Painting) ;
-
-
--- Any School whose aim is to teach students 
--- how to create ArtWorks.
-fun ArtSchool : Class ;
-fun ArtSchool_Class : SubClass ArtSchool School ;
-
--- A Workshop, which is 
--- devoted to the creation of ArtWorks.
-fun ArtStudio : Class ;
-fun ArtStudio_Class : SubClass ArtStudio Workshop ;
-
--- Any BloodVessel which transfers Blood from 
--- the Heart to the extremities of the body.
-fun Artery : Class ;
-fun Artery_Class : SubClass Artery BloodVessel ;
-
--- A Gun that is too large to be carried and fired 
--- by a single Human. Typically, ArtilleryGuns are on wheels.
-fun ArtilleryGun : Class ;
-fun ArtilleryGun_Class : SubClass ArtilleryGun Gun ;
-
--- AtmosphericRegion is the class of 
--- all subregions of EarthsAtmosphere.
-fun AtmosphericRegion : Class ;
-fun AtmosphericRegion_Class : SubClass AtmosphericRegion SpaceRegion ;
-
--- Two or more Atoms that are bound together and 
--- comprise part of a Molecule.
-fun AtomicGroup : Class ;
-fun AtomicGroup_Class : SubClass AtomicGroup CompoundSubstance ;
-
--- Any decrease in the size of a BodyPart which is due to 
--- disease or lack of use.
-fun Atrophy : Class ;
-fun Atrophy_Class : SubClass Atrophy (both Decreasing PathologicProcess) ;
-
-
--- The Profession of practicing law, whether as a 
--- judge or as a legal advocate.
-fun Attorney : Class ;
-
-
--- The head law officer of a GeopoliticalArea, 
--- usually a Nation or StateOrProvince.
-fun AttorneyGeneral : Ind (both Profession GovernmentOfficer) ;
-
-
--- A representation of sound on some medium such
--- as wax cylinder, vinyl record, magnetic tape, CD or flash memory, that is 
--- intended to be used in some machine to reproduce that sound.
-fun AudioRecording : Class ;
-fun AudioRecording_Class : SubClass AudioRecording (both ContentBearingObject Text) ;
-
-
--- Any Building whose purpose is to hold concerts, 
--- sports events, plays, etc. before an audience. This class includes theaters, 
--- sports stadiums, university auditoriums, etc.
-fun Auditorium : Class ;
-fun Auditorium_Class : SubClass Auditorium Building ;
-
--- A Seat within an Auditorium from which one 
--- can observe the PerformanceStage.
-fun AuditoriumSeat : Class ;
-fun AuditoriumSeat_Class : SubClass AuditoriumSeat Seat ;
-
--- A Gun that fires a burst of Projectiles 
--- with each pull of the trigger. Also known as a machine gun.
-fun AutomaticGun : Class ;
-fun AutomaticGun_Class : SubClass AutomaticGun Gun ;
-
--- Automobile is a subclass of 
--- SelfPoweredRoadVehicles including passenger cars, family vans, light 
--- trucks, and sport utility vehicles. In general, this class covers 
--- four_wheeled passenger road vehicles.
-fun Automobile : Class ;
-fun Automobile_Class : SubClass Automobile (both PassengerVehicle SelfPoweredRoadVehicle) ;
-
-
--- A FruitOrVegetable that is shaped like a pear and 
--- has a dark green skin and a rich meat.
-fun Avocado : Class ;
-fun Avocado_Class : SubClass Avocado (both Food FruitOrVegetable) ;
-
-
--- Axle is a class of Devices each of which can 
--- be paired with two VehicleWheels to rotate and move a RoadVehicle.
-fun Axle : Class ;
-fun Axle_Class : SubClass Axle Device ;
-
--- A disease that is caused by instances of 
--- Bacterium.
-fun BacterialDisease : Class ;
-fun BacterialDisease_Class : SubClass BacterialDisease InfectiousDisease ;
-
--- Any Container which is made of Fabric.
-fun Bag : Class ;
-fun Bag_Class : SubClass Bag Container ;
-
--- Any instance of Cooking where the instrument 
--- is an Oven.
-fun Baking : Class ;
-fun Baking_Class : SubClass Baking (both Cooking Heating) ;
-
-
--- Any GamePiece which has the shape of a sphere.
-fun Ball : Class ;
-fun Ball_Class : SubClass Ball GamePiece ;
-
--- A Missile which is guided for the first stage 
--- of its flight but then falls to its target for the second stage.
-fun BallisticMissile : Class ;
-fun BallisticMissile_Class : SubClass BallisticMissile Missile ;
-
--- A FormText which is used in Voting. A list of 
--- candidates is printed on the form, and the voter selects the candidate he/she 
--- wants to vote for.
-fun Ballot : Class ;
-fun Ballot_Class : SubClass Ballot FormText ;
-
--- A piece of Fabric that is used in Covering an 
--- open wound.
-fun Bandage : Class ;
-fun Bandage_Class : SubClass Bandage Fabric ;
-
--- Any SkilledOccupation which involves working in a 
--- FinancialBank.
-fun Banker : Ind SkilledOccupation ;
-
-
--- A ReligiousProcess which marks the acceptance of 
--- the person being baptized into the ReligiousOrganization.
-fun Baptizing : Class ;
-fun Baptizing_Class : SubClass Baptizing (both JoiningAnOrganization ReligiousProcess) ;
-
-
--- Offering to sell something to someone at a 
--- reduced price.
-fun BargainSale : Class ;
-fun BargainSale_Class : SubClass BargainSale Offering ;
-
--- Any instance of RadiatingSound which is produced 
--- by a Canine.
-fun Barking : Class ;
-fun Barking_Class : SubClass Barking RadiatingSound ;
-
--- A Building on a Farm that is used for keeping 
--- DomesticAnimals, Fodder or harvested crops.
-fun Barn : Class ;
-fun Barn_Class : SubClass Barn Building ;
-
-fun BaseballBase : Class ;
-
--- A BuildingLevel which satisfies two conditions, viz. it is 
--- lower than all of the other BuildingLevels in the same Building and it is below 
--- ground level.
-fun Basement : Class ;
-fun Basement_Class : SubClass Basement BuildingLevel ;
-
--- Washing the entire body of a Human or Animal.
-fun Bathing : Class ;
-fun Bathing_Class : SubClass Bathing Washing ;
-
--- A WashingDevice which is intended to be used by 
--- Humans for washing their bodies. Note that this class covers bathtubs, showers, 
--- etc.
-fun BathingDevice : Class ;
-fun BathingDevice_Class : SubClass BathingDevice WashingDevice ;
-
--- A Room that contains a WashBasin and 
--- possibly a Toilet.
-fun Bathroom : Class ;
-fun Bathroom_Room : SubClassC Bathroom Room (\R -> exists Toilet (\T -> located(var Toilet Physical ? T)(var Room Object ? R)));
-
-
--- A thin stick which is used for OrchestralConducting.
-fun Baton : Class ;
-fun Baton_Class : SubClass Baton Device ;
-
--- Battery is a subclass of Device. Batteries are 
--- devices that use chemical means to store or produce electrical power.
-fun Battery : Class ;
-fun Battery_Class : SubClass Battery (both ElectricDevice PowerSource) ;
-
-
--- The process of transitioning from a state of 
--- being Sober to a state of being Drunk.
-fun BecomingDrunk : Class ;
-fun BecomingDrunk_Class : SubClass BecomingDrunk PsychologicalProcess ;
-
--- A piece of Furniture which is primarily for sleeping.
-fun Bed : Class ;
-fun Bed_Class : SubClass Bed Furniture ;
-
--- A Room intended primarily for sleeping.
-fun Bedroom : Class ;
-fun Bedroom_Class : SubClass Bedroom Room ;
-
--- A hairy Insect, some species of which produce honey 
--- and/or sting.
-fun Bee : Class ;
-fun Bee_Class : SubClass Bee Insect ;
-
--- Meat that was originally part of a Cow.
-fun Beef : Class ;
-fun Beef_Class : SubClass Beef Meat ;
-
--- An AlcoholicBeverage that is prepared by fermenting 
--- malt and hops.
-fun Beer : Class ;
-fun Beer_Class : SubClass Beer AlcoholicBeverage ;
-
--- The TimeInterval that runs from 
--- NegativeInfinity to the time of the birth of Christ.
-fun BeforeCommonEra : Ind TimeInterval ;
-
-
--- The process of an Organization 
--- commencing operations. In the case of a Corporation, this would be 
--- the process of going into business.
-fun BeginningOperations : Class ;
-fun BeginningOperations_Class : SubClass BeginningOperations OrganizationalProcess ;
-
--- A PercussionInstrument that produces a single tone 
--- when it is struck.
-fun Bell : Class ;
-fun Bell_Class : SubClass Bell PercussionInstrument ;
-
--- A piece of Clothing that is worn around the waist 
--- to restrain another piece of clothing.
-fun Belt : Class ;
-fun Belt_Class : SubClass Belt Clothing ;
-
--- Any UnilateralGiving where the agent 
--- wills some part of his/her property to someone else upon his/her death.
-fun Bequeathing : Class ;
-fun Bequeathing_Class : SubClass Bequeathing UnilateralGiving ;
-
--- A HistoricalAccount which is concerned 
--- with the life of a single Human.
-fun Biography : Class ;
-fun Biography_Class : SubClass Biography HistoricalAccount ;
-
--- The production of a zygote from the fusion 
--- of a male and female gamete.
-fun BiologicalConception : Class ;
-fun BiologicalConception_Class : SubClass BiologicalConception OrganOrTissueProcess ;
-
--- The Class of all biological species, i.e. 
--- the class of all classes of Organism whose instances can interbreed.
-fun BiologicalSpecies : Class ;
-
-
--- The study of the classification, development, and 
--- functioning of Organisms.
-fun Biology : Ind Science ;
-
-
--- Any DiagnosticProcess which involves the examination of 
--- BodySubstances taken from a living Organism.
-fun Biopsy : Class ;
-fun Biopsy_Class : SubClass Biopsy (both DiagnosticProcess Removing) ;
-
-
--- Any Egg that is produced by a Bird.
-fun BirdEgg : Class ;
-fun BirdEgg_Class : SubClass BirdEgg Egg ;
-
--- Any instance of Grabbing where the instrument is 
--- the Mouth of the agent.
-fun Biting : Class ;
-fun Biting_Class : SubClass Biting Grabbing ;
-
--- A piece of Fabric whose purpose is to keep a 
--- person who is in bed warm.
-fun Blanket : Class ;
-fun Blanket_Class : SubClass Blanket Fabric ;
-
--- The release of Blood from an Animal in response 
--- to an Injuring of some sort.
-fun Bleeding : Class ;
-fun Bleeding_Class : SubClass Bleeding AutonomicProcess ;
-
--- The Attribute that applies to Animals and Humans 
--- that are unable to see.
-fun Blind : Ind BiologicalAttribute ;
-
-
--- Any Process where the stomach or instestines of a 
--- Human or Animal become distended from excessive gas.
-fun Bloating : Class ;
-fun Bloating_Class : SubClass Bloating (both Increasing PathologicProcess) ;
-
-
--- Any Maneuver in a Contest where one 
--- contestParticipant attempts to deny access to something that is wanted 
--- by another contestParticipant.
-fun Blockade : Class ;
-fun Blockade_Class : SubClass Blockade Maneuver ;
-
--- A Cell that is normally present in Blood.
-fun BloodCell : Class ;
-fun BloodCell_Class : SubClass BloodCell (both AnimalAnatomicalStructure Cell) ;
-
-
--- The subclass of Blood that contains AntigenA 
--- and does not contain AntigenB.
-fun BloodTypeA : Class ;
-fun BloodTypeA_Class : SubClass BloodTypeA Blood ;
-
--- The subclass of Blood that contains both 
--- AntigenA and AntigenB.
-fun BloodTypeAB : Class ;
-fun BloodTypeAB_Class : SubClass BloodTypeAB Blood ;
-
--- The subclass of Blood that contains AntigenB 
--- and does not contain AntigenA.
-fun BloodTypeB : Class ;
-fun BloodTypeB_Class : SubClass BloodTypeB Blood ;
-
--- The subclass of Blood that contains neither 
--- AntigenA nor AntigenB.
-fun BloodTypeO : Class ;
-fun BloodTypeO_Class : SubClass BloodTypeO Blood ;
-
--- Any BodyVessel which is used to circulate 
--- Blood from one part of the body to another.
-fun BloodVessel : Class ;
-fun BloodVessel_Class : SubClass BloodVessel (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- An Icon which is a scale model of an Artifact, 
--- whether the Artifact actually exists or not.
-fun Blueprint : Class ;
-fun Blueprint_Class : SubClass Blueprint Icon ;
-
--- The process of turning red in response to a 
--- stimulus which has a deep emotional effect.
-fun Blushing : Class ;
-fun Blushing_Class : SubClass Blushing AutonomicProcess ;
-
--- A piece of material with flat, rectangular sides. 
--- Note that boards and blocks are lumped into a single concept, because the 
--- difference between these notions cannot be precisely defined.
-fun BoardOrBlock : Class ;
-fun BoardOrBlock_Class : SubClass BoardOrBlock Artifact ;
-
--- Getting on a Vehicle, e.g. getting into an 
--- Automobile, boarding an Aircraft, etc.
-fun Boarding : Class ;
-fun Boarding_Class : SubClass Boarding Translocation ;
-
--- One of the levels of a WaterVehicle, e.g. the 
--- upper deck and lower deck of small boats with a cabin.
-fun BoatDeck : Class ;
-fun BoatDeck_Class : SubClass BoatDeck Artifact ;
-
--- BodyJunctions where different parts of the same 
--- Skeleton come together.
-fun BodyJoint : Class ;
-fun BodyJoint_Class : SubClass BodyJoint BodyJunction ;
-
--- A BodyOfWater is a connected body of 
--- water with established boundaries marked by either geographical features 
--- or conventional borders.
-fun BodyOfWater : Class ;
-fun BodyOfWater_Class : SubClass BodyOfWater SelfConnectedObject ;
-
--- A weapon that explodes in order to cause damage.
-fun Bomb : Class ;
-fun Bomb_Class : SubClass Bomb (both ExplosiveDevice Weapon) ;
-
-
--- Any MilitaryAircraft whose purpose is to deliver 
--- ExplosiveDevices.
-fun Bomber : Class ;
-fun Bomber_Class : SubClass Bomber MilitaryAircraft ;
-
--- An act of Destruction where the thing destroyed
--- is destroyed by means of an explosive device.
-fun Bombing : Class ;
-fun Bombing_Class : SubClass Bombing Destruction ;
-
--- BotanicalTree is an imprecise term 
--- for a perennial woody plant that is larger than a bush or shrub, 
--- generally understood to describe a large growth having one main trunk 
--- with few or no branches projecting from its base, a well_developed crown 
--- of foliage, and a height at maturity of at least 12 feet.
-fun BotanicalTree : Class ;
-fun BotanicalTree_Class : SubClass BotanicalTree FloweringPlant ;
-
--- A Container whose top is narrower than its bottom, which 
--- has no handle, and which is intended to store Liquids.
-fun Bottle : Class ;
-fun Bottle_Class : SubClass Bottle FluidContainer ;
-
--- Any downward motion of the body that indicates respect 
--- for or submission to another Agent.
-fun Bowing : Class ;
-fun Bowing_Class : SubClass Bowing (both Gesture (both Inclining MotionDownward)) ;
-
-
--- Any six_sided Container whose sides are 
--- rectangular in shape.
-fun Box : Class ;
-fun Box_Class : SubClass Box Container ;
-
--- A HumanChild who is Male.
-fun Boy : Class ;
-fun Boy_Class : SubClass Boy (both HumanChild Man) ;
-
-
--- The seat of the central nervous system.
-fun Brain : Class ;
-fun Brain_Class : SubClass Brain (both AnimalAnatomicalStructure Organ) ;
-
-
--- A DistilledAlcoholicBeverage that is prepared by 
--- distilling Wine.
-fun Brandy : Class ;
-fun Brandy_Class : SubClass Brandy DistilledAlcoholicBeverage ;
-
--- A MetallicAlloy made from Copper and Zinc.
-fun Brass : Class ;
-fun Brass_Class : SubClass Brass MetallicAlloy ;
-
--- Food that consists largely of grain flour 
--- and water. Note that this class covers crackers, cookies, as well as any 
--- self_connected instance of bread, whether it is a loaf, a slice, a chunk 
--- of bread, etc.
-fun BreadOrBiscuit : Class ;
-fun BreadOrBiscuit_Class : SubClass BreadOrBiscuit PreparedFood ;
-
--- A subclass of Attributes for 
--- characterizing the breakability of CorpuscularObjects.
-fun BreakabilityAttribute : Class ;
-fun BreakabilityAttribute_Class : SubClass BreakabilityAttribute InternalAttribute ;
-
--- The paired Organs which are part of the chests 
--- of Primates.
-fun Breast : Class ;
-fun Breast_Class : SubClass Breast (both AnimalAnatomicalStructure Organ) ;
-
-
--- A block of fired Clay that is used in Constructing.
-fun Brick : Class ;
-fun Brick_Class : SubClass Brick BoardOrBlock ;
-
--- A MilitaryGeneral that ranks below 
--- a MajorGeneral.
-fun BrigadierGeneral : Class ;
-fun BrigadierGeneral_Class : SubClass BrigadierGeneral MilitaryGeneral ;
-
--- BroadcastNetwork is the subclass of 
--- CommunicationSystems consisting of BroadcastingStations that are linked 
--- electronically and managed or owned by one organization.
-fun BroadcastNetwork : Class ;
-fun BroadcastNetwork_Class : SubClass BroadcastNetwork CommunicationSystem ;
-
--- A Series of episodes that are broadcast 
--- on television or radio.
-fun BroadcastProgram : Class ;
-fun BroadcastProgram_Class : SubClass BroadcastProgram Series ;
-
--- Disseminating information by using a 
--- CommunicationDevice that radiates RadioEmissions.
-fun Broadcasting : Class ;
-fun Broadcasting_Class : SubClass Broadcasting (both Disseminating RadioEmission) ;
-
-
--- Any BodyVessel which is located in a 
--- Lung and which carries oxygen from the trachea to the alveoli.
-fun BronchialDuct : Class ;
-fun BronchialDuct_Class : SubClass BronchialDuct (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- A GroupOfAnimals that are all born at the same time 
--- and to the same parents.
-fun Brood : Class ;
-fun Brood_Class : SubClass Brood GroupOfAnimals ;
-
--- A BrushOrComb whose purpose is to remove dirt and other 
--- small particles from floors.
-fun Broom : Class ;
-fun Broom_Class : SubClass Broom BrushOrComb ;
-
--- A SecondaryColor that resembles the color of wood or 
--- of soil.
-fun Brown : Ind SecondaryColor ;
-
-
--- A Device which consists of a handle and bristles and 
--- whose purpose is to remove particles from something or to smooth something out.
-fun BrushOrComb : Class ;
-fun BrushOrComb_Class : SubClass BrushOrComb Device ;
-
--- A globe which has a Liquid surface and which contains 
--- a Gas.
-fun Bubble : Class ;
-fun Bubble_Class : SubClass Bubble CorpuscularObject ;
-
--- A HoofedMammal with long hair whose habitat is the 
--- plains of NorthAmerica.
-fun Buffalo : Class ;
-fun Buffalo_Class : SubClass Buffalo HoofedMammal ;
-
--- A HornInstrument that has no valves.
-fun Bugle : Class ;
-fun Bugle_Class : SubClass Bugle HornInstrument ;
-
--- The story or level of a building, e.g. the Basement, 
--- the Attic, the ground level, the fourteenth floor, etc.
-fun BuildingLevel : Class ;
-fun BuildingLevel_Class : SubClass BuildingLevel StationaryArtifact ;
-
--- A Cow that is Male.
-fun Bull : Class ;
-fun Bull_Cow : SubClassC Bull Cow (\B -> attribute(var Cow Object ? B)(el SexAttribute Attribute ? Male));
-
-
--- A Projectile that is designed to be fired by a Gun.
-fun Bullet : Class ;
-fun Bullet_Class : SubClass Bullet Projectile ;
-
--- A large Bee which lacks a stinger.
-fun BumbleBee : Class ;
-fun BumbleBee_Class : SubClass BumbleBee Bee ;
-
--- A small Cave created by an Animal for the purpose 
--- of inhabiting it.
-fun Burrow : Class ;
-fun Burrow_Class : SubClass Burrow Cave ;
-
--- Putting something in the ground and then covering 
--- it with Soil.
-fun Burying : Class ;
-fun Burying_Class : SubClass Burying (both Digging Putting) ;
-
-
--- Bus is the subclass of SelfPoweredRoadVehicles 
--- that can transport large numbers of passengers (i.e., dozens) at one 
--- time. It can be distinguished from a van which is
--- designed to carry less than a dozen people.
-fun Bus : Class ;
-fun Bus_Class : SubClass Bus SelfPoweredRoadVehicle ;
-
--- An area, often, though not necessarily with
--- seats or some kind of minimal shelter, where people gather to meet and
--- board a bus. It must border a road.
-fun BusStop : Class ;
-fun BusStop_Class : SubClass BusStop GeographicArea ;
-
--- Any Contest where the contestParticipants 
--- are Corporations and the aim is to win as many customers as possible.
-fun BusinessCompetition : Class ;
-fun BusinessCompetition_Class : SubClass BusinessCompetition Contest ;
-
--- Any of a class of people in a professional 
--- occupation such as banking, finance, management, or engineering. This is 
--- distinguished from blue collar jobs that primarily involve manual labor 
--- rather than thought as the effort expended to derive remuneration. It is 
--- also distinguished from professions that may be outwardly similar but are 
--- done in a non_profit organization.
-fun BusinessPerson : Ind OccupationalRole ;
-
-
--- An emulsion of fat which is produced by churning Milk.
-fun Butter : Class ;
-fun Butter_Class : SubClass Butter (both DairyProduct PreparedFood) ;
-
-
--- An AttachingDevice that is used on Clothing.
-fun Button : Class ;
-fun Button_Class : SubClass Button AttachingDevice ;
-
--- Any Restaurant which does not offer table service. 
--- Food is selected and purchased at a central counter.
-fun Cafeteria : Class ;
-fun Cafeteria_Class : SubClass Cafeteria Restaurant ;
-
--- A young Cow, i.e. a Cow that is NonFullyFormed.
-fun Calf : Class ;
-fun Calf_Cow : SubClassC Calf Cow (\C -> attribute(var Cow Object ? C)(el DevelopmentalAttribute Attribute ? NonFullyFormed));
-
-
--- A Device which is capable of Photographing.
-fun Camera : Class ;
-fun Camera_Class : SubClass Camera Device ;
-
--- A MobileResidence consisting of tents and other temporary 
--- living quarters that is constructed on an undeveloped LandArea.
-fun Camp : Class ;
-fun Camp_Class : SubClass Camp MobileResidence ;
-
--- A LandArea whose purpose is to have MobileResidences 
--- (e.g. recreational vehicles, mobile homes, Tents, etc.) located there.
-fun Campground : Class ;
-fun Campground_Class : SubClass Campground LandArea ;
-
--- A DiseaseOrSyndrome characterized by pathologic and 
--- uncontrolled cell division that results in a Tumor.
-fun Cancer : Ind DiseaseOrSyndrome ;
-
-
--- An LightFixture that consists of Wax and a wick, 
--- which is lit with a flame.
-fun Candle : Class ;
-fun Candle_Class : SubClass Candle LightFixture ;
-
--- A very small BloodVessel that connects arterioles 
--- (very small Arteries) with venules (very small Veins).
-fun Capillary : Class ;
-fun Capillary_Class : SubClass Capillary BloodVessel ;
-
--- A commissioned MilitaryOfficer who ranks 
--- above a Lieutenant but below a MajorOfficer.
-fun CaptainOfficer : Class ;
-fun CaptainOfficer_Class : SubClass CaptainOfficer MilitaryOfficer ;
-
--- A Capturing is a ChangeOfControl event in which an Agent
--- gains physical control over another Agent.
-fun Capturing : Class ;
-fun Capturing_Class : SubClass Capturing ChangeOfControl ;
-
--- A car bombing is an attack in which a car is
--- used as the delivery mechanism for a bomb. The car is usually destroyed
--- in the blast if the bomb detonates successfully.
-fun CarBombing : Class ;
-fun CarBombing_Class : SubClass CarBombing Bombing ;
-
--- Any Organization whose purpose is to 
--- provide medical care for for Humans who reside there, either permanently 
--- or temporarily.
-fun CareOrganization : Class ;
-fun CareOrganization_Class : SubClass CareOrganization Organization ;
-
--- A Vehicle that is designed to
--- carry Objects. Note that Vehicles that are primarily designed to carry
--- people rather than cargo may still carry cargo. For example, a passenger sedan
--- might be capable of carrying lumber strapped to the roof. For this
--- reason, PassengerVehicle and CargoVehicle are not disjoint.
-fun CargoVehicle : Class ;
-fun CargoVehicle_Class : SubClass CargoVehicle Vehicle ;
-
--- Any occupation that involves creating and repairing 
--- structural and decorative portions of Buildings that are made chiefly of Wood.
--- This does not include plumbing, roofing, electrical, foundation and site work.
-fun Carpenter : Ind OccupationalTrade ;
-
-
--- Making Buildings out of Wood.
-fun Carpentry : Class ;
-fun Carpentry_Class : SubClass Carpentry Making ;
-
--- Any Maneuver in a Game which results in a 
--- situation where the agent grasps the Ball.
-fun Catching : Class ;
-fun Catching_Class : SubClass Catching (both Maneuver Touching) ;
-
-
--- Any Process whose result is that the 
--- patient of the process is happy.
-fun CausingHappiness : Class ;
-fun CausingHappiness_Class : SubClass CausingHappiness Process ;
-
--- Any Process whose result is that the 
--- patient of the process is in Pain.
-fun CausingPain : Class ;
-fun CausingPain_Class : SubClass CausingPain CausingUnhappiness ;
-
--- Any Process whose result is that the 
--- patient of the process is unhappy.
-fun CausingUnhappiness : Class ;
-fun CausingUnhappiness_Class : SubClass CausingUnhappiness Process ;
-
--- MilitaryUnits composed primarily of Soldiers 
--- who are mounted, i.e. who perform their combat missions from a Horse or 
--- Vehicle.
-fun CavalryUnit : Class ;
-fun CavalryUnit_Class : SubClass CavalryUnit MilitaryUnit ;
-
--- A Cave is a naturally formed opening beneath 
--- the surface of the Earth, generally formed by dissolution of carbonate 
--- bedrock. Caves may also form by erosion of coastal bedrock, partial 
--- melting of glaciers, or solidification of lava into hollow tubes.
-fun Cave : Class ;
-
-
--- The process of an Organization 
--- ceasing operations, i.e. its folding or going out of business in 
--- some other fashion.
-fun CeasingOperations : Class ;
-fun CeasingOperations_Class : SubClass CeasingOperations OrganizationalProcess ;
-
--- A StationaryArtifact that is the top surface 
--- of a Room.
-fun Ceiling : Class ;
-fun Ceiling_Class : SubClass Ceiling StationaryArtifact ;
-
--- Anyone who is known by a large number of people,
--- either explicitly by name, or by action.
-fun Celebrity : Class ;
-
-
--- The part of the Cell that contains DNA and 
--- RNA.
-fun CellNucleus : Class ;
-fun CellNucleus_Class : SubClass CellNucleus OrganicObject ;
-
--- The main component of Plant Tissue.
-fun Cellulose : Class ;
-fun Cellulose_Class : SubClass Cellulose (both Carbohydrate PlantSubstance) ;
-
-
--- A LandArea which is used for burying the dead.
-fun Cemetery : Class ;
-fun Cemetery_Class : SubClass Cemetery LandArea ;
-
--- Any instance of Rotating where there is 
--- Motion away from the center of the Rotating.
-fun CentrifugalMotion : Class ;
-fun CentrifugalMotion_Class : SubClass CentrifugalMotion Rotating ;
-
--- Any instance of Rotating where there is 
--- Motion towards the center of the Rotating.
-fun CentripetalMotion : Class ;
-fun CentripetalMotion_Class : SubClass CentripetalMotion Rotating ;
-
--- The TimeDuration of 100 years.
-fun CenturyDuration : Ind UnitOfDuration ;
-
-
--- Any Seed which is produced by the cereal grasses, 
--- e.g. rice, corn, wheat, etc.
-fun CerealGrain : Class ;
-fun CerealGrain_Class : SubClass CerealGrain (both Food Seed) ;
-
-
--- A Seat that is designed to accommodate a single 
--- Human.
-fun Chair : Class ;
-fun Chair_Class : SubClass Chair Seat ;
-
--- A ChangeOfControl is an event in which an agent gains
--- physical control over some object that was previously controlled
--- by a different agent.
-fun ChangeOfControl : Class ;
-fun ChangeOfControl_Class : SubClass ChangeOfControl AchievingControl ;
-
--- Any instance of a process of 
--- RemovingClothing and Dressing.
-fun ChangingClothing : Class ;
-fun ChangingClothing_Class : SubClass ChangingClothing Transfer ;
-
--- A numbered and/or titled
--- section of a Book, which is typically indicated in a table of
--- contents for the Book.
-fun Chapter : Class ;
-fun Chapter_Class : SubClass Chapter Article ;
-
--- An activity of a fee being charged
-fun ChargingAFee : Class ;
-fun ChargingAFee_Class : SubClass ChargingAFee FinancialTransaction ;
-
--- An Icon which depicts one or more quantities.
-fun Chart : Class ;
-fun Chart_Class : SubClass Chart Icon ;
-
--- An area on or very near a border, usually along 
--- a road connecting two regions, where MilitaryPersons or Police 
--- restrict the flow of traffic in order to extract tarrifs, deny movement to 
--- certain kinds of people or goods, or other enforement actions. Because of 
--- the power relationship involved, such areas are often the site of illegal 
--- activities conducted by the officials in order to extract favors or 
--- bribes.
-fun Checkpoint : Class ;
-fun Checkpoint_Class : SubClass Checkpoint GeographicArea ;
-
--- A bitter CompoundSubstance that is capable of 
--- reacting with a ChemicalBase and forming a ChemicalSalt.
-fun ChemicalAcid : Class ;
-fun ChemicalAcid_Class : SubClass ChemicalAcid CompoundSubstance ;
-
--- An attack against people or property in which
--- a chemical agent is used as the active ingredient of the attack.
-fun ChemicalAttack : Class ;
-fun ChemicalAttack_Class : SubClass ChemicalAttack ViolentContest ;
-
--- A CompoundSubstance that is capable of 
--- reacting with a ChemicalAcid and forming a ChemicalSalt.
-fun ChemicalBase : Class ;
-fun ChemicalBase_Class : SubClass ChemicalBase CompoundSubstance ;
-
--- The Attribute of being in a chemically 
--- stable state, i.e. the relative proportions of resources and results will 
--- not longer change.
-fun ChemicalEquilibrium : Ind InternalAttribute ;
-
-
--- Any ChemicalProcess where Electrons 
--- are added to the substance undergoing the ChemicalProcess.
-fun ChemicalReduction : Class ;
-fun ChemicalReduction_Class : SubClass ChemicalReduction ChemicalSynthesis ;
-
--- A bitter CompoundSubstance that is formed in a 
--- chemical reaction of a ChemicalBase with a ChemicalAcid.
-fun ChemicalSalt : Class ;
-fun ChemicalSalt_Class : SubClass ChemicalSalt CompoundSubstance ;
-
--- The study of the compositions, properties, and 
--- reactions of Substances.
-fun Chemistry : Ind Science ;
-
-
--- Any piece of Furniture which is also a 
--- Container, e.g. a chest of drawers, a memory chest, an armoire, etc.
-fun ChestOrCabinet : Class ;
-fun ChestOrCabinet_Class : SubClass ChestOrCabinet (both Container Furniture) ;
-
-
--- Breaking up or mashing Food with one's teeth.
-fun Chewing : Class ;
-fun Chewing_Class : SubClass Chewing BodyMotion ;
-
--- A subclass of Bird that is raised for its meat 
--- and for its eggs.
-fun Chicken : Class ;
-fun Chicken_Class : SubClass Chicken Poultry ;
-
--- Meat that was originally part of a Chicken.
-fun ChickenMeat : Class ;
-fun ChickenMeat_Class : SubClass ChickenMeat Meat ;
-
--- A thin passageway through which Smoke from a controlled 
--- fire is conducted Outside of a Building or Room.
-fun Chimney : Class ;
-fun Chimney_Class : SubClass Chimney (both Device StationaryArtifact) ;
-
-
--- A part of the Face which protrudes slightly and which 
--- is lower than all other parts of the Face.
-fun Chin : Class ;
-fun Chin_Class : SubClass Chin (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A Steroid that is produced by the Liver and that 
--- is believed to be closely associated with various cardiological disorders.
-fun Cholesterol : Class ;
-fun Cholesterol_Class : SubClass Cholesterol (both AnimalSubstance Steroid) ;
-
-
--- Planning that results in a sequence of dance 
--- steps that are executed as part of a Performance.
-fun Choreographing : Class ;
-fun Choreographing_Class : SubClass Choreographing Planning ;
-
--- Any instance of the collection of writings which 
--- is regarded as scripture by those who embrace Christianity.
-fun ChristianBible : Class ;
-fun ChristianBible_Class : SubClass ChristianBible Book ;
-
--- Four books in the New Testament of the 
--- ChristianBible that describe the life and teachings of Jesus Christ 
--- and that are referred to, respectively, as Matthew, Mark, Luke, and John.
-fun ChristianGospel : Class ;
-fun ChristianGospel_Class : SubClass ChristianGospel Text ;
-
--- Any ReligiousService that is conducted by 
--- members of Christianity.
-fun ChristianService : Class ;
-fun ChristianService_Class : SubClass ChristianService ReligiousService ;
-
--- Processes of Separating a LiquidMixture or 
--- a GasMixture into some or all of the PureSubstances that comprise it.
-fun Chromatography : Class ;
-fun Chromatography_Class : SubClass Chromatography Separating ;
-
--- A tube of thin paper containing finely ground 
--- tobacco that is smoked.
-fun CigarOrCigarette : Class ;
-fun CigarOrCigarette_Class : SubClass CigarOrCigarette SmokingDevice ;
-
--- A slice of a Circle, i.e. any 
--- ClosedTwoDimensionalFigure which consists of two Radii and the arc of 
--- the Circle that they bound.
-fun CircleSector : Class ;
-fun CircleSector_Class : SubClass CircleSector ClosedTwoDimensionalFigure ;
-
--- Removing the foreskin of the penis. This is
--- usually performed on infants, but is occasionally performed on adolescents
--- and adults, either for medical reasons, or after religious conversion. It is
--- often conducted as a religious rite, since it is prescribed by both the
--- Jewish and Muslim religions, although it is prevalent also as a social
--- norm in the UnitedStates and other Nations.
-fun Circumision : Class ;
-fun Circumision_Class : SubClass Circumision (both Removing Surgery) ;
-
-
--- (CitizenryFn ?AREA) denotes the 
--- GroupOfPeople who are legal and permanent residents of the 
--- GeopoliticalArea ?AREA.
-fun CitizenryFn : El GeopoliticalArea -> Ind GroupOfPeople ;
-
-
--- A square_shaped area surrounded by Roadways 
--- which is part of a City and typically contains Buildings.
-fun CityBlock : Class ;
-fun CityBlock_Class : SubClass CityBlock LandArea ;
-
--- Any geopoliticalSubdivision of a City.
-fun CityDistrict : Class ;
-fun CityDistrict_Class : SubClass CityDistrict GeopoliticalArea ;
-
--- CityGovernment is the class of 
--- governments of Cities.
-fun CityGovernment : Class ;
-fun CityGovernment_Class : SubClass CityGovernment Government ;
-
--- A War in which the fighting GeopoliticalAreas 
--- are both part of the same Nation.
-fun CivilWar : Class ;
-fun CivilWar_Class : SubClass CivilWar War ;
-
--- Someone who is not a member of an active
--- MilitaryOrganization.
-fun Civilian : Class ;
-fun Civilian_Class : SubClass Civilian SocialRole ;
-
--- An AttachingDevice which is designed to attach 
--- two things together by means of a movable part which can be tightened 
--- or loosened.
-fun Clamp : Class ;
-fun Clamp_Class : SubClass Clamp AttachingDevice ;
-
--- Bringing the Hands together repeatedly to make 
--- a loud noise.
-fun Clapping : Class ;
-fun Clapping_Class : SubClass Clapping (both HandGesture (both Impacting RadiatingSound)) ;
-
-
--- A ClassificationScheme is
--- a conceptual structure, an abstract arrangement of concepts and
--- the relations that link them.
-fun ClassificationScheme : Class ;
-fun ClassificationScheme_Class : SubClass ClassificationScheme Proposition ;
-
--- Any Room in a School where education 
--- takes place.
-fun Classroom : Class ;
-fun Classroom_Class : SubClass Classroom Room ;
-
--- The Profession of being in charge of or ministering 
--- to a ReligousOrganization.
-fun Cleric : Class ;
-fun Cleric_Class : SubClass Cleric ReligiousPosition ;
-
--- The class of Positions where the position 
--- holder is responsible for clerical duties, e.g. typing documents, answering 
--- phones, keeping schedules, etc.
-fun ClericalSecretary : Ind SkilledOccupation ;
-
-
--- A piece of Clothing that covers the whole body 
--- except the face (and possibly entire head), hands, and feet.
-fun Cloak : Class ;
-fun Cloak_Class : SubClass Cloak Clothing ;
-
--- Any Device that measures and represents TimeDuration 
--- or TimePosition.
-fun Clock : Class ;
-fun Clock_Class : SubClass Clock MeasuringDevice ;
-
--- A relatively small Room used for storage.
-fun Closet : Class ;
-fun Closet_Class : SubClass Closet Room ;
-
--- The Class of Processes where an aperture is 
--- closed in an Object.
-fun Closing : Class ;
-fun Closing_Class : SubClass Closing Motion ;
-
--- Completing a Contract of some sort, 
--- e.g. the purchase of a house, closing a business deal, etc.
-fun ClosingContract : Class ;
-fun ClosingContract_Class : SubClass ClosingContract Committing ;
-
--- The EyeMotion of tensing the eye lids so that 
--- the corneas are not exposed to light.
-fun ClosingEyes : Class ;
-fun ClosingEyes_Class : SubClass ClosingEyes (both Closing EyeMotion) ;
-
-
--- A Collection of instances of Clothing that 
--- are designed to be worn together.
-fun ClothingSuit : Class ;
-fun ClothingSuit_Class : SubClass ClothingSuit Collection ;
-
--- Any occupation that involves training an athlete or a 
--- sports team.
-fun Coach : Ind SkilledOccupation ;
-
-
--- CoastGuard is the subclass of GovernmentOrganizations 
--- that enforce the maritime laws of a Nation and guard its Seacoast. This may be 
--- a military or quasi_military organization.
-fun CoastGuard : Class ;
-fun CoastGuard_Class : SubClass CoastGuard GovernmentOrganization ;
-
--- Clothing that has sleeves and covers from the neck 
--- down. Coats are intended to be worn outdoors.
-fun Coat : Class ;
-fun Coat_Class : SubClass Coat OutdoorClothing ;
-
--- A FruitOrVegetable that is produced by a type of palm 
--- and has an edible white meat.
-fun Coconut : Class ;
-fun Coconut_Class : SubClass Coconut (both Food FruitOrVegetable) ;
-
-
--- A Beverage which is prepared by infusing ground, 
--- roasted coffee beans into hot water.
-fun Coffee : Class ;
-fun Coffee_Class : SubClass Coffee (both Beverage PreparedFood) ;
-
-
--- A Container for a HumanCorpse.
-fun Coffin : Class ;
-fun Coffin_Class : SubClass Coffin Container ;
-
--- Any abstract ArtWork that is produced by arranging 
--- bits of paper or photographs.
-fun Collage : Class ;
-fun Collage_Class : SubClass Collage ArtWork ;
-
--- A piece of Clothing that fits around the Neck. 
--- A Collar is always part of a Coat or a Shirt.
-fun Collar : Class ;
-fun Collar_Class : SubClass Collar Clothing ;
-
--- A School which admits students who have 
--- graduated from high school and which confers a bachelor's degree, 
--- normally requiring four years of study. Note that a College does 
--- not confer any graduate degrees. For institutions that confer both 
--- bachelor's and graduate degrees, the concept University should be 
--- used.
-fun College : Class ;
-fun College_Class : SubClass College PostSecondarySchool ;
-
--- The Positions of a student at a PostSecondarySchool 
--- who has completed less than one year at the school.
-fun CollegeFreshman : Ind CollegeStudentPosition ;
-
-
--- The Positions of a student at a PostSecondarySchool 
--- who has completed at least two years and less than three years at the school.
-fun CollegeJunior : Ind CollegeStudentPosition ;
-
-
--- The Positions of a student at a PostSecondarySchool 
--- who has completed at least three years and less than four years at the school.
-fun CollegeSenior : Ind CollegeStudentPosition ;
-
-
--- The Positions of a student at a PostSecondarySchool 
--- who has completed at least one year and less than two years at the school.
-fun CollegeSophomore : Ind CollegeStudentPosition ;
-
-
--- Any Position at a PostSecondarySchool 
--- which is occupied exclusively by students.
-fun CollegeStudentPosition : Class ;
-fun CollegeStudentPosition_Class : SubClass CollegeStudentPosition Position ;
-
--- A commissioned MilitaryOfficer who ranks above 
--- a lieutenant colonel and below a brigadier general.
-fun Colonel : Class ;
-fun Colonel_Class : SubClass Colonel MilitaryOfficer ;
-
--- Positions which involve performing stand_up comedy, which 
--- is recorded and/or performed in front of live audiences.
-fun Comedian : Ind EntertainmentProfession ;
-
-
--- A Building which is intended for 
--- organizational activities, e.g. retail or wholesale selling, manufacturing, 
--- office work, etc.
-fun CommercialBuilding : Class ;
-fun CommercialBuilding_Class : SubClass CommercialBuilding (both Building PlaceOfCommerce) ;
-
-
--- CommercialShipping is the subclass of 
--- Transportation events in which a commercial agent provides transportation 
--- of goods for remuneration.
-fun CommercialShipping : Class ;
-fun CommercialShipping_Class : SubClass CommercialShipping (both CommercialService Shipping) ;
-
-
--- A Room or suite of Rooms intended for 
--- clerical and/or professional work of a single Organization.
-fun CommercialUnit : Class ;
-fun CommercialUnit_Class : SubClass CommercialUnit PlaceOfCommerce ;
-
--- A small, temporary Organization whose purpose 
--- is to investigate some issue.
-fun Commission : Class ;
-fun Commission_Class : SubClass Commission Organization ;
-
--- The TimeInterval that runs from the supposed 
--- time of the death of Christ to PositiveInfinity.
-fun CommonEra : Ind TimeInterval ;
-
-
--- A CommunicationDevice is a Device
--- which serves at the instrument in a Communication Process by allowing
--- the communicated message to be conveyed between the participants.
-fun CommunicationDevice : Class ;
-
-
--- CommunicationOrganization is 
--- the subclass of Organizations that manage Communications over physical 
--- infrastructure owned or leased by the organization. Such organizations 
--- may also produce and disseminate information, entertainment, or other 
--- content. Also see MediaOrganization.
-fun CommunicationOrganization : Class ;
-fun CommunicationOrganization_Class : SubClass CommunicationOrganization Organization ;
-
--- CommunicationSystem is a complex 
--- system with various components, enabling communication (in some 
--- medium) between points in a specific area, whether local or worldwide.
-fun CommunicationSystem : Class ;
-fun CommunicationSystem_Class : SubClass CommunicationSystem Collection ;
-
--- Any PoliticalParty that advocates for a 
--- CommunistState.
-fun CommunistParty : Class ;
-fun CommunistParty_Class : SubClass CommunistParty PoliticalParty ;
-
--- A Container which is part of another Container, 
--- e.g. a drawer, a zippered pouch in a piece of luggage, a compartment in a TV 
--- dinner, etc.
-fun Compartment : Class ;
-fun Compartment_Class : SubClass Compartment Container ;
-
--- A Device that indicates the direction of the
--- various DirectionalAttributes with respect to the device.
-fun Compass : Class ;
-fun Compass_Class : SubClass Compass (both ContentBearingObject Device) ;
-
-
--- ContentDevelopment which results in a 
--- MusicalComposition.
-fun Composing : Class ;
-fun Composing_Class : SubClass Composing ContentDevelopment ;
-
--- ContentDevelopment which results in a 
--- MusicalComposition.
-fun ComposingMusic : Class ;
-fun ComposingMusic_Class : SubClass ComposingMusic ContentDevelopment ;
-
--- Locating something in such a way that it cannot 
--- be seen.
-fun Concealing : Class ;
-fun Concealing_Class : SubClass Concealing Putting ;
-
--- A ResidentialBuilding containing 
--- CondominiumUnits.
-fun CondominiumBuilding : Class ;
-fun CondominiumBuilding_Class : SubClass CondominiumBuilding ResidentialBuilding ;
-
--- A SingleFamilyResidence that may be owned 
--- by a member of the SocialUnit that lives there.
-fun CondominiumUnit : Class ;
-fun CondominiumUnit_SingleFamilyResidence : SubClassC CondominiumUnit SingleFamilyResidence (\UNIT -> exists Human (\PERSON -> and ( home (var Human Human ? PERSON)(var SingleFamilyResidence PermanentResidence ? UNIT))( possesses(var Human Agent ? PERSON)(var SingleFamilyResidence Object ? UNIT))));
-
-
--- The class of ThreeDimensionalFigures which are 
--- produced by rotating a RightTriangle around its RightAngle.
-fun Cone : Class ;
-fun Cone_Class : SubClass Cone ThreeDimensionalFigure ;
-
--- Any Soldier that served on the confederate side 
--- during the American Civil War. ConfederateSoldier Any Soldier that served on the
--- confederate side during the American Civil War.
-fun ConfederateSoldier : Class ;
-fun ConfederateSoldier_Class : SubClass ConfederateSoldier Soldier ;
-
--- The eleven states of the UnitedStates 
--- that tried to secede from the UnitedStates.
-fun ConfederateStatesOfAmerica : Ind GeopoliticalArea ;
-
-
--- Any ExpressingApproval to a person for 
--- something that the person did in the past and that is regarded as being 
--- to the benefit of the person congratulated.
-fun Congratulating : Class ;
-fun Congratulating_Class : SubClass Congratulating ExpressingApproval ;
-
--- A CompoundSubstance that results from 
--- the ChemicalSynthesis of two or more CompoundSubstances.
-fun ConjugatedSubstance : Class ;
-fun ConjugatedSubstance_Class : SubClass ConjugatedSubstance CompoundSubstance ;
-
--- An AlphabeticCharacter that denotes a speech sound 
--- that results in audible friction when it is pronounced.
-fun Consonant : Class ;
-fun Consonant_Class : SubClass Consonant AlphabeticCharacter ;
-
--- A Snake that lacks venom and kills its 
--- prey by crushing it to death.
-fun ConstrictorSnake : Class ;
-fun ConstrictorSnake_Class : SubClass ConstrictorSnake Snake ;
-
--- Any Holder whose purpose is to contain 
--- something else. Note that Container is more specific in meaning 
--- than Holder, because a Container must have a Hole that is at 
--- least partially filled by the thing contained.
-fun Container : Class ;
-fun Container_Class : SubClass Container Holder ;
-
--- ContainerEmpty is the Attribute of a 
--- Container that is empty.
-fun ContainerEmpty : Ind RelationalAttribute ;
-
-
--- ContainerFull is the Attribute of a 
--- Container that is full to capacity.
-fun ContainerFull : Ind RelationalAttribute ;
-
-
--- Devices which permit sexual intercourse but 
--- which reduce the likelihood of conception.
-fun ContraceptiveDevice : Class ;
-fun ContraceptiveDevice_Class : SubClass ContraceptiveDevice Device ;
-
--- A group of vehicles that all are being driven
--- in formation (e.g., lines, rows, columns) to the same destination.
--- That destination may be an intermediate destination on the way to a
--- final destination for some of the vehicles however. This is
--- distinguished from vehicles that have no common purpose, such as
--- traffic on a freeway. This includes cases where some of the agents
--- driving the vehicles intend to reach a point but fail to do so.
-fun Convoy : Class ;
-fun Convoy_Class : SubClass Convoy Collection ;
-
--- A Device whose purpose is Cooling something, 
--- e.g. air conditioners, refrigerators, freezers, etc.
-fun CoolingDevice : Class ;
-fun CoolingDevice_Class : SubClass CoolingDevice Device ;
-
--- Making a copy of something.
-fun Copying : Class ;
-fun Copying_Class : SubClass Copying Making ;
-
--- A GovernmentOfficer who investigates deaths that are 
--- suspected of being due to something other than natural causes.
-fun Coroner : Ind GovernmentOfficer ;
-
-
--- A noncomissioned MilitaryOfficer.
-fun Corporal : Class ;
-fun Corporal_Class : SubClass Corporal MilitaryOfficer ;
-
--- Instances of LinguisticCommunication which 
--- are achieved by means of Texts that are mailed between the persons 
--- communicating with one another.
-fun Corresponding : Class ;
-fun Corresponding_Class : SubClass Corresponding LinguisticCommunication ;
-
--- Fibers from the cotton plant that are used in 
--- Making CottonFabric.
-fun Cotton : Class ;
-fun Cotton_Class : SubClass Cotton PlantAnatomicalStructure ;
-
--- Any Fabric that is made entirely out of Cotton.
-fun CottonFabric : Class ;
-fun CottonFabric_Class : SubClass CottonFabric Fabric ;
-
--- Any Room whose purpose is to realize 
--- JudicialProcesses.
-fun CourtRoom : Class ;
-fun CourtRoom_Class : SubClass CourtRoom Room ;
-
--- A domesticated HoofedMammal that is raised for milk 
--- and beef, and is also used for work.
-fun Cow : Class ;
-fun Cow_Class : SubClass Cow (both DomesticAnimal HoofedMammal) ;
-
-
--- Crane is a subclass of mechanical Devices 
--- that consist of a HoistingDevice on a moveable boom, designed to 
--- assist in moving heavy loads.
-fun Crane : Class ;
-fun Crane_Class : SubClass Crane MaterialHandlingEquipment ;
-
--- Creek is the class of small streams of fresh 
--- water flowing through land, usually into a River.
-fun Creek : Class ;
-fun Creek_Class : SubClass Creek (both BodyOfWater (both FreshWaterArea StreamWaterArea)) ;
-
-
--- Any IntentionalProcess that violates a Law.
-fun CriminalAction : Class ;
-fun CriminalAction_Class : SubClass CriminalAction IntentionalProcess ;
-
--- A GroupOfPeople which exists (partially or 
--- wholly) for the purpose of CriminalAction.
-fun CriminalGang : Class ;
-fun CriminalGang_Class : SubClass CriminalGang GroupOfPeople ;
-
--- A LandArea which is dedicated to 
--- Agriculture, e.g. Lawns, gardens, and fields for growing crops.
-fun CultivatedLandArea : Class ;
-fun CultivatedLandArea_Class : SubClass CultivatedLandArea LandArea ;
-
--- A raised concrete or asphalt structure that connects a 
--- Sidewalk with a Roadway.
-fun Curb : Class ;
-fun Curb_Class : SubClass Curb StationaryArtifact ;
-
--- Any instance of Currency that is made 
--- of paper.
-fun CurrencyBill : Class ;
-fun CurrencyBill_Class : SubClass CurrencyBill Currency ;
-
--- Any instance of Currency that is made 
--- of Metal.
-fun CurrencyCoin : Class ;
-fun CurrencyCoin_Class : SubClass CurrencyCoin Currency ;
-
--- A piece of Fabric whose purpose is Covering a 
--- Window so as to keep out the light or prevent people from seeing inside.
-fun Curtain : Class ;
-fun Curtain_Class : SubClass Curtain (both Fabric WindowCovering) ;
-
-
--- Any Device whose purpose is Cutting something 
--- else. This class covers knives of all times, axes, saws, razors, chisels etc.
-fun CuttingDevice : Class ;
-fun CuttingDevice_Class : SubClass CuttingDevice Device ;
-
--- The class of ThreeDimensionalFigures such that 
--- all GeometricPoints that make up the Cylinder are equidistant from a 
--- OneDimensionalFigure, known as the axis of the Cylinder.
-fun Cylinder : Class ;
-fun Cylinder_Class : SubClass Cylinder ThreeDimensionalFigure ;
-
-fun DairyProduct : Class ;
-fun DairyProduct_Class : SubClass DairyProduct AnimalAgriculturalProduct ;
--- A FruitOrVegetable that is produced by the date 
--- palm.
-fun DateFruit : Class ;
-fun DateFruit_Class : SubClass DateFruit (both Food FruitOrVegetable) ;
-
-
--- A School that does not board its students, i.e. 
--- students attend classes during the day and then return to a private residence 
--- for the night.
-fun DaySchool : Class ;
-fun DaySchool_Class : SubClass DaySchool School ;
-
--- The class of TimeIntervals that begin at Sunrise 
--- and end at Sunset.
-fun DayTime : Class ;
-fun DayTime_Class : SubClass DayTime TimeInterval ;
-
--- Any Position within a ReligiousOrganization that is held 
--- by a layman, which is part_time, and which involves assisting a Cleric.
-fun Deacon : Class ;
-fun Deacon_Class : SubClass Deacon PartTimePosition ;
-
--- The Attribute that applies to Animals and Humans 
--- that are unable to hear.
-fun Deaf : Ind BiologicalAttribute ;
-
-
--- A Contest where each participant holds a different 
--- view regarding some issue, and each participant attempts to prove, by 
--- rhetoric or evidence, that his/her own views about a particular matter are 
--- correct and/or that the views of the other participants are incorrect.
-fun Debating : Class ;
-fun Debating_Class : SubClass Debating (both Contest LinguisticCommunication) ;
-
-
--- Getting off a Vehicle, e.g. getting out of an 
--- Automobile, deplaning, getting off a WaterVehicle, etc.
-fun Deboarding : Class ;
-fun Deboarding_Class : SubClass Deboarding Translocation ;
-
--- The TimeDuration of 10 years.
-fun DecadeDuration : Ind UnitOfDuration ;
-
-
--- Decreasing the speed with which someone 
--- or something is moving.
-fun Decelerating : Class ;
-fun Decelerating_Class : SubClass Decelerating (both Decreasing Translocation) ;
-
-
--- One of the two major political parties in 
--- the UnitedStates. The DemocraticParty represents liberal values.
-fun DemocraticParty : Ind PoliticalParty ;
-
-
--- The Profession of being a dentist, i.e. diagnosing 
--- and treating problems related to the teeth.
-fun Dentist : Ind Profession ;
-
-
--- Any BiologicallyActiveSubstance which has 
--- the effect of depressing the central nervous system, i.e. decreasing 
--- function or activity in the Brain or SpinalCord.
-fun Depressant : Class ;
-fun Depressant_Class : SubClass Depressant BiologicallyActiveSubstance ;
-
--- A Position which authorizes the holder of the position 
--- to act as the sheriff when the sheriff is not available.
-fun Deputy : Ind PoliceOfficer ;
-
-
--- (DescendantsFn ?PERSON) denotes all and only 
--- the descendants of ?PERSON, i.e. the Group consisting of ?OFFSPRING who 
--- satisfy the following formula: (ancestor ?OFFSPRING ?PERSON).
-fun DescendantsFn : El Human -> Ind FamilyGroup ;
-
-
--- A Table for a single person which is intended to be 
--- used for paperwork.
-fun Desk : Class ;
-fun Desk_Class : SubClass Desk Table ;
-
--- A detergent is a compound, or a mixture of 
--- compounds, whose molecules have two distinct regions: one that is 
--- hydrophilic, and dissolves easily in water, and another region that is 
--- hydrophobic, with little (if any) affinity for water. As a consequence, 
--- these compounds can aid in the solubilization of hydrophobic compounds in 
--- water, and usually are optimized for this property. Though Soap also has 
--- these properties, soaps in general are not considered detergents. Soap is 
--- a particular type of surfactant that is derived from oils and fats. They 
--- are created through the saponification process whereby the ester linkage 
--- in a vegetable oil or fat is hydrolytically cleaved, creating a sodium or 
--- potassium salt of a fatty acid (i.e. soap). Both detergents and soaps 
--- are considered to be surfactants. Surfactants that are not soaps are 
--- considered to be detergents. Detergents are also commonly known as any 
--- cleaning mixture containing surfactants. (from Wikipedia)
-fun Detergent : Class ;
-fun Detergent_Class : SubClass Detergent (both Mixture Surfactant) ;
-
-
--- This class contains two Attributes to 
--- indicate whether a Device is or is not behaving as it is intended to 
--- behave, Functioning and Malfunctioning.
-fun DeviceAttribute : Class ;
-fun DeviceAttribute_Class : SubClass DeviceAttribute ObjectiveNorm ;
-
-fun DeviceClosed : Ind (both DeviceStateAttribute RelationalAttribute) ;
-
-fun DeviceOff : Ind (both DeviceStateAttribute InternalAttribute) ;
-
-fun DeviceOn : Ind (both DeviceStateAttribute InternalAttribute) ;
-
-fun DeviceOpen : Ind (both DeviceStateAttribute RelationalAttribute) ;
-
--- DeviceStateAttribute is the class 
--- of attributes that represent different states that a Device may be in. 
--- Examples: DeviceOff, DeviceOn, DeviceOpen, and DeviceClosed.
-fun DeviceStateAttribute : Class ;
-fun DeviceStateAttribute_Class : SubClass DeviceStateAttribute DeviceAttribute ;
-
--- Any process of Separating a Solution into two or more 
--- constituent PureSubstances by means of their unequal diffusion through membranes 
--- that are partially permeable.
-fun Dialysis : Class ;
-fun Dialysis_Class : SubClass Dialysis Separating ;
-
--- (DiameterFn ?CIRCLE) denotes the length of the 
--- diameter of the Circle ?CIRCLE.
-fun DiameterFn : El Circle -> Ind LengthMeasure ;
-
-
--- Crystalline Carbon that is valued as a gem and 
--- used in industrial applications.
-fun Diamond : Class ;
-fun Diamond_Class : SubClass Diamond (both Carbon Mineral) ;
-
-
--- A DiseaseOrSyndrome of frequent, watery bowel 
--- movements. Severe cases can be fatal for the young or weak. It is
--- a common cause of death for the very young in poor developing countries.
-fun Diarrhea : Ind DiseaseOrSyndrome ;
-
-
--- A ReferenceBook which specifies the meanings 
--- of the Words of a Language.
-fun Dictionary : Class ;
-fun Dictionary_Class : SubClass Dictionary ReferenceBook ;
-
--- DieselEngine is the subclass of 
--- InternalCombustionEngines that use DieselFuel as their resource.
-fun DieselEngine : Class ;
-fun DieselEngine_Class : SubClass DieselEngine InternalCombustionEngine ;
-
--- A Plan regarding what one is allowed to eat.
-fun Diet : Class ;
-fun Diet_Class : SubClass Diet Plan ;
-
--- Any Process of removing or turning over the Soil.
-fun Digging : Class ;
-fun Digging_Class : SubClass Digging (both IntentionalProcess SurfaceChange) ;
-
-
--- Any of the extremities of Limbs that are 
--- found in the higer Vertebrates and the Amphibians.
-fun DigitAppendage : Class ;
-fun DigitAppendage_Class : SubClass DigitAppendage (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Any Character that is comprised of a single digit, 
--- i.e. one of the numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
-fun DigitCharacter : Class ;
-fun DigitCharacter_Class : SubClass DigitCharacter Character ;
-
--- Adding a Liquid to a Solution to decrease 
--- the concentration of the Solution.
-fun Diluting : Class ;
-fun Diluting_Class : SubClass Diluting Putting ;
-
--- A Room intended primarily for Eating.
-fun DiningRoom : Class ;
-fun DiningRoom_Class : SubClass DiningRoom Room ;
-
--- A person who works as a facilitator for communication
--- between countries, in the official employ of one of the countries.
-fun Diplomat : Ind OccupationalRole ;
-
-
--- A Holder for Food while the Food is being eaten.
-fun Dish : Class ;
-fun Dish_Class : SubClass Dish Holder ;
-
--- Any BodyMotion which results in not being On 
--- something else.
-fun Dismounting : Class ;
-fun Dismounting_Class : SubClass Dismounting BodyMotion ;
-
--- DisplacementHullWaterVehicle is 
--- a subclass of WaterVehicle with hulls designed to move water aside as they 
--- move through the water. Contrast with PlaningHullWaterVehicle.
-fun DisplacementHullWaterVehicle : Class ;
-fun DisplacementHullWaterVehicle_Class : SubClass DisplacementHullWaterVehicle WaterVehicle ;
-
--- Something for posting content so 
--- that it can be disseminated to the public.
-fun DisplayArtifact : Class ;
-fun DisplayArtifact_Class : SubClass DisplayArtifact Artifact ;
-
--- Someone who is opposed to the leadership
--- of a particular country. Typically, a dissident suffers punishment
--- at the hands of the country whose leadership he is opposing.
-fun Dissident : Ind (both Civilian SocialRole) ; 
-
-
--- An AlcoholicBeverage that has 
--- had some part of its Water content removed by distillation. This class 
--- covers drinks of unmixed, hard liquor.
-fun DistilledAlcoholicBeverage : Class ;
-fun DistilledAlcoholicBeverage_Class : SubClass DistilledAlcoholicBeverage AlcoholicBeverage ;
-
--- A legal act whereby a marriage is dissolved. This 
--- includes annulments.
-fun Divorcing : Class ;
-fun Divorcing_Class : SubClass Divorcing Declaring ;
-
--- A MotionPicture which purports to represent the 
--- facts about a person, event, etc.
-fun Documentary : Class ;
-fun Documentary_Class : SubClass Documentary (both FactualText MotionPicture) ;
-
-
--- Purposely moving one's body in such a way as 
--- to avoid being hit by something.
-fun Dodging : Class ;
-fun Dodging_Class : SubClass Dodging (both BodyMotion IntentionalProcess) ;
-
-
--- Any Animal that is kept by a Human, as 
--- a pet, as livestock, for exhibition, etc.
-fun DomesticAnimal : Class ;
-fun DomesticAnimal_Class : SubClass DomesticAnimal Animal ;
-
--- A variety of Feline which has been domesticated 
--- by selective breeding.
-fun DomesticCat : Class ;
-fun DomesticCat_Class : SubClass DomesticCat (both DomesticAnimal Feline) ;
-
-
--- Canines which have evolved from the common 
--- wolf by selective breeding.
-fun DomesticDog : Class ;
-fun DomesticDog_Class : SubClass DomesticDog (both Canine DomesticAnimal) ;
-
-
--- A domesticated HoofedMammal that is used for 
--- work.
-fun Donkey : Class ;
-fun Donkey_Class : SubClass Donkey (both HoofedMammal Livestock) ;
-
-
--- An Artifact that restricts and permits access to a 
--- StationaryArtifact (e.g. Building or Room) depending on whether the 
--- Door is open or locked. Note that the class Door also covers gates, 
--- because it is not possible to define objective criteria that reliably 
--- distinguish doors from gates.
-fun Door : Class ;
-fun Door_Class : SubClass Door Artifact ;
-
--- A StationaryArtifact consisting of a frame that 
--- holds a Door.
-fun Doorway : Class ;
-fun Doorway_Class : SubClass Doorway StationaryArtifact ;
-
--- A TemporaryResidence which is owned by a School 
--- and which is used to house students while they take classes at the School.
-fun Dormitory : Class ;
-fun Dormitory_Class : SubClass Dormitory (both ResidentialBuilding TemporaryResidence) ;
-
-
--- A Mixture of Flour, Water, and possibly 
--- other ingredients (such as Butter and Salt), which is used in 
--- making BreadOrBiscuits.
-fun Dough : Class ;
-fun Dough_Class : SubClass Dough (both Mixture PreparedFood) ;
-
-
--- A PositionalAttribute to indicate that one thing is 
--- one or more floors below a second thing in the same building.
-fun Downstairs : Ind PositionalAttribute ;
-
-
--- The commercial center of a City. The part of the 
--- City that contains more shops and offices than any other part.
-fun Downtown : Class ;
-fun Downtown_Class : SubClass Downtown CityDistrict ;
-
--- Playing a character in a Performance, 
--- MotionPicture, etc.
-fun DramaticActing : Class ;
-fun DramaticActing_Class : SubClass DramaticActing Pretending ;
-
--- The GroupOfPeople who engage in DramaticActing 
--- as part of the realization of a single FictionalText.
-fun DramaticCast : Class ;
-fun DramaticCast_Class : SubClass DramaticCast GroupOfPeople ;
-
--- The process of directing a DramaticActing 
--- in a MotionPicture or the Performance of a DramaticPlay.
-fun DramaticDirecting : Class ;
-fun DramaticDirecting_Class : SubClass DramaticDirecting Guiding ;
-
--- A Performance that consists exclusively of 
--- DramaticActing, e.g. a live performance of Death_of_a_Salesman in front 
--- of an audience.
-fun DramaticPerformance : Class ;
-fun DramaticPerformance_Class : SubClass DramaticPerformance Performance ;
-
--- A FictionalText that is intended to be realized 
--- as DramaticActing.
-fun DramaticPlay : Class ;
-fun DramaticPlay_Class : SubClass DramaticPlay FictionalText ;
-
--- Any ContentDevelopment that results in a Sketch.
-fun Drawing : Class ;
-fun Drawing_Class : SubClass Drawing (both ContentDevelopment SurfaceChange) ;
-
-
--- A Process of producing metal images which occurs 
--- while one is Asleep.
-fun Dreaming : Class ;
-fun Dreaming_Class : SubClass Dreaming Imagining ;
-
--- An item of Clothing which covers the lower body of a 
--- Woman.
-fun Dress : Class ;
-fun Dress_Class : SubClass Dress Clothing ;
-
--- The Process of putting on Clothing.
-fun Dressing : Class ;
-fun Dressing_Class : SubClass Dressing Putting ;
-
--- Any Room which is intended for 
--- ChangingClothing.
-fun DressingRoom : Class ;
-fun DressingRoom_Class : SubClass DressingRoom Room ;
-
--- A Device that has the purpose of creating a 
--- Hole. This covers manual drills as well as electric or pneumatic
--- drills.
-fun Drill : Class ;
-fun Drill_Class : SubClass Drill CuttingDevice ;
-
--- Any Process of producing a hole in a 
--- SelfConnectedObject which involves rotating a long, thin bit.
-fun Drilling : Class ;
-fun Drilling_Class : SubClass Drilling (both IntentionalProcess SurfaceChange) ;
-
-
--- An open FluidContainer that is intended to serve a Beverage 
--- to a single person. Note that this class includes both cups with handles and 
--- drinking glasses.
-fun DrinkingCup : Class ;
-fun DrinkingCup_Class : SubClass DrinkingCup FluidContainer ;
-
--- Any LiquidMotion where the Liquid is moved 
--- drop by drop.
-fun Dripping : Class ;
-fun Dripping_Class : SubClass Dripping LiquidMotion ;
-
--- An EngineeringComponent whose purpose is to 
--- transfer force from one part of a Device to another part.
-fun DriveComponent : Class ;
-fun DriveComponent_Class : SubClass DriveComponent EngineeringComponent ;
-
--- A License which identifies the holder and 
--- indicates that he has the right to drive a certain class of RoadVehicle.
-fun DriversLicense : Class ;
-fun DriversLicense_Class : SubClass DriversLicense License ;
-
--- A small, private Roadway that is used for parking 
--- Automobiles or for connecting a Garage to a public Roadway.
-fun Driveway : Class ;
-fun Driveway_Class : SubClass Driveway Roadway ;
-
--- A RetailStore that sells Medicine, and 
--- perhaps other items as well.
-fun DrugStore : Class ;
-fun DrugStore_Class : SubClass DrugStore RetailStore ;
-
--- The ConsciousnessAttribute of someone whose motor and/or 
--- cognitive faculties are significantly impaired by a BiologicallyActiveSubstance.
-fun Drugged : Ind ConsciousnessAttribute ;
-
-
--- An atonal PercussionInstrument which consists of a 
--- hollow cylinder and a fabric stretched across at least one end of the 
--- cylinder.
-fun Drum : Class ;
-fun Drum_Class : SubClass Drum PercussionInstrument ;
-
--- Playing a Drum. Note that this includes both
--- musical performance, as well as signalling and cerimonial applications.
-fun Drumming : Class ;
-fun Drumming_Class : SubClass Drumming (both Demonstrating RadiatingSound) ;
-
-
--- The ConsciousnessAttribute of someone whose motor and 
--- cognitive faculties are significantly impaired by Alcohol.
-fun Drunk : Ind ConsciousnessAttribute ;
-
-
--- A subclass of Bird with webbed feet and a large bill. 
--- Some ducks live in the wild, and some are raised for meat and/or eggs.
-fun Duck : Class ;
-fun Duck_Class : SubClass Duck Poultry ;
-
--- Purposely moving one's body downward in such a way as 
--- to avoid being hit by something.
-fun Ducking : Class ;
-fun Ducking_Class : SubClass Ducking (both BodyMotion (both IntentionalProcess MotionDownward)) ;
-
-
--- A Tax that is levied on imports and/or exports.
-fun DutyTax : Class ;
-fun DutyTax_Class : SubClass DutyTax Tax ;
-
--- The Organ of hearing.
-fun Ear : Class ;
-fun Ear_Class : SubClass Ear (both AnimalAnatomicalStructure Organ) ;
-
-
--- Instances of RadiatingSound where the instrument 
--- is a surface which bounces sound waves back to their origin, where they can 
--- be heard again.
-fun Echoing : Class ;
-fun Echoing_Class : SubClass Echoing RadiatingSound ;
-
--- A class of Relations which are used 
--- to specify various economic measures, e.g. the GDP, the consumer price 
--- index, and the trade deficit.
-fun EconomicRelation : El GeopoliticalArea -> El Entity -> Formula;
-
-
--- The field of economics.
-fun Economics : Ind SocialScience ;
-
-
--- A schedule of class meetings offered by an 
--- EducationalOrganization.
-fun EducationalCourse : Class ;
-fun EducationalCourse_Class : SubClass EducationalCourse EducationalProgram ;
-
--- A building or campus, owned by an
--- EducationalOrganization, which is intended as the location for
--- EducationalProcesses.
-fun EducationalFacility : Class ;
-fun EducationalFacility_Class : SubClass EducationalFacility StationaryArtifact ;
-
--- A series of EducationalCourses that must 
--- be completed to receive an AcademicDegree or other Certificate. Note that 
--- an EducationalProgram, unlike an EducationalCourse, may be realized at more 
--- than one EducationalOrganization.
-fun EducationalProgram : Class ;
-fun EducationalProgram_Class : SubClass EducationalProgram Plan ;
-
--- The joint in the Arm connecting the forearm and the 
--- upper arm.
-fun Elbow : Class ;
-fun Elbow_Class : SubClass Elbow BodyJoint ;
-
--- ElectoralCollegeElection is 
--- the class of Elections in which the outcome is decided by the votes of 
--- electors who have been chosen by popular vote, rather than directly by 
--- results of the popular vote. ElectoralCollegeElection is an indirect 
--- method of election, in contrast to PopularElection.
-fun ElectoralCollegeElection : Class ;
-fun ElectoralCollegeElection_Class : SubClass ElectoralCollegeElection GeneralElection ;
-
--- A Device that uses Electricity as its
--- primary power source.
-fun ElectricDevice : Class ;
-fun ElectricDevice_Class : SubClass ElectricDevice Device ;
-
--- ElectricMotor is the subclass of Engines 
--- that produce mechanical power from electricity.
-fun ElectricMotor : Class ;
-fun ElectricMotor_Class : SubClass ElectricMotor (both ElectricDevice Engine) ;
-
-
--- ElectricalSignalling is the 
--- subclass of Signalling processes that involve control of an electrical 
--- current. Cf. ElectronicSignalling.
-fun ElectricalSignalling : Class ;
-fun ElectricalSignalling_Class : SubClass ElectricalSignalling Signalling ;
-
--- ElectrifiedRailwayCar is the 
--- subclass of railway cars that are powered by electricity, which is 
--- provided to the car through an overhead link or electrified third rail.
-fun ElectrifiedRailwayCar : Class ;
-fun ElectrifiedRailwayCar_Class : SubClass ElectrifiedRailwayCar (both ElectricDevice (both PoweredVehicle RollingStock)) ;
-
-
--- ElectronicSignalling is the 
--- subclass of Signalling processes that involve a signal generated by 
--- a computer.
-fun ElectronicSignalling : Class ;
-fun ElectronicSignalling_Class : SubClass ElectronicSignalling Signalling ;
-
--- The branch of Physics that deals with the theory 
--- and applications of electron emissions.
-fun Electronics : Ind FieldOfStudy ;
-
-
--- A very large, almost hairless Herbivore with a long 
--- trunk.
-fun Elephant : Class ;
-fun Elephant_Class : SubClass Elephant Herbivore ;
-
--- A TransportationDevice consisting of a car that moves 
--- up and down in a vertical shaft so that people or objects can move from one floor to another 
--- in a building.
-fun Elevator : Class ;
-fun Elevator_Class : SubClass Elevator TransportationDevice ;
-
--- An embassy is a Building that is owned by a
--- Government to house its diplomatic and consular staff that is in 
--- another country.
-fun EmbassyBuilding : Class ;
-fun EmbassyBuilding_Class : SubClass EmbassyBuilding GovernmentBuilding ;
-
--- The class of Touching processes where one Human 
--- hugs another one.
-fun Embracing : Class ;
-fun Embracing_Class : SubClass Embracing Touching ;
-
--- A DiseaseOrSyndrome that affects the Lungs and 
--- which results in a decrease of breathing ability.
-fun Emphysema : Ind DiseaseOrSyndrome ;
-
-
--- Involuntarily ending one's employment. 
--- Note that this covers termination due to inadequate performance, as 
--- well as layoffs.
-fun EmploymentFiring : Class ;
-fun EmploymentFiring_Class : SubClass EmploymentFiring TerminatingEmployment ;
-
--- Engine is a subclass of Transducer. Engines 
--- are devices for converting some form of energy resource into mechanical 
--- power.
-fun Engine : Class ;
-fun Engine_Class : SubClass Engine Transducer ;
-
--- The application of instances of Science to the solution 
--- of practical problems, i.e. the creation of various forms of technology.
-fun Engineering : Ind Science ;
-
-
--- A building that has the primary 
--- purpose of entertaining people.
-fun EntertainmentBuilding : Class ;
-fun EntertainmentBuilding_Class : SubClass EntertainmentBuilding Building ;
-
--- Any business whose services include 
--- Performances. This class covers nightclubs, commercial live theaters, 
--- and comedy clubs.
-fun EntertainmentCompany : Class ;
-fun EntertainmentCompany_Class : SubClass EntertainmentCompany CommercialAgent ;
-
--- Positions which involve creating 
--- content or performances that are intended to entertain. This class covers 
--- the TheaterProfession, FilmMakingProfession, being a comedian, etc.
-fun EntertainmentProfession : Class ;
-fun EntertainmentProfession_Class : SubClass EntertainmentProfession SkilledOccupation ;
-
--- More commonly known as burying, this is the class 
--- of processes of putting a HumanCorpse into a Tomb. Note that this class 
--- is not a subclass of Burying, since some Tombs are not covered with Soil, 
--- e.g. those in a mausoleum.
-fun Entombing : Class ;
-fun Entombing_Class : SubClass Entombing Putting ;
-
--- A sealable Container for one or more pieces of 
--- paper which is designed to protect the papers while they are transferred to 
--- someone.
-fun Envelope : Class ;
-fun Envelope_Class : SubClass Envelope Container ;
-
--- Any instance of Translocation where the agent brings 
--- it about that he/she is no longer confined without having the right to do 
--- so.
-fun Escaping : Class ;
-fun Escaping_Class : SubClass Escaping Translocation ;
-
--- Any Investigating by one Government of another 
--- Government where the second Government does not know that it is being 
--- spied upon.
-fun Espionage : Class ;
-fun Espionage_Class : SubClass Espionage (both Investigating PoliticalProcess) ;
-
-
--- The class of nations that are in Europe.
-fun EuropeanNation : Class ;
-fun EuropeanNation_Class : SubClass EuropeanNation Nation ;
-
--- The state of being happy about a state of 
--- affairs that might occur in the future.
-fun Excitement : Ind EmotionalState ;
-
-
--- Killing of a Human by a Government for 
--- the commission of a CriminalAction.
-fun Execution : Class ;
-fun Execution_Class : SubClass Execution Killing ;
-
--- A Residence of a chiefOfState, e.g. 
--- the White House, a state governor's mansion, Buckingham Palace, etc.
-fun ExecutiveResidence : Class ;
-fun ExecutiveResidence_Class : SubClass ExecutiveResidence PermanentResidence ;
-
--- Any instance of Breathing where the breath is 
--- expelled from the Lungs.
-fun Exhaling : Class ;
-fun Exhaling_Class : SubClass Exhaling Breathing ;
-
--- Any sudden and massive release of energy that is 
--- the product of a chemical reaction.
-fun Explosion : Class ;
-fun Explosion_Class : SubClass Explosion Radiating ;
-
--- A Device whose purpose is to explode. Note 
--- that ExplosiveDevice is not a subclass of Weapon, since explosives can be 
--- used in demolition work and in fireworks displays, for example.
-fun ExplosiveDevice : Class ;
-fun ExplosiveDevice_Class : SubClass ExplosiveDevice Device ;
-
--- An ExplosiveDevice which is designed to 
--- explode when there is movement over it, e.g. by a person on foot, by a 
--- RoadVehicle, etc.
-fun ExplosiveMine : Class ;
-fun ExplosiveMine_Class : SubClass ExplosiveMine (both ExplosiveDevice Weapon) ;
-
-
--- Any Substance which is capable of exploding.
-fun ExplosiveSubstance : Class ;
-fun ExplosiveSubstance_Class : SubClass ExplosiveSubstance Substance ;
-
--- Expressing favor about a physical thing 
--- or a state of affairs.
-fun ExpressingApproval : Class ;
-fun ExpressingApproval_Class : SubClass ExpressingApproval Expressing ;
-
--- Expressing disfavor about a physical 
--- thing or a state of affairs.
-fun ExpressingDisapproval : Class ;
-fun ExpressingDisapproval_Class : SubClass ExpressingDisapproval Expressing ;
-
--- Any instance of Expressing an acknowledgment 
--- of a person's departure. Note that this class is not a subclass of 
--- LinguisticCommunication, because it covers gestures of departure, e.g. Waving 
--- and Nodding in certain circumstances.
-fun ExpressingFarewell : Class ;
-fun ExpressingFarewell_Class : SubClass ExpressingFarewell Expressing ;
-
--- Any instance of Expressing that is also an 
--- instance of LinguisticCommunication, e.g. thanking someone, expressing condolence, 
--- expressing disapproval with an utterance rather than a Gesture, etc.
-fun ExpressingInLanguage : Class ;
-fun ExpressingInLanguage_Class : SubClass ExpressingInLanguage (both Expressing LinguisticCommunication) ;
-
-
--- The Organ of sight.
-fun Eye : Class ;
-fun Eye_Class : SubClass Eye (both AnimalAnatomicalStructure Organ) ;
-
-
--- A lens or pair of lenses with or without frames whose 
--- purpose is to to correct a defect in vision. This class covers ordinary eye 
--- glasses, reading glasses, contact lenses, monocles, etc.
-fun EyeGlass : Class ;
-fun EyeGlass_Class : SubClass EyeGlass OpticalDevice ;
-
--- Any Motion where a patient is the agent's 
--- own Eyelid or Eyelids.
-fun EyeMotion : Class ;
-fun EyeMotion_Class : SubClass EyeMotion BodyMotion ;
-
--- Folds of Skin that can be manipulated to 
--- cover or uncover Eyes.
-fun Eyelid : Class ;
-fun Eyelid_Class : SubClass Eyelid Skin ;
-
--- The part of the Head from forehead to chin and 
--- from ear to ear.
-fun Face : Class ;
-fun Face_Class : SubClass Face (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Any Gesture whose instrument is the Face.
-fun FacialExpression : Class ;
-fun FacialExpression_Class : SubClass FacialExpression Gesture ;
-
--- Hair that grows on the Face. This 
--- class covers beards, mustaches, sideburns, midnight shadow, etc.
-fun FacialHair : Class ;
-fun FacialHair_Class : SubClass FacialHair Hair ;
-
--- The class of Statements that are True.
-fun Fact : Class ;
-fun Fact_Class : SubClass Fact Statement ;
-
--- A Building intended to house a process that 
--- produces goods of some value.
-fun Factory : Class ;
-fun Factory_Class : SubClass Factory Building ;
-
--- The SeasonOfYear that begins at the autumnal 
--- equinox and ends at the winter solstice.
-fun FallSeason : Class ;
-fun FallSeason_Class : SubClass FallSeason SeasonOfYear ;
-
--- The process of transitioning from a state of 
--- being Awake to a state of being Asleep.
-fun FallingAsleep : Class ;
-fun FallingAsleep_Class : SubClass FallingAsleep PsychologicalProcess ;
-
--- Radioactive powder that is typically dispersed by 
--- the explosion of a nuclear weapon.
-fun Fallout : Class ;
-fun Fallout_Class : SubClass Fallout Powder ;
-
--- A Partnership that is owned by a single 
--- family.
-fun FamilyBusiness : Class ;
-fun FamilyBusiness_Class : SubClass FamilyBusiness Partnership ;
-
--- A CoolingDevice which consists simply of one or more 
--- blades that circulate the air. Note that this class covers both electrical fans 
--- and fans that are manually operated.
-fun FanDevice : Class ;
-fun FanDevice_Class : SubClass FanDevice CoolingDevice ;
-
--- A StationaryArtifact consisting of a cultivated 
--- LandArea and Buildings for maintaining the land and/or the Animals 
--- on the land.
-fun Farm : Class ;
-fun Farm_Class : SubClass Farm StationaryArtifact ;
-
--- A Building on a Farm that is used for keeping 
--- DomesticAnimals, Fodder or harvested crops.
-fun FarmBuilding : Class ;
-fun FarmBuilding_Class : SubClass FarmBuilding Building ;
-
--- OccupationalTrades which involve Agriculture.
-fun FarmHand : Ind OccupationalTrade ;
-
-
--- Operating a farm, e.g. planting and harvesting crops, 
--- tending livestock, etc.
-fun Farming : Class ;
-fun Farming_Class : SubClass Farming Working ;
-
--- Each instance of this class is one of the structures 
--- that make up the external covering of Birds.
-fun Feather : Class ;
-fun Feather_Class : SubClass Feather (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Giving Food to a Human or Animal.
-fun Feeding : Class ;
-fun Feeding_Class : SubClass Feeding Giving ;
-
--- A Cow that is Female.
-fun FemaleCow : Class ;
-fun FemaleCow_Cow : SubClassC FemaleCow Cow (\COW -> attribute (var Cow Object ? COW)(el SexAttribute Attribute ? Female));
-
-
--- A StationaryArtifact that serves to demarcate or
--- to prevent access to or from the area that the Fence surrounds.
-fun Fence : Class ;
-fun Fence_Class : SubClass Fence StationaryArtifact ;
-
--- Having a body temperature which is (significantly) greater 
--- than 98.6 degrees Fahrenheit. This syndrome is often associated with dehydration 
--- and chills.
-fun Fever : Ind DiseaseOrSyndrome ;
-
-
--- A LandArea that has been cleared of BotanicalTrees. 
--- Note that a Field is not necessarily used for the cultivation of crops and 
--- that a Field may be very small, e.g. Lawn is a subclass of Field.
-fun Field : Class ;
-fun Field_Class : SubClass Field LandArea ;
-
--- The study of legal principles and the framework of national 
--- and/or international laws.
-fun FieldOfLaw : Ind FieldOfStudy ;
-
-
--- Any high_speed MilitaryAircraft whose purpose is 
--- to destroy enemy MilitaryAircraft.
-fun Fighter : Class ;
-fun Fighter_Class : SubClass Fighter MilitaryAircraft ;
-
--- A Device whose purpose is to make something 
--- smoother. For example, a nail file is used to even out the tips of one's 
--- finger nails.
-fun FileDevice : Class ;
-fun FileDevice_Class : SubClass FileDevice Device ;
-
--- Positions which involve directing MotionPictures.
-fun FilmDirector : Class ;
-fun FilmDirector_Class : SubClass FilmDirector FilmMakingProfession ;
-
--- ContentDevelopment where the result is a 
--- MotionPicture.
-fun FilmMaking : Class ;
-fun FilmMaking_Class : SubClass FilmMaking ContentDevelopment ;
-
--- Positions which involve FilmMaking, 
--- i.e. acting in films, directing films, producing films, etc.
-fun FilmMakingProfession : Class ;
-fun FilmMakingProfession_Class : SubClass FilmMakingProfession EntertainmentProfession ;
-
--- Positions which involve producing MotionPictures, 
--- i.e arranging the financing for the MotionPicture and supervising its production.
-fun FilmProducer : Class ;
-fun FilmProducer_Class : SubClass FilmProducer FilmMakingProfession ;
-
--- A Device whose purpose is to remove part of a 
--- Solution that is passed through the Filter.
-fun Filter : Class ;
-fun Filter_Class : SubClass Filter Device ;
-
--- A formal banking, brokerage, or business relationship 
--- established to provide for regular services, dealings, and other financial 
--- transactions.
-fun FinancialAccount : Class ;
-
-
--- Any item of economic value owned by an individual or 
--- corporation, especially that which could be converted to cash. Examples are cash, 
--- securities, accounts receivable, inventory, office equipment, a house, a car, and 
--- other property.
-fun FinancialAsset : Class ;
-
-
--- A brief statement that the stated amount 
--- of money is owed by the person to whom the bill is delivered.
-fun FinancialBill : Class ;
-fun FinancialBill_Class : SubClass FinancialBill FinancialText ;
-
--- The class FinancialCompany 
--- includes, as subclasses, FinancialBank, CreditUnion and SavingsAndLoan.
-fun FinancialCompany : Class ;
-fun FinancialCompany_Class : SubClass FinancialCompany CommercialAgent ;
-
--- Services performed by a
--- FinancialCompany.
-fun FinancialService : Class ;
-fun FinancialService_Class : SubClass FinancialService CommercialService ;
-
--- A Report about monetary figures. This 
--- class covers FinancialBills, balance sheets, account statements, etc.
-fun FinancialText : Class ;
-fun FinancialText_Class : SubClass FinancialText Report ;
-
--- Any Funding which is provided by a FinancialCompany 
--- with the aim of making a profit on the money invested.
-fun Financing : Class ;
-fun Financing_Class : SubClass Financing (both FinancialService Funding) ;
-
-
--- The five extremities of Hands.
-fun Finger : Class ;
-fun Finger_Class : SubClass Finger DigitAppendage ;
-
--- That pattern of arches, loops, and whorls that mark 
--- the imprint of a Finger.
-fun Fingerprint : Class ;
-fun Fingerprint_Class : SubClass Fingerprint (both BiologicalAttribute ShapeAttribute) ;
-
-
--- Any Quantity that is limited or bounded in 
--- magnitude.
-fun FiniteQuantity : Class ;
-fun FiniteQuantity_Class : SubClass FiniteQuantity Quantity ;
-
--- A Gun that is small enough to be carried and fired by 
--- a single Human.
-fun Firearm : Class ;
-fun Firearm_Class : SubClass Firearm Gun ;
-
--- A Device in a Building which is used for burning wood, 
--- coal, etc for heat.
-fun Fireplace : Class ;
-fun Fireplace_Class : SubClass Fireplace (both Device StationaryArtifact) ;
-
-
--- (FirstFn ?LIST) returns the first item in 
--- the List ?LIST. For example, (FirstFn (ListFn Monday Tuesday 
--- Wednesday)) would return the value of Monday.
-fun FirstFn : El List -> Ind Entity ;
-
-
--- Meat that was originally part of a Fish.
-fun FishMeat : Class ;
-fun FishMeat_Class : SubClass FishMeat Meat ;
-
--- The BodyPosition of having the fingers drawn into 
--- the palm so that the hand can be used for striking something.
-fun Fist : Ind BodyPosition ;
-
-
--- An Icon made of Fabric that refers to a particular 
--- GeopoliticalArea.
-fun Flag : Class ;
-fun Flag_Class : SubClass Flag Icon ;
-
--- A three dimensional object for which
--- two dimensions are markedly larger than the third the
--- two larger dimensions are also not of markedly different length.
-fun Flat : Ind ShapeAttribute ;
-
-
--- Flooding is the subclass of LiquidMotion 
--- processes in which the water level of a Waterway rises or water spreads 
--- over a flood plain along a Waterway.
-fun Flooding : Class ;
-fun Flooding_Class : SubClass Flooding LiquidMotion ;
-
--- A StationaryArtifact that is the bottom surface 
--- of a Room.
-fun Floor : Class ;
-fun Floor_Class : SubClass Floor StationaryArtifact ;
-
--- A Powder that is prepared from CerealGrain, e.g. 
--- wheat flour, rice flour, etc. Flour is most often used in the making 
--- of BreadOrBiscuits.
-fun Flour : Class ;
-fun Flour_Class : SubClass Flour (both Powder PreparedFood) ;
-
-
--- The reproductive organ of FloweringPlants.
-fun Flower : Class ;
-fun Flower_Class : SubClass Flower (both Organ PlantAnatomicalStructure) ;
-
-
--- A Container which is used to store Fluids, 
--- i.e. Liquids and Gases.
-fun FluidContainer : Class ;
-fun FluidContainer_Class : SubClass FluidContainer Container ;
-
--- Insects with Wings and two Limbs.
-fun FlyInsect : Class ;
-fun FlyInsect_Class : SubClass FlyInsect Insect ;
-
--- Any instance of Translocation which is through an 
--- AtmosphericRegion and which is powered by the wings of an Animal.
-fun Flying : Class ;
-fun Flying_Class : SubClass Flying Translocation ;
-
--- Altering the relative distance of a Lens 
--- so that a visual image is sharper.
-fun Focusing : Class ;
-fun Focusing_Class : SubClass Focusing QuantityChange ;
-
--- Fodder is the class of OrganicObjects that 
--- are used as food for domesticated animals. Fodder Fodder is the subclass of Food that is intended 
--- for instances of DomesticAnimal.
-fun Fodder : Class ;
-fun Fodder_Class : SubClass Fodder Food ;
-
--- Any WaterCloud that is in contact with the ground.
-fun Fog : Class ;
-fun Fog_Class : SubClass Fog WaterCloud ;
-
--- Bending something in such a way that one part of 
--- it covers another part.
-fun Folding : Class ;
-fun Folding_Class : SubClass Folding ShapeChange ;
-
--- The lower part of a Limb, the part which makes contact 
--- with the ground in locomotion of the Animal.
-fun Foot : Class ;
-fun Foot_Class : SubClass Foot (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- FormOfGovernment is a class of 
--- Attributes used to describe the characteristics of a government, 
--- especially a NationalGovernment. The concept FormOfGovernment is 
--- interpreted broadly enough to include Anarchy and Factionalism.
-fun FormOfGovernment : Class ;
-fun FormOfGovernment_Class : SubClass FormOfGovernment PoliticoEconomicAttribute ;
-
--- A page or set of pages containing spaces where 
--- information is to be entered by an Agent.
-fun FormText : Class ;
-fun FormText_Class : SubClass FormText Text ;
-
--- Any Meeting which is the result of Planning 
--- and whose purpose is not socializing.
-fun FormalMeeting : Class ;
-fun FormalMeeting_Class : SubClass FormalMeeting Meeting ;
-
--- FossilFuel is the subclass of Fuel whose 
--- instances are derived from fossilized organic deposits, such as Coal 
--- and LiquefiedPetroleumGas.
-fun FossilFuel : Class ;
-fun FossilFuel_Class : SubClass FossilFuel (both Fuel PetroleumProduct) ;
-
-
--- A SportsAttribute that indicates that the GamePiece of 
--- a Sport is no longer in play because it has gone beyond the limits of the 
--- sports field.
-fun Foul : Ind SportsAttribute ;
-
-
--- Setting up an Organization.
-fun Founding : Class ;
-fun Founding_Class : SubClass Founding (both Declaring OrganizationalProcess) ;
-
-
--- Canines with a bushy tail and pointed ears and nose. 
--- Foxes tend to be much smaller than most DomesticDogs.
-fun Fox : Class ;
-fun Fox_Class : SubClass Fox Canine ;
-
--- An Attribute which indicates that the 
--- associated Object is very breakable.
-fun Fragile : Ind BreakabilityAttribute ;
-
-
--- Any Atom which is not part of a Molecule.
-fun FreeAtom : Class ;
-fun FreeAtom_Class : SubClass FreeAtom Atom ;
-
--- A Romance language that is the official language 
--- of France and Belgium, and is widely spoken in Africa.
-fun FrenchLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ; 
-
-
--- Any PsychologicalProcess where the patient 
--- comes to feel Anxiety.
-fun Frightening : Class ;
-fun Frightening_Class : SubClass Frightening PsychologicalProcess ;
-
--- Furrowing the forehead in such a way as to convey 
--- unhappiness.
-fun Frowning : Class ;
-fun Frowning_Class : SubClass Frowning FacialExpression ;
-
--- Fuel is the class of Substances that can be 
--- used as resources in Combustion processes in order to produce heat. 
--- Mechanical energy can be produced by burning fuel in an Engine.
-fun Fuel : Class ;
-fun Fuel_Class : SubClass Fuel Substance ;
-
--- Any Position where the employee is either 
--- salaried or paid for at least 40 hour of work per week.
-fun FullTimePosition : Class ;
-fun FullTimePosition_Class : SubClass FullTimePosition Position ;
-
--- Indicates that a Device is performing its 
--- intended function.
-fun Functioning : Ind DeviceAttribute ;
-
-
--- A FormalMeeting whose purpose is to commemorate 
--- the Death of someone.
-fun Funeral : Class ;
-fun Funeral_Class : SubClass Funeral FormalMeeting ;
-
--- Any free_standing and movable 
--- Artifacts which are not which are used in day_to_day living and designed 
--- to rest on the Floor of a Room.
-fun Furniture : Class ;
-fun Furniture_Class : SubClass Furniture Artifact ;
-
--- The process of transitioning from a state 
--- of being Unconscious to a state of being Awake.
-fun GainingConsciousness : Class ;
-fun GainingConsciousness_Class : SubClass GainingConsciousness PsychologicalProcess ;
-
--- An Artifact that is designed to be used as an 
--- instrument in a Game.
-fun GameArtifact : Class ;
-fun GameArtifact_Class : SubClass GameArtifact Artifact ;
-
--- Any ContestAttribute that is specific 
--- to a Game.
-fun GameAttribute : Class ;
-fun GameAttribute_Class : SubClass GameAttribute ContestAttribute ;
-
--- A GameArtifact which is intended to be used as the 
--- game area for playing a particular game.
-fun GameBoard : Class ;
-fun GameBoard_Class : SubClass GameBoard GameArtifact ;
-
--- A decision issued by an official referee in a 
--- Game. Note that GameCall is a subclass of Declaring, because these 
--- decisions have binding, normative force.
-fun GameCall : Class ;
-fun GameCall_Class : SubClass GameCall (both Deciding Declaring) ;
-
-
--- A small cube with 1 to 6 dots on each face that is 
--- used to generate numbers at random in a Game.
-fun GameDie : Class ;
-fun GameDie_Class : SubClass GameDie GamePiece ;
-
--- The location where a GameShot must end up if it 
--- is to constitute a Score.
-fun GameGoal : Class ;
-fun GameGoal_Class : SubClass GameGoal GameArtifact ;
-
--- A GameArtifact that is moved around in a game 
--- area.
-fun GamePiece : Class ;
-fun GamePiece_Class : SubClass GamePiece GameArtifact ;
-
--- A position which involves adjudicating contested 
--- Maneuvers in a Game, i.e. deciding whether or not the Maneuvers are 
--- permitted by the rules of the Game.
-fun GameReferee : Class ;
-fun GameReferee_Class : SubClass GameReferee SkilledOccupation ;
-
--- Impelling a GamePiece for the purpose of 
--- scoring a point or preventing the opposing player or team from scoring 
--- a point. Note that this class does not cover shots which are disallowed 
--- by the rules of the game.
-fun GameShot : Class ;
-fun GameShot_Class : SubClass GameShot (both Impelling Maneuver) ;
-
-
--- A Building or part of a Building which is intended to house 
--- one or more Automobiles when they are not in use or are under
--- repair.
-fun Garage : Class ;
-fun Garage_Class : SubClass Garage StationaryArtifact ;
-
--- GasolineEngine is the subclass of 
--- InternalCombustionEngines that use Gasoline as their resource.
-fun GasolineEngine : Class ;
-fun GasolineEngine_Class : SubClass GasolineEngine InternalCombustionEngine ;
-
--- A Mollusk with a distinct head that has no 
--- shell (e.g. slugs) or a univalve shell (e.g. snails).
-fun Gastropod : Class ;
-fun Gastropod_Class : SubClass Gastropod Mollusk ;
-
--- GeneralElection is the subclass of 
--- Elections that are held at regular intervals and in which all or most 
--- constituencies of a GeopoliticalArea participate.
-fun GeneralElection : Class ;
-fun GeneralElection_Class : SubClass GeneralElection Election ;
-
--- A Germanic language that is spoken primarily in 
--- Germany and Austria.
-fun GermanLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
-
-
--- A HumanChild who is Female.
-fun Girl : Class ;
-fun Girl_Class : SubClass Girl (both HumanChild Woman) ;
-
-
--- A transparent or translucent Mixture of silicates.
-fun Glass : Class ;
-fun Glass_Class : SubClass Glass Mixture ;
-
--- Clothing that is intended to be worn on the Hand. 
--- Note that this class covers both gloves which have individual compartments 
--- for each of the Fingers and mittens.
-fun Glove : Class ;
-fun Glove_Class : SubClass Glove Clothing ;
-
--- Any Mixture whose purpose is to be used as the instrument 
--- of Attaching one thing to another.
-fun Glue : Class ;
-fun Glue_Class : SubClass Glue Mixture ;
-
--- A DiseaseOrSyndrome which is due to an Iodine deficiency 
--- and which results in an enlarged ThyroidGland.
-fun Goiter : Ind DiseaseOrSyndrome ;
-
-
--- A subclass of Bird with webbed feet and a long neck 
--- and a large body. These Birds are often raised for their Meat.
-fun Goose : Class ;
-fun Goose_Class : SubClass Goose Poultry ;
-
--- A building belonging to a Government
-fun GovernmentBuilding : Class ;
-fun GovernmentBuilding_Class : SubClass GovernmentBuilding Building ;
-
--- Any Profession where the position occupied 
--- is within a GovernmentOrganization.
-fun GovernmentOfficer : Class ;
-fun GovernmentOfficer_Class : SubClass GovernmentOfficer Profession ;
-
--- A person who works for a Government.
-fun GovernmentPerson : Ind OccupationalRole ;
-
-
--- The class of Positions where the position holder 
--- is head of an adminstrative department of Government.
-fun GovernmentSecretary : Class ;
-fun GovernmentSecretary_Class : SubClass GovernmentSecretary SkilledOccupation ;
-
--- The head of the Government of an AmericanState.
-fun Governor : Ind Position ;
-
-
--- A School which is devoted to a specific 
--- subject area, which admits students that have a bachelor's degree, which 
--- grants masters and/or doctorate degrees, and which is part of a University.
-fun GraduateSchool : Class ;
-fun GraduateSchool_Class : SubClass GraduateSchool PostSecondarySchool ;
-
--- An Icon which depicts one or more quantities.
-fun GraphDiagram : Class ;
-fun GraphDiagram_Class : SubClass GraphDiagram Icon ;
-
--- FloweringPlants with green, narrow leaves that are 
--- used for lawns and Fields. Grass includes any plant of the family 
--- Gramineae, a widely distributed group of mostly annual and perennial 
--- herbs.
-fun Grass : Class ;
-fun Grass_Class : SubClass Grass FloweringPlant ;
-
--- Insects with enormous legs that are used for 
--- jumping.
-fun Grasshopper : Class ;
-fun Grasshopper_Class : SubClass Grasshopper Insect ;
-
--- A SecondaryColor that results from mixing Black and 
--- White.
-fun GrayColor : Ind SecondaryColor ;
-
-
--- An Indo_European language that is spoken in Greece.
-fun GreekLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
-
-
--- A SecondaryColor that resembles the color of fresh 
--- grass.
-fun Green : Ind SecondaryColor ;
-
-
--- Any instance of Expressing an acknowledgment of a 
--- person's arrival. Note that this class is not a subclass of ExpressingInLanguage, 
--- because it covers gestures of greeting, e.g. Waving and Nodding in certain 
--- circumstances.
-fun Greeting : Class ;
-fun Greeting_Class : SubClass Greeting Expressing ;
-
-fun GroceryProduce : Class ;
-fun GroceryProduce_Class : SubClass GroceryProduce (both FruitOrVegetable PlantAgriculturalProduct) ;
-
--- A RetailStore that sells Food, and perhaps 
--- other items as well.
-fun GroceryStore : Class ;
-fun GroceryStore_Class : SubClass GroceryStore RetailStore ;
-
--- Any Group which contains exclusively 
--- non_human members.
-fun GroupOfAnimals : Class ;
-fun GroupOfAnimals_Class : SubClass GroupOfAnimals Group ;
-
--- A StringInstrument that has six to twelve strings and 
--- is played by strumming with one hand while grasping frets with the other hand.
-fun Guitar : Class ;
-fun Guitar_Class : SubClass Guitar StringInstrument ;
-
--- A Weapon that shoots a Projectile.
-fun Gun : Class ;
-fun Gun_Class : SubClass Gun (both ProjectileLauncher Weapon) ;
-
-
--- The part of a Gun through which a Projectile travels 
--- when it is fired.
-fun GunBarrel : Class ;
-fun GunBarrel_Class : SubClass GunBarrel EngineeringComponent ;
-
--- A Mixture of potassium nitrate, sulfur, and 
--- charcoal that is used in ExplosiveDevices and to propell Projectiles 
--- in ProjectileWeapons.
-fun GunPowder : Class ;
-fun GunPowder_Class : SubClass GunPowder Mixture ;
-
--- The part of a Gun that is placed against the 
--- shoulder to absorb some of the recoil action when it is fired.
-fun GunStock : Class ;
-fun GunStock_Class : SubClass GunStock EngineeringComponent ;
-
--- The part of the Gun which is pulled in Shooting 
--- the Gun.
-fun GunTrigger : Class ;
-fun GunTrigger_Class : SubClass GunTrigger EngineeringComponent ;
-
--- A filament that covers part of the body of many 
--- Mammals.
-fun Hair : Class ;
-fun Hair_Class : SubClass Hair AnimalAnatomicalStructure ;
-
--- Removing (some or all) the Hair from the 
--- body of an Animal. Note that this covers shaving hair, cutting hair, 
--- pulling hair out by the roots, etc.
-fun HairRemoval : Class ;
-fun HairRemoval_Class : SubClass HairRemoval Removing ;
-
--- A Device that is used to pound Nails into a 
--- surface, where they become firmly attached.
-fun Hammer : Class ;
-fun Hammer_Class : SubClass Hammer Device ;
-
--- The grasping, fingered part of an upper limb of a 
--- Primate.
-fun Hand : Class ;
-fun Hand_Class : SubClass Hand (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Any Gesture which involves the Hands.
-fun HandGesture : Class ;
-fun HandGesture_Class : SubClass HandGesture Gesture ;
-
--- A hand grenade is a small explosive device
--- with a simple trigger mechanism, usually lasting a few seconds, designed
--- to be propelled by a human to its target.
-fun HandGrenade : Class ;
-fun HandGrenade_Class : SubClass HandGrenade Bomb ;
-
--- An attack in which a HandGrenade is 
--- employed as an explosive device for the purpose of Destruction.
--- A case in which a hand grenade is used as a blunt striking object in
--- an attack would not be in this class.
-fun HandgrenadeAttack : Class ;
-fun HandgrenadeAttack_Class : SubClass HandgrenadeAttack Bombing ;
-
--- The part or parts of an Artifact that are designed to be 
--- held with the Hands when the Artifact is used or carried.
-fun Handle : Class ;
-fun Handle_Class : SubClass Handle EngineeringComponent ;
-
--- The BodyPosition where one rests on one's hands 
--- and extends one's feet in the air.
-fun Handstand : Ind BodyPosition ;
-
-
--- Suffocating someone by suspending him/her from 
--- a rope wound around the neck until asphyxiation occurs.
-fun Hanging : Class ;
-fun Hanging_Class : SubClass Hanging Suffocating ;
-
--- The state of being happy, experiencing pleasure, 
--- joy or contentment. Note that this Attribute covers both active enjoyment, 
--- as well as the emotional state of simply being free from anxiety or fear.
-fun Happiness : Ind EmotionalState ;
-
-
--- Gathering the plant results of Agriculture.
-fun Harvesting : Class ;
-fun Harvesting_Class : SubClass Harvesting Removing ;
-
--- A type of Clothing that is worn on the Head. Note 
--- that this class covers caps, bonnets, berets, etc.
-fun Hat : Class ;
-fun Hat_Class : SubClass Hat Clothing ;
-
--- Grass that has been cut and cured for use as Fodder.
-fun Hay : Class ;
-fun Hay_Class : SubClass Hay Fodder ;
-
--- The part of the body containing the sense organs and 
--- the brain.
-fun Head : Class ;
-fun Head_Class : SubClass Head (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Pain that that is restricted to the Head.
-fun Headache : Ind EmotionalState ;
-
-
--- Any VehicleLight which is attached to the front 
--- of a Vehicle.
-fun Headlight : Class ;
-fun Headlight_Class : SubClass Headlight VehicleLight ;
-
--- The Organ that pumps Blood throughout the body.
-fun Heart : Class ;
-fun Heart_Class : SubClass Heart (both AnimalAnatomicalStructure Organ) ;
-
-
--- A Device whose purpose is Heating something, 
--- e.g. electric heaters, heat lamps, ovens, stoves, etc.
-fun HeatingDevice : Class ;
-fun HeatingDevice_Class : SubClass HeatingDevice Device ;
-
--- Any Aircraft with rapidly rotating wings.
-fun Helicopter : Class ;
-fun Helicopter_Class : SubClass Helicopter Aircraft ;
-
--- A Female Chicken.
-fun Hen : Class ;
-fun Hen_Chicken : SubClassC Hen Chicken (\H -> attribute(var Chicken Object ? H)(el SexAttribute Attribute ? Female));
-
-
--- A plant_eating Mammal.
-fun Herbivore : Class ;
-fun Herbivore_Class : SubClass Herbivore Mammal ;
-
--- A School which admits students who have 
--- graduated from a middle school and which normally covers the ninth through 
--- twelfth grades. A HighSchool confers a high school diploma.
-fun HighSchool : Class ;
-fun HighSchool_Class : SubClass HighSchool School ;
-
--- Robbing a Vehicle and then driving
--- or piloting it away.
-fun Hijacking : Class ;
-fun Hijacking_Class : SubClass Hijacking Robbing ;
-
--- An EngineeringComponent that connects one thing to 
--- another in such a way that they can move relative to one another.
-fun Hinge : Class ;
-fun Hinge_Class : SubClass Hinge EngineeringComponent ;
-
--- A FactualAccount that describes 
--- significant events that occurred in the past.
-fun HistoricalAccount : Class ;
-fun HistoricalAccount_Class : SubClass HistoricalAccount (both FactualText NarrativeText) ;
-
-
--- The recording and interpretation of past events involving 
--- Humans, including political events and cultural practices.
-fun History : Ind FieldOfStudy ;
-
-
--- HoistingDevice is a subclass of 
--- mechanical Devices that provide a mechanical advantage in lifting 
--- and lowering, e.g., by use of a block and tackle.
-fun HoistingDevice : Class ;
-fun HoistingDevice_Class : SubClass HoistingDevice MaterialHandlingEquipment ;
-
--- A large class of Devices whose purpose is to hold 
--- something else, i.e. be the instrument of a Keeping.
-fun Holder : Class ;
-fun Holder_Class : SubClass Holder Device ;
-
--- A stiff piece of Paper, usually folded over, which 
--- is sent to others in celebration of a Holiday.
-fun HolidayCard : Class ;
-fun HolidayCard_Class : SubClass HolidayCard ContentBearingObject ;
-
--- A Container for a Pistol. It is generally made of 
--- Leather and worn on either the shoulder or the waist.
-fun Holster : Class ;
-fun Holster_Class : SubClass Holster Container ;
-
--- The final BaseballBase which must be touched 
--- by the batter in order to achieve a BaseballRun.
-fun HomeBase : Class ;
-fun HomeBase_Class : SubClass HomeBase BaseballBase ;
-
--- An edible, sweet Substance produced by some species of 
--- Bees.
-fun Honey : Class ;
-fun Honey_Class : SubClass Honey (both AnimalSubstance Food) ;
-
-
--- The hard end of the Foot of a HoofedMammal.
-fun Hoof : Class ;
-fun Hoof_Class : SubClass Hoof (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A Hormone secreted by the ThyroidGland.
-fun HormoneTSH : Class ;
-fun HormoneTSH_Class : SubClass HormoneTSH Hormone ;
-
--- An outgrowth of Bone that is found on some 
--- HoofedMammals.
-fun Horn : Class ;
-fun Horn_Class : SubClass Horn Bone ;
-
--- A MusicalInstrument which is played by 
--- blowing it. It uses lip vibration to generates sound and control part 
--- of the pitch generation process as well.
-fun HornInstrument : Class ;
-fun HornInstrument_Class : SubClass HornInstrument MusicalInstrument ;
-
--- A domesticated HoofedMammal that is used for 
--- transportation and work.
-fun Horse : Class ;
-fun Horse_Class : SubClass Horse (both HoofedMammal Livestock) ;
-
-
--- Any instance of Carrying where the Animal is 
--- a Horse.
-fun HorseRiding : Class ;
-fun HorseRiding_Class : SubClass HorseRiding Carrying ;
-
--- A Building that serves at the place of business for
--- a HospitalOrganization.
-fun HospitalBuilding : Class ;
-fun HospitalBuilding_Class : SubClass HospitalBuilding TemporaryResidence ;
-
--- A CareOrganization where patients reside for a 
--- short period of time while they undergo treatment for a disease or disorder.
-fun HospitalOrganization : Class ;
-fun HospitalOrganization_Class : SubClass HospitalOrganization CareOrganization ;
-
--- An event in which one agent keeps another
--- against his or her will, in order to force it or a third agent to 
--- accede to some demand. The hostages are typically kept in the place
--- where they are first taken hostage, in contrast to a Kidnapping.
--- Hostage taking often involves a number of people (although it may be
--- just one), again, in contrast to a Kidnapping.
-fun HostageTaking : Class ;
-fun HostageTaking_Class : SubClass HostageTaking UnilateralGetting ;
-
--- A building which servers the purpose of a temporary
--- home for people, either for people who are travelling, or occasionally for
--- those who do not have another more permanent residence. A hotel is 
--- distinguished from a homeless shelter, or a residence loaned to a friend
--- in that the primary purpose of the building is to generate revenue in
--- return for the priviledge of staying there. Many hotels contains other 
--- facilities such as Restaurants or health clubs or even miscellaneous stores
--- although that is not their primary business or purpose.
-fun Hotel : Class ;
-fun Hotel_Class : SubClass Hotel (both Building TemporaryResidence) ;
-
-
--- A role occupied by a wife who manages the home 
--- while her husband earns income for the family.
-fun Housewife : Ind SocialRole ;
-
-
--- The class of Humans that are 18 years of 
--- age or older.
-fun HumanAdult : Class ;
-fun HumanAdult_Class : SubClass HumanAdult Human ;
-
--- A Human between birth and the first year of age.
-fun HumanBaby : Class ;
-fun HumanBaby_Class : SubClass HumanBaby HumanChild ;
-
--- A HumanYouth between birth and puberty, i.e a 
--- Human who is NonFullyFormed.
-fun HumanChild : Class ;
-fun HumanChild_Class : SubClass HumanChild HumanYouth ;
-
--- A Dead thing which was formerly a Human.
-fun HumanCorpse : Class ;
-fun HumanCorpse_Class : SubClass HumanCorpse OrganicObject ;
-
--- A Human who is owned by someone else.
-fun HumanSlave : Ind SocialRole ;
-
-
--- The class of Humans that are younger than 
--- 18 years of age.
-fun HumanYouth : Class ;
-fun HumanYouth_Class : SubClass HumanYouth Human ;
-
--- The Attribute that applies to Animals and Humans 
--- when they want Food.
-fun Hungry : Ind BiologicalAttribute ;
-
-
--- Any OrganicCompound that contains only Carbon 
--- and Hydrogen.
-fun Hydrocarbon : Class ;
-fun Hydrocarbon_Class : SubClass Hydrocarbon OrganicCompound ;
-
--- The part of the Brain lying below the 
--- thalamus that serves to regulate AutonomicProcesses.
-fun Hypothalamus : Class ;
-fun Hypothalamus_Class : SubClass Hypothalamus (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Water that has the PhysicalState of Solid.
-fun Ice : Class ;
-fun Ice_Water : SubClassC Ice Water (\ICE -> attribute(var Water Object ? ICE)(el PhysicalState Attribute ? Solid));
-
-
--- A proposition is Illegal just in case it is inconsistent 
--- with any proposition that is a Law.
-fun Illegal : Ind DeonticAttribute ;
-
-
--- Forming a mental picture of something which 
--- is not present.
-fun Imagining : Class ;
-fun Imagining_Class : SubClass Imagining PsychologicalProcess ;
-
--- Any Translocation by a Human from one Nation 
--- to another Nation where the person is not a citizen for the purpose of taking 
--- up residence.
-fun Immigrating : Class ;
-fun Immigrating_Class : SubClass Immigrating Translocation ;
-
--- The class of Confining processes where the detainee 
--- is put in Prison.
-fun Imprisoning : Class ;
-fun Imprisoning_Class : SubClass Imprisoning Confining ;
-
--- An attack in which an agent
--- uses a device which causes fire in order to destroy life or property.
-fun IncendiaryDeviceAttack : Class ;
-fun IncendiaryDeviceAttack_Class : SubClass IncendiaryDeviceAttack (both Combustion ViolentContest) ;
-
-
--- Moving one's body downward from a vertical position. 
--- Note that this class covers cases of leaning forward, as well as those of 
--- reclining backwards.
-fun Inclining : Class ;
-fun Inclining_Class : SubClass Inclining (both BodyMotion MotionDownward) ;
-
-
--- A Tax on annual income.
-fun IncomeTax : Class ;
-fun IncomeTax_Class : SubClass IncomeTax Tax ;
-
--- Pointing out a person, place or thing with 
--- one's hand or with an Artifact.
-fun Indicating : Class ;
-fun Indicating_Class : SubClass Indicating (both BodyMotion Communication) ;
-
-
--- Any Region which is enclosed by a Building.
-fun Indoors : Ind Region ;
-
-
--- A Building or part of a Building or group 
--- of Buildings whose purpose is to Manufacture something.
-fun IndustrialPlant : Class ;
-fun IndustrialPlant_Class : SubClass IndustrialPlant StationaryArtifact ;
-
--- The class of Collections of Corporations 
--- which are in the same line of business.
-fun Industry : Class ;
-fun Industry_Class : SubClass Industry Collection ;
-
--- Any DiseaseOrSyndrome that is caused by a 
--- Microorganism.
-fun InfectiousDisease : Class ;
-fun InfectiousDisease_Class : SubClass InfectiousDisease DiseaseOrSyndrome ;
-
--- An event in which an agent joins an
--- organization under false pretenses. The objective of such an act
--- is often to gather information helpful to a rival organization.
-fun Infiltration : Class ;
-fun Infiltration_Class : SubClass Infiltration JoiningAnOrganization ;
-
--- Any Quantity that is not limited or bounded 
--- in magnitude.
-fun InfiniteQuantity : Class ;
-fun InfiniteQuantity_Class : SubClass InfiniteQuantity Quantity ;
-
--- Any instance of Breathing where the breath is 
--- taken into the Lungs.
-fun Inhaling : Class ;
-fun Inhaling_Class : SubClass Inhaling Breathing ;
-
--- Any UnilateralGetting where the agent 
--- receives some part of the property of a person upon the death of the 
--- person.
-fun Inheriting : Class ;
-fun Inheriting_Class : SubClass Inheriting UnilateralGetting ;
-
--- Inside is a PositionalAttribute used to 
--- describe the relative location of one object or region to another 
--- region. For example, (orientation Virginia UnitedStates Inside).
-fun Inside : Ind PositionalAttribute ;
-
-
--- Putting a Device in a location and configuring 
--- the Device so that it can be used as intended after the installation.
-fun Installing : Class ;
-fun Installing_Class : SubClass Installing Putting ;
-
--- Music which is produced (at least in part) 
--- by a MusicalInstrument.
-fun InstrumentalMusic : Class ;
-fun InstrumentalMusic_Class : SubClass InstrumentalMusic Music ;
-
--- A Hormone secreted by the Pancreas that is used 
--- to regulate the metabolism of Carbohydrates.
-fun Insulin : Class ;
-fun Insulin_Class : SubClass Insulin Hormone ;
-
--- A CommercialAgent that insures Agents 
--- for the payment of a premium or premiums.
-fun InsuranceCompany : Class ;
-fun InsuranceCompany_Class : SubClass InsuranceCompany CommercialAgent ;
-
--- A Certificate that states the terms of an 
--- insurance contract.
-fun InsurancePolicy : Class ;
-fun InsurancePolicy_Class : SubClass InsurancePolicy Certificate ;
-
--- The FieldOfStudy of designing the interiors of 
--- Buildings.
-fun InteriorDesign : Ind FieldOfStudy ;
-
-
--- InternalCombustionEngine is 
--- the subclass of Engines in which a heat reaction that occurs inside 
--- the engine is transformed into mechanical energy.
-fun InternalCombustionEngine : Class ;
-fun InternalCombustionEngine_Class : SubClass InternalCombustionEngine Engine ;
-
--- An Attribute that applies to Propositions 
--- that express Laws concerning the relations between Nations.
-fun InternationalLaw : Ind DeonticAttribute ;
-
-
--- A FormalMeeting whose purpose is to acquire 
--- information from the interviewee that can be used in a media report.
-fun Interviewing : Class ;
-fun Interviewing_Class : SubClass Interviewing FormalMeeting ;
-
--- A BodyVessel which connects the Stomach to 
--- the anus and which is used in digesting Food.
-fun Intestine : Class ;
-fun Intestine_Class : SubClass Intestine (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- An item of value purchased for income or capital appreciation.
-fun Investment : Class ;
-fun Investment_Class : SubClass Investment FinancialAsset ;
-
--- An electronically charged Atom or Molecule. In 
--- other words, a PureSubstance that has lost one of its Electrons.
-fun Ion : Class ;
-fun Ion_Class : SubClass Ion PureSubstance ;
-
--- A very hard substance that makes up the tusks of 
--- elephants and walruses.
-fun Ivory : Class ;
-fun Ivory_Class : SubClass Ivory Bone ;
-
--- Any Position which involves cleaning a Building 
--- or some of the Rooms within a Building.
-fun Janitor : Class ;
-fun Janitor_Class : SubClass Janitor UnskilledOccupation ;
-
--- The Profession of being a news reporter, i.e. 
--- investigating and reporting, in a publication or broadcast program, current 
--- events.
-fun Journalist : Class ;
-fun Journalist_Class : SubClass Journalist Profession ;
-
--- An Attorney who has the power of deciding legal cases.
-fun Judge : Class ;
-fun Judge_Class : SubClass Judge (both Attorney GovernmentOfficer) ;
-
-
--- Any MotionUpward which is done by one's body 
--- and which results in a situation where one's feet are unsupported.
-fun Jumping : Class ;
-fun Jumping_Class : SubClass Jumping (both BodyMotion MotionUpward) ;
-
-
--- The class of PostSecondarySchools that 
--- offer an associate's degree and do not offer a bachelor's degree.
-fun JuniorCollege : Class ;
-fun JuniorCollege_Class : SubClass JuniorCollege PostSecondarySchool ;
-
--- A GroupOfPeople who are given the duty of rendering a 
--- verdict with respect to a LegalAction.
-fun Jury : Class ;
-fun Jury_Class : SubClass Jury GroupOfPeople ;
-
--- A Device which opens and closes a Lock.
-fun Key : Class ;
-fun Key_Class : SubClass Key SecurityDevice ;
-
--- Any instance of Impelling where the instrument 
--- is a Foot of the agent.
-fun Kicking : Class ;
-fun Kicking_Class : SubClass Kicking Impelling ;
-
--- An event in which one agent keeps another
--- against his or her will, in order to force it or a third agent to 
--- accede to some demand. The kidnapped party is normally removed from
--- the location where first attacked. In contrast to a HotageTaking,
--- a kidnapping normally involves an attack on one, or a very small 
--- number of people, such as a couple.
-fun Kidnapping : Class ;
-fun Kidnapping_Class : SubClass Kidnapping Robbing ;
-
--- An Organ that separates urine from other 
--- BodySubstances and passes it to the bladder.
-fun Kidney : Class ;
-fun Kidney_Class : SubClass Kidney (both AnimalAnatomicalStructure Organ) ;
-
-
--- The class of Touching processes where the lips 
--- of two persons are brought into contact with each other.
-fun Kissing : Class ;
-fun Kissing_Class : SubClass Kissing Touching ;
-
--- A Room intended for Cooking.
-fun Kitchen : Class ;
-fun Kitchen_Class : SubClass Kitchen Room ;
-
--- The joint in the Leg connecting the tibia and fibula 
--- with the femur.
-fun Knee : Class ;
-fun Knee_Class : SubClass Knee BodyJoint ;
-
--- The BodyPosition of resting one's weight on one's 
--- Knees.
-fun Kneeling : Ind BodyPosition ;
-
-
--- A sharp object used for cutting. The object must 
--- have at least single blade or major protrusion which may be sharp at its 
--- end as well. It may be sharp on both sides, or just one. Unlike an awl 
--- it has a sharp edge rather than a point. Unlike scissors, it is a single 
--- blade without additional articulated parts. Unlike an axe, a knife is 
--- well_designed for slicing rather than chopping, although a heavy knife 
--- such as a broadsword can also be used for chopping, whereas a non_knife is 
--- not well designed for slicing meat for example. A knife can be small like 
--- a pocket knife, or large like a two_handed broadsword. A knife may also 
--- include other protrusions such as in the split swords and trident_like 
--- objects (that also possess a long sharp edge) in Chinese weaponry.
-fun Knife : Class ;
-fun Knife_Class : SubClass Knife CuttingDevice ;
-
--- An attack in which a knife is used.
-fun KnifeAttack : Class ;
-fun KnifeAttack_Class : SubClass KnifeAttack ViolentContest ;
-
--- A SocialRole that is assigned by the 
--- UnitedKingdom to persons for reasons of personal merit.
-fun Knight : Ind SocialRole ;
-
-
--- Any joint in a Finger.
-fun Knuckle : Class ;
-fun Knuckle_Class : SubClass Knuckle BodyJoint ;
-
--- A very brief Text that is attached to an Object 
--- and that indicates very specific information about the Object, e.g. its 
--- name, its monetaryValue, etc.
-fun Label : Class ;
-fun Label_Class : SubClass Label Text ;
-
--- A Process in which some or all of the 
--- employees of an Organization refuse to work until their pay is 
--- increased or their working conditions are improved in some respect.
-fun LaborStriking : Class ;
-fun LaborStriking_Class : SubClass LaborStriking OrganizationalProcess ;
-
--- A Building, Room or suite of Rooms where 
--- scientific research, i.e. Experimenting, is conducted.
-fun Laboratory : Class ;
-fun Laboratory_Class : SubClass Laboratory StationaryArtifact ;
-
--- An Artifact which consists of two parallel supports 
--- connected by a series of rungs which can be used to ascend or descend.
-fun Ladder : Class ;
-fun Ladder_Class : SubClass Ladder Artifact ;
-
--- A young Sheep, i.e. a Sheep that is NonFullyFormed.
-fun Lamb : Class ;
-fun Lamb_Sheep : SubClassC Lamb Sheep (\L -> attribute(var Sheep Object ? L)(el DevelopmentalAttribute Attribute ? NonFullyFormed));
-
-
--- Any instance of Transportation where the 
--- instrument is a LandVehicle.
-fun LandTransportation : Class ;
-fun LandTransportation_Class : SubClass LandTransportation Transportation ;
-
--- LandVehicle is the class of TransportationDevices that travel on 
--- land. The two main types of LandVehicle are RoadVehicle and 
--- RailVehicle. Note that this includes vehicles which travel on any solid
--- surface, including a frozen body of water or snow.
-fun LandVehicle : Class ;
-fun LandVehicle_Class : SubClass LandVehicle Vehicle ;
-
--- Any instance of Translocation which ends up on something other 
--- than an AtmosphericRegion and which has an instance of Flying as a subProcess.
-fun Landing : Class ;
-fun Landing_Class : SubClass Landing Translocation ;
-
--- (LastFn ?LIST) returns the last item in the 
--- List ?LIST. For example, (LastFn (ListFn Monday Tuesday 
--- Wednesday)) would return the value of Wednesday.
-fun LastFn : El List -> Ind Entity ;
-
-
--- A Language that was spoken in ancient Rome and 
--- is still the official language of the Vatican.
-fun LatinLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
-
-
--- Expressing happiness by Vocalizing in a 
--- certain way.
-fun Laughing : Class ;
-fun Laughing_Class : SubClass Laughing (both FacialExpression Vocalizing) ;
-
-
--- Any RegulatoryProcess where the agent is either 
--- a PoliceOrganization or a member of a PoliceOrganization. This covers 
--- everything from issuing a traffic ticket to arresting someone on suspicion of having 
--- committed a Murder.
-fun LawEnforcement : Class ;
-fun LawEnforcement_Class : SubClass LawEnforcement (both PoliticalProcess RegulatoryProcess) ;
-
-
--- A CultivatedLandArea and Field 
--- containing mowed Grass.
-fun Lawn : Class ;
-fun Lawn_Class : SubClass Lawn (both CultivatedLandArea Field) ;
-
-
--- Any OrganismProcess where an Egg is expelled 
--- from the body of a Animal, e.g. a Bird or Reptile laying eggs.
-fun LayingEggs : Class ;
-fun LayingEggs_Class : SubClass LayingEggs OrganismProcess ;
-
--- A Fabric that is the result of tanning an Animal 
--- Skin.
-fun Leather : Class ;
-fun Leather_Class : SubClass Leather Fabric ;
-
--- The initial part of any instance of Translocation.
-fun Leaving : Class ;
-fun Leaving_Class : SubClass Leaving Translocation ;
-
--- Any instance of Speaking which is done before an 
--- assembled audience.
-fun Lecture : Class ;
-fun Lecture_Class : SubClass Lecture (both Demonstrating Speaking) ;
-
-
--- The lower Limbs of Primates.
-fun Leg : Class ;
-fun Leg_Class : SubClass Leg Limb ;
-
--- A proposition is Legal just in case it is not inconsistent 
--- with any proposition that is a Law.
-fun Legal : Ind DeonticAttribute ;
-
-
--- Asking that a higher court reconsider a LegalDecision 
--- of a lower court.
-fun LegalAppeal : Class ;
-fun LegalAppeal_Class : SubClass LegalAppeal (both JudicialProcess Requesting) ;
-
-
--- Any LegalDecision where the defendant is found 
--- not to be guilty of the crime for which the corresponding trial was held.
-fun LegalAquittal : Class ;
-fun LegalAquittal_Class : SubClass LegalAquittal LegalDecision ;
-
--- Any LegalDecision which gives to the plaintiff of 
--- the corresponding LegalAction some amount of monetary compensation.
-fun LegalAward : Class ;
-fun LegalAward_Class : SubClass LegalAward LegalDecision ;
-
--- Any LegalAction of which a Government is 
--- the agent.
-fun LegalCharge : Class ;
-fun LegalCharge_Class : SubClass LegalCharge LegalAction ;
-
--- Any LegalDecision where the defendant is found 
--- guilty of the crime for which the corresponding trial was held.
-fun LegalConviction : Class ;
-fun LegalConviction_Class : SubClass LegalConviction LegalDecision ;
-
--- Any LegalDecision where the LegalAction of 
--- the plaintiff is dismissed by the court, e.g. for lack of merit.
-fun LegalDismissal : Class ;
-fun LegalDismissal_Class : SubClass LegalDismissal LegalDecision ;
-
--- An Argument that explains the reasoning behind a 
--- LegalDecision.
-fun LegalOpinion : Class ;
-fun LegalOpinion_Class : SubClass LegalOpinion Argument ;
-
--- An official order that a person appear at a 
--- CourtRoom at a specified time.
-fun LegalSummons : Class ;
-fun LegalSummons_Class : SubClass LegalSummons (both JudicialProcess Ordering) ;
-
-
--- The Attribute of being a proposed law, 
--- i.e. being under consideration by a legislative body of Government.
-fun LegislativeBill : Ind DeonticAttribute ;
-
-
--- LegislativeOrganization is the 
--- class of Organizations that have as their main purpose the passing of 
--- laws or regulations.
-fun LegislativeOrganization : Class ;
-fun LegislativeOrganization_Class : SubClass LegislativeOrganization Organization ;
-
--- A citrus FruitOrVegetable that has a Yellow skin 
--- and a tart, acidic flavor.
-fun LemonFruit : Class ;
-fun LemonFruit_Class : SubClass LemonFruit (both Food FruitOrVegetable) ;
-
-
--- Increasing the length of something.
-fun Lengthening : Class ;
-fun Lengthening_Class : SubClass Lengthening Increasing ;
-
--- An OpticalDevice which consists of a polished, 
--- transparent piece of glass or plastic. Lenses are often part of 
--- other OpticalDevices.
-fun Lens : Class ;
-fun Lens_Class : SubClass Lens OpticalDevice ;
-
--- Any AbnormalAnatomicalStructure which is the result of 
--- an Injuring and which is found on the surface of an Organ.
-fun Lesion : Class ;
-fun Lesion_Class : SubClass Lesion AbnormalAnatomicalStructure ;
-
--- A brief message which is intended to be mailed 
--- to a person or Organization.
-fun Letter : Class ;
-fun Letter_Class : SubClass Letter FactualText ;
-
--- An attack with a bomb that is
--- concealed in a letter or package, which is typically designed to 
--- explode upon opening.
-fun LetterBombAttack : Class ;
-fun LetterBombAttack_Class : SubClass LetterBombAttack Bombing ;
-
--- The ShapeAttribute of Objects where no 
--- part of the top of the Object is higher than any other part of the 
--- top.
-fun LevelShape : Ind ShapeAttribute ;
-
-
--- An EducationalOrganization which is a repository 
--- of Texts which have been classified for efficient retrieval.
-fun Library : Class ;
-fun Library_Class : SubClass Library EducationalOrganization ;
-
--- License is the subclass of Certificates that 
--- are granted by a GovernmentOrganization and that authorize the performance 
--- of a kind of action, e.g., driving, exporting, travelling to another 
--- country, etc.
-fun License : Class ;
-fun License_Class : SubClass License Certificate ;
-
--- The class of Touching processes where the Tongue 
--- is brought into contact with something else.
-fun Licking : Class ;
-fun Licking_Class : SubClass Licking Touching ;
-
--- A commissioned MilitaryOfficer.
-fun Lieutenant : Class ;
-fun Lieutenant_Class : SubClass Lieutenant MilitaryOfficer ;
-
--- The second_in_command of some Governments 
--- of AmericanStates.
-fun LieutenantGovernor : Ind Position ;
-
-
--- Any Device whose purpose is to be a source of 
--- visible light.
-fun LightFixture : Class ;
-fun LightFixture_Class : SubClass LightFixture Device ;
-
--- A WeatherProcess which involves a significant 
--- release of electricity from a Cloud.
-fun Lightning : Class ;
-fun Lightning_Class : SubClass Lightning (both Radiating WeatherProcess) ;
-
-
--- A FloweringPlant that has large clusters of 
--- aromatic flowers.
-fun Lilac : Class ;
-fun Lilac_Class : SubClass Lilac FloweringPlant ;
-
--- Any of the limbs of a Vertebrate.
--- Animal Appendages with joints that are used for movement 
--- and grasping.
-fun Limb : Class ;
-fun Limb_Class : SubClass Limb (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A ShapeAttribute that applies to 
--- Collections and indicates that all of the members of the Collection 
--- are arrayed in a line, i.e. each member (except possibly the first) is 
--- behind or to the side of exactly one other member.
-fun LineFormation : Ind ShapeAttribute ;
-
-
--- Any Attribute that is 
--- expressed by a Language or class of Languages.
-fun LinguisticAttribute : Class ;
-fun LinguisticAttribute_Class : SubClass LinguisticAttribute InternalAttribute ;
-
--- The field of linguistics.
-fun Linguistics : Ind SocialScience ;
-
-
--- Folds of Tissue surrounding the mouths of some 
--- Vertebrates.
-fun Lip : Class ;
-fun Lip_Class : SubClass Lip (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- LiquefiedPetroleumGas is a 
--- compressed hydrocarbon gas.
-fun LiquefiedPetroleumGas : Class ;
-fun LiquefiedPetroleumGas_Class : SubClass LiquefiedPetroleumGas (both FossilFuel RefinedPetroleumProduct) ;
-
-
--- Any BodySubstance which is Liquid 
--- under normal circumstances.
-fun LiquidBodySubstance : Class ;
-fun LiquidBodySubstance_Class : SubClass LiquidBodySubstance BodySubstance ;
-
--- A UnitOfMeasure used in preparing AlcoholicBeverages.
-fun LiquorShot : Ind UnitOfVolume ;
-
-
--- The ability to read and write. Someone who 
--- has this Attribute is able to read and write.
-fun LiteracyAttribute : Ind TraitAttribute ;
-
-
--- The study of literature, i.e. instances of FictionalText 
--- that are regarded as having special merit.
-fun Literature : Ind FieldOfStudy ;
-
-
--- An Organ that secretes bile and serves metabolic 
--- functions.
-fun Liver : Class ;
-fun Liver_Class : SubClass Liver (both AnimalAnatomicalStructure Organ) ;
-
-
--- Livestock is the class of live animals 
--- raised as AgriculturalProducts.
-fun Livestock : Class ;
-fun Livestock_Class : SubClass Livestock (both AnimalAgriculturalProduct DomesticAnimal) ;
-
-
--- Inserting ammunition into a ProjectileWeapon 
--- in such a way that the ammunition can be fired by the weapon.
-fun LoadingWeapon : Class ;
-fun LoadingWeapon_Class : SubClass LoadingWeapon Inserting ;
-
--- A Device, which, through a Key or a combination prevents 
--- access to a Container or StationaryArtifact.
-fun Lock : Class ;
-fun Lock_Class : SubClass Lock SecurityDevice ;
-
--- A three dimensional object that
--- has two thin dimensions and one markedly larger one.
-fun LongAndThin : Ind ShapeAttribute ;
-
-
--- The process of transitioning from a state 
--- of being Awake to a state of being Unconscious.
-fun LosingConsciousness : Class ;
-fun LosingConsciousness_Class : SubClass LosingConsciousness PsychologicalProcess ;
-
--- The ContestAttribute that applies to a Contest 
--- participant who has lost the Contest.
-fun Lost : Ind ContestAttribute ;
-
-
--- A respiratory organ of Vertebrates. Its function is 
--- to furnish the blood with oxygen and to remove carbon dioxide.
-fun Lung : Class ;
-fun Lung_Class : SubClass Lung (both AnimalAnatomicalStructure Organ) ;
-
-
--- The BodyMotion of moving from a Sitting 
--- to a Prostrate position.
-fun LyingDown : Class ;
-fun LyingDown_Class : SubClass LyingDown (both BodyMotion MotionDownward) ;
-
-
--- A lynching is a form of Killing conducted under 
--- a thin guise of legitimacy by a vigilante group. It may be a purge of an 
--- individual from the group who is perceived to have gone astray, or it may 
--- be the summary execution of an individual outside the group that the group 
--- has determined has violated some law or code, either of the group, or the 
--- larger society. A lynching is distinguished from a legal execution in 
--- that the laws of a government are not followed in carrying out the 
--- killing. A lynching is distinguished from a murder in that there is the 
--- pretense of some process carried out by a group in the name of their own 
--- group or a higher power.
-fun Lynching : Class ;
-fun Lynching_Class : SubClass Lynching Killing ;
-
--- Any Text which is intended to be sung.
-fun Lyrics : Class ;
-fun Lyrics_Class : SubClass Lyrics Text ;
-
--- A Periodical that is softbound and printed on 
--- glossy paper.
-fun Magazine : Class ;
-fun Magazine_Class : SubClass Magazine Periodical ;
-
--- Any instance of RadiatingElectromagnetic which 
--- involves the attraction of Iron.
-fun Magnetism : Class ;
-fun Magnetism_Class : SubClass Magnetism RadiatingElectromagnetic ;
-
--- Any ServicePosition where various needs of a person 
--- or family are served over a long period of time. Note that these Positions 
--- are, by definition, filled only by Women.
-fun Maid : Class ;
-fun Maid_Class : SubClass Maid ServicePosition ;
-
--- A Container whose purpose is to receive items 
--- that are mailed to the address associated with the Mailbox.
-fun Mailbox : Class ;
-fun Mailbox_Class : SubClass Mailbox Container ;
-
--- Any instance of Transfer where a postal system is 
--- used to move the patient, either a letter or a package.
-fun Mailing : Class ;
-fun Mailing_Class : SubClass Mailing Transfer ;
-
--- A CerealGrain which is found on long ears of a Plant 
--- native to the Americas.
-fun MaizeGrain : Class ;
-fun MaizeGrain_Class : SubClass MaizeGrain (both CerealGrain GroceryProduce) ;
-
-
--- A MilitaryGeneral that ranks above a 
--- BrigadierGeneral.
-fun MajorGeneral : Class ;
-fun MajorGeneral_Class : SubClass MajorGeneral MilitaryGeneral ;
-
--- Indicates that a Device is not performing 
--- its intended function.
-fun Malfunctioning : Ind DeviceAttribute ;
-
-
--- A pipe which has several outlets for other pipes that flow 
--- into or out of it.
-fun Manifold : Class ;
-fun Manifold_Class : SubClass Manifold EngineeringComponent ;
-
--- Any Position which involves manual 
--- work.
-fun ManualLabor : Class ;
-fun ManualLabor_Class : SubClass ManualLabor Position ;
-
--- An Icon which represents one or more GeographicAreas 
--- (or even the entire Earth).
-fun Map : Class ;
-fun Map_Class : SubClass Map Icon ;
-
--- A metamorphic Rock that is used in Constructing 
--- and in creating Sculptures.
-fun Marble : Class ;
-fun Marble_Class : SubClass Marble Rock ;
-
--- An area, building, or set of buildings
--- where FinancialTransactions are intended to take place. There should
--- be more than one owner or renter of space or buildings within the
--- marketplace.
-fun Marketplace : Class ;
-fun Marketplace_Class : SubClass Marketplace GeographicArea ;
-
--- A Contract between a married couple 
--- about how assets owned by the couple will be distributed in the event 
--- that the couple is divorced.
-fun MarriageContract : Ind DeonticAttribute ;
-
-
--- A PoliceOfficer whose responsibility is to enforce 
--- the decisions of a law court.
-fun Marshal : Class ;
-fun Marshal_Class : SubClass Marshal PoliceOfficer ;
-
--- A subclass of TherapeuticProcess which involves 
--- kneading Muscles in such a way that tension is relieved, blood circulation 
--- is increased, etc.
-fun Massaging : Class ;
-fun Massaging_Class : SubClass Massaging (both TherapeuticProcess Touching) ;
-
-
--- A large pole in the center of a WaterVehicle which is 
--- used to support a sail.
-fun Mast : Class ;
-fun Mast_Class : SubClass Mast Artifact ;
-
--- A small stick of carboard or wood that is treated 
--- with chemicals that can be easily ignited with friction. MatchDevices are 
--- used for starting fires.
-fun MatchDevice : Class ;
-fun MatchDevice_Class : SubClass MatchDevice Device ;
-
--- MaterialHandlingEquipment 
--- is a class of Devices that are equipment used for handling goods and 
--- supplies more efficiently or safely. Examples are cranes, hoists, 
--- forklifts, conveyors, racks, etc.
-fun MaterialHandlingEquipment : Class ;
-fun MaterialHandlingEquipment_Class : SubClass MaterialHandlingEquipment Device ;
-
--- The FieldOfStudy dealing with quantities and their 
--- relations to one another.
-fun Mathematics : Ind FieldOfStudy ;
-
-
--- Any process of sexual intercourse between two Humans 
--- or Animals.
-fun Mating : Class ;
-fun Mating_Class : SubClass Mating OrganismProcess ;
-
--- The head of the Government of a City.
-fun Mayor : Ind Position ;
-
-
--- MediaOrganization is the subclass 
--- of Organization for groups whose primary purpose is the production or 
--- dissemination of media content. For organizations that physically enable 
--- Communication, see CommunicationOrganization.
-fun MediaOrganization : Class ;
-fun MediaOrganization_Class : SubClass MediaOrganization Organization ;
-
--- A CareOrganization which provides medical care 
--- on an out_patient basis only, i.e. there are no rooms where patients may take 
--- up residence for a period of time while they receive care.
-fun MedicalClinic : Class ;
-fun MedicalClinic_Class : SubClass MedicalClinic CareOrganization ;
-
-fun MedicalClinicBuilding : Class ;
-fun MedicalClinicBuilding_Class : SubClass MedicalClinicBuilding Building ;
--- The Profession of being a medical doctor, 
--- i.e. having attended medical school and being licensed to practice medicine.
-fun MedicalDoctor : Class ;
-
-
--- A GraduateSchool that is devoted to 
--- MedicalScience and that grants the degree of doctor of medicine.
-fun MedicalSchool : Class ;
-fun MedicalSchool_Class : SubClass MedicalSchool GraduateSchool ;
-
--- The field of medicine.
-fun MedicalScience : Ind Science ;
-
-
--- Any BiologicallyActiveSubstance which has a 
--- therapeutic effect under certain conditions.
-fun Medicine : Class ;
-fun Medicine_Class : SubClass Medicine BiologicallyActiveSubstance ;
-
--- The process of committing a Text to memory.
-fun Memorizing : Class ;
-fun Memorizing_Class : SubClass Memorizing Learning ;
-
--- A periodic discharge of Blood and other 
--- BiologicalSubstances by Females that is part of a readjustment of 
--- the uterus.
-fun Menstruation : Class ;
-fun Menstruation_Class : SubClass Menstruation OrganOrTissueProcess ;
-
--- A FactualText which is intended to be delivered to 
--- and read by a Human, GroupOfPeople or Organization.
-fun Message : Class ;
-fun Message_Class : SubClass Message FactualText ;
-
--- Any instance of Transfer where a Message is the 
--- patient.
-fun Messaging : Class ;
-fun Messaging_Class : SubClass Messaging Transfer ;
-
--- A Mixture of two or more Metals, and possibly 
--- nonmetallic elements as well. For example, steel is an alloy containing iron 
--- and manganese.
-fun MetallicAlloy : Class ;
-fun MetallicAlloy_Class : SubClass MetallicAlloy Mixture ;
-
--- Any Meteoroid that leaves traces on the surface 
--- of Earth.
-fun Meteorite : Class ;
-fun Meteorite_Class : SubClass Meteorite Meteoroid ;
-
--- Any AstronomicalBody that breaks through the 
--- Atmosphere of Earth.
-fun Meteoroid : Class ;
-fun Meteoroid_Class : SubClass Meteoroid AstronomicalBody ;
-
--- MetricTon is a UnitOfMeasure that represents 
--- a weight of 2,205 PoundMass.
-fun MetricTon : Ind UnitOfMass ;
-
-
--- A CommunicationDevice that converts sound 
--- into electrical energy.
-fun Microphone : Class ;
-fun Microphone_Class : SubClass Microphone (both CommunicationDevice ElectricDevice) ;
-
-
--- An OpticalDevice with a stand and a focus, which is 
--- used for magnifying the images of things that are placed in the stand.
-fun Microscope : Class ;
-fun Microscope_Class : SubClass Microscope OpticalDevice ;
-
--- A militant is someone who is not 
--- officially authorized by a government to engage in combat, but who
--- does so on behalf of a PoliticalOrganization.
-fun Militant : Ind SocialRole ;
-
-
--- Any Aircraft which is made for a 
--- MilitaryOrganization. This includes fighters, Bombers, attack 
--- helicopters, etc.
-fun MilitaryAircraft : Class ;
-fun MilitaryAircraft_Class : SubClass MilitaryAircraft (both Aircraft MilitaryVehicle) ;
-
-
--- Any Artifact which is made for a 
--- MilitaryOrganization.
-fun MilitaryArtifact : Class ;
-fun MilitaryArtifact_Class : SubClass MilitaryArtifact Artifact ;
-
--- Any MilitaryUnit with the rank of 
--- corps.
-fun MilitaryCorps : Class ;
-fun MilitaryCorps_Class : SubClass MilitaryCorps MilitaryUnit ;
-
--- A GeographicArea along which opposing military 
--- forces confront one another in a Battle.
-fun MilitaryFront : Class ;
-fun MilitaryFront_Class : SubClass MilitaryFront GeographicArea ;
-
--- MilitaryGeneral is a generic Position 
--- that indicates holding (or having held) the rank of General in some 
--- military force. An indicator that someone uses the title, without 
--- committing to his or her exact rank or military affiliation.
-fun MilitaryGeneral : Class ;
-fun MilitaryGeneral_Class : SubClass MilitaryGeneral MilitaryOfficer ;
-
--- Any Process by a MilitaryOrganization 
--- which involves moving through enemy positions without detection by the enemy.
-fun MilitaryInfiltration : Class ;
-fun MilitaryInfiltration_Class : SubClass MilitaryInfiltration (both MilitaryProcess Translocation) ;
-
-
--- A StationaryArtifact consisting of grounds 
--- and Buildings that is intended to be used by a MilitaryOrganization.
-fun MilitaryInstallation : Class ;
-fun MilitaryInstallation_Class : SubClass MilitaryInstallation (both MilitaryArtifact StationaryArtifact) ;
-
-
--- Any Maneuver which takes place in a Battle 
--- and which is intended to secure a tactical advantage for one of the agents of 
--- the Battle.
-fun MilitaryManeuver : Class ;
-fun MilitaryManeuver_Class : SubClass MilitaryManeuver Maneuver ;
-
--- The class of Soldiers who have authority or command.
-fun MilitaryOfficer : Class ;
-fun MilitaryOfficer_Class : SubClass MilitaryOfficer Soldier ;
-
--- Someone who is a member of a
--- ModernMilitaryOrganization.
-fun MilitaryPerson : Ind OccupationalRole ;
-
-
--- An enlisted Soldier of the lowest rank.
-fun MilitaryPrivate : Class ;
-fun MilitaryPrivate_Class : SubClass MilitaryPrivate Soldier ;
-
--- MilitaryReserveForce is the subclass 
--- of MilitaryOrganizations that consist of forces trained in military 
--- procedures and activities, which are subject to being called to active duty 
--- if needed.
-fun MilitaryReserveForce : Class ;
-fun MilitaryReserveForce_Class : SubClass MilitaryReserveForce MilitaryOrganization ;
-
--- The study of the principles of war.
-fun MilitaryScience : Ind FieldOfStudy ;
-
-
--- A branch of the armed forces of a Nation. 
--- For example, there are five military services in the United States, the army, 
--- the navy, the air force, the marines, and the coast guard.
-fun MilitaryService : Class ;
-fun MilitaryService_Class : SubClass MilitaryService MilitaryOrganization ;
-
--- Any Ship which is made for a MilitaryOrganization. 
--- This includes aircraft carriers, destroyers, etc.
-fun MilitaryShip : Class ;
-fun MilitaryShip_Class : SubClass MilitaryShip (both MilitaryWaterVehicle Ship) ;
-
-
--- Any MilitaryUnit with the rank of squad.
-fun MilitarySquad : Class ;
-fun MilitarySquad_Class : SubClass MilitarySquad MilitaryUnit ;
-
--- Any MilitaryArtifact which is sold to a 
--- non_military customer.
-fun MilitarySurplus : Class ;
-fun MilitarySurplus_Class : SubClass MilitarySurplus MilitaryArtifact ;
-
--- A MilitaryVehicle that moves along the ground 
--- on treaded wheels and that contains a large cannon.
-fun MilitaryTank : Class ;
-fun MilitaryTank_Class : SubClass MilitaryTank (both ArtilleryGun (both MilitaryVehicle RoadVehicle)) ;
-
-
--- Any MilitaryOrganization that can be dispatched 
--- to an area of operations.
-fun MilitaryUnit : Class ;
-fun MilitaryUnit_Class : SubClass MilitaryUnit MilitaryOrganization ;
-
--- Any Vehicle which is intended to be 
--- used by a MilitaryOrganization. MilitaryVehicle Military platforms which are also vehicles. 
--- This would include things like airplanes and tanks, but exclude things like 
--- towed platforms.
-fun MilitaryVehicle : Class ;
-fun MilitaryVehicle_Class : SubClass MilitaryVehicle Vehicle ;
-
--- MilitaryWaterVehicle is the class of 
--- all WaterVehicle owned or leased for use by some MilitaryOrganization.
-fun MilitaryWaterVehicle : Class ;
-fun MilitaryWaterVehicle_Class : SubClass MilitaryWaterVehicle WaterVehicle ;
-
--- A nutritious BodySubstance produced by Mammals
--- that has evolved to provide nourishment for their offspring during
--- their initial period of life.
-fun Milk : Class ;
-fun Milk_Class : SubClass Milk (both Beverage LiquidBodySubstance) ;
-
-
--- The UnitOfDuration of 1000 years.
-fun MillenniumDuration : Ind UnitOfDuration ;
-
-
--- An construction in the earth from which Minerals are removed, 
--- either in pure form or as part of ores.
-fun Mine : Class ;
-fun Mine_Class : SubClass Mine StationaryArtifact ;
-
--- MiningProduct is the class of things 
--- that are produced from the earth for human use by mining or another form 
--- of extraction. This includes metal ores, petroleum, and other products.
-fun MiningProduct : Class ;
-fun MiningProduct_Class : SubClass MiningProduct Product ;
-
--- An Artifact with a surface that is capable of 
--- displaying an image by reflecting light.
-fun Mirror : Class ;
-fun Mirror_Class : SubClass Mirror Artifact ;
-
--- A Projectile which is propelled by a rocket and 
--- contains a Bomb.
-fun Missile : Class ;
-fun Missile_Class : SubClass Missile (both Projectile SelfPoweredDevice) ;
-
-
--- The class of ReligiousOrganizations 
--- that send members to foreign countries with the aim of coverting citizens 
--- of those countries to the beliefs of the ReligiousOrganization.
-fun MissionOrganization : Class ;
-fun MissionOrganization_Class : SubClass MissionOrganization ReligiousOrganization ;
-
--- Anything which serves to house people but 
--- which changes its location from time to time, e.g. a motorhome, a mobile 
--- home, a camp, etc. Note that MobileResidence is disjoint from Residence, 
--- because the latter is a subclass of StationaryArtifact.
-fun MobileResidence : Class ;
-fun MobileResidence_Class : SubClass MobileResidence Artifact ;
-
--- Any Position which involves posing for an 
--- artist or photographer.
-fun ModellingPosition : Class ;
-fun ModellingPosition_Class : SubClass ModellingPosition Position ;
-
--- Music which has a single part, i.e. Music 
--- which cannot be divided into two or more contemporaneous subProcesses which 
--- are also instances of Music.
-fun MonophonicMusic : Class ;
-fun MonophonicMusic_Class : SubClass MonophonicMusic Music ;
-
--- A StationaryArtifact whose purpose is to commemorate 
--- a person, animal or event.
-fun Monument : Class ;
-fun Monument_Class : SubClass Monument StationaryArtifact ;
-
--- The class of TimeIntervals that begin at Sunrise 
--- and end at noon.
-fun Morning : Class ;
-fun Morning_Class : SubClass Morning DayTime ;
-
--- A mortar is a bomb that is shot at a location. A 
--- howitzer is a weapon that fires mortars. The mortar may not include the 
--- propelling charge that provides the motive force for delivering it to its 
--- target, which distinguishes it from a rocket. A mortar is distinguished 
--- from other bombs in that it is propelled rather than exploded in place, or 
--- dropped, or propelled by human power.
-fun Mortar : Class ;
-fun Mortar_Class : SubClass Mortar Weapon ;
-
--- An attack in which a Mortar weapon is
--- used.
-fun MortarAttack : Class ;
-fun MortarAttack_Class : SubClass MortarAttack Bombing ;
-
--- A short_range Gun that is positioned on the ground 
--- at a high angle and fires explosive shells.
-fun MortarGun : Class ;
-fun MortarGun_Class : SubClass MortarGun ArtilleryGun ;
-
--- Nocturnal Insect with a large body and antennae.
-fun Moth : Class ;
-fun Moth_Class : SubClass Moth Insect ;
-
--- A discrete part of a MotionPicture which is set in 
--- the same time period and the same location.
-fun MotionPictureScene : Class ;
-fun MotionPictureScene_Class : SubClass MotionPictureScene MotionPicture ;
-
--- A unit of action in a MotionPicture, a 
--- MotionPictureShot is a sequence of images which are captured by a single 
--- camera without interruption.
-fun MotionPictureShot : Class ;
-fun MotionPictureShot_Class : SubClass MotionPictureShot MotionPicture ;
-
--- Motorcycle is the subclass of RoadVehicles 
--- that have two wheels one behind the other in the frame, upon which the rider 
--- sits on a seat above the engine.
-fun Motorcycle : Class ;
-fun Motorcycle_Class : SubClass Motorcycle SelfPoweredRoadVehicle ;
-
--- MotorizedRailwayCar is the subclass 
--- of railway cars that carry their own power source.
-fun MotorizedRailwayCar : Class ;
-fun MotorizedRailwayCar_Class : SubClass MotorizedRailwayCar (both PoweredVehicle RollingStock) ;
-
-
--- Any BodyMotion which results in being On 
--- something else.
-fun Mounting : Class ;
-fun Mounting_Class : SubClass Mounting BodyMotion ;
-
--- A Rodent that has a hairless tail like a rat but that 
--- is smaller than a Rat.
-fun Mouse : Class ;
-fun Mouse_Class : SubClass Mouse Rodent ;
-
--- Part of the Face, used for Ingesting Food 
--- and Vocalizing.
-fun Mouth : Class ;
-fun Mouth_Class : SubClass Mouth (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- The process of changing one's residence, i.e. 
--- moving one's belongs to a new home.
-fun MovingResidence : Class ;
-fun MovingResidence_Class : SubClass MovingResidence Transfer ;
-
--- The product of a Male Donkey and a Female 
--- Horse. Mules are always sterile.
-fun Mule : Class ;
-fun Mule_Class : SubClass Mule (both DomesticAnimal HoofedMammal) ;
-
-
--- Impermissible Killing of a Human.
-fun Murder : Class ;
-fun Murder_Class : SubClass Murder (both CriminalAction Killing) ;
-
-
--- An EducationalOrganization where Artifacts of historic, 
--- scientific or aesthetic value are collected and exhibited.
-fun Museum : Class ;
-fun Museum_Class : SubClass Museum EducationalOrganization ;
-
--- An AudioRecording of Music. Note that
--- many AudioRecordings contain music, so only an audio recording without
--- any music would be an instance of AudioRecording rather than of 
--- MusicRecording.
-fun MusicRecording : Class ;
-fun MusicRecording_Class : SubClass MusicRecording AudioRecording ;
-
--- A Text in a Language that represents a form
--- of music.
-fun MusicText : Class ;
-fun MusicText_Class : SubClass MusicText Text ;
-
--- A Text that expresses the notes, 
--- words, etc. of a song or other sort of Music.
-fun MusicalComposition : Class ;
-fun MusicalComposition_Class : SubClass MusicalComposition Text ;
-
--- A GroupOfPeople that create Music 
--- together.
-fun MusicalGroup : Class ;
-fun MusicalGroup_Class : SubClass MusicalGroup GroupOfPeople ;
-
--- A Performance that consists exclusively of 
--- Music, e.g. an orchestra playing a symphony to an assembled audience.
-fun MusicalPerformance : Class ;
-fun MusicalPerformance_Class : SubClass MusicalPerformance Performance ;
-
--- A Process of RadiatingSound where the
--- sound has a fundamental frequency and 0 or more partial frequencies
--- or unrelated transients or noise components that have a lesser
--- amplitude than the fundamental.
-fun MusicalTone : Class ;
-fun MusicalTone_Class : SubClass MusicalTone RadiatingSound ;
-
--- A Musician is someone who is capable of giving a MusicalPerformance.
--- This includes amateurs and others who don't formally make a living at the activity
--- or choose it as a profession.
-fun Musician : Ind SocialRole ;
-
-
--- A FictionalText whose central plot element is a 
--- crime of some sort, usually a murder.
-fun MysteryStory : Class ;
-fun MysteryStory_Class : SubClass MysteryStory FictionalText ;
-
--- An AttachingDevice which is a thin piece of metal, with 
--- or without a head, that is fastened with a Hammer.
-fun Nail : Class ;
-fun Nail_Class : SubClass Nail AttachingDevice ;
-
--- Any of the horny structures which are found 
--- on the DigitAppendages of Primates and other Animals. This includes
--- fingernails and toenails.
-fun NailDigit : Class ;
-fun NailDigit_Class : SubClass NailDigit AnimalAnatomicalStructure ;
-
--- Any Text that tells a story, whether true 
--- or false.
-fun NarrativeText : Class ;
-fun NarrativeText_Class : SubClass NarrativeText Text ;
-
--- A Flag that is the official flag of a Nation, 
--- e.g. the stars and stripes is the NationalFlag of the UnitedStates.
-fun NationalFlag : Class ;
-fun NationalFlag_Class : SubClass NationalFlag Flag ;
-
--- The German PoliticalParty headed by Adolf Hitler.
-fun NaziParty : Ind PoliticalParty ;
-
-
--- The part of the body that connects the Head to the 
--- rest of the body.
-fun Neck : Class ;
-fun Neck_Class : SubClass Neck (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A sweet, sticky liquid that is produced by Plants 
--- and that attracts Insects.
-fun Nectar : Class ;
-fun Nectar_Class : SubClass Nectar PlantSubstance ;
-
--- A Contest where each participant attempts to 
--- maximize his self_interest in a Promise that marks the end of the Contest.
-fun Negotiating : Class ;
-fun Negotiating_Class : SubClass Negotiating (both Contest LinguisticCommunication) ;
-
-
--- The Cells that make up a NervousSystem.
-fun NerveCell : Class ;
-fun NerveCell_Class : SubClass NerveCell (both AnimalAnatomicalStructure Cell) ;
-
-
--- Any structure which is created by nonhuman Animals for 
--- the purpose of giving birth to their offspring.
-fun Nest : Class ;
-fun Nest_Class : SubClass Nest CorpuscularObject ;
-
--- Any PsychologicalDysfunction which is not due 
--- to an organic impairment of the NervousSystem.
-fun Neurosis : Class ;
-fun Neurosis_Class : SubClass Neurosis PsychologicalDysfunction ;
-
--- The second and final part of the ChristianBible,
--- describing the life and teachings of Jesus Christ and the activities of his 
--- apostles.
-fun NewTestament : Class ;
-fun NewTestament_Class : SubClass NewTestament Book ;
-
--- A BroadcastProgram that is devoted to 
--- reporting the latest events in a city, region, nation or the world at 
--- large.
-fun NewsProgram : Class ;
-fun NewsProgram_Class : SubClass NewsProgram BroadcastProgram ;
-
--- The Profession of being a news reporter, i.e. 
--- investigating and reporting, in a publication or broadcast program, current 
--- events.
-fun NewsReporter : Ind Profession ;
-
-
--- A Periodical that is published on a daily or 
--- weekly basis, that contains Reports, and whose issues are printed on 
--- newsprint paper.
-fun Newspaper : Class ;
-fun Newspaper_Class : SubClass Newspaper Periodical ;
-
--- The class of TimeIntervals that begin at Sunset
--- and end at Sunrise.
-fun NightTime : Class ;
-fun NightTime_Class : SubClass NightTime TimeInterval ;
-
--- Moving the Head up and down or side to side 
--- to indicate approval or disapproval.
-fun Nodding : Class ;
-fun Nodding_Class : SubClass Nodding Gesture ;
-
--- Any Organization whose purpose is something 
--- other than making a profit.
-fun NonprofitOrganization : Class ;
-fun NonprofitOrganization_Class : SubClass NonprofitOrganization Organization ;
-
--- The class of DiseaseOrSyndromes that are not 
--- caused by a single type of Microorganism.
-fun NonspecificDisease : Class ;
-fun NonspecificDisease_Class : SubClass NonspecificDisease DiseaseOrSyndrome ;
-
--- The Organ of Smelling.
-fun Nose : Class ;
-fun Nose_Class : SubClass Nose (both AnimalAnatomicalStructure Organ) ;
-
-
--- Either of two BodyVessels that run through the Nose 
--- and connect it to the Throat.
-fun Nostril : Class ;
-fun Nostril_Class : SubClass Nostril (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- A FictionalText that is larger than a ShortStory 
--- and that is bound independently (i.e. it is a Book).
-fun Novel : Class ;
-fun Novel_Class : SubClass Novel (both Book FictionalText) ;
-
-
--- A NuclearFamily is a SocialUnit composed
--- of at least two and not more than three generations of familyRelations:
--- parents, their children, and possibly the parents' parents (children's
--- grandparents).
-fun NuclearFamily : Class ;
-fun NuclearFamily_Class : SubClass NuclearFamily (both FamilyGroup SocialUnit) ;
-
-
--- An ExplosiveDevice and RadioactiveWeapon
--- which achieves its effect by means of a critical mass of a radioactive substance.
-fun NuclearWeapon : Class ;
-fun NuclearWeapon_Class : SubClass NuclearWeapon (both ExplosiveDevice (both RadioactiveWeapon Weapon)) ;
-
-
--- Any WoodArtifact that is made from the Wood of an 
--- oak tree.
-fun OakWood : Class ;
-fun OakWood_Class : SubClass OakWood WoodArtifact ;
-
--- A Device consisting of a flat, broad surface attached to a 
--- handle that is used as an instrument in Rowing.
-fun Oar : Class ;
-fun Oar_Class : SubClass Oar TransportationDevice ;
-
--- Any TwoDimensionalAngle that has an 
--- angularMeasure that is greater than 90 AngularDegrees.
-fun ObliqueAngle : Class ;
-fun ObliqueAngle_Class : SubClass ObliqueAngle TwoDimensionalAngle ;
-
--- (OccupationFn ?PROCESS) denotes the 
--- subclass of ?PROCESS where instances of ?PROCESS are performed as 
--- one's occupation, i.e. as part of a FinancialTransaction where one 
--- earns money for the performance of ?PROCESS.
-fun OccupationFn : El IntentionalProcess -> Desc FinancialTransaction ;
-
-
--- A Role of a Human in a OrganizationalProcess.
-fun OccupationalRole : Class ;
-fun OccupationalRole_Class : SubClass OccupationalRole Position ;
-
--- Any Position that involves skilled 
--- manual work.
-fun OccupationalTrade : Class ;
-fun OccupationalTrade_Class : SubClass OccupationalTrade (both ManualLabor SkilledOccupation) ;
-
-
--- Offering to sell something to someone.
-fun OfferingForSale : Class ;
-fun OfferingForSale_Class : SubClass OfferingForSale Offering ;
-
--- Offering to buy something from someone.
-fun OfferingToPurchase : Class ;
-fun OfferingToPurchase_Class : SubClass OfferingToPurchase Offering ;
-
--- A building in which work activities take
--- place which is not primarily designed for manufacturing or retail sales.
-fun OfficeBuilding : Class ;
-fun OfficeBuilding_Class : SubClass OfficeBuilding Building ;
-
--- A greasy, viscous Solution that cannot be mixed with Water. 
--- Note that this general class covers petroleum oil, vegetable oil, animal fat, etc.
-fun Oil : Class ;
-fun Oil_Class : SubClass Oil Solution ;
-
--- Any Paint which is an oil_based Solution.
-fun OilPaint : Class ;
-fun OilPaint_Class : SubClass OilPaint Paint ;
-
--- Any OilPicture which is created 
--- with oil_based paints.
-fun OilPicture : Class ;
-fun OilPicture_Class : SubClass OilPicture PaintedPicture ;
-
--- The first part of the ChristianBible, describing 
--- the history of the Hebrew people.
-fun OldTestament : Class ;
-fun OldTestament_Class : SubClass OldTestament Book ;
-
--- An Ontology is a
--- ClassificationScheme that links concepts via many different
--- relations. Ontologies typically are not restricted to binary
--- relations and are structured by several kinds of conceptual
--- hierarchies, including set_ or class_based subsumption, spatial
--- containment, mereology
--- (theory of parts and wholes), and logical contexts. Thus,
--- an ontology typically includes multiple taxonomies.
-fun Ontology : Class ;
-fun Ontology_Class : SubClass Ontology ClassificationScheme ;
-
--- The Class of Processes where an aperture is 
--- created in an Object. Note that the aperture may be created intentionally, 
--- as when one opens a door, or unintentionally, as when the ground ruptures 
--- in a seismic event.
-fun Opening : Class ;
-fun Opening_Class : SubClass Opening Motion ;
-
--- The BodyMotion of relaxing the eye lids so that 
--- the corneas are exposed to light.
-fun OpeningEyes : Class ;
-fun OpeningEyes_Class : SubClass OpeningEyes (both EyeMotion Opening) ;
-
-
--- A DramaticPlay that is set to Music.
-fun Opera : Class ;
-fun Opera_Class : SubClass Opera DramaticPlay ;
-
--- A substance harvested from the seed capsules of the 
--- opium poppy that contains various powerful alkaloids.
-fun Opium : Class ;
-fun Opium_Class : SubClass Opium (both BiologicallyActiveSubstance (both Depressant PlantSubstance)) ;
-
-
--- A Device which enables someone to see something 
--- more clearly or with greater magnification.
-fun OpticalDevice : Class ;
-fun OpticalDevice_Class : SubClass OpticalDevice Device ;
-
--- A SecondaryColor that results from mixing Red 
--- and Yellow and resembles the color of a ripe orange fruit.
-fun OrangeColor : Ind SecondaryColor ;
-
-
--- A citrus FruitOrVegetable that has an OrangeColor 
--- skin and a sweet, acidic flavor.
-fun OrangeFruit : Class ;
-fun OrangeFruit_Class : SubClass OrangeFruit (both Food FruitOrVegetable) ;
-
-
--- A GroupOfPeople that create InstrumentalMusic 
--- together.
-fun Orchestra : Class ;
-fun Orchestra_Class : SubClass Orchestra MusicalGroup ;
-
--- The Process of directing an orchestra.
-fun OrchestralConducting : Class ;
-fun OrchestralConducting_Class : SubClass OrchestralConducting Guiding ;
-
--- A Sentence that expresses an order for something or 
--- that something be done.
-fun Order : Class ;
-fun Order_Sentence : SubClassC Order Sentence (\SENTENCE -> exists Ordering (\ORDER -> result(var Ordering Process ? ORDER)(var Sentence Entity ? SENTENCE)));
-
-
--- Any CompoundSubstance that has a Carbon 
--- base.
-fun OrganicCompound : Class ;
-fun OrganicCompound_Class : SubClass OrganicCompound CompoundSubstance ;
-
--- Any BiologicalProcess that results in 
--- the formation of an Organ.
-fun Organification : Class ;
-fun Organification_Class : SubClass Organification OrganOrTissueProcess ;
-
--- Part of an Organization that 
--- is responsible for managing the Organization.
-fun OrganizationalBoard : Class ;
-fun OrganizationalBoard_Class : SubClass OrganizationalBoard Organization ;
-
--- The process of two or more 
--- Organizations merging into a single Organization.
-fun OrganizationalMerging : Class ;
-fun OrganizationalMerging_Class : SubClass OrganizationalMerging OrganizationalProcess ;
-
--- A method for representing the sounds of a Language 
--- with written Characters.
-fun Orthography : Class ;
-fun Orthography_Class : SubClass Orthography Procedure ;
-
--- Any BiologicalProcess that results in the 
--- formation of Bones.
-fun Ossification : Class ;
-fun Ossification_Class : SubClass Ossification OrganOrTissueProcess ;
-
--- Clothing that is intended to be worn 
--- outdoors.
-fun OutdoorClothing : Class ;
-fun OutdoorClothing_Class : SubClass OutdoorClothing Clothing ;
-
--- Any Region which is not enclosed by a Building 
--- or part of a Building.
-fun Outdoors : Ind Region ;
-
-
--- The class of all Regions which are 
--- neither GeographicAreas nor AtmosphericRegions.
-fun OuterSpaceRegion : Class ;
-fun OuterSpaceRegion_Class : SubClass OuterSpaceRegion SpaceRegion ;
-
--- Outside is a PositionalAttribute used to 
--- describe the relative location of one object or region to another 
--- region. For example, (orientation Cuba UnitedStates Outside).
-fun Outside : Ind PositionalAttribute ;
-
-
--- A HeatingDevice with a door for inserting and removing 
--- Food that is to undergo Baking.
-fun Oven : Class ;
-fun Oven_Class : SubClass Oven (both Container HeatingDevice) ;
-
-
--- A nocturnal bird of prey with a large head and 
--- forward_facing eyes.
-fun Owl : Class ;
-fun Owl_Class : SubClass Owl Bird ;
-
--- Any ChemicalProcess where Electrons 
--- are removed from the substance undergoing the ChemicalProcess.
-fun Oxidation : Class ;
-fun Oxidation_Class : SubClass Oxidation ChemicalDecomposition ;
-
--- A single page of Text.
-fun Page : Ind UnitOfInformation ;
-
-
--- A physical sensation of discomfort which can vary widely 
--- in intensity.
-fun Pain : Ind EmotionalState ;
-
-
--- Any Solution which is capable of Coloring something.
-fun Paint : Class ;
-fun Paint_Class : SubClass Paint Solution ;
-
--- Any ArtWork which is produced by Painting.
-fun PaintedPicture : Class ;
-fun PaintedPicture_Class : SubClass PaintedPicture ArtWork ;
-
--- The application of Paint to a surface. Note that 
--- this class covers both ArtPainting (the creation of PaintedPictures), as 
--- well as painting one's kitchen, for example.
-fun Painting : Class ;
-fun Painting_Class : SubClass Painting (both Coloring Covering) ;
-
-
--- A large Gland that secretes Insulin and other 
--- substances.
-fun Pancreas : Class ;
-fun Pancreas_Class : SubClass Pancreas Gland ;
-
--- Paper is a flat sheet of fibers, usually produced by 
--- spreading a wet solution of wood particles on a flat surface and drying 
--- through heat and pressure. The fibers can also be cotton or a synthetic, 
--- although typically the bulk of the substance is wood fibers. This 
--- includes all manner of paper products that may have varying thicknesses, 
--- colors or texture. This is distinguished from flat wood products such as 
--- plywood and particle board which have a structural function in building 
--- construction. Sheathing materials such as the paper affixed to sheetrock 
--- however, is paper.
-fun Paper : Class ;
-fun Paper_Class : SubClass Paper Artifact ;
-
--- A Text which consists of one or more sentences, 
--- begins with an indented line, and expresses a single topic.
-fun Paragraph : Class ;
-fun Paragraph_Class : SubClass Paragraph Text ;
-
--- A publicly owned LandArea which is intended to be used 
--- for recreation and/or exercise.
-fun Park : Class ;
-fun Park_Class : SubClass Park LandArea ;
-
--- A LandArea which has been levelled, paved, and 
--- marked off for parking Automobiles.
-fun ParkingLot : Class ;
-fun ParkingLot_Class : SubClass ParkingLot StationaryArtifact ;
-
--- Any Position where the employee is not 
--- salaried and is paid for less than 40 hours of work per week.
-fun PartTimePosition : Class ;
-fun PartTimePosition_Class : SubClass PartTimePosition Position ;
-
--- A CommercialAgent that is owned by more 
--- than one person.
-fun Partnership : Class ;
-fun Partnership_Class : SubClass Partnership CommercialAgent ;
-
--- A Text which is authored by a PoliticalParty 
--- and which contains the core goals and principles of the PoliticalParty for a 
--- particular year or election cycle.
-fun PartyPlatform : Class ;
-fun PartyPlatform_Class : SubClass PartyPlatform FactualText ;
-
--- A Certificate that allows the holder to 
--- be at or away from a specified location, e.g. a pass for a leave of 
--- absence, a hall pass, a pass to enter a cleared facility, etc.
-fun PassCertificate : Class ;
-fun PassCertificate_Class : SubClass PassCertificate Certificate ;
-
--- A Vehicle that is designed to
--- carry Humans. Note that Vehicles that are not designed to
--- carry people may still do so. For example, a boxcar might still
--- transport homeless people, but was not built to do so.
-fun PassengerVehicle : Class ;
-
-
--- The Process of converting a LegislativeBill 
--- into Law by a duly authorized legislative body of Government.
-fun PassingABill : Class ;
-fun PassingABill_Class : SubClass PassingABill (both Declaring PoliticalProcess) ;
-
-
--- A License which identifies the holder and permits 
--- travel between different countries.
-fun Passport : Class ;
-fun Passport_Class : SubClass Passport License ;
-
--- The edible Seed of a pea plant.
-fun Pea : Class ;
-fun Pea_Class : SubClass Pea (both Food Seed) ;
-
-
--- A military deployment which is intended
--- to prevent hostilities between two other entities located in the same rough
--- geographic area.
-fun PeaceKeepingMission : Class ;
-fun PeaceKeepingMission_Class : SubClass PeaceKeepingMission MilitaryOrganization ;
-
--- A FruitOrVegetable that has a thick skin and the 
--- shape of a tear drop.
-fun PearFruit : Class ;
-fun PearFruit_Class : SubClass PearFruit (both Food FruitOrVegetable) ;
-
-
--- Removing the Skin (or part of the Skin) from 
--- an Organism. Note that this class covers a large range of cases, including 
--- peeling an orange, pelting an Animal, etc.
-fun Peeling : Class ;
-fun Peeling_Class : SubClass Peeling Removing ;
-
--- A WritingDevice that consists of an encased piece of 
--- graphite.
-fun Pencil : Class ;
-fun Pencil_Class : SubClass Pencil WritingDevice ;
-
--- A qualified retirement plan set up by a 
--- corporation, labor union, government, or other organization for its 
--- employees. Examples include profit_sharing plans, stock bonus and 
--- employee stock ownership plans, thrift plans, target benefit plans, 
--- money purchase plans, and defined benefit plans.
-fun PensionPlan : Class ;
-fun PensionPlan_Class : SubClass PensionPlan FinancialAccount ;
-
--- A MusicalInstrument which does not 
--- have strings and which is played by striking it.
-fun PercussionInstrument : Class ;
-fun PercussionInstrument_Class : SubClass PercussionInstrument MusicalInstrument ;
-
--- A Demonstrating which includes DramaticActing 
--- and/or Music and which is intended to entertain the audience.
-fun Performance : Class ;
-fun Performance_Class : SubClass Performance Demonstrating ;
-
--- A discrete subProcess of a Performance, 
--- e.g. an act of a play, a movement of a performance of a symphony, etc.
-fun PerformanceAct : Class ;
-fun PerformanceAct_Class : SubClass PerformanceAct Performance ;
-
--- A Text that describes the events 
--- and/or participants in a Performance.
-fun PerformanceProgram : Class ;
-fun PerformanceProgram_Class : SubClass PerformanceProgram FactualText ;
-
--- A large platform for theatrical plays, 
--- lectures, dances, music recitals, etc, which can be observed by an audience.
-fun PerformanceStage : Class ;
-fun PerformanceStage_Class : SubClass PerformanceStage StationaryArtifact ;
-
--- A part of the PerformanceStage that is not 
--- visible to members of the audience.
-fun PerformanceStageWing : Class ;
-fun PerformanceStageWing_Class : SubClass PerformanceStageWing StationaryArtifact ;
-
--- Any Publisher that publishes 
--- Periodicals, e.g. newspaper and magazine publishing houses.
-fun PeriodicalPublisher : Class ;
-fun PeriodicalPublisher_Class : SubClass PeriodicalPublisher Publisher ;
-
--- PetroleumProduct is a broad class that 
--- includes both crude oil (Petroleum) and RefinedPetroleumProducts.
-fun PetroleumProduct : Class ;
-fun PetroleumProduct_Class : SubClass PetroleumProduct (both MiningProduct Oil) ;
-
-
--- The Profession of being a pharmacist, i.e. 
--- preparing and dispensing BiologicallyActiveSubstances.
-fun Pharmacist : Class ;
-fun Pharmacist_Class : SubClass Pharmacist Profession ;
-
--- The study of first principles, including epistemology, 
--- metaphysics, and ethics.
-fun Philosophy : Ind FieldOfStudy ;
-
-
--- An Icon that is the result of a process of 
--- Photographing.
-fun Photograph : Class ;
-fun Photograph_Class : SubClass Photograph Icon ;
-
--- Celluloid covered with an emulsion which can 
--- be converted into photographic negatives by a Camera.
-fun PhotographicFilm : Class ;
-fun PhotographicFilm_Class : SubClass PhotographicFilm Artifact ;
-
--- ContentDevelopment where the instrument 
--- is a camera and the result is a Photograph.
-fun Photographing : Class ;
-fun Photographing_Class : SubClass Photographing ContentDevelopment ;
-
--- The study of matter and energy and their relations.
-fun Physics : Ind Science ;
-
-
--- The part of Biology dealing with the functioning of 
--- Organisms.
-fun Physiology : Ind Science ;
-
-
--- A StringInstrument with keys that, when pressed down, 
--- activate hammers that, in turn, strike strings.
-fun Piano : Class ;
-fun Piano_Class : SubClass Piano StringInstrument ;
-
--- A frame which surrounds a PaintedPicture or 
--- Photograph and has the function of protecting and accenting the picture.
-fun PictureFrame : Class ;
-fun PictureFrame_Class : SubClass PictureFrame Artifact ;
-
--- A domesticated HoofedMammal that is raised for pork.
-fun Pig : Class ;
-fun Pig_Class : SubClass Pig (both HoofedMammal Livestock) ;
-
-
--- A subclass of Bird with a stout body and short legs.
-fun Pigeon : Class ;
-fun Pigeon_Class : SubClass Pigeon Bird ;
-
--- A soft, stuffed Artifact to support the Head or 
--- the body as a whole while one is sleeping or relaxing.
-fun Pillow : Class ;
-fun Pillow_Class : SubClass Pillow Artifact ;
-
--- A SecondaryColor that results from mixing Red and 
--- White.
-fun Pink : Ind SecondaryColor ;
-
-
--- Pipeline is the class of pipelines used 
--- to transport various kinds of fluids.
-fun Pipeline : Class ;
-fun Pipeline_Class : SubClass Pipeline Transitway ;
-
--- A Firearm that is intended to be aimed and fired with a 
--- single hand.
-fun Pistol : Class ;
-fun Pistol_Class : SubClass Pistol Firearm ;
-
--- The place where the pitcher in Baseball 
--- stands when he is throwing balls to the batter.
-fun PitchersMound : Class ;
-fun PitchersMound_Class : SubClass PitchersMound GameArtifact ;
-
--- Throwing a Ball to the batter in a game of 
--- Baseball or softball.
-fun Pitching : Class ;
-fun Pitching_Class : SubClass Pitching (both GameShot Throwing) ;
-
-
--- The main Gland of the endocrine system.
-fun PituitaryGland : Class ;
-fun PituitaryGland_Class : SubClass PituitaryGland Gland ;
-
--- A Building or part of a Building which is 
--- intended for organizational activities, e.g. retail or wholesale selling, 
--- manufacturing, office work, etc.
-fun PlaceOfCommerce : Class ;
-fun PlaceOfCommerce_Class : SubClass PlaceOfCommerce StationaryArtifact ;
-
--- Any place designed for ReligiousProcesses.
-fun PlaceOfWorship : Class ;
-fun PlaceOfWorship_Class : SubClass PlaceOfWorship Building ;
-
--- PlacingUnderArrest is the class of events in which a
--- CognitiveAgent, typically a law enforcement professional,
--- legally takes into custody a human or group of humans.
-fun PlacingUnderArrest : Class ;
-fun PlacingUnderArrest_Class : SubClass PlacingUnderArrest (both Capturing (both LawEnforcement (both LegalAction SocialInteraction))) ;
-
-
--- PlantAgriculturalProduct 
--- is the class of AgriculturalProducts that are vegetable in nature, 
--- in the widest sense, e.g., fruits, grains, green vegetables, cotton, 
--- linen, flowers, wine grapes, hops.
-fun PlantAgriculturalProduct : Class ;
-fun PlantAgriculturalProduct_Class : SubClass PlantAgriculturalProduct AgriculturalProduct ;
-
--- The stem of a Plant or any shoot arising from 
--- the stem of a Plant.
-fun PlantBranch : Class ;
-fun PlantBranch_Class : SubClass PlantBranch (both BodyPart PlantAnatomicalStructure) ;
-
-
--- An Organ of Plants whose main purpose is 
--- photosynthesis.
-fun PlantLeaf : Class ;
-fun PlantLeaf_Class : SubClass PlantLeaf (both Organ PlantAnatomicalStructure) ;
-
-
--- An Organ of Plants whose main purpose is 
--- twofold, viz. to absorb nutrients from the ground and to anchor the Plant 
--- in place.
-fun PlantRoot : Class ;
-fun PlantRoot_Class : SubClass PlantRoot (both Organ PlantAnatomicalStructure) ;
-
-
--- A small piece of stiff paper with markings 
--- which is intended to be used for playing card games.
-fun PlayingCard : Class ;
-fun PlayingCard_Class : SubClass PlayingCard (both ContentBearingObject GameArtifact) ;
-
-
--- Stating in a court of law a claim about whether or 
--- not one is guilty of the crime of which one has been accused.
-fun Pleading : Class ;
-fun Pleading_Class : SubClass Pleading Stating ;
-
--- An Artifact which is designed to fit snugly within 
--- a Hole.
-fun Plug : Class ;
-fun Plug_Class : SubClass Plug Artifact ;
-
--- Any occupation that involves installing, repairing, and 
--- replacing pipes and pipe fixtures.
-fun Plumber : Ind OccupationalTrade ;
-
-
--- A pouch of Fabric in an instance of Clothing where 
--- something can be kept.
-fun Pocket : Class ;
-fun Pocket_Class : SubClass Pocket Fabric ;
-
--- A PoliceOfficer who is in charge of a precinct.
-fun PoliceCaptain : Class ;
-fun PoliceCaptain_Class : SubClass PoliceCaptain PoliceOfficer ;
-
--- The Profession of being a police 
--- detective, i.e. being a PoliceOfficer whose duties include the 
--- investigation of crimes.
-fun PoliceDetective : Ind PoliceOfficer ; 
-
-
--- A building designed to house PolicePersons.
-fun PoliceFacility : Class ;
-fun PoliceFacility_Class : SubClass PoliceFacility Building ;
-
--- The Profession of being a police officer, i.e. 
--- working for a law enforcement agency that is part of a Government.
-fun PoliceOfficer : Class ;
-fun PoliceOfficer_Class : SubClass PoliceOfficer (both GovernmentOfficer Profession) ;
-
-
--- A member of a government whose occupation
--- has the primary purpose of preventing crime and arresting criminals.
-fun PolicePerson : Ind OccupationalRole ;
-
-
--- A PoliceOfficer with the rank of sergeant.
-fun PoliceSergeant : Class ;
-fun PoliceSergeant_Class : SubClass PoliceSergeant PoliceOfficer ;
-
--- A CriminalAction that is committed by or 
--- against Governments.
-fun PoliticalCrime : Class ;
-fun PoliticalCrime_Class : SubClass PoliticalCrime (both CriminalAction PoliticalProcess) ;
-
-
--- A well known person who participates
--- in a PoliticalProcess. This must either be the person's principal
--- occupation, or what is intended to become his principal occupation
--- (for example, after an election).
-fun PoliticalFigure : Class ;
-fun PoliticalFigure_Class : SubClass PoliticalFigure Celebrity ;
-
--- PoliticalParty is the class of 
--- PoliticalOrganizations that may sponsor candidates for Elections.
-fun PoliticalParty : Class ;
-fun PoliticalParty_Class : SubClass PoliticalParty PoliticalOrganization ;
-
--- The violent overthrow of one Government 
--- and its replacement by another. This covers grass_roots revolutions, as well 
--- as coups d'etat.
-fun PoliticalRevolution : Class ;
-fun PoliticalRevolution_Class : SubClass PoliticalRevolution (both PoliticalProcess ViolentContest) ;
-
-
--- The field of political science.
-fun PoliticalScience : Ind SocialScience ;
-
-
--- Any Attribute of a Government 
--- which specifies some aspect of the political or economic system of the 
--- Government.
-fun PoliticoEconomicAttribute : Class ;
-fun PoliticoEconomicAttribute_Class : SubClass PoliticoEconomicAttribute RelationalAttribute ;
-
--- Investigating what people believe (and in what proportions) 
--- by asking a set of structured questions to a random sample of people.
-fun Polling : Class ;
-fun Polling_Class : SubClass Polling Investigating ;
-
--- A ClosedTwoDimensionalFigure that is composed 
--- exclusively of straight lines, i.e. OneDimensionalFigures.
-fun Polygon : Class ;
-fun Polygon_Class : SubClass Polygon ClosedTwoDimensionalFigure ;
-
--- Music which has two or more parts, i.e. Music 
--- which can be divided into two or more contemporaneous subProcesses which are 
--- also instances of Music.
-fun PolyphonicMusic : Class ;
-fun PolyphonicMusic_Music : SubClassC PolyphonicMusic Music (\MUSIC -> exists Music (\PART1 -> exists Music (\PART2 -> and( and (and (and ( subProcess(var Music Process ? PART1)(var Music Process ? MUSIC))( subProcess(var Music Process ? PART2)(var Music Process ? MUSIC)))( not (equal(var Music Entity ? PART1)(var Music Entity ? PART2)))) (cooccur(var Music Physical ? PART1)(var Music Physical ? MUSIC))) ( cooccur(var Music Physical ? PART2)(var Music Physical ? MUSIC)))));
-
-
--- The Position of head of the RomanCatholicChurch.
-fun Pope : Ind Position ;
-
-
--- PopularElection is the class of 
--- Elections in which office_holders and issues are determined directly by 
--- the outcome of the votes cast by the enfranchised. For example, U.S. 
--- Senators and Representatives are elected by PopularElection. By 
--- contrast, U.S. Presidents are elected by indirect elections, in which the 
--- Electoral College determines the actual outcome. See electionWinner.
-fun PopularElection : Class ;
-fun PopularElection_Class : SubClass PopularElection GeneralElection ;
-
--- A StationaryArtifact which is connected to a 
--- Building and which provides some shelter in entering or leaving the 
--- Building or in sitting outside.
-fun Porch : Class ;
-fun Porch_Class : SubClass Porch StationaryArtifact ;
-
--- Meat that was originally part of a Pig.
-fun Pork : Class ;
-fun Pork_Class : SubClass Pork Meat ;
-
--- A PaintedPicture that represents someone's Face.
-fun Portrait : Class ;
-fun Portrait_Class : SubClass Portrait PaintedPicture ;
-
--- The class of TimeIntervals that begin at noon and 
--- end at midnight.
-fun PostMeridiem : Class ;
-fun PostMeridiem_Class : SubClass PostMeridiem TimeInterval ;
-
--- The class of Schools that offer 
--- an associate's degree or a bachelor's degree.
-fun PostSecondarySchool : Class ;
-fun PostSecondarySchool_Class : SubClass PostSecondarySchool School ;
-
--- A Container which has a handle and is used for 
--- Cooking.
-fun PotOrPan : Class ;
-fun PotOrPan_Class : SubClass PotOrPan Container ;
-
--- Any occupation that involves the creation of Pottery.
-fun Potter : Ind OccupationalTrade ;
-
-
--- Household Artifacts that are made out of baked Clay.
-fun Pottery : Class ;
-fun Pottery_Class : SubClass Pottery Artifact ;
-
-fun Poultry : Class ;
-fun Poultry_Class : SubClass Poultry (both Bird Livestock) ;
-
--- Any instance of Transfer from one Container to 
--- another, where the thing transferred is a Liquid.
-fun Pouring : Class ;
-fun Pouring_Class : SubClass Pouring (both LiquidMotion Transfer) ;
-
-
--- Any Solid Substance which consists of loose, 
--- identical, and very small particles.
-fun Powder : Class ;
-fun Powder_Class : SubClass Powder Substance ;
-
--- A source of electrical power.
-fun PowerSource : Class ;
-
-
--- A Vehicle that has a powerComponent.
--- Note that PoweredVehicles include those vehicles that have a powerComponent
--- where the user can and does often choose not to use it, such as a moped with pedals.
-fun PoweredVehicle : Class ;
-fun PoweredVehicle_Class : SubClass PoweredVehicle Vehicle ;
-
--- A formal or informal process of private worship which 
--- may or may not be carried out in a ReligiousBuilding.
-fun Praying : Class ;
-fun Praying_Class : SubClass Praying (both ReligiousProcess Requesting) ;
-
-
--- The Attribute that applies to Female Animals and 
--- Humans that have an embryo or fetus growing inside of them as the result of 
--- having one of the Female's Eggs fertilized.
-fun Pregnant : Ind BiologicalAttribute ;
-
-
--- Food that is the result of Cooking.
-fun PreparedFood : Class ;
-fun PreparedFood_Class : SubClass PreparedFood Food ;
-
--- The position of being head of the 
--- UnitedStates.
-fun PresidentOfTheUnitedStates : Ind Position ;
-
-
--- Any Device that measures and 
--- represents PressureMeasure.
-fun PressureMeasuringDevice : Class ;
-fun PressureMeasuringDevice_Class : SubClass PressureMeasuringDevice MeasuringDevice ;
-
--- An installation which is owned and maintained by 
--- a Government for the purpose of Confining people. This class covers 
--- jails, federal prisons, concentration camps, gulags, etc.
-fun Prison : Class ;
-fun Prison_Class : SubClass Prison StationaryArtifact ;
-
--- The Profession of being a private detective, 
--- i.e. a detective who can be hired for a fee to investigate something.
-fun PrivateDetective : Ind Profession ;
-
-
--- A School which is not publicly owned.
-fun PrivateSchool : Class ;
-fun PrivateSchool_Class : SubClass PrivateSchool School ;
-
--- Any instance of Speaking before an assembled 
--- audience that effects an institutional change, e.g. a change in the laws of 
--- the government.
-fun Proclaiming : Class ;
-fun Proclaiming_Class : SubClass Proclaiming (both Declaring Lecture) ;
-
-
--- Any occupation that requires at least a bachelor's
--- degree.
-fun Profession : Class ;
-fun Profession_Class : SubClass Profession SkilledOccupation ;
-
--- The Profession of being a teacher at a 
--- PostSecondarySchool.
-fun Professor : Ind Profession ;
-
-
--- An arrangement in which an employer 
--- shares its profits with its employees. The compensation can be stocks, 
--- bonds or cash, and can be immediate or deferred until retirement.
-fun ProfitSharingPlan : Class ;
-fun ProfitSharingPlan_Class : SubClass ProfitSharingPlan PensionPlan ;
-
--- A missile, bullet, etc. that is fired from 
--- a Weapon.
-fun Projectile : Class ;
-fun Projectile_Class : SubClass Projectile Weapon ;
-
--- A Weapon that shoots a Projectile.
-fun ProjectileLauncher : Class ;
-fun ProjectileLauncher_Class : SubClass ProjectileLauncher Weapon ;
-
--- The outer casing of a Projectile.
-fun ProjectileShell : Class ;
-fun ProjectileShell_Class : SubClass ProjectileShell Container ;
-
--- A CommunicationDevice upon which images 
--- are projected so that they can be viewed.
-fun ProjectionScreen : Class ;
-fun ProjectionScreen_Class : SubClass ProjectionScreen CommunicationDevice ;
-
--- A CommercialAgent that is owned by a 
--- single person.
-fun Proprietorship : Class ;
-fun Proprietorship_Class : SubClass Proprietorship CommercialAgent ;
-
--- Unicellular Organisms that are capable of movement 
--- and that are found in almost every part of the world. This class includes 
--- amoebas, sporozoans, and paramecia.
-fun Protozoa : Class ;
-fun Protozoa_Class : SubClass Protozoa Microorganism ;
-
--- The field of psychology.
-fun Psychology : Ind SocialScience ;
-
-
--- Any PsychologicalDysfunction which is the 
--- result of an organic impairment of the NervousSystem.
-fun Psychosis : Class ;
-fun Psychosis_Class : SubClass Psychosis PsychologicalDysfunction ;
-
--- The DevelopmentalAttribute of having functional sex 
--- glands which are not fully mature.
-fun Puberty : Ind DevelopmentalAttribute ;
-
-
--- An Attorney who defends criminal cases for a 
--- GovernmentOrganization.
-fun PublicDefender : Class ;
-fun PublicDefender_Class : SubClass PublicDefender (both Attorney GovernmentOfficer) ;
-
-
--- A Library which is financed by taxes and which 
--- is open to everyone.
-fun PublicLibrary : Class ;
-fun PublicLibrary_Class : SubClass PublicLibrary (both GovernmentOrganization Library) ;
-
-
--- A Park that is publicly owned, i.e. owned 
--- by a Government.
-fun PublicPark : Class ;
-fun PublicPark_Class : SubClass PublicPark Park ;
-
--- An Attorney who prosecutes criminal cases for 
--- a GovernmentOrganization.
-fun PublicProsecutor : Class ;
-fun PublicProsecutor_Class : SubClass PublicProsecutor (both Attorney GovernmentOfficer) ;
-
-
--- A School which is financed primarily by taxes.
-fun PublicSchool : Class ;
-fun PublicSchool_Class : SubClass PublicSchool (both GovernmentOrganization School) ;
-
-
--- Any business whose services include the 
--- Publication of Texts.
-fun Publisher : Class ;
-fun Publisher_Class : SubClass Publisher CommercialAgent ;
-
--- Any instance of LandTransportation, where a 
--- TransportationDevice is dragged by something else, whether the something 
--- else is an Animal or a self_powered TransportationDevice.
-fun Pulling : Class ;
-fun Pulling_Class : SubClass Pulling LandTransportation ;
-
--- An Artery that carries Blood from 
--- the Heart to a Lung.
-fun PulmonaryArtery : Class ;
-fun PulmonaryArtery_Class : SubClass PulmonaryArtery Artery ;
-
--- A Vein that carries Blood from the 
--- Lungs to the Heart.
-fun PulmonaryVein : Class ;
-fun PulmonaryVein_Class : SubClass PulmonaryVein Vein ;
-
--- A Device that moves Fluids by means of pressure or suction.
-fun Pump : Class ;
-fun Pump_Class : SubClass Pump TransportationDevice ;
-
--- Any instance of Impelling where the instrument 
--- is a Fist of the agent.
-fun Punching : Class ;
-fun Punching_Class : SubClass Punching Impelling ;
-
--- A RegulatoryProcess where the agent does 
--- something to the destination that the agent knows is undesirable 
--- for the destination.
-fun Punishing : Class ;
-fun Punishing_Class : SubClass Punishing RegulatoryProcess ;
-
--- A SecondaryColor that results from mixing Red and 
--- Blue.
-fun Purple : Ind SecondaryColor ;
-
-
--- Any four_sided Polygon.
-fun Quadrilateral : Class ;
-fun Quadrilateral_Class : SubClass Quadrilateral Polygon ;
-
--- A Female Insect which is the sole member of 
--- her colony with the capability to reproduce.
-fun QueenInsect : Class ;
-fun QueenInsect_Class : SubClass QueenInsect Insect ;
-
--- An interrogative Sentence, a Sentence that 
--- poses a question.
-fun Question : Class ;
-fun Question_Sentence : SubClassC Question Sentence (\SENTENCE -> exists Questioning (\QUESTION -> result(var Questioning Process ? QUESTION)(var Sentence Entity ? SENTENCE)));
-
-
--- A burrowing Rodent with a short tail and long ears.
-fun Rabbit : Class ;
-fun Rabbit_Class : SubClass Rabbit Rodent ;
-
--- A sport which involves a contest of speed between the 
--- participants. Note that this covers a variety of things, including auto 
--- racing, running competitions, etc.
-fun Racing : Class ;
-fun Racing_Class : SubClass Racing Sport ;
-
--- An ElectricDevice that emits and receives microwave 
--- radiation for the purpose of locating and tracking distant objects.
-fun Radar : Class ;
-fun Radar_Class : SubClass Radar ElectricDevice ;
-
-fun RadiatingInfrared_Radiating : SubClass RadiatingInfrared Radiating ;
-
--- All sound waves that have frequencies 
--- above those that normal Human ears can detect.
-fun RadiatingSoundUltrasonic : Class ;
-fun RadiatingSoundUltrasonic_Class : SubClass RadiatingSoundUltrasonic RadiatingSound ;
-
--- Any case of RadiatingElectromagnetic where the 
--- wavelengths are shorter than those of visible light and longer than those 
--- of X_Rays.
-fun RadiatingUltraviolet : Class ;
-fun RadiatingUltraviolet_Class : SubClass RadiatingUltraviolet RadiatingElectromagnetic ;
-
--- Any instance of RadiatingLight that can 
--- be detected by normal human visual perception.
-fun RadiatingVisibleLight : Class ;
-fun RadiatingVisibleLight_RadiatingLight : SubClassC RadiatingVisibleLight RadiatingLight (\R -> exists Human (\H -> exists Seeing (\S -> and ( agent(var Seeing Process ? S)(var Human Agent ? H))( patient(var Seeing Process ? S)(var RadiatingLight Entity ? R)))));
-
-
--- Any instance of Broadcasting which is 
--- intended to be received by a RadioReceiver.
-fun RadioBroadcasting : Class ;
-fun RadioBroadcasting_Class : SubClass RadioBroadcasting Broadcasting ;
-
--- Any instance of RadiatingElectromagnetic 
--- where the waves have a wavelength between 5 milimeters and 30,000 meters.
-fun RadioEmission : Class ;
-fun RadioEmission_Class : SubClass RadioEmission RadiatingElectromagnetic ;
-
--- A RadioReceiver is a Device for receiving 
--- radio broadcast signals from a RadioStation.
-fun RadioReceiver : Class ;
-fun RadioReceiver_Class : SubClass RadioReceiver ReceiverDevice ;
-
--- A WeaponOfMassDestruction which 
--- achieves its effect through radioactivity, either by an explosion resulting 
--- from nuclear fission or by a conventional explosive device that scatters 
--- radioactive debris.
-fun RadioactiveWeapon : Class ;
-fun RadioactiveWeapon_Class : SubClass RadioactiveWeapon WeaponOfMassDestruction ;
-
--- Weapons which are designed to spread 
--- radioactive particles over a large area by means of a conventional 
--- explosive device rather than a nuclear reaction. These weapons are often 
--- referred to as 'dirty bombs'.
-fun RadiologicalWeapon : Class ;
-fun RadiologicalWeapon_Class : SubClass RadiologicalWeapon RadioactiveWeapon ;
-
--- A PlantRoot that is often used in salads.
-fun Radish : Class ;
-fun Radish_Class : SubClass Radish (both Food PlantRoot) ;
-
-
--- (RadiusFn ?CIRCLE) denotes the length of the radius 
--- of the Circle ?CIRCLE.
-fun RadiusFn : El Circle -> Ind LengthMeasure ;
-
-
--- RailTransportationSystem 
--- is the subclass of TransitSystems whose routes are Railways.
-fun RailTransportationSystem : Class ;
-fun RailTransportationSystem_Class : SubClass RailTransportationSystem TransitSystem ;
-
--- A Vehicle designed to move on Railways.
-fun RailVehicle : Class ;
-fun RailVehicle_Class : SubClass RailVehicle LandVehicle ;
-
--- Any TransportationCompany whose services 
--- include Transportation by Train.
-fun RailroadCompany : Class ;
-fun RailroadCompany_Class : SubClass RailroadCompany TransportationCompany ;
-
--- Ramp is the class of SelfConnectedObjects that are 
--- inclined planes used for moving objects from one level to another, 
--- especially used for wheeled vehicles and people who cannot climb stairs.
-fun Ramp : Class ;
-fun Ramp_Class : SubClass Ramp SelfConnectedObject ;
-
--- Any instance of Mating where one participant does not 
--- consent. This is limited to acts between Humans.
-fun Raping : Class ;
-fun Raping_Class : SubClass Raping (both CriminalAction Mating) ;
-
-
--- A Rodent that has a hairless tail like a Mouse 
--- but that is larger than a Mouse.
-fun Rat : Class ;
-fun Rat_Class : SubClass Rat Rodent ;
-
--- A subclass of Snake which derives its name 
--- from the fact that it can manipulate its tail in such a way as to produce 
--- a sound like that of a rattle.
-fun Rattlesnake : Class ;
-fun Rattlesnake_Class : SubClass Rattlesnake Snake ;
-
--- Food that is not the result of Cooking.
-fun RawFood : Class ;
-fun RawFood_Class : SubClass RawFood Food ;
-
--- Any VehicleWindow which is located at the back 
--- of an Automobile.
-fun RearWindow : Class ;
-fun RearWindow_Class : SubClass RearWindow VehicleWindow ;
-
--- An ElectricDevice that is capable of 
--- receiving and decoding RadioEmissions, e.g. Radios and Televisions.
-fun ReceiverDevice : Class ;
-fun ReceiverDevice_Class : SubClass ReceiverDevice (both CommunicationDevice ElectricDevice) ;
-
-
--- Any instance of Speaking where what is 
--- uttered is contained within a Text.
-fun Reciting : Class ;
-fun Reciting_Class : SubClass Reciting Speaking ;
-
--- Any Process where the experiencer recovers 
--- from a DiseaseOrSyndrome.
-fun RecoveringFromIllness : Class ;
-fun RecoveringFromIllness_Class : SubClass RecoveringFromIllness OrganismProcess ;
-
--- A Device whose purpose is RecreationOrExercise.
-fun RecreationOrExerciseDevice : Class ;
-fun RecreationOrExerciseDevice_Class : SubClass RecreationOrExerciseDevice Device ;
-
--- Any Quadrilateral whose angles are all 
--- RightAngles.
-fun Rectangle : Class ;
-fun Rectangle_Class : SubClass Rectangle Quadrilateral ;
-
--- BloodCells that contain hemoglobin, lack a 
--- CellNucleus, and carry Oxygen to the tissues of the body.
-fun RedBloodCell : Class ;
-fun RedBloodCell_Class : SubClass RedBloodCell BloodCell ;
-
--- Any Soldier that served on the British side during 
--- the American revolutionary war. RedcoatSoldier Any Soldier that served on the
--- British side during the American revolutionary war.
-fun RedcoatSoldier : Class ;
-fun RedcoatSoldier_Class : SubClass RedcoatSoldier Soldier ;
-
--- A Book which is not intended to be read 
--- from cover to cover, but which is meant to be consulted to answer specific 
--- factual questions, e.g. about the meaning of a word, the location of a 
--- country, etc.
-fun ReferenceBook : Class ;
-fun ReferenceBook_Class : SubClass ReferenceBook (both Book FactualText) ;
-
-
--- A Text which is not intended to be read 
--- from beginning to end, but which is meant to be consulted to answer specific 
--- factual questions, e.g. about the meaning of a word, the location of a 
--- country, etc.
-fun ReferenceText : Class ;
-fun ReferenceText_Class : SubClass ReferenceText FactualText ;
-
--- A Substance that is the result
--- of the Distilling of Petroleum.
-fun RefinedPetroleumProduct : Class ;
-fun RefinedPetroleumProduct_Class : SubClass RefinedPetroleumProduct PetroleumProduct ;
-
--- Any instance of Radiating where the radiated 
--- waves rebound from a surface, e.g. an echo of sound or a reflection of 
--- light.
-fun Reflecting : Class ;
-fun Reflecting_Class : SubClass Reflecting Radiating ;
-
--- Those instances of RadiatingLight where the 
--- instrument is not a light source, but is simply a surface which bends light 
--- waves that come in contact with it.
-fun ReflectingLight : Class ;
-fun ReflectingLight_Class : SubClass ReflectingLight (both RadiatingLight Reflecting) ;
-
-
--- Any Muscle reaction which is a response 
--- to a specific stimulus and which does not reach the level of consciousness.
-fun ReflexiveProcess : Class ;
-fun ReflexiveProcess_Class : SubClass ReflexiveProcess AutonomicProcess ;
-
--- The intersection of Containers and ElectricDevices 
--- in which the temperature is reduced from that of the outside air by a Cooling 
--- process.
-fun Refrigerator : Class ;
-fun Refrigerator_Class : SubClass Refrigerator (both Container (both CoolingDevice ElectricDevice)) ;
-
-
--- Submitting official paperwork in a government 
--- agency, e.g. filing for divorce, making a legal claim against someone.
-fun Registering : Class ;
-fun Registering_Class : SubClass Registering (both PoliticalProcess Stating) ;
-
-
--- ExpressingDisapproval about a state of affairs 
--- that has already occurred.
-fun Regretting : Class ;
-fun Regretting_Class : SubClass Regretting ExpressingDisapproval ;
-
--- Any TherapeuticProcess that removes Pain from 
--- the patient of the process.
-fun RelievingPain : Class ;
-fun RelievingPain_Class : SubClass RelievingPain TherapeuticProcess ;
-
--- A Building which is intended to be 
--- used for religious worship. This class covers churches, temples, 
--- religious shrines, etc.
-fun ReligiousBuilding : Class ;
-fun ReligiousBuilding_Class : SubClass ReligiousBuilding Building ;
-
--- A well_known leader of a religious group.
-fun ReligiousFigure : Class ;
-fun ReligiousFigure_Class : SubClass ReligiousFigure Celebrity ;
-
--- Any Position within a ReligousOrganization.
-fun ReligiousPosition : Class ;
-fun ReligiousPosition_Class : SubClass ReligiousPosition Position ;
-
--- A formal process of public worship which is 
--- typically carried out in a church, temple or other sanctified building and 
--- which typically accords with a prescribed set of rules.
-fun ReligiousService : Class ;
-fun ReligiousService_Class : SubClass ReligiousService (both Demonstrating ReligiousProcess) ;
-
-
--- Any Requesting that is intended to cause a 
--- Remembering of something.
-fun Reminding : Class ;
-fun Reminding_Class : SubClass Reminding Requesting ;
-
--- Removing Clothing from a Human or 
--- Animal in such a way that the Human or Animal no longer wears the 
--- Clothing.
-fun RemovingClothing : Class ;
-fun RemovingClothing_Class : SubClass RemovingClothing Uncovering ;
-
--- Giving money to the owner of an Object in 
--- exchange for the right to use the Object for a fixed time period.
-fun Renting : Class ;
-fun Renting_Class : SubClass Renting (both Borrowing FinancialTransaction) ;
-
-
--- A relatively brief FactualText, often it 
--- describes the findings of a study or experiment, or a series of 
--- observations.
-fun Report : Class ;
-fun Report_Class : SubClass Report (both Article FactualText) ;
-
-
--- One of the two major political parties in 
--- the UnitedStates. The RepublicanParty represents traditional, 
--- conservative values.
-fun RepublicanParty : Ind PoliticalParty ;
-
-
--- A Sentence that expresses a request for something or 
--- that something be done.
-fun Request : Class ;
-fun Request_Sentence : SubClassC Request Sentence (\SENTENCE -> exists Requesting (\REQUEST -> result (var Requesting Process ? REQUEST)(var Sentence Entity ? SENTENCE)));
-
-
--- The Profession of being a scientific 
--- researcher.
-fun Researcher : Class ;
-fun Researcher_Class : SubClass Researcher Profession ;
-
--- (ResidentFn ?AREA) denotes the 
--- GroupOfPeople who have their home in ?AREA.
-fun ResidentFn : El GeopoliticalArea -> Ind GroupOfPeople ;
-
-
--- Voluntarily ending one's employment.
-fun Resigning : Class ;
-fun Resigning_Class : SubClass Resigning TerminatingEmployment ;
-
--- Any instance of Deciding which is conducted at a 
--- FormalMeeting and where the agent is an Organization.
-fun Resolution : Class ;
-fun Resolution_Class : SubClass Resolution Deciding ;
-
--- Any CommercialAgent whose services include selling 
--- Food to customers which is intended to be eaten on the premises.
-fun Restaurant : Class ;
-fun Restaurant_Class : SubClass Restaurant CommercialAgent ;
-
--- A Building where people pay to be served food
--- and eat. Some restaurants may also offer entertainment.
-fun RestaurantBuilding : Class ;
-fun RestaurantBuilding_Class : SubClass RestaurantBuilding Building ;
-
--- A Store where individuals who are not
--- representing an Organization purchase items. This distinguishes
--- retail stores from wholesale establishments, where the purchasers
--- are businesses or their representatives, as well as mail order or
--- office buildings where transactions are facillitated but the consumer
--- does not take possession of the item on the premises. More succinctly,
--- the complement of WholesaleStore, i.e. 
--- MercantileOrganizations that sell their goods to the general public.
-fun RetailStore : Class ;
-fun RetailStore_Class : SubClass RetailStore MercantileOrganization ;
-
--- A membrane that covers the Eye and converts 
--- the image formed by the lens of the Eye into neurochemical impulses 
--- which can be processed by the Brain.
-fun Retina : Class ;
-fun Retina_Class : SubClass Retina (both AnimalAnatomicalStructure Organ) ;
-
-
--- Voluntary unemployment toward the end of one's life.
-fun Retired : Ind SocialRole ;
-
-
--- Voluntarily leaving employment at the end of one's 
--- career in order to take time off in the later years of one's life.
-fun Retiring : Class ;
-fun Retiring_Class : SubClass Retiring Resigning ;
-
--- Any instance of Translocation where the agent 
--- goes to a location where he/she had been before the Translocation took place.
-fun Returning : Class ;
-fun Returning_Class : SubClass Returning Translocation ;
-
--- Moving something in such a way that its top 
--- becomes its bottom and vice versa.
-fun Reversing : Class ;
-fun Reversing_Class : SubClass Reversing Motion ;
-
--- A Pistol whose magazine is a revolving cylinder with 
--- six chambers for Bullets.
-fun RevolverGun : Class ;
-fun RevolverGun_Class : SubClass RevolverGun Pistol ;
-
--- A CerealGrain which has short and long grain varieties 
--- and which is usually prepared for eating by steaming.
-fun RiceGrain : Class ;
-fun RiceGrain_Class : SubClass RiceGrain CerealGrain ;
-
--- A Firearm with a long barrel that is intended to be fired 
--- from the shoulder.
-fun Rifle : Class ;
-fun Rifle_Class : SubClass Rifle Firearm ;
-
--- Any TwoDimensionalAngle that has the 
--- angularMeasure of 90 AngularDegrees.
-fun RightAngle : Class ;
-fun RightAngle_Class : SubClass RightAngle TwoDimensionalAngle ;
-
--- Any Triangle that contains a RightAngle.
-fun RightTriangle : Class ;
-fun RightTriangle_Class : SubClass RightTriangle Triangle ;
-
--- Any instance of RadiatingSound which is produced by 
--- a Bell.
-fun Ringing : Class ;
-fun Ringing_Class : SubClass Ringing RadiatingSound ;
-
--- A path along which vehicles travel. It is typically,
--- although not necessarily, paved and intended for cars.
-fun Road : Class ;
-fun Road_Class : SubClass Road Region ;
-
--- RoadTransportationSystem 
--- is the subclass of TransportationSystems whose routes are Roadways.
-fun RoadTransportationSystem : Class ;
-fun RoadTransportationSystem_Class : SubClass RoadTransportationSystem TransitSystem ;
-
--- The class of LandVehicles that are not 
--- RollingStock.
-fun RoadVehicle : Class ;
-fun RoadVehicle_Class : SubClass RoadVehicle LandVehicle ;
-
--- Any instance of Stealing which involves the threat 
--- of the use of force.
-fun Robbing : Class ;
-fun Robbing_Class : SubClass Robbing Stealing ;
-
--- Rock is any naturally formed aggregate of one or more 
--- minerals, consolidated or not, with some degree of mineralogic and chemical 
--- constancy, in popular use the term is usually restricted to those aggregates 
--- that are hard, compact, and coherent.
-fun Rock : Class ;
-fun Rock_Class : SubClass Rock Substance ;
-
--- A Spacecraft which has the shape of a cylinder 
--- with a cone on top and which is powered by a jet engine.
-fun Rocket : Class ;
-fun Rocket_Class : SubClass Rocket (both Projectile Spacecraft) ;
-
-
--- An attack in which a rocket or
--- missile is used.
-fun RocketMissileAttack : Class ;
-fun RocketMissileAttack_Class : SubClass RocketMissileAttack Bombing ;
-
--- A single rail car. Any RailVehicle that is 
--- not composed of other RailVehicles.
-fun RollingStock : Class ;
-fun RollingStock_Class : SubClass RollingStock RailVehicle ;
-
--- The top of a Building.
-fun Roof : Class ;
-fun Roof_Class : SubClass Roof StationaryArtifact ;
-
--- A Male Chicken.
-fun Rooster : Class ;
-fun Rooster_Chicken : SubClassC Rooster Chicken (\R -> attribute(var Chicken Object ? R)(el SexAttribute Attribute ? Male));
-
-
--- Motion that begins and ends at the same point, 
--- because the trajectory of the Motion is circular.
-fun Rotating : Class ;
-fun Rotating_Class : SubClass Rotating Motion ;
-
--- The Rotating component of a motor, generator or similar 
--- Device. Rotor The rotating armature of a motor or generator.
-fun Rotor : Class ;
-fun Rotor_Class : SubClass Rotor EngineeringComponent ;
-
--- Any ThreeDimensionalFigure that has a single
--- tangent at every point on its surface.
-fun RoundShape : Ind ThreeDimensionalFigure ;
-
-
--- Any instance of WaterTransportation where the 
--- instrument is an Oar that is manually powered.
-fun Rowing : Class ;
-fun Rowing_Class : SubClass Rowing WaterTransportation ;
-
--- A latex that is produced by certain species of 
--- BotanticalTrees.
-fun Rubber : Class ;
-fun Rubber_Class : SubClass Rubber PlantSubstance ;
-
--- A piece of Fabric whose purpose is to cover a Floor.
-fun Rug : Class ;
-fun Rug_Class : SubClass Rug Fabric ;
-
--- A Slavic language that is spoken in Russia.
-fun RussianLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
-
-
--- A Device which allows a Human to ride on a 
--- Horse.
-fun Saddle : Class ;
-fun Saddle_Class : SubClass Saddle Holder ;
-
--- A Container with a Lock which is intended 
--- to secure items from theft. Note that this covers safes, lockers, and locked 
--- storage compartments.
-fun SafeContainer : Class ;
-fun SafeContainer_Class : SubClass SafeContainer (both Container SecurityDevice) ;
-
-
--- The class of Positions which involve working on a 
--- ship, whether a merchant ship or a navy ship.
-fun Sailor : Class ;
-fun Sailor_Class : SubClass Sailor SkilledOccupation ;
-
--- Any instance of Working that involves Selling or 
--- trying to sell items.
-fun Sales : Class ;
-fun Sales_Class : SubClass Sales Working ;
-
--- Any Position which involves Selling 
--- or trying to sell items.
-fun SalesPosition : Class ;
-fun SalesPosition_Class : SubClass SalesPosition SkilledOccupation ;
-
--- A Solution consisting of SodiumChloride and 
--- Water.
-fun SalineSolution : Class ;
-fun SalineSolution_Class : SubClass SalineSolution Solution ;
-
--- Any kind of open shoe lacking a markedly
--- thicker heel. The toe may be enclosed, but there must be some opening in the upper
--- other than the Hole through which the foot is inserted.
-fun Sandal : Class ;
-fun Sandal_Class : SubClass Sandal Shoe ;
-
--- Any Food which consists of two or more pieces 
--- of bread and some sort of filling between the two pieces of bread.
-fun Sandwich : Class ;
-fun Sandwich_Class : SubClass Sandwich PreparedFood ;
-
--- The state of being happy about a state of
--- affairs that occurred in the past. In cases where that state of affairs 
--- is the product of one's own doing, this is known as pride.
-fun Satisfaction : Ind EmotionalState ;
-
-
--- Any instance of Increasing where the PhysicalQuantity 
--- involved is a CurrencyMeasure. This includes saving in a financial account
--- as well as stuffing gold bars under the matress, or a squirrel saving nuts
--- for winter.
-fun Saving : Class ;
-fun Saving_Class : SubClass Saving Increasing ;
-
--- A federally or state chartered 
--- FinancialCompany that takes Deposits from individuals, funds 
--- Mortgages, and pays Dividends.
-fun SavingsAndLoan : Class ;
-fun SavingsAndLoan_Class : SubClass SavingsAndLoan FinancialCompany ;
-
--- Any AbnormalAnatomicalStructure which results from the 
--- healing of a Lesion.
-fun Scar : Class ;
-fun Scar_Class : SubClass Scar AbnormalAnatomicalStructure ;
-
--- Any Funding which is made on the basis of merit 
--- and whose purpose is to allow the destination to realize an 
--- EducationalProgram.
-fun Scholarship : Class ;
-fun Scholarship_Class : SubClass Scholarship Funding ;
-
--- An EducationalOrganization with a curriculum, 
--- teachers, and students. Most Schools are housed in a Building 
--- dedicated to the EducationalOrganization.
-fun School : Class ;
-fun School_Class : SubClass School EducationalOrganization ;
-
--- Any FieldOfStudy which tests theories on the basis of 
--- careful observations and/or experiments and which has a cumulative body of results.
-fun Science : Class ;
-fun Science_Class : SubClass Science FieldOfStudy ;
-
--- A successful attempt to score a point in a Game.
-fun Score : Class ;
-fun Score_Class : SubClass Score GameShot ;
-
--- An AttachingDevice which contains a spiral of grooves to 
--- hold it in place and which is fastened with a Screwdriver.
-fun Screw : Class ;
-fun Screw_Class : SubClass Screw AttachingDevice ;
-
--- A Device that is used to rotate
--- a Screw, which by the action of its helical threads is driven into a 
--- medium that is softer than the material of the screw itself.
-fun Screwdriver : Class ;
-fun Screwdriver_Class : SubClass Screwdriver Device ;
-
--- The collection of Characters in a particular 
--- written language. Every WrittenCommunication consists of Characters 
--- written in a particular script. Scripts include different typefaces, as 
--- well as entirely different characters. 'Times Roman' is a very specific 
--- script. While the 'latin' character set is a general one, that has 
--- specific subclasses like Times Roman. Other scripts include Devanagri 
--- (which may be expressed in many different more specific typefaces), or 
--- Simplified Chinese.
-fun Script : Class ;
-fun Script_Class : SubClass Script Collection ;
-
--- Any ArtWork which is not constructed on the 
--- two_dimensional surface of a canvas, piece of paper, etc.
-fun Sculpture : Class ;
-fun Sculpture_Class : SubClass Sculpture ArtWork ;
-
--- SeasonOfYear is the class of four 
--- seasons correlated with the calendar Year and associated with 
--- changes in the length of daylight and with overall temperature 
--- changes. Depending upon the GeographicArea, a SeasonOfYear 
--- may also be associated with weather patterns (e.g., rainy, dry, 
--- windy). The characteristics of seasons (cold vs. hot temperatures, 
--- long vs. short days) are reversed from the NorthernHemisphere 
--- to the SouthernHemisphere.
-fun SeasonOfYear : Class ;
-fun SeasonOfYear_Class : SubClass SeasonOfYear TimeInterval ;
-
--- Any instance of Furniture which is designed to 
--- accommodate Humans who are Sitting.
-fun Seat : Class ;
-fun Seat_Class : SubClass Seat Furniture ;
-
--- Guiding someone to a Seat, e.g. as when an usher 
--- shows someone to a Seat in an Auditorium.
-fun Seating : Class ;
-fun Seating_Class : SubClass Seating Guiding ;
-
--- A color that is the product of mixing together 
--- two or more PrimaryColors.
-fun SecondaryColor : Class ;
-fun SecondaryColor_Class : SubClass SecondaryColor ColorAttribute ;
-
--- A School which admits students who have 
--- graduated from a middle school and which normally covers the ninth through 
--- twelfth grades. A SecondarySchool confers a high school diploma.
-fun SecondarySchool : Class ;
-fun SecondarySchool_Class : SubClass SecondarySchool School ;
-
--- The head of the UnitedStatesDepartmentOfInterior.
-fun SecretaryOfTheInterior : Ind GovernmentSecretary ;
-
-
--- The head of the United States Treasury Department.
-fun SecretaryOfTheTreasury : Ind GovernmentSecretary ;
-
-
--- A SecurityDevice that detects intrusions to 
--- a StationaryArtifact and issues a warning of some sort.
-fun SecurityAlarm : Class ;
-fun SecurityAlarm_Class : SubClass SecurityAlarm (both ElectricDevice SecurityDevice) ;
-
-
--- A Device whose purpose is to protect people or 
--- property from kidnappers and/or thieves.
-fun SecurityDevice : Class ;
-fun SecurityDevice_Class : SubClass SecurityDevice Device ;
-
--- The Organization that is charged with 
--- ensuring the security of members of the overall Organization and the 
--- property of the Organization.
-fun SecurityUnit : Class ;
-fun SecurityUnit_Class : SubClass SecurityUnit Organization ;
-
--- Any instance of UnilateralGetting which is done by 
--- a Government and which is not permitted by the origin of the UnilateralGetting.
-fun SeizingProperty : Class ;
-fun SeizingProperty_Class : SubClass SeizingProperty UnilateralGetting ;
-
--- SelfPoweredDevice is 
--- the subclass of Devices whose action is powered by some kind of on_board 
--- component or power source (not the user, which would be a 
--- UserPoweredVehicle).
-fun SelfPoweredDevice : Class ;
-fun SelfPoweredDevice_Device : SubClassC SelfPoweredDevice Device (\O -> exists Artifact (\G -> powerPlant(var Device Device ? O) (var Artifact Artifact ? G)));
-
-
--- SelfPoweredRoadVehicle is the 
--- class of RoadVehicles that are also PoweredVehicles. 
--- SelfPoweredRoadVehicle covers motorcycles, semi_trailers, RVs, etc., 
--- as well as Automobiles. This class includes vehicles powered by 
--- electricity, gasoline, diesel, and other fuels.
-fun SelfPoweredRoadVehicle : Class ;
-fun SelfPoweredRoadVehicle_Class : SubClass SelfPoweredRoadVehicle (both PoweredVehicle RoadVehicle) ;
-
-
--- Any LegalDecision where the defendant is assigned 
--- a punishment for a CriminalAction which was the subject of an earlier 
--- LegalConviction.
-fun Sentencing : Class ;
-fun Sentencing_Class : SubClass Sentencing LegalDecision ;
-
--- A noncomissioned MilitaryOfficer.
-fun Sergeant : Class ;
-fun Sergeant_Class : SubClass Sergeant MilitaryOfficer ;
-
--- A Lecture that is part of a ReligiousService.
-fun Sermon : Class ;
-fun Sermon_Class : SubClass Sermon Lecture ;
-
--- Any LiquidBodySubstance other than Blood.
-fun Serum : Class ;
-fun Serum_Class : SubClass Serum LiquidBodySubstance ;
-
--- An Organization that performs 
--- a public service and is regulated by the Government.
-fun ServiceOrganization : Class ;
-fun ServiceOrganization_Class : SubClass ServiceOrganization Organization ;
-
--- Any Position which involves working 
--- as a waiter or servant, either for an Organization (e.g. a restaurant) 
--- or for a person or family.
-fun ServicePosition : Class ;
-fun ServicePosition_Class : SubClass ServicePosition SkilledOccupation ;
-
--- Working as a waiter or servant, either for an 
--- Organization (e.g. a Restaurant) or for a person or family.
-fun Serving : Class ;
-fun Serving_Class : SubClass Serving Working ;
-
--- A Pipline which is used to transport human 
--- waste to an area where it can be treated and/or disposed of.
-fun SewageSystem : Class ;
-fun SewageSystem_Class : SubClass SewageSystem Pipeline ;
-
--- Attaching two pieces of Fabric or one part of a 
--- piece of Fabric to another part by means of needle and thread.
-fun Sewing : Class ;
-fun Sewing_Class : SubClass Sewing Attaching ;
-
--- The subclass of ChangeOfPossession where a 
--- properPart of the patient is given by the agent or the destination.
-fun Sharing : Class ;
-fun Sharing_Class : SubClass Sharing ChangeOfPossession ;
-
--- A domesticated HoofedMammal that is bred for its 
--- wool and for its meat (known as mutton).
-fun Sheep : Class ;
-fun Sheep_Class : SubClass Sheep (both DomesticAnimal HoofedMammal) ;
-
-
--- An piece of Furniture or part of a piece of Furniture 
--- that is used for keeping or displaying things.
-fun Shelf : Class ;
-fun Shelf_Class : SubClass Shelf Artifact ;
-
--- A PoliceOfficer whose jurisdiction is a County.
-fun Sheriff : Class ;
-fun Sheriff_Class : SubClass Sheriff PoliceOfficer ;
-
--- An Artifact that is held by the hand or whole arm and 
--- is used to prevent injuries from Weapons.
-fun Shield : Class ;
-fun Shield_Class : SubClass Shield Artifact ;
-
--- Ship is the class of large WaterVehicle used 
--- for travel on oceans, seas, or large lakes.
-fun Ship : Class ;
-fun Ship_Class : SubClass Ship DisplacementHullWaterVehicle ;
-
--- The class of Positions which involve the command 
--- of a ship.
-fun ShipCaptain : Class ;
-fun ShipCaptain_Class : SubClass ShipCaptain Sailor ;
-
--- The class of Positions that involve some responsibility 
--- on a ship and are lower in rank than ShipCaptain.
-fun ShipMate : Class ;
-fun ShipMate_Class : SubClass ShipMate Sailor ;
-
--- The class of Sailors which have a position of 
--- responsibility on a Ship.
-fun ShipOfficer : Class ;
-fun ShipOfficer_Class : SubClass ShipOfficer Sailor ;
-
--- Shipping is the subclass of Transportation 
--- events in which goods are transported from one place to another by an 
--- agent who is entrusted with the goods temporarily just in order to move 
--- them. Shipping may be done within an organization or it may be done 
--- by an outside commercial agent. See CommercialShipping.
-fun Shipping : Class ;
-fun Shipping_Class : SubClass Shipping Transportation ;
-
--- An item of Clothing which covers the upper body of a 
--- Human.
-fun Shirt : Class ;
-fun Shirt_Class : SubClass Shirt Clothing ;
-
--- Clothing that is intended to be worn on the Foot. 
--- It consists of an upper, a sole, and a heel.
-fun Shoe : Class ;
-fun Shoe_Class : SubClass Shoe Clothing ;
-
--- The bottom part of a Shoe that is
--- intended to be the point of contact with the ground while the
--- shoe is being worn.
-fun ShoeSole : Class ;
-fun ShoeSole_Class : SubClass ShoeSole Artifact ;
-
--- A MercantileOrganization which is a collection 
--- of various shops gathered together in a single, modern development.
-fun ShoppingMall : Class ;
-fun ShoppingMall_Class : SubClass ShoppingMall MercantileOrganization ;
-
--- A brief work of fiction, often bound with other 
--- short stories in a Book or Periodical.
-fun ShortStory : Class ;
-fun ShortStory_Class : SubClass ShortStory (both Article FictionalText) ;
-
-
--- Decreasing the length of something.
-fun Shortening : Class ;
-fun Shortening_Class : SubClass Shortening Decreasing ;
-
--- A solid metal Ball that is used in the sport of 
--- shotput.
-fun ShotBall : Class ;
-fun ShotBall_Class : SubClass ShotBall Ball ;
-
--- The part of a Primate between the Arm and 
--- the neck.
-fun Shoulder : Class ;
-fun Shoulder_Class : SubClass Shoulder (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Moving the Shoulders in such a way that the motion 
--- is intended to express something to someone else.
-fun Shrugging : Class ;
-fun Shrugging_Class : SubClass Shrugging (both BodyMotion Gesture) ;
-
-
--- A prepared path for pedestrians alongside a Roadway.
-fun Sidewalk : Class ;
-fun Sidewalk_Class : SubClass Sidewalk StationaryArtifact ;
-
--- Signalling is the subclass of Guiding 
--- processes in which an agent, animate or inanimate, sends a signal to 
--- another Object. In many cases, this signal will be an electrical or 
--- electronic one. Some signals may directly control the behavior of 
--- the object signalled, while others may merely cause information to be 
--- presented. Instances of electrical Signalling are typically more 
--- complex than simply than operation of a DeviceSwitch, though in some 
--- cases, Signalling involves remote activation of such a switch by another 
--- device.
-fun Signalling : Class ;
-fun Signalling_Class : SubClass Signalling Guiding ;
-
--- Fabric that is woven from the strands produced by 
--- certain Larval Insects.
-fun Silk : Class ;
-fun Silk_Class : SubClass Silk Fabric ;
-
--- The class of Falling processes that occur 
--- in a BodyOfWater.
-fun Sinking : Class ;
-fun Sinking_Class : SubClass Sinking Falling ;
-
--- The BodyMotion of moving from a Standing 
--- to a Sitting position.
-fun SittingDown : Class ;
-fun SittingDown_Class : SubClass SittingDown (both BodyMotion MotionDownward) ;
-
-
--- Any ArtWork which is produced by a pencil or 
--- piece of charcoal.
-fun Sketch : Class ;
-fun Sketch_Class : SubClass Sketch ArtWork ;
-
--- Any Position which requires 
--- learning a set of skills.
-fun SkilledOccupation : Class ;
-fun SkilledOccupation_Class : SubClass SkilledOccupation Position ;
-
--- A BodyCovering that comprises part of the surface 
--- of Animals.
-fun Skin : Class ;
-fun Skin_Class : SubClass Skin (both AnimalAnatomicalStructure BodyCovering) ;
-
-
--- The Bone that is found in the Heads of Vertebrates.
-fun Skull : Class ;
-fun Skull_Class : SubClass Skull Bone ;
-
--- A Window that is part of the Ceiling of 
--- a Room.
-fun Skylight : Class ;
-fun Skylight_Class : SubClass Skylight Window ;
-
--- A piece of Clothing that covers the Arm. A 
--- Sleeve is always part of a Coat or a Shirt.
-fun Sleeve : Class ;
-fun Sleeve_Class : SubClass Sleeve Clothing ;
-
--- Spreading the lips in such a way as to convey 
--- happiness.
-fun Smiling : Class ;
-fun Smiling_Class : SubClass Smiling FacialExpression ;
-
--- Inhaling and exhaling Smoke produced by a 
--- CigarOrCigarette.
-fun Smoking : Class ;
-fun Smoking_Class : SubClass Smoking RecreationOrExercise ;
-
--- Any Device whose purpose is Smoking.
-fun SmokingDevice : Class ;
-fun SmokingDevice_Class : SubClass SmokingDevice Device ;
-
--- A SmokingDevice consisting of a tube and a small 
--- bowl.
-fun SmokingPipe : Class ;
-fun SmokingPipe_Class : SubClass SmokingPipe SmokingDevice ;
-
--- Any instance Transportation which is also a 
--- CriminalAction.
-fun Smuggling : Class ;
-fun Smuggling_Class : SubClass Smuggling (both CriminalAction Transportation) ;
-
-
--- A long and narrow Reptile which lacks Limbs.
-fun Snake : Class ;
-fun Snake_Class : SubClass Snake Reptile ;
-
--- The ConsciousnessAttribute of someone whose motor and
--- cognitive faculties are not significantly impaired by a BiologicallyActiveSubstance.
-fun Sober : Ind ConsciousnessAttribute ;
-
-
--- The process of transitioning from a state of 
--- being Drunk to a state of being Sober.
-fun SoberingUp : Class ;
-fun SoberingUp_Class : SubClass SoberingUp PsychologicalProcess ;
-
--- Any Meeting where the intent is primarily 
--- to socialize and be entertained.
-fun SocialParty : Class ;
-fun SocialParty_Class : SubClass SocialParty (both Meeting RecreationOrExercise) ;
-
-
--- Any Science which studies human behavior, either in 
--- the aggregate, as do, for example, Economics and Linguistics, or with respect to 
--- the individual, as does Psychology.
-fun SocialScience : Class ;
-fun SocialScience_Class : SubClass SocialScience Science ;
-
--- A piece of Clothing that is made of a soft Fabric 
--- like Cotton and that is intended to be worn on the Foot.
-fun Sock : Class ;
-fun Sock_Class : SubClass Sock Clothing ;
-
--- SodiumChloride is the compound of Sodium and Chloride,
--- which may appear in crystalline form or in solution with water or other substances.
--- It is a compound found in solution in significant quantities in sea water.
-fun SodiumChloride : Class ;
-fun SodiumChloride_Class : SubClass SodiumChloride ChemicalSalt ;
-
--- A padded Seat that is designed to accommodate more 
--- than one Human.
-fun Sofa : Class ;
-fun Sofa_Class : SubClass Sofa Seat ;
-
--- Attaching two things by means of a MetallicAlloy.
-fun Soldering : Class ;
-fun Soldering_Class : SubClass Soldering Attaching ;
-
--- The class of SkilledOccupations which involve serving in 
--- the armed forces of a Nation.
-fun Soldier : Class ;
-fun Soldier_Class : SubClass Soldier SkilledOccupation ;
-
--- Any BodyMotion which begins and ends in 
--- a Sitting position and where the feet roll over the head and return to 
--- their original position.
-fun Somersaulting : Class ;
-fun Somersaulting_Class : SubClass Somersaulting BodyMotion ;
-
--- Something that emits and receives sound 
--- for the purpose of locating and tracking distant objects. Note that
--- this covers both manmade devices and BodyParts such as the sonar
--- of bats and dolphins.
-fun Sonar : Class ;
-fun Sonar_Class : SubClass Sonar CorpuscularObject ;
-
--- Any MusicalComposition which contains Lyrics.
-fun Song : Class ;
-fun Song_Class : SubClass Song MusicalComposition ;
-
--- Food which is prepared by reducing Meat 
--- and/or FruitOrVegetables to a translucent broth which can be used as 
--- a base for soups or sauces.
-fun SoupStock : Class ;
-fun SoupStock_Class : SubClass SoupStock PreparedFood ;
-
--- The class of all Regions which are not 
--- GeographicAreas.
-fun SpaceRegion : Class ;
-fun SpaceRegion_Class : SubClass SpaceRegion Region ;
-
--- Any instance of Transportation where the 
--- instrument is a Spacecraft and which is through a SpaceRegion.
-fun SpaceTransportation : Class ;
-fun SpaceTransportation_Class : SubClass SpaceTransportation Transportation ;
-
--- Any Vehicle which is capable of 
--- SpaceTransportation.
-fun Spacecraft : Class ;
-fun Spacecraft_Class : SubClass Spacecraft Vehicle ;
-
--- A Romance language that is the official language 
--- of Spain, Mexico, and many Central and South American countries.
-fun SpanishLanguage : Ind (both SpokenHumanLanguage NaturalLanguage) ;
-
-
--- A Weapon with a long handle and a short 
--- blade.
-fun Spear : Class ;
-fun Spear_Class : SubClass Spear Weapon ;
-
--- The class of ThreeDimensionalFigures such that 
--- all GeometricPoints that make up the Sphere are equidistant from a 
--- single GeometricPoint, known as the center of the Sphere.
-fun Sphere : Class ;
-fun Sphere_Class : SubClass Sphere ThreeDimensionalFigure ;
-
--- A cord of nerves that carries impulses to 
--- and from the Brain. It is contained within the SpinalColumn.
-fun SpinalCord : Class ;
-fun SpinalCord_Class : SubClass SpinalCord Organ ;
-
--- Any instance of Impelling where the origin is 
--- the Mouth of the agent.
-fun Spitting : Class ;
-fun Spitting_Class : SubClass Spitting Impelling ;
-
--- An Organ on the left side of the body that produces 
--- Cells that play a crucial role in immune response.
-fun Spleen : Class ;
-fun Spleen_Class : SubClass Spleen (both AnimalAnatomicalStructure Organ) ;
-
-
--- The BodyPosition of extending one's Legs at 
--- right angles to one's Torso.
-fun Splitting : Ind BodyPosition ;
-
-
--- A GameShot which is part of a Sport and 
--- which serves to start the Sport, e.g. the beginning shot in Tennis, 
--- Badminton or Squash.
-fun SportServe : Class ;
-fun SportServe_Class : SubClass SportServe GameShot ;
-
--- Any GameAttribute that is specific to 
--- a Sport.
-fun SportsAttribute : Class ;
-fun SportsAttribute_Class : SubClass SportsAttribute GameAttribute ;
-
--- A specially designated and maintained facility 
--- where Sports are played. Note that this covers sports fields, stadiums, 
--- and gymnasiums.
-fun SportsFacility : Class ;
-fun SportsFacility_Class : SubClass SportsFacility StationaryArtifact ;
-
--- A specially designated and maintained area 
--- where Sports are played.
-fun SportsGround : Class ;
-fun SportsGround_Class : SubClass SportsGround StationaryArtifact ;
-
--- An Organization whose members are SportsTeams 
--- and whose purpose is to set up games between its members.
-fun SportsLeague : Class ;
-fun SportsLeague_Class : SubClass SportsLeague Organization ;
-
--- A SportsAttribute that indicates that a player in 
--- a Sport can no longer compete because he has been tagged with the GamePiece.
-fun SportsOut : Ind SportsAttribute ;
-
-
--- A Plan for a Maneuver within a TeamSport.
-fun SportsPlay : Class ;
-fun SportsPlay_Class : SubClass SportsPlay Plan ;
-
--- A Position which is filled by someone on a 
--- SportsTeam and which represents the role played by the person on the team.
-fun SportsPosition : Class ;
-fun SportsPosition_Class : SubClass SportsPosition SkilledOccupation ;
-
--- A GroupOfPeople who habitually play a Sport 
--- together, either as an occupation or as a leisure activity.
-fun SportsTeam : Class ;
-fun SportsTeam_Class : SubClass SportsTeam GroupOfPeople ;
-
--- Any instance of Transfer of a Liquid which is 
--- accomplished by converting the Liquid into a mist.
-fun Spraying : Class ;
-fun Spraying_Class : SubClass Spraying (both LiquidMotion Transfer) ;
-
-
--- The SeasonOfYear that begins at the spring 
--- equinox and ends at the summer solstice. SpringSeason is the class of 
--- TimeIntervals associated with the calendar months of March 
--- through May.
-fun SpringSeason : Class ;
-fun SpringSeason_Class : SubClass SpringSeason SeasonOfYear ;
-
--- Any Rectangle whose sides are all equal.
-fun Square : Class ;
-fun Square_Class : SubClass Square Rectangle ;
-
--- SquareMile represents a UnitOfMeasure 
--- equal to one square Mile.
-fun SquareMile : Ind UnitOfArea ;
-
-
--- SquareYard represents a UnitOfMeasure 
--- equal to one square YardLength.
-fun SquareYard : Ind UnitOfArea ;
-
-
--- Sitting on one's heels.
-fun Squatting : Ind BodyPosition ;
-
-
--- A tree_dwelling Rodent with a bushy tail.
-fun Squirrel : Class ;
-fun Squirrel_Class : SubClass Squirrel Rodent ;
-
--- A Wagon that is pulled by Horses and whose purpose 
--- was to transport Humans and their luggage from one City to the next, especially 
--- in areas which did not have an established transportation system, e.g. the old west.
-fun StageCoach : Class ;
-fun StageCoach_Class : SubClass StageCoach Wagon ;
-
--- A StationaryArtifact which allows one to climb, step 
--- by step, from one level to another.
-fun Stairway : Class ;
-fun Stairway_Class : SubClass Stairway StationaryArtifact ;
-
--- The BodyMotion of moving from a Sitting 
--- to a Standing position.
-fun StandingUp : Class ;
-fun StandingUp_Class : SubClass StandingUp (both BodyMotion MotionUpward) ;
-
-
--- A complex Carbohydrate that is the main form in 
--- which Carbohydrates are stored.
-fun Starch : Class ;
-fun Starch_Class : SubClass Starch Carbohydrate ;
-
--- (StartFn ?PROCESS) denotes IntentionalProcesses 
--- of bringing it about that Processes of type ?PROCESS begin, e.g. start 
--- working, begin running, etc.
-fun StartFn : El Process -> Desc IntentionalProcess ;
-
-
--- Killing someone by depriving them of Food.
-fun Starving : Class ;
-fun Starving_Class : SubClass Starving Killing ;
-
--- The class of Governments whose 
--- jurisdictions are StateOrProvinces.
-fun StateGovernment : Class ;
-fun StateGovernment_Class : SubClass StateGovernment Government ;
-
--- A Sentence that is stated to be true.
-fun Statement : Class ;
-fun Statement_Sentence : SubClassC Statement Sentence (\SENTENCE -> exists Stating (\STATE -> result(var Stating Process ? STATE)(var Sentence Entity ? SENTENCE)));
-
-
--- Any UnilateralGetting which is not permitted by the 
--- origin of the UnilateralGetting. These cases of UnilateralGetting are 
--- distinguished from ones where the destination is the subject of charity or 
--- other forms of benefaction.
-fun Stealing : Class ;
-fun Stealing_Class : SubClass Stealing (both CriminalAction UnilateralGetting) ;
-
-
--- SteamEngine is the subclass of Engines 
--- that produce mechanical power from heat and steam pressure.
-fun SteamEngine : Class ;
-fun SteamEngine_Class : SubClass SteamEngine Engine ;
-
--- A MetallicAlloy made from Iron and other elements.
-fun Steel : Class ;
-fun Steel_Class : SubClass Steel MetallicAlloy ;
-
--- A component of a ReligiousBuilding that is tall 
--- and narrow and symbolizes the connection between humanity and a deity.
-fun Steeple : Class ;
-fun Steeple_Class : SubClass Steeple StationaryArtifact ;
-
--- A VehicleController which enables one to steer 
--- a Vehicle.
-fun SteeringWheel : Class ;
-fun SteeringWheel_Class : SubClass SteeringWheel VehicleController ;
-
--- The BodyMotion of extending one foot forward 
--- and then bringing the other foot to the same lateral position as the 
--- first leg.
-fun Stepping : Class ;
-fun Stepping_Class : SubClass Stepping BodyMotion ;
-
--- A StationaryArtifact which allows one to climb, step 
--- by step, from one level to another.
-fun Steps : Class ;
-fun Steps_Class : SubClass Steps StationaryArtifact ;
-
--- A class of OrganicCompounds having the same basic 
--- chemical structure and having significant physiological effects.
-fun Steroid : Class ;
-fun Steroid_Class : SubClass Steroid (both BiologicallyActiveSubstance OrganicCompound) ;
-
-
--- Any BiologicallyActiveSubstance which has 
--- the effect of stimulating the central nervous system, i.e. increasing 
--- function or activity in the Brain or SpinalCord.
-fun Stimulant : Class ;
-fun Stimulant_Class : SubClass Stimulant BiologicallyActiveSubstance ;
-
--- Any instance of LiquidMotion which is also an 
--- instance of Combining two or more Liquids.
-fun Stirring : Class ;
-fun Stirring_Class : SubClass Stirring (both Combining LiquidMotion) ;
-
-
--- An instrument that signifies an ownership position, 
--- or equity, in a Corporation, and represents a claim on its proportionate 
--- share in the corporation's assets and profits.
-fun Stock : Class ;
-fun Stock_Class : SubClass Stock (both FinancialInstrument Investment) ;
-
-
--- A muscular sac that is the principal organ of 
--- digestion.
-fun Stomach : Class ;
-fun Stomach_Class : SubClass Stomach (both AnimalAnatomicalStructure Organ) ;
-
-
--- An act where a victim or victims is attacked
--- with stones. The stones may either be placed on top of a victim in
--- order to cause death by pressure and suffocation, in which case the act
--- is typically part of a ritualized legal sentence, or where the victim
--- is pelted with stones causing injury or death by trauma. The intent
--- of such an act is usually the death of the victim.
-fun Stoning : Class ;
-fun Stoning_Class : SubClass Stoning ViolentContest ;
-
--- (StopFn ?PROCESS) denotes IntentionalProcesses 
--- of bringing it about that Processes of type ?PROCESS end, e.g. stop 
--- walking, quit working, etc.
-fun StopFn : El Process -> Desc IntentionalProcess ;
-
-
--- A Building that has the purpose of housing
--- FinancialTransactions.
-fun Store : Class ;
-fun Store_Class : SubClass Store Building ;
-
--- Someone who operates a store which he
--- either owns or rents.
-fun StoreOwner : Ind OccupationalRole ;
-
-
--- The Region where two or more unstable air 
--- masses meet.
-fun StormFront : Class ;
-fun StormFront_Class : SubClass StormFront AtmosphericRegion ;
-
--- A HeatingDevice which consists one or more burners for 
--- heating pots and pans of Food.
-fun Stove : Class ;
-fun Stove_Class : SubClass Stove HeatingDevice ;
-
--- Any instance of Grabbing where the patient is 
--- someone else's throat and the intention is to make it impossible for the other 
--- person to breathe.
-fun Strangling : Class ;
-fun Strangling_Class : SubClass Strangling Grabbing ;
-
--- (StreetAddressFn ?BUILDING ?ROAD ?CITY 
--- ?COUNTRY) returns the Agent, e.g. a family, an organization, a person, 
--- etc. that resides or conducts business at the corresponding address.
-fun StreetAddressFn : El StationaryArtifact -> El Roadway -> El City -> El Nation -> Ind Agent ;
-
-
--- Streetcar is the subclass of 
--- ElectrifiedRailwayCars that run on tracks laid into, along, or 
--- beside city Streets.
-fun Streetcar : Class ;
-fun Streetcar_Class : SubClass Streetcar ElectrifiedRailwayCar ;
-
--- A SoundAttribute of Syllables. It denotes 
--- the quality of being emphasized over the other Syllables in the same 
--- Word.
-fun Stressed : Ind SoundAttribute ;
-
-
--- Moving two sides of an object in opposite 
--- directions so that the object becomes both longer and thinner.
-fun Stretching : Class ;
-fun Stretching_Class : SubClass Stretching (both Lengthening Motion) ;
-
-
--- A long, thin strand of Fabric that is used for Tying 
--- things together, etc. Note that this class covers a cord of any width, including 
--- rope, twine, and thread, for example.
-fun String : Class ;
-fun String_Class : SubClass String Artifact ;
-
--- A MusicalInstrument which is played by 
--- striking strings, either directly as with a guitar or indirectly via keys 
--- as with Pianos.
-fun StringInstrument : Class ;
-fun StringInstrument_Class : SubClass StringInstrument MusicalInstrument ;
-
--- A person who participates in an
--- EducationalProcess in order to learn something.
-fun Student : Ind SocialRole ;
-
-
--- A WaterVehicle which is capable of travelling 
--- under the water level by filling tanks with water.
-fun Submarine : Class ;
-fun Submarine_Class : SubClass Submarine WaterVehicle ;
-
--- A subway is a hollow area of the earth, typically
--- under large cities, designed for running trains that move people. It is
--- distinguished from other kinds of tunnels in that trains run through
--- them, primarily for the purpose of carrying people rather than ore, for
--- example.
-fun Subway : Class ;
-fun Subway_Class : SubClass Subway Hole ;
-
--- Any RailTransportationSystem that runs 
--- exclusively through Tunnels.
-fun SubwaySystem : Class ;
-fun SubwaySystem_Class : SubClass SubwaySystem RailTransportationSystem ;
-
--- Killing someone by asphyxiation, i.e. by 
--- depriving them of Oxygen.
-fun Suffocating : Class ;
-fun Suffocating_Class : SubClass Suffocating Killing ;
-
--- A simple Carbohydrate that has a sweet taste and 
--- consists mostly or entirely of sucrose.
-fun Sugar : Class ;
-fun Sugar_Class : SubClass Sugar Carbohydrate ;
-
--- Any instance of Killing where the agent and 
--- the experiencer are identical.
-fun Suicide : Class ;
-fun Suicide_Class : SubClass Suicide Killing ;
-
--- A bomb attack in which the bomber
--- intends to blow himself up during the course of the attack. The bomber
--- is the delivery mechanism for the explosive and the bomb is typically
--- in close contact with the bomber, such as being strapped around his
--- torso. This action is distinguished from actions in which the bomber
--- merely happens to be blown up by his own bomb in that the bomber
--- knows that he is committing suicide.
-fun SuicideBombing : Class ;
-fun SuicideBombing_Class : SubClass SuicideBombing (both Bombing Killing) ;
-
-
--- The SeasonOfYear that begins at the summer 
--- solstice and ends at the autumnal equinox.
-fun SummerSeason : Class ;
-fun SummerSeason_Class : SubClass SummerSeason SeasonOfYear ;
-
--- Any instance of RadiatingLight where the 
--- Sun (Sol) is the origin.
-fun Sunlight : Class ;
-fun Sunlight_Class : SubClass Sunlight RadiatingLight ;
-
--- The TimeInterval of each Day when the sun is rising 
--- and is partially overlapped by the horizon line.
-fun Sunrise : Class ;
-fun Sunrise_Class : SubClass Sunrise TimeInterval ;
-
--- The TimeInterval of each Day when the sun is setting 
--- and is partially overlapped by the horizon line.
-fun Sunset : Class ;
-fun Sunset_Class : SubClass Sunset TimeInterval ;
-
--- A Sentence that is assumed to be true, possibly 
--- just for the sake of argument.
-fun Supposition : Class ;
-fun Supposition_Sentence : SubClassC Supposition Sentence (\SENTENCE -> exists Supposing (\SUPPOSE -> result(var Supposing Process ? SUPPOSE)(var Sentence Entity ? SENTENCE)));
-
-
--- Surfactants, also known as Wetting agents, 
--- lower the surface tension of a Liquid, allowing easier spreading. The 
--- term surfactant is a compression of 'Surface active agent'. Surfactants 
--- are usually organic compounds that contain both hydrophobic and 
--- hydrophilic groups, and are thus semi_soluble in both organic and aqueous 
--- solvents.
-fun Surfactant : Class ;
-fun Surfactant_Class : SubClass Surfactant Substance ;
-
--- The Profession of being a surgeon, i.e. being a 
--- medical doctor who specializes in performing surgical operations.
-fun Surgeon : Class ;
-fun Surgeon_Class : SubClass Surgeon MedicalDoctor ;
-
--- The EmotionalState that one experiences when something 
--- unexpected and of significance occurs.
-fun Surprise : Ind EmotionalState ;
-
-
--- An AnimalSubstance that contains SodiumChloride 
--- and is produced by the sweat glands.
-fun Sweat : Class ;
-fun Sweat_Class : SubClass Sweat AnimalSubstance ;
-
--- Removing small particles from the floor by means of 
--- a Broom.
-fun Sweeping : Class ;
-fun Sweeping_Class : SubClass Sweeping Removing ;
-
--- A FluidContainer that is filled with Water 
--- and that is used for Swimming.
-fun SwimmingPool : Class ;
-fun SwimmingPool_Class : SubClass SwimmingPool (both FluidContainer StationaryArtifact) ;
-
-
--- An EngineeringComponent which is capable of turning 
--- an ElectricDevice on and off.
-fun SwitchDevice : Class ;
-fun SwitchDevice_Class : SubClass SwitchDevice EngineeringComponent ;
-
--- A Weapon with a long blade and covered 
--- handle.
-fun Sword : Class ;
-fun Sword_Class : SubClass Sword Weapon ;
-
--- A sequence of Characters from the same Word 
--- that denote a single sound.
-fun Syllable : Class ;
-fun Syllable_Class : SubClass Syllable SymbolicString ;
-
--- A ShapeAttribute that applies to a 
--- SelfConnectedObject that can be divided into two copies of each other.
-fun SymmetricShape : Ind ShapeAttribute ;
-
-
--- A piece of Furniture with four legs and a flat top. 
--- It is used either for eating, paperwork or meetings.
-fun Table : Class ;
-fun Table_Class : SubClass Table Furniture ;
-
--- Devices that are used in Ingesting (Eating 
--- and/or Drinking) a meal. This coves dishware, flatware, and glassware.
-fun Tableware : Class ;
-fun Tableware_Class : SubClass Tableware Device ;
-
--- A BodyPart which extends from the rear of the 
--- main body of some Vertebrates.
-fun Tail : Class ;
-fun Tail_Class : SubClass Tail AnimalAnatomicalStructure ;
-
--- Any VehicleLight which is attached to the back 
--- of a Vehicle.
-fun Taillight : Class ;
-fun Taillight_Class : SubClass Taillight VehicleLight ;
-
--- Any Process where the experiencer contracts a 
--- DiseaseOrSyndrome.
-fun TakingIll : Class ;
-fun TakingIll_Class : SubClass TakingIll PathologicProcess ;
-
--- Any instance of Translocation which starts on something other 
--- than an AtmosphericRegion and which has an instance of Flying as a subProcess.
-fun TakingOff : Class ;
-fun TakingOff_Class : SubClass TakingOff Translocation ;
-
--- A thin strip of Fabric or Paper that is used to attach 
--- two things.
-fun Tape : Class ;
-fun Tape_Class : SubClass Tape AttachingDevice ;
-
--- A Restaurant whose primary service is selling 
--- AlcoholicBeverages to customers.
-fun Tavern : Class ;
-fun Tavern_Class : SubClass Tavern Restaurant ;
-
--- A fee charged by a government on a product, income, or activity.
-fun Tax : Class ;
-fun Tax_Class : SubClass Tax ChargingAFee ;
-
--- A FormText that is used for calculating the amount 
--- of income tax owed in a given year.
-fun TaxReturn : Class ;
-fun TaxReturn_Class : SubClass TaxReturn FormText ;
-
--- An Automobile which is used to transport people 
--- on short trips in exchange for a fare.
-fun Taxicab : Class ;
-fun Taxicab_Class : SubClass Taxicab Automobile ;
-
--- A Taxonomy is a ClassificationScheme
--- that typically includes the salient concepts of a domain of
--- interest, plus, minimally, a binary `broader than'/`narrower
--- than' relation by which the concepts are linked. The `broader
--- than'/`narrower than' relation is usually conceived as set_ or
--- class_based subsumption, but taxonomies are notorious for
--- conflating the set membership and set subsumption (i.e.,
--- subset/superset) relations into a single `IS_A' relation. Some
--- taxonomies include additional binary relations, such as
--- `subpart'/`superpart'.
-fun Taxonomy : Class ;
-fun Taxonomy_Class : SubClass Taxonomy ClassificationScheme ;
-
--- A Beverage which is prepared by infusing tea leaves 
--- into hot water.
-fun Tea : Class ;
-fun Tea_Class : SubClass Tea (both Beverage PreparedFood) ;
-
-
--- The Profession of being a teacher.
-fun Teacher : Ind Profession ;
-
-
--- Any Sport which is played by SportsTeams, e.g. 
--- Baseball and Football.
-fun TeamSport : Class ;
-fun TeamSport_Class : SubClass TeamSport Sport ;
-
--- The class of SalineSolutions produced by 
--- the lacrimal glands of the Eyes.
-fun TearSubstance : Class ;
-fun TearSubstance_Class : SubClass TearSubstance (both LiquidBodySubstance SalineSolution) ;
-
-
--- A HumanYouth between puberty and the age of 20.
-fun Teenager : Class ;
-fun Teenager_Class : SubClass Teenager HumanYouth ;
-
--- A Device that permits LinguisticCommunication 
--- between remote points by means of a code of aural dots and dashes that can 
--- be converted into letters of an alphabet.
-fun Telegraph : Class ;
-fun Telegraph_Class : SubClass Telegraph (both CommunicationDevice ElectricDevice) ;
-
-
--- A Device that permits LinguisticCommunication 
--- between remote points by converting sound into electrical signals that are 
--- then transmitted. When the signals are received, they are converted back 
--- into sound.
-fun Telephone : Class ;
-fun Telephone_Class : SubClass Telephone (both CommunicationDevice ElectricDevice) ;
-
-
--- A WireLine that carries telephone signals and 
--- allows users of Telephones or Telegraphs to communicate with one another.
-fun TelephoneLine : Class ;
-fun TelephoneLine_Class : SubClass TelephoneLine WireLine ;
-
--- Any instance of Speaking where the 
--- instrument of Communication is a Telephone.
-fun Telephoning : Class ;
-fun Telephoning_Class : SubClass Telephoning Speaking ;
-
--- Any instance of Broadcasting which 
--- is intended to be received by a Television.
-fun TelevisionBroadcasting : Class ;
-fun TelevisionBroadcasting_Class : SubClass TelevisionBroadcasting Broadcasting ;
-
--- A TelevisionReceiver is a Device for 
--- receiving television broadcast signals from a TelevisionStation. TelevisionReceiver A TelevisionReceiver is a Device for receiving 
--- television broadcast signals from a TelevisionStation or signals
--- transmitted through a cable from a CableTelevisionSystem.
-fun TelevisionReceiver : Class ;
-fun TelevisionReceiver_Class : SubClass TelevisionReceiver ReceiverDevice ;
-
--- Any Stating which is both False and believed 
--- to be False by the agent of the Stating.
-fun TellingALie : Class ;
-fun TellingALie_Class : SubClass TellingALie Stating ;
-
--- Tissue that connects Muscle to Bone.
-fun Tendon : Class ;
-fun Tendon_Class : SubClass Tendon (both AnimalSubstance Tissue) ;
-
-
--- A MobileResidence that is made of Fabric and poles and 
--- can be easily assembled and disassembled.
-fun Tent : Class ;
-fun Tent_Class : SubClass Tent MobileResidence ;
-
--- A group that uses violent means in an
---  attempt to bring about their political aims. Those violent means are
---  distinguished from a war between nations, or a civil war in that the group
---  is at least partially clandestine and a significant proportion of its acts
---  are against non_military targets.
-fun TerroristOrganization : Class ;
-fun TerroristOrganization_Class : SubClass TerroristOrganization PoliticalOrganization ;
-
--- A FormText which is intended to measure some aspect 
--- of the cognitive capabilities, e.g. intelligence or knowledge of a domain, 
--- of the person taking the test.
-fun TestForm : Class ;
-fun TestForm_Class : SubClass TestForm (both FormText MeasuringDevice) ;
-
-
--- A Certificate that describes how a person's 
--- property is to be distributed after the death of the person.
-fun Testament : Class ;
-fun Testament_Class : SubClass Testament Certificate ;
-
--- Giving testimony as part of a JudicialProcess.
-fun Testifying : Class ;
-fun Testifying_Class : SubClass Testifying Stating ;
-
--- Any ExpressingApproval to a person for something 
--- that the person did in the past and that is regarded as being to the thanker's 
--- benefit.
-fun Thanking : Class ;
-fun Thanking_Class : SubClass Thanking ExpressingApproval ;
-
--- Often know as the stage, the 
--- Position of performing live plays.
-fun TheaterProfession : Class ;
-fun TheaterProfession_Class : SubClass TheaterProfession EntertainmentProfession ;
-
--- The systematic study of religious practice and religious truth.
-fun Theology : Ind FieldOfStudy ;
-
-
--- Any Device that measures and represents 
--- TemperatureMeasure.
-fun Thermometer : Class ;
-fun Thermometer_Class : SubClass Thermometer MeasuringDevice ;
-
--- Any Committing where the thing promised 
--- is something that is deemed undesirable by the destination of the 
--- Committing.
-fun Threatening : Class ;
-fun Threatening_Class : SubClass Threatening Committing ;
-
--- A BodyVessel which connects the Mouth to the 
--- lungs and stomach.
-fun Throat : Class ;
-fun Throat_Class : SubClass Throat (both AnimalAnatomicalStructure BodyVessel) ;
-
-
--- Any instance of Impelling where the instrument is 
--- an Arm.
-fun Throwing : Class ;
-fun Throwing_Class : SubClass Throwing (both BodyMotion Impelling) ;
-
-
--- The thick, short Finger of each Hand.
-fun Thumb : Class ;
-fun Thumb_Class : SubClass Thumb Finger ;
-
--- Any instance of RadiatingSound which is caused by 
--- an instance of Lightning.
-fun Thunder : Class ;
-fun Thunder_Class : SubClass Thunder (both RadiatingSound WeatherProcess) ;
-
-
--- A Gland in the neck that produces 
--- HormoneTSH, which regulates body weight, metabolic rate, etc.
-fun ThyroidGland : Class ;
-fun ThyroidGland_Class : SubClass ThyroidGland Gland ;
-
--- A Hormone secreted by the ThyroidGland.
-fun ThyroidHormone : Class ;
-fun ThyroidHormone_Class : SubClass ThyroidHormone Hormone ;
-
--- A Certificate that allows the holder to perform 
--- a specified act once, e.g. ride a bus, attend a concert, obtain a prize, 
--- etc.
-fun Ticket : Class ;
-fun Ticket_Class : SubClass Ticket Certificate ;
-
--- Clothing that is intended to be worn around the 
--- Neck and knotted at the front.
-fun TieClothing : Class ;
-fun TieClothing_Class : SubClass TieClothing Clothing ;
-
--- The ContestAttribute that applies to all contestParticipants 
--- in a Contest when none of them have Won or Lost the Contest.
-fun TieScore : Ind ContestAttribute ;
-
-
--- Any Process of Digging, e.g. breaking and 
--- turning over Soil that facilitates Agriculture.
-fun Tilling : Class ;
-fun Tilling_Class : SubClass Tilling (both Digging (both IntentionalProcess SurfaceChange)) ;
-
-
--- An Amphibian that lacks a Tail and lives at least 
--- partially outside of water.
-fun Toad : Class ;
-fun Toad_Class : SubClass Toad Amphibian ;
-
--- A FloweringPlant containing nicotine whose leaves 
--- are dried and then smoked or ingested.
-fun Tobacco : Class ;
-fun Tobacco_Class : SubClass Tobacco FloweringPlant ;
-
--- The five extremities of a Foot.
-fun Toe : Class ;
-fun Toe_Class : SubClass Toe (both AnimalAnatomicalStructure (both BodyPart DigitAppendage)) ;
-
-
--- A Device for the disposal of wastes resulting from
--- urination and defecation.
-fun Toilet : Class ;
-fun Toilet_Class : SubClass Toilet Device ;
-
--- A StationaryArtifact which is meant to contain someone 
--- who is Dead.
-fun Tomb : Class ;
-fun Tomb_Class : SubClass Tomb StationaryArtifact ;
-
--- English mass unit that is equal to 2000 pounds.
-fun TonMass : Ind UnitOfMass ;
-
-
--- Any SpokenHumanLanguage that uses pitch to 
--- differentiate otherwise identical words, e.g. Chinese.
-fun TonalLanguage : Class ;
-fun TonalLanguage_Class : SubClass TonalLanguage SpokenHumanLanguage ;
-
--- Part of the Mouth, used for Tasting Food, 
--- Vocalizing, and the initial stage of Digesting.
-fun Tongue : Class ;
-fun Tongue_Class : SubClass Tongue (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- Part of the Mouth, used for biting and chewing.
-fun Tooth : Class ;
-fun Tooth_Class : SubClass Tooth Bone ;
-
--- A small BrushOrComb with relatively soft
--- bristles and a long handle, used for brushing teeth (see Tooth). It is
--- used help control bacteria living in the mouth. While most typically used
--- by humans on themselves, it can be used by Dentists on their
--- patients and by adults assisting children. They are occasionally used by
--- humans caring for pets, zoo animals and valuable livestock.
-fun Toothbrush : Class ;
-fun Toothbrush_Class : SubClass Toothbrush BrushOrComb ;
-
--- The body of a Primate excluding its Limbs.
-fun Torso : Class ;
-fun Torso_Class : SubClass Torso (both AnimalAnatomicalStructure BodyPart) ;
-
-
--- A tourist is a person who is travelling to a 
--- place primarily for reasons of entertainment or education, rather than
--- business, although business transaction may take place during the trip.
-fun Tourist : Ind SocialRole ;
-
-
--- A tourist site is a location that has some
--- feature of interest to Tourists, which entertains or informs them.
-fun TouristSite : Class ;
-fun TouristSite_Class : SubClass TouristSite GeographicArea ;
-
--- A piece of Fabric which is used for Drying.
-fun Towel : Class ;
-fun Towel_Class : SubClass Towel Fabric ;
-
--- Any ContentDevelopment that results in a Blueprint.
-fun Tracing : Class ;
-fun Tracing_Class : SubClass Tracing (both ContentDevelopment SurfaceChange) ;
-
-
--- TractorTrailer is the subclass of 
--- RoadVehicles that are truck tractor_ truck trailer combinations.
-fun TractorTrailer : Class ;
-fun TractorTrailer_Class : SubClass TractorTrailer RoadVehicle ;
-
--- The state of being free from Anxiety.
-fun Tranquility : Ind EmotionalState ;
-
-
--- A Device which is capable of converting one 
--- form of energy into another. Formally, a Twoport that neither stores 
--- nor dissipates, but only transfers energy between its two ports.
-fun Transducer : Class ;
-fun Transducer_Class : SubClass Transducer Device ;
-
--- Any process within an Organization 
--- where a person is moved from one Position to another, e.g. the promotion 
--- or demotion of an employee.
-fun TransferringPosition : Class ;
-fun TransferringPosition_Class : SubClass TransferringPosition OrganizationalProcess ;
-
--- A TransitSystem is a system of 
--- interconnected Transitways over which some type(s) of vehicles or 
--- travellers may pass. In addition to Transitways, TransitSystems 
--- may also include TransitJunctions and TransitTerminals. Transit 
--- systems may be demarcated by where they are located (e.g., the rail 
--- system of Afghanistan), who owns or manages them (e.g., American 
--- Airlines TransitSystem of AirRoutes, or state highways managed by 
--- TexDOT), or the type of vehicles or travellers accommodated (e.g., 
--- the system of Santa Clara county bike trails.
-fun TransitSystem : Class ;
-fun TransitSystem_Class : SubClass TransitSystem PhysicalSystem ;
-
--- A Transparent material is one through which
--- it is possible to have Seeing.
-fun Transparent : Ind InternalAttribute ;
-
-
--- TransportViaRoadVehicle is the class of Transportation
--- events in which the instrument is an instance of
--- RoadVehicle.
-fun TransportViaRoadVehicle : Class ;
-fun TransportViaRoadVehicle_Class : SubClass TransportViaRoadVehicle LandTransportation ;
-fun TransportViaRoadVehicle_Transportation : SubClassC TransportViaRoadVehicle Transportation (\TRANSPORT -> exists RoadVehicle (\VEHICLE -> instrument(var Transportation Process ? TRANSPORT)(var RoadVehicle Object ? VEHICLE)));
-
-
--- A CommercialAgent whose services 
--- include Transportation, e.g. a RailroadCompany, an airline, a cruise 
--- ship line, etc.
-fun TransportationCompany : Class ;
-fun TransportationCompany_Class : SubClass TransportationCompany CommercialAgent ;
-
--- A Device whose purpose is to trap or cage Animals, 
--- i.e. to be in instrument in an act of Confining.
-fun TrapOrCage : Class ;
-fun TrapOrCage_Class : SubClass TrapOrCage Holder ;
-
--- Any Container which is intended to be 
--- used for carrying clothing, toiletries, and other personal effects that 
--- would be needed on a overnight trip.
-fun TravelContainer : Class ;
-fun TravelContainer_Class : SubClass TravelContainer Container ;
-
--- A Holder that is designed for Food, dishes, and 
--- flatware.
-fun Tray : Class ;
-fun Tray_Class : SubClass Tray Holder ;
-
--- Any SkilledOccupation which involves receiving 
--- and disbursing money.
-fun Treasurer : Class ;
-fun Treasurer_Class : SubClass Treasurer SkilledOccupation ;
-
--- Any Contract which holds between two or more 
--- Nations.
-fun Treaty : Ind DeonticAttribute ;
-
-
--- Any PlantBranch which is part of a 
--- BotanicalTree.
-fun TreeBranch : Class ;
-fun TreeBranch_Class : SubClass TreeBranch PlantBranch ;
-
--- Any BodyMotion which is involuntary and which is 
--- repeated many times over a short time frame, e.g. a tremor in the hands,
--- shivering etc.
-fun Trembling : Class ;
-fun Trembling_Class : SubClass Trembling (both AutonomicProcess (both BodyMotion Tremor)) ;
-
-
--- Motion that involves rapidly Rotating between 
--- two positions.
-fun Tremor : Class ;
-fun Tremor_Class : SubClass Tremor Rotating ;
-
--- Entering property that does not belong to one and without 
--- the permission of the owner of the property.
-fun Trespassing : Class ;
-fun Trespassing_Class : SubClass Trespassing (both CriminalAction Translocation) ;
-
-
--- Any three_sided Polygon.
-fun Triangle : Class ;
-fun Triangle_Class : SubClass Triangle Polygon ;
-
--- A piece of Clothing that covers each Leg 
--- of a person separately.
-fun Trousers : Class ;
-fun Trousers_Class : SubClass Trousers Clothing ;
-
--- Any Vehicle that is intended to carry substantial
--- amounts of cargo, in addition to passengers. This includes 18_wheelers,
--- pickup trucks, tanker trucks etc. Consumer vehicles with trunks or enclosed
--- rear areas that can carry cargo are not defined as trucks. Truck is the subclass of RoadVehicles that 
--- are designed primarily for transporting various kinds of non_passenger 
--- loads. Truck is the class of single_bodied trucks or TruckTractors. 
--- Note: TractorTrailer combinations are a distinct class. Truck an automotive vehicle suitable for hauling
-fun Truck : Class ;
-fun Truck_Class : SubClass Truck (both CargoVehicle SelfPoweredRoadVehicle) ;
-
-
--- TruckTractor is the subclass of Trucks 
--- that are used to tow truck trailers. Truck tractors are the cab portions 
--- of tractor_trailers. See also TruckTrailer.
-fun TruckTractor : Class ;
-fun TruckTractor_Class : SubClass TruckTractor Truck ;
-
--- TruckTrailer is the subclass of Wagons 
--- that are towed by TruckTractors. These are the trailers used in 
--- tractor_trailer (semi_trailer) rigs.
-fun TruckTrailer : Class ;
-fun TruckTrailer_Class : SubClass TruckTrailer Wagon ;
-
--- A long, narrow, and hollow Artifact that is designed for 
--- moving Fluids from place to another.
-fun Tube : Class ;
-fun Tube_Class : SubClass Tube Artifact ;
-
--- A BacterialDisease caused by the Tubercle Bacillus 
--- that results in lesions on various body parts, especially the Lungs. Tuberculosis A disease that usually infects the lungs and causes severe 
--- coughing. In some cases it will result in hemorrhage of the lungs.
-fun Tuberculosis : Ind BacterialDisease ;
-
-
--- Any AbnormalAnatomicalStructure which consists of a 
--- mass of Tissue. Note that this class covers both malignant (i.e. cancerous) 
--- and benign tumors.
-fun Tumor : Class ;
-fun Tumor_Class : SubClass Tumor AbnormalAnatomicalStructure ;
-
--- An Engine which converts the kinetic energy of a moving 
--- Liquid (typically Water) into mechanical energy.
-fun Turbine : Class ;
-fun Turbine_Class : SubClass Turbine Engine ;
-
--- Any Process whose result is that the patient 
--- of the process is in the state of DeviceOff. In other words, this class covers 
--- any process of turning off a device, e.g. turning off the lights, switching off a 
--- television set, etc.
-fun TurningOffDevice : Class ;
-fun TurningOffDevice_Class : SubClass TurningOffDevice InternalChange ;
-
--- Any Process whose result is that the patient 
--- of the process is in the state of DeviceOn. In other words, this class covers 
--- any process of turning on a device, e.g. turning on the lights, switching on a 
--- television set, etc.
-fun TurningOnDevice : Class ;
-fun TurningOnDevice_Class : SubClass TurningOnDevice InternalChange ;
-
--- A real_world physical object
--- with a very flat aspect. This includes drawings on paper, cave
--- paintings and other surface alterations.
-fun TwoDimensionalObject : Class ;
-fun TwoDimensionalObject_Class : SubClass TwoDimensionalObject Object ;
-
--- The Process of tying two things, or two strands of 
--- the same thing, together.
-fun Tying : Class ;
-fun Tying_Class : SubClass Tying Attaching ;
-
--- An Attribute which indicates that the 
--- associated Object cannot be broken under normal usage conditions.
-fun Unbreakable : Ind BreakabilityAttribute ;
-
-
--- The state of being unhappy, experiencing pain, 
--- sorrow or unease.
-fun Unhappiness : Ind EmotionalState ;
-
-
--- An Organization comprised of workers from 
--- the same Corporation or Industry. The purpose of the UnionOrganization 
--- is to strengthen its representation in bargaining with the Corporation or 
--- Industry.
-fun UnionOrganization : Class ;
-fun UnionOrganization_Class : SubClass UnionOrganization Organization ;
-
--- Any Soldier that served on the union side during 
--- the American Civil War. UnionSoldier Any Soldier that served on the union
--- side during the American Civil War.
-fun UnionSoldier : Class ;
-fun UnionSoldier_Class : SubClass UnionSoldier Soldier ;
-
--- The states of the UnitedStates that the 
--- ConfederateStatesOfAmerica seceded from.
-fun UnionStatesOfAmerica : Ind GeopoliticalArea ;
-
-
--- The legislative branch of the government 
--- of the UnitedStates.
-fun UnitedStatesCongress : Ind LegislativeOrganization ;
-
-
--- Manages and preserves public lands 
--- and natural resources in the UnitedStates.
-fun UnitedStatesDepartmentOfInterior : Ind GovernmentOrganization ;
-
-
--- The subOrganization of the US 
--- government that sets and enforces foreign policy.
-fun UnitedStatesDepartmentOfState : Ind GovernmentOrganization ;
-
-
--- A School which admits students that 
--- have graduated from high school (known as undergraduate students) and 
--- students who have received a bachelor's degree (known as graduate 
--- students). A University confers both bachelor's and graduate 
--- degrees.
-fun University : Class ;
-fun University_Class : SubClass University PostSecondarySchool ;
-
--- Any Position which does not 
--- require learning a set of skills.
-fun UnskilledOccupation : Class ;
-fun UnskilledOccupation_Class : SubClass UnskilledOccupation ManualLabor ;
-
--- The Process of untying two things, or two strands 
--- of the same thing.
-fun Untying : Class ;
-fun Untying_Class : SubClass Untying Detaching ;
-
--- A PositionalAttribute to indicate that one thing is 
--- one or more floors above a second thing in the same building.
-fun Upstairs : Ind PositionalAttribute ;
-
-
--- Urea is a dry, soluble, nitrogenous substance 
--- that is the major solid component of the urine of mammals, and which 
--- may be synthesized from ammonia and carbon dioxide, it is useful in the 
--- production of Plastic and in Fertilizers.
-fun Urea : Class ;
-fun Urea_Class : SubClass Urea OrganicCompound ;
-
--- Taking time off from Working.
-fun Vacationing : Class ;
-fun Vacationing_Class : SubClass Vacationing RecreationOrExercise ;
-
--- An event where the objective of the agent
--- is to damage or destroy some property of another agent. This is
--- distinguished from acts where the prime objective is damage or loss
--- of life of another agent.
-fun Vandalism : Class ;
-fun Vandalism_Class : SubClass Vandalism Destruction ;
-
--- An event in which a vehicle is used
--- by an agent in order to inflict injury, death or damage to people
--- or property.
-fun VehicleAttack : Class ;
-fun VehicleAttack_Class : SubClass VehicleAttack ViolentContest ;
-
--- A VehicleController which is capable of stopping 
--- the motion of a Vehicle.
-fun VehicleBrake : Class ;
-fun VehicleBrake_Class : SubClass VehicleBrake VehicleController ;
-
--- Any Device which is used to start, stop or 
--- control the movements of a Vehicle. This class covers steering wheels, brakes, 
--- acceleration pedals, airplane sticks, etc.
-fun VehicleController : Class ;
-fun VehicleController_Class : SubClass VehicleController Device ;
-
--- Any LightFixture which is attached to the 
--- surface of a Vehicle and whose purpose is to illuminate that area around 
--- the Vehicle so that potential obstacles can be detected or alerted.
-fun VehicleLight : Class ;
-fun VehicleLight_Class : SubClass VehicleLight LightFixture ;
-
--- A VehicleController which controls the amount 
--- of Fuel which is supplied to the Engine.
-fun VehicleThrottle : Class ;
-fun VehicleThrottle_Class : SubClass VehicleThrottle VehicleController ;
-
--- A covering, usually made of rubber, for a Wheel.
-fun VehicleTire : Class ;
-fun VehicleTire_Class : SubClass VehicleTire Artifact ;
-
--- VehicleWheel is a class of cylindrical 
--- Devices used to move a RoadVehicle along a road, running either 
--- directly on the wheel rims or on tires attached to the wheel rims.
-fun VehicleWheel : Class ;
-fun VehicleWheel_Class : SubClass VehicleWheel Wheel ;
-
--- Any Window which is part of a Vehicle, 
--- e.g. the Windshield and RearWindow of an Automobile.
-fun VehicleWindow : Class ;
-fun VehicleWindow_Class : SubClass VehicleWindow Window ;
-
--- A piece of Clothing intended to cover or
--- obscure the face or hair of a Woman. This is commonly worn for
--- religious reasons when in public in Muslim countries, but is also customary
--- at Weddings and Funerals among some non_Muslim women.
-fun Veil : Class ;
-fun Veil_Class : SubClass Veil Clothing ;
-
--- Any BloodVessel which transfers Blood from 
--- the extremities of the body to the Heart.
-fun Vein : Class ;
-fun Vein_Class : SubClass Vein BloodVessel ;
-
--- A Device which is capable of Selling a Product 
--- to a customer automatically when the customer inserts the appropriate amount of 
--- Currency.
-fun VendingDevice : Class ;
-fun VendingDevice_Class : SubClass VendingDevice Device ;
-
--- The Attribute that applies to someone who was a 
--- Soldier at one time, but is not currently a Soldier.
-fun Veteran : Ind SocialRole ;
-
-
--- A representation of video on some medium such
--- as film, videotape or DVD. Instances of this class are also commonly
--- instances of AudioRecording.
-fun VideoRecording : Class ;
-fun VideoRecording_Class : SubClass VideoRecording ContentBearingObject ;
-
--- A StringInstrument that has four strings, a hollow 
--- body, and is played on the shoulder with a bow.
-fun Violin : Class ;
-fun Violin_Class : SubClass Violin StringInstrument ;
-
--- A disease that is caused by instances of 
--- Virus.
-fun ViralDisease : Class ;
-fun ViralDisease_Class : SubClass ViralDisease InfectiousDisease ;
-
--- Music which is produced (at least in part)
--- by Singing.
-fun VocalMusic : Class ;
-fun VocalMusic_Class : SubClass VocalMusic Music ;
-
--- Any School whose aim is to teach 
--- students an OccupationalTrade.
-fun VocationalSchool : Class ;
-fun VocationalSchool_Class : SubClass VocationalSchool School ;
-
--- A structure where Voting for an Election 
--- takes place.
-fun VotingPoll : Class ;
-fun VotingPoll_Class : SubClass VotingPoll StationaryArtifact ;
-
--- An AlphabeticCharacter that denotes a speech sound that 
--- does not result in audible friction when it is pronounced.
-fun Vowel : Class ;
-fun Vowel_Class : SubClass Vowel AlphabeticCharacter ;
-
--- A diurnal bird of prey with a bald head that 
--- feeds on carrion.
-fun Vulture : Class ;
-fun Vulture_Class : SubClass Vulture Bird ;
-
--- Any instance of Walking which occurs through a 
--- BodyOfWater.
-fun Wading : Class ;
-fun Wading_Class : SubClass Wading Walking ;
-
--- A Landcraft that is not self_propelled, but must be 
--- pulled by either an Animal or a self_propelled Vehicle to move along the 
--- ground.
-fun Wagon : Class ;
-fun Wagon_Class : SubClass Wagon LandVehicle ;
-
--- The process of transitioning from a state of being 
--- Asleep to a state of being Awake.
-fun WakingUp : Class ;
-fun WakingUp_Class : SubClass WakingUp PsychologicalProcess ;
-
--- A Device which has the form of a staff with 
--- a handle and which enables some people to walk with greater assurance.
-fun WalkingCane : Class ;
-fun WalkingCane_Class : SubClass WalkingCane Device ;
-
--- A StationaryArtifact that supports a Building or 
--- partitions it into Rooms.
-fun Wall : Class ;
-fun Wall_Class : SubClass Wall StationaryArtifact ;
-
--- Any decorative paper that is used to cover the 
--- Walls of Rooms.
-fun Wallpaper : Class ;
-fun Wallpaper_Class : SubClass Wallpaper ArtWork ;
-
--- A very large CommercialBuilding whose purpose is 
--- to store commodities.
-fun Warehouse : Class ;
-fun Warehouse_Class : SubClass Warehouse CommercialBuilding ;
-
--- A WashingDevice which is intended to be used by 
--- Humans for washing their Hands.
-fun WashBasin : Class ;
-fun WashBasin_Class : SubClass WashBasin WashingDevice ;
-
--- Removing small particles from something by means of 
--- a Detergent and Water.
-fun Washing : Class ;
-fun Washing_Class : SubClass Washing Removing ;
-
--- Any Device whose purpose is Washing 
--- something, e.g. washing machines, dishwashers, bathtubs, etc.
-fun WashingDevice : Class ;
-fun WashingDevice_Class : SubClass WashingDevice Device ;
-
--- A Container which is used for trash.
-fun Wastebasket : Class ;
-fun Wastebasket_Class : SubClass Wastebasket Container ;
-
--- A Clock that can be worn on the Wrist.
-fun WatchClock : Class ;
-fun WatchClock_Clock : SubClassC WatchClock Clock (\C -> exists Human (\P -> exists Wrist (\W -> and ( wears (var Human Animal ? P)(var Clock Clothing ? C))( located(var Clock Physical ? C)(var Wrist Object ? W)))));
-
-
--- Any instance of Transportation where 
--- the instrument is a WaterVehicle.
-fun WaterTransportation : Class ;
-fun WaterTransportation_Class : SubClass WaterTransportation Transportation ;
-
--- WaterVehicle is the class of all 
--- TransportationDevices used to travel on or in water.
-fun WaterVehicle : Class ;
-fun WaterVehicle_Class : SubClass WaterVehicle Vehicle ;
-
--- A WaterWave is a raised ridge of water 
--- moving along the surface of a body of water. The WaterWave moves 
--- in a direction approximately transverse to the crest line of the wave. 
--- The patient of the WaterWave is successive regions of water, which 
--- do not travel in the direction of the wave or with it.
-fun WaterWave : Class ;
-fun WaterWave_Class : SubClass WaterWave LiquidMotion ;
-
--- Any Paint which is a water_based Solution.
-fun WatercolorPaint : Class ;
-fun WatercolorPaint_Class : SubClass WatercolorPaint Paint ;
-
--- Any PaintedPicture which is created 
--- with water_based paints.
-fun WatercolorPicture : Class ;
-fun WatercolorPicture_Class : SubClass WatercolorPicture PaintedPicture ;
-
--- Moving a Hand to indicate a greeting, farewell, 
--- recognition, goodwill, etc.
-fun Waving : Class ;
-fun Waving_Class : SubClass Waving HandGesture ;
-
--- Any Substance of high molecular weight that resembles 
--- beeswax.
-fun Wax : Class ;
-fun Wax_Class : SubClass Wax Substance ;
-
--- Nuclear, chemical and biological weapons. 
--- What these weapons have in common is that they are designed to kill large numbers 
--- of people indiscriminately.
-fun WeaponOfMassDestruction : Class ;
-fun WeaponOfMassDestruction_Class : SubClass WeaponOfMassDestruction Weapon ;
-
--- Any Saturday and Sunday which are contiguous.
-fun Weekend : Class ;
-fun Weekend_Class : SubClass Weekend TimeInterval ;
-
--- Expressing unhappiness by shedding tears.
-fun Weeping : Class ;
-fun Weeping_Class : SubClass Weeping FacialExpression ;
-
--- Any Funding which is provided by a ServiceOrganization 
--- to people in need.
-fun Welfare : Class ;
-fun Welfare_Class : SubClass Welfare Funding ;
-
--- A long CerealGrain which is produced by certain grasses and 
--- which is used to make BreadOrBiscuits.
-fun WheatGrain : Class ;
-fun WheatGrain_Class : SubClass WheatGrain CerealGrain ;
-
--- A circular Artifact which is a component of 
--- LandVehicles and of some Devices.
-fun Wheel : Class ;
-fun Wheel_Class : SubClass Wheel Artifact ;
-
--- A Weapon that consists of a thin strand of 
--- Fabric, usually Leather, and a handle by which the strand is 
--- impelled at a high rate of speed.
-fun Whip : Class ;
-fun Whip_Class : SubClass Whip Weapon ;
-
--- A DistilledAlcoholicBeverage that is prepared by 
--- distilling fermented grain mash.
-fun Whiskey : Class ;
-fun Whiskey_Class : SubClass Whiskey DistilledAlcoholicBeverage ;
-
--- BloodCells that lack hemoglobin, contain a 
--- CellNucleus, and have no color.
-fun WhiteBloodCell : Class ;
-fun WhiteBloodCell_Class : SubClass WhiteBloodCell BloodCell ;
-
--- A MercantileOrganization that sells its 
--- goods exclusively to Corporations.
-fun WholesaleStore : Class ;
-fun WholesaleStore_Class : SubClass WholesaleStore (both Agency MercantileOrganization) ;
-
-
--- The Attribute that applies to someone who was 
--- married to someone who has died, and who has not remarried.
-fun Widowed : Ind SocialRole ;
-
-
--- A BotanicalTree of the genus Salix.
-fun WillowTree : Class ;
-fun WillowTree_Class : SubClass WillowTree BotanicalTree ;
-
--- A MusicalInstrument which is played by 
--- blowing it and which uses a reed, or resonator hole as in the case of a flute.
-fun WindInstrument : Class ;
-fun WindInstrument_Class : SubClass WindInstrument MusicalInstrument ;
-
--- Windmill is the subclass of Engines that 
--- produce mechanical power from Wind energy.
-fun Windmill : Class ;
-fun Windmill_Class : SubClass Windmill Engine ;
-
--- An Artifact composed of transparent material 
--- that admits light (and possibly air) into a Room, Building 
--- or Vehicle.
-fun Window : Class ;
-fun Window_Class : SubClass Window Artifact ;
-
--- An Artifact that is used to cover 
--- Windows. Note that this class includes blinds, drapes, shutters, 
--- etc.
-fun WindowCovering : Class ;
-fun WindowCovering_Class : SubClass WindowCovering Artifact ;
-
--- Any VehicleWindow which located at the front 
--- of an Automobile.
-fun Windshield : Class ;
-fun Windshield_Class : SubClass Windshield VehicleWindow ;
-
--- An AlcoholicBeverage that is prepared by fermenting 
--- the juice of grapes.
-fun Wine : Class ;
-fun Wine_Class : SubClass Wine AlcoholicBeverage ;
-
--- Any Limb which is capable of being an 
--- instrument in Flying.
-fun Wing : Class ;
-fun Wing_Class : SubClass Wing Limb ;
-
--- The wings of Aircraft, i.e. the parts of Aircraft 
--- that allow them to become and remain airborne.
-fun WingDevice : Class ;
-fun WingDevice_Class : SubClass WingDevice EngineeringComponent ;
-
--- Any instance of ClosingEyes which is intended to 
--- express something to someone else.
-fun Winking : Class ;
-fun Winking_Class : SubClass Winking (both ClosingEyes Gesture) ;
-
-
--- The SeasonOfYear that begins at the winter 
--- solstice and ends at the spring equinox.
-fun WinterSeason : Class ;
-fun WinterSeason_Class : SubClass WinterSeason SeasonOfYear ;
-
--- A long, thin strand of Metal that is used in a wide 
--- range of applications, including the wiring of electrical systems, creating 
--- bundles and the construction of cages.
-fun Wire : Class ;
-fun Wire_Class : SubClass Wire Artifact ;
-
--- A Wire that is designed for conducting electricity.
-fun WireLine : Class ;
-fun WireLine_Class : SubClass WireLine (both EngineeringComponent Wire) ;
-
-
--- An EngineeringComponent consisting of a coil of 
--- Wire that returns to its original shape when pulled apart or pressed together.
-fun WireSpring : Class ;
-fun WireSpring_Class : SubClass WireSpring (both EngineeringComponent Wire) ;
-
-
--- The ContestAttribute that applies to a Contest 
--- participant who has won the Contest.
-fun Won : Ind ContestAttribute ;
-
-
--- Tissue that comprises the inner trunk of Trees. 
--- It is often used in constructing Buildings and other Artifacts.
--- Wood is the principal substance making up a tree, and is distinguished from the
--- bark, roots, flowers, seeds, fruit and leaves.
-fun Wood : Class ;
-fun Wood_Class : SubClass Wood (both PlantSubstance Tissue) ;
-
-
--- Wood that has been cut (and perhaps treated) for 
--- some purpose, e.g. Constructing or Combustion. Note that this class covers 
--- both lumber and firewood.
-fun WoodArtifact : Class ;
-fun WoodArtifact_Class : SubClass WoodArtifact Artifact ;
-
--- Fabric that is made from the Hair of Sheep.
-fun Wool : Class ;
-fun Wool_Class : SubClass Wool Fabric ;
-
--- Sterile members of an Insect colony which 
--- are responsible for locating food and caring for eggs, larvae, etc.
-fun WorkerInsect : Class ;
-fun WorkerInsect_Class : SubClass WorkerInsect Insect ;
-
--- Any FinancialTransaction where someone exchanges 
--- his/her labor for an instance of CurrencyMeasure.
-fun Working : Class ;
-fun Working_Class : SubClass Working FinancialTransaction ;
-
--- A Room, suite of Rooms or Building which is 
--- devoted to hand_crafting Artifacts.
-fun Workshop : Class ;
-fun Workshop_Class : SubClass Workshop StationaryArtifact ;
-
--- The joint in the Arm connecting the radius and carpal 
--- bones.
-fun Wrist : Class ;
-fun Wrist_Class : SubClass Wrist BodyJoint ;
-
--- A Device whose purpose is to be an instrument 
--- of Writing, e.g. pens, pencils, crayons, etc.
-fun WritingDevice : Class ;
-fun WritingDevice_Class : SubClass WritingDevice Device ;
-
--- Any LinguisticCommunication where the 
--- instrument is a Text, e.g. a letter, an email, a memo, etc.
-fun WrittenCommunication : Class ;
-fun WrittenCommunication_Class : SubClass WrittenCommunication LinguisticCommunication ;
-
--- Electro_magnetic radiation of short wavelength, 
--- often made use of by devices that scan the inside of objects.
-fun XRayRadiation : Class ;
-fun XRayRadiation_Class : SubClass XRayRadiation Radiating ;
-
--- English unit of length, equal to 3 FeetLength.
-fun YardLength : Ind UnitOfLength ;
-
-
--- (address ?AGENT ?ADDRESS) means that ?ADDRESS 
--- is an address or part of an address for the Agent ?AGENT.
-fun address : El Agent -> El Address -> Formula ;
-
-
-fun affiliatedOrganization : El Organization -> El Organization -> Formula ;
-
--- (alias ?STRING ?AGENT) means that ?STRING is an
--- alternate identifier for ?AGENT, and is likely being used to hide or
--- obscure ?AGENT's true identity.
-fun alias : El SymbolicString -> El Agent -> Formula ;
-
-
--- (allegiance ?AGENT ?ENTITY) means that the CognitiveAgent 
--- ?AGENT owes its allegiance to the political entity ?ENTITY.
-fun allegiance : El CognitiveAgent -> El CognitiveAgent -> Formula ;
-
-
--- (ancestorOrganization ?ORG1 ?ORG2) means that 
--- the Organization ?ORG1 descended from the Organization ?ORG2.
-fun ancestorOrganization : El Organization -> El Organization -> Formula ;
-
-
--- (anniversary ?PHYSICAL ?TIME) means that 
--- ?TIME is the class of TimeIntervals which mark the anniversary of 
--- ?PHYSICAL. For example, (anniversary Christmas (DayFn 35 December)) 
--- means that Christmas is celebrated each year on the 25th of December.
-fun anniversary : El Physical -> El TimeInterval -> Formula ;
-
-
--- (areaOfResponsibility
--- ?AGENT ?PROCESS_TYPE ?AREA) means that ?AGENT (typically an
--- instance of Organization) is responsible or accountable for
--- actions or undertakings of type ?PROCESS_TYPE in the
--- GeographicArea denoted by ?AREA.
-fun areaOfResponsibility : El Agent -> Desc Process -> El GeographicArea -> Formula ;
-
-
--- (arrested ?EVENT ?AGENT) means that during ?EVENT, ?AGENT is
--- taken into custody, typically by a representative of a law
--- enforcement organization.
-fun arrested : El PlacingUnderArrest -> El Agent -> Formula ;
-
-
--- (aunt ?AUNT ?PERSON) means that ?AUNT is 
--- the sister of a parent of ?PERSON.
-fun aunt : El Woman -> El Human -> Formula ;
-
-
--- (axis ?A ?OBJ) means that a part ?A of an Object ?OBJ
--- is the axis of rotation in a Rotating.
-fun axis : El Object -> El Object -> Formula ;
-
-
--- (benefits ?PROCESS ?AGENT) means that
--- ?AGENT somehow derives benefit as a result of ?PROCESS. This is
--- a very general relation, and does not entail that ?AGENT is a
--- participant in ?PROCESS.
-fun benefits : El Process -> El Agent -> Formula ;
-
-
--- (birthdate ?PERSON ?DAY) means that ?DAY is the 
--- Day on which the ?PERSON was born.
-fun birthdate : El Human -> El Day -> Formula ;
-
-
--- (birthday ?PERSON ?DAY) means that ?DAY is the 
--- anniversary each year of the birth of ?PERSON. For example, (birthday 
--- WilliamJeffersonClinton (DayFn 19 August)) means that Bill Clinton's 
--- birthday is August 19th.
-fun birthday : El Human -> El Day -> Formula ;
-
-
--- (birthplace ?INDIV ?PLACE) means that the Animal ?INDIV was born 
--- at the location ?PLACE. The location may be a geographic area or a building, such as a hospital.
-fun birthplace : El Animal -> El Object -> Formula ;
-
-
--- (brandName ?NAME ?PRODUCT) means that ?NAME 
--- is the brand name for the product class ?PRODUCT, e.g. Cheerios is the 
--- brand name for a certain class of breakfast cereal.
-fun brandName : El SymbolicString -> El Product -> Formula ;
-
-
--- (capacity ?OBJ ?QUANTITY) means that ?OBJ can contain 
--- something that has the measure of ?QUANTITY. This predicate denotes maximal 
--- capacity, i.e. ?OBJ can hold no more than ?QUANTITY. Note, however, that this 
--- does not mean that capacity is a SingleValuedRelation, since an object may 
--- have various maximal capacities across different dimensions, e.g. a particular 
--- box may have a capacity of 3 pounds and a capacity of 1 liter.
-fun capacity : El SelfConnectedObject -> El ConstantQuantity -> Formula ;
-
-
--- (cargo ?EVENT ?OBJ) means that
--- ?OBJ is transported as cargo in the Shipping event
--- ?EVENT.
-fun cargo : El Shipping -> El Object -> Formula ;
-
-
--- (changesLocation ?EVENT
--- ?OBJECT) means that during the Translocation event ?EVENT,
--- ?OBJECT's location changes. ?OBJECT might also be the agent,
--- patient, or experiencer of ?EVENT.
-fun changesLocation : El Translocation -> El Object -> Formula ;
-
-
--- (cityAddress ?CITY ?ADDRESS) means that the 
--- City ?CITY is part of the address ?ADDRESS.
-fun cityAddress : El City -> El Address -> Formula ;
-
-
--- (holdsDuring ?T1 (cohabitant ?H1 ?H2))
--- means that during the time ?T1, ?H1 and ?H2 have the same home.
-fun cohabitant : El Human -> El Human -> Formula ;
-
-
--- (conjugate ?COMPOUND1 ?COMPOUND2) means that 
--- ?COMPOUND1 and ?COMPOUND2 are identical CompoundSubstances except that 
--- one has one more Proton than the other.
-fun conjugate : El CompoundSubstance -> El CompoundSubstance -> Formula ;
-
-
--- (contestParticipant ?CONTEST ?AGENT) 
--- means that ?AGENT is one of the sides in the Contest ?CONTEST. For 
--- example, if the ?CONTEST is a football game, then ?AGENT would be one of 
--- the opposing teams. For another example, if ?CONTEST is a Battle, then 
--- ?AGENT would be one of the sides fighting each other.
-fun contestParticipant : El Contest -> El Agent -> Formula ;
-
-
--- (controlled ?EVENT ?OBJECT) means that during the
--- AchievingControl denoted by ?EVENT, ?OBJECT comes to be
--- physically controlled by an Agent.
-fun controlled : El AchievingControl -> El Object -> Formula ;
-
-
--- (conveyance ?EVENT ?OBJ) means that
--- ?OBJ is the Vehicle or other transportation device used in
--- ?EVENT.
-fun conveyance : El Transportation -> El TransportationDevice -> Formula ;
-
-
--- (cousin ?PERSON1 ?PERSON2) means that ?PERSON1 
--- and ?PERSON2 are cousins, i.e. ?PERSON1 and ?PERSON2 have grandparents 
--- (but not parents) in common.
-fun cousin : El Human -> El Human -> Formula ;
-
-
--- (holdsDuring ?T1 (coworker ?H1 ?H2)) means
--- that during time ?T1, ?H1 and ?H2 are both employed by the same agent, are
--- of roughly the same job status, and come into contact at least part of the
--- time at the same work location.
-fun coworker : El Human -> El Human -> Formula ;
-
-
--- (birthdate ?PERSON ?DAY) means that ?DAY is the 
--- Day on which the ?PERSON died.
-fun deathdate : El Human -> El Day -> Formula ;
-
-
--- (deathplace ?INDIV ?PLACE) means that the Animal ?INDIV died 
--- at the location ?PLACE. The location may be a geographic area or a building, such as a hospital.
-fun deathplace : El Animal -> El Object -> Formula ;
-
-
--- (deceptiveIdentifier ?OBJ ?AGENT)
--- means that ?AGENT presents ?OBJ as a representation of ?AGENT's `true'
--- identity, when in fact it is not.
-fun deceptiveIdentifier : El ContentBearingObject -> El Agent -> Formula ;
-
-
--- (defendant ?AGENT ?ACTION) means the LegalAction 
--- ?ACTION makes a legal claim against ?AGENT.
-fun defendant : El CognitiveAgent -> El LegalAction -> Formula ;
-
-
--- (detainee ?EVENT ?OBJECT) means that in the 
--- Confining ?EVENT, the Object ?OBJECT is restrained by force, threat, or 
--- other form of intimidation.
-fun detainee : El Confining -> El Animal -> Formula ;
-
-
--- (deviceState ?DEVICE ?STATE) means that 
--- the Object ?DEVICE is in the DeviceStateAttribute ?STATE.
-fun deviceState : El Object -> El DeviceStateAttribute -> Formula ;
-
-
--- (disapproves ?AGENT ?FORMULA) means that 
--- ?AGENT has a feeling of antipathy to the state of affairs represented by 
--- ?FORMULA, i.e. ?AGENT believes that the realization of ?FORMULA will 
--- thwart one of his/her goals. Note that there is no implication that what 
--- is disapproved of by an agent is not already true.
-fun disapproves : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (dislikes ?AGENT ?OBJECT) means that ?AGENT has a 
--- feeling of antipathy to ?OBJECT, i.e. ?AGENT believes that ?OBJECT will 
--- thwart one of his/her goals. Note that there is no implication that what 
--- is hated by an agent is not already possessed by the agent.
-fun dislikes : El CognitiveAgent -> El Object -> Formula ;
-
-
--- (distanceOnPath ?DIST 
--- ?PATH) means that for a given path (which is a pathInSystem) that the 
--- distance of the route is the measurement ?DIST. distanceOnPath (distanceOnPath ?DIST ?PATH) means that for a given path (which is a
--- pathInSystem) that the distance of the route is the measurement ?DIST.
-fun distanceOnPath : El ConstantQuantity -> El Transitway -> Formula ;
-
-
--- (holdsDuring ?T1
--- (domesticPartner ?H1 ?H2)) means that during the time ?T1, ?H1
--- and ?H2 live together and share a common domestic life but are
--- not joined in a traditional marriage, a common_law marriage, or a
--- civil union.
-fun domesticPartner : El Human -> El Human -> Formula ;
-
-
--- (doubts ?AGENT ?FORMULA) means that ?AGENT is unsure 
--- about the truth of ?FORMULA, in particular ?AGENT does not believe that 
--- ?FORMULA is true.
-fun doubts : El CognitiveAgent -> Formula -> Formula ;
-
-
--- Models the effective range of some
--- device that is able to move by itself (like vehicles, rockets and so
--- on) or move other things (like weapons).
-fun effectiveRange : El Device -> El LengthMeasure -> Formula ;
-
-
--- (electronNumber ?SUBSTANCE ?NUMBER) means that 
--- the PureSubstance ?SUBSTANCE has the number of Electrons ?NUMBER.
-fun electronNumber : El PureSubstance -> El PositiveInteger -> Formula ;
-
-
--- (enjoys ?AGENT ?PROCESS) means that the 
--- CognitiveAgent ?AGENT tends to enjoy actions of type ?PROCESS, 
--- i.e. tends to enjoy being the agent or experiencer of such 
--- actions.
-fun enjoys : El CognitiveAgent -> El IntentionalProcess -> Formula ;
-
-
--- (equipmentCount ?OBJECT ?TYPE ?QUANTITY) means that ?OBJECT 
--- is equipped with devices of the type ?TYPE, in the number ?QUANTITY. 
--- Equipment associated with an ?OBJECT may be a component of ?OBJECT 
--- (such as the emergency oxygen system built into passenger jets) or it may 
--- be a device simply located on or with ?OBJECT (such as a first aid kit).
-fun equipmentCount : El Object -> Desc Device -> El Quantity -> Formula ;
-
-
--- (equipmentType ?THING ?TYPE) means that 
--- the Artifact ?THING has a component or attachment of Device ?TYPE. 
--- See also equipmentTypeCount.
-fun equipmentType : El Artifact -> El Device -> Formula ;
-
-
--- Any belief about the future. (expects 
--- ?AGENT ?BELIEF) means that (believes ?AGENT ?BELIEF) and, if 
--- ?BELIEF happens, it will happen in the future, i.e. after the 
--- expectation.
-fun expects : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (experimentalControl ?EXPERIMENT ?OBJ) 
--- means that the Object ?OBJ serves as a control in the instance of 
--- Experimenting ?EXPERIMENT, i.e. ?OBJ is the standard against which something 
--- else in the experiment can be compared.
-fun experimentalControl : El Experimenting -> El Object -> Formula ;
-
-
--- (familyName ?STRING
--- ?HUMAN) means that the SymbolicString ?STRING denotes a non_optional
--- name that ?HUMAN has inherited by virtue of being born into a
--- particular family (kin group). surname is another word for this type
--- of name. Cf. givenName.
-fun familyName : El SymbolicString -> El Human -> Formula ;
-
-
--- (fears ?AGENT ?FORMULA) means that ?AGENT fears that 
--- the proposition ?FORMULA will be true, i.e. he/she believes that it will 
--- come to pass in the future and that it will be undesirable for ?AGENT.
-fun fears : El CognitiveAgent -> Formula -> Formula ;
-
-
--- A formal banking, brokerage, or business 
--- relationship established to provide for regular services, dealings, and 
--- other financial transactions. (financialAccount ?ACCOUNT ?ORG) means that 
--- ?ACCOUNT is a financial account opened at the FinancialCompany 
--- ?ORG.
-fun financialAccount : El FinancialAccount -> El FinancialCompany -> Formula ;
-
-
--- A predicate that relates an Agent to any 
--- item of economic value owned by the Agent. Examples of financial assets 
--- are cash, securities, accounts receivable, inventory, office equipment, a 
--- house, a car, and other property.
-fun financialAsset : El Agent -> El Object -> Formula ;
-
-
--- (formerName ?NAME ?THING) means that the 
--- string ?NAME is a name formerly used for ?THING.
-fun formerName : El Entity -> El Entity -> Formula ;
-
-
--- (holdsDuring ?T1 (friend ?H1 ?H2)) means that
--- during time ?T1, ?H1 and ?H2 know each other, share a relationship of
--- mutual care and concern, and probably also share some common interests.
-fun friend : El Human -> El Human -> Formula ;
-
-
--- (gainsControl ?EVENT ?AGENT) means that during ?EVENT, ?AGENT
--- gains control of the patient (object).
-fun gainsControl : El AchievingControl -> El Agent -> Formula ;
-
-
--- (givenName ?STRING ?HUMAN)
--- means that ?STRING is a name selected for ?HUMAN, usually from among
--- many options, as opposed to a mandatory name (cf. familyName) that
--- ?HUMAN has inherited by virtue of being born into a certain kin group,
--- caste, or occupation.
-fun givenName : El SymbolicString -> El Human -> Formula ;
-
-
--- (grammaticalRelation ?PHRASE ?SENTENCE) 
--- means that the Phrase ?PHRASE has a grammatical relation to the Sentence 
--- ?SENTENCE, i.e. it is a subject, object, main verb, etc. of the ?SENTENCE.
-fun grammaticalRelation : El Phrase -> El Sentence -> Formula ;
-
-
--- (grandfather ?PERSON ?PARENT) means that 
--- ?PARENT is the grandfather of ?PERSON.
-fun grandfather : El Human -> El Man -> Formula ;
-
-
--- (grandmother ?PERSON ?PARENT) means that 
--- ?PARENT is the grandmother of ?PERSON.
-fun grandmother : El Human -> El Woman -> Formula ;
-
-
--- (grandparent ?YOUNGER ?OLDER) means that
--- ?OLDER is a parent of ?YOUNGER's parent.
-fun grandparent : El Human -> El Human -> Formula ;
-
-
--- A subrelation of member, groupMember 
--- is used to relate a Human to a GroupOfPeople of which he/she is a 
--- member.
-fun groupMember : El Human -> El GroupOfPeople -> Formula ;
-
-
--- (half ?HALF ?WHOLE) means that ?HALF is one half 
--- of ?WHOLE.
-fun half : El Object -> El Object -> Formula ;
-
-
--- (hasExpertise ?PERSON ?FIELD) means that ?PERSON has 
--- studied the FieldOfStudy ?FIELD and is regarded as an expert.
-fun hasExpertise : El Human -> El FieldOfStudy -> Formula ;
-
-
--- (hasOccupation ?PERSON ?WORK) means that ?PERSON 
--- engages in activities of the class ?WORK as a means of earning a living.
-fun hasOccupation : El Human -> Desc IntentionalProcess -> Formula ;
-
-
--- (headquartersOfOrganization ?ORG ?AREA) 
--- means that the Organization ?ORG is headquartered in ?AREA.
-fun headquartersOfOrganization : El Organization -> El GeopoliticalArea -> Formula ;
-
-
--- (hopes ?AGENT ?FORMULA) means that ?AGENT hopes that 
--- the proposition ?FORMULA will be true, i.e. he/she believes that it will 
--- come to pass in the future and that it will be desirable for ?AGENT.
-fun hopes : El CognitiveAgent -> Formula -> Formula ;
-
-
--- (hostileForces ?UNIT1 ?UNIT2) means that 
--- the MilitaryUnits ?UNIT1 and ?UNIT2 are, respectively, allied with 
--- GeopoliticalAreas that are at war with one another.
-fun hostileForces : El MilitaryUnit -> El MilitaryUnit -> Formula ;
-
-
--- (humanCapacity ?CONSTRUCT ?NUMBER) means that the 
--- StationaryArtifact ?CONSTRUCT, e.g. a Building or a Room, can hold a maximum 
--- of ?NUMBER Humans without crowding.
-fun humanCapacity : El StationaryArtifact -> El PositiveInteger -> Formula ;
-
-
--- (ideologicalAffiliationOfOrganization 
--- ?ORG ?GOV) means that one of the goals of ?ORG is to realize the FormOfGovernment ?GOV.
-fun ideologicalAffiliationOfOrganization : El Organization -> El FormOfGovernment -> Formula ;
-
-
--- Every instance of the first argument is initially 
--- found as part of an instance of the second argument, even though it 
--- might lose that part later in its lifetime. While the part must initially 
--- exist as part of a whole, this does not say that each whole necessarily initially 
--- contains such a part. For example, a thumb must at some time have been 
--- part of a hand, but every hand need not have a thumb, even at birth. This 
--- is a class_level relation roughly corresponding to part.
-fun initialPart : Desc Object -> Desc Object -> Formula ;
-
-
--- Every instance of the second argument initially 
--- contains an instance of the first argument, even though it 
--- might lose that part later in its lifetime. Every normal human starts life with an
--- appendix for example. While the whole must initially 
--- contain such a part, this does not say that each part necessarily initially 
--- exists as part of such a whole. This is a class_level relation roughly 
--- corresponding to part.
-fun initiallyContainsPart : Desc Object -> Desc Object -> Formula;
-
-
--- (intelligenceQuotient ?PERSON ?NUMBER) 
--- means that ?NUMBER is the I.Q. of ?PERSON. The I.Q. of a person is the ratio 
--- of their mental age (determined by a standardized test) divided by their 
--- chronological age, multiplied by 100.
-fun intelligenceQuotient : El Human -> El RationalNumber -> Formula ;
-
-
--- (inventory ?CBO ?COLLECTION) means that 
--- the ContentBearingObject ?CBO contains a list or enumeration of the 
--- members of the Collection ?COLLECTION.
-fun inventory : El ContentBearingObject -> El Collection -> Formula ;
-
-
--- (lacks ?AGENT ?OBJECT) means that ?AGENT needs 
--- ?OBJECT and it is not currently the case that ?AGENT possesses ?OBJECT.
-fun lacks : El CognitiveAgent -> El Physical -> Formula ;
-
-
--- (landlord ?PERSON ?UNIT) means that ?PERSON is a 
--- landlord of the Residence ?UNIT, i.e. he or she owns ?UNIT and is renting 
--- the unit to someone else.
-fun landlord : El Agent -> El PermanentResidence -> Formula ;
-
-
--- (holdsDuring ?T1 (legalGuardian ?H1
--- ?H2)) means that during the time ?T1, ?H2 has legal authority over
--- ?H1, and is responsible for looking after ?H1's interests.
-fun legalGuardian : El Human -> El Human -> Formula ;
-
-
--- (localLongName ?NAME ?THING) means that 
--- the string ?NAME is the long form of the name used for ?THING in its local 
--- area or language.
-fun localLongName : El SymbolicString -> El Entity -> Formula ;
-
-
--- (localShortName ?NAME ?THING) means that 
--- the string ?NAME is the short form of the name used for ?THING in its 
--- local area or language.
-fun localShortName : El SymbolicString -> El Entity -> Formula ;
-
-
--- (locatedAtTime ?OBJ ?TIME ?PLACE) means
--- that during the time specified by ?TIME, ?OBJ was in the location
--- specified by ?PLACE.
-fun locatedAtTime : El Object -> El TimePosition -> El Object -> Formula ;
-
-
--- (losesControl ?EVENT ?AGENT) means that during ?EVENT, ?AGENT
--- loses physical control of the controlled object.
-fun losesControl : El ChangeOfControl -> El Agent -> Formula ;
-
-
--- The amount by which the cost of an investment or 
--- business operation exceeds its return, i.e. the negative quantity left 
--- after subtracting for all expenses.
-fun loss : El FinancialTransaction -> El CurrencyMeasure -> Formula;
-
-
--- (measurementReading ?DEVICE ?QUANTITY) 
--- means that ?QUANTITY is a reading of the MeasuringDevice ?DEVICE, e.g. if 
--- ?THERMOMETER is a Thermometer, (measurementReading ?THERMOMETER 
--- (MeasureFn 42 CelsiusDegree)) would mean that ?THERMOMETER registers 42 
--- degrees Celsius.
-fun measurementReading : El MeasuringDevice -> El ConstantQuantity -> Formula ;
-
-
--- (meatOfAnimal ?MEATCLASS ?ANIMALCLASS) states
--- that ?MEATCLASS was once part of the class of Animal ?ANIMALCLASS)
-fun meatOfAnimal : Desc Meat -> Desc Animal -> Formula ;
-
-
--- A relation between a Human and a 
--- CareOrganization that treats the patient.
-fun medicalPatient : El Human -> El CareOrganization -> Formula ;
-
-
--- (memberAtTime ?MEMBER ?COLLECTION
--- ?TIME) means that during the time period denoted by ?TIME,
--- ?MEMBER is a member of ?COLLECTION.
-fun memberAtTime : El SelfConnectedObject -> El Collection -> El TimePosition -> Formula ;
-
-
--- (memberCount ?ORG ?NUMBER) means that there 
--- is a total ?NUMBER of members in the Collection ?ORG.
-fun memberCount : El Collection -> El Integer -> Formula ;
-
-
--- (memberType ?GROUP ?TYPE) means that all 
--- the members of the Collection ?GROUP belong to the SetOrClass 
--- ?TYPE.
-fun memberType : El Collection -> El SetOrClass -> Formula ;
-
-
--- (memberTypeCount ?GROUP ?TYPE ?NUMBER) means that the 
--- Collection ?GROUP has ?NUMBER members of the kind ?TYPE.
-fun memberTypeCount : El Collection -> El SetOrClass -> El NonnegativeInteger -> Formula ;
-
-
--- (middleName ?CHAR ?INDIV) means that the 
--- SymbolicString ?CHAR contains the middle name of the Human ?INDIV.
-fun middleName : El SymbolicString -> El Human -> Formula ;
-
-
--- (monetaryWage ?ORG ?PERSON ?TIME ?MONEY) means 
--- that the Organization employs ?PERSON and pays him/her the amount of money 
--- ?MONEY per TimeDuration ?TIME.
-fun monetaryWage : El Organization -> El Human -> El TimeDuration -> El CurrencyMeasure -> Formula ;
-
-
--- (most ?MOST ?WHOLE) means that ?MOST is a part 
--- of ?WHOLE that is greater than half of ?WHOLE.
-fun most : El Object -> El Object -> Formula ;
-
-
--- (moves ?MOTION ?OBJECT) means that during
--- the Motion event ?MOTION, ?OBJECT moves. This does not
--- necessarily imply that the location of ?OBJECT changes during
--- ?MOTION. See also changesLocation and Translocation.
-fun moves : El Motion -> El Object -> Formula ;
-
-
--- (mutualStranger ?H1 ?H2) means that ?H1
--- and ?H2 have not met each other and do not know each other. Statements
--- made with this predicate should be temporally specified with
--- holdsDuring. See also the weaker, non_symmetric version of this
--- predicate, stranger.
-fun mutualStranger : El Human -> El Human -> Formula ;
-
-
--- (neighbor ?PERSON1 ?PERSON2) means that ?PERSON1 is 
--- a neighbor of ?PERSON2, i.e. ?PERSON1 and ?PERSON2 have their homes Near 
--- one another.
-fun neighbor : El Human -> El Human -> Formula ;
-
-
--- (nephew ?NEPHEW ?PERSON) means that ?NEPHEW is 
--- the son of a sibling of ?PERSON.
-fun nephew : El Man -> El Human -> Formula ;
-
-
--- (niece ?NIECE ?PERSON) means that ?NIECE is 
--- the daughter of a sibling of ?PERSON.
-fun niece : El Woman -> El Human -> Formula ;
-
-
--- (occupation ?PERSON ?TYPE) means that the occupation 
--- of ?PERSON is ?TYPE. This predicate is most often used in combination with the 
--- function OccupationFn, e.g. (occupation PoliceOfficerWilkins (OccupationFn 
--- LawEnforcement)).
-fun occupation : El Human -> El FinancialTransaction -> Formula ;
-
-
--- (older ?OBJ1 ?OBJ2) means that ?OBJ1 is older than 
--- ?OBJ2, i.e. the age of ?OBJ1 is greaterThan the age of ?OBJ2.
-fun older : El Object -> El Object -> Formula ;
-
-
--- (onboard ?OBJ ?VEHICLE) means that the 
--- SelfConnectedObject ?OBJ is inside the Vehicle ?VEHICLE.
-fun onboard : El SelfConnectedObject -> El Vehicle -> Formula ;
-
-
--- (operator ?OBJECT ?AGENT) means that ?AGENT 
--- determines how ?OBJECT is used, either by directly or indirectly operating 
--- it.
-fun operator : El Object -> El Agent -> Formula ;
-
-
--- (parasite ?ORGANISM1 ?ORGANISM2) means that there 
--- is a parasitic relationship between ?ORGANISM1 and ?ORGANISM2, i.e. ?ORGANISM1 
--- inhabits and obtains nourishment from ?ORGANISM2 in such a way that 
--- ?ORGANISM2 is injured.
-fun parasite : El Organism -> El Organism -> Formula ;
-
-
--- (pathInSystem ?PATH ?SYSTEM) means that 
--- the Physical thing ?PATH consists of one or more connected routes in 
--- the PhysicalSystem ?SYSTEM.
-fun pathInSystem : El Transitway -> El TransitSystem -> Formula ;
-
-
--- The relation of receiving medical care 
--- from a recognized medical practitioner. (patientMedical ?PATIENT 
--- ?DOCTOR) means that ?PATIENT is the patient of ?DOCTOR. Note that 
--- argument type restriction on the second argument is CognitiveAgent 
--- to allow for cases where someone is the patient of an Organization, 
--- viz. a CareOrganization.
-fun patientMedical : El Human -> El CognitiveAgent -> Formula ;
-
-
--- (plaintiff ?ACTION ?AGENT) means that ?AGENT 
--- is responsible for initiating the LegalAction ?ACTION.
-fun plaintiff : El LegalAction -> El CognitiveAgent -> Formula ;
-
-
--- (postalBoxNumber ?NUMBER ?ADDRESS) means 
--- that the post office box ?NUMBER is part of the address ?ADDRESS.
-fun postalBoxNumber : El PositiveInteger -> El Address -> Formula ;
-
-
--- (postalCode ?NUMBER ?ADDRESS) means that the 
--- the postal code, e.g. zip code, ?NUMBER is part of the address ?ADDRESS.
-fun postalCode : El PositiveInteger -> El Address -> Formula ;
-
-
--- (potentialOfHydrogen ?SOLUTION ?NUMBER) 
--- means that the Solution ?SOLUTION has a pH value of ?NUMBER. The ph varies 
--- between 0 and 14, and it is a measure of the acidity or alkalinity of ?SOLUTION. 
--- More precisely, and it is the logarithm of the reciprocal of the quantity of 
--- AtomGrams of Hydrogen ions.
-fun potentialOfHydrogen : El Solution -> El RealNumber -> Formula ;
-
-
--- (powerPlant ?GENERATOR ?THING) means that 
--- the Device ?GENERATOR is the power_producing component of the Artifact 
--- ?THING which provides the energy for its operation.
-fun powerPlant : El Device -> El Artifact -> Formula ;
-
-
--- (protonNumber ?SUBSTANCE ?NUMBER) means that 
--- the PureSubstance ?SUBSTANCE has the number of Protons ?NUMBER.
-fun protonNumber : El PureSubstance -> El PositiveInteger -> Formula ;
-
-
--- (quarter ?QUART ?WHOLE) means that ?QUART is a 
--- quarter of ?WHOLE.
-fun quarter : El Object -> El Object -> Formula ;
-
-
--- (reactant ?PROCESS ?SUBSTANCE) means that ?SUBSTANCE 
--- is a chemical reactant in the chemical reaction ?PROCESS, i.e. ?SUBSTANCE is 
--- present at the beginning of the chemical reaction ?PROCESS.
-fun reactant : El ChemicalProcess -> El Substance -> Formula ;
-
-
--- (reagent ?PROCESS ?SUBSTANCE) means that ?SUBSTANCE 
--- is a chemical agent in the chemical reaction ?PROCESS.
-fun reagent : El ChemicalProcess -> El Substance -> Formula ;
-
-
--- (registeredItem ?DOCUMENT ?ITEM) means 
--- that the Text ?DOCUMENT contains an official record of the Physical 
--- thing ?ITEM. The registered item could be an object or an event, e.g., 
--- an automobile, a ship, a marriage, an adoption.
-fun registeredItem : El Text -> El Physical -> Formula ;
-
-
--- (religiousAffiliationOfOrganization 
--- ?ORG ?BELIEF) means that one of the goals of ?ORG is to advance the religious teachings 
--- of the BeliefGroup ?BELIEF.
-fun religiousAffiliationOfOrganization : El Organization -> El BeliefGroup -> Formula ;
-
-
--- (routeInSystem ?PART ?SYSTEM) means that 
--- the Transitway ?PART is an established route of the 
--- TransportationSystem ?SYSTEM.
-fun routeInSystem : El Transitway -> El TransitSystem -> Formula ;
-
-
--- (secretesSubstance ?OBJ ?STUFF) means 
--- that the subclass of OrganicObject (either Organism or BodyPart) 
--- ?OBJ produces the subclass of Substance ?STUFF.
-fun secretesSubstance : Desc OrganicObject -> Desc NaturalSubstance -> Formula ;
-
-
--- (sententialObject ?OBJECT ?SENTENCE) 
--- means that the NounPhrase ?OBJECT is the object of the Sentence 
--- ?SENTENCE.
-fun sententialObject : El NounPhrase -> El Sentence -> Formula ;
-
-
--- (sententialSubject ?SUBJECT ?SENTENCE) 
--- means that the NounPhrase ?SUBJECT is the subject of the Sentence 
--- ?SENTENCE.
-fun sententialSubject : El NounPhrase -> El Sentence -> Formula ;
-
-
--- (serviceProvider ?EVENT ?AGENT)
--- means that ?AGENT is the supplier of the service provided in
--- ?EVENT.
-fun serviceProvider : El ServiceProcess -> El CognitiveAgent -> Formula ;
-
-
--- (serviceRecipient ?EVENT ?AGENT) means that ?AGENT is the
--- receiver of the service provided in ?EVENT.
-fun serviceRecipient : El ServiceProcess -> El CognitiveAgent -> Formula ;
-
-
--- (sideOfFigure ?SIDE ?FIGURE) means that the 
--- OneDimensionalFigure ?POINT is a side of the GeometricFigure ?FIGURE.
-fun sideOfFigure : El OneDimensionalFigure -> El GeometricFigure -> Formula ;
-
-
--- (sliceOfFigure ?SLICE ?FIGURE) indicates
--- that ?SLICE is a 2_d section of the 3_d figure ?FIGURE. Or, more 
--- formally, ?SLICE is 2_d figure formed by the intersection of a plane
--- with the 3_d figure ?FIGURE.
-fun sliceOfFigure : El TwoDimensionalObject -> El CorpuscularObject -> Formula ;
-
-
--- A relation between a Process of 
--- MusicalTone and the fundamental frequency of that tone.
-fun soundFrequency : El MusicalTone -> El FunctionQuantity -> Formula ;
-
-
--- (speaksLanguage ?AGENT ?LANGUAGE) means that the 
--- SentientAgent ?AGENT is capable of understanding and/or generating the Language 
--- ?LANGUAGE.
-fun speaksLanguage : El SentientAgent -> El Language -> Formula ;
-
-
--- (stepfather ?PERSON ?FATHER) means that ?FATHER 
--- is the stepfather of ?PERSON, i.e. ?FATHER is the spouse of the mother 
--- of ?PERSON, without also being the father of ?PERSON.
-fun stepfather : El Human -> El Man -> Formula ;
-
-
--- (stepmother ?PERSON ?MOTHER) means that ?MOTHER 
--- is the stepmother of ?PERSON, i.e. ?MOTHER is the spouse of the father 
--- of ?PERSON, without also being the mother of ?PERSON.
-fun stepmother : El Human -> El Woman -> Formula ;
-
-
--- (stockHolder ?Stock ?Agent) means that 
--- ?Agent possesses the Stock ?Stock.
-fun stockHolder : El Stock -> El CognitiveAgent -> Formula ;
-
-
--- (stranger ?H1 ?H2) means that ?H1 has
--- not met ?H2, or, in other words, (not (acquaintance ?H1
--- ?H2)). Statements made with stranger should be temporally
--- specified with holdsDuring. Note that stranger is not
--- symmetric, meaning that ?H2 might know ?H1. For the symmetric
--- version, see mutualStranger.
-fun stranger : El Human -> El Human -> Formula ;
-
-
--- (streetAddress ?STREET ?ADDRESS) means 
--- that the Roadway ?STREET is part of the address ?ADDRESS.
-fun streetAddress : El Roadway -> El Address -> Formula ;
-
-
--- (streetNumber ?BUILDING ?ADDRESS) means 
--- that the Building ?BUILDING is part of the address ?ADDRESS.
-fun streetNumber : El Building -> El Address -> Formula ;
-
-
--- (student ?ORG ?AGENT) means that ?AGENT is enrolled 
--- in the EducationalOrganization ?ORG.
-fun student : El EducationalOrganization -> El CognitiveAgent -> Formula ;
-
-
--- (subField ?FIELD1 ?FIELD2) means that ?FIELD1 is a proper 
--- part of the FieldOfStudy ?FIELD2. For example, Physiology is a subField of 
--- Biology.
-fun subField : El FieldOfStudy -> El FieldOfStudy -> Formula ;
-
-
--- (subordinateInOrganization ?ORG ?PERSON1 ?PERSON2) means that 
--- in the Organization ?ORG, ?PERSON1 is subordinate to ?PERSON2.
-fun subordinateInOrganization : El Organization -> El Human -> El Human -> Formula ;
-
-
--- (subordinatePosition ?ORG ?SUB ?SUPER) means that in 
--- the Organization ?ORG, the holder of role ?SUB is subordinate to 
--- the holder of role ?SUPER.
-fun subordinatePosition : El Organization -> El Position -> El Position -> Formula ;
-
-
--- (tangent ?LINE ?CIRCLE) means that the straight line 
--- ?LINE is tangent to the figure ?CIRCLE, i.e. ?LINE touches ?CIRCLE without 
--- intersecting it.
-fun tangent : El OneDimensionalFigure -> El TwoDimensionalObject -> Formula ;
-
-
--- This relation 
--- identifies the patient in the event that is the object of the
--- attack.
-fun targetInAttack : El Process -> El Object -> Formula ;
-
-
--- (teacher ?ORG ?AGENT) means that ?AGENT is a 
--- teacher at the EducationalOrganization ?ORG.
-fun teacher : El EducationalOrganization -> El CognitiveAgent -> Formula ;
-
-
--- (telephoneNumber ?NUMBER ?AGENT) means 
--- that ?NUMBER is a telephone number at which ?AGENT can be regularly contacted.
-fun telephoneNumber : El SymbolicString -> El Agent -> Formula ;
-
-
--- (tenant ?PERSON ?UNIT) means that ?PERSON is a tenant 
--- of the Residence ?UNIT, i.e. he or she is renting the unit.
-fun tenant : El Agent -> El Residence -> Formula ;
-
-
--- (third ?THIRD ?WHOLE) means that ?THIRD is one 
--- third of ?WHOLE.
-fun third : El Object -> El Object -> Formula ;
-
-
--- A BinaryPredicate used to
--- indicate the title of a ContentBearingPhysical. Note that the
--- second argument type restriction is a subclass, rather than an
--- instance, of ContentBearingPhysical. Thus, the title
--- Murder_on_the_Orient_Express corresponds to a large class of Books,
--- and not just to a single copy of the book.
-fun titles : El SymbolicString -> El ContentBearingPhysical -> Formula ;
-
-
--- (transported ?EVENT ?OBJ)
--- means that ?OBJ is transported (carried/moved to a
--- different physical location) in the Transportation
--- ?EVENT.
-fun transported : El Transportation -> El Object -> Formula ;
-
-
--- An instance of the first argument is typically 
--- found as part of an instance of the second argument. This is a 
--- class_level relation roughly corresponding to part. Note that this does 
--- not imply that such wholes typically have such parts.
-fun typicalPart : Desc Object -> Desc Object -> Formula ;
-
-
--- An instance of the second argument typically 
--- contains an instance of the first argument. This is a 
--- class_level relation roughly corresponding to part. Note that this does 
--- not imply that such parts typically have such wholes.
-fun typicallyContainsPart : Desc Object -> Desc Object -> Formula ;
-
-
--- (uncle ?UNCLE ?PERSON) means that ?UNCLE is 
--- the brother of a parent of ?PERSON.
-fun uncle : El Man -> El Human -> Formula ;
-
-
--- (unitNumber ?UNIT ?ADDRESS) means that the 
--- StationaryArtifact ?UNIT is part of the address ?ADDRESS.
-fun unitNumber : El StationaryArtifact -> El Address -> Formula ;
-
-
--- (wavelength ?RADIATION ?MEASURE) means that the 
--- instance of radiation, ?RADIATION, has an average wavelength of ?MEASURE.
-fun wavelength : El Radiating -> El LengthMeasure -> Formula ;
-
-
--- (yearOfFounding ?ORG ?NUMBER) means that the Organization 
--- ?ORG was founded in the year expressed in ?NUMBER.
-fun yearOfFounding : El Organization -> El Integer -> Formula ;
-}
diff --git a/examples/SUMO/Mid_level_ontologyEng.gf b/examples/SUMO/Mid_level_ontologyEng.gf
deleted file mode 100644
--- a/examples/SUMO/Mid_level_ontologyEng.gf
+++ /dev/null
@@ -1,1501 +0,0 @@
---# -path=.:englishExtended
-concrete Mid_level_ontologyEng of Mid_level_ontology = MergeEng ** open DictLangEng, DictEng, ParadigmsEng  in{
-
-lin
-
--- individual instances :
-
-Accountant = MassNP (UseN accountant_N) ;
-Acre = MassNP (UseN acre_N) ;
-Anthropology = MassNP (UseN anthropology_N) ;
-Architecture = MassNP (UseN architecture_N) ;
-AttorneyGeneral = MassNP (ApposCN (UseN attorney_N) (MassNP (UseN general_N))) ;
-Banker = MassNP (UseN banker_N) ;
-Biology = MassNP (UseN biology_N) ;
-Blind = MassNP (UseN blind_N) ;
-BusinessPerson = MassNP (ApposCN (UseN business_N) (MassNP (UseN person_N))) ;
-Cancer = MassNP (UseN cancer_N) ;
-Carpenter = MassNP (UseN carpenter_N) ;
-CenturyDuration = MassNP (ApposCN (UseN century_N) (MassNP (UseN duration_N))) ;
-ChemicalEquilibrium = MassNP (AdjCN (PositA chemical_A) (UseN equilibrium_N)) ;
-Chemistry = MassNP (UseN chemistry_N) ;
-ClericalSecretary = MassNP (AdjCN (PositA clerical_A) (UseN secretary_N)) ;
-Coach = MassNP (UseN coach_N) ;
-CollegeFreshman = MassNP (ApposCN (UseN college_N) (MassNP (UseN freshman_N))) ;
-CollegeJunior = MassNP (ApposCN (UseN college_N) (MassNP (UseN junior_N))) ;
-CollegeSenior = MassNP (ApposCN (UseN college_N) (MassNP (UseN senior_N))) ;
-CollegeSophomore = MassNP (ApposCN (UseN college_N) (MassNP (UseN sophomore_N))) ;
-Comedian = MassNP (UseN comedian_N) ;
-CommonEra = MassNP (AdjCN (PositA common_A) (UseN era_N)) ;
-ContainerEmpty = MassNP (ApposCN (UseN container_N) (MassNP (UseN empty_N))) ;
-Coroner = MassNP (UseN coroner_N) ;
-DecadeDuration = MassNP (ApposCN (UseN decade_N) (MassNP (UseN duration_N))) ;
-DemocraticParty = MassNP (AdjCN (PositA democratic_A) (UseN party_N)) ;
-Dentist = MassNP (UseN dentist_N) ;
-Diarrhea = MassNP (UseN diarrhea_N) ;
-Diplomat = MassNP (UseN diplomat_N) ;
-Dissident = MassNP (UseN dissident_N) ;
-Economics = DetCN (DetQuant IndefArt NumPl) (UseN economics_N) ;
-Electronics = DetCN (DetQuant IndefArt NumPl) (UseN electronics_N) ;
-Engineering = DetCN (DetQuant IndefArt NumPl) (UseN2 (VerbToNounV2 engineer_V2)) ;
-FarmHand = MassNP (ApposCN (UseN farm_N) (MassNP (UseN hand_N))) ;
-Fever = MassNP (UseN fever_N) ;
-FieldOfLaw = AdvNP (MassNP (UseN field_N)) (PrepNP part_Prep (MassNP (UseN law_N))) ;
-Fist = MassNP (UseN fist_N) ;
-Flat = MassNP (UseN flat_N) ;
-Foul = MassNP (UseN foul_N) ;
-Functioning = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun function_V)) ;
-GovernmentPerson = MassNP (ApposCN (UseN government_N) (MassNP (UseN person_N))) ;
-Governor = MassNP (UseN governor_N) ;
-Green = MassNP (UseN green_N) ;
-Handstand = MassNP (UseN handstand_N) ;
-Happiness = MassNP (UseN happiness_N) ;
-History = MassNP (UseN history_N) ;
-HumanSlave = MassNP (AdjCN (PositA human_A) (UseN slave_N)) ;
-Inside = MassNP (UseN inside_N) ;
-InteriorDesign = MassNP (AdjCN (PositA interior_A) (UseN design_N)) ;
-Kneeling = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun kneel_V)) ;
-Knight = MassNP (UseN knight_N) ;
-LegislativeBill = MassNP (AdjCN (PositA legislative_A) (UseN bill_N)) ;
-LevelShape = MassNP (AdjCN (PositA level_A) (UseN shape_N)) ;
-LieutenantGovernor = MassNP (ApposCN (UseN lieutenant_N) (MassNP (UseN governor_N))) ;
-LineFormation = MassNP (ApposCN (UseN line_N) (MassNP (UseN formation_N))) ;
-Linguistics = DetCN (DetQuant IndefArt NumPl) (UseN linguistics_N) ;
-LiquorShot = PPartNP (MassNP (UseN liquor_N)) overshoot_V2 ;
-Literature = MassNP (UseN literature_N) ;
-Malfunctioning = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun malfunction_V)) ;
-Mathematics = DetCN (DetQuant IndefArt NumPl) (UseN mathematics_N) ;
-Mayor = MassNP (UseN mayor_N) ;
-MedicalScience = MassNP (AdjCN (PositA medical_A) (UseN science_N)) ;
-MetricTon = MassNP (AdjCN (PositA metric_A) (UseN ton_N)) ;
-Militant = MassNP (UseN militant_N) ;
-MilitaryPerson = MassNP (AdjCN (PositA military_A) (UseN person_N)) ;
-MilitaryScience = MassNP (AdjCN (PositA military_A) (UseN science_N)) ;
-MillenniumDuration = MassNP (ApposCN (UseN millennium_N) (MassNP (UseN duration_N))) ;
-Musician = MassNP (UseN musician_N) ;
-NaziParty = MassNP (AdjCN (PositA nazi_A) (UseN party_N)) ;
-NewsReporter = MassNP (ApposCN (UseN news_N) (MassNP (UseN reporter_N))) ;
-Outside = MassNP (UseN outside_N) ;
-Page = MassNP (UseN page_N) ;
-Philosophy = MassNP (UseN philosophy_N) ;
-Physics = DetCN (DetQuant IndefArt NumPl) (UseN physic_N) ;
-Physiology = MassNP (UseN physiology_N) ;
-Pink = MassNP (UseN pink_N) ;
-Plumber = MassNP (UseN plumber_N) ;
-PoliticalScience = MassNP (AdjCN (PositA political_A) (UseN science_N)) ;
-Pope = MassNP (UseN pope_N) ;
-Potter = MassNP (UseN potter_N) ;
-PresidentOfTheUnitedStates = AdvNP (MassNP (UseN president_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA united_A) (UseN state_N)))) ;
-PrivateDetective = MassNP (AdjCN (PositA private_A) (UseN detective_N)) ;
-Psychology = MassNP (UseN psychology_N) ;
-Purple = MassNP (UseN purple_N) ;
-RepublicanParty = MassNP (AdjCN (PositA republican_A) (UseN party_N)) ;
-RoundShape = MassNP (AdjCN (PositA round_A) (UseN shape_N)) ;
-SecretaryOfTheInterior = AdvNP (MassNP (UseN secretary_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN interior_N))) ;
-SecretaryOfTheTreasury = AdvNP (MassNP (UseN secretary_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN treasury_N))) ;
-Splitting = DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 split_V2)) ;
-SportsOut = AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN sport_N)) out_Adv ;
-SquareMile = MassNP (AdjCN (PositA square_A) (UseN mile_N)) ;
-SquareYard = MassNP (AdjCN (PositA square_A) (UseN yard_N)) ;
-StoreOwner = MassNP (ApposCN (UseN store_N) (MassNP (UseN owner_N))) ;
-Student = MassNP (UseN student_N) ;
-Surprise = MassNP (UseN surprise_N) ;
-SymmetricShape = MassNP (AdjCN (PositA symmetric_A) (UseN shape_N)) ;
-Teacher = MassNP (UseN teacher_N) ;
-Theology = MassNP (UseN theology_N) ;
-TieScore = MassNP (ApposCN (UseN tie_N) (MassNP (UseN score_N))) ;
-TonMass = MassNP (ApposCN (UseN ton_N) (MassNP (UseN mass_N))) ;
-Tourist = MassNP (UseN tourist_N) ;
-Tuberculosis = MassNP (UseN tuberculosis_N) ;
-Unhappiness = MassNP (UseN unhappiness_N) ;
-UnitedStatesCongress = DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN congress_N)))) ;
-UnitedStatesDepartmentOfInterior = AdvNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN department_N))))) (PrepNP part_Prep (MassNP (UseN interior_N))) ;
-UnitedStatesDepartmentOfState = AdvNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA united_A) (ApposCN (UseN state_N) (MassNP (UseN department_N))))) (PrepNP part_Prep (MassNP (UseN state_N))) ;
-Veteran = MassNP (UseN veteran_N) ;
-YardLength = MassNP (ApposCN (UseN yard_N) (MassNP (UseN length_N))) ;
-Drunk = MassNP (UseN drunk_N) ;
-InternationalLaw = MassNP (AdjCN (PositA international_A) (UseN law_N)) ;
-MarriageContract = MassNP (ApposCN (UseN marriage_N) (MassNP (UseN contract_N))) ;
-Treaty = MassNP (UseN treaty_N) ;
-Satisfaction = MassNP (UseN satisfaction_N) ;
-Tranquility = MassNP (UseN tranquility_N) ;
-Excitement = MassNP (UseN excitement_N) ;
-Anxiety = MassNP (UseN anxiety_N) ;
-Anger = MassNP (UseN anger_N) ;
-Pain = MassNP (UseN pain_N) ;
-Headache = MassNP (UseN headache_N) ;
-Puberty = MassNP (UseN puberty_N) ;
-Squatting = DetCN (DetQuant IndefArt NumSg) (UseN (VerbToNoun squat_V)) ;
-Housewife = MassNP (UseN housewife_N) ;
-Deputy = MassNP (UseN deputy_N) ;
-AttorneyGeneral = MassNP (ApposCN (UseN attorney_N) (MassNP (UseN general_N))) ;
-Professor = MassNP (UseN professor_N) ;
-ArtCritic = MassNP (ApposCN (UseN art_N) (MassNP (UseN critic_N))) ;
-Dissident = MassNP (UseN dissident_N) ;
-
-
--- subclasses 
-Aborting = UseN2 (VerbToNounV2 abort_V2) ;
-AcademicDegree = AdjCN (PositA academic_A) (UseN degree_N) ;
-Accelerating = UseN2 (VerbToNounV2 accelerate_V2) ;
-Accrediting = UseN2 (VerbToNounV2 accredit_V2) ;
-AchievingControl = AdjCN (PositA (VerbToGerundA achieve_V2)) (UseN control_N) ;
-AcuteAngle = AdjCN (PositA acute_A) (UseN angle_N) ;
-Address = UseN address_N ;
-Aerating = UseN2 (VerbToNounV2 aerate_V2) ;
-Afternoon = UseN afternoon_N ;
-Agency = UseN agency_N ;
-AirForce = ApposCN (UseN air_N) (MassNP (UseN force_N)) ;
-AirTransportation = ApposCN (UseN air_N) (MassNP (UseN transportation_N)) ;
-Aircraft = UseN aircraft_N ;
-Alcohol = UseN alcohol_N ;
-AlcoholicBeverage = AdjCN (PositA alcoholic_A) (UseN beverage_N) ;
-Ambush = UseN ambush_N ;
-Anaconda = UseN anaconda_N ;
-Anchor = UseN anchor_N ;
-AnimalController = ApposCN (UseN animal_N) (MassNP (UseN controller_N)) ;
-AnimalPoweredDevice = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA powered_A) (UseN device_N))) ;
-AnimalResidence = ApposCN (UseN animal_N) (MassNP (UseN residence_N)) ;
-AnimalShell = ApposCN (UseN animal_N) (MassNP (UseN shell_N)) ;
-AnimalTeam = ApposCN (UseN animal_N) (MassNP (UseN team_N)) ;
-Ankle = UseN ankle_N ;
-Announcement = UseN announcement_N ;
-Answering = UseN2 (VerbToNounV2 answer_V2) ;
-AntInsect = ApposCN (UseN ant_N) (MassNP (UseN insect_N)) ;
-Antelope = UseN antelope_N ;
-Antenna = UseN antenna_N ;
-Antibiotic = UseN antibiotic_N ;
-Antibody = UseN antibody_N ;
-ApartmentBuilding = ApposCN (UseN apartment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-ApartmentUnit = ApposCN (UseN apartment_N) (MassNP (UseN unit_N)) ;
-Apple = UseN apple_N ;
-Application = UseN application_N ;
-Appointing = UseN2 (VerbToNounV2 appoint_V2) ;
-Apron = UseN apron_N ;
-Arguing = UseN2 (VerbToNounV2 argue_V2) ;
-Arm = UseN arm_N ;
-Army = UseN army_N ;
-Arriving = UseN (VerbToNoun arrive_V) ;
-ArrowFigure = ApposCN (UseN arrow_N) (MassNP (UseN figure_N)) ;
-ArrowIcon = ApposCN (UseN arrow_N) (MassNP (UseN icon_N)) ;
-ArrowProjectile = ApposCN (UseN arrow_N) (MassNP (UseN projectile_N)) ;
-Arson = UseN arson_N ;
-ArtPainting = ApposCN (UseN art_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 paint_V2))) ;
-ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
-ArtStudio = ApposCN (UseN art_N) (MassNP (UseN studio_N)) ;
-Artery = UseN artery_N ;
-ArtilleryGun = ApposCN (UseN artillery_N) (MassNP (UseN gun_N)) ;
-AtmosphericRegion = AdjCN (PositA atmospheric_A) (UseN region_N) ;
-AtomicGroup = AdjCN (PositA atomic_A) (UseN group_N) ;
-Atrophy = UseN atrophy_N ;
-Auditorium = UseN auditorium_N ;
-AuditoriumSeat = ApposCN (UseN auditorium_N) (MassNP (UseN seat_N)) ;
-AutomaticGun = AdjCN (PositA automatic_A) (UseN gun_N) ;
-Automobile = UseN automobile_N ;
-Avocado = UseN avocado_N ;
-Axle = UseN axle_N ;
-BacterialDisease = AdjCN (PositA bacterial_A) (UseN disease_N) ;
-Bag = UseN bag_N ;
-Baking = UseN2 (VerbToNounV2 bake_V2) ;
-Ball = UseN ball_N ;
-BallisticMissile = AdjCN (PositA ballistic_A) (UseN missile_N) ;
-Ballot = UseN ballot_N ;
-Bandage = UseN bandage_N ;
-Baptizing = UseN2 (VerbToNounV2 baptize_V2) ;
-BargainSale = ApposCN (UseN bargain_N) (MassNP (UseN sale_N)) ;
-Barking = UseN2 (VerbToNounV2 bark_V2) ;
-Barn = UseN barn_N ;
-Basement = UseN basement_N ;
-Bathing = UseN bathing_N ;
-BathingDevice = AdjCN (PositA (VerbToGerundA bath_V2)) (UseN device_N) ;
-Bathroom = UseN bathroom_N ;
-Baton = UseN baton_N ;
-Battery = UseN battery_N ;
-BecomingDrunk = AdjCN (PositA becoming_A) (UseN drunk_N) ;
-Bed = UseN bed_N ;
-Bedroom = UseN bedroom_N ;
-Bee = UseN bee_N ;
-Beef = UseN beef_N ;
-Beer = UseN beer_N ;
-BeginningOperations = AdjCN (PositA (VerbToGerundA begin_V2)) (UseN operation_N) ;
-Bell = UseN bell_N ;
-Belt = UseN belt_N ;
-Bequeathing = UseN2 (VerbToNounV2 bequeath_V2) ;
-Biography = UseN biography_N ;
-BiologicalConception = AdjCN (PositA biological_A) (UseN conception_N) ;
-BiologicalSpecies = AdjCN (PositA biological_A) (UseN species_N) ;
-BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
-Biting = UseN2 (VerbToNounV2 backbite_V2) ;
-Blanket = UseN blanket_N ;
-Bleeding = UseN2 (VerbToNounV2 bleed_V2) ;
-Blockade = UseN blockade_N ;
-BloodCell = ApposCN (UseN blood_N) (MassNP (UseN cell_N)) ;
-BloodVessel = ApposCN (UseN blood_N) (MassNP (UseN vessel_N)) ;
-Blueprint = UseN blueprint_N ;
-Blushing = UseN (VerbToNoun blush_V) ;
-BoardOrBlock = ConjCN or_Conj (BaseCN (UseN board_N) (UseN block_N)) ;
-Boarding = UseN boarding_N ;
-BoatDeck = ApposCN (UseN boat_N) (MassNP (UseN deck_N)) ;
-BodyJoint = ApposCN (UseN body_N) (MassNP (UseN joint_N)) ;
-Bomb = UseN bomb_N ;
-Bomber = UseN bomber_N ;
-Bombing = UseN2 (VerbToNounV2 bomb_V2) ;
-Bottle = UseN bottle_N ;
-Bowing = UseN bowing_N ;
-Box = UseN box_N ;
-Boy = UseN boy_N ;
-Brain = UseN brain_N ;
-Brandy = UseN brandy_N ;
-Brass = UseN brass_N ;
-BreadOrBiscuit = ConjCN or_Conj (BaseCN (UseN bread_N) (UseN biscuit_N)) ;
-Breast = UseN breast_N ;
-Brick = UseN brick_N ;
-BrigadierGeneral = ApposCN (UseN brigadier_N) (MassNP (UseN general_N)) ;
-BroadcastNetwork = ApposCN (UseN broadcast_N) (MassNP (UseN network_N)) ;
-BroadcastProgram = ApposCN (UseN broadcast_N) (MassNP (UseN program_N)) ;
-Broadcasting = UseN broadcasting_N ;
-BronchialDuct = AdjCN (PositA bronchial_A) (UseN duct_N) ;
-Brood = UseN brood_N ;
-Broom = UseN broom_N ;
-BrushOrComb = ConjCN or_Conj (BaseCN (UseN brush_N) (UseN comb_N)) ;
-Bubble = UseN bubble_N ;
-Buffalo = UseN buffalo_N ;
-Bugle = UseN bugle_N ;
-BuildingLevel = AdjCN (PositA (VerbToGerundA build_V2)) (UseN level_N) ;
-Bull = UseN bull_N ;
-Bullet = UseN bullet_N ;
-Burrow = UseN burrow_N ;
-Burying = UseN2 (VerbToNounV2 bury_V2) ;
-Bus = UseN bus_N ;
-BusStop = ApposCN (UseN bus_N) (MassNP (UseN stop_N)) ;
-BusinessCompetition = ApposCN (UseN business_N) (MassNP (UseN competition_N)) ;
-Butter = UseN butter_N ;
-Button = UseN button_N ;
-Cafeteria = UseN cafeteria_N ;
-Calf = UseN calf_N ;
-Camera = UseN camera_N ;
-Camp = UseN camp_N ;
-Candle = UseN candle_N ;
-Capillary = UseN capillary_N ;
-CaptainOfficer = ApposCN (UseN captain_N) (MassNP (UseN officer_N)) ;
-Capturing = UseN2 (VerbToNounV2 capture_V2) ;
-CarBombing = ApposCN (UseN car_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 bomb_V2))) ;
-CareOrganization = ApposCN (UseN care_N) (MassNP (UseN organization_N)) ;
-Carpentry = UseN carpentry_N ;
-Catching = UseN2 (VerbToNounV2 catch_V2) ;
-CausingHappiness = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN happiness_N) ;
-CausingPain = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN pain_N) ;
-CausingUnhappiness = AdjCN (PositA (VerbToGerundA cause_V2)) (UseN unhappiness_N) ;
-CavalryUnit = ApposCN (UseN cavalry_N) (MassNP (UseN unit_N)) ;
-CeasingOperations = AdjCN (PositA (VerbToGerundA cease_V2)) (UseN operation_N) ;
-Ceiling = UseN ceiling_N ;
-CellNucleus = ApposCN (UseN cell_N) (MassNP (UseN nucleus_N)) ;
-Cellulose = UseN cellulose_N ;
-Cemetery = UseN cemetery_N ;
-CentrifugalMotion = AdjCN (PositA centrifugal_A) (UseN motion_N) ;
-CentripetalMotion = AdjCN (PositA centripetal_A) (UseN motion_N) ;
-CerealGrain = ApposCN (UseN cereal_N) (MassNP (UseN grain_N)) ;
-Chair = UseN chair_N ;
-ChangeOfControl = AdvCN (UseN change_N) (PrepNP part_Prep (MassNP (UseN control_N))) ;
-ChangingClothing = AdjCN (PositA (VerbToGerundA change_V2)) (UseN clothing_N) ;
-Chapter = UseN chapter_N ;
-Chart = UseN chart_N ;
-Checkpoint = UseN checkpoint_N ;
-ChemicalAcid = AdjCN (PositA chemical_A) (UseN acid_N) ;
-ChemicalAttack = AdjCN (PositA chemical_A) (UseN attack_N) ;
-ChemicalBase = AdjCN (PositA chemical_A) (UseN base_N) ;
-ChemicalReduction = AdjCN (PositA chemical_A) (UseN reduction_N) ;
-ChemicalSalt = AdjCN (PositA chemical_A) (UseN salt_N) ;
-ChestOrCabinet = ConjCN or_Conj (BaseCN (UseN chest_N) (UseN cabinet_N)) ;
-Chewing = UseN2 (VerbToNounV2 chew_V2) ;
-Chicken = UseN chicken_N ;
-ChickenMeat = ApposCN (UseN chicken_N) (MassNP (UseN meat_N)) ;
-Chimney = UseN chimney_N ;
-Chin = UseN chin_N ;
-ChristianBible = AdjCN (PositA christian_A) (UseN bible_N) ;
-ChristianGospel = AdjCN (PositA christian_A) (UseN gospel_N) ;
-ChristianService = AdjCN (PositA christian_A) (UseN service_N) ;
-CigarOrCigarette = ConjCN or_Conj (BaseCN (UseN cigar_N) (UseN cigarette_N)) ;
-CircleSector = ApposCN (UseN circle_N) (MassNP (UseN sector_N)) ;
-CityBlock = ApposCN (UseN city_N) (MassNP (UseN block_N)) ;
-CityDistrict = ApposCN (UseN city_N) (MassNP (UseN district_N)) ;
-CityGovernment = ApposCN (UseN city_N) (MassNP (UseN government_N)) ;
-CivilWar = AdjCN (PositA civil_A) (UseN war_N) ;
-Civilian = UseN civilian_N ;
-Clamp = UseN clamp_N ;
-Clapping = UseN2 (VerbToNounV2 clap_V2) ;
-ClassificationScheme = ApposCN (UseN classification_N) (MassNP (UseN scheme_N)) ;
-Classroom = UseN classroom_N ;
-Cleric = UseN cleric_N ;
-Cloak = UseN cloak_N ;
-Clock = UseN clock_N ;
-Closet = UseN closet_N ;
-Closing = UseN2 (VerbToNounV2 close_V2) ;
-ClosingContract = AdjCN (PositA (VerbToGerundA close_V2)) (UseN contract_N) ;
-ClosingEyes = AdjCN (PositA (VerbToGerundA close_V2)) (UseN eye_N) ;
-ClothingSuit = AdjCN (PositA (VerbToGerundA clothe_V2)) (UseN suit_N) ;
-CoastGuard = ApposCN (UseN coast_N) (MassNP (UseN guard_N)) ;
-Coat = UseN coat_N ;
-Coconut = UseN coconut_N ;
-Coffee = UseN coffee_N ;
-Coffin = UseN coffin_N ;
-Collage = UseN collage_N ;
-Collar = UseN collar_N ;
-College = UseN college_N ;
-CollegeStudentPosition = ApposCN (ApposCN (UseN college_N) (MassNP (UseN student_N))) (MassNP (UseN position_N)) ;
-Colonel = UseN colonel_N ;
-CommercialBuilding = AdjCN (PositA commercial_A) (UseN building_N) ;
-CommercialShipping = AdjCN (PositA commercial_A) (UseN shipping_N) ;
-CommercialUnit = AdjCN (PositA commercial_A) (UseN unit_N) ;
-Commission = UseN commission_N ;
-CommunicationOrganization = ApposCN (UseN communication_N) (MassNP (UseN organization_N)) ;
-CommunicationSystem = ApposCN (UseN communication_N) (MassNP (UseN system_N)) ;
-CommunistParty = AdjCN (PositA communist_A) (UseN party_N) ;
-Compartment = UseN compartment_N ;
-Compass = UseN compass_N ;
-Composing = UseN2 (VerbToNounV2 compose_V2) ;
-ComposingMusic = AdjCN (PositA (VerbToGerundA compose_V2)) (UseN music_N) ;
-Concealing = UseN2 (VerbToNounV2 conceal_V2) ;
-CondominiumBuilding = ApposCN (UseN condominium_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-CondominiumUnit = ApposCN (UseN condominium_N) (MassNP (UseN unit_N)) ;
-Cone = UseN cone_N ;
-ConfederateSoldier = AdjCN (PositA confederate_A) (UseN soldier_N) ;
-Congratulating = UseN2 (VerbToNounV2 congratulate_V2) ;
-ConjugatedSubstance = AdjCN (PositA (VerbToParticipeA conjugate_V)) (UseN substance_N) ;
-Consonant = UseN consonant_N ;
-Container = UseN container_N ;
-ContraceptiveDevice = AdjCN (PositA contraceptive_A) (UseN device_N) ;
-Convoy = UseN convoy_N ;
-CoolingDevice = AdjCN (PositA (VerbToGerundA cool_V2)) (UseN device_N) ;
-Copying = UseN2 (VerbToNounV2 copy_V2) ;
-Corporal = UseN corporal_N ;
-Corresponding = UseN (VerbToNoun correspond_V) ;
-Cotton = UseN cotton_N ;
-CottonFabric = ApposCN (UseN cotton_N) (MassNP (UseN fabric_N)) ;
-CourtRoom = ApposCN (UseN court_N) (MassNP (UseN room_N)) ;
-Cow = UseN cow_N ;
-Crane = UseN crane_N ;
-Creek = UseN creek_N ;
-CriminalAction = AdjCN (PositA criminal_A) (UseN action_N) ;
-CriminalGang = AdjCN (PositA criminal_A) (UseN gang_N) ;
-CultivatedLandArea = AdjCN (PositA cultivated_A) (ApposCN (UseN land_N) (MassNP (UseN area_N))) ;
-Curb = UseN curb_N ;
-CurrencyBill = ApposCN (UseN currency_N) (MassNP (UseN bill_N)) ;
-CurrencyCoin = ApposCN (UseN currency_N) (MassNP (UseN coin_N)) ;
-Curtain = UseN curtain_N ;
-CuttingDevice = AdjCN (PositA cutting_A) (UseN device_N) ;
-Cylinder = UseN cylinder_N ;
-DateFruit = ApposCN (UseN date_N) (MassNP (UseN fruit_N)) ;
-DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
-DayTime = ApposCN (UseN day_N) (MassNP (UseN time_N)) ;
-Deacon = UseN deacon_N ;
-Debating = UseN2 (VerbToNounV2 debate_V2) ;
-Decelerating = UseN2 (VerbToNounV2 decelerate_V2) ;
-Desk = UseN desk_N ;
-Detergent = UseN detergent_N ;
-DeviceAttribute = ApposCN (UseN device_N) (MassNP (UseN attribute_N)) ;
-DeviceStateAttribute = ApposCN (ApposCN (UseN device_N) (MassNP (UseN state_N))) (MassNP (UseN attribute_N)) ;
-Diamond = UseN diamond_N ;
-Dictionary = UseN dictionary_N ;
-DieselEngine = ApposCN (UseN diesel_N) (MassNP (UseN engine_N)) ;
-Diet = UseN diet_N ;
-Digging = UseN digging_N ;
-DigitAppendage = ApposCN (UseN digit_N) (MassNP (UseN appendage_N)) ;
-DigitCharacter = ApposCN (UseN digit_N) (MassNP (UseN character_N)) ;
-Diluting = UseN2 (VerbToNounV2 dilute_V2) ;
-DiningRoom = AdjCN (PositA (VerbToGerundA dine_V2)) (UseN room_N) ;
-Dish = UseN dish_N ;
-Dismounting = UseN2 (VerbToNounV2 dismount_V2) ;
-DisplayArtifact = ApposCN (UseN display_N) (MassNP (UseN artifact_N)) ;
-DistilledAlcoholicBeverage = AdjCN (PositA (VerbToParticipeA distil_V)) (AdjCN (PositA alcoholic_A) (UseN beverage_N)) ;
-Divorcing = UseN2 (VerbToNounV2 divorce_V2) ;
-Dodging = UseN2 (VerbToNounV2 dodge_V2) ;
-DomesticAnimal = AdjCN (PositA domestic_A) (UseN animal_N) ;
-DomesticCat = AdjCN (PositA domestic_A) (UseN cat_N) ;
-DomesticDog = AdjCN (PositA domestic_A) (UseN dog_N) ;
-Donkey = UseN donkey_N ;
-Door = UseN door_N ;
-Doorway = UseN doorway_N ;
-Dormitory = UseN dormitory_N ;
-Dough = UseN dough_N ;
-DramaticActing = AdjCN (PositA dramatic_A) (UseN acting_N) ;
-DramaticCast = AdjCN (PositA dramatic_A) (UseN cast_N) ;
-DramaticDirecting = AdjCN (PositA dramatic_A) (UseN2 (VerbToNounV2 direct_V2)) ;
-DramaticPerformance = AdjCN (PositA dramatic_A) (UseN performance_N) ;
-DramaticPlay = AdjCN (PositA dramatic_A) (UseN play_N) ;
-Drawing = UseN drawing_N ;
-Dreaming = UseN2 (VerbToNounV2 dream_V2) ;
-Dress = UseN dress_N ;
-Dressing = UseN dressing_N ;
-DressingRoom = AdjCN (PositA (VerbToGerundA dress_V2)) (UseN room_N) ;
-Drill = UseN drill_N ;
-Drilling = UseN2 (VerbToNounV2 drill_V2) ;
-DrinkingCup = AdjCN (PositA (VerbToGerundA drink_V2)) (UseN cup_N) ;
-Dripping = UseN dripping_N ;
-DriveComponent = ApposCN (UseN drive_N) (MassNP (UseN component_N)) ;
-Driveway = UseN driveway_N ;
-DrugStore = ApposCN (UseN drug_N) (MassNP (UseN store_N)) ;
-Drum = UseN drum_N ;
-Drumming = UseN2 (VerbToNounV2 drum_V2) ;
-Duck = UseN duck_N ;
-Ducking = UseN ducking_N ;
-DutyTax = ApposCN (UseN duty_N) (MassNP (UseN tax_N)) ;
-Ear = UseN ear_N ;
-Echoing = UseN2 (VerbToNounV2 echo_V2) ;
-EducationalCourse = AdjCN (PositA educational_A) (UseN course_N) ;
-EducationalFacility = AdjCN (PositA educational_A) (UseN facility_N) ;
-EducationalProgram = AdjCN (PositA educational_A) (UseN program_N) ;
-Elbow = UseN elbow_N ;
-ElectoralCollegeElection = AdjCN (PositA electoral_A) (ApposCN (UseN college_N) (MassNP (UseN election_N))) ;
-ElectricDevice = AdjCN (PositA electric_A) (UseN device_N) ;
-ElectricMotor = AdjCN (PositA electric_A) (UseN motor_N) ;
-ElectricalSignalling = AdjCN (PositA electrical_A) (UseN2 (VerbToNounV2 signal_V2)) ;
-ElectronicSignalling = AdjCN (PositA electronic_A) (UseN2 (VerbToNounV2 signal_V2)) ;
-Elephant = UseN elephant_N ;
-Elevator = UseN elevator_N ;
-EmbassyBuilding = ApposCN (UseN embassy_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-Embracing = UseN2 (VerbToNounV2 embrace_V2) ;
-EmploymentFiring = ApposCN (UseN employment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 fire_V2))) ;
-Engine = UseN engine_N ;
-EntertainmentBuilding = ApposCN (UseN entertainment_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-EntertainmentCompany = ApposCN (UseN entertainment_N) (MassNP (UseN company_N)) ;
-EntertainmentProfession = ApposCN (UseN entertainment_N) (MassNP (UseN profession_N)) ;
-Entombing = UseN2 (VerbToNounV2 entomb_V2) ;
-Envelope = UseN envelope_N ;
-Escaping = UseN2 (VerbToNounV2 escape_V2) ;
-Espionage = UseN espionage_N ;
-EuropeanNation = AdjCN (PositA european_A) (UseN nation_N) ;
-Execution = UseN execution_N ;
-ExecutiveResidence = AdjCN (PositA executive_A) (UseN residence_N) ;
-Exhaling = UseN2 (VerbToNounV2 exhale_V2) ;
-Explosion = UseN explosion_N ;
-ExplosiveDevice = AdjCN (PositA explosive_A) (UseN device_N) ;
-ExplosiveMine = AdjCN (PositA explosive_A) (UseN mine_N) ;
-ExplosiveSubstance = AdjCN (PositA explosive_A) (UseN substance_N) ;
-ExpressingApproval = AdjCN (PositA (VerbToGerundA express_V2)) (UseN approval_N) ;
-ExpressingDisapproval = AdjCN (PositA (VerbToGerundA express_V2)) (UseN disapproval_N) ;
-ExpressingFarewell = AdjCN (PositA (VerbToGerundA express_V2)) (UseN farewell_N) ;
-ExpressingInLanguage = AdjCN (PositA (VerbToGerundA express_V2)) (ApposCN (UseN in_N) (MassNP (UseN language_N))) ;
-Eye = UseN eye_N ;
-EyeGlass = ApposCN (UseN eye_N) (MassNP (UseN glass_N)) ;
-EyeMotion = ApposCN (UseN eye_N) (MassNP (UseN motion_N)) ;
-Eyelid = UseN eyelid_N ;
-Face = UseN face_N ;
-FacialExpression = AdjCN (PositA facial_A) (UseN expression_N) ;
-FacialHair = AdjCN (PositA facial_A) (UseN hair_N) ;
-Fact = UseN fact_N ;
-Factory = UseN factory_N ;
-FallSeason = ApposCN (UseN fall_N) (MassNP (UseN season_N)) ;
-FallingAsleep = AdvCN (UseN2 (VerbToNounV2 befall_V2)) asleep_Adv ;
-Fallout = UseN fallout_N ;
-FamilyBusiness = ApposCN (UseN family_N) (MassNP (UseN business_N)) ;
-FanDevice = ApposCN (UseN fan_N) (MassNP (UseN device_N)) ;
-Farm = UseN farm_N ;
-FarmBuilding = ApposCN (UseN farm_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-Farming = UseN2 (VerbToNounV2 farm_V2) ;
-Feather = UseN feather_N ;
-Feeding = UseN2 (VerbToNounV2 breastfeed_V2) ;
-FemaleCow = AdjCN (PositA female_A) (UseN cow_N) ;
-Fence = UseN fence_N ;
-Field = UseN field_N ;
-Fighter = UseN fighter_N ;
-FileDevice = ApposCN (UseN file_N) (MassNP (UseN device_N)) ;
-FilmDirector = ApposCN (UseN film_N) (MassNP (UseN director_N)) ;
-FilmMaking = ApposCN (UseN film_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 make_V2))) ;
-FilmMakingProfession = ApposCN (ApposCN (UseN film_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 make_V2)))) (MassNP (UseN profession_N)) ;
-FilmProducer = ApposCN (UseN film_N) (MassNP (UseN producer_N)) ;
-Filter = UseN filter_N ;
-FinancialBill = AdjCN (PositA financial_A) (UseN bill_N) ;
-FinancialCompany = AdjCN (PositA financial_A) (UseN company_N) ;
-FinancialService = AdjCN (PositA financial_A) (UseN service_N) ;
-FinancialText = AdjCN (PositA financial_A) (UseN text_N) ;
-Financing = UseN2 (VerbToNounV2 finance_V2) ;
-Finger = UseN finger_N ;
-Fingerprint = UseN fingerprint_N ;
-FiniteQuantity = AdjCN (PositA finite_A) (UseN quantity_N) ;
-Firearm = UseN firearm_N ;
-Fireplace = UseN fireplace_N ;
-FishMeat = ApposCN (UseN fish_N) (MassNP (UseN meat_N)) ;
-Flag = UseN flag_N ;
-Flooding = UseN2 (VerbToNounV2 flood_V2) ;
-Floor = UseN floor_N ;
-Flour = UseN flour_N ;
-Flower = UseN flower_N ;
-FluidContainer = AdjCN (PositA fluid_A) (UseN container_N) ;
-FlyInsect = AdjCN (PositA fly_A) (UseN insect_N) ;
-Flying = UseN2 (VerbToNounV2 fly_V2) ;
-Focusing = UseN2 (VerbToNounV2 focus_V2) ;
-Fodder = UseN fodder_N ;
-Fog = UseN fog_N ;
-Folding = UseN2 (VerbToNounV2 fold_V2) ;
-Foot = UseN foot_N ;
-FormOfGovernment = AdvCN (UseN form_N) (PrepNP part_Prep (MassNP (UseN government_N))) ;
-FormText = ApposCN (UseN form_N) (MassNP (UseN text_N)) ;
-FormalMeeting = AdjCN (PositA formal_A) (UseN meeting_N) ;
-FossilFuel = ApposCN (UseN fossil_N) (MassNP (UseN fuel_N)) ;
-Founding = UseN2 (VerbToNounV2 found_V2) ;
-Fox = UseN fox_N ;
-FreeAtom = AdjCN (PositA free_A) (UseN atom_N) ;
-Frightening = UseN2 (VerbToNounV2 frighten_V2) ;
-Frowning = UseN (VerbToNoun frown_V) ;
-Fuel = UseN fuel_N ;
-FullTimePosition = AdjCN (PositA full_A) (ApposCN (UseN time_N) (MassNP (UseN position_N))) ;
-Funeral = UseN funeral_N ;
-Furniture = UseN furniture_N ;
-GainingConsciousness = AdjCN (PositA (VerbToGerundA gain_V2)) (UseN consciousness_N) ;
-GameArtifact = AdjCN (PositA game_A) (UseN artifact_N) ;
-GameAttribute = AdjCN (PositA game_A) (UseN attribute_N) ;
-GameBoard = AdjCN (PositA game_A) (UseN board_N) ;
-GameCall = AdjCN (PositA game_A) (UseN call_N) ;
-GameDie = AdjCN (PositA game_A) (UseN die_N) ;
-GameGoal = AdjCN (PositA game_A) (UseN goal_N) ;
-GamePiece = AdjCN (PositA game_A) (UseN piece_N) ;
-GameReferee = AdjCN (PositA game_A) (UseN referee_N) ;
-GameShot = AdjCN (PositA game_A) (UseN shot_N) ;
-Garage = UseN garage_N ;
-GasolineEngine = ApposCN (UseN gasoline_N) (MassNP (UseN engine_N)) ;
-Girl = UseN girl_N ;
-Glass = UseN glass_N ;
-Glove = UseN glove_N ;
-Glue = UseN glue_N ;
-Goose = UseN goose_N ;
-GovernmentBuilding = ApposCN (UseN government_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-GovernmentOfficer = ApposCN (UseN government_N) (MassNP (UseN officer_N)) ;
-GovernmentSecretary = ApposCN (UseN government_N) (MassNP (UseN secretary_N)) ;
-GraduateSchool = ApposCN (UseN graduate_N) (MassNP (UseN school_N)) ;
-GraphDiagram = ApposCN (UseN graph_N) (MassNP (UseN diagram_N)) ;
-Grass = UseN grass_N ;
-Grasshopper = UseN grasshopper_N ;
-Greeting = UseN greeting_N ;
-GroceryStore = ApposCN (UseN grocery_N) (MassNP (UseN store_N)) ;
-GroupOfAnimals = AdvCN (UseN group_N) (PrepNP part_Prep (DetCN (DetQuant IndefArt NumSg) (UseN animal_N))) ;
-Guitar = UseN guitar_N ;
-Gun = UseN gun_N ;
-GunBarrel = ApposCN (UseN gun_N) (MassNP (UseN barrel_N)) ;
-GunPowder = ApposCN (UseN gun_N) (MassNP (UseN powder_N)) ;
-GunStock = ApposCN (UseN gun_N) (MassNP (UseN stock_N)) ;
-GunTrigger = ApposCN (UseN gun_N) (MassNP (UseN trigger_N)) ;
-Hair = UseN hair_N ;
-HairRemoval = ApposCN (UseN hair_N) (MassNP (UseN removal_N)) ;
-Hammer = UseN hammer_N ;
-Hand = UseN hand_N ;
-HandGesture = ApposCN (UseN hand_N) (MassNP (UseN gesture_N)) ;
-HandGrenade = ApposCN (UseN hand_N) (MassNP (UseN grenade_N)) ;
-Handle = UseN handle_N ;
-Hanging = UseN hanging_N ;
-Harvesting = UseN2 (VerbToNounV2 harvest_V2) ;
-Hat = UseN hat_N ;
-Hay = UseN hay_N ;
-Head = UseN head_N ;
-Headlight = UseN headlight_N ;
-Heart = UseN heart_N ;
-HeatingDevice = AdjCN (PositA (VerbToGerundA heat_V2)) (UseN device_N) ;
-Helicopter = UseN helicopter_N ;
-Hen = UseN hen_N ;
-HighSchool = AdjCN (PositA high_A) (UseN school_N) ;
-Hijacking = UseN2 (VerbToNounV2 hijack_V2) ;
-Hinge = UseN hinge_N ;
-HistoricalAccount = AdjCN (PositA historical_A) (UseN account_N) ;
-HoistingDevice = AdjCN (PositA (VerbToGerundA hoist_V2)) (UseN device_N) ;
-Holder = UseN holder_N ;
-HolidayCard = ApposCN (UseN holiday_N) (MassNP (UseN card_N)) ;
-Holster = UseN holster_N ;
-HomeBase = ApposCN (UseN home_N) (MassNP (UseN base_N)) ;
-Honey = UseN honey_N ;
-Hoof = UseN hoof_N ;
-Horn = UseN horn_N ;
-HornInstrument = ApposCN (UseN horn_N) (MassNP (UseN instrument_N)) ;
-Horse = UseN horse_N ;
-HorseRiding = ApposCN (UseN horse_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 outride_V2))) ;
-HospitalBuilding = ApposCN (UseN hospital_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-HospitalOrganization = ApposCN (UseN hospital_N) (MassNP (UseN organization_N)) ;
-HostageTaking = ApposCN (UseN hostage_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 betake_V2))) ;
-Hotel = UseN hotel_N ;
-HumanAdult = AdjCN (PositA human_A) (UseN adult_N) ;
-HumanBaby = AdjCN (PositA human_A) (UseN baby_N) ;
-HumanChild = AdjCN (PositA human_A) (UseN child_N) ;
-HumanCorpse = AdjCN (PositA human_A) (UseN corpse_N) ;
-HumanYouth = AdjCN (PositA human_A) (UseN youth_N) ;
-Hydrocarbon = UseN hydrocarbon_N ;
-Ice = UseN ice_N ;
-Imagining = UseN2 (VerbToNounV2 imagine_V2) ;
-Immigrating = UseN (VerbToNoun immigrate_V) ;
-Imprisoning = UseN2 (VerbToNounV2 imprison_V2) ;
-IncendiaryDeviceAttack = ApposCN (ApposCN (UseN incendiary_N) (MassNP (UseN device_N))) (MassNP (UseN attack_N)) ;
-Inclining = UseN2 (VerbToNounV2 incline_V2) ;
-IncomeTax = ApposCN (UseN income_N) (MassNP (UseN tax_N)) ;
-Indicating = UseN2 (VerbToNounV2 indicate_V2) ;
-IndustrialPlant = AdjCN (PositA industrial_A) (UseN plant_N) ;
-Industry = UseN industry_N ;
-InfectiousDisease = AdjCN (PositA infectious_A) (UseN disease_N) ;
-Infiltration = UseN infiltration_N ;
-InfiniteQuantity = AdjCN (PositA infinite_A) (UseN quantity_N) ;
-Inhaling = UseN2 (VerbToNounV2 inhale_V2) ;
-Inheriting = UseN2 (VerbToNounV2 inherit_V2) ;
-Installing = UseN2 (VerbToNounV2 install_V2) ;
-InstrumentalMusic = AdjCN (PositA instrumental_A) (UseN music_N) ;
-Insulin = UseN insulin_N ;
-InsuranceCompany = ApposCN (UseN insurance_N) (MassNP (UseN company_N)) ;
-InsurancePolicy = ApposCN (UseN insurance_N) (MassNP (UseN policy_N)) ;
-InternalCombustionEngine = AdjCN (PositA internal_A) (ApposCN (UseN combustion_N) (MassNP (UseN engine_N))) ;
-Interviewing = UseN2 (VerbToNounV2 interview_V2) ;
-Intestine = UseN intestine_N ;
-Ion = UseN ion_N ;
-Ivory = UseN ivory_N ;
-Janitor = UseN janitor_N ;
-Journalist = UseN journalist_N ;
-Judge = UseN judge_N ;
-Jumping = UseN2 (VerbToNounV2 jump_V2) ;
-JuniorCollege = AdjCN (PositA junior_A) (UseN college_N) ;
-Jury = UseN jury_N ;
-Key = UseN key_N ;
-Kicking = UseN2 (VerbToNounV2 kick_V2) ;
-Kidnapping = UseN2 (VerbToNounV2 kidnap_V2) ;
-Kidney = UseN kidney_N ;
-Kissing = UseN2 (VerbToNounV2 kiss_V2) ;
-Kitchen = UseN kitchen_N ;
-Knee = UseN knee_N ;
-Knife = UseN knife_N ;
-KnifeAttack = ApposCN (UseN knife_N) (MassNP (UseN attack_N)) ;
-Knuckle = UseN knuckle_N ;
-Label = UseN label_N ;
-Laboratory = UseN laboratory_N ;
-Ladder = UseN ladder_N ;
-Lamb = UseN lamb_N ;
-LandTransportation = ApposCN (UseN land_N) (MassNP (UseN transportation_N)) ;
-LandVehicle = ApposCN (UseN land_N) (MassNP (UseN vehicle_N)) ;
-Landing = UseN landing_N ;
-Laughing = UseN2 (VerbToNounV2 laugh_V2) ;
-LawEnforcement = ApposCN (UseN law_N) (MassNP (UseN enforcement_N)) ;
-Lawn = UseN lawn_N ;
-LayingEggs = AdjCN (PositA (VerbToGerundA inlay_V2)) (UseN egg_N) ;
-Leather = UseN leather_N ;
-Leaving = UseN2 (VerbToNounV2 leave_V2) ;
-Lecture = UseN lecture_N ;
-Leg = UseN leg_N ;
-LegalAppeal = AdjCN (PositA legal_A) (UseN appeal_N) ;
-LegalAward = AdjCN (PositA legal_A) (UseN award_N) ;
-LegalCharge = AdjCN (PositA legal_A) (UseN charge_N) ;
-LegalConviction = AdjCN (PositA legal_A) (UseN conviction_N) ;
-LegalDismissal = AdjCN (PositA legal_A) (UseN dismissal_N) ;
-LegalOpinion = AdjCN (PositA legal_A) (UseN opinion_N) ;
-LegalSummons = AdjCN (PositA legal_A) (UseN summons_N) ;
-LemonFruit = ApposCN (UseN lemon_N) (MassNP (UseN fruit_N)) ;
-Lengthening = UseN2 (VerbToNounV2 lengthen_V2) ;
-Lens = UseN lens_N ;
-Lesion = UseN lesion_N ;
-Letter = UseN letter_N ;
-LetterBombAttack = ApposCN (ApposCN (UseN letter_N) (MassNP (UseN bomb_N))) (MassNP (UseN attack_N)) ;
-Library = UseN library_N ;
-Licking = UseN licking_N ;
-Lieutenant = UseN lieutenant_N ;
-LightFixture = AdjCN (PositA light_A) (UseN fixture_N) ;
-Lightning = UseN lightning_N ;
-Lilac = UseN lilac_N ;
-Limb = UseN limb_N ;
-LinguisticAttribute = AdjCN (PositA linguistic_A) (UseN attribute_N) ;
-Lip = UseN lip_N ;
-LiquefiedPetroleumGas = AdjCN (PositA (VerbToParticipeA liquefy_V)) (ApposCN (UseN petroleum_N) (MassNP (UseN gas_N))) ;
-LiquidBodySubstance = AdjCN (PositA liquid_A) (ApposCN (UseN body_N) (MassNP (UseN substance_N))) ;
-Liver = UseN liver_N ;
-LoadingWeapon = AdjCN (PositA (VerbToGerundA load_V2)) (UseN weapon_N) ;
-Lock = UseN lock_N ;
-LosingConsciousness = AdjCN (PositA (VerbToGerundA lose_V2)) (UseN consciousness_N) ;
-Lung = UseN lung_N ;
-LyingDown = AdjCN (PositA (VerbToGerundA belie_V2)) (UseN down_N) ;
-Lynching = UseN2 (VerbToNounV2 lynch_V2) ;
-Lyrics = UseN lyric_N ;
-Magazine = UseN magazine_N ;
-Magnetism = UseN magnetism_N ;
-Maid = UseN maid_N ;
-Mailbox = UseN mailbox_N ;
-Mailing = UseN2 (VerbToNounV2 mail_V2) ;
-MaizeGrain = ApposCN (UseN maize_N) (MassNP (UseN grain_N)) ;
-MajorGeneral = AdjCN (PositA major_A) (UseN general_N) ;
-Manifold = UseN manifold_N ;
-Map = UseN map_N ;
-Marble = UseN marble_N ;
-Marketplace = UseN marketplace_N ;
-Marshal = UseN marshal_N ;
-Massaging = UseN2 (VerbToNounV2 massage_V2) ;
-Mast = UseN mast_N ;
-MatchDevice = ApposCN (UseN match_N) (MassNP (UseN device_N)) ;
-MaterialHandlingEquipment = AdjCN (PositA material_A) (AdjCN (PositA (VerbToGerundA handle_V2)) (UseN equipment_N)) ;
-Mating = UseN2 (VerbToNounV2 mate_V2) ;
-MedicalClinic = AdjCN (PositA medical_A) (UseN clinic_N) ;
-MedicalClinicBuilding = AdjCN (PositA medical_A) (ApposCN (UseN clinic_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2)))) ;
-MedicalSchool = AdjCN (PositA medical_A) (UseN school_N) ;
-Medicine = UseN medicine_N ;
-Memorizing = UseN2 (VerbToNounV2 memorize_V2) ;
-Menstruation = UseN menstruation_N ;
-Message = UseN message_N ;
-MetallicAlloy = AdjCN (PositA metallic_A) (UseN alloy_N) ;
-Meteorite = UseN meteorite_N ;
-Microphone = UseN microphone_N ;
-Microscope = UseN microscope_N ;
-MilitaryAircraft = AdjCN (PositA military_A) (UseN aircraft_N) ;
-MilitaryArtifact = AdjCN (PositA military_A) (UseN artifact_N) ;
-MilitaryCorps = AdjCN (PositA military_A) (UseN corps_N) ;
-MilitaryFront = AdjCN (PositA military_A) (UseN front_N) ;
-MilitaryInfiltration = AdjCN (PositA military_A) (UseN infiltration_N) ;
-MilitaryInstallation = AdjCN (PositA military_A) (UseN installation_N) ;
-MilitaryOfficer = AdjCN (PositA military_A) (UseN officer_N) ;
-MilitaryPrivate = AdjCN (PositA military_A) (UseN private_N) ;
-MilitaryReserveForce = AdjCN (PositA military_A) (ApposCN (UseN reserve_N) (MassNP (UseN force_N))) ;
-MilitaryService = AdjCN (PositA military_A) (UseN service_N) ;
-MilitaryShip = AdjCN (PositA military_A) (UseN ship_N) ;
-MilitarySquad = AdjCN (PositA military_A) (UseN squad_N) ;
-MilitarySurplus = AdjCN (PositA military_A) (UseN surplus_N) ;
-MilitaryTank = AdjCN (PositA military_A) (UseN tank_N) ;
-MilitaryUnit = AdjCN (PositA military_A) (UseN unit_N) ;
-MilitaryVehicle = AdjCN (PositA military_A) (UseN vehicle_N) ;
-MilitaryWaterVehicle = AdjCN (PositA military_A) (ApposCN (UseN water_N) (MassNP (UseN vehicle_N))) ;
-Milk = UseN milk_N ;
-Mine = UseN mine_N ;
-Mirror = UseN mirror_N ;
-Missile = UseN missile_N ;
-MissionOrganization = ApposCN (UseN mission_N) (MassNP (UseN organization_N)) ;
-MobileResidence = AdjCN (PositA mobile_A) (UseN residence_N) ;
-ModellingPosition = AdjCN (PositA (VerbToGerundA model_V2)) (UseN position_N) ;
-Monument = UseN monument_N ;
-Morning = UseN morning_N ;
-Mortar = UseN mortar_N ;
-MortarAttack = ApposCN (UseN mortar_N) (MassNP (UseN attack_N)) ;
-MortarGun = ApposCN (UseN mortar_N) (MassNP (UseN gun_N)) ;
-Moth = UseN moth_N ;
-MotionPictureScene = ApposCN (ApposCN (UseN motion_N) (MassNP (UseN picture_N))) (MassNP (UseN scene_N)) ;
-MotionPictureShot = ApposCN (ApposCN (UseN motion_N) (MassNP (UseN picture_N))) (MassNP (UseN shot_N)) ;
-Motorcycle = UseN motorcycle_N ;
-Mounting = UseN2 (VerbToNounV2 mount_V2) ;
-Mouse = UseN mouse_N ;
-Mouth = UseN mouth_N ;
-MovingResidence = AdjCN (PositA (VerbToGerundA move_V2)) (UseN residence_N) ;
-Mule = UseN mule_N ;
-Murder = UseN murder_N ;
-Museum = UseN museum_N ;
-MusicRecording = ApposCN (UseN music_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 record_V2))) ;
-MusicText = ApposCN (UseN music_N) (MassNP (UseN text_N)) ;
-MusicalComposition = AdjCN (PositA musical_A) (UseN composition_N) ;
-MusicalGroup = AdjCN (PositA musical_A) (UseN group_N) ;
-MusicalPerformance = AdjCN (PositA musical_A) (UseN performance_N) ;
-MusicalTone = AdjCN (PositA musical_A) (UseN tone_N) ;
-MysteryStory = ApposCN (UseN mystery_N) (MassNP (UseN story_N)) ;
-Nail = UseN nail_N ;
-NailDigit = ApposCN (UseN nail_N) (MassNP (UseN digit_N)) ;
-NarrativeText = ApposCN (UseN narrative_N) (MassNP (UseN text_N)) ;
-NationalFlag = AdjCN (PositA national_A) (UseN flag_N) ;
-Neck = UseN neck_N ;
-Nectar = UseN nectar_N ;
-Negotiating = UseN2 (VerbToNounV2 negotiate_V2) ;
-NerveCell = ApposCN (UseN nerve_N) (MassNP (UseN cell_N)) ;
-NervousSystem = AdjCN (PositA nervous_A) (UseN system_N) ;
-Nest = UseN nest_N ;
-Neurosis = UseN neurosis_N ;
-NewTestament = AdjCN (PositA new_A) (UseN testament_N) ;
-NewsProgram = ApposCN (UseN news_N) (MassNP (UseN program_N)) ;
-Newspaper = UseN newspaper_N ;
-NightTime = ApposCN (UseN night_N) (MassNP (UseN time_N)) ;
-Nodding = UseN2 (VerbToNounV2 nod_V2) ;
-Nose = UseN nose_N ;
-Nostril = UseN nostril_N ;
-Novel = UseN novel_N ;
-NuclearFamily = AdjCN (PositA nuclear_A) (UseN family_N) ;
-NuclearWeapon = AdjCN (PositA nuclear_A) (UseN weapon_N) ;
-OakWood = ApposCN (UseN oak_N) (MassNP (UseN wood_N)) ;
-Oar = UseN oar_N ;
-ObliqueAngle = AdjCN (PositA oblique_A) (UseN angle_N) ;
-OccupationalRole = AdjCN (PositA occupational_A) (UseN role_1_N) ;
-OccupationalTrade = AdjCN (PositA occupational_A) (UseN trade_N) ;
-OfferingForSale = AdvCN (UseN offering_N) (PrepNP for_Prep (MassNP (UseN sale_N))) ;
-OfferingToPurchase = AdvCN (UseN offering_N) (PrepNP to_Prep (MassNP (UseN purchase_N))) ;
-OfficeBuilding = ApposCN (UseN office_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-Oil = UseN oil_N ;
-OilPaint = ApposCN (UseN oil_N) (MassNP (UseN paint_N)) ;
-OilPicture = ApposCN (UseN oil_N) (MassNP (UseN picture_N)) ;
-OldTestament = AdjCN (PositA old_A) (UseN testament_N) ;
-Ontology = UseN ontology_N ;
-Opening = UseN opening_N ;
-OpeningEyes = AdjCN (PositA opening_A) (UseN eye_N) ;
-Opera = UseN opera_N ;
-Opium = UseN opium_N ;
-OpticalDevice = AdjCN (PositA optical_A) (UseN device_N) ;
-OrangeFruit = AdjCN (PositA orange_A) (UseN fruit_N) ;
-Orchestra = UseN orchestra_N ;
-OrchestralConducting = AdjCN (PositA orchestral_A) (UseN2 (VerbToNounV2 conduct_V2)) ;
-Order = UseN order_N ;
-OrganicCompound = AdjCN (PositA organic_A) (UseN compound_N) ;
-OrganizationalBoard = AdjCN (PositA organizational_A) (UseN board_N) ;
-OrganizationalMerging = AdjCN (PositA organizational_A) (UseN2 (VerbToNounV2 merge_V2)) ;
-Orthography = UseN orthography_N ;
-Ossification = UseN ossification_N ;
-OutdoorClothing = AdjCN (PositA outdoor_A) (UseN clothing_N) ;
-OuterSpaceRegion = AdjCN (PositA outer_A) (ApposCN (UseN space_N) (MassNP (UseN region_N))) ;
-Oven = UseN oven_N ;
-Owl = UseN owl_N ;
-Oxidation = UseN oxidation_N ;
-Paint = UseN paint_N ;
-PaintedPicture = AdjCN (PositA (VerbToParticipeA paint_V)) (UseN picture_N) ;
-Painting = UseN painting_N ;
-Pancreas = UseN pancreas_N ;
-Paper = UseN paper_N ;
-Paragraph = UseN paragraph_N ;
-Park = UseN park_N ;
-ParkingLot = AdjCN (PositA (VerbToGerundA park_V2)) (UseN lot_N) ;
-PartTimePosition = ApposCN (ApposCN (UseN part_N) (MassNP (UseN time_N))) (MassNP (UseN position_N)) ;
-Partnership = UseN partnership_N ;
-PartyPlatform = ApposCN (UseN party_N) (MassNP (UseN platform_N)) ;
-PassCertificate = ApposCN (UseN pass_N) (MassNP (UseN certificate_N)) ;
-PassingABill = ApposCN (UseN passing_N) (DetCN (DetQuant IndefArt NumSg) (UseN bill_N)) ;
-Passport = UseN passport_N ;
-Pea = UseN pea_N ;
-PeaceKeepingMission = ApposCN (ApposCN (UseN peace_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 keep_V2)))) (MassNP (UseN mission_N)) ;
-PearFruit = ApposCN (UseN pear_N) (MassNP (UseN fruit_N)) ;
-Peeling = UseN2 (VerbToNounV2 peel_V2) ;
-Pencil = UseN pencil_N ;
-PensionPlan = ApposCN (UseN pension_N) (MassNP (UseN plan_N)) ;
-PercussionInstrument = ApposCN (UseN percussion_N) (MassNP (UseN instrument_N)) ;
-Performance = UseN performance_N ;
-PerformanceAct = ApposCN (UseN performance_N) (MassNP (UseN act_N)) ;
-PerformanceProgram = ApposCN (UseN performance_N) (MassNP (UseN program_N)) ;
-PerformanceStage = ApposCN (UseN performance_N) (MassNP (UseN stage_N)) ;
-PerformanceStageWing = ApposCN (ApposCN (UseN performance_N) (MassNP (UseN stage_N))) (MassNP (UseN wing_N)) ;
-PeriodicalPublisher = AdjCN (PositA periodical_A) (UseN publisher_N) ;
-PetroleumProduct = ApposCN (UseN petroleum_N) (MassNP (UseN product_N)) ;
-Pharmacist = UseN pharmacist_N ;
-Photograph = UseN photograph_N ;
-PhotographicFilm = AdjCN (PositA photographic_A) (UseN film_N) ;
-Photographing = UseN2 (VerbToNounV2 photograph_V2) ;
-Piano = UseN piano_N ;
-PictureFrame = ApposCN (UseN picture_N) (MassNP (UseN frame_N)) ;
-Pig = UseN pig_N ;
-Pigeon = UseN pigeon_N ;
-Pillow = UseN pillow_N ;
-Pistol = UseN pistol_N ;
-PitchersMound = ApposCN (UseN pitcher_N) (MassNP (UseN mound_N)) ;
-Pitching = UseN2 (VerbToNounV2 pitch_V2) ;
-PituitaryGland = AdjCN (PositA pituitary_A) (UseN gland_N) ;
-PlaceOfCommerce = AdvCN (UseN place_N) (PrepNP part_Prep (MassNP (UseN commerce_N))) ;
-PlaceOfWorship = AdvCN (UseN place_N) (PrepNP part_Prep (MassNP (UseN worship_N))) ;
-PlacingUnderArrest = AdvCN (UseN placing_N) (PrepNP under_Prep (MassNP (UseN arrest_N))) ;
-PlantBranch = ApposCN (UseN plant_N) (MassNP (UseN branch_N)) ;
-PlantLeaf = ApposCN (UseN plant_N) (MassNP (UseN leaf_N)) ;
-PlantRoot = ApposCN (UseN plant_N) (MassNP (UseN root_N)) ;
-PlayingCard = AdjCN (PositA (VerbToGerundA play_V2)) (UseN card_N) ;
-Pleading = UseN2 (VerbToNounV2 plead_V2) ;
-Plug = UseN plug_N ;
-Pocket = UseN pocket_N ;
-PoliticalCrime = AdjCN (PositA political_A) (UseN crime_N) ;
-PoliticalFigure = AdjCN (PositA political_A) (UseN figure_N) ;
-PoliticalRevolution = AdjCN (PositA political_A) (UseN revolution_N) ;
-Polling = UseN2 (VerbToNounV2 poll_V2) ;
-Polygon = UseN polygon_N ;
-PolyphonicMusic = AdjCN (PositA polyphonic_A) (UseN music_N) ;
-PopularElection = AdjCN (PositA popular_A) (UseN election_N) ;
-Porch = UseN porch_N ;
-Pork = UseN pork_N ;
-Portrait = UseN portrait_N ;
-PostSecondarySchool = ApposCN (UseN post_N) (MassNP (AdjCN (PositA secondary_A) (UseN school_N))) ;
-PotOrPan = ConjCN or_Conj (BaseCN (UseN pot_N) (UseN pan_N)) ;
-Pottery = UseN pottery_N ;
-Pouring = UseN2 (VerbToNounV2 pour_V2) ;
-Powder = UseN powder_N ;
-Praying = UseN2 (VerbToNounV2 pray_V2) ;
-PreparedFood = AdjCN (PositA (VerbToParticipeA prepare_V)) (UseN food_N) ;
-PressureMeasuringDevice = ApposCN (ApposCN (UseN pressure_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 measure_V2)))) (MassNP (UseN device_N)) ;
-Prison = UseN prison_N ;
-PrivateSchool = AdjCN (PositA private_A) (UseN school_N) ;
-Proclaiming = UseN2 (VerbToNounV2 proclaim_V2) ;
-Profession = UseN profession_N ;
-ProfitSharingPlan = ApposCN (ApposCN (UseN profit_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 share_V2)))) (MassNP (UseN plan_N)) ;
-Projectile = UseN projectile_N ;
-ProjectileLauncher = AdjCN (PositA projectile_A) (UseN launcher_N) ;
-ProjectileShell = AdjCN (PositA projectile_A) (UseN shell_N) ;
-ProjectionScreen = ApposCN (UseN projection_N) (MassNP (UseN screen_N)) ;
-Psychosis = UseN psychosis_N ;
-PublicDefender = AdjCN (PositA public_A) (UseN defender_N) ;
-PublicLibrary = AdjCN (PositA public_A) (UseN library_N) ;
-PublicPark = AdjCN (PositA public_A) (UseN park_N) ;
-PublicProsecutor = AdjCN (PositA public_A) (UseN prosecutor_N) ;
-PublicSchool = AdjCN (PositA public_A) (UseN school_N) ;
-Publisher = UseN publisher_N ;
-Pulling = UseN2 (VerbToNounV2 pull_V2) ;
-PulmonaryArtery = AdjCN (PositA pulmonary_A) (UseN artery_N) ;
-PulmonaryVein = AdjCN (PositA pulmonary_A) (UseN vein_N) ;
-Pump = UseN pump_N ;
-Punching = UseN2 (VerbToNounV2 punch_V2) ;
-Punishing = UseN2 (VerbToNounV2 punish_V2) ;
-Quadrilateral = UseN quadrilateral_N ;
-QueenInsect = ApposCN (UseN queen_N) (MassNP (UseN insect_N)) ;
-Question = UseN question_N ;
-Rabbit = UseN rabbit_N ;
-Racing = UseN racing_N ;
-Radar = UseN radar_N ;
-RadiatingVisibleLight = AdjCN (PositA (VerbToGerundA radiate_V2)) (AdjCN (PositA visible_A) (UseN light_N)) ;
-RadioBroadcasting = ApposCN (UseN radio_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 broadcast_V2))) ;
-RadioEmission = ApposCN (UseN radio_N) (MassNP (UseN emission_N)) ;
-RadioReceiver = ApposCN (UseN radio_N) (MassNP (UseN receiver_N)) ;
-RadioactiveWeapon = AdjCN (PositA radioactive_A) (UseN weapon_N) ;
-Radish = UseN radish_N ;
-RailroadCompany = ApposCN (UseN railroad_N) (MassNP (UseN company_N)) ;
-Ramp = UseN ramp_N ;
-Raping = UseN2 (VerbToNounV2 rape_V2) ;
-Rat = UseN rat_N ;
-Rattlesnake = UseN rattlesnake_N ;
-RawFood = AdjCN (PositA raw_A) (UseN food_N) ;
-RearWindow = ApposCN (UseN rear_N) (MassNP (UseN window_N)) ;
-ReceiverDevice = ApposCN (UseN receiver_N) (MassNP (UseN device_N)) ;
-Reciting = UseN2 (VerbToNounV2 recite_V2) ;
-RecoveringFromIllness = AdvCN (UseN2 (VerbToNounV2 recover_V2)) (PrepNP from_Prep (MassNP (UseN illness_N))) ;
-RecreationOrExerciseDevice = ApposCN (ConjCN or_Conj (BaseCN (UseN recreation_N) (UseN exercise_N))) (MassNP (UseN device_N)) ;
-Rectangle = UseN rectangle_N ;
-RedBloodCell = AdjCN (PositA red_A) (ApposCN (UseN blood_N) (MassNP (UseN cell_N))) ;
-RedcoatSoldier = ApposCN (UseN redcoat_N) (MassNP (UseN soldier_N)) ;
-ReferenceBook = ApposCN (UseN reference_N) (MassNP (UseN book_N)) ;
-ReferenceText = ApposCN (UseN reference_N) (MassNP (UseN text_N)) ;
-Reflecting = UseN2 (VerbToNounV2 reflect_V2) ;
-ReflectingLight = AdjCN (PositA (VerbToGerundA reflect_V2)) (UseN light_N) ;
-ReflexiveProcess = AdjCN (PositA reflexive_A) (UseN process_N) ;
-Refrigerator = UseN refrigerator_N ;
-Registering = UseN2 (VerbToNounV2 register_V2) ;
-Regretting = UseN2 (VerbToNounV2 regret_V2) ;
-RelievingPain = AdjCN (PositA (VerbToGerundA relieve_V2)) (UseN pain_N) ;
-ReligiousBuilding = AdjCN (PositA religious_A) (UseN building_N) ;
-ReligiousFigure = AdjCN (PositA religious_A) (UseN figure_N) ;
-ReligiousPosition = AdjCN (PositA religious_A) (UseN position_N) ;
-ReligiousService = AdjCN (PositA religious_A) (UseN service_N) ;
-Reminding = UseN2 (VerbToNounV2 remind_V2) ;
-RemovingClothing = AdjCN (PositA (VerbToGerundA remove_V2)) (UseN clothing_N) ;
-Renting = UseN2 (VerbToNounV2 rent_V2) ;
-Report = UseN report_N ;
-Request = UseN request_N ;
-Researcher = UseN researcher_N ;
-Resigning = UseN2 (VerbToNounV2 resign_V2) ;
-Resolution = UseN resolution_N ;
-Restaurant = UseN restaurant_N ;
-RestaurantBuilding = ApposCN (UseN restaurant_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 build_V2))) ;
-RetailStore = ApposCN (UseN retail_N) (MassNP (UseN store_N)) ;
-Retina = UseN retina_N ;
-Retiring = UseN2 (VerbToNounV2 retire_V2) ;
-Returning = UseN2 (VerbToNounV2 return_V2) ;
-Reversing = UseN2 (VerbToNounV2 reverse_V2) ;
-RevolverGun = ApposCN (UseN revolver_N) (MassNP (UseN gun_N)) ;
-RiceGrain = ApposCN (UseN rice_N) (MassNP (UseN grain_N)) ;
-Rifle = UseN rifle_N ;
-RightAngle = AdjCN (PositA right_A) (UseN angle_N) ;
-RightTriangle = AdjCN (PositA right_A) (UseN triangle_N) ;
-Ringing = UseN2 (VerbToNounV2 ring_V2) ;
-Road = UseN road_N ;
-RoadTransportationSystem = ApposCN (ApposCN (UseN road_N) (MassNP (UseN transportation_N))) (MassNP (UseN system_N)) ;
-RoadVehicle = ApposCN (UseN road_N) (MassNP (UseN vehicle_N)) ;
-Robbing = UseN2 (VerbToNounV2 rob_V2) ;
-Rocket = UseN rocket_N ;
-RocketMissileAttack = ApposCN (ApposCN (UseN rocket_N) (MassNP (UseN missile_N))) (MassNP (UseN attack_N)) ;
-Roof = UseN roof_N ;
-Rooster = UseN rooster_N ;
-Rotating = UseN2 (VerbToNounV2 rotate_V2) ;
-Rotor = UseN rotor_N ;
-Rowing = UseN rowing_N ;
-Rubber = UseN rubber_N ;
-Rug = UseN rug_N ;
-Saddle = UseN saddle_N ;
-SafeContainer = AdjCN (PositA safe_A) (UseN container_N) ;
-Sailor = UseN sailor_N ;
-Sales = UseN sale_N ;
-SalesPosition = ApposCN (UseN sale_N) (MassNP (UseN position_N)) ;
-SalineSolution = AdjCN (PositA saline_A) (UseN solution_N) ;
-Sandal = UseN sandal_N ;
-Sandwich = UseN sandwich_N ;
-Saving = UseN saving_N ;
-Scar = UseN scar_N ;
-Scholarship = UseN scholarship_N ;
-School = UseN school_N ;
-Science = UseN science_N ;
-Score = UseN score_N ;
-Screw = UseN screw_N ;
-Screwdriver = UseN screwdriver_N ;
-Script = UseN script_N ;
-Sculpture = UseN sculpture_N ;
-SeasonOfYear = AdvCN (UseN season_N) (PrepNP part_Prep (MassNP (UseN year_N))) ;
-Seat = UseN seat_N ;
-Seating = UseN2 (VerbToNounV2 seat_V2) ;
-SecondarySchool = AdjCN (PositA secondary_A) (UseN school_N) ;
-SecurityAlarm = ApposCN (UseN security_N) (MassNP (UseN alarm_N)) ;
-SecurityDevice = ApposCN (UseN security_N) (MassNP (UseN device_N)) ;
-SecurityUnit = ApposCN (UseN security_N) (MassNP (UseN unit_N)) ;
-SeizingProperty = AdjCN (PositA (VerbToGerundA seize_V2)) (UseN property_N) ;
-SelfPoweredDevice = ApposCN (UseN self_N) (MassNP (AdjCN (PositA powered_A) (UseN device_N))) ;
-SelfPoweredRoadVehicle = ApposCN (ApposCN (UseN self_N) (MassNP (AdjCN (PositA powered_A) (UseN road_N)))) (MassNP (UseN vehicle_N)) ;
-Sentencing = UseN2 (VerbToNounV2 sentence_V2) ;
-Sergeant = UseN sergeant_N ;
-Sermon = UseN sermon_N ;
-Serum = UseN serum_N ;
-ServiceOrganization = ApposCN (UseN service_N) (MassNP (UseN organization_N)) ;
-ServicePosition = ApposCN (UseN service_N) (MassNP (UseN position_N)) ;
-Serving = UseN serving_N ;
-SewageSystem = ApposCN (UseN sewage_N) (MassNP (UseN system_N)) ;
-Sewing = UseN sewing_N ;
-Sharing = UseN2 (VerbToNounV2 share_V2) ;
-Sheep = UseN sheep_N ;
-Shelf = UseN shelf_N ;
-Sheriff = UseN sheriff_N ;
-Shield = UseN shield_N ;
-ShipCaptain = ApposCN (UseN ship_N) (MassNP (UseN captain_N)) ;
-ShipMate = ApposCN (UseN ship_N) (MassNP (UseN mate_1_N)) ;
-ShipOfficer = ApposCN (UseN ship_N) (MassNP (UseN officer_N)) ;
-Shipping = UseN shipping_N ;
-Shirt = UseN shirt_N ;
-Shoe = UseN shoe_N ;
-ShoeSole = ApposCN (UseN shoe_N) (MassNP (UseN sole_N)) ;
-ShortStory = AdjCN (PositA short_A) (UseN story_N) ;
-Shortening = UseN shortening_N ;
-ShotBall = AdjCN (PositA (VerbToParticipeA shoot_V)) (UseN ball_N) ;
-Shoulder = UseN shoulder_N ;
-Shrugging = UseN2 (VerbToNounV2 shrug_V2) ;
-Sidewalk = UseN sidewalk_N ;
-Signalling = UseN2 (VerbToNounV2 signal_V2) ;
-Silk = UseN silk_N ;
-Sinking = UseN sinking_N ;
-SittingDown = AdjCN (PositA (VerbToGerundA sit_V2)) (UseN down_N) ;
-Skeleton = UseN skeleton_N ;
-Sketch = UseN sketch_N ;
-SkilledOccupation = AdjCN (PositA skilled_A) (UseN occupation_N) ;
-Skin = UseN skin_N ;
-Skull = UseN skull_N ;
-Skylight = UseN skylight_N ;
-Sleeve = UseN sleeve_N ;
-Smiling = UseN2 (VerbToNounV2 smile_V2) ;
-Smoking = UseN smoking_N ;
-SmokingDevice = AdjCN (PositA (VerbToGerundA smoke_V2)) (UseN device_N) ;
-SmokingPipe = AdjCN (PositA (VerbToGerundA smoke_V2)) (UseN pipe_N) ;
-Smuggling = UseN2 (VerbToNounV2 smuggle_V2) ;
-Snake = UseN snake_N ;
-SoberingUp = AdvCN (UseN2 (VerbToNounV2 sober_V2)) up_Adv ;
-SocialParty = AdjCN (PositA social_A) (UseN party_N) ;
-SocialScience = AdjCN (PositA social_A) (UseN science_N) ;
-Sock = UseN sock_N ;
-SodiumChloride = ApposCN (UseN sodium_N) (MassNP (UseN chloride_N)) ;
-Sofa = UseN sofa_N ;
-Soldering = UseN2 (VerbToNounV2 solder_V2) ;
-Soldier = UseN soldier_N ;
-Somersaulting = UseN (VerbToNoun somersault_V) ;
-Sonar = UseN sonar_N ;
-Song = UseN song_N ;
-SoupStock = ApposCN (UseN soup_N) (MassNP (UseN stock_N)) ;
-SpaceRegion = ApposCN (UseN space_N) (MassNP (UseN region_N)) ;
-SpaceTransportation = ApposCN (UseN space_N) (MassNP (UseN transportation_N)) ;
-Spacecraft = UseN spacecraft_N ;
-Spear = UseN spear_N ;
-Sphere = UseN sphere_N ;
-SpinalColumn = AdjCN (PositA spinal_A) (UseN column_N) ;
-SpinalCord = AdjCN (PositA spinal_A) (UseN cord_N) ;
-Spitting = UseN spitting_N ;
-Spleen = UseN spleen_N ;
-SportServe = ApposCN (UseN sport_N) (MassNP (UseN serve_N)) ;
-SportsAttribute = ApposCN (UseN sport_N) (MassNP (UseN attribute_N)) ;
-SportsFacility = ApposCN (UseN sport_N) (MassNP (UseN facility_N)) ;
-SportsGround = ApposCN (UseN sport_N) (MassNP (UseN ground_N)) ;
-SportsLeague = ApposCN (UseN sport_N) (MassNP (UseN league_N)) ;
-SportsPlay = ApposCN (UseN sport_N) (MassNP (UseN play_N)) ;
-SportsPosition = ApposCN (UseN sport_N) (MassNP (UseN position_N)) ;
-SportsTeam = ApposCN (UseN sport_N) (MassNP (UseN team_N)) ;
-Spraying = UseN2 (VerbToNounV2 spray_V2) ;
-SpringSeason = ApposCN (UseN spring_N) (MassNP (UseN season_N)) ;
-Square = UseN square_N ;
-Squirrel = UseN squirrel_N ;
-StageCoach = ApposCN (UseN stage_N) (MassNP (UseN coach_N)) ;
-Stairway = UseN stairway_N ;
-StandingUp = AdvCN (UseN standing_N) up_Adv ;
-Starch = UseN starch_N ;
-Starving = UseN2 (VerbToNounV2 starve_V2) ;
-StateGovernment = ApposCN (UseN state_N) (MassNP (UseN government_N)) ;
-Statement = UseN statement_N ;
-Stealing = UseN2 (VerbToNounV2 steal_V2) ;
-SteamEngine = ApposCN (UseN steam_N) (MassNP (UseN engine_N)) ;
-Steel = UseN steel_N ;
-Steeple = UseN steeple_N ;
-SteeringWheel = AdjCN (PositA (VerbToGerundA steer_V2)) (UseN wheel_N) ;
-Stepping = UseN2 (VerbToNounV2 step_V2) ;
-Steps = UseN step_N ;
-Stimulant = UseN stimulant_N ;
-Stirring = UseN2 (VerbToNounV2 stir_V2) ;
-Stomach = UseN stomach_N ;
-Stoning = UseN2 (VerbToNounV2 stone_V2) ;
-Store = UseN store_N ;
-StormFront = ApposCN (UseN storm_N) (MassNP (UseN front_N)) ;
-Stove = UseN stove_N ;
-Strangling = UseN2 (VerbToNounV2 strangle_V2) ;
-Streetcar = UseN streetcar_N ;
-Stretching = UseN2 (VerbToNounV2 stretch_V2) ;
-String = UseN string_N ;
-StringInstrument = ApposCN (UseN string_N) (MassNP (UseN instrument_N)) ;
-Submarine = UseN submarine_N ;
-Subway = UseN subway_N ;
-SubwaySystem = ApposCN (UseN subway_N) (MassNP (UseN system_N)) ;
-Suffocating = UseN2 (VerbToNounV2 suffocate_V2) ;
-Sugar = UseN sugar_N ;
-Suicide = UseN suicide_N ;
-SuicideBombing = ApposCN (UseN suicide_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 bomb_V2))) ;
-SummerSeason = ApposCN (UseN summer_N) (MassNP (UseN season_N)) ;
-Sunlight = UseN sunlight_N ;
-Sunrise = UseN sunrise_N ;
-Sunset = UseN sunset_N ;
-Supposition = UseN supposition_N ;
-Surgeon = UseN surgeon_N ;
-Sweat = UseN sweat_N ;
-Sweeping = UseN sweeping_N ;
-SwimmingPool = AdjCN (PositA (VerbToGerundA swim_V2)) (UseN pool_N) ;
-SwitchDevice = ApposCN (UseN switch_N) (MassNP (UseN device_N)) ;
-Sword = UseN sword_N ;
-Syllable = UseN syllable_N ;
-Table = UseN table_N ;
-Tableware = UseN tableware_N ;
-Tail = UseN tail_N ;
-TakingIll = AdjCN (PositA taking_A) (UseN ill_N) ;
-TakingOff = AdvCN (UseN2 (VerbToNounV2 betake_V2)) off_Adv ;
-Tape = UseN tape_N ;
-Tavern = UseN tavern_N ;
-TaxReturn = ApposCN (UseN tax_N) (MassNP (UseN return_N)) ;
-Taxicab = UseN taxicab_N ;
-Taxonomy = UseN taxonomy_N ;
-Tea = UseN tea_N ;
-TeamSport = ApposCN (UseN team_N) (MassNP (UseN sport_N)) ;
-TearSubstance = ApposCN (UseN tear_N) (MassNP (UseN substance_N)) ;
-Teenager = UseN teenager_N ;
-Telegraph = UseN telegraph_N ;
-Telephone = UseN telephone_N ;
-TelephoneLine = ApposCN (UseN telephone_N) (MassNP (UseN line_N)) ;
-Telephoning = UseN2 (VerbToNounV2 telephone_V2) ;
-TelevisionBroadcasting = ApposCN (UseN television_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 broadcast_V2))) ;
-TelevisionReceiver = ApposCN (UseN television_N) (MassNP (UseN receiver_N)) ;
-TellingALie = ApposCN (UseN2 (VerbToNounV2 foretell_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN lie_N)) ;
-Tendon = UseN tendon_N ;
-Tent = UseN tent_N ;
-TerroristOrganization = ApposCN (UseN terrorist_N) (MassNP (UseN organization_N)) ;
-TestForm = ApposCN (UseN test_N) (MassNP (UseN form_N)) ;
-Testament = UseN testament_N ;
-Testifying = UseN2 (VerbToNounV2 testify_V2) ;
-Thanking = UseN2 (VerbToNounV2 thank_V2) ;
-Thermometer = UseN thermometer_N ;
-Threatening = UseN2 (VerbToNounV2 threaten_V2) ;
-Throat = UseN throat_N ;
-Throwing = UseN2 (VerbToNounV2 throw_V2) ;
-Thumb = UseN thumb_N ;
-Thunder = UseN thunder_N ;
-ThyroidGland = ApposCN (UseN thyroid_N) (MassNP (UseN gland_N)) ;
-ThyroidHormone = ApposCN (UseN thyroid_N) (MassNP (UseN hormone_N)) ;
-Ticket = UseN ticket_N ;
-TieClothing = ApposCN (UseN tie_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 clothe_V2))) ;
-Tilling = UseN2 (VerbToNounV2 till_V2) ;
-Toad = UseN toad_N ;
-Tobacco = UseN tobacco_N ;
-Toe = UseN toe_N ;
-Toilet = UseN toilet_N ;
-Tomb = UseN tomb_N ;
-TonalLanguage = AdjCN (PositA tonal_A) (UseN language_N) ;
-Tongue = UseN tongue_N ;
-Tooth = UseN tooth_N ;
-Toothbrush = UseN toothbrush_N ;
-Torso = UseN torso_N ;
-TouristSite = ApposCN (UseN tourist_N) (MassNP (UseN site_N)) ;
-Towel = UseN towel_N ;
-Tracing = UseN tracing_N ;
-TractorTrailer = ApposCN (UseN tractor_N) (MassNP (UseN trailer_N)) ;
-TransferringPosition = AdjCN (PositA (VerbToGerundA transfer_V2)) (UseN position_N) ;
-TransportationCompany = ApposCN (UseN transportation_N) (MassNP (UseN company_N)) ;
-TrapOrCage = ConjCN or_Conj (BaseCN (UseN trap_N) (UseN cage_N)) ;
-TravelContainer = ApposCN (UseN travel_N) (MassNP (UseN container_N)) ;
-Tray = UseN tray_N ;
-Treasurer = UseN treasurer_N ;
-TreeBranch = ApposCN (UseN tree_N) (MassNP (UseN branch_N)) ;
-Trembling = UseN (VerbToNoun tremble_V) ;
-Tremor = UseN tremor_N ;
-Trespassing = UseN (VerbToNoun trespass_V) ;
-Triangle = UseN triangle_N ;
-Trousers = UseN trouser_N ;
-Truck = UseN truck_N ;
-TruckTractor = ApposCN (UseN truck_N) (MassNP (UseN tractor_N)) ;
-TruckTrailer = ApposCN (UseN truck_N) (MassNP (UseN trailer_N)) ;
-Tube = UseN tube_N ;
-Turbine = UseN turbine_N ;
-TurningOffDevice = AdjCN (PositA (VerbToGerundA turn_V2)) (AdjCN (PositA off_A) (UseN device_N)) ;
-TurningOnDevice = AdvCN (UseN turning_N) (PrepNP on_Prep (MassNP (UseN device_N))) ;
-TwoDimensionalObject = AdjCN (PositA (compoundA (regA "two-dimensional"))) (UseN object_N) ;
-UnionOrganization = ApposCN (UseN union_N) (MassNP (UseN organization_N)) ;
-UnionSoldier = ApposCN (UseN union_N) (MassNP (UseN soldier_N)) ;
-University = UseN university_N ;
-UnskilledOccupation = AdjCN (PositA unskilled_A) (UseN occupation_N) ;
-Vacationing = UseN (VerbToNoun vacation_V) ;
-Vandalism = UseN vandalism_N ;
-VehicleAttack = ApposCN (UseN vehicle_N) (MassNP (UseN attack_N)) ;
-VehicleBrake = ApposCN (UseN vehicle_N) (MassNP (UseN brake_N)) ;
-VehicleController = ApposCN (UseN vehicle_N) (MassNP (UseN controller_N)) ;
-VehicleLight = AdvCN (UseN vehicle_N) light_Adv ;
-VehicleThrottle = ApposCN (UseN vehicle_N) (MassNP (UseN throttle_N)) ;
-VehicleTire = ApposCN (UseN vehicle_N) (MassNP (UseN tire_N)) ;
-VehicleWheel = ApposCN (UseN vehicle_N) (MassNP (UseN wheel_N)) ;
-VehicleWindow = ApposCN (UseN vehicle_N) (MassNP (UseN window_N)) ;
-Veil = UseN veil_N ;
-Vein = UseN vein_N ;
-VendingDevice = AdjCN (PositA (VerbToGerundA vend_V2)) (UseN device_N) ;
-VideoRecording = ApposCN (UseN video_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 record_V2))) ;
-Violin = UseN violin_N ;
-VocalMusic = AdjCN (PositA vocal_A) (UseN music_N) ;
-VocationalSchool = AdjCN (PositA vocational_A) (UseN school_N) ;
-VotingPoll = AdjCN (PositA (VerbToGerundA vote_V2)) (UseN poll_N) ;
-Vowel = UseN vowel_N ;
-Vulture = UseN vulture_N ;
-Wading = UseN2 (VerbToNounV2 wade_V2) ;
-WakingUp = AdvCN (UseN2 (VerbToNounV2 wake_V2)) up_Adv ;
-WalkingCane = AdjCN (PositA (VerbToGerundA walk_V2)) (UseN cane_N) ;
-Wall = UseN wall_N ;
-Wallpaper = UseN wallpaper_N ;
-Warehouse = UseN warehouse_N ;
-WashBasin = ApposCN (UseN wash_N) (MassNP (UseN basin_N)) ;
-Washing = UseN washing_N ;
-WashingDevice = AdjCN (PositA (VerbToGerundA wash_V2)) (UseN device_N) ;
-Wastebasket = UseN wastebasket_N ;
-WatchClock = ApposCN (UseN watch_N) (MassNP (UseN clock_N)) ;
-WaterTransportation = ApposCN (UseN water_N) (MassNP (UseN transportation_N)) ;
-WaterWave = ApposCN (UseN water_N) (MassNP (UseN wave_N)) ;
-Waving = UseN2 (VerbToNounV2 wave_V2) ;
-Wax = UseN wax_N ;
-WeaponOfMassDestruction = AdvCN (UseN weapon_N) (PrepNP part_Prep (MassNP (ApposCN (UseN mass_N) (MassNP (UseN destruction_N))))) ;
-Weekend = UseN weekend_N ;
-Weeping = UseN2 (VerbToNounV2 weep_V2) ;
-Welfare = UseN welfare_N ;
-WheatGrain = ApposCN (UseN wheat_N) (MassNP (UseN grain_N)) ;
-Wheel = UseN wheel_N ;
-Whip = UseN whip_N ;
-Whiskey = UseN whiskey_N ;
-WhiteBloodCell = AdjCN (PositA white_A) (ApposCN (UseN blood_N) (MassNP (UseN cell_N))) ;
-WholesaleStore = AdjCN (PositA wholesale_A) (UseN store_N) ;
-WillowTree = ApposCN (UseN willow_N) (MassNP (UseN tree_N)) ;
-WindInstrument = ApposCN (UseN wind_N) (MassNP (UseN instrument_N)) ;
-Windmill = UseN windmill_N ;
-Window = UseN window_N ;
-WindowCovering = ApposCN (UseN window_N) (DetCN (DetQuant IndefArt NumSg) (UseN2 (VerbToNounV2 cover_V2))) ;
-Windshield = UseN windshield_N ;
-Wine = UseN wine_N ;
-Wing = UseN wing_N ;
-WingDevice = ApposCN (UseN wing_N) (MassNP (UseN device_N)) ;
-Winking = UseN2 (VerbToNounV2 wink_V2) ;
-WinterSeason = ApposCN (UseN winter_N) (MassNP (UseN season_N)) ;
-Wire = UseN wire_N ;
-WireLine = ApposCN (UseN wire_N) (MassNP (UseN line_N)) ;
-WireSpring = ApposCN (UseN wire_N) (MassNP (UseN spring_N)) ;
-Wood = UseN wood_N ;
-WoodArtifact = ApposCN (UseN wood_N) (MassNP (UseN artifact_N)) ;
-Wool = UseN wool_N ;
-WorkerInsect = ApposCN (UseN worker_N) (MassNP (UseN insect_N)) ;
-Working = UseN working_N ;
-Workshop = UseN workshop_N ;
-Wrist = UseN wrist_N ;
-WritingDevice = AdjCN (PositA (VerbToGerundA rewrite_V2)) (UseN device_N) ;
-WrittenCommunication = AdjCN (PositA (VerbToParticipeA write_V)) (UseN communication_N) ;
-LegislativeOrganization = AdjCN (PositA legislative_A) (UseN organization_N) ;
-CommunicationDevice = ApposCN (UseN communication_N) (MassNP (UseN device_N)) ;
-PassengerVehicle = ApposCN (UseN passenger_N) (MassNP (UseN vehicle_N)) ;
-PowerSource = ApposCN (UseN power_N) (MassNP (UseN source_N)) ;
-MilitaryGeneral = AdjCN (PositA military_A) (UseN general_N) ;
-Cave = UseN cave_N ;
-DairyProduct = ApposCN (UseN dairy_N) (MassNP (UseN product_N)) ;
-PoliticalParty = AdjCN (PositA political_A) (UseN party_N) ;
-BodyOfWater = AdvCN (UseN body_N) (PrepNP part_Prep (MassNP (UseN water_N))) ;
-AnimalAgriculturalProduct = ApposCN (UseN animal_N) (MassNP (AdjCN (PositA agricultural_A) (UseN product_N))) ;
-AgriculturalProduct = AdjCN (PositA agricultural_A) (UseN product_N) ;
-Livestock = UseN livestock_N ;
-Tax = UseN tax_N ;
-ChargingAFee = ApposCN (UseN2 (VerbToNounV2 charge_V2)) (DetCN (DetQuant IndefArt NumSg) (UseN fee_N)) ;
-GeneralElection = AdjCN (PositA general_A) (UseN election_N) ;
-BaseballBase = ApposCN (UseN baseball_N) (MassNP (UseN base_N)) ;
-Attorney = UseN attorney_N ;
-RefinedPetroleumProduct = AdjCN (PositA (VerbToParticipeA refine_V)) (ApposCN (UseN petroleum_N) (MassNP (UseN product_N))) ;
-GroceryProduce = ApposCN (UseN grocery_N) (MassNP (UseN produce_N)) ;
-PlantAgriculturalProduct = ApposCN (UseN plant_N) (MassNP (AdjCN (PositA agricultural_A) (UseN product_N))) ;
-Rock = UseN rock_N ;
-Ship = UseN ship_N ;
-DisplacementHullWaterVehicle = ApposCN (ApposCN (ApposCN (UseN displacement_N) (MassNP (UseN hull_N))) (MassNP (UseN water_N))) (MassNP (UseN vehicle_N)) ;
-WaterVehicle = ApposCN (UseN water_N) (MassNP (UseN vehicle_N)) ;
-PoweredVehicle = AdjCN (PositA powered_A) (UseN vehicle_N) ;
-RollingStock = AdjCN (PositA (VerbToGerundA roll_V2)) (UseN stock_N) ;
-RailVehicle = ApposCN (UseN rail_N) (MassNP (UseN vehicle_N)) ;
-FinancialAccount = AdjCN (PositA financial_A) (UseN account_N) ;
-MiningProduct = AdjCN (PositA (VerbToGerundA mine_V2)) (UseN product_N) ;
-Celebrity = UseN celebrity_N ;
-TransitSystem = ApposCN (UseN transit_N) (MassNP (UseN system_N)) ;
-Pipeline = UseN pipeline_N ;
-RailTransportationSystem = ApposCN (ApposCN (UseN rail_N) (MassNP (UseN transportation_N))) (MassNP (UseN system_N)) ;
-MedicalDoctor = AdjCN (PositA medical_A) (UseN doctor_N) ;
-CargoVehicle = ApposCN (UseN cargo_N) (MassNP (UseN vehicle_N)) ;
-BotanicalTree = AdjCN (PositA botanical_A) (UseN tree_N) ;
-Stock = UseN stock_N ;
-Investment = UseN investment_N ;
-FinancialAsset = AdjCN (PositA financial_A) (UseN asset_N) ;
-
--- unary functions :
-
-DescendantsFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN descendant_N)) (PrepNP part_Prep ob) ;
-DiameterFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN diameter_N)) (PrepNP part_Prep ob) ;
-FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
-LastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA last_A) (UseN element_N))) (PrepNP part_Prep ob) ;
-OccupationFn ob = AdvCN (UseN occupation_N) (PrepNP part_Prep ob) ;
-RadiusFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN radius_N)) (PrepNP part_Prep ob) ;
-ResidentFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (UseN resident_N)) (PrepNP part_Prep ob) ;
-StartFn ob = AdvCN (UseN start_N) (PrepNP part_Prep ob) ;
-StopFn ob = AdvCN (UseN stop_N) (PrepNP part_Prep ob) ;
-CitizenryFn ob = AdvNP (DetCN (DetQuant DefArt NumPl) (UseN citizen_N)) (PrepNP part_Prep ob) ;
-
-
--- quaternary functions :
-StreetAddressFn ob1 ob2 ob3 ob4= AdvNP (DetCN (DetQuant DefArt NumSg) (UseN inhabitant_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (ApposCN (ApposCN (UseN address_N) ob1) ob2) ob3) ob4))) ;
-
-
-
--- ternary predicates :
-areaOfResponsibility ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompAP (PositA responsible_A))) (PrepNP for_Prep (MassNP ob2))) (PrepNP in_Prep ob3))) ;
-subordinateInOrganization ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN subordinate_N)))) (PrepNP part_Prep ob2)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob3))))) ;
-subordinatePosition ob1 ob2 ob3 = mkPolSent (PredVP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN holder_N)) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob1)))) (AdvVP (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN subordinate_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (UseN holder_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN position_N) ob2)))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob3))))) ;
-equipmentCount ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (PassV2 equip_V2) (PrepNP with_Prep (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep (MassNP ob2))) (DetCN (DetQuant IndefArt NumPl) (UseN device_N)))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob3))))) ;
-memberTypeCount ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN member_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob3))))) ;
-memberAtTime ob1 ob2 ob3 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP part_Prep ob2)) (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) ob3))))) ;
-locatedAtTime ob1 ob2 ob3 = mkPolSent (PredVP ob1 (UseComp (CompAdv (ConjAdv and_Conj (BaseAdv (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN time_N) ob2))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN place_N) ob3)))))))) ;
-
--- quaternary predicates 
-
-monetaryWage ob1 ob2 ob3 ob4 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (AdvVP (ComplSlash (SlashV2a employ_V2) ob2) (PrepNP with_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA monetary_A) (UseN wage_N))))) (PrepNP part_Prep ob3)) (PrepNP per_Prep ob4))) ;
-
-
--- binary predicates 
-
-address ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN address_N)))) (PrepNP part_Prep ob1))) ;
-affiliatedOrganization ob1 ob2 = mkPolSent (PredVP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN organization_N) ob1)) (AdvVP (PassV2 affiliate_V2) (PrepNP to_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
-alias ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN alias_N)))) (PrepNP for_Prep ob2))) ;
-ancestorOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN ancestor_N) (MassNP (UseN organization_N)))))) (PrepNP part_Prep ob2))) ;
-anniversary ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN anniversary_N)))) (PrepNP part_Prep ob2))) ;
-axis ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN axis_N)))) (PrepNP part_Prep ob2))) ;
-benefits ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a benefit_V2) ob2)) ;
-birthdate ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN birth_N) (MassNP (UseN date_N)))))) (PrepNP part_Prep ob2))) ;
-birthplace ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN birth_N) (MassNP (UseN place_N)))))) (PrepNP part_Prep ob2))) ;
-capacity ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN capacity_N)))) (PrepNP part_Prep ob2))) ;
-cohabitant ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA same_A) (UseN home_N))))) ;
-coworker ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (AdvVP (UseV work_V) together_Adv)) ;
-deathdate ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN death_N) (MassNP (UseN date_N)))))) (PrepNP part_Prep ob2))) ;
-deathplace ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN death_N) (MassNP (UseN place_N)))))) (PrepNP part_Prep ob2))) ;
-deviceState ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAdv (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN state_N) ob2)))))) ;
-disapproves ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseV disapprove_V) (PrepNP part_Prep (sentToNoun ob2)))) ;
-domesticPartner ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA domestic_A) (ApposCN (UseN partner_N) ob2)))))) ;
-doubts ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a doubt_V2) (sentToNoun ob2))) ;
-effectiveRange ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA effective_A) (UseN range_N))))) (PrepNP part_Prep ob2))) ;
-electronNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN electron_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
-equipmentType ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN component_N))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN type_N) ob2))))) ;
-grammaticalRelation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA grammatical_A) (UseN relation_N)))) (PrepNP to_Prep ob2))) ;
-grandparent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN grandparent_N)))) (PrepNP part_Prep ob2))) ;
-hasExpertise ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (MassNP (UseN expertise_N))) (PrepNP in_Prep ob2))) ;
-hasOccupation ob1 ob2 = mkPolSent (PredVP (MassNP ob2) (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN occupation_N)))) (PrepNP part_Prep ob1))) ;
-hostileForces ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA hostile_A) (UseN force_N)))))) ;
-humanCapacity ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN capacity_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN human_N)))))) ;
-ideologicalAffiliationOfOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA ideological_A) (UseN affiliation_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
-intelligenceQuotient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN intelligence_N) (MassNP (UseN quotient_N))))) (PrepNP part_Prep ob2))) ;
-inventory ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN inventory_N)))) (PrepNP part_Prep ob2))) ;
-landlord ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN landlord_N)))) (PrepNP part_Prep ob2))) ;
-legalGuardian ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA legal_A) (UseN guardian_N))))) (PrepNP part_Prep ob2))) ;
-measurementReading ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumPl) (UseN2 (VerbToNounV2 lip_read_V2))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN measurement_N) ob2))))) ;
-medicalPatient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA medical_A) (UseN patient_N))))) (PrepNP part_Prep ob2))) ;
-memberCount ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (AdvCN (UseN number_N) (PrepNP part_Prep ob2)) (DetCN (DetQuant IndefArt NumPl) (UseN member_N)))))) ;
-memberType ob1 ob2 = mkPolSent (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN member_N)) (PrepNP part_Prep ob1)) (AdvVP (UseV belong_V) (PrepNP to_Prep ob2))) ;
-mutualStranger ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA mutual_A) (UseN stranger_N)))))) ;
-neighbor ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN neighbour_N)))) (PrepNP part_Prep ob2))) ;
-occupation ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN occupation_N)))) (PrepNP part_Prep ob1))) ;
-older ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompAP (ComparA old_A ob2)))) ;
-operator ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN operator_N)))) (PrepNP part_Prep ob1))) ;
-parasite ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN parasite_N)))) (PrepNP part_Prep ob2))) ;
-pathInSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN path_N)))) (PrepNP in_Prep ob2))) ;
-patientMedical ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN patient_N)))) (PrepNP part_Prep ob2))) ;
-potentialOfHydrogen ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN potential_N)))) (PrepNP part_Prep (MassNP (UseN hydrogen_N)))) (PrepNP part_Prep ob2))) ;
-powerPlant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN power_N) (MassNP (UseN plant_N)))))) (PrepNP part_Prep ob2))) ;
-protonNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN proton_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
-religiousAffiliationOfOrganization ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA religious_A) (UseN affiliation_N))))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN organization_N) ob2))))) ;
-secretesSubstance ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (ComplSlash (SlashV2a secrete_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN substance_N) (MassNP ob2))))) ;
-sliceOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN slice_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
-speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a bespeak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
-stranger ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN stranger_N)))) (PrepNP to_Prep ob2))) ;
-tangent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (MassNP (UseN tangent_N)))) (PrepNP to_Prep ob2))) ;
-tenant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN tenant_N)))) (PrepNP part_Prep ob2))) ;
-transported ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 transport_V2) (PrepNP in_Prep ob2))) ;
-yearOfFounding ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN year_N)))) (PrepNP part_Prep (DetCN (DetQuant IndefArt NumPl) (UseN2 (VerbToNounV2 found_V2))))) (PrepNP part_Prep ob2))) ;
-wavelength ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN wavelength_N)))) (PrepNP part_Prep ob2))) ;
-cityAddress ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN city_N) (MassNP (UseN address_N)))))) (PrepNP part_Prep ob2))) ;
-streetAddress ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN street_N) (MassNP (UseN address_N)))))) (PrepNP part_Prep ob2))) ;
-streetNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN street_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
-unitNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN unit_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
-detainee ob1 ob2 = mkPolSent (PredVP ob2 (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN detainee_N) ob2))))) ;
-targetInAttack ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN target_N)))) (PrepNP in_Prep (MassNP (ApposCN (UseN attack_N) ob2))))) ;
-enjoys ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a enjoy_V2) ob2)) ;
-dislikes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a dislike_V2) ob2)) ;
-groupMember ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN member_N)))) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN group_N) ob2))))) ;
-titles ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN title_N)))) (PrepNP part_Prep ob2))) ;
-familyName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN family_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
-middleName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN middle_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
-givenName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA (VerbToParticipeA give_V)) (UseN name_N))))) (PrepNP part_Prep ob2))) ;
-localLongName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA local_A) (AdjCN (PositA long_A) (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
-localShortName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA local_A) (AdjCN (PositA short_A) (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
-defendant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN defendant_N)))) (PrepNP part_Prep ob2))) ;
-registeredItem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a contain_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA official_A) (UseN record_N)))) (PrepNP part_Prep ob2))) ;
-student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
-teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
-onboard ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (MassNP (ApposCN (UseN inside_N) ob2))))) ;
-sideOfFigure ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN side_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN figure_N) ob2))))) ;
-contestParticipant ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN participant_N)))) (PrepNP in_Prep ob2))) ;
-subField ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN sub_N) (MassNP (UseN field_N)))))) (PrepNP part_Prep ob2))) ;
-financialAccount ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA financial_A) (UseN account_N))))) (PrepNP part_Prep ob2))) ;
-serviceProvider ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN provider_N)))) (PrepNP part_Prep ob2))) ;
-serviceRecipient ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN recipient_N)))) (PrepNP part_Prep ob2))) ;
-moves ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a move_V2) ob2)) ;
-changesLocation ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a change_V2) (DetCN (DetQuant DefArt NumSg) (UseN location_N))) (PrepNP part_Prep ob2))) ;
-friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
-grandfather ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN grandfather_N)))) (PrepNP part_Prep ob2))) ;
-aunt ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN aunt_N)))) (PrepNP part_Prep ob2))) ;
-cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
-grandmother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN grandmother_N)))) (PrepNP part_Prep ob2))) ;
-nephew ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN nephew_N)))) (PrepNP part_Prep ob2))) ;
-niece ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN niece_N)))) (PrepNP part_Prep ob2))) ;
-uncle ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN uncle_N)))) (PrepNP part_Prep ob2))) ;
-stepfather ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN stepfather_N)))) (PrepNP part_Prep ob2))) ;
-stepmother ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN stepmother_N)))) (PrepNP part_Prep ob2))) ;
-controlled ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (PassV2 control_V2) (PrepNP by8agent_Prep ob2))) ;
-gainsControl ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a gain_V2) (MassNP (UseN control_N))) (PrepNP part_Prep ob2))) ;
-losesControl ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a lose_V2) (MassNP (UseN control_N))) (PrepNP part_Prep ob2))) ;
-arrested ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (PassV2 arrest_V2) (PrepNP during_Prep ob1))) ;
-conveyance ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (PPartNP (DetCN (DetQuant IndefArt NumSg) (UseN vehicle_N)) use_V2))) (PrepNP in_Prep ob1))) ;
-birthday ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN birthday_N)))) (PrepNP part_Prep ob2))) ;
-routeInSystem ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN route_N)))) (PrepNP in_Prep ob2))) ;
-expects ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a expect_V2) (sentToNoun ob2))) ;
-financialAsset ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA financial_A) (UseN asset_N))))) (PrepNP part_Prep ob2))) ;
-half ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN half_N)))) (PrepNP part_Prep ob2))) ;
-lacks ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a lack_V2) ob2)) ;
-most ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN large_N)))) part_Adv) (PrepNP part_Prep ob2))) ;
-quarter ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN quarter_N)))) (PrepNP part_Prep ob2))) ;
-third ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN (mkN "third"))))) (PrepNP part_Prep ob2))) ;
-fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
-hopes ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a hope_V2) (sentToNoun ob2))) ;
-plaintiff ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN plaintiff_N)))) (PrepNP part_Prep ob2))) ;
-brandName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN brand_N) (MassNP (UseN name_N)))))) (PrepNP part_Prep ob2))) ;
-formerName ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA former_A) (UseN name_N))))) (PrepNP part_Prep ob2))) ;
-reactant ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseV participate_V) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN reaction_N) ob1))))) ;
-reagent ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN reagent_N)))) (PrepNP part_Prep ob2))) ;
-postalBoxNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA postal_A) (ApposCN (UseN box_N) (MassNP (UseN number_N))))))) (PrepNP part_Prep ob2))) ;
-postalCode ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA postal_A) (UseN code_N))))) (PrepNP part_Prep ob2))) ;
-telephoneNumber ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN telephone_N) (MassNP (UseN number_N)))))) (PrepNP part_Prep ob2))) ;
-conjugate ob1 ob2 = mkPolSent (PredVP (ConjNP and_Conj (BaseNP ob1 ob2)) (PassV2 conjugate_V2)) ;
-sententialObject ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN object_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN sentence_N) ob2))))) ;
-sententialSubject ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN subject_N)))) (PrepNP part_Prep (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN sentence_N) ob2))))) ;
-stockHolder ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a possess_V2) ob2)) ;
-experimentalControl ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN controller_N)))) (PrepNP in_Prep ob1))) ;
-allegiance ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (ComplSlash (SlashV2a owe_V2) (MassNP (UseN allegiance_N))) (PrepNP to_Prep ob2))) ;
-deceptiveIdentifier ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA deceptive_A) (UseN identification_N))))) (PrepNP part_Prep ob2))) ;
-cargo ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cargo_N)))) (PrepNP part_Prep ob2))) ;
-meatOfAnimal ob1 ob2 = mkPolSent (PredVP (MassNP ob1) (UseComp (CompNP (AdvNP (MassNP (UseN meat_N)) (PrepNP part_Prep (MassNP (ApposCN (UseN animal_N) (MassNP ob2)))))))) ;
-distanceOnPath ob1 ob2 = mkPolSent (PredVP ob1 (UseComp (CompNP (AdvNP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN distance_N)) (PrepNP on_Prep (MassNP (UseN path_N)))) (PrepNP part_Prep ob1))))) ;
-loss ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN loss_N)))) (PrepNP part_Prep ob1))) ;
-soundFrequency ob1 ob2 = mkPolSent (PredVP ob2 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA sound_A) (UseN frequency_N))))) (PrepNP part_Prep ob1))) ;
- };
diff --git a/examples/SUMO/Mid_level_ontologyFre.gf b/examples/SUMO/Mid_level_ontologyFre.gf
deleted file mode 100644
--- a/examples/SUMO/Mid_level_ontologyFre.gf
+++ /dev/null
@@ -1,42 +0,0 @@
---# -path=.:french:romance:abstract:prelude:common
-concrete Mid_level_ontologyFre of Mid_level_ontology = MergeFre ** open DictLangFre, ParadigmsFre, LexiconFre, ExtraLexiconFre  in{
-
-lin
-
--- individual instances :
-
-Student = MassNP (UseN student_N) ;
-Teacher = MassNP (UseN teacher_N) ;
-
-
--- subclasses 
-Apple = UseN apple_N ;
-ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
-Beer = UseN beer_N ;
-BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
-Boy = UseN boy_N ;
-Closing = UseN2 (VerbToNounV2 close_V2) ;
-DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
-Eye = UseN eye_N ;
-Girl = UseN girl_N ;
-Grass = UseN grass_N ;
-Head = UseN head_N ;
-Heart = UseN heart_N ;
-Knee = UseN knee_N ;
-Milk = UseN milk_N ;
-Restaurant = UseN restaurant_N ;
-
--- unary functions :
-
-FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
-
-
---bespeak_V2
-speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a speak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
-student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
-teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
-friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
-cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
-fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
-
- };
diff --git a/examples/SUMO/Mid_level_ontologyRon.gf b/examples/SUMO/Mid_level_ontologyRon.gf
deleted file mode 100644
--- a/examples/SUMO/Mid_level_ontologyRon.gf
+++ /dev/null
@@ -1,43 +0,0 @@
---# -path=.:romanian:abstract:prelude:common
-concrete Mid_level_ontologyRon of Mid_level_ontology = MergeRon ** open DictLangRon, ParadigmsRon, LexiconRon, ExtraLexiconRon  in{
-
-lin
-
--- individual instances :
-
-Student = MassNP (UseN student_N) ;
-Teacher = MassNP (UseN teacher_N) ;
-
-
--- subclasses 
-Apple = UseN apple_N ;
-ArtSchool = ApposCN (UseN art_N) (MassNP (UseN school_N)) ;
-Beer = UseN beer_N ;
-BirdEgg = ApposCN (UseN bird_N) (MassNP (UseN egg_N)) ;
-Boy = UseN boy_N ;
-Closing = UseN2 (VerbToNounV2 close_V2) ;
-DaySchool = ApposCN (UseN day_N) (MassNP (UseN school_N)) ;
-Eye = UseN eye_N ;
-Girl = UseN girl_N ;
-Grass = UseN grass_N ;
-Head = UseN head_N ;
-Heart = UseN heart_N ;
-Knee = UseN knee_N ;
-Milk = UseN milk_N ;
-Restaurant = UseN restaurant_N ;
-
--- unary functions :
-
-FirstFn ob = AdvNP (DetCN (DetQuantOrd DefArt NumSg (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))))) (UseN element_N)) (PrepNP part_Prep ob) ;
---LastFn ob = AdvNP (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA last_A) (UseN element_N))) (PrepNP part_Prep ob);
-
-
---bespeak_V2
-speaksLanguage ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a speak_V2) (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN language_N) ob2)))) ;
-student ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN student_N)))) (PrepNP part_Prep ob2))) ;
-teacher ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN teacher_N)))) (PrepNP part_Prep ob2))) ;
-friend ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN friend_N)))) (PrepNP part_Prep ob2))) ;
-cousin ob1 ob2 = mkPolSent (PredVP ob1 (AdvVP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (UseN cousin_N)))) (PrepNP part_Prep ob2))) ;
-fears ob1 ob2 = mkPolSent (PredVP ob1 (ComplSlash (SlashV2a fear_V2) (sentToNoun ob2))) ;
-
- };
diff --git a/examples/SUMO/Military.gf b/examples/SUMO/Military.gf
--- a/examples/SUMO/Military.gf
+++ b/examples/SUMO/Military.gf
@@ -1,431 +1,397 @@
-abstract Military = open Merge, Mid_level_ontology in {
-
-
-
-
---  A modern nation_states' air forces 
--- (the whole branch of service) and not a subdivision thereof.
-fun AirForce_BranchOfService : Class ;
-fun AirForce_BranchOfService_Class : SubClass AirForce_BranchOfService MilitaryOrganization ;
-
--- (AvailableForMilitaryServiceMaleFn
---  ?AREA) denotes the Integer that represents the count of the population of 
--- males of military age in the GeopoliticalArea ?AREA.
-fun AvailableForMilitaryServiceMaleFn : El GeopoliticalArea -> Ind Integer ;
-
-
--- In military terminology, a battalion consists of 
--- two to six companies typically commanded by a lieutenant colonel. The 
--- nomenclature varies by nationality and by branch of arms, e.g. some 
--- armies organize their infantry into battalions, but call battalion_sized 
--- cavalry, reconnaissance, or tank units a squadron or a regiment instead. 
--- There may even be subtle distinctions within a nation's branches of arms, 
--- such a distinction between a tank battalion and an armored squadron, 
--- depending on how the unit's operational role is perceived to fit into the 
--- army's historical organization. A battalion is potentially the smallest 
--- military unit capable of independent operations (i.e. not attached to a 
--- higher command), but is usually part of a regiment or a brigade or both, 
--- depending on the organizational model used by that service. Battalions 
--- are ordinarily homogeneous with respect to type (e.g. an infantry 
--- battalion or a tank battalion), although there are occasional 
--- exceptions. (from Wikipedia)
-fun Battalion : Class ;
-fun Battalion_Class : SubClass Battalion MilitaryUnit ;
-
--- Brigade is a term from military science which 
--- refers to a group of several battalions (typically two to four), and 
--- directly attached supporting units (normally including at least an 
--- artillery battery and additional logistic support). A brigade is smaller 
--- than a division and roughly equal to or a little larger than a regiment. 
--- Strength typically ranges between 1,500 and 3,500 personnel. (from Wikipedia)
-fun Brigade : Class ;
-fun Brigade_Class : SubClass Brigade MilitaryUnit ;
-
--- In military organizations, an officer 
--- is a member of the service who holds a position of responsibility. 
--- Commissioned officers derive authority directly from a sovereign power 
--- and, as such, hold a commission charging them with the duties and 
--- responsibilities of a specific office or position. Commissioned officers 
--- are typically the only persons in a military able to exercise command 
--- (according to the most technical definition of the word) over a military 
--- unit. Non_commissioned officers in positions of authority can be said to 
--- have control or charge rather than command per se, although the use of the 
--- word command to describe any use of authority is widespread and often 
--- official. (from Wikipedia)
-fun CommissionedOfficerRank : Class ;
-fun CommissionedOfficerRank_Class : SubClass CommissionedOfficerRank MilitaryRank ;
-
--- The ranks of junior officers are the 
--- three or four lowest ranks of officers, possibily complicated by the 
--- status of trainee officers. Their units are generally not expected to 
--- operate independently for any significant length of time. Typical ranks 
--- for this level are captains, who typically lead companies and smaller 
--- units Lieutenant. Company grade officers will also fill staff roles in 
--- some units. (from Wikipedia)
-fun CompanyGradeRank : Class ;
-fun CompanyGradeRank_Class : SubClass CompanyGradeRank CommissionedOfficerRank ;
-
--- A company is a military unit, typically 
--- consisting of 100_200 soldiers. Most companies are formed of three or 
--- four platoons although the exact number may vary by country, unit type and 
--- structure. (from Wikipedia)
-fun Company_Military : Class ;
-fun Company_Military_Class : SubClass Company_Military MilitaryUnit ;
-
--- Soldiers who are enlisted in some 
--- military and have no command.
-fun EnlistedSoldierRank : Class ;
-fun EnlistedSoldierRank_Class : SubClass EnlistedSoldierRank MilitaryRank ;
-
--- Senior officers who typically 
--- command units that can be expected to operate independently for short 
--- periods of time (battalions and regiments, large warships). Field Grade 
--- officers also commonly fill staff positions. (from Wikipedia)
-fun FieldGradeOfficerRank : Class ;
-fun FieldGradeOfficerRank_Class : SubClass FieldGradeOfficerRank CommissionedOfficerRank ;
-
--- (FitForMilitaryServiceMaleFn
---  ?AREA) denotes the Integer that represents the count of the population of 
--- males of military age in the GeopoliticalArea ?AREA that is also capable
--- of being a member of the military.
-fun FitForMilitaryServiceMaleFn : El GeopoliticalArea -> Ind Integer ;
-
-
--- Admirals (Navy), Generals (Army) and 
--- Marshals who typically command units that are expected to operate 
--- independently for extended periods of time (brigades and larger, fleets of 
--- ships). (from Wikipedia)
-fun FlagOfficerRank : Class ;
-fun FlagOfficerRank_Class : SubClass FlagOfficerRank CommissionedOfficerRank ;
-
--- Military operations conducted to 
--- distribute food to the friendly force. (from FM 100_40)
-fun FoodDistributionOperation : Class ;
-fun FoodDistributionOperation_Class : SubClass FoodDistributionOperation (both Getting (both Giving MilitaryOperation)) ;
-
-
--- A MilitaryUnit composed primarily of Soldiers 
--- who fight on foot, i.e. without the use of heavy artillery.
-fun InfantryUnit : Class ;
-fun InfantryUnit_Class : SubClass InfantryUnit MilitaryUnit ;
-
--- Ranks with grade E5 or E6.
-fun JuniorNCORank : Class ;
-fun JuniorNCORank_Class : SubClass JuniorNCORank NonCommissionedOfficerRank ;
-
--- Modern nation_states' marine units (the 
--- whole branch of service) and not a subdivision thereof.
-fun Marines_BranchOfService : Class ;
-fun Marines_BranchOfService_Class : SubClass Marines_BranchOfService MilitaryOrganization ;
-
--- A Convoy of MilitaryVehicles, travelling to the same 
--- at least intermediate destination, in relatively close proximity.
-fun MilitaryConvoy : Class ;
-fun MilitaryConvoy_Class : SubClass MilitaryConvoy Convoy ;
-
--- Trucks used by a military to transport food.
-fun MilitaryFoodTruck : Class ;
-fun MilitaryFoodTruck_Class : SubClass MilitaryFoodTruck MilitarySupportVehicle ;
-
--- A MilitaryOperation is distinguished 
--- from the broader class of MilitaryProcess in that it is planned in 
--- advance.
-fun MilitaryOperation : Class ;
-fun MilitaryOperation_Class : SubClass MilitaryOperation MilitaryProcess ;
-
--- Military platforms. These are usually mobile 
--- entities which can carry military equipment such as Weapons and 
--- communications equipment. Often, as with a tank outfitted with a gun, a 
--- MilitaryPlatform carrying some Weapon comprises a WeaponSystem.
-fun MilitaryPlatform : Class ;
-fun MilitaryPlatform_Class : SubClass MilitaryPlatform TransportationDevice ;
-
--- The class of Positions in a Military. Rank
--- is usually commensurate with degrees of power, prestige and
--- pay.
-fun MilitaryRank : Class ;
-fun MilitaryRank_Class : SubClass MilitaryRank SkilledOccupation ;
-
--- Trucks used by a military to transport supplies.
-fun MilitarySupplyTruck : Class ;
-fun MilitarySupplyTruck_Class : SubClass MilitarySupplyTruck (both MilitarySupportVehicle Truck) ;
-
+abstract Military = MidLevelOntology ** {
 
--- Vehicles meant to be used for support, rather
--- than combat in a military context.
-fun MilitarySupportVehicle : Class ;
-fun MilitarySupportVehicle_Class : SubClass MilitarySupportVehicle MilitaryVehicle ;
+  --  A modern nation_states' air forces 
+  -- (the whole branch of service) and not a subdivision thereof.
+  fun AirForce_BranchOfService : Class ;
+  fun AirForce_BranchOfService_Class : SubClass AirForce_BranchOfService MilitaryOrganization ;
 
-fun MilitaryVehicle_MilitaryPlatform : SubClass MilitaryVehicle MilitaryPlatform ;
+  -- (AvailableForMilitaryServiceMaleFn
+  --  ?AREA) denotes the Integer that represents the count of the population of 
+  -- males of military age in the GeopoliticalArea ?AREA.
+  fun AvailableForMilitaryServiceMaleFn : El GeopoliticalArea -> Ind Integer ;
 
--- Modern nation_states' naval air 
--- forces (the whole branch of service) and not a subdivision thereof.
-fun NavalAirForce_BranchOfService : Class ;
-fun NavalAirForce_BranchOfService_Class : SubClass NavalAirForce_BranchOfService MilitaryOrganization ;
+  -- In military terminology, a battalion consists of 
+  -- two to six companies typically commanded by a lieutenant colonel. The 
+  -- nomenclature varies by nationality and by branch of arms, e.g. some 
+  -- armies organize their infantry into battalions, but call battalion_sized 
+  -- cavalry, reconnaissance, or tank units a squadron or a regiment instead. 
+  -- There may even be subtle distinctions within a nation's branches of arms, 
+  -- such a distinction between a tank battalion and an armored squadron, 
+  -- depending on how the unit's operational role is perceived to fit into the 
+  -- army's historical organization. A battalion is potentially the smallest 
+  -- military unit capable of independent operations (i.e. not attached to a 
+  -- higher command), but is usually part of a regiment or a brigade or both, 
+  -- depending on the organizational model used by that service. Battalions 
+  -- are ordinarily homogeneous with respect to type (e.g. an infantry 
+  -- battalion or a tank battalion), although there are occasional 
+  -- exceptions. (from Wikipedia)
+  fun Battalion : Class ;
+  fun Battalion_Class : SubClass Battalion MilitaryUnit ;
 
--- MilitaryOrganizations that are sea forces.
-fun Navy_BranchOfService : Class ;
-fun Navy_BranchOfService_Class : SubClass Navy_BranchOfService MilitaryOrganization ;
+  -- Brigade is a term from military science which 
+  -- refers to a group of several battalions (typically two to four), and 
+  -- directly attached supporting units (normally including at least an 
+  -- artillery battery and additional logistic support). A brigade is smaller 
+  -- than a division and roughly equal to or a little larger than a regiment. 
+  -- Strength typically ranges between 1,500 and 3,500 personnel. (from Wikipedia)
+  fun Brigade : Class ;
+  fun Brigade_Class : SubClass Brigade MilitaryUnit ;
 
--- Non_commissioned officers, or NCOs, in 
--- positions of authority can be said to have control or charge rather than 
--- command per se, although the use of the word command to describe any use 
--- of authority is widespread and often official. This is distinguished from 
--- the official responsibility for command entrusted to a 
--- CommissionedOfficer. NCOs are enlisted positions. (from Wikipedia)
-fun NonCommissionedOfficerRank : Class ;
-fun NonCommissionedOfficerRank_Class : SubClass NonCommissionedOfficerRank EnlistedSoldierRank ;
+  -- In military organizations, an officer 
+  -- is a member of the service who holds a position of responsibility. 
+  -- Commissioned officers derive authority directly from a sovereign power 
+  -- and, as such, hold a commission charging them with the duties and 
+  -- responsibilities of a specific office or position. Commissioned officers 
+  -- are typically the only persons in a military able to exercise command 
+  -- (according to the most technical definition of the word) over a military 
+  -- unit. Non_commissioned officers in positions of authority can be said to 
+  -- have control or charge rather than command per se, although the use of the 
+  -- word command to describe any use of authority is widespread and often 
+  -- official. (from Wikipedia)
+  fun CommissionedOfficerRank : Class ;
+  fun CommissionedOfficerRank_Class : SubClass CommissionedOfficerRank MilitaryRank ;
 
--- A MilitaryUnit, the purpose of which is
--- to prevent violent actions but providing deterrent to such actions through
--- the threat of overwhelming retaliation.
-fun PeacekeepingUnit : Class ;
-fun PeacekeepingUnit_Class : SubClass PeacekeepingUnit MilitaryUnit ;
+  -- The ranks of junior officers are the 
+  -- three or four lowest ranks of officers, possibily complicated by the 
+  -- status of trainee officers. Their units are generally not expected to 
+  -- operate independently for any significant length of time. Typical ranks 
+  -- for this level are captains, who typically lead companies and smaller 
+  -- units Lieutenant. Company grade officers will also fill staff roles in 
+  -- some units. (from Wikipedia)
+  fun CompanyGradeRank : Class ;
+  fun CompanyGradeRank_Class : SubClass CompanyGradeRank CommissionedOfficerRank ;
 
--- Platoon is a term from military science. In an 
--- army, a platoon is a unit of thirty to forty soldiers typically commanded 
--- by a Lieutenant assisted by a non_commissioned officer. A platoon is 
--- formed by at least two squads (usually 3 or 4) and is smaller than a 
--- company (typically there are 3 or 4 platoons per company). Most platoons 
--- are infantry platoons, some carry other designations such as mortar or 
--- heavy weapons platoons. A platoon is the smallest military unit led by a 
--- commissioned officer. (from Wikipedia)
-fun Platoon : Class ;
-fun Platoon_Class : SubClass Platoon MilitaryUnit ;
+  -- A company is a military unit, typically 
+  -- consisting of 100_200 soldiers. Most companies are formed of three or 
+  -- four platoons although the exact number may vary by country, unit type and 
+  -- structure. (from Wikipedia)
+  fun Company_Military : Class ;
+  fun Company_Military_Class : SubClass Company_Military MilitaryUnit ;
 
--- The lowest group of ranks in the military
--- (Grade E1 through E4). These Soldiers usually have no authority
--- based on their ranks.
-fun PrivateRank : Class ;
-fun PrivateRank_Class : SubClass PrivateRank EnlistedSoldierRank ;
+  -- Soldiers who are enlisted in some 
+  -- military and have no command.
+  fun EnlistedSoldierRank : Class ;
+  fun EnlistedSoldierRank_Class : SubClass EnlistedSoldierRank MilitaryRank ;
 
--- (equal 
--- (ReachingMilitaryAgeAnnuallyMaleFn ?AREA ?YEAR) ?COUNT) means that in the
--- GeopoliticalArea ?AREA, there are ?COUNT number of male individuals who for 
--- that year ?YEAR come to be of militaryAge.
-fun ReachingMilitaryAgeAnnuallyMaleFn : El GeopoliticalArea -> El Year -> Ind Integer ;
+  -- Senior officers who typically 
+  -- command units that can be expected to operate independently for short 
+  -- periods of time (battalions and regiments, large warships). Field Grade 
+  -- officers also commonly fill staff positions. (from Wikipedia)
+  fun FieldGradeOfficerRank : Class ;
+  fun FieldGradeOfficerRank_Class : SubClass FieldGradeOfficerRank CommissionedOfficerRank ;
 
+  -- (FitForMilitaryServiceMaleFn
+  --  ?AREA) denotes the Integer that represents the count of the population of 
+  -- males of military age in the GeopoliticalArea ?AREA that is also capable
+  -- of being a member of the military.
+  fun FitForMilitaryServiceMaleFn : El GeopoliticalArea -> Ind Integer ;
 
--- Military operations conducted to protect the friendly 
--- force by providing early and accurate warning of enemy operations, to provide the force 
--- being protected with time and maneuver space within which to react to the enemy, and to 
--- develop the situation to allow the commander to effectively use the protected force. 
--- Security operations orient on the force or facility to be protected, rather than on the 
--- enemy. (from FM 100_40).
-fun SecurityOperation : Class ;
-fun SecurityOperation_Class : SubClass SecurityOperation MilitaryOperation ;
+  -- Admirals (Navy), Generals (Army) and 
+  -- Marshals who typically command units that are expected to operate 
+  -- independently for extended periods of time (brigades and larger, fleets of 
+  -- ships). (from Wikipedia)
+  fun FlagOfficerRank : Class ;
+  fun FlagOfficerRank_Class : SubClass FlagOfficerRank CommissionedOfficerRank ;
 
--- Ranks with grade E7 through E9.
-fun SeniorNCORank : Class ;
-fun SeniorNCORank_Class : SubClass SeniorNCORank NonCommissionedOfficerRank ;
+  -- Military operations conducted to distribute food to the friendly force. (from FM 100_40)
+  fun FoodDistributionOperation : Class ;
+  fun FoodDistributionOperation_Class : SubClass FoodDistributionOperation (both Getting (both Giving MilitaryOperation)) ;
 
--- Any Soldier who is tasked with
--- carrying the colors of his/her unit in Battles and parades.
-fun StandardBearer : Class ;
-fun StandardBearer_Class : SubClass StandardBearer Soldier ;
+  -- A MilitaryUnit composed primarily of Soldiers 
+  -- who fight on foot, i.e. without the use of heavy artillery.
+  fun InfantryUnit : Class ;
+  fun InfantryUnit_Class : SubClass InfantryUnit MilitaryUnit ;
 
--- Any Soldier who served during the
--- American Civil War
-fun USCivilWarSoldier : Ind Soldier ;
+  -- Ranks with grade E5 or E6.
+  fun JuniorNCORank : Class ;
+  fun JuniorNCORank_Class : SubClass JuniorNCORank NonCommissionedOfficerRank ;
 
+  -- Modern nation_states' marine units (the 
+  -- whole branch of service) and not a subdivision thereof.
+  fun Marines_BranchOfService : Class ;
+  fun Marines_BranchOfService_Class : SubClass Marines_BranchOfService MilitaryOrganization ;
 
--- The class of Positions in the USMilitary.
-fun USMilitaryRank : Class ;
-fun USMilitaryRank_Class : SubClass USMilitaryRank MilitaryRank ;
+  -- A Convoy of MilitaryVehicles, travelling to the same 
+  -- at least intermediate destination, in relatively close proximity.
+  fun MilitaryConvoy : Class ;
+  fun MilitaryConvoy_Class : SubClass MilitaryConvoy Convoy ;
 
--- A USMilitaryRank that is variously called
--- Airman Basic in the Air Force, Private in the USArmy, 
--- Private in the USMarineCorps, and Seaman Recruit in the USNavy.
-fun USMilitaryRankE1 : Ind (both PrivateRank USMilitaryRank) ;
+  -- Trucks used by a military to transport food.
+  fun MilitaryFoodTruck : Class ;
+  fun MilitaryFoodTruck_Class : SubClass MilitaryFoodTruck MilitarySupportVehicle ;
 
+  -- A MilitaryOperation is distinguished 
+  -- from the broader class of MilitaryProcess in that it is planned in 
+  -- advance.
+  fun MilitaryOperation : Class ;
+  fun MilitaryOperation_Class : SubClass MilitaryOperation MilitaryProcess ;
 
--- A USMilitaryRank that is variously called
--- Airman in the Air Force, Private in the USArmy, 
--- Private First Class in the USMarineCorps, and Seaman Apprentice in the USNavy.
-fun USMilitaryRankE2 : Ind (both PrivateRank USMilitaryRank) ;
+  -- Military platforms. These are usually mobile 
+  -- entities which can carry military equipment such as Weapons and 
+  -- communications equipment. Often, as with a tank outfitted with a gun, a 
+  -- MilitaryPlatform carrying some Weapon comprises a WeaponSystem.
+  fun MilitaryPlatform : Class ;
+  fun MilitaryPlatform_Class : SubClass MilitaryPlatform TransportationDevice ;
 
+  -- The class of Positions in a Military. Rank is usually commensurate
+  -- with degrees of power, prestige and pay.
+  fun MilitaryRank : Class ;
+  fun MilitaryRank_Class : SubClass MilitaryRank SkilledOccupation ;
 
--- A USMilitaryRank that is variously called
--- Airman First Class in the Air Force, Private First Class in the USArmy, 
--- Lance Corporal in the USMarineCorps, and Seaman in the USNavy.
-fun USMilitaryRankE3 : Ind (both PrivateRank USMilitaryRank) ;
+  -- Trucks used by a military to transport supplies.
+  fun MilitarySupplyTruck : Class ;
+  fun MilitarySupplyTruck_Class : SubClass MilitarySupplyTruck (both MilitarySupportVehicle Truck) ;
 
+  -- Vehicles meant to be used for support, rather
+  -- than combat in a military context.
+  fun MilitarySupportVehicle : Class ;
+  fun MilitarySupportVehicle_Class : SubClass MilitarySupportVehicle MilitaryVehicle ;
 
--- A USMilitaryRank that is variously called
--- Senior Airman in the Air Force, Specialist or Corporal in the USArmy, 
--- Corporal in the USMarineCorps, and Petty Officer 3rd Class in the USNavy.
-fun USMilitaryRankE4 : Ind (both PrivateRank USMilitaryRank) ;
+  fun MilitaryVehicle_MilitaryPlatform : SubClass MilitaryVehicle MilitaryPlatform ;
 
+  -- Modern nation_states' naval air 
+  -- forces (the whole branch of service) and not a subdivision thereof.
+  fun NavalAirForce_BranchOfService : Class ;
+  fun NavalAirForce_BranchOfService_Class : SubClass NavalAirForce_BranchOfService MilitaryOrganization ;
 
--- A USMilitaryRank that is variously called
--- Staff Sergeant in the Air Force, Sergeant in the USArmy, 
--- Sergeant in the USMarineCorps, and Petty Officer 2nd Class in the USNavy.
-fun USMilitaryRankE5 : Ind (both JuniorNCORank USMilitaryRank) ;
+  -- MilitaryOrganizations that are sea forces.
+  fun Navy_BranchOfService : Class ;
+  fun Navy_BranchOfService_Class : SubClass Navy_BranchOfService MilitaryOrganization ;
 
+  -- Non_commissioned officers, or NCOs, in 
+  -- positions of authority can be said to have control or charge rather than 
+  -- command per se, although the use of the word command to describe any use 
+  -- of authority is widespread and often official. This is distinguished from 
+  -- the official responsibility for command entrusted to a 
+  -- CommissionedOfficer. NCOs are enlisted positions. (from Wikipedia)
+  fun NonCommissionedOfficerRank : Class ;
+  fun NonCommissionedOfficerRank_Class : SubClass NonCommissionedOfficerRank EnlistedSoldierRank ;
 
--- A USMilitaryRank that is variously called
--- Technical Sergeant in the Air Force, Staff Sergeant in the USArmy, 
--- Staff Sergeant in the USMarineCorps, and Petty Officer 1st Class in the USNavy.
-fun USMilitaryRankE6 : Ind (both JuniorNCORank USMilitaryRank) ;
+  -- A MilitaryUnit, the purpose of which is
+  -- to prevent violent actions but providing deterrent to such actions through
+  -- the threat of overwhelming retaliation.
+  fun PeacekeepingUnit : Class ;
+  fun PeacekeepingUnit_Class : SubClass PeacekeepingUnit MilitaryUnit ;
 
+  -- Platoon is a term from military science. In an 
+  -- army, a platoon is a unit of thirty to forty soldiers typically commanded 
+  -- by a Lieutenant assisted by a non_commissioned officer. A platoon is 
+  -- formed by at least two squads (usually 3 or 4) and is smaller than a 
+  -- company (typically there are 3 or 4 platoons per company). Most platoons 
+  -- are infantry platoons, some carry other designations such as mortar or 
+  -- heavy weapons platoons. A platoon is the smallest military unit led by a 
+  -- commissioned officer. (from Wikipedia)
+  fun Platoon : Class ;
+  fun Platoon_Class : SubClass Platoon MilitaryUnit ;
 
--- A USMilitaryRank that is variously called
--- Master Sergeant in the Air Force, Sergeant First Class in the USArmy, 
--- Gunnery Sergeant in the USMarineCorps, and Chief Petty Officer in the USNavy.
-fun USMilitaryRankE7 : Ind (both SeniorNCORank USMilitaryRank) ;
+  -- The lowest group of ranks in the military
+  -- (Grade E1 through E4). These Soldiers usually have no authority
+  -- based on their ranks.
+  fun PrivateRank : Class ;
+  fun PrivateRank_Class : SubClass PrivateRank EnlistedSoldierRank ;
 
+  -- (equal (ReachingMilitaryAgeAnnuallyMaleFn ?AREA ?YEAR) ?COUNT) means that in the
+  -- GeopoliticalArea ?AREA, there are ?COUNT number of male individuals who for 
+  -- that year ?YEAR come to be of militaryAge.
+  fun ReachingMilitaryAgeAnnuallyMaleFn : El GeopoliticalArea -> El Year -> Ind Integer ;
 
--- A USMilitaryRank that is variously called
--- Senior Master Sergeant in the Air Force, Master Sergeant or First Sergeant in the USArmy, 
--- Master Sergeant or First Sergeant in the USMarineCorps, and Senior Chief Petty Officer in the USNavy.
-fun USMilitaryRankE8 : Ind (both SeniorNCORank USMilitaryRank) ;
+  -- Military operations conducted to protect the friendly 
+  -- force by providing early and accurate warning of enemy operations, to provide the force 
+  -- being protected with time and maneuver space within which to react to the enemy, and to 
+  -- develop the situation to allow the commander to effectively use the protected force. 
+  -- Security operations orient on the force or facility to be protected, rather than on the 
+  -- enemy. (from FM 100_40).
+  fun SecurityOperation : Class ;
+  fun SecurityOperation_Class : SubClass SecurityOperation MilitaryOperation ;
 
+  -- Ranks with grade E7 through E9.
+  fun SeniorNCORank : Class ;
+  fun SeniorNCORank_Class : SubClass SeniorNCORank NonCommissionedOfficerRank ;
 
--- A USMilitaryRank that is variously 
--- called Chief Master Sergeant or Command Chief Master Sergeant or Chief 
--- Master Sergeant of the Air Force in the Air Force, Sergeant Major or 
--- Command Sergeant Major or Sergeant Major of the Army in the USArmy, 
--- Master Gunnery Sergeant or Sergeant Major or Sergeant Major of the Marine 
--- Corps in the USMarineCorps, and Master Chief Petty Officer or Command 
--- Master Chief Petty Officer or Master Chief Petty Officer of the Navy in 
--- the USNavy.
-fun USMilitaryRankE9 : Ind (both SeniorNCORank USMilitaryRank) ;
+  -- Any Soldier who is tasked with carrying the colors of his/her unit in Battles and parades.
+  fun StandardBearer : Class ;
+  fun StandardBearer_Class : SubClass StandardBearer Soldier ;
 
+  -- Any Soldier who served during the American Civil War
+  fun USCivilWarSoldier : Ind Soldier ;
 
--- A special USMilitaryRank
--- above E9 that marks usually the end of carrier of non_commissioned
--- officers.
-fun USMilitaryRankE9special : Ind (both USMilitaryRank SeniorNCORank) ;
+  -- The class of Positions in the USMilitary.
+  fun USMilitaryRank : Class ;
+  fun USMilitaryRank_Class : SubClass USMilitaryRank MilitaryRank ;
 
+  -- A USMilitaryRank that is variously called
+  -- Airman Basic in the Air Force, Private in the USArmy, 
+  -- Private in the USMarineCorps, and Seaman Recruit in the USNavy.
+  fun USMilitaryRankE1 : Ind (both PrivateRank USMilitaryRank) ;
 
-fun USMilitaryRankO1 : Ind (both CompanyGradeRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Airman in the Air Force, Private in the USArmy, 
+  -- Private First Class in the USMarineCorps, and Seaman Apprentice in the USNavy.
+  fun USMilitaryRankE2 : Ind (both PrivateRank USMilitaryRank) ;
 
-fun USMilitaryRankO10 : Ind (both FlagOfficerRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Airman First Class in the Air Force, Private First Class in the USArmy, 
+  -- Lance Corporal in the USMarineCorps, and Seaman in the USNavy.
+  fun USMilitaryRankE3 : Ind (both PrivateRank USMilitaryRank) ;
 
-fun USMilitaryRankO2 : Ind (both CompanyGradeRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Senior Airman in the Air Force, Specialist or Corporal in the USArmy, 
+  -- Corporal in the USMarineCorps, and Petty Officer 3rd Class in the USNavy.
+  fun USMilitaryRankE4 : Ind (both PrivateRank USMilitaryRank) ;
 
-fun USMilitaryRankO3 : Ind (both CompanyGradeRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Staff Sergeant in the Air Force, Sergeant in the USArmy, 
+  -- Sergeant in the USMarineCorps, and Petty Officer 2nd Class in the USNavy.
+  fun USMilitaryRankE5 : Ind (both JuniorNCORank USMilitaryRank) ;
 
-fun USMilitaryRankO4 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Technical Sergeant in the Air Force, Staff Sergeant in the USArmy, 
+  -- Staff Sergeant in the USMarineCorps, and Petty Officer 1st Class in the USNavy.
+  fun USMilitaryRankE6 : Ind (both JuniorNCORank USMilitaryRank) ;
 
-fun USMilitaryRankO5 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Master Sergeant in the Air Force, Sergeant First Class in the USArmy, 
+  -- Gunnery Sergeant in the USMarineCorps, and Chief Petty Officer in the USNavy.
+  fun USMilitaryRankE7 : Ind (both SeniorNCORank USMilitaryRank) ;
 
-fun USMilitaryRankO6 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously called
+  -- Senior Master Sergeant in the Air Force, Master Sergeant or First Sergeant in the USArmy, 
+  -- Master Sergeant or First Sergeant in the USMarineCorps, and Senior Chief Petty Officer in the USNavy.
+  fun USMilitaryRankE8 : Ind (both SeniorNCORank USMilitaryRank) ;
 
-fun USMilitaryRankO7 : Ind (both FlagOfficerRank USMilitaryRank) ;
+  -- A USMilitaryRank that is variously 
+  -- called Chief Master Sergeant or Command Chief Master Sergeant or Chief 
+  -- Master Sergeant of the Air Force in the Air Force, Sergeant Major or 
+  -- Command Sergeant Major or Sergeant Major of the Army in the USArmy, 
+  -- Master Gunnery Sergeant or Sergeant Major or Sergeant Major of the Marine 
+  -- Corps in the USMarineCorps, and Master Chief Petty Officer or Command 
+  -- Master Chief Petty Officer or Master Chief Petty Officer of the Navy in 
+  -- the USNavy.
+  fun USMilitaryRankE9 : Ind (both SeniorNCORank USMilitaryRank) ;
 
-fun USMilitaryRankO8 : Ind (both FlagOfficerRank USMilitaryRank) ;
+  -- A special USMilitaryRank above E9 that marks usually the end of
+  -- carrier of non_commissioned officers.
+  fun USMilitaryRankE9special : Ind (both USMilitaryRank SeniorNCORank) ;
 
-fun USMilitaryRankO9 : Ind (both FlagOfficerRank USMilitaryRank) ;
+  fun USMilitaryRankO1 : Ind (both CompanyGradeRank USMilitaryRank) ;
 
-fun USMilitaryRankSpecial : Ind (both FlagOfficerRank USMilitaryRank) ;
+  fun USMilitaryRankO10 : Ind (both FlagOfficerRank USMilitaryRank) ;
 
-fun USMilitaryRankWO1 : Ind (both USWarrantOfficerRank USMilitaryRank) ;
+  fun USMilitaryRankO2 : Ind (both CompanyGradeRank USMilitaryRank) ;
 
-fun USMilitaryRankWO2 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
+  fun USMilitaryRankO3 : Ind (both CompanyGradeRank USMilitaryRank) ;
 
-fun USMilitaryRankWO3 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
+  fun USMilitaryRankO4 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
 
-fun USMilitaryRankWO4 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
+  fun USMilitaryRankO5 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
 
-fun USMilitaryRankWO5 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
+  fun USMilitaryRankO6 : Ind (both FieldGradeOfficerRank USMilitaryRank) ;
 
--- Any Soldier who served
--- during the American Revolutionary War
-fun USRevolutionaryWarSoldier : Ind Soldier ;
+  fun USMilitaryRankO7 : Ind (both FlagOfficerRank USMilitaryRank) ;
 
+  fun USMilitaryRankO8 : Ind (both FlagOfficerRank USMilitaryRank) ;
 
--- In the United States military, a 
--- warrant officer was originally, and strictly, a highly skilled, 
--- single_track specialty officer. But as many chief warrant officers assume 
--- positions as officer in charge or department head, along with the high 
--- number of bachelor's and masters degrees held within the community, their 
--- contribution and expertise as a community is ever_increasing. There are 
--- no 'warrant officers' per se in the U.S. Navy, but rather the term 'chief 
--- warrant officer' is correct. In the U.S. Navy, a sailor must be in one 
--- of the top three enlisted ranks to be eligible to become a Chief Warrant 
--- Officer. In the U.S. Army, a person can progress to the warrant officer 
--- rank at a grade lower than E_7 thus having a longer career and greater 
--- opportunity to serve and grow. In the U.S. Marine Corps, after serving 
--- at least eight years of enlisted service, and reaching the grade of E_5 
--- (sergeant), an enlisted Marine can apply for the Warrant Officer program. 
--- Upon the initial appointment to WO1 a warrant is given by the secretary of 
--- the service, and upon promotion to chief warrant officer (CW2 and above) 
--- they are commissioned by the President of the United States, take the same 
--- oath and receive the same commission and charges as commissioned officers, 
--- thus deriving their authority from the same source.
-fun USWarrantOfficerRank : Class ;
-fun USWarrantOfficerRank_Class : SubClass USWarrantOfficerRank CommissionedOfficerRank ;
+  fun USMilitaryRankO9 : Ind (both FlagOfficerRank USMilitaryRank) ;
 
--- (betweenOnPath ?OBJ1 ?OBJ2 ?OBJ3 ?PATH) 
--- means that ?OBJ2 is spatially located between ?OBJ1 and ?OBJ3 on the path 
--- ?PATH. Note that this is a more specialized relation of between since any 
--- object that is between others with respect to a particular path is also 
--- simply between them.
-fun betweenOnPath : El Object -> El Object -> El Object -> Formula ;
+  fun USMilitaryRankSpecial : Ind (both FlagOfficerRank USMilitaryRank) ;
 
+  fun USMilitaryRankWO1 : Ind (both USWarrantOfficerRank USMilitaryRank) ;
 
--- The typical MilitaryRank of
--- the leader of an instance of the given MilitaryEchelon.
-fun commandRankOfEchelon: Desc MilitaryUnit -> El MilitaryRank -> Formula ;
+  fun USMilitaryRankWO2 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
 
+  fun USMilitaryRankWO3 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
 
--- (fitForMilitaryService ?AGENT ?PROCESS)
--- means that ?AGENT is capable of carrying out the MilitaryProcess ?PROCESS as
--- the agent of the ?PROCESS.
-fun fitForMilitaryService: El CognitiveAgent -> Desc MilitaryProcess -> Formula ;
+  fun USMilitaryRankWO4 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
 
+  fun USMilitaryRankWO5 : Ind (both USWarrantOfficerRank (both USMilitaryRank CommissionedOfficerRank)) ;
 
--- (militaryAge ?AREA ?AGE) means that in the 
--- GeopoliticalArea ?AREA, a person must be ?AGE or older in order to be a
--- member of the military of the ?AREA.
-fun militaryAge : El GeopoliticalArea -> El TimeDuration -> Formula ;
+  -- Any Soldier who served
+  -- during the American Revolutionary War
+  fun USRevolutionaryWarSoldier : Ind Soldier ;
 
+  -- In the United States military, a 
+  -- warrant officer was originally, and strictly, a highly skilled, 
+  -- single_track specialty officer. But as many chief warrant officers assume 
+  -- positions as officer in charge or department head, along with the high 
+  -- number of bachelor's and masters degrees held within the community, their 
+  -- contribution and expertise as a community is ever_increasing. There are 
+  -- no 'warrant officers' per se in the U.S. Navy, but rather the term 'chief 
+  -- warrant officer' is correct. In the U.S. Navy, a sailor must be in one 
+  -- of the top three enlisted ranks to be eligible to become a Chief Warrant 
+  -- Officer. In the U.S. Army, a person can progress to the warrant officer 
+  -- rank at a grade lower than E_7 thus having a longer career and greater 
+  -- opportunity to serve and grow. In the U.S. Marine Corps, after serving 
+  -- at least eight years of enlisted service, and reaching the grade of E_5 
+  -- (sergeant), an enlisted Marine can apply for the Warrant Officer program. 
+  -- Upon the initial appointment to WO1 a warrant is given by the secretary of 
+  -- the service, and upon promotion to chief warrant officer (CW2 and above) 
+  -- they are commissioned by the President of the United States, take the same 
+  -- oath and receive the same commission and charges as commissioned officers, 
+  -- thus deriving their authority from the same source.
+  fun USWarrantOfficerRank : Class ;
+  fun USWarrantOfficerRank_Class : SubClass USWarrantOfficerRank CommissionedOfficerRank ;
 
--- (militaryExpendituresFractionOfGDP ?AREA ?FRACTION) means 
--- that the estimated military spending of the GeopoliticalArea ?AREA is 
--- ?FRACTION of the gross domestic product (GDP) of that area.
-fun militaryExpendituresFractionOfGDP : El GeopoliticalArea -> El RationalNumber -> Formula ;
+  -- (betweenOnPath ?OBJ1 ?OBJ2 ?OBJ3 ?PATH) 
+  -- means that ?OBJ2 is spatially located between ?OBJ1 and ?OBJ3 on the path 
+  -- ?PATH. Note that this is a more specialized relation of between since any 
+  -- object that is between others with respect to a particular path is also 
+  -- simply between them.
+  fun betweenOnPath : El Object -> El Object -> El Object -> Formula ;
 
+  -- The typical MilitaryRank of
+  -- the leader of an instance of the given MilitaryEchelon.
+  fun commandRankOfEchelon: Desc MilitaryUnit -> El MilitaryRank -> Formula ;
 
--- (militaryExpendituresFractionOfGDPInPeriod ?AREA ?FRACTION ?PERIOD) 
--- means that the estimated military spending of the GeopoliticalArea ?AREA 
--- was ?FRACTION of the gross domestic product (GDP) of that area during the
--- TimeInterval indicated by ?PERIOD.
-fun militaryExpendituresFractionOfGDPInPeriod : El GeopoliticalArea -> El RationalNumber -> El TimeInterval -> Formula ;
+  -- (fitForMilitaryService ?AGENT ?PROCESS)
+  -- means that ?AGENT is capable of carrying out the MilitaryProcess ?PROCESS as
+  -- the agent of the ?PROCESS.
+  fun fitForMilitaryService: El CognitiveAgent -> Desc MilitaryProcess -> Formula ;
 
+  -- (militaryAge ?AREA ?AGE) means that in the 
+  -- GeopoliticalArea ?AREA, a person must be ?AGE or older in order to be a
+  -- member of the military of the ?AREA.
+  fun militaryAge : El GeopoliticalArea -> El TimeDuration -> Formula ;
 
--- (militaryExpendituresInUSDollars ?AREA ?AMOUNT) means that the 
--- estimated military spending of the GeopoliticalArea ?AREA is ?AMOUNT 
--- in UnitedStatesDollars. Note: This predicate was created to represent 
--- data from the CIA World Fact Book, which calculates ?AMOUNT by multiplying 
--- estimated percentage of ?AREA's budget spent on defense by its gross 
--- domestic product (GDP) expressed in U.S. dollars. Note that this GDP is 
--- calculated by the exchange rate method rather than by 
--- PPPBasedEconomicValuation. Military expenditures data is approximate.
-fun militaryExpendituresInUSDollars : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
+  -- (militaryExpendituresFractionOfGDP ?AREA ?FRACTION) means 
+  -- that the estimated military spending of the GeopoliticalArea ?AREA is 
+  -- ?FRACTION of the gross domestic product (GDP) of that area.
+  fun militaryExpendituresFractionOfGDP : El GeopoliticalArea -> El RationalNumber -> Formula ;
 
+  -- (militaryExpendituresFractionOfGDPInPeriod ?AREA ?FRACTION ?PERIOD) 
+  -- means that the estimated military spending of the GeopoliticalArea ?AREA 
+  -- was ?FRACTION of the gross domestic product (GDP) of that area during the
+  -- TimeInterval indicated by ?PERIOD.
+  fun militaryExpendituresFractionOfGDPInPeriod : El GeopoliticalArea -> El RationalNumber -> El TimeInterval -> Formula ;
 
--- (militaryExpendituresInUSDollarsInPeriod ?AREA ?AMOUNT ?PERIOD) means 
--- that the estimated military spending of the GeopoliticalArea ?AREA was 
--- ?AMOUNT in UnitedStatesDollars during the TimeInterval indicated by 
--- ?PERIOD. Note: This predicate was created to represent data from the CIA 
--- World Fact Book, which calculates ?AMOUNT by multiplying estimated defense 
--- spending of an ?AREA in percentage terms by the gross domestic product (GDP) 
--- for ?PERIOD. Note that for this figure, GDP is calculated by the exchange 
--- rate method rather than by PPPBasedEconomicValuation. In any case, 
--- military expenditures data should be treated as only approximate.
-fun militaryExpendituresInUSDollarsInPeriod : El GeopoliticalArea -> El CurrencyMeasure -> El TimeInterval -> Formula ;
+  -- (militaryExpendituresInUSDollars ?AREA ?AMOUNT) means that the 
+  -- estimated military spending of the GeopoliticalArea ?AREA is ?AMOUNT 
+  -- in UnitedStatesDollars. Note: This predicate was created to represent 
+  -- data from the CIA World Fact Book, which calculates ?AMOUNT by multiplying 
+  -- estimated percentage of ?AREA's budget spent on defense by its gross 
+  -- domestic product (GDP) expressed in U.S. dollars. Note that this GDP is 
+  -- calculated by the exchange rate method rather than by 
+  -- PPPBasedEconomicValuation. Military expenditures data is approximate.
+  fun militaryExpendituresInUSDollars : El GeopoliticalArea -> El CurrencyMeasure -> Formula ;
 
+  -- (militaryExpendituresInUSDollarsInPeriod ?AREA ?AMOUNT ?PERIOD) means 
+  -- that the estimated military spending of the GeopoliticalArea ?AREA was 
+  -- ?AMOUNT in UnitedStatesDollars during the TimeInterval indicated by 
+  -- ?PERIOD. Note: This predicate was created to represent data from the CIA 
+  -- World Fact Book, which calculates ?AMOUNT by multiplying estimated defense 
+  -- spending of an ?AREA in percentage terms by the gross domestic product (GDP) 
+  -- for ?PERIOD. Note that for this figure, GDP is calculated by the exchange 
+  -- rate method rather than by PPPBasedEconomicValuation. In any case, 
+  -- military expenditures data should be treated as only approximate.
+  fun militaryExpendituresInUSDollarsInPeriod : El GeopoliticalArea -> El CurrencyMeasure -> El TimeInterval -> Formula ;
 
--- (militaryOfArea ?MILITARY ?AREA) 
--- denotes that ?MILITARY is a MilitaryOrganization serving in defense of 
--- the GeopoliticalArea ?AREA.
-fun militaryOfArea : El MilitaryOrganization -> El GeopoliticalArea -> Formula ;
+  -- (militaryOfArea ?MILITARY ?AREA) 
+  -- denotes that ?MILITARY is a MilitaryOrganization serving in defense of 
+  -- the GeopoliticalArea ?AREA.
+  fun militaryOfArea : El MilitaryOrganization -> El GeopoliticalArea -> Formula ;
 
+  -- A subEchelon is a relationship between
+  -- named organizational unit types in which a unit of one type is a
+  -- subOrganization of the other.
+  fun subEchelon: Desc MilitaryUnit -> Desc MilitaryUnit -> Formula ;
 
--- A subEchelon is a relationship between
--- named organizational unit types in which a unit of one type is a
--- subOrganization of the other.
-fun subEchelon: Desc MilitaryUnit -> Desc MilitaryUnit -> Formula ;
 }
diff --git a/examples/SUMO/Mondial.gf b/examples/SUMO/Mondial.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/Mondial.gf
@@ -0,0 +1,10727 @@
+abstract Mondial = CountriesAndRegions ** {
+
+  fun Continents_Africa : Ind Continent ;
+
+  fun Continents_America : Ind Continent ;
+
+  fun Continents_Asia : Ind Continent ;
+
+  fun Continents_Australia_Oceania : Ind Continent ;
+
+  fun Continents_Europe : Ind Continent ;
+
+  fun Countries_AFG_cities_Kabul : Ind City ;
+
+  fun Countries_AG_cities_SaintJohns : Ind City ;
+
+  fun Countries_AL_cities_Durres : Ind City ;
+
+  fun Countries_AL_cities_Elbasan : Ind City ;
+
+  fun Countries_AL_cities_Korce : Ind City ;
+
+  fun Countries_AL_cities_Shkoder : Ind City ;
+
+  fun Countries_AL_cities_Tirane : Ind City ;
+
+  fun Countries_AL_cities_Vlore : Ind City ;
+
+  fun Countries_AND_cities_AndorralaVella : Ind City ;
+
+  fun Countries_ANG_provinces_Bengo : Ind Province ;
+
+  fun Countries_ANG_provinces_Bengo_cities_Caxito : Ind City ;
+
+  fun Countries_ANG_provinces_Benguela : Ind Province ;
+
+  fun Countries_ANG_provinces_Benguela_cities_Benguela : Ind City ;
+
+  fun Countries_ANG_provinces_Bie : Ind Province ;
+
+  fun Countries_ANG_provinces_Bie_cities_Bie : Ind City ;
+
+  fun Countries_ANG_provinces_Cabinda : Ind Province ;
+
+  fun Countries_ANG_provinces_Cabinda_cities_Cabinda : Ind City ;
+
+  fun Countries_ANG_provinces_CuandoCubango : Ind Province ;
+
+  fun Countries_ANG_provinces_CuandoCubango_cities_Menongue : Ind City ;
+
+  fun Countries_ANG_provinces_CuanzaNorte : Ind Province ;
+
+  fun Countries_ANG_provinces_CuanzaNorte_cities_Ndalatando : Ind City ;
+
+  fun Countries_ANG_provinces_CuanzaSul : Ind Province ;
+
+  fun Countries_ANG_provinces_CuanzaSul_cities_Sumbe : Ind City ;
+
+  fun Countries_ANG_provinces_Cunene : Ind Province ;
+
+  fun Countries_ANG_provinces_Cunene_cities_Ngiva : Ind City ;
+
+  fun Countries_ANG_provinces_Huambo : Ind Province ;
+
+  fun Countries_ANG_provinces_Huambo_cities_Huambo : Ind City ;
+
+  fun Countries_ANG_provinces_Huila : Ind Province ;
+
+  fun Countries_ANG_provinces_Huila_cities_Lubango : Ind City ;
+
+  fun Countries_ANG_provinces_Luanda : Ind Province ;
+
+  fun Countries_ANG_provinces_Luanda_cities_Luanda : Ind City ;
+
+  fun Countries_ANG_provinces_LundaNorte : Ind Province ;
+
+  fun Countries_ANG_provinces_LundaNorte_cities_Lucapa : Ind City ;
+
+  fun Countries_ANG_provinces_LundaSul : Ind Province ;
+
+  fun Countries_ANG_provinces_LundaSul_cities_Saurimo : Ind City ;
+
+  fun Countries_ANG_provinces_Malanje : Ind Province ;
+
+  fun Countries_ANG_provinces_Malanje_cities_Malanje : Ind City ;
+
+  fun Countries_ANG_provinces_Moxico : Ind Province ;
+
+  fun Countries_ANG_provinces_Moxico_cities_Luena : Ind City ;
+
+  fun Countries_ANG_provinces_Namibe : Ind Province ;
+
+  fun Countries_ANG_provinces_Namibe_cities_Namibe : Ind City ;
+
+  fun Countries_ANG_provinces_Uige : Ind Province ;
+
+  fun Countries_ANG_provinces_Uige_cities_Uige : Ind City ;
+
+  fun Countries_ANG_provinces_Zaire : Ind Province ;
+
+  fun Countries_ANG_provinces_Zaire_cities_MbanzaCongo : Ind City ;
+
+  fun Countries_ARM_cities_Yerevan : Ind City ;
+
+  fun Countries_AUS_provinces_AustraliaCapitalTerritory : Ind Province ;
+
+  fun Countries_AUS_provinces_AustraliaCapitalTerritory_cities_Canberra : Ind City ;
+
+  fun Countries_AUS_provinces_CocosIslands : Ind Province ;
+
+  fun Countries_AUS_provinces_CocosIslands_cities_BantamVillage : Ind City ;
+
+  fun Countries_AUS_provinces_Kirimati : Ind Province ;
+
+  fun Countries_AUS_provinces_Kirimati_cities_FlyingFishCove : Ind City ;
+
+  fun Countries_AUS_provinces_NewSouthWales : Ind Province ;
+
+  fun Countries_AUS_provinces_NewSouthWales_cities_Geelong : Ind City ;
+
+  fun Countries_AUS_provinces_NewSouthWales_cities_Newcastle : Ind City ;
+
+  fun Countries_AUS_provinces_NewSouthWales_cities_SunshineCoast : Ind City ;
+
+  fun Countries_AUS_provinces_NewSouthWales_cities_Sydney : Ind City ;
+
+  fun Countries_AUS_provinces_NewSouthWales_cities_Wollongong : Ind City ;
+
+  fun Countries_AUS_provinces_NorfolkIsland : Ind Province ;
+
+  fun Countries_AUS_provinces_NorfolkIsland_cities_Kingston : Ind City ;
+
+  fun Countries_AUS_provinces_NorthernTerritory : Ind Province ;
+
+  fun Countries_AUS_provinces_NorthernTerritory_cities_Darwin : Ind City ;
+
+  fun Countries_AUS_provinces_Queensland : Ind Province ;
+
+  fun Countries_AUS_provinces_Queensland_cities_Brisbane : Ind City ;
+
+  fun Countries_AUS_provinces_Queensland_cities_GoldCoast : Ind City ;
+
+  fun Countries_AUS_provinces_Queensland_cities_Townsville : Ind City ;
+
+  fun Countries_AUS_provinces_SouthAustralia : Ind Province ;
+
+  fun Countries_AUS_provinces_SouthAustralia_cities_Adelaide : Ind City ;
+
+  fun Countries_AUS_provinces_Tasmania : Ind Province ;
+
+  fun Countries_AUS_provinces_Tasmania_cities_Hobart : Ind City ;
+
+  fun Countries_AUS_provinces_Victoria : Ind Province ;
+
+  fun Countries_AUS_provinces_Victoria_cities_Melbourne : Ind City ;
+
+  fun Countries_AUS_provinces_WesternAustralia : Ind Province ;
+
+  fun Countries_AUS_provinces_WesternAustralia_cities_Albany : Ind City ;
+
+  fun Countries_AUS_provinces_WesternAustralia_cities_Perth : Ind City ;
+
+  fun Countries_AZ_cities_Baku : Ind City ;
+
+  fun Countries_A_provinces_Burgenland : Ind Province ;
+
+  fun Countries_A_provinces_Burgenland_cities_Eisenstadt : Ind City ;
+
+  fun Countries_A_provinces_Carinthia : Ind Province ;
+
+  fun Countries_A_provinces_Carinthia_cities_Klagenfurt : Ind City ;
+
+  fun Countries_A_provinces_LowerAustria : Ind Province ;
+
+  fun Countries_A_provinces_LowerAustria_cities_St_Polten : Ind City ;
+
+  fun Countries_A_provinces_Salzburg : Ind Province ;
+
+  fun Countries_A_provinces_Salzburg_cities_Salzburg : Ind City ;
+
+  fun Countries_A_provinces_Styria : Ind Province ;
+
+  fun Countries_A_provinces_Styria_cities_Graz : Ind City ;
+
+  fun Countries_A_provinces_Tyrol : Ind Province ;
+
+  fun Countries_A_provinces_Tyrol_cities_Innsbruck : Ind City ;
+
+  fun Countries_A_provinces_UpperAustria : Ind Province ;
+
+  fun Countries_A_provinces_UpperAustria_cities_Linz : Ind City ;
+
+  fun Countries_A_provinces_Vienna : Ind Province ;
+
+  fun Countries_A_provinces_Vienna_cities_Vienna : Ind City ;
+
+  fun Countries_A_provinces_Vorarlberg : Ind Province ;
+
+  fun Countries_A_provinces_Vorarlberg_cities_Bregenz : Ind City ;
+
+  fun Countries_BDS_cities_Bridgetown : Ind City ;
+
+  fun Countries_BD_cities_Barisal : Ind City ;
+
+  fun Countries_BD_cities_Bogra : Ind City ;
+
+  fun Countries_BD_cities_Brahmanbaria : Ind City ;
+
+  fun Countries_BD_cities_Chittagong : Ind City ;
+
+  fun Countries_BD_cities_Comilla : Ind City ;
+
+  fun Countries_BD_cities_Dhaka : Ind City ;
+
+  fun Countries_BD_cities_Dinajpur : Ind City ;
+
+  fun Countries_BD_cities_Gazipur : Ind City ;
+
+  fun Countries_BD_cities_Jamalpur : Ind City ;
+
+  fun Countries_BD_cities_Jessore : Ind City ;
+
+  fun Countries_BD_cities_Khulna : Ind City ;
+
+  fun Countries_BD_cities_Mymensingh : Ind City ;
+
+  fun Countries_BD_cities_Naogaon : Ind City ;
+
+  fun Countries_BD_cities_Narayanganj : Ind City ;
+
+  fun Countries_BD_cities_Narsinghdi : Ind City ;
+
+  fun Countries_BD_cities_Nawabganj : Ind City ;
+
+  fun Countries_BD_cities_Pabna : Ind City ;
+
+  fun Countries_BD_cities_Rajshahi : Ind City ;
+
+  fun Countries_BD_cities_Rangpur : Ind City ;
+
+  fun Countries_BD_cities_Saidpur : Ind City ;
+
+  fun Countries_BD_cities_Savar : Ind City ;
+
+  fun Countries_BD_cities_Sirajganj : Ind City ;
+
+  fun Countries_BD_cities_Sylhet : Ind City ;
+
+  fun Countries_BD_cities_Tangail : Ind City ;
+
+  fun Countries_BD_cities_Tongi : Ind City ;
+
+  fun Countries_BEN_cities_Porto_Novo : Ind City ;
+
+  fun Countries_BF_cities_Ouagadougou : Ind City ;
+
+  fun Countries_BG_cities_Sofia : Ind City ;
+
+  fun Countries_BHT_cities_Thimphu : Ind City ;
+
+  fun Countries_BIH_cities_Sarajevo : Ind City ;
+
+  fun Countries_BI_cities_Bujumbura : Ind City ;
+
+  fun Countries_BOL_cities_Cochabamba : Ind City ;
+
+  fun Countries_BOL_cities_LaPaz : Ind City ;
+
+  fun Countries_BOL_cities_Sucre : Ind City ;
+
+  fun Countries_BRN_cities_Manama : Ind City ;
+
+  fun Countries_BRU_cities_BandarSeriBegawan : Ind City ;
+
+  fun Countries_BR_cities_Abaetetuba : Ind City ;
+
+  fun Countries_BR_cities_Alvorada : Ind City ;
+
+  fun Countries_BR_cities_Betim : Ind City ;
+
+  fun Countries_BR_cities_CabodeSantoAgostinho : Ind City ;
+
+  fun Countries_BR_cities_CamposdosGoytacazes : Ind City ;
+
+  fun Countries_BR_cities_Contagem : Ind City ;
+
+  fun Countries_BR_cities_Hortolandia : Ind City ;
+
+  fun Countries_BR_cities_Ibirite : Ind City ;
+
+  fun Countries_BR_cities_NossaSenhoradoSocorro : Ind City ;
+
+  fun Countries_BR_cities_RibeiraodasNeves : Ind City ;
+
+  fun Countries_BR_cities_SantaBarbaradOeste : Ind City ;
+
+  fun Countries_BR_cities_SaoJosedosPinhais : Ind City ;
+
+  fun Countries_BR_cities_SapucaiadoSul : Ind City ;
+
+  fun Countries_BR_cities_Sumare : Ind City ;
+
+  fun Countries_BR_provinces_Acre : Ind Province ;
+
+  fun Countries_BR_provinces_Acre_cities_RioBranco : Ind City ;
+
+  fun Countries_BR_provinces_Alagoas : Ind Province ;
+
+  fun Countries_BR_provinces_Alagoas_cities_Maceio : Ind City ;
+
+  fun Countries_BR_provinces_Amapa : Ind Province ;
+
+  fun Countries_BR_provinces_Amapa_cities_Macapa : Ind City ;
+
+  fun Countries_BR_provinces_Amazonas : Ind Province ;
+
+  fun Countries_BR_provinces_Amazonas_cities_Manaus : Ind City ;
+
+  fun Countries_BR_provinces_Bahia : Ind Province ;
+
+  fun Countries_BR_provinces_Bahia_cities_Alagoinhas : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Barreiras : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Camacari : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_FeiradeSantana : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Ilheus : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Itabuna : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Jequie : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Juazeiro : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_Salvador : Ind City ;
+
+  fun Countries_BR_provinces_Bahia_cities_VitoriadaConquista : Ind City ;
+
+  fun Countries_BR_provinces_Ceara : Ind Province ;
+
+  fun Countries_BR_provinces_Ceara_cities_Caucaia : Ind City ;
+
+  fun Countries_BR_provinces_Ceara_cities_Fortaleza : Ind City ;
+
+  fun Countries_BR_provinces_Ceara_cities_JuazeirodoNorte : Ind City ;
+
+  fun Countries_BR_provinces_Ceara_cities_Maracanau : Ind City ;
+
+  fun Countries_BR_provinces_Ceara_cities_Sobral : Ind City ;
+
+  fun Countries_BR_provinces_DistritoFederal : Ind Province ;
+
+  fun Countries_BR_provinces_DistritoFederal_cities_Brasilia : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto : Ind Province ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_CachoeirodeItapemirim : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_Cariacica : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_Colatina : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_Linhares : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_Serra : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_VilaVelha : Ind City ;
+
+  fun Countries_BR_provinces_EspiritoSanto_cities_Vitoria : Ind City ;
+
+  fun Countries_BR_provinces_Goias : Ind Province ;
+
+  fun Countries_BR_provinces_Goias_cities_Anapolis : Ind City ;
+
+  fun Countries_BR_provinces_Goias_cities_Araguaina : Ind City ;
+
+  fun Countries_BR_provinces_Goias_cities_Goiania : Ind City ;
+
+  fun Countries_BR_provinces_Goias_cities_Luziania : Ind City ;
+
+  fun Countries_BR_provinces_Goias_cities_RioVerde : Ind City ;
+
+  fun Countries_BR_provinces_Maranhao : Ind Province ;
+
+  fun Countries_BR_provinces_Maranhao_cities_Caxias : Ind City ;
+
+  fun Countries_BR_provinces_Maranhao_cities_Codo : Ind City ;
+
+  fun Countries_BR_provinces_Maranhao_cities_Imperatriz : Ind City ;
+
+  fun Countries_BR_provinces_Maranhao_cities_SaoLuis : Ind City ;
+
+  fun Countries_BR_provinces_Maranhao_cities_Timon : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrosso : Ind Province ;
+
+  fun Countries_BR_provinces_MatoGrosso_cities_Cuiaba : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrosso_cities_Rondonopolis : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrosso_cities_VarzeaGrande : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrossodoSul : Ind Province ;
+
+  fun Countries_BR_provinces_MatoGrossodoSul_cities_CampoGrande : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrossodoSul_cities_Dourados : Ind City ;
+
+  fun Countries_BR_provinces_MatoGrossodoSul_cities_Parnaiba : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais : Ind Province ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Barbacena : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_BeloHorizonte : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Divinopolis : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_GovernadorValadares : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Ipatinga : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_ItapecericadaSerra : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_JuizdeFora : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_MontesClaros : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_PatosdeMinas : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_PocosdeCaldas : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Sabara : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_SeteLagoas : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_TeofiloOtoni : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Uberaba : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Uberlandia : Ind City ;
+
+  fun Countries_BR_provinces_MinasGerais_cities_Varginha : Ind City ;
+
+  fun Countries_BR_provinces_Para : Ind Province ;
+
+  fun Countries_BR_provinces_Para_cities_Ananindeua : Ind City ;
+
+  fun Countries_BR_provinces_Para_cities_Belem : Ind City ;
+
+  fun Countries_BR_provinces_Para_cities_Castanhal : Ind City ;
+
+  fun Countries_BR_provinces_Para_cities_Itaituba : Ind City ;
+
+  fun Countries_BR_provinces_Para_cities_Maraba : Ind City ;
+
+  fun Countries_BR_provinces_Para_cities_Santarem : Ind City ;
+
+  fun Countries_BR_provinces_Paraiba : Ind Province ;
+
+  fun Countries_BR_provinces_Paraiba_cities_CampinaGrande : Ind City ;
+
+  fun Countries_BR_provinces_Paraiba_cities_JoaoPessoa : Ind City ;
+
+  fun Countries_BR_provinces_Paraiba_cities_SantaLuzia : Ind City ;
+
+  fun Countries_BR_provinces_Paraiba_cities_SantaRita : Ind City ;
+
+  fun Countries_BR_provinces_Parana : Ind Province ;
+
+  fun Countries_BR_provinces_Parana_cities_Apucarana : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Cascavel : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Colombo : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Curitiba : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_FozdoIguacu : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Guarapuava : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Londrina : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Maringa : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_Paranagua : Ind City ;
+
+  fun Countries_BR_provinces_Parana_cities_PontaGrossa : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco : Ind Province ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Camaragibe : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Caruaru : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Garanhuns : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Gravatai : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_JaboataodosGuararapes : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Paulista : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Petrolina : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_Recife : Ind City ;
+
+  fun Countries_BR_provinces_Pernambuco_cities_VitoriadeSantoAntao : Ind City ;
+
+  fun Countries_BR_provinces_Piaui : Ind Province ;
+
+  fun Countries_BR_provinces_Piaui_cities_Teresina : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoNorte : Ind Province ;
+
+  fun Countries_BR_provinces_RioGrandedoNorte_cities_Mossoro : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoNorte_cities_Natal : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul : Ind Province ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_Bage : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_Canoas : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_CaxiasdoSul : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_NovoHamburgo : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_PassoFundo : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_Pelotas : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_PortoAlegre : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_RioGrande : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_SantaCruzdoSul : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_SantaMaria : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_SaoLeopoldo : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_Uruguaiana : Ind City ;
+
+  fun Countries_BR_provinces_RioGrandedoSul_cities_Viamao : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro : Ind Province ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_BarraMansa : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_BelfortRoxo : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_CaboFrio : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_DuquedeCaxias : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Itaborai : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Macae : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Mage : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Nilopolis : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Niteroi : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_NovaFriburgo : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_NovoIguacu : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Olinda : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Petropolis : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Queimados : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_RiodeJaneiro : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_SaoGoncalo : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_SaoJoaodeMeriti : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_Teresopolis : Ind City ;
+
+  fun Countries_BR_provinces_RiodeJaneiro_cities_VoltaRedonda : Ind City ;
+
+  fun Countries_BR_provinces_Rondonia : Ind Province ;
+
+  fun Countries_BR_provinces_Rondonia_cities_PortoVelho : Ind City ;
+
+  fun Countries_BR_provinces_Roraima : Ind Province ;
+
+  fun Countries_BR_provinces_Roraima_cities_BoaVista : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina : Ind Province ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Blumenau : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Chapeco : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Criciuma : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Florianopolis : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Itajai : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Joinvile : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_Lages : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_PraiaGrande : Ind City ;
+
+  fun Countries_BR_provinces_SantaCatarina_cities_SaoJose : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo : Ind Province ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Americana : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_AparecidadeGoiania : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Aracatuba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Araraquara : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Barretos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Barueri : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Bauru : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Botucatu : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_BragancaPaulista : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Campinas : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Carapicuiba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Catanduva : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Cotia : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Diadema : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Embu : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_FerrazdeVasconcelos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Franca : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_FranciscoMorato : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Guaruja : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Guarulhos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Indaiatuba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Itapetininga : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Itapevi : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Itaquaquecetuba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Itu : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Jacarei : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Jau : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Jundiai : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Limeira : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Marilia : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Maua : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_MojiGuacu : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_MojidasCruzes : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Osasco : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Pindamonhangaba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Piracicaba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_PresidentePrudente : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_RibeiraoPires : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_RibeiraoPreto : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_RioClaro : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SantoAndre : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Santos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoBernardodoCampo : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoCaetanodoSul : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoCarlos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoJosedoRioPreto : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoJosedosCampos : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoPaulo : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_SaoVicente : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Sorocaba : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Suzano : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_TaboaodaSerra : Ind City ;
+
+  fun Countries_BR_provinces_SaoPaulo_cities_Taubate : Ind City ;
+
+  fun Countries_BR_provinces_Sergipe : Ind Province ;
+
+  fun Countries_BR_provinces_Sergipe_cities_Aracaju : Ind City ;
+
+  fun Countries_BR_provinces_Sergipe_cities_Arapiraca : Ind City ;
+
+  fun Countries_BR_provinces_Tocantins : Ind Province ;
+
+  fun Countries_BR_provinces_Tocantins_cities_Palmas : Ind City ;
+
+  fun Countries_BS_cities_Nassau : Ind City ;
+
+  fun Countries_BY_cities_Minsk : Ind City ;
+
+  fun Countries_BZ_cities_Belmopan : Ind City ;
+
+  fun Countries_B_provinces_Antwerp : Ind Province ;
+
+  fun Countries_B_provinces_Antwerp_cities_Antwerp : Ind City ;
+
+  fun Countries_B_provinces_Brabant : Ind Province ;
+
+  fun Countries_B_provinces_Brabant_cities_Brussels : Ind City ;
+
+  fun Countries_B_provinces_EastFlanders : Ind Province ;
+
+  fun Countries_B_provinces_EastFlanders_cities_Ghent : Ind City ;
+
+  fun Countries_B_provinces_Hainaut : Ind Province ;
+
+  fun Countries_B_provinces_Hainaut_cities_Charleroi : Ind City ;
+
+  fun Countries_B_provinces_Hainaut_cities_Mons : Ind City ;
+
+  fun Countries_B_provinces_Liege : Ind Province ;
+
+  fun Countries_B_provinces_Liege_cities_Liege : Ind City ;
+
+  fun Countries_B_provinces_Limburg : Ind Province ;
+
+  fun Countries_B_provinces_Limburg_cities_Hasselt : Ind City ;
+
+  fun Countries_B_provinces_Luxembourg : Ind Province ;
+
+  fun Countries_B_provinces_Luxembourg_cities_Arlon : Ind City ;
+
+  fun Countries_B_provinces_Namur : Ind Province ;
+
+  fun Countries_B_provinces_Namur_cities_Namur : Ind City ;
+
+  fun Countries_B_provinces_WestFlanders : Ind Province ;
+
+  fun Countries_B_provinces_WestFlanders_cities_Brugge : Ind City ;
+
+  fun Countries_CAM_provinces_Adamaoua : Ind Province ;
+
+  fun Countries_CAM_provinces_Adamaoua_cities_Ngaoundere : Ind City ;
+
+  fun Countries_CAM_provinces_Centre : Ind Province ;
+
+  fun Countries_CAM_provinces_Centre_cities_Yaounde : Ind City ;
+
+  fun Countries_CAM_provinces_Cote : Ind Province ;
+
+  fun Countries_CAM_provinces_Cote_cities_Douala : Ind City ;
+
+  fun Countries_CAM_provinces_Est : Ind Province ;
+
+  fun Countries_CAM_provinces_Est_cities_Bertoua : Ind City ;
+
+  fun Countries_CAM_provinces_Nord : Ind Province ;
+
+  fun Countries_CAM_provinces_Nord_cities_Garoua : Ind City ;
+
+  fun Countries_CAM_provinces_Nordextreme : Ind Province ;
+
+  fun Countries_CAM_provinces_Nordextreme_cities_Maroua : Ind City ;
+
+  fun Countries_CAM_provinces_Nordoueste : Ind Province ;
+
+  fun Countries_CAM_provinces_Nordoueste_cities_Bamenda : Ind City ;
+
+  fun Countries_CAM_provinces_Ouest : Ind Province ;
+
+  fun Countries_CAM_provinces_Ouest_cities_Bafoussam : Ind City ;
+
+  fun Countries_CAM_provinces_Sud : Ind Province ;
+
+  fun Countries_CAM_provinces_Sud_cities_Ebolowa : Ind City ;
+
+  fun Countries_CAM_provinces_Sudoueste : Ind Province ;
+
+  fun Countries_CAM_provinces_Sudoueste_cities_Buea : Ind City ;
+
+  fun Countries_CDN_cities_Surrey : Ind City ;
+
+  fun Countries_CDN_provinces_Alberta : Ind Province ;
+
+  fun Countries_CDN_provinces_Alberta_cities_Calgary : Ind City ;
+
+  fun Countries_CDN_provinces_Alberta_cities_Edmonton : Ind City ;
+
+  fun Countries_CDN_provinces_BritishColumbia : Ind Province ;
+
+  fun Countries_CDN_provinces_BritishColumbia_cities_Burnaby : Ind City ;
+
+  fun Countries_CDN_provinces_BritishColumbia_cities_Vancouver : Ind City ;
+
+  fun Countries_CDN_provinces_BritishColumbia_cities_Victoria : Ind City ;
+
+  fun Countries_CDN_provinces_Manitoba : Ind Province ;
+
+  fun Countries_CDN_provinces_Manitoba_cities_Winnipeg : Ind City ;
+
+  fun Countries_CDN_provinces_NewBrunswick : Ind Province ;
+
+  fun Countries_CDN_provinces_NewBrunswick_cities_Fredericton : Ind City ;
+
+  fun Countries_CDN_provinces_Newfoundland : Ind Province ;
+
+  fun Countries_CDN_provinces_Newfoundland_cities_SaintJohns : Ind City ;
+
+  fun Countries_CDN_provinces_NorthwestTerritories : Ind Province ;
+
+  fun Countries_CDN_provinces_NorthwestTerritories_cities_Yellowknife : Ind City ;
+
+  fun Countries_CDN_provinces_NovaScotia : Ind Province ;
+
+  fun Countries_CDN_provinces_NovaScotia_cities_Halifax : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario : Ind Province ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Brampton : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Burlington : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_EastYork : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Etobicoke : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Glouchester : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Hamilton : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Kitchener : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_London : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Markham : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Mississauga : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Nepean : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_NorthYork : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Oshawa : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Ottawa : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_SaintCatharines : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Scarborough : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_ThunderBay : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Toronto : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Vaughan : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_Windsor : Ind City ;
+
+  fun Countries_CDN_provinces_Ontario_cities_York : Ind City ;
+
+  fun Countries_CDN_provinces_PrinceEdwardIsland : Ind Province ;
+
+  fun Countries_CDN_provinces_PrinceEdwardIsland_cities_Charlottetown : Ind City ;
+
+  fun Countries_CDN_provinces_Quebec : Ind Province ;
+
+  fun Countries_CDN_provinces_Quebec_cities_Laval : Ind City ;
+
+  fun Countries_CDN_provinces_Quebec_cities_Longueuil : Ind City ;
+
+  fun Countries_CDN_provinces_Quebec_cities_Montreal : Ind City ;
+
+  fun Countries_CDN_provinces_Quebec_cities_Quebec : Ind City ;
+
+  fun Countries_CDN_provinces_Quebec_cities_Richmond : Ind City ;
+
+  fun Countries_CDN_provinces_Saskatchewan : Ind Province ;
+
+  fun Countries_CDN_provinces_Saskatchewan_cities_Regina : Ind City ;
+
+  fun Countries_CDN_provinces_Saskatchewan_cities_Saskatoon : Ind City ;
+
+  fun Countries_CDN_provinces_YukonTerritory : Ind Province ;
+
+  fun Countries_CDN_provinces_YukonTerritory_cities_Whitehorse : Ind City ;
+
+  fun Countries_CH_provinces_AG : Ind Province ;
+
+  fun Countries_CH_provinces_AG_cities_Aarau : Ind City ;
+
+  fun Countries_CH_provinces_AI : Ind Province ;
+
+  fun Countries_CH_provinces_AI_cities_Appenzell : Ind City ;
+
+  fun Countries_CH_provinces_AR : Ind Province ;
+
+  fun Countries_CH_provinces_AR_cities_Herisau : Ind City ;
+
+  fun Countries_CH_provinces_BE : Ind Province ;
+
+  fun Countries_CH_provinces_BE_cities_Bern : Ind City ;
+
+  fun Countries_CH_provinces_BE_cities_Biel : Ind City ;
+
+  fun Countries_CH_provinces_BL : Ind Province ;
+
+  fun Countries_CH_provinces_BL_cities_Liestal : Ind City ;
+
+  fun Countries_CH_provinces_BS : Ind Province ;
+
+  fun Countries_CH_provinces_BS_cities_Basel : Ind City ;
+
+  fun Countries_CH_provinces_FR : Ind Province ;
+
+  fun Countries_CH_provinces_FR_cities_Fribourg : Ind City ;
+
+  fun Countries_CH_provinces_GE : Ind Province ;
+
+  fun Countries_CH_provinces_GE_cities_Geneva : Ind City ;
+
+  fun Countries_CH_provinces_GL : Ind Province ;
+
+  fun Countries_CH_provinces_GL_cities_Glarus : Ind City ;
+
+  fun Countries_CH_provinces_GR : Ind Province ;
+
+  fun Countries_CH_provinces_GR_cities_Chur : Ind City ;
+
+  fun Countries_CH_provinces_JU : Ind Province ;
+
+  fun Countries_CH_provinces_JU_cities_Delemont : Ind City ;
+
+  fun Countries_CH_provinces_LU : Ind Province ;
+
+  fun Countries_CH_provinces_LU_cities_Luzern : Ind City ;
+
+  fun Countries_CH_provinces_NE : Ind Province ;
+
+  fun Countries_CH_provinces_NE_cities_Neuchatel : Ind City ;
+
+  fun Countries_CH_provinces_NW : Ind Province ;
+
+  fun Countries_CH_provinces_NW_cities_Stans : Ind City ;
+
+  fun Countries_CH_provinces_OW : Ind Province ;
+
+  fun Countries_CH_provinces_OW_cities_Sarnen : Ind City ;
+
+  fun Countries_CH_provinces_SG : Ind Province ;
+
+  fun Countries_CH_provinces_SG_cities_SanktGallen : Ind City ;
+
+  fun Countries_CH_provinces_SH : Ind Province ;
+
+  fun Countries_CH_provinces_SH_cities_Schaffhausen : Ind City ;
+
+  fun Countries_CH_provinces_SO : Ind Province ;
+
+  fun Countries_CH_provinces_SO_cities_Solothurn : Ind City ;
+
+  fun Countries_CH_provinces_SZ : Ind Province ;
+
+  fun Countries_CH_provinces_SZ_cities_Schwyz : Ind City ;
+
+  fun Countries_CH_provinces_TG : Ind Province ;
+
+  fun Countries_CH_provinces_TG_cities_Frauenfeld : Ind City ;
+
+  fun Countries_CH_provinces_TI : Ind Province ;
+
+  fun Countries_CH_provinces_TI_cities_Bellinzona : Ind City ;
+
+  fun Countries_CH_provinces_UR : Ind Province ;
+
+  fun Countries_CH_provinces_UR_cities_Altdorf : Ind City ;
+
+  fun Countries_CH_provinces_VD : Ind Province ;
+
+  fun Countries_CH_provinces_VD_cities_Lausanne : Ind City ;
+
+  fun Countries_CH_provinces_VS : Ind Province ;
+
+  fun Countries_CH_provinces_VS_cities_Sion : Ind City ;
+
+  fun Countries_CH_provinces_ZG : Ind Province ;
+
+  fun Countries_CH_provinces_ZG_cities_Zug : Ind City ;
+
+  fun Countries_CH_provinces_ZH : Ind Province ;
+
+  fun Countries_CH_provinces_ZH_cities_Winterthur : Ind City ;
+
+  fun Countries_CH_provinces_ZH_cities_Zurich : Ind City ;
+
+  fun Countries_CI_cities_Abidjan : Ind City ;
+
+  fun Countries_CI_cities_Yamoussoukro : Ind City ;
+
+  fun Countries_CL_cities_Colombo : Ind City ;
+
+  fun Countries_COM_cities_Moroni : Ind City ;
+
+  fun Countries_CO_provinces_Amazonas : Ind Province ;
+
+  fun Countries_CO_provinces_Amazonas_cities_Leticia : Ind City ;
+
+  fun Countries_CO_provinces_Antioquia : Ind Province ;
+
+  fun Countries_CO_provinces_Antioquia_cities_Bello : Ind City ;
+
+  fun Countries_CO_provinces_Antioquia_cities_Envigado : Ind City ;
+
+  fun Countries_CO_provinces_Antioquia_cities_Itagui : Ind City ;
+
+  fun Countries_CO_provinces_Antioquia_cities_Medellin : Ind City ;
+
+  fun Countries_CO_provinces_Antioquia_cities_Turbo : Ind City ;
+
+  fun Countries_CO_provinces_Arauca : Ind Province ;
+
+  fun Countries_CO_provinces_Arauca_cities_Arauca : Ind City ;
+
+  fun Countries_CO_provinces_Atlantico : Ind Province ;
+
+  fun Countries_CO_provinces_Atlantico_cities_Barranquilla : Ind City ;
+
+  fun Countries_CO_provinces_Atlantico_cities_Malambo : Ind City ;
+
+  fun Countries_CO_provinces_Atlantico_cities_Soledad : Ind City ;
+
+  fun Countries_CO_provinces_Bolivar : Ind Province ;
+
+  fun Countries_CO_provinces_Bolivar_cities_Cartagena : Ind City ;
+
+  fun Countries_CO_provinces_Bolivar_cities_Mangangue : Ind City ;
+
+  fun Countries_CO_provinces_Boyaca : Ind Province ;
+
+  fun Countries_CO_provinces_Boyaca_cities_Tunja : Ind City ;
+
+  fun Countries_CO_provinces_Caldas : Ind Province ;
+
+  fun Countries_CO_provinces_Caldas_cities_Manizales : Ind City ;
+
+  fun Countries_CO_provinces_Caqueta : Ind Province ;
+
+  fun Countries_CO_provinces_Caqueta_cities_Florencia : Ind City ;
+
+  fun Countries_CO_provinces_Casanare : Ind Province ;
+
+  fun Countries_CO_provinces_Casanare_cities_Yopal : Ind City ;
+
+  fun Countries_CO_provinces_Cauca : Ind Province ;
+
+  fun Countries_CO_provinces_Cauca_cities_Popayan : Ind City ;
+
+  fun Countries_CO_provinces_Cesar : Ind Province ;
+
+  fun Countries_CO_provinces_Cesar_cities_Valledupar : Ind City ;
+
+  fun Countries_CO_provinces_Choco : Ind Province ;
+
+  fun Countries_CO_provinces_Choco_cities_Quibdo : Ind City ;
+
+  fun Countries_CO_provinces_Cordoba : Ind Province ;
+
+  fun Countries_CO_provinces_Cordoba_cities_Monteria : Ind City ;
+
+  fun Countries_CO_provinces_Cundinamarca : Ind Province ;
+
+  fun Countries_CO_provinces_Cundinamarca_cities_Soacha : Ind City ;
+
+  fun Countries_CO_provinces_Guainia : Ind Province ;
+
+  fun Countries_CO_provinces_Guainia_cities_PuertoInirida : Ind City ;
+
+  fun Countries_CO_provinces_Guajira_La : Ind Province ;
+
+  fun Countries_CO_provinces_Guajira_La_cities_Cienaga : Ind City ;
+
+  fun Countries_CO_provinces_Guajira_La_cities_Riohacha : Ind City ;
+
+  fun Countries_CO_provinces_Guaviare : Ind Province ;
+
+  fun Countries_CO_provinces_Guaviare_cities_SanJosedelGuaviare : Ind City ;
+
+  fun Countries_CO_provinces_Huila : Ind Province ;
+
+  fun Countries_CO_provinces_Huila_cities_Neiva : Ind City ;
+
+  fun Countries_CO_provinces_Magdalena : Ind Province ;
+
+  fun Countries_CO_provinces_Magdalena_cities_SantaMarta : Ind City ;
+
+  fun Countries_CO_provinces_Meta : Ind Province ;
+
+  fun Countries_CO_provinces_Meta_cities_Villavicencio : Ind City ;
+
+  fun Countries_CO_provinces_Narino : Ind Province ;
+
+  fun Countries_CO_provinces_Narino_cities_Pasto : Ind City ;
+
+  fun Countries_CO_provinces_Narino_cities_Tumaco : Ind City ;
+
+  fun Countries_CO_provinces_NortedeSantander : Ind Province ;
+
+  fun Countries_CO_provinces_NortedeSantander_cities_Cucuta : Ind City ;
+
+  fun Countries_CO_provinces_Putumayo : Ind Province ;
+
+  fun Countries_CO_provinces_Putumayo_cities_Mocoa : Ind City ;
+
+  fun Countries_CO_provinces_Quindio : Ind Province ;
+
+  fun Countries_CO_provinces_Quindio_cities_Armenia : Ind City ;
+
+  fun Countries_CO_provinces_Risaralda : Ind Province ;
+
+  fun Countries_CO_provinces_Risaralda_cities_Dosquebradas : Ind City ;
+
+  fun Countries_CO_provinces_Risaralda_cities_Pereira : Ind City ;
+
+  fun Countries_CO_provinces_SanAndresyProvidencia : Ind Province ;
+
+  fun Countries_CO_provinces_SanAndresyProvidencia_cities_SanAndres : Ind City ;
+
+  fun Countries_CO_provinces_SantaFedeBogota_DC : Ind Province ;
+
+  fun Countries_CO_provinces_SantaFedeBogota_DC_cities_Bogota : Ind City ;
+
+  fun Countries_CO_provinces_SantanderdelSur : Ind Province ;
+
+  fun Countries_CO_provinces_SantanderdelSur_cities_Barrancabermeja : Ind City ;
+
+  fun Countries_CO_provinces_SantanderdelSur_cities_Bucaramanga : Ind City ;
+
+  fun Countries_CO_provinces_SantanderdelSur_cities_Floridablanca : Ind City ;
+
+  fun Countries_CO_provinces_Sucre : Ind Province ;
+
+  fun Countries_CO_provinces_Sucre_cities_Sincelejo : Ind City ;
+
+  fun Countries_CO_provinces_Tolima : Ind Province ;
+
+  fun Countries_CO_provinces_Tolima_cities_Ibague : Ind City ;
+
+  fun Countries_CO_provinces_ValledeCauca : Ind Province ;
+
+  fun Countries_CO_provinces_ValledeCauca_cities_Buenaventura : Ind City ;
+
+  fun Countries_CO_provinces_ValledeCauca_cities_Cali : Ind City ;
+
+  fun Countries_CO_provinces_ValledeCauca_cities_Cartago : Ind City ;
+
+  fun Countries_CO_provinces_ValledeCauca_cities_Palmira : Ind City ;
+
+  fun Countries_CO_provinces_ValledeCauca_cities_Tulua : Ind City ;
+
+  fun Countries_CO_provinces_Vaupes : Ind Province ;
+
+  fun Countries_CO_provinces_Vaupes_cities_Mitu : Ind City ;
+
+  fun Countries_CO_provinces_Vichada : Ind Province ;
+
+  fun Countries_CO_provinces_Vichada_cities_PuertoCarreno : Ind City ;
+
+  fun Countries_CR_provinces_Alajuela : Ind Province ;
+
+  fun Countries_CR_provinces_Alajuela_cities_Alajuela : Ind City ;
+
+  fun Countries_CR_provinces_Cartago : Ind Province ;
+
+  fun Countries_CR_provinces_Cartago_cities_Cartago : Ind City ;
+
+  fun Countries_CR_provinces_Guanacaste : Ind Province ;
+
+  fun Countries_CR_provinces_Guanacaste_cities_Liberia : Ind City ;
+
+  fun Countries_CR_provinces_Heredia : Ind Province ;
+
+  fun Countries_CR_provinces_Heredia_cities_Heredia : Ind City ;
+
+  fun Countries_CR_provinces_Limon : Ind Province ;
+
+  fun Countries_CR_provinces_Limon_cities_Limon : Ind City ;
+
+  fun Countries_CR_provinces_Punarenas : Ind Province ;
+
+  fun Countries_CR_provinces_Punarenas_cities_Puntarenas : Ind City ;
+
+  fun Countries_CR_provinces_SanJose : Ind Province ;
+
+  fun Countries_CR_provinces_SanJose_cities_SanJose : Ind City ;
+
+  fun Countries_CV_cities_Praia : Ind City ;
+
+  fun Countries_CY_cities_Nicosia : Ind City ;
+
+  fun Countries_CZ_provinces_Jihocesky : Ind Province ;
+
+  fun Countries_CZ_provinces_Jihocesky_cities_CeskeBudejovice : Ind City ;
+
+  fun Countries_CZ_provinces_Jihomoravsky : Ind Province ;
+
+  fun Countries_CZ_provinces_Jihomoravsky_cities_Brno : Ind City ;
+
+  fun Countries_CZ_provinces_Jihomoravsky_cities_Zlin : Ind City ;
+
+  fun Countries_CZ_provinces_Praha : Ind Province ;
+
+  fun Countries_CZ_provinces_Praha_cities_Prague : Ind City ;
+
+  fun Countries_CZ_provinces_Severocesky : Ind Province ;
+
+  fun Countries_CZ_provinces_Severocesky_cities_Liberec : Ind City ;
+
+  fun Countries_CZ_provinces_Severocesky_cities_UstinadLabem : Ind City ;
+
+  fun Countries_CZ_provinces_Severomoravsky : Ind Province ;
+
+  fun Countries_CZ_provinces_Severomoravsky_cities_Olomouc : Ind City ;
+
+  fun Countries_CZ_provinces_Severomoravsky_cities_Ostrava : Ind City ;
+
+  fun Countries_CZ_provinces_Vychodocesky : Ind Province ;
+
+  fun Countries_CZ_provinces_Vychodocesky_cities_HradecKralove : Ind City ;
+
+  fun Countries_CZ_provinces_Vychodocesky_cities_Pardubice : Ind City ;
+
+  fun Countries_CZ_provinces_Zapadocesky : Ind Province ;
+
+  fun Countries_CZ_provinces_Zapadocesky_cities_Plzen : Ind City ;
+
+  fun Countries_C_provinces_Camaguey : Ind Province ;
+
+  fun Countries_C_provinces_Camaguey_cities_Camaguey : Ind City ;
+
+  fun Countries_C_provinces_CiegodeAvila : Ind Province ;
+
+  fun Countries_C_provinces_CiegodeAvila_cities_CiegodeAvila : Ind City ;
+
+  fun Countries_C_provinces_Cienfuegos : Ind Province ;
+
+  fun Countries_C_provinces_Cienfuegos_cities_Cienfuegos : Ind City ;
+
+  fun Countries_C_provinces_CiudaddelaHabana : Ind Province ;
+
+  fun Countries_C_provinces_CiudaddelaHabana_cities_Havana : Ind City ;
+
+  fun Countries_C_provinces_Granma : Ind Province ;
+
+  fun Countries_C_provinces_Granma_cities_Bayamo : Ind City ;
+
+  fun Countries_C_provinces_Granma_cities_Manzanillo : Ind City ;
+
+  fun Countries_C_provinces_Guantanamo : Ind Province ;
+
+  fun Countries_C_provinces_Guantanamo_cities_Guantanamo : Ind City ;
+
+  fun Countries_C_provinces_Holguin : Ind Province ;
+
+  fun Countries_C_provinces_Holguin_cities_Holguin : Ind City ;
+
+  fun Countries_C_provinces_IsladelaJuventud : Ind Province ;
+
+  fun Countries_C_provinces_IsladelaJuventud_cities_NuevaGerona : Ind City ;
+
+  fun Countries_C_provinces_LaHabana : Ind Province ;
+
+  fun Countries_C_provinces_LasTunas : Ind Province ;
+
+  fun Countries_C_provinces_LasTunas_cities_VictoriadelasTunas : Ind City ;
+
+  fun Countries_C_provinces_Matanzas : Ind Province ;
+
+  fun Countries_C_provinces_Matanzas_cities_Matanzas : Ind City ;
+
+  fun Countries_C_provinces_PinardelRio : Ind Province ;
+
+  fun Countries_C_provinces_PinardelRio_cities_PinardelRio : Ind City ;
+
+  fun Countries_C_provinces_SanctiSpiritus : Ind Province ;
+
+  fun Countries_C_provinces_SanctiSpiritus_cities_SanctiSpiritus : Ind City ;
+
+  fun Countries_C_provinces_SantiagodeCuba : Ind Province ;
+
+  fun Countries_C_provinces_SantiagodeCuba_cities_SantiagodeCuba : Ind City ;
+
+  fun Countries_C_provinces_VillaClara : Ind Province ;
+
+  fun Countries_C_provinces_VillaClara_cities_SantaClara : Ind City ;
+
+  fun Countries_DJI_cities_Djibouti : Ind City ;
+
+  fun Countries_DK_cities_Aalborg : Ind City ;
+
+  fun Countries_DK_cities_Aarhus : Ind City ;
+
+  fun Countries_DK_cities_Copenhagen : Ind City ;
+
+  fun Countries_DK_cities_Esbjerg : Ind City ;
+
+  fun Countries_DK_cities_Odense : Ind City ;
+
+  fun Countries_DK_cities_Randers : Ind City ;
+
+  fun Countries_DOM_cities_SantoDomingo : Ind City ;
+
+  fun Countries_DZ_cities_Algiers : Ind City ;
+
+  fun Countries_DZ_cities_Annaba : Ind City ;
+
+  fun Countries_DZ_cities_Batna : Ind City ;
+
+  fun Countries_DZ_cities_Bechar : Ind City ;
+
+  fun Countries_DZ_cities_Bejaia : Ind City ;
+
+  fun Countries_DZ_cities_Blida : Ind City ;
+
+  fun Countries_DZ_cities_Constantine : Ind City ;
+
+  fun Countries_DZ_cities_Mostaganem : Ind City ;
+
+  fun Countries_DZ_cities_Oran : Ind City ;
+
+  fun Countries_DZ_cities_Setif : Ind City ;
+
+  fun Countries_DZ_cities_SidibelAbbes : Ind City ;
+
+  fun Countries_DZ_cities_Skikda : Ind City ;
+
+  fun Countries_DZ_cities_Tebessa : Ind City ;
+
+  fun Countries_DZ_cities_Tlemcen : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg : Ind Province ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_FreiburgimBreisgau : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Heidelberg : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Heilbronn : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Karlsruhe : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Mannheim : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Pforzheim : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Reutlingen : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Stuttgart : Ind City ;
+
+  fun Countries_D_provinces_BadenWurttemberg_cities_Ulm : Ind City ;
+
+  fun Countries_D_provinces_Bayern : Ind Province ;
+
+  fun Countries_D_provinces_Bayern_cities_Augsburg : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Erlangen : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Furth : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Ingolstadt : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Munich : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Nurnberg : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Regensburg : Ind City ;
+
+  fun Countries_D_provinces_Bayern_cities_Wurzburg : Ind City ;
+
+  fun Countries_D_provinces_Berlin : Ind Province ;
+
+  fun Countries_D_provinces_Berlin_cities_Berlin : Ind City ;
+
+  fun Countries_D_provinces_Brandenburg : Ind Province ;
+
+  fun Countries_D_provinces_Brandenburg_cities_Cottbus : Ind City ;
+
+  fun Countries_D_provinces_Brandenburg_cities_Potsdam : Ind City ;
+
+  fun Countries_D_provinces_Bremen : Ind Province ;
+
+  fun Countries_D_provinces_Bremen_cities_Bremen : Ind City ;
+
+  fun Countries_D_provinces_Bremen_cities_Bremerhaven : Ind City ;
+
+  fun Countries_D_provinces_Hamburg : Ind Province ;
+
+  fun Countries_D_provinces_Hamburg_cities_Hamburg : Ind City ;
+
+  fun Countries_D_provinces_Hessen : Ind Province ;
+
+  fun Countries_D_provinces_Hessen_cities_Darmstadt : Ind City ;
+
+  fun Countries_D_provinces_Hessen_cities_FrankfurtamMain : Ind City ;
+
+  fun Countries_D_provinces_Hessen_cities_Kassel : Ind City ;
+
+  fun Countries_D_provinces_Hessen_cities_OffenbachamMain : Ind City ;
+
+  fun Countries_D_provinces_Hessen_cities_Wiesbaden : Ind City ;
+
+  fun Countries_D_provinces_MecklenburgVorpommern : Ind Province ;
+
+  fun Countries_D_provinces_MecklenburgVorpommern_cities_Rostock : Ind City ;
+
+  fun Countries_D_provinces_MecklenburgVorpommern_cities_Schwerin : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen : Ind Province ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Braunschweig : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Gottingen : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Hannover : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Hildesheim : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Oldenburg : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Osnabruck : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Salzgitter : Ind City ;
+
+  fun Countries_D_provinces_Niedersachsen_cities_Wolfsburg : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen : Ind Province ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Aachen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_BergischGladbach : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Bielefeld : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Bochum : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Bonn : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Bottrop : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Dortmund : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Duisburg : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Dusseldorf : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Essen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Gelsenkirchen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Hagen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Hamm : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Herne : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Koln : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Krefeld : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Leverkusen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Moers : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Monchengladbach : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_MulheimanderRuhr : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Munster : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Neuss : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Oberhausen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Paderborn : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Recklinghausen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Remscheid : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Siegen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Solingen : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Witten : Ind City ;
+
+  fun Countries_D_provinces_NordrheinWestfalen_cities_Wuppertal : Ind City ;
+
+  fun Countries_D_provinces_RheinlandPfalz : Ind Province ;
+
+  fun Countries_D_provinces_RheinlandPfalz_cities_Kaiserslautern : Ind City ;
+
+  fun Countries_D_provinces_RheinlandPfalz_cities_Koblenz : Ind City ;
+
+  fun Countries_D_provinces_RheinlandPfalz_cities_Ludwigshafen : Ind City ;
+
+  fun Countries_D_provinces_RheinlandPfalz_cities_Mainz : Ind City ;
+
+  fun Countries_D_provinces_Saarland : Ind Province ;
+
+  fun Countries_D_provinces_Saarland_cities_Saarbrucken : Ind City ;
+
+  fun Countries_D_provinces_Sachsen : Ind Province ;
+
+  fun Countries_D_provinces_SachsenAnhalt : Ind Province ;
+
+  fun Countries_D_provinces_SachsenAnhalt_cities_Halle : Ind City ;
+
+  fun Countries_D_provinces_SachsenAnhalt_cities_Magdeburg : Ind City ;
+
+  fun Countries_D_provinces_Sachsen_cities_Chemnitz : Ind City ;
+
+  fun Countries_D_provinces_Sachsen_cities_Dresden : Ind City ;
+
+  fun Countries_D_provinces_Sachsen_cities_Leipzig : Ind City ;
+
+  fun Countries_D_provinces_Sachsen_cities_Zwickau : Ind City ;
+
+  fun Countries_D_provinces_SchleswigHolstein : Ind Province ;
+
+  fun Countries_D_provinces_SchleswigHolstein_cities_Kiel : Ind City ;
+
+  fun Countries_D_provinces_SchleswigHolstein_cities_Lubeck : Ind City ;
+
+  fun Countries_D_provinces_Thuringen : Ind Province ;
+
+  fun Countries_D_provinces_Thuringen_cities_Erfurt : Ind City ;
+
+  fun Countries_D_provinces_Thuringen_cities_Gera : Ind City ;
+
+  fun Countries_D_provinces_Thuringen_cities_Jena : Ind City ;
+
+  fun Countries_EAK_provinces_Central : Ind Province ;
+
+  fun Countries_EAK_provinces_Central_cities_Nyeri : Ind City ;
+
+  fun Countries_EAK_provinces_Central_cities_Thika : Ind City ;
+
+  fun Countries_EAK_provinces_Coast : Ind Province ;
+
+  fun Countries_EAK_provinces_Coast_cities_Malindi : Ind City ;
+
+  fun Countries_EAK_provinces_Coast_cities_Mombasa : Ind City ;
+
+  fun Countries_EAK_provinces_Eastern : Ind Province ;
+
+  fun Countries_EAK_provinces_Eastern_cities_Embu : Ind City ;
+
+  fun Countries_EAK_provinces_Eastern_cities_Machakos : Ind City ;
+
+  fun Countries_EAK_provinces_Eastern_cities_Meru : Ind City ;
+
+  fun Countries_EAK_provinces_Nairobi : Ind Province ;
+
+  fun Countries_EAK_provinces_Nairobi_cities_Nairobi : Ind City ;
+
+  fun Countries_EAK_provinces_NorthEastern : Ind Province ;
+
+  fun Countries_EAK_provinces_NorthEastern_cities_Garissa : Ind City ;
+
+  fun Countries_EAK_provinces_Nyanza : Ind Province ;
+
+  fun Countries_EAK_provinces_Nyanza_cities_Kisii : Ind City ;
+
+  fun Countries_EAK_provinces_Nyanza_cities_Kisumu : Ind City ;
+
+  fun Countries_EAK_provinces_RiftValley : Ind Province ;
+
+  fun Countries_EAK_provinces_RiftValley_cities_Eldoret : Ind City ;
+
+  fun Countries_EAK_provinces_RiftValley_cities_Kericho : Ind City ;
+
+  fun Countries_EAK_provinces_RiftValley_cities_Kitale : Ind City ;
+
+  fun Countries_EAK_provinces_RiftValley_cities_Nakuru : Ind City ;
+
+  fun Countries_EAK_provinces_Western : Ind Province ;
+
+  fun Countries_EAK_provinces_Western_cities_Kakamega : Ind City ;
+
+  fun Countries_EAT_provinces_Arusha : Ind Province ;
+
+  fun Countries_EAT_provinces_Arusha_cities_Arusha : Ind City ;
+
+  fun Countries_EAT_provinces_Daressalam : Ind Province ;
+
+  fun Countries_EAT_provinces_Daressalam_cities_DaresSalaam : Ind City ;
+
+  fun Countries_EAT_provinces_Dodoma : Ind Province ;
+
+  fun Countries_EAT_provinces_Dodoma_cities_Dodoma : Ind City ;
+
+  fun Countries_EAT_provinces_Iringa : Ind Province ;
+
+  fun Countries_EAT_provinces_Iringa_cities_Iringa : Ind City ;
+
+  fun Countries_EAT_provinces_Kagera : Ind Province ;
+
+  fun Countries_EAT_provinces_Kagera_cities_Bukoba : Ind City ;
+
+  fun Countries_EAT_provinces_KaskaziniPemba : Ind Province ;
+
+  fun Countries_EAT_provinces_KaskaziniPemba_cities_Wete : Ind City ;
+
+  fun Countries_EAT_provinces_KaskaziniUjunga : Ind Province ;
+
+  fun Countries_EAT_provinces_KaskaziniUjunga_cities_Mkokotoni : Ind City ;
+
+  fun Countries_EAT_provinces_Kigoma : Ind Province ;
+
+  fun Countries_EAT_provinces_Kigoma_cities_KigomaUjiji : Ind City ;
+
+  fun Countries_EAT_provinces_Kilimanjaro : Ind Province ;
+
+  fun Countries_EAT_provinces_Kilimanjaro_cities_Moshi : Ind City ;
+
+  fun Countries_EAT_provinces_KusiniPemba : Ind Province ;
+
+  fun Countries_EAT_provinces_KusiniPemba_cities_ChakeCahke : Ind City ;
+
+  fun Countries_EAT_provinces_KusiniUjunga : Ind Province ;
+
+  fun Countries_EAT_provinces_KusiniUjunga_cities_Koani : Ind City ;
+
+  fun Countries_EAT_provinces_Lindi : Ind Province ;
+
+  fun Countries_EAT_provinces_Lindi_cities_Lindi : Ind City ;
+
+  fun Countries_EAT_provinces_Mara : Ind Province ;
+
+  fun Countries_EAT_provinces_Mara_cities_Musoma : Ind City ;
+
+  fun Countries_EAT_provinces_Mbeya : Ind Province ;
+
+  fun Countries_EAT_provinces_Mbeya_cities_Mbeya : Ind City ;
+
+  fun Countries_EAT_provinces_MjiniMagharibi : Ind Province ;
+
+  fun Countries_EAT_provinces_MjiniMagharibi_cities_Zanzibar : Ind City ;
+
+  fun Countries_EAT_provinces_Morogoro : Ind Province ;
+
+  fun Countries_EAT_provinces_Morogoro_cities_Morogoro : Ind City ;
+
+  fun Countries_EAT_provinces_Mtwara : Ind Province ;
+
+  fun Countries_EAT_provinces_Mtwara_cities_MtwaraMikandani : Ind City ;
+
+  fun Countries_EAT_provinces_Mwanza : Ind Province ;
+
+  fun Countries_EAT_provinces_Mwanza_cities_Mwanza : Ind City ;
+
+  fun Countries_EAT_provinces_Pwani : Ind Province ;
+
+  fun Countries_EAT_provinces_Rukwa : Ind Province ;
+
+  fun Countries_EAT_provinces_Rukwa_cities_Sumbawanga : Ind City ;
+
+  fun Countries_EAT_provinces_Ruvuma : Ind Province ;
+
+  fun Countries_EAT_provinces_Ruvuma_cities_Songea : Ind City ;
+
+  fun Countries_EAT_provinces_Shinyanga : Ind Province ;
+
+  fun Countries_EAT_provinces_Shinyanga_cities_Shinyanga : Ind City ;
+
+  fun Countries_EAT_provinces_Singida : Ind Province ;
+
+  fun Countries_EAT_provinces_Singida_cities_Singida : Ind City ;
+
+  fun Countries_EAT_provinces_Tabora : Ind Province ;
+
+  fun Countries_EAT_provinces_Tabora_cities_Tabora : Ind City ;
+
+  fun Countries_EAT_provinces_Tanga : Ind Province ;
+
+  fun Countries_EAT_provinces_Tanga_cities_Tanga : Ind City ;
+
+  fun Countries_EAU_cities_Kampala : Ind City ;
+
+  fun Countries_EC_cities_Guayaquil : Ind City ;
+
+  fun Countries_EC_cities_Quito : Ind City ;
+
+  fun Countries_ER_cities_Asmara : Ind City ;
+
+  fun Countries_ES_cities_Apopa : Ind City ;
+
+  fun Countries_ES_cities_Delgado : Ind City ;
+
+  fun Countries_ES_cities_Mejicanos : Ind City ;
+
+  fun Countries_ES_cities_Soyapango : Ind City ;
+
+  fun Countries_ES_provinces_Ahuachapan : Ind Province ;
+
+  fun Countries_ES_provinces_Ahuachapan_cities_Ahuachapan : Ind City ;
+
+  fun Countries_ES_provinces_Cabanas : Ind Province ;
+
+  fun Countries_ES_provinces_Cabanas_cities_Sensuntepeque : Ind City ;
+
+  fun Countries_ES_provinces_Chalatenango : Ind Province ;
+
+  fun Countries_ES_provinces_Chalatenango_cities_Chalatenango : Ind City ;
+
+  fun Countries_ES_provinces_Cuscatlan : Ind Province ;
+
+  fun Countries_ES_provinces_Cuscatlan_cities_Cojutepeque : Ind City ;
+
+  fun Countries_ES_provinces_LaLibertad : Ind Province ;
+
+  fun Countries_ES_provinces_LaLibertad_cities_NuevaSanSalvador : Ind City ;
+
+  fun Countries_ES_provinces_LaPaz : Ind Province ;
+
+  fun Countries_ES_provinces_LaPaz_cities_Zacatecoluca : Ind City ;
+
+  fun Countries_ES_provinces_LaUnion : Ind Province ;
+
+  fun Countries_ES_provinces_LaUnion_cities_LaUnion : Ind City ;
+
+  fun Countries_ES_provinces_Morazan : Ind Province ;
+
+  fun Countries_ES_provinces_Morazan_cities_SanFranciscoGotera : Ind City ;
+
+  fun Countries_ES_provinces_SanMiguel : Ind Province ;
+
+  fun Countries_ES_provinces_SanMiguel_cities_SanMiguel : Ind City ;
+
+  fun Countries_ES_provinces_SanSalvador : Ind Province ;
+
+  fun Countries_ES_provinces_SanSalvador_cities_SanSalvador : Ind City ;
+
+  fun Countries_ES_provinces_SanVicente : Ind Province ;
+
+  fun Countries_ES_provinces_SanVicente_cities_SanVicente : Ind City ;
+
+  fun Countries_ES_provinces_SantaAna : Ind Province ;
+
+  fun Countries_ES_provinces_SantaAna_cities_SantaAna : Ind City ;
+
+  fun Countries_ES_provinces_Sonsonate : Ind Province ;
+
+  fun Countries_ES_provinces_Sonsonate_cities_Sonsonate : Ind City ;
+
+  fun Countries_ES_provinces_Usulutan : Ind Province ;
+
+  fun Countries_ES_provinces_Usulutan_cities_Usulutan : Ind City ;
+
+  fun Countries_ETH_cities_AddisAbaba : Ind City ;
+
+  fun Countries_ETH_cities_BahirDar : Ind City ;
+
+  fun Countries_ETH_cities_Debrezit : Ind City ;
+
+  fun Countries_ETH_cities_Dese : Ind City ;
+
+  fun Countries_ETH_cities_DireDawa : Ind City ;
+
+  fun Countries_ETH_cities_Gonder : Ind City ;
+
+  fun Countries_ETH_cities_Harer : Ind City ;
+
+  fun Countries_ETH_cities_Jima : Ind City ;
+
+  fun Countries_ETH_cities_Mekele : Ind City ;
+
+  fun Countries_ETH_cities_Nazret : Ind City ;
+
+  fun Countries_ET_provinces_Aswan : Ind Province ;
+
+  fun Countries_ET_provinces_Aswan_cities_Aswan : Ind City ;
+
+  fun Countries_ET_provinces_Asyut : Ind Province ;
+
+  fun Countries_ET_provinces_Asyut_cities_Asyut : Ind City ;
+
+  fun Countries_ET_provinces_BeniSuef : Ind Province ;
+
+  fun Countries_ET_provinces_BeniSuef_cities_BeniSuef : Ind City ;
+
+  fun Countries_ET_provinces_BurSaid_munic : Ind Province ;
+
+  fun Countries_ET_provinces_BurSaid_munic_cities_BurSaid : Ind City ;
+
+  fun Countries_ET_provinces_BurSaid_munic_cities_PortSaid : Ind City ;
+
+  fun Countries_ET_provinces_Dumyat : Ind Province ;
+
+  fun Countries_ET_provinces_Dumyat_cities_Dumyat : Ind City ;
+
+  fun Countries_ET_provinces_ElBahrelAhmar : Ind Province ;
+
+  fun Countries_ET_provinces_ElBahrelAhmar_cities_Hurghada : Ind City ;
+
+  fun Countries_ET_provinces_ElBuhayra : Ind Province ;
+
+  fun Countries_ET_provinces_ElBuhayra_cities_Damanhur : Ind City ;
+
+  fun Countries_ET_provinces_ElBuhayra_cities_KafrelDauwar : Ind City ;
+
+  fun Countries_ET_provinces_ElDaqahliya : Ind Province ;
+
+  fun Countries_ET_provinces_ElDaqahliya_cities_ElMansura : Ind City ;
+
+  fun Countries_ET_provinces_ElFaiyum : Ind Province ;
+
+  fun Countries_ET_provinces_ElFaiyum_cities_ElFaiyum : Ind City ;
+
+  fun Countries_ET_provinces_ElGharbiya : Ind Province ;
+
+  fun Countries_ET_provinces_ElGharbiya_cities_ElMahallaelKubra : Ind City ;
+
+  fun Countries_ET_provinces_ElGharbiya_cities_Tanta : Ind City ;
+
+  fun Countries_ET_provinces_ElGiza : Ind Province ;
+
+  fun Countries_ET_provinces_ElGiza_cities_ElGiza : Ind City ;
+
+  fun Countries_ET_provinces_ElIskandariya_munic : Ind Province ;
+
+  fun Countries_ET_provinces_ElIskandariya_munic_cities_Alexandria : Ind City ;
+
+  fun Countries_ET_provinces_ElIskandariya_munic_cities_ElIskandariya : Ind City ;
+
+  fun Countries_ET_provinces_ElMinufiya : Ind Province ;
+
+  fun Countries_ET_provinces_ElMinufiya_cities_ShibinelKom : Ind City ;
+
+  fun Countries_ET_provinces_ElMinya : Ind Province ;
+
+  fun Countries_ET_provinces_ElMinya_cities_ElMinya : Ind City ;
+
+  fun Countries_ET_provinces_ElQahira_munic : Ind Province ;
+
+  fun Countries_ET_provinces_ElQahira_munic_cities_Cairo : Ind City ;
+
+  fun Countries_ET_provinces_ElQahira_munic_cities_ElQahira : Ind City ;
+
+  fun Countries_ET_provinces_ElQahira_munic_cities_Helwan : Ind City ;
+
+  fun Countries_ET_provinces_ElQalubiya : Ind Province ;
+
+  fun Countries_ET_provinces_ElQalubiya_cities_Benha : Ind City ;
+
+  fun Countries_ET_provinces_ElQalubiya_cities_ShubraelKheima : Ind City ;
+
+  fun Countries_ET_provinces_ElSuweiz_munic : Ind Province ;
+
+  fun Countries_ET_provinces_ElSuweiz_munic_cities_ElSuweiz : Ind City ;
+
+  fun Countries_ET_provinces_ElSuweiz_munic_cities_Suez : Ind City ;
+
+  fun Countries_ET_provinces_ElWadielJadid : Ind Province ;
+
+  fun Countries_ET_provinces_ElWadielJadid_cities_ElKharga : Ind City ;
+
+  fun Countries_ET_provinces_Ismailiya : Ind Province ;
+
+  fun Countries_ET_provinces_Ismailiya_cities_Ismailiya : Ind City ;
+
+  fun Countries_ET_provinces_KafrelSheikh : Ind Province ;
+
+  fun Countries_ET_provinces_KafrelSheikh_cities_KafrelSheikh : Ind City ;
+
+  fun Countries_ET_provinces_Matruh : Ind Province ;
+
+  fun Countries_ET_provinces_Matruh_cities_MarsaMatruh : Ind City ;
+
+  fun Countries_ET_provinces_Qena : Ind Province ;
+
+  fun Countries_ET_provinces_Qena_cities_ElUqsur : Ind City ;
+
+  fun Countries_ET_provinces_Qena_cities_Qena : Ind City ;
+
+  fun Countries_ET_provinces_Sharqiya : Ind Province ;
+
+  fun Countries_ET_provinces_Sharqiya_cities_Zagazig : Ind City ;
+
+  fun Countries_ET_provinces_SinaalJanubiyah : Ind Province ;
+
+  fun Countries_ET_provinces_SinaalJanubiyah_cities_ElTur : Ind City ;
+
+  fun Countries_ET_provinces_SinaashShamaliyah : Ind Province ;
+
+  fun Countries_ET_provinces_SinaashShamaliyah_cities_ElArish : Ind City ;
+
+  fun Countries_ET_provinces_Sohag : Ind Province ;
+
+  fun Countries_ET_provinces_Sohag_cities_Sohag : Ind City ;
+
+  fun Countries_EW_cities_Tallinn : Ind City ;
+
+  fun Countries_E_provinces_Andalusia : Ind Province ;
+
+  fun Countries_E_provinces_Andalusia_cities_Algeciras : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Almeria : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Cadiz : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Cordoba : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Granada : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Huelva : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Jaen : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_JerezdelaFrontera : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Malaga : Ind City ;
+
+  fun Countries_E_provinces_Andalusia_cities_Sevilla : Ind City ;
+
+  fun Countries_E_provinces_Aragon : Ind Province ;
+
+  fun Countries_E_provinces_Aragon_cities_Zaragoza : Ind City ;
+
+  fun Countries_E_provinces_Asturias : Ind Province ;
+
+  fun Countries_E_provinces_Asturias_cities_Gijon : Ind City ;
+
+  fun Countries_E_provinces_Asturias_cities_Oviedo : Ind City ;
+
+  fun Countries_E_provinces_BalearicIslands : Ind Province ;
+
+  fun Countries_E_provinces_BalearicIslands_cities_PalmadeMallorca : Ind City ;
+
+  fun Countries_E_provinces_BasqueCountry : Ind Province ;
+
+  fun Countries_E_provinces_BasqueCountry_cities_Bilbao : Ind City ;
+
+  fun Countries_E_provinces_BasqueCountry_cities_Donostia : Ind City ;
+
+  fun Countries_E_provinces_BasqueCountry_cities_VitoriaGasteiz : Ind City ;
+
+  fun Countries_E_provinces_CanaryIslands : Ind Province ;
+
+  fun Countries_E_provinces_CanaryIslands_cities_LaLaguna : Ind City ;
+
+  fun Countries_E_provinces_CanaryIslands_cities_LasPalmasdeGranCanaria : Ind City ;
+
+  fun Countries_E_provinces_CanaryIslands_cities_SantaCruzdeTenerife : Ind City ;
+
+  fun Countries_E_provinces_Cantabria : Ind Province ;
+
+  fun Countries_E_provinces_Cantabria_cities_Santander : Ind City ;
+
+  fun Countries_E_provinces_CastileLaMancha : Ind Province ;
+
+  fun Countries_E_provinces_CastileLaMancha_cities_Toledo : Ind City ;
+
+  fun Countries_E_provinces_CastileandLeon : Ind Province ;
+
+  fun Countries_E_provinces_CastileandLeon_cities_Albacete : Ind City ;
+
+  fun Countries_E_provinces_CastileandLeon_cities_Burgos : Ind City ;
+
+  fun Countries_E_provinces_CastileandLeon_cities_Leon : Ind City ;
+
+  fun Countries_E_provinces_CastileandLeon_cities_Salamanca : Ind City ;
+
+  fun Countries_E_provinces_CastileandLeon_cities_Valladolid : Ind City ;
+
+  fun Countries_E_provinces_Catalonia : Ind Province ;
+
+  fun Countries_E_provinces_Catalonia_cities_Badalona : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Baracaldo : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Barcelona : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_HospitaletdeLlobregat : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Lleida : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Mataro : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Sabadell : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_SantaColomadeGramanet : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Tarragona : Ind City ;
+
+  fun Countries_E_provinces_Catalonia_cities_Terrassa : Ind City ;
+
+  fun Countries_E_provinces_Estremadura : Ind Province ;
+
+  fun Countries_E_provinces_Estremadura_cities_Badajoz : Ind City ;
+
+  fun Countries_E_provinces_Estremadura_cities_Merida : Ind City ;
+
+  fun Countries_E_provinces_Galicia : Ind Province ;
+
+  fun Countries_E_provinces_Galicia_cities_LaCoruna : Ind City ;
+
+  fun Countries_E_provinces_Galicia_cities_Orense : Ind City ;
+
+  fun Countries_E_provinces_Galicia_cities_SantiagodeCompostella : Ind City ;
+
+  fun Countries_E_provinces_Galicia_cities_Vigo : Ind City ;
+
+  fun Countries_E_provinces_Madrid : Ind Province ;
+
+  fun Countries_E_provinces_Madrid_cities_AlcaladeHenares : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Alcorcon : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Fuenlabrada : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Getafe : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Leganes : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Madrid : Ind City ;
+
+  fun Countries_E_provinces_Madrid_cities_Mostoles : Ind City ;
+
+  fun Countries_E_provinces_Murcia : Ind Province ;
+
+  fun Countries_E_provinces_Murcia_cities_Cartagena : Ind City ;
+
+  fun Countries_E_provinces_Murcia_cities_Murcia : Ind City ;
+
+  fun Countries_E_provinces_Navarre : Ind Province ;
+
+  fun Countries_E_provinces_Navarre_cities_Pamplona : Ind City ;
+
+  fun Countries_E_provinces_Rioja : Ind Province ;
+
+  fun Countries_E_provinces_Rioja_cities_Logrono : Ind City ;
+
+  fun Countries_E_provinces_Valencia : Ind Province ;
+
+  fun Countries_E_provinces_Valencia_cities_Alacant : Ind City ;
+
+  fun Countries_E_provinces_Valencia_cities_CastellondelaPlana : Ind City ;
+
+  fun Countries_E_provinces_Valencia_cities_Elx : Ind City ;
+
+  fun Countries_E_provinces_Valencia_cities_Valencia : Ind City ;
+
+  fun Countries_FGU_cities_Cayenne : Ind City ;
+
+  fun Countries_FJI_cities_Suva : Ind City ;
+
+  fun Countries_FL_cities_Vaduz : Ind City ;
+
+  fun Countries_FSM_cities_Kolonia : Ind City ;
+
+  fun Countries_F_provinces_Alsace : Ind Province ;
+
+  fun Countries_F_provinces_Alsace_cities_Mulhouse : Ind City ;
+
+  fun Countries_F_provinces_Alsace_cities_Strasbourg : Ind City ;
+
+  fun Countries_F_provinces_Aquitaine : Ind Province ;
+
+  fun Countries_F_provinces_Aquitaine_cities_Bordeaux : Ind City ;
+
+  fun Countries_F_provinces_Auvergne : Ind Province ;
+
+  fun Countries_F_provinces_Auvergne_cities_ClermontFerrand : Ind City ;
+
+  fun Countries_F_provinces_BasseNormandie : Ind Province ;
+
+  fun Countries_F_provinces_BasseNormandie_cities_Caen : Ind City ;
+
+  fun Countries_F_provinces_Bourgogne : Ind Province ;
+
+  fun Countries_F_provinces_Bourgogne_cities_Dijon : Ind City ;
+
+  fun Countries_F_provinces_Bretagne : Ind Province ;
+
+  fun Countries_F_provinces_Bretagne_cities_Brest : Ind City ;
+
+  fun Countries_F_provinces_Bretagne_cities_Rennes : Ind City ;
+
+  fun Countries_F_provinces_Centre : Ind Province ;
+
+  fun Countries_F_provinces_Centre_cities_Orleans : Ind City ;
+
+  fun Countries_F_provinces_Centre_cities_Tours : Ind City ;
+
+  fun Countries_F_provinces_ChampagneArdenne : Ind Province ;
+
+  fun Countries_F_provinces_ChampagneArdenne_cities_ChalonssurMarne : Ind City ;
+
+  fun Countries_F_provinces_ChampagneArdenne_cities_Reims : Ind City ;
+
+  fun Countries_F_provinces_Corse : Ind Province ;
+
+  fun Countries_F_provinces_Corse_cities_Ajaccio : Ind City ;
+
+  fun Countries_F_provinces_FrancheComte : Ind Province ;
+
+  fun Countries_F_provinces_FrancheComte_cities_Besancon : Ind City ;
+
+  fun Countries_F_provinces_HauteNormandie : Ind Province ;
+
+  fun Countries_F_provinces_HauteNormandie_cities_LeHavre : Ind City ;
+
+  fun Countries_F_provinces_HauteNormandie_cities_Rouen : Ind City ;
+
+  fun Countries_F_provinces_IledeFrance : Ind Province ;
+
+  fun Countries_F_provinces_IledeFrance_cities_BoulogneBillancourt : Ind City ;
+
+  fun Countries_F_provinces_IledeFrance_cities_Paris : Ind City ;
+
+  fun Countries_F_provinces_LanguedocRousillon : Ind Province ;
+
+  fun Countries_F_provinces_LanguedocRousillon_cities_Montpellier : Ind City ;
+
+  fun Countries_F_provinces_LanguedocRousillon_cities_Nimes : Ind City ;
+
+  fun Countries_F_provinces_LanguedocRousillon_cities_Perpignan : Ind City ;
+
+  fun Countries_F_provinces_Limousin : Ind Province ;
+
+  fun Countries_F_provinces_Limousin_cities_Limoges : Ind City ;
+
+  fun Countries_F_provinces_Lorraine : Ind Province ;
+
+  fun Countries_F_provinces_Lorraine_cities_Metz : Ind City ;
+
+  fun Countries_F_provinces_Lorraine_cities_Nancy : Ind City ;
+
+  fun Countries_F_provinces_MidiPyrenees : Ind Province ;
+
+  fun Countries_F_provinces_MidiPyrenees_cities_Toulouse : Ind City ;
+
+  fun Countries_F_provinces_NordPasdeCalais : Ind Province ;
+
+  fun Countries_F_provinces_NordPasdeCalais_cities_Lille : Ind City ;
+
+  fun Countries_F_provinces_PaysdelaLoire : Ind Province ;
+
+  fun Countries_F_provinces_PaysdelaLoire_cities_Angers : Ind City ;
+
+  fun Countries_F_provinces_PaysdelaLoire_cities_LeMans : Ind City ;
+
+  fun Countries_F_provinces_PaysdelaLoire_cities_Nantes : Ind City ;
+
+  fun Countries_F_provinces_Picardie : Ind Province ;
+
+  fun Countries_F_provinces_Picardie_cities_Amiens : Ind City ;
+
+  fun Countries_F_provinces_PoitouCharentes : Ind Province ;
+
+  fun Countries_F_provinces_PoitouCharentes_cities_Poitiers : Ind City ;
+
+  fun Countries_F_provinces_ProvenceCotedAzur : Ind Province ;
+
+  fun Countries_F_provinces_ProvenceCotedAzur_cities_AixenProvence : Ind City ;
+
+  fun Countries_F_provinces_ProvenceCotedAzur_cities_Marseille : Ind City ;
+
+  fun Countries_F_provinces_ProvenceCotedAzur_cities_Nice : Ind City ;
+
+  fun Countries_F_provinces_ProvenceCotedAzur_cities_Toulon : Ind City ;
+
+  fun Countries_F_provinces_RhoneAlpes : Ind Province ;
+
+  fun Countries_F_provinces_RhoneAlpes_cities_Grenoble : Ind City ;
+
+  fun Countries_F_provinces_RhoneAlpes_cities_Lyon : Ind City ;
+
+  fun Countries_F_provinces_RhoneAlpes_cities_SaintEtienne : Ind City ;
+
+  fun Countries_F_provinces_RhoneAlpes_cities_Villeurbanne : Ind City ;
+
+  fun Countries_GB_cities_Sandwell : Ind City ;
+
+  fun Countries_GB_cities_WrexhamMaelor : Ind City ;
+
+  fun Countries_GB_provinces_AberconwyandColwyn : Ind Province ;
+
+  fun Countries_GB_provinces_AberconwyandColwyn_cities_ColwynBay : Ind City ;
+
+  fun Countries_GB_provinces_Anglesey : Ind Province ;
+
+  fun Countries_GB_provinces_Anglesey_cities_Llangefni : Ind City ;
+
+  fun Countries_GB_provinces_Avon : Ind Province ;
+
+  fun Countries_GB_provinces_Avon_cities_Bristol : Ind City ;
+
+  fun Countries_GB_provinces_Bedfordshire : Ind Province ;
+
+  fun Countries_GB_provinces_Bedfordshire_cities_Bedford : Ind City ;
+
+  fun Countries_GB_provinces_Bedfordshire_cities_Luton : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire : Ind Province ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Bracknell : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Newbury : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Reading : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Slough : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Windsor : Ind City ;
+
+  fun Countries_GB_provinces_Berkshire_cities_Wokingham : Ind City ;
+
+  fun Countries_GB_provinces_BlaenauGwent : Ind Province ;
+
+  fun Countries_GB_provinces_BlaenauGwent_cities_EbbwVale : Ind City ;
+
+  fun Countries_GB_provinces_Borders : Ind Province ;
+
+  fun Countries_GB_provinces_Borders_cities_NewtownSt_Boswells : Ind City ;
+
+  fun Countries_GB_provinces_Bridgend : Ind Province ;
+
+  fun Countries_GB_provinces_Bridgend_cities_Bridgend : Ind City ;
+
+  fun Countries_GB_provinces_Buckinghamshire : Ind Province ;
+
+  fun Countries_GB_provinces_Buckinghamshire_cities_Aylesbury : Ind City ;
+
+  fun Countries_GB_provinces_Buckinghamshire_cities_MiltonKeynes : Ind City ;
+
+  fun Countries_GB_provinces_Buckinghamshire_cities_Wycombe : Ind City ;
+
+  fun Countries_GB_provinces_Caerphilly : Ind Province ;
+
+  fun Countries_GB_provinces_Caerphilly_cities_YstradFawr : Ind City ;
+
+  fun Countries_GB_provinces_Cambridgeshire : Ind Province ;
+
+  fun Countries_GB_provinces_Cambridgeshire_cities_Cambridge : Ind City ;
+
+  fun Countries_GB_provinces_Cambridgeshire_cities_Huntingdon : Ind City ;
+
+  fun Countries_GB_provinces_Cambridgeshire_cities_Peterborough : Ind City ;
+
+  fun Countries_GB_provinces_Cardiff : Ind Province ;
+
+  fun Countries_GB_provinces_Cardiff_cities_Cardiff : Ind City ;
+
+  fun Countries_GB_provinces_Carmarthenshire : Ind Province ;
+
+  fun Countries_GB_provinces_Carmarthenshire_cities_Carmarthen : Ind City ;
+
+  fun Countries_GB_provinces_Central : Ind Province ;
+
+  fun Countries_GB_provinces_Central_cities_Stirling : Ind City ;
+
+  fun Countries_GB_provinces_Ceredigion : Ind Province ;
+
+  fun Countries_GB_provinces_Ceredigion_cities_Aberystwyth : Ind City ;
+
+  fun Countries_GB_provinces_Cheshire : Ind Province ;
+
+  fun Countries_GB_provinces_Cheshire_cities_Chester : Ind City ;
+
+  fun Countries_GB_provinces_Cheshire_cities_Crewe : Ind City ;
+
+  fun Countries_GB_provinces_Cheshire_cities_Macclesfield : Ind City ;
+
+  fun Countries_GB_provinces_Cheshire_cities_Warrington : Ind City ;
+
+  fun Countries_GB_provinces_Cleveland : Ind Province ;
+
+  fun Countries_GB_provinces_Cleveland_cities_Middlesbrough : Ind City ;
+
+  fun Countries_GB_provinces_Cleveland_cities_StocktononTees : Ind City ;
+
+  fun Countries_GB_provinces_Cornwall_IslesofScilly : Ind Province ;
+
+  fun Countries_GB_provinces_Cornwall_IslesofScilly_cities_Truro : Ind City ;
+
+  fun Countries_GB_provinces_Cumbria : Ind Province ;
+
+  fun Countries_GB_provinces_Cumbria_cities_Carlisle : Ind City ;
+
+  fun Countries_GB_provinces_Denbighshire : Ind Province ;
+
+  fun Countries_GB_provinces_Denbighshire_cities_Ruthin : Ind City ;
+
+  fun Countries_GB_provinces_Derbyshire : Ind Province ;
+
+  fun Countries_GB_provinces_Derbyshire_cities_Chesterfield : Ind City ;
+
+  fun Countries_GB_provinces_Derbyshire_cities_Derby : Ind City ;
+
+  fun Countries_GB_provinces_Derbyshire_cities_Matlock : Ind City ;
+
+  fun Countries_GB_provinces_Derbyshire_cities_SuttoninAshfield : Ind City ;
+
+  fun Countries_GB_provinces_Devon : Ind Province ;
+
+  fun Countries_GB_provinces_Devon_cities_Exeter : Ind City ;
+
+  fun Countries_GB_provinces_Devon_cities_Plymouth : Ind City ;
+
+  fun Countries_GB_provinces_Dorset : Ind Province ;
+
+  fun Countries_GB_provinces_Dorset_cities_Bournemouth : Ind City ;
+
+  fun Countries_GB_provinces_Dorset_cities_Dorchester : Ind City ;
+
+  fun Countries_GB_provinces_Dorset_cities_Poole : Ind City ;
+
+  fun Countries_GB_provinces_DumfriesandGalloway : Ind Province ;
+
+  fun Countries_GB_provinces_DumfriesandGalloway_cities_Dumfries : Ind City ;
+
+  fun Countries_GB_provinces_Durham : Ind Province ;
+
+  fun Countries_GB_provinces_Durham_cities_Darlington : Ind City ;
+
+  fun Countries_GB_provinces_Durham_cities_Durham : Ind City ;
+
+  fun Countries_GB_provinces_EastSussex : Ind Province ;
+
+  fun Countries_GB_provinces_EastSussex_cities_Brighton : Ind City ;
+
+  fun Countries_GB_provinces_EastSussex_cities_Lewes : Ind City ;
+
+  fun Countries_GB_provinces_Essex : Ind Province ;
+
+  fun Countries_GB_provinces_Essex_cities_Basildon : Ind City ;
+
+  fun Countries_GB_provinces_Essex_cities_Braintree : Ind City ;
+
+  fun Countries_GB_provinces_Essex_cities_Chelmsford : Ind City ;
+
+  fun Countries_GB_provinces_Essex_cities_Colchester : Ind City ;
+
+  fun Countries_GB_provinces_Essex_cities_EppingForest : Ind City ;
+
+  fun Countries_GB_provinces_Essex_cities_SouthendonSea : Ind City ;
+
+  fun Countries_GB_provinces_Fife : Ind Province ;
+
+  fun Countries_GB_provinces_Fife_cities_Glenrothes : Ind City ;
+
+  fun Countries_GB_provinces_Flintshire : Ind Province ;
+
+  fun Countries_GB_provinces_Flintshire_cities_Mold : Ind City ;
+
+  fun Countries_GB_provinces_Gloucestershire : Ind Province ;
+
+  fun Countries_GB_provinces_Gloucestershire_cities_Cheltenham : Ind City ;
+
+  fun Countries_GB_provinces_Gloucestershire_cities_Gloucester : Ind City ;
+
+  fun Countries_GB_provinces_Gloucestershire_cities_Glouchester : Ind City ;
+
+  fun Countries_GB_provinces_Gloucestershire_cities_Stroud : Ind City ;
+
+  fun Countries_GB_provinces_Grampian : Ind Province ;
+
+  fun Countries_GB_provinces_Grampian_cities_Aberdeen : Ind City ;
+
+  fun Countries_GB_provinces_GreaterLondon : Ind Province ;
+
+  fun Countries_GB_provinces_GreaterLondon_cities_London : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester : Ind Province ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Bolton : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Bury : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Manchester : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Oldham : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Rochdale : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Salford : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Stockport : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Tameside : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Trafford : Ind City ;
+
+  fun Countries_GB_provinces_GreaterManchester_cities_Wigan : Ind City ;
+
+  fun Countries_GB_provinces_Gwynedd : Ind Province ;
+
+  fun Countries_GB_provinces_Gwynedd_cities_Caernarfon : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire : Ind Province ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Basingstoke : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Eastleigh : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Fareham : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Havant : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Portsmouth : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Southampton : Ind City ;
+
+  fun Countries_GB_provinces_Hampshire_cities_Winchester : Ind City ;
+
+  fun Countries_GB_provinces_HerefordandWorcester : Ind Province ;
+
+  fun Countries_GB_provinces_HerefordandWorcester_cities_Worcester : Ind City ;
+
+  fun Countries_GB_provinces_Hertfordshire : Ind Province ;
+
+  fun Countries_GB_provinces_Hertfordshire_cities_Hertford : Ind City ;
+
+  fun Countries_GB_provinces_Hertfordshire_cities_SaintAlbans : Ind City ;
+
+  fun Countries_GB_provinces_Highland : Ind Province ;
+
+  fun Countries_GB_provinces_Highland_cities_Inverness : Ind City ;
+
+  fun Countries_GB_provinces_Humberside : Ind Province ;
+
+  fun Countries_GB_provinces_Humberside_cities_Beverley : Ind City ;
+
+  fun Countries_GB_provinces_Humberside_cities_Hull : Ind City ;
+
+  fun Countries_GB_provinces_Humberside_cities_KingstonuponHull : Ind City ;
+
+  fun Countries_GB_provinces_IslandAreas_munic : Ind Province ;
+
+  fun Countries_GB_provinces_IslandAreas_munic_cities_IslandAreas : Ind City ;
+
+  fun Countries_GB_provinces_IsleofWight : Ind Province ;
+
+  fun Countries_GB_provinces_Kent : Ind Province ;
+
+  fun Countries_GB_provinces_Kent_cities_Canterbury : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_Dover : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_Maidstone : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_RochesteruponMedway : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_Sevenoaks : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_Swale : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_Tonbridge : Ind City ;
+
+  fun Countries_GB_provinces_Kent_cities_TunbridgeWells : Ind City ;
+
+  fun Countries_GB_provinces_Lancashire : Ind Province ;
+
+  fun Countries_GB_provinces_Lancashire_cities_Blackburn : Ind City ;
+
+  fun Countries_GB_provinces_Lancashire_cities_Blackpool : Ind City ;
+
+  fun Countries_GB_provinces_Lancashire_cities_Lancaster : Ind City ;
+
+  fun Countries_GB_provinces_Lancashire_cities_Preston : Ind City ;
+
+  fun Countries_GB_provinces_Leicestershire : Ind Province ;
+
+  fun Countries_GB_provinces_Leicestershire_cities_Leicester : Ind City ;
+
+  fun Countries_GB_provinces_Leicestershire_cities_Leichester : Ind City ;
+
+  fun Countries_GB_provinces_Lincolnshire : Ind Province ;
+
+  fun Countries_GB_provinces_Lincolnshire_cities_Lincoln : Ind City ;
+
+  fun Countries_GB_provinces_Lothian : Ind Province ;
+
+  fun Countries_GB_provinces_Lothian_cities_Edinburgh : Ind City ;
+
+  fun Countries_GB_provinces_Merseyside : Ind Province ;
+
+  fun Countries_GB_provinces_Merseyside_cities_Knowsley : Ind City ;
+
+  fun Countries_GB_provinces_Merseyside_cities_Liverpool : Ind City ;
+
+  fun Countries_GB_provinces_Merseyside_cities_SaintHelens : Ind City ;
+
+  fun Countries_GB_provinces_Merseyside_cities_Sefton : Ind City ;
+
+  fun Countries_GB_provinces_Merseyside_cities_Wiral : Ind City ;
+
+  fun Countries_GB_provinces_MerthyrTydfil : Ind Province ;
+
+  fun Countries_GB_provinces_MerthyrTydfil_cities_MerthyrTydfil : Ind City ;
+
+  fun Countries_GB_provinces_Monmouthshire : Ind Province ;
+
+  fun Countries_GB_provinces_Monmouthshire_cities_Cwmbran : Ind City ;
+
+  fun Countries_GB_provinces_NeathandPortTalbot : Ind Province ;
+
+  fun Countries_GB_provinces_NeathandPortTalbot_cities_PortTalbot : Ind City ;
+
+  fun Countries_GB_provinces_Newport : Ind Province ;
+
+  fun Countries_GB_provinces_Newport_cities_Newport : Ind City ;
+
+  fun Countries_GB_provinces_Norfolk : Ind Province ;
+
+  fun Countries_GB_provinces_Norfolk_cities_KingsLynn : Ind City ;
+
+  fun Countries_GB_provinces_Norfolk_cities_Norwich : Ind City ;
+
+  fun Countries_GB_provinces_NorthYorkshire : Ind Province ;
+
+  fun Countries_GB_provinces_NorthYorkshire_cities_Harrogate : Ind City ;
+
+  fun Countries_GB_provinces_NorthYorkshire_cities_Northallerton : Ind City ;
+
+  fun Countries_GB_provinces_NorthYorkshire_cities_Scarborough : Ind City ;
+
+  fun Countries_GB_provinces_NorthYorkshire_cities_York : Ind City ;
+
+  fun Countries_GB_provinces_Northamptonshire : Ind Province ;
+
+  fun Countries_GB_provinces_Northamptonshire_cities_Northampton : Ind City ;
+
+  fun Countries_GB_provinces_NorthernIreland : Ind Province ;
+
+  fun Countries_GB_provinces_NorthernIreland_cities_Belfast : Ind City ;
+
+  fun Countries_GB_provinces_Northumberland : Ind Province ;
+
+  fun Countries_GB_provinces_Nottinghamshire : Ind Province ;
+
+  fun Countries_GB_provinces_Nottinghamshire_cities_Mansfield : Ind City ;
+
+  fun Countries_GB_provinces_Nottinghamshire_cities_NewarkonTrent : Ind City ;
+
+  fun Countries_GB_provinces_Nottinghamshire_cities_Nottingham : Ind City ;
+
+  fun Countries_GB_provinces_Oxfordshire : Ind Province ;
+
+  fun Countries_GB_provinces_Oxfordshire_cities_Oxford : Ind City ;
+
+  fun Countries_GB_provinces_Pembrokeshire : Ind Province ;
+
+  fun Countries_GB_provinces_Pembrokeshire_cities_Haverfordwest : Ind City ;
+
+  fun Countries_GB_provinces_Powys : Ind Province ;
+
+  fun Countries_GB_provinces_Powys_cities_LlandrindodWells : Ind City ;
+
+  fun Countries_GB_provinces_RhonddaCynonTaff : Ind Province ;
+
+  fun Countries_GB_provinces_RhonddaCynonTaff_cities_Rhondda : Ind City ;
+
+  fun Countries_GB_provinces_Shropshire : Ind Province ;
+
+  fun Countries_GB_provinces_Shropshire_cities_Shrewsbury : Ind City ;
+
+  fun Countries_GB_provinces_Somerset : Ind Province ;
+
+  fun Countries_GB_provinces_Somerset_cities_Taunton : Ind City ;
+
+  fun Countries_GB_provinces_SouthYorkshire : Ind Province ;
+
+  fun Countries_GB_provinces_SouthYorkshire_cities_Barnsley : Ind City ;
+
+  fun Countries_GB_provinces_SouthYorkshire_cities_Doncaster : Ind City ;
+
+  fun Countries_GB_provinces_SouthYorkshire_cities_Rotherham : Ind City ;
+
+  fun Countries_GB_provinces_SouthYorkshire_cities_Sheffield : Ind City ;
+
+  fun Countries_GB_provinces_Staffordshire : Ind Province ;
+
+  fun Countries_GB_provinces_Staffordshire_cities_NewcastleunderLyme : Ind City ;
+
+  fun Countries_GB_provinces_Staffordshire_cities_Stafford : Ind City ;
+
+  fun Countries_GB_provinces_Staffordshire_cities_StokeonTrent : Ind City ;
+
+  fun Countries_GB_provinces_Strathclyde : Ind Province ;
+
+  fun Countries_GB_provinces_Strathclyde_cities_Glasgow : Ind City ;
+
+  fun Countries_GB_provinces_Strathclyde_cities_Renfrew : Ind City ;
+
+  fun Countries_GB_provinces_Suffolk : Ind Province ;
+
+  fun Countries_GB_provinces_Suffolk_cities_Ipswich : Ind City ;
+
+  fun Countries_GB_provinces_Surrey : Ind Province ;
+
+  fun Countries_GB_provinces_Surrey_cities_Elmbridge : Ind City ;
+
+  fun Countries_GB_provinces_Surrey_cities_Guildford : Ind City ;
+
+  fun Countries_GB_provinces_Surrey_cities_Kingston : Ind City ;
+
+  fun Countries_GB_provinces_Surrey_cities_Reigate : Ind City ;
+
+  fun Countries_GB_provinces_Swansea : Ind Province ;
+
+  fun Countries_GB_provinces_Swansea_cities_Swansea : Ind City ;
+
+  fun Countries_GB_provinces_Tayside : Ind Province ;
+
+  fun Countries_GB_provinces_Tayside_cities_Dundee : Ind City ;
+
+  fun Countries_GB_provinces_Torfaen : Ind Province ;
+
+  fun Countries_GB_provinces_Torfaen_cities_Pontypool : Ind City ;
+
+  fun Countries_GB_provinces_TyneandWear : Ind Province ;
+
+  fun Countries_GB_provinces_TyneandWear_cities_Gateshead : Ind City ;
+
+  fun Countries_GB_provinces_TyneandWear_cities_Newcastle : Ind City ;
+
+  fun Countries_GB_provinces_TyneandWear_cities_NewcastleuponTyne : Ind City ;
+
+  fun Countries_GB_provinces_TyneandWear_cities_Sunderland : Ind City ;
+
+  fun Countries_GB_provinces_ValeofGlamorgan : Ind Province ;
+
+  fun Countries_GB_provinces_ValeofGlamorgan_cities_Barry : Ind City ;
+
+  fun Countries_GB_provinces_ValeofGlamorgan_cities_RhymneyValley : Ind City ;
+
+  fun Countries_GB_provinces_Warwickshire : Ind Province ;
+
+  fun Countries_GB_provinces_Warwickshire_cities_Nuneaton : Ind City ;
+
+  fun Countries_GB_provinces_Warwickshire_cities_StratfordonAvon : Ind City ;
+
+  fun Countries_GB_provinces_Warwickshire_cities_Warwick : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands : Ind Province ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Birmingham : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Coventry : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Dudley : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Solihull : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Walsall : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_WestBromwich : Ind City ;
+
+  fun Countries_GB_provinces_WestMidlands_cities_Wolverhampton : Ind City ;
+
+  fun Countries_GB_provinces_WestSussex : Ind Province ;
+
+  fun Countries_GB_provinces_WestSussex_cities_Chichester : Ind City ;
+
+  fun Countries_GB_provinces_WestSussex_cities_Horsham : Ind City ;
+
+  fun Countries_GB_provinces_WestYorkshire : Ind Province ;
+
+  fun Countries_GB_provinces_WestYorkshire_cities_Bradford : Ind City ;
+
+  fun Countries_GB_provinces_WestYorkshire_cities_Huddersfield : Ind City ;
+
+  fun Countries_GB_provinces_WestYorkshire_cities_Kirklees : Ind City ;
+
+  fun Countries_GB_provinces_WestYorkshire_cities_Leeds : Ind City ;
+
+  fun Countries_GB_provinces_WestYorkshire_cities_Wakefield : Ind City ;
+
+  fun Countries_GB_provinces_Wiltshire : Ind Province ;
+
+  fun Countries_GB_provinces_Wiltshire_cities_Salisbury : Ind City ;
+
+  fun Countries_GB_provinces_Wiltshire_cities_Trowbridge : Ind City ;
+
+  fun Countries_GB_provinces_Wrexham : Ind Province ;
+
+  fun Countries_GB_provinces_Wrexham_cities_Wrexham : Ind City ;
+
+  fun Countries_GCA_cities_GuatemalaCity : Ind City ;
+
+  fun Countries_GCA_cities_Mixco : Ind City ;
+
+  fun Countries_GCA_cities_VillaNueva : Ind City ;
+
+  fun Countries_GE_cities_Tbilisi : Ind City ;
+
+  fun Countries_GH_cities_Accra : Ind City ;
+
+  fun Countries_GH_cities_CapeCoast : Ind City ;
+
+  fun Countries_GH_cities_Kumasi : Ind City ;
+
+  fun Countries_GH_cities_Sekondi : Ind City ;
+
+  fun Countries_GH_cities_Takoradi : Ind City ;
+
+  fun Countries_GH_cities_Tamale : Ind City ;
+
+  fun Countries_GH_cities_Tema : Ind City ;
+
+  fun Countries_GNB_cities_Bissau : Ind City ;
+
+  fun Countries_GQ_cities_Malabo : Ind City ;
+
+  fun Countries_GQ_cities_Sta_Isabel : Ind City ;
+
+  fun Countries_GR_cities_Iraklion : Ind City ;
+
+  fun Countries_GR_cities_Kavalla : Ind City ;
+
+  fun Countries_GR_cities_Larisa : Ind City ;
+
+  fun Countries_GR_cities_Patrai : Ind City ;
+
+  fun Countries_GR_cities_Piraeus : Ind City ;
+
+  fun Countries_GR_cities_Thessaloniki : Ind City ;
+
+  fun Countries_GR_cities_Volos : Ind City ;
+
+  fun Countries_GR_provinces_AnatolikiMakedhoniakaiThraki : Ind Province ;
+
+  fun Countries_GR_provinces_Attiki : Ind Province ;
+
+  fun Countries_GR_provinces_Attiki_cities_Athens : Ind City ;
+
+  fun Countries_GR_provinces_DhytikiEllas : Ind Province ;
+
+  fun Countries_GR_provinces_DhytikiMakedhonia : Ind Province ;
+
+  fun Countries_GR_provinces_IonioiNisoi : Ind Province ;
+
+  fun Countries_GR_provinces_Ipiros : Ind Province ;
+
+  fun Countries_GR_provinces_KedrikiMakedhonia : Ind Province ;
+
+  fun Countries_GR_provinces_Kriti : Ind Province ;
+
+  fun Countries_GR_provinces_NotionAiyaion : Ind Province ;
+
+  fun Countries_GR_provinces_Peloponnisos : Ind Province ;
+
+  fun Countries_GR_provinces_StereaEllas : Ind Province ;
+
+  fun Countries_GR_provinces_Thessalia : Ind Province ;
+
+  fun Countries_GR_provinces_VoreionAiyaion : Ind Province ;
+
+  fun Countries_GUY_cities_Georgetown : Ind City ;
+
+  fun Countries_G_cities_Libreville : Ind City ;
+
+  fun Countries_HCA_provinces_Atlantida : Ind Province ;
+
+  fun Countries_HCA_provinces_Atlantida_cities_LaCeiba : Ind City ;
+
+  fun Countries_HCA_provinces_Atlantida_cities_Tela : Ind City ;
+
+  fun Countries_HCA_provinces_Choluteca : Ind Province ;
+
+  fun Countries_HCA_provinces_Choluteca_cities_Choluteca : Ind City ;
+
+  fun Countries_HCA_provinces_Colon : Ind Province ;
+
+  fun Countries_HCA_provinces_Colon_cities_Trujillo : Ind City ;
+
+  fun Countries_HCA_provinces_Comayagua : Ind Province ;
+
+  fun Countries_HCA_provinces_Comayagua_cities_Comayagua : Ind City ;
+
+  fun Countries_HCA_provinces_Copan : Ind Province ;
+
+  fun Countries_HCA_provinces_Copan_cities_SantaRosadeCopan : Ind City ;
+
+  fun Countries_HCA_provinces_Cortes : Ind Province ;
+
+  fun Countries_HCA_provinces_Cortes_cities_PuertoCortes : Ind City ;
+
+  fun Countries_HCA_provinces_Cortes_cities_SanPedroSula : Ind City ;
+
+  fun Countries_HCA_provinces_ElParaiso : Ind Province ;
+
+  fun Countries_HCA_provinces_ElParaiso_cities_Danli : Ind City ;
+
+  fun Countries_HCA_provinces_ElParaiso_cities_Yuscaran : Ind City ;
+
+  fun Countries_HCA_provinces_FranciscoMorazan : Ind Province ;
+
+  fun Countries_HCA_provinces_FranciscoMorazan_cities_Siguatepeque : Ind City ;
+
+  fun Countries_HCA_provinces_FranciscoMorazan_cities_Tegucigalpa : Ind City ;
+
+  fun Countries_HCA_provinces_GraciasaDios : Ind Province ;
+
+  fun Countries_HCA_provinces_GraciasaDios_cities_PuertoLempira : Ind City ;
+
+  fun Countries_HCA_provinces_Intibuca : Ind Province ;
+
+  fun Countries_HCA_provinces_Intibuca_cities_LaEsperanza : Ind City ;
+
+  fun Countries_HCA_provinces_IslasdelaBahia : Ind Province ;
+
+  fun Countries_HCA_provinces_IslasdelaBahia_cities_Roatan : Ind City ;
+
+  fun Countries_HCA_provinces_LaPaz : Ind Province ;
+
+  fun Countries_HCA_provinces_LaPaz_cities_LaPaz : Ind City ;
+
+  fun Countries_HCA_provinces_Lempira : Ind Province ;
+
+  fun Countries_HCA_provinces_Lempira_cities_Gracias : Ind City ;
+
+  fun Countries_HCA_provinces_Ocotepeque : Ind Province ;
+
+  fun Countries_HCA_provinces_Ocotepeque_cities_Ocotepeque : Ind City ;
+
+  fun Countries_HCA_provinces_Olancho : Ind Province ;
+
+  fun Countries_HCA_provinces_Olancho_cities_Jutigalpa : Ind City ;
+
+  fun Countries_HCA_provinces_SantaBarbara : Ind Province ;
+
+  fun Countries_HCA_provinces_SantaBarbara_cities_SantaBarbara : Ind City ;
+
+  fun Countries_HCA_provinces_Valle : Ind Province ;
+
+  fun Countries_HCA_provinces_Valle_cities_Nacaome : Ind City ;
+
+  fun Countries_HCA_provinces_Yoro : Ind Province ;
+
+  fun Countries_HCA_provinces_Yoro_cities_ElProgreso : Ind City ;
+
+  fun Countries_HCA_provinces_Yoro_cities_Olanchito : Ind City ;
+
+  fun Countries_HCA_provinces_Yoro_cities_Yoro : Ind City ;
+
+  fun Countries_HR_cities_Zagreb : Ind City ;
+
+  fun Countries_H_provinces_BacsKiskun : Ind Province ;
+
+  fun Countries_H_provinces_BacsKiskun_cities_Kecskemet : Ind City ;
+
+  fun Countries_H_provinces_Baranya : Ind Province ;
+
+  fun Countries_H_provinces_Bekes : Ind Province ;
+
+  fun Countries_H_provinces_Bekes_cities_Bekescaba : Ind City ;
+
+  fun Countries_H_provinces_BorsodAbaujZemplen : Ind Province ;
+
+  fun Countries_H_provinces_Budapest_munic : Ind Province ;
+
+  fun Countries_H_provinces_Budapest_munic_cities_Budapest : Ind City ;
+
+  fun Countries_H_provinces_Csongrad : Ind Province ;
+
+  fun Countries_H_provinces_Csongrad_cities_Hodmezovasarhely : Ind City ;
+
+  fun Countries_H_provinces_Debrecen_munic : Ind Province ;
+
+  fun Countries_H_provinces_Debrecen_munic_cities_Debrecen : Ind City ;
+
+  fun Countries_H_provinces_Fejer : Ind Province ;
+
+  fun Countries_H_provinces_Fejer_cities_Szekesfehervar : Ind City ;
+
+  fun Countries_H_provinces_GyorSopron : Ind Province ;
+
+  fun Countries_H_provinces_Gyor_munic : Ind Province ;
+
+  fun Countries_H_provinces_Gyor_munic_cities_Gyor : Ind City ;
+
+  fun Countries_H_provinces_HajduBihar : Ind Province ;
+
+  fun Countries_H_provinces_Heves : Ind Province ;
+
+  fun Countries_H_provinces_Heves_cities_Eger : Ind City ;
+
+  fun Countries_H_provinces_KomaromEsztergom : Ind Province ;
+
+  fun Countries_H_provinces_KomaromEsztergom_cities_Tatabanya : Ind City ;
+
+  fun Countries_H_provinces_Miskolc_munic : Ind Province ;
+
+  fun Countries_H_provinces_Miskolc_munic_cities_Miskolc : Ind City ;
+
+  fun Countries_H_provinces_Nograd : Ind Province ;
+
+  fun Countries_H_provinces_Nograd_cities_Salgotarjan : Ind City ;
+
+  fun Countries_H_provinces_Pecs_munic : Ind Province ;
+
+  fun Countries_H_provinces_Pecs_munic_cities_Pecs : Ind City ;
+
+  fun Countries_H_provinces_Pest : Ind Province ;
+
+  fun Countries_H_provinces_Somogy : Ind Province ;
+
+  fun Countries_H_provinces_Somogy_cities_Kaposvar : Ind City ;
+
+  fun Countries_H_provinces_SzabolcsSzatmar : Ind Province ;
+
+  fun Countries_H_provinces_SzabolcsSzatmar_cities_Nyiregyhaza : Ind City ;
+
+  fun Countries_H_provinces_Szeged_munic : Ind Province ;
+
+  fun Countries_H_provinces_Szeged_munic_cities_Szeged : Ind City ;
+
+  fun Countries_H_provinces_Szolnok : Ind Province ;
+
+  fun Countries_H_provinces_Szolnok_cities_Szolnok : Ind City ;
+
+  fun Countries_H_provinces_Tolna : Ind Province ;
+
+  fun Countries_H_provinces_Tolna_cities_Szekszard : Ind City ;
+
+  fun Countries_H_provinces_Vas : Ind Province ;
+
+  fun Countries_H_provinces_Vas_cities_Szombathely : Ind City ;
+
+  fun Countries_H_provinces_Veszprem : Ind Province ;
+
+  fun Countries_H_provinces_Veszprem_cities_Veszprem : Ind City ;
+
+  fun Countries_H_provinces_Zala : Ind Province ;
+
+  fun Countries_H_provinces_Zala_cities_Zalaegerszeg : Ind City ;
+
+  fun Countries_IL_provinces_Central : Ind Province ;
+
+  fun Countries_IL_provinces_Central_cities_Jerusalem : Ind City ;
+
+  fun Countries_IL_provinces_Central_cities_Ramla : Ind City ;
+
+  fun Countries_IL_provinces_Haifa : Ind Province ;
+
+  fun Countries_IL_provinces_Haifa_cities_Haifa : Ind City ;
+
+  fun Countries_IL_provinces_North : Ind Province ;
+
+  fun Countries_IL_provinces_North_cities_Nazareth : Ind City ;
+
+  fun Countries_IL_provinces_South : Ind Province ;
+
+  fun Countries_IL_provinces_South_cities_BeerSheva : Ind City ;
+
+  fun Countries_IL_provinces_TelAviv : Ind Province ;
+
+  fun Countries_IL_provinces_TelAviv_cities_TelAviv : Ind City ;
+
+  fun Countries_IND_cities_PimpriChinchwad : Ind City ;
+
+  fun Countries_IND_provinces_AndamanandNicobarIs_ : Ind Province ;
+
+  fun Countries_IND_provinces_AndamanandNicobarIs__cities_PortBlair : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh : Ind Province ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Guntur : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Hyderabad : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Rajahmundry : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Vijayawada : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Vishakhapatnam : Ind City ;
+
+  fun Countries_IND_provinces_AndhraPradesh_cities_Warangal : Ind City ;
+
+  fun Countries_IND_provinces_ArunachalPradesh : Ind Province ;
+
+  fun Countries_IND_provinces_ArunachalPradesh_cities_Itanagar : Ind City ;
+
+  fun Countries_IND_provinces_Assam : Ind Province ;
+
+  fun Countries_IND_provinces_Assam_cities_Dispur : Ind City ;
+
+  fun Countries_IND_provinces_Assam_cities_Gauhati : Ind City ;
+
+  fun Countries_IND_provinces_Bihar : Ind Province ;
+
+  fun Countries_IND_provinces_Bihar_cities_BokaraSteelCity : Ind City ;
+
+  fun Countries_IND_provinces_Bihar_cities_Jamshedpur : Ind City ;
+
+  fun Countries_IND_provinces_Bihar_cities_Patna : Ind City ;
+
+  fun Countries_IND_provinces_Bihar_cities_Ranchi : Ind City ;
+
+  fun Countries_IND_provinces_Chandigarh : Ind Province ;
+
+  fun Countries_IND_provinces_Chandigarh_cities_Chandigarh : Ind City ;
+
+  fun Countries_IND_provinces_DadraandNagarHaveli : Ind Province ;
+
+  fun Countries_IND_provinces_DadraandNagarHaveli_cities_Silvassa : Ind City ;
+
+  fun Countries_IND_provinces_DamanandDiu : Ind Province ;
+
+  fun Countries_IND_provinces_DamanandDiu_cities_Daman : Ind City ;
+
+  fun Countries_IND_provinces_Delhi : Ind Province ;
+
+  fun Countries_IND_provinces_Delhi_cities_Ghaziabad : Ind City ;
+
+  fun Countries_IND_provinces_Delhi_cities_NewDelhi : Ind City ;
+
+  fun Countries_IND_provinces_Goa : Ind Province ;
+
+  fun Countries_IND_provinces_Goa_cities_Panaji : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat : Ind Province ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Ahmadabad : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Bhavnagar : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Gandhinagar : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Jamnagar : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Rajkot : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Surat : Ind City ;
+
+  fun Countries_IND_provinces_Gujarat_cities_Vadodara : Ind City ;
+
+  fun Countries_IND_provinces_Haryana : Ind Province ;
+
+  fun Countries_IND_provinces_HimachalPradesh : Ind Province ;
+
+  fun Countries_IND_provinces_HimachalPradesh_cities_Simla : Ind City ;
+
+  fun Countries_IND_provinces_JammuandKashmir : Ind Province ;
+
+  fun Countries_IND_provinces_JammuandKashmir_cities_Jammu : Ind City ;
+
+  fun Countries_IND_provinces_JammuandKashmir_cities_Srinagar : Ind City ;
+
+  fun Countries_IND_provinces_Karnataka : Ind Province ;
+
+  fun Countries_IND_provinces_Karnataka_cities_Bangalore : Ind City ;
+
+  fun Countries_IND_provinces_Karnataka_cities_Hubli : Ind City ;
+
+  fun Countries_IND_provinces_Karnataka_cities_Mysore : Ind City ;
+
+  fun Countries_IND_provinces_Kerala : Ind Province ;
+
+  fun Countries_IND_provinces_Kerala_cities_Cochin : Ind City ;
+
+  fun Countries_IND_provinces_Kerala_cities_Kozhikode : Ind City ;
+
+  fun Countries_IND_provinces_Kerala_cities_Trivandrum : Ind City ;
+
+  fun Countries_IND_provinces_LakshadweepIs_ : Ind Province ;
+
+  fun Countries_IND_provinces_LakshadweepIs__cities_Kavaratti : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh : Ind Province ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Bhatpara : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Bhilai : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Bhopal : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Gwalior : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Indore : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Jabalpur : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Raipur : Ind City ;
+
+  fun Countries_IND_provinces_MadhyaPradesh_cities_Ujjain : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra : Ind Province ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Amravati : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Aurangabad : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Bhiwandi : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Bombay : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Kalyan : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Kolhapur : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Mumbai : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Nagpur : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Nasik : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_NewBombay : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Pune : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Sholapur : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Thane : Ind City ;
+
+  fun Countries_IND_provinces_Maharashtra_cities_Ulhasnagar : Ind City ;
+
+  fun Countries_IND_provinces_Manipur : Ind Province ;
+
+  fun Countries_IND_provinces_Manipur_cities_Imphal : Ind City ;
+
+  fun Countries_IND_provinces_Meghalaya : Ind Province ;
+
+  fun Countries_IND_provinces_Meghalaya_cities_Shillong : Ind City ;
+
+  fun Countries_IND_provinces_Mizoram : Ind Province ;
+
+  fun Countries_IND_provinces_Mizoram_cities_Aijal : Ind City ;
+
+  fun Countries_IND_provinces_Nagaland : Ind Province ;
+
+  fun Countries_IND_provinces_Nagaland_cities_Kohima : Ind City ;
+
+  fun Countries_IND_provinces_Orissa : Ind Province ;
+
+  fun Countries_IND_provinces_Orissa_cities_Bhubaneswar : Ind City ;
+
+  fun Countries_IND_provinces_Orissa_cities_Cuttack : Ind City ;
+
+  fun Countries_IND_provinces_Pondicherry : Ind Province ;
+
+  fun Countries_IND_provinces_Pondicherry_cities_Pondicherry : Ind City ;
+
+  fun Countries_IND_provinces_Punjab : Ind Province ;
+
+  fun Countries_IND_provinces_Punjab_cities_Amritsar : Ind City ;
+
+  fun Countries_IND_provinces_Punjab_cities_Jalandhar : Ind City ;
+
+  fun Countries_IND_provinces_Punjab_cities_Ludhiana : Ind City ;
+
+  fun Countries_IND_provinces_Rajasthan : Ind Province ;
+
+  fun Countries_IND_provinces_Rajasthan_cities_Ajmer : Ind City ;
+
+  fun Countries_IND_provinces_Rajasthan_cities_Bikaner : Ind City ;
+
+  fun Countries_IND_provinces_Rajasthan_cities_Jaipur : Ind City ;
+
+  fun Countries_IND_provinces_Rajasthan_cities_Jodhpur : Ind City ;
+
+  fun Countries_IND_provinces_Rajasthan_cities_Kota : Ind City ;
+
+  fun Countries_IND_provinces_Sikkim : Ind Province ;
+
+  fun Countries_IND_provinces_Sikkim_cities_Gangtok : Ind City ;
+
+  fun Countries_IND_provinces_TamilNadu : Ind Province ;
+
+  fun Countries_IND_provinces_TamilNadu_cities_Coimbatore : Ind City ;
+
+  fun Countries_IND_provinces_TamilNadu_cities_Madras : Ind City ;
+
+  fun Countries_IND_provinces_TamilNadu_cities_Madurai : Ind City ;
+
+  fun Countries_IND_provinces_TamilNadu_cities_Salem : Ind City ;
+
+  fun Countries_IND_provinces_TamilNadu_cities_Tiruchchirappalli : Ind City ;
+
+  fun Countries_IND_provinces_Tripura : Ind Province ;
+
+  fun Countries_IND_provinces_Tripura_cities_Agartala : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh : Ind Province ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Agra : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Aligarh : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Allahabad : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Bareilly : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Faridabad : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Gorakhpur : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Jhansi : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Kanpur : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Lucknow : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Meerut : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Moradabad : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Saharanpur : Ind City ;
+
+  fun Countries_IND_provinces_UttarPradesh_cities_Varanasi : Ind City ;
+
+  fun Countries_IND_provinces_WestBengal : Ind Province ;
+
+  fun Countries_IND_provinces_WestBengal_cities_Calcutta : Ind City ;
+
+  fun Countries_IND_provinces_WestBengal_cities_Durgapur : Ind City ;
+
+  fun Countries_IND_provinces_WestBengal_cities_Haora : Ind City ;
+
+  fun Countries_IRL_cities_Dublin : Ind City ;
+
+  fun Countries_IRQ_provinces_AdTamim : Ind Province ;
+
+  fun Countries_IRQ_provinces_AdTamim_cities_Kirkuk : Ind City ;
+
+  fun Countries_IRQ_provinces_AlAnbar : Ind Province ;
+
+  fun Countries_IRQ_provinces_AlAnbar_cities_ArRamadi : Ind City ;
+
+  fun Countries_IRQ_provinces_AlBasrah : Ind Province ;
+
+  fun Countries_IRQ_provinces_AlBasrah_cities_AlBasrah : Ind City ;
+
+  fun Countries_IRQ_provinces_AlMuthanna : Ind Province ;
+
+  fun Countries_IRQ_provinces_AlMuthanna_cities_AsSamawah : Ind City ;
+
+  fun Countries_IRQ_provinces_AlQadisiyah : Ind Province ;
+
+  fun Countries_IRQ_provinces_AlQadisiyah_cities_AdDiwaniyah : Ind City ;
+
+  fun Countries_IRQ_provinces_AlQadisiyah_cities_Diwaniyah : Ind City ;
+
+  fun Countries_IRQ_provinces_AnNajaf : Ind Province ;
+
+  fun Countries_IRQ_provinces_AnNajaf_cities_AnNajaf : Ind City ;
+
+  fun Countries_IRQ_provinces_AsSulaymaniyah : Ind Province ;
+
+  fun Countries_IRQ_provinces_AsSulaymaniyah_cities_AsSulaymaniyah : Ind City ;
+
+  fun Countries_IRQ_provinces_Babil : Ind Province ;
+
+  fun Countries_IRQ_provinces_Babil_cities_AlHillah : Ind City ;
+
+  fun Countries_IRQ_provinces_Baghdad : Ind Province ;
+
+  fun Countries_IRQ_provinces_Baghdad_cities_Baghdad : Ind City ;
+
+  fun Countries_IRQ_provinces_Dahuk : Ind Province ;
+
+  fun Countries_IRQ_provinces_Dahuk_cities_Dahuk : Ind City ;
+
+  fun Countries_IRQ_provinces_DhiQar : Ind Province ;
+
+  fun Countries_IRQ_provinces_DhiQar_cities_AnNasiriyah : Ind City ;
+
+  fun Countries_IRQ_provinces_Diyala : Ind Province ;
+
+  fun Countries_IRQ_provinces_Diyala_cities_Baqubah : Ind City ;
+
+  fun Countries_IRQ_provinces_Irbil : Ind Province ;
+
+  fun Countries_IRQ_provinces_Irbil_cities_Irbil : Ind City ;
+
+  fun Countries_IRQ_provinces_Karbala : Ind Province ;
+
+  fun Countries_IRQ_provinces_Karbala_cities_Karbala : Ind City ;
+
+  fun Countries_IRQ_provinces_Maysan : Ind Province ;
+
+  fun Countries_IRQ_provinces_Maysan_cities_AlAmarah : Ind City ;
+
+  fun Countries_IRQ_provinces_Ninawa : Ind Province ;
+
+  fun Countries_IRQ_provinces_Ninawa_cities_AlMawsil : Ind City ;
+
+  fun Countries_IRQ_provinces_Ninawa_cities_Mosul : Ind City ;
+
+  fun Countries_IRQ_provinces_SalahadDin : Ind Province ;
+
+  fun Countries_IRQ_provinces_SalahadDin_cities_Samarra : Ind City ;
+
+  fun Countries_IRQ_provinces_Wasit : Ind Province ;
+
+  fun Countries_IRQ_provinces_Wasit_cities_AlKut : Ind City ;
+
+  fun Countries_IR_cities_Islamshahr : Ind City ;
+
+  fun Countries_IR_cities_Mehrshahr : Ind City ;
+
+  fun Countries_IR_cities_Rajaishahr : Ind City ;
+
+  fun Countries_IR_provinces_AzarbayianeGharbt : Ind Province ;
+
+  fun Countries_IR_provinces_AzarbayianeGharbt_cities_Khvoy : Ind City ;
+
+  fun Countries_IR_provinces_AzarbayianeGharbt_cities_Maragheh : Ind City ;
+
+  fun Countries_IR_provinces_AzarbayianeGharbt_cities_Orumiyeh : Ind City ;
+
+  fun Countries_IR_provinces_AzarbayianeSharqi : Ind Province ;
+
+  fun Countries_IR_provinces_AzarbayianeSharqi_cities_Ardabil : Ind City ;
+
+  fun Countries_IR_provinces_AzarbayianeSharqi_cities_Tabriz : Ind City ;
+
+  fun Countries_IR_provinces_Bakhtaran : Ind Province ;
+
+  fun Countries_IR_provinces_Bakhtaran_cities_Bakhtaran : Ind City ;
+
+  fun Countries_IR_provinces_BoyerAhmadeKohkiluyeh : Ind Province ;
+
+  fun Countries_IR_provinces_BoyerAhmadeKohkiluyeh_cities_Yasuj : Ind City ;
+
+  fun Countries_IR_provinces_Bushehr : Ind Province ;
+
+  fun Countries_IR_provinces_Bushehr_cities_BandareBushehr : Ind City ;
+
+  fun Countries_IR_provinces_Bushehr_cities_Bushehr : Ind City ;
+
+  fun Countries_IR_provinces_ChaharMahaleBakhtiari : Ind Province ;
+
+  fun Countries_IR_provinces_ChaharMahaleBakhtiari_cities_ShahreKord : Ind City ;
+
+  fun Countries_IR_provinces_Esfahan : Ind Province ;
+
+  fun Countries_IR_provinces_Esfahan_cities_Esfahan : Ind City ;
+
+  fun Countries_IR_provinces_Esfahan_cities_Khomeynishahr : Ind City ;
+
+  fun Countries_IR_provinces_Esfahan_cities_Najafabad : Ind City ;
+
+  fun Countries_IR_provinces_Fars : Ind Province ;
+
+  fun Countries_IR_provinces_Fars_cities_Shiraz : Ind City ;
+
+  fun Countries_IR_provinces_Gilan : Ind Province ;
+
+  fun Countries_IR_provinces_Gilan_cities_Rasht : Ind City ;
+
+  fun Countries_IR_provinces_Hamadan : Ind Province ;
+
+  fun Countries_IR_provinces_Hamadan_cities_Hamadan : Ind City ;
+
+  fun Countries_IR_provinces_Hamadan_cities_Malayer : Ind City ;
+
+  fun Countries_IR_provinces_Hormozgan : Ind Province ;
+
+  fun Countries_IR_provinces_Hormozgan_cities_BandarAbbas : Ind City ;
+
+  fun Countries_IR_provinces_Ilam : Ind Province ;
+
+  fun Countries_IR_provinces_Ilam_cities_Ilam : Ind City ;
+
+  fun Countries_IR_provinces_Kerman : Ind Province ;
+
+  fun Countries_IR_provinces_Kerman_cities_Kerman : Ind City ;
+
+  fun Countries_IR_provinces_Kerman_cities_Sirjan : Ind City ;
+
+  fun Countries_IR_provinces_Khorasan : Ind Province ;
+
+  fun Countries_IR_provinces_Khorasan_cities_Birjand : Ind City ;
+
+  fun Countries_IR_provinces_Khorasan_cities_Bojnurd : Ind City ;
+
+  fun Countries_IR_provinces_Khorasan_cities_Mashhad : Ind City ;
+
+  fun Countries_IR_provinces_Khorasan_cities_Neyshabur : Ind City ;
+
+  fun Countries_IR_provinces_Khorasan_cities_Sabzevar : Ind City ;
+
+  fun Countries_IR_provinces_Khuzestan : Ind Province ;
+
+  fun Countries_IR_provinces_Khuzestan_cities_Ahvaz : Ind City ;
+
+  fun Countries_IR_provinces_Khuzestan_cities_Dezful : Ind City ;
+
+  fun Countries_IR_provinces_Khuzestan_cities_Khorramshahr : Ind City ;
+
+  fun Countries_IR_provinces_Khuzestan_cities_MasjedeSoleyman : Ind City ;
+
+  fun Countries_IR_provinces_Kordestan : Ind Province ;
+
+  fun Countries_IR_provinces_Kordestan_cities_Sanandaj : Ind City ;
+
+  fun Countries_IR_provinces_Lorestan : Ind Province ;
+
+  fun Countries_IR_provinces_Lorestan_cities_Borujerd : Ind City ;
+
+  fun Countries_IR_provinces_Lorestan_cities_Khorramabad : Ind City ;
+
+  fun Countries_IR_provinces_Markazi : Ind Province ;
+
+  fun Countries_IR_provinces_Markazi_cities_Arak : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran : Ind Province ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_Amol : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_Babol : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_GonbadeKavus : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_Gorgan : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_Qaemshahr : Ind City ;
+
+  fun Countries_IR_provinces_Mazandaran_cities_Sari : Ind City ;
+
+  fun Countries_IR_provinces_Semnan : Ind Province ;
+
+  fun Countries_IR_provinces_Semnan_cities_Semnan : Ind City ;
+
+  fun Countries_IR_provinces_SistaneBaluchestan : Ind Province ;
+
+  fun Countries_IR_provinces_SistaneBaluchestan_cities_Zahedan : Ind City ;
+
+  fun Countries_IR_provinces_Tehran : Ind Province ;
+
+  fun Countries_IR_provinces_Tehran_cities_Karaj : Ind City ;
+
+  fun Countries_IR_provinces_Tehran_cities_Kashan : Ind City ;
+
+  fun Countries_IR_provinces_Tehran_cities_Qazvin : Ind City ;
+
+  fun Countries_IR_provinces_Tehran_cities_Qom : Ind City ;
+
+  fun Countries_IR_provinces_Tehran_cities_Tehran : Ind City ;
+
+  fun Countries_IR_provinces_Yazd : Ind Province ;
+
+  fun Countries_IR_provinces_Yazd_cities_Yazd : Ind City ;
+
+  fun Countries_IR_provinces_Zanjan : Ind Province ;
+
+  fun Countries_IR_provinces_Zanjan_cities_Zanjan : Ind City ;
+
+  fun Countries_IS_cities_Akureyri : Ind City ;
+
+  fun Countries_IS_cities_Hafnarfjoerdur : Ind City ;
+
+  fun Countries_IS_cities_Keflavik : Ind City ;
+
+  fun Countries_IS_cities_Reykjavik : Ind City ;
+
+  fun Countries_I_cities_Forli : Ind City ;
+
+  fun Countries_I_provinces_Abruzzo : Ind Province ;
+
+  fun Countries_I_provinces_Abruzzo_cities_LAquila : Ind City ;
+
+  fun Countries_I_provinces_Abruzzo_cities_Pescara : Ind City ;
+
+  fun Countries_I_provinces_Basilicata : Ind Province ;
+
+  fun Countries_I_provinces_Basilicata_cities_Potenza : Ind City ;
+
+  fun Countries_I_provinces_Calabria : Ind Province ;
+
+  fun Countries_I_provinces_Calabria_cities_Catanzaro : Ind City ;
+
+  fun Countries_I_provinces_Calabria_cities_Cosenza : Ind City ;
+
+  fun Countries_I_provinces_Calabria_cities_Messina : Ind City ;
+
+  fun Countries_I_provinces_Calabria_cities_ReggiodiCalabria : Ind City ;
+
+  fun Countries_I_provinces_Campania : Ind Province ;
+
+  fun Countries_I_provinces_Campania_cities_Napoli : Ind City ;
+
+  fun Countries_I_provinces_Campania_cities_Salerno : Ind City ;
+
+  fun Countries_I_provinces_Campania_cities_TorredelGreco : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna : Ind Province ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Bologna : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Ferrara : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Modena : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Parma : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Piacenza : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Ravenna : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_ReggionellEmilia : Ind City ;
+
+  fun Countries_I_provinces_EmiliaRomagna_cities_Rimini : Ind City ;
+
+  fun Countries_I_provinces_FriuliVeneziaGiulia : Ind Province ;
+
+  fun Countries_I_provinces_FriuliVeneziaGiulia_cities_Trieste : Ind City ;
+
+  fun Countries_I_provinces_Lazio : Ind Province ;
+
+  fun Countries_I_provinces_Lazio_cities_Latina : Ind City ;
+
+  fun Countries_I_provinces_Lazio_cities_Rome : Ind City ;
+
+  fun Countries_I_provinces_Liguria : Ind Province ;
+
+  fun Countries_I_provinces_Liguria_cities_Genua : Ind City ;
+
+  fun Countries_I_provinces_Liguria_cities_LaSpezia : Ind City ;
+
+  fun Countries_I_provinces_Lombardia : Ind Province ;
+
+  fun Countries_I_provinces_Lombardia_cities_Bergamo : Ind City ;
+
+  fun Countries_I_provinces_Lombardia_cities_Brescia : Ind City ;
+
+  fun Countries_I_provinces_Lombardia_cities_Milan : Ind City ;
+
+  fun Countries_I_provinces_Lombardia_cities_Monza : Ind City ;
+
+  fun Countries_I_provinces_Marche : Ind Province ;
+
+  fun Countries_I_provinces_Marche_cities_Ancona : Ind City ;
+
+  fun Countries_I_provinces_Molise : Ind Province ;
+
+  fun Countries_I_provinces_Molise_cities_Campobasso : Ind City ;
+
+  fun Countries_I_provinces_Piemonte : Ind Province ;
+
+  fun Countries_I_provinces_Piemonte_cities_Novara : Ind City ;
+
+  fun Countries_I_provinces_Piemonte_cities_Turin : Ind City ;
+
+  fun Countries_I_provinces_Puglia : Ind Province ;
+
+  fun Countries_I_provinces_Puglia_cities_Bari : Ind City ;
+
+  fun Countries_I_provinces_Puglia_cities_Foggia : Ind City ;
+
+  fun Countries_I_provinces_Puglia_cities_Lecce : Ind City ;
+
+  fun Countries_I_provinces_Puglia_cities_Taranto : Ind City ;
+
+  fun Countries_I_provinces_Sardegna : Ind Province ;
+
+  fun Countries_I_provinces_Sardegna_cities_Cagliari : Ind City ;
+
+  fun Countries_I_provinces_Sardegna_cities_Sassari : Ind City ;
+
+  fun Countries_I_provinces_Sicilia : Ind Province ;
+
+  fun Countries_I_provinces_Sicilia_cities_Catania : Ind City ;
+
+  fun Countries_I_provinces_Sicilia_cities_Palermo : Ind City ;
+
+  fun Countries_I_provinces_Sicilia_cities_Siracusa : Ind City ;
+
+  fun Countries_I_provinces_Toscana : Ind Province ;
+
+  fun Countries_I_provinces_Toscana_cities_Firenze : Ind City ;
+
+  fun Countries_I_provinces_Toscana_cities_Livorno : Ind City ;
+
+  fun Countries_I_provinces_Toscana_cities_Pisa : Ind City ;
+
+  fun Countries_I_provinces_Toscana_cities_Prato : Ind City ;
+
+  fun Countries_I_provinces_TrentinoAltoAdige : Ind Province ;
+
+  fun Countries_I_provinces_TrentinoAltoAdige_cities_Bolzano : Ind City ;
+
+  fun Countries_I_provinces_TrentinoAltoAdige_cities_Trento : Ind City ;
+
+  fun Countries_I_provinces_Umbria : Ind Province ;
+
+  fun Countries_I_provinces_Umbria_cities_Perugia : Ind City ;
+
+  fun Countries_I_provinces_Umbria_cities_Terni : Ind City ;
+
+  fun Countries_I_provinces_ValledAosta : Ind Province ;
+
+  fun Countries_I_provinces_ValledAosta_cities_Aosta : Ind City ;
+
+  fun Countries_I_provinces_Veneto : Ind Province ;
+
+  fun Countries_I_provinces_Veneto_cities_Padova : Ind City ;
+
+  fun Countries_I_provinces_Veneto_cities_Venice : Ind City ;
+
+  fun Countries_I_provinces_Veneto_cities_Verona : Ind City ;
+
+  fun Countries_I_provinces_Veneto_cities_Vicenza : Ind City ;
+
+  fun Countries_JA_cities_Kingston : Ind City ;
+
+  fun Countries_JOR_cities_Amman : Ind City ;
+
+  fun Countries_J_provinces_Aichi : Ind Province ;
+
+  fun Countries_J_provinces_Aichi_cities_Nagoya : Ind City ;
+
+  fun Countries_J_provinces_Akita : Ind Province ;
+
+  fun Countries_J_provinces_Akita_cities_Akita : Ind City ;
+
+  fun Countries_J_provinces_Aomori : Ind Province ;
+
+  fun Countries_J_provinces_Aomori_cities_Aomori : Ind City ;
+
+  fun Countries_J_provinces_Chiba : Ind Province ;
+
+  fun Countries_J_provinces_Chiba_cities_Chiba : Ind City ;
+
+  fun Countries_J_provinces_Ehime : Ind Province ;
+
+  fun Countries_J_provinces_Ehime_cities_Matsuyama : Ind City ;
+
+  fun Countries_J_provinces_Fukui : Ind Province ;
+
+  fun Countries_J_provinces_Fukui_cities_Fukui : Ind City ;
+
+  fun Countries_J_provinces_Fukuoka : Ind Province ;
+
+  fun Countries_J_provinces_Fukuoka_cities_Fukuoka : Ind City ;
+
+  fun Countries_J_provinces_Fukuoka_cities_Kitakyushu : Ind City ;
+
+  fun Countries_J_provinces_Fukushima : Ind Province ;
+
+  fun Countries_J_provinces_Fukushima_cities_Fukushima : Ind City ;
+
+  fun Countries_J_provinces_Gifu : Ind Province ;
+
+  fun Countries_J_provinces_Gifu_cities_Gifu : Ind City ;
+
+  fun Countries_J_provinces_Gumma : Ind Province ;
+
+  fun Countries_J_provinces_Gumma_cities_Maebashi : Ind City ;
+
+  fun Countries_J_provinces_Hiroshima : Ind Province ;
+
+  fun Countries_J_provinces_Hiroshima_cities_Hiroshima : Ind City ;
+
+  fun Countries_J_provinces_Hokkaido : Ind Province ;
+
+  fun Countries_J_provinces_Hokkaido_cities_Sapporo : Ind City ;
+
+  fun Countries_J_provinces_Hyogo : Ind Province ;
+
+  fun Countries_J_provinces_Hyogo_cities_Kobe : Ind City ;
+
+  fun Countries_J_provinces_Ibaraki : Ind Province ;
+
+  fun Countries_J_provinces_Ibaraki_cities_Mito : Ind City ;
+
+  fun Countries_J_provinces_Ishikawa : Ind Province ;
+
+  fun Countries_J_provinces_Ishikawa_cities_Kanazawa : Ind City ;
+
+  fun Countries_J_provinces_Iwate : Ind Province ;
+
+  fun Countries_J_provinces_Iwate_cities_Morioka : Ind City ;
+
+  fun Countries_J_provinces_Kagawa : Ind Province ;
+
+  fun Countries_J_provinces_Kagawa_cities_Takamatsu : Ind City ;
+
+  fun Countries_J_provinces_Kagoshima : Ind Province ;
+
+  fun Countries_J_provinces_Kagoshima_cities_Kagoshima : Ind City ;
+
+  fun Countries_J_provinces_Kanagawa : Ind Province ;
+
+  fun Countries_J_provinces_Kanagawa_cities_Kawasaki : Ind City ;
+
+  fun Countries_J_provinces_Kanagawa_cities_Yokohama : Ind City ;
+
+  fun Countries_J_provinces_Kochi : Ind Province ;
+
+  fun Countries_J_provinces_Kochi_cities_Kochi : Ind City ;
+
+  fun Countries_J_provinces_Kumamoto : Ind Province ;
+
+  fun Countries_J_provinces_Kumamoto_cities_Kumamoto : Ind City ;
+
+  fun Countries_J_provinces_Kyoto : Ind Province ;
+
+  fun Countries_J_provinces_Kyoto_cities_Kyoto : Ind City ;
+
+  fun Countries_J_provinces_Mie : Ind Province ;
+
+  fun Countries_J_provinces_Mie_cities_Tsu : Ind City ;
+
+  fun Countries_J_provinces_Miyagi : Ind Province ;
+
+  fun Countries_J_provinces_Miyagi_cities_Sendai : Ind City ;
+
+  fun Countries_J_provinces_Miyazaki : Ind Province ;
+
+  fun Countries_J_provinces_Miyazaki_cities_Miyazaki : Ind City ;
+
+  fun Countries_J_provinces_Nagano : Ind Province ;
+
+  fun Countries_J_provinces_Nagano_cities_Nagano : Ind City ;
+
+  fun Countries_J_provinces_Nagasaki : Ind Province ;
+
+  fun Countries_J_provinces_Nagasaki_cities_Nagasaki : Ind City ;
+
+  fun Countries_J_provinces_Nara : Ind Province ;
+
+  fun Countries_J_provinces_Nara_cities_Nara : Ind City ;
+
+  fun Countries_J_provinces_Niigata : Ind Province ;
+
+  fun Countries_J_provinces_Niigata_cities_Niigata : Ind City ;
+
+  fun Countries_J_provinces_Oita : Ind Province ;
+
+  fun Countries_J_provinces_Oita_cities_Oita : Ind City ;
+
+  fun Countries_J_provinces_Okayama : Ind Province ;
+
+  fun Countries_J_provinces_Okayama_cities_Okayama : Ind City ;
+
+  fun Countries_J_provinces_Okinawa : Ind Province ;
+
+  fun Countries_J_provinces_Okinawa_cities_Naha : Ind City ;
+
+  fun Countries_J_provinces_Osaka : Ind Province ;
+
+  fun Countries_J_provinces_Osaka_cities_Osaka : Ind City ;
+
+  fun Countries_J_provinces_Saga : Ind Province ;
+
+  fun Countries_J_provinces_Saga_cities_Saga : Ind City ;
+
+  fun Countries_J_provinces_Saitama : Ind Province ;
+
+  fun Countries_J_provinces_Saitama_cities_Urawa : Ind City ;
+
+  fun Countries_J_provinces_Shiga : Ind Province ;
+
+  fun Countries_J_provinces_Shiga_cities_Otsu : Ind City ;
+
+  fun Countries_J_provinces_Shimane : Ind Province ;
+
+  fun Countries_J_provinces_Shimane_cities_Matsue : Ind City ;
+
+  fun Countries_J_provinces_Shizuoka : Ind Province ;
+
+  fun Countries_J_provinces_Shizuoka_cities_Shizuoka : Ind City ;
+
+  fun Countries_J_provinces_Tochigi : Ind Province ;
+
+  fun Countries_J_provinces_Tochigi_cities_Utsonomiya : Ind City ;
+
+  fun Countries_J_provinces_Tokushima : Ind Province ;
+
+  fun Countries_J_provinces_Tokushima_cities_Tokushima : Ind City ;
+
+  fun Countries_J_provinces_Tokyo : Ind Province ;
+
+  fun Countries_J_provinces_Tokyo_cities_Tokyo : Ind City ;
+
+  fun Countries_J_provinces_Tottori : Ind Province ;
+
+  fun Countries_J_provinces_Tottori_cities_Tottori : Ind City ;
+
+  fun Countries_J_provinces_Toyama : Ind Province ;
+
+  fun Countries_J_provinces_Toyama_cities_Toyama : Ind City ;
+
+  fun Countries_J_provinces_Wakayama : Ind Province ;
+
+  fun Countries_J_provinces_Wakayama_cities_Wakayama : Ind City ;
+
+  fun Countries_J_provinces_Yamagata : Ind Province ;
+
+  fun Countries_J_provinces_Yamagata_cities_Yamagata : Ind City ;
+
+  fun Countries_J_provinces_Yamaguchi : Ind Province ;
+
+  fun Countries_J_provinces_Yamaguchi_cities_Yamaguchi : Ind City ;
+
+  fun Countries_J_provinces_Yamanashi : Ind Province ;
+
+  fun Countries_J_provinces_Yamanashi_cities_Kofu : Ind City ;
+
+  fun Countries_KAZ_provinces_Almaty : Ind Province ;
+
+  fun Countries_KAZ_provinces_Almaty_munic : Ind Province ;
+
+  fun Countries_KAZ_provinces_Almaty_munic_cities_Almaty : Ind City ;
+
+  fun Countries_KAZ_provinces_Aqmola : Ind Province ;
+
+  fun Countries_KAZ_provinces_Aqmola_cities_Aqmola : Ind City ;
+
+  fun Countries_KAZ_provinces_Aqtobe : Ind Province ;
+
+  fun Countries_KAZ_provinces_Aqtobe_cities_Aqtobe : Ind City ;
+
+  fun Countries_KAZ_provinces_Atyrau : Ind Province ;
+
+  fun Countries_KAZ_provinces_Atyrau_cities_Atyrau : Ind City ;
+
+  fun Countries_KAZ_provinces_BatysQazaqstan : Ind Province ;
+
+  fun Countries_KAZ_provinces_BatysQazaqstan_cities_Oral : Ind City ;
+
+  fun Countries_KAZ_provinces_Kokchetau : Ind Province ;
+
+  fun Countries_KAZ_provinces_Kokchetau_cities_Kokchetau : Ind City ;
+
+  fun Countries_KAZ_provinces_Leninsk_munic : Ind Province ;
+
+  fun Countries_KAZ_provinces_Leninsk_munic_cities_Leninsk : Ind City ;
+
+  fun Countries_KAZ_provinces_Mangghystau : Ind Province ;
+
+  fun Countries_KAZ_provinces_Mangghystau_cities_Aqtau : Ind City ;
+
+  fun Countries_KAZ_provinces_OngtustikQazaqstan : Ind Province ;
+
+  fun Countries_KAZ_provinces_OngtustikQazaqstan_cities_Shymkent : Ind City ;
+
+  fun Countries_KAZ_provinces_Pavlodar : Ind Province ;
+
+  fun Countries_KAZ_provinces_Pavlodar_cities_Ekibastuz : Ind City ;
+
+  fun Countries_KAZ_provinces_Pavlodar_cities_Pavlodar : Ind City ;
+
+  fun Countries_KAZ_provinces_Qaraghandy : Ind Province ;
+
+  fun Countries_KAZ_provinces_Qaraghandy_cities_Karaganda : Ind City ;
+
+  fun Countries_KAZ_provinces_Qaraghandy_cities_Temirtau : Ind City ;
+
+  fun Countries_KAZ_provinces_Qostanay : Ind Province ;
+
+  fun Countries_KAZ_provinces_Qostanay_cities_Qostanay : Ind City ;
+
+  fun Countries_KAZ_provinces_Qostanay_cities_Rudny : Ind City ;
+
+  fun Countries_KAZ_provinces_Qyzylorda : Ind Province ;
+
+  fun Countries_KAZ_provinces_Qyzylorda_cities_Qyzylorda : Ind City ;
+
+  fun Countries_KAZ_provinces_Semey : Ind Province ;
+
+  fun Countries_KAZ_provinces_Semey_cities_Semey : Ind City ;
+
+  fun Countries_KAZ_provinces_ShyghysQazaqstan : Ind Province ;
+
+  fun Countries_KAZ_provinces_ShyghysQazaqstan_cities_Oskemen : Ind City ;
+
+  fun Countries_KAZ_provinces_SoltustikQazaqstan : Ind Province ;
+
+  fun Countries_KAZ_provinces_SoltustikQazaqstan_cities_Petropavl : Ind City ;
+
+  fun Countries_KAZ_provinces_Taldyqorghan : Ind Province ;
+
+  fun Countries_KAZ_provinces_Taldyqorghan_cities_Taldyqorghan : Ind City ;
+
+  fun Countries_KAZ_provinces_Torghay : Ind Province ;
+
+  fun Countries_KAZ_provinces_Torghay_cities_Arqalyq : Ind City ;
+
+  fun Countries_KAZ_provinces_Zhambyl : Ind Province ;
+
+  fun Countries_KAZ_provinces_Zhambyl_cities_Dzhambul : Ind City ;
+
+  fun Countries_KAZ_provinces_Zhambyl_cities_Zhambyl : Ind City ;
+
+  fun Countries_KAZ_provinces_Zhezkazghan : Ind Province ;
+
+  fun Countries_KAZ_provinces_Zhezkazghan_cities_Zhezkazghan : Ind City ;
+
+  fun Countries_KAZ_provinces_Zhezkazghan_cities_Zhezqazghan : Ind City ;
+
+  fun Countries_KGZ_cities_Bishkek : Ind City ;
+
+  fun Countries_KIR_cities_Tarawa : Ind City ;
+
+  fun Countries_KN_cities_Basseterre : Ind City ;
+
+  fun Countries_KWT_cities_Kuwait : Ind City ;
+
+  fun Countries_K_cities_PhnomPenh : Ind City ;
+
+  fun Countries_LAO_cities_Vientiane : Ind City ;
+
+  fun Countries_LAR_cities_Bengasi : Ind City ;
+
+  fun Countries_LAR_cities_Tripoli : Ind City ;
+
+  fun Countries_LB_cities_Monrovia : Ind City ;
+
+  fun Countries_LS_cities_Maseru : Ind City ;
+
+  fun Countries_LT_cities_Vilnius : Ind City ;
+
+  fun Countries_LV_cities_Riga : Ind City ;
+
+  fun Countries_L_cities_Luxembourg : Ind City ;
+
+  fun Countries_MAL_cities_SeloyangBaru : Ind City ;
+
+  fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur : Ind Province ;
+
+  fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_KualaLumpur : Ind City ;
+
+  fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_PetalingJaya : Ind City ;
+
+  fun Countries_MAL_provinces_Fed_Terr_ofLabuan : Ind Province ;
+
+  fun Countries_MAL_provinces_Fed_Terr_ofLabuan_cities_Labuan : Ind City ;
+
+  fun Countries_MAL_provinces_Johor : Ind Province ;
+
+  fun Countries_MAL_provinces_Johor_cities_JohorBaharu : Ind City ;
+
+  fun Countries_MAL_provinces_Kedah : Ind Province ;
+
+  fun Countries_MAL_provinces_Kedah_cities_AlorSetar : Ind City ;
+
+  fun Countries_MAL_provinces_Kelantan : Ind Province ;
+
+  fun Countries_MAL_provinces_Kelantan_cities_KotaBaharu : Ind City ;
+
+  fun Countries_MAL_provinces_Melaka : Ind Province ;
+
+  fun Countries_MAL_provinces_Melaka_cities_Melaka : Ind City ;
+
+  fun Countries_MAL_provinces_NegeriSembilan : Ind Province ;
+
+  fun Countries_MAL_provinces_NegeriSembilan_cities_Seremban : Ind City ;
+
+  fun Countries_MAL_provinces_Pahang : Ind Province ;
+
+  fun Countries_MAL_provinces_Pahang_cities_Kuantan : Ind City ;
+
+  fun Countries_MAL_provinces_Perak : Ind Province ;
+
+  fun Countries_MAL_provinces_Perak_cities_Ipoh : Ind City ;
+
+  fun Countries_MAL_provinces_Perak_cities_Taiping : Ind City ;
+
+  fun Countries_MAL_provinces_Perlis : Ind Province ;
+
+  fun Countries_MAL_provinces_Perlis_cities_Kangar : Ind City ;
+
+  fun Countries_MAL_provinces_PulauPinang : Ind Province ;
+
+  fun Countries_MAL_provinces_PulauPinang_cities_GeorgeTown : Ind City ;
+
+  fun Countries_MAL_provinces_Sabah : Ind Province ;
+
+  fun Countries_MAL_provinces_Sabah_cities_KotaKinabalu : Ind City ;
+
+  fun Countries_MAL_provinces_Sabah_cities_Sandakan : Ind City ;
+
+  fun Countries_MAL_provinces_Sabah_cities_Tawai : Ind City ;
+
+  fun Countries_MAL_provinces_Sarawak : Ind Province ;
+
+  fun Countries_MAL_provinces_Sarawak_cities_Kuching : Ind City ;
+
+  fun Countries_MAL_provinces_Sarawak_cities_Sibu : Ind City ;
+
+  fun Countries_MAL_provinces_Selangor : Ind Province ;
+
+  fun Countries_MAL_provinces_Selangor_cities_Kelang : Ind City ;
+
+  fun Countries_MAL_provinces_Selangor_cities_ShahAlam : Ind City ;
+
+  fun Countries_MAL_provinces_Terengganu : Ind Province ;
+
+  fun Countries_MAL_provinces_Terengganu_cities_KualaTerengganu : Ind City ;
+
+  fun Countries_MA_cities_Agadir : Ind City ;
+
+  fun Countries_MA_cities_BeniMellal : Ind City ;
+
+  fun Countries_MA_cities_Casablanca : Ind City ;
+
+  fun Countries_MA_cities_Fes : Ind City ;
+
+  fun Countries_MA_cities_Kenitra : Ind City ;
+
+  fun Countries_MA_cities_Khouribga : Ind City ;
+
+  fun Countries_MA_cities_Marrakech : Ind City ;
+
+  fun Countries_MA_cities_Meknes : Ind City ;
+
+  fun Countries_MA_cities_Oujda : Ind City ;
+
+  fun Countries_MA_cities_Rabat : Ind City ;
+
+  fun Countries_MA_cities_Safi : Ind City ;
+
+  fun Countries_MA_cities_Tanger : Ind City ;
+
+  fun Countries_MA_cities_Tetouan : Ind City ;
+
+  fun Countries_MA_provinces_Centre : Ind Province ;
+
+  fun Countries_MA_provinces_CentreNord : Ind Province ;
+
+  fun Countries_MA_provinces_CentreSud : Ind Province ;
+
+  fun Countries_MA_provinces_NordOuest : Ind Province ;
+
+  fun Countries_MA_provinces_Oriental : Ind Province ;
+
+  fun Countries_MA_provinces_Tensift : Ind Province ;
+
+  fun Countries_MC_cities_Monaco : Ind City ;
+
+  fun Countries_MD_cities_Chisinau : Ind City ;
+
+  fun Countries_MEX_cities_AtizapandeZaragoza : Ind City ;
+
+  fun Countries_MEX_cities_CiudadApodaca : Ind City ;
+
+  fun Countries_MEX_cities_Llave : Ind City ;
+
+  fun Countries_MEX_cities_SanPedroGarzaGarcia : Ind City ;
+
+  fun Countries_MEX_cities_SoledaddeGracianoSanchez : Ind City ;
+
+  fun Countries_MEX_provinces_Aguascalientes : Ind Province ;
+
+  fun Countries_MEX_provinces_Aguascalientes_cities_Aguascalientes : Ind City ;
+
+  fun Countries_MEX_provinces_BajaCalifornia : Ind Province ;
+
+  fun Countries_MEX_provinces_BajaCaliforniaSur : Ind Province ;
+
+  fun Countries_MEX_provinces_BajaCaliforniaSur_cities_LaPaz : Ind City ;
+
+  fun Countries_MEX_provinces_BajaCalifornia_cities_Ensenada : Ind City ;
+
+  fun Countries_MEX_provinces_BajaCalifornia_cities_Mexicali : Ind City ;
+
+  fun Countries_MEX_provinces_BajaCalifornia_cities_Tijuana : Ind City ;
+
+  fun Countries_MEX_provinces_Campeche : Ind Province ;
+
+  fun Countries_MEX_provinces_Campeche_cities_Campeche : Ind City ;
+
+  fun Countries_MEX_provinces_Chiapas : Ind Province ;
+
+  fun Countries_MEX_provinces_Chiapas_cities_Nezahualcoyotl : Ind City ;
+
+  fun Countries_MEX_provinces_Chiapas_cities_Tapachula : Ind City ;
+
+  fun Countries_MEX_provinces_Chiapas_cities_Tonala : Ind City ;
+
+  fun Countries_MEX_provinces_Chiapas_cities_TuxtlaGutierrez : Ind City ;
+
+  fun Countries_MEX_provinces_Chihuahua : Ind Province ;
+
+  fun Countries_MEX_provinces_Chihuahua_cities_Chihuahua : Ind City ;
+
+  fun Countries_MEX_provinces_Chihuahua_cities_Juarez : Ind City ;
+
+  fun Countries_MEX_provinces_Coahuila : Ind Province ;
+
+  fun Countries_MEX_provinces_Coahuila_cities_Monclova : Ind City ;
+
+  fun Countries_MEX_provinces_Coahuila_cities_Saltillo : Ind City ;
+
+  fun Countries_MEX_provinces_Coahuila_cities_Torreon : Ind City ;
+
+  fun Countries_MEX_provinces_Colima : Ind Province ;
+
+  fun Countries_MEX_provinces_Colima_cities_Colima : Ind City ;
+
+  fun Countries_MEX_provinces_DistritoFederal : Ind Province ;
+
+  fun Countries_MEX_provinces_DistritoFederal_cities_MexicoCity : Ind City ;
+
+  fun Countries_MEX_provinces_Durango : Ind Province ;
+
+  fun Countries_MEX_provinces_Durango_cities_Durango : Ind City ;
+
+  fun Countries_MEX_provinces_Durango_cities_GomezPalacio : Ind City ;
+
+  fun Countries_MEX_provinces_Durango_cities_VictoriadeDurango : Ind City ;
+
+  fun Countries_MEX_provinces_Guanajuato : Ind Province ;
+
+  fun Countries_MEX_provinces_Guanajuato_cities_Celaya : Ind City ;
+
+  fun Countries_MEX_provinces_Guanajuato_cities_Guanajuato : Ind City ;
+
+  fun Countries_MEX_provinces_Guanajuato_cities_Irapuato : Ind City ;
+
+  fun Countries_MEX_provinces_Guanajuato_cities_Leon : Ind City ;
+
+  fun Countries_MEX_provinces_Guanajuato_cities_Salamanca : Ind City ;
+
+  fun Countries_MEX_provinces_Guerrero : Ind Province ;
+
+  fun Countries_MEX_provinces_Guerrero_cities_Acapulco : Ind City ;
+
+  fun Countries_MEX_provinces_Guerrero_cities_Chilpancingo : Ind City ;
+
+  fun Countries_MEX_provinces_Hidalgo : Ind Province ;
+
+  fun Countries_MEX_provinces_Hidalgo_cities_Pachuca : Ind City ;
+
+  fun Countries_MEX_provinces_Hidalgo_cities_PachucadeSoto : Ind City ;
+
+  fun Countries_MEX_provinces_Jalisco : Ind Province ;
+
+  fun Countries_MEX_provinces_Jalisco_cities_Cuautla : Ind City ;
+
+  fun Countries_MEX_provinces_Jalisco_cities_Guadalajara : Ind City ;
+
+  fun Countries_MEX_provinces_Jalisco_cities_Tlaquepaque : Ind City ;
+
+  fun Countries_MEX_provinces_Jalisco_cities_Zapopan : Ind City ;
+
+  fun Countries_MEX_provinces_Mexico_Estadode : Ind Province ;
+
+  fun Countries_MEX_provinces_Mexico_Estadode_cities_Toluca : Ind City ;
+
+  fun Countries_MEX_provinces_Mexico_Estadode_cities_TolucadeLerdo : Ind City ;
+
+  fun Countries_MEX_provinces_Michoacan : Ind Province ;
+
+  fun Countries_MEX_provinces_Michoacan_cities_Morelia : Ind City ;
+
+  fun Countries_MEX_provinces_Michoacan_cities_Uruapan : Ind City ;
+
+  fun Countries_MEX_provinces_Michoacan_cities_Zamora : Ind City ;
+
+  fun Countries_MEX_provinces_Morelos : Ind Province ;
+
+  fun Countries_MEX_provinces_Morelos_cities_Cuernavaca : Ind City ;
+
+  fun Countries_MEX_provinces_Nayarit : Ind Province ;
+
+  fun Countries_MEX_provinces_Nayarit_cities_Tepic : Ind City ;
+
+  fun Countries_MEX_provinces_NuevoLeon : Ind Province ;
+
+  fun Countries_MEX_provinces_NuevoLeon_cities_CiudadSantaCatarina : Ind City ;
+
+  fun Countries_MEX_provinces_NuevoLeon_cities_Guadalupe : Ind City ;
+
+  fun Countries_MEX_provinces_NuevoLeon_cities_Monterrey : Ind City ;
+
+  fun Countries_MEX_provinces_NuevoLeon_cities_SanNicolasdelosGarza : Ind City ;
+
+  fun Countries_MEX_provinces_Oaxaca : Ind Province ;
+
+  fun Countries_MEX_provinces_Oaxaca_cities_Oaxaca : Ind City ;
+
+  fun Countries_MEX_provinces_Puebla : Ind Province ;
+
+  fun Countries_MEX_provinces_Puebla_cities_Puebla : Ind City ;
+
+  fun Countries_MEX_provinces_Puebla_cities_Tehuacan : Ind City ;
+
+  fun Countries_MEX_provinces_Queretaro : Ind Province ;
+
+  fun Countries_MEX_provinces_Queretaro_cities_Queretaro : Ind City ;
+
+  fun Countries_MEX_provinces_QuintanaRoo : Ind Province ;
+
+  fun Countries_MEX_provinces_QuintanaRoo_cities_Cancun : Ind City ;
+
+  fun Countries_MEX_provinces_QuintanaRoo_cities_Chetumal : Ind City ;
+
+  fun Countries_MEX_provinces_SanLuisPotosi : Ind Province ;
+
+  fun Countries_MEX_provinces_SanLuisPotosi_cities_SanLuisPotosi : Ind City ;
+
+  fun Countries_MEX_provinces_Sinaloa : Ind Province ;
+
+  fun Countries_MEX_provinces_Sinaloa_cities_Culiacan : Ind City ;
+
+  fun Countries_MEX_provinces_Sinaloa_cities_LosMochis : Ind City ;
+
+  fun Countries_MEX_provinces_Sinaloa_cities_Mazatlan : Ind City ;
+
+  fun Countries_MEX_provinces_Sonora : Ind Province ;
+
+  fun Countries_MEX_provinces_Sonora_cities_CiudadObregon : Ind City ;
+
+  fun Countries_MEX_provinces_Sonora_cities_Hermosillo : Ind City ;
+
+  fun Countries_MEX_provinces_Sonora_cities_HeroicaNogales : Ind City ;
+
+  fun Countries_MEX_provinces_Tabasco : Ind Province ;
+
+  fun Countries_MEX_provinces_Tabasco_cities_Villahermosa : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas : Ind Province ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_CiudadMadero : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_CiudadVictoria : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_Matamoros : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_NuevoLaredo : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_Reynosa : Ind City ;
+
+  fun Countries_MEX_provinces_Tamaulipas_cities_Tampico : Ind City ;
+
+  fun Countries_MEX_provinces_Tlaxcala : Ind Province ;
+
+  fun Countries_MEX_provinces_Tlaxcala_cities_Tlaxcala : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz : Ind Province ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_Coatzacoalcos : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_Cordoba : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_Jalapa : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_Minatitlan : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_Orizaba : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_PozaRica : Ind City ;
+
+  fun Countries_MEX_provinces_Veracruz_cities_XalapaEnriquez : Ind City ;
+
+  fun Countries_MEX_provinces_Yucatan : Ind Province ;
+
+  fun Countries_MEX_provinces_Yucatan_cities_Merida : Ind City ;
+
+  fun Countries_MEX_provinces_Zacatecas : Ind Province ;
+
+  fun Countries_MEX_provinces_Zacatecas_cities_Zacatecas : Ind City ;
+
+  fun Countries_MH_cities_Majuro : Ind City ;
+
+  fun Countries_MK_cities_Skopje : Ind City ;
+
+  fun Countries_MNG_cities_Ulaanbaatar : Ind City ;
+
+  fun Countries_MOC_cities_Matala : Ind City ;
+
+  fun Countries_MOC_provinces_CaboDelgado : Ind Province ;
+
+  fun Countries_MOC_provinces_CaboDelgado_cities_Pemba : Ind City ;
+
+  fun Countries_MOC_provinces_Gaza : Ind Province ;
+
+  fun Countries_MOC_provinces_Gaza_cities_XaiXai : Ind City ;
+
+  fun Countries_MOC_provinces_Inhambane : Ind Province ;
+
+  fun Countries_MOC_provinces_Inhambane_cities_Inhambane : Ind City ;
+
+  fun Countries_MOC_provinces_Manica : Ind Province ;
+
+  fun Countries_MOC_provinces_Manica_cities_Chimoio : Ind City ;
+
+  fun Countries_MOC_provinces_Maputo : Ind Province ;
+
+  fun Countries_MOC_provinces_Maputo_cities_Nacala : Ind City ;
+
+  fun Countries_MOC_provinces_Maputo_munic : Ind Province ;
+
+  fun Countries_MOC_provinces_Maputo_munic_cities_Maputo : Ind City ;
+
+  fun Countries_MOC_provinces_Nampula : Ind Province ;
+
+  fun Countries_MOC_provinces_Nampula_cities_Nampula : Ind City ;
+
+  fun Countries_MOC_provinces_Niassa : Ind Province ;
+
+  fun Countries_MOC_provinces_Niassa_cities_Lichinga : Ind City ;
+
+  fun Countries_MOC_provinces_Sofala : Ind Province ;
+
+  fun Countries_MOC_provinces_Sofala_cities_Beira : Ind City ;
+
+  fun Countries_MOC_provinces_Tete : Ind Province ;
+
+  fun Countries_MOC_provinces_Tete_cities_Tete : Ind City ;
+
+  fun Countries_MOC_provinces_Zambezia : Ind Province ;
+
+  fun Countries_MOC_provinces_Zambezia_cities_Quelimane : Ind City ;
+
+  fun Countries_MS_cities_PortLouis : Ind City ;
+
+  fun Countries_MV_cities_Male : Ind City ;
+
+  fun Countries_MW_cities_Lilongwe : Ind City ;
+
+  fun Countries_MYA_provinces_Ayeyarwady : Ind Province ;
+
+  fun Countries_MYA_provinces_Ayeyarwady_cities_Pathein : Ind City ;
+
+  fun Countries_MYA_provinces_Bago : Ind Province ;
+
+  fun Countries_MYA_provinces_Bago_cities_Bago : Ind City ;
+
+  fun Countries_MYA_provinces_Chin : Ind Province ;
+
+  fun Countries_MYA_provinces_Chin_cities_Hakha : Ind City ;
+
+  fun Countries_MYA_provinces_Kachin : Ind Province ;
+
+  fun Countries_MYA_provinces_Kachin_cities_Myitkyina : Ind City ;
+
+  fun Countries_MYA_provinces_Kayah : Ind Province ;
+
+  fun Countries_MYA_provinces_Kayah_cities_Loikaw : Ind City ;
+
+  fun Countries_MYA_provinces_Kayin : Ind Province ;
+
+  fun Countries_MYA_provinces_Kayin_cities_Hpaan : Ind City ;
+
+  fun Countries_MYA_provinces_Magway : Ind Province ;
+
+  fun Countries_MYA_provinces_Magway_cities_Magway : Ind City ;
+
+  fun Countries_MYA_provinces_Mandalay : Ind Province ;
+
+  fun Countries_MYA_provinces_Mandalay_cities_Mandalay : Ind City ;
+
+  fun Countries_MYA_provinces_Mon : Ind Province ;
+
+  fun Countries_MYA_provinces_Mon_cities_Moulmein : Ind City ;
+
+  fun Countries_MYA_provinces_Rakhine : Ind Province ;
+
+  fun Countries_MYA_provinces_Rakhine_cities_Akyab : Ind City ;
+
+  fun Countries_MYA_provinces_Sagaing : Ind Province ;
+
+  fun Countries_MYA_provinces_Sagaing_cities_Monywa : Ind City ;
+
+  fun Countries_MYA_provinces_Sagaing_cities_Sagaing : Ind City ;
+
+  fun Countries_MYA_provinces_Shan : Ind Province ;
+
+  fun Countries_MYA_provinces_Shan_cities_Taunggyi : Ind City ;
+
+  fun Countries_MYA_provinces_Tanintharyi : Ind Province ;
+
+  fun Countries_MYA_provinces_Tanintharyi_cities_Tavoy : Ind City ;
+
+  fun Countries_MYA_provinces_Yangon : Ind Province ;
+
+  fun Countries_MYA_provinces_Yangon_cities_Rangoon : Ind City ;
+
+  fun Countries_M_cities_Valletta : Ind City ;
+
+  fun Countries_NAM_cities_Windhoek : Ind City ;
+
+  fun Countries_NAU_cities_Yaren : Ind City ;
+
+  fun Countries_NCA_cities_Noumea : Ind City ;
+
+  fun Countries_NEP_cities_Kathmandu : Ind City ;
+
+  fun Countries_NIC_cities_Chinandega : Ind City ;
+
+  fun Countries_NIC_cities_Leon : Ind City ;
+
+  fun Countries_NIC_cities_Managua : Ind City ;
+
+  fun Countries_NIC_cities_Masaya : Ind City ;
+
+  fun Countries_NL_provinces_Drenthe : Ind Province ;
+
+  fun Countries_NL_provinces_Drenthe_cities_Assen : Ind City ;
+
+  fun Countries_NL_provinces_Flevoland : Ind Province ;
+
+  fun Countries_NL_provinces_Flevoland_cities_Lelystad : Ind City ;
+
+  fun Countries_NL_provinces_Friesland : Ind Province ;
+
+  fun Countries_NL_provinces_Friesland_cities_Leeuwarden : Ind City ;
+
+  fun Countries_NL_provinces_Gelderland : Ind Province ;
+
+  fun Countries_NL_provinces_Gelderland_cities_Arnhem : Ind City ;
+
+  fun Countries_NL_provinces_Gelderland_cities_Nijmegen : Ind City ;
+
+  fun Countries_NL_provinces_Groningen : Ind Province ;
+
+  fun Countries_NL_provinces_Groningen_cities_Groningen : Ind City ;
+
+  fun Countries_NL_provinces_Limburg : Ind Province ;
+
+  fun Countries_NL_provinces_Limburg_cities_Geleen : Ind City ;
+
+  fun Countries_NL_provinces_Limburg_cities_Heerlen : Ind City ;
+
+  fun Countries_NL_provinces_Limburg_cities_Maastricht : Ind City ;
+
+  fun Countries_NL_provinces_NoordBrabant : Ind Province ;
+
+  fun Countries_NL_provinces_NoordBrabant_cities_Breda : Ind City ;
+
+  fun Countries_NL_provinces_NoordBrabant_cities_Eindhoven : Ind City ;
+
+  fun Countries_NL_provinces_NoordBrabant_cities_Tilburg : Ind City ;
+
+  fun Countries_NL_provinces_NoordBrabant_cities_sHertogenbosch : Ind City ;
+
+  fun Countries_NL_provinces_NoordHolland : Ind Province ;
+
+  fun Countries_NL_provinces_NoordHolland_cities_Amsterdam : Ind City ;
+
+  fun Countries_NL_provinces_NoordHolland_cities_Haarlem : Ind City ;
+
+  fun Countries_NL_provinces_NoordHolland_cities_Hilversum : Ind City ;
+
+  fun Countries_NL_provinces_NoordHolland_cities_Velsen : Ind City ;
+
+  fun Countries_NL_provinces_NoordHolland_cities_Zaanstreek : Ind City ;
+
+  fun Countries_NL_provinces_Overijssel : Ind Province ;
+
+  fun Countries_NL_provinces_Overijssel_cities_Enschede : Ind City ;
+
+  fun Countries_NL_provinces_Overijssel_cities_Zwolle : Ind City ;
+
+  fun Countries_NL_provinces_Utrecht : Ind Province ;
+
+  fun Countries_NL_provinces_Utrecht_cities_Utrecht : Ind City ;
+
+  fun Countries_NL_provinces_Zeeland : Ind Province ;
+
+  fun Countries_NL_provinces_Zeeland_cities_Middelburg : Ind City ;
+
+  fun Countries_NL_provinces_ZuidHolland : Ind Province ;
+
+  fun Countries_NL_provinces_ZuidHolland_cities_Dordrecht : Ind City ;
+
+  fun Countries_NL_provinces_ZuidHolland_cities_Leiden : Ind City ;
+
+  fun Countries_NL_provinces_ZuidHolland_cities_Rotterdam : Ind City ;
+
+  fun Countries_NL_provinces_ZuidHolland_cities_sGravenhage : Ind City ;
+
+  fun Countries_NOK_cities_Anju : Ind City ;
+
+  fun Countries_NOK_cities_Chongjin : Ind City ;
+
+  fun Countries_NOK_cities_Haeju : Ind City ;
+
+  fun Countries_NOK_cities_HamhungHungnam : Ind City ;
+
+  fun Countries_NOK_cities_Huichon : Ind City ;
+
+  fun Countries_NOK_cities_Kaesong : Ind City ;
+
+  fun Countries_NOK_cities_Kanggye : Ind City ;
+
+  fun Countries_NOK_cities_Kusong : Ind City ;
+
+  fun Countries_NOK_cities_Nampo : Ind City ;
+
+  fun Countries_NOK_cities_Pyongyang : Ind City ;
+
+  fun Countries_NOK_cities_Sinpo : Ind City ;
+
+  fun Countries_NOK_cities_Sinuiju : Ind City ;
+
+  fun Countries_NOK_cities_Songjin : Ind City ;
+
+  fun Countries_NOK_cities_Sunchon : Ind City ;
+
+  fun Countries_NOK_cities_Tanchon : Ind City ;
+
+  fun Countries_NOK_cities_Tokchon : Ind City ;
+
+  fun Countries_NOK_cities_Wonsan : Ind City ;
+
+  fun Countries_NZ_cities_Auckland : Ind City ;
+
+  fun Countries_NZ_cities_Wellington : Ind City ;
+
+  fun Countries_N_provinces_Akershus : Ind Province ;
+
+  fun Countries_N_provinces_AustAgder : Ind Province ;
+
+  fun Countries_N_provinces_AustAgder_cities_Arendal : Ind City ;
+
+  fun Countries_N_provinces_Buskerud : Ind Province ;
+
+  fun Countries_N_provinces_Buskerud_cities_Drammen : Ind City ;
+
+  fun Countries_N_provinces_Finnmark : Ind Province ;
+
+  fun Countries_N_provinces_Finnmark_cities_Hammerfest : Ind City ;
+
+  fun Countries_N_provinces_Finnmark_cities_Vadsoe : Ind City ;
+
+  fun Countries_N_provinces_Hedmark : Ind Province ;
+
+  fun Countries_N_provinces_Hedmark_cities_Hamar : Ind City ;
+
+  fun Countries_N_provinces_Hordaland : Ind Province ;
+
+  fun Countries_N_provinces_Hordaland_cities_Bergen : Ind City ;
+
+  fun Countries_N_provinces_MoereogRomsdal : Ind Province ;
+
+  fun Countries_N_provinces_MoereogRomsdal_cities_Molde : Ind City ;
+
+  fun Countries_N_provinces_NordTrondelag : Ind Province ;
+
+  fun Countries_N_provinces_NordTrondelag_cities_Steinkjer : Ind City ;
+
+  fun Countries_N_provinces_Nordland : Ind Province ;
+
+  fun Countries_N_provinces_Nordland_cities_Bodoe : Ind City ;
+
+  fun Countries_N_provinces_Nordland_cities_Narvik : Ind City ;
+
+  fun Countries_N_provinces_Nordland_cities_Svolvaer : Ind City ;
+
+  fun Countries_N_provinces_Oestfold : Ind Province ;
+
+  fun Countries_N_provinces_Oestfold_cities_Moss : Ind City ;
+
+  fun Countries_N_provinces_Oppland : Ind Province ;
+
+  fun Countries_N_provinces_Oppland_cities_Lillehammer : Ind City ;
+
+  fun Countries_N_provinces_Oslo : Ind Province ;
+
+  fun Countries_N_provinces_Oslo_cities_Oslo : Ind City ;
+
+  fun Countries_N_provinces_Rogaland : Ind Province ;
+
+  fun Countries_N_provinces_Rogaland_cities_Stavanger : Ind City ;
+
+  fun Countries_N_provinces_SoerTrondelag : Ind Province ;
+
+  fun Countries_N_provinces_SoerTrondelag_cities_Trondheim : Ind City ;
+
+  fun Countries_N_provinces_SognogFjordane : Ind Province ;
+
+  fun Countries_N_provinces_SognogFjordane_cities_Hermannsverk : Ind City ;
+
+  fun Countries_N_provinces_Telemark : Ind Province ;
+
+  fun Countries_N_provinces_Telemark_cities_Skien : Ind City ;
+
+  fun Countries_N_provinces_Troms : Ind Province ;
+
+  fun Countries_N_provinces_Troms_cities_Tromsoe : Ind City ;
+
+  fun Countries_N_provinces_VestAgder : Ind Province ;
+
+  fun Countries_N_provinces_VestAgder_cities_Kristiansand : Ind City ;
+
+  fun Countries_N_provinces_Vestfold : Ind Province ;
+
+  fun Countries_N_provinces_Vestfold_cities_Toensberg : Ind City ;
+
+  fun Countries_OM_cities_Muscat : Ind City ;
+
+  fun Countries_PAL_cities_Koror : Ind City ;
+
+  fun Countries_PA_provinces_BocasdelToro : Ind Province ;
+
+  fun Countries_PA_provinces_BocasdelToro_cities_BocasdelToro : Ind City ;
+
+  fun Countries_PA_provinces_Chiriqui : Ind Province ;
+
+  fun Countries_PA_provinces_Chiriqui_cities_David : Ind City ;
+
+  fun Countries_PA_provinces_Cocle : Ind Province ;
+
+  fun Countries_PA_provinces_Cocle_cities_Penonome : Ind City ;
+
+  fun Countries_PA_provinces_Colon : Ind Province ;
+
+  fun Countries_PA_provinces_Colon_cities_Colon : Ind City ;
+
+  fun Countries_PA_provinces_ComarcadeSanBlas : Ind Province ;
+
+  fun Countries_PA_provinces_ComarcadeSanBlas_cities_ElPorvenir : Ind City ;
+
+  fun Countries_PA_provinces_Darien : Ind Province ;
+
+  fun Countries_PA_provinces_Darien_cities_LaPalma : Ind City ;
+
+  fun Countries_PA_provinces_Herrera : Ind Province ;
+
+  fun Countries_PA_provinces_Herrera_cities_Chitre : Ind City ;
+
+  fun Countries_PA_provinces_LosSantos : Ind Province ;
+
+  fun Countries_PA_provinces_LosSantos_cities_LasTablas : Ind City ;
+
+  fun Countries_PA_provinces_Panama : Ind Province ;
+
+  fun Countries_PA_provinces_Panama_cities_PanamaCity : Ind City ;
+
+  fun Countries_PA_provinces_Panama_cities_SanMiguelito : Ind City ;
+
+  fun Countries_PA_provinces_Veraguas : Ind Province ;
+
+  fun Countries_PA_provinces_Veraguas_cities_Santiago : Ind City ;
+
+  fun Countries_PE_provinces_Amazonas : Ind Province ;
+
+  fun Countries_PE_provinces_Amazonas_cities_Chachapoyas : Ind City ;
+
+  fun Countries_PE_provinces_Ancash : Ind Province ;
+
+  fun Countries_PE_provinces_Ancash_cities_Chimbote : Ind City ;
+
+  fun Countries_PE_provinces_Ancash_cities_Huaraz : Ind City ;
+
+  fun Countries_PE_provinces_Apurimac : Ind Province ;
+
+  fun Countries_PE_provinces_Apurimac_cities_Abancay : Ind City ;
+
+  fun Countries_PE_provinces_Arequipa : Ind Province ;
+
+  fun Countries_PE_provinces_Arequipa_cities_Arequipa : Ind City ;
+
+  fun Countries_PE_provinces_Ayacucho : Ind Province ;
+
+  fun Countries_PE_provinces_Ayacucho_cities_Ayacucho : Ind City ;
+
+  fun Countries_PE_provinces_Cajamarca : Ind Province ;
+
+  fun Countries_PE_provinces_Cajamarca_cities_Cajamarca : Ind City ;
+
+  fun Countries_PE_provinces_Callao : Ind Province ;
+
+  fun Countries_PE_provinces_Callao_cities_Callao : Ind City ;
+
+  fun Countries_PE_provinces_Cuzco : Ind Province ;
+
+  fun Countries_PE_provinces_Cuzco_cities_Cuzco : Ind City ;
+
+  fun Countries_PE_provinces_Huancavelica : Ind Province ;
+
+  fun Countries_PE_provinces_Huancavelica_cities_Huancavelica : Ind City ;
+
+  fun Countries_PE_provinces_Huanuco : Ind Province ;
+
+  fun Countries_PE_provinces_Huanuco_cities_Huanuco : Ind City ;
+
+  fun Countries_PE_provinces_Ica : Ind Province ;
+
+  fun Countries_PE_provinces_Ica_cities_ChinchaAlta : Ind City ;
+
+  fun Countries_PE_provinces_Ica_cities_Ica : Ind City ;
+
+  fun Countries_PE_provinces_Junin : Ind Province ;
+
+  fun Countries_PE_provinces_Junin_cities_Huancayo : Ind City ;
+
+  fun Countries_PE_provinces_LaLibertad : Ind Province ;
+
+  fun Countries_PE_provinces_LaLibertad_cities_Trujillo : Ind City ;
+
+  fun Countries_PE_provinces_Lambayeque : Ind Province ;
+
+  fun Countries_PE_provinces_Lambayeque_cities_Chiclayo : Ind City ;
+
+  fun Countries_PE_provinces_Lima : Ind Province ;
+
+  fun Countries_PE_provinces_Lima_cities_Lima : Ind City ;
+
+  fun Countries_PE_provinces_Loreto : Ind Province ;
+
+  fun Countries_PE_provinces_Loreto_cities_Iquitos : Ind City ;
+
+  fun Countries_PE_provinces_MadredeDios : Ind Province ;
+
+  fun Countries_PE_provinces_MadredeDios_cities_PuertoMaldonado : Ind City ;
+
+  fun Countries_PE_provinces_Moquegua : Ind Province ;
+
+  fun Countries_PE_provinces_Moquegua_cities_Moquegua : Ind City ;
+
+  fun Countries_PE_provinces_Pasco : Ind Province ;
+
+  fun Countries_PE_provinces_Pasco_cities_CerrodePasco : Ind City ;
+
+  fun Countries_PE_provinces_Piura : Ind Province ;
+
+  fun Countries_PE_provinces_Piura_cities_Piura : Ind City ;
+
+  fun Countries_PE_provinces_Piura_cities_Sullana : Ind City ;
+
+  fun Countries_PE_provinces_Piura_cities_Talara : Ind City ;
+
+  fun Countries_PE_provinces_Puno : Ind Province ;
+
+  fun Countries_PE_provinces_Puno_cities_Juliaca : Ind City ;
+
+  fun Countries_PE_provinces_Puno_cities_Puno : Ind City ;
+
+  fun Countries_PE_provinces_SanMartin : Ind Province ;
+
+  fun Countries_PE_provinces_SanMartin_cities_Moyobamba : Ind City ;
+
+  fun Countries_PE_provinces_Tacna : Ind Province ;
+
+  fun Countries_PE_provinces_Tacna_cities_Tacna : Ind City ;
+
+  fun Countries_PE_provinces_Tumbes : Ind Province ;
+
+  fun Countries_PE_provinces_Tumbes_cities_Tumbes : Ind City ;
+
+  fun Countries_PE_provinces_Ucayali : Ind Province ;
+
+  fun Countries_PE_provinces_Ucayali_cities_Pucallpa : Ind City ;
+
+  fun Countries_PK_cities_Bahawalpur : Ind City ;
+
+  fun Countries_PK_cities_Chiniot : Ind City ;
+
+  fun Countries_PK_cities_DeraGhaziKhan : Ind City ;
+
+  fun Countries_PK_cities_Gujranwala : Ind City ;
+
+  fun Countries_PK_cities_Gujrat : Ind City ;
+
+  fun Countries_PK_cities_Hyderabad : Ind City ;
+
+  fun Countries_PK_cities_Islamabad : Ind City ;
+
+  fun Countries_PK_cities_Jhang : Ind City ;
+
+  fun Countries_PK_cities_Jhelum : Ind City ;
+
+  fun Countries_PK_cities_Karachi : Ind City ;
+
+  fun Countries_PK_cities_Kasur : Ind City ;
+
+  fun Countries_PK_cities_Lahore : Ind City ;
+
+  fun Countries_PK_cities_LahoreCantonment : Ind City ;
+
+  fun Countries_PK_cities_Larkana : Ind City ;
+
+  fun Countries_PK_cities_Lyallpur : Ind City ;
+
+  fun Countries_PK_cities_Mardan : Ind City ;
+
+  fun Countries_PK_cities_MirpurKhas : Ind City ;
+
+  fun Countries_PK_cities_Multan : Ind City ;
+
+  fun Countries_PK_cities_Nawabshah : Ind City ;
+
+  fun Countries_PK_cities_Okara : Ind City ;
+
+  fun Countries_PK_cities_Peshawar : Ind City ;
+
+  fun Countries_PK_cities_Quetta : Ind City ;
+
+  fun Countries_PK_cities_RahimYarKhan : Ind City ;
+
+  fun Countries_PK_cities_Rawalpindi : Ind City ;
+
+  fun Countries_PK_cities_Sahiwal : Ind City ;
+
+  fun Countries_PK_cities_Sargodha : Ind City ;
+
+  fun Countries_PK_cities_Sheikhupura : Ind City ;
+
+  fun Countries_PK_cities_Sialkot : Ind City ;
+
+  fun Countries_PK_cities_Sukkur : Ind City ;
+
+  fun Countries_PK_cities_WahCantonment : Ind City ;
+
+  fun Countries_PL_cities_DabrowaGornicza : Ind City ;
+
+  fun Countries_PL_cities_JastrzebieZdroj : Ind City ;
+
+  fun Countries_PL_provinces_Bialostockie : Ind Province ;
+
+  fun Countries_PL_provinces_Bialostockie_cities_Bialystok : Ind City ;
+
+  fun Countries_PL_provinces_Bialskopodlaskie : Ind Province ;
+
+  fun Countries_PL_provinces_Bialskopodlaskie_cities_BialaPodlaska : Ind City ;
+
+  fun Countries_PL_provinces_Bielskie : Ind Province ;
+
+  fun Countries_PL_provinces_Bielskie_cities_BielskoBiala : Ind City ;
+
+  fun Countries_PL_provinces_Bydgoskie : Ind Province ;
+
+  fun Countries_PL_provinces_Bydgoskie_cities_Bydgoszcz : Ind City ;
+
+  fun Countries_PL_provinces_Chelmskie : Ind Province ;
+
+  fun Countries_PL_provinces_Chelmskie_cities_Chelm : Ind City ;
+
+  fun Countries_PL_provinces_Ciechanowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Ciechanowskie_cities_Ciechanow : Ind City ;
+
+  fun Countries_PL_provinces_Czestochowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Czestochowskie_cities_Czestochowa : Ind City ;
+
+  fun Countries_PL_provinces_Elblaskie : Ind Province ;
+
+  fun Countries_PL_provinces_Elblaskie_cities_Elblag : Ind City ;
+
+  fun Countries_PL_provinces_Gdanskie : Ind Province ;
+
+  fun Countries_PL_provinces_Gdanskie_cities_Gdansk : Ind City ;
+
+  fun Countries_PL_provinces_Gdanskie_cities_Gdynia : Ind City ;
+
+  fun Countries_PL_provinces_Gorzowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolski : Ind City ;
+
+  fun Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolskie : Ind City ;
+
+  fun Countries_PL_provinces_Jeleniogorskie : Ind Province ;
+
+  fun Countries_PL_provinces_Jeleniogorskie_cities_JeleniaGora : Ind City ;
+
+  fun Countries_PL_provinces_Kaliskie : Ind Province ;
+
+  fun Countries_PL_provinces_Kaliskie_cities_Kalisz : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie : Ind Province ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Bytom : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Chorzow : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Gliwice : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Katowice : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_RudaSlaska : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Rybnik : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Sosnowiec : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Tychy : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_WodzilawSlaski : Ind City ;
+
+  fun Countries_PL_provinces_Katowickie_cities_Zabrze : Ind City ;
+
+  fun Countries_PL_provinces_Kieleckie : Ind Province ;
+
+  fun Countries_PL_provinces_Kieleckie_cities_Kielce : Ind City ;
+
+  fun Countries_PL_provinces_Koninskie : Ind Province ;
+
+  fun Countries_PL_provinces_Koninskie_cities_Konin : Ind City ;
+
+  fun Countries_PL_provinces_Koszalinskie : Ind Province ;
+
+  fun Countries_PL_provinces_Koszalinskie_cities_Koszalin : Ind City ;
+
+  fun Countries_PL_provinces_Krakowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Krakowskie_cities_Krakow : Ind City ;
+
+  fun Countries_PL_provinces_Krosnienskie : Ind Province ;
+
+  fun Countries_PL_provinces_Krosnienskie_cities_Krosno : Ind City ;
+
+  fun Countries_PL_provinces_Legnickie : Ind Province ;
+
+  fun Countries_PL_provinces_Legnickie_cities_Legnica : Ind City ;
+
+  fun Countries_PL_provinces_Leszczynskie : Ind Province ;
+
+  fun Countries_PL_provinces_Leszczynskie_cities_Leszno : Ind City ;
+
+  fun Countries_PL_provinces_Lodzkie : Ind Province ;
+
+  fun Countries_PL_provinces_Lodzkie_cities_Lodz : Ind City ;
+
+  fun Countries_PL_provinces_Lomzynskie : Ind Province ;
+
+  fun Countries_PL_provinces_Lomzynskie_cities_Lomza : Ind City ;
+
+  fun Countries_PL_provinces_Lubelskie : Ind Province ;
+
+  fun Countries_PL_provinces_Lubelskie_cities_Lublin : Ind City ;
+
+  fun Countries_PL_provinces_Nowosadeckie : Ind Province ;
+
+  fun Countries_PL_provinces_Nowosadeckie_cities_NowySacz : Ind City ;
+
+  fun Countries_PL_provinces_Olsztynskie : Ind Province ;
+
+  fun Countries_PL_provinces_Olsztynskie_cities_Olsztyn : Ind City ;
+
+  fun Countries_PL_provinces_Opolskie : Ind Province ;
+
+  fun Countries_PL_provinces_Opolskie_cities_Opole : Ind City ;
+
+  fun Countries_PL_provinces_Ostroleckie : Ind Province ;
+
+  fun Countries_PL_provinces_Ostroleckie_cities_Ostroleka : Ind City ;
+
+  fun Countries_PL_provinces_Pilskie : Ind Province ;
+
+  fun Countries_PL_provinces_Pilskie_cities_Pila : Ind City ;
+
+  fun Countries_PL_provinces_Piotrkowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Piotrkowskie_cities_PiottrkowTrybunalski : Ind City ;
+
+  fun Countries_PL_provinces_Plockie : Ind Province ;
+
+  fun Countries_PL_provinces_Plockie_cities_Plock : Ind City ;
+
+  fun Countries_PL_provinces_Poznanskie : Ind Province ;
+
+  fun Countries_PL_provinces_Poznanskie_cities_Poznan : Ind City ;
+
+  fun Countries_PL_provinces_Przemyskie : Ind Province ;
+
+  fun Countries_PL_provinces_Przemyskie_cities_Przemysl : Ind City ;
+
+  fun Countries_PL_provinces_Radomskie : Ind Province ;
+
+  fun Countries_PL_provinces_Radomskie_cities_Radom : Ind City ;
+
+  fun Countries_PL_provinces_Rzeszowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Rzeszowskie_cities_Rzeszow : Ind City ;
+
+  fun Countries_PL_provinces_Siedleckie : Ind Province ;
+
+  fun Countries_PL_provinces_Siedleckie_cities_Siedlce : Ind City ;
+
+  fun Countries_PL_provinces_Sieradzkie : Ind Province ;
+
+  fun Countries_PL_provinces_Sieradzkie_cities_Sieradz : Ind City ;
+
+  fun Countries_PL_provinces_Skierniewickie : Ind Province ;
+
+  fun Countries_PL_provinces_Skierniewickie_cities_Skierniewice : Ind City ;
+
+  fun Countries_PL_provinces_Slupskie : Ind Province ;
+
+  fun Countries_PL_provinces_Slupskie_cities_Slupsk : Ind City ;
+
+  fun Countries_PL_provinces_Suwalskie : Ind Province ;
+
+  fun Countries_PL_provinces_Suwalskie_cities_Suwalki : Ind City ;
+
+  fun Countries_PL_provinces_Szczecinskie : Ind Province ;
+
+  fun Countries_PL_provinces_Szczecinskie_cities_Szczecin : Ind City ;
+
+  fun Countries_PL_provinces_Tarnobrzeskie : Ind Province ;
+
+  fun Countries_PL_provinces_Tarnobrzeskie_cities_Tarnobrzeg : Ind City ;
+
+  fun Countries_PL_provinces_Tarnowskie : Ind Province ;
+
+  fun Countries_PL_provinces_Tarnowskie_cities_Tarnow : Ind City ;
+
+  fun Countries_PL_provinces_Torunskie : Ind Province ;
+
+  fun Countries_PL_provinces_Torunskie_cities_Grudziadz : Ind City ;
+
+  fun Countries_PL_provinces_Torunskie_cities_Torun : Ind City ;
+
+  fun Countries_PL_provinces_Walbrzyskie : Ind Province ;
+
+  fun Countries_PL_provinces_Walbrzyskie_cities_Walbrzych : Ind City ;
+
+  fun Countries_PL_provinces_Warszwaskie : Ind Province ;
+
+  fun Countries_PL_provinces_Warszwaskie_cities_Warsaw : Ind City ;
+
+  fun Countries_PL_provinces_Wloclawskie : Ind Province ;
+
+  fun Countries_PL_provinces_Wloclawskie_cities_Wloclawek : Ind City ;
+
+  fun Countries_PL_provinces_Wroclawskie : Ind Province ;
+
+  fun Countries_PL_provinces_Wroclawskie_cities_Wroclaw : Ind City ;
+
+  fun Countries_PL_provinces_Zamojskie : Ind Province ;
+
+  fun Countries_PL_provinces_Zamojskie_cities_Zamosc : Ind City ;
+
+  fun Countries_PL_provinces_Zielonogorskie : Ind Province ;
+
+  fun Countries_PL_provinces_Zielonogorskie_cities_ZielonaGora : Ind City ;
+
+  fun Countries_PNG_cities_PortMoresby : Ind City ;
+
+  fun Countries_PY_cities_Asuncion : Ind City ;
+
+  fun Countries_P_provinces_Aveiro : Ind Province ;
+
+  fun Countries_P_provinces_Azores_The : Ind Province ;
+
+  fun Countries_P_provinces_Beja : Ind Province ;
+
+  fun Countries_P_provinces_Braga : Ind Province ;
+
+  fun Countries_P_provinces_Braga_cities_Braga : Ind City ;
+
+  fun Countries_P_provinces_Braganca : Ind Province ;
+
+  fun Countries_P_provinces_CasteloBranco : Ind Province ;
+
+  fun Countries_P_provinces_Coimbra : Ind Province ;
+
+  fun Countries_P_provinces_Coimbra_cities_Coimbra : Ind City ;
+
+  fun Countries_P_provinces_Evora : Ind Province ;
+
+  fun Countries_P_provinces_Faro : Ind Province ;
+
+  fun Countries_P_provinces_Guarda : Ind Province ;
+
+  fun Countries_P_provinces_Leiria : Ind Province ;
+
+  fun Countries_P_provinces_Lisbon : Ind Province ;
+
+  fun Countries_P_provinces_Lisbon_cities_Almada : Ind City ;
+
+  fun Countries_P_provinces_Lisbon_cities_Amadora : Ind City ;
+
+  fun Countries_P_provinces_Lisbon_cities_Barreiro : Ind City ;
+
+  fun Countries_P_provinces_Lisbon_cities_Lisbon : Ind City ;
+
+  fun Countries_P_provinces_Madeira : Ind Province ;
+
+  fun Countries_P_provinces_Madeira_cities_Funchal : Ind City ;
+
+  fun Countries_P_provinces_Portalegre : Ind Province ;
+
+  fun Countries_P_provinces_Porto : Ind Province ;
+
+  fun Countries_P_provinces_Porto_cities_Porto : Ind City ;
+
+  fun Countries_P_provinces_Porto_cities_VilaNovadeGaia : Ind City ;
+
+  fun Countries_P_provinces_Santarem : Ind Province ;
+
+  fun Countries_P_provinces_Setubal : Ind Province ;
+
+  fun Countries_P_provinces_Setubal_cities_Setubal : Ind City ;
+
+  fun Countries_P_provinces_VianadoCastelo : Ind Province ;
+
+  fun Countries_P_provinces_VilaReal : Ind Province ;
+
+  fun Countries_P_provinces_Viseu : Ind Province ;
+
+  fun Countries_Q_cities_Doha : Ind City ;
+
+  fun Countries_Q_cities_Rayyan : Ind City ;
+
+  fun Countries_Q_cities_Wakrah : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires : Ind Province ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_Avellaneda : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_BahiaBlanca : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_GeneralSanMartin : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_LaMatanza : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_LaPlata : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_Lanus : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_LomasdeZamoras : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_MardelPlata : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_Moron : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_Quilmes : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_SanIsidro : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_SanNicolasdelosArroyos : Ind City ;
+
+  fun Countries_RA_provinces_BuenosAires_cities_VicenteLopez : Ind City ;
+
+  fun Countries_RA_provinces_Catamarca : Ind Province ;
+
+  fun Countries_RA_provinces_Catamarca_cities_SanFernando : Ind City ;
+
+  fun Countries_RA_provinces_Catamarca_cities_SanFernandodelValledeCatamarca : Ind City ;
+
+  fun Countries_RA_provinces_Chaco : Ind Province ;
+
+  fun Countries_RA_provinces_Chaco_cities_Resistencia : Ind City ;
+
+  fun Countries_RA_provinces_Chubut : Ind Province ;
+
+  fun Countries_RA_provinces_Chubut_cities_ComodoroRivadavia : Ind City ;
+
+  fun Countries_RA_provinces_Chubut_cities_Rawson : Ind City ;
+
+  fun Countries_RA_provinces_Cordoba : Ind Province ;
+
+  fun Countries_RA_provinces_Cordoba_cities_Cordoba : Ind City ;
+
+  fun Countries_RA_provinces_Cordoba_cities_RioCuarto : Ind City ;
+
+  fun Countries_RA_provinces_Corrientes : Ind Province ;
+
+  fun Countries_RA_provinces_Corrientes_cities_Corrientes : Ind City ;
+
+  fun Countries_RA_provinces_DistritoFederal : Ind Province ;
+
+  fun Countries_RA_provinces_DistritoFederal_cities_BuenosAires : Ind City ;
+
+  fun Countries_RA_provinces_EntreRios : Ind Province ;
+
+  fun Countries_RA_provinces_EntreRios_cities_Concordia : Ind City ;
+
+  fun Countries_RA_provinces_EntreRios_cities_Parana : Ind City ;
+
+  fun Countries_RA_provinces_Formosa : Ind Province ;
+
+  fun Countries_RA_provinces_Formosa_cities_Formosa : Ind City ;
+
+  fun Countries_RA_provinces_Jujuy : Ind Province ;
+
+  fun Countries_RA_provinces_Jujuy_cities_SanSalvadordeJujuy : Ind City ;
+
+  fun Countries_RA_provinces_LaPampa : Ind Province ;
+
+  fun Countries_RA_provinces_LaPampa_cities_SantaRosa : Ind City ;
+
+  fun Countries_RA_provinces_LaRioja : Ind Province ;
+
+  fun Countries_RA_provinces_LaRioja_cities_LaRioja : Ind City ;
+
+  fun Countries_RA_provinces_Mendoza : Ind Province ;
+
+  fun Countries_RA_provinces_Mendoza_cities_Mendoza : Ind City ;
+
+  fun Countries_RA_provinces_Misiones : Ind Province ;
+
+  fun Countries_RA_provinces_Misiones_cities_Posadas : Ind City ;
+
+  fun Countries_RA_provinces_Neuquen : Ind Province ;
+
+  fun Countries_RA_provinces_Neuquen_cities_Neuquen : Ind City ;
+
+  fun Countries_RA_provinces_RioNegro : Ind Province ;
+
+  fun Countries_RA_provinces_RioNegro_cities_Viedma : Ind City ;
+
+  fun Countries_RA_provinces_Salta : Ind Province ;
+
+  fun Countries_RA_provinces_Salta_cities_Salta : Ind City ;
+
+  fun Countries_RA_provinces_SanJuan : Ind Province ;
+
+  fun Countries_RA_provinces_SanJuan_cities_SanJuan : Ind City ;
+
+  fun Countries_RA_provinces_SanLuis : Ind Province ;
+
+  fun Countries_RA_provinces_SanLuis_cities_SanLuis : Ind City ;
+
+  fun Countries_RA_provinces_SantaCruz : Ind Province ;
+
+  fun Countries_RA_provinces_SantaCruz_cities_RioGallegos : Ind City ;
+
+  fun Countries_RA_provinces_SantaFe : Ind Province ;
+
+  fun Countries_RA_provinces_SantaFe_cities_Rosario : Ind City ;
+
+  fun Countries_RA_provinces_SantaFe_cities_SantaFe : Ind City ;
+
+  fun Countries_RA_provinces_SantiagodeEstero : Ind Province ;
+
+  fun Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEstero : Ind City ;
+
+  fun Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEsteroLaBanda : Ind City ;
+
+  fun Countries_RA_provinces_TierradelFuego : Ind Province ;
+
+  fun Countries_RA_provinces_TierradelFuego_cities_Ushuaia : Ind City ;
+
+  fun Countries_RA_provinces_Tucuman : Ind Province ;
+
+  fun Countries_RA_provinces_Tucuman_cities_SanMigueldeTucuman : Ind City ;
+
+  fun Countries_RB_cities_Gaborone : Ind City ;
+
+  fun Countries_RCA_cities_Bangui : Ind City ;
+
+  fun Countries_RCB_cities_Brazzaville : Ind City ;
+
+  fun Countries_RCH_cities_Santiago : Ind City ;
+
+  fun Countries_RCH_cities_Valparaiso : Ind City ;
+
+  fun Countries_RC_cities_Chungho : Ind City ;
+
+  fun Countries_RC_cities_Chungli : Ind City ;
+
+  fun Countries_RC_cities_Hsinchuang : Ind City ;
+
+  fun Countries_RC_cities_Hsintien : Ind City ;
+
+  fun Countries_RC_cities_Sanchuung : Ind City ;
+
+  fun Countries_RC_cities_Yungho : Ind City ;
+
+  fun Countries_RC_provinces_Changhua : Ind Province ;
+
+  fun Countries_RC_provinces_Changhua_cities_Changhua : Ind City ;
+
+  fun Countries_RC_provinces_Chiai : Ind Province ;
+
+  fun Countries_RC_provinces_Chiai_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Chiai_munic_cities_Chiai : Ind City ;
+
+  fun Countries_RC_provinces_Chilung_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Chilung_munic_cities_Chilung : Ind City ;
+
+  fun Countries_RC_provinces_Hsinchu : Ind Province ;
+
+  fun Countries_RC_provinces_Hsinchu_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Hsinchu_munic_cities_Hsinchu : Ind City ;
+
+  fun Countries_RC_provinces_Hualien : Ind Province ;
+
+  fun Countries_RC_provinces_Hualien_cities_Hualien : Ind City ;
+
+  fun Countries_RC_provinces_Ilan : Ind Province ;
+
+  fun Countries_RC_provinces_Ilan_cities_Ilan : Ind City ;
+
+  fun Countries_RC_provinces_Kaohsiung : Ind Province ;
+
+  fun Countries_RC_provinces_Kaohsiung_cities_Fengshan : Ind City ;
+
+  fun Countries_RC_provinces_Kaohsiung_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Kaohsiung_munic_cities_Kaohsiung : Ind City ;
+
+  fun Countries_RC_provinces_Miaoli : Ind Province ;
+
+  fun Countries_RC_provinces_Miaoli_cities_Miaoli : Ind City ;
+
+  fun Countries_RC_provinces_Nantou : Ind Province ;
+
+  fun Countries_RC_provinces_Nantou_cities_Nantou : Ind City ;
+
+  fun Countries_RC_provinces_Penghu : Ind Province ;
+
+  fun Countries_RC_provinces_Penghu_cities_Makung : Ind City ;
+
+  fun Countries_RC_provinces_Pingtung : Ind Province ;
+
+  fun Countries_RC_provinces_Pingtung_cities_Pingtung : Ind City ;
+
+  fun Countries_RC_provinces_Taichung : Ind Province ;
+
+  fun Countries_RC_provinces_Taichung_cities_Fengyuan : Ind City ;
+
+  fun Countries_RC_provinces_Taichung_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Taichung_munic_cities_Taichung : Ind City ;
+
+  fun Countries_RC_provinces_Tainan : Ind Province ;
+
+  fun Countries_RC_provinces_Tainan_cities_Hsinying : Ind City ;
+
+  fun Countries_RC_provinces_Tainan_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Tainan_munic_cities_Tainan : Ind City ;
+
+  fun Countries_RC_provinces_Taipei : Ind Province ;
+
+  fun Countries_RC_provinces_Taipei_cities_Panchiao : Ind City ;
+
+  fun Countries_RC_provinces_Taipei_munic : Ind Province ;
+
+  fun Countries_RC_provinces_Taipei_munic_cities_Taipei : Ind City ;
+
+  fun Countries_RC_provinces_Taitung : Ind Province ;
+
+  fun Countries_RC_provinces_Taitung_cities_Taitung : Ind City ;
+
+  fun Countries_RC_provinces_Taoyuan : Ind Province ;
+
+  fun Countries_RC_provinces_Taoyuan_cities_Taoyuan : Ind City ;
+
+  fun Countries_RC_provinces_Yunlin : Ind Province ;
+
+  fun Countries_RC_provinces_Yunlin_cities_Touliu : Ind City ;
+
+  fun Countries_RG_cities_Conakry : Ind City ;
+
+  fun Countries_RH_cities_Port_au_Prince : Ind City ;
+
+  fun Countries_RIM_cities_Nouakchott : Ind City ;
+
+  fun Countries_RI_cities_Ambon : Ind City ;
+
+  fun Countries_RI_cities_Balikpapan : Ind City ;
+
+  fun Countries_RI_cities_BandaAceh : Ind City ;
+
+  fun Countries_RI_cities_BandarLampung : Ind City ;
+
+  fun Countries_RI_cities_Bandung : Ind City ;
+
+  fun Countries_RI_cities_Banjarmasin : Ind City ;
+
+  fun Countries_RI_cities_Batam : Ind City ;
+
+  fun Countries_RI_cities_Bengkulu : Ind City ;
+
+  fun Countries_RI_cities_Binjai : Ind City ;
+
+  fun Countries_RI_cities_Blitar : Ind City ;
+
+  fun Countries_RI_cities_Bogor : Ind City ;
+
+  fun Countries_RI_cities_Cirebon : Ind City ;
+
+  fun Countries_RI_cities_Gorontalo : Ind City ;
+
+  fun Countries_RI_cities_Jakarta : Ind City ;
+
+  fun Countries_RI_cities_Jambi : Ind City ;
+
+  fun Countries_RI_cities_Kediri : Ind City ;
+
+  fun Countries_RI_cities_Madiun : Ind City ;
+
+  fun Countries_RI_cities_Magelang : Ind City ;
+
+  fun Countries_RI_cities_Malang : Ind City ;
+
+  fun Countries_RI_cities_Manado : Ind City ;
+
+  fun Countries_RI_cities_Medan : Ind City ;
+
+  fun Countries_RI_cities_Padang : Ind City ;
+
+  fun Countries_RI_cities_Palangkaraya : Ind City ;
+
+  fun Countries_RI_cities_Palembang : Ind City ;
+
+  fun Countries_RI_cities_PangkalPinang : Ind City ;
+
+  fun Countries_RI_cities_ParePare : Ind City ;
+
+  fun Countries_RI_cities_Pasuruan : Ind City ;
+
+  fun Countries_RI_cities_Pekalongan : Ind City ;
+
+  fun Countries_RI_cities_PekanBaru : Ind City ;
+
+  fun Countries_RI_cities_PematangSiantar : Ind City ;
+
+  fun Countries_RI_cities_Pontianak : Ind City ;
+
+  fun Countries_RI_cities_Probolinggo : Ind City ;
+
+  fun Countries_RI_cities_Samarinda : Ind City ;
+
+  fun Countries_RI_cities_Semarang : Ind City ;
+
+  fun Countries_RI_cities_Sukabumi : Ind City ;
+
+  fun Countries_RI_cities_Surabaya : Ind City ;
+
+  fun Countries_RI_cities_Surakarta : Ind City ;
+
+  fun Countries_RI_cities_TanjungBalai : Ind City ;
+
+  fun Countries_RI_cities_TebingTinggi : Ind City ;
+
+  fun Countries_RI_cities_Tegal : Ind City ;
+
+  fun Countries_RI_cities_UjungPandang : Ind City ;
+
+  fun Countries_RI_cities_Yogyakarta : Ind City ;
+
+  fun Countries_RL_cities_Beirut : Ind City ;
+
+  fun Countries_RMM_cities_Bamako : Ind City ;
+
+  fun Countries_RM_provinces_Antananarivo : Ind Province ;
+
+  fun Countries_RM_provinces_Antananarivo_cities_Antananarivo : Ind City ;
+
+  fun Countries_RM_provinces_Antananarivo_cities_Antsirabe : Ind City ;
+
+  fun Countries_RM_provinces_Antsiranana : Ind Province ;
+
+  fun Countries_RM_provinces_Antsiranana_cities_Antsiranana : Ind City ;
+
+  fun Countries_RM_provinces_Fianarantsoa : Ind Province ;
+
+  fun Countries_RM_provinces_Fianarantsoa_cities_Fianarantsoa : Ind City ;
+
+  fun Countries_RM_provinces_Mahajanga : Ind Province ;
+
+  fun Countries_RM_provinces_Mahajanga_cities_Majunga : Ind City ;
+
+  fun Countries_RM_provinces_Toamasina : Ind Province ;
+
+  fun Countries_RM_provinces_Toamasina_cities_Tamatave : Ind City ;
+
+  fun Countries_RM_provinces_Toliary : Ind Province ;
+
+  fun Countries_RM_provinces_Toliary_cities_Toliary : Ind City ;
+
+  fun Countries_RN_cities_Niamey : Ind City ;
+
+  fun Countries_ROK_cities_Cheju : Ind City ;
+
+  fun Countries_ROK_cities_Chinju : Ind City ;
+
+  fun Countries_ROK_cities_Chongju : Ind City ;
+
+  fun Countries_ROK_cities_Chonju : Ind City ;
+
+  fun Countries_ROK_cities_Chunchon : Ind City ;
+
+  fun Countries_ROK_cities_Inchon : Ind City ;
+
+  fun Countries_ROK_cities_Kunsan : Ind City ;
+
+  fun Countries_ROK_cities_Kwangju : Ind City ;
+
+  fun Countries_ROK_cities_Masan : Ind City ;
+
+  fun Countries_ROK_cities_Mokpo : Ind City ;
+
+  fun Countries_ROK_cities_Pusan : Ind City ;
+
+  fun Countries_ROK_cities_Seoul : Ind City ;
+
+  fun Countries_ROK_cities_Songnam : Ind City ;
+
+  fun Countries_ROK_cities_Suwon : Ind City ;
+
+  fun Countries_ROK_cities_Taegu : Ind City ;
+
+  fun Countries_ROK_cities_Taejon : Ind City ;
+
+  fun Countries_ROK_cities_Ulsan : Ind City ;
+
+  fun Countries_ROK_cities_Yosu : Ind City ;
+
+  fun Countries_ROU_cities_Montevideo : Ind City ;
+
+  fun Countries_RO_provinces_Alba : Ind Province ;
+
+  fun Countries_RO_provinces_Alba_cities_AlbaIulia : Ind City ;
+
+  fun Countries_RO_provinces_Arad : Ind Province ;
+
+  fun Countries_RO_provinces_Arad_cities_Arad : Ind City ;
+
+  fun Countries_RO_provinces_Arges : Ind Province ;
+
+  fun Countries_RO_provinces_Arges_cities_Pitesti : Ind City ;
+
+  fun Countries_RO_provinces_Bacau : Ind Province ;
+
+  fun Countries_RO_provinces_Bacau_cities_Bacau : Ind City ;
+
+  fun Countries_RO_provinces_Bihor : Ind Province ;
+
+  fun Countries_RO_provinces_Bihor_cities_Oradea : Ind City ;
+
+  fun Countries_RO_provinces_BistritaNasaud : Ind Province ;
+
+  fun Countries_RO_provinces_BistritaNasaud_cities_Bistrita : Ind City ;
+
+  fun Countries_RO_provinces_Botosani : Ind Province ;
+
+  fun Countries_RO_provinces_Botosani_cities_Botosani : Ind City ;
+
+  fun Countries_RO_provinces_Braila : Ind Province ;
+
+  fun Countries_RO_provinces_Braila_cities_Braila : Ind City ;
+
+  fun Countries_RO_provinces_Brasov : Ind Province ;
+
+  fun Countries_RO_provinces_Brasov_cities_Brasov : Ind City ;
+
+  fun Countries_RO_provinces_Bucuresti : Ind Province ;
+
+  fun Countries_RO_provinces_Bucuresti_cities_Bucharest : Ind City ;
+
+  fun Countries_RO_provinces_Buzau : Ind Province ;
+
+  fun Countries_RO_provinces_Buzau_cities_Buzau : Ind City ;
+
+  fun Countries_RO_provinces_Calarasi : Ind Province ;
+
+  fun Countries_RO_provinces_Calarasi_cities_Calarasi : Ind City ;
+
+  fun Countries_RO_provinces_CarasSeverin : Ind Province ;
+
+  fun Countries_RO_provinces_CarasSeverin_cities_Resita : Ind City ;
+
+  fun Countries_RO_provinces_Cluj : Ind Province ;
+
+  fun Countries_RO_provinces_Cluj_cities_ClujNapoca : Ind City ;
+
+  fun Countries_RO_provinces_Constanta : Ind Province ;
+
+  fun Countries_RO_provinces_Constanta_cities_Constanta : Ind City ;
+
+  fun Countries_RO_provinces_Covasha : Ind Province ;
+
+  fun Countries_RO_provinces_Covasha_cities_SfintuGheorghe : Ind City ;
+
+  fun Countries_RO_provinces_Dimbovita : Ind Province ;
+
+  fun Countries_RO_provinces_Dimbovita_cities_Tirgoviste : Ind City ;
+
+  fun Countries_RO_provinces_Dolj : Ind Province ;
+
+  fun Countries_RO_provinces_Dolj_cities_Craiova : Ind City ;
+
+  fun Countries_RO_provinces_Galati : Ind Province ;
+
+  fun Countries_RO_provinces_Galati_cities_Galati : Ind City ;
+
+  fun Countries_RO_provinces_Giurgiu : Ind Province ;
+
+  fun Countries_RO_provinces_Giurgiu_cities_Giurgiu : Ind City ;
+
+  fun Countries_RO_provinces_Gorj : Ind Province ;
+
+  fun Countries_RO_provinces_Gorj_cities_TirguJiu : Ind City ;
+
+  fun Countries_RO_provinces_Harghita : Ind Province ;
+
+  fun Countries_RO_provinces_Harghita_cities_MiercureaCiuc : Ind City ;
+
+  fun Countries_RO_provinces_Hunedoara : Ind Province ;
+
+  fun Countries_RO_provinces_Hunedoara_cities_Deva : Ind City ;
+
+  fun Countries_RO_provinces_Ialomita : Ind Province ;
+
+  fun Countries_RO_provinces_Ialomita_cities_Slobozia : Ind City ;
+
+  fun Countries_RO_provinces_Iasi : Ind Province ;
+
+  fun Countries_RO_provinces_Iasi_cities_Iasi : Ind City ;
+
+  fun Countries_RO_provinces_Maramures : Ind Province ;
+
+  fun Countries_RO_provinces_Maramures_cities_BaiaMare : Ind City ;
+
+  fun Countries_RO_provinces_Mehedinti : Ind Province ;
+
+  fun Countries_RO_provinces_Mehedinti_cities_DrobetaTurnuSeverin : Ind City ;
+
+  fun Countries_RO_provinces_Mures : Ind Province ;
+
+  fun Countries_RO_provinces_Mures_cities_TirguMures : Ind City ;
+
+  fun Countries_RO_provinces_Neamt : Ind Province ;
+
+  fun Countries_RO_provinces_Neamt_cities_PiatraNeamt : Ind City ;
+
+  fun Countries_RO_provinces_Olt : Ind Province ;
+
+  fun Countries_RO_provinces_Olt_cities_Slatina : Ind City ;
+
+  fun Countries_RO_provinces_Prahova : Ind Province ;
+
+  fun Countries_RO_provinces_Prahova_cities_Ploiesti : Ind City ;
+
+  fun Countries_RO_provinces_Salaj : Ind Province ;
+
+  fun Countries_RO_provinces_Salaj_cities_Zalau : Ind City ;
+
+  fun Countries_RO_provinces_SatuMare : Ind Province ;
+
+  fun Countries_RO_provinces_SatuMare_cities_SatuMare : Ind City ;
+
+  fun Countries_RO_provinces_Sibiu : Ind Province ;
+
+  fun Countries_RO_provinces_Sibiu_cities_Sibiu : Ind City ;
+
+  fun Countries_RO_provinces_Suceava : Ind Province ;
+
+  fun Countries_RO_provinces_Suceava_cities_Suceava : Ind City ;
+
+  fun Countries_RO_provinces_Teleorman : Ind Province ;
+
+  fun Countries_RO_provinces_Teleorman_cities_Alexandria : Ind City ;
+
+  fun Countries_RO_provinces_Timis : Ind Province ;
+
+  fun Countries_RO_provinces_Timis_cities_Timisoara : Ind City ;
+
+  fun Countries_RO_provinces_Tulcea : Ind Province ;
+
+  fun Countries_RO_provinces_Tulcea_cities_Tulcea : Ind City ;
+
+  fun Countries_RO_provinces_Vaslui : Ind Province ;
+
+  fun Countries_RO_provinces_Vaslui_cities_Vaslui : Ind City ;
+
+  fun Countries_RO_provinces_Vilcea : Ind Province ;
+
+  fun Countries_RO_provinces_Vilcea_cities_RimnicuVilcea : Ind City ;
+
+  fun Countries_RO_provinces_Vrancea : Ind Province ;
+
+  fun Countries_RO_provinces_Vrancea_cities_Focsani : Ind City ;
+
+  fun Countries_RP_cities_CagayandeOro : Ind City ;
+
+  fun Countries_RP_cities_Cebu : Ind City ;
+
+  fun Countries_RP_cities_Davao : Ind City ;
+
+  fun Countries_RP_cities_Kalookan : Ind City ;
+
+  fun Countries_RP_cities_Makati : Ind City ;
+
+  fun Countries_RP_cities_Manila : Ind City ;
+
+  fun Countries_RP_cities_Pasay : Ind City ;
+
+  fun Countries_RP_cities_Pasig : Ind City ;
+
+  fun Countries_RP_cities_Quezon : Ind City ;
+
+  fun Countries_RP_cities_Zamboanga : Ind City ;
+
+  fun Countries_RSA_cities_Alexandra : Ind City ;
+
+  fun Countries_RSA_cities_Benoni : Ind City ;
+
+  fun Countries_RSA_cities_Boksburg : Ind City ;
+
+  fun Countries_RSA_cities_Carletonville : Ind City ;
+
+  fun Countries_RSA_cities_Daveyton : Ind City ;
+
+  fun Countries_RSA_cities_Diepmeadow : Ind City ;
+
+  fun Countries_RSA_cities_Evaton : Ind City ;
+
+  fun Countries_RSA_cities_Germiston : Ind City ;
+
+  fun Countries_RSA_cities_Ibhayi : Ind City ;
+
+  fun Countries_RSA_cities_Katlehong : Ind City ;
+
+  fun Countries_RSA_cities_KemptonPark : Ind City ;
+
+  fun Countries_RSA_cities_Khayalitsha : Ind City ;
+
+  fun Countries_RSA_cities_Lekoa : Ind City ;
+
+  fun Countries_RSA_cities_Mamelodi : Ind City ;
+
+  fun Countries_RSA_cities_Mangaung : Ind City ;
+
+  fun Countries_RSA_cities_Roodepoort : Ind City ;
+
+  fun Countries_RSA_cities_Sandton : Ind City ;
+
+  fun Countries_RSA_cities_Soshanguve : Ind City ;
+
+  fun Countries_RSA_cities_Tembisa : Ind City ;
+
+  fun Countries_RSA_provinces_EasternCape : Ind Province ;
+
+  fun Countries_RSA_provinces_EasternCape_cities_EastLondon : Ind City ;
+
+  fun Countries_RSA_provinces_EasternCape_cities_KingWilliamsTown : Ind City ;
+
+  fun Countries_RSA_provinces_EasternCape_cities_PortElizabeth : Ind City ;
+
+  fun Countries_RSA_provinces_FreeState : Ind Province ;
+
+  fun Countries_RSA_provinces_FreeState_cities_Bloemfontein : Ind City ;
+
+  fun Countries_RSA_provinces_Gauteng : Ind Province ;
+
+  fun Countries_RSA_provinces_Gauteng_cities_Johannesburg : Ind City ;
+
+  fun Countries_RSA_provinces_Gauteng_cities_Pretoria : Ind City ;
+
+  fun Countries_RSA_provinces_Gauteng_cities_Soweto : Ind City ;
+
+  fun Countries_RSA_provinces_KwazuluNatal : Ind Province ;
+
+  fun Countries_RSA_provinces_KwazuluNatal_cities_Durban : Ind City ;
+
+  fun Countries_RSA_provinces_KwazuluNatal_cities_Pietermaritzburg : Ind City ;
+
+  fun Countries_RSA_provinces_Mpumalanga : Ind Province ;
+
+  fun Countries_RSA_provinces_Mpumalanga_cities_Nelspruit : Ind City ;
+
+  fun Countries_RSA_provinces_NorthWest : Ind Province ;
+
+  fun Countries_RSA_provinces_NorthWest_cities_Mmabatho : Ind City ;
+
+  fun Countries_RSA_provinces_NorthernCape : Ind Province ;
+
+  fun Countries_RSA_provinces_NorthernCape_cities_Kimberley : Ind City ;
+
+  fun Countries_RSA_provinces_NorthernProvince : Ind Province ;
+
+  fun Countries_RSA_provinces_NorthernProvince_cities_Pietersburg : Ind City ;
+
+  fun Countries_RSA_provinces_WesternCape : Ind Province ;
+
+  fun Countries_RSA_provinces_WesternCape_cities_CapeTown : Ind City ;
+
+  fun Countries_RSM_cities_SanMarino : Ind City ;
+
+  fun Countries_RT_cities_Lome : Ind City ;
+
+  fun Countries_RWA_cities_Kigali : Ind City ;
+
+  fun Countries_R_cities_Seversk : Ind City ;
+
+  fun Countries_R_cities_Zagorsk : Ind City ;
+
+  fun Countries_R_provinces_Altayskiykray : Ind Province ;
+
+  fun Countries_R_provinces_Altayskiykray_cities_Barnaul : Ind City ;
+
+  fun Countries_R_provinces_Altayskiykray_cities_Biysk : Ind City ;
+
+  fun Countries_R_provinces_Altayskiykray_cities_Rubtsovsk : Ind City ;
+
+  fun Countries_R_provinces_Amurskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Amurskayaoblast_cities_Blagoveshchensk : Ind City ;
+
+  fun Countries_R_provinces_Arkhangelskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Arkhangelskayaoblast_cities_Arkhangelsk : Ind City ;
+
+  fun Countries_R_provinces_Arkhangelskayaoblast_cities_Severodvinsk : Ind City ;
+
+  fun Countries_R_provinces_Astrakhanskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Astrakhanskayaoblast_cities_Astrakhan : Ind City ;
+
+  fun Countries_R_provinces_Belgorodskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Belgorodskayaoblast_cities_Belgorod : Ind City ;
+
+  fun Countries_R_provinces_Belgorodskayaoblast_cities_StaryOskol : Ind City ;
+
+  fun Countries_R_provinces_Bryanskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Bryanskayaoblast_cities_Bryansk : Ind City ;
+
+  fun Countries_R_provinces_ChechenRep_ : Ind Province ;
+
+  fun Countries_R_provinces_ChechenRep__cities_Grozny : Ind City ;
+
+  fun Countries_R_provinces_Chelyabinskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Chelyabinskayaoblast_cities_Chelyabinsk : Ind City ;
+
+  fun Countries_R_provinces_Chelyabinskayaoblast_cities_Magnitogorsk : Ind City ;
+
+  fun Countries_R_provinces_Chelyabinskayaoblast_cities_Miass : Ind City ;
+
+  fun Countries_R_provinces_Chelyabinskayaoblast_cities_Zlatoust : Ind City ;
+
+  fun Countries_R_provinces_Chitinskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Chitinskayaoblast_cities_Chita : Ind City ;
+
+  fun Countries_R_provinces_Chukotskyao : Ind Province ;
+
+  fun Countries_R_provinces_Chukotskyao_cities_Anadyr : Ind City ;
+
+  fun Countries_R_provinces_ChuvashRepublic : Ind Province ;
+
+  fun Countries_R_provinces_ChuvashRepublic_cities_Cheboksary : Ind City ;
+
+  fun Countries_R_provinces_ChuvashRepublic_cities_Novocheboksarsk : Ind City ;
+
+  fun Countries_R_provinces_Irkutskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Irkutskayaoblast_cities_Angarsk : Ind City ;
+
+  fun Countries_R_provinces_Irkutskayaoblast_cities_Bratsk : Ind City ;
+
+  fun Countries_R_provinces_Irkutskayaoblast_cities_Irkutsk : Ind City ;
+
+  fun Countries_R_provinces_Irkutskayaoblast_cities_UsolyeSibirskoye : Ind City ;
+
+  fun Countries_R_provinces_Irkutskayaoblast_cities_UstIlimsk : Ind City ;
+
+  fun Countries_R_provinces_Ivanovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Ivanovskayaoblast_cities_Ivanovo : Ind City ;
+
+  fun Countries_R_provinces_Ivanovskayaoblast_cities_Kineshma : Ind City ;
+
+  fun Countries_R_provinces_KabardinoBalkarRep_ : Ind Province ;
+
+  fun Countries_R_provinces_KabardinoBalkarRep__cities_Nalchik : Ind City ;
+
+  fun Countries_R_provinces_Kaliningradskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kaliningradskayaoblast_cities_Kaliningrad : Ind City ;
+
+  fun Countries_R_provinces_Kaluzhskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kaluzhskayaoblast_cities_Kaluga : Ind City ;
+
+  fun Countries_R_provinces_Kaluzhskayaoblast_cities_Obninsk : Ind City ;
+
+  fun Countries_R_provinces_Kamchatskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kamchatskayaoblast_cities_PetropavlovskKamchatsky : Ind City ;
+
+  fun Countries_R_provinces_KarachayevoCherkesskRep_ : Ind Province ;
+
+  fun Countries_R_provinces_KarachayevoCherkesskRep__cities_Cherkessk : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_AnzheroSudzhensk : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_Kemerovo : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_Kiselyovsk : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_LeninskKuznetskiy : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_Mezhdurechensk : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_Novokuznetsk : Ind City ;
+
+  fun Countries_R_provinces_Kemerovskayaoblast_cities_Prokopyevsk : Ind City ;
+
+  fun Countries_R_provinces_Khabarovskiykray : Ind Province ;
+
+  fun Countries_R_provinces_Khabarovskiykray_cities_Khabarovsk : Ind City ;
+
+  fun Countries_R_provinces_Khabarovskiykray_cities_KomsomolsknaAmure : Ind City ;
+
+  fun Countries_R_provinces_Kirovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kirovskayaoblast_cities_Kirov : Ind City ;
+
+  fun Countries_R_provinces_Kostromskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kostromskayaoblast_cities_Kostroma : Ind City ;
+
+  fun Countries_R_provinces_Krasnodarskykray : Ind Province ;
+
+  fun Countries_R_provinces_Krasnodarskykray_cities_Armavir : Ind City ;
+
+  fun Countries_R_provinces_Krasnodarskykray_cities_Krasnodar : Ind City ;
+
+  fun Countries_R_provinces_Krasnodarskykray_cities_Novorossiysk : Ind City ;
+
+  fun Countries_R_provinces_Krasnodarskykray_cities_Sochi : Ind City ;
+
+  fun Countries_R_provinces_Krasnoyarskiykray : Ind Province ;
+
+  fun Countries_R_provinces_Krasnoyarskiykray_cities_Achinsk : Ind City ;
+
+  fun Countries_R_provinces_Krasnoyarskiykray_cities_Kansk : Ind City ;
+
+  fun Countries_R_provinces_Krasnoyarskiykray_cities_Krasnoyarsk : Ind City ;
+
+  fun Countries_R_provinces_Krasnoyarskiykray_cities_Norilsk : Ind City ;
+
+  fun Countries_R_provinces_Kurganskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kurganskayaoblast_cities_Kurgan : Ind City ;
+
+  fun Countries_R_provinces_Kurskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Kurskayaoblast_cities_Kursk : Ind City ;
+
+  fun Countries_R_provinces_Leningradskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Leningradskayaoblast_cities_Kolpino : Ind City ;
+
+  fun Countries_R_provinces_Lipetskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Lipetskayaoblast_cities_Lipetsk : Ind City ;
+
+  fun Countries_R_provinces_Lipetskayaoblast_cities_Yelets : Ind City ;
+
+  fun Countries_R_provinces_Magadanskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Magadanskayaoblast_cities_Magadan : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Balashikha : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Elektrostal : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Khimki : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Kolomna : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Lyubertsy : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Mytishchi : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Noginsk : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Odintsovo : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_OrekhovoZuyevo : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Podolsk : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Serpukhov : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Shchyolkovo : Ind City ;
+
+  fun Countries_R_provinces_Moskovskayaoblast_cities_Zelenograd : Ind City ;
+
+  fun Countries_R_provinces_Moskva : Ind Province ;
+
+  fun Countries_R_provinces_Moskva_cities_Moscow : Ind City ;
+
+  fun Countries_R_provinces_Murmanskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Murmanskayaoblast_cities_Murmansk : Ind City ;
+
+  fun Countries_R_provinces_Nizhegorodskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Nizhegorodskayaoblast_cities_Arzamas : Ind City ;
+
+  fun Countries_R_provinces_Nizhegorodskayaoblast_cities_Dzerzhinsk : Ind City ;
+
+  fun Countries_R_provinces_Nizhegorodskayaoblast_cities_NizhniyNovgorod : Ind City ;
+
+  fun Countries_R_provinces_Novgorodskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Novgorodskayaoblast_cities_Novgorod : Ind City ;
+
+  fun Countries_R_provinces_Novosibirskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Novosibirskayaoblast_cities_Novosibirsk : Ind City ;
+
+  fun Countries_R_provinces_Omskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Omskayaoblast_cities_Omsk : Ind City ;
+
+  fun Countries_R_provinces_Orenburgskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Orenburgskayaoblast_cities_Novotroitsk : Ind City ;
+
+  fun Countries_R_provinces_Orenburgskayaoblast_cities_Orenburg : Ind City ;
+
+  fun Countries_R_provinces_Orenburgskayaoblast_cities_Orsk : Ind City ;
+
+  fun Countries_R_provinces_Orlovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Orlovskayaoblast_cities_Orel : Ind City ;
+
+  fun Countries_R_provinces_Penzenskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Penzenskayaoblast_cities_Kuznetsk : Ind City ;
+
+  fun Countries_R_provinces_Penzenskayaoblast_cities_Penza : Ind City ;
+
+  fun Countries_R_provinces_Permskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Permskayaoblast_cities_Berezniki : Ind City ;
+
+  fun Countries_R_provinces_Permskayaoblast_cities_Perm : Ind City ;
+
+  fun Countries_R_provinces_Permskayaoblast_cities_Solikamsk : Ind City ;
+
+  fun Countries_R_provinces_Primorskykray : Ind Province ;
+
+  fun Countries_R_provinces_Primorskykray_cities_Nakhodka : Ind City ;
+
+  fun Countries_R_provinces_Primorskykray_cities_Ussuriysk : Ind City ;
+
+  fun Countries_R_provinces_Primorskykray_cities_Vladivostok : Ind City ;
+
+  fun Countries_R_provinces_Pskovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Pskovskayaoblast_cities_Pskov : Ind City ;
+
+  fun Countries_R_provinces_Pskovskayaoblast_cities_VelikiyeLuki : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofAdygeya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofAdygeya_cities_Maykop : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofAltay : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofAltay_cities_GornoAltaysk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofBashkortostan : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofBashkortostan_cities_Oktyabrsky : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofBashkortostan_cities_Salavat : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofBashkortostan_cities_Sterlitamak : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofBashkortostan_cities_Ufa : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofBuryatiya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofBuryatiya_cities_UlanUde : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofDagestan : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofDagestan_cities_Makhachkala : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofIngushetiya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofIngushetiya_cities_Nazran : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKalmykiya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofKalmykiya_cities_Elista : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKarelia : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofKarelia_cities_Petrozavodsk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKhakassiya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofKhakassiya_cities_Abakan : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKomi : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofKomi_cities_Syktyvkar : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKomi_cities_Ukhta : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofKomi_cities_Vorkuta : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofMariyEl : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofMariyEl_cities_YoshkarOla : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofMordovia : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofMordovia_cities_Saransk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofNorthOssetiya : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofNorthOssetiya_cities_Vladikavkaz : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofSakha : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofSakha_cities_Yakutsk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan_cities_Almetyevsk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan_cities_Kazan : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan_cities_NaberezhnyeChelny : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan_cities_Nizhnekamsk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTatarstan_cities_Zelenodolysk : Ind City ;
+
+  fun Countries_R_provinces_Rep_ofTyva : Ind Province ;
+
+  fun Countries_R_provinces_Rep_ofTyva_cities_Kyzyl : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_Novocherkassk : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_Novoshakhtinsk : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_RostovnaDonu : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_RostovnoDonu : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_Shakhty : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_Taganrog : Ind City ;
+
+  fun Countries_R_provinces_Rostovskayaoblast_cities_Volgodonsk : Ind City ;
+
+  fun Countries_R_provinces_Ryazanskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Ryazanskayaoblast_cities_Ryazan : Ind City ;
+
+  fun Countries_R_provinces_Sakhalinskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Sakhalinskayaoblast_cities_YuzhnoSakhalinsk : Ind City ;
+
+  fun Countries_R_provinces_Samarskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Samarskayaoblast_cities_Novokuybyshevsk : Ind City ;
+
+  fun Countries_R_provinces_Samarskayaoblast_cities_Samara : Ind City ;
+
+  fun Countries_R_provinces_Samarskayaoblast_cities_Syzran : Ind City ;
+
+  fun Countries_R_provinces_Samarskayaoblast_cities_Tolyatti : Ind City ;
+
+  fun Countries_R_provinces_SanktPeterburg : Ind Province ;
+
+  fun Countries_R_provinces_SanktPeterburg_cities_SanktPeterburg : Ind City ;
+
+  fun Countries_R_provinces_Saratovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Saratovskayaoblast_cities_Balakovo : Ind City ;
+
+  fun Countries_R_provinces_Saratovskayaoblast_cities_Engels : Ind City ;
+
+  fun Countries_R_provinces_Saratovskayaoblast_cities_Saratov : Ind City ;
+
+  fun Countries_R_provinces_Smolenskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Smolenskayaoblast_cities_Smolensk : Ind City ;
+
+  fun Countries_R_provinces_Stavropolskykray : Ind Province ;
+
+  fun Countries_R_provinces_Stavropolskykray_cities_Kislovodsk : Ind City ;
+
+  fun Countries_R_provinces_Stavropolskykray_cities_Neftekamsk : Ind City ;
+
+  fun Countries_R_provinces_Stavropolskykray_cities_Nevinnomyssk : Ind City ;
+
+  fun Countries_R_provinces_Stavropolskykray_cities_Pyatigorsk : Ind City ;
+
+  fun Countries_R_provinces_Stavropolskykray_cities_Stavropol : Ind City ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast_cities_KamenskUralskiy : Ind City ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast_cities_NizhniyTagil : Ind City ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast_cities_Pervouralsk : Ind City ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast_cities_Serov : Ind City ;
+
+  fun Countries_R_provinces_Sverdlovskayaoblast_cities_Yekaterinburg : Ind City ;
+
+  fun Countries_R_provinces_Tambovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Tambovskayaoblast_cities_Michurinsk : Ind City ;
+
+  fun Countries_R_provinces_Tambovskayaoblast_cities_Tambov : Ind City ;
+
+  fun Countries_R_provinces_Tomskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Tomskayaoblast_cities_Tomsk : Ind City ;
+
+  fun Countries_R_provinces_Tulskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Tulskayaoblast_cities_Novomoskovsk : Ind City ;
+
+  fun Countries_R_provinces_Tulskayaoblast_cities_Tula : Ind City ;
+
+  fun Countries_R_provinces_Tverskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Tverskayaoblast_cities_Tver : Ind City ;
+
+  fun Countries_R_provinces_Tyumenskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Tyumenskayaoblast_cities_Nizhnevartovsk : Ind City ;
+
+  fun Countries_R_provinces_Tyumenskayaoblast_cities_Surgut : Ind City ;
+
+  fun Countries_R_provinces_Tyumenskayaoblast_cities_Tyumen : Ind City ;
+
+  fun Countries_R_provinces_UdmurtRepublic : Ind Province ;
+
+  fun Countries_R_provinces_UdmurtRepublic_cities_Glazov : Ind City ;
+
+  fun Countries_R_provinces_UdmurtRepublic_cities_Izhevsk : Ind City ;
+
+  fun Countries_R_provinces_UdmurtRepublic_cities_Sarapul : Ind City ;
+
+  fun Countries_R_provinces_UdmurtRepublic_cities_Votkinsk : Ind City ;
+
+  fun Countries_R_provinces_Ulyanovskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Ulyanovskayaoblast_cities_Dimitrovgrad : Ind City ;
+
+  fun Countries_R_provinces_Ulyanovskayaoblast_cities_Simbirsk : Ind City ;
+
+  fun Countries_R_provinces_Vladimirskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Vladimirskayaoblast_cities_Kovrov : Ind City ;
+
+  fun Countries_R_provinces_Vladimirskayaoblast_cities_Murom : Ind City ;
+
+  fun Countries_R_provinces_Vladimirskayaoblast_cities_Vladimir : Ind City ;
+
+  fun Countries_R_provinces_Volgogradskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Volgogradskayaoblast_cities_Kamyshin : Ind City ;
+
+  fun Countries_R_provinces_Volgogradskayaoblast_cities_Volgograd : Ind City ;
+
+  fun Countries_R_provinces_Volgogradskayaoblast_cities_Volzhsky : Ind City ;
+
+  fun Countries_R_provinces_Vologodskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Vologodskayaoblast_cities_Cherepovets : Ind City ;
+
+  fun Countries_R_provinces_Vologodskayaoblast_cities_Vologda : Ind City ;
+
+  fun Countries_R_provinces_Voronezhskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Voronezhskayaoblast_cities_Voronezh : Ind City ;
+
+  fun Countries_R_provinces_Yaroslavskayaoblast : Ind Province ;
+
+  fun Countries_R_provinces_Yaroslavskayaoblast_cities_Rybinsk : Ind City ;
+
+  fun Countries_R_provinces_Yaroslavskayaoblast_cities_Yaroslavl : Ind City ;
+
+  fun Countries_R_provinces_Yevreyskayaavt_oblast : Ind Province ;
+
+  fun Countries_R_provinces_Yevreyskayaavt_oblast_cities_Birobidzhan : Ind City ;
+
+  fun Countries_SA_cities_Jeddah : Ind City ;
+
+  fun Countries_SA_cities_Riyadh : Ind City ;
+
+  fun Countries_SD_cities_Mbabane : Ind City ;
+
+  fun Countries_SF_provinces_Aland : Ind Province ;
+
+  fun Countries_SF_provinces_Aland_cities_Mariehamn : Ind City ;
+
+  fun Countries_SF_provinces_Haeme : Ind Province ;
+
+  fun Countries_SF_provinces_Haeme_cities_Haemeenlinna : Ind City ;
+
+  fun Countries_SF_provinces_Haeme_cities_Lahti : Ind City ;
+
+  fun Countries_SF_provinces_Haeme_cities_Tampere : Ind City ;
+
+  fun Countries_SF_provinces_Kuopio : Ind Province ;
+
+  fun Countries_SF_provinces_Kuopio_cities_Kuopio : Ind City ;
+
+  fun Countries_SF_provinces_Kymi : Ind Province ;
+
+  fun Countries_SF_provinces_Kymi_cities_Kotka : Ind City ;
+
+  fun Countries_SF_provinces_Kymi_cities_Lappeenrenta : Ind City ;
+
+  fun Countries_SF_provinces_Lappia : Ind Province ;
+
+  fun Countries_SF_provinces_Lappia_cities_Rovaniemi : Ind City ;
+
+  fun Countries_SF_provinces_Mikkeli : Ind Province ;
+
+  fun Countries_SF_provinces_Mikkeli_cities_Mikkeli : Ind City ;
+
+  fun Countries_SF_provinces_Oulu : Ind Province ;
+
+  fun Countries_SF_provinces_Oulu_cities_Oulu : Ind City ;
+
+  fun Countries_SF_provinces_Pohjols_Karjala : Ind Province ;
+
+  fun Countries_SF_provinces_Pohjols_Karjala_cities_Joensuu : Ind City ;
+
+  fun Countries_SF_provinces_Suomi : Ind Province ;
+
+  fun Countries_SF_provinces_Suomi_cities_Jyvaeskylae : Ind City ;
+
+  fun Countries_SF_provinces_Turku_Pori : Ind Province ;
+
+  fun Countries_SF_provinces_Turku_Pori_cities_Pori : Ind City ;
+
+  fun Countries_SF_provinces_Turku_Pori_cities_Turku : Ind City ;
+
+  fun Countries_SF_provinces_Uusimaa : Ind Province ;
+
+  fun Countries_SF_provinces_Uusimaa_cities_Espoo : Ind City ;
+
+  fun Countries_SF_provinces_Uusimaa_cities_Helsinki : Ind City ;
+
+  fun Countries_SF_provinces_Vaasa : Ind Province ;
+
+  fun Countries_SF_provinces_Vaasa_cities_Vaasa : Ind City ;
+
+  fun Countries_SGP_cities_Singapore : Ind City ;
+
+  fun Countries_SK_cities_Bratislava : Ind City ;
+
+  fun Countries_SLB_cities_Honiara : Ind City ;
+
+  fun Countries_SLO_cities_Ljubljana : Ind City ;
+
+  fun Countries_SME_cities_Paramaribo : Ind City ;
+
+  fun Countries_SN_provinces_Dakar : Ind Province ;
+
+  fun Countries_SN_provinces_Dakar_cities_Dakar : Ind City ;
+
+  fun Countries_SN_provinces_Diourbel : Ind Province ;
+
+  fun Countries_SN_provinces_Diourbel_cities_Diourbel : Ind City ;
+
+  fun Countries_SN_provinces_Fatick : Ind Province ;
+
+  fun Countries_SN_provinces_Fatick_cities_Fatick : Ind City ;
+
+  fun Countries_SN_provinces_Kaolack : Ind Province ;
+
+  fun Countries_SN_provinces_Kaolack_cities_Kaolack : Ind City ;
+
+  fun Countries_SN_provinces_Kolda : Ind Province ;
+
+  fun Countries_SN_provinces_Kolda_cities_Kolda : Ind City ;
+
+  fun Countries_SN_provinces_Louga : Ind Province ;
+
+  fun Countries_SN_provinces_Louga_cities_Louga : Ind City ;
+
+  fun Countries_SN_provinces_SaintLouis : Ind Province ;
+
+  fun Countries_SN_provinces_SaintLouis_cities_SaintLouis : Ind City ;
+
+  fun Countries_SN_provinces_Tambacounda : Ind Province ;
+
+  fun Countries_SN_provinces_Tambacounda_cities_Tambacounda : Ind City ;
+
+  fun Countries_SN_provinces_Thies : Ind Province ;
+
+  fun Countries_SN_provinces_Thies_cities_Thies : Ind City ;
+
+  fun Countries_SN_provinces_Ziguinchor : Ind Province ;
+
+  fun Countries_SN_provinces_Ziguinchor_cities_Ziguinchor : Ind City ;
+
+  fun Countries_SP_cities_Mogadishu : Ind City ;
+
+  fun Countries_STP_cities_SaoTome : Ind City ;
+
+  fun Countries_SUD_provinces_AalianNil : Ind Province ;
+
+  fun Countries_SUD_provinces_AalianNil_cities_Malakal : Ind City ;
+
+  fun Countries_SUD_provinces_BahralGhazal : Ind Province ;
+
+  fun Countries_SUD_provinces_BahralGhazal_cities_Waw : Ind City ;
+
+  fun Countries_SUD_provinces_Darfur : Ind Province ;
+
+  fun Countries_SUD_provinces_Darfur_cities_Nyala : Ind City ;
+
+  fun Countries_SUD_provinces_Darfur_cities_alFasher : Ind City ;
+
+  fun Countries_SUD_provinces_Kurdufan : Ind Province ;
+
+  fun Countries_SUD_provinces_Kurdufan_cities_alUbayyid : Ind City ;
+
+  fun Countries_SUD_provinces_alIstiwaiyah : Ind Province ;
+
+  fun Countries_SUD_provinces_alIstiwaiyah_cities_Juba : Ind City ;
+
+  fun Countries_SUD_provinces_alKhartum : Ind Province ;
+
+  fun Countries_SUD_provinces_alKhartum_cities_Khartoum : Ind City ;
+
+  fun Countries_SUD_provinces_alKhartum_cities_KhartoumNorth : Ind City ;
+
+  fun Countries_SUD_provinces_alKhartum_cities_Omdurman : Ind City ;
+
+  fun Countries_SUD_provinces_alWusta : Ind Province ;
+
+  fun Countries_SUD_provinces_alWusta_cities_WadMadani : Ind City ;
+
+  fun Countries_SUD_provinces_ashShamaliyah : Ind Province ;
+
+  fun Countries_SUD_provinces_ashShamaliyah_cities_adDamir : Ind City ;
+
+  fun Countries_SUD_provinces_ashSharqiyah : Ind Province ;
+
+  fun Countries_SUD_provinces_ashSharqiyah_cities_Kassala : Ind City ;
+
+  fun Countries_SUD_provinces_ashSharqiyah_cities_PortSudan : Ind City ;
+
+  fun Countries_SUD_provinces_ashSharqiyah_cities_alQadarif : Ind City ;
+
+  fun Countries_SYR_cities_Aleppo : Ind City ;
+
+  fun Countries_SYR_cities_Damascus : Ind City ;
+
+  fun Countries_SYR_cities_Homs : Ind City ;
+
+  fun Countries_SY_cities_Victoria : Ind City ;
+
+  fun Countries_S_provinces_Alvsborg : Ind Province ;
+
+  fun Countries_S_provinces_Alvsborg_cities_Vanersborg : Ind City ;
+
+  fun Countries_S_provinces_Blekinge : Ind Province ;
+
+  fun Countries_S_provinces_Blekinge_cities_Karlskrona : Ind City ;
+
+  fun Countries_S_provinces_Gavleborg : Ind Province ;
+
+  fun Countries_S_provinces_Gavleborg_cities_Gavle : Ind City ;
+
+  fun Countries_S_provinces_GoteborgochBohus : Ind Province ;
+
+  fun Countries_S_provinces_GoteborgochBohus_cities_Goteborg : Ind City ;
+
+  fun Countries_S_provinces_Gotland : Ind Province ;
+
+  fun Countries_S_provinces_Gotland_cities_Visby : Ind City ;
+
+  fun Countries_S_provinces_Halland : Ind Province ;
+
+  fun Countries_S_provinces_Halland_cities_Halmstad : Ind City ;
+
+  fun Countries_S_provinces_Jamtland : Ind Province ;
+
+  fun Countries_S_provinces_Jamtland_cities_Ostersund : Ind City ;
+
+  fun Countries_S_provinces_Jonkoping : Ind Province ;
+
+  fun Countries_S_provinces_Jonkoping_cities_Jonkoping : Ind City ;
+
+  fun Countries_S_provinces_Kalmar : Ind Province ;
+
+  fun Countries_S_provinces_Kalmar_cities_Kalmar : Ind City ;
+
+  fun Countries_S_provinces_Kopparberg : Ind Province ;
+
+  fun Countries_S_provinces_Kopparberg_cities_Falun : Ind City ;
+
+  fun Countries_S_provinces_Kristianstad : Ind Province ;
+
+  fun Countries_S_provinces_Kristianstad_cities_Kristianstad : Ind City ;
+
+  fun Countries_S_provinces_Kronoberg : Ind Province ;
+
+  fun Countries_S_provinces_Kronoberg_cities_Vaxjo : Ind City ;
+
+  fun Countries_S_provinces_Malmohus : Ind Province ;
+
+  fun Countries_S_provinces_Malmohus_cities_Helsingborg : Ind City ;
+
+  fun Countries_S_provinces_Malmohus_cities_Malmo : Ind City ;
+
+  fun Countries_S_provinces_Norrbotten : Ind Province ;
+
+  fun Countries_S_provinces_Norrbotten_cities_Jokkmokk : Ind City ;
+
+  fun Countries_S_provinces_Norrbotten_cities_Lulea : Ind City ;
+
+  fun Countries_S_provinces_Orebro : Ind Province ;
+
+  fun Countries_S_provinces_Orebro_cities_Orebro : Ind City ;
+
+  fun Countries_S_provinces_Ostergotland : Ind Province ;
+
+  fun Countries_S_provinces_Ostergotland_cities_Linkoping : Ind City ;
+
+  fun Countries_S_provinces_Ostergotland_cities_Norrkoping : Ind City ;
+
+  fun Countries_S_provinces_Skaraborg : Ind Province ;
+
+  fun Countries_S_provinces_Skaraborg_cities_Mariestad : Ind City ;
+
+  fun Countries_S_provinces_Sodermanland : Ind Province ;
+
+  fun Countries_S_provinces_Sodermanland_cities_Nykoping : Ind City ;
+
+  fun Countries_S_provinces_Stockholm : Ind Province ;
+
+  fun Countries_S_provinces_Stockholm_cities_Stockholm : Ind City ;
+
+  fun Countries_S_provinces_Uppsala : Ind Province ;
+
+  fun Countries_S_provinces_Uppsala_cities_Uppsala : Ind City ;
+
+  fun Countries_S_provinces_Varmland : Ind Province ;
+
+  fun Countries_S_provinces_Varmland_cities_Karlstad : Ind City ;
+
+  fun Countries_S_provinces_Vasterbotten : Ind Province ;
+
+  fun Countries_S_provinces_Vasterbotten_cities_Umea : Ind City ;
+
+  fun Countries_S_provinces_Vasternorrland : Ind Province ;
+
+  fun Countries_S_provinces_Vasternorrland_cities_Harnosand : Ind City ;
+
+  fun Countries_S_provinces_Vastmanland : Ind Province ;
+
+  fun Countries_S_provinces_Vastmanland_cities_Vasteras : Ind City ;
+
+  fun Countries_TAD_provinces_BadakhshoniKuni : Ind Province ;
+
+  fun Countries_TAD_provinces_BadakhshoniKuni_cities_Khorugh : Ind City ;
+
+  fun Countries_TAD_provinces_Dushanbe_munic : Ind Province ;
+
+  fun Countries_TAD_provinces_Dushanbe_munic_cities_Dushanbe : Ind City ;
+
+  fun Countries_TAD_provinces_Khatlon : Ind Province ;
+
+  fun Countries_TAD_provinces_Khatlon_cities_Qurghonteppa : Ind City ;
+
+  fun Countries_TAD_provinces_Kulob : Ind Province ;
+
+  fun Countries_TAD_provinces_Kulob_cities_Kulob : Ind City ;
+
+  fun Countries_TAD_provinces_Leninobod : Ind Province ;
+
+  fun Countries_TAD_provinces_Leninobod_cities_Khujand : Ind City ;
+
+  fun Countries_TCH_cities_NDjamena : Ind City ;
+
+  fun Countries_THA_provinces_AmnatCharoen : Ind Province ;
+
+  fun Countries_THA_provinces_AngThong : Ind Province ;
+
+  fun Countries_THA_provinces_BangkokMetropolis : Ind Province ;
+
+  fun Countries_THA_provinces_BangkokMetropolis_cities_Bangkok : Ind City ;
+
+  fun Countries_THA_provinces_BuriRam : Ind Province ;
+
+  fun Countries_THA_provinces_CentralRegion : Ind Province ;
+
+  fun Countries_THA_provinces_Chachoengsao : Ind Province ;
+
+  fun Countries_THA_provinces_ChaiNat : Ind Province ;
+
+  fun Countries_THA_provinces_Chaiyaphum : Ind Province ;
+
+  fun Countries_THA_provinces_Chanthaburi : Ind Province ;
+
+  fun Countries_THA_provinces_ChiangMai : Ind Province ;
+
+  fun Countries_THA_provinces_ChiangMai_cities_ChiangMai : Ind City ;
+
+  fun Countries_THA_provinces_ChiangRai : Ind Province ;
+
+  fun Countries_THA_provinces_ChonBuri : Ind Province ;
+
+  fun Countries_THA_provinces_Chumphon : Ind Province ;
+
+  fun Countries_THA_provinces_Kalasin : Ind Province ;
+
+  fun Countries_THA_provinces_KamphaengPhet : Ind Province ;
+
+  fun Countries_THA_provinces_Kanchanaburi : Ind Province ;
+
+  fun Countries_THA_provinces_KhonKaen : Ind Province ;
+
+  fun Countries_THA_provinces_KhonKaen_cities_KhonKaen : Ind City ;
+
+  fun Countries_THA_provinces_Krabi : Ind Province ;
+
+  fun Countries_THA_provinces_Lampang : Ind Province ;
+
+  fun Countries_THA_provinces_Lamphun : Ind Province ;
+
+  fun Countries_THA_provinces_Loei : Ind Province ;
+
+  fun Countries_THA_provinces_LopBuri : Ind Province ;
+
+  fun Countries_THA_provinces_MaeHongSon : Ind Province ;
+
+  fun Countries_THA_provinces_MahaSarakham : Ind Province ;
+
+  fun Countries_THA_provinces_Mukdahan : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonNayok : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonPathom : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonPhanom : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonRatchasima : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonRatchasima_cities_NakhonRatchasima : Ind City ;
+
+  fun Countries_THA_provinces_NakhonSawan : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonSawan_cities_NakhonSawan : Ind City ;
+
+  fun Countries_THA_provinces_NakhonSiThammarat : Ind Province ;
+
+  fun Countries_THA_provinces_NakhonSiThammarat_cities_NakhonsiThammarat : Ind City ;
+
+  fun Countries_THA_provinces_Nan : Ind Province ;
+
+  fun Countries_THA_provinces_Narathiwat : Ind Province ;
+
+  fun Countries_THA_provinces_NongBuaLamPhu : Ind Province ;
+
+  fun Countries_THA_provinces_NongKhai : Ind Province ;
+
+  fun Countries_THA_provinces_Nonthaburi : Ind Province ;
+
+  fun Countries_THA_provinces_Nonthaburi_cities_Nonthaburi : Ind City ;
+
+  fun Countries_THA_provinces_NortheasternRegion : Ind Province ;
+
+  fun Countries_THA_provinces_NorthernRegion : Ind Province ;
+
+  fun Countries_THA_provinces_PathumThani : Ind Province ;
+
+  fun Countries_THA_provinces_Pattani : Ind Province ;
+
+  fun Countries_THA_provinces_Petchanbun : Ind Province ;
+
+  fun Countries_THA_provinces_Phangnga : Ind Province ;
+
+  fun Countries_THA_provinces_Phatthalung : Ind Province ;
+
+  fun Countries_THA_provinces_Phayao : Ind Province ;
+
+  fun Countries_THA_provinces_Phetchaburi : Ind Province ;
+
+  fun Countries_THA_provinces_Phichit : Ind Province ;
+
+  fun Countries_THA_provinces_Phitsanulok : Ind Province ;
+
+  fun Countries_THA_provinces_PhraNakhonSiAyutthaya : Ind Province ;
+
+  fun Countries_THA_provinces_Phrae : Ind Province ;
+
+  fun Countries_THA_provinces_Phuket : Ind Province ;
+
+  fun Countries_THA_provinces_PrachinBuri : Ind Province ;
+
+  fun Countries_THA_provinces_PrachuapKhiriKhan : Ind Province ;
+
+  fun Countries_THA_provinces_Ranong : Ind Province ;
+
+  fun Countries_THA_provinces_Ratchaburi : Ind Province ;
+
+  fun Countries_THA_provinces_Rayong : Ind Province ;
+
+  fun Countries_THA_provinces_RoiEt : Ind Province ;
+
+  fun Countries_THA_provinces_SaKaeo : Ind Province ;
+
+  fun Countries_THA_provinces_SakonNakhon : Ind Province ;
+
+  fun Countries_THA_provinces_SamutPrakan : Ind Province ;
+
+  fun Countries_THA_provinces_SamutSakhon : Ind Province ;
+
+  fun Countries_THA_provinces_SamutSongkhram : Ind Province ;
+
+  fun Countries_THA_provinces_Saraburi : Ind Province ;
+
+  fun Countries_THA_provinces_Saraburi_cities_Saraburi : Ind City ;
+
+  fun Countries_THA_provinces_Satun : Ind Province ;
+
+  fun Countries_THA_provinces_SiSaKet : Ind Province ;
+
+  fun Countries_THA_provinces_SingBuri : Ind Province ;
+
+  fun Countries_THA_provinces_Songkhla : Ind Province ;
+
+  fun Countries_THA_provinces_Songkhla_cities_Songkhla : Ind City ;
+
+  fun Countries_THA_provinces_SouthernRegion : Ind Province ;
+
+  fun Countries_THA_provinces_Sukhothai : Ind Province ;
+
+  fun Countries_THA_provinces_SuphanBuri : Ind Province ;
+
+  fun Countries_THA_provinces_SuratThani : Ind Province ;
+
+  fun Countries_THA_provinces_Surin : Ind Province ;
+
+  fun Countries_THA_provinces_Tak : Ind Province ;
+
+  fun Countries_THA_provinces_Trang : Ind Province ;
+
+  fun Countries_THA_provinces_Trat : Ind Province ;
+
+  fun Countries_THA_provinces_UbonRatchathani : Ind Province ;
+
+  fun Countries_THA_provinces_UbonRatchathani_cities_UbonRatchathani : Ind City ;
+
+  fun Countries_THA_provinces_UdonThani : Ind Province ;
+
+  fun Countries_THA_provinces_UthaiThani : Ind Province ;
+
+  fun Countries_THA_provinces_Uttaradit : Ind Province ;
+
+  fun Countries_THA_provinces_Yala : Ind Province ;
+
+  fun Countries_THA_provinces_Yasothon : Ind Province ;
+
+  fun Countries_TJ_cities_HongKong : Ind City ;
+
+  fun Countries_TJ_cities_Macau : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui : Ind Province ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Anqing : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Bengbu : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Chaoxian : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Chuxian : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Fuyang : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Hefei : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Huaibei : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Huainan : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Luan : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Maanshan : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Suzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Tongling : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Wuhu : Ind City ;
+
+  fun Countries_TJ_provinces_Anhui_cities_Xuancheng : Ind City ;
+
+  fun Countries_TJ_provinces_Beijing_munic : Ind Province ;
+
+  fun Countries_TJ_provinces_Beijing_munic_cities_Beijing : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian : Ind Province ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Fuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Longyan : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Nanping : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Quanzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Sanming : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Xiamen : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Yongan : Ind City ;
+
+  fun Countries_TJ_provinces_Fujian_cities_Zhangzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Gansu : Ind Province ;
+
+  fun Countries_TJ_provinces_Gansu_cities_Baiyin : Ind City ;
+
+  fun Countries_TJ_provinces_Gansu_cities_Lanzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Gansu_cities_Tianshui : Ind City ;
+
+  fun Countries_TJ_provinces_Gansu_cities_Wuwei : Ind City ;
+
+  fun Countries_TJ_provinces_Gansu_cities_Yumen : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong : Ind Province ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Chaozhou : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Dongguan : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Foshan : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Guangzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Heyuan : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Huizhou : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Jiangmen : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Maoming : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Meixian : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Shantou : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Shanwei : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Shaoguan : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Shenzhen : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Yangjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Zhanjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Zhaoqing : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Zhongshan : Ind City ;
+
+  fun Countries_TJ_provinces_Guangdong_cities_Zhuhai : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu : Ind Province ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Beihai : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Guilin : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Guixian : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Liuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Nanning : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Qinzhou : Ind City ;
+
+  fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Wuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou : Ind Province ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Anshun : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Duyun : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Guiyang : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Kaili : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Liupanshui : Ind City ;
+
+  fun Countries_TJ_provinces_Guizhou_cities_Zunyi : Ind City ;
+
+  fun Countries_TJ_provinces_Hainan : Ind Province ;
+
+  fun Countries_TJ_provinces_Hainan_cities_Haikou : Ind City ;
+
+  fun Countries_TJ_provinces_Hainan_cities_Sanya : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei : Ind Province ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Baoding : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Chengde : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Handan : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Hengshui : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Qinhuangdao : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Quzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Renqiu : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Shijiazhuang : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Tangshan : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Xingtai : Ind City ;
+
+  fun Countries_TJ_provinces_Hebei_cities_Zhangjiakou : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang : Ind Province ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Acheng : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Anda : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Beian : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Daqing : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Fuling : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Harbin : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Hegang : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Jiamusi : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Jixi : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Mishan : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Mudanjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Qiqihar : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Qitaihe : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Shangzhi : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Shuangcheng : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Shuangyashan : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Suihua : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Yichun : Ind City ;
+
+  fun Countries_TJ_provinces_Heilongjiang_cities_Zhaodong : Ind City ;
+
+  fun Countries_TJ_provinces_Henan : Ind Province ;
+
+  fun Countries_TJ_provinces_Henan_cities_Anyang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Hebi : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Jiaozuo : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Kaifeng : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Luohe : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Luoyang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Nanyang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Pingdingshan : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Puyang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Sanmenxia : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Shangqiu : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Xinxiang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Xinyang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Xuchang : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Zhengzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Zhoukou : Ind City ;
+
+  fun Countries_TJ_provinces_Henan_cities_Zhumadian : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei : Ind Province ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Cangzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Echeng : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Guangshui : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Honghu : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Huangshi : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Laohekou : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Puqi : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Shashi : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Shishou : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Shiyan : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Tianmen : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Wuhan : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Xiangfan : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Xianning : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Xiaogan : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Yichang : Ind City ;
+
+  fun Countries_TJ_provinces_Hubei_cities_Zaoyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan : Ind Province ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Changde : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Changsha : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Hengyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Huaihua : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Leiyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Lengshuijiang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Liling : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Loudi : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Shaoyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Xiangtan : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Yiyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Yuanjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Yueyang : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Zhuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Hunan_cities_Zixing : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu : Ind Province ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Changshu : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Changzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Danyang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Dongtai : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Huaian : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Huaiyin : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Jiangyin : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Kunshan : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Lianyungang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Liyang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Nanjing : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Nantong : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Suqian : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Suzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Taizhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Wuxi : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Xinghua : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Xuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Yancheng : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Yangzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Yixing : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Yizheng : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangsu_cities_Zhenjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi : Ind Province ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Fuzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Ganzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Jingdezhen : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Jiujiang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Nanchang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Pingxiang : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Shangrao : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Xinyu : Ind City ;
+
+  fun Countries_TJ_provinces_Jiangxi_cities_Yichun : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin : Ind Province ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Baicheng : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Changchun : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Daan : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Dunhua : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Fuyu : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Gongzhuling : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Huadian : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Hunjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Jilin : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Jiutai : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Liaoyuan : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Longjing : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Meihekou : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Siping : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Tonghua : Ind City ;
+
+  fun Countries_TJ_provinces_Jilin_cities_Yanji : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning : Ind Province ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Anshan : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Beipiao : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Benxi : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Chaoyang : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Dalian : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Dandong : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Fengcheng : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Fushun : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Fuxin : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Haicheng : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Jinxi : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Jinzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Liaoyang : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Panshan : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Shenyang : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Tieling : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Wafangdian : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Xingcheng : Ind City ;
+
+  fun Countries_TJ_provinces_Liaoning_cities_Yingkou : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol : Ind Province ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Baotou : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Chifeng : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Hailar : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Hohhot : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Jining : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Linhe : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Manzhouli : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Tongliao : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Ulanhot : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Wuhai : Ind City ;
+
+  fun Countries_TJ_provinces_NeiMonggol_cities_Yakeshi : Ind City ;
+
+  fun Countries_TJ_provinces_NingxiaHuizu : Ind Province ;
+
+  fun Countries_TJ_provinces_NingxiaHuizu_cities_Shizuishan : Ind City ;
+
+  fun Countries_TJ_provinces_NingxiaHuizu_cities_Yinchuan : Ind City ;
+
+  fun Countries_TJ_provinces_Qinghai : Ind Province ;
+
+  fun Countries_TJ_provinces_Qinghai_cities_Xining : Ind City ;
+
+  fun Countries_TJ_provinces_Qinghai_cities_Yushu : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi : Ind Province ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Ankang : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Baoji : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Hanzhong : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Tongchuan : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Weinan : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Xi : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Xian : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Xianyang : Ind City ;
+
+  fun Countries_TJ_provinces_Shaanxi_cities_Yanan : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong : Ind Province ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Dezhou : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Dongying : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Heze : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Jiaonan : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Jiaoxian : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Jinan : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Jining : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Laiwu : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Laiyang : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Liancheng : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Liaocheng : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Linqing : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Linyi : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Longkou : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Pingdu : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Qingdao : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Rizhao : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Taian : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Tengxian : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Weifang : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Weihai : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Wendeng : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Xintai : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Yantai : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Zaozhuang : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Zhucheng : Ind City ;
+
+  fun Countries_TJ_provinces_Shandong_cities_Zibo : Ind City ;
+
+  fun Countries_TJ_provinces_Shanghai_munic : Ind Province ;
+
+  fun Countries_TJ_provinces_Shanghai_munic_cities_Shanghai : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi : Ind Province ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Changzhi : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Datong : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Jincheng : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Linfen : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Taiyuan : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Yangquan : Ind City ;
+
+  fun Countries_TJ_provinces_Shanxi_cities_Yuci : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan : Ind Province ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Chengdu : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Chongqing : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Daxian : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Deyang : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Dukou : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Guangyuan : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Jiangyou : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Leshan : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Luzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Mianyang : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Nanchong : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Neijiang : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Qianjiang : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Wanxian : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Xichang : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Yibin : Ind City ;
+
+  fun Countries_TJ_provinces_Sichuan_cities_Zigong : Ind City ;
+
+  fun Countries_TJ_provinces_Tianjin_munic : Ind Province ;
+
+  fun Countries_TJ_provinces_Tianjin_munic_cities_Tianjin : Ind City ;
+
+  fun Countries_TJ_provinces_Tibet : Ind Province ;
+
+  fun Countries_TJ_provinces_Tibet_cities_Lhasa : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur : Ind Province ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Aksu : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Hami : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Karamay : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Kashi : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Korla : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Shihezi : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Urumqi : Ind City ;
+
+  fun Countries_TJ_provinces_XinjiangUygur_cities_Yining : Ind City ;
+
+  fun Countries_TJ_provinces_Yunnan : Ind Province ;
+
+  fun Countries_TJ_provinces_Yunnan_cities_Gejiu : Ind City ;
+
+  fun Countries_TJ_provinces_Yunnan_cities_Kunming : Ind City ;
+
+  fun Countries_TJ_provinces_Yunnan_cities_Qujing : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang : Ind Province ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Cixi : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Haining : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Hangzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Huzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Jiaxing : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Jinhua : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Ningbo : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Ruian : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Shaoxing : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Wenzhou : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Xiaoshan : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Yuyao : Ind City ;
+
+  fun Countries_TJ_provinces_Zhejiang_cities_Zhoushan : Ind City ;
+
+  fun Countries_TM_provinces_Ahal : Ind Province ;
+
+  fun Countries_TM_provinces_Ahal_cities_Ashgabat : Ind City ;
+
+  fun Countries_TM_provinces_Balkan : Ind Province ;
+
+  fun Countries_TM_provinces_Balkan_cities_Nebitdag : Ind City ;
+
+  fun Countries_TM_provinces_Dashhowuz : Ind Province ;
+
+  fun Countries_TM_provinces_Dashhowuz_cities_Tashauz : Ind City ;
+
+  fun Countries_TM_provinces_Leban : Ind Province ;
+
+  fun Countries_TM_provinces_Leban_cities_Charjew : Ind City ;
+
+  fun Countries_TM_provinces_Mary : Ind Province ;
+
+  fun Countries_TM_provinces_Mary_cities_Mary : Ind City ;
+
+  fun Countries_TN_cities_Tunis : Ind City ;
+
+  fun Countries_TO_cities_Nukualofa : Ind City ;
+
+  fun Countries_TR_cities_Hatay : Ind City ;
+
+  fun Countries_TR_cities_Icel : Ind City ;
+
+  fun Countries_TR_provinces_Adana : Ind Province ;
+
+  fun Countries_TR_provinces_Adana_cities_Adana : Ind City ;
+
+  fun Countries_TR_provinces_Adana_cities_Osmaniye : Ind City ;
+
+  fun Countries_TR_provinces_Adiyaman : Ind Province ;
+
+  fun Countries_TR_provinces_Adiyaman_cities_Adiyaman : Ind City ;
+
+  fun Countries_TR_provinces_Afyon : Ind Province ;
+
+  fun Countries_TR_provinces_Afyon_cities_Afyon : Ind City ;
+
+  fun Countries_TR_provinces_Agri : Ind Province ;
+
+  fun Countries_TR_provinces_Agri_cities_Agri : Ind City ;
+
+  fun Countries_TR_provinces_Aksaray : Ind Province ;
+
+  fun Countries_TR_provinces_Aksaray_cities_Aksaray : Ind City ;
+
+  fun Countries_TR_provinces_Amasya : Ind Province ;
+
+  fun Countries_TR_provinces_Amasya_cities_Amasya : Ind City ;
+
+  fun Countries_TR_provinces_Ankara : Ind Province ;
+
+  fun Countries_TR_provinces_Ankara_cities_Ankara : Ind City ;
+
+  fun Countries_TR_provinces_Antalya : Ind Province ;
+
+  fun Countries_TR_provinces_Antalya_cities_Antalya : Ind City ;
+
+  fun Countries_TR_provinces_Artvin : Ind Province ;
+
+  fun Countries_TR_provinces_Artvin_cities_Artvin : Ind City ;
+
+  fun Countries_TR_provinces_Aydin : Ind Province ;
+
+  fun Countries_TR_provinces_Aydin_cities_Aydin : Ind City ;
+
+  fun Countries_TR_provinces_Balikesir : Ind Province ;
+
+  fun Countries_TR_provinces_Balikesir_cities_Balikesir : Ind City ;
+
+  fun Countries_TR_provinces_Batman : Ind Province ;
+
+  fun Countries_TR_provinces_Batman_cities_Batman : Ind City ;
+
+  fun Countries_TR_provinces_Bayburt : Ind Province ;
+
+  fun Countries_TR_provinces_Bayburt_cities_Bayburt : Ind City ;
+
+  fun Countries_TR_provinces_Bilecik : Ind Province ;
+
+  fun Countries_TR_provinces_Bilecik_cities_Bilecik : Ind City ;
+
+  fun Countries_TR_provinces_Bingol : Ind Province ;
+
+  fun Countries_TR_provinces_Bingol_cities_Bingol : Ind City ;
+
+  fun Countries_TR_provinces_Bitlis : Ind Province ;
+
+  fun Countries_TR_provinces_Bitlis_cities_Bitlis : Ind City ;
+
+  fun Countries_TR_provinces_Bolu : Ind Province ;
+
+  fun Countries_TR_provinces_Bolu_cities_Bolu : Ind City ;
+
+  fun Countries_TR_provinces_Burdur : Ind Province ;
+
+  fun Countries_TR_provinces_Burdur_cities_Burdur : Ind City ;
+
+  fun Countries_TR_provinces_Bursa : Ind Province ;
+
+  fun Countries_TR_provinces_Bursa_cities_Bursa : Ind City ;
+
+  fun Countries_TR_provinces_Canakkale : Ind Province ;
+
+  fun Countries_TR_provinces_Canakkale_cities_Canakkale : Ind City ;
+
+  fun Countries_TR_provinces_Cankiri : Ind Province ;
+
+  fun Countries_TR_provinces_Cankiri_cities_Cankiri : Ind City ;
+
+  fun Countries_TR_provinces_Corum : Ind Province ;
+
+  fun Countries_TR_provinces_Corum_cities_Corum : Ind City ;
+
+  fun Countries_TR_provinces_Denizli : Ind Province ;
+
+  fun Countries_TR_provinces_Denizli_cities_Denizli : Ind City ;
+
+  fun Countries_TR_provinces_Diyarbakir : Ind Province ;
+
+  fun Countries_TR_provinces_Diyarbakir_cities_Diyarbakir : Ind City ;
+
+  fun Countries_TR_provinces_Edirne : Ind Province ;
+
+  fun Countries_TR_provinces_Edirne_cities_Edirne : Ind City ;
+
+  fun Countries_TR_provinces_Elazig : Ind Province ;
+
+  fun Countries_TR_provinces_Elazig_cities_Elazig : Ind City ;
+
+  fun Countries_TR_provinces_Erzincan : Ind Province ;
+
+  fun Countries_TR_provinces_Erzincan_cities_Erzincan : Ind City ;
+
+  fun Countries_TR_provinces_Erzurum : Ind Province ;
+
+  fun Countries_TR_provinces_Erzurum_cities_Erzurum : Ind City ;
+
+  fun Countries_TR_provinces_Eskisehir : Ind Province ;
+
+  fun Countries_TR_provinces_Eskisehir_cities_Eskisehir : Ind City ;
+
+  fun Countries_TR_provinces_Gaziantep : Ind Province ;
+
+  fun Countries_TR_provinces_Gaziantep_cities_Gaziantep : Ind City ;
+
+  fun Countries_TR_provinces_Giresun : Ind Province ;
+
+  fun Countries_TR_provinces_Giresun_cities_Giresun : Ind City ;
+
+  fun Countries_TR_provinces_Gumushane : Ind Province ;
+
+  fun Countries_TR_provinces_Gumushane_cities_Gumushane : Ind City ;
+
+  fun Countries_TR_provinces_Hakkari : Ind Province ;
+
+  fun Countries_TR_provinces_Hakkari_cities_Hakkari : Ind City ;
+
+  fun Countries_TR_provinces_Hatay : Ind Province ;
+
+  fun Countries_TR_provinces_Hatay_cities_Antakya : Ind City ;
+
+  fun Countries_TR_provinces_Hatay_cities_Iskenderun : Ind City ;
+
+  fun Countries_TR_provinces_Icel : Ind Province ;
+
+  fun Countries_TR_provinces_Icel_cities_Mersin : Ind City ;
+
+  fun Countries_TR_provinces_Icel_cities_Tarsus : Ind City ;
+
+  fun Countries_TR_provinces_Isparta : Ind Province ;
+
+  fun Countries_TR_provinces_Isparta_cities_Isparta : Ind City ;
+
+  fun Countries_TR_provinces_Istanbul : Ind Province ;
+
+  fun Countries_TR_provinces_Istanbul_cities_Istanbul : Ind City ;
+
+  fun Countries_TR_provinces_Izmir : Ind Province ;
+
+  fun Countries_TR_provinces_Izmir_cities_Izmir : Ind City ;
+
+  fun Countries_TR_provinces_Karaman : Ind Province ;
+
+  fun Countries_TR_provinces_Karaman_cities_Karaman : Ind City ;
+
+  fun Countries_TR_provinces_Karamanmaras : Ind Province ;
+
+  fun Countries_TR_provinces_Karamanmaras_cities_KaramanMaras : Ind City ;
+
+  fun Countries_TR_provinces_Kars : Ind Province ;
+
+  fun Countries_TR_provinces_Kars_cities_Kars : Ind City ;
+
+  fun Countries_TR_provinces_Kastamonu : Ind Province ;
+
+  fun Countries_TR_provinces_Kastamonu_cities_Kastamonu : Ind City ;
+
+  fun Countries_TR_provinces_Kayseri : Ind Province ;
+
+  fun Countries_TR_provinces_Kayseri_cities_Kayseri : Ind City ;
+
+  fun Countries_TR_provinces_Kirikkale : Ind Province ;
+
+  fun Countries_TR_provinces_Kirikkale_cities_Kirikkale : Ind City ;
+
+  fun Countries_TR_provinces_Kirklareli : Ind Province ;
+
+  fun Countries_TR_provinces_Kirklareli_cities_Kirklareli : Ind City ;
+
+  fun Countries_TR_provinces_Kirsehir : Ind Province ;
+
+  fun Countries_TR_provinces_Kirsehir_cities_Kirsehir : Ind City ;
+
+  fun Countries_TR_provinces_Kocaeli : Ind Province ;
+
+  fun Countries_TR_provinces_Kocaeli_cities_Adapazari : Ind City ;
+
+  fun Countries_TR_provinces_Kocaeli_cities_Gebze : Ind City ;
+
+  fun Countries_TR_provinces_Kocaeli_cities_Izmit : Ind City ;
+
+  fun Countries_TR_provinces_Kocaeli_cities_Kocaeli : Ind City ;
+
+  fun Countries_TR_provinces_Konya : Ind Province ;
+
+  fun Countries_TR_provinces_Konya_cities_Konya : Ind City ;
+
+  fun Countries_TR_provinces_Kutahya : Ind Province ;
+
+  fun Countries_TR_provinces_Kutahya_cities_Kutahya : Ind City ;
+
+  fun Countries_TR_provinces_Malatya : Ind Province ;
+
+  fun Countries_TR_provinces_Malatya_cities_Malatya : Ind City ;
+
+  fun Countries_TR_provinces_Manisa : Ind Province ;
+
+  fun Countries_TR_provinces_Manisa_cities_Manisa : Ind City ;
+
+  fun Countries_TR_provinces_Mardin : Ind Province ;
+
+  fun Countries_TR_provinces_Mardin_cities_Mardin : Ind City ;
+
+  fun Countries_TR_provinces_Mugla : Ind Province ;
+
+  fun Countries_TR_provinces_Mugla_cities_Mugla : Ind City ;
+
+  fun Countries_TR_provinces_Mus : Ind Province ;
+
+  fun Countries_TR_provinces_Mus_cities_Mus : Ind City ;
+
+  fun Countries_TR_provinces_Nevsehir : Ind Province ;
+
+  fun Countries_TR_provinces_Nevsehir_cities_Nevsehir : Ind City ;
+
+  fun Countries_TR_provinces_Nigde : Ind Province ;
+
+  fun Countries_TR_provinces_Nigde_cities_Nigde : Ind City ;
+
+  fun Countries_TR_provinces_Ordu : Ind Province ;
+
+  fun Countries_TR_provinces_Ordu_cities_Ordu : Ind City ;
+
+  fun Countries_TR_provinces_Rize : Ind Province ;
+
+  fun Countries_TR_provinces_Rize_cities_Rize : Ind City ;
+
+  fun Countries_TR_provinces_Sakarya : Ind Province ;
+
+  fun Countries_TR_provinces_Sakarya_cities_Sakarya : Ind City ;
+
+  fun Countries_TR_provinces_Samsun : Ind Province ;
+
+  fun Countries_TR_provinces_Samsun_cities_Samsun : Ind City ;
+
+  fun Countries_TR_provinces_Sanliurfa : Ind Province ;
+
+  fun Countries_TR_provinces_Sanliurfa_cities_Urfa : Ind City ;
+
+  fun Countries_TR_provinces_Siirt : Ind Province ;
+
+  fun Countries_TR_provinces_Siirt_cities_Siirt : Ind City ;
+
+  fun Countries_TR_provinces_Sinop : Ind Province ;
+
+  fun Countries_TR_provinces_Sinop_cities_Sinop : Ind City ;
+
+  fun Countries_TR_provinces_Sirnak : Ind Province ;
+
+  fun Countries_TR_provinces_Sirnak_cities_Sirnak : Ind City ;
+
+  fun Countries_TR_provinces_Sivas : Ind Province ;
+
+  fun Countries_TR_provinces_Sivas_cities_Sivas : Ind City ;
+
+  fun Countries_TR_provinces_Tekirdag : Ind Province ;
+
+  fun Countries_TR_provinces_Tekirdag_cities_Tekirdag : Ind City ;
+
+  fun Countries_TR_provinces_Tokat : Ind Province ;
+
+  fun Countries_TR_provinces_Tokat_cities_Tokat : Ind City ;
+
+  fun Countries_TR_provinces_Trabzon : Ind Province ;
+
+  fun Countries_TR_provinces_Trabzon_cities_Trabzon : Ind City ;
+
+  fun Countries_TR_provinces_Tunceli : Ind Province ;
+
+  fun Countries_TR_provinces_Tunceli_cities_Tunceli : Ind City ;
+
+  fun Countries_TR_provinces_Usak : Ind Province ;
+
+  fun Countries_TR_provinces_Usak_cities_Usak : Ind City ;
+
+  fun Countries_TR_provinces_Van : Ind Province ;
+
+  fun Countries_TR_provinces_Van_cities_Van : Ind City ;
+
+  fun Countries_TR_provinces_Yozgat : Ind Province ;
+
+  fun Countries_TR_provinces_Yozgat_cities_Yozgat : Ind City ;
+
+  fun Countries_TR_provinces_Zonguldak : Ind Province ;
+
+  fun Countries_TR_provinces_Zonguldak_cities_Karabuk : Ind City ;
+
+  fun Countries_TR_provinces_Zonguldak_cities_Zonguldak : Ind City ;
+
+  fun Countries_TT_cities_Port_of_Spain : Ind City ;
+
+  fun Countries_TUV_cities_Funafuti : Ind City ;
+
+  fun Countries_UAE_cities_AbuDhabi : Ind City ;
+
+  fun Countries_UAE_cities_AlAyn : Ind City ;
+
+  fun Countries_UAE_cities_Dubai : Ind City ;
+
+  fun Countries_UAE_cities_Sharjah : Ind City ;
+
+  fun Countries_UAE_provinces_AbuDhabi : Ind Province ;
+
+  fun Countries_UAE_provinces_Ajman : Ind Province ;
+
+  fun Countries_UAE_provinces_AlFujayrah : Ind Province ;
+
+  fun Countries_UAE_provinces_AshShariqah : Ind Province ;
+
+  fun Countries_UAE_provinces_Dubayy : Ind Province ;
+
+  fun Countries_UAE_provinces_RasalKhaymah : Ind Province ;
+
+  fun Countries_UAE_provinces_UmmalQaywayn : Ind Province ;
+
+  fun Countries_UA_provinces_Cherkaska : Ind Province ;
+
+  fun Countries_UA_provinces_Cherkaska_cities_Cherkasy : Ind City ;
+
+  fun Countries_UA_provinces_Chernihivska : Ind Province ;
+
+  fun Countries_UA_provinces_Chernihivska_cities_Chernihiv : Ind City ;
+
+  fun Countries_UA_provinces_Chernivetska : Ind Province ;
+
+  fun Countries_UA_provinces_Chernivetska_cities_Chernivtsi : Ind City ;
+
+  fun Countries_UA_provinces_Dnipropetrovska : Ind Province ;
+
+  fun Countries_UA_provinces_Dnipropetrovska_cities_Dniprodzerzhynsk : Ind City ;
+
+  fun Countries_UA_provinces_Dnipropetrovska_cities_Dnipropetrovsk : Ind City ;
+
+  fun Countries_UA_provinces_Dnipropetrovska_cities_KryvyyRih : Ind City ;
+
+  fun Countries_UA_provinces_Donetska : Ind Province ;
+
+  fun Countries_UA_provinces_Donetska_cities_Donetsk : Ind City ;
+
+  fun Countries_UA_provinces_Donetska_cities_Horlivka : Ind City ;
+
+  fun Countries_UA_provinces_Donetska_cities_Makiyivka : Ind City ;
+
+  fun Countries_UA_provinces_Donetska_cities_Mariupol : Ind City ;
+
+  fun Countries_UA_provinces_IvanoFrankivska : Ind Province ;
+
+  fun Countries_UA_provinces_IvanoFrankivska_cities_IvanoFrankivsk : Ind City ;
+
+  fun Countries_UA_provinces_Kharkivska : Ind Province ;
+
+  fun Countries_UA_provinces_Kharkivska_cities_Kharkiv : Ind City ;
+
+  fun Countries_UA_provinces_Khersonska : Ind Province ;
+
+  fun Countries_UA_provinces_Khersonska_cities_Kherson : Ind City ;
+
+  fun Countries_UA_provinces_Khmelnytska : Ind Province ;
+
+  fun Countries_UA_provinces_Khmelnytska_cities_Khmelnytskyy : Ind City ;
+
+  fun Countries_UA_provinces_Kirovohradska : Ind Province ;
+
+  fun Countries_UA_provinces_Kirovohradska_cities_Kirovohrad : Ind City ;
+
+  fun Countries_UA_provinces_Krym : Ind Province ;
+
+  fun Countries_UA_provinces_Krym_cities_Sevastopol : Ind City ;
+
+  fun Countries_UA_provinces_Krym_cities_Simferopol : Ind City ;
+
+  fun Countries_UA_provinces_Kyyivska : Ind Province ;
+
+  fun Countries_UA_provinces_Kyyivska_cities_Kiev : Ind City ;
+
+  fun Countries_UA_provinces_Luhanska : Ind Province ;
+
+  fun Countries_UA_provinces_Luhanska_cities_Luhansk : Ind City ;
+
+  fun Countries_UA_provinces_Lvivska : Ind Province ;
+
+  fun Countries_UA_provinces_Lvivska_cities_Lviv : Ind City ;
+
+  fun Countries_UA_provinces_Mykolayivska : Ind Province ;
+
+  fun Countries_UA_provinces_Mykolayivska_cities_Mykolayiv : Ind City ;
+
+  fun Countries_UA_provinces_Odeska : Ind Province ;
+
+  fun Countries_UA_provinces_Odeska_cities_Odesa : Ind City ;
+
+  fun Countries_UA_provinces_Poltavska : Ind Province ;
+
+  fun Countries_UA_provinces_Poltavska_cities_Kremenchuk : Ind City ;
+
+  fun Countries_UA_provinces_Poltavska_cities_Poltava : Ind City ;
+
+  fun Countries_UA_provinces_Rivnenska : Ind Province ;
+
+  fun Countries_UA_provinces_Rivnenska_cities_Rivne : Ind City ;
+
+  fun Countries_UA_provinces_Sumska : Ind Province ;
+
+  fun Countries_UA_provinces_Sumska_cities_Sumy : Ind City ;
+
+  fun Countries_UA_provinces_Ternopilska : Ind Province ;
+
+  fun Countries_UA_provinces_Ternopilska_cities_Ternopil : Ind City ;
+
+  fun Countries_UA_provinces_Vinnytska : Ind Province ;
+
+  fun Countries_UA_provinces_Vinnytska_cities_Vinnytsya : Ind City ;
+
+  fun Countries_UA_provinces_Volynska : Ind Province ;
+
+  fun Countries_UA_provinces_Volynska_cities_Lutsk : Ind City ;
+
+  fun Countries_UA_provinces_Zakarpatska : Ind Province ;
+
+  fun Countries_UA_provinces_Zakarpatska_cities_Uzhhorod : Ind City ;
+
+  fun Countries_UA_provinces_Zaporizka : Ind Province ;
+
+  fun Countries_UA_provinces_Zaporizka_cities_Zaporizhzhya : Ind City ;
+
+  fun Countries_UA_provinces_Zhytomyrska : Ind Province ;
+
+  fun Countries_UA_provinces_Zhytomyrska_cities_Zhytomyr : Ind City ;
+
+  fun Countries_USA_provinces_Alabama : Ind Province ;
+
+  fun Countries_USA_provinces_Alabama_cities_Birmingham : Ind City ;
+
+  fun Countries_USA_provinces_Alabama_cities_Huntsville : Ind City ;
+
+  fun Countries_USA_provinces_Alabama_cities_Mobile : Ind City ;
+
+  fun Countries_USA_provinces_Alabama_cities_Montgomery : Ind City ;
+
+  fun Countries_USA_provinces_Alaska : Ind Province ;
+
+  fun Countries_USA_provinces_Alaska_cities_Anchorage : Ind City ;
+
+  fun Countries_USA_provinces_Alaska_cities_Juneau : Ind City ;
+
+  fun Countries_USA_provinces_Arizona : Ind Province ;
+
+  fun Countries_USA_provinces_Arizona_cities_Chandler : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Glendale : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Mesa : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Phoenix : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Scottsdale : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Tempe : Ind City ;
+
+  fun Countries_USA_provinces_Arizona_cities_Tucson : Ind City ;
+
+  fun Countries_USA_provinces_Arkansas : Ind Province ;
+
+  fun Countries_USA_provinces_Arkansas_cities_LittleRock : Ind City ;
+
+  fun Countries_USA_provinces_California : Ind Province ;
+
+  fun Countries_USA_provinces_California_cities_Anaheim : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Bakersfield : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Berkeley : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_ChulaVista : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Concord : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Corona : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_CostaMesa : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_ElMonte : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Escondido : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Fontana : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Fremont : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Fresno : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Fullerton : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_GardenGrove : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Glendale : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Hayward : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_HuntingtonBeach : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Inglewood : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Irvine : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Lancaster : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_LongBeach : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_LosAngeles : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Modesto : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_MorenoValley : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Norwalk : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Oakland : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Oceanside : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Ontario : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Orange : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Oxnard : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Palmdale : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Pasadena : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Pomona : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_RanchoCucamonga : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Riverside : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Sacramento : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Salinas : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SanBernardino : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SanDiego : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SanFrancisco : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SanJose : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SantaAna : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SantaClarita : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SantaRosa : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_SimiValley : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Stockton : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Sunnyvale : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_ThousandOaks : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Torrance : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_Vallejo : Ind City ;
+
+  fun Countries_USA_provinces_California_cities_WestCovina : Ind City ;
+
+  fun Countries_USA_provinces_Colorado : Ind Province ;
+
+  fun Countries_USA_provinces_Colorado_cities_Aurora : Ind City ;
+
+  fun Countries_USA_provinces_Colorado_cities_ColoradoSprings : Ind City ;
+
+  fun Countries_USA_provinces_Colorado_cities_Denver : Ind City ;
+
+  fun Countries_USA_provinces_Colorado_cities_FortCollins : Ind City ;
+
+  fun Countries_USA_provinces_Colorado_cities_Lakewood : Ind City ;
+
+  fun Countries_USA_provinces_Connecticut : Ind Province ;
+
+  fun Countries_USA_provinces_Connecticut_cities_Bridgeport : Ind City ;
+
+  fun Countries_USA_provinces_Connecticut_cities_Hartford : Ind City ;
+
+  fun Countries_USA_provinces_Connecticut_cities_NewHaven : Ind City ;
+
+  fun Countries_USA_provinces_Connecticut_cities_Stamford : Ind City ;
+
+  fun Countries_USA_provinces_Connecticut_cities_Waterbury : Ind City ;
+
+  fun Countries_USA_provinces_Delaware : Ind Province ;
+
+  fun Countries_USA_provinces_Delaware_cities_Dover : Ind City ;
+
+  fun Countries_USA_provinces_Distr_Columbia : Ind Province ;
+
+  fun Countries_USA_provinces_Distr_Columbia_cities_Washington : Ind City ;
+
+  fun Countries_USA_provinces_Florida : Ind Province ;
+
+  fun Countries_USA_provinces_Florida_cities_Clearwater : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_CoralSprings : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_FortLauderdale : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Hialeah : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Hollywood : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Jacksonville : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Miami : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Orlando : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_PembrokePines : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_St_Petersburg : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Tallahassee : Ind City ;
+
+  fun Countries_USA_provinces_Florida_cities_Tampa : Ind City ;
+
+  fun Countries_USA_provinces_Georgia : Ind Province ;
+
+  fun Countries_USA_provinces_Georgia_cities_Atlanta : Ind City ;
+
+  fun Countries_USA_provinces_Georgia_cities_Columbus : Ind City ;
+
+  fun Countries_USA_provinces_Georgia_cities_Macon : Ind City ;
+
+  fun Countries_USA_provinces_Georgia_cities_Savannah : Ind City ;
+
+  fun Countries_USA_provinces_Hawaii : Ind Province ;
+
+  fun Countries_USA_provinces_Hawaii_cities_Hilo : Ind City ;
+
+  fun Countries_USA_provinces_Hawaii_cities_Honolulu : Ind City ;
+
+  fun Countries_USA_provinces_Idaho : Ind Province ;
+
+  fun Countries_USA_provinces_Idaho_cities_Boise : Ind City ;
+
+  fun Countries_USA_provinces_Illinois : Ind Province ;
+
+  fun Countries_USA_provinces_Illinois_cities_Aurora : Ind City ;
+
+  fun Countries_USA_provinces_Illinois_cities_Chicago : Ind City ;
+
+  fun Countries_USA_provinces_Illinois_cities_Naperville : Ind City ;
+
+  fun Countries_USA_provinces_Illinois_cities_Peoria : Ind City ;
+
+  fun Countries_USA_provinces_Illinois_cities_Rockford : Ind City ;
+
+  fun Countries_USA_provinces_Illinois_cities_Springfield : Ind City ;
+
+  fun Countries_USA_provinces_Indiana : Ind Province ;
+
+  fun Countries_USA_provinces_Indiana_cities_Evansville : Ind City ;
+
+  fun Countries_USA_provinces_Indiana_cities_FortWayne : Ind City ;
+
+  fun Countries_USA_provinces_Indiana_cities_Gary : Ind City ;
+
+  fun Countries_USA_provinces_Indiana_cities_Indianapolis : Ind City ;
+
+  fun Countries_USA_provinces_Indiana_cities_SouthBend : Ind City ;
+
+  fun Countries_USA_provinces_Iowa : Ind Province ;
+
+  fun Countries_USA_provinces_Iowa_cities_CedarRapids : Ind City ;
+
+  fun Countries_USA_provinces_Iowa_cities_DesMoines : Ind City ;
+
+  fun Countries_USA_provinces_Kansas : Ind Province ;
+
+  fun Countries_USA_provinces_Kansas_cities_KansasCity : Ind City ;
+
+  fun Countries_USA_provinces_Kansas_cities_OverlandPark : Ind City ;
+
+  fun Countries_USA_provinces_Kansas_cities_Topeka : Ind City ;
+
+  fun Countries_USA_provinces_Kansas_cities_Wichita : Ind City ;
+
+  fun Countries_USA_provinces_Kentucky : Ind Province ;
+
+  fun Countries_USA_provinces_Kentucky_cities_Frankfort : Ind City ;
+
+  fun Countries_USA_provinces_Kentucky_cities_LexingtonFayette : Ind City ;
+
+  fun Countries_USA_provinces_Kentucky_cities_Louisville : Ind City ;
+
+  fun Countries_USA_provinces_Louisiana : Ind Province ;
+
+  fun Countries_USA_provinces_Louisiana_cities_BatonRouge : Ind City ;
+
+  fun Countries_USA_provinces_Louisiana_cities_Lafayette : Ind City ;
+
+  fun Countries_USA_provinces_Louisiana_cities_NewOrleans : Ind City ;
+
+  fun Countries_USA_provinces_Louisiana_cities_Shreveport : Ind City ;
+
+  fun Countries_USA_provinces_Maine : Ind Province ;
+
+  fun Countries_USA_provinces_Maine_cities_Augusta : Ind City ;
+
+  fun Countries_USA_provinces_Maryland : Ind Province ;
+
+  fun Countries_USA_provinces_Maryland_cities_Annapolis : Ind City ;
+
+  fun Countries_USA_provinces_Maryland_cities_Baltimore : Ind City ;
+
+  fun Countries_USA_provinces_Massachusetts : Ind Province ;
+
+  fun Countries_USA_provinces_Massachusetts_cities_Boston : Ind City ;
+
+  fun Countries_USA_provinces_Massachusetts_cities_Lowell : Ind City ;
+
+  fun Countries_USA_provinces_Massachusetts_cities_Springfield : Ind City ;
+
+  fun Countries_USA_provinces_Massachusetts_cities_Worcester : Ind City ;
+
+  fun Countries_USA_provinces_Michigan : Ind Province ;
+
+  fun Countries_USA_provinces_Michigan_cities_AnnArbor : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_Detroit : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_Flint : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_GrandRapids : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_Lansing : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_Livonia : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_SterlingHeights : Ind City ;
+
+  fun Countries_USA_provinces_Michigan_cities_Warren : Ind City ;
+
+  fun Countries_USA_provinces_Minnesota : Ind Province ;
+
+  fun Countries_USA_provinces_Minnesota_cities_Minneapolis : Ind City ;
+
+  fun Countries_USA_provinces_Minnesota_cities_St_Paul : Ind City ;
+
+  fun Countries_USA_provinces_Mississippi : Ind Province ;
+
+  fun Countries_USA_provinces_Mississippi_cities_Jackson : Ind City ;
+
+  fun Countries_USA_provinces_Missouri : Ind Province ;
+
+  fun Countries_USA_provinces_Missouri_cities_Independence : Ind City ;
+
+  fun Countries_USA_provinces_Missouri_cities_JeffersonCity : Ind City ;
+
+  fun Countries_USA_provinces_Missouri_cities_KansasCity : Ind City ;
+
+  fun Countries_USA_provinces_Missouri_cities_Springfield : Ind City ;
+
+  fun Countries_USA_provinces_Missouri_cities_St_Louis : Ind City ;
+
+  fun Countries_USA_provinces_Montana : Ind Province ;
+
+  fun Countries_USA_provinces_Montana_cities_Helena : Ind City ;
+
+  fun Countries_USA_provinces_Nebraska : Ind Province ;
+
+  fun Countries_USA_provinces_Nebraska_cities_Lincoln : Ind City ;
+
+  fun Countries_USA_provinces_Nebraska_cities_Omaha : Ind City ;
+
+  fun Countries_USA_provinces_Nevada : Ind Province ;
+
+  fun Countries_USA_provinces_Nevada_cities_CarsonCity : Ind City ;
+
+  fun Countries_USA_provinces_Nevada_cities_Henderson : Ind City ;
+
+  fun Countries_USA_provinces_Nevada_cities_LasVegas : Ind City ;
+
+  fun Countries_USA_provinces_Nevada_cities_Reno : Ind City ;
+
+  fun Countries_USA_provinces_NewHampshire : Ind Province ;
+
+  fun Countries_USA_provinces_NewHampshire_cities_Concord : Ind City ;
+
+  fun Countries_USA_provinces_NewHampshire_cities_Manchester : Ind City ;
+
+  fun Countries_USA_provinces_NewJersey : Ind Province ;
+
+  fun Countries_USA_provinces_NewJersey_cities_Elizabeth : Ind City ;
+
+  fun Countries_USA_provinces_NewJersey_cities_JerseyCity : Ind City ;
+
+  fun Countries_USA_provinces_NewJersey_cities_Newark : Ind City ;
+
+  fun Countries_USA_provinces_NewJersey_cities_Paterson : Ind City ;
+
+  fun Countries_USA_provinces_NewJersey_cities_Trenton : Ind City ;
+
+  fun Countries_USA_provinces_NewMexico : Ind Province ;
+
+  fun Countries_USA_provinces_NewMexico_cities_Albuquerque : Ind City ;
+
+  fun Countries_USA_provinces_NewMexico_cities_SantaFe : Ind City ;
+
+  fun Countries_USA_provinces_NewYork : Ind Province ;
+
+  fun Countries_USA_provinces_NewYork_cities_Albany : Ind City ;
+
+  fun Countries_USA_provinces_NewYork_cities_Buffalo : Ind City ;
+
+  fun Countries_USA_provinces_NewYork_cities_NewYork : Ind City ;
+
+  fun Countries_USA_provinces_NewYork_cities_Rochester : Ind City ;
+
+  fun Countries_USA_provinces_NewYork_cities_Syracuse : Ind City ;
+
+  fun Countries_USA_provinces_NewYork_cities_Yonkers : Ind City ;
+
+  fun Countries_USA_provinces_NorthCarolina : Ind Province ;
+
+  fun Countries_USA_provinces_NorthCarolina_cities_Charlotte : Ind City ;
+
+  fun Countries_USA_provinces_NorthCarolina_cities_Durham : Ind City ;
+
+  fun Countries_USA_provinces_NorthCarolina_cities_Greensboro : Ind City ;
+
+  fun Countries_USA_provinces_NorthCarolina_cities_Raleigh : Ind City ;
+
+  fun Countries_USA_provinces_NorthCarolina_cities_WinstonSalem : Ind City ;
+
+  fun Countries_USA_provinces_NorthDakota : Ind Province ;
+
+  fun Countries_USA_provinces_NorthDakota_cities_Bismarck : Ind City ;
+
+  fun Countries_USA_provinces_Ohio : Ind Province ;
+
+  fun Countries_USA_provinces_Ohio_cities_Akron : Ind City ;
+
+  fun Countries_USA_provinces_Ohio_cities_Cincinnati : Ind City ;
+
+  fun Countries_USA_provinces_Ohio_cities_Cleveland : Ind City ;
+
+  fun Countries_USA_provinces_Ohio_cities_Columbus : Ind City ;
+
+  fun Countries_USA_provinces_Ohio_cities_Dayton : Ind City ;
+
+  fun Countries_USA_provinces_Ohio_cities_Toledo : Ind City ;
+
+  fun Countries_USA_provinces_Oklahoma : Ind Province ;
+
+  fun Countries_USA_provinces_Oklahoma_cities_OklahomaCity : Ind City ;
+
+  fun Countries_USA_provinces_Oklahoma_cities_Tulsa : Ind City ;
+
+  fun Countries_USA_provinces_Oregon : Ind Province ;
+
+  fun Countries_USA_provinces_Oregon_cities_Eugene : Ind City ;
+
+  fun Countries_USA_provinces_Oregon_cities_Portland : Ind City ;
+
+  fun Countries_USA_provinces_Oregon_cities_Salem : Ind City ;
+
+  fun Countries_USA_provinces_Pennsylvania : Ind Province ;
+
+  fun Countries_USA_provinces_Pennsylvania_cities_Allentown : Ind City ;
+
+  fun Countries_USA_provinces_Pennsylvania_cities_Erie : Ind City ;
+
+  fun Countries_USA_provinces_Pennsylvania_cities_Harrisburg : Ind City ;
+
+  fun Countries_USA_provinces_Pennsylvania_cities_Philadelphia : Ind City ;
+
+  fun Countries_USA_provinces_Pennsylvania_cities_Pittsburgh : Ind City ;
+
+  fun Countries_USA_provinces_RhodeIsland : Ind Province ;
+
+  fun Countries_USA_provinces_RhodeIsland_cities_Providence : Ind City ;
+
+  fun Countries_USA_provinces_SouthCarolina : Ind Province ;
+
+  fun Countries_USA_provinces_SouthCarolina_cities_Columbia : Ind City ;
+
+  fun Countries_USA_provinces_SouthDakota : Ind Province ;
+
+  fun Countries_USA_provinces_SouthDakota_cities_Pierre : Ind City ;
+
+  fun Countries_USA_provinces_SouthDakota_cities_SiouxFalls : Ind City ;
+
+  fun Countries_USA_provinces_Tennessee : Ind Province ;
+
+  fun Countries_USA_provinces_Tennessee_cities_Chattanooga : Ind City ;
+
+  fun Countries_USA_provinces_Tennessee_cities_Knoxville : Ind City ;
+
+  fun Countries_USA_provinces_Tennessee_cities_Memphis : Ind City ;
+
+  fun Countries_USA_provinces_Tennessee_cities_Nashville : Ind City ;
+
+  fun Countries_USA_provinces_Tennessee_cities_NashvilleDavidson : Ind City ;
+
+  fun Countries_USA_provinces_Texas : Ind Province ;
+
+  fun Countries_USA_provinces_Texas_cities_Abilene : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Amarillo : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Arlington : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Austin : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Beaumont : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Brownsville : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_CorpusChristi : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Dallas : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_ElPaso : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_FortWorth : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Garland : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_GrandPrairie : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Houston : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Irving : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Laredo : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Lubbock : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_McAllen : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Mesquite : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Pasadena : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Plano : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_SanAntonio : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_Waco : Ind City ;
+
+  fun Countries_USA_provinces_Texas_cities_WichitaFalls : Ind City ;
+
+  fun Countries_USA_provinces_Utah : Ind Province ;
+
+  fun Countries_USA_provinces_Utah_cities_SaltLakeCity : Ind City ;
+
+  fun Countries_USA_provinces_Vermont : Ind Province ;
+
+  fun Countries_USA_provinces_Vermont_cities_Montpelier : Ind City ;
+
+  fun Countries_USA_provinces_Virginia : Ind Province ;
+
+  fun Countries_USA_provinces_Virginia_cities_Alexandria : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Arlington : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Chesapeake : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Hampton : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_NewportNews : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Norfolk : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Portsmouth : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_Richmond : Ind City ;
+
+  fun Countries_USA_provinces_Virginia_cities_VirginiaBeach : Ind City ;
+
+  fun Countries_USA_provinces_Washington : Ind Province ;
+
+  fun Countries_USA_provinces_Washington_cities_Olympia : Ind City ;
+
+  fun Countries_USA_provinces_Washington_cities_Seattle : Ind City ;
+
+  fun Countries_USA_provinces_Washington_cities_Spokane : Ind City ;
+
+  fun Countries_USA_provinces_Washington_cities_Tacoma : Ind City ;
+
+  fun Countries_USA_provinces_WestVirginia : Ind Province ;
+
+  fun Countries_USA_provinces_WestVirginia_cities_Charleston : Ind City ;
+
+  fun Countries_USA_provinces_Wisconsin : Ind Province ;
+
+  fun Countries_USA_provinces_Wisconsin_cities_GreenBay : Ind City ;
+
+  fun Countries_USA_provinces_Wisconsin_cities_Madison : Ind City ;
+
+  fun Countries_USA_provinces_Wisconsin_cities_Milwaukee : Ind City ;
+
+  fun Countries_USA_provinces_Wyoming : Ind Province ;
+
+  fun Countries_USA_provinces_Wyoming_cities_Cheyenne : Ind City ;
+
+  fun Countries_UZB_provinces_Andijon : Ind Province ;
+
+  fun Countries_UZB_provinces_Andijon_cities_Andijon : Ind City ;
+
+  fun Countries_UZB_provinces_Bukhoro : Ind Province ;
+
+  fun Countries_UZB_provinces_Bukhoro_cities_Bukhoro : Ind City ;
+
+  fun Countries_UZB_provinces_Farghona : Ind Province ;
+
+  fun Countries_UZB_provinces_Farghona_cities_Farghona : Ind City ;
+
+  fun Countries_UZB_provinces_Farghona_cities_Marghilon : Ind City ;
+
+  fun Countries_UZB_provinces_Farghona_cities_Quqon : Ind City ;
+
+  fun Countries_UZB_provinces_Jizzakh : Ind Province ;
+
+  fun Countries_UZB_provinces_Jizzakh_cities_Jizzakh : Ind City ;
+
+  fun Countries_UZB_provinces_Khorazm : Ind Province ;
+
+  fun Countries_UZB_provinces_Khorazm_cities_Urganch : Ind City ;
+
+  fun Countries_UZB_provinces_Namangan : Ind Province ;
+
+  fun Countries_UZB_provinces_Namangan_cities_Namangan : Ind City ;
+
+  fun Countries_UZB_provinces_Nawoiy : Ind Province ;
+
+  fun Countries_UZB_provinces_Nawoiy_cities_Nawoiy : Ind City ;
+
+  fun Countries_UZB_provinces_Qasqadare : Ind Province ;
+
+  fun Countries_UZB_provinces_Qasqadare_cities_Qarshi : Ind City ;
+
+  fun Countries_UZB_provinces_Qoraqalpoghiston : Ind Province ;
+
+  fun Countries_UZB_provinces_Qoraqalpoghiston_cities_Nukus : Ind City ;
+
+  fun Countries_UZB_provinces_Samarqand : Ind Province ;
+
+  fun Countries_UZB_provinces_Samarqand_cities_Samarqand : Ind City ;
+
+  fun Countries_UZB_provinces_Sirdare : Ind Province ;
+
+  fun Countries_UZB_provinces_Sirdare_cities_Guliston : Ind City ;
+
+  fun Countries_UZB_provinces_Surkhondare : Ind Province ;
+
+  fun Countries_UZB_provinces_Surkhondare_cities_Termiz : Ind City ;
+
+  fun Countries_UZB_provinces_Toshkent : Ind Province ;
+
+  fun Countries_UZB_provinces_Toshkent_cities_Angren : Ind City ;
+
+  fun Countries_UZB_provinces_Toshkent_cities_Chirchiq : Ind City ;
+
+  fun Countries_UZB_provinces_Toshkent_cities_Olmaliq : Ind City ;
+
+  fun Countries_UZB_provinces_Toshkent_cities_Tashkent : Ind City ;
+
+  fun Countries_VN_cities_CamPha : Ind City ;
+
+  fun Countries_VN_cities_CanTho : Ind City ;
+
+  fun Countries_VN_cities_DaNang : Ind City ;
+
+  fun Countries_VN_cities_Haiphong : Ind City ;
+
+  fun Countries_VN_cities_Hanoi : Ind City ;
+
+  fun Countries_VN_cities_HongGai : Ind City ;
+
+  fun Countries_VN_cities_Hue : Ind City ;
+
+  fun Countries_VN_cities_LongXuyen : Ind City ;
+
+  fun Countries_VN_cities_NamDinh : Ind City ;
+
+  fun Countries_VN_cities_NhaTrang : Ind City ;
+
+  fun Countries_VN_cities_QuiNhon : Ind City ;
+
+  fun Countries_VN_cities_Saigon : Ind City ;
+
+  fun Countries_VN_cities_ThaiNguyen : Ind City ;
+
+  fun Countries_VN_cities_VietTri : Ind City ;
+
+  fun Countries_VN_cities_VungTau : Ind City ;
+
+  fun Countries_VN_provinces_AnGiang : Ind Province ;
+
+  fun Countries_VN_provinces_BaRiaVungTau : Ind Province ;
+
+  fun Countries_VN_provinces_BacThai : Ind Province ;
+
+  fun Countries_VN_provinces_BenTre : Ind Province ;
+
+  fun Countries_VN_provinces_BinhDinh : Ind Province ;
+
+  fun Countries_VN_provinces_BinhThuan : Ind Province ;
+
+  fun Countries_VN_provinces_CanTho : Ind Province ;
+
+  fun Countries_VN_provinces_CaoBang : Ind Province ;
+
+  fun Countries_VN_provinces_CentralHighlands : Ind Province ;
+
+  fun Countries_VN_provinces_DacLac : Ind Province ;
+
+  fun Countries_VN_provinces_DongNai : Ind Province ;
+
+  fun Countries_VN_provinces_DongThap : Ind Province ;
+
+  fun Countries_VN_provinces_GiaLai : Ind Province ;
+
+  fun Countries_VN_provinces_HaBac : Ind Province ;
+
+  fun Countries_VN_provinces_HaGiang : Ind Province ;
+
+  fun Countries_VN_provinces_HaTay : Ind Province ;
+
+  fun Countries_VN_provinces_HaTinh : Ind Province ;
+
+  fun Countries_VN_provinces_HaiHung : Ind Province ;
+
+  fun Countries_VN_provinces_Haiphong : Ind Province ;
+
+  fun Countries_VN_provinces_Hanoi : Ind Province ;
+
+  fun Countries_VN_provinces_HoChiMinhCity : Ind Province ;
+
+  fun Countries_VN_provinces_HoaBinh : Ind Province ;
+
+  fun Countries_VN_provinces_KhanhHoa : Ind Province ;
+
+  fun Countries_VN_provinces_KienGiang : Ind Province ;
+
+  fun Countries_VN_provinces_KonTum : Ind Province ;
+
+  fun Countries_VN_provinces_LaiChau : Ind Province ;
+
+  fun Countries_VN_provinces_LamDong : Ind Province ;
+
+  fun Countries_VN_provinces_LangSon : Ind Province ;
+
+  fun Countries_VN_provinces_LaoCai : Ind Province ;
+
+  fun Countries_VN_provinces_LongAn : Ind Province ;
+
+  fun Countries_VN_provinces_MekongRiverDelta : Ind Province ;
+
+  fun Countries_VN_provinces_MinhHai : Ind Province ;
+
+  fun Countries_VN_provinces_NamHa : Ind Province ;
+
+  fun Countries_VN_provinces_NgheAn : Ind Province ;
+
+  fun Countries_VN_provinces_NinhBinh : Ind Province ;
+
+  fun Countries_VN_provinces_NinhThuan : Ind Province ;
+
+  fun Countries_VN_provinces_NorthCentralCoast : Ind Province ;
+
+  fun Countries_VN_provinces_NorthEastSouth : Ind Province ;
+
+  fun Countries_VN_provinces_NorthMountainandMidlands : Ind Province ;
+
+  fun Countries_VN_provinces_PhuYen : Ind Province ;
+
+  fun Countries_VN_provinces_QuangBinh : Ind Province ;
+
+  fun Countries_VN_provinces_QuangNamDaNang : Ind Province ;
+
+  fun Countries_VN_provinces_QuangNgai : Ind Province ;
+
+  fun Countries_VN_provinces_QuangNinh : Ind Province ;
+
+  fun Countries_VN_provinces_QuangTri : Ind Province ;
+
+  fun Countries_VN_provinces_RedRiverDelta : Ind Province ;
+
+  fun Countries_VN_provinces_SocTrang : Ind Province ;
+
+  fun Countries_VN_provinces_SonLa : Ind Province ;
+
+  fun Countries_VN_provinces_SongBe : Ind Province ;
+
+  fun Countries_VN_provinces_SouthCentralCoast : Ind Province ;
+
+  fun Countries_VN_provinces_TayNinh : Ind Province ;
+
+  fun Countries_VN_provinces_ThaiBinh : Ind Province ;
+
+  fun Countries_VN_provinces_ThanhHoa : Ind Province ;
+
+  fun Countries_VN_provinces_ThuaThienHue : Ind Province ;
+
+  fun Countries_VN_provinces_TienGiang : Ind Province ;
+
+  fun Countries_VN_provinces_TraVinh : Ind Province ;
+
+  fun Countries_VN_provinces_TuyenQuang : Ind Province ;
+
+  fun Countries_VN_provinces_VinhLong : Ind Province ;
+
+  fun Countries_VN_provinces_VinhPhu : Ind Province ;
+
+  fun Countries_VN_provinces_YenBai : Ind Province ;
+
+  fun Countries_VU_cities_Port_Vila : Ind City ;
+
+  fun Countries_V_cities_VaticanCity : Ind City ;
+
+  fun Countries_WAG_cities_Banjul : Ind City ;
+
+  fun Countries_WAL_cities_Freetown : Ind City ;
+
+  fun Countries_WAN_cities_Aarri : Ind City ;
+
+  fun Countries_WAN_cities_Aba : Ind City ;
+
+  fun Countries_WAN_cities_Abeokuta : Ind City ;
+
+  fun Countries_WAN_cities_Abuja : Ind City ;
+
+  fun Countries_WAN_cities_AdoEkiti : Ind City ;
+
+  fun Countries_WAN_cities_Akure : Ind City ;
+
+  fun Countries_WAN_cities_BeninCity : Ind City ;
+
+  fun Countries_WAN_cities_Bida : Ind City ;
+
+  fun Countries_WAN_cities_Calabar : Ind City ;
+
+  fun Countries_WAN_cities_DebaHabe : Ind City ;
+
+  fun Countries_WAN_cities_Ede : Ind City ;
+
+  fun Countries_WAN_cities_EffonAlaiye : Ind City ;
+
+  fun Countries_WAN_cities_Enugu : Ind City ;
+
+  fun Countries_WAN_cities_Gusau : Ind City ;
+
+  fun Countries_WAN_cities_Ibadan : Ind City ;
+
+  fun Countries_WAN_cities_Ife : Ind City ;
+
+  fun Countries_WAN_cities_IjebuOde : Ind City ;
+
+  fun Countries_WAN_cities_Ikare : Ind City ;
+
+  fun Countries_WAN_cities_Ikerre : Ind City ;
+
+  fun Countries_WAN_cities_Ikire : Ind City ;
+
+  fun Countries_WAN_cities_Ikirun : Ind City ;
+
+  fun Countries_WAN_cities_Ikorodu : Ind City ;
+
+  fun Countries_WAN_cities_Ila : Ind City ;
+
+  fun Countries_WAN_cities_IlaweEkiti : Ind City ;
+
+  fun Countries_WAN_cities_Ilesha : Ind City ;
+
+  fun Countries_WAN_cities_Ilobu : Ind City ;
+
+  fun Countries_WAN_cities_Ilorin : Ind City ;
+
+  fun Countries_WAN_cities_Inisa : Ind City ;
+
+  fun Countries_WAN_cities_Iseyin : Ind City ;
+
+  fun Countries_WAN_cities_Iwo : Ind City ;
+
+  fun Countries_WAN_cities_Jos : Ind City ;
+
+  fun Countries_WAN_cities_Kaduna : Ind City ;
+
+  fun Countries_WAN_cities_Kano : Ind City ;
+
+  fun Countries_WAN_cities_Katsina : Ind City ;
+
+  fun Countries_WAN_cities_Kumo : Ind City ;
+
+  fun Countries_WAN_cities_Lafia : Ind City ;
+
+  fun Countries_WAN_cities_Lagos : Ind City ;
+
+  fun Countries_WAN_cities_Maiduguri : Ind City ;
+
+  fun Countries_WAN_cities_Makurdi : Ind City ;
+
+  fun Countries_WAN_cities_Minna : Ind City ;
+
+  fun Countries_WAN_cities_Mushin : Ind City ;
+
+  fun Countries_WAN_cities_Offa : Ind City ;
+
+  fun Countries_WAN_cities_Ogbomosho : Ind City ;
+
+  fun Countries_WAN_cities_Oka : Ind City ;
+
+  fun Countries_WAN_cities_Ondo : Ind City ;
+
+  fun Countries_WAN_cities_Onitsha : Ind City ;
+
+  fun Countries_WAN_cities_Oshogbo : Ind City ;
+
+  fun Countries_WAN_cities_Owo : Ind City ;
+
+  fun Countries_WAN_cities_Oyo : Ind City ;
+
+  fun Countries_WAN_cities_PortHarcourt : Ind City ;
+
+  fun Countries_WAN_cities_Sapele : Ind City ;
+
+  fun Countries_WAN_cities_Shagamu : Ind City ;
+
+  fun Countries_WAN_cities_Shaki : Ind City ;
+
+  fun Countries_WAN_cities_Shomolu : Ind City ;
+
+  fun Countries_WAN_cities_Sokoto : Ind City ;
+
+  fun Countries_WAN_cities_Zaria : Ind City ;
+
+  fun Countries_WD_cities_Roseau : Ind City ;
+
+  fun Countries_WG_cities_SaintGeorges : Ind City ;
+
+  fun Countries_WL_cities_Castries : Ind City ;
+
+  fun Countries_WSA_cities_ElAlaiun : Ind City ;
+
+  fun Countries_WS_cities_Apia : Ind City ;
+
+  fun Countries_WV_cities_Kingstown : Ind City ;
+
+  fun Countries_YE_cities_Sanaa : Ind City ;
+
+  fun Countries_YU_cities_Belgrade : Ind City ;
+
+  fun Countries_YV_cities_SantaAnadeCoro : Ind City ;
+
+  fun Countries_YV_cities_Turmero : Ind City ;
+
+  fun Countries_YV_provinces_Amazonas : Ind Province ;
+
+  fun Countries_YV_provinces_Amazonas_cities_PuertoAyacucho : Ind City ;
+
+  fun Countries_YV_provinces_Anzoategui : Ind Province ;
+
+  fun Countries_YV_provinces_Anzoategui_cities_Barcelona : Ind City ;
+
+  fun Countries_YV_provinces_Anzoategui_cities_PuertoLaCruz : Ind City ;
+
+  fun Countries_YV_provinces_Apure : Ind Province ;
+
+  fun Countries_YV_provinces_Apure_cities_SanFernando : Ind City ;
+
+  fun Countries_YV_provinces_Aragua : Ind Province ;
+
+  fun Countries_YV_provinces_Aragua_cities_Maracay : Ind City ;
+
+  fun Countries_YV_provinces_Barinas : Ind Province ;
+
+  fun Countries_YV_provinces_Barinas_cities_Barinas : Ind City ;
+
+  fun Countries_YV_provinces_Bolivar : Ind Province ;
+
+  fun Countries_YV_provinces_Bolivar_cities_CiudadBolivar : Ind City ;
+
+  fun Countries_YV_provinces_Bolivar_cities_CiudadGuayana : Ind City ;
+
+  fun Countries_YV_provinces_Carabobo : Ind Province ;
+
+  fun Countries_YV_provinces_Carabobo_cities_Guacara : Ind City ;
+
+  fun Countries_YV_provinces_Carabobo_cities_PuertoCabello : Ind City ;
+
+  fun Countries_YV_provinces_Carabobo_cities_Valencia : Ind City ;
+
+  fun Countries_YV_provinces_Cojedes : Ind Province ;
+
+  fun Countries_YV_provinces_Cojedes_cities_SanCarlos : Ind City ;
+
+  fun Countries_YV_provinces_DeltaAmacuro : Ind Province ;
+
+  fun Countries_YV_provinces_DeltaAmacuro_cities_Tucupita : Ind City ;
+
+  fun Countries_YV_provinces_DistritoFederal : Ind Province ;
+
+  fun Countries_YV_provinces_DistritoFederal_cities_Caracas : Ind City ;
+
+  fun Countries_YV_provinces_DistritoFederal_cities_CatiaLaMar : Ind City ;
+
+  fun Countries_YV_provinces_Falcon : Ind Province ;
+
+  fun Countries_YV_provinces_Falcon_cities_Coro : Ind City ;
+
+  fun Countries_YV_provinces_Guarico : Ind Province ;
+
+  fun Countries_YV_provinces_Guarico_cities_SanJuan : Ind City ;
+
+  fun Countries_YV_provinces_Lara : Ind Province ;
+
+  fun Countries_YV_provinces_Lara_cities_Barquisimeto : Ind City ;
+
+  fun Countries_YV_provinces_Merida : Ind Province ;
+
+  fun Countries_YV_provinces_Merida_cities_Merida : Ind City ;
+
+  fun Countries_YV_provinces_Miranda : Ind Province ;
+
+  fun Countries_YV_provinces_Miranda_cities_Baruta : Ind City ;
+
+  fun Countries_YV_provinces_Miranda_cities_Guarenas : Ind City ;
+
+  fun Countries_YV_provinces_Miranda_cities_LosTeques : Ind City ;
+
+  fun Countries_YV_provinces_Miranda_cities_Petare : Ind City ;
+
+  fun Countries_YV_provinces_Monagas : Ind Province ;
+
+  fun Countries_YV_provinces_Monagas_cities_Maturin : Ind City ;
+
+  fun Countries_YV_provinces_NuevaEsparta : Ind Province ;
+
+  fun Countries_YV_provinces_NuevaEsparta_cities_LaAscuncion : Ind City ;
+
+  fun Countries_YV_provinces_Portuguesa : Ind Province ;
+
+  fun Countries_YV_provinces_Portuguesa_cities_Acarigua : Ind City ;
+
+  fun Countries_YV_provinces_Portuguesa_cities_Guanare : Ind City ;
+
+  fun Countries_YV_provinces_Sucre : Ind Province ;
+
+  fun Countries_YV_provinces_Sucre_cities_Cumana : Ind City ;
+
+  fun Countries_YV_provinces_Tachira : Ind Province ;
+
+  fun Countries_YV_provinces_Tachira_cities_SanCristobal : Ind City ;
+
+  fun Countries_YV_provinces_Trujillo : Ind Province ;
+
+  fun Countries_YV_provinces_Trujillo_cities_Trujillo : Ind City ;
+
+  fun Countries_YV_provinces_Yaracuy : Ind Province ;
+
+  fun Countries_YV_provinces_Yaracuy_cities_SanFelipe : Ind City ;
+
+  fun Countries_YV_provinces_Zulia : Ind Province ;
+
+  fun Countries_YV_provinces_Zulia_cities_Cabimas : Ind City ;
+
+  fun Countries_YV_provinces_Zulia_cities_Maracaibo : Ind City ;
+
+  fun Countries_ZRE_provinces_Bandundu : Ind Province ;
+
+  fun Countries_ZRE_provinces_Bandundu_cities_Bandundu : Ind City ;
+
+  fun Countries_ZRE_provinces_Bandundu_cities_Kikwit : Ind City ;
+
+  fun Countries_ZRE_provinces_BasZaire : Ind Province ;
+
+  fun Countries_ZRE_provinces_BasZaire_cities_Boma : Ind City ;
+
+  fun Countries_ZRE_provinces_BasZaire_cities_Matadi : Ind City ;
+
+  fun Countries_ZRE_provinces_Equateur : Ind Province ;
+
+  fun Countries_ZRE_provinces_Equateur_cities_Mbandaka : Ind City ;
+
+  fun Countries_ZRE_provinces_HautZaire : Ind Province ;
+
+  fun Countries_ZRE_provinces_HautZaire_cities_Kisangani : Ind City ;
+
+  fun Countries_ZRE_provinces_KasaiOccidental : Ind Province ;
+
+  fun Countries_ZRE_provinces_KasaiOccidental_cities_Kananga : Ind City ;
+
+  fun Countries_ZRE_provinces_KasaiOccidental_cities_Tshikapa : Ind City ;
+
+  fun Countries_ZRE_provinces_KasaiOriental : Ind Province ;
+
+  fun Countries_ZRE_provinces_KasaiOriental_cities_Kalemi : Ind City ;
+
+  fun Countries_ZRE_provinces_KasaiOriental_cities_MbujiMayi : Ind City ;
+
+  fun Countries_ZRE_provinces_KasaiOriental_cities_MweneDitu : Ind City ;
+
+  fun Countries_ZRE_provinces_Kinshasa : Ind Province ;
+
+  fun Countries_ZRE_provinces_Kinshasa_cities_Kinshasa : Ind City ;
+
+  fun Countries_ZRE_provinces_Kivu : Ind Province ;
+
+  fun Countries_ZRE_provinces_Kivu_cities_Bukavu : Ind City ;
+
+  fun Countries_ZRE_provinces_Kivu_cities_Butembo : Ind City ;
+
+  fun Countries_ZRE_provinces_Kivu_cities_Goma : Ind City ;
+
+  fun Countries_ZRE_provinces_Kivu_cities_Uvira : Ind City ;
+
+  fun Countries_ZRE_provinces_Shaba : Ind Province ;
+
+  fun Countries_ZRE_provinces_Shaba_cities_Kolwezi : Ind City ;
+
+  fun Countries_ZRE_provinces_Shaba_cities_Likasi : Ind City ;
+
+  fun Countries_ZRE_provinces_Shaba_cities_Lubumbashi : Ind City ;
+
+  fun Countries_ZW_cities_Harare : Ind City ;
+
+  fun Countries_Z_provinces_Central : Ind Province ;
+
+  fun Countries_Z_provinces_Central_cities_Kabwe : Ind City ;
+
+  fun Countries_Z_provinces_Copperbelt : Ind Province ;
+
+  fun Countries_Z_provinces_Copperbelt_cities_Chingola : Ind City ;
+
+  fun Countries_Z_provinces_Copperbelt_cities_Kitwe : Ind City ;
+
+  fun Countries_Z_provinces_Copperbelt_cities_Luanshya : Ind City ;
+
+  fun Countries_Z_provinces_Copperbelt_cities_Mufulira : Ind City ;
+
+  fun Countries_Z_provinces_Copperbelt_cities_Ndola : Ind City ;
+
+  fun Countries_Z_provinces_Eastern : Ind Province ;
+
+  fun Countries_Z_provinces_Eastern_cities_Chipata : Ind City ;
+
+  fun Countries_Z_provinces_Luapula : Ind Province ;
+
+  fun Countries_Z_provinces_Luapula_cities_Mansa : Ind City ;
+
+  fun Countries_Z_provinces_Lusaka : Ind Province ;
+
+  fun Countries_Z_provinces_Lusaka_cities_Lusaka : Ind City ;
+
+  fun Countries_Z_provinces_Northern : Ind Province ;
+
+  fun Countries_Z_provinces_Northern_cities_Kasama : Ind City ;
+
+  fun Countries_Z_provinces_Northwestern : Ind Province ;
+
+  fun Countries_Z_provinces_Northwestern_cities_Solwezi : Ind City ;
+
+  fun Countries_Z_provinces_Southern : Ind Province ;
+
+  fun Countries_Z_provinces_Southern_cities_Livingstone : Ind City ;
+
+  fun Countries_Z_provinces_Western : Ind Province ;
+
+  fun Countries_Z_provinces_Western_cities_Mongu : Ind City ;
+
+  fun Countries_cid_cia_American_Samoa : Ind Country ;
+
+  fun Countries_cid_cia_American_Samoa_cities_PagoPago : Ind City ;
+
+  fun Countries_cid_cia_Anguilla : Ind Country ;
+
+  fun Countries_cid_cia_Anguilla_cities_TheValley : Ind City ;
+
+  fun Countries_cid_cia_Aruba : Ind Country ;
+
+  fun Countries_cid_cia_Aruba_cities_Oranjestad : Ind City ;
+
+  fun Countries_cid_cia_Ashmore_and_Cartier_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Baker_Island : Ind Country ;
+
+  fun Countries_cid_cia_Bassas_da_India : Ind Country ;
+
+  fun Countries_cid_cia_Bermuda : Ind Country ;
+
+  fun Countries_cid_cia_Bermuda_cities_Hamilton : Ind City ;
+
+  fun Countries_cid_cia_Bouvet_Island : Ind Country ;
+
+  fun Countries_cid_cia_British_Indian_Ocean_Territory : Ind Country ;
+
+  fun Countries_cid_cia_British_Virgin_Islands : Ind Country ;
+
+  fun Countries_cid_cia_British_Virgin_Islands_cities_RoadTown : Ind City ;
+
+  fun Countries_cid_cia_Cayman_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Cayman_Islands_cities_GeorgeTown : Ind City ;
+
+  fun Countries_cid_cia_Christmas_Island : Ind Country ;
+
+  fun Countries_cid_cia_Christmas_Island_cities_TheSettlement : Ind City ;
+
+  fun Countries_cid_cia_Clipperton_Island : Ind Country ;
+
+  fun Countries_cid_cia_Cocos_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Cocos_Islands_cities_WestIsland : Ind City ;
+
+  fun Countries_cid_cia_Cook_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Cook_Islands_cities_Avarua : Ind City ;
+
+  fun Countries_cid_cia_Coral_Sea_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Europa_Island : Ind Country ;
+
+  fun Countries_cid_cia_Falkland_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Falkland_Islands_cities_Stanley : Ind City ;
+
+  fun Countries_cid_cia_Faroe_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Faroe_Islands_cities_Torshavn : Ind City ;
+
+  fun Countries_cid_cia_French_Polynesia : Ind Country ;
+
+  fun Countries_cid_cia_French_Polynesia_cities_Papeete : Ind City ;
+
+  fun Countries_cid_cia_French_Southern_and_Antarctic_Lands : Ind Country ;
+
+  fun Countries_cid_cia_Gaza_Strip : Ind Country ;
+
+  fun Countries_cid_cia_Gibraltar : Ind Country ;
+
+  fun Countries_cid_cia_Gibraltar_cities_Gibraltar : Ind City ;
+
+  fun Countries_cid_cia_Glorioso_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Greenland : Ind Country ;
+
+  fun Countries_cid_cia_Greenland_cities_Nuuk : Ind City ;
+
+  fun Countries_cid_cia_Guadeloupe : Ind Country ;
+
+  fun Countries_cid_cia_Guadeloupe_cities_Basse_Terre : Ind City ;
+
+  fun Countries_cid_cia_Guam : Ind Country ;
+
+  fun Countries_cid_cia_Guam_cities_Agana : Ind City ;
+
+  fun Countries_cid_cia_Guernsey : Ind Country ;
+
+  fun Countries_cid_cia_Guernsey_cities_SaintPeterPort : Ind City ;
+
+  fun Countries_cid_cia_Heard_Island_and_McDonald_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Hong_Kong : Ind Country ;
+
+  fun Countries_cid_cia_Howland_Island : Ind Country ;
+
+  fun Countries_cid_cia_Jan_Mayen : Ind Country ;
+
+  fun Countries_cid_cia_Jarvis_Island : Ind Country ;
+
+  fun Countries_cid_cia_Jersey : Ind Country ;
+
+  fun Countries_cid_cia_Jersey_cities_SaintHelier : Ind City ;
+
+  fun Countries_cid_cia_Johnston_Atoll : Ind Country ;
+
+  fun Countries_cid_cia_Juan_de_Nova_Island : Ind Country ;
+
+  fun Countries_cid_cia_Kingman_Reef : Ind Country ;
+
+  fun Countries_cid_cia_Macau : Ind Country ;
+
+  fun Countries_cid_cia_Macau_cities_Macau : Ind City ;
+
+  fun Countries_cid_cia_Man : Ind Country ;
+
+  fun Countries_cid_cia_Man_cities_Douglas : Ind City ;
+
+  fun Countries_cid_cia_Martinique : Ind Country ;
+
+  fun Countries_cid_cia_Martinique_cities_Fort_de_France : Ind City ;
+
+  fun Countries_cid_cia_Mayotte : Ind Country ;
+
+  fun Countries_cid_cia_Mayotte_cities_Mamoutzou : Ind City ;
+
+  fun Countries_cid_cia_Midway_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Montserrat : Ind Country ;
+
+  fun Countries_cid_cia_Montserrat_cities_Plymouth : Ind City ;
+
+  fun Countries_cid_cia_Navassa_Island : Ind Country ;
+
+  fun Countries_cid_cia_Netherlands_Antilles : Ind Country ;
+
+  fun Countries_cid_cia_Netherlands_Antilles_cities_Willemstad : Ind City ;
+
+  fun Countries_cid_cia_Niue : Ind Country ;
+
+  fun Countries_cid_cia_Niue_cities_Alofi : Ind City ;
+
+  fun Countries_cid_cia_Norfolk_Island : Ind Country ;
+
+  fun Countries_cid_cia_Norfolk_Island_cities_Kingston : Ind City ;
+
+  fun Countries_cid_cia_Northern_Mariana_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Northern_Mariana_Islands_cities_Saipan : Ind City ;
+
+  fun Countries_cid_cia_Palmyra_Atoll : Ind Country ;
+
+  fun Countries_cid_cia_Paracel_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Pitcairn_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Pitcairn_Islands_cities_Adamstown : Ind City ;
+
+  fun Countries_cid_cia_Puerto_Rico : Ind Country ;
+
+  fun Countries_cid_cia_Puerto_Rico_cities_SanJuan : Ind City ;
+
+  fun Countries_cid_cia_Reunion : Ind Country ;
+
+  fun Countries_cid_cia_Reunion_cities_Saint_Denis : Ind City ;
+
+  fun Countries_cid_cia_Saint_Helena : Ind Country ;
+
+  fun Countries_cid_cia_Saint_Helena_cities_Jamestown : Ind City ;
+
+  fun Countries_cid_cia_Saint_Pierre_and_Miquelon : Ind Country ;
+
+  fun Countries_cid_cia_Saint_Pierre_and_Miquelon_cities_Saint_Pierre : Ind City ;
+
+  fun Countries_cid_cia_South_Georgia_and_the_South_Sandwich_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Spratly_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Svalbard : Ind Country ;
+
+  fun Countries_cid_cia_Svalbard_cities_Longyearbyen : Ind City ;
+
+  fun Countries_cid_cia_Tokelau : Ind Country ;
+
+  fun Countries_cid_cia_Tromelin_Island : Ind Country ;
+
+  fun Countries_cid_cia_Turks_and_Caicos_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Turks_and_Caicos_Islands_cities_GrandTurk : Ind City ;
+
+  fun Countries_cid_cia_Virgin_Islands : Ind Country ;
+
+  fun Countries_cid_cia_Virgin_Islands_cities_CharlotteAmalie : Ind City ;
+
+  fun Countries_cid_cia_Wake_Island : Ind Country ;
+
+  fun Countries_cid_cia_Wallis_and_Futuna : Ind Country ;
+
+  fun Countries_cid_cia_Wallis_and_Futuna_cities_Mata_Utu : Ind City ;
+
+  fun Countries_cid_cia_West_Bank : Ind Country ;
+
+  fun Deserts_ArabianDesert : Ind Desert ;
+
+  fun Deserts_Asauad : Ind Desert ;
+
+  fun Deserts_Atacama : Ind Desert ;
+
+  fun Deserts_Dschurab : Ind Desert ;
+
+  fun Deserts_ErgIgidi : Ind Desert ;
+
+  fun Deserts_ErgRebiana : Ind Desert ;
+
+  fun Deserts_ErgSchesch : Ind Desert ;
+
+  fun Deserts_ErgdeBilma : Ind Desert ;
+
+  fun Deserts_Fesan : Ind Desert ;
+
+  fun Deserts_GibsonDesert : Ind Desert ;
+
+  fun Deserts_GrandErgEst : Ind Desert ;
+
+  fun Deserts_GrandErgOuest : Ind Desert ;
+
+  fun Deserts_GrandSandDesert : Ind Desert ;
+
+  fun Deserts_GrandVictoriaDesert : Ind Desert ;
+
+  fun Deserts_HamadaduDraa : Ind Desert ;
+
+  fun Deserts_Hamadael_Hamra : Ind Desert ;
+
+  fun Deserts_Kalahari : Ind Desert ;
+
+  fun Deserts_Karakum : Ind Desert ;
+
+  fun Deserts_Kysylkum : Ind Desert ;
+
+  fun Deserts_LibyanDesert : Ind Desert ;
+
+  fun Deserts_Makteir : Ind Desert ;
+
+  fun Deserts_Mujunkum : Ind Desert ;
+
+  fun Deserts_NubianDesert : Ind Desert ;
+
+  fun Deserts_Sagiael_Hamra : Ind Desert ;
+
+  fun Deserts_SimpsonDesert : Ind Desert ;
+
+  fun Deserts_Tanami : Ind Desert ;
+
+  fun Deserts_Tanesruft : Ind Desert ;
+
+  fun Deserts_Tenere : Ind Desert ;
+
+  fun Deserts_Trarza : Ind Desert ;
+
+  fun Deserts_Uaran : Ind Desert ;
+
+  fun Islands_Aland : Ind Island ;
+
+  fun Islands_Alderney : Ind Island ;
+
+  fun Islands_Alicudi : Ind Island ;
+
+  fun Islands_Anglesey : Ind Island ;
+
+  fun Islands_Anguilla : Ind Island ;
+
+  fun Islands_Anjouan : Ind Island ;
+
+  fun Islands_Antigua : Ind Island ;
+
+  fun Islands_Arran : Ind Island ;
+
+  fun Islands_Ascension : Ind Island ;
+
+  fun Islands_Aust_Vagoey : Ind Island ;
+
+  fun Islands_BaffinIsland : Ind Island ;
+
+  fun Islands_Bahamas : Ind Island ;
+
+  fun Islands_Bali : Ind Island ;
+
+  fun Islands_BanksIsland : Ind Island ;
+
+  fun Islands_Barbados : Ind Island ;
+
+  fun Islands_Barbuda : Ind Island ;
+
+  fun Islands_Barra : Ind Island ;
+
+  fun Islands_Benbecula : Ind Island ;
+
+  fun Islands_Bermuda : Ind Island ;
+
+  fun Islands_BishopRock : Ind Island ;
+
+  fun Islands_Bohol : Ind Island ;
+
+  fun Islands_Bornholm : Ind Island ;
+
+  fun Islands_CangarooIsland : Ind Island ;
+
+  fun Islands_Cayman : Ind Island ;
+
+  fun Islands_CaymanBrac : Ind Island ;
+
+  fun Islands_Chios : Ind Island ;
+
+  fun Islands_Coll : Ind Island ;
+
+  fun Islands_Colonsay : Ind Island ;
+
+  fun Islands_Cuba : Ind Island ;
+
+  fun Islands_Dagoe : Ind Island ;
+
+  fun Islands_Dominica : Ind Island ;
+
+  fun Islands_EastCaicos : Ind Island ;
+
+  fun Islands_Falster : Ind Island ;
+
+  fun Islands_FernandoPoo : Ind Island ;
+
+  fun Islands_Fidschi : Ind Island ;
+
+  fun Islands_Flores : Ind Island ;
+
+  fun Islands_Formentera : Ind Island ;
+
+  fun Islands_Fuenen : Ind Island ;
+
+  fun Islands_Fuerteventura : Ind Island ;
+
+  fun Islands_Gheschm : Ind Island ;
+
+  fun Islands_Gomera : Ind Island ;
+
+  fun Islands_Gotland : Ind Island ;
+
+  fun Islands_GrKomoro : Ind Island ;
+
+  fun Islands_GranCanaria : Ind Island ;
+
+  fun Islands_GrandCaicos : Ind Island ;
+
+  fun Islands_Grenada : Ind Island ;
+
+  fun Islands_Guadeloupe : Ind Island ;
+
+  fun Islands_Guernsey : Ind Island ;
+
+  fun Islands_Harris : Ind Island ;
+
+  fun Islands_Hawaii : Ind Island ;
+
+  fun Islands_Hierro : Ind Island ;
+
+  fun Islands_Hispaniola : Ind Island ;
+
+  fun Islands_Hokkaido : Ind Island ;
+
+  fun Islands_Honshu : Ind Island ;
+
+  fun Islands_Hoy : Ind Island ;
+
+  fun Islands_Ibiza : Ind Island ;
+
+  fun Islands_Iceland : Ind Island ;
+
+  fun Islands_Ikaria : Ind Island ;
+
+  fun Islands_Iona : Ind Island ;
+
+  fun Islands_Isabela : Ind Island ;
+
+  fun Islands_Islay : Ind Island ;
+
+  fun Islands_IsleofMan : Ind Island ;
+
+  fun Islands_Jamaica : Ind Island ;
+
+  fun Islands_JanMayen : Ind Island ;
+
+  fun Islands_Jersey : Ind Island ;
+
+  fun Islands_Jura : Ind Island ;
+
+  fun Islands_Kauai : Ind Island ;
+
+  fun Islands_Kefallinia : Ind Island ;
+
+  fun Islands_Khark : Ind Island ;
+
+  fun Islands_Kiribati : Ind Island ;
+
+  fun Islands_Korfu : Ind Island ;
+
+  fun Islands_Kos : Ind Island ;
+
+  fun Islands_Kotelnyisland : Ind Island ;
+
+  fun Islands_Kreta : Ind Island ;
+
+  fun Islands_Kyushu : Ind Island ;
+
+  fun Islands_LaPalma : Ind Island ;
+
+  fun Islands_Lampedusa : Ind Island ;
+
+  fun Islands_Lanai : Ind Island ;
+
+  fun Islands_Langeland : Ind Island ;
+
+  fun Islands_Lanzarote : Ind Island ;
+
+  fun Islands_Lavan : Ind Island ;
+
+  fun Islands_Lefkas : Ind Island ;
+
+  fun Islands_Lewis : Ind Island ;
+
+  fun Islands_Leyte : Ind Island ;
+
+  fun Islands_Linosa : Ind Island ;
+
+  fun Islands_Lipari : Ind Island ;
+
+  fun Islands_LittleCayman : Ind Island ;
+
+  fun Islands_Lolland : Ind Island ;
+
+  fun Islands_Lundy : Ind Island ;
+
+  fun Islands_Luzon : Ind Island ;
+
+  fun Islands_Madagaskar : Ind Island ;
+
+  fun Islands_Madeira : Ind Island ;
+
+  fun Islands_Mainland : Ind Island ;
+
+  fun Islands_Mallorca : Ind Island ;
+
+  fun Islands_Malta : Ind Island ;
+
+  fun Islands_MarthasVineyard : Ind Island ;
+
+  fun Islands_Martinique : Ind Island ;
+
+  fun Islands_Maui : Ind Island ;
+
+  fun Islands_Mauritius : Ind Island ;
+
+  fun Islands_Mayotta : Ind Island ;
+
+  fun Islands_MelvilleIsland : Ind Island ;
+
+  fun Islands_Menorca : Ind Island ;
+
+  fun Islands_Mindanao : Ind Island ;
+
+  fun Islands_Mindoro : Ind Island ;
+
+  fun Islands_Mohilla : Ind Island ;
+
+  fun Islands_Molokai : Ind Island ;
+
+  fun Islands_Montserrat : Ind Island ;
+
+  fun Islands_Mull : Ind Island ;
+
+  fun Islands_Nantucket : Ind Island ;
+
+  fun Islands_Nauru : Ind Island ;
+
+  fun Islands_Negros : Ind Island ;
+
+  fun Islands_Nevis : Ind Island ;
+
+  fun Islands_NewCaledonia : Ind Island ;
+
+  fun Islands_NorthCaicos : Ind Island ;
+
+  fun Islands_NorthUlist : Ind Island ;
+
+  fun Islands_Oahu : Ind Island ;
+
+  fun Islands_Oeland : Ind Island ;
+
+  fun Islands_Oesel : Ind Island ;
+
+  fun Islands_Palau : Ind Island ;
+
+  fun Islands_Palawan : Ind Island ;
+
+  fun Islands_Panarea : Ind Island ;
+
+  fun Islands_Panay : Ind Island ;
+
+  fun Islands_Paramuschir : Ind Island ;
+
+  fun Islands_Patmos : Ind Island ;
+
+  fun Islands_PortoSanto : Ind Island ;
+
+  fun Islands_PrinceCharlesIsland : Ind Island ;
+
+  fun Islands_PrinceEdwardIsland : Ind Island ;
+
+  fun Islands_PrinceofWalesIsland : Ind Island ;
+
+  fun Islands_Providenciales : Ind Island ;
+
+  fun Islands_Rhodos : Ind Island ;
+
+  fun Islands_Rhum : Ind Island ;
+
+  fun Islands_Sachalin : Ind Island ;
+
+  fun Islands_SaintKitts : Ind Island ;
+
+  fun Islands_SaintLucia : Ind Island ;
+
+  fun Islands_SaintVincent : Ind Island ;
+
+  fun Islands_Salina : Ind Island ;
+
+  fun Islands_Samar : Ind Island ;
+
+  fun Islands_Samos : Ind Island ;
+
+  fun Islands_SanClementeIsland : Ind Island ;
+
+  fun Islands_SanMiguelIsland : Ind Island ;
+
+  fun Islands_Sanday : Ind Island ;
+
+  fun Islands_SantaCatalinaIsland : Ind Island ;
+
+  fun Islands_SantaCruzIsland : Ind Island ;
+
+  fun Islands_SantaMaria : Ind Island ;
+
+  fun Islands_SantaRosaIsland : Ind Island ;
+
+  fun Islands_SaoMiguel : Ind Island ;
+
+  fun Islands_SaoTomeandPrincipe : Ind Island ;
+
+  fun Islands_Seeland : Ind Island ;
+
+  fun Islands_Shikoku : Ind Island ;
+
+  fun Islands_Skye : Ind Island ;
+
+  fun Islands_SouthRonaldson : Ind Island ;
+
+  fun Islands_SouthUlist : Ind Island ;
+
+  fun Islands_SouthamptonIsland : Ind Island ;
+
+  fun Islands_SriLanka : Ind Island ;
+
+  fun Islands_St_Helena : Ind Island ;
+
+  fun Islands_Staffa : Ind Island ;
+
+  fun Islands_Stromboli : Ind Island ;
+
+  fun Islands_Sumatra : Ind Island ;
+
+  fun Islands_Taiwan : Ind Island ;
+
+  fun Islands_Tasmania : Ind Island ;
+
+  fun Islands_Teneriffa : Ind Island ;
+
+  fun Islands_Tilos : Ind Island ;
+
+  fun Islands_Tiree : Ind Island ;
+
+  fun Islands_Tobago : Ind Island ;
+
+  fun Islands_Tonga : Ind Island ;
+
+  fun Islands_Trinidad : Ind Island ;
+
+  fun Islands_Tuvalu : Ind Island ;
+
+  fun Islands_VancouverIsland : Ind Island ;
+
+  fun Islands_Vanuatu : Ind Island ;
+
+  fun Islands_VictoriaIsland : Ind Island ;
+
+  fun Islands_Vulcano : Ind Island ;
+
+  fun Islands_Westray : Ind Island ;
+
+  fun Islands_Westsamoa : Ind Island ;
+
+  fun Islands_Zakinthos : Ind Island ;
+
+  fun Lakes_Arresee : Ind Lake ;
+
+  fun Lakes_BarragedeMbakaou : Ind Lake ;
+
+  fun Lakes_Bodensee : Ind Lake ;
+
+  fun Lakes_CaspianSea : Ind Lake ;
+
+  fun Lakes_ChicamaugaLake : Ind Lake ;
+
+  fun Lakes_DaryachehyeNamak : Ind Lake ;
+
+  fun Lakes_Disappointment_Lake : Ind Lake ;
+
+  fun Lakes_F_D_R_Lake : Ind Lake ;
+
+  fun Lakes_GreatBearLake : Ind Lake ;
+
+  fun Lakes_GreatSaltLake : Ind Lake ;
+
+  fun Lakes_GreatSlaveLake : Ind Lake ;
+
+  fun Lakes_HamuneJazMurian : Ind Lake ;
+
+  fun Lakes_Inari : Ind Lake ;
+
+  fun Lakes_Issyk_Kul : Ind Lake ;
+
+  fun Lakes_KentuckyLake : Ind Lake ;
+
+  fun Lakes_LacLeman : Ind Lake ;
+
+  fun Lakes_LagoMaggiore : Ind Lake ;
+
+  fun Lakes_LagodeChapala : Ind Lake ;
+
+  fun Lakes_LagodiComo : Ind Lake ;
+
+  fun Lakes_LagodiGarda : Ind Lake ;
+
+  fun Lakes_LakeAbaya : Ind Lake ;
+
+  fun Lakes_LakeAlbert : Ind Lake ;
+
+  fun Lakes_LakeAmadeus : Ind Lake ;
+
+  fun Lakes_LakeAssale : Ind Lake ;
+
+  fun Lakes_LakeBangweulu : Ind Lake ;
+
+  fun Lakes_LakeCabora_Bassa : Ind Lake ;
+
+  fun Lakes_LakeChilwa : Ind Lake ;
+
+  fun Lakes_LakeEduard : Ind Lake ;
+
+  fun Lakes_LakeErie : Ind Lake ;
+
+  fun Lakes_LakeEtoscha : Ind Lake ;
+
+  fun Lakes_LakeEyasi : Ind Lake ;
+
+  fun Lakes_LakeEyre : Ind Lake ;
+
+  fun Lakes_LakeHuron : Ind Lake ;
+
+  fun Lakes_LakeKainji : Ind Lake ;
+
+  fun Lakes_LakeKalla : Ind Lake ;
+
+  fun Lakes_LakeKariba : Ind Lake ;
+
+  fun Lakes_LakeKioga : Ind Lake ;
+
+  fun Lakes_LakeKivu : Ind Lake ;
+
+  fun Lakes_LakeLeopold_II : Ind Lake ;
+
+  fun Lakes_LakeMackay : Ind Lake ;
+
+  fun Lakes_LakeMakarikari : Ind Lake ;
+
+  fun Lakes_LakeMaracaibo : Ind Lake ;
+
+  fun Lakes_LakeMeade : Ind Lake ;
+
+  fun Lakes_LakeMichigan : Ind Lake ;
+
+  fun Lakes_LakeMweru : Ind Lake ;
+
+  fun Lakes_LakeNaesi : Ind Lake ;
+
+  fun Lakes_LakeNasser : Ind Lake ;
+
+  fun Lakes_LakeNatron : Ind Lake ;
+
+  fun Lakes_LakeNgami : Ind Lake ;
+
+  fun Lakes_LakeNicaragua : Ind Lake ;
+
+  fun Lakes_LakeNipigon : Ind Lake ;
+
+  fun Lakes_LakeNyasa : Ind Lake ;
+
+  fun Lakes_LakeOhrid : Ind Lake ;
+
+  fun Lakes_LakeOkeechobee : Ind Lake ;
+
+  fun Lakes_LakeOntario : Ind Lake ;
+
+  fun Lakes_LakeOri : Ind Lake ;
+
+  fun Lakes_LakePowell : Ind Lake ;
+
+  fun Lakes_LakePrespa : Ind Lake ;
+
+  fun Lakes_LakeRudolph : Ind Lake ;
+
+  fun Lakes_LakeRukwa : Ind Lake ;
+
+  fun Lakes_LakeSaima : Ind Lake ;
+
+  fun Lakes_LakeSkutari : Ind Lake ;
+
+  fun Lakes_LakeStephanie : Ind Lake ;
+
+  fun Lakes_LakeSuat : Ind Lake ;
+
+  fun Lakes_LakeSuperior : Ind Lake ;
+
+  fun Lakes_LakeTahoe : Ind Lake ;
+
+  fun Lakes_LakeTana : Ind Lake ;
+
+  fun Lakes_LakeTanganjika : Ind Lake ;
+
+  fun Lakes_LakeTiticaca : Ind Lake ;
+
+  fun Lakes_LakeTorren : Ind Lake ;
+
+  fun Lakes_LakeTumba : Ind Lake ;
+
+  fun Lakes_LakeUrumiyeh : Ind Lake ;
+
+  fun Lakes_LakeVictoria : Ind Lake ;
+
+  fun Lakes_LakeVolta : Ind Lake ;
+
+  fun Lakes_LakeWilliston : Ind Lake ;
+
+  fun Lakes_LakeWinnipeg : Ind Lake ;
+
+  fun Lakes_LakeWinnipesaukee : Ind Lake ;
+
+  fun Lakes_Maelaren : Ind Lake ;
+
+  fun Lakes_Mjoesen : Ind Lake ;
+
+  fun Lakes_OzeroAral : Ind Lake ;
+
+  fun Lakes_OzeroBaikal : Ind Lake ;
+
+  fun Lakes_OzeroBalchash : Ind Lake ;
+
+  fun Lakes_OzeroChanka : Ind Lake ;
+
+  fun Lakes_OzeroLadoga : Ind Lake ;
+
+  fun Lakes_OzeroOnega : Ind Lake ;
+
+  fun Lakes_OzeroPskovskoje : Ind Lake ;
+
+  fun Lakes_OzeroTaimyr : Ind Lake ;
+
+  fun Lakes_OzeroTschany : Ind Lake ;
+
+  fun Lakes_Paeijaenne : Ind Lake ;
+
+  fun Lakes_Tschadsee : Ind Lake ;
+
+  fun Lakes_Vaenern : Ind Lake ;
+
+  fun Lakes_Vaettern : Ind Lake ;
+
+  fun Mountains_Aconcagua : Ind Mountain ;
+
+  fun Mountains_Bjelucha : Ind Mountain ;
+
+  fun Mountains_BlueMountainPeak : Ind Mountain ;
+
+  fun Mountains_BorahPeak : Ind Mountain ;
+
+  fun Mountains_BoundaryPeak : Ind Mountain ;
+
+  fun Mountains_CathkinPeak : Ind Mountain ;
+
+  fun Mountains_Chimborazo : Ind Mountain ;
+
+  fun Mountains_Citlaltepetl : Ind Mountain ;
+
+  fun Mountains_ClingmansDome : Ind Mountain ;
+
+  fun Mountains_Damavand : Ind Mountain ;
+
+  fun Mountains_DjebelAures : Ind Mountain ;
+
+  fun Mountains_Elbrus : Ind Mountain ;
+
+  fun Mountains_EmiKussi : Ind Mountain ;
+
+  fun Mountains_Fako : Ind Mountain ;
+
+  fun Mountains_Feldberg : Ind Mountain ;
+
+  fun Mountains_Fuji_Yama : Ind Mountain ;
+
+  fun Mountains_Galdhoeppig : Ind Mountain ;
+
+  fun Mountains_GannettPeak : Ind Mountain ;
+
+  fun Mountains_Glittertind : Ind Mountain ;
+
+  fun Mountains_GranitePeak : Ind Mountain ;
+
+  fun Mountains_GrosserArber : Ind Mountain ;
+
+  fun Mountains_Grossglockner : Ind Mountain ;
+
+  fun Mountains_GuadalupePeak : Ind Mountain ;
+
+  fun Mountains_Haltiatunturi : Ind Mountain ;
+
+  fun Mountains_HarneyPeak : Ind Mountain ;
+
+  fun Mountains_Hotaka_Dake : Ind Mountain ;
+
+  fun Mountains_Huascaran : Ind Mountain ;
+
+  fun Mountains_HumphreysPeak : Ind Mountain ;
+
+  fun Mountains_Illampu : Ind Mountain ;
+
+  fun Mountains_JabalMarra : Ind Mountain ;
+
+  fun Mountains_Jezerce : Ind Mountain ;
+
+  fun Mountains_Joekul : Ind Mountain ;
+
+  fun Mountains_Jostedalsbre : Ind Mountain ;
+
+  fun Mountains_Kasbek : Ind Mountain ;
+
+  fun Mountains_Kebnekaise : Ind Mountain ;
+
+  fun Mountains_Kenia : Ind Mountain ;
+
+  fun Mountains_Kilimanjaro : Ind Mountain ;
+
+  fun Mountains_Kinabalu : Ind Mountain ;
+
+  fun Mountains_KingsPeak : Ind Mountain ;
+
+  fun Mountains_Korab : Ind Mountain ;
+
+  fun Mountains_Leuser : Ind Mountain ;
+
+  fun Mountains_Llullaillaco : Ind Mountain ;
+
+  fun Mountains_MaunaKea : Ind Mountain ;
+
+  fun Mountains_Meru : Ind Mountain ;
+
+  fun Mountains_Montblanc : Ind Mountain ;
+
+  fun Mountains_MountEverest : Ind Mountain ;
+
+  fun Mountains_MountGodwinAusten : Ind Mountain ;
+
+  fun Mountains_MountMorrison : Ind Mountain ;
+
+  fun Mountains_Mpika : Ind Mountain ;
+
+  fun Mountains_MtAylmer : Ind Mountain ;
+
+  fun Mountains_MtElbert : Ind Mountain ;
+
+  fun Mountains_MtHood : Ind Mountain ;
+
+  fun Mountains_MtMcKinley : Ind Mountain ;
+
+  fun Mountains_MtMitchell : Ind Mountain ;
+
+  fun Mountains_MtRainier : Ind Mountain ;
+
+  fun Mountains_MtRobson : Ind Mountain ;
+
+  fun Mountains_MtWashington : Ind Mountain ;
+
+  fun Mountains_MtWhitney : Ind Mountain ;
+
+  fun Mountains_Mt_Bogong : Ind Mountain ;
+
+  fun Mountains_Mt_Grebun : Ind Mountain ;
+
+  fun Mountains_Mt_Kosciuszko : Ind Mountain ;
+
+  fun Mountains_NevadodeColima : Ind Mountain ;
+
+  fun Mountains_NevadodeToluca : Ind Mountain ;
+
+  fun Mountains_Oeraefajoekull : Ind Mountain ;
+
+  fun Mountains_PicoDuarte : Ind Mountain ;
+
+  fun Mountains_PikChan_Tengri : Ind Mountain ;
+
+  fun Mountains_PikKarl_Marx : Ind Mountain ;
+
+  fun Mountains_PikKommunizma : Ind Mountain ;
+
+  fun Mountains_PikLenina : Ind Mountain ;
+
+  fun Mountains_PikMoskva : Ind Mountain ;
+
+  fun Mountains_PikPobeda : Ind Mountain ;
+
+  fun Mountains_PikRevoluzija : Ind Mountain ;
+
+  fun Mountains_Popocatepetl : Ind Mountain ;
+
+  fun Mountains_Portefjaellen : Ind Mountain ;
+
+  fun Mountains_Pulog : Ind Mountain ;
+
+  fun Mountains_RasDaschan : Ind Mountain ;
+
+  fun Mountains_Sabalan : Ind Mountain ;
+
+  fun Mountains_Sarektjokko : Ind Mountain ;
+
+  fun Mountains_Semeru : Ind Mountain ;
+
+  fun Mountains_Snoefell : Ind Mountain ;
+
+  fun Mountains_Snoehetta : Ind Mountain ;
+
+  fun Mountains_Sulitjelma : Ind Mountain ;
+
+  fun Mountains_Tahan : Ind Mountain ;
+
+  fun Mountains_Tahat : Ind Mountain ;
+
+  fun Mountains_Tamgak : Ind Mountain ;
+
+  fun Mountains_Tarrekaise : Ind Mountain ;
+
+  fun Mountains_Tubhal : Ind Mountain ;
+
+  fun Mountains_Zugspitze : Ind Mountain ;
+
+  fun Organizations_ABEDA : Ind Organization ;
+
+  fun Organizations_ACC : Ind Organization ;
+
+  fun Organizations_ACCT : Ind Organization ;
+
+  fun Organizations_ACP : Ind Organization ;
+
+  fun Organizations_AFESD : Ind Organization ;
+
+  fun Organizations_AG : Ind Organization ;
+
+  fun Organizations_AL : Ind Organization ;
+
+  fun Organizations_AMF : Ind Organization ;
+
+  fun Organizations_AMU : Ind Organization ;
+
+  fun Organizations_ANC : Ind Organization ;
+
+  fun Organizations_ANZUS : Ind Organization ;
+
+  fun Organizations_APEC : Ind Organization ;
+
+  fun Organizations_ASEAN : Ind Organization ;
+
+  fun Organizations_AfDB : Ind Organization ;
+
+  fun Organizations_AsDB : Ind Organization ;
+
+  fun Organizations_BCIE : Ind Organization ;
+
+  fun Organizations_BDEAC : Ind Organization ;
+
+  fun Organizations_BIS : Ind Organization ;
+
+  fun Organizations_BSEC : Ind Organization ;
+
+  fun Organizations_Benelux : Ind Organization ;
+
+  fun Organizations_C : Ind Organization ;
+
+  fun Organizations_CACM : Ind Organization ;
+
+  fun Organizations_CAEU : Ind Organization ;
+
+  fun Organizations_CBSS : Ind Organization ;
+
+  fun Organizations_CCC : Ind Organization ;
+
+  fun Organizations_CDB : Ind Organization ;
+
+  fun Organizations_CE : Ind Organization ;
+
+  fun Organizations_CEAO : Ind Organization ;
+
+  fun Organizations_CEEAC : Ind Organization ;
+
+  fun Organizations_CEI : Ind Organization ;
+
+  fun Organizations_CEMA : Ind Organization ;
+
+  fun Organizations_CEPGL : Ind Organization ;
+
+  fun Organizations_CERN : Ind Organization ;
+
+  fun Organizations_CIS : Ind Organization ;
+
+  fun Organizations_CP : Ind Organization ;
+
+  fun Organizations_Caricom : Ind Organization ;
+
+  fun Organizations_EADB : Ind Organization ;
+
+  fun Organizations_EBRD : Ind Organization ;
+
+  fun Organizations_ECA : Ind Organization ;
+
+  fun Organizations_ECE : Ind Organization ;
+
+  fun Organizations_ECLAC : Ind Organization ;
+
+  fun Organizations_ECO : Ind Organization ;
+
+  fun Organizations_ECOSOC : Ind Organization ;
+
+  fun Organizations_ECOWAS : Ind Organization ;
+
+  fun Organizations_EFTA : Ind Organization ;
+
+  fun Organizations_EIB : Ind Organization ;
+
+  fun Organizations_EN : Ind Organization ;
+
+  fun Organizations_ESA : Ind Organization ;
+
+  fun Organizations_ESCAP : Ind Organization ;
+
+  fun Organizations_ESCWA : Ind Organization ;
+
+  fun Organizations_EU : Ind Organization ;
+
+  fun Organizations_Entente : Ind Organization ;
+
+  fun Organizations_FAO : Ind Organization ;
+
+  fun Organizations_FZ : Ind Organization ;
+
+  fun Organizations_GCC : Ind Organization ;
+
+  fun Organizations_G_10 : Ind Organization ;
+
+  fun Organizations_G_11 : Ind Organization ;
+
+  fun Organizations_G_15 : Ind Organization ;
+
+  fun Organizations_G_19 : Ind Organization ;
+
+  fun Organizations_G_2 : Ind Organization ;
+
+  fun Organizations_G_24 : Ind Organization ;
+
+  fun Organizations_G_3 : Ind Organization ;
+
+  fun Organizations_G_30 : Ind Organization ;
+
+  fun Organizations_G_33 : Ind Organization ;
+
+  fun Organizations_G_5 : Ind Organization ;
+
+  fun Organizations_G_6 : Ind Organization ;
+
+  fun Organizations_G_7 : Ind Organization ;
+
+  fun Organizations_G_77 : Ind Organization ;
+
+  fun Organizations_G_8 : Ind Organization ;
+
+  fun Organizations_G_9 : Ind Organization ;
+
+  fun Organizations_IADB : Ind Organization ;
+
+  fun Organizations_IAEA : Ind Organization ;
+
+  fun Organizations_IBRD : Ind Organization ;
+
+  fun Organizations_ICAO : Ind Organization ;
+
+  fun Organizations_ICC : Ind Organization ;
+
+  fun Organizations_ICFTU : Ind Organization ;
+
+  fun Organizations_ICJ : Ind Organization ;
+
+  fun Organizations_ICRC : Ind Organization ;
+
+  fun Organizations_ICRM : Ind Organization ;
+
+  fun Organizations_IDA : Ind Organization ;
+
+  fun Organizations_IDB : Ind Organization ;
+
+  fun Organizations_IEA : Ind Organization ;
+
+  fun Organizations_IFAD : Ind Organization ;
+
+  fun Organizations_IFC : Ind Organization ;
+
+  fun Organizations_IFRCS : Ind Organization ;
+
+  fun Organizations_IGADD : Ind Organization ;
+
+  fun Organizations_ILO : Ind Organization ;
+
+  fun Organizations_IMF : Ind Organization ;
+
+  fun Organizations_IMO : Ind Organization ;
+
+  fun Organizations_IOC : Ind Organization ;
+
+  fun Organizations_IOM : Ind Organization ;
+
+  fun Organizations_ISO : Ind Organization ;
+
+  fun Organizations_ITU : Ind Organization ;
+
+  fun Organizations_Inmarsat : Ind Organization ;
+
+  fun Organizations_Intelsat : Ind Organization ;
+
+  fun Organizations_Interpol : Ind Organization ;
+
+  fun Organizations_LAES : Ind Organization ;
+
+  fun Organizations_LAIA : Ind Organization ;
+
+  fun Organizations_MINURSO : Ind Organization ;
+
+  fun Organizations_MTCR : Ind Organization ;
+
+  fun Organizations_MekongGroup : Ind Organization ;
+
+  fun Organizations_Mercosur : Ind Organization ;
+
+  fun Organizations_NAM : Ind Organization ;
+
+  fun Organizations_NATO : Ind Organization ;
+
+  fun Organizations_NC : Ind Organization ;
+
+  fun Organizations_NIB : Ind Organization ;
+
+  fun Organizations_NSG : Ind Organization ;
+
+  fun Organizations_OAPEC : Ind Organization ;
+
+  fun Organizations_OAS : Ind Organization ;
+
+  fun Organizations_OAU : Ind Organization ;
+
+  fun Organizations_OECD : Ind Organization ;
+
+  fun Organizations_OECS : Ind Organization ;
+
+  fun Organizations_OIC : Ind Organization ;
+
+  fun Organizations_OPANAL : Ind Organization ;
+
+  fun Organizations_OPEC : Ind Organization ;
+
+  fun Organizations_OSCE : Ind Organization ;
+
+  fun Organizations_PCA : Ind Organization ;
+
+  fun Organizations_PFP : Ind Organization ;
+
+  fun Organizations_RG : Ind Organization ;
+
+  fun Organizations_SAARC : Ind Organization ;
+
+  fun Organizations_SACU : Ind Organization ;
+
+  fun Organizations_SADC : Ind Organization ;
+
+  fun Organizations_SELA : Ind Organization ;
+
+  fun Organizations_SPC : Ind Organization ;
+
+  fun Organizations_SPF : Ind Organization ;
+
+  fun Organizations_Sparteca : Ind Organization ;
+
+  fun Organizations_UDEAC : Ind Organization ;
+
+  fun Organizations_UN : Ind Organization ;
+
+  fun Organizations_UNAMIR : Ind Organization ;
+
+  fun Organizations_UNAVEMIII : Ind Organization ;
+
+  fun Organizations_UNCRO : Ind Organization ;
+
+  fun Organizations_UNCTAD : Ind Organization ;
+
+  fun Organizations_UNDOF : Ind Organization ;
+
+  fun Organizations_UNDP : Ind Organization ;
+
+  fun Organizations_UNEP : Ind Organization ;
+
+  fun Organizations_UNESCO : Ind Organization ;
+
+  fun Organizations_UNFICYP : Ind Organization ;
+
+  fun Organizations_UNFPA : Ind Organization ;
+
+  fun Organizations_UNHCR : Ind Organization ;
+
+  fun Organizations_UNICEF : Ind Organization ;
+
+  fun Organizations_UNIDO : Ind Organization ;
+
+  fun Organizations_UNIFIL : Ind Organization ;
+
+  fun Organizations_UNIKOM : Ind Organization ;
+
+  fun Organizations_UNITAR : Ind Organization ;
+
+  fun Organizations_UNMIH : Ind Organization ;
+
+  fun Organizations_UNMOGIP : Ind Organization ;
+
+  fun Organizations_UNMOT : Ind Organization ;
+
+  fun Organizations_UNOMIG : Ind Organization ;
+
+  fun Organizations_UNOMIL : Ind Organization ;
+
+  fun Organizations_UNPREDEP : Ind Organization ;
+
+  fun Organizations_UNPROFOR : Ind Organization ;
+
+  fun Organizations_UNRISD : Ind Organization ;
+
+  fun Organizations_UNRWA : Ind Organization ;
+
+  fun Organizations_UNTSO : Ind Organization ;
+
+  fun Organizations_UNU : Ind Organization ;
+
+  fun Organizations_UPU : Ind Organization ;
+
+  fun Organizations_WADB : Ind Organization ;
+
+  fun Organizations_WCL : Ind Organization ;
+
+  fun Organizations_WEU : Ind Organization ;
+
+  fun Organizations_WFC : Ind Organization ;
+
+  fun Organizations_WFP : Ind Organization ;
+
+  fun Organizations_WFTU : Ind Organization ;
+
+  fun Organizations_WHO : Ind Organization ;
+
+  fun Organizations_WIPO : Ind Organization ;
+
+  fun Organizations_WMO : Ind Organization ;
+
+  fun Organizations_WToO : Ind Organization ;
+
+  fun Organizations_WTrO : Ind Organization ;
+
+  fun Organizations_ZC : Ind Organization ;
+
+  fun Province : Class ;
+  fun Province_Class : SubClass Province StateOrProvince ;
+
+  fun Rivers_Ajan_Jurjach : Ind River ;
+
+  fun Rivers_Amazonas : Ind River ;
+
+  fun Rivers_Amudarja : Ind River ;
+
+  fun Rivers_Amur : Ind River ;
+
+  fun Rivers_Anuwimi : Ind River ;
+
+  fun Rivers_Argun : Ind River ;
+
+  fun Rivers_Arkansas : Ind River ;
+
+  fun Rivers_Atbara : Ind River ;
+
+  fun Rivers_Bahrel_Djebel : Ind River ;
+
+  fun Rivers_Bahrel_Gasal : Ind River ;
+
+  fun Rivers_Bani : Ind River ;
+
+  fun Rivers_Baro : Ind River ;
+
+  fun Rivers_Benue : Ind River ;
+
+  fun Rivers_Bija : Ind River ;
+
+  fun Rivers_BlackDrin : Ind River ;
+
+  fun Rivers_BlackIrtysch : Ind River ;
+
+  fun Rivers_BlueNile : Ind River ;
+
+  fun Rivers_Bomu : Ind River ;
+
+  fun Rivers_Busira : Ind River ;
+
+  fun Rivers_Casai : Ind River ;
+
+  fun Rivers_Chatanga : Ind River ;
+
+  fun Rivers_Chire : Ind River ;
+
+  fun Rivers_Colorado : Ind River ;
+
+  fun Rivers_ColumbiaRiver : Ind River ;
+
+  fun Rivers_ConnecticutRiver : Ind River ;
+
+  fun Rivers_Cuango : Ind River ;
+
+  fun Rivers_Cuanza : Ind River ;
+
+  fun Rivers_Cuilo : Ind River ;
+
+  fun Rivers_Cunene : Ind River ;
+
+  fun Rivers_Dalaelv : Ind River ;
+
+  fun Rivers_Djuba : Ind River ;
+
+  fun Rivers_Dnepr : Ind River ;
+
+  fun Rivers_Don : Ind River ;
+
+  fun Rivers_Donau : Ind River ;
+
+  fun Rivers_Drin : Ind River ;
+
+  fun Rivers_Elbe : Ind River ;
+
+  fun Rivers_Fulda : Ind River ;
+
+  fun Rivers_Gambia : Ind River ;
+
+  fun Rivers_Garonne : Ind River ;
+
+  fun Rivers_Gloma : Ind River ;
+
+  fun Rivers_Goetaaelv : Ind River ;
+
+  fun Rivers_GrosserJenissej : Ind River ;
+
+  fun Rivers_Han : Ind River ;
+
+  fun Rivers_HudsonRiver : Ind River ;
+
+  fun Rivers_Hwangho : Ind River ;
+
+  fun Rivers_Ingoda : Ind River ;
+
+  fun Rivers_Irtysch : Ind River ;
+
+  fun Rivers_Ischim : Ind River ;
+
+  fun Rivers_Jangtse_Kiang : Ind River ;
+
+  fun Rivers_Jenissej : Ind River ;
+
+  fun Rivers_JoekulsaaFjoellum : Ind River ;
+
+  fun Rivers_Jug : Ind River ;
+
+  fun Rivers_Kafue : Ind River ;
+
+  fun Rivers_Karun : Ind River ;
+
+  fun Rivers_Katun : Ind River ;
+
+  fun Rivers_Kemijoki : Ind River ;
+
+  fun Rivers_Kitakami : Ind River ;
+
+  fun Rivers_Klaraelv : Ind River ;
+
+  fun Rivers_KleinerJenissej : Ind River ;
+
+  fun Rivers_Kokemaeenjoki : Ind River ;
+
+  fun Rivers_Kolyma : Ind River ;
+
+  fun Rivers_Kulu : Ind River ;
+
+  fun Rivers_Kura : Ind River ;
+
+  fun Rivers_Kwa : Ind River ;
+
+  fun Rivers_Lena : Ind River ;
+
+  fun Rivers_Limpopo : Ind River ;
+
+  fun Rivers_Loire : Ind River ;
+
+  fun Rivers_Lomami : Ind River ;
+
+  fun Rivers_Luangwa : Ind River ;
+
+  fun Rivers_Lukuga : Ind River ;
+
+  fun Rivers_Luvua : Ind River ;
+
+  fun Rivers_Mekong : Ind River ;
+
+  fun Rivers_Mississippi : Ind River ;
+
+  fun Rivers_Missouri : Ind River ;
+
+  fun Rivers_Moldau : Ind River ;
+
+  fun Rivers_Neva : Ind River ;
+
+  fun Rivers_Niger : Ind River ;
+
+  fun Rivers_Nile : Ind River ;
+
+  fun Rivers_NorthernDwina : Ind River ;
+
+  fun Rivers_Ob : Ind River ;
+
+  fun Rivers_Oesterdalaelv : Ind River ;
+
+  fun Rivers_Oka : Ind River ;
+
+  fun Rivers_Onon : Ind River ;
+
+  fun Rivers_Oranje : Ind River ;
+
+  fun Rivers_Orinoco : Ind River ;
+
+  fun Rivers_Oulujoki : Ind River ;
+
+  fun Rivers_Ounasjoki : Ind River ;
+
+  fun Rivers_Paraguay : Ind River ;
+
+  fun Rivers_Parana : Ind River ;
+
+  fun Rivers_Petschora : Ind River ;
+
+  fun Rivers_Pibor : Ind River ;
+
+  fun Rivers_Pjandsh : Ind River ;
+
+  fun Rivers_Rhein : Ind River ;
+
+  fun Rivers_Rhone : Ind River ;
+
+  fun Rivers_RioBalsas : Ind River ;
+
+  fun Rivers_RioGrande : Ind River ;
+
+  fun Rivers_RiodelaPlata : Ind River ;
+
+  fun Rivers_Rufiji : Ind River ;
+
+  fun Rivers_Ruki : Ind River ;
+
+  fun Rivers_Ruvuma : Ind River ;
+
+  fun Rivers_Sanaga : Ind River ;
+
+  fun Rivers_Sanga : Ind River ;
+
+  fun Rivers_Save : Ind River ;
+
+  fun Rivers_Schari : Ind River ;
+
+  fun Rivers_Schilka : Ind River ;
+
+  fun Rivers_Seine : Ind River ;
+
+  fun Rivers_Senegal : Ind River ;
+
+  fun Rivers_Sobat : Ind River ;
+
+  fun Rivers_St_Lorenzstrom : Ind River ;
+
+  fun Rivers_Suchona : Ind River ;
+
+  fun Rivers_Syrdarja : Ind River ;
+
+  fun Rivers_Tana : Ind River ;
+
+  fun Rivers_Thames : Ind River ;
+
+  fun Rivers_Thjorsa : Ind River ;
+
+  fun Rivers_Tobol : Ind River ;
+
+  fun Rivers_Torneaelv : Ind River ;
+
+  fun Rivers_Tshuapa : Ind River ;
+
+  fun Rivers_Ubangi : Ind River ;
+
+  fun Rivers_Uelle : Ind River ;
+
+  fun Rivers_Umeaelv : Ind River ;
+
+  fun Rivers_Ural : Ind River ;
+
+  fun Rivers_Uruguay : Ind River ;
+
+  fun Rivers_Vaal : Ind River ;
+
+  fun Rivers_Vaesterdalaelv : Ind River ;
+
+  fun Rivers_Volga : Ind River ;
+
+  fun Rivers_Volta : Ind River ;
+
+  fun Rivers_WebiSchebeli : Ind River ;
+
+  fun Rivers_Weichsel : Ind River ;
+
+  fun Rivers_Werra : Ind River ;
+
+  fun Rivers_Weser : Ind River ;
+
+  fun Rivers_WesternDwina : Ind River ;
+
+  fun Rivers_WhiteDrin : Ind River ;
+
+  fun Rivers_WhiteNile : Ind River ;
+
+  fun Rivers_Zaire : Ind River ;
+
+  fun Rivers_Zambezi : Ind River ;
+
+  fun Seas_ArabianSea : Ind Sea ;
+
+  fun Seas_ArcticOcean : Ind Sea ;
+
+  fun Seas_AtlanticOcean : Ind Sea ;
+
+  fun Seas_BalticSea : Ind Sea ;
+
+  fun Seas_BlackSea : Ind Sea ;
+
+  fun Seas_CaribbeanSea : Ind Sea ;
+
+  fun Seas_EastChinaSea : Ind Sea ;
+
+  fun Seas_GulfofAden : Ind Sea ;
+
+  fun Seas_GulfofMexico : Ind Sea ;
+
+  fun Seas_IndianOcean : Ind Sea ;
+
+  fun Seas_IrishSea : Ind Sea ;
+
+  fun Seas_MediterraneanSea : Ind Sea ;
+
+  fun Seas_NorthSea : Ind Sea ;
+
+  fun Seas_NorwegianSea : Ind Sea ;
+
+  fun Seas_PacificOcean : Ind Sea ;
+
+  fun Seas_PersianGulf : Ind Sea ;
+
+  fun Seas_RedSea : Ind Sea ;
+
+  fun Seas_SeaofAzov : Ind Sea ;
+
+  fun Seas_SeaofJapan : Ind Sea ;
+
+  fun Seas_SouthChinaSea : Ind Sea ;
+
+  fun Seas_SundaSea : Ind Sea ;
+
+  fun Seas_YellowSea : Ind Sea ;
+
+  fun flowsInto : El River -> El Sea -> Formula ;
+
+  fun geographicalSubregion : El City -> El Province -> Formula ;
+
+  fun hasHeadq : El Organization -> El City -> Formula ;
+}
diff --git a/examples/SUMO/MondialEng.gf b/examples/SUMO/MondialEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/MondialEng.gf
@@ -0,0 +1,5363 @@
+concrete MondialEng of Mondial = MidLevelOntologyEng ** open ParadigmsEng,NounEng in {
+
+lin 
+  Countries_H_provinces_Pest = UsePN (mkPN "Pest") ;
+  Countries_THA_provinces_KamphaengPhet = UsePN (mkPN "Kamphaeng Phet") ;
+  Countries_USA_provinces_Illinois_cities_Naperville = UsePN (mkPN "Naperville") ;
+  Countries_USA_provinces_NorthCarolina_cities_Greensboro = UsePN (mkPN "Greensboro") ;
+  Countries_EAK_provinces_RiftValley_cities_Nakuru = UsePN (mkPN "Nakuru") ;
+  Countries_TJ_provinces_Guangdong_cities_Shenzhen = UsePN (mkPN "Shenzhen") ;
+  Islands_St_Helena = UsePN (mkPN "St. Helena") ;
+  Countries_F_provinces_IledeFrance_cities_BoulogneBillancourt = UsePN (mkPN "Boulogne Billancourt") ;
+  Countries_ETH_cities_Nazret = UsePN (mkPN "Nazret") ;
+  Countries_IR_provinces_AzarbayianeGharbt_cities_Khvoy = UsePN (mkPN "Khvoy") ;
+  Countries_TJ_provinces_Jilin_cities_Jilin = UsePN (mkPN "Jilin") ;
+  Countries_ES_provinces_Sonsonate_cities_Sonsonate = UsePN (mkPN "Sonsonate") ;
+  Countries_H_provinces_Heves = UsePN (mkPN "Heves") ;
+  Countries_UA_provinces_Odeska = UsePN (mkPN "Odeska") ;
+  Countries_BR_provinces_SaoPaulo_cities_Guarulhos = UsePN (mkPN "Guarulhos") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Yakeshi = UsePN (mkPN "Yakeshi") ;
+  Countries_THA_provinces_SaKaeo = UsePN (mkPN "Sa Kaeo") ;
+  Countries_YV_provinces_Trujillo = UsePN (mkPN "Trujillo") ;
+  Countries_N_provinces_Hordaland_cities_Bergen = UsePN (mkPN "Bergen") ;
+  Countries_RO_provinces_Suceava = UsePN (mkPN "Suceava") ;
+  Countries_TJ_provinces_Hubei_cities_Puqi = UsePN (mkPN "Puqi") ;
+  Countries_RSA_provinces_Gauteng_cities_Soweto = UsePN (mkPN "Soweto") ;
+  Countries_TR_provinces_Giresun_cities_Giresun = UsePN (mkPN "Giresun") ;
+  Islands_Anguilla = UsePN (mkPN "Anguilla") ;
+  Countries_J_provinces_Fukushima = UsePN (mkPN "Fukushima") ;
+  Islands_SaintLucia = UsePN (mkPN "Saint Lucia") ;
+  Countries_NOK_cities_Sunchon = UsePN (mkPN "Sunchon") ;
+  Countries_RI_cities_Binjai = UsePN (mkPN "Binjai") ;
+  Countries_S_provinces_Sodermanland_cities_Nykoping = UsePN (mkPN "Nykoping") ;
+  Countries_cid_cia_Aruba = UsePN (mkPN "Aruba") ;
+  Countries_HCA_provinces_Atlantida_cities_LaCeiba = UsePN (mkPN "La Ceiba") ;
+  Countries_C_provinces_IsladelaJuventud_cities_NuevaGerona = UsePN (mkPN "Nueva Gerona") ;
+  Countries_TR_provinces_Mugla_cities_Mugla = UsePN (mkPN "Mugla") ;
+  Countries_IND_provinces_HimachalPradesh_cities_Simla = UsePN (mkPN "Simla") ;
+  Countries_BR_provinces_SantaCatarina_cities_Blumenau = UsePN (mkPN "Blumenau") ;
+  Countries_D_provinces_Hessen_cities_Wiesbaden = UsePN (mkPN "Wiesbaden") ;
+  Countries_BD_cities_Saidpur = UsePN (mkPN "Saidpur") ;
+  Islands_PortoSanto = UsePN (mkPN "Porto Santo") ;
+  Countries_TJ_provinces_Jiangsu_cities_Huaian = UsePN (mkPN "Huaian") ;
+  Countries_RO_provinces_Tulcea_cities_Tulcea = UsePN (mkPN "Tulcea") ;
+  Countries_HCA_provinces_Copan = UsePN (mkPN "Copan") ;
+  Countries_PK_cities_Sheikhupura = UsePN (mkPN "Sheikhupura") ;
+  Countries_IRQ_provinces_Ninawa_cities_Mosul = UsePN (mkPN "Mosul") ;
+  Countries_CZ_provinces_Jihocesky_cities_CeskeBudejovice = UsePN (mkPN "Ceske Budejovice") ;
+  Countries_PL_provinces_Lodzkie_cities_Lodz = UsePN (mkPN "Lodz") ;
+  Countries_MS_cities_PortLouis = UsePN (mkPN "Port Louis") ;
+  Organizations_G_5 = UsePN (mkPN "Group of 5") ;
+  Countries_R_provinces_Rep_ofBashkortostan_cities_Oktyabrsky = UsePN (mkPN "Oktyabrsky") ;
+  Countries_D_provinces_Hessen_cities_FrankfurtamMain = UsePN (mkPN "Frankfurt am Main") ;
+  Countries_CDN_provinces_NewBrunswick = UsePN (mkPN "New Brunswick") ;
+  Countries_IS_cities_Reykjavik = UsePN (mkPN "Reykjavik") ;
+  Countries_GB_provinces_Swansea = UsePN (mkPN "Swansea") ;
+  Countries_GB_provinces_Flintshire_cities_Mold = UsePN (mkPN "Mold") ;
+  Countries_USA_provinces_Indiana_cities_FortWayne = UsePN (mkPN "Fort Wayne") ;
+  Countries_IND_provinces_WestBengal_cities_Calcutta = UsePN (mkPN "Calcutta") ;
+  Countries_ET_provinces_BurSaid_munic = UsePN (mkPN "Bur Said (munic.)") ;
+  Countries_RP_cities_Makati = UsePN (mkPN "Makati") ;
+  Countries_I_provinces_Puglia_cities_Taranto = UsePN (mkPN "Taranto") ;
+  Countries_I_provinces_ValledAosta_cities_Aosta = UsePN (mkPN "Aosta") ;
+  Countries_I_provinces_FriuliVeneziaGiulia = UsePN (mkPN "Friuli Venezia Giulia") ;
+  Countries_UZB_provinces_Toshkent = UsePN (mkPN "Toshkent") ;
+  Countries_BG_cities_Sofia = UsePN (mkPN "Sofia") ;
+  Countries_BR_provinces_MatoGrosso_cities_Cuiaba = UsePN (mkPN "Cuiaba") ;
+  Countries_YV_cities_SantaAnadeCoro = UsePN (mkPN "Santa Ana de Coro") ;
+  Countries_USA_provinces_Michigan_cities_GrandRapids = UsePN (mkPN "Grand Rapids") ;
+  Countries_PA_provinces_Panama_cities_PanamaCity = UsePN (mkPN "Panama City") ;
+  Countries_GB_provinces_Wiltshire = UsePN (mkPN "Wiltshire") ;
+  Countries_R_provinces_Rep_ofAltay_cities_GornoAltaysk = UsePN (mkPN "Gorno Altaysk") ;
+  Countries_TAD_provinces_Khatlon_cities_Qurghonteppa = UsePN (mkPN "Qurghonteppa") ;
+  Countries_IR_provinces_AzarbayianeGharbt_cities_Orumiyeh = UsePN (mkPN "Orumiyeh") ;
+  Countries_TR_provinces_Aksaray_cities_Aksaray = UsePN (mkPN "Aksaray") ;
+  Countries_KAZ_provinces_Qostanay_cities_Rudny = UsePN (mkPN "Rudny") ;
+  Countries_CO_provinces_Caldas = UsePN (mkPN "Caldas") ;
+  Countries_ET_provinces_Aswan = UsePN (mkPN "Aswan") ;
+  Countries_EAT_provinces_Arusha = UsePN (mkPN "Arusha") ;
+  Countries_UA_provinces_Dnipropetrovska = UsePN (mkPN "Dnipropetrovska") ;
+  Countries_ET_provinces_Ismailiya_cities_Ismailiya = UsePN (mkPN "Ismailiya") ;
+  Countries_RO_provinces_Arad_cities_Arad = UsePN (mkPN "Arad") ;
+  Islands_NewCaledonia = UsePN (mkPN "New Caledonia") ;
+  Countries_cid_cia_Pitcairn_Islands_cities_Adamstown = UsePN (mkPN "Adamstown") ;
+  Countries_TR_provinces_Sinop_cities_Sinop = UsePN (mkPN "Sinop") ;
+  Organizations_ICRC = UsePN (mkPN "International Committee of the Red Cross") ;
+  Countries_IND_provinces_UttarPradesh_cities_Lucknow = UsePN (mkPN "Lucknow") ;
+  Islands_Barbuda = UsePN (mkPN "Barbuda") ;
+  Countries_RO_provinces_Cluj = UsePN (mkPN "Cluj") ;
+  Countries_N_provinces_VestAgder = UsePN (mkPN "Vest Agder") ;
+  Countries_AUS_provinces_AustraliaCapitalTerritory_cities_Canberra = UsePN (mkPN "Canberra") ;
+  Countries_GB_provinces_Hampshire = UsePN (mkPN "Hampshire") ;
+  Countries_VN_cities_HongGai = UsePN (mkPN "Hong Gai") ;
+  Countries_RA_provinces_Chaco = UsePN (mkPN "Chaco") ;
+  Rivers_Colorado = UsePN (mkPN "Colorado") ;
+  Countries_PA_provinces_Cocle_cities_Penonome = UsePN (mkPN "Penonome") ;
+  Countries_R_provinces_ChechenRep__cities_Grozny = UsePN (mkPN "Grozny") ;
+  Countries_USA_provinces_Pennsylvania_cities_Erie = UsePN (mkPN "Erie") ;
+  Countries_NL_provinces_Limburg = UsePN (mkPN "Limburg") ;
+  Countries_UA_provinces_Volynska = UsePN (mkPN "Volynska") ;
+  Countries_R_provinces_Ulyanovskayaoblast = UsePN (mkPN "Ulyanovskaya oblast") ;
+  Countries_GB_provinces_GreaterManchester_cities_Stockport = UsePN (mkPN "Stockport") ;
+  Countries_MYA_provinces_Kachin = UsePN (mkPN "Kachin") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Munster = UsePN (mkPN "Munster") ;
+  Countries_VN_provinces_NgheAn = UsePN (mkPN "Nghe An") ;
+  Countries_TR_provinces_Kayseri = UsePN (mkPN "Kayseri") ;
+  Countries_TJ_provinces_Jilin_cities_Jiutai = UsePN (mkPN "Jiutai") ;
+  Countries_J_provinces_Yamanashi = UsePN (mkPN "Yamanashi") ;
+  Countries_RC_provinces_Tainan = UsePN (mkPN "Tainan") ;
+  Countries_C_provinces_VillaClara = UsePN (mkPN "Villa Clara") ;
+  Countries_BR_cities_Hortolandia = UsePN (mkPN "Hortolandia") ;
+  Countries_USA_provinces_NewYork_cities_Syracuse = UsePN (mkPN "Syracuse") ;
+  Mountains_Haltiatunturi = UsePN (mkPN "Haltiatunturi") ;
+  Seas_IndianOcean = UsePN (mkPN "Indian Ocean") ;
+  Islands_Gotland = UsePN (mkPN "Gotland") ;
+  Countries_J_provinces_Kagawa_cities_Takamatsu = UsePN (mkPN "Takamatsu") ;
+  Countries_TR_provinces_Kutahya = UsePN (mkPN "Kutahya") ;
+  Countries_BR_provinces_Parana_cities_Guarapuava = UsePN (mkPN "Guarapuava") ;
+  Organizations_PCA = UsePN (mkPN "Permanent Court of Arbitration") ;
+  Rivers_Jangtse_Kiang = UsePN (mkPN "Jangtse-Kiang") ;
+  Countries_CAM_provinces_Ouest = UsePN (mkPN "Ouest") ;
+  Countries_ROK_cities_Kunsan = UsePN (mkPN "Kunsan") ;
+  Organizations_ASEAN = UsePN (mkPN "Association of Southeast Asian Nations") ;
+  Islands_Islay = UsePN (mkPN "Islay") ;
+  Deserts_GrandErgOuest = UsePN (mkPN "Grand Erg Ouest") ;
+  Countries_MA_cities_Rabat = UsePN (mkPN "Rabat") ;
+  Countries_ES_provinces_SanSalvador_cities_SanSalvador = UsePN (mkPN "San Salvador") ;
+  Countries_IR_provinces_Gilan = UsePN (mkPN "Gilan") ;
+  Countries_E_provinces_Galicia_cities_SantiagodeCompostella = UsePN (mkPN "Santiago de Compostella") ;
+  Countries_SF_provinces_Aland = UsePN (mkPN "Aland") ;
+  Countries_HCA_provinces_Comayagua_cities_Comayagua = UsePN (mkPN "Comayagua") ;
+  Countries_RSA_cities_Benoni = UsePN (mkPN "Benoni") ;
+  Countries_TJ_provinces_Jiangsu_cities_Wuxi = UsePN (mkPN "Wuxi") ;
+  Countries_WAN_cities_Ogbomosho = UsePN (mkPN "Ogbomosho") ;
+  Countries_MEX_provinces_Chihuahua_cities_Juarez = UsePN (mkPN "Juarez") ;
+  Countries_cid_cia_Saint_Helena = UsePN (mkPN "Saint Helena") ;
+  Countries_TJ_provinces_Shaanxi_cities_Xian = UsePN (mkPN "Xian") ;
+  Countries_TJ_provinces_NeiMonggol = UsePN (mkPN "Nei Monggol") ;
+  Countries_SF_provinces_Uusimaa = UsePN (mkPN "Uusimaa") ;
+  Countries_D_provinces_Hessen_cities_OffenbachamMain = UsePN (mkPN "Offenbach am Main") ;
+  Countries_TJ_provinces_Fujian_cities_Longyan = UsePN (mkPN "Longyan") ;
+  Countries_CH_provinces_BE_cities_Biel = UsePN (mkPN "Biel") ;
+  Countries_KAZ_provinces_Aqtobe = UsePN (mkPN "Aqtobe") ;
+  Countries_WAN_cities_Ikirun = UsePN (mkPN "Ikirun") ;
+  Countries_TJ_provinces_Jiangsu_cities_Yancheng = UsePN (mkPN "Yancheng") ;
+  Countries_UA_provinces_IvanoFrankivska_cities_IvanoFrankivsk = UsePN (mkPN "Ivano Frankivsk") ;
+  Countries_GB_provinces_Bedfordshire = UsePN (mkPN "Bedfordshire") ;
+  Countries_P_provinces_Braga_cities_Braga = UsePN (mkPN "Braga") ;
+  Countries_BR_provinces_Rondonia = UsePN (mkPN "Rondonia") ;
+  Countries_RSA_provinces_NorthernProvince_cities_Pietersburg = UsePN (mkPN "Pietersburg") ;
+  Countries_CH_provinces_SZ_cities_Schwyz = UsePN (mkPN "Schwyz") ;
+  Countries_PE_provinces_Ica = UsePN (mkPN "Ica") ;
+  Countries_IND_provinces_Rajasthan_cities_Ajmer = UsePN (mkPN "Ajmer") ;
+  Countries_F_provinces_ProvenceCotedAzur_cities_AixenProvence = UsePN (mkPN "Aix en Provence") ;
+  Lakes_LakeNasser = UsePN (mkPN "Lake Nasser") ;
+  Countries_TJ_provinces_Shandong_cities_Laiwu = UsePN (mkPN "Laiwu") ;
+  Countries_GB_provinces_Surrey_cities_Guildford = UsePN (mkPN "Guildford") ;
+  Countries_WAN_cities_Ife = UsePN (mkPN "Ife") ;
+  Countries_E_provinces_Andalusia_cities_JerezdelaFrontera = UsePN (mkPN "Jerez de la Frontera") ;
+  Mountains_Jostedalsbre = UsePN (mkPN "Jostedalsbre") ;
+  Rivers_Mississippi = UsePN (mkPN "Mississippi") ;
+  Countries_R_provinces_Sverdlovskayaoblast = UsePN (mkPN "Sverdlovskaya oblast") ;
+  Countries_YU_cities_Belgrade = UsePN (mkPN "Belgrade") ;
+  Countries_ET_provinces_ElBuhayra_cities_Damanhur = UsePN (mkPN "Damanhur") ;
+  Countries_MEX_provinces_Hidalgo_cities_PachucadeSoto = UsePN (mkPN "Pachuca de Soto") ;
+  Countries_TJ_provinces_Guangdong_cities_Chaozhou = UsePN (mkPN "Chaozhou") ;
+  Countries_H_provinces_Szeged_munic = UsePN (mkPN "Szeged (munic.)") ;
+  Countries_MEX_provinces_Oaxaca = UsePN (mkPN "Oaxaca") ;
+  Countries_USA_provinces_Oregon = UsePN (mkPN "Oregon") ;
+  Countries_SF_provinces_Kymi = UsePN (mkPN "Kymi") ;
+  Countries_KAZ_provinces_Aqmola = UsePN (mkPN "Aqmola") ;
+  Countries_R_provinces_Penzenskayaoblast = UsePN (mkPN "Penzenskaya oblast") ;
+  Countries_USA_provinces_Oregon_cities_Salem = UsePN (mkPN "Salem") ;
+  Countries_USA_provinces_Connecticut_cities_NewHaven = UsePN (mkPN "New Haven") ;
+  Countries_R_provinces_Arkhangelskayaoblast_cities_Severodvinsk = UsePN (mkPN "Severodvinsk") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Parma = UsePN (mkPN "Parma") ;
+  Countries_TJ_provinces_Hubei_cities_Echeng = UsePN (mkPN "Echeng") ;
+  Countries_PL_provinces_Torunskie_cities_Grudziadz = UsePN (mkPN "Grudziadz") ;
+  Countries_USA_provinces_Florida_cities_Orlando = UsePN (mkPN "Orlando") ;
+  Countries_YV_provinces_Zulia_cities_Cabimas = UsePN (mkPN "Cabimas") ;
+  Countries_GB_provinces_Lancashire_cities_Blackpool = UsePN (mkPN "Blackpool") ;
+  Countries_S_provinces_Kopparberg_cities_Falun = UsePN (mkPN "Falun") ;
+  Countries_TJ_provinces_Henan_cities_Puyang = UsePN (mkPN "Puyang") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_Prokopyevsk = UsePN (mkPN "Prokopyevsk") ;
+  Countries_D_provinces_Sachsen_cities_Dresden = UsePN (mkPN "Dresden") ;
+  Lakes_LakeAmadeus = UsePN (mkPN "Lake Amadeus") ;
+  Islands_Maui = UsePN (mkPN "Maui") ;
+  Countries_F_provinces_LanguedocRousillon_cities_Montpellier = UsePN (mkPN "Montpellier") ;
+  Countries_PL_provinces_Olsztynskie = UsePN (mkPN "Olsztynskie") ;
+  Countries_UZB_provinces_Samarqand_cities_Samarqand = UsePN (mkPN "Samarqand") ;
+  Countries_USA_provinces_California_cities_CostaMesa = UsePN (mkPN "Costa Mesa") ;
+  Countries_IRQ_provinces_Baghdad = UsePN (mkPN "Baghdad") ;
+  Countries_THA_provinces_ChiangRai = UsePN (mkPN "Chiang Rai") ;
+  Countries_IND_provinces_UttarPradesh = UsePN (mkPN "Uttar Pradesh") ;
+  Countries_TR_provinces_Bayburt = UsePN (mkPN "Bayburt") ;
+  Countries_F_provinces_ProvenceCotedAzur_cities_Toulon = UsePN (mkPN "Toulon") ;
+  Countries_TJ_provinces_Jilin_cities_Dunhua = UsePN (mkPN "Dunhua") ;
+  Countries_TR_provinces_Icel_cities_Tarsus = UsePN (mkPN "Tarsus") ;
+  Countries_TR_provinces_Antalya = UsePN (mkPN "Antalya") ;
+  Countries_USA_provinces_Virginia_cities_Portsmouth = UsePN (mkPN "Portsmouth") ;
+  Countries_I_provinces_Puglia_cities_Foggia = UsePN (mkPN "Foggia") ;
+  Countries_P_provinces_Lisbon_cities_Amadora = UsePN (mkPN "Amadora") ;
+  Countries_BR_provinces_SaoPaulo_cities_RibeiraoPires = UsePN (mkPN "Ribeirao Pires") ;
+  Countries_USA_provinces_Indiana = UsePN (mkPN "Indiana") ;
+  Islands_Jura = UsePN (mkPN "Jura") ;
+  Countries_S_provinces_Gotland_cities_Visby = UsePN (mkPN "Visby") ;
+  Countries_UA_provinces_Lvivska = UsePN (mkPN "Lvivska") ;
+  Countries_PL_provinces_Wloclawskie_cities_Wloclawek = UsePN (mkPN "Wloclawek") ;
+  Countries_USA_provinces_Michigan_cities_Warren = UsePN (mkPN "Warren") ;
+  Organizations_IFC = UsePN (mkPN "International Finance Corporation") ;
+  Countries_TJ_provinces_Guangdong_cities_Meixian = UsePN (mkPN "Meixian") ;
+  Countries_GB_provinces_IsleofWight = UsePN (mkPN "Isle of Wight") ;
+  Countries_USA_provinces_NewYork_cities_Buffalo = UsePN (mkPN "Buffalo") ;
+  Countries_PE_provinces_Huancavelica = UsePN (mkPN "Huancavelica") ;
+  Countries_VN_provinces_KonTum = UsePN (mkPN "Kon Tum") ;
+  Islands_Negros = UsePN (mkPN "Negros") ;
+  Deserts_ErgSchesch = UsePN (mkPN "Erg Schesch") ;
+  Countries_TJ_provinces_Fujian_cities_Quanzhou = UsePN (mkPN "Quanzhou") ;
+  Countries_UAE_cities_Sharjah = UsePN (mkPN "Sharjah") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Jabalpur = UsePN (mkPN "Jabalpur") ;
+  Countries_ES_provinces_Cuscatlan = UsePN (mkPN "Cuscatlan") ;
+  Countries_cid_cia_Jersey_cities_SaintHelier = UsePN (mkPN "Saint Helier") ;
+  Mountains_MaunaKea = UsePN (mkPN "Mauna Kea") ;
+  Countries_TJ_provinces_Shanxi_cities_Yangquan = UsePN (mkPN "Yangquan") ;
+  Countries_cid_cia_Wallis_and_Futuna = UsePN (mkPN "Wallis and Futuna") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_CaboFrio = UsePN (mkPN "Cabo Frio") ;
+  Rivers_Atbara = UsePN (mkPN "Atbara") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_SaoLeopoldo = UsePN (mkPN "Sao Leopoldo") ;
+  Countries_IND_provinces_DadraandNagarHaveli = UsePN (mkPN "Dadra and Nagar Haveli") ;
+  Countries_RA_provinces_BuenosAires_cities_GeneralSanMartin = UsePN (mkPN "General San Martin") ;
+  Countries_UA_provinces_Khmelnytska = UsePN (mkPN "Khmelnytska") ;
+  Countries_F_provinces_Centre_cities_Orleans = UsePN (mkPN "Orleans") ;
+  Countries_BR_provinces_SaoPaulo_cities_Itaquaquecetuba = UsePN (mkPN "Itaquaquecetuba") ;
+  Rivers_Kulu = UsePN (mkPN "Kulu") ;
+  Countries_MEX_provinces_Sonora_cities_CiudadObregon = UsePN (mkPN "Ciudad Obregon") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Hailar = UsePN (mkPN "Hailar") ;
+  Countries_AG_cities_SaintJohns = UsePN (mkPN "Saint Johns") ;
+  Countries_FJI_cities_Suva = UsePN (mkPN "Suva") ;
+  Countries_ANG_provinces_LundaSul_cities_Saurimo = UsePN (mkPN "Saurimo") ;
+  Countries_PE_provinces_Loreto_cities_Iquitos = UsePN (mkPN "Iquitos") ;
+  Countries_SUD_provinces_alKhartum_cities_Omdurman = UsePN (mkPN "Omdurman") ;
+  Countries_KAZ_provinces_Mangghystau = UsePN (mkPN "Mangghystau") ;
+  Mountains_Tahat = UsePN (mkPN "Tahat") ;
+  Organizations_UNU = UsePN (mkPN "United Nations University") ;
+  Countries_EAK_provinces_NorthEastern = UsePN (mkPN "North Eastern") ;
+  Countries_WAN_cities_Maiduguri = UsePN (mkPN "Maiduguri") ;
+  Countries_NL_provinces_Overijssel_cities_Enschede = UsePN (mkPN "Enschede") ;
+  Countries_GQ_cities_Malabo = UsePN (mkPN "Malabo") ;
+  Countries_TJ_provinces_Shaanxi_cities_Baoji = UsePN (mkPN "Baoji") ;
+  Countries_H_provinces_Fejer = UsePN (mkPN "Fejer") ;
+  Mountains_KingsPeak = UsePN (mkPN "Kings Peak") ;
+  Countries_PL_provinces_Bialskopodlaskie_cities_BialaPodlaska = UsePN (mkPN "Biala Podlaska") ;
+  Countries_IL_provinces_Central_cities_Ramla = UsePN (mkPN "Ramla") ;
+  Countries_TR_provinces_Sirnak_cities_Sirnak = UsePN (mkPN "Sirnak") ;
+  Countries_J_provinces_Nagasaki = UsePN (mkPN "Nagasaki") ;
+  Countries_EAT_provinces_Mtwara_cities_MtwaraMikandani = UsePN (mkPN "Mtwara Mikandani") ;
+  Countries_RO_provinces_Botosani_cities_Botosani = UsePN (mkPN "Botosani") ;
+  Countries_TR_provinces_Gaziantep_cities_Gaziantep = UsePN (mkPN "Gaziantep") ;
+  Countries_EAT_provinces_Mara = UsePN (mkPN "Mara") ;
+  Countries_BRN_cities_Manama = UsePN (mkPN "Manama") ;
+  Lakes_Bodensee = UsePN (mkPN "Bodensee") ;
+  Countries_NAU_cities_Yaren = UsePN (mkPN "Yaren") ;
+  Countries_NOK_cities_Chongjin = UsePN (mkPN "Chongjin") ;
+  Countries_E_provinces_Aragon_cities_Zaragoza = UsePN (mkPN "Zaragoza") ;
+  Countries_GB_provinces_Nottinghamshire_cities_Mansfield = UsePN (mkPN "Mansfield") ;
+  Countries_USA_provinces_Kentucky_cities_LexingtonFayette = UsePN (mkPN "Lexington Fayette") ;
+  Countries_PE_provinces_Lambayeque = UsePN (mkPN "Lambayeque") ;
+  Countries_Z_provinces_Western_cities_Mongu = UsePN (mkPN "Mongu") ;
+  Countries_R_provinces_Ulyanovskayaoblast_cities_Simbirsk = UsePN (mkPN "Simbirsk") ;
+  Countries_ANG_provinces_LundaSul = UsePN (mkPN "Lunda Sul") ;
+  Rivers_Ruvuma = UsePN (mkPN "Ruvuma") ;
+  Countries_TJ_provinces_Shandong_cities_Zhucheng = UsePN (mkPN "Zhucheng") ;
+  Countries_BR_provinces_Pernambuco_cities_Paulista = UsePN (mkPN "Paulista") ;
+  Countries_RI_cities_Semarang = UsePN (mkPN "Semarang") ;
+  Countries_IRQ_provinces_Karbala = UsePN (mkPN "Karbala") ;
+  Countries_PL_provinces_Jeleniogorskie_cities_JeleniaGora = UsePN (mkPN "Jelenia Gora") ;
+  Countries_TR_provinces_Bayburt_cities_Bayburt = UsePN (mkPN "Bayburt") ;
+  Countries_IND_provinces_Orissa_cities_Bhubaneswar = UsePN (mkPN "Bhubaneswar") ;
+  Mountains_PikMoskva = UsePN (mkPN "Pik Moskva") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Recklinghausen = UsePN (mkPN "Recklinghausen") ;
+  Countries_IRQ_provinces_AnNajaf_cities_AnNajaf = UsePN (mkPN "An Najaf") ;
+  Countries_TR_provinces_Hakkari_cities_Hakkari = UsePN (mkPN "Hakkari") ;
+  Countries_BR_provinces_MinasGerais_cities_Varginha = UsePN (mkPN "Varginha") ;
+  Countries_H_provinces_Debrecen_munic_cities_Debrecen = UsePN (mkPN "Debrecen") ;
+  Rivers_Benue = UsePN (mkPN "Benue") ;
+  Countries_TJ_provinces_Hubei_cities_Xianning = UsePN (mkPN "Xianning") ;
+  Organizations_Interpol = UsePN (mkPN "International Criminal Police Organization") ;
+  Countries_USA_provinces_Iowa_cities_DesMoines = UsePN (mkPN "Des Moines") ;
+  Countries_TJ_provinces_Jiangsu_cities_Yangzhou = UsePN (mkPN "Yangzhou") ;
+  Islands_Molokai = UsePN (mkPN "Molokai") ;
+  Organizations_EFTA = UsePN (mkPN "European Free Trade Association") ;
+  Organizations_SELA = UsePN (mkPN "Sistema Economico Latinoamericana") ;
+  Countries_E_provinces_Murcia_cities_Cartagena = UsePN (mkPN "Cartagena") ;
+  Countries_USA_provinces_Nevada_cities_Reno = UsePN (mkPN "Reno") ;
+  Countries_PL_provinces_Krosnienskie = UsePN (mkPN "Krosnienskie") ;
+  Countries_S_provinces_Malmohus = UsePN (mkPN "Malmohus") ;
+  Countries_ES_cities_Mejicanos = UsePN (mkPN "Mejicanos") ;
+  Countries_IRQ_provinces_Diyala_cities_Baqubah = UsePN (mkPN "Baqubah") ;
+  Islands_Lampedusa = UsePN (mkPN "Lampedusa") ;
+  Countries_CH_provinces_NW = UsePN (mkPN "NW") ;
+  Islands_Panay = UsePN (mkPN "Panay") ;
+  Seas_GulfofAden = UsePN (mkPN "Gulf of Aden") ;
+  Countries_J_provinces_Tottori = UsePN (mkPN "Tottori") ;
+  Countries_N_provinces_Nordland_cities_Bodoe = UsePN (mkPN "Bodoe") ;
+  Countries_MYA_provinces_Sagaing_cities_Sagaing = UsePN (mkPN "Sagaing") ;
+  Countries_J_provinces_Wakayama_cities_Wakayama = UsePN (mkPN "Wakayama") ;
+  Countries_TR_provinces_Kocaeli_cities_Kocaeli = UsePN (mkPN "Kocaeli") ;
+  Countries_NL_provinces_NoordBrabant_cities_Tilburg = UsePN (mkPN "Tilburg") ;
+  Countries_HCA_provinces_Valle_cities_Nacaome = UsePN (mkPN "Nacaome") ;
+  Countries_P_provinces_Madeira = UsePN (mkPN "Madeira") ;
+  Countries_PL_provinces_Elblaskie = UsePN (mkPN "Elblaskie") ;
+  Countries_USA_provinces_Kansas_cities_Topeka = UsePN (mkPN "Topeka") ;
+  Countries_N_provinces_Oslo_cities_Oslo = UsePN (mkPN "Oslo") ;
+  Countries_IND_provinces_AndamanandNicobarIs_ = UsePN (mkPN "Andaman and Nicobar Is.") ;
+  Countries_GB_provinces_BlaenauGwent_cities_EbbwVale = UsePN (mkPN "Ebbw Vale") ;
+  Countries_THA_provinces_Phatthalung = UsePN (mkPN "Phatthalung") ;
+  Countries_GB_provinces_Lothian_cities_Edinburgh = UsePN (mkPN "Edinburgh") ;
+  Countries_USA_provinces_Texas_cities_McAllen = UsePN (mkPN "McAllen") ;
+  Countries_MEX_provinces_Tamaulipas_cities_Matamoros = UsePN (mkPN "Matamoros") ;
+  Countries_RI_cities_Padang = UsePN (mkPN "Padang") ;
+  Countries_GB_provinces_NorthYorkshire_cities_York = UsePN (mkPN "York") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Odintsovo = UsePN (mkPN "Odintsovo") ;
+  Countries_GB_provinces_WestYorkshire_cities_Leeds = UsePN (mkPN "Leeds") ;
+  Organizations_UNRISD = UsePN (mkPN "United Nations Research Institute for Social Development") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Bhatpara = UsePN (mkPN "Bhatpara") ;
+  Countries_SUD_provinces_Kurdufan_cities_alUbayyid = UsePN (mkPN "al Ubayyid") ;
+  Countries_UAE_provinces_Ajman = UsePN (mkPN "Ajman") ;
+  Countries_RC_provinces_Taichung_cities_Fengyuan = UsePN (mkPN "Fengyuan") ;
+  Countries_TR_provinces_Isparta = UsePN (mkPN "Isparta") ;
+  Countries_BD_cities_Jessore = UsePN (mkPN "Jessore") ;
+  Countries_R_provinces_Saratovskayaoblast_cities_Engels = UsePN (mkPN "Engels") ;
+  Countries_TR_provinces_Mus_cities_Mus = UsePN (mkPN "Mus") ;
+  Countries_Q_cities_Wakrah = UsePN (mkPN "Wakrah") ;
+  Seas_EastChinaSea = UsePN (mkPN "East China Sea") ;
+  Organizations_ECOSOC = UsePN (mkPN "Economic and Social Council") ;
+  Countries_TR_provinces_Rize_cities_Rize = UsePN (mkPN "Rize") ;
+  Countries_EAT_provinces_Daressalam = UsePN (mkPN "Daressalam") ;
+  Countries_GB_provinces_WestYorkshire = UsePN (mkPN "West Yorkshire") ;
+  Islands_SouthamptonIsland = UsePN (mkPN "Southampton Island") ;
+  Countries_C_provinces_Holguin_cities_Holguin = UsePN (mkPN "Holguin") ;
+  Countries_cid_cia_Pitcairn_Islands = UsePN (mkPN "Pitcairn Islands") ;
+  Countries_cid_cia_Baker_Island = UsePN (mkPN "Baker Island") ;
+  Mountains_Grossglockner = UsePN (mkPN "Grossglockner") ;
+  Countries_P_provinces_Viseu = UsePN (mkPN "Viseu") ;
+  Countries_VN_cities_CamPha = UsePN (mkPN "Cam Pha") ;
+  Countries_TM_provinces_Mary_cities_Mary = UsePN (mkPN "Mary") ;
+  Countries_R_provinces_Ivanovskayaoblast_cities_Ivanovo = UsePN (mkPN "Ivanovo") ;
+  Countries_D_provinces_Bayern_cities_Ingolstadt = UsePN (mkPN "Ingolstadt") ;
+  Countries_MYA_provinces_Shan_cities_Taunggyi = UsePN (mkPN "Taunggyi") ;
+  Organizations_ECA = UsePN (mkPN "Economic Commission for Africa") ;
+  Countries_USA_provinces_Nevada_cities_CarsonCity = UsePN (mkPN "Carson City") ;
+  Countries_PL_provinces_Ciechanowskie_cities_Ciechanow = UsePN (mkPN "Ciechanow") ;
+  Countries_B_provinces_Liege = UsePN (mkPN "Liege") ;
+  Countries_F_provinces_Bretagne = UsePN (mkPN "Bretagne") ;
+  Countries_USA_provinces_Georgia_cities_Atlanta = UsePN (mkPN "Atlanta") ;
+  Lakes_LakeTahoe = UsePN (mkPN "Lake Tahoe") ;
+  Countries_EAT_provinces_Singida_cities_Singida = UsePN (mkPN "Singida") ;
+  Countries_TJ_provinces_Jiangsu_cities_Zhenjiang = UsePN (mkPN "Zhenjiang") ;
+  Countries_FL_cities_Vaduz = UsePN (mkPN "Vaduz") ;
+  Countries_ANG_provinces_Bie_cities_Bie = UsePN (mkPN "Bie") ;
+  Countries_TJ_provinces_Shandong_cities_Wendeng = UsePN (mkPN "Wendeng") ;
+  Countries_USA_provinces_Alaska_cities_Juneau = UsePN (mkPN "Juneau") ;
+  Countries_MEX_provinces_Tamaulipas_cities_CiudadMadero = UsePN (mkPN "Ciudad Madero") ;
+  Countries_R_provinces_Rep_ofNorthOssetiya_cities_Vladikavkaz = UsePN (mkPN "Vladikavkaz") ;
+  Countries_MYA_provinces_Bago = UsePN (mkPN "Bago") ;
+  Countries_USA_provinces_Louisiana = UsePN (mkPN "Louisiana") ;
+  Countries_RC_provinces_Taitung_cities_Taitung = UsePN (mkPN "Taitung") ;
+  Countries_RO_provinces_Vaslui = UsePN (mkPN "Vaslui") ;
+  Countries_HCA_provinces_SantaBarbara = UsePN (mkPN "Santa Barbara") ;
+  Countries_THA_provinces_Chaiyaphum = UsePN (mkPN "Chaiyaphum") ;
+  Countries_USA_provinces_California_cities_Berkeley = UsePN (mkPN "Berkeley") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Itaborai = UsePN (mkPN "Itaborai") ;
+  Organizations_UNOMIL = UsePN (mkPN "United Nations Observer Mission in Liberia") ;
+  Countries_ANG_provinces_Huila_cities_Lubango = UsePN (mkPN "Lubango") ;
+  Countries_EAK_provinces_Central_cities_Thika = UsePN (mkPN "Thika") ;
+  Countries_IR_provinces_Mazandaran_cities_Babol = UsePN (mkPN "Babol") ;
+  Countries_TJ_provinces_Guangdong_cities_Jiangmen = UsePN (mkPN "Jiangmen") ;
+  Countries_RO_provinces_Mures = UsePN (mkPN "Mures") ;
+  Countries_CO_provinces_Tolima_cities_Ibague = UsePN (mkPN "Ibague") ;
+  Countries_IR_provinces_Bakhtaran_cities_Bakhtaran = UsePN (mkPN "Bakhtaran") ;
+  Countries_USA_provinces_Idaho = UsePN (mkPN "Idaho") ;
+  Countries_B_provinces_Hainaut = UsePN (mkPN "Hainaut") ;
+  Lakes_OzeroTaimyr = UsePN (mkPN "Ozero Taimyr") ;
+  Countries_BR_provinces_SaoPaulo_cities_Itapevi = UsePN (mkPN "Itapevi") ;
+  Countries_DZ_cities_Tlemcen = UsePN (mkPN "Tlemcen") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_NovoIguacu = UsePN (mkPN "Novo Iguacu") ;
+  Countries_F_provinces_Alsace_cities_Mulhouse = UsePN (mkPN "Mulhouse") ;
+  Islands_Fuenen = UsePN (mkPN "Fuenen") ;
+  Countries_NL_provinces_Flevoland_cities_Lelystad = UsePN (mkPN "Lelystad") ;
+  Countries_YV_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
+  Countries_PE_provinces_MadredeDios = UsePN (mkPN "Madre de Dios") ;
+  Countries_N_provinces_Vestfold = UsePN (mkPN "Vestfold") ;
+  Countries_TJ_provinces_Shandong_cities_Taian = UsePN (mkPN "Taian") ;
+  Countries_GB_provinces_Cheshire_cities_Macclesfield = UsePN (mkPN "Macclesfield") ;
+  Countries_BR_provinces_Paraiba = UsePN (mkPN "Paraiba") ;
+  Countries_YV_provinces_Miranda_cities_Guarenas = UsePN (mkPN "Guarenas") ;
+  Countries_D_provinces_Hessen_cities_Kassel = UsePN (mkPN "Kassel") ;
+  Countries_BD_cities_Gazipur = UsePN (mkPN "Gazipur") ;
+  Countries_J_provinces_Tokushima = UsePN (mkPN "Tokushima") ;
+  Countries_GB_provinces_Kent = UsePN (mkPN "Kent") ;
+  Countries_USA_provinces_Texas_cities_Austin = UsePN (mkPN "Austin") ;
+  Countries_EAT_provinces_Daressalam_cities_DaresSalaam = UsePN (mkPN "Dar es Salaam") ;
+  Countries_IR_provinces_AzarbayianeSharqi_cities_Tabriz = UsePN (mkPN "Tabriz") ;
+  Countries_HCA_provinces_Valle = UsePN (mkPN "Valle") ;
+  Countries_THA_provinces_Lamphun = UsePN (mkPN "Lamphun") ;
+  Countries_N_provinces_SoerTrondelag_cities_Trondheim = UsePN (mkPN "Trondheim") ;
+  Islands_FernandoPoo = UsePN (mkPN "Fernando Poo") ;
+  Mountains_Kinabalu = UsePN (mkPN "Kinabalu") ;
+  Countries_TR_provinces_Sivas_cities_Sivas = UsePN (mkPN "Sivas") ;
+  Countries_TJ_provinces_Jiangxi_cities_Jingdezhen = UsePN (mkPN "Jingdezhen") ;
+  Countries_CI_cities_Yamoussoukro = UsePN (mkPN "Yamoussoukro") ;
+  Organizations_G_7 = UsePN (mkPN "Group of 7") ;
+  Countries_ZRE_provinces_KasaiOriental = UsePN (mkPN "Kasai Oriental") ;
+  Countries_GB_provinces_Surrey = UsePN (mkPN "Surrey") ;
+  Countries_EAT_provinces_KaskaziniUjunga_cities_Mkokotoni = UsePN (mkPN "Mkokotoni") ;
+  Countries_I_provinces_Piemonte_cities_Turin = UsePN (mkPN "Turin") ;
+  Countries_RH_cities_Port_au_Prince = UsePN (mkPN "Port-au-Prince") ;
+  Countries_SF_provinces_Aland_cities_Mariehamn = UsePN (mkPN "Mariehamn") ;
+  Countries_ES_provinces_Usulutan_cities_Usulutan = UsePN (mkPN "Usulutan") ;
+  Countries_UA_provinces_Donetska_cities_Donetsk = UsePN (mkPN "Donetsk") ;
+  Countries_BR_provinces_MinasGerais_cities_Sabara = UsePN (mkPN "Sabara") ;
+  Countries_I_provinces_Lombardia_cities_Bergamo = UsePN (mkPN "Bergamo") ;
+  Countries_IND_provinces_Gujarat = UsePN (mkPN "Gujarat") ;
+  Countries_S_provinces_Blekinge_cities_Karlskrona = UsePN (mkPN "Karlskrona") ;
+  Countries_USA_provinces_Alabama = UsePN (mkPN "Alabama") ;
+  Countries_cid_cia_Christmas_Island = UsePN (mkPN "Christmas Island") ;
+  Countries_IND_provinces_Kerala_cities_Trivandrum = UsePN (mkPN "Trivandrum") ;
+  Countries_cid_cia_Christmas_Island_cities_TheSettlement = UsePN (mkPN "The Settlement") ;
+  Countries_RO_provinces_Bucuresti_cities_Bucharest = UsePN (mkPN "Bucharest") ;
+  Countries_BY_cities_Minsk = UsePN (mkPN "Minsk") ;
+  Countries_TJ_provinces_Sichuan_cities_Wanxian = UsePN (mkPN "Wanxian") ;
+  Countries_N_provinces_Hedmark_cities_Hamar = UsePN (mkPN "Hamar") ;
+  Countries_E_provinces_Andalusia = UsePN (mkPN "Andalusia") ;
+  Mountains_Bjelucha = UsePN (mkPN "Bjelucha") ;
+  Countries_TJ_provinces_Jiangxi_cities_Jiujiang = UsePN (mkPN "Jiujiang") ;
+  Countries_PE_provinces_Huanuco = UsePN (mkPN "Huanuco") ;
+  Countries_RO_provinces_Hunedoara = UsePN (mkPN "Hunedoara") ;
+  Countries_R_provinces_Samarskayaoblast_cities_Syzran = UsePN (mkPN "Syzran") ;
+  Organizations_G_3 = UsePN (mkPN "Group of 3") ;
+  Countries_BR_provinces_Para_cities_Maraba = UsePN (mkPN "Maraba") ;
+  Countries_DZ_cities_Algiers = UsePN (mkPN "Algiers") ;
+  Countries_RA_provinces_Tucuman = UsePN (mkPN "Tucuman") ;
+  Countries_TJ_provinces_Guizhou_cities_Liupanshui = UsePN (mkPN "Liupanshui") ;
+  Islands_Mayotta = UsePN (mkPN "Mayotta") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Ferrara = UsePN (mkPN "Ferrara") ;
+  Lakes_LakeOhrid = UsePN (mkPN "Lake Ohrid") ;
+  Countries_GB_provinces_Buckinghamshire_cities_Aylesbury = UsePN (mkPN "Aylesbury") ;
+  Countries_GB_provinces_GreaterManchester_cities_Oldham = UsePN (mkPN "Oldham") ;
+  Countries_IR_provinces_Khorasan_cities_Birjand = UsePN (mkPN "Birjand") ;
+  Countries_CH_provinces_GL = UsePN (mkPN "GL") ;
+  Countries_S_provinces_Kalmar_cities_Kalmar = UsePN (mkPN "Kalmar") ;
+  Mountains_PikKarl_Marx = UsePN (mkPN "Pik Karl-Marx") ;
+  Countries_DZ_cities_SidibelAbbes = UsePN (mkPN "Sidi bel Abbes") ;
+  Countries_CO_provinces_Narino_cities_Tumaco = UsePN (mkPN "Tumaco") ;
+  Countries_ET_provinces_Ismailiya = UsePN (mkPN "Ismailiya") ;
+  Countries_RO_provinces_Iasi_cities_Iasi = UsePN (mkPN "Iasi") ;
+  Rivers_Senegal = UsePN (mkPN "Senegal") ;
+  Deserts_ErgdeBilma = UsePN (mkPN "Erg de Bilma") ;
+  Mountains_Mt_Grebun = UsePN (mkPN "Mt-Grebun") ;
+  Countries_BR_provinces_SaoPaulo_cities_Jau = UsePN (mkPN "Jau") ;
+  Countries_TJ_provinces_Liaoning_cities_Haicheng = UsePN (mkPN "Haicheng") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_Uruguaiana = UsePN (mkPN "Uruguaiana") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Heilbronn = UsePN (mkPN "Heilbronn") ;
+  Countries_cid_cia_Saint_Helena_cities_Jamestown = UsePN (mkPN "Jamestown") ;
+  Organizations_CERN = UsePN (mkPN "European Organization for Nuclear Research") ;
+  Countries_GB_provinces_Cardiff = UsePN (mkPN "Cardiff") ;
+  Countries_TJ_provinces_Hubei_cities_Tianmen = UsePN (mkPN "Tianmen") ;
+  Countries_BR_provinces_MinasGerais = UsePN (mkPN "Minas Gerais") ;
+  Countries_R_provinces_Tyumenskayaoblast = UsePN (mkPN "Tyumenskaya oblast") ;
+  Countries_IND_provinces_UttarPradesh_cities_Saharanpur = UsePN (mkPN "Saharanpur") ;
+  Countries_R_provinces_ChuvashRepublic_cities_Novocheboksarsk = UsePN (mkPN "Novocheboksarsk") ;
+  Organizations_CEPGL = UsePN (mkPN "Economic Community of the Great Lakes Countries") ;
+  Countries_YV_provinces_Apure_cities_SanFernando = UsePN (mkPN "San Fernando") ;
+  Countries_USA_provinces_California_cities_Modesto = UsePN (mkPN "Modesto") ;
+  Countries_J_provinces_Shimane_cities_Matsue = UsePN (mkPN "Matsue") ;
+  Countries_BZ_cities_Belmopan = UsePN (mkPN "Belmopan") ;
+  Rivers_BlackDrin = UsePN (mkPN "Black Drin") ;
+  Countries_TO_cities_Nukualofa = UsePN (mkPN "Nukualofa") ;
+  Countries_TJ_provinces_Jiangxi_cities_Ganzhou = UsePN (mkPN "Ganzhou") ;
+  Countries_NIC_cities_Managua = UsePN (mkPN "Managua") ;
+  Countries_BD_cities_Rangpur = UsePN (mkPN "Rangpur") ;
+  Countries_N_provinces_AustAgder = UsePN (mkPN "Aust Agder") ;
+  Countries_USA_provinces_Hawaii = UsePN (mkPN "Hawaii") ;
+  Lakes_OzeroTschany = UsePN (mkPN "Ozero Tschany") ;
+  Countries_SF_provinces_Lappia_cities_Rovaniemi = UsePN (mkPN "Rovaniemi") ;
+  Organizations_G_15 = UsePN (mkPN "Group of 15") ;
+  Countries_USA_provinces_NewJersey = UsePN (mkPN "New Jersey") ;
+  Countries_GB_provinces_Monmouthshire = UsePN (mkPN "Monmouthshire") ;
+  Countries_TJ_provinces_Gansu_cities_Lanzhou = UsePN (mkPN "Lanzhou") ;
+  Countries_IND_provinces_Sikkim = UsePN (mkPN "Sikkim") ;
+  Countries_AL_cities_Shkoder = UsePN (mkPN "Shkoder") ;
+  Islands_SaoTomeandPrincipe = UsePN (mkPN "Sao Tome and Principe") ;
+  Countries_C_provinces_PinardelRio = UsePN (mkPN "Pinar del Rio") ;
+  Countries_USA_provinces_California_cities_RanchoCucamonga = UsePN (mkPN "Rancho Cucamonga") ;
+  Countries_TT_cities_Port_of_Spain = UsePN (mkPN "Port-of-Spain") ;
+  Countries_R_provinces_Murmanskayaoblast_cities_Murmansk = UsePN (mkPN "Murmansk") ;
+  Seas_PacificOcean = UsePN (mkPN "Pacific Ocean") ;
+  Countries_AND_cities_AndorralaVella = UsePN (mkPN "Andorra la Vella") ;
+  Countries_USA_provinces_Washington_cities_Olympia = UsePN (mkPN "Olympia") ;
+  Countries_AUS_provinces_Tasmania_cities_Hobart = UsePN (mkPN "Hobart") ;
+  Countries_IR_provinces_Mazandaran = UsePN (mkPN "Mazandaran") ;
+  Islands_Lundy = UsePN (mkPN "Lundy") ;
+  Countries_MEX_provinces_Colima = UsePN (mkPN "Colima") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Reutlingen = UsePN (mkPN "Reutlingen") ;
+  Countries_USA_provinces_Oklahoma_cities_OklahomaCity = UsePN (mkPN "Oklahoma City") ;
+  Countries_CDN_provinces_Ontario_cities_Hamilton = UsePN (mkPN "Hamilton") ;
+  Countries_I_provinces_Campania = UsePN (mkPN "Campania") ;
+  Countries_E_provinces_BasqueCountry_cities_VitoriaGasteiz = UsePN (mkPN "Vitoria Gasteiz") ;
+  Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolski = UsePN (mkPN "Gorzow Wielkopolski") ;
+  Countries_RI_cities_BandaAceh = UsePN (mkPN "Banda Aceh") ;
+  Islands_SantaMaria = UsePN (mkPN "Santa Maria") ;
+  Countries_KAZ_provinces_Almaty_munic = UsePN (mkPN "Almaty (munic.)") ;
+  Countries_KN_cities_Basseterre = UsePN (mkPN "Basseterre") ;
+  Countries_EAK_provinces_NorthEastern_cities_Garissa = UsePN (mkPN "Garissa") ;
+  Countries_IND_provinces_Rajasthan_cities_Bikaner = UsePN (mkPN "Bikaner") ;
+  Countries_TJ_provinces_Jilin_cities_Baicheng = UsePN (mkPN "Baicheng") ;
+  Countries_GB_provinces_Lincolnshire = UsePN (mkPN "Lincolnshire") ;
+  Countries_CH_provinces_BS_cities_Basel = UsePN (mkPN "Basel") ;
+  Countries_MEX_provinces_BajaCaliforniaSur_cities_LaPaz = UsePN (mkPN "La Paz") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_Novokuznetsk = UsePN (mkPN "Novokuznetsk") ;
+  Countries_BR_provinces_Bahia_cities_Jequie = UsePN (mkPN "Jequie") ;
+  Countries_USA_provinces_Florida_cities_Clearwater = UsePN (mkPN "Clearwater") ;
+  Countries_GB_provinces_Bridgend_cities_Bridgend = UsePN (mkPN "Bridgend") ;
+  Countries_KAZ_provinces_OngtustikQazaqstan_cities_Shymkent = UsePN (mkPN "Shymkent") ;
+  Countries_MAL_provinces_Pahang_cities_Kuantan = UsePN (mkPN "Kuantan") ;
+  Countries_KAZ_provinces_Torghay = UsePN (mkPN "Torghay") ;
+  Countries_UA_provinces_Krym_cities_Sevastopol = UsePN (mkPN "Sevastopol") ;
+  Countries_USA_provinces_Florida_cities_Tampa = UsePN (mkPN "Tampa") ;
+  Deserts_Karakum = UsePN (mkPN "Karakum") ;
+  Islands_BaffinIsland = UsePN (mkPN "Baffin Island") ;
+  Countries_R_provinces_Moskovskayaoblast = UsePN (mkPN "Moskovskaya oblast") ;
+  Mountains_Citlaltepetl = UsePN (mkPN "Citlaltepetl") ;
+  Countries_RSA_provinces_NorthWest_cities_Mmabatho = UsePN (mkPN "Mmabatho") ;
+  Countries_KAZ_provinces_Qyzylorda_cities_Qyzylorda = UsePN (mkPN "Qyzylorda") ;
+  Countries_PL_provinces_Lomzynskie = UsePN (mkPN "Lomzynskie") ;
+  Countries_CH_provinces_GL_cities_Glarus = UsePN (mkPN "Glarus") ;
+  Organizations_EADB = UsePN (mkPN "East African Development Bank") ;
+  Countries_cid_cia_Juan_de_Nova_Island = UsePN (mkPN "Juan de Nova Island") ;
+  Countries_S_provinces_Jonkoping = UsePN (mkPN "Jonkoping") ;
+  Countries_RC_provinces_Yunlin = UsePN (mkPN "Yunlin") ;
+  Countries_PL_provinces_Torunskie = UsePN (mkPN "Torunskie") ;
+  Countries_H_provinces_Miskolc_munic = UsePN (mkPN "Miskolc (munic.)") ;
+  Countries_USA_provinces_Texas_cities_Garland = UsePN (mkPN "Garland") ;
+  Countries_IRQ_provinces_AdTamim_cities_Kirkuk = UsePN (mkPN "Kirkuk") ;
+  Rivers_Onon = UsePN (mkPN "Onon") ;
+  Countries_SLO_cities_Ljubljana = UsePN (mkPN "Ljubljana") ;
+  Countries_BD_cities_Barisal = UsePN (mkPN "Barisal") ;
+  Countries_USA_provinces_Texas_cities_Dallas = UsePN (mkPN "Dallas") ;
+  Countries_FSM_cities_Kolonia = UsePN (mkPN "Kolonia") ;
+  Countries_I_provinces_Veneto_cities_Vicenza = UsePN (mkPN "Vicenza") ;
+  Countries_YV_provinces_Barinas_cities_Barinas = UsePN (mkPN "Barinas") ;
+  Rivers_Zaire = UsePN (mkPN "Zaire") ;
+  Countries_R_provinces_Arkhangelskayaoblast_cities_Arkhangelsk = UsePN (mkPN "Arkhangelsk") ;
+  Countries_NL_provinces_Friesland_cities_Leeuwarden = UsePN (mkPN "Leeuwarden") ;
+  Rivers_Djuba = UsePN (mkPN "Djuba") ;
+  Countries_USA_provinces_California_cities_Corona = UsePN (mkPN "Corona") ;
+  Countries_SF_provinces_Vaasa = UsePN (mkPN "Vaasa") ;
+  Countries_CO_provinces_Vaupes_cities_Mitu = UsePN (mkPN "Mitu") ;
+  Countries_PK_cities_Sialkot = UsePN (mkPN "Sialkot") ;
+  Lakes_LakeAlbert = UsePN (mkPN "Lake Albert") ;
+  Countries_TR_provinces_Bursa = UsePN (mkPN "Bursa") ;
+  Countries_S_provinces_Vastmanland_cities_Vasteras = UsePN (mkPN "Vasteras") ;
+  Countries_R_provinces_Rep_ofAdygeya_cities_Maykop = UsePN (mkPN "Maykop") ;
+  Countries_R_provinces_Lipetskayaoblast_cities_Lipetsk = UsePN (mkPN "Lipetsk") ;
+  Countries_USA_provinces_RhodeIsland_cities_Providence = UsePN (mkPN "Providence") ;
+  Countries_PE_provinces_Piura_cities_Piura = UsePN (mkPN "Piura") ;
+  Countries_TJ_provinces_Sichuan_cities_Chongqing = UsePN (mkPN "Chongqing") ;
+  Countries_CH_provinces_GR = UsePN (mkPN "GR") ;
+  Countries_IRQ_provinces_AlBasrah = UsePN (mkPN "Al Basrah") ;
+  Countries_CH_provinces_JU = UsePN (mkPN "JU") ;
+  Countries_CH_provinces_VS = UsePN (mkPN "VS") ;
+  Countries_IRQ_provinces_Irbil = UsePN (mkPN "Irbil") ;
+  Countries_WAN_cities_Iwo = UsePN (mkPN "Iwo") ;
+  Countries_VN_provinces_NorthCentralCoast = UsePN (mkPN "North Central Coast") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Oberhausen = UsePN (mkPN "Oberhausen") ;
+  Countries_TM_provinces_Mary = UsePN (mkPN "Mary") ;
+  Countries_BD_cities_Jamalpur = UsePN (mkPN "Jamalpur") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Shihezi = UsePN (mkPN "Shihezi") ;
+  Countries_MOC_provinces_Zambezia = UsePN (mkPN "Zambezia") ;
+  Countries_BR_provinces_SaoPaulo_cities_PresidentePrudente = UsePN (mkPN "Presidente Prudente") ;
+  Countries_TJ_provinces_Jiangxi_cities_Pingxiang = UsePN (mkPN "Pingxiang") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_RostovnoDonu = UsePN (mkPN "Rostov no Donu") ;
+  Countries_BR_provinces_RioGrandedoSul = UsePN (mkPN "Rio Grande do Sul") ;
+  Countries_USA_provinces_California_cities_Anaheim = UsePN (mkPN "Anaheim") ;
+  Countries_ET_provinces_ElQalubiya_cities_ShubraelKheima = UsePN (mkPN "Shubra el Kheima") ;
+  Countries_SF_provinces_Pohjols_Karjala_cities_Joensuu = UsePN (mkPN "Joensuu") ;
+  Countries_R_provinces_Krasnoyarskiykray = UsePN (mkPN "Krasnoyarskiy kray") ;
+  Countries_USA_provinces_Maine_cities_Augusta = UsePN (mkPN "Augusta") ;
+  Countries_BR_provinces_Para = UsePN (mkPN "Para") ;
+  Countries_BR_provinces_SaoPaulo_cities_AparecidadeGoiania = UsePN (mkPN "Aparecida de Goiania") ;
+  Countries_SK_cities_Bratislava = UsePN (mkPN "Bratislava") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Beian = UsePN (mkPN "Beian") ;
+  Organizations_ESA = UsePN (mkPN "European Space Agency") ;
+  Countries_cid_cia_Faroe_Islands = UsePN (mkPN "Faroe Islands") ;
+  Countries_CH_provinces_AG_cities_Aarau = UsePN (mkPN "Aarau") ;
+  Organizations_MekongGroup = UsePN (mkPN "ASEAN-Mekong Basin Development Group") ;
+  Countries_IR_provinces_Fars_cities_Shiraz = UsePN (mkPN "Shiraz") ;
+  Islands_Fuerteventura = UsePN (mkPN "Fuerteventura") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Qiqihar = UsePN (mkPN "Qiqihar") ;
+  Countries_cid_cia_Macau = UsePN (mkPN "Macau") ;
+  Countries_MEX_provinces_SanLuisPotosi_cities_SanLuisPotosi = UsePN (mkPN "San Luis Potosi") ;
+  Countries_J_provinces_Ishikawa_cities_Kanazawa = UsePN (mkPN "Kanazawa") ;
+  Countries_cid_cia_Wake_Island = UsePN (mkPN "Wake Island") ;
+  Countries_SA_cities_Riyadh = UsePN (mkPN "Riyadh") ;
+  Organizations_UN = UsePN (mkPN "United Nations") ;
+  Countries_E_provinces_Catalonia_cities_Baracaldo = UsePN (mkPN "Baracaldo") ;
+  Countries_RSA_provinces_KwazuluNatal = UsePN (mkPN "Kwazulu Natal") ;
+  Countries_ETH_cities_BahirDar = UsePN (mkPN "Bahir Dar") ;
+  Countries_CDN_provinces_Ontario_cities_NorthYork = UsePN (mkPN "North York") ;
+  Countries_MEX_provinces_Guanajuato_cities_Salamanca = UsePN (mkPN "Salamanca") ;
+  Lakes_LakeAbaya = UsePN (mkPN "Lake Abaya") ;
+  Countries_RO_provinces_Alba = UsePN (mkPN "Alba") ;
+  Countries_Z_provinces_Luapula_cities_Mansa = UsePN (mkPN "Mansa") ;
+  Countries_TJ_provinces_Jiangsu_cities_Lianyungang = UsePN (mkPN "Lianyungang") ;
+  Countries_KAZ_provinces_Qostanay = UsePN (mkPN "Qostanay") ;
+  Countries_RO_provinces_Bacau_cities_Bacau = UsePN (mkPN "Bacau") ;
+  Countries_CDN_provinces_NovaScotia = UsePN (mkPN "Nova Scotia") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Bielefeld = UsePN (mkPN "Bielefeld") ;
+  Countries_CDN_provinces_Ontario_cities_Nepean = UsePN (mkPN "Nepean") ;
+  Islands_Kiribati = UsePN (mkPN "Kiribati") ;
+  Countries_N_provinces_Oppland = UsePN (mkPN "Oppland") ;
+  Organizations_NC = UsePN (mkPN "Nordic Council") ;
+  Countries_USA_provinces_California_cities_SanBernardino = UsePN (mkPN "San Bernardino") ;
+  Countries_IR_provinces_Khuzestan = UsePN (mkPN "Khuzestan") ;
+  Rivers_Pjandsh = UsePN (mkPN "Pjandsh") ;
+  Countries_A_provinces_LowerAustria_cities_St_Polten = UsePN (mkPN "St. Polten") ;
+  Countries_CH_provinces_SH_cities_Schaffhausen = UsePN (mkPN "Schaffhausen") ;
+  Countries_E_provinces_Asturias = UsePN (mkPN "Asturias") ;
+  Countries_KWT_cities_Kuwait = UsePN (mkPN "Kuwait") ;
+  Countries_PL_provinces_Nowosadeckie = UsePN (mkPN "Nowosadeckie") ;
+  Countries_ET_provinces_ElMinufiya_cities_ShibinelKom = UsePN (mkPN "Shibin el Kom") ;
+  Countries_J_provinces_Fukui_cities_Fukui = UsePN (mkPN "Fukui") ;
+  Countries_EAK_provinces_Eastern_cities_Machakos = UsePN (mkPN "Machakos") ;
+  Countries_GB_provinces_Tayside = UsePN (mkPN "Tayside") ;
+  Countries_USA_provinces_Iowa_cities_CedarRapids = UsePN (mkPN "Cedar Rapids") ;
+  Countries_RO_provinces_Alba_cities_AlbaIulia = UsePN (mkPN "Alba Iulia") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Mudanjiang = UsePN (mkPN "Mudanjiang") ;
+  Countries_ANG_provinces_CuanzaSul = UsePN (mkPN "Cuanza Sul") ;
+  Countries_J_provinces_Fukuoka = UsePN (mkPN "Fukuoka") ;
+  Countries_MEX_provinces_Coahuila_cities_Saltillo = UsePN (mkPN "Saltillo") ;
+  Rivers_Don = UsePN (mkPN "Don") ;
+  Countries_N_provinces_Oslo = UsePN (mkPN "Oslo") ;
+  Countries_CR_provinces_Alajuela = UsePN (mkPN "Alajuela") ;
+  Countries_R_provinces_Rep_ofKarelia_cities_Petrozavodsk = UsePN (mkPN "Petrozavodsk") ;
+  Countries_BR_provinces_SaoPaulo_cities_Itu = UsePN (mkPN "Itu") ;
+  Countries_WAN_cities_Oka = UsePN (mkPN "Oka") ;
+  Countries_PL_provinces_Krosnienskie_cities_Krosno = UsePN (mkPN "Krosno") ;
+  Countries_USA_provinces_Maryland = UsePN (mkPN "Maryland") ;
+  Countries_GB_provinces_Essex_cities_Chelmsford = UsePN (mkPN "Chelmsford") ;
+  Countries_ZRE_provinces_Kinshasa = UsePN (mkPN "Kinshasa") ;
+  Countries_ZRE_provinces_Equateur = UsePN (mkPN "Equateur") ;
+  Countries_TR_provinces_Canakkale_cities_Canakkale = UsePN (mkPN "Canakkale") ;
+  Deserts_ErgRebiana = UsePN (mkPN "Erg Rebiana") ;
+  Countries_IND_provinces_JammuandKashmir_cities_Jammu = UsePN (mkPN "Jammu") ;
+  Countries_S_provinces_Jamtland = UsePN (mkPN "Jamtland") ;
+  Countries_TJ_provinces_Shaanxi_cities_Yanan = UsePN (mkPN "Yanan") ;
+  Countries_E_provinces_CastileLaMancha_cities_Toledo = UsePN (mkPN "Toledo") ;
+  Countries_RO_provinces_Brasov = UsePN (mkPN "Brasov") ;
+  Countries_TJ_provinces_Hunan_cities_Changde = UsePN (mkPN "Changde") ;
+  Islands_Jersey = UsePN (mkPN "Jersey") ;
+  Countries_GH_cities_Tamale = UsePN (mkPN "Tamale") ;
+  Countries_ET_provinces_Matruh = UsePN (mkPN "Matruh") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_BergischGladbach = UsePN (mkPN "Bergisch Gladbach") ;
+  Countries_WAN_cities_Ilorin = UsePN (mkPN "Ilorin") ;
+  Countries_BR_provinces_Bahia_cities_Salvador = UsePN (mkPN "Salvador") ;
+  Seas_IrishSea = UsePN (mkPN "Irish Sea") ;
+  Countries_ES_cities_Soyapango = UsePN (mkPN "Soyapango") ;
+  Countries_R_provinces_Permskayaoblast_cities_Perm = UsePN (mkPN "Perm") ;
+  Organizations_IOM = UsePN (mkPN "International Organization for Migration") ;
+  Organizations_G_30 = UsePN (mkPN "Group of 30") ;
+  Countries_IRQ_provinces_Karbala_cities_Karbala = UsePN (mkPN "Karbala") ;
+  Countries_RC_provinces_Tainan_munic = UsePN (mkPN "Tainan (munic.)") ;
+  Islands_Gomera = UsePN (mkPN "Gomera") ;
+  Countries_GB_provinces_Bedfordshire_cities_Luton = UsePN (mkPN "Luton") ;
+  Continents_Africa = UsePN (mkPN "Africa") ;
+  Countries_MOC_provinces_Tete_cities_Tete = UsePN (mkPN "Tete") ;
+  Countries_PE_provinces_Ucayali_cities_Pucallpa = UsePN (mkPN "Pucallpa") ;
+  Countries_USA_provinces_California_cities_Oxnard = UsePN (mkPN "Oxnard") ;
+  Countries_CO_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
+  Countries_IND_provinces_Maharashtra_cities_Amravati = UsePN (mkPN "Amravati") ;
+  Countries_SN_provinces_Tambacounda_cities_Tambacounda = UsePN (mkPN "Tambacounda") ;
+  Countries_B_provinces_Hainaut_cities_Charleroi = UsePN (mkPN "Charleroi") ;
+  Countries_GB_provinces_Kent_cities_RochesteruponMedway = UsePN (mkPN "Rochester upon Medway") ;
+  Countries_WAN_cities_Abuja = UsePN (mkPN "Abuja") ;
+  Countries_USA_provinces_Arizona_cities_Phoenix = UsePN (mkPN "Phoenix") ;
+  Countries_USA_provinces_NewYork_cities_Albany = UsePN (mkPN "Albany") ;
+  Countries_TAD_provinces_Dushanbe_munic_cities_Dushanbe = UsePN (mkPN "Dushanbe") ;
+  Countries_BR_provinces_MinasGerais_cities_Barbacena = UsePN (mkPN "Barbacena") ;
+  Countries_CO_provinces_Cauca = UsePN (mkPN "Cauca") ;
+  Countries_GB_provinces_Kent_cities_TunbridgeWells = UsePN (mkPN "Tunbridge Wells") ;
+  Countries_NOK_cities_Kusong = UsePN (mkPN "Kusong") ;
+  Countries_TR_provinces_Amasya = UsePN (mkPN "Amasya") ;
+  Countries_BR_provinces_MinasGerais_cities_BeloHorizonte = UsePN (mkPN "Belo Horizonte") ;
+  Countries_MH_cities_Majuro = UsePN (mkPN "Majuro") ;
+  Countries_TJ_provinces_Hebei_cities_Tangshan = UsePN (mkPN "Tangshan") ;
+  Countries_BR_provinces_Pernambuco_cities_VitoriadeSantoAntao = UsePN (mkPN "Vitoria de Santo Antao") ;
+  Countries_PL_provinces_Skierniewickie_cities_Skierniewice = UsePN (mkPN "Skierniewice") ;
+  Countries_UA_provinces_Donetska = UsePN (mkPN "Donetska") ;
+  Countries_ES_provinces_LaLibertad_cities_NuevaSanSalvador = UsePN (mkPN "Nueva San Salvador") ;
+  Countries_GB_provinces_Central = UsePN (mkPN "Central") ;
+  Countries_SF_provinces_Mikkeli = UsePN (mkPN "Mikkeli") ;
+  Countries_TR_provinces_Samsun_cities_Samsun = UsePN (mkPN "Samsun") ;
+  Countries_UAE_provinces_AlFujayrah = UsePN (mkPN "Al Fujayrah") ;
+  Countries_GB_provinces_HerefordandWorcester_cities_Worcester = UsePN (mkPN "Worcester") ;
+  Countries_cid_cia_Gibraltar_cities_Gibraltar = UsePN (mkPN "Gibraltar") ;
+  Countries_PE_provinces_Piura_cities_Talara = UsePN (mkPN "Talara") ;
+  Countries_GB_provinces_Surrey_cities_Reigate = UsePN (mkPN "Reigate") ;
+  Countries_MOC_provinces_Maputo_cities_Nacala = UsePN (mkPN "Nacala") ;
+  Organizations_OSCE = UsePN (mkPN "Organization for Security and Cooperation in Europe") ;
+  Countries_J_provinces_Kyoto = UsePN (mkPN "Kyoto") ;
+  Countries_HCA_provinces_Choluteca = UsePN (mkPN "Choluteca") ;
+  Countries_RA_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
+  Countries_YV_provinces_Anzoategui = UsePN (mkPN "Anzoategui") ;
+  Countries_GB_provinces_Wiltshire_cities_Trowbridge = UsePN (mkPN "Trowbridge") ;
+  Countries_D_provinces_Berlin_cities_Berlin = UsePN (mkPN "Berlin") ;
+  Countries_TR_provinces_Bursa_cities_Bursa = UsePN (mkPN "Bursa") ;
+  Lakes_LakePowell = UsePN (mkPN "Lake Powell") ;
+  Countries_PE_provinces_Moquegua_cities_Moquegua = UsePN (mkPN "Moquegua") ;
+  Countries_USA_provinces_California_cities_LongBeach = UsePN (mkPN "Long Beach") ;
+  Countries_MEX_provinces_Michoacan_cities_Zamora = UsePN (mkPN "Zamora") ;
+  Countries_BR_provinces_SaoPaulo_cities_Barretos = UsePN (mkPN "Barretos") ;
+  Countries_UZB_provinces_Samarqand = UsePN (mkPN "Samarqand") ;
+  Countries_MYA_provinces_Kachin_cities_Myitkyina = UsePN (mkPN "Myitkyina") ;
+  Countries_TR_cities_Icel = UsePN (mkPN "Icel") ;
+  Countries_J_provinces_Oita = UsePN (mkPN "Oita") ;
+  Countries_D_provinces_Niedersachsen_cities_Salzgitter = UsePN (mkPN "Salzgitter") ;
+  Countries_KAZ_provinces_Zhambyl_cities_Zhambyl = UsePN (mkPN "Zhambyl") ;
+  Countries_TR_provinces_Aydin = UsePN (mkPN "Aydin") ;
+  Countries_N_provinces_Hedmark = UsePN (mkPN "Hedmark") ;
+  Countries_GB_provinces_Staffordshire_cities_Stafford = UsePN (mkPN "Stafford") ;
+  Countries_USA_provinces_California_cities_ThousandOaks = UsePN (mkPN "Thousand Oaks") ;
+  Countries_TJ_provinces_Shandong_cities_Weifang = UsePN (mkPN "Weifang") ;
+  Countries_EAT_provinces_Tanga = UsePN (mkPN "Tanga") ;
+  Countries_ANG_provinces_Cabinda = UsePN (mkPN "Cabinda") ;
+  Lakes_LakeHuron = UsePN (mkPN "Lake Huron") ;
+  Countries_NL_provinces_NoordHolland_cities_Hilversum = UsePN (mkPN "Hilversum") ;
+  Countries_IND_provinces_JammuandKashmir_cities_Srinagar = UsePN (mkPN "Srinagar") ;
+  Rivers_WebiSchebeli = UsePN (mkPN "Webi Schebeli") ;
+  Organizations_GCC = UsePN (mkPN "Gulf Cooperation Council") ;
+  Countries_MEX_cities_SoledaddeGracianoSanchez = UsePN (mkPN "Soledad de Graciano Sanchez") ;
+  Countries_BR_provinces_Paraiba_cities_JoaoPessoa = UsePN (mkPN "Joao Pessoa") ;
+  Countries_J_provinces_Tokyo_cities_Tokyo = UsePN (mkPN "Tokyo") ;
+  Countries_UA_provinces_Rivnenska_cities_Rivne = UsePN (mkPN "Rivne") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Urumqi = UsePN (mkPN "Urumqi") ;
+  Countries_TR_provinces_Kutahya_cities_Kutahya = UsePN (mkPN "Kutahya") ;
+  Countries_THA_provinces_Trat = UsePN (mkPN "Trat") ;
+  Countries_COM_cities_Moroni = UsePN (mkPN "Moroni") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Noginsk = UsePN (mkPN "Noginsk") ;
+  Countries_WAN_cities_Ondo = UsePN (mkPN "Ondo") ;
+  Countries_USA_provinces_Montana = UsePN (mkPN "Montana") ;
+  Countries_J_provinces_Hyogo = UsePN (mkPN "Hyogo") ;
+  Countries_E_provinces_Valencia_cities_Valencia = UsePN (mkPN "Valencia") ;
+  Countries_IRQ_provinces_DhiQar = UsePN (mkPN "Dhi Qar") ;
+  Countries_TJ_provinces_Guizhou_cities_Anshun = UsePN (mkPN "Anshun") ;
+  Countries_cid_cia_Norfolk_Island_cities_Kingston = UsePN (mkPN "Kingston") ;
+  Countries_CH_provinces_ZH = UsePN (mkPN "ZH") ;
+  Islands_LaPalma = UsePN (mkPN "La Palma") ;
+  Countries_VN_cities_LongXuyen = UsePN (mkPN "Long Xuyen") ;
+  Countries_RC_provinces_Kaohsiung = UsePN (mkPN "Kaohsiung") ;
+  Countries_E_provinces_Madrid_cities_Leganes = UsePN (mkPN "Leganes") ;
+  Countries_PE_provinces_Loreto = UsePN (mkPN "Loreto") ;
+  Countries_UA_provinces_Chernihivska = UsePN (mkPN "Chernihivska") ;
+  Countries_RC_provinces_Tainan_munic_cities_Tainan = UsePN (mkPN "Tainan") ;
+  Countries_GB_provinces_Highland_cities_Inverness = UsePN (mkPN "Inverness") ;
+  Mountains_Pulog = UsePN (mkPN "Pulog") ;
+  Countries_R_provinces_Rep_ofMariyEl = UsePN (mkPN "Rep. of Mariy El") ;
+  Countries_TR_provinces_Karaman_cities_Karaman = UsePN (mkPN "Karaman") ;
+  Countries_TR_provinces_Afyon = UsePN (mkPN "Afyon") ;
+  Countries_R_provinces_Ryazanskayaoblast = UsePN (mkPN "Ryazanskaya oblast") ;
+  Islands_IsleofMan = UsePN (mkPN "Isle of Man") ;
+  Countries_J_provinces_Ehime = UsePN (mkPN "Ehime") ;
+  Countries_GQ_cities_Sta_Isabel = UsePN (mkPN "Sta. Isabel") ;
+  Countries_CH_provinces_ZG_cities_Zug = UsePN (mkPN "Zug") ;
+  Countries_PL_provinces_Zielonogorskie = UsePN (mkPN "Zielonogorskie") ;
+  Countries_A_provinces_Salzburg_cities_Salzburg = UsePN (mkPN "Salzburg") ;
+  Countries_MA_provinces_CentreSud = UsePN (mkPN "Centre Sud") ;
+  Countries_VN_cities_CanTho = UsePN (mkPN "Can Tho") ;
+  Countries_CH_provinces_LU_cities_Luzern = UsePN (mkPN "Luzern") ;
+  Countries_IND_provinces_AndhraPradesh = UsePN (mkPN "Andhra Pradesh") ;
+  Countries_NL_provinces_NoordBrabant_cities_sHertogenbosch = UsePN (mkPN "s Hertogenbosch") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Kashi = UsePN (mkPN "Kashi") ;
+  Countries_CO_provinces_Cesar_cities_Valledupar = UsePN (mkPN "Valledupar") ;
+  Countries_IND_provinces_Punjab_cities_Amritsar = UsePN (mkPN "Amritsar") ;
+  Countries_UA_provinces_Cherkaska = UsePN (mkPN "Cherkaska") ;
+  Countries_R_provinces_Rep_ofMordovia_cities_Saransk = UsePN (mkPN "Saransk") ;
+  Countries_ET_provinces_ElQahira_munic_cities_Helwan = UsePN (mkPN "Helwan") ;
+  Countries_C_provinces_SantiagodeCuba = UsePN (mkPN "Santiago de Cuba") ;
+  Deserts_ErgIgidi = UsePN (mkPN "Erg Igidi") ;
+  Countries_GB_provinces_Grampian = UsePN (mkPN "Grampian") ;
+  Countries_GR_provinces_Kriti = UsePN (mkPN "Kriti") ;
+  Countries_GB_provinces_Gloucestershire = UsePN (mkPN "Gloucestershire") ;
+  Countries_S_provinces_Stockholm_cities_Stockholm = UsePN (mkPN "Stockholm") ;
+  Islands_Vulcano = UsePN (mkPN "Vulcano") ;
+  Countries_PL_provinces_Zamojskie = UsePN (mkPN "Zamojskie") ;
+  Countries_BR_provinces_EspiritoSanto = UsePN (mkPN "Espirito Santo") ;
+  Countries_J_provinces_Yamagata = UsePN (mkPN "Yamagata") ;
+  Countries_F_provinces_Bourgogne_cities_Dijon = UsePN (mkPN "Dijon") ;
+  Countries_PA_provinces_ComarcadeSanBlas = UsePN (mkPN "Comarca de San Blas") ;
+  Countries_EAT_provinces_Kilimanjaro = UsePN (mkPN "Kilimanjaro") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Duisburg = UsePN (mkPN "Duisburg") ;
+  Organizations_IMO = UsePN (mkPN "International Maritime Organization") ;
+  Countries_TR_provinces_Batman_cities_Batman = UsePN (mkPN "Batman") ;
+  Organizations_CCC = UsePN (mkPN "Customs Cooperation Council") ;
+  Countries_UA_provinces_Mykolayivska = UsePN (mkPN "Mykolayivska") ;
+  Countries_NOK_cities_Kaesong = UsePN (mkPN "Kaesong") ;
+  Countries_MEX_provinces_Aguascalientes_cities_Aguascalientes = UsePN (mkPN "Aguascalientes") ;
+  Countries_J_provinces_Gifu_cities_Gifu = UsePN (mkPN "Gifu") ;
+  Organizations_UNEP = UsePN (mkPN "United Nations Environment Program") ;
+  Countries_cid_cia_Bermuda_cities_Hamilton = UsePN (mkPN "Hamilton") ;
+  Countries_EAK_provinces_Nairobi = UsePN (mkPN "Nairobi") ;
+  Countries_VN_provinces_LongAn = UsePN (mkPN "Long An") ;
+  Countries_PL_provinces_Suwalskie = UsePN (mkPN "Suwalskie") ;
+  Countries_E_provinces_BasqueCountry_cities_Bilbao = UsePN (mkPN "Bilbao") ;
+  Countries_PL_cities_JastrzebieZdroj = UsePN (mkPN "Jastrzebie Zdroj") ;
+  Countries_MEX_cities_Llave = UsePN (mkPN "Llave") ;
+  Countries_CDN_provinces_Alberta_cities_Calgary = UsePN (mkPN "Calgary") ;
+  Countries_R_provinces_Bryanskayaoblast = UsePN (mkPN "Bryanskaya oblast") ;
+  Countries_USA_provinces_Kansas_cities_OverlandPark = UsePN (mkPN "Overland Park") ;
+  Countries_ANG_provinces_Benguela = UsePN (mkPN "Benguela") ;
+  Countries_MEX_provinces_Guanajuato = UsePN (mkPN "Guanajuato") ;
+  Countries_cid_cia_Greenland_cities_Nuuk = UsePN (mkPN "Nuuk") ;
+  Islands_Lewis = UsePN (mkPN "Lewis") ;
+  Countries_J_provinces_Kagawa = UsePN (mkPN "Kagawa") ;
+  Countries_E_provinces_Cantabria = UsePN (mkPN "Cantabria") ;
+  Countries_J_provinces_Fukuoka_cities_Fukuoka = UsePN (mkPN "Fukuoka") ;
+  Countries_TR_provinces_Zonguldak_cities_Karabuk = UsePN (mkPN "Karabuk") ;
+  Islands_Skye = UsePN (mkPN "Skye") ;
+  Countries_BR_provinces_Roraima = UsePN (mkPN "Roraima") ;
+  Countries_THA_provinces_ChiangMai = UsePN (mkPN "Chiang Mai") ;
+  Countries_BD_cities_Savar = UsePN (mkPN "Savar") ;
+  Countries_CO_provinces_ValledeCauca_cities_Buenaventura = UsePN (mkPN "Buenaventura") ;
+  Countries_BD_cities_Dhaka = UsePN (mkPN "Dhaka") ;
+  Countries_CH_provinces_GE_cities_Geneva = UsePN (mkPN "Geneva") ;
+  Countries_IR_provinces_Semnan = UsePN (mkPN "Semnan") ;
+  Countries_PE_provinces_Ayacucho = UsePN (mkPN "Ayacucho") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Hegang = UsePN (mkPN "Hegang") ;
+  Countries_I_provinces_Abruzzo_cities_LAquila = UsePN (mkPN "LAquila") ;
+  Rivers_Drin = UsePN (mkPN "Drin") ;
+  Countries_RO_provinces_Buzau_cities_Buzau = UsePN (mkPN "Buzau") ;
+  Countries_YV_provinces_Miranda_cities_Petare = UsePN (mkPN "Petare") ;
+  Countries_NZ_cities_Auckland = UsePN (mkPN "Auckland") ;
+  Countries_THA_provinces_Pattani = UsePN (mkPN "Pattani") ;
+  Countries_RSA_provinces_Gauteng_cities_Johannesburg = UsePN (mkPN "Johannesburg") ;
+  Countries_ZW_cities_Harare = UsePN (mkPN "Harare") ;
+  Countries_VN_cities_NhaTrang = UsePN (mkPN "Nha Trang") ;
+  Countries_IR_provinces_Markazi_cities_Arak = UsePN (mkPN "Arak") ;
+  Countries_GB_provinces_Anglesey_cities_Llangefni = UsePN (mkPN "Llangefni") ;
+  Countries_PL_provinces_Rzeszowskie_cities_Rzeszow = UsePN (mkPN "Rzeszow") ;
+  Countries_F_provinces_LanguedocRousillon_cities_Perpignan = UsePN (mkPN "Perpignan") ;
+  Countries_R_provinces_Smolenskayaoblast = UsePN (mkPN "Smolenskaya oblast") ;
+  Countries_NCA_cities_Noumea = UsePN (mkPN "Noumea") ;
+  Countries_CDN_provinces_Quebec_cities_Quebec = UsePN (mkPN "Quebec") ;
+  Countries_UZB_provinces_Surkhondare = UsePN (mkPN "Surkhondare") ;
+  Countries_GB_provinces_Suffolk = UsePN (mkPN "Suffolk") ;
+  Countries_THA_provinces_UbonRatchathani = UsePN (mkPN "Ubon Ratchathani") ;
+  Countries_RA_provinces_SantaCruz = UsePN (mkPN "Santa Cruz") ;
+  Countries_BR_provinces_SaoPaulo_cities_Indaiatuba = UsePN (mkPN "Indaiatuba") ;
+  Countries_TR_provinces_Trabzon_cities_Trabzon = UsePN (mkPN "Trabzon") ;
+  Countries_S_provinces_Ostergotland_cities_Linkoping = UsePN (mkPN "Linkoping") ;
+  Countries_NL_provinces_ZuidHolland_cities_Rotterdam = UsePN (mkPN "Rotterdam") ;
+  Countries_J_provinces_Fukuoka_cities_Kitakyushu = UsePN (mkPN "Kita kyushu") ;
+  Countries_IND_provinces_Maharashtra_cities_Mumbai = UsePN (mkPN "Mumbai") ;
+  Countries_UA_provinces_Volynska_cities_Lutsk = UsePN (mkPN "Lutsk") ;
+  Countries_CH_provinces_NE_cities_Neuchatel = UsePN (mkPN "Neuchatel") ;
+  Countries_USA_provinces_Tennessee_cities_Knoxville = UsePN (mkPN "Knoxville") ;
+  Countries_cid_cia_Anguilla = UsePN (mkPN "Anguilla") ;
+  Countries_RI_cities_Pekalongan = UsePN (mkPN "Pekalongan") ;
+  Countries_PK_cities_Larkana = UsePN (mkPN "Larkana") ;
+  Countries_GB_provinces_Derbyshire_cities_Derby = UsePN (mkPN "Derby") ;
+  Countries_THA_provinces_SakonNakhon = UsePN (mkPN "Sakon Nakhon") ;
+  Lakes_LakeUrumiyeh = UsePN (mkPN "Lake Urumiyeh") ;
+  Countries_GB_provinces_TyneandWear_cities_NewcastleuponTyne = UsePN (mkPN "Newcastle upon Tyne") ;
+  Countries_R_provinces_Stavropolskykray_cities_Neftekamsk = UsePN (mkPN "Neftekamsk") ;
+  Countries_NL_provinces_Flevoland = UsePN (mkPN "Flevoland") ;
+  Countries_TJ_provinces_Jiangsu_cities_Yizheng = UsePN (mkPN "Yizheng") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Niteroi = UsePN (mkPN "Niteroi") ;
+  Countries_IND_provinces_Karnataka_cities_Bangalore = UsePN (mkPN "Bangalore") ;
+  Countries_R_provinces_Chelyabinskayaoblast_cities_Zlatoust = UsePN (mkPN "Zlatoust") ;
+  Countries_I_provinces_Lombardia_cities_Milan = UsePN (mkPN "Milan") ;
+  Islands_Patmos = UsePN (mkPN "Patmos") ;
+  Lakes_LakeWinnipeg = UsePN (mkPN "Lake Winnipeg") ;
+  Countries_RC_provinces_Chilung_munic_cities_Chilung = UsePN (mkPN "Chilung") ;
+  Countries_H_provinces_KomaromEsztergom = UsePN (mkPN "Komarom Esztergom") ;
+  Countries_IND_provinces_Mizoram_cities_Aijal = UsePN (mkPN "Aijal") ;
+  Countries_HR_cities_Zagreb = UsePN (mkPN "Zagreb") ;
+  Countries_MEX_provinces_NuevoLeon = UsePN (mkPN "Nuevo Leon") ;
+  Countries_GB_provinces_Swansea_cities_Swansea = UsePN (mkPN "Swansea") ;
+  Countries_RC_provinces_Ilan = UsePN (mkPN "Ilan") ;
+  Lakes_LakeTanganjika = UsePN (mkPN "Lake Tanganjika") ;
+  Countries_MEX_provinces_NuevoLeon_cities_SanNicolasdelosGarza = UsePN (mkPN "San Nicolas de los Garza") ;
+  Countries_D_provinces_Brandenburg_cities_Cottbus = UsePN (mkPN "Cottbus") ;
+  Countries_TR_provinces_Kastamonu = UsePN (mkPN "Kastamonu") ;
+  Mountains_PicoDuarte = UsePN (mkPN "Pico Duarte") ;
+  Countries_RA_provinces_SanLuis_cities_SanLuis = UsePN (mkPN "San Luis") ;
+  Countries_RC_provinces_Yunlin_cities_Touliu = UsePN (mkPN "Touliu") ;
+  Countries_GB_provinces_ValeofGlamorgan = UsePN (mkPN "Vale of Glamorgan") ;
+  Countries_WAL_cities_Freetown = UsePN (mkPN "Freetown") ;
+  Countries_SF_provinces_Haeme_cities_Haemeenlinna = UsePN (mkPN "Haemeenlinna") ;
+  Countries_R_provinces_Altayskiykray_cities_Barnaul = UsePN (mkPN "Barnaul") ;
+  Countries_VN_provinces_SocTrang = UsePN (mkPN "Soc Trang") ;
+  Countries_ANG_provinces_LundaNorte_cities_Lucapa = UsePN (mkPN "Lucapa") ;
+  Countries_R_provinces_Volgogradskayaoblast_cities_Kamyshin = UsePN (mkPN "Kamyshin") ;
+  Islands_Kotelnyisland = UsePN (mkPN "Kotelny island") ;
+  Rivers_Seine = UsePN (mkPN "Seine") ;
+  Countries_MAL_provinces_Sarawak_cities_Sibu = UsePN (mkPN "Sibu") ;
+  Organizations_ESCAP = UsePN (mkPN "Economic and Social Commission for Asia and the Pacific") ;
+  Countries_CR_provinces_Alajuela_cities_Alajuela = UsePN (mkPN "Alajuela") ;
+  Countries_TJ_provinces_Tibet = UsePN (mkPN "Tibet") ;
+  Countries_GR_provinces_AnatolikiMakedhoniakaiThraki = UsePN (mkPN "Anatoliki Makedhonia kai Thraki") ;
+  Countries_TR_provinces_Samsun = UsePN (mkPN "Samsun") ;
+  Countries_RSA_cities_Sandton = UsePN (mkPN "Sandton") ;
+  Rivers_Kura = UsePN (mkPN "Kura") ;
+  Countries_MAL_provinces_Selangor_cities_ShahAlam = UsePN (mkPN "Shah Alam") ;
+  Countries_RI_cities_Surabaya = UsePN (mkPN "Surabaya") ;
+  Countries_PA_provinces_Panama_cities_SanMiguelito = UsePN (mkPN "San Miguelito") ;
+  Countries_VN_provinces_LangSon = UsePN (mkPN "Lang Son") ;
+  Countries_TJ_provinces_Hubei_cities_Cangzhou = UsePN (mkPN "Cangzhou") ;
+  Countries_GB_provinces_Essex_cities_SouthendonSea = UsePN (mkPN "Southend on Sea") ;
+  Countries_BR_provinces_Amazonas_cities_Manaus = UsePN (mkPN "Manaus") ;
+  Islands_Palawan = UsePN (mkPN "Palawan") ;
+  Countries_SN_provinces_Thies_cities_Thies = UsePN (mkPN "Thies") ;
+  Countries_MA_provinces_NordOuest = UsePN (mkPN "Nord Ouest") ;
+  Countries_UA_provinces_Chernihivska_cities_Chernihiv = UsePN (mkPN "Chernihiv") ;
+  Countries_TJ_provinces_Zhejiang_cities_Cixi = UsePN (mkPN "Cixi") ;
+  Countries_S_provinces_Kronoberg = UsePN (mkPN "Kronoberg") ;
+  Countries_SUD_provinces_alKhartum_cities_KhartoumNorth = UsePN (mkPN "Khartoum North") ;
+  Countries_TJ_provinces_GuangxiZhuangzu = UsePN (mkPN "Guangxi Zhuangzu") ;
+  Countries_PK_cities_DeraGhaziKhan = UsePN (mkPN "Dera Ghazi Khan") ;
+  Organizations_UNIDO = UsePN (mkPN "United Nations Industrial Development Organization") ;
+  Countries_IL_provinces_Haifa = UsePN (mkPN "Haifa") ;
+  Countries_EAT_provinces_Kagera_cities_Bukoba = UsePN (mkPN "Bukoba") ;
+  Countries_RO_provinces_Covasha = UsePN (mkPN "Covasha") ;
+  Countries_CZ_provinces_Jihomoravsky = UsePN (mkPN "Jihomoravsky") ;
+  Countries_MAL_provinces_NegeriSembilan = UsePN (mkPN "Negeri Sembilan") ;
+  Organizations_CE = UsePN (mkPN "Council of Europe") ;
+  Countries_SF_provinces_Turku_Pori = UsePN (mkPN "Turku-Pori") ;
+  Countries_MA_provinces_Oriental = UsePN (mkPN "Oriental") ;
+  Countries_TR_provinces_Bitlis_cities_Bitlis = UsePN (mkPN "Bitlis") ;
+  Countries_TJ_provinces_Hebei_cities_Zhangjiakou = UsePN (mkPN "Zhangjiakou") ;
+  Countries_B_provinces_Namur_cities_Namur = UsePN (mkPN "Namur") ;
+  Countries_GB_provinces_Berkshire_cities_Bracknell = UsePN (mkPN "Bracknell") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Liuzhou = UsePN (mkPN "Liuzhou") ;
+  Countries_AUS_provinces_WesternAustralia_cities_Albany = UsePN (mkPN "Albany") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Macae = UsePN (mkPN "Macae") ;
+  Countries_H_provinces_Veszprem_cities_Veszprem = UsePN (mkPN "Veszprem") ;
+  Deserts_Trarza = UsePN (mkPN "Trarza") ;
+  Countries_RO_provinces_Neamt = UsePN (mkPN "Neamt") ;
+  Countries_YV_provinces_Lara_cities_Barquisimeto = UsePN (mkPN "Barquisimeto") ;
+  Countries_IL_provinces_TelAviv_cities_TelAviv = UsePN (mkPN "Tel Aviv") ;
+  Countries_MAL_provinces_Selangor_cities_Kelang = UsePN (mkPN "Kelang") ;
+  Countries_CO_provinces_Vaupes = UsePN (mkPN "Vaupes") ;
+  Countries_RO_provinces_Olt_cities_Slatina = UsePN (mkPN "Slatina") ;
+  Countries_MAL_provinces_Johor = UsePN (mkPN "Johor") ;
+  Deserts_Kysylkum = UsePN (mkPN "Kysylkum") ;
+  Countries_MEX_provinces_Puebla_cities_Puebla = UsePN (mkPN "Puebla") ;
+  Countries_RO_provinces_Bihor_cities_Oradea = UsePN (mkPN "Oradea") ;
+  Countries_IR_provinces_ChaharMahaleBakhtiari = UsePN (mkPN "Chahar Mahal e Bakhtiari") ;
+  Organizations_IDB = UsePN (mkPN "Islamic Development Bank") ;
+  Countries_RO_provinces_Timis = UsePN (mkPN "Timis") ;
+  Countries_CO_provinces_Bolivar_cities_Cartagena = UsePN (mkPN "Cartagena") ;
+  Countries_C_provinces_LasTunas = UsePN (mkPN "Las Tunas") ;
+  Countries_ANG_provinces_CuandoCubango = UsePN (mkPN "Cuando Cubango") ;
+  Countries_GB_provinces_Cleveland_cities_Middlesbrough = UsePN (mkPN "Middlesbrough") ;
+  Countries_CO_provinces_SantanderdelSur = UsePN (mkPN "Santander del Sur") ;
+  Countries_R_provinces_Tulskayaoblast = UsePN (mkPN "Tulskaya oblast") ;
+  Countries_CO_provinces_Cesar = UsePN (mkPN "Cesar") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Krefeld = UsePN (mkPN "Krefeld") ;
+  Countries_cid_cia_Howland_Island = UsePN (mkPN "Howland Island") ;
+  Countries_J_provinces_Saga = UsePN (mkPN "Saga") ;
+  Islands_Alicudi = UsePN (mkPN "Alicudi") ;
+  Lakes_LakeNgami = UsePN (mkPN "Lake Ngami") ;
+  Countries_GB_provinces_Merseyside = UsePN (mkPN "Merseyside") ;
+  Countries_YV_provinces_Miranda = UsePN (mkPN "Miranda") ;
+  Countries_B_provinces_Namur = UsePN (mkPN "Namur") ;
+  Countries_UZB_provinces_Nawoiy = UsePN (mkPN "Nawoiy") ;
+  Countries_USA_provinces_Arizona_cities_Glendale = UsePN (mkPN "Glendale") ;
+  Countries_BD_cities_Rajshahi = UsePN (mkPN "Rajshahi") ;
+  Countries_GB_provinces_Durham = UsePN (mkPN "Durham") ;
+  Countries_USA_provinces_Arizona_cities_Chandler = UsePN (mkPN "Chandler") ;
+  Countries_IND_provinces_Kerala_cities_Kozhikode = UsePN (mkPN "Kozhikode") ;
+  Countries_PK_cities_Okara = UsePN (mkPN "Okara") ;
+  Countries_RO_provinces_BistritaNasaud = UsePN (mkPN "Bistrita Nasaud") ;
+  Countries_E_provinces_Aragon = UsePN (mkPN "Aragon") ;
+  Countries_MAL_provinces_Perak_cities_Ipoh = UsePN (mkPN "Ipoh") ;
+  Countries_GB_provinces_Strathclyde = UsePN (mkPN "Strathclyde") ;
+  Countries_CAM_provinces_Adamaoua_cities_Ngaoundere = UsePN (mkPN "Ngaoundere") ;
+  Countries_C_provinces_Holguin = UsePN (mkPN "Holguin") ;
+  Countries_N_provinces_Oestfold_cities_Moss = UsePN (mkPN "Moss") ;
+  Countries_E_provinces_Valencia_cities_CastellondelaPlana = UsePN (mkPN "Castellon de la Plana") ;
+  Countries_RA_provinces_Neuquen = UsePN (mkPN "Neuquen") ;
+  Countries_IRQ_provinces_AlAnbar = UsePN (mkPN "Al Anbar") ;
+  Countries_RI_cities_TebingTinggi = UsePN (mkPN "Tebing Tinggi") ;
+  Countries_GB_provinces_Merseyside_cities_SaintHelens = UsePN (mkPN "Saint Helens") ;
+  Deserts_Tanesruft = UsePN (mkPN "Tanesruft") ;
+  Countries_SUD_provinces_alWusta = UsePN (mkPN "al Wusta") ;
+  Countries_TJ_provinces_Hebei_cities_Xingtai = UsePN (mkPN "Xingtai") ;
+  Countries_TJ_provinces_Shaanxi_cities_Hanzhong = UsePN (mkPN "Hanzhong") ;
+  Countries_TR_provinces_Konya = UsePN (mkPN "Konya") ;
+  Countries_cid_cia_Paracel_Islands = UsePN (mkPN "Paracel Islands") ;
+  Countries_Q_cities_Rayyan = UsePN (mkPN "Rayyan") ;
+  Countries_N_provinces_SoerTrondelag = UsePN (mkPN "Soer Trondelag") ;
+  Countries_THA_provinces_SuphanBuri = UsePN (mkPN "Suphan Buri") ;
+  Countries_VN_provinces_TraVinh = UsePN (mkPN "Tra Vinh") ;
+  Countries_Z_provinces_Copperbelt_cities_Kitwe = UsePN (mkPN "Kitwe") ;
+  Countries_GB_provinces_Cheshire = UsePN (mkPN "Cheshire") ;
+  Countries_TJ_provinces_Jiangsu_cities_Changzhou = UsePN (mkPN "Changzhou") ;
+  Countries_THA_provinces_AngThong = UsePN (mkPN "Ang Thong") ;
+  Countries_TR_provinces_Kirklareli = UsePN (mkPN "Kirklareli") ;
+  Countries_HCA_provinces_Cortes_cities_PuertoCortes = UsePN (mkPN "Puerto Cortes") ;
+  Countries_R_provinces_Rep_ofIngushetiya_cities_Nazran = UsePN (mkPN "Nazran") ;
+  Countries_F_provinces_PaysdelaLoire_cities_Angers = UsePN (mkPN "Angers") ;
+  Mountains_HumphreysPeak = UsePN (mkPN "Humphreys Peak") ;
+  Countries_IND_provinces_Maharashtra_cities_Nasik = UsePN (mkPN "Nasik") ;
+  Countries_EAT_provinces_MjiniMagharibi = UsePN (mkPN "Mjini Magharibi") ;
+  Countries_MAL_provinces_Perlis = UsePN (mkPN "Perlis") ;
+  Countries_CO_provinces_Magdalena_cities_SantaMarta = UsePN (mkPN "Santa Marta") ;
+  Countries_ROK_cities_Kwangju = UsePN (mkPN "Kwangju") ;
+  Countries_TJ_provinces_Zhejiang_cities_Huzhou = UsePN (mkPN "Huzhou") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Guilin = UsePN (mkPN "Guilin") ;
+  Countries_R_provinces_Rep_ofKomi_cities_Ukhta = UsePN (mkPN "Ukhta") ;
+  Countries_BR_provinces_SaoPaulo_cities_Cotia = UsePN (mkPN "Cotia") ;
+  Countries_UZB_provinces_Farghona_cities_Marghilon = UsePN (mkPN "Marghilon") ;
+  Countries_IR_provinces_Mazandaran_cities_Qaemshahr = UsePN (mkPN "Qaemshahr") ;
+  Countries_IR_provinces_Bushehr_cities_Bushehr = UsePN (mkPN "Bushehr") ;
+  Countries_UA_provinces_Chernivetska = UsePN (mkPN "Chernivetska") ;
+  Countries_A_provinces_Salzburg = UsePN (mkPN "Salzburg") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_Novoshakhtinsk = UsePN (mkPN "Novoshakhtinsk") ;
+  Countries_C_provinces_VillaClara_cities_SantaClara = UsePN (mkPN "Santa Clara") ;
+  Countries_EAT_provinces_Lindi_cities_Lindi = UsePN (mkPN "Lindi") ;
+  Countries_S_provinces_Gavleborg_cities_Gavle = UsePN (mkPN "Gavle") ;
+  Countries_E_provinces_CanaryIslands_cities_LaLaguna = UsePN (mkPN "La Laguna") ;
+  Countries_D_provinces_BadenWurttemberg_cities_FreiburgimBreisgau = UsePN (mkPN "Freiburg im Breisgau") ;
+  Countries_MEX_provinces_Guanajuato_cities_Guanajuato = UsePN (mkPN "Guanajuato") ;
+  Countries_IND_provinces_Gujarat_cities_Jamnagar = UsePN (mkPN "Jamnagar") ;
+  Countries_CDN_provinces_PrinceEdwardIsland_cities_Charlottetown = UsePN (mkPN "Charlottetown") ;
+  Countries_ET_provinces_ElQalubiya_cities_Benha = UsePN (mkPN "Benha") ;
+  Countries_IR_provinces_Kerman = UsePN (mkPN "Kerman") ;
+  Countries_R_provinces_Rep_ofSakha_cities_Yakutsk = UsePN (mkPN "Yakutsk") ;
+  Countries_RC_cities_Sanchuung = UsePN (mkPN "Sanchuung") ;
+  Countries_CO_provinces_Casanare_cities_Yopal = UsePN (mkPN "Yopal") ;
+  Countries_GB_provinces_TyneandWear_cities_Gateshead = UsePN (mkPN "Gateshead") ;
+  Countries_SN_provinces_Diourbel = UsePN (mkPN "Diourbel") ;
+  Countries_IRQ_provinces_Ninawa = UsePN (mkPN "Ninawa") ;
+  Countries_USA_provinces_Texas_cities_Mesquite = UsePN (mkPN "Mesquite") ;
+  Countries_R_provinces_Amurskayaoblast = UsePN (mkPN "Amurskaya oblast") ;
+  Countries_GB_provinces_Berkshire_cities_Newbury = UsePN (mkPN "Newbury") ;
+  Organizations_WMO = UsePN (mkPN "World Meteorological Organization") ;
+  Countries_CO_provinces_SanAndresyProvidencia = UsePN (mkPN "San Andres y Providencia") ;
+  Seas_ArabianSea = UsePN (mkPN "Arabian Sea") ;
+  Countries_TUV_cities_Funafuti = UsePN (mkPN "Funafuti") ;
+  Countries_USA_provinces_California_cities_SimiValley = UsePN (mkPN "Simi Valley") ;
+  Countries_C_provinces_SanctiSpiritus_cities_SanctiSpiritus = UsePN (mkPN "Sancti Spiritus") ;
+  Countries_CDN_provinces_BritishColumbia_cities_Victoria = UsePN (mkPN "Victoria") ;
+  Countries_BR_provinces_SaoPaulo = UsePN (mkPN "Sao Paulo") ;
+  Countries_R_provinces_Orlovskayaoblast_cities_Orel = UsePN (mkPN "Orel") ;
+  Countries_DK_cities_Odense = UsePN (mkPN "Odense") ;
+  Countries_BD_cities_Comilla = UsePN (mkPN "Comilla") ;
+  Countries_R_provinces_Krasnoyarskiykray_cities_Kansk = UsePN (mkPN "Kansk") ;
+  Countries_PL_provinces_Gdanskie_cities_Gdansk = UsePN (mkPN "Gdansk") ;
+  Countries_BR_cities_SantaBarbaradOeste = UsePN (mkPN "Santa Barbara dOeste") ;
+  Countries_RC_provinces_Changhua_cities_Changhua = UsePN (mkPN "Changhua") ;
+  Countries_R_provinces_UdmurtRepublic_cities_Sarapul = UsePN (mkPN "Sarapul") ;
+  Countries_UAE_cities_Dubai = UsePN (mkPN "Dubai") ;
+  Countries_P_provinces_Lisbon = UsePN (mkPN "Lisbon") ;
+  Countries_USA_provinces_Virginia_cities_VirginiaBeach = UsePN (mkPN "Virginia Beach") ;
+  Countries_cid_cia_Cayman_Islands_cities_GeorgeTown = UsePN (mkPN "George Town") ;
+  Countries_USA_provinces_California_cities_Stockton = UsePN (mkPN "Stockton") ;
+  Countries_SF_provinces_Oulu = UsePN (mkPN "Oulu") ;
+  Countries_RO_provinces_Olt = UsePN (mkPN "Olt") ;
+  Countries_CDN_provinces_Ontario_cities_Brampton = UsePN (mkPN "Brampton") ;
+  Countries_TJ_provinces_Jilin_cities_Gongzhuling = UsePN (mkPN "Gongzhuling") ;
+  Countries_CO_provinces_Meta_cities_Villavicencio = UsePN (mkPN "Villavicencio") ;
+  Countries_EAT_provinces_Mbeya = UsePN (mkPN "Mbeya") ;
+  Countries_D_provinces_Thuringen = UsePN (mkPN "Thuringen") ;
+  Countries_BR_provinces_Bahia_cities_Juazeiro = UsePN (mkPN "Juazeiro") ;
+  Countries_CH_provinces_TI = UsePN (mkPN "TI") ;
+  Countries_PL_provinces_Katowickie_cities_Katowice = UsePN (mkPN "Katowice") ;
+  Countries_BHT_cities_Thimphu = UsePN (mkPN "Thimphu") ;
+  Countries_MEX_provinces_Coahuila = UsePN (mkPN "Coahuila") ;
+  Rivers_Kwa = UsePN (mkPN "Kwa") ;
+  Countries_IR_provinces_Semnan_cities_Semnan = UsePN (mkPN "Semnan") ;
+  Countries_I_provinces_Veneto_cities_Venice = UsePN (mkPN "Venice") ;
+  Lakes_LakeSuat = UsePN (mkPN "Lake Suat") ;
+  Countries_TJ_provinces_Anhui_cities_Anqing = UsePN (mkPN "Anqing") ;
+  Countries_J_provinces_Shizuoka = UsePN (mkPN "Shizuoka") ;
+  Countries_S_provinces_Alvsborg_cities_Vanersborg = UsePN (mkPN "Vanersborg") ;
+  Countries_TJ_provinces_Shaanxi_cities_Weinan = UsePN (mkPN "Weinan") ;
+  Countries_HCA_provinces_Copan_cities_SantaRosadeCopan = UsePN (mkPN "Santa Rosa de Copan") ;
+  Countries_BR_provinces_Paraiba_cities_SantaLuzia = UsePN (mkPN "Santa Luzia") ;
+  Countries_RI_cities_Bengkulu = UsePN (mkPN "Bengkulu") ;
+  Countries_MEX_provinces_Tabasco = UsePN (mkPN "Tabasco") ;
+  Countries_SA_cities_Jeddah = UsePN (mkPN "Jeddah") ;
+  Countries_NL_provinces_NoordBrabant = UsePN (mkPN "Noord Brabant") ;
+  Countries_TJ_provinces_Tibet_cities_Lhasa = UsePN (mkPN "Lhasa") ;
+  Countries_TR_provinces_Afyon_cities_Afyon = UsePN (mkPN "Afyon") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Warangal = UsePN (mkPN "Warangal") ;
+  Countries_KAZ_provinces_Almaty = UsePN (mkPN "Almaty") ;
+  Countries_B_provinces_Antwerp = UsePN (mkPN "Antwerp") ;
+  Countries_ZRE_provinces_Kivu_cities_Goma = UsePN (mkPN "Goma") ;
+  Rivers_Ural = UsePN (mkPN "Ural") ;
+  Islands_Langeland = UsePN (mkPN "Langeland") ;
+  Countries_GR_provinces_StereaEllas = UsePN (mkPN "Sterea Ellas") ;
+  Countries_MA_cities_Tanger = UsePN (mkPN "Tanger") ;
+  Countries_R_provinces_Pskovskayaoblast_cities_Pskov = UsePN (mkPN "Pskov") ;
+  Countries_TJ_provinces_Henan_cities_Sanmenxia = UsePN (mkPN "Sanmenxia") ;
+  Countries_ET_provinces_Asyut_cities_Asyut = UsePN (mkPN "Asyut") ;
+  Countries_GB_provinces_IslandAreas_munic = UsePN (mkPN "Island Areas (munic.)") ;
+  Countries_MEX_provinces_Michoacan = UsePN (mkPN "Michoacan") ;
+  Organizations_UNTSO = UsePN (mkPN "United Nations Truce Supervision Organization") ;
+  Countries_J_provinces_Gifu = UsePN (mkPN "Gifu") ;
+  Countries_TR_provinces_Kirikkale_cities_Kirikkale = UsePN (mkPN "Kirikkale") ;
+  Countries_CZ_provinces_Severomoravsky_cities_Ostrava = UsePN (mkPN "Ostrava") ;
+  Countries_BR_provinces_Bahia_cities_Ilheus = UsePN (mkPN "Ilheus") ;
+  Countries_RM_provinces_Antsiranana = UsePN (mkPN "Antsiranana") ;
+  Countries_NL_provinces_Groningen_cities_Groningen = UsePN (mkPN "Groningen") ;
+  Countries_BR_provinces_Para_cities_Itaituba = UsePN (mkPN "Itaituba") ;
+  Countries_UA_provinces_Poltavska_cities_Kremenchuk = UsePN (mkPN "Kremenchuk") ;
+  Countries_RA_provinces_Cordoba_cities_RioCuarto = UsePN (mkPN "Rio Cuarto") ;
+  Countries_RI_cities_Bandung = UsePN (mkPN "Bandung") ;
+  Countries_MEX_provinces_Chihuahua = UsePN (mkPN "Chihuahua") ;
+  Countries_GB_provinces_Cleveland_cities_StocktononTees = UsePN (mkPN "Stockton on Tees") ;
+  Countries_Z_provinces_Copperbelt_cities_Chingola = UsePN (mkPN "Chingola") ;
+  Countries_ES_cities_Delgado = UsePN (mkPN "Delgado") ;
+  Lakes_LakeSuperior = UsePN (mkPN "Lake Superior") ;
+  Countries_I_provinces_Toscana_cities_Pisa = UsePN (mkPN "Pisa") ;
+  Countries_NL_provinces_Zeeland_cities_Middelburg = UsePN (mkPN "Middelburg") ;
+  Countries_RSA_cities_Daveyton = UsePN (mkPN "Daveyton") ;
+  Countries_R_provinces_Tulskayaoblast_cities_Tula = UsePN (mkPN "Tula") ;
+  Countries_IND_provinces_UttarPradesh_cities_Allahabad = UsePN (mkPN "Allahabad") ;
+  Countries_RA_provinces_LaPampa_cities_SantaRosa = UsePN (mkPN "Santa Rosa") ;
+  Countries_RI_cities_Palangkaraya = UsePN (mkPN "Palangkaraya") ;
+  Lakes_LakeNyasa = UsePN (mkPN "Lake Nyasa") ;
+  Countries_HCA_provinces_ElParaiso = UsePN (mkPN "El Paraiso") ;
+  Countries_cid_cia_Reunion_cities_Saint_Denis = UsePN (mkPN "Saint-Denis") ;
+  Countries_I_provinces_Lombardia_cities_Brescia = UsePN (mkPN "Brescia") ;
+  Countries_TR_provinces_Kirikkale = UsePN (mkPN "Kirikkale") ;
+  Countries_UZB_provinces_Toshkent_cities_Tashkent = UsePN (mkPN "Tashkent") ;
+  Countries_R_provinces_Krasnodarskykray_cities_Armavir = UsePN (mkPN "Armavir") ;
+  Countries_CO_provinces_Amazonas_cities_Leticia = UsePN (mkPN "Leticia") ;
+  Countries_TR_provinces_Isparta_cities_Isparta = UsePN (mkPN "Isparta") ;
+  Countries_GB_provinces_TyneandWear_cities_Newcastle = UsePN (mkPN "Newcastle") ;
+  Countries_E_provinces_Catalonia_cities_Lleida = UsePN (mkPN "Lleida") ;
+  Countries_SN_provinces_Kolda_cities_Kolda = UsePN (mkPN "Kolda") ;
+  Countries_WAN_cities_Kano = UsePN (mkPN "Kano") ;
+  Countries_USA_provinces_Georgia_cities_Columbus = UsePN (mkPN "Columbus") ;
+  Countries_ET_provinces_BeniSuef_cities_BeniSuef = UsePN (mkPN "Beni Suef") ;
+  Countries_IS_cities_Akureyri = UsePN (mkPN "Akureyri") ;
+  Deserts_GrandErgEst = UsePN (mkPN "Grand Erg Est") ;
+  Countries_J_provinces_Kochi_cities_Kochi = UsePN (mkPN "Kochi") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Vijayawada = UsePN (mkPN "Vijayawada") ;
+  Countries_WAN_cities_Inisa = UsePN (mkPN "Inisa") ;
+  Countries_N_provinces_Oppland_cities_Lillehammer = UsePN (mkPN "Lillehammer") ;
+  Islands_JanMayen = UsePN (mkPN "Jan Mayen") ;
+  Countries_SF_provinces_Haeme_cities_Tampere = UsePN (mkPN "Tampere") ;
+  Countries_GCA_cities_GuatemalaCity = UsePN (mkPN "Guatemala City") ;
+  Countries_TR_provinces_Tokat = UsePN (mkPN "Tokat") ;
+  Countries_R_provinces_Smolenskayaoblast_cities_Smolensk = UsePN (mkPN "Smolensk") ;
+  Mountains_Leuser = UsePN (mkPN "Leuser") ;
+  Countries_YV_provinces_Anzoategui_cities_PuertoLaCruz = UsePN (mkPN "Puerto La Cruz") ;
+  Countries_USA_provinces_California_cities_ChulaVista = UsePN (mkPN "Chula Vista") ;
+  Countries_BD_cities_Nawabganj = UsePN (mkPN "Nawabganj") ;
+  Countries_CZ_provinces_Zapadocesky_cities_Plzen = UsePN (mkPN "Plzen") ;
+  Islands_Seeland = UsePN (mkPN "Seeland") ;
+  Countries_S_provinces_Norrbotten_cities_Lulea = UsePN (mkPN "Lulea") ;
+  Countries_PL_provinces_Leszczynskie = UsePN (mkPN "Leszczynskie") ;
+  Countries_R_provinces_Novosibirskayaoblast_cities_Novosibirsk = UsePN (mkPN "Novosibirsk") ;
+  Countries_PL_provinces_Gorzowskie = UsePN (mkPN "Gorzowskie") ;
+  Countries_ZRE_provinces_Shaba_cities_Likasi = UsePN (mkPN "Likasi") ;
+  Rivers_JoekulsaaFjoellum = UsePN (mkPN "Joekulsa a Fjoellum") ;
+  Organizations_NSG = UsePN (mkPN "Nuclear Suppliers Group") ;
+  Countries_YV_provinces_Tachira = UsePN (mkPN "Tachira") ;
+  Countries_THA_provinces_SamutSongkhram = UsePN (mkPN "Samut Songkhram") ;
+  Countries_LAR_cities_Bengasi = UsePN (mkPN "Bengasi") ;
+  Countries_B_provinces_Liege_cities_Liege = UsePN (mkPN "Liege") ;
+  Countries_TJ_provinces_Shandong_cities_Dongying = UsePN (mkPN "Dongying") ;
+  Countries_TJ_provinces_Jiangxi_cities_Shangrao = UsePN (mkPN "Shangrao") ;
+  Countries_RI_cities_Batam = UsePN (mkPN "Batam") ;
+  Rivers_WhiteDrin = UsePN (mkPN "White Drin") ;
+  Rivers_Oulujoki = UsePN (mkPN "Oulujoki") ;
+  Countries_TJ_provinces_Hubei_cities_Xiaogan = UsePN (mkPN "Xiaogan") ;
+  Countries_R_provinces_Tambovskayaoblast_cities_Tambov = UsePN (mkPN "Tambov") ;
+  Countries_J_provinces_Mie_cities_Tsu = UsePN (mkPN "Tsu") ;
+  Countries_R_provinces_Belgorodskayaoblast_cities_Belgorod = UsePN (mkPN "Belgorod") ;
+  Countries_PE_provinces_Ancash = UsePN (mkPN "Ancash") ;
+  Countries_ROK_cities_Taegu = UsePN (mkPN "Taegu") ;
+  Countries_RO_provinces_Arges_cities_Pitesti = UsePN (mkPN "Pitesti") ;
+  Islands_PrinceofWalesIsland = UsePN (mkPN "Prince of Wales Island") ;
+  Countries_PE_provinces_Ica_cities_ChinchaAlta = UsePN (mkPN "Chincha Alta") ;
+  Countries_IRQ_provinces_AsSulaymaniyah = UsePN (mkPN "As Sulaymaniyah") ;
+  Countries_UA_provinces_Luhanska_cities_Luhansk = UsePN (mkPN "Luhansk") ;
+  Countries_TJ_provinces_Qinghai = UsePN (mkPN "Qinghai") ;
+  Countries_GB_provinces_Merseyside_cities_Sefton = UsePN (mkPN "Sefton") ;
+  Countries_cid_cia_Virgin_Islands_cities_CharlotteAmalie = UsePN (mkPN "Charlotte Amalie") ;
+  Countries_B_provinces_Limburg_cities_Hasselt = UsePN (mkPN "Hasselt") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_NovoHamburgo = UsePN (mkPN "Novo Hamburgo") ;
+  Countries_IR_provinces_Tehran_cities_Qom = UsePN (mkPN "Qom") ;
+  Countries_KAZ_provinces_Zhambyl_cities_Dzhambul = UsePN (mkPN "Dzhambul") ;
+  Countries_S_provinces_Skaraborg_cities_Mariestad = UsePN (mkPN "Mariestad") ;
+  Organizations_UNFPA = UsePN (mkPN "United Nations Population Fund") ;
+  Lakes_LakeBangweulu = UsePN (mkPN "Lake Bangweulu") ;
+  Lakes_LakeNicaragua = UsePN (mkPN "Lake Nicaragua") ;
+  Countries_cid_cia_Northern_Mariana_Islands = UsePN (mkPN "Northern Mariana Islands") ;
+  Countries_R_cities_Seversk = UsePN (mkPN "Seversk") ;
+  Countries_TJ_provinces_Liaoning_cities_Fushun = UsePN (mkPN "Fushun") ;
+  Countries_R_provinces_Sakhalinskayaoblast_cities_YuzhnoSakhalinsk = UsePN (mkPN "Yuzhno Sakhalinsk") ;
+  Countries_MV_cities_Male = UsePN (mkPN "Male") ;
+  Countries_RP_cities_Davao = UsePN (mkPN "Davao") ;
+  Lakes_LakeRudolph = UsePN (mkPN "Lake Rudolph") ;
+  Organizations_G_19 = UsePN (mkPN "Group of 19") ;
+  Countries_BR_provinces_EspiritoSanto_cities_Colatina = UsePN (mkPN "Colatina") ;
+  Countries_TJ_provinces_Shandong_cities_Zaozhuang = UsePN (mkPN "Zaozhuang") ;
+  Countries_J_provinces_Oita_cities_Oita = UsePN (mkPN "Oita") ;
+  Countries_CR_provinces_Limon = UsePN (mkPN "Limon") ;
+  Countries_J_provinces_Nagasaki_cities_Nagasaki = UsePN (mkPN "Nagasaki") ;
+  Organizations_IEA = UsePN (mkPN "International Energy Agency") ;
+  Seas_CaribbeanSea = UsePN (mkPN "Caribbean Sea") ;
+  Countries_ANG_provinces_Malanje = UsePN (mkPN "Malanje") ;
+  Mountains_Glittertind = UsePN (mkPN "Glittertind") ;
+  Countries_THA_provinces_AmnatCharoen = UsePN (mkPN "Amnat Charoen") ;
+  Countries_TJ_provinces_Jilin_cities_Liaoyuan = UsePN (mkPN "Liaoyuan") ;
+  Countries_BR_provinces_Roraima_cities_BoaVista = UsePN (mkPN "Boa Vista") ;
+  Islands_EastCaicos = UsePN (mkPN "East Caicos") ;
+  Countries_HCA_provinces_Yoro_cities_Olanchito = UsePN (mkPN "Olanchito") ;
+  Countries_TR_provinces_Giresun = UsePN (mkPN "Giresun") ;
+  Countries_RO_provinces_Calarasi_cities_Calarasi = UsePN (mkPN "Calarasi") ;
+  Countries_RO_provinces_Galati_cities_Galati = UsePN (mkPN "Galati") ;
+  Countries_D_provinces_Niedersachsen_cities_Hannover = UsePN (mkPN "Hannover") ;
+  Countries_PL_provinces_Kaliskie_cities_Kalisz = UsePN (mkPN "Kalisz") ;
+  Countries_USA_provinces_NewHampshire = UsePN (mkPN "New Hampshire") ;
+  Countries_J_provinces_Okinawa_cities_Naha = UsePN (mkPN "Naha") ;
+  Countries_WAN_cities_Oyo = UsePN (mkPN "Oyo") ;
+  Countries_RI_cities_Kediri = UsePN (mkPN "Kediri") ;
+  Countries_RSA_cities_Tembisa = UsePN (mkPN "Tembisa") ;
+  Countries_USA_provinces_Utah_cities_SaltLakeCity = UsePN (mkPN "Salt Lake City") ;
+  Countries_USA_provinces_Texas_cities_Plano = UsePN (mkPN "Plano") ;
+  Countries_RM_provinces_Antsiranana_cities_Antsiranana = UsePN (mkPN "Antsiranana") ;
+  Organizations_CACM = UsePN (mkPN "Central American Common Market") ;
+  Countries_USA_provinces_Montana_cities_Helena = UsePN (mkPN "Helena") ;
+  Countries_IND_provinces_Gujarat_cities_Bhavnagar = UsePN (mkPN "Bhavnagar") ;
+  Countries_HCA_provinces_Lempira_cities_Gracias = UsePN (mkPN "Gracias") ;
+  Countries_P_provinces_Faro = UsePN (mkPN "Faro") ;
+  Countries_R_provinces_Kemerovskayaoblast = UsePN (mkPN "Kemerovskaya oblast") ;
+  Countries_CV_cities_Praia = UsePN (mkPN "Praia") ;
+  Countries_D_provinces_Sachsen_cities_Chemnitz = UsePN (mkPN "Chemnitz") ;
+  Countries_MAL_provinces_Kelantan_cities_KotaBaharu = UsePN (mkPN "Kota Baharu") ;
+  Countries_WAN_cities_Owo = UsePN (mkPN "Owo") ;
+  Countries_BD_cities_Brahmanbaria = UsePN (mkPN "Brahmanbaria") ;
+  Countries_CAM_provinces_Sudoueste_cities_Buea = UsePN (mkPN "Buea") ;
+  Countries_MYA_provinces_Ayeyarwady_cities_Pathein = UsePN (mkPN "Pathein") ;
+  Countries_IND_provinces_UttarPradesh_cities_Aligarh = UsePN (mkPN "Aligarh") ;
+  Mountains_RasDaschan = UsePN (mkPN "Ras Daschan") ;
+  Rivers_BlueNile = UsePN (mkPN "Blue Nile") ;
+  Countries_VN_provinces_QuangNgai = UsePN (mkPN "Quang Ngai") ;
+  Countries_ET_provinces_ElGharbiya_cities_ElMahallaelKubra = UsePN (mkPN "El Mahalla el Kubra") ;
+  Countries_USA_provinces_Connecticut_cities_Hartford = UsePN (mkPN "Hartford") ;
+  Countries_MYA_provinces_Kayin = UsePN (mkPN "Kayin") ;
+  Lakes_ChicamaugaLake = UsePN (mkPN "Chicamauga Lake") ;
+  Mountains_Meru = UsePN (mkPN "Meru") ;
+  Countries_IND_provinces_Nagaland_cities_Kohima = UsePN (mkPN "Kohima") ;
+  Countries_GB_provinces_Hampshire_cities_Havant = UsePN (mkPN "Havant") ;
+  Countries_ET_provinces_Qena_cities_ElUqsur = UsePN (mkPN "El Uqsur") ;
+  Countries_A_provinces_Vienna = UsePN (mkPN "Vienna") ;
+  Countries_H_provinces_Csongrad_cities_Hodmezovasarhely = UsePN (mkPN "Hodmezovasarhely") ;
+  Countries_GB_provinces_Dorset = UsePN (mkPN "Dorset") ;
+  Countries_USA_provinces_NewJersey_cities_Trenton = UsePN (mkPN "Trenton") ;
+  Countries_TJ_provinces_Hunan_cities_Yuanjiang = UsePN (mkPN "Yuanjiang") ;
+  Countries_GB_provinces_Pembrokeshire = UsePN (mkPN "Pembrokeshire") ;
+  Countries_BR_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
+  Countries_R_provinces_Rostovskayaoblast = UsePN (mkPN "Rostovskaya oblast") ;
+  Countries_GNB_cities_Bissau = UsePN (mkPN "Bissau") ;
+  Lakes_Vaenern = UsePN (mkPN "Vaenern") ;
+  Countries_LB_cities_Monrovia = UsePN (mkPN "Monrovia") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Bhilai = UsePN (mkPN "Bhilai") ;
+  Countries_PL_provinces_Bydgoskie_cities_Bydgoszcz = UsePN (mkPN "Bydgoszcz") ;
+  Countries_RA_provinces_BuenosAires_cities_Quilmes = UsePN (mkPN "Quilmes") ;
+  Countries_GB_provinces_Caerphilly_cities_YstradFawr = UsePN (mkPN "Ystrad Fawr") ;
+  Countries_AUS_provinces_NorfolkIsland_cities_Kingston = UsePN (mkPN "Kingston") ;
+  Islands_Rhodos = UsePN (mkPN "Rhodos") ;
+  Islands_Lanai = UsePN (mkPN "Lanai") ;
+  Countries_ET_provinces_KafrelSheikh = UsePN (mkPN "Kafr el Sheikh") ;
+  Countries_IR_provinces_Tehran_cities_Kashan = UsePN (mkPN "Kashan") ;
+  Countries_GH_cities_Tema = UsePN (mkPN "Tema") ;
+  Countries_IS_cities_Keflavik = UsePN (mkPN "Keflavik") ;
+  Countries_PL_provinces_Opolskie = UsePN (mkPN "Opolskie") ;
+  Countries_GR_cities_Larisa = UsePN (mkPN "Larisa") ;
+  Mountains_Chimborazo = UsePN (mkPN "Chimborazo") ;
+  Countries_GCA_cities_Mixco = UsePN (mkPN "Mixco") ;
+  Countries_Z_provinces_Copperbelt = UsePN (mkPN "Copperbelt") ;
+  Countries_CDN_provinces_BritishColumbia_cities_Vancouver = UsePN (mkPN "Vancouver") ;
+  Countries_F_provinces_IledeFrance_cities_Paris = UsePN (mkPN "Paris") ;
+  Countries_TJ_provinces_Beijing_munic = UsePN (mkPN "Beijing (munic.)") ;
+  Countries_WAN_cities_Iseyin = UsePN (mkPN "Iseyin") ;
+  Organizations_ANZUS = UsePN (mkPN "Australia-New Zealand-United States Security Treaty") ;
+  Countries_CAM_provinces_Cote_cities_Douala = UsePN (mkPN "Douala") ;
+  Countries_R_provinces_Krasnodarskykray = UsePN (mkPN "Krasnodarsky kray") ;
+  Countries_USA_provinces_California_cities_Salinas = UsePN (mkPN "Salinas") ;
+  Countries_A_provinces_Tyrol = UsePN (mkPN "Tyrol") ;
+  Countries_IR_provinces_Zanjan = UsePN (mkPN "Zanjan") ;
+  Countries_IL_provinces_TelAviv = UsePN (mkPN "Tel Aviv") ;
+  Countries_RSA_provinces_Gauteng_cities_Pretoria = UsePN (mkPN "Pretoria") ;
+  Countries_MOC_provinces_Maputo = UsePN (mkPN "Maputo") ;
+  Countries_RP_cities_CagayandeOro = UsePN (mkPN "Cagayan de Oro") ;
+  Deserts_LibyanDesert = UsePN (mkPN "Libyan Desert") ;
+  Countries_cid_cia_Cook_Islands_cities_Avarua = UsePN (mkPN "Avarua") ;
+  Countries_MA_provinces_CentreNord = UsePN (mkPN "Centre Nord") ;
+  Countries_IR_provinces_Lorestan_cities_Borujerd = UsePN (mkPN "Borujerd") ;
+  Countries_CH_provinces_JU_cities_Delemont = UsePN (mkPN "Delemont") ;
+  Countries_S_provinces_Vasterbotten = UsePN (mkPN "Vasterbotten") ;
+  Islands_Mull = UsePN (mkPN "Mull") ;
+  Countries_USA_provinces_SouthDakota_cities_Pierre = UsePN (mkPN "Pierre") ;
+  Countries_MEX_provinces_Mexico_Estadode = UsePN (mkPN "Mexico, Estado de") ;
+  Countries_GB_provinces_Essex = UsePN (mkPN "Essex") ;
+  Countries_RI_cities_Balikpapan = UsePN (mkPN "Balikpapan") ;
+  Countries_cid_cia_Man = UsePN (mkPN "Man") ;
+  Countries_CH_provinces_AR_cities_Herisau = UsePN (mkPN "Herisau") ;
+  Countries_MAL_provinces_Sabah_cities_KotaKinabalu = UsePN (mkPN "Kota Kinabalu") ;
+  Countries_HCA_provinces_Ocotepeque = UsePN (mkPN "Ocotepeque") ;
+  Countries_KAZ_provinces_Qaraghandy_cities_Temirtau = UsePN (mkPN "Temirtau") ;
+  Seas_RedSea = UsePN (mkPN "Red Sea") ;
+  Countries_VN_provinces_CentralHighlands = UsePN (mkPN "Central Highlands") ;
+  Countries_TJ_provinces_Jilin_cities_Daan = UsePN (mkPN "Daan") ;
+  Islands_Kefallinia = UsePN (mkPN "Kefallinia") ;
+  Countries_ZRE_provinces_BasZaire_cities_Boma = UsePN (mkPN "Boma") ;
+  Countries_WAN_cities_Makurdi = UsePN (mkPN "Makurdi") ;
+  Countries_KAZ_provinces_Semey_cities_Semey = UsePN (mkPN "Semey") ;
+  Lakes_LacLeman = UsePN (mkPN "Lac Leman") ;
+  Countries_TJ_provinces_Hebei = UsePN (mkPN "Hebei") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_Taganrog = UsePN (mkPN "Taganrog") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_DuquedeCaxias = UsePN (mkPN "Duque de Caxias") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Neuss = UsePN (mkPN "Neuss") ;
+  Countries_ANG_provinces_Zaire = UsePN (mkPN "Zaire") ;
+  Islands_Sumatra = UsePN (mkPN "Sumatra") ;
+  Lakes_LakeMakarikari = UsePN (mkPN "Lake Makarikari") ;
+  Countries_P_provinces_Porto = UsePN (mkPN "Porto") ;
+  Countries_TJ_provinces_Liaoning_cities_Yingkou = UsePN (mkPN "Yingkou") ;
+  Countries_VN_provinces_SonLa = UsePN (mkPN "Son La") ;
+  Countries_GB_provinces_Cheshire_cities_Chester = UsePN (mkPN "Chester") ;
+  Countries_GB_provinces_Denbighshire_cities_Ruthin = UsePN (mkPN "Ruthin") ;
+  Countries_TJ_provinces_Guangdong = UsePN (mkPN "Guangdong") ;
+  Countries_Q_cities_Doha = UsePN (mkPN "Doha") ;
+  Countries_TM_provinces_Leban_cities_Charjew = UsePN (mkPN "Charjew") ;
+  Countries_BD_cities_Naogaon = UsePN (mkPN "Naogaon") ;
+  Lakes_OzeroBalchash = UsePN (mkPN "Ozero Balchash") ;
+  Countries_N_provinces_Buskerud = UsePN (mkPN "Buskerud") ;
+  Countries_TJ_provinces_Hebei_cities_Baoding = UsePN (mkPN "Baoding") ;
+  Countries_TJ_provinces_Jiangsu_cities_Nantong = UsePN (mkPN "Nantong") ;
+  Countries_PL_provinces_Tarnobrzeskie_cities_Tarnobrzeg = UsePN (mkPN "Tarnobrzeg") ;
+  Countries_USA_provinces_Missouri = UsePN (mkPN "Missouri") ;
+  Countries_J_provinces_Hyogo_cities_Kobe = UsePN (mkPN "Kobe") ;
+  Countries_ET_provinces_Qena_cities_Qena = UsePN (mkPN "Qena") ;
+  Countries_BR_cities_RibeiraodasNeves = UsePN (mkPN "Ribeirao das Neves") ;
+  Countries_cid_cia_Cayman_Islands = UsePN (mkPN "Cayman Islands") ;
+  Islands_Teneriffa = UsePN (mkPN "Teneriffa") ;
+  Countries_PE_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
+  Countries_AUS_provinces_Tasmania = UsePN (mkPN "Tasmania") ;
+  Countries_RA_provinces_BuenosAires_cities_Moron = UsePN (mkPN "Moron") ;
+  Countries_GB_provinces_WestMidlands_cities_Dudley = UsePN (mkPN "Dudley") ;
+  Countries_H_provinces_Vas_cities_Szombathely = UsePN (mkPN "Szombathely") ;
+  Countries_IND_provinces_Orissa = UsePN (mkPN "Orissa") ;
+  Countries_WAN_cities_Lagos = UsePN (mkPN "Lagos") ;
+  Countries_CZ_provinces_Jihocesky = UsePN (mkPN "Jihocesky") ;
+  Countries_I_provinces_Basilicata = UsePN (mkPN "Basilicata") ;
+  Islands_VictoriaIsland = UsePN (mkPN "Victoria Island") ;
+  Countries_TR_provinces_Eskisehir_cities_Eskisehir = UsePN (mkPN "Eskisehir") ;
+  Countries_SUD_provinces_Darfur_cities_Nyala = UsePN (mkPN "Nyala") ;
+  Islands_Leyte = UsePN (mkPN "Leyte") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Modena = UsePN (mkPN "Modena") ;
+  Countries_USA_provinces_California_cities_SantaAna = UsePN (mkPN "Santa Ana") ;
+  Countries_NOK_cities_Songjin = UsePN (mkPN "Songjin") ;
+  Countries_R_provinces_Krasnoyarskiykray_cities_Norilsk = UsePN (mkPN "Norilsk") ;
+  Islands_GranCanaria = UsePN (mkPN "Gran Canaria") ;
+  Countries_IR_provinces_Lorestan = UsePN (mkPN "Lorestan") ;
+  Lakes_LakeStephanie = UsePN (mkPN "Lake Stephanie") ;
+  Countries_D_provinces_NordrheinWestfalen = UsePN (mkPN "Nordrhein Westfalen") ;
+  Countries_TJ_provinces_Anhui_cities_Hefei = UsePN (mkPN "Hefei") ;
+  Countries_SF_provinces_Haeme = UsePN (mkPN "Haeme") ;
+  Countries_F_provinces_Auvergne = UsePN (mkPN "Auvergne") ;
+  Countries_cid_cia_Aruba_cities_Oranjestad = UsePN (mkPN "Oranjestad") ;
+  Islands_Cayman = UsePN (mkPN "Cayman") ;
+  Countries_CH_provinces_SO_cities_Solothurn = UsePN (mkPN "Solothurn") ;
+  Countries_R_provinces_Irkutskayaoblast_cities_UstIlimsk = UsePN (mkPN "Ust Ilimsk") ;
+  Countries_USA_provinces_NewJersey_cities_Elizabeth = UsePN (mkPN "Elizabeth") ;
+  Rivers_Weser = UsePN (mkPN "Weser") ;
+  Islands_Rhum = UsePN (mkPN "Rhum") ;
+  Countries_CO_provinces_Guainia_cities_PuertoInirida = UsePN (mkPN "Puerto Inirida") ;
+  Countries_GB_provinces_IslandAreas_munic_cities_IslandAreas = UsePN (mkPN "Island Areas") ;
+  Countries_NOK_cities_Kanggye = UsePN (mkPN "Kanggye") ;
+  Countries_RSA_provinces_Mpumalanga = UsePN (mkPN "Mpumalanga") ;
+  Countries_D_provinces_SchleswigHolstein = UsePN (mkPN "Schleswig Holstein") ;
+  Islands_Tobago = UsePN (mkPN "Tobago") ;
+  Countries_TJ_provinces_Zhejiang_cities_Yuyao = UsePN (mkPN "Yuyao") ;
+  Countries_TAD_provinces_Leninobod = UsePN (mkPN "Leninobod") ;
+  Countries_RC_provinces_Taipei_munic_cities_Taipei = UsePN (mkPN "Taipei") ;
+  Countries_ROK_cities_Chonju = UsePN (mkPN "Chonju") ;
+  Countries_PL_provinces_Krakowskie = UsePN (mkPN "Krakowskie") ;
+  Countries_H_provinces_SzabolcsSzatmar = UsePN (mkPN "Szabolcs Szatmar") ;
+  Countries_YV_provinces_Aragua = UsePN (mkPN "Aragua") ;
+  Countries_TJ_provinces_Guangdong_cities_Maoming = UsePN (mkPN "Maoming") ;
+  Countries_BR_provinces_Bahia_cities_Barreiras = UsePN (mkPN "Barreiras") ;
+  Countries_USA_provinces_Utah = UsePN (mkPN "Utah") ;
+  Countries_TJ_provinces_Hubei_cities_Shishou = UsePN (mkPN "Shishou") ;
+  Countries_RSA_cities_Mamelodi = UsePN (mkPN "Mamelodi") ;
+  Countries_GB_provinces_Devon = UsePN (mkPN "Devon") ;
+  Countries_VN_provinces_BinhThuan = UsePN (mkPN "Binh Thuan") ;
+  Organizations_ACC = UsePN (mkPN "Arab Cooperation Council") ;
+  Rivers_Parana = UsePN (mkPN "Parana") ;
+  Countries_GB_provinces_Surrey_cities_Elmbridge = UsePN (mkPN "Elmbridge") ;
+  Countries_BD_cities_Sirajganj = UsePN (mkPN "Sirajganj") ;
+  Countries_PL_provinces_Przemyskie_cities_Przemysl = UsePN (mkPN "Przemysl") ;
+  Countries_TJ_provinces_Guangdong_cities_Shaoguan = UsePN (mkPN "Shaoguan") ;
+  Countries_J_provinces_Saga_cities_Saga = UsePN (mkPN "Saga") ;
+  Countries_R_provinces_Primorskykray_cities_Ussuriysk = UsePN (mkPN "Ussuriysk") ;
+  Countries_ET_provinces_Dumyat = UsePN (mkPN "Dumyat") ;
+  Countries_EAK_provinces_Western = UsePN (mkPN "Western") ;
+  Countries_BR_provinces_Alagoas = UsePN (mkPN "Alagoas") ;
+  Countries_TJ_provinces_Shandong_cities_Xintai = UsePN (mkPN "Xintai") ;
+  Countries_DK_cities_Randers = UsePN (mkPN "Randers") ;
+  Countries_TR_provinces_Erzincan_cities_Erzincan = UsePN (mkPN "Erzincan") ;
+  Countries_E_provinces_Murcia = UsePN (mkPN "Murcia") ;
+  Countries_THA_provinces_BuriRam = UsePN (mkPN "Buri Ram") ;
+  Countries_USA_provinces_California_cities_SantaClarita = UsePN (mkPN "Santa Clarita") ;
+  Countries_BR_provinces_Acre = UsePN (mkPN "Acre") ;
+  Countries_RSA_provinces_EasternCape_cities_KingWilliamsTown = UsePN (mkPN "King Williams Town") ;
+  Rivers_St_Lorenzstrom = UsePN (mkPN "St. Lorenzstrom") ;
+  Countries_N_provinces_MoereogRomsdal_cities_Molde = UsePN (mkPN "Molde") ;
+  Countries_N_provinces_Telemark_cities_Skien = UsePN (mkPN "Skien") ;
+  Countries_UZB_provinces_Bukhoro = UsePN (mkPN "Bukhoro") ;
+  Countries_PA_provinces_Cocle = UsePN (mkPN "Cocle") ;
+  Countries_cid_cia_Svalbard = UsePN (mkPN "Svalbard") ;
+  Countries_AUS_provinces_Kirimati = UsePN (mkPN "Kirimati") ;
+  Countries_cid_cia_Montserrat_cities_Plymouth = UsePN (mkPN "Plymouth") ;
+  Countries_R_provinces_Altayskiykray_cities_Biysk = UsePN (mkPN "Biysk") ;
+  Countries_TR_provinces_Ankara = UsePN (mkPN "Ankara") ;
+  Countries_THA_provinces_NakhonSawan_cities_NakhonSawan = UsePN (mkPN "Nakhon Sawan") ;
+  Countries_E_provinces_Catalonia_cities_SantaColomadeGramanet = UsePN (mkPN "Santa Coloma de Gramanet") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Podolsk = UsePN (mkPN "Podolsk") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoVicente = UsePN (mkPN "Sao Vicente") ;
+  Countries_E_provinces_Galicia_cities_Orense = UsePN (mkPN "Orense") ;
+  Countries_PE_provinces_Ayacucho_cities_Ayacucho = UsePN (mkPN "Ayacucho") ;
+  Islands_Iona = UsePN (mkPN "Iona") ;
+  Countries_MAL_provinces_Pahang = UsePN (mkPN "Pahang") ;
+  Countries_TJ_provinces_Liaoning_cities_Wafangdian = UsePN (mkPN "Wafangdian") ;
+  Rivers_Schari = UsePN (mkPN "Schari") ;
+  Organizations_CP = UsePN (mkPN "Colombo Plan") ;
+  Lakes_LakeNaesi = UsePN (mkPN "Lake Naesi") ;
+  Countries_cid_cia_Macau_cities_Macau = UsePN (mkPN "Macau") ;
+  Countries_CDN_provinces_Quebec_cities_Montreal = UsePN (mkPN "Montreal") ;
+  Countries_GH_cities_Kumasi = UsePN (mkPN "Kumasi") ;
+  Countries_ES_provinces_SanVicente = UsePN (mkPN "San Vicente") ;
+  Organizations_BCIE = UsePN (mkPN "Central American Bank for Economic Integration") ;
+  Countries_R_provinces_Rep_ofBashkortostan = UsePN (mkPN "Rep. of Bashkortostan") ;
+  Organizations_G_11 = UsePN (mkPN "Group of 11") ;
+  Countries_PL_provinces_Warszwaskie = UsePN (mkPN "Warszwaskie") ;
+  Countries_cid_cia_Guam_cities_Agana = UsePN (mkPN "Agana") ;
+  Countries_H_provinces_Debrecen_munic = UsePN (mkPN "Debrecen (munic.)") ;
+  Countries_EAK_provinces_Nyanza_cities_Kisii = UsePN (mkPN "Kisii") ;
+  Countries_ANG_provinces_Moxico = UsePN (mkPN "Moxico") ;
+  Countries_RM_provinces_Mahajanga = UsePN (mkPN "Mahajanga") ;
+  Countries_PL_provinces_Leszczynskie_cities_Leszno = UsePN (mkPN "Leszno") ;
+  Countries_VN_provinces_TuyenQuang = UsePN (mkPN "Tuyen Quang") ;
+  Organizations_OPEC = UsePN (mkPN "Organization of Petroleum Exporting Countries") ;
+  Lakes_GreatBearLake = UsePN (mkPN "Great Bear Lake") ;
+  Countries_TJ_provinces_Hunan_cities_Liling = UsePN (mkPN "Liling") ;
+  Countries_TJ_provinces_Yunnan_cities_Kunming = UsePN (mkPN "Kunming") ;
+  Countries_MOC_cities_Matala = UsePN (mkPN "Matala") ;
+  Countries_PE_provinces_SanMartin_cities_Moyobamba = UsePN (mkPN "Moyobamba") ;
+  Countries_N_provinces_Oestfold = UsePN (mkPN "Oestfold") ;
+  Countries_GB_provinces_Gloucestershire_cities_Stroud = UsePN (mkPN "Stroud") ;
+  Countries_A_provinces_Vorarlberg_cities_Bregenz = UsePN (mkPN "Bregenz") ;
+  Countries_KAZ_provinces_Kokchetau_cities_Kokchetau = UsePN (mkPN "Kokchetau") ;
+  Countries_THA_provinces_BangkokMetropolis_cities_Bangkok = UsePN (mkPN "Bangkok") ;
+  Countries_R_provinces_Tambovskayaoblast_cities_Michurinsk = UsePN (mkPN "Michurinsk") ;
+  Countries_GB_provinces_Cheshire_cities_Crewe = UsePN (mkPN "Crewe") ;
+  Countries_I_provinces_Molise_cities_Campobasso = UsePN (mkPN "Campobasso") ;
+  Countries_D_provinces_RheinlandPfalz_cities_Koblenz = UsePN (mkPN "Koblenz") ;
+  Countries_CO_provinces_Cordoba = UsePN (mkPN "Cordoba") ;
+  Organizations_OIC = UsePN (mkPN "Organization of the Islamic Conference") ;
+  Countries_PE_provinces_Tumbes = UsePN (mkPN "Tumbes") ;
+  Countries_J_provinces_Nara = UsePN (mkPN "Nara") ;
+  Countries_R_provinces_Yevreyskayaavt_oblast_cities_Birobidzhan = UsePN (mkPN "Birobidzhan") ;
+  Countries_YV_provinces_Merida_cities_Merida = UsePN (mkPN "Merida") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Guixian = UsePN (mkPN "Guixian") ;
+  Countries_IRQ_provinces_Irbil_cities_Irbil = UsePN (mkPN "Irbil") ;
+  Countries_USA_provinces_Massachusetts_cities_Lowell = UsePN (mkPN "Lowell") ;
+  Countries_C_provinces_Matanzas = UsePN (mkPN "Matanzas") ;
+  Countries_ET_provinces_ElQahira_munic_cities_Cairo = UsePN (mkPN "Cairo") ;
+  Countries_E_provinces_Rioja_cities_Logrono = UsePN (mkPN "Logrono") ;
+  Countries_R_provinces_Stavropolskykray_cities_Nevinnomyssk = UsePN (mkPN "Nevinnomyssk") ;
+  Countries_KAZ_provinces_ShyghysQazaqstan = UsePN (mkPN "Shyghys Qazaqstan") ;
+  Countries_IND_provinces_Sikkim_cities_Gangtok = UsePN (mkPN "Gangtok") ;
+  Countries_WAN_cities_Ilobu = UsePN (mkPN "Ilobu") ;
+  Rivers_Baro = UsePN (mkPN "Baro") ;
+  Rivers_WhiteNile = UsePN (mkPN "White Nile") ;
+  Countries_C_provinces_CiegodeAvila_cities_CiegodeAvila = UsePN (mkPN "Ciego de Avila") ;
+  Countries_IR_provinces_Esfahan_cities_Esfahan = UsePN (mkPN "Esfahan") ;
+  Countries_IR_cities_Islamshahr = UsePN (mkPN "Islamshahr") ;
+  Countries_AL_cities_Elbasan = UsePN (mkPN "Elbasan") ;
+  Countries_GB_provinces_Merseyside_cities_Wiral = UsePN (mkPN "Wiral") ;
+  Countries_cid_cia_Niue = UsePN (mkPN "Niue") ;
+  Countries_GH_cities_Sekondi = UsePN (mkPN "Sekondi") ;
+  Countries_MEX_provinces_Chiapas_cities_Nezahualcoyotl = UsePN (mkPN "Nezahualcoyotl") ;
+  Countries_PL_provinces_Katowickie_cities_RudaSlaska = UsePN (mkPN "Ruda Slaska") ;
+  Countries_BR_provinces_MinasGerais_cities_JuizdeFora = UsePN (mkPN "Juiz de Fora") ;
+  Mountains_EmiKussi = UsePN (mkPN "Emi Kussi") ;
+  Countries_F_provinces_NordPasdeCalais = UsePN (mkPN "Nord Pas de Calais") ;
+  Countries_BD_cities_Tangail = UsePN (mkPN "Tangail") ;
+  Countries_R_provinces_Kaluzhskayaoblast = UsePN (mkPN "Kaluzhskaya oblast") ;
+  Countries_TJ_provinces_Henan_cities_Nanyang = UsePN (mkPN "Nanyang") ;
+  Countries_J_provinces_Yamanashi_cities_Kofu = UsePN (mkPN "Kofu") ;
+  Countries_USA_provinces_Ohio_cities_Cleveland = UsePN (mkPN "Cleveland") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_SantaCruzdoSul = UsePN (mkPN "Santa Cruz do Sul") ;
+  Rivers_Rhone = UsePN (mkPN "Rhone") ;
+  Countries_USA_provinces_Alabama_cities_Huntsville = UsePN (mkPN "Huntsville") ;
+  Countries_GB_provinces_Northamptonshire = UsePN (mkPN "Northamptonshire") ;
+  Countries_SUD_provinces_BahralGhazal_cities_Waw = UsePN (mkPN "Waw") ;
+  Countries_WAN_cities_Aba = UsePN (mkPN "Aba") ;
+  Countries_PA_provinces_LosSantos = UsePN (mkPN "Los Santos") ;
+  Islands_Anjouan = UsePN (mkPN "Anjouan") ;
+  Countries_YV_provinces_Cojedes_cities_SanCarlos = UsePN (mkPN "San Carlos") ;
+  Countries_TJ_provinces_Jilin_cities_Huadian = UsePN (mkPN "Huadian") ;
+  Countries_USA_provinces_Arizona_cities_Tucson = UsePN (mkPN "Tucson") ;
+  Countries_USA_provinces_California_cities_Pasadena = UsePN (mkPN "Pasadena") ;
+  Countries_TJ_provinces_Liaoning_cities_Dandong = UsePN (mkPN "Dandong") ;
+  Countries_MEX_provinces_DistritoFederal_cities_MexicoCity = UsePN (mkPN "Mexico City") ;
+  Countries_PL_provinces_Koszalinskie_cities_Koszalin = UsePN (mkPN "Koszalin") ;
+  Countries_H_provinces_Nograd = UsePN (mkPN "Nograd") ;
+  Countries_KAZ_provinces_Zhezkazghan_cities_Zhezkazghan = UsePN (mkPN "Zhezkazghan") ;
+  Countries_PL_provinces_Torunskie_cities_Torun = UsePN (mkPN "Torun") ;
+  Countries_PE_provinces_Arequipa = UsePN (mkPN "Arequipa") ;
+  Countries_GB_provinces_Humberside_cities_Beverley = UsePN (mkPN "Beverley") ;
+  Countries_PK_cities_Peshawar = UsePN (mkPN "Peshawar") ;
+  Countries_R_provinces_Omskayaoblast = UsePN (mkPN "Omskaya oblast") ;
+  Countries_CH_provinces_GR_cities_Chur = UsePN (mkPN "Chur") ;
+  Countries_F_provinces_Corse = UsePN (mkPN "Corse") ;
+  Countries_TJ_provinces_Zhejiang_cities_Haining = UsePN (mkPN "Haining") ;
+  Mountains_Snoefell = UsePN (mkPN "Snoefell") ;
+  Countries_J_provinces_Saitama_cities_Urawa = UsePN (mkPN "Urawa") ;
+  Countries_D_provinces_Sachsen_cities_Zwickau = UsePN (mkPN "Zwickau") ;
+  Countries_I_provinces_Sardegna_cities_Cagliari = UsePN (mkPN "Cagliari") ;
+  Lakes_LakeCabora_Bassa = UsePN (mkPN "Lake Cabora-Bassa") ;
+  Countries_IND_cities_PimpriChinchwad = UsePN (mkPN "Pimpri Chinchwad") ;
+  Countries_Z_provinces_Southern = UsePN (mkPN "Southern") ;
+  Countries_cid_cia_Coral_Sea_Islands = UsePN (mkPN "Coral Sea Islands") ;
+  Countries_GH_cities_Takoradi = UsePN (mkPN "Takoradi") ;
+  Countries_CO_provinces_Arauca_cities_Arauca = UsePN (mkPN "Arauca") ;
+  Countries_CO_provinces_Choco_cities_Quibdo = UsePN (mkPN "Quibdo") ;
+  Countries_RO_provinces_Brasov_cities_Brasov = UsePN (mkPN "Brasov") ;
+  Countries_IR_provinces_Fars = UsePN (mkPN "Fars") ;
+  Lakes_LakeWinnipesaukee = UsePN (mkPN "Lake Winnipesaukee") ;
+  Countries_IND_provinces_Maharashtra_cities_Ulhasnagar = UsePN (mkPN "Ulhasnagar") ;
+  Countries_GB_provinces_Warwickshire = UsePN (mkPN "Warwickshire") ;
+  Countries_MEX_provinces_Chiapas_cities_Tapachula = UsePN (mkPN "Tapachula") ;
+  Organizations_OAPEC = UsePN (mkPN "Organization of Arab Petroleum Exporting Countries") ;
+  Countries_USA_provinces_Colorado_cities_Aurora = UsePN (mkPN "Aurora") ;
+  Countries_BR_provinces_EspiritoSanto_cities_Linhares = UsePN (mkPN "Linhares") ;
+  Rivers_Irtysch = UsePN (mkPN "Irtysch") ;
+  Countries_TR_provinces_Artvin_cities_Artvin = UsePN (mkPN "Artvin") ;
+  Countries_I_provinces_Puglia_cities_Lecce = UsePN (mkPN "Lecce") ;
+  Countries_MYA_provinces_Shan = UsePN (mkPN "Shan") ;
+  Countries_TJ_provinces_Henan_cities_Pingdingshan = UsePN (mkPN "Pingdingshan") ;
+  Countries_THA_provinces_CentralRegion = UsePN (mkPN "Central Region") ;
+  Countries_TJ_provinces_Shanghai_munic_cities_Shanghai = UsePN (mkPN "Shanghai") ;
+  Countries_UA_provinces_Odeska_cities_Odesa = UsePN (mkPN "Odesa") ;
+  Countries_ANG_provinces_Zaire_cities_MbanzaCongo = UsePN (mkPN "Mbanza Congo") ;
+  Countries_RO_provinces_Dimbovita_cities_Tirgoviste = UsePN (mkPN "Tirgoviste") ;
+  Countries_MEX_provinces_BajaCalifornia = UsePN (mkPN "Baja California") ;
+  Countries_RI_cities_Malang = UsePN (mkPN "Malang") ;
+  Lakes_LakeEyasi = UsePN (mkPN "Lake Eyasi") ;
+  Countries_BR_provinces_SaoPaulo_cities_MojidasCruzes = UsePN (mkPN "Moji das Cruzes") ;
+  Countries_N_provinces_SognogFjordane = UsePN (mkPN "Sogn og Fjordane") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Hyderabad = UsePN (mkPN "Hyderabad") ;
+  Countries_GB_provinces_Hampshire_cities_Fareham = UsePN (mkPN "Fareham") ;
+  Countries_R_provinces_Tyumenskayaoblast_cities_Nizhnevartovsk = UsePN (mkPN "Nizhnevartovsk") ;
+  Lakes_LakeMackay = UsePN (mkPN "Lake Mackay") ;
+  Countries_MEX_provinces_Queretaro = UsePN (mkPN "Queretaro") ;
+  Countries_E_provinces_Catalonia = UsePN (mkPN "Catalonia") ;
+  Countries_WV_cities_Kingstown = UsePN (mkPN "Kingstown") ;
+  Seas_BalticSea = UsePN (mkPN "Baltic Sea") ;
+  Countries_GB_provinces_Humberside = UsePN (mkPN "Humberside") ;
+  Countries_TJ_provinces_Qinghai_cities_Yushu = UsePN (mkPN "Yushu") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_Viamao = UsePN (mkPN "Viamao") ;
+  Countries_MOC_provinces_Tete = UsePN (mkPN "Tete") ;
+  Organizations_AMF = UsePN (mkPN "Arab Monetary Fund") ;
+  Countries_CO_provinces_ValledeCauca_cities_Cartago = UsePN (mkPN "Cartago") ;
+  Countries_BD_cities_Narsinghdi = UsePN (mkPN "Narsinghdi") ;
+  Countries_EAT_provinces_KaskaziniPemba_cities_Wete = UsePN (mkPN "Wete") ;
+  Countries_TR_provinces_Kirklareli_cities_Kirklareli = UsePN (mkPN "Kirklareli") ;
+  Countries_IND_provinces_UttarPradesh_cities_Gorakhpur = UsePN (mkPN "Gorakhpur") ;
+  Countries_RA_provinces_TierradelFuego = UsePN (mkPN "Tierra del Fuego") ;
+  Countries_I_provinces_TrentinoAltoAdige_cities_Trento = UsePN (mkPN "Trento") ;
+  Rivers_Donau = UsePN (mkPN "Donau") ;
+  Countries_THA_provinces_Lampang = UsePN (mkPN "Lampang") ;
+  Countries_B_provinces_Luxembourg = UsePN (mkPN "Luxembourg") ;
+  Organizations_ECOWAS = UsePN (mkPN "Economic Community of West African States") ;
+  Countries_R_provinces_Moskva_cities_Moscow = UsePN (mkPN "Moscow") ;
+  Countries_S_provinces_Sodermanland = UsePN (mkPN "Sodermanland") ;
+  Countries_IND_provinces_UttarPradesh_cities_Faridabad = UsePN (mkPN "Faridabad") ;
+  Rivers_Sanaga = UsePN (mkPN "Sanaga") ;
+  Countries_RO_provinces_Prahova = UsePN (mkPN "Prahova") ;
+  Countries_UZB_provinces_Sirdare = UsePN (mkPN "Sirdare") ;
+  Countries_TJ_provinces_Guizhou_cities_Zunyi = UsePN (mkPN "Zunyi") ;
+  Countries_PK_cities_WahCantonment = UsePN (mkPN "Wah Cantonment") ;
+  Countries_E_provinces_Estremadura_cities_Badajoz = UsePN (mkPN "Badajoz") ;
+  Countries_R_provinces_Altayskiykray_cities_Rubtsovsk = UsePN (mkPN "Rubtsovsk") ;
+  Rivers_Ajan_Jurjach = UsePN (mkPN "Ajan-Jurjach") ;
+  Countries_USA_provinces_Tennessee_cities_Chattanooga = UsePN (mkPN "Chattanooga") ;
+  Countries_USA_provinces_Kentucky = UsePN (mkPN "Kentucky") ;
+  Islands_Westsamoa = UsePN (mkPN "Westsamoa") ;
+  Countries_D_provinces_MecklenburgVorpommern = UsePN (mkPN "Mecklenburg Vorpommern") ;
+  Countries_THA_provinces_NakhonRatchasima_cities_NakhonRatchasima = UsePN (mkPN "Nakhon Ratchasima") ;
+  Countries_IS_cities_Hafnarfjoerdur = UsePN (mkPN "Hafnarfjoerdur") ;
+  Countries_TJ_provinces_Jiangsu_cities_Jiangyin = UsePN (mkPN "Jiangyin") ;
+  Countries_CR_provinces_Guanacaste_cities_Liberia = UsePN (mkPN "Liberia") ;
+  Countries_CH_provinces_VD_cities_Lausanne = UsePN (mkPN "Lausanne") ;
+  Countries_TR_provinces_Ordu_cities_Ordu = UsePN (mkPN "Ordu") ;
+  Islands_Barra = UsePN (mkPN "Barra") ;
+  Islands_Nantucket = UsePN (mkPN "Nantucket") ;
+  Lakes_HamuneJazMurian = UsePN (mkPN "Hamun e Jaz Murian") ;
+  Countries_CH_provinces_BL_cities_Liestal = UsePN (mkPN "Liestal") ;
+  Countries_D_provinces_Niedersachsen_cities_Osnabruck = UsePN (mkPN "Osnabruck") ;
+  Countries_USA_provinces_California_cities_Fontana = UsePN (mkPN "Fontana") ;
+  Countries_CO_provinces_Guajira_La = UsePN (mkPN "Guajira, La") ;
+  Islands_SouthUlist = UsePN (mkPN "South Ulist") ;
+  Islands_Oeland = UsePN (mkPN "Oeland") ;
+  Countries_TJ_provinces_Tianjin_munic_cities_Tianjin = UsePN (mkPN "Tianjin") ;
+  Countries_TM_provinces_Ahal = UsePN (mkPN "Ahal") ;
+  Countries_E_provinces_Navarre_cities_Pamplona = UsePN (mkPN "Pamplona") ;
+  Countries_cid_cia_Niue_cities_Alofi = UsePN (mkPN "Alofi") ;
+  Countries_P_provinces_Setubal_cities_Setubal = UsePN (mkPN "Setubal") ;
+  Organizations_AsDB = UsePN (mkPN "Asian Development Bank") ;
+  Countries_IND_provinces_Assam_cities_Gauhati = UsePN (mkPN "Gauhati") ;
+  Islands_Samos = UsePN (mkPN "Samos") ;
+  Countries_R_provinces_Novosibirskayaoblast = UsePN (mkPN "Novosibirskaya oblast") ;
+  Countries_VN_cities_QuiNhon = UsePN (mkPN "Qui Nhon") ;
+  Countries_UA_provinces_Khersonska_cities_Kherson = UsePN (mkPN "Kherson") ;
+  Countries_YV_provinces_DistritoFederal_cities_Caracas = UsePN (mkPN "Caracas") ;
+  Countries_IL_provinces_Haifa_cities_Haifa = UsePN (mkPN "Haifa") ;
+  Countries_F_provinces_Picardie = UsePN (mkPN "Picardie") ;
+  Countries_YV_provinces_Guarico = UsePN (mkPN "Guarico") ;
+  Countries_PL_provinces_Katowickie = UsePN (mkPN "Katowickie") ;
+  Countries_TJ_provinces_Shandong_cities_Dezhou = UsePN (mkPN "Dezhou") ;
+  Countries_BD_cities_Bogra = UsePN (mkPN "Bogra") ;
+  Countries_J_provinces_Yamagata_cities_Yamagata = UsePN (mkPN "Yamagata") ;
+  Countries_TJ_provinces_Liaoning_cities_Fengcheng = UsePN (mkPN "Fengcheng") ;
+  Countries_TR_provinces_Denizli_cities_Denizli = UsePN (mkPN "Denizli") ;
+  Mountains_GannettPeak = UsePN (mkPN "Gannett Peak") ;
+  Countries_S_provinces_Vasternorrland_cities_Harnosand = UsePN (mkPN "Harnosand") ;
+  Countries_R_provinces_Novgorodskayaoblast = UsePN (mkPN "Novgorodskaya oblast") ;
+  Countries_IND_provinces_Gujarat_cities_Surat = UsePN (mkPN "Surat") ;
+  Countries_F_provinces_BasseNormandie = UsePN (mkPN "Basse Normandie") ;
+  Countries_TJ_provinces_Jilin_cities_Hunjiang = UsePN (mkPN "Hunjiang") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Moers = UsePN (mkPN "Moers") ;
+  Countries_KAZ_provinces_Atyrau_cities_Atyrau = UsePN (mkPN "Atyrau") ;
+  Countries_TJ_provinces_Jiangsu_cities_Nanjing = UsePN (mkPN "Nanjing") ;
+  Rivers_Thjorsa = UsePN (mkPN "Thjorsa") ;
+  Organizations_IGADD = UsePN (mkPN "Inter-Governmental Authority on Drought and Development") ;
+  Countries_VN_cities_Haiphong = UsePN (mkPN "Haiphong") ;
+  Islands_Mindanao = UsePN (mkPN "Mindanao") ;
+  Countries_ZRE_provinces_HautZaire = UsePN (mkPN "Haut Zaire") ;
+  Countries_TR_provinces_Zonguldak_cities_Zonguldak = UsePN (mkPN "Zonguldak") ;
+  Countries_EAT_provinces_Mara_cities_Musoma = UsePN (mkPN "Musoma") ;
+  Islands_Guernsey = UsePN (mkPN "Guernsey") ;
+  Countries_MAL_provinces_Perlis_cities_Kangar = UsePN (mkPN "Kangar") ;
+  Countries_KAZ_provinces_Zhezkazghan_cities_Zhezqazghan = UsePN (mkPN "Zhezqazghan") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Ravenna = UsePN (mkPN "Ravenna") ;
+  Countries_J_provinces_Niigata = UsePN (mkPN "Niigata") ;
+  Countries_PL_provinces_Koninskie_cities_Konin = UsePN (mkPN "Konin") ;
+  Countries_MAL_provinces_Fed_Terr_ofLabuan_cities_Labuan = UsePN (mkPN "Labuan") ;
+  Countries_H_provinces_Szeged_munic_cities_Szeged = UsePN (mkPN "Szeged") ;
+  Countries_E_provinces_Andalusia_cities_Granada = UsePN (mkPN "Granada") ;
+  Countries_SN_provinces_Dakar_cities_Dakar = UsePN (mkPN "Dakar") ;
+  Countries_TJ_provinces_Guangdong_cities_Yangjiang = UsePN (mkPN "Yangjiang") ;
+  Countries_H_provinces_Zala_cities_Zalaegerszeg = UsePN (mkPN "Zalaegerszeg") ;
+  Countries_D_provinces_Bayern_cities_Augsburg = UsePN (mkPN "Augsburg") ;
+  Countries_cid_cia_Montserrat = UsePN (mkPN "Montserrat") ;
+  Countries_BR_provinces_SaoPaulo_cities_Suzano = UsePN (mkPN "Suzano") ;
+  Countries_TJ_provinces_Shandong_cities_Zibo = UsePN (mkPN "Zibo") ;
+  Countries_BS_cities_Nassau = UsePN (mkPN "Nassau") ;
+  Countries_MEX_provinces_Veracruz_cities_Orizaba = UsePN (mkPN "Orizaba") ;
+  Mountains_Tubhal = UsePN (mkPN "Tubhal") ;
+  Countries_ES_provinces_Sonsonate = UsePN (mkPN "Sonsonate") ;
+  Countries_H_provinces_KomaromEsztergom_cities_Tatabanya = UsePN (mkPN "Tatabanya") ;
+  Countries_GB_provinces_GreaterLondon_cities_London = UsePN (mkPN "London") ;
+  Countries_R_provinces_Rep_ofTyva_cities_Kyzyl = UsePN (mkPN "Kyzyl") ;
+  Countries_J_provinces_Kagoshima_cities_Kagoshima = UsePN (mkPN "Kagoshima") ;
+  Countries_GH_cities_Accra = UsePN (mkPN "Accra") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Ujjain = UsePN (mkPN "Ujjain") ;
+  Countries_R_provinces_Primorskykray = UsePN (mkPN "Primorsky kray") ;
+  Countries_HCA_provinces_IslasdelaBahia = UsePN (mkPN "Islas de la Bahia") ;
+  Lakes_Maelaren = UsePN (mkPN "Maelaren") ;
+  Countries_R_provinces_Rep_ofKomi_cities_Vorkuta = UsePN (mkPN "Vorkuta") ;
+  Countries_MEX_provinces_Sonora_cities_Hermosillo = UsePN (mkPN "Hermosillo") ;
+  Rivers_Cuanza = UsePN (mkPN "Cuanza") ;
+  Countries_TR_provinces_Manisa_cities_Manisa = UsePN (mkPN "Manisa") ;
+  Countries_R_provinces_Rep_ofTatarstan = UsePN (mkPN "Rep. of Tatarstan") ;
+  Countries_IR_provinces_Tehran_cities_Karaj = UsePN (mkPN "Karaj") ;
+  Countries_BR_provinces_EspiritoSanto_cities_CachoeirodeItapemirim = UsePN (mkPN "Cachoeiro de Itapemirim") ;
+  Lakes_Tschadsee = UsePN (mkPN "Tschadsee") ;
+  Countries_RC_provinces_Hsinchu = UsePN (mkPN "Hsinchu") ;
+  Countries_GB_provinces_ValeofGlamorgan_cities_RhymneyValley = UsePN (mkPN "Rhymney Valley") ;
+  Countries_I_provinces_FriuliVeneziaGiulia_cities_Trieste = UsePN (mkPN "Trieste") ;
+  Countries_RA_provinces_Jujuy = UsePN (mkPN "Jujuy") ;
+  Countries_DZ_cities_Blida = UsePN (mkPN "Blida") ;
+  Countries_TR_provinces_Gumushane = UsePN (mkPN "Gumushane") ;
+  Countries_D_provinces_Sachsen_cities_Leipzig = UsePN (mkPN "Leipzig") ;
+  Countries_RN_cities_Niamey = UsePN (mkPN "Niamey") ;
+  Countries_UAE_provinces_RasalKhaymah = UsePN (mkPN "Ras al Khaymah") ;
+  Continents_America = UsePN (mkPN "America") ;
+  Countries_SUD_provinces_AalianNil = UsePN (mkPN "Aali an Nil") ;
+  Countries_PA_provinces_Herrera = UsePN (mkPN "Herrera") ;
+  Countries_WAG_cities_Banjul = UsePN (mkPN "Banjul") ;
+  Countries_BR_provinces_SantaCatarina_cities_Lages = UsePN (mkPN "Lages") ;
+  Countries_P_provinces_Evora = UsePN (mkPN "Evora") ;
+  Countries_ANG_provinces_Luanda_cities_Luanda = UsePN (mkPN "Luanda") ;
+  Rivers_Luvua = UsePN (mkPN "Luvua") ;
+  Countries_cid_cia_Falkland_Islands = UsePN (mkPN "Falkland Islands") ;
+  Countries_D_provinces_SchleswigHolstein_cities_Lubeck = UsePN (mkPN "Lubeck") ;
+  Islands_Samar = UsePN (mkPN "Samar") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Aachen = UsePN (mkPN "Aachen") ;
+  Countries_CH_provinces_ZH_cities_Zurich = UsePN (mkPN "Zurich") ;
+  Countries_THA_provinces_MaeHongSon = UsePN (mkPN "Mae Hong Son") ;
+  Countries_VN_cities_VungTau = UsePN (mkPN "Vung Tau") ;
+  Countries_I_provinces_Toscana_cities_Prato = UsePN (mkPN "Prato") ;
+  Countries_ETH_cities_DireDawa = UsePN (mkPN "Dire Dawa") ;
+  Lakes_LakeKainji = UsePN (mkPN "Lake Kainji") ;
+  Countries_YV_provinces_DeltaAmacuro = UsePN (mkPN "Delta Amacuro") ;
+  Countries_cid_cia_Clipperton_Island = UsePN (mkPN "Clipperton Island") ;
+  Countries_USA_provinces_NewYork_cities_Yonkers = UsePN (mkPN "Yonkers") ;
+  Countries_TR_provinces_Bolu_cities_Bolu = UsePN (mkPN "Bolu") ;
+  Countries_VN_provinces_AnGiang = UsePN (mkPN "An Giang") ;
+  Countries_IR_provinces_Kerman_cities_Kerman = UsePN (mkPN "Kerman") ;
+  Countries_CO_provinces_Caldas_cities_Manizales = UsePN (mkPN "Manizales") ;
+  Organizations_Inmarsat = UsePN (mkPN "International Mobile Satellite Organization") ;
+  Countries_MA_cities_Casablanca = UsePN (mkPN "Casablanca") ;
+  Countries_VN_provinces_QuangBinh = UsePN (mkPN "Quang Binh") ;
+  Countries_CO_provinces_ValledeCauca_cities_Cali = UsePN (mkPN "Cali") ;
+  Countries_VN_provinces_NinhThuan = UsePN (mkPN "Ninh Thuan") ;
+  Countries_I_provinces_Umbria = UsePN (mkPN "Umbria") ;
+  Countries_CO_provinces_Antioquia_cities_Envigado = UsePN (mkPN "Envigado") ;
+  Countries_J_provinces_Hiroshima_cities_Hiroshima = UsePN (mkPN "Hiroshima") ;
+  Countries_SUD_provinces_alIstiwaiyah_cities_Juba = UsePN (mkPN "Juba") ;
+  Countries_TJ_provinces_Jiangsu_cities_Kunshan = UsePN (mkPN "Kunshan") ;
+  Countries_D_provinces_SachsenAnhalt = UsePN (mkPN "Sachsen Anhalt") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Korla = UsePN (mkPN "Korla") ;
+  Countries_BR_provinces_SaoPaulo_cities_Aracatuba = UsePN (mkPN "Aracatuba") ;
+  Countries_TJ_provinces_Jilin_cities_Changchun = UsePN (mkPN "Changchun") ;
+  Countries_I_provinces_Veneto_cities_Verona = UsePN (mkPN "Verona") ;
+  Countries_USA_provinces_Ohio = UsePN (mkPN "Ohio") ;
+  Countries_HCA_provinces_Yoro_cities_ElProgreso = UsePN (mkPN "El Progreso") ;
+  Countries_USA_provinces_Colorado_cities_Lakewood = UsePN (mkPN "Lakewood") ;
+  Countries_TR_provinces_Karaman = UsePN (mkPN "Karaman") ;
+  Countries_TR_provinces_Malatya = UsePN (mkPN "Malatya") ;
+  Countries_R_provinces_UdmurtRepublic = UsePN (mkPN "Udmurt Republic") ;
+  Countries_MOC_provinces_Inhambane = UsePN (mkPN "Inhambane") ;
+  Countries_ET_provinces_ElGharbiya = UsePN (mkPN "El Gharbiya") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Essen = UsePN (mkPN "Essen") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Monchengladbach = UsePN (mkPN "Monchengladbach") ;
+  Countries_WAN_cities_Gusau = UsePN (mkPN "Gusau") ;
+  Seas_SeaofAzov = UsePN (mkPN "Sea of Azov") ;
+  Countries_VN_provinces_HaiHung = UsePN (mkPN "Hai Hung") ;
+  Countries_NL_provinces_Limburg_cities_Maastricht = UsePN (mkPN "Maastricht") ;
+  Countries_H_provinces_Somogy = UsePN (mkPN "Somogy") ;
+  Countries_UA_provinces_Vinnytska = UsePN (mkPN "Vinnytska") ;
+  Countries_TJ_provinces_Hunan = UsePN (mkPN "Hunan") ;
+  Countries_TJ_provinces_Hubei_cities_Zaoyang = UsePN (mkPN "Zaoyang") ;
+  Countries_IL_provinces_South_cities_BeerSheva = UsePN (mkPN "Beer Sheva") ;
+  Countries_IND_provinces_Karnataka_cities_Mysore = UsePN (mkPN "Mysore") ;
+  Countries_I_provinces_Campania_cities_TorredelGreco = UsePN (mkPN "Torre del Greco") ;
+  Countries_RI_cities_Palembang = UsePN (mkPN "Palembang") ;
+  Countries_TAD_provinces_Kulob_cities_Kulob = UsePN (mkPN "Kulob") ;
+  Countries_USA_provinces_Indiana_cities_SouthBend = UsePN (mkPN "South Bend") ;
+  Countries_ROU_cities_Montevideo = UsePN (mkPN "Montevideo") ;
+  Countries_RM_provinces_Mahajanga_cities_Majunga = UsePN (mkPN "Majunga") ;
+  Countries_GB_provinces_Hertfordshire_cities_Hertford = UsePN (mkPN "Hertford") ;
+  Countries_CAM_provinces_Adamaoua = UsePN (mkPN "Adamaoua") ;
+  Rivers_Karun = UsePN (mkPN "Karun") ;
+  Countries_UA_provinces_Kirovohradska_cities_Kirovohrad = UsePN (mkPN "Kirovohrad") ;
+  Countries_RI_cities_Samarinda = UsePN (mkPN "Samarinda") ;
+  Islands_SantaCruzIsland = UsePN (mkPN "Santa Cruz Island") ;
+  Countries_SF_provinces_Lappia = UsePN (mkPN "Lappia") ;
+  Countries_MAL_provinces_Perak = UsePN (mkPN "Perak") ;
+  Countries_TJ_provinces_Guizhou_cities_Guiyang = UsePN (mkPN "Guiyang") ;
+  Countries_ZRE_provinces_Shaba = UsePN (mkPN "Shaba") ;
+  Countries_RA_provinces_BuenosAires_cities_LaMatanza = UsePN (mkPN "La Matanza") ;
+  Rivers_Zambezi = UsePN (mkPN "Zambezi") ;
+  Countries_TJ_provinces_Jiangsu_cities_Suqian = UsePN (mkPN "Suqian") ;
+  Countries_E_provinces_Rioja = UsePN (mkPN "Rioja") ;
+  Countries_PK_cities_Mardan = UsePN (mkPN "Mardan") ;
+  Countries_CAM_provinces_Nordoueste_cities_Bamenda = UsePN (mkPN "Bamenda") ;
+  Islands_Iceland = UsePN (mkPN "Iceland") ;
+  Countries_R_cities_Zagorsk = UsePN (mkPN "Zagorsk") ;
+  Countries_USA_provinces_NewYork = UsePN (mkPN "New York") ;
+  Countries_Z_provinces_Northern = UsePN (mkPN "Northern") ;
+  Countries_IR_provinces_Esfahan = UsePN (mkPN "Esfahan") ;
+  Countries_I_provinces_Toscana_cities_Firenze = UsePN (mkPN "Firenze") ;
+  Countries_CO_provinces_Guajira_La_cities_Cienaga = UsePN (mkPN "Cienaga") ;
+  Countries_TJ_provinces_Shandong_cities_Yantai = UsePN (mkPN "Yantai") ;
+  Countries_NOK_cities_Tanchon = UsePN (mkPN "Tanchon") ;
+  Countries_GB_provinces_Shropshire_cities_Shrewsbury = UsePN (mkPN "Shrewsbury") ;
+  Rivers_Loire = UsePN (mkPN "Loire") ;
+  Countries_PL_provinces_Rzeszowskie = UsePN (mkPN "Rzeszowskie") ;
+  Countries_TJ_provinces_Zhejiang_cities_Zhoushan = UsePN (mkPN "Zhoushan") ;
+  Countries_N_provinces_Finnmark_cities_Vadsoe = UsePN (mkPN "Vadsoe") ;
+  Countries_USA_provinces_Indiana_cities_Indianapolis = UsePN (mkPN "Indianapolis") ;
+  Countries_GB_provinces_Grampian_cities_Aberdeen = UsePN (mkPN "Aberdeen") ;
+  Countries_BR_provinces_SantaCatarina_cities_PraiaGrande = UsePN (mkPN "Praia Grande") ;
+  Countries_PE_provinces_Piura_cities_Sullana = UsePN (mkPN "Sullana") ;
+  Countries_USA_provinces_Oregon_cities_Eugene = UsePN (mkPN "Eugene") ;
+  Countries_YV_provinces_Portuguesa_cities_Acarigua = UsePN (mkPN "Acarigua") ;
+  Countries_GB_provinces_Essex_cities_Colchester = UsePN (mkPN "Colchester") ;
+  Countries_USA_provinces_California_cities_WestCovina = UsePN (mkPN "West Covina") ;
+  Countries_USA_provinces_Alaska_cities_Anchorage = UsePN (mkPN "Anchorage") ;
+  Countries_CO_provinces_Atlantico = UsePN (mkPN "Atlantico") ;
+  Countries_GB_provinces_Gloucestershire_cities_Gloucester = UsePN (mkPN "Gloucester") ;
+  Countries_THA_provinces_ChiangMai_cities_ChiangMai = UsePN (mkPN "Chiang Mai") ;
+  Countries_CH_provinces_SG = UsePN (mkPN "SG") ;
+  Countries_MEX_provinces_Veracruz_cities_Cordoba = UsePN (mkPN "Cordoba") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Shangzhi = UsePN (mkPN "Shangzhi") ;
+  Mountains_Jezerce = UsePN (mkPN "Jezerce") ;
+  Countries_USA_provinces_Michigan_cities_SterlingHeights = UsePN (mkPN "Sterling Heights") ;
+  Countries_R_provinces_Kaliningradskayaoblast = UsePN (mkPN "Kaliningradskaya oblast") ;
+  Rivers_Ingoda = UsePN (mkPN "Ingoda") ;
+  Countries_UA_provinces_Khmelnytska_cities_Khmelnytskyy = UsePN (mkPN "Khmelnytskyy") ;
+  Countries_WAN_cities_Akure = UsePN (mkPN "Akure") ;
+  Countries_THA_provinces_Chachoengsao = UsePN (mkPN "Chachoengsao") ;
+  Countries_USA_provinces_Arizona_cities_Mesa = UsePN (mkPN "Mesa") ;
+  Countries_PL_provinces_Radomskie = UsePN (mkPN "Radomskie") ;
+  Countries_USA_provinces_NewMexico = UsePN (mkPN "New Mexico") ;
+  Countries_USA_provinces_Texas_cities_Lubbock = UsePN (mkPN "Lubbock") ;
+  Islands_GrKomoro = UsePN (mkPN "Gr Komoro") ;
+  Countries_USA_provinces_Massachusetts_cities_Springfield = UsePN (mkPN "Springfield") ;
+  Countries_RA_provinces_BuenosAires = UsePN (mkPN "Buenos Aires") ;
+  Countries_GB_provinces_Bridgend = UsePN (mkPN "Bridgend") ;
+  Countries_S_provinces_Alvsborg = UsePN (mkPN "Alvsborg") ;
+  Countries_S_provinces_Uppsala = UsePN (mkPN "Uppsala") ;
+  Countries_TJ_provinces_Zhejiang_cities_Jinhua = UsePN (mkPN "Jinhua") ;
+  Countries_GB_provinces_GreaterManchester_cities_Manchester = UsePN (mkPN "Manchester") ;
+  Countries_USA_provinces_Alaska = UsePN (mkPN "Alaska") ;
+  Rivers_Oranje = UsePN (mkPN "Oranje") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_LeninskKuznetskiy = UsePN (mkPN "Leninsk Kuznetskiy") ;
+  Countries_GB_provinces_WestYorkshire_cities_Kirklees = UsePN (mkPN "Kirklees") ;
+  Countries_R_provinces_Tomskayaoblast_cities_Tomsk = UsePN (mkPN "Tomsk") ;
+  Countries_S_provinces_Vasterbotten_cities_Umea = UsePN (mkPN "Umea") ;
+  Countries_TJ_provinces_Sichuan_cities_Xichang = UsePN (mkPN "Xichang") ;
+  Countries_THA_provinces_Nonthaburi = UsePN (mkPN "Nonthaburi") ;
+  Countries_BR_provinces_SaoPaulo_cities_Santos = UsePN (mkPN "Santos") ;
+  Countries_TJ_provinces_Liaoning_cities_Panshan = UsePN (mkPN "Panshan") ;
+  Countries_USA_provinces_California_cities_SanDiego = UsePN (mkPN "San Diego") ;
+  Countries_THA_provinces_Sukhothai = UsePN (mkPN "Sukhothai") ;
+  Countries_SUD_provinces_alWusta_cities_WadMadani = UsePN (mkPN "Wad Madani") ;
+  Countries_RP_cities_Cebu = UsePN (mkPN "Cebu") ;
+  Countries_CO_provinces_Cundinamarca = UsePN (mkPN "Cundinamarca") ;
+  Countries_KAZ_provinces_BatysQazaqstan_cities_Oral = UsePN (mkPN "Oral") ;
+  Countries_cid_cia_Gibraltar = UsePN (mkPN "Gibraltar") ;
+  Countries_UZB_provinces_Qasqadare = UsePN (mkPN "Qasqadare") ;
+  Countries_N_provinces_Finnmark = UsePN (mkPN "Finnmark") ;
+  Countries_GR_provinces_DhytikiMakedhonia = UsePN (mkPN "Dhytiki Makedhonia") ;
+  Countries_BR_provinces_SaoPaulo_cities_RibeiraoPreto = UsePN (mkPN "Ribeirao Preto") ;
+  Countries_KAZ_provinces_Pavlodar_cities_Ekibastuz = UsePN (mkPN "Ekibastuz") ;
+  Countries_D_provinces_Bremen_cities_Bremerhaven = UsePN (mkPN "Bremerhaven") ;
+  Countries_USA_provinces_California_cities_Vallejo = UsePN (mkPN "Vallejo") ;
+  Countries_IR_provinces_Mazandaran_cities_GonbadeKavus = UsePN (mkPN "Gonbad e Kavus") ;
+  Countries_CH_provinces_OW = UsePN (mkPN "OW") ;
+  Organizations_LAIA = UsePN (mkPN "Latin American Integration Association") ;
+  Countries_EAT_provinces_Mwanza_cities_Mwanza = UsePN (mkPN "Mwanza") ;
+  Organizations_WToO = UsePN (mkPN "World Tourism Organization") ;
+  Countries_TR_provinces_Mardin = UsePN (mkPN "Mardin") ;
+  Countries_MAL_provinces_Selangor = UsePN (mkPN "Selangor") ;
+  Countries_PL_provinces_Chelmskie_cities_Chelm = UsePN (mkPN "Chelm") ;
+  Countries_SN_provinces_Louga_cities_Louga = UsePN (mkPN "Louga") ;
+  Countries_D_provinces_RheinlandPfalz_cities_Kaiserslautern = UsePN (mkPN "Kaiserslautern") ;
+  Mountains_ClingmansDome = UsePN (mkPN "Clingmans Dome") ;
+  Countries_J_provinces_Miyazaki = UsePN (mkPN "Miyazaki") ;
+  Countries_IND_provinces_Maharashtra_cities_Nagpur = UsePN (mkPN "Nagpur") ;
+  Countries_J_provinces_Kochi = UsePN (mkPN "Kochi") ;
+  Countries_USA_provinces_NorthCarolina = UsePN (mkPN "North Carolina") ;
+  Countries_CO_provinces_NortedeSantander = UsePN (mkPN "Norte de Santander") ;
+  Countries_CO_provinces_ValledeCauca_cities_Tulua = UsePN (mkPN "Tulua") ;
+  Countries_RA_provinces_SanJuan = UsePN (mkPN "San Juan") ;
+  Countries_MAL_provinces_Fed_Terr_ofLabuan = UsePN (mkPN "Fed. Terr. of Labuan") ;
+  Countries_USA_provinces_Ohio_cities_Cincinnati = UsePN (mkPN "Cincinnati") ;
+  Countries_HCA_provinces_SantaBarbara_cities_SantaBarbara = UsePN (mkPN "Santa Barbara") ;
+  Countries_IR_provinces_Kerman_cities_Sirjan = UsePN (mkPN "Sirjan") ;
+  Countries_EAT_provinces_Ruvuma_cities_Songea = UsePN (mkPN "Songea") ;
+  Countries_ANG_provinces_Namibe_cities_Namibe = UsePN (mkPN "Namibe") ;
+  Countries_RO_provinces_Vilcea_cities_RimnicuVilcea = UsePN (mkPN "Rimnicu Vilcea") ;
+  Countries_HCA_provinces_GraciasaDios = UsePN (mkPN "Gracias a Dios") ;
+  Countries_USA_provinces_Nevada_cities_Henderson = UsePN (mkPN "Henderson") ;
+  Countries_WAN_cities_Onitsha = UsePN (mkPN "Onitsha") ;
+  Countries_PL_provinces_Przemyskie = UsePN (mkPN "Przemyskie") ;
+  Lakes_OzeroLadoga = UsePN (mkPN "Ozero Ladoga") ;
+  Countries_CO_provinces_Putumayo_cities_Mocoa = UsePN (mkPN "Mocoa") ;
+  Countries_TJ_provinces_Shaanxi_cities_Tongchuan = UsePN (mkPN "Tongchuan") ;
+  Countries_PE_provinces_Junin_cities_Huancayo = UsePN (mkPN "Huancayo") ;
+  Countries_BR_provinces_Parana_cities_Londrina = UsePN (mkPN "Londrina") ;
+  Countries_RSA_provinces_Gauteng = UsePN (mkPN "Gauteng") ;
+  Countries_RO_provinces_SatuMare_cities_SatuMare = UsePN (mkPN "Satu Mare") ;
+  Countries_USA_provinces_Michigan_cities_Detroit = UsePN (mkPN "Detroit") ;
+  Countries_USA_provinces_Wisconsin_cities_Madison = UsePN (mkPN "Madison") ;
+  Countries_S_provinces_Uppsala_cities_Uppsala = UsePN (mkPN "Uppsala") ;
+  Countries_USA_provinces_Connecticut_cities_Bridgeport = UsePN (mkPN "Bridgeport") ;
+  Countries_R_provinces_UdmurtRepublic_cities_Izhevsk = UsePN (mkPN "Izhevsk") ;
+  Countries_THA_provinces_Uttaradit = UsePN (mkPN "Uttaradit") ;
+  Countries_PE_provinces_Tacna = UsePN (mkPN "Tacna") ;
+  Countries_E_provinces_Galicia_cities_LaCoruna = UsePN (mkPN "La Coruna") ;
+  Countries_R_provinces_Voronezhskayaoblast_cities_Voronezh = UsePN (mkPN "Voronezh") ;
+  Countries_PL_provinces_Bielskie = UsePN (mkPN "Bielskie") ;
+  Countries_ANG_provinces_Bengo_cities_Caxito = UsePN (mkPN "Caxito") ;
+  Countries_EAK_provinces_Coast_cities_Malindi = UsePN (mkPN "Malindi") ;
+  Countries_F_provinces_PaysdelaLoire_cities_LeMans = UsePN (mkPN "Le Mans") ;
+  Countries_I_provinces_Puglia = UsePN (mkPN "Puglia") ;
+  Countries_RO_provinces_Arad = UsePN (mkPN "Arad") ;
+  Countries_RSA_provinces_WesternCape = UsePN (mkPN "Western Cape") ;
+  Countries_BR_provinces_Ceara = UsePN (mkPN "Ceara") ;
+  Countries_RO_provinces_Prahova_cities_Ploiesti = UsePN (mkPN "Ploiesti") ;
+  Countries_GR_provinces_VoreionAiyaion = UsePN (mkPN "Voreion Aiyaion") ;
+  Countries_N_provinces_Hordaland = UsePN (mkPN "Hordaland") ;
+  Countries_GB_provinces_Powys = UsePN (mkPN "Powys") ;
+  Countries_TJ_provinces_Anhui = UsePN (mkPN "Anhui") ;
+  Countries_USA_provinces_Hawaii_cities_Honolulu = UsePN (mkPN "Honolulu") ;
+  Organizations_IFRCS = UsePN (mkPN "International Federation of Red Cross and Red Crescent Societies") ;
+  Countries_RO_provinces_Maramures_cities_BaiaMare = UsePN (mkPN "Baia Mare") ;
+  Countries_IND_provinces_ArunachalPradesh = UsePN (mkPN "Arunachal Pradesh") ;
+  Countries_F_provinces_LanguedocRousillon = UsePN (mkPN "Languedoc Rousillon") ;
+  Countries_RC_provinces_Hsinchu_munic_cities_Hsinchu = UsePN (mkPN "Hsinchu") ;
+  Countries_TJ_provinces_Hunan_cities_Xiangtan = UsePN (mkPN "Xiangtan") ;
+  Countries_RI_cities_BandarLampung = UsePN (mkPN "Bandar Lampung") ;
+  Countries_IND_provinces_Mizoram = UsePN (mkPN "Mizoram") ;
+  Islands_SanClementeIsland = UsePN (mkPN "San Clemente Island") ;
+  Countries_FGU_cities_Cayenne = UsePN (mkPN "Cayenne") ;
+  Seas_BlackSea = UsePN (mkPN "Black Sea") ;
+  Countries_HCA_provinces_Intibuca = UsePN (mkPN "Intibuca") ;
+  Countries_BR_provinces_SaoPaulo_cities_Campinas = UsePN (mkPN "Campinas") ;
+  Countries_RA_provinces_Mendoza = UsePN (mkPN "Mendoza") ;
+  Countries_SUD_provinces_Kurdufan = UsePN (mkPN "Kurdufan") ;
+  Countries_E_provinces_Andalusia_cities_Jaen = UsePN (mkPN "Jaen") ;
+  Countries_E_provinces_Madrid_cities_Mostoles = UsePN (mkPN "Mostoles") ;
+  Countries_BR_provinces_Para_cities_Santarem = UsePN (mkPN "Santarem") ;
+  Countries_R_provinces_Kirovskayaoblast_cities_Kirov = UsePN (mkPN "Kirov") ;
+  Countries_NL_provinces_Overijssel_cities_Zwolle = UsePN (mkPN "Zwolle") ;
+  Islands_Nevis = UsePN (mkPN "Nevis") ;
+  Islands_Coll = UsePN (mkPN "Coll") ;
+  Countries_USA_provinces_Florida_cities_Hialeah = UsePN (mkPN "Hialeah") ;
+  Countries_A_provinces_Styria_cities_Graz = UsePN (mkPN "Graz") ;
+  Countries_HCA_provinces_IslasdelaBahia_cities_Roatan = UsePN (mkPN "Roatan") ;
+  Countries_TJ_provinces_Fujian = UsePN (mkPN "Fujian") ;
+  Countries_RSM_cities_SanMarino = UsePN (mkPN "San Marino") ;
+  Islands_Honshu = UsePN (mkPN "Honshu") ;
+  Countries_GB_provinces_Staffordshire = UsePN (mkPN "Staffordshire") ;
+  Countries_YV_provinces_Monagas_cities_Maturin = UsePN (mkPN "Maturin") ;
+  Countries_GB_provinces_Essex_cities_Basildon = UsePN (mkPN "Basildon") ;
+  Countries_ES_provinces_LaUnion = UsePN (mkPN "La Union") ;
+  Countries_D_provinces_SchleswigHolstein_cities_Kiel = UsePN (mkPN "Kiel") ;
+  Countries_RSA_cities_Katlehong = UsePN (mkPN "Katlehong") ;
+  Lakes_LakeTorren = UsePN (mkPN "Lake Torren") ;
+  Countries_UZB_provinces_Farghona_cities_Quqon = UsePN (mkPN "Quqon") ;
+  Countries_THA_provinces_Kanchanaburi = UsePN (mkPN "Kanchanaburi") ;
+  Countries_RP_cities_Manila = UsePN (mkPN "Manila") ;
+  Lakes_LakeSkutari = UsePN (mkPN "Lake Skutari") ;
+  Countries_J_provinces_Kyoto_cities_Kyoto = UsePN (mkPN "Kyoto") ;
+  Countries_YV_provinces_Portuguesa = UsePN (mkPN "Portuguesa") ;
+  Mountains_NevadodeToluca = UsePN (mkPN "Nevado de Toluca") ;
+  Mountains_MountEverest = UsePN (mkPN "Mount Everest") ;
+  Countries_VN_provinces_ThaiBinh = UsePN (mkPN "Thai Binh") ;
+  Countries_RM_provinces_Toliary_cities_Toliary = UsePN (mkPN "Toliary") ;
+  Islands_VancouverIsland = UsePN (mkPN "Vancouver Island") ;
+  Lakes_OzeroOnega = UsePN (mkPN "Ozero Onega") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Solingen = UsePN (mkPN "Solingen") ;
+  Countries_USA_provinces_Connecticut = UsePN (mkPN "Connecticut") ;
+  Countries_C_provinces_Guantanamo = UsePN (mkPN "Guantanamo") ;
+  Countries_E_provinces_Catalonia_cities_Sabadell = UsePN (mkPN "Sabadell") ;
+  Countries_RC_provinces_Taipei = UsePN (mkPN "Taipei") ;
+  Countries_USA_provinces_Washington_cities_Spokane = UsePN (mkPN "Spokane") ;
+  Countries_AL_cities_Vlore = UsePN (mkPN "Vlore") ;
+  Countries_PL_provinces_Bielskie_cities_BielskoBiala = UsePN (mkPN "Bielsko Biala") ;
+  Countries_MEX_provinces_Hidalgo_cities_Pachuca = UsePN (mkPN "Pachuca") ;
+  Countries_cid_cia_Wallis_and_Futuna_cities_Mata_Utu = UsePN (mkPN "Mata-Utu") ;
+  Countries_VN_provinces_HoaBinh = UsePN (mkPN "Hoa Binh") ;
+  Organizations_ECLAC = UsePN (mkPN "Economic Commission for Latin America and the Caribbean") ;
+  Countries_EAT_provinces_Ruvuma = UsePN (mkPN "Ruvuma") ;
+  Countries_IND_provinces_Assam = UsePN (mkPN "Assam") ;
+  Countries_R_provinces_Omskayaoblast_cities_Omsk = UsePN (mkPN "Omsk") ;
+  Countries_N_provinces_Finnmark_cities_Hammerfest = UsePN (mkPN "Hammerfest") ;
+  Countries_TJ_provinces_Hunan_cities_Loudi = UsePN (mkPN "Loudi") ;
+  Countries_THA_provinces_Saraburi_cities_Saraburi = UsePN (mkPN "Saraburi") ;
+  Mountains_MtWashington = UsePN (mkPN "Mt Washington") ;
+  Organizations_UPU = UsePN (mkPN "Universal Postal Union") ;
+  Countries_R_provinces_Ryazanskayaoblast_cities_Ryazan = UsePN (mkPN "Ryazan") ;
+  Countries_NL_provinces_Overijssel = UsePN (mkPN "Overijssel") ;
+  Countries_cid_cia_Navassa_Island = UsePN (mkPN "Navassa Island") ;
+  Countries_THA_provinces_Chanthaburi = UsePN (mkPN "Chanthaburi") ;
+  Countries_KAZ_provinces_Almaty_munic_cities_Almaty = UsePN (mkPN "Almaty") ;
+  Countries_F_provinces_Corse_cities_Ajaccio = UsePN (mkPN "Ajaccio") ;
+  Countries_I_provinces_Puglia_cities_Bari = UsePN (mkPN "Bari") ;
+  Countries_MEX_provinces_Campeche_cities_Campeche = UsePN (mkPN "Campeche") ;
+  Countries_BR_cities_Alvorada = UsePN (mkPN "Alvorada") ;
+  Organizations_AfDB = UsePN (mkPN "African Development Bank") ;
+  Rivers_Kokemaeenjoki = UsePN (mkPN "Kokemaeenjoki") ;
+  Countries_UA_provinces_Kyyivska = UsePN (mkPN "Kyyivska") ;
+  Organizations_CAEU = UsePN (mkPN "Council of Arab Economic Unity") ;
+  Countries_cid_cia_Jan_Mayen = UsePN (mkPN "Jan Mayen") ;
+  Countries_R_provinces_Leningradskayaoblast = UsePN (mkPN "Leningradskaya oblast") ;
+  Countries_RCB_cities_Brazzaville = UsePN (mkPN "Brazzaville") ;
+  Countries_F_provinces_Aquitaine_cities_Bordeaux = UsePN (mkPN "Bordeaux") ;
+  Countries_BR_provinces_SaoPaulo_cities_Botucatu = UsePN (mkPN "Botucatu") ;
+  Countries_USA_provinces_Florida_cities_Hollywood = UsePN (mkPN "Hollywood") ;
+  Countries_S_provinces_Ostergotland_cities_Norrkoping = UsePN (mkPN "Norrkoping") ;
+  Countries_ES_provinces_LaLibertad = UsePN (mkPN "La Libertad") ;
+  Countries_USA_provinces_California_cities_Pomona = UsePN (mkPN "Pomona") ;
+  Countries_BR_cities_Abaetetuba = UsePN (mkPN "Abaetetuba") ;
+  Countries_WAN_cities_Ikorodu = UsePN (mkPN "Ikorodu") ;
+  Countries_ET_provinces_SinaashShamaliyah_cities_ElArish = UsePN (mkPN "El Arish") ;
+  Rivers_Lukuga = UsePN (mkPN "Lukuga") ;
+  Countries_TJ_provinces_Guangdong_cities_Heyuan = UsePN (mkPN "Heyuan") ;
+  Countries_KAZ_provinces_Qaraghandy_cities_Karaganda = UsePN (mkPN "Karaganda") ;
+  Countries_TR_provinces_Tokat_cities_Tokat = UsePN (mkPN "Tokat") ;
+  Countries_C_provinces_Guantanamo_cities_Guantanamo = UsePN (mkPN "Guantanamo") ;
+  Islands_Hoy = UsePN (mkPN "Hoy") ;
+  Countries_BR_cities_Sumare = UsePN (mkPN "Sumare") ;
+  Mountains_Kenia = UsePN (mkPN "Kenia") ;
+  Rivers_Bani = UsePN (mkPN "Bani") ;
+  Countries_RA_provinces_RioNegro = UsePN (mkPN "Rio Negro") ;
+  Countries_WAN_cities_Ila = UsePN (mkPN "Ila") ;
+  Countries_TJ_provinces_Hunan_cities_Yiyang = UsePN (mkPN "Yiyang") ;
+  Countries_PL_provinces_Lodzkie = UsePN (mkPN "Lodzkie") ;
+  Countries_NL_provinces_Friesland = UsePN (mkPN "Friesland") ;
+  Countries_RP_cities_Pasig = UsePN (mkPN "Pasig") ;
+  Countries_R_provinces_Pskovskayaoblast_cities_VelikiyeLuki = UsePN (mkPN "Velikiye Luki") ;
+  Countries_E_provinces_Madrid_cities_AlcaladeHenares = UsePN (mkPN "Alcala de Henares") ;
+  Countries_cid_cia_Bouvet_Island = UsePN (mkPN "Bouvet Island") ;
+  Countries_GB_provinces_Oxfordshire = UsePN (mkPN "Oxfordshire") ;
+  Countries_CO_provinces_NortedeSantander_cities_Cucuta = UsePN (mkPN "Cucuta") ;
+  Countries_GB_provinces_Lancashire_cities_Lancaster = UsePN (mkPN "Lancaster") ;
+  Countries_cid_cia_Europa_Island = UsePN (mkPN "Europa Island") ;
+  Countries_CO_provinces_Bolivar = UsePN (mkPN "Bolivar") ;
+  Countries_ET_provinces_ElGharbiya_cities_Tanta = UsePN (mkPN "Tanta") ;
+  Countries_TJ_provinces_Henan = UsePN (mkPN "Henan") ;
+  Countries_BR_provinces_Para_cities_Castanhal = UsePN (mkPN "Castanhal") ;
+  Countries_R_provinces_Orlovskayaoblast = UsePN (mkPN "Orlovskaya oblast") ;
+  Countries_MEX_provinces_Guanajuato_cities_Celaya = UsePN (mkPN "Celaya") ;
+  Countries_MAL_provinces_Kelantan = UsePN (mkPN "Kelantan") ;
+  Countries_UA_provinces_Donetska_cities_Makiyivka = UsePN (mkPN "Makiyivka") ;
+  Countries_WAN_cities_Ikerre = UsePN (mkPN "Ikerre") ;
+  Countries_cid_cia_Johnston_Atoll = UsePN (mkPN "Johnston Atoll") ;
+  Countries_RC_cities_Hsinchuang = UsePN (mkPN "Hsinchuang") ;
+  Countries_I_provinces_Liguria_cities_LaSpezia = UsePN (mkPN "La Spezia") ;
+  Countries_RM_provinces_Toamasina_cities_Tamatave = UsePN (mkPN "Tamatave") ;
+  Countries_S_provinces_Kristianstad_cities_Kristianstad = UsePN (mkPN "Kristianstad") ;
+  Countries_R_provinces_UdmurtRepublic_cities_Glazov = UsePN (mkPN "Glazov") ;
+  Countries_HCA_provinces_Lempira = UsePN (mkPN "Lempira") ;
+  Rivers_Vaal = UsePN (mkPN "Vaal") ;
+  Countries_TJ_provinces_Anhui_cities_Xuancheng = UsePN (mkPN "Xuancheng") ;
+  Countries_ET_provinces_ElWadielJadid_cities_ElKharga = UsePN (mkPN "El Kharga") ;
+  Countries_R_provinces_Vladimirskayaoblast_cities_Vladimir = UsePN (mkPN "Vladimir") ;
+  Mountains_Portefjaellen = UsePN (mkPN "Portefjaellen") ;
+  Countries_PL_provinces_Warszwaskie_cities_Warsaw = UsePN (mkPN "Warsaw") ;
+  Countries_IRQ_provinces_Babil = UsePN (mkPN "Babil") ;
+  Countries_CZ_provinces_Zapadocesky = UsePN (mkPN "Zapadocesky") ;
+  Organizations_Benelux = UsePN (mkPN "Benelux Economic Union") ;
+  Countries_TJ_provinces_Sichuan_cities_Chengdu = UsePN (mkPN "Chengdu") ;
+  Countries_PL_provinces_Lomzynskie_cities_Lomza = UsePN (mkPN "Lomza") ;
+  Countries_CO_provinces_Risaralda = UsePN (mkPN "Risaralda") ;
+  Countries_R_provinces_Kostromskayaoblast = UsePN (mkPN "Kostromskaya oblast") ;
+  Countries_E_provinces_Catalonia_cities_HospitaletdeLlobregat = UsePN (mkPN "Hospitalet de Llobregat") ;
+  Countries_GR_provinces_Attiki = UsePN (mkPN "Attiki") ;
+  Countries_D_provinces_Bayern_cities_Nurnberg = UsePN (mkPN "Nurnberg") ;
+  Countries_USA_provinces_Mississippi_cities_Jackson = UsePN (mkPN "Jackson") ;
+  Islands_Montserrat = UsePN (mkPN "Montserrat") ;
+  Countries_R_provinces_Magadanskayaoblast_cities_Magadan = UsePN (mkPN "Magadan") ;
+  Countries_ES_provinces_Chalatenango_cities_Chalatenango = UsePN (mkPN "Chalatenango") ;
+  Countries_CO_provinces_Narino = UsePN (mkPN "Narino") ;
+  Islands_SantaRosaIsland = UsePN (mkPN "Santa Rosa Island") ;
+  Countries_MEX_provinces_Hidalgo = UsePN (mkPN "Hidalgo") ;
+  Countries_R_provinces_Ivanovskayaoblast = UsePN (mkPN "Ivanovskaya oblast") ;
+  Countries_C_provinces_CiegodeAvila = UsePN (mkPN "Ciego de Avila") ;
+  Countries_R_provinces_Tulskayaoblast_cities_Novomoskovsk = UsePN (mkPN "Novomoskovsk") ;
+  Countries_GB_provinces_GreaterManchester_cities_Wigan = UsePN (mkPN "Wigan") ;
+  Countries_GB_provinces_Central_cities_Stirling = UsePN (mkPN "Stirling") ;
+  Countries_USA_provinces_Texas_cities_Laredo = UsePN (mkPN "Laredo") ;
+  Rivers_Chire = UsePN (mkPN "Chire") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Hohhot = UsePN (mkPN "Hohhot") ;
+  Countries_CZ_provinces_Severocesky_cities_Liberec = UsePN (mkPN "Liberec") ;
+  Lakes_LakePrespa = UsePN (mkPN "Lake Prespa") ;
+  Rivers_Cunene = UsePN (mkPN "Cunene") ;
+  Rivers_Arkansas = UsePN (mkPN "Arkansas") ;
+  Countries_TJ_provinces_Hunan_cities_Shaoyang = UsePN (mkPN "Shaoyang") ;
+  Countries_VN_provinces_SongBe = UsePN (mkPN "Song Be") ;
+  Countries_J_provinces_Okayama = UsePN (mkPN "Okayama") ;
+  Countries_USA_provinces_Virginia_cities_Chesapeake = UsePN (mkPN "Chesapeake") ;
+  Countries_RSA_cities_Ibhayi = UsePN (mkPN "Ibhayi") ;
+  Countries_CH_provinces_VD = UsePN (mkPN "VD") ;
+  Lakes_LakeWilliston = UsePN (mkPN "Lake Williston") ;
+  Islands_Shikoku = UsePN (mkPN "Shikoku") ;
+  Countries_IR_provinces_Khuzestan_cities_Dezful = UsePN (mkPN "Dezful") ;
+  Countries_IND_provinces_Bihar = UsePN (mkPN "Bihar") ;
+  Deserts_Makteir = UsePN (mkPN "Makteir") ;
+  Countries_EAT_provinces_Mwanza = UsePN (mkPN "Mwanza") ;
+  Rivers_Weichsel = UsePN (mkPN "Weichsel") ;
+  Countries_PL_provinces_Poznanskie = UsePN (mkPN "Poznanskie") ;
+  Countries_GB_provinces_Somerset_cities_Taunton = UsePN (mkPN "Taunton") ;
+  Countries_RO_provinces_Salaj = UsePN (mkPN "Salaj") ;
+  Countries_R_provinces_Belgorodskayaoblast = UsePN (mkPN "Belgorodskaya oblast") ;
+  Countries_CH_provinces_BL = UsePN (mkPN "BL") ;
+  Countries_RA_provinces_Corrientes_cities_Corrientes = UsePN (mkPN "Corrientes") ;
+  Countries_TR_provinces_Erzurum_cities_Erzurum = UsePN (mkPN "Erzurum") ;
+  Countries_CDN_provinces_Ontario_cities_SaintCatharines = UsePN (mkPN "Saint Catharines") ;
+  Countries_ET_provinces_ElSuweiz_munic = UsePN (mkPN "El Suweiz (munic.)") ;
+  Countries_BR_provinces_Pernambuco_cities_Petrolina = UsePN (mkPN "Petrolina") ;
+  Islands_Bornholm = UsePN (mkPN "Bornholm") ;
+  Countries_USA_provinces_Texas_cities_Amarillo = UsePN (mkPN "Amarillo") ;
+  Lakes_LakeEduard = UsePN (mkPN "Lake Eduard") ;
+  Countries_GB_provinces_WestMidlands_cities_Wolverhampton = UsePN (mkPN "Wolverhampton") ;
+  Countries_GB_provinces_NorthYorkshire_cities_Northallerton = UsePN (mkPN "Northallerton") ;
+  Seas_PersianGulf = UsePN (mkPN "Persian Gulf") ;
+  Organizations_BDEAC = UsePN (mkPN "Central African States Development Bank") ;
+  Countries_J_provinces_Gumma_cities_Maebashi = UsePN (mkPN "Maebashi") ;
+  Countries_GB_provinces_Dorset_cities_Dorchester = UsePN (mkPN "Dorchester") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Guntur = UsePN (mkPN "Guntur") ;
+  Countries_EAK_provinces_Central_cities_Nyeri = UsePN (mkPN "Nyeri") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Stuttgart = UsePN (mkPN "Stuttgart") ;
+  Countries_ROK_cities_Chongju = UsePN (mkPN "Chongju") ;
+  Countries_E_provinces_Catalonia_cities_Mataro = UsePN (mkPN "Mataro") ;
+  Countries_SN_provinces_SaintLouis_cities_SaintLouis = UsePN (mkPN "Saint Louis") ;
+  Countries_UZB_provinces_Surkhondare_cities_Termiz = UsePN (mkPN "Termiz") ;
+  Countries_THA_provinces_Satun = UsePN (mkPN "Satun") ;
+  Countries_IR_provinces_Mazandaran_cities_Gorgan = UsePN (mkPN "Gorgan") ;
+  Countries_TJ_provinces_Sichuan_cities_Guangyuan = UsePN (mkPN "Guangyuan") ;
+  Countries_IRQ_provinces_Wasit = UsePN (mkPN "Wasit") ;
+  Countries_PL_provinces_Ostroleckie_cities_Ostroleka = UsePN (mkPN "Ostroleka") ;
+  Countries_TR_provinces_Balikesir_cities_Balikesir = UsePN (mkPN "Balikesir") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Dortmund = UsePN (mkPN "Dortmund") ;
+  Countries_PL_provinces_Plockie = UsePN (mkPN "Plockie") ;
+  Countries_CZ_provinces_Severomoravsky_cities_Olomouc = UsePN (mkPN "Olomouc") ;
+  Countries_MEX_provinces_Coahuila_cities_Monclova = UsePN (mkPN "Monclova") ;
+  Countries_CAM_provinces_Sud_cities_Ebolowa = UsePN (mkPN "Ebolowa") ;
+  Countries_IND_provinces_TamilNadu_cities_Tiruchchirappalli = UsePN (mkPN "Tiruchchirappalli") ;
+  Countries_THA_provinces_LopBuri = UsePN (mkPN "Lop Buri") ;
+  Countries_EAT_provinces_Tabora_cities_Tabora = UsePN (mkPN "Tabora") ;
+  Countries_TR_provinces_Sanliurfa = UsePN (mkPN "Sanliurfa") ;
+  Countries_THA_provinces_SuratThani = UsePN (mkPN "Surat Thani") ;
+  Countries_USA_provinces_SouthDakota_cities_SiouxFalls = UsePN (mkPN "Sioux Falls") ;
+  Countries_GB_provinces_MerthyrTydfil = UsePN (mkPN "Merthyr Tydfil") ;
+  Countries_BR_provinces_MatoGrossodoSul = UsePN (mkPN "Mato Grosso do Sul") ;
+  Countries_YV_provinces_Bolivar_cities_CiudadGuayana = UsePN (mkPN "Ciudad Guayana") ;
+  Mountains_BoundaryPeak = UsePN (mkPN "Boundary Peak") ;
+  Countries_GB_provinces_AberconwyandColwyn = UsePN (mkPN "Aberconwy and Colwyn") ;
+  Countries_UA_provinces_Zakarpatska_cities_Uzhhorod = UsePN (mkPN "Uzhhorod") ;
+  Countries_R_provinces_Irkutskayaoblast_cities_Irkutsk = UsePN (mkPN "Irkutsk") ;
+  Countries_HCA_provinces_Comayagua = UsePN (mkPN "Comayagua") ;
+  Countries_USA_provinces_NorthCarolina_cities_Durham = UsePN (mkPN "Durham") ;
+  Countries_HCA_provinces_Colon_cities_Trujillo = UsePN (mkPN "Trujillo") ;
+  Countries_WAN_cities_Shaki = UsePN (mkPN "Shaki") ;
+  Countries_SF_provinces_Uusimaa_cities_Helsinki = UsePN (mkPN "Helsinki") ;
+  Countries_I_provinces_Piemonte = UsePN (mkPN "Piemonte") ;
+  Countries_GR_provinces_KedrikiMakedhonia = UsePN (mkPN "Kedriki Makedhonia") ;
+  Countries_USA_provinces_Texas_cities_Arlington = UsePN (mkPN "Arlington") ;
+  Rivers_Casai = UsePN (mkPN "Casai") ;
+  Lakes_LakeKioga = UsePN (mkPN "Lake Kioga") ;
+  Countries_H_provinces_Budapest_munic = UsePN (mkPN "Budapest (munic.)") ;
+  Rivers_Sanga = UsePN (mkPN "Sanga") ;
+  Countries_USA_provinces_Arizona_cities_Scottsdale = UsePN (mkPN "Scottsdale") ;
+  Countries_RO_provinces_Teleorman = UsePN (mkPN "Teleorman") ;
+  Countries_CAM_provinces_Est_cities_Bertoua = UsePN (mkPN "Bertoua") ;
+  Countries_BR_cities_Betim = UsePN (mkPN "Betim") ;
+  Countries_GB_provinces_WestMidlands_cities_Solihull = UsePN (mkPN "Solihull") ;
+  Countries_GB_provinces_RhonddaCynonTaff_cities_Rhondda = UsePN (mkPN "Rhondda") ;
+  Countries_TR_provinces_Ordu = UsePN (mkPN "Ordu") ;
+  Countries_J_provinces_Kanagawa_cities_Kawasaki = UsePN (mkPN "Kawasaki") ;
+  Islands_Tasmania = UsePN (mkPN "Tasmania") ;
+  Countries_DJI_cities_Djibouti = UsePN (mkPN "Djibouti") ;
+  Countries_MEX_provinces_NuevoLeon_cities_Monterrey = UsePN (mkPN "Monterrey") ;
+  Countries_TR_provinces_Hatay_cities_Iskenderun = UsePN (mkPN "Iskenderun") ;
+  Lakes_GreatSaltLake = UsePN (mkPN "Great Salt Lake") ;
+  Countries_WAN_cities_Sapele = UsePN (mkPN "Sapele") ;
+  Countries_USA_provinces_Tennessee_cities_Nashville = UsePN (mkPN "Nashville") ;
+  Countries_CH_provinces_UR = UsePN (mkPN "UR") ;
+  Countries_IR_provinces_AzarbayianeGharbt_cities_Maragheh = UsePN (mkPN "Maragheh") ;
+  Countries_E_provinces_CanaryIslands_cities_LasPalmasdeGranCanaria = UsePN (mkPN "Las Palmas de Gran Canaria") ;
+  Countries_CDN_provinces_Ontario = UsePN (mkPN "Ontario") ;
+  Countries_RO_provinces_Maramures = UsePN (mkPN "Maramures") ;
+  Countries_RI_cities_Gorontalo = UsePN (mkPN "Gorontalo") ;
+  Countries_CH_provinces_LU = UsePN (mkPN "LU") ;
+  Countries_R_provinces_Rep_ofAdygeya = UsePN (mkPN "Rep. of Adygeya") ;
+  Countries_MEX_provinces_Colima_cities_Colima = UsePN (mkPN "Colima") ;
+  Countries_RO_provinces_Calarasi = UsePN (mkPN "Calarasi") ;
+  Countries_S_provinces_Norrbotten = UsePN (mkPN "Norrbotten") ;
+  Countries_TJ_provinces_Shanxi_cities_Yuci = UsePN (mkPN "Yuci") ;
+  Countries_AZ_cities_Baku = UsePN (mkPN "Baku") ;
+  Countries_E_provinces_Catalonia_cities_Tarragona = UsePN (mkPN "Tarragona") ;
+  Countries_I_provinces_Abruzzo_cities_Pescara = UsePN (mkPN "Pescara") ;
+  Countries_R_provinces_Kurskayaoblast = UsePN (mkPN "Kurskaya oblast") ;
+  Countries_RA_provinces_SantaCruz_cities_RioGallegos = UsePN (mkPN "Rio Gallegos") ;
+  Countries_IR_provinces_Hamadan_cities_Malayer = UsePN (mkPN "Malayer") ;
+  Countries_J_provinces_Kumamoto = UsePN (mkPN "Kumamoto") ;
+  Organizations_NAM = UsePN (mkPN "Nonaligned Movement") ;
+  Countries_TJ_provinces_Liaoning_cities_Benxi = UsePN (mkPN "Benxi") ;
+  Rivers_ConnecticutRiver = UsePN (mkPN "Connecticut River") ;
+  Countries_I_provinces_Toscana = UsePN (mkPN "Toscana") ;
+  Countries_BR_provinces_Pernambuco_cities_Garanhuns = UsePN (mkPN "Garanhuns") ;
+  Countries_AL_cities_Tirane = UsePN (mkPN "Tirane") ;
+  Islands_SaintVincent = UsePN (mkPN "Saint Vincent") ;
+  Countries_GB_provinces_Lothian = UsePN (mkPN "Lothian") ;
+  Countries_YV_provinces_Carabobo_cities_Valencia = UsePN (mkPN "Valencia") ;
+  Countries_USA_provinces_NorthCarolina_cities_Raleigh = UsePN (mkPN "Raleigh") ;
+  Countries_WAN_cities_Enugu = UsePN (mkPN "Enugu") ;
+  Countries_R_provinces_Khabarovskiykray_cities_Khabarovsk = UsePN (mkPN "Khabarovsk") ;
+  Countries_IR_provinces_Khorasan_cities_Bojnurd = UsePN (mkPN "Bojnurd") ;
+  Countries_TM_provinces_Balkan_cities_Nebitdag = UsePN (mkPN "Nebitdag") ;
+  Rivers_RiodelaPlata = UsePN (mkPN "Rio de la Plata") ;
+  Rivers_Pibor = UsePN (mkPN "Pibor") ;
+  Countries_BD_cities_Sylhet = UsePN (mkPN "Sylhet") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_MulheimanderRuhr = UsePN (mkPN "Mulheim an der Ruhr") ;
+  Countries_USA_provinces_NewJersey_cities_Paterson = UsePN (mkPN "Paterson") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Fuling = UsePN (mkPN "Fuling") ;
+  Countries_TR_provinces_Kocaeli_cities_Adapazari = UsePN (mkPN "Adapazari") ;
+  Countries_MA_cities_Tetouan = UsePN (mkPN "Tetouan") ;
+  Countries_S_provinces_Kristianstad = UsePN (mkPN "Kristianstad") ;
+  Countries_E_provinces_Andalusia_cities_Sevilla = UsePN (mkPN "Sevilla") ;
+  Countries_S_provinces_Orebro_cities_Orebro = UsePN (mkPN "Orebro") ;
+  Countries_MYA_provinces_Chin_cities_Hakha = UsePN (mkPN "Hakha") ;
+  Countries_TJ_provinces_Hubei_cities_Guangshui = UsePN (mkPN "Guangshui") ;
+  Rivers_Kafue = UsePN (mkPN "Kafue") ;
+  Countries_cid_cia_French_Polynesia_cities_Papeete = UsePN (mkPN "Papeete") ;
+  Countries_BR_provinces_Alagoas_cities_Maceio = UsePN (mkPN "Maceio") ;
+  Countries_TJ_provinces_Henan_cities_Luohe = UsePN (mkPN "Luohe") ;
+  Countries_GR_cities_Piraeus = UsePN (mkPN "Piraeus") ;
+  Countries_ET_provinces_Sohag = UsePN (mkPN "Sohag") ;
+  Countries_GB_provinces_WestMidlands_cities_Coventry = UsePN (mkPN "Coventry") ;
+  Countries_BR_provinces_Bahia_cities_FeiradeSantana = UsePN (mkPN "Feira de Santana") ;
+  Countries_TR_provinces_Diyarbakir_cities_Diyarbakir = UsePN (mkPN "Diyarbakir") ;
+  Organizations_UNRWA = UsePN (mkPN "United Nations Relief and Works Agency for Palestine Refugees in the Near East") ;
+  Countries_WAN_cities_Ibadan = UsePN (mkPN "Ibadan") ;
+  Countries_PK_cities_Islamabad = UsePN (mkPN "Islamabad") ;
+  Countries_RSA_cities_Soshanguve = UsePN (mkPN "Soshanguve") ;
+  Countries_J_provinces_Fukushima_cities_Fukushima = UsePN (mkPN "Fukushima") ;
+  Countries_RM_provinces_Antananarivo = UsePN (mkPN "Antananarivo") ;
+  Countries_P_provinces_Braganca = UsePN (mkPN "Braganca") ;
+  Countries_YV_provinces_Tachira_cities_SanCristobal = UsePN (mkPN "San Cristobal") ;
+  Countries_MEX_provinces_Veracruz_cities_Coatzacoalcos = UsePN (mkPN "Coatzacoalcos") ;
+  Countries_CDN_provinces_Ontario_cities_Oshawa = UsePN (mkPN "Oshawa") ;
+  Countries_RSA_provinces_Mpumalanga_cities_Nelspruit = UsePN (mkPN "Nelspruit") ;
+  Countries_R_provinces_Irkutskayaoblast = UsePN (mkPN "Irkutskaya oblast") ;
+  Countries_cid_cia_Greenland = UsePN (mkPN "Greenland") ;
+  Countries_Z_provinces_Northern_cities_Kasama = UsePN (mkPN "Kasama") ;
+  Countries_PL_provinces_Ciechanowskie = UsePN (mkPN "Ciechanowskie") ;
+  Countries_UA_provinces_Kharkivska_cities_Kharkiv = UsePN (mkPN "Kharkiv") ;
+  Countries_A_provinces_Carinthia_cities_Klagenfurt = UsePN (mkPN "Klagenfurt") ;
+  Organizations_G_10 = UsePN (mkPN "Group of 10") ;
+  Countries_CO_provinces_Bolivar_cities_Mangangue = UsePN (mkPN "Mangangue") ;
+  Countries_RO_provinces_Dimbovita = UsePN (mkPN "Dimbovita") ;
+  Countries_DZ_cities_Bechar = UsePN (mkPN "Bechar") ;
+  Countries_PL_provinces_Poznanskie_cities_Poznan = UsePN (mkPN "Poznan") ;
+  Countries_GB_provinces_SouthYorkshire_cities_Sheffield = UsePN (mkPN "Sheffield") ;
+  Countries_MYA_provinces_Tanintharyi_cities_Tavoy = UsePN (mkPN "Tavoy") ;
+  Countries_GB_provinces_Kent_cities_Tonbridge = UsePN (mkPN "Tonbridge") ;
+  Countries_L_cities_Luxembourg = UsePN (mkPN "Luxembourg") ;
+  Organizations_OECS = UsePN (mkPN "Organization of Eastern Caribbean States") ;
+  Countries_D_provinces_Saarland = UsePN (mkPN "Saarland") ;
+  Countries_CR_provinces_Heredia = UsePN (mkPN "Heredia") ;
+  Countries_USA_provinces_California_cities_Lancaster = UsePN (mkPN "Lancaster") ;
+  Countries_TJ_provinces_Jiangsu_cities_Yixing = UsePN (mkPN "Yixing") ;
+  Countries_BR_provinces_MatoGrosso = UsePN (mkPN "Mato Grosso") ;
+  Countries_RO_provinces_Gorj = UsePN (mkPN "Gorj") ;
+  Countries_S_provinces_Stockholm = UsePN (mkPN "Stockholm") ;
+  Mountains_MtHood = UsePN (mkPN "Mt Hood") ;
+  Countries_YV_provinces_Cojedes = UsePN (mkPN "Cojedes") ;
+  Countries_TJ_provinces_Guangdong_cities_Shantou = UsePN (mkPN "Shantou") ;
+  Countries_J_provinces_Aichi = UsePN (mkPN "Aichi") ;
+  Countries_WAN_cities_EffonAlaiye = UsePN (mkPN "Effon Alaiye") ;
+  Mountains_GuadalupePeak = UsePN (mkPN "Guadalupe Peak") ;
+  Countries_PL_provinces_Tarnobrzeskie = UsePN (mkPN "Tarnobrzeskie") ;
+  Countries_I_provinces_TrentinoAltoAdige_cities_Bolzano = UsePN (mkPN "Bolzano") ;
+  Countries_TJ_provinces_Shandong_cities_Liaocheng = UsePN (mkPN "Liaocheng") ;
+  Countries_USA_provinces_Illinois_cities_Peoria = UsePN (mkPN "Peoria") ;
+  Countries_MEX_provinces_Veracruz_cities_XalapaEnriquez = UsePN (mkPN "Xalapa Enriquez") ;
+  Countries_VN_provinces_BacThai = UsePN (mkPN "Bac Thai") ;
+  Countries_RO_provinces_Dolj_cities_Craiova = UsePN (mkPN "Craiova") ;
+  Countries_BF_cities_Ouagadougou = UsePN (mkPN "Ouagadougou") ;
+  Countries_TJ_provinces_Liaoning_cities_Tieling = UsePN (mkPN "Tieling") ;
+  Countries_BR_provinces_Para_cities_Ananindeua = UsePN (mkPN "Ananindeua") ;
+  Countries_J_provinces_Kagoshima = UsePN (mkPN "Kagoshima") ;
+  Islands_NorthCaicos = UsePN (mkPN "North Caicos") ;
+  Countries_WAN_cities_Lafia = UsePN (mkPN "Lafia") ;
+  Countries_TJ_provinces_Jiangxi_cities_Xinyu = UsePN (mkPN "Xinyu") ;
+  Countries_THA_provinces_Trang = UsePN (mkPN "Trang") ;
+  Countries_AUS_provinces_Victoria_cities_Melbourne = UsePN (mkPN "Melbourne") ;
+  Countries_TR_provinces_Cankiri = UsePN (mkPN "Cankiri") ;
+  Islands_Trinidad = UsePN (mkPN "Trinidad") ;
+  Organizations_ZC = UsePN (mkPN "Zangger Committee") ;
+  Countries_E_provinces_BalearicIslands = UsePN (mkPN "Balearic Islands") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_Canoas = UsePN (mkPN "Canoas") ;
+  Countries_USA_provinces_Texas_cities_Brownsville = UsePN (mkPN "Brownsville") ;
+  Countries_MOC_provinces_Sofala_cities_Beira = UsePN (mkPN "Beira") ;
+  Countries_PE_provinces_Huanuco_cities_Huanuco = UsePN (mkPN "Huanuco") ;
+  Countries_IND_provinces_Maharashtra_cities_Bhiwandi = UsePN (mkPN "Bhiwandi") ;
+  Countries_USA_provinces_Texas_cities_ElPaso = UsePN (mkPN "El Paso") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Elektrostal = UsePN (mkPN "Elektrostal") ;
+  Countries_USA_provinces_Virginia_cities_Hampton = UsePN (mkPN "Hampton") ;
+  Countries_IR_cities_Mehrshahr = UsePN (mkPN "Mehrshahr") ;
+  Countries_THA_provinces_Phetchaburi = UsePN (mkPN "Phetchaburi") ;
+  Countries_IND_provinces_Manipur = UsePN (mkPN "Manipur") ;
+  Countries_VN_provinces_PhuYen = UsePN (mkPN "Phu Yen") ;
+  Countries_F_provinces_Lorraine_cities_Nancy = UsePN (mkPN "Nancy") ;
+  Countries_C_provinces_CiudaddelaHabana_cities_Havana = UsePN (mkPN "Havana") ;
+  Countries_RA_provinces_Formosa = UsePN (mkPN "Formosa") ;
+  Countries_R_provinces_Ulyanovskayaoblast_cities_Dimitrovgrad = UsePN (mkPN "Dimitrovgrad") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Jixi = UsePN (mkPN "Jixi") ;
+  Islands_Oahu = UsePN (mkPN "Oahu") ;
+  Rivers_RioBalsas = UsePN (mkPN "Rio Balsas") ;
+  Countries_EAT_provinces_Dodoma_cities_Dodoma = UsePN (mkPN "Dodoma") ;
+  Countries_EAT_provinces_Shinyanga = UsePN (mkPN "Shinyanga") ;
+  Countries_EAT_provinces_KaskaziniPemba = UsePN (mkPN "Kaskazini Pemba") ;
+  Countries_S_provinces_Gotland = UsePN (mkPN "Gotland") ;
+  Deserts_Dschurab = UsePN (mkPN "Dschurab") ;
+  Countries_TR_provinces_Mugla = UsePN (mkPN "Mugla") ;
+  Islands_Bahamas = UsePN (mkPN "Bahamas") ;
+  Countries_TR_provinces_Canakkale = UsePN (mkPN "Canakkale") ;
+  Countries_P_provinces_Leiria = UsePN (mkPN "Leiria") ;
+  Countries_TJ_provinces_Zhejiang_cities_Ningbo = UsePN (mkPN "Ningbo") ;
+  Countries_H_provinces_Pecs_munic_cities_Pecs = UsePN (mkPN "Pecs") ;
+  Countries_TJ_provinces_Guangdong_cities_Shanwei = UsePN (mkPN "Shanwei") ;
+  Countries_BR_provinces_Amapa = UsePN (mkPN "Amapa") ;
+  Countries_RM_provinces_Antananarivo_cities_Antananarivo = UsePN (mkPN "Antananarivo") ;
+  Countries_D_provinces_BadenWurttemberg = UsePN (mkPN "Baden Wurttemberg") ;
+  Countries_BR_provinces_SaoPaulo_cities_Franca = UsePN (mkPN "Franca") ;
+  Countries_F_provinces_MidiPyrenees = UsePN (mkPN "Midi Pyrenees") ;
+  Organizations_WIPO = UsePN (mkPN "World Intellectual Property Organization") ;
+  Countries_NL_provinces_NoordHolland = UsePN (mkPN "Noord Holland") ;
+  Countries_ET_provinces_Dumyat_cities_Dumyat = UsePN (mkPN "Dumyat") ;
+  Rivers_Klaraelv = UsePN (mkPN "Klaraelv") ;
+  Countries_THA_provinces_SamutPrakan = UsePN (mkPN "Samut Prakan") ;
+  Deserts_ArabianDesert = UsePN (mkPN "Arabian Desert") ;
+  Countries_VN_cities_VietTri = UsePN (mkPN "Viet Tri") ;
+  Countries_RCH_cities_Valparaiso = UsePN (mkPN "Valparaiso") ;
+  Countries_SUD_provinces_alIstiwaiyah = UsePN (mkPN "al Istiwaiyah") ;
+  Countries_USA_provinces_Oklahoma_cities_Tulsa = UsePN (mkPN "Tulsa") ;
+  Countries_RSA_cities_Khayalitsha = UsePN (mkPN "Khayalitsha") ;
+  Countries_IR_provinces_Khorasan_cities_Mashhad = UsePN (mkPN "Mashhad") ;
+  Rivers_Rufiji = UsePN (mkPN "Rufiji") ;
+  Countries_PK_cities_Sahiwal = UsePN (mkPN "Sahiwal") ;
+  Organizations_WTrO = UsePN (mkPN "World Trade Organization") ;
+  Countries_I_provinces_Molise = UsePN (mkPN "Molise") ;
+  Countries_CO_provinces_Cauca_cities_Popayan = UsePN (mkPN "Popayan") ;
+  Countries_UAE_provinces_Dubayy = UsePN (mkPN "Dubayy") ;
+  Countries_ZRE_provinces_KasaiOriental_cities_MweneDitu = UsePN (mkPN "Mwene Ditu") ;
+  Countries_MAL_provinces_Sabah_cities_Tawai = UsePN (mkPN "Tawai") ;
+  Countries_BR_provinces_Goias_cities_Goiania = UsePN (mkPN "Goiania") ;
+  Countries_GB_provinces_WestYorkshire_cities_Bradford = UsePN (mkPN "Bradford") ;
+  Islands_Fidschi = UsePN (mkPN "Fidschi") ;
+  Organizations_UNPREDEP = UsePN (mkPN "United Nations Preventive Deployment Force") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Karamay = UsePN (mkPN "Karamay") ;
+  Countries_D_provinces_RheinlandPfalz_cities_Ludwigshafen = UsePN (mkPN "Ludwigshafen") ;
+  Countries_NOK_cities_Wonsan = UsePN (mkPN "Wonsan") ;
+  Countries_MEX_provinces_QuintanaRoo = UsePN (mkPN "Quintana Roo") ;
+  Countries_BR_provinces_Ceara_cities_Fortaleza = UsePN (mkPN "Fortaleza") ;
+  Countries_GB_provinces_ValeofGlamorgan_cities_Barry = UsePN (mkPN "Barry") ;
+  Countries_cid_cia_Turks_and_Caicos_Islands_cities_GrandTurk = UsePN (mkPN "Grand Turk") ;
+  Countries_D_provinces_Bayern_cities_Erlangen = UsePN (mkPN "Erlangen") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Koln = UsePN (mkPN "Koln") ;
+  Countries_BD_cities_Tongi = UsePN (mkPN "Tongi") ;
+  Countries_MOC_provinces_Niassa_cities_Lichinga = UsePN (mkPN "Lichinga") ;
+  Countries_CH_provinces_BS = UsePN (mkPN "BS") ;
+  Countries_F_provinces_Auvergne_cities_ClermontFerrand = UsePN (mkPN "Clermont Ferrand") ;
+  Countries_RI_cities_Bogor = UsePN (mkPN "Bogor") ;
+  Countries_EAU_cities_Kampala = UsePN (mkPN "Kampala") ;
+  Countries_GB_provinces_TyneandWear_cities_Sunderland = UsePN (mkPN "Sunderland") ;
+  Countries_USA_provinces_California_cities_SantaRosa = UsePN (mkPN "Santa Rosa") ;
+  Countries_TJ_provinces_Zhejiang_cities_Wenzhou = UsePN (mkPN "Wenzhou") ;
+  Countries_EAT_provinces_MjiniMagharibi_cities_Zanzibar = UsePN (mkPN "Zanzibar") ;
+  Countries_TJ_provinces_Shandong_cities_Weihai = UsePN (mkPN "Weihai") ;
+  Countries_R_provinces_Rep_ofKhakassiya_cities_Abakan = UsePN (mkPN "Abakan") ;
+  Islands_Palau = UsePN (mkPN "Palau") ;
+  Islands_Guadeloupe = UsePN (mkPN "Guadeloupe") ;
+  Countries_THA_provinces_PhraNakhonSiAyutthaya = UsePN (mkPN "Phra Nakhon Si Ayutthaya") ;
+  Countries_NL_provinces_Gelderland = UsePN (mkPN "Gelderland") ;
+  Mountains_CathkinPeak = UsePN (mkPN "Cathkin Peak") ;
+  Countries_MEX_provinces_Morelos = UsePN (mkPN "Morelos") ;
+  Mountains_MtElbert = UsePN (mkPN "Mt Elbert") ;
+  Countries_TR_provinces_Adana_cities_Adana = UsePN (mkPN "Adana") ;
+  Countries_PA_provinces_BocasdelToro_cities_BocasdelToro = UsePN (mkPN "Bocas del Toro") ;
+  Countries_CO_provinces_Risaralda_cities_Pereira = UsePN (mkPN "Pereira") ;
+  Countries_BR_provinces_Parana_cities_PontaGrossa = UsePN (mkPN "Ponta Grossa") ;
+  Countries_GB_provinces_Buckinghamshire = UsePN (mkPN "Buckinghamshire") ;
+  Countries_PE_provinces_Ica_cities_Ica = UsePN (mkPN "Ica") ;
+  Countries_USA_provinces_Louisiana_cities_Lafayette = UsePN (mkPN "Lafayette") ;
+  Countries_VN_provinces_BaRiaVungTau = UsePN (mkPN "Ba Ria Vung Tau") ;
+  Countries_F_provinces_NordPasdeCalais_cities_Lille = UsePN (mkPN "Lille") ;
+  Countries_CH_provinces_TI_cities_Bellinzona = UsePN (mkPN "Bellinzona") ;
+  Countries_RC_provinces_Miaoli = UsePN (mkPN "Miaoli") ;
+  Countries_F_provinces_PaysdelaLoire = UsePN (mkPN "Pays de la Loire") ;
+  Countries_TR_provinces_Usak = UsePN (mkPN "Usak") ;
+  Countries_GB_provinces_Shropshire = UsePN (mkPN "Shropshire") ;
+  Countries_RA_provinces_Cordoba_cities_Cordoba = UsePN (mkPN "Cordoba") ;
+  Countries_TR_provinces_Bingol_cities_Bingol = UsePN (mkPN "Bingol") ;
+  Countries_USA_provinces_California_cities_Palmdale = UsePN (mkPN "Palmdale") ;
+  Countries_N_provinces_VestAgder_cities_Kristiansand = UsePN (mkPN "Kristiansand") ;
+  Countries_SLB_cities_Honiara = UsePN (mkPN "Honiara") ;
+  Countries_VN_provinces_MinhHai = UsePN (mkPN "Minh Hai") ;
+  Countries_RSA_provinces_FreeState = UsePN (mkPN "Free State") ;
+  Countries_TJ_provinces_Zhejiang_cities_Hangzhou = UsePN (mkPN "Hangzhou") ;
+  Countries_VN_provinces_NorthEastSouth = UsePN (mkPN "North East South") ;
+  Countries_TJ_provinces_Hunan_cities_Yueyang = UsePN (mkPN "Yueyang") ;
+  Countries_CZ_provinces_Severocesky_cities_UstinadLabem = UsePN (mkPN "Usti nad Labem") ;
+  Countries_USA_provinces_Tennessee = UsePN (mkPN "Tennessee") ;
+  Countries_TJ_provinces_Hunan_cities_Zixing = UsePN (mkPN "Zixing") ;
+  Countries_GB_provinces_Gwynedd = UsePN (mkPN "Gwynedd") ;
+  Countries_MEX_provinces_Chihuahua_cities_Chihuahua = UsePN (mkPN "Chihuahua") ;
+  Organizations_AMU = UsePN (mkPN "Arab Maghreb Union") ;
+  Countries_ROK_cities_Seoul = UsePN (mkPN "Seoul") ;
+  Organizations_ECE = UsePN (mkPN "Economic Commission for Europe") ;
+  Countries_NEP_cities_Kathmandu = UsePN (mkPN "Kathmandu") ;
+  Countries_USA_provinces_Georgia_cities_Macon = UsePN (mkPN "Macon") ;
+  Countries_PL_provinces_Plockie_cities_Plock = UsePN (mkPN "Plock") ;
+  Countries_GB_provinces_Norfolk_cities_Norwich = UsePN (mkPN "Norwich") ;
+  Countries_VN_provinces_ThanhHoa = UsePN (mkPN "Thanh Hoa") ;
+  Countries_BR_provinces_SaoPaulo_cities_RioClaro = UsePN (mkPN "Rio Claro") ;
+  Organizations_UNMOT = UsePN (mkPN "United Nations Mission of Observers in Tajikistan") ;
+  Countries_YV_provinces_Apure = UsePN (mkPN "Apure") ;
+  Countries_TJ_provinces_Gansu_cities_Tianshui = UsePN (mkPN "Tianshui") ;
+  Countries_GB_provinces_NorthernIreland_cities_Belfast = UsePN (mkPN "Belfast") ;
+  Countries_RM_provinces_Toliary = UsePN (mkPN "Toliary") ;
+  Countries_cid_cia_Puerto_Rico_cities_SanJuan = UsePN (mkPN "San Juan") ;
+  Countries_ZRE_provinces_Bandundu_cities_Kikwit = UsePN (mkPN "Kikwit") ;
+  Countries_HCA_provinces_FranciscoMorazan = UsePN (mkPN "Francisco Morazan") ;
+  Countries_E_provinces_Galicia = UsePN (mkPN "Galicia") ;
+  Countries_PA_provinces_Herrera_cities_Chitre = UsePN (mkPN "Chitre") ;
+  Countries_TJ_provinces_Jilin = UsePN (mkPN "Jilin") ;
+  Countries_GB_provinces_Ceredigion_cities_Aberystwyth = UsePN (mkPN "Aberystwyth") ;
+  Countries_R_provinces_Rep_ofBashkortostan_cities_Ufa = UsePN (mkPN "Ufa") ;
+  Countries_I_provinces_Basilicata_cities_Potenza = UsePN (mkPN "Potenza") ;
+  Countries_RSA_provinces_KwazuluNatal_cities_Pietermaritzburg = UsePN (mkPN "Pietermaritzburg") ;
+  Countries_IND_provinces_Maharashtra_cities_Pune = UsePN (mkPN "Pune") ;
+  Rivers_Ob = UsePN (mkPN "Ob") ;
+  Organizations_WADB = UsePN (mkPN "West African Development Bank") ;
+  Countries_EAK_provinces_Eastern_cities_Embu = UsePN (mkPN "Embu") ;
+  Countries_PL_provinces_Tarnowskie = UsePN (mkPN "Tarnowskie") ;
+  Countries_UAE_cities_AlAyn = UsePN (mkPN "Al Ayn") ;
+  Countries_BR_provinces_Sergipe_cities_Aracaju = UsePN (mkPN "Aracaju") ;
+  Organizations_G_24 = UsePN (mkPN "Group of 24") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_SaoGoncalo = UsePN (mkPN "Sao Goncalo") ;
+  Countries_I_provinces_Marche_cities_Ancona = UsePN (mkPN "Ancona") ;
+  Countries_IND_provinces_Goa_cities_Panaji = UsePN (mkPN "Panaji") ;
+  Countries_USA_provinces_Michigan = UsePN (mkPN "Michigan") ;
+  Deserts_Mujunkum = UsePN (mkPN "Mujunkum") ;
+  Countries_TR_provinces_Tunceli_cities_Tunceli = UsePN (mkPN "Tunceli") ;
+  Rivers_NorthernDwina = UsePN (mkPN "Northern Dwina") ;
+  Countries_PL_provinces_Tarnowskie_cities_Tarnow = UsePN (mkPN "Tarnow") ;
+  Countries_A_provinces_Vorarlberg = UsePN (mkPN "Vorarlberg") ;
+  Islands_Kauai = UsePN (mkPN "Kauai") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Remscheid = UsePN (mkPN "Remscheid") ;
+  Countries_RSA_provinces_WesternCape_cities_CapeTown = UsePN (mkPN "Cape Town") ;
+  Countries_YV_provinces_Falcon_cities_Coro = UsePN (mkPN "Coro") ;
+  Countries_MEX_provinces_Chiapas = UsePN (mkPN "Chiapas") ;
+  Islands_Benbecula = UsePN (mkPN "Benbecula") ;
+  Countries_PL_provinces_Legnickie_cities_Legnica = UsePN (mkPN "Legnica") ;
+  Countries_THA_provinces_Songkhla_cities_Songkhla = UsePN (mkPN "Songkhla") ;
+  Countries_RA_provinces_RioNegro_cities_Viedma = UsePN (mkPN "Viedma") ;
+  Countries_PL_provinces_Lubelskie = UsePN (mkPN "Lubelskie") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Bhopal = UsePN (mkPN "Bhopal") ;
+  Countries_H_provinces_BorsodAbaujZemplen = UsePN (mkPN "Borsod Abauj Zemplen") ;
+  Countries_PE_provinces_Ancash_cities_Huaraz = UsePN (mkPN "Huaraz") ;
+  Countries_CO_provinces_SantaFedeBogota_DC = UsePN (mkPN "Santa Fe de Bogota, DC") ;
+  Countries_IRQ_provinces_AlQadisiyah = UsePN (mkPN "Al Qadisiyah") ;
+  Countries_TR_provinces_Icel_cities_Mersin = UsePN (mkPN "Mersin") ;
+  Countries_cid_cia_Anguilla_cities_TheValley = UsePN (mkPN "The Valley") ;
+  Countries_UA_provinces_Kirovohradska = UsePN (mkPN "Kirovohradska") ;
+  Countries_RMM_cities_Bamako = UsePN (mkPN "Bamako") ;
+  Countries_R_provinces_Kirovskayaoblast = UsePN (mkPN "Kirovskaya oblast") ;
+  Countries_R_provinces_Irkutskayaoblast_cities_Angarsk = UsePN (mkPN "Angarsk") ;
+  Countries_USA_provinces_Missouri_cities_Springfield = UsePN (mkPN "Springfield") ;
+  Countries_UZB_provinces_Qasqadare_cities_Qarshi = UsePN (mkPN "Qarshi") ;
+  Countries_CO_provinces_Choco = UsePN (mkPN "Choco") ;
+  Countries_NL_provinces_NoordBrabant_cities_Breda = UsePN (mkPN "Breda") ;
+  Islands_Madagaskar = UsePN (mkPN "Madagaskar") ;
+  Countries_RI_cities_PekanBaru = UsePN (mkPN "Pekan Baru") ;
+  Organizations_UNIFIL = UsePN (mkPN "United Nations Interim Force in Lebanon") ;
+  Countries_NIC_cities_Chinandega = UsePN (mkPN "Chinandega") ;
+  Countries_YV_provinces_Carabobo_cities_Guacara = UsePN (mkPN "Guacara") ;
+  Countries_R_provinces_Chelyabinskayaoblast_cities_Chelyabinsk = UsePN (mkPN "Chelyabinsk") ;
+  Countries_GB_provinces_HerefordandWorcester = UsePN (mkPN "Hereford and Worcester") ;
+  Countries_MEX_provinces_Veracruz_cities_PozaRica = UsePN (mkPN "Poza Rica") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_RostovnaDonu = UsePN (mkPN "Rostov na Donu") ;
+  Countries_M_cities_Valletta = UsePN (mkPN "Valletta") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Harbin = UsePN (mkPN "Harbin") ;
+  Countries_GR_provinces_Attiki_cities_Athens = UsePN (mkPN "Athens") ;
+  Rivers_Bija = UsePN (mkPN "Bija") ;
+  Mountains_Illampu = UsePN (mkPN "Illampu") ;
+  Countries_UAE_cities_AbuDhabi = UsePN (mkPN "Abu Dhabi") ;
+  Countries_TR_provinces_Agri_cities_Agri = UsePN (mkPN "Agri") ;
+  Countries_TR_provinces_Manisa = UsePN (mkPN "Manisa") ;
+  Countries_J_provinces_Hiroshima = UsePN (mkPN "Hiroshima") ;
+  Countries_PL_provinces_Elblaskie_cities_Elblag = UsePN (mkPN "Elblag") ;
+  Countries_ET_provinces_ElFaiyum = UsePN (mkPN "El Faiyum") ;
+  Countries_I_provinces_Veneto_cities_Padova = UsePN (mkPN "Padova") ;
+  Countries_RC_provinces_Hsinchu_munic = UsePN (mkPN "Hsinchu (munic.)") ;
+  Countries_R_provinces_Samarskayaoblast = UsePN (mkPN "Samarskaya oblast") ;
+  Countries_ET_provinces_ElBahrelAhmar_cities_Hurghada = UsePN (mkPN "Hurghada") ;
+  Rivers_Volta = UsePN (mkPN "Volta") ;
+  Lakes_LakeLeopold_II = UsePN (mkPN "Lake Leopold-II") ;
+  Countries_UZB_provinces_Namangan_cities_Namangan = UsePN (mkPN "Namangan") ;
+  Countries_J_provinces_Yamaguchi = UsePN (mkPN "Yamaguchi") ;
+  Countries_CDN_provinces_Alberta_cities_Edmonton = UsePN (mkPN "Edmonton") ;
+  Countries_IND_provinces_Maharashtra_cities_Bombay = UsePN (mkPN "Bombay") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Bologna = UsePN (mkPN "Bologna") ;
+  Countries_I_provinces_Lazio_cities_Latina = UsePN (mkPN "Latina") ;
+  Countries_UZB_provinces_Toshkent_cities_Angren = UsePN (mkPN "Angren") ;
+  Rivers_Syrdarja = UsePN (mkPN "Syrdarja") ;
+  Organizations_WFTU = UsePN (mkPN "World Federation of Trade Unions") ;
+  Deserts_SimpsonDesert = UsePN (mkPN "Simpson Desert") ;
+  Countries_MEX_provinces_Jalisco_cities_Tlaquepaque = UsePN (mkPN "Tlaquepaque") ;
+  Countries_KAZ_provinces_Aqtobe_cities_Aqtobe = UsePN (mkPN "Aqtobe") ;
+  Countries_UA_provinces_Kyyivska_cities_Kiev = UsePN (mkPN "Kiev") ;
+  Countries_WD_cities_Roseau = UsePN (mkPN "Roseau") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_Pelotas = UsePN (mkPN "Pelotas") ;
+  Countries_MAL_provinces_PulauPinang = UsePN (mkPN "Pulau Pinang") ;
+  Islands_Tiree = UsePN (mkPN "Tiree") ;
+  Countries_EAT_provinces_Tanga_cities_Tanga = UsePN (mkPN "Tanga") ;
+  Countries_IND_provinces_JammuandKashmir = UsePN (mkPN "Jammu and Kashmir") ;
+  Countries_CDN_provinces_Saskatchewan_cities_Saskatoon = UsePN (mkPN "Saskatoon") ;
+  Countries_F_provinces_RhoneAlpes_cities_Lyon = UsePN (mkPN "Lyon") ;
+  Countries_TJ_provinces_Hubei_cities_Huangshi = UsePN (mkPN "Huangshi") ;
+  Countries_GB_provinces_Cambridgeshire_cities_Huntingdon = UsePN (mkPN "Huntingdon") ;
+  Countries_USA_provinces_Washington_cities_Tacoma = UsePN (mkPN "Tacoma") ;
+  Countries_IND_provinces_Goa = UsePN (mkPN "Goa") ;
+  Countries_F_provinces_ProvenceCotedAzur_cities_Marseille = UsePN (mkPN "Marseille") ;
+  Countries_MA_cities_Meknes = UsePN (mkPN "Meknes") ;
+  Countries_USA_provinces_California_cities_Fremont = UsePN (mkPN "Fremont") ;
+  Countries_R_provinces_Tyumenskayaoblast_cities_Tyumen = UsePN (mkPN "Tyumen") ;
+  Countries_CO_provinces_Narino_cities_Pasto = UsePN (mkPN "Pasto") ;
+  Countries_TJ_provinces_Jilin_cities_Siping = UsePN (mkPN "Siping") ;
+  Countries_IR_provinces_Tehran = UsePN (mkPN "Tehran") ;
+  Countries_BR_provinces_MinasGerais_cities_SeteLagoas = UsePN (mkPN "Sete Lagoas") ;
+  Countries_BR_provinces_Bahia = UsePN (mkPN "Bahia") ;
+  Countries_TR_provinces_Gaziantep = UsePN (mkPN "Gaziantep") ;
+  Countries_USA_provinces_Delaware = UsePN (mkPN "Delaware") ;
+  Countries_THA_provinces_SiSaKet = UsePN (mkPN "Si Sa Ket") ;
+  Countries_cid_cia_Spratly_Islands = UsePN (mkPN "Spratly Islands") ;
+  Countries_TR_provinces_Diyarbakir = UsePN (mkPN "Diyarbakir") ;
+  Countries_RA_provinces_SantaFe_cities_SantaFe = UsePN (mkPN "Santa Fe") ;
+  Countries_UZB_provinces_Nawoiy_cities_Nawoiy = UsePN (mkPN "Nawoiy") ;
+  Countries_RO_provinces_Vilcea = UsePN (mkPN "Vilcea") ;
+  Countries_N_provinces_Troms_cities_Tromsoe = UsePN (mkPN "Tromsoe") ;
+  Countries_CO_provinces_Risaralda_cities_Dosquebradas = UsePN (mkPN "Dosquebradas") ;
+  Countries_MEX_provinces_Zacatecas = UsePN (mkPN "Zacatecas") ;
+  Mountains_PikLenina = UsePN (mkPN "Pik Lenina") ;
+  Countries_EAK_provinces_Eastern_cities_Meru = UsePN (mkPN "Meru") ;
+  Countries_CDN_provinces_Ontario_cities_EastYork = UsePN (mkPN "East York") ;
+  Countries_S_provinces_Malmohus_cities_Malmo = UsePN (mkPN "Malmo") ;
+  Countries_CR_provinces_Cartago_cities_Cartago = UsePN (mkPN "Cartago") ;
+  Countries_WL_cities_Castries = UsePN (mkPN "Castries") ;
+  Countries_TR_provinces_Bingol = UsePN (mkPN "Bingol") ;
+  Countries_cid_cia_Virgin_Islands = UsePN (mkPN "Virgin Islands") ;
+  Countries_ZRE_provinces_Bandundu_cities_Bandundu = UsePN (mkPN "Bandundu") ;
+  Countries_MEX_provinces_Mexico_Estadode_cities_TolucadeLerdo = UsePN (mkPN "Toluca de Lerdo") ;
+  Countries_J_provinces_Fukui = UsePN (mkPN "Fukui") ;
+  Countries_PL_provinces_Katowickie_cities_Chorzow = UsePN (mkPN "Chorzow") ;
+  Countries_USA_provinces_Texas_cities_CorpusChristi = UsePN (mkPN "Corpus Christi") ;
+  Rivers_Umeaelv = UsePN (mkPN "Umeaelv") ;
+  Countries_TJ_provinces_Hainan_cities_Haikou = UsePN (mkPN "Haikou") ;
+  Countries_D_provinces_Bremen_cities_Bremen = UsePN (mkPN "Bremen") ;
+  Countries_YV_provinces_NuevaEsparta_cities_LaAscuncion = UsePN (mkPN "La Ascuncion") ;
+  Mountains_Zugspitze = UsePN (mkPN "Zugspitze") ;
+  Countries_IND_provinces_Bihar_cities_Ranchi = UsePN (mkPN "Ranchi") ;
+  Countries_CO_provinces_Sucre = UsePN (mkPN "Sucre") ;
+  Countries_WAN_cities_Mushin = UsePN (mkPN "Mushin") ;
+  Lakes_OzeroBaikal = UsePN (mkPN "Ozero Baikal") ;
+  Countries_CZ_provinces_Vychodocesky = UsePN (mkPN "Vychodocesky") ;
+  Countries_H_provinces_Fejer_cities_Szekesfehervar = UsePN (mkPN "Szekesfehervar") ;
+  Countries_WAN_cities_Shomolu = UsePN (mkPN "Shomolu") ;
+  Countries_IND_provinces_Karnataka = UsePN (mkPN "Karnataka") ;
+  Organizations_CEI = UsePN (mkPN "Central European Initiative") ;
+  Countries_D_provinces_Hamburg = UsePN (mkPN "Hamburg") ;
+  Countries_MEX_provinces_Coahuila_cities_Torreon = UsePN (mkPN "Torreon") ;
+  Countries_MNG_cities_Ulaanbaatar = UsePN (mkPN "Ulaanbaatar") ;
+  Countries_R_provinces_Saratovskayaoblast_cities_Saratov = UsePN (mkPN "Saratov") ;
+  Countries_UZB_provinces_Khorazm_cities_Urganch = UsePN (mkPN "Urganch") ;
+  Countries_USA_provinces_Washington_cities_Seattle = UsePN (mkPN "Seattle") ;
+  Countries_RA_provinces_BuenosAires_cities_VicenteLopez = UsePN (mkPN "Vicente Lopez") ;
+  Countries_Z_provinces_Central = UsePN (mkPN "Central") ;
+  Organizations_UNPROFOR = UsePN (mkPN "United Nations Protection Force") ;
+  Countries_TR_provinces_Adana_cities_Osmaniye = UsePN (mkPN "Osmaniye") ;
+  Organizations_Mercosur = UsePN (mkPN "Southern Cone Common Market") ;
+  Countries_RSA_cities_Evaton = UsePN (mkPN "Evaton") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_SantaMaria = UsePN (mkPN "Santa Maria") ;
+  Countries_MEX_provinces_Tamaulipas_cities_CiudadVictoria = UsePN (mkPN "Ciudad Victoria") ;
+  Organizations_ANC = UsePN (mkPN "North Atlantic Cooperation Council") ;
+  Countries_EAK_provinces_Central = UsePN (mkPN "Central") ;
+  Organizations_CEEAC = UsePN (mkPN "Economic Community of Central African States") ;
+  Countries_UA_provinces_Donetska_cities_Horlivka = UsePN (mkPN "Horlivka") ;
+  Countries_ES_provinces_Usulutan = UsePN (mkPN "Usulutan") ;
+  Countries_IR_provinces_Khuzestan_cities_MasjedeSoleyman = UsePN (mkPN "Masjed e Soleyman") ;
+  Countries_P_provinces_Guarda = UsePN (mkPN "Guarda") ;
+  Rivers_Bahrel_Djebel = UsePN (mkPN "Bahr el-Djebel") ;
+  Countries_TJ_provinces_Jilin_cities_Meihekou = UsePN (mkPN "Meihekou") ;
+  Countries_KIR_cities_Tarawa = UsePN (mkPN "Tarawa") ;
+  Countries_IND_provinces_Gujarat_cities_Gandhinagar = UsePN (mkPN "Gandhinagar") ;
+  Countries_SF_provinces_Turku_Pori_cities_Turku = UsePN (mkPN "Turku") ;
+  Countries_CDN_provinces_Newfoundland = UsePN (mkPN "Newfoundland") ;
+  Countries_RA_provinces_LaRioja_cities_LaRioja = UsePN (mkPN "La Rioja") ;
+  Countries_SN_provinces_Ziguinchor_cities_Ziguinchor = UsePN (mkPN "Ziguinchor") ;
+  Countries_UA_provinces_Luhanska = UsePN (mkPN "Luhanska") ;
+  Countries_R_provinces_Magadanskayaoblast = UsePN (mkPN "Magadanskaya oblast") ;
+  Countries_PE_provinces_Moquegua = UsePN (mkPN "Moquegua") ;
+  Islands_Malta = UsePN (mkPN "Malta") ;
+  Countries_S_provinces_Vastmanland = UsePN (mkPN "Vastmanland") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Bonn = UsePN (mkPN "Bonn") ;
+  Countries_USA_provinces_California = UsePN (mkPN "California") ;
+  Countries_YV_provinces_NuevaEsparta = UsePN (mkPN "Nueva Esparta") ;
+  Countries_PA_provinces_Darien = UsePN (mkPN "Darien") ;
+  Countries_USA_provinces_Illinois_cities_Aurora = UsePN (mkPN "Aurora") ;
+  Countries_F_provinces_ProvenceCotedAzur_cities_Nice = UsePN (mkPN "Nice") ;
+  Countries_RC_provinces_Taichung_munic = UsePN (mkPN "Taichung (munic.)") ;
+  Countries_MEX_provinces_Veracruz_cities_Minatitlan = UsePN (mkPN "Minatitlan") ;
+  Countries_EAT_provinces_Tabora = UsePN (mkPN "Tabora") ;
+  Countries_GB_provinces_Humberside_cities_Hull = UsePN (mkPN "Hull") ;
+  Countries_TJ_provinces_Hubei_cities_Wuhan = UsePN (mkPN "Wuhan") ;
+  Countries_ETH_cities_Harer = UsePN (mkPN "Harer") ;
+  Countries_USA_provinces_California_cities_Hayward = UsePN (mkPN "Hayward") ;
+  Lakes_LakeMaracaibo = UsePN (mkPN "Lake Maracaibo") ;
+  Countries_cid_cia_Northern_Mariana_Islands_cities_Saipan = UsePN (mkPN "Saipan") ;
+  Countries_R_provinces_Saratovskayaoblast_cities_Balakovo = UsePN (mkPN "Balakovo") ;
+  Countries_ZRE_provinces_KasaiOccidental_cities_Kananga = UsePN (mkPN "Kananga") ;
+  Countries_MOC_provinces_Gaza_cities_XaiXai = UsePN (mkPN "Xai Xai") ;
+  Organizations_SPC = UsePN (mkPN "South Pacific Commission") ;
+  Countries_USA_provinces_NorthDakota_cities_Bismarck = UsePN (mkPN "Bismarck") ;
+  Countries_NL_provinces_Utrecht = UsePN (mkPN "Utrecht") ;
+  Countries_MYA_provinces_Chin = UsePN (mkPN "Chin") ;
+  Countries_GB_provinces_Avon = UsePN (mkPN "Avon") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Rimini = UsePN (mkPN "Rimini") ;
+  Countries_BR_provinces_SantaCatarina_cities_Criciuma = UsePN (mkPN "Criciuma") ;
+  Countries_ES_provinces_SanSalvador = UsePN (mkPN "San Salvador") ;
+  Countries_E_provinces_CastileandLeon_cities_Albacete = UsePN (mkPN "Albacete") ;
+  Countries_H_provinces_Baranya = UsePN (mkPN "Baranya") ;
+  Countries_VN_provinces_KhanhHoa = UsePN (mkPN "Khanh Hoa") ;
+  Countries_R_provinces_Yevreyskayaavt_oblast = UsePN (mkPN "Yevreyskaya avt. oblast") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Kolomna = UsePN (mkPN "Kolomna") ;
+  Countries_E_provinces_CastileandLeon = UsePN (mkPN "Castile and Leon") ;
+  Countries_GB_provinces_Durham_cities_Durham = UsePN (mkPN "Durham") ;
+  Countries_RO_provinces_Timis_cities_Timisoara = UsePN (mkPN "Timisoara") ;
+  Countries_cid_cia_British_Indian_Ocean_Territory = UsePN (mkPN "British Indian Ocean Territory") ;
+  Countries_GB_provinces_Northamptonshire_cities_Northampton = UsePN (mkPN "Northampton") ;
+  Islands_Menorca = UsePN (mkPN "Menorca") ;
+  Countries_IRQ_provinces_Ninawa_cities_AlMawsil = UsePN (mkPN "Al Mawsil") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Yining = UsePN (mkPN "Yining") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_Novocherkassk = UsePN (mkPN "Novocherkassk") ;
+  Countries_CZ_provinces_Praha_cities_Prague = UsePN (mkPN "Prague") ;
+  Countries_IR_provinces_Hormozgan_cities_BandarAbbas = UsePN (mkPN "Bandar Abbas") ;
+  Countries_PL_provinces_Piotrkowskie_cities_PiottrkowTrybunalski = UsePN (mkPN "Piottrkow Trybunalski") ;
+  Countries_USA_provinces_Mississippi = UsePN (mkPN "Mississippi") ;
+  Countries_CO_provinces_Atlantico_cities_Malambo = UsePN (mkPN "Malambo") ;
+  Countries_USA_provinces_Florida_cities_CoralSprings = UsePN (mkPN "Coral Springs") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Shuangcheng = UsePN (mkPN "Shuangcheng") ;
+  Countries_KAZ_provinces_Zhezkazghan = UsePN (mkPN "Zhezkazghan") ;
+  Countries_IND_provinces_Pondicherry_cities_Pondicherry = UsePN (mkPN "Pondicherry") ;
+  Countries_VN_provinces_DongNai = UsePN (mkPN "Dong Nai") ;
+  Countries_THA_provinces_NakhonSiThammarat_cities_NakhonsiThammarat = UsePN (mkPN "Nakhon si Thammarat") ;
+  Countries_USA_provinces_NorthCarolina_cities_Charlotte = UsePN (mkPN "Charlotte") ;
+  Countries_R_provinces_Tverskayaoblast = UsePN (mkPN "Tverskaya oblast") ;
+  Countries_USA_provinces_Ohio_cities_Columbus = UsePN (mkPN "Columbus") ;
+  Countries_PL_provinces_Radomskie_cities_Radom = UsePN (mkPN "Radom") ;
+  Countries_SF_provinces_Suomi = UsePN (mkPN "Suomi") ;
+  Countries_RI_cities_Tegal = UsePN (mkPN "Tegal") ;
+  Countries_RCA_cities_Bangui = UsePN (mkPN "Bangui") ;
+  Countries_J_provinces_Hokkaido = UsePN (mkPN "Hokkaido") ;
+  Countries_Z_provinces_Southern_cities_Livingstone = UsePN (mkPN "Livingstone") ;
+  Countries_USA_provinces_Idaho_cities_Boise = UsePN (mkPN "Boise") ;
+  Countries_AUS_provinces_Kirimati_cities_FlyingFishCove = UsePN (mkPN "Flying Fish Cove") ;
+  Islands_CaymanBrac = UsePN (mkPN "Cayman Brac") ;
+  Countries_MEX_cities_SanPedroGarzaGarcia = UsePN (mkPN "San Pedro Garza Garcia") ;
+  Islands_GrandCaicos = UsePN (mkPN "Grand Caicos") ;
+  Countries_IRQ_provinces_Babil_cities_AlHillah = UsePN (mkPN "Al Hillah") ;
+  Countries_TJ_provinces_Guangdong_cities_Zhongshan = UsePN (mkPN "Zhongshan") ;
+  Countries_PL_provinces_Sieradzkie_cities_Sieradz = UsePN (mkPN "Sieradz") ;
+  Countries_NL_provinces_Utrecht_cities_Utrecht = UsePN (mkPN "Utrecht") ;
+  Countries_IRQ_provinces_DhiQar_cities_AnNasiriyah = UsePN (mkPN "An Nasiriyah") ;
+  Countries_TR_provinces_Trabzon = UsePN (mkPN "Trabzon") ;
+  Countries_TAD_provinces_BadakhshoniKuni = UsePN (mkPN "Badakhshoni Kuni") ;
+  Countries_PL_provinces_Koszalinskie = UsePN (mkPN "Koszalinskie") ;
+  Countries_TJ_provinces_Sichuan_cities_Zigong = UsePN (mkPN "Zigong") ;
+  Countries_E_provinces_CanaryIslands_cities_SantaCruzdeTenerife = UsePN (mkPN "Santa Cruz de Tenerife") ;
+  Countries_MEX_provinces_Tlaxcala = UsePN (mkPN "Tlaxcala") ;
+  Seas_SouthChinaSea = UsePN (mkPN "South China Sea") ;
+  Countries_C_provinces_Camaguey = UsePN (mkPN "Camaguey") ;
+  Countries_TR_provinces_Erzincan = UsePN (mkPN "Erzincan") ;
+  Countries_USA_provinces_Virginia_cities_Norfolk = UsePN (mkPN "Norfolk") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Vishakhapatnam = UsePN (mkPN "Vishakhapatnam") ;
+  Countries_TJ_provinces_Fujian_cities_Nanping = UsePN (mkPN "Nanping") ;
+  Countries_S_provinces_Jamtland_cities_Ostersund = UsePN (mkPN "Ostersund") ;
+  Organizations_UNITAR = UsePN (mkPN "United Nations Institute for Training and Research") ;
+  Countries_cid_cia_Cocos_Islands_cities_WestIsland = UsePN (mkPN "West Island") ;
+  Countries_CO_provinces_Antioquia_cities_Medellin = UsePN (mkPN "Medellin") ;
+  Countries_I_provinces_Veneto = UsePN (mkPN "Veneto") ;
+  Countries_IND_provinces_UttarPradesh_cities_Meerut = UsePN (mkPN "Meerut") ;
+  Countries_THA_provinces_ChonBuri = UsePN (mkPN "Chon Buri") ;
+  Countries_F_provinces_Lorraine_cities_Metz = UsePN (mkPN "Metz") ;
+  Countries_PK_cities_Gujranwala = UsePN (mkPN "Gujranwala") ;
+  Countries_PE_provinces_Pasco = UsePN (mkPN "Pasco") ;
+  Countries_MEX_provinces_Guerrero_cities_Acapulco = UsePN (mkPN "Acapulco") ;
+  Countries_TR_provinces_Kayseri_cities_Kayseri = UsePN (mkPN "Kayseri") ;
+  Countries_R_provinces_Ivanovskayaoblast_cities_Kineshma = UsePN (mkPN "Kineshma") ;
+  Countries_TJ_provinces_Anhui_cities_Bengbu = UsePN (mkPN "Bengbu") ;
+  Countries_EAK_provinces_RiftValley = UsePN (mkPN "Rift Valley") ;
+  Countries_R_provinces_Lipetskayaoblast_cities_Yelets = UsePN (mkPN "Yelets") ;
+  Countries_N_provinces_Nordland = UsePN (mkPN "Nordland") ;
+  Countries_KAZ_provinces_Mangghystau_cities_Aqtau = UsePN (mkPN "Aqtau") ;
+  Countries_YE_cities_Sanaa = UsePN (mkPN "Sanaa") ;
+  Countries_TJ_provinces_Shanxi_cities_Jincheng = UsePN (mkPN "Jincheng") ;
+  Countries_GB_provinces_GreaterManchester_cities_Tameside = UsePN (mkPN "Tameside") ;
+  Rivers_Lena = UsePN (mkPN "Lena") ;
+  Countries_RA_provinces_DistritoFederal_cities_BuenosAires = UsePN (mkPN "Buenos Aires") ;
+  Countries_RA_provinces_Jujuy_cities_SanSalvadordeJujuy = UsePN (mkPN "San Salvador de Jujuy") ;
+  Lakes_LakeErie = UsePN (mkPN "Lake Erie") ;
+  Countries_MA_cities_Kenitra = UsePN (mkPN "Kenitra") ;
+  Countries_ZRE_provinces_BasZaire_cities_Matadi = UsePN (mkPN "Matadi") ;
+  Countries_RO_provinces_CarasSeverin = UsePN (mkPN "Caras Severin") ;
+  Countries_SUD_provinces_ashSharqiyah_cities_Kassala = UsePN (mkPN "Kassala") ;
+  Countries_USA_provinces_Tennessee_cities_Memphis = UsePN (mkPN "Memphis") ;
+  Countries_RO_provinces_Buzau = UsePN (mkPN "Buzau") ;
+  Countries_TJ_provinces_Sichuan_cities_Nanchong = UsePN (mkPN "Nanchong") ;
+  Countries_I_provinces_Sicilia_cities_Palermo = UsePN (mkPN "Palermo") ;
+  Countries_BR_provinces_Piaui = UsePN (mkPN "Piaui") ;
+  Countries_TR_provinces_Agri = UsePN (mkPN "Agri") ;
+  Countries_IND_provinces_Punjab_cities_Ludhiana = UsePN (mkPN "Ludhiana") ;
+  Countries_THA_provinces_Kalasin = UsePN (mkPN "Kalasin") ;
+  Countries_CAM_provinces_Nordoueste = UsePN (mkPN "Nordoueste") ;
+  Countries_USA_provinces_Texas_cities_GrandPrairie = UsePN (mkPN "Grand Prairie") ;
+  Countries_RC_provinces_Penghu_cities_Makung = UsePN (mkPN "Makung") ;
+  Countries_PE_provinces_Tumbes_cities_Tumbes = UsePN (mkPN "Tumbes") ;
+  Countries_AFG_cities_Kabul = UsePN (mkPN "Kabul") ;
+  Lakes_OzeroChanka = UsePN (mkPN "Ozero Chanka") ;
+  Mountains_Tarrekaise = UsePN (mkPN "Tarrekaise") ;
+  Countries_TR_provinces_Konya_cities_Konya = UsePN (mkPN "Konya") ;
+  Rivers_Fulda = UsePN (mkPN "Fulda") ;
+  Countries_ZRE_provinces_KasaiOccidental = UsePN (mkPN "Kasai Occidental") ;
+  Countries_TR_provinces_Bolu = UsePN (mkPN "Bolu") ;
+  Countries_USA_provinces_California_cities_Oakland = UsePN (mkPN "Oakland") ;
+  Islands_Luzon = UsePN (mkPN "Luzon") ;
+  Countries_PL_provinces_Gdanskie = UsePN (mkPN "Gdanskie") ;
+  Countries_BR_provinces_EspiritoSanto_cities_VilaVelha = UsePN (mkPN "Vila Velha") ;
+  Countries_BR_provinces_MatoGrosso_cities_Rondonopolis = UsePN (mkPN "Rondonopolis") ;
+  Countries_RA_provinces_BuenosAires_cities_Avellaneda = UsePN (mkPN "Avellaneda") ;
+  Mountains_JabalMarra = UsePN (mkPN "Jabal Marra") ;
+  Countries_USA_provinces_Kansas_cities_Wichita = UsePN (mkPN "Wichita") ;
+  Countries_USA_provinces_Kentucky_cities_Louisville = UsePN (mkPN "Louisville") ;
+  Countries_USA_provinces_SouthCarolina = UsePN (mkPN "South Carolina") ;
+  Lakes_Mjoesen = UsePN (mkPN "Mjoesen") ;
+  Countries_TJ_provinces_Yunnan = UsePN (mkPN "Yunnan") ;
+  Countries_CAM_provinces_Cote = UsePN (mkPN "Cote") ;
+  Countries_TJ_provinces_Hubei = UsePN (mkPN "Hubei") ;
+  Organizations_ICC = UsePN (mkPN "International Chamber of Commerce") ;
+  Countries_SN_provinces_Fatick = UsePN (mkPN "Fatick") ;
+  Countries_UA_provinces_Khersonska = UsePN (mkPN "Khersonska") ;
+  Countries_Z_provinces_Copperbelt_cities_Mufulira = UsePN (mkPN "Mufulira") ;
+  Countries_TJ_provinces_Jiangsu = UsePN (mkPN "Jiangsu") ;
+  Countries_CR_provinces_Punarenas_cities_Puntarenas = UsePN (mkPN "Puntarenas") ;
+  Countries_RC_provinces_Chilung_munic = UsePN (mkPN "Chilung (munic.)") ;
+  Countries_TJ_provinces_Jiangxi = UsePN (mkPN "Jiangxi") ;
+  Countries_THA_provinces_RoiEt = UsePN (mkPN "Roi Et") ;
+  Countries_GB_provinces_Cambridgeshire_cities_Cambridge = UsePN (mkPN "Cambridge") ;
+  Countries_I_provinces_Lombardia_cities_Monza = UsePN (mkPN "Monza") ;
+  Rivers_Rhein = UsePN (mkPN "Rhein") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_AnzheroSudzhensk = UsePN (mkPN "Anzhero Sudzhensk") ;
+  Countries_PL_provinces_Walbrzyskie_cities_Walbrzych = UsePN (mkPN "Walbrzych") ;
+  Countries_BR_provinces_SaoPaulo_cities_Diadema = UsePN (mkPN "Diadema") ;
+  Countries_USA_provinces_Alabama_cities_Mobile = UsePN (mkPN "Mobile") ;
+  Countries_IRQ_provinces_Maysan_cities_AlAmarah = UsePN (mkPN "Al Amarah") ;
+  Countries_ROK_cities_Mokpo = UsePN (mkPN "Mokpo") ;
+  Countries_KAZ_provinces_Taldyqorghan_cities_Taldyqorghan = UsePN (mkPN "Taldyqorghan") ;
+  Organizations_Sparteca = UsePN (mkPN "South Pacific Regional Trade and Economic Cooperation Agreement") ;
+  Countries_NL_provinces_NoordHolland_cities_Zaanstreek = UsePN (mkPN "Zaanstreek") ;
+  Countries_GB_provinces_MerthyrTydfil_cities_MerthyrTydfil = UsePN (mkPN "Merthyr Tydfil") ;
+  Mountains_Korab = UsePN (mkPN "Korab") ;
+  Countries_THA_provinces_Surin = UsePN (mkPN "Surin") ;
+  Countries_YV_provinces_Trujillo_cities_Trujillo = UsePN (mkPN "Trujillo") ;
+  Countries_MAL_provinces_Kedah_cities_AlorSetar = UsePN (mkPN "Alor Setar") ;
+  Countries_GB_provinces_Avon_cities_Bristol = UsePN (mkPN "Bristol") ;
+  Mountains_Elbrus = UsePN (mkPN "Elbrus") ;
+  Countries_BR_provinces_MinasGerais_cities_Divinopolis = UsePN (mkPN "Divinopolis") ;
+  Rivers_Torneaelv = UsePN (mkPN "Torneaelv") ;
+  Countries_TJ_provinces_Shandong_cities_Pingdu = UsePN (mkPN "Pingdu") ;
+  Countries_BR_provinces_SantaCatarina_cities_Itajai = UsePN (mkPN "Itajai") ;
+  Countries_GB_provinces_Derbyshire_cities_SuttoninAshfield = UsePN (mkPN "Sutton in Ashfield") ;
+  Organizations_CEAO = UsePN (mkPN "West African Economic Community") ;
+  Countries_TJ_provinces_Shaanxi_cities_Xianyang = UsePN (mkPN "Xianyang") ;
+  Countries_RC_provinces_Miaoli_cities_Miaoli = UsePN (mkPN "Miaoli") ;
+  Countries_USA_provinces_California_cities_Torrance = UsePN (mkPN "Torrance") ;
+  Countries_USA_provinces_Colorado_cities_FortCollins = UsePN (mkPN "Fort Collins") ;
+  Countries_CDN_provinces_Saskatchewan_cities_Regina = UsePN (mkPN "Regina") ;
+  Countries_EAT_provinces_KusiniUjunga_cities_Koani = UsePN (mkPN "Koani") ;
+  Countries_MEX_provinces_Guerrero_cities_Chilpancingo = UsePN (mkPN "Chilpancingo") ;
+  Countries_E_provinces_Valencia_cities_Alacant = UsePN (mkPN "Alacant") ;
+  Countries_NOK_cities_Pyongyang = UsePN (mkPN "Pyongyang") ;
+  Organizations_SAARC = UsePN (mkPN "South Asian Association for Regional Cooperation") ;
+  Countries_SUD_provinces_ashShamaliyah_cities_adDamir = UsePN (mkPN "ad Damir") ;
+  Countries_CAM_provinces_Nord_cities_Garoua = UsePN (mkPN "Garoua") ;
+  Countries_CDN_provinces_Ontario_cities_Markham = UsePN (mkPN "Markham") ;
+  Countries_J_provinces_Aomori_cities_Aomori = UsePN (mkPN "Aomori") ;
+  Countries_UA_provinces_Krym_cities_Simferopol = UsePN (mkPN "Simferopol") ;
+  Countries_TR_provinces_Corum_cities_Corum = UsePN (mkPN "Corum") ;
+  Countries_USA_provinces_Vermont = UsePN (mkPN "Vermont") ;
+  Rivers_KleinerJenissej = UsePN (mkPN "Kleiner Jenissej") ;
+  Countries_N_provinces_MoereogRomsdal = UsePN (mkPN "Moere og Romsdal") ;
+  Countries_WAN_cities_IlaweEkiti = UsePN (mkPN "Ilawe Ekiti") ;
+  Countries_NL_provinces_NoordHolland_cities_Velsen = UsePN (mkPN "Velsen") ;
+  Countries_CO_provinces_Quindio = UsePN (mkPN "Quindio") ;
+  Countries_GB_provinces_Lancashire = UsePN (mkPN "Lancashire") ;
+  Countries_SUD_provinces_ashShamaliyah = UsePN (mkPN "ash Shamaliyah") ;
+  Countries_MAL_provinces_Johor_cities_JohorBaharu = UsePN (mkPN "Johor Baharu") ;
+  Countries_AUS_provinces_NewSouthWales_cities_SunshineCoast = UsePN (mkPN "Sunshine Coast") ;
+  Mountains_Semeru = UsePN (mkPN "Semeru") ;
+  Countries_BR_provinces_MinasGerais_cities_MontesClaros = UsePN (mkPN "Montes Claros") ;
+  Countries_RI_cities_Pontianak = UsePN (mkPN "Pontianak") ;
+  Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEstero = UsePN (mkPN "Santiago del Estero") ;
+  Countries_RO_provinces_Mehedinti_cities_DrobetaTurnuSeverin = UsePN (mkPN "Drobeta Turnu Severin") ;
+  Countries_R_provinces_Stavropolskykray_cities_Kislovodsk = UsePN (mkPN "Kislovodsk") ;
+  Countries_TR_provinces_Istanbul_cities_Istanbul = UsePN (mkPN "Istanbul") ;
+  Countries_CDN_provinces_Ontario_cities_ThunderBay = UsePN (mkPN "Thunder Bay") ;
+  Mountains_Tahan = UsePN (mkPN "Tahan") ;
+  Countries_TR_provinces_Siirt = UsePN (mkPN "Siirt") ;
+  Countries_R_provinces_Rep_ofKarelia = UsePN (mkPN "Rep. of Karelia") ;
+  Countries_RO_provinces_Teleorman_cities_Alexandria = UsePN (mkPN "Alexandria") ;
+  Mountains_MountGodwinAusten = UsePN (mkPN "Mount Godwin Austen") ;
+  Countries_TR_provinces_Rize = UsePN (mkPN "Rize") ;
+  Countries_GB_provinces_SouthYorkshire_cities_Barnsley = UsePN (mkPN "Barnsley") ;
+  Countries_RI_cities_Banjarmasin = UsePN (mkPN "Banjarmasin") ;
+  Countries_RC_provinces_Taipei_munic = UsePN (mkPN "Taipei (munic.)") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_Mezhdurechensk = UsePN (mkPN "Mezhdurechensk") ;
+  Countries_JA_cities_Kingston = UsePN (mkPN "Kingston") ;
+  Countries_C_provinces_IsladelaJuventud = UsePN (mkPN "Isla de la Juventud") ;
+  Countries_TJ_provinces_Anhui_cities_Suzhou = UsePN (mkPN "Suzhou") ;
+  Countries_TJ_provinces_Sichuan_cities_Dukou = UsePN (mkPN "Dukou") ;
+  Countries_TJ_provinces_XinjiangUygur = UsePN (mkPN "Xinjiang Uygur") ;
+  Countries_USA_provinces_California_cities_Oceanside = UsePN (mkPN "Oceanside") ;
+  Countries_KAZ_provinces_Qyzylorda = UsePN (mkPN "Qyzylorda") ;
+  Countries_USA_provinces_Texas = UsePN (mkPN "Texas") ;
+  Countries_YV_provinces_Zulia = UsePN (mkPN "Zulia") ;
+  Countries_NL_provinces_NoordHolland_cities_Amsterdam = UsePN (mkPN "Amsterdam") ;
+  Countries_R_provinces_Rep_ofDagestan = UsePN (mkPN "Rep. of Dagestan") ;
+  Countries_R_provinces_Rep_ofKhakassiya = UsePN (mkPN "Rep. of Khakassiya") ;
+  Countries_CDN_provinces_Quebec = UsePN (mkPN "Quebec") ;
+  Countries_GR_provinces_IonioiNisoi = UsePN (mkPN "Ionioi Nisoi") ;
+  Countries_J_provinces_Ishikawa = UsePN (mkPN "Ishikawa") ;
+  Islands_Aland = UsePN (mkPN "Aland") ;
+  Countries_GB_provinces_Lancashire_cities_Blackburn = UsePN (mkPN "Blackburn") ;
+  Countries_ROK_cities_Inchon = UsePN (mkPN "Inchon") ;
+  Countries_cid_cia_Cocos_Islands = UsePN (mkPN "Cocos Islands") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Mytishchi = UsePN (mkPN "Mytishchi") ;
+  Mountains_Sarektjokko = UsePN (mkPN "Sarektjokko") ;
+  Countries_S_provinces_Varmland_cities_Karlstad = UsePN (mkPN "Karlstad") ;
+  Countries_GB_provinces_Cornwall_IslesofScilly = UsePN (mkPN "Cornwall / Isles of Scilly") ;
+  Countries_RA_provinces_EntreRios_cities_Concordia = UsePN (mkPN "Concordia") ;
+  Organizations_UNDP = UsePN (mkPN "United Nations Development Program") ;
+  Countries_cid_cia_Faroe_Islands_cities_Torshavn = UsePN (mkPN "Torshavn") ;
+  Countries_IND_provinces_TamilNadu_cities_Madras = UsePN (mkPN "Madras") ;
+  Countries_MYA_provinces_Magway_cities_Magway = UsePN (mkPN "Magway") ;
+  Countries_RA_provinces_SantaFe = UsePN (mkPN "Santa Fe") ;
+  Countries_AUS_provinces_WesternAustralia = UsePN (mkPN "Western Australia") ;
+  Countries_PL_provinces_Zamojskie_cities_Zamosc = UsePN (mkPN "Zamosc") ;
+  Countries_RA_provinces_Catamarca_cities_SanFernando = UsePN (mkPN "San Fernando") ;
+  Countries_KGZ_cities_Bishkek = UsePN (mkPN "Bishkek") ;
+  Countries_IND_provinces_Maharashtra_cities_Sholapur = UsePN (mkPN "Sholapur") ;
+  Countries_GB_provinces_WestSussex_cities_Horsham = UsePN (mkPN "Horsham") ;
+  Countries_YV_provinces_Sucre = UsePN (mkPN "Sucre") ;
+  Countries_VN_provinces_BinhDinh = UsePN (mkPN "Binh Dinh") ;
+  Countries_USA_provinces_Colorado_cities_Denver = UsePN (mkPN "Denver") ;
+  Countries_TR_provinces_Karamanmaras_cities_KaramanMaras = UsePN (mkPN "Karaman Maras") ;
+  Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEsteroLaBanda = UsePN (mkPN "Santiago del Estero La Banda") ;
+  Countries_TJ_provinces_Hebei_cities_Qinhuangdao = UsePN (mkPN "Qinhuangdao") ;
+  Countries_S_provinces_GoteborgochBohus = UsePN (mkPN "Goteborg och Bohus") ;
+  Mountains_GrosserArber = UsePN (mkPN "Grosser Arber") ;
+  Countries_H_provinces_Vas = UsePN (mkPN "Vas") ;
+  Countries_TR_provinces_Nevsehir_cities_Nevsehir = UsePN (mkPN "Nevsehir") ;
+  Islands_Aust_Vagoey = UsePN (mkPN "Aust-Vagoey") ;
+  Countries_cid_cia_Kingman_Reef = UsePN (mkPN "Kingman Reef") ;
+  Islands_Harris = UsePN (mkPN "Harris") ;
+  Countries_R_provinces_Volgogradskayaoblast_cities_Volgograd = UsePN (mkPN "Volgograd") ;
+  Deserts_GrandVictoriaDesert = UsePN (mkPN "Grand Victoria Desert") ;
+  Countries_GB_provinces_Lancashire_cities_Preston = UsePN (mkPN "Preston") ;
+  Countries_RO_provinces_Sibiu_cities_Sibiu = UsePN (mkPN "Sibiu") ;
+  Countries_TR_provinces_Kocaeli = UsePN (mkPN "Kocaeli") ;
+  Countries_I_provinces_TrentinoAltoAdige = UsePN (mkPN "Trentino Alto Adige") ;
+  Countries_CH_provinces_AI_cities_Appenzell = UsePN (mkPN "Appenzell") ;
+  Countries_RI_cities_Pasuruan = UsePN (mkPN "Pasuruan") ;
+  Countries_GB_provinces_GreaterManchester_cities_Salford = UsePN (mkPN "Salford") ;
+  Countries_MEX_provinces_Jalisco_cities_Zapopan = UsePN (mkPN "Zapopan") ;
+  Countries_B_provinces_Limburg = UsePN (mkPN "Limburg") ;
+  Countries_BR_provinces_MinasGerais_cities_Ipatinga = UsePN (mkPN "Ipatinga") ;
+  Countries_AL_cities_Durres = UsePN (mkPN "Durres") ;
+  Countries_RG_cities_Conakry = UsePN (mkPN "Conakry") ;
+  Countries_NL_provinces_Groningen = UsePN (mkPN "Groningen") ;
+  Countries_GB_provinces_Gloucestershire_cities_Glouchester = UsePN (mkPN "Glouchester") ;
+  Countries_cid_cia_Saint_Pierre_and_Miquelon = UsePN (mkPN "Saint Pierre and Miquelon") ;
+  Countries_RA_provinces_Chubut = UsePN (mkPN "Chubut") ;
+  Countries_MEX_provinces_Michoacan_cities_Morelia = UsePN (mkPN "Morelia") ;
+  Countries_GB_provinces_WestSussex_cities_Chichester = UsePN (mkPN "Chichester") ;
+  Countries_D_provinces_Bayern_cities_Regensburg = UsePN (mkPN "Regensburg") ;
+  Countries_R_provinces_Chelyabinskayaoblast_cities_Miass = UsePN (mkPN "Miass") ;
+  Countries_RC_provinces_Pingtung_cities_Pingtung = UsePN (mkPN "Pingtung") ;
+  Countries_R_provinces_Khabarovskiykray = UsePN (mkPN "Khabarovskiy kray") ;
+  Islands_Staffa = UsePN (mkPN "Staffa") ;
+  Countries_PL_cities_DabrowaGornicza = UsePN (mkPN "Dabrowa Gornicza") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Dusseldorf = UsePN (mkPN "Dusseldorf") ;
+  Countries_VN_provinces_DacLac = UsePN (mkPN "Dac Lac") ;
+  Organizations_RG = UsePN (mkPN "Rio Group") ;
+  Countries_CDN_provinces_Ontario_cities_Etobicoke = UsePN (mkPN "Etobicoke") ;
+  Rivers_WesternDwina = UsePN (mkPN "Western Dwina") ;
+  Countries_CDN_provinces_Ontario_cities_London = UsePN (mkPN "London") ;
+  Countries_RO_provinces_Salaj_cities_Zalau = UsePN (mkPN "Zalau") ;
+  Countries_RO_provinces_Cluj_cities_ClujNapoca = UsePN (mkPN "Cluj Napoca") ;
+  Countries_GB_provinces_Monmouthshire_cities_Cwmbran = UsePN (mkPN "Cwmbran") ;
+  Countries_MEX_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
+  Countries_TJ_provinces_Jiangsu_cities_Suzhou = UsePN (mkPN "Suzhou") ;
+  Countries_F_provinces_PaysdelaLoire_cities_Nantes = UsePN (mkPN "Nantes") ;
+  Countries_R_provinces_Stavropolskykray_cities_Pyatigorsk = UsePN (mkPN "Pyatigorsk") ;
+  Countries_cid_cia_Svalbard_cities_Longyearbyen = UsePN (mkPN "Longyearbyen") ;
+  Countries_CH_provinces_FR_cities_Fribourg = UsePN (mkPN "Fribourg") ;
+  Countries_USA_provinces_Connecticut_cities_Stamford = UsePN (mkPN "Stamford") ;
+  Countries_ET_provinces_ElQalubiya = UsePN (mkPN "El Qalubiya") ;
+  Countries_A_provinces_LowerAustria = UsePN (mkPN "Lower Austria") ;
+  Countries_RP_cities_Quezon = UsePN (mkPN "Quezon") ;
+  Countries_cid_cia_Midway_Islands = UsePN (mkPN "Midway Islands") ;
+  Islands_MelvilleIsland = UsePN (mkPN "Melville Island") ;
+  Countries_GB_provinces_EastSussex = UsePN (mkPN "East Sussex") ;
+  Countries_KAZ_provinces_BatysQazaqstan = UsePN (mkPN "Batys Qazaqstan") ;
+  Countries_RI_cities_Manado = UsePN (mkPN "Manado") ;
+  Countries_PE_provinces_SanMartin = UsePN (mkPN "San Martin") ;
+  Countries_MOC_provinces_Zambezia_cities_Quelimane = UsePN (mkPN "Quelimane") ;
+  Countries_BR_provinces_MinasGerais_cities_TeofiloOtoni = UsePN (mkPN "Teofilo Otoni") ;
+  Islands_Taiwan = UsePN (mkPN "Taiwan") ;
+  Countries_IND_provinces_Kerala_cities_Cochin = UsePN (mkPN "Cochin") ;
+  Countries_IND_provinces_Karnataka_cities_Hubli = UsePN (mkPN "Hubli") ;
+  Islands_Martinique = UsePN (mkPN "Martinique") ;
+  Countries_BIH_cities_Sarajevo = UsePN (mkPN "Sarajevo") ;
+  Countries_NIC_cities_Masaya = UsePN (mkPN "Masaya") ;
+  Countries_RO_provinces_Constanta_cities_Constanta = UsePN (mkPN "Constanta") ;
+  Countries_WAN_cities_Bida = UsePN (mkPN "Bida") ;
+  Countries_RC_provinces_Kaohsiung_munic_cities_Kaohsiung = UsePN (mkPN "Kaohsiung") ;
+  Organizations_OPANAL = UsePN (mkPN "Agency for the Prohibition of Nuclear Weapons in Latin America and the Caribbean") ;
+  Countries_MAL_provinces_PulauPinang_cities_GeorgeTown = UsePN (mkPN "George Town") ;
+  Islands_Anglesey = UsePN (mkPN "Anglesey") ;
+  Countries_TR_provinces_Sakarya_cities_Sakarya = UsePN (mkPN "Sakarya") ;
+  Countries_E_provinces_Andalusia_cities_Cordoba = UsePN (mkPN "Cordoba") ;
+  Countries_EAK_provinces_Eastern = UsePN (mkPN "Eastern") ;
+  Countries_THA_provinces_NakhonNayok = UsePN (mkPN "Nakhon Nayok") ;
+  Rivers_Orinoco = UsePN (mkPN "Orinoco") ;
+  Countries_H_provinces_Pecs_munic = UsePN (mkPN "Pecs (munic.)") ;
+  Countries_EAT_provinces_KusiniUjunga = UsePN (mkPN "Kusini Ujunga") ;
+  Countries_F_provinces_HauteNormandie_cities_LeHavre = UsePN (mkPN "Le Havre") ;
+  Countries_BD_cities_Dinajpur = UsePN (mkPN "Dinajpur") ;
+  Countries_ANG_provinces_Namibe = UsePN (mkPN "Namibe") ;
+  Countries_MEX_provinces_Tamaulipas_cities_Tampico = UsePN (mkPN "Tampico") ;
+  Countries_IND_provinces_Bihar_cities_Patna = UsePN (mkPN "Patna") ;
+  Countries_CO_provinces_Boyaca_cities_Tunja = UsePN (mkPN "Tunja") ;
+  Countries_RA_provinces_TierradelFuego_cities_Ushuaia = UsePN (mkPN "Ushuaia") ;
+  Countries_R_provinces_Khabarovskiykray_cities_KomsomolsknaAmure = UsePN (mkPN "Komsomolsk na Amure") ;
+  Countries_BR_provinces_MinasGerais_cities_GovernadorValadares = UsePN (mkPN "Governador Valadares") ;
+  Countries_B_provinces_EastFlanders = UsePN (mkPN "East Flanders") ;
+  Countries_TJ_provinces_Shandong_cities_Liancheng = UsePN (mkPN "Liancheng") ;
+  Countries_IRQ_provinces_Maysan = UsePN (mkPN "Maysan") ;
+  Countries_BR_provinces_Pernambuco_cities_Gravatai = UsePN (mkPN "Gravatai") ;
+  Rivers_Cuilo = UsePN (mkPN "Cuilo") ;
+  Countries_MEX_provinces_Durango_cities_VictoriadeDurango = UsePN (mkPN "Victoria de Durango") ;
+  Countries_MOC_provinces_Nampula_cities_Nampula = UsePN (mkPN "Nampula") ;
+  Countries_R_provinces_Rep_ofNorthOssetiya = UsePN (mkPN "Rep. of North Ossetiya") ;
+  Countries_SF_provinces_Kymi_cities_Kotka = UsePN (mkPN "Kotka") ;
+  Countries_H_provinces_Bekes = UsePN (mkPN "Bekes") ;
+  Countries_GB_provinces_Derbyshire_cities_Matlock = UsePN (mkPN "Matlock") ;
+  Islands_SouthRonaldson = UsePN (mkPN "South Ronaldson") ;
+  Countries_cid_cia_French_Southern_and_Antarctic_Lands = UsePN (mkPN "French Southern and Antarctic Lands") ;
+  Countries_GB_provinces_NorthYorkshire_cities_Harrogate = UsePN (mkPN "Harrogate") ;
+  Lakes_LakeChilwa = UsePN (mkPN "Lake Chilwa") ;
+  Countries_IRQ_provinces_AlAnbar_cities_ArRamadi = UsePN (mkPN "Ar Ramadi") ;
+  Countries_HCA_provinces_Olancho_cities_Jutigalpa = UsePN (mkPN "Jutigalpa") ;
+  Countries_I_provinces_Lombardia = UsePN (mkPN "Lombardia") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Tongliao = UsePN (mkPN "Tongliao") ;
+  Countries_BOL_cities_LaPaz = UsePN (mkPN "La Paz") ;
+  Countries_D_provinces_Berlin = UsePN (mkPN "Berlin") ;
+  Countries_MEX_provinces_Veracruz_cities_Jalapa = UsePN (mkPN "Jalapa") ;
+  Mountains_Sulitjelma = UsePN (mkPN "Sulitjelma") ;
+  Countries_F_provinces_FrancheComte_cities_Besancon = UsePN (mkPN "Besancon") ;
+  Countries_GB_provinces_Dorset_cities_Poole = UsePN (mkPN "Poole") ;
+  Countries_TJ_provinces_Shandong_cities_Rizhao = UsePN (mkPN "Rizhao") ;
+  Countries_MYA_provinces_Rakhine_cities_Akyab = UsePN (mkPN "Akyab") ;
+  Countries_GB_provinces_Buckinghamshire_cities_MiltonKeynes = UsePN (mkPN "Milton Keynes") ;
+  Countries_TJ_provinces_Shandong_cities_Jiaoxian = UsePN (mkPN "Jiaoxian") ;
+  Organizations_EN = UsePN (mkPN "Nuclear Energy Agency") ;
+  Countries_IR_provinces_Bakhtaran = UsePN (mkPN "Bakhtaran") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_SaoJoaodeMeriti = UsePN (mkPN "Sao Joao de Meriti") ;
+  Countries_YV_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
+  Countries_J_provinces_Nagano = UsePN (mkPN "Nagano") ;
+  Countries_R_provinces_Orenburgskayaoblast_cities_Novotroitsk = UsePN (mkPN "Novotroitsk") ;
+  Countries_USA_provinces_Colorado = UsePN (mkPN "Colorado") ;
+  Countries_MEX_provinces_Sinaloa = UsePN (mkPN "Sinaloa") ;
+  Countries_J_provinces_Akita_cities_Akita = UsePN (mkPN "Akita") ;
+  Countries_CO_provinces_Antioquia_cities_Turbo = UsePN (mkPN "Turbo") ;
+  Countries_E_provinces_Asturias_cities_Oviedo = UsePN (mkPN "Oviedo") ;
+  Countries_SUD_provinces_ashSharqiyah_cities_alQadarif = UsePN (mkPN "al Qadarif") ;
+  Countries_R_provinces_Kaluzhskayaoblast_cities_Kaluga = UsePN (mkPN "Kaluga") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Qinzhou = UsePN (mkPN "Qinzhou") ;
+  Islands_Kyushu = UsePN (mkPN "Kyushu") ;
+  Lakes_Vaettern = UsePN (mkPN "Vaettern") ;
+  Countries_BR_provinces_Maranhao_cities_Codo = UsePN (mkPN "Codo") ;
+  Countries_GB_provinces_Merseyside_cities_Knowsley = UsePN (mkPN "Knowsley") ;
+  Countries_BR_provinces_MinasGerais_cities_ItapecericadaSerra = UsePN (mkPN "Itapecerica da Serra") ;
+  Countries_TR_provinces_Sinop = UsePN (mkPN "Sinop") ;
+  Countries_R_provinces_Rep_ofAltay = UsePN (mkPN "Rep. of Altay") ;
+  Rivers_Limpopo = UsePN (mkPN "Limpopo") ;
+  Countries_TJ_provinces_Hubei_cities_Shiyan = UsePN (mkPN "Shiyan") ;
+  Organizations_UNAVEMIII = UsePN (mkPN "United Nations Angola Verification Mission") ;
+  Rivers_Ischim = UsePN (mkPN "Ischim") ;
+  Countries_cid_cia_Palmyra_Atoll = UsePN (mkPN "Palmyra Atoll") ;
+  Countries_BR_provinces_MatoGrossodoSul_cities_Parnaiba = UsePN (mkPN "Parnaiba") ;
+  Countries_VN_provinces_ThuaThienHue = UsePN (mkPN "Thua Thien Hue") ;
+  Countries_RSA_cities_Diepmeadow = UsePN (mkPN "Diepmeadow") ;
+  Countries_PL_provinces_Pilskie_cities_Pila = UsePN (mkPN "Pila") ;
+  Islands_Grenada = UsePN (mkPN "Grenada") ;
+  Countries_GB_provinces_Cleveland = UsePN (mkPN "Cleveland") ;
+  Countries_BR_provinces_Parana = UsePN (mkPN "Parana") ;
+  Countries_BR_provinces_RioGrandedoNorte_cities_Mossoro = UsePN (mkPN "Mossoro") ;
+  Countries_J_provinces_Ibaraki_cities_Mito = UsePN (mkPN "Mito") ;
+  Countries_PNG_cities_PortMoresby = UsePN (mkPN "Port Moresby") ;
+  Countries_TR_provinces_Ankara_cities_Ankara = UsePN (mkPN "Ankara") ;
+  Countries_USA_provinces_Pennsylvania = UsePN (mkPN "Pennsylvania") ;
+  Countries_SN_provinces_SaintLouis = UsePN (mkPN "Saint Louis") ;
+  Countries_RA_provinces_Salta_cities_Salta = UsePN (mkPN "Salta") ;
+  Countries_ANG_provinces_Cabinda_cities_Cabinda = UsePN (mkPN "Cabinda") ;
+  Countries_PE_provinces_Huancavelica_cities_Huancavelica = UsePN (mkPN "Huancavelica") ;
+  Countries_TJ_provinces_Shandong_cities_Tengxian = UsePN (mkPN "Tengxian") ;
+  Countries_D_provinces_Bayern_cities_Furth = UsePN (mkPN "Furth") ;
+  Countries_SN_provinces_Dakar = UsePN (mkPN "Dakar") ;
+  Countries_IR_provinces_SistaneBaluchestan_cities_Zahedan = UsePN (mkPN "Zahedan") ;
+  Countries_R_provinces_Yaroslavskayaoblast = UsePN (mkPN "Yaroslavskaya oblast") ;
+  Rivers_Werra = UsePN (mkPN "Werra") ;
+  Countries_ET_provinces_ElDaqahliya = UsePN (mkPN "El Daqahliya") ;
+  Countries_ES_provinces_Morazan_cities_SanFranciscoGotera = UsePN (mkPN "San Francisco Gotera") ;
+  Countries_CH_provinces_NW_cities_Stans = UsePN (mkPN "Stans") ;
+  Countries_ET_provinces_ElQahira_munic_cities_ElQahira = UsePN (mkPN "El Qahira") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoJosedosCampos = UsePN (mkPN "Sao Jose dos Campos") ;
+  Organizations_SADC = UsePN (mkPN "Southern African Development Community") ;
+  Countries_MEX_provinces_Campeche = UsePN (mkPN "Campeche") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Zelenograd = UsePN (mkPN "Zelenograd") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Nanning = UsePN (mkPN "Nanning") ;
+  Countries_TJ_provinces_Liaoning_cities_Jinxi = UsePN (mkPN "Jinxi") ;
+  Countries_HCA_provinces_Cortes_cities_SanPedroSula = UsePN (mkPN "San Pedro Sula") ;
+  Countries_ET_provinces_ElMinya_cities_ElMinya = UsePN (mkPN "El Minya") ;
+  Countries_TJ_provinces_Liaoning_cities_Dalian = UsePN (mkPN "Dalian") ;
+  Countries_EC_cities_Guayaquil = UsePN (mkPN "Guayaquil") ;
+  Countries_USA_provinces_Washington = UsePN (mkPN "Washington") ;
+  Countries_CH_provinces_FR = UsePN (mkPN "FR") ;
+  Countries_YV_cities_Turmero = UsePN (mkPN "Turmero") ;
+  Countries_cid_cia_Guam = UsePN (mkPN "Guam") ;
+  Countries_GB_provinces_EastSussex_cities_Brighton = UsePN (mkPN "Brighton") ;
+  Countries_BR_provinces_Acre_cities_RioBranco = UsePN (mkPN "Rio Branco") ;
+  Countries_THA_provinces_Phangnga = UsePN (mkPN "Phangnga") ;
+  Countries_ET_provinces_Sharqiya_cities_Zagazig = UsePN (mkPN "Zagazig") ;
+  Lakes_DaryachehyeNamak = UsePN (mkPN "Daryacheh ye Namak") ;
+  Countries_GB_provinces_Tayside_cities_Dundee = UsePN (mkPN "Dundee") ;
+  Countries_RA_provinces_BuenosAires_cities_BahiaBlanca = UsePN (mkPN "Bahia Blanca") ;
+  Mountains_Mpika = UsePN (mkPN "Mpika") ;
+  Countries_USA_provinces_Kansas = UsePN (mkPN "Kansas") ;
+  Countries_TJ_provinces_Fujian_cities_Sanming = UsePN (mkPN "Sanming") ;
+  Countries_TJ_provinces_Anhui_cities_Huaibei = UsePN (mkPN "Huaibei") ;
+  Countries_USA_provinces_California_cities_LosAngeles = UsePN (mkPN "Los Angeles") ;
+  Countries_ET_provinces_ElMinya = UsePN (mkPN "El Minya") ;
+  Countries_RO_provinces_Dolj = UsePN (mkPN "Dolj") ;
+  Countries_ETH_cities_Mekele = UsePN (mkPN "Mekele") ;
+  Countries_ES_provinces_Cabanas_cities_Sensuntepeque = UsePN (mkPN "Sensuntepeque") ;
+  Countries_RO_provinces_Neamt_cities_PiatraNeamt = UsePN (mkPN "Piatra Neamt") ;
+  Seas_SundaSea = UsePN (mkPN "Sunda Sea") ;
+  Countries_ES_cities_Apopa = UsePN (mkPN "Apopa") ;
+  Countries_TJ_provinces_Sichuan_cities_Neijiang = UsePN (mkPN "Neijiang") ;
+  Countries_MYA_provinces_Tanintharyi = UsePN (mkPN "Tanintharyi") ;
+  Countries_F_provinces_LanguedocRousillon_cities_Nimes = UsePN (mkPN "Nimes") ;
+  Countries_cid_cia_Netherlands_Antilles = UsePN (mkPN "Netherlands Antilles") ;
+  Countries_GCA_cities_VillaNueva = UsePN (mkPN "Villa Nueva") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Wuhai = UsePN (mkPN "Wuhai") ;
+  Countries_GB_provinces_Devon_cities_Exeter = UsePN (mkPN "Exeter") ;
+  Countries_CH_provinces_AI = UsePN (mkPN "AI") ;
+  Countries_R_provinces_Rep_ofMariyEl_cities_YoshkarOla = UsePN (mkPN "Yoshkar Ola") ;
+  Countries_TR_provinces_Cankiri_cities_Cankiri = UsePN (mkPN "Cankiri") ;
+  Countries_TJ_provinces_Shanxi_cities_Datong = UsePN (mkPN "Datong") ;
+  Countries_TM_provinces_Balkan = UsePN (mkPN "Balkan") ;
+  Countries_BR_provinces_SaoPaulo_cities_Sorocaba = UsePN (mkPN "Sorocaba") ;
+  Countries_USA_provinces_NewHampshire_cities_Manchester = UsePN (mkPN "Manchester") ;
+  Countries_NAM_cities_Windhoek = UsePN (mkPN "Windhoek") ;
+  Countries_I_provinces_EmiliaRomagna_cities_ReggionellEmilia = UsePN (mkPN "Reggio nellEmilia") ;
+  Countries_GB_provinces_GreaterManchester_cities_Rochdale = UsePN (mkPN "Rochdale") ;
+  Countries_SF_provinces_Mikkeli_cities_Mikkeli = UsePN (mkPN "Mikkeli") ;
+  Countries_HCA_provinces_LaPaz_cities_LaPaz = UsePN (mkPN "La Paz") ;
+  Countries_IRQ_provinces_AlQadisiyah_cities_AdDiwaniyah = UsePN (mkPN "Ad Diwaniyah") ;
+  Organizations_IADB = UsePN (mkPN "Inter-American Development Bank") ;
+  Countries_USA_provinces_Texas_cities_WichitaFalls = UsePN (mkPN "Wichita Falls") ;
+  Islands_Tuvalu = UsePN (mkPN "Tuvalu") ;
+  Countries_AUS_provinces_NewSouthWales_cities_Geelong = UsePN (mkPN "Geelong") ;
+  Countries_TR_provinces_Kocaeli_cities_Izmit = UsePN (mkPN "Izmit") ;
+  Countries_YV_provinces_Portuguesa_cities_Guanare = UsePN (mkPN "Guanare") ;
+  Countries_IND_provinces_DamanandDiu_cities_Daman = UsePN (mkPN "Daman") ;
+  Organizations_UNCTAD = UsePN (mkPN "United Nations Conference on Trade and Development") ;
+  Countries_CH_provinces_AG = UsePN (mkPN "AG") ;
+  Countries_THA_provinces_KhonKaen_cities_KhonKaen = UsePN (mkPN "Khon Kaen") ;
+  Countries_MYA_provinces_Kayah_cities_Loikaw = UsePN (mkPN "Loikaw") ;
+  Countries_BR_provinces_Maranhao_cities_Imperatriz = UsePN (mkPN "Imperatriz") ;
+  Countries_DK_cities_Copenhagen = UsePN (mkPN "Copenhagen") ;
+  Countries_MEX_provinces_Yucatan = UsePN (mkPN "Yucatan") ;
+  Countries_BR_provinces_Pernambuco_cities_Recife = UsePN (mkPN "Recife") ;
+  Countries_USA_provinces_Arkansas_cities_LittleRock = UsePN (mkPN "Little Rock") ;
+  Countries_cid_cia_British_Virgin_Islands = UsePN (mkPN "British Virgin Islands") ;
+  Countries_USA_provinces_California_cities_Bakersfield = UsePN (mkPN "Bakersfield") ;
+  Countries_THA_provinces_Saraburi = UsePN (mkPN "Saraburi") ;
+  Islands_Bohol = UsePN (mkPN "Bohol") ;
+  Islands_Isabela = UsePN (mkPN "Isabela") ;
+  Countries_TR_provinces_Kirsehir = UsePN (mkPN "Kirsehir") ;
+  Countries_PL_provinces_Szczecinskie_cities_Szczecin = UsePN (mkPN "Szczecin") ;
+  Organizations_EBRD = UsePN (mkPN "European Bank for Reconstruction and Development") ;
+  Countries_THA_provinces_NortheasternRegion = UsePN (mkPN "Northeastern Region") ;
+  Mountains_BorahPeak = UsePN (mkPN "Borah Peak") ;
+  Countries_PK_cities_Multan = UsePN (mkPN "Multan") ;
+  Mountains_MtAylmer = UsePN (mkPN "Mt Aylmer") ;
+  Countries_USA_provinces_NewJersey_cities_Newark = UsePN (mkPN "Newark") ;
+  Rivers_Gloma = UsePN (mkPN "Gloma") ;
+  Countries_PL_provinces_Gdanskie_cities_Gdynia = UsePN (mkPN "Gdynia") ;
+  Countries_UZB_provinces_Namangan = UsePN (mkPN "Namangan") ;
+  Countries_GE_cities_Tbilisi = UsePN (mkPN "Tbilisi") ;
+  Countries_CO_provinces_Guaviare = UsePN (mkPN "Guaviare") ;
+  Countries_D_provinces_Thuringen_cities_Gera = UsePN (mkPN "Gera") ;
+  Countries_MEX_provinces_BajaCalifornia_cities_Tijuana = UsePN (mkPN "Tijuana") ;
+  Islands_Tilos = UsePN (mkPN "Tilos") ;
+  Countries_SF_provinces_Oulu_cities_Oulu = UsePN (mkPN "Oulu") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Jining = UsePN (mkPN "Jining") ;
+  Countries_cid_cia_Tromelin_Island = UsePN (mkPN "Tromelin Island") ;
+  Countries_N_provinces_Nordland_cities_Svolvaer = UsePN (mkPN "Svolvaer") ;
+  Countries_B_provinces_Hainaut_cities_Mons = UsePN (mkPN "Mons") ;
+  Countries_USA_provinces_California_cities_Ontario = UsePN (mkPN "Ontario") ;
+  Countries_EAT_provinces_Kigoma = UsePN (mkPN "Kigoma") ;
+  Countries_ES_provinces_LaPaz = UsePN (mkPN "La Paz") ;
+  Rivers_Ruki = UsePN (mkPN "Ruki") ;
+  Rivers_Tobol = UsePN (mkPN "Tobol") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Raipur = UsePN (mkPN "Raipur") ;
+  Countries_I_provinces_EmiliaRomagna = UsePN (mkPN "Emilia Romagna") ;
+  Countries_RA_provinces_SanLuis = UsePN (mkPN "San Luis") ;
+  Countries_THA_provinces_SouthernRegion = UsePN (mkPN "Southern Region") ;
+  Countries_THA_provinces_NakhonSawan = UsePN (mkPN "Nakhon Sawan") ;
+  Countries_USA_provinces_Michigan_cities_Livonia = UsePN (mkPN "Livonia") ;
+  Countries_RA_provinces_BuenosAires_cities_SanNicolasdelosArroyos = UsePN (mkPN "San Nicolas de los Arroyos") ;
+  Countries_UA_provinces_Krym = UsePN (mkPN "Krym") ;
+  Organizations_UNMOGIP = UsePN (mkPN "United Nations Military Observer Group in India and Pakistan") ;
+  Countries_R_provinces_Irkutskayaoblast_cities_Bratsk = UsePN (mkPN "Bratsk") ;
+  Countries_IND_provinces_AndhraPradesh_cities_Rajahmundry = UsePN (mkPN "Rajahmundry") ;
+  Countries_RA_provinces_Catamarca_cities_SanFernandodelValledeCatamarca = UsePN (mkPN "San Fernando del Valle de Catamarca") ;
+  Countries_CDN_provinces_Ontario_cities_Windsor = UsePN (mkPN "Windsor") ;
+  Countries_MEX_provinces_BajaCalifornia_cities_Ensenada = UsePN (mkPN "Ensenada") ;
+  Countries_ET_provinces_ElMinufiya = UsePN (mkPN "El Minufiya") ;
+  Countries_CDN_provinces_Ontario_cities_Glouchester = UsePN (mkPN "Glouchester") ;
+  Countries_TJ_provinces_Sichuan_cities_Qianjiang = UsePN (mkPN "Qianjiang") ;
+  Countries_EAT_provinces_Kilimanjaro_cities_Moshi = UsePN (mkPN "Moshi") ;
+  Countries_TR_provinces_Tunceli = UsePN (mkPN "Tunceli") ;
+  Countries_E_provinces_Andalusia_cities_Cadiz = UsePN (mkPN "Cadiz") ;
+  Countries_TAD_provinces_Khatlon = UsePN (mkPN "Khatlon") ;
+  Countries_GB_provinces_Wiltshire_cities_Salisbury = UsePN (mkPN "Salisbury") ;
+  Countries_R_provinces_Yaroslavskayaoblast_cities_Yaroslavl = UsePN (mkPN "Yaroslavl") ;
+  Countries_TJ_provinces_Liaoning = UsePN (mkPN "Liaoning") ;
+  Organizations_AG = UsePN (mkPN "Andean Group") ;
+  Countries_CDN_provinces_Quebec_cities_Laval = UsePN (mkPN "Laval") ;
+  Countries_cid_cia_Mayotte = UsePN (mkPN "Mayotte") ;
+  Lakes_LakeNatron = UsePN (mkPN "Lake Natron") ;
+  Countries_DZ_cities_Annaba = UsePN (mkPN "Annaba") ;
+  Countries_AUS_provinces_AustraliaCapitalTerritory = UsePN (mkPN "Australia Capital Territory") ;
+  Organizations_MTCR = UsePN (mkPN "Missile Technology Control Regime") ;
+  Countries_E_provinces_Madrid_cities_Madrid = UsePN (mkPN "Madrid") ;
+  Countries_D_provinces_Bayern_cities_Wurzburg = UsePN (mkPN "Wurzburg") ;
+  Countries_USA_provinces_Maryland_cities_Annapolis = UsePN (mkPN "Annapolis") ;
+  Countries_BR_provinces_Ceara_cities_Sobral = UsePN (mkPN "Sobral") ;
+  Countries_USA_provinces_NewHampshire_cities_Concord = UsePN (mkPN "Concord") ;
+  Countries_RC_cities_Chungli = UsePN (mkPN "Chungli") ;
+  Countries_PL_provinces_Koninskie = UsePN (mkPN "Koninskie") ;
+  Countries_NL_provinces_Limburg_cities_Geleen = UsePN (mkPN "Geleen") ;
+  Countries_CAM_provinces_Centre = UsePN (mkPN "Centre") ;
+  Islands_Chios = UsePN (mkPN "Chios") ;
+  Countries_TJ_provinces_Gansu = UsePN (mkPN "Gansu") ;
+  Countries_UZB_provinces_Andijon = UsePN (mkPN "Andijon") ;
+  Countries_USA_provinces_Missouri_cities_JeffersonCity = UsePN (mkPN "Jefferson City") ;
+  Countries_THA_provinces_PrachuapKhiriKhan = UsePN (mkPN "Prachuap Khiri Khan") ;
+  Countries_D_provinces_MecklenburgVorpommern_cities_Rostock = UsePN (mkPN "Rostock") ;
+  Countries_EAT_provinces_Rukwa_cities_Sumbawanga = UsePN (mkPN "Sumbawanga") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Bottrop = UsePN (mkPN "Bottrop") ;
+  Countries_J_provinces_Aomori = UsePN (mkPN "Aomori") ;
+  Countries_WAN_cities_Kaduna = UsePN (mkPN "Kaduna") ;
+  Countries_VN_provinces_LamDong = UsePN (mkPN "Lam Dong") ;
+  Organizations_SACU = UsePN (mkPN "Southern African Customs Union") ;
+  Countries_TJ_provinces_Guangdong_cities_Guangzhou = UsePN (mkPN "Guangzhou") ;
+  Countries_LT_cities_Vilnius = UsePN (mkPN "Vilnius") ;
+  Countries_D_provinces_Niedersachsen_cities_Gottingen = UsePN (mkPN "Gottingen") ;
+  Countries_USA_provinces_Maryland_cities_Baltimore = UsePN (mkPN "Baltimore") ;
+  Countries_ET_provinces_Aswan_cities_Aswan = UsePN (mkPN "Aswan") ;
+  Countries_D_provinces_Brandenburg_cities_Potsdam = UsePN (mkPN "Potsdam") ;
+  Countries_TR_provinces_Denizli = UsePN (mkPN "Denizli") ;
+  Countries_TJ_provinces_Hunan_cities_Leiyang = UsePN (mkPN "Leiyang") ;
+  Countries_KAZ_provinces_Leninsk_munic_cities_Leninsk = UsePN (mkPN "Leninsk") ;
+  Countries_H_provinces_Csongrad = UsePN (mkPN "Csongrad") ;
+  Countries_R_provinces_Leningradskayaoblast_cities_Kolpino = UsePN (mkPN "Kolpino") ;
+  Countries_GB_provinces_Leicestershire_cities_Leichester = UsePN (mkPN "Leichester") ;
+  Countries_RC_provinces_Hualien = UsePN (mkPN "Hualien") ;
+  Rivers_Busira = UsePN (mkPN "Busira") ;
+  Countries_VN_provinces_TayNinh = UsePN (mkPN "Tay Ninh") ;
+  Mountains_Joekul = UsePN (mkPN "Joekul") ;
+  Countries_WAN_cities_Ilesha = UsePN (mkPN "Ilesha") ;
+  Countries_WAN_cities_Zaria = UsePN (mkPN "Zaria") ;
+  Countries_J_provinces_Ehime_cities_Matsuyama = UsePN (mkPN "Matsuyama") ;
+  Countries_MEX_provinces_Tamaulipas = UsePN (mkPN "Tamaulipas") ;
+  Countries_ZRE_provinces_Shaba_cities_Kolwezi = UsePN (mkPN "Kolwezi") ;
+  Countries_R_provinces_Permskayaoblast = UsePN (mkPN "Permskaya oblast") ;
+  Countries_MEX_provinces_Jalisco_cities_Guadalajara = UsePN (mkPN "Guadalajara") ;
+  Islands_Arran = UsePN (mkPN "Arran") ;
+  Countries_USA_provinces_California_cities_Escondido = UsePN (mkPN "Escondido") ;
+  Countries_BR_provinces_SaoPaulo_cities_Piracicaba = UsePN (mkPN "Piracicaba") ;
+  Countries_CDN_provinces_Ontario_cities_Burlington = UsePN (mkPN "Burlington") ;
+  Countries_WAN_cities_PortHarcourt = UsePN (mkPN "Port Harcourt") ;
+  Countries_R_provinces_Rep_ofKalmykiya_cities_Elista = UsePN (mkPN "Elista") ;
+  Countries_R_provinces_ChuvashRepublic_cities_Cheboksary = UsePN (mkPN "Cheboksary") ;
+  Islands_SantaCatalinaIsland = UsePN (mkPN "Santa Catalina Island") ;
+  Rivers_Han = UsePN (mkPN "Han") ;
+  Countries_USA_provinces_Missouri_cities_Independence = UsePN (mkPN "Independence") ;
+  Countries_PA_provinces_ComarcadeSanBlas_cities_ElPorvenir = UsePN (mkPN "El Porvenir") ;
+  Countries_PL_provinces_Katowickie_cities_Zabrze = UsePN (mkPN "Zabrze") ;
+  Countries_CDN_provinces_Quebec_cities_Richmond = UsePN (mkPN "Richmond") ;
+  Countries_SUD_provinces_ashSharqiyah_cities_PortSudan = UsePN (mkPN "Port Sudan") ;
+  Countries_BR_provinces_EspiritoSanto_cities_Vitoria = UsePN (mkPN "Vitoria") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Mannheim = UsePN (mkPN "Mannheim") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Manzhouli = UsePN (mkPN "Manzhouli") ;
+  Countries_USA_provinces_NewYork_cities_NewYork = UsePN (mkPN "New York") ;
+  Countries_RI_cities_Blitar = UsePN (mkPN "Blitar") ;
+  Countries_GB_provinces_Berkshire_cities_Slough = UsePN (mkPN "Slough") ;
+  Countries_IRQ_provinces_Diyala = UsePN (mkPN "Diyala") ;
+  Countries_TJ_provinces_Shanxi_cities_Changzhi = UsePN (mkPN "Changzhi") ;
+  Countries_I_provinces_Sardegna_cities_Sassari = UsePN (mkPN "Sassari") ;
+  Countries_TR_provinces_Kocaeli_cities_Gebze = UsePN (mkPN "Gebze") ;
+  Countries_YV_provinces_Yaracuy = UsePN (mkPN "Yaracuy") ;
+  Countries_D_provinces_SachsenAnhalt_cities_Magdeburg = UsePN (mkPN "Magdeburg") ;
+  Countries_BR_provinces_SaoPaulo_cities_MojiGuacu = UsePN (mkPN "Moji Guacu") ;
+  Organizations_WEU = UsePN (mkPN "Western European Union") ;
+  Countries_MEX_cities_CiudadApodaca = UsePN (mkPN "Ciudad Apodaca") ;
+  Countries_IL_provinces_Central_cities_Jerusalem = UsePN (mkPN "Jerusalem") ;
+  Countries_BR_provinces_EspiritoSanto_cities_Serra = UsePN (mkPN "Serra") ;
+  Countries_TJ_provinces_Anhui_cities_Maanshan = UsePN (mkPN "Maanshan") ;
+  Organizations_CBSS = UsePN (mkPN "Council of the Baltic Sea States") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_CaxiasdoSul = UsePN (mkPN "Caxias do Sul") ;
+  Countries_E_provinces_Cantabria_cities_Santander = UsePN (mkPN "Santander") ;
+  Countries_TJ_provinces_Guangdong_cities_Huizhou = UsePN (mkPN "Huizhou") ;
+  Countries_SF_provinces_Vaasa_cities_Vaasa = UsePN (mkPN "Vaasa") ;
+  Countries_PK_cities_Lahore = UsePN (mkPN "Lahore") ;
+  Countries_RO_provinces_Ialomita = UsePN (mkPN "Ialomita") ;
+  Rivers_Thames = UsePN (mkPN "Thames") ;
+  Countries_IR_provinces_Khorasan = UsePN (mkPN "Khorasan") ;
+  Countries_P_provinces_Madeira_cities_Funchal = UsePN (mkPN "Funchal") ;
+  Countries_USA_provinces_Indiana_cities_Gary = UsePN (mkPN "Gary") ;
+  Countries_IR_provinces_Hormozgan = UsePN (mkPN "Hormozgan") ;
+  Countries_TJ_provinces_Jilin_cities_Yanji = UsePN (mkPN "Yanji") ;
+  Countries_J_provinces_Ibaraki = UsePN (mkPN "Ibaraki") ;
+  Lakes_LakeOntario = UsePN (mkPN "Lake Ontario") ;
+  Countries_CDN_provinces_Ontario_cities_Toronto = UsePN (mkPN "Toronto") ;
+  Countries_SUD_provinces_ashSharqiyah = UsePN (mkPN "ash Sharqiyah") ;
+  Countries_TJ_provinces_Henan_cities_Xinxiang = UsePN (mkPN "Xinxiang") ;
+  Countries_TJ_provinces_Anhui_cities_Chuxian = UsePN (mkPN "Chuxian") ;
+  Countries_USA_provinces_SouthCarolina_cities_Columbia = UsePN (mkPN "Columbia") ;
+  Countries_H_provinces_Tolna = UsePN (mkPN "Tolna") ;
+  Countries_RA_provinces_BuenosAires_cities_Lanus = UsePN (mkPN "Lanus") ;
+  Countries_EAK_provinces_Coast_cities_Mombasa = UsePN (mkPN "Mombasa") ;
+  Countries_MEX_provinces_Guerrero = UsePN (mkPN "Guerrero") ;
+  Countries_MEX_provinces_Chiapas_cities_TuxtlaGutierrez = UsePN (mkPN "Tuxtla Gutierrez") ;
+  Countries_BR_cities_Ibirite = UsePN (mkPN "Ibirite") ;
+  Countries_THA_provinces_Petchanbun = UsePN (mkPN "Petchanbun") ;
+  Countries_H_provinces_Nograd_cities_Salgotarjan = UsePN (mkPN "Salgotarjan") ;
+  Countries_YV_provinces_Miranda_cities_Baruta = UsePN (mkPN "Baruta") ;
+  Countries_RO_provinces_Vrancea_cities_Focsani = UsePN (mkPN "Focsani") ;
+  Countries_TJ_provinces_Hunan_cities_Changsha = UsePN (mkPN "Changsha") ;
+  Mountains_HarneyPeak = UsePN (mkPN "Harney Peak") ;
+  Countries_BR_provinces_SaoPaulo_cities_Maua = UsePN (mkPN "Maua") ;
+  Countries_UZB_provinces_Bukhoro_cities_Bukhoro = UsePN (mkPN "Bukhoro") ;
+  Islands_CangarooIsland = UsePN (mkPN "Cangaroo Island") ;
+  Deserts_Sagiael_Hamra = UsePN (mkPN "Sagia el-Hamra") ;
+  Countries_R_provinces_Altayskiykray = UsePN (mkPN "Altayskiy kray") ;
+  Countries_RCH_cities_Santiago = UsePN (mkPN "Santiago") ;
+  Countries_RO_provinces_Sibiu = UsePN (mkPN "Sibiu") ;
+  Countries_MOC_provinces_Maputo_munic_cities_Maputo = UsePN (mkPN "Maputo") ;
+  Countries_IRQ_provinces_SalahadDin_cities_Samarra = UsePN (mkPN "Samarra") ;
+  Countries_CZ_provinces_Severocesky = UsePN (mkPN "Severocesky") ;
+  Countries_GB_provinces_Warwickshire_cities_Nuneaton = UsePN (mkPN "Nuneaton") ;
+  Countries_GB_provinces_Gwynedd_cities_Caernarfon = UsePN (mkPN "Caernarfon") ;
+  Countries_YV_provinces_Barinas = UsePN (mkPN "Barinas") ;
+  Countries_RA_provinces_Cordoba = UsePN (mkPN "Cordoba") ;
+  Countries_USA_provinces_Nebraska = UsePN (mkPN "Nebraska") ;
+  Countries_cid_cia_Man_cities_Douglas = UsePN (mkPN "Douglas") ;
+  Countries_YV_provinces_Falcon = UsePN (mkPN "Falcon") ;
+  Countries_GB_provinces_Nottinghamshire = UsePN (mkPN "Nottinghamshire") ;
+  Countries_R_provinces_Sakhalinskayaoblast = UsePN (mkPN "Sakhalinskaya oblast") ;
+  Countries_H_provinces_Miskolc_munic_cities_Miskolc = UsePN (mkPN "Miskolc") ;
+  Countries_IND_provinces_AndamanandNicobarIs__cities_PortBlair = UsePN (mkPN "Port Blair") ;
+  Countries_R_provinces_Chukotskyao_cities_Anadyr = UsePN (mkPN "Anadyr") ;
+  Countries_J_provinces_Saitama = UsePN (mkPN "Saitama") ;
+  Countries_RO_provinces_Tulcea = UsePN (mkPN "Tulcea") ;
+  Countries_R_provinces_Chitinskayaoblast = UsePN (mkPN "Chitinskaya oblast") ;
+  Countries_MYA_provinces_Mandalay_cities_Mandalay = UsePN (mkPN "Mandalay") ;
+  Islands_Nauru = UsePN (mkPN "Nauru") ;
+  Countries_IND_provinces_Maharashtra_cities_Kolhapur = UsePN (mkPN "Kolhapur") ;
+  Countries_EAK_provinces_RiftValley_cities_Kericho = UsePN (mkPN "Kericho") ;
+  Countries_IND_provinces_Chandigarh_cities_Chandigarh = UsePN (mkPN "Chandigarh") ;
+  Countries_USA_provinces_Nebraska_cities_Omaha = UsePN (mkPN "Omaha") ;
+  Countries_GB_provinces_WestMidlands_cities_Walsall = UsePN (mkPN "Walsall") ;
+  Countries_IR_provinces_Markazi = UsePN (mkPN "Markazi") ;
+  Countries_EAK_provinces_RiftValley_cities_Kitale = UsePN (mkPN "Kitale") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Hagen = UsePN (mkPN "Hagen") ;
+  Countries_EAT_provinces_KusiniPemba = UsePN (mkPN "Kusini Pemba") ;
+  Countries_CO_provinces_Vichada = UsePN (mkPN "Vichada") ;
+  Countries_AUS_provinces_SouthAustralia_cities_Adelaide = UsePN (mkPN "Adelaide") ;
+  Countries_J_provinces_Kumamoto_cities_Kumamoto = UsePN (mkPN "Kumamoto") ;
+  Islands_Paramuschir = UsePN (mkPN "Paramuschir") ;
+  Countries_VN_provinces_HaTinh = UsePN (mkPN "Ha Tinh") ;
+  Countries_USA_provinces_Connecticut_cities_Waterbury = UsePN (mkPN "Waterbury") ;
+  Countries_B_provinces_Brabant_cities_Brussels = UsePN (mkPN "Brussels") ;
+  Countries_DZ_cities_Tebessa = UsePN (mkPN "Tebessa") ;
+  Countries_GB_provinces_BlaenauGwent = UsePN (mkPN "Blaenau Gwent") ;
+  Countries_LS_cities_Maseru = UsePN (mkPN "Maseru") ;
+  Countries_MEX_provinces_NuevoLeon_cities_CiudadSantaCatarina = UsePN (mkPN "Ciudad Santa Catarina") ;
+  Countries_USA_provinces_California_cities_Orange = UsePN (mkPN "Orange") ;
+  Countries_USA_provinces_Distr_Columbia = UsePN (mkPN "Distr. Columbia") ;
+  Countries_IND_provinces_Maharashtra_cities_NewBombay = UsePN (mkPN "New Bombay") ;
+  Countries_CDN_provinces_Manitoba = UsePN (mkPN "Manitoba") ;
+  Countries_BR_provinces_SaoPaulo_cities_FerrazdeVasconcelos = UsePN (mkPN "Ferraz de Vasconcelos") ;
+  Countries_F_provinces_IledeFrance = UsePN (mkPN "Ile de France") ;
+  Countries_TJ_provinces_Hebei_cities_Handan = UsePN (mkPN "Handan") ;
+  Countries_USA_provinces_Virginia = UsePN (mkPN "Virginia") ;
+  Countries_S_provinces_Ostergotland = UsePN (mkPN "Ostergotland") ;
+  Countries_VN_cities_Saigon = UsePN (mkPN "Saigon") ;
+  Countries_R_provinces_Tambovskayaoblast = UsePN (mkPN "Tambovskaya oblast") ;
+  Countries_HCA_provinces_Intibuca_cities_LaEsperanza = UsePN (mkPN "La Esperanza") ;
+  Countries_TR_provinces_Erzurum = UsePN (mkPN "Erzurum") ;
+  Countries_R_provinces_Kostromskayaoblast_cities_Kostroma = UsePN (mkPN "Kostroma") ;
+  Countries_EAK_provinces_Nyanza = UsePN (mkPN "Nyanza") ;
+  Countries_P_provinces_Coimbra_cities_Coimbra = UsePN (mkPN "Coimbra") ;
+  Mountains_Huascaran = UsePN (mkPN "Huascaran") ;
+  Countries_F_provinces_Centre_cities_Tours = UsePN (mkPN "Tours") ;
+  Countries_USA_provinces_Louisiana_cities_NewOrleans = UsePN (mkPN "New Orleans") ;
+  Countries_cid_cia_Turks_and_Caicos_Islands = UsePN (mkPN "Turks and Caicos Islands") ;
+  Countries_ES_provinces_LaPaz_cities_Zacatecoluca = UsePN (mkPN "Zacatecoluca") ;
+  Countries_UA_provinces_Mykolayivska_cities_Mykolayiv = UsePN (mkPN "Mykolayiv") ;
+  Countries_GB_provinces_GreaterManchester_cities_Trafford = UsePN (mkPN "Trafford") ;
+  Countries_UZB_provinces_Jizzakh_cities_Jizzakh = UsePN (mkPN "Jizzakh") ;
+  Rivers_Oesterdalaelv = UsePN (mkPN "Oesterdalaelv") ;
+  Countries_BR_provinces_Goias_cities_Araguaina = UsePN (mkPN "Araguaina") ;
+  Countries_VN_provinces_CaoBang = UsePN (mkPN "Cao Bang") ;
+  Countries_cid_cia_Martinique_cities_Fort_de_France = UsePN (mkPN "Fort-de-France") ;
+  Countries_GB_provinces_NorthYorkshire_cities_Scarborough = UsePN (mkPN "Scarborough") ;
+  Countries_CDN_provinces_Ontario_cities_Scarborough = UsePN (mkPN "Scarborough") ;
+  Lakes_LakeTiticaca = UsePN (mkPN "Lake Titicaca") ;
+  Countries_RP_cities_Kalookan = UsePN (mkPN "Kalookan") ;
+  Countries_R_provinces_SanktPeterburg = UsePN (mkPN "Sankt Peterburg") ;
+  Countries_GR_provinces_DhytikiEllas = UsePN (mkPN "Dhytiki Ellas") ;
+  Countries_D_provinces_Saarland_cities_Saarbrucken = UsePN (mkPN "Saarbrucken") ;
+  Countries_RO_provinces_Gorj_cities_TirguJiu = UsePN (mkPN "Tirgu Jiu") ;
+  Countries_TR_provinces_Yozgat_cities_Yozgat = UsePN (mkPN "Yozgat") ;
+  Countries_J_provinces_Toyama_cities_Toyama = UsePN (mkPN "Toyama") ;
+  Countries_SME_cities_Paramaribo = UsePN (mkPN "Paramaribo") ;
+  Countries_KAZ_provinces_Aqmola_cities_Aqmola = UsePN (mkPN "Aqmola") ;
+  Countries_MEX_provinces_Yucatan_cities_Merida = UsePN (mkPN "Merida") ;
+  Countries_TR_provinces_Mardin_cities_Mardin = UsePN (mkPN "Mardin") ;
+  Countries_CH_provinces_NE = UsePN (mkPN "NE") ;
+  Countries_cid_cia_Bermuda = UsePN (mkPN "Bermuda") ;
+  Countries_SF_provinces_Haeme_cities_Lahti = UsePN (mkPN "Lahti") ;
+  Countries_F_provinces_Limousin = UsePN (mkPN "Limousin") ;
+  Countries_GB_provinces_Derbyshire = UsePN (mkPN "Derbyshire") ;
+  Countries_ES_provinces_SanMiguel_cities_SanMiguel = UsePN (mkPN "San Miguel") ;
+  Countries_TJ_provinces_Henan_cities_Xinyang = UsePN (mkPN "Xinyang") ;
+  Countries_BRU_cities_BandarSeriBegawan = UsePN (mkPN "Bandar Seri Begawan") ;
+  Countries_PE_provinces_Amazonas_cities_Chachapoyas = UsePN (mkPN "Chachapoyas") ;
+  Countries_ET_provinces_Sohag_cities_Sohag = UsePN (mkPN "Sohag") ;
+  Countries_IND_provinces_LakshadweepIs_ = UsePN (mkPN "Lakshadweep Is.") ;
+  Countries_KAZ_provinces_SoltustikQazaqstan = UsePN (mkPN "Soltustik Qazaqstan") ;
+  Countries_BR_provinces_SaoPaulo_cities_Embu = UsePN (mkPN "Embu") ;
+  Islands_SriLanka = UsePN (mkPN "Sri Lanka") ;
+  Organizations_FZ = UsePN (mkPN "Franc Zone") ;
+  Countries_CZ_provinces_Praha = UsePN (mkPN "Praha") ;
+  Countries_USA_provinces_Missouri_cities_KansasCity = UsePN (mkPN "Kansas City") ;
+  Mountains_Tamgak = UsePN (mkPN "Tamgak") ;
+  Countries_ANG_provinces_Uige_cities_Uige = UsePN (mkPN "Uige") ;
+  Countries_USA_provinces_California_cities_Irvine = UsePN (mkPN "Irvine") ;
+  Countries_R_provinces_Orenburgskayaoblast = UsePN (mkPN "Orenburgskaya oblast") ;
+  Countries_BR_provinces_Maranhao_cities_SaoLuis = UsePN (mkPN "Sao Luis") ;
+  Countries_MEX_provinces_Mexico_Estadode_cities_Toluca = UsePN (mkPN "Toluca") ;
+  Countries_BR_provinces_Parana_cities_Colombo = UsePN (mkPN "Colombo") ;
+  Countries_TR_provinces_Kars_cities_Kars = UsePN (mkPN "Kars") ;
+  Countries_USA_provinces_California_cities_Fullerton = UsePN (mkPN "Fullerton") ;
+  Countries_TJ_provinces_Gansu_cities_Wuwei = UsePN (mkPN "Wuwei") ;
+  Countries_TJ_provinces_Hebei_cities_Shijiazhuang = UsePN (mkPN "Shijiazhuang") ;
+  Countries_PE_provinces_MadredeDios_cities_PuertoMaldonado = UsePN (mkPN "Puerto Maldonado") ;
+  Countries_NOK_cities_Nampo = UsePN (mkPN "Nampo") ;
+  Countries_CO_provinces_Huila = UsePN (mkPN "Huila") ;
+  Countries_AUS_provinces_NewSouthWales_cities_Newcastle = UsePN (mkPN "Newcastle") ;
+  Countries_PA_provinces_Colon_cities_Colon = UsePN (mkPN "Colon") ;
+  Countries_MAL_provinces_Melaka = UsePN (mkPN "Melaka") ;
+  Countries_USA_provinces_Virginia_cities_Richmond = UsePN (mkPN "Richmond") ;
+  Countries_D_provinces_Bayern = UsePN (mkPN "Bayern") ;
+  Countries_SUD_provinces_AalianNil_cities_Malakal = UsePN (mkPN "Malakal") ;
+  Countries_E_provinces_Andalusia_cities_Huelva = UsePN (mkPN "Huelva") ;
+  Organizations_ILO = UsePN (mkPN "International Labor Organization") ;
+  Countries_BR_provinces_SaoPaulo_cities_Itapetininga = UsePN (mkPN "Itapetininga") ;
+  Rivers_Suchona = UsePN (mkPN "Suchona") ;
+  Countries_MEX_provinces_Sinaloa_cities_LosMochis = UsePN (mkPN "Los Mochis") ;
+  Countries_TJ_provinces_Guangdong_cities_Foshan = UsePN (mkPN "Foshan") ;
+  Countries_D_provinces_RheinlandPfalz_cities_Mainz = UsePN (mkPN "Mainz") ;
+  Countries_BR_provinces_SaoPaulo_cities_Americana = UsePN (mkPN "Americana") ;
+  Countries_PA_provinces_Chiriqui = UsePN (mkPN "Chiriqui") ;
+  Countries_RC_provinces_Chiai = UsePN (mkPN "Chiai") ;
+  Countries_VN_provinces_Hanoi = UsePN (mkPN "Hanoi") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Beihai = UsePN (mkPN "Beihai") ;
+  Countries_TJ_cities_Macau = UsePN (mkPN "Macau") ;
+  Countries_USA_provinces_Florida_cities_Miami = UsePN (mkPN "Miami") ;
+  Countries_TJ_provinces_Guangdong_cities_Zhanjiang = UsePN (mkPN "Zhanjiang") ;
+  Countries_RC_provinces_Tainan_cities_Hsinying = UsePN (mkPN "Hsinying") ;
+  Countries_BR_provinces_SaoPaulo_cities_Limeira = UsePN (mkPN "Limeira") ;
+  Countries_YV_provinces_Yaracuy_cities_SanFelipe = UsePN (mkPN "San Felipe") ;
+  Countries_AL_cities_Korce = UsePN (mkPN "Korce") ;
+  Countries_CO_provinces_Guajira_La_cities_Riohacha = UsePN (mkPN "Riohacha") ;
+  Countries_IND_provinces_Rajasthan_cities_Jaipur = UsePN (mkPN "Jaipur") ;
+  Countries_CR_provinces_Guanacaste = UsePN (mkPN "Guanacaste") ;
+  Countries_N_provinces_Rogaland_cities_Stavanger = UsePN (mkPN "Stavanger") ;
+  Countries_E_provinces_Madrid = UsePN (mkPN "Madrid") ;
+  Countries_WAN_cities_Offa = UsePN (mkPN "Offa") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Indore = UsePN (mkPN "Indore") ;
+  Countries_BR_provinces_Goias_cities_Luziania = UsePN (mkPN "Luziania") ;
+  Countries_USA_provinces_Virginia_cities_Alexandria = UsePN (mkPN "Alexandria") ;
+  Countries_RA_provinces_BuenosAires_cities_MardelPlata = UsePN (mkPN "Mar del Plata") ;
+  Countries_CO_provinces_ValledeCauca = UsePN (mkPN "Valle de Cauca") ;
+  Countries_GB_provinces_WestMidlands_cities_WestBromwich = UsePN (mkPN "West Bromwich") ;
+  Countries_PL_provinces_Katowickie_cities_Bytom = UsePN (mkPN "Bytom") ;
+  Countries_SN_provinces_Kaolack = UsePN (mkPN "Kaolack") ;
+  Countries_USA_provinces_Minnesota_cities_Minneapolis = UsePN (mkPN "Minneapolis") ;
+  Organizations_ACP = UsePN (mkPN "African, Caribbean, and Pacific Countries") ;
+  Countries_USA_provinces_California_cities_Fresno = UsePN (mkPN "Fresno") ;
+  Mountains_GranitePeak = UsePN (mkPN "Granite Peak") ;
+  Countries_R_provinces_Kamchatskayaoblast_cities_PetropavlovskKamchatsky = UsePN (mkPN "Petropavlovsk Kamchatsky") ;
+  Countries_A_provinces_UpperAustria_cities_Linz = UsePN (mkPN "Linz") ;
+  Countries_USA_provinces_Florida_cities_Jacksonville = UsePN (mkPN "Jacksonville") ;
+  Countries_IND_provinces_Kerala = UsePN (mkPN "Kerala") ;
+  Countries_USA_provinces_Florida = UsePN (mkPN "Florida") ;
+  Countries_ANG_provinces_CuanzaNorte_cities_Ndalatando = UsePN (mkPN "Ndalatando") ;
+  Countries_NIC_cities_Leon = UsePN (mkPN "Leon") ;
+  Countries_P_provinces_Portalegre = UsePN (mkPN "Portalegre") ;
+  Countries_RC_provinces_Taichung = UsePN (mkPN "Taichung") ;
+  Countries_TR_provinces_Balikesir = UsePN (mkPN "Balikesir") ;
+  Deserts_Tanami = UsePN (mkPN "Tanami") ;
+  Countries_P_provinces_Setubal = UsePN (mkPN "Setubal") ;
+  Countries_TJ_provinces_Shandong_cities_Longkou = UsePN (mkPN "Longkou") ;
+  Countries_R_provinces_Chelyabinskayaoblast = UsePN (mkPN "Chelyabinskaya oblast") ;
+  Countries_USA_provinces_California_cities_Norwalk = UsePN (mkPN "Norwalk") ;
+  Countries_G_cities_Libreville = UsePN (mkPN "Libreville") ;
+  Countries_B_provinces_Brabant = UsePN (mkPN "Brabant") ;
+  Countries_CH_provinces_ZH_cities_Winterthur = UsePN (mkPN "Winterthur") ;
+  Countries_S_provinces_Orebro = UsePN (mkPN "Orebro") ;
+  Countries_I_provinces_Calabria = UsePN (mkPN "Calabria") ;
+  Countries_TR_provinces_Kirsehir_cities_Kirsehir = UsePN (mkPN "Kirsehir") ;
+  Countries_USA_provinces_Michigan_cities_AnnArbor = UsePN (mkPN "Ann Arbor") ;
+  Islands_Sanday = UsePN (mkPN "Sanday") ;
+  Mountains_Aconcagua = UsePN (mkPN "Aconcagua") ;
+  Countries_MYA_provinces_Sagaing = UsePN (mkPN "Sagaing") ;
+  Countries_NL_provinces_NoordHolland_cities_Haarlem = UsePN (mkPN "Haarlem") ;
+  Countries_A_provinces_Tyrol_cities_Innsbruck = UsePN (mkPN "Innsbruck") ;
+  Countries_RI_cities_Jakarta = UsePN (mkPN "Jakarta") ;
+  Countries_IND_provinces_Bihar_cities_BokaraSteelCity = UsePN (mkPN "Bokara Steel City") ;
+  Countries_TJ_provinces_Zhejiang_cities_Jiaxing = UsePN (mkPN "Jiaxing") ;
+  Countries_USA_provinces_California_cities_GardenGrove = UsePN (mkPN "Garden Grove") ;
+  Countries_THA_provinces_NakhonPhanom = UsePN (mkPN "Nakhon Phanom") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_BelfortRoxo = UsePN (mkPN "Belfort Roxo") ;
+  Countries_J_provinces_Osaka = UsePN (mkPN "Osaka") ;
+  Countries_C_provinces_Granma_cities_Manzanillo = UsePN (mkPN "Manzanillo") ;
+  Countries_HCA_provinces_Cortes = UsePN (mkPN "Cortes") ;
+  Countries_SF_provinces_Uusimaa_cities_Espoo = UsePN (mkPN "Espoo") ;
+  Countries_CO_provinces_Guainia = UsePN (mkPN "Guainia") ;
+  Countries_CH_provinces_BE = UsePN (mkPN "BE") ;
+  Countries_R_provinces_Nizhegorodskayaoblast_cities_NizhniyNovgorod = UsePN (mkPN "Nizhniy Novgorod") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Paderborn = UsePN (mkPN "Paderborn") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Bochum = UsePN (mkPN "Bochum") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Linhe = UsePN (mkPN "Linhe") ;
+  Countries_PL_provinces_Opolskie_cities_Opole = UsePN (mkPN "Opole") ;
+  Islands_Lipari = UsePN (mkPN "Lipari") ;
+  Countries_BD_cities_Chittagong = UsePN (mkPN "Chittagong") ;
+  Countries_RA_provinces_Neuquen_cities_Neuquen = UsePN (mkPN "Neuquen") ;
+  Countries_IRQ_provinces_Dahuk = UsePN (mkPN "Dahuk") ;
+  Countries_PL_provinces_Bialostockie_cities_Bialystok = UsePN (mkPN "Bialystok") ;
+  Countries_PE_provinces_LaLibertad_cities_Trujillo = UsePN (mkPN "Trujillo") ;
+  Countries_D_provinces_Niedersachsen_cities_Oldenburg = UsePN (mkPN "Oldenburg") ;
+  Countries_UA_provinces_Dnipropetrovska_cities_Dnipropetrovsk = UsePN (mkPN "Dnipropetrovsk") ;
+  Countries_CH_provinces_AR = UsePN (mkPN "AR") ;
+  Countries_HCA_provinces_ElParaiso_cities_Yuscaran = UsePN (mkPN "Yuscaran") ;
+  Organizations_UNFICYP = UsePN (mkPN "United Nations Force in Cyprus") ;
+  Countries_IND_provinces_DamanandDiu = UsePN (mkPN "Daman and Diu") ;
+  Islands_Kos = UsePN (mkPN "Kos") ;
+  Countries_TJ_provinces_Anhui_cities_Wuhu = UsePN (mkPN "Wuhu") ;
+  Countries_R_provinces_Kaluzhskayaoblast_cities_Obninsk = UsePN (mkPN "Obninsk") ;
+  Countries_NL_provinces_Drenthe_cities_Assen = UsePN (mkPN "Assen") ;
+  Mountains_BlueMountainPeak = UsePN (mkPN "Blue Mountain Peak") ;
+  Countries_R_provinces_Lipetskayaoblast = UsePN (mkPN "Lipetskaya oblast") ;
+  Countries_IR_provinces_Yazd_cities_Yazd = UsePN (mkPN "Yazd") ;
+  Countries_IR_provinces_Kordestan_cities_Sanandaj = UsePN (mkPN "Sanandaj") ;
+  Countries_H_provinces_Veszprem = UsePN (mkPN "Veszprem") ;
+  Countries_TR_provinces_Nigde_cities_Nigde = UsePN (mkPN "Nigde") ;
+  Countries_cid_cia_Guernsey = UsePN (mkPN "Guernsey") ;
+  Countries_PA_provinces_LosSantos_cities_LasTablas = UsePN (mkPN "Las Tablas") ;
+  Countries_R_provinces_Kurganskayaoblast_cities_Kurgan = UsePN (mkPN "Kurgan") ;
+  Countries_PE_provinces_Arequipa_cities_Arequipa = UsePN (mkPN "Arequipa") ;
+  Countries_J_provinces_Tochigi_cities_Utsonomiya = UsePN (mkPN "Utsonomiya") ;
+  Countries_BR_provinces_Parana_cities_Apucarana = UsePN (mkPN "Apucarana") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Nilopolis = UsePN (mkPN "Nilopolis") ;
+  Countries_GB_provinces_SouthYorkshire_cities_Rotherham = UsePN (mkPN "Rotherham") ;
+  Countries_PL_provinces_Siedleckie = UsePN (mkPN "Siedleckie") ;
+  Countries_F_provinces_RhoneAlpes = UsePN (mkPN "Rhone Alpes") ;
+  Countries_PK_cities_Gujrat = UsePN (mkPN "Gujrat") ;
+  Countries_RI_cities_PangkalPinang = UsePN (mkPN "Pangkal Pinang") ;
+  Countries_USA_provinces_Delaware_cities_Dover = UsePN (mkPN "Dover") ;
+  Countries_SF_provinces_Pohjols_Karjala = UsePN (mkPN "Pohjols-Karjala") ;
+  Countries_USA_provinces_Arizona = UsePN (mkPN "Arizona") ;
+  Countries_MEX_provinces_QuintanaRoo_cities_Cancun = UsePN (mkPN "Cancun") ;
+  Countries_RL_cities_Beirut = UsePN (mkPN "Beirut") ;
+  Countries_ET_provinces_ElBuhayra = UsePN (mkPN "El Buhayra") ;
+  Rivers_Kolyma = UsePN (mkPN "Kolyma") ;
+  Lakes_CaspianSea = UsePN (mkPN "Caspian Sea") ;
+  Lakes_LakeVictoria = UsePN (mkPN "Lake Victoria") ;
+  Countries_MEX_provinces_Durango = UsePN (mkPN "Durango") ;
+  Countries_J_provinces_Miyagi = UsePN (mkPN "Miyagi") ;
+  Countries_AUS_provinces_NewSouthWales = UsePN (mkPN "New South Wales") ;
+  Seas_YellowSea = UsePN (mkPN "Yellow Sea") ;
+  Countries_GB_provinces_Durham_cities_Darlington = UsePN (mkPN "Darlington") ;
+  Countries_UZB_provinces_Toshkent_cities_Olmaliq = UsePN (mkPN "Olmaliq") ;
+  Countries_RA_provinces_Catamarca = UsePN (mkPN "Catamarca") ;
+  Countries_RWA_cities_Kigali = UsePN (mkPN "Kigali") ;
+  Countries_S_provinces_Vasternorrland = UsePN (mkPN "Vasternorrland") ;
+  Countries_YV_provinces_Anzoategui_cities_Barcelona = UsePN (mkPN "Barcelona") ;
+  Countries_CDN_provinces_YukonTerritory_cities_Whitehorse = UsePN (mkPN "Whitehorse") ;
+  Countries_EAK_provinces_RiftValley_cities_Eldoret = UsePN (mkPN "Eldoret") ;
+  Countries_USA_provinces_Texas_cities_SanAntonio = UsePN (mkPN "San Antonio") ;
+  Countries_CO_provinces_SantanderdelSur_cities_Floridablanca = UsePN (mkPN "Floridablanca") ;
+  Countries_EAT_provinces_Iringa_cities_Iringa = UsePN (mkPN "Iringa") ;
+  Deserts_Fesan = UsePN (mkPN "Fesan") ;
+  Countries_H_provinces_Bekes_cities_Bekescaba = UsePN (mkPN "Bekescaba") ;
+  Countries_PE_provinces_Tacna_cities_Tacna = UsePN (mkPN "Tacna") ;
+  Countries_MAL_provinces_Sarawak = UsePN (mkPN "Sarawak") ;
+  Countries_D_provinces_Hamburg_cities_Hamburg = UsePN (mkPN "Hamburg") ;
+  Countries_RA_provinces_LaPampa = UsePN (mkPN "La Pampa") ;
+  Countries_GB_provinces_Anglesey = UsePN (mkPN "Anglesey") ;
+  Countries_RM_provinces_Fianarantsoa = UsePN (mkPN "Fianarantsoa") ;
+  Countries_SN_provinces_Thies = UsePN (mkPN "Thies") ;
+  Countries_PL_provinces_Katowickie_cities_Tychy = UsePN (mkPN "Tychy") ;
+  Countries_EAT_provinces_Pwani = UsePN (mkPN "Pwani") ;
+  Lakes_LakeOkeechobee = UsePN (mkPN "Lake Okeechobee") ;
+  Countries_NOK_cities_Anju = UsePN (mkPN "Anju") ;
+  Countries_RA_provinces_Misiones = UsePN (mkPN "Misiones") ;
+  Countries_THA_provinces_Nan = UsePN (mkPN "Nan") ;
+  Countries_YV_provinces_Monagas = UsePN (mkPN "Monagas") ;
+  Countries_MEX_provinces_Zacatecas_cities_Zacatecas = UsePN (mkPN "Zacatecas") ;
+  Countries_PL_provinces_Ostroleckie = UsePN (mkPN "Ostroleckie") ;
+  Organizations_WCL = UsePN (mkPN "World Confederation of Labor") ;
+  Countries_RI_cities_Surakarta = UsePN (mkPN "Surakarta") ;
+  Countries_AUS_provinces_CocosIslands_cities_BantamVillage = UsePN (mkPN "Bantam Village") ;
+  Countries_PK_cities_Nawabshah = UsePN (mkPN "Nawabshah") ;
+  Countries_cid_cia_Jersey = UsePN (mkPN "Jersey") ;
+  Countries_E_provinces_Madrid_cities_Fuenlabrada = UsePN (mkPN "Fuenlabrada") ;
+  Countries_TJ_provinces_Guangdong_cities_Zhaoqing = UsePN (mkPN "Zhaoqing") ;
+  Countries_GB_provinces_Staffordshire_cities_NewcastleunderLyme = UsePN (mkPN "Newcastle under Lyme") ;
+  Lakes_LakeKariba = UsePN (mkPN "Lake Kariba") ;
+  Countries_IND_provinces_Manipur_cities_Imphal = UsePN (mkPN "Imphal") ;
+  Countries_IRQ_provinces_Baghdad_cities_Baghdad = UsePN (mkPN "Baghdad") ;
+  Countries_R_provinces_Rep_ofTatarstan_cities_Almetyevsk = UsePN (mkPN "Almetyevsk") ;
+  Countries_A_provinces_Carinthia = UsePN (mkPN "Carinthia") ;
+  Countries_PL_provinces_Bialostockie = UsePN (mkPN "Bialostockie") ;
+  Countries_F_provinces_ChampagneArdenne = UsePN (mkPN "Champagne Ardenne") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_PortoAlegre = UsePN (mkPN "Porto Alegre") ;
+  Countries_USA_provinces_Michigan_cities_Flint = UsePN (mkPN "Flint") ;
+  Countries_BR_provinces_SaoPaulo_cities_Carapicuiba = UsePN (mkPN "Carapicuiba") ;
+  Countries_TJ_provinces_Jiangsu_cities_Liyang = UsePN (mkPN "Liyang") ;
+  Countries_P_provinces_CasteloBranco = UsePN (mkPN "Castelo Branco") ;
+  Countries_R_provinces_Rep_ofKalmykiya = UsePN (mkPN "Rep. of Kalmykiya") ;
+  Countries_RO_provinces_Vaslui_cities_Vaslui = UsePN (mkPN "Vaslui") ;
+  Countries_SF_provinces_Kuopio = UsePN (mkPN "Kuopio") ;
+  Mountains_Feldberg = UsePN (mkPN "Feldberg") ;
+  Countries_THA_provinces_BangkokMetropolis = UsePN (mkPN "Bangkok Metropolis") ;
+  Islands_Jamaica = UsePN (mkPN "Jamaica") ;
+  Countries_VN_provinces_VinhLong = UsePN (mkPN "Vinh Long") ;
+  Countries_R_provinces_Volgogradskayaoblast_cities_Volzhsky = UsePN (mkPN "Volzhsky") ;
+  Countries_J_provinces_Iwate_cities_Morioka = UsePN (mkPN "Morioka") ;
+  Countries_GB_provinces_Kent_cities_Maidstone = UsePN (mkPN "Maidstone") ;
+  Organizations_CIS = UsePN (mkPN "Commonwealth of Independent States") ;
+  Countries_PL_provinces_Zielonogorskie_cities_ZielonaGora = UsePN (mkPN "Zielona Gora") ;
+  Countries_RT_cities_Lome = UsePN (mkPN "Lome") ;
+  Countries_BR_provinces_SaoPaulo_cities_Taubate = UsePN (mkPN "Taubate") ;
+  Countries_E_provinces_CastileandLeon_cities_Leon = UsePN (mkPN "Leon") ;
+  Islands_SaintKitts = UsePN (mkPN "Saint Kitts") ;
+  Countries_RSA_cities_Lekoa = UsePN (mkPN "Lekoa") ;
+  Countries_VN_provinces_QuangNamDaNang = UsePN (mkPN "Quang Nam Da Nang") ;
+  Countries_MOC_provinces_Sofala = UsePN (mkPN "Sofala") ;
+  Countries_R_provinces_Belgorodskayaoblast_cities_StaryOskol = UsePN (mkPN "Stary Oskol") ;
+  Islands_Panarea = UsePN (mkPN "Panarea") ;
+  Countries_BR_cities_Contagem = UsePN (mkPN "Contagem") ;
+  Countries_TJ_provinces_GuangxiZhuangzu_cities_Wuzhou = UsePN (mkPN "Wuzhou") ;
+  Organizations_AFESD = UsePN (mkPN "Arab Fund for Economic and Social Development") ;
+  Countries_PL_provinces_Czestochowskie = UsePN (mkPN "Czestochowskie") ;
+  Rivers_Save = UsePN (mkPN "Save") ;
+  Countries_UA_provinces_Donetska_cities_Mariupol = UsePN (mkPN "Mariupol") ;
+  Countries_IND_provinces_Tripura_cities_Agartala = UsePN (mkPN "Agartala") ;
+  Countries_CR_provinces_Heredia_cities_Heredia = UsePN (mkPN "Heredia") ;
+  Countries_WAN_cities_DebaHabe = UsePN (mkPN "Deba Habe") ;
+  Countries_USA_provinces_Arizona_cities_Tempe = UsePN (mkPN "Tempe") ;
+  Rivers_Uelle = UsePN (mkPN "Uelle") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoCarlos = UsePN (mkPN "Sao Carlos") ;
+  Countries_F_provinces_Bretagne_cities_Brest = UsePN (mkPN "Brest") ;
+  Rivers_Tana = UsePN (mkPN "Tana") ;
+  Countries_IL_provinces_North_cities_Nazareth = UsePN (mkPN "Nazareth") ;
+  Countries_Z_provinces_Northwestern = UsePN (mkPN "Northwestern") ;
+  Countries_TR_provinces_Edirne_cities_Edirne = UsePN (mkPN "Edirne") ;
+  Countries_Z_provinces_Lusaka_cities_Lusaka = UsePN (mkPN "Lusaka") ;
+  Countries_ZRE_provinces_KasaiOccidental_cities_Tshikapa = UsePN (mkPN "Tshikapa") ;
+  Countries_VN_provinces_HaGiang = UsePN (mkPN "Ha Giang") ;
+  Countries_IRQ_provinces_AlQadisiyah_cities_Diwaniyah = UsePN (mkPN "Diwaniyah") ;
+  Countries_P_provinces_Lisbon_cities_Almada = UsePN (mkPN "Almada") ;
+  Countries_R_provinces_KarachayevoCherkesskRep__cities_Cherkessk = UsePN (mkPN "Cherkessk") ;
+  Countries_TR_cities_Hatay = UsePN (mkPN "Hatay") ;
+  Countries_IND_provinces_WestBengal_cities_Haora = UsePN (mkPN "Haora") ;
+  Countries_BR_provinces_Pernambuco_cities_JaboataodosGuararapes = UsePN (mkPN "Jaboatao dos Guararapes") ;
+  Countries_IND_provinces_UttarPradesh_cities_Bareilly = UsePN (mkPN "Bareilly") ;
+  Countries_RSA_cities_Alexandra = UsePN (mkPN "Alexandra") ;
+  Countries_R_provinces_Astrakhanskayaoblast = UsePN (mkPN "Astrakhanskaya oblast") ;
+  Rivers_Bahrel_Gasal = UsePN (mkPN "Bahr el-Gasal") ;
+  Countries_TJ_provinces_Hunan_cities_Hengyang = UsePN (mkPN "Hengyang") ;
+  Countries_GB_provinces_Buckinghamshire_cities_Wycombe = UsePN (mkPN "Wycombe") ;
+  Countries_GR_provinces_Thessalia = UsePN (mkPN "Thessalia") ;
+  Countries_R_provinces_Nizhegorodskayaoblast_cities_Arzamas = UsePN (mkPN "Arzamas") ;
+  Countries_USA_provinces_Kansas_cities_KansasCity = UsePN (mkPN "Kansas City") ;
+  Countries_R_provinces_Penzenskayaoblast_cities_Penza = UsePN (mkPN "Penza") ;
+  Countries_IRQ_provinces_AdTamim = UsePN (mkPN "Ad Tamim") ;
+  Countries_YV_provinces_Merida = UsePN (mkPN "Merida") ;
+  Countries_MEX_provinces_Aguascalientes = UsePN (mkPN "Aguascalientes") ;
+  Seas_AtlanticOcean = UsePN (mkPN "Atlantic Ocean") ;
+  Countries_EW_cities_Tallinn = UsePN (mkPN "Tallinn") ;
+  Countries_WS_cities_Apia = UsePN (mkPN "Apia") ;
+  Lakes_LagodeChapala = UsePN (mkPN "Lago de Chapala") ;
+  Countries_PE_provinces_Ucayali = UsePN (mkPN "Ucayali") ;
+  Countries_IND_provinces_DadraandNagarHaveli_cities_Silvassa = UsePN (mkPN "Silvassa") ;
+  Countries_GB_provinces_Leicestershire = UsePN (mkPN "Leicestershire") ;
+  Countries_RC_provinces_Hualien_cities_Hualien = UsePN (mkPN "Hualien") ;
+  Organizations_UNCRO = UsePN (mkPN "United Nations Confidence Restoration Operation in Croatia") ;
+  Countries_R_provinces_Moskva = UsePN (mkPN "Moskva") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Zhaodong = UsePN (mkPN "Zhaodong") ;
+  Countries_RO_provinces_Ialomita_cities_Slobozia = UsePN (mkPN "Slobozia") ;
+  Countries_PK_cities_Lyallpur = UsePN (mkPN "Lyallpur") ;
+  Countries_D_provinces_Brandenburg = UsePN (mkPN "Brandenburg") ;
+  Countries_RI_cities_Madiun = UsePN (mkPN "Madiun") ;
+  Countries_IRQ_provinces_Dahuk_cities_Dahuk = UsePN (mkPN "Dahuk") ;
+  Countries_EAT_provinces_Morogoro_cities_Morogoro = UsePN (mkPN "Morogoro") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_VoltaRedonda = UsePN (mkPN "Volta Redonda") ;
+  Organizations_UNHCR = UsePN (mkPN "United Nations Office of the High Commissioner for Refugees") ;
+  Rivers_Hwangho = UsePN (mkPN "Hwangho") ;
+  Countries_BR_provinces_SaoPaulo_cities_SantoAndre = UsePN (mkPN "Santo Andre") ;
+  Countries_RP_cities_Pasay = UsePN (mkPN "Pasay") ;
+  Countries_ROK_cities_Cheju = UsePN (mkPN "Cheju") ;
+  Countries_LAR_cities_Tripoli = UsePN (mkPN "Tripoli") ;
+  Lakes_BarragedeMbakaou = UsePN (mkPN "Barrage de Mbakaou") ;
+  Countries_TJ_provinces_Hubei_cities_Yichang = UsePN (mkPN "Yichang") ;
+  Countries_Z_provinces_Copperbelt_cities_Ndola = UsePN (mkPN "Ndola") ;
+  Countries_USA_provinces_Hawaii_cities_Hilo = UsePN (mkPN "Hilo") ;
+  Rivers_Tshuapa = UsePN (mkPN "Tshuapa") ;
+  Countries_RA_provinces_Misiones_cities_Posadas = UsePN (mkPN "Posadas") ;
+  Countries_BR_provinces_MinasGerais_cities_Uberaba = UsePN (mkPN "Uberaba") ;
+  Countries_USA_provinces_Illinois_cities_Chicago = UsePN (mkPN "Chicago") ;
+  Countries_RO_provinces_Iasi = UsePN (mkPN "Iasi") ;
+  Countries_CDN_provinces_NewBrunswick_cities_Fredericton = UsePN (mkPN "Fredericton") ;
+  Countries_TJ_provinces_Henan_cities_Zhoukou = UsePN (mkPN "Zhoukou") ;
+  Countries_ET_provinces_Sharqiya = UsePN (mkPN "Sharqiya") ;
+  Countries_R_provinces_Vladimirskayaoblast = UsePN (mkPN "Vladimirskaya oblast") ;
+  Countries_NZ_cities_Wellington = UsePN (mkPN "Wellington") ;
+  Countries_IR_provinces_Zanjan_cities_Zanjan = UsePN (mkPN "Zanjan") ;
+  Countries_A_provinces_Vienna_cities_Vienna = UsePN (mkPN "Vienna") ;
+  Lakes_LakeEtoscha = UsePN (mkPN "Lake Etoscha") ;
+  Countries_ANG_provinces_CuanzaNorte = UsePN (mkPN "Cuanza Norte") ;
+  Countries_GB_provinces_Hampshire_cities_Eastleigh = UsePN (mkPN "Eastleigh") ;
+  Countries_GB_provinces_Merseyside_cities_Liverpool = UsePN (mkPN "Liverpool") ;
+  Countries_TJ_provinces_Shandong_cities_Heze = UsePN (mkPN "Heze") ;
+  Countries_WAN_cities_Oshogbo = UsePN (mkPN "Oshogbo") ;
+  Countries_TJ_cities_HongKong = UsePN (mkPN "Hong Kong") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_Volgodonsk = UsePN (mkPN "Volgodonsk") ;
+  Countries_F_provinces_Lorraine = UsePN (mkPN "Lorraine") ;
+  Countries_PK_cities_Hyderabad = UsePN (mkPN "Hyderabad") ;
+  Countries_USA_provinces_California_cities_MorenoValley = UsePN (mkPN "Moreno Valley") ;
+  Countries_ETH_cities_Gonder = UsePN (mkPN "Gonder") ;
+  Mountains_Galdhoeppig = UsePN (mkPN "Galdhoeppig") ;
+  Countries_GB_provinces_SouthYorkshire_cities_Doncaster = UsePN (mkPN "Doncaster") ;
+  Countries_USA_provinces_Ohio_cities_Toledo = UsePN (mkPN "Toledo") ;
+  Organizations_ICAO = UsePN (mkPN "International Civil Aviation Organization") ;
+  Countries_I_provinces_Umbria_cities_Perugia = UsePN (mkPN "Perugia") ;
+  Organizations_MINURSO = UsePN (mkPN "United Nations Mission for the Referendum in Western Sahara") ;
+  Lakes_OzeroPskovskoje = UsePN (mkPN "Ozero Pskovskoje") ;
+  Countries_H_provinces_HajduBihar = UsePN (mkPN "Hajdu Bihar") ;
+  Countries_BR_provinces_SantaCatarina = UsePN (mkPN "Santa Catarina") ;
+  Countries_VN_provinces_KienGiang = UsePN (mkPN "Kien Giang") ;
+  Countries_R_provinces_Permskayaoblast_cities_Berezniki = UsePN (mkPN "Berezniki") ;
+  Countries_USA_provinces_Nevada = UsePN (mkPN "Nevada") ;
+  Countries_R_provinces_Yaroslavskayaoblast_cities_Rybinsk = UsePN (mkPN "Rybinsk") ;
+  Countries_RA_provinces_SantiagodeEstero = UsePN (mkPN "Santiago de Estero") ;
+  Countries_R_provinces_Sverdlovskayaoblast_cities_Yekaterinburg = UsePN (mkPN "Yekaterinburg") ;
+  Countries_IND_provinces_MadhyaPradesh = UsePN (mkPN "Madhya Pradesh") ;
+  Countries_ES_provinces_SantaAna_cities_SantaAna = UsePN (mkPN "Santa Ana") ;
+  Countries_PE_provinces_Cajamarca_cities_Cajamarca = UsePN (mkPN "Cajamarca") ;
+  Countries_cid_cia_South_Georgia_and_the_South_Sandwich_Islands = UsePN (mkPN "South Georgia and the South Sandwich Islands") ;
+  Countries_MEX_provinces_Tlaxcala_cities_Tlaxcala = UsePN (mkPN "Tlaxcala") ;
+  Countries_BR_provinces_SaoPaulo_cities_Marilia = UsePN (mkPN "Marilia") ;
+  Countries_RC_provinces_Taipei_cities_Panchiao = UsePN (mkPN "Panchiao") ;
+  Countries_USA_provinces_WestVirginia = UsePN (mkPN "West Virginia") ;
+  Countries_USA_provinces_California_cities_ElMonte = UsePN (mkPN "El Monte") ;
+  Countries_THA_provinces_Krabi = UsePN (mkPN "Krabi") ;
+  Countries_HCA_provinces_Atlantida_cities_Tela = UsePN (mkPN "Tela") ;
+  Countries_UZB_provinces_Khorazm = UsePN (mkPN "Khorazm") ;
+  Countries_TJ_provinces_Sichuan_cities_Daxian = UsePN (mkPN "Daxian") ;
+  Countries_UA_provinces_Vinnytska_cities_Vinnytsya = UsePN (mkPN "Vinnytsya") ;
+  Countries_P_provinces_Lisbon_cities_Lisbon = UsePN (mkPN "Lisbon") ;
+  Countries_ANG_provinces_Moxico_cities_Luena = UsePN (mkPN "Luena") ;
+  Countries_RC_provinces_Penghu = UsePN (mkPN "Penghu") ;
+  Lakes_LakeKalla = UsePN (mkPN "Lake Kalla") ;
+  Countries_THA_provinces_Mukdahan = UsePN (mkPN "Mukdahan") ;
+  Countries_MEX_provinces_Chiapas_cities_Tonala = UsePN (mkPN "Tonala") ;
+  Rivers_RioGrande = UsePN (mkPN "Rio Grande") ;
+  Islands_Mindoro = UsePN (mkPN "Mindoro") ;
+  Countries_TJ_provinces_Sichuan_cities_Mianyang = UsePN (mkPN "Mianyang") ;
+  Deserts_Tenere = UsePN (mkPN "Tenere") ;
+  Countries_TJ_provinces_Hebei_cities_Renqiu = UsePN (mkPN "Renqiu") ;
+  Countries_THA_provinces_Loei = UsePN (mkPN "Loei") ;
+  Countries_J_provinces_Iwate = UsePN (mkPN "Iwate") ;
+  Countries_ZRE_provinces_Kivu = UsePN (mkPN "Kivu") ;
+  Countries_RP_cities_Zamboanga = UsePN (mkPN "Zamboanga") ;
+  Countries_BR_provinces_Paraiba_cities_SantaRita = UsePN (mkPN "Santa Rita") ;
+  Countries_ZRE_provinces_Kivu_cities_Butembo = UsePN (mkPN "Butembo") ;
+  Countries_ES_provinces_Ahuachapan = UsePN (mkPN "Ahuachapan") ;
+  Countries_ANG_provinces_LundaNorte = UsePN (mkPN "Lunda Norte") ;
+  Countries_IR_provinces_Hamadan = UsePN (mkPN "Hamadan") ;
+  Countries_UA_provinces_Chernivetska_cities_Chernivtsi = UsePN (mkPN "Chernivtsi") ;
+  Countries_PL_provinces_Nowosadeckie_cities_NowySacz = UsePN (mkPN "Nowy Sacz") ;
+  Countries_OM_cities_Muscat = UsePN (mkPN "Muscat") ;
+  Countries_KAZ_provinces_Pavlodar_cities_Pavlodar = UsePN (mkPN "Pavlodar") ;
+  Countries_RO_provinces_Vrancea = UsePN (mkPN "Vrancea") ;
+  Countries_BR_provinces_SaoPaulo_cities_TaboaodaSerra = UsePN (mkPN "Taboao da Serra") ;
+  Countries_MAL_provinces_Sabah_cities_Sandakan = UsePN (mkPN "Sandakan") ;
+  Countries_R_provinces_Novgorodskayaoblast_cities_Novgorod = UsePN (mkPN "Novgorod") ;
+  Countries_H_provinces_Szolnok_cities_Szolnok = UsePN (mkPN "Szolnok") ;
+  Islands_Salina = UsePN (mkPN "Salina") ;
+  Countries_F_provinces_ProvenceCotedAzur = UsePN (mkPN "Provence Cote dAzur") ;
+  Countries_CH_provinces_SZ = UsePN (mkPN "SZ") ;
+  Countries_BR_provinces_EspiritoSanto_cities_Cariacica = UsePN (mkPN "Cariacica") ;
+  Countries_TJ_provinces_Hunan_cities_Lengshuijiang = UsePN (mkPN "Lengshuijiang") ;
+  Lakes_LakeVolta = UsePN (mkPN "Lake Volta") ;
+  Countries_ET_provinces_ElBuhayra_cities_KafrelDauwar = UsePN (mkPN "Kafr el Dauwar") ;
+  Countries_TJ_provinces_Jiangxi_cities_Yichun = UsePN (mkPN "Yichun") ;
+  Countries_RSA_provinces_NorthernCape_cities_Kimberley = UsePN (mkPN "Kimberley") ;
+  Countries_TJ_provinces_Jilin_cities_Tonghua = UsePN (mkPN "Tonghua") ;
+  Countries_BR_provinces_RioGrandedoNorte_cities_Natal = UsePN (mkPN "Natal") ;
+  Countries_TJ_provinces_Liaoning_cities_Beipiao = UsePN (mkPN "Beipiao") ;
+  Countries_TJ_provinces_Jiangsu_cities_Xinghua = UsePN (mkPN "Xinghua") ;
+  Countries_H_provinces_GyorSopron = UsePN (mkPN "Gyor Sopron") ;
+  Countries_R_provinces_Stavropolskykray = UsePN (mkPN "Stavropolsky kray") ;
+  Countries_ES_provinces_Chalatenango = UsePN (mkPN "Chalatenango") ;
+  Countries_IR_provinces_AzarbayianeGharbt = UsePN (mkPN "Azarbayian e Gharbt") ;
+  Countries_HCA_provinces_ElParaiso_cities_Danli = UsePN (mkPN "Danli") ;
+  Countries_IR_provinces_AzarbayianeSharqi = UsePN (mkPN "Azarbayian e Sharqi") ;
+  Countries_BR_provinces_MatoGrosso_cities_VarzeaGrande = UsePN (mkPN "Varzea Grande") ;
+  Countries_ZRE_provinces_KasaiOriental_cities_MbujiMayi = UsePN (mkPN "Mbuji Mayi") ;
+  Countries_MEX_provinces_Nayarit_cities_Tepic = UsePN (mkPN "Tepic") ;
+  Organizations_ABEDA = UsePN (mkPN "Arab Bank for Economic Development in Africa") ;
+  Countries_PL_provinces_Chelmskie = UsePN (mkPN "Chelmskie") ;
+  Countries_J_provinces_Tottori_cities_Tottori = UsePN (mkPN "Tottori") ;
+  Countries_WAN_cities_Aarri = UsePN (mkPN "Aarri") ;
+  Countries_GR_cities_Patrai = UsePN (mkPN "Patrai") ;
+  Countries_TR_provinces_Corum = UsePN (mkPN "Corum") ;
+  Deserts_HamadaduDraa = UsePN (mkPN "Hamada du Draa") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Karlsruhe = UsePN (mkPN "Karlsruhe") ;
+  Countries_TM_provinces_Leban = UsePN (mkPN "Leban") ;
+  Countries_CH_provinces_GE = UsePN (mkPN "GE") ;
+  Countries_cid_cia_Gaza_Strip = UsePN (mkPN "Gaza Strip") ;
+  Countries_TJ_provinces_Jiangsu_cities_Dongtai = UsePN (mkPN "Dongtai") ;
+  Countries_NL_provinces_ZuidHolland_cities_Leiden = UsePN (mkPN "Leiden") ;
+  Countries_ET_provinces_SinaalJanubiyah_cities_ElTur = UsePN (mkPN "El Tur") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Anda = UsePN (mkPN "Anda") ;
+  Countries_R_provinces_Rep_ofTyva = UsePN (mkPN "Rep. of Tyva") ;
+  Countries_THA_provinces_SingBuri = UsePN (mkPN "Sing Buri") ;
+  Countries_RI_cities_Sukabumi = UsePN (mkPN "Sukabumi") ;
+  Countries_TJ_provinces_Shandong = UsePN (mkPN "Shandong") ;
+  Countries_C_provinces_SanctiSpiritus = UsePN (mkPN "Sancti Spiritus") ;
+  Countries_SN_provinces_Kaolack_cities_Kaolack = UsePN (mkPN "Kaolack") ;
+  Countries_TJ_provinces_Jiangxi_cities_Fuzhou = UsePN (mkPN "Fuzhou") ;
+  Countries_USA_provinces_Virginia_cities_Arlington = UsePN (mkPN "Arlington") ;
+  Countries_IL_provinces_South = UsePN (mkPN "South") ;
+  Countries_cid_cia_Netherlands_Antilles_cities_Willemstad = UsePN (mkPN "Willemstad") ;
+  Countries_USA_provinces_Wisconsin_cities_Milwaukee = UsePN (mkPN "Milwaukee") ;
+  Deserts_Kalahari = UsePN (mkPN "Kalahari") ;
+  Lakes_LakeOri = UsePN (mkPN "Lake Ori") ;
+  Countries_BR_provinces_SaoPaulo_cities_Jundiai = UsePN (mkPN "Jundiai") ;
+  Countries_EAT_provinces_Lindi = UsePN (mkPN "Lindi") ;
+  Countries_J_provinces_Chiba_cities_Chiba = UsePN (mkPN "Chiba") ;
+  Countries_MYA_provinces_Yangon_cities_Rangoon = UsePN (mkPN "Rangoon") ;
+  Countries_RO_provinces_Braila_cities_Braila = UsePN (mkPN "Braila") ;
+  Islands_Lolland = UsePN (mkPN "Lolland") ;
+  Countries_USA_provinces_NewMexico_cities_Albuquerque = UsePN (mkPN "Albuquerque") ;
+  Countries_HCA_provinces_FranciscoMorazan_cities_Tegucigalpa = UsePN (mkPN "Tegucigalpa") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_NovaFriburgo = UsePN (mkPN "Nova Friburgo") ;
+  Countries_IRQ_provinces_SalahadDin = UsePN (mkPN "Salah ad Din") ;
+  Countries_TJ_provinces_Shandong_cities_Laiyang = UsePN (mkPN "Laiyang") ;
+  Countries_TJ_provinces_Jiangsu_cities_Changshu = UsePN (mkPN "Changshu") ;
+  Countries_UZB_provinces_Farghona = UsePN (mkPN "Farghona") ;
+  Countries_R_provinces_Samarskayaoblast_cities_Novokuybyshevsk = UsePN (mkPN "Novokuybyshevsk") ;
+  Countries_PE_provinces_Cuzco = UsePN (mkPN "Cuzco") ;
+  Countries_R_provinces_Rep_ofSakha = UsePN (mkPN "Rep. of Sakha") ;
+  Countries_GB_provinces_Kent_cities_Sevenoaks = UsePN (mkPN "Sevenoaks") ;
+  Countries_RA_provinces_Chubut_cities_ComodoroRivadavia = UsePN (mkPN "Comodoro Rivadavia") ;
+  Countries_IR_provinces_Yazd = UsePN (mkPN "Yazd") ;
+  Countries_BR_provinces_SantaCatarina_cities_Joinvile = UsePN (mkPN "Joinvile") ;
+  Countries_DZ_cities_Setif = UsePN (mkPN "Setif") ;
+  Countries_ZRE_provinces_Kivu_cities_Bukavu = UsePN (mkPN "Bukavu") ;
+  Countries_TJ_provinces_Shanxi_cities_Linfen = UsePN (mkPN "Linfen") ;
+  Countries_CAM_provinces_Centre_cities_Yaounde = UsePN (mkPN "Yaounde") ;
+  Countries_UA_provinces_Ternopilska = UsePN (mkPN "Ternopilska") ;
+  Countries_SUD_provinces_Darfur = UsePN (mkPN "Darfur") ;
+  Countries_WAN_cities_Ikare = UsePN (mkPN "Ikare") ;
+  Countries_TR_provinces_Nevsehir = UsePN (mkPN "Nevsehir") ;
+  Organizations_G_8 = UsePN (mkPN "Group of 8") ;
+  Countries_THA_provinces_Yasothon = UsePN (mkPN "Yasothon") ;
+  Countries_THA_provinces_Nonthaburi_cities_Nonthaburi = UsePN (mkPN "Nonthaburi") ;
+  Countries_R_provinces_Arkhangelskayaoblast = UsePN (mkPN "Arkhangelskaya oblast") ;
+  Countries_ET_provinces_ElIskandariya_munic_cities_ElIskandariya = UsePN (mkPN "El Iskandariya") ;
+  Countries_PA_provinces_Panama = UsePN (mkPN "Panama") ;
+  Lakes_LakeSaima = UsePN (mkPN "Lake Saima") ;
+  Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_PetalingJaya = UsePN (mkPN "Petaling Jaya") ;
+  Countries_BR_provinces_SaoPaulo_cities_Osasco = UsePN (mkPN "Osasco") ;
+  Countries_RB_cities_Gaborone = UsePN (mkPN "Gaborone") ;
+  Countries_F_provinces_PoitouCharentes_cities_Poitiers = UsePN (mkPN "Poitiers") ;
+  Countries_MEX_provinces_SanLuisPotosi = UsePN (mkPN "San Luis Potosi") ;
+  Countries_UA_provinces_Dnipropetrovska_cities_Dniprodzerzhynsk = UsePN (mkPN "Dniprodzerzhynsk") ;
+  Countries_IR_provinces_Bushehr = UsePN (mkPN "Bushehr") ;
+  Countries_TJ_provinces_Liaoning_cities_Anshan = UsePN (mkPN "Anshan") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_Kemerovo = UsePN (mkPN "Kemerovo") ;
+  Countries_THA_provinces_NakhonPathom = UsePN (mkPN "Nakhon Pathom") ;
+  Countries_PA_provinces_Darien_cities_LaPalma = UsePN (mkPN "La Palma") ;
+  Countries_RSA_provinces_NorthernProvince = UsePN (mkPN "Northern Province") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Witten = UsePN (mkPN "Witten") ;
+  Countries_E_provinces_CastileandLeon_cities_Salamanca = UsePN (mkPN "Salamanca") ;
+  Countries_BR_provinces_Goias_cities_Anapolis = UsePN (mkPN "Anapolis") ;
+  Countries_KAZ_provinces_Zhambyl = UsePN (mkPN "Zhambyl") ;
+  Mountains_NevadodeColima = UsePN (mkPN "Nevado de Colima") ;
+  Countries_R_provinces_Kurskayaoblast_cities_Kursk = UsePN (mkPN "Kursk") ;
+  Countries_USA_provinces_Louisiana_cities_Shreveport = UsePN (mkPN "Shreveport") ;
+  Countries_USA_provinces_Illinois_cities_Springfield = UsePN (mkPN "Springfield") ;
+  Countries_VN_provinces_NorthMountainandMidlands = UsePN (mkPN "North Mountain and Midlands") ;
+  Countries_BOL_cities_Cochabamba = UsePN (mkPN "Cochabamba") ;
+  Rivers_Jug = UsePN (mkPN "Jug") ;
+  Countries_MOC_provinces_Manica = UsePN (mkPN "Manica") ;
+  Countries_R_provinces_Nizhegorodskayaoblast_cities_Dzerzhinsk = UsePN (mkPN "Dzerzhinsk") ;
+  Rivers_Amur = UsePN (mkPN "Amur") ;
+  Countries_P_provinces_Lisbon_cities_Barreiro = UsePN (mkPN "Barreiro") ;
+  Countries_USA_provinces_California_cities_SanFrancisco = UsePN (mkPN "San Francisco") ;
+  Countries_S_provinces_Varmland = UsePN (mkPN "Varmland") ;
+  Countries_NOK_cities_Sinpo = UsePN (mkPN "Sinpo") ;
+  Countries_E_provinces_Estremadura_cities_Merida = UsePN (mkPN "Merida") ;
+  Countries_MEX_provinces_Sinaloa_cities_Culiacan = UsePN (mkPN "Culiacan") ;
+  Countries_SN_provinces_Diourbel_cities_Diourbel = UsePN (mkPN "Diourbel") ;
+  Countries_EAK_provinces_Nyanza_cities_Kisumu = UsePN (mkPN "Kisumu") ;
+  Countries_THA_provinces_UthaiThani = UsePN (mkPN "Uthai Thani") ;
+  Countries_NOK_cities_HamhungHungnam = UsePN (mkPN "Hamhung Hungnam") ;
+  Countries_ET_provinces_Asyut = UsePN (mkPN "Asyut") ;
+  Organizations_EIB = UsePN (mkPN "European Investment Bank") ;
+  Countries_RA_provinces_Formosa_cities_Formosa = UsePN (mkPN "Formosa") ;
+  Countries_UZB_provinces_Sirdare_cities_Guliston = UsePN (mkPN "Guliston") ;
+  Countries_GB_provinces_Newport = UsePN (mkPN "Newport") ;
+  Countries_PK_cities_Kasur = UsePN (mkPN "Kasur") ;
+  Countries_BR_provinces_MatoGrossodoSul_cities_Dourados = UsePN (mkPN "Dourados") ;
+  Mountains_Kebnekaise = UsePN (mkPN "Kebnekaise") ;
+  Countries_GB_provinces_Kent_cities_Swale = UsePN (mkPN "Swale") ;
+  Countries_IND_provinces_Gujarat_cities_Ahmadabad = UsePN (mkPN "Ahmadabad") ;
+  Countries_CAM_provinces_Nordextreme_cities_Maroua = UsePN (mkPN "Maroua") ;
+  Countries_RSA_provinces_EasternCape_cities_EastLondon = UsePN (mkPN "East London") ;
+  Organizations_WFC = UsePN (mkPN "World Food Council") ;
+  Countries_GB_provinces_Torfaen = UsePN (mkPN "Torfaen") ;
+  Lakes_LakeEyre = UsePN (mkPN "Lake Eyre") ;
+  Countries_IND_provinces_Punjab = UsePN (mkPN "Punjab") ;
+  Mountains_Montblanc = UsePN (mkPN "Montblanc") ;
+  Mountains_MtWhitney = UsePN (mkPN "Mt Whitney") ;
+  Countries_S_provinces_Gavleborg = UsePN (mkPN "Gavleborg") ;
+  Countries_MEX_provinces_Puebla_cities_Tehuacan = UsePN (mkPN "Tehuacan") ;
+  Countries_GB_provinces_Essex_cities_EppingForest = UsePN (mkPN "Epping Forest") ;
+  Countries_RA_provinces_Tucuman_cities_SanMigueldeTucuman = UsePN (mkPN "San Miguel de Tucuman") ;
+  Countries_NOK_cities_Huichon = UsePN (mkPN "Huichon") ;
+  Organizations_UNOMIG = UsePN (mkPN "United Nations Observer Mission in Georgia") ;
+  Countries_ANG_provinces_Luanda = UsePN (mkPN "Luanda") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Ulanhot = UsePN (mkPN "Ulanhot") ;
+  Countries_NL_provinces_ZuidHolland_cities_Dordrecht = UsePN (mkPN "Dordrecht") ;
+  Countries_KAZ_provinces_OngtustikQazaqstan = UsePN (mkPN "Ongtustik Qazaqstan") ;
+  Countries_ZRE_provinces_Kivu_cities_Uvira = UsePN (mkPN "Uvira") ;
+  Mountains_MountMorrison = UsePN (mkPN "Mount Morrison") ;
+  Countries_R_provinces_Orenburgskayaoblast_cities_Orenburg = UsePN (mkPN "Orenburg") ;
+  Countries_R_provinces_Rep_ofBuryatiya = UsePN (mkPN "Rep. of Buryatiya") ;
+  Countries_MEX_provinces_QuintanaRoo_cities_Chetumal = UsePN (mkPN "Chetumal") ;
+  Countries_TAD_provinces_BadakhshoniKuni_cities_Khorugh = UsePN (mkPN "Khorugh") ;
+  Countries_R_provinces_Rep_ofIngushetiya = UsePN (mkPN "Rep. of Ingushetiya") ;
+  Countries_D_provinces_Niedersachsen_cities_Braunschweig = UsePN (mkPN "Braunschweig") ;
+  Countries_PE_provinces_Ancash_cities_Chimbote = UsePN (mkPN "Chimbote") ;
+  Countries_BR_provinces_SaoPaulo_cities_Pindamonhangaba = UsePN (mkPN "Pindamonhangaba") ;
+  Countries_cid_cia_Reunion = UsePN (mkPN "Reunion") ;
+  Islands_Lavan = UsePN (mkPN "Lavan") ;
+  Islands_Tonga = UsePN (mkPN "Tonga") ;
+  Countries_F_provinces_HauteNormandie = UsePN (mkPN "Haute Normandie") ;
+  Countries_WAN_cities_BeninCity = UsePN (mkPN "Benin City") ;
+  Countries_BR_provinces_Tocantins = UsePN (mkPN "Tocantins") ;
+  Countries_TJ_provinces_Fujian_cities_Fuzhou = UsePN (mkPN "Fuzhou") ;
+  Countries_GB_provinces_RhonddaCynonTaff = UsePN (mkPN "Rhondda Cynon Taff") ;
+  Countries_IND_provinces_MadhyaPradesh_cities_Gwalior = UsePN (mkPN "Gwalior") ;
+  Countries_MEX_cities_AtizapandeZaragoza = UsePN (mkPN "Atizapan de Zaragoza") ;
+  Countries_GB_provinces_Pembrokeshire_cities_Haverfordwest = UsePN (mkPN "Haverfordwest") ;
+  Countries_MD_cities_Chisinau = UsePN (mkPN "Chisinau") ;
+  Countries_HCA_provinces_Olancho = UsePN (mkPN "Olancho") ;
+  Countries_USA_provinces_NewJersey_cities_JerseyCity = UsePN (mkPN "Jersey City") ;
+  Countries_PE_provinces_Puno_cities_Juliaca = UsePN (mkPN "Juliaca") ;
+  Countries_S_provinces_Kronoberg_cities_Vaxjo = UsePN (mkPN "Vaxjo") ;
+  Countries_USA_provinces_California_cities_Sacramento = UsePN (mkPN "Sacramento") ;
+  Countries_R_provinces_UdmurtRepublic_cities_Votkinsk = UsePN (mkPN "Votkinsk") ;
+  Countries_D_provinces_Thuringen_cities_Erfurt = UsePN (mkPN "Erfurt") ;
+  Countries_ROK_cities_Chunchon = UsePN (mkPN "Chunchon") ;
+  Countries_MEX_provinces_Sinaloa_cities_Mazatlan = UsePN (mkPN "Mazatlan") ;
+  Deserts_Uaran = UsePN (mkPN "Uaran") ;
+  Countries_TR_provinces_Hatay = UsePN (mkPN "Hatay") ;
+  Countries_UZB_provinces_Andijon_cities_Andijon = UsePN (mkPN "Andijon") ;
+  Rivers_GrosserJenissej = UsePN (mkPN "Grosser Jenissej") ;
+  Countries_BR_provinces_Tocantins_cities_Palmas = UsePN (mkPN "Palmas") ;
+  Countries_CO_provinces_Arauca = UsePN (mkPN "Arauca") ;
+  Countries_Z_provinces_Western = UsePN (mkPN "Western") ;
+  Countries_LV_cities_Riga = UsePN (mkPN "Riga") ;
+  Mountains_Mt_Kosciuszko = UsePN (mkPN "Mt. Kosciuszko") ;
+  Countries_CDN_provinces_Ontario_cities_York = UsePN (mkPN "York") ;
+  Countries_A_provinces_Styria = UsePN (mkPN "Styria") ;
+  Countries_R_provinces_Chelyabinskayaoblast_cities_Magnitogorsk = UsePN (mkPN "Magnitogorsk") ;
+  Countries_RI_cities_Cirebon = UsePN (mkPN "Cirebon") ;
+  Countries_Z_provinces_Luapula = UsePN (mkPN "Luapula") ;
+  Countries_RO_provinces_Giurgiu_cities_Giurgiu = UsePN (mkPN "Giurgiu") ;
+  Countries_GB_provinces_Hampshire_cities_Winchester = UsePN (mkPN "Winchester") ;
+  Countries_F_provinces_RhoneAlpes_cities_Villeurbanne = UsePN (mkPN "Villeurbanne") ;
+  Countries_R_provinces_Penzenskayaoblast_cities_Kuznetsk = UsePN (mkPN "Kuznetsk") ;
+  Islands_Colonsay = UsePN (mkPN "Colonsay") ;
+  Countries_D_provinces_Bayern_cities_Munich = UsePN (mkPN "Munich") ;
+  Countries_cid_cia_Falkland_Islands_cities_Stanley = UsePN (mkPN "Stanley") ;
+  Countries_AUS_provinces_NewSouthWales_cities_Wollongong = UsePN (mkPN "Wollongong") ;
+  Countries_NL_provinces_Gelderland_cities_Nijmegen = UsePN (mkPN "Nijmegen") ;
+  Countries_AUS_provinces_Queensland_cities_Townsville = UsePN (mkPN "Townsville") ;
+  Countries_USA_provinces_California_cities_SanJose = UsePN (mkPN "San Jose") ;
+  Countries_ES_provinces_Morazan = UsePN (mkPN "Morazan") ;
+  Organizations_G_2 = UsePN (mkPN "Group of 2") ;
+  Countries_VN_provinces_SouthCentralCoast = UsePN (mkPN "South Central Coast") ;
+  Countries_R_provinces_Murmanskayaoblast = UsePN (mkPN "Murmanskaya oblast") ;
+  Countries_PL_provinces_Slupskie = UsePN (mkPN "Slupskie") ;
+  Countries_TR_provinces_Yozgat = UsePN (mkPN "Yozgat") ;
+  Countries_TJ_provinces_Liaoning_cities_Shenyang = UsePN (mkPN "Shenyang") ;
+  Countries_GR_provinces_Peloponnisos = UsePN (mkPN "Peloponnisos") ;
+  Countries_CDN_provinces_Ontario_cities_Mississauga = UsePN (mkPN "Mississauga") ;
+  Countries_THA_provinces_Phrae = UsePN (mkPN "Phrae") ;
+  Countries_STP_cities_SaoTome = UsePN (mkPN "Sao Tome") ;
+  Countries_RO_provinces_Bacau = UsePN (mkPN "Bacau") ;
+  Countries_IR_provinces_Esfahan_cities_Najafabad = UsePN (mkPN "Najafabad") ;
+  Countries_SD_cities_Mbabane = UsePN (mkPN "Mbabane") ;
+  Countries_ANG_provinces_Huambo_cities_Huambo = UsePN (mkPN "Huambo") ;
+  Countries_TJ_provinces_Shaanxi_cities_Ankang = UsePN (mkPN "Ankang") ;
+  Lakes_LakeTumba = UsePN (mkPN "Lake Tumba") ;
+  Countries_VN_provinces_HaBac = UsePN (mkPN "Ha Bac") ;
+  Countries_YV_provinces_Zulia_cities_Maracaibo = UsePN (mkPN "Maracaibo") ;
+  Countries_cid_cia_Hong_Kong = UsePN (mkPN "Hong Kong") ;
+  Countries_TJ_provinces_Anhui_cities_Huainan = UsePN (mkPN "Huainan") ;
+  Countries_AUS_provinces_Queensland_cities_Brisbane = UsePN (mkPN "Brisbane") ;
+  Countries_R_provinces_Primorskykray_cities_Vladivostok = UsePN (mkPN "Vladivostok") ;
+  Countries_IRQ_provinces_AnNajaf = UsePN (mkPN "An Najaf") ;
+  Mountains_Damavand = UsePN (mkPN "Damavand") ;
+  Countries_IR_provinces_Hamadan_cities_Hamadan = UsePN (mkPN "Hamadan") ;
+  Countries_CDN_provinces_Alberta = UsePN (mkPN "Alberta") ;
+  Countries_ANG_provinces_Uige = UsePN (mkPN "Uige") ;
+  Countries_EAT_provinces_Singida = UsePN (mkPN "Singida") ;
+  Countries_TJ_provinces_Liaoning_cities_Liaoyang = UsePN (mkPN "Liaoyang") ;
+  Countries_ER_cities_Asmara = UsePN (mkPN "Asmara") ;
+  Rivers_Petschora = UsePN (mkPN "Petschora") ;
+  Countries_R_provinces_Amurskayaoblast_cities_Blagoveshchensk = UsePN (mkPN "Blagoveshchensk") ;
+  Countries_USA_provinces_Michigan_cities_Lansing = UsePN (mkPN "Lansing") ;
+  Countries_TJ_provinces_Shandong_cities_Jinan = UsePN (mkPN "Jinan") ;
+  Countries_GB_provinces_WestMidlands = UsePN (mkPN "West Midlands") ;
+  Countries_IRQ_provinces_AlMuthanna_cities_AsSamawah = UsePN (mkPN "As Samawah") ;
+  Countries_GB_provinces_Somerset = UsePN (mkPN "Somerset") ;
+  Rivers_Garonne = UsePN (mkPN "Garonne") ;
+  Countries_RI_cities_TanjungBalai = UsePN (mkPN "Tanjung Balai") ;
+  Countries_C_provinces_PinardelRio_cities_PinardelRio = UsePN (mkPN "Pinar del Rio") ;
+  Countries_GB_provinces_Borders_cities_NewtownSt_Boswells = UsePN (mkPN "Newtown St. Boswells") ;
+  Countries_R_provinces_Volgogradskayaoblast = UsePN (mkPN "Volgogradskaya oblast") ;
+  Countries_USA_provinces_Georgia = UsePN (mkPN "Georgia") ;
+  Countries_IND_provinces_Pondicherry = UsePN (mkPN "Pondicherry") ;
+  Countries_cid_cia_Ashmore_and_Cartier_Islands = UsePN (mkPN "Ashmore and Cartier Islands") ;
+  Countries_USA_provinces_California_cities_Inglewood = UsePN (mkPN "Inglewood") ;
+  Countries_TR_provinces_Tekirdag_cities_Tekirdag = UsePN (mkPN "Tekirdag") ;
+  Countries_USA_provinces_Massachusetts_cities_Boston = UsePN (mkPN "Boston") ;
+  Countries_J_provinces_Toyama = UsePN (mkPN "Toyama") ;
+  Countries_IRQ_provinces_AsSulaymaniyah_cities_AsSulaymaniyah = UsePN (mkPN "As Sulaymaniyah") ;
+  Countries_IND_provinces_Rajasthan = UsePN (mkPN "Rajasthan") ;
+  Countries_GB_provinces_Warwickshire_cities_StratfordonAvon = UsePN (mkPN "Stratford on Avon") ;
+  Countries_CO_provinces_Cordoba_cities_Monteria = UsePN (mkPN "Monteria") ;
+  Countries_H_provinces_Gyor_munic_cities_Gyor = UsePN (mkPN "Gyor") ;
+  Rivers_Uruguay = UsePN (mkPN "Uruguay") ;
+  Countries_MOC_provinces_Inhambane_cities_Inhambane = UsePN (mkPN "Inhambane") ;
+  Countries_S_provinces_Norrbotten_cities_Jokkmokk = UsePN (mkPN "Jokkmokk") ;
+  Countries_USA_provinces_California_cities_HuntingtonBeach = UsePN (mkPN "Huntington Beach") ;
+  Countries_GB_provinces_Cumbria = UsePN (mkPN "Cumbria") ;
+  Countries_SUD_provinces_alKhartum_cities_Khartoum = UsePN (mkPN "Khartoum") ;
+  Islands_NorthUlist = UsePN (mkPN "North Ulist") ;
+  Countries_F_provinces_HauteNormandie_cities_Rouen = UsePN (mkPN "Rouen") ;
+  Countries_VN_provinces_DongThap = UsePN (mkPN "Dong Thap") ;
+  Islands_SanMiguelIsland = UsePN (mkPN "San Miguel Island") ;
+  Countries_R_provinces_Rep_ofMordovia = UsePN (mkPN "Rep. of Mordovia") ;
+  Countries_SF_provinces_Turku_Pori_cities_Pori = UsePN (mkPN "Pori") ;
+  Countries_MEX_provinces_Veracruz = UsePN (mkPN "Veracruz") ;
+  Countries_P_provinces_Porto_cities_Porto = UsePN (mkPN "Porto") ;
+  Countries_PE_provinces_Callao_cities_Callao = UsePN (mkPN "Callao") ;
+  Countries_ARM_cities_Yerevan = UsePN (mkPN "Yerevan") ;
+  Countries_MW_cities_Lilongwe = UsePN (mkPN "Lilongwe") ;
+  Countries_USA_provinces_Alabama_cities_Birmingham = UsePN (mkPN "Birmingham") ;
+  Countries_MK_cities_Skopje = UsePN (mkPN "Skopje") ;
+  Countries_IR_provinces_BoyerAhmadeKohkiluyeh_cities_Yasuj = UsePN (mkPN "Yasuj") ;
+  Islands_Antigua = UsePN (mkPN "Antigua") ;
+  Countries_E_provinces_Murcia_cities_Murcia = UsePN (mkPN "Murcia") ;
+  Countries_VN_cities_Hue = UsePN (mkPN "Hue") ;
+  Countries_USA_provinces_NewYork_cities_Rochester = UsePN (mkPN "Rochester") ;
+  Countries_GB_provinces_Nottinghamshire_cities_Nottingham = UsePN (mkPN "Nottingham") ;
+  Countries_VN_provinces_BenTre = UsePN (mkPN "Ben Tre") ;
+  Countries_TJ_provinces_Shanxi_cities_Taiyuan = UsePN (mkPN "Taiyuan") ;
+  Countries_VN_cities_DaNang = UsePN (mkPN "Da Nang") ;
+  Countries_PL_provinces_Wroclawskie_cities_Wroclaw = UsePN (mkPN "Wroclaw") ;
+  Deserts_NubianDesert = UsePN (mkPN "Nubian Desert") ;
+  Countries_BR_cities_CamposdosGoytacazes = UsePN (mkPN "Campos dos Goytacazes") ;
+  Countries_RO_provinces_Arges = UsePN (mkPN "Arges") ;
+  Countries_R_provinces_ChuvashRepublic = UsePN (mkPN "Chuvash Republic") ;
+  Mountains_PikChan_Tengri = UsePN (mkPN "Pik Chan-Tengri") ;
+  Countries_YV_provinces_Bolivar_cities_CiudadBolivar = UsePN (mkPN "Ciudad Bolivar") ;
+  Countries_IR_provinces_Khuzestan_cities_Khorramshahr = UsePN (mkPN "Khorramshahr") ;
+  Countries_UA_provinces_Zaporizka = UsePN (mkPN "Zaporizka") ;
+  Countries_THA_provinces_Narathiwat = UsePN (mkPN "Narathiwat") ;
+  Countries_TJ_provinces_NingxiaHuizu_cities_Shizuishan = UsePN (mkPN "Shizuishan") ;
+  Countries_I_provinces_Liguria_cities_Genua = UsePN (mkPN "Genua") ;
+  Countries_PL_provinces_Kieleckie = UsePN (mkPN "Kieleckie") ;
+  Countries_E_provinces_Valencia_cities_Elx = UsePN (mkPN "Elx") ;
+  Countries_ET_provinces_ElGiza = UsePN (mkPN "El Giza") ;
+  Countries_R_provinces_Tverskayaoblast_cities_Tver = UsePN (mkPN "Tver") ;
+  Countries_RIM_cities_Nouakchott = UsePN (mkPN "Nouakchott") ;
+  Countries_IND_provinces_TamilNadu_cities_Salem = UsePN (mkPN "Salem") ;
+  Countries_R_provinces_KarachayevoCherkesskRep_ = UsePN (mkPN "Karachayevo Cherkessk Rep.") ;
+  Organizations_FAO = UsePN (mkPN "Food and Agriculture Organization") ;
+  Lakes_Paeijaenne = UsePN (mkPN "Paeijaenne") ;
+  Countries_TJ_provinces_Sichuan_cities_Yibin = UsePN (mkPN "Yibin") ;
+  Seas_MediterraneanSea = UsePN (mkPN "Mediterranean Sea") ;
+  Countries_E_provinces_Madrid_cities_Getafe = UsePN (mkPN "Getafe") ;
+  Organizations_CDB = UsePN (mkPN "Caribbean Development Bank") ;
+  Islands_Mainland = UsePN (mkPN "Mainland") ;
+  Countries_RO_provinces_Harghita = UsePN (mkPN "Harghita") ;
+  Countries_GB_provinces_Berkshire_cities_Windsor = UsePN (mkPN "Windsor") ;
+  Countries_J_provinces_Hokkaido_cities_Sapporo = UsePN (mkPN "Sapporo") ;
+  Countries_VN_provinces_QuangTri = UsePN (mkPN "Quang Tri") ;
+  Countries_GB_provinces_WestYorkshire_cities_Wakefield = UsePN (mkPN "Wakefield") ;
+  Countries_MEX_provinces_Jalisco_cities_Cuautla = UsePN (mkPN "Cuautla") ;
+  Rivers_Elbe = UsePN (mkPN "Elbe") ;
+  Countries_J_provinces_Shiga = UsePN (mkPN "Shiga") ;
+  Countries_CAM_provinces_Nordextreme = UsePN (mkPN "Nord extreme") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Yichun = UsePN (mkPN "Yichun") ;
+  Mountains_Llullaillaco = UsePN (mkPN "Llullaillaco") ;
+  Countries_TJ_provinces_Shandong_cities_Qingdao = UsePN (mkPN "Qingdao") ;
+  Countries_TJ_provinces_Fujian_cities_Zhangzhou = UsePN (mkPN "Zhangzhou") ;
+  Lakes_Inari = UsePN (mkPN "Inari") ;
+  Islands_Ibiza = UsePN (mkPN "Ibiza") ;
+  Countries_TJ_provinces_Henan_cities_Jiaozuo = UsePN (mkPN "Jiaozuo") ;
+  Countries_TR_provinces_Izmir_cities_Izmir = UsePN (mkPN "Izmir") ;
+  Countries_CH_provinces_VS_cities_Sion = UsePN (mkPN "Sion") ;
+  Countries_USA_provinces_Arkansas = UsePN (mkPN "Arkansas") ;
+  Countries_RC_provinces_Kaohsiung_munic = UsePN (mkPN "Kaohsiung (munic.)") ;
+  Countries_I_provinces_Lazio_cities_Rome = UsePN (mkPN "Rome") ;
+  Countries_TJ_provinces_Jilin_cities_Fuyu = UsePN (mkPN "Fuyu") ;
+  Countries_PL_provinces_Pilskie = UsePN (mkPN "Pilskie") ;
+  Countries_CH_provinces_TG_cities_Frauenfeld = UsePN (mkPN "Frauenfeld") ;
+  Countries_GB_provinces_Strathclyde_cities_Renfrew = UsePN (mkPN "Renfrew") ;
+  Countries_C_provinces_Granma_cities_Bayamo = UsePN (mkPN "Bayamo") ;
+  Countries_PL_provinces_Katowickie_cities_Gliwice = UsePN (mkPN "Gliwice") ;
+  Countries_THA_provinces_Phuket = UsePN (mkPN "Phuket") ;
+  Countries_UA_provinces_Cherkaska_cities_Cherkasy = UsePN (mkPN "Cherkasy") ;
+  Countries_HCA_provinces_Ocotepeque_cities_Ocotepeque = UsePN (mkPN "Ocotepeque") ;
+  Lakes_LakeRukwa = UsePN (mkPN "Lake Rukwa") ;
+  Countries_R_provinces_Sverdlovskayaoblast_cities_KamenskUralskiy = UsePN (mkPN "Kamensk Uralskiy") ;
+  Countries_GB_provinces_Fife_cities_Glenrothes = UsePN (mkPN "Glenrothes") ;
+  Countries_SP_cities_Mogadishu = UsePN (mkPN "Mogadishu") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Siegen = UsePN (mkPN "Siegen") ;
+  Countries_HCA_provinces_Yoro_cities_Yoro = UsePN (mkPN "Yoro") ;
+  Countries_CH_provinces_OW_cities_Sarnen = UsePN (mkPN "Sarnen") ;
+  Countries_AUS_provinces_NorfolkIsland = UsePN (mkPN "Norfolk Island") ;
+  Countries_MA_cities_Khouribga = UsePN (mkPN "Khouribga") ;
+  Countries_P_provinces_VilaReal = UsePN (mkPN "Vila Real") ;
+  Countries_PK_cities_RahimYarKhan = UsePN (mkPN "Rahim Yar Khan") ;
+  Countries_cid_cia_Heard_Island_and_McDonald_Islands = UsePN (mkPN "Heard Island and McDonald Islands") ;
+  Countries_AUS_provinces_NewSouthWales_cities_Sydney = UsePN (mkPN "Sydney") ;
+  Rivers_Goetaaelv = UsePN (mkPN "Goetaaelv") ;
+  Countries_TR_provinces_Tekirdag = UsePN (mkPN "Tekirdag") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Qitaihe = UsePN (mkPN "Qitaihe") ;
+  Countries_RSA_cities_Mangaung = UsePN (mkPN "Mangaung") ;
+  Islands_Bali = UsePN (mkPN "Bali") ;
+  Countries_R_provinces_Vladimirskayaoblast_cities_Kovrov = UsePN (mkPN "Kovrov") ;
+  Countries_cid_cia_Guadeloupe_cities_Basse_Terre = UsePN (mkPN "Basse-Terre") ;
+  Countries_RA_provinces_Corrientes = UsePN (mkPN "Corrientes") ;
+  Countries_CO_provinces_Atlantico_cities_Soledad = UsePN (mkPN "Soledad") ;
+  Countries_J_provinces_Shizuoka_cities_Shizuoka = UsePN (mkPN "Shizuoka") ;
+  Countries_D_provinces_MecklenburgVorpommern_cities_Schwerin = UsePN (mkPN "Schwerin") ;
+  Mountains_Hotaka_Dake = UsePN (mkPN "Hotaka-Dake") ;
+  Countries_MC_cities_Monaco = UsePN (mkPN "Monaco") ;
+  Countries_ROK_cities_Masan = UsePN (mkPN "Masan") ;
+  Countries_GB_cities_Sandwell = UsePN (mkPN "Sandwell") ;
+  Countries_UZB_provinces_Farghona_cities_Farghona = UsePN (mkPN "Farghona") ;
+  Countries_MA_cities_BeniMellal = UsePN (mkPN "Beni Mellal") ;
+  Countries_V_cities_VaticanCity = UsePN (mkPN "Vatican City") ;
+  Countries_KAZ_provinces_Pavlodar = UsePN (mkPN "Pavlodar") ;
+  Countries_HCA_provinces_Colon = UsePN (mkPN "Colon") ;
+  Organizations_ISO = UsePN (mkPN "International Organization for Standardization") ;
+  Rivers_Argun = UsePN (mkPN "Argun") ;
+  Countries_LAO_cities_Vientiane = UsePN (mkPN "Vientiane") ;
+  Countries_R_provinces_ChechenRep_ = UsePN (mkPN "Chechen Rep.") ;
+  Countries_BR_provinces_SantaCatarina_cities_Chapeco = UsePN (mkPN "Chapeco") ;
+  Countries_GB_provinces_SouthYorkshire = UsePN (mkPN "South Yorkshire") ;
+  Countries_GB_provinces_Hampshire_cities_Portsmouth = UsePN (mkPN "Portsmouth") ;
+  Countries_IND_provinces_HimachalPradesh = UsePN (mkPN "Himachal Pradesh") ;
+  Countries_GB_provinces_Torfaen_cities_Pontypool = UsePN (mkPN "Pontypool") ;
+  Countries_R_provinces_Krasnoyarskiykray_cities_Achinsk = UsePN (mkPN "Achinsk") ;
+  Countries_USA_provinces_RhodeIsland = UsePN (mkPN "Rhode Island") ;
+  Organizations_ITU = UsePN (mkPN "International Telecommunication Union") ;
+  Countries_USA_provinces_Texas_cities_Pasadena = UsePN (mkPN "Pasadena") ;
+  Organizations_Intelsat = UsePN (mkPN "International Telecommunications Satellite Organization") ;
+  Seas_GulfofMexico = UsePN (mkPN "Gulf of Mexico") ;
+  Countries_PL_provinces_Szczecinskie = UsePN (mkPN "Szczecinskie") ;
+  Countries_CZ_provinces_Severomoravsky = UsePN (mkPN "Severomoravsky") ;
+  Countries_PA_provinces_Colon = UsePN (mkPN "Colon") ;
+  Countries_RO_provinces_Hunedoara_cities_Deva = UsePN (mkPN "Deva") ;
+  Countries_MOC_provinces_Niassa = UsePN (mkPN "Niassa") ;
+  Countries_BR_provinces_SaoPaulo_cities_FranciscoMorato = UsePN (mkPN "Francisco Morato") ;
+  Organizations_OAU = UsePN (mkPN "Organization of African Unity") ;
+  Organizations_IMF = UsePN (mkPN "International Monetary Fund") ;
+  Countries_GB_provinces_Carmarthenshire_cities_Carmarthen = UsePN (mkPN "Carmarthen") ;
+  Countries_UA_provinces_Zaporizka_cities_Zaporizhzhya = UsePN (mkPN "Zaporizhzhya") ;
+  Countries_cid_cia_American_Samoa_cities_PagoPago = UsePN (mkPN "Pago Pago") ;
+  Countries_TR_provinces_Sivas = UsePN (mkPN "Sivas") ;
+  Countries_R_provinces_Rep_ofKomi = UsePN (mkPN "Rep. of Komi") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Mishan = UsePN (mkPN "Mishan") ;
+  Countries_TJ_provinces_Shaanxi = UsePN (mkPN "Shaanxi") ;
+  Countries_IR_provinces_ChaharMahaleBakhtiari_cities_ShahreKord = UsePN (mkPN "Shahr e Kord") ;
+  Countries_J_provinces_Shimane = UsePN (mkPN "Shimane") ;
+  Countries_PE_provinces_Lima = UsePN (mkPN "Lima") ;
+  Organizations_NATO = UsePN (mkPN "North Atlantic Treaty Organization") ;
+  Countries_USA_provinces_NorthDakota = UsePN (mkPN "North Dakota") ;
+  Countries_SYR_cities_Aleppo = UsePN (mkPN "Aleppo") ;
+  Countries_I_provinces_Abruzzo = UsePN (mkPN "Abruzzo") ;
+  Countries_WAN_cities_Ikire = UsePN (mkPN "Ikire") ;
+  Organizations_AL = UsePN (mkPN "Arab League") ;
+  Countries_ZRE_provinces_Kinshasa_cities_Kinshasa = UsePN (mkPN "Kinshasa") ;
+  Countries_NL_provinces_Gelderland_cities_Arnhem = UsePN (mkPN "Arnhem") ;
+  Countries_ANG_provinces_Huambo = UsePN (mkPN "Huambo") ;
+  Islands_Madeira = UsePN (mkPN "Madeira") ;
+  Countries_R_provinces_Astrakhanskayaoblast_cities_Astrakhan = UsePN (mkPN "Astrakhan") ;
+  Countries_P_provinces_Aveiro = UsePN (mkPN "Aveiro") ;
+  Countries_CY_cities_Nicosia = UsePN (mkPN "Nicosia") ;
+  Islands_PrinceCharlesIsland = UsePN (mkPN "Prince Charles Island") ;
+  Organizations_NIB = UsePN (mkPN "Nordic Investment Bank") ;
+  Countries_PAL_cities_Koror = UsePN (mkPN "Koror") ;
+  Countries_YV_provinces_Miranda_cities_LosTeques = UsePN (mkPN "Los Teques") ;
+  Organizations_UDEAC = UsePN (mkPN "Central African Customs and Economic Union") ;
+  Countries_S_provinces_Skaraborg = UsePN (mkPN "Skaraborg") ;
+  Organizations_UNICEF = UsePN (mkPN "United Nations Childrens Fund") ;
+  Countries_CR_provinces_Limon_cities_Limon = UsePN (mkPN "Limon") ;
+  Countries_cid_cia_British_Virgin_Islands_cities_RoadTown = UsePN (mkPN "Road Town") ;
+  Seas_ArcticOcean = UsePN (mkPN "Arctic Ocean") ;
+  Countries_CR_provinces_Punarenas = UsePN (mkPN "Punarenas") ;
+  Countries_MA_provinces_Centre = UsePN (mkPN "Centre") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Herne = UsePN (mkPN "Herne") ;
+  Organizations_WFP = UsePN (mkPN "World Food Program") ;
+  Countries_PE_provinces_Puno_cities_Puno = UsePN (mkPN "Puno") ;
+  Countries_CO_provinces_Casanare = UsePN (mkPN "Casanare") ;
+  Countries_TJ_provinces_Hubei_cities_Xiangfan = UsePN (mkPN "Xiangfan") ;
+  Countries_CDN_provinces_NorthwestTerritories = UsePN (mkPN "Northwest Territories") ;
+  Countries_TJ_provinces_Zhejiang_cities_Ruian = UsePN (mkPN "Ruian") ;
+  Countries_I_cities_Forli = UsePN (mkPN "Forli") ;
+  Rivers_Luangwa = UsePN (mkPN "Luangwa") ;
+  Countries_MA_provinces_Tensift = UsePN (mkPN "Tensift") ;
+  Countries_F_provinces_Centre = UsePN (mkPN "Centre") ;
+  Countries_NL_provinces_Limburg_cities_Heerlen = UsePN (mkPN "Heerlen") ;
+  Countries_IR_provinces_Ilam_cities_Ilam = UsePN (mkPN "Ilam") ;
+  Countries_TJ_provinces_Anhui_cities_Chaoxian = UsePN (mkPN "Chaoxian") ;
+  Lakes_LagodiGarda = UsePN (mkPN "Lago di Garda") ;
+  Countries_RO_provinces_Botosani = UsePN (mkPN "Botosani") ;
+  Islands_Cuba = UsePN (mkPN "Cuba") ;
+  Countries_BR_provinces_Ceara_cities_Maracanau = UsePN (mkPN "Maracanau") ;
+  Countries_TJ_provinces_Shandong_cities_Linyi = UsePN (mkPN "Linyi") ;
+  Countries_USA_provinces_Texas_cities_Irving = UsePN (mkPN "Irving") ;
+  Countries_CO_provinces_Cundinamarca_cities_Soacha = UsePN (mkPN "Soacha") ;
+  Countries_USA_provinces_Minnesota_cities_St_Paul = UsePN (mkPN "St. Paul") ;
+  Countries_IND_provinces_Maharashtra_cities_Aurangabad = UsePN (mkPN "Aurangabad") ;
+  Organizations_IDA = UsePN (mkPN "International Development Association") ;
+  Countries_SN_provinces_Kolda = UsePN (mkPN "Kolda") ;
+  Countries_BR_provinces_Rondonia_cities_PortoVelho = UsePN (mkPN "Porto Velho") ;
+  Organizations_ICRM = UsePN (mkPN "International Red Cross and Red Crescent Movement") ;
+  Rivers_Moldau = UsePN (mkPN "Moldau") ;
+  Countries_F_provinces_Limousin_cities_Limoges = UsePN (mkPN "Limoges") ;
+  Countries_IL_provinces_Central = UsePN (mkPN "Central") ;
+  Countries_TJ_provinces_Yunnan_cities_Gejiu = UsePN (mkPN "Gejiu") ;
+  Organizations_BSEC = UsePN (mkPN "Black Sea Economic Cooperation Zone") ;
+  Countries_BR_provinces_Ceara_cities_JuazeirodoNorte = UsePN (mkPN "Juazeiro do Norte") ;
+  Countries_RO_provinces_Galati = UsePN (mkPN "Galati") ;
+  Countries_PK_cities_Jhang = UsePN (mkPN "Jhang") ;
+  Countries_J_provinces_Aichi_cities_Nagoya = UsePN (mkPN "Nagoya") ;
+  Countries_TR_provinces_Aksaray = UsePN (mkPN "Aksaray") ;
+  Islands_Oesel = UsePN (mkPN "Oesel") ;
+  Countries_TJ_provinces_Jiangsu_cities_Huaiyin = UsePN (mkPN "Huaiyin") ;
+  Countries_IR_provinces_BoyerAhmadeKohkiluyeh = UsePN (mkPN "Boyer Ahmad e Kohkiluyeh") ;
+  Countries_R_provinces_Vologodskayaoblast_cities_Cherepovets = UsePN (mkPN "Cherepovets") ;
+  Countries_P_provinces_Coimbra = UsePN (mkPN "Coimbra") ;
+  Islands_Dagoe = UsePN (mkPN "Dagoe") ;
+  Countries_YV_provinces_Carabobo_cities_PuertoCabello = UsePN (mkPN "Puerto Cabello") ;
+  Countries_IND_provinces_Meghalaya = UsePN (mkPN "Meghalaya") ;
+  Countries_R_provinces_Rep_ofBashkortostan_cities_Sterlitamak = UsePN (mkPN "Sterlitamak") ;
+  Countries_N_provinces_Rogaland = UsePN (mkPN "Rogaland") ;
+  Islands_Mallorca = UsePN (mkPN "Mallorca") ;
+  Countries_USA_provinces_Kentucky_cities_Frankfort = UsePN (mkPN "Frankfort") ;
+  Countries_ET_provinces_ElWadielJadid = UsePN (mkPN "El Wadi el Jadid") ;
+  Countries_THA_provinces_Rayong = UsePN (mkPN "Rayong") ;
+  Countries_SF_provinces_Kuopio_cities_Kuopio = UsePN (mkPN "Kuopio") ;
+  Countries_R_provinces_Krasnoyarskiykray_cities_Krasnoyarsk = UsePN (mkPN "Krasnoyarsk") ;
+  Countries_IND_provinces_WestBengal_cities_Durgapur = UsePN (mkPN "Durgapur") ;
+  Countries_BR_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
+  Countries_ETH_cities_Debrezit = UsePN (mkPN "Debrezit") ;
+  Countries_MYA_provinces_Yangon = UsePN (mkPN "Yangon") ;
+  Countries_PL_provinces_Wloclawskie = UsePN (mkPN "Wloclawskie") ;
+  Countries_GB_provinces_Surrey_cities_Kingston = UsePN (mkPN "Kingston") ;
+  Countries_SF_provinces_Kymi_cities_Lappeenrenta = UsePN (mkPN "Lappeenrenta") ;
+  Countries_DK_cities_Esbjerg = UsePN (mkPN "Esbjerg") ;
+  Countries_CZ_provinces_Vychodocesky_cities_Pardubice = UsePN (mkPN "Pardubice") ;
+  Countries_UA_provinces_Ternopilska_cities_Ternopil = UsePN (mkPN "Ternopil") ;
+  Countries_P_provinces_Santarem = UsePN (mkPN "Santarem") ;
+  Countries_MAL_provinces_Kedah = UsePN (mkPN "Kedah") ;
+  Countries_RI_cities_PematangSiantar = UsePN (mkPN "Pematang Siantar") ;
+  Countries_PE_provinces_Cajamarca = UsePN (mkPN "Cajamarca") ;
+  Countries_TJ_provinces_NingxiaHuizu_cities_Yinchuan = UsePN (mkPN "Yinchuan") ;
+  Countries_J_provinces_Niigata_cities_Niigata = UsePN (mkPN "Niigata") ;
+  Countries_GB_provinces_Bedfordshire_cities_Bedford = UsePN (mkPN "Bedford") ;
+  Countries_BR_provinces_Para_cities_Belem = UsePN (mkPN "Belem") ;
+  Countries_NOK_cities_Sinuiju = UsePN (mkPN "Sinuiju") ;
+  Countries_H_provinces_Somogy_cities_Kaposvar = UsePN (mkPN "Kaposvar") ;
+  Organizations_IBRD = UsePN (mkPN "International Bank for Reconstruction and Development") ;
+  Countries_D_provinces_Thuringen_cities_Jena = UsePN (mkPN "Jena") ;
+  Countries_BR_cities_CabodeSantoAgostinho = UsePN (mkPN "Cabo de Santo Agostinho") ;
+  Islands_Hokkaido = UsePN (mkPN "Hokkaido") ;
+  Countries_VN_provinces_MekongRiverDelta = UsePN (mkPN "Mekong River Delta") ;
+  Rivers_Amazonas = UsePN (mkPN "Amazonas") ;
+  Countries_SGP_cities_Singapore = UsePN (mkPN "Singapore") ;
+  Countries_VN_provinces_Haiphong = UsePN (mkPN "Haiphong") ;
+  Countries_TJ_provinces_Yunnan_cities_Qujing = UsePN (mkPN "Qujing") ;
+  Countries_E_provinces_Andalusia_cities_Algeciras = UsePN (mkPN "Algeciras") ;
+  Countries_C_provinces_Matanzas_cities_Matanzas = UsePN (mkPN "Matanzas") ;
+  Lakes_Disappointment_Lake = UsePN (mkPN "Disappointment-Lake") ;
+  Countries_cid_cia_Tokelau = UsePN (mkPN "Tokelau") ;
+  Countries_H_provinces_BacsKiskun = UsePN (mkPN "Bacs Kiskun") ;
+  Countries_I_provinces_Umbria_cities_Terni = UsePN (mkPN "Terni") ;
+  Countries_IND_provinces_Delhi_cities_NewDelhi = UsePN (mkPN "New Delhi") ;
+  Countries_BR_provinces_Paraiba_cities_CampinaGrande = UsePN (mkPN "Campina Grande") ;
+  Countries_ES_provinces_LaUnion_cities_LaUnion = UsePN (mkPN "La Union") ;
+  Islands_Mauritius = UsePN (mkPN "Mauritius") ;
+  Countries_EAT_provinces_Kagera = UsePN (mkPN "Kagera") ;
+  Countries_CI_cities_Abidjan = UsePN (mkPN "Abidjan") ;
+  Countries_KAZ_provinces_Semey = UsePN (mkPN "Semey") ;
+  Countries_TR_provinces_Usak_cities_Usak = UsePN (mkPN "Usak") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Acheng = UsePN (mkPN "Acheng") ;
+  Countries_TJ_provinces_Jiangsu_cities_Danyang = UsePN (mkPN "Danyang") ;
+  Countries_PE_provinces_Cuzco_cities_Cuzco = UsePN (mkPN "Cuzco") ;
+  Countries_VN_provinces_RedRiverDelta = UsePN (mkPN "Red River Delta") ;
+  Countries_R_provinces_Tyumenskayaoblast_cities_Surgut = UsePN (mkPN "Surgut") ;
+  Countries_R_provinces_Vologodskayaoblast_cities_Vologda = UsePN (mkPN "Vologda") ;
+  Countries_E_provinces_CanaryIslands = UsePN (mkPN "Canary Islands") ;
+  Countries_BR_provinces_SaoPaulo_cities_Catanduva = UsePN (mkPN "Catanduva") ;
+  Countries_F_provinces_MidiPyrenees_cities_Toulouse = UsePN (mkPN "Toulouse") ;
+  Countries_H_provinces_Zala = UsePN (mkPN "Zala") ;
+  Countries_USA_provinces_Virginia_cities_NewportNews = UsePN (mkPN "Newport News") ;
+  Countries_F_provinces_FrancheComte = UsePN (mkPN "Franche Comte") ;
+  Countries_USA_provinces_Maine = UsePN (mkPN "Maine") ;
+  Countries_MYA_provinces_Magway = UsePN (mkPN "Magway") ;
+  Countries_TJ_provinces_Henan_cities_Kaifeng = UsePN (mkPN "Kaifeng") ;
+  Countries_D_provinces_Hessen_cities_Darmstadt = UsePN (mkPN "Darmstadt") ;
+  Countries_RA_provinces_LaRioja = UsePN (mkPN "La Rioja") ;
+  Countries_GB_provinces_Hampshire_cities_Southampton = UsePN (mkPN "Southampton") ;
+  Countries_BR_provinces_RiodeJaneiro = UsePN (mkPN "Rio de Janeiro") ;
+  Countries_IND_provinces_Maharashtra_cities_Kalyan = UsePN (mkPN "Kalyan") ;
+  Countries_SUD_provinces_BahralGhazal = UsePN (mkPN "Bahr al Ghazal") ;
+  Countries_BR_provinces_Pernambuco_cities_Camaragibe = UsePN (mkPN "Camaragibe") ;
+  Countries_GB_provinces_DumfriesandGalloway_cities_Dumfries = UsePN (mkPN "Dumfries") ;
+  Countries_R_provinces_Vladimirskayaoblast_cities_Murom = UsePN (mkPN "Murom") ;
+  Countries_BR_provinces_Parana_cities_Curitiba = UsePN (mkPN "Curitiba") ;
+  Countries_RSA_cities_Boksburg = UsePN (mkPN "Boksburg") ;
+  Countries_YV_provinces_DistritoFederal_cities_CatiaLaMar = UsePN (mkPN "Catia La Mar") ;
+  Countries_TR_provinces_Sakarya = UsePN (mkPN "Sakarya") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoBernardodoCampo = UsePN (mkPN "Sao Bernardo do Campo") ;
+  Countries_IR_provinces_Gilan_cities_Rasht = UsePN (mkPN "Rasht") ;
+  Countries_TJ_provinces_Hunan_cities_Zhuzhou = UsePN (mkPN "Zhuzhou") ;
+  Countries_UA_provinces_Zakarpatska = UsePN (mkPN "Zakarpatska") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Daqing = UsePN (mkPN "Daqing") ;
+  Countries_WAN_cities_IjebuOde = UsePN (mkPN "Ijebu Ode") ;
+  Countries_USA_provinces_Distr_Columbia_cities_Washington = UsePN (mkPN "Washington") ;
+  Countries_TR_provinces_Burdur_cities_Burdur = UsePN (mkPN "Burdur") ;
+  Countries_USA_provinces_Vermont_cities_Montpelier = UsePN (mkPN "Montpelier") ;
+  Rivers_Anuwimi = UsePN (mkPN "Anuwimi") ;
+  Countries_R_provinces_Tomskayaoblast = UsePN (mkPN "Tomskaya oblast") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoPaulo = UsePN (mkPN "Sao Paulo") ;
+  Countries_E_provinces_Navarre = UsePN (mkPN "Navarre") ;
+  Countries_GB_provinces_Caerphilly = UsePN (mkPN "Caerphilly") ;
+  Countries_CAM_provinces_Sudoueste = UsePN (mkPN "Sudoueste") ;
+  Countries_MYA_provinces_Mon = UsePN (mkPN "Mon") ;
+  Countries_IND_provinces_UttarPradesh_cities_Agra = UsePN (mkPN "Agra") ;
+  Countries_TJ_provinces_Sichuan_cities_Luzhou = UsePN (mkPN "Luzhou") ;
+  Countries_MEX_provinces_Sonora = UsePN (mkPN "Sonora") ;
+  Countries_VN_provinces_YenBai = UsePN (mkPN "Yen Bai") ;
+  Countries_ANG_provinces_Malanje_cities_Malanje = UsePN (mkPN "Malanje") ;
+  Countries_MOC_provinces_CaboDelgado_cities_Pemba = UsePN (mkPN "Pemba") ;
+  Countries_USA_provinces_Texas_cities_FortWorth = UsePN (mkPN "Fort Worth") ;
+  Countries_ET_provinces_ElBahrelAhmar = UsePN (mkPN "El Bahr el Ahmar") ;
+  Countries_GB_provinces_NorthYorkshire = UsePN (mkPN "North Yorkshire") ;
+  Countries_PL_provinces_Slupskie_cities_Slupsk = UsePN (mkPN "Slupsk") ;
+  Countries_USA_provinces_Pennsylvania_cities_Pittsburgh = UsePN (mkPN "Pittsburgh") ;
+  Islands_Dominica = UsePN (mkPN "Dominica") ;
+  Countries_R_provinces_Rep_ofDagestan_cities_Makhachkala = UsePN (mkPN "Makhachkala") ;
+  Lakes_F_D_R_Lake = UsePN (mkPN "F.D.R. Lake") ;
+  Countries_CAM_provinces_Sud = UsePN (mkPN "Sud") ;
+  Countries_RM_provinces_Antananarivo_cities_Antsirabe = UsePN (mkPN "Antsirabe") ;
+  Countries_RC_cities_Yungho = UsePN (mkPN "Yungho") ;
+  Countries_THA_provinces_NongBuaLamPhu = UsePN (mkPN "Nong Bua Lam Phu") ;
+  Seas_SeaofJapan = UsePN (mkPN "Sea of Japan") ;
+  Countries_PL_provinces_Sieradzkie = UsePN (mkPN "Sieradzkie") ;
+  Countries_GB_provinces_Hertfordshire_cities_SaintAlbans = UsePN (mkPN "Saint Albans") ;
+  Lakes_LagodiComo = UsePN (mkPN "Lago di Como") ;
+  Countries_RI_cities_Ambon = UsePN (mkPN "Ambon") ;
+  Islands_Zakinthos = UsePN (mkPN "Zakinthos") ;
+  Lakes_LagoMaggiore = UsePN (mkPN "Lago Maggiore") ;
+  Countries_RC_cities_Hsintien = UsePN (mkPN "Hsintien") ;
+  Countries_NL_provinces_Drenthe = UsePN (mkPN "Drenthe") ;
+  Countries_YV_provinces_Lara = UsePN (mkPN "Lara") ;
+  Rivers_Schilka = UsePN (mkPN "Schilka") ;
+  Mountains_Fuji_Yama = UsePN (mkPN "Fuji-Yama") ;
+  Countries_TJ_provinces_Sichuan = UsePN (mkPN "Sichuan") ;
+  Countries_CO_provinces_Antioquia_cities_Itagui = UsePN (mkPN "Itagui") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Shuangyashan = UsePN (mkPN "Shuangyashan") ;
+  Countries_CDN_provinces_Manitoba_cities_Winnipeg = UsePN (mkPN "Winnipeg") ;
+  Countries_F_provinces_ChampagneArdenne_cities_Reims = UsePN (mkPN "Reims") ;
+  Countries_UZB_provinces_Jizzakh = UsePN (mkPN "Jizzakh") ;
+  Countries_RSA_cities_KemptonPark = UsePN (mkPN "Kempton Park") ;
+  Countries_VN_cities_Hanoi = UsePN (mkPN "Hanoi") ;
+  Countries_THA_provinces_ChaiNat = UsePN (mkPN "Chai Nat") ;
+  Countries_TAD_provinces_Leninobod_cities_Khujand = UsePN (mkPN "Khujand") ;
+  Countries_RSA_cities_Roodepoort = UsePN (mkPN "Roodepoort") ;
+  Countries_R_provinces_Irkutskayaoblast_cities_UsolyeSibirskoye = UsePN (mkPN "Usolye Sibirskoye") ;
+  Countries_TR_provinces_Bilecik_cities_Bilecik = UsePN (mkPN "Bilecik") ;
+  Countries_MEX_provinces_Jalisco = UsePN (mkPN "Jalisco") ;
+  Countries_WAN_cities_Katsina = UsePN (mkPN "Katsina") ;
+  Countries_RO_provinces_Bihor = UsePN (mkPN "Bihor") ;
+  Countries_cid_cia_Norfolk_Island = UsePN (mkPN "Norfolk Island") ;
+  Countries_EAT_provinces_Morogoro = UsePN (mkPN "Morogoro") ;
+  Countries_ET_provinces_ElIskandariya_munic = UsePN (mkPN "El Iskandariya (munic.)") ;
+  Countries_TR_provinces_Amasya_cities_Amasya = UsePN (mkPN "Amasya") ;
+  Countries_IND_provinces_Maharashtra = UsePN (mkPN "Maharashtra") ;
+  Rivers_BlackIrtysch = UsePN (mkPN "Black Irtysch") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Shchyolkovo = UsePN (mkPN "Shchyolkovo") ;
+  Countries_RO_provinces_Braila = UsePN (mkPN "Braila") ;
+  Countries_PE_provinces_LaLibertad = UsePN (mkPN "La Libertad") ;
+  Organizations_UNDOF = UsePN (mkPN "United Nations Disengagement Observer Force") ;
+  Islands_Stromboli = UsePN (mkPN "Stromboli") ;
+  Countries_IR_provinces_SistaneBaluchestan = UsePN (mkPN "Sistan e Baluchestan") ;
+  Countries_DZ_cities_Skikda = UsePN (mkPN "Skikda") ;
+  Countries_E_provinces_Catalonia_cities_Barcelona = UsePN (mkPN "Barcelona") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_PassoFundo = UsePN (mkPN "Passo Fundo") ;
+  Countries_TJ_provinces_Liaoning_cities_Fuxin = UsePN (mkPN "Fuxin") ;
+  Countries_RC_provinces_Ilan_cities_Ilan = UsePN (mkPN "Ilan") ;
+  Countries_CO_provinces_SantanderdelSur_cities_Bucaramanga = UsePN (mkPN "Bucaramanga") ;
+  Countries_EAT_provinces_Kigoma_cities_KigomaUjiji = UsePN (mkPN "Kigoma Ujiji") ;
+  Countries_ROK_cities_Yosu = UsePN (mkPN "Yosu") ;
+  Countries_Z_provinces_Central_cities_Kabwe = UsePN (mkPN "Kabwe") ;
+  Countries_IL_provinces_North = UsePN (mkPN "North") ;
+  Countries_GB_provinces_WestSussex = UsePN (mkPN "West Sussex") ;
+  Countries_ANG_provinces_Bie = UsePN (mkPN "Bie") ;
+  Countries_GB_provinces_Powys_cities_LlandrindodWells = UsePN (mkPN "Llandrindod Wells") ;
+  Countries_GB_provinces_GreaterManchester_cities_Bolton = UsePN (mkPN "Bolton") ;
+  Countries_KAZ_provinces_Leninsk_munic = UsePN (mkPN "Leninsk (munic.)") ;
+  Countries_R_provinces_Orenburgskayaoblast_cities_Orsk = UsePN (mkPN "Orsk") ;
+  Countries_RC_provinces_Pingtung = UsePN (mkPN "Pingtung") ;
+  Countries_R_provinces_Voronezhskayaoblast = UsePN (mkPN "Voronezhskaya oblast") ;
+  Countries_E_provinces_Galicia_cities_Vigo = UsePN (mkPN "Vigo") ;
+  Countries_BR_provinces_SaoPaulo_cities_Guaruja = UsePN (mkPN "Guaruja") ;
+  Countries_USA_provinces_Wyoming_cities_Cheyenne = UsePN (mkPN "Cheyenne") ;
+  Countries_MAL_provinces_NegeriSembilan_cities_Seremban = UsePN (mkPN "Seremban") ;
+  Countries_S_provinces_Halland_cities_Halmstad = UsePN (mkPN "Halmstad") ;
+  Countries_TJ_provinces_Hebei_cities_Quzhou = UsePN (mkPN "Quzhou") ;
+  Countries_A_provinces_Burgenland = UsePN (mkPN "Burgenland") ;
+  Countries_TJ_provinces_Henan_cities_Hebi = UsePN (mkPN "Hebi") ;
+  Countries_RA_provinces_BuenosAires_cities_LaPlata = UsePN (mkPN "La Plata") ;
+  Countries_R_provinces_Chukotskyao = UsePN (mkPN "Chukotsky ao") ;
+  Countries_AUS_provinces_CocosIslands = UsePN (mkPN "Cocos Islands") ;
+  Rivers_Katun = UsePN (mkPN "Katun") ;
+  Countries_SY_cities_Victoria = UsePN (mkPN "Victoria") ;
+  Countries_I_provinces_Calabria_cities_ReggiodiCalabria = UsePN (mkPN "Reggio di Calabria") ;
+  Countries_I_provinces_Piemonte_cities_Novara = UsePN (mkPN "Novara") ;
+  Countries_HCA_provinces_Atlantida = UsePN (mkPN "Atlantida") ;
+  Countries_ETH_cities_Dese = UsePN (mkPN "Dese") ;
+  Lakes_LakeNipigon = UsePN (mkPN "Lake Nipigon") ;
+  Countries_EAT_provinces_Rukwa = UsePN (mkPN "Rukwa") ;
+  Countries_D_provinces_Bremen = UsePN (mkPN "Bremen") ;
+  Countries_B_provinces_EastFlanders_cities_Ghent = UsePN (mkPN "Ghent") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Gelsenkirchen = UsePN (mkPN "Gelsenkirchen") ;
+  Countries_GB_provinces_WestMidlands_cities_Birmingham = UsePN (mkPN "Birmingham") ;
+  Countries_ROK_cities_Chinju = UsePN (mkPN "Chinju") ;
+  Countries_TJ_provinces_Jiangsu_cities_Taizhou = UsePN (mkPN "Taizhou") ;
+  Lakes_LakeMeade = UsePN (mkPN "Lake Meade") ;
+  Countries_J_provinces_Miyazaki_cities_Miyazaki = UsePN (mkPN "Miyazaki") ;
+  Countries_USA_provinces_WestVirginia_cities_Charleston = UsePN (mkPN "Charleston") ;
+  Countries_TR_provinces_Aydin_cities_Aydin = UsePN (mkPN "Aydin") ;
+  Countries_J_provinces_Akita = UsePN (mkPN "Akita") ;
+  Countries_TR_provinces_Edirne = UsePN (mkPN "Edirne") ;
+  Countries_J_provinces_Yamaguchi_cities_Yamaguchi = UsePN (mkPN "Yamaguchi") ;
+  Countries_IND_provinces_Nagaland = UsePN (mkPN "Nagaland") ;
+  Lakes_OzeroAral = UsePN (mkPN "Ozero Aral") ;
+  Countries_ET_provinces_BurSaid_munic_cities_PortSaid = UsePN (mkPN "Port Said") ;
+  Countries_CH_provinces_ZG = UsePN (mkPN "ZG") ;
+  Countries_J_provinces_Mie = UsePN (mkPN "Mie") ;
+  Countries_TR_provinces_Bilecik = UsePN (mkPN "Bilecik") ;
+  Rivers_Chatanga = UsePN (mkPN "Chatanga") ;
+  Countries_TN_cities_Tunis = UsePN (mkPN "Tunis") ;
+  Countries_VN_provinces_TienGiang = UsePN (mkPN "Tien Giang") ;
+  Countries_R_provinces_KabardinoBalkarRep_ = UsePN (mkPN "Kabardino Balkar Rep.") ;
+  Mountains_MtMitchell = UsePN (mkPN "Mt Mitchell") ;
+  Countries_DZ_cities_Mostaganem = UsePN (mkPN "Mostaganem") ;
+  Countries_GB_provinces_Highland = UsePN (mkPN "Highland") ;
+  Countries_D_provinces_SachsenAnhalt_cities_Halle = UsePN (mkPN "Halle") ;
+  Countries_BR_provinces_SaoPaulo_cities_BragancaPaulista = UsePN (mkPN "Braganca Paulista") ;
+  Countries_PK_cities_Rawalpindi = UsePN (mkPN "Rawalpindi") ;
+  Countries_R_provinces_Chitinskayaoblast_cities_Chita = UsePN (mkPN "Chita") ;
+  Countries_MEX_provinces_Guanajuato_cities_Leon = UsePN (mkPN "Leon") ;
+  Countries_E_provinces_CastileandLeon_cities_Valladolid = UsePN (mkPN "Valladolid") ;
+  Countries_USA_provinces_California_cities_Sunnyvale = UsePN (mkPN "Sunnyvale") ;
+  Countries_IND_provinces_Gujarat_cities_Rajkot = UsePN (mkPN "Rajkot") ;
+  Countries_cid_cia_French_Polynesia = UsePN (mkPN "French Polynesia") ;
+  Countries_BI_cities_Bujumbura = UsePN (mkPN "Bujumbura") ;
+  Mountains_Snoehetta = UsePN (mkPN "Snoehetta") ;
+  Countries_USA_provinces_Oklahoma = UsePN (mkPN "Oklahoma") ;
+  Countries_TR_provinces_Burdur = UsePN (mkPN "Burdur") ;
+  Countries_ES_provinces_SanMiguel = UsePN (mkPN "San Miguel") ;
+  Countries_IND_provinces_UttarPradesh_cities_Kanpur = UsePN (mkPN "Kanpur") ;
+  Countries_GB_provinces_Hertfordshire = UsePN (mkPN "Hertfordshire") ;
+  Countries_MEX_provinces_Michoacan_cities_Uruapan = UsePN (mkPN "Uruapan") ;
+  Countries_IR_provinces_Bushehr_cities_BandareBushehr = UsePN (mkPN "Bandar e Bushehr") ;
+  Countries_BR_provinces_Pernambuco = UsePN (mkPN "Pernambuco") ;
+  Countries_PL_provinces_Wroclawskie = UsePN (mkPN "Wroclawskie") ;
+  Countries_EAT_provinces_Arusha_cities_Arusha = UsePN (mkPN "Arusha") ;
+  Countries_ET_provinces_BurSaid_munic_cities_BurSaid = UsePN (mkPN "Bur Said") ;
+  Countries_cid_cia_Cook_Islands = UsePN (mkPN "Cook Islands") ;
+  Countries_MEX_provinces_BajaCalifornia_cities_Mexicali = UsePN (mkPN "Mexicali") ;
+  Islands_Ikaria = UsePN (mkPN "Ikaria") ;
+  Countries_RA_provinces_SantaFe_cities_Rosario = UsePN (mkPN "Rosario") ;
+  Countries_WAN_cities_Kumo = UsePN (mkPN "Kumo") ;
+  Countries_RI_cities_Medan = UsePN (mkPN "Medan") ;
+  Countries_P_provinces_VianadoCastelo = UsePN (mkPN "Viana do Castelo") ;
+  Countries_B_provinces_WestFlanders_cities_Brugge = UsePN (mkPN "Brugge") ;
+  Countries_GB_provinces_Lincolnshire_cities_Lincoln = UsePN (mkPN "Lincoln") ;
+  Countries_F_provinces_BasseNormandie_cities_Caen = UsePN (mkPN "Caen") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Aksu = UsePN (mkPN "Aksu") ;
+  Countries_RI_cities_ParePare = UsePN (mkPN "Pare Pare") ;
+  Countries_USA_provinces_Pennsylvania_cities_Allentown = UsePN (mkPN "Allentown") ;
+  Countries_RO_provinces_SatuMare = UsePN (mkPN "Satu Mare") ;
+  Countries_TR_provinces_Antalya_cities_Antalya = UsePN (mkPN "Antalya") ;
+  Countries_MOC_provinces_Nampula = UsePN (mkPN "Nampula") ;
+  Countries_VN_provinces_GiaLai = UsePN (mkPN "Gia Lai") ;
+  Countries_ANG_provinces_Bengo = UsePN (mkPN "Bengo") ;
+  Countries_CO_provinces_Quindio_cities_Armenia = UsePN (mkPN "Armenia") ;
+  Countries_MYA_provinces_Kayin_cities_Hpaan = UsePN (mkPN "Hpa an") ;
+  Countries_RO_provinces_Covasha_cities_SfintuGheorghe = UsePN (mkPN "Sfintu Gheorghe") ;
+  Countries_S_provinces_GoteborgochBohus_cities_Goteborg = UsePN (mkPN "Goteborg") ;
+  Countries_ES_provinces_Ahuachapan_cities_Ahuachapan = UsePN (mkPN "Ahuachapan") ;
+  Countries_R_provinces_Rep_ofTatarstan_cities_Kazan = UsePN (mkPN "Kazan") ;
+  Countries_IND_provinces_WestBengal = UsePN (mkPN "West Bengal") ;
+  Countries_CH_provinces_BE_cities_Bern = UsePN (mkPN "Bern") ;
+  Countries_WAN_cities_Jos = UsePN (mkPN "Jos") ;
+  Countries_BR_provinces_Piaui_cities_Teresina = UsePN (mkPN "Teresina") ;
+  Countries_ES_provinces_SanVicente_cities_SanVicente = UsePN (mkPN "San Vicente") ;
+  Countries_R_provinces_SanktPeterburg_cities_SanktPeterburg = UsePN (mkPN "Sankt Peterburg") ;
+  Countries_H_provinces_Gyor_munic = UsePN (mkPN "Gyor (munic.)") ;
+  Countries_CO_provinces_Caqueta_cities_Florencia = UsePN (mkPN "Florencia") ;
+  Countries_Z_provinces_Eastern = UsePN (mkPN "Eastern") ;
+  Countries_IR_provinces_Tehran_cities_Tehran = UsePN (mkPN "Tehran") ;
+  Countries_IND_provinces_Haryana = UsePN (mkPN "Haryana") ;
+  Countries_TJ_provinces_Henan_cities_Shangqiu = UsePN (mkPN "Shangqiu") ;
+  Countries_PL_provinces_Kaliskie = UsePN (mkPN "Kaliskie") ;
+  Countries_CH_provinces_SG_cities_SanktGallen = UsePN (mkPN "Sankt Gallen") ;
+  Countries_TJ_provinces_Hebei_cities_Hengshui = UsePN (mkPN "Hengshui") ;
+  Countries_THA_provinces_PathumThani = UsePN (mkPN "Pathum Thani") ;
+  Countries_E_provinces_Estremadura = UsePN (mkPN "Estremadura") ;
+  Countries_H_provinces_BacsKiskun_cities_Kecskemet = UsePN (mkPN "Kecskemet") ;
+  Countries_TR_provinces_Batman = UsePN (mkPN "Batman") ;
+  Countries_BR_provinces_Sergipe_cities_Arapiraca = UsePN (mkPN "Arapiraca") ;
+  Countries_USA_provinces_Florida_cities_PembrokePines = UsePN (mkPN "Pembroke Pines") ;
+  Countries_R_provinces_Samarskayaoblast_cities_Tolyatti = UsePN (mkPN "Tolyatti") ;
+  Countries_PE_provinces_Apurimac = UsePN (mkPN "Apurimac") ;
+  Countries_MAL_provinces_Terengganu = UsePN (mkPN "Terengganu") ;
+  Countries_GB_provinces_TyneandWear = UsePN (mkPN "Tyne and Wear") ;
+  Countries_R_provinces_Permskayaoblast_cities_Solikamsk = UsePN (mkPN "Solikamsk") ;
+  Countries_S_provinces_Malmohus_cities_Helsingborg = UsePN (mkPN "Helsingborg") ;
+  Countries_NL_provinces_ZuidHolland_cities_sGravenhage = UsePN (mkPN "s Gravenhage") ;
+  Countries_GB_provinces_Hampshire_cities_Basingstoke = UsePN (mkPN "Basingstoke") ;
+  Countries_EAK_provinces_Western_cities_Kakamega = UsePN (mkPN "Kakamega") ;
+  Countries_BR_provinces_Parana_cities_Maringa = UsePN (mkPN "Maringa") ;
+  Countries_J_provinces_Osaka_cities_Osaka = UsePN (mkPN "Osaka") ;
+  Countries_F_provinces_Alsace = UsePN (mkPN "Alsace") ;
+  Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_KualaLumpur = UsePN (mkPN "Kuala Lumpur") ;
+  Countries_GB_provinces_Humberside_cities_KingstonuponHull = UsePN (mkPN "Kingston upon Hull") ;
+  Rivers_ColumbiaRiver = UsePN (mkPN "Columbia River") ;
+  Mountains_MtMcKinley = UsePN (mkPN "Mt McKinley") ;
+  Countries_E_provinces_Valencia = UsePN (mkPN "Valencia") ;
+  Countries_RA_provinces_Salta = UsePN (mkPN "Salta") ;
+  Countries_ET_provinces_ElQahira_munic = UsePN (mkPN "El Qahira (munic.)") ;
+  Countries_RA_provinces_SanJuan_cities_SanJuan = UsePN (mkPN "San Juan") ;
+  Countries_CDN_provinces_BritishColumbia_cities_Burnaby = UsePN (mkPN "Burnaby") ;
+  Countries_RSA_cities_Carletonville = UsePN (mkPN "Carletonville") ;
+  Islands_PrinceEdwardIsland = UsePN (mkPN "Prince Edward Island") ;
+  Countries_MEX_provinces_NuevoLeon_cities_Guadalupe = UsePN (mkPN "Guadalupe") ;
+  Countries_SN_provinces_Ziguinchor = UsePN (mkPN "Ziguinchor") ;
+  Countries_USA_provinces_Massachusetts = UsePN (mkPN "Massachusetts") ;
+  Countries_IR_provinces_Esfahan_cities_Khomeynishahr = UsePN (mkPN "Khomeynishahr") ;
+  Countries_GR_provinces_Ipiros = UsePN (mkPN "Ipiros") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Chifeng = UsePN (mkPN "Chifeng") ;
+  Countries_PL_provinces_Bydgoskie = UsePN (mkPN "Bydgoskie") ;
+  Countries_VN_provinces_NamHa = UsePN (mkPN "Nam Ha") ;
+  Countries_THA_provinces_NakhonSiThammarat = UsePN (mkPN "Nakhon Si Thammarat") ;
+  Islands_LittleCayman = UsePN (mkPN "Little Cayman") ;
+  Countries_CO_provinces_Antioquia_cities_Bello = UsePN (mkPN "Bello") ;
+  Countries_USA_provinces_Nebraska_cities_Lincoln = UsePN (mkPN "Lincoln") ;
+  Countries_GB_provinces_Derbyshire_cities_Chesterfield = UsePN (mkPN "Chesterfield") ;
+  Countries_NL_provinces_ZuidHolland = UsePN (mkPN "Zuid Holland") ;
+  Countries_IR_provinces_Khorasan_cities_Sabzevar = UsePN (mkPN "Sabzevar") ;
+  Countries_USA_provinces_Texas_cities_Abilene = UsePN (mkPN "Abilene") ;
+  Countries_PA_provinces_Chiriqui_cities_David = UsePN (mkPN "David") ;
+  Islands_Sachalin = UsePN (mkPN "Sachalin") ;
+  Countries_E_provinces_Andalusia_cities_Almeria = UsePN (mkPN "Almeria") ;
+  Countries_BDS_cities_Bridgetown = UsePN (mkPN "Bridgetown") ;
+  Countries_ANG_provinces_CuandoCubango_cities_Menongue = UsePN (mkPN "Menongue") ;
+  Countries_ROK_cities_Suwon = UsePN (mkPN "Suwon") ;
+  Countries_N_provinces_Nordland_cities_Narvik = UsePN (mkPN "Narvik") ;
+  Countries_TR_provinces_Van_cities_Van = UsePN (mkPN "Van") ;
+  Rivers_HudsonRiver = UsePN (mkPN "Hudson River") ;
+  Countries_TJ_provinces_Hunan_cities_Huaihua = UsePN (mkPN "Huaihua") ;
+  Countries_KAZ_provinces_SoltustikQazaqstan_cities_Petropavl = UsePN (mkPN "Petropavl") ;
+  Countries_RA_provinces_BuenosAires_cities_SanIsidro = UsePN (mkPN "San Isidro") ;
+  Countries_TJ_provinces_Guangdong_cities_Zhuhai = UsePN (mkPN "Zhuhai") ;
+  Countries_PK_cities_Sargodha = UsePN (mkPN "Sargodha") ;
+  Countries_KAZ_provinces_Taldyqorghan = UsePN (mkPN "Taldyqorghan") ;
+  Islands_Linosa = UsePN (mkPN "Linosa") ;
+  Countries_PK_cities_Jhelum = UsePN (mkPN "Jhelum") ;
+  Rivers_Kitakami = UsePN (mkPN "Kitakami") ;
+  Countries_N_provinces_SognogFjordane_cities_Hermannsverk = UsePN (mkPN "Hermannsverk") ;
+  Countries_RA_provinces_Chaco_cities_Resistencia = UsePN (mkPN "Resistencia") ;
+  Countries_PL_provinces_Krakowskie_cities_Krakow = UsePN (mkPN "Krakow") ;
+  Countries_S_provinces_Blekinge = UsePN (mkPN "Blekinge") ;
+  Rivers_Volga = UsePN (mkPN "Volga") ;
+  Rivers_Dalaelv = UsePN (mkPN "Dalaelv") ;
+  Countries_TR_provinces_Istanbul = UsePN (mkPN "Istanbul") ;
+  Countries_BD_cities_Khulna = UsePN (mkPN "Khulna") ;
+  Countries_BR_provinces_Goias = UsePN (mkPN "Goias") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_BarraMansa = UsePN (mkPN "Barra Mansa") ;
+  Countries_MYA_provinces_Mandalay = UsePN (mkPN "Mandalay") ;
+  Countries_TR_provinces_Zonguldak = UsePN (mkPN "Zonguldak") ;
+  Countries_H_provinces_Szolnok = UsePN (mkPN "Szolnok") ;
+  Countries_RO_provinces_Harghita_cities_MiercureaCiuc = UsePN (mkPN "Miercurea Ciuc") ;
+  Countries_I_provinces_Lazio = UsePN (mkPN "Lazio") ;
+  Countries_MOC_provinces_Maputo_munic = UsePN (mkPN "Maputo (munic.)") ;
+  Countries_USA_provinces_Missouri_cities_St_Louis = UsePN (mkPN "St. Louis") ;
+  Countries_Z_provinces_Eastern_cities_Chipata = UsePN (mkPN "Chipata") ;
+  Countries_GB_provinces_Kent_cities_Canterbury = UsePN (mkPN "Canterbury") ;
+  Mountains_MtRainier = UsePN (mkPN "Mt Rainier") ;
+  Countries_PL_provinces_Czestochowskie_cities_Czestochowa = UsePN (mkPN "Czestochowa") ;
+  Countries_E_provinces_BalearicIslands_cities_PalmadeMallorca = UsePN (mkPN "Palma de Mallorca") ;
+  Countries_GR_cities_Volos = UsePN (mkPN "Volos") ;
+  Countries_YV_provinces_Bolivar = UsePN (mkPN "Bolivar") ;
+  Countries_GB_provinces_NeathandPortTalbot_cities_PortTalbot = UsePN (mkPN "Port Talbot") ;
+  Countries_CO_provinces_Caqueta = UsePN (mkPN "Caqueta") ;
+  Countries_BR_provinces_SantaCatarina_cities_Florianopolis = UsePN (mkPN "Florianopolis") ;
+  Countries_AUS_provinces_Queensland = UsePN (mkPN "Queensland") ;
+  Countries_NL_provinces_NoordBrabant_cities_Eindhoven = UsePN (mkPN "Eindhoven") ;
+  Countries_PA_provinces_Veraguas = UsePN (mkPN "Veraguas") ;
+  Countries_RA_provinces_Chubut_cities_Rawson = UsePN (mkPN "Rawson") ;
+  Countries_IND_provinces_TamilNadu_cities_Coimbatore = UsePN (mkPN "Coimbatore") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Queimados = UsePN (mkPN "Queimados") ;
+  Countries_WAN_cities_Sokoto = UsePN (mkPN "Sokoto") ;
+  Countries_CH_provinces_SH = UsePN (mkPN "SH") ;
+  Countries_ES_provinces_Cabanas = UsePN (mkPN "Cabanas") ;
+  Countries_ANG_provinces_CuanzaSul_cities_Sumbe = UsePN (mkPN "Sumbe") ;
+  Countries_USA_provinces_Wisconsin = UsePN (mkPN "Wisconsin") ;
+  Countries_IR_provinces_Lorestan_cities_Khorramabad = UsePN (mkPN "Khorramabad") ;
+  Countries_BR_provinces_DistritoFederal_cities_Brasilia = UsePN (mkPN "Brasilia") ;
+  Countries_S_provinces_Jonkoping_cities_Jonkoping = UsePN (mkPN "Jonkoping") ;
+  Rivers_Jenissej = UsePN (mkPN "Jenissej") ;
+  Mountains_Fako = UsePN (mkPN "Fako") ;
+  Countries_VN_provinces_VinhPhu = UsePN (mkPN "Vinh Phu") ;
+  Islands_Alderney = UsePN (mkPN "Alderney") ;
+  Countries_USA_provinces_Tennessee_cities_NashvilleDavidson = UsePN (mkPN "Nashville Davidson") ;
+  Islands_Kreta = UsePN (mkPN "Kreta") ;
+  Countries_THA_provinces_NongKhai = UsePN (mkPN "Nong Khai") ;
+  Countries_MEX_provinces_Morelos_cities_Cuernavaca = UsePN (mkPN "Cuernavaca") ;
+  Rivers_Paraguay = UsePN (mkPN "Paraguay") ;
+  Lakes_LakeMichigan = UsePN (mkPN "Lake Michigan") ;
+  Countries_VN_provinces_LaoCai = UsePN (mkPN "Lao Cai") ;
+  Countries_BR_provinces_SaoPaulo_cities_Barueri = UsePN (mkPN "Barueri") ;
+  Countries_TJ_provinces_Qinghai_cities_Xining = UsePN (mkPN "Xining") ;
+  Countries_UA_provinces_Kharkivska = UsePN (mkPN "Kharkivska") ;
+  Countries_ET_provinces_SinaashShamaliyah = UsePN (mkPN "Sina ash Shamaliyah") ;
+  Countries_IR_provinces_Kordestan = UsePN (mkPN "Kordestan") ;
+  Countries_J_provinces_Kanagawa_cities_Yokohama = UsePN (mkPN "Yokohama") ;
+  Islands_Westray = UsePN (mkPN "Westray") ;
+  Seas_NorwegianSea = UsePN (mkPN "Norwegian Sea") ;
+  Countries_CR_provinces_Cartago = UsePN (mkPN "Cartago") ;
+  Countries_USA_provinces_Oregon_cities_Portland = UsePN (mkPN "Portland") ;
+  Countries_PL_provinces_Katowickie_cities_Sosnowiec = UsePN (mkPN "Sosnowiec") ;
+  Countries_CO_provinces_Huila_cities_Neiva = UsePN (mkPN "Neiva") ;
+  Countries_BR_provinces_Parana_cities_FozdoIguacu = UsePN (mkPN "Foz do Iguacu") ;
+  Countries_RA_provinces_EntreRios_cities_Parana = UsePN (mkPN "Parana") ;
+  Countries_PL_provinces_Suwalskie_cities_Suwalki = UsePN (mkPN "Suwalki") ;
+  Countries_USA_provinces_Florida_cities_FortLauderdale = UsePN (mkPN "Fort Lauderdale") ;
+  Countries_PY_cities_Asuncion = UsePN (mkPN "Asuncion") ;
+  Countries_TJ_provinces_Shaanxi_cities_Xi = UsePN (mkPN "Xi") ;
+  Rivers_Niger = UsePN (mkPN "Niger") ;
+  Countries_TJ_provinces_Beijing_munic_cities_Beijing = UsePN (mkPN "Beijing") ;
+  Countries_PE_provinces_Apurimac_cities_Abancay = UsePN (mkPN "Abancay") ;
+  Countries_CDN_provinces_NovaScotia_cities_Halifax = UsePN (mkPN "Halifax") ;
+  Countries_IR_provinces_Tehran_cities_Qazvin = UsePN (mkPN "Qazvin") ;
+  Countries_CDN_provinces_Newfoundland_cities_SaintJohns = UsePN (mkPN "Saint Johns") ;
+  Countries_E_provinces_Andalusia_cities_Malaga = UsePN (mkPN "Malaga") ;
+  Countries_SN_provinces_Fatick_cities_Fatick = UsePN (mkPN "Fatick") ;
+  Islands_SaoMiguel = UsePN (mkPN "Sao Miguel") ;
+  Countries_R_provinces_Rep_ofBuryatiya_cities_UlanUde = UsePN (mkPN "Ulan Ude") ;
+  Countries_EAT_provinces_Iringa = UsePN (mkPN "Iringa") ;
+  Countries_AUS_provinces_NorthernTerritory_cities_Darwin = UsePN (mkPN "Darwin") ;
+  Islands_Ascension = UsePN (mkPN "Ascension") ;
+  Countries_MAL_provinces_Perak_cities_Taiping = UsePN (mkPN "Taiping") ;
+  Countries_BR_provinces_Parana_cities_Paranagua = UsePN (mkPN "Paranagua") ;
+  Mountains_Oeraefajoekull = UsePN (mkPN "Oeraefajoekull") ;
+  Countries_CDN_provinces_Ontario_cities_Kitchener = UsePN (mkPN "Kitchener") ;
+  Countries_CO_provinces_SantanderdelSur_cities_Barrancabermeja = UsePN (mkPN "Barrancabermeja") ;
+  Islands_Barbados = UsePN (mkPN "Barbados") ;
+  Countries_IND_provinces_TamilNadu_cities_Madurai = UsePN (mkPN "Madurai") ;
+  Countries_BR_provinces_Bahia_cities_Alagoinhas = UsePN (mkPN "Alagoinhas") ;
+  Countries_USA_provinces_Iowa = UsePN (mkPN "Iowa") ;
+  Countries_TJ_provinces_Henan_cities_Zhumadian = UsePN (mkPN "Zhumadian") ;
+  Countries_UZB_provinces_Toshkent_cities_Chirchiq = UsePN (mkPN "Chirchiq") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoCaetanodoSul = UsePN (mkPN "Sao Caetano do Sul") ;
+  Countries_D_provinces_Sachsen = UsePN (mkPN "Sachsen") ;
+  Countries_ROK_cities_Ulsan = UsePN (mkPN "Ulsan") ;
+  Countries_R_provinces_Rep_ofTatarstan_cities_NaberezhnyeChelny = UsePN (mkPN "Naberezhnye Chelny") ;
+  Countries_TM_provinces_Dashhowuz = UsePN (mkPN "Dashhowuz") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Jiamusi = UsePN (mkPN "Jiamusi") ;
+  Countries_BR_provinces_Parana_cities_Cascavel = UsePN (mkPN "Cascavel") ;
+  Countries_IND_provinces_Punjab_cities_Jalandhar = UsePN (mkPN "Jalandhar") ;
+  Countries_MYA_provinces_Kayah = UsePN (mkPN "Kayah") ;
+  Rivers_Gambia = UsePN (mkPN "Gambia") ;
+  Countries_SUD_provinces_Darfur_cities_alFasher = UsePN (mkPN "al Fasher") ;
+  Countries_TR_provinces_Kars = UsePN (mkPN "Kars") ;
+  Countries_RI_cities_Yogyakarta = UsePN (mkPN "Yogyakarta") ;
+  Countries_ET_provinces_BeniSuef = UsePN (mkPN "Beni Suef") ;
+  Countries_RSA_provinces_NorthWest = UsePN (mkPN "North West") ;
+  Countries_UAE_provinces_AshShariqah = UsePN (mkPN "Ash Shariqah") ;
+  Countries_UZB_provinces_Qoraqalpoghiston_cities_Nukus = UsePN (mkPN "Nukus") ;
+  Countries_I_provinces_Calabria_cities_Cosenza = UsePN (mkPN "Cosenza") ;
+  Countries_R_provinces_Kurganskayaoblast = UsePN (mkPN "Kurganskaya oblast") ;
+  Countries_F_provinces_ChampagneArdenne_cities_ChalonssurMarne = UsePN (mkPN "Chalons sur Marne") ;
+  Islands_Khark = UsePN (mkPN "Khark") ;
+  Countries_cid_cia_Mayotte_cities_Mamoutzou = UsePN (mkPN "Mamoutzou") ;
+  Organizations_G_9 = UsePN (mkPN "Group of 9") ;
+  Countries_HCA_provinces_FranciscoMorazan_cities_Siguatepeque = UsePN (mkPN "Siguatepeque") ;
+  Islands_BishopRock = UsePN (mkPN "Bishop Rock") ;
+  Countries_PE_provinces_Pasco_cities_CerrodePasco = UsePN (mkPN "Cerro de Pasco") ;
+  Rivers_Amudarja = UsePN (mkPN "Amudarja") ;
+  Countries_TJ_provinces_Guangdong_cities_Dongguan = UsePN (mkPN "Dongguan") ;
+  Countries_GB_provinces_GreaterManchester = UsePN (mkPN "Greater Manchester") ;
+  Countries_USA_provinces_Minnesota = UsePN (mkPN "Minnesota") ;
+  Countries_AUS_provinces_SouthAustralia = UsePN (mkPN "South Australia") ;
+  Countries_USA_provinces_Texas_cities_Houston = UsePN (mkPN "Houston") ;
+  Countries_YV_provinces_Guarico_cities_SanJuan = UsePN (mkPN "San Juan") ;
+  Countries_CO_provinces_Guaviare_cities_SanJosedelGuaviare = UsePN (mkPN "San Jose del Guaviare") ;
+  Countries_GB_provinces_Berkshire = UsePN (mkPN "Berkshire") ;
+  Countries_cid_cia_Guadeloupe = UsePN (mkPN "Guadeloupe") ;
+  Countries_D_provinces_Niedersachsen_cities_Wolfsburg = UsePN (mkPN "Wolfsburg") ;
+  Countries_GB_provinces_EastSussex_cities_Lewes = UsePN (mkPN "Lewes") ;
+  Countries_MEX_provinces_Durango_cities_Durango = UsePN (mkPN "Durango") ;
+  Countries_GB_provinces_Cornwall_IslesofScilly_cities_Truro = UsePN (mkPN "Truro") ;
+  Countries_CH_provinces_SO = UsePN (mkPN "SO") ;
+  Countries_TJ_provinces_Heilongjiang_cities_Suihua = UsePN (mkPN "Suihua") ;
+  Countries_KAZ_provinces_ShyghysQazaqstan_cities_Oskemen = UsePN (mkPN "Oskemen") ;
+  Countries_R_provinces_Rep_ofTatarstan_cities_Zelenodolysk = UsePN (mkPN "Zelenodolysk") ;
+  Countries_N_provinces_Vestfold_cities_Toensberg = UsePN (mkPN "Toensberg") ;
+  Organizations_OECD = UsePN (mkPN "Organization for Economic Cooperation and Development") ;
+  Countries_I_provinces_Calabria_cities_Messina = UsePN (mkPN "Messina") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Pforzheim = UsePN (mkPN "Pforzheim") ;
+  Rivers_Lomami = UsePN (mkPN "Lomami") ;
+  Countries_CH_provinces_TG = UsePN (mkPN "TG") ;
+  Countries_RSA_provinces_KwazuluNatal_cities_Durban = UsePN (mkPN "Durban") ;
+  Mountains_Kilimanjaro = UsePN (mkPN "Kilimanjaro") ;
+  Countries_SYR_cities_Damascus = UsePN (mkPN "Damascus") ;
+  Countries_USA_provinces_NorthCarolina_cities_WinstonSalem = UsePN (mkPN "Winston Salem") ;
+  Countries_GUY_cities_Georgetown = UsePN (mkPN "Georgetown") ;
+  Countries_F_provinces_RhoneAlpes_cities_SaintEtienne = UsePN (mkPN "Saint Etienne") ;
+  Countries_R_provinces_Saratovskayaoblast = UsePN (mkPN "Saratovskaya oblast") ;
+  Countries_KAZ_provinces_Qaraghandy = UsePN (mkPN "Qaraghandy") ;
+  Countries_IND_provinces_Meghalaya_cities_Shillong = UsePN (mkPN "Shillong") ;
+  Countries_MA_cities_Oujda = UsePN (mkPN "Oujda") ;
+  Countries_MA_cities_Safi = UsePN (mkPN "Safi") ;
+  Countries_EAK_provinces_Nairobi_cities_Nairobi = UsePN (mkPN "Nairobi") ;
+  Countries_IND_provinces_Bihar_cities_Jamshedpur = UsePN (mkPN "Jamshedpur") ;
+  Countries_BR_cities_NossaSenhoradoSocorro = UsePN (mkPN "Nossa Senhora do Socorro") ;
+  Countries_VN_provinces_QuangNinh = UsePN (mkPN "Quang Ninh") ;
+  Countries_N_provinces_Telemark = UsePN (mkPN "Telemark") ;
+  Countries_TM_provinces_Dashhowuz_cities_Tashauz = UsePN (mkPN "Tashauz") ;
+  Countries_TJ_provinces_Anhui_cities_Luan = UsePN (mkPN "Luan") ;
+  Countries_YV_provinces_Sucre_cities_Cumana = UsePN (mkPN "Cumana") ;
+  Countries_USA_provinces_Massachusetts_cities_Worcester = UsePN (mkPN "Worcester") ;
+  Organizations_C = UsePN (mkPN "Commonwealth") ;
+  Countries_RO_provinces_Bucuresti = UsePN (mkPN "Bucuresti") ;
+  Countries_UAE_provinces_AbuDhabi = UsePN (mkPN "Abu Dhabi") ;
+  Countries_THA_provinces_KhonKaen = UsePN (mkPN "Khon Kaen") ;
+  Countries_USA_provinces_NewMexico_cities_SantaFe = UsePN (mkPN "Santa Fe") ;
+  Countries_BOL_cities_Sucre = UsePN (mkPN "Sucre") ;
+  Countries_ZRE_provinces_HautZaire_cities_Kisangani = UsePN (mkPN "Kisangani") ;
+  Countries_GR_provinces_NotionAiyaion = UsePN (mkPN "Notion Aiyaion") ;
+  Countries_WAN_cities_AdoEkiti = UsePN (mkPN "Ado Ekiti") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Hamm = UsePN (mkPN "Hamm") ;
+  Countries_GB_provinces_NorthernIreland = UsePN (mkPN "Northern Ireland") ;
+  Countries_IND_provinces_Delhi = UsePN (mkPN "Delhi") ;
+  Countries_CDN_provinces_NorthwestTerritories_cities_Yellowknife = UsePN (mkPN "Yellowknife") ;
+  Countries_TJ_provinces_Shanxi = UsePN (mkPN "Shanxi") ;
+  Countries_CO_provinces_Magdalena = UsePN (mkPN "Magdalena") ;
+  Countries_CO_provinces_Antioquia = UsePN (mkPN "Antioquia") ;
+  Countries_TJ_provinces_Guizhou = UsePN (mkPN "Guizhou") ;
+  Organizations_BIS = UsePN (mkPN "Bank for International Settlements") ;
+  Countries_D_provinces_RheinlandPfalz = UsePN (mkPN "Rheinland Pfalz") ;
+  Countries_P_provinces_Beja = UsePN (mkPN "Beja") ;
+  Countries_PL_provinces_Kieleckie_cities_Kielce = UsePN (mkPN "Kielce") ;
+  Countries_PK_cities_Chiniot = UsePN (mkPN "Chiniot") ;
+  Countries_ROK_cities_Songnam = UsePN (mkPN "Songnam") ;
+  Organizations_IOC = UsePN (mkPN "International Olympic Committee") ;
+  Countries_TJ_provinces_Zhejiang = UsePN (mkPN "Zhejiang") ;
+  Mountains_MtRobson = UsePN (mkPN "Mt Robson") ;
+  Countries_R_provinces_Stavropolskykray_cities_Stavropol = UsePN (mkPN "Stavropol") ;
+  Countries_GB_provinces_Cardiff_cities_Cardiff = UsePN (mkPN "Cardiff") ;
+  Countries_C_provinces_Cienfuegos_cities_Cienfuegos = UsePN (mkPN "Cienfuegos") ;
+  Countries_TJ_provinces_Shandong_cities_Jining = UsePN (mkPN "Jining") ;
+  Countries_J_provinces_Tochigi = UsePN (mkPN "Tochigi") ;
+  Countries_ET_provinces_KafrelSheikh_cities_KafrelSheikh = UsePN (mkPN "Kafr el Sheikh") ;
+  Countries_E_provinces_BasqueCountry_cities_Donostia = UsePN (mkPN "Donostia") ;
+  Countries_UA_provinces_Sumska = UsePN (mkPN "Sumska") ;
+  Countries_HCA_provinces_GraciasaDios_cities_PuertoLempira = UsePN (mkPN "Puerto Lempira") ;
+  Organizations_OAS = UsePN (mkPN "Organization of American States") ;
+  Countries_J_provinces_Miyagi_cities_Sendai = UsePN (mkPN "Sendai") ;
+  Countries_R_provinces_Krasnodarskykray_cities_Novorossiysk = UsePN (mkPN "Novorossiysk") ;
+  Countries_HCA_provinces_LaPaz = UsePN (mkPN "La Paz") ;
+  Countries_R_provinces_Vologodskayaoblast = UsePN (mkPN "Vologodskaya oblast") ;
+  Countries_PE_provinces_Lima_cities_Lima = UsePN (mkPN "Lima") ;
+  Countries_GB_provinces_Cambridgeshire_cities_Peterborough = UsePN (mkPN "Peterborough") ;
+  Countries_IR_provinces_Mazandaran_cities_Amol = UsePN (mkPN "Amol") ;
+  Countries_BR_provinces_SaoPaulo_cities_SaoJosedoRioPreto = UsePN (mkPN "Sao Jose do Rio Preto") ;
+  Countries_BR_provinces_Sergipe = UsePN (mkPN "Sergipe") ;
+  Mountains_PikRevoluzija = UsePN (mkPN "Pik Revoluzija") ;
+  Islands_Lefkas = UsePN (mkPN "Lefkas") ;
+  Countries_RO_provinces_Suceava_cities_Suceava = UsePN (mkPN "Suceava") ;
+  Countries_RA_provinces_BuenosAires_cities_LomasdeZamoras = UsePN (mkPN "Lomas de Zamoras") ;
+  Countries_GB_provinces_Newport_cities_Newport = UsePN (mkPN "Newport") ;
+  Countries_THA_provinces_NorthernRegion = UsePN (mkPN "Northern Region") ;
+  Countries_P_provinces_Porto_cities_VilaNovadeGaia = UsePN (mkPN "Vila Nova de Gaia") ;
+  Countries_RC_provinces_Taichung_munic_cities_Taichung = UsePN (mkPN "Taichung") ;
+  Countries_GB_provinces_Essex_cities_Braintree = UsePN (mkPN "Braintree") ;
+  Countries_CDN_cities_Surrey = UsePN (mkPN "Surrey") ;
+  Islands_Hispaniola = UsePN (mkPN "Hispaniola") ;
+  Countries_N_provinces_Buskerud_cities_Drammen = UsePN (mkPN "Drammen") ;
+  Countries_GB_provinces_GreaterLondon = UsePN (mkPN "Greater London") ;
+  Countries_Z_provinces_Copperbelt_cities_Luanshya = UsePN (mkPN "Luanshya") ;
+  Countries_TJ_provinces_NeiMonggol_cities_Baotou = UsePN (mkPN "Baotou") ;
+  Lakes_LakeAssale = UsePN (mkPN "Lake Assale") ;
+  Countries_VN_provinces_NinhBinh = UsePN (mkPN "Ninh Binh") ;
+  Countries_cid_cia_American_Samoa = UsePN (mkPN "American Samoa") ;
+  Countries_TR_provinces_Sirnak = UsePN (mkPN "Sirnak") ;
+  Countries_C_provinces_Camaguey_cities_Camaguey = UsePN (mkPN "Camaguey") ;
+  Countries_MEX_provinces_Queretaro_cities_Queretaro = UsePN (mkPN "Queretaro") ;
+  Countries_PL_provinces_Piotrkowskie = UsePN (mkPN "Piotrkowskie") ;
+  Countries_USA_provinces_Florida_cities_St_Petersburg = UsePN (mkPN "St. Petersburg") ;
+  Countries_PE_provinces_Puno = UsePN (mkPN "Puno") ;
+  Countries_UA_provinces_IvanoFrankivska = UsePN (mkPN "Ivano Frankivska") ;
+  Countries_THA_provinces_Yala = UsePN (mkPN "Yala") ;
+  Countries_MYA_provinces_Sagaing_cities_Monywa = UsePN (mkPN "Monywa") ;
+  Countries_ET_provinces_ElSuweiz_munic_cities_Suez = UsePN (mkPN "Suez") ;
+  Countries_J_provinces_Okinawa = UsePN (mkPN "Okinawa") ;
+  Countries_UA_provinces_Dnipropetrovska_cities_KryvyyRih = UsePN (mkPN "Kryvyy Rih") ;
+  Countries_PK_cities_Bahawalpur = UsePN (mkPN "Bahawalpur") ;
+  Countries_EC_cities_Quito = UsePN (mkPN "Quito") ;
+  Countries_cid_cia_Martinique = UsePN (mkPN "Martinique") ;
+  Countries_TJ_provinces_Jilin_cities_Longjing = UsePN (mkPN "Longjing") ;
+  Countries_CDN_provinces_Quebec_cities_Longueuil = UsePN (mkPN "Longueuil") ;
+  Countries_GB_provinces_Oxfordshire_cities_Oxford = UsePN (mkPN "Oxford") ;
+  Lakes_Issyk_Kul = UsePN (mkPN "Issyk-Kul") ;
+  Countries_BR_provinces_MinasGerais_cities_PocosdeCaldas = UsePN (mkPN "Pocos de Caldas") ;
+  Countries_GB_provinces_Wrexham = UsePN (mkPN "Wrexham") ;
+  Lakes_GreatSlaveLake = UsePN (mkPN "Great Slave Lake") ;
+  Islands_Mohilla = UsePN (mkPN "Mohilla") ;
+  Countries_PE_provinces_Piura = UsePN (mkPN "Piura") ;
+  Countries_GB_provinces_Wrexham_cities_Wrexham = UsePN (mkPN "Wrexham") ;
+  Countries_THA_provinces_Ranong = UsePN (mkPN "Ranong") ;
+  Countries_KAZ_provinces_Kokchetau = UsePN (mkPN "Kokchetau") ;
+  Countries_C_provinces_Cienfuegos = UsePN (mkPN "Cienfuegos") ;
+  Countries_PE_provinces_Callao = UsePN (mkPN "Callao") ;
+  Countries_PE_provinces_Lambayeque_cities_Chiclayo = UsePN (mkPN "Chiclayo") ;
+  Countries_UA_provinces_Poltavska_cities_Poltava = UsePN (mkPN "Poltava") ;
+  Rivers_Nile = UsePN (mkPN "Nile") ;
+  Countries_IND_provinces_UttarPradesh_cities_Varanasi = UsePN (mkPN "Varanasi") ;
+  Countries_TR_provinces_Siirt_cities_Siirt = UsePN (mkPN "Siirt") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Serpukhov = UsePN (mkPN "Serpukhov") ;
+  Countries_DK_cities_Aalborg = UsePN (mkPN "Aalborg") ;
+  Countries_PL_provinces_Bialskopodlaskie = UsePN (mkPN "Bialskopodlaskie") ;
+  Countries_PK_cities_LahoreCantonment = UsePN (mkPN "Lahore Cantonment") ;
+  Countries_S_provinces_Kopparberg = UsePN (mkPN "Kopparberg") ;
+  Countries_RSA_cities_Germiston = UsePN (mkPN "Germiston") ;
+  Countries_MAL_cities_SeloyangBaru = UsePN (mkPN "Seloyang Baru") ;
+  Countries_USA_provinces_Indiana_cities_Evansville = UsePN (mkPN "Evansville") ;
+  Countries_ANG_provinces_Benguela_cities_Benguela = UsePN (mkPN "Benguela") ;
+  Seas_NorthSea = UsePN (mkPN "North Sea") ;
+  Countries_UAE_provinces_UmmalQaywayn = UsePN (mkPN "Umm al Qaywayn") ;
+  Countries_PL_provinces_Walbrzyskie = UsePN (mkPN "Walbrzyskie") ;
+  Countries_BR_provinces_Bahia_cities_Camacari = UsePN (mkPN "Camacari") ;
+  Countries_BR_cities_SapucaiadoSul = UsePN (mkPN "Sapucaia do Sul") ;
+  Countries_CO_provinces_Meta = UsePN (mkPN "Meta") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Heidelberg = UsePN (mkPN "Heidelberg") ;
+  Countries_ETH_cities_Jima = UsePN (mkPN "Jima") ;
+  Organizations_IFAD = UsePN (mkPN "International Fund for Agricultural Development") ;
+  Countries_H_provinces_Tolna_cities_Szekszard = UsePN (mkPN "Szekszard") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_OrekhovoZuyevo = UsePN (mkPN "Orekhovo Zuyevo") ;
+  Countries_cid_cia_Saint_Pierre_and_Miquelon_cities_Saint_Pierre = UsePN (mkPN "Saint-Pierre") ;
+  Countries_GB_provinces_Gloucestershire_cities_Cheltenham = UsePN (mkPN "Cheltenham") ;
+  Mountains_DjebelAures = UsePN (mkPN "Djebel Aures") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_Bage = UsePN (mkPN "Bage") ;
+  Countries_CO_provinces_SantaFedeBogota_DC_cities_Bogota = UsePN (mkPN "Bogota") ;
+  Countries_PE_provinces_Junin = UsePN (mkPN "Junin") ;
+  Countries_RO_provinces_BistritaNasaud_cities_Bistrita = UsePN (mkPN "Bistrita") ;
+  Countries_BR_provinces_Amapa_cities_Macapa = UsePN (mkPN "Macapa") ;
+  Countries_R_provinces_Kaliningradskayaoblast_cities_Kaliningrad = UsePN (mkPN "Kaliningrad") ;
+  Countries_J_provinces_Gumma = UsePN (mkPN "Gumma") ;
+  Countries_TJ_provinces_Hubei_cities_Honghu = UsePN (mkPN "Honghu") ;
+  Countries_RC_provinces_Taitung = UsePN (mkPN "Taitung") ;
+  Countries_RC_provinces_Nantou = UsePN (mkPN "Nantou") ;
+  Countries_USA_provinces_Pennsylvania_cities_Harrisburg = UsePN (mkPN "Harrisburg") ;
+  Countries_cid_cia_Glorioso_Islands = UsePN (mkPN "Glorioso Islands") ;
+  Countries_UA_provinces_Zhytomyrska_cities_Zhytomyr = UsePN (mkPN "Zhytomyr") ;
+  Countries_GB_provinces_Suffolk_cities_Ipswich = UsePN (mkPN "Ipswich") ;
+  Countries_I_provinces_Campania_cities_Napoli = UsePN (mkPN "Napoli") ;
+  Countries_KAZ_provinces_Torghay_cities_Arqalyq = UsePN (mkPN "Arqalyq") ;
+  Countries_ANG_provinces_Huila = UsePN (mkPN "Huila") ;
+  Countries_E_provinces_Madrid_cities_Alcorcon = UsePN (mkPN "Alcorcon") ;
+  Countries_I_provinces_Campania_cities_Salerno = UsePN (mkPN "Salerno") ;
+  Countries_PK_cities_Sukkur = UsePN (mkPN "Sukkur") ;
+  Countries_CAM_provinces_Est = UsePN (mkPN "Est") ;
+  Countries_IND_provinces_Delhi_cities_Ghaziabad = UsePN (mkPN "Ghaziabad") ;
+  Countries_ROK_cities_Taejon = UsePN (mkPN "Taejon") ;
+  Countries_TJ_provinces_Guizhou_cities_Kaili = UsePN (mkPN "Kaili") ;
+  Countries_MOC_provinces_CaboDelgado = UsePN (mkPN "Cabo Delgado") ;
+  Countries_BR_provinces_MinasGerais_cities_PatosdeMinas = UsePN (mkPN "Patos de Minas") ;
+  Countries_ET_provinces_Matruh_cities_MarsaMatruh = UsePN (mkPN "Marsa Matruh") ;
+  Countries_RO_provinces_Mures_cities_TirguMures = UsePN (mkPN "Tirgu Mures") ;
+  Countries_TJ_provinces_Henan_cities_Xuchang = UsePN (mkPN "Xuchang") ;
+  Countries_Z_provinces_Lusaka = UsePN (mkPN "Lusaka") ;
+  Countries_TR_provinces_Van = UsePN (mkPN "Van") ;
+  Countries_THA_provinces_SamutSakhon = UsePN (mkPN "Samut Sakhon") ;
+  Countries_MEX_provinces_Tamaulipas_cities_NuevoLaredo = UsePN (mkPN "Nuevo Laredo") ;
+  Deserts_GrandSandDesert = UsePN (mkPN "Grand Sand Desert") ;
+  Countries_IND_provinces_Assam_cities_Dispur = UsePN (mkPN "Dispur") ;
+  Rivers_Bomu = UsePN (mkPN "Bomu") ;
+  Countries_EAT_provinces_Mtwara = UsePN (mkPN "Mtwara") ;
+  Countries_R_provinces_Sverdlovskayaoblast_cities_NizhniyTagil = UsePN (mkPN "Nizhniy Tagil") ;
+  Countries_THA_provinces_Phitsanulok = UsePN (mkPN "Phitsanulok") ;
+  Countries_RA_provinces_EntreRios = UsePN (mkPN "Entre Rios") ;
+  Countries_USA_provinces_SouthDakota = UsePN (mkPN "South Dakota") ;
+  Rivers_Dnepr = UsePN (mkPN "Dnepr") ;
+  Countries_WSA_cities_ElAlaiun = UsePN (mkPN "El Alaiun") ;
+  Countries_K_cities_PhnomPenh = UsePN (mkPN "Phnom Penh") ;
+  Countries_PL_provinces_Jeleniogorskie = UsePN (mkPN "Jeleniogorskie") ;
+  Countries_R_provinces_Kemerovskayaoblast_cities_Kiselyovsk = UsePN (mkPN "Kiselyovsk") ;
+  Countries_I_provinces_Calabria_cities_Catanzaro = UsePN (mkPN "Catanzaro") ;
+  Countries_TJ_provinces_Fujian_cities_Yongan = UsePN (mkPN "Yongan") ;
+  Countries_IND_provinces_Maharashtra_cities_Thane = UsePN (mkPN "Thane") ;
+  Countries_PL_provinces_Siedleckie_cities_Siedlce = UsePN (mkPN "Siedlce") ;
+  Countries_CO_provinces_Tolima = UsePN (mkPN "Tolima") ;
+  Countries_IND_provinces_Gujarat_cities_Vadodara = UsePN (mkPN "Vadodara") ;
+  Countries_UA_provinces_Zhytomyrska = UsePN (mkPN "Zhytomyrska") ;
+  Countries_GB_provinces_Carmarthenshire = UsePN (mkPN "Carmarthenshire") ;
+  Countries_TJ_provinces_Sichuan_cities_Deyang = UsePN (mkPN "Deyang") ;
+  Countries_D_provinces_BadenWurttemberg_cities_Ulm = UsePN (mkPN "Ulm") ;
+  Countries_IND_provinces_Rajasthan_cities_Jodhpur = UsePN (mkPN "Jodhpur") ;
+  Countries_TR_provinces_Gumushane_cities_Gumushane = UsePN (mkPN "Gumushane") ;
+  Countries_EAK_provinces_Coast = UsePN (mkPN "Coast") ;
+  Countries_TJ_provinces_Shanghai_munic = UsePN (mkPN "Shanghai (munic.)") ;
+  Countries_PL_provinces_Lubelskie_cities_Lublin = UsePN (mkPN "Lublin") ;
+  Countries_BR_provinces_Maranhao_cities_Timon = UsePN (mkPN "Timon") ;
+  Countries_CDN_provinces_BritishColumbia = UsePN (mkPN "British Columbia") ;
+  Countries_RA_provinces_Mendoza_cities_Mendoza = UsePN (mkPN "Mendoza") ;
+  Countries_THA_provinces_UbonRatchathani_cities_UbonRatchathani = UsePN (mkPN "Ubon Ratchathani") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Balashikha = UsePN (mkPN "Balashikha") ;
+  Countries_TR_provinces_Icel = UsePN (mkPN "Icel") ;
+  Countries_DZ_cities_Batna = UsePN (mkPN "Batna") ;
+  Countries_TJ_provinces_Hubei_cities_Laohekou = UsePN (mkPN "Laohekou") ;
+  Countries_RI_cities_Magelang = UsePN (mkPN "Magelang") ;
+  Countries_VN_provinces_HaTay = UsePN (mkPN "Ha Tay") ;
+  Countries_USA_provinces_Wyoming = UsePN (mkPN "Wyoming") ;
+  Countries_PA_provinces_Veraguas_cities_Santiago = UsePN (mkPN "Santiago") ;
+  Countries_MAL_provinces_Terengganu_cities_KualaTerengganu = UsePN (mkPN "Kuala Terengganu") ;
+  Countries_DZ_cities_Oran = UsePN (mkPN "Oran") ;
+  Countries_MYA_provinces_Mon_cities_Moulmein = UsePN (mkPN "Moulmein") ;
+  Countries_N_provinces_Akershus = UsePN (mkPN "Akershus") ;
+  Islands_Flores = UsePN (mkPN "Flores") ;
+  Countries_MAL_provinces_Sabah = UsePN (mkPN "Sabah") ;
+  Countries_TJ_provinces_Zhejiang_cities_Shaoxing = UsePN (mkPN "Shaoxing") ;
+  Organizations_EU = UsePN (mkPN "European Union") ;
+  Countries_YV_provinces_Amazonas_cities_PuertoAyacucho = UsePN (mkPN "Puerto Ayacucho") ;
+  Countries_TJ_provinces_Hubei_cities_Shashi = UsePN (mkPN "Shashi") ;
+  Islands_Providenciales = UsePN (mkPN "Providenciales") ;
+  Countries_TJ_provinces_Tianjin_munic = UsePN (mkPN "Tianjin (munic.)") ;
+  Countries_DK_cities_Aarhus = UsePN (mkPN "Aarhus") ;
+  Countries_THA_provinces_UdonThani = UsePN (mkPN "Udon Thani") ;
+  Countries_TJ_provinces_Gansu_cities_Baiyin = UsePN (mkPN "Baiyin") ;
+  Countries_GB_provinces_Dorset_cities_Bournemouth = UsePN (mkPN "Bournemouth") ;
+  Countries_J_provinces_Okayama_cities_Okayama = UsePN (mkPN "Okayama") ;
+  Countries_USA_provinces_Ohio_cities_Akron = UsePN (mkPN "Akron") ;
+  Countries_CDN_provinces_Ontario_cities_Vaughan = UsePN (mkPN "Vaughan") ;
+  Countries_EAT_provinces_Dodoma = UsePN (mkPN "Dodoma") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_RiodeJaneiro = UsePN (mkPN "Rio de Janeiro") ;
+  Countries_GB_provinces_Cumbria_cities_Carlisle = UsePN (mkPN "Carlisle") ;
+  Countries_GB_provinces_Norfolk_cities_KingsLynn = UsePN (mkPN "Kings Lynn") ;
+  Countries_UA_provinces_Sumska_cities_Sumy = UsePN (mkPN "Sumy") ;
+  Islands_Hawaii = UsePN (mkPN "Hawaii") ;
+  Countries_C_provinces_LaHabana = UsePN (mkPN "La Habana") ;
+  Countries_WAN_cities_Calabar = UsePN (mkPN "Calabar") ;
+  Countries_H_provinces_Heves_cities_Eger = UsePN (mkPN "Eger") ;
+  Countries_BR_provinces_Bahia_cities_Itabuna = UsePN (mkPN "Itabuna") ;
+  Countries_WAN_cities_Ede = UsePN (mkPN "Ede") ;
+  Countries_TJ_provinces_Henan_cities_Luoyang = UsePN (mkPN "Luoyang") ;
+  Countries_TJ_provinces_Liaoning_cities_Xingcheng = UsePN (mkPN "Xingcheng") ;
+  Countries_N_provinces_NordTrondelag_cities_Steinkjer = UsePN (mkPN "Steinkjer") ;
+  Countries_I_provinces_Sicilia_cities_Catania = UsePN (mkPN "Catania") ;
+  Countries_S_provinces_Halland = UsePN (mkPN "Halland") ;
+  Countries_RC_provinces_Changhua = UsePN (mkPN "Changhua") ;
+  Countries_GB_provinces_Norfolk = UsePN (mkPN "Norfolk") ;
+  Countries_SN_provinces_Tambacounda = UsePN (mkPN "Tambacounda") ;
+  Countries_ANG_provinces_Cunene = UsePN (mkPN "Cunene") ;
+  Countries_ZRE_provinces_Equateur_cities_Mbandaka = UsePN (mkPN "Mbandaka") ;
+  Countries_ES_provinces_SantaAna = UsePN (mkPN "Santa Ana") ;
+  Countries_ET_provinces_SinaalJanubiyah = UsePN (mkPN "Sina al Janubiyah") ;
+  Countries_MOC_provinces_Manica_cities_Chimoio = UsePN (mkPN "Chimoio") ;
+  Countries_F_provinces_Bourgogne = UsePN (mkPN "Bourgogne") ;
+  Countries_MYA_provinces_Rakhine = UsePN (mkPN "Rakhine") ;
+  Countries_C_provinces_CiudaddelaHabana = UsePN (mkPN "Ciudad de la Habana") ;
+  Countries_KAZ_provinces_Atyrau = UsePN (mkPN "Atyrau") ;
+  Countries_R_provinces_Kamchatskayaoblast = UsePN (mkPN "Kamchatskaya oblast") ;
+  Countries_DOM_cities_SantoDomingo = UsePN (mkPN "Santo Domingo") ;
+  Countries_HCA_provinces_Choluteca_cities_Choluteca = UsePN (mkPN "Choluteca") ;
+  Countries_IND_provinces_Tripura = UsePN (mkPN "Tripura") ;
+  Countries_BR_provinces_RioGrandedoNorte = UsePN (mkPN "Rio Grande do Norte") ;
+  Islands_MarthasVineyard = UsePN (mkPN "Martha s Vineyard") ;
+  Countries_cid_cia_Jarvis_Island = UsePN (mkPN "Jarvis Island") ;
+  Countries_ZRE_provinces_Shaba_cities_Lubumbashi = UsePN (mkPN "Lubumbashi") ;
+  Countries_S_provinces_Kalmar = UsePN (mkPN "Kalmar") ;
+  Countries_PK_cities_Karachi = UsePN (mkPN "Karachi") ;
+  Countries_I_provinces_Sardegna = UsePN (mkPN "Sardegna") ;
+  Countries_GB_provinces_Flintshire = UsePN (mkPN "Flintshire") ;
+  Countries_C_provinces_LasTunas_cities_VictoriadelasTunas = UsePN (mkPN "Victoria de las Tunas") ;
+  Countries_RSA_provinces_EasternCape = UsePN (mkPN "Eastern Cape") ;
+  Countries_IRQ_provinces_AlBasrah_cities_AlBasrah = UsePN (mkPN "Al Basrah") ;
+  Countries_GB_provinces_Berkshire_cities_Reading = UsePN (mkPN "Reading") ;
+  Countries_ANG_provinces_Cunene_cities_Ngiva = UsePN (mkPN "Ngiva") ;
+  Countries_J_provinces_Tokushima_cities_Tokushima = UsePN (mkPN "Tokushima") ;
+  Countries_ET_provinces_Qena = UsePN (mkPN "Qena") ;
+  Countries_BR_provinces_Ceara_cities_Caucaia = UsePN (mkPN "Caucaia") ;
+  Countries_TR_provinces_Eskisehir = UsePN (mkPN "Eskisehir") ;
+  Countries_RM_provinces_Fianarantsoa_cities_Fianarantsoa = UsePN (mkPN "Fianarantsoa") ;
+  Countries_VN_provinces_LaiChau = UsePN (mkPN "Lai Chau") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Lyubertsy = UsePN (mkPN "Lyubertsy") ;
+  Countries_MEX_provinces_Tamaulipas_cities_Reynosa = UsePN (mkPN "Reynosa") ;
+  Countries_TJ_provinces_Liaoning_cities_Chaoyang = UsePN (mkPN "Chaoyang") ;
+  Rivers_Ounasjoki = UsePN (mkPN "Ounasjoki") ;
+  Countries_MOC_provinces_Gaza = UsePN (mkPN "Gaza") ;
+  Organizations_UNIKOM = UsePN (mkPN "United Nations Iraq-Kuwait Observation Mission") ;
+  Countries_TCH_cities_NDjamena = UsePN (mkPN "NDjamena") ;
+  Countries_GB_provinces_Leicestershire_cities_Leicester = UsePN (mkPN "Leicester") ;
+  Countries_TR_provinces_Adiyaman = UsePN (mkPN "Adiyaman") ;
+  Countries_GB_provinces_Warwickshire_cities_Warwick = UsePN (mkPN "Warwick") ;
+  Countries_TR_provinces_Izmir = UsePN (mkPN "Izmir") ;
+  Countries_TJ_provinces_Jiangsu_cities_Xuzhou = UsePN (mkPN "Xuzhou") ;
+  Countries_GB_provinces_AberconwyandColwyn_cities_ColwynBay = UsePN (mkPN "Colwyn Bay") ;
+  Countries_CAM_provinces_Nord = UsePN (mkPN "Nord") ;
+  Countries_WAN_cities_Abeokuta = UsePN (mkPN "Abeokuta") ;
+  Countries_TJ_provinces_Fujian_cities_Xiamen = UsePN (mkPN "Xiamen") ;
+  Countries_MEX_provinces_Puebla = UsePN (mkPN "Puebla") ;
+  Countries_N_provinces_NordTrondelag = UsePN (mkPN "Nord Trondelag") ;
+  Countries_TJ_provinces_Shandong_cities_Jiaonan = UsePN (mkPN "Jiaonan") ;
+  Countries_TJ_provinces_NingxiaHuizu = UsePN (mkPN "Ningxia Huizu") ;
+  Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolskie = UsePN (mkPN "Gorzow Wielkopolskie") ;
+  Countries_RO_provinces_Mehedinti = UsePN (mkPN "Mehedinti") ;
+  Countries_ET_provinces_ElIskandariya_munic_cities_Alexandria = UsePN (mkPN "Alexandria") ;
+  Mountains_Popocatepetl = UsePN (mkPN "Popocatepetl") ;
+  Lakes_KentuckyLake = UsePN (mkPN "Kentucky Lake") ;
+  Countries_ET_provinces_ElDaqahliya_cities_ElMansura = UsePN (mkPN "El Mansura") ;
+  Countries_C_provinces_SantiagodeCuba_cities_SantiagodeCuba = UsePN (mkPN "Santiago de Cuba") ;
+  Countries_USA_provinces_Illinois_cities_Rockford = UsePN (mkPN "Rockford") ;
+  Countries_USA_provinces_Colorado_cities_ColoradoSprings = UsePN (mkPN "Colorado Springs") ;
+  Countries_PL_provinces_Skierniewickie = UsePN (mkPN "Skierniewickie") ;
+  Countries_TAD_provinces_Kulob = UsePN (mkPN "Kulob") ;
+  Organizations_ACCT = UsePN (mkPN "Agency for Cultural and Technical Cooperation") ;
+  Countries_CZ_provinces_Jihomoravsky_cities_Zlin = UsePN (mkPN "Zlin") ;
+  Countries_N_provinces_AustAgder_cities_Arendal = UsePN (mkPN "Arendal") ;
+  Countries_TR_provinces_Nigde = UsePN (mkPN "Nigde") ;
+  Organizations_APEC = UsePN (mkPN "Asia Pacific Economic Cooperation") ;
+  Countries_MAL_provinces_Melaka_cities_Melaka = UsePN (mkPN "Melaka") ;
+  Countries_RO_provinces_Giurgiu = UsePN (mkPN "Giurgiu") ;
+  Rivers_Oka = UsePN (mkPN "Oka") ;
+  Countries_BR_provinces_MinasGerais_cities_Uberlandia = UsePN (mkPN "Uberlandia") ;
+  Countries_TR_provinces_Mus = UsePN (mkPN "Mus") ;
+  Countries_GR_cities_Thessaloniki = UsePN (mkPN "Thessaloniki") ;
+  Countries_J_provinces_Tokyo = UsePN (mkPN "Tokyo") ;
+  Countries_USA_provinces_Texas_cities_Beaumont = UsePN (mkPN "Beaumont") ;
+  Countries_BR_provinces_MatoGrossodoSul_cities_CampoGrande = UsePN (mkPN "Campo Grande") ;
+  Countries_THA_provinces_Phayao = UsePN (mkPN "Phayao") ;
+  Mountains_Kasbek = UsePN (mkPN "Kasbek") ;
+  Countries_THA_provinces_Songkhla = UsePN (mkPN "Songkhla") ;
+  Countries_TJ_provinces_Henan_cities_Zhengzhou = UsePN (mkPN "Zhengzhou") ;
+  Countries_RC_provinces_Chiai_munic_cities_Chiai = UsePN (mkPN "Chiai") ;
+  Organizations_ICFTU = UsePN (mkPN "International Confederation of Free Trade Unions") ;
+  Countries_I_provinces_Sicilia = UsePN (mkPN "Sicilia") ;
+  Countries_BEN_cities_Porto_Novo = UsePN (mkPN "Porto-Novo") ;
+  Countries_AUS_provinces_Queensland_cities_GoldCoast = UsePN (mkPN "Gold Coast") ;
+  Countries_J_provinces_Wakayama = UsePN (mkPN "Wakayama") ;
+  Organizations_ICJ = UsePN (mkPN "International Court of Justice") ;
+  Countries_WAN_cities_Minna = UsePN (mkPN "Minna") ;
+  Countries_MA_cities_Fes = UsePN (mkPN "Fes") ;
+  Countries_CDN_provinces_YukonTerritory = UsePN (mkPN "Yukon Territory") ;
+  Countries_MYA_provinces_Ayeyarwady = UsePN (mkPN "Ayeyarwady") ;
+  Countries_GR_cities_Kavalla = UsePN (mkPN "Kavalla") ;
+  Countries_USA_provinces_Louisiana_cities_BatonRouge = UsePN (mkPN "Baton Rouge") ;
+  Islands_Gheschm = UsePN (mkPN "Gheschm") ;
+  Countries_GB_provinces_Staffordshire_cities_StokeonTrent = UsePN (mkPN "Stoke on Trent") ;
+  Countries_AUS_provinces_Victoria = UsePN (mkPN "Victoria") ;
+  Islands_Korfu = UsePN (mkPN "Korfu") ;
+  Countries_BR_provinces_Bahia_cities_VitoriadaConquista = UsePN (mkPN "Vitoria da Conquista") ;
+  Countries_MAL_provinces_Sarawak_cities_Kuching = UsePN (mkPN "Kuching") ;
+  Countries_RC_cities_Chungho = UsePN (mkPN "Chungho") ;
+  Countries_GB_provinces_Cambridgeshire = UsePN (mkPN "Cambridgeshire") ;
+  Countries_THA_provinces_Chumphon = UsePN (mkPN "Chumphon") ;
+  Countries_RI_cities_Jambi = UsePN (mkPN "Jambi") ;
+  Countries_I_provinces_Liguria = UsePN (mkPN "Liguria") ;
+  Countries_BR_provinces_Pernambuco_cities_Caruaru = UsePN (mkPN "Caruaru") ;
+  Countries_E_provinces_CastileLaMancha = UsePN (mkPN "Castile La Mancha") ;
+  Countries_HCA_provinces_Yoro = UsePN (mkPN "Yoro") ;
+  Countries_USA_provinces_Nevada_cities_LasVegas = UsePN (mkPN "Las Vegas") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Wuppertal = UsePN (mkPN "Wuppertal") ;
+  Countries_ET_provinces_ElGiza_cities_ElGiza = UsePN (mkPN "El Giza") ;
+  Deserts_Atacama = UsePN (mkPN "Atacama") ;
+  Lakes_LakeMweru = UsePN (mkPN "Lake Mweru") ;
+  Countries_VN_cities_NamDinh = UsePN (mkPN "Nam Dinh") ;
+  Countries_TJ_provinces_Shandong_cities_Linqing = UsePN (mkPN "Linqing") ;
+  Countries_IRQ_provinces_Wasit_cities_AlKut = UsePN (mkPN "Al Kut") ;
+  Countries_GB_provinces_WestYorkshire_cities_Huddersfield = UsePN (mkPN "Huddersfield") ;
+  Countries_TJ_provinces_Sichuan_cities_Jiangyou = UsePN (mkPN "Jiangyou") ;
+  Countries_D_provinces_Niedersachsen = UsePN (mkPN "Niedersachsen") ;
+  Countries_TJ_provinces_Anhui_cities_Fuyang = UsePN (mkPN "Fuyang") ;
+  Countries_TJ_provinces_Jiangxi_cities_Nanchang = UsePN (mkPN "Nanchang") ;
+  Rivers_Ubangi = UsePN (mkPN "Ubangi") ;
+  Countries_PL_provinces_Katowickie_cities_Rybnik = UsePN (mkPN "Rybnik") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Petropolis = UsePN (mkPN "Petropolis") ;
+  Countries_THA_provinces_NakhonRatchasima = UsePN (mkPN "Nakhon Ratchasima") ;
+  Lakes_LakeTana = UsePN (mkPN "Lake Tana") ;
+  Countries_ETH_cities_AddisAbaba = UsePN (mkPN "Addis Ababa") ;
+  Countries_I_provinces_Marche = UsePN (mkPN "Marche") ;
+  Countries_YV_provinces_Carabobo = UsePN (mkPN "Carabobo") ;
+  Countries_TR_provinces_Hakkari = UsePN (mkPN "Hakkari") ;
+  Countries_D_provinces_Hessen = UsePN (mkPN "Hessen") ;
+  Countries_USA_provinces_California_cities_Concord = UsePN (mkPN "Concord") ;
+  Countries_TJ_provinces_Hainan = UsePN (mkPN "Hainan") ;
+  Countries_CO_provinces_Boyaca = UsePN (mkPN "Boyaca") ;
+  Countries_NL_provinces_Zeeland = UsePN (mkPN "Zeeland") ;
+  Countries_RO_provinces_Constanta = UsePN (mkPN "Constanta") ;
+  Countries_MEX_provinces_Oaxaca_cities_Oaxaca = UsePN (mkPN "Oaxaca") ;
+  Continents_Europe = UsePN (mkPN "Europe") ;
+  Countries_R_provinces_Moskovskayaoblast_cities_Khimki = UsePN (mkPN "Khimki") ;
+  Countries_EAT_provinces_KaskaziniUjunga = UsePN (mkPN "Kaskazini Ujunga") ;
+  Countries_THA_provinces_Phichit = UsePN (mkPN "Phichit") ;
+  Countries_PL_provinces_Legnickie = UsePN (mkPN "Legnickie") ;
+  Countries_EAT_provinces_KusiniPemba_cities_ChakeCahke = UsePN (mkPN "Chake Cahke") ;
+  Countries_MEX_provinces_Guanajuato_cities_Irapuato = UsePN (mkPN "Irapuato") ;
+  Countries_TR_provinces_Karamanmaras = UsePN (mkPN "Karamanmaras") ;
+  Countries_IRQ_provinces_AlMuthanna = UsePN (mkPN "Al Muthanna") ;
+  Countries_TJ_provinces_Liaoning_cities_Jinzhou = UsePN (mkPN "Jinzhou") ;
+  Organizations_G_77 = UsePN (mkPN "Group of 77") ;
+  Organizations_PFP = UsePN (mkPN "Partnership for Peace") ;
+  Countries_D_provinces_NordrheinWestfalen_cities_Leverkusen = UsePN (mkPN "Leverkusen") ;
+  Countries_IR_provinces_Khuzestan_cities_Ahvaz = UsePN (mkPN "Ahvaz") ;
+  Islands_Hierro = UsePN (mkPN "Hierro") ;
+  Countries_R_provinces_Sverdlovskayaoblast_cities_Pervouralsk = UsePN (mkPN "Pervouralsk") ;
+  Countries_DZ_cities_Constantine = UsePN (mkPN "Constantine") ;
+  Countries_UA_provinces_Lvivska_cities_Lviv = UsePN (mkPN "Lviv") ;
+  Countries_RI_cities_UjungPandang = UsePN (mkPN "Ujung Pandang") ;
+  Countries_J_provinces_Nara_cities_Nara = UsePN (mkPN "Nara") ;
+  Countries_E_provinces_Asturias_cities_Gijon = UsePN (mkPN "Gijon") ;
+  Countries_GB_provinces_NeathandPortTalbot = UsePN (mkPN "Neath and Port Talbot") ;
+  Countries_TAD_provinces_Dushanbe_munic = UsePN (mkPN "Dushanbe (munic.)") ;
+  Countries_CO_provinces_SanAndresyProvidencia_cities_SanAndres = UsePN (mkPN "San Andres") ;
+  Countries_TR_provinces_Adana = UsePN (mkPN "Adana") ;
+  Countries_ZRE_provinces_Bandundu = UsePN (mkPN "Bandundu") ;
+  Countries_GH_cities_CapeCoast = UsePN (mkPN "Cape Coast") ;
+  Countries_IR_cities_Rajaishahr = UsePN (mkPN "Rajaishahr") ;
+  Countries_SUD_provinces_alKhartum = UsePN (mkPN "al Khartum") ;
+  Mountains_Sabalan = UsePN (mkPN "Sabalan") ;
+  Countries_R_provinces_Rostovskayaoblast_cities_Shakhty = UsePN (mkPN "Shakhty") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Teresopolis = UsePN (mkPN "Teresopolis") ;
+  Lakes_Arresee = UsePN (mkPN "Arresee") ;
+  Countries_IND_provinces_UttarPradesh_cities_Moradabad = UsePN (mkPN "Moradabad") ;
+  Countries_TR_provinces_Hatay_cities_Antakya = UsePN (mkPN "Antakya") ;
+  Countries_VN_provinces_CanTho = UsePN (mkPN "Can Tho") ;
+  Countries_GB_provinces_Ceredigion = UsePN (mkPN "Ceredigion") ;
+  Countries_MAL_provinces_Fed_Terr_ofKualaLumpur = UsePN (mkPN "Fed. Terr. of Kuala Lumpur") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Mage = UsePN (mkPN "Mage") ;
+  Countries_RSA_provinces_NorthernCape = UsePN (mkPN "Northern Cape") ;
+  Countries_THA_provinces_PrachinBuri = UsePN (mkPN "Prachin Buri") ;
+  Organizations_ECO = UsePN (mkPN "Economic Cooperation Organization") ;
+  Countries_THA_provinces_Ratchaburi = UsePN (mkPN "Ratchaburi") ;
+  Countries_TJ_provinces_Gansu_cities_Yumen = UsePN (mkPN "Yumen") ;
+  Countries_RI_cities_Probolinggo = UsePN (mkPN "Probolinggo") ;
+  Countries_USA_provinces_Pennsylvania_cities_Philadelphia = UsePN (mkPN "Philadelphia") ;
+  Countries_MA_cities_Marrakech = UsePN (mkPN "Marrakech") ;
+  Organizations_UNMIH = UsePN (mkPN "United Nations Mission in Haiti") ;
+  Countries_I_provinces_Sicilia_cities_Siracusa = UsePN (mkPN "Siracusa") ;
+  Countries_R_provinces_Rep_ofBashkortostan_cities_Salavat = UsePN (mkPN "Salavat") ;
+  Countries_D_provinces_Niedersachsen_cities_Hildesheim = UsePN (mkPN "Hildesheim") ;
+  Countries_USA_provinces_Ohio_cities_Dayton = UsePN (mkPN "Dayton") ;
+  Countries_BR_provinces_Maranhao_cities_Caxias = UsePN (mkPN "Caxias") ;
+  Countries_BD_cities_Pabna = UsePN (mkPN "Pabna") ;
+  Countries_RM_provinces_Toamasina = UsePN (mkPN "Toamasina") ;
+  Countries_A_provinces_UpperAustria = UsePN (mkPN "Upper Austria") ;
+  Deserts_Asauad = UsePN (mkPN "Asauad") ;
+  Countries_CH_provinces_UR_cities_Altdorf = UsePN (mkPN "Altdorf") ;
+  Organizations_LAES = UsePN (mkPN "Latin American Economic System") ;
+  Rivers_Neva = UsePN (mkPN "Neva") ;
+  Countries_Z_provinces_Northwestern_cities_Solwezi = UsePN (mkPN "Solwezi") ;
+  Countries_BR_provinces_Maranhao = UsePN (mkPN "Maranhao") ;
+  Countries_PL_provinces_Katowickie_cities_WodzilawSlaski = UsePN (mkPN "Wodzilaw Slaski") ;
+  Countries_PK_cities_MirpurKhas = UsePN (mkPN "Mirpur Khas") ;
+  Countries_SF_provinces_Suomi_cities_Jyvaeskylae = UsePN (mkPN "Jyvaeskylae") ;
+  Countries_F_provinces_PoitouCharentes = UsePN (mkPN "Poitou Charentes") ;
+  Countries_E_provinces_Catalonia_cities_Badalona = UsePN (mkPN "Badalona") ;
+  Countries_RC_provinces_Taoyuan_cities_Taoyuan = UsePN (mkPN "Taoyuan") ;
+  Countries_UA_provinces_Rivnenska = UsePN (mkPN "Rivnenska") ;
+  Countries_I_provinces_Toscana_cities_Livorno = UsePN (mkPN "Livorno") ;
+  Countries_NOK_cities_Haeju = UsePN (mkPN "Haeju") ;
+  Countries_R_provinces_KabardinoBalkarRep__cities_Nalchik = UsePN (mkPN "Nalchik") ;
+  Countries_VU_cities_Port_Vila = UsePN (mkPN "Port-Vila") ;
+  Islands_Bermuda = UsePN (mkPN "Bermuda") ;
+  Countries_GB_provinces_Nottinghamshire_cities_NewarkonTrent = UsePN (mkPN "Newark on Trent") ;
+  Rivers_Vaesterdalaelv = UsePN (mkPN "Vaesterdalaelv") ;
+  Islands_Lanzarote = UsePN (mkPN "Lanzarote") ;
+  Mountains_PikKommunizma = UsePN (mkPN "Pik Kommunizma") ;
+  Countries_F_provinces_Alsace_cities_Strasbourg = UsePN (mkPN "Strasbourg") ;
+  Countries_IR_provinces_Ilam = UsePN (mkPN "Ilam") ;
+  Countries_CDN_provinces_Ontario_cities_Ottawa = UsePN (mkPN "Ottawa") ;
+  Countries_USA_provinces_Florida_cities_Tallahassee = UsePN (mkPN "Tallahassee") ;
+  Countries_MEX_provinces_Nayarit = UsePN (mkPN "Nayarit") ;
+  Countries_GB_provinces_Kent_cities_Dover = UsePN (mkPN "Dover") ;
+  Countries_BR_provinces_RioGrandedoSul_cities_RioGrande = UsePN (mkPN "Rio Grande") ;
+  Lakes_LakeKivu = UsePN (mkPN "Lake Kivu") ;
+  Countries_BR_provinces_SaoPaulo_cities_Bauru = UsePN (mkPN "Bauru") ;
+  Countries_CO_provinces_ValledeCauca_cities_Palmira = UsePN (mkPN "Palmira") ;
+  Continents_Australia_Oceania = UsePN (mkPN "Australia/Oceania") ;
+  Countries_J_provinces_Shiga_cities_Otsu = UsePN (mkPN "Otsu") ;
+  Countries_R_provinces_Sverdlovskayaoblast_cities_Serov = UsePN (mkPN "Serov") ;
+  Countries_MEX_provinces_Durango_cities_GomezPalacio = UsePN (mkPN "Gomez Palacio") ;
+  Countries_cid_cia_West_Bank = UsePN (mkPN "West Bank") ;
+  Countries_IND_provinces_Rajasthan_cities_Kota = UsePN (mkPN "Kota") ;
+  Countries_CZ_provinces_Vychodocesky_cities_HradecKralove = UsePN (mkPN "Hradec Kralove") ;
+  Countries_IR_provinces_Khorasan_cities_Neyshabur = UsePN (mkPN "Neyshabur") ;
+  Countries_ZRE_provinces_KasaiOriental_cities_Kalemi = UsePN (mkPN "Kalemi") ;
+  Organizations_WHO = UsePN (mkPN "World Health Organization") ;
+  Countries_TJ_provinces_Heilongjiang = UsePN (mkPN "Heilongjiang") ;
+  Countries_VN_provinces_HoChiMinhCity = UsePN (mkPN "Ho Chi Minh City") ;
+  Countries_GB_provinces_DumfriesandGalloway = UsePN (mkPN "Dumfries and Galloway") ;
+  Countries_ET_provinces_ElSuweiz_munic_cities_ElSuweiz = UsePN (mkPN "El Suweiz") ;
+  Countries_PA_provinces_BocasdelToro = UsePN (mkPN "Bocas del Toro") ;
+  Countries_R_provinces_Krasnodarskykray_cities_Krasnodar = UsePN (mkPN "Krasnodar") ;
+  Deserts_Hamadael_Hamra = UsePN (mkPN "Hamada el-Hamra") ;
+  Organizations_UNESCO = UsePN (mkPN "United Nations Educational, Scientific, and Cultural Organization") ;
+  Rivers_Cuango = UsePN (mkPN "Cuango") ;
+  Countries_RO_provinces_CarasSeverin_cities_Resita = UsePN (mkPN "Resita") ;
+  Mountains_PikPobeda = UsePN (mkPN "Pik Pobeda") ;
+  Countries_J_provinces_Kanagawa = UsePN (mkPN "Kanagawa") ;
+  Countries_J_provinces_Nagano_cities_Nagano = UsePN (mkPN "Nagano") ;
+  Countries_THA_provinces_Tak = UsePN (mkPN "Tak") ;
+  Countries_SYR_cities_Homs = UsePN (mkPN "Homs") ;
+  Countries_TM_provinces_Ahal_cities_Ashgabat = UsePN (mkPN "Ashgabat") ;
+  Countries_TR_provinces_Artvin = UsePN (mkPN "Artvin") ;
+  Countries_RSA_provinces_EasternCape_cities_PortElizabeth = UsePN (mkPN "Port Elizabeth") ;
+  Countries_IND_provinces_UttarPradesh_cities_Jhansi = UsePN (mkPN "Jhansi") ;
+  Countries_USA_provinces_Georgia_cities_Savannah = UsePN (mkPN "Savannah") ;
+  Countries_BR_provinces_SaoPaulo_cities_Jacarei = UsePN (mkPN "Jacarei") ;
+  Countries_PK_cities_Quetta = UsePN (mkPN "Quetta") ;
+  Countries_F_provinces_RhoneAlpes_cities_Grenoble = UsePN (mkPN "Grenoble") ;
+  Rivers_Missouri = UsePN (mkPN "Missouri") ;
+  Countries_IND_provinces_ArunachalPradesh_cities_Itanagar = UsePN (mkPN "Itanagar") ;
+  Countries_USA_provinces_California_cities_Glendale = UsePN (mkPN "Glendale") ;
+  Countries_IND_provinces_TamilNadu = UsePN (mkPN "Tamil Nadu") ;
+  Islands_Falster = UsePN (mkPN "Falster") ;
+  Countries_THA_provinces_MahaSarakham = UsePN (mkPN "Maha Sarakham") ;
+  Countries_SN_provinces_Louga = UsePN (mkPN "Louga") ;
+  Countries_TJ_provinces_Hebei_cities_Chengde = UsePN (mkPN "Chengde") ;
+  Countries_CDN_provinces_Saskatchewan = UsePN (mkPN "Saskatchewan") ;
+  Countries_F_provinces_Bretagne_cities_Rennes = UsePN (mkPN "Rennes") ;
+  Countries_GR_cities_Iraklion = UsePN (mkPN "Iraklion") ;
+  Organizations_ESCWA = UsePN (mkPN "Economic and Social Commission for Western Asia") ;
+  Countries_DZ_cities_Bejaia = UsePN (mkPN "Bejaia") ;
+  Countries_TJ_provinces_Guizhou_cities_Duyun = UsePN (mkPN "Duyun") ;
+  Countries_MEX_provinces_Tabasco_cities_Villahermosa = UsePN (mkPN "Villahermosa") ;
+  Countries_USA_provinces_Wisconsin_cities_GreenBay = UsePN (mkPN "Green Bay") ;
+  Countries_TR_provinces_Bitlis = UsePN (mkPN "Bitlis") ;
+  Countries_GB_provinces_Berkshire_cities_Wokingham = UsePN (mkPN "Wokingham") ;
+  Countries_cid_cia_Bassas_da_India = UsePN (mkPN "Bassas da India") ;
+  Countries_WAN_cities_Shagamu = UsePN (mkPN "Shagamu") ;
+  Countries_P_provinces_Azores_The = UsePN (mkPN "Azores, The") ;
+  Countries_cid_cia_Puerto_Rico = UsePN (mkPN "Puerto Rico") ;
+  Countries_CO_provinces_Vichada_cities_PuertoCarreno = UsePN (mkPN "Puerto Carreno") ;
+  Countries_EAT_provinces_Shinyanga_cities_Shinyanga = UsePN (mkPN "Shinyanga") ;
+  Organizations_IAEA = UsePN (mkPN "International Atomic Energy Agency") ;
+  Countries_B_provinces_WestFlanders = UsePN (mkPN "West Flanders") ;
+  Countries_AUS_provinces_WesternAustralia_cities_Perth = UsePN (mkPN "Perth") ;
+  Countries_WG_cities_SaintGeorges = UsePN (mkPN "Saint Georges") ;
+  Countries_CO_provinces_Putumayo = UsePN (mkPN "Putumayo") ;
+  Deserts_GibsonDesert = UsePN (mkPN "Gibson Desert") ;
+  Countries_MYA_provinces_Bago_cities_Bago = UsePN (mkPN "Bago") ;
+  Countries_TR_provinces_Sanliurfa_cities_Urfa = UsePN (mkPN "Urfa") ;
+  Countries_TJ_provinces_Henan_cities_Anyang = UsePN (mkPN "Anyang") ;
+  Countries_YV_provinces_DeltaAmacuro_cities_Tucupita = UsePN (mkPN "Tucupita") ;
+  Countries_USA_provinces_Illinois = UsePN (mkPN "Illinois") ;
+  Countries_E_provinces_CastileandLeon_cities_Burgos = UsePN (mkPN "Burgos") ;
+  Countries_E_provinces_BasqueCountry = UsePN (mkPN "Basque Country") ;
+  Countries_IND_provinces_Orissa_cities_Cuttack = UsePN (mkPN "Cuttack") ;
+  Countries_KAZ_provinces_Qostanay_cities_Qostanay = UsePN (mkPN "Qostanay") ;
+  Islands_Vanuatu = UsePN (mkPN "Vanuatu") ;
+  Organizations_Entente = UsePN (mkPN "Council of the Entente") ;
+  Countries_TJ_provinces_Anhui_cities_Tongling = UsePN (mkPN "Tongling") ;
+  Countries_E_provinces_Catalonia_cities_Terrassa = UsePN (mkPN "Terrassa") ;
+  Countries_TJ_provinces_XinjiangUygur_cities_Hami = UsePN (mkPN "Hami") ;
+  Countries_I_provinces_ValledAosta = UsePN (mkPN "Valle dAosta") ;
+  Countries_GB_provinces_Strathclyde_cities_Glasgow = UsePN (mkPN "Glasgow") ;
+  Countries_R_provinces_Rep_ofKomi_cities_Syktyvkar = UsePN (mkPN "Syktyvkar") ;
+  Countries_CO_provinces_Atlantico_cities_Barranquilla = UsePN (mkPN "Barranquilla") ;
+  Countries_B_provinces_Luxembourg_cities_Arlon = UsePN (mkPN "Arlon") ;
+  Countries_BR_provinces_Goias_cities_RioVerde = UsePN (mkPN "Rio Verde") ;
+  Countries_BR_provinces_SantaCatarina_cities_SaoJose = UsePN (mkPN "Sao Jose") ;
+  Countries_MA_cities_Agadir = UsePN (mkPN "Agadir") ;
+  Countries_B_provinces_Antwerp_cities_Antwerp = UsePN (mkPN "Antwerp") ;
+  Countries_TJ_provinces_Zhejiang_cities_Xiaoshan = UsePN (mkPN "Xiaoshan") ;
+  Organizations_G_33 = UsePN (mkPN "Group of 33") ;
+  Countries_R_provinces_Krasnodarskykray_cities_Sochi = UsePN (mkPN "Sochi") ;
+  Countries_GB_provinces_Fife = UsePN (mkPN "Fife") ;
+  Mountains_Mt_Bogong = UsePN (mkPN "Mt. Bogong") ;
+  Countries_J_provinces_Chiba = UsePN (mkPN "Chiba") ;
+  Countries_R_provinces_Bryanskayaoblast_cities_Bryansk = UsePN (mkPN "Bryansk") ;
+  Countries_CO_provinces_Sucre_cities_Sincelejo = UsePN (mkPN "Sincelejo") ;
+  Countries_NOK_cities_Tokchon = UsePN (mkPN "Tokchon") ;
+  Countries_F_provinces_Picardie_cities_Amiens = UsePN (mkPN "Amiens") ;
+  Countries_GB_provinces_Devon_cities_Plymouth = UsePN (mkPN "Plymouth") ;
+  Countries_MEX_provinces_BajaCaliforniaSur = UsePN (mkPN "Baja California Sur") ;
+  Countries_TR_provinces_Adiyaman_cities_Adiyaman = UsePN (mkPN "Adiyaman") ;
+  Countries_JOR_cities_Amman = UsePN (mkPN "Amman") ;
+  Countries_N_provinces_Troms = UsePN (mkPN "Troms") ;
+  Countries_H_provinces_SzabolcsSzatmar_cities_Nyiregyhaza = UsePN (mkPN "Nyiregyhaza") ;
+  Countries_BR_cities_SaoJosedosPinhais = UsePN (mkPN "Sao Jose dos Pinhais") ;
+  Countries_GB_provinces_GreaterManchester_cities_Bury = UsePN (mkPN "Bury") ;
+  Continents_Asia = UsePN (mkPN "Asia") ;
+  Organizations_CEMA = UsePN (mkPN "Council for Mutual Economic Assistance") ;
+  Countries_EAT_provinces_Mbeya_cities_Mbeya = UsePN (mkPN "Mbeya") ;
+  Countries_R_provinces_Nizhegorodskayaoblast = UsePN (mkPN "Nizhegorodskaya oblast") ;
+  Countries_TJ_provinces_Sichuan_cities_Leshan = UsePN (mkPN "Leshan") ;
+  Countries_MEX_provinces_Sonora_cities_HeroicaNogales = UsePN (mkPN "Heroica Nogales") ;
+  Countries_CR_provinces_SanJose = UsePN (mkPN "San Jose") ;
+  Countries_RSA_provinces_FreeState_cities_Bloemfontein = UsePN (mkPN "Bloemfontein") ;
+  Countries_BR_provinces_SaoPaulo_cities_Araraquara = UsePN (mkPN "Araraquara") ;
+  Countries_TR_provinces_Kastamonu_cities_Kastamonu = UsePN (mkPN "Kastamonu") ;
+  Countries_RC_provinces_Nantou_cities_Nantou = UsePN (mkPN "Nantou") ;
+  Countries_GB_provinces_Cheshire_cities_Warrington = UsePN (mkPN "Warrington") ;
+  Countries_R_provinces_Samarskayaoblast_cities_Samara = UsePN (mkPN "Samara") ;
+  Countries_cid_cia_Guernsey_cities_SaintPeterPort = UsePN (mkPN "Saint Peter Port") ;
+  Countries_IR_provinces_Mazandaran_cities_Sari = UsePN (mkPN "Sari") ;
+  Countries_RC_provinces_Taoyuan = UsePN (mkPN "Taoyuan") ;
+  Organizations_G_6 = UsePN (mkPN "Group of 6") ;
+  Countries_F_provinces_Aquitaine = UsePN (mkPN "Aquitaine") ;
+  Countries_GB_cities_WrexhamMaelor = UsePN (mkPN "Wrexham Maelor") ;
+  Countries_IR_provinces_AzarbayianeSharqi_cities_Ardabil = UsePN (mkPN "Ardabil") ;
+  Rivers_Kemijoki = UsePN (mkPN "Kemijoki") ;
+  Countries_ET_provinces_ElFaiyum_cities_ElFaiyum = UsePN (mkPN "El Faiyum") ;
+  Countries_AUS_provinces_NorthernTerritory = UsePN (mkPN "Northern Territory") ;
+  Countries_UZB_provinces_Qoraqalpoghiston = UsePN (mkPN "Qoraqalpoghiston") ;
+  Countries_TJ_provinces_Hainan_cities_Sanya = UsePN (mkPN "Sanya") ;
+  Countries_P_provinces_Braga = UsePN (mkPN "Braga") ;
+  Countries_YV_provinces_Aragua_cities_Maracay = UsePN (mkPN "Maracay") ;
+  Countries_R_provinces_Rep_ofTatarstan_cities_Nizhnekamsk = UsePN (mkPN "Nizhnekamsk") ;
+  Countries_GB_provinces_Borders = UsePN (mkPN "Borders") ;
+  Islands_Formentera = UsePN (mkPN "Formentera") ;
+  Organizations_UNAMIR = UsePN (mkPN "United Nations Assistance Mission for Rwanda") ;
+  Countries_RC_provinces_Kaohsiung_cities_Fengshan = UsePN (mkPN "Fengshan") ;
+  Countries_ROK_cities_Pusan = UsePN (mkPN "Pusan") ;
+  Countries_GB_provinces_Denbighshire = UsePN (mkPN "Denbighshire") ;
+  Countries_RC_provinces_Chiai_munic = UsePN (mkPN "Chiai (munic.)") ;
+  Countries_ES_provinces_Cuscatlan_cities_Cojutepeque = UsePN (mkPN "Cojutepeque") ;
+  Countries_USA_provinces_California_cities_Riverside = UsePN (mkPN "Riverside") ;
+  Countries_H_provinces_Budapest_munic_cities_Budapest = UsePN (mkPN "Budapest") ;
+  Rivers_Mekong = UsePN (mkPN "Mekong") ;
+  Countries_USA_provinces_Alabama_cities_Montgomery = UsePN (mkPN "Montgomery") ;
+  Islands_BanksIsland = UsePN (mkPN "Banks Island") ;
+  Countries_R_provinces_Primorskykray_cities_Nakhodka = UsePN (mkPN "Nakhodka") ;
+  Rivers_Sobat = UsePN (mkPN "Sobat") ;
+  Countries_IND_provinces_LakshadweepIs__cities_Kavaratti = UsePN (mkPN "Kavaratti") ;
+  Countries_PL_provinces_Olsztynskie_cities_Olsztyn = UsePN (mkPN "Olsztyn") ;
+  Countries_USA_provinces_Texas_cities_Waco = UsePN (mkPN "Waco") ;
+  Countries_IND_provinces_Chandigarh = UsePN (mkPN "Chandigarh") ;
+  Countries_BD_cities_Mymensingh = UsePN (mkPN "Mymensingh") ;
+  Countries_CZ_provinces_Jihomoravsky_cities_Brno = UsePN (mkPN "Brno") ;
+  Countries_CR_provinces_SanJose_cities_SanJose = UsePN (mkPN "San Jose") ;
+  Countries_R_provinces_Pskovskayaoblast = UsePN (mkPN "Pskovskaya oblast") ;
+  Countries_CDN_provinces_PrinceEdwardIsland = UsePN (mkPN "Prince Edward Island") ;
+  Organizations_Caricom = UsePN (mkPN "Caribbean Community and Common Market") ;
+  Countries_IRL_cities_Dublin = UsePN (mkPN "Dublin") ;
+  Countries_TR_provinces_Elazig_cities_Elazig = UsePN (mkPN "Elazig") ;
+  Countries_CL_cities_Colombo = UsePN (mkPN "Colombo") ;
+  Organizations_SPF = UsePN (mkPN "South Pacific Forum") ;
+  Countries_CAM_provinces_Ouest_cities_Bafoussam = UsePN (mkPN "Bafoussam") ;
+  Countries_BR_provinces_RiodeJaneiro_cities_Olinda = UsePN (mkPN "Olinda") ;
+  Countries_GB_provinces_Northumberland = UsePN (mkPN "Northumberland") ;
+  Countries_I_provinces_EmiliaRomagna_cities_Piacenza = UsePN (mkPN "Piacenza") ;
+  Countries_BD_cities_Narayanganj = UsePN (mkPN "Narayanganj") ;
+  Countries_A_provinces_Burgenland_cities_Eisenstadt = UsePN (mkPN "Eisenstadt") ;
+  Countries_TR_provinces_Malatya_cities_Malatya = UsePN (mkPN "Malatya") ;
+  Countries_TR_provinces_Elazig = UsePN (mkPN "Elazig") ;
+  Countries_C_provinces_Granma = UsePN (mkPN "Granma") ;
+  Countries_VN_cities_ThaiNguyen = UsePN (mkPN "Thai Nguyen") ;
+  Countries_ZRE_provinces_BasZaire = UsePN (mkPN "Bas Zaire") ;
+  Countries_UA_provinces_Poltavska = UsePN (mkPN "Poltavska") ;
+
+}
diff --git a/examples/SUMO/QoSontology.gf b/examples/SUMO/QoSontology.gf
--- a/examples/SUMO/QoSontology.gf
+++ b/examples/SUMO/QoSontology.gf
@@ -1,1354 +1,1229 @@
-abstract QoSontology = open Merge, Mid_level_ontology, engineering in {
-
-
-
-
---  To exit a function or application without saving 
--- any data that has been changed.
-fun Abort : Class ;
-fun Abort_Class : SubClass Abort ComputerProcess ;
-
--- This is a subclass of 
--- TimingRequirementAttribute, which includes Instrument_AbstractionLevel, 
--- Method_AbstractionLevel, Object_AbstractionLevel, Task_AbstractionLevel,
--- and TaskGroup_AbstractionLevel.
-fun AbstractionLevelAttribute : Class ;
-fun AbstractionLevelAttribute_Class : SubClass AbstractionLevelAttribute TimingRequirementAttribute ;
-
--- (AddressFn ?FILE) returns as its value the 
--- physical address of the ComputerFile ?FILE.
-fun AddressFn : El ComputerFile -> Ind PhysicalAddress ;
-
-
--- An instance of the class 
--- RealtimeSystem has Initiation_DesignPattern if it consists of 
--- sensors connected to a software module that filters data from the 
--- sensors and sends the filtered data to another software module that 
--- evaluates the filtered data and sends decisions to a subsystem. 
--- The design pattern is a data source that produces a data stream for 
--- a data handler. The data source is typically a periodically sampled 
--- collection of sensors. The data stream's size may vary and is 
--- unbounded. Data may be either homogeneous or heterogeneous. The 
--- workload per data element for homogeneous data is constant. The 
--- workload per data element for heterogeneous data is a function of 
--- each element type. There is one deadline for real_time situation 
--- assessment systems. It is the upper bound on the time to process 
--- all elements in the data stream once.
-fun Assessment_DesignPattern : Class ;
-fun Assessment_DesignPattern_Class : SubClass Assessment_DesignPattern DesignPatternAttribute ;
-
--- A program which is started 
--- automatically, as opposed to an application started in response to 
--- some condition becoming true.
-fun AutomaticApplication : Class ;
-fun AutomaticApplication_Class : SubClass AutomaticApplication ComputerProgram ;
-
--- Berkeley Software Distribution (UNIX), 
--- a version of Unix distributed by the University of California at Berkeley. Widely 
--- used as a standard for early versions of Unix and Unix software libraries.
-fun BerkeleySoftwareDistribution : Class ;
-fun BerkeleySoftwareDistribution_Class : SubClass BerkeleySoftwareDistribution OperatingSystem ;
-
--- The measurement of the speed of data 
--- transfer in a communications system.
-fun BitsPerSecond : Class ;
-
-
--- A network in which all nodes are connected 
--- to a single wire (the bus) that has two endpoints. Ethernet 10Base_2 
--- and 10Base_5 networks, for example, are bus networks. Other common 
--- network types include StarNetworks and RingNetworks.
-fun BusNetwork : Class ;
-fun BusNetwork_Class : SubClass BusNetwork LAN ;
-
--- CPU (Central Processing Unit) is the computing part 
--- of the computer.
-fun CPU : Class ;
-fun CPU_Class : SubClass CPU (both ComputerComponent ComputerHardware) ;
-
-
--- (CPUUtilizationFn ?PROGRAM) refers to 
--- the percentage of time the CPU is used by an application ?PROGRAM.
-fun CPUUtilizationFn : El ComputerProgram -> Ind ConstantQuantity ;
-
-
--- A subclass of 
--- TimingRequirementAttribute, which includes
--- MultipleRequirement_Complexity and SingleRequirement_Complexity.
-fun ComplexityAttribute : Class ;
-fun ComplexityAttribute_Class : SubClass ComplexityAttribute TimingRequirementAttribute ;
-
--- Instances of ComputationalSystems 
--- include instances of SoftwareSystems, HardwareSystems, and 
--- ComputerNetworks.
-fun ComputationalSystem : Class ;
-fun ComputationalSystem_Class : SubClass ComputationalSystem Product ;
-
--- A general_purpose machine that processes 
--- data according to a set of instructions that are stored internally 
--- either temporarily or permanently.
-fun Computer : Class ;
-fun Computer_Class : SubClass Computer ElectricDevice ;
-
--- An instance of ComputerComponent is a 
--- piece of computer hardware that has measurable performance characteristics 
--- in terms of different units. Components include hard drives, the performance
--- of which can be measured in terms of BitsPerSecond required to transfer data 
--- to and from the drive, network adapters, the performance of which can be 
--- measured by PacketsPerSecond units of data transfered to and from the adapter, 
--- and other common components like ComputerMemory and CentralProcessingUnit.
-fun ComputerComponent : Class ;
-fun ComputerComponent_Class : SubClass ComputerComponent ComputerHardware ;
-
--- The term ComputerData refers to files 
--- and databases, text documents, and images.
-fun ComputerData : Class ;
-fun ComputerData_Class : SubClass ComputerData ContentBearingObject ;
-
--- This is the class of catalogs that 
--- identify and locate instances of ComputerFiles. The catalog's entries 
--- consist of at least ComputerFile names and a physical address on a memory
--- device of the ComputerFile or an index (e.g., file descriptor) into a 
--- table of ComputerFile physical addresses. ComputerDirectories are thus 
--- collections of data elements and must be named and stored on memory devices, 
--- hence, ComputerDirectory is a subset of ComputerFile. ComputerDirectory folders contain only files and other folders
-fun ComputerDirectory : Class ;
-fun ComputerDirectory_Class : SubClass ComputerDirectory ComputerFile ;
-
-fun ComputerFile_ComputerData : SubClass ComputerFile ComputerData ;
-
--- The hardware is the physical part of 
--- a computer system.
-fun ComputerHardware : Class ;
-fun ComputerHardware_Class : SubClass ComputerHardware EngineeringComponent ;
-
--- A peripheral device that generates 
--- input for the computer such as a keyboard, scanner, or mouse.
-fun ComputerInputDevice : Class ;
-fun ComputerInputDevice_Class : SubClass ComputerInputDevice ComputerHardware ;
-
--- The EnglishLanguage computer's workspace (physically, 
--- a collection of RAM chips). It is an important resource, since it 
--- determines the size and number of programs that can be run at the 
--- same time, as well as the amount of data that can be processed 
--- instantly.
-fun ComputerMemory : Class ;
-fun ComputerMemory_Class : SubClass ComputerMemory (both ComputerComponent ComputerHardware) ;
-
-
--- The network includes the network 
--- operating system in the client and server machines, the cables 
--- connecting them and all supporting hardware in between such as 
--- bridges, routers and switches.
-fun ComputerNetwork : Class ;
-fun ComputerNetwork_Class : SubClass ComputerNetwork (both ComputationalSystem RealtimeSystem) ;
-
-
--- Any peripheral that presents 
--- output from the computer, such as a screen or printer.
-fun ComputerOutputDevice : Class ;
-fun ComputerOutputDevice_Class : SubClass ComputerOutputDevice ComputerHardware ;
-
--- A word or code used to serve as a security 
--- measure against unauthorized access to data. It is normally managed by the 
--- operating system or DBMS.
-fun ComputerPassword : Class ;
-fun ComputerPassword_Class : SubClass ComputerPassword SymbolicString ;
-
--- An instance of ComputerPath is a series 
--- of programs that connects input devices, typically sensors, to output 
--- devices, typically actuators.
-fun ComputerPath : Class ;
-fun ComputerPath_Class : SubClass ComputerPath ComputerData ;
-
--- The class of all attributes that are 
--- specific to ComputerPaths.
-fun ComputerPathAttribute : Class ;
-fun ComputerPathAttribute_Class : SubClass ComputerPathAttribute SoftwareAttribute ;
-
--- An instance of ComputerProcess is a 
--- process which manipulates data in the computer.
-fun ComputerProcess : Class ;
-fun ComputerProcess_Class : SubClass ComputerProcess InternalChange ;
-
--- A collection of data, presented in a preformatted 
--- manner.
-fun ComputerReport : Class ;
-fun ComputerReport_Class : SubClass ComputerReport ComputerData ;
-
--- One element of hardware, software or data 
--- that is part of a larger system. For example, network resources are the 
--- available servers and printers in the network. Software resources can be 
--- programs, utilities or even smaller elements within a program. Data 
--- resources are the files and databases that can be accessed.
-fun ComputerResource : Class ;
-fun ComputerResource_Class : SubClass ComputerResource ComputationalSystem ;
-
--- A ComputerProcess which attempts to 
--- comply with a user's request.
-fun ComputerResponse : Class ;
-fun ComputerResponse_Class : SubClass ComputerResponse ComputerProcess ;
-
--- An attribute which describes status of the 
--- Computer, such as HostDown, HostReady.
-fun ComputerStatus : Class ;
-fun ComputerStatus_Class : SubClass ComputerStatus RelationalAttribute ;
-
--- In a multitasking environment, an 
--- independently running program or subprogram. Each task is assigned 
--- a task number.
-fun ComputerTask : Class ;
-fun ComputerTask_Class : SubClass ComputerTask ComputerProcess ;
-
--- A ComputerOutputDevice for displaying
--- information on some sort of screen or other reusable output surface. This
--- is contrasted with a Printer, which places a substance on a surface
--- that is for practical purposes, permanent.
-fun ComputerTerminal : Class ;
-fun ComputerTerminal_Class : SubClass ComputerTerminal ComputerOutputDevice ;
-
--- Any individual who interacts with a 
--- computer.
-fun ComputerUser : Class ;
-fun ComputerUser_Class : SubClass ComputerUser CognitiveAgent ;
-
--- This attribute applies to 
--- real_time systems that are designed and implemented so that the system 
--- can adapt by replicating the system components and executing them 
--- concurrently.
-fun Concurrency_FormOfAdaptation : Class ;
-fun Concurrency_FormOfAdaptation_Class : SubClass Concurrency_FormOfAdaptation FormOfAdaptationAttribute ;
-
--- A Program which is started inside 
--- an Xterm or other console.
-fun ConsoleApplication : Class ;
-fun ConsoleApplication_Class : SubClass ConsoleApplication ComputerProgram ;
-
--- The attribute which denotes that the 
--- path type is continuous, as opposed to transient or quasiconstinuous 
--- paths. A continuous path handles a stream of data arriving at a comment 
--- of rate.
-fun ContinuousPath : Class ;
-fun ContinuousPath_Class : SubClass ContinuousPath ComputerPathAttribute ;
-
--- Encoding data to take up less storage 
--- space.
-fun DataCompression : Class ;
-fun DataCompression_Class : SubClass DataCompression ComputerProcess ;
-
--- A process of copying the document, record or 
--- image being worked on onto a storage medium. Saving updates the file by 
--- writing the data that currently resides in memory (RAM) onto disk or tape. 
--- Most applications prompt the user to save data upon exiting.
-fun DataSaving : Class ;
-fun DataSaving_Class : SubClass DataSaving ComputerProcess ;
-
--- A device or part of the computer that 
--- receives data.
-fun DataSink : Class ;
-fun DataSink_Class : SubClass DataSink ComputerInputDevice ;
-
--- A subclass of ComputerProcesses which 
--- send data over a computer channel or bus.
-fun DataTransfer : Class ;
-fun DataTransfer_Class : SubClass DataTransfer ComputerProcess ;
-
--- A set of related files that is created and 
--- managed by a database management system (DBMS).
-fun Database : Class ;
-fun Database_Class : SubClass Database ComputerData ;
-
--- An instance of RealtimeSystem 
--- is described as Dependent_TaskRelation if it depends on at least one 
--- other function in the system, that is, its correct execution depends on 
--- the input from another function, the execution state of another function, 
--- or the acceptance of its outputs by another function.
-fun Dependent_TaskRelation : Ind TaskRelationAttribute ;
-
-
--- This is a subclass of 
--- RealtimeSystemAttribute, which includes Guidance_DesignPattern, 
--- Initiation_DesignPattern, and Assessment_DesignPattern.
-fun DesignPatternAttribute : Class ;
-fun DesignPatternAttribute_Class : SubClass DesignPatternAttribute RealtimeSystemAttribute ;
-
--- The attribute which denotes that 
--- the data stream is conceived as a stream of one datum after another, and 
--- each datum or identifiable group of data is separated by a constant of 
--- time.
-fun DeterministicDataStream : Class ;
-fun DeterministicDataStream_Class : SubClass DeterministicDataStream ComputerPathAttribute ;
-
--- The attribute which denotes that the 
--- path data stream type is dynamic, i.e. the time changes but the data 
--- stream follows a pattern.
-fun DynamicDataStream : Class ;
-fun DynamicDataStream_Class : SubClass DynamicDataStream ComputerPathAttribute ;
-
--- The class of attributes which 
--- correspond to environment variables. Environment variables are defined 
--- outside of a ComputerProgram, unlike ordinary variables that are 
--- defined in the source code of the ComputerProgram. Typically, the 
--- environment variable stores some value that many if not all 
--- ComputerProgams will need when they execute. An example is the
--- environment variable PATH under Unix_like operating systems that stores 
--- the ComputerDirectories where executable ComputerPrograms can be found. 
--- Another example is the environment variable CLASSPATH for Java programs, 
--- which stores the directory where Java class files can be found that will be 
--- needed by any ComputerProgram written in Java.
-fun EnvironmentSoftwareAttribute : Class ;
-fun EnvironmentSoftwareAttribute_Class : SubClass EnvironmentSoftwareAttribute RelationalAttribute ;
-
--- An instant in time that is arbitrarily selected as a point 
--- of reference.
-fun Epoch : Class ;
-fun Epoch_Class : SubClass Epoch TimePoint ;
-
--- Able to be run in its current format.
-fun Executable : Ind RelationalAttribute ;
-
-
--- The class of all messages to a resource 
--- management program from one of its processes.
-fun Feedback : Class ;
-fun Feedback_Class : SubClass Feedback ContentBearingObject ;
-
--- An attribute that applies to a 
--- RealtimeSystem just in case a fixed percentage of requirements 
--- is met.
-fun Firm_Strictness : Class ;
-fun Firm_Strictness_Class : SubClass Firm_Strictness StrictnessAttribute ;
-
--- A subclass of 
--- RealtimeSystemAttribute, which includes Precision_FormOfAdaptation, 
--- Slack_FormOfAdaptation, Concurrency_FormOfAdaptation, and 
--- ResourceAllocation_FormOfAdaptation.
-fun FormOfAdaptationAttribute : Class ;
-fun FormOfAdaptationAttribute_Class : SubClass FormOfAdaptationAttribute RealtimeSystemAttribute ;
-
--- Instances of RealtimeSystems 
--- are described as systems with Guidance_DesignPattern if they consist 
--- of sensors connected to a software module that filters data from the 
--- sensors and sends the filtered data to a software module that evaluates 
--- the filtered data and sends instructions to a software module that 
--- commands actuators. The design pattern is an event source that produces 
--- events and a data source that produces data, both executing in parallel 
--- and handled by a single event_driven periodic data handler. The two 
--- separate input streams have fundamentally different characteristics. 
--- The event stream is necessarily asychronous, or transient. Once an 
--- event is sensed, the handler accepts data from the data stream, which 
--- has an invariant cycle time. There are two deadlines for a real_time 
--- guidance system. The period deadline is the time to process all elements 
--- in the data stream once and generate an actuator command. The action 
--- completion deadline is the time to guide the actuator to completion of 
--- the action.
-fun Guidance_DesignPattern : Class ;
-fun Guidance_DesignPattern_Class : SubClass Guidance_DesignPattern DesignPatternAttribute ;
-
--- The primary computer storage medium, which 
--- is made of one or more aluminum or glass platters, coated with a 
--- ferromagnetic material. Most hard disks are fixed disks, which are 
--- permanently sealed in the drive.
-fun HardDiskDrive : Class ;
-fun HardDiskDrive_Class : SubClass HardDiskDrive (both ComputerComponent ComputerHardware) ;
-
-
--- An attribute that applies to a 
--- RealtimeSystem just in case all deadlines are met.
-fun Hard_Strictness : Class ;
-fun Hard_Strictness_Class : SubClass Hard_Strictness StrictnessAttribute ;
-
--- The class of hardware systems is the 
--- connection of three types of physical modules: instances of 
--- ComputerProcessor(s), ComputerMemory, and ComputerNetwork. 
--- ComputerProcessors execute instructions from ComputerPrograms, 
--- which usually include instructions to read and write data from 
--- memory, and send data via instances of ComputerNetworks.
-fun HardwareSystem : Class ;
-fun HardwareSystem_Class : SubClass HardwareSystem (both ComputationalSystem (both ComputerHardware RealtimeSystem)) ;
-
-
--- Used to indicate that a ComputationalSystem 
--- has a high priority.
-fun HighPriority : Ind PriorityAttribute ;
-
-
--- An attribute which applies to a computer that ceases to 
--- operate due to hardware or software failure.
-fun HostDown : Ind ComputerStatus ;
-
-
--- An attribute which applies to a computer that is 
--- functional, operating properly, and ready to receive work requests.
-fun HostReady : Ind ComputerStatus ;
-
-
--- An attribute that applies to a 
--- RealtimeSystem just in case the strictness of the system is a 
--- combination of Hard/Firm/Soft_Strictness with Importance_Strictness 
--- or a combination of Utility_Strictness with Importance_Strictness.
-fun Hybrid_Strictness : Class ;
-fun Hybrid_Strictness_Class : SubClass Hybrid_Strictness StrictnessAttribute ;
-
--- An instance of the class 
--- RealtimeSystem shows Hybrid_SystemBehavior if it is 
--- activated by transient events, i.e. it is executed at regular 
--- intervals when activated, and is deactivated by action completion.
-fun Hybrid_SystemBehavior : Class ;
-fun Hybrid_SystemBehavior_Class : SubClass Hybrid_SystemBehavior SystemBehaviorAttribute ;
-
--- The Internet Protocol address, a numeric address such as 123.231.32.2 that 
--- the domain name server translates into a domain name.
-fun IPAddress : Class ;
-fun IPAddress_Class : SubClass IPAddress PhysicalAddress ;
-
--- A picture (graphic) stored in a particular 
--- coding scheme and stored as a file. Note that this can include vector as 
--- well as raster images. Raster images will entail a particular number of 
--- horizontal and vertical pixels. Vector images will not entail a 
--- particular size or resolution.
-fun ImageFile : Class ;
-fun ImageFile_Class : SubClass ImageFile ComputerData ;
-
--- An attribute that applies to a 
--- RealtimeSystem just in case it is designed and implemented to meet 
--- the more important requirements first.
-fun Importance_Strictness : Class ;
-fun Importance_Strictness_Class : SubClass Importance_Strictness StrictnessAttribute ;
-
--- An instance of RealtimeSystem 
--- is described as Independent_TaskRelation if its correct execution 
--- does not depend on the inputs from any other function, the execution state 
--- of any other function, or the acceptance of its outputs by any other 
--- function.
-fun Independent_TaskRelation : Class ;
-fun Independent_TaskRelation_Class : SubClass Independent_TaskRelation TaskRelationAttribute ;
-
--- The function which returns as its value 
--- the initial profile of the program, i.e. a report of its execution 
--- characteristics.
-fun InitialProfileFn : El ComputerProgram -> Ind ProcessState ;
-
-
--- An instance of the class 
--- RealtimeSystem has Initiation_DesignPattern if it consists of 
--- one software module and the actuators it commands. The design pattern 
--- is an event source which produces events for an event handler. The 
--- event source is typically an evaluate_and_decide software module. 
--- The event stream is necessarily asychronous, or transient. The arrival 
--- rate of events may vary and is unbounded. Events may be either 
--- homogeneous or heterogeneous. The workload per event for homogeneous 
--- events is constant. The workload per event for heterogeneous events 
--- is a function of each event type. There is one deadline for real_time 
--- action initiation systems. It is the upper bound on the time to 
--- generate a command for the actuator.
-fun Initiation_DesignPattern : Class ;
-fun Initiation_DesignPattern_Class : SubClass Initiation_DesignPattern DesignPatternAttribute ;
-
--- The attribute 
--- Instrument_AbstractionLevel is the lowest level of abstraction, 
--- which can be used to describe a real_time system or subsystem.
-fun Instrument_AbstractionLevel : Class ;
-fun Instrument_AbstractionLevel_Class : SubClass Instrument_AbstractionLevel AbstractionLevelAttribute ;
-
--- A computer network that spans a relatively small 
--- area. Most LANs are confined to a single building or group of buildings. 
--- However, one LAN can be connected to other LANs over any distance via 
--- telephone lines and radio waves. LAN A local_area network (LAN) whose topology is a ring. 
--- That is, all of the nodes are connected in a closed loop. Messages 
--- travel around the ring, with each node reading those messages addressed 
--- to it.
-fun LAN : Class ;
-fun LAN_Class : SubClass LAN ComputerNetwork ;
-
--- Used to indicate that a ComputationalSystem 
--- has a low priority.
-fun LowPriority : Ind PriorityAttribute ;
-
-
--- Each element of MeasuringPerformance 
--- is an event of measuring the performance of an instance of ComputerComponent, 
--- performed by a MonitoringProgram.
-fun MeasuringPerformance : Class ;
-fun MeasuringPerformance_Class : SubClass MeasuringPerformance ComputerProcess ;
-
--- The attribute 
--- Method_AbstractionLevel is the next to the lowest level of 
--- abstraction that can be used to describe a real_time system or 
--- subsystem. This is at the level of describing every callable 
--- function (or method in an object_oriented language) implemented 
--- in software.
-fun Method_AbstractionLevel : Class ;
-fun Method_AbstractionLevel_Class : SubClass Method_AbstractionLevel AbstractionLevelAttribute ;
-
--- This command is to change the monitoring 
--- for any component for which a componentDataID was sent on initial connection.
-fun MonitorApplicationCmd : Class ;
-fun MonitorApplicationCmd_Class : SubClass MonitorApplicationCmd MonitoringProgram ;
-
--- This is the command to monitor any of the 
--- generic components _ hard drive, network, cpu, memory, etc.
-fun MonitorComponentCmd : Class ;
-fun MonitorComponentCmd_Class : SubClass MonitorComponentCmd MonitoringProgram ;
-
--- This is the command to get a list 
--- of applications periodically.
-fun MonitorConnectivityCmd : Class ;
-fun MonitorConnectivityCmd_Class : SubClass MonitorConnectivityCmd MonitoringProgram ;
-
--- A program which monitors performance 
--- of an application, a component, etc.
-fun MonitoringProgram : Class ;
-fun MonitoringProgram_Class : SubClass MonitoringProgram ComputerProgram ;
-
--- An attribute that describes 
--- instances of RealtimeSystems which require multiple timing requirements, 
--- both a bound for completion time for its transient behavior and a cycle 
--- deadline for its periodic behavior.
-fun MultipleRequirement_Complexity : Class ;
-fun MultipleRequirement_Complexity_Class : SubClass MultipleRequirement_Complexity ComplexityAttribute ;
-
--- The running of two or more programs in one 
--- computer at the same time. The number of programs that can be effectively 
--- multitasked depends on the type of multitasking performed (preemptive vs 
--- cooperative), CPU speed and memory and disk capacity.
-fun Multitasking : Class ;
-fun Multitasking_Class : SubClass Multitasking ComputerProcess ;
-
--- A network adapter, also known as a Network 
--- Interface Card or NIC, is a physical device installed in a computer on its 
--- system bus. Its purpose is to connect to a specific type of network,
--- usually an ethernet or a token ring network.
-fun NetworkAdapter : Class ;
-fun NetworkAdapter_Class : SubClass NetworkAdapter ComputerComponent ;
-
--- Network resources are the available 
--- servers and printers in the network.
-fun NetworkResource : Class ;
-fun NetworkResource_Class : SubClass NetworkResource ComputerResource ;
-
--- The attribute 
--- Object_AbstractionLevel is immediately above the attribute 
--- Method_AbstractionLevel and can be used to describe a real_time 
--- system or subsystem. This is at the level of describing every software 
--- object that can be created from a class together with its data structures 
--- and methods (which define the interface for manipulating the object).
-fun Object_AbstractionLevel : Class ;
-fun Object_AbstractionLevel_Class : SubClass Object_AbstractionLevel AbstractionLevelAttribute ;
-
--- The master control program that runs the 
--- computer. It is the first program loaded when the computer is turned on, 
--- and its main part, called the kernel, resides in memory at all times. It 
--- may be developed by the vendor of the computer it's running in or by a 
--- third party.
-fun OperatingSystem : Class ;
-fun OperatingSystem_Class : SubClass OperatingSystem SoftwareSystem ;
-
--- Optimization means finding the best solution according 
--- to a set of criteria. For a computer program, an optimal solution would be the 
--- fastest program (according to some benchmark) or the smallest program.
-fun Optimization : Class ;
-fun Optimization_Class : SubClass Optimization ProcessTask ;
-
--- A block of data used for transmission in packet 
--- switched systems.
-fun Packet : Class ;
-fun Packet_Class : SubClass Packet ComputerData ;
-
--- The rate or speed of Packet_Networks 
--- transferred in a second.
-fun PacketsPerSecond : Ind CompositeUnitOfMeasure ;
-
-
--- The attribute which denotes that 
--- the path importance is defined by the dynamic library procedure 
--- pathImportanceFunction. This functions passes arguments for priority 
--- and current time and returns an integer that represents importance.
-fun PathImportanceFunction : Ind ComputerPathAttribute ;
-
-
--- An instance of the class 
--- RealtimeSystem is described as a system with Periodic_SystemBehavior 
--- when it is activated at regular intervals.
-fun Periodic_SystemBehavior : Class ;
-fun Periodic_SystemBehavior_Class : SubClass Periodic_SystemBehavior SystemBehaviorAttribute ;
-
--- The collection of all addresses which 
--- identify a location of a ComputerFile.
-fun PhysicalAddress : Class ;
-fun PhysicalAddress_Class : SubClass PhysicalAddress SymbolicString ;
-
-fun Precision_FormOfAdaptation : Class ;
-fun Precision_FormOfAdaptation_Class : SubClass Precision_FormOfAdaptation FormOfAdaptationAttribute ;
--- A device that converts computer output into 
--- printed images.
-fun Printer : Class ;
-fun Printer_Class : SubClass Printer ComputerOutputDevice ;
-
--- A class of attributes which describe 
--- priorities of ComputationalSystems.
-fun PriorityAttribute : Class ;
-fun PriorityAttribute_Class : SubClass PriorityAttribute RelationalAttribute ;
-
--- An attribute that denotes the failure of the Process to achieve 
--- its goal.
-fun ProcessFailure : Ind ProcessStatus ;
-
-
--- The class of all the information required 
--- for a ComputerProgram to run on a processor. It is a vector that 
--- contains a pointer to the next program instruction to be executed as well 
--- as the values of all intermediate and defined variables, the state of the 
--- processor executing the program, and the allocated address space among 
--- other data.
-fun ProcessState : Class ;
-fun ProcessState_Class : SubClass ProcessState ContentBearingObject ;
-
--- A class of attributes. Each instance of ProcessStatus describes a 
--- status of a Process, such as ProcessFailure, ProcessSuccess, etc.
-fun ProcessStatus : Class ;
-fun ProcessStatus_Class : SubClass ProcessStatus RelationalAttribute ;
-
--- An attribute that denotes the success of the Process to achieve 
--- its goal.
-fun ProcessSuccess : Ind ProcessStatus ;
-
-
--- A function to be performed.
-fun ProcessTask : Class ;
-fun ProcessTask_Class : SubClass ProcessTask Abstract ;
-
--- An attribute which applies to 
--- computer paths which handle random events, which initiate a bounded 
--- stream of data arriving at a comment of rate, which the path must 
--- process.
-fun QuasicontinuousPath : Class ;
-fun QuasicontinuousPath_Class : SubClass QuasicontinuousPath ComputerPathAttribute ;
-
--- A program started by a Resource 
--- Management program, which determines if and where to start the 
--- application.
-fun RM_StartApplication : Class ;
-fun RM_StartApplication_Class : SubClass RM_StartApplication ComputerProgram ;
-
--- An computer_controlled system, the 
--- correct operation of which depends on meeting specified timing 
--- constraints.
-fun RealtimeSystem : Class ;
-fun RealtimeSystem_Class : SubClass RealtimeSystem ComputationalSystem ;
-
--- The class of Attributes which 
--- describe instances of the class RealtimeSystem.
-fun RealtimeSystemAttribute : Class ;
-fun RealtimeSystemAttribute_Class : SubClass RealtimeSystemAttribute RelationalAttribute ;
-
--- The attribute which denotes that 
--- a program can be restarted on the same host.
-fun ReplicationsOnSameHostOK : Ind SoftwareAttribute ;
-
-
--- This attribute applies 
--- to real_time systems that are designed and implemented so that the system 
--- can adapt under the control of a resource allocation manager like Desiderata.
-fun ResourceAllocation_FormOfAdaptation : Class ;
-fun ResourceAllocation_FormOfAdaptation_Class : SubClass ResourceAllocation_FormOfAdaptation FormOfAdaptationAttribute ;
-
--- The class of resource 
--- management programs.
-fun ResourceManagementProgram : Class ;
-fun ResourceManagementProgram_Class : SubClass ResourceManagementProgram ComputerProgram ;
-
--- The attribute which denotes that a program 
--- can be restarted.
-fun Restartable : Ind SoftwareAttribute ;
-
-
--- To use the same resource again.
-fun ReusingAResource : Class ;
-fun ReusingAResource_Class : SubClass ReusingAResource ComputerProcess ;
-
-fun RingNetwork : Class ;
-fun RingNetwork_Class : SubClass RingNetwork LAN ;
--- SatisfyingRequirements covers cases of 
--- finding a solution that satisfies necessary conditions.
-fun SatisfyingRequirements : Class ;
-fun SatisfyingRequirements_Class : SubClass SatisfyingRequirements ProcessTask ;
-
--- The attribute which denotes that 
--- an application can combine its input stream from different preceding 
--- applications or devices for greater scalability.
-fun ScalabilityCombining : Ind SoftwareAttribute ;
-
-
--- The attribute which denotes that 
--- a program can split its output stream to different succeeding 
--- applications or devices for greater scalability.
-fun ScalabilitySplitting : Ind SoftwareAttribute ;
-
-
--- The attribute which denotes that the path is 
--- scalable, i.e. the applications in the path can be replicated to meet 
--- realtime QoS requirements.
-fun Scalable : Class ;
-fun Scalable_Class : SubClass Scalable ComputerPathAttribute ;
-
--- Sensors include software that measures any 
--- attribute of executing computer programs or collections of executing 
--- programs, such as CPU utilization, aka load, memory utilization, I/O, 
--- overall task performance, network load and latency, etc.
-fun Sensor : Class ;
-fun Sensor_Class : SubClass Sensor ComputerHardware ;
-
--- A computer in a network shared by multiple users. 
--- The term may refer to both the hardware and software or just the software 
--- that performs the service.
-fun Server : Class ;
-fun Server_Class : SubClass Server ComputationalSystem ;
-
--- A typically small instance of 
--- ComputerProgram whose function is to end a typically larger
--- instance of ComputerProgram.
-fun ShutdownBlock : Class ;
-fun ShutdownBlock_Class : SubClass ShutdownBlock ComputerProgram ;
-
--- (ShutdownFn ?Program) returns an instance of 
--- ShutdownBlock which contains the instructions to end ?PROGRAM.
-fun ShutdownFn : El ComputerProgram -> Ind ShutdownBlock ;
-
-
--- An attribute that describes 
--- instances of RealtimeSystems which require a single timing requirement,
--- either a bound for completion time for systems with 
--- Transient_SystemBehavior or cycle deadline for systems with 
--- Periodic_SystemBehavior.
-fun SingleRequirement_Complexity : Class ;
-fun SingleRequirement_Complexity_Class : SubClass SingleRequirement_Complexity ComplexityAttribute ;
-
--- The attribute Slack_FormOfAdaptation 
--- applies to real_time systems that are designed and implemented with enough 
--- resource overhead that the system can always adapt by utilizing the overhead 
--- without complicated decision making.
-fun Slack_FormOfAdaptation : Class ;
-fun Slack_FormOfAdaptation_Class : SubClass Slack_FormOfAdaptation FormOfAdaptationAttribute ;
-
--- An attribute that applies to a 
--- RealtimeSystem just in case it maximizes the number of timing 
--- requirements like deadlines that are met but does not guarantee that 
--- all such requirements will be met or any fixed percentage of 
--- requirements will be met.
-fun Soft_Strictness : Class ;
-fun Soft_Strictness_Class : SubClass Soft_Strictness StrictnessAttribute ;
-
--- The class of all attributes that are 
--- specific to SoftwareSystems.
-fun SoftwareAttribute : Class ;
-fun SoftwareAttribute_Class : SubClass SoftwareAttribute RelationalAttribute ;
-
--- This is the class of mutually supportive 
--- groups of instances of ComputerProgram for a single general purpose. 
--- For example, a database management system is a collection of many instances
--- of ComputerProgram that work together to store, retrieve, modify, and 
--- delete data.
-fun SoftwareSystem : Class ;
-fun SoftwareSystem_Class : SubClass SoftwareSystem (both ComputationalSystem RealtimeSystem) ;
-
-
--- The class of all instances of Solaris , a 
--- unix_based operating system for Sun SPARC computers. It includes the 
--- Open Look and Motif graphical user interfaces, OpenWindows (the Sun 
--- version of X Windows), DOS and Windows Emulation, and ONC networking.
-fun Solaris : Class ;
-fun Solaris_Class : SubClass Solaris OperatingSystem ;
-
--- A local_area network (LAN) that uses a star 
--- topology in which all nodes are connected to a central computer.
-fun StarNetwork : Class ;
-fun StarNetwork_Class : SubClass StarNetwork LAN ;
-
--- A typically small instance of ComputerProgram 
--- (a sequence of instructions that will run on a computer) whose function is 
--- to load and initialize a typically larger instance of ComputerProgram 
--- and start it running.
-fun StartupBlock : Class ;
-fun StartupBlock_Class : SubClass StartupBlock ComputerProgram ;
-
--- (StartupFn ?Program) returns an instance of 
--- StartupBlock which contains the instructions to start the ?Program.
-fun StartupFn : El ComputerProgram -> Ind StartupBlock ;
-
-
--- The attribute which denotes that 
--- the time between data or groups of data changes according to no 
--- discernible pattern.
-fun StochasticDataStream : Class ;
-fun StochasticDataStream_Class : SubClass StochasticDataStream ComputerPathAttribute ;
-
--- This is a subclass of 
--- TimingRequirementAttribute, which includes Hard_Strictness, 
--- Firm_Strictness, Soft_Strictness, Importance_Strictness,
--- Utility_Strictness, and Hybrid_Strictness
-fun StrictnessAttribute : Class ;
-fun StrictnessAttribute_Class : SubClass StrictnessAttribute TimingRequirementAttribute ;
-
--- A subclass of 
--- RealtimeSystemAttribute, which includes the following Attributes: 
--- Periodic_SystemBehavior, Transient_SystemBehavior, and 
--- Hybrid_SystemBehavior.
-fun SystemBehaviorAttribute : Class ;
-fun SystemBehaviorAttribute_Class : SubClass SystemBehaviorAttribute RealtimeSystemAttribute ;
-
--- The attribute 
--- TaskGroup_AbstractionLevel is immediately above the attribute 
--- Task_AbstractionLevel and can be used to describe a real_time 
--- system or subsystem This is at the level of describing groups of 
--- tasks which are related or connected by the real_time systems and 
--- are typically part of a concurrently executing path.
-fun TaskGroup_AbstractionLevel : Class ;
-fun TaskGroup_AbstractionLevel_Class : SubClass TaskGroup_AbstractionLevel AbstractionLevelAttribute ;
-
--- This is a subclass of 
--- RealtimeSystemAttribute, which includes Independent_TaskRelation 
--- and Dependent_TaskRelation.
-fun TaskRelationAttribute : Class ;
-fun TaskRelationAttribute_Class : SubClass TaskRelationAttribute RealtimeSystemAttribute ;
-
--- The attribute 
--- Task_AbstractionLevel is immediately above the attribute 
--- Object_AbstractionLevel and can be used to describe a real_time 
--- system or subsystem. This is at the level of describing the major 
--- tasks that are carried out by the real_time systems and are typically 
--- executable as individual processes. The description of a task would 
--- consist of listing all the software objects used to perform the task.
-fun Task_AbstractionLevel : Class ;
-fun Task_AbstractionLevel_Class : SubClass Task_AbstractionLevel AbstractionLevelAttribute ;
-
--- A subclass of 
--- RealtimeSystemAttribute which includes ComplexityAttribute, 
--- StrictnessAttribute, and AbstractionLevelAttribute.
-fun TimingRequirementAttribute : Class ;
-fun TimingRequirementAttribute_Class : SubClass TimingRequirementAttribute RealtimeSystemAttribute ;
-
--- An attribute which applies to computer 
--- paths which handle random events.
-fun TransientPath : Class ;
-fun TransientPath_Class : SubClass TransientPath ComputerPathAttribute ;
-
--- An instance of the class 
--- RealtimeSystem shows Transient_SystemBehavior when it is 
--- activated by sporadic events.
-fun Transient_SystemBehavior : Class ;
-fun Transient_SystemBehavior_Class : SubClass Transient_SystemBehavior SystemBehaviorAttribute ;
-
--- A UniformResourceIdentifier 
--- (URI) is a compact string of characters for identifying an abstract or 
--- physical resource. A URI can be further classified as a locator, a name, 
--- or both (source: http://www.ietf.org/rfc/rfc2396.txt).
-fun UniformResourceIdentifier : Class ;
-fun UniformResourceIdentifier_Class : SubClass UniformResourceIdentifier ContentBearingObject ;
-
--- The term UniformResourceLocator 
--- (URL) refers to the subset of URI that identify resources via a 
--- representation of their primary access mechanism (e.g., their network 
--- location), rather than identifying the resource by name or by some other 
--- attribute(s) of that resource (source: http://www.ietf.org/rfc/rfc2396.txt).
-fun UniformResourceLocator : Class ;
-fun UniformResourceLocator_Class : SubClass UniformResourceLocator UniformResourceIdentifier ;
-
--- The term UniformResourceName (URN) 
--- refers to the subset of URI that are required to remain globally unique 
--- and persistent even when the resource ceases to exist or becomes 
--- unavailable (source: http://www.ietf.org/rfc/rfc2396.txt).
-fun UniformResourceName : Class ;
-fun UniformResourceName_Class : SubClass UniformResourceName UniformResourceIdentifier ;
-
--- The Unix epoch or point of reference is 00:00:00 UTC, 
--- January 1, 1970.
-fun UnixEpoch : Ind Epoch ;
-
-
--- An established relationship between a user and a 
--- computer, network or information service. User accounts require a username and 
--- password, and new user accounts are given a default set of permissions.
-fun UserAccount : Class ;
-fun UserAccount_Class : SubClass UserAccount ContentBearingObject ;
-
--- The name a person uses to identify himself or herself 
--- when logging onto a computer system or online service.
-fun UserName : Class ;
-fun UserName_Class : SubClass UserName SymbolicString ;
-
--- A request made by a ComputerUser, such as 
--- looking up a customer record.
-fun UserRequest : Class ;
-fun UserRequest_Class : SubClass UserRequest ComputerProcess ;
-
--- A ComputerProcess which requires access to a 
--- ComputerResource.
-fun UsingAResource : Class ;
-fun UsingAResource_Class : SubClass UsingAResource ComputerProcess ;
-
--- A program that performs a specific task related to the 
--- management of computer functions, resources, or files. Utility programs range 
--- from the simple to the sophisticated, and many programmers specialize in producing 
--- and distributing them as shareware. There are utilities that perform file and 
--- directory management, data compression, disk defragmentation and repair, system 
--- diagnostics, graphics viewing, and system security, for example. Many utilities 
--- are written as memory_resident programs meant to serve as adjuncts to operating 
--- systems. Many operating systems incorporate such popular utility functions as 
--- undeleting, password protection, memory management, virus protection, and file 
--- compression.
-fun Utility : Class ;
-fun Utility_Class : SubClass Utility ComputerProgram ;
-
--- An attribute that applies to a 
--- RealtimeSystem just in case it is designed and implemented to use 
--- a utility_computing function, which is applied to competing timing 
--- requirements to determine which should be met because meeting the 
--- requirement produces higher utility as defined by the function.
-fun Utility_Strictness : Class ;
-fun Utility_Strictness_Class : SubClass Utility_Strictness StrictnessAttribute ;
-
-fun abstractionLevel : El RealtimeSystem -> El AbstractionLevelAttribute -> Formula ;
-
--- (bandwidthOf ?NET ?BANDWIDTH) holds if 
--- ?BANDWIDTH is the amount of data which can be sent through an instance 
--- of a ComputerNetwork ?NET, measured in bits per second.
-fun bandwidthOf : El ComputerNetwork -> El BitsPerSecond -> Formula ;
-
-
--- (batchInterArrival ?PATH ?TIME) 
--- holds if ?TIME is the maximum allowable time between processing of a 
--- particular element of a continuous or quasicontinuous path's data 
--- stream in successive cycles.
-fun batchInterArrival : El ComputerPath -> El TimeDuration -> Formula ;
-
-
--- (batchLatency ?PATH ?TIME)holds if ?TIME 
--- is the maximum allowed latency for all cycles of a quasicontinuous path.
-fun batchLatency : El ComputerPath -> El TimeDuration -> Formula ;
-
-
--- (benchmarkPerformance ?SYSTEM 
--- ?TEST ?NUMBER) holds if ?NUMBER is a benchmark for measuring the performance 
--- of an instance of a ComputationalSystem.
-fun benchmarkPerformance : El ComputationalSystem -> El MonitoringProgram -> El Quantity -> Formula ;
-
-
--- (collectRate ?System ?Period) holds if ?Period is 
--- the period at which ComputationalSystem ?System collects data.
-fun collectRate : El ComputationalSystem -> El TimeDuration -> Formula ;
-
-
--- (commandLineArguments ?PROGRAM 
--- ?LIST) means that the application ?PROGRAM requires command line 
--- arguments, as specified in ?LIST.
-fun commandLineArguments : El ComputerProgram -> El List -> Formula ;
-
-
--- (complexity ?System ?Attribute) holds if 
--- ?Attribute is a TimingRequirementAttribute which describes the 
--- RealtimeSystem ?System.
-fun complexity : El RealtimeSystem -> El TimingRequirementAttribute -> Formula ;
-
-
--- (componentDataID ?TIME ?COMPONENT ?INSTANCE 
--- ?UNIT ?NUMBER) holds if ?INSTANCE is an instance of ?COMPONENT, identified by 
--- IDNumber ?NUMBER, and whose performance is measured by a UnitOfMeasure_ComputerPerformance ?UNIT. The timestamp ?TIME identifies the time when this 
--- information was created.
-fun componentDataID: El TimePosition -> Desc ComputerComponent -> El ComputerComponent -> El UnitOfMeasure -> El SymbolicString -> Formula ;
-
-
--- (computerResponseTo ?Response ?Request) means that 
--- ?Response is a ComputerResponse to the UserRequest ?Request.
-fun computerResponseTo : El ComputerResponse -> El UserRequest -> Formula ;
-
-
--- (computerRunning ?Process ?Computer) 
--- means that the ComputerProcess ?Process is running on ?Computer.
-fun computerRunning : El ComputerProcess -> El Computer -> Formula ;
-
-
--- (criticalityLevel ?PROGRAM ?INTEGER) 
--- holds just in case ?INTEGER indicates the relative priority of ?PROGRAM 
--- with respect to other applications within the SoftwareSystem.
-fun criticalityLevel : El ComputerProgram -> El Integer -> Formula ;
-
-
--- (dataID ?PROGRAM ?NUMBER) holds if ?NUMBER is a small 
--- number associated with an instance of MonitoringProgram.
-fun dataID : El MonitoringProgram -> El SymbolicString -> Formula ;
-
-
--- The data being processed during a 
--- ComputerProcess.
-fun dataProcessed : El ComputerProcess -> El ComputerData -> Formula ;
-
-
--- (dataStreamSlack ?PATH ?N) means that 
--- a continuous or quasicontinuous path ?PATH should be able to process ?N 
--- additional data items at any time.
-fun dataStreamSlack : El ComputerPath -> El PositiveInteger -> Formula ;
-
-
--- (defaultNetwork ?SYSTEM ?NET) holds if 
--- ?NET is the default network of the HardwareSystem ?SYSTEM.
-fun defaultNetwork : El HardwareSystem -> El ComputerNetwork -> Formula ;
-
-
--- if the dependency type is StartupBlock, 
--- then (dependencyDelay ?PROGRAM ?TIME) means that the application 
--- ?PROGRAM can only be started after a dependency delay of ?TIME after the 
--- startup of the application. If the dependency type is ShutdownBlock, then 
--- (dependencyDelay ?PROGRAM ?TIME) means that the application ?PROGRAM can 
--- only be stopped after a dependency delay of ?TIME after the application 
--- is stopped.
-fun dependencyDelay : El ComputerProgram -> El TimeDuration -> Formula ;
-
-
--- (dependencyType ?PROGRAM ?TYPE) means 
--- that ?PROGRAM has a dependency type ?TYPE, where ?TYPE can be either 
--- StartupBlock or ShutdownBlock.
-fun dependencyType: El ComputerProgram -> Desc ComputerProgram -> Formula ;
-
-
--- (designPattern ?System ?Attribute) holds 
--- if ?Attribute is a DesignPatternAttribute which describes the 
--- RealtimeSystem ?System.
-fun designPattern : El RealtimeSystem -> El DesignPatternAttribute -> Formula ;
-
-
--- (directoryOf ?FILE ?DIRECTORY) means that 
--- the ComputerFile ?FILE is in the ComputerDirectory ?DIRECTORY.
-fun directoryOf : El ComputerFile -> El ComputerDirectory -> Formula ;
-
-
--- (environmentAttributes ?Program 
--- ?Attribute) holds if ?Attribute is an EnvironmentSoftwareAttribute 
--- which describes the ComputerProgram ?Program.
-fun environmentAttributes : El ComputerProgram -> El EnvironmentSoftwareAttribute -> Formula ;
-
-
--- (formOfAdaptation ?System ?Attribute) 
--- holds if ?Attribute is a FormOfAdaptationAttribute which describes the 
--- RealtimeSystem ?System.
-fun formOfAdaptation : El RealtimeSystem -> El FormOfAdaptationAttribute -> Formula ;
-
-
--- Granularity is a sub_property of the 
--- timing requirements property of real_time systems. Granularity is 
--- defined by how a timing requirement is specified in units of time.
-fun granularity : El RealtimeSystem -> El TimeDuration -> Formula ;
-
-
--- (hardwareType ?TYPE ?COMPUTER) means that 
--- TYPE represents the computer vendor model name, as well as the version 
--- of the product.
-fun hardwareType : El SymbolicString -> El Computer -> Formula ;
-
-
--- (hasAccount ?User ?Account) holds if ?User is 
--- assigned the UserAccount ?Account.
-fun hasAccount : El ComputerUser -> El UserAccount -> Formula ;
-
-
--- (hasDependency ?PROGRAM1 ?PROGRAM2) 
--- holds if ?PROGRAM1 is dependent on the application ?PROGRAM2.
-fun hasDependency : El ComputerProgram -> El ComputerProgram -> Formula ;
-
-
--- (heartBeatRate ?Program ?Period) holds if 
--- ?Period is the period at which the ComputerProgram ?Program sends its heartbeat 
--- to a monitoring process.
-fun heartBeatRate : El ComputerProgram -> El TimeDuration -> Formula ;
-
-
--- Interference on an analog line caused by a variation 
--- of a signal from its reference timing slots. Jitter can cause problems in the receipt 
--- of data and any subsequent processing of that data.
-fun hostJitter : El Computer -> El ConstantQuantity -> Formula ;
-
-
--- (hostOf ?SYSTEM ?COMPUTER) means that ?COMPUTER 
--- is the host of the computational system ?SYSTEM.
-fun hostOf : El ComputationalSystem -> El Computer -> Formula ;
-
-
--- (hostStatus ?Computer ?Status) means that ?Status 
--- describes the status of the Computer, such as HostDown, HostReady.
-fun hostStatus : El Computer -> El ComputerStatus -> Formula ;
-
-
--- The degree of sharpness of a displayed or printed 
--- image.
-fun imageResolution : El ImageFile -> El PhysicalQuantity -> Formula ;
-
-
--- (ipAddressOf ?HOST ?ADDRESS) holds if ?ADDRESS is the IPAddress of 
--- the computer ?HOST.
-fun ipAddressOf : El Computer -> El IPAddress -> Formula ;
-
-
--- In performance measurement, the current use of a 
--- system as a percentage of total capacity.
-fun load : El ComputerComponent -> El ConstantQuantity -> Formula ;
-
-
--- (maximumReplications ?PROGRAM ?INTEGER) means that 
--- ?INTEGER represents the maximum number of copies of this application which can be run 
--- during a process.
-fun maximumReplications : El ComputerProgram -> El PositiveInteger -> Formula ;
-
-
--- (memorySize ?System ?Size) holds if 
--- ?Size is the required memory size for the ComputationalSystem 
--- ?System.
-fun memorySize : El ComputationalSystem -> El ConstantQuantity -> Formula ;
-
-
--- (minimumReplications ?PROGRAM 
--- ?INTEGER) means that ?INTEGER represents the minimum copies of the 
--- application ?PROGRAM required to be survivable, where a program is 
--- survivable if the failure of one or more resources does not result 
--- in the failure of the program. Either long MTTF for the system as a 
--- whole or short MTTR when failure occurs would improve the survivability
--- of a program.
-fun minimumReplications : El ComputerProgram -> El PositiveInteger -> Formula ;
-
-
--- (monitorApplicationData ?TIME 
--- ?APPLICATION) holds if the time stamp ?TIME specifies the time at which 
--- ?APPLICATION is running.
-fun monitorApplicationData : El TimePosition -> El ComputerProgram -> Formula ;
-
-
--- (monitorComponentData ?TIME ?ID 
--- ?NUMBER) holds if at time ?TIME, a component with the IDNumber ?ID 
--- has a performance of a value ?NUMBER.
-fun monitorComponentData : El TimePosition -> El SymbolicString -> El RealNumber -> Formula ;
-
-
--- (monitorConnectivityData ?TIME 
--- ?IPADDRESS) is a relation between a timestamp ?TIME and an ?IP address.
-fun monitorConnectivityData : El TimePosition -> El IPAddress -> Formula ;
-
-
--- (numberOfCPUs ?COMPUTER ?INTEGER) means 
--- that the number of CPUs for the host ?COMPUTER is equal to INTEGER.
-fun numberOfCPUs : El Computer -> El PositiveInteger -> Formula ;
-
-
--- (password ?Password ?User) means that ?Password is 
--- the password the ComputerUser uses while logging onto a computer system.
-fun password : El ComputerUser -> El ComputerPassword -> Formula ;
-
-
--- (performanceResult ?EVENT ?COMPONENT 
--- ?NUMBER) holds if the performance of ?COMPONENT has a value ?NUMBER, 
--- measured by ?EVENT, an instance of MeasuringPerformance.
-fun performanceResult : El MeasuringPerformance -> El ComputerComponent -> El RealNumber -> Formula ;
-
-
--- (portNumber ?PROGRAM ?NUMBER) holds if ?NUMBER identifies a protocol 
--- port, i.e. a TCP_IP software abstraction used to distinguish different applications providing 
--- services within a single destination computer. The different ports on a host are identified by a 
--- positive 16_bit number.
-fun portNumber : El ComputerProgram -> El PositiveInteger -> Formula ;
-
-
--- (priority ?SYSTEM ?QUANTITY) means that the 
--- priority of the ?SYSTEM is characterized by a PriorityAttribute, such 
--- as HighPriority or LowPriority.
-fun priority : El ComputationalSystem -> El PriorityAttribute -> Formula ;
-
-
--- (processAborted ?Abort ?Process) means 
--- that the ComputerProcess ?Process is aborted as the result of ?Abort.
-fun processAborted : El Abort -> El ComputerProcess -> Formula ;
-
-
--- (processID ?PROCESS ?NUMBER) holds if ?NUMBER is a unique number 
--- generated by the operating system and used to refer to the ComputerProcess ?PROCESS. There 
--- is usually no significance to the numbers as they are reused as old processes die and new processes 
--- are created.
-fun processID : El ComputerProcess -> El PositiveInteger -> Formula ;
-
-
--- The arguments of this relation are data 
--- structures, each of which contains the information necessary for the 
--- process already loaded by the operating system to execute on a processor.
-fun processList : [El Entity] -> Formula ;
-
-
--- (productModel ?Model ?Product) means that 
--- ?Model represents the type of the Product ?Product
-fun productModel : El SymbolicString -> El Product -> Formula ;
-
-
--- (programCopy ?File ?Program) means that 
--- the ComputerFile ?File is one of the copies of the ComputerProgram 
--- ?Program.
-fun programCopy : El ComputerFile -> El ComputerProgram -> Formula ;
-
-
--- (programRunning ?Process ?Program) 
--- means that the ComputerProcess ?Process is executing the 
--- ComputerProgram ?Program.
-fun programRunning : El ComputerProcess -> El ComputerProgram -> Formula ;
-
-
--- (qoSSlack ?PATH ?MIN ?MAX) holds if ?PATH 
--- has a realtime QoS maximum slack percentage of ?MAX and minimum of 
--- ?MIN.
-fun qoSSlack : El ComputerPath -> El ConstantQuantity -> El ConstantQuantity -> Formula ;
-
-
--- (rMProgram_of ?RM ?SYSTEM) means that 
--- ?RM is the resource management program of the SoftwareSystem ?SYSTEM.
-fun rMProgram_of : El ResourceManagementProgram -> El SoftwareSystem -> Formula ;
-
-
--- (requestRate ?Request ?Period) means that 
--- ?Period is the period at which the user sends its ?Request.
-fun requestRate : El UserRequest -> El TimeDuration -> Formula ;
-
-
--- (resourceUsed ?Process ?Resource) means that the 
--- ComputerProcess ?Process has access to the ComputerResource ?Resource.
-fun resourceUsed : El ComputerProcess -> El ComputerResource -> Formula ;
-
-
--- (responseRate ?Response ?Period) means 
--- that ?Period is the period at which the computer sends its ?Response.
-fun responseRate : El ComputerResponse -> El TimeDuration -> Formula ;
-
-
--- The time it takes for the computer to comply 
--- with a user's request, such as looking up a customer record.
-fun responseTime : El UserRequest -> El TimeDuration -> Formula ;
-
-
--- (runningOn ?Program ?Computer) holds if the 
--- ComputerProgram ?Program is being executed on ?Computer.
-fun runningOn : El ComputerProgram -> El Computer -> Formula ;
-
-
--- (runsOn ?Program ?Computer) means that ?Program 
--- is capable of running on ?Computer.
-fun runsOn : El ComputerProgram -> El Computer -> Formula ;
-
-
--- (sendRate ?Program ?Period) holds if ?Period is the 
--- period at which the ComputationalSystem ?System sends data reports.
-fun sendRate : El ComputationalSystem -> El TimeDuration -> Formula ;
-
-
--- (settlingTime ?PROGRAM ?TIME) says that 
--- ?TIME represents seconds to delay after an action was taken with respect 
--- to QoS.
-fun settlingTime : El ComputerProgram -> El TimeDuration -> Formula ;
-
-
--- (shutdownOf ?SHUTDOWN ?PROGRAM) holds just 
--- in case an instance of ShutdownBlock ?SHUTDOWN specifies a set of 
--- instructions to end ?PROGRAM.
-fun shutdownOf : El ShutdownBlock -> El ComputerProgram -> Formula ;
-
-
--- (simpleDeadline ?PATH ?TIME)holds if 
--- ?TIME is the maximum end_to_end path latency during a cycle of a 
--- continuous or quasicontinuous path or during the activation of a transient 
--- path.
-fun simpleDeadline : El ComputerPath -> El TimeDuration -> Formula ;
-
-
--- (slidingWindowSize ?PATH ?N) holds 
--- if PATH has a realtime QoS sliding window size of ?N measured samples.
-fun slidingWindowSize : El ComputerPath -> El PositiveInteger -> Formula ;
-
-
--- (softwarePath ?SYSTEM ?PATH) means that 
--- ?PATH is a computer path for the instance of SoftwareSystem ?SYSTEM.
-fun softwarePath : El SoftwareSystem -> El ComputerPath -> Formula ;
-
-
--- (standardErrorDevice ?PROGRAM 
--- ?DEVICE) holds just in case the DEVICE is the predefined error channel
--- with which the running version of this program is initialised.
-fun standardErrorDevice : El ComputerProcess -> El ComputerOutputDevice -> Formula ;
-
-
--- (standardInputDevice ?PROCESS 
--- ?DEVICE) holds just in case the DEVICE is the predefined input channel
--- with which the running version of the program PROCESS is initialised.
-fun standardInputDevice : El ComputerProcess -> El ComputerInputDevice -> Formula ;
-
-
--- (standardOutputDevice ?PROGRAM 
--- ?DEVICE) holds just in case the DEVICE is the predefined output channel 
--- with which the running version of this program is initialised.
-fun standardOutputDevice : El ComputerProcess -> El ComputerOutputDevice -> Formula ;
-
-
--- (startupOf ?STARTUP ?PROGRAM) holds just in 
--- case an instance of StartupBlock ?STARTUP specifies a set of instructions 
--- to start the ?PROGRAM.
-fun startupOf : El StartupBlock -> El ComputerProgram -> Formula ;
-
-
--- (startupTimeDelay ?PROGRAM ?TIME) 
--- says that ?TIME is the time to delay after the previous application 
--- was started before starting the application ?PROGRAM.
-fun startupTimeDelay : El ComputerProgram -> El TimeDuration -> Formula ;
-
-
--- (stateOfProcess ?PROCESS ?STATE) says 
--- that ?STATE is a state of the ComputerProcess ?PROCESS.
-fun stateOfProcess : El ComputerProcess -> El ProcessState -> Formula ;
-
-
--- (status ?PROCESS ?STATUS) holds if ?STATUS is the current status of ?PROCESS.
-fun status : El ComputerProcess -> El ProcessStatus -> Formula ;
-
-
--- (strictness ?System ?Attribute) holds if 
--- the StrictnessAttribute ?Attribute describes the RealtimeSystem 
--- ?System.
-fun strictness : El RealtimeSystem -> El StrictnessAttribute -> Formula ;
-
-
--- (systemBehavior ?System ?Attribute) 
--- holds if ?Attribute is a SystemBehaviorAttribute which describes the 
--- RealtimeSystem ?System.
-fun systemBehavior : El RealtimeSystem -> El SystemBehaviorAttribute -> Formula ;
-
-
--- (systemMeasured ?Event ?System) means that 
--- ?Event is an event of measuring the performance of the ComputationalSystem 
--- ?System.
-fun systemMeasured : El MeasuringPerformance -> El ComputationalSystem -> Formula ;
-
-
--- (task ?Process ?Task) means that ?Task is a function to 
--- be performed by the ComputerProcess ?Process.
-fun task : El ComputerProcess -> El ProcessTask -> Formula ;
-
-
--- (taskRelation ?System ?Attribute) holds 
--- if ?Attribute is a TaskRelationAttribute which describes the 
--- RealtimeSystem ?System.
-fun taskRelation : El RealtimeSystem -> El TaskRelationAttribute -> Formula ;
-
-
-fun thresholdOf : El Computer -> El PositiveRealNumber -> Formula ;
-
--- (unitMeasuringPerformance ?COMPONENT 
--- ?UNIT) holds in case ?UNIT is an instance of UnitOfMeasure which is used to 
--- measure the performance of ?COMPONENT.
-fun unitMeasuringPerformance : El ComputerComponent -> El UnitOfMeasure -> Formula ;
-
-
--- (userName ?Name ?User) means that ?Name is the name 
--- the ComputerUser uses to identify himself or herself when logging onto a 
--- computer system.
-fun userName : El ComputerUser -> El UserName -> Formula ;
+abstract QoSontology = MidLevelOntology, Engineering ** {
+
+  --  To exit a function or application without saving 
+  -- any data that has been changed.
+  fun Abort : Class ;
+  fun Abort_Class : SubClass Abort ComputerProcess ;
+
+  -- This is a subclass of 
+  -- TimingRequirementAttribute, which includes Instrument_AbstractionLevel, 
+  -- Method_AbstractionLevel, Object_AbstractionLevel, Task_AbstractionLevel,
+  -- and TaskGroup_AbstractionLevel.
+  fun AbstractionLevelAttribute : Class ;
+  fun AbstractionLevelAttribute_Class : SubClass AbstractionLevelAttribute TimingRequirementAttribute ;
+
+  -- (AddressFn ?FILE) returns as its value the 
+  -- physical address of the ComputerFile ?FILE.
+  fun AddressFn : El ComputerFile -> Ind PhysicalAddress ;
+
+  -- An instance of the class 
+  -- RealtimeSystem has Initiation_DesignPattern if it consists of 
+  -- sensors connected to a software module that filters data from the 
+  -- sensors and sends the filtered data to another software module that 
+  -- evaluates the filtered data and sends decisions to a subsystem. 
+  -- The design pattern is a data source that produces a data stream for 
+  -- a data handler. The data source is typically a periodically sampled 
+  -- collection of sensors. The data stream's size may vary and is 
+  -- unbounded. Data may be either homogeneous or heterogeneous. The 
+  -- workload per data element for homogeneous data is constant. The 
+  -- workload per data element for heterogeneous data is a function of 
+  -- each element type. There is one deadline for real_time situation 
+  -- assessment systems. It is the upper bound on the time to process 
+  -- all elements in the data stream once.
+  fun Assessment_DesignPattern : Class ;
+  fun Assessment_DesignPattern_Class : SubClass Assessment_DesignPattern DesignPatternAttribute ;
+
+  -- A program which is started 
+  -- automatically, as opposed to an application started in response to 
+  -- some condition becoming true.
+  fun AutomaticApplication : Class ;
+  fun AutomaticApplication_Class : SubClass AutomaticApplication ComputerProgram ;
+
+  -- Berkeley Software Distribution (UNIX), 
+  -- a version of Unix distributed by the University of California at Berkeley. Widely 
+  -- used as a standard for early versions of Unix and Unix software libraries.
+  fun BerkeleySoftwareDistribution : Class ;
+  fun BerkeleySoftwareDistribution_Class : SubClass BerkeleySoftwareDistribution OperatingSystem ;
+
+  -- The measurement of the speed of data 
+  -- transfer in a communications system.
+  fun BitsPerSecond : Class ;
+
+  -- A network in which all nodes are connected 
+  -- to a single wire (the bus) that has two endpoints. Ethernet 10Base_2 
+  -- and 10Base_5 networks, for example, are bus networks. Other common 
+  -- network types include StarNetworks and RingNetworks.
+  fun BusNetwork : Class ;
+  fun BusNetwork_Class : SubClass BusNetwork LAN ;
+
+  -- CPU (Central Processing Unit) is the computing part 
+  -- of the computer.
+  fun CPU : Class ;
+  fun CPU_Class : SubClass CPU (both ComputerComponent ComputerHardware) ;
+
+  -- (CPUUtilizationFn ?PROGRAM) refers to 
+  -- the percentage of time the CPU is used by an application ?PROGRAM.
+  fun CPUUtilizationFn : El ComputerProgram -> Ind ConstantQuantity ;
+
+  -- A subclass of 
+  -- TimingRequirementAttribute, which includes
+  -- MultipleRequirement_Complexity and SingleRequirement_Complexity.
+  fun ComplexityAttribute : Class ;
+  fun ComplexityAttribute_Class : SubClass ComplexityAttribute TimingRequirementAttribute ;
+
+  -- Instances of ComputationalSystems 
+  -- include instances of SoftwareSystems, HardwareSystems, and 
+  -- ComputerNetworks.
+  fun ComputationalSystem : Class ;
+  fun ComputationalSystem_Class : SubClass ComputationalSystem Product ;
+
+  -- A general_purpose machine that processes 
+  -- data according to a set of instructions that are stored internally 
+  -- either temporarily or permanently.
+  fun Computer : Class ;
+  fun Computer_Class : SubClass Computer ElectricDevice ;
+
+  -- An instance of ComputerComponent is a 
+  -- piece of computer hardware that has measurable performance characteristics 
+  -- in terms of different units. Components include hard drives, the performance
+  -- of which can be measured in terms of BitsPerSecond required to transfer data 
+  -- to and from the drive, network adapters, the performance of which can be 
+  -- measured by PacketsPerSecond units of data transfered to and from the adapter, 
+  -- and other common components like ComputerMemory and CentralProcessingUnit.
+  fun ComputerComponent : Class ;
+  fun ComputerComponent_Class : SubClass ComputerComponent ComputerHardware ;
+
+  -- The term ComputerData refers to files 
+  -- and databases, text documents, and images.
+  fun ComputerData : Class ;
+  fun ComputerData_Class : SubClass ComputerData ContentBearingObject ;
+
+  -- This is the class of catalogs that 
+  -- identify and locate instances of ComputerFiles. The catalog's entries 
+  -- consist of at least ComputerFile names and a physical address on a memory
+  -- device of the ComputerFile or an index (e.g., file descriptor) into a 
+  -- table of ComputerFile physical addresses. ComputerDirectories are thus 
+  -- collections of data elements and must be named and stored on memory devices, 
+  -- hence, ComputerDirectory is a subset of ComputerFile. ComputerDirectory folders contain only files and other folders
+  fun ComputerDirectory : Class ;
+  fun ComputerDirectory_Class : SubClass ComputerDirectory ComputerFile ;
+
+  fun ComputerFile_ComputerData : SubClass ComputerFile ComputerData ;
+
+  -- The hardware is the physical part of 
+  -- a computer system.
+  fun ComputerHardware : Class ;
+  fun ComputerHardware_Class : SubClass ComputerHardware EngineeringComponent ;
+
+  -- A peripheral device that generates 
+  -- input for the computer such as a keyboard, scanner, or mouse.
+  fun ComputerInputDevice : Class ;
+  fun ComputerInputDevice_Class : SubClass ComputerInputDevice ComputerHardware ;
+
+  -- The EnglishLanguage computer's workspace (physically, 
+  -- a collection of RAM chips). It is an important resource, since it 
+  -- determines the size and number of programs that can be run at the 
+  -- same time, as well as the amount of data that can be processed 
+  -- instantly.
+  fun ComputerMemory : Class ;
+  fun ComputerMemory_Class : SubClass ComputerMemory (both ComputerComponent ComputerHardware) ;
+
+  -- The network includes the network 
+  -- operating system in the client and server machines, the cables 
+  -- connecting them and all supporting hardware in between such as 
+  -- bridges, routers and switches.
+  fun ComputerNetwork : Class ;
+  fun ComputerNetwork_Class : SubClass ComputerNetwork (both ComputationalSystem RealtimeSystem) ;
+
+  -- Any peripheral that presents 
+  -- output from the computer, such as a screen or printer.
+  fun ComputerOutputDevice : Class ;
+  fun ComputerOutputDevice_Class : SubClass ComputerOutputDevice ComputerHardware ;
+
+  -- A word or code used to serve as a security 
+  -- measure against unauthorized access to data. It is normally managed by the 
+  -- operating system or DBMS.
+  fun ComputerPassword : Class ;
+  fun ComputerPassword_Class : SubClass ComputerPassword SymbolicString ;
+
+  -- An instance of ComputerPath is a series 
+  -- of programs that connects input devices, typically sensors, to output 
+  -- devices, typically actuators.
+  fun ComputerPath : Class ;
+  fun ComputerPath_Class : SubClass ComputerPath ComputerData ;
+
+  -- The class of all attributes that are 
+  -- specific to ComputerPaths.
+  fun ComputerPathAttribute : Class ;
+  fun ComputerPathAttribute_Class : SubClass ComputerPathAttribute SoftwareAttribute ;
+
+  -- An instance of ComputerProcess is a 
+  -- process which manipulates data in the computer.
+  fun ComputerProcess : Class ;
+  fun ComputerProcess_Class : SubClass ComputerProcess InternalChange ;
+
+  -- A collection of data, presented in a preformatted 
+  -- manner.
+  fun ComputerReport : Class ;
+  fun ComputerReport_Class : SubClass ComputerReport ComputerData ;
+
+  -- One element of hardware, software or data 
+  -- that is part of a larger system. For example, network resources are the 
+  -- available servers and printers in the network. Software resources can be 
+  -- programs, utilities or even smaller elements within a program. Data 
+  -- resources are the files and databases that can be accessed.
+  fun ComputerResource : Class ;
+  fun ComputerResource_Class : SubClass ComputerResource ComputationalSystem ;
+
+  -- A ComputerProcess which attempts to 
+  -- comply with a user's request.
+  fun ComputerResponse : Class ;
+  fun ComputerResponse_Class : SubClass ComputerResponse ComputerProcess ;
+
+  -- An attribute which describes status of the 
+  -- Computer, such as HostDown, HostReady.
+  fun ComputerStatus : Class ;
+  fun ComputerStatus_Class : SubClass ComputerStatus RelationalAttribute ;
+
+  -- In a multitasking environment, an 
+  -- independently running program or subprogram. Each task is assigned 
+  -- a task number.
+  fun ComputerTask : Class ;
+  fun ComputerTask_Class : SubClass ComputerTask ComputerProcess ;
+
+  -- A ComputerOutputDevice for displaying
+  -- information on some sort of screen or other reusable output surface. This
+  -- is contrasted with a Printer, which places a substance on a surface
+  -- that is for practical purposes, permanent.
+  fun ComputerTerminal : Class ;
+  fun ComputerTerminal_Class : SubClass ComputerTerminal ComputerOutputDevice ;
+
+  -- Any individual who interacts with a 
+  -- computer.
+  fun ComputerUser : Class ;
+  fun ComputerUser_Class : SubClass ComputerUser CognitiveAgent ;
+
+  -- This attribute applies to 
+  -- real_time systems that are designed and implemented so that the system 
+  -- can adapt by replicating the system components and executing them 
+  -- concurrently.
+  fun Concurrency_FormOfAdaptation : Class ;
+  fun Concurrency_FormOfAdaptation_Class : SubClass Concurrency_FormOfAdaptation FormOfAdaptationAttribute ;
+
+  -- A Program which is started inside 
+  -- an Xterm or other console.
+  fun ConsoleApplication : Class ;
+  fun ConsoleApplication_Class : SubClass ConsoleApplication ComputerProgram ;
+
+  -- The attribute which denotes that the 
+  -- path type is continuous, as opposed to transient or quasiconstinuous 
+  -- paths. A continuous path handles a stream of data arriving at a comment 
+  -- of rate.
+  fun ContinuousPath : Class ;
+  fun ContinuousPath_Class : SubClass ContinuousPath ComputerPathAttribute ;
+
+  -- Encoding data to take up less storage space.
+  fun DataCompression : Class ;
+  fun DataCompression_Class : SubClass DataCompression ComputerProcess ;
+
+  -- A process of copying the document, record or 
+  -- image being worked on onto a storage medium. Saving updates the file by 
+  -- writing the data that currently resides in memory (RAM) onto disk or tape. 
+  -- Most applications prompt the user to save data upon exiting.
+  fun DataSaving : Class ;
+  fun DataSaving_Class : SubClass DataSaving ComputerProcess ;
+
+  -- A device or part of the computer that 
+  -- receives data.
+  fun DataSink : Class ;
+  fun DataSink_Class : SubClass DataSink ComputerInputDevice ;
+
+  -- A subclass of ComputerProcesses which 
+  -- send data over a computer channel or bus.
+  fun DataTransfer : Class ;
+  fun DataTransfer_Class : SubClass DataTransfer ComputerProcess ;
+
+  -- A set of related files that is created and 
+  -- managed by a database management system (DBMS).
+  fun Database : Class ;
+  fun Database_Class : SubClass Database ComputerData ;
+
+  -- An instance of RealtimeSystem 
+  -- is described as Dependent_TaskRelation if it depends on at least one 
+  -- other function in the system, that is, its correct execution depends on 
+  -- the input from another function, the execution state of another function, 
+  -- or the acceptance of its outputs by another function.
+  fun Dependent_TaskRelation : Ind TaskRelationAttribute ;
+
+  -- This is a subclass of 
+  -- RealtimeSystemAttribute, which includes Guidance_DesignPattern, 
+  -- Initiation_DesignPattern, and Assessment_DesignPattern.
+  fun DesignPatternAttribute : Class ;
+  fun DesignPatternAttribute_Class : SubClass DesignPatternAttribute RealtimeSystemAttribute ;
+
+  -- The attribute which denotes that 
+  -- the data stream is conceived as a stream of one datum after another, and 
+  -- each datum or identifiable group of data is separated by a constant of 
+  -- time.
+  fun DeterministicDataStream : Class ;
+  fun DeterministicDataStream_Class : SubClass DeterministicDataStream ComputerPathAttribute ;
+
+  -- The attribute which denotes that the 
+  -- path data stream type is dynamic, i.e. the time changes but the data 
+  -- stream follows a pattern.
+  fun DynamicDataStream : Class ;
+  fun DynamicDataStream_Class : SubClass DynamicDataStream ComputerPathAttribute ;
+
+  -- The class of attributes which 
+  -- correspond to environment variables. Environment variables are defined 
+  -- outside of a ComputerProgram, unlike ordinary variables that are 
+  -- defined in the source code of the ComputerProgram. Typically, the 
+  -- environment variable stores some value that many if not all 
+  -- ComputerProgams will need when they execute. An example is the
+  -- environment variable PATH under Unix_like operating systems that stores 
+  -- the ComputerDirectories where executable ComputerPrograms can be found. 
+  -- Another example is the environment variable CLASSPATH for Java programs, 
+  -- which stores the directory where Java class files can be found that will be 
+  -- needed by any ComputerProgram written in Java.
+  fun EnvironmentSoftwareAttribute : Class ;
+  fun EnvironmentSoftwareAttribute_Class : SubClass EnvironmentSoftwareAttribute RelationalAttribute ;
+
+  -- An instant in time that is arbitrarily selected as a point of reference.
+  fun Epoch : Class ;
+  fun Epoch_Class : SubClass Epoch TimePoint ;
+
+  -- Able to be run in its current format.
+  fun Executable : Ind RelationalAttribute ;
+
+  -- The class of all messages to a resource 
+  -- management program from one of its processes.
+  fun Feedback : Class ;
+  fun Feedback_Class : SubClass Feedback ContentBearingObject ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case a fixed percentage of requirements 
+  -- is met.
+  fun Firm_Strictness : Class ;
+  fun Firm_Strictness_Class : SubClass Firm_Strictness StrictnessAttribute ;
+
+  -- A subclass of 
+  -- RealtimeSystemAttribute, which includes Precision_FormOfAdaptation, 
+  -- Slack_FormOfAdaptation, Concurrency_FormOfAdaptation, and 
+  -- ResourceAllocation_FormOfAdaptation.
+  fun FormOfAdaptationAttribute : Class ;
+  fun FormOfAdaptationAttribute_Class : SubClass FormOfAdaptationAttribute RealtimeSystemAttribute ;
+
+  -- Instances of RealtimeSystems 
+  -- are described as systems with Guidance_DesignPattern if they consist 
+  -- of sensors connected to a software module that filters data from the 
+  -- sensors and sends the filtered data to a software module that evaluates 
+  -- the filtered data and sends instructions to a software module that 
+  -- commands actuators. The design pattern is an event source that produces 
+  -- events and a data source that produces data, both executing in parallel 
+  -- and handled by a single event_driven periodic data handler. The two 
+  -- separate input streams have fundamentally different characteristics. 
+  -- The event stream is necessarily asychronous, or transient. Once an 
+  -- event is sensed, the handler accepts data from the data stream, which 
+  -- has an invariant cycle time. There are two deadlines for a real_time 
+  -- guidance system. The period deadline is the time to process all elements 
+  -- in the data stream once and generate an actuator command. The action 
+  -- completion deadline is the time to guide the actuator to completion of 
+  -- the action.
+  fun Guidance_DesignPattern : Class ;
+  fun Guidance_DesignPattern_Class : SubClass Guidance_DesignPattern DesignPatternAttribute ;
+
+  -- The primary computer storage medium, which 
+  -- is made of one or more aluminum or glass platters, coated with a 
+  -- ferromagnetic material. Most hard disks are fixed disks, which are 
+  -- permanently sealed in the drive.
+  fun HardDiskDrive : Class ;
+  fun HardDiskDrive_Class : SubClass HardDiskDrive (both ComputerComponent ComputerHardware) ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case all deadlines are met.
+  fun Hard_Strictness : Class ;
+  fun Hard_Strictness_Class : SubClass Hard_Strictness StrictnessAttribute ;
+
+  -- The class of hardware systems is the 
+  -- connection of three types of physical modules: instances of 
+  -- ComputerProcessor(s), ComputerMemory, and ComputerNetwork. 
+  -- ComputerProcessors execute instructions from ComputerPrograms, 
+  -- which usually include instructions to read and write data from 
+  -- memory, and send data via instances of ComputerNetworks.
+  fun HardwareSystem : Class ;
+  fun HardwareSystem_Class : SubClass HardwareSystem (both ComputationalSystem (both ComputerHardware RealtimeSystem)) ;
+
+  -- Used to indicate that a ComputationalSystem 
+  -- has a high priority.
+  fun HighPriority : Ind PriorityAttribute ;
+
+  -- An attribute which applies to a computer that ceases to 
+  -- operate due to hardware or software failure.
+  fun HostDown : Ind ComputerStatus ;
+
+  -- An attribute which applies to a computer that is 
+  -- functional, operating properly, and ready to receive work requests.
+  fun HostReady : Ind ComputerStatus ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case the strictness of the system is a 
+  -- combination of Hard/Firm/Soft_Strictness with Importance_Strictness 
+  -- or a combination of Utility_Strictness with Importance_Strictness.
+  fun Hybrid_Strictness : Class ;
+  fun Hybrid_Strictness_Class : SubClass Hybrid_Strictness StrictnessAttribute ;
+
+  -- An instance of the class 
+  -- RealtimeSystem shows Hybrid_SystemBehavior if it is 
+  -- activated by transient events, i.e. it is executed at regular 
+  -- intervals when activated, and is deactivated by action completion.
+  fun Hybrid_SystemBehavior : Class ;
+  fun Hybrid_SystemBehavior_Class : SubClass Hybrid_SystemBehavior SystemBehaviorAttribute ;
+
+  -- The Internet Protocol address, a numeric address such as 123.231.32.2 that 
+  -- the domain name server translates into a domain name.
+  fun IPAddress : Class ;
+  fun IPAddress_Class : SubClass IPAddress PhysicalAddress ;
+
+  -- A picture (graphic) stored in a particular 
+  -- coding scheme and stored as a file. Note that this can include vector as 
+  -- well as raster images. Raster images will entail a particular number of 
+  -- horizontal and vertical pixels. Vector images will not entail a 
+  -- particular size or resolution.
+  fun ImageFile : Class ;
+  fun ImageFile_Class : SubClass ImageFile ComputerData ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case it is designed and implemented to meet 
+  -- the more important requirements first.
+  fun Importance_Strictness : Class ;
+  fun Importance_Strictness_Class : SubClass Importance_Strictness StrictnessAttribute ;
+
+  -- An instance of RealtimeSystem 
+  -- is described as Independent_TaskRelation if its correct execution 
+  -- does not depend on the inputs from any other function, the execution state 
+  -- of any other function, or the acceptance of its outputs by any other 
+  -- function.
+  fun Independent_TaskRelation : Class ;
+  fun Independent_TaskRelation_Class : SubClass Independent_TaskRelation TaskRelationAttribute ;
+
+  -- The function which returns as its value 
+  -- the initial profile of the program, i.e. a report of its execution 
+  -- characteristics.
+  fun InitialProfileFn : El ComputerProgram -> Ind ProcessState ;
+
+  -- An instance of the class 
+  -- RealtimeSystem has Initiation_DesignPattern if it consists of 
+  -- one software module and the actuators it commands. The design pattern 
+  -- is an event source which produces events for an event handler. The 
+  -- event source is typically an evaluate_and_decide software module. 
+  -- The event stream is necessarily asychronous, or transient. The arrival 
+  -- rate of events may vary and is unbounded. Events may be either 
+  -- homogeneous or heterogeneous. The workload per event for homogeneous 
+  -- events is constant. The workload per event for heterogeneous events 
+  -- is a function of each event type. There is one deadline for real_time 
+  -- action initiation systems. It is the upper bound on the time to 
+  -- generate a command for the actuator.
+  fun Initiation_DesignPattern : Class ;
+  fun Initiation_DesignPattern_Class : SubClass Initiation_DesignPattern DesignPatternAttribute ;
+
+  -- The attribute Instrument_AbstractionLevel is the lowest level of abstraction, 
+  -- which can be used to describe a real_time system or subsystem.
+  fun Instrument_AbstractionLevel : Class ;
+  fun Instrument_AbstractionLevel_Class : SubClass Instrument_AbstractionLevel AbstractionLevelAttribute ;
+
+  -- A computer network that spans a relatively small 
+  -- area. Most LANs are confined to a single building or group of buildings. 
+  -- However, one LAN can be connected to other LANs over any distance via 
+  -- telephone lines and radio waves. LAN A local_area network (LAN) whose topology is a ring. 
+  -- That is, all of the nodes are connected in a closed loop. Messages 
+  -- travel around the ring, with each node reading those messages addressed 
+  -- to it.
+  fun LAN : Class ;
+  fun LAN_Class : SubClass LAN ComputerNetwork ;
+
+  -- Used to indicate that a ComputationalSystem 
+  -- has a low priority.
+  fun LowPriority : Ind PriorityAttribute ;
+
+  -- Each element of MeasuringPerformance 
+  -- is an event of measuring the performance of an instance of ComputerComponent, 
+  -- performed by a MonitoringProgram.
+  fun MeasuringPerformance : Class ;
+  fun MeasuringPerformance_Class : SubClass MeasuringPerformance ComputerProcess ;
+
+  -- The attribute 
+  -- Method_AbstractionLevel is the next to the lowest level of 
+  -- abstraction that can be used to describe a real_time system or 
+  -- subsystem. This is at the level of describing every callable 
+  -- function (or method in an object_oriented language) implemented 
+  -- in software.
+  fun Method_AbstractionLevel : Class ;
+  fun Method_AbstractionLevel_Class : SubClass Method_AbstractionLevel AbstractionLevelAttribute ;
+
+  -- This command is to change the monitoring 
+  -- for any component for which a componentDataID was sent on initial connection.
+  fun MonitorApplicationCmd : Class ;
+  fun MonitorApplicationCmd_Class : SubClass MonitorApplicationCmd MonitoringProgram ;
+
+  -- This is the command to monitor any of the 
+  -- generic components _ hard drive, network, cpu, memory, etc.
+  fun MonitorComponentCmd : Class ;
+  fun MonitorComponentCmd_Class : SubClass MonitorComponentCmd MonitoringProgram ;
+
+  -- This is the command to get a list 
+  -- of applications periodically.
+  fun MonitorConnectivityCmd : Class ;
+  fun MonitorConnectivityCmd_Class : SubClass MonitorConnectivityCmd MonitoringProgram ;
+
+  -- A program which monitors performance 
+  -- of an application, a component, etc.
+  fun MonitoringProgram : Class ;
+  fun MonitoringProgram_Class : SubClass MonitoringProgram ComputerProgram ;
+
+  -- An attribute that describes 
+  -- instances of RealtimeSystems which require multiple timing requirements, 
+  -- both a bound for completion time for its transient behavior and a cycle 
+  -- deadline for its periodic behavior.
+  fun MultipleRequirement_Complexity : Class ;
+  fun MultipleRequirement_Complexity_Class : SubClass MultipleRequirement_Complexity ComplexityAttribute ;
+
+  -- The running of two or more programs in one 
+  -- computer at the same time. The number of programs that can be effectively 
+  -- multitasked depends on the type of multitasking performed (preemptive vs 
+  -- cooperative), CPU speed and memory and disk capacity.
+  fun Multitasking : Class ;
+  fun Multitasking_Class : SubClass Multitasking ComputerProcess ;
+
+  -- A network adapter, also known as a Network 
+  -- Interface Card or NIC, is a physical device installed in a computer on its 
+  -- system bus. Its purpose is to connect to a specific type of network,
+  -- usually an ethernet or a token ring network.
+  fun NetworkAdapter : Class ;
+  fun NetworkAdapter_Class : SubClass NetworkAdapter ComputerComponent ;
+
+  -- Network resources are the available 
+  -- servers and printers in the network.
+  fun NetworkResource : Class ;
+  fun NetworkResource_Class : SubClass NetworkResource ComputerResource ;
+
+  -- The attribute 
+  -- Object_AbstractionLevel is immediately above the attribute 
+  -- Method_AbstractionLevel and can be used to describe a real_time 
+  -- system or subsystem. This is at the level of describing every software 
+  -- object that can be created from a class together with its data structures 
+  -- and methods (which define the interface for manipulating the object).
+  fun Object_AbstractionLevel : Class ;
+  fun Object_AbstractionLevel_Class : SubClass Object_AbstractionLevel AbstractionLevelAttribute ;
+
+  -- The master control program that runs the 
+  -- computer. It is the first program loaded when the computer is turned on, 
+  -- and its main part, called the kernel, resides in memory at all times. It 
+  -- may be developed by the vendor of the computer it's running in or by a 
+  -- third party.
+  fun OperatingSystem : Class ;
+  fun OperatingSystem_Class : SubClass OperatingSystem SoftwareSystem ;
+
+  -- Optimization means finding the best solution according 
+  -- to a set of criteria. For a computer program, an optimal solution would be the 
+  -- fastest program (according to some benchmark) or the smallest program.
+  fun Optimization : Class ;
+  fun Optimization_Class : SubClass Optimization ProcessTask ;
+
+  -- A block of data used for transmission in packet 
+  -- switched systems.
+  fun Packet : Class ;
+  fun Packet_Class : SubClass Packet ComputerData ;
+
+  -- The rate or speed of Packet_Networks 
+  -- transferred in a second.
+  fun PacketsPerSecond : Ind CompositeUnitOfMeasure ;
+
+  -- The attribute which denotes that 
+  -- the path importance is defined by the dynamic library procedure 
+  -- pathImportanceFunction. This functions passes arguments for priority 
+  -- and current time and returns an integer that represents importance.
+  fun PathImportanceFunction : Ind ComputerPathAttribute ;
+
+  -- An instance of the class 
+  -- RealtimeSystem is described as a system with Periodic_SystemBehavior 
+  -- when it is activated at regular intervals.
+  fun Periodic_SystemBehavior : Class ;
+  fun Periodic_SystemBehavior_Class : SubClass Periodic_SystemBehavior SystemBehaviorAttribute ;
+
+  -- The collection of all addresses which 
+  -- identify a location of a ComputerFile.
+  fun PhysicalAddress : Class ;
+  fun PhysicalAddress_Class : SubClass PhysicalAddress SymbolicString ;
+
+  fun Precision_FormOfAdaptation : Class ;
+  fun Precision_FormOfAdaptation_Class : SubClass Precision_FormOfAdaptation FormOfAdaptationAttribute ;
+  -- A device that converts computer output into 
+  -- printed images.
+  fun Printer : Class ;
+  fun Printer_Class : SubClass Printer ComputerOutputDevice ;
+
+  -- A class of attributes which describe 
+  -- priorities of ComputationalSystems.
+  fun PriorityAttribute : Class ;
+  fun PriorityAttribute_Class : SubClass PriorityAttribute RelationalAttribute ;
+
+  -- An attribute that denotes the failure of the Process to achieve 
+  -- its goal.
+  fun ProcessFailure : Ind ProcessStatus ;
+
+  -- The class of all the information required 
+  -- for a ComputerProgram to run on a processor. It is a vector that 
+  -- contains a pointer to the next program instruction to be executed as well 
+  -- as the values of all intermediate and defined variables, the state of the 
+  -- processor executing the program, and the allocated address space among 
+  -- other data.
+  fun ProcessState : Class ;
+  fun ProcessState_Class : SubClass ProcessState ContentBearingObject ;
+
+  -- A class of attributes. Each instance of ProcessStatus describes a 
+  -- status of a Process, such as ProcessFailure, ProcessSuccess, etc.
+  fun ProcessStatus : Class ;
+  fun ProcessStatus_Class : SubClass ProcessStatus RelationalAttribute ;
+
+  -- An attribute that denotes the success of the Process to achieve 
+  -- its goal.
+  fun ProcessSuccess : Ind ProcessStatus ;
+
+  -- A function to be performed.
+  fun ProcessTask : Class ;
+  fun ProcessTask_Class : SubClass ProcessTask Abstract ;
+
+  -- An attribute which applies to 
+  -- computer paths which handle random events, which initiate a bounded 
+  -- stream of data arriving at a comment of rate, which the path must 
+  -- process.
+  fun QuasicontinuousPath : Class ;
+  fun QuasicontinuousPath_Class : SubClass QuasicontinuousPath ComputerPathAttribute ;
+
+  -- A program started by a Resource 
+  -- Management program, which determines if and where to start the 
+  -- application.
+  fun RM_StartApplication : Class ;
+  fun RM_StartApplication_Class : SubClass RM_StartApplication ComputerProgram ;
+
+  -- An computer_controlled system, the 
+  -- correct operation of which depends on meeting specified timing 
+  -- constraints.
+  fun RealtimeSystem : Class ;
+  fun RealtimeSystem_Class : SubClass RealtimeSystem ComputationalSystem ;
+
+  -- The class of Attributes which 
+  -- describe instances of the class RealtimeSystem.
+  fun RealtimeSystemAttribute : Class ;
+  fun RealtimeSystemAttribute_Class : SubClass RealtimeSystemAttribute RelationalAttribute ;
+
+  -- The attribute which denotes that 
+  -- a program can be restarted on the same host.
+  fun ReplicationsOnSameHostOK : Ind SoftwareAttribute ;
+
+  -- This attribute applies 
+  -- to real_time systems that are designed and implemented so that the system 
+  -- can adapt under the control of a resource allocation manager like Desiderata.
+  fun ResourceAllocation_FormOfAdaptation : Class ;
+  fun ResourceAllocation_FormOfAdaptation_Class : SubClass ResourceAllocation_FormOfAdaptation FormOfAdaptationAttribute ;
+
+  -- The class of resource 
+  -- management programs.
+  fun ResourceManagementProgram : Class ;
+  fun ResourceManagementProgram_Class : SubClass ResourceManagementProgram ComputerProgram ;
+
+  -- The attribute which denotes that a program 
+  -- can be restarted.
+  fun Restartable : Ind SoftwareAttribute ;
+
+  -- To use the same resource again.
+  fun ReusingAResource : Class ;
+  fun ReusingAResource_Class : SubClass ReusingAResource ComputerProcess ;
+
+  fun RingNetwork : Class ;
+  fun RingNetwork_Class : SubClass RingNetwork LAN ;
+  -- SatisfyingRequirements covers cases of 
+  -- finding a solution that satisfies necessary conditions.
+  fun SatisfyingRequirements : Class ;
+  fun SatisfyingRequirements_Class : SubClass SatisfyingRequirements ProcessTask ;
+
+  -- The attribute which denotes that 
+  -- an application can combine its input stream from different preceding 
+  -- applications or devices for greater scalability.
+  fun ScalabilityCombining : Ind SoftwareAttribute ;
+
+  -- The attribute which denotes that 
+  -- a program can split its output stream to different succeeding 
+  -- applications or devices for greater scalability.
+  fun ScalabilitySplitting : Ind SoftwareAttribute ;
+
+  -- The attribute which denotes that the path is 
+  -- scalable, i.e. the applications in the path can be replicated to meet 
+  -- realtime QoS requirements.
+  fun Scalable : Class ;
+  fun Scalable_Class : SubClass Scalable ComputerPathAttribute ;
+
+  -- Sensors include software that measures any 
+  -- attribute of executing computer programs or collections of executing 
+  -- programs, such as CPU utilization, aka load, memory utilization, I/O, 
+  -- overall task performance, network load and latency, etc.
+  fun Sensor : Class ;
+  fun Sensor_Class : SubClass Sensor ComputerHardware ;
+
+  -- A computer in a network shared by multiple users. 
+  -- The term may refer to both the hardware and software or just the software 
+  -- that performs the service.
+  fun Server : Class ;
+  fun Server_Class : SubClass Server ComputationalSystem ;
+
+  -- A typically small instance of 
+  -- ComputerProgram whose function is to end a typically larger
+  -- instance of ComputerProgram.
+  fun ShutdownBlock : Class ;
+  fun ShutdownBlock_Class : SubClass ShutdownBlock ComputerProgram ;
+
+  -- (ShutdownFn ?Program) returns an instance of 
+  -- ShutdownBlock which contains the instructions to end ?PROGRAM.
+  fun ShutdownFn : El ComputerProgram -> Ind ShutdownBlock ;
+
+  -- An attribute that describes 
+  -- instances of RealtimeSystems which require a single timing requirement,
+  -- either a bound for completion time for systems with 
+  -- Transient_SystemBehavior or cycle deadline for systems with 
+  -- Periodic_SystemBehavior.
+  fun SingleRequirement_Complexity : Class ;
+  fun SingleRequirement_Complexity_Class : SubClass SingleRequirement_Complexity ComplexityAttribute ;
+
+  -- The attribute Slack_FormOfAdaptation 
+  -- applies to real_time systems that are designed and implemented with enough 
+  -- resource overhead that the system can always adapt by utilizing the overhead 
+  -- without complicated decision making.
+  fun Slack_FormOfAdaptation : Class ;
+  fun Slack_FormOfAdaptation_Class : SubClass Slack_FormOfAdaptation FormOfAdaptationAttribute ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case it maximizes the number of timing 
+  -- requirements like deadlines that are met but does not guarantee that 
+  -- all such requirements will be met or any fixed percentage of 
+  -- requirements will be met.
+  fun Soft_Strictness : Class ;
+  fun Soft_Strictness_Class : SubClass Soft_Strictness StrictnessAttribute ;
+
+  -- The class of all attributes that are 
+  -- specific to SoftwareSystems.
+  fun SoftwareAttribute : Class ;
+  fun SoftwareAttribute_Class : SubClass SoftwareAttribute RelationalAttribute ;
+
+  -- This is the class of mutually supportive 
+  -- groups of instances of ComputerProgram for a single general purpose. 
+  -- For example, a database management system is a collection of many instances
+  -- of ComputerProgram that work together to store, retrieve, modify, and 
+  -- delete data.
+  fun SoftwareSystem : Class ;
+  fun SoftwareSystem_Class : SubClass SoftwareSystem (both ComputationalSystem RealtimeSystem) ;
+
+  -- The class of all instances of Solaris , a 
+  -- unix_based operating system for Sun SPARC computers. It includes the 
+  -- Open Look and Motif graphical user interfaces, OpenWindows (the Sun 
+  -- version of X Windows), DOS and Windows Emulation, and ONC networking.
+  fun Solaris : Class ;
+  fun Solaris_Class : SubClass Solaris OperatingSystem ;
+
+  -- A local_area network (LAN) that uses a star 
+  -- topology in which all nodes are connected to a central computer.
+  fun StarNetwork : Class ;
+  fun StarNetwork_Class : SubClass StarNetwork LAN ;
+
+  -- A typically small instance of ComputerProgram 
+  -- (a sequence of instructions that will run on a computer) whose function is 
+  -- to load and initialize a typically larger instance of ComputerProgram 
+  -- and start it running.
+  fun StartupBlock : Class ;
+  fun StartupBlock_Class : SubClass StartupBlock ComputerProgram ;
+
+  -- (StartupFn ?Program) returns an instance of 
+  -- StartupBlock which contains the instructions to start the ?Program.
+  fun StartupFn : El ComputerProgram -> Ind StartupBlock ;
+
+  -- The attribute which denotes that 
+  -- the time between data or groups of data changes according to no 
+  -- discernible pattern.
+  fun StochasticDataStream : Class ;
+  fun StochasticDataStream_Class : SubClass StochasticDataStream ComputerPathAttribute ;
+
+  -- This is a subclass of 
+  -- TimingRequirementAttribute, which includes Hard_Strictness, 
+  -- Firm_Strictness, Soft_Strictness, Importance_Strictness,
+  -- Utility_Strictness, and Hybrid_Strictness
+  fun StrictnessAttribute : Class ;
+  fun StrictnessAttribute_Class : SubClass StrictnessAttribute TimingRequirementAttribute ;
+
+  -- A subclass of 
+  -- RealtimeSystemAttribute, which includes the following Attributes: 
+  -- Periodic_SystemBehavior, Transient_SystemBehavior, and 
+  -- Hybrid_SystemBehavior.
+  fun SystemBehaviorAttribute : Class ;
+  fun SystemBehaviorAttribute_Class : SubClass SystemBehaviorAttribute RealtimeSystemAttribute ;
+
+  -- The attribute 
+  -- TaskGroup_AbstractionLevel is immediately above the attribute 
+  -- Task_AbstractionLevel and can be used to describe a real_time 
+  -- system or subsystem This is at the level of describing groups of 
+  -- tasks which are related or connected by the real_time systems and 
+  -- are typically part of a concurrently executing path.
+  fun TaskGroup_AbstractionLevel : Class ;
+  fun TaskGroup_AbstractionLevel_Class : SubClass TaskGroup_AbstractionLevel AbstractionLevelAttribute ;
+
+  -- This is a subclass of 
+  -- RealtimeSystemAttribute, which includes Independent_TaskRelation 
+  -- and Dependent_TaskRelation.
+  fun TaskRelationAttribute : Class ;
+  fun TaskRelationAttribute_Class : SubClass TaskRelationAttribute RealtimeSystemAttribute ;
+
+  -- The attribute 
+  -- Task_AbstractionLevel is immediately above the attribute 
+  -- Object_AbstractionLevel and can be used to describe a real_time 
+  -- system or subsystem. This is at the level of describing the major 
+  -- tasks that are carried out by the real_time systems and are typically 
+  -- executable as individual processes. The description of a task would 
+  -- consist of listing all the software objects used to perform the task.
+  fun Task_AbstractionLevel : Class ;
+  fun Task_AbstractionLevel_Class : SubClass Task_AbstractionLevel AbstractionLevelAttribute ;
+
+  -- A subclass of 
+  -- RealtimeSystemAttribute which includes ComplexityAttribute, 
+  -- StrictnessAttribute, and AbstractionLevelAttribute.
+  fun TimingRequirementAttribute : Class ;
+  fun TimingRequirementAttribute_Class : SubClass TimingRequirementAttribute RealtimeSystemAttribute ;
+
+  -- An attribute which applies to computer 
+  -- paths which handle random events.
+  fun TransientPath : Class ;
+  fun TransientPath_Class : SubClass TransientPath ComputerPathAttribute ;
+
+  -- An instance of the class 
+  -- RealtimeSystem shows Transient_SystemBehavior when it is 
+  -- activated by sporadic events.
+  fun Transient_SystemBehavior : Class ;
+  fun Transient_SystemBehavior_Class : SubClass Transient_SystemBehavior SystemBehaviorAttribute ;
+
+  -- A UniformResourceIdentifier 
+  -- (URI) is a compact string of characters for identifying an abstract or 
+  -- physical resource. A URI can be further classified as a locator, a name, 
+  -- or both (source: http://www.ietf.org/rfc/rfc2396.txt).
+  fun UniformResourceIdentifier : Class ;
+  fun UniformResourceIdentifier_Class : SubClass UniformResourceIdentifier ContentBearingObject ;
+
+  -- The term UniformResourceLocator 
+  -- (URL) refers to the subset of URI that identify resources via a 
+  -- representation of their primary access mechanism (e.g., their network 
+  -- location), rather than identifying the resource by name or by some other 
+  -- attribute(s) of that resource (source: http://www.ietf.org/rfc/rfc2396.txt).
+  fun UniformResourceLocator : Class ;
+  fun UniformResourceLocator_Class : SubClass UniformResourceLocator UniformResourceIdentifier ;
+
+  -- The term UniformResourceName (URN) 
+  -- refers to the subset of URI that are required to remain globally unique 
+  -- and persistent even when the resource ceases to exist or becomes 
+  -- unavailable (source: http://www.ietf.org/rfc/rfc2396.txt).
+  fun UniformResourceName : Class ;
+  fun UniformResourceName_Class : SubClass UniformResourceName UniformResourceIdentifier ;
+
+  -- The Unix epoch or point of reference is 00:00:00 UTC, 
+  -- January 1, 1970.
+  fun UnixEpoch : Ind Epoch ;
+
+  -- An established relationship between a user and a 
+  -- computer, network or information service. User accounts require a username and 
+  -- password, and new user accounts are given a default set of permissions.
+  fun UserAccount : Class ;
+  fun UserAccount_Class : SubClass UserAccount ContentBearingObject ;
+
+  -- The name a person uses to identify himself or herself 
+  -- when logging onto a computer system or online service.
+  fun UserName : Class ;
+  fun UserName_Class : SubClass UserName SymbolicString ;
+
+  -- A request made by a ComputerUser, such as 
+  -- looking up a customer record.
+  fun UserRequest : Class ;
+  fun UserRequest_Class : SubClass UserRequest ComputerProcess ;
+
+  -- A ComputerProcess which requires access to a 
+  -- ComputerResource.
+  fun UsingAResource : Class ;
+  fun UsingAResource_Class : SubClass UsingAResource ComputerProcess ;
+
+  -- A program that performs a specific task related to the 
+  -- management of computer functions, resources, or files. Utility programs range 
+  -- from the simple to the sophisticated, and many programmers specialize in producing 
+  -- and distributing them as shareware. There are utilities that perform file and 
+  -- directory management, data compression, disk defragmentation and repair, system 
+  -- diagnostics, graphics viewing, and system security, for example. Many utilities 
+  -- are written as memory_resident programs meant to serve as adjuncts to operating 
+  -- systems. Many operating systems incorporate such popular utility functions as 
+  -- undeleting, password protection, memory management, virus protection, and file 
+  -- compression.
+  fun Utility : Class ;
+  fun Utility_Class : SubClass Utility ComputerProgram ;
+
+  -- An attribute that applies to a 
+  -- RealtimeSystem just in case it is designed and implemented to use 
+  -- a utility_computing function, which is applied to competing timing 
+  -- requirements to determine which should be met because meeting the 
+  -- requirement produces higher utility as defined by the function.
+  fun Utility_Strictness : Class ;
+  fun Utility_Strictness_Class : SubClass Utility_Strictness StrictnessAttribute ;
+
+  fun abstractionLevel : El RealtimeSystem -> El AbstractionLevelAttribute -> Formula ;
+
+  -- (bandwidthOf ?NET ?BANDWIDTH) holds if 
+  -- ?BANDWIDTH is the amount of data which can be sent through an instance 
+  -- of a ComputerNetwork ?NET, measured in bits per second.
+  fun bandwidthOf : El ComputerNetwork -> El BitsPerSecond -> Formula ;
+
+  -- (batchInterArrival ?PATH ?TIME) 
+  -- holds if ?TIME is the maximum allowable time between processing of a 
+  -- particular element of a continuous or quasicontinuous path's data 
+  -- stream in successive cycles.
+  fun batchInterArrival : El ComputerPath -> El TimeDuration -> Formula ;
+
+  -- (batchLatency ?PATH ?TIME)holds if ?TIME 
+  -- is the maximum allowed latency for all cycles of a quasicontinuous path.
+  fun batchLatency : El ComputerPath -> El TimeDuration -> Formula ;
+
+  -- (benchmarkPerformance ?SYSTEM 
+  -- ?TEST ?NUMBER) holds if ?NUMBER is a benchmark for measuring the performance 
+  -- of an instance of a ComputationalSystem.
+  fun benchmarkPerformance : El ComputationalSystem -> El MonitoringProgram -> El Quantity -> Formula ;
+
+  -- (collectRate ?System ?Period) holds if ?Period is 
+  -- the period at which ComputationalSystem ?System collects data.
+  fun collectRate : El ComputationalSystem -> El TimeDuration -> Formula ;
+
+  -- (commandLineArguments ?PROGRAM ?LIST) means that the application ?PROGRAM requires command line 
+  -- arguments, as specified in ?LIST.
+  fun commandLineArguments : El ComputerProgram -> El List -> Formula ;
+
+  -- (complexity ?System ?Attribute) holds if 
+  -- ?Attribute is a TimingRequirementAttribute which describes the 
+  -- RealtimeSystem ?System.
+  fun complexity : El RealtimeSystem -> El TimingRequirementAttribute -> Formula ;
+
+  -- (componentDataID ?TIME ?COMPONENT ?INSTANCE 
+  -- ?UNIT ?NUMBER) holds if ?INSTANCE is an instance of ?COMPONENT, identified by 
+  -- IDNumber ?NUMBER, and whose performance is measured by a UnitOfMeasure_ComputerPerformance ?UNIT. The timestamp ?TIME identifies the time when this 
+  -- information was created.
+  fun componentDataID: El TimePosition -> Desc ComputerComponent -> El ComputerComponent -> El UnitOfMeasure -> El SymbolicString -> Formula ;
+
+  -- (computerResponseTo ?Response ?Request) means that 
+  -- ?Response is a ComputerResponse to the UserRequest ?Request.
+  fun computerResponseTo : El ComputerResponse -> El UserRequest -> Formula ;
+
+  -- (computerRunning ?Process ?Computer) 
+  -- means that the ComputerProcess ?Process is running on ?Computer.
+  fun computerRunning : El ComputerProcess -> El Computer -> Formula ;
+
+  -- (criticalityLevel ?PROGRAM ?INTEGER) 
+  -- holds just in case ?INTEGER indicates the relative priority of ?PROGRAM 
+  -- with respect to other applications within the SoftwareSystem.
+  fun criticalityLevel : El ComputerProgram -> El Integer -> Formula ;
+
+  -- (dataID ?PROGRAM ?NUMBER) holds if ?NUMBER is a small 
+  -- number associated with an instance of MonitoringProgram.
+  fun dataID : El MonitoringProgram -> El SymbolicString -> Formula ;
+
+  -- The data being processed during a ComputerProcess.
+  fun dataProcessed : El ComputerProcess -> El ComputerData -> Formula ;
+
+  -- (dataStreamSlack ?PATH ?N) means that 
+  -- a continuous or quasicontinuous path ?PATH should be able to process ?N 
+  -- additional data items at any time.
+  fun dataStreamSlack : El ComputerPath -> El PositiveInteger -> Formula ;
+
+  -- (defaultNetwork ?SYSTEM ?NET) holds if 
+  -- ?NET is the default network of the HardwareSystem ?SYSTEM.
+  fun defaultNetwork : El HardwareSystem -> El ComputerNetwork -> Formula ;
+
+  -- if the dependency type is StartupBlock, 
+  -- then (dependencyDelay ?PROGRAM ?TIME) means that the application 
+  -- ?PROGRAM can only be started after a dependency delay of ?TIME after the 
+  -- startup of the application. If the dependency type is ShutdownBlock, then 
+  -- (dependencyDelay ?PROGRAM ?TIME) means that the application ?PROGRAM can 
+  -- only be stopped after a dependency delay of ?TIME after the application 
+  -- is stopped.
+  fun dependencyDelay : El ComputerProgram -> El TimeDuration -> Formula ;
+
+  -- (dependencyType ?PROGRAM ?TYPE) means 
+  -- that ?PROGRAM has a dependency type ?TYPE, where ?TYPE can be either 
+  -- StartupBlock or ShutdownBlock.
+  fun dependencyType: El ComputerProgram -> Desc ComputerProgram -> Formula ;
+
+  -- (designPattern ?System ?Attribute) holds 
+  -- if ?Attribute is a DesignPatternAttribute which describes the 
+  -- RealtimeSystem ?System.
+  fun designPattern : El RealtimeSystem -> El DesignPatternAttribute -> Formula ;
+
+  -- (directoryOf ?FILE ?DIRECTORY) means that 
+  -- the ComputerFile ?FILE is in the ComputerDirectory ?DIRECTORY.
+  fun directoryOf : El ComputerFile -> El ComputerDirectory -> Formula ;
+
+  -- (environmentAttributes ?Program ?Attribute) holds if ?Attribute is an EnvironmentSoftwareAttribute 
+  -- which describes the ComputerProgram ?Program.
+  fun environmentAttributes : El ComputerProgram -> El EnvironmentSoftwareAttribute -> Formula ;
+
+  -- (formOfAdaptation ?System ?Attribute) 
+  -- holds if ?Attribute is a FormOfAdaptationAttribute which describes the 
+  -- RealtimeSystem ?System.
+  fun formOfAdaptation : El RealtimeSystem -> El FormOfAdaptationAttribute -> Formula ;
+
+  -- Granularity is a sub_property of the 
+  -- timing requirements property of real_time systems. Granularity is 
+  -- defined by how a timing requirement is specified in units of time.
+  fun granularity : El RealtimeSystem -> El TimeDuration -> Formula ;
+
+  -- (hardwareType ?TYPE ?COMPUTER) means that 
+  -- TYPE represents the computer vendor model name, as well as the version 
+  -- of the product.
+  fun hardwareType : El SymbolicString -> El Computer -> Formula ;
+
+  -- (hasAccount ?User ?Account) holds if ?User is 
+  -- assigned the UserAccount ?Account.
+  fun hasAccount : El ComputerUser -> El UserAccount -> Formula ;
+
+  -- (hasDependency ?PROGRAM1 ?PROGRAM2) 
+  -- holds if ?PROGRAM1 is dependent on the application ?PROGRAM2.
+  fun hasDependency : El ComputerProgram -> El ComputerProgram -> Formula ;
+
+  -- (heartBeatRate ?Program ?Period) holds if 
+  -- ?Period is the period at which the ComputerProgram ?Program sends its heartbeat 
+  -- to a monitoring process.
+  fun heartBeatRate : El ComputerProgram -> El TimeDuration -> Formula ;
+
+  -- Interference on an analog line caused by a variation 
+  -- of a signal from its reference timing slots. Jitter can cause problems in the receipt 
+  -- of data and any subsequent processing of that data.
+  fun hostJitter : El Computer -> El ConstantQuantity -> Formula ;
+
+  -- (hostOf ?SYSTEM ?COMPUTER) means that ?COMPUTER 
+  -- is the host of the computational system ?SYSTEM.
+  fun hostOf : El ComputationalSystem -> El Computer -> Formula ;
+
+  -- (hostStatus ?Computer ?Status) means that ?Status 
+  -- describes the status of the Computer, such as HostDown, HostReady.
+  fun hostStatus : El Computer -> El ComputerStatus -> Formula ;
+
+  -- The degree of sharpness of a displayed or printed image.
+  fun imageResolution : El ImageFile -> El PhysicalQuantity -> Formula ;
+
+  -- (ipAddressOf ?HOST ?ADDRESS) holds if ?ADDRESS is the IPAddress of 
+  -- the computer ?HOST.
+  fun ipAddressOf : El Computer -> El IPAddress -> Formula ;
+
+  -- In performance measurement, the current use of a 
+  -- system as a percentage of total capacity.
+  fun load : El ComputerComponent -> El ConstantQuantity -> Formula ;
+
+  -- (maximumReplications ?PROGRAM ?INTEGER) means that 
+  -- ?INTEGER represents the maximum number of copies of this application which can be run 
+  -- during a process.
+  fun maximumReplications : El ComputerProgram -> El PositiveInteger -> Formula ;
+
+  -- (memorySize ?System ?Size) holds if 
+  -- ?Size is the required memory size for the ComputationalSystem ?System.
+  fun memorySize : El ComputationalSystem -> El ConstantQuantity -> Formula ;
+
+  -- (minimumReplications ?PROGRAM ?INTEGER) means that ?INTEGER represents 
+  -- the minimum copies of the application ?PROGRAM required to be survivable, where a program is 
+  -- survivable if the failure of one or more resources does not result 
+  -- in the failure of the program. Either long MTTF for the system as a 
+  -- whole or short MTTR when failure occurs would improve the survivability
+  -- of a program.
+  fun minimumReplications : El ComputerProgram -> El PositiveInteger -> Formula ;
+
+  -- (monitorApplicationData ?TIME 
+  -- ?APPLICATION) holds if the time stamp ?TIME specifies the time at which 
+  -- ?APPLICATION is running.
+  fun monitorApplicationData : El TimePosition -> El ComputerProgram -> Formula ;
+
+  -- (monitorComponentData ?TIME ?ID 
+  -- ?NUMBER) holds if at time ?TIME, a component with the IDNumber ?ID 
+  -- has a performance of a value ?NUMBER.
+  fun monitorComponentData : El TimePosition -> El SymbolicString -> El RealNumber -> Formula ;
+
+  -- (monitorConnectivityData ?TIME 
+  -- ?IPADDRESS) is a relation between a timestamp ?TIME and an ?IP address.
+  fun monitorConnectivityData : El TimePosition -> El IPAddress -> Formula ;
+
+  -- (numberOfCPUs ?COMPUTER ?INTEGER) means 
+  -- that the number of CPUs for the host ?COMPUTER is equal to INTEGER.
+  fun numberOfCPUs : El Computer -> El PositiveInteger -> Formula ;
+
+  -- (password ?Password ?User) means that ?Password is 
+  -- the password the ComputerUser uses while logging onto a computer system.
+  fun password : El ComputerUser -> El ComputerPassword -> Formula ;
+
+  -- (performanceResult ?EVENT ?COMPONENT ?NUMBER) holds if the performance of
+  -- ?COMPONENT has a value ?NUMBER, measured by ?EVENT, an instance of MeasuringPerformance.
+  fun performanceResult : El MeasuringPerformance -> El ComputerComponent -> El RealNumber -> Formula ;
+
+  -- (portNumber ?PROGRAM ?NUMBER) holds if ?NUMBER identifies a protocol 
+  -- port, i.e. a TCP_IP software abstraction used to distinguish different applications providing 
+  -- services within a single destination computer. The different ports on a host are identified by a 
+  -- positive 16_bit number.
+  fun portNumber : El ComputerProgram -> El PositiveInteger -> Formula ;
+
+  -- (priority ?SYSTEM ?QUANTITY) means that the 
+  -- priority of the ?SYSTEM is characterized by a PriorityAttribute, such 
+  -- as HighPriority or LowPriority.
+  fun priority : El ComputationalSystem -> El PriorityAttribute -> Formula ;
+
+  -- (processAborted ?Abort ?Process) means 
+  -- that the ComputerProcess ?Process is aborted as the result of ?Abort.
+  fun processAborted : El Abort -> El ComputerProcess -> Formula ;
+
+  -- (processID ?PROCESS ?NUMBER) holds if ?NUMBER is a unique number 
+  -- generated by the operating system and used to refer to the ComputerProcess ?PROCESS. There 
+  -- is usually no significance to the numbers as they are reused as old processes die and new processes 
+  -- are created.
+  fun processID : El ComputerProcess -> El PositiveInteger -> Formula ;
+
+  -- The arguments of this relation are data 
+  -- structures, each of which contains the information necessary for the 
+  -- process already loaded by the operating system to execute on a processor.
+  fun processList : [El Entity] -> Formula ;
+
+  -- (productModel ?Model ?Product) means that 
+  -- ?Model represents the type of the Product ?Product
+  fun productModel : El SymbolicString -> El Product -> Formula ;
+
+  -- (programCopy ?File ?Program) means that 
+  -- the ComputerFile ?File is one of the copies of the ComputerProgram 
+  -- ?Program.
+  fun programCopy : El ComputerFile -> El ComputerProgram -> Formula ;
+
+  -- (programRunning ?Process ?Program) 
+  -- means that the ComputerProcess ?Process is executing the 
+  -- ComputerProgram ?Program.
+  fun programRunning : El ComputerProcess -> El ComputerProgram -> Formula ;
+
+  -- (qoSSlack ?PATH ?MIN ?MAX) holds if ?PATH 
+  -- has a realtime QoS maximum slack percentage of ?MAX and minimum of ?MIN.
+  fun qoSSlack : El ComputerPath -> El ConstantQuantity -> El ConstantQuantity -> Formula ;
+
+  -- (rMProgram_of ?RM ?SYSTEM) means that 
+  -- ?RM is the resource management program of the SoftwareSystem ?SYSTEM.
+  fun rMProgram_of : El ResourceManagementProgram -> El SoftwareSystem -> Formula ;
+
+  -- (requestRate ?Request ?Period) means that 
+  -- ?Period is the period at which the user sends its ?Request.
+  fun requestRate : El UserRequest -> El TimeDuration -> Formula ;
+
+  -- (resourceUsed ?Process ?Resource) means that the 
+  -- ComputerProcess ?Process has access to the ComputerResource ?Resource.
+  fun resourceUsed : El ComputerProcess -> El ComputerResource -> Formula ;
+
+  -- (responseRate ?Response ?Period) means 
+  -- that ?Period is the period at which the computer sends its ?Response.
+  fun responseRate : El ComputerResponse -> El TimeDuration -> Formula ;
+
+  -- The time it takes for the computer to comply 
+  -- with a user's request, such as looking up a customer record.
+  fun responseTime : El UserRequest -> El TimeDuration -> Formula ;
+
+  -- (runningOn ?Program ?Computer) holds if the 
+  -- ComputerProgram ?Program is being executed on ?Computer.
+  fun runningOn : El ComputerProgram -> El Computer -> Formula ;
+
+  -- (runsOn ?Program ?Computer) means that ?Program 
+  -- is capable of running on ?Computer.
+  fun runsOn : El ComputerProgram -> El Computer -> Formula ;
+
+  -- (sendRate ?Program ?Period) holds if ?Period is the 
+  -- period at which the ComputationalSystem ?System sends data reports.
+  fun sendRate : El ComputationalSystem -> El TimeDuration -> Formula ;
+
+  -- (settlingTime ?PROGRAM ?TIME) says that ?TIME represents seconds to delay
+  -- after an action was taken with respect to QoS.
+  fun settlingTime : El ComputerProgram -> El TimeDuration -> Formula ;
+
+  -- (shutdownOf ?SHUTDOWN ?PROGRAM) holds just 
+  -- in case an instance of ShutdownBlock ?SHUTDOWN specifies a set of 
+  -- instructions to end ?PROGRAM.
+  fun shutdownOf : El ShutdownBlock -> El ComputerProgram -> Formula ;
+
+  -- (simpleDeadline ?PATH ?TIME)holds if 
+  -- ?TIME is the maximum end_to_end path latency during a cycle of a 
+  -- continuous or quasicontinuous path or during the activation of a transient 
+  -- path.
+  fun simpleDeadline : El ComputerPath -> El TimeDuration -> Formula ;
+
+  -- (slidingWindowSize ?PATH ?N) holds 
+  -- if PATH has a realtime QoS sliding window size of ?N measured samples.
+  fun slidingWindowSize : El ComputerPath -> El PositiveInteger -> Formula ;
+
+  -- (softwarePath ?SYSTEM ?PATH) means that 
+  -- ?PATH is a computer path for the instance of SoftwareSystem ?SYSTEM.
+  fun softwarePath : El SoftwareSystem -> El ComputerPath -> Formula ;
+
+  -- (standardErrorDevice ?PROGRAM ?DEVICE) holds just in case the DEVICE is the predefined 
+  -- error channel with which the running version of this program is initialised.
+  fun standardErrorDevice : El ComputerProcess -> El ComputerOutputDevice -> Formula ;
+
+  -- (standardInputDevice ?PROCESS ?DEVICE) holds just in case the DEVICE is 
+  -- the predefined input channel with which the running version of the program PROCESS is initialised.
+  fun standardInputDevice : El ComputerProcess -> El ComputerInputDevice -> Formula ;
+
+  -- (standardOutputDevice ?PROGRAM ?DEVICE) holds just in case the DEVICE is 
+  -- the predefined output channel with which the running version of this program is initialised.
+  fun standardOutputDevice : El ComputerProcess -> El ComputerOutputDevice -> Formula ;
+
+  -- (startupOf ?STARTUP ?PROGRAM) holds just in case an instance of
+  -- StartupBlock ?STARTUP specifies a set of instructions to start the ?PROGRAM.
+  fun startupOf : El StartupBlock -> El ComputerProgram -> Formula ;
+
+  -- (startupTimeDelay ?PROGRAM ?TIME) 
+  -- says that ?TIME is the time to delay after the previous application 
+  -- was started before starting the application ?PROGRAM.
+  fun startupTimeDelay : El ComputerProgram -> El TimeDuration -> Formula ;
+
+  -- (stateOfProcess ?PROCESS ?STATE) says 
+  -- that ?STATE is a state of the ComputerProcess ?PROCESS.
+  fun stateOfProcess : El ComputerProcess -> El ProcessState -> Formula ;
+
+  -- (status ?PROCESS ?STATUS) holds if ?STATUS is the current status of ?PROCESS.
+  fun status : El ComputerProcess -> El ProcessStatus -> Formula ;
+
+  -- (strictness ?System ?Attribute) holds if 
+  -- the StrictnessAttribute ?Attribute describes the RealtimeSystem ?System.
+  fun strictness : El RealtimeSystem -> El StrictnessAttribute -> Formula ;
+
+  -- (systemBehavior ?System ?Attribute) 
+  -- holds if ?Attribute is a SystemBehaviorAttribute which describes the 
+  -- RealtimeSystem ?System.
+  fun systemBehavior : El RealtimeSystem -> El SystemBehaviorAttribute -> Formula ;
+
+  -- (systemMeasured ?Event ?System) means that ?Event is an event of measuring
+  -- the performance of the ComputationalSystem ?System.
+  fun systemMeasured : El MeasuringPerformance -> El ComputationalSystem -> Formula ;
+
+  -- (task ?Process ?Task) means that ?Task is a function to 
+  -- be performed by the ComputerProcess ?Process.
+  fun task : El ComputerProcess -> El ProcessTask -> Formula ;
+
+  -- (taskRelation ?System ?Attribute) holds 
+  -- if ?Attribute is a TaskRelationAttribute which describes the 
+  -- RealtimeSystem ?System.
+  fun taskRelation : El RealtimeSystem -> El TaskRelationAttribute -> Formula ;
+
+  fun thresholdOf : El Computer -> El PositiveRealNumber -> Formula ;
+
+  -- (unitMeasuringPerformance ?COMPONENT ?UNIT) holds in case ?UNIT is 
+  -- an instance of UnitOfMeasure which is used to measure the performance of ?COMPONENT.
+  fun unitMeasuringPerformance : El ComputerComponent -> El UnitOfMeasure -> Formula ;
+
+  -- (userName ?Name ?User) means that ?Name is the name the ComputerUser uses 
+  -- to identify himself or herself when logging onto a computer system.
+  fun userName : El ComputerUser -> El UserName -> Formula ;
+
 }
diff --git a/examples/SUMO/QoSontologyEng.gf b/examples/SUMO/QoSontologyEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/QoSontologyEng.gf
@@ -0,0 +1,7 @@
+--# -path=.:english:abstract:prelude:common
+concrete QoSontologyEng of QoSontology = BasicEng ** open DictLangEng, DictEng, ParamBasic, StructuralEng in {
+ 
+lin
+  ProcessTask = AdvCN (UseN task_N) (PrepNP possess_Prep (MassNP (UseN process_N))) ;
+
+}
diff --git a/examples/SUMO/QoSontologyFre.gf b/examples/SUMO/QoSontologyFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/QoSontologyFre.gf
@@ -0,0 +1,8 @@
+--# -path=.:french:romance:abstract:prelude:common
+concrete QoSontologyFre of QoSontology = BasicFre ** open DictLangFre, ParadigmsFre, ResFre, LexiconFre, ExtraLexiconFre, ParamBasic,StructuralFre in {
+ 
+lin
+
+
+ProcessTask = AdvCN (UseN task_N) (PrepNP possess_Prep (MassNP (UseN process_N))) ;
+}
diff --git a/examples/SUMO/QoSontologyRon.gf b/examples/SUMO/QoSontologyRon.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/QoSontologyRon.gf
@@ -0,0 +1,8 @@
+--# -path=.:french:romance:abstract:prelude:common
+concrete QoSontologyRon of QoSontology = BasicRon ** open DictLangRon, ParadigmsRon, ResRon, LexiconRon, ExtraLexiconRon, ParamBasic,StructuralRon in {
+ 
+lin
+
+
+ProcessTask = AdvCN (UseN task_N) (PrepNP by8means_Prep (MassNP (UseN process_N))) ;
+}
diff --git a/examples/SUMO/RGLExt/DictLang.gf b/examples/SUMO/RGLExt/DictLang.gf
--- a/examples/SUMO/RGLExt/DictLang.gf
+++ b/examples/SUMO/RGLExt/DictLang.gf
@@ -6,8 +6,7 @@
 -- which may be more suitable to open in applications.
 
 abstract DictLang = 
-  Grammar,
-  Extension
-  ** {
+  Grammar
+  ** open Extension in {
  -- flags startcat=NP ;
   } ;
diff --git a/examples/SUMO/RGLExt/DictLangEng.gf b/examples/SUMO/RGLExt/DictLangEng.gf
--- a/examples/SUMO/RGLExt/DictLangEng.gf
+++ b/examples/SUMO/RGLExt/DictLangEng.gf
@@ -1,8 +1,8 @@
 --# -path=.:../../../lib/src/abstract:../../../lib/src/english:../../../lib/src/common
 
 concrete DictLangEng of DictLang = 
-  GrammarEng,
-  ExtensionEng ** {
+  GrammarEng
+  ** open ExtensionEng in {
 
 flags  unlexer = text ; lexer = text ;
 
diff --git a/examples/SUMO/RGLExt/Extension.gf b/examples/SUMO/RGLExt/Extension.gf
--- a/examples/SUMO/RGLExt/Extension.gf
+++ b/examples/SUMO/RGLExt/Extension.gf
@@ -1,7 +1,7 @@
 
 -- other functions needed for parsing 
 
-abstract Extension = Cat ** {
+abstract Extension =  {
 
 
 
@@ -9,6 +9,7 @@
   PolSentence;
   StmtS ;
   [CN]{2};
+  N; N2; A; V; V2; CN; NP; Cl; Pol; Prep; Conj; -- redefined from Cat
 fun 
 
 VerbToNounV2 : V2 -> N2 ; -- discovering
@@ -21,7 +22,7 @@
 UsePolSentence : Pol -> PolSentence -> StmtS ;
 
 at_Prep : Prep ; 
-per_Prep : Prep ;
+per_Prep : Prep ; 
 O1 : NP ;
 O2 : NP ;
 O3 : NP ;
@@ -29,4 +30,4 @@
 O5 : NP ;
 
 
-};
+};
diff --git a/examples/SUMO/RGLExt/ExtensionEng.gf b/examples/SUMO/RGLExt/ExtensionEng.gf
--- a/examples/SUMO/RGLExt/ExtensionEng.gf
+++ b/examples/SUMO/RGLExt/ExtensionEng.gf
@@ -1,20 +1,33 @@
-concrete ExtensionEng of Extension = CatEng ** open MorphoEng, ResEng, ConjunctionEng, StructuralEng, Prelude, ParadigmsEng, Coordination,ParamBasic in {
+--# -path=.:RGLExt:alltenses:../../lib/src/english
 
+concrete ExtensionEng of Extension = open CatEng, MorphoEng, ResEng, ConjunctionEng, StructuralEng, Prelude, ParadigmsEng, Coordination, ParamBasic in {
 
+
 lincat 
     PolSentence = {s : SentForm => Polarity => Str ; flag : Flag};
     [CN] = {s1,s2 : Number => Case => Str ; g : Gender} ;   
     StmtS = {s : Str};
+    NP = CatEng.NP;
+    CN = CatEng.CN; 
+    N = CatEng.N;
+    N2 = CatEng.N2;
+    A = CatEng.A;
+    V = CatEng.V;
+    V2 = CatEng.V2;
+    Cl = CatEng.Cl;
+    Pol = CatEng.Pol;
+    Prep = CatEng.Prep;
+    Conj = CatEng.Conj;
 lin 
 
-VerbToNounV2 vs = VerbToNoun vs ** {c2 = vs.c2};
+VerbToNounV2 vs = VerbToNoun vs ** {c2 = vs.c2; lock_N2=<>};
 
 VerbToNoun v = {s = \\_,_ => v.s ! VPresPart;
-                g = Masc};
+                g = Masc; lock_N=<>};
                                 
-VerbToGerundA v = {s = \\_ => v.s ! VPresPart};              
+VerbToGerundA v = {s = \\_ => v.s ! VPresPart; lock_A=<>};              
 
-VerbToParticipeA v = {s = \\_ => v.s ! VPPart};
+VerbToParticipeA v = {s = \\_ => v.s ! VPPart; lock_A=<>};
 
 mkPolSent cl = {s = \\f,b => case b of 
                               {Pos => cl.s ! Pres ! Simul ! CPos ! ODir;
@@ -23,9 +36,9 @@
                 lock_PolSentence = <>};
                
 sentToNoun ps = {s = \\_ => "\"" ++ ps.s ! Indep ! Pos ++ "\"";
-                 a = agrP3 Sg};               
+                 a = agrP3 Sg; lock_NP=<>};               
                
-ConjCN conj ss = conjunctDistrTable2 Number Case conj ss ** {g = ss.g};               
+ConjCN conj ss = conjunctDistrTable2 Number Case conj ss ** {g = ss.g;lock_CN=<>};               
 
 BaseCN x y ={s1 = \\n,c => x.s ! n ! c ;
              s2 = \\n,c => y.s ! n ! c ;   
@@ -40,19 +53,19 @@
 per_Prep = mkPrep "per" ;  
 
 O1 = {s = \\_ => "o1" ;
-      a = agrP3 Sg};
+      a = agrP3 Sg}**{lock_NP=<>};
 
 O2 = {s = \\_ => "o2" ;
-      a = agrP3 Sg};
+      a = agrP3 Sg}**{lock_NP=<>};
 
 O3 = {s = \\_ => "o3" ;
-      a = agrP3 Sg};
+      a = agrP3 Sg}**{lock_NP=<>};
       
 O4 = {s = \\_ => "o4" ;
-      a = agrP3 Sg};      
+      a = agrP3 Sg}**{lock_NP=<>};      
       
 O5 = {s = \\_ => "o5" ;
-      a = agrP3 Sg};      
+      a = agrP3 Sg}**{lock_NP=<>};      
 
      
-} 
+} 
diff --git a/examples/SUMO/RGLExt/ExtensionRon.gf b/examples/SUMO/RGLExt/ExtensionRon.gf
--- a/examples/SUMO/RGLExt/ExtensionRon.gf
+++ b/examples/SUMO/RGLExt/ExtensionRon.gf
@@ -36,16 +36,17 @@
                         };               
                
 ConjCN conj ss = conjunctDistrTable3 Number Species ACase conj ss ** {
-                g = ss.g; a = ss.a; isComp = ss.isComp                
+                g = ss.g; a = ss.a; isComp = ss.isComp; needsRefForm = False                
                 };               
 
 
 BaseCN x y ={
       s1 = \\n,sp,c => x.s ! n ! sp ! c ;
       s2 = \\n,sp,c => y.s ! n ! sp ! c ;   
-      g  =  x.g; a = x.a ; isComp = x.isComp};  
+      g  =  x.g; a = x.a ; isComp = x.isComp;
+      needsRefForm = False};  
 
-ConsCN xs x = consrTable3 Number Species ACase comma xs x ** {g = x.g; a = x.a; isComp = x.isComp} ;               
+ConsCN xs x = consrTable3 Number Species ACase comma xs x ** {g = x.g; a = x.a; isComp = x.isComp; needsRefForm = False} ;               
 
 at_Prep = mkPrep "la" Ac True;
 per_Prep = mkPrep "per" Ac True;  
diff --git a/examples/SUMO/RGLExt/ExtraLexicon.gf b/examples/SUMO/RGLExt/ExtraLexicon.gf
--- a/examples/SUMO/RGLExt/ExtraLexicon.gf
+++ b/examples/SUMO/RGLExt/ExtraLexicon.gf
@@ -4,4 +4,26 @@
   square_A : A ;
   value_N : N ;
   element_N : N ;
+
+
+--------------------------
+--CNL presentation
+
+ entity_N : N ;
+ abstract_N : N ;
+ attribute_N : N ; 
+ graph_N : N ; 
+ model_N : N ; 
+ process_N : N ;
+ task_N : N ;
+ proposition_N : N ;
+ quantity_N : N ; 
+ set_N : N ;
+ class_N : N ;
+ physical_N : N ; 
+ content_N : N ; 
+ object_N : N ;
+ system_N : N ;
+ physical_A : A ;
+
 }
diff --git a/examples/SUMO/RGLExt/ExtraLexiconFre.gf b/examples/SUMO/RGLExt/ExtraLexiconFre.gf
--- a/examples/SUMO/RGLExt/ExtraLexiconFre.gf
+++ b/examples/SUMO/RGLExt/ExtraLexiconFre.gf
@@ -1,18 +1,34 @@
---# -path=.:../romance:../common:../abstract:../../prelude
-
-concrete ExtraLexiconFre of ExtraLexicon = CatFre ** 
-  open ParadigmsFre,MorphoFre,BeschFre in {
-
-flags 
-  optimize=values ; 
-
-lin
- value_N = regGenN "valeur" feminine ;
- square_A = regA "caré" ;
- time_N = regN "heure" ;
- element_N = mkN "élément" ;
- 
-
-
-
-} ;
+--# -path=.:../romance:../common:../abstract:../../prelude
+
+concrete ExtraLexiconFre of ExtraLexicon = CatFre ** 
+  open ParadigmsFre,MorphoFre,BeschFre in {
+
+flags 
+  optimize=values ; coding=utf8 ;
+
+lin
+ value_N = regGenN "valeur" feminine ;
+ square_A = regA "caré" ;
+ time_N = regN "heure" ;
+ element_N = mkN "élément" ;
+ 
+ entity_N = regGenN "entité" feminine;
+ abstract_N = mkN "abstrait" ;
+ attribute_N = mkN "attribut" ; 
+ graph_N = regGenN "graph" masculine ; 
+ model_N = regGenN "modèle" masculine; 
+ process_N = mkN "processus" ;
+ task_N = regGenN "tâche" feminine;
+ proposition_N = regGenN "proposition" feminine ;
+ quantity_N = regGenN "quantité" feminine; 
+ set_N = regGenN "ensemble" masculine;
+ class_N = regGenN "classe" feminine;
+ physical_N = regGenN "physique" masculine; 
+ content_N = mkN "sens" ; 
+ object_N = mkN "objet" ;
+ system_N = mkN "système" ;
+ physical_A = regA "physique" ;
+
+
+
+} ;
diff --git a/examples/SUMO/RGLExt/ExtraLexiconRon.gf b/examples/SUMO/RGLExt/ExtraLexiconRon.gf
--- a/examples/SUMO/RGLExt/ExtraLexiconRon.gf
+++ b/examples/SUMO/RGLExt/ExtraLexiconRon.gf
@@ -4,7 +4,7 @@
   open ParadigmsRon,MorphoRon,BeschRon in {
 
 flags 
-  optimize=values ; 
+  optimize=values ; coding=utf8 ;
 
 lin
  value_N = mkN "valoare" "valori" ;
@@ -12,6 +12,22 @@
  time_N = mkNR "timp" ;
  element_N = mkN "element" ;
  
+ entity_N = mkN "entitate" ;
+ abstract_N = mkN "abstract" ;
+ attribute_N = mkN "atribut" ; 
+ graph_N = mkNR "graf" ; 
+ model_N = mkN "model" neuter; 
+ process_N = mkN "proces" ;
+ task_N = mkN "sarcină" ;
+ proposition_N = mkN "propoziție" ;
+ quantity_N = mkN "cantitate" ; 
+ set_N = mkN "mulțime" ;
+ class_N = mkN "clasă" ;
+ physical_N = mkN "concret" ; 
+ content_N = mkN "conținut" ; 
+ object_N = mkN "obiect" ;
+ system_N = mkN "sistem" ;
+ physical_A = regA "concret" ;
 
 
 
diff --git a/examples/SUMO/SUMO.gf b/examples/SUMO/SUMO.gf
--- a/examples/SUMO/SUMO.gf
+++ b/examples/SUMO/SUMO.gf
@@ -1,25 +1,26 @@
+--# -path=.:alltenses:
 abstract SUMO =
   Basic,
   Merge,
+  Elements,
+  MidLevelOntology,
+  Transportation,
+  Geography,
   Communications,
+  Government,
   CountriesAndRegions,
   Economy,
-  elements,
-  engineering,
+  Engineering,
   FinancialOntology,
-  Geography,
-  Government,
-  Mid_level_ontology,
   Military,
-  mondial,
+  Mondial,
   QoSontology,
-  Transportation,
   WMD,
   WorldAirportsA_K,
   WorldAirportsL_Z,
-  HigherOrder
+  Birds
   ** {
   
 flags startcat = Stmt ;
 
-}
+}
diff --git a/examples/SUMO/SUMOBul.gf b/examples/SUMO/SUMOBul.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/SUMOBul.gf
@@ -0,0 +1,10 @@
+--# -path=.:alltenses
+concrete SUMOBul of SUMO =
+        BasicBul,
+        BirdsBul
+
+** {
+
+flags unlexer = text ; lexer = text ;
+
+} ;
diff --git a/examples/SUMO/SUMOEng.gf b/examples/SUMO/SUMOEng.gf
--- a/examples/SUMO/SUMOEng.gf
+++ b/examples/SUMO/SUMOEng.gf
@@ -1,12 +1,14 @@
---# -path=.:RGLExt:alltenses:src/english
--- --# -path=.:RGLExt:../../lib/src/abstract:../../lib/src/english:../../lib/src/common
+--# -path=.:RGLExt:alltenses:../../lib/src/english
 concrete SUMOEng of SUMO =
         BasicEng,
-        MergeEng,
-        Mid_level_ontologyEng,
-        mondialEng,
-        elementsEng,
-        HigherOrderEng
+        MidLevelOntologyEng,
+        GeographyEng,
+        EconomyEng,
+        EngineeringEng,
+        MondialEng,
+        CountriesAndRegionsEng,
+        QoSontologyEng,
+        BirdsEng
 
 ** {
 
diff --git a/examples/SUMO/SUMOFre.gf b/examples/SUMO/SUMOFre.gf
--- a/examples/SUMO/SUMOFre.gf
+++ b/examples/SUMO/SUMOFre.gf
@@ -1,8 +1,11 @@
 --# -path=.:RGLExt:alltenses
--- --# -path=.:RGLExt:../../lib/src/abstract:../../lib/src/romance:../../lib/src/french:../../lib/src/common
+
 concrete SUMOFre of SUMO =
         MergeFre,
-        Mid_level_ontologyFre
+        MidLevelOntologyFre,
+        EconomyFre,
+        EngineeringFre,
+        QoSontologyFre
         
 
 ** {
diff --git a/examples/SUMO/SUMORon.gf b/examples/SUMO/SUMORon.gf
--- a/examples/SUMO/SUMORon.gf
+++ b/examples/SUMO/SUMORon.gf
@@ -1,9 +1,12 @@
 --# -path=.:RGLExt:alltenses
--- --# -path=.:RGLExt:../../lib/src/abstract:../../lib/src/romanian:../../lib/src/common
+
 concrete SUMORon of SUMO =
         MergeRon,
-        Mid_level_ontologyRon
-        
+        MidLevelOntologyRon,
+        EconomyRon,
+        EngineeringRon,
+        CountriesAndRegionsRon,
+        QoSontologyRon
 
 ** {
 
diff --git a/examples/SUMO/SUMOSwe.gf b/examples/SUMO/SUMOSwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/SUMO/SUMOSwe.gf
@@ -0,0 +1,10 @@
+--# -path=.:alltenses
+concrete SUMOSwe of SUMO =
+        BasicSwe,
+        BirdsSwe
+
+** {
+
+flags unlexer = text ; lexer = text ;
+
+} ;
diff --git a/examples/SUMO/Transportation.gf b/examples/SUMO/Transportation.gf
--- a/examples/SUMO/Transportation.gf
+++ b/examples/SUMO/Transportation.gf
@@ -1,1361 +1,1343 @@
-abstract Transportation = open Merge, Mid_level_ontology in {
-
-
-
-
--- A Vehicle which is powered by
--- one or more of its passengers or driver, for example, a Bicycle.
-fun AgentPoweredVehicle : Class ;
-fun AgentPoweredVehicle_Class : SubClass AgentPoweredVehicle Vehicle ;
-
--- An AirRoute is a region of air space that 
--- can be travelled between points by an air TransportationDevice.
-fun AirRoute : Class ;
-fun AirRoute_Class : SubClass AirRoute TransitRoute ;
-
--- The subclass of Transitways that are through
--- the EarthsAtmosphere.
-fun AirTransitway : Class ;
-fun AirTransitway_Class : SubClass AirTransitway Transitway ;
-
--- A MilitaryShip on which MilitaryAircraft can land 
--- and take off.
-fun AircraftCarrier : Class ;
-fun AircraftCarrier_Class : SubClass AircraftCarrier MilitaryShip ;
-
--- Airplane is the subclass of Aircraft that 
--- are fixed_wing aircraft which carry their own power sources. Airplane 
--- includes jet airplanes and propeller planes, but not gliders.
-fun Airplane : Class ;
-fun Airplane_Class : SubClass Airplane (both Aircraft PoweredVehicle) ;
-
-
--- Airport is the subclass of TransitTerminals 
--- for Airplanes (fixed_wing Aircraft).
-fun Airport : Class ;
-fun Airport_Class : SubClass Airport (both AirTransitway (both LandTransitway TransitTerminal)) ;
-
-
--- AirportByRunwaySurface is a 
--- subclass of AirportClassification attributes used to describe an 
--- airport according to the surface type of its longest runway.
-fun AirportByRunwaySurface : Class ;
-fun AirportByRunwaySurface_Class : SubClass AirportByRunwaySurface AirportClassification ;
-
--- AirportClassification 
--- is a class of Attributes for representing systems that categorize 
--- Airports according to some criteria. There are several such systems, 
--- including the International Civil Aviation Organization categories A to 
--- E, based on runway lengths, the Federal Aviation Administration system 
--- associated with airport functions, and the airport categorization by 
--- runway length used in the CIA World Fact Book.
-fun AirportClassification : Class ;
-fun AirportClassification_Class : SubClass AirportClassification RelationalAttribute ;
-
--- AirportWithPavedRunway is an 
--- AirportClassification attribute used to describe an airport whose 
--- longest runway is a PavedRunway.
-fun AirportWithPavedRunway : Ind AirportByRunwaySurface ;
-
-
--- AirportWithUnpavedRunway is 
--- an AirportClassification attribute used to describe an airport whose 
--- longest runway is an UnpavedRunway.
-fun AirportWithUnpavedRunway : Ind AirportByRunwaySurface ;
-
-
--- The class of Transitways used to transport Air 
--- to a location where it is absent or insufficient.
-fun Airway : Class ;
-fun Airway_Class : SubClass Airway Transitway ;
-
--- Ambulance is the subclass of 
--- EmergencyRoadVehicles that represents ambulances.
-fun Ambulance : Class ;
-fun Ambulance_Class : SubClass Ambulance EmergencyRoadVehicle ;
-
--- Anchorage is the subclass of WaterAreas 
--- where WaterVehicle may anchor with some shelter or safety. Anchorages 
--- may be inside a Harbor or offshore.
-fun Anchorage : Class ;
-fun Anchorage_Class : SubClass Anchorage WaterArea ;
-
-fun Barge : Class ;
-fun Barge_Class : SubClass Barge WaterVehicle ;
-fun BargeCarrierShip : Class ;
-fun BargeCarrierShip_Class : SubClass BargeCarrierShip CargoShip ;
--- Bicycle is a class of two_wheeled, 
--- UserPoweredVehicles.
-fun Bicycle : Class ;
-fun Bicycle_Class : SubClass Bicycle Cycle ;
-
--- Boxcar is the subclass of Railcars that are 
--- general_purpose closed cars for hauling freight.
-fun Boxcar : Class ;
-fun Boxcar_Class : SubClass Boxcar FreightCar ;
-
--- Bridge is the subclass of LandTransitways 
--- that are artifacts used for crossing water or air_filled gaps that 
--- could not be transited over a natural surface.
-fun Bridge : Class ;
-fun Bridge_Class : SubClass Bridge (both LandTransitway StationaryArtifact) ;
-
-
--- BroadGauge is the attribute of 
--- any Railway that has a TrackGauge wider than StandardGauge.
-fun BroadGauge : Ind TrackGauge ;
-
-
-fun BroadGaugeRail : Ind RailGauge ;
-
-fun BroadGaugeRailway : Class ;
-fun BroadGaugeRailway_Class : SubClass BroadGaugeRailway Railway ;
-fun BulkCargoShip : Class ;
-fun BulkCargoShip_Class : SubClass BulkCargoShip DryBulkCarrierShip ;
-fun BusinessRailcar : Class ;
-fun BusinessRailcar_Class : SubClass BusinessRailcar PassengerRailcar ;
--- CIAAirportLengthClassification is a class of Attributes used to 
--- characterize Airports according to the length of their longest 
--- usable runway.
-fun CIAAirportLengthClassification : Class ;
-fun CIAAirportLengthClassification_Class : SubClass CIAAirportLengthClassification AirportClassification ;
-
--- CabCar is the class of passenger railcars 
--- that have an operating cab in one end of the from which train motion 
--- can be controlled in 'push' mode. A CabCar is placed on the 
--- opposite end of the train from the locomotive.
-fun CabCar : Class ;
-fun CabCar_Class : SubClass CabCar RollingStock ;
-
-fun CableShip : Class ;
-fun CableShip_Class : SubClass CableShip Ship ;
-fun CanalLock : Class ;
-fun CanalLock_Class : SubClass CanalLock (both StationaryArtifact Waterway) ;
-
-fun CanalLockGate : Class ;
-fun CanalLockGate_Class : SubClass CanalLockGate (both Device TransitwayObstacle) ;
-
-fun CanalSystem : Class ;
-fun CanalSystem_Class : SubClass CanalSystem WaterTransportationSystem ;
-fun Canoe : Class ;
-fun Canoe_Class : SubClass Canoe (both AgentPoweredVehicle WaterVehicle) ;
-
--- CarDistributionSystem is the 
--- process of composing trains according to instructions or data.
-fun CarDistributionSystem : Class ;
-fun CarDistributionSystem_Class : SubClass CarDistributionSystem OrganizationalProcess ;
-
--- CargoShip is the subclass of Ships that 
--- transport goods in exchange for payment. CargoShip includes ships 
--- that carry all kinds of cargo, including oil and bulk products as well 
--- as packaged, palletized, or containerized goods.
-fun CargoShip : Class ;
-fun CargoShip_Class : SubClass CargoShip Ship ;
-
-fun Catamaran : Class ;
-fun Catamaran_Class : SubClass Catamaran MultihullWaterVehicle ;
-fun CementCarrierShip : Class ;
-fun CementCarrierShip_Class : SubClass CementCarrierShip DryBulkCarrierShip ;
--- A Channel is a narrow deep waterway connecting 
--- two larger bodies of water. May be natural or dredged, salt or fresh 
--- water.
-fun Channel : Class ;
-fun Channel_Class : SubClass Channel Waterway ;
-
--- ChemicalTankerShip is the 
--- subclass of ships that carry ChemicalProducts.
-fun ChemicalTankerShip : Class ;
-fun ChemicalTankerShip_Class : SubClass ChemicalTankerShip CargoShip ;
-
-fun Chemical_OilTankerShip : Class ;
-fun Chemical_OilTankerShip_Class : SubClass Chemical_OilTankerShip ChemicalTankerShip ;
-fun ChiefSteward : Ind Position ;
-
--- ClassIIIRailroad is the 
--- subclass of RailroadCompany whose instances have an 
--- average annual gross revenue below 20.5 million 
--- UnitedStatesDollars.
-fun ClassIIIRailroad : Class ;
-fun ClassIIIRailroad_Class : SubClass ClassIIIRailroad RailroadCompany ;
-
--- ClassIIRailroad is the 
--- subclass of RailroadCompany whose instances have an 
--- average annual gross revenue between 20.5 and 256.4 million 
--- UnitedStatesDollars.
-fun ClassIIRailroad : Class ;
-fun ClassIIRailroad_Class : SubClass ClassIIRailroad RailroadCompany ;
-
--- ClassIRailroad is the 
--- subclass of RailroadCompany whose instances have an 
--- average annual gross revenue above 256.4 million 
--- UnitedStatesDollars.
-fun ClassIRailroad : Class ;
-fun ClassIRailroad_Class : SubClass ClassIRailroad RailroadCompany ;
-
-fun CombinationBulkCarrierShip : Class ;
-fun CombinationBulkCarrierShip_Class : SubClass CombinationBulkCarrierShip CargoShip ;
-fun CombinationBulk_OilCarrierShip : Class ;
-fun CombinationBulk_OilCarrierShip_Class : SubClass CombinationBulk_OilCarrierShip CombinationBulkCarrierShip ;
-fun CombinationOre_OilCarrierShip : Class ;
-fun CombinationOre_OilCarrierShip_Class : SubClass CombinationOre_OilCarrierShip CombinationBulkCarrierShip ;
--- CommonCarrier is the subclass of 
--- TransportationCompany whose instances must offer services to all 
--- customers. Contrast with ContractCarrier.
-fun CommonCarrier : Class ;
-fun CommonCarrier_Class : SubClass CommonCarrier TransportationCompany ;
-
-fun ContainerPort : Class ;
-fun ContainerPort_Class : SubClass ContainerPort PortCity ;
-fun ContainerShip : Class ;
-fun ContainerShip_Class : SubClass ContainerShip CargoShip ;
-fun Container_RoRoCargoShip : Class ;
-fun Container_RoRoCargoShip_Class : SubClass Container_RoRoCargoShip RollOnRollOffCargoShip ;
--- ContractCarrier is the subclass of 
--- TransportationCompany whose instances offer services to only one 
--- customer, under contract. Contrast with CommonCarrier.
-fun ContractCarrier : Class ;
-fun ContractCarrier_Class : SubClass ContractCarrier TransportationCompany ;
-
-fun CraneShip : Class ;
-fun CraneShip_Class : SubClass CraneShip Ship ;
--- CrewDormCars are Railcars used for 
--- housing the employee staff on long_distance trains.
-fun CrewDormCar : Class ;
-fun CrewDormCar_Class : SubClass CrewDormCar PassengerRailcar ;
-
--- CrudeOilPipeline is the subclass of 
--- Pipelines that are used to carry CrudeOil.
-fun CrudeOilPipeline : Class ;
-fun CrudeOilPipeline_Class : SubClass CrudeOilPipeline Pipeline ;
-
--- CruiseShip is the subclass of 
--- PassengerShips designed for the purpose of carrying passengers 
--- on extended trips.
-fun CruiseShip : Class ;
-fun CruiseShip_Class : SubClass CruiseShip PassengerShip ;
-
--- CubicFoot is a unit for measuring volume, 
--- equal to a volume of one foot length in each dimension of length, width, 
--- and height.
-fun CubicFoot : Ind UnitOfVolume ;
-
-
--- Cycle is a class of wheeled, pedal_driven 
--- UserPoweredVehicles that are designed to be ridden on roads or trails.
-fun Cycle : Class ;
-fun Cycle_Class : SubClass Cycle (both AgentPoweredVehicle LandVehicle) ;
-
-
--- Dam is the subclass of StationaryArtifacts that 
--- are walls built across a stream or river to hold back water.
-fun Dam : Class ;
-fun Dam_Class : SubClass Dam TransitwayObstacle ;
-
-fun DeckCargoShip : Class ;
-fun DeckCargoShip_Class : SubClass DeckCargoShip GeneralCargoShip ;
--- DeepDraftHarbor is the subclass 
--- of Harbors that have a waterDepth sufficient to accommodate 
--- vessels of a ladenDraft of 45 feet (13.7 meters) or greater.
-fun DeepDraftHarbor : Class ;
-fun DeepDraftHarbor_Class : SubClass DeepDraftHarbor Harbor ;
-
-fun DeepDraftPort : Class ;
-fun DeepDraftPort_Class : SubClass DeepDraftPort PortCity ;
--- DeepwaterPort is the subclass of 
--- PortFacility whose instances meet the criteria defined under 33 U.S.C. section 1502(1) as 'any fixed or floating man_made structures other than 
--- a vessel, or any group of such structures, located beyond the territorial 
--- sea and off the coast of the United States and which are used or intended 
--- for use as a port or terminal for the loading or unloading and further 
--- handling of oil for transportation to any State.... The term includes all associated components and equipment including pipelines, pumping stations, service platforms, mooring buoys, and similar appurtenances to the extent 
--- they are located seaward of the high water mark.'
-fun DeepwaterPort : Class ;
-fun DeepwaterPort_Class : SubClass DeepwaterPort PortFacility ;
-
-fun Door_Device : SubClass Door Device ;
-
-fun Door_TransitwayObstacle : SubClass Door TransitwayObstacle ;
-
-fun Drawbridge : Class ;
-fun Drawbridge_Class : SubClass Drawbridge MovableBridge ;
-fun Dredger : Class ;
-fun Dredger_Class : SubClass Dredger Ship ;
-fun DrillingShip : Class ;
-fun DrillingShip_Class : SubClass DrillingShip Ship ;
-fun DryBulkCarrierShip : Class ;
-fun DryBulkCarrierShip_Class : SubClass DryBulkCarrierShip CargoShip ;
--- DualGauge is the attribute of 
--- any Railway that has three parallel rails, thus allowing 
--- two different gauges of rolling stock to travel over it.
-fun DualGauge : Ind TrackGauge ;
-
-
-fun DualGaugeRail : Ind RailGauge ;
-
-fun DualGaugeRailway : Class ;
-fun DualGaugeRailway_Class : SubClass DualGaugeRailway Railway ;
--- ElectrifiedRailway is the subclass 
--- of Railway representing electrified railways.
-fun ElectrifiedRailway : Class ;
-fun ElectrifiedRailway_Class : SubClass ElectrifiedRailway Railway ;
-
--- EmergencyRoadVehicle is the 
--- subclass of EmergencyVehicle that includes RoadVehicles designed 
--- for special use in emergencies, e.g., Ambulances, FireEngines.
-fun EmergencyRoadVehicle : Class ;
-fun EmergencyRoadVehicle_Class : SubClass EmergencyRoadVehicle (both EmergencyVehicle (both PoweredVehicle RoadVehicle)) ;
-
-
--- EmergencyVehicle is the subclass of 
--- Vehicles that are used for special_purpose emergency response.
-fun EmergencyVehicle : Class ;
-fun EmergencyVehicle_Class : SubClass EmergencyVehicle PoweredVehicle ;
-
--- Expressway is the subclass of 
--- SurfacedRoadways that are multiple_lane, limited_access highways 
--- designed for rapid travel by MotorVehicles.
-fun Expressway : Class ;
-fun Expressway_Class : SubClass Expressway SurfacedRoadway ;
-
-fun FerryBoat : Class ;
-fun FerryBoat_Class : SubClass FerryBoat WaterVehicle ;
-fun FireBoat : Class ;
-fun FireBoat_Class : SubClass FireBoat WaterVehicle ;
--- FireEngine is the subclass of 
--- EmergencyRoadVehicles that represents the various vehicles
--- used by a fire department in fighting fires.
-fun FireEngine : Class ;
-fun FireEngine_Class : SubClass FireEngine EmergencyRoadVehicle ;
-
-fun FirstMate : Ind Position ;
-
-fun FishCarrierShip : Class ;
-fun FishCarrierShip_Class : SubClass FishCarrierShip FishingShip ;
-fun FishFactoryShip : Class ;
-fun FishFactoryShip_Class : SubClass FishFactoryShip FishingShip ;
-fun FishingShip : Class ;
-fun FishingShip_Class : SubClass FishingShip WaterVehicle ;
-fun FishingVessel : Class ;
-fun FishingVessel_Class : SubClass FishingVessel FishingShip ;
--- FiveWellStackCars are five_unit 
--- that carry double_stacked containers.
-fun FiveWellStackCar : Class ;
-fun FiveWellStackCar_Class : SubClass FiveWellStackCar FreightCar ;
-
-fun FixedBridge : Class ;
-fun FixedBridge_Class : SubClass FixedBridge (both Bridge StationaryArtifact) ;
-
--- FlagOfConvenienceRegister is the subclass of ShipRegisters 
--- in which most of the registered ships are owned outside of the 
--- GeopoliticalArea to which the registry belongs. 
--- InternalShipRegisters and OffshoreShipRegisters both may act as 
--- FlagOfConvenienceRegisters, if permitted by the maritime 
--- regulations of the registry owner.
-fun FlagOfConvenienceRegister : Class ;
-fun FlagOfConvenienceRegister_Class : SubClass FlagOfConvenienceRegister ShipRegister ;
-
--- Flatcars are Freightcars without sides 
--- or roofs.
-fun Flatcar : Class ;
-fun Flatcar_Class : SubClass Flatcar (both FreightCar OpenTopRailcar) ;
-
-
--- A train car that is designed to
--- carry freight, and not Humans.
-fun FreightCar : Class ;
-fun FreightCar_Class : SubClass FreightCar RollingStock ;
-
--- GalleryCars are double_decked passenger 
--- cars that have a viewing area on the second floor.
-fun GalleryCar : Class ;
-fun GalleryCar_Class : SubClass GalleryCar PassengerRailcar ;
-
-fun GeneralCargoShip : Class ;
-fun GeneralCargoShip_Class : SubClass GeneralCargoShip CargoShip ;
-fun GliderPlane : Class ;
-fun GliderPlane_Class : SubClass GliderPlane (both Aircraft UnpoweredVehicle) ;
-
--- Harbor is the subclass of WaterAreas that 
--- provide shelter and anchorage for WaterVehicle.
-fun Harbor : Class ;
-fun Harbor_Class : SubClass Harbor (both WaterArea Waterway) ;
-
-
--- HeadEndCars are Railcars that were 
--- typically placed at the front of the train, including mail and 
--- baggage cars.
-fun HeadEndCar : Class ;
-fun HeadEndCar_Class : SubClass HeadEndCar RollingStock ;
-
--- Heliport is a TransitTerminal designed 
--- for the takeoff and landing of Helicopters.
-fun Heliport : Class ;
-fun Heliport_Class : SubClass Heliport TransitTerminal ;
-
-fun HomeGarage : Class ;
-fun HomeGarage_Class : SubClass HomeGarage Building ;
-fun HopperDredger : Class ;
-fun HopperDredger_Class : SubClass HopperDredger Dredger ;
--- HydraCushionFreightCars 
--- are FreightCars with hydraulic underframes to cushion their loads.
-fun HydraCushionFreightCar : Class ;
-fun HydraCushionFreightCar_Class : SubClass HydraCushionFreightCar FreightCar ;
-
-fun IceBreakerShip : Class ;
-fun IceBreakerShip_Class : SubClass IceBreakerShip Ship ;
--- IntermodalTrip is the class of 
--- trips in which more than one mode (road, rail, sea, or air) of 
--- Transportation is used. That is, there are at least two 
--- subProcesses of the trip that use different modes of 
--- TransportationDevice.
-fun IntermodalTrip : Class ;
-fun IntermodalTrip_Class : SubClass IntermodalTrip Trip ;
-
--- InternalShipRegister is 
--- a subset of a NationalShipRegister. Ships on an internal 
--- register fly the same flag as on the national register but are 
--- subject to different taxation and crewing rules, which are 
--- typically more lenient. An internal register may function 
--- primarily as a FlagOfConvenienceRegister.
-fun InternalShipRegister : Class ;
-fun InternalShipRegister_Class : SubClass InternalShipRegister ShipRegister ;
-
-fun JetAirplane : Class ;
-fun JetAirplane_Class : SubClass JetAirplane Airplane ;
-fun Kayak : Class ;
-fun Kayak_Class : SubClass Kayak (both AgentPoweredVehicle WaterVehicle) ;
-
-fun Lane : Class ;
-fun Lane_Class : SubClass Lane Roadway ;
-fun LightTruck : Class ;
-fun LightTruck_Class : SubClass LightTruck Truck ;
-fun LiquefiedGasTankerShip : Class ;
-fun LiquefiedGasTankerShip_Class : SubClass LiquefiedGasTankerShip CargoShip ;
-fun LiquefiedGas_ChemicalTankerShip : Class ;
-fun LiquefiedGas_ChemicalTankerShip_Class : SubClass LiquefiedGas_ChemicalTankerShip LiquefiedGasTankerShip ;
-fun LivestockCarrierShip : Class ;
-fun LivestockCarrierShip_Class : SubClass LivestockCarrierShip CargoShip ;
--- An individual rail vehicle, i.e. a
--- RollingStock which is also a PoweredVehicle. Modern
--- locomotives are typically diesel or electric powered, while
--- older locomotives ran on Coal.
-fun Locomotive : Class ;
-fun Locomotive_Class : SubClass Locomotive (both PoweredVehicle RollingStock) ;
-
-
--- LocomotiveCoalCars are 
--- Railcars put directly behind the Locomotive and used for 
--- carrying fuel coal for the engine.
-fun LocomotiveCoalCar : Class ;
-fun LocomotiveCoalCar_Class : SubClass LocomotiveCoalCar RollingStock ;
-
--- LongRunwayAirport is a CIA 
--- category for Airports whose longest runway has a length between 
--- 2,438 meters and 3,047 meters, inclusive.
-fun LongRunwayAirport : Ind CIAAirportLengthClassification ;
-
-
--- LongTon is the UnitOfMeasure, 
--- equal to 2,240 PoundMass, which is used to measure Dead Weight 
--- Tonnage capacity of Ships.
-fun LongTon : Ind UnitOfMass ;
-
-
--- ManufacturedProduct is 
--- the subclass of Product that includes goods that are produced 
--- or assembled in factories or other manufacturing processes, 
--- in contrast to AgriculturalProducts.
-fun ManufacturedProduct : Class ;
-fun ManufacturedProduct_Class : SubClass ManufacturedProduct Product ;
-
--- MediumLengthRunwayAirport is a CIA 
--- category for Airports whose longest runway has a length between 
--- 1,524 meters and 2,437 meters, inclusive.
-fun MediumLengthRunwayAirport : Ind CIAAirportLengthClassification ;
-
-
--- MerchantMarine is a class of 
--- Collections of Ships, each collection belonging to a particular 
--- Nation or GeopoliticalArea, in whose ShipRegister the member 
--- ships are enrolled. For example, the merchant marine of France.
-fun MerchantMarine : Class ;
-fun MerchantMarine_Class : SubClass MerchantMarine Collection ;
-
--- (MerchantMarineFn ?AREA) denotes 
--- the Collection of all commercial ships registered in the 
--- ShipRegister of the GeopoliticalArea ?AREA.
-fun MerchantMarineFn : El GeopoliticalArea -> Ind MerchantMarine ;
-
-
--- MerchantMarineShip is the class 
--- of Ships that carry goods or passengers in exchange for payment. 
--- This excludes military ships, as well as working ships such as tugboats 
--- and fishing vessels. Merchant Marine ships belong to the 
--- MerchantMarine of some country and are registered in the related 
--- ShipRegister.
-fun MerchantMarineShip : Class ;
-fun MerchantMarineShip_Class : SubClass MerchantMarineShip Ship ;
-
-fun MotorHopper : Class ;
-fun MotorHopper_Class : SubClass MotorHopper Ship ;
--- MotorRailcars are PassengerRailcars 
--- that carry their own power source.
-fun MotorRailcar : Class ;
-fun MotorRailcar_Class : SubClass MotorRailcar (both PassengerRailcar PoweredVehicle) ;
-
-
-fun MotorScooter : Class ;
-fun MotorScooter_Class : SubClass MotorScooter RoadVehicle ;
-fun Motorcycle_RoadVehicle : SubClass Motorcycle RoadVehicle ;
-
-fun MovableBridge : Class ;
-fun MovableBridge_Class : SubClass MovableBridge Bridge ;
--- MultiModalTransitSystem is 
--- the class of TransitSystems that accommodate more than one type of 
--- transportation device or method.
-fun MultiModalTransitSystem : Class ;
-fun MultiModalTransitSystem_Class : SubClass MultiModalTransitSystem TransitSystem ;
-
-fun MultifunctionalLargeLoadCarrierShip : Class ;
-fun MultifunctionalLargeLoadCarrierShip_Class : SubClass MultifunctionalLargeLoadCarrierShip CargoShip ;
-fun MultihullWaterVehicle : Class ;
-fun MultihullWaterVehicle_Class : SubClass MultihullWaterVehicle WaterVehicle ;
--- MultipleTrackRailway is the 
--- subclass of Railway whose instances consists of two or more sets of 
--- tracks running in parallel, allowing motion in both directions along 
--- a route without the need for sidings and delays.
-fun MultipleTrackRailway : Class ;
-fun MultipleTrackRailway_Class : SubClass MultipleTrackRailway Railway ;
-
--- NarrowGauge is the attribute 
--- of any Railway that has a TrackGauge narrower than 
--- StandardGauge. There are several common track widths 
--- among NarrowGauge railways.
-fun NarrowGauge : Ind TrackGauge ;
-
-
-fun NarrowGaugeRail : Ind RailGauge ;
-
-fun NarrowGaugeRailway : Class ;
-fun NarrowGaugeRailway_Class : SubClass NarrowGaugeRailway Railway ;
--- A NationalShipRegister 
--- is a record of the Ships that are officially registered with 
--- a particular Nation, including their tonnage and ownership.
-fun NationalShipRegister : Class ;
-fun NationalShipRegister_Class : SubClass NationalShipRegister ShipRegister ;
-
--- NaturalGasPipeline is the subclass 
--- of Pipelines that are used to carry NaturalGas.
-fun NaturalGasPipeline : Class ;
-fun NaturalGasPipeline_Class : SubClass NaturalGasPipeline Pipeline ;
-
--- NorthernSeaRoute represents the 
--- seasonal waterway in the ArcticOcean adjacent to Russia and 
--- Norway.
-fun NorthernSeaRoute : Ind Waterway ;
-
-
--- NorthwestPassage represents the 
--- seasonal waterway in the ArcticOcean adjacent to Canada and the 
--- UnitedStates.
-fun NorthwestPassage : Ind Waterway ;
-
-
--- OceanLiner is the subclass of Ships 
--- that make regularly scheduled voyages to transport people and goods 
--- from one place to another.
-fun OceanLiner : Class ;
-fun OceanLiner_Class : SubClass OceanLiner (both CargoShip PassengerShip) ;
-
-
--- OffshoreAnchorage is the subclass 
--- of Anchorages that are located offshore and not within a Harbor.
-fun OffshoreAnchorage : Class ;
-fun OffshoreAnchorage_Class : SubClass OffshoreAnchorage Anchorage ;
-
--- OffshoreShipRegister is 
--- the class of ShipRegisters maintained by a colony, territory, or 
--- possession (OffshoreArea) of a nation. Typically such a register has more lenient maritime 
--- regulations with respect to taxation and crewing of ships than does 
--- the national register associated with the country of which the 
--- offshore area is a dependency.
-fun OffshoreShipRegister : Class ;
-fun OffshoreShipRegister_Class : SubClass OffshoreShipRegister ShipRegister ;
-
-fun OffshoreSupplyShip : Class ;
-fun OffshoreSupplyShip_Class : SubClass OffshoreSupplyShip Ship ;
-fun OffshoreSupportShip : Class ;
-fun OffshoreSupportShip_Class : SubClass OffshoreSupportShip Ship ;
-fun OffshoreWellProductionShip : Class ;
-fun OffshoreWellProductionShip_Class : SubClass OffshoreWellProductionShip Ship ;
--- OpenTopRailcars are FreightCars 
--- that have no roof. They may have sides or not.
-fun OpenTopRailcar : Class ;
-fun OpenTopRailcar_Class : SubClass OpenTopRailcar FreightCar ;
-
--- (OperatingFn ?DEVICE) denotes the class 
--- of events in which a Device of type ?device is operated.
-fun OperatingFn: El Device -> Desc Process ;
-
-
-fun OreCarrierShip : Class ;
-fun OreCarrierShip_Class : SubClass OreCarrierShip DryBulkCarrierShip ;
--- OutfitCars are Railcars used for housing 
--- railway construction or maintenance workers in the field. Also called 
--- 'Camp Cars'.
-fun OutfitCar : Class ;
-fun OutfitCar_Class : SubClass OutfitCar RollingStock ;
-
-fun PCCCar : Class ;
-fun PCCCar_Class : SubClass PCCCar Streetcar ;
-fun PalletizedCargoShip : Class ;
-fun PalletizedCargoShip_Class : SubClass PalletizedCargoShip GeneralCargoShip ;
-fun ParkingGarage : Class ;
-fun ParkingGarage_Class : SubClass ParkingGarage Building ;
-fun PassengerAndCargoShip : Class ;
-fun PassengerAndCargoShip_Class : SubClass PassengerAndCargoShip (both CargoShip PassengerShip) ;
-
--- A train car that is designed to
--- carry Humans.
-fun PassengerRailcar : Class ;
-fun PassengerRailcar_Class : SubClass PassengerRailcar (both PassengerVehicle RollingStock) ;
-
-
--- PassengerShip is the subclass of 
--- WaterVehicle designed for the purpose of carrying passengers.
-fun PassengerShip : Class ;
-fun PassengerShip_Class : SubClass PassengerShip Ship ;
-
-fun PassengerVehicle_Vehicle : SubClass PassengerVehicle Vehicle ;
-
-fun Passenger_LandingCraft : Class ;
-fun Passenger_LandingCraft_Class : SubClass Passenger_LandingCraft (both PassengerAndCargoShip RollOnRollOffCargoShip) ;
-
-fun Paved : Ind Attribute ;
-
--- PavedRunway is the subclass of Runways 
--- that are surfaced with concrete or asphalt.
-fun PavedRunway : Class ;
-fun PavedRunway_Class : SubClass PavedRunway Runway ;
-
--- PersonalWatercraft is the class 
--- of motor_driven WaterVehicle ridden by one or more passengers, e.g., 
--- a JetSki.
-fun PersonalWatercraft : Class ;
-fun PersonalWatercraft_Class : SubClass PersonalWatercraft WaterVehicle ;
-
--- PetroleumProductPipeline is the subclass of Pipelines that are 
--- used to carry PetroleumProducts.
-fun PetroleumProductPipeline : Class ;
-fun PetroleumProductPipeline_Class : SubClass PetroleumProductPipeline Pipeline ;
-
-fun PetroleumTankerShip : Class ;
-fun PetroleumTankerShip_Class : SubClass PetroleumTankerShip CargoShip ;
--- PlaningHullWaterVehicle is a subclass 
--- of WaterVehicle with hulls designed for a position partially on or above 
--- the water surface when they are in motion, in order to reduce drag. See 
--- also DisplacementHullWaterVehicle.
-fun PlaningHullWaterVehicle : Class ;
-fun PlaningHullWaterVehicle_Class : SubClass PlaningHullWaterVehicle WaterVehicle ;
-
-fun PontoonBridge : Class ;
-fun PontoonBridge_Class : SubClass PontoonBridge MovableBridge ;
--- PortCity is the subclass of City whose 
--- instances are cities or towns located adjacent to a Harbor, which is 
--- included in the administrative area of the city.
-fun PortCity : Class ;
-fun PortCity_Class : SubClass PortCity City ;
-
--- PortFacility is the class of port 
--- complexes, including piers and docking space, moorings, cargo_handling 
--- and other support facilities for marine traffic. Ships are loaded and 
--- unloaded at a PortFacility.
-fun PortFacility : Class ;
-fun PortFacility_Class : SubClass PortFacility GeopoliticalArea ;
-
--- (PortFacilityFn ?CITY) denotes the 
--- PortFacility, including mooring areas, docking space, and on_land 
--- support facilities for marine traffic, of the Port ?CITY, considered 
--- as a whole.
-fun PortFacilityFn : El PortCity -> Ind PortFacility ;
-
-
-fun PrivateRailcar : Class ;
-fun PrivateRailcar_Class : SubClass PrivateRailcar RollingStock ;
-fun PropellerJet : Class ;
-fun PropellerJet_Class : SubClass PropellerJet Airplane ;
-fun PropellerPlane : Class ;
-fun PropellerPlane_Class : SubClass PropellerPlane Airplane ;
-fun PusherTug : Class ;
-fun PusherTug_Class : SubClass PusherTug TugBoat ;
-fun RadioOperator : Ind Position ;
-
--- RailCarrierControl is the process of 
--- controlling the speed or direction of a train by sending high or 
--- low frequency currents on the rails.
-fun RailCarrierControl : Class ;
-fun RailCarrierControl_Class : SubClass RailCarrierControl Guiding ;
-
-fun RailGauge : Class ;
-fun RailGauge_Class : SubClass RailGauge InternalAttribute ;
--- RailJunction is the subclass of 
--- TransitwayJunctions where two or more Railway lines come together.
-fun RailJunction : Class ;
-fun RailJunction_Class : SubClass RailJunction (both Railway TransitwayJunction) ;
-
-
--- Railcar is the subclass of RollingStock that 
--- includes all non_locomotive, non_self_powered RailVehicles.
-fun Railcar : Class ;
-fun Railcar_Class : SubClass Railcar RollingStock ;
-
-fun RailcarCarrierShip : Class ;
-fun RailcarCarrierShip_Class : SubClass RailcarCarrierShip RollOnRollOffCargoShip ;
--- RailroadTrack is the class of 
--- StationaryArtifacts consisting of rails laid on supports to form 
--- a track for railway vehicles.
-fun RailroadTrack : Class ;
-fun RailroadTrack_Class : SubClass RailroadTrack StationaryArtifact ;
-
--- Railway is the subclass of 
--- LandTransitways that have rails along which Trains may travel. 
--- A railway consists of the rail bed, sleepers, tracks, electric 
--- rails, switches, sensors, lights, crossing grades, and any other 
--- integral machinery or parts of a section of railway.
-fun Railway : Class ;
-fun Railway_Class : SubClass Railway (both LandTransitway StationaryArtifact) ;
-
-
--- RailwayTerminal is the subclass of 
--- TransitTerminals designed for Trains. A RailwayTerminal includes 
--- all the RailroadTrack and any outbuildings or other related structure 
--- in the terminal, as well as the TrainStation (if there is one).
-fun RailwayTerminal : Class ;
-fun RailwayTerminal_Class : SubClass RailwayTerminal TransitTerminal ;
-
-fun RefrigeratedCargoShip : Class ;
-fun RefrigeratedCargoShip_Class : SubClass RefrigeratedCargoShip CargoShip ;
-fun RefrigeratorCar : Class ;
-fun RefrigeratorCar_Class : SubClass RefrigeratorCar Boxcar ;
--- RegistryTon is a unit of
--- measure used to represent the Gross Registered Tonnage (GRT) capacity
--- of Ships. GRT is based on a volume measure, with one RegistryTon
--- equal to a volume of 100 cubic feet.
-fun RegistryTon : Ind UnitOfVolume ;
-
-
-fun ResearchShip : Class ;
-fun ResearchShip_Class : SubClass ResearchShip Ship ;
--- RiverPort is the subclass of PortCity 
--- whose instances are port cities Adjacent to a navigable River.
-fun RiverPort : Class ;
-fun RiverPort_Class : SubClass RiverPort PortCity ;
-
--- RoadJunction is the subclass of 
--- TransitwayJunctions where two or more Roadways come together.
-fun RoadJunction : Class ;
-fun RoadJunction_Class : SubClass RoadJunction (both Roadway TransitwayJunction) ;
-
-
-fun Road_Roadway : SubClass Road Roadway ;
-
-fun Rocket_Aircraft : SubClass Rocket Aircraft ;
-
-fun RollOnRollOffCargoShip : Class ;
-fun RollOnRollOffCargoShip_Class : SubClass RollOnRollOffCargoShip CargoShip ;
-
-
-fun RotaryDumpCar : Class ;
-fun RotaryDumpCar_Class : SubClass RotaryDumpCar OpenTopRailcar ;
-
-fun Runabout : Class ;
-fun Runabout_Class : SubClass Runabout WaterVehicle ;
--- Runway is the class of Transitways that are 
--- used for the takeoff and landing of Airplanes. Runways are 
--- Transitways for an intermodal transit, which begins with a land transit 
--- and ends with air transit, or vice versa. The Airspace immediately 
--- above (and adjacent to) a Runway is an AirTransitway.
-fun Runway : Class ;
-fun Runway_Class : SubClass Runway LandTransitway ;
-
-fun Sailboat : Class ;
-fun Sailboat_Class : SubClass Sailboat WaterVehicle ;
--- ScaleTestCars are Railcars of 
--- known weight used to test or calibrate track scales used for 
--- weighing freight.
-fun ScaleTestCar : Class ;
-fun ScaleTestCar_Class : SubClass ScaleTestCar RollingStock ;
-
-fun Scooter : Class ;
-fun Scooter_Class : SubClass Scooter (both AgentPoweredVehicle LandVehicle) ;
-
-fun SeaLane : Class ;
-fun SeaLane_Class : SubClass SeaLane Waterway ;
--- SeaPort is the subclass of PortCity 
--- whose instances are port cities on or closely linked to a Sea or 
--- Ocean.
-fun SeaPort : Class ;
-fun SeaPort_Class : SubClass SeaPort PortCity ;
-
-fun SecondaryHighway : Class ;
-fun SecondaryHighway_Class : SubClass SecondaryHighway Roadway ;
-fun SelfDischargingBulkCarrierShip : Class ;
-fun SelfDischargingBulkCarrierShip_Class : SubClass SelfDischargingBulkCarrierShip DryBulkCarrierShip ;
--- ShipBerth is the class of areas where 
--- a Ship may be moored, whether at an Anchorage or dock.
-fun ShipBerth : Class ;
-fun ShipBerth_Class : SubClass ShipBerth WaterArea ;
-
--- ShipBerthing is the class of 
--- Translocation processes in which a vessel is brought to a 
--- mooring, at dockside or anchorage.
-fun ShipBerthing : Class ;
-fun ShipBerthing_Class : SubClass ShipBerthing Translocation ;
-
--- (ShipBerthingFn ?SHIP) denotes the 
--- class of ShipBerthings of an individual WaterVehicle ?SHIP.
-fun ShipBerthingFn: El Ship -> Desc ShipBerthing ;
-
-
--- ShipCabin is the subclass of all 
--- ShipCompartments for accommodating Humans aboard a ship.
-fun ShipCabin : Class ;
-fun ShipCabin_Class : SubClass ShipCabin ShipCompartment ;
-
--- A ShipCompartment is any fully or 
--- partly bounded section of a Ship.
-fun ShipCompartment : Class ;
-fun ShipCompartment_Class : SubClass ShipCompartment Artifact ;
-
--- ShipContainer is the class of specialized 
--- large containers designed for shipping goods aboard ContainerShips.
-fun ShipContainer : Class ;
-fun ShipContainer_Class : SubClass ShipContainer SelfConnectedObject ;
-
--- A ShipCrew is an Organization of people 
--- who operate a Ship, Plane, Train, or other transportation vehicle.
-fun ShipCrew : Class ;
-fun ShipCrew_Class : SubClass ShipCrew Organization ;
-
--- (ShipCrewFn ?BOAT) denotes the 
--- Organization consisting of the people charged with operating 
--- the WaterVehicle ?BOAT.
-fun ShipCrewFn : El WaterVehicle -> Ind Group ;
-
-
--- ShipDeck is the class of decks on a ship, 
--- considered as spaces or Regions in which passengers and crew work, 
--- live, or ride, and/or in which machinery and cargo are stored on a 
--- Ship.
-fun ShipDeck : Class ;
-fun ShipDeck_Class : SubClass ShipDeck Artifact ;
-
--- A ShipRegister is a record of each Ship 
--- and owner registered with the maritime authorities of a country or 
--- possession, colony, or territory of a country. Ships on the 
--- ShipRegister of a given region fly the flag of that region and are 
--- subject to its maritime regulations and rules of taxation.
-fun ShipRegister : Class ;
-fun ShipRegister_Class : SubClass ShipRegister ContentBearingObject ;
-
--- (ShipRegisterFn ?AREA) 
--- denotes the ShipRegister of the Ships that fly the flag of 
--- the GeopoliticalArea ?AREA.
-fun ShipRegisterFn : El GeopoliticalArea -> Ind ShipRegister ;
-
-
--- ShipRegistration is the official 
--- document containing information about the ownership, size, and 
--- flag state (flag of registry) of an individual Ship, as registered 
--- in the ShipRegister maintained by the maritime authorities of a 
--- particular Nation or OverseasArea of a nation. A ship flies the 
--- flag of its registered nation or area, and the ship is subject to the 
--- maritime regulations and rules of taxation of its flagState.
-fun ShipRegistration : Class ;
-fun ShipRegistration_Class : SubClass ShipRegistration ContentBearingObject ;
-
-fun ShippingChannel : Class ;
-fun ShippingChannel_Class : SubClass ShippingChannel Waterway ;
-fun ShippingLane : Class ;
-fun ShippingLane_Class : SubClass ShippingLane Waterway ;
--- ShortRunwayAirport is a CIA 
--- category for Airports whose longest runway has a length between 914 
--- meters and 1523 meters, inclusive.
-fun ShortRunwayAirport : Ind CIAAirportLengthClassification ;
-
-
-fun ShortSeaPassengerShip : Class ;
-fun ShortSeaPassengerShip_Class : SubClass ShortSeaPassengerShip PassengerShip ;
-fun SludgeDisposalVessel : Class ;
-fun SludgeDisposalVessel_Class : SubClass SludgeDisposalVessel Ship ;
-fun SpecializedTankerShip : Class ;
-fun SpecializedTankerShip_Class : SubClass SpecializedTankerShip CargoShip ;
--- SpineCars are articulated Flatcars 
--- used to carry trailers or containers.
-fun SpineCar : Class ;
-fun SpineCar_Class : SubClass SpineCar Flatcar ;
-
--- StandardGauge is the attribute 
--- of Railways having the standardized track width that is 
--- used in North America and most Western European countries. 
--- The standard is typically a distance of 4 ft., 8_1/2 inches 
--- (1.44 meters). There is some variation within which usage is 
--- compatible, e.g., 1.35 meters. Standard gauge originated in 
--- England and was mandated by the U.S. Federal government for the 
--- U.S. Transcontinental Railroad. It is also used in Canada, 
--- Great Britain, and most of Western Europe (but not in Ireland, 
--- or Spain and Portugal.
-fun StandardGauge : Ind TrackGauge ;
-
-
-fun StandardGaugeRail : Ind RailGauge ;
-
-fun StandardGaugeRailway : Class ;
-fun StandardGaugeRailway_Class : SubClass StandardGaugeRailway Railway ;
-fun Street : Class ;
-fun Street_Class : SubClass Street Roadway ;
-fun Streetcar_RollingStock : SubClass Streetcar RollingStock ;
-
--- SurfacedRoadway is the subclass of 
--- Roadways that have been improved by covering them with a substance 
--- to increase the hardness and smoothness of the surface. Covering 
--- materials include pavement, concrete, asphalt, macadam, and gravel.
-fun SurfacedRoadway : Class ;
-fun SurfacedRoadway_Class : SubClass SurfacedRoadway Roadway ;
-
--- TankCars are enclosed FreightCars used 
--- to carry fluids.
-fun TankCar : Class ;
-fun TankCar_Class : SubClass TankCar FreightCar ;
-
--- A TerminalBuilding is a Building 
--- located at a TransitTerminal and used in connection with its 
--- functions.
-fun TerminalBuilding : Class ;
-fun TerminalBuilding_Class : SubClass TerminalBuilding Building ;
-
-fun TollBooth : Class ;
-fun TollBooth_Class : SubClass TollBooth Building ;
--- TrackGauge is the collection of 
--- attributes that characterize sections of railways, according 
--- to the set distances between the two tracks of the Railway. 
--- Precisely, the measurement of track gauge is the distance 
--- between the inner vertical surfaces of the heads of the rails. 
--- Track gauges include broad, dual, standard, and narrow gauges.
-fun TrackGauge : Class ;
-fun TrackGauge_Class : SubClass TrackGauge InternalAttribute ;
-
-fun TrafficLight : Class ;
-fun TrafficLight_Class : SubClass TrafficLight Device ;
-fun Trail : Class ;
-fun Trail_Class : SubClass Trail LandTransitway ;
--- Any RoadVehicle that is also an UnpoweredVehicle,
--- and intended to be towed by a PoweredVehicle.
-fun Trailer : Class ;
-fun Trailer_Class : SubClass Trailer (both RoadVehicle UnpoweredVehicle) ;
-
-
--- Train is the subclass of 
--- TransportationDevice whose instances are linked sequences 
--- of RollingStock.
-fun Train : Class ;
-fun Train_Class : SubClass Train (both Collection (both PoweredVehicle RailVehicle)) ;
-
-
--- TrainStation is the subclass of 
--- Buildings that are located at a RailwayTerminal and used in support 
--- of its functions, especially for the handling of passengers and freight.
-fun TrainStation : Class ;
-fun TrainStation_Class : SubClass TrainStation (both TerminalBuilding TransitTerminal) ;
-
-
--- (TransitFn ?WAY) denotes the class of 
--- Translocations that consist of travelling along the Transitway 
--- ?WAY.
-fun TransitFn: El Transitway -> Desc Translocation ;
-
-
--- TransitRoute is the class of 
--- Regions that are paths for Motion from one place to another.
-fun TransitRoute : Class ;
-fun TransitRoute_Class : SubClass TransitRoute Region ;
-
--- TransitShelter is the class of 
--- structures that provide shelter for passengers waiting at a 
--- TransitStop.
-fun TransitShelter : Class ;
-fun TransitShelter_Class : SubClass TransitShelter Artifact ;
-
--- TransitStop is the subclass of places 
--- where a vehicle of a scheduled or common carrier makes a stop to 
--- discharge or take on passengers or goods.
-fun TransitStop : Class ;
-fun TransitStop_Class : SubClass TransitStop Region ;
-
--- A TransitTerminal is a place where 
--- travellers or transportation devices begin or end their journeys, or 
--- where passengers and/or goods may be transferred. At a terminal, 
--- TransportationDevices may be received, assigned, sent out, or 
--- stored.
-fun TransitTerminal : Class ;
-fun TransitTerminal_Class : SubClass TransitTerminal StationaryArtifact ;
-
--- TransitwayJunction is the class of 
--- regions where two or more Transitways meet and traffic may transfer 
--- from one transitway to another.
-fun TransitwayJunction : Class ;
-fun TransitwayJunction_Class : SubClass TransitwayJunction Transitway ;
-
--- TransitwayObstacle is the general 
--- class of Objects that can act as obstacles to Motion along a 
--- Transitway.
-fun TransitwayObstacle : Class ;
-fun TransitwayObstacle_Class : SubClass TransitwayObstacle Object ;
-
--- TransportationAuthority is the class of Organizations that are 
--- responsible for one or more systems of transportation, usually within 
--- a particular GeopoliticalArea.
-fun TransportationAuthority : Class ;
-fun TransportationAuthority_Class : SubClass TransportationAuthority Organization ;
-
-fun TransportationDevice_TransportationEquipment : SubClass TransportationDevice TransportationEquipment ;
-
-fun TransportationEquipment : Class ;
-fun TransportationEquipment_Class : SubClass TransportationEquipment ManufacturedProduct ;
--- (TransportationFn ?TYPE) denotes the subclass of Transportation 
--- events in which a TransportationDevice of ?TYPE is the vehicle.
-fun TransportationFn: Desc TransportationDevice -> Desc Transportation ;
-
-
-fun Trawler : Class ;
-fun Trawler_Class : SubClass Trawler FishingShip ;
--- Trip is the subclass of Motions along a 
--- TransitRoute or Transitway.
-fun Trip : Class ;
-fun Trip_Class : SubClass Trip Motion ;
-
--- (TripFn ?VEHICLE) denotes the subclass of Transportation 
--- events in which a particular TransportationDevice ?VEHICLE is the 
--- vehicle. Contrast this function with TransportationFn, which is 
--- used to denote transportation events by a specific kind of vehicle.
-fun TripFn: El Vehicle -> Desc Transportation ;
-
-
-fun TugBoat : Class ;
-fun TugBoat_Class : SubClass TugBoat WaterVehicle ;
--- Tunnel is a subclass of Transitways that 
--- consist of a lengthwise enclosed Hole that allows for transit 
--- underground, as through mountains, below a body of water, or beneath a 
--- city.
-fun Tunnel : Class ;
-fun Tunnel_Class : SubClass Tunnel (both LandTransitway StationaryArtifact) ;
-
-
--- UniModalTransitSystem is 
--- the class of TransitSystems that accommodate a single type of 
--- transportation device or method.
-fun UniModalTransitSystem : Class ;
-fun UniModalTransitSystem_Class : SubClass UniModalTransitSystem TransitSystem ;
-
-fun Unpaved : Ind Attribute ;
-
--- UnpavedRunways include Runways with 
--- grass, dirt, sand, or gravel surfaces. Contrast with PavedRunway.
-fun UnpavedRunway : Class ;
-fun UnpavedRunway_Class : SubClass UnpavedRunway Runway ;
-
--- A Vehicle that lacks a powerComponent.
--- It coasts like a glider or skateboard, thus deriving its power from the
--- potential energy of gravity, or by the power of its agent, as in a bicycle.
-fun UnpoweredVehicle : Class ;
-fun UnpoweredVehicle_Class : SubClass UnpoweredVehicle Vehicle ;
-
--- UnsurfacedRoadway is the subclass 
--- of Roadways that have natural, unimproved surfaces of dirt or sand.
-fun UnsurfacedRoadway : Class ;
-fun UnsurfacedRoadway_Class : SubClass UnsurfacedRoadway Roadway ;
-
-fun UreaCarrierShip : Class ;
-fun UreaCarrierShip_Class : SubClass UreaCarrierShip DryBulkCarrierShip ;
-fun VehicleCarrierShip : Class ;
-fun VehicleCarrierShip_Class : SubClass VehicleCarrierShip RollOnRollOffCargoShip ;
--- VehicleRegistration is the class 
--- of official documents containing information about a vehicle's ownership 
--- and identifying characteristics, as required by the appropriate authority 
--- for the type and location of individual vehicles.
-fun VehicleRegistration : Class ;
-fun VehicleRegistration_Class : SubClass VehicleRegistration ContentBearingObject ;
-
--- VeryLongRunwayAirport is a CIA 
--- category for Airports whose longest runway has a length greater 
--- than 3,047 meters.
-fun VeryLongRunwayAirport : Ind CIAAirportLengthClassification ;
-
-
--- VeryShortRunwayAirport is a CIA 
--- category for Airports whose longest runway is less than 914 meters 
--- long.
-fun VeryShortRunwayAirport : Ind CIAAirportLengthClassification ;
-
-
--- WaterJunction is the subclass of 
--- TransitwayJunctions where two or more Waterways come together.
-fun WaterJunction : Class ;
-fun WaterJunction_Class : SubClass WaterJunction (both TransitwayJunction Waterway) ;
-
-
-fun WaterTransportationSystem : Class ;
-fun WaterTransportationSystem_Class : SubClass WaterTransportationSystem TransitSystem ;
--- Waterway is the class of navigable waters, 
--- including Oceans, SeaLanes, Rivers, Canals, Lakes, and inland 
--- bodies of water.
-fun Waterway : Class ;
-fun Waterway_Class : SubClass Waterway (both Transitway WaterArea) ;
-
-
-fun WoodChipsCarrierShip : Class ;
-fun WoodChipsCarrierShip_Class : SubClass WoodChipsCarrierShip DryBulkCarrierShip ;
--- (cargoType ?DEVICE ?TYPE) means that the 
--- TransportationDevice ?DEVICE typically carries cargo of the kind 
--- ?TYPE.
-fun cargoType: El TransportationDevice -> Desc Object -> Formula ;
-
-
--- (fOCShipsByOrigin ?MM ?AREA ?COUNT) means that the 
--- MerchantMarine ?MM has ?COUNT number of ships from the 
--- GeopoliticalArea ?AREA in its ShipRegister, using it as 
--- a FlagOfConvenience, although the owner of the ships is in 
--- ?AREA.
-fun fOCShipsByOrigin : El MerchantMarine -> El GeopoliticalArea -> El NonnegativeInteger -> Formula ;
-
-
--- (flagState ?SHIP ?AREA) means that 
--- the Ship ?SHIP is enrolled in the ShipRegister of the 
--- GeopoliticalArea ?AREA and is subject to its maritime laws, 
--- regulations for operation of the ship, and rules of taxation.
-fun flagState : El WaterVehicle -> El GeopoliticalArea -> Formula ;
-
-
--- (fleetDeadWeightTonnage ?FLEET ?AMOUNT) means that the Collection 
--- of Ships ?FLEET has a total carrying capacity of ?AMOUNT in LongTons. 
--- This is the total vesselDeadWeightTonnage of all the vessels combined. 
--- Dead Weight Tonnage, or DWT, is the weight of cargo plus stores that a 
--- vessel can carry when immersed to the proper load line.
-fun fleetDeadWeightTonnage : El Collection -> El MassMeasure -> Formula ;
-
-
--- (fleetGrossRegisteredTonnage ?FLEET ?AMOUNT) means that the 
--- Collection of Ships ?FLEET has a total carrying capacity of ?AMOUNT 
--- in RegistryTons. This is the total vesselGrossRegisteredTonnage of 
--- all the vessels combined. Gross Registered Tonnage, or GRT, is the 
--- capacity of a vessel calculated on an equivalence of 100 cubic feet of 
--- sheltered area per ton.
-fun fleetGrossRegisteredTonnage : El Collection -> El PhysicalQuantity -> Formula ;
-
-
--- (ladenDraft ?SHIP ?AMOUNT) means that 
--- the WaterVehicle ?SHIP requires a waterDepth of at least ?AMOUNT 
--- to sail without running aground, when she is loaded at capacity.
-fun ladenDraft : El WaterVehicle -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfBroadGaugeRailway ?AREA ?LENGTH) means that the sum length 
--- of broad gauge railway routes in the GeographicArea ?AREA is the 
--- LengthMeasure ?LENGTH.
-fun lengthOfBroadGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfCrudeOilPipeline ?AREA ?AMOUNT) means that in the 
--- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
--- CrudeOilPipeline.
-fun lengthOfCrudeOilPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfDualGaugeRailway ?AREA ?LENGTH) means that the sum length 
--- of dual gauge railway routes in the GeographicArea ?AREA is the 
--- LengthMeasure ?LENGTH.
-fun lengthOfDualGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfElectrifiedRailway ?AREA ?LENGTH) means that the sum 
--- length of all ElectrifiedRailway routes in the GeographicArea 
--- ?AREA is the LengthMeasure ?LENGTH.
-fun lengthOfElectrifiedRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfExpresswaySystem ?AREA ?LENGTH) means that the total length 
--- of Expressway in the GeographicArea ?AREA is ?LENGTH.
-fun lengthOfExpresswaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfMultipleTrackRailway ?AREA ?LENGTH) means that the sum 
--- length of all MultipleTrackRailway routes in the GeographicArea 
--- ?AREA is the LengthMeasure ?LENGTH.
-fun lengthOfMultipleTrackRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfNarrowGaugeRailway ?AREA ?LENGTH) means that the sum length 
--- of narrow gauge railway routes in the GeographicArea ?AREA is the 
--- LengthMeasure ?LENGTH.
-fun lengthOfNarrowGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfNaturalGasPipeline ?AREA ?AMOUNT) means that in the 
--- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
--- NaturalGasPipeline.
-fun lengthOfNaturalGasPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfPavedHighway ?AREA ?LENGTH) means that the total length 
--- of SurfacedRoadway in the GeographicArea ?AREA is ?LENGTH.
-fun lengthOfPavedHighway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfPetroleumProductPipeline ?AREA ?AMOUNT) means that in the 
--- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
--- PetroleumProductPipeline.
-fun lengthOfPetroleumProductPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfStandardGaugeRailway ?AREA ?LENGTH) means that the sum length 
--- of standard gauge railway routes in the GeographicArea ?AREA is the 
--- LengthMeasure ?LENGTH.
-fun lengthOfStandardGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfUnclassifiedGaugeRailway ?AREA ?LENGTH) means that the sum length 
--- of railway routes in the GeographicArea ?AREA classified as something 
--- other than broad, dual, narrow, or standard gauge is the LengthMeasure 
--- ?LENGTH.
-fun lengthOfUnclassifiedGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (lengthOfUnpavedHighway ?AREA ?LENGTH) means that the total length 
--- of UnsurfacedRoadway in the GeographicArea ?AREA is ?LENGTH.
-fun lengthOfUnpavedHighway : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- A relation between a MerchantMarine
--- and a ShipRegister which is a member of that MerchantMarine
-fun marineInventory : El MerchantMarine -> El ShipRegister -> Formula ;
-
-
--- (navigableForDraft ?WATERWAY ?DRAFT) means that the Waterway 
--- ?WATERWAY can be transited by vessels up to the draft ?DRAFT.
-fun navigableForDraft : El WaterArea -> El LengthMeasure -> Formula ;
-
-
--- (navigableForShippingTonnage ?WATERWAY ?TONNAGE) means that the 
--- Waterway ?WATERWAY can be transited by vessels up to the tonnage 
--- ?TONNAGE (in Dead Weight Tonnage).
-fun navigableForShippingTonnage : El WaterArea -> El PhysicalQuantity -> Formula ;
-
-
--- (passengerCapacityMaxNumber ?TRANSPORT ?NUMBER) means that the 
--- TransportationDevice ?TRANSPORT has a safe carrying capacity for ?NUMBER 
--- of passengers.
-fun passengerCapacityMaxNumber : El TransportationDevice -> El Number -> Formula ;
-
-
--- (powerComponent ?GENERATOR ?THING) 
--- means that the Device ?THING is the power source for the Artifact 
--- ?THING.
-fun powerComponent: El Device -> Desc Artifact -> Formula ;
-
-
--- (routeBetween ?ROUTE ?FROM ?TO) means 
--- that the Transitway ?ROUTE is a route between the place ?FROM and 
--- the place ?TO.
-fun routeBetween : El Transitway -> El Region -> El Region -> Formula ;
-
-
--- (routeEnd ?REGION ?SYSTEM) means
--- that within the given ?SYSTEM the given ?REGION is connected to
--- only one other Region.
-fun routeEnd : El Region -> El TransitSystem -> Formula ;
-
-
-fun routeStart : El Region -> El TransitSystem -> Formula ;
-
--- The maximum speed under normal conditions
--- for a vehicle. For a RoadVehicle this would be on level ground, no headwind or
--- tailwind, 70 degrees F, standard recommended fuel etc. For an Aircraft this would
--- mean level flight out of ground effect. Because of the number of external factors
--- on top speed, all that can be said formally is that higher speeds are unlikely.
-fun topSpeed : El Vehicle -> El FunctionQuantity -> Formula ;
-
-
--- (totalFacilityTypeInArea ?AREA ?TYPE ?COUNT) means that in the 
--- GeographicArea ?AREA there a total of ?COUNT number of facilities 
--- of type ?TYPE.
-fun totalFacilityTypeInArea : El GeographicArea -> Class -> El NonnegativeInteger -> Formula ;
-
-
--- (totalLengthOfHighwaySystem ?AREA ?LENGTH) means that the total 
--- length of the highway system in the GeographicArea ?AREA is ?LENGTH. 
--- The figure includes both paved and unpaved roads.
-fun totalLengthOfHighwaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (totalLengthOfRailwaySystem ?AREA ?LENGTH) means that the sum 
--- length of all railway routes in the GeographicArea ?AREA 
--- is the LengthMeasure ?LENGTH.
-fun totalLengthOfRailwaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (totalLengthOfWaterways ?AREA ?LENGTH) means that the 
--- total length of navigable Waterways in the GeographicArea ?AREA 
--- is the LengthMeasure ?LENGTH.
-fun totalLengthOfWaterways : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- (totalPipelineInArea ?AREA ?LENGTH) means that the GeopoliticalArea 
--- ?AREA has ?LENGTH of Pipelines.
-fun totalPipelineInArea : El GeographicArea -> El LengthMeasure -> Formula ;
-
-
--- The distance between the two rails
--- of a Railway.
-fun trackWidth : El Railway -> El LengthMeasure -> Formula ;
-
-
--- (trafficableForTrafficType ?WAY ?TYPE) means that Objects of ?TYPE 
--- can move along the Transitway ?WAY.
-fun trafficableForTrafficType: El Object -> Desc SelfConnectedObject -> Formula ;
-
-
--- (transitwayCapacityCount ?WAY ?TYPE ?NUMBER) means that the 
--- Transitway ?WAY can accommodate a maximum of ?NUMBER items of ?TYPE 
--- at any one time.
-fun transitwayCapacityCount: El Transitway -> Desc SelfConnectedObject -> El NonnegativeInteger -> Formula ;
-
-
--- (transitwayCapacityRate ?WAY ?TYPE ?RATE) means that the 
--- Transitway WAY can transit items of ?TYPE at the maximum 
--- FunctionQuantity ?RATE. For example, 
--- (transitwayCapacityRate SFBayBridgeWestbound Automobile 500).
-fun transitwayCapacityRate: El Transitway -> Desc SelfConnectedObject -> El FunctionQuantity -> Formula ;
-
-
--- (vesselDeadWeightTonnage ?VESSEL ?AMOUNT) means that the 
--- WaterVehicle ?VESSEL has a carrying capacity when fully loaded of 
--- ?AMOUNT in LongTons. This is the Dead Weight Tonnage, or DWT, 
--- of the vessel, which is the total weight of cargo plus stores 
--- that the vessel can carry when immersed to the proper load line.
-fun vesselDeadWeightTonnage : El WaterVehicle -> El MassMeasure -> Formula ;
-
-
--- (vesselDisplacement ?VESSEL ?AMOUNT) means that the displacement 
--- of WaterVehicle ?VESSEL is the PhysicalQuantity ?AMOUNT. The 
--- displacement of a vessel may be measured in LongTons (Dead Weight 
--- Tonnage, or DWT) or by volume (Gross Registered Tonnage, or GRT).
-fun vesselDisplacement : El WaterVehicle -> El PhysicalQuantity -> Formula ;
-
-
--- (vesselGrossRegisteredTonnage ?VESSEL ?AMOUNT) means that the 
--- WaterVehicle ?VESSEL has a carrying capacity when fully loaded of 
--- ?AMOUNT, where ?AMOUNT is the Gross Registered Tonnage (GRT) of the 
--- vessel, which is based on the total sheltered volume of the vessel 
--- measured in hundreds of cubic feet, and converted to gross tons 
--- at an equivalence of 100 cubic feet per ton.
-fun vesselGrossRegisteredTonnage : El WaterVehicle -> El PhysicalQuantity -> Formula ;
+abstract Transportation = MidLevelOntology ** {
+
+  -- A Vehicle which is powered by
+  -- one or more of its passengers or driver, for example, a Bicycle.
+  fun AgentPoweredVehicle : Class ;
+  fun AgentPoweredVehicle_Class : SubClass AgentPoweredVehicle Vehicle ;
+
+  -- An AirRoute is a region of air space that 
+  -- can be travelled between points by an air TransportationDevice.
+  fun AirRoute : Class ;
+  fun AirRoute_Class : SubClass AirRoute TransitRoute ;
+
+  -- The subclass of Transitways that are through
+  -- the EarthsAtmosphere.
+  fun AirTransitway : Class ;
+  fun AirTransitway_Class : SubClass AirTransitway Transitway ;
+
+  -- A MilitaryShip on which MilitaryAircraft can land 
+  -- and take off.
+  fun AircraftCarrier : Class ;
+  fun AircraftCarrier_Class : SubClass AircraftCarrier MilitaryShip ;
+
+  -- Airplane is the subclass of Aircraft that 
+  -- are fixed_wing aircraft which carry their own power sources. Airplane 
+  -- includes jet airplanes and propeller planes, but not gliders.
+  fun Airplane : Class ;
+  fun Airplane_Class : SubClass Airplane (both Aircraft PoweredVehicle) ;
+
+  -- Airport is the subclass of TransitTerminals 
+  -- for Airplanes (fixed_wing Aircraft).
+  fun Airport : Class ;
+  fun Airport_Class : SubClass Airport (both AirTransitway (both LandTransitway TransitTerminal)) ;
+
+  -- AirportByRunwaySurface is a 
+  -- subclass of AirportClassification attributes used to describe an 
+  -- airport according to the surface type of its longest runway.
+  fun AirportByRunwaySurface : Class ;
+  fun AirportByRunwaySurface_Class : SubClass AirportByRunwaySurface AirportClassification ;
+
+  -- AirportClassification 
+  -- is a class of Attributes for representing systems that categorize 
+  -- Airports according to some criteria. There are several such systems, 
+  -- including the International Civil Aviation Organization categories A to 
+  -- E, based on runway lengths, the Federal Aviation Administration system 
+  -- associated with airport functions, and the airport categorization by 
+  -- runway length used in the CIA World Fact Book.
+  fun AirportClassification : Class ;
+  fun AirportClassification_Class : SubClass AirportClassification RelationalAttribute ;
+
+  -- AirportWithPavedRunway is an 
+  -- AirportClassification attribute used to describe an airport whose 
+  -- longest runway is a PavedRunway.
+  fun AirportWithPavedRunway : Ind AirportByRunwaySurface ;
+
+  -- AirportWithUnpavedRunway is 
+  -- an AirportClassification attribute used to describe an airport whose 
+  -- longest runway is an UnpavedRunway.
+  fun AirportWithUnpavedRunway : Ind AirportByRunwaySurface ;
+
+  -- The class of Transitways used to transport Air 
+  -- to a location where it is absent or insufficient.
+  fun Airway : Class ;
+  fun Airway_Class : SubClass Airway Transitway ;
+
+  -- Ambulance is the subclass of 
+  -- EmergencyRoadVehicles that represents ambulances.
+  fun Ambulance : Class ;
+  fun Ambulance_Class : SubClass Ambulance EmergencyRoadVehicle ;
+
+  -- Anchorage is the subclass of WaterAreas 
+  -- where WaterVehicle may anchor with some shelter or safety. Anchorages 
+  -- may be inside a Harbor or offshore.
+  fun Anchorage : Class ;
+  fun Anchorage_Class : SubClass Anchorage WaterArea ;
+
+  fun Barge : Class ;
+  fun Barge_Class : SubClass Barge WaterVehicle ;
+
+  fun BargeCarrierShip : Class ;
+  fun BargeCarrierShip_Class : SubClass BargeCarrierShip CargoShip ;
+
+  -- Bicycle is a class of two_wheeled, 
+  -- UserPoweredVehicles.
+  fun Bicycle : Class ;
+  fun Bicycle_Class : SubClass Bicycle Cycle ;
+
+  -- Boxcar is the subclass of Railcars that are 
+  -- general_purpose closed cars for hauling freight.
+  fun Boxcar : Class ;
+  fun Boxcar_Class : SubClass Boxcar FreightCar ;
+
+  -- Bridge is the subclass of LandTransitways 
+  -- that are artifacts used for crossing water or air_filled gaps that 
+  -- could not be transited over a natural surface.
+  fun Bridge : Class ;
+  fun Bridge_Class : SubClass Bridge (both LandTransitway StationaryArtifact) ;
+
+  -- BroadGauge is the attribute of 
+  -- any Railway that has a TrackGauge wider than StandardGauge.
+  fun BroadGauge : Ind TrackGauge ;
+
+  fun BroadGaugeRail : Ind RailGauge ;
+
+  fun BroadGaugeRailway : Class ;
+  fun BroadGaugeRailway_Class : SubClass BroadGaugeRailway Railway ;
+
+  fun BulkCargoShip : Class ;
+  fun BulkCargoShip_Class : SubClass BulkCargoShip DryBulkCarrierShip ;
+
+  fun BusinessRailcar : Class ;
+  fun BusinessRailcar_Class : SubClass BusinessRailcar PassengerRailcar ;
+
+  -- CIAAirportLengthClassification is a class of Attributes used to 
+  -- characterize Airports according to the length of their longest 
+  -- usable runway.
+  fun CIAAirportLengthClassification : Class ;
+  fun CIAAirportLengthClassification_Class : SubClass CIAAirportLengthClassification AirportClassification ;
+
+  -- CabCar is the class of passenger railcars 
+  -- that have an operating cab in one end of the from which train motion 
+  -- can be controlled in 'push' mode. A CabCar is placed on the 
+  -- opposite end of the train from the locomotive.
+  fun CabCar : Class ;
+  fun CabCar_Class : SubClass CabCar RollingStock ;
+
+  fun CableShip : Class ;
+  fun CableShip_Class : SubClass CableShip Ship ;
+
+  -- Canal is the subclass of navigable Waterways 
+  -- flowing through an artificial course. Typically, a canal is a 
+  -- Transitway connecting two bodies of water.
+  fun Canal : Class ;
+  fun Canal_Class : SubClass Canal (both StationaryArtifact Waterway) ;
+
+  fun CanalLock : Class ;
+  fun CanalLock_Class : SubClass CanalLock (both StationaryArtifact Waterway) ;
+
+  fun CanalLockGate : Class ;
+  fun CanalLockGate_Class : SubClass CanalLockGate (both Device TransitwayObstacle) ;
+
+  fun CanalSystem : Class ;
+  fun CanalSystem_Class : SubClass CanalSystem WaterTransportationSystem ;
+
+  fun Canoe : Class ;
+  fun Canoe_Class : SubClass Canoe (both AgentPoweredVehicle WaterVehicle) ;
+
+  -- CarDistributionSystem is the 
+  -- process of composing trains according to instructions or data.
+  fun CarDistributionSystem : Class ;
+  fun CarDistributionSystem_Class : SubClass CarDistributionSystem OrganizationalProcess ;
+
+  -- CargoShip is the subclass of Ships that 
+  -- transport goods in exchange for payment. CargoShip includes ships 
+  -- that carry all kinds of cargo, including oil and bulk products as well 
+  -- as packaged, palletized, or containerized goods.
+  fun CargoShip : Class ;
+  fun CargoShip_Class : SubClass CargoShip Ship ;
+
+  fun Catamaran : Class ;
+  fun Catamaran_Class : SubClass Catamaran MultihullWaterVehicle ;
+
+  fun CementCarrierShip : Class ;
+  fun CementCarrierShip_Class : SubClass CementCarrierShip DryBulkCarrierShip ;
+
+  -- A Channel is a narrow deep waterway connecting 
+  -- two larger bodies of water. May be natural or dredged, salt or fresh water.
+  fun Channel : Class ;
+  fun Channel_Class : SubClass Channel (both Waterway BodyOfWater) ;
+
+  -- ChemicalTankerShip is the 
+  -- subclass of ships that carry ChemicalProducts.
+  fun ChemicalTankerShip : Class ;
+  fun ChemicalTankerShip_Class : SubClass ChemicalTankerShip CargoShip ;
+
+  fun Chemical_OilTankerShip : Class ;
+  fun Chemical_OilTankerShip_Class : SubClass Chemical_OilTankerShip ChemicalTankerShip ;
+
+  fun ChiefSteward : Ind Position ;
+
+  -- ClassIIIRailroad is the 
+  -- subclass of RailroadCompany whose instances have an 
+  -- average annual gross revenue below 20.5 million 
+  -- UnitedStatesDollars.
+  fun ClassIIIRailroad : Class ;
+  fun ClassIIIRailroad_Class : SubClass ClassIIIRailroad RailroadCompany ;
+
+  -- ClassIIRailroad is the 
+  -- subclass of RailroadCompany whose instances have an 
+  -- average annual gross revenue between 20.5 and 256.4 million 
+  -- UnitedStatesDollars.
+  fun ClassIIRailroad : Class ;
+  fun ClassIIRailroad_Class : SubClass ClassIIRailroad RailroadCompany ;
+
+  -- ClassIRailroad is the 
+  -- subclass of RailroadCompany whose instances have an 
+  -- average annual gross revenue above 256.4 million 
+  -- UnitedStatesDollars.
+  fun ClassIRailroad : Class ;
+  fun ClassIRailroad_Class : SubClass ClassIRailroad RailroadCompany ;
+
+  fun CombinationBulkCarrierShip : Class ;
+  fun CombinationBulkCarrierShip_Class : SubClass CombinationBulkCarrierShip CargoShip ;
+
+  fun CombinationBulk_OilCarrierShip : Class ;
+  fun CombinationBulk_OilCarrierShip_Class : SubClass CombinationBulk_OilCarrierShip CombinationBulkCarrierShip ;
+
+  fun CombinationOre_OilCarrierShip : Class ;
+  fun CombinationOre_OilCarrierShip_Class : SubClass CombinationOre_OilCarrierShip CombinationBulkCarrierShip ;
+
+  -- CommonCarrier is the subclass of 
+  -- TransportationCompany whose instances must offer services to all 
+  -- customers. Contrast with ContractCarrier.
+  fun CommonCarrier : Class ;
+  fun CommonCarrier_Class : SubClass CommonCarrier TransportationCompany ;
+
+  fun ContainerPort : Class ;
+  fun ContainerPort_Class : SubClass ContainerPort PortCity ;
+
+  fun ContainerShip : Class ;
+  fun ContainerShip_Class : SubClass ContainerShip CargoShip ;
+
+  fun Container_RoRoCargoShip : Class ;
+  fun Container_RoRoCargoShip_Class : SubClass Container_RoRoCargoShip RollOnRollOffCargoShip ;
+
+  -- ContractCarrier is the subclass of 
+  -- TransportationCompany whose instances offer services to only one 
+  -- customer, under contract. Contrast with CommonCarrier.
+  fun ContractCarrier : Class ;
+  fun ContractCarrier_Class : SubClass ContractCarrier TransportationCompany ;
+
+  fun CraneShip : Class ;
+  fun CraneShip_Class : SubClass CraneShip Ship ;
+
+  -- CrewDormCars are Railcars used for 
+  -- housing the employee staff on long_distance trains.
+  fun CrewDormCar : Class ;
+  fun CrewDormCar_Class : SubClass CrewDormCar PassengerRailcar ;
+
+  -- CrudeOilPipeline is the subclass of 
+  -- Pipelines that are used to carry CrudeOil.
+  fun CrudeOilPipeline : Class ;
+  fun CrudeOilPipeline_Class : SubClass CrudeOilPipeline Pipeline ;
+
+  -- CruiseShip is the subclass of 
+  -- PassengerShips designed for the purpose of carrying passengers 
+  -- on extended trips.
+  fun CruiseShip : Class ;
+  fun CruiseShip_Class : SubClass CruiseShip PassengerShip ;
+
+  -- CubicFoot is a unit for measuring volume, 
+  -- equal to a volume of one foot length in each dimension of length, width, 
+  -- and height.
+  fun CubicFoot : Ind UnitOfVolume ;
+
+  -- Cycle is a class of wheeled, pedal_driven 
+  -- UserPoweredVehicles that are designed to be ridden on roads or trails.
+  fun Cycle : Class ;
+  fun Cycle_Class : SubClass Cycle (both AgentPoweredVehicle LandVehicle) ;
+
+  -- Dam is the subclass of StationaryArtifacts that 
+  -- are walls built across a stream or river to hold back water.
+  fun Dam : Class ;
+  fun Dam_Class : SubClass Dam (both TransitwayObstacle StationaryArtifact) ;
+
+  fun DeckCargoShip : Class ;
+  fun DeckCargoShip_Class : SubClass DeckCargoShip GeneralCargoShip ;
+
+  -- DeepDraftHarbor is the subclass 
+  -- of Harbors that have a waterDepth sufficient to accommodate 
+  -- vessels of a ladenDraft of 45 feet (13.7 meters) or greater.
+  fun DeepDraftHarbor : Class ;
+  fun DeepDraftHarbor_Class : SubClass DeepDraftHarbor Harbor ;
+
+  fun DeepDraftPort : Class ;
+  fun DeepDraftPort_Class : SubClass DeepDraftPort PortCity ;
+
+  -- DeepwaterPort is the subclass of 
+  -- PortFacility whose instances meet the criteria defined under 33 U.S.C. section 1502(1) as 'any fixed or floating man_made structures other than 
+  -- a vessel, or any group of such structures, located beyond the territorial 
+  -- sea and off the coast of the United States and which are used or intended 
+  -- for use as a port or terminal for the loading or unloading and further 
+  -- handling of oil for transportation to any State.... The term includes all associated components and equipment including pipelines, pumping stations, service platforms, mooring buoys, and similar appurtenances to the extent 
+  -- they are located seaward of the high water mark.'
+  fun DeepwaterPort : Class ;
+  fun DeepwaterPort_Class : SubClass DeepwaterPort PortFacility ;
+
+  fun Door_TransitwayObstacle : SubClass Door TransitwayObstacle ;
+
+  fun Drawbridge : Class ;
+  fun Drawbridge_Class : SubClass Drawbridge MovableBridge ;
+
+  fun Dredger : Class ;
+  fun Dredger_Class : SubClass Dredger Ship ;
+
+  fun DrillingShip : Class ;
+  fun DrillingShip_Class : SubClass DrillingShip Ship ;
+
+  fun DryBulkCarrierShip : Class ;
+  fun DryBulkCarrierShip_Class : SubClass DryBulkCarrierShip CargoShip ;
+
+  -- DualGauge is the attribute of 
+  -- any Railway that has three parallel rails, thus allowing 
+  -- two different gauges of rolling stock to travel over it.
+  fun DualGauge : Ind TrackGauge ;
+
+  fun DualGaugeRail : Ind RailGauge ;
+
+  fun DualGaugeRailway : Class ;
+  fun DualGaugeRailway_Class : SubClass DualGaugeRailway Railway ;
+
+  -- ElectrifiedRailway is the subclass 
+  -- of Railway representing electrified railways.
+  fun ElectrifiedRailway : Class ;
+  fun ElectrifiedRailway_Class : SubClass ElectrifiedRailway Railway ;
+
+  -- EmergencyRoadVehicle is the 
+  -- subclass of EmergencyVehicle that includes RoadVehicles designed 
+  -- for special use in emergencies, e.g., Ambulances, FireEngines.
+  fun EmergencyRoadVehicle : Class ;
+  fun EmergencyRoadVehicle_Class : SubClass EmergencyRoadVehicle (both EmergencyVehicle (both PoweredVehicle RoadVehicle)) ;
+
+  -- EmergencyVehicle is the subclass of 
+  -- Vehicles that are used for special_purpose emergency response.
+  fun EmergencyVehicle : Class ;
+  fun EmergencyVehicle_Class : SubClass EmergencyVehicle PoweredVehicle ;
+
+  -- Expressway is the subclass of 
+  -- SurfacedRoadways that are multiple_lane, limited_access highways 
+  -- designed for rapid travel by MotorVehicles.
+  fun Expressway : Class ;
+  fun Expressway_Class : SubClass Expressway SurfacedRoadway ;
+
+  fun FerryBoat : Class ;
+  fun FerryBoat_Class : SubClass FerryBoat WaterVehicle ;
+
+  fun FireBoat : Class ;
+  fun FireBoat_Class : SubClass FireBoat WaterVehicle ;
+
+  -- FireEngine is the subclass of 
+  -- EmergencyRoadVehicles that represents the various vehicles
+  -- used by a fire department in fighting fires.
+  fun FireEngine : Class ;
+  fun FireEngine_Class : SubClass FireEngine EmergencyRoadVehicle ;
+
+  fun FirstMate : Ind Position ;
+
+  fun FishCarrierShip : Class ;
+  fun FishCarrierShip_Class : SubClass FishCarrierShip FishingShip ;
+
+  fun FishFactoryShip : Class ;
+  fun FishFactoryShip_Class : SubClass FishFactoryShip FishingShip ;
+
+  fun FishingShip : Class ;
+  fun FishingShip_Class : SubClass FishingShip WaterVehicle ;
+
+  fun FishingVessel : Class ;
+  fun FishingVessel_Class : SubClass FishingVessel FishingShip ;
+
+  -- FiveWellStackCars are five_unit 
+  -- that carry double_stacked containers.
+  fun FiveWellStackCar : Class ;
+  fun FiveWellStackCar_Class : SubClass FiveWellStackCar FreightCar ;
+
+  fun FixedBridge : Class ;
+  fun FixedBridge_Class : SubClass FixedBridge (both Bridge StationaryArtifact) ;
+
+  -- FlagOfConvenienceRegister is the subclass of ShipRegisters 
+  -- in which most of the registered ships are owned outside of the 
+  -- GeopoliticalArea to which the registry belongs. 
+  -- InternalShipRegisters and OffshoreShipRegisters both may act as 
+  -- FlagOfConvenienceRegisters, if permitted by the maritime 
+  -- regulations of the registry owner.
+  fun FlagOfConvenienceRegister : Class ;
+  fun FlagOfConvenienceRegister_Class : SubClass FlagOfConvenienceRegister ShipRegister ;
+
+  -- Flatcars are Freightcars without sides or roofs.
+  fun Flatcar : Class ;
+  fun Flatcar_Class : SubClass Flatcar (both FreightCar OpenTopRailcar) ;
+
+  -- A train car that is designed to
+  -- carry freight, and not Humans.
+  fun FreightCar : Class ;
+  fun FreightCar_Class : SubClass FreightCar RollingStock ;
+
+  -- GalleryCars are double_decked passenger 
+  -- cars that have a viewing area on the second floor.
+  fun GalleryCar : Class ;
+  fun GalleryCar_Class : SubClass GalleryCar PassengerRailcar ;
+
+  fun GeneralCargoShip : Class ;
+  fun GeneralCargoShip_Class : SubClass GeneralCargoShip CargoShip ;
+
+  fun GliderPlane : Class ;
+  fun GliderPlane_Class : SubClass GliderPlane (both Aircraft UnpoweredVehicle) ;
+
+  -- Harbor is the subclass of WaterAreas that 
+  -- provide shelter and anchorage for WaterVehicle.
+  fun Harbor : Class ;
+  fun Harbor_Class : SubClass Harbor (both WaterArea Waterway) ;
+
+  -- HeadEndCars are Railcars that were 
+  -- typically placed at the front of the train, including mail and 
+  -- baggage cars.
+  fun HeadEndCar : Class ;
+  fun HeadEndCar_Class : SubClass HeadEndCar RollingStock ;
+
+  -- Heliport is a TransitTerminal designed 
+  -- for the takeoff and landing of Helicopters.
+  fun Heliport : Class ;
+  fun Heliport_Class : SubClass Heliport TransitTerminal ;
+
+  fun HomeGarage : Class ;
+  fun HomeGarage_Class : SubClass HomeGarage Building ;
+
+  fun HopperDredger : Class ;
+  fun HopperDredger_Class : SubClass HopperDredger Dredger ;
+
+  -- HydraCushionFreightCars are FreightCars with hydraulic underframes to cushion their loads.
+  fun HydraCushionFreightCar : Class ;
+  fun HydraCushionFreightCar_Class : SubClass HydraCushionFreightCar FreightCar ;
+
+  fun IceBreakerShip : Class ;
+  fun IceBreakerShip_Class : SubClass IceBreakerShip Ship ;
+
+  -- IntermodalTrip is the class of 
+  -- trips in which more than one mode (road, rail, sea, or air) of 
+  -- Transportation is used. That is, there are at least two 
+  -- subProcesses of the trip that use different modes of 
+  -- TransportationDevice.
+  fun IntermodalTrip : Class ;
+  fun IntermodalTrip_Class : SubClass IntermodalTrip Trip ;
+
+  -- InternalShipRegister is 
+  -- a subset of a NationalShipRegister. Ships on an internal 
+  -- register fly the same flag as on the national register but are 
+  -- subject to different taxation and crewing rules, which are 
+  -- typically more lenient. An internal register may function 
+  -- primarily as a FlagOfConvenienceRegister.
+  fun InternalShipRegister : Class ;
+  fun InternalShipRegister_Class : SubClass InternalShipRegister ShipRegister ;
+
+  fun JetAirplane : Class ;
+  fun JetAirplane_Class : SubClass JetAirplane Airplane ;
+
+  fun Kayak : Class ;
+  fun Kayak_Class : SubClass Kayak (both AgentPoweredVehicle WaterVehicle) ;
+
+  fun Lane : Class ;
+  fun Lane_Class : SubClass Lane Roadway ;
+
+  fun LightTruck : Class ;
+  fun LightTruck_Class : SubClass LightTruck Truck ;
+
+  fun LiquefiedGasTankerShip : Class ;
+  fun LiquefiedGasTankerShip_Class : SubClass LiquefiedGasTankerShip CargoShip ;
+
+  fun LiquefiedGas_ChemicalTankerShip : Class ;
+  fun LiquefiedGas_ChemicalTankerShip_Class : SubClass LiquefiedGas_ChemicalTankerShip LiquefiedGasTankerShip ;
+
+  fun LivestockCarrierShip : Class ;
+  fun LivestockCarrierShip_Class : SubClass LivestockCarrierShip CargoShip ;
+
+  -- An individual rail vehicle, i.e. a
+  -- RollingStock which is also a PoweredVehicle. Modern
+  -- locomotives are typically diesel or electric powered, while
+  -- older locomotives ran on Coal.
+  fun Locomotive : Class ;
+  fun Locomotive_Class : SubClass Locomotive (both PoweredVehicle RollingStock) ;
+
+  -- LocomotiveCoalCars are Railcars put directly behind the Locomotive and used for 
+  -- carrying fuel coal for the engine.
+  fun LocomotiveCoalCar : Class ;
+  fun LocomotiveCoalCar_Class : SubClass LocomotiveCoalCar RollingStock ;
+
+  -- LongRunwayAirport is a CIA category for Airports whose longest runway has a length between 
+  -- 2,438 meters and 3,047 meters, inclusive.
+  fun LongRunwayAirport : Ind CIAAirportLengthClassification ;
+
+  -- LongTon is the UnitOfMeasure, equal to 2,240 PoundMass, which is used to measure Dead Weight 
+  -- Tonnage capacity of Ships.
+  fun LongTon : Ind UnitOfMass ;
+
+  -- ManufacturedProduct is 
+  -- the subclass of Product that includes goods that are produced 
+  -- or assembled in factories or other manufacturing processes, 
+  -- in contrast to AgriculturalProducts.
+  fun ManufacturedProduct : Class ;
+  fun ManufacturedProduct_Class : SubClass ManufacturedProduct Product ;
+
+  -- MediumLengthRunwayAirport is a CIA 
+  -- category for Airports whose longest runway has a length between 
+  -- 1,524 meters and 2,437 meters, inclusive.
+  fun MediumLengthRunwayAirport : Ind CIAAirportLengthClassification ;
+
+  -- MerchantMarine is a class of 
+  -- Collections of Ships, each collection belonging to a particular 
+  -- Nation or GeopoliticalArea, in whose ShipRegister the member 
+  -- ships are enrolled. For example, the merchant marine of France.
+  fun MerchantMarine : Class ;
+  fun MerchantMarine_Class : SubClass MerchantMarine Collection ;
+
+  -- (MerchantMarineFn ?AREA) denotes 
+  -- the Collection of all commercial ships registered in the 
+  -- ShipRegister of the GeopoliticalArea ?AREA.
+  fun MerchantMarineFn : El GeopoliticalArea -> Ind MerchantMarine ;
+
+  -- MerchantMarineShip is the class 
+  -- of Ships that carry goods or passengers in exchange for payment. 
+  -- This excludes military ships, as well as working ships such as tugboats 
+  -- and fishing vessels. Merchant Marine ships belong to the 
+  -- MerchantMarine of some country and are registered in the related 
+  -- ShipRegister.
+  fun MerchantMarineShip : Class ;
+  fun MerchantMarineShip_Class : SubClass MerchantMarineShip Ship ;
+
+  fun MotorHopper : Class ;
+  fun MotorHopper_Class : SubClass MotorHopper Ship ;
+
+  -- MotorRailcars are PassengerRailcars 
+  -- that carry their own power source.
+  fun MotorRailcar : Class ;
+  fun MotorRailcar_Class : SubClass MotorRailcar (both PassengerRailcar PoweredVehicle) ;
+
+  fun MotorScooter : Class ;
+  fun MotorScooter_Class : SubClass MotorScooter RoadVehicle ;
+
+  fun MovableBridge : Class ;
+  fun MovableBridge_Class : SubClass MovableBridge Bridge ;
+
+  -- MultiModalTransitSystem is 
+  -- the class of TransitSystems that accommodate more than one type of 
+  -- transportation device or method.
+  fun MultiModalTransitSystem : Class ;
+  fun MultiModalTransitSystem_Class : SubClass MultiModalTransitSystem TransitSystem ;
+
+  fun MultifunctionalLargeLoadCarrierShip : Class ;
+  fun MultifunctionalLargeLoadCarrierShip_Class : SubClass MultifunctionalLargeLoadCarrierShip CargoShip ;
+
+  fun MultihullWaterVehicle : Class ;
+  fun MultihullWaterVehicle_Class : SubClass MultihullWaterVehicle WaterVehicle ;
+
+  -- MultipleTrackRailway is the 
+  -- subclass of Railway whose instances consists of two or more sets of 
+  -- tracks running in parallel, allowing motion in both directions along 
+  -- a route without the need for sidings and delays.
+  fun MultipleTrackRailway : Class ;
+  fun MultipleTrackRailway_Class : SubClass MultipleTrackRailway Railway ;
+
+  -- NarrowGauge is the attribute 
+  -- of any Railway that has a TrackGauge narrower than 
+  -- StandardGauge. There are several common track widths 
+  -- among NarrowGauge railways.
+  fun NarrowGauge : Ind TrackGauge ;
+
+  fun NarrowGaugeRail : Ind RailGauge ;
+
+  fun NarrowGaugeRailway : Class ;
+  fun NarrowGaugeRailway_Class : SubClass NarrowGaugeRailway Railway ;
+
+  -- A NationalShipRegister 
+  -- is a record of the Ships that are officially registered with 
+  -- a particular Nation, including their tonnage and ownership.
+  fun NationalShipRegister : Class ;
+  fun NationalShipRegister_Class : SubClass NationalShipRegister ShipRegister ;
+
+  -- NaturalGasPipeline is the subclass 
+  -- of Pipelines that are used to carry NaturalGas.
+  fun NaturalGasPipeline : Class ;
+  fun NaturalGasPipeline_Class : SubClass NaturalGasPipeline Pipeline ;
+
+  -- NorthernSeaRoute represents the 
+  -- seasonal waterway in the ArcticOcean adjacent to Russia and Norway.
+  fun NorthernSeaRoute : Ind Waterway ;
+
+  -- NorthwestPassage represents the seasonal waterway in 
+  -- the ArcticOcean adjacent to Canada and the UnitedStates.
+  fun NorthwestPassage : Ind Waterway ;
+
+  -- OceanLiner is the subclass of Ships 
+  -- that make regularly scheduled voyages to transport people and goods 
+  -- from one place to another.
+  fun OceanLiner : Class ;
+  fun OceanLiner_Class : SubClass OceanLiner (both CargoShip PassengerShip) ;
+
+  -- OffshoreAnchorage is the subclass 
+  -- of Anchorages that are located offshore and not within a Harbor.
+  fun OffshoreAnchorage : Class ;
+  fun OffshoreAnchorage_Class : SubClass OffshoreAnchorage Anchorage ;
+
+  -- OffshoreShipRegister is 
+  -- the class of ShipRegisters maintained by a colony, territory, or 
+  -- possession (OffshoreArea) of a nation. Typically such a register has more lenient maritime 
+  -- regulations with respect to taxation and crewing of ships than does 
+  -- the national register associated with the country of which the 
+  -- offshore area is a dependency.
+  fun OffshoreShipRegister : Class ;
+  fun OffshoreShipRegister_Class : SubClass OffshoreShipRegister ShipRegister ;
+
+  fun OffshoreSupplyShip : Class ;
+  fun OffshoreSupplyShip_Class : SubClass OffshoreSupplyShip Ship ;
+
+  fun OffshoreSupportShip : Class ;
+  fun OffshoreSupportShip_Class : SubClass OffshoreSupportShip Ship ;
+
+  fun OffshoreWellProductionShip : Class ;
+  fun OffshoreWellProductionShip_Class : SubClass OffshoreWellProductionShip Ship ;
+
+  -- OpenTopRailcars are FreightCars 
+  -- that have no roof. They may have sides or not.
+  fun OpenTopRailcar : Class ;
+  fun OpenTopRailcar_Class : SubClass OpenTopRailcar FreightCar ;
+
+  -- (OperatingFn ?DEVICE) denotes the class 
+  -- of events in which a Device of type ?device is operated.
+  fun OperatingFn: El Device -> Desc Process ;
+
+  fun OreCarrierShip : Class ;
+  fun OreCarrierShip_Class : SubClass OreCarrierShip DryBulkCarrierShip ;
+
+  -- OutfitCars are Railcars used for housing 
+  -- railway construction or maintenance workers in the field. Also called 
+  -- 'Camp Cars'.
+  fun OutfitCar : Class ;
+  fun OutfitCar_Class : SubClass OutfitCar RollingStock ;
+
+  fun PCCCar : Class ;
+  fun PCCCar_Class : SubClass PCCCar Streetcar ;
+
+  fun PalletizedCargoShip : Class ;
+  fun PalletizedCargoShip_Class : SubClass PalletizedCargoShip GeneralCargoShip ;
+
+  fun ParkingGarage : Class ;
+  fun ParkingGarage_Class : SubClass ParkingGarage Building ;
+
+  fun PassengerAndCargoShip : Class ;
+  fun PassengerAndCargoShip_Class : SubClass PassengerAndCargoShip (both CargoShip PassengerShip) ;
+
+  -- A train car that is designed to
+  -- carry Humans.
+  fun PassengerRailcar : Class ;
+  fun PassengerRailcar_Class : SubClass PassengerRailcar (both PassengerVehicle RollingStock) ;
+
+  -- PassengerShip is the subclass of 
+  -- WaterVehicle designed for the purpose of carrying passengers.
+  fun PassengerShip : Class ;
+  fun PassengerShip_Class : SubClass PassengerShip Ship ;
+
+  fun Passenger_LandingCraft : Class ;
+  fun Passenger_LandingCraft_Class : SubClass Passenger_LandingCraft (both PassengerAndCargoShip RollOnRollOffCargoShip) ;
+
+  fun Paved : Ind Attribute ;
+
+  -- PavedRunway is the subclass of Runways 
+  -- that are surfaced with concrete or asphalt.
+  fun PavedRunway : Class ;
+  fun PavedRunway_Class : SubClass PavedRunway Runway ;
+
+  -- PersonalWatercraft is the class 
+  -- of motor_driven WaterVehicle ridden by one or more passengers, e.g., 
+  -- a JetSki.
+  fun PersonalWatercraft : Class ;
+  fun PersonalWatercraft_Class : SubClass PersonalWatercraft WaterVehicle ;
+
+  -- PetroleumProductPipeline is the subclass of Pipelines that are 
+  -- used to carry PetroleumProducts.
+  fun PetroleumProductPipeline : Class ;
+  fun PetroleumProductPipeline_Class : SubClass PetroleumProductPipeline Pipeline ;
+
+  fun PetroleumTankerShip : Class ;
+  fun PetroleumTankerShip_Class : SubClass PetroleumTankerShip CargoShip ;
+
+  -- PlaningHullWaterVehicle is a subclass 
+  -- of WaterVehicle with hulls designed for a position partially on or above 
+  -- the water surface when they are in motion, in order to reduce drag. See 
+  -- also DisplacementHullWaterVehicle.
+  fun PlaningHullWaterVehicle : Class ;
+  fun PlaningHullWaterVehicle_Class : SubClass PlaningHullWaterVehicle WaterVehicle ;
+
+  fun PontoonBridge : Class ;
+  fun PontoonBridge_Class : SubClass PontoonBridge MovableBridge ;
+
+  -- PortCity is the subclass of City whose 
+  -- instances are cities or towns located adjacent to a Harbor, which is 
+  -- included in the administrative area of the city.
+  fun PortCity : Class ;
+  fun PortCity_Class : SubClass PortCity City ;
+
+  -- PortFacility is the class of port 
+  -- complexes, including piers and docking space, moorings, cargo_handling 
+  -- and other support facilities for marine traffic. Ships are loaded and 
+  -- unloaded at a PortFacility.
+  fun PortFacility : Class ;
+  fun PortFacility_Class : SubClass PortFacility GeopoliticalArea ;
+
+  -- (PortFacilityFn ?CITY) denotes the 
+  -- PortFacility, including mooring areas, docking space, and on_land 
+  -- support facilities for marine traffic, of the Port ?CITY, considered 
+  -- as a whole.
+  fun PortFacilityFn : El PortCity -> Ind PortFacility ;
+
+  fun PrivateRailcar : Class ;
+  fun PrivateRailcar_Class : SubClass PrivateRailcar RollingStock ;
+
+  fun PropellerJet : Class ;
+  fun PropellerJet_Class : SubClass PropellerJet Airplane ;
+
+  fun PropellerPlane : Class ;
+  fun PropellerPlane_Class : SubClass PropellerPlane Airplane ;
+
+  fun PusherTug : Class ;
+  fun PusherTug_Class : SubClass PusherTug TugBoat ;
+
+  fun RadioOperator : Ind Position ;
+
+  -- RailCarrierControl is the process of 
+  -- controlling the speed or direction of a train by sending high or 
+  -- low frequency currents on the rails.
+  fun RailCarrierControl : Class ;
+  fun RailCarrierControl_Class : SubClass RailCarrierControl Guiding ;
+
+  fun RailGauge : Class ;
+  fun RailGauge_Class : SubClass RailGauge InternalAttribute ;
+
+  -- RailJunction is the subclass of 
+  -- TransitwayJunctions where two or more Railway lines come together.
+  fun RailJunction : Class ;
+  fun RailJunction_Class : SubClass RailJunction (both Railway TransitwayJunction) ;
+
+  -- Railcar is the subclass of RollingStock that 
+  -- includes all non_locomotive, non_self_powered RailVehicles.
+  fun Railcar : Class ;
+  fun Railcar_Class : SubClass Railcar RollingStock ;
+
+  fun RailcarCarrierShip : Class ;
+  fun RailcarCarrierShip_Class : SubClass RailcarCarrierShip RollOnRollOffCargoShip ;
+
+  -- RailroadTrack is the class of 
+  -- StationaryArtifacts consisting of rails laid on supports to form 
+  -- a track for railway vehicles.
+  fun RailroadTrack : Class ;
+  fun RailroadTrack_Class : SubClass RailroadTrack StationaryArtifact ;
+
+  -- Railway is the subclass of 
+  -- LandTransitways that have rails along which Trains may travel. 
+  -- A railway consists of the rail bed, sleepers, tracks, electric 
+  -- rails, switches, sensors, lights, crossing grades, and any other 
+  -- integral machinery or parts of a section of railway.
+  fun Railway : Class ;
+  fun Railway_Class : SubClass Railway (both LandTransitway StationaryArtifact) ;
+
+  -- RailwayTerminal is the subclass of 
+  -- TransitTerminals designed for Trains. A RailwayTerminal includes 
+  -- all the RailroadTrack and any outbuildings or other related structure 
+  -- in the terminal, as well as the TrainStation (if there is one).
+  fun RailwayTerminal : Class ;
+  fun RailwayTerminal_Class : SubClass RailwayTerminal TransitTerminal ;
+
+  fun RefrigeratedCargoShip : Class ;
+  fun RefrigeratedCargoShip_Class : SubClass RefrigeratedCargoShip CargoShip ;
+
+  fun RefrigeratorCar : Class ;
+  fun RefrigeratorCar_Class : SubClass RefrigeratorCar Boxcar ;
+
+  -- RegistryTon is a unit of
+  -- measure used to represent the Gross Registered Tonnage (GRT) capacity
+  -- of Ships. GRT is based on a volume measure, with one RegistryTon
+  -- equal to a volume of 100 cubic feet.
+  fun RegistryTon : Ind UnitOfVolume ;
+
+  fun ResearchShip : Class ;
+  fun ResearchShip_Class : SubClass ResearchShip Ship ;
+
+  -- RiverPort is the subclass of PortCity 
+  -- whose instances are port cities Adjacent to a navigable River.
+  fun RiverPort : Class ;
+  fun RiverPort_Class : SubClass RiverPort PortCity ;
+
+  -- RoadJunction is the subclass of 
+  -- TransitwayJunctions where two or more Roadways come together.
+  fun RoadJunction : Class ;
+  fun RoadJunction_Class : SubClass RoadJunction (both Roadway TransitwayJunction) ;
+
+  fun RollOnRollOffCargoShip : Class ;
+  fun RollOnRollOffCargoShip_Class : SubClass RollOnRollOffCargoShip CargoShip ;
+
+  fun RotaryDumpCar : Class ;
+  fun RotaryDumpCar_Class : SubClass RotaryDumpCar OpenTopRailcar ;
+
+  fun Runabout : Class ;
+  fun Runabout_Class : SubClass Runabout WaterVehicle ;
+
+  -- Runway is the class of Transitways that are 
+  -- used for the takeoff and landing of Airplanes. Runways are 
+  -- Transitways for an intermodal transit, which begins with a land transit 
+  -- and ends with air transit, or vice versa. The Airspace immediately 
+  -- above (and adjacent to) a Runway is an AirTransitway.
+  fun Runway : Class ;
+  fun Runway_Class : SubClass Runway LandTransitway ;
+
+  fun Sailboat : Class ;
+  fun Sailboat_Class : SubClass Sailboat WaterVehicle ;
+
+  -- ScaleTestCars are Railcars of 
+  -- known weight used to test or calibrate track scales used for 
+  -- weighing freight.
+  fun ScaleTestCar : Class ;
+  fun ScaleTestCar_Class : SubClass ScaleTestCar RollingStock ;
+
+  fun Scooter : Class ;
+  fun Scooter_Class : SubClass Scooter (both AgentPoweredVehicle LandVehicle) ;
+
+  fun SeaLane : Class ;
+  fun SeaLane_Class : SubClass SeaLane Waterway ;
+
+  -- SeaPort is the subclass of PortCity whose instances are
+  -- port cities on or closely linked to a Sea or Ocean.
+  fun SeaPort : Class ;
+  fun SeaPort_Class : SubClass SeaPort PortCity ;
+
+  fun SecondaryHighway : Class ;
+  fun SecondaryHighway_Class : SubClass SecondaryHighway Roadway ;
+
+  fun SelfDischargingBulkCarrierShip : Class ;
+  fun SelfDischargingBulkCarrierShip_Class : SubClass SelfDischargingBulkCarrierShip DryBulkCarrierShip ;
+
+  -- ShipBerth is the class of areas where 
+  -- a Ship may be moored, whether at an Anchorage or dock.
+  fun ShipBerth : Class ;
+  fun ShipBerth_Class : SubClass ShipBerth WaterArea ;
+
+  -- ShipBerthing is the class of 
+  -- Translocation processes in which a vessel is brought to a 
+  -- mooring, at dockside or anchorage.
+  fun ShipBerthing : Class ;
+  fun ShipBerthing_Class : SubClass ShipBerthing Translocation ;
+
+  -- (ShipBerthingFn ?SHIP) denotes the 
+  -- class of ShipBerthings of an individual WaterVehicle ?SHIP.
+  fun ShipBerthingFn: El Ship -> Desc ShipBerthing ;
+
+  -- ShipCabin is the subclass of all 
+  -- ShipCompartments for accommodating Humans aboard a ship.
+  fun ShipCabin : Class ;
+  fun ShipCabin_Class : SubClass ShipCabin ShipCompartment ;
+
+  -- A ShipCompartment is any fully or 
+  -- partly bounded section of a Ship.
+  fun ShipCompartment : Class ;
+  fun ShipCompartment_Class : SubClass ShipCompartment Artifact ;
+
+  -- ShipContainer is the class of specialized 
+  -- large containers designed for shipping goods aboard ContainerShips.
+  fun ShipContainer : Class ;
+  fun ShipContainer_Class : SubClass ShipContainer SelfConnectedObject ;
+
+  -- A ShipCrew is an Organization of people 
+  -- who operate a Ship, Plane, Train, or other transportation vehicle.
+  fun ShipCrew : Class ;
+  fun ShipCrew_Class : SubClass ShipCrew Organization ;
+
+  -- (ShipCrewFn ?BOAT) denotes the 
+  -- Organization consisting of the people charged with operating 
+  -- the WaterVehicle ?BOAT.
+  fun ShipCrewFn : El WaterVehicle -> Ind Group ;
+
+  -- ShipDeck is the class of decks on a ship, 
+  -- considered as spaces or Regions in which passengers and crew work, 
+  -- live, or ride, and/or in which machinery and cargo are stored on a 
+  -- Ship.
+  fun ShipDeck : Class ;
+  fun ShipDeck_Class : SubClass ShipDeck Artifact ;
+
+  -- A ShipRegister is a record of each Ship 
+  -- and owner registered with the maritime authorities of a country or 
+  -- possession, colony, or territory of a country. Ships on the 
+  -- ShipRegister of a given region fly the flag of that region and are 
+  -- subject to its maritime regulations and rules of taxation.
+  fun ShipRegister : Class ;
+  fun ShipRegister_Class : SubClass ShipRegister ContentBearingObject ;
+
+  -- (ShipRegisterFn ?AREA) 
+  -- denotes the ShipRegister of the Ships that fly the flag of 
+  -- the GeopoliticalArea ?AREA.
+  fun ShipRegisterFn : El GeopoliticalArea -> Ind ShipRegister ;
+
+  -- ShipRegistration is the official 
+  -- document containing information about the ownership, size, and 
+  -- flag state (flag of registry) of an individual Ship, as registered 
+  -- in the ShipRegister maintained by the maritime authorities of a 
+  -- particular Nation or OverseasArea of a nation. A ship flies the 
+  -- flag of its registered nation or area, and the ship is subject to the 
+  -- maritime regulations and rules of taxation of its flagState.
+  fun ShipRegistration : Class ;
+  fun ShipRegistration_Class : SubClass ShipRegistration ContentBearingObject ;
+
+  fun ShippingChannel : Class ;
+  fun ShippingChannel_Class : SubClass ShippingChannel Waterway ;
+
+  fun ShippingLane : Class ;
+  fun ShippingLane_Class : SubClass ShippingLane Waterway ;
+
+  -- ShortRunwayAirport is a CIA 
+  -- category for Airports whose longest runway has a length between 914 
+  -- meters and 1523 meters, inclusive.
+  fun ShortRunwayAirport : Ind CIAAirportLengthClassification ;
+
+  fun ShortSeaPassengerShip : Class ;
+  fun ShortSeaPassengerShip_Class : SubClass ShortSeaPassengerShip PassengerShip ;
+
+  fun SludgeDisposalVessel : Class ;
+  fun SludgeDisposalVessel_Class : SubClass SludgeDisposalVessel Ship ;
+
+  fun SpecializedTankerShip : Class ;
+  fun SpecializedTankerShip_Class : SubClass SpecializedTankerShip CargoShip ;
+
+  -- SpineCars are articulated Flatcars 
+  -- used to carry trailers or containers.
+  fun SpineCar : Class ;
+  fun SpineCar_Class : SubClass SpineCar Flatcar ;
+
+  -- StandardGauge is the attribute 
+  -- of Railways having the standardized track width that is 
+  -- used in North America and most Western European countries. 
+  -- The standard is typically a distance of 4 ft., 8_1/2 inches 
+  -- (1.44 meters). There is some variation within which usage is 
+  -- compatible, e.g., 1.35 meters. Standard gauge originated in 
+  -- England and was mandated by the U.S. Federal government for the 
+  -- U.S. Transcontinental Railroad. It is also used in Canada, 
+  -- Great Britain, and most of Western Europe (but not in Ireland, 
+  -- or Spain and Portugal.
+  fun StandardGauge : Ind TrackGauge ;
+
+  fun StandardGaugeRail : Ind RailGauge ;
+
+  fun StandardGaugeRailway : Class ;
+  fun StandardGaugeRailway_Class : SubClass StandardGaugeRailway Railway ;
+
+  fun Street : Class ;
+  fun Street_Class : SubClass Street Roadway ;
+
+  fun Streetcar_RollingStock : SubClass Streetcar RollingStock ;
+
+  -- SurfacedRoadway is the subclass of 
+  -- Roadways that have been improved by covering them with a substance 
+  -- to increase the hardness and smoothness of the surface. Covering 
+  -- materials include pavement, concrete, asphalt, macadam, and gravel.
+  fun SurfacedRoadway : Class ;
+  fun SurfacedRoadway_Class : SubClass SurfacedRoadway Roadway ;
+
+  -- TankCars are enclosed FreightCars used 
+  -- to carry fluids.
+  fun TankCar : Class ;
+  fun TankCar_Class : SubClass TankCar FreightCar ;
+
+  -- A TerminalBuilding is a Building 
+  -- located at a TransitTerminal and used in connection with its 
+  -- functions.
+  fun TerminalBuilding : Class ;
+  fun TerminalBuilding_Class : SubClass TerminalBuilding Building ;
+
+  fun TollBooth : Class ;
+  fun TollBooth_Class : SubClass TollBooth Building ;
+
+  -- TrackGauge is the collection of 
+  -- attributes that characterize sections of railways, according 
+  -- to the set distances between the two tracks of the Railway. 
+  -- Precisely, the measurement of track gauge is the distance 
+  -- between the inner vertical surfaces of the heads of the rails. 
+  -- Track gauges include broad, dual, standard, and narrow gauges.
+  fun TrackGauge : Class ;
+  fun TrackGauge_Class : SubClass TrackGauge InternalAttribute ;
+
+  fun TrafficLight : Class ;
+  fun TrafficLight_Class : SubClass TrafficLight Device ;
+
+  fun Trail : Class ;
+  fun Trail_Class : SubClass Trail LandTransitway ;
+
+  -- Any RoadVehicle that is also an UnpoweredVehicle,
+  -- and intended to be towed by a PoweredVehicle.
+  fun Trailer : Class ;
+  fun Trailer_Class : SubClass Trailer (both RoadVehicle UnpoweredVehicle) ;
+
+  -- Train is the subclass of 
+  -- TransportationDevice whose instances are linked sequences 
+  -- of RollingStock.
+  fun Train : Class ;
+  fun Train_Class : SubClass Train (both Collection (both PoweredVehicle RailVehicle)) ;
+
+  -- TrainStation is the subclass of 
+  -- Buildings that are located at a RailwayTerminal and used in support 
+  -- of its functions, especially for the handling of passengers and freight.
+  fun TrainStation : Class ;
+  fun TrainStation_Class : SubClass TrainStation (both TerminalBuilding TransitTerminal) ;
+
+  -- (TransitFn ?WAY) denotes the class of 
+  -- Translocations that consist of travelling along the Transitway ?WAY.
+  fun TransitFn: El Transitway -> Desc Translocation ;
+
+  -- TransitRoute is the class of 
+  -- Regions that are paths for Motion from one place to another.
+  fun TransitRoute : Class ;
+  fun TransitRoute_Class : SubClass TransitRoute Region ;
+
+  -- TransitShelter is the class of 
+  -- structures that provide shelter for passengers waiting at a 
+  -- TransitStop.
+  fun TransitShelter : Class ;
+  fun TransitShelter_Class : SubClass TransitShelter Artifact ;
+
+  -- TransitStop is the subclass of places 
+  -- where a vehicle of a scheduled or common carrier makes a stop to 
+  -- discharge or take on passengers or goods.
+  fun TransitStop : Class ;
+  fun TransitStop_Class : SubClass TransitStop Region ;
+
+  -- A TransitTerminal is a place where 
+  -- travellers or transportation devices begin or end their journeys, or 
+  -- where passengers and/or goods may be transferred. At a terminal, 
+  -- TransportationDevices may be received, assigned, sent out, or 
+  -- stored.
+  fun TransitTerminal : Class ;
+  fun TransitTerminal_Class : SubClass TransitTerminal StationaryArtifact ;
+
+  -- TransitwayJunction is the class of 
+  -- regions where two or more Transitways meet and traffic may transfer 
+  -- from one transitway to another.
+  fun TransitwayJunction : Class ;
+  fun TransitwayJunction_Class : SubClass TransitwayJunction Transitway ;
+
+  -- TransitwayObstacle is the general class of Objects that
+  -- can act as obstacles to Motion along a Transitway.
+  fun TransitwayObstacle : Class ;
+  fun TransitwayObstacle_Class : SubClass TransitwayObstacle Object ;
+
+  -- TransportationAuthority is the class of Organizations that are 
+  -- responsible for one or more systems of transportation, usually within 
+  -- a particular GeopoliticalArea.
+  fun TransportationAuthority : Class ;
+  fun TransportationAuthority_Class : SubClass TransportationAuthority Organization ;
+
+  fun TransportationDevice_TransportationEquipment : SubClass TransportationDevice TransportationEquipment ;
+
+  fun TransportationEquipment : Class ;
+  fun TransportationEquipment_Class : SubClass TransportationEquipment ManufacturedProduct ;
+
+  -- (TransportationFn ?TYPE) denotes the subclass of Transportation 
+  -- events in which a TransportationDevice of ?TYPE is the vehicle.
+  fun TransportationFn: Desc TransportationDevice -> Desc Transportation ;
+
+  fun Trawler : Class ;
+  fun Trawler_Class : SubClass Trawler FishingShip ;
+
+  -- Trip is the subclass of Motions along a 
+  -- TransitRoute or Transitway.
+  fun Trip : Class ;
+  fun Trip_Class : SubClass Trip Motion ;
+
+  -- (TripFn ?VEHICLE) denotes the subclass of Transportation 
+  -- events in which a particular TransportationDevice ?VEHICLE is the 
+  -- vehicle. Contrast this function with TransportationFn, which is 
+  -- used to denote transportation events by a specific kind of vehicle.
+  fun TripFn: El Vehicle -> Desc Transportation ;
+
+  fun TugBoat : Class ;
+  fun TugBoat_Class : SubClass TugBoat WaterVehicle ;
+
+  -- Tunnel is a subclass of Transitways that 
+  -- consist of a lengthwise enclosed Hole that allows for transit underground, 
+  -- as through mountains, below a body of water, or beneath a city.
+  fun Tunnel : Class ;
+  fun Tunnel_Class : SubClass Tunnel (both LandTransitway StationaryArtifact) ;
+
+  -- UniModalTransitSystem is 
+  -- the class of TransitSystems that accommodate a single type of 
+  -- transportation device or method.
+  fun UniModalTransitSystem : Class ;
+  fun UniModalTransitSystem_Class : SubClass UniModalTransitSystem TransitSystem ;
+
+  fun Unpaved : Ind Attribute ;
+
+  -- UnpavedRunways include Runways with 
+  -- grass, dirt, sand, or gravel surfaces. Contrast with PavedRunway.
+  fun UnpavedRunway : Class ;
+  fun UnpavedRunway_Class : SubClass UnpavedRunway Runway ;
+
+  -- A Vehicle that lacks a powerComponent.
+  -- It coasts like a glider or skateboard, thus deriving its power from the
+  -- potential energy of gravity, or by the power of its agent, as in a bicycle.
+  fun UnpoweredVehicle : Class ;
+  fun UnpoweredVehicle_Class : SubClass UnpoweredVehicle Vehicle ;
+
+  -- UnsurfacedRoadway is the subclass 
+  -- of Roadways that have natural, unimproved surfaces of dirt or sand.
+  fun UnsurfacedRoadway : Class ;
+  fun UnsurfacedRoadway_Class : SubClass UnsurfacedRoadway Roadway ;
+
+  fun UreaCarrierShip : Class ;
+  fun UreaCarrierShip_Class : SubClass UreaCarrierShip DryBulkCarrierShip ;
+
+  fun VehicleCarrierShip : Class ;
+  fun VehicleCarrierShip_Class : SubClass VehicleCarrierShip RollOnRollOffCargoShip ;
+
+  -- VehicleRegistration is the class 
+  -- of official documents containing information about a vehicle's ownership 
+  -- and identifying characteristics, as required by the appropriate authority 
+  -- for the type and location of individual vehicles.
+  fun VehicleRegistration : Class ;
+  fun VehicleRegistration_Class : SubClass VehicleRegistration ContentBearingObject ;
+
+  -- VeryLongRunwayAirport is a CIA 
+  -- category for Airports whose longest runway has a length greater 
+  -- than 3,047 meters.
+  fun VeryLongRunwayAirport : Ind CIAAirportLengthClassification ;
+
+  -- VeryShortRunwayAirport is a CIA 
+  -- category for Airports whose longest runway is less than 914 meters long.
+  fun VeryShortRunwayAirport : Ind CIAAirportLengthClassification ;
+
+  -- WaterJunction is the subclass of 
+  -- TransitwayJunctions where two or more Waterways come together.
+  fun WaterJunction : Class ;
+  fun WaterJunction_Class : SubClass WaterJunction (both TransitwayJunction Waterway) ;
+
+  fun WaterTransportationSystem : Class ;
+  fun WaterTransportationSystem_Class : SubClass WaterTransportationSystem TransitSystem ;
+
+  -- Waterway is the class of navigable waters, 
+  -- including Oceans, SeaLanes, Rivers, Canals, Lakes, and inland 
+  -- bodies of water.
+  fun Waterway : Class ;
+  fun Waterway_Class : SubClass Waterway (both Transitway WaterArea) ;
+
+  fun WoodChipsCarrierShip : Class ;
+  fun WoodChipsCarrierShip_Class : SubClass WoodChipsCarrierShip DryBulkCarrierShip ;
+
+  -- (cargoType ?DEVICE ?TYPE) means that the 
+  -- TransportationDevice ?DEVICE typically carries cargo of the kind ?TYPE.
+  fun cargoType: El TransportationDevice -> Desc Object -> Formula ;
+
+  -- (fOCShipsByOrigin ?MM ?AREA ?COUNT) means that the 
+  -- MerchantMarine ?MM has ?COUNT number of ships from the 
+  -- GeopoliticalArea ?AREA in its ShipRegister, using it as 
+  -- a FlagOfConvenience, although the owner of the ships is in 
+  -- ?AREA.
+  fun fOCShipsByOrigin : El MerchantMarine -> El GeopoliticalArea -> El NonnegativeInteger -> Formula ;
+
+  -- (flagState ?SHIP ?AREA) means that 
+  -- the Ship ?SHIP is enrolled in the ShipRegister of the 
+  -- GeopoliticalArea ?AREA and is subject to its maritime laws, 
+  -- regulations for operation of the ship, and rules of taxation.
+  fun flagState : El WaterVehicle -> El GeopoliticalArea -> Formula ;
+
+  -- (fleetDeadWeightTonnage ?FLEET ?AMOUNT) means that the Collection 
+  -- of Ships ?FLEET has a total carrying capacity of ?AMOUNT in LongTons. 
+  -- This is the total vesselDeadWeightTonnage of all the vessels combined. 
+  -- Dead Weight Tonnage, or DWT, is the weight of cargo plus stores that a 
+  -- vessel can carry when immersed to the proper load line.
+  fun fleetDeadWeightTonnage : El Collection -> El MassMeasure -> Formula ;
+
+  -- (fleetGrossRegisteredTonnage ?FLEET ?AMOUNT) means that the 
+  -- Collection of Ships ?FLEET has a total carrying capacity of ?AMOUNT 
+  -- in RegistryTons. This is the total vesselGrossRegisteredTonnage of 
+  -- all the vessels combined. Gross Registered Tonnage, or GRT, is the 
+  -- capacity of a vessel calculated on an equivalence of 100 cubic feet of 
+  -- sheltered area per ton.
+  fun fleetGrossRegisteredTonnage : El Collection -> El PhysicalQuantity -> Formula ;
+
+  -- (ladenDraft ?SHIP ?AMOUNT) means that 
+  -- the WaterVehicle ?SHIP requires a waterDepth of at least ?AMOUNT 
+  -- to sail without running aground, when she is loaded at capacity.
+  fun ladenDraft : El WaterVehicle -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfBroadGaugeRailway ?AREA ?LENGTH) means that the sum length 
+  -- of broad gauge railway routes in the GeographicArea ?AREA is the 
+  -- LengthMeasure ?LENGTH.
+  fun lengthOfBroadGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfCrudeOilPipeline ?AREA ?AMOUNT) means that in the 
+  -- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
+  -- CrudeOilPipeline.
+  fun lengthOfCrudeOilPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfDualGaugeRailway ?AREA ?LENGTH) means that the sum length 
+  -- of dual gauge railway routes in the GeographicArea ?AREA is the 
+  -- LengthMeasure ?LENGTH.
+  fun lengthOfDualGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfElectrifiedRailway ?AREA ?LENGTH) means that the sum 
+  -- length of all ElectrifiedRailway routes in the GeographicArea 
+  -- ?AREA is the LengthMeasure ?LENGTH.
+  fun lengthOfElectrifiedRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfExpresswaySystem ?AREA ?LENGTH) means that the total length 
+  -- of Expressway in the GeographicArea ?AREA is ?LENGTH.
+  fun lengthOfExpresswaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfMultipleTrackRailway ?AREA ?LENGTH) means that the sum 
+  -- length of all MultipleTrackRailway routes in the GeographicArea 
+  -- ?AREA is the LengthMeasure ?LENGTH.
+  fun lengthOfMultipleTrackRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfNarrowGaugeRailway ?AREA ?LENGTH) means that the sum length 
+  -- of narrow gauge railway routes in the GeographicArea ?AREA is the 
+  -- LengthMeasure ?LENGTH.
+  fun lengthOfNarrowGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfNaturalGasPipeline ?AREA ?AMOUNT) means that in the 
+  -- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
+  -- NaturalGasPipeline.
+  fun lengthOfNaturalGasPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfPavedHighway ?AREA ?LENGTH) means that the total length 
+  -- of SurfacedRoadway in the GeographicArea ?AREA is ?LENGTH.
+  fun lengthOfPavedHighway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfPetroleumProductPipeline ?AREA ?AMOUNT) means that in the 
+  -- GeograpicArea ?AREA there is the LengthMeasure ?AMOUNT of 
+  -- PetroleumProductPipeline.
+  fun lengthOfPetroleumProductPipeline : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfStandardGaugeRailway ?AREA ?LENGTH) means that the sum length 
+  -- of standard gauge railway routes in the GeographicArea ?AREA is the 
+  -- LengthMeasure ?LENGTH.
+  fun lengthOfStandardGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfUnclassifiedGaugeRailway ?AREA ?LENGTH) means that the sum length 
+  -- of railway routes in the GeographicArea ?AREA classified as something 
+  -- other than broad, dual, narrow, or standard gauge is the LengthMeasure 
+  -- ?LENGTH.
+  fun lengthOfUnclassifiedGaugeRailway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (lengthOfUnpavedHighway ?AREA ?LENGTH) means that the total length 
+  -- of UnsurfacedRoadway in the GeographicArea ?AREA is ?LENGTH.
+  fun lengthOfUnpavedHighway : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- A relation between a MerchantMarine
+  -- and a ShipRegister which is a member of that MerchantMarine
+  fun marineInventory : El MerchantMarine -> El ShipRegister -> Formula ;
+
+  -- (navigableForDraft ?WATERWAY ?DRAFT) means that the Waterway 
+  -- ?WATERWAY can be transited by vessels up to the draft ?DRAFT.
+  fun navigableForDraft : El WaterArea -> El LengthMeasure -> Formula ;
+
+  -- (navigableForShippingTonnage ?WATERWAY ?TONNAGE) means that the 
+  -- Waterway ?WATERWAY can be transited by vessels up to the tonnage 
+  -- ?TONNAGE (in Dead Weight Tonnage).
+  fun navigableForShippingTonnage : El WaterArea -> El PhysicalQuantity -> Formula ;
+
+  -- (passengerCapacityMaxNumber ?TRANSPORT ?NUMBER) means that the 
+  -- TransportationDevice ?TRANSPORT has a safe carrying capacity for ?NUMBER 
+  -- of passengers.
+  fun passengerCapacityMaxNumber : El TransportationDevice -> El Number -> Formula ;
+
+  -- (powerComponent ?GENERATOR ?THING) 
+  -- means that the Device ?THING is the power source for the Artifact 
+  -- ?THING.
+  fun powerComponent: El Device -> Desc Artifact -> Formula ;
+
+  -- (routeBetween ?ROUTE ?FROM ?TO) means 
+  -- that the Transitway ?ROUTE is a route between the place ?FROM and 
+  -- the place ?TO.
+  fun routeBetween : El Transitway -> El Region -> El Region -> Formula ;
+
+  -- (routeEnd ?REGION ?SYSTEM) means
+  -- that within the given ?SYSTEM the given ?REGION is connected to
+  -- only one other Region.
+  fun routeEnd : El Region -> El TransitSystem -> Formula ;
+
+  fun routeStart : El Region -> El TransitSystem -> Formula ;
+
+  -- The maximum speed under normal conditions
+  -- for a vehicle. For a RoadVehicle this would be on level ground, no headwind or
+  -- tailwind, 70 degrees F, standard recommended fuel etc. For an Aircraft this would
+  -- mean level flight out of ground effect. Because of the number of external factors
+  -- on top speed, all that can be said formally is that higher speeds are unlikely.
+  fun topSpeed : El Vehicle -> El FunctionQuantity -> Formula ;
+
+  -- (totalFacilityTypeInArea ?AREA ?TYPE ?COUNT) means that in the 
+  -- GeographicArea ?AREA there a total of ?COUNT number of facilities 
+  -- of type ?TYPE.
+  fun totalFacilityTypeInArea : El GeographicArea -> Class -> El NonnegativeInteger -> Formula ;
+
+  -- (totalLengthOfHighwaySystem ?AREA ?LENGTH) means that the total 
+  -- length of the highway system in the GeographicArea ?AREA is ?LENGTH. 
+  -- The figure includes both paved and unpaved roads.
+  fun totalLengthOfHighwaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (totalLengthOfRailwaySystem ?AREA ?LENGTH) means that the sum 
+  -- length of all railway routes in the GeographicArea ?AREA 
+  -- is the LengthMeasure ?LENGTH.
+  fun totalLengthOfRailwaySystem : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (totalLengthOfWaterways ?AREA ?LENGTH) means that the 
+  -- total length of navigable Waterways in the GeographicArea ?AREA 
+  -- is the LengthMeasure ?LENGTH.
+  fun totalLengthOfWaterways : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- (totalPipelineInArea ?AREA ?LENGTH) means that the GeopoliticalArea 
+  -- ?AREA has ?LENGTH of Pipelines.
+  fun totalPipelineInArea : El GeographicArea -> El LengthMeasure -> Formula ;
+
+  -- The distance between the two rails
+  -- of a Railway.
+  fun trackWidth : El Railway -> El LengthMeasure -> Formula ;
+
+  -- (trafficableForTrafficType ?WAY ?TYPE) means that Objects of ?TYPE 
+  -- can move along the Transitway ?WAY.
+  fun trafficableForTrafficType: El Object -> Desc SelfConnectedObject -> Formula ;
+
+  -- (transitwayCapacityCount ?WAY ?TYPE ?NUMBER) means that the 
+  -- Transitway ?WAY can accommodate a maximum of ?NUMBER items of ?TYPE 
+  -- at any one time.
+  fun transitwayCapacityCount: El Transitway -> Desc SelfConnectedObject -> El NonnegativeInteger -> Formula ;
+
+  -- (transitwayCapacityRate ?WAY ?TYPE ?RATE) means that the 
+  -- Transitway WAY can transit items of ?TYPE at the maximum 
+  -- FunctionQuantity ?RATE. For example, 
+  -- (transitwayCapacityRate SFBayBridgeWestbound Automobile 500).
+  fun transitwayCapacityRate: El Transitway -> Desc SelfConnectedObject -> El FunctionQuantity -> Formula ;
+
+  -- (vesselDeadWeightTonnage ?VESSEL ?AMOUNT) means that the 
+  -- WaterVehicle ?VESSEL has a carrying capacity when fully loaded of 
+  -- ?AMOUNT in LongTons. This is the Dead Weight Tonnage, or DWT, 
+  -- of the vessel, which is the total weight of cargo plus stores 
+  -- that the vessel can carry when immersed to the proper load line.
+  fun vesselDeadWeightTonnage : El WaterVehicle -> El MassMeasure -> Formula ;
+
+  -- (vesselDisplacement ?VESSEL ?AMOUNT) means that the displacement 
+  -- of WaterVehicle ?VESSEL is the PhysicalQuantity ?AMOUNT. The 
+  -- displacement of a vessel may be measured in LongTons (Dead Weight 
+  -- Tonnage, or DWT) or by volume (Gross Registered Tonnage, or GRT).
+  fun vesselDisplacement : El WaterVehicle -> El PhysicalQuantity -> Formula ;
+
+  -- (vesselGrossRegisteredTonnage ?VESSEL ?AMOUNT) means that the 
+  -- WaterVehicle ?VESSEL has a carrying capacity when fully loaded of 
+  -- ?AMOUNT, where ?AMOUNT is the Gross Registered Tonnage (GRT) of the 
+  -- vessel, which is based on the total sheltered volume of the vessel 
+  -- measured in hundreds of cubic feet, and converted to gross tons 
+  -- at an equivalence of 100 cubic feet per ton.
+  fun vesselGrossRegisteredTonnage : El WaterVehicle -> El PhysicalQuantity -> Formula ;
+
 }
diff --git a/examples/SUMO/WMD.gf b/examples/SUMO/WMD.gf
--- a/examples/SUMO/WMD.gf
+++ b/examples/SUMO/WMD.gf
@@ -1,1041 +1,1018 @@
-abstract WMD = open Merge,Mid_level_ontology in {
-
-
-
-
--- An extremely toxic protein found in the seeds of the rosary pea. Its mechanism, symptoms, and treatment are very similar to those of RicinToxin. However, AbrinToxin is roughly 75 times more toxic than RicinToxin.
-fun AbrinToxin : Class ;
-fun AbrinToxin_ProteinToxin : SubClass AbrinToxin (both Protein Toxin);
-
-
--- A BiochemicalAgent that has been divided into particles so minute that they can be easily dispersed in the air and inhaled by Humans or Animals. AerosolizedAgents tend to be more lethal and to affect a larger area.
-fun AerosolizedAgent : Class ;
-fun AerosolizedAgent_BiochemicalAgent : SubClass AerosolizedAgent BiochemicalAgent ;
-
-
--- Also known as weaponized anthrax. These are spores of BacillusAnthracis that have been separated to the point that they can be dispersed in the air and easily inhaled by crowds.
-fun AerosolizedBacillusAnthracis : Class ;
-fun AerosolizedBacillusAnthracis_AerosolizedAgentBacillusAnthracis : SubClass AerosolizedBacillusAnthracis (both AerosolizedAgent BacillusAnthracis);
-
-
--- The disease has rarely been observed in humans, but it can cause severe damage to the liver, including cirrhosis and liver cancer, in a large number of animal species.
-fun Aflatoxicosis : Ind LifeThreateningDisease ;
-
-
--- Toxins produced by fungi of the strains Aspergillus Flavus and Aspergillus Parasiticus. There are four varieties of Aflatoxin, viz. B1, B2, G1, and G2. B1 is most common and most toxic.
-fun Aflatoxin : Class ;
-fun Aflatoxin_Mycotoxin : SubClass Aflatoxin Mycotoxin ;
-
-
--- The disease caused by BacillusAnthracis. Victims of the disease may experience a brief, apparent recovery before death.
-fun Anthrax : Ind BacterialDisease ;
-
-
--- A disease that attacks the immune system and that is caused by the HIVVirus. Patients are usually infected through blood or semen.
-fun AquiredImmunoDeficiencySyndrome : Class ;
-fun AquiredImmunoDeficiencySyndrome_DiseaseOrSyndrome : SubClass AquiredImmunoDeficiencySyndrome DiseaseOrSyndrome ;
-
-
--- Symptoms of the disease are flu_like in the initial stages. As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
-fun ArgentinianHemorrhagicFever : Ind HemorrhagicFever ;
-
-
--- A very toxic form of arsenic that is 2 and a half times denser than air. Victims who die after exposure to Arsine generally die from renal failure.
-fun Arsine : Class ;
-fun Arsine_BloodAgent : SubClass Arsine BloodAgent ;
-
-
--- An anticholinergic agent.
-fun Atropine : Class ;
-fun Atropine_BiologicallyActiveSubstance : SubClass Atropine BiologicallyActiveSubstance ;
-
-
--- Stockpiled for a time by both NATO and the Warsaw Pact countries, BZGas is a psychoactive agent that is heaver than air and reputedly ten times more powerful than LSD. Effects of the gas are not well understood, but they include vomiting, lethargy, loss of motor co_ordination, and cognitive incapacity.
-fun BZGas : Class ;
-fun BZGas_IncapacitatingAgent : SubClass BZGas IncapacitatingAgent ;
-
-
--- The Bacterium which causes the disease Anthrax. Humans may become infected with Anthrax via contamination of a wound or by inhaling the Bacterium. When it is inhaled, the disease is often fatal if not treated early (see InhalationalAnthrax).
-fun BacillusAnthracis : Class ;
-fun BacillusAnthracis_BacterialAgent : SubClass BacillusAnthracis BacterialAgent ;
-
-
--- A Bacterium that is closely related to and often found near BacillusAnthracis, the Bacterium that causes Anthrax. BacillusCereus causes two forms of food poisoning, one characterized by diarrhea and the other by vomiting. In most cases the disease is not life_threatening.
-fun BacillusCereus : Class ;
-fun BacillusCereus_BacterialAgent : SubClass BacillusCereus BacterialAgent ;
-
-
--- A common topical antibiotic.
-fun Bacitracin : Class ;
-fun Bacitracin_TopicalAntibiotic : SubClass Bacitracin TopicalAntibiotic ;
-
-
--- BiologicalAgents that are instances of Bacterium.
-fun BacterialAgent : Class ;
-fun BacterialAgent_BacteriumToxicOrganism : SubClass BacterialAgent (both Bacterium ToxicOrganism);
-
-
--- A Toxin produced by some species of Frogs.
-fun Batrachotoxin : Class ;
-fun Batrachotoxin_BodySubstanceToxin : SubClass Batrachotoxin (both BodySubstance Toxin);
-
-
--- A BiologicalAgent or a ChemicalAgent.
-fun BiochemicalAgent : Class ;
-fun BiochemicalAgent_BiologicallyActiveSubstance : SubClass BiochemicalAgent BiologicallyActiveSubstance ;
-
-
--- Attacks in which a BiochemicalWeapon is used against an Organism.
-fun BiochemicalAttack : Class ;
-fun BiochemicalAttack_Attack : SubClass BiochemicalAttack Attack ;
-
-
--- A WeaponOfMassDestruction that is either a BiologicalWeapon or a ChemicalWeapon, i.e. not a RadioactiveWeapon.
-fun BiochemicalWeapon : Class ;
-fun BiochemicalWeapon_WeaponOfMassDestruction : SubClass BiochemicalWeapon WeaponOfMassDestruction ;
-
-
--- A naturally occurring Substance, or a synthetic analogue of such a substance or an Organism that is capable of inflicting severe harm on other Organisms. All BiologicalWeapons contain a BiologicalAgent.
-fun BiologicalAgent : Class ;
-fun BiologicalAgent_BiochemicalAgent : SubClass BiologicalAgent BiochemicalAgent ;
-
-
--- Weapons which contain a sample of ToxicOrganism or a BiologicallyActiveSubstance that is produced by a ToxicOrganism (or a synthetic analogue of the latter).
-fun BiologicalWeapon : Class ;
-fun BiologicalWeapon_BiochemicalWeapon : SubClass BiologicalWeapon BiochemicalWeapon ;
-
-
--- ChemicalAgents that affect eyes, lungs, and skin. BlisterAgents are so named because they cause blistering of the skin. They may also cause blindness and respiratory damage.
-fun BlisterAgent : Class ;
-fun BlisterAgent_ChemicalAgent : SubClass BlisterAgent ChemicalAgent ;
-
-
--- A CompoundSubstance that prevents the normal use of oxygen by bodily tissues. BloodAgents are highly volatile and disperse easily in the open air.
-fun BloodAgent : Class ;
-fun BloodAgent_ChemicalAgent : SubClass BloodAgent ChemicalAgent ;
-
-
--- Symptoms of the disease are flu_like in the initial stages. As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
-fun BolivianHemorrhagicFever : Ind HemorrhagicFever ;
-
-
--- The Bacterium that causes Pertussis.
-fun BordetellaPertussis : Class ;
-fun BordetellaPertussis_BacterialAgent : SubClass BordetellaPertussis BacterialAgent ;
-
-
--- A Toxin produced by the bacterium ClostridiumBotulinum. It paralyzes muscles if ingested, and one billionth of a pound is sufficient to cause death.
-fun BotulinumToxin : Class ;
-fun BotulinumToxin_BodySubstanceLifeThreateningAgentToxin : SubClass BotulinumToxin (both BodySubstance (both LifeThreateningAgent Toxin));
-
-
--- A paralytic disease caused by BotulinumToxin, a Toxin produced by the bacterium ClostridiumBotulinum.
-fun Botulism : Ind (both BacterialDisease (both LifeThreateningDisease VaccinatableDisease)) ;
-
-
--- Symptoms of the disease are flu_like in the initial stages. As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
-fun BrazilianHemorrhagicFever : Ind HemorrhagicFever ;
-
-
--- The Bacterium which is responsible for the disease Brucellosis. This class covers Brucella Abortus (which infects humans and cattle), Brucella Melitensis (which infects sheep, goats, and humans), and Brucella Suis (which infects pigs).
-fun BrucellaBacterium : Class ;
-fun BrucellaBacterium_BacterialAgent : SubClass BrucellaBacterium BacterialAgent ;
-
-
--- Infectious disease caused by BrucellaBacterium. It is also known as undulant fever and malta fever, depending on the strain of BrucellaBacterium that is reponsible for the infection.
-fun Brucellosis : Ind BacterialDisease ;
-
-
--- A variant of the Plague which results in large swellings, called buboes.
-fun BubonicPlague : Ind (both BacterialDisease VaccinatableDisease) ;
-
-
--- The Bacterium that causes the disease Glanders. It is transmitted to humans by direct contact with infected animals. The bacteria enter the body through the skin and the mucosal surfaces of the eyes and nose.
-fun BurkholderiaMallei : Class ;
-fun BurkholderiaMallei_BacterialAgent : SubClass BurkholderiaMallei BacterialAgent ;
-
-
--- Formerly known as Pseudomonas Pseudomallei, this is the Bacterium that causes Melioidosis.
-fun BurkholderiaPseudomallei : Class ;
-fun BurkholderiaPseudomallei_BacterialAgent : SubClass BurkholderiaPseudomallei BacterialAgent ;
-
-
-fun CSGas : Class ;
-fun CSGas_IncapacitatingAgent : SubClass CSGas IncapacitatingAgent ;
-
--- Synthetic compounds that are not an analogue of anything occurring naturally and that can result in serious burns, paralysis, and death to Organisms.
-fun ChemicalAgent : Class ;
-fun ChemicalAgent_BiochemicalAgentBiologicallyActiveSubstanceCompoundSubstance : SubClass ChemicalAgent (both BiochemicalAgent (both BiologicallyActiveSubstance CompoundSubstance));
-
-
--- Weapons that damage or destroy Organisms by means of a ChemicalAgent.
-fun ChemicalWeapon : Class ;
-fun ChemicalWeapon_BiochemicalWeapon : SubClass ChemicalWeapon BiochemicalWeapon ;
-
-
--- The Bacterium that causes Psittacosis.
-fun ChlamydiaPsittaci : Class ;
-fun ChlamydiaPsittaci_BacterialAgent : SubClass ChlamydiaPsittaci BacterialAgent ;
-
-
--- A poisonous gas.
-fun ChlorineGas : Class ;
-fun ChlorineGas_ChokingAgent : SubClass ChlorineGas ChokingAgent ;
-
-
--- Poisonous gas which has effects similar to tear gas. If ingested, the gas causes gastroenteritis.
-fun Chloropicrin : Class ;
-fun Chloropicrin_ChokingAgent : SubClass Chloropicrin ChokingAgent ;
-
-
--- ChemicalAgents designed to cause the lungs to fill with fluid, which can result in the victim choking to death. ChokingAgents are heavy gases that are less effective than other ChemicalAgents because they can be easily dissipated by a slight wind.
-fun ChokingAgent : Class ;
-fun ChokingAgent_ChemicalAgent : SubClass ChokingAgent ChemicalAgent ;
-
-
--- A diarrheal disease that is caused by a Toxin secreted by the Bacterium VibrioCholera. Death may result from severe dehydration caused by the disease. There is little if any fever and abdominal pain with this illness.
-fun Cholera : Ind (both BacterialDisease (both VaccinatableDisease LifeThreateningDisease)) ;
-
-
--- An OralAntibiotic that is often used to prevent complications from AquiredImmunoDeficiencySyndrome. Recommended for prevention of inhalational Anthrax in subjects who may have been exposed to aeresolized BacillusAnthracis.
-fun Ciprofloxacin : Class ;
-fun Ciprofloxacin_OralAntibiotic : SubClass Ciprofloxacin OralAntibiotic ;
-
-
--- The Bacterium that produces BotulinumToxin.
-fun ClostridiumBotulinum : Class ;
-fun ClostridiumBotulinum_BacterialAgent : SubClass ClostridiumBotulinum BacterialAgent ;
-
-
--- Bacterium often found in the intestines of Animals. Ingesting this Bacterium can result in Perfringens food poisoning, which can attack internal organs and lead to gangrene.
-fun ClostridiumPerfringens : Class ;
-fun ClostridiumPerfringens_BacterialAgent : SubClass ClostridiumPerfringens BacterialAgent ;
-
-
--- The Bacterium that causes the disease Tetanus.
-fun ClostridiumTetani : Class ;
-fun ClostridiumTetani_BacterialAgent : SubClass ClostridiumTetani BacterialAgent ;
-
-
--- A recently discovered Fungus that is related to CoccidioidesImmitis and that also causes RiftValleyFever.
-fun CoccidiodesPosadasii : Class ;
-fun CoccidiodesPosadasii_FungalAgentLifeThreateningAgent : SubClass CoccidiodesPosadasii (both FungalAgent LifeThreateningAgent);
-
-
--- A Fungus that causes RiftValleyFever, an illness whose symptoms include fever, chills, and coughing and which may result in death.
-fun CoccidioidesImmitis : Class ;
-fun CoccidioidesImmitis_FungalAgentLifeThreateningAgent : SubClass CoccidioidesImmitis (both FungalAgent LifeThreateningAgent);
-
-
--- A class of neurotoxins that are produced by the Pacific cone snails. The lethality of these toxins varies widely, and it would be impractical to manufacture them on a large scale.
-fun Conotoxin : Class ;
-fun Conotoxin_BodySubstanceCompoundSubstanceToxin : SubClass Conotoxin (both BodySubstance (both CompoundSubstance Toxin));
-
-
--- The Bacterium that secretes a Toxin that causes Diphtheria.
-fun CorynebacteriumDiphtheriae : Class ;
-fun CorynebacteriumDiphtheriae_BacterialAgent : SubClass CorynebacteriumDiphtheriae BacterialAgent ;
-
-
--- The Bacterium that causes QFever.
-fun CoxiellaBurnetii : Class ;
-fun CoxiellaBurnetii_RickettsialAgent : SubClass CoxiellaBurnetii RickettsialAgent ;
-
-
--- A widespread disease which was initially identified in the Crimea and the Congo, which accounts for its name. The disease has a high mortality rate for humans, but infection of humans occurs infrequently.
-fun CrimeanCongoHemorrhagicFever : Ind (both HemorrhagicFever LifeThreateningDisease) ;
-
-
--- The Virus that causes CrimeanCongoHemorrhagicFever.
-fun CrimeanCongoHemorrhagicFeverVirus : Class ;
-fun CrimeanCongoHemorrhagicFeverVirus_ViralAgent : SubClass CrimeanCongoHemorrhagicFeverVirus ViralAgent ;
-
-
--- Used in mining and metalurgy, it is very similar to HydrogenCyanide. However, it is less volatile than HydrogenCyanide, and its effects on the eyes, respiratory tract, and lungs is similar to Phosgene and ChorineGas.
-fun CyanogenChloride : Class ;
-fun CyanogenChloride_BloodAgent : SubClass CyanogenChloride BloodAgent ;
-
-
--- Integrating a WeaponOfMassDestruction with a conventional weapon, so that the former can be delivered to its target.
-fun DeliveringWeaponOfMassDestruction : Class ;
-fun DeliveringWeaponOfMassDestruction_Making : SubClass DeliveringWeaponOfMassDestruction Making ;
-
-
--- The less serious disease caused by the DengueFeverVirus. Symptoms include fever and severe headache.
-fun DengueFever : Ind ViralDisease ;
-
-
--- Any of four related but distinct virus serotypes that are carried by the Aedes Aegypti mosquito and that can cause DengueFever and DengueHemorrhagicFever.
-fun DengueFeverVirus : Class ;
-fun DengueFeverVirus_ViralAgent : SubClass DengueFeverVirus ViralAgent ;
-
-
--- The more serious disease caused by the & %DengueFeverVirus. Symptoms include bleeding from the nose, mouth, and gums, and excessive thirst and difficulty breathing.
-fun DengueHemorrhagicFever : Ind (both HemorrhagicFever LifeThreateningDisease) ;
-
-
--- Positioning a chemical, biological or radioactive weapon for the purpose of bringing about harm of some kind.
-fun DeployingWeaponOfMassDestruction : Class ;
-fun DeployingWeaponOfMassDestruction_IntentionalProcessPutting : SubClass DeployingWeaponOfMassDestruction (both IntentionalProcess Putting);
-
-
--- Making instances of WeaponOfMassDestruction.
-fun DevelopingWeaponOfMassDestruction : Class ;
-fun DevelopingWeaponOfMassDestruction_Making : SubClass DevelopingWeaponOfMassDestruction Making ;
-
-
--- A Micotoxin that is found in grains and products made from grains. Symptoms include diarrhea, necrotic lesions, and hemorrhaging.
-fun Diacetoxyscirpenol : Class ;
-fun Diacetoxyscirpenol_Mycotoxin : SubClass Diacetoxyscirpenol Mycotoxin ;
-
-
--- A chelating agent often used to treat Lewisite, as well as Lead Poisoning.
-fun Dimercaprol : Class ;
-fun Dimercaprol_BiologicallyActiveSubstance : SubClass Dimercaprol BiologicallyActiveSubstance ;
-
-
--- A poisonous gas that irritates the lungs and that is similar to Phosgene.
-fun Diphosgene : Class ;
-fun Diphosgene_ChokingAgent : SubClass Diphosgene ChokingAgent ;
-
-
--- The disease can infect almost any mucous membrane. It causes fever, chills, headache, and nausea. In severe cases it may affect heart rhythm and motor coordination.
-fun Diphtheria : Ind (both BacterialDisease LifeThreateningDisease) ;
-
-
--- Dismantling a Weapon of Mass Destruction, i.e. destroying the weapon or removing it from active deployment.
-fun DismantlingWeaponOfMassDestruction : Class ;
-fun DismantlingWeaponOfMassDestruction_IntentionalProcess : SubClass DismantlingWeaponOfMassDestruction IntentionalProcess ;
-
-
--- An OralAntibiotic that is used to treat a wide variety of BacterialDiseases, including traveler's diarrhea. Recommended for prevention of inhalational Anthrax in subjects who may have been exposed to aeresolized BacillusAnthracis.
-fun Doxycycline : Class ;
-fun Doxycycline_OralAntibiotic : SubClass Doxycycline OralAntibiotic ;
-
-
--- In mile cases, symptoms are flu_like. In more severe cases, the disease may result in encephalitis, coma, and death.
-fun EasternEquineEncephalitis : Ind (both ViralDisease LifeThreateningDisease) ;
-
-
--- The Virus that causes EasternEquineEncephalitis. Mosquitoes carry this virus, which is then transmitted to humans, when the insects bite them.
-fun EasternEquineEncephalitisVirus : Class ;
-fun EasternEquineEncephalitisVirus_ViralAgent : SubClass EasternEquineEncephalitisVirus ViralAgent ;
-
-
--- A very serious HemorrhagicFever, which often results in death.
-fun EbolaHemorrhagicFever : Ind HemorrhagicFever ;
-
-
--- A Virus that causes a form of hemorrhagic fever.
-fun EbolaVirus : Class ;
-fun EbolaVirus_ViralAgent : SubClass EbolaVirus ViralAgent ;
-
-
--- A Toxin produced by the bacterium ClostridiumPerfringens that causes a mild form of food poisoning that lasts one to two days.
-fun EpsilonToxin : Class ;
-fun EpsilonToxin_BodySubstanceToxin : SubClass EpsilonToxin (both BodySubstance Toxin);
-
-
--- One of hundreds of strains of the Escherichia Coli Bacterium. This strain lives in the intestines of healthy cattle, but it can cause severe illness when ingested by humans.
-fun EscherichiaColi0157H7 : Class ;
-fun EscherichiaColi0157H7_BacterialAgent : SubClass EscherichiaColi0157H7 BacterialAgent ;
-
-
--- A Virus that that is responsible for a hemorrhagic fever found in South America.
-fun FlexalVirus : Class ;
-fun FlexalVirus_ViralAgent : SubClass FlexalVirus ViralAgent ;
-
-
--- A Virus that is smaller than YellowFeverVirus.
-fun FootAndMouthVirus : Class ;
-fun FootAndMouthVirus_ViralAgent : SubClass FootAndMouthVirus ViralAgent ;
-
-
--- The Bacterium that causes the disease Tularemia. Also known as Pasturella Tularensis. The Bacterium has two strains, Jellison type A (F. tularensis biovar tularensis) and type B strains (F tularensis biovar palaearctica), and it is infectious with a dose as small as 50 cells per milliliter.
-fun FrancisellaTularensis : Class ;
-fun FrancisellaTularensis_BacterialAgent : SubClass FrancisellaTularensis BacterialAgent ;
-
-
--- Any BiologicalAgent that is also a Fungus.
-fun FungalAgent : Class ;
-fun FungalAgent_FungusToxicOrganism : SubClass FungalAgent (both Fungus ToxicOrganism);
-
-
--- One of the G_series nerve agents.
-fun GF : Class ;
-fun GF_GSeriesNerveAgent : SubClass GF GSeriesNerveAgent ;
-
-
--- Earliest sort of NerveAgent (developed in the 1930's). This subclass of NerveAgents tends to be less persistent, more volatile, and less toxic than VSeriesNerveAgents, which were developed later. GSeriesNerveAgents include Tabun, Sarin, and Soman.
-fun GSeriesNerveAgent : Class ;
-fun GSeriesNerveAgent_NerveAgent : SubClass GSeriesNerveAgent NerveAgent ;
-
-
--- Inflammation of the gastrointestinal tract, i.e. the stomach and small and large intestines. The symptoms include diarrhea, vomiting, and abdominal pain.
-fun Gastroenteritis : Ind DiseaseOrSyndrome ;
-
-
--- The class of Organisms that are not found originally in nature, but are produced in a laboratory by manipulating the genes of naturally occurring organisms.
-fun GeneticallyEngineeredOrganism : Class ;
-fun GeneticallyEngineeredOrganism_Organism : SubClass GeneticallyEngineeredOrganism Organism ;
-
-
--- A Bacterium that causes Gastroenteritis. It is present in many streams and lakes, and it is carried by beavers and other animals.
-fun GiardiaLamblia : Class ;
-fun GiardiaLamblia_BacterialAgent : SubClass GiardiaLamblia BacterialAgent ;
-
-
--- A disease caused by BurkholderiaMallei. Primary symptoms of Glanders include fever, muscle aches, chest pain, muscle tightness, and headache. Additional symptoms include tearing of the eyes, light sensitivity, and diarrhea. There is no vaccine for this disease.
-fun Glanders : Ind BacterialDisease ;
-
-
--- A disease caused by the bacterium NeisseriaGonorrhoeae.
-fun Gonorrhea : Ind BacterialDisease ;
-
-
--- The Virus that causes VenezuelanHemorrhagicFever.
-fun GuanaritoVirus : Class ;
-fun GuanaritoVirus_ViralAgent : SubClass GuanaritoVirus ViralAgent ;
-
-
--- The Virus that causes AquiredImmunoDeficiencySyndrome.
-fun HIVVirus : Class ;
-fun HIVVirus_ViralAgent : SubClass HIVVirus ViralAgent ;
-
-
--- A severe syndrome that affects multiple organs of the body. Typically, the vascular system is damaged, and the body's ability to regulate itself is impaired.
-fun HemorrhagicFever : Class ;
-fun HemorrhagicFever_ViralDisease : SubClass HemorrhagicFever ViralDisease ;
-
-
--- A Virus found in Australia and Papua New Guinea that infects humans and horses. The natural host of the virus appears to be fruit bats. Not much is known about the disease caused by the HendraVirus, but it seems to begin with fever and then progress to drowsiness and coma.
-fun HendraVirus : Class ;
-fun HendraVirus_ViralAgent : SubClass HendraVirus ViralAgent ;
-
-
--- A class of ViralDiseases that attack the liver.
-fun Hepatitis : Class ;
-fun Hepatitis_ViralDisease : SubClass Hepatitis ViralDisease ;
-
-
--- A disease that attacks the liver and causes jaundice as well as flu_like symptoms. There is no chronic infection with this disease, and anyone who has recovered from it will have life_time immunity to the disease.
-fun HepatitisA : Ind (both Hepatitis VaccinatableDisease) ;
-
-
--- The Virus that causes HepatitisA.
-fun HepatitisAVirus : Class ;
-fun HepatitisAVirus_HepatitisVirus : SubClass HepatitisAVirus HepatitisVirus ;
-
-
--- Like other forms of hepatitis, HepatitisB attacks the liver of the victim. The disease may result in death from chronic liver disease.
-fun HepatitisB : Ind (both Hepatitis (both VaccinatableDisease LifeThreateningDisease)) ;
-
-
--- The Virus that causes HepatitisB.
-fun HepatitisBVirus : Class ;
-fun HepatitisBVirus_HepatitisVirus : SubClass HepatitisBVirus HepatitisVirus ;
-
-
--- Like other forms of hepatitis, HepatitisC attacks the liver of the victim. The disease often results in chronic infection and chronic liver disease, although the mortality rate of this disease is lower than that of HepatitisB. Most cases of HepatitisC are due to injections of illegal drugs.
-fun HepatitisC : Ind (both Hepatitis LifeThreateningDisease) ;
-
-
--- The Virus that causes HepatitisC.
-fun HepatitisCVirus : Class ;
-fun HepatitisCVirus_HepatitisVirus : SubClass HepatitisCVirus HepatitisVirus ;
-
-
--- Viruses that cause Hepatitis.
-fun HepatitisVirus : Class ;
-fun HepatitisVirus_ViralAgent : SubClass HepatitisVirus ViralAgent ;
-
-
--- The disease caused by HerpesBVirus.
-fun HerpesB : Ind (both ViralDisease LifeThreateningDisease) ;
-
-
--- A virus which is carried by Macaque monkeys and which does not harm these primates, but which causes the very serious HerpesB disease in humans.
-fun HerpesBVirus : Class ;
-fun HerpesBVirus_ViralAgent : SubClass HerpesBVirus ViralAgent ;
-
-
--- A ChemicalAgent that was widely used by the Nazis in extermination camps. A low dose can cause headache, disorientation, and vomiting, while a high dose can rapidly result in respiratory and/or cardiac arrest.
-fun HydrogenCyanide : Class ;
-fun HydrogenCyanide_BloodAgent : SubClass HydrogenCyanide BloodAgent ;
-
-
--- ChemicalAgents that are designed to cause temporary disability in victims.
-fun IncapacitatingAgent : Class ;
-fun IncapacitatingAgent_ChemicalAgent : SubClass IncapacitatingAgent ChemicalAgent ;
-
-
--- A contagious disease caused by a large number of Viruses.
-fun Influenza : Class ;
-fun Influenza_VaccinatableDiseaseViralDisease : SubClass Influenza (both VaccinatableDisease ViralDisease);
-
-
--- Almost 100% fatal if left untreated for more than 24 hours.
-fun InhalationalAnthrax : Ind (both BacterialDisease LifeThreateningDisease) ;
-
-
--- Most people who are infected with this disease will suffer only mild symptoms. However, in severe cases, the disease attacks the central nervous system and may result in death.
-fun JapaneseEncephalitis : Ind (both ViralDisease (both LifeThreateningDisease VaccinatableDisease)) ;
-
-
--- The Virus that causes JapaneseEncephalitis. Mosquitoes in agricultural areas of Asia carry this virus, which is then transmitted to humans, when the insects bite them.
-fun JapaneseEncephalitisVirus : Class ;
-fun JapaneseEncephalitisVirus_ViralAgent : SubClass JapaneseEncephalitisVirus ViralAgent ;
-
-
--- This Virus derives its name from the Junin area of Argentina, where occurrences have so far been restricted.
-fun JuninVirus : Class ;
-fun JuninVirus_ViralAgent : SubClass JuninVirus ViralAgent ;
-
-
--- A cephalosporin for treating bacterial infections.
-fun Keflex : Class ;
-fun Keflex_OralAntibiotic : SubClass Keflex OralAntibiotic ;
-
-
--- A tick_borne encephalitis that is largely restricted to the Shimoga and Kanara district of Karnataka, India.
-fun KyasanurForestDisease : Ind TickBorneEncephalitis ;
-
-
--- The Virus that carries KyasanurForestDisease.
-fun KyasanurForestDiseaseVirus : Class ;
-fun KyasanurForestDiseaseVirus_TickBorneEncephalitisVirus : SubClass KyasanurForestDiseaseVirus TickBorneEncephalitisVirus ;
-
-
--- Encephalitis caused by the LaCrosseVirus. In its most severe cases, the disease may result in seizure and/or coma, but most infections are relatively mild.
-fun LaCrosseEncephalitis : Ind ViralDisease ;
-
-
--- The Virus that causes LaCrossEncephalitis. It is carried by the Aedes Triseriatus mosquito, as well as various woodlands rodents.
-fun LaCrosseVirus : Class ;
-fun LaCrosseVirus_ViralAgent : SubClass LaCrosseVirus ViralAgent ;
-
-
--- A viral, rodent_carried disease found in West Africa. The symptoms of the disease are wide_ranging and can be life_threatening. The disease can lead to permanent neurological problems, including deafness.
-fun LassaFever : Ind (both ViralDisease LifeThreateningDisease) ;
-
-
--- The Virus that causes LassaFever.
-fun LassaVirus : Class ;
-fun LassaVirus_ViralAgent : SubClass LassaVirus ViralAgent ;
-
-
--- The Bacterium that causes Legionellosis, which is known as LegionnairesDisease (when it infects the lungs) and PontiacFever (when it doesn't affect the lungs).
-fun Legionella : Class ;
-fun Legionella_BacterialAgent : SubClass Legionella BacterialAgent ;
-
-
--- The disease caused by the Bacterium Legionella.
-fun Legionellosis : Ind BacterialDisease ;
-
-
--- The most severe form of Legionellosis. It is characterized by pneumonia.
-fun LegionnairesDisease : Ind (both BacterialDisease LifeThreateningDisease) ;
-
-
--- Besides being a BlisterAgent, Lewisite causes systemic poisoning. Its symptoms include pulmonary edema, diarrhea, reduced body temperature and blood pressure. When large quantities of Lewisite are inhaled, it can cause death in as little as 10 minutes.
-fun Lewisite : Class ;
-fun Lewisite_BlisterAgent : SubClass Lewisite BlisterAgent ;
-
-
--- A BiochemicalAgent that has been observed to cause the death of Humans.
-fun LifeThreateningAgent : Class ;
-fun LifeThreateningAgent_BiochemicalAgent : SubClass LifeThreateningAgent BiochemicalAgent ;
-
-
--- A DiseaseOrSyndrome that has been observed to cause the death of Humans.
-fun LifeThreateningDisease : Class ;
-fun LifeThreateningDisease_DiseaseOrSyndrome : SubClass LifeThreateningDisease DiseaseOrSyndrome ;
-
-
--- The only rickettsial disease which is capable of causing widespread human epidemics. The initial symptoms of the disease are flu_like, but on the fifth or sixth day of infection a macular eruption appears on the upper trunk of the body and then spreads to the rest of the body.
-fun LouseBorneTyphus : Ind BacterialDisease ;
-
-
--- The Virus that causes BolivianHemorrhagicFever.
-fun MachupoVirus : Class ;
-fun MachupoVirus_ViralAgent : SubClass MachupoVirus ViralAgent ;
-
-
--- A disease that destroys red blood cells. It is caused by a Microorganism (see MalarialPlasmodium) that is carried by the Anopheles Gambiae mosquito.
-fun Malaria : Ind (both InfectiousDisease LifeThreateningDisease) ;
-
-
--- Any of four strains of Plasmodium that are known to cause Malaria.
-fun MalarialPlasmodium : Class ;
-fun MalarialPlasmodium_BiologicalAgentMicroorganism : SubClass MalarialPlasmodium (both BiologicalAgent Microorganism);
-
-
--- Extremely serious disease caused by the MarburgVirus. Symptoms include high fever, myalgias, vomiting, and diarrhea. Typically involves major organs, including the central nervous system.
-fun MarburgDisease : Ind (both ViralDisease LifeThreateningDisease) ;
-
-
--- The Virus that causes MarburgDisease.
-fun MarburgVirus : Class ;
-fun MarburgVirus_ViralAgent : SubClass MarburgVirus ViralAgent ;
-
-
--- Also known as Whitmore's disease, it is similar to Glanders. Unlike Glanders, however, the disease is found predominantly in Southeast Asia. The disease may be a localized infection or it may involve the bloodstream, the lungs or other organs of the body.
-fun Melioidosis : Ind BacterialDisease ;
-
-
--- A Virus that is infectious to rabbits and may cause blindness and death in these Rodents.
-fun Mixomatosis : Class ;
-fun Mixomatosis_ViralAgent : SubClass Mixomatosis ViralAgent ;
-
-
--- A viral disease that is very similar to Smallpox. It is seen sporadically in parts of Africa.
-fun Monkeypox : Ind ViralDisease ;
-
-
--- The Virus that causes Monkeypox.
-fun MonkeypoxVirus : Class ;
-fun MonkeypoxVirus_ViralAgent : SubClass MonkeypoxVirus ViralAgent ;
-
-
--- A BlisterAgent that was commonly used in World War I to incapacitate troops. It is chemically stable, persistent, and is capable of attacking the eyes, the skin, and the respiratory tract. There is no accepted treatment or preventive measure for MustardGas.
-fun MustardGas : Class ;
-fun MustardGas_BlisterAgent : SubClass MustardGas BlisterAgent ;
-
-
--- The Bacterium that causes Tuberculosis.
-fun MycobacteriumTuberculosis : Class ;
-fun MycobacteriumTuberculosis_BacterialAgent : SubClass MycobacteriumTuberculosis BacterialAgent ;
-
-
--- A Toxin that is produced by a FungalAgent.
-fun Mycotoxin : Class ;
-fun Mycotoxin_BodySubstanceToxin : SubClass Mycotoxin (both BodySubstance Toxin);
-
-
--- A BacterialDisease caused by StreptococcusA where the Bacterium rapidly attacks soft tissue.
-fun NecrotizingFaciitis : Ind (both BacterialDisease LifeThreateningDisease) ;
-
-
--- The Bacterium that causes Gonorrhea.
-fun NeisseriaGonorrhoeae : Class ;
-fun NeisseriaGonorrhoeae_BacterialAgent : SubClass NeisseriaGonorrhoeae BacterialAgent ;
-
-
--- These ChemicalAgents are easily absorbed into the mucous membranes of humans and inactivate the essential enzyme acetylcholinesterase, bringing about paralysis of the respiratory and central nervous systems.
-fun NerveAgent : Class ;
-fun NerveAgent_ChemicalAgent : SubClass NerveAgent ChemicalAgent ;
-
-
--- Closely related to HendraVirus. Like the HendraVirus, the natural host of NipahVirus appears to be fruit bats. Not much is known about the disease, but its symptoms include high fever, muscle pain, and eventually encephalitis, convulsions, and coma.
-fun NipahVirus : Class ;
-fun NipahVirus_ViralAgent : SubClass NipahVirus ViralAgent ;
-
-
--- A kind of mustard gas. Also known as HN.
-fun NitrogenMustardGas : Class ;
-fun NitrogenMustardGas_MustardGas : SubClass NitrogenMustardGas MustardGas ;
-
-
--- Facilities where NuclearWeapons are built.
-fun NuclearWeaponProductionFacility : Class ;
-fun NuclearWeaponProductionFacility_WMDWeaponsProductionFacility : SubClass NuclearWeaponProductionFacility WMDWeaponsProductionFacility ;
-
-
--- Research facilities that perform research on technology related to NuclearWeapons.
-fun NuclearWeaponResearchFacility : Class ;
-fun NuclearWeaponResearchFacility_WMDWeaponsResearchFacility : SubClass NuclearWeaponResearchFacility WMDWeaponsResearchFacility ;
-
-
--- An Antibiotic that is administered orally, e.g. Penicillin.
-fun OralAntibiotic : Class ;
-fun OralAntibiotic_Antibiotic : SubClass OralAntibiotic Antibiotic ;
-
-
--- The syndrome where some or all of an Animal's muscles cannot be moved voluntarily.
-fun Paralysis : Ind DiseaseOrSyndrome ;
-
-
--- A very serious disease requiring immediate medical attention. There is no vaccine for this disease.
-fun ParalyticShellfishPoisoning : Ind LifeThreateningDisease ;
-
-
--- An ingestible antibiotic which kills many kinds of bacteria.
-fun Penicillin : Class ;
-fun Penicillin_OralAntibiotic : SubClass Penicillin OralAntibiotic ;
-
-
--- The BacterialDisease caused by BordetellaPertussis. Its symptoms include severe coughing (hence the colloquial name of whooping cough) and flu_like symptoms.
-fun Pertussis : Ind (both BacterialDisease VaccinatableDisease) ;
-
-
--- A colorless, extremely toxic gas. It is regarded as the most dangerous of the ChemicalAgents. Deaths resulting from exposure to this ChemicalAgent generally occur in 24 to 48 hours.
-fun Phosgene : Class ;
-fun Phosgene_ChokingAgent : SubClass Phosgene ChokingAgent ;
-
-
--- One of the most painful and destructive chemical compounds in existence. Recovery from this ChemicalAgent requires one to three months.
-fun PhosgeneOxime : Class ;
-fun PhosgeneOxime_BlisterAgent : SubClass PhosgeneOxime BlisterAgent ;
-
-
--- The disease caused by the Bacterium YersiniaPestis. Plague has two forms depending on the location of the infection within the body, BubonicPlague and PneumonicPlague.
-fun Plague : Ind (both BacterialDisease VaccinatableDisease) ;
-
-
--- One of four strains of Plasmodium that are known to cause Malaria. It can cause severe anemia and kidney failure or it can constrict small blood vessels and cause cerebral malaria.
-fun PlasmodiumFalciparum : Class ;
-fun PlasmodiumFalciparum_MalarialPlasmodium : SubClass PlasmodiumFalciparum MalarialPlasmodium ;
-
-
--- Also known as pulmonary plague, a variant of the Plague which attacks the lungs and is spread between humans by oral bodily fluids.
-fun PneumonicPlague : Ind (both BacterialDisease VaccinatableDisease) ;
-
-
--- A flu_like illness which is caused by Legionella, but which does not involve pneumonia.
-fun PontiacFever : Ind BacterialDisease ;
-
-
--- A serious disease caused by ChlamydiaPsittaci that affects both birds and humans. In humans the symptoms include fever, chills, headache, muscle aches, and a dry cough. The disease may give rise to pneumonia in extreme cases.
-fun Psittacosis : Ind BacterialDisease ;
-
-
--- A substance that has been shown to protect lower primates from the lethal effects of Soman. Although there is no proof that it does the same for humans, it was administered to soldiers in the Gulf War.
-fun PyridostigmineBromide : Class ;
-fun PyridostigmineBromide_BiologicallyActiveSubstance : SubClass PyridostigmineBromide BiologicallyActiveSubstance ;
-
-
--- A disease caused by the rickettsia CoxiellaBurnetii. Causes headache, chills, coughing, hallucinations, fever up to 104 degrees, facial pain, speech impairment, heart inflammation and congestive heart failure.
-fun QFever : Ind BacterialDisease ;
-
-
--- Conducting research on the development of Weapons of Mass Destruction.
-fun ResearchingWeaponOfMassDestruction : Class ;
-fun ResearchingWeaponOfMassDestruction_Investigating : SubClass ResearchingWeaponOfMassDestruction Investigating ;
-
-
--- An extremely toxic protein found in the castor bean plant (ricinus communis). It is 200 times more toxic than cyanide, and it has no known antidote, and it causes vomiting, high fever, weakness, and death.
-fun RicinToxin : Class ;
-fun RicinToxin_ProteinToxin : SubClass RicinToxin (both Protein Toxin);
-
-
--- The Bacterium that causes LouseBorneTyphus.
-fun RickettsiaProwazekii : Class ;
-fun RickettsiaProwazekii_RickettsialAgent : SubClass RickettsiaProwazekii RickettsialAgent ;
-
-
--- The Bacterium that causes RockyMountainSpottedFever.
-fun RickettsiaRickettsii : Class ;
-fun RickettsiaRickettsii_RickettsialAgent : SubClass RickettsiaRickettsii RickettsialAgent ;
-
-
--- BiologicalAgents that are rickettsial organisms, i.e. gram_negative bacteria that infect mammals and arthropods.
-fun RickettsialAgent : Class ;
-fun RickettsialAgent_BacterialAgent : SubClass RickettsialAgent BacterialAgent ;
-
-
--- A ViralDisease that causes chills, bleeding, and stupor.
-fun RiftValleyFever : Class ;
-fun RiftValleyFever_ViralDisease : SubClass RiftValleyFever ViralDisease ;
-
-
--- A very serious disease that is caused RickettsiaRickettsii, which is carried by ticks. The most distinctive symptom of the disease is a rash of black dots.
-fun RockyMountainSpottedFever : Ind (both BacterialDisease LifeThreateningDisease) ;
-
-
--- There are three types of Rotavirus: Group A, Group B, and Group C. They cause an acute form of gastroenteritis, known as RotavirusGastroenteritis.
-fun Rotavirus : Class ;
-fun Rotavirus_ViralAgent : SubClass Rotavirus ViralAgent ;
-
-
--- A disease caused by instances of Rotavirus, and characterized by vomiting, diarrhea, and fever.
-fun RotavirusGastroenteritis : Ind ViralDisease ;
-
-
--- The Virus that causes BrazilianHemorrhagicFever.
-fun SabiaVirus : Class ;
-fun SabiaVirus_ViralAgent : SubClass SabiaVirus ViralAgent ;
-
-
--- In mild cases, symptoms are flu_like. In more severe cases, symptoms may include disorientation, coma, tremors, hemorrhage, and convulsions.
-fun SaintLouisEncephalitis : Ind (both ViralDisease LifeThreateningDisease) ;
-
-
--- The Virus that causes SaintLouisEncephalitis. Mosquitoes carry this virus, which is then transmitted to humans, when the insects bite them.
-fun SaintLouisEncephalitisVirus : Class ;
-fun SaintLouisEncephalitisVirus_ViralAgent : SubClass SaintLouisEncephalitisVirus ViralAgent ;
-
-
--- Causes a less severe illness than SalmonellaTyphimurium.
-fun SalmonellaPartyphi : Class ;
-fun SalmonellaPartyphi_BacterialAgent : SubClass SalmonellaPartyphi BacterialAgent ;
-
-
--- The Bacterium that causes TyphoidFever.
-fun SalmonellaTyphi : Class ;
-fun SalmonellaTyphi_BacterialAgent : SubClass SalmonellaTyphi BacterialAgent ;
-
-
--- A bacterium that can cause death in young, elderly or immunodeficient people. It appears in the stool of infected people.
-fun SalmonellaTyphimurium : Class ;
-fun SalmonellaTyphimurium_BacterialAgent : SubClass SalmonellaTyphimurium BacterialAgent ;
-
-
--- Also known as GB, one of the G_series nerve agents.
-fun Sarin : Class ;
-fun Sarin_GSeriesNerveAgent : SubClass Sarin GSeriesNerveAgent ;
-
-
--- A class of chemically related neurotoxins that are produced by marine dinoflagellates and carried by Mollusks.
-fun Saxitoxin : Class ;
-fun Saxitoxin_BodySubstanceCompoundSubstanceToxin : SubClass Saxitoxin (both BodySubstance (both CompoundSubstance Toxin));
-
-
--- A serious disease that may arise if StrepThroat is left untreated.
-fun ScarletFever : Ind BacterialDisease ;
-
-
--- A Bacterium that can cause death in infected Humans.
-fun SerratiaMarcenscens : Class ;
-fun SerratiaMarcenscens_BacterialAgentLifeThreateningAgent : SubClass SerratiaMarcenscens (both BacterialAgent LifeThreateningAgent);
-
-
--- The Toxin produced by the Bacterium ShigellaDysenteriae.
-fun ShigaToxin : Class ;
-fun ShigaToxin_Toxin : SubClass ShigaToxin Toxin ;
-
-
--- Causes severe dysentery (even when as little as 100 bacteria are ingested). This form of dysentery results in death in 10_20 percent of infections.
-fun ShigellaDysenteriae : Class ;
-fun ShigellaDysenteriae_BacterialAgent : SubClass ShigellaDysenteriae BacterialAgent ;
-
-
--- A highly contagious and dangerous disease. It causes blood loss, cardiovascular collapse, secondary infections, skin pustules, and often leaves survivors scarred and blinded. Approximately 500 million people died from Smallpox in the nineteenth century. The disease can live on objects for several days, and it incubates for twelve days before showing symptoms.
-fun Smallpox : Ind ViralDisease ;
-
-
--- Also known as GD, one of the G_series nerve agents.
-fun Soman : Class ;
-fun Soman_GSeriesNerveAgent : SubClass Soman GSeriesNerveAgent ;
-
-
--- A common cause of food poisoning. It has been studied as a BiologicalAgent, because it is stable, can be converted to aerosol form, and can be lethal when inhaled.
-fun StaphylococcalEnterotoxinB : Class ;
-fun StaphylococcalEnterotoxinB_LifeThreateningAgentToxin : SubClass StaphylococcalEnterotoxinB (both LifeThreateningAgent Toxin);
-
-
--- A bacterium that secretes StaphylococcalEnterotoxicB. It causes chills, headache, muscle pain, coughing (which may last for weeks), and sudden fever of up to 106 degrees (which may last for days). It occasionally causes nausea, vomiting, and diarrhea.
-fun StaphyylococcusAureus : Class ;
-fun StaphyylococcusAureus_BacterialAgent : SubClass StaphyylococcusAureus BacterialAgent ;
-
-
--- Manufacturing a significant quantity of instances of a WeaponOfMassDestruction, i.e. the weapons are not produced at the scale of a single laboratory or a pilot program. These weapons may or may not be deployed (see DeployingWeaponOfMassDestruction).
-fun StockpilingWeaponOfMassDestruction : Class ;
-fun StockpilingWeaponOfMassDestruction_DevelopingWeaponOfMassDestructionManufacture : SubClass StockpilingWeaponOfMassDestruction (both DevelopingWeaponOfMassDestruction Manufacture);
-
-
--- A BacterialDisease whose symptoms include a very sore throat, difficulty swallowing, high fever, white spots and/or pus on or near the tonsils, and swollen lymph nodes. If left untreated, StrepThroat can progress to ScarletFever.
-fun StrepThroat : Ind BacterialDisease ;
-
-
--- The Bacterium that causes strep throat, scarlet fever, and necrotizing faciitis (flesh_eating bacteria).
-fun StreptococcusA : Class ;
-fun StreptococcusA_BacterialAgent : SubClass StreptococcusA BacterialAgent ;
-
-
--- A kind of mustard gas. Also known as Yperite and HD. This is regarded b some as the most effective BlisterAgent because it is persistent.
-fun SulphurMustardGas : Class ;
-fun SulphurMustardGas_MustardGas : SubClass SulphurMustardGas MustardGas ;
-
-
--- A Micotoxin that is found in grains and products made from grains. Symptoms include diarrhea, necrotic lesions, and hemorrhaging.
-fun T2Toxin : Class ;
-fun T2Toxin_Mycotoxin : SubClass T2Toxin Mycotoxin ;
-
-
--- Also known as GA, one of the G_series nerve agents. It is about half as toxic as Sarin, but it is more irritating to the eyes than Sarin.
-fun Tabun : Class ;
-fun Tabun_GSeriesNerveAgent : SubClass Tabun GSeriesNerveAgent ;
-
-
--- Also known as lockjaw, a BacterialDisease that affects the nervous system. A subject is infected with the disease by a puncture of the skin that becomes infected with the ClostridiumTetani bacterium. Symptoms of the disease include muscular stiffness (especially in the jaw and neck), difficulty swallowing, spasms, sweating, and fever.
-fun Tetanus : Ind (both BacterialDisease VaccinatableDisease) ;
-
-
--- A Toxin produced by the pufferfish and several other (widely varying) species. The initial symptoms include numbness in the lips and tongue, which spreads throughout the body. The next phase of the poisoning is paralysis, which again spreads throughout the body.
-fun Tetrodotoxin : Class ;
-fun Tetrodotoxin_BodySubstanceCompoundSubstanceToxin : SubClass Tetrodotoxin (both BodySubstance (both CompoundSubstance Toxin));
-
-
--- Any of various forms of encephalitis that are carried by ticks. The diseases have three phases. The first consists of flu_like symptoms, the second is asymptomatic, and the third involves the central nervous system.
-fun TickBorneEncephalitis : Class ;
-fun TickBorneEncephalitis_VaccinatableDiseaseViralDisease : SubClass TickBorneEncephalitis (both VaccinatableDisease ViralDisease);
-
-
--- Any Virus whose host is a tick and which carries an instance of TickBorneEncephalitis.
-fun TickBorneEncephalitisVirus : Class ;
-fun TickBorneEncephalitisVirus_LifeThreateningAgentViralAgent : SubClass TickBorneEncephalitisVirus (both LifeThreateningAgent ViralAgent);
-
-
--- An Antibiotic that is administered topically, e.g. Bacitracin.
-fun TopicalAntibiotic : Class ;
-fun TopicalAntibiotic_Antibiotic : SubClass TopicalAntibiotic Antibiotic ;
-
-
--- The Class of Organisms which are poisonous to other Organisms.
-fun ToxicOrganism : Class ;
-fun ToxicOrganism_BiologicalAgentOrganism : SubClass ToxicOrganism (both BiologicalAgent Organism);
-
-
--- BiologicalAgents that are a toxic BiologicallyActiveSubstance produced by an Organism or that are the synthetic analogue of a toxic BiologicallyActiveSubstance produced by an Organism.
-fun Toxin : Class ;
-fun Toxin_BiologicalAgentBiologicallyActiveSubstance : SubClass Toxin (both BiologicalAgent BiologicallyActiveSubstance);
-
-
--- A disease associated with fever, chills, coughing and Tularemia skin lesions (ulcers up to an inch wide).
-fun Tularemia : Ind BacterialDisease ;
-
-
--- A life_threatening disease that is caused by SalmonellaTyphi.
-fun TyphoidFever : Class ;
-fun TyphoidFever_DiseaseOrSyndrome : SubClass TyphoidFever DiseaseOrSyndrome ;
-
-
--- More advanced sort of NerveAgent (developed in the 1950's). This subclass of NerveAgents tends to be more persistent and toxic than GSeriesNerveAgents, which were developed earlier. VSeriesNerveAgents include VE, VG, VM, VS, and VX.
-fun VSeriesNerveAgent : Class ;
-fun VSeriesNerveAgent_NerveAgent : SubClass VSeriesNerveAgent NerveAgent ;
-
-
--- One of the V_series nerve agents.
-fun VX : Class ;
-fun VX_VSeriesNerveAgent : SubClass VX VSeriesNerveAgent ;
-
-
--- A disease for which there is an effective vaccine for Humans.
-fun VaccinatableDisease : Class ;
-fun VaccinatableDisease_InfectiousDisease : SubClass VaccinatableDisease InfectiousDisease ;
-
-
--- A Virus that causes Smallpox. Also known as the smallpox virus.
-fun VariolaMajor : Class ;
-fun VariolaMajor_ViralAgent : SubClass VariolaMajor ViralAgent ;
-
-
--- A Virus that causes Smallpox. Also known as Alastrim.
-fun VariolaMinor : Class ;
-fun VariolaMinor_ViralAgent : SubClass VariolaMinor ViralAgent ;
-
-
--- Also known as Venezuelan equine encephalomyelitis. Caused by any one of eight distinct Viruses. Symptoms of the disease include severe headache, high fever (up to 105 degrees), sensitivity to light (photophobia), nausea, coughing, and diarrhea. The disease results in central nervous system infection in 1 of 25 children.
-fun VenezuelanEquineEncephalitis : Class ;
-fun VenezuelanEquineEncephalitis_VaccinatableDiseaseViralDisease : SubClass VenezuelanEquineEncephalitis (both VaccinatableDisease ViralDisease);
-
-
--- The Virus that causes VenezuelanEquineEncephalitis.
-fun VenezuelanEquineEncephalitisVirus : Class ;
-fun VenezuelanEquineEncephalitisVirus_ViralAgent : SubClass VenezuelanEquineEncephalitisVirus ViralAgent ;
-
-
--- Symptoms of the disease are flu_like in the initial stages. As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
-fun VenezuelanHemorrhagicFever : Ind HemorrhagicFever ;
-
-
--- The Bacterium that is responsible for Cholera.
-fun VibrioCholera : Class ;
-fun VibrioCholera_BacterialAgent : SubClass VibrioCholera BacterialAgent ;
-
-
--- BiologicalAgents that are also a Virus.
-fun ViralAgent : Class ;
-fun ViralAgent_ToxicOrganismVirus : SubClass ViralAgent (both ToxicOrganism Virus);
-
-
--- A highly lethal, weaponized form of BacillusAnthracis developed by the United States government.
-fun Vollum1B : Class ;
-fun Vollum1B_AerosolizedBacillusAnthracis : SubClass Vollum1B AerosolizedBacillusAnthracis ;
-
-
--- Facilities where instances of WeaponOfMassDestruction are built.
-fun WMDWeaponsProductionFacility : Class ;
-fun WMDWeaponsProductionFacility_StationaryArtifact : SubClass WMDWeaponsProductionFacility StationaryArtifact ;
-
-
--- Facilities where research on instances of WeaponOfMassDestruction is performed.
-fun WMDWeaponsResearchFacility : Class ;
-fun WMDWeaponsResearchFacility_StationaryArtifact : SubClass WMDWeaponsResearchFacility StationaryArtifact ;
-
-
--- A flu_like disease that is caused by the WestNileVirus. The disease is generally not life_threatening. However, it can be very serious if it progresses to West Nile Encephalitis, West Nile Meningitis or West Nile Meningoencephalitis, all of which are inflammations of the brain and/or spinal cord.
-fun WestNileFever : Ind ViralDisease ;
-
-
--- A flavivirus that causes WestNileFever.
-fun WestNileVirus : Class ;
-fun WestNileVirus_ViralAgent : SubClass WestNileVirus ViralAgent ;
-
-
--- A Virus that can result in chills, fever, stomach bleeding, and YellowSkin.
-fun YellowFeverVirus : Class ;
-fun YellowFeverVirus_ViralAgent : SubClass YellowFeverVirus ViralAgent ;
-
-
--- Is caused by liver failure, which results in an accumulation of bile. It is caused by YellowFeverVirus.
-fun YellowSkin : Ind ViralDisease ;
-
-
--- The Bacterium that causes Plague.
-fun YersiniaPestis : Class ;
-fun YersiniaPestis_BacterialAgentLifeThreateningAgent : SubClass YersiniaPestis (both BacterialAgent LifeThreateningAgent);
-
-
--- Causes a disease whose symptoms include diarrhea, fever, headache, skin ulcers, and post_infectious arthritis.
-fun YersiniaPseudotuberculosis : Class ;
-fun YersiniaPseudotuberculosis_BacterialAgent : SubClass YersiniaPseudotuberculosis BacterialAgent ;
-
-
--- (biochemicalAgentAntidote ?AGENT ?SUBSTANCE ?PROCESS) means that the BiologicallyActiveSubstance ?SUBSTANCE has been shown to be effective in treating someone who has been exposed to the BiochemicalAgent ?AGENT when the ?SUBSTANCE is administered via the Process ?PROCESS.
-fun biochemicalAgentAntidote: El BiochemicalAgent -> Desc BiologicallyActiveSubstance -> Desc Process -> Formula ;
-
-
--- (biochemicalAgentDelivery ?AGENT ?PROCESS) means that the Process ?PROCESS is capable of infecting an organism with the BiochemicalAgent ?AGENT when the organism is the experiencer and the ?AGENT the patient of an instance of ?PROCESS.
-fun biochemicalAgentDelivery: Desc BiochemicalAgent -> Desc Process -> Formula ;
-
-
--- Relates a subclass of BiochemicalAgent to a DiseaseOrSyndrome that is caused by or often associated with the BiochemicalAgent.
-fun biochemicalAgentSyndrome: Desc BiochemicalAgent -> El DiseaseOrSyndrome -> Formula ;
-
-
--- (biologicalAgentCarrier ?AGENT ?ORGANISM) means that the subclass of Organism ?ORGANISM is a carrier of the subclass of BiologicalAgent ?AGENT.
-fun biologicalAgentCarrier: Desc BiologicalAgent -> Desc Organism -> Formula ;
-
-
--- A predicate that specifies the time frame for the incubation of a DiseaseOrSyndrome. (diseaseIncubation ?DISEASE ?TIME1 ?TIME2) means that the DiseaseOrSyndrome ?DISEASE will appear between ?TIME1 and ?TIME2 after the subject has been infected with the BiologicalAgent causing ?DISEASE.
-fun diseaseIncubation: El DiseaseOrSyndrome -> Desc TimeDuration -> Desc TimeDuration -> Formula ;
-
-
--- (diseaseMortality ?DISEASE ?NUMBER) means that DiseaseOrSyndrome ?DISEASE has a Mortality rate of ?NUMBER.
-fun diseaseMortality : El DiseaseOrSyndrome -> El RealNumber -> Formula ;
-
-
---  (diseaseSymptom ?DISEASE ?SYMPTOM) means that DiseaseOrSyndrome ?DISEASE is often associated with the DiseaseOrSyndrome ?SYMPTOM, i.e. an Organism which suffers from ?DISEASE is more likely to suffer from ?SYMPTOM than one which does not.
-fun diseaseSymptom : El DiseaseOrSyndrome -> El DiseaseOrSyndrome -> Formula ;
-
-
--- (diseaseTreatment ?DISEASE ?SUBSTANCE ?PROCESS) means that the BiologicallyActiveSubstance ?SUBSTANCE is effective in the treatment of the DiseaseOrSyndrome ?DISEASE when administered via the Process ?PROCESS, i.e. it has been demonstrated (in a significant sample of patients) to cure the ?DISEASE or at least reduce the severity of symptoms associated with the ?DISEASE.
-fun diseaseTreatment: El DiseaseOrSyndrome -> Desc BiologicallyActiveSubstance -> Desc Process -> Formula ;
-
-
--- (effectiveDose ?AGENT ?QUANTITY) means that ?QUANTITY is the effective dose, or ED50, for the BiochemicalAgent ?AGENT. This is the dose that would incapacitate 50% of the exposed human population. Note that ?QUANTITY is generally expressed in micrograms per kilogram (mcg/kg).
-fun effectiveDose: Desc BiochemicalAgent -> El FunctionQuantity -> Formula ;
-
-
--- (lethalDose ?AGENT ?QUANTITY) means that ?QUANTITY is the lethal dose, or LD50, for the BiochemicalAgent ?AGENT. This is the dose that would result in death for 50% of the exposed human population. Note that ?QUANTITY is generally expressed in micrograms per kilogram (mcg/kg).
-fun lethalDose: Desc BiochemicalAgent -> El FunctionQuantity -> Formula ;
-
-
--- (secretesToxin ?ORGANISM ?TOXIN) means that the subclass of Organism ?ORGANISM produces the subclass of Toxin ?TOXIN.
-fun secretesToxin: Desc Organism -> Desc Toxin -> Formula ;
-
-
--- A predicate that is used to specify a side effect of a substance used in a medical treatment. (sideEffect ?SUBSTANCE ?SYNDROME) means that the BiologicallyActiveSubstance ?SUBSTANCE has the side effect ?SYNDROME.
-fun sideEffect : El BiologicallyActiveSubstance -> El DiseaseOrSyndrome -> Formula ;
+abstract WMD = MidLevelOntology ** {
+
+  -- An extremely toxic protein found in the seeds of the rosary pea. Its mechanism, symptoms, 
+  -- and treatment are very similar to those of RicinToxin. 
+  -- However, AbrinToxin is roughly 75 times more toxic than RicinToxin.
+  fun AbrinToxin : Class ;
+  fun AbrinToxin_Class : SubClass AbrinToxin (both Protein Toxin);
+
+  -- A BiochemicalAgent that has been divided into particles so minute that
+  -- they can be easily dispersed in the air and inhaled by Humans or Animals. 
+  -- AerosolizedAgents tend to be more lethal and to affect a larger area.
+  fun AerosolizedAgent : Class ;
+  fun AerosolizedAgent_Class : SubClass AerosolizedAgent BiochemicalAgent ;
+
+  -- Also known as weaponized anthrax. These are spores of BacillusAnthracis that 
+  -- have been separated to the point that they can be dispersed in the air and 
+  -- easily inhaled by crowds.
+  fun AerosolizedBacillusAnthracis : Class ;
+  fun AerosolizedBacillusAnthracis_Class : SubClass AerosolizedBacillusAnthracis (both AerosolizedAgent BacillusAnthracis);
+
+  -- The disease has rarely been observed in humans, 
+  -- but it can cause severe damage to the liver, 
+  -- including cirrhosis and liver cancer, in a large number of animal species.
+  fun Aflatoxicosis : Ind LifeThreateningDisease ;
+
+  -- Toxins produced by fungi of the strains 
+  -- Aspergillus Flavus and Aspergillus Parasiticus. 
+  -- There are four varieties of Aflatoxin, viz. B1, B2, G1, and G2. 
+  -- B1 is most common and most toxic.
+  fun Aflatoxin : Class ;
+  fun Aflatoxin_Class : SubClass Aflatoxin Mycotoxin ;
+
+  -- The disease caused by BacillusAnthracis. 
+  -- Victims of the disease may experience a brief, apparent recovery before death.
+  fun Anthrax : Ind BacterialDisease ;
+
+  -- A disease that attacks the immune system and that is caused by the HIVVirus. 
+  -- Patients are usually infected through blood or semen.
+  fun AquiredImmunoDeficiencySyndrome : Class ;
+  fun AquiredImmunoDeficiencySyndrome_Class : SubClass AquiredImmunoDeficiencySyndrome DiseaseOrSyndrome ;
+
+  -- Symptoms of the disease are flu_like in the initial stages. 
+  -- As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
+  fun ArgentinianHemorrhagicFever : Ind HemorrhagicFever ;
+
+  -- A very toxic form of arsenic that is 2 and a half times denser than air.
+  -- Victims who die after exposure to Arsine generally die from renal failure.
+  fun Arsine : Class ;
+  fun Arsine_Class : SubClass Arsine BloodAgent ;
+
+  -- An anticholinergic agent.
+  fun Atropine : Class ;
+  fun Atropine_Class : SubClass Atropine BiologicallyActiveSubstance ;
+
+  -- Stockpiled for a time by both NATO and the Warsaw Pact countries, 
+  -- BZGas is a psychoactive agent that is heaver than air and
+  -- reputedly ten times more powerful than LSD. 
+  -- Effects of the gas are not well understood, but they include vomiting, 
+  -- lethargy, loss of motor co_ordination, and cognitive incapacity.
+  fun BZGas : Class ;
+  fun BZGas_Class : SubClass BZGas IncapacitatingAgent ;
+
+  -- The Bacterium which causes the disease Anthrax. 
+  -- Humans may become infected with Anthrax via contamination
+  -- of a wound or by inhaling the Bacterium. When it is inhaled, 
+  -- the disease is often fatal if not treated early (see InhalationalAnthrax).
+  fun BacillusAnthracis : Class ;
+  fun BacillusAnthracis_Class : SubClass BacillusAnthracis BacterialAgent ;
+
+  -- A Bacterium that is closely related to and often found near BacillusAnthracis,
+  -- the Bacterium that causes Anthrax. BacillusCereus causes two forms of food poisoning,
+  -- one characterized by diarrhea and the other by vomiting. In most cases the disease is not
+  -- life_threatening.
+  fun BacillusCereus : Class ;
+  fun BacillusCereus_Class : SubClass BacillusCereus BacterialAgent ;
+
+  -- A common topical antibiotic.
+  fun Bacitracin : Class ;
+  fun Bacitracin_Class : SubClass Bacitracin TopicalAntibiotic ;
+
+  -- BiologicalAgents that are instances of Bacterium.
+  fun BacterialAgent : Class ;
+  fun BacterialAgent_Class : SubClass BacterialAgent (both Bacterium ToxicOrganism);
+
+  -- A Toxin produced by some species of Frogs.
+  fun Batrachotoxin : Class ;
+  fun Batrachotoxin_Class : SubClass Batrachotoxin (both BodySubstance Toxin);
+
+  -- A BiologicalAgent or a ChemicalAgent.
+  fun BiochemicalAgent : Class ;
+  fun BiochemicalAgent_Class : SubClass BiochemicalAgent BiologicallyActiveSubstance ;
+
+  -- Attacks in which a BiochemicalWeapon is used against an Organism.
+  fun BiochemicalAttack : Class ;
+  fun BiochemicalAttack_Class : SubClass BiochemicalAttack Attack ;
+
+  -- A WeaponOfMassDestruction that is either a BiologicalWeapon or a ChemicalWeapon,
+  -- i.e. not a RadioactiveWeapon.
+  fun BiochemicalWeapon : Class ;
+  fun BiochemicalWeapon_Class : SubClass BiochemicalWeapon WeaponOfMassDestruction ;
+
+  -- A naturally occurring Substance, or a synthetic analogue of 
+  -- such a substance or an Organism that is capable of 
+  -- inflicting severe harm on other Organisms. 
+  -- All BiologicalWeapons contain a BiologicalAgent.
+  fun BiologicalAgent : Class ;
+  fun BiologicalAgent_Class : SubClass BiologicalAgent BiochemicalAgent ;
+
+  -- Weapons which contain a sample of ToxicOrganism or a BiologicallyActiveSubstance 
+  -- that is produced by a ToxicOrganism (or a synthetic analogue of the latter).
+  fun BiologicalWeapon : Class ;
+  fun BiologicalWeapon_Class : SubClass BiologicalWeapon BiochemicalWeapon ;
+
+  -- ChemicalAgents that affect eyes, lungs, and skin. 
+  -- BlisterAgents are so named because they cause blistering of the skin. 
+  -- They may also cause blindness and respiratory damage.
+  fun BlisterAgent : Class ;
+  fun BlisterAgent_Class : SubClass BlisterAgent ChemicalAgent ;
+
+  -- A CompoundSubstance that prevents the normal use of oxygen by bodily tissues. 
+  -- BloodAgents are highly volatile and disperse easily in the open air.
+  fun BloodAgent : Class ;
+  fun BloodAgent_Class : SubClass BloodAgent ChemicalAgent ;
+
+  -- Symptoms of the disease are flu_like in the initial stages. 
+  -- As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
+  fun BolivianHemorrhagicFever : Ind HemorrhagicFever ;
+
+  -- The Bacterium that causes Pertussis.
+  fun BordetellaPertussis : Class ;
+  fun BordetellaPertussis_Class : SubClass BordetellaPertussis BacterialAgent ;
+
+  -- A Toxin produced by the bacterium ClostridiumBotulinum. It paralyzes muscles if ingested, and one billionth of a pound is sufficient to cause death.
+  fun BotulinumToxin : Class ;
+  fun BotulinumToxin_Class : SubClass BotulinumToxin (both BodySubstance (both LifeThreateningAgent Toxin));
+
+  -- A paralytic disease caused by BotulinumToxin, 
+  -- a Toxin produced by the bacterium ClostridiumBotulinum.
+  fun Botulism : Ind (both BacterialDisease (both LifeThreateningDisease VaccinatableDisease)) ;
+
+  -- Symptoms of the disease are flu_like in the initial stages. 
+  -- As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
+  fun BrazilianHemorrhagicFever : Ind HemorrhagicFever ;
+
+  -- The Bacterium which is responsible for the disease Brucellosis. 
+  -- This class covers Brucella Abortus (which infects humans and cattle), 
+  -- Brucella Melitensis (which infects sheep, goats, and humans), 
+  -- and Brucella Suis (which infects pigs).
+  fun BrucellaBacterium : Class ;
+  fun BrucellaBacterium_Class : SubClass BrucellaBacterium BacterialAgent ;
+
+  -- Infectious disease caused by BrucellaBacterium. 
+  -- It is also known as undulant fever and malta fever, 
+  -- depending on the strain of BrucellaBacterium that is reponsible for the infection.
+  fun Brucellosis : Ind BacterialDisease ;
+
+  -- A variant of the Plague which results in large swellings, called buboes.
+  fun BubonicPlague : Ind (both BacterialDisease VaccinatableDisease) ;
+
+  -- The Bacterium that causes the disease Glanders. 
+  -- It is transmitted to humans by direct contact with infected animals. 
+  -- The bacteria enter the body through the skin and the mucosal surfaces of the eyes and nose.
+  fun BurkholderiaMallei : Class ;
+  fun BurkholderiaMallei_Class : SubClass BurkholderiaMallei BacterialAgent ;
+
+  -- Formerly known as Pseudomonas Pseudomallei, this is the Bacterium that causes Melioidosis.
+  fun BurkholderiaPseudomallei : Class ;
+  fun BurkholderiaPseudomallei_Class : SubClass BurkholderiaPseudomallei BacterialAgent ;
+
+  fun CSGas : Class ;
+  fun CSGas_Class : SubClass CSGas IncapacitatingAgent ;
+
+  -- Synthetic compounds that are not an analogue of anything occurring naturally
+  -- and that can result in serious burns, paralysis, and death to Organisms.
+  fun ChemicalAgent : Class ;
+  fun ChemicalAgent_Class : SubClass ChemicalAgent (both BiochemicalAgent (both BiologicallyActiveSubstance CompoundSubstance));
+
+  -- Weapons that damage or destroy Organisms by means of a ChemicalAgent.
+  fun ChemicalWeapon : Class ;
+  fun ChemicalWeapon_Class : SubClass ChemicalWeapon BiochemicalWeapon ;
+
+  -- The Bacterium that causes Psittacosis.
+  fun ChlamydiaPsittaci : Class ;
+  fun ChlamydiaPsittaci_Class : SubClass ChlamydiaPsittaci BacterialAgent ;
+
+  -- A poisonous gas.
+  fun ChlorineGas : Class ;
+  fun ChlorineGas_Class : SubClass ChlorineGas ChokingAgent ;
+
+  -- Poisonous gas which has effects similar to tear gas. 
+  -- If ingested, the gas causes gastroenteritis.
+  fun Chloropicrin : Class ;
+  fun Chloropicrin_Class : SubClass Chloropicrin ChokingAgent ;
+
+  -- ChemicalAgents designed to cause the lungs to fill with fluid, 
+  -- which can result in the victim choking to death. 
+  -- ChokingAgents are heavy gases that are less effective than
+  -- other ChemicalAgents because they can be easily dissipated by a slight wind.
+  fun ChokingAgent : Class ;
+  fun ChokingAgent_Class : SubClass ChokingAgent ChemicalAgent ;
+
+  -- A diarrheal disease that is caused by a Toxin secreted by the Bacterium VibrioCholera. 
+  -- Death may result from severe dehydration caused by the disease. 
+  -- There is little if any fever and abdominal pain with this illness.
+  fun Cholera : Ind (both BacterialDisease (both VaccinatableDisease LifeThreateningDisease)) ;
+
+  -- An OralAntibiotic that is often used to prevent complications from 
+  -- AquiredImmunoDeficiencySyndrome. Recommended for prevention of inhalational
+  -- Anthrax in subjects who may have been exposed to aeresolized BacillusAnthracis.
+  fun Ciprofloxacin : Class ;
+  fun Ciprofloxacin_Class : SubClass Ciprofloxacin OralAntibiotic ;
+
+  -- The Bacterium that produces BotulinumToxin.
+  fun ClostridiumBotulinum : Class ;
+  fun ClostridiumBotulinum_Class : SubClass ClostridiumBotulinum BacterialAgent ;
+
+  -- Bacterium often found in the intestines of Animals. 
+  -- Ingesting this Bacterium can result in Perfringens food poisoning, 
+  -- which can attack internal organs and lead to gangrene.
+  fun ClostridiumPerfringens : Class ;
+  fun ClostridiumPerfringens_Class : SubClass ClostridiumPerfringens BacterialAgent ;
+
+  -- The Bacterium that causes the disease Tetanus.
+  fun ClostridiumTetani : Class ;
+  fun ClostridiumTetani_Class : SubClass ClostridiumTetani BacterialAgent ;
+
+  -- A recently discovered Fungus that is related to 
+  -- CoccidioidesImmitis and that also causes RiftValleyFever.
+  fun CoccidiodesPosadasii : Class ;
+  fun CoccidiodesPosadasii_Class : SubClass CoccidiodesPosadasii (both FungalAgent LifeThreateningAgent);
+
+  -- A Fungus that causes RiftValleyFever, 
+  -- an illness whose symptoms include fever, chills, 
+  -- and coughing and which may result in death.
+  fun CoccidioidesImmitis : Class ;
+  fun CoccidioidesImmitis_Class : SubClass CoccidioidesImmitis (both FungalAgent LifeThreateningAgent);
+
+  -- A class of neurotoxins that are produced by the Pacific cone snails. 
+  -- The lethality of these toxins varies widely, and it would be impractical to
+  -- manufacture them on a large scale.
+  fun Conotoxin : Class ;
+  fun Conotoxin_Class : SubClass Conotoxin (both BodySubstance (both CompoundSubstance Toxin));
+
+  -- The Bacterium that secretes a Toxin that causes Diphtheria.
+  fun CorynebacteriumDiphtheriae : Class ;
+  fun CorynebacteriumDiphtheriae_Class : SubClass CorynebacteriumDiphtheriae BacterialAgent ;
+
+  -- The Bacterium that causes QFever.
+  fun CoxiellaBurnetii : Class ;
+  fun CoxiellaBurnetii_Class : SubClass CoxiellaBurnetii RickettsialAgent ;
+
+  -- A widespread disease which was initially identified in 
+  -- the Crimea and the Congo, which accounts for its name. 
+  -- The disease has a high mortality rate for humans, 
+  -- but infection of humans occurs infrequently.
+  fun CrimeanCongoHemorrhagicFever : Ind (both HemorrhagicFever LifeThreateningDisease) ;
+
+  -- The Virus that causes CrimeanCongoHemorrhagicFever.
+  fun CrimeanCongoHemorrhagicFeverVirus : Class ;
+  fun CrimeanCongoHemorrhagicFeverVirus_Class : SubClass CrimeanCongoHemorrhagicFeverVirus ViralAgent ;
+
+  -- Used in mining and metalurgy, it is very similar to HydrogenCyanide. 
+  -- However, it is less volatile than HydrogenCyanide, and its effects on the eyes, 
+  -- respiratory tract, and lungs is similar to Phosgene and ChorineGas.
+  fun CyanogenChloride : Class ;
+  fun CyanogenChloride_Class : SubClass CyanogenChloride BloodAgent ;
+
+  -- Integrating a WeaponOfMassDestruction with a conventional weapon, 
+  -- so that the former can be delivered to its target.
+  fun DeliveringWeaponOfMassDestruction : Class ;
+  fun DeliveringWeaponOfMassDestruction_Class : SubClass DeliveringWeaponOfMassDestruction Making ;
+
+  -- The less serious disease caused by the DengueFeverVirus. 
+  -- Symptoms include fever and severe headache.
+  fun DengueFever : Ind ViralDisease ;
+
+  -- Any of four related but distinct virus serotypes that are carried by 
+  -- the Aedes Aegypti mosquito and that can cause DengueFever and DengueHemorrhagicFever.
+  fun DengueFeverVirus : Class ;
+  fun DengueFeverVirus_Class : SubClass DengueFeverVirus ViralAgent ;
+
+  -- The more serious disease caused by the & %DengueFeverVirus. 
+  -- Symptoms include bleeding from the nose, mouth, and gums, and 
+  -- excessive thirst and difficulty breathing.
+  fun DengueHemorrhagicFever : Ind (both HemorrhagicFever LifeThreateningDisease) ;
+
+  -- Positioning a chemical, biological or radioactive weapon for 
+  -- the purpose of bringing about harm of some kind.
+  fun DeployingWeaponOfMassDestruction : Class ;
+  fun DeployingWeaponOfMassDestruction_Class : SubClass DeployingWeaponOfMassDestruction (both IntentionalProcess Putting);
+
+  -- Making instances of WeaponOfMassDestruction.
+  fun DevelopingWeaponOfMassDestruction : Class ;
+  fun DevelopingWeaponOfMassDestruction_Class : SubClass DevelopingWeaponOfMassDestruction Making ;
+
+  -- A Micotoxin that is found in grains and products made from grains. 
+  -- Symptoms include diarrhea, necrotic lesions, and hemorrhaging.
+  fun Diacetoxyscirpenol : Class ;
+  fun Diacetoxyscirpenol_Class : SubClass Diacetoxyscirpenol Mycotoxin ;
+
+  -- A chelating agent often used to treat Lewisite, as well as Lead Poisoning.
+  fun Dimercaprol : Class ;
+  fun Dimercaprol_Class : SubClass Dimercaprol BiologicallyActiveSubstance ;
+
+  -- A poisonous gas that irritates the lungs and that is similar to Phosgene.
+  fun Diphosgene : Class ;
+  fun Diphosgene_Class : SubClass Diphosgene ChokingAgent ;
+
+  -- The disease can infect almost any mucous membrane. It causes fever, chills, headache, and nausea. 
+  -- In severe cases it may affect heart rhythm and motor coordination.
+  fun Diphtheria : Ind (both BacterialDisease LifeThreateningDisease) ;
+
+  -- Dismantling a Weapon of Mass Destruction, i.e. destroying the weapon or removing it from active deployment.
+  fun DismantlingWeaponOfMassDestruction : Class ;
+  fun DismantlingWeaponOfMassDestruction_Class : SubClass DismantlingWeaponOfMassDestruction IntentionalProcess ;
+
+  -- An OralAntibiotic that is used to treat a wide variety of BacterialDiseases, 
+  -- including traveler's diarrhea. Recommended for prevention of inhalational Anthrax 
+  -- in subjects who may have been exposed to aeresolized BacillusAnthracis.
+  fun Doxycycline : Class ;
+  fun Doxycycline_Class : SubClass Doxycycline OralAntibiotic ;
+
+  -- In mile cases, symptoms are flu_like. In more severe cases, 
+  -- the disease may result in encephalitis, coma, and death.
+  fun EasternEquineEncephalitis : Ind (both ViralDisease LifeThreateningDisease) ;
+
+  -- The Virus that causes EasternEquineEncephalitis. 
+  -- Mosquitoes carry this virus, which is then transmitted to humans, when the insects bite them.
+  fun EasternEquineEncephalitisVirus : Class ;
+  fun EasternEquineEncephalitisVirus_Class : SubClass EasternEquineEncephalitisVirus ViralAgent ;
+
+  -- A very serious HemorrhagicFever, which often results in death.
+  fun EbolaHemorrhagicFever : Ind HemorrhagicFever ;
+
+  -- A Virus that causes a form of hemorrhagic fever.
+  fun EbolaVirus : Class ;
+  fun EbolaVirus_Class : SubClass EbolaVirus ViralAgent ;
+
+  -- A Toxin produced by the bacterium ClostridiumPerfringens 
+  -- that causes a mild form of food poisoning that lasts one to two days.
+  fun EpsilonToxin : Class ;
+  fun EpsilonToxin_Class : SubClass EpsilonToxin (both BodySubstance Toxin);
+
+  -- One of hundreds of strains of the Escherichia Coli Bacterium. 
+  -- This strain lives in the intestines of healthy cattle, 
+  -- but it can cause severe illness when ingested by humans.
+  fun EscherichiaColi0157H7 : Class ;
+  fun EscherichiaColi0157H7_Class : SubClass EscherichiaColi0157H7 BacterialAgent ;
+
+  -- A Virus that that is responsible for a hemorrhagic fever found in South America.
+  fun FlexalVirus : Class ;
+  fun FlexalVirus_Class : SubClass FlexalVirus ViralAgent ;
+
+  -- A Virus that is smaller than YellowFeverVirus.
+  fun FootAndMouthVirus : Class ;
+  fun FootAndMouthVirus_Class : SubClass FootAndMouthVirus ViralAgent ;
+
+  -- The Bacterium that causes the disease Tularemia. Also known as Pasturella Tularensis.
+  -- The Bacterium has two strains, Jellison type A (F. tularensis biovar tularensis) and type B 
+  -- strains (F tularensis biovar palaearctica), and it is infectious with a dose as small as 
+  -- 50 cells per milliliter.
+  fun FrancisellaTularensis : Class ;
+  fun FrancisellaTularensis_Class : SubClass FrancisellaTularensis BacterialAgent ;
+
+  -- Any BiologicalAgent that is also a Fungus.
+  fun FungalAgent : Class ;
+  fun FungalAgent_Class : SubClass FungalAgent (both Fungus ToxicOrganism);
+
+  -- One of the G_series nerve agents.
+  fun GF : Class ;
+  fun GF_Class : SubClass GF GSeriesNerveAgent ;
+
+  -- Earliest sort of NerveAgent (developed in the 1930's).
+  -- This subclass of NerveAgents tends to be less persistent, 
+  -- more volatile, and less toxic than VSeriesNerveAgents, 
+  -- which were developed later. GSeriesNerveAgents include Tabun, Sarin, and Soman.
+  fun GSeriesNerveAgent : Class ;
+  fun GSeriesNerveAgent_Class : SubClass GSeriesNerveAgent NerveAgent ;
+
+  -- Inflammation of the gastrointestinal tract, i.e. 
+  -- the stomach and small and large intestines. 
+  -- The symptoms include diarrhea, vomiting, and abdominal pain.
+  fun Gastroenteritis : Ind DiseaseOrSyndrome ;
+
+  -- The class of Organisms that are not found originally in nature, but are produced 
+  -- in a laboratory by manipulating the genes of naturally occurring organisms.
+  fun GeneticallyEngineeredOrganism : Class ;
+  fun GeneticallyEngineeredOrganism_Class : SubClass GeneticallyEngineeredOrganism Organism ;
+
+  -- A Bacterium that causes Gastroenteritis. It is present in many streams and lakes,
+  -- and it is carried by beavers and other animals.
+  fun GiardiaLamblia : Class ;
+  fun GiardiaLamblia_Class : SubClass GiardiaLamblia BacterialAgent ;
+
+  -- A disease caused by BurkholderiaMallei. Primary symptoms of Glanders include fever,
+  -- muscle aches, chest pain, muscle tightness, and headache. Additional symptoms include 
+  -- tearing of the eyes, light sensitivity, and diarrhea. There is no vaccine for this disease.
+  fun Glanders : Ind BacterialDisease ;
+
+  -- A disease caused by the bacterium NeisseriaGonorrhoeae.
+  fun Gonorrhea : Ind BacterialDisease ;
+
+  -- The Virus that causes VenezuelanHemorrhagicFever.
+  fun GuanaritoVirus : Class ;
+  fun GuanaritoVirus_Class : SubClass GuanaritoVirus ViralAgent ;
+
+  -- The Virus that causes AquiredImmunoDeficiencySyndrome.
+  fun HIVVirus : Class ;
+  fun HIVVirus_Class : SubClass HIVVirus ViralAgent ;
+
+  -- A severe syndrome that affects multiple organs of the body. Typically, 
+  -- the vascular system is damaged, and the body's ability to regulate itself is impaired.
+  fun HemorrhagicFever : Class ;
+  fun HemorrhagicFever_Class : SubClass HemorrhagicFever ViralDisease ;
+
+  -- A Virus found in Australia and Papua New Guinea that infects humans and horses.
+  -- The natural host of the virus appears to be fruit bats. Not much is known about 
+  -- the disease caused by the HendraVirus, but it seems to begin with fever and then
+  -- progress to drowsiness and coma.
+  fun HendraVirus : Class ;
+  fun HendraVirus_Class : SubClass HendraVirus ViralAgent ;
+
+  -- A class of ViralDiseases that attack the liver.
+  fun Hepatitis : Class ;
+  fun Hepatitis_Class : SubClass Hepatitis ViralDisease ;
+
+  -- A disease that attacks the liver and causes jaundice as well as flu_like symptoms. 
+  -- There is no chronic infection with this disease, and anyone who has recovered from 
+  -- it will have life_time immunity to the disease.
+  fun HepatitisA : Ind (both Hepatitis VaccinatableDisease) ;
+
+  -- The Virus that causes HepatitisA.
+  fun HepatitisAVirus : Class ;
+  fun HepatitisAVirus_Class : SubClass HepatitisAVirus HepatitisVirus ;
+
+  -- Like other forms of hepatitis, HepatitisB attacks the liver of the victim. 
+  -- The disease may result in death from chronic liver disease.
+  fun HepatitisB : Ind (both Hepatitis (both VaccinatableDisease LifeThreateningDisease)) ;
+
+  -- The Virus that causes HepatitisB.
+  fun HepatitisBVirus : Class ;
+  fun HepatitisBVirus_Class : SubClass HepatitisBVirus HepatitisVirus ;
+
+  -- Like other forms of hepatitis, HepatitisC attacks the liver of the victim.
+  -- The disease often results in chronic infection and chronic liver disease, 
+  -- although the mortality rate of this disease is lower than that of HepatitisB. 
+  -- Most cases of HepatitisC are due to injections of illegal drugs.
+  fun HepatitisC : Ind (both Hepatitis LifeThreateningDisease) ;
+
+  -- The Virus that causes HepatitisC.
+  fun HepatitisCVirus : Class ;
+  fun HepatitisCVirus_Class : SubClass HepatitisCVirus HepatitisVirus ;
+
+  -- Viruses that cause Hepatitis.
+  fun HepatitisVirus : Class ;
+  fun HepatitisVirus_Class : SubClass HepatitisVirus ViralAgent ;
+
+  -- The disease caused by HerpesBVirus.
+  fun HerpesB : Ind (both ViralDisease LifeThreateningDisease) ;
+
+  -- A virus which is carried by Macaque monkeys and which does not harm these primates,
+  -- but which causes the very serious HerpesB disease in humans.
+  fun HerpesBVirus : Class ;
+  fun HerpesBVirus_Class : SubClass HerpesBVirus ViralAgent ;
+
+  -- A ChemicalAgent that was widely used by the Nazis in extermination camps. 
+  -- A low dose can cause headache, disorientation, and vomiting, while a high dose
+  -- can rapidly result in respiratory and/or cardiac arrest.
+  fun HydrogenCyanide : Class ;
+  fun HydrogenCyanide_Class : SubClass HydrogenCyanide BloodAgent ;
+
+  -- ChemicalAgents that are designed to cause temporary disability in victims.
+  fun IncapacitatingAgent : Class ;
+  fun IncapacitatingAgent_Class : SubClass IncapacitatingAgent ChemicalAgent ;
+
+  -- A contagious disease caused by a large number of Viruses.
+  fun Influenza : Class ;
+  fun Influenza_Class : SubClass Influenza (both VaccinatableDisease ViralDisease);
+
+  -- Almost 100% fatal if left untreated for more than 24 hours.
+  fun InhalationalAnthrax : Ind (both BacterialDisease LifeThreateningDisease) ;
+
+  -- Most people who are infected with this disease will suffer only mild symptoms.
+  -- However, in severe cases, the disease attacks the central nervous system and may result in death.
+  fun JapaneseEncephalitis : Ind (both ViralDisease (both LifeThreateningDisease VaccinatableDisease)) ;
+
+  -- The Virus that causes JapaneseEncephalitis. 
+  -- Mosquitoes in agricultural areas of Asia carry this virus, 
+  -- which is then transmitted to humans, when the insects bite them.
+  fun JapaneseEncephalitisVirus : Class ;
+  fun JapaneseEncephalitisVirus_Class : SubClass JapaneseEncephalitisVirus ViralAgent ;
+
+  -- This Virus derives its name from the Junin area of Argentina,
+  -- where occurrences have so far been restricted.
+  fun JuninVirus : Class ;
+  fun JuninVirus_Class : SubClass JuninVirus ViralAgent ;
+
+  -- A cephalosporin for treating bacterial infections.
+  fun Keflex : Class ;
+  fun Keflex_Class : SubClass Keflex OralAntibiotic ;
+
+  -- A tick_borne encephalitis that is largely restricted to the Shimoga and Kanara district of Karnataka, India.
+  fun KyasanurForestDisease : Ind TickBorneEncephalitis ;
+
+  -- The Virus that carries KyasanurForestDisease.
+  fun KyasanurForestDiseaseVirus : Class ;
+  fun KyasanurForestDiseaseVirus_Class : SubClass KyasanurForestDiseaseVirus TickBorneEncephalitisVirus ;
+
+  -- Encephalitis caused by the LaCrosseVirus. In its most severe cases, 
+  -- the disease may result in seizure and/or coma, but most infections are relatively mild.
+  fun LaCrosseEncephalitis : Ind ViralDisease ;
+
+  -- The Virus that causes LaCrossEncephalitis. It is carried by the 
+  -- Aedes Triseriatus mosquito, as well as various woodlands rodents.
+  fun LaCrosseVirus : Class ;
+  fun LaCrosseVirus_Class : SubClass LaCrosseVirus ViralAgent ;
+
+  -- A viral, rodent_carried disease found in West Africa. 
+  -- The symptoms of the disease are wide_ranging and can be life_threatening.
+  -- The disease can lead to permanent neurological problems, including deafness.
+  fun LassaFever : Ind (both ViralDisease LifeThreateningDisease) ;
+
+  -- The Virus that causes LassaFever.
+  fun LassaVirus : Class ;
+  fun LassaVirus_Class : SubClass LassaVirus ViralAgent ;
+
+  -- The Bacterium that causes Legionellosis, which is known as LegionnairesDisease
+  -- (when it infects the lungs) and PontiacFever (when it doesn't affect the lungs).
+  fun Legionella : Class ;
+  fun Legionella_Class : SubClass Legionella BacterialAgent ;
+
+  -- The disease caused by the Bacterium Legionella.
+  fun Legionellosis : Ind BacterialDisease ;
+
+  -- The most severe form of Legionellosis. It is characterized by pneumonia.
+  fun LegionnairesDisease : Ind (both BacterialDisease LifeThreateningDisease) ;
+
+  -- Besides being a BlisterAgent, Lewisite causes systemic poisoning. 
+  -- Its symptoms include pulmonary edema, diarrhea, reduced body temperature and blood pressure. 
+  -- When large quantities of Lewisite are inhaled, it can cause death in as little as 10 minutes.
+  fun Lewisite : Class ;
+  fun Lewisite_Class : SubClass Lewisite BlisterAgent ;
+
+  -- A BiochemicalAgent that has been observed to cause the death of Humans.
+  fun LifeThreateningAgent : Class ;
+  fun LifeThreateningAgent_Class : SubClass LifeThreateningAgent BiochemicalAgent ;
+
+  -- A DiseaseOrSyndrome that has been observed to cause the death of Humans.
+  fun LifeThreateningDisease : Class ;
+  fun LifeThreateningDisease_Class : SubClass LifeThreateningDisease DiseaseOrSyndrome ;
+
+  -- The only rickettsial disease which is capable of causing widespread human epidemics. 
+  -- The initial symptoms of the disease are flu_like, but on the fifth or sixth day of infection
+  -- a macular eruption appears on the upper trunk of the body and then spreads to the rest of the body.
+  fun LouseBorneTyphus : Ind BacterialDisease ;
+
+  -- The Virus that causes BolivianHemorrhagicFever.
+  fun MachupoVirus : Class ;
+  fun MachupoVirus_Class : SubClass MachupoVirus ViralAgent ;
+
+  -- A disease that destroys red blood cells. It is caused by a Microorganism (see MalarialPlasmodium) 
+  -- that is carried by the Anopheles Gambiae mosquito.
+  fun Malaria : Ind (both InfectiousDisease LifeThreateningDisease) ;
+
+  -- Any of four strains of Plasmodium that are known to cause Malaria.
+  fun MalarialPlasmodium : Class ;
+  fun MalarialPlasmodium_Class : SubClass MalarialPlasmodium (both BiologicalAgent Microorganism);
+
+  -- Extremely serious disease caused by the MarburgVirus. Symptoms include high fever,
+  -- myalgias, vomiting, and diarrhea. Typically involves major organs, including the central nervous system.
+  fun MarburgDisease : Ind (both ViralDisease LifeThreateningDisease) ;
+
+  -- The Virus that causes MarburgDisease.
+  fun MarburgVirus : Class ;
+  fun MarburgVirus_Class : SubClass MarburgVirus ViralAgent ;
+
+  -- Also known as Whitmore's disease, it is similar to Glanders. Unlike Glanders, however, 
+  -- the disease is found predominantly in Southeast Asia. The disease may be a localized infection or 
+  -- it may involve the bloodstream, the lungs or other organs of the body.
+  fun Melioidosis : Ind BacterialDisease ;
+
+  -- A Virus that is infectious to rabbits and may cause blindness and death in these Rodents.
+  fun Mixomatosis : Class ;
+  fun Mixomatosis_Class : SubClass Mixomatosis ViralAgent ;
+
+  -- A viral disease that is very similar to Smallpox. It is seen sporadically in parts of Africa.
+  fun Monkeypox : Ind ViralDisease ;
+
+  -- The Virus that causes Monkeypox.
+  fun MonkeypoxVirus : Class ;
+  fun MonkeypoxVirus_Class : SubClass MonkeypoxVirus ViralAgent ;
+
+  -- A BlisterAgent that was commonly used in World War I to incapacitate troops. 
+  -- It is chemically stable, persistent, and is capable of attacking the eyes, the skin, 
+  -- and the respiratory tract. There is no accepted treatment or preventive measure for MustardGas.
+  fun MustardGas : Class ;
+  fun MustardGas_Class : SubClass MustardGas BlisterAgent ;
+
+  -- The Bacterium that causes Tuberculosis.
+  fun MycobacteriumTuberculosis : Class ;
+  fun MycobacteriumTuberculosis_Class : SubClass MycobacteriumTuberculosis BacterialAgent ;
+
+  -- A Toxin that is produced by a FungalAgent.
+  fun Mycotoxin : Class ;
+  fun Mycotoxin_Class : SubClass Mycotoxin (both BodySubstance Toxin);
+
+  -- A BacterialDisease caused by StreptococcusA where the Bacterium rapidly attacks soft tissue.
+  fun NecrotizingFaciitis : Ind (both BacterialDisease LifeThreateningDisease) ;
+
+  -- The Bacterium that causes Gonorrhea.
+  fun NeisseriaGonorrhoeae : Class ;
+  fun NeisseriaGonorrhoeae_Class : SubClass NeisseriaGonorrhoeae BacterialAgent ;
+
+  -- These ChemicalAgents are easily absorbed into the mucous membranes of humans and inactivate 
+  -- the essential enzyme acetylcholinesterase, bringing about paralysis of the respiratory and central nervous systems.
+  fun NerveAgent : Class ;
+  fun NerveAgent_Class : SubClass NerveAgent ChemicalAgent ;
+
+  -- Closely related to HendraVirus. Like the HendraVirus, the natural host of NipahVirus
+  -- appears to be fruit bats. Not much is known about the disease, but its symptoms include high fever, 
+  -- muscle pain, and eventually encephalitis, convulsions, and coma.
+  fun NipahVirus : Class ;
+  fun NipahVirus_Class : SubClass NipahVirus ViralAgent ;
+
+  -- A kind of mustard gas. Also known as HN.
+  fun NitrogenMustardGas : Class ;
+  fun NitrogenMustardGas_Class : SubClass NitrogenMustardGas MustardGas ;
+
+  -- Facilities where NuclearWeapons are built.
+  fun NuclearWeaponProductionFacility : Class ;
+  fun NuclearWeaponProductionFacility_Class : SubClass NuclearWeaponProductionFacility WMDWeaponsProductionFacility ;
+
+  -- Research facilities that perform research on technology related to NuclearWeapons.
+  fun NuclearWeaponResearchFacility : Class ;
+  fun NuclearWeaponResearchFacility_Class : SubClass NuclearWeaponResearchFacility WMDWeaponsResearchFacility ;
+
+  -- An Antibiotic that is administered orally, e.g. Penicillin.
+  fun OralAntibiotic : Class ;
+  fun OralAntibiotic_Class : SubClass OralAntibiotic Antibiotic ;
+
+  -- The syndrome where some or all of an Animal's muscles cannot be moved voluntarily.
+  fun Paralysis : Ind DiseaseOrSyndrome ;
+
+  -- A very serious disease requiring immediate medical attention. There is no vaccine for this disease.
+  fun ParalyticShellfishPoisoning : Ind LifeThreateningDisease ;
+
+  -- An ingestible antibiotic which kills many kinds of bacteria.
+  fun Penicillin : Class ;
+  fun Penicillin_Class : SubClass Penicillin OralAntibiotic ;
+
+  -- The BacterialDisease caused by BordetellaPertussis. 
+  -- Its symptoms include severe coughing (hence the colloquial name of whooping cough) 
+  -- and flu-like symptoms.
+  fun Pertussis : Ind (both BacterialDisease VaccinatableDisease) ;
+
+  -- A colorless, extremely toxic gas. It is regarded as the most dangerous of the ChemicalAgents. 
+  -- Deaths resulting from exposure to this ChemicalAgent generally occur in 24 to 48 hours.
+  fun Phosgene : Class ;
+  fun Phosgene_Class : SubClass Phosgene ChokingAgent ;
+
+  -- One of the most painful and destructive chemical compounds in existence. Recovery from this ChemicalAgent requires one to three months.
+  fun PhosgeneOxime : Class ;
+  fun PhosgeneOxime_Class : SubClass PhosgeneOxime BlisterAgent ;
+
+  -- The disease caused by the Bacterium YersiniaPestis. Plague has two forms depending on
+  -- the location of the infection within the body, BubonicPlague and PneumonicPlague.
+  fun Plague : Ind (both BacterialDisease VaccinatableDisease) ;
+
+  -- One of four strains of Plasmodium that are known to cause Malaria. 
+  -- It can cause severe anemia and kidney failure or it can constrict 
+  -- small blood vessels and cause cerebral malaria.
+  fun PlasmodiumFalciparum : Class ;
+  fun PlasmodiumFalciparum_Class : SubClass PlasmodiumFalciparum MalarialPlasmodium ;
+
+  -- Also known as pulmonary plague, a variant of the Plague which attacks 
+  -- the lungs and is spread between humans by oral bodily fluids.
+  fun PneumonicPlague : Ind (both BacterialDisease VaccinatableDisease) ;
+
+  -- A flu_like illness which is caused by Legionella, but which does not involve pneumonia.
+  fun PontiacFever : Ind BacterialDisease ;
+
+  -- A serious disease caused by ChlamydiaPsittaci that affects both birds and humans. 
+  -- In humans the symptoms include fever, chills, headache, muscle aches, and a dry cough. 
+  -- The disease may give rise to pneumonia in extreme cases.
+  fun Psittacosis : Ind BacterialDisease ;
+
+  -- A substance that has been shown to protect lower primates from the lethal effects of Soman. 
+  -- Although there is no proof that it does the same for humans, it was administered to soldiers in the Gulf War.
+  fun PyridostigmineBromide : Class ;
+  fun PyridostigmineBromide_Class : SubClass PyridostigmineBromide BiologicallyActiveSubstance ;
+
+  -- A disease caused by the rickettsia CoxiellaBurnetii. Causes headache, chills, coughing, hallucinations, 
+  -- fever up to 104 degrees, facial pain, speech impairment, heart inflammation and congestive heart failure.
+  fun QFever : Ind BacterialDisease ;
+
+  -- Conducting research on the development of Weapons of Mass Destruction.
+  fun ResearchingWeaponOfMassDestruction : Class ;
+  fun ResearchingWeaponOfMassDestruction_Class : SubClass ResearchingWeaponOfMassDestruction Investigating ;
+
+  -- An extremely toxic protein found in the castor bean plant (ricinus communis). 
+  -- It is 200 times more toxic than cyanide, and it has no known antidote, and it causes vomiting, high fever, weakness, and death.
+  fun RicinToxin : Class ;
+  fun RicinToxin_Class : SubClass RicinToxin (both Protein Toxin);
+
+  -- The Bacterium that causes LouseBorneTyphus.
+  fun RickettsiaProwazekii : Class ;
+  fun RickettsiaProwazekii_Class : SubClass RickettsiaProwazekii RickettsialAgent ;
+
+  -- The Bacterium that causes RockyMountainSpottedFever.
+  fun RickettsiaRickettsii : Class ;
+  fun RickettsiaRickettsii_Class : SubClass RickettsiaRickettsii RickettsialAgent ;
+
+  -- BiologicalAgents that are rickettsial organisms, i.e. gram_negative bacteria that infect mammals and arthropods.
+  fun RickettsialAgent : Class ;
+  fun RickettsialAgent_Class : SubClass RickettsialAgent BacterialAgent ;
+
+  -- A ViralDisease that causes chills, bleeding, and stupor.
+  fun RiftValleyFever : Class ;
+  fun RiftValleyFever_Class : SubClass RiftValleyFever ViralDisease ;
+
+  -- A very serious disease that is caused RickettsiaRickettsii, which is carried by ticks. 
+  -- The most distinctive symptom of the disease is a rash of black dots.
+  fun RockyMountainSpottedFever : Ind (both BacterialDisease LifeThreateningDisease) ;
+
+  -- There are three types of Rotavirus: Group A, Group B, and Group C. They cause an acute form of gastroenteritis, known as RotavirusGastroenteritis.
+  fun Rotavirus : Class ;
+  fun Rotavirus_Class : SubClass Rotavirus ViralAgent ;
+
+  -- A disease caused by instances of Rotavirus, and characterized by vomiting, diarrhea, and fever.
+  fun RotavirusGastroenteritis : Ind ViralDisease ;
+
+  -- The Virus that causes BrazilianHemorrhagicFever.
+  fun SabiaVirus : Class ;
+  fun SabiaVirus_Class : SubClass SabiaVirus ViralAgent ;
+
+  -- In mild cases, symptoms are flu_like. In more severe cases, symptoms may include disorientation, coma, tremors, hemorrhage, and convulsions.
+  fun SaintLouisEncephalitis : Ind (both ViralDisease LifeThreateningDisease) ;
+
+  -- The Virus that causes SaintLouisEncephalitis. Mosquitoes carry this virus, 
+  -- which is then transmitted to humans, when the insects bite them.
+  fun SaintLouisEncephalitisVirus : Class ;
+  fun SaintLouisEncephalitisVirus_Class : SubClass SaintLouisEncephalitisVirus ViralAgent ;
+
+  -- Causes a less severe illness than SalmonellaTyphimurium.
+  fun SalmonellaPartyphi : Class ;
+  fun SalmonellaPartyphi_Class : SubClass SalmonellaPartyphi BacterialAgent ;
+
+  -- The Bacterium that causes TyphoidFever.
+  fun SalmonellaTyphi : Class ;
+  fun SalmonellaTyphi_Class : SubClass SalmonellaTyphi BacterialAgent ;
+
+  -- A bacterium that can cause death in young, elderly or immunodeficient people. It appears in the stool of infected people.
+  fun SalmonellaTyphimurium : Class ;
+  fun SalmonellaTyphimurium_Class : SubClass SalmonellaTyphimurium BacterialAgent ;
+
+  -- Also known as GB, one of the G_series nerve agents.
+  fun Sarin : Class ;
+  fun Sarin_Class : SubClass Sarin GSeriesNerveAgent ;
+
+  -- A class of chemically related neurotoxins that are produced by marine dinoflagellates and carried by Mollusks.
+  fun Saxitoxin : Class ;
+  fun Saxitoxin_Class : SubClass Saxitoxin (both BodySubstance (both CompoundSubstance Toxin));
+
+  -- A serious disease that may arise if StrepThroat is left untreated.
+  fun ScarletFever : Ind BacterialDisease ;
+
+  -- A Bacterium that can cause death in infected Humans.
+  fun SerratiaMarcenscens : Class ;
+  fun SerratiaMarcenscens_Class : SubClass SerratiaMarcenscens (both BacterialAgent LifeThreateningAgent);
+
+  -- The Toxin produced by the Bacterium ShigellaDysenteriae.
+  fun ShigaToxin : Class ;
+  fun ShigaToxin_Class : SubClass ShigaToxin Toxin ;
+
+  -- Causes severe dysentery (even when as little as 100 bacteria are ingested). 
+  -- This form of dysentery results in death in 10_20 percent of infections.
+  fun ShigellaDysenteriae : Class ;
+  fun ShigellaDysenteriae_Class : SubClass ShigellaDysenteriae BacterialAgent ;
+
+  -- A highly contagious and dangerous disease. It causes blood loss, 
+  -- cardiovascular collapse, secondary infections, skin pustules, 
+  -- and often leaves survivors scarred and blinded. 
+  -- Approximately 500 million people died from Smallpox in the nineteenth century. 
+  -- The disease can live on objects for several days, and it incubates for 
+  -- twelve days before showing symptoms.
+  fun Smallpox : Ind ViralDisease ;
+
+  -- Also known as GD, one of the G_series nerve agents.
+  fun Soman : Class ;
+  fun Soman_Class : SubClass Soman GSeriesNerveAgent ;
+
+  -- A common cause of food poisoning. It has been studied as a BiologicalAgent, 
+  -- because it is stable, can be converted to aerosol form, and can be lethal when inhaled.
+  fun StaphylococcalEnterotoxinB : Class ;
+  fun StaphylococcalEnterotoxinB_Class : SubClass StaphylococcalEnterotoxinB (both LifeThreateningAgent Toxin);
+
+  -- A bacterium that secretes StaphylococcalEnterotoxicB. 
+  -- It causes chills, headache, muscle pain, coughing (which may last for weeks), 
+  -- and sudden fever of up to 106 degrees (which may last for days). 
+  -- It occasionally causes nausea, vomiting, and diarrhea.
+  fun StaphyylococcusAureus : Class ;
+  fun StaphyylococcusAureus_Class : SubClass StaphyylococcusAureus BacterialAgent ;
+
+  -- Manufacturing a significant quantity of instances of a WeaponOfMassDestruction, i.e. 
+  -- the weapons are not produced at the scale of a single laboratory or a pilot program. 
+  -- These weapons may or may not be deployed (see DeployingWeaponOfMassDestruction).
+  fun StockpilingWeaponOfMassDestruction : Class ;
+  fun StockpilingWeaponOfMassDestruction_Class : SubClass StockpilingWeaponOfMassDestruction (both DevelopingWeaponOfMassDestruction Manufacture);
+
+  -- A BacterialDisease whose symptoms include a very sore throat, difficulty swallowing, high fever, white spots and/or pus on or near the tonsils, and swollen lymph nodes. If left untreated, StrepThroat can progress to ScarletFever.
+  fun StrepThroat : Ind BacterialDisease ;
+
+  -- The Bacterium that causes strep throat, scarlet fever, and necrotizing faciitis (flesh_eating bacteria).
+  fun StreptococcusA : Class ;
+  fun StreptococcusA_Class : SubClass StreptococcusA BacterialAgent ;
+
+  -- A kind of mustard gas. Also known as Yperite and HD. 
+  -- This is regarded b some as the most effective BlisterAgent because it is persistent.
+  fun SulphurMustardGas : Class ;
+  fun SulphurMustardGas_Class : SubClass SulphurMustardGas MustardGas ;
+
+  -- A Micotoxin that is found in grains and products made from grains. 
+  -- Symptoms include diarrhea, necrotic lesions, and hemorrhaging.
+  fun T2Toxin : Class ;
+  fun T2Toxin_Class : SubClass T2Toxin Mycotoxin ;
+
+  -- Also known as GA, one of the G_series nerve agents. 
+  -- It is about half as toxic as Sarin, but it is more irritating to the eyes than Sarin.
+  fun Tabun : Class ;
+  fun Tabun_Class : SubClass Tabun GSeriesNerveAgent ;
+
+  -- Also known as lockjaw, a BacterialDisease that affects the nervous system. A subject is infected with the disease by a puncture of the skin that becomes infected with the ClostridiumTetani bacterium. Symptoms of the disease include muscular stiffness (especially in the jaw and neck), difficulty swallowing, spasms, sweating, and fever.
+  fun Tetanus : Ind (both BacterialDisease VaccinatableDisease) ;
+
+  -- A Toxin produced by the pufferfish and several other (widely varying) species. 
+  -- The initial symptoms include numbness in the lips and tongue, which spreads throughout the body.
+  -- The next phase of the poisoning is paralysis, which again spreads throughout the body.
+  fun Tetrodotoxin : Class ;
+  fun Tetrodotoxin_Class : SubClass Tetrodotoxin (both BodySubstance (both CompoundSubstance Toxin));
+
+  -- Any of various forms of encephalitis that are carried by ticks. 
+  -- The diseases have three phases. The first consists of flu_like symptoms, 
+  -- the second is asymptomatic, and the third involves the central nervous system.
+  fun TickBorneEncephalitis : Class ;
+  fun TickBorneEncephalitis_Class : SubClass TickBorneEncephalitis (both VaccinatableDisease ViralDisease);
+
+  -- Any Virus whose host is a tick and which carries an instance of TickBorneEncephalitis.
+  fun TickBorneEncephalitisVirus : Class ;
+  fun TickBorneEncephalitisVirus_Class : SubClass TickBorneEncephalitisVirus (both LifeThreateningAgent ViralAgent);
+
+  -- An Antibiotic that is administered topically, e.g. Bacitracin.
+  fun TopicalAntibiotic : Class ;
+  fun TopicalAntibiotic_Class : SubClass TopicalAntibiotic Antibiotic ;
+
+  -- The Class of Organisms which are poisonous to other Organisms.
+  fun ToxicOrganism : Class ;
+  fun ToxicOrganism_Class : SubClass ToxicOrganism (both BiologicalAgent Organism);
+
+  -- BiologicalAgents that are a toxic BiologicallyActiveSubstance produced by
+  -- an Organism or that are the synthetic analogue of a toxic
+  -- BiologicallyActiveSubstance produced by an Organism.
+  fun Toxin : Class ;
+  fun Toxin_Class : SubClass Toxin (both BiologicalAgent BiologicallyActiveSubstance);
+
+  -- A disease associated with fever, chills, coughing and Tularemia skin lesions (ulcers up to an inch wide).
+  fun Tularemia : Ind BacterialDisease ;
+
+  -- A life_threatening disease that is caused by SalmonellaTyphi.
+  fun TyphoidFever : Class ;
+  fun TyphoidFever_Class : SubClass TyphoidFever DiseaseOrSyndrome ;
+
+  -- More advanced sort of NerveAgent (developed in the 1950's).
+  -- This subclass of NerveAgents tends to be more persistent and toxic than
+  -- GSeriesNerveAgents, which were developed earlier. VSeriesNerveAgents include VE, VG, VM, VS, and VX.
+  fun VSeriesNerveAgent : Class ;
+  fun VSeriesNerveAgent_Class : SubClass VSeriesNerveAgent NerveAgent ;
+
+  -- One of the V_series nerve agents.
+  fun VX : Class ;
+  fun VX_Class : SubClass VX VSeriesNerveAgent ;
+
+  -- A disease for which there is an effective vaccine for Humans.
+  fun VaccinatableDisease : Class ;
+  fun VaccinatableDisease_Class : SubClass VaccinatableDisease InfectiousDisease ;
+
+  -- A Virus that causes Smallpox. Also known as the smallpox virus.
+  fun VariolaMajor : Class ;
+  fun VariolaMajor_Class : SubClass VariolaMajor ViralAgent ;
+
+  -- A Virus that causes Smallpox. Also known as Alastrim.
+  fun VariolaMinor : Class ;
+  fun VariolaMinor_Class : SubClass VariolaMinor ViralAgent ;
+
+  -- Also known as Venezuelan equine encephalomyelitis. 
+  -- Caused by any one of eight distinct Viruses. 
+  -- Symptoms of the disease include severe headache, high fever (up to 105 degrees), 
+  -- sensitivity to light (photophobia), nausea, coughing, and diarrhea. 
+  -- The disease results in central nervous system infection in 1 of 25 children.
+  fun VenezuelanEquineEncephalitis : Class ;
+  fun VenezuelanEquineEncephalitis_Class : SubClass VenezuelanEquineEncephalitis (both VaccinatableDisease ViralDisease);
+
+  -- The Virus that causes VenezuelanEquineEncephalitis.
+  fun VenezuelanEquineEncephalitisVirus : Class ;
+  fun VenezuelanEquineEncephalitisVirus_Class : SubClass VenezuelanEquineEncephalitisVirus ViralAgent ;
+
+  -- Symptoms of the disease are flu_like in the initial stages. 
+  -- As the disease progresses, symptoms include bleeding from the nose and gums and blood spots.
+  fun VenezuelanHemorrhagicFever : Ind HemorrhagicFever ;
+
+  -- The Bacterium that is responsible for Cholera.
+  fun VibrioCholera : Class ;
+  fun VibrioCholera_Class : SubClass VibrioCholera BacterialAgent ;
+
+  -- BiologicalAgents that are also a Virus.
+  fun ViralAgent : Class ;
+  fun ViralAgent_Class : SubClass ViralAgent (both ToxicOrganism Virus);
+
+  -- A highly lethal, weaponized form of BacillusAnthracis developed by the United States government.
+  fun Vollum1B : Class ;
+  fun Vollum1B_Class : SubClass Vollum1B AerosolizedBacillusAnthracis ;
+
+  -- Facilities where instances of WeaponOfMassDestruction are built.
+  fun WMDWeaponsProductionFacility : Class ;
+  fun WMDWeaponsProductionFacility_Class : SubClass WMDWeaponsProductionFacility StationaryArtifact ;
+
+  -- Facilities where research on instances of WeaponOfMassDestruction is performed.
+  fun WMDWeaponsResearchFacility : Class ;
+  fun WMDWeaponsResearchFacility_Class : SubClass WMDWeaponsResearchFacility StationaryArtifact ;
+
+  -- A flu_like disease that is caused by the WestNileVirus. 
+  -- The disease is generally not life_threatening. 
+  -- However, it can be very serious if it progresses to West Nile Encephalitis, 
+  -- West Nile Meningitis or West Nile Meningoencephalitis, 
+  -- all of which are inflammations of the brain and/or spinal cord.
+  fun WestNileFever : Ind ViralDisease ;
+
+  -- A flavivirus that causes WestNileFever.
+  fun WestNileVirus : Class ;
+  fun WestNileVirus_Class : SubClass WestNileVirus ViralAgent ;
+
+  -- A Virus that can result in chills, fever, stomach bleeding, and YellowSkin.
+  fun YellowFeverVirus : Class ;
+  fun YellowFeverVirus_Class : SubClass YellowFeverVirus ViralAgent ;
+
+  -- Is caused by liver failure, 
+  -- which results in an accumulation of bile. It is caused by YellowFeverVirus.
+  fun YellowSkin : Ind ViralDisease ;
+
+  -- The Bacterium that causes Plague.
+  fun YersiniaPestis : Class ;
+  fun YersiniaPestis_Class : SubClass YersiniaPestis (both BacterialAgent LifeThreateningAgent);
+
+  -- Causes a disease whose symptoms include 
+  -- diarrhea, fever, headache, skin ulcers, and post_infectious arthritis.
+  fun YersiniaPseudotuberculosis : Class ;
+  fun YersiniaPseudotuberculosis_Class : SubClass YersiniaPseudotuberculosis BacterialAgent ;
+
+  -- (biochemicalAgentAntidote ?AGENT ?SUBSTANCE ?PROCESS) means that
+  -- the BiologicallyActiveSubstance ?SUBSTANCE has been shown to be effective
+  -- in treating someone who has been exposed to the BiochemicalAgent ?AGENT 
+  -- when the ?SUBSTANCE is administered via the Process ?PROCESS.
+  fun biochemicalAgentAntidote: El BiochemicalAgent -> Desc BiologicallyActiveSubstance -> Desc Process -> Formula ;
+
+  -- (biochemicalAgentDelivery ?AGENT ?PROCESS) means that the Process ?PROCESS is 
+  -- capable of infecting an organism with the BiochemicalAgent ?AGENT when 
+  -- the organism is the experiencer and the ?AGENT the patient of an instance of ?PROCESS.
+  fun biochemicalAgentDelivery: Desc BiochemicalAgent -> Desc Process -> Formula ;
+
+  -- Relates a subclass of BiochemicalAgent to a DiseaseOrSyndrome that is caused by or 
+  -- often associated with the BiochemicalAgent.
+  fun biochemicalAgentSyndrome: Desc BiochemicalAgent -> El DiseaseOrSyndrome -> Formula ;
+
+  -- (biologicalAgentCarrier ?AGENT ?ORGANISM) means that the subclass of Organism ?ORGANISM
+  -- is a carrier of the subclass of BiologicalAgent ?AGENT.
+  fun biologicalAgentCarrier: Desc BiologicalAgent -> Desc Organism -> Formula ;
+
+  -- A predicate that specifies the time frame for the incubation of a DiseaseOrSyndrome. 
+  -- (diseaseIncubation ?DISEASE ?TIME1 ?TIME2) means that the DiseaseOrSyndrome ?DISEASE 
+  -- will appear between ?TIME1 and ?TIME2 after the subject has been infected with
+  -- the BiologicalAgent causing ?DISEASE.
+  fun diseaseIncubation: El DiseaseOrSyndrome -> Desc TimeDuration -> Desc TimeDuration -> Formula ;
+
+  -- (diseaseMortality ?DISEASE ?NUMBER) means that DiseaseOrSyndrome ?DISEASE has a Mortality rate of ?NUMBER.
+  fun diseaseMortality : El DiseaseOrSyndrome -> El RealNumber -> Formula ;
+
+  -- (diseaseSymptom ?DISEASE ?SYMPTOM) means that DiseaseOrSyndrome ?DISEASE is often associated with 
+  -- the DiseaseOrSyndrome ?SYMPTOM, i.e. an Organism which suffers from ?DISEASE is more likely
+  -- to suffer from ?SYMPTOM than one which does not.
+  fun diseaseSymptom : El DiseaseOrSyndrome -> El DiseaseOrSyndrome -> Formula ;
+
+  -- (diseaseTreatment ?DISEASE ?SUBSTANCE ?PROCESS) means that the BiologicallyActiveSubstance ?SUBSTANCE is 
+  -- effective in the treatment of the DiseaseOrSyndrome ?DISEASE when administered via the Process ?PROCESS,
+  -- i.e. it has been demonstrated (in a significant sample of patients) to cure the ?DISEASE or
+  -- at least reduce the severity of symptoms associated with the ?DISEASE.
+  fun diseaseTreatment: El DiseaseOrSyndrome -> Desc BiologicallyActiveSubstance -> Desc Process -> Formula ;
+
+  -- (effectiveDose ?AGENT ?QUANTITY) means that ?QUANTITY is the effective dose, or ED50,
+  -- for the BiochemicalAgent ?AGENT. This is the dose that would incapacitate 50% of 
+  -- the exposed human population. Note that ?QUANTITY is generally expressed in micrograms per kilogram (mcg/kg).
+  fun effectiveDose: Desc BiochemicalAgent -> El FunctionQuantity -> Formula ;
+
+  -- (lethalDose ?AGENT ?QUANTITY) means that ?QUANTITY is the lethal dose, 
+  -- or LD50, for the BiochemicalAgent ?AGENT. 
+  -- This is the dose that would result in death for 50% of the exposed human population. 
+  -- Note that ?QUANTITY is generally expressed in micrograms per kilogram (mcg/kg).
+  fun lethalDose: Desc BiochemicalAgent -> El FunctionQuantity -> Formula ;
+
+  -- (secretesToxin ?ORGANISM ?TOXIN) means that the
+  -- subclass of Organism ?ORGANISM produces the subclass of Toxin ?TOXIN.
+  fun secretesToxin: Desc Organism -> Desc Toxin -> Formula ;
+
+  -- A predicate that is used to specify a side effect of 
+  -- a substance used in a medical treatment. 
+  -- (sideEffect ?SUBSTANCE ?SYNDROME) means that
+  -- the BiologicallyActiveSubstance ?SUBSTANCE has the side effect ?SYNDROME.
+  fun sideEffect : El BiologicallyActiveSubstance -> El DiseaseOrSyndrome -> Formula ;
+
 }
diff --git a/examples/SUMO/WorldAirportsA_K.gf b/examples/SUMO/WorldAirportsA_K.gf
--- a/examples/SUMO/WorldAirportsA_K.gf
+++ b/examples/SUMO/WorldAirportsA_K.gf
@@ -1,8111 +1,8109 @@
-abstract WorldAirportsA_K = open Merge, Transportation in {
-
-
-
-
-fun AMenderesIzmirAirport : Ind Airport ;
-
-fun APHillArmyAirFieldVAAirport : Ind Airport ;
-
-fun AachenAirport : Ind Airport ;
-
-fun AalborgAirport : Ind Airport ;
-
-fun AbaTennaDYilmaDireDawaAirport : Ind Airport ;
-
-fun AbadanAirport : Ind Airport ;
-
-fun AbaiangAirport : Ind Airport ;
-
-fun AbakanKhakassiaAirport : Ind Airport ;
-
-fun AbauAirport : Ind Airport ;
-
-fun AbbotsichnScotlandAirport : Ind Airport ;
-
-fun AbbseAirport : Ind Airport ;
-
-fun AbecheAirport : Ind Airport ;
-
-fun AbemamaAtollAirport : Ind Airport ;
-
-fun AberdeenRegionalSDAirport : Ind Airport ;
-
-fun AbernathyFieldTNAirport : Ind Airport ;
-
-fun AbileneRegionalTXAirport : Ind Airport ;
-
-fun AbingdonRAFStationEnglandAirport : Ind Airport ;
-
-fun AbingoonQueenslandAirport : Ind Airport ;
-
-fun AboissoAirport : Ind Airport ;
-
-fun AbouDeiaAirport : Ind Airport ;
-
-fun AbrahamGonzalezCiudadJuarezAirport : Ind Airport ;
-
-fun AbramsMunicipalBaseOperationsMIAirport : Ind Airport ;
-
-fun AbreojosAirport : Ind Airport ;
-
-fun AbuSimbelAirport : Ind Airport ;
-
-fun AbujaAirport : Ind Airport ;
-
-fun AcadianaRegionalLAAirport : Ind Airport ;
-
-fun AcandiAirport : Ind Airport ;
-
-fun AcaricuraAirport : Ind Airport ;
-
-fun AcariguaAirport : Ind Airport ;
-
-fun AchutupoAirport : Ind Airport ;
-
-fun AdaMunicipalOKAirport : Ind Airport ;
-
-fun AdakNavalAirStationAKAirport : Ind Airport ;
-
-fun AddingtonFieldKYAirport : Ind Airport ;
-
-fun AddisonTXAirport : Ind Airport ;
-
-fun AdisuciptoYogyakartaAirport : Ind Airport ;
-
-fun AdlerSochiKrasnodarAirport : Ind Airport ;
-
-fun AdnanMenderesIzmirAirport : Ind Airport ;
-
-fun AekGodangAirport : Ind Airport ;
-
-fun AeroparqueJorgeNewberyBuenosAiresAirport : Ind Airport ;
-
-fun AeroportoInternacionalGaleaoRJAirport : Ind Airport ;
-
-fun AeroportoInternacionalGuarulhosSPAirport : Ind Airport ;
-
-fun AeroportodeCongonhasSPAirport : Ind Airport ;
-
-fun AeropuertoHatoCuracaoWillemstadAirport : Ind Airport ;
-
-fun AeropuertoHenriqueMalekDavidAirport : Ind Airport ;
-
-fun AeropuertoInternacionalEzeizaMinistroPistariniBuenosAiresAirport : Ind Airport ;
-
-fun AeropuertoInternacionalJoseMartiLaHabanaHavanaAirport : Ind Airport ;
-
-fun AeropuertoInternacionaldelCentroCaracasAirport : Ind Airport ;
-
-fun AeropuertoRafaelHernandezBorinquenAguadillaAirport : Ind Airport ;
-
-fun AeropuertoTransoceanicodeBarcelonaBarcelonaAirport : Ind Airport ;
-
-fun AfonsoPenaPRAirport : Ind Airport ;
-
-fun AforeAirport : Ind Airport ;
-
-fun AftonMunicipalWYAirport : Ind Airport ;
-
-fun AfyonAirport : Ind Airport ;
-
-fun AgadesAgadezAirport : Ind Airport ;
-
-fun AgartalaAirport : Ind Airport ;
-
-fun AgattiIslandAirport : Ind Airport ;
-
-fun AgaunAirport : Ind Airport ;
-
-fun AgenAirport : Ind Airport ;
-
-fun AggeneysAirport : Ind Airport ;
-
-fun AgnewQueenslandAirport : Ind Airport ;
-
-fun AgoAirport : Ind Airport ;
-
-fun AgraAirport : Ind Airport ;
-
-fun AgrinionAirport : Ind Airport ;
-
-fun AguascalientesAirport : Ind Airport ;
-
-fun AguniAirport : Ind Airport ;
-
-fun AhmedabadAirport : Ind Airport ;
-
-fun AhuasAirport : Ind Airport ;
-
-fun AhwazAirport : Ind Airport ;
-
-fun AikenMunicipalSCAirport : Ind Airport ;
-
-fun AiligandiAirport : Ind Airport ;
-
-fun AilinglapalapAirport : Ind Airport ;
-
-fun AilukIneIslandAirport : Ind Airport ;
-
-fun AinElBeyConstantineAirport : Ind Airport ;
-
-fun AinsworthMunicipalNEAirport : Ind Airport ;
-
-fun AiomeAirport : Ind Airport ;
-
-fun AiounelAtroussAirport : Ind Airport ;
-
-fun AirBaseKusanAirport : Ind Airport ;
-
-fun AirLogisticsBelleChasseHeliportLAAirport : Ind Airport ;
-
-fun AirborneAirparkOHAirport : Ind Airport ;
-
-fun AirokAirport : Ind Airport ;
-
-fun AishaltonAirport : Ind Airport ;
-
-fun AitapeAirport : Ind Airport ;
-
-fun AitutakiAirport : Ind Airport ;
-
-fun AixLesBainsChamberyAirport : Ind Airport ;
-
-fun AiyuraAirport : Ind Airport ;
-
-fun AizawlAirport : Ind Airport ;
-
-fun AkhiokAKAirport : Ind Airport ;
-
-fun AkiachakSeaplaneBaseAKAirport : Ind Airport ;
-
-fun AkiakAKAirport : Ind Airport ;
-
-fun AkieniAirport : Ind Airport ;
-
-fun AkitaAirport : Ind Airport ;
-
-fun AkjoujtAirport : Ind Airport ;
-
-fun AkolaAirport : Ind Airport ;
-
-fun AkronCantonRegionalOHAirport : Ind Airport ;
-
-fun AkronWashingtonCountyCOAirport : Ind Airport ;
-
-fun AkrotiriAirport : Ind Airport ;
-
-fun AksuAirport : Ind Airport ;
-
-fun AkulivikQCAirport : Ind Airport ;
-
-fun AkureAirport : Ind Airport ;
-
-fun AkureyriAirport : Ind Airport ;
-
-fun AkutanSeaplaneBaseAKAirport : Ind Airport ;
-
-fun AlAinAirport : Ind Airport ;
-
-fun AlArishAirport : Ind Airport ;
-
-fun AlBahaAirport : Ind Airport ;
-
-fun AlBaydaAirport : Ind Airport ;
-
-fun AlDhafraMilitaryAbuDhabiAirport : Ind Airport ;
-
-fun AlGhaydahAirport : Ind Airport ;
-
-fun AlMassiraAgadirAirport : Ind Airport ;
-
-fun AlahAirport : Ind Airport ;
-
-fun AlakanukAKAirport : Ind Airport ;
-
-fun AlamogordoWhiteSandsRegionalNMAirport : Ind Airport ;
-
-fun AlbanyCountyNYAirport : Ind Airport ;
-
-fun AlbanyWesternAustraliaAirport : Ind Airport ;
-
-fun AlbengaAirport : Ind Airport ;
-
-fun AlbertLeaMunicipalMNAirport : Ind Airport ;
-
-fun AlbertoAcunaOngayCampecheAirport : Ind Airport ;
-
-fun AlbertusILAirport : Ind Airport ;
-
-fun AlbinaAirport : Ind Airport ;
-
-fun AlbionMunicipalNEAirport : Ind Airport ;
-
-fun AlbuqAirport : Ind Airport ;
-
-fun AlbuquerqueInternationalNMAirport : Ind Airport ;
-
-fun AlburyNewSouthWalesAirport : Ind Airport ;
-
-fun AlconburyRAFStationEnglandAirport : Ind Airport ;
-
-fun AldanYakutiaSakhaAirport : Ind Airport ;
-
-fun AldergroveInternationalNorthernIrelandAirport : Ind Airport ;
-
-fun AlderneyAirport : Ind Airport ;
-
-fun AlegreteRSAirport : Ind Airport ;
-
-fun AlenquerPAAirport : Ind Airport ;
-
-fun AleppoAirport : Ind Airport ;
-
-fun AlertaAirport : Ind Airport ;
-
-fun AlexanderBayAirport : Ind Airport ;
-
-fun AlexanderFieldSouthWoodCountyWIAirport : Ind Airport ;
-
-fun AlexandraAirport : Ind Airport ;
-
-fun AlexandriaAirport : Ind Airport ;
-
-fun AlexandriaEslerRegionalLAAirport : Ind Airport ;
-
-fun AlexandriaInternationalLAAirport : Ind Airport ;
-
-fun AlexandriaNorthernTerritoryAirport : Ind Airport ;
-
-fun AlexandroupolisAirport : Ind Airport ;
-
-fun AlfonsoBonillaAragonCaliAirport : Ind Airport ;
-
-fun AlfujairahFujairahAirport : Ind Airport ;
-
-fun AlgonaMunicipalIAAirport : Ind Airport ;
-
-fun AliSabiehAirport : Ind Airport ;
-
-fun AlicanteAirport : Ind Airport ;
-
-fun AliceInternationalTXAirport : Ind Airport ;
-
-fun AliceSpringsNorthernTerritoryAirport : Ind Airport ;
-
-fun AlitakSeaplaneBaseAKAirport : Ind Airport ;
-
-fun AljoufAirport : Ind Airport ;
-
-fun AllahabadAirport : Ind Airport ;
-
-fun AllaireNJAirport : Ind Airport ;
-
-fun AllakaketAKAirport : Ind Airport ;
-
-fun AlldaysAirport : Ind Airport ;
-
-fun AlleghenyCountyPAAirport : Ind Airport ;
-
-fun AllenArmyAirFieldAKAirport : Ind Airport ;
-
-fun AllentownBethlehemEastonPAAirport : Ind Airport ;
-
-fun AllianceMunicipalNEAirport : Ind Airport ;
-
-fun AlmatyAlmaAtaAlmaAtaAirport : Ind Airport ;
-
-fun AlmenaraMGAirport : Ind Airport ;
-
-fun AlongAirport : Ind Airport ;
-
-fun AlorIslandAirport : Ind Airport ;
-
-fun AlorSetarAirport : Ind Airport ;
-
-fun AloweAirport : Ind Airport ;
-
-fun AlpedHuezAirport : Ind Airport ;
-
-fun AlpenaCountyRegionalMIAirport : Ind Airport ;
-
-fun AlphaQueenslandAirport : Ind Airport ;
-
-fun AlpineCasparisMunicipalTXAirport : Ind Airport ;
-
-fun AlroyDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun AltaAirport : Ind Airport ;
-
-fun AltaFlorestaAirport : Ind Airport ;
-
-fun AltamiraPAAirport : Ind Airport ;
-
-fun AltayAirport : Ind Airport ;
-
-fun AltenburgAirport : Ind Airport ;
-
-fun AltoMolocueAirport : Ind Airport ;
-
-fun AltoRioSenguerrAirport : Ind Airport ;
-
-fun AltodoParnaibaPIAirport : Ind Airport ;
-
-fun AltonDownsSouthAustraliaAirport : Ind Airport ;
-
-fun AltonILStLouisAirport : Ind Airport ;
-
-fun AltoonaBlairCountyPAAirport : Ind Airport ;
-
-fun AltusMunicipalOKAirport : Ind Airport ;
-
-fun AlulaAirport : Ind Airport ;
-
-fun AmaAirport : Ind Airport ;
-
-fun AmahaiAirport : Ind Airport ;
-
-fun AmalfiAirport : Ind Airport ;
-
-fun AmamiOShimaAirport : Ind Airport ;
-
-fun AmanabAirport : Ind Airport ;
-
-fun AmarilloInternationalTXAirport : Ind Airport ;
-
-fun AmataNorthernTerritoryAirport : Ind Airport ;
-
-fun AmazonBayAirport : Ind Airport ;
-
-fun AmbanjaAirport : Ind Airport ;
-
-fun AmbatoAirport : Ind Airport ;
-
-fun AmbatolahyAirport : Ind Airport ;
-
-fun AmbatomaintyAirport : Ind Airport ;
-
-fun AmbilobeAirport : Ind Airport ;
-
-fun AmblerAKAirport : Ind Airport ;
-
-fun AmbolinAirport : Ind Airport ;
-
-fun AmboseliAirport : Ind Airport ;
-
-fun AmbouliDjiboutiAirport : Ind Airport ;
-
-fun AmbuntiAirport : Ind Airport ;
-
-fun AmchitkaAirport : Ind Airport ;
-
-fun AmchitkaIslandAKAirport : Ind Airport ;
-
-fun AmdermaArkhangelskAirport : Ind Airport ;
-
-fun AmedeeArmyAirFieldCAAirport : Ind Airport ;
-
-fun AmeryMunicipalWIAirport : Ind Airport ;
-
-fun AmesMunicipalIAAirport : Ind Airport ;
-
-fun AmityvilleNYAirport : Ind Airport ;
-
-fun AmmarooNorthernTerritoryAirport : Ind Airport ;
-
-fun AmookBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun AmpanihyAirport : Ind Airport ;
-
-fun AmritsarAirport : Ind Airport ;
-
-fun AnacoAirport : Ind Airport ;
-
-fun AnacortesWAAirport : Ind Airport ;
-
-fun AnadyrMagadanAirport : Ind Airport ;
-
-fun AnaheimDisneylandCAAirport : Ind Airport ;
-
-fun AnaktuvukPassAKAirport : Ind Airport ;
-
-fun AnalalavaAirport : Ind Airport ;
-
-fun AnapaAirport : Ind Airport ;
-
-fun AnapolisGOAirport : Ind Airport ;
-
-fun AnchorageInternationalAKAirport : Ind Airport ;
-
-fun AnconaAirport : Ind Airport ;
-
-fun AndahuaylasAirport : Ind Airport ;
-
-fun AndamookaSouthAustraliaAirport : Ind Airport ;
-
-fun AndersonCountySCAirport : Ind Airport ;
-
-fun AndersonMunicipalINAirport : Ind Airport ;
-
-fun AndesAirport : Ind Airport ;
-
-fun AndijonAndizhanAndijonAirport : Ind Airport ;
-
-fun AndorralaVellaAirport : Ind Airport ;
-
-fun AndoverEnglandAirport : Ind Airport ;
-
-fun AndoyaAndenesAndoyaAirport : Ind Airport ;
-
-fun AndrauAirparkTXAirport : Ind Airport ;
-
-fun AndravidaAirport : Ind Airport ;
-
-fun AndrewsAirForceBaseMDAirport : Ind Airport ;
-
-fun AndrewsMunicipalSCAirport : Ind Airport ;
-
-fun AnduloAirport : Ind Airport ;
-
-fun AneityumAirport : Ind Airport ;
-
-fun AngelFireNMAirport : Ind Airport ;
-
-fun AngelholmHelsingborgAirport : Ind Airport ;
-
-fun AngersAirport : Ind Airport ;
-
-fun AnggiAirport : Ind Airport ;
-
-fun AngocheAntonioEnesAirport : Ind Airport ;
-
-fun AngoonSeaplaneBaseAKAirport : Ind Airport ;
-
-fun AngoramAirport : Ind Airport ;
-
-fun AngoulemeAirport : Ind Airport ;
-
-fun AnguganakAirport : Ind Airport ;
-
-fun AngusDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun AniakAKAirport : Ind Airport ;
-
-fun AnimasAirParkCOAirport : Ind Airport ;
-
-fun AnitaBayAKAirport : Ind Airport ;
-
-fun AniwaAirport : Ind Airport ;
-
-fun AnjouanAirport : Ind Airport ;
-
-fun AnkangAirport : Ind Airport ;
-
-fun AnkavandraAirport : Ind Airport ;
-
-fun AnnArborMunicipalMIAirport : Ind Airport ;
-
-fun AnnanbergAirport : Ind Airport ;
-
-fun AnnetteIslandAKAirport : Ind Airport ;
-
-fun AnnistonMetropolitanALAirport : Ind Airport ;
-
-fun AnqingAirport : Ind Airport ;
-
-fun AnqmaqssalikAirport : Ind Airport ;
-
-fun AnshanAirport : Ind Airport ;
-
-fun AntaAirport : Ind Airport ;
-
-fun AntalahaAirport : Ind Airport ;
-
-fun AntalyaAirport : Ind Airport ;
-
-fun AnthonyLagoonNorthernTerritoryAirport : Ind Airport ;
-
-fun AnthonyMunicipalKSAirport : Ind Airport ;
-
-fun AntlersMunicipalOKAirport : Ind Airport ;
-
-fun AntrimCountyMIAirport : Ind Airport ;
-
-fun AntsirabeAirport : Ind Airport ;
-
-fun AnuhaIslandResortAnuhaIslandAirport : Ind Airport ;
-
-fun AnuradhapuraAirport : Ind Airport ;
-
-fun AnvikAKAirport : Ind Airport ;
-
-fun AnyangAirport : Ind Airport ;
-
-fun AomoriAirport : Ind Airport ;
-
-fun ApalachicolaMunicipalFLAirport : Ind Airport ;
-
-fun ApalapsiliNewGuineaAirport : Ind Airport ;
-
-fun ApartadoAirport : Ind Airport ;
-
-fun ApatakiTuamotuArchipelagoAirport : Ind Airport ;
-
-fun ApatzinganAirport : Ind Airport ;
-
-fun ApiayAirport : Ind Airport ;
-
-fun ApoloAirport : Ind Airport ;
-
-fun AppianLineAirport : Ind Airport ;
-
-fun AppleValleyCAAirport : Ind Airport ;
-
-fun AprilRiverAirport : Ind Airport ;
-
-fun ApucaranaPRAirport : Ind Airport ;
-
-fun AqabaAirport : Ind Airport ;
-
-fun AqtobeAktyubinskAqtobeAirport : Ind Airport ;
-
-fun AracajuSEAirport : Ind Airport ;
-
-fun AracatubaSPAirport : Ind Airport ;
-
-fun AradAirport : Ind Airport ;
-
-fun AragarcasGOAirport : Ind Airport ;
-
-fun AragipAirport : Ind Airport ;
-
-fun AraguainaTOAirport : Ind Airport ;
-
-fun AramacQueenslandAirport : Ind Airport ;
-
-fun AranukaAirport : Ind Airport ;
-
-fun ArapahoeMunicipalNEAirport : Ind Airport ;
-
-fun ArapongasPRAirport : Ind Airport ;
-
-fun AraracuaraAirport : Ind Airport ;
-
-fun AraraquaraSPAirport : Ind Airport ;
-
-fun AraratVictoriaAirport : Ind Airport ;
-
-fun AraucaAirport : Ind Airport ;
-
-fun ArauquitaAirport : Ind Airport ;
-
-fun AraxaMGAirport : Ind Airport ;
-
-fun AraxosPatrasAirport : Ind Airport ;
-
-fun ArbaMintchAirport : Ind Airport ;
-
-fun ArboletasAirport : Ind Airport ;
-
-fun ArcataCAAirport : Ind Airport ;
-
-fun ArcticVillageAKAirport : Ind Airport ;
-
-fun ArdmoreAirport : Ind Airport ;
-
-fun ArdmoreMunicipalOKAirport : Ind Airport ;
-
-fun ArgyleDownsWesternAustraliaAirport : Ind Airport ;
-
-fun AricaAirport : Ind Airport ;
-
-fun AripuanaMTAirport : Ind Airport ;
-
-fun AriquemesROAirport : Ind Airport ;
-
-fun ArkalykAirport : Ind Airport ;
-
-fun ArkhangelskArkhangelskAirport : Ind Airport ;
-
-fun ArlandaStockholmAirport : Ind Airport ;
-
-fun ArlesCamargueGaronsNimesAirport : Ind Airport ;
-
-fun ArlyAirport : Ind Airport ;
-
-fun ArmeniaAirport : Ind Airport ;
-
-fun ArmidaleNewSouthWalesAirport : Ind Airport ;
-
-fun ArnoAirport : Ind Airport ;
-
-fun AroaAirport : Ind Airport ;
-
-fun AronaAirport : Ind Airport ;
-
-fun AroraeIslandAirport : Ind Airport ;
-
-fun ArraburyQueenslandAirport : Ind Airport ;
-
-fun ArrachartAntsirananaDiegoSuarezAirport : Ind Airport ;
-
-fun ArraiasGOAirport : Ind Airport ;
-
-fun ArsoAirport : Ind Airport ;
-
-fun ArsukAirport : Ind Airport ;
-
-fun ArtesiaMunicipalNMAirport : Ind Airport ;
-
-fun ArthurNNeuIAAirport : Ind Airport ;
-
-fun ArthursTownCatAirport : Ind Airport ;
-
-fun ArtigasAirport : Ind Airport ;
-
-fun ArushaAirport : Ind Airport ;
-
-fun AruthaAirport : Ind Airport ;
-
-fun ArvidsjaurAirport : Ind Airport ;
-
-fun AsahikawaAirport : Ind Airport ;
-
-fun AsapaAirport : Ind Airport ;
-
-fun AsauAirport : Ind Airport ;
-
-fun AscensionAirport : Ind Airport ;
-
-fun AscensionIslandAirport : Ind Airport ;
-
-fun AsconaAirport : Ind Airport ;
-
-fun AsekiAirport : Ind Airport ;
-
-fun AselaAirport : Ind Airport ;
-
-fun AshburtonAirport : Ind Airport ;
-
-fun AshevilleRegionalNCAirport : Ind Airport ;
-
-fun AshgabatAshkhabadAhalAirport : Ind Airport ;
-
-fun AshleyMunicipalNDAirport : Ind Airport ;
-
-fun AsirimAirport : Ind Airport ;
-
-fun AsosaAirport : Ind Airport ;
-
-fun AspenPitkinCountyAirportSardyFieldCOAirport : Ind Airport ;
-
-fun AssabAirport : Ind Airport ;
-
-fun AssisSPAirport : Ind Airport ;
-
-fun AssiutAirport : Ind Airport ;
-
-fun AstrakhanAstrakhanAirport : Ind Airport ;
-
-fun AstraksetraAirport : Ind Airport ;
-
-fun AstypaleaIslandAirport : Ind Airport ;
-
-fun AswanAirport : Ind Airport ;
-
-fun AtalayaAirport : Ind Airport ;
-
-fun AtaqAirport : Ind Airport ;
-
-fun AtarAirport : Ind Airport ;
-
-fun AtarotJerusalemAirport : Ind Airport ;
-
-fun AtaturkYesilkovInternationalIstanbulAirport : Ind Airport ;
-
-fun AtauroAirport : Ind Airport ;
-
-fun AtbaraAirport : Ind Airport ;
-
-fun AthensBenEppsGAAirport : Ind Airport ;
-
-fun AtiAirport : Ind Airport ;
-
-fun AtiuAirport : Ind Airport ;
-
-fun AtkaAKAirport : Ind Airport ;
-
-fun AtkambaAirport : Ind Airport ;
-
-fun AtlantaTechnologyParkGAAirport : Ind Airport ;
-
-fun AtlanticCityInternationalNJAirport : Ind Airport ;
-
-fun AtlanticCityMunicipalAirportBaderFieldNJAirport : Ind Airport ;
-
-fun AtlanticMunicipalIAAirport : Ind Airport ;
-
-fun AtmautluakAKAirport : Ind Airport ;
-
-fun AtoifiAirport : Ind Airport ;
-
-fun AtqasukAKAirport : Ind Airport ;
-
-fun AttopeuAirport : Ind Airport ;
-
-fun AtuonaMarquesasIslandsAirport : Ind Airport ;
-
-fun AtyrauGuryevAtyrauAirport : Ind Airport ;
-
-fun AuaAirport : Ind Airport ;
-
-fun AubRudeisAirport : Ind Airport ;
-
-fun AuburnMunicipalCAAirport : Ind Airport ;
-
-fun AuburnOpelikaRobertGPittsALAirport : Ind Airport ;
-
-fun AudubonCountyIAAirport : Ind Airport ;
-
-fun AugsburgAirport : Ind Airport ;
-
-fun AugustaStateMEAirport : Ind Airport ;
-
-fun AugustusDownsQueenslandAirport : Ind Airport ;
-
-fun AukiAirport : Ind Airport ;
-
-fun AulnatClermontFerrandAirport : Ind Airport ;
-
-fun AurAtollAirport : Ind Airport ;
-
-fun AurangabadAirport : Ind Airport ;
-
-fun AurillacAirport : Ind Airport ;
-
-fun AuroraMunicipalILAirport : Ind Airport ;
-
-fun AurukunMissionQueenslandAirport : Ind Airport ;
-
-fun AustinMunicipalMNAirport : Ind Airport ;
-
-fun AustinNVAirport : Ind Airport ;
-
-fun AustinStraubelInternationalWIAirport : Ind Airport ;
-
-fun AustralDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun AuvergneNorthernTerritoryAirport : Ind Airport ;
-
-fun AvaBillMartinMemorialMOAirport : Ind Airport ;
-
-fun AvalonBaySeaplaneBaseCAAirport : Ind Airport ;
-
-fun AvalonNewSouthWalesAirport : Ind Airport ;
-
-fun AvenalCAAirport : Ind Airport ;
-
-fun AvianoAirBaseAvianoAirport : Ind Airport ;
-
-fun AvionClubatCrestedButteCOAirport : Ind Airport ;
-
-fun AvonCOAirport : Ind Airport ;
-
-fun AvonParkMunicipalFLAirport : Ind Airport ;
-
-fun AvoriazAirport : Ind Airport ;
-
-fun AvraValleyAZAirport : Ind Airport ;
-
-fun AvuAvuAirport : Ind Airport ;
-
-fun AwabaAirport : Ind Airport ;
-
-fun AwarAirport : Ind Airport ;
-
-fun AwaradamAirport : Ind Airport ;
-
-fun AwarehAirport : Ind Airport ;
-
-fun AwassaAirport : Ind Airport ;
-
-fun AxumAirport : Ind Airport ;
-
-fun AyacuchoAirport : Ind Airport ;
-
-fun AyacuchoAirportPeru : Ind Airport ;
-
-fun AyapelAirport : Ind Airport ;
-
-fun AyawasiAirport : Ind Airport ;
-
-fun AyersRockNorthernTerritoryAirport : Ind Airport ;
-
-fun AyrQueenslandAirport : Ind Airport ;
-
-fun BaAirport : Ind Airport ;
-
-fun BabelegiAirport : Ind Airport ;
-
-fun BaboAirport : Ind Airport ;
-
-fun BabolsarAirport : Ind Airport ;
-
-fun BacaGrandeCOAirport : Ind Airport ;
-
-fun BacauAirport : Ind Airport ;
-
-fun BacoJinkaAirport : Ind Airport ;
-
-fun BacolodAirport : Ind Airport ;
-
-fun BadeAirport : Ind Airport ;
-
-fun BadinAirport : Ind Airport ;
-
-fun BaduIslandQueenslandAirport : Ind Airport ;
-
-fun BafoussemAirport : Ind Airport ;
-
-fun BaganaAirport : Ind Airport ;
-
-fun BagdograAirport : Ind Airport ;
-
-fun BageRSAirport : Ind Airport ;
-
-fun BaghdadAirport : Ind Airport ;
-
-fun BagintonCoventryAirport : Ind Airport ;
-
-fun BaglungAirport : Ind Airport ;
-
-fun BaguioAirport : Ind Airport ;
-
-fun BaharDarAirport : Ind Airport ;
-
-fun BahawalpurAirport : Ind Airport ;
-
-fun BahiaAngelesAirport : Ind Airport ;
-
-fun BahiaCupicaAirport : Ind Airport ;
-
-fun BahiaSolanoAirport : Ind Airport ;
-
-fun BahiasdeHuatulcoSantaCruzHuatulcoAirport : Ind Airport ;
-
-fun BahreganAirport : Ind Airport ;
-
-fun BaiaMapeAirport : Ind Airport ;
-
-fun BaiadeCaraquezAirport : Ind Airport ;
-
-fun BaibaraAirport : Ind Airport ;
-
-fun BaidoaAirport : Ind Airport ;
-
-fun BaindoungAirport : Ind Airport ;
-
-fun BairnsdaleVictoriaAirport : Ind Airport ;
-
-fun BaitadiAirport : Ind Airport ;
-
-fun BaiyerRiverAirport : Ind Airport ;
-
-fun BaiyunGuangzhouCantonAirport : Ind Airport ;
-
-fun BajawaAirport : Ind Airport ;
-
-fun BajhangAirport : Ind Airport ;
-
-fun BajoneAirport : Ind Airport ;
-
-fun BajuraAirport : Ind Airport ;
-
-fun BakalalanSarawakAirport : Ind Airport ;
-
-fun BakelAirport : Ind Airport ;
-
-fun BakerCityMunicipalORAirport : Ind Airport ;
-
-fun BakerIslandAirport : Ind Airport ;
-
-fun BakiBakuNaxcivanAirport : Ind Airport ;
-
-fun BakkafjordurAirport : Ind Airport ;
-
-fun BakkiGrundarfjordurAirport : Ind Airport ;
-
-fun BakoumaAirport : Ind Airport ;
-
-fun BalakovoSaratovAirport : Ind Airport ;
-
-fun BalalaeAirport : Ind Airport ;
-
-fun BalboaAirport : Ind Airport ;
-
-fun BalerAirport : Ind Airport ;
-
-fun BalgoHillsWesternAustraliaAirport : Ind Airport ;
-
-fun BalhashAirport : Ind Airport ;
-
-fun BaliAirport : Ind Airport ;
-
-fun BaliAirportPapuaNewGuinea : Ind Airport ;
-
-fun BaliBamendaAirport : Ind Airport ;
-
-fun BaliceKrakowAirport : Ind Airport ;
-
-fun BalikesirAirport : Ind Airport ;
-
-fun BallinaNewSouthWalesAirport : Ind Airport ;
-
-fun BallykellyNorthernIrelandAirport : Ind Airport ;
-
-fun BalmacedaAirport : Ind Airport ;
-
-fun BalranaldNewSouthWalesAirport : Ind Airport ;
-
-fun BalsasMAAirport : Ind Airport ;
-
-fun BaltimoreWashingtonInternationalMDAirport : Ind Airport ;
-
-fun BaltrumAirport : Ind Airport ;
-
-fun BamagaQueenslandAirport : Ind Airport ;
-
-fun BambariAirport : Ind Airport ;
-
-fun BamburiAirport : Ind Airport ;
-
-fun BamernyAirport : Ind Airport ;
-
-fun BamiyanAirport : Ind Airport ;
-
-fun BamuAirport : Ind Airport ;
-
-fun BanMakKhaengAirport : Ind Airport ;
-
-fun BanMeThoutAirport : Ind Airport ;
-
-fun BandarAbbasAirport : Ind Airport ;
-
-fun BandarLengehAirport : Ind Airport ;
-
-fun BandirmaAirport : Ind Airport ;
-
-fun BandonStateORAirport : Ind Airport ;
-
-fun BandunduAirport : Ind Airport ;
-
-fun BandungAirport : Ind Airport ;
-
-fun BaneasaBucharestAirport : Ind Airport ;
-
-fun BanforaAirport : Ind Airport ;
-
-fun BangaloreAirport : Ind Airport ;
-
-fun BangassouAirport : Ind Airport ;
-
-fun BangokaKisanganiAirport : Ind Airport ;
-
-fun BangorInternationalMEAirport : Ind Airport ;
-
-fun BanjaLukaAirport : Ind Airport ;
-
-fun BankstownNewSouthWalesAirport : Ind Airport ;
-
-fun BanmethuotAirport : Ind Airport ;
-
-fun BanningMunicipalCAAirport : Ind Airport ;
-
-fun BannuAirport : Ind Airport ;
-
-fun BantryAirport : Ind Airport ;
-
-fun BanzAirport : Ind Airport ;
-
-fun BaoshanAirport : Ind Airport ;
-
-fun BaotouAirport : Ind Airport ;
-
-fun BapiAirport : Ind Airport ;
-
-fun BaracoaAirport : Ind Airport ;
-
-fun BarahonaAirport : Ind Airport ;
-
-fun BaramitaAirport : Ind Airport ;
-
-fun BarbudaCodringtonBarbudaIsAirport : Ind Airport ;
-
-fun BarcaKosiceAirport : Ind Airport ;
-
-fun BarcaldineQueenslandAirport : Ind Airport ;
-
-fun BarcelonnetteAirport : Ind Airport ;
-
-fun BarcelosAMAirport : Ind Airport ;
-
-fun BarderaAirport : Ind Airport ;
-
-fun BardufossAirport : Ind Airport ;
-
-fun BarinasAirport : Ind Airport ;
-
-fun BarioSarawakAirport : Ind Airport ;
-
-fun BarisalAirport : Ind Airport ;
-
-fun BarklyDownsQueenslandAirport : Ind Airport ;
-
-fun BarksdaleAirForceBaseLAAirport : Ind Airport ;
-
-fun BarnaulAltayAirport : Ind Airport ;
-
-fun BarnesMunicipalMAAirport : Ind Airport ;
-
-fun BarnstableMunicipalAirportBoardmanPolandoFieldMAAirport : Ind Airport ;
-
-fun BarnwellCountySCAirport : Ind Airport ;
-
-fun BarondaVadodaraAirport : Ind Airport ;
-
-fun BarquisimetoAirport : Ind Airport ;
-
-fun BarraBAAirport : Ind Airport ;
-
-fun BarraColoradoAirport : Ind Airport ;
-
-fun BarraScotlandAirport : Ind Airport ;
-
-fun BarradoCordaMAAirport : Ind Airport ;
-
-fun BarradoGarcasMGAirport : Ind Airport ;
-
-fun BarrancabermejaAirport : Ind Airport ;
-
-fun BarrancadeUpiAirport : Ind Airport ;
-
-fun BarreirasBAAirport : Ind Airport ;
-
-fun BarreirinhasMAAirport : Ind Airport ;
-
-fun BarretosSPAirport : Ind Airport ;
-
-fun BarrowIslandWesternAustraliaAirport : Ind Airport ;
-
-fun BarrowinFurnessAirport : Ind Airport ;
-
-fun BarstowDaggettCAAirport : Ind Airport ;
-
-fun BarterIslandLRRSAKAirport : Ind Airport ;
-
-fun BarthAirport : Ind Airport ;
-
-fun BarticaAirport : Ind Airport ;
-
-fun BartlesvilleMunicipalOKAirport : Ind Airport ;
-
-fun BartlettCoveSeaplaneBaseAKAirport : Ind Airport ;
-
-fun BartlettsAKAirport : Ind Airport ;
-
-fun BartowMunicipalFLAirport : Ind Airport ;
-
-fun BasankusuAirport : Ind Airport ;
-
-fun BascoAirport : Ind Airport ;
-
-fun BaselMulhouseEuroBaselAirport : Ind Airport ;
-
-fun BasongoAirport : Ind Airport ;
-
-fun BasseTerreAirport : Ind Airport ;
-
-fun BasseinAirport : Ind Airport ;
-
-fun BataAirport : Ind Airport ;
-
-fun BatamBatuBesarAirport : Ind Airport ;
-
-fun BatangafoAirport : Ind Airport ;
-
-fun BataviaDownsQueenslandAirport : Ind Airport ;
-
-fun BatesvilleRegionalARAirport : Ind Airport ;
-
-fun BathurstIslandNorthernTerritoryAirport : Ind Airport ;
-
-fun BathurstNewSouthWalesAirport : Ind Airport ;
-
-fun BatmanMilitaryAirBaseBatmanAirport : Ind Airport ;
-
-fun BatnaAirport : Ind Airport ;
-
-fun BatomAirport : Ind Airport ;
-
-fun BatonRougeMetropolitanAirportRyanFieldLAAirport : Ind Airport ;
-
-fun BatsfjordAirport : Ind Airport ;
-
-fun BattambangAirport : Ind Airport ;
-
-fun BatticalcaAirport : Ind Airport ;
-
-fun BatuLicinAirport : Ind Airport ;
-
-fun BatumiAbkhaziaAirport : Ind Airport ;
-
-fun BaucauAirport : Ind Airport ;
-
-fun BauchiAirport : Ind Airport ;
-
-fun BaudetteInternationalMNAirport : Ind Airport ;
-
-fun BauruSPAirport : Ind Airport ;
-
-fun BawanAirport : Ind Airport ;
-
-fun BayCityMunicipalTXAirport : Ind Airport ;
-
-fun BayamoAirport : Ind Airport ;
-
-fun BayofIslandsAirport : Ind Airport ;
-
-fun BayreuthAirport : Ind Airport ;
-
-fun BaytownTXAirport : Ind Airport ;
-
-fun BeagleBayWesternAustraliaAirport : Ind Airport ;
-
-fun BealeAirForceBaseCAAirport : Ind Airport ;
-
-fun BearCreek3AKAirport : Ind Airport ;
-
-fun BeatriceMunicipalNEAirport : Ind Airport ;
-
-fun BeattyNVAirport : Ind Airport ;
-
-fun BeaufortCountySCAirport : Ind Airport ;
-
-fun BeaumontMunicipalTXAirport : Ind Airport ;
-
-fun BeauregardParishLAAirport : Ind Airport ;
-
-fun BeaverCountyPAAirport : Ind Airport ;
-
-fun BeaverInletAKAirport : Ind Airport ;
-
-fun BeaverRuinGAAirport : Ind Airport ;
-
-fun BedfordDownsWesternAustraliaAirport : Ind Airport ;
-
-fun BedourieQueenslandAirport : Ind Airport ;
-
-fun BeechFactoryKSAirport : Ind Airport ;
-
-fun BeerShebaBeershebaAirport : Ind Airport ;
-
-fun BegamganjAirport : Ind Airport ;
-
-fun BeicaAirport : Ind Airport ;
-
-fun BeidahAirport : Ind Airport ;
-
-fun BeihaiAirport : Ind Airport ;
-
-fun BeihanAirport : Ind Airport ;
-
-fun BeijingPekingAirport : Ind Airport ;
-
-fun BeiraAirport : Ind Airport ;
-
-fun BelagaSarawakAirport : Ind Airport ;
-
-fun BelepBelepIslandsAirport : Ind Airport ;
-
-fun BelfortAirport : Ind Airport ;
-
-fun BelgaumAirport : Ind Airport ;
-
-fun BelgradeAirport : Ind Airport ;
-
-fun BellIslandHotSpringsSeaplaneBaseAKAirport : Ind Airport ;
-
-fun BellaUnionAirport : Ind Airport ;
-
-fun BellaYellaAirport : Ind Airport ;
-
-fun BellaryAirport : Ind Airport ;
-
-fun BellavistaAirport : Ind Airport ;
-
-fun BelleFourcheMunicipalSDAirport : Ind Airport ;
-
-fun BellinghamInternationalWAAirport : Ind Airport ;
-
-fun BellonaAirport : Ind Airport ;
-
-fun BellunoAirport : Ind Airport ;
-
-fun BelmontNewSouthWalesAirport : Ind Airport ;
-
-fun BelmonteBAAirport : Ind Airport ;
-
-fun BelmulletAirport : Ind Airport ;
-
-fun BeloAirport : Ind Airport ;
-
-fun BeloHorizonteMGAirport : Ind Airport ;
-
-fun BeltsyAirport : Ind Airport ;
-
-fun BembridgeEnglandAirport : Ind Airport ;
-
-fun BemichiAirport : Ind Airport ;
-
-fun BemidjiBeltramiCountyMNAirport : Ind Airport ;
-
-fun BenallaVictoriaAirport : Ind Airport ;
-
-fun BenawiAirport : Ind Airport ;
-
-fun BenbeculaScotlandAirport : Ind Airport ;
-
-fun BenedumWVAirport : Ind Airport ;
-
-fun BengbuAirport : Ind Airport ;
-
-fun BengkuluSumatraAirport : Ind Airport ;
-
-fun BenguelaAirport : Ind Airport ;
-
-fun BeniAirport : Ind Airport ;
-
-fun BeninCityAirport : Ind Airport ;
-
-fun BeninaBenghaziAirport : Ind Airport ;
-
-fun BenjinaAirport : Ind Airport ;
-
-fun BensbachAirport : Ind Airport ;
-
-fun BensonEnglandAirport : Ind Airport ;
-
-fun BensonMunicipalMNAirport : Ind Airport ;
-
-fun BentoGoncalvesRSAirport : Ind Airport ;
-
-fun BentwatersStationEnglandAirport : Ind Airport ;
-
-fun BeppuAirport : Ind Airport ;
-
-fun BequiaAirport : Ind Airport ;
-
-fun BerauAirport : Ind Airport ;
-
-fun BerberaAirport : Ind Airport ;
-
-fun BerberatiAirport : Ind Airport ;
-
-fun BerdyanskZaporizhzhyaAirport : Ind Airport ;
-
-fun BereinaAirport : Ind Airport ;
-
-fun BeresyAirport : Ind Airport ;
-
-fun BergamoAirport : Ind Airport ;
-
-fun BergeracAirport : Ind Airport ;
-
-fun BergstromAirRescueServiceTXAirport : Ind Airport ;
-
-fun BerkeleyCAAirport : Ind Airport ;
-
-fun BerlevagAirport : Ind Airport ;
-
-fun BerlinMunicipalNHAirport : Ind Airport ;
-
-fun BermejoAirport : Ind Airport ;
-
-fun BernBelpBernBerneAirport : Ind Airport ;
-
-fun BertMooneyMTAirport : Ind Airport ;
-
-fun BertouaAirport : Ind Airport ;
-
-fun BeruAirport : Ind Airport ;
-
-fun BesalampyAirport : Ind Airport ;
-
-fun BethelAKAirport : Ind Airport ;
-
-fun BethelSeaplaneBaseAKAirport : Ind Airport ;
-
-fun BetoikyAirport : Ind Airport ;
-
-fun BetootaQueenslandAirport : Ind Airport ;
-
-fun BetouAirport : Ind Airport ;
-
-fun BettinaAbuDhabiAirport : Ind Airport ;
-
-fun BettlesAKAirport : Ind Airport ;
-
-fun BeverleySpringsWesternAustraliaAirport : Ind Airport ;
-
-fun BeverlyMunicipalMAAirport : Ind Airport ;
-
-fun BhadrapurAirport : Ind Airport ;
-
-fun BhairawaAirport : Ind Airport ;
-
-fun BhamoAirport : Ind Airport ;
-
-fun BharatpurAirport : Ind Airport ;
-
-fun BhatindaAirport : Ind Airport ;
-
-fun BhavnagarAirport : Ind Airport ;
-
-fun BhojpurAirport : Ind Airport ;
-
-fun BhopalAirport : Ind Airport ;
-
-fun BhubaneswarAirport : Ind Airport ;
-
-fun BhujAirport : Ind Airport ;
-
-fun BiallaAirport : Ind Airport ;
-
-fun BiaruAirport : Ind Airport ;
-
-fun BiawonqueAirport : Ind Airport ;
-
-fun BicycleLakeArmyAirFieldNationalGuardCAAirport : Ind Airport ;
-
-fun BielefeldAirport : Ind Airport ;
-
-fun BigBayAirport : Ind Airport ;
-
-fun BigBellWesternAustraliaAirport : Ind Airport ;
-
-fun BigCreekAKAirport : Ind Airport ;
-
-fun BigCreekAirport : Ind Airport ;
-
-fun BigLakeAKAirport : Ind Airport ;
-
-fun BigMountainAKAirport : Ind Airport ;
-
-fun BigPineyMarbletonWYAirport : Ind Airport ;
-
-fun BigSpringMcMahonWrinkleTXAirport : Ind Airport ;
-
-fun BigSpringTXAirport : Ind Airport ;
-
-fun BigginHillEnglandAirport : Ind Airport ;
-
-fun BiggsArmyAirFieldTXAirport : Ind Airport ;
-
-fun BikanerAirport : Ind Airport ;
-
-fun BikiniAtollAirport : Ind Airport ;
-
-fun BilbaoAirport : Ind Airport ;
-
-fun BildudalurAirport : Ind Airport ;
-
-fun BillilunaStationWesternAustraliaAirport : Ind Airport ;
-
-fun BillingsLoganInternationalMTAirport : Ind Airport ;
-
-fun BillundAirport : Ind Airport ;
-
-fun BillyMitchellNCAirport : Ind Airport ;
-
-fun BimaAirport : Ind Airport ;
-
-fun BiminAirport : Ind Airport ;
-
-fun BinghamtonRegionalAirportEdwinALinkFieldNYAirport : Ind Airport ;
-
-fun BintuluSarawakAirport : Ind Airport ;
-
-fun BiraroAirport : Ind Airport ;
-
-fun BiratnagarAirport : Ind Airport ;
-
-fun BirchCreekAKAirport : Ind Airport ;
-
-fun BirchwoodPoconoAirparkPAAirport : Ind Airport ;
-
-fun BirdIslandAirport : Ind Airport ;
-
-fun BirdsvilleQueenslandAirport : Ind Airport ;
-
-fun BirminghamEnglandAirport : Ind Airport ;
-
-fun BirminghamInternationalALAirport : Ind Airport ;
-
-fun BirninKonniAirport : Ind Airport ;
-
-fun BisbeeDouglasInternationalAZAirport : Ind Airport ;
-
-fun BisbeeMunicipalAZAirport : Ind Airport ;
-
-fun BishaAirport : Ind Airport ;
-
-fun BishkekFrunzeChuyAirport : Ind Airport ;
-
-fun BishoAirport : Ind Airport ;
-
-fun BishopCAAirport : Ind Airport ;
-
-fun BishopInternationalMIAirport : Ind Airport ;
-
-fun BiskraAirport : Ind Airport ;
-
-fun BisligAirport : Ind Airport ;
-
-fun BismarckMunicipalNDAirport : Ind Airport ;
-
-fun BissallancaBissauAirport : Ind Airport ;
-
-fun BitamAirport : Ind Airport ;
-
-fun BitburgAirBaseBitburgAirport : Ind Airport ;
-
-fun BizantQueenslandAirport : Ind Airport ;
-
-fun BlackallQueenslandAirport : Ind Airport ;
-
-fun BlackbushAirport : Ind Airport ;
-
-fun BlackwaterQueenslandAirport : Ind Airport ;
-
-fun BlagoveschenskAmurAirport : Ind Airport ;
-
-fun BlaineMunicipalWAAirport : Ind Airport ;
-
-fun BlakeleyIslandWAAirport : Ind Airport ;
-
-fun BlandingMunicipalUTAirport : Ind Airport ;
-
-fun BlangBintangBandaAcehKuturajaAirport : Ind Airport ;
-
-fun BlockIslandStateRIAirport : Ind Airport ;
-
-fun BloomfieldQueenslandAirport : Ind Airport ;
-
-fun BloomingtonNormalILAirport : Ind Airport ;
-
-fun BlosserMunicipalKSAirport : Ind Airport ;
-
-fun BlueCanyonNyackCAAirport : Ind Airport ;
-
-fun BlueFoxBayAKAirport : Ind Airport ;
-
-fun BlueLagoonAirport : Ind Airport ;
-
-fun BluefieldsAirport : Ind Airport ;
-
-fun BlumenauSCAirport : Ind Airport ;
-
-fun BlytheCAAirport : Ind Airport ;
-
-fun BlythevilleMunicipalARAirport : Ind Airport ;
-
-fun BoAirport : Ind Airport ;
-
-fun BoaVistaRRAirport : Ind Airport ;
-
-fun BoanaAirport : Ind Airport ;
-
-fun BoangAirport : Ind Airport ;
-
-fun BoavistaBoavistaAirport : Ind Airport ;
-
-fun BobBakerMemorialAKAirport : Ind Airport ;
-
-fun BobSikesFLAirport : Ind Airport ;
-
-fun BobbyLChainMunicipalMSAirport : Ind Airport ;
-
-fun BoboDioulassoAirport : Ind Airport ;
-
-fun BocaRatonFLAirport : Ind Airport ;
-
-fun BocadoAcreAMAirport : Ind Airport ;
-
-fun BocasdelToroAirport : Ind Airport ;
-
-fun BodinumuAirport : Ind Airport ;
-
-fun BodoAirport : Ind Airport ;
-
-fun BoeingFieldKingCountyInternationalWAAirport : Ind Airport ;
-
-fun BoendeAirport : Ind Airport ;
-
-fun BogheAirport : Ind Airport ;
-
-fun BograAirport : Ind Airport ;
-
-fun BoiguIslandQueenslandAirport : Ind Airport ;
-
-fun BoireFieldNHAirport : Ind Airport ;
-
-fun BoiseAirTerminalGowenFieldIDAirport : Ind Airport ;
-
-fun BokeAirport : Ind Airport ;
-
-fun BokondiniAirport : Ind Airport ;
-
-fun BokoroAirport : Ind Airport ;
-
-fun BokuAirport : Ind Airport ;
-
-fun BolAirport : Ind Airport ;
-
-fun BolaangAirport : Ind Airport ;
-
-fun BoleAddisAbabaAirport : Ind Airport ;
-
-fun BollingAirForceBaseDCAirport : Ind Airport ;
-
-fun BollonQueenslandAirport : Ind Airport ;
-
-fun BolovipAirport : Ind Airport ;
-
-fun BolwarraQueenslandAirport : Ind Airport ;
-
-fun BolzanoBozenAirport : Ind Airport ;
-
-fun BomaAirport : Ind Airport ;
-
-fun BomaiAirport : Ind Airport ;
-
-fun BonanzaAirport : Ind Airport ;
-
-fun BondoukouAirport : Ind Airport ;
-
-fun BongoAirport : Ind Airport ;
-
-fun BontangAirport : Ind Airport ;
-
-fun BontheAirport : Ind Airport ;
-
-fun BooneCountyARAirport : Ind Airport ;
-
-fun BooneMunicipalIAAirport : Ind Airport ;
-
-fun BoqueAirport : Ind Airport ;
-
-fun BoraBoraSocietyIslandsAirport : Ind Airport ;
-
-fun BordjBadjiMokhtarAirport : Ind Airport ;
-
-fun BorgarfjordurAirport : Ind Airport ;
-
-fun BoridiAirport : Ind Airport ;
-
-fun BorispolKievAirport : Ind Airport ;
-
-fun BorkumAirport : Ind Airport ;
-
-fun BorlangeAirBaseBorlangeAirport : Ind Airport ;
-
-fun BorotouAirport : Ind Airport ;
-
-fun BorregoValleyCAAirport : Ind Airport ;
-
-fun BorroloolaNorthernTerritoryAirport : Ind Airport ;
-
-fun BossangoaAirport : Ind Airport ;
-
-fun BossasoAirport : Ind Airport ;
-
-fun BossembeleAirport : Ind Airport ;
-
-fun BossetAirport : Ind Airport ;
-
-fun BostAirport : Ind Airport ;
-
-fun BostonCityHeliportMAAirport : Ind Airport ;
-
-fun BoswellBayAKAirport : Ind Airport ;
-
-fun BotopasieAirport : Ind Airport ;
-
-fun BouSaadaAirport : Ind Airport ;
-
-fun BouakeAirport : Ind Airport ;
-
-fun BouarAirport : Ind Airport ;
-
-fun BoucaAirport : Ind Airport ;
-
-fun BoulderCityMunicipalNVAirport : Ind Airport ;
-
-fun BouliaQueenslandAirport : Ind Airport ;
-
-fun BounaAirport : Ind Airport ;
-
-fun BoundaryAKAirport : Ind Airport ;
-
-fun BoundialiAirport : Ind Airport ;
-
-fun BoundjiAirport : Ind Airport ;
-
-fun BourgesAirport : Ind Airport ;
-
-fun BourkeNewSouthWalesAirport : Ind Airport ;
-
-fun BournemouthEnglandAirport : Ind Airport ;
-
-fun BoutheonSaintEtienneAirport : Ind Airport ;
-
-fun BowermanWAAirport : Ind Airport ;
-
-fun BowersFieldWAAirport : Ind Airport ;
-
-fun BowlingGreenWarrenCountyRegionalKYAirport : Ind Airport ;
-
-fun BowmanMunicipalNDAirport : Ind Airport ;
-
-fun BoxboroughMAAirport : Ind Airport ;
-
-fun BoyneMountainMIAirport : Ind Airport ;
-
-fun BozoumAirport : Ind Airport ;
-
-fun BradfordEnglandAirport : Ind Airport ;
-
-fun BradfordRegionalPAAirport : Ind Airport ;
-
-fun BradleyInternationalCTAirport : Ind Airport ;
-
-fun BradshawArmyAirfieldHIAirport : Ind Airport ;
-
-fun BragaAirport : Ind Airport ;
-
-fun BragancaAirport : Ind Airport ;
-
-fun BragancaPAAirport : Ind Airport ;
-
-fun BrahmanAirport : Ind Airport ;
-
-fun BrainerdCrowWingCountyRegionalMNAirport : Ind Airport ;
-
-fun BramptonIslandQueenslandAirport : Ind Airport ;
-
-fun BratskIrkutskAirport : Ind Airport ;
-
-fun BraunschweigAirport : Ind Airport ;
-
-fun BrawleyMunicipalCAAirport : Ind Airport ;
-
-fun BreidhdalurBreiddalsvikAirport : Ind Airport ;
-
-fun BremerhavenAirport : Ind Airport ;
-
-fun BrennerFieldNEAirport : Ind Airport ;
-
-fun BrenwicksAKAirport : Ind Airport ;
-
-fun BrestBrestAirport : Ind Airport ;
-
-fun BrevesPAAirport : Ind Airport ;
-
-fun BrevigMissionAKAirport : Ind Airport ;
-
-fun BrewarrinaNewSouthWalesAirport : Ind Airport ;
-
-fun BrewsterFieldNEAirport : Ind Airport ;
-
-fun BrezhnevAirport : Ind Airport ;
-
-fun BriaAirport : Ind Airport ;
-
-fun BrighamCityUTAirport : Ind Airport ;
-
-fun BrightVictoriaAirport : Ind Airport ;
-
-fun BrightonDownsQueenslandAirport : Ind Airport ;
-
-fun BrightonEnglandAirport : Ind Airport ;
-
-fun BringelandFoerdeFordeAirport : Ind Airport ;
-
-fun BriveLaGaillardeAirport : Ind Airport ;
-
-fun BrizeNortonStationEnglandAirport : Ind Airport ;
-
-fun BrnoAirport : Ind Airport ;
-
-fun BroadusMTAirport : Ind Airport ;
-
-fun BrokenBowMunicipalNEAirport : Ind Airport ;
-
-fun BrokenHillNewSouthWalesAirport : Ind Airport ;
-
-fun BrommaStockholmAirport : Ind Airport ;
-
-fun BronnoyBronnoysundBroennoeysundAirport : Ind Airport ;
-
-fun BrookingsMunicipalSDAirport : Ind Airport ;
-
-fun BrookingsStateORAirport : Ind Airport ;
-
-fun BroomeWesternAustraliaAirport : Ind Airport ;
-
-fun BrownsNEAirport : Ind Airport ;
-
-fun BrownsvilleSouthPadreIslandInternationalTXAirport : Ind Airport ;
-
-fun BrownwoodMunicipalTXAirport : Ind Airport ;
-
-fun BruggenAirport : Ind Airport ;
-
-fun BrumadoBAAirport : Ind Airport ;
-
-fun BrunetteDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun BrusLagunaAirport : Ind Airport ;
-
-fun BryanskBryanskAirport : Ind Airport ;
-
-fun BryantArmyHeliportAKAirport : Ind Airport ;
-
-fun BryceCanyonUTAirport : Ind Airport ;
-
-fun BuaAirport : Ind Airport ;
-
-fun BubaqueAirport : Ind Airport ;
-
-fun BuchananFieldCAAirport : Ind Airport ;
-
-fun BucholzArmyAirFieldKwajaleinKMRKwajaleinAirport : Ind Airport ;
-
-fun BuckeyeMunicipalAZAirport : Ind Airport ;
-
-fun BucklandAKAirport : Ind Airport ;
-
-fun BuckleyArmyNationalGuardBaseCOAirport : Ind Airport ;
-
-fun BudardalurAirport : Ind Airport ;
-
-fun BuenaventuraAirport : Ind Airport ;
-
-fun BuenosAiresAirport : Ind Airport ;
-
-fun BukaAirport : Ind Airport ;
-
-fun BukhoroBukharaBukharaAirport : Ind Airport ;
-
-fun BukhtaTiksiIceStripYakutiaSakhaAirport : Ind Airport ;
-
-fun BukobaAirport : Ind Airport ;
-
-fun BulawayoAirport : Ind Airport ;
-
-fun BulchiAirport : Ind Airport ;
-
-fun BulimbaQueenslandAirport : Ind Airport ;
-
-fun BullfrogBasinUTAirport : Ind Airport ;
-
-fun BuloloAirport : Ind Airport ;
-
-fun BumbaAirport : Ind Airport ;
-
-fun BunburyWesternAustraliaAirport : Ind Airport ;
-
-fun BundabergQueenslandAirport : Ind Airport ;
-
-fun BundiAirport : Ind Airport ;
-
-fun BuniaAirport : Ind Airport ;
-
-fun BunyuAirport : Ind Airport ;
-
-fun BuraoAirport : Ind Airport ;
-
-fun BurbankGlendalePasadenaCAAirport : Ind Airport ;
-
-fun BurgasBourgasAirport : Ind Airport ;
-
-fun BurkeCountyGAAirport : Ind Airport ;
-
-fun BurkeLakefrontOHAirport : Ind Airport ;
-
-fun BurketownQueenslandAirport : Ind Airport ;
-
-fun BurleyMunicipalIDAirport : Ind Airport ;
-
-fun BurlingtonInternationalVTAirport : Ind Airport ;
-
-fun BurlingtonMunicipalIAAirport : Ind Airport ;
-
-fun BurlingtonMunicipalMAAirport : Ind Airport ;
-
-fun BurnieWynyardTasmaniaAirport : Ind Airport ;
-
-fun BurnsMunicipalORAirport : Ind Airport ;
-
-fun BursaAirport : Ind Airport ;
-
-fun BurtonwoodAirport : Ind Airport ;
-
-fun BuryStEdmundsEnglandAirport : Ind Airport ;
-
-fun BushFieldGAAirport : Ind Airport ;
-
-fun BushehrAirport : Ind Airport ;
-
-fun ButareAirport : Ind Airport ;
-
-fun ButaritariAirport : Ind Airport ;
-
-fun ButlerCountyPAAirport : Ind Airport ;
-
-fun ButlerMemorialMOAirport : Ind Airport ;
-
-fun ButonBabauAirport : Ind Airport ;
-
-fun ButterworthAirportMalaysia : Ind Airport ;
-
-fun ButtsArmyAirFieldCOAirport : Ind Airport ;
-
-fun ButuanAirport : Ind Airport ;
-
-fun BuyoAirport : Ind Airport ;
-
-fun BuziosAirport : Ind Airport ;
-
-fun BuzzardsPointSeaplaneBaseDCAirport : Ind Airport ;
-
-fun BydgoszczAirport : Ind Airport ;
-
-fun BykovoMoscowAirport : Ind Airport ;
-
-fun CDavidCampbellFieldCorsicanaMunicipalTXAirport : Ind Airport ;
-
-fun CaMauAirport : Ind Airport ;
-
-fun CabimasAirport : Ind Airport ;
-
-fun CabinCreekAKAirport : Ind Airport ;
-
-fun CabindaAirport : Ind Airport ;
-
-fun CableCAAirport : Ind Airport ;
-
-fun CableHeliportCAAirport : Ind Airport ;
-
-fun CaboRojoAirport : Ind Airport ;
-
-fun CaceresMGAirport : Ind Airport ;
-
-fun CachoeiraBAAirport : Ind Airport ;
-
-fun CadjehounCotonouAirport : Ind Airport ;
-
-fun CagayandeOroAirport : Ind Airport ;
-
-fun CagayandeSuluAirport : Ind Airport ;
-
-fun CahokiaILStLouisAirport : Ind Airport ;
-
-fun CaicaraAirport : Ind Airport ;
-
-fun CaigumaAirport : Ind Airport ;
-
-fun CairoILAirport : Ind Airport ;
-
-fun CairoInternationalCairoAirport : Ind Airport ;
-
-fun CajamarcaAirport : Ind Airport ;
-
-fun CalabarAirport : Ind Airport ;
-
-fun CalabozoAirport : Ind Airport ;
-
-fun CalamaAirport : Ind Airport ;
-
-fun CalapanAirport : Ind Airport ;
-
-fun CalbayogAirport : Ind Airport ;
-
-fun CaldasNovasGOAirport : Ind Airport ;
-
-fun CaledoniaAirport : Ind Airport ;
-
-fun CaletaOliviaAirport : Ind Airport ;
-
-fun CalexicoInternationalCAAirport : Ind Airport ;
-
-fun CalicutAirport : Ind Airport ;
-
-fun CalipatriaMunicipalCAAirport : Ind Airport ;
-
-fun CallawayGardensHarrisCountyGAAirport : Ind Airport ;
-
-fun CaloundraQueenslandAirport : Ind Airport ;
-
-fun CalvertonNavalWeaponsIndustrialReserveNYAirport : Ind Airport ;
-
-fun CamaxiloAirport : Ind Airport ;
-
-fun CambridgeAirport : Ind Airport ;
-
-fun CambridgeDorchesterMDAirport : Ind Airport ;
-
-fun CambridgeMAAirport : Ind Airport ;
-
-fun CamdenNewSouthWalesAirport : Ind Airport ;
-
-fun CameronMemorialMOAirport : Ind Airport ;
-
-fun CametaAirport : Ind Airport ;
-
-fun CamfieldNorthernTerritoryAirport : Ind Airport ;
-
-fun CamiguinAirport : Ind Airport ;
-
-fun CamillaMitchellCountyGAAirport : Ind Airport ;
-
-fun CamiloDazaCucutaAirport : Ind Airport ;
-
-fun CamiriAirport : Ind Airport ;
-
-fun CamocimCEAirport : Ind Airport ;
-
-fun CamoowealQueenslandAirport : Ind Airport ;
-
-fun CampParksHeliportCAAirport : Ind Airport ;
-
-fun CampPickettBlackstoneArmyAirFieldAllenCPerkinsonMunicipalVAAirport : Ind Airport ;
-
-fun CampbellArmyAirFieldKYAirport : Ind Airport ;
-
-fun CampbellporeAirport : Ind Airport ;
-
-fun CampbeltownAirport : Ind Airport ;
-
-fun CampinaGrandePBAirport : Ind Airport ;
-
-fun CampinasSPAirport : Ind Airport ;
-
-fun CampoCAAirport : Ind Airport ;
-
-fun CampoDellOroCorsicaAirport : Ind Airport ;
-
-fun CampoGrandeMSAirport : Ind Airport ;
-
-fun CampodoAragAirport : Ind Airport ;
-
-fun CamposRJAirport : Ind Airport ;
-
-fun CanaimaAirport : Ind Airport ;
-
-fun CanakkaleAirport : Ind Airport ;
-
-fun CananeaAirport : Ind Airport ;
-
-fun CanasAirport : Ind Airport ;
-
-fun CanavieirasBAAirport : Ind Airport ;
-
-fun CanberraAustralianCapitalTerritoryAirport : Ind Airport ;
-
-fun CancunInternationalCancunAirport : Ind Airport ;
-
-fun CandalaAirport : Ind Airport ;
-
-fun CandilejasAirport : Ind Airport ;
-
-fun Candle2AKAirport : Ind Airport ;
-
-fun CaneFieldDominicaRoseauAirport : Ind Airport ;
-
-fun CangambaAirport : Ind Airport ;
-
-fun CannonAirForceBaseNMAirport : Ind Airport ;
-
-fun CanobieQueenslandAirport : Ind Airport ;
-
-fun CanouanIslandCanouanIslandAirport : Ind Airport ;
-
-fun CantonIslandAirport : Ind Airport ;
-
-fun CanyonlandsFieldUTAirport : Ind Airport ;
-
-fun CapHaitienAirport : Ind Airport ;
-
-fun CapSkirringAirport : Ind Airport ;
-
-fun CapeEleutheraAirport : Ind Airport ;
-
-fun CapeFlatteryAirport : Ind Airport ;
-
-fun CapeGirardeauMunicipalMOAirport : Ind Airport ;
-
-fun CapeGloucesterAirport : Ind Airport ;
-
-fun CapeNewhenhamLRRSAKAirport : Ind Airport ;
-
-fun CapePalmasAirport : Ind Airport ;
-
-fun CapePoleSeaplaneBaseAKAirport : Ind Airport ;
-
-fun CapeRomanzofLRRSAKAirport : Ind Airport ;
-
-fun CapeRooneyAirport : Ind Airport ;
-
-fun CapeSarichefAKAirport : Ind Airport ;
-
-fun CapeSpencerCoastGuardHeliportAKAirport : Ind Airport ;
-
-fun CapeStJacquesAirport : Ind Airport ;
-
-fun CapeVogelAirport : Ind Airport ;
-
-fun CapitalCityKYAirport : Ind Airport ;
-
-fun CapitalCityPAAirport : Ind Airport ;
-
-fun CapitanVicenteAlmandoLaRiojaAirport : Ind Airport ;
-
-fun CaptainJackThomasElDoradoKSAirport : Ind Airport ;
-
-fun CapurganaAirport : Ind Airport ;
-
-fun CaquetaniaAirport : Ind Airport ;
-
-fun CarNicobarAirport : Ind Airport ;
-
-fun CarajasPAAirport : Ind Airport ;
-
-fun CaransebesAirport : Ind Airport ;
-
-fun CarauariAMAirport : Ind Airport ;
-
-fun CaravelasBAAirport : Ind Airport ;
-
-fun CarcassonneAirport : Ind Airport ;
-
-fun CaribouMunicipalMEAirport : Ind Airport ;
-
-fun CarimaguaAirport : Ind Airport ;
-
-fun CarlisleAirport : Ind Airport ;
-
-fun CarltonHillWesternAustraliaAirport : Ind Airport ;
-
-fun CarmelitaAirport : Ind Airport ;
-
-fun CarmendePatagonesAirport : Ind Airport ;
-
-fun CarnarvonWesternAustraliaAirport : Ind Airport ;
-
-fun CarnotAirport : Ind Airport ;
-
-fun CarolinaMAAirport : Ind Airport ;
-
-fun CarpentariaDownsQueenslandAirport : Ind Airport ;
-
-fun CarpiquetCaenAirport : Ind Airport ;
-
-fun CarriacouAirport : Ind Airport ;
-
-fun CarrickfinnAirport : Ind Airport ;
-
-fun CarrielSurConcepcionAirport : Ind Airport ;
-
-fun CarrollCountyTNAirport : Ind Airport ;
-
-fun CarsonNVAirport : Ind Airport ;
-
-fun CarswellAirForceBaseTXAirport : Ind Airport ;
-
-fun CartagoAirport : Ind Airport ;
-
-fun CartiAirport : Ind Airport ;
-
-fun CaruaruPEAirport : Ind Airport ;
-
-fun CarupanoAirport : Ind Airport ;
-
-fun CaruruAirport : Ind Airport ;
-
-fun CarutaperaMAAirport : Ind Airport ;
-
-fun CasaGrandeMunicipalAZAirport : Ind Airport ;
-
-fun CasaleBrindisiAirport : Ind Airport ;
-
-fun CascadeLocksStateORAirport : Ind Airport ;
-
-fun CascavelPRAirport : Ind Airport ;
-
-fun CascoGoveCoastGuardStationAKAirport : Ind Airport ;
-
-fun CasiguranAirport : Ind Airport ;
-
-fun CasinoNewSouthWalesAirport : Ind Airport ;
-
-fun CasiquaAirport : Ind Airport ;
-
-fun CassidyLineIslandsAirport : Ind Airport ;
-
-fun CassilandiaMGAirport : Ind Airport ;
-
-fun CastawayAirport : Ind Airport ;
-
-fun CastlebarAirport : Ind Airport ;
-
-fun CastresAirport : Ind Airport ;
-
-fun CasuaritoAirport : Ind Airport ;
-
-fun CatCayAirport : Ind Airport ;
-
-fun CatIslandAirport : Ind Airport ;
-
-fun CatacamasAirport : Ind Airport ;
-
-fun CatalinaCAAirport : Ind Airport ;
-
-fun CatamarcaAirport : Ind Airport ;
-
-fun CataratasPRAirport : Ind Airport ;
-
-fun CataratasdelIguazuIguazuAirport : Ind Airport ;
-
-fun CatarmanAirport : Ind Airport ;
-
-fun CatavinaAirport : Ind Airport ;
-
-fun CattleCreekAirport : Ind Airport ;
-
-fun CauayanAirport : Ind Airport ;
-
-fun CaucasiaAirport : Ind Airport ;
-
-fun CaumontAvignonAirport : Ind Airport ;
-
-fun CavernCityAirTerminalNMAirport : Ind Airport ;
-
-fun CaviahueAirport : Ind Airport ;
-
-fun CaxiasdoSulRSAirport : Ind Airport ;
-
-fun CayeChapelAirport : Ind Airport ;
-
-fun CayoLargodelSurAirport : Ind Airport ;
-
-fun CazomboAirport : Ind Airport ;
-
-fun CebuAirport : Ind Airport ;
-
-fun CedarCityMunicipalUTAirport : Ind Airport ;
-
-fun CedarRapidsMunicipalIAAirport : Ind Airport ;
-
-fun CedrosIslandAirport : Ind Airport ;
-
-fun CedunaSouthAustraliaAirport : Ind Airport ;
-
-fun CentennialCOAirport : Ind Airport ;
-
-fun CenterIslandWAAirport : Ind Airport ;
-
-fun CenterportHeliportCAAirport : Ind Airport ;
-
-fun CentervilleMunicipalTNAirport : Ind Airport ;
-
-fun CentralAKAirport : Ind Airport ;
-
-fun CentralBusinessDistrictDowntownHeliportTXAirport : Ind Airport ;
-
-fun CentralNebraskaRegionalNEAirport : Ind Airport ;
-
-fun CentralPretoriaPretoriaAirport : Ind Airport ;
-
-fun CentralWisconsinWIAirport : Ind Airport ;
-
-fun CentraliaMunicipalILAirport : Ind Airport ;
-
-fun CenturyCityHeliportCAAirport : Ind Airport ;
-
-fun CepuAirport : Ind Airport ;
-
-fun CeresAirport : Ind Airport ;
-
-fun CerroMorenoAntofagastaAirport : Ind Airport ;
-
-fun CessnaAircraftFieldKSAirport : Ind Airport ;
-
-fun CessnockNewSouthWalesAirport : Ind Airport ;
-
-fun ChacallutaAricaAirport : Ind Airport ;
-
-fun ChachapoyasAirport : Ind Airport ;
-
-fun ChadronMunicipalNEAirport : Ind Airport ;
-
-fun ChaffeeArmyAirFieldARAirport : Ind Airport ;
-
-fun ChakcharanAirport : Ind Airport ;
-
-fun ChalkyitsikAKAirport : Ind Airport ;
-
-fun ChallisIDAirport : Ind Airport ;
-
-fun ChanaralAirport : Ind Airport ;
-
-fun ChandigarhAirport : Ind Airport ;
-
-fun ChandlerFieldMNAirport : Ind Airport ;
-
-fun ChandlerMunicipalAZAirport : Ind Airport ;
-
-fun ChangHuaAirport : Ind Airport ;
-
-fun ChangchunAirport : Ind Airport ;
-
-fun ChangdeAirport : Ind Airport ;
-
-fun ChangshaAirport : Ind Airport ;
-
-fun ChanguinolaAirport : Ind Airport ;
-
-fun ChangzhiAirport : Ind Airport ;
-
-fun ChangzhouAirport : Ind Airport ;
-
-fun ChaniaKhaniaAirport : Ind Airport ;
-
-fun ChanuteMartinJohnsonKSAirport : Ind Airport ;
-
-fun ChaoyangAirport : Ind Airport ;
-
-fun ChaparralAirport : Ind Airport ;
-
-fun ChapelcoSanMartindelosAndesAirport : Ind Airport ;
-
-fun CharataAirport : Ind Airport ;
-
-fun CharjeuChardzhouLebapAirport : Ind Airport ;
-
-fun CharlesCZettelMemorialMIAirport : Ind Airport ;
-
-fun CharlesCityMunicipalIAAirport : Ind Airport ;
-
-fun CharlesWoodHelipadNJAirport : Ind Airport ;
-
-fun CharlesdeGaulleParisAirport : Ind Airport ;
-
-fun CharlestonAirForceBaseCharlestonInternationalSCAirport : Ind Airport ;
-
-fun CharlestonExecutiveSCAirport : Ind Airport ;
-
-fun CharlevilleQueenslandAirport : Ind Airport ;
-
-fun CharlevoixMunicipalMIAirport : Ind Airport ;
-
-fun CharlotteDouglasInternationalNCAirport : Ind Airport ;
-
-fun CharlottesvilleAlbemarleVAAirport : Ind Airport ;
-
-fun CharltonBuildingHeliportMNAirport : Ind Airport ;
-
-fun ChartersTowersQueenslandAirport : Ind Airport ;
-
-fun ChaseCityMunicipalVAAirport : Ind Airport ;
-
-fun ChathamIslandAirport : Ind Airport ;
-
-fun ChathamMunicipalMAAirport : Ind Airport ;
-
-fun ChathamSeaplaneBaseAKAirport : Ind Airport ;
-
-fun ChaurjhariAirport : Ind Airport ;
-
-fun ChautauquaCountyDunkirkNYAirport : Ind Airport ;
-
-fun ChautauquaCountyJamestownNYAirport : Ind Airport ;
-
-fun ChavesAirport : Ind Airport ;
-
-fun CheboksaryChuvashiaAirport : Ind Airport ;
-
-fun ChefornakAKAirport : Ind Airport ;
-
-fun ChehalisCentraliaWAAirport : Ind Airport ;
-
-fun ChejuAirport : Ind Airport ;
-
-fun ChelyabinskChelyabinskAirport : Ind Airport ;
-
-fun ChenaHotSpringsAKAirport : Ind Airport ;
-
-fun ChengduAirport : Ind Airport ;
-
-fun ChengtehAirport : Ind Airport ;
-
-fun ChennaultIndustrialAirparkLAAirport : Ind Airport ;
-
-fun CherawMunicipalSCAirport : Ind Airport ;
-
-fun CherkasyCherkasyAirport : Ind Airport ;
-
-fun ChernihivChernigovChernihivAirport : Ind Airport ;
-
-fun ChernivtsiChernovtsyChernivtsiAirport : Ind Airport ;
-
-fun ChernofskiHarborSeaplaneBaseAKAirport : Ind Airport ;
-
-fun CherokeeMunicipalIAAirport : Ind Airport ;
-
-fun CherokeeSoundAirport : Ind Airport ;
-
-fun CherokeeVillageARAirport : Ind Airport ;
-
-fun CherokeeVillageHeliportARAirport : Ind Airport ;
-
-fun CherrabunWesternAustraliaAirport : Ind Airport ;
-
-fun CherribahQueenslandAirport : Ind Airport ;
-
-fun ChesapeakeMunicipalVAAirport : Ind Airport ;
-
-fun ChesapeakeOHHuntingtonAirport : Ind Airport ;
-
-fun ChesterAirport : Ind Airport ;
-
-fun ChesterCountyGOCarlsonPAAirport : Ind Airport ;
-
-fun ChetumalAirport : Ind Airport ;
-
-fun CheyenneWYAirport : Ind Airport ;
-
-fun ChiangMaiInternationalChiangMaiAirport : Ind Airport ;
-
-fun ChiangRaiINternationalChiangRaiAirport : Ind Airport ;
-
-fun ChiayiAirport : Ind Airport ;
-
-fun ChichenItzaAirport : Ind Airport ;
-
-fun ChickashaMunicipalOKAirport : Ind Airport ;
-
-fun ChickenAKAirport : Ind Airport ;
-
-fun ChiclayoAirport : Ind Airport ;
-
-fun ChicoMunicipalCAAirport : Ind Airport ;
-
-fun ChievresAirport : Ind Airport ;
-
-fun ChifengAirport : Ind Airport ;
-
-fun ChignikAKAirport : Ind Airport ;
-
-fun ChignikBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun ChignikFisheriesAKAirport : Ind Airport ;
-
-fun ChignikLagoonAKAirport : Ind Airport ;
-
-fun ChigorodoAirport : Ind Airport ;
-
-fun ChilasAirport : Ind Airport ;
-
-fun ChildressMunicipalTXAirport : Ind Airport ;
-
-fun ChileChicoAirport : Ind Airport ;
-
-fun ChilekaBlantyreAirport : Ind Airport ;
-
-fun ChilkoLakeAerodromeBCAirport : Ind Airport ;
-
-fun ChiloquinStateORAirport : Ind Airport ;
-
-fun ChimboteAirport : Ind Airport ;
-
-fun ChimbuKundiawaAirport : Ind Airport ;
-
-fun ChinaBasinHeliportCAAirport : Ind Airport ;
-
-fun ChinchillaAirport : Ind Airport ;
-
-fun ChindeAirport : Ind Airport ;
-
-fun ChingolaAirport : Ind Airport ;
-
-fun ChinguittiAirport : Ind Airport ;
-
-fun ChinhaeAirport : Ind Airport ;
-
-fun ChinjuAirport : Ind Airport ;
-
-fun ChinoCAAirport : Ind Airport ;
-
-fun ChiosAirport : Ind Airport ;
-
-fun ChipataAirport : Ind Airport ;
-
-fun ChippewaCountyInternationalMIAirport : Ind Airport ;
-
-fun ChippewaValleyRegionalWIAirport : Ind Airport ;
-
-fun ChiquimulaAirport : Ind Airport ;
-
-fun ChiredziBuffaloRangeAirport : Ind Airport ;
-
-fun ChisanaAKAirport : Ind Airport ;
-
-fun ChisholmHibbingMNAirport : Ind Airport ;
-
-fun ChisinauKishineyAirport : Ind Airport ;
-
-fun ChistochinaAKAirport : Ind Airport ;
-
-fun ChitinaAKAirport : Ind Airport ;
-
-fun ChitipaAirport : Ind Airport ;
-
-fun ChitoseSapporoAirport : Ind Airport ;
-
-fun ChitralAirport : Ind Airport ;
-
-fun ChivoloAirport : Ind Airport ;
-
-fun ChocHeliportCAAirport : Ind Airport ;
-
-fun ChoiseulBayAirport : Ind Airport ;
-
-fun CholetAirport : Ind Airport ;
-
-fun ChomleyAKAirport : Ind Airport ;
-
-fun ChongqingAirport : Ind Airport ;
-
-fun ChonjuAirport : Ind Airport ;
-
-fun ChristchurchInternationalChristchurchAirport : Ind Airport ;
-
-fun ChristianshabAirport : Ind Airport ;
-
-fun ChristmasCreekWesternAustraliaAirport : Ind Airport ;
-
-fun ChuathbalukAKAirport : Ind Airport ;
-
-fun ChubCayBerryAirport : Ind Airport ;
-
-fun CiampinoRomaRomeAirport : Ind Airport ;
-
-fun CiciaAirport : Ind Airport ;
-
-fun CiegodeAvilaAirport : Ind Airport ;
-
-fun CienfuegosAirport : Ind Airport ;
-
-fun CigliAirBaseIzmirAirport : Ind Airport ;
-
-fun CilacapJavaAirport : Ind Airport ;
-
-fun CimitarraAirport : Ind Airport ;
-
-fun CircleCityAKAirport : Ind Airport ;
-
-fun CircleHotSpringsAKAirport : Ind Airport ;
-
-fun CirebonAirport : Ind Airport ;
-
-fun CiticorpHeliportCAAirport : Ind Airport ;
-
-fun CityofColoradoSpringsMunicipalCOAirport : Ind Airport ;
-
-fun CityofIndustryCivicFinancialHeliportCAAirport : Ind Airport ;
-
-fun CiudadAcunaAirport : Ind Airport ;
-
-fun CiudadBolivarAirport : Ind Airport ;
-
-fun CiudadConstitucionAirport : Ind Airport ;
-
-fun CiudadGuayanaAirport : Ind Airport ;
-
-fun CiudadObregonAirport : Ind Airport ;
-
-fun CiudadVictoriaAirport : Ind Airport ;
-
-fun CiudaddelCarmenAirport : Ind Airport ;
-
-fun CiudaddelEsteAirport : Ind Airport ;
-
-fun ClaremontMunicipalNHAirport : Ind Airport ;
-
-fun ClarkCountyINAirport : Ind Airport ;
-
-fun ClarkFieldLuzonAirport : Ind Airport ;
-
-fun ClarksPointAKAirport : Ind Airport ;
-
-fun ClayCenterMunicipalKSAirport : Ind Airport ;
-
-fun ClaytonMunicipalAirparkNMAirport : Ind Airport ;
-
-fun ClearLakeAKAirport : Ind Airport ;
-
-fun ClearwaterAirParkFLAirport : Ind Airport ;
-
-fun ClemsonOconeeCountySCAirport : Ind Airport ;
-
-fun ClermontQueenslandAirport : Ind Airport ;
-
-fun CleveSouthAustraliaAirport : Ind Airport ;
-
-fun ClevelandHopkinsInternationalOHAirport : Ind Airport ;
-
-fun CliftonHillsSouthAustraliaAirport : Ind Airport ;
-
-fun ClintonMunicipalIAAirport : Ind Airport ;
-
-fun ClintonMunicipalOKAirport : Ind Airport ;
-
-fun ClintonShermanOKAirport : Ind Airport ;
-
-fun ClintonvilleMunicipalWIAirport : Ind Airport ;
-
-fun CloncurryQueenslandAirport : Ind Airport ;
-
-fun ClorindaAirport : Ind Airport ;
-
-fun ClovisMunicipalNMAirport : Ind Airport ;
-
-fun ClujNapocaAirport : Ind Airport ;
-
-fun ClunyQueenslandAirport : Ind Airport ;
-
-fun CoalHarbourWaterAerodromeBCAirport : Ind Airport ;
-
-fun CoalingaMunicipalCAAirport : Ind Airport ;
-
-fun CoariAMAirport : Ind Airport ;
-
-fun CobanAirport : Ind Airport ;
-
-fun CobarNewSouthWalesAirport : Ind Airport ;
-
-fun CobijaAirport : Ind Airport ;
-
-fun CochinAirport : Ind Airport ;
-
-fun CoconutIslandQueenslandAirport : Ind Airport ;
-
-fun CocosIslandsCocosKeelingIslandsAirport : Ind Airport ;
-
-fun CodazziAirport : Ind Airport ;
-
-fun CoenQueenslandAirport : Ind Airport ;
-
-fun CoeurdAleneAirTerminalIDAirport : Ind Airport ;
-
-fun CoffeePointAKAirport : Ind Airport ;
-
-fun CoffeyvilleMunicipalKSAirport : Ind Airport ;
-
-fun CoffmanCoveSeaplaneBaseAKAirport : Ind Airport ;
-
-fun CoffsHarbourNewSouthWalesAirport : Ind Airport ;
-
-fun CognacAirport : Ind Airport ;
-
-fun CoimbatoreAirport : Ind Airport ;
-
-fun CoimbraAirport : Ind Airport ;
-
-fun ColdBayAKAirport : Ind Airport ;
-
-fun ColdfootAKAirport : Ind Airport ;
-
-fun ColemanMunicipalTXAirport : Ind Airport ;
-
-fun ColimaAirport : Ind Airport ;
-
-fun CollIslandAirport : Ind Airport ;
-
-fun CollarenebriNewSouthWalesAirport : Ind Airport ;
-
-fun CollegeParkMDAirport : Ind Airport ;
-
-fun CollieWesternAustraliaAirport : Ind Airport ;
-
-fun CollinsvilleQueenslandAirport : Ind Airport ;
-
-fun ColmarAirport : Ind Airport ;
-
-fun ColoniaAirport : Ind Airport ;
-
-fun ColoniaCatrielAirport : Ind Airport ;
-
-fun ColonsayScotlandAirport : Ind Airport ;
-
-fun ColoradoCreekAKAirport : Ind Airport ;
-
-fun ColtishallAirport : Ind Airport ;
-
-fun ColumbiaCAAirport : Ind Airport ;
-
-fun ColumbiaMetropolitanSCAirport : Ind Airport ;
-
-fun ColumbiaOwensDowntownSCAirport : Ind Airport ;
-
-fun ColumbiaRegionalMOAirport : Ind Airport ;
-
-fun ColumbusAirForceBaseMSAirport : Ind Airport ;
-
-fun ColumbusMetropolitanGAAirport : Ind Airport ;
-
-fun ColumbusMunicipalINAirport : Ind Airport ;
-
-fun ColumbusMunicipalNMAirport : Ind Airport ;
-
-fun ColvilleRiverAKAirport : Ind Airport ;
-
-fun ComandanteEsporaBahiaBlancaAirport : Ind Airport ;
-
-fun ComillaAirport : Ind Airport ;
-
-fun ComisoAirport : Ind Airport ;
-
-fun CommerceBusinessParkHeliportCAAirport : Ind Airport ;
-
-fun CommodoreCenterHeliportCAAirport : Ind Airport ;
-
-fun ComodoroPierresConcordiaAirport : Ind Airport ;
-
-fun ComptonCAAirport : Ind Airport ;
-
-fun ConceicaoPBAirport : Ind Airport ;
-
-fun ConcepcionAirport : Ind Airport ;
-
-fun ConcordMunicipalNHAirport : Ind Airport ;
-
-fun ConcordiaAMAirport : Ind Airport ;
-
-fun CondobolinNewSouthWalesAirport : Ind Airport ;
-
-fun CondotoAirport : Ind Airport ;
-
-fun ConfinsMGAirport : Ind Airport ;
-
-fun ConfrezaAirport : Ind Airport ;
-
-fun CongoTownAirport : Ind Airport ;
-
-fun ConnaughtAirport : Ind Airport ;
-
-fun ConquistaMGAirport : Ind Airport ;
-
-fun ConstanzaAirport : Ind Airport ;
-
-fun ContamanaAirport : Ind Airport ;
-
-fun ConverseCountyWYAirport : Ind Airport ;
-
-fun ConwayHorryCountySCAirport : Ind Airport ;
-
-fun CooberPedySouthAustraliaAirport : Ind Airport ;
-
-fun CoochBeharAirport : Ind Airport ;
-
-fun CooindaNorthernTerritoryAirport : Ind Airport ;
-
-fun CookMunicipalMNAirport : Ind Airport ;
-
-fun CooktownQueenslandAirport : Ind Airport ;
-
-fun CoolahNewSouthWalesAirport : Ind Airport ;
-
-fun CoolawanyahWesternAustraliaAirport : Ind Airport ;
-
-fun CoolibahNorthernTerritoryAirport : Ind Airport ;
-
-fun CoonabarabranNewSouthWalesAirport : Ind Airport ;
-
-fun CoonambleNewSouthWalesAirport : Ind Airport ;
-
-fun CoorabieAirport : Ind Airport ;
-
-fun CootamundraNewSouthWalesAirport : Ind Airport ;
-
-fun CopiapoAirport : Ind Airport ;
-
-fun CopperCenter2AKAirport : Ind Airport ;
-
-fun CoquimboAirport : Ind Airport ;
-
-fun CorazondeJesusAirport : Ind Airport ;
-
-fun CorcoranCAAirport : Ind Airport ;
-
-fun CordovaMunicipalAKAirport : Ind Airport ;
-
-fun CoritgoBlancoAirport : Ind Airport ;
-
-fun CornelioProcopioPRAirport : Ind Airport ;
-
-fun CornerBayAKAirport : Ind Airport ;
-
-fun CoroAirport : Ind Airport ;
-
-fun CoromandelAirport : Ind Airport ;
-
-fun CoronelFSVignetaIquitosAirport : Ind Airport ;
-
-fun CorowaNewSouthWalesAirport : Ind Airport ;
-
-fun CorozalAirport : Ind Airport ;
-
-fun CorozalAirportColombia : Ind Airport ;
-
-fun CorpusChristiInternationalTXAirport : Ind Airport ;
-
-fun CorrientesAirport : Ind Airport ;
-
-fun CortezMontezumaCountyCOAirport : Ind Airport ;
-
-fun CortinadAmpezzoAirport : Ind Airport ;
-
-fun CortlandCountyAirportChaseFieldNYAirport : Ind Airport ;
-
-fun CorumbaSPAirport : Ind Airport ;
-
-fun CorvallisMunicipalORAirport : Ind Airport ;
-
-fun CorvoIslandAzoresAirport : Ind Airport ;
-
-fun CostaMarquesROAirport : Ind Airport ;
-
-fun CotabatoAirport : Ind Airport ;
-
-fun CoteduRifAlHoceimaAirport : Ind Airport ;
-
-fun CottonwoodAZAirport : Ind Airport ;
-
-fun CotullaLaSalleCountyTXAirport : Ind Airport ;
-
-fun CoulterFieldTXAirport : Ind Airport ;
-
-fun CouncilAKAirport : Ind Airport ;
-
-fun CouncilBluffsMunicipalIAAirport : Ind Airport ;
-
-fun CountyMemorialMOAirport : Ind Airport ;
-
-fun CourchevalAirport : Ind Airport ;
-
-fun CovenasAirport : Ind Airport ;
-
-fun CovilhaAirport : Ind Airport ;
-
-fun CovingtonKYCincinnatiAirport : Ind Airport ;
-
-fun CowarieSouthAustraliaAirport : Ind Airport ;
-
-fun CowellSouthAustraliaAirport : Ind Airport ;
-
-fun CowraNewSouthWalesAirport : Ind Airport ;
-
-fun CoxsBazarAirport : Ind Airport ;
-
-fun CoyhaiqueAirport : Ind Airport ;
-
-fun CoyolesAirport : Ind Airport ;
-
-fun CozadMunicipalNEAirport : Ind Airport ;
-
-fun CozumelAirport : Ind Airport ;
-
-fun CradockAirport : Ind Airport ;
-
-fun CraftonIslandAKAirport : Ind Airport ;
-
-fun CraigCoveAirport : Ind Airport ;
-
-fun CraigMoffatCOAirport : Ind Airport ;
-
-fun CraigMunicipalFLAirport : Ind Airport ;
-
-fun CraigSeaplaneBaseAKAirport : Ind Airport ;
-
-fun CraiovaAirport : Ind Airport ;
-
-fun CramFieldNEAirport : Ind Airport ;
-
-fun CraneCountyTXAirport : Ind Airport ;
-
-fun CraneIslandWAAirport : Ind Airport ;
-
-fun CravenCountyRegionalNCAirport : Ind Airport ;
-
-fun CrawfordsvilleMunicipalINAirport : Ind Airport ;
-
-fun CresswellDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun CrestonMunicipalIAAirport : Ind Airport ;
-
-fun CrisciumaSCAirport : Ind Airport ;
-
-fun CrispCountyCordeleGAAirport : Ind Airport ;
-
-fun CristoforoColomboSeatriGenoaGenovaAirport : Ind Airport ;
-
-fun CrokerIslandNorthernTerritoryAirport : Ind Airport ;
-
-fun CromartyAirport : Ind Airport ;
-
-fun CrookedCreekAKAirport : Ind Airport ;
-
-fun CrookedIslandCrookedAirport : Ind Airport ;
-
-fun CrookstonMunicipalKirkwoodFieldMNAirport : Ind Airport ;
-
-fun CrossCityFLAirport : Ind Airport ;
-
-fun CrossvilleMemorialTNAirport : Ind Airport ;
-
-fun CrotoneAirport : Ind Airport ;
-
-fun CroydonQueenslandAirport : Ind Airport ;
-
-fun CruzAltaRSAirport : Ind Airport ;
-
-fun CruzeirodoSulACAirport : Ind Airport ;
-
-fun CrystalLakePAAirport : Ind Airport ;
-
-fun CuambaNovaFreixoAirport : Ind Airport ;
-
-fun CubeCoveAKAirport : Ind Airport ;
-
-fun CuddapahAirport : Ind Airport ;
-
-fun CuddihyFieldTXAirport : Ind Airport ;
-
-fun CueWesternAustraliaAirport : Ind Airport ;
-
-fun CuencaAirport : Ind Airport ;
-
-fun CuiabaMTAirport : Ind Airport ;
-
-fun CuitoCuanavaleAirport : Ind Airport ;
-
-fun CulebraCulebraAirport : Ind Airport ;
-
-fun CulionAirport : Ind Airport ;
-
-fun CulverCityCAAirport : Ind Airport ;
-
-fun CumanaAirport : Ind Airport ;
-
-fun CumberlandMDAirport : Ind Airport ;
-
-fun CumbicaSPAirport : Ind Airport ;
-
-fun CuneoAirport : Ind Airport ;
-
-fun CunnamullaQueenslandAirport : Ind Airport ;
-
-fun CurrilloAirport : Ind Airport ;
-
-fun CurtisFieldTXAirport : Ind Airport ;
-
-fun CururupuMAAirport : Ind Airport ;
-
-fun CushingMunicipalOKAirport : Ind Airport ;
-
-fun CutralCoAirport : Ind Airport ;
-
-fun CuyahogaCountyOHAirport : Ind Airport ;
-
-fun CuzcoAirport : Ind Airport ;
-
-fun CzestochowaAirport : Ind Airport ;
-
-fun DFMalanCapeTownAirport : Ind Airport ;
-
-fun DPSHeliportStCroixAirport : Ind Airport ;
-
-fun DaLatAirport : Ind Airport ;
-
-fun DaNangAirport : Ind Airport ;
-
-fun DabajoroAirport : Ind Airport ;
-
-fun DabbaAirport : Ind Airport ;
-
-fun DaduAirport : Ind Airport ;
-
-fun DaetAirport : Ind Airport ;
-
-fun DahlCreekAKAirport : Ind Airport ;
-
-fun DahlgrenVAUSNavalSurfaceWeaponsCenterAirport : Ind Airport ;
-
-fun DajaliGeiloAirport : Ind Airport ;
-
-fun DajarraQueenslandAirport : Ind Airport ;
-
-fun DalamanAirport : Ind Airport ;
-
-fun DalbandinAirport : Ind Airport ;
-
-fun DalbertisAirport : Ind Airport ;
-
-fun DalbyQueenslandAirport : Ind Airport ;
-
-fun DalhartMunicipalTXAirport : Ind Airport ;
-
-fun DalianAirport : Ind Airport ;
-
-fun DallasDowntownHeliportTXAirport : Ind Airport ;
-
-fun DallasFortWorthInternationalTXAirport : Ind Airport ;
-
-fun DallasLoveFieldTXAirport : Ind Airport ;
-
-fun DallasNorthTXAirport : Ind Airport ;
-
-fun DaloaAirport : Ind Airport ;
-
-fun DaltonMunicipalGAAirport : Ind Airport ;
-
-fun DalyRiverNorthernTerritoryAirport : Ind Airport ;
-
-fun DalyWatersNorthernTerritoryAirport : Ind Airport ;
-
-fun DamascusAirport : Ind Airport ;
-
-fun DananeAirport : Ind Airport ;
-
-fun DanburyCTAirport : Ind Airport ;
-
-fun DanburyMunicipalCTAirport : Ind Airport ;
-
-fun DandongAirport : Ind Airport ;
-
-fun DangAirport : Ind Airport ;
-
-fun DangerBayAKAirport : Ind Airport ;
-
-fun DangrigaAirport : Ind Airport ;
-
-fun DanielFieldGAAirport : Ind Airport ;
-
-fun DannellyAirNationalGuardBaseOperationsALAirport : Ind Airport ;
-
-fun DansvilleMunicipalNYAirport : Ind Airport ;
-
-fun DanvilleRegionalVAAirport : Ind Airport ;
-
-fun DaparizoAirport : Ind Airport ;
-
-fun DarchulaAirport : Ind Airport ;
-
-fun DaresSalaamAirport : Ind Airport ;
-
-fun DargavilleAirport : Ind Airport ;
-
-fun DarjeelingAirport : Ind Airport ;
-
-fun DaruAirport : Ind Airport ;
-
-fun DaruAirportSierraLeone : Ind Airport ;
-
-fun DarwazAirport : Ind Airport ;
-
-fun DatadawaiAirport : Ind Airport ;
-
-fun DathinaAirport : Ind Airport ;
-
-fun DatongAirport : Ind Airport ;
-
-fun DauanIslandQueenslandAirport : Ind Airport ;
-
-fun DaugavpilsAirport : Ind Airport ;
-
-fun DaupAirport : Ind Airport ;
-
-fun DavenportDownsQueenslandAirport : Ind Airport ;
-
-fun DavenportMunicipalIAAirport : Ind Airport ;
-
-fun DavidWayneHooksMemorialTXAirport : Ind Airport ;
-
-fun DaviessCountyINAirport : Ind Airport ;
-
-fun DavisMonthanAirForceBaseAZAirport : Ind Airport ;
-
-fun DavisonArmyAirFieldVAAirport : Ind Airport ;
-
-fun DawsonCommunityMTAirport : Ind Airport ;
-
-fun DaxianAirport : Ind Airport ;
-
-fun DaydreamIslandQueenslandAirport : Ind Airport ;
-
-fun DayongAirport : Ind Airport ;
-
-fun DaytonaBeachRegionalFLAirport : Ind Airport ;
-
-fun DeKalbTaylorMunicipalILAirport : Ind Airport ;
-
-fun DearbornHelistopMIAirport : Ind Airport ;
-
-fun DeathValleyCAAirport : Ind Airport ;
-
-fun DebapareAirport : Ind Airport ;
-
-fun DeboyneAirport : Ind Airport ;
-
-fun DebraMarcosAirport : Ind Airport ;
-
-fun DebraTaborAirport : Ind Airport ;
-
-fun DebrecenAirport : Ind Airport ;
-
-fun DecaturCountyIndustrialAirParkGAAirport : Ind Airport ;
-
-fun DecaturHiWayINAirport : Ind Airport ;
-
-fun DecaturILAirport : Ind Airport ;
-
-fun DecaturShoresWAAirport : Ind Airport ;
-
-fun DecorahMunicipalIAAirport : Ind Airport ;
-
-fun DedougouAirport : Ind Airport ;
-
-fun DeerParkNYAirport : Ind Airport ;
-
-fun DeeringAKAirport : Ind Airport ;
-
-fun DefianceMemorialOHAirport : Ind Airport ;
-
-fun DegahburAirport : Ind Airport ;
-
-fun DehradunAirport : Ind Airport ;
-
-fun DeirezzurAirport : Ind Airport ;
-
-fun DelRioInternationalTXAirport : Ind Airport ;
-
-fun DelawareAirparkDEAirport : Ind Airport ;
-
-fun DelawareMunicipalOHAirport : Ind Airport ;
-
-fun DelissavilleNorthernTerritoryAirport : Ind Airport ;
-
-fun DeltaCountyMIAirport : Ind Airport ;
-
-fun DeltaDownsQueenslandAirport : Ind Airport ;
-
-fun DeltaJunctionAKAirport : Ind Airport ;
-
-fun DeltaMunicipalUTAirport : Ind Airport ;
-
-fun DembidolloAirport : Ind Airport ;
-
-fun DemingMunicipalNMAirport : Ind Airport ;
-
-fun DenHaagTheHagueHilversumAirport : Ind Airport ;
-
-fun DenhamWesternAustraliaAirport : Ind Airport ;
-
-fun DeniliquinNewSouthWalesAirport : Ind Airport ;
-
-fun DenisonMunicipalIAAirport : Ind Airport ;
-
-fun DenizliAirport : Ind Airport ;
-
-fun DennisIslandAirport : Ind Airport ;
-
-fun DentonMunicipalTXAirport : Ind Airport ;
-
-fun DeolsChateaurouxAirport : Ind Airport ;
-
-fun DeraIsmailKhanAirport : Ind Airport ;
-
-fun DerbyWesternAustraliaAirport : Ind Airport ;
-
-fun DerimAirport : Ind Airport ;
-
-fun DernaAirport : Ind Airport ;
-
-fun DesMoinesInternationalIAAirport : Ind Airport ;
-
-fun DesertRockNVAirport : Ind Airport ;
-
-fun DesrochesAirport : Ind Airport ;
-
-fun DessieAirport : Ind Airport ;
-
-fun DestinFortWaltonBeachFLAirport : Ind Airport ;
-
-fun DetroitCityMIAirport : Ind Airport ;
-
-fun DetroitLakesMNAirport : Ind Airport ;
-
-fun DetroitMetropolitanWayneCountyMIAirport : Ind Airport ;
-
-fun DeurneAntwerpenAntwerpAirport : Ind Airport ;
-
-fun DeuxAlpesAirport : Ind Airport ;
-
-fun DevaAirport : Ind Airport ;
-
-fun DevilsLakeMunicipalNDAirport : Ind Airport ;
-
-fun DevonportTasmaniaAirport : Ind Airport ;
-
-fun DexterMunicipalMOAirport : Ind Airport ;
-
-fun DhahranAirport : Ind Airport ;
-
-fun DhalaAirport : Ind Airport ;
-
-fun DhamarAirport : Ind Airport ;
-
-fun DhanbadAirport : Ind Airport ;
-
-fun DhangarhiAirport : Ind Airport ;
-
-fun DharamsalaAirport : Ind Airport ;
-
-fun DiamantinaLakesQueenslandAirport : Ind Airport ;
-
-fun DiamantinoMTAirport : Ind Airport ;
-
-fun DianopolisGOAirport : Ind Airport ;
-
-fun DiapagaAirport : Ind Airport ;
-
-fun DibaaAirport : Ind Airport ;
-
-fun DibrugarhAirport : Ind Airport ;
-
-fun DickinsonMunicipalNDAirport : Ind Airport ;
-
-fun DiegoAracenaIquiqueAirport : Ind Airport ;
-
-fun DiegoJimenezTorresFajardoAirport : Ind Airport ;
-
-fun DieppeAirport : Ind Airport ;
-
-fun DietrichAKAirport : Ind Airport ;
-
-fun DiliAirport : Ind Airport ;
-
-fun DillantHopkinsNHAirport : Ind Airport ;
-
-fun DillinghamAKAirport : Ind Airport ;
-
-fun DillinghamAirForceBaseHIAirport : Ind Airport ;
-
-fun DillonCountySCAirport : Ind Airport ;
-
-fun DillonMTAirport : Ind Airport ;
-
-fun DillonsBayAirport : Ind Airport ;
-
-fun DimapurAirport : Ind Airport ;
-
-fun DimmitCountyTXAirport : Ind Airport ;
-
-fun DinajpurAirport : Ind Airport ;
-
-fun DinangatAirport : Ind Airport ;
-
-fun DinderAirport : Ind Airport ;
-
-fun DiosAirport : Ind Airport ;
-
-fun DipologAirport : Ind Airport ;
-
-fun DirranbandiQueenslandAirport : Ind Airport ;
-
-fun DivinopolisMGAirport : Ind Airport ;
-
-fun DiwanofRoyalCourtAirport : Ind Airport ;
-
-fun DixieQueenslandAirport : Ind Airport ;
-
-fun DiyarbakirAirport : Ind Airport ;
-
-fun DjambalaAirport : Ind Airport ;
-
-fun DjerbaZarzisDjerbaJerbaAirport : Ind Airport ;
-
-fun DjoemoeAirport : Ind Airport ;
-
-fun DjougouAirport : Ind Airport ;
-
-fun DjupivogurAirport : Ind Airport ;
-
-fun DnipropetrovskDnepropetrovskDnipropetrovskAirport : Ind Airport ;
-
-fun DoanyAirport : Ind Airport ;
-
-fun DoboAruIslandsAirport : Ind Airport ;
-
-fun DodgeCityRegionalKSAirport : Ind Airport ;
-
-fun DodoimaAirport : Ind Airport ;
-
-fun DodomaAirport : Ind Airport ;
-
-fun DohaAirport : Ind Airport ;
-
-fun DoiniAirport : Ind Airport ;
-
-fun DolisieAirport : Ind Airport ;
-
-fun DolomiAKAirport : Ind Airport ;
-
-fun DolpaAirport : Ind Airport ;
-
-fun DomodemovoMoscowAirport : Ind Airport ;
-
-fun DonMuangInternationalBangkokAirport : Ind Airport ;
-
-fun DonaldsonCenterSCAirport : Ind Airport ;
-
-fun DoncasterAirport : Ind Airport ;
-
-fun DonetskDonetskAirport : Ind Airport ;
-
-fun DongaraWesternAustraliaAirport : Ind Airport ;
-
-fun DongolaAirport : Ind Airport ;
-
-fun DoomadgeeMissionQueenslandAirport : Ind Airport ;
-
-fun DoraBayAKAirport : Ind Airport ;
-
-fun DoradoAirportprivateDoradoAirport : Ind Airport ;
-
-fun DorchesterCountySCAirport : Ind Airport ;
-
-fun DoriAirport : Ind Airport ;
-
-fun DornochAirport : Ind Airport ;
-
-fun DorobisoroAirport : Ind Airport ;
-
-fun DorraAirport : Ind Airport ;
-
-fun DortmundAirport : Ind Airport ;
-
-fun DorundaStationQueenslandAirport : Ind Airport ;
-
-fun DosLagunasAirport : Ind Airport ;
-
-fun DothanALAirport : Ind Airport ;
-
-fun DoualaAirport : Ind Airport ;
-
-fun DouglasMunicipalAZAirport : Ind Airport ;
-
-fun DouglasMunicipalGAAirport : Ind Airport ;
-
-fun DouradosMGAirport : Ind Airport ;
-
-fun DoverAirForceBaseDEAirport : Ind Airport ;
-
-fun DowntownAirparkOKAirport : Ind Airport ;
-
-fun DowntownCAAirport : Ind Airport ;
-
-fun DowntownHeliportMNAirport : Ind Airport ;
-
-fun DrakeFieldARAirport : Ind Airport ;
-
-fun DramaAirport : Ind Airport ;
-
-fun DresdenAirport : Ind Airport ;
-
-fun DrietabbetjeAirport : Ind Airport ;
-
-fun DriftRiverAKAirport : Ind Airport ;
-
-fun DriftwoodBayAKAirport : Ind Airport ;
-
-fun DrumduffQueenslandAirport : Ind Airport ;
-
-fun DrummondIslandMIAirport : Ind Airport ;
-
-fun DrummondMTAirport : Ind Airport ;
-
-fun DschangAirport : Ind Airport ;
-
-fun DuBoisJeffersonCountyPAAirport : Ind Airport ;
-
-fun DubaiAirport : Ind Airport ;
-
-fun DubboNewSouthWalesAirport : Ind Airport ;
-
-fun DublinAirport : Ind Airport ;
-
-fun DuboisMunicipalIDAirport : Ind Airport ;
-
-fun DubrovnikAirport : Ind Airport ;
-
-fun DubuqueRegionalIAAirport : Ind Airport ;
-
-fun DuckNCAirport : Ind Airport ;
-
-fun DuisburgAirport : Ind Airport ;
-
-fun DulkaninnaSouthAustraliaAirport : Ind Airport ;
-
-fun DuluthInternationalMNAirport : Ind Airport ;
-
-fun DumDumInternationalCalcuttaAirport : Ind Airport ;
-
-fun DumagueteAirport : Ind Airport ;
-
-fun DumaiAirport : Ind Airport ;
-
-fun DumasMunicipalTXAirport : Ind Airport ;
-
-fun DumpuAirport : Ind Airport ;
-
-fun DunbarQueenslandAirport : Ind Airport ;
-
-fun DuncanTownRaggedAirport : Ind Airport ;
-
-fun DundasAirport : Ind Airport ;
-
-fun DundeeAirport : Ind Airport ;
-
-fun DundoAirport : Ind Airport ;
-
-fun DunedinAirport : Ind Airport ;
-
-fun DunhuangAirport : Ind Airport ;
-
-fun DunkIslandQueenslandAirport : Ind Airport ;
-
-fun DunkerqueCalaisAirport : Ind Airport ;
-
-fun DupageILAirport : Ind Airport ;
-
-fun DurangoAirport : Ind Airport ;
-
-fun DurangoLaPlataCountyCOAirport : Ind Airport ;
-
-fun DurhamDownsQueenslandAirport : Ind Airport ;
-
-fun DurrieQueenslandAirport : Ind Airport ;
-
-fun DushanbeKaroteginAirport : Ind Airport ;
-
-fun DwightILAirport : Ind Airport ;
-
-fun DyceScotlandAirport : Ind Airport ;
-
-fun DyessAirForceBaseTXAirport : Ind Airport ;
-
-fun DysartQueenslandAirport : Ind Airport ;
-
-fun EagleAKAirport : Ind Airport ;
-
-fun EagleAirParkTXAirport : Ind Airport ;
-
-fun EagleCountyRegionalCOAirport : Ind Airport ;
-
-fun EagleGroveMunicipalIAAirport : Ind Airport ;
-
-fun EagleLakeTXAirport : Ind Airport ;
-
-fun EaglePassMunicipalTXAirport : Ind Airport ;
-
-fun EagleRiverUnionWIAirport : Ind Airport ;
-
-fun EakerAirForceBaseARAirport : Ind Airport ;
-
-fun EakerFieldOKAirport : Ind Airport ;
-
-fun EarlHenryOKAirport : Ind Airport ;
-
-fun East60thStreetHeliportNYAirport : Ind Airport ;
-
-fun EastForkAKAirport : Ind Airport ;
-
-fun EastGreenlandAirport : Ind Airport ;
-
-fun EastHamptonNYAirport : Ind Airport ;
-
-fun EastLondonAirport : Ind Airport ;
-
-fun EastMidlandsDerbyAirport : Ind Airport ;
-
-fun EasternSlopesRegionalMEAirport : Ind Airport ;
-
-fun EasterwoodFieldTXAirport : Ind Airport ;
-
-fun EastlandMunicipalTXAirport : Ind Airport ;
-
-fun EastmanDodgeCountyGAAirport : Ind Airport ;
-
-fun EastonMunicipalMDAirport : Ind Airport ;
-
-fun EastonStateWAAirport : Ind Airport ;
-
-fun EbadonAirport : Ind Airport ;
-
-fun EbolowaAirport : Ind Airport ;
-
-fun EchucaNewSouthWalesAirport : Ind Airport ;
-
-fun EdDabbaAirport : Ind Airport ;
-
-fun EdayAirport : Ind Airport ;
-
-fun EdentonMunicipalNCAirport : Ind Airport ;
-
-fun EdinburghScotlandAirport : Ind Airport ;
-
-fun EdnaBayAKAirport : Ind Airport ;
-
-fun EdwardRiverQueenslandAirport : Ind Airport ;
-
-fun EdwardsAirForceBaseCAAirport : Ind Airport ;
-
-fun EeideGroningenAirport : Ind Airport ;
-
-fun EekAKAirport : Ind Airport ;
-
-fun EfogiAirport : Ind Airport ;
-
-fun EgedesmindeAirport : Ind Airport ;
-
-fun EgegikAKAirport : Ind Airport ;
-
-fun EgilsstadirAirport : Ind Airport ;
-
-fun EglinAirForceAuxiliaryNr3DukeFLAirport : Ind Airport ;
-
-fun EiaAirport : Ind Airport ;
-
-fun EielsonAirForceBaseAKAirport : Ind Airport ;
-
-fun EightFathombightAirport : Ind Airport ;
-
-fun EinYahavAirport : Ind Airport ;
-
-fun EinasleighQueenslandAirport : Ind Airport ;
-
-fun EindhovenAirport : Ind Airport ;
-
-fun EirunepeAMAirport : Ind Airport ;
-
-fun EkerekuAirport : Ind Airport ;
-
-fun EkibastuzAirport : Ind Airport ;
-
-fun EkukAKAirport : Ind Airport ;
-
-fun EkwokAKAirport : Ind Airport ;
-
-fun ElArishAirport : Ind Airport ;
-
-fun ElBancoAirport : Ind Airport ;
-
-fun ElBargeAirport : Ind Airport ;
-
-fun ElBolsonAirport : Ind Airport ;
-
-fun ElBormaAirport : Ind Airport ;
-
-fun ElCajonCAAirport : Ind Airport ;
-
-fun ElCampoMetroAirportIncTXAirport : Ind Airport ;
-
-fun ElCharcoAirport : Ind Airport ;
-
-fun ElCipresEnsenadaAirport : Ind Airport ;
-
-fun ElDebbaAirport : Ind Airport ;
-
-fun ElDoradoAirport : Ind Airport ;
-
-fun ElEncantoAirport : Ind Airport ;
-
-fun ElFasherAirport : Ind Airport ;
-
-fun ElGeneinaAirport : Ind Airport ;
-
-fun ElGoleaAirport : Ind Airport ;
-
-fun ElMaitenAirport : Ind Airport ;
-
-fun ElMellahAnnabaAirport : Ind Airport ;
-
-fun ElMinyaAirport : Ind Airport ;
-
-fun ElMonteCAAirport : Ind Airport ;
-
-fun ElNaranjoAirport : Ind Airport ;
-
-fun ElObeidAirport : Ind Airport ;
-
-fun ElPasoInternationalTXAirport : Ind Airport ;
-
-fun ElRealAirport : Ind Airport ;
-
-fun ElRecreoAirport : Ind Airport ;
-
-fun ElSalvadorAirport : Ind Airport ;
-
-fun ElYopalAirport : Ind Airport ;
-
-fun ElazigAirport : Ind Airport ;
-
-fun ElbaIslandAirport : Ind Airport ;
-
-fun ElchoIslandNorthernTerritoryAirport : Ind Airport ;
-
-fun EldoradoAirport : Ind Airport ;
-
-fun EldoradoBogotaAirport : Ind Airport ;
-
-fun EldoretAirport : Ind Airport ;
-
-fun EldredRockCoastGuardHeliportAKAirport : Ind Airport ;
-
-fun ElfinCoveSeaplaneBaseAKAirport : Ind Airport ;
-
-fun ElimAKAirport : Ind Airport ;
-
-fun EliptaminAirport : Ind Airport ;
-
-fun ElistaKalmykiaAirport : Ind Airport ;
-
-fun EliyeSpringsAirport : Ind Airport ;
-
-fun ElizabethCityCostGuardAirStationMunicipalNCAirport : Ind Airport ;
-
-fun ElizabethFieldNYAirport : Ind Airport ;
-
-fun ElkCityMunicipalOKAirport : Ind Airport ;
-
-fun ElkedraNorthernTerritoryAirport : Ind Airport ;
-
-fun ElkhartMortonCountyKSAirport : Ind Airport ;
-
-fun ElkhartMunicipalINAirport : Ind Airport ;
-
-fun ElkinsRandolphCountyJenningsRandolphFieldWVAirport : Ind Airport ;
-
-fun ElkoMunicipalAirportJCHarrisFieldNVAirport : Ind Airport ;
-
-fun EllAirport : Ind Airport ;
-
-fun EllamarSeaplaneBaseAKAirport : Ind Airport ;
-
-fun EllenChurchFieldIAAirport : Ind Airport ;
-
-fun EllingtonFieldTXAirport : Ind Airport ;
-
-fun EllisrasAirport : Ind Airport ;
-
-fun ElmasSardiniaAirport : Ind Airport ;
-
-fun ElmendorfAirForceBaseAKAirport : Ind Airport ;
-
-fun ElmiraCorningRegionalNYAirport : Ind Airport ;
-
-fun ElorzaAirport : Ind Airport ;
-
-fun EltariKupangAirport : Ind Airport ;
-
-fun EltonHensleyMemorialMOAirport : Ind Airport ;
-
-fun ElyAirportYellandFieldNVAirport : Ind Airport ;
-
-fun EmaeAirport : Ind Airport ;
-
-fun EmbarcaderoCAAirport : Ind Airport ;
-
-fun EmbessaAirport : Ind Airport ;
-
-fun EmdenAirport : Ind Airport ;
-
-fun EmeraldQueenslandAirport : Ind Airport ;
-
-fun EmeryvilleCAAirport : Ind Airport ;
-
-fun EmirauAirport : Ind Airport ;
-
-fun EmmetsburgMunicipalIAAirport : Ind Airport ;
-
-fun EmmonakAKAirport : Ind Airport ;
-
-fun EmoONAirport : Ind Airport ;
-
-fun EmpangeniAirport : Ind Airport ;
-
-fun EmporiaMunicipalKSAirport : Ind Airport ;
-
-fun EmporiaMunicipalVAAirport : Ind Airport ;
-
-fun EnarotaliAirport : Ind Airport ;
-
-fun EncarnacionAirport : Ind Airport ;
-
-fun EndeAirport : Ind Airport ;
-
-fun EneabbaWesternAustraliaAirport : Ind Airport ;
-
-fun EngatiAirport : Ind Airport ;
-
-fun EnglishBayAKAirport : Ind Airport ;
-
-fun EnisejskAirport : Ind Airport ;
-
-fun EnitewokAirport : Ind Airport ;
-
-fun EnontekioEnontekioeAirport : Ind Airport ;
-
-fun EnschedeAirport : Ind Airport ;
-
-fun EnshiAirport : Ind Airport ;
-
-fun EnterpriseMunicipalALAirport : Ind Airport ;
-
-fun EnuguAirport : Ind Airport ;
-
-fun EpenaAirport : Ind Airport ;
-
-fun EphrataMunicipalWAAirport : Ind Airport ;
-
-fun EpiAirport : Ind Airport ;
-
-fun EpinalAirport : Ind Airport ;
-
-fun EpiskopiAirport : Ind Airport ;
-
-fun ErandiqueAirport : Ind Airport ;
-
-fun EraveAirport : Ind Airport ;
-
-fun ErcanAirport : Ind Airport ;
-
-fun ErechimRSAirport : Ind Airport ;
-
-fun ErfurtAirport : Ind Airport ;
-
-fun ErhacAirport : Ind Airport ;
-
-fun ErieInternationalPAAirport : Ind Airport ;
-
-fun ErigavoAirport : Ind Airport ;
-
-fun ErldundaNorthernTerritoryAirport : Ind Airport ;
-
-fun ErnabellaSouthAustraliaAirport : Ind Airport ;
-
-fun ErnestoCortissozBarranquillaAirport : Ind Airport ;
-
-fun EromangaQueenslandAirport : Ind Airport ;
-
-fun ErosWindhoekAirport : Ind Airport ;
-
-fun ErrachidiaAirport : Ind Airport ;
-
-fun ErrolNHAirport : Ind Airport ;
-
-fun ErumeAirport : Ind Airport ;
-
-fun ErzincanAirport : Ind Airport ;
-
-fun ErzurumAirport : Ind Airport ;
-
-fun EsaAlaAirport : Ind Airport ;
-
-fun EsbjergAirport : Ind Airport ;
-
-fun EsenbogaAnkaraAirport : Ind Airport ;
-
-fun EskilstunaAirport : Ind Airport ;
-
-fun EskisehirAirport : Ind Airport ;
-
-fun EsperadinhaBravaAirport : Ind Airport ;
-
-fun EsperanceWesternAustraliaAirport : Ind Airport ;
-
-fun EspinosaMGAirport : Ind Airport ;
-
-fun EsquelAirport : Ind Airport ;
-
-fun EssenAirport : Ind Airport ;
-
-fun EssexCountyNJAirport : Ind Airport ;
-
-fun EsseyNancyAirport : Ind Airport ;
-
-fun EsthervilleMunicipalIAAirport : Ind Airport ;
-
-fun EtadunnaSouthAustraliaAirport : Ind Airport ;
-
-fun EuaAirport : Ind Airport ;
-
-fun EuclaWesternAustraliaAirport : Ind Airport ;
-
-fun EurekaNVAirport : Ind Airport ;
-
-fun EuroBaselMulhouseAirport : Ind Airport ;
-
-fun EvaDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun EvadaleLandingStripTXAirport : Ind Airport ;
-
-fun EvansHeadNewSouthWalesAirport : Ind Airport ;
-
-fun EvanstonUintaCountyBurnsFieldWYAirport : Ind Airport ;
-
-fun EvansvilleRegionalINAirport : Ind Airport ;
-
-fun EvelethVirginiaMunicipalMNAirport : Ind Airport ;
-
-fun EvenesAirport : Ind Airport ;
-
-fun EvreuxAirport : Ind Airport ;
-
-fun EwerAirport : Ind Airport ;
-
-fun EwoAirport : Ind Airport ;
-
-fun ExcursionInletSeaplaneBaseAKAirport : Ind Airport ;
-
-fun ExeterAirport : Ind Airport ;
-
-fun ExmouthAirport : Ind Airport ;
-
-fun FDRooseveltStEustathiusAirport : Ind Airport ;
-
-fun FaatteAirport : Ind Airport ;
-
-fun FabaliSiApiaAirport : Ind Airport ;
-
-fun FadaNgourmaAirport : Ind Airport ;
-
-fun FagurholsmyriAirport : Ind Airport ;
-
-fun FairIsleAirport : Ind Airport ;
-
-fun FairbanksInternationalAKAirport : Ind Airport ;
-
-fun FairburyMunicipalNEAirport : Ind Airport ;
-
-fun FairfieldCountySCAirport : Ind Airport ;
-
-fun FairfieldMunicipalIAAirport : Ind Airport ;
-
-fun FairfieldMunicipalILAirport : Ind Airport ;
-
-fun FairfordRAFStationEnglandAirport : Ind Airport ;
-
-fun FairmontMunicipalMNAirport : Ind Airport ;
-
-fun FairmontStateAirfieldNEAirport : Ind Airport ;
-
-fun FaizabadAirport : Ind Airport ;
-
-fun FakahinaAirport : Ind Airport ;
-
-fun FakaravaSocietyIslandsAirport : Ind Airport ;
-
-fun FakfakFakFakNewGuineaAirport : Ind Airport ;
-
-fun FalconStateParkTXAirport : Ind Airport ;
-
-fun FaleoloApiaAirport : Ind Airport ;
-
-fun FallonMunicipalNVAirport : Ind Airport ;
-
-fun FallsBayAKAirport : Ind Airport ;
-
-fun FallsCreekAirport : Ind Airport ;
-
-fun FallsInternationalMNAirport : Ind Airport ;
-
-fun FalseIslandSeaplaneBaseAKAirport : Ind Airport ;
-
-fun FalsePassAKAirport : Ind Airport ;
-
-fun FaneAirport : Ind Airport ;
-
-fun FangatauAirport : Ind Airport ;
-
-fun FanningFieldIDAirport : Ind Airport ;
-
-fun FarahAirport : Ind Airport ;
-
-fun FaranahAirport : Ind Airport ;
-
-fun FarewellAKAirport : Ind Airport ;
-
-fun FarghonaFerganaFarghonaAirport : Ind Airport ;
-
-fun FaribaultMunicipalMNAirport : Ind Airport ;
-
-fun FariopurAirport : Ind Airport ;
-
-fun FarmingtonRegionalMOAirport : Ind Airport ;
-
-fun FarmvilleMunicipalVAAirport : Ind Airport ;
-
-fun FarnboroughEnglandAirport : Ind Airport ;
-
-fun FaroAirport : Ind Airport ;
-
-fun FarranforeAirport : Ind Airport ;
-
-fun FaskrudsfjordurAirport : Ind Airport ;
-
-fun FayaAirport : Ind Airport ;
-
-fun FayettevilleMunicipalTNAirport : Ind Airport ;
-
-fun FayettevilleRegionalAirportGrannisFieldNCAirport : Ind Airport ;
-
-fun FderikAirport : Ind Airport ;
-
-fun FelkerArmyAirFieldVAAirport : Ind Airport ;
-
-fun FeraIslandAirport : Ind Airport ;
-
-fun FeraminAirport : Ind Airport ;
-
-fun FergusFallsMunicipalAirportEinarMickelsonFieldMNAirport : Ind Airport ;
-
-fun FergusonsGulfAirport : Ind Airport ;
-
-fun FerihegyiBudapestAirport : Ind Airport ;
-
-fun FerkessedougouAirport : Ind Airport ;
-
-fun FernandodeNoronhaFNAirport : Ind Airport ;
-
-fun FertiliaSardiniaAirport : Ind Airport ;
-
-fun FestusMemorialMOAirport : Ind Airport ;
-
-fun FetlarIslandAirport : Ind Airport ;
-
-fun FicksburgAirport : Ind Airport ;
-
-fun FigariCorsicaAirport : Ind Airport ;
-
-fun FiladelfiaAirport : Ind Airport ;
-
-fun FillmoreUTAirport : Ind Airport ;
-
-fun FiltonAirport : Ind Airport ;
-
-fun FinCreekAKAirport : Ind Airport ;
-
-fun FinchaAirport : Ind Airport ;
-
-fun FindlayOHAirport : Ind Airport ;
-
-fun FinkeNorthernTerritoryAirport : Ind Airport ;
-
-fun FinleyNewSouthWalesAirport : Ind Airport ;
-
-fun FinschhafenAirport : Ind Airport ;
-
-fun FireCoveAKAirport : Ind Airport ;
-
-fun FirstFlightNCAirport : Ind Airport ;
-
-fun FitchburgMunicipalMAAirport : Ind Airport ;
-
-fun FitiutaAirport : Ind Airport ;
-
-fun FitiutaFitiutaVillageAirport : Ind Airport ;
-
-fun FitzgeraldMunicipalGAAirport : Ind Airport ;
-
-fun FitzroyCrossingWesternAustraliaAirport : Ind Airport ;
-
-fun FiveFingersCoastGuardHeliportAKAirport : Ind Airport ;
-
-fun FiveMileAKAirport : Ind Airport ;
-
-fun FlagstaffPulliamAZAirport : Ind Airport ;
-
-fun FlamingoBonaireKralendijkAirport : Ind Airport ;
-
-fun FlatAKAirport : Ind Airport ;
-
-fun FlaxmanAKAirport : Ind Airport ;
-
-fun FlemingMasonKYAirport : Ind Airport ;
-
-fun FlensburgAirport : Ind Airport ;
-
-fun FleslandBergenAirport : Ind Airport ;
-
-fun FletcherFieldMSAirport : Ind Airport ;
-
-fun FlindersIslandTasmaniaAirport : Ind Airport ;
-
-fun FlorenceRegionalSCAirport : Ind Airport ;
-
-fun FlorenciaAirport : Ind Airport ;
-
-fun FloresAirport : Ind Airport ;
-
-fun FlorianoPIAirport : Ind Airport ;
-
-fun FlorianopolisSCAirport : Ind Airport ;
-
-fun FloroAirport : Ind Airport ;
-
-fun FlottaIsleAirport : Ind Airport ;
-
-fun FlushingNYAirport : Ind Airport ;
-
-fun FlyingCloudMNAirport : Ind Airport ;
-
-fun FondduLacCountyWIAirport : Ind Airport ;
-
-fun FontanarossaSicilyAirport : Ind Airport ;
-
-fun ForbesFieldKSAirport : Ind Airport ;
-
-fun ForbesNewSouthWalesAirport : Ind Airport ;
-
-fun FordMIAirport : Ind Airport ;
-
-fun ForestCityMunicipalIAAirport : Ind Airport ;
-
-fun ForestParkGAAirport : Ind Airport ;
-
-fun ForliAirport : Ind Airport ;
-
-fun FormosaAirport : Ind Airport ;
-
-fun FornebuOsloAirport : Ind Airport ;
-
-fun ForresAirport : Ind Airport ;
-
-fun ForrestCityMunicipalARAirport : Ind Airport ;
-
-fun ForrestWesternAustraliaAirport : Ind Airport ;
-
-fun ForsterNewSouthWalesAirport : Ind Airport ;
-
-fun FortBraggCAAirport : Ind Airport ;
-
-fun FortBridgerWYAirport : Ind Airport ;
-
-fun FortCollinsLovelandMunicipalCOAirport : Ind Airport ;
-
-fun FortDauphinAirport : Ind Airport ;
-
-fun FortDodgeRegionalIAAirport : Ind Airport ;
-
-fun FortLauderdaleExecutiveFLAirport : Ind Airport ;
-
-fun FortLauderdaleHollywoodInternationalFLAirport : Ind Airport ;
-
-fun FortLeenr1headquartersHeliportVAAirport : Ind Airport ;
-
-fun FortMadisonMunicipalIAAirport : Ind Airport ;
-
-fun FortRoussetAirport : Ind Airport ;
-
-fun FortScottMunicipalKSAirport : Ind Airport ;
-
-fun FortSheridanILAirport : Ind Airport ;
-
-fun FortSmithMunicipalARAirport : Ind Airport ;
-
-fun FortStocktonPecosCountyTXAirport : Ind Airport ;
-
-fun FortSumnerMunicipalNMAirport : Ind Airport ;
-
-fun FortWayneInternationalINAirport : Ind Airport ;
-
-fun FortWilliamAirport : Ind Airport ;
-
-fun FortWolterArmyAirFieldTXAirport : Ind Airport ;
-
-fun FortWorthAllianceTXAirport : Ind Airport ;
-
-fun FortWorthMeachamTXAirport : Ind Airport ;
-
-fun FortWorthSpinksTXAirport : Ind Airport ;
-
-fun FortYukonAKAirport : Ind Airport ;
-
-fun FortalezaCEAirport : Ind Airport ;
-
-fun FortunaLedgeAKAirport : Ind Airport ;
-
-fun FossilDownsWesternAustraliaAirport : Ind Airport ;
-
-fun FosstonMunicipalMNAirport : Ind Airport ;
-
-fun FostoriaMetroOHAirport : Ind Airport ;
-
-fun FougamouAirport : Ind Airport ;
-
-fun FoulaShetlandIslandsAirport : Ind Airport ;
-
-fun FoumbanAirport : Ind Airport ;
-
-fun FourCornersRegionalNMAirport : Ind Airport ;
-
-fun FoxAKAirport : Ind Airport ;
-
-fun FoxGlacierAirport : Ind Airport ;
-
-fun FoyaAirport : Ind Airport ;
-
-fun FrancaSPAirport : Ind Airport ;
-
-fun FrancisEWarrenAirForceBaseWYAirport : Ind Airport ;
-
-fun FranciscoBangoyInternationalDavaoCityAirport : Ind Airport ;
-
-fun FranciscoBeltraoPRAirport : Ind Airport ;
-
-fun FrancistownAirport : Ind Airport ;
-
-fun FrankfortMunicipalINAirport : Ind Airport ;
-
-fun FranklinCountyStateVTAirport : Ind Airport ;
-
-fun FranklinMunicipalJohnBeverlyRoseVAAirport : Ind Airport ;
-
-fun FransKaisiepoBiakAirport : Ind Airport ;
-
-fun FrederickMunicipalMDAirport : Ind Airport ;
-
-fun FrederickMunicipalOKAirport : Ind Airport ;
-
-fun FrederikshabAirport : Ind Airport ;
-
-fun FreeportInternationalGrandBahamaAirport : Ind Airport ;
-
-fun FregateIslandAirport : Ind Airport ;
-
-fun FrejusAirport : Ind Airport ;
-
-fun FremantleWesternAustraliaAirport : Ind Airport ;
-
-fun FremontCountyCOAirport : Ind Airport ;
-
-fun FremontMunicipalNEAirport : Ind Airport ;
-
-fun FrenchLickMunicipalINAirport : Ind Airport ;
-
-fun FreshWaterBayAKAirport : Ind Airport ;
-
-fun FresnoAirTerminalCAAirport : Ind Airport ;
-
-fun FresnoChandlerDowntownCAAirport : Ind Airport ;
-
-fun FriaAirport : Ind Airport ;
-
-fun FridayHarborWAAirport : Ind Airport ;
-
-fun FritzlarAirBaseFritzlarAirport : Ind Airport ;
-
-fun FrontRangeCOAirport : Ind Airport ;
-
-fun FrontRoyalWarrenCountyVAAirport : Ind Airport ;
-
-fun FuerstenfeldbruckAirBaseFuerstenfeldbruckAirport : Ind Airport ;
-
-fun FuerteventuraPuertodelRosarioCanaryIslandsAirport : Ind Airport ;
-
-fun FuhlsbuttelHamburgAirport : Ind Airport ;
-
-fun FukueAirport : Ind Airport ;
-
-fun FukuiAirport : Ind Airport ;
-
-fun FukushimaAirport : Ind Airport ;
-
-fun FullebornAirport : Ind Airport ;
-
-fun FullertonMunicipalCAAirport : Ind Airport ;
-
-fun FultonCountyAirportBrownFieldGAAirport : Ind Airport ;
-
-fun FumaAirport : Ind Airport ;
-
-fun FunafutiAirport : Ind Airport ;
-
-fun FunchalMadeiraAirport : Ind Airport ;
-
-fun FundacionAirport : Ind Airport ;
-
-fun FunterBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun FuoshanAirport : Ind Airport ;
-
-fun FutaleufuAirport : Ind Airport ;
-
-fun FutunaAirport : Ind Airport ;
-
-fun FutunaIslandAirport : Ind Airport ;
-
-fun FuyangAirport : Ind Airport ;
-
-fun FuyunAirport : Ind Airport ;
-
-fun FuzhouAirport : Ind Airport ;
-
-fun GabbsNVAirport : Ind Airport ;
-
-fun GabesAirport : Ind Airport ;
-
-fun GadsdenMunicipalALAirport : Ind Airport ;
-
-fun GafsaAirport : Ind Airport ;
-
-fun GagIslandAirport : Ind Airport ;
-
-fun GageOKAirport : Ind Airport ;
-
-fun GagnoaAirport : Ind Airport ;
-
-fun GainesvilleMunicipalTXAirport : Ind Airport ;
-
-fun GainesvilleRegionalFLAirport : Ind Airport ;
-
-fun GakonaAKAirport : Ind Airport ;
-
-fun GalOyaAirport : Ind Airport ;
-
-fun GalapagosIslandsGalapagosAirport : Ind Airport ;
-
-fun GalbraithLakeAKAirport : Ind Airport ;
-
-fun GalcaioAirport : Ind Airport ;
-
-fun GalelaAirport : Ind Airport ;
-
-fun GalenaAKAirport : Ind Airport ;
-
-fun GalesburgMunicipalILAirport : Ind Airport ;
-
-fun GalionMunicipalOHAirport : Ind Airport ;
-
-fun GalkayoAirport : Ind Airport ;
-
-fun GallatinFieldMTAirport : Ind Airport ;
-
-fun GalleriaHeliportGAAirport : Ind Airport ;
-
-fun GallivareAirport : Ind Airport ;
-
-fun GallupMunicipalNMAirport : Ind Airport ;
-
-fun GalwayAirport : Ind Airport ;
-
-fun GamarraAirport : Ind Airport ;
-
-fun GambaAirport : Ind Airport ;
-
-fun GambelaAirport : Ind Airport ;
-
-fun GambellAKAirport : Ind Airport ;
-
-fun GambomaAirport : Ind Airport ;
-
-fun GamboolaQueenslandAirport : Ind Airport ;
-
-fun GanIslandAirport : Ind Airport ;
-
-fun GandajikaAirport : Ind Airport ;
-
-fun GanesCreekAKAirport : Ind Airport ;
-
-fun GangawAirport : Ind Airport ;
-
-fun GanzhouAirport : Ind Airport ;
-
-fun GaoAirport : Ind Airport ;
-
-fun GapAirport : Ind Airport ;
-
-fun GaraDjebiletAirport : Ind Airport ;
-
-fun GarachineAirport : Ind Airport ;
-
-fun GarainaAirport : Ind Airport ;
-
-fun GarasaAirport : Ind Airport ;
-
-fun GarbahareyAirport : Ind Airport ;
-
-fun GardeAirport : Ind Airport ;
-
-fun GardenCityRegionalKSAirport : Ind Airport ;
-
-fun GardenHillMBAirport : Ind Airport ;
-
-fun GardenPointNorthernTerritoryAirport : Ind Airport ;
-
-fun GardermoenOsloAirport : Ind Airport ;
-
-fun GardezAirport : Ind Airport ;
-
-fun GardnerMunicipalMAAirport : Ind Airport ;
-
-fun GardoAirport : Ind Airport ;
-
-fun GarissaAirport : Ind Airport ;
-
-fun GarouaAirport : Ind Airport ;
-
-fun GarrowLakeAirport : Ind Airport ;
-
-fun GaruahiAirport : Ind Airport ;
-
-fun GaryRegionalINAirport : Ind Airport ;
-
-fun GascoyneJunctionWesternAustraliaAirport : Ind Airport ;
-
-fun GasmataIslandAirport : Ind Airport ;
-
-fun GassimAirport : Ind Airport ;
-
-fun GasukeAirport : Ind Airport ;
-
-fun GatlinburgPigeonForgeTNAirport : Ind Airport ;
-
-fun GavleAirport : Ind Airport ;
-
-fun GayaAirport : Ind Airport ;
-
-fun GayndahQueenslandAirport : Ind Airport ;
-
-fun GaziantepAirport : Ind Airport ;
-
-fun GbadoliteAirport : Ind Airport ;
-
-fun GbangbatokAirport : Ind Airport ;
-
-fun GbessiaConakryAirport : Ind Airport ;
-
-fun GebeAirport : Ind Airport ;
-
-fun GecitkaleAirport : Ind Airport ;
-
-fun GedarefAirport : Ind Airport ;
-
-fun GeelongVictoriaAirport : Ind Airport ;
-
-fun GeilenkirchenAirport : Ind Airport ;
-
-fun GeiloAirport : Ind Airport ;
-
-fun GeitaAirport : Ind Airport ;
-
-fun GeladiAirport : Ind Airport ;
-
-fun GemanaAirport : Ind Airport ;
-
-fun GendaWuhaAirport : Ind Airport ;
-
-fun GeneralEMosconiComodoroRivadaviaAirport : Ind Airport ;
-
-fun GeneralEdwardLawrenceLoganInternationalMAAirport : Ind Airport ;
-
-fun GeneralIgnacioPesqueiraHermosilloAirport : Ind Airport ;
-
-fun GeneralJoseMariaYanezGuaymasAirport : Ind Airport ;
-
-fun GeneralJuanNAlvarezAcapulcoAirport : Ind Airport ;
-
-fun GeneralPicoAirport : Ind Airport ;
-
-fun GeneralRivadeneiraEsmeraldasAirport : Ind Airport ;
-
-fun GeneralRobertoFierroVChihuahuaAirport : Ind Airport ;
-
-fun GeneralRocaAirport : Ind Airport ;
-
-fun GeneralSantosAirport : Ind Airport ;
-
-fun GeneveCointrinGenevaAirport : Ind Airport ;
-
-fun GenjemAirport : Ind Airport ;
-
-fun GentingAirport : Ind Airport ;
-
-fun GeojeHeliportSeoulAirport : Ind Airport ;
-
-fun GeorgeAirport : Ind Airport ;
-
-fun GeorgeDownerALAirport : Ind Airport ;
-
-fun GeorgeRCarrMemorialAirFieldLAAirport : Ind Airport ;
-
-fun GeorgeTLewisFLAirport : Ind Airport ;
-
-fun GeorgeTownExumaAirport : Ind Airport ;
-
-fun GeorgetownCountySCAirport : Ind Airport ;
-
-fun GeorgetownQueenslandAirport : Ind Airport ;
-
-fun GeraldtonWesternAustraliaAirport : Ind Airport ;
-
-fun GeronaCostaBravaGeronaAirport : Ind Airport ;
-
-fun GerrardSmithCaymanBracAirport : Ind Airport ;
-
-fun GettysburgPAAirport : Ind Airport ;
-
-fun GevaAirport : Ind Airport ;
-
-fun GewoyaAirport : Ind Airport ;
-
-fun GhanziAirport : Ind Airport ;
-
-fun GhatAirport : Ind Airport ;
-
-fun GhazniAirport : Ind Airport ;
-
-fun GhimbiAirport : Ind Airport ;
-
-fun GhinnirAirport : Ind Airport ;
-
-fun GibbRiverWesternAustraliaAirport : Ind Airport ;
-
-fun GilaBendAirForceAuxiliaryAZAirport : Ind Airport ;
-
-fun GilgalAirport : Ind Airport ;
-
-fun GilgitAirport : Ind Airport ;
-
-fun GilletteCampbellCountyWYAirport : Ind Airport ;
-
-fun GinoLisaFoggiaAirport : Ind Airport ;
-
-fun GiradotAirport : Ind Airport ;
-
-fun GirdwoodAKAirport : Ind Airport ;
-
-fun GisborneAirport : Ind Airport ;
-
-fun GisenyiAirport : Ind Airport ;
-
-fun GitengaAirport : Ind Airport ;
-
-fun GiuseppeMarconiBorgoPanigaleBolognaAirport : Ind Airport ;
-
-fun GiyanaAirport : Ind Airport ;
-
-fun GizanAirport : Ind Airport ;
-
-fun GizoAirport : Ind Airport ;
-
-fun GjogurReykjarnesAirport : Ind Airport ;
-
-fun GlacierCreekAKAirport : Ind Airport ;
-
-fun GlacierParkInternationalMTAirport : Ind Airport ;
-
-fun GladstoneQueenslandAirport : Ind Airport ;
-
-fun GlasgowIndustrialMTAirport : Ind Airport ;
-
-fun GlasgowInternationalMTAirport : Ind Airport ;
-
-fun GlasgowMunicipalKYAirport : Ind Airport ;
-
-fun GlenInnesNewSouthWalesAirport : Ind Airport ;
-
-fun GlendaleFokkerFieldWVAirport : Ind Airport ;
-
-fun GlendaleMunicipalAZAirport : Ind Airport ;
-
-fun GlengyleQueenslandAirport : Ind Airport ;
-
-fun GlenormistonAirport : Ind Airport ;
-
-fun GlentanMountCookAirport : Ind Airport ;
-
-fun GlenwoodSpringsMunicipalCOAirport : Ind Airport ;
-
-fun GlobeSanCarlosRegionalAirFacilityAZAirport : Ind Airport ;
-
-fun GloucesterAirport : Ind Airport ;
-
-fun GlyncoJetportGAAirport : Ind Airport ;
-
-fun GoaAirport : Ind Airport ;
-
-fun GobaAirport : Ind Airport ;
-
-fun GobernadordosGregoresAirport : Ind Airport ;
-
-fun GodeAirport : Ind Airport ;
-
-fun GodhavnAirport : Ind Airport ;
-
-fun GodmanArmyAirFieldKYAirport : Ind Airport ;
-
-fun GodthabNuukAirport : Ind Airport ;
-
-fun GogebicCountyMIAirport : Ind Airport ;
-
-fun GoianiaGOAirport : Ind Airport ;
-
-fun GoldBeachMunicipalORAirport : Ind Airport ;
-
-fun GoldenHornLodgeSeaplaneBaseAKAirport : Ind Airport ;
-
-fun GoldenTriangleRegionalMSAirport : Ind Airport ;
-
-fun GoldsboroWayneMunicipalNCAirport : Ind Airport ;
-
-fun GolfitoAirport : Ind Airport ;
-
-fun GollAirport : Ind Airport ;
-
-fun GolmudAirport : Ind Airport ;
-
-fun GolovinAKAirport : Ind Airport ;
-
-fun GomaAirport : Ind Airport ;
-
-fun GonailaAirport : Ind Airport ;
-
-fun GondarAirport : Ind Airport ;
-
-fun GoodfellowAirForceBaseTXAirport : Ind Airport ;
-
-fun GoodingMunicipalIDAirport : Ind Airport ;
-
-fun GoodnewsAKAirport : Ind Airport ;
-
-fun GoodwinFieldARAirport : Ind Airport ;
-
-fun GoondiwindiQueenslandAirport : Ind Airport ;
-
-fun GoraAirport : Ind Airport ;
-
-fun GorakhpurAirport : Ind Airport ;
-
-fun GordilAirport : Ind Airport ;
-
-fun GordonDownsWesternAustraliaAirport : Ind Airport ;
-
-fun GordonMunicipalNEAirport : Ind Airport ;
-
-fun GordonsvilleMunicipalVAAirport : Ind Airport ;
-
-fun GoreAirport : Ind Airport ;
-
-fun GorkhaAirport : Ind Airport ;
-
-fun GorokaAirport : Ind Airport ;
-
-fun GorontaloAirport : Ind Airport ;
-
-fun GosfordNewSouthWalesAirport : Ind Airport ;
-
-fun GoshenMunicipalINAirport : Ind Airport ;
-
-fun GosseliesCharleroiAirport : Ind Airport ;
-
-fun GottwaldovAirport : Ind Airport ;
-
-fun GoulburnIslandNorthernTerritoryAirport : Ind Airport ;
-
-fun GoulburnNewSouthWalesAirport : Ind Airport ;
-
-fun GoulimimeAirport : Ind Airport ;
-
-fun GoundaAirport : Ind Airport ;
-
-fun GoundamAirport : Ind Airport ;
-
-fun GoveNorthernTerritoryAirport : Ind Airport ;
-
-fun GovernadorValadaresMGAirport : Ind Airport ;
-
-fun GovernorsHarbourEleutheraAirport : Ind Airport ;
-
-fun GozoAirport : Ind Airport ;
-
-fun GraciasAirport : Ind Airport ;
-
-fun GraciosaIslandAzoresAirport : Ind Airport ;
-
-fun GraftonNewSouthWalesAirport : Ind Airport ;
-
-fun GranadaAirport : Ind Airport ;
-
-fun GranbyGrandCountyCOAirport : Ind Airport ;
-
-fun GrandBahamaIslandGrandBahamaAirport : Ind Airport ;
-
-fun GrandCanyonHeliportAZAirport : Ind Airport ;
-
-fun GrandCanyonNationalParkAZAirport : Ind Airport ;
-
-fun GrandCaseSaintMartinAirport : Ind Airport ;
-
-fun GrandCentralJohannesburgAirport : Ind Airport ;
-
-fun GrandCessAirport : Ind Airport ;
-
-fun GrandForksInternationalNDAirport : Ind Airport ;
-
-fun GrandMaraisCookCountyMNAirport : Ind Airport ;
-
-fun GrandRapidsItascaCountyAirportGordonNewstromFieldMNAirport : Ind Airport ;
-
-fun GrandStrandSCAirport : Ind Airport ;
-
-fun GrandTurkGrandTurkIsAirport : Ind Airport ;
-
-fun GraniteMountainAKAirport : Ind Airport ;
-
-fun GranitesNorthernTerritoryAirport : Ind Airport ;
-
-fun GrantMunicipalNEAirport : Ind Airport ;
-
-fun GrantleyAdamsInternationalBarbadosBridgetownAirport : Ind Airport ;
-
-fun GrantsMilanMunicipalNMAirport : Ind Airport ;
-
-fun GrantsburgMunicipalWIAirport : Ind Airport ;
-
-fun GranvilleAirport : Ind Airport ;
-
-fun GratiotCommunityMIAirport : Ind Airport ;
-
-fun GrayArmyAirFieldWAAirport : Ind Airport ;
-
-fun GraylingAKAirport : Ind Airport ;
-
-fun GreatAussieHoleAirport : Ind Airport ;
-
-fun GreatBarrierIslandAirport : Ind Airport ;
-
-fun GreatBarringtonMAAirport : Ind Airport ;
-
-fun GreatBendMunicipalKSAirport : Ind Airport ;
-
-fun GreatFallsInternationalMTAirport : Ind Airport ;
-
-fun GreatHarbourCayBerryAirport : Ind Airport ;
-
-fun GreatKeppelIslandQueenslandAirport : Ind Airport ;
-
-fun GreaterBuffaloInternationalNYAirport : Ind Airport ;
-
-fun GreaterKankakeeILAirport : Ind Airport ;
-
-fun GreaterSouthwestTXAirport : Ind Airport ;
-
-fun GreeleyWeldCountyCOAirport : Ind Airport ;
-
-fun GreenIslandAirport : Ind Airport ;
-
-fun GreenIsleAirport : Ind Airport ;
-
-fun GreenRiverAirport : Ind Airport ;
-
-fun GreenTurtleCayAirport : Ind Airport ;
-
-fun GreenevilleMunicipalTNAirport : Ind Airport ;
-
-fun GreenfieldMunicipalIAAirport : Ind Airport ;
-
-fun GreenhamCommonRAFStationEnglandAirport : Ind Airport ;
-
-fun GreenleeCountyAZAirport : Ind Airport ;
-
-fun GreensboroBaltimoreMDAirport : Ind Airport ;
-
-fun GreenvaleQueenslandAirport : Ind Airport ;
-
-fun GreenvilleDowntownSCAirport : Ind Airport ;
-
-fun GreenvilleILAirport : Ind Airport ;
-
-fun GreenvilleMunicipalMSAirport : Ind Airport ;
-
-fun GreenvilleSpartanburgSCAirport : Ind Airport ;
-
-fun GreenwayPlazaHeliportTXAirport : Ind Airport ;
-
-fun GreenwoodCountySCAirport : Ind Airport ;
-
-fun GreenwoodLefloreMSAirport : Ind Airport ;
-
-fun GreenwoodMunicipalINAirport : Ind Airport ;
-
-fun GreggCountyTXAirport : Ind Airport ;
-
-fun GregoryDownsQueenslandAirport : Ind Airport ;
-
-fun GrenfellNewSouthWalesAirport : Ind Airport ;
-
-fun GrevenMuensterMunsterOsnabrueckOsnabruckAirport : Ind Airport ;
-
-fun GreymouthAirport : Ind Airport ;
-
-fun GriffithNewSouthWalesAirport : Ind Airport ;
-
-fun GrimsbyAirport : Ind Airport ;
-
-fun GrimseyAirport : Ind Airport ;
-
-fun GrinnellRegionalIAAirport : Ind Airport ;
-
-fun GrissomAirForceBaseINAirport : Ind Airport ;
-
-fun GrooteEylandtNorthernTerritoryAirport : Ind Airport ;
-
-fun GrootfonteinAirport : Ind Airport ;
-
-fun GrossetoAirport : Ind Airport ;
-
-fun GrotonNewLondonCTAirport : Ind Airport ;
-
-fun GroznyyGroznyGroznyjAirport : Ind Airport ;
-
-fun GrummanBethpageNYAirport : Ind Airport ;
-
-fun GrundyMunicipalVAAirport : Ind Airport ;
-
-fun GuacamayasAirport : Ind Airport ;
-
-fun GuadalcanalAirport : Ind Airport ;
-
-fun GuadalupeTXAirport : Ind Airport ;
-
-fun GuajaraMirimROAirport : Ind Airport ;
-
-fun GualacoAirport : Ind Airport ;
-
-fun GualeguaychuAirport : Ind Airport ;
-
-fun GuamAirport : Ind Airport ;
-
-fun GuamalAirport : Ind Airport ;
-
-fun GuanajaIslandAirport : Ind Airport ;
-
-fun GuanajuatoLeonAirport : Ind Airport ;
-
-fun GuanambiBAAirport : Ind Airport ;
-
-fun GuanareAirport : Ind Airport ;
-
-fun GuapiAirport : Ind Airport ;
-
-fun GuapilesAirport : Ind Airport ;
-
-fun GuarapuavaPRAirport : Ind Airport ;
-
-fun GuaratinguetaSPAirport : Ind Airport ;
-
-fun GuariAirport : Ind Airport ;
-
-fun GuasqualitoAirport : Ind Airport ;
-
-fun GuayaramerinAirport : Ind Airport ;
-
-fun GuemarElOuedAirport : Ind Airport ;
-
-fun GuerimaAirport : Ind Airport ;
-
-fun GuernseyAirport : Ind Airport ;
-
-fun GuerreroNegroAirport : Ind Airport ;
-
-fun GueterslohGuterslohAirport : Ind Airport ;
-
-fun GuigloAirport : Ind Airport ;
-
-fun GuilinAirport : Ind Airport ;
-
-fun GuimaraesMAAirport : Ind Airport ;
-
-fun GuipavasBrestAirport : Ind Airport ;
-
-fun GuiriaAirport : Ind Airport ;
-
-fun GuiyangAirport : Ind Airport ;
-
-fun GujratAirport : Ind Airport ;
-
-fun GulfportBiloxiRegionalMSAirport : Ind Airport ;
-
-fun GulgubipAirport : Ind Airport ;
-
-fun GulkanaAKAirport : Ind Airport ;
-
-fun GunaAirport : Ind Airport ;
-
-fun GunnedahNewSouthWalesAirport : Ind Airport ;
-
-fun GunnisonCountyCOAirport : Ind Airport ;
-
-fun GunterAirForceBaseALAirport : Ind Airport ;
-
-fun GunungsitoliAirport : Ind Airport ;
-
-fun GurneyAlotauAirport : Ind Airport ;
-
-fun GurupiGOAirport : Ind Airport ;
-
-fun GusapAirport : Ind Airport ;
-
-fun GushKatifAirport : Ind Airport ;
-
-fun GustavusAKAirport : Ind Airport ;
-
-fun GuthrieCountyRegionalIAAirport : Ind Airport ;
-
-fun GuthrieMunicipalOKAirport : Ind Airport ;
-
-fun GuwahatiGauhatiAirport : Ind Airport ;
-
-fun GuymonMunicipalOKAirport : Ind Airport ;
-
-fun GwaBurmaAirport : Ind Airport ;
-
-fun GwadarAirport : Ind Airport ;
-
-fun GwaliorAirport : Ind Airport ;
-
-fun GweruAirport : Ind Airport ;
-
-fun GwinnerAirportRogerMelroeFieldNDAirport : Ind Airport ;
-
-fun GyandzhaAirport : Ind Airport ;
-
-fun GympieQueenslandAirport : Ind Airport ;
-
-fun HaapaiAirport : Ind Airport ;
-
-fun HachijoJimaIslandAirport : Ind Airport ;
-
-fun HachinoheAirport : Ind Airport ;
-
-fun HafrAlbatinAirport : Ind Airport ;
-
-fun HagforsAirport : Ind Airport ;
-
-fun HahayaMoroniAirport : Ind Airport ;
-
-fun HahnAirport : Ind Airport ;
-
-fun HaiPhongAirport : Ind Airport ;
-
-fun HaifaAirport : Ind Airport ;
-
-fun HaikouAirport : Ind Airport ;
-
-fun HailAirport : Ind Airport ;
-
-fun HailarAirport : Ind Airport ;
-
-fun HainesAKAirport : Ind Airport ;
-
-fun HakodateHokkaidoAirport : Ind Airport ;
-
-fun HalaliAirport : Ind Airport ;
-
-fun HalfMoonBayCAAirport : Ind Airport ;
-
-fun HalimPerdanakusumaInternationalJakartaAirport : Ind Airport ;
-
-fun HaliweniAtambuaAirport : Ind Airport ;
-
-fun HalliburtonFieldOKAirport : Ind Airport ;
-
-fun HallsCreekWesternAustraliaAirport : Ind Airport ;
-
-fun HalmstadAirBaseHalmstadAirport : Ind Airport ;
-
-fun HamadanAirport : Ind Airport ;
-
-fun HamiAirport : Ind Airport ;
-
-fun HamiltonAirport : Ind Airport ;
-
-fun HamiltonFairfieldOHAirport : Ind Airport ;
-
-fun HamiltonIslandQueenslandAirport : Ind Airport ;
-
-fun HamiltonVictoriaAirport : Ind Airport ;
-
-fun HammerfestAirport : Ind Airport ;
-
-fun HamptonMunicipalIAAirport : Ind Airport ;
-
-fun HanaHIAirport : Ind Airport ;
-
-fun HanaleiHIAirport : Ind Airport ;
-
-fun HanamakiMoriokaAirport : Ind Airport ;
-
-fun HancheyArmyHeliportALAirport : Ind Airport ;
-
-fun HancockCountyBarHarborMEAirport : Ind Airport ;
-
-fun HanedaTokyoAirport : Ind Airport ;
-
-fun HankowAirport : Ind Airport ;
-
-fun HanksvilleUTAirport : Ind Airport ;
-
-fun HannaWYAirport : Ind Airport ;
-
-fun HanusBayAKAirport : Ind Airport ;
-
-fun HanzhongAirport : Ind Airport ;
-
-fun HaoIslandAirport : Ind Airport ;
-
-fun HarareAirport : Ind Airport ;
-
-fun HarbinAirport : Ind Airport ;
-
-fun HarbourIslandAirport : Ind Airport ;
-
-fun HarbourNorthernIrelandAirport : Ind Airport ;
-
-fun HardwickFieldTNAirport : Ind Airport ;
-
-fun HardyAndersFieldNatchezAdamsCountyMSAirport : Ind Airport ;
-
-fun HargeisaAirport : Ind Airport ;
-
-fun HarlanMunicipalIAAirport : Ind Airport ;
-
-fun HarrellFieldARAirport : Ind Airport ;
-
-fun HarrisburgRaleighILAirport : Ind Airport ;
-
-fun HarrismithAirport : Ind Airport ;
-
-fun HarrisonCountyTXAirport : Ind Airport ;
-
-fun HarrogateAirport : Ind Airport ;
-
-fun HartfordBrainardCTAirport : Ind Airport ;
-
-fun HartfordMunicipalWIAirport : Ind Airport ;
-
-fun HartsfieldHeliportGAAirport : Ind Airport ;
-
-fun HartsvilleMunicipalSCAirport : Ind Airport ;
-
-fun HaskovoAirport : Ind Airport ;
-
-fun HassiRmelAirport : Ind Airport ;
-
-fun HastingsFreetownAirport : Ind Airport ;
-
-fun HastingsMunicipalNEAirport : Ind Airport ;
-
-fun HasvikAirport : Ind Airport ;
-
-fun HatboxFieldOKAirport : Ind Airport ;
-
-fun HaterumaAirport : Ind Airport ;
-
-fun HatfieldEnglandAirport : Ind Airport ;
-
-fun HatoCorozalAirport : Ind Airport ;
-
-fun HatzfeldthavenAirport : Ind Airport ;
-
-fun HavasupaiAZAirport : Ind Airport ;
-
-fun HaverfordwestWalesAirport : Ind Airport ;
-
-fun HavreCityCountyMTAirport : Ind Airport ;
-
-fun HawabangoAirport : Ind Airport ;
-
-fun HawkInletSeaplaneBaseAKAirport : Ind Airport ;
-
-fun HawkerSouthAustraliaAirport : Ind Airport ;
-
-fun HawkinsFieldMSAirport : Ind Airport ;
-
-fun HawthorneMunicipalCAAirport : Ind Airport ;
-
-fun HawthorneMunicipalNVAirport : Ind Airport ;
-
-fun HayNewSouthWalesAirport : Ind Airport ;
-
-fun HaycockAKAirport : Ind Airport ;
-
-fun HayfieldsAirport : Ind Airport ;
-
-fun HaymanIslandQueenslandAirport : Ind Airport ;
-
-fun HaysMunicipalKSAirport : Ind Airport ;
-
-fun HaywardAirTerminalCAAirport : Ind Airport ;
-
-fun HaywardMunicipalWIAirport : Ind Airport ;
-
-fun HazebrouckAirport : Ind Airport ;
-
-fun HazlehurstGAAirport : Ind Airport ;
-
-fun HazletonMunicipalPAAirport : Ind Airport ;
-
-fun HeadinglyQueenslandAirport : Ind Airport ;
-
-fun HealyRiverAKAirport : Ind Airport ;
-
-fun HeathlandsQueenslandAirport : Ind Airport ;
-
-fun HeberSpringsMunicipalARAirport : Ind Airport ;
-
-fun HebronMunicipalNEAirport : Ind Airport ;
-
-fun HectorInternationalNDAirport : Ind Airport ;
-
-fun HefeiAirport : Ind Airport ;
-
-fun HehoAirport : Ind Airport ;
-
-fun HeideBuesumAirport : Ind Airport ;
-
-fun HeidelbergAirport : Ind Airport ;
-
-fun HeiheAirport : Ind Airport ;
-
-fun HeiweniAirport : Ind Airport ;
-
-fun HelenaRegionalMTAirport : Ind Airport ;
-
-fun HelenvaleAirport : Ind Airport ;
-
-fun HelgolandAirport : Ind Airport ;
-
-fun HeliportCroisetteAirport : Ind Airport ;
-
-fun HeliportGronnedalAirport : Ind Airport ;
-
-fun HeliportHelsingborgAirport : Ind Airport ;
-
-fun HeliportInchonAirport : Ind Airport ;
-
-fun HeliportParisAirport : Ind Airport ;
-
-fun HeliportSodertaljeAirport : Ind Airport ;
-
-fun HellinikonInternationalAthensAthinaiAirport : Ind Airport ;
-
-fun HemetRyanCAAirport : Ind Airport ;
-
-fun HemphillCountyTXAirport : Ind Airport ;
-
-fun HenburyNorthernTerritoryAirport : Ind Airport ;
-
-fun HendersonFieldNCAirport : Ind Airport ;
-
-fun HendersonGuadalcanalIsAirport : Ind Airport ;
-
-fun HendersonOxfordNCAirport : Ind Airport ;
-
-fun HendonEnglandAirport : Ind Airport ;
-
-fun HengyangAirport : Ind Airport ;
-
-fun HenryPostArmyAirFieldOKAirport : Ind Airport ;
-
-fun HenzadaAirport : Ind Airport ;
-
-fun HeraklionIraklionCreteAirport : Ind Airport ;
-
-fun HeratAirport : Ind Airport ;
-
-fun HerefordMunicipalTXAirport : Ind Airport ;
-
-fun HerendeenBayAKAirport : Ind Airport ;
-
-fun HeringsdorfAirport : Ind Airport ;
-
-fun HeringtonMunicipalKSAirport : Ind Airport ;
-
-fun HermannsburgNorthernTerritoryAirport : Ind Airport ;
-
-fun HermistonMunicipalORAirport : Ind Airport ;
-
-fun HernandoCountyFLAirport : Ind Airport ;
-
-fun HeronIslandQueenslandAirport : Ind Airport ;
-
-fun HerreraAirport : Ind Airport ;
-
-fun HerveyBayQueenslandAirport : Ind Airport ;
-
-fun HerzegovinaAirport : Ind Airport ;
-
-fun HickamAirForceBaseHIAirport : Ind Airport ;
-
-fun HickoryRegionalNCAirport : Ind Airport ;
-
-fun HiddenFallsAKAirport : Ind Airport ;
-
-fun HiengheneAirport : Ind Airport ;
-
-fun HighWycombeAirport : Ind Airport ;
-
-fun HighburyAirport : Ind Airport ;
-
-fun HigueroteAirport : Ind Airport ;
-
-fun HikueruAirport : Ind Airport ;
-
-fun HillAirForceBaseUTAirport : Ind Airport ;
-
-fun HillCityMunicipalKSAirport : Ind Airport ;
-
-fun HillenbrandIndustriesINAirport : Ind Airport ;
-
-fun HillsideWesternAustraliaAirport : Ind Airport ;
-
-fun HiloInternationalHIAirport : Ind Airport ;
-
-fun HiltonHeadSCAirport : Ind Airport ;
-
-fun HinchinbrookeIslandQueenslandAirport : Ind Airport ;
-
-fun HiroshimaAirport : Ind Airport ;
-
-fun HiroshimaWestHiroshimaAirport : Ind Airport ;
-
-fun HissarAirport : Ind Airport ;
-
-fun HivaOaMarquesasIslandsAirport : Ind Airport ;
-
-fun HivaroAirport : Ind Airport ;
-
-fun HjaltabakkiBlonduosAirport : Ind Airport ;
-
-fun HluhluweAirport : Ind Airport ;
-
-fun HobartBayAKAirport : Ind Airport ;
-
-fun HobartMunicipalOKAirport : Ind Airport ;
-
-fun HobartTasmaniaAirport : Ind Airport ;
-
-fun HobbsIndustrialAirparkNMAirport : Ind Airport ;
-
-fun HodeidaAirport : Ind Airport ;
-
-fun HofAirport : Ind Airport ;
-
-fun HofufAirport : Ind Airport ;
-
-fun HogRiverAKAirport : Ind Airport ;
-
-fun HohenemsAirport : Ind Airport ;
-
-fun HohhotAirport : Ind Airport ;
-
-fun HokitikaAirport : Ind Airport ;
-
-fun HolaAirport : Ind Airport ;
-
-fun HolguinAirport : Ind Airport ;
-
-fun HolikachuAKAirport : Ind Airport ;
-
-fun HolikachukAKAirport : Ind Airport ;
-
-fun HollisSeaplaneBaseAKAirport : Ind Airport ;
-
-fun HollisterMunicipalCAAirport : Ind Airport ;
-
-fun HollomanAirForceBaseNMAirport : Ind Airport ;
-
-fun HolmavikAirport : Ind Airport ;
-
-fun HolsteinsborgAirport : Ind Airport ;
-
-fun HoltFlateyriAirport : Ind Airport ;
-
-fun HolyCrossAKAirport : Ind Airport ;
-
-fun HomalinAirport : Ind Airport ;
-
-fun HomeHillQueenslandAirport : Ind Airport ;
-
-fun HomerAKAirport : Ind Airport ;
-
-fun HomeshoreAKAirport : Ind Airport ;
-
-fun HomesteadAirForceBaseFLAirport : Ind Airport ;
-
-fun HomyelGomelHomyelAirport : Ind Airport ;
-
-fun HondoMunicipalTXAirport : Ind Airport ;
-
-fun HongKongHeliportHongKongAirport : Ind Airport ;
-
-fun HoninabiAirport : Ind Airport ;
-
-fun HonningsvagAirport : Ind Airport ;
-
-fun HonoluluInternationalHIAirport : Ind Airport ;
-
-fun HoodArmyAirFieldTXAirport : Ind Airport ;
-
-fun HookIslandAirport : Ind Airport ;
-
-fun HookersCreekNorthernTerritoryAirport : Ind Airport ;
-
-fun HoonahAKAirport : Ind Airport ;
-
-fun HooperBayAKAirport : Ind Airport ;
-
-fun HopeValeQueenslandAirport : Ind Airport ;
-
-fun HopetownAirport : Ind Airport ;
-
-fun HopkinsvilleChristianCountyKYAirport : Ind Airport ;
-
-fun HornIslandAirport : Ind Airport ;
-
-fun HornafjordurHofnAirport : Ind Airport ;
-
-fun HorshamVictoriaAirport : Ind Airport ;
-
-fun HortaFaialIslandAzoresAirport : Ind Airport ;
-
-fun HotSpringsMunicipalSDAirport : Ind Airport ;
-
-fun HotanAirport : Ind Airport ;
-
-fun HouailoAirport : Ind Airport ;
-
-fun HouariBoumedieneAlgerAlgiersAirport : Ind Airport ;
-
-fun HoueisayAirport : Ind Airport ;
-
-fun HoughtonCountyMemorialMIAirport : Ind Airport ;
-
-fun HoultonInternationalMEAirport : Ind Airport ;
-
-fun HoumaTerrebonneLAAirport : Ind Airport ;
-
-fun HounAirport : Ind Airport ;
-
-fun HoustonIntercontinentalTXAirport : Ind Airport ;
-
-fun HoustonSouthwestTXAirport : Ind Airport ;
-
-fun HovdenOerstaVoldaAirport : Ind Airport ;
-
-fun HovercraftHarbourTerminalMalmoAirport : Ind Airport ;
-
-fun HowardAirForceBaseBalboaFortKobbeAirport : Ind Airport ;
-
-fun HoyIslandAirport : Ind Airport ;
-
-fun HoybuktmoenKirkenesAirport : Ind Airport ;
-
-fun HozmanElatAirport : Ind Airport ;
-
-fun HrodnaGrodnaHrodnaAirport : Ind Airport ;
-
-fun HsinChuAirport : Ind Airport ;
-
-fun HuaHinAirport : Ind Airport ;
-
-fun HuahineSocietyIslandsAirport : Ind Airport ;
-
-fun HualienAirport : Ind Airport ;
-
-fun HuanghuaAirport : Ind Airport ;
-
-fun HuangyanAirport : Ind Airport ;
-
-fun HuanucoAirport : Ind Airport ;
-
-fun HubliAirport : Ind Airport ;
-
-fun HudiksvallAirport : Ind Airport ;
-
-fun HueAirport : Ind Airport ;
-
-fun HuehuetenangoAirport : Ind Airport ;
-
-fun HughendenQueenslandAirport : Ind Airport ;
-
-fun HughesAKAirport : Ind Airport ;
-
-fun HugotonMunicipalKSAirport : Ind Airport ;
-
-fun HuizhowAirport : Ind Airport ;
-
-fun HullAKAirport : Ind Airport ;
-
-fun HulmanRegionalINAirport : Ind Airport ;
-
-fun HultsfredAirport : Ind Airport ;
-
-fun HumacaoHumacaoAirport : Ind Airport ;
-
-fun HumbersideAirport : Ind Airport ;
-
-fun HumbertRiverAirport : Ind Airport ;
-
-fun HumboldtMunicipalNEAirport : Ind Airport ;
-
-fun HumeraAirport : Ind Airport ;
-
-fun HuntingburgINAirport : Ind Airport ;
-
-fun HuntingtonMunicipalINAirport : Ind Airport ;
-
-fun HuntsvilleInternationalAirportCarlTJonesFieldALAirport : Ind Airport ;
-
-fun HuntsvilleMunicipalTXAirport : Ind Airport ;
-
-fun HurghadaAirport : Ind Airport ;
-
-fun HuronRegionalSDAirport : Ind Airport ;
-
-fun HusavikAirport : Ind Airport ;
-
-fun HusliaAKAirport : Ind Airport ;
-
-fun HutchinsonCountyTXAirport : Ind Airport ;
-
-fun HutchinsonMunicipalAirportButlerFieldMNAirport : Ind Airport ;
-
-fun HutchinsonMunicipalKSAirport : Ind Airport ;
-
-fun HvammstangiAirport : Ind Airport ;
-
-fun HwangeNationalParkAirport : Ind Airport ;
-
-fun HydaburgSeaplaneBaseAKAirport : Ind Airport ;
-
-fun HyderabadAirport : Ind Airport ;
-
-fun HyderabadAirportPakistan : Ind Airport ;
-
-fun IalibuAirport : Ind Airport ;
-
-fun IamaleleAirport : Ind Airport ;
-
-fun IasiAirport : Ind Airport ;
-
-fun IbadanAirport : Ind Airport ;
-
-fun IbagueAirport : Ind Airport ;
-
-fun IberiaAirport : Ind Airport ;
-
-fun IbizaBalearicIslandsAirport : Ind Airport ;
-
-fun IboAirport : Ind Airport ;
-
-fun IbokiAirport : Ind Airport ;
-
-fun IcabaruAirport : Ind Airport ;
-
-fun IcyBayAKAirport : Ind Airport ;
-
-fun IdaGroveMunicipalIAAirport : Ind Airport ;
-
-fun IdiofaAirport : Ind Airport ;
-
-fun IdreAirport : Ind Airport ;
-
-fun IejimaAirport : Ind Airport ;
-
-fun IffleyQueenslandAirport : Ind Airport ;
-
-fun IgarkaKrasnoyarskAirport : Ind Airport ;
-
-fun IgiugigAKAirport : Ind Airport ;
-
-fun IgnacioAgramonteCamagueyAirport : Ind Airport ;
-
-fun IgorISikorskyMemorialCTAirport : Ind Airport ;
-
-fun IguelaAirport : Ind Airport ;
-
-fun IhosyAirport : Ind Airport ;
-
-fun IhuAirport : Ind Airport ;
-
-fun IjuiRSAirport : Ind Airport ;
-
-fun IkelaAirport : Ind Airport ;
-
-fun IkiAirport : Ind Airport ;
-
-fun IlakaAirport : Ind Airport ;
-
-fun IleQuenAirport : Ind Airport ;
-
-fun IledYeuAirport : Ind Airport ;
-
-fun IledesPinsIsleofPinesIsleofPinesAirport : Ind Airport ;
-
-fun IlfordMBAirport : Ind Airport ;
-
-fun IlhaSolteiraMSAirport : Ind Airport ;
-
-fun IlheusBAAirport : Ind Airport ;
-
-fun IliamnaAKAirport : Ind Airport ;
-
-fun IliganAirport : Ind Airport ;
-
-fun IllagaAirport : Ind Airport ;
-
-fun IllishiemArmyAirFieldIllishiemAirport : Ind Airport ;
-
-fun IloiloAirport : Ind Airport ;
-
-fun IlorinAirport : Ind Airport ;
-
-fun IluNewGuineaAirport : Ind Airport ;
-
-fun IlulissatJakobshavnAirport : Ind Airport ;
-
-fun ImbaimadaiAirport : Ind Airport ;
-
-fun ImmokaleeFLAirport : Ind Airport ;
-
-fun ImondaAirport : Ind Airport ;
-
-fun ImperatrizMAAirport : Ind Airport ;
-
-fun ImperialCountyCAAirport : Ind Airport ;
-
-fun ImperialMunicipalNEAirport : Ind Airport ;
-
-fun ImpfondoAirport : Ind Airport ;
-
-fun ImphalAirport : Ind Airport ;
-
-fun InAmenasZerzaltineAirport : Ind Airport ;
-
-fun InGuezzamAirport : Ind Airport ;
-
-fun InSalahAirport : Ind Airport ;
-
-fun InaguaMatthewTownGreatInaguaAirport : Ind Airport ;
-
-fun InanwatanAirport : Ind Airport ;
-
-fun IncirlikAirBaseAdanaAirport : Ind Airport ;
-
-fun IndagenAirport : Ind Airport ;
-
-fun IndependenceAirport : Ind Airport ;
-
-fun IndependenceMunicipalIAAirport : Ind Airport ;
-
-fun IndependenceMunicipalKSAirport : Ind Airport ;
-
-fun IndianSpringsAirForceAuxiliaryNVAirport : Ind Airport ;
-
-fun IndianaCountyJimmyStewartFieldPAAirport : Ind Airport ;
-
-fun IndianapolisInternationalINAirport : Ind Airport ;
-
-fun IndianolaMunicipalMSAirport : Ind Airport ;
-
-fun IndiraGandhiInternationalDelhiAirport : Ind Airport ;
-
-fun IndoreAirport : Ind Airport ;
-
-fun IndulkanaSouthAustraliaAirport : Ind Airport ;
-
-fun IneIneIslandAirport : Ind Airport ;
-
-fun IngallsFieldVAAirport : Ind Airport ;
-
-fun IngenieroJacobacciAirport : Ind Airport ;
-
-fun IngersollILAirport : Ind Airport ;
-
-fun InghamQueenslandAirport : Ind Airport ;
-
-fun IngjaldssandurOnundarfjordurAirport : Ind Airport ;
-
-fun InhambaneAirport : Ind Airport ;
-
-fun InhamingaAirport : Ind Airport ;
-
-fun InisheerAirport : Ind Airport ;
-
-fun InishmaanAirport : Ind Airport ;
-
-fun InishmoreAirport : Ind Airport ;
-
-fun InjuneQueenslandAirport : Ind Airport ;
-
-fun InkermanQueenslandAirport : Ind Airport ;
-
-fun InnaminckaSouthAustraliaAirport : Ind Airport ;
-
-fun InnisfailQueenslandAirport : Ind Airport ;
-
-fun InongoAirport : Ind Airport ;
-
-fun InternacionalDFAirport : Ind Airport ;
-
-fun InternationalAdenAirport : Ind Airport ;
-
-fun InternationalAndrosAirport : Ind Airport ;
-
-fun InternationalAucklandAirport : Ind Airport ;
-
-fun InternationalBandarSeriBegwanAirport : Ind Airport ;
-
-fun InternationalBasraAirport : Ind Airport ;
-
-fun InternationalBeirutAirport : Ind Airport ;
-
-fun InternationalBujumburaAirport : Ind Airport ;
-
-fun InternationalKaohsiungAirport : Ind Airport ;
-
-fun InternationalNauruAirport : Ind Airport ;
-
-fun InternationalNorthernTerritoryAirport : Ind Airport ;
-
-fun InternationalQueenslandAirport : Ind Airport ;
-
-fun InternationalSouthAustraliaAirport : Ind Airport ;
-
-fun InusAirport : Ind Airport ;
-
-fun InvercargillAirport : Ind Airport ;
-
-fun InverellNewSouthWalesAirport : Ind Airport ;
-
-fun InvernessScotlandAirport : Ind Airport ;
-
-fun InverwayNorthernTerritoryAirport : Ind Airport ;
-
-fun InyokernCAAirport : Ind Airport ;
-
-fun IoanninaAirport : Ind Airport ;
-
-fun IokeaAirport : Ind Airport ;
-
-fun IomaAirport : Ind Airport ;
-
-fun IoscoCountyMIAirport : Ind Airport ;
-
-fun IowaCityMunicipalIAAirport : Ind Airport ;
-
-fun IowaFallsMunicipalIAAirport : Ind Airport ;
-
-fun IpatingaAirport : Ind Airport ;
-
-fun IpialesAirport : Ind Airport ;
-
-fun IpiauBAAirport : Ind Airport ;
-
-fun IpilAirport : Ind Airport ;
-
-fun IpirangaAirport : Ind Airport ;
-
-fun IpohAirport : Ind Airport ;
-
-fun IpotaAirport : Ind Airport ;
-
-fun IpswichAirport : Ind Airport ;
-
-fun IraanMunicipalTXAirport : Ind Airport ;
-
-fun IreceBAAirport : Ind Airport ;
-
-fun IringaAirport : Ind Airport ;
-
-fun IrionaAirport : Ind Airport ;
-
-fun IrkutskIrkutskAirport : Ind Airport ;
-
-fun IsabelPassAKAirport : Ind Airport ;
-
-fun IsafjordurAirport : Ind Airport ;
-
-fun IschiaAirport : Ind Airport ;
-
-fun IscuandeAirport : Ind Airport ;
-
-fun IsfahanAirport : Ind Airport ;
-
-fun IshhurdiAirport : Ind Airport ;
-
-fun IshigakiAirport : Ind Airport ;
-
-fun IsisfordQueenslandAirport : Ind Airport ;
-
-fun IslaMujersAirport : Ind Airport ;
-
-fun IslamabadAirport : Ind Airport ;
-
-fun IslandHeliportNYAirport : Ind Airport ;
-
-fun ItabunaBAAirport : Ind Airport ;
-
-fun ItacoiatiaraAMAirport : Ind Airport ;
-
-fun ItaitubaPAAirport : Ind Airport ;
-
-fun ItajaiSCAirport : Ind Airport ;
-
-fun ItambacuriMGAirport : Ind Airport ;
-
-fun ItamiOsakaAirport : Ind Airport ;
-
-fun ItaquiRSAirport : Ind Airport ;
-
-fun ItazukeAirForceBaseKyoshuAirport : Ind Airport ;
-
-fun ItokamaAirport : Ind Airport ;
-
-fun ItuberaBAAirport : Ind Airport ;
-
-fun IvaloAirport : Ind Airport ;
-
-fun IvangradAirport : Ind Airport ;
-
-fun IvankaBratislavaAirport : Ind Airport ;
-
-fun IvanoFrankivskIvanoFrankovskIvanoFrankivskAirport : Ind Airport ;
-
-fun IvanofBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun IvishakAKAirport : Ind Airport ;
-
-fun IwakuniAirForceBaseHonshuIsAirport : Ind Airport ;
-
-fun IwamiAirport : Ind Airport ;
-
-fun IwoJimaAirport : Ind Airport ;
-
-fun IxtepecAirport : Ind Airport ;
-
-fun IzhevskUdmurtiaAirport : Ind Airport ;
-
-fun IzumoAirport : Ind Airport ;
-
-fun JBMHertzogBloemfonteinAirport : Ind Airport ;
-
-fun JabalpurAirport : Ind Airport ;
-
-fun JabatAirport : Ind Airport ;
-
-fun JabiruNorthernTerritoryAirport : Ind Airport ;
-
-fun JacareacangaPRAirport : Ind Airport ;
-
-fun JachelAirport : Ind Airport ;
-
-fun JackEdwardsALAirport : Ind Airport ;
-
-fun JackMcNamaraFieldCAAirport : Ind Airport ;
-
-fun JackpotAirportHaydenFieldNVAirport : Ind Airport ;
-
-fun JacksonCountyAirportReynoldsFieldMIAirport : Ind Airport ;
-
-fun JacksonHoleWYAirport : Ind Airport ;
-
-fun JacksonInternationalMSAirport : Ind Airport ;
-
-fun JacksonvilleInternationalFLAirport : Ind Airport ;
-
-fun JacksonvilleMunicipalILAirport : Ind Airport ;
-
-fun JacobabadAirport : Ind Airport ;
-
-fun JacobinaBAAirport : Ind Airport ;
-
-fun JacouinotBayAirport : Ind Airport ;
-
-fun JaenAirport : Ind Airport ;
-
-fun JaffnaAirport : Ind Airport ;
-
-fun JaffreyMunicipalSilverRanchNHAirport : Ind Airport ;
-
-fun JagdalpurAirport : Ind Airport ;
-
-fun JaipurAirport : Ind Airport ;
-
-fun JaisalmerAirport : Ind Airport ;
-
-fun JalalabadAirport : Ind Airport ;
-
-fun JalapaAirport : Ind Airport ;
-
-fun JambaAirport : Ind Airport ;
-
-fun JambiAirport : Ind Airport ;
-
-fun JambolAirport : Ind Airport ;
-
-fun JamesMCoxDaytonInternationalOHAirport : Ind Airport ;
-
-fun JamestownMunicipalNDAirport : Ind Airport ;
-
-fun JammuAirport : Ind Airport ;
-
-fun JamnagarAirport : Ind Airport ;
-
-fun JamshedpurAirport : Ind Airport ;
-
-fun JanSmutsJohannesburgAirport : Ind Airport ;
-
-fun JanakpurAirport : Ind Airport ;
-
-fun JandakotWesternAustraliaAirport : Ind Airport ;
-
-fun JanuariaMGAirport : Ind Airport ;
-
-fun JaqueAirport : Ind Airport ;
-
-fun JasperCountyAirportBellFieldTXAirport : Ind Airport ;
-
-fun JaujaAirport : Ind Airport ;
-
-fun JeffcoCOAirport : Ind Airport ;
-
-fun JeffersonCityMemorialMOAirport : Ind Airport ;
-
-fun JeffersonCountyAirparkOHAirport : Ind Airport ;
-
-fun JeffersonCountyTXAirport : Ind Airport ;
-
-fun JeffersonMunicipalIAAirport : Ind Airport ;
-
-fun JehAirport : Ind Airport ;
-
-fun JequieBAAirport : Ind Airport ;
-
-fun JeremieAirport : Ind Airport ;
-
-fun JerezdelaFronteraAirport : Ind Airport ;
-
-fun JerseyAirport : Ind Airport ;
-
-fun JesoloAirport : Ind Airport ;
-
-fun JessoreAirport : Ind Airport ;
-
-fun JesupWayneCountyGAAirport : Ind Airport ;
-
-fun JevlachNaxcivanAirport : Ind Airport ;
-
-fun JiParanaROAirport : Ind Airport ;
-
-fun JiamusiAirport : Ind Airport ;
-
-fun JianAirport : Ind Airport ;
-
-fun JianqiaoHangzhouAirport : Ind Airport ;
-
-fun JiayuguanAirport : Ind Airport ;
-
-fun JijigaAirport : Ind Airport ;
-
-fun JilinAirport : Ind Airport ;
-
-fun JimShearerSouthPAAirport : Ind Airport ;
-
-fun JimmaAirport : Ind Airport ;
-
-fun JingdezhenAirport : Ind Airport ;
-
-fun JinghongAirport : Ind Airport ;
-
-fun JiningAirport : Ind Airport ;
-
-fun JinjaAirport : Ind Airport ;
-
-fun JinjiangAirport : Ind Airport ;
-
-fun JinquanAirport : Ind Airport ;
-
-fun JinzhouAirport : Ind Airport ;
-
-fun JipijapaAirport : Ind Airport ;
-
-fun JiriAirport : Ind Airport ;
-
-fun JiujiangAirport : Ind Airport ;
-
-fun JiwaniAirport : Ind Airport ;
-
-fun JoacabaSCAirport : Ind Airport ;
-
-fun JoaoPessoaPBAirport : Ind Airport ;
-
-fun JodhpurAirport : Ind Airport ;
-
-fun JoeFossFieldSDAirport : Ind Airport ;
-
-fun JoensuuAirport : Ind Airport ;
-
-fun JohannesburgHeliportJohannesburgAirport : Ind Airport ;
-
-fun JohnCTuneTNAirport : Ind Airport ;
-
-fun JohnDayStateORAirport : Ind Airport ;
-
-fun JohnFKennedyInternationalNYAirport : Ind Airport ;
-
-fun JohnFKennedyMemorialWIAirport : Ind Airport ;
-
-fun JohnsonAtollJohnstonIslandAirport : Ind Airport ;
-
-fun JohnsonCityTXAirport : Ind Airport ;
-
-fun JohnsonCountyWYAirport : Ind Airport ;
-
-fun JohnstownCambriaCountyPAAirport : Ind Airport ;
-
-fun JohorBahruAirport : Ind Airport ;
-
-fun JoinvilleSCAirport : Ind Airport ;
-
-fun JolietParkDistrictILAirport : Ind Airport ;
-
-fun JoloAirport : Ind Airport ;
-
-fun JomsomAirport : Ind Airport ;
-
-fun JonesboroMunicipalARAirport : Ind Airport ;
-
-fun JonkopingAirport : Ind Airport ;
-
-fun JoplinRegionalMOAirport : Ind Airport ;
-
-fun JordanMTAirport : Ind Airport ;
-
-fun JorgeWilstermanCochabambaAirport : Ind Airport ;
-
-fun JorhatAirport : Ind Airport ;
-
-fun JosAirport : Ind Airport ;
-
-fun JoseAAnzoateguiBarcelonaAirport : Ind Airport ;
-
-fun JosedeSanMartinAirport : Ind Airport ;
-
-fun JosephstaalAirport : Ind Airport ;
-
-fun JoshuaSanfordFieldWIAirport : Ind Airport ;
-
-fun JoufAirport : Ind Airport ;
-
-fun JouniehAirport : Ind Airport ;
-
-fun JuanjuiAirport : Ind Airport ;
-
-fun JuanlesPinsAirport : Ind Airport ;
-
-fun JuaraAirport : Ind Airport ;
-
-fun JuazeirodoNorteCEAirport : Ind Airport ;
-
-fun JubaAirport : Ind Airport ;
-
-fun JuinaMGAirport : Ind Airport ;
-
-fun JuistAirport : Ind Airport ;
-
-fun JuizdoForaMGAirport : Ind Airport ;
-
-fun JujuyAirport : Ind Airport ;
-
-fun JuliaCreekQueenslandAirport : Ind Airport ;
-
-fun JuliacaAirport : Ind Airport ;
-
-fun JulianCarrollKYAirport : Ind Airport ;
-
-fun JulianehabAirport : Ind Airport ;
-
-fun JumlaAirport : Ind Airport ;
-
-fun JundahQueenslandAirport : Ind Airport ;
-
-fun JuneauHarborSeaplaneBaseAKAirport : Ind Airport ;
-
-fun JuneauInternationalAKAirport : Ind Airport ;
-
-fun JuninAirport : Ind Airport ;
-
-fun JuradoAirport : Ind Airport ;
-
-fun JurienBayWesternAustraliaAirport : Ind Airport ;
-
-fun JuruenaMGAirport : Ind Airport ;
-
-fun JuticalpaAirport : Ind Airport ;
-
-fun JuzhowAirport : Ind Airport ;
-
-fun JwanengAirport : Ind Airport ;
-
-fun JyvaskylaJyvaeskylaeAirport : Ind Airport ;
-
-fun KaanapaliHIAirport : Ind Airport ;
-
-fun KabaenaAirport : Ind Airport ;
-
-fun KabalaAirport : Ind Airport ;
-
-fun KabalegaAirport : Ind Airport ;
-
-fun KabaloAirport : Ind Airport ;
-
-fun KabindaAirport : Ind Airport ;
-
-fun KabriDarAirport : Ind Airport ;
-
-fun KabulKhabulAirport : Ind Airport ;
-
-fun KabwumAirport : Ind Airport ;
-
-fun KacmaAirport : Ind Airport ;
-
-fun KadalaChitaAirport : Ind Airport ;
-
-fun KadenaAirForceBaseRyukyuIsAirport : Ind Airport ;
-
-fun KadunaAirport : Ind Airport ;
-
-fun KaediAirport : Ind Airport ;
-
-fun KaeleAirport : Ind Airport ;
-
-fun KagiAirport : Ind Airport ;
-
-fun KagoshimaKyushuAirport : Ind Airport ;
-
-fun KaguaAirport : Ind Airport ;
-
-fun KaiTakInternationalHongKongAirport : Ind Airport ;
-
-fun KaiapitAirport : Ind Airport ;
-
-fun KaieteurAirport : Ind Airport ;
-
-fun KaikoheAirport : Ind Airport ;
-
-fun KaikoruaAirport : Ind Airport ;
-
-fun KailashaharAirport : Ind Airport ;
-
-fun KaimanaAirport : Ind Airport ;
-
-fun KaintibaAirport : Ind Airport ;
-
-fun KaiserslauternAirport : Ind Airport ;
-
-fun KaitaiaAirport : Ind Airport ;
-
-fun KajaaniAirport : Ind Airport ;
-
-fun KakeSeaplaneBaseAKAirport : Ind Airport ;
-
-fun KakhonakAKAirport : Ind Airport ;
-
-fun KakiovikAKAirport : Ind Airport ;
-
-fun KalaboAirport : Ind Airport ;
-
-fun KalakaketAKAirport : Ind Airport ;
-
-fun KalamataAirport : Ind Airport ;
-
-fun KalamazooBattleCreekInternationalMIAirport : Ind Airport ;
-
-fun KalatAirport : Ind Airport ;
-
-fun KalbarriWesternAustraliaAirport : Ind Airport ;
-
-fun KalemieAirport : Ind Airport ;
-
-fun KalemyoAirport : Ind Airport ;
-
-fun KalgoorlieWesternAustraliaAirport : Ind Airport ;
-
-fun KaliboAirport : Ind Airport ;
-
-fun KalimaAirport : Ind Airport ;
-
-fun KaliningradKaliningradAirport : Ind Airport ;
-
-fun KalkurungAirport : Ind Airport ;
-
-fun KalmarAirport : Ind Airport ;
-
-fun KalokolAirport : Ind Airport ;
-
-fun KalpowarQueenslandAirport : Ind Airport ;
-
-fun KalskagAKAirport : Ind Airport ;
-
-fun KaltagAKAirport : Ind Airport ;
-
-fun KamalpurAirport : Ind Airport ;
-
-fun KamaranDownsQueenslandAirport : Ind Airport ;
-
-fun KamaranIslandAirport : Ind Airport ;
-
-fun KamarangAirport : Ind Airport ;
-
-fun KambaldaWesternAustraliaAirport : Ind Airport ;
-
-fun KambuayaAirport : Ind Airport ;
-
-fun KamembeAirport : Ind Airport ;
-
-fun KameshliAirport : Ind Airport ;
-
-fun KamileroiQueenslandAirport : Ind Airport ;
-
-fun KaminaAirport : Ind Airport ;
-
-fun KaminaAirportZaire : Ind Airport ;
-
-fun KamirabaAirport : Ind Airport ;
-
-fun KammarataAirport : Ind Airport ;
-
-fun KampalaAirport : Ind Airport ;
-
-fun KampalaEntebbeAirport : Ind Airport ;
-
-fun KampotAirport : Ind Airport ;
-
-fun KamulaiAirport : Ind Airport ;
-
-fun KamusiAirport : Ind Airport ;
-
-fun KamyanetsPodilskyyKamenetsPodolskiyKhmelnytskyyAirport : Ind Airport ;
-
-fun KanabMunicipalUTAirport : Ind Airport ;
-
-fun KanabeaAirport : Ind Airport ;
-
-fun KanainjAirport : Ind Airport ;
-
-fun KanangaAirport : Ind Airport ;
-
-fun KanazawaKomatsuAirport : Ind Airport ;
-
-fun KandaharAirport : Ind Airport ;
-
-fun KandavuAirport : Ind Airport ;
-
-fun KandepAirport : Ind Airport ;
-
-fun KandiAirport : Ind Airport ;
-
-fun KandlaAirport : Ind Airport ;
-
-fun KandrianAirport : Ind Airport ;
-
-fun KangambaAirport : Ind Airport ;
-
-fun KanganAirport : Ind Airport ;
-
-fun KangnungAirport : Ind Airport ;
-
-fun KaniamaAirport : Ind Airport ;
-
-fun KankanAirport : Ind Airport ;
-
-fun KanoAirport : Ind Airport ;
-
-fun KanombeKigaliAirport : Ind Airport ;
-
-fun KanpurAirport : Ind Airport ;
-
-fun KansaiOsakaAirport : Ind Airport ;
-
-fun KanuaAirport : Ind Airport ;
-
-fun KaolackAirport : Ind Airport ;
-
-fun KapaluaWestMauiHIAirport : Ind Airport ;
-
-fun KapangaAirport : Ind Airport ;
-
-fun KapitSarawakAirport : Ind Airport ;
-
-fun KarKarAirport : Ind Airport ;
-
-fun KarachiAirport : Ind Airport ;
-
-fun KaramayAirport : Ind Airport ;
-
-fun KaranamboAirport : Ind Airport ;
-
-fun KarasabaiAirport : Ind Airport ;
-
-fun KarasburgAirport : Ind Airport ;
-
-fun KaratoAirport : Ind Airport ;
-
-fun KarawariAirport : Ind Airport ;
-
-fun KardjaliAirport : Ind Airport ;
-
-fun KardlaAirport : Ind Airport ;
-
-fun KaribaAirport : Ind Airport ;
-
-fun KarimuiAirport : Ind Airport ;
-
-fun KarlovyVaryAirport : Ind Airport ;
-
-fun KarlskogaAirport : Ind Airport ;
-
-fun KarlstadAirport : Ind Airport ;
-
-fun KarlukAKAirport : Ind Airport ;
-
-fun KarlukLakeSeaplaneBaseAKAirport : Ind Airport ;
-
-fun KarmoyHaugesundAirport : Ind Airport ;
-
-fun KarongaAirport : Ind Airport ;
-
-fun KaroolaAirport : Ind Airport ;
-
-fun KarpathosAirport : Ind Airport ;
-
-fun KarrathaWesternAustraliaAirport : Ind Airport ;
-
-fun KarubagaAirport : Ind Airport ;
-
-fun KarumbaQueenslandAirport : Ind Airport ;
-
-fun KarupAirport : Ind Airport ;
-
-fun KasaanSeaplaneBaseAKAirport : Ind Airport ;
-
-fun KasamaAirport : Ind Airport ;
-
-fun KasaneAirport : Ind Airport ;
-
-fun KasanombeAirport : Ind Airport ;
-
-fun KasengaAirport : Ind Airport ;
-
-fun KaseseAirport : Ind Airport ;
-
-fun KashiAirport : Ind Airport ;
-
-fun KasiglukAKAirport : Ind Airport ;
-
-fun KasikasimaAirport : Ind Airport ;
-
-fun KasongoLundaAirport : Ind Airport ;
-
-fun KasosIslandCreteAirport : Ind Airport ;
-
-fun KassalaAirport : Ind Airport ;
-
-fun KasselAirport : Ind Airport ;
-
-fun KastelorizoAirport : Ind Airport ;
-
-fun KastoriaAirport : Ind Airport ;
-
-fun KastrupKobenhavnCopenhagenAirport : Ind Airport ;
-
-fun KasunguAirport : Ind Airport ;
-
-fun KatanningWesternAustraliaAirport : Ind Airport ;
-
-fun KatherineNorthernTerritoryAirport : Ind Airport ;
-
-fun KatoAirport : Ind Airport ;
-
-fun KatunayakeColomboAirport : Ind Airport ;
-
-fun KauAirport : Ind Airport ;
-
-fun KauhajokiAirport : Ind Airport ;
-
-fun KauhavaAirport : Ind Airport ;
-
-fun KaukuraAirport : Ind Airport ;
-
-fun KaunasAirport : Ind Airport ;
-
-fun KavallaKavalaAirport : Ind Airport ;
-
-fun KavanayenAirport : Ind Airport ;
-
-fun KaviengAirport : Ind Airport ;
-
-fun KawadjiaAirport : Ind Airport ;
-
-fun KawauIslandAirport : Ind Airport ;
-
-fun KawitoAirport : Ind Airport ;
-
-fun KawthaungAirport : Ind Airport ;
-
-fun KayesAirport : Ind Airport ;
-
-fun KayseriAirport : Ind Airport ;
-
-fun KazanTatarstanAirport : Ind Airport ;
-
-fun KeaholeKonaInternationalHIAirport : Ind Airport ;
-
-fun KearneyMunicipalNEAirport : Ind Airport ;
-
-fun KebarAirport : Ind Airport ;
-
-fun KedougouAirport : Ind Airport ;
-
-fun KeeslerAirForceBaseMSAirport : Ind Airport ;
-
-fun KeetmanshoopAirport : Ind Airport ;
-
-fun KefaloniaKefalliniaAirport : Ind Airport ;
-
-fun KeflavikReykjavikAirport : Ind Airport ;
-
-fun KegelmanAirForceAuxiliaryFieldOKAirport : Ind Airport ;
-
-fun KeglsuglAirport : Ind Airport ;
-
-fun KeisahAirport : Ind Airport ;
-
-fun KekanaKauaiAirport : Ind Airport ;
-
-fun KelleAirport : Ind Airport ;
-
-fun KelpBayAKAirport : Ind Airport ;
-
-fun KelseyMBAirport : Ind Airport ;
-
-fun KelsoLongviewWAAirport : Ind Airport ;
-
-fun KeluangAirport : Ind Airport ;
-
-fun KemerovoKemerovoAirport : Ind Airport ;
-
-fun KemmererMunicipalWYAirport : Ind Airport ;
-
-fun KempseyNewSouthWalesAirport : Ind Airport ;
-
-fun KenaiMunicipalAKAirport : Ind Airport ;
-
-fun KenemaAirport : Ind Airport ;
-
-fun KengtungAirport : Ind Airport ;
-
-fun KeniebaAirport : Ind Airport ;
-
-fun KeningauAirport : Ind Airport ;
-
-fun KenmoreAirHarborIncSeaplaneBaseWAAirport : Ind Airport ;
-
-fun KennettMemorialMOAirport : Ind Airport ;
-
-fun KennyCoveAirport : Ind Airport ;
-
-fun KenoshaMunicipalWIAirport : Ind Airport ;
-
-fun KentCountyInternationalMIAirport : Ind Airport ;
-
-fun KentlandMunicipalINAirport : Ind Airport ;
-
-fun KeokukMunicipalIAAirport : Ind Airport ;
-
-fun KepiAirport : Ind Airport ;
-
-fun KeramaAirport : Ind Airport ;
-
-fun KerangVictoriaAirport : Ind Airport ;
-
-fun KerchKrymCrimeaAirport : Ind Airport ;
-
-fun KeremaAirport : Ind Airport ;
-
-fun KerichoAirport : Ind Airport ;
-
-fun KerikeriBayofIslandsAirport : Ind Airport ;
-
-fun KerinciSamatraAirport : Ind Airport ;
-
-fun KerioValleyAirport : Ind Airport ;
-
-fun KerkyraCorfuAirport : Ind Airport ;
-
-fun KermanAirport : Ind Airport ;
-
-fun KermanshahAirport : Ind Airport ;
-
-fun KerrvilleMunicipalAirportLouisSchreinerFieldTXAirport : Ind Airport ;
-
-fun KertehAirport : Ind Airport ;
-
-fun KeruaAirport : Ind Airport ;
-
-fun KeshodAirport : Ind Airport ;
-
-fun KetapangBorneoAirport : Ind Airport ;
-
-fun KetchikanInternationalAKAirport : Ind Airport ;
-
-fun KewaneeMunicipalILAirport : Ind Airport ;
-
-fun KeyLargoFLAirport : Ind Airport ;
-
-fun KeyWestInternationalFLAirport : Ind Airport ;
-
-fun KhajurahoAirport : Ind Airport ;
-
-fun KhamisMushayatAbhaAirport : Ind Airport ;
-
-fun KhamisMuskaytAirport : Ind Airport ;
-
-fun KhamtiAirport : Ind Airport ;
-
-fun KhanehAirport : Ind Airport ;
-
-fun KharkAirport : Ind Airport ;
-
-fun KharkivKharkovKharkivAirport : Ind Airport ;
-
-fun KhartoumAirport : Ind Airport ;
-
-fun KhasabAirport : Ind Airport ;
-
-fun KhashmelGirbaAirport : Ind Airport ;
-
-fun KhaskovoAirport : Ind Airport ;
-
-fun KhersonMykolayivAirport : Ind Airport ;
-
-fun KhmelnytskyyKhmelnitskiyKhmelnytskyyAirport : Ind Airport ;
-
-fun KhonKaenAirport : Ind Airport ;
-
-fun KhongAirport : Ind Airport ;
-
-fun KhostAirport : Ind Airport ;
-
-fun KhowaiAirport : Ind Airport ;
-
-fun KhulnaAirport : Ind Airport ;
-
-fun KhuzdarAirport : Ind Airport ;
-
-fun KhwahanAirport : Ind Airport ;
-
-fun KhwaiRiverLandingAirport : Ind Airport ;
-
-fun KibrisAirport : Ind Airport ;
-
-fun KickapooDowntownAirparkTXAirport : Ind Airport ;
-
-fun KielAirport : Ind Airport ;
-
-fun KietaAirport : Ind Airport ;
-
-fun KiffaAirport : Ind Airport ;
-
-fun KikaigaShimaAirport : Ind Airport ;
-
-fun KikinondaAirport : Ind Airport ;
-
-fun KikoriAirport : Ind Airport ;
-
-fun KikwitAirport : Ind Airport ;
-
-fun KilaguniAirport : Ind Airport ;
-
-fun KiliKiliIslandAirport : Ind Airport ;
-
-fun KilimanjaroAirport : Ind Airport ;
-
-fun KilkennyAirport : Ind Airport ;
-
-fun KillarneyKerryCountyAirport : Ind Airport ;
-
-fun KilleenMunicipalTXAirport : Ind Airport ;
-
-fun KilwaAirport : Ind Airport ;
-
-fun KilwaAirportTanzania : Ind Airport ;
-
-fun KimamAirport : Ind Airport ;
-
-fun KimballMunicipalAirportRobertEArrajFieldNEAirport : Ind Airport ;
-
-fun KimbeHoskinsAirport : Ind Airport ;
-
-fun KimberleyAirport : Ind Airport ;
-
-fun KimberlyDownsWesternAustraliaAirport : Ind Airport ;
-
-fun KimbleCountyTXAirport : Ind Airport ;
-
-fun KincheldeAirForceBaseMIAirport : Ind Airport ;
-
-fun KindambaAirport : Ind Airport ;
-
-fun KindleyFieldBermudaAirport : Ind Airport ;
-
-fun KinduAirport : Ind Airport ;
-
-fun KingAbdulAzizJeddahAirport : Ind Airport ;
-
-fun KingCoveAKAirport : Ind Airport ;
-
-fun KingIslandTasmaniaAirport : Ind Airport ;
-
-fun KingSalmonAKAirport : Ind Airport ;
-
-fun KingaroyQueenslandAirport : Ind Airport ;
-
-fun KingfisherLakeAerodromeONAirport : Ind Airport ;
-
-fun KingmanAZAirport : Ind Airport ;
-
-fun KingsCanyonNorthernTerritoryAirport : Ind Airport ;
-
-fun KingsCreekStationAirport : Ind Airport ;
-
-fun KingscoteKangarooIslandSouthAustraliaAirport : Ind Airport ;
-
-fun KinmenAirport : Ind Airport ;
-
-fun KinstonRegionalJetportatStallingsFieldNCAirport : Ind Airport ;
-
-fun KipnukAKAirport : Ind Airport ;
-
-fun KiraAirport : Ind Airport ;
-
-fun KirakiraAirport : Ind Airport ;
-
-fun KiriAirport : Ind Airport ;
-
-fun KirkimbieAirport : Ind Airport ;
-
-fun KirksvilleRegionalMOAirport : Ind Airport ;
-
-fun KirkukAirport : Ind Airport ;
-
-fun KirkwallOrkneyIslandsAirport : Ind Airport ;
-
-fun KirovohradKirovogradKirovohradAirport : Ind Airport ;
-
-fun KirschMunicipalMIAirport : Ind Airport ;
-
-fun KirunaAirport : Ind Airport ;
-
-fun KirunduAirport : Ind Airport ;
-
-fun KiryatShmonaAirport : Ind Airport ;
-
-fun KisenganAirport : Ind Airport ;
-
-fun KishIslandAirport : Ind Airport ;
-
-fun KismayuAirport : Ind Airport ;
-
-fun KissidougouAirport : Ind Airport ;
-
-fun KisumuAirport : Ind Airport ;
-
-fun KitaDaitoAirport : Ind Airport ;
-
-fun KitaKyushuAirport : Ind Airport ;
-
-fun KitaleAirport : Ind Airport ;
-
-fun KitavaAirport : Ind Airport ;
-
-fun KithiraAirport : Ind Airport ;
-
-fun KitoiBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun KitsaultBCAirport : Ind Airport ;
-
-fun KittilaAirport : Ind Airport ;
-
-fun KitweAirport : Ind Airport ;
-
-fun KiungaAirportKenya : Ind Airport ;
-
-fun KivalinaAKAirport : Ind Airport ;
-
-fun KiwaiIslandAirport : Ind Airport ;
-
-fun KiwayuAirport : Ind Airport ;
-
-fun KizhuyakAKAirport : Ind Airport ;
-
-fun KjevikKristiansandAirport : Ind Airport ;
-
-fun KlagBayAKAirport : Ind Airport ;
-
-fun KlagenfurtAirport : Ind Airport ;
-
-fun KlaipedaAirport : Ind Airport ;
-
-fun KlawockAKAirport : Ind Airport ;
-
-fun KleinzeeAirport : Ind Airport ;
-
-fun KlerksdorpAirport : Ind Airport ;
-
-fun KnokkeHeistZouteAirport : Ind Airport ;
-
-fun KnoxArmyHeliportALAirport : Ind Airport ;
-
-fun KnoxvilleDowntownIslandTNAirport : Ind Airport ;
-
-fun KochiAirport : Ind Airport ;
-
-fun KodiakAKAirport : Ind Airport ;
-
-fun KodiakMunicipalAKAirport : Ind Airport ;
-
-fun KoelnKolnAirport : Ind Airport ;
-
-fun KoinambeAirport : Ind Airport ;
-
-fun KoingnaasAirport : Ind Airport ;
-
-fun KokeKathiemLopBuriAirport : Ind Airport ;
-
-fun KokodaAirport : Ind Airport ;
-
-fun KokonaoAirport : Ind Airport ;
-
-fun KokoroAirport : Ind Airport ;
-
-fun KokrinesAKAirport : Ind Airport ;
-
-fun KokshetauKokchetavKokshetauAirport : Ind Airport ;
-
-fun KolAirport : Ind Airport ;
-
-fun KoldaAirport : Ind Airport ;
-
-fun KolhapurAirport : Ind Airport ;
-
-fun KolweziAirport : Ind Airport ;
-
-fun KomacoAirport : Ind Airport ;
-
-fun KomoMandaAirport : Ind Airport ;
-
-fun KomoroDiliAirport : Ind Airport ;
-
-fun KompiamAirport : Ind Airport ;
-
-fun KompongChhnangAirport : Ind Airport ;
-
-fun KompongThomAirport : Ind Airport ;
-
-fun KompongsomAirport : Ind Airport ;
-
-fun KomsomolskNaAmureKhabarovskAirport : Ind Airport ;
-
-fun KonawarukAirport : Ind Airport ;
-
-fun KoneAirport : Ind Airport ;
-
-fun KongeAirport : Ind Airport ;
-
-fun KongiganakAKAirport : Ind Airport ;
-
-fun KongoboumbaAirport : Ind Airport ;
-
-fun KongoloAirport : Ind Airport ;
-
-fun KonoAirport : Ind Airport ;
-
-fun KontumAirport : Ind Airport ;
-
-fun KonyaAirport : Ind Airport ;
-
-fun KoolatahQueenslandAirport : Ind Airport ;
-
-fun KoolburraQueenslandAirport : Ind Airport ;
-
-fun KoonibbaSouthAustraliaAirport : Ind Airport ;
-
-fun KopiagoAirport : Ind Airport ;
-
-fun KorhogoAirport : Ind Airport ;
-
-fun KorlaAirport : Ind Airport ;
-
-fun KoroAirport : Ind Airport ;
-
-fun KorobaAirport : Ind Airport ;
-
-fun KorolevuAirport : Ind Airport ;
-
-fun KortrijkWevelgemKortrijkAirport : Ind Airport ;
-
-fun KosKosIslandAirport : Ind Airport ;
-
-fun KosipeAirport : Ind Airport ;
-
-fun KosreaKosraeIslandAirport : Ind Airport ;
-
-fun KostiAirport : Ind Airport ;
-
-fun KotaAirport : Ind Airport ;
-
-fun KotaBharuAirport : Ind Airport ;
-
-fun KotaKinabaluEastAirport : Ind Airport ;
-
-fun KotabangunAirport : Ind Airport ;
-
-fun KotabaruAirport : Ind Airport ;
-
-fun KotakoliAirport : Ind Airport ;
-
-fun KotlikAKAirport : Ind Airport ;
-
-fun KotokaAccraAirport : Ind Airport ;
-
-fun KoulamoutouAirport : Ind Airport ;
-
-fun KoumacAirport : Ind Airport ;
-
-fun KoumalaAirport : Ind Airport ;
-
-fun KoutabaAirport : Ind Airport ;
-
-fun KoutialaAirport : Ind Airport ;
-
-fun KowanyamaQueenslandAirport : Ind Airport ;
-
-fun KoyukAKAirport : Ind Airport ;
-
-fun KoyukukAKAirport : Ind Airport ;
-
-fun KozaniAirport : Ind Airport ;
-
-fun KrabiAirport : Ind Airport ;
-
-fun KrakorAirport : Ind Airport ;
-
-fun KramatorskDonetskAirport : Ind Airport ;
-
-fun KramforsAirport : Ind Airport ;
-
-fun KranebittenInnsbruckAirport : Ind Airport ;
-
-fun KrasnodarKrasnodarAirport : Ind Airport ;
-
-fun KrasnodovskBalkanAirport : Ind Airport ;
-
-fun KrasnoyarskKrasnoyarskAirport : Ind Airport ;
-
-fun KratieAirport : Ind Airport ;
-
-fun KremenchukKremenchugPoltavaAirport : Ind Airport ;
-
-fun KribiAirport : Ind Airport ;
-
-fun KristianstadAirport : Ind Airport ;
-
-fun KrivyyRihKrivoyRogDnipropetrovskAirport : Ind Airport ;
-
-fun KualaBelaitAirport : Ind Airport ;
-
-fun KuantanAirport : Ind Airport ;
-
-fun KubinIslandAirport : Ind Airport ;
-
-fun KuchingEastAirport : Ind Airport ;
-
-fun KudatSabahAirport : Ind Airport ;
-
-fun KufrahAirport : Ind Airport ;
-
-fun KukunduAirport : Ind Airport ;
-
-fun KulgeraNorthernTerritoryAirport : Ind Airport ;
-
-fun KuluAirport : Ind Airport ;
-
-fun KulusukIslandAirport : Ind Airport ;
-
-fun KumamotoAirport : Ind Airport ;
-
-fun KumasiAirport : Ind Airport ;
-
-fun KumgimAirport : Ind Airport ;
-
-fun KunsanAirport : Ind Airport ;
-
-fun KununurraWesternAustraliaAirport : Ind Airport ;
-
-fun KuopioAirport : Ind Airport ;
-
-fun KuorevisiAirport : Ind Airport ;
-
-fun KupianoAirport : Ind Airport ;
-
-fun KupperNJAirport : Ind Airport ;
-
-fun KuqaAirport : Ind Airport ;
-
-fun KuranAirport : Ind Airport ;
-
-fun KurganKurganAirport : Ind Airport ;
-
-fun KuriAirport : Ind Airport ;
-
-fun KuriaAirport : Ind Airport ;
-
-fun KurumanAirport : Ind Airport ;
-
-fun KurundiNorthernTerritoryAirport : Ind Airport ;
-
-fun KurupungAirport : Ind Airport ;
-
-fun KurwinaAirport : Ind Airport ;
-
-fun KushimotoAirport : Ind Airport ;
-
-fun KushiroAirport : Ind Airport ;
-
-fun KutaisiAirport : Ind Airport ;
-
-fun KuusamoAirport : Ind Airport ;
-
-fun KuvumuBukavuAirport : Ind Airport ;
-
-fun KuwaitAirport : Ind Airport ;
-
-fun KvernbergetKristiansundAirport : Ind Airport ;
-
-fun KwaiHarbourAirport : Ind Airport ;
-
-fun KwangjuAirport : Ind Airport ;
-
-fun KwethlukAKAirport : Ind Airport ;
-
-fun KwigillingokSeaplaneBaseAKAirport : Ind Airport ;
-
-fun KyaukpyuAirport : Ind Airport ;
-
-fun KyauktawAirport : Ind Airport ;
-
-fun KyleOakleyFieldKYAirport : Ind Airport ;
-
-fun KyzylTuvaAirport : Ind Airport ;
-
-fun LaAuroraGuatemalaCityAirport : Ind Airport ;
-
-fun LaDefenseHeliportParisAirport : Ind Airport ;
-
-fun LaDesiradeAirport : Ind Airport ;
-
-fun LaRocheAirport : Ind Airport ;
-
-fun LaayouneAirport : Ind Airport ;
-
-fun LakeBrooksSeaplaneBaseAKAirport : Ind Airport ;
-
-fun LakeBuenaVistaSTOLFLAirport : Ind Airport ;
-
-fun LakeHavasuCityAZAirport : Ind Airport ;
-
-fun LakefieldOHAirport : Ind Airport ;
-
-fun LakelandAirportNobleFLeeMemorialFieldWIAirport : Ind Airport ;
-
-fun LanderCountyNVAirport : Ind Airport ;
-
-fun LandskronaHeliportHelsingborAirport : Ind Airport ;
-
-fun LandvetterGoteborgGothenburgAirport : Ind Airport ;
-
-fun LangenhagenHannoverAirport : Ind Airport ;
-
-fun LanseriaAirport : Ind Airport ;
-
-fun LanzaroteCanaryIslandsAirport : Ind Airport ;
-
-fun LarsenBayAKAirport : Ind Airport ;
-
-fun LasVegasHendersonSkyHarborNVAirport : Ind Airport ;
-
-fun LaughlinAirForceBaseTXAirport : Ind Airport ;
-
-fun LaughlinBullheadCityAZAirport : Ind Airport ;
-
-fun LaurenceGHanscomFieldMAAirport : Ind Airport ;
-
-fun LavonNorthTXAirport : Ind Airport ;
-
-fun LeCastelletAirport : Ind Airport ;
-
-fun LeLamentinFortdeFranceAirport : Ind Airport ;
-
-fun LeaCountyHobbsNMAirport : Ind Airport ;
-
-fun LeeCFineMemorialMOAirport : Ind Airport ;
-
-fun LeeGilmerMemorialGAAirport : Ind Airport ;
-
-fun LeeMDAirport : Ind Airport ;
-
-fun LeesburgMunicipalAirportGodfreyFieldVAAirport : Ind Airport ;
-
-fun LegerBecharAirport : Ind Airport ;
-
-fun LehAirport : Ind Airport ;
-
-fun LemboHeliportNJAirport : Ind Airport ;
-
-fun LenaweeCountyMIAirport : Ind Airport ;
-
-fun LeonardodaVinciFiumicinoRomaRomeAirport : Ind Airport ;
-
-fun LesCayesAirport : Ind Airport ;
-
-fun LevelockAKAirport : Ind Airport ;
-
-fun LewisUniversityILAirport : Ind Airport ;
-
-fun LexingtonMunicipalNCAirport : Ind Airport ;
-
-fun LibbyArmyAirFieldSierraVistaMunicipalAZAirport : Ind Airport ;
-
-fun LilabariAirport : Ind Airport ;
-
-fun LimaAllenCountyOHAirport : Ind Airport ;
-
-fun LincolnMunicipalArmyNationalGuardBaseOperationsNEAirport : Ind Airport ;
-
-fun ListaFarsundAirport : Ind Airport ;
-
-fun LittleDiomedeIslandAKAirport : Ind Airport ;
-
-fun LockhartRiversQueenslandAirport : Ind Airport ;
-
-fun LogansportMunicipalINAirport : Ind Airport ;
-
-fun LongIslandMacArthurNYAirport : Ind Airport ;
-
-fun LongPaisaSabahAirport : Ind Airport ;
-
-fun LongvicDijonAirport : Ind Airport ;
-
-fun LorraineMetzNancyAirport : Ind Airport ;
-
-fun LosCanosGuantanamoAirport : Ind Airport ;
-
-fun LouisBothaDurbanAirport : Ind Airport ;
-
-fun LovellFieldTNAirport : Ind Airport ;
-
-fun LowenthalFriedrichshafenAirport : Ind Airport ;
-
-fun LuanoLubumbashiAirport : Ind Airport ;
-
-fun LuceCountyHaleMIAirport : Ind Airport ;
-
-fun LulsgateEnglandAirport : Ind Airport ;
-
-fun LumbalaAirport : Ind Airport ;
-
-fun LungiFreetownAirport : Ind Airport ;
-
-fun LyangasodvKirovAirport : Ind Airport ;
-
-fun MPokoBanguiAirport : Ind Airport ;
-
-fun MackallArmyAirFieldNCAirport : Ind Airport ;
-
-fun MadisonLacQuiParleCountyMNAirport : Ind Airport ;
-
-fun MaduraiAirport : Ind Airport ;
-
-fun MaeHongSonAirport : Ind Airport ;
-
-fun MagadanMagadanAirport : Ind Airport ;
-
-fun MagnoliaMunicipalARAirport : Ind Airport ;
-
-fun MahlonSweetFieldORAirport : Ind Airport ;
-
-fun MajorsTXAirport : Ind Airport ;
-
-fun MakabanaAirport : Ind Airport ;
-
-fun MakokolaAirport : Ind Airport ;
-
-fun MalaMalaAirport : Ind Airport ;
-
-fun MalagaAirport : Ind Airport ;
-
-fun MalmiHelsinkiAirport : Ind Airport ;
-
-fun MalmoHarbourHeliportMalmoAirport : Ind Airport ;
-
-fun MalmstromAirForceBaseMTAirport : Ind Airport ;
-
-fun MandelieuCannesAirport : Ind Airport ;
-
-fun MandjiAirport : Ind Airport ;
-
-fun MangaloreAirport : Ind Airport ;
-
-fun MangarevaGambierIslandsAirport : Ind Airport ;
-
-fun MannyYokoFreetownAirport : Ind Airport ;
-
-fun ManokotakAKAirport : Ind Airport ;
-
-fun MansehraAirport : Ind Airport ;
-
-fun MansionHouseAirport : Ind Airport ;
-
-fun MaoAirport : Ind Airport ;
-
-fun MareebaQueenslandAirport : Ind Airport ;
-
-fun MarhanRAFStationEnglandAirport : Ind Airport ;
-
-fun MarieGalanteAirport : Ind Airport ;
-
-fun MarionCountyALAirport : Ind Airport ;
-
-fun MarionCountyAirportBrownFieldTNAirport : Ind Airport ;
-
-fun MarionCountyRegionalARAirport : Ind Airport ;
-
-fun MariscalEstigarribiaAirport : Ind Airport ;
-
-fun MarkaAmmanAirport : Ind Airport ;
-
-fun MarketCenterHeliportTXAirport : Ind Airport ;
-
-fun MarlboroCountySCAirport : Ind Airport ;
-
-fun MarriottAstrodomeHeliportTXAirport : Ind Airport ;
-
-fun MarshallArmyAirFieldKSAirport : Ind Airport ;
-
-fun MaryvilleMemorialMOAirport : Ind Airport ;
-
-fun MasindiAirport : Ind Airport ;
-
-fun MasvingoAirport : Ind Airport ;
-
-fun MatariIsiroAirport : Ind Airport ;
-
-fun MataveriEasterIsAirport : Ind Airport ;
-
-fun MaupertusCherbourgAirport : Ind Airport ;
-
-fun MaxsonAirfieldNYAirport : Ind Airport ;
-
-fun MayaMayaBrazzavilleAirport : Ind Airport ;
-
-fun McClellanPalomarCAAirport : Ind Airport ;
-
-fun McConnellAirForceBaseKSAirport : Ind Airport ;
-
-fun McCordAKAirport : Ind Airport ;
-
-fun MeadowsFieldCAAirport : Ind Airport ;
-
-fun MedellinAirport : Ind Airport ;
-
-fun MelbourneHeliportVictoriaAirport : Ind Airport ;
-
-fun MelvilleHallDominicaRoseauAirport : Ind Airport ;
-
-fun MemorialFieldARAirport : Ind Airport ;
-
-fun MercerCountyWVAirport : Ind Airport ;
-
-fun MeridianArmyNationalGuardBaseOperationsMSAirport : Ind Airport ;
-
-fun MerignacBordeauxAirport : Ind Airport ;
-
-fun MerleKMudholeSmithAKAirport : Ind Airport ;
-
-fun MerrillCMeigsILAirport : Ind Airport ;
-
-fun MerrittIslandFLAirport : Ind Airport ;
-
-fun MervilleCalonneAirport : Ind Airport ;
-
-fun MesadelReyCAAirport : Ind Airport ;
-
-fun MethodistHospitalHeliportCAAirport : Ind Airport ;
-
-fun MetropolitanAreaBaghdadAirport : Ind Airport ;
-
-fun MetropolitanAreaBerlinAirport : Ind Airport ;
-
-fun MetropolitanAreaBucharestAirport : Ind Airport ;
-
-fun MetropolitanAreaBuenosAiresAirport : Ind Airport ;
-
-fun MetropolitanAreaILAirport : Ind Airport ;
-
-fun MetropolitanAreaJakartaAirport : Ind Airport ;
-
-fun MetropolitanAreaKSAirport : Ind Airport ;
-
-fun MetropolitanAreaMIAirport : Ind Airport ;
-
-fun MettelFieldINAirport : Ind Airport ;
-
-fun MiamiHeliportFLAirport : Ind Airport ;
-
-fun MicalovoTverAirport : Ind Airport ;
-
-fun MichaelArmyAirFieldUTAirport : Ind Airport ;
-
-fun MieleMimbaleAirport : Ind Airport ;
-
-fun MiguelHidalgoyCostillaGuadalajaraAirport : Ind Airport ;
-
-fun MihaiKogainiceanuConstantaAirport : Ind Airport ;
-
-fun MikonosAirport : Ind Airport ;
-
-fun MiltonKeynesAirport : Ind Airport ;
-
-fun MiyazakiAirport : Ind Airport ;
-
-fun MobaAirport : Ind Airport ;
-
-fun MobileDowntownALAirport : Ind Airport ;
-
-fun MohamedVCasablancaAirport : Ind Airport ;
-
-fun MohammedVCasablancaAirport : Ind Airport ;
-
-fun MondellFieldWYAirport : Ind Airport ;
-
-fun MonroeCountyINAirport : Ind Airport ;
-
-fun MonroeNCAirport : Ind Airport ;
-
-fun MontgomeryCountyAirparkMDAirport : Ind Airport ;
-
-fun MontgomeryCountyTXAirport : Ind Airport ;
-
-fun MooreArmyAirFieldMAAirport : Ind Airport ;
-
-fun MoserBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun MouguluAirport : Ind Airport ;
-
-fun MountCarmelMunicipalILAirport : Ind Airport ;
-
-fun MountGunsonSouthAustraliaAirport : Ind Airport ;
-
-fun MountIsaQueenslandAirport : Ind Airport ;
-
-fun MountWashingtonRegionalNHAirport : Ind Airport ;
-
-fun MtGoldworthyWesternAustraliaAirport : Ind Airport ;
-
-fun MtHagenAirport : Ind Airport ;
-
-fun MudgeeNewSouthWalesAirport : Ind Airport ;
-
-fun MuharraqInternationalBahrainAirport : Ind Airport ;
-
-fun MuldrowAirfieldHeliportOKAirport : Ind Airport ;
-
-fun MunicipalCrookedAirport : Ind Airport ;
-
-fun MurrayFieldCAAirport : Ind Airport ;
-
-fun NAALongBeachPortHelistopCAAirport : Ind Airport ;
-
-fun NDendeAirport : Ind Airport ;
-
-fun NDjiliKinshasaAirport : Ind Airport ;
-
-fun NDjoleAirport : Ind Airport ;
-
-fun NadiaInternationalAbuDhabiAirport : Ind Airport ;
-
-fun NahaAirForceBaseOkinawaAirport : Ind Airport ;
-
-fun NakhonPhanomAirport : Ind Airport ;
-
-fun NamatanaiAirport : Ind Airport ;
-
-fun NampulaAirport : Ind Airport ;
-
-fun NanchangAirport : Ind Airport ;
-
-fun NanortalikAirport : Ind Airport ;
-
-fun NantucketMemorialMAAirport : Ind Airport ;
-
-fun NapaCountyCAAirport : Ind Airport ;
-
-fun NaplesMunicipalFLAirport : Ind Airport ;
-
-fun NarssaqAirport : Ind Airport ;
-
-fun NashvilleInternationalTNAirport : Ind Airport ;
-
-fun NasikAirport : Ind Airport ;
-
-fun NationalZaventemBrusselsBruxellesAirport : Ind Airport ;
-
-fun NatronaCountyInternationalWYAirport : Ind Airport ;
-
-fun NavalAirFacilityEnglandAirport : Ind Airport ;
-
-fun NaxosAirport : Ind Airport ;
-
-fun NeedlesCAAirport : Ind Airport ;
-
-fun NegageAirport : Ind Airport ;
-
-fun NegarboAirport : Ind Airport ;
-
-fun NeghelliAirport : Ind Airport ;
-
-fun NeilArmstrongOHAirport : Ind Airport ;
-
-fun NejranAirport : Ind Airport ;
-
-fun NemaAirport : Ind Airport ;
-
-fun NenanaMunicipalAKAirport : Ind Airport ;
-
-fun NeoshoMemorialMOAirport : Ind Airport ;
-
-fun NepalganjAirport : Ind Airport ;
-
-fun NeumuensterAirport : Ind Airport ;
-
-fun NewBedfordMunicipalMAAirport : Ind Airport ;
-
-fun NewCastleCountyDEAirport : Ind Airport ;
-
-fun NewHanoverInternationalNCAirport : Ind Airport ;
-
-fun NewKoliganekAKAirport : Ind Airport ;
-
-fun NewStuyahokAKAirport : Ind Airport ;
-
-fun NewarkInternationalNJAirport : Ind Airport ;
-
-fun NewportBeachCAAirport : Ind Airport ;
-
-fun NewportStateVTAirport : Ind Airport ;
-
-fun NewtokAKAirport : Ind Airport ;
-
-fun NewtonCityCountyKSAirport : Ind Airport ;
-
-fun NgurahRaiDenpasarBaliAirport : Ind Airport ;
-
-fun NiagaraFallsInternationalNYAirport : Ind Airport ;
-
-fun NicaroAirport : Ind Airport ;
-
-fun NieuenlandBremenAirport : Ind Airport ;
-
-fun NieuwNickerieNewNickerieAirport : Ind Airport ;
-
-fun NiigataHonshuAirport : Ind Airport ;
-
-fun NiihameAirport : Ind Airport ;
-
-fun NikolskiAKAirport : Ind Airport ;
-
-fun NimrozAirport : Ind Airport ;
-
-fun NisAirport : Ind Airport ;
-
-fun NishinoomoteAirport : Ind Airport ;
-
-fun NissanIslandAirport : Ind Airport ;
-
-fun NiueIslandAirport : Ind Airport ;
-
-fun NjombeAirport : Ind Airport ;
-
-fun NoiBaiHanoiAirport : Ind Airport ;
-
-fun NormanManleyKingstonAirport : Ind Airport ;
-
-fun NorthEleutheraEleutheraAirport : Ind Airport ;
-
-fun NorthFrontGibraltarAirport : Ind Airport ;
-
-fun NorthPerryFLAirport : Ind Airport ;
-
-fun NoumeaAirport : Ind Airport ;
-
-fun NoumerateGhardaiaAirport : Ind Airport ;
-
-fun NovyKhabarovskAirport : Ind Airport ;
-
-fun NowShahrAirport : Ind Airport ;
-
-fun NuevaGeronaAirport : Ind Airport ;
-
-fun NumfoorAirport : Ind Airport ;
-
-fun NzetoAirport : Ind Airport ;
-
-fun OSullivanArmyAirFieldNationalGuardCAAirport : Ind Airport ;
-
-fun OaklandConventionCenterHeliportCAAirport : Ind Airport ;
-
-fun ObbiaAirport : Ind Airport ;
-
-fun OdienneAirport : Ind Airport ;
-
-fun OhioUniversityOHAirport : Ind Airport ;
-
-fun OlatheKSKansasCityAirport : Ind Airport ;
-
-fun OlgaBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun OntarioHeliportCAAirport : Ind Airport ;
-
-fun OrangeNewSouthWalesAirport : Ind Airport ;
-
-fun OrcasIslandWAAirport : Ind Airport ;
-
-fun OrchidIslandAirport : Ind Airport ;
-
-fun OrechovisGornaAirport : Ind Airport ;
-
-fun OrlandoMunicipalFLAirport : Ind Airport ;
-
-fun OtisArmyNationalGuardBaseMAAirport : Ind Airport ;
-
-fun OtsegoCountyMIAirport : Ind Airport ;
-
-fun OuedIraraHassiMessaoudAirport : Ind Airport ;
-
-fun OutagamieCountyWIAirport : Ind Airport ;
-
-fun OutlawFieldTNAirport : Ind Airport ;
-
-fun OuzinkieAKAirport : Ind Airport ;
-
-fun OwenRobertsGrandCaymanAirport : Ind Airport ;
-
-fun PageFieldFLAirport : Ind Airport ;
-
-fun PajasBlancasCordobaAirport : Ind Airport ;
-
-fun PaleseMacchieBariAirport : Ind Airport ;
-
-fun PalmasdelMarAirport : Ind Airport ;
-
-fun PalonegroBucaramangaAirport : Ind Airport ;
-
-fun PamandziDzaoudziMamoudzouAirport : Ind Airport ;
-
-fun PanajiAirport : Ind Airport ;
-
-fun PangbornMemorialWAAirport : Ind Airport ;
-
-fun ParatebuenoAirport : Ind Airport ;
-
-fun ParkTenHeliportTXAirport : Ind Airport ;
-
-fun ParkTownshipMIAirport : Ind Airport ;
-
-fun ParksSeaplaneBaseAKAirport : Ind Airport ;
-
-fun ParmeBayonneAngletBiarritzAirport : Ind Airport ;
-
-fun PasadenaCAAirport : Ind Airport ;
-
-fun PasighatAirport : Ind Airport ;
-
-fun PasodelosLibresAirport : Ind Airport ;
-
-fun PatengaChittagongAirport : Ind Airport ;
-
-fun PathankotAirport : Ind Airport ;
-
-fun PatrickAirForceBaseFLAirport : Ind Airport ;
-
-fun PattimuraAmbonAirport : Ind Airport ;
-
-fun PauloffHarborSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PeachtreeCityAirportFalconFieldGAAirport : Ind Airport ;
-
-fun PearlsGrenadaGrenvilleAirport : Ind Airport ;
-
-fun PentagonArmyHeliportDCAirport : Ind Airport ;
-
-fun PeretolaFirenzeFlorenceAirport : Ind Airport ;
-
-fun PerimeterGAAirport : Ind Airport ;
-
-fun PerryFoleyFLAirport : Ind Airport ;
-
-fun PerryvilleAKAirport : Ind Airport ;
-
-fun PhiferAirfieldWYAirport : Ind Airport ;
-
-fun PhilLHudsonMunicipalTXAirport : Ind Airport ;
-
-fun PhilipSWGoldsonInternationalBelizeCityAirport : Ind Airport ;
-
-fun PhillipsArmyAirFieldMDAirport : Ind Airport ;
-
-fun PhoenixDeerValleyMunicipalAZAirport : Ind Airport ;
-
-fun PhoenixGoodyearMunicipalAZAirport : Ind Airport ;
-
-fun PhuBonAirport : Ind Airport ;
-
-fun PhuketAirport : Ind Airport ;
-
-fun PickensCountyGAAirport : Ind Airport ;
-
-fun PiedmontTriadInternationalNCAirport : Ind Airport ;
-
-fun PietarsaariKokkolaAirport : Ind Airport ;
-
-fun PlantationAirparkGAAirport : Ind Airport ;
-
-fun PohangAirport : Ind Airport ;
-
-fun PointBakerSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PointeSalineAirport : Ind Airport ;
-
-fun PopeFieldINAirport : Ind Airport ;
-
-fun PorettaCorsicaAirport : Ind Airport ;
-
-fun PortAuthorityDowntownManhattanWallStreetHeliportNYAirport : Ind Airport ;
-
-fun PortAuthorityWest30thStreetMidtownHeliportNYAirport : Ind Airport ;
-
-fun PortBaileySeaplaneBaseAKAirport : Ind Airport ;
-
-fun PortBlairAirport : Ind Airport ;
-
-fun PortBouetAbidjanAirport : Ind Airport ;
-
-fun PortClarenceCoastGuardStationAKAirport : Ind Airport ;
-
-fun PortColumbusInternationalOHAirport : Ind Airport ;
-
-fun PortEllenIslayAirport : Ind Airport ;
-
-fun PortFitzroyAirport : Ind Airport ;
-
-fun PortWilliamsSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PortlandHillsboroORAirport : Ind Airport ;
-
-fun PortoSeguroBAAirport : Ind Airport ;
-
-fun PortofAstoriaORAirport : Ind Airport ;
-
-fun PresidenteStroessnerAsuncionAirport : Ind Airport ;
-
-fun PretoriaHeliportPretoriaAirport : Ind Airport ;
-
-fun PrincevilleHIAirport : Ind Airport ;
-
-fun PrincipedaBeiraROAirport : Ind Airport ;
-
-fun PryorFieldALAirport : Ind Airport ;
-
-fun PuertoArmuellaAirport : Ind Airport ;
-
-fun PyongyangAirport : Ind Airport ;
-
-fun PyrzowiceKatowiceAirport : Ind Airport ;
-
-fun QaisumahAirport : Ind Airport ;
-
-fun QarshiKarshiQashqadaryoAirport : Ind Airport ;
-
-fun QiemoAirport : Ind Airport ;
-
-fun QingyangAirport : Ind Airport ;
-
-fun QishnAirport : Ind Airport ;
-
-fun QostanayKustanayQostanayAirport : Ind Airport ;
-
-fun QuamichanLakeWaterAerodromeBCAirport : Ind Airport ;
-
-fun QuanducAirport : Ind Airport ;
-
-fun QuartzCreekAKAirport : Ind Airport ;
-
-fun QueenAliaInternationalAmmanAirport : Ind Airport ;
-
-fun QueenBeatrixInternationalArubaOranjestadAirport : Ind Airport ;
-
-fun QuinhagakAKAirport : Ind Airport ;
-
-fun RAFStationScotlandAirport : Ind Airport ;
-
-fun RISDDowneyHelistopCAAirport : Ind Airport ;
-
-fun RIScienceCenterHelistopCAAirport : Ind Airport ;
-
-fun RaeBareliAirport : Ind Airport ;
-
-fun RafaelNunezCartagenadeIndiasAirport : Ind Airport ;
-
-fun RaleighCountyMemorialWVAirport : Ind Airport ;
-
-fun RanchiAirport : Ind Airport ;
-
-fun RebiechowoGdanskAirport : Ind Airport ;
-
-fun RedhillEnglandAirport : Ind Airport ;
-
-fun RedstoneArmyAirFieldALAirport : Ind Airport ;
-
-fun RennerFieldGoodlandMunicipalKSAirport : Ind Airport ;
-
-fun RentschlerCTAirport : Ind Airport ;
-
-fun RepublicNYAirport : Ind Airport ;
-
-fun RheinMainAirForceBaseFrankfurtAirport : Ind Airport ;
-
-fun RheinMainFrankfurtAirport : Ind Airport ;
-
-fun RheinRuhrDuesseldorfDusseldorfAirport : Ind Airport ;
-
-fun RheindahlenAirport : Ind Airport ;
-
-fun RhooseCardiffAirport : Ind Airport ;
-
-fun RichardsGebaurMOAirport : Ind Airport ;
-
-fun RinkenbergerRLAILAirport : Ind Airport ;
-
-fun RioGrandeValleyInternationalTXAirport : Ind Airport ;
-
-fun RiversideMetroCenterHeliportCAAirport : Ind Airport ;
-
-fun RobertGrayArmyAirFieldTXAirport : Ind Airport ;
-
-fun RobertMuellerMunicipalTXAirport : Ind Airport ;
-
-fun RochambeauCayenneAirport : Ind Airport ;
-
-fun RockCountyWIAirport : Ind Airport ;
-
-fun RodriguezBallonArequipaAirport : Ind Airport ;
-
-fun RonaldswayIsleofManAirport : Ind Airport ;
-
-fun RorshachAltenrheinAirport : Ind Airport ;
-
-fun RoscoeTurnerMSAirport : Ind Airport ;
-
-fun RoscommonCountyMIAirport : Ind Airport ;
-
-fun RossFieldTwinCitiesMIAirport : Ind Airport ;
-
-fun SabreArmyHeliportTNAirport : Ind Airport ;
-
-fun SaharSantaCruzInternationalBombayAirport : Ind Airport ;
-
-fun SaintGatienDeauvilleAirport : Ind Airport ;
-
-fun SaintGeoirsGrenobleAirport : Ind Airport ;
-
-fun SainteCatherineCorsicaAirport : Ind Airport ;
-
-fun SaissFesFezAirport : Ind Airport ;
-
-fun SamaraSamaraAirport : Ind Airport ;
-
-fun SampsonCountyNCAirport : Ind Airport ;
-
-fun SamuelsFieldKYAirport : Ind Airport ;
-
-fun SanCarlosdeBarilocheAirport : Ind Airport ;
-
-fun SanJuanAposentoAirport : Ind Airport ;
-
-fun SanJuanPuebloNMAirport : Ind Airport ;
-
-fun SanLuisValleyRegionalAirportBergmanFieldCOAirport : Ind Airport ;
-
-fun SanRafaelAirport : Ind Airport ;
-
-fun SanSebastianAirport : Ind Airport ;
-
-fun SandyRiverORAirport : Ind Airport ;
-
-fun SanfebagarAirport : Ind Airport ;
-
-fun SantaCruzFloresIslandAzoresAirport : Ind Airport ;
-
-fun SantaIsabelAirport : Ind Airport ;
-
-fun SantaVitoriaMGAirport : Ind Airport ;
-
-fun SantaYnezCAAirport : Ind Airport ;
-
-fun SantoAngeloRSAirport : Ind Airport ;
-
-fun SantoDonHerreraAirport : Ind Airport ;
-
-fun SantoriniThiraAirport : Ind Airport ;
-
-fun SaqaniAirport : Ind Airport ;
-
-fun SargodhaAirport : Ind Airport ;
-
-fun SaveGoteborgAirport : Ind Airport ;
-
-fun SchaumburgAirParkILAirport : Ind Airport ;
-
-fun SchenckFieldIAAirport : Ind Airport ;
-
-fun SchipholAmsterdamAirport : Ind Airport ;
-
-fun ScholesFieldTXAirport : Ind Airport ;
-
-fun SchoolcraftCountyMIAirport : Ind Airport ;
-
-fun ScottAirForceBaseILAirport : Ind Airport ;
-
-fun SculthorpeRAFStationEnglandAirport : Ind Airport ;
-
-fun ScusciubanAirport : Ind Airport ;
-
-fun SedaliaMemorialMOAirport : Ind Airport ;
-
-fun SegeAirport : Ind Airport ;
-
-fun SeiyunAirport : Ind Airport ;
-
-fun SelaparangMataramAirport : Ind Airport ;
-
-fun SematanAirport : Ind Airport ;
-
-fun SenouBamakoAirport : Ind Airport ;
-
-fun SentaniDjayapuraJayapuraAirport : Ind Airport ;
-
-fun SepingganBalikpapanAirport : Ind Airport ;
-
-fun SesquicentenarioSanAndresAirport : Ind Airport ;
-
-fun SeymourJohnsonAirForceBaseNCAirport : Ind Airport ;
-
-fun ShaltzFieldKSAirport : Ind Airport ;
-
-fun ShannonVAAirport : Ind Airport ;
-
-fun ShaoguanAirport : Ind Airport ;
-
-fun ShauliajAirport : Ind Airport ;
-
-fun ShelbyMunicipalNCAirport : Ind Airport ;
-
-fun ShermanArmyAirFieldKSAirport : Ind Airport ;
-
-fun ShermanOaksCommunityHospitalHeliportCAAirport : Ind Airport ;
-
-fun ShillavoAirport : Ind Airport ;
-
-fun ShimkentChimkentSouthKazakhstanAirport : Ind Airport ;
-
-fun ShoalCoveAKAirport : Ind Airport ;
-
-fun ShorehamAirport : Ind Airport ;
-
-fun ShreveportDowntownLAAirport : Ind Airport ;
-
-fun ShuteHarbourQueenslandAirport : Ind Airport ;
-
-fun SiguiriAirport : Ind Airport ;
-
-fun SikassoAirport : Ind Airport ;
-
-fun SikorskyHeliportCTAirport : Ind Airport ;
-
-fun SilcharAirport : Ind Airport ;
-
-fun SilverBayMunicipalMNAirport : Ind Airport ;
-
-fun SimikotAirport : Ind Airport ;
-
-fun SimmonsArmyAirFieldNCAirport : Ind Airport ;
-
-fun SimonBolivarGuayaquilAirport : Ind Airport ;
-
-fun SinaloaCuliacanAirport : Ind Airport ;
-
-fun SindalAirport : Ind Airport ;
-
-fun SirSeretseKhamaInternationalGaboroneAirport : Ind Airport ;
-
-fun SitiaCreteAirport : Ind Airport ;
-
-fun SittweAkyabAirport : Ind Airport ;
-
-fun SkarduAirport : Ind Airport ;
-
-fun SkiathosAirport : Ind Airport ;
-
-fun SkovdeAirport : Ind Airport ;
-
-fun SkyparkUTAirport : Ind Airport ;
-
-fun SloulinFieldInternationalNDAirport : Ind Airport ;
-
-fun SmithReynoldsNCAirport : Ind Airport ;
-
-fun SoalalaAirport : Ind Airport ;
-
-fun SoekarnoHattaInternationalJakartaAirport : Ind Airport ;
-
-fun SogwipoChejuAirport : Ind Airport ;
-
-fun SongkhiaHatyaiHatYaiAirport : Ind Airport ;
-
-fun SormavoNizhniyNovgorodAirport : Ind Airport ;
-
-fun SoummamBejaiaAirport : Ind Airport ;
-
-fun SouthBigHornCountyWYAirport : Ind Airport ;
-
-fun SouthBiminiInternationalBiminiAirport : Ind Airport ;
-
-fun SoutherFieldGAAirport : Ind Airport ;
-
-fun SouthwestGeorgiaRegionalGAAirport : Ind Airport ;
-
-fun SpartaFortMcCoyWIAirport : Ind Airport ;
-
-fun SpetsaiIslandAirport : Ind Airport ;
-
-fun SpokaneInternationalWAAirport : Ind Airport ;
-
-fun SpringvaleQueenslandAirport : Ind Airport ;
-
-fun SquiresGateEnglandAirport : Ind Airport ;
-
-fun StAndrewsScotlandAirport : Ind Airport ;
-
-fun StAngeloNorthernIrelandAirport : Ind Airport ;
-
-fun StCloudHospitalHeliportMNAirport : Ind Airport ;
-
-fun StDenijsWestremGhentGentAirport : Ind Airport ;
-
-fun StHelensTasmaniaAirport : Ind Airport ;
-
-fun StLucieCountyInternationalFLAirport : Ind Airport ;
-
-fun StMaloDinardPleurtuitAirport : Ind Airport ;
-
-fun StMarysAKAirport : Ind Airport ;
-
-fun StMarysEnglandAirport : Ind Airport ;
-
-fun StPierreAirport : Ind Airport ;
-
-fun StTropezAirport : Ind Airport ;
-
-fun StafsbergHamarAirport : Ind Airport ;
-
-fun StanStamperMunicipalOKAirport : Ind Airport ;
-
-fun StapletonInternationalCOAirport : Ind Airport ;
-
-fun SteelPierTajMahalHeliportNJAirport : Ind Airport ;
-
-fun StephensCountyTXAirport : Ind Airport ;
-
-fun StouffersHeliportPAAirport : Ind Airport ;
-
-fun StreakyBaySouthAustraliaAirport : Ind Airport ;
-
-fun StuartPowellFieldKYAirport : Ind Airport ;
-
-fun SubangPeninsularAirport : Ind Airport ;
-
-fun SukkertoppenAirport : Ind Airport ;
-
-fun SummitLakeBCAirport : Ind Airport ;
-
-fun SundanceAirparkOKAirport : Ind Airport ;
-
-fun SungeiTakaiAirport : Ind Airport ;
-
-fun SunnyvaleCAAirport : Ind Airport ;
-
-fun SunsetGlendaleCAAirport : Ind Airport ;
-
-fun SurcinBelgradeBeogradAirport : Ind Airport ;
-
-fun SussexCountyDEAirport : Ind Airport ;
-
-fun SvegAirport : Ind Airport ;
-
-fun SyamsudinNoorBanjarmarsinAirport : Ind Airport ;
-
-fun SyrosIslandAirport : Ind Airport ;
-
-fun TSTIWacoJamesConnallTXAirport : Ind Airport ;
-
-fun TaherJijelAirport : Ind Airport ;
-
-fun TahnetaPassAKAirport : Ind Airport ;
-
-fun TakakaAirport : Ind Airport ;
-
-fun TalaveraLaRealBadajozAirport : Ind Airport ;
-
-fun TalladegaMunicipalALAirport : Ind Airport ;
-
-fun TavauxDoleAirport : Ind Airport ;
-
-fun TaymarHeliportWAAirport : Ind Airport ;
-
-fun TerredeBasAirport : Ind Airport ;
-
-fun TerrorBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun ThalerhofGrazAirport : Ind Airport ;
-
-fun TheDallesMunicipalORAirport : Ind Airport ;
-
-fun TheFrancisSGabreskiNYAirport : Ind Airport ;
-
-fun TheValleyWallblakeAnguillaAirport : Ind Airport ;
-
-fun TheWilliamBHartsfieldAtlantaInternationalGAAirport : Ind Airport ;
-
-fun TheWoodlandsMemorialHospitalHeliportTXAirport : Ind Airport ;
-
-fun ThomasCRussellFieldALAirport : Ind Airport ;
-
-fun ThompsonRobbinsARAirport : Ind Airport ;
-
-fun ThorneBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun ThreeRiversMunicipalDrHainesMIAirport : Ind Airport ;
-
-fun TikchikLodgeAKAirport : Ind Airport ;
-
-fun TilleBeauvaisAirport : Ind Airport ;
-
-fun TimehriGeorgetownAirport : Ind Airport ;
-
-fun TinsonKingstonAirport : Ind Airport ;
-
-fun TiptonArmyAirFieldMDAirport : Ind Airport ;
-
-fun TirstrupAarhusAirport : Ind Airport ;
-
-fun TiskaDjanetAirport : Ind Airport ;
-
-fun TogiakFishAKAirport : Ind Airport ;
-
-fun TompkinsCountyNYAirport : Ind Airport ;
-
-fun TornioKemiAirport : Ind Airport ;
-
-fun TortolaBeefIsAirport : Ind Airport ;
-
-fun TouatAdrarAirport : Ind Airport ;
-
-fun TourSinaiCityAirport : Ind Airport ;
-
-fun TranscoTowerGarageHeliportTXAirport : Ind Airport ;
-
-fun TriStateMiltonJFergusonFieldWVAirport : Ind Airport ;
-
-fun TriStateSteubenCountyINAirport : Ind Airport ;
-
-fun TribhuvanKathmanduAirport : Ind Airport ;
-
-fun TripoliAirport : Ind Airport ;
-
-fun TusiArmyHeliportCAAirport : Ind Airport ;
-
-fun TweedNewHavenCTAirport : Ind Airport ;
-
-fun TwinCountyVAAirport : Ind Airport ;
-
-fun UlanhotAirport : Ind Airport ;
-
-fun UnalaskaAKAirport : Ind Airport ;
-
-fun UnionCAAirport : Ind Airport ;
-
-fun UnitedStatesirForceAcademyAirstripCOAirport : Ind Airport ;
-
-fun UnitedStatesrmyHeliportILAirport : Ind Airport ;
-
-fun UniversalStudiosCAAirport : Ind Airport ;
-
-fun UniversityofIllinoisWillardILAirport : Ind Airport ;
-
-fun UpernavikAirport : Ind Airport ;
-
-fun UyakAKAirport : Ind Airport ;
-
-fun UyakSeaplaneBaseAKAirport : Ind Airport ;
-
-fun VCBirdInternationalCoolidgeAntiguaIsAirport : Ind Airport ;
-
-fun VagarFaroeIsAirport : Ind Airport ;
-
-fun ValedeCaesPAAirport : Ind Airport ;
-
-fun ValleyWalesAirport : Ind Airport ;
-
-fun VanceAirForceBaseOKAirport : Ind Airport ;
-
-fun VantaaHelsinkiAirport : Ind Airport ;
-
-fun VenangoRegionalPAAirport : Ind Airport ;
-
-fun VermilionCountyILAirport : Ind Airport ;
-
-fun ViasBeziersAirport : Ind Airport ;
-
-fun VigraAlesundAalesundAirport : Ind Airport ;
-
-fun VilhenaROAirport : Ind Airport ;
-
-fun VinadelMarAirport : Ind Airport ;
-
-fun VirgilIGrissomMunicipalINAirport : Ind Airport ;
-
-fun VirginiaTechVAAirport : Ind Airport ;
-
-fun WHBudBarronGAAirport : Ind Airport ;
-
-fun WKKelloggMIAirport : Ind Airport ;
-
-fun WabashMunicipalINAirport : Ind Airport ;
-
-fun WacoKungoAirport : Ind Airport ;
-
-fun WacoRegionalTXAirport : Ind Airport ;
-
-fun WadMedaniAirport : Ind Airport ;
-
-fun WageningenAirport : Ind Airport ;
-
-fun WahnBonnAirport : Ind Airport ;
-
-fun WahooMunicipalNEAirport : Ind Airport ;
-
-fun WaimanaloHIAirport : Ind Airport ;
-
-fun WainwrightAKAirport : Ind Airport ;
-
-fun WainwrightArmyAirFieldAKAirport : Ind Airport ;
-
-fun WakayaIslandAirport : Ind Airport ;
-
-fun WakeIslandAirfieldWakeIslandAirport : Ind Airport ;
-
-fun WalkerFieldCOAirport : Ind Airport ;
-
-fun WallaWallaRegionalWAAirport : Ind Airport ;
-
-fun WalnutRidgeRegionalARAirport : Ind Airport ;
-
-fun WangeroogeAirport : Ind Airport ;
-
-fun WanigelaAirport : Ind Airport ;
-
-fun WaraghandyKaragandaQaraghandyAirport : Ind Airport ;
-
-fun WarmSpringBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun WarnerBrothersStudiosCAAirport : Ind Airport ;
-
-fun WarrenCountyNYAirport : Ind Airport ;
-
-fun WasecaMunicipalMNAirport : Ind Airport ;
-
-fun WashingtonCountyRegionalMDAirport : Ind Airport ;
-
-fun WashingtonDullesInternationalDCAirport : Ind Airport ;
-
-fun WashingtonMunicipalIAAirport : Ind Airport ;
-
-fun WashingtonNationalDCAirport : Ind Airport ;
-
-fun WashingtonWilkesCountyGAAirport : Ind Airport ;
-
-fun WaterfallSeaplaneBaseAKAirport : Ind Airport ;
-
-fun WaterlooMunicipalIAAirport : Ind Airport ;
-
-fun WatertownInternationalNYAirport : Ind Airport ;
-
-fun WatertownMunicipalSDAirport : Ind Airport ;
-
-fun WausauMunicipalWIAirport : Ind Airport ;
-
-fun WaycrossWareCountyGAAirport : Ind Airport ;
-
-fun WayneCountyKYAirport : Ind Airport ;
-
-fun WayneCountyOHAirport : Ind Airport ;
-
-fun WebsterCityMunicipalIAAirport : Ind Airport ;
-
-fun WedjhAirport : Ind Airport ;
-
-fun WeedonFieldALAirport : Ind Airport ;
-
-fun WeideArmyAirFieldMDAirport : Ind Airport ;
-
-fun WeiserAirParkTXAirport : Ind Airport ;
-
-fun WellingtonMunicipalKSAirport : Ind Airport ;
-
-fun WellsvilleMunicipalAirportTarantineFieldNYAirport : Ind Airport ;
-
-fun WendoverUTAirport : Ind Airport ;
-
-fun WestBendMunicipalWIAirport : Ind Airport ;
-
-fun WestGeorgiaRegionalGAAirport : Ind Airport ;
-
-fun WestHoustonLakesideTXAirport : Ind Airport ;
-
-fun WestMemphisMunicipalARAirport : Ind Airport ;
-
-fun WestPointSeaplaneBaseAKAirport : Ind Airport ;
-
-fun WestchaseHiltonHeliportTXAirport : Ind Airport ;
-
-fun WestchesterCountyNYAirport : Ind Airport ;
-
-fun WesterlandSyltIslandAirport : Ind Airport ;
-
-fun WestoverAirReserveBaseMetropolitanMAAirport : Ind Airport ;
-
-fun WexfordCountyMIAirport : Ind Airport ;
-
-fun WheatlandCountyAirportatHarlowtonMTAirport : Ind Airport ;
-
-fun WheelerArmyAirFieldHIAirport : Ind Airport ;
-
-fun WheelingOhioCountyWVAirport : Ind Airport ;
-
-fun WhitesburgMunicipalKYAirport : Ind Airport ;
-
-fun WhitsundayKontikiResortLongIslandQueenslandAirport : Ind Airport ;
-
-fun WhitsundayQueenslandAirport : Ind Airport ;
-
-fun WichitaMidContinentKSAirport : Ind Airport ;
-
-fun WileyPostWillRogersMemorialAKAirport : Ind Airport ;
-
-fun WilkesBarreScrantonInternationalPAAirport : Ind Airport ;
-
-fun WilkesCountyNCAirport : Ind Airport ;
-
-fun WilliamBHeiligFieldNEAirport : Ind Airport ;
-
-fun WilliamPHobbyTXAirport : Ind Airport ;
-
-fun WilliamRFairchildInternationalWAAirport : Ind Airport ;
-
-fun WilliamsburgJamestownVAAirport : Ind Airport ;
-
-fun WilliamsportLycomingCountyPAAirport : Ind Airport ;
-
-fun WillmarMunicipalAirportJohnLRiceFieldMNAirport : Ind Airport ;
-
-fun WindhamCTAirport : Ind Airport ;
-
-fun WingsFieldPAAirport : Ind Airport ;
-
-fun WinklerCountyTXAirport : Ind Airport ;
-
-fun WinslowMunicipalAZAirport : Ind Airport ;
-
-fun WinterHavensGilbertFLAirport : Ind Airport ;
-
-fun WiscassetMEAirport : Ind Airport ;
-
-fun WolterMonginsidiKendariAirport : Ind Airport ;
-
-fun WoodbourneAirStationBlenheimAirport : Ind Airport ;
-
-fun WoodwardFieldSCAirport : Ind Airport ;
-
-fun WrightPattersonAirForceBaseOHAirport : Ind Airport ;
-
-fun WujlabaKunmingAirport : Ind Airport ;
-
-fun YacuibaAirport : Ind Airport ;
-
-fun YagouaAirport : Ind Airport ;
-
-fun YaguaraAirport : Ind Airport ;
-
-fun YakatagaAKAirport : Ind Airport ;
-
-fun YakimaFiringCenterArmyAirFieldWAAirport : Ind Airport ;
-
-fun YakuShimaAirport : Ind Airport ;
-
-fun YalataMissionSouthAustraliaAirport : Ind Airport ;
-
-fun YalingaAirport : Ind Airport ;
-
-fun YalumetAirport : Ind Airport ;
-
-fun YamagataHonshuAirport : Ind Airport ;
-
-fun YamoussoukroAirport : Ind Airport ;
-
-fun YampaValleyCOAirport : Ind Airport ;
-
-fun YanAnAirport : Ind Airport ;
-
-fun YapsieiAirport : Ind Airport ;
-
-fun YariAirport : Ind Airport ;
-
-fun YasuruAirport : Ind Airport ;
-
-fun YazdAirport : Ind Airport ;
-
-fun YeagerWVAirport : Ind Airport ;
-
-fun YelimaneAirport : Ind Airport ;
-
-fun YellowstoneRegionalWYAirport : Ind Airport ;
-
-fun YeringtonMunicipalNVAirport : Ind Airport ;
-
-fun YinchuanAirport : Ind Airport ;
-
-fun YoffDakarAirport : Ind Airport ;
-
-fun YohannesIVAsmaraAirport : Ind Airport ;
-
-fun YongaiAirport : Ind Airport ;
-
-fun YorkMunicipalNEAirport : Ind Airport ;
-
-fun YoshkarOlaJoshkarOlaMariElAirport : Ind Airport ;
-
-fun YundumBanjulAirport : Ind Airport ;
-
-fun ZMJackStellFieldARAirport : Ind Airport ;
-
-fun ZacharBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun ZakoumaAirport : Ind Airport ;
-
-fun ZambeziAirport : Ind Airport ;
-
-fun ZanagaAirport : Ind Airport ;
-
-fun ZapadnyErevanYerevanAirport : Ind Airport ;
-
-fun ZapalaAirport : Ind Airport ;
-
-fun ZapatocaAirport : Ind Airport ;
-
-fun ZegaButaAirport : Ind Airport ;
-
-fun ZemidAirport : Ind Airport ;
-
-fun ZhambylDzhambulZhambylAirport : Ind Airport ;
-
-fun ZhengzhouAirport : Ind Airport ;
-
-fun ZhezqazghanDzhezkazganZhezqazghanAirport : Ind Airport ;
-
-fun ZhulyanyKievAirport : Ind Airport ;
-
-fun ZiaInternationalDhakaAirport : Ind Airport ;
-
-fun ZielonaGoraAirport : Ind Airport ;
-
-fun ZilinaAirport : Ind Airport ;
-}
+abstract WorldAirportsA_K = Transportation ** {
+
+  fun AMenderesIzmirAirport : Ind Airport ;
+
+  fun APHillArmyAirFieldVAAirport : Ind Airport ;
+
+  fun AachenAirport : Ind Airport ;
+
+  fun AalborgAirport : Ind Airport ;
+
+  fun AbaTennaDYilmaDireDawaAirport : Ind Airport ;
+
+  fun AbadanAirport : Ind Airport ;
+
+  fun AbaiangAirport : Ind Airport ;
+
+  fun AbakanKhakassiaAirport : Ind Airport ;
+
+  fun AbauAirport : Ind Airport ;
+
+  fun AbbotsichnScotlandAirport : Ind Airport ;
+
+  fun AbbseAirport : Ind Airport ;
+
+  fun AbecheAirport : Ind Airport ;
+
+  fun AbemamaAtollAirport : Ind Airport ;
+
+  fun AberdeenRegionalSDAirport : Ind Airport ;
+
+  fun AbernathyFieldTNAirport : Ind Airport ;
+
+  fun AbileneRegionalTXAirport : Ind Airport ;
+
+  fun AbingdonRAFStationEnglandAirport : Ind Airport ;
+
+  fun AbingoonQueenslandAirport : Ind Airport ;
+
+  fun AboissoAirport : Ind Airport ;
+
+  fun AbouDeiaAirport : Ind Airport ;
+
+  fun AbrahamGonzalezCiudadJuarezAirport : Ind Airport ;
+
+  fun AbramsMunicipalBaseOperationsMIAirport : Ind Airport ;
+
+  fun AbreojosAirport : Ind Airport ;
+
+  fun AbuSimbelAirport : Ind Airport ;
+
+  fun AbujaAirport : Ind Airport ;
+
+  fun AcadianaRegionalLAAirport : Ind Airport ;
+
+  fun AcandiAirport : Ind Airport ;
+
+  fun AcaricuraAirport : Ind Airport ;
+
+  fun AcariguaAirport : Ind Airport ;
+
+  fun AchutupoAirport : Ind Airport ;
+
+  fun AdaMunicipalOKAirport : Ind Airport ;
+
+  fun AdakNavalAirStationAKAirport : Ind Airport ;
+
+  fun AddingtonFieldKYAirport : Ind Airport ;
+
+  fun AddisonTXAirport : Ind Airport ;
+
+  fun AdisuciptoYogyakartaAirport : Ind Airport ;
+
+  fun AdlerSochiKrasnodarAirport : Ind Airport ;
+
+  fun AdnanMenderesIzmirAirport : Ind Airport ;
+
+  fun AekGodangAirport : Ind Airport ;
+
+  fun AeroparqueJorgeNewberyBuenosAiresAirport : Ind Airport ;
+
+  fun AeroportoInternacionalGaleaoRJAirport : Ind Airport ;
+
+  fun AeroportoInternacionalGuarulhosSPAirport : Ind Airport ;
+
+  fun AeroportodeCongonhasSPAirport : Ind Airport ;
+
+  fun AeropuertoHatoCuracaoWillemstadAirport : Ind Airport ;
+
+  fun AeropuertoHenriqueMalekDavidAirport : Ind Airport ;
+
+  fun AeropuertoInternacionalEzeizaMinistroPistariniBuenosAiresAirport : Ind Airport ;
+
+  fun AeropuertoInternacionalJoseMartiLaHabanaHavanaAirport : Ind Airport ;
+
+  fun AeropuertoInternacionaldelCentroCaracasAirport : Ind Airport ;
+
+  fun AeropuertoRafaelHernandezBorinquenAguadillaAirport : Ind Airport ;
+
+  fun AeropuertoTransoceanicodeBarcelonaBarcelonaAirport : Ind Airport ;
+
+  fun AfonsoPenaPRAirport : Ind Airport ;
+
+  fun AforeAirport : Ind Airport ;
+
+  fun AftonMunicipalWYAirport : Ind Airport ;
+
+  fun AfyonAirport : Ind Airport ;
+
+  fun AgadesAgadezAirport : Ind Airport ;
+
+  fun AgartalaAirport : Ind Airport ;
+
+  fun AgattiIslandAirport : Ind Airport ;
+
+  fun AgaunAirport : Ind Airport ;
+
+  fun AgenAirport : Ind Airport ;
+
+  fun AggeneysAirport : Ind Airport ;
+
+  fun AgnewQueenslandAirport : Ind Airport ;
+
+  fun AgoAirport : Ind Airport ;
+
+  fun AgraAirport : Ind Airport ;
+
+  fun AgrinionAirport : Ind Airport ;
+
+  fun AguascalientesAirport : Ind Airport ;
+
+  fun AguniAirport : Ind Airport ;
+
+  fun AhmedabadAirport : Ind Airport ;
+
+  fun AhuasAirport : Ind Airport ;
+
+  fun AhwazAirport : Ind Airport ;
+
+  fun AikenMunicipalSCAirport : Ind Airport ;
+
+  fun AiligandiAirport : Ind Airport ;
+
+  fun AilinglapalapAirport : Ind Airport ;
+
+  fun AilukIneIslandAirport : Ind Airport ;
+
+  fun AinElBeyConstantineAirport : Ind Airport ;
+
+  fun AinsworthMunicipalNEAirport : Ind Airport ;
+
+  fun AiomeAirport : Ind Airport ;
+
+  fun AiounelAtroussAirport : Ind Airport ;
+
+  fun AirBaseKusanAirport : Ind Airport ;
+
+  fun AirLogisticsBelleChasseHeliportLAAirport : Ind Airport ;
+
+  fun AirborneAirparkOHAirport : Ind Airport ;
+
+  fun AirokAirport : Ind Airport ;
+
+  fun AishaltonAirport : Ind Airport ;
+
+  fun AitapeAirport : Ind Airport ;
+
+  fun AitutakiAirport : Ind Airport ;
+
+  fun AixLesBainsChamberyAirport : Ind Airport ;
+
+  fun AiyuraAirport : Ind Airport ;
+
+  fun AizawlAirport : Ind Airport ;
+
+  fun AkhiokAKAirport : Ind Airport ;
+
+  fun AkiachakSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun AkiakAKAirport : Ind Airport ;
+
+  fun AkieniAirport : Ind Airport ;
+
+  fun AkitaAirport : Ind Airport ;
+
+  fun AkjoujtAirport : Ind Airport ;
+
+  fun AkolaAirport : Ind Airport ;
+
+  fun AkronCantonRegionalOHAirport : Ind Airport ;
+
+  fun AkronWashingtonCountyCOAirport : Ind Airport ;
+
+  fun AkrotiriAirport : Ind Airport ;
+
+  fun AksuAirport : Ind Airport ;
+
+  fun AkulivikQCAirport : Ind Airport ;
+
+  fun AkureAirport : Ind Airport ;
+
+  fun AkureyriAirport : Ind Airport ;
+
+  fun AkutanSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun AlAinAirport : Ind Airport ;
+
+  fun AlArishAirport : Ind Airport ;
+
+  fun AlBahaAirport : Ind Airport ;
+
+  fun AlBaydaAirport : Ind Airport ;
+
+  fun AlDhafraMilitaryAbuDhabiAirport : Ind Airport ;
+
+  fun AlGhaydahAirport : Ind Airport ;
+
+  fun AlMassiraAgadirAirport : Ind Airport ;
+
+  fun AlahAirport : Ind Airport ;
+
+  fun AlakanukAKAirport : Ind Airport ;
+
+  fun AlamogordoWhiteSandsRegionalNMAirport : Ind Airport ;
+
+  fun AlbanyCountyNYAirport : Ind Airport ;
+
+  fun AlbanyWesternAustraliaAirport : Ind Airport ;
+
+  fun AlbengaAirport : Ind Airport ;
+
+  fun AlbertLeaMunicipalMNAirport : Ind Airport ;
+
+  fun AlbertoAcunaOngayCampecheAirport : Ind Airport ;
+
+  fun AlbertusILAirport : Ind Airport ;
+
+  fun AlbinaAirport : Ind Airport ;
+
+  fun AlbionMunicipalNEAirport : Ind Airport ;
+
+  fun AlbuqAirport : Ind Airport ;
+
+  fun AlbuquerqueInternationalNMAirport : Ind Airport ;
+
+  fun AlburyNewSouthWalesAirport : Ind Airport ;
+
+  fun AlconburyRAFStationEnglandAirport : Ind Airport ;
+
+  fun AldanYakutiaSakhaAirport : Ind Airport ;
+
+  fun AldergroveInternationalNorthernIrelandAirport : Ind Airport ;
+
+  fun AlderneyAirport : Ind Airport ;
+
+  fun AlegreteRSAirport : Ind Airport ;
+
+  fun AlenquerPAAirport : Ind Airport ;
+
+  fun AleppoAirport : Ind Airport ;
+
+  fun AlertaAirport : Ind Airport ;
+
+  fun AlexanderBayAirport : Ind Airport ;
+
+  fun AlexanderFieldSouthWoodCountyWIAirport : Ind Airport ;
+
+  fun AlexandraAirport : Ind Airport ;
+
+  fun AlexandriaAirport : Ind Airport ;
+
+  fun AlexandriaEslerRegionalLAAirport : Ind Airport ;
+
+  fun AlexandriaInternationalLAAirport : Ind Airport ;
+
+  fun AlexandriaNorthernTerritoryAirport : Ind Airport ;
+
+  fun AlexandroupolisAirport : Ind Airport ;
+
+  fun AlfonsoBonillaAragonCaliAirport : Ind Airport ;
+
+  fun AlfujairahFujairahAirport : Ind Airport ;
+
+  fun AlgonaMunicipalIAAirport : Ind Airport ;
+
+  fun AliSabiehAirport : Ind Airport ;
+
+  fun AlicanteAirport : Ind Airport ;
+
+  fun AliceInternationalTXAirport : Ind Airport ;
+
+  fun AliceSpringsNorthernTerritoryAirport : Ind Airport ;
+
+  fun AlitakSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun AljoufAirport : Ind Airport ;
+
+  fun AllahabadAirport : Ind Airport ;
+
+  fun AllaireNJAirport : Ind Airport ;
+
+  fun AllakaketAKAirport : Ind Airport ;
+
+  fun AlldaysAirport : Ind Airport ;
+
+  fun AlleghenyCountyPAAirport : Ind Airport ;
+
+  fun AllenArmyAirFieldAKAirport : Ind Airport ;
+
+  fun AllentownBethlehemEastonPAAirport : Ind Airport ;
+
+  fun AllianceMunicipalNEAirport : Ind Airport ;
+
+  fun AlmatyAlmaAtaAlmaAtaAirport : Ind Airport ;
+
+  fun AlmenaraMGAirport : Ind Airport ;
+
+  fun AlongAirport : Ind Airport ;
+
+  fun AlorIslandAirport : Ind Airport ;
+
+  fun AlorSetarAirport : Ind Airport ;
+
+  fun AloweAirport : Ind Airport ;
+
+  fun AlpedHuezAirport : Ind Airport ;
+
+  fun AlpenaCountyRegionalMIAirport : Ind Airport ;
+
+  fun AlphaQueenslandAirport : Ind Airport ;
+
+  fun AlpineCasparisMunicipalTXAirport : Ind Airport ;
+
+  fun AlroyDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun AltaAirport : Ind Airport ;
+
+  fun AltaFlorestaAirport : Ind Airport ;
+
+  fun AltamiraPAAirport : Ind Airport ;
+
+  fun AltayAirport : Ind Airport ;
+
+  fun AltenburgAirport : Ind Airport ;
+
+  fun AltoMolocueAirport : Ind Airport ;
+
+  fun AltoRioSenguerrAirport : Ind Airport ;
+
+  fun AltodoParnaibaPIAirport : Ind Airport ;
+
+  fun AltonDownsSouthAustraliaAirport : Ind Airport ;
+
+  fun AltonILStLouisAirport : Ind Airport ;
+
+  fun AltoonaBlairCountyPAAirport : Ind Airport ;
+
+  fun AltusMunicipalOKAirport : Ind Airport ;
+
+  fun AlulaAirport : Ind Airport ;
+
+  fun AmaAirport : Ind Airport ;
+
+  fun AmahaiAirport : Ind Airport ;
+
+  fun AmalfiAirport : Ind Airport ;
+
+  fun AmamiOShimaAirport : Ind Airport ;
+
+  fun AmanabAirport : Ind Airport ;
+
+  fun AmarilloInternationalTXAirport : Ind Airport ;
+
+  fun AmataNorthernTerritoryAirport : Ind Airport ;
+
+  fun AmazonBayAirport : Ind Airport ;
+
+  fun AmbanjaAirport : Ind Airport ;
+
+  fun AmbatoAirport : Ind Airport ;
+
+  fun AmbatolahyAirport : Ind Airport ;
+
+  fun AmbatomaintyAirport : Ind Airport ;
+
+  fun AmbilobeAirport : Ind Airport ;
+
+  fun AmblerAKAirport : Ind Airport ;
+
+  fun AmbolinAirport : Ind Airport ;
+
+  fun AmboseliAirport : Ind Airport ;
+
+  fun AmbouliDjiboutiAirport : Ind Airport ;
+
+  fun AmbuntiAirport : Ind Airport ;
+
+  fun AmchitkaAirport : Ind Airport ;
+
+  fun AmchitkaIslandAKAirport : Ind Airport ;
+
+  fun AmdermaArkhangelskAirport : Ind Airport ;
+
+  fun AmedeeArmyAirFieldCAAirport : Ind Airport ;
+
+  fun AmeryMunicipalWIAirport : Ind Airport ;
+
+  fun AmesMunicipalIAAirport : Ind Airport ;
+
+  fun AmityvilleNYAirport : Ind Airport ;
+
+  fun AmmarooNorthernTerritoryAirport : Ind Airport ;
+
+  fun AmookBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun AmpanihyAirport : Ind Airport ;
+
+  fun AmritsarAirport : Ind Airport ;
+
+  fun AnacoAirport : Ind Airport ;
+
+  fun AnacortesWAAirport : Ind Airport ;
+
+  fun AnadyrMagadanAirport : Ind Airport ;
+
+  fun AnaheimDisneylandCAAirport : Ind Airport ;
+
+  fun AnaktuvukPassAKAirport : Ind Airport ;
+
+  fun AnalalavaAirport : Ind Airport ;
+
+  fun AnapaAirport : Ind Airport ;
+
+  fun AnapolisGOAirport : Ind Airport ;
+
+  fun AnchorageInternationalAKAirport : Ind Airport ;
+
+  fun AnconaAirport : Ind Airport ;
+
+  fun AndahuaylasAirport : Ind Airport ;
+
+  fun AndamookaSouthAustraliaAirport : Ind Airport ;
+
+  fun AndersonCountySCAirport : Ind Airport ;
+
+  fun AndersonMunicipalINAirport : Ind Airport ;
+
+  fun AndesAirport : Ind Airport ;
+
+  fun AndijonAndizhanAndijonAirport : Ind Airport ;
+
+  fun AndorralaVellaAirport : Ind Airport ;
+
+  fun AndoverEnglandAirport : Ind Airport ;
+
+  fun AndoyaAndenesAndoyaAirport : Ind Airport ;
+
+  fun AndrauAirparkTXAirport : Ind Airport ;
+
+  fun AndravidaAirport : Ind Airport ;
+
+  fun AndrewsAirForceBaseMDAirport : Ind Airport ;
+
+  fun AndrewsMunicipalSCAirport : Ind Airport ;
+
+  fun AnduloAirport : Ind Airport ;
+
+  fun AneityumAirport : Ind Airport ;
+
+  fun AngelFireNMAirport : Ind Airport ;
+
+  fun AngelholmHelsingborgAirport : Ind Airport ;
+
+  fun AngersAirport : Ind Airport ;
+
+  fun AnggiAirport : Ind Airport ;
+
+  fun AngocheAntonioEnesAirport : Ind Airport ;
+
+  fun AngoonSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun AngoramAirport : Ind Airport ;
+
+  fun AngoulemeAirport : Ind Airport ;
+
+  fun AnguganakAirport : Ind Airport ;
+
+  fun AngusDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun AniakAKAirport : Ind Airport ;
+
+  fun AnimasAirParkCOAirport : Ind Airport ;
+
+  fun AnitaBayAKAirport : Ind Airport ;
+
+  fun AniwaAirport : Ind Airport ;
+
+  fun AnjouanAirport : Ind Airport ;
+
+  fun AnkangAirport : Ind Airport ;
+
+  fun AnkavandraAirport : Ind Airport ;
+
+  fun AnnArborMunicipalMIAirport : Ind Airport ;
+
+  fun AnnanbergAirport : Ind Airport ;
+
+  fun AnnetteIslandAKAirport : Ind Airport ;
+
+  fun AnnistonMetropolitanALAirport : Ind Airport ;
+
+  fun AnqingAirport : Ind Airport ;
+
+  fun AnqmaqssalikAirport : Ind Airport ;
+
+  fun AnshanAirport : Ind Airport ;
+
+  fun AntaAirport : Ind Airport ;
+
+  fun AntalahaAirport : Ind Airport ;
+
+  fun AntalyaAirport : Ind Airport ;
+
+  fun AnthonyLagoonNorthernTerritoryAirport : Ind Airport ;
+
+  fun AnthonyMunicipalKSAirport : Ind Airport ;
+
+  fun AntlersMunicipalOKAirport : Ind Airport ;
+
+  fun AntrimCountyMIAirport : Ind Airport ;
+
+  fun AntsirabeAirport : Ind Airport ;
+
+  fun AnuhaIslandResortAnuhaIslandAirport : Ind Airport ;
+
+  fun AnuradhapuraAirport : Ind Airport ;
+
+  fun AnvikAKAirport : Ind Airport ;
+
+  fun AnyangAirport : Ind Airport ;
+
+  fun AomoriAirport : Ind Airport ;
+
+  fun ApalachicolaMunicipalFLAirport : Ind Airport ;
+
+  fun ApalapsiliNewGuineaAirport : Ind Airport ;
+
+  fun ApartadoAirport : Ind Airport ;
+
+  fun ApatakiTuamotuArchipelagoAirport : Ind Airport ;
+
+  fun ApatzinganAirport : Ind Airport ;
+
+  fun ApiayAirport : Ind Airport ;
+
+  fun ApoloAirport : Ind Airport ;
+
+  fun AppianLineAirport : Ind Airport ;
+
+  fun AppleValleyCAAirport : Ind Airport ;
+
+  fun AprilRiverAirport : Ind Airport ;
+
+  fun ApucaranaPRAirport : Ind Airport ;
+
+  fun AqabaAirport : Ind Airport ;
+
+  fun AqtobeAktyubinskAqtobeAirport : Ind Airport ;
+
+  fun AracajuSEAirport : Ind Airport ;
+
+  fun AracatubaSPAirport : Ind Airport ;
+
+  fun AradAirport : Ind Airport ;
+
+  fun AragarcasGOAirport : Ind Airport ;
+
+  fun AragipAirport : Ind Airport ;
+
+  fun AraguainaTOAirport : Ind Airport ;
+
+  fun AramacQueenslandAirport : Ind Airport ;
+
+  fun AranukaAirport : Ind Airport ;
+
+  fun ArapahoeMunicipalNEAirport : Ind Airport ;
+
+  fun ArapongasPRAirport : Ind Airport ;
+
+  fun AraracuaraAirport : Ind Airport ;
+
+  fun AraraquaraSPAirport : Ind Airport ;
+
+  fun AraratVictoriaAirport : Ind Airport ;
+
+  fun AraucaAirport : Ind Airport ;
+
+  fun ArauquitaAirport : Ind Airport ;
+
+  fun AraxaMGAirport : Ind Airport ;
+
+  fun AraxosPatrasAirport : Ind Airport ;
+
+  fun ArbaMintchAirport : Ind Airport ;
+
+  fun ArboletasAirport : Ind Airport ;
+
+  fun ArcataCAAirport : Ind Airport ;
+
+  fun ArcticVillageAKAirport : Ind Airport ;
+
+  fun ArdmoreAirport : Ind Airport ;
+
+  fun ArdmoreMunicipalOKAirport : Ind Airport ;
+
+  fun ArgyleDownsWesternAustraliaAirport : Ind Airport ;
+
+  fun AricaAirport : Ind Airport ;
+
+  fun AripuanaMTAirport : Ind Airport ;
+
+  fun AriquemesROAirport : Ind Airport ;
+
+  fun ArkalykAirport : Ind Airport ;
+
+  fun ArkhangelskArkhangelskAirport : Ind Airport ;
+
+  fun ArlandaStockholmAirport : Ind Airport ;
+
+  fun ArlesCamargueGaronsNimesAirport : Ind Airport ;
+
+  fun ArlyAirport : Ind Airport ;
+
+  fun ArmeniaAirport : Ind Airport ;
+
+  fun ArmidaleNewSouthWalesAirport : Ind Airport ;
+
+  fun ArnoAirport : Ind Airport ;
+
+  fun AroaAirport : Ind Airport ;
+
+  fun AronaAirport : Ind Airport ;
+
+  fun AroraeIslandAirport : Ind Airport ;
+
+  fun ArraburyQueenslandAirport : Ind Airport ;
+
+  fun ArrachartAntsirananaDiegoSuarezAirport : Ind Airport ;
+
+  fun ArraiasGOAirport : Ind Airport ;
+
+  fun ArsoAirport : Ind Airport ;
+
+  fun ArsukAirport : Ind Airport ;
+
+  fun ArtesiaMunicipalNMAirport : Ind Airport ;
+
+  fun ArthurNNeuIAAirport : Ind Airport ;
+
+  fun ArthursTownCatAirport : Ind Airport ;
+
+  fun ArtigasAirport : Ind Airport ;
+
+  fun ArushaAirport : Ind Airport ;
+
+  fun AruthaAirport : Ind Airport ;
+
+  fun ArvidsjaurAirport : Ind Airport ;
+
+  fun AsahikawaAirport : Ind Airport ;
+
+  fun AsapaAirport : Ind Airport ;
+
+  fun AsauAirport : Ind Airport ;
+
+  fun AscensionAirport : Ind Airport ;
+
+  fun AscensionIslandAirport : Ind Airport ;
+
+  fun AsconaAirport : Ind Airport ;
+
+  fun AsekiAirport : Ind Airport ;
+
+  fun AselaAirport : Ind Airport ;
+
+  fun AshburtonAirport : Ind Airport ;
+
+  fun AshevilleRegionalNCAirport : Ind Airport ;
+
+  fun AshgabatAshkhabadAhalAirport : Ind Airport ;
+
+  fun AshleyMunicipalNDAirport : Ind Airport ;
+
+  fun AsirimAirport : Ind Airport ;
+
+  fun AsosaAirport : Ind Airport ;
+
+  fun AspenPitkinCountyAirportSardyFieldCOAirport : Ind Airport ;
+
+  fun AssabAirport : Ind Airport ;
+
+  fun AssisSPAirport : Ind Airport ;
+
+  fun AssiutAirport : Ind Airport ;
+
+  fun AstrakhanAstrakhanAirport : Ind Airport ;
+
+  fun AstraksetraAirport : Ind Airport ;
+
+  fun AstypaleaIslandAirport : Ind Airport ;
+
+  fun AswanAirport : Ind Airport ;
+
+  fun AtalayaAirport : Ind Airport ;
+
+  fun AtaqAirport : Ind Airport ;
+
+  fun AtarAirport : Ind Airport ;
+
+  fun AtarotJerusalemAirport : Ind Airport ;
+
+  fun AtaturkYesilkovInternationalIstanbulAirport : Ind Airport ;
+
+  fun AtauroAirport : Ind Airport ;
+
+  fun AtbaraAirport : Ind Airport ;
+
+  fun AthensBenEppsGAAirport : Ind Airport ;
+
+  fun AtiAirport : Ind Airport ;
+
+  fun AtiuAirport : Ind Airport ;
+
+  fun AtkaAKAirport : Ind Airport ;
+
+  fun AtkambaAirport : Ind Airport ;
+
+  fun AtlantaTechnologyParkGAAirport : Ind Airport ;
+
+  fun AtlanticCityInternationalNJAirport : Ind Airport ;
+
+  fun AtlanticCityMunicipalAirportBaderFieldNJAirport : Ind Airport ;
+
+  fun AtlanticMunicipalIAAirport : Ind Airport ;
+
+  fun AtmautluakAKAirport : Ind Airport ;
+
+  fun AtoifiAirport : Ind Airport ;
+
+  fun AtqasukAKAirport : Ind Airport ;
+
+  fun AttopeuAirport : Ind Airport ;
+
+  fun AtuonaMarquesasIslandsAirport : Ind Airport ;
+
+  fun AtyrauGuryevAtyrauAirport : Ind Airport ;
+
+  fun AuaAirport : Ind Airport ;
+
+  fun AubRudeisAirport : Ind Airport ;
+
+  fun AuburnMunicipalCAAirport : Ind Airport ;
+
+  fun AuburnOpelikaRobertGPittsALAirport : Ind Airport ;
+
+  fun AudubonCountyIAAirport : Ind Airport ;
+
+  fun AugsburgAirport : Ind Airport ;
+
+  fun AugustaStateMEAirport : Ind Airport ;
+
+  fun AugustusDownsQueenslandAirport : Ind Airport ;
+
+  fun AukiAirport : Ind Airport ;
+
+  fun AulnatClermontFerrandAirport : Ind Airport ;
+
+  fun AurAtollAirport : Ind Airport ;
+
+  fun AurangabadAirport : Ind Airport ;
+
+  fun AurillacAirport : Ind Airport ;
+
+  fun AuroraMunicipalILAirport : Ind Airport ;
+
+  fun AurukunMissionQueenslandAirport : Ind Airport ;
+
+  fun AustinMunicipalMNAirport : Ind Airport ;
+
+  fun AustinNVAirport : Ind Airport ;
+
+  fun AustinStraubelInternationalWIAirport : Ind Airport ;
+
+  fun AustralDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun AuvergneNorthernTerritoryAirport : Ind Airport ;
+
+  fun AvaBillMartinMemorialMOAirport : Ind Airport ;
+
+  fun AvalonBaySeaplaneBaseCAAirport : Ind Airport ;
+
+  fun AvalonNewSouthWalesAirport : Ind Airport ;
+
+  fun AvenalCAAirport : Ind Airport ;
+
+  fun AvianoAirBaseAvianoAirport : Ind Airport ;
+
+  fun AvionClubatCrestedButteCOAirport : Ind Airport ;
+
+  fun AvonCOAirport : Ind Airport ;
+
+  fun AvonParkMunicipalFLAirport : Ind Airport ;
+
+  fun AvoriazAirport : Ind Airport ;
+
+  fun AvraValleyAZAirport : Ind Airport ;
+
+  fun AvuAvuAirport : Ind Airport ;
+
+  fun AwabaAirport : Ind Airport ;
+
+  fun AwarAirport : Ind Airport ;
+
+  fun AwaradamAirport : Ind Airport ;
+
+  fun AwarehAirport : Ind Airport ;
+
+  fun AwassaAirport : Ind Airport ;
+
+  fun AxumAirport : Ind Airport ;
+
+  fun AyacuchoAirport : Ind Airport ;
+
+  fun AyacuchoAirportPeru : Ind Airport ;
+
+  fun AyapelAirport : Ind Airport ;
+
+  fun AyawasiAirport : Ind Airport ;
+
+  fun AyersRockNorthernTerritoryAirport : Ind Airport ;
+
+  fun AyrQueenslandAirport : Ind Airport ;
+
+  fun BaAirport : Ind Airport ;
+
+  fun BabelegiAirport : Ind Airport ;
+
+  fun BaboAirport : Ind Airport ;
+
+  fun BabolsarAirport : Ind Airport ;
+
+  fun BacaGrandeCOAirport : Ind Airport ;
+
+  fun BacauAirport : Ind Airport ;
+
+  fun BacoJinkaAirport : Ind Airport ;
+
+  fun BacolodAirport : Ind Airport ;
+
+  fun BadeAirport : Ind Airport ;
+
+  fun BadinAirport : Ind Airport ;
+
+  fun BaduIslandQueenslandAirport : Ind Airport ;
+
+  fun BafoussemAirport : Ind Airport ;
+
+  fun BaganaAirport : Ind Airport ;
+
+  fun BagdograAirport : Ind Airport ;
+
+  fun BageRSAirport : Ind Airport ;
+
+  fun BaghdadAirport : Ind Airport ;
+
+  fun BagintonCoventryAirport : Ind Airport ;
+
+  fun BaglungAirport : Ind Airport ;
+
+  fun BaguioAirport : Ind Airport ;
+
+  fun BaharDarAirport : Ind Airport ;
+
+  fun BahawalpurAirport : Ind Airport ;
+
+  fun BahiaAngelesAirport : Ind Airport ;
+
+  fun BahiaCupicaAirport : Ind Airport ;
+
+  fun BahiaSolanoAirport : Ind Airport ;
+
+  fun BahiasdeHuatulcoSantaCruzHuatulcoAirport : Ind Airport ;
+
+  fun BahreganAirport : Ind Airport ;
+
+  fun BaiaMapeAirport : Ind Airport ;
+
+  fun BaiadeCaraquezAirport : Ind Airport ;
+
+  fun BaibaraAirport : Ind Airport ;
+
+  fun BaidoaAirport : Ind Airport ;
+
+  fun BaindoungAirport : Ind Airport ;
+
+  fun BairnsdaleVictoriaAirport : Ind Airport ;
+
+  fun BaitadiAirport : Ind Airport ;
+
+  fun BaiyerRiverAirport : Ind Airport ;
+
+  fun BaiyunGuangzhouCantonAirport : Ind Airport ;
+
+  fun BajawaAirport : Ind Airport ;
+
+  fun BajhangAirport : Ind Airport ;
+
+  fun BajoneAirport : Ind Airport ;
+
+  fun BajuraAirport : Ind Airport ;
+
+  fun BakalalanSarawakAirport : Ind Airport ;
+
+  fun BakelAirport : Ind Airport ;
+
+  fun BakerCityMunicipalORAirport : Ind Airport ;
+
+  fun BakerIslandAirport : Ind Airport ;
+
+  fun BakiBakuNaxcivanAirport : Ind Airport ;
+
+  fun BakkafjordurAirport : Ind Airport ;
+
+  fun BakkiGrundarfjordurAirport : Ind Airport ;
+
+  fun BakoumaAirport : Ind Airport ;
+
+  fun BalakovoSaratovAirport : Ind Airport ;
+
+  fun BalalaeAirport : Ind Airport ;
+
+  fun BalboaAirport : Ind Airport ;
+
+  fun BalerAirport : Ind Airport ;
+
+  fun BalgoHillsWesternAustraliaAirport : Ind Airport ;
+
+  fun BalhashAirport : Ind Airport ;
+
+  fun BaliAirport : Ind Airport ;
+
+  fun BaliAirportPapuaNewGuinea : Ind Airport ;
+
+  fun BaliBamendaAirport : Ind Airport ;
+
+  fun BaliceKrakowAirport : Ind Airport ;
+
+  fun BalikesirAirport : Ind Airport ;
+
+  fun BallinaNewSouthWalesAirport : Ind Airport ;
+
+  fun BallykellyNorthernIrelandAirport : Ind Airport ;
+
+  fun BalmacedaAirport : Ind Airport ;
+
+  fun BalranaldNewSouthWalesAirport : Ind Airport ;
+
+  fun BalsasMAAirport : Ind Airport ;
+
+  fun BaltimoreWashingtonInternationalMDAirport : Ind Airport ;
+
+  fun BaltrumAirport : Ind Airport ;
+
+  fun BamagaQueenslandAirport : Ind Airport ;
+
+  fun BambariAirport : Ind Airport ;
+
+  fun BamburiAirport : Ind Airport ;
+
+  fun BamernyAirport : Ind Airport ;
+
+  fun BamiyanAirport : Ind Airport ;
+
+  fun BamuAirport : Ind Airport ;
+
+  fun BanMakKhaengAirport : Ind Airport ;
+
+  fun BanMeThoutAirport : Ind Airport ;
+
+  fun BandarAbbasAirport : Ind Airport ;
+
+  fun BandarLengehAirport : Ind Airport ;
+
+  fun BandirmaAirport : Ind Airport ;
+
+  fun BandonStateORAirport : Ind Airport ;
+
+  fun BandunduAirport : Ind Airport ;
+
+  fun BandungAirport : Ind Airport ;
+
+  fun BaneasaBucharestAirport : Ind Airport ;
+
+  fun BanforaAirport : Ind Airport ;
+
+  fun BangaloreAirport : Ind Airport ;
+
+  fun BangassouAirport : Ind Airport ;
+
+  fun BangokaKisanganiAirport : Ind Airport ;
+
+  fun BangorInternationalMEAirport : Ind Airport ;
+
+  fun BanjaLukaAirport : Ind Airport ;
+
+  fun BankstownNewSouthWalesAirport : Ind Airport ;
+
+  fun BanmethuotAirport : Ind Airport ;
+
+  fun BanningMunicipalCAAirport : Ind Airport ;
+
+  fun BannuAirport : Ind Airport ;
+
+  fun BantryAirport : Ind Airport ;
+
+  fun BanzAirport : Ind Airport ;
+
+  fun BaoshanAirport : Ind Airport ;
+
+  fun BaotouAirport : Ind Airport ;
+
+  fun BapiAirport : Ind Airport ;
+
+  fun BaracoaAirport : Ind Airport ;
+
+  fun BarahonaAirport : Ind Airport ;
+
+  fun BaramitaAirport : Ind Airport ;
+
+  fun BarbudaCodringtonBarbudaIsAirport : Ind Airport ;
+
+  fun BarcaKosiceAirport : Ind Airport ;
+
+  fun BarcaldineQueenslandAirport : Ind Airport ;
+
+  fun BarcelonnetteAirport : Ind Airport ;
+
+  fun BarcelosAMAirport : Ind Airport ;
+
+  fun BarderaAirport : Ind Airport ;
+
+  fun BardufossAirport : Ind Airport ;
+
+  fun BarinasAirport : Ind Airport ;
+
+  fun BarioSarawakAirport : Ind Airport ;
+
+  fun BarisalAirport : Ind Airport ;
+
+  fun BarklyDownsQueenslandAirport : Ind Airport ;
+
+  fun BarksdaleAirForceBaseLAAirport : Ind Airport ;
+
+  fun BarnaulAltayAirport : Ind Airport ;
+
+  fun BarnesMunicipalMAAirport : Ind Airport ;
+
+  fun BarnstableMunicipalAirportBoardmanPolandoFieldMAAirport : Ind Airport ;
+
+  fun BarnwellCountySCAirport : Ind Airport ;
+
+  fun BarondaVadodaraAirport : Ind Airport ;
+
+  fun BarquisimetoAirport : Ind Airport ;
+
+  fun BarraBAAirport : Ind Airport ;
+
+  fun BarraColoradoAirport : Ind Airport ;
+
+  fun BarraScotlandAirport : Ind Airport ;
+
+  fun BarradoCordaMAAirport : Ind Airport ;
+
+  fun BarradoGarcasMGAirport : Ind Airport ;
+
+  fun BarrancabermejaAirport : Ind Airport ;
+
+  fun BarrancadeUpiAirport : Ind Airport ;
+
+  fun BarreirasBAAirport : Ind Airport ;
+
+  fun BarreirinhasMAAirport : Ind Airport ;
+
+  fun BarretosSPAirport : Ind Airport ;
+
+  fun BarrowIslandWesternAustraliaAirport : Ind Airport ;
+
+  fun BarrowinFurnessAirport : Ind Airport ;
+
+  fun BarstowDaggettCAAirport : Ind Airport ;
+
+  fun BarterIslandLRRSAKAirport : Ind Airport ;
+
+  fun BarthAirport : Ind Airport ;
+
+  fun BarticaAirport : Ind Airport ;
+
+  fun BartlesvilleMunicipalOKAirport : Ind Airport ;
+
+  fun BartlettCoveSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun BartlettsAKAirport : Ind Airport ;
+
+  fun BartowMunicipalFLAirport : Ind Airport ;
+
+  fun BasankusuAirport : Ind Airport ;
+
+  fun BascoAirport : Ind Airport ;
+
+  fun BaselMulhouseEuroBaselAirport : Ind Airport ;
+
+  fun BasongoAirport : Ind Airport ;
+
+  fun BasseTerreAirport : Ind Airport ;
+
+  fun BasseinAirport : Ind Airport ;
+
+  fun BataAirport : Ind Airport ;
+
+  fun BatamBatuBesarAirport : Ind Airport ;
+
+  fun BatangafoAirport : Ind Airport ;
+
+  fun BataviaDownsQueenslandAirport : Ind Airport ;
+
+  fun BatesvilleRegionalARAirport : Ind Airport ;
+
+  fun BathurstIslandNorthernTerritoryAirport : Ind Airport ;
+
+  fun BathurstNewSouthWalesAirport : Ind Airport ;
+
+  fun BatmanMilitaryAirBaseBatmanAirport : Ind Airport ;
+
+  fun BatnaAirport : Ind Airport ;
+
+  fun BatomAirport : Ind Airport ;
+
+  fun BatonRougeMetropolitanAirportRyanFieldLAAirport : Ind Airport ;
+
+  fun BatsfjordAirport : Ind Airport ;
+
+  fun BattambangAirport : Ind Airport ;
+
+  fun BatticalcaAirport : Ind Airport ;
+
+  fun BatuLicinAirport : Ind Airport ;
+
+  fun BatumiAbkhaziaAirport : Ind Airport ;
+
+  fun BaucauAirport : Ind Airport ;
+
+  fun BauchiAirport : Ind Airport ;
+
+  fun BaudetteInternationalMNAirport : Ind Airport ;
+
+  fun BauruSPAirport : Ind Airport ;
+
+  fun BawanAirport : Ind Airport ;
+
+  fun BayCityMunicipalTXAirport : Ind Airport ;
+
+  fun BayamoAirport : Ind Airport ;
+
+  fun BayofIslandsAirport : Ind Airport ;
+
+  fun BayreuthAirport : Ind Airport ;
+
+  fun BaytownTXAirport : Ind Airport ;
+
+  fun BeagleBayWesternAustraliaAirport : Ind Airport ;
+
+  fun BealeAirForceBaseCAAirport : Ind Airport ;
+
+  fun BearCreek3AKAirport : Ind Airport ;
+
+  fun BeatriceMunicipalNEAirport : Ind Airport ;
+
+  fun BeattyNVAirport : Ind Airport ;
+
+  fun BeaufortCountySCAirport : Ind Airport ;
+
+  fun BeaumontMunicipalTXAirport : Ind Airport ;
+
+  fun BeauregardParishLAAirport : Ind Airport ;
+
+  fun BeaverCountyPAAirport : Ind Airport ;
+
+  fun BeaverInletAKAirport : Ind Airport ;
+
+  fun BeaverRuinGAAirport : Ind Airport ;
+
+  fun BedfordDownsWesternAustraliaAirport : Ind Airport ;
+
+  fun BedourieQueenslandAirport : Ind Airport ;
+
+  fun BeechFactoryKSAirport : Ind Airport ;
+
+  fun BeerShebaBeershebaAirport : Ind Airport ;
+
+  fun BegamganjAirport : Ind Airport ;
+
+  fun BeicaAirport : Ind Airport ;
+
+  fun BeidahAirport : Ind Airport ;
+
+  fun BeihaiAirport : Ind Airport ;
+
+  fun BeihanAirport : Ind Airport ;
+
+  fun BeijingPekingAirport : Ind Airport ;
+
+  fun BeiraAirport : Ind Airport ;
+
+  fun BelagaSarawakAirport : Ind Airport ;
+
+  fun BelepBelepIslandsAirport : Ind Airport ;
+
+  fun BelfortAirport : Ind Airport ;
+
+  fun BelgaumAirport : Ind Airport ;
+
+  fun BelgradeAirport : Ind Airport ;
+
+  fun BellIslandHotSpringsSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun BellaUnionAirport : Ind Airport ;
+
+  fun BellaYellaAirport : Ind Airport ;
+
+  fun BellaryAirport : Ind Airport ;
+
+  fun BellavistaAirport : Ind Airport ;
+
+  fun BelleFourcheMunicipalSDAirport : Ind Airport ;
+
+  fun BellinghamInternationalWAAirport : Ind Airport ;
+
+  fun BellonaAirport : Ind Airport ;
+
+  fun BellunoAirport : Ind Airport ;
+
+  fun BelmontNewSouthWalesAirport : Ind Airport ;
+
+  fun BelmonteBAAirport : Ind Airport ;
+
+  fun BelmulletAirport : Ind Airport ;
+
+  fun BeloAirport : Ind Airport ;
+
+  fun BeloHorizonteMGAirport : Ind Airport ;
+
+  fun BeltsyAirport : Ind Airport ;
+
+  fun BembridgeEnglandAirport : Ind Airport ;
+
+  fun BemichiAirport : Ind Airport ;
+
+  fun BemidjiBeltramiCountyMNAirport : Ind Airport ;
+
+  fun BenallaVictoriaAirport : Ind Airport ;
+
+  fun BenawiAirport : Ind Airport ;
+
+  fun BenbeculaScotlandAirport : Ind Airport ;
+
+  fun BenedumWVAirport : Ind Airport ;
+
+  fun BengbuAirport : Ind Airport ;
+
+  fun BengkuluSumatraAirport : Ind Airport ;
+
+  fun BenguelaAirport : Ind Airport ;
+
+  fun BeniAirport : Ind Airport ;
+
+  fun BeninCityAirport : Ind Airport ;
+
+  fun BeninaBenghaziAirport : Ind Airport ;
+
+  fun BenjinaAirport : Ind Airport ;
+
+  fun BensbachAirport : Ind Airport ;
+
+  fun BensonEnglandAirport : Ind Airport ;
+
+  fun BensonMunicipalMNAirport : Ind Airport ;
+
+  fun BentoGoncalvesRSAirport : Ind Airport ;
+
+  fun BentwatersStationEnglandAirport : Ind Airport ;
+
+  fun BeppuAirport : Ind Airport ;
+
+  fun BequiaAirport : Ind Airport ;
+
+  fun BerauAirport : Ind Airport ;
+
+  fun BerberaAirport : Ind Airport ;
+
+  fun BerberatiAirport : Ind Airport ;
+
+  fun BerdyanskZaporizhzhyaAirport : Ind Airport ;
+
+  fun BereinaAirport : Ind Airport ;
+
+  fun BeresyAirport : Ind Airport ;
+
+  fun BergamoAirport : Ind Airport ;
+
+  fun BergeracAirport : Ind Airport ;
+
+  fun BergstromAirRescueServiceTXAirport : Ind Airport ;
+
+  fun BerkeleyCAAirport : Ind Airport ;
+
+  fun BerlevagAirport : Ind Airport ;
+
+  fun BerlinMunicipalNHAirport : Ind Airport ;
+
+  fun BermejoAirport : Ind Airport ;
+
+  fun BernBelpBernBerneAirport : Ind Airport ;
+
+  fun BertMooneyMTAirport : Ind Airport ;
+
+  fun BertouaAirport : Ind Airport ;
+
+  fun BeruAirport : Ind Airport ;
+
+  fun BesalampyAirport : Ind Airport ;
+
+  fun BethelAKAirport : Ind Airport ;
+
+  fun BethelSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun BetoikyAirport : Ind Airport ;
+
+  fun BetootaQueenslandAirport : Ind Airport ;
+
+  fun BetouAirport : Ind Airport ;
+
+  fun BettinaAbuDhabiAirport : Ind Airport ;
+
+  fun BettlesAKAirport : Ind Airport ;
+
+  fun BeverleySpringsWesternAustraliaAirport : Ind Airport ;
+
+  fun BeverlyMunicipalMAAirport : Ind Airport ;
+
+  fun BhadrapurAirport : Ind Airport ;
+
+  fun BhairawaAirport : Ind Airport ;
+
+  fun BhamoAirport : Ind Airport ;
+
+  fun BharatpurAirport : Ind Airport ;
+
+  fun BhatindaAirport : Ind Airport ;
+
+  fun BhavnagarAirport : Ind Airport ;
+
+  fun BhojpurAirport : Ind Airport ;
+
+  fun BhopalAirport : Ind Airport ;
+
+  fun BhubaneswarAirport : Ind Airport ;
+
+  fun BhujAirport : Ind Airport ;
+
+  fun BiallaAirport : Ind Airport ;
+
+  fun BiaruAirport : Ind Airport ;
+
+  fun BiawonqueAirport : Ind Airport ;
+
+  fun BicycleLakeArmyAirFieldNationalGuardCAAirport : Ind Airport ;
+
+  fun BielefeldAirport : Ind Airport ;
+
+  fun BigBayAirport : Ind Airport ;
+
+  fun BigBellWesternAustraliaAirport : Ind Airport ;
+
+  fun BigCreekAKAirport : Ind Airport ;
+
+  fun BigCreekAirport : Ind Airport ;
+
+  fun BigLakeAKAirport : Ind Airport ;
+
+  fun BigMountainAKAirport : Ind Airport ;
+
+  fun BigPineyMarbletonWYAirport : Ind Airport ;
+
+  fun BigSpringMcMahonWrinkleTXAirport : Ind Airport ;
+
+  fun BigSpringTXAirport : Ind Airport ;
+
+  fun BigginHillEnglandAirport : Ind Airport ;
+
+  fun BiggsArmyAirFieldTXAirport : Ind Airport ;
+
+  fun BikanerAirport : Ind Airport ;
+
+  fun BikiniAtollAirport : Ind Airport ;
+
+  fun BilbaoAirport : Ind Airport ;
+
+  fun BildudalurAirport : Ind Airport ;
+
+  fun BillilunaStationWesternAustraliaAirport : Ind Airport ;
+
+  fun BillingsLoganInternationalMTAirport : Ind Airport ;
+
+  fun BillundAirport : Ind Airport ;
+
+  fun BillyMitchellNCAirport : Ind Airport ;
+
+  fun BimaAirport : Ind Airport ;
+
+  fun BiminAirport : Ind Airport ;
+
+  fun BinghamtonRegionalAirportEdwinALinkFieldNYAirport : Ind Airport ;
+
+  fun BintuluSarawakAirport : Ind Airport ;
+
+  fun BiraroAirport : Ind Airport ;
+
+  fun BiratnagarAirport : Ind Airport ;
+
+  fun BirchCreekAKAirport : Ind Airport ;
+
+  fun BirchwoodPoconoAirparkPAAirport : Ind Airport ;
+
+  fun BirdIslandAirport : Ind Airport ;
+
+  fun BirdsvilleQueenslandAirport : Ind Airport ;
+
+  fun BirminghamEnglandAirport : Ind Airport ;
+
+  fun BirminghamInternationalALAirport : Ind Airport ;
+
+  fun BirninKonniAirport : Ind Airport ;
+
+  fun BisbeeDouglasInternationalAZAirport : Ind Airport ;
+
+  fun BisbeeMunicipalAZAirport : Ind Airport ;
+
+  fun BishaAirport : Ind Airport ;
+
+  fun BishkekFrunzeChuyAirport : Ind Airport ;
+
+  fun BishoAirport : Ind Airport ;
+
+  fun BishopCAAirport : Ind Airport ;
+
+  fun BishopInternationalMIAirport : Ind Airport ;
+
+  fun BiskraAirport : Ind Airport ;
+
+  fun BisligAirport : Ind Airport ;
+
+  fun BismarckMunicipalNDAirport : Ind Airport ;
+
+  fun BissallancaBissauAirport : Ind Airport ;
+
+  fun BitamAirport : Ind Airport ;
+
+  fun BitburgAirBaseBitburgAirport : Ind Airport ;
+
+  fun BizantQueenslandAirport : Ind Airport ;
+
+  fun BlackallQueenslandAirport : Ind Airport ;
+
+  fun BlackbushAirport : Ind Airport ;
+
+  fun BlackwaterQueenslandAirport : Ind Airport ;
+
+  fun BlagoveschenskAmurAirport : Ind Airport ;
+
+  fun BlaineMunicipalWAAirport : Ind Airport ;
+
+  fun BlakeleyIslandWAAirport : Ind Airport ;
+
+  fun BlandingMunicipalUTAirport : Ind Airport ;
+
+  fun BlangBintangBandaAcehKuturajaAirport : Ind Airport ;
+
+  fun BlockIslandStateRIAirport : Ind Airport ;
+
+  fun BloomfieldQueenslandAirport : Ind Airport ;
+
+  fun BloomingtonNormalILAirport : Ind Airport ;
+
+  fun BlosserMunicipalKSAirport : Ind Airport ;
+
+  fun BlueCanyonNyackCAAirport : Ind Airport ;
+
+  fun BlueFoxBayAKAirport : Ind Airport ;
+
+  fun BlueLagoonAirport : Ind Airport ;
+
+  fun BluefieldsAirport : Ind Airport ;
+
+  fun BlumenauSCAirport : Ind Airport ;
+
+  fun BlytheCAAirport : Ind Airport ;
+
+  fun BlythevilleMunicipalARAirport : Ind Airport ;
+
+  fun BoAirport : Ind Airport ;
+
+  fun BoaVistaRRAirport : Ind Airport ;
+
+  fun BoanaAirport : Ind Airport ;
+
+  fun BoangAirport : Ind Airport ;
+
+  fun BoavistaBoavistaAirport : Ind Airport ;
+
+  fun BobBakerMemorialAKAirport : Ind Airport ;
+
+  fun BobSikesFLAirport : Ind Airport ;
+
+  fun BobbyLChainMunicipalMSAirport : Ind Airport ;
+
+  fun BoboDioulassoAirport : Ind Airport ;
+
+  fun BocaRatonFLAirport : Ind Airport ;
+
+  fun BocadoAcreAMAirport : Ind Airport ;
+
+  fun BocasdelToroAirport : Ind Airport ;
+
+  fun BodinumuAirport : Ind Airport ;
+
+  fun BodoAirport : Ind Airport ;
+
+  fun BoeingFieldKingCountyInternationalWAAirport : Ind Airport ;
+
+  fun BoendeAirport : Ind Airport ;
+
+  fun BogheAirport : Ind Airport ;
+
+  fun BograAirport : Ind Airport ;
+
+  fun BoiguIslandQueenslandAirport : Ind Airport ;
+
+  fun BoireFieldNHAirport : Ind Airport ;
+
+  fun BoiseAirTerminalGowenFieldIDAirport : Ind Airport ;
+
+  fun BokeAirport : Ind Airport ;
+
+  fun BokondiniAirport : Ind Airport ;
+
+  fun BokoroAirport : Ind Airport ;
+
+  fun BokuAirport : Ind Airport ;
+
+  fun BolAirport : Ind Airport ;
+
+  fun BolaangAirport : Ind Airport ;
+
+  fun BoleAddisAbabaAirport : Ind Airport ;
+
+  fun BollingAirForceBaseDCAirport : Ind Airport ;
+
+  fun BollonQueenslandAirport : Ind Airport ;
+
+  fun BolovipAirport : Ind Airport ;
+
+  fun BolwarraQueenslandAirport : Ind Airport ;
+
+  fun BolzanoBozenAirport : Ind Airport ;
+
+  fun BomaAirport : Ind Airport ;
+
+  fun BomaiAirport : Ind Airport ;
+
+  fun BonanzaAirport : Ind Airport ;
+
+  fun BondoukouAirport : Ind Airport ;
+
+  fun BongoAirport : Ind Airport ;
+
+  fun BontangAirport : Ind Airport ;
+
+  fun BontheAirport : Ind Airport ;
+
+  fun BooneCountyARAirport : Ind Airport ;
+
+  fun BooneMunicipalIAAirport : Ind Airport ;
+
+  fun BoqueAirport : Ind Airport ;
+
+  fun BoraBoraSocietyIslandsAirport : Ind Airport ;
+
+  fun BordjBadjiMokhtarAirport : Ind Airport ;
+
+  fun BorgarfjordurAirport : Ind Airport ;
+
+  fun BoridiAirport : Ind Airport ;
+
+  fun BorispolKievAirport : Ind Airport ;
+
+  fun BorkumAirport : Ind Airport ;
+
+  fun BorlangeAirBaseBorlangeAirport : Ind Airport ;
+
+  fun BorotouAirport : Ind Airport ;
+
+  fun BorregoValleyCAAirport : Ind Airport ;
+
+  fun BorroloolaNorthernTerritoryAirport : Ind Airport ;
+
+  fun BossangoaAirport : Ind Airport ;
+
+  fun BossasoAirport : Ind Airport ;
+
+  fun BossembeleAirport : Ind Airport ;
+
+  fun BossetAirport : Ind Airport ;
+
+  fun BostAirport : Ind Airport ;
+
+  fun BostonCityHeliportMAAirport : Ind Airport ;
+
+  fun BoswellBayAKAirport : Ind Airport ;
+
+  fun BotopasieAirport : Ind Airport ;
+
+  fun BouSaadaAirport : Ind Airport ;
+
+  fun BouakeAirport : Ind Airport ;
+
+  fun BouarAirport : Ind Airport ;
+
+  fun BoucaAirport : Ind Airport ;
+
+  fun BoulderCityMunicipalNVAirport : Ind Airport ;
+
+  fun BouliaQueenslandAirport : Ind Airport ;
+
+  fun BounaAirport : Ind Airport ;
+
+  fun BoundaryAKAirport : Ind Airport ;
+
+  fun BoundialiAirport : Ind Airport ;
+
+  fun BoundjiAirport : Ind Airport ;
+
+  fun BourgesAirport : Ind Airport ;
+
+  fun BourkeNewSouthWalesAirport : Ind Airport ;
+
+  fun BournemouthEnglandAirport : Ind Airport ;
+
+  fun BoutheonSaintEtienneAirport : Ind Airport ;
+
+  fun BowermanWAAirport : Ind Airport ;
+
+  fun BowersFieldWAAirport : Ind Airport ;
+
+  fun BowlingGreenWarrenCountyRegionalKYAirport : Ind Airport ;
+
+  fun BowmanMunicipalNDAirport : Ind Airport ;
+
+  fun BoxboroughMAAirport : Ind Airport ;
+
+  fun BoyneMountainMIAirport : Ind Airport ;
+
+  fun BozoumAirport : Ind Airport ;
+
+  fun BradfordEnglandAirport : Ind Airport ;
+
+  fun BradfordRegionalPAAirport : Ind Airport ;
+
+  fun BradleyInternationalCTAirport : Ind Airport ;
+
+  fun BradshawArmyAirfieldHIAirport : Ind Airport ;
+
+  fun BragaAirport : Ind Airport ;
+
+  fun BragancaAirport : Ind Airport ;
+
+  fun BragancaPAAirport : Ind Airport ;
+
+  fun BrahmanAirport : Ind Airport ;
+
+  fun BrainerdCrowWingCountyRegionalMNAirport : Ind Airport ;
+
+  fun BramptonIslandQueenslandAirport : Ind Airport ;
+
+  fun BratskIrkutskAirport : Ind Airport ;
+
+  fun BraunschweigAirport : Ind Airport ;
+
+  fun BrawleyMunicipalCAAirport : Ind Airport ;
+
+  fun BreidhdalurBreiddalsvikAirport : Ind Airport ;
+
+  fun BremerhavenAirport : Ind Airport ;
+
+  fun BrennerFieldNEAirport : Ind Airport ;
+
+  fun BrenwicksAKAirport : Ind Airport ;
+
+  fun BrestBrestAirport : Ind Airport ;
+
+  fun BrevesPAAirport : Ind Airport ;
+
+  fun BrevigMissionAKAirport : Ind Airport ;
+
+  fun BrewarrinaNewSouthWalesAirport : Ind Airport ;
+
+  fun BrewsterFieldNEAirport : Ind Airport ;
+
+  fun BrezhnevAirport : Ind Airport ;
+
+  fun BriaAirport : Ind Airport ;
+
+  fun BrighamCityUTAirport : Ind Airport ;
+
+  fun BrightVictoriaAirport : Ind Airport ;
+
+  fun BrightonDownsQueenslandAirport : Ind Airport ;
+
+  fun BrightonEnglandAirport : Ind Airport ;
+
+  fun BringelandFoerdeFordeAirport : Ind Airport ;
+
+  fun BriveLaGaillardeAirport : Ind Airport ;
+
+  fun BrizeNortonStationEnglandAirport : Ind Airport ;
+
+  fun BrnoAirport : Ind Airport ;
+
+  fun BroadusMTAirport : Ind Airport ;
+
+  fun BrokenBowMunicipalNEAirport : Ind Airport ;
+
+  fun BrokenHillNewSouthWalesAirport : Ind Airport ;
+
+  fun BrommaStockholmAirport : Ind Airport ;
+
+  fun BronnoyBronnoysundBroennoeysundAirport : Ind Airport ;
+
+  fun BrookingsMunicipalSDAirport : Ind Airport ;
+
+  fun BrookingsStateORAirport : Ind Airport ;
+
+  fun BroomeWesternAustraliaAirport : Ind Airport ;
+
+  fun BrownsNEAirport : Ind Airport ;
+
+  fun BrownsvilleSouthPadreIslandInternationalTXAirport : Ind Airport ;
+
+  fun BrownwoodMunicipalTXAirport : Ind Airport ;
+
+  fun BruggenAirport : Ind Airport ;
+
+  fun BrumadoBAAirport : Ind Airport ;
+
+  fun BrunetteDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun BrusLagunaAirport : Ind Airport ;
+
+  fun BryanskBryanskAirport : Ind Airport ;
+
+  fun BryantArmyHeliportAKAirport : Ind Airport ;
+
+  fun BryceCanyonUTAirport : Ind Airport ;
+
+  fun BuaAirport : Ind Airport ;
+
+  fun BubaqueAirport : Ind Airport ;
+
+  fun BuchananFieldCAAirport : Ind Airport ;
+
+  fun BucholzArmyAirFieldKwajaleinKMRKwajaleinAirport : Ind Airport ;
+
+  fun BuckeyeMunicipalAZAirport : Ind Airport ;
+
+  fun BucklandAKAirport : Ind Airport ;
+
+  fun BuckleyArmyNationalGuardBaseCOAirport : Ind Airport ;
+
+  fun BudardalurAirport : Ind Airport ;
+
+  fun BuenaventuraAirport : Ind Airport ;
+
+  fun BuenosAiresAirport : Ind Airport ;
+
+  fun BukaAirport : Ind Airport ;
+
+  fun BukhoroBukharaBukharaAirport : Ind Airport ;
+
+  fun BukhtaTiksiIceStripYakutiaSakhaAirport : Ind Airport ;
+
+  fun BukobaAirport : Ind Airport ;
+
+  fun BulawayoAirport : Ind Airport ;
+
+  fun BulchiAirport : Ind Airport ;
+
+  fun BulimbaQueenslandAirport : Ind Airport ;
+
+  fun BullfrogBasinUTAirport : Ind Airport ;
+
+  fun BuloloAirport : Ind Airport ;
+
+  fun BumbaAirport : Ind Airport ;
+
+  fun BunburyWesternAustraliaAirport : Ind Airport ;
+
+  fun BundabergQueenslandAirport : Ind Airport ;
+
+  fun BundiAirport : Ind Airport ;
+
+  fun BuniaAirport : Ind Airport ;
+
+  fun BunyuAirport : Ind Airport ;
+
+  fun BuraoAirport : Ind Airport ;
+
+  fun BurbankGlendalePasadenaCAAirport : Ind Airport ;
+
+  fun BurgasBourgasAirport : Ind Airport ;
+
+  fun BurkeCountyGAAirport : Ind Airport ;
+
+  fun BurkeLakefrontOHAirport : Ind Airport ;
+
+  fun BurketownQueenslandAirport : Ind Airport ;
+
+  fun BurleyMunicipalIDAirport : Ind Airport ;
+
+  fun BurlingtonInternationalVTAirport : Ind Airport ;
+
+  fun BurlingtonMunicipalIAAirport : Ind Airport ;
+
+  fun BurlingtonMunicipalMAAirport : Ind Airport ;
+
+  fun BurnieWynyardTasmaniaAirport : Ind Airport ;
+
+  fun BurnsMunicipalORAirport : Ind Airport ;
+
+  fun BursaAirport : Ind Airport ;
+
+  fun BurtonwoodAirport : Ind Airport ;
+
+  fun BuryStEdmundsEnglandAirport : Ind Airport ;
+
+  fun BushFieldGAAirport : Ind Airport ;
+
+  fun BushehrAirport : Ind Airport ;
+
+  fun ButareAirport : Ind Airport ;
+
+  fun ButaritariAirport : Ind Airport ;
+
+  fun ButlerCountyPAAirport : Ind Airport ;
+
+  fun ButlerMemorialMOAirport : Ind Airport ;
+
+  fun ButonBabauAirport : Ind Airport ;
+
+  fun ButterworthAirportMalaysia : Ind Airport ;
+
+  fun ButtsArmyAirFieldCOAirport : Ind Airport ;
+
+  fun ButuanAirport : Ind Airport ;
+
+  fun BuyoAirport : Ind Airport ;
+
+  fun BuziosAirport : Ind Airport ;
+
+  fun BuzzardsPointSeaplaneBaseDCAirport : Ind Airport ;
+
+  fun BydgoszczAirport : Ind Airport ;
+
+  fun BykovoMoscowAirport : Ind Airport ;
+
+  fun CDavidCampbellFieldCorsicanaMunicipalTXAirport : Ind Airport ;
+
+  fun CaMauAirport : Ind Airport ;
+
+  fun CabimasAirport : Ind Airport ;
+
+  fun CabinCreekAKAirport : Ind Airport ;
+
+  fun CabindaAirport : Ind Airport ;
+
+  fun CableCAAirport : Ind Airport ;
+
+  fun CableHeliportCAAirport : Ind Airport ;
+
+  fun CaboRojoAirport : Ind Airport ;
+
+  fun CaceresMGAirport : Ind Airport ;
+
+  fun CachoeiraBAAirport : Ind Airport ;
+
+  fun CadjehounCotonouAirport : Ind Airport ;
+
+  fun CagayandeOroAirport : Ind Airport ;
+
+  fun CagayandeSuluAirport : Ind Airport ;
+
+  fun CahokiaILStLouisAirport : Ind Airport ;
+
+  fun CaicaraAirport : Ind Airport ;
+
+  fun CaigumaAirport : Ind Airport ;
+
+  fun CairoILAirport : Ind Airport ;
+
+  fun CairoInternationalCairoAirport : Ind Airport ;
+
+  fun CajamarcaAirport : Ind Airport ;
+
+  fun CalabarAirport : Ind Airport ;
+
+  fun CalabozoAirport : Ind Airport ;
+
+  fun CalamaAirport : Ind Airport ;
+
+  fun CalapanAirport : Ind Airport ;
+
+  fun CalbayogAirport : Ind Airport ;
+
+  fun CaldasNovasGOAirport : Ind Airport ;
+
+  fun CaledoniaAirport : Ind Airport ;
+
+  fun CaletaOliviaAirport : Ind Airport ;
+
+  fun CalexicoInternationalCAAirport : Ind Airport ;
+
+  fun CalicutAirport : Ind Airport ;
+
+  fun CalipatriaMunicipalCAAirport : Ind Airport ;
+
+  fun CallawayGardensHarrisCountyGAAirport : Ind Airport ;
+
+  fun CaloundraQueenslandAirport : Ind Airport ;
+
+  fun CalvertonNavalWeaponsIndustrialReserveNYAirport : Ind Airport ;
+
+  fun CamaxiloAirport : Ind Airport ;
+
+  fun CambridgeAirport : Ind Airport ;
+
+  fun CambridgeDorchesterMDAirport : Ind Airport ;
+
+  fun CambridgeMAAirport : Ind Airport ;
+
+  fun CamdenNewSouthWalesAirport : Ind Airport ;
+
+  fun CameronMemorialMOAirport : Ind Airport ;
+
+  fun CametaAirport : Ind Airport ;
+
+  fun CamfieldNorthernTerritoryAirport : Ind Airport ;
+
+  fun CamiguinAirport : Ind Airport ;
+
+  fun CamillaMitchellCountyGAAirport : Ind Airport ;
+
+  fun CamiloDazaCucutaAirport : Ind Airport ;
+
+  fun CamiriAirport : Ind Airport ;
+
+  fun CamocimCEAirport : Ind Airport ;
+
+  fun CamoowealQueenslandAirport : Ind Airport ;
+
+  fun CampParksHeliportCAAirport : Ind Airport ;
+
+  fun CampPickettBlackstoneArmyAirFieldAllenCPerkinsonMunicipalVAAirport : Ind Airport ;
+
+  fun CampbellArmyAirFieldKYAirport : Ind Airport ;
+
+  fun CampbellporeAirport : Ind Airport ;
+
+  fun CampbeltownAirport : Ind Airport ;
+
+  fun CampinaGrandePBAirport : Ind Airport ;
+
+  fun CampinasSPAirport : Ind Airport ;
+
+  fun CampoCAAirport : Ind Airport ;
+
+  fun CampoDellOroCorsicaAirport : Ind Airport ;
+
+  fun CampoGrandeMSAirport : Ind Airport ;
+
+  fun CampodoAragAirport : Ind Airport ;
+
+  fun CamposRJAirport : Ind Airport ;
+
+  fun CanaimaAirport : Ind Airport ;
+
+  fun CanakkaleAirport : Ind Airport ;
+
+  fun CananeaAirport : Ind Airport ;
+
+  fun CanasAirport : Ind Airport ;
+
+  fun CanavieirasBAAirport : Ind Airport ;
+
+  fun CanberraAustralianCapitalTerritoryAirport : Ind Airport ;
+
+  fun CancunInternationalCancunAirport : Ind Airport ;
+
+  fun CandalaAirport : Ind Airport ;
+
+  fun CandilejasAirport : Ind Airport ;
+
+  fun Candle2AKAirport : Ind Airport ;
+
+  fun CaneFieldDominicaRoseauAirport : Ind Airport ;
+
+  fun CangambaAirport : Ind Airport ;
+
+  fun CannonAirForceBaseNMAirport : Ind Airport ;
+
+  fun CanobieQueenslandAirport : Ind Airport ;
+
+  fun CanouanIslandCanouanIslandAirport : Ind Airport ;
+
+  fun CantonIslandAirport : Ind Airport ;
+
+  fun CanyonlandsFieldUTAirport : Ind Airport ;
+
+  fun CapHaitienAirport : Ind Airport ;
+
+  fun CapSkirringAirport : Ind Airport ;
+
+  fun CapeEleutheraAirport : Ind Airport ;
+
+  fun CapeFlatteryAirport : Ind Airport ;
+
+  fun CapeGirardeauMunicipalMOAirport : Ind Airport ;
+
+  fun CapeGloucesterAirport : Ind Airport ;
+
+  fun CapeNewhenhamLRRSAKAirport : Ind Airport ;
+
+  fun CapePalmasAirport : Ind Airport ;
+
+  fun CapePoleSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun CapeRomanzofLRRSAKAirport : Ind Airport ;
+
+  fun CapeRooneyAirport : Ind Airport ;
+
+  fun CapeSarichefAKAirport : Ind Airport ;
+
+  fun CapeSpencerCoastGuardHeliportAKAirport : Ind Airport ;
+
+  fun CapeStJacquesAirport : Ind Airport ;
+
+  fun CapeVogelAirport : Ind Airport ;
+
+  fun CapitalCityKYAirport : Ind Airport ;
+
+  fun CapitalCityPAAirport : Ind Airport ;
+
+  fun CapitanVicenteAlmandoLaRiojaAirport : Ind Airport ;
+
+  fun CaptainJackThomasElDoradoKSAirport : Ind Airport ;
+
+  fun CapurganaAirport : Ind Airport ;
+
+  fun CaquetaniaAirport : Ind Airport ;
+
+  fun CarNicobarAirport : Ind Airport ;
+
+  fun CarajasPAAirport : Ind Airport ;
+
+  fun CaransebesAirport : Ind Airport ;
+
+  fun CarauariAMAirport : Ind Airport ;
+
+  fun CaravelasBAAirport : Ind Airport ;
+
+  fun CarcassonneAirport : Ind Airport ;
+
+  fun CaribouMunicipalMEAirport : Ind Airport ;
+
+  fun CarimaguaAirport : Ind Airport ;
+
+  fun CarlisleAirport : Ind Airport ;
+
+  fun CarltonHillWesternAustraliaAirport : Ind Airport ;
+
+  fun CarmelitaAirport : Ind Airport ;
+
+  fun CarmendePatagonesAirport : Ind Airport ;
+
+  fun CarnarvonWesternAustraliaAirport : Ind Airport ;
+
+  fun CarnotAirport : Ind Airport ;
+
+  fun CarolinaMAAirport : Ind Airport ;
+
+  fun CarpentariaDownsQueenslandAirport : Ind Airport ;
+
+  fun CarpiquetCaenAirport : Ind Airport ;
+
+  fun CarriacouAirport : Ind Airport ;
+
+  fun CarrickfinnAirport : Ind Airport ;
+
+  fun CarrielSurConcepcionAirport : Ind Airport ;
+
+  fun CarrollCountyTNAirport : Ind Airport ;
+
+  fun CarsonNVAirport : Ind Airport ;
+
+  fun CarswellAirForceBaseTXAirport : Ind Airport ;
+
+  fun CartagoAirport : Ind Airport ;
+
+  fun CartiAirport : Ind Airport ;
+
+  fun CaruaruPEAirport : Ind Airport ;
+
+  fun CarupanoAirport : Ind Airport ;
+
+  fun CaruruAirport : Ind Airport ;
+
+  fun CarutaperaMAAirport : Ind Airport ;
+
+  fun CasaGrandeMunicipalAZAirport : Ind Airport ;
+
+  fun CasaleBrindisiAirport : Ind Airport ;
+
+  fun CascadeLocksStateORAirport : Ind Airport ;
+
+  fun CascavelPRAirport : Ind Airport ;
+
+  fun CascoGoveCoastGuardStationAKAirport : Ind Airport ;
+
+  fun CasiguranAirport : Ind Airport ;
+
+  fun CasinoNewSouthWalesAirport : Ind Airport ;
+
+  fun CasiquaAirport : Ind Airport ;
+
+  fun CassidyLineIslandsAirport : Ind Airport ;
+
+  fun CassilandiaMGAirport : Ind Airport ;
+
+  fun CastawayAirport : Ind Airport ;
+
+  fun CastlebarAirport : Ind Airport ;
+
+  fun CastresAirport : Ind Airport ;
+
+  fun CasuaritoAirport : Ind Airport ;
+
+  fun CatCayAirport : Ind Airport ;
+
+  fun CatIslandAirport : Ind Airport ;
+
+  fun CatacamasAirport : Ind Airport ;
+
+  fun CatalinaCAAirport : Ind Airport ;
+
+  fun CatamarcaAirport : Ind Airport ;
+
+  fun CataratasPRAirport : Ind Airport ;
+
+  fun CataratasdelIguazuIguazuAirport : Ind Airport ;
+
+  fun CatarmanAirport : Ind Airport ;
+
+  fun CatavinaAirport : Ind Airport ;
+
+  fun CattleCreekAirport : Ind Airport ;
+
+  fun CauayanAirport : Ind Airport ;
+
+  fun CaucasiaAirport : Ind Airport ;
+
+  fun CaumontAvignonAirport : Ind Airport ;
+
+  fun CavernCityAirTerminalNMAirport : Ind Airport ;
+
+  fun CaviahueAirport : Ind Airport ;
+
+  fun CaxiasdoSulRSAirport : Ind Airport ;
+
+  fun CayeChapelAirport : Ind Airport ;
+
+  fun CayoLargodelSurAirport : Ind Airport ;
+
+  fun CazomboAirport : Ind Airport ;
+
+  fun CebuAirport : Ind Airport ;
+
+  fun CedarCityMunicipalUTAirport : Ind Airport ;
+
+  fun CedarRapidsMunicipalIAAirport : Ind Airport ;
+
+  fun CedrosIslandAirport : Ind Airport ;
+
+  fun CedunaSouthAustraliaAirport : Ind Airport ;
+
+  fun CentennialCOAirport : Ind Airport ;
+
+  fun CenterIslandWAAirport : Ind Airport ;
+
+  fun CenterportHeliportCAAirport : Ind Airport ;
+
+  fun CentervilleMunicipalTNAirport : Ind Airport ;
+
+  fun CentralAKAirport : Ind Airport ;
+
+  fun CentralBusinessDistrictDowntownHeliportTXAirport : Ind Airport ;
+
+  fun CentralNebraskaRegionalNEAirport : Ind Airport ;
+
+  fun CentralPretoriaPretoriaAirport : Ind Airport ;
+
+  fun CentralWisconsinWIAirport : Ind Airport ;
+
+  fun CentraliaMunicipalILAirport : Ind Airport ;
+
+  fun CenturyCityHeliportCAAirport : Ind Airport ;
+
+  fun CepuAirport : Ind Airport ;
+
+  fun CeresAirport : Ind Airport ;
+
+  fun CerroMorenoAntofagastaAirport : Ind Airport ;
+
+  fun CessnaAircraftFieldKSAirport : Ind Airport ;
+
+  fun CessnockNewSouthWalesAirport : Ind Airport ;
+
+  fun ChacallutaAricaAirport : Ind Airport ;
+
+  fun ChachapoyasAirport : Ind Airport ;
+
+  fun ChadronMunicipalNEAirport : Ind Airport ;
+
+  fun ChaffeeArmyAirFieldARAirport : Ind Airport ;
+
+  fun ChakcharanAirport : Ind Airport ;
+
+  fun ChalkyitsikAKAirport : Ind Airport ;
+
+  fun ChallisIDAirport : Ind Airport ;
+
+  fun ChanaralAirport : Ind Airport ;
+
+  fun ChandigarhAirport : Ind Airport ;
+
+  fun ChandlerFieldMNAirport : Ind Airport ;
+
+  fun ChandlerMunicipalAZAirport : Ind Airport ;
+
+  fun ChangHuaAirport : Ind Airport ;
+
+  fun ChangchunAirport : Ind Airport ;
+
+  fun ChangdeAirport : Ind Airport ;
+
+  fun ChangshaAirport : Ind Airport ;
+
+  fun ChanguinolaAirport : Ind Airport ;
+
+  fun ChangzhiAirport : Ind Airport ;
+
+  fun ChangzhouAirport : Ind Airport ;
+
+  fun ChaniaKhaniaAirport : Ind Airport ;
+
+  fun ChanuteMartinJohnsonKSAirport : Ind Airport ;
+
+  fun ChaoyangAirport : Ind Airport ;
+
+  fun ChaparralAirport : Ind Airport ;
+
+  fun ChapelcoSanMartindelosAndesAirport : Ind Airport ;
+
+  fun CharataAirport : Ind Airport ;
+
+  fun CharjeuChardzhouLebapAirport : Ind Airport ;
+
+  fun CharlesCZettelMemorialMIAirport : Ind Airport ;
+
+  fun CharlesCityMunicipalIAAirport : Ind Airport ;
+
+  fun CharlesWoodHelipadNJAirport : Ind Airport ;
+
+  fun CharlesdeGaulleParisAirport : Ind Airport ;
+
+  fun CharlestonAirForceBaseCharlestonInternationalSCAirport : Ind Airport ;
+
+  fun CharlestonExecutiveSCAirport : Ind Airport ;
+
+  fun CharlevilleQueenslandAirport : Ind Airport ;
+
+  fun CharlevoixMunicipalMIAirport : Ind Airport ;
+
+  fun CharlotteDouglasInternationalNCAirport : Ind Airport ;
+
+  fun CharlottesvilleAlbemarleVAAirport : Ind Airport ;
+
+  fun CharltonBuildingHeliportMNAirport : Ind Airport ;
+
+  fun ChartersTowersQueenslandAirport : Ind Airport ;
+
+  fun ChaseCityMunicipalVAAirport : Ind Airport ;
+
+  fun ChathamIslandAirport : Ind Airport ;
+
+  fun ChathamMunicipalMAAirport : Ind Airport ;
+
+  fun ChathamSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ChaurjhariAirport : Ind Airport ;
+
+  fun ChautauquaCountyDunkirkNYAirport : Ind Airport ;
+
+  fun ChautauquaCountyJamestownNYAirport : Ind Airport ;
+
+  fun ChavesAirport : Ind Airport ;
+
+  fun CheboksaryChuvashiaAirport : Ind Airport ;
+
+  fun ChefornakAKAirport : Ind Airport ;
+
+  fun ChehalisCentraliaWAAirport : Ind Airport ;
+
+  fun ChejuAirport : Ind Airport ;
+
+  fun ChelyabinskChelyabinskAirport : Ind Airport ;
+
+  fun ChenaHotSpringsAKAirport : Ind Airport ;
+
+  fun ChengduAirport : Ind Airport ;
+
+  fun ChengtehAirport : Ind Airport ;
+
+  fun ChennaultIndustrialAirparkLAAirport : Ind Airport ;
+
+  fun CherawMunicipalSCAirport : Ind Airport ;
+
+  fun CherkasyCherkasyAirport : Ind Airport ;
+
+  fun ChernihivChernigovChernihivAirport : Ind Airport ;
+
+  fun ChernivtsiChernovtsyChernivtsiAirport : Ind Airport ;
+
+  fun ChernofskiHarborSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun CherokeeMunicipalIAAirport : Ind Airport ;
+
+  fun CherokeeSoundAirport : Ind Airport ;
+
+  fun CherokeeVillageARAirport : Ind Airport ;
+
+  fun CherokeeVillageHeliportARAirport : Ind Airport ;
+
+  fun CherrabunWesternAustraliaAirport : Ind Airport ;
+
+  fun CherribahQueenslandAirport : Ind Airport ;
+
+  fun ChesapeakeMunicipalVAAirport : Ind Airport ;
+
+  fun ChesapeakeOHHuntingtonAirport : Ind Airport ;
+
+  fun ChesterAirport : Ind Airport ;
+
+  fun ChesterCountyGOCarlsonPAAirport : Ind Airport ;
+
+  fun ChetumalAirport : Ind Airport ;
+
+  fun CheyenneWYAirport : Ind Airport ;
+
+  fun ChiangMaiInternationalChiangMaiAirport : Ind Airport ;
+
+  fun ChiangRaiINternationalChiangRaiAirport : Ind Airport ;
+
+  fun ChiayiAirport : Ind Airport ;
+
+  fun ChichenItzaAirport : Ind Airport ;
+
+  fun ChickashaMunicipalOKAirport : Ind Airport ;
+
+  fun ChickenAKAirport : Ind Airport ;
+
+  fun ChiclayoAirport : Ind Airport ;
+
+  fun ChicoMunicipalCAAirport : Ind Airport ;
+
+  fun ChievresAirport : Ind Airport ;
+
+  fun ChifengAirport : Ind Airport ;
+
+  fun ChignikAKAirport : Ind Airport ;
+
+  fun ChignikBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ChignikFisheriesAKAirport : Ind Airport ;
+
+  fun ChignikLagoonAKAirport : Ind Airport ;
+
+  fun ChigorodoAirport : Ind Airport ;
+
+  fun ChilasAirport : Ind Airport ;
+
+  fun ChildressMunicipalTXAirport : Ind Airport ;
+
+  fun ChileChicoAirport : Ind Airport ;
+
+  fun ChilekaBlantyreAirport : Ind Airport ;
+
+  fun ChilkoLakeAerodromeBCAirport : Ind Airport ;
+
+  fun ChiloquinStateORAirport : Ind Airport ;
+
+  fun ChimboteAirport : Ind Airport ;
+
+  fun ChimbuKundiawaAirport : Ind Airport ;
+
+  fun ChinaBasinHeliportCAAirport : Ind Airport ;
+
+  fun ChinchillaAirport : Ind Airport ;
+
+  fun ChindeAirport : Ind Airport ;
+
+  fun ChingolaAirport : Ind Airport ;
+
+  fun ChinguittiAirport : Ind Airport ;
+
+  fun ChinhaeAirport : Ind Airport ;
+
+  fun ChinjuAirport : Ind Airport ;
+
+  fun ChinoCAAirport : Ind Airport ;
+
+  fun ChiosAirport : Ind Airport ;
+
+  fun ChipataAirport : Ind Airport ;
+
+  fun ChippewaCountyInternationalMIAirport : Ind Airport ;
+
+  fun ChippewaValleyRegionalWIAirport : Ind Airport ;
+
+  fun ChiquimulaAirport : Ind Airport ;
+
+  fun ChiredziBuffaloRangeAirport : Ind Airport ;
+
+  fun ChisanaAKAirport : Ind Airport ;
+
+  fun ChisholmHibbingMNAirport : Ind Airport ;
+
+  fun ChisinauKishineyAirport : Ind Airport ;
+
+  fun ChistochinaAKAirport : Ind Airport ;
+
+  fun ChitinaAKAirport : Ind Airport ;
+
+  fun ChitipaAirport : Ind Airport ;
+
+  fun ChitoseSapporoAirport : Ind Airport ;
+
+  fun ChitralAirport : Ind Airport ;
+
+  fun ChivoloAirport : Ind Airport ;
+
+  fun ChocHeliportCAAirport : Ind Airport ;
+
+  fun ChoiseulBayAirport : Ind Airport ;
+
+  fun CholetAirport : Ind Airport ;
+
+  fun ChomleyAKAirport : Ind Airport ;
+
+  fun ChongqingAirport : Ind Airport ;
+
+  fun ChonjuAirport : Ind Airport ;
+
+  fun ChristchurchInternationalChristchurchAirport : Ind Airport ;
+
+  fun ChristianshabAirport : Ind Airport ;
+
+  fun ChristmasCreekWesternAustraliaAirport : Ind Airport ;
+
+  fun ChuathbalukAKAirport : Ind Airport ;
+
+  fun ChubCayBerryAirport : Ind Airport ;
+
+  fun CiampinoRomaRomeAirport : Ind Airport ;
+
+  fun CiciaAirport : Ind Airport ;
+
+  fun CiegodeAvilaAirport : Ind Airport ;
+
+  fun CienfuegosAirport : Ind Airport ;
+
+  fun CigliAirBaseIzmirAirport : Ind Airport ;
+
+  fun CilacapJavaAirport : Ind Airport ;
+
+  fun CimitarraAirport : Ind Airport ;
+
+  fun CircleCityAKAirport : Ind Airport ;
+
+  fun CircleHotSpringsAKAirport : Ind Airport ;
+
+  fun CirebonAirport : Ind Airport ;
+
+  fun CiticorpHeliportCAAirport : Ind Airport ;
+
+  fun CityofColoradoSpringsMunicipalCOAirport : Ind Airport ;
+
+  fun CityofIndustryCivicFinancialHeliportCAAirport : Ind Airport ;
+
+  fun CiudadAcunaAirport : Ind Airport ;
+
+  fun CiudadBolivarAirport : Ind Airport ;
+
+  fun CiudadConstitucionAirport : Ind Airport ;
+
+  fun CiudadGuayanaAirport : Ind Airport ;
+
+  fun CiudadObregonAirport : Ind Airport ;
+
+  fun CiudadVictoriaAirport : Ind Airport ;
+
+  fun CiudaddelCarmenAirport : Ind Airport ;
+
+  fun CiudaddelEsteAirport : Ind Airport ;
+
+  fun ClaremontMunicipalNHAirport : Ind Airport ;
+
+  fun ClarkCountyINAirport : Ind Airport ;
+
+  fun ClarkFieldLuzonAirport : Ind Airport ;
+
+  fun ClarksPointAKAirport : Ind Airport ;
+
+  fun ClayCenterMunicipalKSAirport : Ind Airport ;
+
+  fun ClaytonMunicipalAirparkNMAirport : Ind Airport ;
+
+  fun ClearLakeAKAirport : Ind Airport ;
+
+  fun ClearwaterAirParkFLAirport : Ind Airport ;
+
+  fun ClemsonOconeeCountySCAirport : Ind Airport ;
+
+  fun ClermontQueenslandAirport : Ind Airport ;
+
+  fun CleveSouthAustraliaAirport : Ind Airport ;
+
+  fun ClevelandHopkinsInternationalOHAirport : Ind Airport ;
+
+  fun CliftonHillsSouthAustraliaAirport : Ind Airport ;
+
+  fun ClintonMunicipalIAAirport : Ind Airport ;
+
+  fun ClintonMunicipalOKAirport : Ind Airport ;
+
+  fun ClintonShermanOKAirport : Ind Airport ;
+
+  fun ClintonvilleMunicipalWIAirport : Ind Airport ;
+
+  fun CloncurryQueenslandAirport : Ind Airport ;
+
+  fun ClorindaAirport : Ind Airport ;
+
+  fun ClovisMunicipalNMAirport : Ind Airport ;
+
+  fun ClujNapocaAirport : Ind Airport ;
+
+  fun ClunyQueenslandAirport : Ind Airport ;
+
+  fun CoalHarbourWaterAerodromeBCAirport : Ind Airport ;
+
+  fun CoalingaMunicipalCAAirport : Ind Airport ;
+
+  fun CoariAMAirport : Ind Airport ;
+
+  fun CobanAirport : Ind Airport ;
+
+  fun CobarNewSouthWalesAirport : Ind Airport ;
+
+  fun CobijaAirport : Ind Airport ;
+
+  fun CochinAirport : Ind Airport ;
+
+  fun CoconutIslandQueenslandAirport : Ind Airport ;
+
+  fun CocosIslandsCocosKeelingIslandsAirport : Ind Airport ;
+
+  fun CodazziAirport : Ind Airport ;
+
+  fun CoenQueenslandAirport : Ind Airport ;
+
+  fun CoeurdAleneAirTerminalIDAirport : Ind Airport ;
+
+  fun CoffeePointAKAirport : Ind Airport ;
+
+  fun CoffeyvilleMunicipalKSAirport : Ind Airport ;
+
+  fun CoffmanCoveSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun CoffsHarbourNewSouthWalesAirport : Ind Airport ;
+
+  fun CognacAirport : Ind Airport ;
+
+  fun CoimbatoreAirport : Ind Airport ;
+
+  fun CoimbraAirport : Ind Airport ;
+
+  fun ColdBayAKAirport : Ind Airport ;
+
+  fun ColdfootAKAirport : Ind Airport ;
+
+  fun ColemanMunicipalTXAirport : Ind Airport ;
+
+  fun ColimaAirport : Ind Airport ;
+
+  fun CollIslandAirport : Ind Airport ;
+
+  fun CollarenebriNewSouthWalesAirport : Ind Airport ;
+
+  fun CollegeParkMDAirport : Ind Airport ;
+
+  fun CollieWesternAustraliaAirport : Ind Airport ;
+
+  fun CollinsvilleQueenslandAirport : Ind Airport ;
+
+  fun ColmarAirport : Ind Airport ;
+
+  fun ColoniaAirport : Ind Airport ;
+
+  fun ColoniaCatrielAirport : Ind Airport ;
+
+  fun ColonsayScotlandAirport : Ind Airport ;
+
+  fun ColoradoCreekAKAirport : Ind Airport ;
+
+  fun ColtishallAirport : Ind Airport ;
+
+  fun ColumbiaCAAirport : Ind Airport ;
+
+  fun ColumbiaMetropolitanSCAirport : Ind Airport ;
+
+  fun ColumbiaOwensDowntownSCAirport : Ind Airport ;
+
+  fun ColumbiaRegionalMOAirport : Ind Airport ;
+
+  fun ColumbusAirForceBaseMSAirport : Ind Airport ;
+
+  fun ColumbusMetropolitanGAAirport : Ind Airport ;
+
+  fun ColumbusMunicipalINAirport : Ind Airport ;
+
+  fun ColumbusMunicipalNMAirport : Ind Airport ;
+
+  fun ColvilleRiverAKAirport : Ind Airport ;
+
+  fun ComandanteEsporaBahiaBlancaAirport : Ind Airport ;
+
+  fun ComillaAirport : Ind Airport ;
+
+  fun ComisoAirport : Ind Airport ;
+
+  fun CommerceBusinessParkHeliportCAAirport : Ind Airport ;
+
+  fun CommodoreCenterHeliportCAAirport : Ind Airport ;
+
+  fun ComodoroPierresConcordiaAirport : Ind Airport ;
+
+  fun ComptonCAAirport : Ind Airport ;
+
+  fun ConceicaoPBAirport : Ind Airport ;
+
+  fun ConcepcionAirport : Ind Airport ;
+
+  fun ConcordMunicipalNHAirport : Ind Airport ;
+
+  fun ConcordiaAMAirport : Ind Airport ;
+
+  fun CondobolinNewSouthWalesAirport : Ind Airport ;
+
+  fun CondotoAirport : Ind Airport ;
+
+  fun ConfinsMGAirport : Ind Airport ;
+
+  fun ConfrezaAirport : Ind Airport ;
+
+  fun CongoTownAirport : Ind Airport ;
+
+  fun ConnaughtAirport : Ind Airport ;
+
+  fun ConquistaMGAirport : Ind Airport ;
+
+  fun ConstanzaAirport : Ind Airport ;
+
+  fun ContamanaAirport : Ind Airport ;
+
+  fun ConverseCountyWYAirport : Ind Airport ;
+
+  fun ConwayHorryCountySCAirport : Ind Airport ;
+
+  fun CooberPedySouthAustraliaAirport : Ind Airport ;
+
+  fun CoochBeharAirport : Ind Airport ;
+
+  fun CooindaNorthernTerritoryAirport : Ind Airport ;
+
+  fun CookMunicipalMNAirport : Ind Airport ;
+
+  fun CooktownQueenslandAirport : Ind Airport ;
+
+  fun CoolahNewSouthWalesAirport : Ind Airport ;
+
+  fun CoolawanyahWesternAustraliaAirport : Ind Airport ;
+
+  fun CoolibahNorthernTerritoryAirport : Ind Airport ;
+
+  fun CoonabarabranNewSouthWalesAirport : Ind Airport ;
+
+  fun CoonambleNewSouthWalesAirport : Ind Airport ;
+
+  fun CoorabieAirport : Ind Airport ;
+
+  fun CootamundraNewSouthWalesAirport : Ind Airport ;
+
+  fun CopiapoAirport : Ind Airport ;
+
+  fun CopperCenter2AKAirport : Ind Airport ;
+
+  fun CoquimboAirport : Ind Airport ;
+
+  fun CorazondeJesusAirport : Ind Airport ;
+
+  fun CorcoranCAAirport : Ind Airport ;
+
+  fun CordovaMunicipalAKAirport : Ind Airport ;
+
+  fun CoritgoBlancoAirport : Ind Airport ;
+
+  fun CornelioProcopioPRAirport : Ind Airport ;
+
+  fun CornerBayAKAirport : Ind Airport ;
+
+  fun CoroAirport : Ind Airport ;
+
+  fun CoromandelAirport : Ind Airport ;
+
+  fun CoronelFSVignetaIquitosAirport : Ind Airport ;
+
+  fun CorowaNewSouthWalesAirport : Ind Airport ;
+
+  fun CorozalAirport : Ind Airport ;
+
+  fun CorozalAirportColombia : Ind Airport ;
+
+  fun CorpusChristiInternationalTXAirport : Ind Airport ;
+
+  fun CorrientesAirport : Ind Airport ;
+
+  fun CortezMontezumaCountyCOAirport : Ind Airport ;
+
+  fun CortinadAmpezzoAirport : Ind Airport ;
+
+  fun CortlandCountyAirportChaseFieldNYAirport : Ind Airport ;
+
+  fun CorumbaSPAirport : Ind Airport ;
+
+  fun CorvallisMunicipalORAirport : Ind Airport ;
+
+  fun CorvoIslandAzoresAirport : Ind Airport ;
+
+  fun CostaMarquesROAirport : Ind Airport ;
+
+  fun CotabatoAirport : Ind Airport ;
+
+  fun CoteduRifAlHoceimaAirport : Ind Airport ;
+
+  fun CottonwoodAZAirport : Ind Airport ;
+
+  fun CotullaLaSalleCountyTXAirport : Ind Airport ;
+
+  fun CoulterFieldTXAirport : Ind Airport ;
+
+  fun CouncilAKAirport : Ind Airport ;
+
+  fun CouncilBluffsMunicipalIAAirport : Ind Airport ;
+
+  fun CountyMemorialMOAirport : Ind Airport ;
+
+  fun CourchevalAirport : Ind Airport ;
+
+  fun CovenasAirport : Ind Airport ;
+
+  fun CovilhaAirport : Ind Airport ;
+
+  fun CovingtonKYCincinnatiAirport : Ind Airport ;
+
+  fun CowarieSouthAustraliaAirport : Ind Airport ;
+
+  fun CowellSouthAustraliaAirport : Ind Airport ;
+
+  fun CowraNewSouthWalesAirport : Ind Airport ;
+
+  fun CoxsBazarAirport : Ind Airport ;
+
+  fun CoyhaiqueAirport : Ind Airport ;
+
+  fun CoyolesAirport : Ind Airport ;
+
+  fun CozadMunicipalNEAirport : Ind Airport ;
+
+  fun CozumelAirport : Ind Airport ;
+
+  fun CradockAirport : Ind Airport ;
+
+  fun CraftonIslandAKAirport : Ind Airport ;
+
+  fun CraigCoveAirport : Ind Airport ;
+
+  fun CraigMoffatCOAirport : Ind Airport ;
+
+  fun CraigMunicipalFLAirport : Ind Airport ;
+
+  fun CraigSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun CraiovaAirport : Ind Airport ;
+
+  fun CramFieldNEAirport : Ind Airport ;
+
+  fun CraneCountyTXAirport : Ind Airport ;
+
+  fun CraneIslandWAAirport : Ind Airport ;
+
+  fun CravenCountyRegionalNCAirport : Ind Airport ;
+
+  fun CrawfordsvilleMunicipalINAirport : Ind Airport ;
+
+  fun CresswellDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun CrestonMunicipalIAAirport : Ind Airport ;
+
+  fun CrisciumaSCAirport : Ind Airport ;
+
+  fun CrispCountyCordeleGAAirport : Ind Airport ;
+
+  fun CristoforoColomboSeatriGenoaGenovaAirport : Ind Airport ;
+
+  fun CrokerIslandNorthernTerritoryAirport : Ind Airport ;
+
+  fun CromartyAirport : Ind Airport ;
+
+  fun CrookedCreekAKAirport : Ind Airport ;
+
+  fun CrookedIslandCrookedAirport : Ind Airport ;
+
+  fun CrookstonMunicipalKirkwoodFieldMNAirport : Ind Airport ;
+
+  fun CrossCityFLAirport : Ind Airport ;
+
+  fun CrossvilleMemorialTNAirport : Ind Airport ;
+
+  fun CrotoneAirport : Ind Airport ;
+
+  fun CroydonQueenslandAirport : Ind Airport ;
+
+  fun CruzAltaRSAirport : Ind Airport ;
+
+  fun CruzeirodoSulACAirport : Ind Airport ;
+
+  fun CrystalLakePAAirport : Ind Airport ;
+
+  fun CuambaNovaFreixoAirport : Ind Airport ;
+
+  fun CubeCoveAKAirport : Ind Airport ;
+
+  fun CuddapahAirport : Ind Airport ;
+
+  fun CuddihyFieldTXAirport : Ind Airport ;
+
+  fun CueWesternAustraliaAirport : Ind Airport ;
+
+  fun CuencaAirport : Ind Airport ;
+
+  fun CuiabaMTAirport : Ind Airport ;
+
+  fun CuitoCuanavaleAirport : Ind Airport ;
+
+  fun CulebraCulebraAirport : Ind Airport ;
+
+  fun CulionAirport : Ind Airport ;
+
+  fun CulverCityCAAirport : Ind Airport ;
+
+  fun CumanaAirport : Ind Airport ;
+
+  fun CumberlandMDAirport : Ind Airport ;
+
+  fun CumbicaSPAirport : Ind Airport ;
+
+  fun CuneoAirport : Ind Airport ;
+
+  fun CunnamullaQueenslandAirport : Ind Airport ;
+
+  fun CurrilloAirport : Ind Airport ;
+
+  fun CurtisFieldTXAirport : Ind Airport ;
+
+  fun CururupuMAAirport : Ind Airport ;
+
+  fun CushingMunicipalOKAirport : Ind Airport ;
+
+  fun CutralCoAirport : Ind Airport ;
+
+  fun CuyahogaCountyOHAirport : Ind Airport ;
+
+  fun CuzcoAirport : Ind Airport ;
+
+  fun CzestochowaAirport : Ind Airport ;
+
+  fun DFMalanCapeTownAirport : Ind Airport ;
+
+  fun DPSHeliportStCroixAirport : Ind Airport ;
+
+  fun DaLatAirport : Ind Airport ;
+
+  fun DaNangAirport : Ind Airport ;
+
+  fun DabajoroAirport : Ind Airport ;
+
+  fun DabbaAirport : Ind Airport ;
+
+  fun DaduAirport : Ind Airport ;
+
+  fun DaetAirport : Ind Airport ;
+
+  fun DahlCreekAKAirport : Ind Airport ;
+
+  fun DahlgrenVAUSNavalSurfaceWeaponsCenterAirport : Ind Airport ;
+
+  fun DajaliGeiloAirport : Ind Airport ;
+
+  fun DajarraQueenslandAirport : Ind Airport ;
+
+  fun DalamanAirport : Ind Airport ;
+
+  fun DalbandinAirport : Ind Airport ;
+
+  fun DalbertisAirport : Ind Airport ;
+
+  fun DalbyQueenslandAirport : Ind Airport ;
+
+  fun DalhartMunicipalTXAirport : Ind Airport ;
+
+  fun DalianAirport : Ind Airport ;
+
+  fun DallasDowntownHeliportTXAirport : Ind Airport ;
+
+  fun DallasFortWorthInternationalTXAirport : Ind Airport ;
+
+  fun DallasLoveFieldTXAirport : Ind Airport ;
+
+  fun DallasNorthTXAirport : Ind Airport ;
+
+  fun DaloaAirport : Ind Airport ;
+
+  fun DaltonMunicipalGAAirport : Ind Airport ;
+
+  fun DalyRiverNorthernTerritoryAirport : Ind Airport ;
+
+  fun DalyWatersNorthernTerritoryAirport : Ind Airport ;
+
+  fun DamascusAirport : Ind Airport ;
+
+  fun DananeAirport : Ind Airport ;
+
+  fun DanburyCTAirport : Ind Airport ;
+
+  fun DanburyMunicipalCTAirport : Ind Airport ;
+
+  fun DandongAirport : Ind Airport ;
+
+  fun DangAirport : Ind Airport ;
+
+  fun DangerBayAKAirport : Ind Airport ;
+
+  fun DangrigaAirport : Ind Airport ;
+
+  fun DanielFieldGAAirport : Ind Airport ;
+
+  fun DannellyAirNationalGuardBaseOperationsALAirport : Ind Airport ;
+
+  fun DansvilleMunicipalNYAirport : Ind Airport ;
+
+  fun DanvilleRegionalVAAirport : Ind Airport ;
+
+  fun DaparizoAirport : Ind Airport ;
+
+  fun DarchulaAirport : Ind Airport ;
+
+  fun DaresSalaamAirport : Ind Airport ;
+
+  fun DargavilleAirport : Ind Airport ;
+
+  fun DarjeelingAirport : Ind Airport ;
+
+  fun DaruAirport : Ind Airport ;
+
+  fun DaruAirportSierraLeone : Ind Airport ;
+
+  fun DarwazAirport : Ind Airport ;
+
+  fun DatadawaiAirport : Ind Airport ;
+
+  fun DathinaAirport : Ind Airport ;
+
+  fun DatongAirport : Ind Airport ;
+
+  fun DauanIslandQueenslandAirport : Ind Airport ;
+
+  fun DaugavpilsAirport : Ind Airport ;
+
+  fun DaupAirport : Ind Airport ;
+
+  fun DavenportDownsQueenslandAirport : Ind Airport ;
+
+  fun DavenportMunicipalIAAirport : Ind Airport ;
+
+  fun DavidWayneHooksMemorialTXAirport : Ind Airport ;
+
+  fun DaviessCountyINAirport : Ind Airport ;
+
+  fun DavisMonthanAirForceBaseAZAirport : Ind Airport ;
+
+  fun DavisonArmyAirFieldVAAirport : Ind Airport ;
+
+  fun DawsonCommunityMTAirport : Ind Airport ;
+
+  fun DaxianAirport : Ind Airport ;
+
+  fun DaydreamIslandQueenslandAirport : Ind Airport ;
+
+  fun DayongAirport : Ind Airport ;
+
+  fun DaytonaBeachRegionalFLAirport : Ind Airport ;
+
+  fun DeKalbTaylorMunicipalILAirport : Ind Airport ;
+
+  fun DearbornHelistopMIAirport : Ind Airport ;
+
+  fun DeathValleyCAAirport : Ind Airport ;
+
+  fun DebapareAirport : Ind Airport ;
+
+  fun DeboyneAirport : Ind Airport ;
+
+  fun DebraMarcosAirport : Ind Airport ;
+
+  fun DebraTaborAirport : Ind Airport ;
+
+  fun DebrecenAirport : Ind Airport ;
+
+  fun DecaturCountyIndustrialAirParkGAAirport : Ind Airport ;
+
+  fun DecaturHiWayINAirport : Ind Airport ;
+
+  fun DecaturILAirport : Ind Airport ;
+
+  fun DecaturShoresWAAirport : Ind Airport ;
+
+  fun DecorahMunicipalIAAirport : Ind Airport ;
+
+  fun DedougouAirport : Ind Airport ;
+
+  fun DeerParkNYAirport : Ind Airport ;
+
+  fun DeeringAKAirport : Ind Airport ;
+
+  fun DefianceMemorialOHAirport : Ind Airport ;
+
+  fun DegahburAirport : Ind Airport ;
+
+  fun DehradunAirport : Ind Airport ;
+
+  fun DeirezzurAirport : Ind Airport ;
+
+  fun DelRioInternationalTXAirport : Ind Airport ;
+
+  fun DelawareAirparkDEAirport : Ind Airport ;
+
+  fun DelawareMunicipalOHAirport : Ind Airport ;
+
+  fun DelissavilleNorthernTerritoryAirport : Ind Airport ;
+
+  fun DeltaCountyMIAirport : Ind Airport ;
+
+  fun DeltaDownsQueenslandAirport : Ind Airport ;
+
+  fun DeltaJunctionAKAirport : Ind Airport ;
+
+  fun DeltaMunicipalUTAirport : Ind Airport ;
+
+  fun DembidolloAirport : Ind Airport ;
+
+  fun DemingMunicipalNMAirport : Ind Airport ;
+
+  fun DenHaagTheHagueHilversumAirport : Ind Airport ;
+
+  fun DenhamWesternAustraliaAirport : Ind Airport ;
+
+  fun DeniliquinNewSouthWalesAirport : Ind Airport ;
+
+  fun DenisonMunicipalIAAirport : Ind Airport ;
+
+  fun DenizliAirport : Ind Airport ;
+
+  fun DennisIslandAirport : Ind Airport ;
+
+  fun DentonMunicipalTXAirport : Ind Airport ;
+
+  fun DeolsChateaurouxAirport : Ind Airport ;
+
+  fun DeraIsmailKhanAirport : Ind Airport ;
+
+  fun DerbyWesternAustraliaAirport : Ind Airport ;
+
+  fun DerimAirport : Ind Airport ;
+
+  fun DernaAirport : Ind Airport ;
+
+  fun DesMoinesInternationalIAAirport : Ind Airport ;
+
+  fun DesertRockNVAirport : Ind Airport ;
+
+  fun DesrochesAirport : Ind Airport ;
+
+  fun DessieAirport : Ind Airport ;
+
+  fun DestinFortWaltonBeachFLAirport : Ind Airport ;
+
+  fun DetroitCityMIAirport : Ind Airport ;
+
+  fun DetroitLakesMNAirport : Ind Airport ;
+
+  fun DetroitMetropolitanWayneCountyMIAirport : Ind Airport ;
+
+  fun DeurneAntwerpenAntwerpAirport : Ind Airport ;
+
+  fun DeuxAlpesAirport : Ind Airport ;
+
+  fun DevaAirport : Ind Airport ;
+
+  fun DevilsLakeMunicipalNDAirport : Ind Airport ;
+
+  fun DevonportTasmaniaAirport : Ind Airport ;
+
+  fun DexterMunicipalMOAirport : Ind Airport ;
+
+  fun DhahranAirport : Ind Airport ;
+
+  fun DhalaAirport : Ind Airport ;
+
+  fun DhamarAirport : Ind Airport ;
+
+  fun DhanbadAirport : Ind Airport ;
+
+  fun DhangarhiAirport : Ind Airport ;
+
+  fun DharamsalaAirport : Ind Airport ;
+
+  fun DiamantinaLakesQueenslandAirport : Ind Airport ;
+
+  fun DiamantinoMTAirport : Ind Airport ;
+
+  fun DianopolisGOAirport : Ind Airport ;
+
+  fun DiapagaAirport : Ind Airport ;
+
+  fun DibaaAirport : Ind Airport ;
+
+  fun DibrugarhAirport : Ind Airport ;
+
+  fun DickinsonMunicipalNDAirport : Ind Airport ;
+
+  fun DiegoAracenaIquiqueAirport : Ind Airport ;
+
+  fun DiegoJimenezTorresFajardoAirport : Ind Airport ;
+
+  fun DieppeAirport : Ind Airport ;
+
+  fun DietrichAKAirport : Ind Airport ;
+
+  fun DiliAirport : Ind Airport ;
+
+  fun DillantHopkinsNHAirport : Ind Airport ;
+
+  fun DillinghamAKAirport : Ind Airport ;
+
+  fun DillinghamAirForceBaseHIAirport : Ind Airport ;
+
+  fun DillonCountySCAirport : Ind Airport ;
+
+  fun DillonMTAirport : Ind Airport ;
+
+  fun DillonsBayAirport : Ind Airport ;
+
+  fun DimapurAirport : Ind Airport ;
+
+  fun DimmitCountyTXAirport : Ind Airport ;
+
+  fun DinajpurAirport : Ind Airport ;
+
+  fun DinangatAirport : Ind Airport ;
+
+  fun DinderAirport : Ind Airport ;
+
+  fun DiosAirport : Ind Airport ;
+
+  fun DipologAirport : Ind Airport ;
+
+  fun DirranbandiQueenslandAirport : Ind Airport ;
+
+  fun DivinopolisMGAirport : Ind Airport ;
+
+  fun DiwanofRoyalCourtAirport : Ind Airport ;
+
+  fun DixieQueenslandAirport : Ind Airport ;
+
+  fun DiyarbakirAirport : Ind Airport ;
+
+  fun DjambalaAirport : Ind Airport ;
+
+  fun DjerbaZarzisDjerbaJerbaAirport : Ind Airport ;
+
+  fun DjoemoeAirport : Ind Airport ;
+
+  fun DjougouAirport : Ind Airport ;
+
+  fun DjupivogurAirport : Ind Airport ;
+
+  fun DnipropetrovskDnepropetrovskDnipropetrovskAirport : Ind Airport ;
+
+  fun DoanyAirport : Ind Airport ;
+
+  fun DoboAruIslandsAirport : Ind Airport ;
+
+  fun DodgeCityRegionalKSAirport : Ind Airport ;
+
+  fun DodoimaAirport : Ind Airport ;
+
+  fun DodomaAirport : Ind Airport ;
+
+  fun DohaAirport : Ind Airport ;
+
+  fun DoiniAirport : Ind Airport ;
+
+  fun DolisieAirport : Ind Airport ;
+
+  fun DolomiAKAirport : Ind Airport ;
+
+  fun DolpaAirport : Ind Airport ;
+
+  fun DomodemovoMoscowAirport : Ind Airport ;
+
+  fun DonMuangInternationalBangkokAirport : Ind Airport ;
+
+  fun DonaldsonCenterSCAirport : Ind Airport ;
+
+  fun DoncasterAirport : Ind Airport ;
+
+  fun DonetskDonetskAirport : Ind Airport ;
+
+  fun DongaraWesternAustraliaAirport : Ind Airport ;
+
+  fun DongolaAirport : Ind Airport ;
+
+  fun DoomadgeeMissionQueenslandAirport : Ind Airport ;
+
+  fun DoraBayAKAirport : Ind Airport ;
+
+  fun DoradoAirportprivateDoradoAirport : Ind Airport ;
+
+  fun DorchesterCountySCAirport : Ind Airport ;
+
+  fun DoriAirport : Ind Airport ;
+
+  fun DornochAirport : Ind Airport ;
+
+  fun DorobisoroAirport : Ind Airport ;
+
+  fun DorraAirport : Ind Airport ;
+
+  fun DortmundAirport : Ind Airport ;
+
+  fun DorundaStationQueenslandAirport : Ind Airport ;
+
+  fun DosLagunasAirport : Ind Airport ;
+
+  fun DothanALAirport : Ind Airport ;
+
+  fun DoualaAirport : Ind Airport ;
+
+  fun DouglasMunicipalAZAirport : Ind Airport ;
+
+  fun DouglasMunicipalGAAirport : Ind Airport ;
+
+  fun DouradosMGAirport : Ind Airport ;
+
+  fun DoverAirForceBaseDEAirport : Ind Airport ;
+
+  fun DowntownAirparkOKAirport : Ind Airport ;
+
+  fun DowntownCAAirport : Ind Airport ;
+
+  fun DowntownHeliportMNAirport : Ind Airport ;
+
+  fun DrakeFieldARAirport : Ind Airport ;
+
+  fun DramaAirport : Ind Airport ;
+
+  fun DresdenAirport : Ind Airport ;
+
+  fun DrietabbetjeAirport : Ind Airport ;
+
+  fun DriftRiverAKAirport : Ind Airport ;
+
+  fun DriftwoodBayAKAirport : Ind Airport ;
+
+  fun DrumduffQueenslandAirport : Ind Airport ;
+
+  fun DrummondIslandMIAirport : Ind Airport ;
+
+  fun DrummondMTAirport : Ind Airport ;
+
+  fun DschangAirport : Ind Airport ;
+
+  fun DuBoisJeffersonCountyPAAirport : Ind Airport ;
+
+  fun DubaiAirport : Ind Airport ;
+
+  fun DubboNewSouthWalesAirport : Ind Airport ;
+
+  fun DublinAirport : Ind Airport ;
+
+  fun DuboisMunicipalIDAirport : Ind Airport ;
+
+  fun DubrovnikAirport : Ind Airport ;
+
+  fun DubuqueRegionalIAAirport : Ind Airport ;
+
+  fun DuckNCAirport : Ind Airport ;
+
+  fun DuisburgAirport : Ind Airport ;
+
+  fun DulkaninnaSouthAustraliaAirport : Ind Airport ;
+
+  fun DuluthInternationalMNAirport : Ind Airport ;
+
+  fun DumDumInternationalCalcuttaAirport : Ind Airport ;
+
+  fun DumagueteAirport : Ind Airport ;
+
+  fun DumaiAirport : Ind Airport ;
+
+  fun DumasMunicipalTXAirport : Ind Airport ;
+
+  fun DumpuAirport : Ind Airport ;
+
+  fun DunbarQueenslandAirport : Ind Airport ;
+
+  fun DuncanTownRaggedAirport : Ind Airport ;
+
+  fun DundasAirport : Ind Airport ;
+
+  fun DundeeAirport : Ind Airport ;
+
+  fun DundoAirport : Ind Airport ;
+
+  fun DunedinAirport : Ind Airport ;
+
+  fun DunhuangAirport : Ind Airport ;
+
+  fun DunkIslandQueenslandAirport : Ind Airport ;
+
+  fun DunkerqueCalaisAirport : Ind Airport ;
+
+  fun DupageILAirport : Ind Airport ;
+
+  fun DurangoAirport : Ind Airport ;
+
+  fun DurangoLaPlataCountyCOAirport : Ind Airport ;
+
+  fun DurhamDownsQueenslandAirport : Ind Airport ;
+
+  fun DurrieQueenslandAirport : Ind Airport ;
+
+  fun DushanbeKaroteginAirport : Ind Airport ;
+
+  fun DwightILAirport : Ind Airport ;
+
+  fun DyceScotlandAirport : Ind Airport ;
+
+  fun DyessAirForceBaseTXAirport : Ind Airport ;
+
+  fun DysartQueenslandAirport : Ind Airport ;
+
+  fun EagleAKAirport : Ind Airport ;
+
+  fun EagleAirParkTXAirport : Ind Airport ;
+
+  fun EagleCountyRegionalCOAirport : Ind Airport ;
+
+  fun EagleGroveMunicipalIAAirport : Ind Airport ;
+
+  fun EagleLakeTXAirport : Ind Airport ;
+
+  fun EaglePassMunicipalTXAirport : Ind Airport ;
+
+  fun EagleRiverUnionWIAirport : Ind Airport ;
+
+  fun EakerAirForceBaseARAirport : Ind Airport ;
+
+  fun EakerFieldOKAirport : Ind Airport ;
+
+  fun EarlHenryOKAirport : Ind Airport ;
+
+  fun East60thStreetHeliportNYAirport : Ind Airport ;
+
+  fun EastForkAKAirport : Ind Airport ;
+
+  fun EastGreenlandAirport : Ind Airport ;
+
+  fun EastHamptonNYAirport : Ind Airport ;
+
+  fun EastLondonAirport : Ind Airport ;
+
+  fun EastMidlandsDerbyAirport : Ind Airport ;
+
+  fun EasternSlopesRegionalMEAirport : Ind Airport ;
+
+  fun EasterwoodFieldTXAirport : Ind Airport ;
+
+  fun EastlandMunicipalTXAirport : Ind Airport ;
+
+  fun EastmanDodgeCountyGAAirport : Ind Airport ;
+
+  fun EastonMunicipalMDAirport : Ind Airport ;
+
+  fun EastonStateWAAirport : Ind Airport ;
+
+  fun EbadonAirport : Ind Airport ;
+
+  fun EbolowaAirport : Ind Airport ;
+
+  fun EchucaNewSouthWalesAirport : Ind Airport ;
+
+  fun EdDabbaAirport : Ind Airport ;
+
+  fun EdayAirport : Ind Airport ;
+
+  fun EdentonMunicipalNCAirport : Ind Airport ;
+
+  fun EdinburghScotlandAirport : Ind Airport ;
+
+  fun EdnaBayAKAirport : Ind Airport ;
+
+  fun EdwardRiverQueenslandAirport : Ind Airport ;
+
+  fun EdwardsAirForceBaseCAAirport : Ind Airport ;
+
+  fun EeideGroningenAirport : Ind Airport ;
+
+  fun EekAKAirport : Ind Airport ;
+
+  fun EfogiAirport : Ind Airport ;
+
+  fun EgedesmindeAirport : Ind Airport ;
+
+  fun EgegikAKAirport : Ind Airport ;
+
+  fun EgilsstadirAirport : Ind Airport ;
+
+  fun EglinAirForceAuxiliaryNr3DukeFLAirport : Ind Airport ;
+
+  fun EiaAirport : Ind Airport ;
+
+  fun EielsonAirForceBaseAKAirport : Ind Airport ;
+
+  fun EightFathombightAirport : Ind Airport ;
+
+  fun EinYahavAirport : Ind Airport ;
+
+  fun EinasleighQueenslandAirport : Ind Airport ;
+
+  fun EindhovenAirport : Ind Airport ;
+
+  fun EirunepeAMAirport : Ind Airport ;
+
+  fun EkerekuAirport : Ind Airport ;
+
+  fun EkibastuzAirport : Ind Airport ;
+
+  fun EkukAKAirport : Ind Airport ;
+
+  fun EkwokAKAirport : Ind Airport ;
+
+  fun ElArishAirport : Ind Airport ;
+
+  fun ElBancoAirport : Ind Airport ;
+
+  fun ElBargeAirport : Ind Airport ;
+
+  fun ElBolsonAirport : Ind Airport ;
+
+  fun ElBormaAirport : Ind Airport ;
+
+  fun ElCajonCAAirport : Ind Airport ;
+
+  fun ElCampoMetroAirportIncTXAirport : Ind Airport ;
+
+  fun ElCharcoAirport : Ind Airport ;
+
+  fun ElCipresEnsenadaAirport : Ind Airport ;
+
+  fun ElDebbaAirport : Ind Airport ;
+
+  fun ElDoradoAirport : Ind Airport ;
+
+  fun ElEncantoAirport : Ind Airport ;
+
+  fun ElFasherAirport : Ind Airport ;
+
+  fun ElGeneinaAirport : Ind Airport ;
+
+  fun ElGoleaAirport : Ind Airport ;
+
+  fun ElMaitenAirport : Ind Airport ;
+
+  fun ElMellahAnnabaAirport : Ind Airport ;
+
+  fun ElMinyaAirport : Ind Airport ;
+
+  fun ElMonteCAAirport : Ind Airport ;
+
+  fun ElNaranjoAirport : Ind Airport ;
+
+  fun ElObeidAirport : Ind Airport ;
+
+  fun ElPasoInternationalTXAirport : Ind Airport ;
+
+  fun ElRealAirport : Ind Airport ;
+
+  fun ElRecreoAirport : Ind Airport ;
+
+  fun ElSalvadorAirport : Ind Airport ;
+
+  fun ElYopalAirport : Ind Airport ;
+
+  fun ElazigAirport : Ind Airport ;
+
+  fun ElbaIslandAirport : Ind Airport ;
+
+  fun ElchoIslandNorthernTerritoryAirport : Ind Airport ;
+
+  fun EldoradoAirport : Ind Airport ;
+
+  fun EldoradoBogotaAirport : Ind Airport ;
+
+  fun EldoretAirport : Ind Airport ;
+
+  fun EldredRockCoastGuardHeliportAKAirport : Ind Airport ;
+
+  fun ElfinCoveSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ElimAKAirport : Ind Airport ;
+
+  fun EliptaminAirport : Ind Airport ;
+
+  fun ElistaKalmykiaAirport : Ind Airport ;
+
+  fun EliyeSpringsAirport : Ind Airport ;
+
+  fun ElizabethCityCostGuardAirStationMunicipalNCAirport : Ind Airport ;
+
+  fun ElizabethFieldNYAirport : Ind Airport ;
+
+  fun ElkCityMunicipalOKAirport : Ind Airport ;
+
+  fun ElkedraNorthernTerritoryAirport : Ind Airport ;
+
+  fun ElkhartMortonCountyKSAirport : Ind Airport ;
+
+  fun ElkhartMunicipalINAirport : Ind Airport ;
+
+  fun ElkinsRandolphCountyJenningsRandolphFieldWVAirport : Ind Airport ;
+
+  fun ElkoMunicipalAirportJCHarrisFieldNVAirport : Ind Airport ;
+
+  fun EllAirport : Ind Airport ;
+
+  fun EllamarSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun EllenChurchFieldIAAirport : Ind Airport ;
+
+  fun EllingtonFieldTXAirport : Ind Airport ;
+
+  fun EllisrasAirport : Ind Airport ;
+
+  fun ElmasSardiniaAirport : Ind Airport ;
+
+  fun ElmendorfAirForceBaseAKAirport : Ind Airport ;
+
+  fun ElmiraCorningRegionalNYAirport : Ind Airport ;
+
+  fun ElorzaAirport : Ind Airport ;
+
+  fun EltariKupangAirport : Ind Airport ;
+
+  fun EltonHensleyMemorialMOAirport : Ind Airport ;
+
+  fun ElyAirportYellandFieldNVAirport : Ind Airport ;
+
+  fun EmaeAirport : Ind Airport ;
+
+  fun EmbarcaderoCAAirport : Ind Airport ;
+
+  fun EmbessaAirport : Ind Airport ;
+
+  fun EmdenAirport : Ind Airport ;
+
+  fun EmeraldQueenslandAirport : Ind Airport ;
+
+  fun EmeryvilleCAAirport : Ind Airport ;
+
+  fun EmirauAirport : Ind Airport ;
+
+  fun EmmetsburgMunicipalIAAirport : Ind Airport ;
+
+  fun EmmonakAKAirport : Ind Airport ;
+
+  fun EmoONAirport : Ind Airport ;
+
+  fun EmpangeniAirport : Ind Airport ;
+
+  fun EmporiaMunicipalKSAirport : Ind Airport ;
+
+  fun EmporiaMunicipalVAAirport : Ind Airport ;
+
+  fun EnarotaliAirport : Ind Airport ;
+
+  fun EncarnacionAirport : Ind Airport ;
+
+  fun EndeAirport : Ind Airport ;
+
+  fun EneabbaWesternAustraliaAirport : Ind Airport ;
+
+  fun EngatiAirport : Ind Airport ;
+
+  fun EnglishBayAKAirport : Ind Airport ;
+
+  fun EnisejskAirport : Ind Airport ;
+
+  fun EnitewokAirport : Ind Airport ;
+
+  fun EnontekioEnontekioeAirport : Ind Airport ;
+
+  fun EnschedeAirport : Ind Airport ;
+
+  fun EnshiAirport : Ind Airport ;
+
+  fun EnterpriseMunicipalALAirport : Ind Airport ;
+
+  fun EnuguAirport : Ind Airport ;
+
+  fun EpenaAirport : Ind Airport ;
+
+  fun EphrataMunicipalWAAirport : Ind Airport ;
+
+  fun EpiAirport : Ind Airport ;
+
+  fun EpinalAirport : Ind Airport ;
+
+  fun EpiskopiAirport : Ind Airport ;
+
+  fun ErandiqueAirport : Ind Airport ;
+
+  fun EraveAirport : Ind Airport ;
+
+  fun ErcanAirport : Ind Airport ;
+
+  fun ErechimRSAirport : Ind Airport ;
+
+  fun ErfurtAirport : Ind Airport ;
+
+  fun ErhacAirport : Ind Airport ;
+
+  fun ErieInternationalPAAirport : Ind Airport ;
+
+  fun ErigavoAirport : Ind Airport ;
+
+  fun ErldundaNorthernTerritoryAirport : Ind Airport ;
+
+  fun ErnabellaSouthAustraliaAirport : Ind Airport ;
+
+  fun ErnestoCortissozBarranquillaAirport : Ind Airport ;
+
+  fun EromangaQueenslandAirport : Ind Airport ;
+
+  fun ErosWindhoekAirport : Ind Airport ;
+
+  fun ErrachidiaAirport : Ind Airport ;
+
+  fun ErrolNHAirport : Ind Airport ;
+
+  fun ErumeAirport : Ind Airport ;
+
+  fun ErzincanAirport : Ind Airport ;
+
+  fun ErzurumAirport : Ind Airport ;
+
+  fun EsaAlaAirport : Ind Airport ;
+
+  fun EsbjergAirport : Ind Airport ;
+
+  fun EsenbogaAnkaraAirport : Ind Airport ;
+
+  fun EskilstunaAirport : Ind Airport ;
+
+  fun EskisehirAirport : Ind Airport ;
+
+  fun EsperadinhaBravaAirport : Ind Airport ;
+
+  fun EsperanceWesternAustraliaAirport : Ind Airport ;
+
+  fun EspinosaMGAirport : Ind Airport ;
+
+  fun EsquelAirport : Ind Airport ;
+
+  fun EssenAirport : Ind Airport ;
+
+  fun EssexCountyNJAirport : Ind Airport ;
+
+  fun EsseyNancyAirport : Ind Airport ;
+
+  fun EsthervilleMunicipalIAAirport : Ind Airport ;
+
+  fun EtadunnaSouthAustraliaAirport : Ind Airport ;
+
+  fun EuaAirport : Ind Airport ;
+
+  fun EuclaWesternAustraliaAirport : Ind Airport ;
+
+  fun EurekaNVAirport : Ind Airport ;
+
+  fun EuroBaselMulhouseAirport : Ind Airport ;
+
+  fun EvaDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun EvadaleLandingStripTXAirport : Ind Airport ;
+
+  fun EvansHeadNewSouthWalesAirport : Ind Airport ;
+
+  fun EvanstonUintaCountyBurnsFieldWYAirport : Ind Airport ;
+
+  fun EvansvilleRegionalINAirport : Ind Airport ;
+
+  fun EvelethVirginiaMunicipalMNAirport : Ind Airport ;
+
+  fun EvenesAirport : Ind Airport ;
+
+  fun EvreuxAirport : Ind Airport ;
+
+  fun EwerAirport : Ind Airport ;
+
+  fun EwoAirport : Ind Airport ;
+
+  fun ExcursionInletSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ExeterAirport : Ind Airport ;
+
+  fun ExmouthAirport : Ind Airport ;
+
+  fun FDRooseveltStEustathiusAirport : Ind Airport ;
+
+  fun FaatteAirport : Ind Airport ;
+
+  fun FabaliSiApiaAirport : Ind Airport ;
+
+  fun FadaNgourmaAirport : Ind Airport ;
+
+  fun FagurholsmyriAirport : Ind Airport ;
+
+  fun FairIsleAirport : Ind Airport ;
+
+  fun FairbanksInternationalAKAirport : Ind Airport ;
+
+  fun FairburyMunicipalNEAirport : Ind Airport ;
+
+  fun FairfieldCountySCAirport : Ind Airport ;
+
+  fun FairfieldMunicipalIAAirport : Ind Airport ;
+
+  fun FairfieldMunicipalILAirport : Ind Airport ;
+
+  fun FairfordRAFStationEnglandAirport : Ind Airport ;
+
+  fun FairmontMunicipalMNAirport : Ind Airport ;
+
+  fun FairmontStateAirfieldNEAirport : Ind Airport ;
+
+  fun FaizabadAirport : Ind Airport ;
+
+  fun FakahinaAirport : Ind Airport ;
+
+  fun FakaravaSocietyIslandsAirport : Ind Airport ;
+
+  fun FakfakFakFakNewGuineaAirport : Ind Airport ;
+
+  fun FalconStateParkTXAirport : Ind Airport ;
+
+  fun FaleoloApiaAirport : Ind Airport ;
+
+  fun FallonMunicipalNVAirport : Ind Airport ;
+
+  fun FallsBayAKAirport : Ind Airport ;
+
+  fun FallsCreekAirport : Ind Airport ;
+
+  fun FallsInternationalMNAirport : Ind Airport ;
+
+  fun FalseIslandSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun FalsePassAKAirport : Ind Airport ;
+
+  fun FaneAirport : Ind Airport ;
+
+  fun FangatauAirport : Ind Airport ;
+
+  fun FanningFieldIDAirport : Ind Airport ;
+
+  fun FarahAirport : Ind Airport ;
+
+  fun FaranahAirport : Ind Airport ;
+
+  fun FarewellAKAirport : Ind Airport ;
+
+  fun FarghonaFerganaFarghonaAirport : Ind Airport ;
+
+  fun FaribaultMunicipalMNAirport : Ind Airport ;
+
+  fun FariopurAirport : Ind Airport ;
+
+  fun FarmingtonRegionalMOAirport : Ind Airport ;
+
+  fun FarmvilleMunicipalVAAirport : Ind Airport ;
+
+  fun FarnboroughEnglandAirport : Ind Airport ;
+
+  fun FaroAirport : Ind Airport ;
+
+  fun FarranforeAirport : Ind Airport ;
+
+  fun FaskrudsfjordurAirport : Ind Airport ;
+
+  fun FayaAirport : Ind Airport ;
+
+  fun FayettevilleMunicipalTNAirport : Ind Airport ;
+
+  fun FayettevilleRegionalAirportGrannisFieldNCAirport : Ind Airport ;
+
+  fun FderikAirport : Ind Airport ;
+
+  fun FelkerArmyAirFieldVAAirport : Ind Airport ;
+
+  fun FeraIslandAirport : Ind Airport ;
+
+  fun FeraminAirport : Ind Airport ;
+
+  fun FergusFallsMunicipalAirportEinarMickelsonFieldMNAirport : Ind Airport ;
+
+  fun FergusonsGulfAirport : Ind Airport ;
+
+  fun FerihegyiBudapestAirport : Ind Airport ;
+
+  fun FerkessedougouAirport : Ind Airport ;
+
+  fun FernandodeNoronhaFNAirport : Ind Airport ;
+
+  fun FertiliaSardiniaAirport : Ind Airport ;
+
+  fun FestusMemorialMOAirport : Ind Airport ;
+
+  fun FetlarIslandAirport : Ind Airport ;
+
+  fun FicksburgAirport : Ind Airport ;
+
+  fun FigariCorsicaAirport : Ind Airport ;
+
+  fun FiladelfiaAirport : Ind Airport ;
+
+  fun FillmoreUTAirport : Ind Airport ;
+
+  fun FiltonAirport : Ind Airport ;
+
+  fun FinCreekAKAirport : Ind Airport ;
+
+  fun FinchaAirport : Ind Airport ;
+
+  fun FindlayOHAirport : Ind Airport ;
+
+  fun FinkeNorthernTerritoryAirport : Ind Airport ;
+
+  fun FinleyNewSouthWalesAirport : Ind Airport ;
+
+  fun FinschhafenAirport : Ind Airport ;
+
+  fun FireCoveAKAirport : Ind Airport ;
+
+  fun FirstFlightNCAirport : Ind Airport ;
+
+  fun FitchburgMunicipalMAAirport : Ind Airport ;
+
+  fun FitiutaAirport : Ind Airport ;
+
+  fun FitiutaFitiutaVillageAirport : Ind Airport ;
+
+  fun FitzgeraldMunicipalGAAirport : Ind Airport ;
+
+  fun FitzroyCrossingWesternAustraliaAirport : Ind Airport ;
+
+  fun FiveFingersCoastGuardHeliportAKAirport : Ind Airport ;
+
+  fun FiveMileAKAirport : Ind Airport ;
+
+  fun FlagstaffPulliamAZAirport : Ind Airport ;
+
+  fun FlamingoBonaireKralendijkAirport : Ind Airport ;
+
+  fun FlatAKAirport : Ind Airport ;
+
+  fun FlaxmanAKAirport : Ind Airport ;
+
+  fun FlemingMasonKYAirport : Ind Airport ;
+
+  fun FlensburgAirport : Ind Airport ;
+
+  fun FleslandBergenAirport : Ind Airport ;
+
+  fun FletcherFieldMSAirport : Ind Airport ;
+
+  fun FlindersIslandTasmaniaAirport : Ind Airport ;
+
+  fun FlorenceRegionalSCAirport : Ind Airport ;
+
+  fun FlorenciaAirport : Ind Airport ;
+
+  fun FloresAirport : Ind Airport ;
+
+  fun FlorianoPIAirport : Ind Airport ;
+
+  fun FlorianopolisSCAirport : Ind Airport ;
+
+  fun FloroAirport : Ind Airport ;
+
+  fun FlottaIsleAirport : Ind Airport ;
+
+  fun FlushingNYAirport : Ind Airport ;
+
+  fun FlyingCloudMNAirport : Ind Airport ;
+
+  fun FondduLacCountyWIAirport : Ind Airport ;
+
+  fun FontanarossaSicilyAirport : Ind Airport ;
+
+  fun ForbesFieldKSAirport : Ind Airport ;
+
+  fun ForbesNewSouthWalesAirport : Ind Airport ;
+
+  fun FordMIAirport : Ind Airport ;
+
+  fun ForestCityMunicipalIAAirport : Ind Airport ;
+
+  fun ForestParkGAAirport : Ind Airport ;
+
+  fun ForliAirport : Ind Airport ;
+
+  fun FormosaAirport : Ind Airport ;
+
+  fun FornebuOsloAirport : Ind Airport ;
+
+  fun ForresAirport : Ind Airport ;
+
+  fun ForrestCityMunicipalARAirport : Ind Airport ;
+
+  fun ForrestWesternAustraliaAirport : Ind Airport ;
+
+  fun ForsterNewSouthWalesAirport : Ind Airport ;
+
+  fun FortBraggCAAirport : Ind Airport ;
+
+  fun FortBridgerWYAirport : Ind Airport ;
+
+  fun FortCollinsLovelandMunicipalCOAirport : Ind Airport ;
+
+  fun FortDauphinAirport : Ind Airport ;
+
+  fun FortDodgeRegionalIAAirport : Ind Airport ;
+
+  fun FortLauderdaleExecutiveFLAirport : Ind Airport ;
+
+  fun FortLauderdaleHollywoodInternationalFLAirport : Ind Airport ;
+
+  fun FortLeenr1headquartersHeliportVAAirport : Ind Airport ;
+
+  fun FortMadisonMunicipalIAAirport : Ind Airport ;
+
+  fun FortRoussetAirport : Ind Airport ;
+
+  fun FortScottMunicipalKSAirport : Ind Airport ;
+
+  fun FortSheridanILAirport : Ind Airport ;
+
+  fun FortSmithMunicipalARAirport : Ind Airport ;
+
+  fun FortStocktonPecosCountyTXAirport : Ind Airport ;
+
+  fun FortSumnerMunicipalNMAirport : Ind Airport ;
+
+  fun FortWayneInternationalINAirport : Ind Airport ;
+
+  fun FortWilliamAirport : Ind Airport ;
+
+  fun FortWolterArmyAirFieldTXAirport : Ind Airport ;
+
+  fun FortWorthAllianceTXAirport : Ind Airport ;
+
+  fun FortWorthMeachamTXAirport : Ind Airport ;
+
+  fun FortWorthSpinksTXAirport : Ind Airport ;
+
+  fun FortYukonAKAirport : Ind Airport ;
+
+  fun FortalezaCEAirport : Ind Airport ;
+
+  fun FortunaLedgeAKAirport : Ind Airport ;
+
+  fun FossilDownsWesternAustraliaAirport : Ind Airport ;
+
+  fun FosstonMunicipalMNAirport : Ind Airport ;
+
+  fun FostoriaMetroOHAirport : Ind Airport ;
+
+  fun FougamouAirport : Ind Airport ;
+
+  fun FoulaShetlandIslandsAirport : Ind Airport ;
+
+  fun FoumbanAirport : Ind Airport ;
+
+  fun FourCornersRegionalNMAirport : Ind Airport ;
+
+  fun FoxAKAirport : Ind Airport ;
+
+  fun FoxGlacierAirport : Ind Airport ;
+
+  fun FoyaAirport : Ind Airport ;
+
+  fun FrancaSPAirport : Ind Airport ;
+
+  fun FrancisEWarrenAirForceBaseWYAirport : Ind Airport ;
+
+  fun FranciscoBangoyInternationalDavaoCityAirport : Ind Airport ;
+
+  fun FranciscoBeltraoPRAirport : Ind Airport ;
+
+  fun FrancistownAirport : Ind Airport ;
+
+  fun FrankfortMunicipalINAirport : Ind Airport ;
+
+  fun FranklinCountyStateVTAirport : Ind Airport ;
+
+  fun FranklinMunicipalJohnBeverlyRoseVAAirport : Ind Airport ;
+
+  fun FransKaisiepoBiakAirport : Ind Airport ;
+
+  fun FrederickMunicipalMDAirport : Ind Airport ;
+
+  fun FrederickMunicipalOKAirport : Ind Airport ;
+
+  fun FrederikshabAirport : Ind Airport ;
+
+  fun FreeportInternationalGrandBahamaAirport : Ind Airport ;
+
+  fun FregateIslandAirport : Ind Airport ;
+
+  fun FrejusAirport : Ind Airport ;
+
+  fun FremantleWesternAustraliaAirport : Ind Airport ;
+
+  fun FremontCountyCOAirport : Ind Airport ;
+
+  fun FremontMunicipalNEAirport : Ind Airport ;
+
+  fun FrenchLickMunicipalINAirport : Ind Airport ;
+
+  fun FreshWaterBayAKAirport : Ind Airport ;
+
+  fun FresnoAirTerminalCAAirport : Ind Airport ;
+
+  fun FresnoChandlerDowntownCAAirport : Ind Airport ;
+
+  fun FriaAirport : Ind Airport ;
+
+  fun FridayHarborWAAirport : Ind Airport ;
+
+  fun FritzlarAirBaseFritzlarAirport : Ind Airport ;
+
+  fun FrontRangeCOAirport : Ind Airport ;
+
+  fun FrontRoyalWarrenCountyVAAirport : Ind Airport ;
+
+  fun FuerstenfeldbruckAirBaseFuerstenfeldbruckAirport : Ind Airport ;
+
+  fun FuerteventuraPuertodelRosarioCanaryIslandsAirport : Ind Airport ;
+
+  fun FuhlsbuttelHamburgAirport : Ind Airport ;
+
+  fun FukueAirport : Ind Airport ;
+
+  fun FukuiAirport : Ind Airport ;
+
+  fun FukushimaAirport : Ind Airport ;
+
+  fun FullebornAirport : Ind Airport ;
+
+  fun FullertonMunicipalCAAirport : Ind Airport ;
+
+  fun FultonCountyAirportBrownFieldGAAirport : Ind Airport ;
+
+  fun FumaAirport : Ind Airport ;
+
+  fun FunafutiAirport : Ind Airport ;
+
+  fun FunchalMadeiraAirport : Ind Airport ;
+
+  fun FundacionAirport : Ind Airport ;
+
+  fun FunterBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun FuoshanAirport : Ind Airport ;
+
+  fun FutaleufuAirport : Ind Airport ;
+
+  fun FutunaAirport : Ind Airport ;
+
+  fun FutunaIslandAirport : Ind Airport ;
+
+  fun FuyangAirport : Ind Airport ;
+
+  fun FuyunAirport : Ind Airport ;
+
+  fun FuzhouAirport : Ind Airport ;
+
+  fun GabbsNVAirport : Ind Airport ;
+
+  fun GabesAirport : Ind Airport ;
+
+  fun GadsdenMunicipalALAirport : Ind Airport ;
+
+  fun GafsaAirport : Ind Airport ;
+
+  fun GagIslandAirport : Ind Airport ;
+
+  fun GageOKAirport : Ind Airport ;
+
+  fun GagnoaAirport : Ind Airport ;
+
+  fun GainesvilleMunicipalTXAirport : Ind Airport ;
+
+  fun GainesvilleRegionalFLAirport : Ind Airport ;
+
+  fun GakonaAKAirport : Ind Airport ;
+
+  fun GalOyaAirport : Ind Airport ;
+
+  fun GalapagosIslandsGalapagosAirport : Ind Airport ;
+
+  fun GalbraithLakeAKAirport : Ind Airport ;
+
+  fun GalcaioAirport : Ind Airport ;
+
+  fun GalelaAirport : Ind Airport ;
+
+  fun GalenaAKAirport : Ind Airport ;
+
+  fun GalesburgMunicipalILAirport : Ind Airport ;
+
+  fun GalionMunicipalOHAirport : Ind Airport ;
+
+  fun GalkayoAirport : Ind Airport ;
+
+  fun GallatinFieldMTAirport : Ind Airport ;
+
+  fun GalleriaHeliportGAAirport : Ind Airport ;
+
+  fun GallivareAirport : Ind Airport ;
+
+  fun GallupMunicipalNMAirport : Ind Airport ;
+
+  fun GalwayAirport : Ind Airport ;
+
+  fun GamarraAirport : Ind Airport ;
+
+  fun GambaAirport : Ind Airport ;
+
+  fun GambelaAirport : Ind Airport ;
+
+  fun GambellAKAirport : Ind Airport ;
+
+  fun GambomaAirport : Ind Airport ;
+
+  fun GamboolaQueenslandAirport : Ind Airport ;
+
+  fun GanIslandAirport : Ind Airport ;
+
+  fun GandajikaAirport : Ind Airport ;
+
+  fun GanesCreekAKAirport : Ind Airport ;
+
+  fun GangawAirport : Ind Airport ;
+
+  fun GanzhouAirport : Ind Airport ;
+
+  fun GaoAirport : Ind Airport ;
+
+  fun GapAirport : Ind Airport ;
+
+  fun GaraDjebiletAirport : Ind Airport ;
+
+  fun GarachineAirport : Ind Airport ;
+
+  fun GarainaAirport : Ind Airport ;
+
+  fun GarasaAirport : Ind Airport ;
+
+  fun GarbahareyAirport : Ind Airport ;
+
+  fun GardeAirport : Ind Airport ;
+
+  fun GardenCityRegionalKSAirport : Ind Airport ;
+
+  fun GardenHillMBAirport : Ind Airport ;
+
+  fun GardenPointNorthernTerritoryAirport : Ind Airport ;
+
+  fun GardermoenOsloAirport : Ind Airport ;
+
+  fun GardezAirport : Ind Airport ;
+
+  fun GardnerMunicipalMAAirport : Ind Airport ;
+
+  fun GardoAirport : Ind Airport ;
+
+  fun GarissaAirport : Ind Airport ;
+
+  fun GarouaAirport : Ind Airport ;
+
+  fun GarrowLakeAirport : Ind Airport ;
+
+  fun GaruahiAirport : Ind Airport ;
+
+  fun GaryRegionalINAirport : Ind Airport ;
+
+  fun GascoyneJunctionWesternAustraliaAirport : Ind Airport ;
+
+  fun GasmataIslandAirport : Ind Airport ;
+
+  fun GassimAirport : Ind Airport ;
+
+  fun GasukeAirport : Ind Airport ;
+
+  fun GatlinburgPigeonForgeTNAirport : Ind Airport ;
+
+  fun GavleAirport : Ind Airport ;
+
+  fun GayaAirport : Ind Airport ;
+
+  fun GayndahQueenslandAirport : Ind Airport ;
+
+  fun GaziantepAirport : Ind Airport ;
+
+  fun GbadoliteAirport : Ind Airport ;
+
+  fun GbangbatokAirport : Ind Airport ;
+
+  fun GbessiaConakryAirport : Ind Airport ;
+
+  fun GebeAirport : Ind Airport ;
+
+  fun GecitkaleAirport : Ind Airport ;
+
+  fun GedarefAirport : Ind Airport ;
+
+  fun GeelongVictoriaAirport : Ind Airport ;
+
+  fun GeilenkirchenAirport : Ind Airport ;
+
+  fun GeiloAirport : Ind Airport ;
+
+  fun GeitaAirport : Ind Airport ;
+
+  fun GeladiAirport : Ind Airport ;
+
+  fun GemanaAirport : Ind Airport ;
+
+  fun GendaWuhaAirport : Ind Airport ;
+
+  fun GeneralEMosconiComodoroRivadaviaAirport : Ind Airport ;
+
+  fun GeneralEdwardLawrenceLoganInternationalMAAirport : Ind Airport ;
+
+  fun GeneralIgnacioPesqueiraHermosilloAirport : Ind Airport ;
+
+  fun GeneralJoseMariaYanezGuaymasAirport : Ind Airport ;
+
+  fun GeneralJuanNAlvarezAcapulcoAirport : Ind Airport ;
+
+  fun GeneralPicoAirport : Ind Airport ;
+
+  fun GeneralRivadeneiraEsmeraldasAirport : Ind Airport ;
+
+  fun GeneralRobertoFierroVChihuahuaAirport : Ind Airport ;
+
+  fun GeneralRocaAirport : Ind Airport ;
+
+  fun GeneralSantosAirport : Ind Airport ;
+
+  fun GeneveCointrinGenevaAirport : Ind Airport ;
+
+  fun GenjemAirport : Ind Airport ;
+
+  fun GentingAirport : Ind Airport ;
+
+  fun GeojeHeliportSeoulAirport : Ind Airport ;
+
+  fun GeorgeAirport : Ind Airport ;
+
+  fun GeorgeDownerALAirport : Ind Airport ;
+
+  fun GeorgeRCarrMemorialAirFieldLAAirport : Ind Airport ;
+
+  fun GeorgeTLewisFLAirport : Ind Airport ;
+
+  fun GeorgeTownExumaAirport : Ind Airport ;
+
+  fun GeorgetownCountySCAirport : Ind Airport ;
+
+  fun GeorgetownQueenslandAirport : Ind Airport ;
+
+  fun GeraldtonWesternAustraliaAirport : Ind Airport ;
+
+  fun GeronaCostaBravaGeronaAirport : Ind Airport ;
+
+  fun GerrardSmithCaymanBracAirport : Ind Airport ;
+
+  fun GettysburgPAAirport : Ind Airport ;
+
+  fun GevaAirport : Ind Airport ;
+
+  fun GewoyaAirport : Ind Airport ;
+
+  fun GhanziAirport : Ind Airport ;
+
+  fun GhatAirport : Ind Airport ;
+
+  fun GhazniAirport : Ind Airport ;
+
+  fun GhimbiAirport : Ind Airport ;
+
+  fun GhinnirAirport : Ind Airport ;
+
+  fun GibbRiverWesternAustraliaAirport : Ind Airport ;
+
+  fun GilaBendAirForceAuxiliaryAZAirport : Ind Airport ;
+
+  fun GilgalAirport : Ind Airport ;
+
+  fun GilgitAirport : Ind Airport ;
+
+  fun GilletteCampbellCountyWYAirport : Ind Airport ;
+
+  fun GinoLisaFoggiaAirport : Ind Airport ;
+
+  fun GiradotAirport : Ind Airport ;
+
+  fun GirdwoodAKAirport : Ind Airport ;
+
+  fun GisborneAirport : Ind Airport ;
+
+  fun GisenyiAirport : Ind Airport ;
+
+  fun GitengaAirport : Ind Airport ;
+
+  fun GiuseppeMarconiBorgoPanigaleBolognaAirport : Ind Airport ;
+
+  fun GiyanaAirport : Ind Airport ;
+
+  fun GizanAirport : Ind Airport ;
+
+  fun GizoAirport : Ind Airport ;
+
+  fun GjogurReykjarnesAirport : Ind Airport ;
+
+  fun GlacierCreekAKAirport : Ind Airport ;
+
+  fun GlacierParkInternationalMTAirport : Ind Airport ;
+
+  fun GladstoneQueenslandAirport : Ind Airport ;
+
+  fun GlasgowIndustrialMTAirport : Ind Airport ;
+
+  fun GlasgowInternationalMTAirport : Ind Airport ;
+
+  fun GlasgowMunicipalKYAirport : Ind Airport ;
+
+  fun GlenInnesNewSouthWalesAirport : Ind Airport ;
+
+  fun GlendaleFokkerFieldWVAirport : Ind Airport ;
+
+  fun GlendaleMunicipalAZAirport : Ind Airport ;
+
+  fun GlengyleQueenslandAirport : Ind Airport ;
+
+  fun GlenormistonAirport : Ind Airport ;
+
+  fun GlentanMountCookAirport : Ind Airport ;
+
+  fun GlenwoodSpringsMunicipalCOAirport : Ind Airport ;
+
+  fun GlobeSanCarlosRegionalAirFacilityAZAirport : Ind Airport ;
+
+  fun GloucesterAirport : Ind Airport ;
+
+  fun GlyncoJetportGAAirport : Ind Airport ;
+
+  fun GoaAirport : Ind Airport ;
+
+  fun GobaAirport : Ind Airport ;
+
+  fun GobernadordosGregoresAirport : Ind Airport ;
+
+  fun GodeAirport : Ind Airport ;
+
+  fun GodhavnAirport : Ind Airport ;
+
+  fun GodmanArmyAirFieldKYAirport : Ind Airport ;
+
+  fun GodthabNuukAirport : Ind Airport ;
+
+  fun GogebicCountyMIAirport : Ind Airport ;
+
+  fun GoianiaGOAirport : Ind Airport ;
+
+  fun GoldBeachMunicipalORAirport : Ind Airport ;
+
+  fun GoldenHornLodgeSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun GoldenTriangleRegionalMSAirport : Ind Airport ;
+
+  fun GoldsboroWayneMunicipalNCAirport : Ind Airport ;
+
+  fun GolfitoAirport : Ind Airport ;
+
+  fun GollAirport : Ind Airport ;
+
+  fun GolmudAirport : Ind Airport ;
+
+  fun GolovinAKAirport : Ind Airport ;
+
+  fun GomaAirport : Ind Airport ;
+
+  fun GonailaAirport : Ind Airport ;
+
+  fun GondarAirport : Ind Airport ;
+
+  fun GoodfellowAirForceBaseTXAirport : Ind Airport ;
+
+  fun GoodingMunicipalIDAirport : Ind Airport ;
+
+  fun GoodnewsAKAirport : Ind Airport ;
+
+  fun GoodwinFieldARAirport : Ind Airport ;
+
+  fun GoondiwindiQueenslandAirport : Ind Airport ;
+
+  fun GoraAirport : Ind Airport ;
+
+  fun GorakhpurAirport : Ind Airport ;
+
+  fun GordilAirport : Ind Airport ;
+
+  fun GordonDownsWesternAustraliaAirport : Ind Airport ;
+
+  fun GordonMunicipalNEAirport : Ind Airport ;
+
+  fun GordonsvilleMunicipalVAAirport : Ind Airport ;
+
+  fun GoreAirport : Ind Airport ;
+
+  fun GorkhaAirport : Ind Airport ;
+
+  fun GorokaAirport : Ind Airport ;
+
+  fun GorontaloAirport : Ind Airport ;
+
+  fun GosfordNewSouthWalesAirport : Ind Airport ;
+
+  fun GoshenMunicipalINAirport : Ind Airport ;
+
+  fun GosseliesCharleroiAirport : Ind Airport ;
+
+  fun GottwaldovAirport : Ind Airport ;
+
+  fun GoulburnIslandNorthernTerritoryAirport : Ind Airport ;
+
+  fun GoulburnNewSouthWalesAirport : Ind Airport ;
+
+  fun GoulimimeAirport : Ind Airport ;
+
+  fun GoundaAirport : Ind Airport ;
+
+  fun GoundamAirport : Ind Airport ;
+
+  fun GoveNorthernTerritoryAirport : Ind Airport ;
+
+  fun GovernadorValadaresMGAirport : Ind Airport ;
+
+  fun GovernorsHarbourEleutheraAirport : Ind Airport ;
+
+  fun GozoAirport : Ind Airport ;
+
+  fun GraciasAirport : Ind Airport ;
+
+  fun GraciosaIslandAzoresAirport : Ind Airport ;
+
+  fun GraftonNewSouthWalesAirport : Ind Airport ;
+
+  fun GranadaAirport : Ind Airport ;
+
+  fun GranbyGrandCountyCOAirport : Ind Airport ;
+
+  fun GrandBahamaIslandGrandBahamaAirport : Ind Airport ;
+
+  fun GrandCanyonHeliportAZAirport : Ind Airport ;
+
+  fun GrandCanyonNationalParkAZAirport : Ind Airport ;
+
+  fun GrandCaseSaintMartinAirport : Ind Airport ;
+
+  fun GrandCentralJohannesburgAirport : Ind Airport ;
+
+  fun GrandCessAirport : Ind Airport ;
+
+  fun GrandForksInternationalNDAirport : Ind Airport ;
+
+  fun GrandMaraisCookCountyMNAirport : Ind Airport ;
+
+  fun GrandRapidsItascaCountyAirportGordonNewstromFieldMNAirport : Ind Airport ;
+
+  fun GrandStrandSCAirport : Ind Airport ;
+
+  fun GrandTurkGrandTurkIsAirport : Ind Airport ;
+
+  fun GraniteMountainAKAirport : Ind Airport ;
+
+  fun GranitesNorthernTerritoryAirport : Ind Airport ;
+
+  fun GrantMunicipalNEAirport : Ind Airport ;
+
+  fun GrantleyAdamsInternationalBarbadosBridgetownAirport : Ind Airport ;
+
+  fun GrantsMilanMunicipalNMAirport : Ind Airport ;
+
+  fun GrantsburgMunicipalWIAirport : Ind Airport ;
+
+  fun GranvilleAirport : Ind Airport ;
+
+  fun GratiotCommunityMIAirport : Ind Airport ;
+
+  fun GrayArmyAirFieldWAAirport : Ind Airport ;
+
+  fun GraylingAKAirport : Ind Airport ;
+
+  fun GreatAussieHoleAirport : Ind Airport ;
+
+  fun GreatBarrierIslandAirport : Ind Airport ;
+
+  fun GreatBarringtonMAAirport : Ind Airport ;
+
+  fun GreatBendMunicipalKSAirport : Ind Airport ;
+
+  fun GreatFallsInternationalMTAirport : Ind Airport ;
+
+  fun GreatHarbourCayBerryAirport : Ind Airport ;
+
+  fun GreatKeppelIslandQueenslandAirport : Ind Airport ;
+
+  fun GreaterBuffaloInternationalNYAirport : Ind Airport ;
+
+  fun GreaterKankakeeILAirport : Ind Airport ;
+
+  fun GreaterSouthwestTXAirport : Ind Airport ;
+
+  fun GreeleyWeldCountyCOAirport : Ind Airport ;
+
+  fun GreenIslandAirport : Ind Airport ;
+
+  fun GreenIsleAirport : Ind Airport ;
+
+  fun GreenRiverAirport : Ind Airport ;
+
+  fun GreenTurtleCayAirport : Ind Airport ;
+
+  fun GreenevilleMunicipalTNAirport : Ind Airport ;
+
+  fun GreenfieldMunicipalIAAirport : Ind Airport ;
+
+  fun GreenhamCommonRAFStationEnglandAirport : Ind Airport ;
+
+  fun GreenleeCountyAZAirport : Ind Airport ;
+
+  fun GreensboroBaltimoreMDAirport : Ind Airport ;
+
+  fun GreenvaleQueenslandAirport : Ind Airport ;
+
+  fun GreenvilleDowntownSCAirport : Ind Airport ;
+
+  fun GreenvilleILAirport : Ind Airport ;
+
+  fun GreenvilleMunicipalMSAirport : Ind Airport ;
+
+  fun GreenvilleSpartanburgSCAirport : Ind Airport ;
+
+  fun GreenwayPlazaHeliportTXAirport : Ind Airport ;
+
+  fun GreenwoodCountySCAirport : Ind Airport ;
+
+  fun GreenwoodLefloreMSAirport : Ind Airport ;
+
+  fun GreenwoodMunicipalINAirport : Ind Airport ;
+
+  fun GreggCountyTXAirport : Ind Airport ;
+
+  fun GregoryDownsQueenslandAirport : Ind Airport ;
+
+  fun GrenfellNewSouthWalesAirport : Ind Airport ;
+
+  fun GrevenMuensterMunsterOsnabrueckOsnabruckAirport : Ind Airport ;
+
+  fun GreymouthAirport : Ind Airport ;
+
+  fun GriffithNewSouthWalesAirport : Ind Airport ;
+
+  fun GrimsbyAirport : Ind Airport ;
+
+  fun GrimseyAirport : Ind Airport ;
+
+  fun GrinnellRegionalIAAirport : Ind Airport ;
+
+  fun GrissomAirForceBaseINAirport : Ind Airport ;
+
+  fun GrooteEylandtNorthernTerritoryAirport : Ind Airport ;
+
+  fun GrootfonteinAirport : Ind Airport ;
+
+  fun GrossetoAirport : Ind Airport ;
+
+  fun GrotonNewLondonCTAirport : Ind Airport ;
+
+  fun GroznyyGroznyGroznyjAirport : Ind Airport ;
+
+  fun GrummanBethpageNYAirport : Ind Airport ;
+
+  fun GrundyMunicipalVAAirport : Ind Airport ;
+
+  fun GuacamayasAirport : Ind Airport ;
+
+  fun GuadalcanalAirport : Ind Airport ;
+
+  fun GuadalupeTXAirport : Ind Airport ;
+
+  fun GuajaraMirimROAirport : Ind Airport ;
+
+  fun GualacoAirport : Ind Airport ;
+
+  fun GualeguaychuAirport : Ind Airport ;
+
+  fun GuamAirport : Ind Airport ;
+
+  fun GuamalAirport : Ind Airport ;
+
+  fun GuanajaIslandAirport : Ind Airport ;
+
+  fun GuanajuatoLeonAirport : Ind Airport ;
+
+  fun GuanambiBAAirport : Ind Airport ;
+
+  fun GuanareAirport : Ind Airport ;
+
+  fun GuapiAirport : Ind Airport ;
+
+  fun GuapilesAirport : Ind Airport ;
+
+  fun GuarapuavaPRAirport : Ind Airport ;
+
+  fun GuaratinguetaSPAirport : Ind Airport ;
+
+  fun GuariAirport : Ind Airport ;
+
+  fun GuasqualitoAirport : Ind Airport ;
+
+  fun GuayaramerinAirport : Ind Airport ;
+
+  fun GuemarElOuedAirport : Ind Airport ;
+
+  fun GuerimaAirport : Ind Airport ;
+
+  fun GuernseyAirport : Ind Airport ;
+
+  fun GuerreroNegroAirport : Ind Airport ;
+
+  fun GueterslohGuterslohAirport : Ind Airport ;
+
+  fun GuigloAirport : Ind Airport ;
+
+  fun GuilinAirport : Ind Airport ;
+
+  fun GuimaraesMAAirport : Ind Airport ;
+
+  fun GuipavasBrestAirport : Ind Airport ;
+
+  fun GuiriaAirport : Ind Airport ;
+
+  fun GuiyangAirport : Ind Airport ;
+
+  fun GujratAirport : Ind Airport ;
+
+  fun GulfportBiloxiRegionalMSAirport : Ind Airport ;
+
+  fun GulgubipAirport : Ind Airport ;
+
+  fun GulkanaAKAirport : Ind Airport ;
+
+  fun GunaAirport : Ind Airport ;
+
+  fun GunnedahNewSouthWalesAirport : Ind Airport ;
+
+  fun GunnisonCountyCOAirport : Ind Airport ;
+
+  fun GunterAirForceBaseALAirport : Ind Airport ;
+
+  fun GunungsitoliAirport : Ind Airport ;
+
+  fun GurneyAlotauAirport : Ind Airport ;
+
+  fun GurupiGOAirport : Ind Airport ;
+
+  fun GusapAirport : Ind Airport ;
+
+  fun GushKatifAirport : Ind Airport ;
+
+  fun GustavusAKAirport : Ind Airport ;
+
+  fun GuthrieCountyRegionalIAAirport : Ind Airport ;
+
+  fun GuthrieMunicipalOKAirport : Ind Airport ;
+
+  fun GuwahatiGauhatiAirport : Ind Airport ;
+
+  fun GuymonMunicipalOKAirport : Ind Airport ;
+
+  fun GwaBurmaAirport : Ind Airport ;
+
+  fun GwadarAirport : Ind Airport ;
+
+  fun GwaliorAirport : Ind Airport ;
+
+  fun GweruAirport : Ind Airport ;
+
+  fun GwinnerAirportRogerMelroeFieldNDAirport : Ind Airport ;
+
+  fun GyandzhaAirport : Ind Airport ;
+
+  fun GympieQueenslandAirport : Ind Airport ;
+
+  fun HaapaiAirport : Ind Airport ;
+
+  fun HachijoJimaIslandAirport : Ind Airport ;
+
+  fun HachinoheAirport : Ind Airport ;
+
+  fun HafrAlbatinAirport : Ind Airport ;
+
+  fun HagforsAirport : Ind Airport ;
+
+  fun HahayaMoroniAirport : Ind Airport ;
+
+  fun HahnAirport : Ind Airport ;
+
+  fun HaiPhongAirport : Ind Airport ;
+
+  fun HaifaAirport : Ind Airport ;
+
+  fun HaikouAirport : Ind Airport ;
+
+  fun HailAirport : Ind Airport ;
+
+  fun HailarAirport : Ind Airport ;
+
+  fun HainesAKAirport : Ind Airport ;
+
+  fun HakodateHokkaidoAirport : Ind Airport ;
+
+  fun HalaliAirport : Ind Airport ;
+
+  fun HalfMoonBayCAAirport : Ind Airport ;
+
+  fun HalimPerdanakusumaInternationalJakartaAirport : Ind Airport ;
+
+  fun HaliweniAtambuaAirport : Ind Airport ;
+
+  fun HalliburtonFieldOKAirport : Ind Airport ;
+
+  fun HallsCreekWesternAustraliaAirport : Ind Airport ;
+
+  fun HalmstadAirBaseHalmstadAirport : Ind Airport ;
+
+  fun HamadanAirport : Ind Airport ;
+
+  fun HamiAirport : Ind Airport ;
+
+  fun HamiltonAirport : Ind Airport ;
+
+  fun HamiltonFairfieldOHAirport : Ind Airport ;
+
+  fun HamiltonIslandQueenslandAirport : Ind Airport ;
+
+  fun HamiltonVictoriaAirport : Ind Airport ;
+
+  fun HammerfestAirport : Ind Airport ;
+
+  fun HamptonMunicipalIAAirport : Ind Airport ;
+
+  fun HanaHIAirport : Ind Airport ;
+
+  fun HanaleiHIAirport : Ind Airport ;
+
+  fun HanamakiMoriokaAirport : Ind Airport ;
+
+  fun HancheyArmyHeliportALAirport : Ind Airport ;
+
+  fun HancockCountyBarHarborMEAirport : Ind Airport ;
+
+  fun HanedaTokyoAirport : Ind Airport ;
+
+  fun HankowAirport : Ind Airport ;
+
+  fun HanksvilleUTAirport : Ind Airport ;
+
+  fun HannaWYAirport : Ind Airport ;
+
+  fun HanusBayAKAirport : Ind Airport ;
+
+  fun HanzhongAirport : Ind Airport ;
+
+  fun HaoIslandAirport : Ind Airport ;
+
+  fun HarareAirport : Ind Airport ;
+
+  fun HarbinAirport : Ind Airport ;
+
+  fun HarbourIslandAirport : Ind Airport ;
+
+  fun HarbourNorthernIrelandAirport : Ind Airport ;
+
+  fun HardwickFieldTNAirport : Ind Airport ;
+
+  fun HardyAndersFieldNatchezAdamsCountyMSAirport : Ind Airport ;
+
+  fun HargeisaAirport : Ind Airport ;
+
+  fun HarlanMunicipalIAAirport : Ind Airport ;
+
+  fun HarrellFieldARAirport : Ind Airport ;
+
+  fun HarrisburgRaleighILAirport : Ind Airport ;
+
+  fun HarrismithAirport : Ind Airport ;
+
+  fun HarrisonCountyTXAirport : Ind Airport ;
+
+  fun HarrogateAirport : Ind Airport ;
+
+  fun HartfordBrainardCTAirport : Ind Airport ;
+
+  fun HartfordMunicipalWIAirport : Ind Airport ;
+
+  fun HartsfieldHeliportGAAirport : Ind Airport ;
+
+  fun HartsvilleMunicipalSCAirport : Ind Airport ;
+
+  fun HaskovoAirport : Ind Airport ;
+
+  fun HassiRmelAirport : Ind Airport ;
+
+  fun HastingsFreetownAirport : Ind Airport ;
+
+  fun HastingsMunicipalNEAirport : Ind Airport ;
+
+  fun HasvikAirport : Ind Airport ;
+
+  fun HatboxFieldOKAirport : Ind Airport ;
+
+  fun HaterumaAirport : Ind Airport ;
+
+  fun HatfieldEnglandAirport : Ind Airport ;
+
+  fun HatoCorozalAirport : Ind Airport ;
+
+  fun HatzfeldthavenAirport : Ind Airport ;
+
+  fun HavasupaiAZAirport : Ind Airport ;
+
+  fun HaverfordwestWalesAirport : Ind Airport ;
+
+  fun HavreCityCountyMTAirport : Ind Airport ;
+
+  fun HawabangoAirport : Ind Airport ;
+
+  fun HawkInletSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun HawkerSouthAustraliaAirport : Ind Airport ;
+
+  fun HawkinsFieldMSAirport : Ind Airport ;
+
+  fun HawthorneMunicipalCAAirport : Ind Airport ;
+
+  fun HawthorneMunicipalNVAirport : Ind Airport ;
+
+  fun HayNewSouthWalesAirport : Ind Airport ;
+
+  fun HaycockAKAirport : Ind Airport ;
+
+  fun HayfieldsAirport : Ind Airport ;
+
+  fun HaymanIslandQueenslandAirport : Ind Airport ;
+
+  fun HaysMunicipalKSAirport : Ind Airport ;
+
+  fun HaywardAirTerminalCAAirport : Ind Airport ;
+
+  fun HaywardMunicipalWIAirport : Ind Airport ;
+
+  fun HazebrouckAirport : Ind Airport ;
+
+  fun HazlehurstGAAirport : Ind Airport ;
+
+  fun HazletonMunicipalPAAirport : Ind Airport ;
+
+  fun HeadinglyQueenslandAirport : Ind Airport ;
+
+  fun HealyRiverAKAirport : Ind Airport ;
+
+  fun HeathlandsQueenslandAirport : Ind Airport ;
+
+  fun HeberSpringsMunicipalARAirport : Ind Airport ;
+
+  fun HebronMunicipalNEAirport : Ind Airport ;
+
+  fun HectorInternationalNDAirport : Ind Airport ;
+
+  fun HefeiAirport : Ind Airport ;
+
+  fun HehoAirport : Ind Airport ;
+
+  fun HeideBuesumAirport : Ind Airport ;
+
+  fun HeidelbergAirport : Ind Airport ;
+
+  fun HeiheAirport : Ind Airport ;
+
+  fun HeiweniAirport : Ind Airport ;
+
+  fun HelenaRegionalMTAirport : Ind Airport ;
+
+  fun HelenvaleAirport : Ind Airport ;
+
+  fun HelgolandAirport : Ind Airport ;
+
+  fun HeliportCroisetteAirport : Ind Airport ;
+
+  fun HeliportGronnedalAirport : Ind Airport ;
+
+  fun HeliportHelsingborgAirport : Ind Airport ;
+
+  fun HeliportInchonAirport : Ind Airport ;
+
+  fun HeliportParisAirport : Ind Airport ;
+
+  fun HeliportSodertaljeAirport : Ind Airport ;
+
+  fun HellinikonInternationalAthensAthinaiAirport : Ind Airport ;
+
+  fun HemetRyanCAAirport : Ind Airport ;
+
+  fun HemphillCountyTXAirport : Ind Airport ;
+
+  fun HenburyNorthernTerritoryAirport : Ind Airport ;
+
+  fun HendersonFieldNCAirport : Ind Airport ;
+
+  fun HendersonGuadalcanalIsAirport : Ind Airport ;
+
+  fun HendersonOxfordNCAirport : Ind Airport ;
+
+  fun HendonEnglandAirport : Ind Airport ;
+
+  fun HengyangAirport : Ind Airport ;
+
+  fun HenryPostArmyAirFieldOKAirport : Ind Airport ;
+
+  fun HenzadaAirport : Ind Airport ;
+
+  fun HeraklionIraklionCreteAirport : Ind Airport ;
+
+  fun HeratAirport : Ind Airport ;
+
+  fun HerefordMunicipalTXAirport : Ind Airport ;
+
+  fun HerendeenBayAKAirport : Ind Airport ;
+
+  fun HeringsdorfAirport : Ind Airport ;
+
+  fun HeringtonMunicipalKSAirport : Ind Airport ;
+
+  fun HermannsburgNorthernTerritoryAirport : Ind Airport ;
+
+  fun HermistonMunicipalORAirport : Ind Airport ;
+
+  fun HernandoCountyFLAirport : Ind Airport ;
+
+  fun HeronIslandQueenslandAirport : Ind Airport ;
+
+  fun HerreraAirport : Ind Airport ;
+
+  fun HerveyBayQueenslandAirport : Ind Airport ;
+
+  fun HerzegovinaAirport : Ind Airport ;
+
+  fun HickamAirForceBaseHIAirport : Ind Airport ;
+
+  fun HickoryRegionalNCAirport : Ind Airport ;
+
+  fun HiddenFallsAKAirport : Ind Airport ;
+
+  fun HiengheneAirport : Ind Airport ;
+
+  fun HighWycombeAirport : Ind Airport ;
+
+  fun HighburyAirport : Ind Airport ;
+
+  fun HigueroteAirport : Ind Airport ;
+
+  fun HikueruAirport : Ind Airport ;
+
+  fun HillAirForceBaseUTAirport : Ind Airport ;
+
+  fun HillCityMunicipalKSAirport : Ind Airport ;
+
+  fun HillenbrandIndustriesINAirport : Ind Airport ;
+
+  fun HillsideWesternAustraliaAirport : Ind Airport ;
+
+  fun HiloInternationalHIAirport : Ind Airport ;
+
+  fun HiltonHeadSCAirport : Ind Airport ;
+
+  fun HinchinbrookeIslandQueenslandAirport : Ind Airport ;
+
+  fun HiroshimaAirport : Ind Airport ;
+
+  fun HiroshimaWestHiroshimaAirport : Ind Airport ;
+
+  fun HissarAirport : Ind Airport ;
+
+  fun HivaOaMarquesasIslandsAirport : Ind Airport ;
+
+  fun HivaroAirport : Ind Airport ;
+
+  fun HjaltabakkiBlonduosAirport : Ind Airport ;
+
+  fun HluhluweAirport : Ind Airport ;
+
+  fun HobartBayAKAirport : Ind Airport ;
+
+  fun HobartMunicipalOKAirport : Ind Airport ;
+
+  fun HobartTasmaniaAirport : Ind Airport ;
+
+  fun HobbsIndustrialAirparkNMAirport : Ind Airport ;
+
+  fun HodeidaAirport : Ind Airport ;
+
+  fun HofAirport : Ind Airport ;
+
+  fun HofufAirport : Ind Airport ;
+
+  fun HogRiverAKAirport : Ind Airport ;
+
+  fun HohenemsAirport : Ind Airport ;
+
+  fun HohhotAirport : Ind Airport ;
+
+  fun HokitikaAirport : Ind Airport ;
+
+  fun HolaAirport : Ind Airport ;
+
+  fun HolguinAirport : Ind Airport ;
+
+  fun HolikachuAKAirport : Ind Airport ;
+
+  fun HolikachukAKAirport : Ind Airport ;
+
+  fun HollisSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun HollisterMunicipalCAAirport : Ind Airport ;
+
+  fun HollomanAirForceBaseNMAirport : Ind Airport ;
+
+  fun HolmavikAirport : Ind Airport ;
+
+  fun HolsteinsborgAirport : Ind Airport ;
+
+  fun HoltFlateyriAirport : Ind Airport ;
+
+  fun HolyCrossAKAirport : Ind Airport ;
+
+  fun HomalinAirport : Ind Airport ;
+
+  fun HomeHillQueenslandAirport : Ind Airport ;
+
+  fun HomerAKAirport : Ind Airport ;
+
+  fun HomeshoreAKAirport : Ind Airport ;
+
+  fun HomesteadAirForceBaseFLAirport : Ind Airport ;
+
+  fun HomyelGomelHomyelAirport : Ind Airport ;
+
+  fun HondoMunicipalTXAirport : Ind Airport ;
+
+  fun HongKongHeliportHongKongAirport : Ind Airport ;
+
+  fun HoninabiAirport : Ind Airport ;
+
+  fun HonningsvagAirport : Ind Airport ;
+
+  fun HonoluluInternationalHIAirport : Ind Airport ;
+
+  fun HoodArmyAirFieldTXAirport : Ind Airport ;
+
+  fun HookIslandAirport : Ind Airport ;
+
+  fun HookersCreekNorthernTerritoryAirport : Ind Airport ;
+
+  fun HoonahAKAirport : Ind Airport ;
+
+  fun HooperBayAKAirport : Ind Airport ;
+
+  fun HopeValeQueenslandAirport : Ind Airport ;
+
+  fun HopetownAirport : Ind Airport ;
+
+  fun HopkinsvilleChristianCountyKYAirport : Ind Airport ;
+
+  fun HornIslandAirport : Ind Airport ;
+
+  fun HornafjordurHofnAirport : Ind Airport ;
+
+  fun HorshamVictoriaAirport : Ind Airport ;
+
+  fun HortaFaialIslandAzoresAirport : Ind Airport ;
+
+  fun HotSpringsMunicipalSDAirport : Ind Airport ;
+
+  fun HotanAirport : Ind Airport ;
+
+  fun HouailoAirport : Ind Airport ;
+
+  fun HouariBoumedieneAlgerAlgiersAirport : Ind Airport ;
+
+  fun HoueisayAirport : Ind Airport ;
+
+  fun HoughtonCountyMemorialMIAirport : Ind Airport ;
+
+  fun HoultonInternationalMEAirport : Ind Airport ;
+
+  fun HoumaTerrebonneLAAirport : Ind Airport ;
+
+  fun HounAirport : Ind Airport ;
+
+  fun HoustonIntercontinentalTXAirport : Ind Airport ;
+
+  fun HoustonSouthwestTXAirport : Ind Airport ;
+
+  fun HovdenOerstaVoldaAirport : Ind Airport ;
+
+  fun HovercraftHarbourTerminalMalmoAirport : Ind Airport ;
+
+  fun HowardAirForceBaseBalboaFortKobbeAirport : Ind Airport ;
+
+  fun HoyIslandAirport : Ind Airport ;
+
+  fun HoybuktmoenKirkenesAirport : Ind Airport ;
+
+  fun HozmanElatAirport : Ind Airport ;
+
+  fun HrodnaGrodnaHrodnaAirport : Ind Airport ;
+
+  fun HsinChuAirport : Ind Airport ;
+
+  fun HuaHinAirport : Ind Airport ;
+
+  fun HuahineSocietyIslandsAirport : Ind Airport ;
+
+  fun HualienAirport : Ind Airport ;
+
+  fun HuanghuaAirport : Ind Airport ;
+
+  fun HuangyanAirport : Ind Airport ;
+
+  fun HuanucoAirport : Ind Airport ;
+
+  fun HubliAirport : Ind Airport ;
+
+  fun HudiksvallAirport : Ind Airport ;
+
+  fun HueAirport : Ind Airport ;
+
+  fun HuehuetenangoAirport : Ind Airport ;
+
+  fun HughendenQueenslandAirport : Ind Airport ;
+
+  fun HughesAKAirport : Ind Airport ;
+
+  fun HugotonMunicipalKSAirport : Ind Airport ;
+
+  fun HuizhowAirport : Ind Airport ;
+
+  fun HullAKAirport : Ind Airport ;
+
+  fun HulmanRegionalINAirport : Ind Airport ;
+
+  fun HultsfredAirport : Ind Airport ;
+
+  fun HumacaoHumacaoAirport : Ind Airport ;
+
+  fun HumbersideAirport : Ind Airport ;
+
+  fun HumbertRiverAirport : Ind Airport ;
+
+  fun HumboldtMunicipalNEAirport : Ind Airport ;
+
+  fun HumeraAirport : Ind Airport ;
+
+  fun HuntingburgINAirport : Ind Airport ;
+
+  fun HuntingtonMunicipalINAirport : Ind Airport ;
+
+  fun HuntsvilleInternationalAirportCarlTJonesFieldALAirport : Ind Airport ;
+
+  fun HuntsvilleMunicipalTXAirport : Ind Airport ;
+
+  fun HurghadaAirport : Ind Airport ;
+
+  fun HuronRegionalSDAirport : Ind Airport ;
+
+  fun HusavikAirport : Ind Airport ;
+
+  fun HusliaAKAirport : Ind Airport ;
+
+  fun HutchinsonCountyTXAirport : Ind Airport ;
+
+  fun HutchinsonMunicipalAirportButlerFieldMNAirport : Ind Airport ;
+
+  fun HutchinsonMunicipalKSAirport : Ind Airport ;
+
+  fun HvammstangiAirport : Ind Airport ;
+
+  fun HwangeNationalParkAirport : Ind Airport ;
+
+  fun HydaburgSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun HyderabadAirport : Ind Airport ;
+
+  fun HyderabadAirportPakistan : Ind Airport ;
+
+  fun IalibuAirport : Ind Airport ;
+
+  fun IamaleleAirport : Ind Airport ;
+
+  fun IasiAirport : Ind Airport ;
+
+  fun IbadanAirport : Ind Airport ;
+
+  fun IbagueAirport : Ind Airport ;
+
+  fun IberiaAirport : Ind Airport ;
+
+  fun IbizaBalearicIslandsAirport : Ind Airport ;
+
+  fun IboAirport : Ind Airport ;
+
+  fun IbokiAirport : Ind Airport ;
+
+  fun IcabaruAirport : Ind Airport ;
+
+  fun IcyBayAKAirport : Ind Airport ;
+
+  fun IdaGroveMunicipalIAAirport : Ind Airport ;
+
+  fun IdiofaAirport : Ind Airport ;
+
+  fun IdreAirport : Ind Airport ;
+
+  fun IejimaAirport : Ind Airport ;
+
+  fun IffleyQueenslandAirport : Ind Airport ;
+
+  fun IgarkaKrasnoyarskAirport : Ind Airport ;
+
+  fun IgiugigAKAirport : Ind Airport ;
+
+  fun IgnacioAgramonteCamagueyAirport : Ind Airport ;
+
+  fun IgorISikorskyMemorialCTAirport : Ind Airport ;
+
+  fun IguelaAirport : Ind Airport ;
+
+  fun IhosyAirport : Ind Airport ;
+
+  fun IhuAirport : Ind Airport ;
+
+  fun IjuiRSAirport : Ind Airport ;
+
+  fun IkelaAirport : Ind Airport ;
+
+  fun IkiAirport : Ind Airport ;
+
+  fun IlakaAirport : Ind Airport ;
+
+  fun IleQuenAirport : Ind Airport ;
+
+  fun IledYeuAirport : Ind Airport ;
+
+  fun IledesPinsIsleofPinesIsleofPinesAirport : Ind Airport ;
+
+  fun IlfordMBAirport : Ind Airport ;
+
+  fun IlhaSolteiraMSAirport : Ind Airport ;
+
+  fun IlheusBAAirport : Ind Airport ;
+
+  fun IliamnaAKAirport : Ind Airport ;
+
+  fun IliganAirport : Ind Airport ;
+
+  fun IllagaAirport : Ind Airport ;
+
+  fun IllishiemArmyAirFieldIllishiemAirport : Ind Airport ;
+
+  fun IloiloAirport : Ind Airport ;
+
+  fun IlorinAirport : Ind Airport ;
+
+  fun IluNewGuineaAirport : Ind Airport ;
+
+  fun IlulissatJakobshavnAirport : Ind Airport ;
+
+  fun ImbaimadaiAirport : Ind Airport ;
+
+  fun ImmokaleeFLAirport : Ind Airport ;
+
+  fun ImondaAirport : Ind Airport ;
+
+  fun ImperatrizMAAirport : Ind Airport ;
+
+  fun ImperialCountyCAAirport : Ind Airport ;
+
+  fun ImperialMunicipalNEAirport : Ind Airport ;
+
+  fun ImpfondoAirport : Ind Airport ;
+
+  fun ImphalAirport : Ind Airport ;
+
+  fun InAmenasZerzaltineAirport : Ind Airport ;
+
+  fun InGuezzamAirport : Ind Airport ;
+
+  fun InSalahAirport : Ind Airport ;
+
+  fun InaguaMatthewTownGreatInaguaAirport : Ind Airport ;
+
+  fun InanwatanAirport : Ind Airport ;
+
+  fun IncirlikAirBaseAdanaAirport : Ind Airport ;
+
+  fun IndagenAirport : Ind Airport ;
+
+  fun IndependenceAirport : Ind Airport ;
+
+  fun IndependenceMunicipalIAAirport : Ind Airport ;
+
+  fun IndependenceMunicipalKSAirport : Ind Airport ;
+
+  fun IndianSpringsAirForceAuxiliaryNVAirport : Ind Airport ;
+
+  fun IndianaCountyJimmyStewartFieldPAAirport : Ind Airport ;
+
+  fun IndianapolisInternationalINAirport : Ind Airport ;
+
+  fun IndianolaMunicipalMSAirport : Ind Airport ;
+
+  fun IndiraGandhiInternationalDelhiAirport : Ind Airport ;
+
+  fun IndoreAirport : Ind Airport ;
+
+  fun IndulkanaSouthAustraliaAirport : Ind Airport ;
+
+  fun IneIneIslandAirport : Ind Airport ;
+
+  fun IngallsFieldVAAirport : Ind Airport ;
+
+  fun IngenieroJacobacciAirport : Ind Airport ;
+
+  fun IngersollILAirport : Ind Airport ;
+
+  fun InghamQueenslandAirport : Ind Airport ;
+
+  fun IngjaldssandurOnundarfjordurAirport : Ind Airport ;
+
+  fun InhambaneAirport : Ind Airport ;
+
+  fun InhamingaAirport : Ind Airport ;
+
+  fun InisheerAirport : Ind Airport ;
+
+  fun InishmaanAirport : Ind Airport ;
+
+  fun InishmoreAirport : Ind Airport ;
+
+  fun InjuneQueenslandAirport : Ind Airport ;
+
+  fun InkermanQueenslandAirport : Ind Airport ;
+
+  fun InnaminckaSouthAustraliaAirport : Ind Airport ;
+
+  fun InnisfailQueenslandAirport : Ind Airport ;
+
+  fun InongoAirport : Ind Airport ;
+
+  fun InternacionalDFAirport : Ind Airport ;
+
+  fun InternationalAdenAirport : Ind Airport ;
+
+  fun InternationalAndrosAirport : Ind Airport ;
+
+  fun InternationalAucklandAirport : Ind Airport ;
+
+  fun InternationalBandarSeriBegwanAirport : Ind Airport ;
+
+  fun InternationalBasraAirport : Ind Airport ;
+
+  fun InternationalBeirutAirport : Ind Airport ;
+
+  fun InternationalBujumburaAirport : Ind Airport ;
+
+  fun InternationalKaohsiungAirport : Ind Airport ;
+
+  fun InternationalNauruAirport : Ind Airport ;
+
+  fun InternationalNorthernTerritoryAirport : Ind Airport ;
+
+  fun InternationalQueenslandAirport : Ind Airport ;
+
+  fun InternationalSouthAustraliaAirport : Ind Airport ;
+
+  fun InusAirport : Ind Airport ;
+
+  fun InvercargillAirport : Ind Airport ;
+
+  fun InverellNewSouthWalesAirport : Ind Airport ;
+
+  fun InvernessScotlandAirport : Ind Airport ;
+
+  fun InverwayNorthernTerritoryAirport : Ind Airport ;
+
+  fun InyokernCAAirport : Ind Airport ;
+
+  fun IoanninaAirport : Ind Airport ;
+
+  fun IokeaAirport : Ind Airport ;
+
+  fun IomaAirport : Ind Airport ;
+
+  fun IoscoCountyMIAirport : Ind Airport ;
+
+  fun IowaCityMunicipalIAAirport : Ind Airport ;
+
+  fun IowaFallsMunicipalIAAirport : Ind Airport ;
+
+  fun IpatingaAirport : Ind Airport ;
+
+  fun IpialesAirport : Ind Airport ;
+
+  fun IpiauBAAirport : Ind Airport ;
+
+  fun IpilAirport : Ind Airport ;
+
+  fun IpirangaAirport : Ind Airport ;
+
+  fun IpohAirport : Ind Airport ;
+
+  fun IpotaAirport : Ind Airport ;
+
+  fun IpswichAirport : Ind Airport ;
+
+  fun IraanMunicipalTXAirport : Ind Airport ;
+
+  fun IreceBAAirport : Ind Airport ;
+
+  fun IringaAirport : Ind Airport ;
+
+  fun IrionaAirport : Ind Airport ;
+
+  fun IrkutskIrkutskAirport : Ind Airport ;
+
+  fun IsabelPassAKAirport : Ind Airport ;
+
+  fun IsafjordurAirport : Ind Airport ;
+
+  fun IschiaAirport : Ind Airport ;
+
+  fun IscuandeAirport : Ind Airport ;
+
+  fun IsfahanAirport : Ind Airport ;
+
+  fun IshhurdiAirport : Ind Airport ;
+
+  fun IshigakiAirport : Ind Airport ;
+
+  fun IsisfordQueenslandAirport : Ind Airport ;
+
+  fun IslaMujersAirport : Ind Airport ;
+
+  fun IslamabadAirport : Ind Airport ;
+
+  fun IslandHeliportNYAirport : Ind Airport ;
+
+  fun ItabunaBAAirport : Ind Airport ;
+
+  fun ItacoiatiaraAMAirport : Ind Airport ;
+
+  fun ItaitubaPAAirport : Ind Airport ;
+
+  fun ItajaiSCAirport : Ind Airport ;
+
+  fun ItambacuriMGAirport : Ind Airport ;
+
+  fun ItamiOsakaAirport : Ind Airport ;
+
+  fun ItaquiRSAirport : Ind Airport ;
+
+  fun ItazukeAirForceBaseKyoshuAirport : Ind Airport ;
+
+  fun ItokamaAirport : Ind Airport ;
+
+  fun ItuberaBAAirport : Ind Airport ;
+
+  fun IvaloAirport : Ind Airport ;
+
+  fun IvangradAirport : Ind Airport ;
+
+  fun IvankaBratislavaAirport : Ind Airport ;
+
+  fun IvanoFrankivskIvanoFrankovskIvanoFrankivskAirport : Ind Airport ;
+
+  fun IvanofBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun IvishakAKAirport : Ind Airport ;
+
+  fun IwakuniAirForceBaseHonshuIsAirport : Ind Airport ;
+
+  fun IwamiAirport : Ind Airport ;
+
+  fun IwoJimaAirport : Ind Airport ;
+
+  fun IxtepecAirport : Ind Airport ;
+
+  fun IzhevskUdmurtiaAirport : Ind Airport ;
+
+  fun IzumoAirport : Ind Airport ;
+
+  fun JBMHertzogBloemfonteinAirport : Ind Airport ;
+
+  fun JabalpurAirport : Ind Airport ;
+
+  fun JabatAirport : Ind Airport ;
+
+  fun JabiruNorthernTerritoryAirport : Ind Airport ;
+
+  fun JacareacangaPRAirport : Ind Airport ;
+
+  fun JachelAirport : Ind Airport ;
+
+  fun JackEdwardsALAirport : Ind Airport ;
+
+  fun JackMcNamaraFieldCAAirport : Ind Airport ;
+
+  fun JackpotAirportHaydenFieldNVAirport : Ind Airport ;
+
+  fun JacksonCountyAirportReynoldsFieldMIAirport : Ind Airport ;
+
+  fun JacksonHoleWYAirport : Ind Airport ;
+
+  fun JacksonInternationalMSAirport : Ind Airport ;
+
+  fun JacksonvilleInternationalFLAirport : Ind Airport ;
+
+  fun JacksonvilleMunicipalILAirport : Ind Airport ;
+
+  fun JacobabadAirport : Ind Airport ;
+
+  fun JacobinaBAAirport : Ind Airport ;
+
+  fun JacouinotBayAirport : Ind Airport ;
+
+  fun JaenAirport : Ind Airport ;
+
+  fun JaffnaAirport : Ind Airport ;
+
+  fun JaffreyMunicipalSilverRanchNHAirport : Ind Airport ;
+
+  fun JagdalpurAirport : Ind Airport ;
+
+  fun JaipurAirport : Ind Airport ;
+
+  fun JaisalmerAirport : Ind Airport ;
+
+  fun JalalabadAirport : Ind Airport ;
+
+  fun JalapaAirport : Ind Airport ;
+
+  fun JambaAirport : Ind Airport ;
+
+  fun JambiAirport : Ind Airport ;
+
+  fun JambolAirport : Ind Airport ;
+
+  fun JamesMCoxDaytonInternationalOHAirport : Ind Airport ;
+
+  fun JamestownMunicipalNDAirport : Ind Airport ;
+
+  fun JammuAirport : Ind Airport ;
+
+  fun JamnagarAirport : Ind Airport ;
+
+  fun JamshedpurAirport : Ind Airport ;
+
+  fun JanSmutsJohannesburgAirport : Ind Airport ;
+
+  fun JanakpurAirport : Ind Airport ;
+
+  fun JandakotWesternAustraliaAirport : Ind Airport ;
+
+  fun JanuariaMGAirport : Ind Airport ;
+
+  fun JaqueAirport : Ind Airport ;
+
+  fun JasperCountyAirportBellFieldTXAirport : Ind Airport ;
+
+  fun JaujaAirport : Ind Airport ;
+
+  fun JeffcoCOAirport : Ind Airport ;
+
+  fun JeffersonCityMemorialMOAirport : Ind Airport ;
+
+  fun JeffersonCountyAirparkOHAirport : Ind Airport ;
+
+  fun JeffersonCountyTXAirport : Ind Airport ;
+
+  fun JeffersonMunicipalIAAirport : Ind Airport ;
+
+  fun JehAirport : Ind Airport ;
+
+  fun JequieBAAirport : Ind Airport ;
+
+  fun JeremieAirport : Ind Airport ;
+
+  fun JerezdelaFronteraAirport : Ind Airport ;
+
+  fun JerseyAirport : Ind Airport ;
+
+  fun JesoloAirport : Ind Airport ;
+
+  fun JessoreAirport : Ind Airport ;
+
+  fun JesupWayneCountyGAAirport : Ind Airport ;
+
+  fun JevlachNaxcivanAirport : Ind Airport ;
+
+  fun JiParanaROAirport : Ind Airport ;
+
+  fun JiamusiAirport : Ind Airport ;
+
+  fun JianAirport : Ind Airport ;
+
+  fun JianqiaoHangzhouAirport : Ind Airport ;
+
+  fun JiayuguanAirport : Ind Airport ;
+
+  fun JijigaAirport : Ind Airport ;
+
+  fun JilinAirport : Ind Airport ;
+
+  fun JimShearerSouthPAAirport : Ind Airport ;
+
+  fun JimmaAirport : Ind Airport ;
+
+  fun JingdezhenAirport : Ind Airport ;
+
+  fun JinghongAirport : Ind Airport ;
+
+  fun JiningAirport : Ind Airport ;
+
+  fun JinjaAirport : Ind Airport ;
+
+  fun JinjiangAirport : Ind Airport ;
+
+  fun JinquanAirport : Ind Airport ;
+
+  fun JinzhouAirport : Ind Airport ;
+
+  fun JipijapaAirport : Ind Airport ;
+
+  fun JiriAirport : Ind Airport ;
+
+  fun JiujiangAirport : Ind Airport ;
+
+  fun JiwaniAirport : Ind Airport ;
+
+  fun JoacabaSCAirport : Ind Airport ;
+
+  fun JoaoPessoaPBAirport : Ind Airport ;
+
+  fun JodhpurAirport : Ind Airport ;
+
+  fun JoeFossFieldSDAirport : Ind Airport ;
+
+  fun JoensuuAirport : Ind Airport ;
+
+  fun JohannesburgHeliportJohannesburgAirport : Ind Airport ;
+
+  fun JohnCTuneTNAirport : Ind Airport ;
+
+  fun JohnDayStateORAirport : Ind Airport ;
+
+  fun JohnFKennedyInternationalNYAirport : Ind Airport ;
+
+  fun JohnFKennedyMemorialWIAirport : Ind Airport ;
+
+  fun JohnsonAtollJohnstonIslandAirport : Ind Airport ;
+
+  fun JohnsonCityTXAirport : Ind Airport ;
+
+  fun JohnsonCountyWYAirport : Ind Airport ;
+
+  fun JohnstownCambriaCountyPAAirport : Ind Airport ;
+
+  fun JohorBahruAirport : Ind Airport ;
+
+  fun JoinvilleSCAirport : Ind Airport ;
+
+  fun JolietParkDistrictILAirport : Ind Airport ;
+
+  fun JoloAirport : Ind Airport ;
+
+  fun JomsomAirport : Ind Airport ;
+
+  fun JonesboroMunicipalARAirport : Ind Airport ;
+
+  fun JonkopingAirport : Ind Airport ;
+
+  fun JoplinRegionalMOAirport : Ind Airport ;
+
+  fun JordanMTAirport : Ind Airport ;
+
+  fun JorgeWilstermanCochabambaAirport : Ind Airport ;
+
+  fun JorhatAirport : Ind Airport ;
+
+  fun JosAirport : Ind Airport ;
+
+  fun JoseAAnzoateguiBarcelonaAirport : Ind Airport ;
+
+  fun JosedeSanMartinAirport : Ind Airport ;
+
+  fun JosephstaalAirport : Ind Airport ;
+
+  fun JoshuaSanfordFieldWIAirport : Ind Airport ;
+
+  fun JoufAirport : Ind Airport ;
+
+  fun JouniehAirport : Ind Airport ;
+
+  fun JuanjuiAirport : Ind Airport ;
+
+  fun JuanlesPinsAirport : Ind Airport ;
+
+  fun JuaraAirport : Ind Airport ;
+
+  fun JuazeirodoNorteCEAirport : Ind Airport ;
+
+  fun JubaAirport : Ind Airport ;
+
+  fun JuinaMGAirport : Ind Airport ;
+
+  fun JuistAirport : Ind Airport ;
+
+  fun JuizdoForaMGAirport : Ind Airport ;
+
+  fun JujuyAirport : Ind Airport ;
+
+  fun JuliaCreekQueenslandAirport : Ind Airport ;
+
+  fun JuliacaAirport : Ind Airport ;
+
+  fun JulianCarrollKYAirport : Ind Airport ;
+
+  fun JulianehabAirport : Ind Airport ;
+
+  fun JumlaAirport : Ind Airport ;
+
+  fun JundahQueenslandAirport : Ind Airport ;
+
+  fun JuneauHarborSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun JuneauInternationalAKAirport : Ind Airport ;
+
+  fun JuninAirport : Ind Airport ;
+
+  fun JuradoAirport : Ind Airport ;
+
+  fun JurienBayWesternAustraliaAirport : Ind Airport ;
+
+  fun JuruenaMGAirport : Ind Airport ;
+
+  fun JuticalpaAirport : Ind Airport ;
+
+  fun JuzhowAirport : Ind Airport ;
+
+  fun JwanengAirport : Ind Airport ;
+
+  fun JyvaskylaJyvaeskylaeAirport : Ind Airport ;
+
+  fun KaanapaliHIAirport : Ind Airport ;
+
+  fun KabaenaAirport : Ind Airport ;
+
+  fun KabalaAirport : Ind Airport ;
+
+  fun KabalegaAirport : Ind Airport ;
+
+  fun KabaloAirport : Ind Airport ;
+
+  fun KabindaAirport : Ind Airport ;
+
+  fun KabriDarAirport : Ind Airport ;
+
+  fun KabulKhabulAirport : Ind Airport ;
+
+  fun KabwumAirport : Ind Airport ;
+
+  fun KacmaAirport : Ind Airport ;
+
+  fun KadalaChitaAirport : Ind Airport ;
+
+  fun KadenaAirForceBaseRyukyuIsAirport : Ind Airport ;
+
+  fun KadunaAirport : Ind Airport ;
+
+  fun KaediAirport : Ind Airport ;
+
+  fun KaeleAirport : Ind Airport ;
+
+  fun KagiAirport : Ind Airport ;
+
+  fun KagoshimaKyushuAirport : Ind Airport ;
+
+  fun KaguaAirport : Ind Airport ;
+
+  fun KaiTakInternationalHongKongAirport : Ind Airport ;
+
+  fun KaiapitAirport : Ind Airport ;
+
+  fun KaieteurAirport : Ind Airport ;
+
+  fun KaikoheAirport : Ind Airport ;
+
+  fun KaikoruaAirport : Ind Airport ;
+
+  fun KailashaharAirport : Ind Airport ;
+
+  fun KaimanaAirport : Ind Airport ;
+
+  fun KaintibaAirport : Ind Airport ;
+
+  fun KaiserslauternAirport : Ind Airport ;
+
+  fun KaitaiaAirport : Ind Airport ;
+
+  fun KajaaniAirport : Ind Airport ;
+
+  fun KakeSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KakhonakAKAirport : Ind Airport ;
+
+  fun KakiovikAKAirport : Ind Airport ;
+
+  fun KalaboAirport : Ind Airport ;
+
+  fun KalakaketAKAirport : Ind Airport ;
+
+  fun KalamataAirport : Ind Airport ;
+
+  fun KalamazooBattleCreekInternationalMIAirport : Ind Airport ;
+
+  fun KalatAirport : Ind Airport ;
+
+  fun KalbarriWesternAustraliaAirport : Ind Airport ;
+
+  fun KalemieAirport : Ind Airport ;
+
+  fun KalemyoAirport : Ind Airport ;
+
+  fun KalgoorlieWesternAustraliaAirport : Ind Airport ;
+
+  fun KaliboAirport : Ind Airport ;
+
+  fun KalimaAirport : Ind Airport ;
+
+  fun KaliningradKaliningradAirport : Ind Airport ;
+
+  fun KalkurungAirport : Ind Airport ;
+
+  fun KalmarAirport : Ind Airport ;
+
+  fun KalokolAirport : Ind Airport ;
+
+  fun KalpowarQueenslandAirport : Ind Airport ;
+
+  fun KalskagAKAirport : Ind Airport ;
+
+  fun KaltagAKAirport : Ind Airport ;
+
+  fun KamalpurAirport : Ind Airport ;
+
+  fun KamaranDownsQueenslandAirport : Ind Airport ;
+
+  fun KamaranIslandAirport : Ind Airport ;
+
+  fun KamarangAirport : Ind Airport ;
+
+  fun KambaldaWesternAustraliaAirport : Ind Airport ;
+
+  fun KambuayaAirport : Ind Airport ;
+
+  fun KamembeAirport : Ind Airport ;
+
+  fun KameshliAirport : Ind Airport ;
+
+  fun KamileroiQueenslandAirport : Ind Airport ;
+
+  fun KaminaAirport : Ind Airport ;
+
+  fun KaminaAirportZaire : Ind Airport ;
+
+  fun KamirabaAirport : Ind Airport ;
+
+  fun KammarataAirport : Ind Airport ;
+
+  fun KampalaAirport : Ind Airport ;
+
+  fun KampalaEntebbeAirport : Ind Airport ;
+
+  fun KampotAirport : Ind Airport ;
+
+  fun KamulaiAirport : Ind Airport ;
+
+  fun KamusiAirport : Ind Airport ;
+
+  fun KamyanetsPodilskyyKamenetsPodolskiyKhmelnytskyyAirport : Ind Airport ;
+
+  fun KanabMunicipalUTAirport : Ind Airport ;
+
+  fun KanabeaAirport : Ind Airport ;
+
+  fun KanainjAirport : Ind Airport ;
+
+  fun KanangaAirport : Ind Airport ;
+
+  fun KanazawaKomatsuAirport : Ind Airport ;
+
+  fun KandaharAirport : Ind Airport ;
+
+  fun KandavuAirport : Ind Airport ;
+
+  fun KandepAirport : Ind Airport ;
+
+  fun KandiAirport : Ind Airport ;
+
+  fun KandlaAirport : Ind Airport ;
+
+  fun KandrianAirport : Ind Airport ;
+
+  fun KangambaAirport : Ind Airport ;
+
+  fun KanganAirport : Ind Airport ;
+
+  fun KangnungAirport : Ind Airport ;
+
+  fun KaniamaAirport : Ind Airport ;
+
+  fun KankanAirport : Ind Airport ;
+
+  fun KanoAirport : Ind Airport ;
+
+  fun KanombeKigaliAirport : Ind Airport ;
+
+  fun KanpurAirport : Ind Airport ;
+
+  fun KansaiOsakaAirport : Ind Airport ;
+
+  fun KanuaAirport : Ind Airport ;
+
+  fun KaolackAirport : Ind Airport ;
+
+  fun KapaluaWestMauiHIAirport : Ind Airport ;
+
+  fun KapangaAirport : Ind Airport ;
+
+  fun KapitSarawakAirport : Ind Airport ;
+
+  fun KarKarAirport : Ind Airport ;
+
+  fun KarachiAirport : Ind Airport ;
+
+  fun KaramayAirport : Ind Airport ;
+
+  fun KaranamboAirport : Ind Airport ;
+
+  fun KarasabaiAirport : Ind Airport ;
+
+  fun KarasburgAirport : Ind Airport ;
+
+  fun KaratoAirport : Ind Airport ;
+
+  fun KarawariAirport : Ind Airport ;
+
+  fun KardjaliAirport : Ind Airport ;
+
+  fun KardlaAirport : Ind Airport ;
+
+  fun KaribaAirport : Ind Airport ;
+
+  fun KarimuiAirport : Ind Airport ;
+
+  fun KarlovyVaryAirport : Ind Airport ;
+
+  fun KarlskogaAirport : Ind Airport ;
+
+  fun KarlstadAirport : Ind Airport ;
+
+  fun KarlukAKAirport : Ind Airport ;
+
+  fun KarlukLakeSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KarmoyHaugesundAirport : Ind Airport ;
+
+  fun KarongaAirport : Ind Airport ;
+
+  fun KaroolaAirport : Ind Airport ;
+
+  fun KarpathosAirport : Ind Airport ;
+
+  fun KarrathaWesternAustraliaAirport : Ind Airport ;
+
+  fun KarubagaAirport : Ind Airport ;
+
+  fun KarumbaQueenslandAirport : Ind Airport ;
+
+  fun KarupAirport : Ind Airport ;
+
+  fun KasaanSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KasamaAirport : Ind Airport ;
+
+  fun KasaneAirport : Ind Airport ;
+
+  fun KasanombeAirport : Ind Airport ;
+
+  fun KasengaAirport : Ind Airport ;
+
+  fun KaseseAirport : Ind Airport ;
+
+  fun KashiAirport : Ind Airport ;
+
+  fun KasiglukAKAirport : Ind Airport ;
+
+  fun KasikasimaAirport : Ind Airport ;
+
+  fun KasongoLundaAirport : Ind Airport ;
+
+  fun KasosIslandCreteAirport : Ind Airport ;
+
+  fun KassalaAirport : Ind Airport ;
+
+  fun KasselAirport : Ind Airport ;
+
+  fun KastelorizoAirport : Ind Airport ;
+
+  fun KastoriaAirport : Ind Airport ;
+
+  fun KastrupKobenhavnCopenhagenAirport : Ind Airport ;
+
+  fun KasunguAirport : Ind Airport ;
+
+  fun KatanningWesternAustraliaAirport : Ind Airport ;
+
+  fun KatherineNorthernTerritoryAirport : Ind Airport ;
+
+  fun KatoAirport : Ind Airport ;
+
+  fun KatunayakeColomboAirport : Ind Airport ;
+
+  fun KauAirport : Ind Airport ;
+
+  fun KauhajokiAirport : Ind Airport ;
+
+  fun KauhavaAirport : Ind Airport ;
+
+  fun KaukuraAirport : Ind Airport ;
+
+  fun KaunasAirport : Ind Airport ;
+
+  fun KavallaKavalaAirport : Ind Airport ;
+
+  fun KavanayenAirport : Ind Airport ;
+
+  fun KaviengAirport : Ind Airport ;
+
+  fun KawadjiaAirport : Ind Airport ;
+
+  fun KawauIslandAirport : Ind Airport ;
+
+  fun KawitoAirport : Ind Airport ;
+
+  fun KawthaungAirport : Ind Airport ;
+
+  fun KayesAirport : Ind Airport ;
+
+  fun KayseriAirport : Ind Airport ;
+
+  fun KazanTatarstanAirport : Ind Airport ;
+
+  fun KeaholeKonaInternationalHIAirport : Ind Airport ;
+
+  fun KearneyMunicipalNEAirport : Ind Airport ;
+
+  fun KebarAirport : Ind Airport ;
+
+  fun KedougouAirport : Ind Airport ;
+
+  fun KeeslerAirForceBaseMSAirport : Ind Airport ;
+
+  fun KeetmanshoopAirport : Ind Airport ;
+
+  fun KefaloniaKefalliniaAirport : Ind Airport ;
+
+  fun KeflavikReykjavikAirport : Ind Airport ;
+
+  fun KegelmanAirForceAuxiliaryFieldOKAirport : Ind Airport ;
+
+  fun KeglsuglAirport : Ind Airport ;
+
+  fun KeisahAirport : Ind Airport ;
+
+  fun KekanaKauaiAirport : Ind Airport ;
+
+  fun KelleAirport : Ind Airport ;
+
+  fun KelpBayAKAirport : Ind Airport ;
+
+  fun KelseyMBAirport : Ind Airport ;
+
+  fun KelsoLongviewWAAirport : Ind Airport ;
+
+  fun KeluangAirport : Ind Airport ;
+
+  fun KemerovoKemerovoAirport : Ind Airport ;
+
+  fun KemmererMunicipalWYAirport : Ind Airport ;
+
+  fun KempseyNewSouthWalesAirport : Ind Airport ;
+
+  fun KenaiMunicipalAKAirport : Ind Airport ;
+
+  fun KenemaAirport : Ind Airport ;
+
+  fun KengtungAirport : Ind Airport ;
+
+  fun KeniebaAirport : Ind Airport ;
+
+  fun KeningauAirport : Ind Airport ;
+
+  fun KenmoreAirHarborIncSeaplaneBaseWAAirport : Ind Airport ;
+
+  fun KennettMemorialMOAirport : Ind Airport ;
+
+  fun KennyCoveAirport : Ind Airport ;
+
+  fun KenoshaMunicipalWIAirport : Ind Airport ;
+
+  fun KentCountyInternationalMIAirport : Ind Airport ;
+
+  fun KentlandMunicipalINAirport : Ind Airport ;
+
+  fun KeokukMunicipalIAAirport : Ind Airport ;
+
+  fun KepiAirport : Ind Airport ;
+
+  fun KeramaAirport : Ind Airport ;
+
+  fun KerangVictoriaAirport : Ind Airport ;
+
+  fun KerchKrymCrimeaAirport : Ind Airport ;
+
+  fun KeremaAirport : Ind Airport ;
+
+  fun KerichoAirport : Ind Airport ;
+
+  fun KerikeriBayofIslandsAirport : Ind Airport ;
+
+  fun KerinciSamatraAirport : Ind Airport ;
+
+  fun KerioValleyAirport : Ind Airport ;
+
+  fun KerkyraCorfuAirport : Ind Airport ;
+
+  fun KermanAirport : Ind Airport ;
+
+  fun KermanshahAirport : Ind Airport ;
+
+  fun KerrvilleMunicipalAirportLouisSchreinerFieldTXAirport : Ind Airport ;
+
+  fun KertehAirport : Ind Airport ;
+
+  fun KeruaAirport : Ind Airport ;
+
+  fun KeshodAirport : Ind Airport ;
+
+  fun KetapangBorneoAirport : Ind Airport ;
+
+  fun KetchikanInternationalAKAirport : Ind Airport ;
+
+  fun KewaneeMunicipalILAirport : Ind Airport ;
+
+  fun KeyLargoFLAirport : Ind Airport ;
+
+  fun KeyWestInternationalFLAirport : Ind Airport ;
+
+  fun KhajurahoAirport : Ind Airport ;
+
+  fun KhamisMushayatAbhaAirport : Ind Airport ;
+
+  fun KhamisMuskaytAirport : Ind Airport ;
+
+  fun KhamtiAirport : Ind Airport ;
+
+  fun KhanehAirport : Ind Airport ;
+
+  fun KharkAirport : Ind Airport ;
+
+  fun KharkivKharkovKharkivAirport : Ind Airport ;
+
+  fun KhartoumAirport : Ind Airport ;
+
+  fun KhasabAirport : Ind Airport ;
+
+  fun KhashmelGirbaAirport : Ind Airport ;
+
+  fun KhaskovoAirport : Ind Airport ;
+
+  fun KhersonMykolayivAirport : Ind Airport ;
+
+  fun KhmelnytskyyKhmelnitskiyKhmelnytskyyAirport : Ind Airport ;
+
+  fun KhonKaenAirport : Ind Airport ;
+
+  fun KhongAirport : Ind Airport ;
+
+  fun KhostAirport : Ind Airport ;
+
+  fun KhowaiAirport : Ind Airport ;
+
+  fun KhulnaAirport : Ind Airport ;
+
+  fun KhuzdarAirport : Ind Airport ;
+
+  fun KhwahanAirport : Ind Airport ;
+
+  fun KhwaiRiverLandingAirport : Ind Airport ;
+
+  fun KibrisAirport : Ind Airport ;
+
+  fun KickapooDowntownAirparkTXAirport : Ind Airport ;
+
+  fun KielAirport : Ind Airport ;
+
+  fun KietaAirport : Ind Airport ;
+
+  fun KiffaAirport : Ind Airport ;
+
+  fun KikaigaShimaAirport : Ind Airport ;
+
+  fun KikinondaAirport : Ind Airport ;
+
+  fun KikoriAirport : Ind Airport ;
+
+  fun KikwitAirport : Ind Airport ;
+
+  fun KilaguniAirport : Ind Airport ;
+
+  fun KiliKiliIslandAirport : Ind Airport ;
+
+  fun KilimanjaroAirport : Ind Airport ;
+
+  fun KilkennyAirport : Ind Airport ;
+
+  fun KillarneyKerryCountyAirport : Ind Airport ;
+
+  fun KilleenMunicipalTXAirport : Ind Airport ;
+
+  fun KilwaAirport : Ind Airport ;
+
+  fun KilwaAirportTanzania : Ind Airport ;
+
+  fun KimamAirport : Ind Airport ;
+
+  fun KimballMunicipalAirportRobertEArrajFieldNEAirport : Ind Airport ;
+
+  fun KimbeHoskinsAirport : Ind Airport ;
+
+  fun KimberleyAirport : Ind Airport ;
+
+  fun KimberlyDownsWesternAustraliaAirport : Ind Airport ;
+
+  fun KimbleCountyTXAirport : Ind Airport ;
+
+  fun KincheldeAirForceBaseMIAirport : Ind Airport ;
+
+  fun KindambaAirport : Ind Airport ;
+
+  fun KindleyFieldBermudaAirport : Ind Airport ;
+
+  fun KinduAirport : Ind Airport ;
+
+  fun KingAbdulAzizJeddahAirport : Ind Airport ;
+
+  fun KingCoveAKAirport : Ind Airport ;
+
+  fun KingIslandTasmaniaAirport : Ind Airport ;
+
+  fun KingSalmonAKAirport : Ind Airport ;
+
+  fun KingaroyQueenslandAirport : Ind Airport ;
+
+  fun KingfisherLakeAerodromeONAirport : Ind Airport ;
+
+  fun KingmanAZAirport : Ind Airport ;
+
+  fun KingsCanyonNorthernTerritoryAirport : Ind Airport ;
+
+  fun KingsCreekStationAirport : Ind Airport ;
+
+  fun KingscoteKangarooIslandSouthAustraliaAirport : Ind Airport ;
+
+  fun KinmenAirport : Ind Airport ;
+
+  fun KinstonRegionalJetportatStallingsFieldNCAirport : Ind Airport ;
+
+  fun KipnukAKAirport : Ind Airport ;
+
+  fun KiraAirport : Ind Airport ;
+
+  fun KirakiraAirport : Ind Airport ;
+
+  fun KiriAirport : Ind Airport ;
+
+  fun KirkimbieAirport : Ind Airport ;
+
+  fun KirksvilleRegionalMOAirport : Ind Airport ;
+
+  fun KirkukAirport : Ind Airport ;
+
+  fun KirkwallOrkneyIslandsAirport : Ind Airport ;
+
+  fun KirovohradKirovogradKirovohradAirport : Ind Airport ;
+
+  fun KirschMunicipalMIAirport : Ind Airport ;
+
+  fun KirunaAirport : Ind Airport ;
+
+  fun KirunduAirport : Ind Airport ;
+
+  fun KiryatShmonaAirport : Ind Airport ;
+
+  fun KisenganAirport : Ind Airport ;
+
+  fun KishIslandAirport : Ind Airport ;
+
+  fun KismayuAirport : Ind Airport ;
+
+  fun KissidougouAirport : Ind Airport ;
+
+  fun KisumuAirport : Ind Airport ;
+
+  fun KitaDaitoAirport : Ind Airport ;
+
+  fun KitaKyushuAirport : Ind Airport ;
+
+  fun KitaleAirport : Ind Airport ;
+
+  fun KitavaAirport : Ind Airport ;
+
+  fun KithiraAirport : Ind Airport ;
+
+  fun KitoiBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KitsaultBCAirport : Ind Airport ;
+
+  fun KittilaAirport : Ind Airport ;
+
+  fun KitweAirport : Ind Airport ;
+
+  fun KiungaAirportKenya : Ind Airport ;
+
+  fun KivalinaAKAirport : Ind Airport ;
+
+  fun KiwaiIslandAirport : Ind Airport ;
+
+  fun KiwayuAirport : Ind Airport ;
+
+  fun KizhuyakAKAirport : Ind Airport ;
+
+  fun KjevikKristiansandAirport : Ind Airport ;
+
+  fun KlagBayAKAirport : Ind Airport ;
+
+  fun KlagenfurtAirport : Ind Airport ;
+
+  fun KlaipedaAirport : Ind Airport ;
+
+  fun KlawockAKAirport : Ind Airport ;
+
+  fun KleinzeeAirport : Ind Airport ;
+
+  fun KlerksdorpAirport : Ind Airport ;
+
+  fun KnokkeHeistZouteAirport : Ind Airport ;
+
+  fun KnoxArmyHeliportALAirport : Ind Airport ;
+
+  fun KnoxvilleDowntownIslandTNAirport : Ind Airport ;
+
+  fun KochiAirport : Ind Airport ;
+
+  fun KodiakAKAirport : Ind Airport ;
+
+  fun KodiakMunicipalAKAirport : Ind Airport ;
+
+  fun KoelnKolnAirport : Ind Airport ;
+
+  fun KoinambeAirport : Ind Airport ;
+
+  fun KoingnaasAirport : Ind Airport ;
+
+  fun KokeKathiemLopBuriAirport : Ind Airport ;
+
+  fun KokodaAirport : Ind Airport ;
+
+  fun KokonaoAirport : Ind Airport ;
+
+  fun KokoroAirport : Ind Airport ;
+
+  fun KokrinesAKAirport : Ind Airport ;
+
+  fun KokshetauKokchetavKokshetauAirport : Ind Airport ;
+
+  fun KolAirport : Ind Airport ;
+
+  fun KoldaAirport : Ind Airport ;
+
+  fun KolhapurAirport : Ind Airport ;
+
+  fun KolweziAirport : Ind Airport ;
+
+  fun KomacoAirport : Ind Airport ;
+
+  fun KomoMandaAirport : Ind Airport ;
+
+  fun KomoroDiliAirport : Ind Airport ;
+
+  fun KompiamAirport : Ind Airport ;
+
+  fun KompongChhnangAirport : Ind Airport ;
+
+  fun KompongThomAirport : Ind Airport ;
+
+  fun KompongsomAirport : Ind Airport ;
+
+  fun KomsomolskNaAmureKhabarovskAirport : Ind Airport ;
+
+  fun KonawarukAirport : Ind Airport ;
+
+  fun KoneAirport : Ind Airport ;
+
+  fun KongeAirport : Ind Airport ;
+
+  fun KongiganakAKAirport : Ind Airport ;
+
+  fun KongoboumbaAirport : Ind Airport ;
+
+  fun KongoloAirport : Ind Airport ;
+
+  fun KonoAirport : Ind Airport ;
+
+  fun KontumAirport : Ind Airport ;
+
+  fun KonyaAirport : Ind Airport ;
+
+  fun KoolatahQueenslandAirport : Ind Airport ;
+
+  fun KoolburraQueenslandAirport : Ind Airport ;
+
+  fun KoonibbaSouthAustraliaAirport : Ind Airport ;
+
+  fun KopiagoAirport : Ind Airport ;
+
+  fun KorhogoAirport : Ind Airport ;
+
+  fun KorlaAirport : Ind Airport ;
+
+  fun KoroAirport : Ind Airport ;
+
+  fun KorobaAirport : Ind Airport ;
+
+  fun KorolevuAirport : Ind Airport ;
+
+  fun KortrijkWevelgemKortrijkAirport : Ind Airport ;
+
+  fun KosKosIslandAirport : Ind Airport ;
+
+  fun KosipeAirport : Ind Airport ;
+
+  fun KosreaKosraeIslandAirport : Ind Airport ;
+
+  fun KostiAirport : Ind Airport ;
+
+  fun KotaAirport : Ind Airport ;
+
+  fun KotaBharuAirport : Ind Airport ;
+
+  fun KotaKinabaluEastAirport : Ind Airport ;
+
+  fun KotabangunAirport : Ind Airport ;
+
+  fun KotabaruAirport : Ind Airport ;
+
+  fun KotakoliAirport : Ind Airport ;
+
+  fun KotlikAKAirport : Ind Airport ;
+
+  fun KotokaAccraAirport : Ind Airport ;
+
+  fun KoulamoutouAirport : Ind Airport ;
+
+  fun KoumacAirport : Ind Airport ;
+
+  fun KoumalaAirport : Ind Airport ;
+
+  fun KoutabaAirport : Ind Airport ;
+
+  fun KoutialaAirport : Ind Airport ;
+
+  fun KowanyamaQueenslandAirport : Ind Airport ;
+
+  fun KoyukAKAirport : Ind Airport ;
+
+  fun KoyukukAKAirport : Ind Airport ;
+
+  fun KozaniAirport : Ind Airport ;
+
+  fun KrabiAirport : Ind Airport ;
+
+  fun KrakorAirport : Ind Airport ;
+
+  fun KramatorskDonetskAirport : Ind Airport ;
+
+  fun KramforsAirport : Ind Airport ;
+
+  fun KranebittenInnsbruckAirport : Ind Airport ;
+
+  fun KrasnodarKrasnodarAirport : Ind Airport ;
+
+  fun KrasnodovskBalkanAirport : Ind Airport ;
+
+  fun KrasnoyarskKrasnoyarskAirport : Ind Airport ;
+
+  fun KratieAirport : Ind Airport ;
+
+  fun KremenchukKremenchugPoltavaAirport : Ind Airport ;
+
+  fun KribiAirport : Ind Airport ;
+
+  fun KristianstadAirport : Ind Airport ;
+
+  fun KrivyyRihKrivoyRogDnipropetrovskAirport : Ind Airport ;
+
+  fun KualaBelaitAirport : Ind Airport ;
+
+  fun KuantanAirport : Ind Airport ;
+
+  fun KubinIslandAirport : Ind Airport ;
+
+  fun KuchingEastAirport : Ind Airport ;
+
+  fun KudatSabahAirport : Ind Airport ;
+
+  fun KufrahAirport : Ind Airport ;
+
+  fun KukunduAirport : Ind Airport ;
+
+  fun KulgeraNorthernTerritoryAirport : Ind Airport ;
+
+  fun KuluAirport : Ind Airport ;
+
+  fun KulusukIslandAirport : Ind Airport ;
+
+  fun KumamotoAirport : Ind Airport ;
+
+  fun KumasiAirport : Ind Airport ;
+
+  fun KumgimAirport : Ind Airport ;
+
+  fun KunsanAirport : Ind Airport ;
+
+  fun KununurraWesternAustraliaAirport : Ind Airport ;
+
+  fun KuopioAirport : Ind Airport ;
+
+  fun KuorevisiAirport : Ind Airport ;
+
+  fun KupianoAirport : Ind Airport ;
+
+  fun KupperNJAirport : Ind Airport ;
+
+  fun KuqaAirport : Ind Airport ;
+
+  fun KuranAirport : Ind Airport ;
+
+  fun KurganKurganAirport : Ind Airport ;
+
+  fun KuriAirport : Ind Airport ;
+
+  fun KuriaAirport : Ind Airport ;
+
+  fun KurumanAirport : Ind Airport ;
+
+  fun KurundiNorthernTerritoryAirport : Ind Airport ;
+
+  fun KurupungAirport : Ind Airport ;
+
+  fun KurwinaAirport : Ind Airport ;
+
+  fun KushimotoAirport : Ind Airport ;
+
+  fun KushiroAirport : Ind Airport ;
+
+  fun KutaisiAirport : Ind Airport ;
+
+  fun KuusamoAirport : Ind Airport ;
+
+  fun KuvumuBukavuAirport : Ind Airport ;
+
+  fun KuwaitAirport : Ind Airport ;
+
+  fun KvernbergetKristiansundAirport : Ind Airport ;
+
+  fun KwaiHarbourAirport : Ind Airport ;
+
+  fun KwangjuAirport : Ind Airport ;
+
+  fun KwethlukAKAirport : Ind Airport ;
+
+  fun KwigillingokSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KyaukpyuAirport : Ind Airport ;
+
+  fun KyauktawAirport : Ind Airport ;
+
+  fun KyleOakleyFieldKYAirport : Ind Airport ;
+
+  fun KyzylTuvaAirport : Ind Airport ;
+
+  fun LaAuroraGuatemalaCityAirport : Ind Airport ;
+
+  fun LaDefenseHeliportParisAirport : Ind Airport ;
+
+  fun LaDesiradeAirport : Ind Airport ;
+
+  fun LaRocheAirport : Ind Airport ;
+
+  fun LaayouneAirport : Ind Airport ;
+
+  fun LakeBrooksSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun LakeBuenaVistaSTOLFLAirport : Ind Airport ;
+
+  fun LakeHavasuCityAZAirport : Ind Airport ;
+
+  fun LakefieldOHAirport : Ind Airport ;
+
+  fun LakelandAirportNobleFLeeMemorialFieldWIAirport : Ind Airport ;
+
+  fun LanderCountyNVAirport : Ind Airport ;
+
+  fun LandskronaHeliportHelsingborAirport : Ind Airport ;
+
+  fun LandvetterGoteborgGothenburgAirport : Ind Airport ;
+
+  fun LangenhagenHannoverAirport : Ind Airport ;
+
+  fun LanseriaAirport : Ind Airport ;
+
+  fun LanzaroteCanaryIslandsAirport : Ind Airport ;
+
+  fun LarsenBayAKAirport : Ind Airport ;
+
+  fun LasVegasHendersonSkyHarborNVAirport : Ind Airport ;
+
+  fun LaughlinAirForceBaseTXAirport : Ind Airport ;
+
+  fun LaughlinBullheadCityAZAirport : Ind Airport ;
+
+  fun LaurenceGHanscomFieldMAAirport : Ind Airport ;
+
+  fun LavonNorthTXAirport : Ind Airport ;
+
+  fun LeCastelletAirport : Ind Airport ;
+
+  fun LeLamentinFortdeFranceAirport : Ind Airport ;
+
+  fun LeaCountyHobbsNMAirport : Ind Airport ;
+
+  fun LeeCFineMemorialMOAirport : Ind Airport ;
+
+  fun LeeGilmerMemorialGAAirport : Ind Airport ;
+
+  fun LeeMDAirport : Ind Airport ;
+
+  fun LeesburgMunicipalAirportGodfreyFieldVAAirport : Ind Airport ;
+
+  fun LegerBecharAirport : Ind Airport ;
+
+  fun LehAirport : Ind Airport ;
+
+  fun LemboHeliportNJAirport : Ind Airport ;
+
+  fun LenaweeCountyMIAirport : Ind Airport ;
+
+  fun LeonardodaVinciFiumicinoRomaRomeAirport : Ind Airport ;
+
+  fun LesCayesAirport : Ind Airport ;
+
+  fun LevelockAKAirport : Ind Airport ;
+
+  fun LewisUniversityILAirport : Ind Airport ;
+
+  fun LexingtonMunicipalNCAirport : Ind Airport ;
+
+  fun LibbyArmyAirFieldSierraVistaMunicipalAZAirport : Ind Airport ;
+
+  fun LilabariAirport : Ind Airport ;
+
+  fun LimaAllenCountyOHAirport : Ind Airport ;
+
+  fun LincolnMunicipalArmyNationalGuardBaseOperationsNEAirport : Ind Airport ;
+
+  fun ListaFarsundAirport : Ind Airport ;
+
+  fun LittleDiomedeIslandAKAirport : Ind Airport ;
+
+  fun LockhartRiversQueenslandAirport : Ind Airport ;
+
+  fun LogansportMunicipalINAirport : Ind Airport ;
+
+  fun LongIslandMacArthurNYAirport : Ind Airport ;
+
+  fun LongPaisaSabahAirport : Ind Airport ;
+
+  fun LongvicDijonAirport : Ind Airport ;
+
+  fun LorraineMetzNancyAirport : Ind Airport ;
+
+  fun LosCanosGuantanamoAirport : Ind Airport ;
+
+  fun LouisBothaDurbanAirport : Ind Airport ;
+
+  fun LovellFieldTNAirport : Ind Airport ;
+
+  fun LowenthalFriedrichshafenAirport : Ind Airport ;
+
+  fun LuanoLubumbashiAirport : Ind Airport ;
+
+  fun LuceCountyHaleMIAirport : Ind Airport ;
+
+  fun LulsgateEnglandAirport : Ind Airport ;
+
+  fun LumbalaAirport : Ind Airport ;
+
+  fun LungiFreetownAirport : Ind Airport ;
+
+  fun LyangasodvKirovAirport : Ind Airport ;
+
+  fun MPokoBanguiAirport : Ind Airport ;
+
+  fun MackallArmyAirFieldNCAirport : Ind Airport ;
+
+  fun MadisonLacQuiParleCountyMNAirport : Ind Airport ;
+
+  fun MaduraiAirport : Ind Airport ;
+
+  fun MaeHongSonAirport : Ind Airport ;
+
+  fun MagadanMagadanAirport : Ind Airport ;
+
+  fun MagnoliaMunicipalARAirport : Ind Airport ;
+
+  fun MahlonSweetFieldORAirport : Ind Airport ;
+
+  fun MajorsTXAirport : Ind Airport ;
+
+  fun MakabanaAirport : Ind Airport ;
+
+  fun MakokolaAirport : Ind Airport ;
+
+  fun MalaMalaAirport : Ind Airport ;
+
+  fun MalagaAirport : Ind Airport ;
+
+  fun MalmiHelsinkiAirport : Ind Airport ;
+
+  fun MalmoHarbourHeliportMalmoAirport : Ind Airport ;
+
+  fun MalmstromAirForceBaseMTAirport : Ind Airport ;
+
+  fun MandelieuCannesAirport : Ind Airport ;
+
+  fun MandjiAirport : Ind Airport ;
+
+  fun MangaloreAirport : Ind Airport ;
+
+  fun MangarevaGambierIslandsAirport : Ind Airport ;
+
+  fun MannyYokoFreetownAirport : Ind Airport ;
+
+  fun ManokotakAKAirport : Ind Airport ;
+
+  fun MansehraAirport : Ind Airport ;
+
+  fun MansionHouseAirport : Ind Airport ;
+
+  fun MaoAirport : Ind Airport ;
+
+  fun MareebaQueenslandAirport : Ind Airport ;
+
+  fun MarhanRAFStationEnglandAirport : Ind Airport ;
+
+  fun MarieGalanteAirport : Ind Airport ;
+
+  fun MarionCountyALAirport : Ind Airport ;
+
+  fun MarionCountyAirportBrownFieldTNAirport : Ind Airport ;
+
+  fun MarionCountyRegionalARAirport : Ind Airport ;
+
+  fun MariscalEstigarribiaAirport : Ind Airport ;
+
+  fun MarkaAmmanAirport : Ind Airport ;
+
+  fun MarketCenterHeliportTXAirport : Ind Airport ;
+
+  fun MarlboroCountySCAirport : Ind Airport ;
+
+  fun MarriottAstrodomeHeliportTXAirport : Ind Airport ;
+
+  fun MarshallArmyAirFieldKSAirport : Ind Airport ;
+
+  fun MaryvilleMemorialMOAirport : Ind Airport ;
+
+  fun MasindiAirport : Ind Airport ;
+
+  fun MasvingoAirport : Ind Airport ;
+
+  fun MatariIsiroAirport : Ind Airport ;
+
+  fun MataveriEasterIsAirport : Ind Airport ;
+
+  fun MaupertusCherbourgAirport : Ind Airport ;
+
+  fun MaxsonAirfieldNYAirport : Ind Airport ;
+
+  fun MayaMayaBrazzavilleAirport : Ind Airport ;
+
+  fun McClellanPalomarCAAirport : Ind Airport ;
+
+  fun McConnellAirForceBaseKSAirport : Ind Airport ;
+
+  fun McCordAKAirport : Ind Airport ;
+
+  fun MeadowsFieldCAAirport : Ind Airport ;
+
+  fun MedellinAirport : Ind Airport ;
+
+  fun MelbourneHeliportVictoriaAirport : Ind Airport ;
+
+  fun MelvilleHallDominicaRoseauAirport : Ind Airport ;
+
+  fun MemorialFieldARAirport : Ind Airport ;
+
+  fun MercerCountyWVAirport : Ind Airport ;
+
+  fun MeridianArmyNationalGuardBaseOperationsMSAirport : Ind Airport ;
+
+  fun MerignacBordeauxAirport : Ind Airport ;
+
+  fun MerleKMudholeSmithAKAirport : Ind Airport ;
+
+  fun MerrillCMeigsILAirport : Ind Airport ;
+
+  fun MerrittIslandFLAirport : Ind Airport ;
+
+  fun MervilleCalonneAirport : Ind Airport ;
+
+  fun MesadelReyCAAirport : Ind Airport ;
+
+  fun MethodistHospitalHeliportCAAirport : Ind Airport ;
+
+  fun MetropolitanAreaBaghdadAirport : Ind Airport ;
+
+  fun MetropolitanAreaBerlinAirport : Ind Airport ;
+
+  fun MetropolitanAreaBucharestAirport : Ind Airport ;
+
+  fun MetropolitanAreaBuenosAiresAirport : Ind Airport ;
+
+  fun MetropolitanAreaILAirport : Ind Airport ;
+
+  fun MetropolitanAreaJakartaAirport : Ind Airport ;
+
+  fun MetropolitanAreaKSAirport : Ind Airport ;
+
+  fun MetropolitanAreaMIAirport : Ind Airport ;
+
+  fun MettelFieldINAirport : Ind Airport ;
+
+  fun MiamiHeliportFLAirport : Ind Airport ;
+
+  fun MicalovoTverAirport : Ind Airport ;
+
+  fun MichaelArmyAirFieldUTAirport : Ind Airport ;
+
+  fun MieleMimbaleAirport : Ind Airport ;
+
+  fun MiguelHidalgoyCostillaGuadalajaraAirport : Ind Airport ;
+
+  fun MihaiKogainiceanuConstantaAirport : Ind Airport ;
+
+  fun MikonosAirport : Ind Airport ;
+
+  fun MiltonKeynesAirport : Ind Airport ;
+
+  fun MiyazakiAirport : Ind Airport ;
+
+  fun MobaAirport : Ind Airport ;
+
+  fun MobileDowntownALAirport : Ind Airport ;
+
+  fun MohamedVCasablancaAirport : Ind Airport ;
+
+  fun MohammedVCasablancaAirport : Ind Airport ;
+
+  fun MondellFieldWYAirport : Ind Airport ;
+
+  fun MonroeCountyINAirport : Ind Airport ;
+
+  fun MonroeNCAirport : Ind Airport ;
+
+  fun MontgomeryCountyAirparkMDAirport : Ind Airport ;
+
+  fun MontgomeryCountyTXAirport : Ind Airport ;
+
+  fun MooreArmyAirFieldMAAirport : Ind Airport ;
+
+  fun MoserBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun MouguluAirport : Ind Airport ;
+
+  fun MountCarmelMunicipalILAirport : Ind Airport ;
+
+  fun MountGunsonSouthAustraliaAirport : Ind Airport ;
+
+  fun MountIsaQueenslandAirport : Ind Airport ;
+
+  fun MountWashingtonRegionalNHAirport : Ind Airport ;
+
+  fun MtGoldworthyWesternAustraliaAirport : Ind Airport ;
+
+  fun MtHagenAirport : Ind Airport ;
+
+  fun MudgeeNewSouthWalesAirport : Ind Airport ;
+
+  fun MuharraqInternationalBahrainAirport : Ind Airport ;
+
+  fun MuldrowAirfieldHeliportOKAirport : Ind Airport ;
+
+  fun MunicipalCrookedAirport : Ind Airport ;
+
+  fun MurrayFieldCAAirport : Ind Airport ;
+
+  fun NAALongBeachPortHelistopCAAirport : Ind Airport ;
+
+  fun NDendeAirport : Ind Airport ;
+
+  fun NDjiliKinshasaAirport : Ind Airport ;
+
+  fun NDjoleAirport : Ind Airport ;
+
+  fun NadiaInternationalAbuDhabiAirport : Ind Airport ;
+
+  fun NahaAirForceBaseOkinawaAirport : Ind Airport ;
+
+  fun NakhonPhanomAirport : Ind Airport ;
+
+  fun NamatanaiAirport : Ind Airport ;
+
+  fun NampulaAirport : Ind Airport ;
+
+  fun NanchangAirport : Ind Airport ;
+
+  fun NanortalikAirport : Ind Airport ;
+
+  fun NantucketMemorialMAAirport : Ind Airport ;
+
+  fun NapaCountyCAAirport : Ind Airport ;
+
+  fun NaplesMunicipalFLAirport : Ind Airport ;
+
+  fun NarssaqAirport : Ind Airport ;
+
+  fun NashvilleInternationalTNAirport : Ind Airport ;
+
+  fun NasikAirport : Ind Airport ;
+
+  fun NationalZaventemBrusselsBruxellesAirport : Ind Airport ;
+
+  fun NatronaCountyInternationalWYAirport : Ind Airport ;
+
+  fun NavalAirFacilityEnglandAirport : Ind Airport ;
+
+  fun NaxosAirport : Ind Airport ;
+
+  fun NeedlesCAAirport : Ind Airport ;
+
+  fun NegageAirport : Ind Airport ;
+
+  fun NegarboAirport : Ind Airport ;
+
+  fun NeghelliAirport : Ind Airport ;
+
+  fun NeilArmstrongOHAirport : Ind Airport ;
+
+  fun NejranAirport : Ind Airport ;
+
+  fun NemaAirport : Ind Airport ;
+
+  fun NenanaMunicipalAKAirport : Ind Airport ;
+
+  fun NeoshoMemorialMOAirport : Ind Airport ;
+
+  fun NepalganjAirport : Ind Airport ;
+
+  fun NeumuensterAirport : Ind Airport ;
+
+  fun NewBedfordMunicipalMAAirport : Ind Airport ;
+
+  fun NewCastleCountyDEAirport : Ind Airport ;
+
+  fun NewHanoverInternationalNCAirport : Ind Airport ;
+
+  fun NewKoliganekAKAirport : Ind Airport ;
+
+  fun NewStuyahokAKAirport : Ind Airport ;
+
+  fun NewarkInternationalNJAirport : Ind Airport ;
+
+  fun NewportBeachCAAirport : Ind Airport ;
+
+  fun NewportStateVTAirport : Ind Airport ;
+
+  fun NewtokAKAirport : Ind Airport ;
+
+  fun NewtonCityCountyKSAirport : Ind Airport ;
+
+  fun NgurahRaiDenpasarBaliAirport : Ind Airport ;
+
+  fun NiagaraFallsInternationalNYAirport : Ind Airport ;
+
+  fun NicaroAirport : Ind Airport ;
+
+  fun NieuenlandBremenAirport : Ind Airport ;
+
+  fun NieuwNickerieNewNickerieAirport : Ind Airport ;
+
+  fun NiigataHonshuAirport : Ind Airport ;
+
+  fun NiihameAirport : Ind Airport ;
+
+  fun NikolskiAKAirport : Ind Airport ;
+
+  fun NimrozAirport : Ind Airport ;
+
+  fun NisAirport : Ind Airport ;
+
+  fun NishinoomoteAirport : Ind Airport ;
+
+  fun NissanIslandAirport : Ind Airport ;
+
+  fun NiueIslandAirport : Ind Airport ;
+
+  fun NjombeAirport : Ind Airport ;
+
+  fun NoiBaiHanoiAirport : Ind Airport ;
+
+  fun NormanManleyKingstonAirport : Ind Airport ;
+
+  fun NorthEleutheraEleutheraAirport : Ind Airport ;
+
+  fun NorthFrontGibraltarAirport : Ind Airport ;
+
+  fun NorthPerryFLAirport : Ind Airport ;
+
+  fun NoumeaAirport : Ind Airport ;
+
+  fun NoumerateGhardaiaAirport : Ind Airport ;
+
+  fun NovyKhabarovskAirport : Ind Airport ;
+
+  fun NowShahrAirport : Ind Airport ;
+
+  fun NuevaGeronaAirport : Ind Airport ;
+
+  fun NumfoorAirport : Ind Airport ;
+
+  fun NzetoAirport : Ind Airport ;
+
+  fun OSullivanArmyAirFieldNationalGuardCAAirport : Ind Airport ;
+
+  fun OaklandConventionCenterHeliportCAAirport : Ind Airport ;
+
+  fun ObbiaAirport : Ind Airport ;
+
+  fun OdienneAirport : Ind Airport ;
+
+  fun OhioUniversityOHAirport : Ind Airport ;
+
+  fun OlatheKSKansasCityAirport : Ind Airport ;
+
+  fun OlgaBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun OntarioHeliportCAAirport : Ind Airport ;
+
+  fun OrangeNewSouthWalesAirport : Ind Airport ;
+
+  fun OrcasIslandWAAirport : Ind Airport ;
+
+  fun OrchidIslandAirport : Ind Airport ;
+
+  fun OrechovisGornaAirport : Ind Airport ;
+
+  fun OrlandoMunicipalFLAirport : Ind Airport ;
+
+  fun OtisArmyNationalGuardBaseMAAirport : Ind Airport ;
+
+  fun OtsegoCountyMIAirport : Ind Airport ;
+
+  fun OuedIraraHassiMessaoudAirport : Ind Airport ;
+
+  fun OutagamieCountyWIAirport : Ind Airport ;
+
+  fun OutlawFieldTNAirport : Ind Airport ;
+
+  fun OuzinkieAKAirport : Ind Airport ;
+
+  fun OwenRobertsGrandCaymanAirport : Ind Airport ;
+
+  fun PageFieldFLAirport : Ind Airport ;
+
+  fun PajasBlancasCordobaAirport : Ind Airport ;
+
+  fun PaleseMacchieBariAirport : Ind Airport ;
+
+  fun PalmasdelMarAirport : Ind Airport ;
+
+  fun PalonegroBucaramangaAirport : Ind Airport ;
+
+  fun PamandziDzaoudziMamoudzouAirport : Ind Airport ;
+
+  fun PanajiAirport : Ind Airport ;
+
+  fun PangbornMemorialWAAirport : Ind Airport ;
+
+  fun ParatebuenoAirport : Ind Airport ;
+
+  fun ParkTenHeliportTXAirport : Ind Airport ;
+
+  fun ParkTownshipMIAirport : Ind Airport ;
+
+  fun ParksSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ParmeBayonneAngletBiarritzAirport : Ind Airport ;
+
+  fun PasadenaCAAirport : Ind Airport ;
+
+  fun PasighatAirport : Ind Airport ;
+
+  fun PasodelosLibresAirport : Ind Airport ;
+
+  fun PatengaChittagongAirport : Ind Airport ;
+
+  fun PathankotAirport : Ind Airport ;
+
+  fun PatrickAirForceBaseFLAirport : Ind Airport ;
+
+  fun PattimuraAmbonAirport : Ind Airport ;
+
+  fun PauloffHarborSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PeachtreeCityAirportFalconFieldGAAirport : Ind Airport ;
+
+  fun PearlsGrenadaGrenvilleAirport : Ind Airport ;
+
+  fun PentagonArmyHeliportDCAirport : Ind Airport ;
+
+  fun PeretolaFirenzeFlorenceAirport : Ind Airport ;
+
+  fun PerimeterGAAirport : Ind Airport ;
+
+  fun PerryFoleyFLAirport : Ind Airport ;
+
+  fun PerryvilleAKAirport : Ind Airport ;
+
+  fun PhiferAirfieldWYAirport : Ind Airport ;
+
+  fun PhilLHudsonMunicipalTXAirport : Ind Airport ;
+
+  fun PhilipSWGoldsonInternationalBelizeCityAirport : Ind Airport ;
+
+  fun PhillipsArmyAirFieldMDAirport : Ind Airport ;
+
+  fun PhoenixDeerValleyMunicipalAZAirport : Ind Airport ;
+
+  fun PhoenixGoodyearMunicipalAZAirport : Ind Airport ;
+
+  fun PhuBonAirport : Ind Airport ;
+
+  fun PhuketAirport : Ind Airport ;
+
+  fun PickensCountyGAAirport : Ind Airport ;
+
+  fun PiedmontTriadInternationalNCAirport : Ind Airport ;
+
+  fun PietarsaariKokkolaAirport : Ind Airport ;
+
+  fun PlantationAirparkGAAirport : Ind Airport ;
+
+  fun PohangAirport : Ind Airport ;
+
+  fun PointBakerSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PointeSalineAirport : Ind Airport ;
+
+  fun PopeFieldINAirport : Ind Airport ;
+
+  fun PorettaCorsicaAirport : Ind Airport ;
+
+  fun PortAuthorityDowntownManhattanWallStreetHeliportNYAirport : Ind Airport ;
+
+  fun PortAuthorityWest30thStreetMidtownHeliportNYAirport : Ind Airport ;
+
+  fun PortBaileySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PortBlairAirport : Ind Airport ;
+
+  fun PortBouetAbidjanAirport : Ind Airport ;
+
+  fun PortClarenceCoastGuardStationAKAirport : Ind Airport ;
+
+  fun PortColumbusInternationalOHAirport : Ind Airport ;
+
+  fun PortEllenIslayAirport : Ind Airport ;
+
+  fun PortFitzroyAirport : Ind Airport ;
+
+  fun PortWilliamsSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PortlandHillsboroORAirport : Ind Airport ;
+
+  fun PortoSeguroBAAirport : Ind Airport ;
+
+  fun PortofAstoriaORAirport : Ind Airport ;
+
+  fun PresidenteStroessnerAsuncionAirport : Ind Airport ;
+
+  fun PretoriaHeliportPretoriaAirport : Ind Airport ;
+
+  fun PrincevilleHIAirport : Ind Airport ;
+
+  fun PrincipedaBeiraROAirport : Ind Airport ;
+
+  fun PryorFieldALAirport : Ind Airport ;
+
+  fun PuertoArmuellaAirport : Ind Airport ;
+
+  fun PyongyangAirport : Ind Airport ;
+
+  fun PyrzowiceKatowiceAirport : Ind Airport ;
+
+  fun QaisumahAirport : Ind Airport ;
+
+  fun QarshiKarshiQashqadaryoAirport : Ind Airport ;
+
+  fun QiemoAirport : Ind Airport ;
+
+  fun QingyangAirport : Ind Airport ;
+
+  fun QishnAirport : Ind Airport ;
+
+  fun QostanayKustanayQostanayAirport : Ind Airport ;
+
+  fun QuamichanLakeWaterAerodromeBCAirport : Ind Airport ;
+
+  fun QuanducAirport : Ind Airport ;
+
+  fun QuartzCreekAKAirport : Ind Airport ;
+
+  fun QueenAliaInternationalAmmanAirport : Ind Airport ;
+
+  fun QueenBeatrixInternationalArubaOranjestadAirport : Ind Airport ;
+
+  fun QuinhagakAKAirport : Ind Airport ;
+
+  fun RAFStationScotlandAirport : Ind Airport ;
+
+  fun RISDDowneyHelistopCAAirport : Ind Airport ;
+
+  fun RIScienceCenterHelistopCAAirport : Ind Airport ;
+
+  fun RaeBareliAirport : Ind Airport ;
+
+  fun RafaelNunezCartagenadeIndiasAirport : Ind Airport ;
+
+  fun RaleighCountyMemorialWVAirport : Ind Airport ;
+
+  fun RanchiAirport : Ind Airport ;
+
+  fun RebiechowoGdanskAirport : Ind Airport ;
+
+  fun RedhillEnglandAirport : Ind Airport ;
+
+  fun RedstoneArmyAirFieldALAirport : Ind Airport ;
+
+  fun RennerFieldGoodlandMunicipalKSAirport : Ind Airport ;
+
+  fun RentschlerCTAirport : Ind Airport ;
+
+  fun RepublicNYAirport : Ind Airport ;
+
+  fun RheinMainAirForceBaseFrankfurtAirport : Ind Airport ;
+
+  fun RheinMainFrankfurtAirport : Ind Airport ;
+
+  fun RheinRuhrDuesseldorfDusseldorfAirport : Ind Airport ;
+
+  fun RheindahlenAirport : Ind Airport ;
+
+  fun RhooseCardiffAirport : Ind Airport ;
+
+  fun RichardsGebaurMOAirport : Ind Airport ;
+
+  fun RinkenbergerRLAILAirport : Ind Airport ;
+
+  fun RioGrandeValleyInternationalTXAirport : Ind Airport ;
+
+  fun RiversideMetroCenterHeliportCAAirport : Ind Airport ;
+
+  fun RobertGrayArmyAirFieldTXAirport : Ind Airport ;
+
+  fun RobertMuellerMunicipalTXAirport : Ind Airport ;
+
+  fun RochambeauCayenneAirport : Ind Airport ;
+
+  fun RockCountyWIAirport : Ind Airport ;
+
+  fun RodriguezBallonArequipaAirport : Ind Airport ;
+
+  fun RonaldswayIsleofManAirport : Ind Airport ;
+
+  fun RorshachAltenrheinAirport : Ind Airport ;
+
+  fun RoscoeTurnerMSAirport : Ind Airport ;
+
+  fun RoscommonCountyMIAirport : Ind Airport ;
+
+  fun RossFieldTwinCitiesMIAirport : Ind Airport ;
+
+  fun SabreArmyHeliportTNAirport : Ind Airport ;
+
+  fun SaharSantaCruzInternationalBombayAirport : Ind Airport ;
+
+  fun SaintGatienDeauvilleAirport : Ind Airport ;
+
+  fun SaintGeoirsGrenobleAirport : Ind Airport ;
+
+  fun SainteCatherineCorsicaAirport : Ind Airport ;
+
+  fun SaissFesFezAirport : Ind Airport ;
+
+  fun SamaraSamaraAirport : Ind Airport ;
+
+  fun SampsonCountyNCAirport : Ind Airport ;
+
+  fun SamuelsFieldKYAirport : Ind Airport ;
+
+  fun SanCarlosdeBarilocheAirport : Ind Airport ;
+
+  fun SanJuanAposentoAirport : Ind Airport ;
+
+  fun SanJuanPuebloNMAirport : Ind Airport ;
+
+  fun SanLuisValleyRegionalAirportBergmanFieldCOAirport : Ind Airport ;
+
+  fun SanRafaelAirport : Ind Airport ;
+
+  fun SanSebastianAirport : Ind Airport ;
+
+  fun SandyRiverORAirport : Ind Airport ;
+
+  fun SanfebagarAirport : Ind Airport ;
+
+  fun SantaCruzFloresIslandAzoresAirport : Ind Airport ;
+
+  fun SantaIsabelAirport : Ind Airport ;
+
+  fun SantaVitoriaMGAirport : Ind Airport ;
+
+  fun SantaYnezCAAirport : Ind Airport ;
+
+  fun SantoAngeloRSAirport : Ind Airport ;
+
+  fun SantoDonHerreraAirport : Ind Airport ;
+
+  fun SantoriniThiraAirport : Ind Airport ;
+
+  fun SaqaniAirport : Ind Airport ;
+
+  fun SargodhaAirport : Ind Airport ;
+
+  fun SaveGoteborgAirport : Ind Airport ;
+
+  fun SchaumburgAirParkILAirport : Ind Airport ;
+
+  fun SchenckFieldIAAirport : Ind Airport ;
+
+  fun SchipholAmsterdamAirport : Ind Airport ;
+
+  fun ScholesFieldTXAirport : Ind Airport ;
+
+  fun SchoolcraftCountyMIAirport : Ind Airport ;
+
+  fun ScottAirForceBaseILAirport : Ind Airport ;
+
+  fun SculthorpeRAFStationEnglandAirport : Ind Airport ;
+
+  fun ScusciubanAirport : Ind Airport ;
+
+  fun SedaliaMemorialMOAirport : Ind Airport ;
+
+  fun SegeAirport : Ind Airport ;
+
+  fun SeiyunAirport : Ind Airport ;
+
+  fun SelaparangMataramAirport : Ind Airport ;
+
+  fun SematanAirport : Ind Airport ;
+
+  fun SenouBamakoAirport : Ind Airport ;
+
+  fun SentaniDjayapuraJayapuraAirport : Ind Airport ;
+
+  fun SepingganBalikpapanAirport : Ind Airport ;
+
+  fun SesquicentenarioSanAndresAirport : Ind Airport ;
+
+  fun SeymourJohnsonAirForceBaseNCAirport : Ind Airport ;
+
+  fun ShaltzFieldKSAirport : Ind Airport ;
+
+  fun ShannonVAAirport : Ind Airport ;
+
+  fun ShaoguanAirport : Ind Airport ;
+
+  fun ShauliajAirport : Ind Airport ;
+
+  fun ShelbyMunicipalNCAirport : Ind Airport ;
+
+  fun ShermanArmyAirFieldKSAirport : Ind Airport ;
+
+  fun ShermanOaksCommunityHospitalHeliportCAAirport : Ind Airport ;
+
+  fun ShillavoAirport : Ind Airport ;
+
+  fun ShimkentChimkentSouthKazakhstanAirport : Ind Airport ;
+
+  fun ShoalCoveAKAirport : Ind Airport ;
+
+  fun ShorehamAirport : Ind Airport ;
+
+  fun ShreveportDowntownLAAirport : Ind Airport ;
+
+  fun ShuteHarbourQueenslandAirport : Ind Airport ;
+
+  fun SiguiriAirport : Ind Airport ;
+
+  fun SikassoAirport : Ind Airport ;
+
+  fun SikorskyHeliportCTAirport : Ind Airport ;
+
+  fun SilcharAirport : Ind Airport ;
+
+  fun SilverBayMunicipalMNAirport : Ind Airport ;
+
+  fun SimikotAirport : Ind Airport ;
+
+  fun SimmonsArmyAirFieldNCAirport : Ind Airport ;
+
+  fun SimonBolivarGuayaquilAirport : Ind Airport ;
+
+  fun SinaloaCuliacanAirport : Ind Airport ;
+
+  fun SindalAirport : Ind Airport ;
+
+  fun SirSeretseKhamaInternationalGaboroneAirport : Ind Airport ;
+
+  fun SitiaCreteAirport : Ind Airport ;
+
+  fun SittweAkyabAirport : Ind Airport ;
+
+  fun SkarduAirport : Ind Airport ;
+
+  fun SkiathosAirport : Ind Airport ;
+
+  fun SkovdeAirport : Ind Airport ;
+
+  fun SkyparkUTAirport : Ind Airport ;
+
+  fun SloulinFieldInternationalNDAirport : Ind Airport ;
+
+  fun SmithReynoldsNCAirport : Ind Airport ;
+
+  fun SoalalaAirport : Ind Airport ;
+
+  fun SoekarnoHattaInternationalJakartaAirport : Ind Airport ;
+
+  fun SogwipoChejuAirport : Ind Airport ;
+
+  fun SongkhiaHatyaiHatYaiAirport : Ind Airport ;
+
+  fun SormavoNizhniyNovgorodAirport : Ind Airport ;
+
+  fun SoummamBejaiaAirport : Ind Airport ;
+
+  fun SouthBigHornCountyWYAirport : Ind Airport ;
+
+  fun SouthBiminiInternationalBiminiAirport : Ind Airport ;
+
+  fun SoutherFieldGAAirport : Ind Airport ;
+
+  fun SouthwestGeorgiaRegionalGAAirport : Ind Airport ;
+
+  fun SpartaFortMcCoyWIAirport : Ind Airport ;
+
+  fun SpetsaiIslandAirport : Ind Airport ;
+
+  fun SpokaneInternationalWAAirport : Ind Airport ;
+
+  fun SpringvaleQueenslandAirport : Ind Airport ;
+
+  fun SquiresGateEnglandAirport : Ind Airport ;
+
+  fun StAndrewsScotlandAirport : Ind Airport ;
+
+  fun StAngeloNorthernIrelandAirport : Ind Airport ;
+
+  fun StCloudHospitalHeliportMNAirport : Ind Airport ;
+
+  fun StDenijsWestremGhentGentAirport : Ind Airport ;
+
+  fun StHelensTasmaniaAirport : Ind Airport ;
+
+  fun StLucieCountyInternationalFLAirport : Ind Airport ;
+
+  fun StMaloDinardPleurtuitAirport : Ind Airport ;
+
+  fun StMarysAKAirport : Ind Airport ;
+
+  fun StMarysEnglandAirport : Ind Airport ;
+
+  fun StPierreAirport : Ind Airport ;
+
+  fun StTropezAirport : Ind Airport ;
+
+  fun StafsbergHamarAirport : Ind Airport ;
+
+  fun StanStamperMunicipalOKAirport : Ind Airport ;
+
+  fun StapletonInternationalCOAirport : Ind Airport ;
+
+  fun SteelPierTajMahalHeliportNJAirport : Ind Airport ;
+
+  fun StephensCountyTXAirport : Ind Airport ;
+
+  fun StouffersHeliportPAAirport : Ind Airport ;
+
+  fun StreakyBaySouthAustraliaAirport : Ind Airport ;
+
+  fun StuartPowellFieldKYAirport : Ind Airport ;
+
+  fun SubangPeninsularAirport : Ind Airport ;
+
+  fun SukkertoppenAirport : Ind Airport ;
+
+  fun SummitLakeBCAirport : Ind Airport ;
+
+  fun SundanceAirparkOKAirport : Ind Airport ;
+
+  fun SungeiTakaiAirport : Ind Airport ;
+
+  fun SunnyvaleCAAirport : Ind Airport ;
+
+  fun SunsetGlendaleCAAirport : Ind Airport ;
+
+  fun SurcinBelgradeBeogradAirport : Ind Airport ;
+
+  fun SussexCountyDEAirport : Ind Airport ;
+
+  fun SvegAirport : Ind Airport ;
+
+  fun SyamsudinNoorBanjarmarsinAirport : Ind Airport ;
+
+  fun SyrosIslandAirport : Ind Airport ;
+
+  fun TSTIWacoJamesConnallTXAirport : Ind Airport ;
+
+  fun TaherJijelAirport : Ind Airport ;
+
+  fun TahnetaPassAKAirport : Ind Airport ;
+
+  fun TakakaAirport : Ind Airport ;
+
+  fun TalaveraLaRealBadajozAirport : Ind Airport ;
+
+  fun TalladegaMunicipalALAirport : Ind Airport ;
+
+  fun TavauxDoleAirport : Ind Airport ;
+
+  fun TaymarHeliportWAAirport : Ind Airport ;
+
+  fun TerredeBasAirport : Ind Airport ;
+
+  fun TerrorBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ThalerhofGrazAirport : Ind Airport ;
+
+  fun TheDallesMunicipalORAirport : Ind Airport ;
+
+  fun TheFrancisSGabreskiNYAirport : Ind Airport ;
+
+  fun TheValleyWallblakeAnguillaAirport : Ind Airport ;
+
+  fun TheWilliamBHartsfieldAtlantaInternationalGAAirport : Ind Airport ;
+
+  fun TheWoodlandsMemorialHospitalHeliportTXAirport : Ind Airport ;
+
+  fun ThomasCRussellFieldALAirport : Ind Airport ;
+
+  fun ThompsonRobbinsARAirport : Ind Airport ;
+
+  fun ThorneBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ThreeRiversMunicipalDrHainesMIAirport : Ind Airport ;
+
+  fun TikchikLodgeAKAirport : Ind Airport ;
+
+  fun TilleBeauvaisAirport : Ind Airport ;
+
+  fun TimehriGeorgetownAirport : Ind Airport ;
+
+  fun TinsonKingstonAirport : Ind Airport ;
+
+  fun TiptonArmyAirFieldMDAirport : Ind Airport ;
+
+  fun TirstrupAarhusAirport : Ind Airport ;
+
+  fun TiskaDjanetAirport : Ind Airport ;
+
+  fun TogiakFishAKAirport : Ind Airport ;
+
+  fun TompkinsCountyNYAirport : Ind Airport ;
+
+  fun TornioKemiAirport : Ind Airport ;
+
+  fun TortolaBeefIsAirport : Ind Airport ;
+
+  fun TouatAdrarAirport : Ind Airport ;
+
+  fun TourSinaiCityAirport : Ind Airport ;
+
+  fun TranscoTowerGarageHeliportTXAirport : Ind Airport ;
+
+  fun TriStateMiltonJFergusonFieldWVAirport : Ind Airport ;
+
+  fun TriStateSteubenCountyINAirport : Ind Airport ;
+
+  fun TribhuvanKathmanduAirport : Ind Airport ;
+
+  fun TripoliAirport : Ind Airport ;
+
+  fun TusiArmyHeliportCAAirport : Ind Airport ;
+
+  fun TweedNewHavenCTAirport : Ind Airport ;
+
+  fun TwinCountyVAAirport : Ind Airport ;
+
+  fun UlanhotAirport : Ind Airport ;
+
+  fun UnalaskaAKAirport : Ind Airport ;
+
+  fun UnionCAAirport : Ind Airport ;
+
+  fun UnitedStatesirForceAcademyAirstripCOAirport : Ind Airport ;
+
+  fun UnitedStatesrmyHeliportILAirport : Ind Airport ;
+
+  fun UniversalStudiosCAAirport : Ind Airport ;
+
+  fun UniversityofIllinoisWillardILAirport : Ind Airport ;
+
+  fun UpernavikAirport : Ind Airport ;
+
+  fun UyakAKAirport : Ind Airport ;
+
+  fun UyakSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun VCBirdInternationalCoolidgeAntiguaIsAirport : Ind Airport ;
+
+  fun VagarFaroeIsAirport : Ind Airport ;
+
+  fun ValedeCaesPAAirport : Ind Airport ;
+
+  fun ValleyWalesAirport : Ind Airport ;
+
+  fun VanceAirForceBaseOKAirport : Ind Airport ;
+
+  fun VantaaHelsinkiAirport : Ind Airport ;
+
+  fun VenangoRegionalPAAirport : Ind Airport ;
+
+  fun VermilionCountyILAirport : Ind Airport ;
+
+  fun ViasBeziersAirport : Ind Airport ;
+
+  fun VigraAlesundAalesundAirport : Ind Airport ;
+
+  fun VilhenaROAirport : Ind Airport ;
+
+  fun VinadelMarAirport : Ind Airport ;
+
+  fun VirgilIGrissomMunicipalINAirport : Ind Airport ;
+
+  fun VirginiaTechVAAirport : Ind Airport ;
+
+  fun WHBudBarronGAAirport : Ind Airport ;
+
+  fun WKKelloggMIAirport : Ind Airport ;
+
+  fun WabashMunicipalINAirport : Ind Airport ;
+
+  fun WacoKungoAirport : Ind Airport ;
+
+  fun WacoRegionalTXAirport : Ind Airport ;
+
+  fun WadMedaniAirport : Ind Airport ;
+
+  fun WageningenAirport : Ind Airport ;
+
+  fun WahnBonnAirport : Ind Airport ;
+
+  fun WahooMunicipalNEAirport : Ind Airport ;
+
+  fun WaimanaloHIAirport : Ind Airport ;
+
+  fun WainwrightAKAirport : Ind Airport ;
+
+  fun WainwrightArmyAirFieldAKAirport : Ind Airport ;
+
+  fun WakayaIslandAirport : Ind Airport ;
+
+  fun WakeIslandAirfieldWakeIslandAirport : Ind Airport ;
+
+  fun WalkerFieldCOAirport : Ind Airport ;
+
+  fun WallaWallaRegionalWAAirport : Ind Airport ;
+
+  fun WalnutRidgeRegionalARAirport : Ind Airport ;
+
+  fun WangeroogeAirport : Ind Airport ;
+
+  fun WanigelaAirport : Ind Airport ;
+
+  fun WaraghandyKaragandaQaraghandyAirport : Ind Airport ;
+
+  fun WarmSpringBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun WarnerBrothersStudiosCAAirport : Ind Airport ;
+
+  fun WarrenCountyNYAirport : Ind Airport ;
+
+  fun WasecaMunicipalMNAirport : Ind Airport ;
+
+  fun WashingtonCountyRegionalMDAirport : Ind Airport ;
+
+  fun WashingtonDullesInternationalDCAirport : Ind Airport ;
+
+  fun WashingtonMunicipalIAAirport : Ind Airport ;
+
+  fun WashingtonNationalDCAirport : Ind Airport ;
+
+  fun WashingtonWilkesCountyGAAirport : Ind Airport ;
+
+  fun WaterfallSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun WaterlooMunicipalIAAirport : Ind Airport ;
+
+  fun WatertownInternationalNYAirport : Ind Airport ;
+
+  fun WatertownMunicipalSDAirport : Ind Airport ;
+
+  fun WausauMunicipalWIAirport : Ind Airport ;
+
+  fun WaycrossWareCountyGAAirport : Ind Airport ;
+
+  fun WayneCountyKYAirport : Ind Airport ;
+
+  fun WayneCountyOHAirport : Ind Airport ;
+
+  fun WebsterCityMunicipalIAAirport : Ind Airport ;
+
+  fun WedjhAirport : Ind Airport ;
+
+  fun WeedonFieldALAirport : Ind Airport ;
+
+  fun WeideArmyAirFieldMDAirport : Ind Airport ;
+
+  fun WeiserAirParkTXAirport : Ind Airport ;
+
+  fun WellingtonMunicipalKSAirport : Ind Airport ;
+
+  fun WellsvilleMunicipalAirportTarantineFieldNYAirport : Ind Airport ;
+
+  fun WendoverUTAirport : Ind Airport ;
+
+  fun WestBendMunicipalWIAirport : Ind Airport ;
+
+  fun WestGeorgiaRegionalGAAirport : Ind Airport ;
+
+  fun WestHoustonLakesideTXAirport : Ind Airport ;
+
+  fun WestMemphisMunicipalARAirport : Ind Airport ;
+
+  fun WestPointSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun WestchaseHiltonHeliportTXAirport : Ind Airport ;
+
+  fun WestchesterCountyNYAirport : Ind Airport ;
+
+  fun WesterlandSyltIslandAirport : Ind Airport ;
+
+  fun WestoverAirReserveBaseMetropolitanMAAirport : Ind Airport ;
+
+  fun WexfordCountyMIAirport : Ind Airport ;
+
+  fun WheatlandCountyAirportatHarlowtonMTAirport : Ind Airport ;
+
+  fun WheelerArmyAirFieldHIAirport : Ind Airport ;
+
+  fun WheelingOhioCountyWVAirport : Ind Airport ;
+
+  fun WhitesburgMunicipalKYAirport : Ind Airport ;
+
+  fun WhitsundayKontikiResortLongIslandQueenslandAirport : Ind Airport ;
+
+  fun WhitsundayQueenslandAirport : Ind Airport ;
+
+  fun WichitaMidContinentKSAirport : Ind Airport ;
+
+  fun WileyPostWillRogersMemorialAKAirport : Ind Airport ;
+
+  fun WilkesBarreScrantonInternationalPAAirport : Ind Airport ;
+
+  fun WilkesCountyNCAirport : Ind Airport ;
+
+  fun WilliamBHeiligFieldNEAirport : Ind Airport ;
+
+  fun WilliamPHobbyTXAirport : Ind Airport ;
+
+  fun WilliamRFairchildInternationalWAAirport : Ind Airport ;
+
+  fun WilliamsburgJamestownVAAirport : Ind Airport ;
+
+  fun WilliamsportLycomingCountyPAAirport : Ind Airport ;
+
+  fun WillmarMunicipalAirportJohnLRiceFieldMNAirport : Ind Airport ;
+
+  fun WindhamCTAirport : Ind Airport ;
+
+  fun WingsFieldPAAirport : Ind Airport ;
+
+  fun WinklerCountyTXAirport : Ind Airport ;
+
+  fun WinslowMunicipalAZAirport : Ind Airport ;
+
+  fun WinterHavensGilbertFLAirport : Ind Airport ;
+
+  fun WiscassetMEAirport : Ind Airport ;
+
+  fun WolterMonginsidiKendariAirport : Ind Airport ;
+
+  fun WoodbourneAirStationBlenheimAirport : Ind Airport ;
+
+  fun WoodwardFieldSCAirport : Ind Airport ;
+
+  fun WrightPattersonAirForceBaseOHAirport : Ind Airport ;
+
+  fun WujlabaKunmingAirport : Ind Airport ;
+
+  fun YacuibaAirport : Ind Airport ;
+
+  fun YagouaAirport : Ind Airport ;
+
+  fun YaguaraAirport : Ind Airport ;
+
+  fun YakatagaAKAirport : Ind Airport ;
+
+  fun YakimaFiringCenterArmyAirFieldWAAirport : Ind Airport ;
+
+  fun YakuShimaAirport : Ind Airport ;
+
+  fun YalataMissionSouthAustraliaAirport : Ind Airport ;
+
+  fun YalingaAirport : Ind Airport ;
+
+  fun YalumetAirport : Ind Airport ;
+
+  fun YamagataHonshuAirport : Ind Airport ;
+
+  fun YamoussoukroAirport : Ind Airport ;
+
+  fun YampaValleyCOAirport : Ind Airport ;
+
+  fun YanAnAirport : Ind Airport ;
+
+  fun YapsieiAirport : Ind Airport ;
+
+  fun YariAirport : Ind Airport ;
+
+  fun YasuruAirport : Ind Airport ;
+
+  fun YazdAirport : Ind Airport ;
+
+  fun YeagerWVAirport : Ind Airport ;
+
+  fun YelimaneAirport : Ind Airport ;
+
+  fun YellowstoneRegionalWYAirport : Ind Airport ;
+
+  fun YeringtonMunicipalNVAirport : Ind Airport ;
+
+  fun YinchuanAirport : Ind Airport ;
+
+  fun YoffDakarAirport : Ind Airport ;
+
+  fun YohannesIVAsmaraAirport : Ind Airport ;
+
+  fun YongaiAirport : Ind Airport ;
+
+  fun YorkMunicipalNEAirport : Ind Airport ;
+
+  fun YoshkarOlaJoshkarOlaMariElAirport : Ind Airport ;
+
+  fun YundumBanjulAirport : Ind Airport ;
+
+  fun ZMJackStellFieldARAirport : Ind Airport ;
+
+  fun ZacharBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun ZakoumaAirport : Ind Airport ;
+
+  fun ZambeziAirport : Ind Airport ;
+
+  fun ZanagaAirport : Ind Airport ;
+
+  fun ZapadnyErevanYerevanAirport : Ind Airport ;
+
+  fun ZapalaAirport : Ind Airport ;
+
+  fun ZapatocaAirport : Ind Airport ;
+
+  fun ZegaButaAirport : Ind Airport ;
+
+  fun ZemidAirport : Ind Airport ;
+
+  fun ZhambylDzhambulZhambylAirport : Ind Airport ;
+
+  fun ZhengzhouAirport : Ind Airport ;
+
+  fun ZhezqazghanDzhezkazganZhezqazghanAirport : Ind Airport ;
+
+  fun ZhulyanyKievAirport : Ind Airport ;
+
+  fun ZiaInternationalDhakaAirport : Ind Airport ;
+
+  fun ZielonaGoraAirport : Ind Airport ;
+
+  fun ZilinaAirport : Ind Airport ;
+
+}
diff --git a/examples/SUMO/WorldAirportsL_Z.gf b/examples/SUMO/WorldAirportsL_Z.gf
--- a/examples/SUMO/WorldAirportsL_Z.gf
+++ b/examples/SUMO/WorldAirportsL_Z.gf
@@ -1,10347 +1,10345 @@
-abstract WorldAirportsL_Z = open Merge, Transportation in {
-
-
-
-
-fun ALManghamJrRegionalTXAirport : Ind Airport ;
-
-fun AbbotsfordBCAirport : Ind Airport ;
-
-fun AbengourouAirport : Ind Airport ;
-
-fun AccomackCountyVAAirport : Ind Airport ;
-
-fun AchmadyaniSemarangAirport : Ind Airport ;
-
-fun AdamsFieldARAirport : Ind Airport ;
-
-fun AdirondackNYAirport : Ind Airport ;
-
-fun AdisumarmoSoloCityAirport : Ind Airport ;
-
-fun AerodromoTolosaLaPlataAirport : Ind Airport ;
-
-fun Aeroporto4deFevereiroBelasLuandaAirport : Ind Airport ;
-
-fun AeroportoSantosDumontRJAirport : Ind Airport ;
-
-fun AeroportodaPorteladeSacavemLisboaLisbonAirport : Ind Airport ;
-
-fun AeroportodasLajesAzoresAirport : Ind Airport ;
-
-fun AeropuerodeBajioLeonAirport : Ind Airport ;
-
-fun AeropuertoComodoroArturoMerinoBenitezSantiagodeChileAirport : Ind Airport ;
-
-fun AeropuertoDepartamentaldeRiveraRiveraAirport : Ind Airport ;
-
-fun AeropuertoDepartamentaldeSaltoSaltoAirport : Ind Airport ;
-
-fun AeropuertoGeneralMarianoEscobedoMonterreyAirport : Ind Airport ;
-
-fun AeropuertoInternacionalBenitoJuarezCiudaddeMexicoMexicoCityAirport : Ind Airport ;
-
-fun AeropuertoInternacionalJorgeChavezLimaAirport : Ind Airport ;
-
-fun AeropuertoInternacionalSimonBolivarMaiquetiaAirport : Ind Airport ;
-
-fun AeropuertoInternacionaldelCaribeGeneralSMarinoMargeritaPorlamararAirport : Ind Airport ;
-
-fun AeropuertoInternacionaldelNorteMonterreyAirport : Ind Airport ;
-
-fun AeropuertodelasAmericasSantoDomingoAirport : Ind Airport ;
-
-fun AganaNavalAirStationAganaAirport : Ind Airport ;
-
-fun AgnoLuganoAirport : Ind Airport ;
-
-fun AirBaseOsanAirport : Ind Airport ;
-
-fun AirlieBeachQueenslandAirport : Ind Airport ;
-
-fun AjmanCityAirport : Ind Airport ;
-
-fun AklavikNTAirport : Ind Airport ;
-
-fun AlKharjAirBaseAirport : Ind Airport ;
-
-fun AlThaurahAirport : Ind Airport ;
-
-fun AlagoinhasBAAirport : Ind Airport ;
-
-fun AlamedaNavalAirStationNimitzFieldCAAirport : Ind Airport ;
-
-fun AlamosAirport : Ind Airport ;
-
-fun AlbanyNavalAirStationGAAirport : Ind Airport ;
-
-fun AlbertJEllisNCAirport : Ind Airport ;
-
-fun AlbertWhittedFLAirport : Ind Airport ;
-
-fun AlbiAirport : Ind Airport ;
-
-fun AlcootaNorthernTerritoryAirport : Ind Airport ;
-
-fun AlegAirport : Ind Airport ;
-
-fun AleknagikAKAirport : Ind Airport ;
-
-fun AlertBayBCAirport : Ind Airport ;
-
-fun AlertNTAirport : Ind Airport ;
-
-fun AlexanderHamiltonStCroixAirport : Ind Airport ;
-
-fun AlhegroSassariSardiniaAirport : Ind Airport ;
-
-fun AliceArmSilverCityWaterAerodromeBCAirport : Ind Airport ;
-
-fun AlmaQCAirport : Ind Airport ;
-
-fun AlmeloAirport : Ind Airport ;
-
-fun AlmeriaAirport : Ind Airport ;
-
-fun AlmiranteZarTrelewAirport : Ind Airport ;
-
-fun AltaLakeBCAirport : Ind Airport ;
-
-fun AltoPalenaAirport : Ind Airport ;
-
-fun AltusAirForceBaseOKAirport : Ind Airport ;
-
-fun AmbatondrazakaAirport : Ind Airport ;
-
-fun AmborovyMahajangaMajungaAirport : Ind Airport ;
-
-fun AmbregrisCayeSanPedroAirport : Ind Airport ;
-
-fun AmericanRiverSouthAustraliaAirport : Ind Airport ;
-
-fun AmersfoortAirport : Ind Airport ;
-
-fun AmilcarCabralSalAirport : Ind Airport ;
-
-fun AmosMunicipalQCAirport : Ind Airport ;
-
-fun AnacostiaUSNavyHeliportDCAirport : Ind Airport ;
-
-fun AnahimLakeAerodromeBCAirport : Ind Airport ;
-
-fun AnandAirport : Ind Airport ;
-
-fun AncudAirport : Ind Airport ;
-
-fun AndaSandaneAirport : Ind Airport ;
-
-fun AndapaAirport : Ind Airport ;
-
-fun AndersenAirForceBaseAndersenIslandAirport : Ind Airport ;
-
-fun AndriamenaAirport : Ind Airport ;
-
-fun AnegadaAirport : Ind Airport ;
-
-fun AngelinaCountyTXAirport : Ind Airport ;
-
-fun AngkorSiemReapAirport : Ind Airport ;
-
-fun AnglingLakeMBAirport : Ind Airport ;
-
-fun AnkazoaboAirport : Ind Airport ;
-
-fun AnnaiAirport : Ind Airport ;
-
-fun AnnecyAirport : Ind Airport ;
-
-fun AnnmasseAirport : Ind Airport ;
-
-fun AntoinedeSteExuperySanAntonioOesteAirport : Ind Airport ;
-
-fun AntonioMaceoSantiagoAirport : Ind Airport ;
-
-fun AntsalovaAirport : Ind Airport ;
-
-fun AntsohihyAirport : Ind Airport ;
-
-fun ApeldoornAirport : Ind Airport ;
-
-fun AqmolaTselinogradAqmolaAirport : Ind Airport ;
-
-fun AqtanShevchenkoMangghystanAirport : Ind Airport ;
-
-fun AransasCountyTXAirport : Ind Airport ;
-
-fun ArarAirport : Ind Airport ;
-
-fun ArawaAirport : Ind Airport ;
-
-fun ArcosMGAirport : Ind Airport ;
-
-fun ArcticBayNTAirport : Ind Airport ;
-
-fun ArcticRedRiverWaterAerodromeNTAirport : Ind Airport ;
-
-fun ArgentiaNavalAirStationNFAirport : Ind Airport ;
-
-fun AribindaAirport : Ind Airport ;
-
-fun ArlingtonMunicipalTXAirport : Ind Airport ;
-
-fun ArlitAirport : Ind Airport ;
-
-fun ArmstrongONAirport : Ind Airport ;
-
-fun ArnesAerodromeMBAirport : Ind Airport ;
-
-fun ArnhemAirport : Ind Airport ;
-
-fun ArnoldAirForceBaseTNAirport : Ind Airport ;
-
-fun ArnosValeStVincentAirport : Ind Airport ;
-
-fun AroMoldeAirport : Ind Airport ;
-
-fun AruaAirport : Ind Airport ;
-
-fun ArunkaAirport : Ind Airport ;
-
-fun ArviatNTAirport : Ind Airport ;
-
-fun AsbestosAerodromeQCAirport : Ind Airport ;
-
-fun AshcroftBCAirport : Ind Airport ;
-
-fun AshfordAirport : Ind Airport ;
-
-fun AsturiasOviedoAvilesAirport : Ind Airport ;
-
-fun AtibaiaSPAirport : Ind Airport ;
-
-fun AtikokanMunicipalONAirport : Ind Airport ;
-
-fun AtkinsonMunicipalKSAirport : Ind Airport ;
-
-fun AtlantaNavalAirStationGAAirport : Ind Airport ;
-
-fun AtsugiAirport : Ind Airport ;
-
-fun AttawapiskatONAirport : Ind Airport ;
-
-fun AubenasAirport : Ind Airport ;
-
-fun AuburnLewistonMunicipalMEAirport : Ind Airport ;
-
-fun AugustoCesarSandinoManaguaAirport : Ind Airport ;
-
-fun AupalukQCAirport : Ind Airport ;
-
-fun AuroseBayNewSouthWalesAirport : Ind Airport ;
-
-fun AvellinoAirport : Ind Airport ;
-
-fun AvengerFieldTXAirport : Ind Airport ;
-
-fun AyiaNapaAirport : Ind Airport ;
-
-fun BabelthuapKororKororAirport : Ind Airport ;
-
-fun BagotvilleQCAirport : Ind Airport ;
-
-fun BahawalnagarAirport : Ind Airport ;
-
-fun BaieComeauQCAirport : Ind Airport ;
-
-fun BaieJohanBeetzWaterAerodromeQCAirport : Ind Airport ;
-
-fun BaimuruAirport : Ind Airport ;
-
-fun BakerLakeNTAirport : Ind Airport ;
-
-fun BalaiTanjungAirport : Ind Airport ;
-
-fun BalcanoonaSouthAustraliaAirport : Ind Airport ;
-
-fun BaldwinCountyGAAirport : Ind Airport ;
-
-fun BalimoAirport : Ind Airport ;
-
-fun BaltraIslandGalapagosAirport : Ind Airport ;
-
-fun BalurghatAirport : Ind Airport ;
-
-fun BamfieldWaterAerodromeBCAirport : Ind Airport ;
-
-fun BanHoueiSaiAirport : Ind Airport ;
-
-fun BanainaAirport : Ind Airport ;
-
-fun BanakLakselvAirport : Ind Airport ;
-
-fun BandanairaAirport : Ind Airport ;
-
-fun BandarLampungAirport : Ind Airport ;
-
-fun BanffABAirport : Ind Airport ;
-
-fun BarajasMadridAirport : Ind Airport ;
-
-fun BarakomaAirport : Ind Airport ;
-
-fun BaratAirport : Ind Airport ;
-
-fun BarbeMoptiAirport : Ind Airport ;
-
-fun BarbersPointNavalAirStationJohnRodgersFieldHIAirport : Ind Airport ;
-
-fun BarinNavalOutlyingFieldALAirport : Ind Airport ;
-
-fun BarkerWAAirport : Ind Airport ;
-
-fun BarkleyRegionalKYAirport : Ind Airport ;
-
-fun BaroraAirport : Ind Airport ;
-
-fun BarraMansaRJAirport : Ind Airport ;
-
-fun BarradoPiraiRJAirport : Ind Airport ;
-
-fun BarrancominasAirport : Ind Airport ;
-
-fun BartolomeSalomPuertoCabelloAirport : Ind Airport ;
-
-fun BaselMulhouseEuroMulhouseAirport : Ind Airport ;
-
-fun BassillacPerigueuxAirport : Ind Airport ;
-
-fun BatemansBayNewSouthWalesAirport : Ind Airport ;
-
-fun BatesFieldALAirport : Ind Airport ;
-
-fun BathurstNBAirport : Ind Airport ;
-
-fun BatouriAirport : Ind Airport ;
-
-fun BatuBerMalaccaMelakaAirport : Ind Airport ;
-
-fun BauerfieldEfateIsAirport : Ind Airport ;
-
-fun BaxterCountyRegionalARAirport : Ind Airport ;
-
-fun BealananaAirport : Ind Airport ;
-
-fun BearskinLakeAerodromeONAirport : Ind Airport ;
-
-fun BeattonRiverBCAirport : Ind Airport ;
-
-fun BeaverAKAirport : Ind Airport ;
-
-fun BeaverCreekCOAirport : Ind Airport ;
-
-fun BeaverCreekYTAirport : Ind Airport ;
-
-fun BedardFieldAZAirport : Ind Airport ;
-
-fun BededouroSPAirport : Ind Airport ;
-
-fun BedwellHarbourWaterAerodromeBCAirport : Ind Airport ;
-
-fun BefandrianaAirport : Ind Airport ;
-
-fun BegaNewSouthWalesAirport : Ind Airport ;
-
-fun BeidaAirport : Ind Airport ;
-
-fun BekilyAirport : Ind Airport ;
-
-fun BeldringeOdenseAirport : Ind Airport ;
-
-fun BelesPawiAirport : Ind Airport ;
-
-fun BelizeCityMunicipalAirstripBelizeCityAirport : Ind Airport ;
-
-fun BellaCoolaBCAirport : Ind Airport ;
-
-fun BellegardeLimogesAirport : Ind Airport ;
-
-fun BenGurionTelAvivAirport : Ind Airport ;
-
-fun BenjaminConstantAMAirport : Ind Airport ;
-
-fun BerensRiverMBAirport : Ind Airport ;
-
-fun BermudaDunesCAAirport : Ind Airport ;
-
-fun BermudaNavalAirStationBermudaAirport : Ind Airport ;
-
-fun BernAirport : Ind Airport ;
-
-fun BerorohaAirport : Ind Airport ;
-
-fun BerzMacombMIAirport : Ind Airport ;
-
-fun BiardPoitiersAirport : Ind Airport ;
-
-fun BiersetLiegeLuttichAirport : Ind Airport ;
-
-fun BigBayMarinaBCAirport : Ind Airport ;
-
-fun BigBayYachtClubSeaplaneBaseBCAirport : Ind Airport ;
-
-fun BigBearCityCAAirport : Ind Airport ;
-
-fun BigTroutLakeONAirport : Ind Airport ;
-
-fun BilaspurAirport : Ind Airport ;
-
-fun BiniguniAirport : Ind Airport ;
-
-fun BintuniAirport : Ind Airport ;
-
-fun BirgiTrapaniAirport : Ind Airport ;
-
-fun BirjandAirport : Ind Airport ;
-
-fun BirmimghamAirNationalGuardALAirport : Ind Airport ;
-
-fun BitolaAirport : Ind Airport ;
-
-fun BlackHillsAirportClydeIceFieldSDAirport : Ind Airport ;
-
-fun BlackRockNMAirport : Ind Airport ;
-
-fun BlackTickleAerodromeNFAirport : Ind Airport ;
-
-fun BlackburneMontserratPlymouthAirport : Ind Airport ;
-
-fun BlagnacToulouseAirport : Ind Airport ;
-
-fun BlancSablonQCAirport : Ind Airport ;
-
-fun BloodveinRiverMBAirport : Ind Airport ;
-
-fun BlubberBayBCAirport : Ind Airport ;
-
-fun BlueGrassKYAirport : Ind Airport ;
-
-fun BobQuinnLakeAirport : Ind Airport ;
-
-fun BochumAirport : Ind Airport ;
-
-fun BoeblingenAirport : Ind Airport ;
-
-fun BogandeAirport : Ind Airport ;
-
-fun BogashevoTomskAirport : Ind Airport ;
-
-fun BogueFieldMarineCorpsAuxiliaryLandingFieldNCAirport : Ind Airport ;
-
-fun BolAirportChad : Ind Airport ;
-
-fun BolshesavinoPermAirport : Ind Airport ;
-
-fun BomJesusdaLapaBAAirport : Ind Airport ;
-
-fun BomarFieldShelbyvilleMunicipalTNAirport : Ind Airport ;
-
-fun BonaventureQCAirport : Ind Airport ;
-
-fun BongorAirport : Ind Airport ;
-
-fun BonnyvilleABAirport : Ind Airport ;
-
-fun BonrikiTarawaAirport : Ind Airport ;
-
-fun BoonevilleBaldwynMSAirport : Ind Airport ;
-
-fun BorbaAirport : Ind Airport ;
-
-fun BordenONAirport : Ind Airport ;
-
-fun BornholmRonneRoenneAirport : Ind Airport ;
-
-fun BorniteAKAirport : Ind Airport ;
-
-fun BotucatuSPAirport : Ind Airport ;
-
-fun BouChekifTiaretAirport : Ind Airport ;
-
-fun BoukhalefTangerTangierAirport : Ind Airport ;
-
-fun BoulderMunicipalCOAirport : Ind Airport ;
-
-fun BoulsaAirport : Ind Airport ;
-
-fun BoundaryBayBCAirport : Ind Airport ;
-
-fun BourgStMauriceAirport : Ind Airport ;
-
-fun BoussoAirport : Ind Airport ;
-
-fun BoutilimitAirport : Ind Airport ;
-
-fun BowenQueenslandAirport : Ind Airport ;
-
-fun BowmanFieldKYAirport : Ind Airport ;
-
-fun BrackAirport : Ind Airport ;
-
-fun BrackettFieldCAAirport : Ind Airport ;
-
-fun BrandonAirport : Ind Airport ;
-
-fun BrandonMBAirport : Ind Airport ;
-
-fun BrantfordONAirport : Ind Airport ;
-
-fun BratislavaBusStationBratislavaAirport : Ind Airport ;
-
-fun BrazoriaCountyTXAirport : Ind Airport ;
-
-fun BreckenridgeCOAirport : Ind Airport ;
-
-fun BremertonNationalWAAirport : Ind Airport ;
-
-fun BresciaAirport : Ind Airport ;
-
-fun BrevoortNTAirport : Ind Airport ;
-
-fun BridgewaterAirParkVAAirport : Ind Airport ;
-
-fun BrittonMunicipalSDAirport : Ind Airport ;
-
-fun BrnikLjubljanaAirport : Ind Airport ;
-
-fun BroadviewSKAirport : Ind Airport ;
-
-fun BrochetMBAirport : Ind Airport ;
-
-fun BrockvilleAerodromeONAirport : Ind Airport ;
-
-fun BromontQCAirport : Ind Airport ;
-
-fun BronLyonAirport : Ind Airport ;
-
-fun BronsonCreekAerodromeBCAirport : Ind Airport ;
-
-fun BrookhavenNYAirport : Ind Airport ;
-
-fun BroughtonIslandNTAirport : Ind Airport ;
-
-fun BrownFieldMunicipalCAAirport : Ind Airport ;
-
-fun BrunswickCountyNCAirport : Ind Airport ;
-
-fun BrunswickNavalAirStationMEAirport : Ind Airport ;
-
-fun BrusqueSCAirport : Ind Airport ;
-
-fun BuchananAirport : Ind Airport ;
-
-fun BuchansNFAirport : Ind Airport ;
-
-fun BudvaAirport : Ind Airport ;
-
-fun BuffaloNarrowsSKAirport : Ind Airport ;
-
-fun BugulmaTatarstanAirport : Ind Airport ;
-
-fun BuinAirport : Ind Airport ;
-
-fun BullHarbourWaterAerodromeBCAirport : Ind Airport ;
-
-fun BuluhTumbangTanjungPandanAirport : Ind Airport ;
-
-fun BunoBedelleAirport : Ind Airport ;
-
-fun BuolNewGuineaAirport : Ind Airport ;
-
-fun BuraimiAirport : Ind Airport ;
-
-fun BuretaAirport : Ind Airport ;
-
-fun BurlingtonAirparkONAirport : Ind Airport ;
-
-fun BurnettCountyWIAirport : Ind Airport ;
-
-fun BurnsLakeBCAirport : Ind Airport ;
-
-fun BurwashYTAirport : Ind Airport ;
-
-fun BusuangaAirport : Ind Airport ;
-
-fun ButterworthAirport : Ind Airport ;
-
-fun ButtonvilleAirfieldONAirport : Ind Airport ;
-
-fun ByronBayNTAirport : Ind Airport ;
-
-fun ByronBayQueenslandAirport : Ind Airport ;
-
-fun CPACarlosRovirosaVillahermosaAirport : Ind Airport ;
-
-fun CaballocochaAirport : Ind Airport ;
-
-fun CabanissFieldNavalOutlyingFieldTXAirport : Ind Airport ;
-
-fun CaboolMemorialMOAirport : Ind Airport ;
-
-fun CachoeiradoSulRSAirport : Ind Airport ;
-
-fun CahorsAirport : Ind Airport ;
-
-fun CairnsArmyAirFieldALAirport : Ind Airport ;
-
-fun CaixasdoSulRSAirport : Ind Airport ;
-
-fun CaledoniaCountyVTAirport : Ind Airport ;
-
-fun CaletaJosefinaAirport : Ind Airport ;
-
-fun CalgaryInternationalABAirport : Ind Airport ;
-
-fun CallawayGAAirport : Ind Airport ;
-
-fun CamacariBAAirport : Ind Airport ;
-
-fun CambridgeBayNTAirport : Ind Airport ;
-
-fun CampMaybryTXAirport : Ind Airport ;
-
-fun CampbellRiverBCAirport : Ind Airport ;
-
-fun CampbellRiverHarborSeaplaneBaseBCAirport : Ind Airport ;
-
-fun CampoBomRSAirport : Ind Airport ;
-
-fun CamposdoJordaoAirport : Ind Airport ;
-
-fun CanThoAirport : Ind Airport ;
-
-fun CanaBravaPAAirport : Ind Airport ;
-
-fun CanelasRSAirport : Ind Airport ;
-
-fun CanoasRSAirport : Ind Airport ;
-
-fun CanoinhasSCAirport : Ind Airport ;
-
-fun CapeCanaveralAirForceStationSkidStripFLAirport : Ind Airport ;
-
-fun CapeDorsetNTAirport : Ind Airport ;
-
-fun CapeDyerNTAirport : Ind Airport ;
-
-fun CapeHooperNTAirport : Ind Airport ;
-
-fun CapeLisburneLRRSAKAirport : Ind Airport ;
-
-fun CapeMayCountyNJAirport : Ind Airport ;
-
-fun CapeParryNTAirport : Ind Airport ;
-
-fun CapeStJamesBCAirport : Ind Airport ;
-
-fun CapeYoungNTAirport : Ind Airport ;
-
-fun CapitalBeijingPekingAirport : Ind Airport ;
-
-fun CapitalCityMIAirport : Ind Airport ;
-
-fun CapitalILAirport : Ind Airport ;
-
-fun CapitanAvSalvadorOgayaPuertoSuarezAirport : Ind Airport ;
-
-fun CapitanJoseDVasquezSanJulianAirport : Ind Airport ;
-
-fun CapitanMontesTalaraAirport : Ind Airport ;
-
-fun CapitanNicolasRojasPotosiAirport : Ind Airport ;
-
-fun CapitanOrielleaPlazaTirijaTarijaAirport : Ind Airport ;
-
-fun CapodichinoNapoliNaplesAirport : Ind Airport ;
-
-fun CapriAirport : Ind Airport ;
-
-fun CarbonCountyUTAirport : Ind Airport ;
-
-fun CaribouIslandONAirport : Ind Airport ;
-
-fun CarlRKellerFieldOHAirport : Ind Airport ;
-
-fun CaroraAirport : Ind Airport ;
-
-fun CarpONAirport : Ind Airport ;
-
-fun CarrascoMontevideoAirport : Ind Airport ;
-
-fun CarrilloAirport : Ind Airport ;
-
-fun CartersvilleGAAirport : Ind Airport ;
-
-fun CarthageTunisAirport : Ind Airport ;
-
-fun CartiervilleQCAirport : Ind Airport ;
-
-fun CartwrightNFAirport : Ind Airport ;
-
-fun CasasGrandesAirport : Ind Airport ;
-
-fun CaselleTorinoTurinAirport : Ind Airport ;
-
-fun CasementOHAirport : Ind Airport ;
-
-fun CastleAirForceBaseCAAirport : Ind Airport ;
-
-fun CastlegarBCAirport : Ind Airport ;
-
-fun CastroAirport : Ind Airport ;
-
-fun CastunhalPAAirport : Ind Airport ;
-
-fun CatLakeONAirport : Ind Airport ;
-
-fun CataguasesMGAirport : Ind Airport ;
-
-fun CatalaoGOAirport : Ind Airport ;
-
-fun CatalinaSeaAirTerminalCAAirport : Ind Airport ;
-
-fun CatanduvaSPAirport : Ind Airport ;
-
-fun CatanzaroAirport : Ind Airport ;
-
-fun CatungAerodromeNTAirport : Ind Airport ;
-
-fun CecilFieldNavalAirStationFLAirport : Ind Airport ;
-
-fun CentervilleMunicipalIAAirport : Ind Airport ;
-
-fun CentralFloridaRegionalFLAirport : Ind Airport ;
-
-fun CentralMaineAirportofNorridgewockMEAirport : Ind Airport ;
-
-fun CerroSombreroAirport : Ind Airport ;
-
-fun ChahBaharAirport : Ind Airport ;
-
-fun ChaitenAirport : Ind Airport ;
-
-fun ChalkSeaplaneBaseFLAirport : Ind Airport ;
-
-fun ChampagneReimsAirport : Ind Airport ;
-
-fun ChanGurneyMunicipalSDAirport : Ind Airport ;
-
-fun ChandalarLakeAKAirport : Ind Airport ;
-
-fun ChangiInternationalSingaporeAirport : Ind Airport ;
-
-fun ChapaisQCAirport : Ind Airport ;
-
-fun ChapecoSCAirport : Ind Airport ;
-
-fun ChapleauONAirport : Ind Airport ;
-
-fun CharlieSinclairMemorialMBAirport : Ind Airport ;
-
-fun CharloNBAirport : Ind Airport ;
-
-fun CharlotteAmalieStThomasSeaplaneBaseStThomasAirport : Ind Airport ;
-
-fun CharlotteCountyFLAirport : Ind Airport ;
-
-fun CharlottetownAerodromeNFAirport : Ind Airport ;
-
-fun CharlottetownPEAirport : Ind Airport ;
-
-fun CharmeilVichyAirport : Ind Airport ;
-
-fun CharquedasRSAirport : Ind Airport ;
-
-fun ChaseFieldNavalAirStationTXAirport : Ind Airport ;
-
-fun ChateauBougonNantesAirport : Ind Airport ;
-
-fun ChathamAerodromeONAirport : Ind Airport ;
-
-fun ChathamNBAirport : Ind Airport ;
-
-fun CherryCapitalMIAirport : Ind Airport ;
-
-fun CherryPointMarineCorpsAirStationCunninghamFieldNCAirport : Ind Airport ;
-
-fun ChesterfieldInletNTAirport : Ind Airport ;
-
-fun ChetwyndBCAirport : Ind Airport ;
-
-fun ChevakAKAirport : Ind Airport ;
-
-fun CheyenneCountyMunicipalKSAirport : Ind Airport ;
-
-fun ChiangKaiShekTaipeiAirport : Ind Airport ;
-
-fun ChicagoMidwayILAirport : Ind Airport ;
-
-fun ChicagoOHareInternationalILAirport : Ind Airport ;
-
-fun ChillagoeQueenslandAirport : Ind Airport ;
-
-fun ChillanAirport : Ind Airport ;
-
-fun ChilliwackBCAirport : Ind Airport ;
-
-fun ChinaLakeNAWSArmitageFieldCAAirport : Ind Airport ;
-
-fun ChincoteagueVAAirport : Ind Airport ;
-
-fun ChingoziTeteAirport : Ind Airport ;
-
-fun ChisasibiAerodromeQCAirport : Ind Airport ;
-
-fun ChitoseSaporroAirport : Ind Airport ;
-
-fun ChoctawNavalOutlyingFieldFLAirport : Ind Airport ;
-
-fun ChristianstedHarborSSBSeaplaneBaseStCroixAirport : Ind Airport ;
-
-fun ChristmasIslandChristmasIslandAirport : Ind Airport ;
-
-fun ChurAirport : Ind Airport ;
-
-fun ChurchillFallsNFAirport : Ind Airport ;
-
-fun ChurchillMBAirport : Ind Airport ;
-
-fun ChuukInternationalTrukIslandWenoIslandAirport : Ind Airport ;
-
-fun CibaoSantiagoAirport : Ind Airport ;
-
-fun CilikRiwutPalangkarayaAirport : Ind Airport ;
-
-fun CincinnatiMunicipalAirportLunkenFieldOHAirport : Ind Airport ;
-
-fun CityCountyORAirport : Ind Airport ;
-
-fun CityEnglandAirport : Ind Airport ;
-
-fun CityLaeAirport : Ind Airport ;
-
-fun CiudadManteAirport : Ind Airport ;
-
-fun CiudadelaAirport : Ind Airport ;
-
-fun ClarkFieldMunicipalTXAirport : Ind Airport ;
-
-fun ClevelandMunicipalMSAirport : Ind Airport ;
-
-fun ClintonCountyNYAirport : Ind Airport ;
-
-fun ClintonCreekYTAirport : Ind Airport ;
-
-fun ClintonPointNTAirport : Ind Airport ;
-
-fun ClockTowerILAirport : Ind Airport ;
-
-fun CluffLakeAerodromeSKAirport : Ind Airport ;
-
-fun ClydeRiverNTAirport : Ind Airport ;
-
-fun CoatzacoalcosAirport : Ind Airport ;
-
-fun CobbCountyAirportMcCollumFieldGAAirport : Ind Airport ;
-
-fun CocaAirport : Ind Airport ;
-
-fun CochraneAirport : Ind Airport ;
-
-fun CochraneONAirport : Ind Airport ;
-
-fun CoffeyCountyKSAirport : Ind Airport ;
-
-fun ColacVictoriaAirport : Ind Airport ;
-
-fun ColatinaESAirport : Ind Airport ;
-
-fun ColdLakeRegionalABAirport : Ind Airport ;
-
-fun ColesCountyMemorialILAirport : Ind Airport ;
-
-fun ColiseumStreetCAAirport : Ind Airport ;
-
-fun CollinsBaySKAirport : Ind Airport ;
-
-fun ColomboAirport : Ind Airport ;
-
-fun ColonAirport : Ind Airport ;
-
-fun ColonAirportCuba : Ind Airport ;
-
-fun ColoniaSarmienAirport : Ind Airport ;
-
-fun ColonialWilliamsburgVAAirport : Ind Airport ;
-
-fun ColtonCAAirport : Ind Airport ;
-
-fun ColumbusLowndesCountyMSAirport : Ind Airport ;
-
-fun ColumbusMunicipalNEAirport : Ind Airport ;
-
-fun ColvilleLakeAerodromeNTAirport : Ind Airport ;
-
-fun ComayaguaAirport : Ind Airport ;
-
-fun ComodoroZanniPehuajoAirport : Ind Airport ;
-
-fun ComoxBCAirport : Ind Airport ;
-
-fun CondronArmyAirFieldNMAirport : Ind Airport ;
-
-fun CongoTownAndrosAirport : Ind Airport ;
-
-fun ConnellsvillePAAirport : Ind Airport ;
-
-fun ConselheiroLafaieteMGAirport : Ind Airport ;
-
-fun ContadoraAirport : Ind Airport ;
-
-fun CoolullahAirport : Ind Airport ;
-
-fun CoomaNewSouthWalesAirport : Ind Airport ;
-
-fun CoopPointMBAirport : Ind Airport ;
-
-fun CopanAirport : Ind Airport ;
-
-fun CopperMountainCOAirport : Ind Airport ;
-
-fun CoppermineNTAirport : Ind Airport ;
-
-fun CoralHarbourNTAirport : Ind Airport ;
-
-fun CordilloDownsSouthAustraliaAirport : Ind Airport ;
-
-fun CorkAirport : Ind Airport ;
-
-fun CornIslandAirport : Ind Airport ;
-
-fun CoronationABAirport : Ind Airport ;
-
-fun CoronelCarlosCirianiSantaRosaTacnaAirport : Ind Airport ;
-
-fun CorpusChristiNavalAirStationTXAirport : Ind Airport ;
-
-fun CortesBayWaterAerodromeBCAirport : Ind Airport ;
-
-fun CostaSmeraldaSardiniaAirport : Ind Airport ;
-
-fun CotedAzurNiceAirport : Ind Airport ;
-
-fun CotiaSPAirport : Ind Airport ;
-
-fun Coto47Airport : Ind Airport ;
-
-fun CottesmoreRAFStationEnglandAirport : Ind Airport ;
-
-fun CountyHeliportCAAirport : Ind Airport ;
-
-fun CourtenayAerodromeBCAirport : Ind Airport ;
-
-fun CowleyABAirport : Ind Airport ;
-
-fun CoxFieldTXAirport : Ind Airport ;
-
-fun CraigFieldALAirport : Ind Airport ;
-
-fun CranbrookBCAirport : Ind Airport ;
-
-fun CravoNorteAirport : Ind Airport ;
-
-fun CreeLakeSKAirport : Ind Airport ;
-
-fun CreechArmyAirFieldKYAirport : Ind Airport ;
-
-fun CrestonAerodromeBCAirport : Ind Airport ;
-
-fun CrossonFieldCOAirport : Ind Airport ;
-
-fun CrownTobagoIsAirport : Ind Airport ;
-
-fun CrowsLandingNavalAuxiliaryLandingFieldCAAirport : Ind Airport ;
-
-fun CruzBaySeaplaneBaseStJohnAirport : Ind Airport ;
-
-fun CrystalMNAirport : Ind Airport ;
-
-fun CubaMunicipalMOAirport : Ind Airport ;
-
-fun CubiPointNavalAirStationCubiPointAirport : Ind Airport ;
-
-fun CulbersonCountyTXAirport : Ind Airport ;
-
-fun CullatonLakeNTAirport : Ind Airport ;
-
-fun CumberlandMunicipalWIAirport : Ind Airport ;
-
-fun CuritibaosAirport : Ind Airport ;
-
-fun CurraisNovosRNAirport : Ind Airport ;
-
-fun CuruzuCuatiaAirport : Ind Airport ;
-
-fun CyrilEKingStThomasAirport : Ind Airport ;
-
-fun DaboSingkepAirport : Ind Airport ;
-
-fun DadeCollierTrainingandTransitionFLAirport : Ind Airport ;
-
-fun DakhlaVillaCisnerosWesternSaharaAirport : Ind Airport ;
-
-fun DallasNavalAirStationHensleyFieldTXAirport : Ind Airport ;
-
-fun DamanAirport : Ind Airport ;
-
-fun DammanAirport : Ind Airport ;
-
-fun DaneCountyRegionalAirportTruaxFieldWIAirport : Ind Airport ;
-
-fun DanielsHarbourNFAirport : Ind Airport ;
-
-fun DannellyFieldALAirport : Ind Airport ;
-
-fun DareCountyRegionalNCAirport : Ind Airport ;
-
-fun DarkeCountyOHAirport : Ind Airport ;
-
-fun DarnleyIslandQueenslandAirport : Ind Airport ;
-
-fun DashhowuzTashauzDashhowuzAirport : Ind Airport ;
-
-fun DauphinMBAirport : Ind Airport ;
-
-fun DavisFieldOKAirport : Ind Airport ;
-
-fun DavisInletAerodromeNFAirport : Ind Airport ;
-
-fun DawsonCreekBCAirport : Ind Airport ;
-
-fun DawsonYTAirport : Ind Airport ;
-
-fun DaytonGeneralAirportSouthOHAirport : Ind Airport ;
-
-fun DeadhorseAKAirport : Ind Airport ;
-
-fun DeadmansCayLongAirport : Ind Airport ;
-
-fun DeanRiverBCAirport : Ind Airport ;
-
-fun DeaseLakeBCAirport : Ind Airport ;
-
-fun DeceptionBayWaterAerodromeQCAirport : Ind Airport ;
-
-fun DeepBayAKAirport : Ind Airport ;
-
-fun DeerLakeNFAirport : Ind Airport ;
-
-fun DeerLakeONAirport : Ind Airport ;
-
-fun DekalbPeachtreeGAAirport : Ind Airport ;
-
-fun DelawareCountyAirportJohnsonFieldINAirport : Ind Airport ;
-
-fun DennyIslandBCAirport : Ind Airport ;
-
-fun DerbyFieldNVAirport : Ind Airport ;
-
-fun DesolationSoundBCAirport : Ind Airport ;
-
-fun DetroitNavalAirFacilityMIAirport : Ind Airport ;
-
-fun DewarLakesNTAirport : Ind Airport ;
-
-fun DewittFieldOldTownMunicipalMEAirport : Ind Airport ;
-
-fun DiademaSPAirport : Ind Airport ;
-
-fun DiagorasMaritsaRhodosIslandAirport : Ind Airport ;
-
-fun DiebougouAirport : Ind Airport ;
-
-fun DiegoGarciaAirport : Ind Airport ;
-
-fun DigbyAerodromeNSAirport : Ind Airport ;
-
-fun DiwopuUrumqiAirport : Ind Airport ;
-
-fun DjiboAirport : Ind Airport ;
-
-fun DnataAirport : Ind Airport ;
-
-fun DobbinsAirReserveBaseGAAirport : Ind Airport ;
-
-fun DocCreekAirport : Ind Airport ;
-
-fun DodgeCountyWIAirport : Ind Airport ;
-
-fun DoisdeJulhoBAAirport : Ind Airport ;
-
-fun DolbeauStMethodeQCAirport : Ind Airport ;
-
-fun DomPedritoRSAirport : Ind Airport ;
-
-fun DoorCountyCherrylandWIAirport : Ind Airport ;
-
-fun DornierDLROberpfaffenhofenAirport : Ind Airport ;
-
-fun DouglasCountyNVAirport : Ind Airport ;
-
-fun DownsviewONAirport : Ind Airport ;
-
-fun DraughonMillerMunicipalTXAirport : Ind Airport ;
-
-fun DraytonValleyIndustrialAerodromeABAirport : Ind Airport ;
-
-fun DrydenMunicipalONAirport : Ind Airport ;
-
-fun DuesseldorfDusseldorfAirport : Ind Airport ;
-
-fun DuesseldorfDusseldorfKoelnKolnAirport : Ind Airport ;
-
-fun DundoChitatoAirport : Ind Airport ;
-
-fun DuquedeCaixasRJAirport : Ind Airport ;
-
-fun DutchessCountyNYAirport : Ind Airport ;
-
-fun DyessArmyAirFieldRoiNamurAirport : Ind Airport ;
-
-fun EarltonONAirport : Ind Airport ;
-
-fun East34thStreetHeliportNYAirport : Ind Airport ;
-
-fun EastMainRiverQCAirport : Ind Airport ;
-
-fun EasternWestVirginiaRegionalAirportShepherdFieldWVAirport : Ind Airport ;
-
-fun EastleighEnglandAirport : Ind Airport ;
-
-fun EchterdingenStuttgartAirport : Ind Airport ;
-
-fun EckertFieldCAAirport : Ind Airport ;
-
-fun EdenNewSouthWalesAirport : Ind Airport ;
-
-fun EdmontonInternationalABAirport : Ind Airport ;
-
-fun EdmontonMunicipalABAirport : Ind Airport ;
-
-fun EdsonABAirport : Ind Airport ;
-
-fun EduardoGomesAMAirport : Ind Airport ;
-
-fun EdwardFKnappStateVTAirport : Ind Airport ;
-
-fun EglinAirForceBaseOkaloosaCountyFLAirport : Ind Airport ;
-
-fun EglintonNorthernIrelandAirport : Ind Airport ;
-
-fun EilatInternationalOvdaAirport : Ind Airport ;
-
-fun ElCentroNavalAirFacilityCAAirport : Ind Airport ;
-
-fun ElCocoSanJoseAirport : Ind Airport ;
-
-fun ElGoueraAirport : Ind Airport ;
-
-fun ElJacuelPuntadelEsteAirport : Ind Airport ;
-
-fun ElPlumerilloMendozaAirport : Ind Airport ;
-
-fun ElPorvenirAirport : Ind Airport ;
-
-fun ElRahabaSanaaSanaaAirport : Ind Airport ;
-
-fun ElRosalColLMGuerreroTulcanAirport : Ind Airport ;
-
-fun ElTehuelchePuertoMadrynAirport : Ind Airport ;
-
-fun ElTepualPuertoMonttAirport : Ind Airport ;
-
-fun ElToroMarineCorpsAirStationCAAirport : Ind Airport ;
-
-fun ElTrompilloSantaCruzAirport : Ind Airport ;
-
-fun ElVigiaAirport : Ind Airport ;
-
-fun ElkinMunicipalNCAirport : Ind Airport ;
-
-fun ElliotLakeMunicipalONAirport : Ind Airport ;
-
-fun EllsworthAirForceBaseSDAirport : Ind Airport ;
-
-fun EllysonNavalAirStationFLAirport : Ind Airport ;
-
-fun EloyAlfaroMantaAirport : Ind Airport ;
-
-fun ElyMunicipalMNAirport : Ind Airport ;
-
-fun EmmenAirport : Ind Airport ;
-
-fun EnNahudAirport : Ind Airport ;
-
-fun EnidWoodringMunicipalOKAirport : Ind Airport ;
-
-fun EnnadaiLakeNTAirport : Ind Airport ;
-
-fun EnsheimSaarbrueckenSaarbruckenAirport : Ind Airport ;
-
-fun EntzheimStrasbourgAirport : Ind Airport ;
-
-fun EppleyAirfieldNEAirport : Ind Airport ;
-
-fun ErnestALoveFieldAZAirport : Ind Airport ;
-
-fun EsSeniaOranAirport : Ind Airport ;
-
-fun EsperanceSaintMartinAirport : Ind Airport ;
-
-fun EsperanzaAirport : Ind Airport ;
-
-fun EsquimaltBCAirport : Ind Airport ;
-
-fun EssendonVictoriaAirport : Ind Airport ;
-
-fun EstevanPointBCAirport : Ind Airport ;
-
-fun EstevanSKAirport : Ind Airport ;
-
-fun EugenioMariadeHostosMayaguezAirport : Ind Airport ;
-
-fun EuniceLAAirport : Ind Airport ;
-
-fun EurekaNTAirport : Ind Airport ;
-
-fun EvelynSharpFieldNEAirport : Ind Airport ;
-
-fun EverettStewartTNAirport : Ind Airport ;
-
-fun ExumaInternationalExumaAirport : Ind Airport ;
-
-fun FairchildAirForceBaseWAAirport : Ind Airport ;
-
-fun FaisalabadAirport : Ind Airport ;
-
-fun FalconFieldAZAirport : Ind Airport ;
-
-fun FalherABAirport : Ind Airport ;
-
-fun FallonNavalAirStationVanVoorhisFieldNVAirport : Ind Airport ;
-
-fun FarafanganaAirport : Ind Airport ;
-
-fun FaroYTAirport : Ind Airport ;
-
-fun FasceneNossiBeAirport : Ind Airport ;
-
-fun FassamaAirport : Ind Airport ;
-
-fun FeltsFieldWAAirport : Ind Airport ;
-
-fun FentressNavalAuxiliaryLandingFieldVAAirport : Ind Airport ;
-
-fun FerdinandoLuisRibasDominicciSanJuanAirport : Ind Airport ;
-
-fun FianarantsoaAirport : Ind Airport ;
-
-fun FiddymentFieldCAAirport : Ind Airport ;
-
-fun FindelLuxembourgAirport : Ind Airport ;
-
-fun FinkerwerdenAirbusPlantHamburgAirport : Ind Airport ;
-
-fun FlabobCAAirport : Ind Airport ;
-
-fun FlinFlonMBAirport : Ind Airport ;
-
-fun FoleyMunicipalALAirport : Ind Airport ;
-
-fun FondduLacSKAirport : Ind Airport ;
-
-fun FontRomeuAirport : Ind Airport ;
-
-fun ForchheimKarlsruheAirport : Ind Airport ;
-
-fun FordIslandAuxiliaryLandingFieldHIAirport : Ind Airport ;
-
-fun ForestvilleQCAirport : Ind Airport ;
-
-fun ForneyArmyAirFieldMOAirport : Ind Airport ;
-
-fun FortAlbanyONAirport : Ind Airport ;
-
-fun FortChipewyanABAirport : Ind Airport ;
-
-fun FortFrancesMunicipalONAirport : Ind Airport ;
-
-fun FortFranklinNTAirport : Ind Airport ;
-
-fun FortFrederickAKAirport : Ind Airport ;
-
-fun FortGoodHopeNTAirport : Ind Airport ;
-
-fun FortHopeONAirport : Ind Airport ;
-
-fun FortLiardNTAirport : Ind Airport ;
-
-fun FortMcMurrayABAirport : Ind Airport ;
-
-fun FortMcPhersonNTAirport : Ind Airport ;
-
-fun FortNelsonBCAirport : Ind Airport ;
-
-fun FortNormanNTAirport : Ind Airport ;
-
-fun FortProvidenceNTAirport : Ind Airport ;
-
-fun FortRelianceWaterAerodromeNTAirport : Ind Airport ;
-
-fun FortResolutionNTAirport : Ind Airport ;
-
-fun FortSevernONAirport : Ind Airport ;
-
-fun FortSimpsonNTAirport : Ind Airport ;
-
-fun FortSmithNTAirport : Ind Airport ;
-
-fun FortStJohnBCAirport : Ind Airport ;
-
-fun FoxHarbourAerodromeNFAirport : Ind Airport ;
-
-fun FramnesNarvikAirport : Ind Airport ;
-
-fun FranciscoSaCarneiroPedrasRubrasPortoOportoAirport : Ind Airport ;
-
-fun FrankWileyFieldMTAirport : Ind Airport ;
-
-fun FranklinCountyTNAirport : Ind Airport ;
-
-fun FranzJosefAirport : Ind Airport ;
-
-fun FrederictonNBAirport : Ind Airport ;
-
-fun FreemanMunicipalINAirport : Ind Airport ;
-
-fun FreiburgAirport : Ind Airport ;
-
-fun FrescatyMetzAirport : Ind Airport ;
-
-fun FriedmanMemorialIDAirport : Ind Airport ;
-
-fun FritzscheArmyAirFieldCAAirport : Ind Airport ;
-
-fun FrosinoneAirport : Ind Airport ;
-
-fun FrosonAirBaseOstersundAirport : Ind Airport ;
-
-fun FryklandaTorsbyAirport : Ind Airport ;
-
-fun FuaAmotuNukuAlofaTongatapuAirport : Ind Airport ;
-
-fun FultonCountyINAirport : Ind Airport ;
-
-fun FultonCountyOHAirport : Ind Airport ;
-
-fun GagetownNBAirport : Ind Airport ;
-
-fun GagnonQCAirport : Ind Airport ;
-
-fun GalileiSanGiustoPisaAirport : Ind Airport ;
-
-fun GanderInternationalNFAirport : Ind Airport ;
-
-fun GanedTaizAirport : Ind Airport ;
-
-fun GangesHarborBCAirport : Ind Airport ;
-
-fun GaouaAirport : Ind Airport ;
-
-fun GaranhunsPEAirport : Ind Airport ;
-
-fun GardenCountyNEAirport : Ind Airport ;
-
-fun GardenKeySeaplanaBaseFLAirport : Ind Airport ;
-
-fun GarfieldCountyRegionalCOAirport : Ind Airport ;
-
-fun GarmischPartenkirchenAirport : Ind Airport ;
-
-fun GarnerFieldTXAirport : Ind Airport ;
-
-fun GarrettCountyMDAirport : Ind Airport ;
-
-fun GarulhosSPAirport : Ind Airport ;
-
-fun GaspeQCAirport : Ind Airport ;
-
-fun GatineauQCAirport : Ind Airport ;
-
-fun GatwickEnglandAirport : Ind Airport ;
-
-fun GaviotasAirport : Ind Airport ;
-
-fun GeiteryggenSkeinAirport : Ind Airport ;
-
-fun GeneralAbelardoLRodriguezTijuanaAirport : Ind Airport ;
-
-fun GeneralEnriqueMoscTartagalAirport : Ind Airport ;
-
-fun GeneralFranciscoJavierMinaTampicoAirport : Ind Airport ;
-
-fun GeneralHeribertoJaraVeracruzAirport : Ind Airport ;
-
-fun GeneralLeobardoRuizZacatecasAirport : Ind Airport ;
-
-fun GeneralLucioBlancoReynosaAirport : Ind Airport ;
-
-fun GeneralManuelMdeLeonLaPazAirport : Ind Airport ;
-
-fun GeneralMitchellInternationalWIAirport : Ind Airport ;
-
-fun GeneralOmarTorrijosHerraraPanamaCityAirport : Ind Airport ;
-
-fun GeneralRafaelBueinaMazatlanAirport : Ind Airport ;
-
-fun GeneralRodolfoSTaboadaMexicaliAirport : Ind Airport ;
-
-fun GeneralUlpianoPaezSalinasAirport : Ind Airport ;
-
-fun GeneralUrquizaParanaAirport : Ind Airport ;
-
-fun GeneralVillegaAirport : Ind Airport ;
-
-fun GeneralWilliamJFoxAirfieldCAAirport : Ind Airport ;
-
-fun GeorgeAirForceBaseCAAirport : Ind Airport ;
-
-fun GeorgianBayAerodromeONAirport : Ind Airport ;
-
-fun GeraldtonONAirport : Ind Airport ;
-
-fun GermansenLandingBCAirport : Ind Airport ;
-
-fun GethsemaniQCAirport : Ind Airport ;
-
-fun GhadamesAirport : Ind Airport ;
-
-fun GiarmataTimisoaraAirport : Ind Airport ;
-
-fun GibsonCountyTNAirport : Ind Airport ;
-
-fun GifuAirport : Ind Airport ;
-
-fun GijonAirport : Ind Airport ;
-
-fun GillamMBAirport : Ind Airport ;
-
-fun GillespieFieldCAAirport : Ind Airport ;
-
-fun GilliesBayBCAirport : Ind Airport ;
-
-fun GillotReunionSaintDenisdelaReunionAirport : Ind Airport ;
-
-fun GimliIndustrialParkMBAirport : Ind Airport ;
-
-fun GjoaHavenNTAirport : Ind Airport ;
-
-fun GladmanPointNTAirport : Ind Airport ;
-
-fun GlenviewNavalAirStationILAirport : Ind Airport ;
-
-fun GlyncoNavalAirStationGAAirport : Ind Airport ;
-
-fun GnossFieldCAAirport : Ind Airport ;
-
-fun GobernadorCastelloViedmaAirport : Ind Airport ;
-
-fun GoderichONAirport : Ind Airport ;
-
-fun GodsLakeNarrowsMBAirport : Ind Airport ;
-
-fun GodsRiverMBAirport : Ind Airport ;
-
-fun GoldCoastCoolangattaQueenslandAirport : Ind Airport ;
-
-fun GoldenRockStKittsAirport : Ind Airport ;
-
-fun GoleniowSzczecinStettinAirport : Ind Airport ;
-
-fun GoliadNavalAuxiliaryLandingFieldTXAirport : Ind Airport ;
-
-fun GolosonLaCeibaAirport : Ind Airport ;
-
-fun GooseAirport : Ind Airport ;
-
-fun GooseNFAirport : Ind Airport ;
-
-fun GorgeHarborBCAirport : Ind Airport ;
-
-fun GoromGoromAirport : Ind Airport ;
-
-fun GoslarAirport : Ind Airport ;
-
-fun GoyaAirport : Ind Airport ;
-
-fun GrandCanyonCavernsAZAirport : Ind Airport ;
-
-fun GrandForksBCAirport : Ind Airport ;
-
-fun GrandViewInternationalWAAirport : Ind Airport ;
-
-fun GrandeCacheAerodromeABAirport : Ind Airport ;
-
-fun GrandePrairieABAirport : Ind Airport ;
-
-fun GrantCountyNMAirport : Ind Airport ;
-
-fun GrantCountyWAAirport : Ind Airport ;
-
-fun GrantCountyWIAirport : Ind Airport ;
-
-fun GrantCountyWVAirport : Ind Airport ;
-
-fun GranvilleLakeMBAirport : Ind Airport ;
-
-fun GraysonCountyTXAirport : Ind Airport ;
-
-fun GreaterPeoriaRegionalILAirport : Ind Airport ;
-
-fun GreaterPittsburghInternationalPAAirport : Ind Airport ;
-
-fun GreaterPortsmouthRegionalOHAirport : Ind Airport ;
-
-fun GreaterRochesterInternationalNYAirport : Ind Airport ;
-
-fun GreaterRockfordILAirport : Ind Airport ;
-
-fun GreenINAirport : Ind Airport ;
-
-fun GreenLakeWaterAerodromeBCAirport : Ind Airport ;
-
-fun GreenRiverMunicipalUTAirport : Ind Airport ;
-
-fun GreenbrierValleyWVAirport : Ind Airport ;
-
-fun GreeneCountyPAAirport : Ind Airport ;
-
-fun GreenfieldMAAirport : Ind Airport ;
-
-fun GreenwaySoundBCAirport : Ind Airport ;
-
-fun GreenwoodNSAirport : Ind Airport ;
-
-fun GrenchenAirport : Ind Airport ;
-
-fun GrevenMuensterMunsterAirport : Ind Airport ;
-
-fun GriderFieldARAirport : Ind Airport ;
-
-fun GriffingSanduskyOHAirport : Ind Airport ;
-
-fun GriffissAirForceBaseNYAirport : Ind Airport ;
-
-fun GriseFiordNTAirport : Ind Airport ;
-
-fun GriswoldCTAirport : Ind Airport ;
-
-fun GuairaPRAirport : Ind Airport ;
-
-fun GuantanamoNavalAirStationGuantanamoAirport : Ind Airport ;
-
-fun GuararapesPEAirport : Ind Airport ;
-
-fun GuayanaPuertoOrdazAirport : Ind Airport ;
-
-fun GuluAirport : Ind Airport ;
-
-fun GurayatAirport : Ind Airport ;
-
-fun GusauAirport : Ind Airport ;
-
-fun GwinnettCountyAirportBriscoeFieldGAAirport : Ind Airport ;
-
-fun GyumriLeninakanAirport : Ind Airport ;
-
-fun HHCoffieldRegionalTXAirport : Ind Airport ;
-
-fun HadjerAirport : Ind Airport ;
-
-fun HahayaIconiMoroniAirport : Ind Airport ;
-
-fun HainesJunctionYTAirport : Ind Airport ;
-
-fun HakaiPassAirport : Ind Airport ;
-
-fun HaleCountyTXAirport : Ind Airport ;
-
-fun HalifaxCountyNCAirport : Ind Airport ;
-
-fun HalifaxDowntownWaterfrontHeliportNSAirport : Ind Airport ;
-
-fun HalifaxInternationalNSAirport : Ind Airport ;
-
-fun HallBeachNTAirport : Ind Airport ;
-
-fun HamiltonONAirport : Ind Airport ;
-
-fun HammAirport : Ind Airport ;
-
-fun HamptonRoadsVAAirport : Ind Airport ;
-
-fun HanoverCountyMunicipalVAAirport : Ind Airport ;
-
-fun HarnosandSundsvallAirport : Ind Airport ;
-
-fun HaroldDavidsonFieldSDAirport : Ind Airport ;
-
-fun HaroldNavalOutlyingFieldFLAirport : Ind Airport ;
-
-fun HarrietAlexanderFieldCOAirport : Ind Airport ;
-
-fun HarrietFieldNVAirport : Ind Airport ;
-
-fun HarringtonHarbourQCAirport : Ind Airport ;
-
-fun HarrisburgInternationalPAAirport : Ind Airport ;
-
-fun HarryCleverFieldOHAirport : Ind Airport ;
-
-fun HarryPWilliamsMemorialLAAirport : Ind Airport ;
-
-fun HarrySternNDAirport : Ind Airport ;
-
-fun HarryWBrowneMIAirport : Ind Airport ;
-
-fun HartleyBayWaterAerodromeBCAirport : Ind Airport ;
-
-fun HartnessStateSpringfieldVTAirport : Ind Airport ;
-
-fun HasanuddinUjungPandangAirport : Ind Airport ;
-
-fun HasseltAirport : Ind Airport ;
-
-fun HassloVasterasAirport : Ind Airport ;
-
-fun HattiesburgLaurelRegionalMSAirport : Ind Airport ;
-
-fun HaukasenSogndalAirport : Ind Airport ;
-
-fun HavilarAirport : Ind Airport ;
-
-fun HavreStPierreQCAirport : Ind Airport ;
-
-fun HayRiverNTAirport : Ind Airport ;
-
-fun HearstReneFontaineMunicipalONAirport : Ind Airport ;
-
-fun HeathrowEnglandAirport : Ind Airport ;
-
-fun HeerenveenAirport : Ind Airport ;
-
-fun HeliportMAAirport : Ind Airport ;
-
-fun HeliportSophiaAntipolisAirport : Ind Airport ;
-
-fun HeliportTrevisoAirport : Ind Airport ;
-
-fun HelleSvolvaerAirport : Ind Airport ;
-
-fun HengeloAirport : Ind Airport ;
-
-fun HenryCountyTNAirport : Ind Airport ;
-
-fun HenryTiftMyersGAAirport : Ind Airport ;
-
-fun HenyamyaAirport : Ind Airport ;
-
-fun HerbertSmartDowntownGAAirport : Ind Airport ;
-
-fun HeslerNobleFieldMSAirport : Ind Airport ;
-
-fun HewanorraStLuciaVieuxFortAirport : Ind Airport ;
-
-fun HierroCanaryIslandsAirport : Ind Airport ;
-
-fun HighLevelABAirport : Ind Airport ;
-
-fun HighPrairieABAirport : Ind Airport ;
-
-fun HihifoWallisIslandAirport : Ind Airport ;
-
-fun HilversumTheHagueAirport : Ind Airport ;
-
-fun HohenemsDornbirnDornbirnAirport : Ind Airport ;
-
-fun HokkaidoWakkanaiAirport : Ind Airport ;
-
-fun HolmanNTAirport : Ind Airport ;
-
-fun HongqiaoShanghaiAirport : Ind Airport ;
-
-fun HookFieldMunicipalOHAirport : Ind Airport ;
-
-fun HookerCountyNEAirport : Ind Airport ;
-
-fun HopeBCAirport : Ind Airport ;
-
-fun HopedaleNFAirport : Ind Airport ;
-
-fun HornIslandQueenslandAirport : Ind Airport ;
-
-fun HornepayneMunicipalONAirport : Ind Airport ;
-
-fun HorschingLinzAirport : Ind Airport ;
-
-fun HotSpringsCountyThermopolisMunicipalWYAirport : Ind Airport ;
-
-fun HuamboNovaLisboaAirport : Ind Airport ;
-
-fun HudsonBaySKAirport : Ind Airport ;
-
-fun HudsonsHopeBCAirport : Ind Airport ;
-
-fun HumacaoAirport : Ind Airport ;
-
-fun HuntFieldWYAirport : Ind Airport ;
-
-fun HunterArmyAirFieldGAAirport : Ind Airport ;
-
-fun HuntingdonCountyPAAirport : Ind Airport ;
-
-fun HuronAirparkONAirport : Ind Airport ;
-
-fun HuroniaONAirport : Ind Airport ;
-
-fun HwangeAirport : Ind Airport ;
-
-fun HyderSeaplaneBaseAKAirport : Ind Airport ;
-
-fun IcoaraciPAAirport : Ind Airport ;
-
-fun IdrisTripoliAirport : Ind Airport ;
-
-fun IgloolikNTAirport : Ind Airport ;
-
-fun IgnaceMunicipalONAirport : Ind Airport ;
-
-fun IguatuAirport : Ind Airport ;
-
-fun IleboAirport : Ind Airport ;
-
-fun IlesdelaMadeleineQCAirport : Ind Airport ;
-
-fun IllinoisValleyRegionalAirportWalterADuncanFieldILAirport : Ind Airport ;
-
-fun IlliziAirport : Ind Airport ;
-
-fun ImperialBeachNavalOutlyingFieldCAAirport : Ind Airport ;
-
-fun IndaselassieAirport : Ind Airport ;
-
-fun IndianMountainLRRSAKAirport : Ind Airport ;
-
-fun IndianapolisMetropolitanINAirport : Ind Airport ;
-
-fun IngenikaBCAirport : Ind Airport ;
-
-fun IngolstadtAirport : Ind Airport ;
-
-fun InterContinentalKYAirport : Ind Airport ;
-
-fun InterlakenAirport : Ind Airport ;
-
-fun InternacionalSanSalvadorAirport : Ind Airport ;
-
-fun InternationalBophuthatswanaAirport : Ind Airport ;
-
-fun InternationalNewProvidenceAirport : Ind Airport ;
-
-fun InternationalPaphosAirport : Ind Airport ;
-
-fun InternationalPeninsularAirport : Ind Airport ;
-
-fun InternationalTrivandrumAirport : Ind Airport ;
-
-fun InternationalWellingtonAirport : Ind Airport ;
-
-fun InukjuakQCAirport : Ind Airport ;
-
-fun InuvikNTAirport : Ind Airport ;
-
-fun InverlakeSKAirport : Ind Airport ;
-
-fun IqaluitFrobisherBayNTAirport : Ind Airport ;
-
-fun IrbioAirport : Ind Airport ;
-
-fun IsachsenNTAirport : Ind Airport ;
-
-fun IslandLakeGardenHillMBAirport : Ind Airport ;
-
-fun IsleofSkyeAirport : Ind Airport ;
-
-fun ItsjubaSCAirport : Ind Airport ;
-
-fun IvatoAntananarivoAirport : Ind Airport ;
-
-fun IvujivikQCAirport : Ind Airport ;
-
-fun IwakuniHonshuIsAirport : Ind Airport ;
-
-fun IxtapaZihuatanejoAirport : Ind Airport ;
-
-fun JFKennedyElAltoLaPazAirport : Ind Airport ;
-
-fun JGStrijdomInternationalWindhoekAirport : Ind Airport ;
-
-fun JMVelascoIbarraMacaraAirport : Ind Airport ;
-
-fun JacksonMunicipalMNAirport : Ind Airport ;
-
-fun JacksonvilleNavalAirStationTowersFieldFLAirport : Ind Airport ;
-
-fun JacobAirport : Ind Airport ;
-
-fun JaladharAirport : Ind Airport ;
-
-fun JaluitJaborJaluitAirport : Ind Airport ;
-
-fun JaraguadoSulSCAirport : Ind Airport ;
-
-fun JasionkaRzeszowAirport : Ind Airport ;
-
-fun JasperCountyINAirport : Ind Airport ;
-
-fun JasperHintonABAirport : Ind Airport ;
-
-fun JeffersonCountyInternationalWAAirport : Ind Airport ;
-
-fun JefmanSorongAirport : Ind Airport ;
-
-fun JennyLindIslandNTAirport : Ind Airport ;
-
-fun JenpegMBAirport : Ind Airport ;
-
-fun JerryTylerMemorialMIAirport : Ind Airport ;
-
-fun JeyporeAirport : Ind Airport ;
-
-fun JimKellyFieldNEAirport : Ind Airport ;
-
-fun JimdabyneNewSouthWalesAirport : Ind Airport ;
-
-fun JinanAirport : Ind Airport ;
-
-fun JoeWilliamsNavalOutlyingFieldMSAirport : Ind Airport ;
-
-fun JohanAdolfPengelZanderyParamariboAirport : Ind Airport ;
-
-fun JohnHBattenFieldWIAirport : Ind Airport ;
-
-fun JohnWayneAirportOrangeCountyCAAirport : Ind Airport ;
-
-fun JohnnyMountainBCAirport : Ind Airport ;
-
-fun JohnsonPointNTAirport : Ind Airport ;
-
-fun JomoKenyattaNairobiAirport : Ind Airport ;
-
-fun JosefaCamejoParaguanaAirport : Ind Airport ;
-
-fun JuanSantamariaInternationalSanJoseAirport : Ind Airport ;
-
-fun JuanaAzurduydePadillaSucreAirport : Ind Airport ;
-
-fun JuandaSurabayaAirport : Ind Airport ;
-
-fun JubailAirport : Ind Airport ;
-
-fun KISawyerAirForceBaseMIAirport : Ind Airport ;
-
-fun KabalegaFallsMurchisonFallsAirport : Ind Airport ;
-
-fun KahuluiHIAirport : Ind Airport ;
-
-fun KalaupapaHIAirport : Ind Airport ;
-
-fun KallaxLuleaAirport : Ind Airport ;
-
-fun KalumburuWesternAustraliaAirport : Ind Airport ;
-
-fun KamloopsBCAirport : Ind Airport ;
-
-fun KamuzuInternationalLilongweAirport : Ind Airport ;
-
-fun KanazawaCityAirport : Ind Airport ;
-
-fun KaneoheBayMarineCorpsAirStationMokapuPointHIAirport : Ind Airport ;
-
-fun KangiqsualujjuaqQCAirport : Ind Airport ;
-
-fun KangiqsujuaqQCAirport : Ind Airport ;
-
-fun KangirsukQCAirport : Ind Airport ;
-
-fun KansasCityDowntownMOAirport : Ind Airport ;
-
-fun KansasCityInternationalMOAirport : Ind Airport ;
-
-fun KantchariAirport : Ind Airport ;
-
-fun KaolinFieldGAAirport : Ind Airport ;
-
-fun KapuskasingQCAirport : Ind Airport ;
-
-fun KarlStefanMemorialNEAirport : Ind Airport ;
-
-fun KarlovasiAirport : Ind Airport ;
-
-fun KasabaBayAirport : Ind Airport ;
-
-fun KasabonikaONAirport : Ind Airport ;
-
-fun KaschechewanQCAirport : Ind Airport ;
-
-fun KastelSplitAirport : Ind Airport ;
-
-fun KavikAKAirport : Ind Airport ;
-
-fun KayaAirport : Ind Airport ;
-
-fun KayentaAZAirport : Ind Airport ;
-
-fun KeekorokAirport : Ind Airport ;
-
-fun KegaskaWaterAerodromeQCAirport : Ind Airport ;
-
-fun KelafoAirport : Ind Airport ;
-
-fun KelilaAirport : Ind Airport ;
-
-fun KellyAirForceBaseTXAirport : Ind Airport ;
-
-fun KelownaBCAirport : Ind Airport ;
-
-fun KelsterbachAirport : Ind Airport ;
-
-fun KendallTamiamiExecutiveFLAirport : Ind Airport ;
-
-fun KenitraAirport : Ind Airport ;
-
-fun KenoraONAirport : Ind Airport ;
-
-fun KentInternationalEnglandAirport : Ind Airport ;
-
-fun KentlandINAirport : Ind Airport ;
-
-fun KetchikanHarborSeaplaneBaseAKAirport : Ind Airport ;
-
-fun KeyFieldMSAirport : Ind Airport ;
-
-fun KeyLakeSKAirport : Ind Airport ;
-
-fun KeyWestNavalAirStationBocaChicaFieldFLAirport : Ind Airport ;
-
-fun KeystoneCOAirport : Ind Airport ;
-
-fun KhalidMilitaryCityAirport : Ind Airport ;
-
-fun KhujandKhudzhandKhujandAirport : Ind Airport ;
-
-fun KigomaAirport : Ind Airport ;
-
-fun KijangTanjungPinangAirport : Ind Airport ;
-
-fun KillaloeONAirport : Ind Airport ;
-
-fun KilliniqKillinekIslandNTAirport : Ind Airport ;
-
-fun KimberleyBCAirport : Ind Airport ;
-
-fun KimhaePusanAirport : Ind Airport ;
-
-fun KimpoSeoulAirport : Ind Airport ;
-
-fun KindersleySKAirport : Ind Airport ;
-
-fun KingHusseinAirBaseMafraqAirport : Ind Airport ;
-
-fun KingKhalidRiyadhAirport : Ind Airport ;
-
-fun KingsLandOLakesWIAirport : Ind Airport ;
-
-fun KingsfordSmithNewSouthWalesAirport : Ind Airport ;
-
-fun KingstonONAirport : Ind Airport ;
-
-fun KingsvilleNavalAirStationTXAirport : Ind Airport ;
-
-fun KirkFieldARAirport : Ind Airport ;
-
-fun KirklandLakeONAirport : Ind Airport ;
-
-fun KitchenerLakeWaterAerodromeBCAirport : Ind Airport ;
-
-fun KitimatAerodromeBCAirport : Ind Airport ;
-
-fun KiungaAirport : Ind Airport ;
-
-fun KlamathFallsInternationalORAirport : Ind Airport ;
-
-fun KlemtuWaterAerodromeBCAirport : Ind Airport ;
-
-fun KneeLakeMBAirport : Ind Airport ;
-
-fun KnockConnaughtAirport : Ind Airport ;
-
-fun KnoxCountyRegionalMEAirport : Ind Airport ;
-
-fun KnoxvilleMunicipalIAAirport : Ind Airport ;
-
-fun KobeAirport : Ind Airport ;
-
-fun KobukAKAirport : Ind Airport ;
-
-fun KohSamuiAirport : Ind Airport ;
-
-fun KohatAirport : Ind Airport ;
-
-fun KokomoMunicipalINAirport : Ind Airport ;
-
-fun KomakiHonshuAirport : Ind Airport ;
-
-fun KomotiniAirport : Ind Airport ;
-
-fun KonstanzAirport : Ind Airport ;
-
-fun KopaskerAirport : Ind Airport ;
-
-fun KosciuskoAttalaCountyMSAirport : Ind Airport ;
-
-fun KoszalinAirport : Ind Airport ;
-
-fun KotaAirportEthiopia : Ind Airport ;
-
-fun KoundaraAirport : Ind Airport ;
-
-fun KourouAirport : Ind Airport ;
-
-fun KrefeldAirport : Ind Airport ;
-
-fun KsarEsSoukAirport : Ind Airport ;
-
-fun KualaTerengganuAirport : Ind Airport ;
-
-fun KuitoAirport : Ind Airport ;
-
-fun KulikLakeAKAirport : Ind Airport ;
-
-fun KumeJimaAirport : Ind Airport ;
-
-fun KunduzAirport : Ind Airport ;
-
-fun KungKuanAirport : Ind Airport ;
-
-fun KungsangenNorrkopingAirport : Ind Airport ;
-
-fun KurskKurskAirport : Ind Airport ;
-
-fun KuujjuaqFortChimoQCAirport : Ind Airport ;
-
-fun KuujjuarapikQCAirport : Ind Airport ;
-
-fun KwangYunAirport : Ind Airport ;
-
-fun KymiKouvolaAirport : Ind Airport ;
-
-fun KyotoAirport : Ind Airport ;
-
-fun LMClaytonMTAirport : Ind Airport ;
-
-fun LOSimenstadMunicipalWIAirport : Ind Airport ;
-
-fun LaBauleAirport : Ind Airport ;
-
-fun LaChinitaMaracaiboAirport : Ind Airport ;
-
-fun LaChorreraAirport : Ind Airport ;
-
-fun LaColomaAirport : Ind Airport ;
-
-fun LaCorunaAirport : Ind Airport ;
-
-fun LaCrosseWIWinonaAirport : Ind Airport ;
-
-fun LaFriaAirport : Ind Airport ;
-
-fun LaGrandeUnionCountyORAirport : Ind Airport ;
-
-fun LaGrandenr3QCAirport : Ind Airport ;
-
-fun LaGrandenr4QCAirport : Ind Airport ;
-
-fun LaGuairaAirport : Ind Airport ;
-
-fun LaGuardiaNYAirport : Ind Airport ;
-
-fun LaJuntaMunicipalCOAirport : Ind Airport ;
-
-fun LaLlagoneAirport : Ind Airport ;
-
-fun LaMacazaQCAirport : Ind Airport ;
-
-fun LaMesaSanPedroSulaAirport : Ind Airport ;
-
-fun LaMunozaAirport : Ind Airport ;
-
-fun LaPalmaCanaryIslandsAirport : Ind Airport ;
-
-fun LaPalyvestreToulonHyeresAirport : Ind Airport ;
-
-fun LaPedreraAirport : Ind Airport ;
-
-fun LaPlagneAirport : Ind Airport ;
-
-fun LaPorteMunicipalINAirport : Ind Airport ;
-
-fun LaPrimaveraAirport : Ind Airport ;
-
-fun LaRomanaAirport : Ind Airport ;
-
-fun LaRongeSKAirport : Ind Airport ;
-
-fun LaSarreAerodromeQCAirport : Ind Airport ;
-
-fun LaSerenaAirport : Ind Airport ;
-
-fun LaTabatiereWaterAerodromeQCAirport : Ind Airport ;
-
-fun LaTontoutaNoumeaAirport : Ind Airport ;
-
-fun LaToucheAKAirport : Ind Airport ;
-
-fun LaTuqueQCAirport : Ind Airport ;
-
-fun LaUnionAirport : Ind Airport ;
-
-fun LaVanguardiaVillavicencioAirport : Ind Airport ;
-
-fun LaarbruchAirport : Ind Airport ;
-
-fun LabambaAirport : Ind Airport ;
-
-fun LabasaAirport : Ind Airport ;
-
-fun LabeAirport : Ind Airport ;
-
-fun LaberalAirport : Ind Airport ;
-
-fun LablabAirport : Ind Airport ;
-
-fun LabouchereBayAKAirport : Ind Airport ;
-
-fun LabuanBajoAirport : Ind Airport ;
-
-fun LabuanSabahAirport : Ind Airport ;
-
-fun LabuhaAirport : Ind Airport ;
-
-fun LacBrochetMBAirport : Ind Airport ;
-
-fun LacLaBicheABAirport : Ind Airport ;
-
-fun LacLaMartreAerodromeNTAirport : Ind Airport ;
-
-fun LaconiaMunicipalNHAirport : Ind Airport ;
-
-fun LacumbreAirport : Ind Airport ;
-
-fun LadouanieAirport : Ind Airport ;
-
-fun LadyElliottIslandAirport : Ind Airport ;
-
-fun LadyFranklinPointNTAirport : Ind Airport ;
-
-fun LadysmithAirport : Ind Airport ;
-
-fun LaeIslandAirport : Ind Airport ;
-
-fun LafayetteRegionalLAAirport : Ind Airport ;
-
-fun LagesSCAirport : Ind Airport ;
-
-fun LaghouatAirport : Ind Airport ;
-
-fun LagoAgrioAirport : Ind Airport ;
-
-fun LagosdeMorenoAirport : Ind Airport ;
-
-fun LagunaArmyAirFieldAZAirport : Ind Airport ;
-
-fun LagunillasAirport : Ind Airport ;
-
-fun LahadDatuSabahAirport : Ind Airport ;
-
-fun LahoreAirport : Ind Airport ;
-
-fun LahrAirport : Ind Airport ;
-
-fun LaiAirport : Ind Airport ;
-
-fun LaiagamAirport : Ind Airport ;
-
-fun LaieuLaRochelleAirport : Ind Airport ;
-
-fun LajeadoRSAirport : Ind Airport ;
-
-fun LajesNavalAirStationAzoresAirport : Ind Airport ;
-
-fun LakeBaringoAirport : Ind Airport ;
-
-fun LakeCharlesRegionalLAAirport : Ind Airport ;
-
-fun LakeCountyCOAirport : Ind Airport ;
-
-fun LakeCountyORAirport : Ind Airport ;
-
-fun LakeEvellaNorthernTerritoryAirport : Ind Airport ;
-
-fun LakeGenevaAireEstatesWIAirport : Ind Airport ;
-
-fun LakeHarbourNTAirport : Ind Airport ;
-
-fun LakeHoodSeaplaneBaseAKAirport : Ind Airport ;
-
-fun LakeManyaraAirport : Ind Airport ;
-
-fun LakeMinchuminaAKAirport : Ind Airport ;
-
-fun LakeMurrayAirport : Ind Airport ;
-
-fun LakeNashNorthernTerritoryAirport : Ind Airport ;
-
-fun LakePlacidNYAirport : Ind Airport ;
-
-fun LakeRudolfAirport : Ind Airport ;
-
-fun LakeTahoeCAAirport : Ind Airport ;
-
-fun LakeUnionChryslerAirSeaplaneBaseWAAirport : Ind Airport ;
-
-fun LakebaAirport : Ind Airport ;
-
-fun LakefieldQueenslandAirport : Ind Airport ;
-
-fun LakefrontLAAirport : Ind Airport ;
-
-fun LakehurstNAESMaxfieldFieldNJAirport : Ind Airport ;
-
-fun LakelandDownsAirport : Ind Airport ;
-
-fun LakelandRegionalFLAirport : Ind Airport ;
-
-fun LakenheathAirport : Ind Airport ;
-
-fun LakesideTXAirport : Ind Airport ;
-
-fun LakesideUSAFMNAirport : Ind Airport ;
-
-fun LalibellaAirport : Ind Airport ;
-
-fun LalmonirhatAirport : Ind Airport ;
-
-fun LalomalavaAirport : Ind Airport ;
-
-fun LamapAirport : Ind Airport ;
-
-fun LamarMunicipalCOAirport : Ind Airport ;
-
-fun LamarMunicipalMOAirport : Ind Airport ;
-
-fun LamassaAirport : Ind Airport ;
-
-fun LambareneAirport : Ind Airport ;
-
-fun LambertStLouisInternationalMOAirport : Ind Airport ;
-
-fun LamenBayAirport : Ind Airport ;
-
-fun LameziaTermeAirport : Ind Airport ;
-
-fun LamidandaAirport : Ind Airport ;
-
-fun LampangAirport : Ind Airport ;
-
-fun LampedusaLampedusaIslandAirport : Ind Airport ;
-
-fun LanaiHIAirport : Ind Airport ;
-
-fun LancasterPAAirport : Ind Airport ;
-
-fun LandshotAirport : Ind Airport ;
-
-fun LangaraBCAirport : Ind Airport ;
-
-fun LangeoogAirport : Ind Airport ;
-
-fun LanggurTualAirport : Ind Airport ;
-
-fun LangimarAirport : Ind Airport ;
-
-fun LangkawiAirport : Ind Airport ;
-
-fun LangkawiPulauAirport : Ind Airport ;
-
-fun LangleyAirForceBaseVAAirport : Ind Airport ;
-
-fun LangnesTromsoAirport : Ind Airport ;
-
-fun LangtangAirport : Ind Airport ;
-
-fun LannBihouetLorientAirport : Ind Airport ;
-
-fun LannionAirport : Ind Airport ;
-
-fun LansdowneHouseONAirport : Ind Airport ;
-
-fun LansdowneStationWesternAustraliaAirport : Ind Airport ;
-
-fun LaoagAirport : Ind Airport ;
-
-fun LappeenrantaAirport : Ind Airport ;
-
-fun LaramieRegionalWYAirport : Ind Airport ;
-
-fun LarantukaAirport : Ind Airport ;
-
-fun LaredoInternationalTXAirport : Ind Airport ;
-
-fun LarisaAirport : Ind Airport ;
-
-fun LarkanaAirport : Ind Airport ;
-
-fun LarnacaAirport : Ind Airport ;
-
-fun LarnedPawneeCountyKSAirport : Ind Airport ;
-
-fun LarsonAirForceBaseWAAirport : Ind Airport ;
-
-fun LasCanasAirport : Ind Airport ;
-
-fun LasCrucesInternationalNMAirport : Ind Airport ;
-
-fun LasGaviotasAirport : Ind Airport ;
-
-fun LasHerasAirport : Ind Airport ;
-
-fun LasKorehAirport : Ind Airport ;
-
-fun LasLimasAirport : Ind Airport ;
-
-fun LasLomitasAirport : Ind Airport ;
-
-fun LasPalmasGranCanariaCanaryIslandsAirport : Ind Airport ;
-
-fun LasPiedrasAirport : Ind Airport ;
-
-fun LasTunasAirport : Ind Airport ;
-
-fun LasVegasMunicipalNMAirport : Ind Airport ;
-
-fun LashioAirport : Ind Airport ;
-
-fun LastourvilleAirport : Ind Airport ;
-
-fun LatakiaAirport : Ind Airport ;
-
-fun LathropWellsNVAirport : Ind Airport ;
-
-fun LatinaAirport : Ind Airport ;
-
-fun LatrobeAirport : Ind Airport ;
-
-fun LaucalaIslandAirport : Ind Airport ;
-
-fun LauncestonTasmaniaAirport : Ind Airport ;
-
-fun LauraQueenslandAirport : Ind Airport ;
-
-fun LauraStationQueenslandAirport : Ind Airport ;
-
-fun LauribeAirport : Ind Airport ;
-
-fun LaurieRiverAerodromeMBAirport : Ind Airport ;
-
-fun LaurinburgMaxtonNCAirport : Ind Airport ;
-
-fun LausanneLaBlecheretteLausanneAirport : Ind Airport ;
-
-fun LauterachAirport : Ind Airport ;
-
-fun LavalAirport : Ind Airport ;
-
-fun LavertonWesternAustraliaAirport : Ind Airport ;
-
-fun LavrasMGAirport : Ind Airport ;
-
-fun LawasSarawakAirport : Ind Airport ;
-
-fun LawicaPoznanAirport : Ind Airport ;
-
-fun LawnHillQueenslandAirport : Ind Airport ;
-
-fun LawrenceJTimmermanWIAirport : Ind Airport ;
-
-fun LawrenceKSAirport : Ind Airport ;
-
-fun LawrenceMunicipalKSAirport : Ind Airport ;
-
-fun LawrenceMunicipalMAAirport : Ind Airport ;
-
-fun LawrencevilleBrunswickMunicipalVAAirport : Ind Airport ;
-
-fun LawrencevilleVincennesInternationalILAirport : Ind Airport ;
-
-fun LawsonArmyAirFieldGAAirport : Ind Airport ;
-
-fun LawtonMunicipalOKAirport : Ind Airport ;
-
-fun LazaroCardenasAirport : Ind Airport ;
-
-fun LeBourgetParisAirport : Ind Airport ;
-
-fun LeMansAirport : Ind Airport ;
-
-fun LeMarsMunicipalIAAirport : Ind Airport ;
-
-fun LePuyAirport : Ind Airport ;
-
-fun LeRaizetPointeaPitreAirport : Ind Airport ;
-
-fun LeafRapidsMBAirport : Ind Airport ;
-
-fun LearmouthExmouthWesternAustraliaAirport : Ind Airport ;
-
-fun LebakengAirport : Ind Airport ;
-
-fun LebanonMunicipalNHAirport : Ind Airport ;
-
-fun LebelsurQuevillonAerodromeQCAirport : Ind Airport ;
-
-fun LecceAirport : Ind Airport ;
-
-fun LeconfeldEnglandAirport : Ind Airport ;
-
-fun LeconiAirport : Ind Airport ;
-
-fun LeedsBradfordAirport : Ind Airport ;
-
-fun LeesburgMunicipalFLAirport : Ind Airport ;
-
-fun LeetonNewSouthWalesAirport : Ind Airport ;
-
-fun LeeuwardenAirport : Ind Airport ;
-
-fun LegaspiAirport : Ind Airport ;
-
-fun LeguizamoAirport : Ind Airport ;
-
-fun LehmiCountyIDAirport : Ind Airport ;
-
-fun LehuAirport : Ind Airport ;
-
-fun LeighCreekSouthAustraliaAirport : Ind Airport ;
-
-fun LeinsterWesternAustraliaAirport : Ind Airport ;
-
-fun LeirinFagernesAirport : Ind Airport ;
-
-fun LeitreAirport : Ind Airport ;
-
-fun LekanaAirport : Ind Airport ;
-
-fun LeknesAirport : Ind Airport ;
-
-fun LelystadAirport : Ind Airport ;
-
-fun LemmonMunicipalSDAirport : Ind Airport ;
-
-fun LemnosLimnosAirport : Ind Airport ;
-
-fun LemooreNavalAirStationReevesFieldCAAirport : Ind Airport ;
-
-fun LemwerderDASAPlantBremenAirport : Ind Airport ;
-
-fun LengbatiAirport : Ind Airport ;
-
-fun LeoAirport : Ind Airport ;
-
-fun LeonMBaLibrevilleAirport : Ind Airport ;
-
-fun LeonoraWesternAustraliaAirport : Ind Airport ;
-
-fun LeopoldinaMGAirport : Ind Airport ;
-
-fun LerehAirport : Ind Airport ;
-
-fun LeribeAirport : Ind Airport ;
-
-fun LerosAirport : Ind Airport ;
-
-fun LesAngladesOujdaAirport : Ind Airport ;
-
-fun LesSablesAirport : Ind Airport ;
-
-fun LesSaintesTerredeHautAirport : Ind Airport ;
-
-fun LeseAirport : Ind Airport ;
-
-fun LesobengAirport : Ind Airport ;
-
-fun LesquinLilleAirport : Ind Airport ;
-
-fun LesterBPearsonInternationalONAirport : Ind Airport ;
-
-fun LethbridgeABAirport : Ind Airport ;
-
-fun LethemAirport : Ind Airport ;
-
-fun LewistonNezPerceCountyIDAirport : Ind Airport ;
-
-fun LewistownMunicipalMTAirport : Ind Airport ;
-
-fun LewolebaAirport : Ind Airport ;
-
-fun LhasaAirport : Ind Airport ;
-
-fun LhokSukonAirport : Ind Airport ;
-
-fun LhokseumaweAirport : Ind Airport ;
-
-fun LianyungangXinpuAirport : Ind Airport ;
-
-fun LiardRiverBCAirport : Ind Airport ;
-
-fun LibengeAirport : Ind Airport ;
-
-fun LiberalMunicipalKSAirport : Ind Airport ;
-
-fun LibertyCountyGAAirport : Ind Airport ;
-
-fun LiboiAirport : Ind Airport ;
-
-fun LicGustavoDOrdazPuertoVallartaAirport : Ind Airport ;
-
-fun LicManuelCrecencioRejonMeridaAirport : Ind Airport ;
-
-fun LicenciadoAdolfoLopezMateosTolucaAirport : Ind Airport ;
-
-fun LichingaVilaCabralAirport : Ind Airport ;
-
-fun LidkopingAirport : Ind Airport ;
-
-fun LiepajaAirport : Ind Airport ;
-
-fun LifouLifuLoyaltyIslandsAirport : Ind Airport ;
-
-fun LightningRidgeNewSouthWalesAirport : Ind Airport ;
-
-fun LihueHIAirport : Ind Airport ;
-
-fun LikiepAirport : Ind Airport ;
-
-fun LikomaIslandAirport : Ind Airport ;
-
-fun LimaOHAirport : Ind Airport ;
-
-fun LimassolAirport : Ind Airport ;
-
-fun LimbangSarawakAirport : Ind Airport ;
-
-fun LimbunyaNorthernTerritoryAirport : Ind Airport ;
-
-fun LimeAcresAirport : Ind Airport ;
-
-fun LimeVillageAKAirport : Ind Airport ;
-
-fun LimerickAirport : Ind Airport ;
-
-fun LimonAirport : Ind Airport ;
-
-fun LimonAirportCostaRica : Ind Airport ;
-
-fun LimonMunicipalCOAirport : Ind Airport ;
-
-fun LinateMilanoMilanAirport : Ind Airport ;
-
-fun LincolnMunicipalNEAirport : Ind Airport ;
-
-fun LincolnRiverAKAirport : Ind Airport ;
-
-fun LindaDownsAirport : Ind Airport ;
-
-fun LindemanIslandQueenslandAirport : Ind Airport ;
-
-fun LindenNJAirport : Ind Airport ;
-
-fun LindiAirport : Ind Airport ;
-
-fun LingaLingaAirport : Ind Airport ;
-
-fun LinkopingAirport : Ind Airport ;
-
-fun LinnCreekGrandGlaizeMemorialMOAirport : Ind Airport ;
-
-fun LinsSPAirport : Ind Airport ;
-
-fun LipetskLipetskAirport : Ind Airport ;
-
-fun LisalaAirport : Ind Airport ;
-
-fun LishanAirport : Ind Airport ;
-
-fun LismoreQueenslandAirport : Ind Airport ;
-
-fun LissadelWesternAustraliaAirport : Ind Airport ;
-
-fun LittleAmericaUTAirport : Ind Airport ;
-
-fun LittleCaymenMunicipalAirStripLittleCaymanAirport : Ind Airport ;
-
-fun LittleFallsMorrisonCountyMNAirport : Ind Airport ;
-
-fun LittleGrandRapidsMBAirport : Ind Airport ;
-
-fun LittleNaukatiAKAirport : Ind Airport ;
-
-fun LittlePortWalkerAKAirport : Ind Airport ;
-
-fun LittleRockAirForceBaseARAirport : Ind Airport ;
-
-fun LiuzhouAirport : Ind Airport ;
-
-fun LivermoreMunicipalCAAirport : Ind Airport ;
-
-fun LiverpoolNSAirport : Ind Airport ;
-
-fun LivingoodAKAirport : Ind Airport ;
-
-fun LivingstoneMarambaAirport : Ind Airport ;
-
-fun LizardIslandQueenslandAirport : Ind Airport ;
-
-fun LloydminsterABAirport : Ind Airport ;
-
-fun LoTungAirport : Ind Airport ;
-
-fun LoaniAirport : Ind Airport ;
-
-fun LobatzeAirport : Ind Airport ;
-
-fun LocarnoAirport : Ind Airport ;
-
-fun LochgilpheadAirport : Ind Airport ;
-
-fun LockSouthAustraliaAirport : Ind Airport ;
-
-fun LodarAirport : Ind Airport ;
-
-fun LodjaAirport : Ind Airport ;
-
-fun LodwarAirport : Ind Airport ;
-
-fun LoeiAirport : Ind Airport ;
-
-fun LoenAirport : Ind Airport ;
-
-fun LoganCacheUTAirport : Ind Airport ;
-
-fun LoikawAirport : Ind Airport ;
-
-fun LojaAirport : Ind Airport ;
-
-fun LolyangalaniAirport : Ind Airport ;
-
-fun LompocCAAirport : Ind Airport ;
-
-fun LondolovitAirport : Ind Airport ;
-
-fun LondonCorbinAirportMageeFieldKYAirport : Ind Airport ;
-
-fun LondonONAirport : Ind Airport ;
-
-fun LondrinaPRAirport : Ind Airport ;
-
-fun LondroreAirport : Ind Airport ;
-
-fun LonelyAFSAKAirport : Ind Airport ;
-
-fun LonesomePineVAAirport : Ind Airport ;
-
-fun LongApungAirport : Ind Airport ;
-
-fun LongBeachAirportDaughertyFieldCAAirport : Ind Airport ;
-
-fun LongIslandAKAirport : Ind Airport ;
-
-fun LongLamaAirport : Ind Airport ;
-
-fun LongLellangAirport : Ind Airport ;
-
-fun LongSemadoSarawakAirport : Ind Airport ;
-
-fun LongSeridanSarawakAirport : Ind Airport ;
-
-fun LongSukangAirport : Ind Airport ;
-
-fun LongXuyenAirport : Ind Airport ;
-
-fun LonganaAirport : Ind Airport ;
-
-fun LongbawanAirport : Ind Airport ;
-
-fun LongpointLakeWaterAerodromeONAirport : Ind Airport ;
-
-fun LongreachQueenslandAirport : Ind Airport ;
-
-fun LongstaffBluffNTAirport : Ind Airport ;
-
-fun LongviewWAAirport : Ind Airport ;
-
-fun LongyearbyenSvalbardAirport : Ind Airport ;
-
-fun LopezIslandWAAirport : Ind Airport ;
-
-fun LopezdeMicayAirport : Ind Airport ;
-
-fun LoqueAirport : Ind Airport ;
-
-fun LoraLaiAirport : Ind Airport ;
-
-fun LordHoweIslandNewSouthWalesAirport : Ind Airport ;
-
-fun LordsburgMunicipalNMAirport : Ind Airport ;
-
-fun LorengauManusIslandAirport : Ind Airport ;
-
-fun LoretoAirport : Ind Airport ;
-
-fun LoricaAirport : Ind Airport ;
-
-fun LoringAirForceBaseMEAirport : Ind Airport ;
-
-fun LoringSeaplaneBaseAKAirport : Ind Airport ;
-
-fun LorrachAirport : Ind Airport ;
-
-fun LorraineQueenslandAirport : Ind Airport ;
-
-fun LosAlamosNMAirport : Ind Airport ;
-
-fun LosAngelesAirport : Ind Airport ;
-
-fun LosAngelesInternationalCAAirport : Ind Airport ;
-
-fun LosBanosMunicipalCAAirport : Ind Airport ;
-
-fun LosCabosSanJosedelCaboAirport : Ind Airport ;
-
-fun LosChilesAirport : Ind Airport ;
-
-fun LosMenucosAirport : Ind Airport ;
-
-fun LosMochisAirport : Ind Airport ;
-
-fun LosRodeosCanaryIslandsAirport : Ind Airport ;
-
-fun LosRoquesAirport : Ind Airport ;
-
-fun LoshitsaMinskAirport : Ind Airport ;
-
-fun LosinjAirport : Ind Airport ;
-
-fun LostHarborAKAirport : Ind Airport ;
-
-fun LostNationOHAirport : Ind Airport ;
-
-fun LostRiver1AKAirport : Ind Airport ;
-
-fun LosuiaAirport : Ind Airport ;
-
-fun LotusvaleQueenslandAirport : Ind Airport ;
-
-fun LouisTrichardtAirport : Ind Airport ;
-
-fun LouisaCountyAirportFreemanFieldVAAirport : Ind Airport ;
-
-fun LouisvilleWinstonCountyMSAirport : Ind Airport ;
-
-fun LovelandCOAirport : Ind Airport ;
-
-fun LowaiAirport : Ind Airport ;
-
-fun LoweArmyHeliportALAirport : Ind Airport ;
-
-fun LtWarrenEatonNYAirport : Ind Airport ;
-
-fun LuaboAirport : Ind Airport ;
-
-fun LuangNamthaAirport : Ind Airport ;
-
-fun LuangPrabangAirport : Ind Airport ;
-
-fun LuauAirport : Ind Airport ;
-
-fun LubangoSadaBandeiraAirport : Ind Airport ;
-
-fun LubbockInternationalTXAirport : Ind Airport ;
-
-fun LuccaAirport : Ind Airport ;
-
-fun LucenecAirport : Ind Airport ;
-
-fun LucerneAirport : Ind Airport ;
-
-fun LucknowAirport : Ind Airport ;
-
-fun LudhianaAirport : Ind Airport ;
-
-fun LuebeckLubeckAirport : Ind Airport ;
-
-fun LuederitzLuderitzAirport : Ind Airport ;
-
-fun LuenaLusoAirport : Ind Airport ;
-
-fun LughGananeAirport : Ind Airport ;
-
-fun LuhanskLuhanskAirport : Ind Airport ;
-
-fun LuisMunozMarinInternationalSanJuanAirport : Ind Airport ;
-
-fun LuizaAirport : Ind Airport ;
-
-fun LukeAirForceBaseAZAirport : Ind Airport ;
-
-fun LuklaAirport : Ind Airport ;
-
-fun LukuluAirport : Ind Airport ;
-
-fun LumbertonMunicipalNCAirport : Ind Airport ;
-
-fun LumiAirport : Ind Airport ;
-
-fun LumidPauAirport : Ind Airport ;
-
-fun LunyukAirport : Ind Airport ;
-
-fun LuoyangAirport : Ind Airport ;
-
-fun LuoziAirport : Ind Airport ;
-
-fun LupepauuVavauAirport : Ind Airport ;
-
-fun LupinNTAirport : Ind Airport ;
-
-fun LuqaMaltaAirport : Ind Airport ;
-
-fun LusakaInternationalLusakaAirport : Ind Airport ;
-
-fun LusamboAirport : Ind Airport ;
-
-fun LusangaAirport : Ind Airport ;
-
-fun LusikisikiAirport : Ind Airport ;
-
-fun LuskMunicipalWYAirport : Ind Airport ;
-
-fun LutonEnglandAirport : Ind Airport ;
-
-fun LutskVolynAirport : Ind Airport ;
-
-fun LuwukAirport : Ind Airport ;
-
-fun LuxiAirport : Ind Airport ;
-
-fun LuxorAirport : Ind Airport ;
-
-fun LuzhouSichuanAirport : Ind Airport ;
-
-fun LvivLwowLvovAirport : Ind Airport ;
-
-fun LyallHarbourBCAirport : Ind Airport ;
-
-fun LyckseleAirport : Ind Airport ;
-
-fun LyddAirport : Ind Airport ;
-
-fun LynchburgRegionalAirportPrestonGlennFieldVAAirport : Ind Airport ;
-
-fun LyndhurstQueenslandAirport : Ind Airport ;
-
-fun LynehamRAFStationEnglandAirport : Ind Airport ;
-
-fun LynnLakeMBAirport : Ind Airport ;
-
-fun LyonsRiceCountyMunicipalKSAirport : Ind Airport ;
-
-fun LyttonBCAirport : Ind Airport ;
-
-fun MBalaAirport : Ind Airport ;
-
-fun MGrahamClarkMOAirport : Ind Airport ;
-
-fun MVengueFrancevilleAirport : Ind Airport ;
-
-fun MaanAirport : Ind Airport ;
-
-fun MabarumaAirport : Ind Airport ;
-
-fun MabuiagIslandQueenslandAirport : Ind Airport ;
-
-fun MacDillAirForceBaseFLAirport : Ind Airport ;
-
-fun MacDonaldDownsAirport : Ind Airport ;
-
-fun MacMillanPassAerodromeYTAirport : Ind Airport ;
-
-fun MacaeRJAirport : Ind Airport ;
-
-fun MacanalAirport : Ind Airport ;
-
-fun MacapaPAAirport : Ind Airport ;
-
-fun MacasAirport : Ind Airport ;
-
-fun MacauMacaoAirport : Ind Airport ;
-
-fun MacdonaldCartierInternationalONAirport : Ind Airport ;
-
-fun MaceioALAirport : Ind Airport ;
-
-fun MacentaAirport : Ind Airport ;
-
-fun MachalaAirport : Ind Airport ;
-
-fun MachesneyILAirport : Ind Airport ;
-
-fun MackarInletNTAirport : Ind Airport ;
-
-fun MackayQueenslandAirport : Ind Airport ;
-
-fun MackenzieBCAirport : Ind Airport ;
-
-fun MackinacIslandMIAirport : Ind Airport ;
-
-fun MacombMunicipalILAirport : Ind Airport ;
-
-fun MactanInternationalMactanIslandAirport : Ind Airport ;
-
-fun MadabaAirport : Ind Airport ;
-
-fun MadangAirport : Ind Airport ;
-
-fun MaderaMunicipalCAAirport : Ind Airport ;
-
-fun MadirovaloAirport : Ind Airport ;
-
-fun MadisonCountyOHAirport : Ind Airport ;
-
-fun MadisonMunicipalINAirport : Ind Airport ;
-
-fun MadisonMunicipalSDAirport : Ind Airport ;
-
-fun MaeSotAirport : Ind Airport ;
-
-fun MaewoAirport : Ind Airport ;
-
-fun MafekingAirport : Ind Airport ;
-
-fun MafetengAirport : Ind Airport ;
-
-fun MafiaIslandAirport : Ind Airport ;
-
-fun MafraSCAirport : Ind Airport ;
-
-fun MaganjadaCostaAirport : Ind Airport ;
-
-fun MaganqueAirport : Ind Airport ;
-
-fun MagdalenaAirport : Ind Airport ;
-
-fun MagnitogorskChelyabinskAirport : Ind Airport ;
-
-fun MagweAirport : Ind Airport ;
-
-fun MahanoroAirport : Ind Airport ;
-
-fun MahdiaAirport : Ind Airport ;
-
-fun MahendranagarAirport : Ind Airport ;
-
-fun MahilyowMogilevMahiliowAirport : Ind Airport ;
-
-fun MahonMenorcaBalearicIslandsAirport : Ind Airport ;
-
-fun MaianaAirport : Ind Airport ;
-
-fun MaicaoAirport : Ind Airport ;
-
-fun MaiduguriAirport : Ind Airport ;
-
-fun MaikwakAirport : Ind Airport ;
-
-fun MaimanaAirport : Ind Airport ;
-
-fun MainDuckONAirport : Ind Airport ;
-
-fun MainStationDowntownStuttgartAirport : Ind Airport ;
-
-fun MainoruNorthernTerritoryAirport : Ind Airport ;
-
-fun MaintiranoAirport : Ind Airport ;
-
-fun MainzAirport : Ind Airport ;
-
-fun MaioMaioAirport : Ind Airport ;
-
-fun MairiporuSPAirport : Ind Airport ;
-
-fun MaitlandNewSouthWalesAirport : Ind Airport ;
-
-fun MajiAirport : Ind Airport ;
-
-fun MajkinAirport : Ind Airport ;
-
-fun MajmaAirport : Ind Airport ;
-
-fun MakaleAirport : Ind Airport ;
-
-fun MakariosNicosiaAirport : Ind Airport ;
-
-fun MakemoAirport : Ind Airport ;
-
-fun MakhachkalaDagestanAirport : Ind Airport ;
-
-fun MakinAirport : Ind Airport ;
-
-fun MakiniAirport : Ind Airport ;
-
-fun MakkahAirport : Ind Airport ;
-
-fun MakkovikNFAirport : Ind Airport ;
-
-fun MakokouAirport : Ind Airport ;
-
-fun MakouaAirport : Ind Airport ;
-
-fun MakungAirport : Ind Airport ;
-
-fun MakurdiAirport : Ind Airport ;
-
-fun MalabangAirport : Ind Airport ;
-
-fun MalaboAirport : Ind Airport ;
-
-fun MaladCityIDAirport : Ind Airport ;
-
-fun MalaimbandyAirport : Ind Airport ;
-
-fun MalakalAirport : Ind Airport ;
-
-fun MalalauaAirport : Ind Airport ;
-
-fun MalangAirport : Ind Airport ;
-
-fun MalangeMalanjeAirport : Ind Airport ;
-
-fun MalargueAirport : Ind Airport ;
-
-fun MalatupoAirport : Ind Airport ;
-
-fun MalatvaAirport : Ind Airport ;
-
-fun MalayAirport : Ind Airport ;
-
-fun MalcolmMcKinnonGAAirport : Ind Airport ;
-
-fun MaldaAirport : Ind Airport ;
-
-fun MaldenMunicipalMOAirport : Ind Airport ;
-
-fun MaleHululeAirport : Ind Airport ;
-
-fun MalekolonAirport : Ind Airport ;
-
-fun MalianaAirport : Ind Airport ;
-
-fun MalindiAirport : Ind Airport ;
-
-fun MallacootaVictoriaAirport : Ind Airport ;
-
-fun MalmoAirport : Ind Airport ;
-
-fun MaloelapMaloelapAirport : Ind Airport ;
-
-fun MalololailaiAirport : Ind Airport ;
-
-fun MalpensaMilanoMilanAirport : Ind Airport ;
-
-fun MaltaMTAirport : Ind Airport ;
-
-fun MamaiAirport : Ind Airport ;
-
-fun MamburaoAirport : Ind Airport ;
-
-fun MamfeAirport : Ind Airport ;
-
-fun MamitupoAirport : Ind Airport ;
-
-fun MammothLakesCAAirport : Ind Airport ;
-
-fun MampikonyAirport : Ind Airport ;
-
-fun MamujuAirport : Ind Airport ;
-
-fun ManAirport : Ind Airport ;
-
-fun ManaAirport : Ind Airport ;
-
-fun ManakaraAirport : Ind Airport ;
-
-fun MananaraAirport : Ind Airport ;
-
-fun ManangAirport : Ind Airport ;
-
-fun MananjaryAirport : Ind Airport ;
-
-fun ManareAirport : Ind Airport ;
-
-fun ManassasMunicipalAirportHarryPDavisFieldVAAirport : Ind Airport ;
-
-fun ManateeAirport : Ind Airport ;
-
-fun ManaungAirport : Ind Airport ;
-
-fun ManchesterNHAirport : Ind Airport ;
-
-fun MandabeAirport : Ind Airport ;
-
-fun MandalayAirport : Ind Airport ;
-
-fun ManderaAirport : Ind Airport ;
-
-fun MandevilleAirport : Ind Airport ;
-
-fun MandoraWesternAustraliaAirport : Ind Airport ;
-
-fun MandritsaraAirport : Ind Airport ;
-
-fun ManeaAirport : Ind Airport ;
-
-fun ManetaiAirport : Ind Airport ;
-
-fun MangaAirport : Ind Airport ;
-
-fun MangaiaAirport : Ind Airport ;
-
-fun MangochiAirport : Ind Airport ;
-
-fun MangoleAirport : Ind Airport ;
-
-fun MangroveCayAirport : Ind Airport ;
-
-fun MangunjayaAirport : Ind Airport ;
-
-fun ManhattanMunicipalKSAirport : Ind Airport ;
-
-fun ManicoreAMAirport : Ind Airport ;
-
-fun ManihiAirport : Ind Airport ;
-
-fun ManihikiIslandAirport : Ind Airport ;
-
-fun ManilaAirport : Ind Airport ;
-
-fun ManilaMunicipalARAirport : Ind Airport ;
-
-fun ManingridaNorthernTerritoryAirport : Ind Airport ;
-
-fun ManisteeCountyBlackerMIAirport : Ind Airport ;
-
-fun ManitoulinONAirport : Ind Airport ;
-
-fun ManitouwadgeONAirport : Ind Airport ;
-
-fun ManitowaningAerodromeONAirport : Ind Airport ;
-
-fun ManitowocCountyWIAirport : Ind Airport ;
-
-fun ManiwakiQCAirport : Ind Airport ;
-
-fun ManizalesAirport : Ind Airport ;
-
-fun ManjaAirport : Ind Airport ;
-
-fun ManjimupWesternAustraliaAirport : Ind Airport ;
-
-fun MankatoMunicipalMNAirport : Ind Airport ;
-
-fun ManleyHotSpringsAKAirport : Ind Airport ;
-
-fun MannersCreekNorthernTerritoryAirport : Ind Airport ;
-
-fun MannheimAirport : Ind Airport ;
-
-fun ManokwariAirport : Ind Airport ;
-
-fun ManonoAirport : Ind Airport ;
-
-fun MansaAirport : Ind Airport ;
-
-fun MansfieldLahmMunicipalOHAirport : Ind Airport ;
-
-fun MantiEphraimUTAirport : Ind Airport ;
-
-fun ManumuAirport : Ind Airport ;
-
-fun ManzanilloAirport : Ind Airport ;
-
-fun MaotaAirport : Ind Airport ;
-
-fun MapleBayBCAirport : Ind Airport ;
-
-fun MapodaAirport : Ind Airport ;
-
-fun MapuaAirport : Ind Airport ;
-
-fun MaputoAirport : Ind Airport ;
-
-fun MaquinchaoAirport : Ind Airport ;
-
-fun MaquoketaMunicipalIAAirport : Ind Airport ;
-
-fun MaraLodgesAirport : Ind Airport ;
-
-fun MarabaPAAirport : Ind Airport ;
-
-fun MaracayAirport : Ind Airport ;
-
-fun MaradiAirport : Ind Airport ;
-
-fun MarakeiAirport : Ind Airport ;
-
-fun MaramuniAirport : Ind Airport ;
-
-fun MarathonFLAirport : Ind Airport ;
-
-fun MarathonONAirport : Ind Airport ;
-
-fun MarauAirport : Ind Airport ;
-
-fun MarawakaAirport : Ind Airport ;
-
-fun MarbellaAirport : Ind Airport ;
-
-fun MarbleBarWesternAustraliaAirport : Ind Airport ;
-
-fun MarbleCanyonAZAirport : Ind Airport ;
-
-fun MarcalaAirport : Ind Airport ;
-
-fun MarchAirForceBaseCAAirport : Ind Airport ;
-
-fun MarcoIslandFLAirport : Ind Airport ;
-
-fun MarcoPoloTesseraVeneziaVeniceAirport : Ind Airport ;
-
-fun MarcusIslandsAirport : Ind Airport ;
-
-fun MardelPlataAirport : Ind Airport ;
-
-fun MareLoyaltyIslandsAirport : Ind Airport ;
-
-fun MarebAirport : Ind Airport ;
-
-fun MarfaMunicipalTXAirport : Ind Airport ;
-
-fun MargaretRiverWesternAustraliaAirport : Ind Airport ;
-
-fun MargarinaAirport : Ind Airport ;
-
-fun MargaritaIslandAirport : Ind Airport ;
-
-fun MargateAirport : Ind Airport ;
-
-fun MargueriteBayAKAirport : Ind Airport ;
-
-fun MarianskeLazneAirport : Ind Airport ;
-
-fun MariborAirport : Ind Airport ;
-
-fun MaricourtAirstripQCAirport : Ind Airport ;
-
-fun MariehamnMaarianhaminaAirport : Ind Airport ;
-
-fun MarignaneProvenceMarseilleAirport : Ind Airport ;
-
-fun MariliaSPAirport : Ind Airport ;
-
-fun MarinadiMassaAirport : Ind Airport ;
-
-fun MarinduqueAirport : Ind Airport ;
-
-fun MarineCorpsAirFacilityHonshuIsAirport : Ind Airport ;
-
-fun MaringaPRAirport : Ind Airport ;
-
-fun MarionDownsQueenslandAirport : Ind Airport ;
-
-fun MarionMunicipalINAirport : Ind Airport ;
-
-fun MarionMunicipalOHAirport : Ind Airport ;
-
-fun MaripasoulaAirport : Ind Airport ;
-
-fun MariquitaAirport : Ind Airport ;
-
-fun MariscalSucreQuitoAirport : Ind Airport ;
-
-fun MariupolZhdanovDonetskAirport : Ind Airport ;
-
-fun MarlaSouthAustraliaAirport : Ind Airport ;
-
-fun MarlboroughMAAirport : Ind Airport ;
-
-fun MarmulAirport : Ind Airport ;
-
-fun MaroantsetraAirport : Ind Airport ;
-
-fun MaronAirport : Ind Airport ;
-
-fun MaroochydoreSunshineCoastQueenslandAirport : Ind Airport ;
-
-fun MarquaNorthernTerritoryAirport : Ind Airport ;
-
-fun MarquetteCountyMIAirport : Ind Airport ;
-
-fun MarreeSouthAustraliaAirport : Ind Airport ;
-
-fun MarromeuAirport : Ind Airport ;
-
-fun MarsaBregaAirport : Ind Airport ;
-
-fun MarsaMatrumMersaMatruhAirport : Ind Airport ;
-
-fun MarsabitAirport : Ind Airport ;
-
-fun MarshHarbourAbacoAirport : Ind Airport ;
-
-fun MarshallAKAirport : Ind Airport ;
-
-fun MarshallIslandsInternationalMajuroAirport : Ind Airport ;
-
-fun MarshallMemorialMunicipalMOAirport : Ind Airport ;
-
-fun MarshallMunicipalAirportRyanFieldMNAirport : Ind Airport ;
-
-fun MarshalltownMunicipalIAAirport : Ind Airport ;
-
-fun MarshfieldMunicipalWIAirport : Ind Airport ;
-
-fun MarthasVineyardMAAirport : Ind Airport ;
-
-fun MartinStateMDAirport : Ind Airport ;
-
-fun MartindaleArmyAirFieldTexasArmyNationalGuardTXAirport : Ind Airport ;
-
-fun MarudiSarawakAirport : Ind Airport ;
-
-fun MaryMaryAirport : Ind Airport ;
-
-fun MaryboroughQueenslandAirport : Ind Airport ;
-
-fun MarysHarbourNFAirport : Ind Airport ;
-
-fun MasaAirport : Ind Airport ;
-
-fun MasadaAirport : Ind Airport ;
-
-fun MasalemboAirport : Ind Airport ;
-
-fun MasambaAirport : Ind Airport ;
-
-fun MasasiAirport : Ind Airport ;
-
-fun MasbateAirport : Ind Airport ;
-
-fun MascaraAirport : Ind Airport ;
-
-fun MashadAirport : Ind Airport ;
-
-fun MasiManimbaAirport : Ind Airport ;
-
-fun MasirahAirport : Ind Airport ;
-
-fun MasonCityMunicipalIAAirport : Ind Airport ;
-
-fun MasonCountyMIAirport : Ind Airport ;
-
-fun MassawaAirport : Ind Airport ;
-
-fun MassenaInternationalAirportRichardsFieldNYAirport : Ind Airport ;
-
-fun MassendjoAirport : Ind Airport ;
-
-fun MassettWaterAerodromeBCAirport : Ind Airport ;
-
-fun MastertonAirport : Ind Airport ;
-
-fun MasticPointAirport : Ind Airport ;
-
-fun MatadiAirport : Ind Airport ;
-
-fun MatagamiQCAirport : Ind Airport ;
-
-fun MatagordaPeninsulaTXAirport : Ind Airport ;
-
-fun MataivaAirport : Ind Airport ;
-
-fun MatakAirport : Ind Airport ;
-
-fun MatamAirport : Ind Airport ;
-
-fun MatamataAirport : Ind Airport ;
-
-fun MatamorosAirport : Ind Airport ;
-
-fun MataneQCAirport : Ind Airport ;
-
-fun MatanzasAirport : Ind Airport ;
-
-fun MatasaphaManziniAirport : Ind Airport ;
-
-fun MatecanaPereiraAirport : Ind Airport ;
-
-fun MatherAirForceBaseCAAirport : Ind Airport ;
-
-fun MathisFieldTXAirport : Ind Airport ;
-
-fun MatiAirport : Ind Airport ;
-
-fun MatoGrossoMGAirport : Ind Airport ;
-
-fun MatsaileAirport : Ind Airport ;
-
-fun MatsumotoAirport : Ind Airport ;
-
-fun MatsuyamaSkikokuAirport : Ind Airport ;
-
-fun MatthewsRidgeAirport : Ind Airport ;
-
-fun MatupaAirport : Ind Airport ;
-
-fun MaturinAirport : Ind Airport ;
-
-fun MaukeAirport : Ind Airport ;
-
-fun MaulmyineMoulmeinAirport : Ind Airport ;
-
-fun MaumereAirport : Ind Airport ;
-
-fun MaunAirport : Ind Airport ;
-
-fun MaupitiSocietyIslandsAirport : Ind Airport ;
-
-fun MauryCountyTNAirport : Ind Airport ;
-
-fun MavesAirport : Ind Airport ;
-
-fun MaxwellAirForceBaseALAirport : Ind Airport ;
-
-fun MayCreekAKAirport : Ind Airport ;
-
-fun MayRiverAirport : Ind Airport ;
-
-fun MayaguanaMayaguanaAirport : Ind Airport ;
-
-fun MayajiquaAirport : Ind Airport ;
-
-fun MayfaahAirport : Ind Airport ;
-
-fun MayoYTAirport : Ind Airport ;
-
-fun MayoumbaAirport : Ind Airport ;
-
-fun MayportNavalAirStationFLAirport : Ind Airport ;
-
-fun MazariSharifAirport : Ind Airport ;
-
-fun MbabaneAirport : Ind Airport ;
-
-fun MbambanakiraAirport : Ind Airport ;
-
-fun MbandakaAirport : Ind Airport ;
-
-fun MbanzaCongoAirport : Ind Airport ;
-
-fun MbararaAirport : Ind Airport ;
-
-fun MbeyaAirport : Ind Airport ;
-
-fun MbigouAirport : Ind Airport ;
-
-fun MbokiAirport : Ind Airport ;
-
-fun MboutAirport : Ind Airport ;
-
-fun MbujiMayiAirport : Ind Airport ;
-
-fun McAlesterRegionalOKAirport : Ind Airport ;
-
-fun McArthurRiverNorthernTerritoryAirport : Ind Airport ;
-
-fun McCallIDAirport : Ind Airport ;
-
-fun McCarranInternationalNVAirport : Ind Airport ;
-
-fun McCarthyAKAirport : Ind Airport ;
-
-fun McChordAirForceBaseWAAirport : Ind Airport ;
-
-fun McClellanAirForceBaseCAAirport : Ind Airport ;
-
-fun McCombPikeCountyJohnELewisFieldMSAirport : Ind Airport ;
-
-fun McCookMunicipalNEAirport : Ind Airport ;
-
-fun McEntireAirNationalGuardBaseSCAirport : Ind Airport ;
-
-fun McGheeTysonTNAirport : Ind Airport ;
-
-fun McGrathAKAirport : Ind Airport ;
-
-fun McGuireAirForceBaseNJAirport : Ind Airport ;
-
-fun McKellarSipesRegionalTNAirport : Ind Airport ;
-
-fun McKennaArmyAirFieldGAAirport : Ind Airport ;
-
-fun McKinleyNationalParkAKAirport : Ind Airport ;
-
-fun McMinnCountyTNAirport : Ind Airport ;
-
-fun McMinnvilleMunicipalORAirport : Ind Airport ;
-
-fun McNaryFieldORAirport : Ind Airport ;
-
-fun McPhersonKSAirport : Ind Airport ;
-
-fun MeadowLakeSKAirport : Ind Airport ;
-
-fun MechanicsBaySeaplaneBaseAucklandAirport : Ind Airport ;
-
-fun MedfordJacksonCountyORAirport : Ind Airport ;
-
-fun MedfraAKAirport : Ind Airport ;
-
-fun MedicineHatABAirport : Ind Airport ;
-
-fun MedinaCAAirport : Ind Airport ;
-
-fun MedinaMadinahAirport : Ind Airport ;
-
-fun MediteraneeFrejorguesMontpellierAirport : Ind Airport ;
-
-fun MedouneuAirport : Ind Airport ;
-
-fun MeekatharraWesternAustraliaAirport : Ind Airport ;
-
-fun MeenambakkamMadrasAirport : Ind Airport ;
-
-fun MeffordFieldCAAirport : Ind Airport ;
-
-fun MegeveAirport : Ind Airport ;
-
-fun MeghauliAirport : Ind Airport ;
-
-fun MehamnAirport : Ind Airport ;
-
-fun MehrabadQualehMorgehTeheranTheranAirport : Ind Airport ;
-
-fun MeixianAirport : Ind Airport ;
-
-fun MejitMejitIslandAirport : Ind Airport ;
-
-fun MekamboAirport : Ind Airport ;
-
-fun MekaneSalemAirport : Ind Airport ;
-
-fun MeknesAirport : Ind Airport ;
-
-fun MekoryukAKAirport : Ind Airport ;
-
-fun MelangguaneAirport : Ind Airport ;
-
-fun MelbourneInternationalFLAirport : Ind Airport ;
-
-fun MelchordeMencosAirport : Ind Airport ;
-
-fun MelfiAirport : Ind Airport ;
-
-fun MelillaAirport : Ind Airport ;
-
-fun MelindaAirport : Ind Airport ;
-
-fun MeloAirport : Ind Airport ;
-
-fun MemanbetsuAirport : Ind Airport ;
-
-fun MemphisInternationalTNAirport : Ind Airport ;
-
-fun MemphisNavalAirStationTNAirport : Ind Airport ;
-
-fun MenaAirport : Ind Airport ;
-
-fun MenaraMarrakechAirport : Ind Airport ;
-
-fun MendeAirport : Ind Airport ;
-
-fun MendezAirport : Ind Airport ;
-
-fun MendiAirport : Ind Airport ;
-
-fun MendiAirportEthiopia : Ind Airport ;
-
-fun MenomineeMarinetteTwinCountyMIAirport : Ind Airport ;
-
-fun MenongueAirport : Ind Airport ;
-
-fun MercedMunicipalAirportMacreadyFieldCAAirport : Ind Airport ;
-
-fun MercedesAirport : Ind Airport ;
-
-fun MerceditaPonceAirport : Ind Airport ;
-
-fun MercerCountyNJAirport : Ind Airport ;
-
-fun MerdeyAirport : Ind Airport ;
-
-fun MeribelAirport : Ind Airport ;
-
-fun MeridaAirport : Ind Airport ;
-
-fun MeridianNavalAirStationMcCainFieldMSAirport : Ind Airport ;
-
-fun MerimbulaNewSouthWalesAirport : Ind Airport ;
-
-fun MerlunaQueenslandAirport : Ind Airport ;
-
-fun MeroweAirport : Ind Airport ;
-
-fun MerrillFieldAKAirport : Ind Airport ;
-
-fun MerrillMunicipalWIAirport : Ind Airport ;
-
-fun MerrittBCAirport : Ind Airport ;
-
-fun MerryIslandBCAirport : Ind Airport ;
-
-fun MersingAirport : Ind Airport ;
-
-fun MertySouthAustraliaAirport : Ind Airport ;
-
-fun MerzifonAirport : Ind Airport ;
-
-fun MessinaAirport : Ind Airport ;
-
-fun MessinaAirportItaly : Ind Airport ;
-
-fun MetcalfFieldOHAirport : Ind Airport ;
-
-fun MetekelAirport : Ind Airport ;
-
-fun MetlakatlaAKAirport : Ind Airport ;
-
-fun MetroFieldAKAirport : Ind Airport ;
-
-fun MetropolianAreaParisAirport : Ind Airport ;
-
-fun MetropolitanAreaABAirport : Ind Airport ;
-
-fun MetropolitanAreaCAAirport : Ind Airport ;
-
-fun MetropolitanAreaCOAirport : Ind Airport ;
-
-fun MetropolitanAreaDCAirport : Ind Airport ;
-
-fun MetropolitanAreaEnglandAirport : Ind Airport ;
-
-fun MetropolitanAreaFLAirport : Ind Airport ;
-
-fun MetropolitanAreaMilanoMilanAirport : Ind Airport ;
-
-fun MetropolitanAreaMoscowAirport : Ind Airport ;
-
-fun MetropolitanAreaNYAirport : Ind Airport ;
-
-fun MetropolitanAreaONAirport : Ind Airport ;
-
-fun MetropolitanAreaOsakaAirport : Ind Airport ;
-
-fun MetropolitanAreaOsloAirport : Ind Airport ;
-
-fun MetropolitanAreaQCAirport : Ind Airport ;
-
-fun MetropolitanAreaRJAirport : Ind Airport ;
-
-fun MetropolitanAreaRomaRomeAirport : Ind Airport ;
-
-fun MetropolitanAreaSPAirport : Ind Airport ;
-
-fun MetropolitanAreaStockholmAirport : Ind Airport ;
-
-fun MetropolitanAreaTokyoAirport : Ind Airport ;
-
-fun MetropolitanMAAirport : Ind Airport ;
-
-fun MetropolitanOaklandInternationalCAAirport : Ind Airport ;
-
-fun MetterMunicipalGAAirport : Ind Airport ;
-
-fun MeulabohAirport : Ind Airport ;
-
-fun MevangAirport : Ind Airport ;
-
-fun MeyersChuckSeaplaneBaseAKAirport : Ind Airport ;
-
-fun MfuweAirport : Ind Airport ;
-
-fun MiamiInternationalFLAirport : Ind Airport ;
-
-fun MiamiMunicipalOKAirport : Ind Airport ;
-
-fun MiamiUniversityOHAirport : Ind Airport ;
-
-fun MiandrivazoAirport : Ind Airport ;
-
-fun MianwaliAirport : Ind Airport ;
-
-fun MichianaRegionalTransportationCenterINAirport : Ind Airport ;
-
-fun MichiganCityINAirport : Ind Airport ;
-
-fun MidStatePAAirport : Ind Airport ;
-
-fun MiddleCaicosAirport : Ind Airport ;
-
-fun MiddleGeorgiaRegionalGAAirport : Ind Airport ;
-
-fun MiddlemountQueenslandAirport : Ind Airport ;
-
-fun MiddletonIslandAKAirport : Ind Airport ;
-
-fun MidlandAirparkTXAirport : Ind Airport ;
-
-fun MidlandInternationalTXAirport : Ind Airport ;
-
-fun MidwayNavalAirFacilitySandIslandAirport : Ind Airport ;
-
-fun MifflinCountyPAAirport : Ind Airport ;
-
-fun MikkeliAirport : Ind Airport ;
-
-fun MikraThessalonikiSalonikiAirport : Ind Airport ;
-
-fun MildenhallAirport : Ind Airport ;
-
-fun MilduraVictoriaAirport : Ind Airport ;
-
-fun MilfordMunicipalUTAirport : Ind Airport ;
-
-fun MilfordSoundAirport : Ind Airport ;
-
-fun MiliMiliIslandAirport : Ind Airport ;
-
-fun MillardNEAirport : Ind Airport ;
-
-fun MillerFieldNEAirport : Ind Airport ;
-
-fun MillerInternationalTXAirport : Ind Airport ;
-
-fun MillicentSouthAustraliaAirport : Ind Airport ;
-
-fun MillingimbiNorthernTerritoryAirport : Ind Airport ;
-
-fun MillinocketMunicipalMEAirport : Ind Airport ;
-
-fun MillvilleMunicipalNJAirport : Ind Airport ;
-
-fun MilosAirport : Ind Airport ;
-
-fun MinacuAirport : Ind Airport ;
-
-fun MinakiAerodromeONAirport : Ind Airport ;
-
-fun MinaltonSouthAustraliaAirport : Ind Airport ;
-
-fun MinamiDaitoJimaOkinawaAirport : Ind Airport ;
-
-fun MinatitlanAirport : Ind Airport ;
-
-fun MinchuminaAKAirport : Ind Airport ;
-
-fun MindikAirport : Ind Airport ;
-
-fun MindiptanaAirport : Ind Airport ;
-
-fun MineralWellsTXAirport : Ind Airport ;
-
-fun MineralniyeVodyStavropolAirport : Ind Airport ;
-
-fun MinersBayBCAirport : Ind Airport ;
-
-fun MinersLakeAirport : Ind Airport ;
-
-fun MingaladonYangoonRangoonAirport : Ind Airport ;
-
-fun MinganQCAirport : Ind Airport ;
-
-fun MinjAirport : Ind Airport ;
-
-fun MinnaAirport : Ind Airport ;
-
-fun MinneapolisStPaulInternationalWoldChamberlainMNAirport : Ind Airport ;
-
-fun MinneriyaAirport : Ind Airport ;
-
-fun MinnipaSouthAustraliaAirport : Ind Airport ;
-
-fun MinotAirForceBaseNDAirport : Ind Airport ;
-
-fun MinotInternationalNDAirport : Ind Airport ;
-
-fun MintoAKAirport : Ind Airport ;
-
-fun MinuteManAirfieldMAAirport : Ind Airport ;
-
-fun MinvoulAirport : Ind Airport ;
-
-fun MiquelonAirport : Ind Airport ;
-
-fun MirabelInternationalQCAirport : Ind Airport ;
-
-fun MiracemadoNorteGOAirport : Ind Airport ;
-
-fun MirafloresAirport : Ind Airport ;
-
-fun MiramarAirport : Ind Airport ;
-
-fun MiramarNavalAirStationMitscherFieldCAAirport : Ind Airport ;
-
-fun MirandaDownsQueenslandAirport : Ind Airport ;
-
-fun MirgorodPoltavaAirport : Ind Airport ;
-
-fun MiriSarawakAirport : Ind Airport ;
-
-fun MiritiAirport : Ind Airport ;
-
-fun MirnyyYakutiaSakhaAirport : Ind Airport ;
-
-fun MirpurAirport : Ind Airport ;
-
-fun MirpurKhasAirport : Ind Airport ;
-
-fun MisawaAirport : Ind Airport ;
-
-fun MisimaAirport : Ind Airport ;
-
-fun MiskolcAirport : Ind Airport ;
-
-fun MissionFieldMTAirport : Ind Airport ;
-
-fun MissoulaInternationalMTAirport : Ind Airport ;
-
-fun MissouriAirNationalGuardMOAirport : Ind Airport ;
-
-fun MisurataAirport : Ind Airport ;
-
-fun MitchellMunicipalSDAirport : Ind Airport ;
-
-fun MitchellPlateauAirport : Ind Airport ;
-
-fun MitchellQueenslandAirport : Ind Airport ;
-
-fun MitchellRiverAirport : Ind Airport ;
-
-fun MitiaroAirport : Ind Airport ;
-
-fun MitspehRamonaAirport : Ind Airport ;
-
-fun MituAirport : Ind Airport ;
-
-fun MitzicAirport : Ind Airport ;
-
-fun MiyakeJimaAirport : Ind Airport ;
-
-fun MiyakoJimaRyukuAirport : Ind Airport ;
-
-fun MiyanminAirport : Ind Airport ;
-
-fun MizanTeferiAirport : Ind Airport ;
-
-fun MkambatiAirport : Ind Airport ;
-
-fun MkuzeAirport : Ind Airport ;
-
-fun MoaAirport : Ind Airport ;
-
-fun MoabiAirport : Ind Airport ;
-
-fun MoalaAirport : Ind Airport ;
-
-fun MoanamaniAirport : Ind Airport ;
-
-fun MoandaAirport : Ind Airport ;
-
-fun MoandaAirportGabon : Ind Airport ;
-
-fun MobridgeMunicipalSDAirport : Ind Airport ;
-
-fun MocamedesNewNamibeAirport : Ind Airport ;
-
-fun MocimboadaPraiaAirport : Ind Airport ;
-
-fun MococaSPAirport : Ind Airport ;
-
-fun ModestoCityCountyAirportHarryShamFieldCAAirport : Ind Airport ;
-
-fun MoenchengladbachMonchengladbachAirport : Ind Airport ;
-
-fun MoenjodaroMohenjoDaroAirport : Ind Airport ;
-
-fun MoffettFieldNavalAirStationCAAirport : Ind Airport ;
-
-fun MogidasCrazesSPAirport : Ind Airport ;
-
-fun MohanbariAirport : Ind Airport ;
-
-fun MoheliAirport : Ind Airport ;
-
-fun MoiInternationalMombasaAirport : Ind Airport ;
-
-fun MojaveCAAirport : Ind Airport ;
-
-fun MokhotlongAirport : Ind Airport ;
-
-fun MokiAirport : Ind Airport ;
-
-fun MokpoAirport : Ind Airport ;
-
-fun MokutiAirport : Ind Airport ;
-
-fun MolokaiHIAirport : Ind Airport ;
-
-fun MomaAirport : Ind Airport ;
-
-fun MomeikAirport : Ind Airport ;
-
-fun MompusAirport : Ind Airport ;
-
-fun MonbetsuAirport : Ind Airport ;
-
-fun MonclovaAirport : Ind Airport ;
-
-fun MonctonNBAirport : Ind Airport ;
-
-fun MonfortAirport : Ind Airport ;
-
-fun MonghsatAirport : Ind Airport ;
-
-fun MongoAirport : Ind Airport ;
-
-fun MonguAirport : Ind Airport ;
-
-fun MonkeyIslandAirport : Ind Airport ;
-
-fun MonkeyMiaWesternAustraliaAirport : Ind Airport ;
-
-fun MonkeyMountainAirport : Ind Airport ;
-
-fun MonkiraQueenslandAirport : Ind Airport ;
-
-fun MonoAirport : Ind Airport ;
-
-fun MonroeCountyALAirport : Ind Airport ;
-
-fun MonroeRegionalLAAirport : Ind Airport ;
-
-fun MonsAirport : Ind Airport ;
-
-fun MontJoliQCAirport : Ind Airport ;
-
-fun MontagueHarborBCAirport : Ind Airport ;
-
-fun MontaukNYAirport : Ind Airport ;
-
-fun MonteAlegrePAAirport : Ind Airport ;
-
-fun MonteCarloAirport : Ind Airport ;
-
-fun MonteDouradoAirport : Ind Airport ;
-
-fun MonteLibanoAirport : Ind Airport ;
-
-fun MontenegroRSAirport : Ind Airport ;
-
-fun MontepuezAirport : Ind Airport ;
-
-fun MontereyPeninsulaCAAirport : Ind Airport ;
-
-fun MonteriaAirport : Ind Airport ;
-
-fun MonterreyAirport : Ind Airport ;
-
-fun MontesCaserosAirport : Ind Airport ;
-
-fun MontesClarosMGAirport : Ind Airport ;
-
-fun MontevideoChippewaCountyMNAirport : Ind Airport ;
-
-fun MontgomeryFieldCAAirport : Ind Airport ;
-
-fun MonticelloMunicipalIAAirport : Ind Airport ;
-
-fun MontluconAirport : Ind Airport ;
-
-fun MontoQueenslandAirport : Ind Airport ;
-
-fun MontoirSaintNazaireAirport : Ind Airport ;
-
-fun MontreuxAirport : Ind Airport ;
-
-fun MontroseRegionalCOAirport : Ind Airport ;
-
-fun MoodyAirForceBaseGAAirport : Ind Airport ;
-
-fun MoolawatanaSouthAustraliaAirport : Ind Airport ;
-
-fun MoombaAirport : Ind Airport ;
-
-fun MoorabbinVictoriaAirport : Ind Airport ;
-
-fun MooraberrieQueenslandAirport : Ind Airport ;
-
-fun MooreCountyNCAirport : Ind Airport ;
-
-fun MooreMurrellTNAirport : Ind Airport ;
-
-fun MooreaSocietyIslandsAirport : Ind Airport ;
-
-fun MooseJawSKAirport : Ind Airport ;
-
-fun MoosoneeONAirport : Ind Airport ;
-
-fun MopahMeraukeAirport : Ind Airport ;
-
-fun MorafenobeAirport : Ind Airport ;
-
-fun MoranbahQueenslandAirport : Ind Airport ;
-
-fun MorawaWesternAustraliaAirport : Ind Airport ;
-
-fun MordakAirport : Ind Airport ;
-
-fun MoreeNewSouthWalesAirport : Ind Airport ;
-
-fun MoreheadAirport : Ind Airport ;
-
-fun MoreliaAirport : Ind Airport ;
-
-fun MoretonQueenslandAirport : Ind Airport ;
-
-fun MorgantonLenoirNCAirport : Ind Airport ;
-
-fun MorgantownMunicipalAirportWalterLBillHartFieldWVAirport : Ind Airport ;
-
-fun MorichalAirport : Ind Airport ;
-
-fun MoriokaAirport : Ind Airport ;
-
-fun MorneyPlainsQueenslandAirport : Ind Airport ;
-
-fun MorningtonIslandQueenslandAirport : Ind Airport ;
-
-fun MorobeAirport : Ind Airport ;
-
-fun MorombeAirport : Ind Airport ;
-
-fun MoronAirBaseMorondelaFronteraAirport : Ind Airport ;
-
-fun MorondavaAirport : Ind Airport ;
-
-fun MorotaiIslandAirport : Ind Airport ;
-
-fun MorrisMunicipalMNAirport : Ind Airport ;
-
-fun MorristownMunicipalNJAirport : Ind Airport ;
-
-fun MorrisvilleStoweStateVTAirport : Ind Airport ;
-
-fun MoruyaNewSouthWalesAirport : Ind Airport ;
-
-fun MosesPointAKAirport : Ind Airport ;
-
-fun MoshiAirport : Ind Airport ;
-
-fun MoshoeshoeIInternationalMaseruAirport : Ind Airport ;
-
-fun MosjoenAirport : Ind Airport ;
-
-fun MosnovOstravaAirport : Ind Airport ;
-
-fun MosqueraAirport : Ind Airport ;
-
-fun MosselBayAirport : Ind Airport ;
-
-fun MossoroRNAirport : Ind Airport ;
-
-fun MostarAirport : Ind Airport ;
-
-fun MosteirosAirport : Ind Airport ;
-
-fun MostynAirport : Ind Airport ;
-
-fun MosulAirport : Ind Airport ;
-
-fun MotaLavaAirport : Ind Airport ;
-
-fun MotonFieldMunicipalALAirport : Ind Airport ;
-
-fun MotuekaAirport : Ind Airport ;
-
-fun MoudjeriaAirport : Ind Airport ;
-
-fun MouilaAirport : Ind Airport ;
-
-fun MouldBayNTAirport : Ind Airport ;
-
-fun MoultrieMunicipalGAAirport : Ind Airport ;
-
-fun MoundouAirport : Ind Airport ;
-
-fun MountAueAirport : Ind Airport ;
-
-fun MountBarnettWesternAustraliaAirport : Ind Airport ;
-
-fun MountComfortINAirport : Ind Airport ;
-
-fun MountCookAirport : Ind Airport ;
-
-fun MountGambierSouthAustraliaAirport : Ind Airport ;
-
-fun MountHothamVictoriaAirport : Ind Airport ;
-
-fun MountMagnetWesternAustraliaAirport : Ind Airport ;
-
-fun MountPleasantAirport : Ind Airport ;
-
-fun MountPleasantMunicipalIAAirport : Ind Airport ;
-
-fun MountPleasantMunicipalMIAirport : Ind Airport ;
-
-fun MountPleasantMunicipalTXAirport : Ind Airport ;
-
-fun MountPleasantUTAirport : Ind Airport ;
-
-fun MountShastaCAAirport : Ind Airport ;
-
-fun MountVernonILAirport : Ind Airport ;
-
-fun MountWilsonCAAirport : Ind Airport ;
-
-fun MountainAirport : Ind Airport ;
-
-fun MountainHomeAirForceBaseIDAirport : Ind Airport ;
-
-fun MountainValleyAirport : Ind Airport ;
-
-fun MountainVillageAKAirport : Ind Airport ;
-
-fun MoutiersAirport : Ind Airport ;
-
-fun MouyondziAirport : Ind Airport ;
-
-fun MoyaleAirport : Ind Airport ;
-
-fun MoyaleAirportKenya : Ind Airport ;
-
-fun MoyoAirport : Ind Airport ;
-
-fun MoyobambaAirport : Ind Airport ;
-
-fun MpachaAirport : Ind Airport ;
-
-fun MtBuffaloAirport : Ind Airport ;
-
-fun MtCavenaghNorthernTerritoryAirport : Ind Airport ;
-
-fun MtFullStopAirport : Ind Airport ;
-
-fun MtHouseWesternAustraliaAirport : Ind Airport ;
-
-fun MtSanfordNorthernTerritoryAirport : Ind Airport ;
-
-fun MtSwanNorthernTerritoryAirport : Ind Airport ;
-
-fun MtwaraAirport : Ind Airport ;
-
-fun MuccanWesternAustraliaAirport : Ind Airport ;
-
-fun MucuriBAAirport : Ind Airport ;
-
-fun MudanjiangAirport : Ind Airport ;
-
-fun MueoAirport : Ind Airport ;
-
-fun MuiAirport : Ind Airport ;
-
-fun MuirArmyAirFieldPAAirport : Ind Airport ;
-
-fun MukahSarawakAirport : Ind Airport ;
-
-fun MukallaAirport : Ind Airport ;
-
-fun MukeirasAirport : Ind Airport ;
-
-fun MukhinoBuryatiaAirport : Ind Airport ;
-
-fun MukoMukoAirport : Ind Airport ;
-
-fun MulatosAirport : Ind Airport ;
-
-fun MulegeAirport : Ind Airport ;
-
-fun MulgaParkNorthernTerritoryAirport : Ind Airport ;
-
-fun MuliaAirport : Ind Airport ;
-
-fun MulkaSouthAustraliaAirport : Ind Airport ;
-
-fun MullAirport : Ind Airport ;
-
-fun MullewaWesternAustraliaAirport : Ind Airport ;
-
-fun MultanAirport : Ind Airport ;
-
-fun MuluAirport : Ind Airport ;
-
-fun MumiasAirport : Ind Airport ;
-
-fun MunbilAirport : Ind Airport ;
-
-fun MunchenAirport : Ind Airport ;
-
-fun MundaNewGeorgiaIsAirport : Ind Airport ;
-
-fun MundukuAirport : Ind Airport ;
-
-fun MungeranieSouthAustraliaAirport : Ind Airport ;
-
-fun MunicipalPAAirport : Ind Airport ;
-
-fun MuongSaiAirport : Ind Airport ;
-
-fun MuriaeMGAirport : Ind Airport ;
-
-fun MurmanskMurmanskAirport : Ind Airport ;
-
-fun MurrayBayNTAirport : Ind Airport ;
-
-fun MurrayIslandsQueenslandAirport : Ind Airport ;
-
-fun MurtalaMuhammedLagosAirport : Ind Airport ;
-
-fun MuscatineMunicipalIAAirport : Ind Airport ;
-
-fun MuscleShoalsRegionalALAirport : Ind Airport ;
-
-fun MusgraveQueenslandAirport : Ind Airport ;
-
-fun MushaAirport : Ind Airport ;
-
-fun MuskokaONAirport : Ind Airport ;
-
-fun MuskratDamONAirport : Ind Airport ;
-
-fun MusomaAirport : Ind Airport ;
-
-fun MussauAirport : Ind Airport ;
-
-fun MustinALFPAAirport : Ind Airport ;
-
-fun MustiqueIslandAirport : Ind Airport ;
-
-fun MutareAirport : Ind Airport ;
-
-fun MutiaraPaluAirport : Ind Airport ;
-
-fun MutingAirport : Ind Airport ;
-
-fun MuttaburraQueenslandAirport : Ind Airport ;
-
-fun MuzaffarabadAirport : Ind Airport ;
-
-fun MuzaffarnagarAirport : Ind Airport ;
-
-fun MuzaffarpurAirport : Ind Airport ;
-
-fun MwaduiAirport : Ind Airport ;
-
-fun MwanaLamuAirport : Ind Airport ;
-
-fun MwanzaAirport : Ind Airport ;
-
-fun MwekaAirport : Ind Airport ;
-
-fun MyeikMerguiAirport : Ind Airport ;
-
-fun MyitkyinaAirport : Ind Airport ;
-
-fun MykolayivNikolayevMykolayivAirport : Ind Airport ;
-
-fun MyroodahAirport : Ind Airport ;
-
-fun MyrtleBeachAirForceBaseSCAirport : Ind Airport ;
-
-fun MysoreAirport : Ind Airport ;
-
-fun MytileneMitiliniLesbosIslandAirport : Ind Airport ;
-
-fun MzambaAirport : Ind Airport ;
-
-fun MzuzuAirport : Ind Airport ;
-
-fun NDjamenaAirport : Ind Airport ;
-
-fun NDolaAirport : Ind Airport ;
-
-fun NDoloKinshasaAirport : Ind Airport ;
-
-fun NGaoundereAirport : Ind Airport ;
-
-fun NKongsambaAirport : Ind Airport ;
-
-fun NRCMIAirport : Ind Airport ;
-
-fun NZerekoreAirport : Ind Airport ;
-
-fun NaberezhnyyeChelnyTatarstanAirport : Ind Airport ;
-
-fun NabireAirport : Ind Airport ;
-
-fun NacalaAirport : Ind Airport ;
-
-fun NachingweaAirport : Ind Airport ;
-
-fun NadiAirport : Ind Airport ;
-
-fun NadorAirport : Ind Airport ;
-
-fun NadymTyumenAirport : Ind Airport ;
-
-fun NadzabLaeAirport : Ind Airport ;
-
-fun NagaAirport : Ind Airport ;
-
-fun NaganoAirport : Ind Airport ;
-
-fun NagasakiAirport : Ind Airport ;
-
-fun NagpurAirport : Ind Airport ;
-
-fun NahaAirport : Ind Airport ;
-
-fun NahaSangiheAirport : Ind Airport ;
-
-fun NainNFAirport : Ind Airport ;
-
-fun NakashibetsuAirport : Ind Airport ;
-
-fun NakhonRatchasimaAirport : Ind Airport ;
-
-fun NakhonSiThammaratAirport : Ind Airport ;
-
-fun NakinaONAirport : Ind Airport ;
-
-fun NaknekAKAirport : Ind Airport ;
-
-fun NakuruAirport : Ind Airport ;
-
-fun NalchikKabardinoBalkariaAirport : Ind Airport ;
-
-fun NamanganNamanganAirport : Ind Airport ;
-
-fun NamaoFieldABAirport : Ind Airport ;
-
-fun NambourQueenslandAirport : Ind Airport ;
-
-fun NambuccaHeadsNewSouthWalesAirport : Ind Airport ;
-
-fun NamleaAirport : Ind Airport ;
-
-fun NamorikNamorikAirport : Ind Airport ;
-
-fun NamroleBuruIslandAirport : Ind Airport ;
-
-fun NamsangAirport : Ind Airport ;
-
-fun NamsosAirport : Ind Airport ;
-
-fun NamtuAirport : Ind Airport ;
-
-fun NamuAirport : Ind Airport ;
-
-fun NamuBCAirport : Ind Airport ;
-
-fun NamudiAirport : Ind Airport ;
-
-fun NamutoniAirport : Ind Airport ;
-
-fun NanAirport : Ind Airport ;
-
-fun NanYuanAirBaseBeijingAirport : Ind Airport ;
-
-fun NanaimoBCAirport : Ind Airport ;
-
-fun NanaimoHarbourSeaplaneBaseBCAirport : Ind Airport ;
-
-fun NanchongAirport : Ind Airport ;
-
-fun NandedAirport : Ind Airport ;
-
-fun NangadeAirport : Ind Airport ;
-
-fun NangapinohAirport : Ind Airport ;
-
-fun NanisivikNTAirport : Ind Airport ;
-
-fun NanjingAirport : Ind Airport ;
-
-fun NankiShirahanaAirport : Ind Airport ;
-
-fun NankinaAirport : Ind Airport ;
-
-fun NanningAirport : Ind Airport ;
-
-fun NantongAirport : Ind Airport ;
-
-fun NanuqueMGAirport : Ind Airport ;
-
-fun NanyangAirport : Ind Airport ;
-
-fun NanyukiAirport : Ind Airport ;
-
-fun NaoroAirport : Ind Airport ;
-
-fun NapakiakAKAirport : Ind Airport ;
-
-fun NapaskiakAKAirport : Ind Airport ;
-
-fun NapierHastingsAirport : Ind Airport ;
-
-fun NappaMerryQueenslandAirport : Ind Airport ;
-
-fun NapperbyNorthernTerritoryAirport : Ind Airport ;
-
-fun NapukaAirport : Ind Airport ;
-
-fun NaraAirport : Ind Airport ;
-
-fun NaracoorteSouthAustraliaAirport : Ind Airport ;
-
-fun NarathiwatAirport : Ind Airport ;
-
-fun NareAirport : Ind Airport ;
-
-fun NarganaAirport : Ind Airport ;
-
-fun NaritaTokyoAirport : Ind Airport ;
-
-fun NaroomaAirport : Ind Airport ;
-
-fun NarrabriNewSouthWalesAirport : Ind Airport ;
-
-fun NarranderaNewSouthWalesAirport : Ind Airport ;
-
-fun NarroginWesternAustraliaAirport : Ind Airport ;
-
-fun NarromineNewSouthWalesAirport : Ind Airport ;
-
-fun NarssarssuaqAirport : Ind Airport ;
-
-fun NartronFieldMIAirport : Ind Airport ;
-
-fun NarumAirport : Ind Airport ;
-
-fun NassauSeaplaneBaseNewProvidenceAirport : Ind Airport ;
-
-fun NatadolaAirport : Ind Airport ;
-
-fun NatalRNAirport : Ind Airport ;
-
-fun NatashquanQCAirport : Ind Airport ;
-
-fun NatitingouAirport : Ind Airport ;
-
-fun NatunaRanaiAirport : Ind Airport ;
-
-fun NaukitiAKAirport : Ind Airport ;
-
-fun NausoriInternationalSuvaAirport : Ind Airport ;
-
-fun NavegantesAirport : Ind Airport ;
-
-fun NawabShahAirport : Ind Airport ;
-
-fun NazcaAirport : Ind Airport ;
-
-fun NdeleAirport : Ind Airport ;
-
-fun NecocheaAirport : Ind Airport ;
-
-fun NecocliAirport : Ind Airport ;
-
-fun NeftaTozeurAirport : Ind Airport ;
-
-fun NefteyuganskTyumenAirport : Ind Airport ;
-
-fun NegginanMBAirport : Ind Airport ;
-
-fun NegrilAirport : Ind Airport ;
-
-fun NeivaAirport : Ind Airport ;
-
-fun NekemeteAirport : Ind Airport ;
-
-fun NekemptAirport : Ind Airport ;
-
-fun NellisAirForceBaseNVAirport : Ind Airport ;
-
-fun NelsonAirport : Ind Airport ;
-
-fun NelsonBCAirport : Ind Airport ;
-
-fun NelsonLagoonAKAirport : Ind Airport ;
-
-fun NelspruitAirport : Ind Airport ;
-
-fun NemiscauQCAirport : Ind Airport ;
-
-fun NephiMunicipalUTAirport : Ind Airport ;
-
-fun NeryungriYakutiaSakhaAirport : Ind Airport ;
-
-fun NeuIsenburgAirport : Ind Airport ;
-
-fun NeuquenAirport : Ind Airport ;
-
-fun NevadaCountyAirParkCAAirport : Ind Airport ;
-
-fun NevadaMunicipalMOAirport : Ind Airport ;
-
-fun NeverasAirport : Ind Airport ;
-
-fun NewCastleHenryCountyMunicipalINAirport : Ind Airport ;
-
-fun NewChenegaAKAirport : Ind Airport ;
-
-fun NewHalfaAirport : Ind Airport ;
-
-fun NewMoonQueenslandAirport : Ind Airport ;
-
-fun NewOrleansInternationalAirportMoisantFieldLAAirport : Ind Airport ;
-
-fun NewOrleansNavalAirStationAlvinCallenderFieldLAAirport : Ind Airport ;
-
-fun NewPlymouthAirport : Ind Airport ;
-
-fun NewRichmondMunicipalWIAirport : Ind Airport ;
-
-fun NewRiverValleyVAAirport : Ind Airport ;
-
-fun NewUlmMunicipalMNAirport : Ind Airport ;
-
-fun NewValleyAirport : Ind Airport ;
-
-fun NewWestminsterWaterAerodromeBCAirport : Ind Airport ;
-
-fun NewYorkSkyportsIncSeaplaneBaseNYAirport : Ind Airport ;
-
-fun NewcastleAirport : Ind Airport ;
-
-fun NewcastleAirportUnitedKingdom : Ind Airport ;
-
-fun NewcastleNevisAirport : Ind Airport ;
-
-fun NewmanWesternAustraliaAirport : Ind Airport ;
-
-fun NewportMunicipalORAirport : Ind Airport ;
-
-fun NewportNewsWilliamsburgInternationalVAAirport : Ind Airport ;
-
-fun NewportStateRIAirport : Ind Airport ;
-
-fun NewryNorthernTerritoryAirport : Ind Airport ;
-
-fun NewtokSeaplaneBaseAKAirport : Ind Airport ;
-
-fun NewtonMunicipalIAAirport : Ind Airport ;
-
-fun NeyveliAirport : Ind Airport ;
-
-fun NgauAirport : Ind Airport ;
-
-fun NgivaOngivaOndjivaAirport : Ind Airport ;
-
-fun NgomaAirport : Ind Airport ;
-
-fun NgukurrNorthernTerritoryAirport : Ind Airport ;
-
-fun NhaTrangAirport : Ind Airport ;
-
-fun NiameyAirport : Ind Airport ;
-
-fun NiamtougouLamaKaraAirport : Ind Airport ;
-
-fun NiblackAKAirport : Ind Airport ;
-
-fun NichenCoveAKAirport : Ind Airport ;
-
-fun NichinCoveSeaplaneBaseAKAirport : Ind Airport ;
-
-fun NicholsonPeninsulaWaterAerodromeNTAirport : Ind Airport ;
-
-fun NicholsonWesternAustraliaAirport : Ind Airport ;
-
-fun NicosiaAirport : Ind Airport ;
-
-fun NicoyaAirport : Ind Airport ;
-
-fun NiftyWesternAustraliaAirport : Ind Airport ;
-
-fun NigerumAirport : Ind Airport ;
-
-fun NightmuteAKAirport : Ind Airport ;
-
-fun NikolaiAKAirport : Ind Airport ;
-
-fun NikunauAirport : Ind Airport ;
-
-fun NimbaAirport : Ind Airport ;
-
-fun NingboAirport : Ind Airport ;
-
-fun NinilchikAKAirport : Ind Airport ;
-
-fun NinoyAquinoInternationalManilaAirport : Ind Airport ;
-
-fun NiokiAirport : Ind Airport ;
-
-fun NiokoloKobaAirport : Ind Airport ;
-
-fun NioroAirport : Ind Airport ;
-
-fun NiortAirport : Ind Airport ;
-
-fun NipaAirport : Ind Airport ;
-
-fun NipawinSKAirport : Ind Airport ;
-
-fun NiquelandiaGOAirport : Ind Airport ;
-
-fun NitchequonQCAirport : Ind Airport ;
-
-fun NiteroiRJAirport : Ind Airport ;
-
-fun NiuafoouAirport : Ind Airport ;
-
-fun NiuatoputapuAirport : Ind Airport ;
-
-fun NiuqsutAKAirport : Ind Airport ;
-
-fun NizhevartovskTyumenAirport : Ind Airport ;
-
-fun NkanAirport : Ind Airport ;
-
-fun NkausAirport : Ind Airport ;
-
-fun NkayiAirport : Ind Airport ;
-
-fun NkoloAirport : Ind Airport ;
-
-fun NoatakAKAirport : Ind Airport ;
-
-fun NogalesAirport : Ind Airport ;
-
-fun NogalesInternationalAZAirport : Ind Airport ;
-
-fun NojabrxskAirport : Ind Airport ;
-
-fun NomadRiverAirport : Ind Airport ;
-
-fun NomeAKAirport : Ind Airport ;
-
-fun NondaltonAKAirport : Ind Airport ;
-
-fun NonoutiAirport : Ind Airport ;
-
-fun NoonkanbahWesternAustraliaAirport : Ind Airport ;
-
-fun NoosaQueenslandAirport : Ind Airport ;
-
-fun NoosavilleQueenslandAirport : Ind Airport ;
-
-fun NootkaSoundBCAirport : Ind Airport ;
-
-fun NoraAKAirport : Ind Airport ;
-
-fun NorddeichAirport : Ind Airport ;
-
-fun NordenAirport : Ind Airport ;
-
-fun NorderneyAirport : Ind Airport ;
-
-fun NordfjordurAirport : Ind Airport ;
-
-fun NordholzAirport : Ind Airport ;
-
-fun NorfolkInternationalVAAirport : Ind Airport ;
-
-fun NorfolkIslandNorfolkIslandAirport : Ind Airport ;
-
-fun NorfolkNavalAirStationChambersFieldVAAirport : Ind Airport ;
-
-fun NorilskNorylskNorylskAirport : Ind Airport ;
-
-fun NormanWellsNTAirport : Ind Airport ;
-
-fun NormansCayAirport : Ind Airport ;
-
-fun NormantonQueenslandAirport : Ind Airport ;
-
-fun NorsemanWesternAustraliaAirport : Ind Airport ;
-
-fun NorsupAirport : Ind Airport ;
-
-fun NorthAirForceAuxiliarySCAirport : Ind Airport ;
-
-fun NorthBattlefordSKAirport : Ind Airport ;
-
-fun NorthBayONAirport : Ind Airport ;
-
-fun NorthBendMunicipalORAirport : Ind Airport ;
-
-fun NorthCaicosAirport : Ind Airport ;
-
-fun NorthCentralStateRIAirport : Ind Airport ;
-
-fun NorthDallasHeliportTXAirport : Ind Airport ;
-
-fun NorthForkValleyCOAirport : Ind Airport ;
-
-fun NorthIslandNavalAirStationHalseyFieldCAAirport : Ind Airport ;
-
-fun NorthLasVegasAirTerminalNVAirport : Ind Airport ;
-
-fun NorthPlatteRegionalNEAirport : Ind Airport ;
-
-fun NorthRaleighNCAirport : Ind Airport ;
-
-fun NorthRimAZAirport : Ind Airport ;
-
-fun NorthRonaldswayAirport : Ind Airport ;
-
-fun NorthSeaplaneBaseBiminiAirport : Ind Airport ;
-
-fun NorthSpiritLakeONAirport : Ind Airport ;
-
-fun NorthVernonINAirport : Ind Airport ;
-
-fun NorthWhaleSeaplaneBaseAKAirport : Ind Airport ;
-
-fun NorthamptonAirportWitteringRAFStationEnglandAirport : Ind Airport ;
-
-fun NortheastCapeAKAirport : Ind Airport ;
-
-fun NortheastPhiladelphiaPAAirport : Ind Airport ;
-
-fun NorthernAroostookRegionalMEAirport : Ind Airport ;
-
-fun NorthernMaineRegionalAirportatPresqueIsleMEAirport : Ind Airport ;
-
-fun NorthholtAerodromeEnglandAirport : Ind Airport ;
-
-fun NorthsideMIAirport : Ind Airport ;
-
-fun NorthwayAKAirport : Ind Airport ;
-
-fun NortonMunicipalKSAirport : Ind Airport ;
-
-fun NorwalkCTAirport : Ind Airport ;
-
-fun NorwayHouseMBAirport : Ind Airport ;
-
-fun NorwichAirport : Ind Airport ;
-
-fun NorwoodMemorialMAAirport : Ind Airport ;
-
-fun NosaraBeachAirport : Ind Airport ;
-
-fun NotoddenAirport : Ind Airport ;
-
-fun NouadhibouAirport : Ind Airport ;
-
-fun NouakchottAirport : Ind Airport ;
-
-fun NounaeAirport : Ind Airport ;
-
-fun NovaIguacuRJAirport : Ind Airport ;
-
-fun NovaLamegoAirport : Ind Airport ;
-
-fun NovaXavantinaAirport : Ind Airport ;
-
-fun NovgorodNovgorodAirport : Ind Airport ;
-
-fun NoviSadAirport : Ind Airport ;
-
-fun NovoAripuanaAirport : Ind Airport ;
-
-fun NovoHamburgoRSAirport : Ind Airport ;
-
-fun NovoalexeyevkaAbkhaziaAirport : Ind Airport ;
-
-fun NovokuznetskNovokuznetskAirport : Ind Airport ;
-
-fun NovorossiyskKrasnodarAirport : Ind Airport ;
-
-fun NovyUrengoyAirport : Ind Airport ;
-
-fun NowataAirport : Ind Airport ;
-
-fun NowraNewSouthWalesAirport : Ind Airport ;
-
-fun NowshahrAirport : Ind Airport ;
-
-fun NsimalenInternationalYaoundeAirport : Ind Airport ;
-
-fun NuernbergNurnbergAirport : Ind Airport ;
-
-fun NuevaGuineaAirport : Ind Airport ;
-
-fun NuguriaAirport : Ind Airport ;
-
-fun NuiatoputapuAirport : Ind Airport ;
-
-fun NukuAirport : Ind Airport ;
-
-fun NukuHivaMarquesasIslandsAirport : Ind Airport ;
-
-fun NukusKarakalpakstanAirport : Ind Airport ;
-
-fun NukutavekeAirport : Ind Airport ;
-
-fun NulatoAKAirport : Ind Airport ;
-
-fun NullagineWesternAustraliaAirport : Ind Airport ;
-
-fun NullarborSouthAustraliaAirport : Ind Airport ;
-
-fun NumbulwarNorthernTerritoryAirport : Ind Airport ;
-
-fun NunapitchukAKAirport : Ind Airport ;
-
-fun NunchiaAirport : Ind Airport ;
-
-fun NunukanBorneoAirport : Ind Airport ;
-
-fun NuoroAirport : Ind Airport ;
-
-fun NuquiAirport : Ind Airport ;
-
-fun NushkiAirport : Ind Airport ;
-
-fun NutuveAirport : Ind Airport ;
-
-fun NutwoodDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun NyackAKAirport : Ind Airport ;
-
-fun NyalaAirport : Ind Airport ;
-
-fun NyaungUAirport : Ind Airport ;
-
-fun NyeriAirport : Ind Airport ;
-
-fun NykopingAirport : Ind Airport ;
-
-fun NynganNewSouthWalesAirport : Ind Airport ;
-
-fun NzoiaAirport : Ind Airport ;
-
-fun ONealINAirport : Ind Airport ;
-
-fun OachasNeckAirport : Ind Airport ;
-
-fun OakHarborAirParkWAAirport : Ind Airport ;
-
-fun OakeyQueenslandAirport : Ind Airport ;
-
-fun OaklandPontiacMIAirport : Ind Airport ;
-
-fun OakleyMunicipalKSAirport : Ind Airport ;
-
-fun OamaruAirport : Ind Airport ;
-
-fun ObanAirport : Ind Airport ;
-
-fun ObanHeliportObanAirport : Ind Airport ;
-
-fun ObanQueenslandAirport : Ind Airport ;
-
-fun ObanoAirport : Ind Airport ;
-
-fun OberlinMunicipalKSAirport : Ind Airport ;
-
-fun ObidosPAAirport : Ind Airport ;
-
-fun ObihiroAirport : Ind Airport ;
-
-fun OboAirport : Ind Airport ;
-
-fun ObockAirport : Ind Airport ;
-
-fun OcalaMunicipalAirportJimTaylorFieldFLAirport : Ind Airport ;
-
-fun OcanaAirport : Ind Airport ;
-
-fun OceanCityMunicipalMDAirport : Ind Airport ;
-
-fun OceanFallsWaterAerodromeBCAirport : Ind Airport ;
-
-fun OceanReefClubFLAirport : Ind Airport ;
-
-fun OceanaNavalAirStationApolloSoucekFieldVAAirport : Ind Airport ;
-
-fun OceanicAKAirport : Ind Airport ;
-
-fun OceansideMunicipalCAAirport : Ind Airport ;
-
-fun OchoRiosAirport : Ind Airport ;
-
-fun OcontoMunicipalWIAirport : Ind Airport ;
-
-fun OctevilleLeHavreAirport : Ind Airport ;
-
-fun OcussiAirport : Ind Airport ;
-
-fun OddorMeancheyAirport : Ind Airport ;
-
-fun OdihamRAFStationEnglandAirport : Ind Airport ;
-
-fun OelweinMunicipalIAAirport : Ind Airport ;
-
-fun OenpelliNorthernTerritoryAirport : Ind Airport ;
-
-fun OffuttAirForceBaseNEAirport : Ind Airport ;
-
-fun OfuOfuIslandAirport : Ind Airport ;
-
-fun OgdenHinckleyUTAirport : Ind Airport ;
-
-fun OgdensburgInternationalNYAirport : Ind Airport ;
-
-fun OgeranangAirport : Ind Airport ;
-
-fun OgleAirport : Ind Airport ;
-
-fun OgnAirport : Ind Airport ;
-
-fun OgokiPostAerodromeONAirport : Ind Airport ;
-
-fun OhioStateUniversityOHAirport : Ind Airport ;
-
-fun OhridAirport : Ind Airport ;
-
-fun OiapoqueAPAirport : Ind Airport ;
-
-fun OitaAirport : Ind Airport ;
-
-fun OkabaAirport : Ind Airport ;
-
-fun OkadamaSapporoAirport : Ind Airport ;
-
-fun OkaukuejoAirport : Ind Airport ;
-
-fun OkayamaAirport : Ind Airport ;
-
-fun OkecieWarszawaWarsawAirport : Ind Airport ;
-
-fun OkeechobeeCountyFLAirport : Ind Airport ;
-
-fun OkiIslandAirport : Ind Airport ;
-
-fun OkinawaRyukyuIsAirport : Ind Airport ;
-
-fun OkinoErabuAirport : Ind Airport ;
-
-fun OkmulgeeMunicipalOKAirport : Ind Airport ;
-
-fun OkondjaAirport : Ind Airport ;
-
-fun OkoyoAirport : Ind Airport ;
-
-fun OksapminAirport : Ind Airport ;
-
-fun OksibilAirport : Ind Airport ;
-
-fun OkushiriAirport : Ind Airport ;
-
-fun OlafsfjordurAirport : Ind Airport ;
-
-fun OlafsvikAirport : Ind Airport ;
-
-fun OlanchitoAirport : Ind Airport ;
-
-fun OlayaHerreraMedellinAirport : Ind Airport ;
-
-fun OldCrowYTAirport : Ind Airport ;
-
-fun OldFortBayQCAirport : Ind Airport ;
-
-fun OldHarborAKAirport : Ind Airport ;
-
-fun OleanMunicipalNYAirport : Ind Airport ;
-
-fun OliveBranchMSAirport : Ind Airport ;
-
-fun OlneyMunicipalTXAirport : Ind Airport ;
-
-fun OlneyNobleILAirport : Ind Airport ;
-
-fun OlomoucAirport : Ind Airport ;
-
-fun OlpoiAirport : Ind Airport ;
-
-fun OlsobipAirport : Ind Airport ;
-
-fun OlympiaWAAirport : Ind Airport ;
-
-fun OlympicDamSouthAustraliaAirport : Ind Airport ;
-
-fun OmagwaPortHarcourtAirport : Ind Airport ;
-
-fun OmakWAAirport : Ind Airport ;
-
-fun OmarNBradleyMOAirport : Ind Airport ;
-
-fun OmboueAirport : Ind Airport ;
-
-fun OmegaAirport : Ind Airport ;
-
-fun OmkalaiAirport : Ind Airport ;
-
-fun OmoraAirport : Ind Airport ;
-
-fun OmskOmskAirport : Ind Airport ;
-
-fun OmuraAirport : Ind Airport ;
-
-fun OmyiaAirport : Ind Airport ;
-
-fun OndangwaAirport : Ind Airport ;
-
-fun OneHundredEightMileRanchBCAirport : Ind Airport ;
-
-fun OneidaCountyNYAirport : Ind Airport ;
-
-fun OneontaMunicipalNYAirport : Ind Airport ;
-
-fun OnepusoAirport : Ind Airport ;
-
-fun OnionBayAKAirport : Ind Airport ;
-
-fun OnoILauAirport : Ind Airport ;
-
-fun OnongeAirport : Ind Airport ;
-
-fun OnotoaAirport : Ind Airport ;
-
-fun OnslowWesternAustraliaAirport : Ind Airport ;
-
-fun OntarioInternationalCAAirport : Ind Airport ;
-
-fun OntarioMunicipalORAirport : Ind Airport ;
-
-fun OntonagonCountyMIAirport : Ind Airport ;
-
-fun OodnadattaSouthAustraliaAirport : Ind Airport ;
-
-fun OpaLockaFLAirport : Ind Airport ;
-
-fun OpenBayAirport : Ind Airport ;
-
-fun OpuwaAirport : Ind Airport ;
-
-fun OradeaAirport : Ind Airport ;
-
-fun OralUralskWestKazakhstanAirport : Ind Airport ;
-
-fun OramAirport : Ind Airport ;
-
-fun OranAirport : Ind Airport ;
-
-fun OrangeCountyNYAirport : Ind Airport ;
-
-fun OrangeMunicipalMAAirport : Ind Airport ;
-
-fun OrangeWalkAirport : Ind Airport ;
-
-fun OrangeburgMunicipalSCAirport : Ind Airport ;
-
-fun OranjemundAirport : Ind Airport ;
-
-fun OrapaAirport : Ind Airport ;
-
-fun OrchidBeachAirport : Ind Airport ;
-
-fun OrdRiverWesternAustraliaAirport : Ind Airport ;
-
-fun OrduAirport : Ind Airport ;
-
-fun OrebroAirport : Ind Airport ;
-
-fun OrenburgOrenburgAirport : Ind Airport ;
-
-fun OriaAirport : Ind Airport ;
-
-fun OrientosNewSouthWalesAirport : Ind Airport ;
-
-fun OrinduikAirport : Ind Airport ;
-
-fun OristamoAirport : Ind Airport ;
-
-fun OriximinaPAAirport : Ind Airport ;
-
-fun OrlandAirport : Ind Airport ;
-
-fun OrlandoExecutiveFLAirport : Ind Airport ;
-
-fun OrlandoInternationalFLAirport : Ind Airport ;
-
-fun OrlyParisAirport : Ind Airport ;
-
-fun OrmaraAirport : Ind Airport ;
-
-fun OrmocAirport : Ind Airport ;
-
-fun OrnskoldsvikAirport : Ind Airport ;
-
-fun OrocueAirport : Ind Airport ;
-
-fun OrovilleMunicipalCAAirport : Ind Airport ;
-
-fun OrpheusIslandResortQueenslandAirport : Ind Airport ;
-
-fun OrskOrenburgAirport : Ind Airport ;
-
-fun OrtonvilleMunicipalAirportMartinsonFieldMNAirport : Ind Airport ;
-
-fun OruroAirport : Ind Airport ;
-
-fun OsascoSPAirport : Ind Airport ;
-
-fun OscodaWurtsmithMIAirport : Ind Airport ;
-
-fun OshOshAirport : Ind Airport ;
-
-fun OshakatiAirport : Ind Airport ;
-
-fun OshawaONAirport : Ind Airport ;
-
-fun OshimaIslandAirport : Ind Airport ;
-
-fun OsijekAirport : Ind Airport ;
-
-fun OskaloosaMunicipalIAAirport : Ind Airport ;
-
-fun OskarshamnAirport : Ind Airport ;
-
-fun OskemanUstKamenogorskEastKazakhstanAirport : Ind Airport ;
-
-fun OsmanabadAirport : Ind Airport ;
-
-fun OsmanyShyletSylhetAirport : Ind Airport ;
-
-fun OsnabrueckOsnabruckAirport : Ind Airport ;
-
-fun OsornoAirport : Ind Airport ;
-
-fun OssunLourdesTarbesAirport : Ind Airport ;
-
-fun OstendOostendeAirport : Ind Airport ;
-
-fun OtaviaAirport : Ind Airport ;
-
-fun OtjiwarongoAirport : Ind Airport ;
-
-fun OtopeniBucharestAirport : Ind Airport ;
-
-fun OttawaMunicipalKSAirport : Ind Airport ;
-
-fun OttestrupSaebyFrederikshavnAirport : Ind Airport ;
-
-fun OttoNMAirport : Ind Airport ;
-
-fun OttumwaIndustrialIAAirport : Ind Airport ;
-
-fun OtuAirport : Ind Airport ;
-
-fun OuaddaAirport : Ind Airport ;
-
-fun OuagaAirport : Ind Airport ;
-
-fun OuagadougouAirport : Ind Airport ;
-
-fun OuahigouyaAirport : Ind Airport ;
-
-fun OuandaDjalleAirport : Ind Airport ;
-
-fun OuangoFitiniAirport : Ind Airport ;
-
-fun OuarglaAirport : Ind Airport ;
-
-fun OuarzazateAirport : Ind Airport ;
-
-fun OudomxayAirport : Ind Airport ;
-
-fun OudtshoornAirport : Ind Airport ;
-
-fun OuessoAirport : Ind Airport ;
-
-fun OuluAirport : Ind Airport ;
-
-fun OurinhosSPAirport : Ind Airport ;
-
-fun OuterSkerriesShetlandIslandsAirport : Ind Airport ;
-
-fun OutjoAirport : Ind Airport ;
-
-fun OuveaUveaLoyaltyIslandsAirport : Ind Airport ;
-
-fun OuvenAirport : Ind Airport ;
-
-fun OuyenVictoriaAirport : Ind Airport ;
-
-fun OvalleAirport : Ind Airport ;
-
-fun OwatonnaMunicipalMNAirport : Ind Airport ;
-
-fun OwenSoundONAirport : Ind Airport ;
-
-fun OwendoAirport : Ind Airport ;
-
-fun OwensboroDaviessCountyKYAirport : Ind Airport ;
-
-fun OxfordEnglandAirport : Ind Airport ;
-
-fun OxfordHouseMBAirport : Ind Airport ;
-
-fun OxnardCAAirport : Ind Airport ;
-
-fun OyemAirport : Ind Airport ;
-
-fun OzamisCityAirport : Ind Airport ;
-
-fun OzonaMunicipalTXAirport : Ind Airport ;
-
-fun PaAnAirport : Ind Airport ;
-
-fun PaamaAirport : Ind Airport ;
-
-fun PacificCityStateORAirport : Ind Airport ;
-
-fun PacificHarbourAirport : Ind Airport ;
-
-fun PackCreekAKAirport : Ind Airport ;
-
-fun PaderbornLippstadtAirport : Ind Airport ;
-
-fun PadovaAirport : Ind Airport ;
-
-fun PadreAldamizPuertoMaldonadoAirport : Ind Airport ;
-
-fun PafWarrenAKAirport : Ind Airport ;
-
-fun PagadianAirport : Ind Airport ;
-
-fun PageMunicipalAZAirport : Ind Airport ;
-
-fun PagelandSCAirport : Ind Airport ;
-
-fun PagoPagoInternationalTutuilaIslandAirport : Ind Airport ;
-
-fun PaielaAirport : Ind Airport ;
-
-fun PailinAirport : Ind Airport ;
-
-fun PaimiutAKAirport : Ind Airport ;
-
-fun PainterCreekAKAirport : Ind Airport ;
-
-fun PaitillaMarcosAGelabertPanamaCityAirport : Ind Airport ;
-
-fun PakatoaIslandAirport : Ind Airport ;
-
-fun PakokkuAirport : Ind Airport ;
-
-fun PakotoaIslandAirport : Ind Airport ;
-
-fun PaksaneAirport : Ind Airport ;
-
-fun PakseAirport : Ind Airport ;
-
-fun PakuashipiQCAirport : Ind Airport ;
-
-fun PakubaAirport : Ind Airport ;
-
-fun PalWaukeeILAirport : Ind Airport ;
-
-fun PalaAirport : Ind Airport ;
-
-fun PalaciosAirport : Ind Airport ;
-
-fun PalaciosMunicipalTXAirport : Ind Airport ;
-
-fun PalangaAirport : Ind Airport ;
-
-fun PalanqueroAirport : Ind Airport ;
-
-fun PalenqueAirport : Ind Airport ;
-
-fun PalestineMunicipalTXAirport : Ind Airport ;
-
-fun PalibeloAirport : Ind Airport ;
-
-fun PalmBeachCountyGladesFLAirport : Ind Airport ;
-
-fun PalmBeachCountyParkFLAirport : Ind Airport ;
-
-fun PalmBeachInternationalFLAirport : Ind Airport ;
-
-fun PalmBeachNewSouthWalesAirport : Ind Airport ;
-
-fun PalmIslandAirport : Ind Airport ;
-
-fun PalmIslandQueenslandAirport : Ind Airport ;
-
-fun PalmSpringsRegionalCAAirport : Ind Airport ;
-
-fun PalmaAirport : Ind Airport ;
-
-fun PalmadeMallorcaBalearicIslandsAirport : Ind Airport ;
-
-fun PalmarAirport : Ind Airport ;
-
-fun PalmaresPEAirport : Ind Airport ;
-
-fun PalmaritoAirport : Ind Airport ;
-
-fun PalmasPRAirport : Ind Airport ;
-
-fun PalmdaleProductionFlightTestInstallationAirForcePlant42CAAirport : Ind Airport ;
-
-fun PalmerMunicipalAKAirport : Ind Airport ;
-
-fun PalmerstonNorthAirport : Ind Airport ;
-
-fun PalmiaAirport : Ind Airport ;
-
-fun PalmyraAirport : Ind Airport ;
-
-fun PaloAltoAirportofSantaClaraCountyCAAirport : Ind Airport ;
-
-fun PaloemeuAirport : Ind Airport ;
-
-fun PamaAirport : Ind Airport ;
-
-fun PambwaAirport : Ind Airport ;
-
-fun PamolSabahAirport : Ind Airport ;
-
-fun PamplonaAirport : Ind Airport ;
-
-fun PanamaCityBayInternationalFLAirport : Ind Airport ;
-
-fun PanambiAirport : Ind Airport ;
-
-fun PancevoAirport : Ind Airport ;
-
-fun PandiePandieSouthAustraliaAirport : Ind Airport ;
-
-fun PangiaAirport : Ind Airport ;
-
-fun PangkalanbuunAirport : Ind Airport ;
-
-fun PangkalpinangAirport : Ind Airport ;
-
-fun PangkorIslandAirport : Ind Airport ;
-
-fun PangnirtungNTAirport : Ind Airport ;
-
-fun PangoaAirport : Ind Airport ;
-
-fun PanguitchMunicipalUTAirport : Ind Airport ;
-
-fun PanjgurAirport : Ind Airport ;
-
-fun PantelleriaPantelleriaIslandAirport : Ind Airport ;
-
-fun PantnagarAirport : Ind Airport ;
-
-fun PapaStourShetlandIslandsAirport : Ind Airport ;
-
-fun PapaWestrayAirport : Ind Airport ;
-
-fun PapeeteTahitiAirport : Ind Airport ;
-
-fun PapunAirport : Ind Airport ;
-
-fun ParaChinarAirport : Ind Airport ;
-
-fun ParaburdooWesternAustraliaAirport : Ind Airport ;
-
-fun ParadiseIslandParadiseAirport : Ind Airport ;
-
-fun ParadiseRiverAerodromeNFAirport : Ind Airport ;
-
-fun ParakouAirport : Ind Airport ;
-
-fun ParamakatoiAirport : Ind Airport ;
-
-fun ParanAirport : Ind Airport ;
-
-fun ParanaGOAirport : Ind Airport ;
-
-fun ParanaguaPRAirport : Ind Airport ;
-
-fun ParanaibaMGAirport : Ind Airport ;
-
-fun ParanavaiPRAirport : Ind Airport ;
-
-fun ParaparaumuAirport : Ind Airport ;
-
-fun ParasiAirport : Ind Airport ;
-
-fun PardooWesternAustraliaAirport : Ind Airport ;
-
-fun ParintinsAMAirport : Ind Airport ;
-
-fun ParisPlageLeTouquetAirport : Ind Airport ;
-
-fun ParkFallsMunicipalWIAirport : Ind Airport ;
-
-fun ParkRapidsMunicipalMNAirport : Ind Airport ;
-
-fun ParkerCountyTXAirport : Ind Airport ;
-
-fun ParkesNewSouthWalesAirport : Ind Airport ;
-
-fun ParlinFieldNHAirport : Ind Airport ;
-
-fun ParmaAirport : Ind Airport ;
-
-fun ParmalbaAirport : Ind Airport ;
-
-fun ParndanaSouthAustraliaAirport : Ind Airport ;
-
-fun ParoAirport : Ind Airport ;
-
-fun ParosAirport : Ind Airport ;
-
-fun ParuimaAirport : Ind Airport ;
-
-fun PasirPangarayanAirport : Ind Airport ;
-
-fun PasniAirport : Ind Airport ;
-
-fun PasoCaballosAirport : Ind Airport ;
-
-fun PasoRoblesMunicipalCAAirport : Ind Airport ;
-
-fun PassoFundoRSAirport : Ind Airport ;
-
-fun PassosAirport : Ind Airport ;
-
-fun PastazaAirport : Ind Airport ;
-
-fun PastoAirport : Ind Airport ;
-
-fun PatnaAirport : Ind Airport ;
-
-fun PatoBrancoPRAirport : Ind Airport ;
-
-fun PatongBeachAirport : Ind Airport ;
-
-fun PatreksfjordurAirport : Ind Airport ;
-
-fun PattaniAirport : Ind Airport ;
-
-fun PattayaAirport : Ind Airport ;
-
-fun PatuxentRiverNavalAirStationTrapnellFieldMDAirport : Ind Airport ;
-
-fun PaukAirport : Ind Airport ;
-
-fun PaulatukNTAirport : Ind Airport ;
-
-fun PauloAfonsoBAAirport : Ind Airport ;
-
-fun PavlodarPavlodarAirport : Ind Airport ;
-
-fun PayalebaarSingaporeAirport : Ind Airport ;
-
-fun PayanAirport : Ind Airport ;
-
-fun PaysanduAirport : Ind Airport ;
-
-fun PaysonAZAirport : Ind Airport ;
-
-fun PazdeAriporoAirport : Ind Airport ;
-
-fun PeaceRiverABAirport : Ind Airport ;
-
-fun PeaseAirNationalGuardBaseNHAirport : Ind Airport ;
-
-fun PeawanuckONAirport : Ind Airport ;
-
-fun PebaneAirport : Ind Airport ;
-
-fun PecosMunicipalTXAirport : Ind Airport ;
-
-fun PedernalesAirport : Ind Airport ;
-
-fun PedroBayAKAirport : Ind Airport ;
-
-fun PedroJuanCaballeroAirport : Ind Airport ;
-
-fun PeeblyBeachSeaplaneBaseCAAirport : Ind Airport ;
-
-fun PekoaEspiritoSantoAirport : Ind Airport ;
-
-fun PelanengAirport : Ind Airport ;
-
-fun PelicanSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PellstonRegionalAirportofEmmetCountyMIAirport : Ind Airport ;
-
-fun PellyBayNTAirport : Ind Airport ;
-
-fun PellyBayTownsiteNTAirport : Ind Airport ;
-
-fun PelotasRSAirport : Ind Airport ;
-
-fun PembaIslandAirport : Ind Airport ;
-
-fun PembaPortoAmeliaAirport : Ind Airport ;
-
-fun PembinaMunicipalNDAirport : Ind Airport ;
-
-fun PembrokeONAirport : Ind Airport ;
-
-fun PenderHarbourWaterAerodromeBCAirport : Ind Airport ;
-
-fun PendletonMunicipalORAirport : Ind Airport ;
-
-fun PendopoAirport : Ind Airport ;
-
-fun PennValleyPAAirport : Ind Airport ;
-
-fun PenneshawSouthAustraliaAirport : Ind Airport ;
-
-fun PenongSouthAustraliaAirport : Ind Airport ;
-
-fun PenrhynIslandAirport : Ind Airport ;
-
-fun PensacolaNavalAirStationForrestShermanFieldFLAirport : Ind Airport ;
-
-fun PensacolaRegionalFLAirport : Ind Airport ;
-
-fun PentictonBCAirport : Ind Airport ;
-
-fun PenzaPenzaAirport : Ind Airport ;
-
-fun PenzanceHeliportEnglandAirport : Ind Airport ;
-
-fun PeppimenartiNorthernTerritoryAirport : Ind Airport ;
-
-fun PeraitepuysAirport : Ind Airport ;
-
-fun PerisherValleyNewSouthWalesAirport : Ind Airport ;
-
-fun PerisonBCAirport : Ind Airport ;
-
-fun PeritoMorenoAirport : Ind Airport ;
-
-fun PerryIslandSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PerryLeforsFieldTXAirport : Ind Airport ;
-
-fun PerryMunicipalIAAirport : Ind Airport ;
-
-fun PerryStokesCOAirport : Ind Airport ;
-
-fun PersepolisAirport : Ind Airport ;
-
-fun PersonCountyNCAirport : Ind Airport ;
-
-fun PerthScotlandAirport : Ind Airport ;
-
-fun PerthWesternAustraliaAirport : Ind Airport ;
-
-fun PerwokertoAirport : Ind Airport ;
-
-fun PescaraAirport : Ind Airport ;
-
-fun PeshawarAirport : Ind Airport ;
-
-fun PetawawaONAirport : Ind Airport ;
-
-fun PeterOKnightFLAirport : Ind Airport ;
-
-fun PeterboroughONAirport : Ind Airport ;
-
-fun PetersburgAKAirport : Ind Airport ;
-
-fun PetersburgMunicipalVAAirport : Ind Airport ;
-
-fun PetersonsPointAKAirport : Ind Airport ;
-
-fun PetitJeanParkARAirport : Ind Airport ;
-
-fun PetrellaMogadishuMogadiscioAirport : Ind Airport ;
-
-fun PetrolinaPEAirport : Ind Airport ;
-
-fun PetropavlovskKamchatkaAirport : Ind Airport ;
-
-fun PetropavlovskKamchatskiyKamchatkaAirport : Ind Airport ;
-
-fun PetropolisRJAirport : Ind Airport ;
-
-fun PetrozavodskKareliaAirport : Ind Airport ;
-
-fun PevekMagadanAirport : Ind Airport ;
-
-fun PforzheimAirport : Ind Airport ;
-
-fun PhalaborwaAirport : Ind Airport ;
-
-fun PhanRangAirport : Ind Airport ;
-
-fun PhanThietAirport : Ind Airport ;
-
-fun PhanomSarakhamAirport : Ind Airport ;
-
-fun PhapluAirport : Ind Airport ;
-
-fun PhiladelphiaInternationalPAAirport : Ind Airport ;
-
-fun PhiladelphiaSeaplaneBasePAAirport : Ind Airport ;
-
-fun PhilipBillardMunicipalKSAirport : Ind Airport ;
-
-fun PhilipSDAirport : Ind Airport ;
-
-fun PhillipsAKAirport : Ind Airport ;
-
-fun PhillipsburgMunicipalKSAirport : Ind Airport ;
-
-fun PhitsanulokAirport : Ind Airport ;
-
-fun PhoenixSkyHarborInternationalAZAirport : Ind Airport ;
-
-fun PhraeAirport : Ind Airport ;
-
-fun PhuQuocAirport : Ind Airport ;
-
-fun PhuVinhAirport : Ind Airport ;
-
-fun PhuoclongAirport : Ind Airport ;
-
-fun PiarcoTrinidadIsAirport : Ind Airport ;
-
-fun PicayunePearlRiverCountyMSAirport : Ind Airport ;
-
-fun PickensCountySCAirport : Ind Airport ;
-
-fun PickleLakeONAirport : Ind Airport ;
-
-fun PicoIslandAzoresAirport : Ind Airport ;
-
-fun PicosPIAirport : Ind Airport ;
-
-fun PictonAirport : Ind Airport ;
-
-fun PiedrasNegrasAirport : Ind Airport ;
-
-fun PierreElliottTrudeauInternationalQCAirport : Ind Airport ;
-
-fun PierreMunicipalSDAirport : Ind Airport ;
-
-fun PiestanyAirport : Ind Airport ;
-
-fun PietermaritzburgAirport : Ind Airport ;
-
-fun PietersburgAirport : Ind Airport ;
-
-fun PijiguaosAirport : Ind Airport ;
-
-fun PikangikumONAirport : Ind Airport ;
-
-fun PikangikumWaterAerodromeONAirport : Ind Airport ;
-
-fun PilanesbergSunCityAirport : Ind Airport ;
-
-fun PilarAirport : Ind Airport ;
-
-fun PilotPointAKAirport : Ind Airport ;
-
-fun PilotStationAKAirport : Ind Airport ;
-
-fun PimagaAirport : Ind Airport ;
-
-fun PinalAirparkAZAirport : Ind Airport ;
-
-fun PinardelRioAirport : Ind Airport ;
-
-fun PincherCreekABAirport : Ind Airport ;
-
-fun PinckneyvilleDuQuoinILAirport : Ind Airport ;
-
-fun PindiuAirport : Ind Airport ;
-
-fun PineCayAirport : Ind Airport ;
-
-fun PinePointNTAirport : Ind Airport ;
-
-fun PineRidgeSDAirport : Ind Airport ;
-
-fun PinebeltMSAirport : Ind Airport ;
-
-fun PinehouseLakeSKAirport : Ind Airport ;
-
-fun PingTungAirport : Ind Airport ;
-
-fun PinheiroMAAirport : Ind Airport ;
-
-fun PipestoneMunicipalMNAirport : Ind Airport ;
-
-fun PipillipaiAirport : Ind Airport ;
-
-fun PirkkalaTampereAirport : Ind Airport ;
-
-fun PiscoAirport : Ind Airport ;
-
-fun PitalitoAirport : Ind Airport ;
-
-fun PitingaAirport : Ind Airport ;
-
-fun PittGreenvilleNCAirport : Ind Airport ;
-
-fun PittMeadowsBCAirport : Ind Airport ;
-
-fun PittsTownAirport : Ind Airport ;
-
-fun PittsfieldMunicipalMAAirport : Ind Airport ;
-
-fun PiuraAirport : Ind Airport ;
-
-fun PlacervilleCAAirport : Ind Airport ;
-
-fun PlageBlancheTanTanAirport : Ind Airport ;
-
-fun PlanadasAirport : Ind Airport ;
-
-fun PlandeGuadelupeSaltilloAirport : Ind Airport ;
-
-fun PlanetaRicaAirport : Ind Airport ;
-
-fun PlatinumAKAirport : Ind Airport ;
-
-fun PlatoAirport : Ind Airport ;
-
-fun PlattsburghAirForceBaseNYAirport : Ind Airport ;
-
-fun PlaujeanMorlaixAirport : Ind Airport ;
-
-fun PlayaSamaraAirport : Ind Airport ;
-
-fun PlayadeOroManzanilloAirport : Ind Airport ;
-
-fun PlayadelCarmenAirport : Ind Airport ;
-
-fun PlayonChicoAirport : Ind Airport ;
-
-fun PlazaHeliportILAirport : Ind Airport ;
-
-fun PleasantHarborAKAirport : Ind Airport ;
-
-fun PleikuAirport : Ind Airport ;
-
-fun PlekhanovaTyumenAirport : Ind Airport ;
-
-fun PlesoZagrebAirport : Ind Airport ;
-
-fun PlettenbergBayAirport : Ind Airport ;
-
-fun PlevenAirport : Ind Airport ;
-
-fun PlovdivAirport : Ind Airport ;
-
-fun PluguffanQuimperAirport : Ind Airport ;
-
-fun PlymouthMunicipalMAAirport : Ind Airport ;
-
-fun PoAirport : Ind Airport ;
-
-fun PocahontasMunicipalIAAirport : Ind Airport ;
-
-fun PocatelloMunicipalIDAirport : Ind Airport ;
-
-fun PochentongPhnomPenhAirport : Ind Airport ;
-
-fun PochutlaAirport : Ind Airport ;
-
-fun PoconoMountainsMunicipalPAAirport : Ind Airport ;
-
-fun PocosdeCaldasMGAirport : Ind Airport ;
-
-fun PodorAirport : Ind Airport ;
-
-fun PogdoricaTitogradAirport : Ind Airport ;
-
-fun PohnpeiInternationalPohnpeiIslandAirport : Ind Airport ;
-
-fun PointBarrowAKAirport : Ind Airport ;
-
-fun PointHopeAKAirport : Ind Airport ;
-
-fun PointLayLRRSAKAirport : Ind Airport ;
-
-fun PointMuguNAWSCAAirport : Ind Airport ;
-
-fun PointeNoireAirport : Ind Airport ;
-
-fun PointeRetreatAKAirport : Ind Airport ;
-
-fun PointsNorthLandingAerodromeSKAirport : Ind Airport ;
-
-fun PokharaAirport : Ind Airport ;
-
-fun PolaccaAZAirport : Ind Airport ;
-
-fun PolkArmyAirFieldLAAirport : Ind Airport ;
-
-fun PolkInletAKAirport : Ind Airport ;
-
-fun PoloniaMedanAirport : Ind Airport ;
-
-fun PoltavaPoltavaAirport : Ind Airport ;
-
-fun PomalaaAirport : Ind Airport ;
-
-fun PomeziaAirport : Ind Airport ;
-
-fun PompanoBeachAirparkFLAirport : Ind Airport ;
-
-fun PompeiaSPAirport : Ind Airport ;
-
-fun PoncaCityMunicipalOKAirport : Ind Airport ;
-
-fun PondInletNTAirport : Ind Airport ;
-
-fun PondokCabeAirport : Ind Airport ;
-
-fun PontLongUzeinPauAirport : Ind Airport ;
-
-fun PontaDelgadaSaoMiguelIslandAzoresAirport : Ind Airport ;
-
-fun PontaGrossaPRAirport : Ind Airport ;
-
-fun PontaPoraSPAirport : Ind Airport ;
-
-fun PontoiseAirport : Ind Airport ;
-
-fun PoonaAirport : Ind Airport ;
-
-fun PopayanAirport : Ind Airport ;
-
-fun PopeAirForceBaseNCAirport : Ind Airport ;
-
-fun PopeVanoyAKAirport : Ind Airport ;
-
-fun PoplarBluffMunicipalMOAirport : Ind Airport ;
-
-fun PoplarHillONAirport : Ind Airport ;
-
-fun PoplarRiverMBAirport : Ind Airport ;
-
-fun PopondettaAirport : Ind Airport ;
-
-fun PoptunAirport : Ind Airport ;
-
-fun PorbandarAirport : Ind Airport ;
-
-fun PorcupineCreekAKAirport : Ind Airport ;
-
-fun PoreAirport : Ind Airport ;
-
-fun PorgeraAirport : Ind Airport ;
-
-fun PoriAirport : Ind Airport ;
-
-fun PortAlberniBCAirport : Ind Airport ;
-
-fun PortAlexanderSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PortAllenHIAirport : Ind Airport ;
-
-fun PortAlsworthAKAirport : Ind Airport ;
-
-fun PortAngelesCoastGuardAirStationWAAirport : Ind Airport ;
-
-fun PortAntonioAirport : Ind Airport ;
-
-fun PortArmstrongAKAirport : Ind Airport ;
-
-fun PortAugustaSouthAustraliaAirport : Ind Airport ;
-
-fun PortBergeAirport : Ind Airport ;
-
-fun PortDouglasQueenslandAirport : Ind Airport ;
-
-fun PortElizabethAirport : Ind Airport ;
-
-fun PortGentilAirport : Ind Airport ;
-
-fun PortGrahamAKAirport : Ind Airport ;
-
-fun PortHardyBCAirport : Ind Airport ;
-
-fun PortHardyWaterAerodromeBCAirport : Ind Airport ;
-
-fun PortHawkesburyNSAirport : Ind Airport ;
-
-fun PortHedlandWesternAustraliaAirport : Ind Airport ;
-
-fun PortHeidenAKAirport : Ind Airport ;
-
-fun PortHopeSimpsonAerodromeNFAirport : Ind Airport ;
-
-fun PortHunterNewSouthWalesAirport : Ind Airport ;
-
-fun PortJohnsonAKAirport : Ind Airport ;
-
-fun PortKaitumaAirport : Ind Airport ;
-
-fun PortKeatsNorthernTerritoryAirport : Ind Airport ;
-
-fun PortLincolnSouthAustraliaAirport : Ind Airport ;
-
-fun PortLionsAKAirport : Ind Airport ;
-
-fun PortMacquarieNewSouthWalesAirport : Ind Airport ;
-
-fun PortMcNeillWaterAerodromeBCAirport : Ind Airport ;
-
-fun PortMeadvillePAAirport : Ind Airport ;
-
-fun PortMenierQCAirport : Ind Airport ;
-
-fun PortMollerAKAirport : Ind Airport ;
-
-fun PortMoresbyAirport : Ind Airport ;
-
-fun PortOceanicAKAirport : Ind Airport ;
-
-fun PortProtectionSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PortRadiumNTAirport : Ind Airport ;
-
-fun PortSaidAirport : Ind Airport ;
-
-fun PortSanJuanAKAirport : Ind Airport ;
-
-fun PortSimpsonWaterAerodromeBCAirport : Ind Airport ;
-
-fun PortStanleyStanleyAirport : Ind Airport ;
-
-fun PortStephensNewSouthWalesAirport : Ind Airport ;
-
-fun PortSudanAirport : Ind Airport ;
-
-fun PortWalterSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PortageCreekAKAirport : Ind Airport ;
-
-fun PortauPrinceAirport : Ind Airport ;
-
-fun PortdePaixAirport : Ind Airport ;
-
-fun PorterCountyMunicipalINAirport : Ind Airport ;
-
-fun PortervilleMunicipalCAAirport : Ind Airport ;
-
-fun PortimaoAirport : Ind Airport ;
-
-fun PortlandInternationalJetportMEAirport : Ind Airport ;
-
-fun PortlandInternationalORAirport : Ind Airport ;
-
-fun PortlandTroutdaleORAirport : Ind Airport ;
-
-fun PortlandVictoriaAirport : Ind Airport ;
-
-fun PortoAlegreSaoTomeAirport : Ind Airport ;
-
-fun PortoAmboimAirport : Ind Airport ;
-
-fun PortoKheliAirport : Ind Airport ;
-
-fun PortoNacionalGOAirport : Ind Airport ;
-
-fun PortoSantoMadeiraAirport : Ind Airport ;
-
-fun PortoTrombetasPAAirport : Ind Airport ;
-
-fun PortoVelhoROAirport : Ind Airport ;
-
-fun PortodeMosPAAirport : Ind Airport ;
-
-fun PortofPoulsboMarinaMoorageSeaplaneBaseWAAirport : Ind Airport ;
-
-fun PortorozAirport : Ind Airport ;
-
-fun PortoviejoAirport : Ind Airport ;
-
-fun PortpirieSouthAustraliaAirport : Ind Airport ;
-
-fun PortsmouthEnglandAirport : Ind Airport ;
-
-fun PorvenirAirport : Ind Airport ;
-
-fun PosadasAirport : Ind Airport ;
-
-fun PosoAirport : Ind Airport ;
-
-fun PostvilleAerodromeNFAirport : Ind Airport ;
-
-fun PottstownLimerickPAAirport : Ind Airport ;
-
-fun PousoAlegreMGAirport : Ind Airport ;
-
-fun PovungnitukQCAirport : Ind Airport ;
-
-fun PowellLakeWaterAerodromeBCAirport : Ind Airport ;
-
-fun PowellMunicipalWYAirport : Ind Airport ;
-
-fun PowellPointAirport : Ind Airport ;
-
-fun PowellRiverBCAirport : Ind Airport ;
-
-fun PozaRicaAirport : Ind Airport ;
-
-fun PprtAliceSeaplaneBaseAKAirport : Ind Airport ;
-
-fun PradoBAAirport : Ind Airport ;
-
-fun PraiaSaoTiagoAirport : Ind Airport ;
-
-fun PrairieduChienMunicipalWIAirport : Ind Airport ;
-
-fun PraslinIslandAirport : Ind Airport ;
-
-fun PratoAirport : Ind Airport ;
-
-fun PrattIndustrialKSAirport : Ind Airport ;
-
-fun PrenticeWIAirport : Ind Airport ;
-
-fun PrerovAirport : Ind Airport ;
-
-fun PresidenciaRoqueSaenzPenaAirport : Ind Airport ;
-
-fun PresidenteCIdelCampoPuntaArenasAirport : Ind Airport ;
-
-fun PresidenteDutraAirport : Ind Airport ;
-
-fun PresidenteMediciACAirport : Ind Airport ;
-
-fun PresidentePrudenteSPAirport : Ind Airport ;
-
-fun PresqueIsleCountyMIAirport : Ind Airport ;
-
-fun PrestonAirport : Ind Airport ;
-
-fun PrestwickScotlandAirport : Ind Airport ;
-
-fun PrevezaLefkasAirport : Ind Airport ;
-
-fun PrinceAlbertSKAirport : Ind Airport ;
-
-fun PrinceGeorgeBCAirport : Ind Airport ;
-
-fun PrinceRupertBCAirport : Ind Airport ;
-
-fun PrincesJulianaStMaartenPhilipsburgAirport : Ind Airport ;
-
-fun PrincetonMunicipalMEAirport : Ind Airport ;
-
-fun PrincetonMunicipalMNAirport : Ind Airport ;
-
-fun PrincetonNJAirport : Ind Airport ;
-
-fun PrincipePrincipeAirport : Ind Airport ;
-
-fun PrinevilleORAirport : Ind Airport ;
-
-fun PristinaAirport : Ind Airport ;
-
-fun ProgressoAirport : Ind Airport ;
-
-fun PromeAirport : Ind Airport ;
-
-fun ProprianoAirport : Ind Airport ;
-
-fun ProserpineQueenslandAirport : Ind Airport ;
-
-fun ProspectCreekAKAirport : Ind Airport ;
-
-fun ProspectHillMAAirport : Ind Airport ;
-
-fun ProvidenciaAirport : Ind Airport ;
-
-fun ProvidencialesCaicosIsAirport : Ind Airport ;
-
-fun ProvideniyaMagadanAirport : Ind Airport ;
-
-fun ProvincetownMunicipalMAAirport : Ind Airport ;
-
-fun ProvoMunicipalUTAirport : Ind Airport ;
-
-fun PrudhoeBayAKAirport : Ind Airport ;
-
-fun PuasAirport : Ind Airport ;
-
-fun PucallpaAirport : Ind Airport ;
-
-fun PuconAirport : Ind Airport ;
-
-fun PueblaAirport : Ind Airport ;
-
-fun PuebloMemorialCOAirport : Ind Airport ;
-
-fun PuertoAisenAirport : Ind Airport ;
-
-fun PuertoAsisAirport : Ind Airport ;
-
-fun PuertoAyacuchoAirport : Ind Airport ;
-
-fun PuertoBarriosAirport : Ind Airport ;
-
-fun PuertoBerrioAirport : Ind Airport ;
-
-fun PuertoBoyacaAirport : Ind Airport ;
-
-fun PuertoCabezasAirport : Ind Airport ;
-
-fun PuertoCarrenoAirport : Ind Airport ;
-
-fun PuertoDeseadoAirport : Ind Airport ;
-
-fun PuertoEscondidoAirport : Ind Airport ;
-
-fun PuertoIniridaAirport : Ind Airport ;
-
-fun PuertoJimenezAirport : Ind Airport ;
-
-fun PuertoJuarezAirport : Ind Airport ;
-
-fun PuertoLaCruzAirport : Ind Airport ;
-
-fun PuertoLeguizamAirport : Ind Airport ;
-
-fun PuertoLenpiraAirport : Ind Airport ;
-
-fun PuertoObaldiaAirport : Ind Airport ;
-
-fun PuertoPaezAirport : Ind Airport ;
-
-fun PuertoPenascoAirport : Ind Airport ;
-
-fun PuertoPlataAirport : Ind Airport ;
-
-fun PuertoPrincesaInternationalPuertoPrincesaAirport : Ind Airport ;
-
-fun PuertoRicoAirport : Ind Airport ;
-
-fun PuertoRicoAirportColombia : Ind Airport ;
-
-fun PuertoWilliamsAirport : Ind Airport ;
-
-fun PukapukaAirport : Ind Airport ;
-
-fun PukaruAirport : Ind Airport ;
-
-fun PukatawaganMBAirport : Ind Airport ;
-
-fun PulaAirport : Ind Airport ;
-
-fun Pulkowo2LeningradAirport : Ind Airport ;
-
-fun PullmanWAMoscowAirport : Ind Airport ;
-
-fun PumaniAirport : Ind Airport ;
-
-fun PuniaAirport : Ind Airport ;
-
-fun PunotecaAirport : Ind Airport ;
-
-fun PuntaAlegreAirport : Ind Airport ;
-
-fun PuntaCanaAirport : Ind Airport ;
-
-fun PuntaChivatoAirport : Ind Airport ;
-
-fun PuntaColoradaAirport : Ind Airport ;
-
-fun PuntaGordaAirport : Ind Airport ;
-
-fun PuntaRaisiSicilyAirport : Ind Airport ;
-
-fun PuntadeMaisiAirport : Ind Airport ;
-
-fun PuntziMountainBCAirport : Ind Airport ;
-
-fun PurdueUniversityINAirport : Ind Airport ;
-
-fun PussoAlegreMGAirport : Ind Airport ;
-
-fun PutaoAirport : Ind Airport ;
-
-fun PutnamCountyOHAirport : Ind Airport ;
-
-fun PuttaparthiAirport : Ind Airport ;
-
-fun PuttgardenAirport : Ind Airport ;
-
-fun PutumayoAirport : Ind Airport ;
-
-fun PutussibauBorneoAirport : Ind Airport ;
-
-fun PwetoAirport : Ind Airport ;
-
-fun PyrgosAirport : Ind Airport ;
-
-fun QalaNauAirport : Ind Airport ;
-
-fun QanaqAirport : Ind Airport ;
-
-fun QingdaoAirport : Ind Airport ;
-
-fun QinhuangdaoAirport : Ind Airport ;
-
-fun QiqiharTsitsiharAirport : Ind Airport ;
-
-fun QuadCityILAirport : Ind Airport ;
-
-fun QuakertownPAAirport : Ind Airport ;
-
-fun QualicumBeachAerodromeBCAirport : Ind Airport ;
-
-fun QuangNgaiAirport : Ind Airport ;
-
-fun QuangaAirport : Ind Airport ;
-
-fun QuanticoMarineCorpsAirFacilityTurnerFieldVAAirport : Ind Airport ;
-
-fun QuaqtaqQCAirport : Ind Airport ;
-
-fun QuartzHillCAAirport : Ind Airport ;
-
-fun QuebecQCAirport : Ind Airport ;
-
-fun QueenCharlotteWaterAerodromeBCAirport : Ind Airport ;
-
-fun QueenstownAirport : Ind Airport ;
-
-fun QueenstownAirportSouthAfrica : Ind Airport ;
-
-fun QueenstownTasmaniaAirport : Ind Airport ;
-
-fun QuelimaneAirport : Ind Airport ;
-
-fun QueposAirport : Ind Airport ;
-
-fun QueretaroAirport : Ind Airport ;
-
-fun QuesnelBCAirport : Ind Airport ;
-
-fun QuettaAirport : Ind Airport ;
-
-fun QuetzalcoatiNuevoLaredoAirport : Ind Airport ;
-
-fun QuibdoAirport : Ind Airport ;
-
-fun QuillayuteStateWAAirport : Ind Airport ;
-
-fun QuilpieQueenslandAirport : Ind Airport ;
-
-fun QuinceMilAirport : Ind Airport ;
-
-fun QuincyMunicipalBaldwinFieldILAirport : Ind Airport ;
-
-fun QuineHillAirport : Ind Airport ;
-
-fun QuirindiNewSouthWalesAirport : Ind Airport ;
-
-fun QuonsetStateRIAirport : Ind Airport ;
-
-fun QuyNhonAirport : Ind Airport ;
-
-fun QuzhouAirport : Ind Airport ;
-
-fun RabarabaAirport : Ind Airport ;
-
-fun RabaulAirport : Ind Airport ;
-
-fun RabiAirport : Ind Airport ;
-
-fun RachGiaAirport : Ind Airport ;
-
-fun RaduzhnyiAirport : Ind Airport ;
-
-fun RaeLakesAerodromeNTAirport : Ind Airport ;
-
-fun RafaiAirport : Ind Airport ;
-
-fun RafhaAirport : Ind Airport ;
-
-fun RaglandAirport : Ind Airport ;
-
-fun RahaAirport : Ind Airport ;
-
-fun RahimYarKhanAirport : Ind Airport ;
-
-fun RaiateaSocietyIslandsAirport : Ind Airport ;
-
-fun RailwayStationBadenBadenAirport : Ind Airport ;
-
-fun RailwayStationNJAirport : Ind Airport ;
-
-fun RainbowLakeABAirport : Ind Airport ;
-
-fun RaipurAirport : Ind Airport ;
-
-fun RajahmundryAirport : Ind Airport ;
-
-fun RajbirajAirport : Ind Airport ;
-
-fun RajkotAirport : Ind Airport ;
-
-fun RajouriAirport : Ind Airport ;
-
-fun RajshaniAirport : Ind Airport ;
-
-fun RakandaAirport : Ind Airport ;
-
-fun RaleighDurhamInternationalNCAirport : Ind Airport ;
-
-fun RalphMCalhounMemorialAKAirport : Ind Airport ;
-
-fun RalphWienMemorialAKAirport : Ind Airport ;
-
-fun RamagundamAirport : Ind Airport ;
-
-fun RamechhapAirport : Ind Airport ;
-
-fun RaminginingNorthernTerritoryAirport : Ind Airport ;
-
-fun RampartAKAirport : Ind Airport ;
-
-fun RamsarAirport : Ind Airport ;
-
-fun RamsteinAirBaseRamsteinAirport : Ind Airport ;
-
-fun RanauAirport : Ind Airport ;
-
-fun RanchoBuenaVistaAirport : Ind Airport ;
-
-fun RanchoCaliforniaCAAirport : Ind Airport ;
-
-fun RanchoMurietaCAAirport : Ind Airport ;
-
-fun RandGermistonJohannesburgAirport : Ind Airport ;
-
-fun RandolphAirForceBaseTXAirport : Ind Airport ;
-
-fun RangelyCOAirport : Ind Airport ;
-
-fun RangerMunicipalTXAirport : Ind Airport ;
-
-fun RangiroaTuamotuArchipelagoAirport : Ind Airport ;
-
-fun RangpurAirport : Ind Airport ;
-
-fun RankinInletNTAirport : Ind Airport ;
-
-fun RansikiAirport : Ind Airport ;
-
-fun RapidCityRegionalSDAirport : Ind Airport ;
-
-fun RarotongaInternationalAvaruaAirport : Ind Airport ;
-
-fun RasNasraniSharmElSheikhAirport : Ind Airport ;
-
-fun RasalKhaymahAirport : Ind Airport ;
-
-fun RaselNaqbRasanNaqbAirport : Ind Airport ;
-
-fun RashtAirport : Ind Airport ;
-
-fun RaspberryStraitAKAirport : Ind Airport ;
-
-fun RatnagiriAirport : Ind Airport ;
-
-fun RatonMunicipalAirportCrewsFieldNMAirport : Ind Airport ;
-
-fun RaudaskylaYlivieskaAirport : Ind Airport ;
-
-fun RaudhaAirport : Ind Airport ;
-
-fun RaufarhofnAirport : Ind Airport ;
-
-fun RavennaAirport : Ind Airport ;
-
-fun RawalaKotAirport : Ind Airport ;
-
-fun RawalpindiAirport : Ind Airport ;
-
-fun RawlinsMunicipalWYAirport : Ind Airport ;
-
-fun RayongPattayaAirport : Ind Airport ;
-
-fun ReaPointNTAirport : Ind Airport ;
-
-fun ReadAirport : Ind Airport ;
-
-fun ReadingRegionalAirportCarlASpaatzFieldPAAirport : Ind Airport ;
-
-fun RebunAirport : Ind Airport ;
-
-fun ReconquistaAirport : Ind Airport ;
-
-fun RedBluffMunicipalCAAirport : Ind Airport ;
-
-fun RedDeerIndustrialABAirport : Ind Airport ;
-
-fun RedDevilAKAirport : Ind Airport ;
-
-fun RedDogAKAirport : Ind Airport ;
-
-fun RedLakeONAirport : Ind Airport ;
-
-fun RedOakMunicipalIAAirport : Ind Airport ;
-
-fun RedRiverNDAirport : Ind Airport ;
-
-fun RedSuckerLakeONAirport : Ind Airport ;
-
-fun RedWingMunicipalMNAirport : Ind Airport ;
-
-fun RedbirdTXAirport : Ind Airport ;
-
-fun RedcliffeAirport : Ind Airport ;
-
-fun ReddingMunicipalCAAirport : Ind Airport ;
-
-fun RedencaoAirport : Ind Airport ;
-
-fun RedwoodFallsMunicipalMNAirport : Ind Airport ;
-
-fun ReeseAirForceBaseTXAirport : Ind Airport ;
-
-fun ReggioCalabriaAirport : Ind Airport ;
-
-fun ReginaAirport : Ind Airport ;
-
-fun ReginaSKAirport : Ind Airport ;
-
-fun ReginaldGrantMemorialGAAirport : Ind Airport ;
-
-fun RegionalONAirport : Ind Airport ;
-
-fun RehobothBaySeaplaneBaseDEAirport : Ind Airport ;
-
-fun ReidHillviewofSantaClaraCountyCAAirport : Ind Airport ;
-
-fun ReidsvilleGAAirport : Ind Airport ;
-
-fun ReinaSofiaTenerifeSurCanaryIslandsAirport : Ind Airport ;
-
-fun ReiviloAirport : Ind Airport ;
-
-fun RengatAirport : Ind Airport ;
-
-fun RenmarkSouthAustraliaAirport : Ind Airport ;
-
-fun RennellIslandAirport : Ind Airport ;
-
-fun RenoCannonInternationalNVAirport : Ind Airport ;
-
-fun RentonMunicipalWAAirport : Ind Airport ;
-
-fun RepulseBayNTAirport : Ind Airport ;
-
-fun RequenaAirport : Ind Airport ;
-
-fun ResendeRJAirport : Ind Airport ;
-
-fun ResistenciaAirport : Ind Airport ;
-
-fun ResoluteBayNTAirport : Ind Airport ;
-
-fun ResolutionIslandNTAirport : Ind Airport ;
-
-fun RethymnonCreteAirport : Ind Airport ;
-
-fun ReusAirport : Ind Airport ;
-
-fun ReusTarragonaAirport : Ind Airport ;
-
-fun RevelstokeBCAirport : Ind Airport ;
-
-fun RewaAirport : Ind Airport ;
-
-fun ReyesAirport : Ind Airport ;
-
-fun ReykholarAirport : Ind Airport ;
-
-fun ReykjahlidhMyvatnAirport : Ind Airport ;
-
-fun ReykjavikAirport : Ind Airport ;
-
-fun RezayiehAirport : Ind Airport ;
-
-fun RhinelanderOneidaCountyWIAirport : Ind Airport ;
-
-fun RiberaltaAirport : Ind Airport ;
-
-fun RiberaoPretoSPAirport : Ind Airport ;
-
-fun RiceLakeMunicipalWIAirport : Ind Airport ;
-
-fun RichardBHelgesonMNAirport : Ind Airport ;
-
-fun RichardBRussellGAAirport : Ind Airport ;
-
-fun RichardIBongWIAirport : Ind Airport ;
-
-fun RichardLloydJonesJrOKAirport : Ind Airport ;
-
-fun RichardTollAirport : Ind Airport ;
-
-fun RichardsBayAirport : Ind Airport ;
-
-fun RichfieldMunicipalUTAirport : Ind Airport ;
-
-fun RichlandWAAirport : Ind Airport ;
-
-fun RichmondInternationalAirportByrdFieldVAAirport : Ind Airport ;
-
-fun RichmondMunicipalINAirport : Ind Airport ;
-
-fun RichmondQueenslandAirport : Ind Airport ;
-
-fun RickenbackerInternationalOHAirport : Ind Airport ;
-
-fun RigoletAerodromeNFAirport : Ind Airport ;
-
-fun RijekaAirport : Ind Airport ;
-
-fun RiminiAirport : Ind Airport ;
-
-fun RimouskiQCAirport : Ind Airport ;
-
-fun RingiCoveAirport : Ind Airport ;
-
-fun RingwayInternationalEnglandAirport : Ind Airport ;
-
-fun RioAlzucarAirport : Ind Airport ;
-
-fun RioCuartoAreadeMaterialRioCuartoAirport : Ind Airport ;
-
-fun RioFrioAirport : Ind Airport ;
-
-fun RioGallegosAirport : Ind Airport ;
-
-fun RioGrandeAirport : Ind Airport ;
-
-fun RioGrandeRSAirport : Ind Airport ;
-
-fun RioGrandeValleyTXAirport : Ind Airport ;
-
-fun RioHondoAirport : Ind Airport ;
-
-fun RioMayoAirport : Ind Airport ;
-
-fun RioSidraAirport : Ind Airport ;
-
-fun RioTigreAirport : Ind Airport ;
-
-fun RioTurbioAirport : Ind Airport ;
-
-fun RioVerdeAirport : Ind Airport ;
-
-fun RiohachaAirport : Ind Airport ;
-
-fun RiojaAirport : Ind Airport ;
-
-fun RiosoSulSCAirport : Ind Airport ;
-
-fun RishiriAirport : Ind Airport ;
-
-fun RiverCessAirport : Ind Airport ;
-
-fun RiversInletWaterAerodromeBCAirport : Ind Airport ;
-
-fun RiversMBAirport : Ind Airport ;
-
-fun RiversideMunicipalCAAirport : Ind Airport ;
-
-fun RivertonRegionalWYAirport : Ind Airport ;
-
-fun RivesaltesPerpignanAirport : Ind Airport ;
-
-fun RiviereQCAirport : Ind Airport ;
-
-fun RiviereauTonnerreQCAirport : Ind Airport ;
-
-fun RiviereduLoupQCAirport : Ind Airport ;
-
-fun RivneRovnoRivneAirport : Ind Airport ;
-
-fun RivoltoUdineAirport : Ind Airport ;
-
-fun RiyadhAirport : Ind Airport ;
-
-fun RiyanAirport : Ind Airport ;
-
-fun RizeAirport : Ind Airport ;
-
-fun RoadTownSeaplaneBaseTortolaAirport : Ind Airport ;
-
-fun RoanneAirport : Ind Airport ;
-
-fun RoanokeRegionalAirportWoodrumFieldVAAirport : Ind Airport ;
-
-fun RoatanAirport : Ind Airport ;
-
-fun RobenHoodMIAirport : Ind Airport ;
-
-fun RobertBobCurtisMemorialAKAirport : Ind Airport ;
-
-fun RobertSKerrOKAirport : Ind Airport ;
-
-fun RobertSibleyTNAirport : Ind Airport ;
-
-fun RobertsArmyAirFieldCAAirport : Ind Airport ;
-
-fun RobertsFieldMonroviaAirport : Ind Airport ;
-
-fun RobertsFieldORAirport : Ind Airport ;
-
-fun RobervalQCAirport : Ind Airport ;
-
-fun RobinhoodQueenslandAirport : Ind Airport ;
-
-fun RobinsAirForceBaseGAAirport : Ind Airport ;
-
-fun RobinsonArmyAirFieldNationalGuardARAirport : Ind Airport ;
-
-fun RobinsonMunicipalILAirport : Ind Airport ;
-
-fun RobinsonRiverAirport : Ind Airport ;
-
-fun RobinsonRiverNorthernTerritoryAirport : Ind Airport ;
-
-fun RobinvaleVictoriaAirport : Ind Airport ;
-
-fun RoboreAirport : Ind Airport ;
-
-fun RoboroughEnglandAirport : Ind Airport ;
-
-fun RocheHarborWAAirport : Ind Airport ;
-
-fun RochefortAirport : Ind Airport ;
-
-fun RochesterAirport : Ind Airport ;
-
-fun RochesterMunicipalMNAirport : Ind Airport ;
-
-fun RockCountyNEAirport : Ind Airport ;
-
-fun RockHillMunicipalAirportBryantFieldSCAirport : Ind Airport ;
-
-fun RockRapidsMunicipalIAAirport : Ind Airport ;
-
-fun RockSoundEleutheraAirport : Ind Airport ;
-
-fun RockSpringsSweetwaterCountyWYAirport : Ind Airport ;
-
-fun RockcliffeONAirport : Ind Airport ;
-
-fun RockhamptonDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun RockhamptonQueenslandAirport : Ind Airport ;
-
-fun RockleighNJAirport : Ind Airport ;
-
-fun RockwoodMunicipalTNAirport : Ind Airport ;
-
-fun RockyMountWilsonNCAirport : Ind Airport ;
-
-fun RockyMountainHouseABAirport : Ind Airport ;
-
-fun RodezAirport : Ind Airport ;
-
-fun RodriguesIslandAirport : Ind Airport ;
-
-fun RodriguezdeMendezAirport : Ind Airport ;
-
-fun RoebourneWesternAustraliaAirport : Ind Airport ;
-
-fun RogersMunicipalAirportCarterFieldARAirport : Ind Airport ;
-
-fun RokebyQueenslandAirport : Ind Airport ;
-
-fun RokotAirport : Ind Airport ;
-
-fun RollaDowntownMOAirport : Ind Airport ;
-
-fun RollaNationalMOAirport : Ind Airport ;
-
-fun RollangFieldMSAirport : Ind Airport ;
-
-fun RolpaAirport : Ind Airport ;
-
-fun RomaQueenslandAirport : Ind Airport ;
-
-fun RomeStateORAirport : Ind Airport ;
-
-fun RonchideiLegionariTriesteAirport : Ind Airport ;
-
-fun RondonAirport : Ind Airport ;
-
-fun RondonopolisMTAirport : Ind Airport ;
-
-fun RongelapAirport : Ind Airport ;
-
-fun RonnebyAirBaseRonnebyAirport : Ind Airport ;
-
-fun RookeFieldTXAirport : Ind Airport ;
-
-fun RooseveltMunicipalUTAirport : Ind Airport ;
-
-fun RooseveltRoadsNavalStationOfstieFieldRooseveltRoadsAirport : Ind Airport ;
-
-fun RoperBarAirport : Ind Airport ;
-
-fun RoperValleyNorthernTerritoryAirport : Ind Airport ;
-
-fun RoronaAirport : Ind Airport ;
-
-fun RorosAirport : Ind Airport ;
-
-fun RorvikRoervikAirport : Ind Airport ;
-
-fun RosarioAirport : Ind Airport ;
-
-fun RosarioSeaplaneBaseWAAirport : Ind Airport ;
-
-fun RoseauMunicipalMNAirport : Ind Airport ;
-
-fun RoseberthQueenslandAirport : Ind Airport ;
-
-fun RoseburgMunicipalORAirport : Ind Airport ;
-
-fun RosecransMemorialMOAirport : Ind Airport ;
-
-fun RoseiresAirport : Ind Airport ;
-
-fun RosellaPlainsQueenslandAirport : Ind Airport ;
-
-fun RoshPinaAirport : Ind Airport ;
-
-fun RoskildeKobenhavnCopenhagenAirport : Ind Airport ;
-
-fun RossCountyOHAirport : Ind Airport ;
-
-fun RossRiverYTAirport : Ind Airport ;
-
-fun RossvollMoiRanaAirport : Ind Airport ;
-
-fun RostRoestAirport : Ind Airport ;
-
-fun RostockAirport : Ind Airport ;
-
-fun RostovRostovAirport : Ind Airport ;
-
-fun RoswellIndustrialAirCenterNMAirport : Ind Airport ;
-
-fun RotaInternationalRotaIslandAirport : Ind Airport ;
-
-fun RotaNavalStationRotaAirport : Ind Airport ;
-
-fun RothenburgAirport : Ind Airport ;
-
-fun RothesayAirport : Ind Airport ;
-
-fun RotiAirport : Ind Airport ;
-
-fun RotoruaAirport : Ind Airport ;
-
-fun RotterdamAirport : Ind Airport ;
-
-fun RottnestIslandWesternAustraliaAirport : Ind Airport ;
-
-fun RotumaAirport : Ind Airport ;
-
-fun RotundaCAAirport : Ind Airport ;
-
-fun RouenAirport : Ind Airport ;
-
-fun RoundupMTAirport : Ind Airport ;
-
-fun RourkelaAirport : Ind Airport ;
-
-fun RousesPointSeaplaneBaseNYAirport : Ind Airport ;
-
-fun RouynNorandaQCAirport : Ind Airport ;
-
-fun RovaniemiAirport : Ind Airport ;
-
-fun RowanBayAKAirport : Ind Airport ;
-
-fun RowanCountyNCAirport : Ind Airport ;
-
-fun RoxasAirport : Ind Airport ;
-
-fun RoyHillAirport : Ind Airport ;
-
-fun RoyHurdMemorialTXAirport : Ind Airport ;
-
-fun RoyanAirport : Ind Airport ;
-
-fun RubelsantoAirport : Ind Airport ;
-
-fun RubemBertaRSAirport : Ind Airport ;
-
-fun RubyAKAirport : Ind Airport ;
-
-fun RugaoAirport : Ind Airport ;
-
-fun RuhengeriAirport : Ind Airport ;
-
-fun RukumkotAirport : Ind Airport ;
-
-fun RumCayAirport : Ind Airport ;
-
-fun RumginaeAirport : Ind Airport ;
-
-fun RumjartarAirport : Ind Airport ;
-
-fun RunduAirport : Ind Airport ;
-
-fun RupsiAirport : Ind Airport ;
-
-fun RurrenabaqueAirport : Ind Airport ;
-
-fun RurutuTubuaiIslandsAirport : Ind Airport ;
-
-fun RuseAirport : Ind Airport ;
-
-fun RuskCountyWIAirport : Ind Airport ;
-
-fun RussellMunicipalKSAirport : Ind Airport ;
-
-fun RussianMissionAKAirport : Ind Airport ;
-
-fun RustonMunicipalLAAirport : Ind Airport ;
-
-fun RutengAirport : Ind Airport ;
-
-fun RutlandPlainsAirport : Ind Airport ;
-
-fun RutlandStateVTAirport : Ind Airport ;
-
-fun RuzynePrahaPragueAirport : Ind Airport ;
-
-fun RyotsuSadoIsAirport : Ind Airport ;
-
-fun SAngeloTrevisoAirport : Ind Airport ;
-
-fun SEgidioPerugiaAirport : Ind Airport ;
-
-fun SabaAirport : Ind Airport ;
-
-fun SabadellAirport : Ind Airport ;
-
-fun SabahAirport : Ind Airport ;
-
-fun SabanadeLaMarAirport : Ind Airport ;
-
-fun SabanadeTorresAirport : Ind Airport ;
-
-fun SableIslandNSAirport : Ind Airport ;
-
-fun SachigoLakeNTAirport : Ind Airport ;
-
-fun SachsHarbourNTAirport : Ind Airport ;
-
-fun SacramentoExecutiveCAAirport : Ind Airport ;
-
-fun SacramentoMetropolitanCAAirport : Ind Airport ;
-
-fun SadahAirport : Ind Airport ;
-
-fun SaddamInternationalBaghdadAirport : Ind Airport ;
-
-fun SadoShimaAirport : Ind Airport ;
-
-fun SaenzPenaAirport : Ind Airport ;
-
-fun SaffordMunicipalAZAirport : Ind Airport ;
-
-fun SafiAirport : Ind Airport ;
-
-fun SafiaAirport : Ind Airport ;
-
-fun SagaraiAirport : Ind Airport ;
-
-fun SaglekNFAirport : Ind Airport ;
-
-fun SagwonAKAirport : Ind Airport ;
-
-fun Sahabat16Airport : Ind Airport ;
-
-fun SahiwalAirport : Ind Airport ;
-
-fun SaibaiIslandQueenslandAirport : Ind Airport ;
-
-fun SaidPurAirport : Ind Airport ;
-
-fun SaidorAirport : Ind Airport ;
-
-fun SaiduSharifAirport : Ind Airport ;
-
-fun SaintBarthelemyAirport : Ind Airport ;
-
-fun SaintBrieucAirport : Ind Airport ;
-
-fun SaintFrancoisAirport : Ind Airport ;
-
-fun SaintJacquesRennesAirport : Ind Airport ;
-
-fun SaintJohnNBAirport : Ind Airport ;
-
-fun SaintLouisAirport : Ind Airport ;
-
-fun SaintPierreAirport : Ind Airport ;
-
-fun SaintSymphorienToursAirport : Ind Airport ;
-
-fun SaintYanAirport : Ind Airport ;
-
-fun SaipanInternationalSaipanAirport : Ind Airport ;
-
-fun SakonNakhonAirport : Ind Airport ;
-
-fun SalakMarouaAirport : Ind Airport ;
-
-fun SalalahInternationalSalalahAirport : Ind Airport ;
-
-fun SalamancaAirport : Ind Airport ;
-
-fun SalamoAirport : Ind Airport ;
-
-fun SaleRabatAirport : Ind Airport ;
-
-fun SalemLeckroneILAirport : Ind Airport ;
-
-fun SalernoAirport : Ind Airport ;
-
-fun SalgadoFilhoRSAirport : Ind Airport ;
-
-fun SalimaAirport : Ind Airport ;
-
-fun SalinaCruzAirport : Ind Airport ;
-
-fun SalinaGunnisonUTAirport : Ind Airport ;
-
-fun SalinaMunicipalKSAirport : Ind Airport ;
-
-fun SalinasMunicipalCAAirport : Ind Airport ;
-
-fun SalisburyWicomicoCountyRegionalMDAirport : Ind Airport ;
-
-fun SalluitQCAirport : Ind Airport ;
-
-fun SalmonArmAerodromeBCAirport : Ind Airport ;
-
-fun SaltCaySaltCayAirport : Ind Airport ;
-
-fun SaltLakeCityInternationalUTAirport : Ind Airport ;
-
-fun SaltaAirport : Ind Airport ;
-
-fun SaltonSeaCAAirport : Ind Airport ;
-
-fun SalzburgAirport : Ind Airport ;
-
-fun SamRatulangiManadoAirport : Ind Airport ;
-
-fun SamarindaAirport : Ind Airport ;
-
-fun SamarqandSamarkandSamarqandAirport : Ind Airport ;
-
-fun SambavaAirport : Ind Airport ;
-
-fun SambuAirport : Ind Airport ;
-
-fun SamburuAirport : Ind Airport ;
-
-fun SamchokAirport : Ind Airport ;
-
-fun SamedanStMoritzAirport : Ind Airport ;
-
-fun SamosSamosIslandAirport : Ind Airport ;
-
-fun SampitBorneoAirport : Ind Airport ;
-
-fun SamsunAirport : Ind Airport ;
-
-fun SanAndrosAndrosAirport : Ind Airport ;
-
-fun SanAntonioAirport : Ind Airport ;
-
-fun SanAntonioInternationalTXAirport : Ind Airport ;
-
-fun SanBernardinoInternationalCAAirport : Ind Airport ;
-
-fun SanBlasAirport : Ind Airport ;
-
-fun SanBorjaAirport : Ind Airport ;
-
-fun SanCarlosCAAirport : Ind Airport ;
-
-fun SanClementeIslandNavalAuxiliaryLandingFieldFrederickShermanFieldCAAirport : Ind Airport ;
-
-fun SanCristobalAirport : Ind Airport ;
-
-fun SanDiegoInternationalAirportLindberghFieldCAAirport : Ind Airport ;
-
-fun SanEstebanAirport : Ind Airport ;
-
-fun SanFelipeAirportColombia : Ind Airport ;
-
-fun SanFelipeAirportMexico : Ind Airport ;
-
-fun SanFelipeAirportVenezuela : Ind Airport ;
-
-fun SanFelixAirport : Ind Airport ;
-
-fun SanFernandoAirport : Ind Airport ;
-
-fun SanFernandoCAAirport : Ind Airport ;
-
-fun SanFernandodeApuAirport : Ind Airport ;
-
-fun SanFranciscoAirport : Ind Airport ;
-
-fun SanFranciscoInternationalCAAirport : Ind Airport ;
-
-fun SanFrancisquitoAirport : Ind Airport ;
-
-fun SanIgnacioAirport : Ind Airport ;
-
-fun SanIgnaciodeMoxosAirport : Ind Airport ;
-
-fun SanIgnaciodeVLSAirport : Ind Airport ;
-
-fun SanIsidroAirport : Ind Airport ;
-
-fun SanJavierAirport : Ind Airport ;
-
-fun SanJavierMurciaAirport : Ind Airport ;
-
-fun SanJeronimoCordobaAirport : Ind Airport ;
-
-fun SanJoaquinAirport : Ind Airport ;
-
-fun SanJoseAirportBolivia : Ind Airport ;
-
-fun SanJoseAirportPhilippines : Ind Airport ;
-
-fun SanJoseInternationalCAAirport : Ind Airport ;
-
-fun SanJosedelGuaviaroAirport : Ind Airport ;
-
-fun SanJuanAirport : Ind Airport ;
-
-fun SanJuanAirportArgentina : Ind Airport ;
-
-fun SanJuanCountyUTAirport : Ind Airport ;
-
-fun SanJuanUganikSeaplaneBaseAKAirport : Ind Airport ;
-
-fun SanJuandeUrabaAirport : Ind Airport ;
-
-fun SanJuandelCesarAirport : Ind Airport ;
-
-fun SanJuandelaMarAirport : Ind Airport ;
-
-fun SanJulianAirport : Ind Airport ;
-
-fun SanLuisAirport : Ind Airport ;
-
-fun SanLuisObispoCountyAirportMcChesneyFieldCAAirport : Ind Airport ;
-
-fun SanLuisPotosiAirport : Ind Airport ;
-
-fun SanLuisRioColoradoAirport : Ind Airport ;
-
-fun SanLuisdePalenqueAirport : Ind Airport ;
-
-fun SanMarcosAirport : Ind Airport ;
-
-fun SanMarinoAirport : Ind Airport ;
-
-fun SanMiguelAirport : Ind Airport ;
-
-fun SanNicolasdeBariAirport : Ind Airport ;
-
-fun SanPabloAirport : Ind Airport ;
-
-fun SanPabloSevillaAirport : Ind Airport ;
-
-fun SanPedroAirport : Ind Airport ;
-
-fun SanPedroJaguaAirport : Ind Airport ;
-
-fun SanPedrodeUrabaAirport : Ind Airport ;
-
-fun SanQuintinAirport : Ind Airport ;
-
-fun SanRamonAirport : Ind Airport ;
-
-fun SanSalvadorAirport : Ind Airport ;
-
-fun SanSalvadorCockburnTownSanSalvadorAirport : Ind Airport ;
-
-fun SanTomeAirport : Ind Airport ;
-
-fun SanVicentedelCaguanAirport : Ind Airport ;
-
-fun SananaAirport : Ind Airport ;
-
-fun SanandajAirport : Ind Airport ;
-
-fun SanctiSpirituAirport : Ind Airport ;
-
-fun SandPointAKAirport : Ind Airport ;
-
-fun SandakanSabahAirport : Ind Airport ;
-
-fun SandayOrkneyIslandsAirport : Ind Airport ;
-
-fun SandcreekAirport : Ind Airport ;
-
-fun SandersonFieldWAAirport : Ind Airport ;
-
-fun SandowayAirport : Ind Airport ;
-
-fun SandringhamQueenslandAirport : Ind Airport ;
-
-fun SandspitBCAirport : Ind Airport ;
-
-fun SandstoneWesternAustraliaAirport : Ind Airport ;
-
-fun SandwipAirport : Ind Airport ;
-
-fun SandyLakeONAirport : Ind Airport ;
-
-fun SanfordMunicipalMEAirport : Ind Airport ;
-
-fun SangaSangaAirport : Ind Airport ;
-
-fun SangapiAirport : Ind Airport ;
-
-fun SanggataAirport : Ind Airport ;
-
-fun SangirAirport : Ind Airport ;
-
-fun SangleyPointAirport : Ind Airport ;
-
-fun SangsterMontegoBayAirport : Ind Airport ;
-
-fun SaniaRamelTetouanTetuanAirport : Ind Airport ;
-
-fun SanikiluaqNTAirport : Ind Airport ;
-
-fun SansSouciONAirport : Ind Airport ;
-
-fun SantaAnaAirportBolivia : Ind Airport ;
-
-fun SantaAnaAirportColombia : Ind Airport ;
-
-fun SantaAnaSeaplaneBaseSantaAnaAirport : Ind Airport ;
-
-fun SantaBarbaraAirport : Ind Airport ;
-
-fun SantaBarbaraMunicipalCAAirport : Ind Airport ;
-
-fun SantaCarolinaAirport : Ind Airport ;
-
-fun SantaCatalinaAirport : Ind Airport ;
-
-fun SantaCeciliaAirport : Ind Airport ;
-
-fun SantaClaraAirport : Ind Airport ;
-
-fun SantaCruzAirportArgentina : Ind Airport ;
-
-fun SantaCruzAirportBelize : Ind Airport ;
-
-fun SantaCruzAirportBrazil : Ind Airport ;
-
-fun SantaCruzAirportCostaRica : Ind Airport ;
-
-fun SantaCruzAirportSolomonIslands : Ind Airport ;
-
-fun SantaCruzCAAirport : Ind Airport ;
-
-fun SantaCruzIslandCAAirport : Ind Airport ;
-
-fun SantaCruzdelaPalmaAirport : Ind Airport ;
-
-fun SantaElenaAirport : Ind Airport ;
-
-fun SantaFeAirport : Ind Airport ;
-
-fun SantaFeBusStationNMAirport : Ind Airport ;
-
-fun SantaFeCountyMunicipalNMAirport : Ind Airport ;
-
-fun SantaFedoSulAirport : Ind Airport ;
-
-fun SantaInezCAAirport : Ind Airport ;
-
-fun SantaKatarinaAirport : Ind Airport ;
-
-fun SantaLuciaAirport : Ind Airport ;
-
-fun SantaMariaAirportColombia : Ind Airport ;
-
-fun SantaMariaAirportPeru : Ind Airport ;
-
-fun SantaMariaAzoresAirport : Ind Airport ;
-
-fun SantaMariaPublicCAAirport : Ind Airport ;
-
-fun SantaMariaRSAirport : Ind Airport ;
-
-fun SantaMonicaMunicipalCAAirport : Ind Airport ;
-
-fun SantaPaulaCAAirport : Ind Airport ;
-
-fun SantaRosaAirportArgentina : Ind Airport ;
-
-fun SantaRosaAirportBolivia : Ind Airport ;
-
-fun SantaRosaRSAirport : Ind Airport ;
-
-fun SantaRosadeCopanAirport : Ind Airport ;
-
-fun SantaRosaliaAirport : Ind Airport ;
-
-fun SantaRosaliaAirportMexico : Ind Airport ;
-
-fun SantaTeresitaAirport : Ind Airport ;
-
-fun SantaTerezinhaAirport : Ind Airport ;
-
-fun SantanTanjungAirport : Ind Airport ;
-
-fun SantanaRamosAirport : Ind Airport ;
-
-fun SantanadoLivramentoRSAirport : Ind Airport ;
-
-fun SantanderAirport : Ind Airport ;
-
-fun SantaremPAAirport : Ind Airport ;
-
-fun SantiagoSantiagodeCompostelaAirport : Ind Airport ;
-
-fun SantiagodeChileAirport : Ind Airport ;
-
-fun SantiagodelEsteroAirport : Ind Airport ;
-
-fun SantoAndreSPAirport : Ind Airport ;
-
-fun SantoAntaoAirport : Ind Airport ;
-
-fun SantoDomingoAirport : Ind Airport ;
-
-fun SantosSPAirport : Ind Airport ;
-
-fun SanyaAirport : Ind Airport ;
-
-fun SaoBentodoSulSCAirport : Ind Airport ;
-
-fun SaoBernardodoCampoSPAirport : Ind Airport ;
-
-fun SaoCaetanodoSulSPAirport : Ind Airport ;
-
-fun SaoCarlosSPAirport : Ind Airport ;
-
-fun SaoDomingosAirport : Ind Airport ;
-
-fun SaoFelipeAirport : Ind Airport ;
-
-fun SaoFelixAraguaiAirport : Ind Airport ;
-
-fun SaoFelixdeXinguAirport : Ind Airport ;
-
-fun SaoFranciscodoSulSCAirport : Ind Airport ;
-
-fun SaoGabrielAirport : Ind Airport ;
-
-fun SaoGoncaloRJAirport : Ind Airport ;
-
-fun SaoGoncalodoAmaranteRNAirport : Ind Airport ;
-
-fun SaoJoaodelReiMGAirport : Ind Airport ;
-
-fun SaoJorgeAzoresAirport : Ind Airport ;
-
-fun SaoJosedoRioPretoSPAirport : Ind Airport ;
-
-fun SaoJosedoXinguAirport : Ind Airport ;
-
-fun SaoJosedosLamposSPAirport : Ind Airport ;
-
-fun SaoLeopoldoRSAirport : Ind Airport ;
-
-fun SaoLourencoAirport : Ind Airport ;
-
-fun SaoLuisMAAirport : Ind Airport ;
-
-fun SaoMateusESAirport : Ind Airport ;
-
-fun SaoMigueldeAragaoAirport : Ind Airport ;
-
-fun SaoNicolauSaoNicolauAirport : Ind Airport ;
-
-fun SaoTomeSaoTomeAirport : Ind Airport ;
-
-fun SaoVicenteSaoVicenteAirport : Ind Airport ;
-
-fun SapmangaAirport : Ind Airport ;
-
-fun SaposoaAirport : Ind Airport ;
-
-fun SaraAirport : Ind Airport ;
-
-fun SarajevoAirport : Ind Airport ;
-
-fun SaranskMordviniaAirport : Ind Airport ;
-
-fun SarasotaBradentonFLAirport : Ind Airport ;
-
-fun SaratovSaratovAirport : Ind Airport ;
-
-fun SaravaneAirport : Ind Airport ;
-
-fun SaravenaAirport : Ind Airport ;
-
-fun SardehBandAirport : Ind Airport ;
-
-fun SarhAirport : Ind Airport ;
-
-fun SarichefAKAirport : Ind Airport ;
-
-fun SarmiNewGuineaAirport : Ind Airport ;
-
-fun SarniaONAirport : Ind Airport ;
-
-fun SartanejaAirport : Ind Airport ;
-
-fun SaryAirport : Ind Airport ;
-
-fun SaskatoonSKAirport : Ind Airport ;
-
-fun SassandraAirport : Ind Airport ;
-
-fun SasstownAirport : Ind Airport ;
-
-fun SatipoAirport : Ind Airport ;
-
-fun SatnaAirport : Ind Airport ;
-
-fun SatolasLyonAirport : Ind Airport ;
-
-fun SatuMareAirport : Ind Airport ;
-
-fun SaubiAirport : Ind Airport ;
-
-fun SauceViejoSantaFeAirport : Ind Airport ;
-
-fun SaudarkrokurAirport : Ind Airport ;
-
-fun SaufleyFieldNavalOutlyingFieldFLAirport : Ind Airport ;
-
-fun SaulAirport : Ind Airport ;
-
-fun SaultSteMarieMunicipalAirportSandersonFieldMIAirport : Ind Airport ;
-
-fun SaultSteMarieONAirport : Ind Airport ;
-
-fun SaumlakiAirport : Ind Airport ;
-
-fun SaurimoAirport : Ind Airport ;
-
-fun SavannahInternationalGAAirport : Ind Airport ;
-
-fun SavannakhetAirport : Ind Airport ;
-
-fun SaveAirport : Ind Airport ;
-
-fun SavoAirport : Ind Airport ;
-
-fun SavonlinnaAirport : Ind Airport ;
-
-fun SavoongaAKAirport : Ind Airport ;
-
-fun SavusavuAirport : Ind Airport ;
-
-fun SawuAirport : Ind Airport ;
-
-fun SayabouryAirport : Ind Airport ;
-
-fun ScammonBayAKAirport : Ind Airport ;
-
-fun ScamptonRAFStationEnglandAirport : Ind Airport ;
-
-fun ScatsaShetlandIslandsAirport : Ind Airport ;
-
-fun ScheffervilleQCAirport : Ind Airport ;
-
-fun SchenectadyCountyNYAirport : Ind Airport ;
-
-fun SchkeuditzLeipzigAirport : Ind Airport ;
-
-fun SchloredtWYAirport : Ind Airport ;
-
-fun SchoenefeldBerlinAirport : Ind Airport ;
-
-fun SchwechatWienViennaAirport : Ind Airport ;
-
-fun ScillyTrescoAirport : Ind Airport ;
-
-fun SconeNewSouthWalesAirport : Ind Airport ;
-
-fun ScoresbysundAirport : Ind Airport ;
-
-fun ScottCityMunicipalKSAirport : Ind Airport ;
-
-fun ScottsdaleAZAirport : Ind Airport ;
-
-fun ScribnerStateNEAirport : Ind Airport ;
-
-fun SculthorpeAirport : Ind Airport ;
-
-fun SealBayAKAirport : Ind Airport ;
-
-fun SealCoveWaterAerodromeBCAirport : Ind Airport ;
-
-fun SearcyMunicipalARAirport : Ind Airport ;
-
-fun SearleFieldNEAirport : Ind Airport ;
-
-fun SeattleTacomaInternationalWAAirport : Ind Airport ;
-
-fun SebbaAirport : Ind Airport ;
-
-fun SebhaAirport : Ind Airport ;
-
-fun SebringRegionalFLAirport : Ind Airport ;
-
-fun SecheltWaterAerodromeBCAirport : Ind Airport ;
-
-fun SecondaAirport : Ind Airport ;
-
-fun SedomAirport : Ind Airport ;
-
-fun SedonaAZAirport : Ind Airport ;
-
-fun SeebMuscatAirport : Ind Airport ;
-
-fun SeeheimAirport : Ind Airport ;
-
-fun SegouAirport : Ind Airport ;
-
-fun SegrateMilanoAirport : Ind Airport ;
-
-fun SeguelaAirport : Ind Airport ;
-
-fun SehonghongAirport : Ind Airport ;
-
-fun SehuleaAirport : Ind Airport ;
-
-fun SeinajokiAirport : Ind Airport ;
-
-fun SekakesAirport : Ind Airport ;
-
-fun SelawikAKAirport : Ind Airport ;
-
-fun SeldoviaAKAirport : Ind Airport ;
-
-fun SeletarSingaporeAirport : Ind Airport ;
-
-fun SelfridgeAirNationalGuardBaseMIAirport : Ind Airport ;
-
-fun SelfsMSAirport : Ind Airport ;
-
-fun SelibabyAirport : Ind Airport ;
-
-fun SelibiPhikweAirport : Ind Airport ;
-
-fun SembachAirport : Ind Airport ;
-
-fun SemeySemipalatinskSemeyAirport : Ind Airport ;
-
-fun SemongkongAirport : Ind Airport ;
-
-fun SempornaSabahAirport : Ind Airport ;
-
-fun SenaMadureiraACAirport : Ind Airport ;
-
-fun SenangaAirport : Ind Airport ;
-
-fun SendaiHonshuAirport : Ind Airport ;
-
-fun SenggehAirport : Ind Airport ;
-
-fun SenggoAirport : Ind Airport ;
-
-fun SenhordoBonfimBAAirport : Ind Airport ;
-
-fun SenipahAirport : Ind Airport ;
-
-fun SenoAirport : Ind Airport ;
-
-fun SeodeUrgelAirport : Ind Airport ;
-
-fun SeoulAirBaseSeoulAirport : Ind Airport ;
-
-fun SeptIlesQCAirport : Ind Airport ;
-
-fun SepulotAirport : Ind Airport ;
-
-fun SeroneraAirport : Ind Airport ;
-
-fun SerraNorteMTAirport : Ind Airport ;
-
-fun SerraPeladaAirport : Ind Airport ;
-
-fun SerreChevalierAirport : Ind Airport ;
-
-fun SertAirport : Ind Airport ;
-
-fun SertelCiudaddeMexicoMexicoCityAirport : Ind Airport ;
-
-fun SeruiAirport : Ind Airport ;
-
-fun SeshekeAirport : Ind Airport ;
-
-fun SeshutesAirport : Ind Airport ;
-
-fun SetteCamaAirport : Ind Airport ;
-
-fun SewardAKAirport : Ind Airport ;
-
-fun SeychellesInternationalMaheIsAirport : Ind Airport ;
-
-fun ShafterAirportMinterFieldCAAirport : Ind Airport ;
-
-fun ShagelukAKAirport : Ind Airport ;
-
-fun ShakisoAirport : Ind Airport ;
-
-fun ShaktoolikAKAirport : Ind Airport ;
-
-fun ShamattawaMBAirport : Ind Airport ;
-
-fun ShamshernagarAirport : Ind Airport ;
-
-fun ShangriLaOKAirport : Ind Airport ;
-
-fun ShanhaiguanAirport : Ind Airport ;
-
-fun ShannonLimerickAirport : Ind Airport ;
-
-fun ShantouAirport : Ind Airport ;
-
-fun SharjahAirport : Ind Airport ;
-
-fun SharmElSheikhRasNasraniAirport : Ind Airport ;
-
-fun SharpeArmyAirFieldCAAirport : Ind Airport ;
-
-fun SharurahAirport : Ind Airport ;
-
-fun ShashiAirport : Ind Airport ;
-
-fun ShawAirForceBaseSCAirport : Ind Airport ;
-
-fun ShawRiverWesternAustraliaAirport : Ind Airport ;
-
-fun ShawneeMunicipalOKAirport : Ind Airport ;
-
-fun ShayGapWesternAustraliaAirport : Ind Airport ;
-
-fun ShearwaterNSAirport : Ind Airport ;
-
-fun SheboyganCountyMemorialWIAirport : Ind Airport ;
-
-fun SheepMountainAKAirport : Ind Airport ;
-
-fun ShehdiAirport : Ind Airport ;
-
-fun ShelbyMTAirport : Ind Airport ;
-
-fun SheldonPointAKAirport : Ind Airport ;
-
-fun ShemyaAirForceBaseAKAirport : Ind Airport ;
-
-fun ShenandoahValleyRegionalVAAirport : Ind Airport ;
-
-fun ShenchiuAirport : Ind Airport ;
-
-fun ShenyangAirport : Ind Airport ;
-
-fun SheperdBayNTAirport : Ind Airport ;
-
-fun SheppardAirForceBaseWichitaFallsMunicipalTXAirport : Ind Airport ;
-
-fun SheppartonVictoriaAirport : Ind Airport ;
-
-fun SherWoodMTAirport : Ind Airport ;
-
-fun SherbrookeQCAirport : Ind Airport ;
-
-fun Sheremetyevo2MoscowAirport : Ind Airport ;
-
-fun SheridanCountyWYAirport : Ind Airport ;
-
-fun ShetlandIslandsShetlandIslandsAirport : Ind Airport ;
-
-fun ShijiazhuangAirport : Ind Airport ;
-
-fun ShillongAirport : Ind Airport ;
-
-fun ShiloMBAirport : Ind Airport ;
-
-fun ShimojishimaAirport : Ind Airport ;
-
-fun ShinChuAirport : Ind Airport ;
-
-fun ShinglePointYTAirport : Ind Airport ;
-
-fun ShinyangaAirport : Ind Airport ;
-
-fun ShirazAirport : Ind Airport ;
-
-fun ShishmarefAKAirport : Ind Airport ;
-
-fun ShivelyFieldWYAirport : Ind Airport ;
-
-fun ShizuokaCityAirport : Ind Airport ;
-
-fun SholapurAirport : Ind Airport ;
-
-fun ShonaiAirport : Ind Airport ;
-
-fun ShowLowMunicipalAZAirport : Ind Airport ;
-
-fun ShreveportRegionalLAAirport : Ind Airport ;
-
-fun ShungnakAKAirport : Ind Airport ;
-
-fun SialkotAirport : Ind Airport ;
-
-fun SialumAirport : Ind Airport ;
-
-fun SiassiAirport : Ind Airport ;
-
-fun SibasaAirport : Ind Airport ;
-
-fun SibiAirport : Ind Airport ;
-
-fun SibisaAirport : Ind Airport ;
-
-fun SibitiAirport : Ind Airport ;
-
-fun SibiuAirport : Ind Airport ;
-
-fun SibuSarawakAirport : Ind Airport ;
-
-fun SidiIfniAirport : Ind Airport ;
-
-fun SidiMahdiTouggourtAirport : Ind Airport ;
-
-fun SidneyMunicipalNEAirport : Ind Airport ;
-
-fun SidneyMunicipalNYAirport : Ind Airport ;
-
-fun SidneyRichlandMunicipalMTAirport : Ind Airport ;
-
-fun SiegenAirport : Ind Airport ;
-
-fun SienaAirport : Ind Airport ;
-
-fun SierraBlancaRegionalNMAirport : Ind Airport ;
-
-fun SierraGrandeAirport : Ind Airport ;
-
-fun SierraLeoneAirport : Ind Airport ;
-
-fun SiglufjordurAirport : Ind Airport ;
-
-fun SigonellaAirport : Ind Airport ;
-
-fun SikestonMemorialMunicipalMOAirport : Ind Airport ;
-
-fun SilaAirport : Ind Airport ;
-
-fun SilgadiDotiAirport : Ind Airport ;
-
-fun SilistraAirport : Ind Airport ;
-
-fun SiljanMoraAirport : Ind Airport ;
-
-fun SilverCreekAirport : Ind Airport ;
-
-fun SilverPlainsQueenslandAirport : Ind Airport ;
-
-fun SimAirport : Ind Airport ;
-
-fun SimanggangAirport : Ind Airport ;
-
-fun SimaoAirport : Ind Airport ;
-
-fun SimbaiAirport : Ind Airport ;
-
-fun SimbirskUlyanovskUlyanovskAirport : Ind Airport ;
-
-fun SimentiAirport : Ind Airport ;
-
-fun SimferopolAdygeaAirport : Ind Airport ;
-
-fun SimlaAirport : Ind Airport ;
-
-fun SimmonsMIAirport : Ind Airport ;
-
-fun SimonBolivarSantaMartaAirport : Ind Airport ;
-
-fun SimpangTigaPekanbaruAirport : Ind Airport ;
-
-fun SimraAirport : Ind Airport ;
-
-fun SinesAirport : Ind Airport ;
-
-fun SingauaAirport : Ind Airport ;
-
-fun SingletonNewSouthWalesAirport : Ind Airport ;
-
-fun SinoeAirport : Ind Airport ;
-
-fun SinopArmyAirFieldSinopAirport : Ind Airport ;
-
-fun SinopMTAirport : Ind Airport ;
-
-fun SintangBorneoAirport : Ind Airport ;
-
-fun SionSittenAirport : Ind Airport ;
-
-fun SiouxGatewayIAAirport : Ind Airport ;
-
-fun SiouxLookoutONAirport : Ind Airport ;
-
-fun SipitangAirport : Ind Airport ;
-
-fun SiporaAirport : Ind Airport ;
-
-fun SirSeewoosagurRamgoolamMauritiusAirport : Ind Airport ;
-
-fun SirajganjAirport : Ind Airport ;
-
-fun SirkhetAirport : Ind Airport ;
-
-fun SirriIslandAirport : Ind Airport ;
-
-fun SishenAirport : Ind Airport ;
-
-fun SiskiyouCountyCAAirport : Ind Airport ;
-
-fun SissanoAirport : Ind Airport ;
-
-fun SitiawanAirport : Ind Airport ;
-
-fun SitkaAKAirport : Ind Airport ;
-
-fun SitkinakAKAirport : Ind Airport ;
-
-fun SiunaAirport : Ind Airport ;
-
-fun SivasAirport : Ind Airport ;
-
-fun SiwaAirport : Ind Airport ;
-
-fun SiweaAirport : Ind Airport ;
-
-fun SkagenStokmarknesAirport : Ind Airport ;
-
-fun SkagwayAKAirport : Ind Airport ;
-
-fun SkanesMonastirAirport : Ind Airport ;
-
-fun SkeldonAirport : Ind Airport ;
-
-fun SkellefteaAirport : Ind Airport ;
-
-fun SkikdaAirport : Ind Airport ;
-
-fun SkirosAirport : Ind Airport ;
-
-fun SkopjeAirport : Ind Airport ;
-
-fun SkukuzaAirport : Ind Airport ;
-
-fun SkulteRigaAirport : Ind Airport ;
-
-fun SkwentnaAKAirport : Ind Airport ;
-
-fun SlateIslandONAirport : Ind Airport ;
-
-fun SlaveLakeABAirport : Ind Airport ;
-
-fun SleetmuteAKAirport : Ind Airport ;
-
-fun SliacAirport : Ind Airport ;
-
-fun SligoAirport : Ind Airport ;
-
-fun SlupskAirport : Ind Airport ;
-
-fun SmaraAirport : Ind Airport ;
-
-fun SmigginHolesNewSouthWalesAirport : Ind Airport ;
-
-fun SmithCoveAKAirport : Ind Airport ;
-
-fun SmithFallsMontagueONAirport : Ind Airport ;
-
-fun SmithFieldARAirport : Ind Airport ;
-
-fun SmithFieldINAirport : Ind Airport ;
-
-fun SmithFieldKSAirport : Ind Airport ;
-
-fun SmithPointNorthernTerritoryAirport : Ind Airport ;
-
-fun SmithersBCAirport : Ind Airport ;
-
-fun SmithtonTasmaniaAirport : Ind Airport ;
-
-fun SmolenskSmolenskAirport : Ind Airport ;
-
-fun SmyrnaTNAirport : Ind Airport ;
-
-fun SnakeBayNorthernTerritoryAirport : Ind Airport ;
-
-fun SnakeRiverYTAirport : Ind Airport ;
-
-fun SnohomishCountyAirportPaineFieldWAAirport : Ind Airport ;
-
-fun SnowdriftAerodromeNTAirport : Ind Airport ;
-
-fun SobralCEAirport : Ind Airport ;
-
-fun SocTrangAirport : Ind Airport ;
-
-fun SocorroMunicipalNMAirport : Ind Airport ;
-
-fun SocotraAirport : Ind Airport ;
-
-fun SodankylaAirport : Ind Airport ;
-
-fun SodduAirport : Ind Airport ;
-
-fun SoderhamnAirport : Ind Airport ;
-
-fun SoerkjosenSorkjosenAirport : Ind Airport ;
-
-fun SogamosoAirport : Ind Airport ;
-
-fun SokchoAirport : Ind Airport ;
-
-fun SokhumiAbkhaziaAirport : Ind Airport ;
-
-fun SokotoAirport : Ind Airport ;
-
-fun SolaAirport : Ind Airport ;
-
-fun SolaStavangerAirport : Ind Airport ;
-
-fun SolanoAirport : Ind Airport ;
-
-fun SoldotnaAKAirport : Ind Airport ;
-
-fun SolitaAirport : Ind Airport ;
-
-fun SolomonStateFieldAKAirport : Ind Airport ;
-
-fun SolonSpringsMunicipalWIAirport : Ind Airport ;
-
-fun SolweziAirport : Ind Airport ;
-
-fun SomersetPulaskiCountyAirportJTWilsonFieldKYAirport : Ind Airport ;
-
-fun SonderborgSoenderborgAirport : Ind Airport ;
-
-fun SongeaAirport : Ind Airport ;
-
-fun SongkhlaAirport : Ind Airport ;
-
-fun SonomaCountyCAAirport : Ind Airport ;
-
-fun SopuAirport : Ind Airport ;
-
-fun SoroakoAirport : Ind Airport ;
-
-fun SorocabaAirport : Ind Airport ;
-
-fun SorotiAirport : Ind Airport ;
-
-fun SorrentoAirport : Ind Airport ;
-
-fun SorstukkenStordAirport : Ind Airport ;
-
-fun SouankeAirport : Ind Airport ;
-
-fun SousseAirport : Ind Airport ;
-
-fun SouthCaicosIsAirport : Ind Airport ;
-
-fun SouthGalwayAirport : Ind Airport ;
-
-fun SouthIndianLakeMBAirport : Ind Airport ;
-
-fun SouthJerseyRegionalNJAirport : Ind Airport ;
-
-fun SouthMolleIslandQueenslandAirport : Ind Airport ;
-
-fun SouthNakneknr2AKAirport : Ind Airport ;
-
-fun SouthTroutLakeONAirport : Ind Airport ;
-
-fun SouthWestBayAirport : Ind Airport ;
-
-fun SouthWeymouthNavalAirStationSheaFieldMAAirport : Ind Airport ;
-
-fun SouthendEnglandAirport : Ind Airport ;
-
-fun SouthernCrossWesternAustraliaAirport : Ind Airport ;
-
-fun SouthernIllinoisILAirport : Ind Airport ;
-
-fun SouthportMBAirport : Ind Airport ;
-
-fun SouthwestFloridaRegionalFLAirport : Ind Airport ;
-
-fun SoyoAirport : Ind Airport ;
-
-fun SpaceCenterExecutiveFLAirport : Ind Airport ;
-
-fun SpacelandHoustonGulfTXAirport : Ind Airport ;
-
-fun SpangdahlemAirBaseSpangdahlemAirport : Ind Airport ;
-
-fun SpanishWellsAirport : Ind Airport ;
-
-fun SparrevohnLRRSAKAirport : Ind Airport ;
-
-fun SpartaAirport : Ind Airport ;
-
-fun SpartaCommunityAirportHunterFieldILAirport : Ind Airport ;
-
-fun SpartanburgDowntownMemorialSCAirport : Ind Airport ;
-
-fun SpekeEnglandAirport : Ind Airport ;
-
-fun SpenceBayNTAirport : Ind Airport ;
-
-fun SpenceGAAirport : Ind Airport ;
-
-fun SpencerMunicipalIAAirport : Ind Airport ;
-
-fun SpiezAirport : Ind Airport ;
-
-fun SpilveRigaAirport : Ind Airport ;
-
-fun SpiritofStLouisMOAirport : Ind Airport ;
-
-fun SplaneMemorialPAAirport : Ind Airport ;
-
-fun SpriggsPayneMonroviaAirport : Ind Airport ;
-
-fun SpringCreekQueenslandAirport : Ind Airport ;
-
-fun SpringIslandBCAirport : Ind Airport ;
-
-fun SpringbokAirport : Ind Airport ;
-
-fun SpringdaleMunicipalARAirport : Ind Airport ;
-
-fun SpringfieldBeckleyMunicipalOHAirport : Ind Airport ;
-
-fun SpringfieldMAAirport : Ind Airport ;
-
-fun SpringfieldRegionalMOAirport : Ind Airport ;
-
-fun SpringvaleWesternAustraliaAirport : Ind Airport ;
-
-fun SrinagarAirport : Ind Airport ;
-
-fun StAnthonyNFAirport : Ind Airport ;
-
-fun StAugustineFLAirport : Ind Airport ;
-
-fun StCatharinesONAirport : Ind Airport ;
-
-fun StClairCountyALAirport : Ind Airport ;
-
-fun StClairCountyInternationalMIAirport : Ind Airport ;
-
-fun StCloudMunicipalMNAirport : Ind Airport ;
-
-fun StCrepinAirport : Ind Airport ;
-
-fun StGeorgeAKAirport : Ind Airport ;
-
-fun StGeorgeMunicipalUTAirport : Ind Airport ;
-
-fun StGeorgeOyapockAirport : Ind Airport ;
-
-fun StGeorgeQueenslandAirport : Ind Airport ;
-
-fun StHonoreQCAirport : Ind Airport ;
-
-fun StHubertQCAirport : Ind Airport ;
-
-fun StJeanQCAirport : Ind Airport ;
-
-fun StJohnsIndustrialAirParkAZAirport : Ind Airport ;
-
-fun StJohnsNFAirport : Ind Airport ;
-
-fun StJustEnglandAirport : Ind Airport ;
-
-fun StLandryParishAirportAhartFieldLAAirport : Ind Airport ;
-
-fun StLaurentduMaroniAirport : Ind Airport ;
-
-fun StLeonardNBAirport : Ind Airport ;
-
-fun StMaartenAirport : Ind Airport ;
-
-fun StMaartenMarigotAirport : Ind Airport ;
-
-fun StMaloAirport : Ind Airport ;
-
-fun StMarysCountyMDAirport : Ind Airport ;
-
-fun StMarysMDAirport : Ind Airport ;
-
-fun StMarysMunicipalPAAirport : Ind Airport ;
-
-fun StMawganNewquayAirport : Ind Airport ;
-
-fun StMichaelAKAirport : Ind Airport ;
-
-fun StPaulAerodromeABAirport : Ind Airport ;
-
-fun StPaulDowntownHolmanFieldMNAirport : Ind Airport ;
-
-fun StPaulIslandAKAirport : Ind Airport ;
-
-fun StPaulsMissionQueenslandAirport : Ind Airport ;
-
-fun StPeterAirport : Ind Airport ;
-
-fun StPetersburgClearwaterInternationalFLAirport : Ind Airport ;
-
-fun StThomasONAirport : Ind Airport ;
-
-fun StandifordFieldKYAirport : Ind Airport ;
-
-fun StanielCayAirport : Ind Airport ;
-
-fun StanstedLondonAirport : Ind Airport ;
-
-fun StanthorpeQueenslandAirport : Ind Airport ;
-
-fun StantonAirfieldMNAirport : Ind Airport ;
-
-fun StaraZagoraAirport : Ind Airport ;
-
-fun StarckeQueenslandAirport : Ind Airport ;
-
-fun StarkeCountyINAirport : Ind Airport ;
-
-fun StateCollegePAAirport : Ind Airport ;
-
-fun StatesboroMunicipalGAAirport : Ind Airport ;
-
-fun StatesvilleMunicipalNCAirport : Ind Airport ;
-
-fun StatwagAirport : Ind Airport ;
-
-fun StauningAirport : Ind Airport ;
-
-fun StavertonEnglandAirport : Ind Airport ;
-
-fun StavropolStavropolAirport : Ind Airport ;
-
-fun StawellVictoriaAirport : Ind Airport ;
-
-fun SteAnnedesMontsQCAirport : Ind Airport ;
-
-fun SteMarieAirport : Ind Airport ;
-
-fun SteamboatBaySeaplaneBaseAKAirport : Ind Airport ;
-
-fun SteamboatSpringsBobAdamsFieldSTOLCOAirport : Ind Airport ;
-
-fun StebbinsAKAirport : Ind Airport ;
-
-fun SteenkoolAirport : Ind Airport ;
-
-fun StellaMarisLongAirport : Ind Airport ;
-
-fun StellarAirparkAZAirport : Ind Airport ;
-
-fun StephenIslandQueenslandAirport : Ind Airport ;
-
-fun StephenvilleNFAirport : Ind Airport ;
-
-fun StevensFieldCOAirport : Ind Airport ;
-
-fun StevensPointMunicipalWIAirport : Ind Airport ;
-
-fun StevensVillageAKAirport : Ind Airport ;
-
-fun StewartBCAirport : Ind Airport ;
-
-fun StewartInternationalNYAirport : Ind Airport ;
-
-fun StewartIslandAirport : Ind Airport ;
-
-fun StillwaterMunicipalOKAirport : Ind Airport ;
-
-fun StinsonMunicipalTXAirport : Ind Airport ;
-
-fun StockholmAirport : Ind Airport ;
-
-fun StocktonMetropolitanCAAirport : Ind Airport ;
-
-fun StoelmanseilandAirport : Ind Airport ;
-
-fun StokkaSandnessjoenAirport : Ind Airport ;
-
-fun StonyRapidsSKAirport : Ind Airport ;
-
-fun StonyRiver2AKAirport : Ind Airport ;
-
-fun StormLakeMunicipalIAAirport : Ind Airport ;
-
-fun StornwayAirport : Ind Airport ;
-
-fun StorumanAirport : Ind Airport ;
-
-fun StradbrokeIslandQueenslandAirport : Ind Airport ;
-
-fun StrahanTasmaniaAirport : Ind Airport ;
-
-fun StromfjordAirBaseSondreStromfjordKangerlussuaqAirport : Ind Airport ;
-
-fun StronsayAirport : Ind Airport ;
-
-fun StrotherFieldKSAirport : Ind Airport ;
-
-fun StroudMunicipalOKAirport : Ind Airport ;
-
-fun StrugaAirport : Ind Airport ;
-
-fun StrzhewoiAirport : Ind Airport ;
-
-fun StuartIslandAirparkWAAirport : Ind Airport ;
-
-fun StuartIslandWaterAerodromeBCAirport : Ind Airport ;
-
-fun SturdeeBCAirport : Ind Airport ;
-
-fun SturtCreekWesternAustraliaAirport : Ind Airport ;
-
-fun SturupMalmoAirport : Ind Airport ;
-
-fun StuttgartMunicipalARAirport : Ind Airport ;
-
-fun StykkisholmurAirport : Ind Airport ;
-
-fun SuWonCityAirport : Ind Airport ;
-
-fun SuaiAirport : Ind Airport ;
-
-fun SuavanaoAirport : Ind Airport ;
-
-fun SuceavaAirport : Ind Airport ;
-
-fun SucuaAirport : Ind Airport ;
-
-fun SudburyONAirport : Ind Airport ;
-
-fun SudureyriAirport : Ind Airport ;
-
-fun SueIslandQueenslandAirport : Ind Airport ;
-
-fun SuffieldABAirport : Ind Airport ;
-
-fun SugapaAirport : Ind Airport ;
-
-fun SugarLandMunicipalAirportHullFieldTXAirport : Ind Airport ;
-
-fun SuiAirport : Ind Airport ;
-
-fun SuiaMissuMTAirport : Ind Airport ;
-
-fun SukiAirport : Ind Airport ;
-
-fun SukkurAirport : Ind Airport ;
-
-fun SulacoAirport : Ind Airport ;
-
-fun SulayelAirport : Ind Airport ;
-
-fun SuleAirport : Ind Airport ;
-
-fun SullivanBayWaterAerodromeBCAirport : Ind Airport ;
-
-fun SullivanCountyINAirport : Ind Airport ;
-
-fun SullivanCountyInternationalNYAirport : Ind Airport ;
-
-fun SullivanRegionalMOAirport : Ind Airport ;
-
-fun SulphurSpringsMunicipalTXAirport : Ind Airport ;
-
-fun SultanMahmudBadaruddinIIPalembangAirport : Ind Airport ;
-
-fun SumbawaBesarSumbawaAirport : Ind Airport ;
-
-fun SumbawangaAirport : Ind Airport ;
-
-fun SumbeAirport : Ind Airport ;
-
-fun SumburghShetlandIslandsAirport : Ind Airport ;
-
-fun SumenepAirport : Ind Airport ;
-
-fun SummerBeaverAirport : Ind Airport ;
-
-fun SummerdaleNavalOutlyingFieldALAirport : Ind Airport ;
-
-fun SummersidePEAirport : Ind Airport ;
-
-fun SummitAKAirport : Ind Airport ;
-
-fun SumterMunicipalSCAirport : Ind Airport ;
-
-fun SumySumyAirport : Ind Airport ;
-
-fun SunMoonLakeAirport : Ind Airport ;
-
-fun SunRiverAirport : Ind Airport ;
-
-fun SungShanTaipeiAirport : Ind Airport ;
-
-fun SungalPakningAirport : Ind Airport ;
-
-fun SungeiTiangAirport : Ind Airport ;
-
-fun SunyaniAirport : Ind Airport ;
-
-fun SupadioPontianakAirport : Ind Airport ;
-
-fun SurAirport : Ind Airport ;
-
-fun SuratAirport : Ind Airport ;
-
-fun SuratThaniAirport : Ind Airport ;
-
-fun SurfdaleAirport : Ind Airport ;
-
-fun SurfersParadiseQueenslandAirport : Ind Airport ;
-
-fun SurgutTyumenAirport : Ind Airport ;
-
-fun SuriaAirport : Ind Airport ;
-
-fun SurigaoAirport : Ind Airport ;
-
-fun SurseeAirport : Ind Airport ;
-
-fun SurtranBuildingMcDavidPontiacCompanyHeliportTXAirport : Ind Airport ;
-
-fun SusanvilleMunicipalCAAirport : Ind Airport ;
-
-fun SuzhouAirport : Ind Airport ;
-
-fun SvartnesVardoVardoeAirport : Ind Airport ;
-
-fun SvayRiengAirport : Ind Airport ;
-
-fun SwakopmundAirport : Ind Airport ;
-
-fun SwanHillVictoriaAirport : Ind Airport ;
-
-fun SwanRiverMBAirport : Ind Airport ;
-
-fun SwanseaWalesAirport : Ind Airport ;
-
-fun SwiftCurrentSKAirport : Ind Airport ;
-
-fun SwindonAirport : Ind Airport ;
-
-fun SydneyNSAirport : Ind Airport ;
-
-fun SyktyvkarKomiAirport : Ind Airport ;
-
-fun SylvesterGAAirport : Ind Airport ;
-
-fun SyracuseHancockInternationalNYAirport : Ind Airport ;
-
-fun TabarkaAirport : Ind Airport ;
-
-fun TabatingaAMAirport : Ind Airport ;
-
-fun TabibugaAirport : Ind Airport ;
-
-fun TabingPadangAirport : Ind Airport ;
-
-fun TabiteueaNorthAirport : Ind Airport ;
-
-fun TabiteueaSouthAirport : Ind Airport ;
-
-fun TablasAirport : Ind Airport ;
-
-fun TableRockHeliportMOAirport : Ind Airport ;
-
-fun TablelandAirport : Ind Airport ;
-
-fun TablondeTamaraAirport : Ind Airport ;
-
-fun TaboraAirport : Ind Airport ;
-
-fun TabouAirport : Ind Airport ;
-
-fun TabrizAirport : Ind Airport ;
-
-fun TabubilAirport : Ind Airport ;
-
-fun TabukAirport : Ind Airport ;
-
-fun TachilekAirport : Ind Airport ;
-
-fun TaclobanAirport : Ind Airport ;
-
-fun TacomaNarrowsWAAirport : Ind Airport ;
-
-fun TacuaremboAirport : Ind Airport ;
-
-fun TadjiAirport : Ind Airport ;
-
-fun TadjouraAirport : Ind Airport ;
-
-fun TadouleLakeMBAirport : Ind Airport ;
-
-fun TadouleLakeWaterAerodromeMBAirport : Ind Airport ;
-
-fun TaeguAirport : Ind Airport ;
-
-fun TaejonAirport : Ind Airport ;
-
-fun TafaroviAirport : Ind Airport ;
-
-fun TaftanAirport : Ind Airport ;
-
-fun TagbilaranAirport : Ind Airport ;
-
-fun TaguacAirport : Ind Airport ;
-
-fun TagulaAirport : Ind Airport ;
-
-fun TaharoaAirport : Ind Airport ;
-
-fun TahouaAirport : Ind Airport ;
-
-fun TahsisWaterAerodromeBCAirport : Ind Airport ;
-
-fun TaichungAirport : Ind Airport ;
-
-fun TaifAirport : Ind Airport ;
-
-fun TainanAirport : Ind Airport ;
-
-fun TaipingAirport : Ind Airport ;
-
-fun TaishaAirport : Ind Airport ;
-
-fun TaitungAirport : Ind Airport ;
-
-fun TakAirport : Ind Airport ;
-
-fun TakamatsuAirport : Ind Airport ;
-
-fun TakapotoAirport : Ind Airport ;
-
-fun TakaroaAirport : Ind Airport ;
-
-fun TakhliAirport : Ind Airport ;
-
-fun TakoradiAirport : Ind Airport ;
-
-fun TakotnaAKAirport : Ind Airport ;
-
-fun TakuLodgeSeaplaneBaseAKAirport : Ind Airport ;
-
-fun TalaseaAirport : Ind Airport ;
-
-fun TalcaAirport : Ind Airport ;
-
-fun TaldyqorghanTaldyKurganTaldyqorghanAirport : Ind Airport ;
-
-fun TaliabuAirport : Ind Airport ;
-
-fun TalkeetnaAKAirport : Ind Airport ;
-
-fun TalknafjordurAirport : Ind Airport ;
-
-fun TallahasseeRegionalFLAirport : Ind Airport ;
-
-fun TaltalAirport : Ind Airport ;
-
-fun TaluqanAirport : Ind Airport ;
-
-fun TamaleAirport : Ind Airport ;
-
-fun TamanaAirport : Ind Airport ;
-
-fun TamanrassetAirport : Ind Airport ;
-
-fun TamarindoAirport : Ind Airport ;
-
-fun TamataveAirport : Ind Airport ;
-
-fun TambacoundaAirport : Ind Airport ;
-
-fun TambaoAirport : Ind Airport ;
-
-fun TambohoranoAirport : Ind Airport ;
-
-fun TambolakaAirport : Ind Airport ;
-
-fun TamborAirport : Ind Airport ;
-
-fun TambovTambovAirport : Ind Airport ;
-
-fun TamchakettAirport : Ind Airport ;
-
-fun TameAirport : Ind Airport ;
-
-fun TamkyAirport : Ind Airport ;
-
-fun TampaInternationalFLAirport : Ind Airport ;
-
-fun TamuinAirport : Ind Airport ;
-
-fun TamworthNewSouthWalesAirport : Ind Airport ;
-
-fun TanSonNhutInternationalHoChiMinhCitySaigonAirport : Ind Airport ;
-
-fun TanacrossAKAirport : Ind Airport ;
-
-fun TanahGrogotAirport : Ind Airport ;
-
-fun TanahmerahAirport : Ind Airport ;
-
-fun TanalianAKAirport : Ind Airport ;
-
-fun TanandavaAirport : Ind Airport ;
-
-fun TanatorajaAirport : Ind Airport ;
-
-fun TanbarQueenslandAirport : Ind Airport ;
-
-fun TandagAirport : Ind Airport ;
-
-fun TandilAirport : Ind Airport ;
-
-fun TanegashimaAirport : Ind Airport ;
-
-fun TangaAirport : Ind Airport ;
-
-fun TangaIslandAirport : Ind Airport ;
-
-fun TangaloomaAirport : Ind Airport ;
-
-fun TanjungAirport : Ind Airport ;
-
-fun TanjungSelorBorneoAirport : Ind Airport ;
-
-fun TannaIslandAirport : Ind Airport ;
-
-fun TaosMunicipalNMAirport : Ind Airport ;
-
-fun TapachulaAirport : Ind Airport ;
-
-fun TapaktuanAirport : Ind Airport ;
-
-fun TapetaAirport : Ind Airport ;
-
-fun TaplejungAirport : Ind Airport ;
-
-fun TaraQueenslandAirport : Ind Airport ;
-
-fun TarakanBorneoAirport : Ind Airport ;
-
-fun TarakbitsAirport : Ind Airport ;
-
-fun TaramajimaAirport : Ind Airport ;
-
-fun TarantoAirport : Ind Airport ;
-
-fun TarapacaAirport : Ind Airport ;
-
-fun TarapainaAirport : Ind Airport ;
-
-fun TarapoaAirport : Ind Airport ;
-
-fun TarapotoAirport : Ind Airport ;
-
-fun TarauacaACAirport : Ind Airport ;
-
-fun TarbelaAirport : Ind Airport ;
-
-fun TarbesAirport : Ind Airport ;
-
-fun TarcoolaSouthAustraliaAirport : Ind Airport ;
-
-fun TareeNewSouthWalesAirport : Ind Airport ;
-
-fun TarfayaAirport : Ind Airport ;
-
-fun TargovishteAirport : Ind Airport ;
-
-fun TariAirport : Ind Airport ;
-
-fun TaroomQueenslandAirport : Ind Airport ;
-
-fun TartuAirport : Ind Airport ;
-
-fun TasikmalayaAirport : Ind Airport ;
-
-fun TasiujuaqQCAirport : Ind Airport ;
-
-fun TaskulAirport : Ind Airport ;
-
-fun TasuWaterAerodromeBCAirport : Ind Airport ;
-
-fun TatakotoAirport : Ind Airport ;
-
-fun TatalinaLRRSAKAirport : Ind Airport ;
-
-fun TatitlekSeaplaneBaseAKAirport : Ind Airport ;
-
-fun TatryPopradAirport : Ind Airport ;
-
-fun TauSeaplaneBaseTauIslandAirport : Ind Airport ;
-
-fun TaupoAirport : Ind Airport ;
-
-fun TauramenaAirport : Ind Airport ;
-
-fun TaurangaAirport : Ind Airport ;
-
-fun TautaAirport : Ind Airport ;
-
-fun TaveuniAirport : Ind Airport ;
-
-fun TavoyAirport : Ind Airport ;
-
-fun TawaTibetAirport : Ind Airport ;
-
-fun TawauSabahAirport : Ind Airport ;
-
-fun TawiTawiAirport : Ind Airport ;
-
-fun TaylorAKAirport : Ind Airport ;
-
-fun TaylorAZAirport : Ind Airport ;
-
-fun TaylorCountyWIAirport : Ind Airport ;
-
-fun TchibangaAirport : Ind Airport ;
-
-fun TchienAirport : Ind Airport ;
-
-fun TeAnauAirport : Ind Airport ;
-
-fun TebessaAirport : Ind Airport ;
-
-fun TeesSideAirport : Ind Airport ;
-
-fun TefeMAAirport : Ind Airport ;
-
-fun TegelBerlinAirport : Ind Airport ;
-
-fun TehachapiMunicipalCAAirport : Ind Airport ;
-
-fun TehuacanAirport : Ind Airport ;
-
-fun TekaduAirport : Ind Airport ;
-
-fun TekamahMunicipalNEAirport : Ind Airport ;
-
-fun TekinAirport : Ind Airport ;
-
-fun TelAvivAirport : Ind Airport ;
-
-fun TelaAirport : Ind Airport ;
-
-fun TelefominAirport : Ind Airport ;
-
-fun TelegraphCreekAerodromeBCAirport : Ind Airport ;
-
-fun TelemacoBorbaPRAirport : Ind Airport ;
-
-fun TelfairWheelerGAAirport : Ind Airport ;
-
-fun TelferWesternAustraliaAirport : Ind Airport ;
-
-fun TelidaAKAirport : Ind Airport ;
-
-fun TellerAKAirport : Ind Airport ;
-
-fun TellurideCOAirport : Ind Airport ;
-
-fun TellurideRegionalCOAirport : Ind Airport ;
-
-fun TelupidAirport : Ind Airport ;
-
-fun TeminabuanAirport : Ind Airport ;
-
-fun TemoraNewSouthWalesAirport : Ind Airport ;
-
-fun TempelhofBerlinAirport : Ind Airport ;
-
-fun TemucoAirport : Ind Airport ;
-
-fun TenakeeAirForceBaseAKAirport : Ind Airport ;
-
-fun TenerifeCanaryIslandsAirport : Ind Airport ;
-
-fun TengahRAFStationTengahAirport : Ind Airport ;
-
-fun TenienteBenMatienzTucumanSanMiguelTucumanAirport : Ind Airport ;
-
-fun TenienteJorgeHenrichArauzTrinidadAirport : Ind Airport ;
-
-fun TenkodogoAirport : Ind Airport ;
-
-fun TennantCreekNorthernTerritoryAirport : Ind Airport ;
-
-fun TeofiloOtoniMGAirport : Ind Airport ;
-
-fun TepicAirport : Ind Airport ;
-
-fun TeptepAirport : Ind Airport ;
-
-fun TerapoAirport : Ind Airport ;
-
-fun TeresinaPIAirport : Ind Airport ;
-
-fun TeresopolisRJAirport : Ind Airport ;
-
-fun TermizTermesSurkhondaryoAirport : Ind Airport ;
-
-fun TernateAirport : Ind Airport ;
-
-fun TernopilTernopolTernopilAirport : Ind Airport ;
-
-fun TerraceBCAirport : Ind Airport ;
-
-fun TerraceBayONAirport : Ind Airport ;
-
-fun TerrellMunicipalTXAirport : Ind Airport ;
-
-fun TeslinYTAirport : Ind Airport ;
-
-fun TesseneiAirport : Ind Airport ;
-
-fun TeteAirport : Ind Airport ;
-
-fun TetealaBaleineWaterAerodromeQCAirport : Ind Airport ;
-
-fun TetebediAirport : Ind Airport ;
-
-fun TeterboroNJAirport : Ind Airport ;
-
-fun TetiaroaIslandAirport : Ind Airport ;
-
-fun TetlinAKAirport : Ind Airport ;
-
-fun TeugeDeventerAirport : Ind Airport ;
-
-fun TewantinQueenslandAirport : Ind Airport ;
-
-fun TexarkanaRegionalAirportWebbFieldARAirport : Ind Airport ;
-
-fun TezpurAirport : Ind Airport ;
-
-fun TezuAirport : Ind Airport ;
-
-fun ThabaNchuAirport : Ind Airport ;
-
-fun ThabaTsekaAirport : Ind Airport ;
-
-fun ThakhekAirport : Ind Airport ;
-
-fun ThakurgaonAirport : Ind Airport ;
-
-fun ThangoolBiloelaQueenslandAirport : Ind Airport ;
-
-fun ThanjavurAirport : Ind Airport ;
-
-fun ThargomindahQueenslandAirport : Ind Airport ;
-
-fun TheBightAirport : Ind Airport ;
-
-fun TheONeillMunicipalAirportJohnLBakerFieldNEAirport : Ind Airport ;
-
-fun ThePasMBAirport : Ind Airport ;
-
-fun TheQueensAKAirport : Ind Airport ;
-
-fun TheodoreFrancisGreenStateRIAirport : Ind Airport ;
-
-fun TheodoreQueenslandAirport : Ind Airport ;
-
-fun ThermalCAAirport : Ind Airport ;
-
-fun ThicketPortageMBAirport : Ind Airport ;
-
-fun ThiefRiverFallsRegionalMNAirport : Ind Airport ;
-
-fun ThingeyriAirport : Ind Airport ;
-
-fun ThistedAirport : Ind Airport ;
-
-fun ThohoyandouVendaAirport : Ind Airport ;
-
-fun ThomasvilleMunicipalGAAirport : Ind Airport ;
-
-fun ThompsonFallsMTAirport : Ind Airport ;
-
-fun ThompsonMBAirport : Ind Airport ;
-
-fun ThorshofnAirport : Ind Airport ;
-
-fun ThredboNewSouthWalesAirport : Ind Airport ;
-
-fun ThuleAirBaseThuleAirport : Ind Airport ;
-
-fun ThumraitAirport : Ind Airport ;
-
-fun ThunderBayONAirport : Ind Airport ;
-
-fun ThylungraQueenslandAirport : Ind Airport ;
-
-fun ThynaSfaxAirport : Ind Airport ;
-
-fun TibooburraNewSouthWalesAirport : Ind Airport ;
-
-fun TibuAirport : Ind Airport ;
-
-fun TichittAirport : Ind Airport ;
-
-fun TidjikjaAirport : Ind Airport ;
-
-fun TigaAirport : Ind Airport ;
-
-fun TignesAirport : Ind Airport ;
-
-fun TikalAirport : Ind Airport ;
-
-fun TikapurAirport : Ind Airport ;
-
-fun TikehauAtollAirport : Ind Airport ;
-
-fun TikoAirport : Ind Airport ;
-
-fun TilfalminAirport : Ind Airport ;
-
-fun TilinAirport : Ind Airport ;
-
-fun TimaruAirport : Ind Airport ;
-
-fun TimbaubaPEAirport : Ind Airport ;
-
-fun TimbedraAirport : Ind Airport ;
-
-fun TimberCreekAirport : Ind Airport ;
-
-fun TimbiquiAirport : Ind Airport ;
-
-fun TimbunkeAirport : Ind Airport ;
-
-fun TimikaTimukaTembagapuraNewGuineaAirport : Ind Airport ;
-
-fun TimimounAirport : Ind Airport ;
-
-fun TimminsONAirport : Ind Airport ;
-
-fun TinCityLRRSAKAirport : Ind Airport ;
-
-fun TinakTinakAirport : Ind Airport ;
-
-fun TindoufAirport : Ind Airport ;
-
-fun TingoMariaAirport : Ind Airport ;
-
-fun TingwallShetlandIslandsAirport : Ind Airport ;
-
-fun TingwonAirport : Ind Airport ;
-
-fun TinkerAirForceBaseOKAirport : Ind Airport ;
-
-fun TiogaMunicipalNDAirport : Ind Airport ;
-
-fun TiomNewGuineaAirport : Ind Airport ;
-
-fun TiomanAirport : Ind Airport ;
-
-fun TippiAirport : Ind Airport ;
-
-fun TiputiniAirport : Ind Airport ;
-
-fun TiranaAirport : Ind Airport ;
-
-fun TireeIslandAirport : Ind Airport ;
-
-fun TirinkotAirport : Ind Airport ;
-
-fun TiruchirapallyAirport : Ind Airport ;
-
-fun TirupatiAirport : Ind Airport ;
-
-fun TisdaleAerodromeSKAirport : Ind Airport ;
-
-fun TivatAirport : Ind Airport ;
-
-fun TiziminAirport : Ind Airport ;
-
-fun TlokoengAirport : Ind Airport ;
-
-fun TobermoryAirport : Ind Airport ;
-
-fun TobolskTyumenAirport : Ind Airport ;
-
-fun TobrukAirport : Ind Airport ;
-
-fun TocacheAirport : Ind Airport ;
-
-fun ToccoaRGLetourneauFieldGAAirport : Ind Airport ;
-
-fun TocoaAirport : Ind Airport ;
-
-fun TocopillaAirport : Ind Airport ;
-
-fun TocumwalNewSouthWalesAirport : Ind Airport ;
-
-fun TofinoBCAirport : Ind Airport ;
-
-fun TofinoWaterAerodromeBCAirport : Ind Airport ;
-
-fun TogiakAKAirport : Ind Airport ;
-
-fun TokAKAirport : Ind Airport ;
-
-fun TokeenSeaplaneBaseAKAirport : Ind Airport ;
-
-fun TokoinLomeAirport : Ind Airport ;
-
-fun ToksookBayAKAirport : Ind Airport ;
-
-fun TokunoShimaAirport : Ind Airport ;
-
-fun TokushimaAirport : Ind Airport ;
-
-fun TolAirport : Ind Airport ;
-
-fun ToledoAirportWinlockEdCarlsonMemorialFieldWAAirport : Ind Airport ;
-
-fun ToledoExpressOHAirport : Ind Airport ;
-
-fun ToledoPRAirport : Ind Airport ;
-
-fun TolitoliAirport : Ind Airport ;
-
-fun TolmachevoNovosibirskAirport : Ind Airport ;
-
-fun ToluAirport : Ind Airport ;
-
-fun TomOConnerTXAirport : Ind Airport ;
-
-fun TomPriceWesternAustraliaAirport : Ind Airport ;
-
-fun TomanggongAirport : Ind Airport ;
-
-fun TomasGuardiaLiberiaAirport : Ind Airport ;
-
-fun TombouctouAirport : Ind Airport ;
-
-fun TompkinsvilleMonroeCountyKYAirport : Ind Airport ;
-
-fun ToncontinTegucigalpaAirport : Ind Airport ;
-
-fun TonghuaAirport : Ind Airport ;
-
-fun TongliaoAirport : Ind Airport ;
-
-fun TongoaAirport : Ind Airport ;
-
-fun TonopahNVAirport : Ind Airport ;
-
-fun TonopahTestRangeNVAirport : Ind Airport ;
-
-fun TonuAirport : Ind Airport ;
-
-fun ToowoombaQueenslandAirport : Ind Airport ;
-
-fun TorokinaAirport : Ind Airport ;
-
-fun TorontoDowntownHeliportONAirport : Ind Airport ;
-
-fun TorontoIslandONAirport : Ind Airport ;
-
-fun TororoAirport : Ind Airport ;
-
-fun TorpSandefjordAirport : Ind Airport ;
-
-fun TorranceMunicipalCAAirport : Ind Airport ;
-
-fun TorrejonAirForceBaseMadridAirport : Ind Airport ;
-
-fun TorremolinosAirport : Ind Airport ;
-
-fun TorreonAirport : Ind Airport ;
-
-fun TorresAirport : Ind Airport ;
-
-fun TorringtonMunicipalWYAirport : Ind Airport ;
-
-fun TortoliSardiniaAirport : Ind Airport ;
-
-fun TortuqueroAirport : Ind Airport ;
-
-fun TorwoodQueenslandAirport : Ind Airport ;
-
-fun TotnessAirport : Ind Airport ;
-
-fun TottoriAirport : Ind Airport ;
-
-fun ToubaAirport : Ind Airport ;
-
-fun TouganAirport : Ind Airport ;
-
-fun TouhoAirport : Ind Airport ;
-
-fun ToussusLeNobleAirport : Ind Airport ;
-
-fun TownsvilleQueenslandAirport : Ind Airport ;
-
-fun ToyamaAirport : Ind Airport ;
-
-fun TrabzonAirBaseTrabzonAirport : Ind Airport ;
-
-fun TracyMunicipalCAAirport : Ind Airport ;
-
-fun TradewindTXAirport : Ind Airport ;
-
-fun TrangAirport : Ind Airport ;
-
-fun TrapaniAirport : Ind Airport ;
-
-fun TraralgonVictoriaAirport : Ind Airport ;
-
-fun TravisAirForceBaseCAAirport : Ind Airport ;
-
-fun TreasureCayAbacoAirport : Ind Airport ;
-
-fun TreePointAKAirport : Ind Airport ;
-
-fun TreintayTresAirport : Ind Airport ;
-
-fun TremontonMunicipalUTAirport : Ind Airport ;
-
-fun TrentLottInternationalMSAirport : Ind Airport ;
-
-fun TrentonMunicipalMOAirport : Ind Airport ;
-
-fun TrentonONAirport : Ind Airport ;
-
-fun TresArroyosAirport : Ind Airport ;
-
-fun TresCoracoesMGAirport : Ind Airport ;
-
-fun TresEsquinasAirport : Ind Airport ;
-
-fun TresLagoasMTAirport : Ind Airport ;
-
-fun TresRiosRJAirport : Ind Airport ;
-
-fun TriCitiesWAAirport : Ind Airport ;
-
-fun TriCityInternationalMIAirport : Ind Airport ;
-
-fun TriCityKSAirport : Ind Airport ;
-
-fun TriCityRegionalTNAirport : Ind Airport ;
-
-fun TriCountyRegionalWIAirport : Ind Airport ;
-
-fun TrigodeMoraisAirport : Ind Airport ;
-
-fun TrincomaleeAirport : Ind Airport ;
-
-fun TrinidadAirport : Ind Airport ;
-
-fun TrinidadAirportColombia : Ind Airport ;
-
-fun TripleIslandBCAirport : Ind Airport ;
-
-fun TrissinoVicenzaAirport : Ind Airport ;
-
-fun TroisRivieresQCAirport : Ind Airport ;
-
-fun TrollhattanAirport : Ind Airport ;
-
-fun TronaCAAirport : Ind Airport ;
-
-fun TroyMunicipalALAirport : Ind Airport ;
-
-fun TruckeeTahoeCAAirport : Ind Airport ;
-
-fun TrujilloAirport : Ind Airport ;
-
-fun TrujilloAirportHonduras : Ind Airport ;
-
-fun TruthorConsequencesMunicipalNMAirport : Ind Airport ;
-
-fun TsaratananaAirport : Ind Airport ;
-
-fun TsentrainyOdesaAirport : Ind Airport ;
-
-fun TsewiAirport : Ind Airport ;
-
-fun TshikapaAirport : Ind Airport ;
-
-fun TshipiseAirport : Ind Airport ;
-
-fun TsiliTsiliAirport : Ind Airport ;
-
-fun TsiroanomandidyAirport : Ind Airport ;
-
-fun TsumebAirport : Ind Airport ;
-
-fun TsushimaAirport : Ind Airport ;
-
-fun TubaCityAZAirport : Ind Airport ;
-
-fun TubalaAirport : Ind Airport ;
-
-fun TubuaiTubuaiIslandsAirport : Ind Airport ;
-
-fun TucsonInternationalAZAirport : Ind Airport ;
-
-fun TucumaAirport : Ind Airport ;
-
-fun TucumcariMunicipalNMAirport : Ind Airport ;
-
-fun TucupitaAirport : Ind Airport ;
-
-fun TucuruiPAAirport : Ind Airport ;
-
-fun TufiAirport : Ind Airport ;
-
-fun TuguegaraoAirport : Ind Airport ;
-
-fun TuktoyaktukNTAirport : Ind Airport ;
-
-fun TulagiAirport : Ind Airport ;
-
-fun TulceaAirport : Ind Airport ;
-
-fun TulearAirport : Ind Airport ;
-
-fun TuliLodgeAirport : Ind Airport ;
-
-fun TullahomaRegionalAirportWmNorthernFieldTNAirport : Ind Airport ;
-
-fun TullamarineInternationalVictoriaAirport : Ind Airport ;
-
-fun TulsaInternationalOKAirport : Ind Airport ;
-
-fun TuluaAirport : Ind Airport ;
-
-fun TulugakAirport : Ind Airport ;
-
-fun TuluksakAKAirport : Ind Airport ;
-
-fun TulumAirport : Ind Airport ;
-
-fun TumAirport : Ind Airport ;
-
-fun TumacoAirport : Ind Airport ;
-
-fun TumbangSambaAirport : Ind Airport ;
-
-fun TumbesAirport : Ind Airport ;
-
-fun TumblerRidgeAerodromeBCAirport : Ind Airport ;
-
-fun TumeremoAirport : Ind Airport ;
-
-fun TumlingtarAirport : Ind Airport ;
-
-fun TumolbilAirport : Ind Airport ;
-
-fun TumutNewSouthWalesAirport : Ind Airport ;
-
-fun TuntatuliakAKAirport : Ind Airport ;
-
-fun TununakAKAirport : Ind Airport ;
-
-fun TunxiAirport : Ind Airport ;
-
-fun TupeloMunicipalCDLemonsMSAirport : Ind Airport ;
-
-fun TupileAirport : Ind Airport ;
-
-fun TuraifAirport : Ind Airport ;
-
-fun TurbatAirport : Ind Airport ;
-
-fun TurboAirport : Ind Airport ;
-
-fun TureiaAirport : Ind Airport ;
-
-fun TurkeyCreekWesternAustraliaAirport : Ind Airport ;
-
-fun TurkuAirport : Ind Airport ;
-
-fun TurtleIslandAirport : Ind Airport ;
-
-fun TuscaloosaMunicipalALAirport : Ind Airport ;
-
-fun TustinMarineCorpsAirStationCAAirport : Ind Airport ;
-
-fun TuxpanAirport : Ind Airport ;
-
-fun TuxtlaGutierrezAirport : Ind Airport ;
-
-fun TuyHoaAirport : Ind Airport ;
-
-fun TwentyninePalmsCAAirport : Ind Airport ;
-
-fun TwentyninePalmsEAFMarineCorpsAirGroundCombatCenterCAAirport : Ind Airport ;
-
-fun TwinFallsSunValleyRegionalAirportJoslinFieldIDAirport : Ind Airport ;
-
-fun TwinHillsAKAirport : Ind Airport ;
-
-fun TwoHarborsAmphibiousTerminalCAAirport : Ind Airport ;
-
-fun TylerPoundsFieldTXAirport : Ind Airport ;
-
-fun TyndallAirForceBaseFLAirport : Ind Airport ;
-
-fun TyonekAKAirport : Ind Airport ;
-
-fun TzaneenAirport : Ind Airport ;
-
-fun USCoastGuardGuamAirport : Ind Airport ;
-
-fun UaHukaMarquesasIslandsAirport : Ind Airport ;
-
-fun UaPuMarquesasIslandsAirport : Ind Airport ;
-
-fun UaxactunAirport : Ind Airport ;
-
-fun UbatubaAirport : Ind Airport ;
-
-fun UbeAirport : Ind Airport ;
-
-fun UberabaMGAirport : Ind Airport ;
-
-fun UberlandiaMGAirport : Ind Airport ;
-
-fun UbonRatchathniAirport : Ind Airport ;
-
-fun UchizaAirport : Ind Airport ;
-
-fun UdaipurAirport : Ind Airport ;
-
-fun UdomxayAirport : Ind Airport ;
-
-fun UdonThaniAirport : Ind Airport ;
-
-fun UfaBashkortostanAirport : Ind Airport ;
-
-fun UganikAKAirport : Ind Airport ;
-
-fun UgashikBayAKAirport : Ind Airport ;
-
-fun UgashikNewAKAirport : Ind Airport ;
-
-fun UgnuKuparukAKAirport : Ind Airport ;
-
-fun UherskeHradisteAirport : Ind Airport ;
-
-fun UigeAirport : Ind Airport ;
-
-fun UjaeIslandAirport : Ind Airport ;
-
-fun UkiahMunicipalCAAirport : Ind Airport ;
-
-fun UlKmarsAirport : Ind Airport ;
-
-fun UlanBatorAirport : Ind Airport ;
-
-fun UleiAirport : Ind Airport ;
-
-fun UlithiUlithiIslandAirport : Ind Airport ;
-
-fun UlmAirport : Ind Airport ;
-
-fun UlsanAirport : Ind Airport ;
-
-fun UlundiAirport : Ind Airport ;
-
-fun UmbaAirport : Ind Airport ;
-
-fun UmeaAirport : Ind Airport ;
-
-fun UmiatAKAirport : Ind Airport ;
-
-fun UmiujaqQCAirport : Ind Airport ;
-
-fun UmmAlquwainAirport : Ind Airport ;
-
-fun UmnakAKAirport : Ind Airport ;
-
-fun UmnakIslandAKAirport : Ind Airport ;
-
-fun UmtataTranskeiAirport : Ind Airport ;
-
-fun UmuaramaPRAirport : Ind Airport ;
-
-fun UnalakleetAKAirport : Ind Airport ;
-
-fun UnayzahAirport : Ind Airport ;
-
-fun UndarraAirport : Ind Airport ;
-
-fun UnguiaAirport : Ind Airport ;
-
-fun UniaodoVitoriaPRAirport : Ind Airport ;
-
-fun UnionIslandAirport : Ind Airport ;
-
-fun UniversityOxfordMSAirport : Ind Airport ;
-
-fun UniversityParkPAAirport : Ind Airport ;
-
-fun UniversityofOklahomaWestheimerOKAirport : Ind Airport ;
-
-fun UnstShetlandIslandsAirport : Ind Airport ;
-
-fun UpalaAirport : Ind Airport ;
-
-fun UpavonEnglandAirport : Ind Airport ;
-
-fun UpiaraAirport : Ind Airport ;
-
-fun UpingtonAirport : Ind Airport ;
-
-fun UpoluHIAirport : Ind Airport ;
-
-fun UpperHeyfordRAFStationEnglandAirport : Ind Airport ;
-
-fun UraniumCitySKAirport : Ind Airport ;
-
-fun UrgenchKarakalpakstanAirport : Ind Airport ;
-
-fun UrgoonAirport : Ind Airport ;
-
-fun UribeAirport : Ind Airport ;
-
-fun UrimanAirport : Ind Airport ;
-
-fun UrmiehAirport : Ind Airport ;
-
-fun UrraoAirport : Ind Airport ;
-
-fun UruapanAirport : Ind Airport ;
-
-fun UrubupungaMTAirport : Ind Airport ;
-
-fun UruzganAirport : Ind Airport ;
-
-fun UselessLoopWesternAustraliaAirport : Ind Airport ;
-
-fun UshuaiaAirport : Ind Airport ;
-
-fun UsinoAirport : Ind Airport ;
-
-fun UsinskAirport : Ind Airport ;
-
-fun UstIlimskIrkutskAirport : Ind Airport ;
-
-fun UstUkhtaKomiAirport : Ind Airport ;
-
-fun UstuopAirport : Ind Airport ;
-
-fun UtilaIslandAirport : Ind Airport ;
-
-fun UtirikIslandUtirikAirport : Ind Airport ;
-
-fun UtsunomiyaAirport : Ind Airport ;
-
-fun UttaraditAirport : Ind Airport ;
-
-fun UummannaqAirport : Ind Airport ;
-
-fun UvolAirport : Ind Airport ;
-
-fun UzhgorodZakarpatskaTranscarpathiaAirport : Ind Airport ;
-
-fun VaasaAirport : Ind Airport ;
-
-fun VadsoeVadsoAirport : Ind Airport ;
-
-fun VaernesTrondheimAirport : Ind Airport ;
-
-fun VaeroyAirport : Ind Airport ;
-
-fun VahitahiAirport : Ind Airport ;
-
-fun VailJunctionHeliportCOAirport : Ind Airport ;
-
-fun ValbonneAirport : Ind Airport ;
-
-fun ValchetaAirport : Ind Airport ;
-
-fun ValdIsereAirport : Ind Airport ;
-
-fun ValdOrQCAirport : Ind Airport ;
-
-fun ValdepenasAirport : Ind Airport ;
-
-fun ValdezAKAirport : Ind Airport ;
-
-fun ValdiviaAirport : Ind Airport ;
-
-fun ValdostaRegionalGAAirport : Ind Airport ;
-
-fun ValencaBAAirport : Ind Airport ;
-
-fun ValenceAirport : Ind Airport ;
-
-fun ValenciaAirport : Ind Airport ;
-
-fun ValeraAirport : Ind Airport ;
-
-fun ValesdirAirport : Ind Airport ;
-
-fun ValladolidAirport : Ind Airport ;
-
-fun ValledePascuaAirport : Ind Airport ;
-
-fun ValleduparAirport : Ind Airport ;
-
-fun VallejoAirport : Ind Airport ;
-
-fun VallenarAirport : Ind Airport ;
-
-fun VallesAirport : Ind Airport ;
-
-fun ValparaisoAirport : Ind Airport ;
-
-fun ValverdeAirport : Ind Airport ;
-
-fun VanAirport : Ind Airport ;
-
-fun VanNuysCAAirport : Ind Airport ;
-
-fun VanWertCountyOHAirport : Ind Airport ;
-
-fun VancouverInternationalBCAirport : Ind Airport ;
-
-fun VandaliaMunicipalILAirport : Ind Airport ;
-
-fun VandenbergAirForceBaseCAAirport : Ind Airport ;
-
-fun VangriengAirport : Ind Airport ;
-
-fun VanimoAirport : Ind Airport ;
-
-fun VanjiAirport : Ind Airport ;
-
-fun VannesAirport : Ind Airport ;
-
-fun VanrookQueenslandAirport : Ind Airport ;
-
-fun VanuabalavuAirport : Ind Airport ;
-
-fun VaraderoAirport : Ind Airport ;
-
-fun VaranasiAirport : Ind Airport ;
-
-fun VarginhaMGAirport : Ind Airport ;
-
-fun VarkausAirport : Ind Airport ;
-
-fun VarnaAirport : Ind Airport ;
-
-fun VarrelbuschAirport : Ind Airport ;
-
-fun VasquezCoboLeticiaAirport : Ind Airport ;
-
-fun VastervikAirport : Ind Airport ;
-
-fun VatomandryAirport : Ind Airport ;
-
-fun VatukoulaAirport : Ind Airport ;
-
-fun VatuleleAirport : Ind Airport ;
-
-fun VaxjoAirport : Ind Airport ;
-
-fun VejleAirport : Ind Airport ;
-
-fun VelikiyeLukiPskovAirport : Ind Airport ;
-
-fun VelikiyeLukiWelikijeLukiPskovAirport : Ind Airport ;
-
-fun VenetieAKAirport : Ind Airport ;
-
-fun VeniceMunicipalFLAirport : Ind Airport ;
-
-fun VermilionABAirport : Ind Airport ;
-
-fun VernalUTAirport : Ind Airport ;
-
-fun VernonAerodromeBCAirport : Ind Airport ;
-
-fun VeroBeachMunicipalFLAirport : Ind Airport ;
-
-fun VersaillesAirport : Ind Airport ;
-
-fun VestmannaeyjarAirport : Ind Airport ;
-
-fun VichaderoAirport : Ind Airport ;
-
-fun VicksburgMunicipalMSAirport : Ind Airport ;
-
-fun VictoriaAirportCameroon : Ind Airport ;
-
-fun VictoriaAirportChile : Ind Airport ;
-
-fun VictoriaAirportHonduras : Ind Airport ;
-
-fun VictoriaFallsAirport : Ind Airport ;
-
-fun VictoriaInnerHarbourWaterAerodromeBCAirport : Ind Airport ;
-
-fun VictoriaInternationalBCAirport : Ind Airport ;
-
-fun VictoriaRegionalTXAirport : Ind Airport ;
-
-fun VictoriaRiverDownsNorthernTerritoryAirport : Ind Airport ;
-
-fun VictoriaSTOLportQCAirport : Ind Airport ;
-
-fun VictoriadelasTunasAirport : Ind Airport ;
-
-fun VidaliaMunicipalGAAirport : Ind Airport ;
-
-fun VidinAirport : Ind Airport ;
-
-fun VidrasauTirguMuresAirport : Ind Airport ;
-
-fun ViequesViequesAirport : Ind Airport ;
-
-fun ViewCoveAKAirport : Ind Airport ;
-
-fun ViganAirport : Ind Airport ;
-
-fun VigieStLuciaCastriesAirport : Ind Airport ;
-
-fun VigoAirport : Ind Airport ;
-
-fun VijayawadaAirport : Ind Airport ;
-
-fun VilaJunqueiroAirport : Ind Airport ;
-
-fun VilaRealAirport : Ind Airport ;
-
-fun VilaRicaAirport : Ind Airport ;
-
-fun VilaVelhoESAirport : Ind Airport ;
-
-fun VilanculosAirport : Ind Airport ;
-
-fun VilhelminaAirport : Ind Airport ;
-
-fun VillaConstitucionAirport : Ind Airport ;
-
-fun VillaDoloresAirport : Ind Airport ;
-
-fun VillaGesellAirport : Ind Airport ;
-
-fun VillaMercedesAirport : Ind Airport ;
-
-fun VillaMontesAirport : Ind Airport ;
-
-fun VillafrancaVeronaAirport : Ind Airport ;
-
-fun VillagarzonAirport : Ind Airport ;
-
-fun VilniusAirport : Ind Airport ;
-
-fun VinhLongAirport : Ind Airport ;
-
-fun VinnytsyaVinnytsyaAirport : Ind Airport ;
-
-fun VintonVeteransMemorialAirparkIAAirport : Ind Airport ;
-
-fun ViquequeAirport : Ind Airport ;
-
-fun ViracAirport : Ind Airport ;
-
-fun ViracoposSPAirport : Ind Airport ;
-
-fun VirginGordaNavalStationVirginGordaAirport : Ind Airport ;
-
-fun VirginGordaValleyVirginGordaAirport : Ind Airport ;
-
-fun VirginIslandsSeaplaneBaseVirginIslandsAirport : Ind Airport ;
-
-fun VirginiaHighlandsVAAirport : Ind Airport ;
-
-fun ViruAirport : Ind Airport ;
-
-fun ViruViruInternationalSantaCruzAirport : Ind Airport ;
-
-fun VisaliaMunicipalCAAirport : Ind Airport ;
-
-fun VisbyAirport : Ind Airport ;
-
-fun ViseuAirport : Ind Airport ;
-
-fun VishakhapatnamAirport : Ind Airport ;
-
-fun VitoriaAirport : Ind Airport ;
-
-fun VitoriaESAirport : Ind Airport ;
-
-fun VitoriadaConquistaBAAirport : Ind Airport ;
-
-fun VitsyebskVitebskVitsyebskAirport : Ind Airport ;
-
-fun VittelAirport : Ind Airport ;
-
-fun ViviganiAirport : Ind Airport ;
-
-fun VizagAirport : Ind Airport ;
-
-fun VladikavkazNorthOssetiaAirport : Ind Airport ;
-
-fun VladivostokPrimoryeAirport : Ind Airport ;
-
-fun VnukovoMoscowAirport : Ind Airport ;
-
-fun VogensSkrydstrupAirport : Ind Airport ;
-
-fun VohemarAirport : Ind Airport ;
-
-fun VoinjamaAirport : Ind Airport ;
-
-fun VolgodonskRostovAirport : Ind Airport ;
-
-fun VolgogradStalingradVolgogradAirport : Ind Airport ;
-
-fun VolkFieldWIAirport : Ind Airport ;
-
-fun VolosAirport : Ind Airport ;
-
-fun VolovanAirport : Ind Airport ;
-
-fun VoltaRedondaRJAirport : Ind Airport ;
-
-fun VopnafjordurAirport : Ind Airport ;
-
-fun VorkutaKomiAirport : Ind Airport ;
-
-fun VoronezhVoronezhAirport : Ind Airport ;
-
-fun VotuporangaSPAirport : Ind Airport ;
-
-fun VrajdebnaSofiaAirport : Ind Airport ;
-
-fun VredendalAirport : Ind Airport ;
-
-fun VryburgAirport : Ind Airport ;
-
-fun VryheidAirport : Ind Airport ;
-
-fun WabagAirport : Ind Airport ;
-
-fun WaboAirport : Ind Airport ;
-
-fun WabushNFAirport : Ind Airport ;
-
-fun WacaAirport : Ind Airport ;
-
-fun WaddingtonRAFStationEnglandAirport : Ind Airport ;
-
-fun WadiAdDawasirAirport : Ind Airport ;
-
-fun WadiAinAirport : Ind Airport ;
-
-fun WadiHalfaAirport : Ind Airport ;
-
-fun WagetheAirport : Ind Airport ;
-
-fun WaggaWaggaNewSouthWalesAirport : Ind Airport ;
-
-fun WagnyAirport : Ind Airport ;
-
-fun WaikoloaHIAirport : Ind Airport ;
-
-fun WaimeaKohalaHIAirport : Ind Airport ;
-
-fun WaingapuAirport : Ind Airport ;
-
-fun WainwrightABAirport : Ind Airport ;
-
-fun WaitangiAirport : Ind Airport ;
-
-fun WajirAirport : Ind Airport ;
-
-fun WakunaiAirport : Ind Airport ;
-
-fun WalahaAirport : Ind Airport ;
-
-fun WalchaNewSouthWalesAirport : Ind Airport ;
-
-fun WalesAKAirport : Ind Airport ;
-
-fun WalgettNewSouthWalesAirport : Ind Airport ;
-
-fun WalkersCayAbacoAirport : Ind Airport ;
-
-fun WallStSeaplaneDockNYAirport : Ind Airport ;
-
-fun WallalAirport : Ind Airport ;
-
-fun WalterboroMunicipalSCAirport : Ind Airport ;
-
-fun WalvisBayAirport : Ind Airport ;
-
-fun WamenaAirport : Ind Airport ;
-
-fun WanaAirport : Ind Airport ;
-
-fun WanakaAirport : Ind Airport ;
-
-fun WandoAirport : Ind Airport ;
-
-fun WanganuiAirport : Ind Airport ;
-
-fun WangarattaVictoriaAirport : Ind Airport ;
-
-fun WantoatAirport : Ind Airport ;
-
-fun WanumaAirport : Ind Airport ;
-
-fun WanxianSichuanAirport : Ind Airport ;
-
-fun WapenamandaAirport : Ind Airport ;
-
-fun WarderAirport : Ind Airport ;
-
-fun WareMAAirport : Ind Airport ;
-
-fun WarisAirport : Ind Airport ;
-
-fun WarminsterNADCPAAirport : Ind Airport ;
-
-fun WarraberIslandQueenslandAirport : Ind Airport ;
-
-fun WarracknabealVictoriaAirport : Ind Airport ;
-
-fun WarramboorMtKeithWesternAustraliaAirport : Ind Airport ;
-
-fun WarranagineWesternAustraliaAirport : Ind Airport ;
-
-fun WarrangalAirport : Ind Airport ;
-
-fun WarrenCountyMemorialTNAirport : Ind Airport ;
-
-fun WarrenFieldNCAirport : Ind Airport ;
-
-fun WarrenNewSouthWalesAirport : Ind Airport ;
-
-fun WarrnamboolVictoriaAirport : Ind Airport ;
-
-fun WarroadInternationalAirportSwedeCarlsonFieldMNAirport : Ind Airport ;
-
-fun WarwickQueenslandAirport : Ind Airport ;
-
-fun WashaboAirport : Ind Airport ;
-
-fun WashingtonCountyPAAirport : Ind Airport ;
-
-fun WasillaAKAirport : Ind Airport ;
-
-fun WasiorAirport : Ind Airport ;
-
-fun WaskaganishQCAirport : Ind Airport ;
-
-fun WasuAirport : Ind Airport ;
-
-fun WasuaAirport : Ind Airport ;
-
-fun WaterburyOxfordCTAirport : Ind Airport ;
-
-fun WaterfordAirport : Ind Airport ;
-
-fun WaterlooNorthernTerritoryAirport : Ind Airport ;
-
-fun WatertownMunicipalWIAirport : Ind Airport ;
-
-fun WatervilleRobertLafleurMEAirport : Ind Airport ;
-
-fun WatsonLakeYTAirport : Ind Airport ;
-
-fun WatsonvilleMunicipalCAAirport : Ind Airport ;
-
-fun WattayVientianeAirport : Ind Airport ;
-
-fun WauAirport : Ind Airport ;
-
-fun WauAirportSudan : Ind Airport ;
-
-fun WauchopeNewSouthWalesAirport : Ind Airport ;
-
-fun WaukeganRegionalILAirport : Ind Airport ;
-
-fun WaukeshaCountyWIAirport : Ind Airport ;
-
-fun WaukonMunicipalIAAirport : Ind Airport ;
-
-fun WaveHillNorthernTerritoryAirport : Ind Airport ;
-
-fun WaverneyAirport : Ind Airport ;
-
-fun WawaONAirport : Ind Airport ;
-
-fun WawoiFallsAirport : Ind Airport ;
-
-fun WeagamowLakeONAirport : Ind Airport ;
-
-fun WeamAirport : Ind Airport ;
-
-fun WeasuaAirport : Ind Airport ;
-
-fun WebequieONAirport : Ind Airport ;
-
-fun WedauAirport : Ind Airport ;
-
-fun WeeWaaNewSouthWalesAirport : Ind Airport ;
-
-fun WeifangAirport : Ind Airport ;
-
-fun WeihaiAirport : Ind Airport ;
-
-fun WeipaQueenslandAirport : Ind Airport ;
-
-fun WelkomAirport : Ind Airport ;
-
-fun WelshpoolVictoriaAirport : Ind Airport ;
-
-fun WemindjiQCAirport : Ind Airport ;
-
-fun WenzhouAirport : Ind Airport ;
-
-fun WerurAirport : Ind Airport ;
-
-fun WespamAirport : Ind Airport ;
-
-fun WestEndAirport : Ind Airport ;
-
-fun WestEndTortolaAirport : Ind Airport ;
-
-fun WestHoustonTXAirport : Ind Airport ;
-
-fun WestKaviAKAirport : Ind Airport ;
-
-fun WestKuparukAKAirport : Ind Airport ;
-
-fun WestMallingEnglandAirport : Ind Airport ;
-
-fun WestPlainsMunicipalMOAirport : Ind Airport ;
-
-fun WestSaleVictoriaAirport : Ind Airport ;
-
-fun WestTinianTinianPeipeinimaruAirport : Ind Airport ;
-
-fun WestWoodwardOKAirport : Ind Airport ;
-
-fun WestWyalongNewSouthWalesAirport : Ind Airport ;
-
-fun WesterlyStateRIAirport : Ind Airport ;
-
-fun WestmorelandCountyPAAirport : Ind Airport ;
-
-fun WestportAirport : Ind Airport ;
-
-fun WestrayAirport : Ind Airport ;
-
-fun WestsoundSeaplaneBaseWAAirport : Ind Airport ;
-
-fun WetzlarAirport : Ind Airport ;
-
-fun WewakAirport : Ind Airport ;
-
-fun WexfordAirport : Ind Airport ;
-
-fun WhakataneAirport : Ind Airport ;
-
-fun WhaleCoveNTAirport : Ind Airport ;
-
-fun WhalsayAirport : Ind Airport ;
-
-fun WhangareiAirport : Ind Airport ;
-
-fun WhartonMunicipalTXAirport : Ind Airport ;
-
-fun WheghnanAirport : Ind Airport ;
-
-fun WhidbeyIslandNavalAirStationAultFieldWAAirport : Ind Airport ;
-
-fun WhiteMountainAKAirport : Ind Airport ;
-
-fun WhiteRiverWaterAerodromeONAirport : Ind Airport ;
-
-fun WhiteRockTXAirport : Ind Airport ;
-
-fun WhiteSulphurSpringsWVAirport : Ind Airport ;
-
-fun WhitecourtABAirport : Ind Airport ;
-
-fun WhitehorseYTAirport : Ind Airport ;
-
-fun WhitehouseNavalOutlyingFieldFLAirport : Ind Airport ;
-
-fun WhitemanAirForceBaseMOAirport : Ind Airport ;
-
-fun WhitemanCAAirport : Ind Airport ;
-
-fun WhiteriverAZAirport : Ind Airport ;
-
-fun WhitesideCountyAirportJosHBittorfFieldILAirport : Ind Airport ;
-
-fun WhitingFieldNavalkAirStationNorthFLAirport : Ind Airport ;
-
-fun WhittangaAirport : Ind Airport ;
-
-fun WhyallaSouthAustraliaAirport : Ind Airport ;
-
-fun WiartonONAirport : Ind Airport ;
-
-fun WickAirport : Ind Airport ;
-
-fun WickhamAirport : Ind Airport ;
-
-fun WiesbadenAirBaseWiesbadenAirport : Ind Airport ;
-
-fun WiesbadenAirport : Ind Airport ;
-
-fun WilcanniaSouthAustraliaAirport : Ind Airport ;
-
-fun WildenrathAirport : Ind Airport ;
-
-fun WildwoodAKAirport : Ind Airport ;
-
-fun WileyPostOKAirport : Ind Airport ;
-
-fun WilhemshavenAirport : Ind Airport ;
-
-fun WilkesBarreWyomingValleyPAAirport : Ind Airport ;
-
-fun WillRogersWorldOKAirport : Ind Airport ;
-
-fun WilliamPGwinnFLAirport : Ind Airport ;
-
-fun WilliamTPiperMemorialPAAirport : Ind Airport ;
-
-fun WilliamsHarbourNFAirport : Ind Airport ;
-
-fun WilliamsLakeBCAirport : Ind Airport ;
-
-fun WilliamsonCountyRegionalILAirport : Ind Airport ;
-
-fun WilliamtownNewSouthWalesAirport : Ind Airport ;
-
-fun WillowAKAirport : Ind Airport ;
-
-fun WillowGroveNavalAirStationPAAirport : Ind Airport ;
-
-fun WillowRunMIAirport : Ind Airport ;
-
-fun WillowsGlennCountyCAAirport : Ind Airport ;
-
-fun WilsonNairobiAirport : Ind Airport ;
-
-fun WiltonCTAirport : Ind Airport ;
-
-fun WilunaWesternAustraliaAirport : Ind Airport ;
-
-fun WinchesterRegionalVAAirport : Ind Airport ;
-
-fun WindarraWesternAustraliaAirport : Ind Airport ;
-
-fun WinderGAAirport : Ind Airport ;
-
-fun WindomMunicipalMNAirport : Ind Airport ;
-
-fun WindorahParkQueenslandAirport : Ind Airport ;
-
-fun WindsorONAirport : Ind Airport ;
-
-fun WiniskONAirport : Ind Airport ;
-
-fun WinnemuccaMunicipalNVAirport : Ind Airport ;
-
-fun WinnipegInternationalMBAirport : Ind Airport ;
-
-fun WinonaMunicipalAirportMaxConradFieldMNAirport : Ind Airport ;
-
-fun WinstonFieldTXAirport : Ind Airport ;
-
-fun WinterParkCOAirport : Ind Airport ;
-
-fun WintonQueenslandAirport : Ind Airport ;
-
-fun WipimAirport : Ind Airport ;
-
-fun WisemanAKAirport : Ind Airport ;
-
-fun WithamFieldFLAirport : Ind Airport ;
-
-fun WittendomGorgeWesternAustraliaAirport : Ind Airport ;
-
-fun WittmanRegionalWIAirport : Ind Airport ;
-
-fun WituAirport : Ind Airport ;
-
-fun WoburnMAAirport : Ind Airport ;
-
-fun WoensdrechtAirport : Ind Airport ;
-
-fun WoitapeAirport : Ind Airport ;
-
-fun WojaAirport : Ind Airport ;
-
-fun WollastonLakeSKAirport : Ind Airport ;
-
-fun WollogorangAirport : Ind Airport ;
-
-fun WollongongNewSouthWalesAirport : Ind Airport ;
-
-fun WologissiAirport : Ind Airport ;
-
-fun WonanAirport : Ind Airport ;
-
-fun WondaiAirport : Ind Airport ;
-
-fun WonderboomPretoriaAirport : Ind Airport ;
-
-fun WondoolaAirport : Ind Airport ;
-
-fun WonenaraAirport : Ind Airport ;
-
-fun WonkenAirport : Ind Airport ;
-
-fun WoodCountyAirportGillRobbWilsonFieldWVAirport : Ind Airport ;
-
-fun WoodRiverAKAirport : Ind Airport ;
-
-fun WoodbridgeRAFStationEnglandAirport : Ind Airport ;
-
-fun WoodchopperAKAirport : Ind Airport ;
-
-fun WoodfordAerodromeEnglandAirport : Ind Airport ;
-
-fun WoodgreenNorthernTerritoryAirport : Ind Airport ;
-
-fun WoomeraSouthAustraliaAirport : Ind Airport ;
-
-fun WoraNaYeAirport : Ind Airport ;
-
-fun WorcesterMunicipalMAAirport : Ind Airport ;
-
-fun WorlandMunicipalWYAirport : Ind Airport ;
-
-fun WorldTradeCenterNYAirport : Ind Airport ;
-
-fun WorthingtonMunicipalMNAirport : Ind Airport ;
-
-fun WothoAirport : Ind Airport ;
-
-fun WotjeWotjeAirport : Ind Airport ;
-
-fun WrangellAKAirport : Ind Airport ;
-
-fun WrigleyNTAirport : Ind Airport ;
-
-fun WroclawAirport : Ind Airport ;
-
-fun WrothamQueenslandAirport : Ind Airport ;
-
-fun WuauTaiyuanAirport : Ind Airport ;
-
-fun WudinnaSouthAustraliaAirport : Ind Airport ;
-
-fun WuhanAirport : Ind Airport ;
-
-fun WuhuAirport : Ind Airport ;
-
-fun WunnumminLakeONAirport : Ind Airport ;
-
-fun WuppertalAirport : Ind Airport ;
-
-fun WurzburgAirport : Ind Airport ;
-
-fun WuvuluIslandAirport : Ind Airport ;
-
-fun WuxiAirport : Ind Airport ;
-
-fun WuyishanAirport : Ind Airport ;
-
-fun WuzhouAirport : Ind Airport ;
-
-fun WykaufFoehrAirport : Ind Airport ;
-
-fun WyndhamWesternAustraliaAirport : Ind Airport ;
-
-fun WynyardSKAirport : Ind Airport ;
-
-fun WynyardTasmaniaAirport : Ind Airport ;
-
-fun XaiXaiViladeJoaoBeloAirport : Ind Airport ;
-
-fun XangongoAirport : Ind Airport ;
-
-fun XayaburyAirport : Ind Airport ;
-
-fun XiamenAirport : Ind Airport ;
-
-fun XiamenAmoyAirport : Ind Airport ;
-
-fun XianXianyangAirport : Ind Airport ;
-
-fun XiangfanAirport : Ind Airport ;
-
-fun XichangAirport : Ind Airport ;
-
-fun XiengKhouangAirport : Ind Airport ;
-
-fun XienglomAirport : Ind Airport ;
-
-fun XiguanXianZiAnAirport : Ind Airport ;
-
-fun XilinhotAirport : Ind Airport ;
-
-fun XingchengAirport : Ind Airport ;
-
-fun XingningAirport : Ind Airport ;
-
-fun XingtaiAirport : Ind Airport ;
-
-fun XinguaraAirport : Ind Airport ;
-
-fun XiningAirport : Ind Airport ;
-
-fun XoxocotlanOaxacaAirport : Ind Airport ;
-
-fun XuzhouAirport : Ind Airport ;
-
-fun YakimaAirTerminalWAAirport : Ind Airport ;
-
-fun YakutatAKAirport : Ind Airport ;
-
-fun YalgooWesternAustraliaAirport : Ind Airport ;
-
-fun YalovaYalovaAsagisolozAirport : Ind Airport ;
-
-fun YamIslandQueenslandAirport : Ind Airport ;
-
-fun YanbuAirport : Ind Airport ;
-
-fun YanchenAirport : Ind Airport ;
-
-fun YandinaRusselIsAirport : Ind Airport ;
-
-fun YangambiAirport : Ind Airport ;
-
-fun YanjiAirport : Ind Airport ;
-
-fun YantaiAirport : Ind Airport ;
-
-fun YapInternationalYapIslandAirport : Ind Airport ;
-
-fun YaquaraAirport : Ind Airport ;
-
-fun YarmouthNSAirport : Ind Airport ;
-
-fun YavarateAirport : Ind Airport ;
-
-fun YavizaAirport : Ind Airport ;
-
-fun YeAirport : Ind Airport ;
-
-fun YechonAirport : Ind Airport ;
-
-fun YegepaAirport : Ind Airport ;
-
-fun YekaterinburgEkaterinburgSverdlovskAirport : Ind Airport ;
-
-fun YellowknifeNTAirport : Ind Airport ;
-
-fun YellowstoneMTAirport : Ind Airport ;
-
-fun YengemaAirport : Ind Airport ;
-
-fun YenkisAirport : Ind Airport ;
-
-fun YeoviltonAirport : Ind Airport ;
-
-fun YesBayLodgeSeaplaneBaseAKAirport : Ind Airport ;
-
-fun YevaAirport : Ind Airport ;
-
-fun YibinSichuanAirport : Ind Airport ;
-
-fun YichangAirport : Ind Airport ;
-
-fun YilanAirport : Ind Airport ;
-
-fun YiningAirport : Ind Airport ;
-
-fun YiwuAirport : Ind Airport ;
-
-fun YokohamaAirport : Ind Airport ;
-
-fun YokotaAirForceBaseYokotaAirport : Ind Airport ;
-
-fun YolaAirport : Ind Airport ;
-
-fun YonagoAirport : Ind Airport ;
-
-fun YonaguniJimaAirport : Ind Airport ;
-
-fun YorkLandingMBAirport : Ind Airport ;
-
-fun YorkPAAirport : Ind Airport ;
-
-fun YorkeIslandsQueenslandAirport : Ind Airport ;
-
-fun YorketownSouthAustraliaAirport : Ind Airport ;
-
-fun YorktonSKAirport : Ind Airport ;
-
-fun YoroAirport : Ind Airport ;
-
-fun YoronJimaAirport : Ind Airport ;
-
-fun YosemiteParkCAAirport : Ind Airport ;
-
-fun YosuAirport : Ind Airport ;
-
-fun YoungNewSouthWalesAirport : Ind Airport ;
-
-fun YoungsfieldCapeTownAirport : Ind Airport ;
-
-fun YoungstownMunicipalOHAirport : Ind Airport ;
-
-fun YubaCountyCAAirport : Ind Airport ;
-
-fun YuccaFlatsNVAirport : Ind Airport ;
-
-fun YuendumuNorthernTerritoryAirport : Ind Airport ;
-
-fun YuleIslandAirport : Ind Airport ;
-
-fun YulemisteTallinnAirport : Ind Airport ;
-
-fun YulinAirport : Ind Airport ;
-
-fun YumaMarinaCorpsAirStationAZAirport : Ind Airport ;
-
-fun YumaMarineCorpsAirStationYumaInternationalAZAirport : Ind Airport ;
-
-fun YurimaguasAirport : Ind Airport ;
-
-fun YuzhnoSakhalinskSakhalinAirport : Ind Airport ;
-
-fun YuzhnyTashkentAirport : Ind Airport ;
-
-fun ZabljakAirport : Ind Airport ;
-
-fun ZabreAirport : Ind Airport ;
-
-fun ZabrehAirport : Ind Airport ;
-
-fun ZadarAirport : Ind Airport ;
-
-fun ZahedanAirport : Ind Airport ;
-
-fun ZakynthosAirport : Ind Airport ;
-
-fun ZamboangaInternationalZamboangaAirport : Ind Airport ;
-
-fun ZamoraAirport : Ind Airport ;
-
-fun ZanzibarIslandAirport : Ind Airport ;
-
-fun ZaporizhzhyaZaporizhzhyaAirport : Ind Airport ;
-
-fun ZaragozaAirport : Ind Airport ;
-
-fun ZaranjAirport : Ind Airport ;
-
-fun ZariaAirport : Ind Airport ;
-
-fun ZarkaAirport : Ind Airport ;
-
-fun ZenataTlemcenTilimsenAirport : Ind Airport ;
-
-fun ZephyrhillsMunicipalFLAirport : Ind Airport ;
-
-fun ZeroAirport : Ind Airport ;
-
-fun ZhangguizhuangTianjinAirport : Ind Airport ;
-
-fun ZhanjiangAirport : Ind Airport ;
-
-fun ZhaotongAirport : Ind Airport ;
-
-fun ZhenzhenShenzhenAirport : Ind Airport ;
-
-fun ZhobAirport : Ind Airport ;
-
-fun ZhongchuanLanzhouAirport : Ind Airport ;
-
-fun ZhuhaiAirport : Ind Airport ;
-
-fun ZhytomyrZhitomirZhytomyrAirport : Ind Airport ;
-
-fun ZiguinchorAirport : Ind Airport ;
-
-fun ZilfiAirport : Ind Airport ;
-
-fun ZimValenciaCaraboboValenciaAirport : Ind Airport ;
-
-fun ZinderAirport : Ind Airport ;
-
-fun ZorgenHoopParamariboAirport : Ind Airport ;
-
-fun ZouerateAirport : Ind Airport ;
-
-fun ZuidLimburgMaastrichtAirport : Ind Airport ;
-
-fun ZurichKlotenZurichAirport : Ind Airport ;
-
-fun wethersfieldRAFStationEnglandAirport : Ind Airport ;
-}
+abstract WorldAirportsL_Z = Transportation ** {
+
+  fun ALManghamJrRegionalTXAirport : Ind Airport ;
+
+  fun AbbotsfordBCAirport : Ind Airport ;
+
+  fun AbengourouAirport : Ind Airport ;
+
+  fun AccomackCountyVAAirport : Ind Airport ;
+
+  fun AchmadyaniSemarangAirport : Ind Airport ;
+
+  fun AdamsFieldARAirport : Ind Airport ;
+
+  fun AdirondackNYAirport : Ind Airport ;
+
+  fun AdisumarmoSoloCityAirport : Ind Airport ;
+
+  fun AerodromoTolosaLaPlataAirport : Ind Airport ;
+
+  fun Aeroporto4deFevereiroBelasLuandaAirport : Ind Airport ;
+
+  fun AeroportoSantosDumontRJAirport : Ind Airport ;
+
+  fun AeroportodaPorteladeSacavemLisboaLisbonAirport : Ind Airport ;
+
+  fun AeroportodasLajesAzoresAirport : Ind Airport ;
+
+  fun AeropuerodeBajioLeonAirport : Ind Airport ;
+
+  fun AeropuertoComodoroArturoMerinoBenitezSantiagodeChileAirport : Ind Airport ;
+
+  fun AeropuertoDepartamentaldeRiveraRiveraAirport : Ind Airport ;
+
+  fun AeropuertoDepartamentaldeSaltoSaltoAirport : Ind Airport ;
+
+  fun AeropuertoGeneralMarianoEscobedoMonterreyAirport : Ind Airport ;
+
+  fun AeropuertoInternacionalBenitoJuarezCiudaddeMexicoMexicoCityAirport : Ind Airport ;
+
+  fun AeropuertoInternacionalJorgeChavezLimaAirport : Ind Airport ;
+
+  fun AeropuertoInternacionalSimonBolivarMaiquetiaAirport : Ind Airport ;
+
+  fun AeropuertoInternacionaldelCaribeGeneralSMarinoMargeritaPorlamararAirport : Ind Airport ;
+
+  fun AeropuertoInternacionaldelNorteMonterreyAirport : Ind Airport ;
+
+  fun AeropuertodelasAmericasSantoDomingoAirport : Ind Airport ;
+
+  fun AganaNavalAirStationAganaAirport : Ind Airport ;
+
+  fun AgnoLuganoAirport : Ind Airport ;
+
+  fun AirBaseOsanAirport : Ind Airport ;
+
+  fun AirlieBeachQueenslandAirport : Ind Airport ;
+
+  fun AjmanCityAirport : Ind Airport ;
+
+  fun AklavikNTAirport : Ind Airport ;
+
+  fun AlKharjAirBaseAirport : Ind Airport ;
+
+  fun AlThaurahAirport : Ind Airport ;
+
+  fun AlagoinhasBAAirport : Ind Airport ;
+
+  fun AlamedaNavalAirStationNimitzFieldCAAirport : Ind Airport ;
+
+  fun AlamosAirport : Ind Airport ;
+
+  fun AlbanyNavalAirStationGAAirport : Ind Airport ;
+
+  fun AlbertJEllisNCAirport : Ind Airport ;
+
+  fun AlbertWhittedFLAirport : Ind Airport ;
+
+  fun AlbiAirport : Ind Airport ;
+
+  fun AlcootaNorthernTerritoryAirport : Ind Airport ;
+
+  fun AlegAirport : Ind Airport ;
+
+  fun AleknagikAKAirport : Ind Airport ;
+
+  fun AlertBayBCAirport : Ind Airport ;
+
+  fun AlertNTAirport : Ind Airport ;
+
+  fun AlexanderHamiltonStCroixAirport : Ind Airport ;
+
+  fun AlhegroSassariSardiniaAirport : Ind Airport ;
+
+  fun AliceArmSilverCityWaterAerodromeBCAirport : Ind Airport ;
+
+  fun AlmaQCAirport : Ind Airport ;
+
+  fun AlmeloAirport : Ind Airport ;
+
+  fun AlmeriaAirport : Ind Airport ;
+
+  fun AlmiranteZarTrelewAirport : Ind Airport ;
+
+  fun AltaLakeBCAirport : Ind Airport ;
+
+  fun AltoPalenaAirport : Ind Airport ;
+
+  fun AltusAirForceBaseOKAirport : Ind Airport ;
+
+  fun AmbatondrazakaAirport : Ind Airport ;
+
+  fun AmborovyMahajangaMajungaAirport : Ind Airport ;
+
+  fun AmbregrisCayeSanPedroAirport : Ind Airport ;
+
+  fun AmericanRiverSouthAustraliaAirport : Ind Airport ;
+
+  fun AmersfoortAirport : Ind Airport ;
+
+  fun AmilcarCabralSalAirport : Ind Airport ;
+
+  fun AmosMunicipalQCAirport : Ind Airport ;
+
+  fun AnacostiaUSNavyHeliportDCAirport : Ind Airport ;
+
+  fun AnahimLakeAerodromeBCAirport : Ind Airport ;
+
+  fun AnandAirport : Ind Airport ;
+
+  fun AncudAirport : Ind Airport ;
+
+  fun AndaSandaneAirport : Ind Airport ;
+
+  fun AndapaAirport : Ind Airport ;
+
+  fun AndersenAirForceBaseAndersenIslandAirport : Ind Airport ;
+
+  fun AndriamenaAirport : Ind Airport ;
+
+  fun AnegadaAirport : Ind Airport ;
+
+  fun AngelinaCountyTXAirport : Ind Airport ;
+
+  fun AngkorSiemReapAirport : Ind Airport ;
+
+  fun AnglingLakeMBAirport : Ind Airport ;
+
+  fun AnkazoaboAirport : Ind Airport ;
+
+  fun AnnaiAirport : Ind Airport ;
+
+  fun AnnecyAirport : Ind Airport ;
+
+  fun AnnmasseAirport : Ind Airport ;
+
+  fun AntoinedeSteExuperySanAntonioOesteAirport : Ind Airport ;
+
+  fun AntonioMaceoSantiagoAirport : Ind Airport ;
+
+  fun AntsalovaAirport : Ind Airport ;
+
+  fun AntsohihyAirport : Ind Airport ;
+
+  fun ApeldoornAirport : Ind Airport ;
+
+  fun AqmolaTselinogradAqmolaAirport : Ind Airport ;
+
+  fun AqtanShevchenkoMangghystanAirport : Ind Airport ;
+
+  fun AransasCountyTXAirport : Ind Airport ;
+
+  fun ArarAirport : Ind Airport ;
+
+  fun ArawaAirport : Ind Airport ;
+
+  fun ArcosMGAirport : Ind Airport ;
+
+  fun ArcticBayNTAirport : Ind Airport ;
+
+  fun ArcticRedRiverWaterAerodromeNTAirport : Ind Airport ;
+
+  fun ArgentiaNavalAirStationNFAirport : Ind Airport ;
+
+  fun AribindaAirport : Ind Airport ;
+
+  fun ArlingtonMunicipalTXAirport : Ind Airport ;
+
+  fun ArlitAirport : Ind Airport ;
+
+  fun ArmstrongONAirport : Ind Airport ;
+
+  fun ArnesAerodromeMBAirport : Ind Airport ;
+
+  fun ArnhemAirport : Ind Airport ;
+
+  fun ArnoldAirForceBaseTNAirport : Ind Airport ;
+
+  fun ArnosValeStVincentAirport : Ind Airport ;
+
+  fun AroMoldeAirport : Ind Airport ;
+
+  fun AruaAirport : Ind Airport ;
+
+  fun ArunkaAirport : Ind Airport ;
+
+  fun ArviatNTAirport : Ind Airport ;
+
+  fun AsbestosAerodromeQCAirport : Ind Airport ;
+
+  fun AshcroftBCAirport : Ind Airport ;
+
+  fun AshfordAirport : Ind Airport ;
+
+  fun AsturiasOviedoAvilesAirport : Ind Airport ;
+
+  fun AtibaiaSPAirport : Ind Airport ;
+
+  fun AtikokanMunicipalONAirport : Ind Airport ;
+
+  fun AtkinsonMunicipalKSAirport : Ind Airport ;
+
+  fun AtlantaNavalAirStationGAAirport : Ind Airport ;
+
+  fun AtsugiAirport : Ind Airport ;
+
+  fun AttawapiskatONAirport : Ind Airport ;
+
+  fun AubenasAirport : Ind Airport ;
+
+  fun AuburnLewistonMunicipalMEAirport : Ind Airport ;
+
+  fun AugustoCesarSandinoManaguaAirport : Ind Airport ;
+
+  fun AupalukQCAirport : Ind Airport ;
+
+  fun AuroseBayNewSouthWalesAirport : Ind Airport ;
+
+  fun AvellinoAirport : Ind Airport ;
+
+  fun AvengerFieldTXAirport : Ind Airport ;
+
+  fun AyiaNapaAirport : Ind Airport ;
+
+  fun BabelthuapKororKororAirport : Ind Airport ;
+
+  fun BagotvilleQCAirport : Ind Airport ;
+
+  fun BahawalnagarAirport : Ind Airport ;
+
+  fun BaieComeauQCAirport : Ind Airport ;
+
+  fun BaieJohanBeetzWaterAerodromeQCAirport : Ind Airport ;
+
+  fun BaimuruAirport : Ind Airport ;
+
+  fun BakerLakeNTAirport : Ind Airport ;
+
+  fun BalaiTanjungAirport : Ind Airport ;
+
+  fun BalcanoonaSouthAustraliaAirport : Ind Airport ;
+
+  fun BaldwinCountyGAAirport : Ind Airport ;
+
+  fun BalimoAirport : Ind Airport ;
+
+  fun BaltraIslandGalapagosAirport : Ind Airport ;
+
+  fun BalurghatAirport : Ind Airport ;
+
+  fun BamfieldWaterAerodromeBCAirport : Ind Airport ;
+
+  fun BanHoueiSaiAirport : Ind Airport ;
+
+  fun BanainaAirport : Ind Airport ;
+
+  fun BanakLakselvAirport : Ind Airport ;
+
+  fun BandanairaAirport : Ind Airport ;
+
+  fun BandarLampungAirport : Ind Airport ;
+
+  fun BanffABAirport : Ind Airport ;
+
+  fun BarajasMadridAirport : Ind Airport ;
+
+  fun BarakomaAirport : Ind Airport ;
+
+  fun BaratAirport : Ind Airport ;
+
+  fun BarbeMoptiAirport : Ind Airport ;
+
+  fun BarbersPointNavalAirStationJohnRodgersFieldHIAirport : Ind Airport ;
+
+  fun BarinNavalOutlyingFieldALAirport : Ind Airport ;
+
+  fun BarkerWAAirport : Ind Airport ;
+
+  fun BarkleyRegionalKYAirport : Ind Airport ;
+
+  fun BaroraAirport : Ind Airport ;
+
+  fun BarraMansaRJAirport : Ind Airport ;
+
+  fun BarradoPiraiRJAirport : Ind Airport ;
+
+  fun BarrancominasAirport : Ind Airport ;
+
+  fun BartolomeSalomPuertoCabelloAirport : Ind Airport ;
+
+  fun BaselMulhouseEuroMulhouseAirport : Ind Airport ;
+
+  fun BassillacPerigueuxAirport : Ind Airport ;
+
+  fun BatemansBayNewSouthWalesAirport : Ind Airport ;
+
+  fun BatesFieldALAirport : Ind Airport ;
+
+  fun BathurstNBAirport : Ind Airport ;
+
+  fun BatouriAirport : Ind Airport ;
+
+  fun BatuBerMalaccaMelakaAirport : Ind Airport ;
+
+  fun BauerfieldEfateIsAirport : Ind Airport ;
+
+  fun BaxterCountyRegionalARAirport : Ind Airport ;
+
+  fun BealananaAirport : Ind Airport ;
+
+  fun BearskinLakeAerodromeONAirport : Ind Airport ;
+
+  fun BeattonRiverBCAirport : Ind Airport ;
+
+  fun BeaverAKAirport : Ind Airport ;
+
+  fun BeaverCreekCOAirport : Ind Airport ;
+
+  fun BeaverCreekYTAirport : Ind Airport ;
+
+  fun BedardFieldAZAirport : Ind Airport ;
+
+  fun BededouroSPAirport : Ind Airport ;
+
+  fun BedwellHarbourWaterAerodromeBCAirport : Ind Airport ;
+
+  fun BefandrianaAirport : Ind Airport ;
+
+  fun BegaNewSouthWalesAirport : Ind Airport ;
+
+  fun BeidaAirport : Ind Airport ;
+
+  fun BekilyAirport : Ind Airport ;
+
+  fun BeldringeOdenseAirport : Ind Airport ;
+
+  fun BelesPawiAirport : Ind Airport ;
+
+  fun BelizeCityMunicipalAirstripBelizeCityAirport : Ind Airport ;
+
+  fun BellaCoolaBCAirport : Ind Airport ;
+
+  fun BellegardeLimogesAirport : Ind Airport ;
+
+  fun BenGurionTelAvivAirport : Ind Airport ;
+
+  fun BenjaminConstantAMAirport : Ind Airport ;
+
+  fun BerensRiverMBAirport : Ind Airport ;
+
+  fun BermudaDunesCAAirport : Ind Airport ;
+
+  fun BermudaNavalAirStationBermudaAirport : Ind Airport ;
+
+  fun BernAirport : Ind Airport ;
+
+  fun BerorohaAirport : Ind Airport ;
+
+  fun BerzMacombMIAirport : Ind Airport ;
+
+  fun BiardPoitiersAirport : Ind Airport ;
+
+  fun BiersetLiegeLuttichAirport : Ind Airport ;
+
+  fun BigBayMarinaBCAirport : Ind Airport ;
+
+  fun BigBayYachtClubSeaplaneBaseBCAirport : Ind Airport ;
+
+  fun BigBearCityCAAirport : Ind Airport ;
+
+  fun BigTroutLakeONAirport : Ind Airport ;
+
+  fun BilaspurAirport : Ind Airport ;
+
+  fun BiniguniAirport : Ind Airport ;
+
+  fun BintuniAirport : Ind Airport ;
+
+  fun BirgiTrapaniAirport : Ind Airport ;
+
+  fun BirjandAirport : Ind Airport ;
+
+  fun BirmimghamAirNationalGuardALAirport : Ind Airport ;
+
+  fun BitolaAirport : Ind Airport ;
+
+  fun BlackHillsAirportClydeIceFieldSDAirport : Ind Airport ;
+
+  fun BlackRockNMAirport : Ind Airport ;
+
+  fun BlackTickleAerodromeNFAirport : Ind Airport ;
+
+  fun BlackburneMontserratPlymouthAirport : Ind Airport ;
+
+  fun BlagnacToulouseAirport : Ind Airport ;
+
+  fun BlancSablonQCAirport : Ind Airport ;
+
+  fun BloodveinRiverMBAirport : Ind Airport ;
+
+  fun BlubberBayBCAirport : Ind Airport ;
+
+  fun BlueGrassKYAirport : Ind Airport ;
+
+  fun BobQuinnLakeAirport : Ind Airport ;
+
+  fun BochumAirport : Ind Airport ;
+
+  fun BoeblingenAirport : Ind Airport ;
+
+  fun BogandeAirport : Ind Airport ;
+
+  fun BogashevoTomskAirport : Ind Airport ;
+
+  fun BogueFieldMarineCorpsAuxiliaryLandingFieldNCAirport : Ind Airport ;
+
+  fun BolAirportChad : Ind Airport ;
+
+  fun BolshesavinoPermAirport : Ind Airport ;
+
+  fun BomJesusdaLapaBAAirport : Ind Airport ;
+
+  fun BomarFieldShelbyvilleMunicipalTNAirport : Ind Airport ;
+
+  fun BonaventureQCAirport : Ind Airport ;
+
+  fun BongorAirport : Ind Airport ;
+
+  fun BonnyvilleABAirport : Ind Airport ;
+
+  fun BonrikiTarawaAirport : Ind Airport ;
+
+  fun BoonevilleBaldwynMSAirport : Ind Airport ;
+
+  fun BorbaAirport : Ind Airport ;
+
+  fun BordenONAirport : Ind Airport ;
+
+  fun BornholmRonneRoenneAirport : Ind Airport ;
+
+  fun BorniteAKAirport : Ind Airport ;
+
+  fun BotucatuSPAirport : Ind Airport ;
+
+  fun BouChekifTiaretAirport : Ind Airport ;
+
+  fun BoukhalefTangerTangierAirport : Ind Airport ;
+
+  fun BoulderMunicipalCOAirport : Ind Airport ;
+
+  fun BoulsaAirport : Ind Airport ;
+
+  fun BoundaryBayBCAirport : Ind Airport ;
+
+  fun BourgStMauriceAirport : Ind Airport ;
+
+  fun BoussoAirport : Ind Airport ;
+
+  fun BoutilimitAirport : Ind Airport ;
+
+  fun BowenQueenslandAirport : Ind Airport ;
+
+  fun BowmanFieldKYAirport : Ind Airport ;
+
+  fun BrackAirport : Ind Airport ;
+
+  fun BrackettFieldCAAirport : Ind Airport ;
+
+  fun BrandonAirport : Ind Airport ;
+
+  fun BrandonMBAirport : Ind Airport ;
+
+  fun BrantfordONAirport : Ind Airport ;
+
+  fun BratislavaBusStationBratislavaAirport : Ind Airport ;
+
+  fun BrazoriaCountyTXAirport : Ind Airport ;
+
+  fun BreckenridgeCOAirport : Ind Airport ;
+
+  fun BremertonNationalWAAirport : Ind Airport ;
+
+  fun BresciaAirport : Ind Airport ;
+
+  fun BrevoortNTAirport : Ind Airport ;
+
+  fun BridgewaterAirParkVAAirport : Ind Airport ;
+
+  fun BrittonMunicipalSDAirport : Ind Airport ;
+
+  fun BrnikLjubljanaAirport : Ind Airport ;
+
+  fun BroadviewSKAirport : Ind Airport ;
+
+  fun BrochetMBAirport : Ind Airport ;
+
+  fun BrockvilleAerodromeONAirport : Ind Airport ;
+
+  fun BromontQCAirport : Ind Airport ;
+
+  fun BronLyonAirport : Ind Airport ;
+
+  fun BronsonCreekAerodromeBCAirport : Ind Airport ;
+
+  fun BrookhavenNYAirport : Ind Airport ;
+
+  fun BroughtonIslandNTAirport : Ind Airport ;
+
+  fun BrownFieldMunicipalCAAirport : Ind Airport ;
+
+  fun BrunswickCountyNCAirport : Ind Airport ;
+
+  fun BrunswickNavalAirStationMEAirport : Ind Airport ;
+
+  fun BrusqueSCAirport : Ind Airport ;
+
+  fun BuchananAirport : Ind Airport ;
+
+  fun BuchansNFAirport : Ind Airport ;
+
+  fun BudvaAirport : Ind Airport ;
+
+  fun BuffaloNarrowsSKAirport : Ind Airport ;
+
+  fun BugulmaTatarstanAirport : Ind Airport ;
+
+  fun BuinAirport : Ind Airport ;
+
+  fun BullHarbourWaterAerodromeBCAirport : Ind Airport ;
+
+  fun BuluhTumbangTanjungPandanAirport : Ind Airport ;
+
+  fun BunoBedelleAirport : Ind Airport ;
+
+  fun BuolNewGuineaAirport : Ind Airport ;
+
+  fun BuraimiAirport : Ind Airport ;
+
+  fun BuretaAirport : Ind Airport ;
+
+  fun BurlingtonAirparkONAirport : Ind Airport ;
+
+  fun BurnettCountyWIAirport : Ind Airport ;
+
+  fun BurnsLakeBCAirport : Ind Airport ;
+
+  fun BurwashYTAirport : Ind Airport ;
+
+  fun BusuangaAirport : Ind Airport ;
+
+  fun ButterworthAirport : Ind Airport ;
+
+  fun ButtonvilleAirfieldONAirport : Ind Airport ;
+
+  fun ByronBayNTAirport : Ind Airport ;
+
+  fun ByronBayQueenslandAirport : Ind Airport ;
+
+  fun CPACarlosRovirosaVillahermosaAirport : Ind Airport ;
+
+  fun CaballocochaAirport : Ind Airport ;
+
+  fun CabanissFieldNavalOutlyingFieldTXAirport : Ind Airport ;
+
+  fun CaboolMemorialMOAirport : Ind Airport ;
+
+  fun CachoeiradoSulRSAirport : Ind Airport ;
+
+  fun CahorsAirport : Ind Airport ;
+
+  fun CairnsArmyAirFieldALAirport : Ind Airport ;
+
+  fun CaixasdoSulRSAirport : Ind Airport ;
+
+  fun CaledoniaCountyVTAirport : Ind Airport ;
+
+  fun CaletaJosefinaAirport : Ind Airport ;
+
+  fun CalgaryInternationalABAirport : Ind Airport ;
+
+  fun CallawayGAAirport : Ind Airport ;
+
+  fun CamacariBAAirport : Ind Airport ;
+
+  fun CambridgeBayNTAirport : Ind Airport ;
+
+  fun CampMaybryTXAirport : Ind Airport ;
+
+  fun CampbellRiverBCAirport : Ind Airport ;
+
+  fun CampbellRiverHarborSeaplaneBaseBCAirport : Ind Airport ;
+
+  fun CampoBomRSAirport : Ind Airport ;
+
+  fun CamposdoJordaoAirport : Ind Airport ;
+
+  fun CanThoAirport : Ind Airport ;
+
+  fun CanaBravaPAAirport : Ind Airport ;
+
+  fun CanelasRSAirport : Ind Airport ;
+
+  fun CanoasRSAirport : Ind Airport ;
+
+  fun CanoinhasSCAirport : Ind Airport ;
+
+  fun CapeCanaveralAirForceStationSkidStripFLAirport : Ind Airport ;
+
+  fun CapeDorsetNTAirport : Ind Airport ;
+
+  fun CapeDyerNTAirport : Ind Airport ;
+
+  fun CapeHooperNTAirport : Ind Airport ;
+
+  fun CapeLisburneLRRSAKAirport : Ind Airport ;
+
+  fun CapeMayCountyNJAirport : Ind Airport ;
+
+  fun CapeParryNTAirport : Ind Airport ;
+
+  fun CapeStJamesBCAirport : Ind Airport ;
+
+  fun CapeYoungNTAirport : Ind Airport ;
+
+  fun CapitalBeijingPekingAirport : Ind Airport ;
+
+  fun CapitalCityMIAirport : Ind Airport ;
+
+  fun CapitalILAirport : Ind Airport ;
+
+  fun CapitanAvSalvadorOgayaPuertoSuarezAirport : Ind Airport ;
+
+  fun CapitanJoseDVasquezSanJulianAirport : Ind Airport ;
+
+  fun CapitanMontesTalaraAirport : Ind Airport ;
+
+  fun CapitanNicolasRojasPotosiAirport : Ind Airport ;
+
+  fun CapitanOrielleaPlazaTirijaTarijaAirport : Ind Airport ;
+
+  fun CapodichinoNapoliNaplesAirport : Ind Airport ;
+
+  fun CapriAirport : Ind Airport ;
+
+  fun CarbonCountyUTAirport : Ind Airport ;
+
+  fun CaribouIslandONAirport : Ind Airport ;
+
+  fun CarlRKellerFieldOHAirport : Ind Airport ;
+
+  fun CaroraAirport : Ind Airport ;
+
+  fun CarpONAirport : Ind Airport ;
+
+  fun CarrascoMontevideoAirport : Ind Airport ;
+
+  fun CarrilloAirport : Ind Airport ;
+
+  fun CartersvilleGAAirport : Ind Airport ;
+
+  fun CarthageTunisAirport : Ind Airport ;
+
+  fun CartiervilleQCAirport : Ind Airport ;
+
+  fun CartwrightNFAirport : Ind Airport ;
+
+  fun CasasGrandesAirport : Ind Airport ;
+
+  fun CaselleTorinoTurinAirport : Ind Airport ;
+
+  fun CasementOHAirport : Ind Airport ;
+
+  fun CastleAirForceBaseCAAirport : Ind Airport ;
+
+  fun CastlegarBCAirport : Ind Airport ;
+
+  fun CastroAirport : Ind Airport ;
+
+  fun CastunhalPAAirport : Ind Airport ;
+
+  fun CatLakeONAirport : Ind Airport ;
+
+  fun CataguasesMGAirport : Ind Airport ;
+
+  fun CatalaoGOAirport : Ind Airport ;
+
+  fun CatalinaSeaAirTerminalCAAirport : Ind Airport ;
+
+  fun CatanduvaSPAirport : Ind Airport ;
+
+  fun CatanzaroAirport : Ind Airport ;
+
+  fun CatungAerodromeNTAirport : Ind Airport ;
+
+  fun CecilFieldNavalAirStationFLAirport : Ind Airport ;
+
+  fun CentervilleMunicipalIAAirport : Ind Airport ;
+
+  fun CentralFloridaRegionalFLAirport : Ind Airport ;
+
+  fun CentralMaineAirportofNorridgewockMEAirport : Ind Airport ;
+
+  fun CerroSombreroAirport : Ind Airport ;
+
+  fun ChahBaharAirport : Ind Airport ;
+
+  fun ChaitenAirport : Ind Airport ;
+
+  fun ChalkSeaplaneBaseFLAirport : Ind Airport ;
+
+  fun ChampagneReimsAirport : Ind Airport ;
+
+  fun ChanGurneyMunicipalSDAirport : Ind Airport ;
+
+  fun ChandalarLakeAKAirport : Ind Airport ;
+
+  fun ChangiInternationalSingaporeAirport : Ind Airport ;
+
+  fun ChapaisQCAirport : Ind Airport ;
+
+  fun ChapecoSCAirport : Ind Airport ;
+
+  fun ChapleauONAirport : Ind Airport ;
+
+  fun CharlieSinclairMemorialMBAirport : Ind Airport ;
+
+  fun CharloNBAirport : Ind Airport ;
+
+  fun CharlotteAmalieStThomasSeaplaneBaseStThomasAirport : Ind Airport ;
+
+  fun CharlotteCountyFLAirport : Ind Airport ;
+
+  fun CharlottetownAerodromeNFAirport : Ind Airport ;
+
+  fun CharlottetownPEAirport : Ind Airport ;
+
+  fun CharmeilVichyAirport : Ind Airport ;
+
+  fun CharquedasRSAirport : Ind Airport ;
+
+  fun ChaseFieldNavalAirStationTXAirport : Ind Airport ;
+
+  fun ChateauBougonNantesAirport : Ind Airport ;
+
+  fun ChathamAerodromeONAirport : Ind Airport ;
+
+  fun ChathamNBAirport : Ind Airport ;
+
+  fun CherryCapitalMIAirport : Ind Airport ;
+
+  fun CherryPointMarineCorpsAirStationCunninghamFieldNCAirport : Ind Airport ;
+
+  fun ChesterfieldInletNTAirport : Ind Airport ;
+
+  fun ChetwyndBCAirport : Ind Airport ;
+
+  fun ChevakAKAirport : Ind Airport ;
+
+  fun CheyenneCountyMunicipalKSAirport : Ind Airport ;
+
+  fun ChiangKaiShekTaipeiAirport : Ind Airport ;
+
+  fun ChicagoMidwayILAirport : Ind Airport ;
+
+  fun ChicagoOHareInternationalILAirport : Ind Airport ;
+
+  fun ChillagoeQueenslandAirport : Ind Airport ;
+
+  fun ChillanAirport : Ind Airport ;
+
+  fun ChilliwackBCAirport : Ind Airport ;
+
+  fun ChinaLakeNAWSArmitageFieldCAAirport : Ind Airport ;
+
+  fun ChincoteagueVAAirport : Ind Airport ;
+
+  fun ChingoziTeteAirport : Ind Airport ;
+
+  fun ChisasibiAerodromeQCAirport : Ind Airport ;
+
+  fun ChitoseSaporroAirport : Ind Airport ;
+
+  fun ChoctawNavalOutlyingFieldFLAirport : Ind Airport ;
+
+  fun ChristianstedHarborSSBSeaplaneBaseStCroixAirport : Ind Airport ;
+
+  fun ChristmasIslandChristmasIslandAirport : Ind Airport ;
+
+  fun ChurAirport : Ind Airport ;
+
+  fun ChurchillFallsNFAirport : Ind Airport ;
+
+  fun ChurchillMBAirport : Ind Airport ;
+
+  fun ChuukInternationalTrukIslandWenoIslandAirport : Ind Airport ;
+
+  fun CibaoSantiagoAirport : Ind Airport ;
+
+  fun CilikRiwutPalangkarayaAirport : Ind Airport ;
+
+  fun CincinnatiMunicipalAirportLunkenFieldOHAirport : Ind Airport ;
+
+  fun CityCountyORAirport : Ind Airport ;
+
+  fun CityEnglandAirport : Ind Airport ;
+
+  fun CityLaeAirport : Ind Airport ;
+
+  fun CiudadManteAirport : Ind Airport ;
+
+  fun CiudadelaAirport : Ind Airport ;
+
+  fun ClarkFieldMunicipalTXAirport : Ind Airport ;
+
+  fun ClevelandMunicipalMSAirport : Ind Airport ;
+
+  fun ClintonCountyNYAirport : Ind Airport ;
+
+  fun ClintonCreekYTAirport : Ind Airport ;
+
+  fun ClintonPointNTAirport : Ind Airport ;
+
+  fun ClockTowerILAirport : Ind Airport ;
+
+  fun CluffLakeAerodromeSKAirport : Ind Airport ;
+
+  fun ClydeRiverNTAirport : Ind Airport ;
+
+  fun CoatzacoalcosAirport : Ind Airport ;
+
+  fun CobbCountyAirportMcCollumFieldGAAirport : Ind Airport ;
+
+  fun CocaAirport : Ind Airport ;
+
+  fun CochraneAirport : Ind Airport ;
+
+  fun CochraneONAirport : Ind Airport ;
+
+  fun CoffeyCountyKSAirport : Ind Airport ;
+
+  fun ColacVictoriaAirport : Ind Airport ;
+
+  fun ColatinaESAirport : Ind Airport ;
+
+  fun ColdLakeRegionalABAirport : Ind Airport ;
+
+  fun ColesCountyMemorialILAirport : Ind Airport ;
+
+  fun ColiseumStreetCAAirport : Ind Airport ;
+
+  fun CollinsBaySKAirport : Ind Airport ;
+
+  fun ColomboAirport : Ind Airport ;
+
+  fun ColonAirport : Ind Airport ;
+
+  fun ColonAirportCuba : Ind Airport ;
+
+  fun ColoniaSarmienAirport : Ind Airport ;
+
+  fun ColonialWilliamsburgVAAirport : Ind Airport ;
+
+  fun ColtonCAAirport : Ind Airport ;
+
+  fun ColumbusLowndesCountyMSAirport : Ind Airport ;
+
+  fun ColumbusMunicipalNEAirport : Ind Airport ;
+
+  fun ColvilleLakeAerodromeNTAirport : Ind Airport ;
+
+  fun ComayaguaAirport : Ind Airport ;
+
+  fun ComodoroZanniPehuajoAirport : Ind Airport ;
+
+  fun ComoxBCAirport : Ind Airport ;
+
+  fun CondronArmyAirFieldNMAirport : Ind Airport ;
+
+  fun CongoTownAndrosAirport : Ind Airport ;
+
+  fun ConnellsvillePAAirport : Ind Airport ;
+
+  fun ConselheiroLafaieteMGAirport : Ind Airport ;
+
+  fun ContadoraAirport : Ind Airport ;
+
+  fun CoolullahAirport : Ind Airport ;
+
+  fun CoomaNewSouthWalesAirport : Ind Airport ;
+
+  fun CoopPointMBAirport : Ind Airport ;
+
+  fun CopanAirport : Ind Airport ;
+
+  fun CopperMountainCOAirport : Ind Airport ;
+
+  fun CoppermineNTAirport : Ind Airport ;
+
+  fun CoralHarbourNTAirport : Ind Airport ;
+
+  fun CordilloDownsSouthAustraliaAirport : Ind Airport ;
+
+  fun CorkAirport : Ind Airport ;
+
+  fun CornIslandAirport : Ind Airport ;
+
+  fun CoronationABAirport : Ind Airport ;
+
+  fun CoronelCarlosCirianiSantaRosaTacnaAirport : Ind Airport ;
+
+  fun CorpusChristiNavalAirStationTXAirport : Ind Airport ;
+
+  fun CortesBayWaterAerodromeBCAirport : Ind Airport ;
+
+  fun CostaSmeraldaSardiniaAirport : Ind Airport ;
+
+  fun CotedAzurNiceAirport : Ind Airport ;
+
+  fun CotiaSPAirport : Ind Airport ;
+
+  fun Coto47Airport : Ind Airport ;
+
+  fun CottesmoreRAFStationEnglandAirport : Ind Airport ;
+
+  fun CountyHeliportCAAirport : Ind Airport ;
+
+  fun CourtenayAerodromeBCAirport : Ind Airport ;
+
+  fun CowleyABAirport : Ind Airport ;
+
+  fun CoxFieldTXAirport : Ind Airport ;
+
+  fun CraigFieldALAirport : Ind Airport ;
+
+  fun CranbrookBCAirport : Ind Airport ;
+
+  fun CravoNorteAirport : Ind Airport ;
+
+  fun CreeLakeSKAirport : Ind Airport ;
+
+  fun CreechArmyAirFieldKYAirport : Ind Airport ;
+
+  fun CrestonAerodromeBCAirport : Ind Airport ;
+
+  fun CrossonFieldCOAirport : Ind Airport ;
+
+  fun CrownTobagoIsAirport : Ind Airport ;
+
+  fun CrowsLandingNavalAuxiliaryLandingFieldCAAirport : Ind Airport ;
+
+  fun CruzBaySeaplaneBaseStJohnAirport : Ind Airport ;
+
+  fun CrystalMNAirport : Ind Airport ;
+
+  fun CubaMunicipalMOAirport : Ind Airport ;
+
+  fun CubiPointNavalAirStationCubiPointAirport : Ind Airport ;
+
+  fun CulbersonCountyTXAirport : Ind Airport ;
+
+  fun CullatonLakeNTAirport : Ind Airport ;
+
+  fun CumberlandMunicipalWIAirport : Ind Airport ;
+
+  fun CuritibaosAirport : Ind Airport ;
+
+  fun CurraisNovosRNAirport : Ind Airport ;
+
+  fun CuruzuCuatiaAirport : Ind Airport ;
+
+  fun CyrilEKingStThomasAirport : Ind Airport ;
+
+  fun DaboSingkepAirport : Ind Airport ;
+
+  fun DadeCollierTrainingandTransitionFLAirport : Ind Airport ;
+
+  fun DakhlaVillaCisnerosWesternSaharaAirport : Ind Airport ;
+
+  fun DallasNavalAirStationHensleyFieldTXAirport : Ind Airport ;
+
+  fun DamanAirport : Ind Airport ;
+
+  fun DammanAirport : Ind Airport ;
+
+  fun DaneCountyRegionalAirportTruaxFieldWIAirport : Ind Airport ;
+
+  fun DanielsHarbourNFAirport : Ind Airport ;
+
+  fun DannellyFieldALAirport : Ind Airport ;
+
+  fun DareCountyRegionalNCAirport : Ind Airport ;
+
+  fun DarkeCountyOHAirport : Ind Airport ;
+
+  fun DarnleyIslandQueenslandAirport : Ind Airport ;
+
+  fun DashhowuzTashauzDashhowuzAirport : Ind Airport ;
+
+  fun DauphinMBAirport : Ind Airport ;
+
+  fun DavisFieldOKAirport : Ind Airport ;
+
+  fun DavisInletAerodromeNFAirport : Ind Airport ;
+
+  fun DawsonCreekBCAirport : Ind Airport ;
+
+  fun DawsonYTAirport : Ind Airport ;
+
+  fun DaytonGeneralAirportSouthOHAirport : Ind Airport ;
+
+  fun DeadhorseAKAirport : Ind Airport ;
+
+  fun DeadmansCayLongAirport : Ind Airport ;
+
+  fun DeanRiverBCAirport : Ind Airport ;
+
+  fun DeaseLakeBCAirport : Ind Airport ;
+
+  fun DeceptionBayWaterAerodromeQCAirport : Ind Airport ;
+
+  fun DeepBayAKAirport : Ind Airport ;
+
+  fun DeerLakeNFAirport : Ind Airport ;
+
+  fun DeerLakeONAirport : Ind Airport ;
+
+  fun DekalbPeachtreeGAAirport : Ind Airport ;
+
+  fun DelawareCountyAirportJohnsonFieldINAirport : Ind Airport ;
+
+  fun DennyIslandBCAirport : Ind Airport ;
+
+  fun DerbyFieldNVAirport : Ind Airport ;
+
+  fun DesolationSoundBCAirport : Ind Airport ;
+
+  fun DetroitNavalAirFacilityMIAirport : Ind Airport ;
+
+  fun DewarLakesNTAirport : Ind Airport ;
+
+  fun DewittFieldOldTownMunicipalMEAirport : Ind Airport ;
+
+  fun DiademaSPAirport : Ind Airport ;
+
+  fun DiagorasMaritsaRhodosIslandAirport : Ind Airport ;
+
+  fun DiebougouAirport : Ind Airport ;
+
+  fun DiegoGarciaAirport : Ind Airport ;
+
+  fun DigbyAerodromeNSAirport : Ind Airport ;
+
+  fun DiwopuUrumqiAirport : Ind Airport ;
+
+  fun DjiboAirport : Ind Airport ;
+
+  fun DnataAirport : Ind Airport ;
+
+  fun DobbinsAirReserveBaseGAAirport : Ind Airport ;
+
+  fun DocCreekAirport : Ind Airport ;
+
+  fun DodgeCountyWIAirport : Ind Airport ;
+
+  fun DoisdeJulhoBAAirport : Ind Airport ;
+
+  fun DolbeauStMethodeQCAirport : Ind Airport ;
+
+  fun DomPedritoRSAirport : Ind Airport ;
+
+  fun DoorCountyCherrylandWIAirport : Ind Airport ;
+
+  fun DornierDLROberpfaffenhofenAirport : Ind Airport ;
+
+  fun DouglasCountyNVAirport : Ind Airport ;
+
+  fun DownsviewONAirport : Ind Airport ;
+
+  fun DraughonMillerMunicipalTXAirport : Ind Airport ;
+
+  fun DraytonValleyIndustrialAerodromeABAirport : Ind Airport ;
+
+  fun DrydenMunicipalONAirport : Ind Airport ;
+
+  fun DuesseldorfDusseldorfAirport : Ind Airport ;
+
+  fun DuesseldorfDusseldorfKoelnKolnAirport : Ind Airport ;
+
+  fun DundoChitatoAirport : Ind Airport ;
+
+  fun DuquedeCaixasRJAirport : Ind Airport ;
+
+  fun DutchessCountyNYAirport : Ind Airport ;
+
+  fun DyessArmyAirFieldRoiNamurAirport : Ind Airport ;
+
+  fun EarltonONAirport : Ind Airport ;
+
+  fun East34thStreetHeliportNYAirport : Ind Airport ;
+
+  fun EastMainRiverQCAirport : Ind Airport ;
+
+  fun EasternWestVirginiaRegionalAirportShepherdFieldWVAirport : Ind Airport ;
+
+  fun EastleighEnglandAirport : Ind Airport ;
+
+  fun EchterdingenStuttgartAirport : Ind Airport ;
+
+  fun EckertFieldCAAirport : Ind Airport ;
+
+  fun EdenNewSouthWalesAirport : Ind Airport ;
+
+  fun EdmontonInternationalABAirport : Ind Airport ;
+
+  fun EdmontonMunicipalABAirport : Ind Airport ;
+
+  fun EdsonABAirport : Ind Airport ;
+
+  fun EduardoGomesAMAirport : Ind Airport ;
+
+  fun EdwardFKnappStateVTAirport : Ind Airport ;
+
+  fun EglinAirForceBaseOkaloosaCountyFLAirport : Ind Airport ;
+
+  fun EglintonNorthernIrelandAirport : Ind Airport ;
+
+  fun EilatInternationalOvdaAirport : Ind Airport ;
+
+  fun ElCentroNavalAirFacilityCAAirport : Ind Airport ;
+
+  fun ElCocoSanJoseAirport : Ind Airport ;
+
+  fun ElGoueraAirport : Ind Airport ;
+
+  fun ElJacuelPuntadelEsteAirport : Ind Airport ;
+
+  fun ElPlumerilloMendozaAirport : Ind Airport ;
+
+  fun ElPorvenirAirport : Ind Airport ;
+
+  fun ElRahabaSanaaSanaaAirport : Ind Airport ;
+
+  fun ElRosalColLMGuerreroTulcanAirport : Ind Airport ;
+
+  fun ElTehuelchePuertoMadrynAirport : Ind Airport ;
+
+  fun ElTepualPuertoMonttAirport : Ind Airport ;
+
+  fun ElToroMarineCorpsAirStationCAAirport : Ind Airport ;
+
+  fun ElTrompilloSantaCruzAirport : Ind Airport ;
+
+  fun ElVigiaAirport : Ind Airport ;
+
+  fun ElkinMunicipalNCAirport : Ind Airport ;
+
+  fun ElliotLakeMunicipalONAirport : Ind Airport ;
+
+  fun EllsworthAirForceBaseSDAirport : Ind Airport ;
+
+  fun EllysonNavalAirStationFLAirport : Ind Airport ;
+
+  fun EloyAlfaroMantaAirport : Ind Airport ;
+
+  fun ElyMunicipalMNAirport : Ind Airport ;
+
+  fun EmmenAirport : Ind Airport ;
+
+  fun EnNahudAirport : Ind Airport ;
+
+  fun EnidWoodringMunicipalOKAirport : Ind Airport ;
+
+  fun EnnadaiLakeNTAirport : Ind Airport ;
+
+  fun EnsheimSaarbrueckenSaarbruckenAirport : Ind Airport ;
+
+  fun EntzheimStrasbourgAirport : Ind Airport ;
+
+  fun EppleyAirfieldNEAirport : Ind Airport ;
+
+  fun ErnestALoveFieldAZAirport : Ind Airport ;
+
+  fun EsSeniaOranAirport : Ind Airport ;
+
+  fun EsperanceSaintMartinAirport : Ind Airport ;
+
+  fun EsperanzaAirport : Ind Airport ;
+
+  fun EsquimaltBCAirport : Ind Airport ;
+
+  fun EssendonVictoriaAirport : Ind Airport ;
+
+  fun EstevanPointBCAirport : Ind Airport ;
+
+  fun EstevanSKAirport : Ind Airport ;
+
+  fun EugenioMariadeHostosMayaguezAirport : Ind Airport ;
+
+  fun EuniceLAAirport : Ind Airport ;
+
+  fun EurekaNTAirport : Ind Airport ;
+
+  fun EvelynSharpFieldNEAirport : Ind Airport ;
+
+  fun EverettStewartTNAirport : Ind Airport ;
+
+  fun ExumaInternationalExumaAirport : Ind Airport ;
+
+  fun FairchildAirForceBaseWAAirport : Ind Airport ;
+
+  fun FaisalabadAirport : Ind Airport ;
+
+  fun FalconFieldAZAirport : Ind Airport ;
+
+  fun FalherABAirport : Ind Airport ;
+
+  fun FallonNavalAirStationVanVoorhisFieldNVAirport : Ind Airport ;
+
+  fun FarafanganaAirport : Ind Airport ;
+
+  fun FaroYTAirport : Ind Airport ;
+
+  fun FasceneNossiBeAirport : Ind Airport ;
+
+  fun FassamaAirport : Ind Airport ;
+
+  fun FeltsFieldWAAirport : Ind Airport ;
+
+  fun FentressNavalAuxiliaryLandingFieldVAAirport : Ind Airport ;
+
+  fun FerdinandoLuisRibasDominicciSanJuanAirport : Ind Airport ;
+
+  fun FianarantsoaAirport : Ind Airport ;
+
+  fun FiddymentFieldCAAirport : Ind Airport ;
+
+  fun FindelLuxembourgAirport : Ind Airport ;
+
+  fun FinkerwerdenAirbusPlantHamburgAirport : Ind Airport ;
+
+  fun FlabobCAAirport : Ind Airport ;
+
+  fun FlinFlonMBAirport : Ind Airport ;
+
+  fun FoleyMunicipalALAirport : Ind Airport ;
+
+  fun FondduLacSKAirport : Ind Airport ;
+
+  fun FontRomeuAirport : Ind Airport ;
+
+  fun ForchheimKarlsruheAirport : Ind Airport ;
+
+  fun FordIslandAuxiliaryLandingFieldHIAirport : Ind Airport ;
+
+  fun ForestvilleQCAirport : Ind Airport ;
+
+  fun ForneyArmyAirFieldMOAirport : Ind Airport ;
+
+  fun FortAlbanyONAirport : Ind Airport ;
+
+  fun FortChipewyanABAirport : Ind Airport ;
+
+  fun FortFrancesMunicipalONAirport : Ind Airport ;
+
+  fun FortFranklinNTAirport : Ind Airport ;
+
+  fun FortFrederickAKAirport : Ind Airport ;
+
+  fun FortGoodHopeNTAirport : Ind Airport ;
+
+  fun FortHopeONAirport : Ind Airport ;
+
+  fun FortLiardNTAirport : Ind Airport ;
+
+  fun FortMcMurrayABAirport : Ind Airport ;
+
+  fun FortMcPhersonNTAirport : Ind Airport ;
+
+  fun FortNelsonBCAirport : Ind Airport ;
+
+  fun FortNormanNTAirport : Ind Airport ;
+
+  fun FortProvidenceNTAirport : Ind Airport ;
+
+  fun FortRelianceWaterAerodromeNTAirport : Ind Airport ;
+
+  fun FortResolutionNTAirport : Ind Airport ;
+
+  fun FortSevernONAirport : Ind Airport ;
+
+  fun FortSimpsonNTAirport : Ind Airport ;
+
+  fun FortSmithNTAirport : Ind Airport ;
+
+  fun FortStJohnBCAirport : Ind Airport ;
+
+  fun FoxHarbourAerodromeNFAirport : Ind Airport ;
+
+  fun FramnesNarvikAirport : Ind Airport ;
+
+  fun FranciscoSaCarneiroPedrasRubrasPortoOportoAirport : Ind Airport ;
+
+  fun FrankWileyFieldMTAirport : Ind Airport ;
+
+  fun FranklinCountyTNAirport : Ind Airport ;
+
+  fun FranzJosefAirport : Ind Airport ;
+
+  fun FrederictonNBAirport : Ind Airport ;
+
+  fun FreemanMunicipalINAirport : Ind Airport ;
+
+  fun FreiburgAirport : Ind Airport ;
+
+  fun FrescatyMetzAirport : Ind Airport ;
+
+  fun FriedmanMemorialIDAirport : Ind Airport ;
+
+  fun FritzscheArmyAirFieldCAAirport : Ind Airport ;
+
+  fun FrosinoneAirport : Ind Airport ;
+
+  fun FrosonAirBaseOstersundAirport : Ind Airport ;
+
+  fun FryklandaTorsbyAirport : Ind Airport ;
+
+  fun FuaAmotuNukuAlofaTongatapuAirport : Ind Airport ;
+
+  fun FultonCountyINAirport : Ind Airport ;
+
+  fun FultonCountyOHAirport : Ind Airport ;
+
+  fun GagetownNBAirport : Ind Airport ;
+
+  fun GagnonQCAirport : Ind Airport ;
+
+  fun GalileiSanGiustoPisaAirport : Ind Airport ;
+
+  fun GanderInternationalNFAirport : Ind Airport ;
+
+  fun GanedTaizAirport : Ind Airport ;
+
+  fun GangesHarborBCAirport : Ind Airport ;
+
+  fun GaouaAirport : Ind Airport ;
+
+  fun GaranhunsPEAirport : Ind Airport ;
+
+  fun GardenCountyNEAirport : Ind Airport ;
+
+  fun GardenKeySeaplanaBaseFLAirport : Ind Airport ;
+
+  fun GarfieldCountyRegionalCOAirport : Ind Airport ;
+
+  fun GarmischPartenkirchenAirport : Ind Airport ;
+
+  fun GarnerFieldTXAirport : Ind Airport ;
+
+  fun GarrettCountyMDAirport : Ind Airport ;
+
+  fun GarulhosSPAirport : Ind Airport ;
+
+  fun GaspeQCAirport : Ind Airport ;
+
+  fun GatineauQCAirport : Ind Airport ;
+
+  fun GatwickEnglandAirport : Ind Airport ;
+
+  fun GaviotasAirport : Ind Airport ;
+
+  fun GeiteryggenSkeinAirport : Ind Airport ;
+
+  fun GeneralAbelardoLRodriguezTijuanaAirport : Ind Airport ;
+
+  fun GeneralEnriqueMoscTartagalAirport : Ind Airport ;
+
+  fun GeneralFranciscoJavierMinaTampicoAirport : Ind Airport ;
+
+  fun GeneralHeribertoJaraVeracruzAirport : Ind Airport ;
+
+  fun GeneralLeobardoRuizZacatecasAirport : Ind Airport ;
+
+  fun GeneralLucioBlancoReynosaAirport : Ind Airport ;
+
+  fun GeneralManuelMdeLeonLaPazAirport : Ind Airport ;
+
+  fun GeneralMitchellInternationalWIAirport : Ind Airport ;
+
+  fun GeneralOmarTorrijosHerraraPanamaCityAirport : Ind Airport ;
+
+  fun GeneralRafaelBueinaMazatlanAirport : Ind Airport ;
+
+  fun GeneralRodolfoSTaboadaMexicaliAirport : Ind Airport ;
+
+  fun GeneralUlpianoPaezSalinasAirport : Ind Airport ;
+
+  fun GeneralUrquizaParanaAirport : Ind Airport ;
+
+  fun GeneralVillegaAirport : Ind Airport ;
+
+  fun GeneralWilliamJFoxAirfieldCAAirport : Ind Airport ;
+
+  fun GeorgeAirForceBaseCAAirport : Ind Airport ;
+
+  fun GeorgianBayAerodromeONAirport : Ind Airport ;
+
+  fun GeraldtonONAirport : Ind Airport ;
+
+  fun GermansenLandingBCAirport : Ind Airport ;
+
+  fun GethsemaniQCAirport : Ind Airport ;
+
+  fun GhadamesAirport : Ind Airport ;
+
+  fun GiarmataTimisoaraAirport : Ind Airport ;
+
+  fun GibsonCountyTNAirport : Ind Airport ;
+
+  fun GifuAirport : Ind Airport ;
+
+  fun GijonAirport : Ind Airport ;
+
+  fun GillamMBAirport : Ind Airport ;
+
+  fun GillespieFieldCAAirport : Ind Airport ;
+
+  fun GilliesBayBCAirport : Ind Airport ;
+
+  fun GillotReunionSaintDenisdelaReunionAirport : Ind Airport ;
+
+  fun GimliIndustrialParkMBAirport : Ind Airport ;
+
+  fun GjoaHavenNTAirport : Ind Airport ;
+
+  fun GladmanPointNTAirport : Ind Airport ;
+
+  fun GlenviewNavalAirStationILAirport : Ind Airport ;
+
+  fun GlyncoNavalAirStationGAAirport : Ind Airport ;
+
+  fun GnossFieldCAAirport : Ind Airport ;
+
+  fun GobernadorCastelloViedmaAirport : Ind Airport ;
+
+  fun GoderichONAirport : Ind Airport ;
+
+  fun GodsLakeNarrowsMBAirport : Ind Airport ;
+
+  fun GodsRiverMBAirport : Ind Airport ;
+
+  fun GoldCoastCoolangattaQueenslandAirport : Ind Airport ;
+
+  fun GoldenRockStKittsAirport : Ind Airport ;
+
+  fun GoleniowSzczecinStettinAirport : Ind Airport ;
+
+  fun GoliadNavalAuxiliaryLandingFieldTXAirport : Ind Airport ;
+
+  fun GolosonLaCeibaAirport : Ind Airport ;
+
+  fun GooseAirport : Ind Airport ;
+
+  fun GooseNFAirport : Ind Airport ;
+
+  fun GorgeHarborBCAirport : Ind Airport ;
+
+  fun GoromGoromAirport : Ind Airport ;
+
+  fun GoslarAirport : Ind Airport ;
+
+  fun GoyaAirport : Ind Airport ;
+
+  fun GrandCanyonCavernsAZAirport : Ind Airport ;
+
+  fun GrandForksBCAirport : Ind Airport ;
+
+  fun GrandViewInternationalWAAirport : Ind Airport ;
+
+  fun GrandeCacheAerodromeABAirport : Ind Airport ;
+
+  fun GrandePrairieABAirport : Ind Airport ;
+
+  fun GrantCountyNMAirport : Ind Airport ;
+
+  fun GrantCountyWAAirport : Ind Airport ;
+
+  fun GrantCountyWIAirport : Ind Airport ;
+
+  fun GrantCountyWVAirport : Ind Airport ;
+
+  fun GranvilleLakeMBAirport : Ind Airport ;
+
+  fun GraysonCountyTXAirport : Ind Airport ;
+
+  fun GreaterPeoriaRegionalILAirport : Ind Airport ;
+
+  fun GreaterPittsburghInternationalPAAirport : Ind Airport ;
+
+  fun GreaterPortsmouthRegionalOHAirport : Ind Airport ;
+
+  fun GreaterRochesterInternationalNYAirport : Ind Airport ;
+
+  fun GreaterRockfordILAirport : Ind Airport ;
+
+  fun GreenINAirport : Ind Airport ;
+
+  fun GreenLakeWaterAerodromeBCAirport : Ind Airport ;
+
+  fun GreenRiverMunicipalUTAirport : Ind Airport ;
+
+  fun GreenbrierValleyWVAirport : Ind Airport ;
+
+  fun GreeneCountyPAAirport : Ind Airport ;
+
+  fun GreenfieldMAAirport : Ind Airport ;
+
+  fun GreenwaySoundBCAirport : Ind Airport ;
+
+  fun GreenwoodNSAirport : Ind Airport ;
+
+  fun GrenchenAirport : Ind Airport ;
+
+  fun GrevenMuensterMunsterAirport : Ind Airport ;
+
+  fun GriderFieldARAirport : Ind Airport ;
+
+  fun GriffingSanduskyOHAirport : Ind Airport ;
+
+  fun GriffissAirForceBaseNYAirport : Ind Airport ;
+
+  fun GriseFiordNTAirport : Ind Airport ;
+
+  fun GriswoldCTAirport : Ind Airport ;
+
+  fun GuairaPRAirport : Ind Airport ;
+
+  fun GuantanamoNavalAirStationGuantanamoAirport : Ind Airport ;
+
+  fun GuararapesPEAirport : Ind Airport ;
+
+  fun GuayanaPuertoOrdazAirport : Ind Airport ;
+
+  fun GuluAirport : Ind Airport ;
+
+  fun GurayatAirport : Ind Airport ;
+
+  fun GusauAirport : Ind Airport ;
+
+  fun GwinnettCountyAirportBriscoeFieldGAAirport : Ind Airport ;
+
+  fun GyumriLeninakanAirport : Ind Airport ;
+
+  fun HHCoffieldRegionalTXAirport : Ind Airport ;
+
+  fun HadjerAirport : Ind Airport ;
+
+  fun HahayaIconiMoroniAirport : Ind Airport ;
+
+  fun HainesJunctionYTAirport : Ind Airport ;
+
+  fun HakaiPassAirport : Ind Airport ;
+
+  fun HaleCountyTXAirport : Ind Airport ;
+
+  fun HalifaxCountyNCAirport : Ind Airport ;
+
+  fun HalifaxDowntownWaterfrontHeliportNSAirport : Ind Airport ;
+
+  fun HalifaxInternationalNSAirport : Ind Airport ;
+
+  fun HallBeachNTAirport : Ind Airport ;
+
+  fun HamiltonONAirport : Ind Airport ;
+
+  fun HammAirport : Ind Airport ;
+
+  fun HamptonRoadsVAAirport : Ind Airport ;
+
+  fun HanoverCountyMunicipalVAAirport : Ind Airport ;
+
+  fun HarnosandSundsvallAirport : Ind Airport ;
+
+  fun HaroldDavidsonFieldSDAirport : Ind Airport ;
+
+  fun HaroldNavalOutlyingFieldFLAirport : Ind Airport ;
+
+  fun HarrietAlexanderFieldCOAirport : Ind Airport ;
+
+  fun HarrietFieldNVAirport : Ind Airport ;
+
+  fun HarringtonHarbourQCAirport : Ind Airport ;
+
+  fun HarrisburgInternationalPAAirport : Ind Airport ;
+
+  fun HarryCleverFieldOHAirport : Ind Airport ;
+
+  fun HarryPWilliamsMemorialLAAirport : Ind Airport ;
+
+  fun HarrySternNDAirport : Ind Airport ;
+
+  fun HarryWBrowneMIAirport : Ind Airport ;
+
+  fun HartleyBayWaterAerodromeBCAirport : Ind Airport ;
+
+  fun HartnessStateSpringfieldVTAirport : Ind Airport ;
+
+  fun HasanuddinUjungPandangAirport : Ind Airport ;
+
+  fun HasseltAirport : Ind Airport ;
+
+  fun HassloVasterasAirport : Ind Airport ;
+
+  fun HattiesburgLaurelRegionalMSAirport : Ind Airport ;
+
+  fun HaukasenSogndalAirport : Ind Airport ;
+
+  fun HavilarAirport : Ind Airport ;
+
+  fun HavreStPierreQCAirport : Ind Airport ;
+
+  fun HayRiverNTAirport : Ind Airport ;
+
+  fun HearstReneFontaineMunicipalONAirport : Ind Airport ;
+
+  fun HeathrowEnglandAirport : Ind Airport ;
+
+  fun HeerenveenAirport : Ind Airport ;
+
+  fun HeliportMAAirport : Ind Airport ;
+
+  fun HeliportSophiaAntipolisAirport : Ind Airport ;
+
+  fun HeliportTrevisoAirport : Ind Airport ;
+
+  fun HelleSvolvaerAirport : Ind Airport ;
+
+  fun HengeloAirport : Ind Airport ;
+
+  fun HenryCountyTNAirport : Ind Airport ;
+
+  fun HenryTiftMyersGAAirport : Ind Airport ;
+
+  fun HenyamyaAirport : Ind Airport ;
+
+  fun HerbertSmartDowntownGAAirport : Ind Airport ;
+
+  fun HeslerNobleFieldMSAirport : Ind Airport ;
+
+  fun HewanorraStLuciaVieuxFortAirport : Ind Airport ;
+
+  fun HierroCanaryIslandsAirport : Ind Airport ;
+
+  fun HighLevelABAirport : Ind Airport ;
+
+  fun HighPrairieABAirport : Ind Airport ;
+
+  fun HihifoWallisIslandAirport : Ind Airport ;
+
+  fun HilversumTheHagueAirport : Ind Airport ;
+
+  fun HohenemsDornbirnDornbirnAirport : Ind Airport ;
+
+  fun HokkaidoWakkanaiAirport : Ind Airport ;
+
+  fun HolmanNTAirport : Ind Airport ;
+
+  fun HongqiaoShanghaiAirport : Ind Airport ;
+
+  fun HookFieldMunicipalOHAirport : Ind Airport ;
+
+  fun HookerCountyNEAirport : Ind Airport ;
+
+  fun HopeBCAirport : Ind Airport ;
+
+  fun HopedaleNFAirport : Ind Airport ;
+
+  fun HornIslandQueenslandAirport : Ind Airport ;
+
+  fun HornepayneMunicipalONAirport : Ind Airport ;
+
+  fun HorschingLinzAirport : Ind Airport ;
+
+  fun HotSpringsCountyThermopolisMunicipalWYAirport : Ind Airport ;
+
+  fun HuamboNovaLisboaAirport : Ind Airport ;
+
+  fun HudsonBaySKAirport : Ind Airport ;
+
+  fun HudsonsHopeBCAirport : Ind Airport ;
+
+  fun HumacaoAirport : Ind Airport ;
+
+  fun HuntFieldWYAirport : Ind Airport ;
+
+  fun HunterArmyAirFieldGAAirport : Ind Airport ;
+
+  fun HuntingdonCountyPAAirport : Ind Airport ;
+
+  fun HuronAirparkONAirport : Ind Airport ;
+
+  fun HuroniaONAirport : Ind Airport ;
+
+  fun HwangeAirport : Ind Airport ;
+
+  fun HyderSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun IcoaraciPAAirport : Ind Airport ;
+
+  fun IdrisTripoliAirport : Ind Airport ;
+
+  fun IgloolikNTAirport : Ind Airport ;
+
+  fun IgnaceMunicipalONAirport : Ind Airport ;
+
+  fun IguatuAirport : Ind Airport ;
+
+  fun IleboAirport : Ind Airport ;
+
+  fun IlesdelaMadeleineQCAirport : Ind Airport ;
+
+  fun IllinoisValleyRegionalAirportWalterADuncanFieldILAirport : Ind Airport ;
+
+  fun IlliziAirport : Ind Airport ;
+
+  fun ImperialBeachNavalOutlyingFieldCAAirport : Ind Airport ;
+
+  fun IndaselassieAirport : Ind Airport ;
+
+  fun IndianMountainLRRSAKAirport : Ind Airport ;
+
+  fun IndianapolisMetropolitanINAirport : Ind Airport ;
+
+  fun IngenikaBCAirport : Ind Airport ;
+
+  fun IngolstadtAirport : Ind Airport ;
+
+  fun InterContinentalKYAirport : Ind Airport ;
+
+  fun InterlakenAirport : Ind Airport ;
+
+  fun InternacionalSanSalvadorAirport : Ind Airport ;
+
+  fun InternationalBophuthatswanaAirport : Ind Airport ;
+
+  fun InternationalNewProvidenceAirport : Ind Airport ;
+
+  fun InternationalPaphosAirport : Ind Airport ;
+
+  fun InternationalPeninsularAirport : Ind Airport ;
+
+  fun InternationalTrivandrumAirport : Ind Airport ;
+
+  fun InternationalWellingtonAirport : Ind Airport ;
+
+  fun InukjuakQCAirport : Ind Airport ;
+
+  fun InuvikNTAirport : Ind Airport ;
+
+  fun InverlakeSKAirport : Ind Airport ;
+
+  fun IqaluitFrobisherBayNTAirport : Ind Airport ;
+
+  fun IrbioAirport : Ind Airport ;
+
+  fun IsachsenNTAirport : Ind Airport ;
+
+  fun IslandLakeGardenHillMBAirport : Ind Airport ;
+
+  fun IsleofSkyeAirport : Ind Airport ;
+
+  fun ItsjubaSCAirport : Ind Airport ;
+
+  fun IvatoAntananarivoAirport : Ind Airport ;
+
+  fun IvujivikQCAirport : Ind Airport ;
+
+  fun IwakuniHonshuIsAirport : Ind Airport ;
+
+  fun IxtapaZihuatanejoAirport : Ind Airport ;
+
+  fun JFKennedyElAltoLaPazAirport : Ind Airport ;
+
+  fun JGStrijdomInternationalWindhoekAirport : Ind Airport ;
+
+  fun JMVelascoIbarraMacaraAirport : Ind Airport ;
+
+  fun JacksonMunicipalMNAirport : Ind Airport ;
+
+  fun JacksonvilleNavalAirStationTowersFieldFLAirport : Ind Airport ;
+
+  fun JacobAirport : Ind Airport ;
+
+  fun JaladharAirport : Ind Airport ;
+
+  fun JaluitJaborJaluitAirport : Ind Airport ;
+
+  fun JaraguadoSulSCAirport : Ind Airport ;
+
+  fun JasionkaRzeszowAirport : Ind Airport ;
+
+  fun JasperCountyINAirport : Ind Airport ;
+
+  fun JasperHintonABAirport : Ind Airport ;
+
+  fun JeffersonCountyInternationalWAAirport : Ind Airport ;
+
+  fun JefmanSorongAirport : Ind Airport ;
+
+  fun JennyLindIslandNTAirport : Ind Airport ;
+
+  fun JenpegMBAirport : Ind Airport ;
+
+  fun JerryTylerMemorialMIAirport : Ind Airport ;
+
+  fun JeyporeAirport : Ind Airport ;
+
+  fun JimKellyFieldNEAirport : Ind Airport ;
+
+  fun JimdabyneNewSouthWalesAirport : Ind Airport ;
+
+  fun JinanAirport : Ind Airport ;
+
+  fun JoeWilliamsNavalOutlyingFieldMSAirport : Ind Airport ;
+
+  fun JohanAdolfPengelZanderyParamariboAirport : Ind Airport ;
+
+  fun JohnHBattenFieldWIAirport : Ind Airport ;
+
+  fun JohnWayneAirportOrangeCountyCAAirport : Ind Airport ;
+
+  fun JohnnyMountainBCAirport : Ind Airport ;
+
+  fun JohnsonPointNTAirport : Ind Airport ;
+
+  fun JomoKenyattaNairobiAirport : Ind Airport ;
+
+  fun JosefaCamejoParaguanaAirport : Ind Airport ;
+
+  fun JuanSantamariaInternationalSanJoseAirport : Ind Airport ;
+
+  fun JuanaAzurduydePadillaSucreAirport : Ind Airport ;
+
+  fun JuandaSurabayaAirport : Ind Airport ;
+
+  fun JubailAirport : Ind Airport ;
+
+  fun KISawyerAirForceBaseMIAirport : Ind Airport ;
+
+  fun KabalegaFallsMurchisonFallsAirport : Ind Airport ;
+
+  fun KahuluiHIAirport : Ind Airport ;
+
+  fun KalaupapaHIAirport : Ind Airport ;
+
+  fun KallaxLuleaAirport : Ind Airport ;
+
+  fun KalumburuWesternAustraliaAirport : Ind Airport ;
+
+  fun KamloopsBCAirport : Ind Airport ;
+
+  fun KamuzuInternationalLilongweAirport : Ind Airport ;
+
+  fun KanazawaCityAirport : Ind Airport ;
+
+  fun KaneoheBayMarineCorpsAirStationMokapuPointHIAirport : Ind Airport ;
+
+  fun KangiqsualujjuaqQCAirport : Ind Airport ;
+
+  fun KangiqsujuaqQCAirport : Ind Airport ;
+
+  fun KangirsukQCAirport : Ind Airport ;
+
+  fun KansasCityDowntownMOAirport : Ind Airport ;
+
+  fun KansasCityInternationalMOAirport : Ind Airport ;
+
+  fun KantchariAirport : Ind Airport ;
+
+  fun KaolinFieldGAAirport : Ind Airport ;
+
+  fun KapuskasingQCAirport : Ind Airport ;
+
+  fun KarlStefanMemorialNEAirport : Ind Airport ;
+
+  fun KarlovasiAirport : Ind Airport ;
+
+  fun KasabaBayAirport : Ind Airport ;
+
+  fun KasabonikaONAirport : Ind Airport ;
+
+  fun KaschechewanQCAirport : Ind Airport ;
+
+  fun KastelSplitAirport : Ind Airport ;
+
+  fun KavikAKAirport : Ind Airport ;
+
+  fun KayaAirport : Ind Airport ;
+
+  fun KayentaAZAirport : Ind Airport ;
+
+  fun KeekorokAirport : Ind Airport ;
+
+  fun KegaskaWaterAerodromeQCAirport : Ind Airport ;
+
+  fun KelafoAirport : Ind Airport ;
+
+  fun KelilaAirport : Ind Airport ;
+
+  fun KellyAirForceBaseTXAirport : Ind Airport ;
+
+  fun KelownaBCAirport : Ind Airport ;
+
+  fun KelsterbachAirport : Ind Airport ;
+
+  fun KendallTamiamiExecutiveFLAirport : Ind Airport ;
+
+  fun KenitraAirport : Ind Airport ;
+
+  fun KenoraONAirport : Ind Airport ;
+
+  fun KentInternationalEnglandAirport : Ind Airport ;
+
+  fun KentlandINAirport : Ind Airport ;
+
+  fun KetchikanHarborSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun KeyFieldMSAirport : Ind Airport ;
+
+  fun KeyLakeSKAirport : Ind Airport ;
+
+  fun KeyWestNavalAirStationBocaChicaFieldFLAirport : Ind Airport ;
+
+  fun KeystoneCOAirport : Ind Airport ;
+
+  fun KhalidMilitaryCityAirport : Ind Airport ;
+
+  fun KhujandKhudzhandKhujandAirport : Ind Airport ;
+
+  fun KigomaAirport : Ind Airport ;
+
+  fun KijangTanjungPinangAirport : Ind Airport ;
+
+  fun KillaloeONAirport : Ind Airport ;
+
+  fun KilliniqKillinekIslandNTAirport : Ind Airport ;
+
+  fun KimberleyBCAirport : Ind Airport ;
+
+  fun KimhaePusanAirport : Ind Airport ;
+
+  fun KimpoSeoulAirport : Ind Airport ;
+
+  fun KindersleySKAirport : Ind Airport ;
+
+  fun KingHusseinAirBaseMafraqAirport : Ind Airport ;
+
+  fun KingKhalidRiyadhAirport : Ind Airport ;
+
+  fun KingsLandOLakesWIAirport : Ind Airport ;
+
+  fun KingsfordSmithNewSouthWalesAirport : Ind Airport ;
+
+  fun KingstonONAirport : Ind Airport ;
+
+  fun KingsvilleNavalAirStationTXAirport : Ind Airport ;
+
+  fun KirkFieldARAirport : Ind Airport ;
+
+  fun KirklandLakeONAirport : Ind Airport ;
+
+  fun KitchenerLakeWaterAerodromeBCAirport : Ind Airport ;
+
+  fun KitimatAerodromeBCAirport : Ind Airport ;
+
+  fun KiungaAirport : Ind Airport ;
+
+  fun KlamathFallsInternationalORAirport : Ind Airport ;
+
+  fun KlemtuWaterAerodromeBCAirport : Ind Airport ;
+
+  fun KneeLakeMBAirport : Ind Airport ;
+
+  fun KnockConnaughtAirport : Ind Airport ;
+
+  fun KnoxCountyRegionalMEAirport : Ind Airport ;
+
+  fun KnoxvilleMunicipalIAAirport : Ind Airport ;
+
+  fun KobeAirport : Ind Airport ;
+
+  fun KobukAKAirport : Ind Airport ;
+
+  fun KohSamuiAirport : Ind Airport ;
+
+  fun KohatAirport : Ind Airport ;
+
+  fun KokomoMunicipalINAirport : Ind Airport ;
+
+  fun KomakiHonshuAirport : Ind Airport ;
+
+  fun KomotiniAirport : Ind Airport ;
+
+  fun KonstanzAirport : Ind Airport ;
+
+  fun KopaskerAirport : Ind Airport ;
+
+  fun KosciuskoAttalaCountyMSAirport : Ind Airport ;
+
+  fun KoszalinAirport : Ind Airport ;
+
+  fun KotaAirportEthiopia : Ind Airport ;
+
+  fun KoundaraAirport : Ind Airport ;
+
+  fun KourouAirport : Ind Airport ;
+
+  fun KrefeldAirport : Ind Airport ;
+
+  fun KsarEsSoukAirport : Ind Airport ;
+
+  fun KualaTerengganuAirport : Ind Airport ;
+
+  fun KuitoAirport : Ind Airport ;
+
+  fun KulikLakeAKAirport : Ind Airport ;
+
+  fun KumeJimaAirport : Ind Airport ;
+
+  fun KunduzAirport : Ind Airport ;
+
+  fun KungKuanAirport : Ind Airport ;
+
+  fun KungsangenNorrkopingAirport : Ind Airport ;
+
+  fun KurskKurskAirport : Ind Airport ;
+
+  fun KuujjuaqFortChimoQCAirport : Ind Airport ;
+
+  fun KuujjuarapikQCAirport : Ind Airport ;
+
+  fun KwangYunAirport : Ind Airport ;
+
+  fun KymiKouvolaAirport : Ind Airport ;
+
+  fun KyotoAirport : Ind Airport ;
+
+  fun LMClaytonMTAirport : Ind Airport ;
+
+  fun LOSimenstadMunicipalWIAirport : Ind Airport ;
+
+  fun LaBauleAirport : Ind Airport ;
+
+  fun LaChinitaMaracaiboAirport : Ind Airport ;
+
+  fun LaChorreraAirport : Ind Airport ;
+
+  fun LaColomaAirport : Ind Airport ;
+
+  fun LaCorunaAirport : Ind Airport ;
+
+  fun LaCrosseWIWinonaAirport : Ind Airport ;
+
+  fun LaFriaAirport : Ind Airport ;
+
+  fun LaGrandeUnionCountyORAirport : Ind Airport ;
+
+  fun LaGrandenr3QCAirport : Ind Airport ;
+
+  fun LaGrandenr4QCAirport : Ind Airport ;
+
+  fun LaGuairaAirport : Ind Airport ;
+
+  fun LaGuardiaNYAirport : Ind Airport ;
+
+  fun LaJuntaMunicipalCOAirport : Ind Airport ;
+
+  fun LaLlagoneAirport : Ind Airport ;
+
+  fun LaMacazaQCAirport : Ind Airport ;
+
+  fun LaMesaSanPedroSulaAirport : Ind Airport ;
+
+  fun LaMunozaAirport : Ind Airport ;
+
+  fun LaPalmaCanaryIslandsAirport : Ind Airport ;
+
+  fun LaPalyvestreToulonHyeresAirport : Ind Airport ;
+
+  fun LaPedreraAirport : Ind Airport ;
+
+  fun LaPlagneAirport : Ind Airport ;
+
+  fun LaPorteMunicipalINAirport : Ind Airport ;
+
+  fun LaPrimaveraAirport : Ind Airport ;
+
+  fun LaRomanaAirport : Ind Airport ;
+
+  fun LaRongeSKAirport : Ind Airport ;
+
+  fun LaSarreAerodromeQCAirport : Ind Airport ;
+
+  fun LaSerenaAirport : Ind Airport ;
+
+  fun LaTabatiereWaterAerodromeQCAirport : Ind Airport ;
+
+  fun LaTontoutaNoumeaAirport : Ind Airport ;
+
+  fun LaToucheAKAirport : Ind Airport ;
+
+  fun LaTuqueQCAirport : Ind Airport ;
+
+  fun LaUnionAirport : Ind Airport ;
+
+  fun LaVanguardiaVillavicencioAirport : Ind Airport ;
+
+  fun LaarbruchAirport : Ind Airport ;
+
+  fun LabambaAirport : Ind Airport ;
+
+  fun LabasaAirport : Ind Airport ;
+
+  fun LabeAirport : Ind Airport ;
+
+  fun LaberalAirport : Ind Airport ;
+
+  fun LablabAirport : Ind Airport ;
+
+  fun LabouchereBayAKAirport : Ind Airport ;
+
+  fun LabuanBajoAirport : Ind Airport ;
+
+  fun LabuanSabahAirport : Ind Airport ;
+
+  fun LabuhaAirport : Ind Airport ;
+
+  fun LacBrochetMBAirport : Ind Airport ;
+
+  fun LacLaBicheABAirport : Ind Airport ;
+
+  fun LacLaMartreAerodromeNTAirport : Ind Airport ;
+
+  fun LaconiaMunicipalNHAirport : Ind Airport ;
+
+  fun LacumbreAirport : Ind Airport ;
+
+  fun LadouanieAirport : Ind Airport ;
+
+  fun LadyElliottIslandAirport : Ind Airport ;
+
+  fun LadyFranklinPointNTAirport : Ind Airport ;
+
+  fun LadysmithAirport : Ind Airport ;
+
+  fun LaeIslandAirport : Ind Airport ;
+
+  fun LafayetteRegionalLAAirport : Ind Airport ;
+
+  fun LagesSCAirport : Ind Airport ;
+
+  fun LaghouatAirport : Ind Airport ;
+
+  fun LagoAgrioAirport : Ind Airport ;
+
+  fun LagosdeMorenoAirport : Ind Airport ;
+
+  fun LagunaArmyAirFieldAZAirport : Ind Airport ;
+
+  fun LagunillasAirport : Ind Airport ;
+
+  fun LahadDatuSabahAirport : Ind Airport ;
+
+  fun LahoreAirport : Ind Airport ;
+
+  fun LahrAirport : Ind Airport ;
+
+  fun LaiAirport : Ind Airport ;
+
+  fun LaiagamAirport : Ind Airport ;
+
+  fun LaieuLaRochelleAirport : Ind Airport ;
+
+  fun LajeadoRSAirport : Ind Airport ;
+
+  fun LajesNavalAirStationAzoresAirport : Ind Airport ;
+
+  fun LakeBaringoAirport : Ind Airport ;
+
+  fun LakeCharlesRegionalLAAirport : Ind Airport ;
+
+  fun LakeCountyCOAirport : Ind Airport ;
+
+  fun LakeCountyORAirport : Ind Airport ;
+
+  fun LakeEvellaNorthernTerritoryAirport : Ind Airport ;
+
+  fun LakeGenevaAireEstatesWIAirport : Ind Airport ;
+
+  fun LakeHarbourNTAirport : Ind Airport ;
+
+  fun LakeHoodSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun LakeManyaraAirport : Ind Airport ;
+
+  fun LakeMinchuminaAKAirport : Ind Airport ;
+
+  fun LakeMurrayAirport : Ind Airport ;
+
+  fun LakeNashNorthernTerritoryAirport : Ind Airport ;
+
+  fun LakePlacidNYAirport : Ind Airport ;
+
+  fun LakeRudolfAirport : Ind Airport ;
+
+  fun LakeTahoeCAAirport : Ind Airport ;
+
+  fun LakeUnionChryslerAirSeaplaneBaseWAAirport : Ind Airport ;
+
+  fun LakebaAirport : Ind Airport ;
+
+  fun LakefieldQueenslandAirport : Ind Airport ;
+
+  fun LakefrontLAAirport : Ind Airport ;
+
+  fun LakehurstNAESMaxfieldFieldNJAirport : Ind Airport ;
+
+  fun LakelandDownsAirport : Ind Airport ;
+
+  fun LakelandRegionalFLAirport : Ind Airport ;
+
+  fun LakenheathAirport : Ind Airport ;
+
+  fun LakesideTXAirport : Ind Airport ;
+
+  fun LakesideUSAFMNAirport : Ind Airport ;
+
+  fun LalibellaAirport : Ind Airport ;
+
+  fun LalmonirhatAirport : Ind Airport ;
+
+  fun LalomalavaAirport : Ind Airport ;
+
+  fun LamapAirport : Ind Airport ;
+
+  fun LamarMunicipalCOAirport : Ind Airport ;
+
+  fun LamarMunicipalMOAirport : Ind Airport ;
+
+  fun LamassaAirport : Ind Airport ;
+
+  fun LambareneAirport : Ind Airport ;
+
+  fun LambertStLouisInternationalMOAirport : Ind Airport ;
+
+  fun LamenBayAirport : Ind Airport ;
+
+  fun LameziaTermeAirport : Ind Airport ;
+
+  fun LamidandaAirport : Ind Airport ;
+
+  fun LampangAirport : Ind Airport ;
+
+  fun LampedusaLampedusaIslandAirport : Ind Airport ;
+
+  fun LanaiHIAirport : Ind Airport ;
+
+  fun LancasterPAAirport : Ind Airport ;
+
+  fun LandshotAirport : Ind Airport ;
+
+  fun LangaraBCAirport : Ind Airport ;
+
+  fun LangeoogAirport : Ind Airport ;
+
+  fun LanggurTualAirport : Ind Airport ;
+
+  fun LangimarAirport : Ind Airport ;
+
+  fun LangkawiAirport : Ind Airport ;
+
+  fun LangkawiPulauAirport : Ind Airport ;
+
+  fun LangleyAirForceBaseVAAirport : Ind Airport ;
+
+  fun LangnesTromsoAirport : Ind Airport ;
+
+  fun LangtangAirport : Ind Airport ;
+
+  fun LannBihouetLorientAirport : Ind Airport ;
+
+  fun LannionAirport : Ind Airport ;
+
+  fun LansdowneHouseONAirport : Ind Airport ;
+
+  fun LansdowneStationWesternAustraliaAirport : Ind Airport ;
+
+  fun LaoagAirport : Ind Airport ;
+
+  fun LappeenrantaAirport : Ind Airport ;
+
+  fun LaramieRegionalWYAirport : Ind Airport ;
+
+  fun LarantukaAirport : Ind Airport ;
+
+  fun LaredoInternationalTXAirport : Ind Airport ;
+
+  fun LarisaAirport : Ind Airport ;
+
+  fun LarkanaAirport : Ind Airport ;
+
+  fun LarnacaAirport : Ind Airport ;
+
+  fun LarnedPawneeCountyKSAirport : Ind Airport ;
+
+  fun LarsonAirForceBaseWAAirport : Ind Airport ;
+
+  fun LasCanasAirport : Ind Airport ;
+
+  fun LasCrucesInternationalNMAirport : Ind Airport ;
+
+  fun LasGaviotasAirport : Ind Airport ;
+
+  fun LasHerasAirport : Ind Airport ;
+
+  fun LasKorehAirport : Ind Airport ;
+
+  fun LasLimasAirport : Ind Airport ;
+
+  fun LasLomitasAirport : Ind Airport ;
+
+  fun LasPalmasGranCanariaCanaryIslandsAirport : Ind Airport ;
+
+  fun LasPiedrasAirport : Ind Airport ;
+
+  fun LasTunasAirport : Ind Airport ;
+
+  fun LasVegasMunicipalNMAirport : Ind Airport ;
+
+  fun LashioAirport : Ind Airport ;
+
+  fun LastourvilleAirport : Ind Airport ;
+
+  fun LatakiaAirport : Ind Airport ;
+
+  fun LathropWellsNVAirport : Ind Airport ;
+
+  fun LatinaAirport : Ind Airport ;
+
+  fun LatrobeAirport : Ind Airport ;
+
+  fun LaucalaIslandAirport : Ind Airport ;
+
+  fun LauncestonTasmaniaAirport : Ind Airport ;
+
+  fun LauraQueenslandAirport : Ind Airport ;
+
+  fun LauraStationQueenslandAirport : Ind Airport ;
+
+  fun LauribeAirport : Ind Airport ;
+
+  fun LaurieRiverAerodromeMBAirport : Ind Airport ;
+
+  fun LaurinburgMaxtonNCAirport : Ind Airport ;
+
+  fun LausanneLaBlecheretteLausanneAirport : Ind Airport ;
+
+  fun LauterachAirport : Ind Airport ;
+
+  fun LavalAirport : Ind Airport ;
+
+  fun LavertonWesternAustraliaAirport : Ind Airport ;
+
+  fun LavrasMGAirport : Ind Airport ;
+
+  fun LawasSarawakAirport : Ind Airport ;
+
+  fun LawicaPoznanAirport : Ind Airport ;
+
+  fun LawnHillQueenslandAirport : Ind Airport ;
+
+  fun LawrenceJTimmermanWIAirport : Ind Airport ;
+
+  fun LawrenceKSAirport : Ind Airport ;
+
+  fun LawrenceMunicipalKSAirport : Ind Airport ;
+
+  fun LawrenceMunicipalMAAirport : Ind Airport ;
+
+  fun LawrencevilleBrunswickMunicipalVAAirport : Ind Airport ;
+
+  fun LawrencevilleVincennesInternationalILAirport : Ind Airport ;
+
+  fun LawsonArmyAirFieldGAAirport : Ind Airport ;
+
+  fun LawtonMunicipalOKAirport : Ind Airport ;
+
+  fun LazaroCardenasAirport : Ind Airport ;
+
+  fun LeBourgetParisAirport : Ind Airport ;
+
+  fun LeMansAirport : Ind Airport ;
+
+  fun LeMarsMunicipalIAAirport : Ind Airport ;
+
+  fun LePuyAirport : Ind Airport ;
+
+  fun LeRaizetPointeaPitreAirport : Ind Airport ;
+
+  fun LeafRapidsMBAirport : Ind Airport ;
+
+  fun LearmouthExmouthWesternAustraliaAirport : Ind Airport ;
+
+  fun LebakengAirport : Ind Airport ;
+
+  fun LebanonMunicipalNHAirport : Ind Airport ;
+
+  fun LebelsurQuevillonAerodromeQCAirport : Ind Airport ;
+
+  fun LecceAirport : Ind Airport ;
+
+  fun LeconfeldEnglandAirport : Ind Airport ;
+
+  fun LeconiAirport : Ind Airport ;
+
+  fun LeedsBradfordAirport : Ind Airport ;
+
+  fun LeesburgMunicipalFLAirport : Ind Airport ;
+
+  fun LeetonNewSouthWalesAirport : Ind Airport ;
+
+  fun LeeuwardenAirport : Ind Airport ;
+
+  fun LegaspiAirport : Ind Airport ;
+
+  fun LeguizamoAirport : Ind Airport ;
+
+  fun LehmiCountyIDAirport : Ind Airport ;
+
+  fun LehuAirport : Ind Airport ;
+
+  fun LeighCreekSouthAustraliaAirport : Ind Airport ;
+
+  fun LeinsterWesternAustraliaAirport : Ind Airport ;
+
+  fun LeirinFagernesAirport : Ind Airport ;
+
+  fun LeitreAirport : Ind Airport ;
+
+  fun LekanaAirport : Ind Airport ;
+
+  fun LeknesAirport : Ind Airport ;
+
+  fun LelystadAirport : Ind Airport ;
+
+  fun LemmonMunicipalSDAirport : Ind Airport ;
+
+  fun LemnosLimnosAirport : Ind Airport ;
+
+  fun LemooreNavalAirStationReevesFieldCAAirport : Ind Airport ;
+
+  fun LemwerderDASAPlantBremenAirport : Ind Airport ;
+
+  fun LengbatiAirport : Ind Airport ;
+
+  fun LeoAirport : Ind Airport ;
+
+  fun LeonMBaLibrevilleAirport : Ind Airport ;
+
+  fun LeonoraWesternAustraliaAirport : Ind Airport ;
+
+  fun LeopoldinaMGAirport : Ind Airport ;
+
+  fun LerehAirport : Ind Airport ;
+
+  fun LeribeAirport : Ind Airport ;
+
+  fun LerosAirport : Ind Airport ;
+
+  fun LesAngladesOujdaAirport : Ind Airport ;
+
+  fun LesSablesAirport : Ind Airport ;
+
+  fun LesSaintesTerredeHautAirport : Ind Airport ;
+
+  fun LeseAirport : Ind Airport ;
+
+  fun LesobengAirport : Ind Airport ;
+
+  fun LesquinLilleAirport : Ind Airport ;
+
+  fun LesterBPearsonInternationalONAirport : Ind Airport ;
+
+  fun LethbridgeABAirport : Ind Airport ;
+
+  fun LethemAirport : Ind Airport ;
+
+  fun LewistonNezPerceCountyIDAirport : Ind Airport ;
+
+  fun LewistownMunicipalMTAirport : Ind Airport ;
+
+  fun LewolebaAirport : Ind Airport ;
+
+  fun LhasaAirport : Ind Airport ;
+
+  fun LhokSukonAirport : Ind Airport ;
+
+  fun LhokseumaweAirport : Ind Airport ;
+
+  fun LianyungangXinpuAirport : Ind Airport ;
+
+  fun LiardRiverBCAirport : Ind Airport ;
+
+  fun LibengeAirport : Ind Airport ;
+
+  fun LiberalMunicipalKSAirport : Ind Airport ;
+
+  fun LibertyCountyGAAirport : Ind Airport ;
+
+  fun LiboiAirport : Ind Airport ;
+
+  fun LicGustavoDOrdazPuertoVallartaAirport : Ind Airport ;
+
+  fun LicManuelCrecencioRejonMeridaAirport : Ind Airport ;
+
+  fun LicenciadoAdolfoLopezMateosTolucaAirport : Ind Airport ;
+
+  fun LichingaVilaCabralAirport : Ind Airport ;
+
+  fun LidkopingAirport : Ind Airport ;
+
+  fun LiepajaAirport : Ind Airport ;
+
+  fun LifouLifuLoyaltyIslandsAirport : Ind Airport ;
+
+  fun LightningRidgeNewSouthWalesAirport : Ind Airport ;
+
+  fun LihueHIAirport : Ind Airport ;
+
+  fun LikiepAirport : Ind Airport ;
+
+  fun LikomaIslandAirport : Ind Airport ;
+
+  fun LimaOHAirport : Ind Airport ;
+
+  fun LimassolAirport : Ind Airport ;
+
+  fun LimbangSarawakAirport : Ind Airport ;
+
+  fun LimbunyaNorthernTerritoryAirport : Ind Airport ;
+
+  fun LimeAcresAirport : Ind Airport ;
+
+  fun LimeVillageAKAirport : Ind Airport ;
+
+  fun LimerickAirport : Ind Airport ;
+
+  fun LimonAirport : Ind Airport ;
+
+  fun LimonAirportCostaRica : Ind Airport ;
+
+  fun LimonMunicipalCOAirport : Ind Airport ;
+
+  fun LinateMilanoMilanAirport : Ind Airport ;
+
+  fun LincolnMunicipalNEAirport : Ind Airport ;
+
+  fun LincolnRiverAKAirport : Ind Airport ;
+
+  fun LindaDownsAirport : Ind Airport ;
+
+  fun LindemanIslandQueenslandAirport : Ind Airport ;
+
+  fun LindenNJAirport : Ind Airport ;
+
+  fun LindiAirport : Ind Airport ;
+
+  fun LingaLingaAirport : Ind Airport ;
+
+  fun LinkopingAirport : Ind Airport ;
+
+  fun LinnCreekGrandGlaizeMemorialMOAirport : Ind Airport ;
+
+  fun LinsSPAirport : Ind Airport ;
+
+  fun LipetskLipetskAirport : Ind Airport ;
+
+  fun LisalaAirport : Ind Airport ;
+
+  fun LishanAirport : Ind Airport ;
+
+  fun LismoreQueenslandAirport : Ind Airport ;
+
+  fun LissadelWesternAustraliaAirport : Ind Airport ;
+
+  fun LittleAmericaUTAirport : Ind Airport ;
+
+  fun LittleCaymenMunicipalAirStripLittleCaymanAirport : Ind Airport ;
+
+  fun LittleFallsMorrisonCountyMNAirport : Ind Airport ;
+
+  fun LittleGrandRapidsMBAirport : Ind Airport ;
+
+  fun LittleNaukatiAKAirport : Ind Airport ;
+
+  fun LittlePortWalkerAKAirport : Ind Airport ;
+
+  fun LittleRockAirForceBaseARAirport : Ind Airport ;
+
+  fun LiuzhouAirport : Ind Airport ;
+
+  fun LivermoreMunicipalCAAirport : Ind Airport ;
+
+  fun LiverpoolNSAirport : Ind Airport ;
+
+  fun LivingoodAKAirport : Ind Airport ;
+
+  fun LivingstoneMarambaAirport : Ind Airport ;
+
+  fun LizardIslandQueenslandAirport : Ind Airport ;
+
+  fun LloydminsterABAirport : Ind Airport ;
+
+  fun LoTungAirport : Ind Airport ;
+
+  fun LoaniAirport : Ind Airport ;
+
+  fun LobatzeAirport : Ind Airport ;
+
+  fun LocarnoAirport : Ind Airport ;
+
+  fun LochgilpheadAirport : Ind Airport ;
+
+  fun LockSouthAustraliaAirport : Ind Airport ;
+
+  fun LodarAirport : Ind Airport ;
+
+  fun LodjaAirport : Ind Airport ;
+
+  fun LodwarAirport : Ind Airport ;
+
+  fun LoeiAirport : Ind Airport ;
+
+  fun LoenAirport : Ind Airport ;
+
+  fun LoganCacheUTAirport : Ind Airport ;
+
+  fun LoikawAirport : Ind Airport ;
+
+  fun LojaAirport : Ind Airport ;
+
+  fun LolyangalaniAirport : Ind Airport ;
+
+  fun LompocCAAirport : Ind Airport ;
+
+  fun LondolovitAirport : Ind Airport ;
+
+  fun LondonCorbinAirportMageeFieldKYAirport : Ind Airport ;
+
+  fun LondonONAirport : Ind Airport ;
+
+  fun LondrinaPRAirport : Ind Airport ;
+
+  fun LondroreAirport : Ind Airport ;
+
+  fun LonelyAFSAKAirport : Ind Airport ;
+
+  fun LonesomePineVAAirport : Ind Airport ;
+
+  fun LongApungAirport : Ind Airport ;
+
+  fun LongBeachAirportDaughertyFieldCAAirport : Ind Airport ;
+
+  fun LongIslandAKAirport : Ind Airport ;
+
+  fun LongLamaAirport : Ind Airport ;
+
+  fun LongLellangAirport : Ind Airport ;
+
+  fun LongSemadoSarawakAirport : Ind Airport ;
+
+  fun LongSeridanSarawakAirport : Ind Airport ;
+
+  fun LongSukangAirport : Ind Airport ;
+
+  fun LongXuyenAirport : Ind Airport ;
+
+  fun LonganaAirport : Ind Airport ;
+
+  fun LongbawanAirport : Ind Airport ;
+
+  fun LongpointLakeWaterAerodromeONAirport : Ind Airport ;
+
+  fun LongreachQueenslandAirport : Ind Airport ;
+
+  fun LongstaffBluffNTAirport : Ind Airport ;
+
+  fun LongviewWAAirport : Ind Airport ;
+
+  fun LongyearbyenSvalbardAirport : Ind Airport ;
+
+  fun LopezIslandWAAirport : Ind Airport ;
+
+  fun LopezdeMicayAirport : Ind Airport ;
+
+  fun LoqueAirport : Ind Airport ;
+
+  fun LoraLaiAirport : Ind Airport ;
+
+  fun LordHoweIslandNewSouthWalesAirport : Ind Airport ;
+
+  fun LordsburgMunicipalNMAirport : Ind Airport ;
+
+  fun LorengauManusIslandAirport : Ind Airport ;
+
+  fun LoretoAirport : Ind Airport ;
+
+  fun LoricaAirport : Ind Airport ;
+
+  fun LoringAirForceBaseMEAirport : Ind Airport ;
+
+  fun LoringSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun LorrachAirport : Ind Airport ;
+
+  fun LorraineQueenslandAirport : Ind Airport ;
+
+  fun LosAlamosNMAirport : Ind Airport ;
+
+  fun LosAngelesAirport : Ind Airport ;
+
+  fun LosAngelesInternationalCAAirport : Ind Airport ;
+
+  fun LosBanosMunicipalCAAirport : Ind Airport ;
+
+  fun LosCabosSanJosedelCaboAirport : Ind Airport ;
+
+  fun LosChilesAirport : Ind Airport ;
+
+  fun LosMenucosAirport : Ind Airport ;
+
+  fun LosMochisAirport : Ind Airport ;
+
+  fun LosRodeosCanaryIslandsAirport : Ind Airport ;
+
+  fun LosRoquesAirport : Ind Airport ;
+
+  fun LoshitsaMinskAirport : Ind Airport ;
+
+  fun LosinjAirport : Ind Airport ;
+
+  fun LostHarborAKAirport : Ind Airport ;
+
+  fun LostNationOHAirport : Ind Airport ;
+
+  fun LostRiver1AKAirport : Ind Airport ;
+
+  fun LosuiaAirport : Ind Airport ;
+
+  fun LotusvaleQueenslandAirport : Ind Airport ;
+
+  fun LouisTrichardtAirport : Ind Airport ;
+
+  fun LouisaCountyAirportFreemanFieldVAAirport : Ind Airport ;
+
+  fun LouisvilleWinstonCountyMSAirport : Ind Airport ;
+
+  fun LovelandCOAirport : Ind Airport ;
+
+  fun LowaiAirport : Ind Airport ;
+
+  fun LoweArmyHeliportALAirport : Ind Airport ;
+
+  fun LtWarrenEatonNYAirport : Ind Airport ;
+
+  fun LuaboAirport : Ind Airport ;
+
+  fun LuangNamthaAirport : Ind Airport ;
+
+  fun LuangPrabangAirport : Ind Airport ;
+
+  fun LuauAirport : Ind Airport ;
+
+  fun LubangoSadaBandeiraAirport : Ind Airport ;
+
+  fun LubbockInternationalTXAirport : Ind Airport ;
+
+  fun LuccaAirport : Ind Airport ;
+
+  fun LucenecAirport : Ind Airport ;
+
+  fun LucerneAirport : Ind Airport ;
+
+  fun LucknowAirport : Ind Airport ;
+
+  fun LudhianaAirport : Ind Airport ;
+
+  fun LuebeckLubeckAirport : Ind Airport ;
+
+  fun LuederitzLuderitzAirport : Ind Airport ;
+
+  fun LuenaLusoAirport : Ind Airport ;
+
+  fun LughGananeAirport : Ind Airport ;
+
+  fun LuhanskLuhanskAirport : Ind Airport ;
+
+  fun LuisMunozMarinInternationalSanJuanAirport : Ind Airport ;
+
+  fun LuizaAirport : Ind Airport ;
+
+  fun LukeAirForceBaseAZAirport : Ind Airport ;
+
+  fun LuklaAirport : Ind Airport ;
+
+  fun LukuluAirport : Ind Airport ;
+
+  fun LumbertonMunicipalNCAirport : Ind Airport ;
+
+  fun LumiAirport : Ind Airport ;
+
+  fun LumidPauAirport : Ind Airport ;
+
+  fun LunyukAirport : Ind Airport ;
+
+  fun LuoyangAirport : Ind Airport ;
+
+  fun LuoziAirport : Ind Airport ;
+
+  fun LupepauuVavauAirport : Ind Airport ;
+
+  fun LupinNTAirport : Ind Airport ;
+
+  fun LuqaMaltaAirport : Ind Airport ;
+
+  fun LusakaInternationalLusakaAirport : Ind Airport ;
+
+  fun LusamboAirport : Ind Airport ;
+
+  fun LusangaAirport : Ind Airport ;
+
+  fun LusikisikiAirport : Ind Airport ;
+
+  fun LuskMunicipalWYAirport : Ind Airport ;
+
+  fun LutonEnglandAirport : Ind Airport ;
+
+  fun LutskVolynAirport : Ind Airport ;
+
+  fun LuwukAirport : Ind Airport ;
+
+  fun LuxiAirport : Ind Airport ;
+
+  fun LuxorAirport : Ind Airport ;
+
+  fun LuzhouSichuanAirport : Ind Airport ;
+
+  fun LvivLwowLvovAirport : Ind Airport ;
+
+  fun LyallHarbourBCAirport : Ind Airport ;
+
+  fun LyckseleAirport : Ind Airport ;
+
+  fun LyddAirport : Ind Airport ;
+
+  fun LynchburgRegionalAirportPrestonGlennFieldVAAirport : Ind Airport ;
+
+  fun LyndhurstQueenslandAirport : Ind Airport ;
+
+  fun LynehamRAFStationEnglandAirport : Ind Airport ;
+
+  fun LynnLakeMBAirport : Ind Airport ;
+
+  fun LyonsRiceCountyMunicipalKSAirport : Ind Airport ;
+
+  fun LyttonBCAirport : Ind Airport ;
+
+  fun MBalaAirport : Ind Airport ;
+
+  fun MGrahamClarkMOAirport : Ind Airport ;
+
+  fun MVengueFrancevilleAirport : Ind Airport ;
+
+  fun MaanAirport : Ind Airport ;
+
+  fun MabarumaAirport : Ind Airport ;
+
+  fun MabuiagIslandQueenslandAirport : Ind Airport ;
+
+  fun MacDillAirForceBaseFLAirport : Ind Airport ;
+
+  fun MacDonaldDownsAirport : Ind Airport ;
+
+  fun MacMillanPassAerodromeYTAirport : Ind Airport ;
+
+  fun MacaeRJAirport : Ind Airport ;
+
+  fun MacanalAirport : Ind Airport ;
+
+  fun MacapaPAAirport : Ind Airport ;
+
+  fun MacasAirport : Ind Airport ;
+
+  fun MacauMacaoAirport : Ind Airport ;
+
+  fun MacdonaldCartierInternationalONAirport : Ind Airport ;
+
+  fun MaceioALAirport : Ind Airport ;
+
+  fun MacentaAirport : Ind Airport ;
+
+  fun MachalaAirport : Ind Airport ;
+
+  fun MachesneyILAirport : Ind Airport ;
+
+  fun MackarInletNTAirport : Ind Airport ;
+
+  fun MackayQueenslandAirport : Ind Airport ;
+
+  fun MackenzieBCAirport : Ind Airport ;
+
+  fun MackinacIslandMIAirport : Ind Airport ;
+
+  fun MacombMunicipalILAirport : Ind Airport ;
+
+  fun MactanInternationalMactanIslandAirport : Ind Airport ;
+
+  fun MadabaAirport : Ind Airport ;
+
+  fun MadangAirport : Ind Airport ;
+
+  fun MaderaMunicipalCAAirport : Ind Airport ;
+
+  fun MadirovaloAirport : Ind Airport ;
+
+  fun MadisonCountyOHAirport : Ind Airport ;
+
+  fun MadisonMunicipalINAirport : Ind Airport ;
+
+  fun MadisonMunicipalSDAirport : Ind Airport ;
+
+  fun MaeSotAirport : Ind Airport ;
+
+  fun MaewoAirport : Ind Airport ;
+
+  fun MafekingAirport : Ind Airport ;
+
+  fun MafetengAirport : Ind Airport ;
+
+  fun MafiaIslandAirport : Ind Airport ;
+
+  fun MafraSCAirport : Ind Airport ;
+
+  fun MaganjadaCostaAirport : Ind Airport ;
+
+  fun MaganqueAirport : Ind Airport ;
+
+  fun MagdalenaAirport : Ind Airport ;
+
+  fun MagnitogorskChelyabinskAirport : Ind Airport ;
+
+  fun MagweAirport : Ind Airport ;
+
+  fun MahanoroAirport : Ind Airport ;
+
+  fun MahdiaAirport : Ind Airport ;
+
+  fun MahendranagarAirport : Ind Airport ;
+
+  fun MahilyowMogilevMahiliowAirport : Ind Airport ;
+
+  fun MahonMenorcaBalearicIslandsAirport : Ind Airport ;
+
+  fun MaianaAirport : Ind Airport ;
+
+  fun MaicaoAirport : Ind Airport ;
+
+  fun MaiduguriAirport : Ind Airport ;
+
+  fun MaikwakAirport : Ind Airport ;
+
+  fun MaimanaAirport : Ind Airport ;
+
+  fun MainDuckONAirport : Ind Airport ;
+
+  fun MainStationDowntownStuttgartAirport : Ind Airport ;
+
+  fun MainoruNorthernTerritoryAirport : Ind Airport ;
+
+  fun MaintiranoAirport : Ind Airport ;
+
+  fun MainzAirport : Ind Airport ;
+
+  fun MaioMaioAirport : Ind Airport ;
+
+  fun MairiporuSPAirport : Ind Airport ;
+
+  fun MaitlandNewSouthWalesAirport : Ind Airport ;
+
+  fun MajiAirport : Ind Airport ;
+
+  fun MajkinAirport : Ind Airport ;
+
+  fun MajmaAirport : Ind Airport ;
+
+  fun MakaleAirport : Ind Airport ;
+
+  fun MakariosNicosiaAirport : Ind Airport ;
+
+  fun MakemoAirport : Ind Airport ;
+
+  fun MakhachkalaDagestanAirport : Ind Airport ;
+
+  fun MakinAirport : Ind Airport ;
+
+  fun MakiniAirport : Ind Airport ;
+
+  fun MakkahAirport : Ind Airport ;
+
+  fun MakkovikNFAirport : Ind Airport ;
+
+  fun MakokouAirport : Ind Airport ;
+
+  fun MakouaAirport : Ind Airport ;
+
+  fun MakungAirport : Ind Airport ;
+
+  fun MakurdiAirport : Ind Airport ;
+
+  fun MalabangAirport : Ind Airport ;
+
+  fun MalaboAirport : Ind Airport ;
+
+  fun MaladCityIDAirport : Ind Airport ;
+
+  fun MalaimbandyAirport : Ind Airport ;
+
+  fun MalakalAirport : Ind Airport ;
+
+  fun MalalauaAirport : Ind Airport ;
+
+  fun MalangAirport : Ind Airport ;
+
+  fun MalangeMalanjeAirport : Ind Airport ;
+
+  fun MalargueAirport : Ind Airport ;
+
+  fun MalatupoAirport : Ind Airport ;
+
+  fun MalatvaAirport : Ind Airport ;
+
+  fun MalayAirport : Ind Airport ;
+
+  fun MalcolmMcKinnonGAAirport : Ind Airport ;
+
+  fun MaldaAirport : Ind Airport ;
+
+  fun MaldenMunicipalMOAirport : Ind Airport ;
+
+  fun MaleHululeAirport : Ind Airport ;
+
+  fun MalekolonAirport : Ind Airport ;
+
+  fun MalianaAirport : Ind Airport ;
+
+  fun MalindiAirport : Ind Airport ;
+
+  fun MallacootaVictoriaAirport : Ind Airport ;
+
+  fun MalmoAirport : Ind Airport ;
+
+  fun MaloelapMaloelapAirport : Ind Airport ;
+
+  fun MalololailaiAirport : Ind Airport ;
+
+  fun MalpensaMilanoMilanAirport : Ind Airport ;
+
+  fun MaltaMTAirport : Ind Airport ;
+
+  fun MamaiAirport : Ind Airport ;
+
+  fun MamburaoAirport : Ind Airport ;
+
+  fun MamfeAirport : Ind Airport ;
+
+  fun MamitupoAirport : Ind Airport ;
+
+  fun MammothLakesCAAirport : Ind Airport ;
+
+  fun MampikonyAirport : Ind Airport ;
+
+  fun MamujuAirport : Ind Airport ;
+
+  fun ManAirport : Ind Airport ;
+
+  fun ManaAirport : Ind Airport ;
+
+  fun ManakaraAirport : Ind Airport ;
+
+  fun MananaraAirport : Ind Airport ;
+
+  fun ManangAirport : Ind Airport ;
+
+  fun MananjaryAirport : Ind Airport ;
+
+  fun ManareAirport : Ind Airport ;
+
+  fun ManassasMunicipalAirportHarryPDavisFieldVAAirport : Ind Airport ;
+
+  fun ManateeAirport : Ind Airport ;
+
+  fun ManaungAirport : Ind Airport ;
+
+  fun ManchesterNHAirport : Ind Airport ;
+
+  fun MandabeAirport : Ind Airport ;
+
+  fun MandalayAirport : Ind Airport ;
+
+  fun ManderaAirport : Ind Airport ;
+
+  fun MandevilleAirport : Ind Airport ;
+
+  fun MandoraWesternAustraliaAirport : Ind Airport ;
+
+  fun MandritsaraAirport : Ind Airport ;
+
+  fun ManeaAirport : Ind Airport ;
+
+  fun ManetaiAirport : Ind Airport ;
+
+  fun MangaAirport : Ind Airport ;
+
+  fun MangaiaAirport : Ind Airport ;
+
+  fun MangochiAirport : Ind Airport ;
+
+  fun MangoleAirport : Ind Airport ;
+
+  fun MangroveCayAirport : Ind Airport ;
+
+  fun MangunjayaAirport : Ind Airport ;
+
+  fun ManhattanMunicipalKSAirport : Ind Airport ;
+
+  fun ManicoreAMAirport : Ind Airport ;
+
+  fun ManihiAirport : Ind Airport ;
+
+  fun ManihikiIslandAirport : Ind Airport ;
+
+  fun ManilaAirport : Ind Airport ;
+
+  fun ManilaMunicipalARAirport : Ind Airport ;
+
+  fun ManingridaNorthernTerritoryAirport : Ind Airport ;
+
+  fun ManisteeCountyBlackerMIAirport : Ind Airport ;
+
+  fun ManitoulinONAirport : Ind Airport ;
+
+  fun ManitouwadgeONAirport : Ind Airport ;
+
+  fun ManitowaningAerodromeONAirport : Ind Airport ;
+
+  fun ManitowocCountyWIAirport : Ind Airport ;
+
+  fun ManiwakiQCAirport : Ind Airport ;
+
+  fun ManizalesAirport : Ind Airport ;
+
+  fun ManjaAirport : Ind Airport ;
+
+  fun ManjimupWesternAustraliaAirport : Ind Airport ;
+
+  fun MankatoMunicipalMNAirport : Ind Airport ;
+
+  fun ManleyHotSpringsAKAirport : Ind Airport ;
+
+  fun MannersCreekNorthernTerritoryAirport : Ind Airport ;
+
+  fun MannheimAirport : Ind Airport ;
+
+  fun ManokwariAirport : Ind Airport ;
+
+  fun ManonoAirport : Ind Airport ;
+
+  fun MansaAirport : Ind Airport ;
+
+  fun MansfieldLahmMunicipalOHAirport : Ind Airport ;
+
+  fun MantiEphraimUTAirport : Ind Airport ;
+
+  fun ManumuAirport : Ind Airport ;
+
+  fun ManzanilloAirport : Ind Airport ;
+
+  fun MaotaAirport : Ind Airport ;
+
+  fun MapleBayBCAirport : Ind Airport ;
+
+  fun MapodaAirport : Ind Airport ;
+
+  fun MapuaAirport : Ind Airport ;
+
+  fun MaputoAirport : Ind Airport ;
+
+  fun MaquinchaoAirport : Ind Airport ;
+
+  fun MaquoketaMunicipalIAAirport : Ind Airport ;
+
+  fun MaraLodgesAirport : Ind Airport ;
+
+  fun MarabaPAAirport : Ind Airport ;
+
+  fun MaracayAirport : Ind Airport ;
+
+  fun MaradiAirport : Ind Airport ;
+
+  fun MarakeiAirport : Ind Airport ;
+
+  fun MaramuniAirport : Ind Airport ;
+
+  fun MarathonFLAirport : Ind Airport ;
+
+  fun MarathonONAirport : Ind Airport ;
+
+  fun MarauAirport : Ind Airport ;
+
+  fun MarawakaAirport : Ind Airport ;
+
+  fun MarbellaAirport : Ind Airport ;
+
+  fun MarbleBarWesternAustraliaAirport : Ind Airport ;
+
+  fun MarbleCanyonAZAirport : Ind Airport ;
+
+  fun MarcalaAirport : Ind Airport ;
+
+  fun MarchAirForceBaseCAAirport : Ind Airport ;
+
+  fun MarcoIslandFLAirport : Ind Airport ;
+
+  fun MarcoPoloTesseraVeneziaVeniceAirport : Ind Airport ;
+
+  fun MarcusIslandsAirport : Ind Airport ;
+
+  fun MardelPlataAirport : Ind Airport ;
+
+  fun MareLoyaltyIslandsAirport : Ind Airport ;
+
+  fun MarebAirport : Ind Airport ;
+
+  fun MarfaMunicipalTXAirport : Ind Airport ;
+
+  fun MargaretRiverWesternAustraliaAirport : Ind Airport ;
+
+  fun MargarinaAirport : Ind Airport ;
+
+  fun MargaritaIslandAirport : Ind Airport ;
+
+  fun MargateAirport : Ind Airport ;
+
+  fun MargueriteBayAKAirport : Ind Airport ;
+
+  fun MarianskeLazneAirport : Ind Airport ;
+
+  fun MariborAirport : Ind Airport ;
+
+  fun MaricourtAirstripQCAirport : Ind Airport ;
+
+  fun MariehamnMaarianhaminaAirport : Ind Airport ;
+
+  fun MarignaneProvenceMarseilleAirport : Ind Airport ;
+
+  fun MariliaSPAirport : Ind Airport ;
+
+  fun MarinadiMassaAirport : Ind Airport ;
+
+  fun MarinduqueAirport : Ind Airport ;
+
+  fun MarineCorpsAirFacilityHonshuIsAirport : Ind Airport ;
+
+  fun MaringaPRAirport : Ind Airport ;
+
+  fun MarionDownsQueenslandAirport : Ind Airport ;
+
+  fun MarionMunicipalINAirport : Ind Airport ;
+
+  fun MarionMunicipalOHAirport : Ind Airport ;
+
+  fun MaripasoulaAirport : Ind Airport ;
+
+  fun MariquitaAirport : Ind Airport ;
+
+  fun MariscalSucreQuitoAirport : Ind Airport ;
+
+  fun MariupolZhdanovDonetskAirport : Ind Airport ;
+
+  fun MarlaSouthAustraliaAirport : Ind Airport ;
+
+  fun MarlboroughMAAirport : Ind Airport ;
+
+  fun MarmulAirport : Ind Airport ;
+
+  fun MaroantsetraAirport : Ind Airport ;
+
+  fun MaronAirport : Ind Airport ;
+
+  fun MaroochydoreSunshineCoastQueenslandAirport : Ind Airport ;
+
+  fun MarquaNorthernTerritoryAirport : Ind Airport ;
+
+  fun MarquetteCountyMIAirport : Ind Airport ;
+
+  fun MarreeSouthAustraliaAirport : Ind Airport ;
+
+  fun MarromeuAirport : Ind Airport ;
+
+  fun MarsaBregaAirport : Ind Airport ;
+
+  fun MarsaMatrumMersaMatruhAirport : Ind Airport ;
+
+  fun MarsabitAirport : Ind Airport ;
+
+  fun MarshHarbourAbacoAirport : Ind Airport ;
+
+  fun MarshallAKAirport : Ind Airport ;
+
+  fun MarshallIslandsInternationalMajuroAirport : Ind Airport ;
+
+  fun MarshallMemorialMunicipalMOAirport : Ind Airport ;
+
+  fun MarshallMunicipalAirportRyanFieldMNAirport : Ind Airport ;
+
+  fun MarshalltownMunicipalIAAirport : Ind Airport ;
+
+  fun MarshfieldMunicipalWIAirport : Ind Airport ;
+
+  fun MarthasVineyardMAAirport : Ind Airport ;
+
+  fun MartinStateMDAirport : Ind Airport ;
+
+  fun MartindaleArmyAirFieldTexasArmyNationalGuardTXAirport : Ind Airport ;
+
+  fun MarudiSarawakAirport : Ind Airport ;
+
+  fun MaryMaryAirport : Ind Airport ;
+
+  fun MaryboroughQueenslandAirport : Ind Airport ;
+
+  fun MarysHarbourNFAirport : Ind Airport ;
+
+  fun MasaAirport : Ind Airport ;
+
+  fun MasadaAirport : Ind Airport ;
+
+  fun MasalemboAirport : Ind Airport ;
+
+  fun MasambaAirport : Ind Airport ;
+
+  fun MasasiAirport : Ind Airport ;
+
+  fun MasbateAirport : Ind Airport ;
+
+  fun MascaraAirport : Ind Airport ;
+
+  fun MashadAirport : Ind Airport ;
+
+  fun MasiManimbaAirport : Ind Airport ;
+
+  fun MasirahAirport : Ind Airport ;
+
+  fun MasonCityMunicipalIAAirport : Ind Airport ;
+
+  fun MasonCountyMIAirport : Ind Airport ;
+
+  fun MassawaAirport : Ind Airport ;
+
+  fun MassenaInternationalAirportRichardsFieldNYAirport : Ind Airport ;
+
+  fun MassendjoAirport : Ind Airport ;
+
+  fun MassettWaterAerodromeBCAirport : Ind Airport ;
+
+  fun MastertonAirport : Ind Airport ;
+
+  fun MasticPointAirport : Ind Airport ;
+
+  fun MatadiAirport : Ind Airport ;
+
+  fun MatagamiQCAirport : Ind Airport ;
+
+  fun MatagordaPeninsulaTXAirport : Ind Airport ;
+
+  fun MataivaAirport : Ind Airport ;
+
+  fun MatakAirport : Ind Airport ;
+
+  fun MatamAirport : Ind Airport ;
+
+  fun MatamataAirport : Ind Airport ;
+
+  fun MatamorosAirport : Ind Airport ;
+
+  fun MataneQCAirport : Ind Airport ;
+
+  fun MatanzasAirport : Ind Airport ;
+
+  fun MatasaphaManziniAirport : Ind Airport ;
+
+  fun MatecanaPereiraAirport : Ind Airport ;
+
+  fun MatherAirForceBaseCAAirport : Ind Airport ;
+
+  fun MathisFieldTXAirport : Ind Airport ;
+
+  fun MatiAirport : Ind Airport ;
+
+  fun MatoGrossoMGAirport : Ind Airport ;
+
+  fun MatsaileAirport : Ind Airport ;
+
+  fun MatsumotoAirport : Ind Airport ;
+
+  fun MatsuyamaSkikokuAirport : Ind Airport ;
+
+  fun MatthewsRidgeAirport : Ind Airport ;
+
+  fun MatupaAirport : Ind Airport ;
+
+  fun MaturinAirport : Ind Airport ;
+
+  fun MaukeAirport : Ind Airport ;
+
+  fun MaulmyineMoulmeinAirport : Ind Airport ;
+
+  fun MaumereAirport : Ind Airport ;
+
+  fun MaunAirport : Ind Airport ;
+
+  fun MaupitiSocietyIslandsAirport : Ind Airport ;
+
+  fun MauryCountyTNAirport : Ind Airport ;
+
+  fun MavesAirport : Ind Airport ;
+
+  fun MaxwellAirForceBaseALAirport : Ind Airport ;
+
+  fun MayCreekAKAirport : Ind Airport ;
+
+  fun MayRiverAirport : Ind Airport ;
+
+  fun MayaguanaMayaguanaAirport : Ind Airport ;
+
+  fun MayajiquaAirport : Ind Airport ;
+
+  fun MayfaahAirport : Ind Airport ;
+
+  fun MayoYTAirport : Ind Airport ;
+
+  fun MayoumbaAirport : Ind Airport ;
+
+  fun MayportNavalAirStationFLAirport : Ind Airport ;
+
+  fun MazariSharifAirport : Ind Airport ;
+
+  fun MbabaneAirport : Ind Airport ;
+
+  fun MbambanakiraAirport : Ind Airport ;
+
+  fun MbandakaAirport : Ind Airport ;
+
+  fun MbanzaCongoAirport : Ind Airport ;
+
+  fun MbararaAirport : Ind Airport ;
+
+  fun MbeyaAirport : Ind Airport ;
+
+  fun MbigouAirport : Ind Airport ;
+
+  fun MbokiAirport : Ind Airport ;
+
+  fun MboutAirport : Ind Airport ;
+
+  fun MbujiMayiAirport : Ind Airport ;
+
+  fun McAlesterRegionalOKAirport : Ind Airport ;
+
+  fun McArthurRiverNorthernTerritoryAirport : Ind Airport ;
+
+  fun McCallIDAirport : Ind Airport ;
+
+  fun McCarranInternationalNVAirport : Ind Airport ;
+
+  fun McCarthyAKAirport : Ind Airport ;
+
+  fun McChordAirForceBaseWAAirport : Ind Airport ;
+
+  fun McClellanAirForceBaseCAAirport : Ind Airport ;
+
+  fun McCombPikeCountyJohnELewisFieldMSAirport : Ind Airport ;
+
+  fun McCookMunicipalNEAirport : Ind Airport ;
+
+  fun McEntireAirNationalGuardBaseSCAirport : Ind Airport ;
+
+  fun McGheeTysonTNAirport : Ind Airport ;
+
+  fun McGrathAKAirport : Ind Airport ;
+
+  fun McGuireAirForceBaseNJAirport : Ind Airport ;
+
+  fun McKellarSipesRegionalTNAirport : Ind Airport ;
+
+  fun McKennaArmyAirFieldGAAirport : Ind Airport ;
+
+  fun McKinleyNationalParkAKAirport : Ind Airport ;
+
+  fun McMinnCountyTNAirport : Ind Airport ;
+
+  fun McMinnvilleMunicipalORAirport : Ind Airport ;
+
+  fun McNaryFieldORAirport : Ind Airport ;
+
+  fun McPhersonKSAirport : Ind Airport ;
+
+  fun MeadowLakeSKAirport : Ind Airport ;
+
+  fun MechanicsBaySeaplaneBaseAucklandAirport : Ind Airport ;
+
+  fun MedfordJacksonCountyORAirport : Ind Airport ;
+
+  fun MedfraAKAirport : Ind Airport ;
+
+  fun MedicineHatABAirport : Ind Airport ;
+
+  fun MedinaCAAirport : Ind Airport ;
+
+  fun MedinaMadinahAirport : Ind Airport ;
+
+  fun MediteraneeFrejorguesMontpellierAirport : Ind Airport ;
+
+  fun MedouneuAirport : Ind Airport ;
+
+  fun MeekatharraWesternAustraliaAirport : Ind Airport ;
+
+  fun MeenambakkamMadrasAirport : Ind Airport ;
+
+  fun MeffordFieldCAAirport : Ind Airport ;
+
+  fun MegeveAirport : Ind Airport ;
+
+  fun MeghauliAirport : Ind Airport ;
+
+  fun MehamnAirport : Ind Airport ;
+
+  fun MehrabadQualehMorgehTeheranTheranAirport : Ind Airport ;
+
+  fun MeixianAirport : Ind Airport ;
+
+  fun MejitMejitIslandAirport : Ind Airport ;
+
+  fun MekamboAirport : Ind Airport ;
+
+  fun MekaneSalemAirport : Ind Airport ;
+
+  fun MeknesAirport : Ind Airport ;
+
+  fun MekoryukAKAirport : Ind Airport ;
+
+  fun MelangguaneAirport : Ind Airport ;
+
+  fun MelbourneInternationalFLAirport : Ind Airport ;
+
+  fun MelchordeMencosAirport : Ind Airport ;
+
+  fun MelfiAirport : Ind Airport ;
+
+  fun MelillaAirport : Ind Airport ;
+
+  fun MelindaAirport : Ind Airport ;
+
+  fun MeloAirport : Ind Airport ;
+
+  fun MemanbetsuAirport : Ind Airport ;
+
+  fun MemphisInternationalTNAirport : Ind Airport ;
+
+  fun MemphisNavalAirStationTNAirport : Ind Airport ;
+
+  fun MenaAirport : Ind Airport ;
+
+  fun MenaraMarrakechAirport : Ind Airport ;
+
+  fun MendeAirport : Ind Airport ;
+
+  fun MendezAirport : Ind Airport ;
+
+  fun MendiAirport : Ind Airport ;
+
+  fun MendiAirportEthiopia : Ind Airport ;
+
+  fun MenomineeMarinetteTwinCountyMIAirport : Ind Airport ;
+
+  fun MenongueAirport : Ind Airport ;
+
+  fun MercedMunicipalAirportMacreadyFieldCAAirport : Ind Airport ;
+
+  fun MercedesAirport : Ind Airport ;
+
+  fun MerceditaPonceAirport : Ind Airport ;
+
+  fun MercerCountyNJAirport : Ind Airport ;
+
+  fun MerdeyAirport : Ind Airport ;
+
+  fun MeribelAirport : Ind Airport ;
+
+  fun MeridaAirport : Ind Airport ;
+
+  fun MeridianNavalAirStationMcCainFieldMSAirport : Ind Airport ;
+
+  fun MerimbulaNewSouthWalesAirport : Ind Airport ;
+
+  fun MerlunaQueenslandAirport : Ind Airport ;
+
+  fun MeroweAirport : Ind Airport ;
+
+  fun MerrillFieldAKAirport : Ind Airport ;
+
+  fun MerrillMunicipalWIAirport : Ind Airport ;
+
+  fun MerrittBCAirport : Ind Airport ;
+
+  fun MerryIslandBCAirport : Ind Airport ;
+
+  fun MersingAirport : Ind Airport ;
+
+  fun MertySouthAustraliaAirport : Ind Airport ;
+
+  fun MerzifonAirport : Ind Airport ;
+
+  fun MessinaAirport : Ind Airport ;
+
+  fun MessinaAirportItaly : Ind Airport ;
+
+  fun MetcalfFieldOHAirport : Ind Airport ;
+
+  fun MetekelAirport : Ind Airport ;
+
+  fun MetlakatlaAKAirport : Ind Airport ;
+
+  fun MetroFieldAKAirport : Ind Airport ;
+
+  fun MetropolianAreaParisAirport : Ind Airport ;
+
+  fun MetropolitanAreaABAirport : Ind Airport ;
+
+  fun MetropolitanAreaCAAirport : Ind Airport ;
+
+  fun MetropolitanAreaCOAirport : Ind Airport ;
+
+  fun MetropolitanAreaDCAirport : Ind Airport ;
+
+  fun MetropolitanAreaEnglandAirport : Ind Airport ;
+
+  fun MetropolitanAreaFLAirport : Ind Airport ;
+
+  fun MetropolitanAreaMilanoMilanAirport : Ind Airport ;
+
+  fun MetropolitanAreaMoscowAirport : Ind Airport ;
+
+  fun MetropolitanAreaNYAirport : Ind Airport ;
+
+  fun MetropolitanAreaONAirport : Ind Airport ;
+
+  fun MetropolitanAreaOsakaAirport : Ind Airport ;
+
+  fun MetropolitanAreaOsloAirport : Ind Airport ;
+
+  fun MetropolitanAreaQCAirport : Ind Airport ;
+
+  fun MetropolitanAreaRJAirport : Ind Airport ;
+
+  fun MetropolitanAreaRomaRomeAirport : Ind Airport ;
+
+  fun MetropolitanAreaSPAirport : Ind Airport ;
+
+  fun MetropolitanAreaStockholmAirport : Ind Airport ;
+
+  fun MetropolitanAreaTokyoAirport : Ind Airport ;
+
+  fun MetropolitanMAAirport : Ind Airport ;
+
+  fun MetropolitanOaklandInternationalCAAirport : Ind Airport ;
+
+  fun MetterMunicipalGAAirport : Ind Airport ;
+
+  fun MeulabohAirport : Ind Airport ;
+
+  fun MevangAirport : Ind Airport ;
+
+  fun MeyersChuckSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun MfuweAirport : Ind Airport ;
+
+  fun MiamiInternationalFLAirport : Ind Airport ;
+
+  fun MiamiMunicipalOKAirport : Ind Airport ;
+
+  fun MiamiUniversityOHAirport : Ind Airport ;
+
+  fun MiandrivazoAirport : Ind Airport ;
+
+  fun MianwaliAirport : Ind Airport ;
+
+  fun MichianaRegionalTransportationCenterINAirport : Ind Airport ;
+
+  fun MichiganCityINAirport : Ind Airport ;
+
+  fun MidStatePAAirport : Ind Airport ;
+
+  fun MiddleCaicosAirport : Ind Airport ;
+
+  fun MiddleGeorgiaRegionalGAAirport : Ind Airport ;
+
+  fun MiddlemountQueenslandAirport : Ind Airport ;
+
+  fun MiddletonIslandAKAirport : Ind Airport ;
+
+  fun MidlandAirparkTXAirport : Ind Airport ;
+
+  fun MidlandInternationalTXAirport : Ind Airport ;
+
+  fun MidwayNavalAirFacilitySandIslandAirport : Ind Airport ;
+
+  fun MifflinCountyPAAirport : Ind Airport ;
+
+  fun MikkeliAirport : Ind Airport ;
+
+  fun MikraThessalonikiSalonikiAirport : Ind Airport ;
+
+  fun MildenhallAirport : Ind Airport ;
+
+  fun MilduraVictoriaAirport : Ind Airport ;
+
+  fun MilfordMunicipalUTAirport : Ind Airport ;
+
+  fun MilfordSoundAirport : Ind Airport ;
+
+  fun MiliMiliIslandAirport : Ind Airport ;
+
+  fun MillardNEAirport : Ind Airport ;
+
+  fun MillerFieldNEAirport : Ind Airport ;
+
+  fun MillerInternationalTXAirport : Ind Airport ;
+
+  fun MillicentSouthAustraliaAirport : Ind Airport ;
+
+  fun MillingimbiNorthernTerritoryAirport : Ind Airport ;
+
+  fun MillinocketMunicipalMEAirport : Ind Airport ;
+
+  fun MillvilleMunicipalNJAirport : Ind Airport ;
+
+  fun MilosAirport : Ind Airport ;
+
+  fun MinacuAirport : Ind Airport ;
+
+  fun MinakiAerodromeONAirport : Ind Airport ;
+
+  fun MinaltonSouthAustraliaAirport : Ind Airport ;
+
+  fun MinamiDaitoJimaOkinawaAirport : Ind Airport ;
+
+  fun MinatitlanAirport : Ind Airport ;
+
+  fun MinchuminaAKAirport : Ind Airport ;
+
+  fun MindikAirport : Ind Airport ;
+
+  fun MindiptanaAirport : Ind Airport ;
+
+  fun MineralWellsTXAirport : Ind Airport ;
+
+  fun MineralniyeVodyStavropolAirport : Ind Airport ;
+
+  fun MinersBayBCAirport : Ind Airport ;
+
+  fun MinersLakeAirport : Ind Airport ;
+
+  fun MingaladonYangoonRangoonAirport : Ind Airport ;
+
+  fun MinganQCAirport : Ind Airport ;
+
+  fun MinjAirport : Ind Airport ;
+
+  fun MinnaAirport : Ind Airport ;
+
+  fun MinneapolisStPaulInternationalWoldChamberlainMNAirport : Ind Airport ;
+
+  fun MinneriyaAirport : Ind Airport ;
+
+  fun MinnipaSouthAustraliaAirport : Ind Airport ;
+
+  fun MinotAirForceBaseNDAirport : Ind Airport ;
+
+  fun MinotInternationalNDAirport : Ind Airport ;
+
+  fun MintoAKAirport : Ind Airport ;
+
+  fun MinuteManAirfieldMAAirport : Ind Airport ;
+
+  fun MinvoulAirport : Ind Airport ;
+
+  fun MiquelonAirport : Ind Airport ;
+
+  fun MirabelInternationalQCAirport : Ind Airport ;
+
+  fun MiracemadoNorteGOAirport : Ind Airport ;
+
+  fun MirafloresAirport : Ind Airport ;
+
+  fun MiramarAirport : Ind Airport ;
+
+  fun MiramarNavalAirStationMitscherFieldCAAirport : Ind Airport ;
+
+  fun MirandaDownsQueenslandAirport : Ind Airport ;
+
+  fun MirgorodPoltavaAirport : Ind Airport ;
+
+  fun MiriSarawakAirport : Ind Airport ;
+
+  fun MiritiAirport : Ind Airport ;
+
+  fun MirnyyYakutiaSakhaAirport : Ind Airport ;
+
+  fun MirpurAirport : Ind Airport ;
+
+  fun MirpurKhasAirport : Ind Airport ;
+
+  fun MisawaAirport : Ind Airport ;
+
+  fun MisimaAirport : Ind Airport ;
+
+  fun MiskolcAirport : Ind Airport ;
+
+  fun MissionFieldMTAirport : Ind Airport ;
+
+  fun MissoulaInternationalMTAirport : Ind Airport ;
+
+  fun MissouriAirNationalGuardMOAirport : Ind Airport ;
+
+  fun MisurataAirport : Ind Airport ;
+
+  fun MitchellMunicipalSDAirport : Ind Airport ;
+
+  fun MitchellPlateauAirport : Ind Airport ;
+
+  fun MitchellQueenslandAirport : Ind Airport ;
+
+  fun MitchellRiverAirport : Ind Airport ;
+
+  fun MitiaroAirport : Ind Airport ;
+
+  fun MitspehRamonaAirport : Ind Airport ;
+
+  fun MituAirport : Ind Airport ;
+
+  fun MitzicAirport : Ind Airport ;
+
+  fun MiyakeJimaAirport : Ind Airport ;
+
+  fun MiyakoJimaRyukuAirport : Ind Airport ;
+
+  fun MiyanminAirport : Ind Airport ;
+
+  fun MizanTeferiAirport : Ind Airport ;
+
+  fun MkambatiAirport : Ind Airport ;
+
+  fun MkuzeAirport : Ind Airport ;
+
+  fun MoaAirport : Ind Airport ;
+
+  fun MoabiAirport : Ind Airport ;
+
+  fun MoalaAirport : Ind Airport ;
+
+  fun MoanamaniAirport : Ind Airport ;
+
+  fun MoandaAirport : Ind Airport ;
+
+  fun MoandaAirportGabon : Ind Airport ;
+
+  fun MobridgeMunicipalSDAirport : Ind Airport ;
+
+  fun MocamedesNewNamibeAirport : Ind Airport ;
+
+  fun MocimboadaPraiaAirport : Ind Airport ;
+
+  fun MococaSPAirport : Ind Airport ;
+
+  fun ModestoCityCountyAirportHarryShamFieldCAAirport : Ind Airport ;
+
+  fun MoenchengladbachMonchengladbachAirport : Ind Airport ;
+
+  fun MoenjodaroMohenjoDaroAirport : Ind Airport ;
+
+  fun MoffettFieldNavalAirStationCAAirport : Ind Airport ;
+
+  fun MogidasCrazesSPAirport : Ind Airport ;
+
+  fun MohanbariAirport : Ind Airport ;
+
+  fun MoheliAirport : Ind Airport ;
+
+  fun MoiInternationalMombasaAirport : Ind Airport ;
+
+  fun MojaveCAAirport : Ind Airport ;
+
+  fun MokhotlongAirport : Ind Airport ;
+
+  fun MokiAirport : Ind Airport ;
+
+  fun MokpoAirport : Ind Airport ;
+
+  fun MokutiAirport : Ind Airport ;
+
+  fun MolokaiHIAirport : Ind Airport ;
+
+  fun MomaAirport : Ind Airport ;
+
+  fun MomeikAirport : Ind Airport ;
+
+  fun MompusAirport : Ind Airport ;
+
+  fun MonbetsuAirport : Ind Airport ;
+
+  fun MonclovaAirport : Ind Airport ;
+
+  fun MonctonNBAirport : Ind Airport ;
+
+  fun MonfortAirport : Ind Airport ;
+
+  fun MonghsatAirport : Ind Airport ;
+
+  fun MongoAirport : Ind Airport ;
+
+  fun MonguAirport : Ind Airport ;
+
+  fun MonkeyIslandAirport : Ind Airport ;
+
+  fun MonkeyMiaWesternAustraliaAirport : Ind Airport ;
+
+  fun MonkeyMountainAirport : Ind Airport ;
+
+  fun MonkiraQueenslandAirport : Ind Airport ;
+
+  fun MonoAirport : Ind Airport ;
+
+  fun MonroeCountyALAirport : Ind Airport ;
+
+  fun MonroeRegionalLAAirport : Ind Airport ;
+
+  fun MonsAirport : Ind Airport ;
+
+  fun MontJoliQCAirport : Ind Airport ;
+
+  fun MontagueHarborBCAirport : Ind Airport ;
+
+  fun MontaukNYAirport : Ind Airport ;
+
+  fun MonteAlegrePAAirport : Ind Airport ;
+
+  fun MonteCarloAirport : Ind Airport ;
+
+  fun MonteDouradoAirport : Ind Airport ;
+
+  fun MonteLibanoAirport : Ind Airport ;
+
+  fun MontenegroRSAirport : Ind Airport ;
+
+  fun MontepuezAirport : Ind Airport ;
+
+  fun MontereyPeninsulaCAAirport : Ind Airport ;
+
+  fun MonteriaAirport : Ind Airport ;
+
+  fun MonterreyAirport : Ind Airport ;
+
+  fun MontesCaserosAirport : Ind Airport ;
+
+  fun MontesClarosMGAirport : Ind Airport ;
+
+  fun MontevideoChippewaCountyMNAirport : Ind Airport ;
+
+  fun MontgomeryFieldCAAirport : Ind Airport ;
+
+  fun MonticelloMunicipalIAAirport : Ind Airport ;
+
+  fun MontluconAirport : Ind Airport ;
+
+  fun MontoQueenslandAirport : Ind Airport ;
+
+  fun MontoirSaintNazaireAirport : Ind Airport ;
+
+  fun MontreuxAirport : Ind Airport ;
+
+  fun MontroseRegionalCOAirport : Ind Airport ;
+
+  fun MoodyAirForceBaseGAAirport : Ind Airport ;
+
+  fun MoolawatanaSouthAustraliaAirport : Ind Airport ;
+
+  fun MoombaAirport : Ind Airport ;
+
+  fun MoorabbinVictoriaAirport : Ind Airport ;
+
+  fun MooraberrieQueenslandAirport : Ind Airport ;
+
+  fun MooreCountyNCAirport : Ind Airport ;
+
+  fun MooreMurrellTNAirport : Ind Airport ;
+
+  fun MooreaSocietyIslandsAirport : Ind Airport ;
+
+  fun MooseJawSKAirport : Ind Airport ;
+
+  fun MoosoneeONAirport : Ind Airport ;
+
+  fun MopahMeraukeAirport : Ind Airport ;
+
+  fun MorafenobeAirport : Ind Airport ;
+
+  fun MoranbahQueenslandAirport : Ind Airport ;
+
+  fun MorawaWesternAustraliaAirport : Ind Airport ;
+
+  fun MordakAirport : Ind Airport ;
+
+  fun MoreeNewSouthWalesAirport : Ind Airport ;
+
+  fun MoreheadAirport : Ind Airport ;
+
+  fun MoreliaAirport : Ind Airport ;
+
+  fun MoretonQueenslandAirport : Ind Airport ;
+
+  fun MorgantonLenoirNCAirport : Ind Airport ;
+
+  fun MorgantownMunicipalAirportWalterLBillHartFieldWVAirport : Ind Airport ;
+
+  fun MorichalAirport : Ind Airport ;
+
+  fun MoriokaAirport : Ind Airport ;
+
+  fun MorneyPlainsQueenslandAirport : Ind Airport ;
+
+  fun MorningtonIslandQueenslandAirport : Ind Airport ;
+
+  fun MorobeAirport : Ind Airport ;
+
+  fun MorombeAirport : Ind Airport ;
+
+  fun MoronAirBaseMorondelaFronteraAirport : Ind Airport ;
+
+  fun MorondavaAirport : Ind Airport ;
+
+  fun MorotaiIslandAirport : Ind Airport ;
+
+  fun MorrisMunicipalMNAirport : Ind Airport ;
+
+  fun MorristownMunicipalNJAirport : Ind Airport ;
+
+  fun MorrisvilleStoweStateVTAirport : Ind Airport ;
+
+  fun MoruyaNewSouthWalesAirport : Ind Airport ;
+
+  fun MosesPointAKAirport : Ind Airport ;
+
+  fun MoshiAirport : Ind Airport ;
+
+  fun MoshoeshoeIInternationalMaseruAirport : Ind Airport ;
+
+  fun MosjoenAirport : Ind Airport ;
+
+  fun MosnovOstravaAirport : Ind Airport ;
+
+  fun MosqueraAirport : Ind Airport ;
+
+  fun MosselBayAirport : Ind Airport ;
+
+  fun MossoroRNAirport : Ind Airport ;
+
+  fun MostarAirport : Ind Airport ;
+
+  fun MosteirosAirport : Ind Airport ;
+
+  fun MostynAirport : Ind Airport ;
+
+  fun MosulAirport : Ind Airport ;
+
+  fun MotaLavaAirport : Ind Airport ;
+
+  fun MotonFieldMunicipalALAirport : Ind Airport ;
+
+  fun MotuekaAirport : Ind Airport ;
+
+  fun MoudjeriaAirport : Ind Airport ;
+
+  fun MouilaAirport : Ind Airport ;
+
+  fun MouldBayNTAirport : Ind Airport ;
+
+  fun MoultrieMunicipalGAAirport : Ind Airport ;
+
+  fun MoundouAirport : Ind Airport ;
+
+  fun MountAueAirport : Ind Airport ;
+
+  fun MountBarnettWesternAustraliaAirport : Ind Airport ;
+
+  fun MountComfortINAirport : Ind Airport ;
+
+  fun MountCookAirport : Ind Airport ;
+
+  fun MountGambierSouthAustraliaAirport : Ind Airport ;
+
+  fun MountHothamVictoriaAirport : Ind Airport ;
+
+  fun MountMagnetWesternAustraliaAirport : Ind Airport ;
+
+  fun MountPleasantAirport : Ind Airport ;
+
+  fun MountPleasantMunicipalIAAirport : Ind Airport ;
+
+  fun MountPleasantMunicipalMIAirport : Ind Airport ;
+
+  fun MountPleasantMunicipalTXAirport : Ind Airport ;
+
+  fun MountPleasantUTAirport : Ind Airport ;
+
+  fun MountShastaCAAirport : Ind Airport ;
+
+  fun MountVernonILAirport : Ind Airport ;
+
+  fun MountWilsonCAAirport : Ind Airport ;
+
+  fun MountainAirport : Ind Airport ;
+
+  fun MountainHomeAirForceBaseIDAirport : Ind Airport ;
+
+  fun MountainValleyAirport : Ind Airport ;
+
+  fun MountainVillageAKAirport : Ind Airport ;
+
+  fun MoutiersAirport : Ind Airport ;
+
+  fun MouyondziAirport : Ind Airport ;
+
+  fun MoyaleAirport : Ind Airport ;
+
+  fun MoyaleAirportKenya : Ind Airport ;
+
+  fun MoyoAirport : Ind Airport ;
+
+  fun MoyobambaAirport : Ind Airport ;
+
+  fun MpachaAirport : Ind Airport ;
+
+  fun MtBuffaloAirport : Ind Airport ;
+
+  fun MtCavenaghNorthernTerritoryAirport : Ind Airport ;
+
+  fun MtFullStopAirport : Ind Airport ;
+
+  fun MtHouseWesternAustraliaAirport : Ind Airport ;
+
+  fun MtSanfordNorthernTerritoryAirport : Ind Airport ;
+
+  fun MtSwanNorthernTerritoryAirport : Ind Airport ;
+
+  fun MtwaraAirport : Ind Airport ;
+
+  fun MuccanWesternAustraliaAirport : Ind Airport ;
+
+  fun MucuriBAAirport : Ind Airport ;
+
+  fun MudanjiangAirport : Ind Airport ;
+
+  fun MueoAirport : Ind Airport ;
+
+  fun MuiAirport : Ind Airport ;
+
+  fun MuirArmyAirFieldPAAirport : Ind Airport ;
+
+  fun MukahSarawakAirport : Ind Airport ;
+
+  fun MukallaAirport : Ind Airport ;
+
+  fun MukeirasAirport : Ind Airport ;
+
+  fun MukhinoBuryatiaAirport : Ind Airport ;
+
+  fun MukoMukoAirport : Ind Airport ;
+
+  fun MulatosAirport : Ind Airport ;
+
+  fun MulegeAirport : Ind Airport ;
+
+  fun MulgaParkNorthernTerritoryAirport : Ind Airport ;
+
+  fun MuliaAirport : Ind Airport ;
+
+  fun MulkaSouthAustraliaAirport : Ind Airport ;
+
+  fun MullAirport : Ind Airport ;
+
+  fun MullewaWesternAustraliaAirport : Ind Airport ;
+
+  fun MultanAirport : Ind Airport ;
+
+  fun MuluAirport : Ind Airport ;
+
+  fun MumiasAirport : Ind Airport ;
+
+  fun MunbilAirport : Ind Airport ;
+
+  fun MunchenAirport : Ind Airport ;
+
+  fun MundaNewGeorgiaIsAirport : Ind Airport ;
+
+  fun MundukuAirport : Ind Airport ;
+
+  fun MungeranieSouthAustraliaAirport : Ind Airport ;
+
+  fun MunicipalPAAirport : Ind Airport ;
+
+  fun MuongSaiAirport : Ind Airport ;
+
+  fun MuriaeMGAirport : Ind Airport ;
+
+  fun MurmanskMurmanskAirport : Ind Airport ;
+
+  fun MurrayBayNTAirport : Ind Airport ;
+
+  fun MurrayIslandsQueenslandAirport : Ind Airport ;
+
+  fun MurtalaMuhammedLagosAirport : Ind Airport ;
+
+  fun MuscatineMunicipalIAAirport : Ind Airport ;
+
+  fun MuscleShoalsRegionalALAirport : Ind Airport ;
+
+  fun MusgraveQueenslandAirport : Ind Airport ;
+
+  fun MushaAirport : Ind Airport ;
+
+  fun MuskokaONAirport : Ind Airport ;
+
+  fun MuskratDamONAirport : Ind Airport ;
+
+  fun MusomaAirport : Ind Airport ;
+
+  fun MussauAirport : Ind Airport ;
+
+  fun MustinALFPAAirport : Ind Airport ;
+
+  fun MustiqueIslandAirport : Ind Airport ;
+
+  fun MutareAirport : Ind Airport ;
+
+  fun MutiaraPaluAirport : Ind Airport ;
+
+  fun MutingAirport : Ind Airport ;
+
+  fun MuttaburraQueenslandAirport : Ind Airport ;
+
+  fun MuzaffarabadAirport : Ind Airport ;
+
+  fun MuzaffarnagarAirport : Ind Airport ;
+
+  fun MuzaffarpurAirport : Ind Airport ;
+
+  fun MwaduiAirport : Ind Airport ;
+
+  fun MwanaLamuAirport : Ind Airport ;
+
+  fun MwanzaAirport : Ind Airport ;
+
+  fun MwekaAirport : Ind Airport ;
+
+  fun MyeikMerguiAirport : Ind Airport ;
+
+  fun MyitkyinaAirport : Ind Airport ;
+
+  fun MykolayivNikolayevMykolayivAirport : Ind Airport ;
+
+  fun MyroodahAirport : Ind Airport ;
+
+  fun MyrtleBeachAirForceBaseSCAirport : Ind Airport ;
+
+  fun MysoreAirport : Ind Airport ;
+
+  fun MytileneMitiliniLesbosIslandAirport : Ind Airport ;
+
+  fun MzambaAirport : Ind Airport ;
+
+  fun MzuzuAirport : Ind Airport ;
+
+  fun NDjamenaAirport : Ind Airport ;
+
+  fun NDolaAirport : Ind Airport ;
+
+  fun NDoloKinshasaAirport : Ind Airport ;
+
+  fun NGaoundereAirport : Ind Airport ;
+
+  fun NKongsambaAirport : Ind Airport ;
+
+  fun NRCMIAirport : Ind Airport ;
+
+  fun NZerekoreAirport : Ind Airport ;
+
+  fun NaberezhnyyeChelnyTatarstanAirport : Ind Airport ;
+
+  fun NabireAirport : Ind Airport ;
+
+  fun NacalaAirport : Ind Airport ;
+
+  fun NachingweaAirport : Ind Airport ;
+
+  fun NadiAirport : Ind Airport ;
+
+  fun NadorAirport : Ind Airport ;
+
+  fun NadymTyumenAirport : Ind Airport ;
+
+  fun NadzabLaeAirport : Ind Airport ;
+
+  fun NagaAirport : Ind Airport ;
+
+  fun NaganoAirport : Ind Airport ;
+
+  fun NagasakiAirport : Ind Airport ;
+
+  fun NagpurAirport : Ind Airport ;
+
+  fun NahaAirport : Ind Airport ;
+
+  fun NahaSangiheAirport : Ind Airport ;
+
+  fun NainNFAirport : Ind Airport ;
+
+  fun NakashibetsuAirport : Ind Airport ;
+
+  fun NakhonRatchasimaAirport : Ind Airport ;
+
+  fun NakhonSiThammaratAirport : Ind Airport ;
+
+  fun NakinaONAirport : Ind Airport ;
+
+  fun NaknekAKAirport : Ind Airport ;
+
+  fun NakuruAirport : Ind Airport ;
+
+  fun NalchikKabardinoBalkariaAirport : Ind Airport ;
+
+  fun NamanganNamanganAirport : Ind Airport ;
+
+  fun NamaoFieldABAirport : Ind Airport ;
+
+  fun NambourQueenslandAirport : Ind Airport ;
+
+  fun NambuccaHeadsNewSouthWalesAirport : Ind Airport ;
+
+  fun NamleaAirport : Ind Airport ;
+
+  fun NamorikNamorikAirport : Ind Airport ;
+
+  fun NamroleBuruIslandAirport : Ind Airport ;
+
+  fun NamsangAirport : Ind Airport ;
+
+  fun NamsosAirport : Ind Airport ;
+
+  fun NamtuAirport : Ind Airport ;
+
+  fun NamuAirport : Ind Airport ;
+
+  fun NamuBCAirport : Ind Airport ;
+
+  fun NamudiAirport : Ind Airport ;
+
+  fun NamutoniAirport : Ind Airport ;
+
+  fun NanAirport : Ind Airport ;
+
+  fun NanYuanAirBaseBeijingAirport : Ind Airport ;
+
+  fun NanaimoBCAirport : Ind Airport ;
+
+  fun NanaimoHarbourSeaplaneBaseBCAirport : Ind Airport ;
+
+  fun NanchongAirport : Ind Airport ;
+
+  fun NandedAirport : Ind Airport ;
+
+  fun NangadeAirport : Ind Airport ;
+
+  fun NangapinohAirport : Ind Airport ;
+
+  fun NanisivikNTAirport : Ind Airport ;
+
+  fun NanjingAirport : Ind Airport ;
+
+  fun NankiShirahanaAirport : Ind Airport ;
+
+  fun NankinaAirport : Ind Airport ;
+
+  fun NanningAirport : Ind Airport ;
+
+  fun NantongAirport : Ind Airport ;
+
+  fun NanuqueMGAirport : Ind Airport ;
+
+  fun NanyangAirport : Ind Airport ;
+
+  fun NanyukiAirport : Ind Airport ;
+
+  fun NaoroAirport : Ind Airport ;
+
+  fun NapakiakAKAirport : Ind Airport ;
+
+  fun NapaskiakAKAirport : Ind Airport ;
+
+  fun NapierHastingsAirport : Ind Airport ;
+
+  fun NappaMerryQueenslandAirport : Ind Airport ;
+
+  fun NapperbyNorthernTerritoryAirport : Ind Airport ;
+
+  fun NapukaAirport : Ind Airport ;
+
+  fun NaraAirport : Ind Airport ;
+
+  fun NaracoorteSouthAustraliaAirport : Ind Airport ;
+
+  fun NarathiwatAirport : Ind Airport ;
+
+  fun NareAirport : Ind Airport ;
+
+  fun NarganaAirport : Ind Airport ;
+
+  fun NaritaTokyoAirport : Ind Airport ;
+
+  fun NaroomaAirport : Ind Airport ;
+
+  fun NarrabriNewSouthWalesAirport : Ind Airport ;
+
+  fun NarranderaNewSouthWalesAirport : Ind Airport ;
+
+  fun NarroginWesternAustraliaAirport : Ind Airport ;
+
+  fun NarromineNewSouthWalesAirport : Ind Airport ;
+
+  fun NarssarssuaqAirport : Ind Airport ;
+
+  fun NartronFieldMIAirport : Ind Airport ;
+
+  fun NarumAirport : Ind Airport ;
+
+  fun NassauSeaplaneBaseNewProvidenceAirport : Ind Airport ;
+
+  fun NatadolaAirport : Ind Airport ;
+
+  fun NatalRNAirport : Ind Airport ;
+
+  fun NatashquanQCAirport : Ind Airport ;
+
+  fun NatitingouAirport : Ind Airport ;
+
+  fun NatunaRanaiAirport : Ind Airport ;
+
+  fun NaukitiAKAirport : Ind Airport ;
+
+  fun NausoriInternationalSuvaAirport : Ind Airport ;
+
+  fun NavegantesAirport : Ind Airport ;
+
+  fun NawabShahAirport : Ind Airport ;
+
+  fun NazcaAirport : Ind Airport ;
+
+  fun NdeleAirport : Ind Airport ;
+
+  fun NecocheaAirport : Ind Airport ;
+
+  fun NecocliAirport : Ind Airport ;
+
+  fun NeftaTozeurAirport : Ind Airport ;
+
+  fun NefteyuganskTyumenAirport : Ind Airport ;
+
+  fun NegginanMBAirport : Ind Airport ;
+
+  fun NegrilAirport : Ind Airport ;
+
+  fun NeivaAirport : Ind Airport ;
+
+  fun NekemeteAirport : Ind Airport ;
+
+  fun NekemptAirport : Ind Airport ;
+
+  fun NellisAirForceBaseNVAirport : Ind Airport ;
+
+  fun NelsonAirport : Ind Airport ;
+
+  fun NelsonBCAirport : Ind Airport ;
+
+  fun NelsonLagoonAKAirport : Ind Airport ;
+
+  fun NelspruitAirport : Ind Airport ;
+
+  fun NemiscauQCAirport : Ind Airport ;
+
+  fun NephiMunicipalUTAirport : Ind Airport ;
+
+  fun NeryungriYakutiaSakhaAirport : Ind Airport ;
+
+  fun NeuIsenburgAirport : Ind Airport ;
+
+  fun NeuquenAirport : Ind Airport ;
+
+  fun NevadaCountyAirParkCAAirport : Ind Airport ;
+
+  fun NevadaMunicipalMOAirport : Ind Airport ;
+
+  fun NeverasAirport : Ind Airport ;
+
+  fun NewCastleHenryCountyMunicipalINAirport : Ind Airport ;
+
+  fun NewChenegaAKAirport : Ind Airport ;
+
+  fun NewHalfaAirport : Ind Airport ;
+
+  fun NewMoonQueenslandAirport : Ind Airport ;
+
+  fun NewOrleansInternationalAirportMoisantFieldLAAirport : Ind Airport ;
+
+  fun NewOrleansNavalAirStationAlvinCallenderFieldLAAirport : Ind Airport ;
+
+  fun NewPlymouthAirport : Ind Airport ;
+
+  fun NewRichmondMunicipalWIAirport : Ind Airport ;
+
+  fun NewRiverValleyVAAirport : Ind Airport ;
+
+  fun NewUlmMunicipalMNAirport : Ind Airport ;
+
+  fun NewValleyAirport : Ind Airport ;
+
+  fun NewWestminsterWaterAerodromeBCAirport : Ind Airport ;
+
+  fun NewYorkSkyportsIncSeaplaneBaseNYAirport : Ind Airport ;
+
+  fun NewcastleAirport : Ind Airport ;
+
+  fun NewcastleAirportUnitedKingdom : Ind Airport ;
+
+  fun NewcastleNevisAirport : Ind Airport ;
+
+  fun NewmanWesternAustraliaAirport : Ind Airport ;
+
+  fun NewportMunicipalORAirport : Ind Airport ;
+
+  fun NewportNewsWilliamsburgInternationalVAAirport : Ind Airport ;
+
+  fun NewportStateRIAirport : Ind Airport ;
+
+  fun NewryNorthernTerritoryAirport : Ind Airport ;
+
+  fun NewtokSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun NewtonMunicipalIAAirport : Ind Airport ;
+
+  fun NeyveliAirport : Ind Airport ;
+
+  fun NgauAirport : Ind Airport ;
+
+  fun NgivaOngivaOndjivaAirport : Ind Airport ;
+
+  fun NgomaAirport : Ind Airport ;
+
+  fun NgukurrNorthernTerritoryAirport : Ind Airport ;
+
+  fun NhaTrangAirport : Ind Airport ;
+
+  fun NiameyAirport : Ind Airport ;
+
+  fun NiamtougouLamaKaraAirport : Ind Airport ;
+
+  fun NiblackAKAirport : Ind Airport ;
+
+  fun NichenCoveAKAirport : Ind Airport ;
+
+  fun NichinCoveSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun NicholsonPeninsulaWaterAerodromeNTAirport : Ind Airport ;
+
+  fun NicholsonWesternAustraliaAirport : Ind Airport ;
+
+  fun NicosiaAirport : Ind Airport ;
+
+  fun NicoyaAirport : Ind Airport ;
+
+  fun NiftyWesternAustraliaAirport : Ind Airport ;
+
+  fun NigerumAirport : Ind Airport ;
+
+  fun NightmuteAKAirport : Ind Airport ;
+
+  fun NikolaiAKAirport : Ind Airport ;
+
+  fun NikunauAirport : Ind Airport ;
+
+  fun NimbaAirport : Ind Airport ;
+
+  fun NingboAirport : Ind Airport ;
+
+  fun NinilchikAKAirport : Ind Airport ;
+
+  fun NinoyAquinoInternationalManilaAirport : Ind Airport ;
+
+  fun NiokiAirport : Ind Airport ;
+
+  fun NiokoloKobaAirport : Ind Airport ;
+
+  fun NioroAirport : Ind Airport ;
+
+  fun NiortAirport : Ind Airport ;
+
+  fun NipaAirport : Ind Airport ;
+
+  fun NipawinSKAirport : Ind Airport ;
+
+  fun NiquelandiaGOAirport : Ind Airport ;
+
+  fun NitchequonQCAirport : Ind Airport ;
+
+  fun NiteroiRJAirport : Ind Airport ;
+
+  fun NiuafoouAirport : Ind Airport ;
+
+  fun NiuatoputapuAirport : Ind Airport ;
+
+  fun NiuqsutAKAirport : Ind Airport ;
+
+  fun NizhevartovskTyumenAirport : Ind Airport ;
+
+  fun NkanAirport : Ind Airport ;
+
+  fun NkausAirport : Ind Airport ;
+
+  fun NkayiAirport : Ind Airport ;
+
+  fun NkoloAirport : Ind Airport ;
+
+  fun NoatakAKAirport : Ind Airport ;
+
+  fun NogalesAirport : Ind Airport ;
+
+  fun NogalesInternationalAZAirport : Ind Airport ;
+
+  fun NojabrxskAirport : Ind Airport ;
+
+  fun NomadRiverAirport : Ind Airport ;
+
+  fun NomeAKAirport : Ind Airport ;
+
+  fun NondaltonAKAirport : Ind Airport ;
+
+  fun NonoutiAirport : Ind Airport ;
+
+  fun NoonkanbahWesternAustraliaAirport : Ind Airport ;
+
+  fun NoosaQueenslandAirport : Ind Airport ;
+
+  fun NoosavilleQueenslandAirport : Ind Airport ;
+
+  fun NootkaSoundBCAirport : Ind Airport ;
+
+  fun NoraAKAirport : Ind Airport ;
+
+  fun NorddeichAirport : Ind Airport ;
+
+  fun NordenAirport : Ind Airport ;
+
+  fun NorderneyAirport : Ind Airport ;
+
+  fun NordfjordurAirport : Ind Airport ;
+
+  fun NordholzAirport : Ind Airport ;
+
+  fun NorfolkInternationalVAAirport : Ind Airport ;
+
+  fun NorfolkIslandNorfolkIslandAirport : Ind Airport ;
+
+  fun NorfolkNavalAirStationChambersFieldVAAirport : Ind Airport ;
+
+  fun NorilskNorylskNorylskAirport : Ind Airport ;
+
+  fun NormanWellsNTAirport : Ind Airport ;
+
+  fun NormansCayAirport : Ind Airport ;
+
+  fun NormantonQueenslandAirport : Ind Airport ;
+
+  fun NorsemanWesternAustraliaAirport : Ind Airport ;
+
+  fun NorsupAirport : Ind Airport ;
+
+  fun NorthAirForceAuxiliarySCAirport : Ind Airport ;
+
+  fun NorthBattlefordSKAirport : Ind Airport ;
+
+  fun NorthBayONAirport : Ind Airport ;
+
+  fun NorthBendMunicipalORAirport : Ind Airport ;
+
+  fun NorthCaicosAirport : Ind Airport ;
+
+  fun NorthCentralStateRIAirport : Ind Airport ;
+
+  fun NorthDallasHeliportTXAirport : Ind Airport ;
+
+  fun NorthForkValleyCOAirport : Ind Airport ;
+
+  fun NorthIslandNavalAirStationHalseyFieldCAAirport : Ind Airport ;
+
+  fun NorthLasVegasAirTerminalNVAirport : Ind Airport ;
+
+  fun NorthPlatteRegionalNEAirport : Ind Airport ;
+
+  fun NorthRaleighNCAirport : Ind Airport ;
+
+  fun NorthRimAZAirport : Ind Airport ;
+
+  fun NorthRonaldswayAirport : Ind Airport ;
+
+  fun NorthSeaplaneBaseBiminiAirport : Ind Airport ;
+
+  fun NorthSpiritLakeONAirport : Ind Airport ;
+
+  fun NorthVernonINAirport : Ind Airport ;
+
+  fun NorthWhaleSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun NorthamptonAirportWitteringRAFStationEnglandAirport : Ind Airport ;
+
+  fun NortheastCapeAKAirport : Ind Airport ;
+
+  fun NortheastPhiladelphiaPAAirport : Ind Airport ;
+
+  fun NorthernAroostookRegionalMEAirport : Ind Airport ;
+
+  fun NorthernMaineRegionalAirportatPresqueIsleMEAirport : Ind Airport ;
+
+  fun NorthholtAerodromeEnglandAirport : Ind Airport ;
+
+  fun NorthsideMIAirport : Ind Airport ;
+
+  fun NorthwayAKAirport : Ind Airport ;
+
+  fun NortonMunicipalKSAirport : Ind Airport ;
+
+  fun NorwalkCTAirport : Ind Airport ;
+
+  fun NorwayHouseMBAirport : Ind Airport ;
+
+  fun NorwichAirport : Ind Airport ;
+
+  fun NorwoodMemorialMAAirport : Ind Airport ;
+
+  fun NosaraBeachAirport : Ind Airport ;
+
+  fun NotoddenAirport : Ind Airport ;
+
+  fun NouadhibouAirport : Ind Airport ;
+
+  fun NouakchottAirport : Ind Airport ;
+
+  fun NounaeAirport : Ind Airport ;
+
+  fun NovaIguacuRJAirport : Ind Airport ;
+
+  fun NovaLamegoAirport : Ind Airport ;
+
+  fun NovaXavantinaAirport : Ind Airport ;
+
+  fun NovgorodNovgorodAirport : Ind Airport ;
+
+  fun NoviSadAirport : Ind Airport ;
+
+  fun NovoAripuanaAirport : Ind Airport ;
+
+  fun NovoHamburgoRSAirport : Ind Airport ;
+
+  fun NovoalexeyevkaAbkhaziaAirport : Ind Airport ;
+
+  fun NovokuznetskNovokuznetskAirport : Ind Airport ;
+
+  fun NovorossiyskKrasnodarAirport : Ind Airport ;
+
+  fun NovyUrengoyAirport : Ind Airport ;
+
+  fun NowataAirport : Ind Airport ;
+
+  fun NowraNewSouthWalesAirport : Ind Airport ;
+
+  fun NowshahrAirport : Ind Airport ;
+
+  fun NsimalenInternationalYaoundeAirport : Ind Airport ;
+
+  fun NuernbergNurnbergAirport : Ind Airport ;
+
+  fun NuevaGuineaAirport : Ind Airport ;
+
+  fun NuguriaAirport : Ind Airport ;
+
+  fun NuiatoputapuAirport : Ind Airport ;
+
+  fun NukuAirport : Ind Airport ;
+
+  fun NukuHivaMarquesasIslandsAirport : Ind Airport ;
+
+  fun NukusKarakalpakstanAirport : Ind Airport ;
+
+  fun NukutavekeAirport : Ind Airport ;
+
+  fun NulatoAKAirport : Ind Airport ;
+
+  fun NullagineWesternAustraliaAirport : Ind Airport ;
+
+  fun NullarborSouthAustraliaAirport : Ind Airport ;
+
+  fun NumbulwarNorthernTerritoryAirport : Ind Airport ;
+
+  fun NunapitchukAKAirport : Ind Airport ;
+
+  fun NunchiaAirport : Ind Airport ;
+
+  fun NunukanBorneoAirport : Ind Airport ;
+
+  fun NuoroAirport : Ind Airport ;
+
+  fun NuquiAirport : Ind Airport ;
+
+  fun NushkiAirport : Ind Airport ;
+
+  fun NutuveAirport : Ind Airport ;
+
+  fun NutwoodDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun NyackAKAirport : Ind Airport ;
+
+  fun NyalaAirport : Ind Airport ;
+
+  fun NyaungUAirport : Ind Airport ;
+
+  fun NyeriAirport : Ind Airport ;
+
+  fun NykopingAirport : Ind Airport ;
+
+  fun NynganNewSouthWalesAirport : Ind Airport ;
+
+  fun NzoiaAirport : Ind Airport ;
+
+  fun ONealINAirport : Ind Airport ;
+
+  fun OachasNeckAirport : Ind Airport ;
+
+  fun OakHarborAirParkWAAirport : Ind Airport ;
+
+  fun OakeyQueenslandAirport : Ind Airport ;
+
+  fun OaklandPontiacMIAirport : Ind Airport ;
+
+  fun OakleyMunicipalKSAirport : Ind Airport ;
+
+  fun OamaruAirport : Ind Airport ;
+
+  fun ObanAirport : Ind Airport ;
+
+  fun ObanHeliportObanAirport : Ind Airport ;
+
+  fun ObanQueenslandAirport : Ind Airport ;
+
+  fun ObanoAirport : Ind Airport ;
+
+  fun OberlinMunicipalKSAirport : Ind Airport ;
+
+  fun ObidosPAAirport : Ind Airport ;
+
+  fun ObihiroAirport : Ind Airport ;
+
+  fun OboAirport : Ind Airport ;
+
+  fun ObockAirport : Ind Airport ;
+
+  fun OcalaMunicipalAirportJimTaylorFieldFLAirport : Ind Airport ;
+
+  fun OcanaAirport : Ind Airport ;
+
+  fun OceanCityMunicipalMDAirport : Ind Airport ;
+
+  fun OceanFallsWaterAerodromeBCAirport : Ind Airport ;
+
+  fun OceanReefClubFLAirport : Ind Airport ;
+
+  fun OceanaNavalAirStationApolloSoucekFieldVAAirport : Ind Airport ;
+
+  fun OceanicAKAirport : Ind Airport ;
+
+  fun OceansideMunicipalCAAirport : Ind Airport ;
+
+  fun OchoRiosAirport : Ind Airport ;
+
+  fun OcontoMunicipalWIAirport : Ind Airport ;
+
+  fun OctevilleLeHavreAirport : Ind Airport ;
+
+  fun OcussiAirport : Ind Airport ;
+
+  fun OddorMeancheyAirport : Ind Airport ;
+
+  fun OdihamRAFStationEnglandAirport : Ind Airport ;
+
+  fun OelweinMunicipalIAAirport : Ind Airport ;
+
+  fun OenpelliNorthernTerritoryAirport : Ind Airport ;
+
+  fun OffuttAirForceBaseNEAirport : Ind Airport ;
+
+  fun OfuOfuIslandAirport : Ind Airport ;
+
+  fun OgdenHinckleyUTAirport : Ind Airport ;
+
+  fun OgdensburgInternationalNYAirport : Ind Airport ;
+
+  fun OgeranangAirport : Ind Airport ;
+
+  fun OgleAirport : Ind Airport ;
+
+  fun OgnAirport : Ind Airport ;
+
+  fun OgokiPostAerodromeONAirport : Ind Airport ;
+
+  fun OhioStateUniversityOHAirport : Ind Airport ;
+
+  fun OhridAirport : Ind Airport ;
+
+  fun OiapoqueAPAirport : Ind Airport ;
+
+  fun OitaAirport : Ind Airport ;
+
+  fun OkabaAirport : Ind Airport ;
+
+  fun OkadamaSapporoAirport : Ind Airport ;
+
+  fun OkaukuejoAirport : Ind Airport ;
+
+  fun OkayamaAirport : Ind Airport ;
+
+  fun OkecieWarszawaWarsawAirport : Ind Airport ;
+
+  fun OkeechobeeCountyFLAirport : Ind Airport ;
+
+  fun OkiIslandAirport : Ind Airport ;
+
+  fun OkinawaRyukyuIsAirport : Ind Airport ;
+
+  fun OkinoErabuAirport : Ind Airport ;
+
+  fun OkmulgeeMunicipalOKAirport : Ind Airport ;
+
+  fun OkondjaAirport : Ind Airport ;
+
+  fun OkoyoAirport : Ind Airport ;
+
+  fun OksapminAirport : Ind Airport ;
+
+  fun OksibilAirport : Ind Airport ;
+
+  fun OkushiriAirport : Ind Airport ;
+
+  fun OlafsfjordurAirport : Ind Airport ;
+
+  fun OlafsvikAirport : Ind Airport ;
+
+  fun OlanchitoAirport : Ind Airport ;
+
+  fun OlayaHerreraMedellinAirport : Ind Airport ;
+
+  fun OldCrowYTAirport : Ind Airport ;
+
+  fun OldFortBayQCAirport : Ind Airport ;
+
+  fun OldHarborAKAirport : Ind Airport ;
+
+  fun OleanMunicipalNYAirport : Ind Airport ;
+
+  fun OliveBranchMSAirport : Ind Airport ;
+
+  fun OlneyMunicipalTXAirport : Ind Airport ;
+
+  fun OlneyNobleILAirport : Ind Airport ;
+
+  fun OlomoucAirport : Ind Airport ;
+
+  fun OlpoiAirport : Ind Airport ;
+
+  fun OlsobipAirport : Ind Airport ;
+
+  fun OlympiaWAAirport : Ind Airport ;
+
+  fun OlympicDamSouthAustraliaAirport : Ind Airport ;
+
+  fun OmagwaPortHarcourtAirport : Ind Airport ;
+
+  fun OmakWAAirport : Ind Airport ;
+
+  fun OmarNBradleyMOAirport : Ind Airport ;
+
+  fun OmboueAirport : Ind Airport ;
+
+  fun OmegaAirport : Ind Airport ;
+
+  fun OmkalaiAirport : Ind Airport ;
+
+  fun OmoraAirport : Ind Airport ;
+
+  fun OmskOmskAirport : Ind Airport ;
+
+  fun OmuraAirport : Ind Airport ;
+
+  fun OmyiaAirport : Ind Airport ;
+
+  fun OndangwaAirport : Ind Airport ;
+
+  fun OneHundredEightMileRanchBCAirport : Ind Airport ;
+
+  fun OneidaCountyNYAirport : Ind Airport ;
+
+  fun OneontaMunicipalNYAirport : Ind Airport ;
+
+  fun OnepusoAirport : Ind Airport ;
+
+  fun OnionBayAKAirport : Ind Airport ;
+
+  fun OnoILauAirport : Ind Airport ;
+
+  fun OnongeAirport : Ind Airport ;
+
+  fun OnotoaAirport : Ind Airport ;
+
+  fun OnslowWesternAustraliaAirport : Ind Airport ;
+
+  fun OntarioInternationalCAAirport : Ind Airport ;
+
+  fun OntarioMunicipalORAirport : Ind Airport ;
+
+  fun OntonagonCountyMIAirport : Ind Airport ;
+
+  fun OodnadattaSouthAustraliaAirport : Ind Airport ;
+
+  fun OpaLockaFLAirport : Ind Airport ;
+
+  fun OpenBayAirport : Ind Airport ;
+
+  fun OpuwaAirport : Ind Airport ;
+
+  fun OradeaAirport : Ind Airport ;
+
+  fun OralUralskWestKazakhstanAirport : Ind Airport ;
+
+  fun OramAirport : Ind Airport ;
+
+  fun OranAirport : Ind Airport ;
+
+  fun OrangeCountyNYAirport : Ind Airport ;
+
+  fun OrangeMunicipalMAAirport : Ind Airport ;
+
+  fun OrangeWalkAirport : Ind Airport ;
+
+  fun OrangeburgMunicipalSCAirport : Ind Airport ;
+
+  fun OranjemundAirport : Ind Airport ;
+
+  fun OrapaAirport : Ind Airport ;
+
+  fun OrchidBeachAirport : Ind Airport ;
+
+  fun OrdRiverWesternAustraliaAirport : Ind Airport ;
+
+  fun OrduAirport : Ind Airport ;
+
+  fun OrebroAirport : Ind Airport ;
+
+  fun OrenburgOrenburgAirport : Ind Airport ;
+
+  fun OriaAirport : Ind Airport ;
+
+  fun OrientosNewSouthWalesAirport : Ind Airport ;
+
+  fun OrinduikAirport : Ind Airport ;
+
+  fun OristamoAirport : Ind Airport ;
+
+  fun OriximinaPAAirport : Ind Airport ;
+
+  fun OrlandAirport : Ind Airport ;
+
+  fun OrlandoExecutiveFLAirport : Ind Airport ;
+
+  fun OrlandoInternationalFLAirport : Ind Airport ;
+
+  fun OrlyParisAirport : Ind Airport ;
+
+  fun OrmaraAirport : Ind Airport ;
+
+  fun OrmocAirport : Ind Airport ;
+
+  fun OrnskoldsvikAirport : Ind Airport ;
+
+  fun OrocueAirport : Ind Airport ;
+
+  fun OrovilleMunicipalCAAirport : Ind Airport ;
+
+  fun OrpheusIslandResortQueenslandAirport : Ind Airport ;
+
+  fun OrskOrenburgAirport : Ind Airport ;
+
+  fun OrtonvilleMunicipalAirportMartinsonFieldMNAirport : Ind Airport ;
+
+  fun OruroAirport : Ind Airport ;
+
+  fun OsascoSPAirport : Ind Airport ;
+
+  fun OscodaWurtsmithMIAirport : Ind Airport ;
+
+  fun OshOshAirport : Ind Airport ;
+
+  fun OshakatiAirport : Ind Airport ;
+
+  fun OshawaONAirport : Ind Airport ;
+
+  fun OshimaIslandAirport : Ind Airport ;
+
+  fun OsijekAirport : Ind Airport ;
+
+  fun OskaloosaMunicipalIAAirport : Ind Airport ;
+
+  fun OskarshamnAirport : Ind Airport ;
+
+  fun OskemanUstKamenogorskEastKazakhstanAirport : Ind Airport ;
+
+  fun OsmanabadAirport : Ind Airport ;
+
+  fun OsmanyShyletSylhetAirport : Ind Airport ;
+
+  fun OsnabrueckOsnabruckAirport : Ind Airport ;
+
+  fun OsornoAirport : Ind Airport ;
+
+  fun OssunLourdesTarbesAirport : Ind Airport ;
+
+  fun OstendOostendeAirport : Ind Airport ;
+
+  fun OtaviaAirport : Ind Airport ;
+
+  fun OtjiwarongoAirport : Ind Airport ;
+
+  fun OtopeniBucharestAirport : Ind Airport ;
+
+  fun OttawaMunicipalKSAirport : Ind Airport ;
+
+  fun OttestrupSaebyFrederikshavnAirport : Ind Airport ;
+
+  fun OttoNMAirport : Ind Airport ;
+
+  fun OttumwaIndustrialIAAirport : Ind Airport ;
+
+  fun OtuAirport : Ind Airport ;
+
+  fun OuaddaAirport : Ind Airport ;
+
+  fun OuagaAirport : Ind Airport ;
+
+  fun OuagadougouAirport : Ind Airport ;
+
+  fun OuahigouyaAirport : Ind Airport ;
+
+  fun OuandaDjalleAirport : Ind Airport ;
+
+  fun OuangoFitiniAirport : Ind Airport ;
+
+  fun OuarglaAirport : Ind Airport ;
+
+  fun OuarzazateAirport : Ind Airport ;
+
+  fun OudomxayAirport : Ind Airport ;
+
+  fun OudtshoornAirport : Ind Airport ;
+
+  fun OuessoAirport : Ind Airport ;
+
+  fun OuluAirport : Ind Airport ;
+
+  fun OurinhosSPAirport : Ind Airport ;
+
+  fun OuterSkerriesShetlandIslandsAirport : Ind Airport ;
+
+  fun OutjoAirport : Ind Airport ;
+
+  fun OuveaUveaLoyaltyIslandsAirport : Ind Airport ;
+
+  fun OuvenAirport : Ind Airport ;
+
+  fun OuyenVictoriaAirport : Ind Airport ;
+
+  fun OvalleAirport : Ind Airport ;
+
+  fun OwatonnaMunicipalMNAirport : Ind Airport ;
+
+  fun OwenSoundONAirport : Ind Airport ;
+
+  fun OwendoAirport : Ind Airport ;
+
+  fun OwensboroDaviessCountyKYAirport : Ind Airport ;
+
+  fun OxfordEnglandAirport : Ind Airport ;
+
+  fun OxfordHouseMBAirport : Ind Airport ;
+
+  fun OxnardCAAirport : Ind Airport ;
+
+  fun OyemAirport : Ind Airport ;
+
+  fun OzamisCityAirport : Ind Airport ;
+
+  fun OzonaMunicipalTXAirport : Ind Airport ;
+
+  fun PaAnAirport : Ind Airport ;
+
+  fun PaamaAirport : Ind Airport ;
+
+  fun PacificCityStateORAirport : Ind Airport ;
+
+  fun PacificHarbourAirport : Ind Airport ;
+
+  fun PackCreekAKAirport : Ind Airport ;
+
+  fun PaderbornLippstadtAirport : Ind Airport ;
+
+  fun PadovaAirport : Ind Airport ;
+
+  fun PadreAldamizPuertoMaldonadoAirport : Ind Airport ;
+
+  fun PafWarrenAKAirport : Ind Airport ;
+
+  fun PagadianAirport : Ind Airport ;
+
+  fun PageMunicipalAZAirport : Ind Airport ;
+
+  fun PagelandSCAirport : Ind Airport ;
+
+  fun PagoPagoInternationalTutuilaIslandAirport : Ind Airport ;
+
+  fun PaielaAirport : Ind Airport ;
+
+  fun PailinAirport : Ind Airport ;
+
+  fun PaimiutAKAirport : Ind Airport ;
+
+  fun PainterCreekAKAirport : Ind Airport ;
+
+  fun PaitillaMarcosAGelabertPanamaCityAirport : Ind Airport ;
+
+  fun PakatoaIslandAirport : Ind Airport ;
+
+  fun PakokkuAirport : Ind Airport ;
+
+  fun PakotoaIslandAirport : Ind Airport ;
+
+  fun PaksaneAirport : Ind Airport ;
+
+  fun PakseAirport : Ind Airport ;
+
+  fun PakuashipiQCAirport : Ind Airport ;
+
+  fun PakubaAirport : Ind Airport ;
+
+  fun PalWaukeeILAirport : Ind Airport ;
+
+  fun PalaAirport : Ind Airport ;
+
+  fun PalaciosAirport : Ind Airport ;
+
+  fun PalaciosMunicipalTXAirport : Ind Airport ;
+
+  fun PalangaAirport : Ind Airport ;
+
+  fun PalanqueroAirport : Ind Airport ;
+
+  fun PalenqueAirport : Ind Airport ;
+
+  fun PalestineMunicipalTXAirport : Ind Airport ;
+
+  fun PalibeloAirport : Ind Airport ;
+
+  fun PalmBeachCountyGladesFLAirport : Ind Airport ;
+
+  fun PalmBeachCountyParkFLAirport : Ind Airport ;
+
+  fun PalmBeachInternationalFLAirport : Ind Airport ;
+
+  fun PalmBeachNewSouthWalesAirport : Ind Airport ;
+
+  fun PalmIslandAirport : Ind Airport ;
+
+  fun PalmIslandQueenslandAirport : Ind Airport ;
+
+  fun PalmSpringsRegionalCAAirport : Ind Airport ;
+
+  fun PalmaAirport : Ind Airport ;
+
+  fun PalmadeMallorcaBalearicIslandsAirport : Ind Airport ;
+
+  fun PalmarAirport : Ind Airport ;
+
+  fun PalmaresPEAirport : Ind Airport ;
+
+  fun PalmaritoAirport : Ind Airport ;
+
+  fun PalmasPRAirport : Ind Airport ;
+
+  fun PalmdaleProductionFlightTestInstallationAirForcePlant42CAAirport : Ind Airport ;
+
+  fun PalmerMunicipalAKAirport : Ind Airport ;
+
+  fun PalmerstonNorthAirport : Ind Airport ;
+
+  fun PalmiaAirport : Ind Airport ;
+
+  fun PalmyraAirport : Ind Airport ;
+
+  fun PaloAltoAirportofSantaClaraCountyCAAirport : Ind Airport ;
+
+  fun PaloemeuAirport : Ind Airport ;
+
+  fun PamaAirport : Ind Airport ;
+
+  fun PambwaAirport : Ind Airport ;
+
+  fun PamolSabahAirport : Ind Airport ;
+
+  fun PamplonaAirport : Ind Airport ;
+
+  fun PanamaCityBayInternationalFLAirport : Ind Airport ;
+
+  fun PanambiAirport : Ind Airport ;
+
+  fun PancevoAirport : Ind Airport ;
+
+  fun PandiePandieSouthAustraliaAirport : Ind Airport ;
+
+  fun PangiaAirport : Ind Airport ;
+
+  fun PangkalanbuunAirport : Ind Airport ;
+
+  fun PangkalpinangAirport : Ind Airport ;
+
+  fun PangkorIslandAirport : Ind Airport ;
+
+  fun PangnirtungNTAirport : Ind Airport ;
+
+  fun PangoaAirport : Ind Airport ;
+
+  fun PanguitchMunicipalUTAirport : Ind Airport ;
+
+  fun PanjgurAirport : Ind Airport ;
+
+  fun PantelleriaPantelleriaIslandAirport : Ind Airport ;
+
+  fun PantnagarAirport : Ind Airport ;
+
+  fun PapaStourShetlandIslandsAirport : Ind Airport ;
+
+  fun PapaWestrayAirport : Ind Airport ;
+
+  fun PapeeteTahitiAirport : Ind Airport ;
+
+  fun PapunAirport : Ind Airport ;
+
+  fun ParaChinarAirport : Ind Airport ;
+
+  fun ParaburdooWesternAustraliaAirport : Ind Airport ;
+
+  fun ParadiseIslandParadiseAirport : Ind Airport ;
+
+  fun ParadiseRiverAerodromeNFAirport : Ind Airport ;
+
+  fun ParakouAirport : Ind Airport ;
+
+  fun ParamakatoiAirport : Ind Airport ;
+
+  fun ParanAirport : Ind Airport ;
+
+  fun ParanaGOAirport : Ind Airport ;
+
+  fun ParanaguaPRAirport : Ind Airport ;
+
+  fun ParanaibaMGAirport : Ind Airport ;
+
+  fun ParanavaiPRAirport : Ind Airport ;
+
+  fun ParaparaumuAirport : Ind Airport ;
+
+  fun ParasiAirport : Ind Airport ;
+
+  fun PardooWesternAustraliaAirport : Ind Airport ;
+
+  fun ParintinsAMAirport : Ind Airport ;
+
+  fun ParisPlageLeTouquetAirport : Ind Airport ;
+
+  fun ParkFallsMunicipalWIAirport : Ind Airport ;
+
+  fun ParkRapidsMunicipalMNAirport : Ind Airport ;
+
+  fun ParkerCountyTXAirport : Ind Airport ;
+
+  fun ParkesNewSouthWalesAirport : Ind Airport ;
+
+  fun ParlinFieldNHAirport : Ind Airport ;
+
+  fun ParmaAirport : Ind Airport ;
+
+  fun ParmalbaAirport : Ind Airport ;
+
+  fun ParndanaSouthAustraliaAirport : Ind Airport ;
+
+  fun ParoAirport : Ind Airport ;
+
+  fun ParosAirport : Ind Airport ;
+
+  fun ParuimaAirport : Ind Airport ;
+
+  fun PasirPangarayanAirport : Ind Airport ;
+
+  fun PasniAirport : Ind Airport ;
+
+  fun PasoCaballosAirport : Ind Airport ;
+
+  fun PasoRoblesMunicipalCAAirport : Ind Airport ;
+
+  fun PassoFundoRSAirport : Ind Airport ;
+
+  fun PassosAirport : Ind Airport ;
+
+  fun PastazaAirport : Ind Airport ;
+
+  fun PastoAirport : Ind Airport ;
+
+  fun PatnaAirport : Ind Airport ;
+
+  fun PatoBrancoPRAirport : Ind Airport ;
+
+  fun PatongBeachAirport : Ind Airport ;
+
+  fun PatreksfjordurAirport : Ind Airport ;
+
+  fun PattaniAirport : Ind Airport ;
+
+  fun PattayaAirport : Ind Airport ;
+
+  fun PatuxentRiverNavalAirStationTrapnellFieldMDAirport : Ind Airport ;
+
+  fun PaukAirport : Ind Airport ;
+
+  fun PaulatukNTAirport : Ind Airport ;
+
+  fun PauloAfonsoBAAirport : Ind Airport ;
+
+  fun PavlodarPavlodarAirport : Ind Airport ;
+
+  fun PayalebaarSingaporeAirport : Ind Airport ;
+
+  fun PayanAirport : Ind Airport ;
+
+  fun PaysanduAirport : Ind Airport ;
+
+  fun PaysonAZAirport : Ind Airport ;
+
+  fun PazdeAriporoAirport : Ind Airport ;
+
+  fun PeaceRiverABAirport : Ind Airport ;
+
+  fun PeaseAirNationalGuardBaseNHAirport : Ind Airport ;
+
+  fun PeawanuckONAirport : Ind Airport ;
+
+  fun PebaneAirport : Ind Airport ;
+
+  fun PecosMunicipalTXAirport : Ind Airport ;
+
+  fun PedernalesAirport : Ind Airport ;
+
+  fun PedroBayAKAirport : Ind Airport ;
+
+  fun PedroJuanCaballeroAirport : Ind Airport ;
+
+  fun PeeblyBeachSeaplaneBaseCAAirport : Ind Airport ;
+
+  fun PekoaEspiritoSantoAirport : Ind Airport ;
+
+  fun PelanengAirport : Ind Airport ;
+
+  fun PelicanSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PellstonRegionalAirportofEmmetCountyMIAirport : Ind Airport ;
+
+  fun PellyBayNTAirport : Ind Airport ;
+
+  fun PellyBayTownsiteNTAirport : Ind Airport ;
+
+  fun PelotasRSAirport : Ind Airport ;
+
+  fun PembaIslandAirport : Ind Airport ;
+
+  fun PembaPortoAmeliaAirport : Ind Airport ;
+
+  fun PembinaMunicipalNDAirport : Ind Airport ;
+
+  fun PembrokeONAirport : Ind Airport ;
+
+  fun PenderHarbourWaterAerodromeBCAirport : Ind Airport ;
+
+  fun PendletonMunicipalORAirport : Ind Airport ;
+
+  fun PendopoAirport : Ind Airport ;
+
+  fun PennValleyPAAirport : Ind Airport ;
+
+  fun PenneshawSouthAustraliaAirport : Ind Airport ;
+
+  fun PenongSouthAustraliaAirport : Ind Airport ;
+
+  fun PenrhynIslandAirport : Ind Airport ;
+
+  fun PensacolaNavalAirStationForrestShermanFieldFLAirport : Ind Airport ;
+
+  fun PensacolaRegionalFLAirport : Ind Airport ;
+
+  fun PentictonBCAirport : Ind Airport ;
+
+  fun PenzaPenzaAirport : Ind Airport ;
+
+  fun PenzanceHeliportEnglandAirport : Ind Airport ;
+
+  fun PeppimenartiNorthernTerritoryAirport : Ind Airport ;
+
+  fun PeraitepuysAirport : Ind Airport ;
+
+  fun PerisherValleyNewSouthWalesAirport : Ind Airport ;
+
+  fun PerisonBCAirport : Ind Airport ;
+
+  fun PeritoMorenoAirport : Ind Airport ;
+
+  fun PerryIslandSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PerryLeforsFieldTXAirport : Ind Airport ;
+
+  fun PerryMunicipalIAAirport : Ind Airport ;
+
+  fun PerryStokesCOAirport : Ind Airport ;
+
+  fun PersepolisAirport : Ind Airport ;
+
+  fun PersonCountyNCAirport : Ind Airport ;
+
+  fun PerthScotlandAirport : Ind Airport ;
+
+  fun PerthWesternAustraliaAirport : Ind Airport ;
+
+  fun PerwokertoAirport : Ind Airport ;
+
+  fun PescaraAirport : Ind Airport ;
+
+  fun PeshawarAirport : Ind Airport ;
+
+  fun PetawawaONAirport : Ind Airport ;
+
+  fun PeterOKnightFLAirport : Ind Airport ;
+
+  fun PeterboroughONAirport : Ind Airport ;
+
+  fun PetersburgAKAirport : Ind Airport ;
+
+  fun PetersburgMunicipalVAAirport : Ind Airport ;
+
+  fun PetersonsPointAKAirport : Ind Airport ;
+
+  fun PetitJeanParkARAirport : Ind Airport ;
+
+  fun PetrellaMogadishuMogadiscioAirport : Ind Airport ;
+
+  fun PetrolinaPEAirport : Ind Airport ;
+
+  fun PetropavlovskKamchatkaAirport : Ind Airport ;
+
+  fun PetropavlovskKamchatskiyKamchatkaAirport : Ind Airport ;
+
+  fun PetropolisRJAirport : Ind Airport ;
+
+  fun PetrozavodskKareliaAirport : Ind Airport ;
+
+  fun PevekMagadanAirport : Ind Airport ;
+
+  fun PforzheimAirport : Ind Airport ;
+
+  fun PhalaborwaAirport : Ind Airport ;
+
+  fun PhanRangAirport : Ind Airport ;
+
+  fun PhanThietAirport : Ind Airport ;
+
+  fun PhanomSarakhamAirport : Ind Airport ;
+
+  fun PhapluAirport : Ind Airport ;
+
+  fun PhiladelphiaInternationalPAAirport : Ind Airport ;
+
+  fun PhiladelphiaSeaplaneBasePAAirport : Ind Airport ;
+
+  fun PhilipBillardMunicipalKSAirport : Ind Airport ;
+
+  fun PhilipSDAirport : Ind Airport ;
+
+  fun PhillipsAKAirport : Ind Airport ;
+
+  fun PhillipsburgMunicipalKSAirport : Ind Airport ;
+
+  fun PhitsanulokAirport : Ind Airport ;
+
+  fun PhoenixSkyHarborInternationalAZAirport : Ind Airport ;
+
+  fun PhraeAirport : Ind Airport ;
+
+  fun PhuQuocAirport : Ind Airport ;
+
+  fun PhuVinhAirport : Ind Airport ;
+
+  fun PhuoclongAirport : Ind Airport ;
+
+  fun PiarcoTrinidadIsAirport : Ind Airport ;
+
+  fun PicayunePearlRiverCountyMSAirport : Ind Airport ;
+
+  fun PickensCountySCAirport : Ind Airport ;
+
+  fun PickleLakeONAirport : Ind Airport ;
+
+  fun PicoIslandAzoresAirport : Ind Airport ;
+
+  fun PicosPIAirport : Ind Airport ;
+
+  fun PictonAirport : Ind Airport ;
+
+  fun PiedrasNegrasAirport : Ind Airport ;
+
+  fun PierreElliottTrudeauInternationalQCAirport : Ind Airport ;
+
+  fun PierreMunicipalSDAirport : Ind Airport ;
+
+  fun PiestanyAirport : Ind Airport ;
+
+  fun PietermaritzburgAirport : Ind Airport ;
+
+  fun PietersburgAirport : Ind Airport ;
+
+  fun PijiguaosAirport : Ind Airport ;
+
+  fun PikangikumONAirport : Ind Airport ;
+
+  fun PikangikumWaterAerodromeONAirport : Ind Airport ;
+
+  fun PilanesbergSunCityAirport : Ind Airport ;
+
+  fun PilarAirport : Ind Airport ;
+
+  fun PilotPointAKAirport : Ind Airport ;
+
+  fun PilotStationAKAirport : Ind Airport ;
+
+  fun PimagaAirport : Ind Airport ;
+
+  fun PinalAirparkAZAirport : Ind Airport ;
+
+  fun PinardelRioAirport : Ind Airport ;
+
+  fun PincherCreekABAirport : Ind Airport ;
+
+  fun PinckneyvilleDuQuoinILAirport : Ind Airport ;
+
+  fun PindiuAirport : Ind Airport ;
+
+  fun PineCayAirport : Ind Airport ;
+
+  fun PinePointNTAirport : Ind Airport ;
+
+  fun PineRidgeSDAirport : Ind Airport ;
+
+  fun PinebeltMSAirport : Ind Airport ;
+
+  fun PinehouseLakeSKAirport : Ind Airport ;
+
+  fun PingTungAirport : Ind Airport ;
+
+  fun PinheiroMAAirport : Ind Airport ;
+
+  fun PipestoneMunicipalMNAirport : Ind Airport ;
+
+  fun PipillipaiAirport : Ind Airport ;
+
+  fun PirkkalaTampereAirport : Ind Airport ;
+
+  fun PiscoAirport : Ind Airport ;
+
+  fun PitalitoAirport : Ind Airport ;
+
+  fun PitingaAirport : Ind Airport ;
+
+  fun PittGreenvilleNCAirport : Ind Airport ;
+
+  fun PittMeadowsBCAirport : Ind Airport ;
+
+  fun PittsTownAirport : Ind Airport ;
+
+  fun PittsfieldMunicipalMAAirport : Ind Airport ;
+
+  fun PiuraAirport : Ind Airport ;
+
+  fun PlacervilleCAAirport : Ind Airport ;
+
+  fun PlageBlancheTanTanAirport : Ind Airport ;
+
+  fun PlanadasAirport : Ind Airport ;
+
+  fun PlandeGuadelupeSaltilloAirport : Ind Airport ;
+
+  fun PlanetaRicaAirport : Ind Airport ;
+
+  fun PlatinumAKAirport : Ind Airport ;
+
+  fun PlatoAirport : Ind Airport ;
+
+  fun PlattsburghAirForceBaseNYAirport : Ind Airport ;
+
+  fun PlaujeanMorlaixAirport : Ind Airport ;
+
+  fun PlayaSamaraAirport : Ind Airport ;
+
+  fun PlayadeOroManzanilloAirport : Ind Airport ;
+
+  fun PlayadelCarmenAirport : Ind Airport ;
+
+  fun PlayonChicoAirport : Ind Airport ;
+
+  fun PlazaHeliportILAirport : Ind Airport ;
+
+  fun PleasantHarborAKAirport : Ind Airport ;
+
+  fun PleikuAirport : Ind Airport ;
+
+  fun PlekhanovaTyumenAirport : Ind Airport ;
+
+  fun PlesoZagrebAirport : Ind Airport ;
+
+  fun PlettenbergBayAirport : Ind Airport ;
+
+  fun PlevenAirport : Ind Airport ;
+
+  fun PlovdivAirport : Ind Airport ;
+
+  fun PluguffanQuimperAirport : Ind Airport ;
+
+  fun PlymouthMunicipalMAAirport : Ind Airport ;
+
+  fun PoAirport : Ind Airport ;
+
+  fun PocahontasMunicipalIAAirport : Ind Airport ;
+
+  fun PocatelloMunicipalIDAirport : Ind Airport ;
+
+  fun PochentongPhnomPenhAirport : Ind Airport ;
+
+  fun PochutlaAirport : Ind Airport ;
+
+  fun PoconoMountainsMunicipalPAAirport : Ind Airport ;
+
+  fun PocosdeCaldasMGAirport : Ind Airport ;
+
+  fun PodorAirport : Ind Airport ;
+
+  fun PogdoricaTitogradAirport : Ind Airport ;
+
+  fun PohnpeiInternationalPohnpeiIslandAirport : Ind Airport ;
+
+  fun PointBarrowAKAirport : Ind Airport ;
+
+  fun PointHopeAKAirport : Ind Airport ;
+
+  fun PointLayLRRSAKAirport : Ind Airport ;
+
+  fun PointMuguNAWSCAAirport : Ind Airport ;
+
+  fun PointeNoireAirport : Ind Airport ;
+
+  fun PointeRetreatAKAirport : Ind Airport ;
+
+  fun PointsNorthLandingAerodromeSKAirport : Ind Airport ;
+
+  fun PokharaAirport : Ind Airport ;
+
+  fun PolaccaAZAirport : Ind Airport ;
+
+  fun PolkArmyAirFieldLAAirport : Ind Airport ;
+
+  fun PolkInletAKAirport : Ind Airport ;
+
+  fun PoloniaMedanAirport : Ind Airport ;
+
+  fun PoltavaPoltavaAirport : Ind Airport ;
+
+  fun PomalaaAirport : Ind Airport ;
+
+  fun PomeziaAirport : Ind Airport ;
+
+  fun PompanoBeachAirparkFLAirport : Ind Airport ;
+
+  fun PompeiaSPAirport : Ind Airport ;
+
+  fun PoncaCityMunicipalOKAirport : Ind Airport ;
+
+  fun PondInletNTAirport : Ind Airport ;
+
+  fun PondokCabeAirport : Ind Airport ;
+
+  fun PontLongUzeinPauAirport : Ind Airport ;
+
+  fun PontaDelgadaSaoMiguelIslandAzoresAirport : Ind Airport ;
+
+  fun PontaGrossaPRAirport : Ind Airport ;
+
+  fun PontaPoraSPAirport : Ind Airport ;
+
+  fun PontoiseAirport : Ind Airport ;
+
+  fun PoonaAirport : Ind Airport ;
+
+  fun PopayanAirport : Ind Airport ;
+
+  fun PopeAirForceBaseNCAirport : Ind Airport ;
+
+  fun PopeVanoyAKAirport : Ind Airport ;
+
+  fun PoplarBluffMunicipalMOAirport : Ind Airport ;
+
+  fun PoplarHillONAirport : Ind Airport ;
+
+  fun PoplarRiverMBAirport : Ind Airport ;
+
+  fun PopondettaAirport : Ind Airport ;
+
+  fun PoptunAirport : Ind Airport ;
+
+  fun PorbandarAirport : Ind Airport ;
+
+  fun PorcupineCreekAKAirport : Ind Airport ;
+
+  fun PoreAirport : Ind Airport ;
+
+  fun PorgeraAirport : Ind Airport ;
+
+  fun PoriAirport : Ind Airport ;
+
+  fun PortAlberniBCAirport : Ind Airport ;
+
+  fun PortAlexanderSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PortAllenHIAirport : Ind Airport ;
+
+  fun PortAlsworthAKAirport : Ind Airport ;
+
+  fun PortAngelesCoastGuardAirStationWAAirport : Ind Airport ;
+
+  fun PortAntonioAirport : Ind Airport ;
+
+  fun PortArmstrongAKAirport : Ind Airport ;
+
+  fun PortAugustaSouthAustraliaAirport : Ind Airport ;
+
+  fun PortBergeAirport : Ind Airport ;
+
+  fun PortDouglasQueenslandAirport : Ind Airport ;
+
+  fun PortElizabethAirport : Ind Airport ;
+
+  fun PortGentilAirport : Ind Airport ;
+
+  fun PortGrahamAKAirport : Ind Airport ;
+
+  fun PortHardyBCAirport : Ind Airport ;
+
+  fun PortHardyWaterAerodromeBCAirport : Ind Airport ;
+
+  fun PortHawkesburyNSAirport : Ind Airport ;
+
+  fun PortHedlandWesternAustraliaAirport : Ind Airport ;
+
+  fun PortHeidenAKAirport : Ind Airport ;
+
+  fun PortHopeSimpsonAerodromeNFAirport : Ind Airport ;
+
+  fun PortHunterNewSouthWalesAirport : Ind Airport ;
+
+  fun PortJohnsonAKAirport : Ind Airport ;
+
+  fun PortKaitumaAirport : Ind Airport ;
+
+  fun PortKeatsNorthernTerritoryAirport : Ind Airport ;
+
+  fun PortLincolnSouthAustraliaAirport : Ind Airport ;
+
+  fun PortLionsAKAirport : Ind Airport ;
+
+  fun PortMacquarieNewSouthWalesAirport : Ind Airport ;
+
+  fun PortMcNeillWaterAerodromeBCAirport : Ind Airport ;
+
+  fun PortMeadvillePAAirport : Ind Airport ;
+
+  fun PortMenierQCAirport : Ind Airport ;
+
+  fun PortMollerAKAirport : Ind Airport ;
+
+  fun PortMoresbyAirport : Ind Airport ;
+
+  fun PortOceanicAKAirport : Ind Airport ;
+
+  fun PortProtectionSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PortRadiumNTAirport : Ind Airport ;
+
+  fun PortSaidAirport : Ind Airport ;
+
+  fun PortSanJuanAKAirport : Ind Airport ;
+
+  fun PortSimpsonWaterAerodromeBCAirport : Ind Airport ;
+
+  fun PortStanleyStanleyAirport : Ind Airport ;
+
+  fun PortStephensNewSouthWalesAirport : Ind Airport ;
+
+  fun PortSudanAirport : Ind Airport ;
+
+  fun PortWalterSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PortageCreekAKAirport : Ind Airport ;
+
+  fun PortauPrinceAirport : Ind Airport ;
+
+  fun PortdePaixAirport : Ind Airport ;
+
+  fun PorterCountyMunicipalINAirport : Ind Airport ;
+
+  fun PortervilleMunicipalCAAirport : Ind Airport ;
+
+  fun PortimaoAirport : Ind Airport ;
+
+  fun PortlandInternationalJetportMEAirport : Ind Airport ;
+
+  fun PortlandInternationalORAirport : Ind Airport ;
+
+  fun PortlandTroutdaleORAirport : Ind Airport ;
+
+  fun PortlandVictoriaAirport : Ind Airport ;
+
+  fun PortoAlegreSaoTomeAirport : Ind Airport ;
+
+  fun PortoAmboimAirport : Ind Airport ;
+
+  fun PortoKheliAirport : Ind Airport ;
+
+  fun PortoNacionalGOAirport : Ind Airport ;
+
+  fun PortoSantoMadeiraAirport : Ind Airport ;
+
+  fun PortoTrombetasPAAirport : Ind Airport ;
+
+  fun PortoVelhoROAirport : Ind Airport ;
+
+  fun PortodeMosPAAirport : Ind Airport ;
+
+  fun PortofPoulsboMarinaMoorageSeaplaneBaseWAAirport : Ind Airport ;
+
+  fun PortorozAirport : Ind Airport ;
+
+  fun PortoviejoAirport : Ind Airport ;
+
+  fun PortpirieSouthAustraliaAirport : Ind Airport ;
+
+  fun PortsmouthEnglandAirport : Ind Airport ;
+
+  fun PorvenirAirport : Ind Airport ;
+
+  fun PosadasAirport : Ind Airport ;
+
+  fun PosoAirport : Ind Airport ;
+
+  fun PostvilleAerodromeNFAirport : Ind Airport ;
+
+  fun PottstownLimerickPAAirport : Ind Airport ;
+
+  fun PousoAlegreMGAirport : Ind Airport ;
+
+  fun PovungnitukQCAirport : Ind Airport ;
+
+  fun PowellLakeWaterAerodromeBCAirport : Ind Airport ;
+
+  fun PowellMunicipalWYAirport : Ind Airport ;
+
+  fun PowellPointAirport : Ind Airport ;
+
+  fun PowellRiverBCAirport : Ind Airport ;
+
+  fun PozaRicaAirport : Ind Airport ;
+
+  fun PprtAliceSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun PradoBAAirport : Ind Airport ;
+
+  fun PraiaSaoTiagoAirport : Ind Airport ;
+
+  fun PrairieduChienMunicipalWIAirport : Ind Airport ;
+
+  fun PraslinIslandAirport : Ind Airport ;
+
+  fun PratoAirport : Ind Airport ;
+
+  fun PrattIndustrialKSAirport : Ind Airport ;
+
+  fun PrenticeWIAirport : Ind Airport ;
+
+  fun PrerovAirport : Ind Airport ;
+
+  fun PresidenciaRoqueSaenzPenaAirport : Ind Airport ;
+
+  fun PresidenteCIdelCampoPuntaArenasAirport : Ind Airport ;
+
+  fun PresidenteDutraAirport : Ind Airport ;
+
+  fun PresidenteMediciACAirport : Ind Airport ;
+
+  fun PresidentePrudenteSPAirport : Ind Airport ;
+
+  fun PresqueIsleCountyMIAirport : Ind Airport ;
+
+  fun PrestonAirport : Ind Airport ;
+
+  fun PrestwickScotlandAirport : Ind Airport ;
+
+  fun PrevezaLefkasAirport : Ind Airport ;
+
+  fun PrinceAlbertSKAirport : Ind Airport ;
+
+  fun PrinceGeorgeBCAirport : Ind Airport ;
+
+  fun PrinceRupertBCAirport : Ind Airport ;
+
+  fun PrincesJulianaStMaartenPhilipsburgAirport : Ind Airport ;
+
+  fun PrincetonMunicipalMEAirport : Ind Airport ;
+
+  fun PrincetonMunicipalMNAirport : Ind Airport ;
+
+  fun PrincetonNJAirport : Ind Airport ;
+
+  fun PrincipePrincipeAirport : Ind Airport ;
+
+  fun PrinevilleORAirport : Ind Airport ;
+
+  fun PristinaAirport : Ind Airport ;
+
+  fun ProgressoAirport : Ind Airport ;
+
+  fun PromeAirport : Ind Airport ;
+
+  fun ProprianoAirport : Ind Airport ;
+
+  fun ProserpineQueenslandAirport : Ind Airport ;
+
+  fun ProspectCreekAKAirport : Ind Airport ;
+
+  fun ProspectHillMAAirport : Ind Airport ;
+
+  fun ProvidenciaAirport : Ind Airport ;
+
+  fun ProvidencialesCaicosIsAirport : Ind Airport ;
+
+  fun ProvideniyaMagadanAirport : Ind Airport ;
+
+  fun ProvincetownMunicipalMAAirport : Ind Airport ;
+
+  fun ProvoMunicipalUTAirport : Ind Airport ;
+
+  fun PrudhoeBayAKAirport : Ind Airport ;
+
+  fun PuasAirport : Ind Airport ;
+
+  fun PucallpaAirport : Ind Airport ;
+
+  fun PuconAirport : Ind Airport ;
+
+  fun PueblaAirport : Ind Airport ;
+
+  fun PuebloMemorialCOAirport : Ind Airport ;
+
+  fun PuertoAisenAirport : Ind Airport ;
+
+  fun PuertoAsisAirport : Ind Airport ;
+
+  fun PuertoAyacuchoAirport : Ind Airport ;
+
+  fun PuertoBarriosAirport : Ind Airport ;
+
+  fun PuertoBerrioAirport : Ind Airport ;
+
+  fun PuertoBoyacaAirport : Ind Airport ;
+
+  fun PuertoCabezasAirport : Ind Airport ;
+
+  fun PuertoCarrenoAirport : Ind Airport ;
+
+  fun PuertoDeseadoAirport : Ind Airport ;
+
+  fun PuertoEscondidoAirport : Ind Airport ;
+
+  fun PuertoIniridaAirport : Ind Airport ;
+
+  fun PuertoJimenezAirport : Ind Airport ;
+
+  fun PuertoJuarezAirport : Ind Airport ;
+
+  fun PuertoLaCruzAirport : Ind Airport ;
+
+  fun PuertoLeguizamAirport : Ind Airport ;
+
+  fun PuertoLenpiraAirport : Ind Airport ;
+
+  fun PuertoObaldiaAirport : Ind Airport ;
+
+  fun PuertoPaezAirport : Ind Airport ;
+
+  fun PuertoPenascoAirport : Ind Airport ;
+
+  fun PuertoPlataAirport : Ind Airport ;
+
+  fun PuertoPrincesaInternationalPuertoPrincesaAirport : Ind Airport ;
+
+  fun PuertoRicoAirport : Ind Airport ;
+
+  fun PuertoRicoAirportColombia : Ind Airport ;
+
+  fun PuertoWilliamsAirport : Ind Airport ;
+
+  fun PukapukaAirport : Ind Airport ;
+
+  fun PukaruAirport : Ind Airport ;
+
+  fun PukatawaganMBAirport : Ind Airport ;
+
+  fun PulaAirport : Ind Airport ;
+
+  fun Pulkowo2LeningradAirport : Ind Airport ;
+
+  fun PullmanWAMoscowAirport : Ind Airport ;
+
+  fun PumaniAirport : Ind Airport ;
+
+  fun PuniaAirport : Ind Airport ;
+
+  fun PunotecaAirport : Ind Airport ;
+
+  fun PuntaAlegreAirport : Ind Airport ;
+
+  fun PuntaCanaAirport : Ind Airport ;
+
+  fun PuntaChivatoAirport : Ind Airport ;
+
+  fun PuntaColoradaAirport : Ind Airport ;
+
+  fun PuntaGordaAirport : Ind Airport ;
+
+  fun PuntaRaisiSicilyAirport : Ind Airport ;
+
+  fun PuntadeMaisiAirport : Ind Airport ;
+
+  fun PuntziMountainBCAirport : Ind Airport ;
+
+  fun PurdueUniversityINAirport : Ind Airport ;
+
+  fun PussoAlegreMGAirport : Ind Airport ;
+
+  fun PutaoAirport : Ind Airport ;
+
+  fun PutnamCountyOHAirport : Ind Airport ;
+
+  fun PuttaparthiAirport : Ind Airport ;
+
+  fun PuttgardenAirport : Ind Airport ;
+
+  fun PutumayoAirport : Ind Airport ;
+
+  fun PutussibauBorneoAirport : Ind Airport ;
+
+  fun PwetoAirport : Ind Airport ;
+
+  fun PyrgosAirport : Ind Airport ;
+
+  fun QalaNauAirport : Ind Airport ;
+
+  fun QanaqAirport : Ind Airport ;
+
+  fun QingdaoAirport : Ind Airport ;
+
+  fun QinhuangdaoAirport : Ind Airport ;
+
+  fun QiqiharTsitsiharAirport : Ind Airport ;
+
+  fun QuadCityILAirport : Ind Airport ;
+
+  fun QuakertownPAAirport : Ind Airport ;
+
+  fun QualicumBeachAerodromeBCAirport : Ind Airport ;
+
+  fun QuangNgaiAirport : Ind Airport ;
+
+  fun QuangaAirport : Ind Airport ;
+
+  fun QuanticoMarineCorpsAirFacilityTurnerFieldVAAirport : Ind Airport ;
+
+  fun QuaqtaqQCAirport : Ind Airport ;
+
+  fun QuartzHillCAAirport : Ind Airport ;
+
+  fun QuebecQCAirport : Ind Airport ;
+
+  fun QueenCharlotteWaterAerodromeBCAirport : Ind Airport ;
+
+  fun QueenstownAirport : Ind Airport ;
+
+  fun QueenstownAirportSouthAfrica : Ind Airport ;
+
+  fun QueenstownTasmaniaAirport : Ind Airport ;
+
+  fun QuelimaneAirport : Ind Airport ;
+
+  fun QueposAirport : Ind Airport ;
+
+  fun QueretaroAirport : Ind Airport ;
+
+  fun QuesnelBCAirport : Ind Airport ;
+
+  fun QuettaAirport : Ind Airport ;
+
+  fun QuetzalcoatiNuevoLaredoAirport : Ind Airport ;
+
+  fun QuibdoAirport : Ind Airport ;
+
+  fun QuillayuteStateWAAirport : Ind Airport ;
+
+  fun QuilpieQueenslandAirport : Ind Airport ;
+
+  fun QuinceMilAirport : Ind Airport ;
+
+  fun QuincyMunicipalBaldwinFieldILAirport : Ind Airport ;
+
+  fun QuineHillAirport : Ind Airport ;
+
+  fun QuirindiNewSouthWalesAirport : Ind Airport ;
+
+  fun QuonsetStateRIAirport : Ind Airport ;
+
+  fun QuyNhonAirport : Ind Airport ;
+
+  fun QuzhouAirport : Ind Airport ;
+
+  fun RabarabaAirport : Ind Airport ;
+
+  fun RabaulAirport : Ind Airport ;
+
+  fun RabiAirport : Ind Airport ;
+
+  fun RachGiaAirport : Ind Airport ;
+
+  fun RaduzhnyiAirport : Ind Airport ;
+
+  fun RaeLakesAerodromeNTAirport : Ind Airport ;
+
+  fun RafaiAirport : Ind Airport ;
+
+  fun RafhaAirport : Ind Airport ;
+
+  fun RaglandAirport : Ind Airport ;
+
+  fun RahaAirport : Ind Airport ;
+
+  fun RahimYarKhanAirport : Ind Airport ;
+
+  fun RaiateaSocietyIslandsAirport : Ind Airport ;
+
+  fun RailwayStationBadenBadenAirport : Ind Airport ;
+
+  fun RailwayStationNJAirport : Ind Airport ;
+
+  fun RainbowLakeABAirport : Ind Airport ;
+
+  fun RaipurAirport : Ind Airport ;
+
+  fun RajahmundryAirport : Ind Airport ;
+
+  fun RajbirajAirport : Ind Airport ;
+
+  fun RajkotAirport : Ind Airport ;
+
+  fun RajouriAirport : Ind Airport ;
+
+  fun RajshaniAirport : Ind Airport ;
+
+  fun RakandaAirport : Ind Airport ;
+
+  fun RaleighDurhamInternationalNCAirport : Ind Airport ;
+
+  fun RalphMCalhounMemorialAKAirport : Ind Airport ;
+
+  fun RalphWienMemorialAKAirport : Ind Airport ;
+
+  fun RamagundamAirport : Ind Airport ;
+
+  fun RamechhapAirport : Ind Airport ;
+
+  fun RaminginingNorthernTerritoryAirport : Ind Airport ;
+
+  fun RampartAKAirport : Ind Airport ;
+
+  fun RamsarAirport : Ind Airport ;
+
+  fun RamsteinAirBaseRamsteinAirport : Ind Airport ;
+
+  fun RanauAirport : Ind Airport ;
+
+  fun RanchoBuenaVistaAirport : Ind Airport ;
+
+  fun RanchoCaliforniaCAAirport : Ind Airport ;
+
+  fun RanchoMurietaCAAirport : Ind Airport ;
+
+  fun RandGermistonJohannesburgAirport : Ind Airport ;
+
+  fun RandolphAirForceBaseTXAirport : Ind Airport ;
+
+  fun RangelyCOAirport : Ind Airport ;
+
+  fun RangerMunicipalTXAirport : Ind Airport ;
+
+  fun RangiroaTuamotuArchipelagoAirport : Ind Airport ;
+
+  fun RangpurAirport : Ind Airport ;
+
+  fun RankinInletNTAirport : Ind Airport ;
+
+  fun RansikiAirport : Ind Airport ;
+
+  fun RapidCityRegionalSDAirport : Ind Airport ;
+
+  fun RarotongaInternationalAvaruaAirport : Ind Airport ;
+
+  fun RasNasraniSharmElSheikhAirport : Ind Airport ;
+
+  fun RasalKhaymahAirport : Ind Airport ;
+
+  fun RaselNaqbRasanNaqbAirport : Ind Airport ;
+
+  fun RashtAirport : Ind Airport ;
+
+  fun RaspberryStraitAKAirport : Ind Airport ;
+
+  fun RatnagiriAirport : Ind Airport ;
+
+  fun RatonMunicipalAirportCrewsFieldNMAirport : Ind Airport ;
+
+  fun RaudaskylaYlivieskaAirport : Ind Airport ;
+
+  fun RaudhaAirport : Ind Airport ;
+
+  fun RaufarhofnAirport : Ind Airport ;
+
+  fun RavennaAirport : Ind Airport ;
+
+  fun RawalaKotAirport : Ind Airport ;
+
+  fun RawalpindiAirport : Ind Airport ;
+
+  fun RawlinsMunicipalWYAirport : Ind Airport ;
+
+  fun RayongPattayaAirport : Ind Airport ;
+
+  fun ReaPointNTAirport : Ind Airport ;
+
+  fun ReadAirport : Ind Airport ;
+
+  fun ReadingRegionalAirportCarlASpaatzFieldPAAirport : Ind Airport ;
+
+  fun RebunAirport : Ind Airport ;
+
+  fun ReconquistaAirport : Ind Airport ;
+
+  fun RedBluffMunicipalCAAirport : Ind Airport ;
+
+  fun RedDeerIndustrialABAirport : Ind Airport ;
+
+  fun RedDevilAKAirport : Ind Airport ;
+
+  fun RedDogAKAirport : Ind Airport ;
+
+  fun RedLakeONAirport : Ind Airport ;
+
+  fun RedOakMunicipalIAAirport : Ind Airport ;
+
+  fun RedRiverNDAirport : Ind Airport ;
+
+  fun RedSuckerLakeONAirport : Ind Airport ;
+
+  fun RedWingMunicipalMNAirport : Ind Airport ;
+
+  fun RedbirdTXAirport : Ind Airport ;
+
+  fun RedcliffeAirport : Ind Airport ;
+
+  fun ReddingMunicipalCAAirport : Ind Airport ;
+
+  fun RedencaoAirport : Ind Airport ;
+
+  fun RedwoodFallsMunicipalMNAirport : Ind Airport ;
+
+  fun ReeseAirForceBaseTXAirport : Ind Airport ;
+
+  fun ReggioCalabriaAirport : Ind Airport ;
+
+  fun ReginaAirport : Ind Airport ;
+
+  fun ReginaSKAirport : Ind Airport ;
+
+  fun ReginaldGrantMemorialGAAirport : Ind Airport ;
+
+  fun RegionalONAirport : Ind Airport ;
+
+  fun RehobothBaySeaplaneBaseDEAirport : Ind Airport ;
+
+  fun ReidHillviewofSantaClaraCountyCAAirport : Ind Airport ;
+
+  fun ReidsvilleGAAirport : Ind Airport ;
+
+  fun ReinaSofiaTenerifeSurCanaryIslandsAirport : Ind Airport ;
+
+  fun ReiviloAirport : Ind Airport ;
+
+  fun RengatAirport : Ind Airport ;
+
+  fun RenmarkSouthAustraliaAirport : Ind Airport ;
+
+  fun RennellIslandAirport : Ind Airport ;
+
+  fun RenoCannonInternationalNVAirport : Ind Airport ;
+
+  fun RentonMunicipalWAAirport : Ind Airport ;
+
+  fun RepulseBayNTAirport : Ind Airport ;
+
+  fun RequenaAirport : Ind Airport ;
+
+  fun ResendeRJAirport : Ind Airport ;
+
+  fun ResistenciaAirport : Ind Airport ;
+
+  fun ResoluteBayNTAirport : Ind Airport ;
+
+  fun ResolutionIslandNTAirport : Ind Airport ;
+
+  fun RethymnonCreteAirport : Ind Airport ;
+
+  fun ReusAirport : Ind Airport ;
+
+  fun ReusTarragonaAirport : Ind Airport ;
+
+  fun RevelstokeBCAirport : Ind Airport ;
+
+  fun RewaAirport : Ind Airport ;
+
+  fun ReyesAirport : Ind Airport ;
+
+  fun ReykholarAirport : Ind Airport ;
+
+  fun ReykjahlidhMyvatnAirport : Ind Airport ;
+
+  fun ReykjavikAirport : Ind Airport ;
+
+  fun RezayiehAirport : Ind Airport ;
+
+  fun RhinelanderOneidaCountyWIAirport : Ind Airport ;
+
+  fun RiberaltaAirport : Ind Airport ;
+
+  fun RiberaoPretoSPAirport : Ind Airport ;
+
+  fun RiceLakeMunicipalWIAirport : Ind Airport ;
+
+  fun RichardBHelgesonMNAirport : Ind Airport ;
+
+  fun RichardBRussellGAAirport : Ind Airport ;
+
+  fun RichardIBongWIAirport : Ind Airport ;
+
+  fun RichardLloydJonesJrOKAirport : Ind Airport ;
+
+  fun RichardTollAirport : Ind Airport ;
+
+  fun RichardsBayAirport : Ind Airport ;
+
+  fun RichfieldMunicipalUTAirport : Ind Airport ;
+
+  fun RichlandWAAirport : Ind Airport ;
+
+  fun RichmondInternationalAirportByrdFieldVAAirport : Ind Airport ;
+
+  fun RichmondMunicipalINAirport : Ind Airport ;
+
+  fun RichmondQueenslandAirport : Ind Airport ;
+
+  fun RickenbackerInternationalOHAirport : Ind Airport ;
+
+  fun RigoletAerodromeNFAirport : Ind Airport ;
+
+  fun RijekaAirport : Ind Airport ;
+
+  fun RiminiAirport : Ind Airport ;
+
+  fun RimouskiQCAirport : Ind Airport ;
+
+  fun RingiCoveAirport : Ind Airport ;
+
+  fun RingwayInternationalEnglandAirport : Ind Airport ;
+
+  fun RioAlzucarAirport : Ind Airport ;
+
+  fun RioCuartoAreadeMaterialRioCuartoAirport : Ind Airport ;
+
+  fun RioFrioAirport : Ind Airport ;
+
+  fun RioGallegosAirport : Ind Airport ;
+
+  fun RioGrandeAirport : Ind Airport ;
+
+  fun RioGrandeRSAirport : Ind Airport ;
+
+  fun RioGrandeValleyTXAirport : Ind Airport ;
+
+  fun RioHondoAirport : Ind Airport ;
+
+  fun RioMayoAirport : Ind Airport ;
+
+  fun RioSidraAirport : Ind Airport ;
+
+  fun RioTigreAirport : Ind Airport ;
+
+  fun RioTurbioAirport : Ind Airport ;
+
+  fun RioVerdeAirport : Ind Airport ;
+
+  fun RiohachaAirport : Ind Airport ;
+
+  fun RiojaAirport : Ind Airport ;
+
+  fun RiosoSulSCAirport : Ind Airport ;
+
+  fun RishiriAirport : Ind Airport ;
+
+  fun RiverCessAirport : Ind Airport ;
+
+  fun RiversInletWaterAerodromeBCAirport : Ind Airport ;
+
+  fun RiversMBAirport : Ind Airport ;
+
+  fun RiversideMunicipalCAAirport : Ind Airport ;
+
+  fun RivertonRegionalWYAirport : Ind Airport ;
+
+  fun RivesaltesPerpignanAirport : Ind Airport ;
+
+  fun RiviereQCAirport : Ind Airport ;
+
+  fun RiviereauTonnerreQCAirport : Ind Airport ;
+
+  fun RiviereduLoupQCAirport : Ind Airport ;
+
+  fun RivneRovnoRivneAirport : Ind Airport ;
+
+  fun RivoltoUdineAirport : Ind Airport ;
+
+  fun RiyadhAirport : Ind Airport ;
+
+  fun RiyanAirport : Ind Airport ;
+
+  fun RizeAirport : Ind Airport ;
+
+  fun RoadTownSeaplaneBaseTortolaAirport : Ind Airport ;
+
+  fun RoanneAirport : Ind Airport ;
+
+  fun RoanokeRegionalAirportWoodrumFieldVAAirport : Ind Airport ;
+
+  fun RoatanAirport : Ind Airport ;
+
+  fun RobenHoodMIAirport : Ind Airport ;
+
+  fun RobertBobCurtisMemorialAKAirport : Ind Airport ;
+
+  fun RobertSKerrOKAirport : Ind Airport ;
+
+  fun RobertSibleyTNAirport : Ind Airport ;
+
+  fun RobertsArmyAirFieldCAAirport : Ind Airport ;
+
+  fun RobertsFieldMonroviaAirport : Ind Airport ;
+
+  fun RobertsFieldORAirport : Ind Airport ;
+
+  fun RobervalQCAirport : Ind Airport ;
+
+  fun RobinhoodQueenslandAirport : Ind Airport ;
+
+  fun RobinsAirForceBaseGAAirport : Ind Airport ;
+
+  fun RobinsonArmyAirFieldNationalGuardARAirport : Ind Airport ;
+
+  fun RobinsonMunicipalILAirport : Ind Airport ;
+
+  fun RobinsonRiverAirport : Ind Airport ;
+
+  fun RobinsonRiverNorthernTerritoryAirport : Ind Airport ;
+
+  fun RobinvaleVictoriaAirport : Ind Airport ;
+
+  fun RoboreAirport : Ind Airport ;
+
+  fun RoboroughEnglandAirport : Ind Airport ;
+
+  fun RocheHarborWAAirport : Ind Airport ;
+
+  fun RochefortAirport : Ind Airport ;
+
+  fun RochesterAirport : Ind Airport ;
+
+  fun RochesterMunicipalMNAirport : Ind Airport ;
+
+  fun RockCountyNEAirport : Ind Airport ;
+
+  fun RockHillMunicipalAirportBryantFieldSCAirport : Ind Airport ;
+
+  fun RockRapidsMunicipalIAAirport : Ind Airport ;
+
+  fun RockSoundEleutheraAirport : Ind Airport ;
+
+  fun RockSpringsSweetwaterCountyWYAirport : Ind Airport ;
+
+  fun RockcliffeONAirport : Ind Airport ;
+
+  fun RockhamptonDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun RockhamptonQueenslandAirport : Ind Airport ;
+
+  fun RockleighNJAirport : Ind Airport ;
+
+  fun RockwoodMunicipalTNAirport : Ind Airport ;
+
+  fun RockyMountWilsonNCAirport : Ind Airport ;
+
+  fun RockyMountainHouseABAirport : Ind Airport ;
+
+  fun RodezAirport : Ind Airport ;
+
+  fun RodriguesIslandAirport : Ind Airport ;
+
+  fun RodriguezdeMendezAirport : Ind Airport ;
+
+  fun RoebourneWesternAustraliaAirport : Ind Airport ;
+
+  fun RogersMunicipalAirportCarterFieldARAirport : Ind Airport ;
+
+  fun RokebyQueenslandAirport : Ind Airport ;
+
+  fun RokotAirport : Ind Airport ;
+
+  fun RollaDowntownMOAirport : Ind Airport ;
+
+  fun RollaNationalMOAirport : Ind Airport ;
+
+  fun RollangFieldMSAirport : Ind Airport ;
+
+  fun RolpaAirport : Ind Airport ;
+
+  fun RomaQueenslandAirport : Ind Airport ;
+
+  fun RomeStateORAirport : Ind Airport ;
+
+  fun RonchideiLegionariTriesteAirport : Ind Airport ;
+
+  fun RondonAirport : Ind Airport ;
+
+  fun RondonopolisMTAirport : Ind Airport ;
+
+  fun RongelapAirport : Ind Airport ;
+
+  fun RonnebyAirBaseRonnebyAirport : Ind Airport ;
+
+  fun RookeFieldTXAirport : Ind Airport ;
+
+  fun RooseveltMunicipalUTAirport : Ind Airport ;
+
+  fun RooseveltRoadsNavalStationOfstieFieldRooseveltRoadsAirport : Ind Airport ;
+
+  fun RoperBarAirport : Ind Airport ;
+
+  fun RoperValleyNorthernTerritoryAirport : Ind Airport ;
+
+  fun RoronaAirport : Ind Airport ;
+
+  fun RorosAirport : Ind Airport ;
+
+  fun RorvikRoervikAirport : Ind Airport ;
+
+  fun RosarioAirport : Ind Airport ;
+
+  fun RosarioSeaplaneBaseWAAirport : Ind Airport ;
+
+  fun RoseauMunicipalMNAirport : Ind Airport ;
+
+  fun RoseberthQueenslandAirport : Ind Airport ;
+
+  fun RoseburgMunicipalORAirport : Ind Airport ;
+
+  fun RosecransMemorialMOAirport : Ind Airport ;
+
+  fun RoseiresAirport : Ind Airport ;
+
+  fun RosellaPlainsQueenslandAirport : Ind Airport ;
+
+  fun RoshPinaAirport : Ind Airport ;
+
+  fun RoskildeKobenhavnCopenhagenAirport : Ind Airport ;
+
+  fun RossCountyOHAirport : Ind Airport ;
+
+  fun RossRiverYTAirport : Ind Airport ;
+
+  fun RossvollMoiRanaAirport : Ind Airport ;
+
+  fun RostRoestAirport : Ind Airport ;
+
+  fun RostockAirport : Ind Airport ;
+
+  fun RostovRostovAirport : Ind Airport ;
+
+  fun RoswellIndustrialAirCenterNMAirport : Ind Airport ;
+
+  fun RotaInternationalRotaIslandAirport : Ind Airport ;
+
+  fun RotaNavalStationRotaAirport : Ind Airport ;
+
+  fun RothenburgAirport : Ind Airport ;
+
+  fun RothesayAirport : Ind Airport ;
+
+  fun RotiAirport : Ind Airport ;
+
+  fun RotoruaAirport : Ind Airport ;
+
+  fun RotterdamAirport : Ind Airport ;
+
+  fun RottnestIslandWesternAustraliaAirport : Ind Airport ;
+
+  fun RotumaAirport : Ind Airport ;
+
+  fun RotundaCAAirport : Ind Airport ;
+
+  fun RouenAirport : Ind Airport ;
+
+  fun RoundupMTAirport : Ind Airport ;
+
+  fun RourkelaAirport : Ind Airport ;
+
+  fun RousesPointSeaplaneBaseNYAirport : Ind Airport ;
+
+  fun RouynNorandaQCAirport : Ind Airport ;
+
+  fun RovaniemiAirport : Ind Airport ;
+
+  fun RowanBayAKAirport : Ind Airport ;
+
+  fun RowanCountyNCAirport : Ind Airport ;
+
+  fun RoxasAirport : Ind Airport ;
+
+  fun RoyHillAirport : Ind Airport ;
+
+  fun RoyHurdMemorialTXAirport : Ind Airport ;
+
+  fun RoyanAirport : Ind Airport ;
+
+  fun RubelsantoAirport : Ind Airport ;
+
+  fun RubemBertaRSAirport : Ind Airport ;
+
+  fun RubyAKAirport : Ind Airport ;
+
+  fun RugaoAirport : Ind Airport ;
+
+  fun RuhengeriAirport : Ind Airport ;
+
+  fun RukumkotAirport : Ind Airport ;
+
+  fun RumCayAirport : Ind Airport ;
+
+  fun RumginaeAirport : Ind Airport ;
+
+  fun RumjartarAirport : Ind Airport ;
+
+  fun RunduAirport : Ind Airport ;
+
+  fun RupsiAirport : Ind Airport ;
+
+  fun RurrenabaqueAirport : Ind Airport ;
+
+  fun RurutuTubuaiIslandsAirport : Ind Airport ;
+
+  fun RuseAirport : Ind Airport ;
+
+  fun RuskCountyWIAirport : Ind Airport ;
+
+  fun RussellMunicipalKSAirport : Ind Airport ;
+
+  fun RussianMissionAKAirport : Ind Airport ;
+
+  fun RustonMunicipalLAAirport : Ind Airport ;
+
+  fun RutengAirport : Ind Airport ;
+
+  fun RutlandPlainsAirport : Ind Airport ;
+
+  fun RutlandStateVTAirport : Ind Airport ;
+
+  fun RuzynePrahaPragueAirport : Ind Airport ;
+
+  fun RyotsuSadoIsAirport : Ind Airport ;
+
+  fun SAngeloTrevisoAirport : Ind Airport ;
+
+  fun SEgidioPerugiaAirport : Ind Airport ;
+
+  fun SabaAirport : Ind Airport ;
+
+  fun SabadellAirport : Ind Airport ;
+
+  fun SabahAirport : Ind Airport ;
+
+  fun SabanadeLaMarAirport : Ind Airport ;
+
+  fun SabanadeTorresAirport : Ind Airport ;
+
+  fun SableIslandNSAirport : Ind Airport ;
+
+  fun SachigoLakeNTAirport : Ind Airport ;
+
+  fun SachsHarbourNTAirport : Ind Airport ;
+
+  fun SacramentoExecutiveCAAirport : Ind Airport ;
+
+  fun SacramentoMetropolitanCAAirport : Ind Airport ;
+
+  fun SadahAirport : Ind Airport ;
+
+  fun SaddamInternationalBaghdadAirport : Ind Airport ;
+
+  fun SadoShimaAirport : Ind Airport ;
+
+  fun SaenzPenaAirport : Ind Airport ;
+
+  fun SaffordMunicipalAZAirport : Ind Airport ;
+
+  fun SafiAirport : Ind Airport ;
+
+  fun SafiaAirport : Ind Airport ;
+
+  fun SagaraiAirport : Ind Airport ;
+
+  fun SaglekNFAirport : Ind Airport ;
+
+  fun SagwonAKAirport : Ind Airport ;
+
+  fun Sahabat16Airport : Ind Airport ;
+
+  fun SahiwalAirport : Ind Airport ;
+
+  fun SaibaiIslandQueenslandAirport : Ind Airport ;
+
+  fun SaidPurAirport : Ind Airport ;
+
+  fun SaidorAirport : Ind Airport ;
+
+  fun SaiduSharifAirport : Ind Airport ;
+
+  fun SaintBarthelemyAirport : Ind Airport ;
+
+  fun SaintBrieucAirport : Ind Airport ;
+
+  fun SaintFrancoisAirport : Ind Airport ;
+
+  fun SaintJacquesRennesAirport : Ind Airport ;
+
+  fun SaintJohnNBAirport : Ind Airport ;
+
+  fun SaintLouisAirport : Ind Airport ;
+
+  fun SaintPierreAirport : Ind Airport ;
+
+  fun SaintSymphorienToursAirport : Ind Airport ;
+
+  fun SaintYanAirport : Ind Airport ;
+
+  fun SaipanInternationalSaipanAirport : Ind Airport ;
+
+  fun SakonNakhonAirport : Ind Airport ;
+
+  fun SalakMarouaAirport : Ind Airport ;
+
+  fun SalalahInternationalSalalahAirport : Ind Airport ;
+
+  fun SalamancaAirport : Ind Airport ;
+
+  fun SalamoAirport : Ind Airport ;
+
+  fun SaleRabatAirport : Ind Airport ;
+
+  fun SalemLeckroneILAirport : Ind Airport ;
+
+  fun SalernoAirport : Ind Airport ;
+
+  fun SalgadoFilhoRSAirport : Ind Airport ;
+
+  fun SalimaAirport : Ind Airport ;
+
+  fun SalinaCruzAirport : Ind Airport ;
+
+  fun SalinaGunnisonUTAirport : Ind Airport ;
+
+  fun SalinaMunicipalKSAirport : Ind Airport ;
+
+  fun SalinasMunicipalCAAirport : Ind Airport ;
+
+  fun SalisburyWicomicoCountyRegionalMDAirport : Ind Airport ;
+
+  fun SalluitQCAirport : Ind Airport ;
+
+  fun SalmonArmAerodromeBCAirport : Ind Airport ;
+
+  fun SaltCaySaltCayAirport : Ind Airport ;
+
+  fun SaltLakeCityInternationalUTAirport : Ind Airport ;
+
+  fun SaltaAirport : Ind Airport ;
+
+  fun SaltonSeaCAAirport : Ind Airport ;
+
+  fun SalzburgAirport : Ind Airport ;
+
+  fun SamRatulangiManadoAirport : Ind Airport ;
+
+  fun SamarindaAirport : Ind Airport ;
+
+  fun SamarqandSamarkandSamarqandAirport : Ind Airport ;
+
+  fun SambavaAirport : Ind Airport ;
+
+  fun SambuAirport : Ind Airport ;
+
+  fun SamburuAirport : Ind Airport ;
+
+  fun SamchokAirport : Ind Airport ;
+
+  fun SamedanStMoritzAirport : Ind Airport ;
+
+  fun SamosSamosIslandAirport : Ind Airport ;
+
+  fun SampitBorneoAirport : Ind Airport ;
+
+  fun SamsunAirport : Ind Airport ;
+
+  fun SanAndrosAndrosAirport : Ind Airport ;
+
+  fun SanAntonioAirport : Ind Airport ;
+
+  fun SanAntonioInternationalTXAirport : Ind Airport ;
+
+  fun SanBernardinoInternationalCAAirport : Ind Airport ;
+
+  fun SanBlasAirport : Ind Airport ;
+
+  fun SanBorjaAirport : Ind Airport ;
+
+  fun SanCarlosCAAirport : Ind Airport ;
+
+  fun SanClementeIslandNavalAuxiliaryLandingFieldFrederickShermanFieldCAAirport : Ind Airport ;
+
+  fun SanCristobalAirport : Ind Airport ;
+
+  fun SanDiegoInternationalAirportLindberghFieldCAAirport : Ind Airport ;
+
+  fun SanEstebanAirport : Ind Airport ;
+
+  fun SanFelipeAirportColombia : Ind Airport ;
+
+  fun SanFelipeAirportMexico : Ind Airport ;
+
+  fun SanFelipeAirportVenezuela : Ind Airport ;
+
+  fun SanFelixAirport : Ind Airport ;
+
+  fun SanFernandoAirport : Ind Airport ;
+
+  fun SanFernandoCAAirport : Ind Airport ;
+
+  fun SanFernandodeApuAirport : Ind Airport ;
+
+  fun SanFranciscoAirport : Ind Airport ;
+
+  fun SanFranciscoInternationalCAAirport : Ind Airport ;
+
+  fun SanFrancisquitoAirport : Ind Airport ;
+
+  fun SanIgnacioAirport : Ind Airport ;
+
+  fun SanIgnaciodeMoxosAirport : Ind Airport ;
+
+  fun SanIgnaciodeVLSAirport : Ind Airport ;
+
+  fun SanIsidroAirport : Ind Airport ;
+
+  fun SanJavierAirport : Ind Airport ;
+
+  fun SanJavierMurciaAirport : Ind Airport ;
+
+  fun SanJeronimoCordobaAirport : Ind Airport ;
+
+  fun SanJoaquinAirport : Ind Airport ;
+
+  fun SanJoseAirportBolivia : Ind Airport ;
+
+  fun SanJoseAirportPhilippines : Ind Airport ;
+
+  fun SanJoseInternationalCAAirport : Ind Airport ;
+
+  fun SanJosedelGuaviaroAirport : Ind Airport ;
+
+  fun SanJuanAirport : Ind Airport ;
+
+  fun SanJuanAirportArgentina : Ind Airport ;
+
+  fun SanJuanCountyUTAirport : Ind Airport ;
+
+  fun SanJuanUganikSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun SanJuandeUrabaAirport : Ind Airport ;
+
+  fun SanJuandelCesarAirport : Ind Airport ;
+
+  fun SanJuandelaMarAirport : Ind Airport ;
+
+  fun SanJulianAirport : Ind Airport ;
+
+  fun SanLuisAirport : Ind Airport ;
+
+  fun SanLuisObispoCountyAirportMcChesneyFieldCAAirport : Ind Airport ;
+
+  fun SanLuisPotosiAirport : Ind Airport ;
+
+  fun SanLuisRioColoradoAirport : Ind Airport ;
+
+  fun SanLuisdePalenqueAirport : Ind Airport ;
+
+  fun SanMarcosAirport : Ind Airport ;
+
+  fun SanMarinoAirport : Ind Airport ;
+
+  fun SanMiguelAirport : Ind Airport ;
+
+  fun SanNicolasdeBariAirport : Ind Airport ;
+
+  fun SanPabloAirport : Ind Airport ;
+
+  fun SanPabloSevillaAirport : Ind Airport ;
+
+  fun SanPedroAirport : Ind Airport ;
+
+  fun SanPedroJaguaAirport : Ind Airport ;
+
+  fun SanPedrodeUrabaAirport : Ind Airport ;
+
+  fun SanQuintinAirport : Ind Airport ;
+
+  fun SanRamonAirport : Ind Airport ;
+
+  fun SanSalvadorAirport : Ind Airport ;
+
+  fun SanSalvadorCockburnTownSanSalvadorAirport : Ind Airport ;
+
+  fun SanTomeAirport : Ind Airport ;
+
+  fun SanVicentedelCaguanAirport : Ind Airport ;
+
+  fun SananaAirport : Ind Airport ;
+
+  fun SanandajAirport : Ind Airport ;
+
+  fun SanctiSpirituAirport : Ind Airport ;
+
+  fun SandPointAKAirport : Ind Airport ;
+
+  fun SandakanSabahAirport : Ind Airport ;
+
+  fun SandayOrkneyIslandsAirport : Ind Airport ;
+
+  fun SandcreekAirport : Ind Airport ;
+
+  fun SandersonFieldWAAirport : Ind Airport ;
+
+  fun SandowayAirport : Ind Airport ;
+
+  fun SandringhamQueenslandAirport : Ind Airport ;
+
+  fun SandspitBCAirport : Ind Airport ;
+
+  fun SandstoneWesternAustraliaAirport : Ind Airport ;
+
+  fun SandwipAirport : Ind Airport ;
+
+  fun SandyLakeONAirport : Ind Airport ;
+
+  fun SanfordMunicipalMEAirport : Ind Airport ;
+
+  fun SangaSangaAirport : Ind Airport ;
+
+  fun SangapiAirport : Ind Airport ;
+
+  fun SanggataAirport : Ind Airport ;
+
+  fun SangirAirport : Ind Airport ;
+
+  fun SangleyPointAirport : Ind Airport ;
+
+  fun SangsterMontegoBayAirport : Ind Airport ;
+
+  fun SaniaRamelTetouanTetuanAirport : Ind Airport ;
+
+  fun SanikiluaqNTAirport : Ind Airport ;
+
+  fun SansSouciONAirport : Ind Airport ;
+
+  fun SantaAnaAirportBolivia : Ind Airport ;
+
+  fun SantaAnaAirportColombia : Ind Airport ;
+
+  fun SantaAnaSeaplaneBaseSantaAnaAirport : Ind Airport ;
+
+  fun SantaBarbaraAirport : Ind Airport ;
+
+  fun SantaBarbaraMunicipalCAAirport : Ind Airport ;
+
+  fun SantaCarolinaAirport : Ind Airport ;
+
+  fun SantaCatalinaAirport : Ind Airport ;
+
+  fun SantaCeciliaAirport : Ind Airport ;
+
+  fun SantaClaraAirport : Ind Airport ;
+
+  fun SantaCruzAirportArgentina : Ind Airport ;
+
+  fun SantaCruzAirportBelize : Ind Airport ;
+
+  fun SantaCruzAirportBrazil : Ind Airport ;
+
+  fun SantaCruzAirportCostaRica : Ind Airport ;
+
+  fun SantaCruzAirportSolomonIslands : Ind Airport ;
+
+  fun SantaCruzCAAirport : Ind Airport ;
+
+  fun SantaCruzIslandCAAirport : Ind Airport ;
+
+  fun SantaCruzdelaPalmaAirport : Ind Airport ;
+
+  fun SantaElenaAirport : Ind Airport ;
+
+  fun SantaFeAirport : Ind Airport ;
+
+  fun SantaFeBusStationNMAirport : Ind Airport ;
+
+  fun SantaFeCountyMunicipalNMAirport : Ind Airport ;
+
+  fun SantaFedoSulAirport : Ind Airport ;
+
+  fun SantaInezCAAirport : Ind Airport ;
+
+  fun SantaKatarinaAirport : Ind Airport ;
+
+  fun SantaLuciaAirport : Ind Airport ;
+
+  fun SantaMariaAirportColombia : Ind Airport ;
+
+  fun SantaMariaAirportPeru : Ind Airport ;
+
+  fun SantaMariaAzoresAirport : Ind Airport ;
+
+  fun SantaMariaPublicCAAirport : Ind Airport ;
+
+  fun SantaMariaRSAirport : Ind Airport ;
+
+  fun SantaMonicaMunicipalCAAirport : Ind Airport ;
+
+  fun SantaPaulaCAAirport : Ind Airport ;
+
+  fun SantaRosaAirportArgentina : Ind Airport ;
+
+  fun SantaRosaAirportBolivia : Ind Airport ;
+
+  fun SantaRosaRSAirport : Ind Airport ;
+
+  fun SantaRosadeCopanAirport : Ind Airport ;
+
+  fun SantaRosaliaAirport : Ind Airport ;
+
+  fun SantaRosaliaAirportMexico : Ind Airport ;
+
+  fun SantaTeresitaAirport : Ind Airport ;
+
+  fun SantaTerezinhaAirport : Ind Airport ;
+
+  fun SantanTanjungAirport : Ind Airport ;
+
+  fun SantanaRamosAirport : Ind Airport ;
+
+  fun SantanadoLivramentoRSAirport : Ind Airport ;
+
+  fun SantanderAirport : Ind Airport ;
+
+  fun SantaremPAAirport : Ind Airport ;
+
+  fun SantiagoSantiagodeCompostelaAirport : Ind Airport ;
+
+  fun SantiagodeChileAirport : Ind Airport ;
+
+  fun SantiagodelEsteroAirport : Ind Airport ;
+
+  fun SantoAndreSPAirport : Ind Airport ;
+
+  fun SantoAntaoAirport : Ind Airport ;
+
+  fun SantoDomingoAirport : Ind Airport ;
+
+  fun SantosSPAirport : Ind Airport ;
+
+  fun SanyaAirport : Ind Airport ;
+
+  fun SaoBentodoSulSCAirport : Ind Airport ;
+
+  fun SaoBernardodoCampoSPAirport : Ind Airport ;
+
+  fun SaoCaetanodoSulSPAirport : Ind Airport ;
+
+  fun SaoCarlosSPAirport : Ind Airport ;
+
+  fun SaoDomingosAirport : Ind Airport ;
+
+  fun SaoFelipeAirport : Ind Airport ;
+
+  fun SaoFelixAraguaiAirport : Ind Airport ;
+
+  fun SaoFelixdeXinguAirport : Ind Airport ;
+
+  fun SaoFranciscodoSulSCAirport : Ind Airport ;
+
+  fun SaoGabrielAirport : Ind Airport ;
+
+  fun SaoGoncaloRJAirport : Ind Airport ;
+
+  fun SaoGoncalodoAmaranteRNAirport : Ind Airport ;
+
+  fun SaoJoaodelReiMGAirport : Ind Airport ;
+
+  fun SaoJorgeAzoresAirport : Ind Airport ;
+
+  fun SaoJosedoRioPretoSPAirport : Ind Airport ;
+
+  fun SaoJosedoXinguAirport : Ind Airport ;
+
+  fun SaoJosedosLamposSPAirport : Ind Airport ;
+
+  fun SaoLeopoldoRSAirport : Ind Airport ;
+
+  fun SaoLourencoAirport : Ind Airport ;
+
+  fun SaoLuisMAAirport : Ind Airport ;
+
+  fun SaoMateusESAirport : Ind Airport ;
+
+  fun SaoMigueldeAragaoAirport : Ind Airport ;
+
+  fun SaoNicolauSaoNicolauAirport : Ind Airport ;
+
+  fun SaoTomeSaoTomeAirport : Ind Airport ;
+
+  fun SaoVicenteSaoVicenteAirport : Ind Airport ;
+
+  fun SapmangaAirport : Ind Airport ;
+
+  fun SaposoaAirport : Ind Airport ;
+
+  fun SaraAirport : Ind Airport ;
+
+  fun SarajevoAirport : Ind Airport ;
+
+  fun SaranskMordviniaAirport : Ind Airport ;
+
+  fun SarasotaBradentonFLAirport : Ind Airport ;
+
+  fun SaratovSaratovAirport : Ind Airport ;
+
+  fun SaravaneAirport : Ind Airport ;
+
+  fun SaravenaAirport : Ind Airport ;
+
+  fun SardehBandAirport : Ind Airport ;
+
+  fun SarhAirport : Ind Airport ;
+
+  fun SarichefAKAirport : Ind Airport ;
+
+  fun SarmiNewGuineaAirport : Ind Airport ;
+
+  fun SarniaONAirport : Ind Airport ;
+
+  fun SartanejaAirport : Ind Airport ;
+
+  fun SaryAirport : Ind Airport ;
+
+  fun SaskatoonSKAirport : Ind Airport ;
+
+  fun SassandraAirport : Ind Airport ;
+
+  fun SasstownAirport : Ind Airport ;
+
+  fun SatipoAirport : Ind Airport ;
+
+  fun SatnaAirport : Ind Airport ;
+
+  fun SatolasLyonAirport : Ind Airport ;
+
+  fun SatuMareAirport : Ind Airport ;
+
+  fun SaubiAirport : Ind Airport ;
+
+  fun SauceViejoSantaFeAirport : Ind Airport ;
+
+  fun SaudarkrokurAirport : Ind Airport ;
+
+  fun SaufleyFieldNavalOutlyingFieldFLAirport : Ind Airport ;
+
+  fun SaulAirport : Ind Airport ;
+
+  fun SaultSteMarieMunicipalAirportSandersonFieldMIAirport : Ind Airport ;
+
+  fun SaultSteMarieONAirport : Ind Airport ;
+
+  fun SaumlakiAirport : Ind Airport ;
+
+  fun SaurimoAirport : Ind Airport ;
+
+  fun SavannahInternationalGAAirport : Ind Airport ;
+
+  fun SavannakhetAirport : Ind Airport ;
+
+  fun SaveAirport : Ind Airport ;
+
+  fun SavoAirport : Ind Airport ;
+
+  fun SavonlinnaAirport : Ind Airport ;
+
+  fun SavoongaAKAirport : Ind Airport ;
+
+  fun SavusavuAirport : Ind Airport ;
+
+  fun SawuAirport : Ind Airport ;
+
+  fun SayabouryAirport : Ind Airport ;
+
+  fun ScammonBayAKAirport : Ind Airport ;
+
+  fun ScamptonRAFStationEnglandAirport : Ind Airport ;
+
+  fun ScatsaShetlandIslandsAirport : Ind Airport ;
+
+  fun ScheffervilleQCAirport : Ind Airport ;
+
+  fun SchenectadyCountyNYAirport : Ind Airport ;
+
+  fun SchkeuditzLeipzigAirport : Ind Airport ;
+
+  fun SchloredtWYAirport : Ind Airport ;
+
+  fun SchoenefeldBerlinAirport : Ind Airport ;
+
+  fun SchwechatWienViennaAirport : Ind Airport ;
+
+  fun ScillyTrescoAirport : Ind Airport ;
+
+  fun SconeNewSouthWalesAirport : Ind Airport ;
+
+  fun ScoresbysundAirport : Ind Airport ;
+
+  fun ScottCityMunicipalKSAirport : Ind Airport ;
+
+  fun ScottsdaleAZAirport : Ind Airport ;
+
+  fun ScribnerStateNEAirport : Ind Airport ;
+
+  fun SculthorpeAirport : Ind Airport ;
+
+  fun SealBayAKAirport : Ind Airport ;
+
+  fun SealCoveWaterAerodromeBCAirport : Ind Airport ;
+
+  fun SearcyMunicipalARAirport : Ind Airport ;
+
+  fun SearleFieldNEAirport : Ind Airport ;
+
+  fun SeattleTacomaInternationalWAAirport : Ind Airport ;
+
+  fun SebbaAirport : Ind Airport ;
+
+  fun SebhaAirport : Ind Airport ;
+
+  fun SebringRegionalFLAirport : Ind Airport ;
+
+  fun SecheltWaterAerodromeBCAirport : Ind Airport ;
+
+  fun SecondaAirport : Ind Airport ;
+
+  fun SedomAirport : Ind Airport ;
+
+  fun SedonaAZAirport : Ind Airport ;
+
+  fun SeebMuscatAirport : Ind Airport ;
+
+  fun SeeheimAirport : Ind Airport ;
+
+  fun SegouAirport : Ind Airport ;
+
+  fun SegrateMilanoAirport : Ind Airport ;
+
+  fun SeguelaAirport : Ind Airport ;
+
+  fun SehonghongAirport : Ind Airport ;
+
+  fun SehuleaAirport : Ind Airport ;
+
+  fun SeinajokiAirport : Ind Airport ;
+
+  fun SekakesAirport : Ind Airport ;
+
+  fun SelawikAKAirport : Ind Airport ;
+
+  fun SeldoviaAKAirport : Ind Airport ;
+
+  fun SeletarSingaporeAirport : Ind Airport ;
+
+  fun SelfridgeAirNationalGuardBaseMIAirport : Ind Airport ;
+
+  fun SelfsMSAirport : Ind Airport ;
+
+  fun SelibabyAirport : Ind Airport ;
+
+  fun SelibiPhikweAirport : Ind Airport ;
+
+  fun SembachAirport : Ind Airport ;
+
+  fun SemeySemipalatinskSemeyAirport : Ind Airport ;
+
+  fun SemongkongAirport : Ind Airport ;
+
+  fun SempornaSabahAirport : Ind Airport ;
+
+  fun SenaMadureiraACAirport : Ind Airport ;
+
+  fun SenangaAirport : Ind Airport ;
+
+  fun SendaiHonshuAirport : Ind Airport ;
+
+  fun SenggehAirport : Ind Airport ;
+
+  fun SenggoAirport : Ind Airport ;
+
+  fun SenhordoBonfimBAAirport : Ind Airport ;
+
+  fun SenipahAirport : Ind Airport ;
+
+  fun SenoAirport : Ind Airport ;
+
+  fun SeodeUrgelAirport : Ind Airport ;
+
+  fun SeoulAirBaseSeoulAirport : Ind Airport ;
+
+  fun SeptIlesQCAirport : Ind Airport ;
+
+  fun SepulotAirport : Ind Airport ;
+
+  fun SeroneraAirport : Ind Airport ;
+
+  fun SerraNorteMTAirport : Ind Airport ;
+
+  fun SerraPeladaAirport : Ind Airport ;
+
+  fun SerreChevalierAirport : Ind Airport ;
+
+  fun SertAirport : Ind Airport ;
+
+  fun SertelCiudaddeMexicoMexicoCityAirport : Ind Airport ;
+
+  fun SeruiAirport : Ind Airport ;
+
+  fun SeshekeAirport : Ind Airport ;
+
+  fun SeshutesAirport : Ind Airport ;
+
+  fun SetteCamaAirport : Ind Airport ;
+
+  fun SewardAKAirport : Ind Airport ;
+
+  fun SeychellesInternationalMaheIsAirport : Ind Airport ;
+
+  fun ShafterAirportMinterFieldCAAirport : Ind Airport ;
+
+  fun ShagelukAKAirport : Ind Airport ;
+
+  fun ShakisoAirport : Ind Airport ;
+
+  fun ShaktoolikAKAirport : Ind Airport ;
+
+  fun ShamattawaMBAirport : Ind Airport ;
+
+  fun ShamshernagarAirport : Ind Airport ;
+
+  fun ShangriLaOKAirport : Ind Airport ;
+
+  fun ShanhaiguanAirport : Ind Airport ;
+
+  fun ShannonLimerickAirport : Ind Airport ;
+
+  fun ShantouAirport : Ind Airport ;
+
+  fun SharjahAirport : Ind Airport ;
+
+  fun SharmElSheikhRasNasraniAirport : Ind Airport ;
+
+  fun SharpeArmyAirFieldCAAirport : Ind Airport ;
+
+  fun SharurahAirport : Ind Airport ;
+
+  fun ShashiAirport : Ind Airport ;
+
+  fun ShawAirForceBaseSCAirport : Ind Airport ;
+
+  fun ShawRiverWesternAustraliaAirport : Ind Airport ;
+
+  fun ShawneeMunicipalOKAirport : Ind Airport ;
+
+  fun ShayGapWesternAustraliaAirport : Ind Airport ;
+
+  fun ShearwaterNSAirport : Ind Airport ;
+
+  fun SheboyganCountyMemorialWIAirport : Ind Airport ;
+
+  fun SheepMountainAKAirport : Ind Airport ;
+
+  fun ShehdiAirport : Ind Airport ;
+
+  fun ShelbyMTAirport : Ind Airport ;
+
+  fun SheldonPointAKAirport : Ind Airport ;
+
+  fun ShemyaAirForceBaseAKAirport : Ind Airport ;
+
+  fun ShenandoahValleyRegionalVAAirport : Ind Airport ;
+
+  fun ShenchiuAirport : Ind Airport ;
+
+  fun ShenyangAirport : Ind Airport ;
+
+  fun SheperdBayNTAirport : Ind Airport ;
+
+  fun SheppardAirForceBaseWichitaFallsMunicipalTXAirport : Ind Airport ;
+
+  fun SheppartonVictoriaAirport : Ind Airport ;
+
+  fun SherWoodMTAirport : Ind Airport ;
+
+  fun SherbrookeQCAirport : Ind Airport ;
+
+  fun Sheremetyevo2MoscowAirport : Ind Airport ;
+
+  fun SheridanCountyWYAirport : Ind Airport ;
+
+  fun ShetlandIslandsShetlandIslandsAirport : Ind Airport ;
+
+  fun ShijiazhuangAirport : Ind Airport ;
+
+  fun ShillongAirport : Ind Airport ;
+
+  fun ShiloMBAirport : Ind Airport ;
+
+  fun ShimojishimaAirport : Ind Airport ;
+
+  fun ShinChuAirport : Ind Airport ;
+
+  fun ShinglePointYTAirport : Ind Airport ;
+
+  fun ShinyangaAirport : Ind Airport ;
+
+  fun ShirazAirport : Ind Airport ;
+
+  fun ShishmarefAKAirport : Ind Airport ;
+
+  fun ShivelyFieldWYAirport : Ind Airport ;
+
+  fun ShizuokaCityAirport : Ind Airport ;
+
+  fun SholapurAirport : Ind Airport ;
+
+  fun ShonaiAirport : Ind Airport ;
+
+  fun ShowLowMunicipalAZAirport : Ind Airport ;
+
+  fun ShreveportRegionalLAAirport : Ind Airport ;
+
+  fun ShungnakAKAirport : Ind Airport ;
+
+  fun SialkotAirport : Ind Airport ;
+
+  fun SialumAirport : Ind Airport ;
+
+  fun SiassiAirport : Ind Airport ;
+
+  fun SibasaAirport : Ind Airport ;
+
+  fun SibiAirport : Ind Airport ;
+
+  fun SibisaAirport : Ind Airport ;
+
+  fun SibitiAirport : Ind Airport ;
+
+  fun SibiuAirport : Ind Airport ;
+
+  fun SibuSarawakAirport : Ind Airport ;
+
+  fun SidiIfniAirport : Ind Airport ;
+
+  fun SidiMahdiTouggourtAirport : Ind Airport ;
+
+  fun SidneyMunicipalNEAirport : Ind Airport ;
+
+  fun SidneyMunicipalNYAirport : Ind Airport ;
+
+  fun SidneyRichlandMunicipalMTAirport : Ind Airport ;
+
+  fun SiegenAirport : Ind Airport ;
+
+  fun SienaAirport : Ind Airport ;
+
+  fun SierraBlancaRegionalNMAirport : Ind Airport ;
+
+  fun SierraGrandeAirport : Ind Airport ;
+
+  fun SierraLeoneAirport : Ind Airport ;
+
+  fun SiglufjordurAirport : Ind Airport ;
+
+  fun SigonellaAirport : Ind Airport ;
+
+  fun SikestonMemorialMunicipalMOAirport : Ind Airport ;
+
+  fun SilaAirport : Ind Airport ;
+
+  fun SilgadiDotiAirport : Ind Airport ;
+
+  fun SilistraAirport : Ind Airport ;
+
+  fun SiljanMoraAirport : Ind Airport ;
+
+  fun SilverCreekAirport : Ind Airport ;
+
+  fun SilverPlainsQueenslandAirport : Ind Airport ;
+
+  fun SimAirport : Ind Airport ;
+
+  fun SimanggangAirport : Ind Airport ;
+
+  fun SimaoAirport : Ind Airport ;
+
+  fun SimbaiAirport : Ind Airport ;
+
+  fun SimbirskUlyanovskUlyanovskAirport : Ind Airport ;
+
+  fun SimentiAirport : Ind Airport ;
+
+  fun SimferopolAdygeaAirport : Ind Airport ;
+
+  fun SimlaAirport : Ind Airport ;
+
+  fun SimmonsMIAirport : Ind Airport ;
+
+  fun SimonBolivarSantaMartaAirport : Ind Airport ;
+
+  fun SimpangTigaPekanbaruAirport : Ind Airport ;
+
+  fun SimraAirport : Ind Airport ;
+
+  fun SinesAirport : Ind Airport ;
+
+  fun SingauaAirport : Ind Airport ;
+
+  fun SingletonNewSouthWalesAirport : Ind Airport ;
+
+  fun SinoeAirport : Ind Airport ;
+
+  fun SinopArmyAirFieldSinopAirport : Ind Airport ;
+
+  fun SinopMTAirport : Ind Airport ;
+
+  fun SintangBorneoAirport : Ind Airport ;
+
+  fun SionSittenAirport : Ind Airport ;
+
+  fun SiouxGatewayIAAirport : Ind Airport ;
+
+  fun SiouxLookoutONAirport : Ind Airport ;
+
+  fun SipitangAirport : Ind Airport ;
+
+  fun SiporaAirport : Ind Airport ;
+
+  fun SirSeewoosagurRamgoolamMauritiusAirport : Ind Airport ;
+
+  fun SirajganjAirport : Ind Airport ;
+
+  fun SirkhetAirport : Ind Airport ;
+
+  fun SirriIslandAirport : Ind Airport ;
+
+  fun SishenAirport : Ind Airport ;
+
+  fun SiskiyouCountyCAAirport : Ind Airport ;
+
+  fun SissanoAirport : Ind Airport ;
+
+  fun SitiawanAirport : Ind Airport ;
+
+  fun SitkaAKAirport : Ind Airport ;
+
+  fun SitkinakAKAirport : Ind Airport ;
+
+  fun SiunaAirport : Ind Airport ;
+
+  fun SivasAirport : Ind Airport ;
+
+  fun SiwaAirport : Ind Airport ;
+
+  fun SiweaAirport : Ind Airport ;
+
+  fun SkagenStokmarknesAirport : Ind Airport ;
+
+  fun SkagwayAKAirport : Ind Airport ;
+
+  fun SkanesMonastirAirport : Ind Airport ;
+
+  fun SkeldonAirport : Ind Airport ;
+
+  fun SkellefteaAirport : Ind Airport ;
+
+  fun SkikdaAirport : Ind Airport ;
+
+  fun SkirosAirport : Ind Airport ;
+
+  fun SkopjeAirport : Ind Airport ;
+
+  fun SkukuzaAirport : Ind Airport ;
+
+  fun SkulteRigaAirport : Ind Airport ;
+
+  fun SkwentnaAKAirport : Ind Airport ;
+
+  fun SlateIslandONAirport : Ind Airport ;
+
+  fun SlaveLakeABAirport : Ind Airport ;
+
+  fun SleetmuteAKAirport : Ind Airport ;
+
+  fun SliacAirport : Ind Airport ;
+
+  fun SligoAirport : Ind Airport ;
+
+  fun SlupskAirport : Ind Airport ;
+
+  fun SmaraAirport : Ind Airport ;
+
+  fun SmigginHolesNewSouthWalesAirport : Ind Airport ;
+
+  fun SmithCoveAKAirport : Ind Airport ;
+
+  fun SmithFallsMontagueONAirport : Ind Airport ;
+
+  fun SmithFieldARAirport : Ind Airport ;
+
+  fun SmithFieldINAirport : Ind Airport ;
+
+  fun SmithFieldKSAirport : Ind Airport ;
+
+  fun SmithPointNorthernTerritoryAirport : Ind Airport ;
+
+  fun SmithersBCAirport : Ind Airport ;
+
+  fun SmithtonTasmaniaAirport : Ind Airport ;
+
+  fun SmolenskSmolenskAirport : Ind Airport ;
+
+  fun SmyrnaTNAirport : Ind Airport ;
+
+  fun SnakeBayNorthernTerritoryAirport : Ind Airport ;
+
+  fun SnakeRiverYTAirport : Ind Airport ;
+
+  fun SnohomishCountyAirportPaineFieldWAAirport : Ind Airport ;
+
+  fun SnowdriftAerodromeNTAirport : Ind Airport ;
+
+  fun SobralCEAirport : Ind Airport ;
+
+  fun SocTrangAirport : Ind Airport ;
+
+  fun SocorroMunicipalNMAirport : Ind Airport ;
+
+  fun SocotraAirport : Ind Airport ;
+
+  fun SodankylaAirport : Ind Airport ;
+
+  fun SodduAirport : Ind Airport ;
+
+  fun SoderhamnAirport : Ind Airport ;
+
+  fun SoerkjosenSorkjosenAirport : Ind Airport ;
+
+  fun SogamosoAirport : Ind Airport ;
+
+  fun SokchoAirport : Ind Airport ;
+
+  fun SokhumiAbkhaziaAirport : Ind Airport ;
+
+  fun SokotoAirport : Ind Airport ;
+
+  fun SolaAirport : Ind Airport ;
+
+  fun SolaStavangerAirport : Ind Airport ;
+
+  fun SolanoAirport : Ind Airport ;
+
+  fun SoldotnaAKAirport : Ind Airport ;
+
+  fun SolitaAirport : Ind Airport ;
+
+  fun SolomonStateFieldAKAirport : Ind Airport ;
+
+  fun SolonSpringsMunicipalWIAirport : Ind Airport ;
+
+  fun SolweziAirport : Ind Airport ;
+
+  fun SomersetPulaskiCountyAirportJTWilsonFieldKYAirport : Ind Airport ;
+
+  fun SonderborgSoenderborgAirport : Ind Airport ;
+
+  fun SongeaAirport : Ind Airport ;
+
+  fun SongkhlaAirport : Ind Airport ;
+
+  fun SonomaCountyCAAirport : Ind Airport ;
+
+  fun SopuAirport : Ind Airport ;
+
+  fun SoroakoAirport : Ind Airport ;
+
+  fun SorocabaAirport : Ind Airport ;
+
+  fun SorotiAirport : Ind Airport ;
+
+  fun SorrentoAirport : Ind Airport ;
+
+  fun SorstukkenStordAirport : Ind Airport ;
+
+  fun SouankeAirport : Ind Airport ;
+
+  fun SousseAirport : Ind Airport ;
+
+  fun SouthCaicosIsAirport : Ind Airport ;
+
+  fun SouthGalwayAirport : Ind Airport ;
+
+  fun SouthIndianLakeMBAirport : Ind Airport ;
+
+  fun SouthJerseyRegionalNJAirport : Ind Airport ;
+
+  fun SouthMolleIslandQueenslandAirport : Ind Airport ;
+
+  fun SouthNakneknr2AKAirport : Ind Airport ;
+
+  fun SouthTroutLakeONAirport : Ind Airport ;
+
+  fun SouthWestBayAirport : Ind Airport ;
+
+  fun SouthWeymouthNavalAirStationSheaFieldMAAirport : Ind Airport ;
+
+  fun SouthendEnglandAirport : Ind Airport ;
+
+  fun SouthernCrossWesternAustraliaAirport : Ind Airport ;
+
+  fun SouthernIllinoisILAirport : Ind Airport ;
+
+  fun SouthportMBAirport : Ind Airport ;
+
+  fun SouthwestFloridaRegionalFLAirport : Ind Airport ;
+
+  fun SoyoAirport : Ind Airport ;
+
+  fun SpaceCenterExecutiveFLAirport : Ind Airport ;
+
+  fun SpacelandHoustonGulfTXAirport : Ind Airport ;
+
+  fun SpangdahlemAirBaseSpangdahlemAirport : Ind Airport ;
+
+  fun SpanishWellsAirport : Ind Airport ;
+
+  fun SparrevohnLRRSAKAirport : Ind Airport ;
+
+  fun SpartaAirport : Ind Airport ;
+
+  fun SpartaCommunityAirportHunterFieldILAirport : Ind Airport ;
+
+  fun SpartanburgDowntownMemorialSCAirport : Ind Airport ;
+
+  fun SpekeEnglandAirport : Ind Airport ;
+
+  fun SpenceBayNTAirport : Ind Airport ;
+
+  fun SpenceGAAirport : Ind Airport ;
+
+  fun SpencerMunicipalIAAirport : Ind Airport ;
+
+  fun SpiezAirport : Ind Airport ;
+
+  fun SpilveRigaAirport : Ind Airport ;
+
+  fun SpiritofStLouisMOAirport : Ind Airport ;
+
+  fun SplaneMemorialPAAirport : Ind Airport ;
+
+  fun SpriggsPayneMonroviaAirport : Ind Airport ;
+
+  fun SpringCreekQueenslandAirport : Ind Airport ;
+
+  fun SpringIslandBCAirport : Ind Airport ;
+
+  fun SpringbokAirport : Ind Airport ;
+
+  fun SpringdaleMunicipalARAirport : Ind Airport ;
+
+  fun SpringfieldBeckleyMunicipalOHAirport : Ind Airport ;
+
+  fun SpringfieldMAAirport : Ind Airport ;
+
+  fun SpringfieldRegionalMOAirport : Ind Airport ;
+
+  fun SpringvaleWesternAustraliaAirport : Ind Airport ;
+
+  fun SrinagarAirport : Ind Airport ;
+
+  fun StAnthonyNFAirport : Ind Airport ;
+
+  fun StAugustineFLAirport : Ind Airport ;
+
+  fun StCatharinesONAirport : Ind Airport ;
+
+  fun StClairCountyALAirport : Ind Airport ;
+
+  fun StClairCountyInternationalMIAirport : Ind Airport ;
+
+  fun StCloudMunicipalMNAirport : Ind Airport ;
+
+  fun StCrepinAirport : Ind Airport ;
+
+  fun StGeorgeAKAirport : Ind Airport ;
+
+  fun StGeorgeMunicipalUTAirport : Ind Airport ;
+
+  fun StGeorgeOyapockAirport : Ind Airport ;
+
+  fun StGeorgeQueenslandAirport : Ind Airport ;
+
+  fun StHonoreQCAirport : Ind Airport ;
+
+  fun StHubertQCAirport : Ind Airport ;
+
+  fun StJeanQCAirport : Ind Airport ;
+
+  fun StJohnsIndustrialAirParkAZAirport : Ind Airport ;
+
+  fun StJohnsNFAirport : Ind Airport ;
+
+  fun StJustEnglandAirport : Ind Airport ;
+
+  fun StLandryParishAirportAhartFieldLAAirport : Ind Airport ;
+
+  fun StLaurentduMaroniAirport : Ind Airport ;
+
+  fun StLeonardNBAirport : Ind Airport ;
+
+  fun StMaartenAirport : Ind Airport ;
+
+  fun StMaartenMarigotAirport : Ind Airport ;
+
+  fun StMaloAirport : Ind Airport ;
+
+  fun StMarysCountyMDAirport : Ind Airport ;
+
+  fun StMarysMDAirport : Ind Airport ;
+
+  fun StMarysMunicipalPAAirport : Ind Airport ;
+
+  fun StMawganNewquayAirport : Ind Airport ;
+
+  fun StMichaelAKAirport : Ind Airport ;
+
+  fun StPaulAerodromeABAirport : Ind Airport ;
+
+  fun StPaulDowntownHolmanFieldMNAirport : Ind Airport ;
+
+  fun StPaulIslandAKAirport : Ind Airport ;
+
+  fun StPaulsMissionQueenslandAirport : Ind Airport ;
+
+  fun StPeterAirport : Ind Airport ;
+
+  fun StPetersburgClearwaterInternationalFLAirport : Ind Airport ;
+
+  fun StThomasONAirport : Ind Airport ;
+
+  fun StandifordFieldKYAirport : Ind Airport ;
+
+  fun StanielCayAirport : Ind Airport ;
+
+  fun StanstedLondonAirport : Ind Airport ;
+
+  fun StanthorpeQueenslandAirport : Ind Airport ;
+
+  fun StantonAirfieldMNAirport : Ind Airport ;
+
+  fun StaraZagoraAirport : Ind Airport ;
+
+  fun StarckeQueenslandAirport : Ind Airport ;
+
+  fun StarkeCountyINAirport : Ind Airport ;
+
+  fun StateCollegePAAirport : Ind Airport ;
+
+  fun StatesboroMunicipalGAAirport : Ind Airport ;
+
+  fun StatesvilleMunicipalNCAirport : Ind Airport ;
+
+  fun StatwagAirport : Ind Airport ;
+
+  fun StauningAirport : Ind Airport ;
+
+  fun StavertonEnglandAirport : Ind Airport ;
+
+  fun StavropolStavropolAirport : Ind Airport ;
+
+  fun StawellVictoriaAirport : Ind Airport ;
+
+  fun SteAnnedesMontsQCAirport : Ind Airport ;
+
+  fun SteMarieAirport : Ind Airport ;
+
+  fun SteamboatBaySeaplaneBaseAKAirport : Ind Airport ;
+
+  fun SteamboatSpringsBobAdamsFieldSTOLCOAirport : Ind Airport ;
+
+  fun StebbinsAKAirport : Ind Airport ;
+
+  fun SteenkoolAirport : Ind Airport ;
+
+  fun StellaMarisLongAirport : Ind Airport ;
+
+  fun StellarAirparkAZAirport : Ind Airport ;
+
+  fun StephenIslandQueenslandAirport : Ind Airport ;
+
+  fun StephenvilleNFAirport : Ind Airport ;
+
+  fun StevensFieldCOAirport : Ind Airport ;
+
+  fun StevensPointMunicipalWIAirport : Ind Airport ;
+
+  fun StevensVillageAKAirport : Ind Airport ;
+
+  fun StewartBCAirport : Ind Airport ;
+
+  fun StewartInternationalNYAirport : Ind Airport ;
+
+  fun StewartIslandAirport : Ind Airport ;
+
+  fun StillwaterMunicipalOKAirport : Ind Airport ;
+
+  fun StinsonMunicipalTXAirport : Ind Airport ;
+
+  fun StockholmAirport : Ind Airport ;
+
+  fun StocktonMetropolitanCAAirport : Ind Airport ;
+
+  fun StoelmanseilandAirport : Ind Airport ;
+
+  fun StokkaSandnessjoenAirport : Ind Airport ;
+
+  fun StonyRapidsSKAirport : Ind Airport ;
+
+  fun StonyRiver2AKAirport : Ind Airport ;
+
+  fun StormLakeMunicipalIAAirport : Ind Airport ;
+
+  fun StornwayAirport : Ind Airport ;
+
+  fun StorumanAirport : Ind Airport ;
+
+  fun StradbrokeIslandQueenslandAirport : Ind Airport ;
+
+  fun StrahanTasmaniaAirport : Ind Airport ;
+
+  fun StromfjordAirBaseSondreStromfjordKangerlussuaqAirport : Ind Airport ;
+
+  fun StronsayAirport : Ind Airport ;
+
+  fun StrotherFieldKSAirport : Ind Airport ;
+
+  fun StroudMunicipalOKAirport : Ind Airport ;
+
+  fun StrugaAirport : Ind Airport ;
+
+  fun StrzhewoiAirport : Ind Airport ;
+
+  fun StuartIslandAirparkWAAirport : Ind Airport ;
+
+  fun StuartIslandWaterAerodromeBCAirport : Ind Airport ;
+
+  fun SturdeeBCAirport : Ind Airport ;
+
+  fun SturtCreekWesternAustraliaAirport : Ind Airport ;
+
+  fun SturupMalmoAirport : Ind Airport ;
+
+  fun StuttgartMunicipalARAirport : Ind Airport ;
+
+  fun StykkisholmurAirport : Ind Airport ;
+
+  fun SuWonCityAirport : Ind Airport ;
+
+  fun SuaiAirport : Ind Airport ;
+
+  fun SuavanaoAirport : Ind Airport ;
+
+  fun SuceavaAirport : Ind Airport ;
+
+  fun SucuaAirport : Ind Airport ;
+
+  fun SudburyONAirport : Ind Airport ;
+
+  fun SudureyriAirport : Ind Airport ;
+
+  fun SueIslandQueenslandAirport : Ind Airport ;
+
+  fun SuffieldABAirport : Ind Airport ;
+
+  fun SugapaAirport : Ind Airport ;
+
+  fun SugarLandMunicipalAirportHullFieldTXAirport : Ind Airport ;
+
+  fun SuiAirport : Ind Airport ;
+
+  fun SuiaMissuMTAirport : Ind Airport ;
+
+  fun SukiAirport : Ind Airport ;
+
+  fun SukkurAirport : Ind Airport ;
+
+  fun SulacoAirport : Ind Airport ;
+
+  fun SulayelAirport : Ind Airport ;
+
+  fun SuleAirport : Ind Airport ;
+
+  fun SullivanBayWaterAerodromeBCAirport : Ind Airport ;
+
+  fun SullivanCountyINAirport : Ind Airport ;
+
+  fun SullivanCountyInternationalNYAirport : Ind Airport ;
+
+  fun SullivanRegionalMOAirport : Ind Airport ;
+
+  fun SulphurSpringsMunicipalTXAirport : Ind Airport ;
+
+  fun SultanMahmudBadaruddinIIPalembangAirport : Ind Airport ;
+
+  fun SumbawaBesarSumbawaAirport : Ind Airport ;
+
+  fun SumbawangaAirport : Ind Airport ;
+
+  fun SumbeAirport : Ind Airport ;
+
+  fun SumburghShetlandIslandsAirport : Ind Airport ;
+
+  fun SumenepAirport : Ind Airport ;
+
+  fun SummerBeaverAirport : Ind Airport ;
+
+  fun SummerdaleNavalOutlyingFieldALAirport : Ind Airport ;
+
+  fun SummersidePEAirport : Ind Airport ;
+
+  fun SummitAKAirport : Ind Airport ;
+
+  fun SumterMunicipalSCAirport : Ind Airport ;
+
+  fun SumySumyAirport : Ind Airport ;
+
+  fun SunMoonLakeAirport : Ind Airport ;
+
+  fun SunRiverAirport : Ind Airport ;
+
+  fun SungShanTaipeiAirport : Ind Airport ;
+
+  fun SungalPakningAirport : Ind Airport ;
+
+  fun SungeiTiangAirport : Ind Airport ;
+
+  fun SunyaniAirport : Ind Airport ;
+
+  fun SupadioPontianakAirport : Ind Airport ;
+
+  fun SurAirport : Ind Airport ;
+
+  fun SuratAirport : Ind Airport ;
+
+  fun SuratThaniAirport : Ind Airport ;
+
+  fun SurfdaleAirport : Ind Airport ;
+
+  fun SurfersParadiseQueenslandAirport : Ind Airport ;
+
+  fun SurgutTyumenAirport : Ind Airport ;
+
+  fun SuriaAirport : Ind Airport ;
+
+  fun SurigaoAirport : Ind Airport ;
+
+  fun SurseeAirport : Ind Airport ;
+
+  fun SurtranBuildingMcDavidPontiacCompanyHeliportTXAirport : Ind Airport ;
+
+  fun SusanvilleMunicipalCAAirport : Ind Airport ;
+
+  fun SuzhouAirport : Ind Airport ;
+
+  fun SvartnesVardoVardoeAirport : Ind Airport ;
+
+  fun SvayRiengAirport : Ind Airport ;
+
+  fun SwakopmundAirport : Ind Airport ;
+
+  fun SwanHillVictoriaAirport : Ind Airport ;
+
+  fun SwanRiverMBAirport : Ind Airport ;
+
+  fun SwanseaWalesAirport : Ind Airport ;
+
+  fun SwiftCurrentSKAirport : Ind Airport ;
+
+  fun SwindonAirport : Ind Airport ;
+
+  fun SydneyNSAirport : Ind Airport ;
+
+  fun SyktyvkarKomiAirport : Ind Airport ;
+
+  fun SylvesterGAAirport : Ind Airport ;
+
+  fun SyracuseHancockInternationalNYAirport : Ind Airport ;
+
+  fun TabarkaAirport : Ind Airport ;
+
+  fun TabatingaAMAirport : Ind Airport ;
+
+  fun TabibugaAirport : Ind Airport ;
+
+  fun TabingPadangAirport : Ind Airport ;
+
+  fun TabiteueaNorthAirport : Ind Airport ;
+
+  fun TabiteueaSouthAirport : Ind Airport ;
+
+  fun TablasAirport : Ind Airport ;
+
+  fun TableRockHeliportMOAirport : Ind Airport ;
+
+  fun TablelandAirport : Ind Airport ;
+
+  fun TablondeTamaraAirport : Ind Airport ;
+
+  fun TaboraAirport : Ind Airport ;
+
+  fun TabouAirport : Ind Airport ;
+
+  fun TabrizAirport : Ind Airport ;
+
+  fun TabubilAirport : Ind Airport ;
+
+  fun TabukAirport : Ind Airport ;
+
+  fun TachilekAirport : Ind Airport ;
+
+  fun TaclobanAirport : Ind Airport ;
+
+  fun TacomaNarrowsWAAirport : Ind Airport ;
+
+  fun TacuaremboAirport : Ind Airport ;
+
+  fun TadjiAirport : Ind Airport ;
+
+  fun TadjouraAirport : Ind Airport ;
+
+  fun TadouleLakeMBAirport : Ind Airport ;
+
+  fun TadouleLakeWaterAerodromeMBAirport : Ind Airport ;
+
+  fun TaeguAirport : Ind Airport ;
+
+  fun TaejonAirport : Ind Airport ;
+
+  fun TafaroviAirport : Ind Airport ;
+
+  fun TaftanAirport : Ind Airport ;
+
+  fun TagbilaranAirport : Ind Airport ;
+
+  fun TaguacAirport : Ind Airport ;
+
+  fun TagulaAirport : Ind Airport ;
+
+  fun TaharoaAirport : Ind Airport ;
+
+  fun TahouaAirport : Ind Airport ;
+
+  fun TahsisWaterAerodromeBCAirport : Ind Airport ;
+
+  fun TaichungAirport : Ind Airport ;
+
+  fun TaifAirport : Ind Airport ;
+
+  fun TainanAirport : Ind Airport ;
+
+  fun TaipingAirport : Ind Airport ;
+
+  fun TaishaAirport : Ind Airport ;
+
+  fun TaitungAirport : Ind Airport ;
+
+  fun TakAirport : Ind Airport ;
+
+  fun TakamatsuAirport : Ind Airport ;
+
+  fun TakapotoAirport : Ind Airport ;
+
+  fun TakaroaAirport : Ind Airport ;
+
+  fun TakhliAirport : Ind Airport ;
+
+  fun TakoradiAirport : Ind Airport ;
+
+  fun TakotnaAKAirport : Ind Airport ;
+
+  fun TakuLodgeSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun TalaseaAirport : Ind Airport ;
+
+  fun TalcaAirport : Ind Airport ;
+
+  fun TaldyqorghanTaldyKurganTaldyqorghanAirport : Ind Airport ;
+
+  fun TaliabuAirport : Ind Airport ;
+
+  fun TalkeetnaAKAirport : Ind Airport ;
+
+  fun TalknafjordurAirport : Ind Airport ;
+
+  fun TallahasseeRegionalFLAirport : Ind Airport ;
+
+  fun TaltalAirport : Ind Airport ;
+
+  fun TaluqanAirport : Ind Airport ;
+
+  fun TamaleAirport : Ind Airport ;
+
+  fun TamanaAirport : Ind Airport ;
+
+  fun TamanrassetAirport : Ind Airport ;
+
+  fun TamarindoAirport : Ind Airport ;
+
+  fun TamataveAirport : Ind Airport ;
+
+  fun TambacoundaAirport : Ind Airport ;
+
+  fun TambaoAirport : Ind Airport ;
+
+  fun TambohoranoAirport : Ind Airport ;
+
+  fun TambolakaAirport : Ind Airport ;
+
+  fun TamborAirport : Ind Airport ;
+
+  fun TambovTambovAirport : Ind Airport ;
+
+  fun TamchakettAirport : Ind Airport ;
+
+  fun TameAirport : Ind Airport ;
+
+  fun TamkyAirport : Ind Airport ;
+
+  fun TampaInternationalFLAirport : Ind Airport ;
+
+  fun TamuinAirport : Ind Airport ;
+
+  fun TamworthNewSouthWalesAirport : Ind Airport ;
+
+  fun TanSonNhutInternationalHoChiMinhCitySaigonAirport : Ind Airport ;
+
+  fun TanacrossAKAirport : Ind Airport ;
+
+  fun TanahGrogotAirport : Ind Airport ;
+
+  fun TanahmerahAirport : Ind Airport ;
+
+  fun TanalianAKAirport : Ind Airport ;
+
+  fun TanandavaAirport : Ind Airport ;
+
+  fun TanatorajaAirport : Ind Airport ;
+
+  fun TanbarQueenslandAirport : Ind Airport ;
+
+  fun TandagAirport : Ind Airport ;
+
+  fun TandilAirport : Ind Airport ;
+
+  fun TanegashimaAirport : Ind Airport ;
+
+  fun TangaAirport : Ind Airport ;
+
+  fun TangaIslandAirport : Ind Airport ;
+
+  fun TangaloomaAirport : Ind Airport ;
+
+  fun TanjungAirport : Ind Airport ;
+
+  fun TanjungSelorBorneoAirport : Ind Airport ;
+
+  fun TannaIslandAirport : Ind Airport ;
+
+  fun TaosMunicipalNMAirport : Ind Airport ;
+
+  fun TapachulaAirport : Ind Airport ;
+
+  fun TapaktuanAirport : Ind Airport ;
+
+  fun TapetaAirport : Ind Airport ;
+
+  fun TaplejungAirport : Ind Airport ;
+
+  fun TaraQueenslandAirport : Ind Airport ;
+
+  fun TarakanBorneoAirport : Ind Airport ;
+
+  fun TarakbitsAirport : Ind Airport ;
+
+  fun TaramajimaAirport : Ind Airport ;
+
+  fun TarantoAirport : Ind Airport ;
+
+  fun TarapacaAirport : Ind Airport ;
+
+  fun TarapainaAirport : Ind Airport ;
+
+  fun TarapoaAirport : Ind Airport ;
+
+  fun TarapotoAirport : Ind Airport ;
+
+  fun TarauacaACAirport : Ind Airport ;
+
+  fun TarbelaAirport : Ind Airport ;
+
+  fun TarbesAirport : Ind Airport ;
+
+  fun TarcoolaSouthAustraliaAirport : Ind Airport ;
+
+  fun TareeNewSouthWalesAirport : Ind Airport ;
+
+  fun TarfayaAirport : Ind Airport ;
+
+  fun TargovishteAirport : Ind Airport ;
+
+  fun TariAirport : Ind Airport ;
+
+  fun TaroomQueenslandAirport : Ind Airport ;
+
+  fun TartuAirport : Ind Airport ;
+
+  fun TasikmalayaAirport : Ind Airport ;
+
+  fun TasiujuaqQCAirport : Ind Airport ;
+
+  fun TaskulAirport : Ind Airport ;
+
+  fun TasuWaterAerodromeBCAirport : Ind Airport ;
+
+  fun TatakotoAirport : Ind Airport ;
+
+  fun TatalinaLRRSAKAirport : Ind Airport ;
+
+  fun TatitlekSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun TatryPopradAirport : Ind Airport ;
+
+  fun TauSeaplaneBaseTauIslandAirport : Ind Airport ;
+
+  fun TaupoAirport : Ind Airport ;
+
+  fun TauramenaAirport : Ind Airport ;
+
+  fun TaurangaAirport : Ind Airport ;
+
+  fun TautaAirport : Ind Airport ;
+
+  fun TaveuniAirport : Ind Airport ;
+
+  fun TavoyAirport : Ind Airport ;
+
+  fun TawaTibetAirport : Ind Airport ;
+
+  fun TawauSabahAirport : Ind Airport ;
+
+  fun TawiTawiAirport : Ind Airport ;
+
+  fun TaylorAKAirport : Ind Airport ;
+
+  fun TaylorAZAirport : Ind Airport ;
+
+  fun TaylorCountyWIAirport : Ind Airport ;
+
+  fun TchibangaAirport : Ind Airport ;
+
+  fun TchienAirport : Ind Airport ;
+
+  fun TeAnauAirport : Ind Airport ;
+
+  fun TebessaAirport : Ind Airport ;
+
+  fun TeesSideAirport : Ind Airport ;
+
+  fun TefeMAAirport : Ind Airport ;
+
+  fun TegelBerlinAirport : Ind Airport ;
+
+  fun TehachapiMunicipalCAAirport : Ind Airport ;
+
+  fun TehuacanAirport : Ind Airport ;
+
+  fun TekaduAirport : Ind Airport ;
+
+  fun TekamahMunicipalNEAirport : Ind Airport ;
+
+  fun TekinAirport : Ind Airport ;
+
+  fun TelAvivAirport : Ind Airport ;
+
+  fun TelaAirport : Ind Airport ;
+
+  fun TelefominAirport : Ind Airport ;
+
+  fun TelegraphCreekAerodromeBCAirport : Ind Airport ;
+
+  fun TelemacoBorbaPRAirport : Ind Airport ;
+
+  fun TelfairWheelerGAAirport : Ind Airport ;
+
+  fun TelferWesternAustraliaAirport : Ind Airport ;
+
+  fun TelidaAKAirport : Ind Airport ;
+
+  fun TellerAKAirport : Ind Airport ;
+
+  fun TellurideCOAirport : Ind Airport ;
+
+  fun TellurideRegionalCOAirport : Ind Airport ;
+
+  fun TelupidAirport : Ind Airport ;
+
+  fun TeminabuanAirport : Ind Airport ;
+
+  fun TemoraNewSouthWalesAirport : Ind Airport ;
+
+  fun TempelhofBerlinAirport : Ind Airport ;
+
+  fun TemucoAirport : Ind Airport ;
+
+  fun TenakeeAirForceBaseAKAirport : Ind Airport ;
+
+  fun TenerifeCanaryIslandsAirport : Ind Airport ;
+
+  fun TengahRAFStationTengahAirport : Ind Airport ;
+
+  fun TenienteBenMatienzTucumanSanMiguelTucumanAirport : Ind Airport ;
+
+  fun TenienteJorgeHenrichArauzTrinidadAirport : Ind Airport ;
+
+  fun TenkodogoAirport : Ind Airport ;
+
+  fun TennantCreekNorthernTerritoryAirport : Ind Airport ;
+
+  fun TeofiloOtoniMGAirport : Ind Airport ;
+
+  fun TepicAirport : Ind Airport ;
+
+  fun TeptepAirport : Ind Airport ;
+
+  fun TerapoAirport : Ind Airport ;
+
+  fun TeresinaPIAirport : Ind Airport ;
+
+  fun TeresopolisRJAirport : Ind Airport ;
+
+  fun TermizTermesSurkhondaryoAirport : Ind Airport ;
+
+  fun TernateAirport : Ind Airport ;
+
+  fun TernopilTernopolTernopilAirport : Ind Airport ;
+
+  fun TerraceBCAirport : Ind Airport ;
+
+  fun TerraceBayONAirport : Ind Airport ;
+
+  fun TerrellMunicipalTXAirport : Ind Airport ;
+
+  fun TeslinYTAirport : Ind Airport ;
+
+  fun TesseneiAirport : Ind Airport ;
+
+  fun TeteAirport : Ind Airport ;
+
+  fun TetealaBaleineWaterAerodromeQCAirport : Ind Airport ;
+
+  fun TetebediAirport : Ind Airport ;
+
+  fun TeterboroNJAirport : Ind Airport ;
+
+  fun TetiaroaIslandAirport : Ind Airport ;
+
+  fun TetlinAKAirport : Ind Airport ;
+
+  fun TeugeDeventerAirport : Ind Airport ;
+
+  fun TewantinQueenslandAirport : Ind Airport ;
+
+  fun TexarkanaRegionalAirportWebbFieldARAirport : Ind Airport ;
+
+  fun TezpurAirport : Ind Airport ;
+
+  fun TezuAirport : Ind Airport ;
+
+  fun ThabaNchuAirport : Ind Airport ;
+
+  fun ThabaTsekaAirport : Ind Airport ;
+
+  fun ThakhekAirport : Ind Airport ;
+
+  fun ThakurgaonAirport : Ind Airport ;
+
+  fun ThangoolBiloelaQueenslandAirport : Ind Airport ;
+
+  fun ThanjavurAirport : Ind Airport ;
+
+  fun ThargomindahQueenslandAirport : Ind Airport ;
+
+  fun TheBightAirport : Ind Airport ;
+
+  fun TheONeillMunicipalAirportJohnLBakerFieldNEAirport : Ind Airport ;
+
+  fun ThePasMBAirport : Ind Airport ;
+
+  fun TheQueensAKAirport : Ind Airport ;
+
+  fun TheodoreFrancisGreenStateRIAirport : Ind Airport ;
+
+  fun TheodoreQueenslandAirport : Ind Airport ;
+
+  fun ThermalCAAirport : Ind Airport ;
+
+  fun ThicketPortageMBAirport : Ind Airport ;
+
+  fun ThiefRiverFallsRegionalMNAirport : Ind Airport ;
+
+  fun ThingeyriAirport : Ind Airport ;
+
+  fun ThistedAirport : Ind Airport ;
+
+  fun ThohoyandouVendaAirport : Ind Airport ;
+
+  fun ThomasvilleMunicipalGAAirport : Ind Airport ;
+
+  fun ThompsonFallsMTAirport : Ind Airport ;
+
+  fun ThompsonMBAirport : Ind Airport ;
+
+  fun ThorshofnAirport : Ind Airport ;
+
+  fun ThredboNewSouthWalesAirport : Ind Airport ;
+
+  fun ThuleAirBaseThuleAirport : Ind Airport ;
+
+  fun ThumraitAirport : Ind Airport ;
+
+  fun ThunderBayONAirport : Ind Airport ;
+
+  fun ThylungraQueenslandAirport : Ind Airport ;
+
+  fun ThynaSfaxAirport : Ind Airport ;
+
+  fun TibooburraNewSouthWalesAirport : Ind Airport ;
+
+  fun TibuAirport : Ind Airport ;
+
+  fun TichittAirport : Ind Airport ;
+
+  fun TidjikjaAirport : Ind Airport ;
+
+  fun TigaAirport : Ind Airport ;
+
+  fun TignesAirport : Ind Airport ;
+
+  fun TikalAirport : Ind Airport ;
+
+  fun TikapurAirport : Ind Airport ;
+
+  fun TikehauAtollAirport : Ind Airport ;
+
+  fun TikoAirport : Ind Airport ;
+
+  fun TilfalminAirport : Ind Airport ;
+
+  fun TilinAirport : Ind Airport ;
+
+  fun TimaruAirport : Ind Airport ;
+
+  fun TimbaubaPEAirport : Ind Airport ;
+
+  fun TimbedraAirport : Ind Airport ;
+
+  fun TimberCreekAirport : Ind Airport ;
+
+  fun TimbiquiAirport : Ind Airport ;
+
+  fun TimbunkeAirport : Ind Airport ;
+
+  fun TimikaTimukaTembagapuraNewGuineaAirport : Ind Airport ;
+
+  fun TimimounAirport : Ind Airport ;
+
+  fun TimminsONAirport : Ind Airport ;
+
+  fun TinCityLRRSAKAirport : Ind Airport ;
+
+  fun TinakTinakAirport : Ind Airport ;
+
+  fun TindoufAirport : Ind Airport ;
+
+  fun TingoMariaAirport : Ind Airport ;
+
+  fun TingwallShetlandIslandsAirport : Ind Airport ;
+
+  fun TingwonAirport : Ind Airport ;
+
+  fun TinkerAirForceBaseOKAirport : Ind Airport ;
+
+  fun TiogaMunicipalNDAirport : Ind Airport ;
+
+  fun TiomNewGuineaAirport : Ind Airport ;
+
+  fun TiomanAirport : Ind Airport ;
+
+  fun TippiAirport : Ind Airport ;
+
+  fun TiputiniAirport : Ind Airport ;
+
+  fun TiranaAirport : Ind Airport ;
+
+  fun TireeIslandAirport : Ind Airport ;
+
+  fun TirinkotAirport : Ind Airport ;
+
+  fun TiruchirapallyAirport : Ind Airport ;
+
+  fun TirupatiAirport : Ind Airport ;
+
+  fun TisdaleAerodromeSKAirport : Ind Airport ;
+
+  fun TivatAirport : Ind Airport ;
+
+  fun TiziminAirport : Ind Airport ;
+
+  fun TlokoengAirport : Ind Airport ;
+
+  fun TobermoryAirport : Ind Airport ;
+
+  fun TobolskTyumenAirport : Ind Airport ;
+
+  fun TobrukAirport : Ind Airport ;
+
+  fun TocacheAirport : Ind Airport ;
+
+  fun ToccoaRGLetourneauFieldGAAirport : Ind Airport ;
+
+  fun TocoaAirport : Ind Airport ;
+
+  fun TocopillaAirport : Ind Airport ;
+
+  fun TocumwalNewSouthWalesAirport : Ind Airport ;
+
+  fun TofinoBCAirport : Ind Airport ;
+
+  fun TofinoWaterAerodromeBCAirport : Ind Airport ;
+
+  fun TogiakAKAirport : Ind Airport ;
+
+  fun TokAKAirport : Ind Airport ;
+
+  fun TokeenSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun TokoinLomeAirport : Ind Airport ;
+
+  fun ToksookBayAKAirport : Ind Airport ;
+
+  fun TokunoShimaAirport : Ind Airport ;
+
+  fun TokushimaAirport : Ind Airport ;
+
+  fun TolAirport : Ind Airport ;
+
+  fun ToledoAirportWinlockEdCarlsonMemorialFieldWAAirport : Ind Airport ;
+
+  fun ToledoExpressOHAirport : Ind Airport ;
+
+  fun ToledoPRAirport : Ind Airport ;
+
+  fun TolitoliAirport : Ind Airport ;
+
+  fun TolmachevoNovosibirskAirport : Ind Airport ;
+
+  fun ToluAirport : Ind Airport ;
+
+  fun TomOConnerTXAirport : Ind Airport ;
+
+  fun TomPriceWesternAustraliaAirport : Ind Airport ;
+
+  fun TomanggongAirport : Ind Airport ;
+
+  fun TomasGuardiaLiberiaAirport : Ind Airport ;
+
+  fun TombouctouAirport : Ind Airport ;
+
+  fun TompkinsvilleMonroeCountyKYAirport : Ind Airport ;
+
+  fun ToncontinTegucigalpaAirport : Ind Airport ;
+
+  fun TonghuaAirport : Ind Airport ;
+
+  fun TongliaoAirport : Ind Airport ;
+
+  fun TongoaAirport : Ind Airport ;
+
+  fun TonopahNVAirport : Ind Airport ;
+
+  fun TonopahTestRangeNVAirport : Ind Airport ;
+
+  fun TonuAirport : Ind Airport ;
+
+  fun ToowoombaQueenslandAirport : Ind Airport ;
+
+  fun TorokinaAirport : Ind Airport ;
+
+  fun TorontoDowntownHeliportONAirport : Ind Airport ;
+
+  fun TorontoIslandONAirport : Ind Airport ;
+
+  fun TororoAirport : Ind Airport ;
+
+  fun TorpSandefjordAirport : Ind Airport ;
+
+  fun TorranceMunicipalCAAirport : Ind Airport ;
+
+  fun TorrejonAirForceBaseMadridAirport : Ind Airport ;
+
+  fun TorremolinosAirport : Ind Airport ;
+
+  fun TorreonAirport : Ind Airport ;
+
+  fun TorresAirport : Ind Airport ;
+
+  fun TorringtonMunicipalWYAirport : Ind Airport ;
+
+  fun TortoliSardiniaAirport : Ind Airport ;
+
+  fun TortuqueroAirport : Ind Airport ;
+
+  fun TorwoodQueenslandAirport : Ind Airport ;
+
+  fun TotnessAirport : Ind Airport ;
+
+  fun TottoriAirport : Ind Airport ;
+
+  fun ToubaAirport : Ind Airport ;
+
+  fun TouganAirport : Ind Airport ;
+
+  fun TouhoAirport : Ind Airport ;
+
+  fun ToussusLeNobleAirport : Ind Airport ;
+
+  fun TownsvilleQueenslandAirport : Ind Airport ;
+
+  fun ToyamaAirport : Ind Airport ;
+
+  fun TrabzonAirBaseTrabzonAirport : Ind Airport ;
+
+  fun TracyMunicipalCAAirport : Ind Airport ;
+
+  fun TradewindTXAirport : Ind Airport ;
+
+  fun TrangAirport : Ind Airport ;
+
+  fun TrapaniAirport : Ind Airport ;
+
+  fun TraralgonVictoriaAirport : Ind Airport ;
+
+  fun TravisAirForceBaseCAAirport : Ind Airport ;
+
+  fun TreasureCayAbacoAirport : Ind Airport ;
+
+  fun TreePointAKAirport : Ind Airport ;
+
+  fun TreintayTresAirport : Ind Airport ;
+
+  fun TremontonMunicipalUTAirport : Ind Airport ;
+
+  fun TrentLottInternationalMSAirport : Ind Airport ;
+
+  fun TrentonMunicipalMOAirport : Ind Airport ;
+
+  fun TrentonONAirport : Ind Airport ;
+
+  fun TresArroyosAirport : Ind Airport ;
+
+  fun TresCoracoesMGAirport : Ind Airport ;
+
+  fun TresEsquinasAirport : Ind Airport ;
+
+  fun TresLagoasMTAirport : Ind Airport ;
+
+  fun TresRiosRJAirport : Ind Airport ;
+
+  fun TriCitiesWAAirport : Ind Airport ;
+
+  fun TriCityInternationalMIAirport : Ind Airport ;
+
+  fun TriCityKSAirport : Ind Airport ;
+
+  fun TriCityRegionalTNAirport : Ind Airport ;
+
+  fun TriCountyRegionalWIAirport : Ind Airport ;
+
+  fun TrigodeMoraisAirport : Ind Airport ;
+
+  fun TrincomaleeAirport : Ind Airport ;
+
+  fun TrinidadAirport : Ind Airport ;
+
+  fun TrinidadAirportColombia : Ind Airport ;
+
+  fun TripleIslandBCAirport : Ind Airport ;
+
+  fun TrissinoVicenzaAirport : Ind Airport ;
+
+  fun TroisRivieresQCAirport : Ind Airport ;
+
+  fun TrollhattanAirport : Ind Airport ;
+
+  fun TronaCAAirport : Ind Airport ;
+
+  fun TroyMunicipalALAirport : Ind Airport ;
+
+  fun TruckeeTahoeCAAirport : Ind Airport ;
+
+  fun TrujilloAirport : Ind Airport ;
+
+  fun TrujilloAirportHonduras : Ind Airport ;
+
+  fun TruthorConsequencesMunicipalNMAirport : Ind Airport ;
+
+  fun TsaratananaAirport : Ind Airport ;
+
+  fun TsentrainyOdesaAirport : Ind Airport ;
+
+  fun TsewiAirport : Ind Airport ;
+
+  fun TshikapaAirport : Ind Airport ;
+
+  fun TshipiseAirport : Ind Airport ;
+
+  fun TsiliTsiliAirport : Ind Airport ;
+
+  fun TsiroanomandidyAirport : Ind Airport ;
+
+  fun TsumebAirport : Ind Airport ;
+
+  fun TsushimaAirport : Ind Airport ;
+
+  fun TubaCityAZAirport : Ind Airport ;
+
+  fun TubalaAirport : Ind Airport ;
+
+  fun TubuaiTubuaiIslandsAirport : Ind Airport ;
+
+  fun TucsonInternationalAZAirport : Ind Airport ;
+
+  fun TucumaAirport : Ind Airport ;
+
+  fun TucumcariMunicipalNMAirport : Ind Airport ;
+
+  fun TucupitaAirport : Ind Airport ;
+
+  fun TucuruiPAAirport : Ind Airport ;
+
+  fun TufiAirport : Ind Airport ;
+
+  fun TuguegaraoAirport : Ind Airport ;
+
+  fun TuktoyaktukNTAirport : Ind Airport ;
+
+  fun TulagiAirport : Ind Airport ;
+
+  fun TulceaAirport : Ind Airport ;
+
+  fun TulearAirport : Ind Airport ;
+
+  fun TuliLodgeAirport : Ind Airport ;
+
+  fun TullahomaRegionalAirportWmNorthernFieldTNAirport : Ind Airport ;
+
+  fun TullamarineInternationalVictoriaAirport : Ind Airport ;
+
+  fun TulsaInternationalOKAirport : Ind Airport ;
+
+  fun TuluaAirport : Ind Airport ;
+
+  fun TulugakAirport : Ind Airport ;
+
+  fun TuluksakAKAirport : Ind Airport ;
+
+  fun TulumAirport : Ind Airport ;
+
+  fun TumAirport : Ind Airport ;
+
+  fun TumacoAirport : Ind Airport ;
+
+  fun TumbangSambaAirport : Ind Airport ;
+
+  fun TumbesAirport : Ind Airport ;
+
+  fun TumblerRidgeAerodromeBCAirport : Ind Airport ;
+
+  fun TumeremoAirport : Ind Airport ;
+
+  fun TumlingtarAirport : Ind Airport ;
+
+  fun TumolbilAirport : Ind Airport ;
+
+  fun TumutNewSouthWalesAirport : Ind Airport ;
+
+  fun TuntatuliakAKAirport : Ind Airport ;
+
+  fun TununakAKAirport : Ind Airport ;
+
+  fun TunxiAirport : Ind Airport ;
+
+  fun TupeloMunicipalCDLemonsMSAirport : Ind Airport ;
+
+  fun TupileAirport : Ind Airport ;
+
+  fun TuraifAirport : Ind Airport ;
+
+  fun TurbatAirport : Ind Airport ;
+
+  fun TurboAirport : Ind Airport ;
+
+  fun TureiaAirport : Ind Airport ;
+
+  fun TurkeyCreekWesternAustraliaAirport : Ind Airport ;
+
+  fun TurkuAirport : Ind Airport ;
+
+  fun TurtleIslandAirport : Ind Airport ;
+
+  fun TuscaloosaMunicipalALAirport : Ind Airport ;
+
+  fun TustinMarineCorpsAirStationCAAirport : Ind Airport ;
+
+  fun TuxpanAirport : Ind Airport ;
+
+  fun TuxtlaGutierrezAirport : Ind Airport ;
+
+  fun TuyHoaAirport : Ind Airport ;
+
+  fun TwentyninePalmsCAAirport : Ind Airport ;
+
+  fun TwentyninePalmsEAFMarineCorpsAirGroundCombatCenterCAAirport : Ind Airport ;
+
+  fun TwinFallsSunValleyRegionalAirportJoslinFieldIDAirport : Ind Airport ;
+
+  fun TwinHillsAKAirport : Ind Airport ;
+
+  fun TwoHarborsAmphibiousTerminalCAAirport : Ind Airport ;
+
+  fun TylerPoundsFieldTXAirport : Ind Airport ;
+
+  fun TyndallAirForceBaseFLAirport : Ind Airport ;
+
+  fun TyonekAKAirport : Ind Airport ;
+
+  fun TzaneenAirport : Ind Airport ;
+
+  fun USCoastGuardGuamAirport : Ind Airport ;
+
+  fun UaHukaMarquesasIslandsAirport : Ind Airport ;
+
+  fun UaPuMarquesasIslandsAirport : Ind Airport ;
+
+  fun UaxactunAirport : Ind Airport ;
+
+  fun UbatubaAirport : Ind Airport ;
+
+  fun UbeAirport : Ind Airport ;
+
+  fun UberabaMGAirport : Ind Airport ;
+
+  fun UberlandiaMGAirport : Ind Airport ;
+
+  fun UbonRatchathniAirport : Ind Airport ;
+
+  fun UchizaAirport : Ind Airport ;
+
+  fun UdaipurAirport : Ind Airport ;
+
+  fun UdomxayAirport : Ind Airport ;
+
+  fun UdonThaniAirport : Ind Airport ;
+
+  fun UfaBashkortostanAirport : Ind Airport ;
+
+  fun UganikAKAirport : Ind Airport ;
+
+  fun UgashikBayAKAirport : Ind Airport ;
+
+  fun UgashikNewAKAirport : Ind Airport ;
+
+  fun UgnuKuparukAKAirport : Ind Airport ;
+
+  fun UherskeHradisteAirport : Ind Airport ;
+
+  fun UigeAirport : Ind Airport ;
+
+  fun UjaeIslandAirport : Ind Airport ;
+
+  fun UkiahMunicipalCAAirport : Ind Airport ;
+
+  fun UlKmarsAirport : Ind Airport ;
+
+  fun UlanBatorAirport : Ind Airport ;
+
+  fun UleiAirport : Ind Airport ;
+
+  fun UlithiUlithiIslandAirport : Ind Airport ;
+
+  fun UlmAirport : Ind Airport ;
+
+  fun UlsanAirport : Ind Airport ;
+
+  fun UlundiAirport : Ind Airport ;
+
+  fun UmbaAirport : Ind Airport ;
+
+  fun UmeaAirport : Ind Airport ;
+
+  fun UmiatAKAirport : Ind Airport ;
+
+  fun UmiujaqQCAirport : Ind Airport ;
+
+  fun UmmAlquwainAirport : Ind Airport ;
+
+  fun UmnakAKAirport : Ind Airport ;
+
+  fun UmnakIslandAKAirport : Ind Airport ;
+
+  fun UmtataTranskeiAirport : Ind Airport ;
+
+  fun UmuaramaPRAirport : Ind Airport ;
+
+  fun UnalakleetAKAirport : Ind Airport ;
+
+  fun UnayzahAirport : Ind Airport ;
+
+  fun UndarraAirport : Ind Airport ;
+
+  fun UnguiaAirport : Ind Airport ;
+
+  fun UniaodoVitoriaPRAirport : Ind Airport ;
+
+  fun UnionIslandAirport : Ind Airport ;
+
+  fun UniversityOxfordMSAirport : Ind Airport ;
+
+  fun UniversityParkPAAirport : Ind Airport ;
+
+  fun UniversityofOklahomaWestheimerOKAirport : Ind Airport ;
+
+  fun UnstShetlandIslandsAirport : Ind Airport ;
+
+  fun UpalaAirport : Ind Airport ;
+
+  fun UpavonEnglandAirport : Ind Airport ;
+
+  fun UpiaraAirport : Ind Airport ;
+
+  fun UpingtonAirport : Ind Airport ;
+
+  fun UpoluHIAirport : Ind Airport ;
+
+  fun UpperHeyfordRAFStationEnglandAirport : Ind Airport ;
+
+  fun UraniumCitySKAirport : Ind Airport ;
+
+  fun UrgenchKarakalpakstanAirport : Ind Airport ;
+
+  fun UrgoonAirport : Ind Airport ;
+
+  fun UribeAirport : Ind Airport ;
+
+  fun UrimanAirport : Ind Airport ;
+
+  fun UrmiehAirport : Ind Airport ;
+
+  fun UrraoAirport : Ind Airport ;
+
+  fun UruapanAirport : Ind Airport ;
+
+  fun UrubupungaMTAirport : Ind Airport ;
+
+  fun UruzganAirport : Ind Airport ;
+
+  fun UselessLoopWesternAustraliaAirport : Ind Airport ;
+
+  fun UshuaiaAirport : Ind Airport ;
+
+  fun UsinoAirport : Ind Airport ;
+
+  fun UsinskAirport : Ind Airport ;
+
+  fun UstIlimskIrkutskAirport : Ind Airport ;
+
+  fun UstUkhtaKomiAirport : Ind Airport ;
+
+  fun UstuopAirport : Ind Airport ;
+
+  fun UtilaIslandAirport : Ind Airport ;
+
+  fun UtirikIslandUtirikAirport : Ind Airport ;
+
+  fun UtsunomiyaAirport : Ind Airport ;
+
+  fun UttaraditAirport : Ind Airport ;
+
+  fun UummannaqAirport : Ind Airport ;
+
+  fun UvolAirport : Ind Airport ;
+
+  fun UzhgorodZakarpatskaTranscarpathiaAirport : Ind Airport ;
+
+  fun VaasaAirport : Ind Airport ;
+
+  fun VadsoeVadsoAirport : Ind Airport ;
+
+  fun VaernesTrondheimAirport : Ind Airport ;
+
+  fun VaeroyAirport : Ind Airport ;
+
+  fun VahitahiAirport : Ind Airport ;
+
+  fun VailJunctionHeliportCOAirport : Ind Airport ;
+
+  fun ValbonneAirport : Ind Airport ;
+
+  fun ValchetaAirport : Ind Airport ;
+
+  fun ValdIsereAirport : Ind Airport ;
+
+  fun ValdOrQCAirport : Ind Airport ;
+
+  fun ValdepenasAirport : Ind Airport ;
+
+  fun ValdezAKAirport : Ind Airport ;
+
+  fun ValdiviaAirport : Ind Airport ;
+
+  fun ValdostaRegionalGAAirport : Ind Airport ;
+
+  fun ValencaBAAirport : Ind Airport ;
+
+  fun ValenceAirport : Ind Airport ;
+
+  fun ValenciaAirport : Ind Airport ;
+
+  fun ValeraAirport : Ind Airport ;
+
+  fun ValesdirAirport : Ind Airport ;
+
+  fun ValladolidAirport : Ind Airport ;
+
+  fun ValledePascuaAirport : Ind Airport ;
+
+  fun ValleduparAirport : Ind Airport ;
+
+  fun VallejoAirport : Ind Airport ;
+
+  fun VallenarAirport : Ind Airport ;
+
+  fun VallesAirport : Ind Airport ;
+
+  fun ValparaisoAirport : Ind Airport ;
+
+  fun ValverdeAirport : Ind Airport ;
+
+  fun VanAirport : Ind Airport ;
+
+  fun VanNuysCAAirport : Ind Airport ;
+
+  fun VanWertCountyOHAirport : Ind Airport ;
+
+  fun VancouverInternationalBCAirport : Ind Airport ;
+
+  fun VandaliaMunicipalILAirport : Ind Airport ;
+
+  fun VandenbergAirForceBaseCAAirport : Ind Airport ;
+
+  fun VangriengAirport : Ind Airport ;
+
+  fun VanimoAirport : Ind Airport ;
+
+  fun VanjiAirport : Ind Airport ;
+
+  fun VannesAirport : Ind Airport ;
+
+  fun VanrookQueenslandAirport : Ind Airport ;
+
+  fun VanuabalavuAirport : Ind Airport ;
+
+  fun VaraderoAirport : Ind Airport ;
+
+  fun VaranasiAirport : Ind Airport ;
+
+  fun VarginhaMGAirport : Ind Airport ;
+
+  fun VarkausAirport : Ind Airport ;
+
+  fun VarnaAirport : Ind Airport ;
+
+  fun VarrelbuschAirport : Ind Airport ;
+
+  fun VasquezCoboLeticiaAirport : Ind Airport ;
+
+  fun VastervikAirport : Ind Airport ;
+
+  fun VatomandryAirport : Ind Airport ;
+
+  fun VatukoulaAirport : Ind Airport ;
+
+  fun VatuleleAirport : Ind Airport ;
+
+  fun VaxjoAirport : Ind Airport ;
+
+  fun VejleAirport : Ind Airport ;
+
+  fun VelikiyeLukiPskovAirport : Ind Airport ;
+
+  fun VelikiyeLukiWelikijeLukiPskovAirport : Ind Airport ;
+
+  fun VenetieAKAirport : Ind Airport ;
+
+  fun VeniceMunicipalFLAirport : Ind Airport ;
+
+  fun VermilionABAirport : Ind Airport ;
+
+  fun VernalUTAirport : Ind Airport ;
+
+  fun VernonAerodromeBCAirport : Ind Airport ;
+
+  fun VeroBeachMunicipalFLAirport : Ind Airport ;
+
+  fun VersaillesAirport : Ind Airport ;
+
+  fun VestmannaeyjarAirport : Ind Airport ;
+
+  fun VichaderoAirport : Ind Airport ;
+
+  fun VicksburgMunicipalMSAirport : Ind Airport ;
+
+  fun VictoriaAirportCameroon : Ind Airport ;
+
+  fun VictoriaAirportChile : Ind Airport ;
+
+  fun VictoriaAirportHonduras : Ind Airport ;
+
+  fun VictoriaFallsAirport : Ind Airport ;
+
+  fun VictoriaInnerHarbourWaterAerodromeBCAirport : Ind Airport ;
+
+  fun VictoriaInternationalBCAirport : Ind Airport ;
+
+  fun VictoriaRegionalTXAirport : Ind Airport ;
+
+  fun VictoriaRiverDownsNorthernTerritoryAirport : Ind Airport ;
+
+  fun VictoriaSTOLportQCAirport : Ind Airport ;
+
+  fun VictoriadelasTunasAirport : Ind Airport ;
+
+  fun VidaliaMunicipalGAAirport : Ind Airport ;
+
+  fun VidinAirport : Ind Airport ;
+
+  fun VidrasauTirguMuresAirport : Ind Airport ;
+
+  fun ViequesViequesAirport : Ind Airport ;
+
+  fun ViewCoveAKAirport : Ind Airport ;
+
+  fun ViganAirport : Ind Airport ;
+
+  fun VigieStLuciaCastriesAirport : Ind Airport ;
+
+  fun VigoAirport : Ind Airport ;
+
+  fun VijayawadaAirport : Ind Airport ;
+
+  fun VilaJunqueiroAirport : Ind Airport ;
+
+  fun VilaRealAirport : Ind Airport ;
+
+  fun VilaRicaAirport : Ind Airport ;
+
+  fun VilaVelhoESAirport : Ind Airport ;
+
+  fun VilanculosAirport : Ind Airport ;
+
+  fun VilhelminaAirport : Ind Airport ;
+
+  fun VillaConstitucionAirport : Ind Airport ;
+
+  fun VillaDoloresAirport : Ind Airport ;
+
+  fun VillaGesellAirport : Ind Airport ;
+
+  fun VillaMercedesAirport : Ind Airport ;
+
+  fun VillaMontesAirport : Ind Airport ;
+
+  fun VillafrancaVeronaAirport : Ind Airport ;
+
+  fun VillagarzonAirport : Ind Airport ;
+
+  fun VilniusAirport : Ind Airport ;
+
+  fun VinhLongAirport : Ind Airport ;
+
+  fun VinnytsyaVinnytsyaAirport : Ind Airport ;
+
+  fun VintonVeteransMemorialAirparkIAAirport : Ind Airport ;
+
+  fun ViquequeAirport : Ind Airport ;
+
+  fun ViracAirport : Ind Airport ;
+
+  fun ViracoposSPAirport : Ind Airport ;
+
+  fun VirginGordaNavalStationVirginGordaAirport : Ind Airport ;
+
+  fun VirginGordaValleyVirginGordaAirport : Ind Airport ;
+
+  fun VirginIslandsSeaplaneBaseVirginIslandsAirport : Ind Airport ;
+
+  fun VirginiaHighlandsVAAirport : Ind Airport ;
+
+  fun ViruAirport : Ind Airport ;
+
+  fun ViruViruInternationalSantaCruzAirport : Ind Airport ;
+
+  fun VisaliaMunicipalCAAirport : Ind Airport ;
+
+  fun VisbyAirport : Ind Airport ;
+
+  fun ViseuAirport : Ind Airport ;
+
+  fun VishakhapatnamAirport : Ind Airport ;
+
+  fun VitoriaAirport : Ind Airport ;
+
+  fun VitoriaESAirport : Ind Airport ;
+
+  fun VitoriadaConquistaBAAirport : Ind Airport ;
+
+  fun VitsyebskVitebskVitsyebskAirport : Ind Airport ;
+
+  fun VittelAirport : Ind Airport ;
+
+  fun ViviganiAirport : Ind Airport ;
+
+  fun VizagAirport : Ind Airport ;
+
+  fun VladikavkazNorthOssetiaAirport : Ind Airport ;
+
+  fun VladivostokPrimoryeAirport : Ind Airport ;
+
+  fun VnukovoMoscowAirport : Ind Airport ;
+
+  fun VogensSkrydstrupAirport : Ind Airport ;
+
+  fun VohemarAirport : Ind Airport ;
+
+  fun VoinjamaAirport : Ind Airport ;
+
+  fun VolgodonskRostovAirport : Ind Airport ;
+
+  fun VolgogradStalingradVolgogradAirport : Ind Airport ;
+
+  fun VolkFieldWIAirport : Ind Airport ;
+
+  fun VolosAirport : Ind Airport ;
+
+  fun VolovanAirport : Ind Airport ;
+
+  fun VoltaRedondaRJAirport : Ind Airport ;
+
+  fun VopnafjordurAirport : Ind Airport ;
+
+  fun VorkutaKomiAirport : Ind Airport ;
+
+  fun VoronezhVoronezhAirport : Ind Airport ;
+
+  fun VotuporangaSPAirport : Ind Airport ;
+
+  fun VrajdebnaSofiaAirport : Ind Airport ;
+
+  fun VredendalAirport : Ind Airport ;
+
+  fun VryburgAirport : Ind Airport ;
+
+  fun VryheidAirport : Ind Airport ;
+
+  fun WabagAirport : Ind Airport ;
+
+  fun WaboAirport : Ind Airport ;
+
+  fun WabushNFAirport : Ind Airport ;
+
+  fun WacaAirport : Ind Airport ;
+
+  fun WaddingtonRAFStationEnglandAirport : Ind Airport ;
+
+  fun WadiAdDawasirAirport : Ind Airport ;
+
+  fun WadiAinAirport : Ind Airport ;
+
+  fun WadiHalfaAirport : Ind Airport ;
+
+  fun WagetheAirport : Ind Airport ;
+
+  fun WaggaWaggaNewSouthWalesAirport : Ind Airport ;
+
+  fun WagnyAirport : Ind Airport ;
+
+  fun WaikoloaHIAirport : Ind Airport ;
+
+  fun WaimeaKohalaHIAirport : Ind Airport ;
+
+  fun WaingapuAirport : Ind Airport ;
+
+  fun WainwrightABAirport : Ind Airport ;
+
+  fun WaitangiAirport : Ind Airport ;
+
+  fun WajirAirport : Ind Airport ;
+
+  fun WakunaiAirport : Ind Airport ;
+
+  fun WalahaAirport : Ind Airport ;
+
+  fun WalchaNewSouthWalesAirport : Ind Airport ;
+
+  fun WalesAKAirport : Ind Airport ;
+
+  fun WalgettNewSouthWalesAirport : Ind Airport ;
+
+  fun WalkersCayAbacoAirport : Ind Airport ;
+
+  fun WallStSeaplaneDockNYAirport : Ind Airport ;
+
+  fun WallalAirport : Ind Airport ;
+
+  fun WalterboroMunicipalSCAirport : Ind Airport ;
+
+  fun WalvisBayAirport : Ind Airport ;
+
+  fun WamenaAirport : Ind Airport ;
+
+  fun WanaAirport : Ind Airport ;
+
+  fun WanakaAirport : Ind Airport ;
+
+  fun WandoAirport : Ind Airport ;
+
+  fun WanganuiAirport : Ind Airport ;
+
+  fun WangarattaVictoriaAirport : Ind Airport ;
+
+  fun WantoatAirport : Ind Airport ;
+
+  fun WanumaAirport : Ind Airport ;
+
+  fun WanxianSichuanAirport : Ind Airport ;
+
+  fun WapenamandaAirport : Ind Airport ;
+
+  fun WarderAirport : Ind Airport ;
+
+  fun WareMAAirport : Ind Airport ;
+
+  fun WarisAirport : Ind Airport ;
+
+  fun WarminsterNADCPAAirport : Ind Airport ;
+
+  fun WarraberIslandQueenslandAirport : Ind Airport ;
+
+  fun WarracknabealVictoriaAirport : Ind Airport ;
+
+  fun WarramboorMtKeithWesternAustraliaAirport : Ind Airport ;
+
+  fun WarranagineWesternAustraliaAirport : Ind Airport ;
+
+  fun WarrangalAirport : Ind Airport ;
+
+  fun WarrenCountyMemorialTNAirport : Ind Airport ;
+
+  fun WarrenFieldNCAirport : Ind Airport ;
+
+  fun WarrenNewSouthWalesAirport : Ind Airport ;
+
+  fun WarrnamboolVictoriaAirport : Ind Airport ;
+
+  fun WarroadInternationalAirportSwedeCarlsonFieldMNAirport : Ind Airport ;
+
+  fun WarwickQueenslandAirport : Ind Airport ;
+
+  fun WashaboAirport : Ind Airport ;
+
+  fun WashingtonCountyPAAirport : Ind Airport ;
+
+  fun WasillaAKAirport : Ind Airport ;
+
+  fun WasiorAirport : Ind Airport ;
+
+  fun WaskaganishQCAirport : Ind Airport ;
+
+  fun WasuAirport : Ind Airport ;
+
+  fun WasuaAirport : Ind Airport ;
+
+  fun WaterburyOxfordCTAirport : Ind Airport ;
+
+  fun WaterfordAirport : Ind Airport ;
+
+  fun WaterlooNorthernTerritoryAirport : Ind Airport ;
+
+  fun WatertownMunicipalWIAirport : Ind Airport ;
+
+  fun WatervilleRobertLafleurMEAirport : Ind Airport ;
+
+  fun WatsonLakeYTAirport : Ind Airport ;
+
+  fun WatsonvilleMunicipalCAAirport : Ind Airport ;
+
+  fun WattayVientianeAirport : Ind Airport ;
+
+  fun WauAirport : Ind Airport ;
+
+  fun WauAirportSudan : Ind Airport ;
+
+  fun WauchopeNewSouthWalesAirport : Ind Airport ;
+
+  fun WaukeganRegionalILAirport : Ind Airport ;
+
+  fun WaukeshaCountyWIAirport : Ind Airport ;
+
+  fun WaukonMunicipalIAAirport : Ind Airport ;
+
+  fun WaveHillNorthernTerritoryAirport : Ind Airport ;
+
+  fun WaverneyAirport : Ind Airport ;
+
+  fun WawaONAirport : Ind Airport ;
+
+  fun WawoiFallsAirport : Ind Airport ;
+
+  fun WeagamowLakeONAirport : Ind Airport ;
+
+  fun WeamAirport : Ind Airport ;
+
+  fun WeasuaAirport : Ind Airport ;
+
+  fun WebequieONAirport : Ind Airport ;
+
+  fun WedauAirport : Ind Airport ;
+
+  fun WeeWaaNewSouthWalesAirport : Ind Airport ;
+
+  fun WeifangAirport : Ind Airport ;
+
+  fun WeihaiAirport : Ind Airport ;
+
+  fun WeipaQueenslandAirport : Ind Airport ;
+
+  fun WelkomAirport : Ind Airport ;
+
+  fun WelshpoolVictoriaAirport : Ind Airport ;
+
+  fun WemindjiQCAirport : Ind Airport ;
+
+  fun WenzhouAirport : Ind Airport ;
+
+  fun WerurAirport : Ind Airport ;
+
+  fun WespamAirport : Ind Airport ;
+
+  fun WestEndAirport : Ind Airport ;
+
+  fun WestEndTortolaAirport : Ind Airport ;
+
+  fun WestHoustonTXAirport : Ind Airport ;
+
+  fun WestKaviAKAirport : Ind Airport ;
+
+  fun WestKuparukAKAirport : Ind Airport ;
+
+  fun WestMallingEnglandAirport : Ind Airport ;
+
+  fun WestPlainsMunicipalMOAirport : Ind Airport ;
+
+  fun WestSaleVictoriaAirport : Ind Airport ;
+
+  fun WestTinianTinianPeipeinimaruAirport : Ind Airport ;
+
+  fun WestWoodwardOKAirport : Ind Airport ;
+
+  fun WestWyalongNewSouthWalesAirport : Ind Airport ;
+
+  fun WesterlyStateRIAirport : Ind Airport ;
+
+  fun WestmorelandCountyPAAirport : Ind Airport ;
+
+  fun WestportAirport : Ind Airport ;
+
+  fun WestrayAirport : Ind Airport ;
+
+  fun WestsoundSeaplaneBaseWAAirport : Ind Airport ;
+
+  fun WetzlarAirport : Ind Airport ;
+
+  fun WewakAirport : Ind Airport ;
+
+  fun WexfordAirport : Ind Airport ;
+
+  fun WhakataneAirport : Ind Airport ;
+
+  fun WhaleCoveNTAirport : Ind Airport ;
+
+  fun WhalsayAirport : Ind Airport ;
+
+  fun WhangareiAirport : Ind Airport ;
+
+  fun WhartonMunicipalTXAirport : Ind Airport ;
+
+  fun WheghnanAirport : Ind Airport ;
+
+  fun WhidbeyIslandNavalAirStationAultFieldWAAirport : Ind Airport ;
+
+  fun WhiteMountainAKAirport : Ind Airport ;
+
+  fun WhiteRiverWaterAerodromeONAirport : Ind Airport ;
+
+  fun WhiteRockTXAirport : Ind Airport ;
+
+  fun WhiteSulphurSpringsWVAirport : Ind Airport ;
+
+  fun WhitecourtABAirport : Ind Airport ;
+
+  fun WhitehorseYTAirport : Ind Airport ;
+
+  fun WhitehouseNavalOutlyingFieldFLAirport : Ind Airport ;
+
+  fun WhitemanAirForceBaseMOAirport : Ind Airport ;
+
+  fun WhitemanCAAirport : Ind Airport ;
+
+  fun WhiteriverAZAirport : Ind Airport ;
+
+  fun WhitesideCountyAirportJosHBittorfFieldILAirport : Ind Airport ;
+
+  fun WhitingFieldNavalkAirStationNorthFLAirport : Ind Airport ;
+
+  fun WhittangaAirport : Ind Airport ;
+
+  fun WhyallaSouthAustraliaAirport : Ind Airport ;
+
+  fun WiartonONAirport : Ind Airport ;
+
+  fun WickAirport : Ind Airport ;
+
+  fun WickhamAirport : Ind Airport ;
+
+  fun WiesbadenAirBaseWiesbadenAirport : Ind Airport ;
+
+  fun WiesbadenAirport : Ind Airport ;
+
+  fun WilcanniaSouthAustraliaAirport : Ind Airport ;
+
+  fun WildenrathAirport : Ind Airport ;
+
+  fun WildwoodAKAirport : Ind Airport ;
+
+  fun WileyPostOKAirport : Ind Airport ;
+
+  fun WilhemshavenAirport : Ind Airport ;
+
+  fun WilkesBarreWyomingValleyPAAirport : Ind Airport ;
+
+  fun WillRogersWorldOKAirport : Ind Airport ;
+
+  fun WilliamPGwinnFLAirport : Ind Airport ;
+
+  fun WilliamTPiperMemorialPAAirport : Ind Airport ;
+
+  fun WilliamsHarbourNFAirport : Ind Airport ;
+
+  fun WilliamsLakeBCAirport : Ind Airport ;
+
+  fun WilliamsonCountyRegionalILAirport : Ind Airport ;
+
+  fun WilliamtownNewSouthWalesAirport : Ind Airport ;
+
+  fun WillowAKAirport : Ind Airport ;
+
+  fun WillowGroveNavalAirStationPAAirport : Ind Airport ;
+
+  fun WillowRunMIAirport : Ind Airport ;
+
+  fun WillowsGlennCountyCAAirport : Ind Airport ;
+
+  fun WilsonNairobiAirport : Ind Airport ;
+
+  fun WiltonCTAirport : Ind Airport ;
+
+  fun WilunaWesternAustraliaAirport : Ind Airport ;
+
+  fun WinchesterRegionalVAAirport : Ind Airport ;
+
+  fun WindarraWesternAustraliaAirport : Ind Airport ;
+
+  fun WinderGAAirport : Ind Airport ;
+
+  fun WindomMunicipalMNAirport : Ind Airport ;
+
+  fun WindorahParkQueenslandAirport : Ind Airport ;
+
+  fun WindsorONAirport : Ind Airport ;
+
+  fun WiniskONAirport : Ind Airport ;
+
+  fun WinnemuccaMunicipalNVAirport : Ind Airport ;
+
+  fun WinnipegInternationalMBAirport : Ind Airport ;
+
+  fun WinonaMunicipalAirportMaxConradFieldMNAirport : Ind Airport ;
+
+  fun WinstonFieldTXAirport : Ind Airport ;
+
+  fun WinterParkCOAirport : Ind Airport ;
+
+  fun WintonQueenslandAirport : Ind Airport ;
+
+  fun WipimAirport : Ind Airport ;
+
+  fun WisemanAKAirport : Ind Airport ;
+
+  fun WithamFieldFLAirport : Ind Airport ;
+
+  fun WittendomGorgeWesternAustraliaAirport : Ind Airport ;
+
+  fun WittmanRegionalWIAirport : Ind Airport ;
+
+  fun WituAirport : Ind Airport ;
+
+  fun WoburnMAAirport : Ind Airport ;
+
+  fun WoensdrechtAirport : Ind Airport ;
+
+  fun WoitapeAirport : Ind Airport ;
+
+  fun WojaAirport : Ind Airport ;
+
+  fun WollastonLakeSKAirport : Ind Airport ;
+
+  fun WollogorangAirport : Ind Airport ;
+
+  fun WollongongNewSouthWalesAirport : Ind Airport ;
+
+  fun WologissiAirport : Ind Airport ;
+
+  fun WonanAirport : Ind Airport ;
+
+  fun WondaiAirport : Ind Airport ;
+
+  fun WonderboomPretoriaAirport : Ind Airport ;
+
+  fun WondoolaAirport : Ind Airport ;
+
+  fun WonenaraAirport : Ind Airport ;
+
+  fun WonkenAirport : Ind Airport ;
+
+  fun WoodCountyAirportGillRobbWilsonFieldWVAirport : Ind Airport ;
+
+  fun WoodRiverAKAirport : Ind Airport ;
+
+  fun WoodbridgeRAFStationEnglandAirport : Ind Airport ;
+
+  fun WoodchopperAKAirport : Ind Airport ;
+
+  fun WoodfordAerodromeEnglandAirport : Ind Airport ;
+
+  fun WoodgreenNorthernTerritoryAirport : Ind Airport ;
+
+  fun WoomeraSouthAustraliaAirport : Ind Airport ;
+
+  fun WoraNaYeAirport : Ind Airport ;
+
+  fun WorcesterMunicipalMAAirport : Ind Airport ;
+
+  fun WorlandMunicipalWYAirport : Ind Airport ;
+
+  fun WorldTradeCenterNYAirport : Ind Airport ;
+
+  fun WorthingtonMunicipalMNAirport : Ind Airport ;
+
+  fun WothoAirport : Ind Airport ;
+
+  fun WotjeWotjeAirport : Ind Airport ;
+
+  fun WrangellAKAirport : Ind Airport ;
+
+  fun WrigleyNTAirport : Ind Airport ;
+
+  fun WroclawAirport : Ind Airport ;
+
+  fun WrothamQueenslandAirport : Ind Airport ;
+
+  fun WuauTaiyuanAirport : Ind Airport ;
+
+  fun WudinnaSouthAustraliaAirport : Ind Airport ;
+
+  fun WuhanAirport : Ind Airport ;
+
+  fun WuhuAirport : Ind Airport ;
+
+  fun WunnumminLakeONAirport : Ind Airport ;
+
+  fun WuppertalAirport : Ind Airport ;
+
+  fun WurzburgAirport : Ind Airport ;
+
+  fun WuvuluIslandAirport : Ind Airport ;
+
+  fun WuxiAirport : Ind Airport ;
+
+  fun WuyishanAirport : Ind Airport ;
+
+  fun WuzhouAirport : Ind Airport ;
+
+  fun WykaufFoehrAirport : Ind Airport ;
+
+  fun WyndhamWesternAustraliaAirport : Ind Airport ;
+
+  fun WynyardSKAirport : Ind Airport ;
+
+  fun WynyardTasmaniaAirport : Ind Airport ;
+
+  fun XaiXaiViladeJoaoBeloAirport : Ind Airport ;
+
+  fun XangongoAirport : Ind Airport ;
+
+  fun XayaburyAirport : Ind Airport ;
+
+  fun XiamenAirport : Ind Airport ;
+
+  fun XiamenAmoyAirport : Ind Airport ;
+
+  fun XianXianyangAirport : Ind Airport ;
+
+  fun XiangfanAirport : Ind Airport ;
+
+  fun XichangAirport : Ind Airport ;
+
+  fun XiengKhouangAirport : Ind Airport ;
+
+  fun XienglomAirport : Ind Airport ;
+
+  fun XiguanXianZiAnAirport : Ind Airport ;
+
+  fun XilinhotAirport : Ind Airport ;
+
+  fun XingchengAirport : Ind Airport ;
+
+  fun XingningAirport : Ind Airport ;
+
+  fun XingtaiAirport : Ind Airport ;
+
+  fun XinguaraAirport : Ind Airport ;
+
+  fun XiningAirport : Ind Airport ;
+
+  fun XoxocotlanOaxacaAirport : Ind Airport ;
+
+  fun XuzhouAirport : Ind Airport ;
+
+  fun YakimaAirTerminalWAAirport : Ind Airport ;
+
+  fun YakutatAKAirport : Ind Airport ;
+
+  fun YalgooWesternAustraliaAirport : Ind Airport ;
+
+  fun YalovaYalovaAsagisolozAirport : Ind Airport ;
+
+  fun YamIslandQueenslandAirport : Ind Airport ;
+
+  fun YanbuAirport : Ind Airport ;
+
+  fun YanchenAirport : Ind Airport ;
+
+  fun YandinaRusselIsAirport : Ind Airport ;
+
+  fun YangambiAirport : Ind Airport ;
+
+  fun YanjiAirport : Ind Airport ;
+
+  fun YantaiAirport : Ind Airport ;
+
+  fun YapInternationalYapIslandAirport : Ind Airport ;
+
+  fun YaquaraAirport : Ind Airport ;
+
+  fun YarmouthNSAirport : Ind Airport ;
+
+  fun YavarateAirport : Ind Airport ;
+
+  fun YavizaAirport : Ind Airport ;
+
+  fun YeAirport : Ind Airport ;
+
+  fun YechonAirport : Ind Airport ;
+
+  fun YegepaAirport : Ind Airport ;
+
+  fun YekaterinburgEkaterinburgSverdlovskAirport : Ind Airport ;
+
+  fun YellowknifeNTAirport : Ind Airport ;
+
+  fun YellowstoneMTAirport : Ind Airport ;
+
+  fun YengemaAirport : Ind Airport ;
+
+  fun YenkisAirport : Ind Airport ;
+
+  fun YeoviltonAirport : Ind Airport ;
+
+  fun YesBayLodgeSeaplaneBaseAKAirport : Ind Airport ;
+
+  fun YevaAirport : Ind Airport ;
+
+  fun YibinSichuanAirport : Ind Airport ;
+
+  fun YichangAirport : Ind Airport ;
+
+  fun YilanAirport : Ind Airport ;
+
+  fun YiningAirport : Ind Airport ;
+
+  fun YiwuAirport : Ind Airport ;
+
+  fun YokohamaAirport : Ind Airport ;
+
+  fun YokotaAirForceBaseYokotaAirport : Ind Airport ;
+
+  fun YolaAirport : Ind Airport ;
+
+  fun YonagoAirport : Ind Airport ;
+
+  fun YonaguniJimaAirport : Ind Airport ;
+
+  fun YorkLandingMBAirport : Ind Airport ;
+
+  fun YorkPAAirport : Ind Airport ;
+
+  fun YorkeIslandsQueenslandAirport : Ind Airport ;
+
+  fun YorketownSouthAustraliaAirport : Ind Airport ;
+
+  fun YorktonSKAirport : Ind Airport ;
+
+  fun YoroAirport : Ind Airport ;
+
+  fun YoronJimaAirport : Ind Airport ;
+
+  fun YosemiteParkCAAirport : Ind Airport ;
+
+  fun YosuAirport : Ind Airport ;
+
+  fun YoungNewSouthWalesAirport : Ind Airport ;
+
+  fun YoungsfieldCapeTownAirport : Ind Airport ;
+
+  fun YoungstownMunicipalOHAirport : Ind Airport ;
+
+  fun YubaCountyCAAirport : Ind Airport ;
+
+  fun YuccaFlatsNVAirport : Ind Airport ;
+
+  fun YuendumuNorthernTerritoryAirport : Ind Airport ;
+
+  fun YuleIslandAirport : Ind Airport ;
+
+  fun YulemisteTallinnAirport : Ind Airport ;
+
+  fun YulinAirport : Ind Airport ;
+
+  fun YumaMarinaCorpsAirStationAZAirport : Ind Airport ;
+
+  fun YumaMarineCorpsAirStationYumaInternationalAZAirport : Ind Airport ;
+
+  fun YurimaguasAirport : Ind Airport ;
+
+  fun YuzhnoSakhalinskSakhalinAirport : Ind Airport ;
+
+  fun YuzhnyTashkentAirport : Ind Airport ;
+
+  fun ZabljakAirport : Ind Airport ;
+
+  fun ZabreAirport : Ind Airport ;
+
+  fun ZabrehAirport : Ind Airport ;
+
+  fun ZadarAirport : Ind Airport ;
+
+  fun ZahedanAirport : Ind Airport ;
+
+  fun ZakynthosAirport : Ind Airport ;
+
+  fun ZamboangaInternationalZamboangaAirport : Ind Airport ;
+
+  fun ZamoraAirport : Ind Airport ;
+
+  fun ZanzibarIslandAirport : Ind Airport ;
+
+  fun ZaporizhzhyaZaporizhzhyaAirport : Ind Airport ;
+
+  fun ZaragozaAirport : Ind Airport ;
+
+  fun ZaranjAirport : Ind Airport ;
+
+  fun ZariaAirport : Ind Airport ;
+
+  fun ZarkaAirport : Ind Airport ;
+
+  fun ZenataTlemcenTilimsenAirport : Ind Airport ;
+
+  fun ZephyrhillsMunicipalFLAirport : Ind Airport ;
+
+  fun ZeroAirport : Ind Airport ;
+
+  fun ZhangguizhuangTianjinAirport : Ind Airport ;
+
+  fun ZhanjiangAirport : Ind Airport ;
+
+  fun ZhaotongAirport : Ind Airport ;
+
+  fun ZhenzhenShenzhenAirport : Ind Airport ;
+
+  fun ZhobAirport : Ind Airport ;
+
+  fun ZhongchuanLanzhouAirport : Ind Airport ;
+
+  fun ZhuhaiAirport : Ind Airport ;
+
+  fun ZhytomyrZhitomirZhytomyrAirport : Ind Airport ;
+
+  fun ZiguinchorAirport : Ind Airport ;
+
+  fun ZilfiAirport : Ind Airport ;
+
+  fun ZimValenciaCaraboboValenciaAirport : Ind Airport ;
+
+  fun ZinderAirport : Ind Airport ;
+
+  fun ZorgenHoopParamariboAirport : Ind Airport ;
+
+  fun ZouerateAirport : Ind Airport ;
+
+  fun ZuidLimburgMaastrichtAirport : Ind Airport ;
+
+  fun ZurichKlotenZurichAirport : Ind Airport ;
+
+  fun wethersfieldRAFStationEnglandAirport : Ind Airport ;
+
+}
diff --git a/examples/SUMO/elements.gf b/examples/SUMO/elements.gf
deleted file mode 100644
--- a/examples/SUMO/elements.gf
+++ /dev/null
@@ -1,931 +0,0 @@
-abstract elements = open Merge in {
-
-
-
-
---  Silvery radioactive metallic element, belongs to 
--- group 3 of the periodic table. The most stable isotope, Ac_227, has a 
--- half_life of 217 years. Ac_228 (half_life of 6.13 hours) also occurs in 
--- nature. There are 22 other artificial isotopes, all radioactive and 
--- having very short half_lives. Chemistry similar to lanthanum. Used as a 
--- source of alpha particles. Discovered by A. Debierne in 1899.
-fun Actinium : Class ;
-fun Actinium_Class : SubClass Actinium ElementalSubstance ;
-
--- Silvery_white lustrous metallic element of group 
--- 3 of the periodic table. Highly reactive but protected by a thin 
--- transparent layer of the oxide which quickly forms in air. There are many 
--- alloys of aluminum, as well as a good number of industrial uses. Makes up 
--- 8.1 percent of the Earth's crust, by weight. Isolated in 1825 by H.C. 
--- Oersted.
-fun Aluminum : Class ;
-fun Aluminum_Class : SubClass Aluminum ElementalSubstance ;
-
--- Radioactive metallic transuranic element, 
--- belongs to the actinoids. Ten known isotopes. Am_243 is the most stable 
--- isotope, with a half_life of 7.95*10^3 years. Discovered by Glenn T. 
--- Seaborg and associates in 1945, it was obtained by bombarding 
--- {uranium}_238 with alpha particles.
-fun Americium : Class ;
-fun Americium_Class : SubClass Americium ElementalSubstance ;
-
--- Element of group 15. Multiple allotropic forms. 
--- The stable form of antimony is a blue_white metal. Yellow and black 
--- antimony are unstable non_metals. Used in flame_proofing, paints, 
--- ceramics, enamels, and rubber. Attacked by oxidizing acids and halogens. 
--- First reported by Tholden in 1450.
-fun Antimony : Class ;
-fun Antimony_Class : SubClass Antimony ElementalSubstance ;
-
--- Monatomic noble gas. Makes up 0.93 percent of the 
--- air. Colourless, odorless. Is inert and has no true compounds. Lord 
--- Rayleigh and Sir william Ramsey identified argon in 1894.
-fun Argon : Class ;
-fun Argon_Class : SubClass Argon ElementalSubstance ;
-
--- Metalloid element of group 15. There are three 
--- allotropes, yellow, black, and grey. Reacts with halogens, concentrated 
--- oxidizing acids and hot alkalis. Albertus Magnus is believed to have been 
--- the first to isolate the element in 1250.
-fun Arsenic : Class ;
-fun Arsenic_Class : SubClass Arsenic ElementalSubstance ;
-
--- Radioactive halogen element. Occurs naturally 
--- from uranium and thorium decay. At least 20 known isotopes. At_210, the 
--- most stable, has a half_life of 8.3 hours. Synthesized by nuclear 
--- bombardment in 1940 by D.R. Corson, K.R. MacKenzie and E. Segre at the 
--- University of California.
-fun Astatine : Class ;
-fun Astatine_Class : SubClass Astatine ElementalSubstance ;
-
--- Silvery_white reactive element, belonging to group 
--- 2 of the periodic table. Soluble barium compounds are extremely 
--- poisonous. Identified in 1774 by Karl Scheele and extracted in 1808 by 
--- Humphry Davy.
-fun Barium : Class ;
-fun Barium_Class : SubClass Barium ElementalSubstance ;
-
--- Radioactive metallic transuranic element. 
--- Belongs to actinoid series. Eight known isotopes, the most common Bk_247, 
--- has a half_life of 1.4*10^3 years. First produced by Glenn T. Seaborg 
--- and associates in 1949 by bombarding americium_241 with alpha 
--- particles.
-fun Berkelium : Class ;
-fun Berkelium_Class : SubClass Berkelium ElementalSubstance ;
-
--- Grey metallic element of group 2 of the periodic 
--- table. Is toxic and can cause severe lung diseases and dermatitis. Shows 
--- high covalent character. It was isolated independently by F. Wohler and 
--- A.A. Bussy in 1828.
-fun Beryllium : Class ;
-fun Beryllium_Class : SubClass Beryllium ElementalSubstance ;
-
--- White crystalline metal with a pink tinge, belongs 
--- to group 15. Most diamagnetic of all metals and has the lowest thermal 
--- conductivity of all the elements except mercury. Lead_free bismuth 
--- compounds are used in cosmetics and medical procedures. Burns in the air 
--- and produces a blue flame. In 1753, C.G. Junine first demonstrated that 
--- it was different from lead.
-fun Bismuth : Class ;
-fun Bismuth_Class : SubClass Bismuth ElementalSubstance ;
-
--- An element of group 13 of the periodic table. There 
--- are two allotropes, amorphous boron is a brown power, but metallic boron 
--- is black. The metallic form is hard (9.3 on Mohs' scale) and a bad 
--- conductor in room temperatures. It is never found free in nature. 
--- Boron_10 is used in nuclear reactor control rods and shields. It was 
--- discovered in 1808 by Sir Humphry Davy and by J.L. Gay_Lussac and L.J. 
--- Thenard.
-fun Boron : Class ;
-fun Boron_Class : SubClass Boron ElementalSubstance ;
-
--- Halogen element. Red volatile liquid at room 
--- temperature. Its reactivity is somewhere between chlorine and iodine. 
--- Harmful to human tissue in a liquid state, the vapour irritates eyes and 
--- throat. Discovered in 1826 by Antoine Balard.
-fun Bromine : Class ;
-fun Bromine_Class : SubClass Bromine ElementalSubstance ;
-
--- Soft bluish metal belonging to group 12 of the 
--- periodic table. Extremely toxic even in low concentrations. Chemically 
--- similar to zinc, but lends itself to more complex compounds. Discovered 
--- in 1817 by F. Stromeyer.
-fun Cadmium : Class ;
-fun Cadmium_Class : SubClass Cadmium ElementalSubstance ;
-
--- Soft silvery_white metallic element belonging to 
--- group 1 of the periodic table. One of the three metals which are liquid 
--- at room temperature. Cs_133 is the natural, and only stable, isotope. 
--- Fifteen other radioisotopes exist. Caesium reacts explosively with cold 
--- water, and ice at temperatures above 157K. Caesium hydroxide is the 
--- strongest base known. Caesium is the most electropositive, most alkaline 
--- and has the least ionization potential of all the elements. Known uses 
--- include the basis of atomic clocks, catalyst for the hydrogenation of some 
--- organic compounds, and in photoelectric cells. Caesium was discovered by 
--- Gustav Kirchoff and Robert Bunsen in Germany in 1860 spectroscopically. 
--- Its identification was based upon the bright blue lines in its spectrum. 
--- The name comes from the latin word caesius, which means sky blue. Caesium 
--- should be considered highly toxic. Some of the radioisotopes are even 
--- more toxic.
-fun Caesium : Class ;
-fun Caesium_Class : SubClass Caesium ElementalSubstance ;
-
--- Soft grey metallic element belonging to group 2 of 
--- the periodic table. Used a reducing agent in the extraction of thorium, 
--- zirconium and uranium. Essential element for living organisms.
-fun Calcium : Class ;
-fun Calcium_Class : SubClass Calcium ElementalSubstance ;
-
--- Radioactive metallic transuranic element. 
--- Belongs to actinoid series. Cf_251 has a half life of about 700 years. 
--- Nine isotopes are known. Cf_252 is an intense {neutron} source, which 
--- makes it an intense {neutron} source and gives it a use in {neutron} 
--- activation analysis and a possible use as a radiation source in medicine. 
--- First produced by Glenn T. Seaborg and associates in 1950.
-fun Californium : Class ;
-fun Californium_Class : SubClass Californium ElementalSubstance ;
-
--- Carbon is a member of group 14 of the periodic 
--- table. It has three allotropic forms of it, diamonds, graphite and 
--- fullerite. Carbon_14 is commonly used in radioactive dating. Carbon 
--- occurs in all organic life and is the basis of organic chemistry. Carbon 
--- has the interesting chemical property of being able to bond with itself, 
--- and a wide variety of other elements.
-fun Carbon : Class ;
-fun Carbon_Class : SubClass Carbon ElementalSubstance ;
-
--- Silvery metallic element, belongs to the 
--- lanthanoids. Four natural isotopes exist, and fifteen radioactive 
--- isotopes have been identified. Used in some rare_earth alloys. The 
--- oxidized form is used in the glass industry. Discovered by Martin .H. 
--- Klaproth in 1803.
-fun Cerium : Class ;
-fun Cerium_Class : SubClass Cerium ElementalSubstance ;
-
--- Halogen element. Poisonous greenish_yellow gas. 
--- Occurs widely in nature as sodium chloride in seawater. Reacts directly 
--- with many elements and compounds, strong oxidizing agent. Discovered by 
--- Karl Scheele in 1774. Humphrey David confirmed it as an element in 
--- 1810.
-fun Chlorine : Class ;
-fun Chlorine_Class : SubClass Chlorine ElementalSubstance ;
-
--- Hard silvery transition element. Used in 
--- decorative electroplating. Discovered in 1797 by Vauquelin.
-fun Chromium : Class ;
-fun Chromium_Class : SubClass Chromium ElementalSubstance ;
-
--- Light grey transition element. Some meteorites 
--- contain small amounts of metallic cobalt. Generally alloyed for use. 
--- Mammals require small amounts of cobalt salts. Cobalt_60, an artificially 
--- produced radioactive isotope of Cobalt is an important radioactive tracer 
--- and cancer_treatment agent. Discovered by G. Brandt in 1737.
-fun Cobalt : Class ;
-fun Cobalt_Class : SubClass Cobalt ElementalSubstance ;
-
--- Red_brown transition element. Known by the Romans 
--- as 'cuprum.' Extracted and used for thousands of years. Malleable, 
--- ductile and an excellent conductor of heat and electricity. When in moist 
--- conditions, a greenish layer forms on the outside.
-fun Copper : Class ;
-fun Copper_Class : SubClass Copper ElementalSubstance ;
-
--- Radioactive metallic transuranic element. Belongs 
--- to actinoid series. Nine known isotopes, Cm_247 has a half_life of 
--- 1.64*10^7 years. First identified by Glenn T. Seaborg and associates in 
--- 1944, first produced by L.B. Werner and I. Perlman in 1947 by bombarding 
--- americium_241 with {neutron}s. Named for Marie Curie.
-fun Curium : Class ;
-fun Curium_Class : SubClass Curium ElementalSubstance ;
-
--- Metallic with a bright silvery_white lustre. 
--- Dysprosium belongs to the lanthanoids. It is relatively stable in air at 
--- room temperatures, it will however dissolve in mineral acids, evolving 
--- hydrogen. It is found in from rare_earth minerals. There are seven 
--- natural isotopes of dysprosium, and eight radioisotopes, Dy_154 being the 
--- most stable with a half_life of 3*10^6 years. Dysprosium is used as a 
--- neutron absorber in nuclear fission reactions, and in compact disks. It 
--- was discovered by Paul Emile Lecoq de Boisbaudran in 1886 in France. Its 
--- name comes from the Greek word dysprositos, which means hard to obtain.
-fun Dysprosium : Class ;
-fun Dysprosium_Class : SubClass Dysprosium ElementalSubstance ;
-
--- Appearance is unknown, however it is most 
--- probably metallic and silver or gray in color. Radioactive metallic 
--- transuranic element belonging to the actinoids. Es_254 has the longest 
--- half_life of the eleven known isotopes at 270 days. First identified by 
--- Albert Ghiorso and associates in the debris of the 1952 hydrogen bomb 
--- explosion. In 1961 the first microgram quantities of Es_232 were 
--- separated. While einsteinium never exists naturally, if a sufficient 
--- amount was assembled, it would pose a radiation hazard.
-fun Einsteinium : Class ;
-fun Einsteinium_Class : SubClass Einsteinium ElementalSubstance ;
-
--- Soft silvery metallic element which belongs to the 
--- lanthanoids. Six natural isotopes that are stable. Twelve artificial 
--- isotopes are known. Used in nuclear technology as a neutron absorber. It 
--- is being investigated for other possible uses. Discovered by Carl G. 
--- Mosander in 1843.
-fun Erbium : Class ;
-fun Erbium_Class : SubClass Erbium ElementalSubstance ;
-
--- Soft silvery metallic element belonging to the 
--- lanthanoids. Eu_151 and Eu_153 are the only two stable isotopes, both of 
--- which are {neutron} absorbers. Discovered in 1889 by Sir William 
--- Crookes.
-fun Europium : Class ;
-fun Europium_Class : SubClass Europium ElementalSubstance ;
-
--- Radioactive metallic transuranic element, belongs 
--- to the actinoids. Ten known isotopes, most stable is Fm_257 with a 
--- half_life of 10 days. First identified by Albert Ghiorso and associates 
--- in the debris of the first hydrogen_bomb explosion in 1952.
-fun Fermium : Class ;
-fun Fermium_Class : SubClass Fermium ElementalSubstance ;
-
--- A poisonous pale yellow gaseous element belonging 
--- to group 17 of the periodic table (The halogens). It is the most 
--- chemically reactive and electronegative element. It is highly dangerous, 
--- causing severe chemical burns on contact with flesh. Fluorine was 
--- identified by Scheele in 1771 and first isolated by Moissan in 1886.
-fun Fluorine : Class ;
-fun Fluorine_Class : SubClass Fluorine ElementalSubstance ;
-
--- Radioactive element, belongs to group 1 of the 
--- periodic table. Found in uranium and thorium ores. The 22 known isotopes 
--- are all radioactive, with the most stable being Fr_223. Its existence was 
--- confirmed in 1939 by Marguerite Perey.
-fun Francium : Class ;
-fun Francium_Class : SubClass Francium ElementalSubstance ;
-
--- Soft silvery metallic element belonging to the 
--- lanthanoids. Seven natural, stable isotopes are known in addition to 
--- eleven artificial isotopes. Gd_155 and Gd_157 and the best neutron 
--- absorbers of all elements. Gadolinium compounds are used in electronics. 
--- Discovered by J.C.G Marignac in 1880.
-fun Gadolinium : Class ;
-fun Gadolinium_Class : SubClass Gadolinium ElementalSubstance ;
-
--- Soft silvery metallic element, belongs to group 13 
--- of the periodic table. The two stable isotopes are Ga_69 and Ga_71. 
--- Eight radioactive isotopes are known, all having short half_lives. 
--- Gallium Arsenide is used as a semiconductor. Corrodes most other metals 
--- by diffusing into their lattice. First identified by Francois Lecoq de 
--- Boisbaudran in 1875.
-fun Gallium : Class ;
-fun Gallium_Class : SubClass Gallium ElementalSubstance ;
-
--- Lustrous hard metalloid element, belongs to 
--- group 14 of the periodic table. Forms a large number of organometallic 
--- compounds. Predicted by Mendeleev in 1871, it was actually found in 1886 
--- by Winkler.
-fun Germanium : Class ;
-fun Germanium_Class : SubClass Germanium ElementalSubstance ;
-
--- Gold is gold colored. It is the most malleable and 
--- ductile metal known. There is only one stable isotope of gold, and five 
--- radioisotopes of gold, Au_195 being the most stable with a half_life of 
--- 186 days. Gold is used as a monetary standard, in jewelry, dentistry, 
--- electronics. Au_198 is used in treating cancer and some other medical 
--- conditions. Gold has been known to exist as far back as 2600 BC. Gold 
--- comes from the Anglo_Saxon word gold. Its symbol, Au, comes from the 
--- Latin word aurum, which means gold. Gold is not particularly toxic, 
--- however it is known to cause damage to the liver and kidneys in some.
-fun Gold : Class ;
-fun Gold_Class : SubClass Gold ElementalSubstance ;
-
--- Silvery lustrous metallic transition element. 
--- Used in tungsten alloys in filaments and electrodes, also acts as a 
--- neutron absorber. First reported by Urbain in 1911, existence was finally 
--- established in 1923 by D. Coster, G.C. de Hevesy in 1923.
-fun Hafnium : Class ;
-fun Hafnium_Class : SubClass Hafnium ElementalSubstance ;
-
--- Colourless, odourless gaseous nonmetallic element. 
--- Belongs to group 18 of the periodic table. Lowest boiling point of all 
--- elements and can only be solidified under pressure. Chemically inert, no 
--- known compounds. Discovered in the solar spectrum in 1868 by Lockyer.
-fun Helium : Class ;
-fun Helium_Class : SubClass Helium ElementalSubstance ;
-
--- Relatively soft and malleable silvery_white 
--- metallic element, which is stable in dry air at room temperature. It 
--- oxidizes in moist air and at high temperatures. It belongs to the 
--- lanthanoids. A rare_earth metal, it is found in the minerals monazite and 
--- gadolinite. It possesses unusual magnetic properties. One natural 
--- isotope, Ho_165 exists, six radioisotopes exist, the most stable being 
--- Ho_163 with a half_life of 4570 years. Holmium is used in some metal 
--- alloys, it is also said to stimulate the metabolism. Discovered by Per 
--- Theodor Cleve and J.L. Soret in Switzerland in 1879. The name homium 
--- comes from the Greek word Holmia which means Sweden. While all holmium 
--- compounds should be considered highly toxic, initial evidence seems to 
--- indicate that they do not pose much danger. The metal's dust however, is 
--- a fire hazard.
-fun Holmium : Class ;
-fun Holmium_Class : SubClass Holmium ElementalSubstance ;
-
--- Colourless, odourless gaseous chemical element. 
--- Lightest and most abundant element in the universe. Present in water and 
--- in all organic compounds. Chemically reacts with most elements. 
--- Discovered by Henry Cavendish in 1776.
-fun Hydrogen : Class ;
-fun Hydrogen_Class : SubClass Hydrogen ElementalSubstance ;
-
--- Soft silvery element belonging to group 13 of the 
--- periodic table. The most common natural isotope is In_115, which has a 
--- half_life of 6*10^4 years. Five other radioisotopes exist. Discovered in 
--- 1863 by Reich and Richter.
-fun Indium : Class ;
-fun Indium_Class : SubClass Indium ElementalSubstance ;
-
--- Dark violet nonmetallic element, belongs to group 
--- 17 of the periodic table. Insoluble in water. Required as a trace 
--- element for living organisms. One stable isotope, I_127 exists, in 
--- addition to fourteen radioactive isotopes. Chemically the least reactive 
--- of the halogens, and the most electropositive metallic halogen. 
--- Discovered in 1812 by Courtois.
-fun Iodine : Class ;
-fun Iodine_Class : SubClass Iodine ElementalSubstance ;
-
--- Very hard and brittle, silvery metallic transition 
--- element. It has a yellowish cast to it. Salts of iridium are highly 
--- colored. It is the most corrosion resistant metal known, not attacked by 
--- any acid, but is attacked by molten salts. There are two natural isotopes 
--- of iridium, and 4 radioisotopes, the most stable being Ir_192 with a 
--- half_life of 73.83 days. Ir_192 decays into {platinum}, while the other 
--- radioisotopes decay into {osmium}. Iridium is used in high temperature 
--- apparatus, electrical contacts, and as a hardening agent for platinum. 
--- Discovered in 1803 by Smithson Tennant in England. The name comes from 
--- the Greek word iris, which means rainbow. Iridium metal is generally 
--- non_toxic due to its relative unreactivity, but iridium compounds should 
--- be considered highly toxic.
-fun Iridium : Class ;
-fun Iridium_Class : SubClass Iridium ElementalSubstance ;
-
--- Silvery malleable and ductile metallic transition 
--- element. Has nine isotopes and is the fourth most abundant element in the 
--- earth's crust. Required by living organisms as a trace element (used in 
--- hemoglobin in humans.) Quite reactive, oxidizes in moist air, displaces 
--- hydrogen from dilute acids and combines with nonmetallic elements.
-fun Iron : Class ;
-fun Iron_Class : SubClass Iron ElementalSubstance ;
-
--- Colorless gaseous element, belongs to the noble 
--- gases. Occurs in the air, 0.0001 percent by volume. It can be extracted 
--- from liquid air by fractional distillation. Generally not isolated, but 
--- used with other inert gases in fluorescent lamps. Five natural isotopes, 
--- and five radioactive isotopes. Kr_85, the most stable radioactive 
--- isotope, has a half_life of 10.76 years and is produced in fission 
--- reactors. Practically inert, though known to form compounds with 
--- {fluorine}.
-fun Krypton : Class ;
-fun Krypton_Class : SubClass Krypton ElementalSubstance ;
-
--- (From the Greek word lanthanein, to line hidden) 
--- Silvery metallic element belonging to group 3 of the periodic table and 
--- oft considered to be one of the lanthanoids. Found in some rare_earth 
--- minerals. Twenty_five natural isotopes exist. La_139 which is stable, 
--- and La_138 which has a half_life of 10^10 to 10^15 years. The other 
--- twenty_three isotopes are radioactive. It resembles the lanthanoids 
--- chemically. Lanthanum has a low to moderate level of toxicity, and should 
--- be handled with care. Discovered in 1839 by C.G. Mosander.
-fun Lanthanum : Class ;
-fun Lanthanum_Class : SubClass Lanthanum ElementalSubstance ;
-
--- Appearance unknown, however it is most likely 
--- silvery_white or grey and metallic. Lawrencium is a synthetic rare_earth 
--- metal. There are eight known radioisotopes, the most stable being Lr_262 
--- with a half_life of 3.6 hours. Due to the short half_life of lawrencium, 
--- and its radioactivity, there are no known uses for it. Identified by 
--- Albert Ghiorso in 1961 at Berkeley. It was produced by bombarding 
--- californium with boron ions. The name is temporary {IUPAC} nomenclature, 
--- the origin of the name comes from Ernest O. Lawrence, the inventor of the 
--- cyclotron. If sufficient amounts of lawrencium were produced, it would 
--- pose a radiation hazard.
-fun Lawrencium : Class ;
-fun Lawrencium_Class : SubClass Lawrencium ElementalSubstance ;
-
--- Heavy dull grey ductile metallic element, belongs to 
--- group 14. Used in building construction, lead_place accumulators, bullets 
--- and shot, and is part of solder, pewter, bearing metals, type metals and 
--- fusible alloys.
-fun Lead : Class ;
-fun Lead_Class : SubClass Lead ElementalSubstance ;
-
--- Socket silvery metal. First member of group 1 of 
--- the periodic table. Lithium salts are used in psychomedicine.
-fun Lithium : Class ;
-fun Lithium_Class : SubClass Lithium ElementalSubstance ;
-
--- Silvery_white rare_earth metal which is 
--- relatively stable in air. It happens to be the most expensive rare_earth 
--- metal. Its found with almost all rare_earth metals, but is very difficult 
--- to separate from other elements. Least abundant of all natural elements. 
--- Used in metal alloys, and as a catalyst in various processes. There are 
--- two natural, stable isotopes, and seven radioisotopes, the most stable 
--- being Lu_174 with a half_life of 3.3 years. The separation of lutetium 
--- from {ytterbium} was described by Georges Urbain in 1907. It was 
--- discovered at approximately the same time by Carl Auer von Welsbach. The 
--- name comes from the Greek word lutetia which means Paris.
-fun Lutetium : Class ;
-fun Lutetium_Class : SubClass Lutetium ElementalSubstance ;
-
--- Silvery metallic element belonging to group 2 of 
--- the periodic table (alkaline_earth metals). It is essential for living 
--- organisms, and is used in a number of light alloys. Chemically very 
--- reactive, it forms a protective oxide coating when exposed to air and 
--- burns with an intense white flame. It also reacts with sulphur, nitrogen 
--- and the halogens. First isolated by Bussy in 1828.
-fun Magnesium : Class ;
-fun Magnesium_Class : SubClass Magnesium ElementalSubstance ;
-
--- Grey brittle metallic transition element. 
--- Rather electropositive, combines with some non_metals when heated. 
--- Discovered in 1774 by Scheele.
-fun Manganese : Class ;
-fun Manganese_Class : SubClass Manganese ElementalSubstance ;
-
--- Half_life of approximately 5ms. The creation 
--- of this element demonstrated that fusion techniques could indeed be used 
--- to make new, heavy nuclei. Made and identified by physicists of the Heavy 
--- Ion Research Laboratory, Darmstadt, West Germany in 1982. Named in honor 
--- of Lise Meitner the Austrian physicist.
-fun Meitnerium : Class ;
-fun Meitnerium_Class : SubClass Meitnerium ElementalSubstance ;
-
--- Radioactive metallic transuranic element. 
--- Belongs to the actinoid series. Only known isotope, Md_256 has a 
--- half_life of 1.3 hours. First identified by Glenn T. Seaborg, Albert 
--- Ghiorso and associates in 1955. Alternative name {unnilunium} has been 
--- proposed. Named after the 'inventor' of the periodic table, Dmitri 
--- Mendeleev.
-fun Mendelevium : Class ;
-fun Mendelevium_Class : SubClass Mendelevium ElementalSubstance ;
-
--- Heavy silvery liquid metallic element, belongs to 
--- the zinc group. Used in thermometers, barometers and other scientific 
--- apparatus. Less reactive than zinc and cadmium, does not displace 
--- hydrogen from acids. Forms a number of complexes and organomercury 
--- compounds.
-fun Mercury : Class ;
-fun Mercury_Class : SubClass Mercury ElementalSubstance ;
-
--- Silvery_white, hard metallic transition 
--- element. It is chemically unreactive and is not affected by most acids. 
--- It oxidizes at high temperatures. There are seven natural isotopes, and 
--- four radioisotopes, Mo_93 being the most stable with a half_life of 3500 
--- years. Molybdenum is used in almost all high_strength steels, it has 
--- nuclear applications, and is a catalyst in petroleum refining. Discovered 
--- in 1778 by Carl Welhelm Scheele of Sweden. Impure metal was prepared in 
--- 1782 by Peter Jacob Hjelm. The name comes from the Greek word molybdos 
--- which means lead. Trace amounts of molybdenum are required for all known 
--- forms of life. All molybdenum compounds should be considered highly 
--- toxic, and will also cause severe birth defects.
-fun Molybdenum : Class ;
-fun Molybdenum_Class : SubClass Molybdenum ElementalSubstance ;
-
--- Soft bright silvery metallic element, belongs to 
--- the lanthanoids. Seven natural isotopes, Nd_144 being the only 
--- radioactive one with a half_life of 10^10 to 10^15 years. Six artificial 
--- radioisotopes have been produced. The metal is used in glass works to 
--- color class a shade of violet_purple and make it dichroic. One of the 
--- more reactive rare_earth metals, quickly reacts with air. Used in some 
--- rare_earth alloys. Neodymium is used to color the glass used in welder's 
--- glasses. Neodymium is also used in very powerful, permanent magnets 
--- (Nd2Fe14B). Discovered by Carl F. Auer von Welsbach in Austria in 1885 
--- by separating didymium into its elemental components {praseodymium} and 
--- neodymium. The name comes from the Greek words 'neos didymos' which means 
--- 'new twin'. Neodymium should be considered highly toxic, however evidence 
--- would seem to show that it acts as little more than a skin and eye 
--- irritant. The dust however, presents a fire and explosion hazard.
-fun Neodymium : Class ;
-fun Neodymium_Class : SubClass Neodymium ElementalSubstance ;
-
--- Colourless gaseous element of group 18 on the 
--- periodic table (noble gases). Neon occurs in the atmosphere, and 
--- comprises 0.0018 percent of the volume of the atmosphere. It has a 
--- distinct reddish glow when used in discharge tubes and neon based lamps. 
--- It forms almost no chemical compounds. Neon was discovered in 1898 by Sir 
--- William Ramsey and M.W. Travers.
-fun Neon : Class ;
-fun Neon_Class : SubClass Neon ElementalSubstance ;
-
--- Radioactive metallic transuranic element, 
--- belongs to the actinoids. Np_237, the most stable isotope, has a 
--- half_life of 2.2*10^6 years and is a by product of nuclear reactors. The 
--- other known isotopes have mass numbers 229 through 236, and 238 through 
--- 241. Np_236 has a half_life of 5*10^3 years. First produced by Edwin M. 
--- McMillan and P.H. Abelson in 1940.
-fun Neptunium : Class ;
-fun Neptunium_Class : SubClass Neptunium ElementalSubstance ;
-
--- Malleable ductile silvery metallic transition 
--- element. Discovered by A.F. Cronstedt in 1751.
-fun Nickel : Class ;
-fun Nickel_Class : SubClass Nickel ElementalSubstance ;
-
--- Soft, ductile grey_blue metallic transition 
--- element. Used in special steels and in welded joints to increase 
--- strength. Combines with halogens and oxidizes in air at 200 degrees 
--- celsius. Discovered by Charles Hatchett in 1801 and isolated by 
--- Blomstrand in 1864. Called {columbium} originally.
-fun Niobium : Class ;
-fun Niobium_Class : SubClass Niobium ElementalSubstance ;
-
--- Colourless, gaseous element which belongs to 
--- group 15 of the periodic table. Constitutes ~78 percent of the atmosphere 
--- and is an essential part of the ecosystem. Nitrogen for industrial 
--- purposes is acquired by the fractional distillation of liquid air. 
--- Chemically inactive, reactive generally only at high temperatures or in 
--- electrical discharges. It was discovered in 1772 by D. Rutherford.
-fun Nitrogen : Class ;
-fun Nitrogen_Class : SubClass Nitrogen ElementalSubstance ;
-
--- Radioactive metallic transuranic element, belongs 
--- to the actinoids. Seven known isotopes exist, the most stable being 
--- No_254 with a half_life of 255 seconds. First identified with certainty 
--- by Albert Ghiorso and Glenn T. Seaborg in 1966. {Unnilbium} has been 
--- proposed as an alternative name.
-fun Nobelium : Class ;
-fun Nobelium_Class : SubClass Nobelium ElementalSubstance ;
-
--- Hard blue_white metallic transition element. Found 
--- with platinum and used in some alloys with platinum and iridium.
-fun Osmium : Class ;
-fun Osmium_Class : SubClass Osmium ElementalSubstance ;
-
--- A colourless, odourless gaseous element belonging 
--- to group 16 of the periodic table. It is the most abundant element 
--- present in the earth's crust. It also makes up 20.8 percent of the 
--- Earth's atmosphere. For industrial purposes, it is separated from liquid 
--- air by fractional distillation. It is used in high temperature welding, 
--- and in breathing. It commonly comes in the form of Oxygen, but is found 
--- as Ozone in the upper atmosphere. It was discovered by Priestley in 
--- 1774.
-fun Oxygen : Class ;
-fun Oxygen_Class : SubClass Oxygen ElementalSubstance ;
-
--- Soft white ductile transition element. Found 
--- with some copper and nickel ores. Does not react with oxygen at normal 
--- temperatures. Dissolves slowly in hydrochloric acid. Discovered in 1803 
--- by W.H. Wollaston.
-fun Palladium : Class ;
-fun Palladium_Class : SubClass Palladium ElementalSubstance ;
-
--- Non_metallic element belonging to group 15 of 
--- the periodic table. Has a multiple allotropic forms. Essential element 
--- for living organisms. It was discovered by Brandt in 1669.
-fun Phosphorus : Class ;
-fun Phosphorus_Class : SubClass Phosphorus ElementalSubstance ;
-
--- Attractive greyish_white metal. When pure, it is 
--- malleable and ductile. Does not oxidize in air, insoluble in hydrochloric 
--- and nitric acid. Corroded by halogens, cyandies, sulphur and alkalis. 
--- {Hydrogen} and {oxygen} react explosively in the presence of platinum. 
--- There are six stable isotopes and three radioisotopes, the most stable 
--- being Pt_193 with a half_life of 60 years. Platinum is used in jewelry, 
--- laboratory equipment, electrical contacts, dentistry, and anti_pollution 
--- devices in cars. PtCl2(NH3)2 is used to treat some forms of cancer. 
--- Platinum_{cobalt} alloys have magnetic properties. It is also used in the 
--- definition of the Standard Hydrogen Electrode. Discovered by Antonio de 
--- Ulloa in South America in 1735. The name comes from the Spanish word 
--- platina which means silver. Platinum metal is generally not a health 
--- concern due to its unreactivity, however platinum compounds should be 
--- considered highly toxic.
-fun Platinum : Class ;
-fun Platinum_Class : SubClass Platinum ElementalSubstance ;
-
--- Dense silvery radioactive metallic transuranic 
--- element, belongs to the actinoids. Pu_244 is the most stable isotope with 
--- a half_life of 7.6*10^7 years. Thirteen isotopes are known. Pu_239 is 
--- the most important, it undergoes nuclear fission with slow neutrons and is 
--- hence important to nuclear weapons and reactors. Plutonium production is 
--- monitored down to the gram to prevent military misuse. First produced by 
--- Gleen T. Seaborg, Edwin M. McMillan, J.W. Kennedy and A.C. Wahl in 
--- 1940.
-fun Plutonium : Class ;
-fun Plutonium_Class : SubClass Plutonium ElementalSubstance ;
-
--- Rare radioactive metallic element, belongs to 
--- group 16 of the periodic table. Over 30 known isotopes exist, the most of 
--- all elements. Po_209 has a half_life of 103 years. Possible uses in 
--- heating spacecraft. Discovered by Marie Curie in 1898 in a sample of 
--- pitchblende.
-fun Polonium : Class ;
-fun Polonium_Class : SubClass Polonium ElementalSubstance ;
-
--- Soft silvery metallic element belonging to group 
--- 1 of the periodic table (alkali metals). Occurs naturally in seawater and 
--- a many minerals. Highly reactive, chemically, it resembles sodium in its 
--- behavior and compounds. Discovered by Sir Humphry Davy in 1807.
-fun Potassium : Class ;
-fun Potassium_Class : SubClass Potassium ElementalSubstance ;
-
--- Soft silvery metallic element, belongs to the 
--- lanthanoids. Only natural isotope is Pr_141 which is not radioactive. 
--- Fourteen radioactive isotopes have been artificially produced. Used in 
--- rare_earth alloys. Discovered in 1885 by C.A. von Welsbach.
-fun Praseodymium : Class ;
-fun Praseodymium_Class : SubClass Praseodymium ElementalSubstance ;
-
--- Soft silvery metallic element, belongs to the 
--- lanthanoids. Pm_147, the only natural isotope, is radioactive and has a 
--- half_life of 252 years. Eighteen radioisotopes have been produced, but 
--- all have very short half_lives. Found only in nuclear decay waste. 
--- Pm_147 is of interest as a beta_decay source, however Pm_146 and Pm_148 
--- have to be removed from it first, as they generate gamma radiation. 
--- Discovered by J.A. Marinsky, L.E. Glendenin and C.D. Coryell in 
--- 1947.
-fun Promethium : Class ;
-fun Promethium_Class : SubClass Promethium ElementalSubstance ;
-
--- Radioactive metallic element, belongs to the 
--- actinoids. The most stable isotope, Pa_231 has a half_life of 2.43*10^4 
--- years. At least 10 other radioactive isotopes are known. No practical 
--- applications are known. Discovered in 1917 by Lise Meitner and Otto 
--- Hahn.
-fun Protactinium : Class ;
-fun Protactinium_Class : SubClass Protactinium ElementalSubstance ;
-
--- Radioactive metallic transuranic element, belongs 
--- to group 2 of the periodic table. Most stable isotope, Ra_226 has a 
--- half_life of 1602 years, which decays into radon. Isolated from 
--- pitchblende in 1898 Marie and Pierre Curie.
-fun Radium : Class ;
-fun Radium_Class : SubClass Radium ElementalSubstance ;
-
--- Colorless radioactive gaseous element, belongs to 
--- the noble gases. Of the twenty known isotopes, the most stable is Rn_222 
--- with a half_life of 3.8 days. Formed by the radioactive decay of 
--- {Radium}_226. Radon itself decays into {polonium}. Used in radiotherapy. 
--- As a noble gas, it is effectively inert, though radon fluoride has been 
--- synthesized. First isolated in 1908 by Ramsey and Gray.
-fun Radon : Class ;
-fun Radon_Class : SubClass Radon ElementalSubstance ;
-
--- Silvery_white metallic transition element. 
--- Obtained as a by_product of molybdenum refinement. Rhenium_molybdenum 
--- alloys are superconducting.
-fun Rhenium : Class ;
-fun Rhenium_Class : SubClass Rhenium ElementalSubstance ;
-
--- Silvery white metallic transition element. Found 
--- with platinum and used in some platinum alloys. Not attacked by acids, 
--- dissolves only in aqua regia. Discovered in 1803 by W.H. Wollaston.
-fun Rhodium : Class ;
-fun Rhodium_Class : SubClass Rhodium ElementalSubstance ;
-
--- Soft silvery metallic element, belongs to group 1 
--- of the periodic table. Rb_97, the naturally occurring isotope, is 
--- radioactive. It is highly reactive, with properties similar to other 
--- elements in group 1, like igniting spontaneously in air. Discovered 
--- spectroscopically in 1861 by W. Bunsen and G.R. Kirchoff.
-fun Rubidium : Class ;
-fun Rubidium_Class : SubClass Rubidium ElementalSubstance ;
-
--- Hard white metallic transition element. Found 
--- with platinum, used as a catalyst in some platinum alloys. Dissolves in 
--- fused alkalis, and is not attacked by acids. Reacts with halogens and 
--- oxygen at high temperatures. Isolated in 1844 by K.K. Klaus.
-fun Ruthenium : Class ;
-fun Ruthenium_Class : SubClass Ruthenium ElementalSubstance ;
-
--- Soft silvery metallic element, belongs to the 
--- lanthanoids. Seven natural isotopes, Sm_147 is the only radioisotope, and 
--- has a half_life of 2.5*10^11 years. Used for making special alloys needed 
--- in the production of nuclear reactors. Also used as a neutron absorber. 
--- Small quantities of samarium oxide is used in special optical glasses. 
--- The largest use of the element is its ferromagnetic alloy which produces 
--- permanent magnets that are five times stronger than magnets produced by 
--- any other material. Discovered by Francois Lecoq de Boisbaudran in 
--- 1879.
-fun Samarium : Class ;
-fun Samarium_Class : SubClass Samarium ElementalSubstance ;
-
--- Rare soft silvery metallic element belonging to 
--- group 3 of the periodic table. There are ten isotopes, nine of which are 
--- radioactive and have short half_lives. Predicted in 1869 by Mendeleev, 
--- isolated by Nilson in 1879.
-fun Scandium : Class ;
-fun Scandium_Class : SubClass Scandium ElementalSubstance ;
-
--- Metalloid element, belongs to group 16 of the 
--- periodic table. Multiple allotropic forms exist. Chemically resembles 
--- sulphur. Discovered in 1817 by Jons J. Berzelius.
-fun Selenium : Class ;
-fun Selenium_Class : SubClass Selenium ElementalSubstance ;
-
--- Metalloid element belonging to group 14 of the 
--- periodic table. It is the second most abundant element in the Earth's 
--- crust, making up 25.7 percent of it by weight. Chemically less reactive 
--- than carbon. First identified by Lavoisier in 1787 and first isolated in 
--- 1823 by Berzelius.
-fun Silicon : Class ;
-fun Silicon_Class : SubClass Silicon ElementalSubstance ;
-
--- White lustrous soft metallic transition element. 
--- Found in both its elemental form and in minerals. Used in jewellery, 
--- tableware and so on. Less reactive than silver, chemically.
-fun Silver : Class ;
-fun Silver_Class : SubClass Silver ElementalSubstance ;
-
--- Soft silvery reactive element belonging to group 1 
--- of the periodic table (alkali metals). It is highly reactive, oxidizing 
--- in air and reacting violently with water, forcing it to be kept under oil. 
--- It was first isolated by Humphrey Davy in 1807.
-fun Sodium : Class ;
-fun Sodium_Class : SubClass Sodium ElementalSubstance ;
-
--- Soft yellowish metallic element, belongs to 
--- group 2 of the periodic table. Highly reactive chemically. Sr_90 is 
--- present in radioactive fallout and has a half_life of 28 years. 
--- Discovered in 1798 by Klaproth and Hope, isolated in 1808 by Humphry 
--- Davy.
-fun Strontium : Class ;
-fun Strontium_Class : SubClass Strontium ElementalSubstance ;
-
--- Yellow, nonmetallic element belonging to group 16 
--- of the periodic table. It is an essential element in living organisms, 
--- needed in the amino acids cysteine and methionine, and hence in many 
--- proteins. Absorbed by plants from the soil as sulphate ion.
-fun Sulphur : Class ;
-fun Sulphur_Class : SubClass Sulphur ElementalSubstance ;
-
--- Heavy blue_grey metallic transition element. 
--- Ta_181 is a stable isotope, and Ta_180 is a radioactive isotope, with a 
--- half_life in excess of 10^7 years. Used in surgery as it is unreactive. 
--- Forms a passive oxide layer in air. Identified in 1802 by Ekeberg and 
--- isolated in 1820 by Jons J. Berzelius.
-fun Tantalum : Class ;
-fun Tantalum_Class : SubClass Tantalum ElementalSubstance ;
-
--- Radioactive metallic transition element. Can 
--- be detected in some stars and the fission products of uranium. First made 
--- by Perrier and Segre by bombarding molybdenum with deutrons, giving them 
--- Tc_97. Tc_99 is the most stable isotope with a half_life of 2.6*10^6 
--- years. Sixteen isotopes are known. Organic technetium compounds are used 
--- in bone imaging. Chemical properties are intermediate between rhenium and 
--- manganese.
-fun Technetium : Class ;
-fun Technetium_Class : SubClass Technetium ElementalSubstance ;
-
--- Silvery metalloid element of group 16. Eight 
--- natural isotopes, nine radioactive isotopes. Used in semiconductors and 
--- to a degree in some steels. Chemistry is similar to {sulphur}. 
--- Discovered in 1782 by Franz Miller.
-fun Tellurium : Class ;
-fun Tellurium_Class : SubClass Tellurium ElementalSubstance ;
-
--- Silvery metallic element belonging to the 
--- lanthanoids. Tb_159 is the only stable isotope, there are seventeen 
--- artificial isotopes. Discovered by G.G. Mosander in 1843.
-fun Terbium : Class ;
-fun Terbium_Class : SubClass Terbium ElementalSubstance ;
-
--- Pure, unreacted thallium appears silvery_white 
--- and exhibits a metallic lustre. Upon reacting with air, it begins to turn 
--- bluish_grey and looks like lead. It is very malleable, and can be cut 
--- with a knife. There are two stable isotopes, and four radioisotopes, 
--- Tl_204 being the most stable with a half_life of 3.78 years. Thallium 
--- sulphate was used as a rodenticide. Thallium sulphine's conductivity 
--- changes with exposure to infrared light, this gives it a use in infrared 
--- detectors. Discovered by Sir William Crookes via spectroscopy. Its name 
--- comes from the Greek word thallos, which means green twig. Thallium and 
--- its compounds are toxic and can cause cancer.
-fun Thallium : Class ;
-fun Thallium_Class : SubClass Thallium ElementalSubstance ;
-
--- Grey radioactive metallic element. Belongs to 
--- actinoids. Found in monazite sand in Brazil, India and the US. 
--- Thorium_232 has a half_life of 1.39x10^10 years. Can be used as a nuclear 
--- fuel for breeder reactors. Thorium_232 captures slow {neutron}s and 
--- breeds uranium_233. Discovered by Jons J. Berzelius in 1829.
-fun Thorium : Class ;
-fun Thorium_Class : SubClass Thorium ElementalSubstance ;
-
--- Soft grey metallic element that belongs to the 
--- lanthanoids. One natural isotope exists, Tm_169, and seventeen artificial 
--- isotopes have been produced. No known uses for the element. Discovered 
--- in 1879 by Per Theodor Cleve.
-fun Thulium : Class ;
-fun Thulium_Class : SubClass Thulium ElementalSubstance ;
-
--- Silvery malleable metallic element belonging to group 
--- 14 of the periodic table. Twenty_six isotopes are known, five of which 
--- are radioactive. Chemically reactive. Combines directly with chlorine 
--- and oxygen and displaces hydrogen from dilute acids.
-fun Tin : Class ;
-fun Tin_Class : SubClass Tin ElementalSubstance ;
-
--- White metallic transition element. Occurs in 
--- numerous minerals. Used in strong, light corrosion_resistant alloys. 
--- Forms a passive oxide coating when exposed to air. First discovered by 
--- Gregor in 1789.
-fun Titanium : Class ;
-fun Titanium_Class : SubClass Titanium ElementalSubstance ;
-
--- White or grey metallic transition element, 
--- formerly called {wolfram}. Forms a protective oxide in air and can be 
--- oxidized at high temperature. First isolated by Jose and Fausto de 
--- Elhuyer in 1783.
-fun Tungsten : Class ;
-fun Tungsten_Class : SubClass Tungsten ElementalSubstance ;
-
--- Half_life of approximately 10ms. Reported in 
--- 1994 by German researchers at Darmstadt, Germany.
-fun Unnildecium : Class ;
-fun Unnildecium_Class : SubClass Unnildecium ElementalSubstance ;
-
--- Half_life of 0.9 +/_ 0.2 s. Discovered by the 
--- Joint Institute for Nuclear Research at Dubna (U.S.S.R.) in June of 1974. 
--- Its existence was confirmed by the Lawrence Berkeley Laboratory and 
--- Livermore National Laboratory in September of 1974.
-fun Unnilhexium : Class ;
-fun Unnilhexium_Class : SubClass Unnilhexium ElementalSubstance ;
-
--- Radioactive transition metal.
-fun Unniloctium : Class ;
-fun Unniloctium_Class : SubClass Unniloctium ElementalSubstance ;
-
--- Radioactive transactinide element. Half_life 
--- of 1.6s. Discovered in 1970 by Berkeley researchers. So far, seven 
--- isotopes have been discovered.
-fun Unnilpentium : Class ;
-fun Unnilpentium_Class : SubClass Unnilpentium ElementalSubstance ;
-
--- Radioactive transactinide element. Expected 
--- to have similar chemical properties to those displayed by hafnium. Rf_260 
--- was discovered by the Joint Nuclear Research Institute at Dubna (U.S.S.R.) 
--- in 1964. Researchers at Berkeley discovered Unq_257 and Unq_258 in 
--- 1964.
-fun Unnilquadium : Class ;
-fun Unnilquadium_Class : SubClass Unnilquadium ElementalSubstance ;
-
--- Radioactive transition metal. Half_life of 
--- approximately 1/500 s. Discovered by the Joint Institute for Nuclear 
--- Research at Dubna (U.S.S.R.) in 1976. Confirmed by West German physicists 
--- at the Heavy Ion Research Laboratory at Darmstadt.
-fun Unnilseptium : Class ;
-fun Unnilseptium_Class : SubClass Unnilseptium ElementalSubstance ;
-
--- White radioactive metallic element belonging to 
--- the actinoids. Three natural isotopes, U_238, U_235 and U_234. 
--- Uranium_235 is used as the fuel for nuclear reactors and weapons. 
--- Discovered by Martin H. Klaproth in 1789.
-fun Uranium : Class ;
-fun Uranium_Class : SubClass Uranium ElementalSubstance ;
-
--- Soft and ductile, bright white metal. Good 
--- resistance to corrosion by alkalis, sulphuric and hydrochloric acid. It 
--- oxidizes readily about 933K. There are two naturally occurring isotopes 
--- of vanadium, and 5 radioisotopes, V_49 having the longest half_life at 337 
--- days. Vanadium has nuclear applications, the foil is used in cladding 
--- titanium to steel, and vanadium_gallium tape is used to produce a 
--- superconductive magnet. Originally discovered by Andres Manuel del Rio of 
--- Mexico City in 1801. His discovery went unheeded, however, and in 1820, 
--- Nils Gabriel Sefstron of Sweden rediscovered it. Metallic vanadium was 
--- isolated by Henry Enfield Roscoe in 1867. The name vanadium comes from 
--- {Vanadis}, a goddess of Scandinavian mythology. Silvery_white metallic 
--- transition element. Vanadium is essential to {ascidian}s. Rats and 
--- chickens are also known to require it. Metal powder is a fire hazard, and 
--- vanadium compounds should be considered highly toxic. May cause lung 
--- cancer if inhaled.
-fun Vanadium : Class ;
-fun Vanadium_Class : SubClass Vanadium ElementalSubstance ;
-
--- Colourless, odourless gas belonging to group 18 on 
--- the periodic table (the noble gases.) Nine natural isotopes and seven 
--- radioactive isotopes are known. Xenon was part of the first noble_gas 
--- compound synthesized. Several others involving Xenon have been found 
--- since then. Xenon was discovered by Ramsey and Travers in 1898.
-fun Xenon : Class ;
-fun Xenon_Class : SubClass Xenon ElementalSubstance ;
-
--- Silvery metallic element of the lanthanoids. 
--- Seven natural isotopes and ten artificial isotopes are known. Used in 
--- certain steels. Discovered by J.D.G. Marignac in 1878.
-fun Ytterbium : Class ;
-fun Ytterbium_Class : SubClass Ytterbium ElementalSubstance ;
-
--- Silvery_grey metallic element of group 3 on the 
--- periodic table. Found in uranium ores. The only natural isotope is Y_89, 
--- there are 14 other artificial isotopes. Chemically resembles the 
--- lanthanoids. Stable in the air below 400 degrees, celsius. Discovered in 
--- 1828 by Friedrich Wohler.
-fun Yttrium : Class ;
-fun Yttrium_Class : SubClass Yttrium ElementalSubstance ;
-
--- Blue_white metallic element. Occurs in multiple 
--- compounds naturally. Five stable isotopes are six radioactive isotopes 
--- have been found. Chemically a reactive metal, combines with oxygen and 
--- other non_metals, reacts with dilute acids to release hydrogen.
-fun Zinc : Class ;
-fun Zinc_Class : SubClass Zinc ElementalSubstance ;
-
--- Grey_white metallic transition element. Five 
--- natural isotopes and six radioactive isotopes are known. Used in nuclear 
--- reactors for a {neutron} absorber. Discovered in 1789 by Martin Klaproth, 
--- isolated in 1824 by Berzelius.
-fun Zirconium : Class ;
-fun Zirconium_Class : SubClass Zirconium ElementalSubstance ;
-}
diff --git a/examples/SUMO/elementsEng.gf b/examples/SUMO/elementsEng.gf
deleted file mode 100644
--- a/examples/SUMO/elementsEng.gf
+++ /dev/null
@@ -1,117 +0,0 @@
---# -path=.:englishExtended
-concrete elementsEng of elements = BasicEng ** open ParadigmsEng,NounEng  in {
-
-lin 
-
-Hydrogen = UseN (mkN "Hydrogen") ;
-Helium = UseN (mkN "Helium") ;
-Lithium = UseN (mkN "Lithium") ;
-Beryllium = UseN (mkN "Beryllium") ;
-Boron = UseN (mkN "Boron") ;
-Carbon = UseN (mkN "Carbon") ;
-Nitrogen = UseN (mkN "Nitrogen") ;
-Oxygen = UseN (mkN "Oxygen") ;
-Fluorine = UseN (mkN "Fluorine") ;
-Neon = UseN (mkN "Neon") ;
-Sodium = UseN (mkN "Sodium") ;
-Magnesium = UseN (mkN "Magnesium") ;
-Aluminum = UseN (mkN "Aluminum") ;
-Silicon = UseN (mkN "Silicon") ;
-Phosphorus = UseN (mkN "Phosphorus") ;
-Sulphur = UseN (mkN "Sulphur") ;
-Chlorine = UseN (mkN "Chlorine") ;
-Argon = UseN (mkN "Argon") ;
-Potassium = UseN (mkN "Potassium") ;
-Calcium = UseN (mkN "Calcium") ;
-Scandium = UseN (mkN "Scandium") ;
-Titanium = UseN (mkN "Titanium") ;
-Vanadium = UseN (mkN "Vanadium") ;
-Chromium = UseN (mkN "Chromium") ;
-Manganese = UseN (mkN "Manganese") ;
-Iron = UseN (mkN "Iron") ;
-Cobalt = UseN (mkN "Cobalt") ;
-Nickel = UseN (mkN "Nickel") ;
-Copper = UseN (mkN "Copper") ;
-Zinc = UseN (mkN "Zinc") ;
-Gallium = UseN (mkN "Gallium") ;
-Germanium = UseN (mkN "Germanium") ;
-Arsenic = UseN (mkN "Arsenic") ;
-Selenium = UseN (mkN "Selenium") ;
-Bromine = UseN (mkN "Bromine") ;
-Krypton = UseN (mkN "Krypton") ;
-Rubidium = UseN (mkN "Rubidium") ;
-Strontium = UseN (mkN "Strontium") ;
-Yttrium = UseN (mkN "Yttrium") ;
-Zirconium = UseN (mkN "Zirconium") ;
-Niobium = UseN (mkN "Niobium") ;
-Molybdenum = UseN (mkN "Molybdenum") ;
-Technetium = UseN (mkN "Technetium") ;
-Ruthenium = UseN (mkN "Ruthenium") ;
-Rhodium = UseN (mkN "Rhodium") ;
-Palladium = UseN (mkN "Palladium") ;
-Silver = UseN (mkN "Silver") ;
-Cadmium = UseN (mkN "Cadmium") ;
-Indium = UseN (mkN "Indium") ;
-Tin = UseN (mkN "Tin") ;
-Antimony = UseN (mkN "Antimony") ;
-Tellurium = UseN (mkN "Tellurium") ;
-Iodine = UseN (mkN "Iodine") ;
-Xenon = UseN (mkN "Xenon") ;
-Caesium = UseN (mkN "Caesium") ;
-Barium = UseN (mkN "Barium") ;
-Lanthanum = UseN (mkN "Lanthanum") ;
-Cerium = UseN (mkN "Cerium") ;
-Praseodymium = UseN (mkN "Praseodymium") ;
-Neodymium = UseN (mkN "Neodymium") ;
-Promethium = UseN (mkN "Promethium") ;
-Samarium = UseN (mkN "Samarium") ;
-Europium = UseN (mkN "Europium") ;
-Gadolinium = UseN (mkN "Gadolinium") ;
-Terbium = UseN (mkN "Terbium") ;
-Dysprosium = UseN (mkN "Dysprosium") ;
-Holmium = UseN (mkN "Holmium") ;
-Erbium = UseN (mkN "Erbium") ;
-Thulium = UseN (mkN "Thulium") ;
-Ytterbium = UseN (mkN "Ytterbium") ;
-Lutetium = UseN (mkN "Lutetium") ;
-Hafnium = UseN (mkN "Hafnium") ;
-Tantalum = UseN (mkN "Tantalum") ;
-Tungsten = UseN (mkN "Tungsten") ;
-Rhenium = UseN (mkN "Rhenium") ;
-Osmium = UseN (mkN "Osmium") ;
-Iridium = UseN (mkN "Iridium") ;
-Platinum = UseN (mkN "Platinum") ;
-Gold = UseN (mkN "Gold") ;
-Mercury = UseN (mkN "Mercury") ;
-Thallium = UseN (mkN "Thallium") ;
-Lead = UseN (mkN "Lead") ;
-Bismuth = UseN (mkN "Bismuth") ;
-Polonium = UseN (mkN "Polonium") ;
-Astatine = UseN (mkN "Astatine") ;
-Radon = UseN (mkN "Radon") ;
-Francium = UseN (mkN "Francium") ;
-Radium = UseN (mkN "Radium") ;
-Actinium = UseN (mkN "Actinium") ;
-Thorium = UseN (mkN "Thorium") ;
-Protactinium = UseN (mkN "Protactinium") ;
-Uranium = UseN (mkN "Uranium") ;
-Neptunium = UseN (mkN "Neptunium") ;
-Plutonium = UseN (mkN "Plutonium") ;
-Americium = UseN (mkN "Americium") ;
-Curium = UseN (mkN "Curium") ;
-Berkelium = UseN (mkN "Berkelium") ;
-Californium = UseN (mkN "Californium") ;
-Einsteinium = UseN (mkN "Einsteinium") ;
-Fermium = UseN (mkN "Fermium") ;
-Mendelevium = UseN (mkN "Mendelevium") ;
-Nobelium = UseN (mkN "Nobelium") ;
-Lawrencium = UseN (mkN "Lawrencium") ;
-Unnilquadium = UseN (mkN "Unnilquadium") ;
-Unnilpentium = UseN (mkN "Unnilpentium") ;
-Unnilhexium = UseN (mkN "Unnilhexium") ;
-Unnilseptium = UseN (mkN "Unnilseptium") ;
-Unniloctium = UseN (mkN "Unniloctium") ;
-Meitnerium = UseN (mkN "Meitnerium") ;
-Unnildecium = UseN (mkN "Unnildecium") ;
-
-};
diff --git a/examples/SUMO/engineering.gf b/examples/SUMO/engineering.gf
deleted file mode 100644
--- a/examples/SUMO/engineering.gf
+++ /dev/null
@@ -1,1082 +0,0 @@
-abstract engineering = open Merge, Mid_level_ontology in {
-
-
-
-
---  A PureTwopole that accumulates across variable.
-fun AcrossVariableAccumulator : Class ;
-fun AcrossVariableAccumulator_Class : SubClass AcrossVariableAccumulator PureTwopole ;
-
--- A Source that models a generator of across variable.
-fun AcrossVariableSource : Class ;
-fun AcrossVariableSource_Class : SubClass AcrossVariableSource Source ;
-
--- algebraic equation or set of equations
-fun AlgebraicAttribute : Ind EquationAttribute ;
-
-
--- An Equation that is not
--- a DifferentialEquation
-fun AlgebraicEquation : Class ;
-fun AlgebraicEquation_Class : SubClass AlgebraicEquation Equation ;
-
--- Set of both differential and algebraic equations
-fun AlgebroDifferentialAttribute : Ind InternalAttribute ;
-
-
--- Electronic equipment that increases strength of
--- signals passing through it, it can be modeled using a controlled
--- source, or an operational amplifier.
-fun Amplifier : Class ;
-fun Amplifier_Class : SubClass Amplifier ElectricalCircuit ;
-
--- PhysicalDimension of angular velocity, [s^_1].
-fun AngularVelocity : Ind PhysicalDimension ;
-
-
--- set of application domains (medicine, physics, etc)
-fun ApplicationDomain : Class ;
-fun ApplicationDomain_Class : SubClass ApplicationDomain InternalAttribute ;
-
--- article
-fun ArticleCategory : Ind DocumentCategory ;
-
-
--- astronomy
-fun AstronomyDomain : Class ;
-fun AstronomyDomain_Class : SubClass AstronomyDomain PhysicsDomain ;
-
--- For given class and for given attribute, return
--- a subclass of the class of object having the attribute
-fun AttrFn : Class -> El Attribute -> Class ;
-
-
--- autonomous
-fun Autonomous : Class ;
-fun Autonomous_Class : SubClass Autonomous InternalAttribute ;
-
--- With no backlash.
-fun Backlashless : Class ;
-fun Backlashless_Class : SubClass Backlashless InternalAttribute ;
-
--- the part of a transistor that separates the emitter 
--- from the collector
-fun Base : Class ;
-fun Base_Class : SubClass Base Terminal ;
-
-fun Battery_DCPowerSource : SubClass Battery DCPowerSource ;
-
--- Bessel's equation
-fun BesselsEquation : Class ;
-fun BesselsEquation_Class : SubClass BesselsEquation (both NonlinearEquation OrdinaryDifferentialEquation) ;
-
-
--- Bipolar transistor
-fun BjtTransistor : Class ;
-fun BjtTransistor_Class : SubClass BjtTransistor Transistor ;
-
--- A SinglePhaseRectifier of
--- that exploits both polarities of the input power source.
-fun BridgeSinglePhaseRectifier : Class ;
-fun BridgeSinglePhaseRectifier_Class : SubClass BridgeSinglePhaseRectifier SinglePhaseRectifier ;
-
--- With no brushes (of electrical motors)
-fun Brushless : Class ;
-fun Brushless_Class : SubClass Brushless InternalAttribute ;
-
--- An ElectricalComponent characterized by its
--- capacitance.
-fun Capacitor : Class ;
-fun Capacitor_Class : SubClass Capacitor ElectricalComponent ;
-
--- An AcrossVariableAccumulator from electrical energy domain.
-fun CapacitorElement : Class ;
-fun CapacitorElement_Class : SubClass CapacitorElement ElectricDevice ;
-
--- 4_wheeled motor vehicle, usually propelled by
--- an internal combustion engine
-fun Car : Class ;
-fun Car_Class : SubClass Car Vehicle ;
-
--- circuit theory
-fun CircuitTheoryDomain : Class ;
-fun CircuitTheoryDomain_Class : SubClass CircuitTheoryDomain (both ElectricalEngineeringDomain PhysicsDomain) ;
-
-
--- the electrode in a transistor through which a 
--- primary flow of carriers leaves the inter_electrode region
-fun Collector : Class ;
-fun Collector_Class : SubClass Collector Terminal ;
-
--- The ability of material to stretch or bend.
-fun Compliance : Ind PhysicalAttribute ;
-
-
--- A collection of bytes stored as an 
--- individual entity. All data on disk is stored as a file with an 
--- assigned file name that is unique within the folder (directory) 
--- it resides in. ComputerFile file systems contain only files and folders
-fun ComputerFile : Class ;
-fun ComputerFile_Class : SubClass ComputerFile ContentBearingObject ;
-
-fun ComputerProgram_ITAgent : SubClass ComputerProgram ITAgent ;
-
--- the ability of a material to lead current
-fun Conductivity : Ind PhysicalAttribute ;
-
-
--- A Substance that readily conducts
--- electricity.
-fun ConductorSubstance : Class ;
-fun ConductorSubstance_Class : SubClass ConductorSubstance Substance ;
-
--- A class of control design method
-fun ControlDesignMethod : Class ;
-fun ControlDesignMethod_Class : SubClass ControlDesignMethod Method ;
-
--- control
-fun ControlDomain : Class ;
-fun ControlDomain_Class : SubClass ControlDomain EngineeringDomain ;
-
--- a mechanism that controls the operation of some
--- device
-fun Controller : Class ;
-fun Controller_Class : SubClass Controller UnknownDomainDevice ;
-
--- PhysicalDimension of electrical current, [A].
-fun Current : Ind PhysicalDimension ;
-
-
--- A direct_current PowerSource.
-fun DCPowerSource : Class ;
-fun DCPowerSource_Class : SubClass DCPowerSource PowerSource ;
-
--- A Dissipator from translatory energy domain.
-fun DamperElement : Class ;
-fun DamperElement_Class : SubClass DamperElement (both Dissipator TranslatoryTwopole) ;
-
-
--- A direct_current electrical motor.
-fun DcMotor : Class ;
-fun DcMotor_Class : SubClass DcMotor ElectricalMotor ;
-
--- differential equation or set of equations
-fun DifferentialAttribute : Ind EquationAttribute ;
-
-
--- An Equation containing differentials
--- of a function
-fun DifferentialEquation : Class ;
-fun DifferentialEquation_Class : SubClass DifferentialEquation Equation ;
-
--- Dimensionless PhysicalDimension.
-fun Dimensionless : Ind PhysicalDimension ;
-
-
--- A semiconductor device that consists of a p_n
--- junction, it is used e.g. in rectifiers or demodulators.
-fun Diode : Class ;
-fun Diode_Class : SubClass Diode SemiconductorComponent ;
-
--- Valve that controls the direction
--- of flow of a fluid
-fun DirectionalControlValve : Class ;
-fun DirectionalControlValve_Class : SubClass DirectionalControlValve Valve ;
-
--- A method of converting continuous problem
--- to a discrete one, loaded by some discretization error.
-fun Discretization : Class ;
-fun Discretization_Class : SubClass Discretization MathematicalMethod ;
-
--- A PureTwopole that models a dissipation of energy.
-fun Dissipator : Class ;
-fun Dissipator_Class : SubClass Dissipator PureTwopole ;
-
--- document category
-fun DocumentCategory : Class ;
-fun DocumentCategory_Class : SubClass DocumentCategory WebDocumentAttribute ;
-
--- A SinglePhaseRectifier of
--- that exploits both polarities of the input power source.
-fun DoublerSinglePhaseRectifier : Class ;
-fun DoublerSinglePhaseRectifier_Class : SubClass DoublerSinglePhaseRectifier SinglePhaseRectifier ;
-
--- Asserts that the constitutive relation of
--- a multipole does depend on time.
-fun DynamicMultipole : Ind MultipoleAttribute ;
-
-
--- Electrical energetic interaction
-fun Electrical : Ind PhysicalDomain ;
-
-
--- A complex ElectricDevice consisting
--- of several mutually interconnected electrical components.
-fun ElectricalCircuit : Class ;
-fun ElectricalCircuit_Class : SubClass ElectricalCircuit ElectricDevice ;
-
--- A discrete ElectricDevice for
--- general usage, such as resistors, capacitors, diodes, transistors etc.
-fun ElectricalComponent : Class ;
-fun ElectricalComponent_Class : SubClass ElectricalComponent ElectricDevice ;
-
--- An ElectricalComponent designed to
--- transmit electricity
-fun ElectricalConductor : Class ;
-fun ElectricalConductor_Class : SubClass ElectricalConductor ElectricalComponent ;
-
--- electrical drives (motors)
-fun ElectricalDrivesDomain : Class ;
-fun ElectricalDrivesDomain_Class : SubClass ElectricalDrivesDomain ElectroMechanicalDevicesDomain ;
-
--- domain involving electrical engineering
-fun ElectricalEngineeringDomain : Class ;
-fun ElectricalEngineeringDomain_Class : SubClass ElectricalEngineeringDomain EngineeringDomain ;
-
--- A Method used in electrical
--- engineering for designing and constructing electrical devices.
-fun ElectricalEngineeringMethod : Class ;
-fun ElectricalEngineeringMethod_Class : SubClass ElectricalEngineeringMethod Method ;
-
--- An electrical motor.
-fun ElectricalMotor : Class ;
-fun ElectricalMotor_Class : SubClass ElectricalMotor (both ElectricDevice Motor) ;
-
-
--- A MultipoleModel containing only
--- electrical multipoles.
-fun ElectricalMultipoleModel : Class ;
-fun ElectricalMultipoleModel_Class : SubClass ElectricalMultipoleModel MultipoleModel ;
-
--- A Process in which electrical
--- interactions take place
-fun ElectricalProcess : Class ;
-fun ElectricalProcess_Class : SubClass ElectricalProcess NaturalProcess ;
-
--- a resonance of electrical energy.
-fun ElectricalResonance : Class ;
-fun ElectricalResonance_Class : SubClass ElectricalResonance (both ElectricalProcess Resonance) ;
-
-
--- A PureTwopole from electrical energy domain.
-fun ElectricalTwopole : Class ;
-fun ElectricalTwopole_Class : SubClass ElectricalTwopole PureTwopole ;
-
--- electrical drives (motors)
-fun ElectroMechanicalDevicesDomain : Class ;
-fun ElectroMechanicalDevicesDomain_Class : SubClass ElectroMechanicalDevicesDomain (both ElectricalEngineeringDomain MechanicalEngineeringDomain) ;
-
-
--- electronic circuits _ electrical circuits 
--- containing complex semiconductor components
-fun ElectronicsDomain : Class ;
-fun ElectronicsDomain_Class : SubClass ElectronicsDomain ElectricalEngineeringDomain ;
-
--- the electrode in a transistor where electrons originate
-fun Emitter : Class ;
-fun Emitter_Class : SubClass Emitter Terminal ;
-
--- engineering (mechanical, electrical)
-fun EngineeringDomain : Class ;
-fun EngineeringDomain_Class : SubClass EngineeringDomain ScienceDomain ;
-
--- a process of designing, manufacturing and
--- operating of an engineering system involving all stages of the life cycle.
-fun EngineersProcess : Class ;
-fun EngineersProcess_Class : SubClass EngineersProcess EngineersSubprocess ;
-
--- a class of subprocesses that are needed to
--- design and operate an engineering system
-fun EngineersSubprocess : Class ;
-fun EngineersSubprocess_Class : SubClass EngineersSubprocess IntentionalProcess ;
-
--- a mathematical statement that two expressions are
--- equal.
-fun Equation : Class ;
-fun Equation_Class : SubClass Equation Proposition ;
-
--- an attribute that applies to an equation
--- or to a set of equations
-fun EquationAttribute : Class ;
-fun EquationAttribute_Class : SubClass EquationAttribute InternalAttribute ;
-
--- Field_effect transistor.
-fun FetTransistor : Class ;
-fun FetTransistor_Class : SubClass FetTransistor Transistor ;
-
--- file system
-fun FileSystem : Class ;
-fun FileSystem_Class : SubClass FileSystem Group ;
-
--- A DifferentialEquation
--- where variables are differentiated only once.
-fun FirstOrderDifferentialEquation : Class ;
-fun FirstOrderDifferentialEquation_Class : SubClass FirstOrderDifferentialEquation DifferentialEquation ;
-
--- A FluidPowerDevice designed to transform
--- fluid_power energy into mechanical translatory energy.
-fun FluidCylinder : Class ;
-fun FluidCylinder_Class : SubClass FluidCylinder (both FluidPowerDevice MechanicalDevice) ;
-
-
--- Fluid power energetic interaction
-fun FluidPower : Ind PhysicalDomain ;
-
-
--- An EngineeringComponent in function of
--- which play role fluid_power energetical interactions.
-fun FluidPowerDevice : Class ;
-fun FluidPowerDevice_Class : SubClass FluidPowerDevice EngineeringComponent ;
-
--- fluid power (hydraulic) systems
-fun FluidPowerDomain : Class ;
-fun FluidPowerDomain_Class : SubClass FluidPowerDomain MechanicalEngineeringDomain ;
-
--- PhysicalDimension of force, [N].
-fun Force : Ind PhysicalDimension ;
-
-
--- Computing a Fourier series for given
--- periodic function
-fun FourierAnalysis : Class ;
-fun FourierAnalysis_Class : SubClass FourierAnalysis MathematicalMethod ;
-
--- Reconstruction of a periodic function
--- from its Fourier series representation.
-fun FourierSynthesis : Class ;
-fun FourierSynthesis_Class : SubClass FourierSynthesis MathematicalMethod ;
-
--- A Multipole with exactly four poles.
-fun Fourpole : Class ;
-fun Fourpole_Class : SubClass Fourpole Multipole ;
-
--- Alters the frequency spectrum of signals
--- passing through it
-fun FrequencyFilter : Class ;
-fun FrequencyFilter_Class : SubClass FrequencyFilter ElectricalCircuit ;
-
--- A MechanicalProcess in which mechanical
--- energy is converted into a heat
-fun Friction : Class ;
-fun Friction_Class : SubClass Friction MechanicalProcess ;
-
--- a toothed wheel that engages another toothed
--- mechanism in order to change the speed or direction of transmitted motion.
-fun Gear : Class ;
-fun Gear_Class : SubClass Gear MechanicalDevice ;
-
--- a pair of gears that are used to change speed or
--- direction of an angular motion, ideal gear train can be modeled using
--- a transformer.
-fun GearTrain : Class ;
-fun GearTrain_Class : SubClass GearTrain MechanicalDevice ;
-
--- A device composed of several gear_trains used
--- to change speed and torque of transmitted motion.
-fun Gearbox : Class ;
-fun Gearbox_Class : SubClass Gearbox MechanicalDevice ;
-
--- A Transducer for which the ratio of
--- across variable on one side and through variable on the
--- other side is equal to the ratio of the remaining two variables.
-fun Gyrator : Class ;
-fun Gyrator_Class : SubClass Gyrator Transducer ;
-
--- A SinglePhaseRectifier of
--- that exploits only one polarity of the input power source.
-fun HalfWaveSinglePhaseRectifier : Class ;
-fun HalfWaveSinglePhaseRectifier_Class : SubClass HalfWaveSinglePhaseRectifier SinglePhaseRectifier ;
-
--- A DifferentialEquation
--- where variables are differentiated more than once.
-fun HigherOrderDifferentialEquation : Class ;
-fun HigherOrderDifferentialEquation_Class : SubClass HigherOrderDifferentialEquation DifferentialEquation ;
-
-fun Human_ITAgent : SubClass Human ITAgent ;
-
--- agent capable of performing ITProcess
-fun ITAgent : Class ;
-fun ITAgent_Class : SubClass ITAgent Agent ;
-
--- A process performed on a computer by a human
--- operator.
-fun ITProcess : Class ;
-fun ITProcess_Class : SubClass ITProcess IntentionalProcess ;
-
--- A Fourpole modeling an
--- OperationalAmplifier with ideal properties.
-fun IdealOperationalAmplifier : Class ;
-fun IdealOperationalAmplifier_Class : SubClass IdealOperationalAmplifier Fourpole ;
-
--- A PureTwopole that models an ideal switch.
-fun IdealSwitch : Class ;
-fun IdealSwitch_Class : SubClass IdealSwitch PureTwopole ;
-
--- A PureTwopole that is linear.
-fun IdealTwopole : Class ;
-fun IdealTwopole_Class : SubClass IdealTwopole PureTwopole ;
-
--- Asserts that a constitutive relation
--- of a multipole does not refer to other variables than terminal or
--- inner.
-fun IndependentMultipole : Ind MultipoleAttribute ;
-
-
--- A property of an electric circuit by which an
--- electromotive force is induced in it by a variation of current.
-fun Inductance : Class ; --  subattribute PhysicalAttribute
-
-
--- An electrical motor powered by a
--- three_phase power suply.
-fun InductionMotor : Class ;
-fun InductionMotor_Class : SubClass InductionMotor ElectricalMotor ;
-
--- An ElectricalComponent that introduces inductance
--- into a circuit.
-fun Inductor : Class ;
-fun Inductor_Class : SubClass Inductor ElectricalComponent ;
-
--- A ThroughVariableAccumulator from electrical energy domain.
-fun InductorElement : Class ;
-fun InductorElement_Class : SubClass InductorElement ElectricDevice ;
-
--- An AcrossVariableAccumulator from translatory energy domain.
-fun Inertor : Class ;
-fun Inertor_Class : SubClass Inertor (both AcrossVariableAccumulator TranslatoryTwopole) ;
-
-
--- The process of deploying an application
--- on a computer.
-fun Installation : Class ;
-fun Installation_Class : SubClass Installation ITProcess ;
-
--- a Substance such as glass or
--- porcelain with negligible electrical conductivity.
-fun InsulatorSubstance : Class ;
-fun InsulatorSubstance_Class : SubClass InsulatorSubstance Substance ;
-
--- An Amplifier that changes the polarity 
--- of the input signal.
-fun InvertingAmplifier : Class ;
-fun InvertingAmplifier_Class : SubClass InvertingAmplifier Amplifier ;
-
--- Junction field_effect transistor.
-fun JfetTransistor : Class ;
-fun JfetTransistor_Class : SubClass JfetTransistor FetTransistor ;
-
--- light emitted at a p_n junction is proportional 
--- to the bias current, color depends on the material used
-fun LED : Class ;
-fun LED_Class : SubClass LED Diode ;
-
--- PhysicalDimension of length, [m].
-fun Length : Ind PhysicalDimension ;
-
-
--- adjective
-fun LexAdjective : Ind LexiconCategory ;
-
-
--- adverb
-fun LexAdverb : Ind LexiconCategory ;
-
-
--- noun
-fun LexNoun : Ind LexiconCategory ;
-
-
--- verb
-fun LexVerb : Ind LexiconCategory ;
-
-
--- WordNet category: noun, verb, adjective or adverb
-fun LexiconCategory : Class ;
-fun LexiconCategory_Class : SubClass LexiconCategory InternalAttribute ;
-
--- library model
-fun LibraryModelCategory : Ind DocumentCategory ;
-
-
--- A polynomial Equation of the first degree.
-fun LinearEquation : Class ;
-fun LinearEquation_Class : SubClass LinearEquation Equation ;
-
--- Asserts that the constitutive relation of
--- a multipole is linear.
-fun LinearMultipole : Ind MultipoleAttribute ;
-
-
--- A Method that involves using
--- mathematical aparatus.
-fun MathematicalMethod : Class ;
-fun MathematicalMethod_Class : SubClass MathematicalMethod Method ;
-
--- A model that uses the mathematical
--- aparatus
-fun MathematicalModel : Class ;
-fun MathematicalModel_Class : SubClass MathematicalModel Model ;
-
--- A model of a Pendulum consisting
--- of a mass hanged on a stiff string.
-fun MathematicalPendulum : Class ;
-fun MathematicalPendulum_Class : SubClass MathematicalPendulum MathematicalModel ;
-
--- mathematics
-fun MathematicsDomain : Class ;
-fun MathematicsDomain_Class : SubClass MathematicsDomain NaturalSciencesDomain ;
-
--- An EngineeringComponent in function of
--- which play role mechanical energetical interactions.
-fun MechanicalDevice : Class ;
-fun MechanicalDevice_Class : SubClass MechanicalDevice EngineeringComponent ;
-
--- domain involving mechanical engineering
-fun MechanicalEngineeringDomain : Class ;
-fun MechanicalEngineeringDomain_Class : SubClass MechanicalEngineeringDomain EngineeringDomain ;
-
--- A Process in which mechanical
--- interactions take place
-fun MechanicalProcess : Class ;
-fun MechanicalProcess_Class : SubClass MechanicalProcess NaturalProcess ;
-
--- a resonance of mechanical energy.
-fun MechanicalResonance : Class ;
-fun MechanicalResonance_Class : SubClass MechanicalResonance (both MechanicalProcess Resonance) ;
-
-
--- basic (theoretic) mechanics
-fun MechanicsDomain : Class ;
-fun MechanicsDomain_Class : SubClass MechanicsDomain PhysicsDomain ;
-
--- a way of doing something, esp. a systematic one;
--- implies an orderly logical arrangement (usually in steps).
-fun Method : Class ;
-fun Method_Class : SubClass Method Procedure ;
-
--- An abstract object that models certain aspect of a
--- physical object, is subject to abstraction and idealization.
-fun Model : Class ;
-fun Model_Class : SubClass Model Abstract ;
-
--- A creative process of creating a model.
-fun Modeling : Class ;
-fun Modeling_Class : SubClass Modeling IntentionalProcess ;
-
--- Metal_oxyde semiconductor field_effect
--- transistor.
-fun MosfetTransistor : Class ;
-fun MosfetTransistor_Class : SubClass MosfetTransistor FetTransistor ;
-
--- An actuator intended to deliver mechanical power
-fun Motor : Class ;
-fun Motor_Class : SubClass Motor MechanicalDevice ;
-
--- Basic element of a multipole diagram, a
--- multipole is a model of a component of a dynamic system, it can model a
--- real separable component, such as a motor of a vehicle, or just an
--- attribute of the system, such as inertia or friction, multipole interacts
--- with other multipoles through its poles. Multipole Each multipole must have at least one section.
-fun Multipole : Class ;
-fun Multipole_Class : SubClass Multipole Model ;
-
--- a set of tags that can be associated
--- with multipoles
-fun MultipoleAttribute : Class ;
-fun MultipoleAttribute_Class : SubClass MultipoleAttribute InternalAttribute ;
-
--- Graphical representation of a
--- MultipoleModel.
-fun MultipoleDiagram : Class ;
-fun MultipoleDiagram_Class : SubClass MultipoleDiagram ContentBearingObject ;
-
--- Model of a physical system consisting of
--- mutually interconnected multipoles.
-fun MultipoleModel : Class ;
-fun MultipoleModel_Class : SubClass MultipoleModel Model ;
-
--- modeling of a dynamic system by means of
--- its representation by a multipole diagram.
-fun MultipoleModeling : Class ;
-fun MultipoleModeling_Class : SubClass MultipoleModeling Modeling ;
-
--- A part of multipole pole that models
--- a single energetical interaction. If a pole belongs to a multipole, it also belongs to
--- one of its sections.
-fun MultipolePole : Class ;
-fun MultipolePole_Class : SubClass MultipolePole Model ;
-
--- MultipoleSection that contains exactly two
--- poles. MultipolePort Ports do not have three distinct poles.
-fun MultipolePort : Class ;
-fun MultipolePort_Class : SubClass MultipolePort MultipoleSection ;
-
--- One of the postulates of the multipole
--- modeling theory.
-fun MultipolePostulate : Class ;
-
-
--- a multipole variable that have physical
--- dimension and meaning.
-fun MultipoleQuantity : Class ;
-fun MultipoleQuantity_Class : SubClass MultipoleQuantity Quantity ;
-
--- A set of poles that is subject to
--- the postulate of continuity. A multipole may consist of one or
--- more sections. Sections of a single multipole do not overlap
--- and cover all its poles. MultipoleSection Each section must have at least two distinct poles.
-fun MultipoleSection : Class ;
-fun MultipoleSection_Class : SubClass MultipoleSection Model ;
-
--- a variable that describes energetical
--- interactions between multipoles.
-fun MultipoleVariable : Class ;
-fun MultipoleVariable_Class : SubClass MultipoleVariable Number ;
-
--- Property whereby an electromotive force is
--- induced in a circuit by variation of current in a neighboring circuit.
-fun MutualInductance : Class ;
-fun MutualInductance_Class : SubClass MutualInductance Inductance ;
-
--- natural sciences (mathematics, physics)
-fun NaturalSciencesDomain : Class ;
-fun NaturalSciencesDomain_Class : SubClass NaturalSciencesDomain ScienceDomain ;
-
--- A body remains at rest or in motion with
--- a constant velocity unless acted upon by an external force
-fun NewtonsFirstLaw : Class ;
-fun NewtonsFirstLaw_Class : SubClass NewtonsFirstLaw NewtonsLaw ;
-
--- One of three basic laws of classical mechanics.
-fun NewtonsLaw : Class ;
-fun NewtonsLaw_Class : SubClass NewtonsLaw ScientificLaw ;
-
--- The rate of change of momentum is
--- proportional to the imposed force and goes in the direction of
--- the force
-fun NewtonsSecondLaw : Class ;
-fun NewtonsSecondLaw_Class : SubClass NewtonsSecondLaw NewtonsLaw ;
-
--- Action and reaction are equal and opposite.
-fun NewtonsThirdLaw : Class ;
-fun NewtonsThirdLaw_Class : SubClass NewtonsThirdLaw NewtonsLaw ;
-
--- An Amplifier that does not change the polarity 
--- of the input signal.
-fun NoninvertingAmplifier : Class ;
-fun NoninvertingAmplifier_Class : SubClass NoninvertingAmplifier Amplifier ;
-
--- The description of the entity (e.g. a Model)
--- involves nonlinear functions.
-fun Nonlinear : Class ;
-fun Nonlinear_Class : SubClass Nonlinear InternalAttribute ;
-
--- An ElectricalMultipoleModel containing
--- nonlinear multipoles.
-fun NonlinearCircuit : Class ;
-fun NonlinearCircuit_Class : SubClass NonlinearCircuit ElectricalMultipoleModel ;
-
--- An Equation that is not
--- a LinearEquation.
-fun NonlinearEquation : Class ;
-fun NonlinearEquation_Class : SubClass NonlinearEquation Equation ;
-
--- A BjtTransistor with N_P_N junctions.
-fun NpnTransistor : Class ;
-fun NpnTransistor_Class : SubClass NpnTransistor BjtTransistor ;
-
--- A complex semiconductor device with
--- behaviour similar to the IdealOperationalAmplifier.
-fun OperationalAmplifier : Class ;
-fun OperationalAmplifier_Class : SubClass OperationalAmplifier ElectricalCircuit ;
-
--- A DifferentialEquation
--- that is not a PartialDifferentialEquation.
-fun OrdinaryDifferentialEquation : Class ;
-fun OrdinaryDifferentialEquation_Class : SubClass OrdinaryDifferentialEquation DifferentialEquation ;
-
--- Resonance taking place in a series RLC
--- circuit, i.e. in a circuit where its elements are connected in_series.
-fun ParallelResonance : Class ;
-fun ParallelResonance_Class : SubClass ParallelResonance ElectricalResonance ;
-
--- A DifferentialEquation
--- involving a functions of more than one variable.
-fun PartialDifferentialEquation : Class ;
-fun PartialDifferentialEquation_Class : SubClass PartialDifferentialEquation DifferentialEquation ;
-
--- A MechanicalDevice of an object mounted so that
--- it swings freely under the influence of gravity.
-fun Pendulum : Class ;
-fun Pendulum_Class : SubClass Pendulum MechanicalDevice ;
-
--- A DC motor in which the auxiliary
--- magnetic field is provided by a permanent magnet.
-fun PermanentMagnetDcMotor : Class ;
-fun PermanentMagnetDcMotor_Class : SubClass PermanentMagnetDcMotor DcMotor ;
-
--- A physical dimension such as
--- length, mass, force etc.
-fun PhysicalDimension : Class ;
-fun PhysicalDimension_Class : SubClass PhysicalDimension Quantity ;
-
--- An attribute of a multipole pole describing
--- the kind of physical interaction the pole models.
-fun PhysicalDomain : Class ;
-fun PhysicalDomain_Class : SubClass PhysicalDomain InternalAttribute ;
-
--- physics
-fun PhysicsDomain : Class ;
-fun PhysicsDomain_Class : SubClass PhysicsDomain NaturalSciencesDomain ;
-
--- A BjtTransistor with P_N_P junctions.
-fun PnpTransistor : Class ;
-fun PnpTransistor_Class : SubClass PnpTransistor BjtTransistor ;
-
--- The sum of through variables of
--- poles of multipole section is equal to zero.
-fun PostulateOfContinuity : Class ;
-fun PostulateOfContinuity_Class : SubClass PostulateOfContinuity MultipolePostulate ;
-
--- PhysicalDimension of power, [W].
-fun Power : Ind PhysicalDimension ;
-
-
--- power electronic circuits (power supplies etc.)
-fun PowerElectronicsDomain : Class ;
-fun PowerElectronicsDomain_Class : SubClass PowerElectronicsDomain ElectronicsDomain ;
-
-fun PowerSource_Device : SubClass PowerSource Device ;
-
--- PhysicalDimension of pressure, [Pa],[N.m^_2].
-fun Pressure : Ind PhysicalDimension ;
-
-
--- valve that controls the pressure in
--- a fluid
-fun PressureControlValve : Class ;
-fun PressureControlValve_Class : SubClass PressureControlValve Valve ;
-
--- A Twopole that models single physical
--- phenomenon, its constitutive relation has special structure.
-fun PureTwopole : Class ;
-fun PureTwopole_Class : SubClass PureTwopole Twopole ;
-
--- Pulse_width modulation technique
-fun Pwm : Class ;
-fun Pwm_Class : SubClass Pwm ElectricalEngineeringMethod ;
-
--- An ElectricalMultipoleModel containing
--- a ResistorElement and a CapacitorElement.
-fun RCCircuit : Class ;
-fun RCCircuit_Class : SubClass RCCircuit ElectricalMultipoleModel ;
-
--- An ElectricalMultipoleModel containing
--- a ResistorElement, an InductorElement and a CapacitorElement.
-fun RLCCircuit : Class ;
-fun RLCCircuit_Class : SubClass RLCCircuit ElectricalMultipoleModel ;
-
--- An ElectricalMultipoleModel containing
--- a ResistorElement and an InductorElement.
-fun RLCircuit : Class ;
-fun RLCircuit_Class : SubClass RLCircuit ElectricalMultipoleModel ;
-
--- electrical device that transforms alternating
--- into direct current.
-fun Rectifier : Class ;
-fun Rectifier_Class : SubClass Rectifier ElectricalCircuit ;
-
--- an electro_mechanical device used as a controlled switch
-fun Relay : Class ;
-fun Relay_Class : SubClass Relay (both ElectricalComponent MechanicalDevice) ;
-
-
--- relays
-fun RelaysDomain : Class ;
-fun RelaysDomain_Class : SubClass RelaysDomain ElectroMechanicalDevicesDomain ;
-
--- Most common type of a presure control valve;
--- it consists of a piston that is retained on its seat by a spring
-fun ReliefValve : Class ;
-fun ReliefValve_Class : SubClass ReliefValve PressureControlValve ;
-
--- A material's opposition to the flow of
--- electric current.
-fun Resistivity : Ind PhysicalAttribute ;
-
-
--- An ElectricalComponent that resists the flow of
--- electrical current. A Dissipator from electrical energy domain.
-fun ResistorElement : Class ;
-fun ResistorElement_Class : SubClass ResistorElement (both ElectricDevice ElectricalComponent) ;
-
-
--- a vibration of large amplitude produced by
--- a relatively small vibration near the same frequency of vibration
--- as the natural frequency of the resonating system.
-fun Resonance : Class ;
-fun Resonance_Class : SubClass Resonance NaturalProcess ;
-
--- Root_locus control design method
-fun RootLocus : Class ;
-fun RootLocus_Class : SubClass RootLocus ControlDesignMethod ;
-
--- Mechanic rotary energetic interaction
-fun Rotary : Ind PhysicalDomain ;
-
-
-fun Rotor_ElectricDevice : SubClass Rotor ElectricDevice ;
-
-fun Rotor_MechanicalDevice : SubClass Rotor MechanicalDevice ;
-
--- science (natural sciences, engineering, medicine...)
-fun ScienceDomain : Class ;
-fun ScienceDomain_Class : SubClass ScienceDomain ApplicationDomain ;
-
--- A generalization based on recurring facts or events 
--- (in science or mathematics etc)
-fun ScientificLaw : Class ;
-fun ScientificLaw_Class : SubClass ScientificLaw Proposition ;
-
--- An electrical device that exploits
--- properties of semiconductors.
-fun SemiconductorComponent : Class ;
-fun SemiconductorComponent_Class : SubClass SemiconductorComponent ElectricalComponent ;
-
--- A DC motor in which the auxiliary
--- magnetic field is provided an active circuit.
-fun SeparatelyExcitedDcMotor : Class ;
-fun SeparatelyExcitedDcMotor_Class : SubClass SeparatelyExcitedDcMotor DcMotor ;
-
--- Resonance taking place in a parallel RLC
--- circuit, i.e. in a circuit where its elements are connected in_parallel.
-fun SeriesResonance : Class ;
-fun SeriesResonance_Class : SubClass SeriesResonance ElectricalResonance ;
-
--- A Set of equations
-fun SetOfEquations : Class ;
-fun SetOfEquations_Class : SubClass SetOfEquations Set ;
-
--- A revolving rod that transmits power or motion.
-fun Shaft : Class ;
-fun Shaft_Class : SubClass Shaft MechanicalDevice ;
-
--- A PowerSource of single phase
--- alternating current.
-fun SinglePhasePowerSource : Class ;
-fun SinglePhasePowerSource_Class : SubClass SinglePhasePowerSource PowerSource ;
-
--- A Rectifier of single phase AC
--- voltage.
-fun SinglePhaseRectifier : Class ;
-fun SinglePhaseRectifier_Class : SubClass SinglePhaseRectifier Rectifier ;
-
--- solved example
-fun SolvedExampleCategory : Ind DocumentCategory ;
-
-
--- A PureTwopole that models a generator of either across or through variable.
-fun Source : Class ;
-fun Source_Class : SubClass Source PureTwopole ;
-
--- a directional control valve that uses a spool
--- to control the direction of flow
-fun SpoolValve : Class ;
-fun SpoolValve_Class : SubClass SpoolValve DirectionalControlValve ;
-
--- a metal device that returns to its shape or
--- position when pushed or pulled or pressed
-fun Spring : Class ;
-fun Spring_Class : SubClass Spring MechanicalDevice ;
-
--- A ThroughVariableAccumulator from translatory energy domain.
-fun SpringElement : Class ;
-fun SpringElement_Class : SubClass SpringElement (both ThroughVariableAccumulator TranslatoryTwopole) ;
-
-
--- Stationary part of a motor or generator in or
--- around which the rotor revolves.
-fun Stator : Class ;
-fun Stator_Class : SubClass Stator (both ElectricDevice MechanicalDevice) ;
-
-
--- The physical property of being inflexible
--- and hard to stretch.
-fun Stiffness : Ind PhysicalAttribute ;
-
-
--- a process of designing an engineering system
-fun SystemDesign : Class ;
-fun SystemDesign_Class : SubClass SystemDesign EngineersSubprocess ;
-
--- a process of specifying requirements
--- on a system
-fun SystemSpecification : Class ;
-fun SystemSpecification_Class : SubClass SystemSpecification EngineersSubprocess ;
-
--- A practical Method or art applied to some
--- particular task
-fun Technique : Class ;
-fun Technique_Class : SubClass Technique Method ;
-
--- a point on an electrical device (such as a 
--- battery) at which electric current enters or leaves
-fun Terminal : Class ; --  meronym ElectricalComponent
-
-
--- A PowerSource of three phase
--- alternating current.
-fun ThreePhasePowerSource : Class ;
-fun ThreePhasePowerSource_Class : SubClass ThreePhasePowerSource PowerSource ;
-
--- A Rectifier of single phase AC
--- voltage.
-fun ThreePhaseRectifier : Class ;
-fun ThreePhaseRectifier_Class : SubClass ThreePhaseRectifier Rectifier ;
-
--- A PureTwopole that accumulates through variable.
-fun ThroughVariableAccumulator : Class ;
-fun ThroughVariableAccumulator_Class : SubClass ThroughVariableAccumulator PureTwopole ;
-
--- A Source that models a generator of through variable.
-fun ThroughVariableSource : Class ;
-fun ThroughVariableSource_Class : SubClass ThroughVariableSource Source ;
-
--- a SemiconductorComponent that consists of three
--- p_n junctions, it is used e.g. in controlled rectifiers.
-fun Thyristor : Class ;
-fun Thyristor_Class : SubClass Thyristor SemiconductorComponent ;
-
--- PhysicalDimension of torque, [N/m].
-fun Torque : Ind PhysicalDimension ;
-
-
--- A Transducer for which the ratio of
--- across variables and through variables respectively is equal.
-fun Transformer : Class ;
-fun Transformer_Class : SubClass Transformer Transducer ;
-
--- An ElectricalDevice by which alternating 
--- current of one voltage is changed to another voltage.
-fun TransformerDevice : Class ;
-fun TransformerDevice_Class : SubClass TransformerDevice ElectricDevice ;
-
--- A semiconductor device capable of amplification
--- or switching.
-fun Transistor : Class ;
-fun Transistor_Class : SubClass Transistor SemiconductorComponent ;
-
--- Mechanic translatory energetic interaction
-fun Translatory : Ind PhysicalDomain ;
-
-
--- A PureTwopole from translatory energy domain.
-fun TranslatoryTwopole : Class ;
-fun TranslatoryTwopole_Class : SubClass TranslatoryTwopole PureTwopole ;
-
-fun Truck_Car : SubClass Truck Car ;
-
--- tutorial
-fun TutorialCategory : Ind DocumentCategory ;
-
-
--- A Multipole with exactly two poles. Twopole Twopole has exactly one port.
-fun Twopole : Class ;
-fun Twopole_Class : SubClass Twopole Multipole ;
-
--- A Multipole with exactly two sections.
-fun Twoport : Class ;
-fun Twoport_Class : SubClass Twoport Fourpole ;
-
--- The process of removing of an installed
--- application from a computer.
-fun UnInstallation : Class ;
-fun UnInstallation_Class : SubClass UnInstallation ITProcess ;
-
--- An EngineeringComponent for which
--- the principal physical domain is not specified.
-fun UnknownDomainDevice : Class ;
-fun UnknownDomainDevice_Class : SubClass UnknownDomainDevice EngineeringComponent ;
-
--- A hydraulic valve.
-fun Valve : Class ;
-fun Valve_Class : SubClass Valve (both FluidPowerDevice MechanicalDevice) ;
-
-
--- Bessel's equation
-fun VanderpolsEquation : Class ;
-fun VanderpolsEquation_Class : SubClass VanderpolsEquation (both NonlinearEquation OrdinaryDifferentialEquation) ;
-
-
--- PhysicalDimension of velocity, [m/s].
-fun Velocity : Ind PhysicalDimension ;
-
-
--- PhysicalDimension of voltage, [V].
-fun Voltage : Ind PhysicalDimension ;
-
-
--- valve that controls the flow rate of
--- a fluid
-fun VolumeControlValve : Class ;
-fun VolumeControlValve_Class : SubClass VolumeControlValve Valve ;
-
--- PhysicalDimension of volume flow, [m^_3].
-fun VolumeFlow : Ind PhysicalDimension ;
-
-
--- knowledge base document _ a document in natural language 
--- representing one piece of knowledge in the knowledge base
-fun WebDocument : Class ;
-fun WebDocument_Class : SubClass WebDocument ContentBearingObject ;
-
--- knowledge base document attribute
-fun WebDocumentAttribute : Class ;
-fun WebDocumentAttribute_Class : SubClass WebDocumentAttribute InternalAttribute ;
-
--- 
-fun ZenerDiode : Class ;
-fun ZenerDiode_Class : SubClass ZenerDiode Diode ;
-
--- A meronymy relation similar to part, but
--- for abstract rather than physical things.
-fun abstractPart : El Abstract -> El Abstract -> Formula;
-
-
--- multipole pole has across variable
-fun hasAcrossVariable : El MultipolePole -> El MultipoleVariable -> Formula ;
-
-
--- multipole quantity has certain dimension
-fun hasDimension : El MultipoleQuantity -> El PhysicalDimension -> Formula ;
-
-
--- multipole pole has through variable
-fun hasThroughVariable : El MultipolePole -> El MultipoleVariable -> Formula ;
-
-
--- multipole quantity has certain variable
-fun hasVariable : El MultipoleQuantity -> El MultipoleVariable -> Formula ;
-
-
--- associates a SUMO concept with a lexicon word
-fun lexicon : El SetOrClass -> El LexiconCategory -> El SymbolicString -> Formula ;
-
-
--- A relation similar to WordNet meronymy relation.
--- If class A is a meronym of class B, it means that instances of A
--- typically are parts of instances of B.
-fun meronym : Desc Object -> Desc Object -> Formula ;
-
-
--- A relation signaling that certain model is
--- convenient for modeling of certain class of devices.
-fun models : El Model -> El EngineeringComponent -> Formula ;
-
-
--- Relation that holds for pairs of physical
--- dimensions that multiply up into a physical dimension of Power.
--- The first is considered for across variable, the second for through
--- variable.
-fun physicalDomain : El PhysicalDimension -> El PhysicalDimension -> El PhysicalDomain -> Formula ;
-}
diff --git a/examples/SUMO/mondial.gf b/examples/SUMO/mondial.gf
deleted file mode 100644
--- a/examples/SUMO/mondial.gf
+++ /dev/null
@@ -1,11117 +0,0 @@
-abstract mondial = open Merge, Mid_level_ontology, Geography, Government in {
-
-
-
-
-fun Afghanistan : Ind (both Country Nation);
-
-fun Albania : Ind (both Country Nation);
-
-fun Algeria : Ind (both Country Nation);
-
-fun Andorra : Ind (both Country EuropeanNation);
-
-fun Angola : Ind (both Country Nation);
-
-fun AntiguaAndBarbuda : Ind (both Country Nation);
-
-fun Argentina : Ind (both Country Nation);
-
-fun Armenia : Ind (both Country Nation);
-
-fun Australia : Ind (both Country Nation);
-
-fun Austria : Ind (both Country Nation);
-
-fun Azerbaijan : Ind (both Country Nation);
-
-fun Bahamas : Ind Country ;
-
-fun Bahrain : Ind (both Country Nation);
-
-fun Bangladesh : Ind (both Country Nation);
-
-fun Barbados : Ind (both Country Nation);
-
-fun Belarus : Ind (both Country Nation);
-
-fun Belgium : Ind (both Country EuropeanNation);
-
-fun Belize : Ind (both Country Nation);
-
-fun Benin : Ind (both Country Nation);
-
-fun Bhutan : Ind (both Country Nation);
-
-fun Bolivia : Ind (both Country Nation);
-
-fun BosniaAndHerzegovina : Ind (both Country Nation);
-
-fun Botswana : Ind (both Country Nation);
-
-fun Brazil : Ind (both Country Nation);
-
-fun Brunei : Ind (both Country Nation);
-
-fun Bulgaria : Ind (both Country Nation);
-
-fun BurkinaFaso : Ind (both Country Nation);
-
-fun Burma : Ind Country ;
-
-fun Burundi : Ind (both Country Nation);
-
-fun Cambodia : Ind (both Country Nation);
-
-fun Cameroon : Ind (both Country Nation);
-
-fun Canada : Ind (both Country Nation);
-
-fun CapeVerde : Ind (both Country Nation);
-
-fun CentralAfricanRepublic : Ind (both Country Nation);
-
-fun Chad : Ind (both Country Nation);
-
-fun Chile : Ind (both Country Nation);
-
-fun China : Ind (both Country Nation);
-
-fun Colombia : Ind (both Country Nation);
-
-fun Comoros : Ind (both Country Nation);
-
-fun Congo : Ind Country ;
-
-fun Continents_Africa : Ind Continent ;
-
-fun Continents_America : Ind Continent ;
-
-fun Continents_Asia : Ind Continent ;
-
-fun Continents_Australia_Oceania : Ind Continent ;
-
-fun Continents_Europe : Ind Continent ;
-
-fun CostaRica : Ind (both Country Nation);
-
-fun CoteDIvoire : Ind (both Country Nation);
-
-fun Countries_AFG_cities_Kabul : Ind City ;
-
-fun Countries_AG_cities_SaintJohns : Ind City ;
-
-fun Countries_AL_cities_Durres : Ind City ;
-
-fun Countries_AL_cities_Elbasan : Ind City ;
-
-fun Countries_AL_cities_Korce : Ind City ;
-
-fun Countries_AL_cities_Shkoder : Ind City ;
-
-fun Countries_AL_cities_Tirane : Ind City ;
-
-fun Countries_AL_cities_Vlore : Ind City ;
-
-fun Countries_AND_cities_AndorralaVella : Ind City ;
-
-fun Countries_ANG_provinces_Bengo : Ind Province ;
-
-fun Countries_ANG_provinces_Bengo_cities_Caxito : Ind City ;
-
-fun Countries_ANG_provinces_Benguela : Ind Province ;
-
-fun Countries_ANG_provinces_Benguela_cities_Benguela : Ind City ;
-
-fun Countries_ANG_provinces_Bie : Ind Province ;
-
-fun Countries_ANG_provinces_Bie_cities_Bie : Ind City ;
-
-fun Countries_ANG_provinces_Cabinda : Ind Province ;
-
-fun Countries_ANG_provinces_Cabinda_cities_Cabinda : Ind City ;
-
-fun Countries_ANG_provinces_CuandoCubango : Ind Province ;
-
-fun Countries_ANG_provinces_CuandoCubango_cities_Menongue : Ind City ;
-
-fun Countries_ANG_provinces_CuanzaNorte : Ind Province ;
-
-fun Countries_ANG_provinces_CuanzaNorte_cities_Ndalatando : Ind City ;
-
-fun Countries_ANG_provinces_CuanzaSul : Ind Province ;
-
-fun Countries_ANG_provinces_CuanzaSul_cities_Sumbe : Ind City ;
-
-fun Countries_ANG_provinces_Cunene : Ind Province ;
-
-fun Countries_ANG_provinces_Cunene_cities_Ngiva : Ind City ;
-
-fun Countries_ANG_provinces_Huambo : Ind Province ;
-
-fun Countries_ANG_provinces_Huambo_cities_Huambo : Ind City ;
-
-fun Countries_ANG_provinces_Huila : Ind Province ;
-
-fun Countries_ANG_provinces_Huila_cities_Lubango : Ind City ;
-
-fun Countries_ANG_provinces_Luanda : Ind Province ;
-
-fun Countries_ANG_provinces_Luanda_cities_Luanda : Ind City ;
-
-fun Countries_ANG_provinces_LundaNorte : Ind Province ;
-
-fun Countries_ANG_provinces_LundaNorte_cities_Lucapa : Ind City ;
-
-fun Countries_ANG_provinces_LundaSul : Ind Province ;
-
-fun Countries_ANG_provinces_LundaSul_cities_Saurimo : Ind City ;
-
-fun Countries_ANG_provinces_Malanje : Ind Province ;
-
-fun Countries_ANG_provinces_Malanje_cities_Malanje : Ind City ;
-
-fun Countries_ANG_provinces_Moxico : Ind Province ;
-
-fun Countries_ANG_provinces_Moxico_cities_Luena : Ind City ;
-
-fun Countries_ANG_provinces_Namibe : Ind Province ;
-
-fun Countries_ANG_provinces_Namibe_cities_Namibe : Ind City ;
-
-fun Countries_ANG_provinces_Uige : Ind Province ;
-
-fun Countries_ANG_provinces_Uige_cities_Uige : Ind City ;
-
-fun Countries_ANG_provinces_Zaire : Ind Province ;
-
-fun Countries_ANG_provinces_Zaire_cities_MbanzaCongo : Ind City ;
-
-fun Countries_ARM_cities_Yerevan : Ind City ;
-
-fun Countries_AUS_provinces_AustraliaCapitalTerritory : Ind Province ;
-
-fun Countries_AUS_provinces_AustraliaCapitalTerritory_cities_Canberra : Ind City ;
-
-fun Countries_AUS_provinces_CocosIslands : Ind Province ;
-
-fun Countries_AUS_provinces_CocosIslands_cities_BantamVillage : Ind City ;
-
-fun Countries_AUS_provinces_Kirimati : Ind Province ;
-
-fun Countries_AUS_provinces_Kirimati_cities_FlyingFishCove : Ind City ;
-
-fun Countries_AUS_provinces_NewSouthWales : Ind Province ;
-
-fun Countries_AUS_provinces_NewSouthWales_cities_Geelong : Ind City ;
-
-fun Countries_AUS_provinces_NewSouthWales_cities_Newcastle : Ind City ;
-
-fun Countries_AUS_provinces_NewSouthWales_cities_SunshineCoast : Ind City ;
-
-fun Countries_AUS_provinces_NewSouthWales_cities_Sydney : Ind City ;
-
-fun Countries_AUS_provinces_NewSouthWales_cities_Wollongong : Ind City ;
-
-fun Countries_AUS_provinces_NorfolkIsland : Ind Province ;
-
-fun Countries_AUS_provinces_NorfolkIsland_cities_Kingston : Ind City ;
-
-fun Countries_AUS_provinces_NorthernTerritory : Ind Province ;
-
-fun Countries_AUS_provinces_NorthernTerritory_cities_Darwin : Ind City ;
-
-fun Countries_AUS_provinces_Queensland : Ind Province ;
-
-fun Countries_AUS_provinces_Queensland_cities_Brisbane : Ind City ;
-
-fun Countries_AUS_provinces_Queensland_cities_GoldCoast : Ind City ;
-
-fun Countries_AUS_provinces_Queensland_cities_Townsville : Ind City ;
-
-fun Countries_AUS_provinces_SouthAustralia : Ind Province ;
-
-fun Countries_AUS_provinces_SouthAustralia_cities_Adelaide : Ind City ;
-
-fun Countries_AUS_provinces_Tasmania : Ind Province ;
-
-fun Countries_AUS_provinces_Tasmania_cities_Hobart : Ind City ;
-
-fun Countries_AUS_provinces_Victoria : Ind Province ;
-
-fun Countries_AUS_provinces_Victoria_cities_Melbourne : Ind City ;
-
-fun Countries_AUS_provinces_WesternAustralia : Ind Province ;
-
-fun Countries_AUS_provinces_WesternAustralia_cities_Albany : Ind City ;
-
-fun Countries_AUS_provinces_WesternAustralia_cities_Perth : Ind City ;
-
-fun Countries_AZ_cities_Baku : Ind City ;
-
-fun Countries_A_provinces_Burgenland : Ind Province ;
-
-fun Countries_A_provinces_Burgenland_cities_Eisenstadt : Ind City ;
-
-fun Countries_A_provinces_Carinthia : Ind Province ;
-
-fun Countries_A_provinces_Carinthia_cities_Klagenfurt : Ind City ;
-
-fun Countries_A_provinces_LowerAustria : Ind Province ;
-
-fun Countries_A_provinces_LowerAustria_cities_St_Polten : Ind City ;
-
-fun Countries_A_provinces_Salzburg : Ind Province ;
-
-fun Countries_A_provinces_Salzburg_cities_Salzburg : Ind City ;
-
-fun Countries_A_provinces_Styria : Ind Province ;
-
-fun Countries_A_provinces_Styria_cities_Graz : Ind City ;
-
-fun Countries_A_provinces_Tyrol : Ind Province ;
-
-fun Countries_A_provinces_Tyrol_cities_Innsbruck : Ind City ;
-
-fun Countries_A_provinces_UpperAustria : Ind Province ;
-
-fun Countries_A_provinces_UpperAustria_cities_Linz : Ind City ;
-
-fun Countries_A_provinces_Vienna : Ind Province ;
-
-fun Countries_A_provinces_Vienna_cities_Vienna : Ind City ;
-
-fun Countries_A_provinces_Vorarlberg : Ind Province ;
-
-fun Countries_A_provinces_Vorarlberg_cities_Bregenz : Ind City ;
-
-fun Countries_BDS_cities_Bridgetown : Ind City ;
-
-fun Countries_BD_cities_Barisal : Ind City ;
-
-fun Countries_BD_cities_Bogra : Ind City ;
-
-fun Countries_BD_cities_Brahmanbaria : Ind City ;
-
-fun Countries_BD_cities_Chittagong : Ind City ;
-
-fun Countries_BD_cities_Comilla : Ind City ;
-
-fun Countries_BD_cities_Dhaka : Ind City ;
-
-fun Countries_BD_cities_Dinajpur : Ind City ;
-
-fun Countries_BD_cities_Gazipur : Ind City ;
-
-fun Countries_BD_cities_Jamalpur : Ind City ;
-
-fun Countries_BD_cities_Jessore : Ind City ;
-
-fun Countries_BD_cities_Khulna : Ind City ;
-
-fun Countries_BD_cities_Mymensingh : Ind City ;
-
-fun Countries_BD_cities_Naogaon : Ind City ;
-
-fun Countries_BD_cities_Narayanganj : Ind City ;
-
-fun Countries_BD_cities_Narsinghdi : Ind City ;
-
-fun Countries_BD_cities_Nawabganj : Ind City ;
-
-fun Countries_BD_cities_Pabna : Ind City ;
-
-fun Countries_BD_cities_Rajshahi : Ind City ;
-
-fun Countries_BD_cities_Rangpur : Ind City ;
-
-fun Countries_BD_cities_Saidpur : Ind City ;
-
-fun Countries_BD_cities_Savar : Ind City ;
-
-fun Countries_BD_cities_Sirajganj : Ind City ;
-
-fun Countries_BD_cities_Sylhet : Ind City ;
-
-fun Countries_BD_cities_Tangail : Ind City ;
-
-fun Countries_BD_cities_Tongi : Ind City ;
-
-fun Countries_BEN_cities_Porto_Novo : Ind City ;
-
-fun Countries_BF_cities_Ouagadougou : Ind City ;
-
-fun Countries_BG_cities_Sofia : Ind City ;
-
-fun Countries_BHT_cities_Thimphu : Ind City ;
-
-fun Countries_BIH_cities_Sarajevo : Ind City ;
-
-fun Countries_BI_cities_Bujumbura : Ind City ;
-
-fun Countries_BOL_cities_Cochabamba : Ind City ;
-
-fun Countries_BOL_cities_LaPaz : Ind City ;
-
-fun Countries_BOL_cities_Sucre : Ind City ;
-
-fun Countries_BRN_cities_Manama : Ind City ;
-
-fun Countries_BRU_cities_BandarSeriBegawan : Ind City ;
-
-fun Countries_BR_cities_Abaetetuba : Ind City ;
-
-fun Countries_BR_cities_Alvorada : Ind City ;
-
-fun Countries_BR_cities_Betim : Ind City ;
-
-fun Countries_BR_cities_CabodeSantoAgostinho : Ind City ;
-
-fun Countries_BR_cities_CamposdosGoytacazes : Ind City ;
-
-fun Countries_BR_cities_Contagem : Ind City ;
-
-fun Countries_BR_cities_Hortolandia : Ind City ;
-
-fun Countries_BR_cities_Ibirite : Ind City ;
-
-fun Countries_BR_cities_NossaSenhoradoSocorro : Ind City ;
-
-fun Countries_BR_cities_RibeiraodasNeves : Ind City ;
-
-fun Countries_BR_cities_SantaBarbaradOeste : Ind City ;
-
-fun Countries_BR_cities_SaoJosedosPinhais : Ind City ;
-
-fun Countries_BR_cities_SapucaiadoSul : Ind City ;
-
-fun Countries_BR_cities_Sumare : Ind City ;
-
-fun Countries_BR_provinces_Acre : Ind Province ;
-
-fun Countries_BR_provinces_Acre_cities_RioBranco : Ind City ;
-
-fun Countries_BR_provinces_Alagoas : Ind Province ;
-
-fun Countries_BR_provinces_Alagoas_cities_Maceio : Ind City ;
-
-fun Countries_BR_provinces_Amapa : Ind Province ;
-
-fun Countries_BR_provinces_Amapa_cities_Macapa : Ind City ;
-
-fun Countries_BR_provinces_Amazonas : Ind Province ;
-
-fun Countries_BR_provinces_Amazonas_cities_Manaus : Ind City ;
-
-fun Countries_BR_provinces_Bahia : Ind Province ;
-
-fun Countries_BR_provinces_Bahia_cities_Alagoinhas : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Barreiras : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Camacari : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_FeiradeSantana : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Ilheus : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Itabuna : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Jequie : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Juazeiro : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_Salvador : Ind City ;
-
-fun Countries_BR_provinces_Bahia_cities_VitoriadaConquista : Ind City ;
-
-fun Countries_BR_provinces_Ceara : Ind Province ;
-
-fun Countries_BR_provinces_Ceara_cities_Caucaia : Ind City ;
-
-fun Countries_BR_provinces_Ceara_cities_Fortaleza : Ind City ;
-
-fun Countries_BR_provinces_Ceara_cities_JuazeirodoNorte : Ind City ;
-
-fun Countries_BR_provinces_Ceara_cities_Maracanau : Ind City ;
-
-fun Countries_BR_provinces_Ceara_cities_Sobral : Ind City ;
-
-fun Countries_BR_provinces_DistritoFederal : Ind Province ;
-
-fun Countries_BR_provinces_DistritoFederal_cities_Brasilia : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto : Ind Province ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_CachoeirodeItapemirim : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_Cariacica : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_Colatina : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_Linhares : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_Serra : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_VilaVelha : Ind City ;
-
-fun Countries_BR_provinces_EspiritoSanto_cities_Vitoria : Ind City ;
-
-fun Countries_BR_provinces_Goias : Ind Province ;
-
-fun Countries_BR_provinces_Goias_cities_Anapolis : Ind City ;
-
-fun Countries_BR_provinces_Goias_cities_Araguaina : Ind City ;
-
-fun Countries_BR_provinces_Goias_cities_Goiania : Ind City ;
-
-fun Countries_BR_provinces_Goias_cities_Luziania : Ind City ;
-
-fun Countries_BR_provinces_Goias_cities_RioVerde : Ind City ;
-
-fun Countries_BR_provinces_Maranhao : Ind Province ;
-
-fun Countries_BR_provinces_Maranhao_cities_Caxias : Ind City ;
-
-fun Countries_BR_provinces_Maranhao_cities_Codo : Ind City ;
-
-fun Countries_BR_provinces_Maranhao_cities_Imperatriz : Ind City ;
-
-fun Countries_BR_provinces_Maranhao_cities_SaoLuis : Ind City ;
-
-fun Countries_BR_provinces_Maranhao_cities_Timon : Ind City ;
-
-fun Countries_BR_provinces_MatoGrosso : Ind Province ;
-
-fun Countries_BR_provinces_MatoGrosso_cities_Cuiaba : Ind City ;
-
-fun Countries_BR_provinces_MatoGrosso_cities_Rondonopolis : Ind City ;
-
-fun Countries_BR_provinces_MatoGrosso_cities_VarzeaGrande : Ind City ;
-
-fun Countries_BR_provinces_MatoGrossodoSul : Ind Province ;
-
-fun Countries_BR_provinces_MatoGrossodoSul_cities_CampoGrande : Ind City ;
-
-fun Countries_BR_provinces_MatoGrossodoSul_cities_Dourados : Ind City ;
-
-fun Countries_BR_provinces_MatoGrossodoSul_cities_Parnaiba : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais : Ind Province ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Barbacena : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_BeloHorizonte : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Divinopolis : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_GovernadorValadares : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Ipatinga : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_ItapecericadaSerra : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_JuizdeFora : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_MontesClaros : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_PatosdeMinas : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_PocosdeCaldas : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Sabara : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_SeteLagoas : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_TeofiloOtoni : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Uberaba : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Uberlandia : Ind City ;
-
-fun Countries_BR_provinces_MinasGerais_cities_Varginha : Ind City ;
-
-fun Countries_BR_provinces_Para : Ind Province ;
-
-fun Countries_BR_provinces_Para_cities_Ananindeua : Ind City ;
-
-fun Countries_BR_provinces_Para_cities_Belem : Ind City ;
-
-fun Countries_BR_provinces_Para_cities_Castanhal : Ind City ;
-
-fun Countries_BR_provinces_Para_cities_Itaituba : Ind City ;
-
-fun Countries_BR_provinces_Para_cities_Maraba : Ind City ;
-
-fun Countries_BR_provinces_Para_cities_Santarem : Ind City ;
-
-fun Countries_BR_provinces_Paraiba : Ind Province ;
-
-fun Countries_BR_provinces_Paraiba_cities_CampinaGrande : Ind City ;
-
-fun Countries_BR_provinces_Paraiba_cities_JoaoPessoa : Ind City ;
-
-fun Countries_BR_provinces_Paraiba_cities_SantaLuzia : Ind City ;
-
-fun Countries_BR_provinces_Paraiba_cities_SantaRita : Ind City ;
-
-fun Countries_BR_provinces_Parana : Ind Province ;
-
-fun Countries_BR_provinces_Parana_cities_Apucarana : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Cascavel : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Colombo : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Curitiba : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_FozdoIguacu : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Guarapuava : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Londrina : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Maringa : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_Paranagua : Ind City ;
-
-fun Countries_BR_provinces_Parana_cities_PontaGrossa : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco : Ind Province ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Camaragibe : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Caruaru : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Garanhuns : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Gravatai : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_JaboataodosGuararapes : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Paulista : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Petrolina : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_Recife : Ind City ;
-
-fun Countries_BR_provinces_Pernambuco_cities_VitoriadeSantoAntao : Ind City ;
-
-fun Countries_BR_provinces_Piaui : Ind Province ;
-
-fun Countries_BR_provinces_Piaui_cities_Teresina : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoNorte : Ind Province ;
-
-fun Countries_BR_provinces_RioGrandedoNorte_cities_Mossoro : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoNorte_cities_Natal : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul : Ind Province ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_Bage : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_Canoas : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_CaxiasdoSul : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_NovoHamburgo : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_PassoFundo : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_Pelotas : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_PortoAlegre : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_RioGrande : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_SantaCruzdoSul : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_SantaMaria : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_SaoLeopoldo : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_Uruguaiana : Ind City ;
-
-fun Countries_BR_provinces_RioGrandedoSul_cities_Viamao : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro : Ind Province ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_BarraMansa : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_BelfortRoxo : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_CaboFrio : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_DuquedeCaxias : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Itaborai : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Macae : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Mage : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Nilopolis : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Niteroi : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_NovaFriburgo : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_NovoIguacu : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Olinda : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Petropolis : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Queimados : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_RiodeJaneiro : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_SaoGoncalo : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_SaoJoaodeMeriti : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_Teresopolis : Ind City ;
-
-fun Countries_BR_provinces_RiodeJaneiro_cities_VoltaRedonda : Ind City ;
-
-fun Countries_BR_provinces_Rondonia : Ind Province ;
-
-fun Countries_BR_provinces_Rondonia_cities_PortoVelho : Ind City ;
-
-fun Countries_BR_provinces_Roraima : Ind Province ;
-
-fun Countries_BR_provinces_Roraima_cities_BoaVista : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina : Ind Province ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Blumenau : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Chapeco : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Criciuma : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Florianopolis : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Itajai : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Joinvile : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_Lages : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_PraiaGrande : Ind City ;
-
-fun Countries_BR_provinces_SantaCatarina_cities_SaoJose : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo : Ind Province ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Americana : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_AparecidadeGoiania : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Aracatuba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Araraquara : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Barretos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Barueri : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Bauru : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Botucatu : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_BragancaPaulista : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Campinas : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Carapicuiba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Catanduva : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Cotia : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Diadema : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Embu : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_FerrazdeVasconcelos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Franca : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_FranciscoMorato : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Guaruja : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Guarulhos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Indaiatuba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Itapetininga : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Itapevi : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Itaquaquecetuba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Itu : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Jacarei : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Jau : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Jundiai : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Limeira : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Marilia : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Maua : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_MojiGuacu : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_MojidasCruzes : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Osasco : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Pindamonhangaba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Piracicaba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_PresidentePrudente : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_RibeiraoPires : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_RibeiraoPreto : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_RioClaro : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SantoAndre : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Santos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoBernardodoCampo : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoCaetanodoSul : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoCarlos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoJosedoRioPreto : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoJosedosCampos : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoPaulo : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_SaoVicente : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Sorocaba : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Suzano : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_TaboaodaSerra : Ind City ;
-
-fun Countries_BR_provinces_SaoPaulo_cities_Taubate : Ind City ;
-
-fun Countries_BR_provinces_Sergipe : Ind Province ;
-
-fun Countries_BR_provinces_Sergipe_cities_Aracaju : Ind City ;
-
-fun Countries_BR_provinces_Sergipe_cities_Arapiraca : Ind City ;
-
-fun Countries_BR_provinces_Tocantins : Ind Province ;
-
-fun Countries_BR_provinces_Tocantins_cities_Palmas : Ind City ;
-
-fun Countries_BS_cities_Nassau : Ind City ;
-
-fun Countries_BY_cities_Minsk : Ind City ;
-
-fun Countries_BZ_cities_Belmopan : Ind City ;
-
-fun Countries_B_provinces_Antwerp : Ind Province ;
-
-fun Countries_B_provinces_Antwerp_cities_Antwerp : Ind City ;
-
-fun Countries_B_provinces_Brabant : Ind Province ;
-
-fun Countries_B_provinces_Brabant_cities_Brussels : Ind City ;
-
-fun Countries_B_provinces_EastFlanders : Ind Province ;
-
-fun Countries_B_provinces_EastFlanders_cities_Ghent : Ind City ;
-
-fun Countries_B_provinces_Hainaut : Ind Province ;
-
-fun Countries_B_provinces_Hainaut_cities_Charleroi : Ind City ;
-
-fun Countries_B_provinces_Hainaut_cities_Mons : Ind City ;
-
-fun Countries_B_provinces_Liege : Ind Province ;
-
-fun Countries_B_provinces_Liege_cities_Liege : Ind City ;
-
-fun Countries_B_provinces_Limburg : Ind Province ;
-
-fun Countries_B_provinces_Limburg_cities_Hasselt : Ind City ;
-
-fun Countries_B_provinces_Luxembourg : Ind Province ;
-
-fun Countries_B_provinces_Luxembourg_cities_Arlon : Ind City ;
-
-fun Countries_B_provinces_Namur : Ind Province ;
-
-fun Countries_B_provinces_Namur_cities_Namur : Ind City ;
-
-fun Countries_B_provinces_WestFlanders : Ind Province ;
-
-fun Countries_B_provinces_WestFlanders_cities_Brugge : Ind City ;
-
-fun Countries_CAM_provinces_Adamaoua : Ind Province ;
-
-fun Countries_CAM_provinces_Adamaoua_cities_Ngaoundere : Ind City ;
-
-fun Countries_CAM_provinces_Centre : Ind Province ;
-
-fun Countries_CAM_provinces_Centre_cities_Yaounde : Ind City ;
-
-fun Countries_CAM_provinces_Cote : Ind Province ;
-
-fun Countries_CAM_provinces_Cote_cities_Douala : Ind City ;
-
-fun Countries_CAM_provinces_Est : Ind Province ;
-
-fun Countries_CAM_provinces_Est_cities_Bertoua : Ind City ;
-
-fun Countries_CAM_provinces_Nord : Ind Province ;
-
-fun Countries_CAM_provinces_Nord_cities_Garoua : Ind City ;
-
-fun Countries_CAM_provinces_Nordextreme : Ind Province ;
-
-fun Countries_CAM_provinces_Nordextreme_cities_Maroua : Ind City ;
-
-fun Countries_CAM_provinces_Nordoueste : Ind Province ;
-
-fun Countries_CAM_provinces_Nordoueste_cities_Bamenda : Ind City ;
-
-fun Countries_CAM_provinces_Ouest : Ind Province ;
-
-fun Countries_CAM_provinces_Ouest_cities_Bafoussam : Ind City ;
-
-fun Countries_CAM_provinces_Sud : Ind Province ;
-
-fun Countries_CAM_provinces_Sud_cities_Ebolowa : Ind City ;
-
-fun Countries_CAM_provinces_Sudoueste : Ind Province ;
-
-fun Countries_CAM_provinces_Sudoueste_cities_Buea : Ind City ;
-
-fun Countries_CDN_cities_Surrey : Ind City ;
-
-fun Countries_CDN_provinces_Alberta : Ind Province ;
-
-fun Countries_CDN_provinces_Alberta_cities_Calgary : Ind City ;
-
-fun Countries_CDN_provinces_Alberta_cities_Edmonton : Ind City ;
-
-fun Countries_CDN_provinces_BritishColumbia : Ind Province ;
-
-fun Countries_CDN_provinces_BritishColumbia_cities_Burnaby : Ind City ;
-
-fun Countries_CDN_provinces_BritishColumbia_cities_Vancouver : Ind City ;
-
-fun Countries_CDN_provinces_BritishColumbia_cities_Victoria : Ind City ;
-
-fun Countries_CDN_provinces_Manitoba : Ind Province ;
-
-fun Countries_CDN_provinces_Manitoba_cities_Winnipeg : Ind City ;
-
-fun Countries_CDN_provinces_NewBrunswick : Ind Province ;
-
-fun Countries_CDN_provinces_NewBrunswick_cities_Fredericton : Ind City ;
-
-fun Countries_CDN_provinces_Newfoundland : Ind Province ;
-
-fun Countries_CDN_provinces_Newfoundland_cities_SaintJohns : Ind City ;
-
-fun Countries_CDN_provinces_NorthwestTerritories : Ind Province ;
-
-fun Countries_CDN_provinces_NorthwestTerritories_cities_Yellowknife : Ind City ;
-
-fun Countries_CDN_provinces_NovaScotia : Ind Province ;
-
-fun Countries_CDN_provinces_NovaScotia_cities_Halifax : Ind City ;
-
-fun Countries_CDN_provinces_Ontario : Ind Province ;
-
-fun Countries_CDN_provinces_Ontario_cities_Brampton : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Burlington : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_EastYork : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Etobicoke : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Glouchester : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Hamilton : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Kitchener : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_London : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Markham : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Mississauga : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Nepean : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_NorthYork : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Oshawa : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Ottawa : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_SaintCatharines : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Scarborough : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_ThunderBay : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Toronto : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Vaughan : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_Windsor : Ind City ;
-
-fun Countries_CDN_provinces_Ontario_cities_York : Ind City ;
-
-fun Countries_CDN_provinces_PrinceEdwardIsland : Ind Province ;
-
-fun Countries_CDN_provinces_PrinceEdwardIsland_cities_Charlottetown : Ind City ;
-
-fun Countries_CDN_provinces_Quebec : Ind Province ;
-
-fun Countries_CDN_provinces_Quebec_cities_Laval : Ind City ;
-
-fun Countries_CDN_provinces_Quebec_cities_Longueuil : Ind City ;
-
-fun Countries_CDN_provinces_Quebec_cities_Montreal : Ind City ;
-
-fun Countries_CDN_provinces_Quebec_cities_Quebec : Ind City ;
-
-fun Countries_CDN_provinces_Quebec_cities_Richmond : Ind City ;
-
-fun Countries_CDN_provinces_Saskatchewan : Ind Province ;
-
-fun Countries_CDN_provinces_Saskatchewan_cities_Regina : Ind City ;
-
-fun Countries_CDN_provinces_Saskatchewan_cities_Saskatoon : Ind City ;
-
-fun Countries_CDN_provinces_YukonTerritory : Ind Province ;
-
-fun Countries_CDN_provinces_YukonTerritory_cities_Whitehorse : Ind City ;
-
-fun Countries_CH_provinces_AG : Ind Province ;
-
-fun Countries_CH_provinces_AG_cities_Aarau : Ind City ;
-
-fun Countries_CH_provinces_AI : Ind Province ;
-
-fun Countries_CH_provinces_AI_cities_Appenzell : Ind City ;
-
-fun Countries_CH_provinces_AR : Ind Province ;
-
-fun Countries_CH_provinces_AR_cities_Herisau : Ind City ;
-
-fun Countries_CH_provinces_BE : Ind Province ;
-
-fun Countries_CH_provinces_BE_cities_Bern : Ind City ;
-
-fun Countries_CH_provinces_BE_cities_Biel : Ind City ;
-
-fun Countries_CH_provinces_BL : Ind Province ;
-
-fun Countries_CH_provinces_BL_cities_Liestal : Ind City ;
-
-fun Countries_CH_provinces_BS : Ind Province ;
-
-fun Countries_CH_provinces_BS_cities_Basel : Ind City ;
-
-fun Countries_CH_provinces_FR : Ind Province ;
-
-fun Countries_CH_provinces_FR_cities_Fribourg : Ind City ;
-
-fun Countries_CH_provinces_GE : Ind Province ;
-
-fun Countries_CH_provinces_GE_cities_Geneva : Ind City ;
-
-fun Countries_CH_provinces_GL : Ind Province ;
-
-fun Countries_CH_provinces_GL_cities_Glarus : Ind City ;
-
-fun Countries_CH_provinces_GR : Ind Province ;
-
-fun Countries_CH_provinces_GR_cities_Chur : Ind City ;
-
-fun Countries_CH_provinces_JU : Ind Province ;
-
-fun Countries_CH_provinces_JU_cities_Delemont : Ind City ;
-
-fun Countries_CH_provinces_LU : Ind Province ;
-
-fun Countries_CH_provinces_LU_cities_Luzern : Ind City ;
-
-fun Countries_CH_provinces_NE : Ind Province ;
-
-fun Countries_CH_provinces_NE_cities_Neuchatel : Ind City ;
-
-fun Countries_CH_provinces_NW : Ind Province ;
-
-fun Countries_CH_provinces_NW_cities_Stans : Ind City ;
-
-fun Countries_CH_provinces_OW : Ind Province ;
-
-fun Countries_CH_provinces_OW_cities_Sarnen : Ind City ;
-
-fun Countries_CH_provinces_SG : Ind Province ;
-
-fun Countries_CH_provinces_SG_cities_SanktGallen : Ind City ;
-
-fun Countries_CH_provinces_SH : Ind Province ;
-
-fun Countries_CH_provinces_SH_cities_Schaffhausen : Ind City ;
-
-fun Countries_CH_provinces_SO : Ind Province ;
-
-fun Countries_CH_provinces_SO_cities_Solothurn : Ind City ;
-
-fun Countries_CH_provinces_SZ : Ind Province ;
-
-fun Countries_CH_provinces_SZ_cities_Schwyz : Ind City ;
-
-fun Countries_CH_provinces_TG : Ind Province ;
-
-fun Countries_CH_provinces_TG_cities_Frauenfeld : Ind City ;
-
-fun Countries_CH_provinces_TI : Ind Province ;
-
-fun Countries_CH_provinces_TI_cities_Bellinzona : Ind City ;
-
-fun Countries_CH_provinces_UR : Ind Province ;
-
-fun Countries_CH_provinces_UR_cities_Altdorf : Ind City ;
-
-fun Countries_CH_provinces_VD : Ind Province ;
-
-fun Countries_CH_provinces_VD_cities_Lausanne : Ind City ;
-
-fun Countries_CH_provinces_VS : Ind Province ;
-
-fun Countries_CH_provinces_VS_cities_Sion : Ind City ;
-
-fun Countries_CH_provinces_ZG : Ind Province ;
-
-fun Countries_CH_provinces_ZG_cities_Zug : Ind City ;
-
-fun Countries_CH_provinces_ZH : Ind Province ;
-
-fun Countries_CH_provinces_ZH_cities_Winterthur : Ind City ;
-
-fun Countries_CH_provinces_ZH_cities_Zurich : Ind City ;
-
-fun Countries_CI_cities_Abidjan : Ind City ;
-
-fun Countries_CI_cities_Yamoussoukro : Ind City ;
-
-fun Countries_CL_cities_Colombo : Ind City ;
-
-fun Countries_COM_cities_Moroni : Ind City ;
-
-fun Countries_CO_provinces_Amazonas : Ind Province ;
-
-fun Countries_CO_provinces_Amazonas_cities_Leticia : Ind City ;
-
-fun Countries_CO_provinces_Antioquia : Ind Province ;
-
-fun Countries_CO_provinces_Antioquia_cities_Bello : Ind City ;
-
-fun Countries_CO_provinces_Antioquia_cities_Envigado : Ind City ;
-
-fun Countries_CO_provinces_Antioquia_cities_Itagui : Ind City ;
-
-fun Countries_CO_provinces_Antioquia_cities_Medellin : Ind City ;
-
-fun Countries_CO_provinces_Antioquia_cities_Turbo : Ind City ;
-
-fun Countries_CO_provinces_Arauca : Ind Province ;
-
-fun Countries_CO_provinces_Arauca_cities_Arauca : Ind City ;
-
-fun Countries_CO_provinces_Atlantico : Ind Province ;
-
-fun Countries_CO_provinces_Atlantico_cities_Barranquilla : Ind City ;
-
-fun Countries_CO_provinces_Atlantico_cities_Malambo : Ind City ;
-
-fun Countries_CO_provinces_Atlantico_cities_Soledad : Ind City ;
-
-fun Countries_CO_provinces_Bolivar : Ind Province ;
-
-fun Countries_CO_provinces_Bolivar_cities_Cartagena : Ind City ;
-
-fun Countries_CO_provinces_Bolivar_cities_Mangangue : Ind City ;
-
-fun Countries_CO_provinces_Boyaca : Ind Province ;
-
-fun Countries_CO_provinces_Boyaca_cities_Tunja : Ind City ;
-
-fun Countries_CO_provinces_Caldas : Ind Province ;
-
-fun Countries_CO_provinces_Caldas_cities_Manizales : Ind City ;
-
-fun Countries_CO_provinces_Caqueta : Ind Province ;
-
-fun Countries_CO_provinces_Caqueta_cities_Florencia : Ind City ;
-
-fun Countries_CO_provinces_Casanare : Ind Province ;
-
-fun Countries_CO_provinces_Casanare_cities_Yopal : Ind City ;
-
-fun Countries_CO_provinces_Cauca : Ind Province ;
-
-fun Countries_CO_provinces_Cauca_cities_Popayan : Ind City ;
-
-fun Countries_CO_provinces_Cesar : Ind Province ;
-
-fun Countries_CO_provinces_Cesar_cities_Valledupar : Ind City ;
-
-fun Countries_CO_provinces_Choco : Ind Province ;
-
-fun Countries_CO_provinces_Choco_cities_Quibdo : Ind City ;
-
-fun Countries_CO_provinces_Cordoba : Ind Province ;
-
-fun Countries_CO_provinces_Cordoba_cities_Monteria : Ind City ;
-
-fun Countries_CO_provinces_Cundinamarca : Ind Province ;
-
-fun Countries_CO_provinces_Cundinamarca_cities_Soacha : Ind City ;
-
-fun Countries_CO_provinces_Guainia : Ind Province ;
-
-fun Countries_CO_provinces_Guainia_cities_PuertoInirida : Ind City ;
-
-fun Countries_CO_provinces_Guajira_La : Ind Province ;
-
-fun Countries_CO_provinces_Guajira_La_cities_Cienaga : Ind City ;
-
-fun Countries_CO_provinces_Guajira_La_cities_Riohacha : Ind City ;
-
-fun Countries_CO_provinces_Guaviare : Ind Province ;
-
-fun Countries_CO_provinces_Guaviare_cities_SanJosedelGuaviare : Ind City ;
-
-fun Countries_CO_provinces_Huila : Ind Province ;
-
-fun Countries_CO_provinces_Huila_cities_Neiva : Ind City ;
-
-fun Countries_CO_provinces_Magdalena : Ind Province ;
-
-fun Countries_CO_provinces_Magdalena_cities_SantaMarta : Ind City ;
-
-fun Countries_CO_provinces_Meta : Ind Province ;
-
-fun Countries_CO_provinces_Meta_cities_Villavicencio : Ind City ;
-
-fun Countries_CO_provinces_Narino : Ind Province ;
-
-fun Countries_CO_provinces_Narino_cities_Pasto : Ind City ;
-
-fun Countries_CO_provinces_Narino_cities_Tumaco : Ind City ;
-
-fun Countries_CO_provinces_NortedeSantander : Ind Province ;
-
-fun Countries_CO_provinces_NortedeSantander_cities_Cucuta : Ind City ;
-
-fun Countries_CO_provinces_Putumayo : Ind Province ;
-
-fun Countries_CO_provinces_Putumayo_cities_Mocoa : Ind City ;
-
-fun Countries_CO_provinces_Quindio : Ind Province ;
-
-fun Countries_CO_provinces_Quindio_cities_Armenia : Ind City ;
-
-fun Countries_CO_provinces_Risaralda : Ind Province ;
-
-fun Countries_CO_provinces_Risaralda_cities_Dosquebradas : Ind City ;
-
-fun Countries_CO_provinces_Risaralda_cities_Pereira : Ind City ;
-
-fun Countries_CO_provinces_SanAndresyProvidencia : Ind Province ;
-
-fun Countries_CO_provinces_SanAndresyProvidencia_cities_SanAndres : Ind City ;
-
-fun Countries_CO_provinces_SantaFedeBogota_DC : Ind Province ;
-
-fun Countries_CO_provinces_SantaFedeBogota_DC_cities_Bogota : Ind City ;
-
-fun Countries_CO_provinces_SantanderdelSur : Ind Province ;
-
-fun Countries_CO_provinces_SantanderdelSur_cities_Barrancabermeja : Ind City ;
-
-fun Countries_CO_provinces_SantanderdelSur_cities_Bucaramanga : Ind City ;
-
-fun Countries_CO_provinces_SantanderdelSur_cities_Floridablanca : Ind City ;
-
-fun Countries_CO_provinces_Sucre : Ind Province ;
-
-fun Countries_CO_provinces_Sucre_cities_Sincelejo : Ind City ;
-
-fun Countries_CO_provinces_Tolima : Ind Province ;
-
-fun Countries_CO_provinces_Tolima_cities_Ibague : Ind City ;
-
-fun Countries_CO_provinces_ValledeCauca : Ind Province ;
-
-fun Countries_CO_provinces_ValledeCauca_cities_Buenaventura : Ind City ;
-
-fun Countries_CO_provinces_ValledeCauca_cities_Cali : Ind City ;
-
-fun Countries_CO_provinces_ValledeCauca_cities_Cartago : Ind City ;
-
-fun Countries_CO_provinces_ValledeCauca_cities_Palmira : Ind City ;
-
-fun Countries_CO_provinces_ValledeCauca_cities_Tulua : Ind City ;
-
-fun Countries_CO_provinces_Vaupes : Ind Province ;
-
-fun Countries_CO_provinces_Vaupes_cities_Mitu : Ind City ;
-
-fun Countries_CO_provinces_Vichada : Ind Province ;
-
-fun Countries_CO_provinces_Vichada_cities_PuertoCarreno : Ind City ;
-
-fun Countries_CR_provinces_Alajuela : Ind Province ;
-
-fun Countries_CR_provinces_Alajuela_cities_Alajuela : Ind City ;
-
-fun Countries_CR_provinces_Cartago : Ind Province ;
-
-fun Countries_CR_provinces_Cartago_cities_Cartago : Ind City ;
-
-fun Countries_CR_provinces_Guanacaste : Ind Province ;
-
-fun Countries_CR_provinces_Guanacaste_cities_Liberia : Ind City ;
-
-fun Countries_CR_provinces_Heredia : Ind Province ;
-
-fun Countries_CR_provinces_Heredia_cities_Heredia : Ind City ;
-
-fun Countries_CR_provinces_Limon : Ind Province ;
-
-fun Countries_CR_provinces_Limon_cities_Limon : Ind City ;
-
-fun Countries_CR_provinces_Punarenas : Ind Province ;
-
-fun Countries_CR_provinces_Punarenas_cities_Puntarenas : Ind City ;
-
-fun Countries_CR_provinces_SanJose : Ind Province ;
-
-fun Countries_CR_provinces_SanJose_cities_SanJose : Ind City ;
-
-fun Countries_CV_cities_Praia : Ind City ;
-
-fun Countries_CY_cities_Nicosia : Ind City ;
-
-fun Countries_CZ_provinces_Jihocesky : Ind Province ;
-
-fun Countries_CZ_provinces_Jihocesky_cities_CeskeBudejovice : Ind City ;
-
-fun Countries_CZ_provinces_Jihomoravsky : Ind Province ;
-
-fun Countries_CZ_provinces_Jihomoravsky_cities_Brno : Ind City ;
-
-fun Countries_CZ_provinces_Jihomoravsky_cities_Zlin : Ind City ;
-
-fun Countries_CZ_provinces_Praha : Ind Province ;
-
-fun Countries_CZ_provinces_Praha_cities_Prague : Ind City ;
-
-fun Countries_CZ_provinces_Severocesky : Ind Province ;
-
-fun Countries_CZ_provinces_Severocesky_cities_Liberec : Ind City ;
-
-fun Countries_CZ_provinces_Severocesky_cities_UstinadLabem : Ind City ;
-
-fun Countries_CZ_provinces_Severomoravsky : Ind Province ;
-
-fun Countries_CZ_provinces_Severomoravsky_cities_Olomouc : Ind City ;
-
-fun Countries_CZ_provinces_Severomoravsky_cities_Ostrava : Ind City ;
-
-fun Countries_CZ_provinces_Vychodocesky : Ind Province ;
-
-fun Countries_CZ_provinces_Vychodocesky_cities_HradecKralove : Ind City ;
-
-fun Countries_CZ_provinces_Vychodocesky_cities_Pardubice : Ind City ;
-
-fun Countries_CZ_provinces_Zapadocesky : Ind Province ;
-
-fun Countries_CZ_provinces_Zapadocesky_cities_Plzen : Ind City ;
-
-fun Countries_C_provinces_Camaguey : Ind Province ;
-
-fun Countries_C_provinces_Camaguey_cities_Camaguey : Ind City ;
-
-fun Countries_C_provinces_CiegodeAvila : Ind Province ;
-
-fun Countries_C_provinces_CiegodeAvila_cities_CiegodeAvila : Ind City ;
-
-fun Countries_C_provinces_Cienfuegos : Ind Province ;
-
-fun Countries_C_provinces_Cienfuegos_cities_Cienfuegos : Ind City ;
-
-fun Countries_C_provinces_CiudaddelaHabana : Ind Province ;
-
-fun Countries_C_provinces_CiudaddelaHabana_cities_Havana : Ind City ;
-
-fun Countries_C_provinces_Granma : Ind Province ;
-
-fun Countries_C_provinces_Granma_cities_Bayamo : Ind City ;
-
-fun Countries_C_provinces_Granma_cities_Manzanillo : Ind City ;
-
-fun Countries_C_provinces_Guantanamo : Ind Province ;
-
-fun Countries_C_provinces_Guantanamo_cities_Guantanamo : Ind City ;
-
-fun Countries_C_provinces_Holguin : Ind Province ;
-
-fun Countries_C_provinces_Holguin_cities_Holguin : Ind City ;
-
-fun Countries_C_provinces_IsladelaJuventud : Ind Province ;
-
-fun Countries_C_provinces_IsladelaJuventud_cities_NuevaGerona : Ind City ;
-
-fun Countries_C_provinces_LaHabana : Ind Province ;
-
-fun Countries_C_provinces_LasTunas : Ind Province ;
-
-fun Countries_C_provinces_LasTunas_cities_VictoriadelasTunas : Ind City ;
-
-fun Countries_C_provinces_Matanzas : Ind Province ;
-
-fun Countries_C_provinces_Matanzas_cities_Matanzas : Ind City ;
-
-fun Countries_C_provinces_PinardelRio : Ind Province ;
-
-fun Countries_C_provinces_PinardelRio_cities_PinardelRio : Ind City ;
-
-fun Countries_C_provinces_SanctiSpiritus : Ind Province ;
-
-fun Countries_C_provinces_SanctiSpiritus_cities_SanctiSpiritus : Ind City ;
-
-fun Countries_C_provinces_SantiagodeCuba : Ind Province ;
-
-fun Countries_C_provinces_SantiagodeCuba_cities_SantiagodeCuba : Ind City ;
-
-fun Countries_C_provinces_VillaClara : Ind Province ;
-
-fun Countries_C_provinces_VillaClara_cities_SantaClara : Ind City ;
-
-fun Countries_DJI_cities_Djibouti : Ind City ;
-
-fun Countries_DK_cities_Aalborg : Ind City ;
-
-fun Countries_DK_cities_Aarhus : Ind City ;
-
-fun Countries_DK_cities_Copenhagen : Ind City ;
-
-fun Countries_DK_cities_Esbjerg : Ind City ;
-
-fun Countries_DK_cities_Odense : Ind City ;
-
-fun Countries_DK_cities_Randers : Ind City ;
-
-fun Countries_DOM_cities_SantoDomingo : Ind City ;
-
-fun Countries_DZ_cities_Algiers : Ind City ;
-
-fun Countries_DZ_cities_Annaba : Ind City ;
-
-fun Countries_DZ_cities_Batna : Ind City ;
-
-fun Countries_DZ_cities_Bechar : Ind City ;
-
-fun Countries_DZ_cities_Bejaia : Ind City ;
-
-fun Countries_DZ_cities_Blida : Ind City ;
-
-fun Countries_DZ_cities_Constantine : Ind City ;
-
-fun Countries_DZ_cities_Mostaganem : Ind City ;
-
-fun Countries_DZ_cities_Oran : Ind City ;
-
-fun Countries_DZ_cities_Setif : Ind City ;
-
-fun Countries_DZ_cities_SidibelAbbes : Ind City ;
-
-fun Countries_DZ_cities_Skikda : Ind City ;
-
-fun Countries_DZ_cities_Tebessa : Ind City ;
-
-fun Countries_DZ_cities_Tlemcen : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg : Ind Province ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_FreiburgimBreisgau : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Heidelberg : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Heilbronn : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Karlsruhe : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Mannheim : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Pforzheim : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Reutlingen : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Stuttgart : Ind City ;
-
-fun Countries_D_provinces_BadenWurttemberg_cities_Ulm : Ind City ;
-
-fun Countries_D_provinces_Bayern : Ind Province ;
-
-fun Countries_D_provinces_Bayern_cities_Augsburg : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Erlangen : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Furth : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Ingolstadt : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Munich : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Nurnberg : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Regensburg : Ind City ;
-
-fun Countries_D_provinces_Bayern_cities_Wurzburg : Ind City ;
-
-fun Countries_D_provinces_Berlin : Ind Province ;
-
-fun Countries_D_provinces_Berlin_cities_Berlin : Ind City ;
-
-fun Countries_D_provinces_Brandenburg : Ind Province ;
-
-fun Countries_D_provinces_Brandenburg_cities_Cottbus : Ind City ;
-
-fun Countries_D_provinces_Brandenburg_cities_Potsdam : Ind City ;
-
-fun Countries_D_provinces_Bremen : Ind Province ;
-
-fun Countries_D_provinces_Bremen_cities_Bremen : Ind City ;
-
-fun Countries_D_provinces_Bremen_cities_Bremerhaven : Ind City ;
-
-fun Countries_D_provinces_Hamburg : Ind Province ;
-
-fun Countries_D_provinces_Hamburg_cities_Hamburg : Ind City ;
-
-fun Countries_D_provinces_Hessen : Ind Province ;
-
-fun Countries_D_provinces_Hessen_cities_Darmstadt : Ind City ;
-
-fun Countries_D_provinces_Hessen_cities_FrankfurtamMain : Ind City ;
-
-fun Countries_D_provinces_Hessen_cities_Kassel : Ind City ;
-
-fun Countries_D_provinces_Hessen_cities_OffenbachamMain : Ind City ;
-
-fun Countries_D_provinces_Hessen_cities_Wiesbaden : Ind City ;
-
-fun Countries_D_provinces_MecklenburgVorpommern : Ind Province ;
-
-fun Countries_D_provinces_MecklenburgVorpommern_cities_Rostock : Ind City ;
-
-fun Countries_D_provinces_MecklenburgVorpommern_cities_Schwerin : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen : Ind Province ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Braunschweig : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Gottingen : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Hannover : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Hildesheim : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Oldenburg : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Osnabruck : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Salzgitter : Ind City ;
-
-fun Countries_D_provinces_Niedersachsen_cities_Wolfsburg : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen : Ind Province ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Aachen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_BergischGladbach : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Bielefeld : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Bochum : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Bonn : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Bottrop : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Dortmund : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Duisburg : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Dusseldorf : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Essen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Gelsenkirchen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Hagen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Hamm : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Herne : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Koln : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Krefeld : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Leverkusen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Moers : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Monchengladbach : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_MulheimanderRuhr : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Munster : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Neuss : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Oberhausen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Paderborn : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Recklinghausen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Remscheid : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Siegen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Solingen : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Witten : Ind City ;
-
-fun Countries_D_provinces_NordrheinWestfalen_cities_Wuppertal : Ind City ;
-
-fun Countries_D_provinces_RheinlandPfalz : Ind Province ;
-
-fun Countries_D_provinces_RheinlandPfalz_cities_Kaiserslautern : Ind City ;
-
-fun Countries_D_provinces_RheinlandPfalz_cities_Koblenz : Ind City ;
-
-fun Countries_D_provinces_RheinlandPfalz_cities_Ludwigshafen : Ind City ;
-
-fun Countries_D_provinces_RheinlandPfalz_cities_Mainz : Ind City ;
-
-fun Countries_D_provinces_Saarland : Ind Province ;
-
-fun Countries_D_provinces_Saarland_cities_Saarbrucken : Ind City ;
-
-fun Countries_D_provinces_Sachsen : Ind Province ;
-
-fun Countries_D_provinces_SachsenAnhalt : Ind Province ;
-
-fun Countries_D_provinces_SachsenAnhalt_cities_Halle : Ind City ;
-
-fun Countries_D_provinces_SachsenAnhalt_cities_Magdeburg : Ind City ;
-
-fun Countries_D_provinces_Sachsen_cities_Chemnitz : Ind City ;
-
-fun Countries_D_provinces_Sachsen_cities_Dresden : Ind City ;
-
-fun Countries_D_provinces_Sachsen_cities_Leipzig : Ind City ;
-
-fun Countries_D_provinces_Sachsen_cities_Zwickau : Ind City ;
-
-fun Countries_D_provinces_SchleswigHolstein : Ind Province ;
-
-fun Countries_D_provinces_SchleswigHolstein_cities_Kiel : Ind City ;
-
-fun Countries_D_provinces_SchleswigHolstein_cities_Lubeck : Ind City ;
-
-fun Countries_D_provinces_Thuringen : Ind Province ;
-
-fun Countries_D_provinces_Thuringen_cities_Erfurt : Ind City ;
-
-fun Countries_D_provinces_Thuringen_cities_Gera : Ind City ;
-
-fun Countries_D_provinces_Thuringen_cities_Jena : Ind City ;
-
-fun Countries_EAK_provinces_Central : Ind Province ;
-
-fun Countries_EAK_provinces_Central_cities_Nyeri : Ind City ;
-
-fun Countries_EAK_provinces_Central_cities_Thika : Ind City ;
-
-fun Countries_EAK_provinces_Coast : Ind Province ;
-
-fun Countries_EAK_provinces_Coast_cities_Malindi : Ind City ;
-
-fun Countries_EAK_provinces_Coast_cities_Mombasa : Ind City ;
-
-fun Countries_EAK_provinces_Eastern : Ind Province ;
-
-fun Countries_EAK_provinces_Eastern_cities_Embu : Ind City ;
-
-fun Countries_EAK_provinces_Eastern_cities_Machakos : Ind City ;
-
-fun Countries_EAK_provinces_Eastern_cities_Meru : Ind City ;
-
-fun Countries_EAK_provinces_Nairobi : Ind Province ;
-
-fun Countries_EAK_provinces_Nairobi_cities_Nairobi : Ind City ;
-
-fun Countries_EAK_provinces_NorthEastern : Ind Province ;
-
-fun Countries_EAK_provinces_NorthEastern_cities_Garissa : Ind City ;
-
-fun Countries_EAK_provinces_Nyanza : Ind Province ;
-
-fun Countries_EAK_provinces_Nyanza_cities_Kisii : Ind City ;
-
-fun Countries_EAK_provinces_Nyanza_cities_Kisumu : Ind City ;
-
-fun Countries_EAK_provinces_RiftValley : Ind Province ;
-
-fun Countries_EAK_provinces_RiftValley_cities_Eldoret : Ind City ;
-
-fun Countries_EAK_provinces_RiftValley_cities_Kericho : Ind City ;
-
-fun Countries_EAK_provinces_RiftValley_cities_Kitale : Ind City ;
-
-fun Countries_EAK_provinces_RiftValley_cities_Nakuru : Ind City ;
-
-fun Countries_EAK_provinces_Western : Ind Province ;
-
-fun Countries_EAK_provinces_Western_cities_Kakamega : Ind City ;
-
-fun Countries_EAT_provinces_Arusha : Ind Province ;
-
-fun Countries_EAT_provinces_Arusha_cities_Arusha : Ind City ;
-
-fun Countries_EAT_provinces_Daressalam : Ind Province ;
-
-fun Countries_EAT_provinces_Daressalam_cities_DaresSalaam : Ind City ;
-
-fun Countries_EAT_provinces_Dodoma : Ind Province ;
-
-fun Countries_EAT_provinces_Dodoma_cities_Dodoma : Ind City ;
-
-fun Countries_EAT_provinces_Iringa : Ind Province ;
-
-fun Countries_EAT_provinces_Iringa_cities_Iringa : Ind City ;
-
-fun Countries_EAT_provinces_Kagera : Ind Province ;
-
-fun Countries_EAT_provinces_Kagera_cities_Bukoba : Ind City ;
-
-fun Countries_EAT_provinces_KaskaziniPemba : Ind Province ;
-
-fun Countries_EAT_provinces_KaskaziniPemba_cities_Wete : Ind City ;
-
-fun Countries_EAT_provinces_KaskaziniUjunga : Ind Province ;
-
-fun Countries_EAT_provinces_KaskaziniUjunga_cities_Mkokotoni : Ind City ;
-
-fun Countries_EAT_provinces_Kigoma : Ind Province ;
-
-fun Countries_EAT_provinces_Kigoma_cities_KigomaUjiji : Ind City ;
-
-fun Countries_EAT_provinces_Kilimanjaro : Ind Province ;
-
-fun Countries_EAT_provinces_Kilimanjaro_cities_Moshi : Ind City ;
-
-fun Countries_EAT_provinces_KusiniPemba : Ind Province ;
-
-fun Countries_EAT_provinces_KusiniPemba_cities_ChakeCahke : Ind City ;
-
-fun Countries_EAT_provinces_KusiniUjunga : Ind Province ;
-
-fun Countries_EAT_provinces_KusiniUjunga_cities_Koani : Ind City ;
-
-fun Countries_EAT_provinces_Lindi : Ind Province ;
-
-fun Countries_EAT_provinces_Lindi_cities_Lindi : Ind City ;
-
-fun Countries_EAT_provinces_Mara : Ind Province ;
-
-fun Countries_EAT_provinces_Mara_cities_Musoma : Ind City ;
-
-fun Countries_EAT_provinces_Mbeya : Ind Province ;
-
-fun Countries_EAT_provinces_Mbeya_cities_Mbeya : Ind City ;
-
-fun Countries_EAT_provinces_MjiniMagharibi : Ind Province ;
-
-fun Countries_EAT_provinces_MjiniMagharibi_cities_Zanzibar : Ind City ;
-
-fun Countries_EAT_provinces_Morogoro : Ind Province ;
-
-fun Countries_EAT_provinces_Morogoro_cities_Morogoro : Ind City ;
-
-fun Countries_EAT_provinces_Mtwara : Ind Province ;
-
-fun Countries_EAT_provinces_Mtwara_cities_MtwaraMikandani : Ind City ;
-
-fun Countries_EAT_provinces_Mwanza : Ind Province ;
-
-fun Countries_EAT_provinces_Mwanza_cities_Mwanza : Ind City ;
-
-fun Countries_EAT_provinces_Pwani : Ind Province ;
-
-fun Countries_EAT_provinces_Rukwa : Ind Province ;
-
-fun Countries_EAT_provinces_Rukwa_cities_Sumbawanga : Ind City ;
-
-fun Countries_EAT_provinces_Ruvuma : Ind Province ;
-
-fun Countries_EAT_provinces_Ruvuma_cities_Songea : Ind City ;
-
-fun Countries_EAT_provinces_Shinyanga : Ind Province ;
-
-fun Countries_EAT_provinces_Shinyanga_cities_Shinyanga : Ind City ;
-
-fun Countries_EAT_provinces_Singida : Ind Province ;
-
-fun Countries_EAT_provinces_Singida_cities_Singida : Ind City ;
-
-fun Countries_EAT_provinces_Tabora : Ind Province ;
-
-fun Countries_EAT_provinces_Tabora_cities_Tabora : Ind City ;
-
-fun Countries_EAT_provinces_Tanga : Ind Province ;
-
-fun Countries_EAT_provinces_Tanga_cities_Tanga : Ind City ;
-
-fun Countries_EAU_cities_Kampala : Ind City ;
-
-fun Countries_EC_cities_Guayaquil : Ind City ;
-
-fun Countries_EC_cities_Quito : Ind City ;
-
-fun Countries_ER_cities_Asmara : Ind City ;
-
-fun Countries_ES_cities_Apopa : Ind City ;
-
-fun Countries_ES_cities_Delgado : Ind City ;
-
-fun Countries_ES_cities_Mejicanos : Ind City ;
-
-fun Countries_ES_cities_Soyapango : Ind City ;
-
-fun Countries_ES_provinces_Ahuachapan : Ind Province ;
-
-fun Countries_ES_provinces_Ahuachapan_cities_Ahuachapan : Ind City ;
-
-fun Countries_ES_provinces_Cabanas : Ind Province ;
-
-fun Countries_ES_provinces_Cabanas_cities_Sensuntepeque : Ind City ;
-
-fun Countries_ES_provinces_Chalatenango : Ind Province ;
-
-fun Countries_ES_provinces_Chalatenango_cities_Chalatenango : Ind City ;
-
-fun Countries_ES_provinces_Cuscatlan : Ind Province ;
-
-fun Countries_ES_provinces_Cuscatlan_cities_Cojutepeque : Ind City ;
-
-fun Countries_ES_provinces_LaLibertad : Ind Province ;
-
-fun Countries_ES_provinces_LaLibertad_cities_NuevaSanSalvador : Ind City ;
-
-fun Countries_ES_provinces_LaPaz : Ind Province ;
-
-fun Countries_ES_provinces_LaPaz_cities_Zacatecoluca : Ind City ;
-
-fun Countries_ES_provinces_LaUnion : Ind Province ;
-
-fun Countries_ES_provinces_LaUnion_cities_LaUnion : Ind City ;
-
-fun Countries_ES_provinces_Morazan : Ind Province ;
-
-fun Countries_ES_provinces_Morazan_cities_SanFranciscoGotera : Ind City ;
-
-fun Countries_ES_provinces_SanMiguel : Ind Province ;
-
-fun Countries_ES_provinces_SanMiguel_cities_SanMiguel : Ind City ;
-
-fun Countries_ES_provinces_SanSalvador : Ind Province ;
-
-fun Countries_ES_provinces_SanSalvador_cities_SanSalvador : Ind City ;
-
-fun Countries_ES_provinces_SanVicente : Ind Province ;
-
-fun Countries_ES_provinces_SanVicente_cities_SanVicente : Ind City ;
-
-fun Countries_ES_provinces_SantaAna : Ind Province ;
-
-fun Countries_ES_provinces_SantaAna_cities_SantaAna : Ind City ;
-
-fun Countries_ES_provinces_Sonsonate : Ind Province ;
-
-fun Countries_ES_provinces_Sonsonate_cities_Sonsonate : Ind City ;
-
-fun Countries_ES_provinces_Usulutan : Ind Province ;
-
-fun Countries_ES_provinces_Usulutan_cities_Usulutan : Ind City ;
-
-fun Countries_ETH_cities_AddisAbaba : Ind City ;
-
-fun Countries_ETH_cities_BahirDar : Ind City ;
-
-fun Countries_ETH_cities_Debrezit : Ind City ;
-
-fun Countries_ETH_cities_Dese : Ind City ;
-
-fun Countries_ETH_cities_DireDawa : Ind City ;
-
-fun Countries_ETH_cities_Gonder : Ind City ;
-
-fun Countries_ETH_cities_Harer : Ind City ;
-
-fun Countries_ETH_cities_Jima : Ind City ;
-
-fun Countries_ETH_cities_Mekele : Ind City ;
-
-fun Countries_ETH_cities_Nazret : Ind City ;
-
-fun Countries_ET_provinces_Aswan : Ind Province ;
-
-fun Countries_ET_provinces_Aswan_cities_Aswan : Ind City ;
-
-fun Countries_ET_provinces_Asyut : Ind Province ;
-
-fun Countries_ET_provinces_Asyut_cities_Asyut : Ind City ;
-
-fun Countries_ET_provinces_BeniSuef : Ind Province ;
-
-fun Countries_ET_provinces_BeniSuef_cities_BeniSuef : Ind City ;
-
-fun Countries_ET_provinces_BurSaid_munic : Ind Province ;
-
-fun Countries_ET_provinces_BurSaid_munic_cities_BurSaid : Ind City ;
-
-fun Countries_ET_provinces_BurSaid_munic_cities_PortSaid : Ind City ;
-
-fun Countries_ET_provinces_Dumyat : Ind Province ;
-
-fun Countries_ET_provinces_Dumyat_cities_Dumyat : Ind City ;
-
-fun Countries_ET_provinces_ElBahrelAhmar : Ind Province ;
-
-fun Countries_ET_provinces_ElBahrelAhmar_cities_Hurghada : Ind City ;
-
-fun Countries_ET_provinces_ElBuhayra : Ind Province ;
-
-fun Countries_ET_provinces_ElBuhayra_cities_Damanhur : Ind City ;
-
-fun Countries_ET_provinces_ElBuhayra_cities_KafrelDauwar : Ind City ;
-
-fun Countries_ET_provinces_ElDaqahliya : Ind Province ;
-
-fun Countries_ET_provinces_ElDaqahliya_cities_ElMansura : Ind City ;
-
-fun Countries_ET_provinces_ElFaiyum : Ind Province ;
-
-fun Countries_ET_provinces_ElFaiyum_cities_ElFaiyum : Ind City ;
-
-fun Countries_ET_provinces_ElGharbiya : Ind Province ;
-
-fun Countries_ET_provinces_ElGharbiya_cities_ElMahallaelKubra : Ind City ;
-
-fun Countries_ET_provinces_ElGharbiya_cities_Tanta : Ind City ;
-
-fun Countries_ET_provinces_ElGiza : Ind Province ;
-
-fun Countries_ET_provinces_ElGiza_cities_ElGiza : Ind City ;
-
-fun Countries_ET_provinces_ElIskandariya_munic : Ind Province ;
-
-fun Countries_ET_provinces_ElIskandariya_munic_cities_Alexandria : Ind City ;
-
-fun Countries_ET_provinces_ElIskandariya_munic_cities_ElIskandariya : Ind City ;
-
-fun Countries_ET_provinces_ElMinufiya : Ind Province ;
-
-fun Countries_ET_provinces_ElMinufiya_cities_ShibinelKom : Ind City ;
-
-fun Countries_ET_provinces_ElMinya : Ind Province ;
-
-fun Countries_ET_provinces_ElMinya_cities_ElMinya : Ind City ;
-
-fun Countries_ET_provinces_ElQahira_munic : Ind Province ;
-
-fun Countries_ET_provinces_ElQahira_munic_cities_Cairo : Ind City ;
-
-fun Countries_ET_provinces_ElQahira_munic_cities_ElQahira : Ind City ;
-
-fun Countries_ET_provinces_ElQahira_munic_cities_Helwan : Ind City ;
-
-fun Countries_ET_provinces_ElQalubiya : Ind Province ;
-
-fun Countries_ET_provinces_ElQalubiya_cities_Benha : Ind City ;
-
-fun Countries_ET_provinces_ElQalubiya_cities_ShubraelKheima : Ind City ;
-
-fun Countries_ET_provinces_ElSuweiz_munic : Ind Province ;
-
-fun Countries_ET_provinces_ElSuweiz_munic_cities_ElSuweiz : Ind City ;
-
-fun Countries_ET_provinces_ElSuweiz_munic_cities_Suez : Ind City ;
-
-fun Countries_ET_provinces_ElWadielJadid : Ind Province ;
-
-fun Countries_ET_provinces_ElWadielJadid_cities_ElKharga : Ind City ;
-
-fun Countries_ET_provinces_Ismailiya : Ind Province ;
-
-fun Countries_ET_provinces_Ismailiya_cities_Ismailiya : Ind City ;
-
-fun Countries_ET_provinces_KafrelSheikh : Ind Province ;
-
-fun Countries_ET_provinces_KafrelSheikh_cities_KafrelSheikh : Ind City ;
-
-fun Countries_ET_provinces_Matruh : Ind Province ;
-
-fun Countries_ET_provinces_Matruh_cities_MarsaMatruh : Ind City ;
-
-fun Countries_ET_provinces_Qena : Ind Province ;
-
-fun Countries_ET_provinces_Qena_cities_ElUqsur : Ind City ;
-
-fun Countries_ET_provinces_Qena_cities_Qena : Ind City ;
-
-fun Countries_ET_provinces_Sharqiya : Ind Province ;
-
-fun Countries_ET_provinces_Sharqiya_cities_Zagazig : Ind City ;
-
-fun Countries_ET_provinces_SinaalJanubiyah : Ind Province ;
-
-fun Countries_ET_provinces_SinaalJanubiyah_cities_ElTur : Ind City ;
-
-fun Countries_ET_provinces_SinaashShamaliyah : Ind Province ;
-
-fun Countries_ET_provinces_SinaashShamaliyah_cities_ElArish : Ind City ;
-
-fun Countries_ET_provinces_Sohag : Ind Province ;
-
-fun Countries_ET_provinces_Sohag_cities_Sohag : Ind City ;
-
-fun Countries_EW_cities_Tallinn : Ind City ;
-
-fun Countries_E_provinces_Andalusia : Ind Province ;
-
-fun Countries_E_provinces_Andalusia_cities_Algeciras : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Almeria : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Cadiz : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Cordoba : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Granada : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Huelva : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Jaen : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_JerezdelaFrontera : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Malaga : Ind City ;
-
-fun Countries_E_provinces_Andalusia_cities_Sevilla : Ind City ;
-
-fun Countries_E_provinces_Aragon : Ind Province ;
-
-fun Countries_E_provinces_Aragon_cities_Zaragoza : Ind City ;
-
-fun Countries_E_provinces_Asturias : Ind Province ;
-
-fun Countries_E_provinces_Asturias_cities_Gijon : Ind City ;
-
-fun Countries_E_provinces_Asturias_cities_Oviedo : Ind City ;
-
-fun Countries_E_provinces_BalearicIslands : Ind Province ;
-
-fun Countries_E_provinces_BalearicIslands_cities_PalmadeMallorca : Ind City ;
-
-fun Countries_E_provinces_BasqueCountry : Ind Province ;
-
-fun Countries_E_provinces_BasqueCountry_cities_Bilbao : Ind City ;
-
-fun Countries_E_provinces_BasqueCountry_cities_Donostia : Ind City ;
-
-fun Countries_E_provinces_BasqueCountry_cities_VitoriaGasteiz : Ind City ;
-
-fun Countries_E_provinces_CanaryIslands : Ind Province ;
-
-fun Countries_E_provinces_CanaryIslands_cities_LaLaguna : Ind City ;
-
-fun Countries_E_provinces_CanaryIslands_cities_LasPalmasdeGranCanaria : Ind City ;
-
-fun Countries_E_provinces_CanaryIslands_cities_SantaCruzdeTenerife : Ind City ;
-
-fun Countries_E_provinces_Cantabria : Ind Province ;
-
-fun Countries_E_provinces_Cantabria_cities_Santander : Ind City ;
-
-fun Countries_E_provinces_CastileLaMancha : Ind Province ;
-
-fun Countries_E_provinces_CastileLaMancha_cities_Toledo : Ind City ;
-
-fun Countries_E_provinces_CastileandLeon : Ind Province ;
-
-fun Countries_E_provinces_CastileandLeon_cities_Albacete : Ind City ;
-
-fun Countries_E_provinces_CastileandLeon_cities_Burgos : Ind City ;
-
-fun Countries_E_provinces_CastileandLeon_cities_Leon : Ind City ;
-
-fun Countries_E_provinces_CastileandLeon_cities_Salamanca : Ind City ;
-
-fun Countries_E_provinces_CastileandLeon_cities_Valladolid : Ind City ;
-
-fun Countries_E_provinces_Catalonia : Ind Province ;
-
-fun Countries_E_provinces_Catalonia_cities_Badalona : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Baracaldo : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Barcelona : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_HospitaletdeLlobregat : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Lleida : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Mataro : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Sabadell : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_SantaColomadeGramanet : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Tarragona : Ind City ;
-
-fun Countries_E_provinces_Catalonia_cities_Terrassa : Ind City ;
-
-fun Countries_E_provinces_Estremadura : Ind Province ;
-
-fun Countries_E_provinces_Estremadura_cities_Badajoz : Ind City ;
-
-fun Countries_E_provinces_Estremadura_cities_Merida : Ind City ;
-
-fun Countries_E_provinces_Galicia : Ind Province ;
-
-fun Countries_E_provinces_Galicia_cities_LaCoruna : Ind City ;
-
-fun Countries_E_provinces_Galicia_cities_Orense : Ind City ;
-
-fun Countries_E_provinces_Galicia_cities_SantiagodeCompostella : Ind City ;
-
-fun Countries_E_provinces_Galicia_cities_Vigo : Ind City ;
-
-fun Countries_E_provinces_Madrid : Ind Province ;
-
-fun Countries_E_provinces_Madrid_cities_AlcaladeHenares : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Alcorcon : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Fuenlabrada : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Getafe : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Leganes : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Madrid : Ind City ;
-
-fun Countries_E_provinces_Madrid_cities_Mostoles : Ind City ;
-
-fun Countries_E_provinces_Murcia : Ind Province ;
-
-fun Countries_E_provinces_Murcia_cities_Cartagena : Ind City ;
-
-fun Countries_E_provinces_Murcia_cities_Murcia : Ind City ;
-
-fun Countries_E_provinces_Navarre : Ind Province ;
-
-fun Countries_E_provinces_Navarre_cities_Pamplona : Ind City ;
-
-fun Countries_E_provinces_Rioja : Ind Province ;
-
-fun Countries_E_provinces_Rioja_cities_Logrono : Ind City ;
-
-fun Countries_E_provinces_Valencia : Ind Province ;
-
-fun Countries_E_provinces_Valencia_cities_Alacant : Ind City ;
-
-fun Countries_E_provinces_Valencia_cities_CastellondelaPlana : Ind City ;
-
-fun Countries_E_provinces_Valencia_cities_Elx : Ind City ;
-
-fun Countries_E_provinces_Valencia_cities_Valencia : Ind City ;
-
-fun Countries_FGU_cities_Cayenne : Ind City ;
-
-fun Countries_FJI_cities_Suva : Ind City ;
-
-fun Countries_FL_cities_Vaduz : Ind City ;
-
-fun Countries_FSM_cities_Kolonia : Ind City ;
-
-fun Countries_F_provinces_Alsace : Ind Province ;
-
-fun Countries_F_provinces_Alsace_cities_Mulhouse : Ind City ;
-
-fun Countries_F_provinces_Alsace_cities_Strasbourg : Ind City ;
-
-fun Countries_F_provinces_Aquitaine : Ind Province ;
-
-fun Countries_F_provinces_Aquitaine_cities_Bordeaux : Ind City ;
-
-fun Countries_F_provinces_Auvergne : Ind Province ;
-
-fun Countries_F_provinces_Auvergne_cities_ClermontFerrand : Ind City ;
-
-fun Countries_F_provinces_BasseNormandie : Ind Province ;
-
-fun Countries_F_provinces_BasseNormandie_cities_Caen : Ind City ;
-
-fun Countries_F_provinces_Bourgogne : Ind Province ;
-
-fun Countries_F_provinces_Bourgogne_cities_Dijon : Ind City ;
-
-fun Countries_F_provinces_Bretagne : Ind Province ;
-
-fun Countries_F_provinces_Bretagne_cities_Brest : Ind City ;
-
-fun Countries_F_provinces_Bretagne_cities_Rennes : Ind City ;
-
-fun Countries_F_provinces_Centre : Ind Province ;
-
-fun Countries_F_provinces_Centre_cities_Orleans : Ind City ;
-
-fun Countries_F_provinces_Centre_cities_Tours : Ind City ;
-
-fun Countries_F_provinces_ChampagneArdenne : Ind Province ;
-
-fun Countries_F_provinces_ChampagneArdenne_cities_ChalonssurMarne : Ind City ;
-
-fun Countries_F_provinces_ChampagneArdenne_cities_Reims : Ind City ;
-
-fun Countries_F_provinces_Corse : Ind Province ;
-
-fun Countries_F_provinces_Corse_cities_Ajaccio : Ind City ;
-
-fun Countries_F_provinces_FrancheComte : Ind Province ;
-
-fun Countries_F_provinces_FrancheComte_cities_Besancon : Ind City ;
-
-fun Countries_F_provinces_HauteNormandie : Ind Province ;
-
-fun Countries_F_provinces_HauteNormandie_cities_LeHavre : Ind City ;
-
-fun Countries_F_provinces_HauteNormandie_cities_Rouen : Ind City ;
-
-fun Countries_F_provinces_IledeFrance : Ind Province ;
-
-fun Countries_F_provinces_IledeFrance_cities_BoulogneBillancourt : Ind City ;
-
-fun Countries_F_provinces_IledeFrance_cities_Paris : Ind City ;
-
-fun Countries_F_provinces_LanguedocRousillon : Ind Province ;
-
-fun Countries_F_provinces_LanguedocRousillon_cities_Montpellier : Ind City ;
-
-fun Countries_F_provinces_LanguedocRousillon_cities_Nimes : Ind City ;
-
-fun Countries_F_provinces_LanguedocRousillon_cities_Perpignan : Ind City ;
-
-fun Countries_F_provinces_Limousin : Ind Province ;
-
-fun Countries_F_provinces_Limousin_cities_Limoges : Ind City ;
-
-fun Countries_F_provinces_Lorraine : Ind Province ;
-
-fun Countries_F_provinces_Lorraine_cities_Metz : Ind City ;
-
-fun Countries_F_provinces_Lorraine_cities_Nancy : Ind City ;
-
-fun Countries_F_provinces_MidiPyrenees : Ind Province ;
-
-fun Countries_F_provinces_MidiPyrenees_cities_Toulouse : Ind City ;
-
-fun Countries_F_provinces_NordPasdeCalais : Ind Province ;
-
-fun Countries_F_provinces_NordPasdeCalais_cities_Lille : Ind City ;
-
-fun Countries_F_provinces_PaysdelaLoire : Ind Province ;
-
-fun Countries_F_provinces_PaysdelaLoire_cities_Angers : Ind City ;
-
-fun Countries_F_provinces_PaysdelaLoire_cities_LeMans : Ind City ;
-
-fun Countries_F_provinces_PaysdelaLoire_cities_Nantes : Ind City ;
-
-fun Countries_F_provinces_Picardie : Ind Province ;
-
-fun Countries_F_provinces_Picardie_cities_Amiens : Ind City ;
-
-fun Countries_F_provinces_PoitouCharentes : Ind Province ;
-
-fun Countries_F_provinces_PoitouCharentes_cities_Poitiers : Ind City ;
-
-fun Countries_F_provinces_ProvenceCotedAzur : Ind Province ;
-
-fun Countries_F_provinces_ProvenceCotedAzur_cities_AixenProvence : Ind City ;
-
-fun Countries_F_provinces_ProvenceCotedAzur_cities_Marseille : Ind City ;
-
-fun Countries_F_provinces_ProvenceCotedAzur_cities_Nice : Ind City ;
-
-fun Countries_F_provinces_ProvenceCotedAzur_cities_Toulon : Ind City ;
-
-fun Countries_F_provinces_RhoneAlpes : Ind Province ;
-
-fun Countries_F_provinces_RhoneAlpes_cities_Grenoble : Ind City ;
-
-fun Countries_F_provinces_RhoneAlpes_cities_Lyon : Ind City ;
-
-fun Countries_F_provinces_RhoneAlpes_cities_SaintEtienne : Ind City ;
-
-fun Countries_F_provinces_RhoneAlpes_cities_Villeurbanne : Ind City ;
-
-fun Countries_GB_cities_Sandwell : Ind City ;
-
-fun Countries_GB_cities_WrexhamMaelor : Ind City ;
-
-fun Countries_GB_provinces_AberconwyandColwyn : Ind Province ;
-
-fun Countries_GB_provinces_AberconwyandColwyn_cities_ColwynBay : Ind City ;
-
-fun Countries_GB_provinces_Anglesey : Ind Province ;
-
-fun Countries_GB_provinces_Anglesey_cities_Llangefni : Ind City ;
-
-fun Countries_GB_provinces_Avon : Ind Province ;
-
-fun Countries_GB_provinces_Avon_cities_Bristol : Ind City ;
-
-fun Countries_GB_provinces_Bedfordshire : Ind Province ;
-
-fun Countries_GB_provinces_Bedfordshire_cities_Bedford : Ind City ;
-
-fun Countries_GB_provinces_Bedfordshire_cities_Luton : Ind City ;
-
-fun Countries_GB_provinces_Berkshire : Ind Province ;
-
-fun Countries_GB_provinces_Berkshire_cities_Bracknell : Ind City ;
-
-fun Countries_GB_provinces_Berkshire_cities_Newbury : Ind City ;
-
-fun Countries_GB_provinces_Berkshire_cities_Reading : Ind City ;
-
-fun Countries_GB_provinces_Berkshire_cities_Slough : Ind City ;
-
-fun Countries_GB_provinces_Berkshire_cities_Windsor : Ind City ;
-
-fun Countries_GB_provinces_Berkshire_cities_Wokingham : Ind City ;
-
-fun Countries_GB_provinces_BlaenauGwent : Ind Province ;
-
-fun Countries_GB_provinces_BlaenauGwent_cities_EbbwVale : Ind City ;
-
-fun Countries_GB_provinces_Borders : Ind Province ;
-
-fun Countries_GB_provinces_Borders_cities_NewtownSt_Boswells : Ind City ;
-
-fun Countries_GB_provinces_Bridgend : Ind Province ;
-
-fun Countries_GB_provinces_Bridgend_cities_Bridgend : Ind City ;
-
-fun Countries_GB_provinces_Buckinghamshire : Ind Province ;
-
-fun Countries_GB_provinces_Buckinghamshire_cities_Aylesbury : Ind City ;
-
-fun Countries_GB_provinces_Buckinghamshire_cities_MiltonKeynes : Ind City ;
-
-fun Countries_GB_provinces_Buckinghamshire_cities_Wycombe : Ind City ;
-
-fun Countries_GB_provinces_Caerphilly : Ind Province ;
-
-fun Countries_GB_provinces_Caerphilly_cities_YstradFawr : Ind City ;
-
-fun Countries_GB_provinces_Cambridgeshire : Ind Province ;
-
-fun Countries_GB_provinces_Cambridgeshire_cities_Cambridge : Ind City ;
-
-fun Countries_GB_provinces_Cambridgeshire_cities_Huntingdon : Ind City ;
-
-fun Countries_GB_provinces_Cambridgeshire_cities_Peterborough : Ind City ;
-
-fun Countries_GB_provinces_Cardiff : Ind Province ;
-
-fun Countries_GB_provinces_Cardiff_cities_Cardiff : Ind City ;
-
-fun Countries_GB_provinces_Carmarthenshire : Ind Province ;
-
-fun Countries_GB_provinces_Carmarthenshire_cities_Carmarthen : Ind City ;
-
-fun Countries_GB_provinces_Central : Ind Province ;
-
-fun Countries_GB_provinces_Central_cities_Stirling : Ind City ;
-
-fun Countries_GB_provinces_Ceredigion : Ind Province ;
-
-fun Countries_GB_provinces_Ceredigion_cities_Aberystwyth : Ind City ;
-
-fun Countries_GB_provinces_Cheshire : Ind Province ;
-
-fun Countries_GB_provinces_Cheshire_cities_Chester : Ind City ;
-
-fun Countries_GB_provinces_Cheshire_cities_Crewe : Ind City ;
-
-fun Countries_GB_provinces_Cheshire_cities_Macclesfield : Ind City ;
-
-fun Countries_GB_provinces_Cheshire_cities_Warrington : Ind City ;
-
-fun Countries_GB_provinces_Cleveland : Ind Province ;
-
-fun Countries_GB_provinces_Cleveland_cities_Middlesbrough : Ind City ;
-
-fun Countries_GB_provinces_Cleveland_cities_StocktononTees : Ind City ;
-
-fun Countries_GB_provinces_Cornwall_IslesofScilly : Ind Province ;
-
-fun Countries_GB_provinces_Cornwall_IslesofScilly_cities_Truro : Ind City ;
-
-fun Countries_GB_provinces_Cumbria : Ind Province ;
-
-fun Countries_GB_provinces_Cumbria_cities_Carlisle : Ind City ;
-
-fun Countries_GB_provinces_Denbighshire : Ind Province ;
-
-fun Countries_GB_provinces_Denbighshire_cities_Ruthin : Ind City ;
-
-fun Countries_GB_provinces_Derbyshire : Ind Province ;
-
-fun Countries_GB_provinces_Derbyshire_cities_Chesterfield : Ind City ;
-
-fun Countries_GB_provinces_Derbyshire_cities_Derby : Ind City ;
-
-fun Countries_GB_provinces_Derbyshire_cities_Matlock : Ind City ;
-
-fun Countries_GB_provinces_Derbyshire_cities_SuttoninAshfield : Ind City ;
-
-fun Countries_GB_provinces_Devon : Ind Province ;
-
-fun Countries_GB_provinces_Devon_cities_Exeter : Ind City ;
-
-fun Countries_GB_provinces_Devon_cities_Plymouth : Ind City ;
-
-fun Countries_GB_provinces_Dorset : Ind Province ;
-
-fun Countries_GB_provinces_Dorset_cities_Bournemouth : Ind City ;
-
-fun Countries_GB_provinces_Dorset_cities_Dorchester : Ind City ;
-
-fun Countries_GB_provinces_Dorset_cities_Poole : Ind City ;
-
-fun Countries_GB_provinces_DumfriesandGalloway : Ind Province ;
-
-fun Countries_GB_provinces_DumfriesandGalloway_cities_Dumfries : Ind City ;
-
-fun Countries_GB_provinces_Durham : Ind Province ;
-
-fun Countries_GB_provinces_Durham_cities_Darlington : Ind City ;
-
-fun Countries_GB_provinces_Durham_cities_Durham : Ind City ;
-
-fun Countries_GB_provinces_EastSussex : Ind Province ;
-
-fun Countries_GB_provinces_EastSussex_cities_Brighton : Ind City ;
-
-fun Countries_GB_provinces_EastSussex_cities_Lewes : Ind City ;
-
-fun Countries_GB_provinces_Essex : Ind Province ;
-
-fun Countries_GB_provinces_Essex_cities_Basildon : Ind City ;
-
-fun Countries_GB_provinces_Essex_cities_Braintree : Ind City ;
-
-fun Countries_GB_provinces_Essex_cities_Chelmsford : Ind City ;
-
-fun Countries_GB_provinces_Essex_cities_Colchester : Ind City ;
-
-fun Countries_GB_provinces_Essex_cities_EppingForest : Ind City ;
-
-fun Countries_GB_provinces_Essex_cities_SouthendonSea : Ind City ;
-
-fun Countries_GB_provinces_Fife : Ind Province ;
-
-fun Countries_GB_provinces_Fife_cities_Glenrothes : Ind City ;
-
-fun Countries_GB_provinces_Flintshire : Ind Province ;
-
-fun Countries_GB_provinces_Flintshire_cities_Mold : Ind City ;
-
-fun Countries_GB_provinces_Gloucestershire : Ind Province ;
-
-fun Countries_GB_provinces_Gloucestershire_cities_Cheltenham : Ind City ;
-
-fun Countries_GB_provinces_Gloucestershire_cities_Gloucester : Ind City ;
-
-fun Countries_GB_provinces_Gloucestershire_cities_Glouchester : Ind City ;
-
-fun Countries_GB_provinces_Gloucestershire_cities_Stroud : Ind City ;
-
-fun Countries_GB_provinces_Grampian : Ind Province ;
-
-fun Countries_GB_provinces_Grampian_cities_Aberdeen : Ind City ;
-
-fun Countries_GB_provinces_GreaterLondon : Ind Province ;
-
-fun Countries_GB_provinces_GreaterLondon_cities_London : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester : Ind Province ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Bolton : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Bury : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Manchester : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Oldham : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Rochdale : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Salford : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Stockport : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Tameside : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Trafford : Ind City ;
-
-fun Countries_GB_provinces_GreaterManchester_cities_Wigan : Ind City ;
-
-fun Countries_GB_provinces_Gwynedd : Ind Province ;
-
-fun Countries_GB_provinces_Gwynedd_cities_Caernarfon : Ind City ;
-
-fun Countries_GB_provinces_Hampshire : Ind Province ;
-
-fun Countries_GB_provinces_Hampshire_cities_Basingstoke : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Eastleigh : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Fareham : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Havant : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Portsmouth : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Southampton : Ind City ;
-
-fun Countries_GB_provinces_Hampshire_cities_Winchester : Ind City ;
-
-fun Countries_GB_provinces_HerefordandWorcester : Ind Province ;
-
-fun Countries_GB_provinces_HerefordandWorcester_cities_Worcester : Ind City ;
-
-fun Countries_GB_provinces_Hertfordshire : Ind Province ;
-
-fun Countries_GB_provinces_Hertfordshire_cities_Hertford : Ind City ;
-
-fun Countries_GB_provinces_Hertfordshire_cities_SaintAlbans : Ind City ;
-
-fun Countries_GB_provinces_Highland : Ind Province ;
-
-fun Countries_GB_provinces_Highland_cities_Inverness : Ind City ;
-
-fun Countries_GB_provinces_Humberside : Ind Province ;
-
-fun Countries_GB_provinces_Humberside_cities_Beverley : Ind City ;
-
-fun Countries_GB_provinces_Humberside_cities_Hull : Ind City ;
-
-fun Countries_GB_provinces_Humberside_cities_KingstonuponHull : Ind City ;
-
-fun Countries_GB_provinces_IslandAreas_munic : Ind Province ;
-
-fun Countries_GB_provinces_IslandAreas_munic_cities_IslandAreas : Ind City ;
-
-fun Countries_GB_provinces_IsleofWight : Ind Province ;
-
-fun Countries_GB_provinces_Kent : Ind Province ;
-
-fun Countries_GB_provinces_Kent_cities_Canterbury : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_Dover : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_Maidstone : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_RochesteruponMedway : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_Sevenoaks : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_Swale : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_Tonbridge : Ind City ;
-
-fun Countries_GB_provinces_Kent_cities_TunbridgeWells : Ind City ;
-
-fun Countries_GB_provinces_Lancashire : Ind Province ;
-
-fun Countries_GB_provinces_Lancashire_cities_Blackburn : Ind City ;
-
-fun Countries_GB_provinces_Lancashire_cities_Blackpool : Ind City ;
-
-fun Countries_GB_provinces_Lancashire_cities_Lancaster : Ind City ;
-
-fun Countries_GB_provinces_Lancashire_cities_Preston : Ind City ;
-
-fun Countries_GB_provinces_Leicestershire : Ind Province ;
-
-fun Countries_GB_provinces_Leicestershire_cities_Leicester : Ind City ;
-
-fun Countries_GB_provinces_Leicestershire_cities_Leichester : Ind City ;
-
-fun Countries_GB_provinces_Lincolnshire : Ind Province ;
-
-fun Countries_GB_provinces_Lincolnshire_cities_Lincoln : Ind City ;
-
-fun Countries_GB_provinces_Lothian : Ind Province ;
-
-fun Countries_GB_provinces_Lothian_cities_Edinburgh : Ind City ;
-
-fun Countries_GB_provinces_Merseyside : Ind Province ;
-
-fun Countries_GB_provinces_Merseyside_cities_Knowsley : Ind City ;
-
-fun Countries_GB_provinces_Merseyside_cities_Liverpool : Ind City ;
-
-fun Countries_GB_provinces_Merseyside_cities_SaintHelens : Ind City ;
-
-fun Countries_GB_provinces_Merseyside_cities_Sefton : Ind City ;
-
-fun Countries_GB_provinces_Merseyside_cities_Wiral : Ind City ;
-
-fun Countries_GB_provinces_MerthyrTydfil : Ind Province ;
-
-fun Countries_GB_provinces_MerthyrTydfil_cities_MerthyrTydfil : Ind City ;
-
-fun Countries_GB_provinces_Monmouthshire : Ind Province ;
-
-fun Countries_GB_provinces_Monmouthshire_cities_Cwmbran : Ind City ;
-
-fun Countries_GB_provinces_NeathandPortTalbot : Ind Province ;
-
-fun Countries_GB_provinces_NeathandPortTalbot_cities_PortTalbot : Ind City ;
-
-fun Countries_GB_provinces_Newport : Ind Province ;
-
-fun Countries_GB_provinces_Newport_cities_Newport : Ind City ;
-
-fun Countries_GB_provinces_Norfolk : Ind Province ;
-
-fun Countries_GB_provinces_Norfolk_cities_KingsLynn : Ind City ;
-
-fun Countries_GB_provinces_Norfolk_cities_Norwich : Ind City ;
-
-fun Countries_GB_provinces_NorthYorkshire : Ind Province ;
-
-fun Countries_GB_provinces_NorthYorkshire_cities_Harrogate : Ind City ;
-
-fun Countries_GB_provinces_NorthYorkshire_cities_Northallerton : Ind City ;
-
-fun Countries_GB_provinces_NorthYorkshire_cities_Scarborough : Ind City ;
-
-fun Countries_GB_provinces_NorthYorkshire_cities_York : Ind City ;
-
-fun Countries_GB_provinces_Northamptonshire : Ind Province ;
-
-fun Countries_GB_provinces_Northamptonshire_cities_Northampton : Ind City ;
-
-fun Countries_GB_provinces_NorthernIreland : Ind Province ;
-
-fun Countries_GB_provinces_NorthernIreland_cities_Belfast : Ind City ;
-
-fun Countries_GB_provinces_Northumberland : Ind Province ;
-
-fun Countries_GB_provinces_Nottinghamshire : Ind Province ;
-
-fun Countries_GB_provinces_Nottinghamshire_cities_Mansfield : Ind City ;
-
-fun Countries_GB_provinces_Nottinghamshire_cities_NewarkonTrent : Ind City ;
-
-fun Countries_GB_provinces_Nottinghamshire_cities_Nottingham : Ind City ;
-
-fun Countries_GB_provinces_Oxfordshire : Ind Province ;
-
-fun Countries_GB_provinces_Oxfordshire_cities_Oxford : Ind City ;
-
-fun Countries_GB_provinces_Pembrokeshire : Ind Province ;
-
-fun Countries_GB_provinces_Pembrokeshire_cities_Haverfordwest : Ind City ;
-
-fun Countries_GB_provinces_Powys : Ind Province ;
-
-fun Countries_GB_provinces_Powys_cities_LlandrindodWells : Ind City ;
-
-fun Countries_GB_provinces_RhonddaCynonTaff : Ind Province ;
-
-fun Countries_GB_provinces_RhonddaCynonTaff_cities_Rhondda : Ind City ;
-
-fun Countries_GB_provinces_Shropshire : Ind Province ;
-
-fun Countries_GB_provinces_Shropshire_cities_Shrewsbury : Ind City ;
-
-fun Countries_GB_provinces_Somerset : Ind Province ;
-
-fun Countries_GB_provinces_Somerset_cities_Taunton : Ind City ;
-
-fun Countries_GB_provinces_SouthYorkshire : Ind Province ;
-
-fun Countries_GB_provinces_SouthYorkshire_cities_Barnsley : Ind City ;
-
-fun Countries_GB_provinces_SouthYorkshire_cities_Doncaster : Ind City ;
-
-fun Countries_GB_provinces_SouthYorkshire_cities_Rotherham : Ind City ;
-
-fun Countries_GB_provinces_SouthYorkshire_cities_Sheffield : Ind City ;
-
-fun Countries_GB_provinces_Staffordshire : Ind Province ;
-
-fun Countries_GB_provinces_Staffordshire_cities_NewcastleunderLyme : Ind City ;
-
-fun Countries_GB_provinces_Staffordshire_cities_Stafford : Ind City ;
-
-fun Countries_GB_provinces_Staffordshire_cities_StokeonTrent : Ind City ;
-
-fun Countries_GB_provinces_Strathclyde : Ind Province ;
-
-fun Countries_GB_provinces_Strathclyde_cities_Glasgow : Ind City ;
-
-fun Countries_GB_provinces_Strathclyde_cities_Renfrew : Ind City ;
-
-fun Countries_GB_provinces_Suffolk : Ind Province ;
-
-fun Countries_GB_provinces_Suffolk_cities_Ipswich : Ind City ;
-
-fun Countries_GB_provinces_Surrey : Ind Province ;
-
-fun Countries_GB_provinces_Surrey_cities_Elmbridge : Ind City ;
-
-fun Countries_GB_provinces_Surrey_cities_Guildford : Ind City ;
-
-fun Countries_GB_provinces_Surrey_cities_Kingston : Ind City ;
-
-fun Countries_GB_provinces_Surrey_cities_Reigate : Ind City ;
-
-fun Countries_GB_provinces_Swansea : Ind Province ;
-
-fun Countries_GB_provinces_Swansea_cities_Swansea : Ind City ;
-
-fun Countries_GB_provinces_Tayside : Ind Province ;
-
-fun Countries_GB_provinces_Tayside_cities_Dundee : Ind City ;
-
-fun Countries_GB_provinces_Torfaen : Ind Province ;
-
-fun Countries_GB_provinces_Torfaen_cities_Pontypool : Ind City ;
-
-fun Countries_GB_provinces_TyneandWear : Ind Province ;
-
-fun Countries_GB_provinces_TyneandWear_cities_Gateshead : Ind City ;
-
-fun Countries_GB_provinces_TyneandWear_cities_Newcastle : Ind City ;
-
-fun Countries_GB_provinces_TyneandWear_cities_NewcastleuponTyne : Ind City ;
-
-fun Countries_GB_provinces_TyneandWear_cities_Sunderland : Ind City ;
-
-fun Countries_GB_provinces_ValeofGlamorgan : Ind Province ;
-
-fun Countries_GB_provinces_ValeofGlamorgan_cities_Barry : Ind City ;
-
-fun Countries_GB_provinces_ValeofGlamorgan_cities_RhymneyValley : Ind City ;
-
-fun Countries_GB_provinces_Warwickshire : Ind Province ;
-
-fun Countries_GB_provinces_Warwickshire_cities_Nuneaton : Ind City ;
-
-fun Countries_GB_provinces_Warwickshire_cities_StratfordonAvon : Ind City ;
-
-fun Countries_GB_provinces_Warwickshire_cities_Warwick : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands : Ind Province ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Birmingham : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Coventry : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Dudley : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Solihull : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Walsall : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_WestBromwich : Ind City ;
-
-fun Countries_GB_provinces_WestMidlands_cities_Wolverhampton : Ind City ;
-
-fun Countries_GB_provinces_WestSussex : Ind Province ;
-
-fun Countries_GB_provinces_WestSussex_cities_Chichester : Ind City ;
-
-fun Countries_GB_provinces_WestSussex_cities_Horsham : Ind City ;
-
-fun Countries_GB_provinces_WestYorkshire : Ind Province ;
-
-fun Countries_GB_provinces_WestYorkshire_cities_Bradford : Ind City ;
-
-fun Countries_GB_provinces_WestYorkshire_cities_Huddersfield : Ind City ;
-
-fun Countries_GB_provinces_WestYorkshire_cities_Kirklees : Ind City ;
-
-fun Countries_GB_provinces_WestYorkshire_cities_Leeds : Ind City ;
-
-fun Countries_GB_provinces_WestYorkshire_cities_Wakefield : Ind City ;
-
-fun Countries_GB_provinces_Wiltshire : Ind Province ;
-
-fun Countries_GB_provinces_Wiltshire_cities_Salisbury : Ind City ;
-
-fun Countries_GB_provinces_Wiltshire_cities_Trowbridge : Ind City ;
-
-fun Countries_GB_provinces_Wrexham : Ind Province ;
-
-fun Countries_GB_provinces_Wrexham_cities_Wrexham : Ind City ;
-
-fun Countries_GCA_cities_GuatemalaCity : Ind City ;
-
-fun Countries_GCA_cities_Mixco : Ind City ;
-
-fun Countries_GCA_cities_VillaNueva : Ind City ;
-
-fun Countries_GE_cities_Tbilisi : Ind City ;
-
-fun Countries_GH_cities_Accra : Ind City ;
-
-fun Countries_GH_cities_CapeCoast : Ind City ;
-
-fun Countries_GH_cities_Kumasi : Ind City ;
-
-fun Countries_GH_cities_Sekondi : Ind City ;
-
-fun Countries_GH_cities_Takoradi : Ind City ;
-
-fun Countries_GH_cities_Tamale : Ind City ;
-
-fun Countries_GH_cities_Tema : Ind City ;
-
-fun Countries_GNB_cities_Bissau : Ind City ;
-
-fun Countries_GQ_cities_Malabo : Ind City ;
-
-fun Countries_GQ_cities_Sta_Isabel : Ind City ;
-
-fun Countries_GR_cities_Iraklion : Ind City ;
-
-fun Countries_GR_cities_Kavalla : Ind City ;
-
-fun Countries_GR_cities_Larisa : Ind City ;
-
-fun Countries_GR_cities_Patrai : Ind City ;
-
-fun Countries_GR_cities_Piraeus : Ind City ;
-
-fun Countries_GR_cities_Thessaloniki : Ind City ;
-
-fun Countries_GR_cities_Volos : Ind City ;
-
-fun Countries_GR_provinces_AnatolikiMakedhoniakaiThraki : Ind Province ;
-
-fun Countries_GR_provinces_Attiki : Ind Province ;
-
-fun Countries_GR_provinces_Attiki_cities_Athens : Ind City ;
-
-fun Countries_GR_provinces_DhytikiEllas : Ind Province ;
-
-fun Countries_GR_provinces_DhytikiMakedhonia : Ind Province ;
-
-fun Countries_GR_provinces_IonioiNisoi : Ind Province ;
-
-fun Countries_GR_provinces_Ipiros : Ind Province ;
-
-fun Countries_GR_provinces_KedrikiMakedhonia : Ind Province ;
-
-fun Countries_GR_provinces_Kriti : Ind Province ;
-
-fun Countries_GR_provinces_NotionAiyaion : Ind Province ;
-
-fun Countries_GR_provinces_Peloponnisos : Ind Province ;
-
-fun Countries_GR_provinces_StereaEllas : Ind Province ;
-
-fun Countries_GR_provinces_Thessalia : Ind Province ;
-
-fun Countries_GR_provinces_VoreionAiyaion : Ind Province ;
-
-fun Countries_GUY_cities_Georgetown : Ind City ;
-
-fun Countries_G_cities_Libreville : Ind City ;
-
-fun Countries_HCA_provinces_Atlantida : Ind Province ;
-
-fun Countries_HCA_provinces_Atlantida_cities_LaCeiba : Ind City ;
-
-fun Countries_HCA_provinces_Atlantida_cities_Tela : Ind City ;
-
-fun Countries_HCA_provinces_Choluteca : Ind Province ;
-
-fun Countries_HCA_provinces_Choluteca_cities_Choluteca : Ind City ;
-
-fun Countries_HCA_provinces_Colon : Ind Province ;
-
-fun Countries_HCA_provinces_Colon_cities_Trujillo : Ind City ;
-
-fun Countries_HCA_provinces_Comayagua : Ind Province ;
-
-fun Countries_HCA_provinces_Comayagua_cities_Comayagua : Ind City ;
-
-fun Countries_HCA_provinces_Copan : Ind Province ;
-
-fun Countries_HCA_provinces_Copan_cities_SantaRosadeCopan : Ind City ;
-
-fun Countries_HCA_provinces_Cortes : Ind Province ;
-
-fun Countries_HCA_provinces_Cortes_cities_PuertoCortes : Ind City ;
-
-fun Countries_HCA_provinces_Cortes_cities_SanPedroSula : Ind City ;
-
-fun Countries_HCA_provinces_ElParaiso : Ind Province ;
-
-fun Countries_HCA_provinces_ElParaiso_cities_Danli : Ind City ;
-
-fun Countries_HCA_provinces_ElParaiso_cities_Yuscaran : Ind City ;
-
-fun Countries_HCA_provinces_FranciscoMorazan : Ind Province ;
-
-fun Countries_HCA_provinces_FranciscoMorazan_cities_Siguatepeque : Ind City ;
-
-fun Countries_HCA_provinces_FranciscoMorazan_cities_Tegucigalpa : Ind City ;
-
-fun Countries_HCA_provinces_GraciasaDios : Ind Province ;
-
-fun Countries_HCA_provinces_GraciasaDios_cities_PuertoLempira : Ind City ;
-
-fun Countries_HCA_provinces_Intibuca : Ind Province ;
-
-fun Countries_HCA_provinces_Intibuca_cities_LaEsperanza : Ind City ;
-
-fun Countries_HCA_provinces_IslasdelaBahia : Ind Province ;
-
-fun Countries_HCA_provinces_IslasdelaBahia_cities_Roatan : Ind City ;
-
-fun Countries_HCA_provinces_LaPaz : Ind Province ;
-
-fun Countries_HCA_provinces_LaPaz_cities_LaPaz : Ind City ;
-
-fun Countries_HCA_provinces_Lempira : Ind Province ;
-
-fun Countries_HCA_provinces_Lempira_cities_Gracias : Ind City ;
-
-fun Countries_HCA_provinces_Ocotepeque : Ind Province ;
-
-fun Countries_HCA_provinces_Ocotepeque_cities_Ocotepeque : Ind City ;
-
-fun Countries_HCA_provinces_Olancho : Ind Province ;
-
-fun Countries_HCA_provinces_Olancho_cities_Jutigalpa : Ind City ;
-
-fun Countries_HCA_provinces_SantaBarbara : Ind Province ;
-
-fun Countries_HCA_provinces_SantaBarbara_cities_SantaBarbara : Ind City ;
-
-fun Countries_HCA_provinces_Valle : Ind Province ;
-
-fun Countries_HCA_provinces_Valle_cities_Nacaome : Ind City ;
-
-fun Countries_HCA_provinces_Yoro : Ind Province ;
-
-fun Countries_HCA_provinces_Yoro_cities_ElProgreso : Ind City ;
-
-fun Countries_HCA_provinces_Yoro_cities_Olanchito : Ind City ;
-
-fun Countries_HCA_provinces_Yoro_cities_Yoro : Ind City ;
-
-fun Countries_HR_cities_Zagreb : Ind City ;
-
-fun Countries_H_provinces_BacsKiskun : Ind Province ;
-
-fun Countries_H_provinces_BacsKiskun_cities_Kecskemet : Ind City ;
-
-fun Countries_H_provinces_Baranya : Ind Province ;
-
-fun Countries_H_provinces_Bekes : Ind Province ;
-
-fun Countries_H_provinces_Bekes_cities_Bekescaba : Ind City ;
-
-fun Countries_H_provinces_BorsodAbaujZemplen : Ind Province ;
-
-fun Countries_H_provinces_Budapest_munic : Ind Province ;
-
-fun Countries_H_provinces_Budapest_munic_cities_Budapest : Ind City ;
-
-fun Countries_H_provinces_Csongrad : Ind Province ;
-
-fun Countries_H_provinces_Csongrad_cities_Hodmezovasarhely : Ind City ;
-
-fun Countries_H_provinces_Debrecen_munic : Ind Province ;
-
-fun Countries_H_provinces_Debrecen_munic_cities_Debrecen : Ind City ;
-
-fun Countries_H_provinces_Fejer : Ind Province ;
-
-fun Countries_H_provinces_Fejer_cities_Szekesfehervar : Ind City ;
-
-fun Countries_H_provinces_GyorSopron : Ind Province ;
-
-fun Countries_H_provinces_Gyor_munic : Ind Province ;
-
-fun Countries_H_provinces_Gyor_munic_cities_Gyor : Ind City ;
-
-fun Countries_H_provinces_HajduBihar : Ind Province ;
-
-fun Countries_H_provinces_Heves : Ind Province ;
-
-fun Countries_H_provinces_Heves_cities_Eger : Ind City ;
-
-fun Countries_H_provinces_KomaromEsztergom : Ind Province ;
-
-fun Countries_H_provinces_KomaromEsztergom_cities_Tatabanya : Ind City ;
-
-fun Countries_H_provinces_Miskolc_munic : Ind Province ;
-
-fun Countries_H_provinces_Miskolc_munic_cities_Miskolc : Ind City ;
-
-fun Countries_H_provinces_Nograd : Ind Province ;
-
-fun Countries_H_provinces_Nograd_cities_Salgotarjan : Ind City ;
-
-fun Countries_H_provinces_Pecs_munic : Ind Province ;
-
-fun Countries_H_provinces_Pecs_munic_cities_Pecs : Ind City ;
-
-fun Countries_H_provinces_Pest : Ind Province ;
-
-fun Countries_H_provinces_Somogy : Ind Province ;
-
-fun Countries_H_provinces_Somogy_cities_Kaposvar : Ind City ;
-
-fun Countries_H_provinces_SzabolcsSzatmar : Ind Province ;
-
-fun Countries_H_provinces_SzabolcsSzatmar_cities_Nyiregyhaza : Ind City ;
-
-fun Countries_H_provinces_Szeged_munic : Ind Province ;
-
-fun Countries_H_provinces_Szeged_munic_cities_Szeged : Ind City ;
-
-fun Countries_H_provinces_Szolnok : Ind Province ;
-
-fun Countries_H_provinces_Szolnok_cities_Szolnok : Ind City ;
-
-fun Countries_H_provinces_Tolna : Ind Province ;
-
-fun Countries_H_provinces_Tolna_cities_Szekszard : Ind City ;
-
-fun Countries_H_provinces_Vas : Ind Province ;
-
-fun Countries_H_provinces_Vas_cities_Szombathely : Ind City ;
-
-fun Countries_H_provinces_Veszprem : Ind Province ;
-
-fun Countries_H_provinces_Veszprem_cities_Veszprem : Ind City ;
-
-fun Countries_H_provinces_Zala : Ind Province ;
-
-fun Countries_H_provinces_Zala_cities_Zalaegerszeg : Ind City ;
-
-fun Countries_IL_provinces_Central : Ind Province ;
-
-fun Countries_IL_provinces_Central_cities_Jerusalem : Ind City ;
-
-fun Countries_IL_provinces_Central_cities_Ramla : Ind City ;
-
-fun Countries_IL_provinces_Haifa : Ind Province ;
-
-fun Countries_IL_provinces_Haifa_cities_Haifa : Ind City ;
-
-fun Countries_IL_provinces_North : Ind Province ;
-
-fun Countries_IL_provinces_North_cities_Nazareth : Ind City ;
-
-fun Countries_IL_provinces_South : Ind Province ;
-
-fun Countries_IL_provinces_South_cities_BeerSheva : Ind City ;
-
-fun Countries_IL_provinces_TelAviv : Ind Province ;
-
-fun Countries_IL_provinces_TelAviv_cities_TelAviv : Ind City ;
-
-fun Countries_IND_cities_PimpriChinchwad : Ind City ;
-
-fun Countries_IND_provinces_AndamanandNicobarIs_ : Ind Province ;
-
-fun Countries_IND_provinces_AndamanandNicobarIs__cities_PortBlair : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh : Ind Province ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Guntur : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Hyderabad : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Rajahmundry : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Vijayawada : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Vishakhapatnam : Ind City ;
-
-fun Countries_IND_provinces_AndhraPradesh_cities_Warangal : Ind City ;
-
-fun Countries_IND_provinces_ArunachalPradesh : Ind Province ;
-
-fun Countries_IND_provinces_ArunachalPradesh_cities_Itanagar : Ind City ;
-
-fun Countries_IND_provinces_Assam : Ind Province ;
-
-fun Countries_IND_provinces_Assam_cities_Dispur : Ind City ;
-
-fun Countries_IND_provinces_Assam_cities_Gauhati : Ind City ;
-
-fun Countries_IND_provinces_Bihar : Ind Province ;
-
-fun Countries_IND_provinces_Bihar_cities_BokaraSteelCity : Ind City ;
-
-fun Countries_IND_provinces_Bihar_cities_Jamshedpur : Ind City ;
-
-fun Countries_IND_provinces_Bihar_cities_Patna : Ind City ;
-
-fun Countries_IND_provinces_Bihar_cities_Ranchi : Ind City ;
-
-fun Countries_IND_provinces_Chandigarh : Ind Province ;
-
-fun Countries_IND_provinces_Chandigarh_cities_Chandigarh : Ind City ;
-
-fun Countries_IND_provinces_DadraandNagarHaveli : Ind Province ;
-
-fun Countries_IND_provinces_DadraandNagarHaveli_cities_Silvassa : Ind City ;
-
-fun Countries_IND_provinces_DamanandDiu : Ind Province ;
-
-fun Countries_IND_provinces_DamanandDiu_cities_Daman : Ind City ;
-
-fun Countries_IND_provinces_Delhi : Ind Province ;
-
-fun Countries_IND_provinces_Delhi_cities_Ghaziabad : Ind City ;
-
-fun Countries_IND_provinces_Delhi_cities_NewDelhi : Ind City ;
-
-fun Countries_IND_provinces_Goa : Ind Province ;
-
-fun Countries_IND_provinces_Goa_cities_Panaji : Ind City ;
-
-fun Countries_IND_provinces_Gujarat : Ind Province ;
-
-fun Countries_IND_provinces_Gujarat_cities_Ahmadabad : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Bhavnagar : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Gandhinagar : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Jamnagar : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Rajkot : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Surat : Ind City ;
-
-fun Countries_IND_provinces_Gujarat_cities_Vadodara : Ind City ;
-
-fun Countries_IND_provinces_Haryana : Ind Province ;
-
-fun Countries_IND_provinces_HimachalPradesh : Ind Province ;
-
-fun Countries_IND_provinces_HimachalPradesh_cities_Simla : Ind City ;
-
-fun Countries_IND_provinces_JammuandKashmir : Ind Province ;
-
-fun Countries_IND_provinces_JammuandKashmir_cities_Jammu : Ind City ;
-
-fun Countries_IND_provinces_JammuandKashmir_cities_Srinagar : Ind City ;
-
-fun Countries_IND_provinces_Karnataka : Ind Province ;
-
-fun Countries_IND_provinces_Karnataka_cities_Bangalore : Ind City ;
-
-fun Countries_IND_provinces_Karnataka_cities_Hubli : Ind City ;
-
-fun Countries_IND_provinces_Karnataka_cities_Mysore : Ind City ;
-
-fun Countries_IND_provinces_Kerala : Ind Province ;
-
-fun Countries_IND_provinces_Kerala_cities_Cochin : Ind City ;
-
-fun Countries_IND_provinces_Kerala_cities_Kozhikode : Ind City ;
-
-fun Countries_IND_provinces_Kerala_cities_Trivandrum : Ind City ;
-
-fun Countries_IND_provinces_LakshadweepIs_ : Ind Province ;
-
-fun Countries_IND_provinces_LakshadweepIs__cities_Kavaratti : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh : Ind Province ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Bhatpara : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Bhilai : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Bhopal : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Gwalior : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Indore : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Jabalpur : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Raipur : Ind City ;
-
-fun Countries_IND_provinces_MadhyaPradesh_cities_Ujjain : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra : Ind Province ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Amravati : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Aurangabad : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Bhiwandi : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Bombay : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Kalyan : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Kolhapur : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Mumbai : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Nagpur : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Nasik : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_NewBombay : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Pune : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Sholapur : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Thane : Ind City ;
-
-fun Countries_IND_provinces_Maharashtra_cities_Ulhasnagar : Ind City ;
-
-fun Countries_IND_provinces_Manipur : Ind Province ;
-
-fun Countries_IND_provinces_Manipur_cities_Imphal : Ind City ;
-
-fun Countries_IND_provinces_Meghalaya : Ind Province ;
-
-fun Countries_IND_provinces_Meghalaya_cities_Shillong : Ind City ;
-
-fun Countries_IND_provinces_Mizoram : Ind Province ;
-
-fun Countries_IND_provinces_Mizoram_cities_Aijal : Ind City ;
-
-fun Countries_IND_provinces_Nagaland : Ind Province ;
-
-fun Countries_IND_provinces_Nagaland_cities_Kohima : Ind City ;
-
-fun Countries_IND_provinces_Orissa : Ind Province ;
-
-fun Countries_IND_provinces_Orissa_cities_Bhubaneswar : Ind City ;
-
-fun Countries_IND_provinces_Orissa_cities_Cuttack : Ind City ;
-
-fun Countries_IND_provinces_Pondicherry : Ind Province ;
-
-fun Countries_IND_provinces_Pondicherry_cities_Pondicherry : Ind City ;
-
-fun Countries_IND_provinces_Punjab : Ind Province ;
-
-fun Countries_IND_provinces_Punjab_cities_Amritsar : Ind City ;
-
-fun Countries_IND_provinces_Punjab_cities_Jalandhar : Ind City ;
-
-fun Countries_IND_provinces_Punjab_cities_Ludhiana : Ind City ;
-
-fun Countries_IND_provinces_Rajasthan : Ind Province ;
-
-fun Countries_IND_provinces_Rajasthan_cities_Ajmer : Ind City ;
-
-fun Countries_IND_provinces_Rajasthan_cities_Bikaner : Ind City ;
-
-fun Countries_IND_provinces_Rajasthan_cities_Jaipur : Ind City ;
-
-fun Countries_IND_provinces_Rajasthan_cities_Jodhpur : Ind City ;
-
-fun Countries_IND_provinces_Rajasthan_cities_Kota : Ind City ;
-
-fun Countries_IND_provinces_Sikkim : Ind Province ;
-
-fun Countries_IND_provinces_Sikkim_cities_Gangtok : Ind City ;
-
-fun Countries_IND_provinces_TamilNadu : Ind Province ;
-
-fun Countries_IND_provinces_TamilNadu_cities_Coimbatore : Ind City ;
-
-fun Countries_IND_provinces_TamilNadu_cities_Madras : Ind City ;
-
-fun Countries_IND_provinces_TamilNadu_cities_Madurai : Ind City ;
-
-fun Countries_IND_provinces_TamilNadu_cities_Salem : Ind City ;
-
-fun Countries_IND_provinces_TamilNadu_cities_Tiruchchirappalli : Ind City ;
-
-fun Countries_IND_provinces_Tripura : Ind Province ;
-
-fun Countries_IND_provinces_Tripura_cities_Agartala : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh : Ind Province ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Agra : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Aligarh : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Allahabad : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Bareilly : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Faridabad : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Gorakhpur : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Jhansi : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Kanpur : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Lucknow : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Meerut : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Moradabad : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Saharanpur : Ind City ;
-
-fun Countries_IND_provinces_UttarPradesh_cities_Varanasi : Ind City ;
-
-fun Countries_IND_provinces_WestBengal : Ind Province ;
-
-fun Countries_IND_provinces_WestBengal_cities_Calcutta : Ind City ;
-
-fun Countries_IND_provinces_WestBengal_cities_Durgapur : Ind City ;
-
-fun Countries_IND_provinces_WestBengal_cities_Haora : Ind City ;
-
-fun Countries_IRL_cities_Dublin : Ind City ;
-
-fun Countries_IRQ_provinces_AdTamim : Ind Province ;
-
-fun Countries_IRQ_provinces_AdTamim_cities_Kirkuk : Ind City ;
-
-fun Countries_IRQ_provinces_AlAnbar : Ind Province ;
-
-fun Countries_IRQ_provinces_AlAnbar_cities_ArRamadi : Ind City ;
-
-fun Countries_IRQ_provinces_AlBasrah : Ind Province ;
-
-fun Countries_IRQ_provinces_AlBasrah_cities_AlBasrah : Ind City ;
-
-fun Countries_IRQ_provinces_AlMuthanna : Ind Province ;
-
-fun Countries_IRQ_provinces_AlMuthanna_cities_AsSamawah : Ind City ;
-
-fun Countries_IRQ_provinces_AlQadisiyah : Ind Province ;
-
-fun Countries_IRQ_provinces_AlQadisiyah_cities_AdDiwaniyah : Ind City ;
-
-fun Countries_IRQ_provinces_AlQadisiyah_cities_Diwaniyah : Ind City ;
-
-fun Countries_IRQ_provinces_AnNajaf : Ind Province ;
-
-fun Countries_IRQ_provinces_AnNajaf_cities_AnNajaf : Ind City ;
-
-fun Countries_IRQ_provinces_AsSulaymaniyah : Ind Province ;
-
-fun Countries_IRQ_provinces_AsSulaymaniyah_cities_AsSulaymaniyah : Ind City ;
-
-fun Countries_IRQ_provinces_Babil : Ind Province ;
-
-fun Countries_IRQ_provinces_Babil_cities_AlHillah : Ind City ;
-
-fun Countries_IRQ_provinces_Baghdad : Ind Province ;
-
-fun Countries_IRQ_provinces_Baghdad_cities_Baghdad : Ind City ;
-
-fun Countries_IRQ_provinces_Dahuk : Ind Province ;
-
-fun Countries_IRQ_provinces_Dahuk_cities_Dahuk : Ind City ;
-
-fun Countries_IRQ_provinces_DhiQar : Ind Province ;
-
-fun Countries_IRQ_provinces_DhiQar_cities_AnNasiriyah : Ind City ;
-
-fun Countries_IRQ_provinces_Diyala : Ind Province ;
-
-fun Countries_IRQ_provinces_Diyala_cities_Baqubah : Ind City ;
-
-fun Countries_IRQ_provinces_Irbil : Ind Province ;
-
-fun Countries_IRQ_provinces_Irbil_cities_Irbil : Ind City ;
-
-fun Countries_IRQ_provinces_Karbala : Ind Province ;
-
-fun Countries_IRQ_provinces_Karbala_cities_Karbala : Ind City ;
-
-fun Countries_IRQ_provinces_Maysan : Ind Province ;
-
-fun Countries_IRQ_provinces_Maysan_cities_AlAmarah : Ind City ;
-
-fun Countries_IRQ_provinces_Ninawa : Ind Province ;
-
-fun Countries_IRQ_provinces_Ninawa_cities_AlMawsil : Ind City ;
-
-fun Countries_IRQ_provinces_Ninawa_cities_Mosul : Ind City ;
-
-fun Countries_IRQ_provinces_SalahadDin : Ind Province ;
-
-fun Countries_IRQ_provinces_SalahadDin_cities_Samarra : Ind City ;
-
-fun Countries_IRQ_provinces_Wasit : Ind Province ;
-
-fun Countries_IRQ_provinces_Wasit_cities_AlKut : Ind City ;
-
-fun Countries_IR_cities_Islamshahr : Ind City ;
-
-fun Countries_IR_cities_Mehrshahr : Ind City ;
-
-fun Countries_IR_cities_Rajaishahr : Ind City ;
-
-fun Countries_IR_provinces_AzarbayianeGharbt : Ind Province ;
-
-fun Countries_IR_provinces_AzarbayianeGharbt_cities_Khvoy : Ind City ;
-
-fun Countries_IR_provinces_AzarbayianeGharbt_cities_Maragheh : Ind City ;
-
-fun Countries_IR_provinces_AzarbayianeGharbt_cities_Orumiyeh : Ind City ;
-
-fun Countries_IR_provinces_AzarbayianeSharqi : Ind Province ;
-
-fun Countries_IR_provinces_AzarbayianeSharqi_cities_Ardabil : Ind City ;
-
-fun Countries_IR_provinces_AzarbayianeSharqi_cities_Tabriz : Ind City ;
-
-fun Countries_IR_provinces_Bakhtaran : Ind Province ;
-
-fun Countries_IR_provinces_Bakhtaran_cities_Bakhtaran : Ind City ;
-
-fun Countries_IR_provinces_BoyerAhmadeKohkiluyeh : Ind Province ;
-
-fun Countries_IR_provinces_BoyerAhmadeKohkiluyeh_cities_Yasuj : Ind City ;
-
-fun Countries_IR_provinces_Bushehr : Ind Province ;
-
-fun Countries_IR_provinces_Bushehr_cities_BandareBushehr : Ind City ;
-
-fun Countries_IR_provinces_Bushehr_cities_Bushehr : Ind City ;
-
-fun Countries_IR_provinces_ChaharMahaleBakhtiari : Ind Province ;
-
-fun Countries_IR_provinces_ChaharMahaleBakhtiari_cities_ShahreKord : Ind City ;
-
-fun Countries_IR_provinces_Esfahan : Ind Province ;
-
-fun Countries_IR_provinces_Esfahan_cities_Esfahan : Ind City ;
-
-fun Countries_IR_provinces_Esfahan_cities_Khomeynishahr : Ind City ;
-
-fun Countries_IR_provinces_Esfahan_cities_Najafabad : Ind City ;
-
-fun Countries_IR_provinces_Fars : Ind Province ;
-
-fun Countries_IR_provinces_Fars_cities_Shiraz : Ind City ;
-
-fun Countries_IR_provinces_Gilan : Ind Province ;
-
-fun Countries_IR_provinces_Gilan_cities_Rasht : Ind City ;
-
-fun Countries_IR_provinces_Hamadan : Ind Province ;
-
-fun Countries_IR_provinces_Hamadan_cities_Hamadan : Ind City ;
-
-fun Countries_IR_provinces_Hamadan_cities_Malayer : Ind City ;
-
-fun Countries_IR_provinces_Hormozgan : Ind Province ;
-
-fun Countries_IR_provinces_Hormozgan_cities_BandarAbbas : Ind City ;
-
-fun Countries_IR_provinces_Ilam : Ind Province ;
-
-fun Countries_IR_provinces_Ilam_cities_Ilam : Ind City ;
-
-fun Countries_IR_provinces_Kerman : Ind Province ;
-
-fun Countries_IR_provinces_Kerman_cities_Kerman : Ind City ;
-
-fun Countries_IR_provinces_Kerman_cities_Sirjan : Ind City ;
-
-fun Countries_IR_provinces_Khorasan : Ind Province ;
-
-fun Countries_IR_provinces_Khorasan_cities_Birjand : Ind City ;
-
-fun Countries_IR_provinces_Khorasan_cities_Bojnurd : Ind City ;
-
-fun Countries_IR_provinces_Khorasan_cities_Mashhad : Ind City ;
-
-fun Countries_IR_provinces_Khorasan_cities_Neyshabur : Ind City ;
-
-fun Countries_IR_provinces_Khorasan_cities_Sabzevar : Ind City ;
-
-fun Countries_IR_provinces_Khuzestan : Ind Province ;
-
-fun Countries_IR_provinces_Khuzestan_cities_Ahvaz : Ind City ;
-
-fun Countries_IR_provinces_Khuzestan_cities_Dezful : Ind City ;
-
-fun Countries_IR_provinces_Khuzestan_cities_Khorramshahr : Ind City ;
-
-fun Countries_IR_provinces_Khuzestan_cities_MasjedeSoleyman : Ind City ;
-
-fun Countries_IR_provinces_Kordestan : Ind Province ;
-
-fun Countries_IR_provinces_Kordestan_cities_Sanandaj : Ind City ;
-
-fun Countries_IR_provinces_Lorestan : Ind Province ;
-
-fun Countries_IR_provinces_Lorestan_cities_Borujerd : Ind City ;
-
-fun Countries_IR_provinces_Lorestan_cities_Khorramabad : Ind City ;
-
-fun Countries_IR_provinces_Markazi : Ind Province ;
-
-fun Countries_IR_provinces_Markazi_cities_Arak : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran : Ind Province ;
-
-fun Countries_IR_provinces_Mazandaran_cities_Amol : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran_cities_Babol : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran_cities_GonbadeKavus : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran_cities_Gorgan : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran_cities_Qaemshahr : Ind City ;
-
-fun Countries_IR_provinces_Mazandaran_cities_Sari : Ind City ;
-
-fun Countries_IR_provinces_Semnan : Ind Province ;
-
-fun Countries_IR_provinces_Semnan_cities_Semnan : Ind City ;
-
-fun Countries_IR_provinces_SistaneBaluchestan : Ind Province ;
-
-fun Countries_IR_provinces_SistaneBaluchestan_cities_Zahedan : Ind City ;
-
-fun Countries_IR_provinces_Tehran : Ind Province ;
-
-fun Countries_IR_provinces_Tehran_cities_Karaj : Ind City ;
-
-fun Countries_IR_provinces_Tehran_cities_Kashan : Ind City ;
-
-fun Countries_IR_provinces_Tehran_cities_Qazvin : Ind City ;
-
-fun Countries_IR_provinces_Tehran_cities_Qom : Ind City ;
-
-fun Countries_IR_provinces_Tehran_cities_Tehran : Ind City ;
-
-fun Countries_IR_provinces_Yazd : Ind Province ;
-
-fun Countries_IR_provinces_Yazd_cities_Yazd : Ind City ;
-
-fun Countries_IR_provinces_Zanjan : Ind Province ;
-
-fun Countries_IR_provinces_Zanjan_cities_Zanjan : Ind City ;
-
-fun Countries_IS_cities_Akureyri : Ind City ;
-
-fun Countries_IS_cities_Hafnarfjoerdur : Ind City ;
-
-fun Countries_IS_cities_Keflavik : Ind City ;
-
-fun Countries_IS_cities_Reykjavik : Ind City ;
-
-fun Countries_I_cities_Forli : Ind City ;
-
-fun Countries_I_provinces_Abruzzo : Ind Province ;
-
-fun Countries_I_provinces_Abruzzo_cities_LAquila : Ind City ;
-
-fun Countries_I_provinces_Abruzzo_cities_Pescara : Ind City ;
-
-fun Countries_I_provinces_Basilicata : Ind Province ;
-
-fun Countries_I_provinces_Basilicata_cities_Potenza : Ind City ;
-
-fun Countries_I_provinces_Calabria : Ind Province ;
-
-fun Countries_I_provinces_Calabria_cities_Catanzaro : Ind City ;
-
-fun Countries_I_provinces_Calabria_cities_Cosenza : Ind City ;
-
-fun Countries_I_provinces_Calabria_cities_Messina : Ind City ;
-
-fun Countries_I_provinces_Calabria_cities_ReggiodiCalabria : Ind City ;
-
-fun Countries_I_provinces_Campania : Ind Province ;
-
-fun Countries_I_provinces_Campania_cities_Napoli : Ind City ;
-
-fun Countries_I_provinces_Campania_cities_Salerno : Ind City ;
-
-fun Countries_I_provinces_Campania_cities_TorredelGreco : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna : Ind Province ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Bologna : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Ferrara : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Modena : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Parma : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Piacenza : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Ravenna : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_ReggionellEmilia : Ind City ;
-
-fun Countries_I_provinces_EmiliaRomagna_cities_Rimini : Ind City ;
-
-fun Countries_I_provinces_FriuliVeneziaGiulia : Ind Province ;
-
-fun Countries_I_provinces_FriuliVeneziaGiulia_cities_Trieste : Ind City ;
-
-fun Countries_I_provinces_Lazio : Ind Province ;
-
-fun Countries_I_provinces_Lazio_cities_Latina : Ind City ;
-
-fun Countries_I_provinces_Lazio_cities_Rome : Ind City ;
-
-fun Countries_I_provinces_Liguria : Ind Province ;
-
-fun Countries_I_provinces_Liguria_cities_Genua : Ind City ;
-
-fun Countries_I_provinces_Liguria_cities_LaSpezia : Ind City ;
-
-fun Countries_I_provinces_Lombardia : Ind Province ;
-
-fun Countries_I_provinces_Lombardia_cities_Bergamo : Ind City ;
-
-fun Countries_I_provinces_Lombardia_cities_Brescia : Ind City ;
-
-fun Countries_I_provinces_Lombardia_cities_Milan : Ind City ;
-
-fun Countries_I_provinces_Lombardia_cities_Monza : Ind City ;
-
-fun Countries_I_provinces_Marche : Ind Province ;
-
-fun Countries_I_provinces_Marche_cities_Ancona : Ind City ;
-
-fun Countries_I_provinces_Molise : Ind Province ;
-
-fun Countries_I_provinces_Molise_cities_Campobasso : Ind City ;
-
-fun Countries_I_provinces_Piemonte : Ind Province ;
-
-fun Countries_I_provinces_Piemonte_cities_Novara : Ind City ;
-
-fun Countries_I_provinces_Piemonte_cities_Turin : Ind City ;
-
-fun Countries_I_provinces_Puglia : Ind Province ;
-
-fun Countries_I_provinces_Puglia_cities_Bari : Ind City ;
-
-fun Countries_I_provinces_Puglia_cities_Foggia : Ind City ;
-
-fun Countries_I_provinces_Puglia_cities_Lecce : Ind City ;
-
-fun Countries_I_provinces_Puglia_cities_Taranto : Ind City ;
-
-fun Countries_I_provinces_Sardegna : Ind Province ;
-
-fun Countries_I_provinces_Sardegna_cities_Cagliari : Ind City ;
-
-fun Countries_I_provinces_Sardegna_cities_Sassari : Ind City ;
-
-fun Countries_I_provinces_Sicilia : Ind Province ;
-
-fun Countries_I_provinces_Sicilia_cities_Catania : Ind City ;
-
-fun Countries_I_provinces_Sicilia_cities_Palermo : Ind City ;
-
-fun Countries_I_provinces_Sicilia_cities_Siracusa : Ind City ;
-
-fun Countries_I_provinces_Toscana : Ind Province ;
-
-fun Countries_I_provinces_Toscana_cities_Firenze : Ind City ;
-
-fun Countries_I_provinces_Toscana_cities_Livorno : Ind City ;
-
-fun Countries_I_provinces_Toscana_cities_Pisa : Ind City ;
-
-fun Countries_I_provinces_Toscana_cities_Prato : Ind City ;
-
-fun Countries_I_provinces_TrentinoAltoAdige : Ind Province ;
-
-fun Countries_I_provinces_TrentinoAltoAdige_cities_Bolzano : Ind City ;
-
-fun Countries_I_provinces_TrentinoAltoAdige_cities_Trento : Ind City ;
-
-fun Countries_I_provinces_Umbria : Ind Province ;
-
-fun Countries_I_provinces_Umbria_cities_Perugia : Ind City ;
-
-fun Countries_I_provinces_Umbria_cities_Terni : Ind City ;
-
-fun Countries_I_provinces_ValledAosta : Ind Province ;
-
-fun Countries_I_provinces_ValledAosta_cities_Aosta : Ind City ;
-
-fun Countries_I_provinces_Veneto : Ind Province ;
-
-fun Countries_I_provinces_Veneto_cities_Padova : Ind City ;
-
-fun Countries_I_provinces_Veneto_cities_Venice : Ind City ;
-
-fun Countries_I_provinces_Veneto_cities_Verona : Ind City ;
-
-fun Countries_I_provinces_Veneto_cities_Vicenza : Ind City ;
-
-fun Countries_JA_cities_Kingston : Ind City ;
-
-fun Countries_JOR_cities_Amman : Ind City ;
-
-fun Countries_J_provinces_Aichi : Ind Province ;
-
-fun Countries_J_provinces_Aichi_cities_Nagoya : Ind City ;
-
-fun Countries_J_provinces_Akita : Ind Province ;
-
-fun Countries_J_provinces_Akita_cities_Akita : Ind City ;
-
-fun Countries_J_provinces_Aomori : Ind Province ;
-
-fun Countries_J_provinces_Aomori_cities_Aomori : Ind City ;
-
-fun Countries_J_provinces_Chiba : Ind Province ;
-
-fun Countries_J_provinces_Chiba_cities_Chiba : Ind City ;
-
-fun Countries_J_provinces_Ehime : Ind Province ;
-
-fun Countries_J_provinces_Ehime_cities_Matsuyama : Ind City ;
-
-fun Countries_J_provinces_Fukui : Ind Province ;
-
-fun Countries_J_provinces_Fukui_cities_Fukui : Ind City ;
-
-fun Countries_J_provinces_Fukuoka : Ind Province ;
-
-fun Countries_J_provinces_Fukuoka_cities_Fukuoka : Ind City ;
-
-fun Countries_J_provinces_Fukuoka_cities_Kitakyushu : Ind City ;
-
-fun Countries_J_provinces_Fukushima : Ind Province ;
-
-fun Countries_J_provinces_Fukushima_cities_Fukushima : Ind City ;
-
-fun Countries_J_provinces_Gifu : Ind Province ;
-
-fun Countries_J_provinces_Gifu_cities_Gifu : Ind City ;
-
-fun Countries_J_provinces_Gumma : Ind Province ;
-
-fun Countries_J_provinces_Gumma_cities_Maebashi : Ind City ;
-
-fun Countries_J_provinces_Hiroshima : Ind Province ;
-
-fun Countries_J_provinces_Hiroshima_cities_Hiroshima : Ind City ;
-
-fun Countries_J_provinces_Hokkaido : Ind Province ;
-
-fun Countries_J_provinces_Hokkaido_cities_Sapporo : Ind City ;
-
-fun Countries_J_provinces_Hyogo : Ind Province ;
-
-fun Countries_J_provinces_Hyogo_cities_Kobe : Ind City ;
-
-fun Countries_J_provinces_Ibaraki : Ind Province ;
-
-fun Countries_J_provinces_Ibaraki_cities_Mito : Ind City ;
-
-fun Countries_J_provinces_Ishikawa : Ind Province ;
-
-fun Countries_J_provinces_Ishikawa_cities_Kanazawa : Ind City ;
-
-fun Countries_J_provinces_Iwate : Ind Province ;
-
-fun Countries_J_provinces_Iwate_cities_Morioka : Ind City ;
-
-fun Countries_J_provinces_Kagawa : Ind Province ;
-
-fun Countries_J_provinces_Kagawa_cities_Takamatsu : Ind City ;
-
-fun Countries_J_provinces_Kagoshima : Ind Province ;
-
-fun Countries_J_provinces_Kagoshima_cities_Kagoshima : Ind City ;
-
-fun Countries_J_provinces_Kanagawa : Ind Province ;
-
-fun Countries_J_provinces_Kanagawa_cities_Kawasaki : Ind City ;
-
-fun Countries_J_provinces_Kanagawa_cities_Yokohama : Ind City ;
-
-fun Countries_J_provinces_Kochi : Ind Province ;
-
-fun Countries_J_provinces_Kochi_cities_Kochi : Ind City ;
-
-fun Countries_J_provinces_Kumamoto : Ind Province ;
-
-fun Countries_J_provinces_Kumamoto_cities_Kumamoto : Ind City ;
-
-fun Countries_J_provinces_Kyoto : Ind Province ;
-
-fun Countries_J_provinces_Kyoto_cities_Kyoto : Ind City ;
-
-fun Countries_J_provinces_Mie : Ind Province ;
-
-fun Countries_J_provinces_Mie_cities_Tsu : Ind City ;
-
-fun Countries_J_provinces_Miyagi : Ind Province ;
-
-fun Countries_J_provinces_Miyagi_cities_Sendai : Ind City ;
-
-fun Countries_J_provinces_Miyazaki : Ind Province ;
-
-fun Countries_J_provinces_Miyazaki_cities_Miyazaki : Ind City ;
-
-fun Countries_J_provinces_Nagano : Ind Province ;
-
-fun Countries_J_provinces_Nagano_cities_Nagano : Ind City ;
-
-fun Countries_J_provinces_Nagasaki : Ind Province ;
-
-fun Countries_J_provinces_Nagasaki_cities_Nagasaki : Ind City ;
-
-fun Countries_J_provinces_Nara : Ind Province ;
-
-fun Countries_J_provinces_Nara_cities_Nara : Ind City ;
-
-fun Countries_J_provinces_Niigata : Ind Province ;
-
-fun Countries_J_provinces_Niigata_cities_Niigata : Ind City ;
-
-fun Countries_J_provinces_Oita : Ind Province ;
-
-fun Countries_J_provinces_Oita_cities_Oita : Ind City ;
-
-fun Countries_J_provinces_Okayama : Ind Province ;
-
-fun Countries_J_provinces_Okayama_cities_Okayama : Ind City ;
-
-fun Countries_J_provinces_Okinawa : Ind Province ;
-
-fun Countries_J_provinces_Okinawa_cities_Naha : Ind City ;
-
-fun Countries_J_provinces_Osaka : Ind Province ;
-
-fun Countries_J_provinces_Osaka_cities_Osaka : Ind City ;
-
-fun Countries_J_provinces_Saga : Ind Province ;
-
-fun Countries_J_provinces_Saga_cities_Saga : Ind City ;
-
-fun Countries_J_provinces_Saitama : Ind Province ;
-
-fun Countries_J_provinces_Saitama_cities_Urawa : Ind City ;
-
-fun Countries_J_provinces_Shiga : Ind Province ;
-
-fun Countries_J_provinces_Shiga_cities_Otsu : Ind City ;
-
-fun Countries_J_provinces_Shimane : Ind Province ;
-
-fun Countries_J_provinces_Shimane_cities_Matsue : Ind City ;
-
-fun Countries_J_provinces_Shizuoka : Ind Province ;
-
-fun Countries_J_provinces_Shizuoka_cities_Shizuoka : Ind City ;
-
-fun Countries_J_provinces_Tochigi : Ind Province ;
-
-fun Countries_J_provinces_Tochigi_cities_Utsonomiya : Ind City ;
-
-fun Countries_J_provinces_Tokushima : Ind Province ;
-
-fun Countries_J_provinces_Tokushima_cities_Tokushima : Ind City ;
-
-fun Countries_J_provinces_Tokyo : Ind Province ;
-
-fun Countries_J_provinces_Tokyo_cities_Tokyo : Ind City ;
-
-fun Countries_J_provinces_Tottori : Ind Province ;
-
-fun Countries_J_provinces_Tottori_cities_Tottori : Ind City ;
-
-fun Countries_J_provinces_Toyama : Ind Province ;
-
-fun Countries_J_provinces_Toyama_cities_Toyama : Ind City ;
-
-fun Countries_J_provinces_Wakayama : Ind Province ;
-
-fun Countries_J_provinces_Wakayama_cities_Wakayama : Ind City ;
-
-fun Countries_J_provinces_Yamagata : Ind Province ;
-
-fun Countries_J_provinces_Yamagata_cities_Yamagata : Ind City ;
-
-fun Countries_J_provinces_Yamaguchi : Ind Province ;
-
-fun Countries_J_provinces_Yamaguchi_cities_Yamaguchi : Ind City ;
-
-fun Countries_J_provinces_Yamanashi : Ind Province ;
-
-fun Countries_J_provinces_Yamanashi_cities_Kofu : Ind City ;
-
-fun Countries_KAZ_provinces_Almaty : Ind Province ;
-
-fun Countries_KAZ_provinces_Almaty_munic : Ind Province ;
-
-fun Countries_KAZ_provinces_Almaty_munic_cities_Almaty : Ind City ;
-
-fun Countries_KAZ_provinces_Aqmola : Ind Province ;
-
-fun Countries_KAZ_provinces_Aqmola_cities_Aqmola : Ind City ;
-
-fun Countries_KAZ_provinces_Aqtobe : Ind Province ;
-
-fun Countries_KAZ_provinces_Aqtobe_cities_Aqtobe : Ind City ;
-
-fun Countries_KAZ_provinces_Atyrau : Ind Province ;
-
-fun Countries_KAZ_provinces_Atyrau_cities_Atyrau : Ind City ;
-
-fun Countries_KAZ_provinces_BatysQazaqstan : Ind Province ;
-
-fun Countries_KAZ_provinces_BatysQazaqstan_cities_Oral : Ind City ;
-
-fun Countries_KAZ_provinces_Kokchetau : Ind Province ;
-
-fun Countries_KAZ_provinces_Kokchetau_cities_Kokchetau : Ind City ;
-
-fun Countries_KAZ_provinces_Leninsk_munic : Ind Province ;
-
-fun Countries_KAZ_provinces_Leninsk_munic_cities_Leninsk : Ind City ;
-
-fun Countries_KAZ_provinces_Mangghystau : Ind Province ;
-
-fun Countries_KAZ_provinces_Mangghystau_cities_Aqtau : Ind City ;
-
-fun Countries_KAZ_provinces_OngtustikQazaqstan : Ind Province ;
-
-fun Countries_KAZ_provinces_OngtustikQazaqstan_cities_Shymkent : Ind City ;
-
-fun Countries_KAZ_provinces_Pavlodar : Ind Province ;
-
-fun Countries_KAZ_provinces_Pavlodar_cities_Ekibastuz : Ind City ;
-
-fun Countries_KAZ_provinces_Pavlodar_cities_Pavlodar : Ind City ;
-
-fun Countries_KAZ_provinces_Qaraghandy : Ind Province ;
-
-fun Countries_KAZ_provinces_Qaraghandy_cities_Karaganda : Ind City ;
-
-fun Countries_KAZ_provinces_Qaraghandy_cities_Temirtau : Ind City ;
-
-fun Countries_KAZ_provinces_Qostanay : Ind Province ;
-
-fun Countries_KAZ_provinces_Qostanay_cities_Qostanay : Ind City ;
-
-fun Countries_KAZ_provinces_Qostanay_cities_Rudny : Ind City ;
-
-fun Countries_KAZ_provinces_Qyzylorda : Ind Province ;
-
-fun Countries_KAZ_provinces_Qyzylorda_cities_Qyzylorda : Ind City ;
-
-fun Countries_KAZ_provinces_Semey : Ind Province ;
-
-fun Countries_KAZ_provinces_Semey_cities_Semey : Ind City ;
-
-fun Countries_KAZ_provinces_ShyghysQazaqstan : Ind Province ;
-
-fun Countries_KAZ_provinces_ShyghysQazaqstan_cities_Oskemen : Ind City ;
-
-fun Countries_KAZ_provinces_SoltustikQazaqstan : Ind Province ;
-
-fun Countries_KAZ_provinces_SoltustikQazaqstan_cities_Petropavl : Ind City ;
-
-fun Countries_KAZ_provinces_Taldyqorghan : Ind Province ;
-
-fun Countries_KAZ_provinces_Taldyqorghan_cities_Taldyqorghan : Ind City ;
-
-fun Countries_KAZ_provinces_Torghay : Ind Province ;
-
-fun Countries_KAZ_provinces_Torghay_cities_Arqalyq : Ind City ;
-
-fun Countries_KAZ_provinces_Zhambyl : Ind Province ;
-
-fun Countries_KAZ_provinces_Zhambyl_cities_Dzhambul : Ind City ;
-
-fun Countries_KAZ_provinces_Zhambyl_cities_Zhambyl : Ind City ;
-
-fun Countries_KAZ_provinces_Zhezkazghan : Ind Province ;
-
-fun Countries_KAZ_provinces_Zhezkazghan_cities_Zhezkazghan : Ind City ;
-
-fun Countries_KAZ_provinces_Zhezkazghan_cities_Zhezqazghan : Ind City ;
-
-fun Countries_KGZ_cities_Bishkek : Ind City ;
-
-fun Countries_KIR_cities_Tarawa : Ind City ;
-
-fun Countries_KN_cities_Basseterre : Ind City ;
-
-fun Countries_KWT_cities_Kuwait : Ind City ;
-
-fun Countries_K_cities_PhnomPenh : Ind City ;
-
-fun Countries_LAO_cities_Vientiane : Ind City ;
-
-fun Countries_LAR_cities_Bengasi : Ind City ;
-
-fun Countries_LAR_cities_Tripoli : Ind City ;
-
-fun Countries_LB_cities_Monrovia : Ind City ;
-
-fun Countries_LS_cities_Maseru : Ind City ;
-
-fun Countries_LT_cities_Vilnius : Ind City ;
-
-fun Countries_LV_cities_Riga : Ind City ;
-
-fun Countries_L_cities_Luxembourg : Ind City ;
-
-fun Countries_MAL_cities_SeloyangBaru : Ind City ;
-
-fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur : Ind Province ;
-
-fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_KualaLumpur : Ind City ;
-
-fun Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_PetalingJaya : Ind City ;
-
-fun Countries_MAL_provinces_Fed_Terr_ofLabuan : Ind Province ;
-
-fun Countries_MAL_provinces_Fed_Terr_ofLabuan_cities_Labuan : Ind City ;
-
-fun Countries_MAL_provinces_Johor : Ind Province ;
-
-fun Countries_MAL_provinces_Johor_cities_JohorBaharu : Ind City ;
-
-fun Countries_MAL_provinces_Kedah : Ind Province ;
-
-fun Countries_MAL_provinces_Kedah_cities_AlorSetar : Ind City ;
-
-fun Countries_MAL_provinces_Kelantan : Ind Province ;
-
-fun Countries_MAL_provinces_Kelantan_cities_KotaBaharu : Ind City ;
-
-fun Countries_MAL_provinces_Melaka : Ind Province ;
-
-fun Countries_MAL_provinces_Melaka_cities_Melaka : Ind City ;
-
-fun Countries_MAL_provinces_NegeriSembilan : Ind Province ;
-
-fun Countries_MAL_provinces_NegeriSembilan_cities_Seremban : Ind City ;
-
-fun Countries_MAL_provinces_Pahang : Ind Province ;
-
-fun Countries_MAL_provinces_Pahang_cities_Kuantan : Ind City ;
-
-fun Countries_MAL_provinces_Perak : Ind Province ;
-
-fun Countries_MAL_provinces_Perak_cities_Ipoh : Ind City ;
-
-fun Countries_MAL_provinces_Perak_cities_Taiping : Ind City ;
-
-fun Countries_MAL_provinces_Perlis : Ind Province ;
-
-fun Countries_MAL_provinces_Perlis_cities_Kangar : Ind City ;
-
-fun Countries_MAL_provinces_PulauPinang : Ind Province ;
-
-fun Countries_MAL_provinces_PulauPinang_cities_GeorgeTown : Ind City ;
-
-fun Countries_MAL_provinces_Sabah : Ind Province ;
-
-fun Countries_MAL_provinces_Sabah_cities_KotaKinabalu : Ind City ;
-
-fun Countries_MAL_provinces_Sabah_cities_Sandakan : Ind City ;
-
-fun Countries_MAL_provinces_Sabah_cities_Tawai : Ind City ;
-
-fun Countries_MAL_provinces_Sarawak : Ind Province ;
-
-fun Countries_MAL_provinces_Sarawak_cities_Kuching : Ind City ;
-
-fun Countries_MAL_provinces_Sarawak_cities_Sibu : Ind City ;
-
-fun Countries_MAL_provinces_Selangor : Ind Province ;
-
-fun Countries_MAL_provinces_Selangor_cities_Kelang : Ind City ;
-
-fun Countries_MAL_provinces_Selangor_cities_ShahAlam : Ind City ;
-
-fun Countries_MAL_provinces_Terengganu : Ind Province ;
-
-fun Countries_MAL_provinces_Terengganu_cities_KualaTerengganu : Ind City ;
-
-fun Countries_MA_cities_Agadir : Ind City ;
-
-fun Countries_MA_cities_BeniMellal : Ind City ;
-
-fun Countries_MA_cities_Casablanca : Ind City ;
-
-fun Countries_MA_cities_Fes : Ind City ;
-
-fun Countries_MA_cities_Kenitra : Ind City ;
-
-fun Countries_MA_cities_Khouribga : Ind City ;
-
-fun Countries_MA_cities_Marrakech : Ind City ;
-
-fun Countries_MA_cities_Meknes : Ind City ;
-
-fun Countries_MA_cities_Oujda : Ind City ;
-
-fun Countries_MA_cities_Rabat : Ind City ;
-
-fun Countries_MA_cities_Safi : Ind City ;
-
-fun Countries_MA_cities_Tanger : Ind City ;
-
-fun Countries_MA_cities_Tetouan : Ind City ;
-
-fun Countries_MA_provinces_Centre : Ind Province ;
-
-fun Countries_MA_provinces_CentreNord : Ind Province ;
-
-fun Countries_MA_provinces_CentreSud : Ind Province ;
-
-fun Countries_MA_provinces_NordOuest : Ind Province ;
-
-fun Countries_MA_provinces_Oriental : Ind Province ;
-
-fun Countries_MA_provinces_Tensift : Ind Province ;
-
-fun Countries_MC_cities_Monaco : Ind City ;
-
-fun Countries_MD_cities_Chisinau : Ind City ;
-
-fun Countries_MEX_cities_AtizapandeZaragoza : Ind City ;
-
-fun Countries_MEX_cities_CiudadApodaca : Ind City ;
-
-fun Countries_MEX_cities_Llave : Ind City ;
-
-fun Countries_MEX_cities_SanPedroGarzaGarcia : Ind City ;
-
-fun Countries_MEX_cities_SoledaddeGracianoSanchez : Ind City ;
-
-fun Countries_MEX_provinces_Aguascalientes : Ind Province ;
-
-fun Countries_MEX_provinces_Aguascalientes_cities_Aguascalientes : Ind City ;
-
-fun Countries_MEX_provinces_BajaCalifornia : Ind Province ;
-
-fun Countries_MEX_provinces_BajaCaliforniaSur : Ind Province ;
-
-fun Countries_MEX_provinces_BajaCaliforniaSur_cities_LaPaz : Ind City ;
-
-fun Countries_MEX_provinces_BajaCalifornia_cities_Ensenada : Ind City ;
-
-fun Countries_MEX_provinces_BajaCalifornia_cities_Mexicali : Ind City ;
-
-fun Countries_MEX_provinces_BajaCalifornia_cities_Tijuana : Ind City ;
-
-fun Countries_MEX_provinces_Campeche : Ind Province ;
-
-fun Countries_MEX_provinces_Campeche_cities_Campeche : Ind City ;
-
-fun Countries_MEX_provinces_Chiapas : Ind Province ;
-
-fun Countries_MEX_provinces_Chiapas_cities_Nezahualcoyotl : Ind City ;
-
-fun Countries_MEX_provinces_Chiapas_cities_Tapachula : Ind City ;
-
-fun Countries_MEX_provinces_Chiapas_cities_Tonala : Ind City ;
-
-fun Countries_MEX_provinces_Chiapas_cities_TuxtlaGutierrez : Ind City ;
-
-fun Countries_MEX_provinces_Chihuahua : Ind Province ;
-
-fun Countries_MEX_provinces_Chihuahua_cities_Chihuahua : Ind City ;
-
-fun Countries_MEX_provinces_Chihuahua_cities_Juarez : Ind City ;
-
-fun Countries_MEX_provinces_Coahuila : Ind Province ;
-
-fun Countries_MEX_provinces_Coahuila_cities_Monclova : Ind City ;
-
-fun Countries_MEX_provinces_Coahuila_cities_Saltillo : Ind City ;
-
-fun Countries_MEX_provinces_Coahuila_cities_Torreon : Ind City ;
-
-fun Countries_MEX_provinces_Colima : Ind Province ;
-
-fun Countries_MEX_provinces_Colima_cities_Colima : Ind City ;
-
-fun Countries_MEX_provinces_DistritoFederal : Ind Province ;
-
-fun Countries_MEX_provinces_DistritoFederal_cities_MexicoCity : Ind City ;
-
-fun Countries_MEX_provinces_Durango : Ind Province ;
-
-fun Countries_MEX_provinces_Durango_cities_Durango : Ind City ;
-
-fun Countries_MEX_provinces_Durango_cities_GomezPalacio : Ind City ;
-
-fun Countries_MEX_provinces_Durango_cities_VictoriadeDurango : Ind City ;
-
-fun Countries_MEX_provinces_Guanajuato : Ind Province ;
-
-fun Countries_MEX_provinces_Guanajuato_cities_Celaya : Ind City ;
-
-fun Countries_MEX_provinces_Guanajuato_cities_Guanajuato : Ind City ;
-
-fun Countries_MEX_provinces_Guanajuato_cities_Irapuato : Ind City ;
-
-fun Countries_MEX_provinces_Guanajuato_cities_Leon : Ind City ;
-
-fun Countries_MEX_provinces_Guanajuato_cities_Salamanca : Ind City ;
-
-fun Countries_MEX_provinces_Guerrero : Ind Province ;
-
-fun Countries_MEX_provinces_Guerrero_cities_Acapulco : Ind City ;
-
-fun Countries_MEX_provinces_Guerrero_cities_Chilpancingo : Ind City ;
-
-fun Countries_MEX_provinces_Hidalgo : Ind Province ;
-
-fun Countries_MEX_provinces_Hidalgo_cities_Pachuca : Ind City ;
-
-fun Countries_MEX_provinces_Hidalgo_cities_PachucadeSoto : Ind City ;
-
-fun Countries_MEX_provinces_Jalisco : Ind Province ;
-
-fun Countries_MEX_provinces_Jalisco_cities_Cuautla : Ind City ;
-
-fun Countries_MEX_provinces_Jalisco_cities_Guadalajara : Ind City ;
-
-fun Countries_MEX_provinces_Jalisco_cities_Tlaquepaque : Ind City ;
-
-fun Countries_MEX_provinces_Jalisco_cities_Zapopan : Ind City ;
-
-fun Countries_MEX_provinces_Mexico_Estadode : Ind Province ;
-
-fun Countries_MEX_provinces_Mexico_Estadode_cities_Toluca : Ind City ;
-
-fun Countries_MEX_provinces_Mexico_Estadode_cities_TolucadeLerdo : Ind City ;
-
-fun Countries_MEX_provinces_Michoacan : Ind Province ;
-
-fun Countries_MEX_provinces_Michoacan_cities_Morelia : Ind City ;
-
-fun Countries_MEX_provinces_Michoacan_cities_Uruapan : Ind City ;
-
-fun Countries_MEX_provinces_Michoacan_cities_Zamora : Ind City ;
-
-fun Countries_MEX_provinces_Morelos : Ind Province ;
-
-fun Countries_MEX_provinces_Morelos_cities_Cuernavaca : Ind City ;
-
-fun Countries_MEX_provinces_Nayarit : Ind Province ;
-
-fun Countries_MEX_provinces_Nayarit_cities_Tepic : Ind City ;
-
-fun Countries_MEX_provinces_NuevoLeon : Ind Province ;
-
-fun Countries_MEX_provinces_NuevoLeon_cities_CiudadSantaCatarina : Ind City ;
-
-fun Countries_MEX_provinces_NuevoLeon_cities_Guadalupe : Ind City ;
-
-fun Countries_MEX_provinces_NuevoLeon_cities_Monterrey : Ind City ;
-
-fun Countries_MEX_provinces_NuevoLeon_cities_SanNicolasdelosGarza : Ind City ;
-
-fun Countries_MEX_provinces_Oaxaca : Ind Province ;
-
-fun Countries_MEX_provinces_Oaxaca_cities_Oaxaca : Ind City ;
-
-fun Countries_MEX_provinces_Puebla : Ind Province ;
-
-fun Countries_MEX_provinces_Puebla_cities_Puebla : Ind City ;
-
-fun Countries_MEX_provinces_Puebla_cities_Tehuacan : Ind City ;
-
-fun Countries_MEX_provinces_Queretaro : Ind Province ;
-
-fun Countries_MEX_provinces_Queretaro_cities_Queretaro : Ind City ;
-
-fun Countries_MEX_provinces_QuintanaRoo : Ind Province ;
-
-fun Countries_MEX_provinces_QuintanaRoo_cities_Cancun : Ind City ;
-
-fun Countries_MEX_provinces_QuintanaRoo_cities_Chetumal : Ind City ;
-
-fun Countries_MEX_provinces_SanLuisPotosi : Ind Province ;
-
-fun Countries_MEX_provinces_SanLuisPotosi_cities_SanLuisPotosi : Ind City ;
-
-fun Countries_MEX_provinces_Sinaloa : Ind Province ;
-
-fun Countries_MEX_provinces_Sinaloa_cities_Culiacan : Ind City ;
-
-fun Countries_MEX_provinces_Sinaloa_cities_LosMochis : Ind City ;
-
-fun Countries_MEX_provinces_Sinaloa_cities_Mazatlan : Ind City ;
-
-fun Countries_MEX_provinces_Sonora : Ind Province ;
-
-fun Countries_MEX_provinces_Sonora_cities_CiudadObregon : Ind City ;
-
-fun Countries_MEX_provinces_Sonora_cities_Hermosillo : Ind City ;
-
-fun Countries_MEX_provinces_Sonora_cities_HeroicaNogales : Ind City ;
-
-fun Countries_MEX_provinces_Tabasco : Ind Province ;
-
-fun Countries_MEX_provinces_Tabasco_cities_Villahermosa : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas : Ind Province ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_CiudadMadero : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_CiudadVictoria : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_Matamoros : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_NuevoLaredo : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_Reynosa : Ind City ;
-
-fun Countries_MEX_provinces_Tamaulipas_cities_Tampico : Ind City ;
-
-fun Countries_MEX_provinces_Tlaxcala : Ind Province ;
-
-fun Countries_MEX_provinces_Tlaxcala_cities_Tlaxcala : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz : Ind Province ;
-
-fun Countries_MEX_provinces_Veracruz_cities_Coatzacoalcos : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_Cordoba : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_Jalapa : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_Minatitlan : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_Orizaba : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_PozaRica : Ind City ;
-
-fun Countries_MEX_provinces_Veracruz_cities_XalapaEnriquez : Ind City ;
-
-fun Countries_MEX_provinces_Yucatan : Ind Province ;
-
-fun Countries_MEX_provinces_Yucatan_cities_Merida : Ind City ;
-
-fun Countries_MEX_provinces_Zacatecas : Ind Province ;
-
-fun Countries_MEX_provinces_Zacatecas_cities_Zacatecas : Ind City ;
-
-fun Countries_MH_cities_Majuro : Ind City ;
-
-fun Countries_MK_cities_Skopje : Ind City ;
-
-fun Countries_MNG_cities_Ulaanbaatar : Ind City ;
-
-fun Countries_MOC_cities_Matala : Ind City ;
-
-fun Countries_MOC_provinces_CaboDelgado : Ind Province ;
-
-fun Countries_MOC_provinces_CaboDelgado_cities_Pemba : Ind City ;
-
-fun Countries_MOC_provinces_Gaza : Ind Province ;
-
-fun Countries_MOC_provinces_Gaza_cities_XaiXai : Ind City ;
-
-fun Countries_MOC_provinces_Inhambane : Ind Province ;
-
-fun Countries_MOC_provinces_Inhambane_cities_Inhambane : Ind City ;
-
-fun Countries_MOC_provinces_Manica : Ind Province ;
-
-fun Countries_MOC_provinces_Manica_cities_Chimoio : Ind City ;
-
-fun Countries_MOC_provinces_Maputo : Ind Province ;
-
-fun Countries_MOC_provinces_Maputo_cities_Nacala : Ind City ;
-
-fun Countries_MOC_provinces_Maputo_munic : Ind Province ;
-
-fun Countries_MOC_provinces_Maputo_munic_cities_Maputo : Ind City ;
-
-fun Countries_MOC_provinces_Nampula : Ind Province ;
-
-fun Countries_MOC_provinces_Nampula_cities_Nampula : Ind City ;
-
-fun Countries_MOC_provinces_Niassa : Ind Province ;
-
-fun Countries_MOC_provinces_Niassa_cities_Lichinga : Ind City ;
-
-fun Countries_MOC_provinces_Sofala : Ind Province ;
-
-fun Countries_MOC_provinces_Sofala_cities_Beira : Ind City ;
-
-fun Countries_MOC_provinces_Tete : Ind Province ;
-
-fun Countries_MOC_provinces_Tete_cities_Tete : Ind City ;
-
-fun Countries_MOC_provinces_Zambezia : Ind Province ;
-
-fun Countries_MOC_provinces_Zambezia_cities_Quelimane : Ind City ;
-
-fun Countries_MS_cities_PortLouis : Ind City ;
-
-fun Countries_MV_cities_Male : Ind City ;
-
-fun Countries_MW_cities_Lilongwe : Ind City ;
-
-fun Countries_MYA_provinces_Ayeyarwady : Ind Province ;
-
-fun Countries_MYA_provinces_Ayeyarwady_cities_Pathein : Ind City ;
-
-fun Countries_MYA_provinces_Bago : Ind Province ;
-
-fun Countries_MYA_provinces_Bago_cities_Bago : Ind City ;
-
-fun Countries_MYA_provinces_Chin : Ind Province ;
-
-fun Countries_MYA_provinces_Chin_cities_Hakha : Ind City ;
-
-fun Countries_MYA_provinces_Kachin : Ind Province ;
-
-fun Countries_MYA_provinces_Kachin_cities_Myitkyina : Ind City ;
-
-fun Countries_MYA_provinces_Kayah : Ind Province ;
-
-fun Countries_MYA_provinces_Kayah_cities_Loikaw : Ind City ;
-
-fun Countries_MYA_provinces_Kayin : Ind Province ;
-
-fun Countries_MYA_provinces_Kayin_cities_Hpaan : Ind City ;
-
-fun Countries_MYA_provinces_Magway : Ind Province ;
-
-fun Countries_MYA_provinces_Magway_cities_Magway : Ind City ;
-
-fun Countries_MYA_provinces_Mandalay : Ind Province ;
-
-fun Countries_MYA_provinces_Mandalay_cities_Mandalay : Ind City ;
-
-fun Countries_MYA_provinces_Mon : Ind Province ;
-
-fun Countries_MYA_provinces_Mon_cities_Moulmein : Ind City ;
-
-fun Countries_MYA_provinces_Rakhine : Ind Province ;
-
-fun Countries_MYA_provinces_Rakhine_cities_Akyab : Ind City ;
-
-fun Countries_MYA_provinces_Sagaing : Ind Province ;
-
-fun Countries_MYA_provinces_Sagaing_cities_Monywa : Ind City ;
-
-fun Countries_MYA_provinces_Sagaing_cities_Sagaing : Ind City ;
-
-fun Countries_MYA_provinces_Shan : Ind Province ;
-
-fun Countries_MYA_provinces_Shan_cities_Taunggyi : Ind City ;
-
-fun Countries_MYA_provinces_Tanintharyi : Ind Province ;
-
-fun Countries_MYA_provinces_Tanintharyi_cities_Tavoy : Ind City ;
-
-fun Countries_MYA_provinces_Yangon : Ind Province ;
-
-fun Countries_MYA_provinces_Yangon_cities_Rangoon : Ind City ;
-
-fun Countries_M_cities_Valletta : Ind City ;
-
-fun Countries_NAM_cities_Windhoek : Ind City ;
-
-fun Countries_NAU_cities_Yaren : Ind City ;
-
-fun Countries_NCA_cities_Noumea : Ind City ;
-
-fun Countries_NEP_cities_Kathmandu : Ind City ;
-
-fun Countries_NIC_cities_Chinandega : Ind City ;
-
-fun Countries_NIC_cities_Leon : Ind City ;
-
-fun Countries_NIC_cities_Managua : Ind City ;
-
-fun Countries_NIC_cities_Masaya : Ind City ;
-
-fun Countries_NL_provinces_Drenthe : Ind Province ;
-
-fun Countries_NL_provinces_Drenthe_cities_Assen : Ind City ;
-
-fun Countries_NL_provinces_Flevoland : Ind Province ;
-
-fun Countries_NL_provinces_Flevoland_cities_Lelystad : Ind City ;
-
-fun Countries_NL_provinces_Friesland : Ind Province ;
-
-fun Countries_NL_provinces_Friesland_cities_Leeuwarden : Ind City ;
-
-fun Countries_NL_provinces_Gelderland : Ind Province ;
-
-fun Countries_NL_provinces_Gelderland_cities_Arnhem : Ind City ;
-
-fun Countries_NL_provinces_Gelderland_cities_Nijmegen : Ind City ;
-
-fun Countries_NL_provinces_Groningen : Ind Province ;
-
-fun Countries_NL_provinces_Groningen_cities_Groningen : Ind City ;
-
-fun Countries_NL_provinces_Limburg : Ind Province ;
-
-fun Countries_NL_provinces_Limburg_cities_Geleen : Ind City ;
-
-fun Countries_NL_provinces_Limburg_cities_Heerlen : Ind City ;
-
-fun Countries_NL_provinces_Limburg_cities_Maastricht : Ind City ;
-
-fun Countries_NL_provinces_NoordBrabant : Ind Province ;
-
-fun Countries_NL_provinces_NoordBrabant_cities_Breda : Ind City ;
-
-fun Countries_NL_provinces_NoordBrabant_cities_Eindhoven : Ind City ;
-
-fun Countries_NL_provinces_NoordBrabant_cities_Tilburg : Ind City ;
-
-fun Countries_NL_provinces_NoordBrabant_cities_sHertogenbosch : Ind City ;
-
-fun Countries_NL_provinces_NoordHolland : Ind Province ;
-
-fun Countries_NL_provinces_NoordHolland_cities_Amsterdam : Ind City ;
-
-fun Countries_NL_provinces_NoordHolland_cities_Haarlem : Ind City ;
-
-fun Countries_NL_provinces_NoordHolland_cities_Hilversum : Ind City ;
-
-fun Countries_NL_provinces_NoordHolland_cities_Velsen : Ind City ;
-
-fun Countries_NL_provinces_NoordHolland_cities_Zaanstreek : Ind City ;
-
-fun Countries_NL_provinces_Overijssel : Ind Province ;
-
-fun Countries_NL_provinces_Overijssel_cities_Enschede : Ind City ;
-
-fun Countries_NL_provinces_Overijssel_cities_Zwolle : Ind City ;
-
-fun Countries_NL_provinces_Utrecht : Ind Province ;
-
-fun Countries_NL_provinces_Utrecht_cities_Utrecht : Ind City ;
-
-fun Countries_NL_provinces_Zeeland : Ind Province ;
-
-fun Countries_NL_provinces_Zeeland_cities_Middelburg : Ind City ;
-
-fun Countries_NL_provinces_ZuidHolland : Ind Province ;
-
-fun Countries_NL_provinces_ZuidHolland_cities_Dordrecht : Ind City ;
-
-fun Countries_NL_provinces_ZuidHolland_cities_Leiden : Ind City ;
-
-fun Countries_NL_provinces_ZuidHolland_cities_Rotterdam : Ind City ;
-
-fun Countries_NL_provinces_ZuidHolland_cities_sGravenhage : Ind City ;
-
-fun Countries_NOK_cities_Anju : Ind City ;
-
-fun Countries_NOK_cities_Chongjin : Ind City ;
-
-fun Countries_NOK_cities_Haeju : Ind City ;
-
-fun Countries_NOK_cities_HamhungHungnam : Ind City ;
-
-fun Countries_NOK_cities_Huichon : Ind City ;
-
-fun Countries_NOK_cities_Kaesong : Ind City ;
-
-fun Countries_NOK_cities_Kanggye : Ind City ;
-
-fun Countries_NOK_cities_Kusong : Ind City ;
-
-fun Countries_NOK_cities_Nampo : Ind City ;
-
-fun Countries_NOK_cities_Pyongyang : Ind City ;
-
-fun Countries_NOK_cities_Sinpo : Ind City ;
-
-fun Countries_NOK_cities_Sinuiju : Ind City ;
-
-fun Countries_NOK_cities_Songjin : Ind City ;
-
-fun Countries_NOK_cities_Sunchon : Ind City ;
-
-fun Countries_NOK_cities_Tanchon : Ind City ;
-
-fun Countries_NOK_cities_Tokchon : Ind City ;
-
-fun Countries_NOK_cities_Wonsan : Ind City ;
-
-fun Countries_NZ_cities_Auckland : Ind City ;
-
-fun Countries_NZ_cities_Wellington : Ind City ;
-
-fun Countries_N_provinces_Akershus : Ind Province ;
-
-fun Countries_N_provinces_AustAgder : Ind Province ;
-
-fun Countries_N_provinces_AustAgder_cities_Arendal : Ind City ;
-
-fun Countries_N_provinces_Buskerud : Ind Province ;
-
-fun Countries_N_provinces_Buskerud_cities_Drammen : Ind City ;
-
-fun Countries_N_provinces_Finnmark : Ind Province ;
-
-fun Countries_N_provinces_Finnmark_cities_Hammerfest : Ind City ;
-
-fun Countries_N_provinces_Finnmark_cities_Vadsoe : Ind City ;
-
-fun Countries_N_provinces_Hedmark : Ind Province ;
-
-fun Countries_N_provinces_Hedmark_cities_Hamar : Ind City ;
-
-fun Countries_N_provinces_Hordaland : Ind Province ;
-
-fun Countries_N_provinces_Hordaland_cities_Bergen : Ind City ;
-
-fun Countries_N_provinces_MoereogRomsdal : Ind Province ;
-
-fun Countries_N_provinces_MoereogRomsdal_cities_Molde : Ind City ;
-
-fun Countries_N_provinces_NordTrondelag : Ind Province ;
-
-fun Countries_N_provinces_NordTrondelag_cities_Steinkjer : Ind City ;
-
-fun Countries_N_provinces_Nordland : Ind Province ;
-
-fun Countries_N_provinces_Nordland_cities_Bodoe : Ind City ;
-
-fun Countries_N_provinces_Nordland_cities_Narvik : Ind City ;
-
-fun Countries_N_provinces_Nordland_cities_Svolvaer : Ind City ;
-
-fun Countries_N_provinces_Oestfold : Ind Province ;
-
-fun Countries_N_provinces_Oestfold_cities_Moss : Ind City ;
-
-fun Countries_N_provinces_Oppland : Ind Province ;
-
-fun Countries_N_provinces_Oppland_cities_Lillehammer : Ind City ;
-
-fun Countries_N_provinces_Oslo : Ind Province ;
-
-fun Countries_N_provinces_Oslo_cities_Oslo : Ind City ;
-
-fun Countries_N_provinces_Rogaland : Ind Province ;
-
-fun Countries_N_provinces_Rogaland_cities_Stavanger : Ind City ;
-
-fun Countries_N_provinces_SoerTrondelag : Ind Province ;
-
-fun Countries_N_provinces_SoerTrondelag_cities_Trondheim : Ind City ;
-
-fun Countries_N_provinces_SognogFjordane : Ind Province ;
-
-fun Countries_N_provinces_SognogFjordane_cities_Hermannsverk : Ind City ;
-
-fun Countries_N_provinces_Telemark : Ind Province ;
-
-fun Countries_N_provinces_Telemark_cities_Skien : Ind City ;
-
-fun Countries_N_provinces_Troms : Ind Province ;
-
-fun Countries_N_provinces_Troms_cities_Tromsoe : Ind City ;
-
-fun Countries_N_provinces_VestAgder : Ind Province ;
-
-fun Countries_N_provinces_VestAgder_cities_Kristiansand : Ind City ;
-
-fun Countries_N_provinces_Vestfold : Ind Province ;
-
-fun Countries_N_provinces_Vestfold_cities_Toensberg : Ind City ;
-
-fun Countries_OM_cities_Muscat : Ind City ;
-
-fun Countries_PAL_cities_Koror : Ind City ;
-
-fun Countries_PA_provinces_BocasdelToro : Ind Province ;
-
-fun Countries_PA_provinces_BocasdelToro_cities_BocasdelToro : Ind City ;
-
-fun Countries_PA_provinces_Chiriqui : Ind Province ;
-
-fun Countries_PA_provinces_Chiriqui_cities_David : Ind City ;
-
-fun Countries_PA_provinces_Cocle : Ind Province ;
-
-fun Countries_PA_provinces_Cocle_cities_Penonome : Ind City ;
-
-fun Countries_PA_provinces_Colon : Ind Province ;
-
-fun Countries_PA_provinces_Colon_cities_Colon : Ind City ;
-
-fun Countries_PA_provinces_ComarcadeSanBlas : Ind Province ;
-
-fun Countries_PA_provinces_ComarcadeSanBlas_cities_ElPorvenir : Ind City ;
-
-fun Countries_PA_provinces_Darien : Ind Province ;
-
-fun Countries_PA_provinces_Darien_cities_LaPalma : Ind City ;
-
-fun Countries_PA_provinces_Herrera : Ind Province ;
-
-fun Countries_PA_provinces_Herrera_cities_Chitre : Ind City ;
-
-fun Countries_PA_provinces_LosSantos : Ind Province ;
-
-fun Countries_PA_provinces_LosSantos_cities_LasTablas : Ind City ;
-
-fun Countries_PA_provinces_Panama : Ind Province ;
-
-fun Countries_PA_provinces_Panama_cities_PanamaCity : Ind City ;
-
-fun Countries_PA_provinces_Panama_cities_SanMiguelito : Ind City ;
-
-fun Countries_PA_provinces_Veraguas : Ind Province ;
-
-fun Countries_PA_provinces_Veraguas_cities_Santiago : Ind City ;
-
-fun Countries_PE_provinces_Amazonas : Ind Province ;
-
-fun Countries_PE_provinces_Amazonas_cities_Chachapoyas : Ind City ;
-
-fun Countries_PE_provinces_Ancash : Ind Province ;
-
-fun Countries_PE_provinces_Ancash_cities_Chimbote : Ind City ;
-
-fun Countries_PE_provinces_Ancash_cities_Huaraz : Ind City ;
-
-fun Countries_PE_provinces_Apurimac : Ind Province ;
-
-fun Countries_PE_provinces_Apurimac_cities_Abancay : Ind City ;
-
-fun Countries_PE_provinces_Arequipa : Ind Province ;
-
-fun Countries_PE_provinces_Arequipa_cities_Arequipa : Ind City ;
-
-fun Countries_PE_provinces_Ayacucho : Ind Province ;
-
-fun Countries_PE_provinces_Ayacucho_cities_Ayacucho : Ind City ;
-
-fun Countries_PE_provinces_Cajamarca : Ind Province ;
-
-fun Countries_PE_provinces_Cajamarca_cities_Cajamarca : Ind City ;
-
-fun Countries_PE_provinces_Callao : Ind Province ;
-
-fun Countries_PE_provinces_Callao_cities_Callao : Ind City ;
-
-fun Countries_PE_provinces_Cuzco : Ind Province ;
-
-fun Countries_PE_provinces_Cuzco_cities_Cuzco : Ind City ;
-
-fun Countries_PE_provinces_Huancavelica : Ind Province ;
-
-fun Countries_PE_provinces_Huancavelica_cities_Huancavelica : Ind City ;
-
-fun Countries_PE_provinces_Huanuco : Ind Province ;
-
-fun Countries_PE_provinces_Huanuco_cities_Huanuco : Ind City ;
-
-fun Countries_PE_provinces_Ica : Ind Province ;
-
-fun Countries_PE_provinces_Ica_cities_ChinchaAlta : Ind City ;
-
-fun Countries_PE_provinces_Ica_cities_Ica : Ind City ;
-
-fun Countries_PE_provinces_Junin : Ind Province ;
-
-fun Countries_PE_provinces_Junin_cities_Huancayo : Ind City ;
-
-fun Countries_PE_provinces_LaLibertad : Ind Province ;
-
-fun Countries_PE_provinces_LaLibertad_cities_Trujillo : Ind City ;
-
-fun Countries_PE_provinces_Lambayeque : Ind Province ;
-
-fun Countries_PE_provinces_Lambayeque_cities_Chiclayo : Ind City ;
-
-fun Countries_PE_provinces_Lima : Ind Province ;
-
-fun Countries_PE_provinces_Lima_cities_Lima : Ind City ;
-
-fun Countries_PE_provinces_Loreto : Ind Province ;
-
-fun Countries_PE_provinces_Loreto_cities_Iquitos : Ind City ;
-
-fun Countries_PE_provinces_MadredeDios : Ind Province ;
-
-fun Countries_PE_provinces_MadredeDios_cities_PuertoMaldonado : Ind City ;
-
-fun Countries_PE_provinces_Moquegua : Ind Province ;
-
-fun Countries_PE_provinces_Moquegua_cities_Moquegua : Ind City ;
-
-fun Countries_PE_provinces_Pasco : Ind Province ;
-
-fun Countries_PE_provinces_Pasco_cities_CerrodePasco : Ind City ;
-
-fun Countries_PE_provinces_Piura : Ind Province ;
-
-fun Countries_PE_provinces_Piura_cities_Piura : Ind City ;
-
-fun Countries_PE_provinces_Piura_cities_Sullana : Ind City ;
-
-fun Countries_PE_provinces_Piura_cities_Talara : Ind City ;
-
-fun Countries_PE_provinces_Puno : Ind Province ;
-
-fun Countries_PE_provinces_Puno_cities_Juliaca : Ind City ;
-
-fun Countries_PE_provinces_Puno_cities_Puno : Ind City ;
-
-fun Countries_PE_provinces_SanMartin : Ind Province ;
-
-fun Countries_PE_provinces_SanMartin_cities_Moyobamba : Ind City ;
-
-fun Countries_PE_provinces_Tacna : Ind Province ;
-
-fun Countries_PE_provinces_Tacna_cities_Tacna : Ind City ;
-
-fun Countries_PE_provinces_Tumbes : Ind Province ;
-
-fun Countries_PE_provinces_Tumbes_cities_Tumbes : Ind City ;
-
-fun Countries_PE_provinces_Ucayali : Ind Province ;
-
-fun Countries_PE_provinces_Ucayali_cities_Pucallpa : Ind City ;
-
-fun Countries_PK_cities_Bahawalpur : Ind City ;
-
-fun Countries_PK_cities_Chiniot : Ind City ;
-
-fun Countries_PK_cities_DeraGhaziKhan : Ind City ;
-
-fun Countries_PK_cities_Gujranwala : Ind City ;
-
-fun Countries_PK_cities_Gujrat : Ind City ;
-
-fun Countries_PK_cities_Hyderabad : Ind City ;
-
-fun Countries_PK_cities_Islamabad : Ind City ;
-
-fun Countries_PK_cities_Jhang : Ind City ;
-
-fun Countries_PK_cities_Jhelum : Ind City ;
-
-fun Countries_PK_cities_Karachi : Ind City ;
-
-fun Countries_PK_cities_Kasur : Ind City ;
-
-fun Countries_PK_cities_Lahore : Ind City ;
-
-fun Countries_PK_cities_LahoreCantonment : Ind City ;
-
-fun Countries_PK_cities_Larkana : Ind City ;
-
-fun Countries_PK_cities_Lyallpur : Ind City ;
-
-fun Countries_PK_cities_Mardan : Ind City ;
-
-fun Countries_PK_cities_MirpurKhas : Ind City ;
-
-fun Countries_PK_cities_Multan : Ind City ;
-
-fun Countries_PK_cities_Nawabshah : Ind City ;
-
-fun Countries_PK_cities_Okara : Ind City ;
-
-fun Countries_PK_cities_Peshawar : Ind City ;
-
-fun Countries_PK_cities_Quetta : Ind City ;
-
-fun Countries_PK_cities_RahimYarKhan : Ind City ;
-
-fun Countries_PK_cities_Rawalpindi : Ind City ;
-
-fun Countries_PK_cities_Sahiwal : Ind City ;
-
-fun Countries_PK_cities_Sargodha : Ind City ;
-
-fun Countries_PK_cities_Sheikhupura : Ind City ;
-
-fun Countries_PK_cities_Sialkot : Ind City ;
-
-fun Countries_PK_cities_Sukkur : Ind City ;
-
-fun Countries_PK_cities_WahCantonment : Ind City ;
-
-fun Countries_PL_cities_DabrowaGornicza : Ind City ;
-
-fun Countries_PL_cities_JastrzebieZdroj : Ind City ;
-
-fun Countries_PL_provinces_Bialostockie : Ind Province ;
-
-fun Countries_PL_provinces_Bialostockie_cities_Bialystok : Ind City ;
-
-fun Countries_PL_provinces_Bialskopodlaskie : Ind Province ;
-
-fun Countries_PL_provinces_Bialskopodlaskie_cities_BialaPodlaska : Ind City ;
-
-fun Countries_PL_provinces_Bielskie : Ind Province ;
-
-fun Countries_PL_provinces_Bielskie_cities_BielskoBiala : Ind City ;
-
-fun Countries_PL_provinces_Bydgoskie : Ind Province ;
-
-fun Countries_PL_provinces_Bydgoskie_cities_Bydgoszcz : Ind City ;
-
-fun Countries_PL_provinces_Chelmskie : Ind Province ;
-
-fun Countries_PL_provinces_Chelmskie_cities_Chelm : Ind City ;
-
-fun Countries_PL_provinces_Ciechanowskie : Ind Province ;
-
-fun Countries_PL_provinces_Ciechanowskie_cities_Ciechanow : Ind City ;
-
-fun Countries_PL_provinces_Czestochowskie : Ind Province ;
-
-fun Countries_PL_provinces_Czestochowskie_cities_Czestochowa : Ind City ;
-
-fun Countries_PL_provinces_Elblaskie : Ind Province ;
-
-fun Countries_PL_provinces_Elblaskie_cities_Elblag : Ind City ;
-
-fun Countries_PL_provinces_Gdanskie : Ind Province ;
-
-fun Countries_PL_provinces_Gdanskie_cities_Gdansk : Ind City ;
-
-fun Countries_PL_provinces_Gdanskie_cities_Gdynia : Ind City ;
-
-fun Countries_PL_provinces_Gorzowskie : Ind Province ;
-
-fun Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolski : Ind City ;
-
-fun Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolskie : Ind City ;
-
-fun Countries_PL_provinces_Jeleniogorskie : Ind Province ;
-
-fun Countries_PL_provinces_Jeleniogorskie_cities_JeleniaGora : Ind City ;
-
-fun Countries_PL_provinces_Kaliskie : Ind Province ;
-
-fun Countries_PL_provinces_Kaliskie_cities_Kalisz : Ind City ;
-
-fun Countries_PL_provinces_Katowickie : Ind Province ;
-
-fun Countries_PL_provinces_Katowickie_cities_Bytom : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Chorzow : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Gliwice : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Katowice : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_RudaSlaska : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Rybnik : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Sosnowiec : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Tychy : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_WodzilawSlaski : Ind City ;
-
-fun Countries_PL_provinces_Katowickie_cities_Zabrze : Ind City ;
-
-fun Countries_PL_provinces_Kieleckie : Ind Province ;
-
-fun Countries_PL_provinces_Kieleckie_cities_Kielce : Ind City ;
-
-fun Countries_PL_provinces_Koninskie : Ind Province ;
-
-fun Countries_PL_provinces_Koninskie_cities_Konin : Ind City ;
-
-fun Countries_PL_provinces_Koszalinskie : Ind Province ;
-
-fun Countries_PL_provinces_Koszalinskie_cities_Koszalin : Ind City ;
-
-fun Countries_PL_provinces_Krakowskie : Ind Province ;
-
-fun Countries_PL_provinces_Krakowskie_cities_Krakow : Ind City ;
-
-fun Countries_PL_provinces_Krosnienskie : Ind Province ;
-
-fun Countries_PL_provinces_Krosnienskie_cities_Krosno : Ind City ;
-
-fun Countries_PL_provinces_Legnickie : Ind Province ;
-
-fun Countries_PL_provinces_Legnickie_cities_Legnica : Ind City ;
-
-fun Countries_PL_provinces_Leszczynskie : Ind Province ;
-
-fun Countries_PL_provinces_Leszczynskie_cities_Leszno : Ind City ;
-
-fun Countries_PL_provinces_Lodzkie : Ind Province ;
-
-fun Countries_PL_provinces_Lodzkie_cities_Lodz : Ind City ;
-
-fun Countries_PL_provinces_Lomzynskie : Ind Province ;
-
-fun Countries_PL_provinces_Lomzynskie_cities_Lomza : Ind City ;
-
-fun Countries_PL_provinces_Lubelskie : Ind Province ;
-
-fun Countries_PL_provinces_Lubelskie_cities_Lublin : Ind City ;
-
-fun Countries_PL_provinces_Nowosadeckie : Ind Province ;
-
-fun Countries_PL_provinces_Nowosadeckie_cities_NowySacz : Ind City ;
-
-fun Countries_PL_provinces_Olsztynskie : Ind Province ;
-
-fun Countries_PL_provinces_Olsztynskie_cities_Olsztyn : Ind City ;
-
-fun Countries_PL_provinces_Opolskie : Ind Province ;
-
-fun Countries_PL_provinces_Opolskie_cities_Opole : Ind City ;
-
-fun Countries_PL_provinces_Ostroleckie : Ind Province ;
-
-fun Countries_PL_provinces_Ostroleckie_cities_Ostroleka : Ind City ;
-
-fun Countries_PL_provinces_Pilskie : Ind Province ;
-
-fun Countries_PL_provinces_Pilskie_cities_Pila : Ind City ;
-
-fun Countries_PL_provinces_Piotrkowskie : Ind Province ;
-
-fun Countries_PL_provinces_Piotrkowskie_cities_PiottrkowTrybunalski : Ind City ;
-
-fun Countries_PL_provinces_Plockie : Ind Province ;
-
-fun Countries_PL_provinces_Plockie_cities_Plock : Ind City ;
-
-fun Countries_PL_provinces_Poznanskie : Ind Province ;
-
-fun Countries_PL_provinces_Poznanskie_cities_Poznan : Ind City ;
-
-fun Countries_PL_provinces_Przemyskie : Ind Province ;
-
-fun Countries_PL_provinces_Przemyskie_cities_Przemysl : Ind City ;
-
-fun Countries_PL_provinces_Radomskie : Ind Province ;
-
-fun Countries_PL_provinces_Radomskie_cities_Radom : Ind City ;
-
-fun Countries_PL_provinces_Rzeszowskie : Ind Province ;
-
-fun Countries_PL_provinces_Rzeszowskie_cities_Rzeszow : Ind City ;
-
-fun Countries_PL_provinces_Siedleckie : Ind Province ;
-
-fun Countries_PL_provinces_Siedleckie_cities_Siedlce : Ind City ;
-
-fun Countries_PL_provinces_Sieradzkie : Ind Province ;
-
-fun Countries_PL_provinces_Sieradzkie_cities_Sieradz : Ind City ;
-
-fun Countries_PL_provinces_Skierniewickie : Ind Province ;
-
-fun Countries_PL_provinces_Skierniewickie_cities_Skierniewice : Ind City ;
-
-fun Countries_PL_provinces_Slupskie : Ind Province ;
-
-fun Countries_PL_provinces_Slupskie_cities_Slupsk : Ind City ;
-
-fun Countries_PL_provinces_Suwalskie : Ind Province ;
-
-fun Countries_PL_provinces_Suwalskie_cities_Suwalki : Ind City ;
-
-fun Countries_PL_provinces_Szczecinskie : Ind Province ;
-
-fun Countries_PL_provinces_Szczecinskie_cities_Szczecin : Ind City ;
-
-fun Countries_PL_provinces_Tarnobrzeskie : Ind Province ;
-
-fun Countries_PL_provinces_Tarnobrzeskie_cities_Tarnobrzeg : Ind City ;
-
-fun Countries_PL_provinces_Tarnowskie : Ind Province ;
-
-fun Countries_PL_provinces_Tarnowskie_cities_Tarnow : Ind City ;
-
-fun Countries_PL_provinces_Torunskie : Ind Province ;
-
-fun Countries_PL_provinces_Torunskie_cities_Grudziadz : Ind City ;
-
-fun Countries_PL_provinces_Torunskie_cities_Torun : Ind City ;
-
-fun Countries_PL_provinces_Walbrzyskie : Ind Province ;
-
-fun Countries_PL_provinces_Walbrzyskie_cities_Walbrzych : Ind City ;
-
-fun Countries_PL_provinces_Warszwaskie : Ind Province ;
-
-fun Countries_PL_provinces_Warszwaskie_cities_Warsaw : Ind City ;
-
-fun Countries_PL_provinces_Wloclawskie : Ind Province ;
-
-fun Countries_PL_provinces_Wloclawskie_cities_Wloclawek : Ind City ;
-
-fun Countries_PL_provinces_Wroclawskie : Ind Province ;
-
-fun Countries_PL_provinces_Wroclawskie_cities_Wroclaw : Ind City ;
-
-fun Countries_PL_provinces_Zamojskie : Ind Province ;
-
-fun Countries_PL_provinces_Zamojskie_cities_Zamosc : Ind City ;
-
-fun Countries_PL_provinces_Zielonogorskie : Ind Province ;
-
-fun Countries_PL_provinces_Zielonogorskie_cities_ZielonaGora : Ind City ;
-
-fun Countries_PNG_cities_PortMoresby : Ind City ;
-
-fun Countries_PY_cities_Asuncion : Ind City ;
-
-fun Countries_P_provinces_Aveiro : Ind Province ;
-
-fun Countries_P_provinces_Azores_The : Ind Province ;
-
-fun Countries_P_provinces_Beja : Ind Province ;
-
-fun Countries_P_provinces_Braga : Ind Province ;
-
-fun Countries_P_provinces_Braga_cities_Braga : Ind City ;
-
-fun Countries_P_provinces_Braganca : Ind Province ;
-
-fun Countries_P_provinces_CasteloBranco : Ind Province ;
-
-fun Countries_P_provinces_Coimbra : Ind Province ;
-
-fun Countries_P_provinces_Coimbra_cities_Coimbra : Ind City ;
-
-fun Countries_P_provinces_Evora : Ind Province ;
-
-fun Countries_P_provinces_Faro : Ind Province ;
-
-fun Countries_P_provinces_Guarda : Ind Province ;
-
-fun Countries_P_provinces_Leiria : Ind Province ;
-
-fun Countries_P_provinces_Lisbon : Ind Province ;
-
-fun Countries_P_provinces_Lisbon_cities_Almada : Ind City ;
-
-fun Countries_P_provinces_Lisbon_cities_Amadora : Ind City ;
-
-fun Countries_P_provinces_Lisbon_cities_Barreiro : Ind City ;
-
-fun Countries_P_provinces_Lisbon_cities_Lisbon : Ind City ;
-
-fun Countries_P_provinces_Madeira : Ind Province ;
-
-fun Countries_P_provinces_Madeira_cities_Funchal : Ind City ;
-
-fun Countries_P_provinces_Portalegre : Ind Province ;
-
-fun Countries_P_provinces_Porto : Ind Province ;
-
-fun Countries_P_provinces_Porto_cities_Porto : Ind City ;
-
-fun Countries_P_provinces_Porto_cities_VilaNovadeGaia : Ind City ;
-
-fun Countries_P_provinces_Santarem : Ind Province ;
-
-fun Countries_P_provinces_Setubal : Ind Province ;
-
-fun Countries_P_provinces_Setubal_cities_Setubal : Ind City ;
-
-fun Countries_P_provinces_VianadoCastelo : Ind Province ;
-
-fun Countries_P_provinces_VilaReal : Ind Province ;
-
-fun Countries_P_provinces_Viseu : Ind Province ;
-
-fun Countries_Q_cities_Doha : Ind City ;
-
-fun Countries_Q_cities_Rayyan : Ind City ;
-
-fun Countries_Q_cities_Wakrah : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires : Ind Province ;
-
-fun Countries_RA_provinces_BuenosAires_cities_Avellaneda : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_BahiaBlanca : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_GeneralSanMartin : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_LaMatanza : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_LaPlata : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_Lanus : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_LomasdeZamoras : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_MardelPlata : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_Moron : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_Quilmes : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_SanIsidro : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_SanNicolasdelosArroyos : Ind City ;
-
-fun Countries_RA_provinces_BuenosAires_cities_VicenteLopez : Ind City ;
-
-fun Countries_RA_provinces_Catamarca : Ind Province ;
-
-fun Countries_RA_provinces_Catamarca_cities_SanFernando : Ind City ;
-
-fun Countries_RA_provinces_Catamarca_cities_SanFernandodelValledeCatamarca : Ind City ;
-
-fun Countries_RA_provinces_Chaco : Ind Province ;
-
-fun Countries_RA_provinces_Chaco_cities_Resistencia : Ind City ;
-
-fun Countries_RA_provinces_Chubut : Ind Province ;
-
-fun Countries_RA_provinces_Chubut_cities_ComodoroRivadavia : Ind City ;
-
-fun Countries_RA_provinces_Chubut_cities_Rawson : Ind City ;
-
-fun Countries_RA_provinces_Cordoba : Ind Province ;
-
-fun Countries_RA_provinces_Cordoba_cities_Cordoba : Ind City ;
-
-fun Countries_RA_provinces_Cordoba_cities_RioCuarto : Ind City ;
-
-fun Countries_RA_provinces_Corrientes : Ind Province ;
-
-fun Countries_RA_provinces_Corrientes_cities_Corrientes : Ind City ;
-
-fun Countries_RA_provinces_DistritoFederal : Ind Province ;
-
-fun Countries_RA_provinces_DistritoFederal_cities_BuenosAires : Ind City ;
-
-fun Countries_RA_provinces_EntreRios : Ind Province ;
-
-fun Countries_RA_provinces_EntreRios_cities_Concordia : Ind City ;
-
-fun Countries_RA_provinces_EntreRios_cities_Parana : Ind City ;
-
-fun Countries_RA_provinces_Formosa : Ind Province ;
-
-fun Countries_RA_provinces_Formosa_cities_Formosa : Ind City ;
-
-fun Countries_RA_provinces_Jujuy : Ind Province ;
-
-fun Countries_RA_provinces_Jujuy_cities_SanSalvadordeJujuy : Ind City ;
-
-fun Countries_RA_provinces_LaPampa : Ind Province ;
-
-fun Countries_RA_provinces_LaPampa_cities_SantaRosa : Ind City ;
-
-fun Countries_RA_provinces_LaRioja : Ind Province ;
-
-fun Countries_RA_provinces_LaRioja_cities_LaRioja : Ind City ;
-
-fun Countries_RA_provinces_Mendoza : Ind Province ;
-
-fun Countries_RA_provinces_Mendoza_cities_Mendoza : Ind City ;
-
-fun Countries_RA_provinces_Misiones : Ind Province ;
-
-fun Countries_RA_provinces_Misiones_cities_Posadas : Ind City ;
-
-fun Countries_RA_provinces_Neuquen : Ind Province ;
-
-fun Countries_RA_provinces_Neuquen_cities_Neuquen : Ind City ;
-
-fun Countries_RA_provinces_RioNegro : Ind Province ;
-
-fun Countries_RA_provinces_RioNegro_cities_Viedma : Ind City ;
-
-fun Countries_RA_provinces_Salta : Ind Province ;
-
-fun Countries_RA_provinces_Salta_cities_Salta : Ind City ;
-
-fun Countries_RA_provinces_SanJuan : Ind Province ;
-
-fun Countries_RA_provinces_SanJuan_cities_SanJuan : Ind City ;
-
-fun Countries_RA_provinces_SanLuis : Ind Province ;
-
-fun Countries_RA_provinces_SanLuis_cities_SanLuis : Ind City ;
-
-fun Countries_RA_provinces_SantaCruz : Ind Province ;
-
-fun Countries_RA_provinces_SantaCruz_cities_RioGallegos : Ind City ;
-
-fun Countries_RA_provinces_SantaFe : Ind Province ;
-
-fun Countries_RA_provinces_SantaFe_cities_Rosario : Ind City ;
-
-fun Countries_RA_provinces_SantaFe_cities_SantaFe : Ind City ;
-
-fun Countries_RA_provinces_SantiagodeEstero : Ind Province ;
-
-fun Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEstero : Ind City ;
-
-fun Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEsteroLaBanda : Ind City ;
-
-fun Countries_RA_provinces_TierradelFuego : Ind Province ;
-
-fun Countries_RA_provinces_TierradelFuego_cities_Ushuaia : Ind City ;
-
-fun Countries_RA_provinces_Tucuman : Ind Province ;
-
-fun Countries_RA_provinces_Tucuman_cities_SanMigueldeTucuman : Ind City ;
-
-fun Countries_RB_cities_Gaborone : Ind City ;
-
-fun Countries_RCA_cities_Bangui : Ind City ;
-
-fun Countries_RCB_cities_Brazzaville : Ind City ;
-
-fun Countries_RCH_cities_Santiago : Ind City ;
-
-fun Countries_RCH_cities_Valparaiso : Ind City ;
-
-fun Countries_RC_cities_Chungho : Ind City ;
-
-fun Countries_RC_cities_Chungli : Ind City ;
-
-fun Countries_RC_cities_Hsinchuang : Ind City ;
-
-fun Countries_RC_cities_Hsintien : Ind City ;
-
-fun Countries_RC_cities_Sanchuung : Ind City ;
-
-fun Countries_RC_cities_Yungho : Ind City ;
-
-fun Countries_RC_provinces_Changhua : Ind Province ;
-
-fun Countries_RC_provinces_Changhua_cities_Changhua : Ind City ;
-
-fun Countries_RC_provinces_Chiai : Ind Province ;
-
-fun Countries_RC_provinces_Chiai_munic : Ind Province ;
-
-fun Countries_RC_provinces_Chiai_munic_cities_Chiai : Ind City ;
-
-fun Countries_RC_provinces_Chilung_munic : Ind Province ;
-
-fun Countries_RC_provinces_Chilung_munic_cities_Chilung : Ind City ;
-
-fun Countries_RC_provinces_Hsinchu : Ind Province ;
-
-fun Countries_RC_provinces_Hsinchu_munic : Ind Province ;
-
-fun Countries_RC_provinces_Hsinchu_munic_cities_Hsinchu : Ind City ;
-
-fun Countries_RC_provinces_Hualien : Ind Province ;
-
-fun Countries_RC_provinces_Hualien_cities_Hualien : Ind City ;
-
-fun Countries_RC_provinces_Ilan : Ind Province ;
-
-fun Countries_RC_provinces_Ilan_cities_Ilan : Ind City ;
-
-fun Countries_RC_provinces_Kaohsiung : Ind Province ;
-
-fun Countries_RC_provinces_Kaohsiung_cities_Fengshan : Ind City ;
-
-fun Countries_RC_provinces_Kaohsiung_munic : Ind Province ;
-
-fun Countries_RC_provinces_Kaohsiung_munic_cities_Kaohsiung : Ind City ;
-
-fun Countries_RC_provinces_Miaoli : Ind Province ;
-
-fun Countries_RC_provinces_Miaoli_cities_Miaoli : Ind City ;
-
-fun Countries_RC_provinces_Nantou : Ind Province ;
-
-fun Countries_RC_provinces_Nantou_cities_Nantou : Ind City ;
-
-fun Countries_RC_provinces_Penghu : Ind Province ;
-
-fun Countries_RC_provinces_Penghu_cities_Makung : Ind City ;
-
-fun Countries_RC_provinces_Pingtung : Ind Province ;
-
-fun Countries_RC_provinces_Pingtung_cities_Pingtung : Ind City ;
-
-fun Countries_RC_provinces_Taichung : Ind Province ;
-
-fun Countries_RC_provinces_Taichung_cities_Fengyuan : Ind City ;
-
-fun Countries_RC_provinces_Taichung_munic : Ind Province ;
-
-fun Countries_RC_provinces_Taichung_munic_cities_Taichung : Ind City ;
-
-fun Countries_RC_provinces_Tainan : Ind Province ;
-
-fun Countries_RC_provinces_Tainan_cities_Hsinying : Ind City ;
-
-fun Countries_RC_provinces_Tainan_munic : Ind Province ;
-
-fun Countries_RC_provinces_Tainan_munic_cities_Tainan : Ind City ;
-
-fun Countries_RC_provinces_Taipei : Ind Province ;
-
-fun Countries_RC_provinces_Taipei_cities_Panchiao : Ind City ;
-
-fun Countries_RC_provinces_Taipei_munic : Ind Province ;
-
-fun Countries_RC_provinces_Taipei_munic_cities_Taipei : Ind City ;
-
-fun Countries_RC_provinces_Taitung : Ind Province ;
-
-fun Countries_RC_provinces_Taitung_cities_Taitung : Ind City ;
-
-fun Countries_RC_provinces_Taoyuan : Ind Province ;
-
-fun Countries_RC_provinces_Taoyuan_cities_Taoyuan : Ind City ;
-
-fun Countries_RC_provinces_Yunlin : Ind Province ;
-
-fun Countries_RC_provinces_Yunlin_cities_Touliu : Ind City ;
-
-fun Countries_RG_cities_Conakry : Ind City ;
-
-fun Countries_RH_cities_Port_au_Prince : Ind City ;
-
-fun Countries_RIM_cities_Nouakchott : Ind City ;
-
-fun Countries_RI_cities_Ambon : Ind City ;
-
-fun Countries_RI_cities_Balikpapan : Ind City ;
-
-fun Countries_RI_cities_BandaAceh : Ind City ;
-
-fun Countries_RI_cities_BandarLampung : Ind City ;
-
-fun Countries_RI_cities_Bandung : Ind City ;
-
-fun Countries_RI_cities_Banjarmasin : Ind City ;
-
-fun Countries_RI_cities_Batam : Ind City ;
-
-fun Countries_RI_cities_Bengkulu : Ind City ;
-
-fun Countries_RI_cities_Binjai : Ind City ;
-
-fun Countries_RI_cities_Blitar : Ind City ;
-
-fun Countries_RI_cities_Bogor : Ind City ;
-
-fun Countries_RI_cities_Cirebon : Ind City ;
-
-fun Countries_RI_cities_Gorontalo : Ind City ;
-
-fun Countries_RI_cities_Jakarta : Ind City ;
-
-fun Countries_RI_cities_Jambi : Ind City ;
-
-fun Countries_RI_cities_Kediri : Ind City ;
-
-fun Countries_RI_cities_Madiun : Ind City ;
-
-fun Countries_RI_cities_Magelang : Ind City ;
-
-fun Countries_RI_cities_Malang : Ind City ;
-
-fun Countries_RI_cities_Manado : Ind City ;
-
-fun Countries_RI_cities_Medan : Ind City ;
-
-fun Countries_RI_cities_Padang : Ind City ;
-
-fun Countries_RI_cities_Palangkaraya : Ind City ;
-
-fun Countries_RI_cities_Palembang : Ind City ;
-
-fun Countries_RI_cities_PangkalPinang : Ind City ;
-
-fun Countries_RI_cities_ParePare : Ind City ;
-
-fun Countries_RI_cities_Pasuruan : Ind City ;
-
-fun Countries_RI_cities_Pekalongan : Ind City ;
-
-fun Countries_RI_cities_PekanBaru : Ind City ;
-
-fun Countries_RI_cities_PematangSiantar : Ind City ;
-
-fun Countries_RI_cities_Pontianak : Ind City ;
-
-fun Countries_RI_cities_Probolinggo : Ind City ;
-
-fun Countries_RI_cities_Samarinda : Ind City ;
-
-fun Countries_RI_cities_Semarang : Ind City ;
-
-fun Countries_RI_cities_Sukabumi : Ind City ;
-
-fun Countries_RI_cities_Surabaya : Ind City ;
-
-fun Countries_RI_cities_Surakarta : Ind City ;
-
-fun Countries_RI_cities_TanjungBalai : Ind City ;
-
-fun Countries_RI_cities_TebingTinggi : Ind City ;
-
-fun Countries_RI_cities_Tegal : Ind City ;
-
-fun Countries_RI_cities_UjungPandang : Ind City ;
-
-fun Countries_RI_cities_Yogyakarta : Ind City ;
-
-fun Countries_RL_cities_Beirut : Ind City ;
-
-fun Countries_RMM_cities_Bamako : Ind City ;
-
-fun Countries_RM_provinces_Antananarivo : Ind Province ;
-
-fun Countries_RM_provinces_Antananarivo_cities_Antananarivo : Ind City ;
-
-fun Countries_RM_provinces_Antananarivo_cities_Antsirabe : Ind City ;
-
-fun Countries_RM_provinces_Antsiranana : Ind Province ;
-
-fun Countries_RM_provinces_Antsiranana_cities_Antsiranana : Ind City ;
-
-fun Countries_RM_provinces_Fianarantsoa : Ind Province ;
-
-fun Countries_RM_provinces_Fianarantsoa_cities_Fianarantsoa : Ind City ;
-
-fun Countries_RM_provinces_Mahajanga : Ind Province ;
-
-fun Countries_RM_provinces_Mahajanga_cities_Majunga : Ind City ;
-
-fun Countries_RM_provinces_Toamasina : Ind Province ;
-
-fun Countries_RM_provinces_Toamasina_cities_Tamatave : Ind City ;
-
-fun Countries_RM_provinces_Toliary : Ind Province ;
-
-fun Countries_RM_provinces_Toliary_cities_Toliary : Ind City ;
-
-fun Countries_RN_cities_Niamey : Ind City ;
-
-fun Countries_ROK_cities_Cheju : Ind City ;
-
-fun Countries_ROK_cities_Chinju : Ind City ;
-
-fun Countries_ROK_cities_Chongju : Ind City ;
-
-fun Countries_ROK_cities_Chonju : Ind City ;
-
-fun Countries_ROK_cities_Chunchon : Ind City ;
-
-fun Countries_ROK_cities_Inchon : Ind City ;
-
-fun Countries_ROK_cities_Kunsan : Ind City ;
-
-fun Countries_ROK_cities_Kwangju : Ind City ;
-
-fun Countries_ROK_cities_Masan : Ind City ;
-
-fun Countries_ROK_cities_Mokpo : Ind City ;
-
-fun Countries_ROK_cities_Pusan : Ind City ;
-
-fun Countries_ROK_cities_Seoul : Ind City ;
-
-fun Countries_ROK_cities_Songnam : Ind City ;
-
-fun Countries_ROK_cities_Suwon : Ind City ;
-
-fun Countries_ROK_cities_Taegu : Ind City ;
-
-fun Countries_ROK_cities_Taejon : Ind City ;
-
-fun Countries_ROK_cities_Ulsan : Ind City ;
-
-fun Countries_ROK_cities_Yosu : Ind City ;
-
-fun Countries_ROU_cities_Montevideo : Ind City ;
-
-fun Countries_RO_provinces_Alba : Ind Province ;
-
-fun Countries_RO_provinces_Alba_cities_AlbaIulia : Ind City ;
-
-fun Countries_RO_provinces_Arad : Ind Province ;
-
-fun Countries_RO_provinces_Arad_cities_Arad : Ind City ;
-
-fun Countries_RO_provinces_Arges : Ind Province ;
-
-fun Countries_RO_provinces_Arges_cities_Pitesti : Ind City ;
-
-fun Countries_RO_provinces_Bacau : Ind Province ;
-
-fun Countries_RO_provinces_Bacau_cities_Bacau : Ind City ;
-
-fun Countries_RO_provinces_Bihor : Ind Province ;
-
-fun Countries_RO_provinces_Bihor_cities_Oradea : Ind City ;
-
-fun Countries_RO_provinces_BistritaNasaud : Ind Province ;
-
-fun Countries_RO_provinces_BistritaNasaud_cities_Bistrita : Ind City ;
-
-fun Countries_RO_provinces_Botosani : Ind Province ;
-
-fun Countries_RO_provinces_Botosani_cities_Botosani : Ind City ;
-
-fun Countries_RO_provinces_Braila : Ind Province ;
-
-fun Countries_RO_provinces_Braila_cities_Braila : Ind City ;
-
-fun Countries_RO_provinces_Brasov : Ind Province ;
-
-fun Countries_RO_provinces_Brasov_cities_Brasov : Ind City ;
-
-fun Countries_RO_provinces_Bucuresti : Ind Province ;
-
-fun Countries_RO_provinces_Bucuresti_cities_Bucharest : Ind City ;
-
-fun Countries_RO_provinces_Buzau : Ind Province ;
-
-fun Countries_RO_provinces_Buzau_cities_Buzau : Ind City ;
-
-fun Countries_RO_provinces_Calarasi : Ind Province ;
-
-fun Countries_RO_provinces_Calarasi_cities_Calarasi : Ind City ;
-
-fun Countries_RO_provinces_CarasSeverin : Ind Province ;
-
-fun Countries_RO_provinces_CarasSeverin_cities_Resita : Ind City ;
-
-fun Countries_RO_provinces_Cluj : Ind Province ;
-
-fun Countries_RO_provinces_Cluj_cities_ClujNapoca : Ind City ;
-
-fun Countries_RO_provinces_Constanta : Ind Province ;
-
-fun Countries_RO_provinces_Constanta_cities_Constanta : Ind City ;
-
-fun Countries_RO_provinces_Covasha : Ind Province ;
-
-fun Countries_RO_provinces_Covasha_cities_SfintuGheorghe : Ind City ;
-
-fun Countries_RO_provinces_Dimbovita : Ind Province ;
-
-fun Countries_RO_provinces_Dimbovita_cities_Tirgoviste : Ind City ;
-
-fun Countries_RO_provinces_Dolj : Ind Province ;
-
-fun Countries_RO_provinces_Dolj_cities_Craiova : Ind City ;
-
-fun Countries_RO_provinces_Galati : Ind Province ;
-
-fun Countries_RO_provinces_Galati_cities_Galati : Ind City ;
-
-fun Countries_RO_provinces_Giurgiu : Ind Province ;
-
-fun Countries_RO_provinces_Giurgiu_cities_Giurgiu : Ind City ;
-
-fun Countries_RO_provinces_Gorj : Ind Province ;
-
-fun Countries_RO_provinces_Gorj_cities_TirguJiu : Ind City ;
-
-fun Countries_RO_provinces_Harghita : Ind Province ;
-
-fun Countries_RO_provinces_Harghita_cities_MiercureaCiuc : Ind City ;
-
-fun Countries_RO_provinces_Hunedoara : Ind Province ;
-
-fun Countries_RO_provinces_Hunedoara_cities_Deva : Ind City ;
-
-fun Countries_RO_provinces_Ialomita : Ind Province ;
-
-fun Countries_RO_provinces_Ialomita_cities_Slobozia : Ind City ;
-
-fun Countries_RO_provinces_Iasi : Ind Province ;
-
-fun Countries_RO_provinces_Iasi_cities_Iasi : Ind City ;
-
-fun Countries_RO_provinces_Maramures : Ind Province ;
-
-fun Countries_RO_provinces_Maramures_cities_BaiaMare : Ind City ;
-
-fun Countries_RO_provinces_Mehedinti : Ind Province ;
-
-fun Countries_RO_provinces_Mehedinti_cities_DrobetaTurnuSeverin : Ind City ;
-
-fun Countries_RO_provinces_Mures : Ind Province ;
-
-fun Countries_RO_provinces_Mures_cities_TirguMures : Ind City ;
-
-fun Countries_RO_provinces_Neamt : Ind Province ;
-
-fun Countries_RO_provinces_Neamt_cities_PiatraNeamt : Ind City ;
-
-fun Countries_RO_provinces_Olt : Ind Province ;
-
-fun Countries_RO_provinces_Olt_cities_Slatina : Ind City ;
-
-fun Countries_RO_provinces_Prahova : Ind Province ;
-
-fun Countries_RO_provinces_Prahova_cities_Ploiesti : Ind City ;
-
-fun Countries_RO_provinces_Salaj : Ind Province ;
-
-fun Countries_RO_provinces_Salaj_cities_Zalau : Ind City ;
-
-fun Countries_RO_provinces_SatuMare : Ind Province ;
-
-fun Countries_RO_provinces_SatuMare_cities_SatuMare : Ind City ;
-
-fun Countries_RO_provinces_Sibiu : Ind Province ;
-
-fun Countries_RO_provinces_Sibiu_cities_Sibiu : Ind City ;
-
-fun Countries_RO_provinces_Suceava : Ind Province ;
-
-fun Countries_RO_provinces_Suceava_cities_Suceava : Ind City ;
-
-fun Countries_RO_provinces_Teleorman : Ind Province ;
-
-fun Countries_RO_provinces_Teleorman_cities_Alexandria : Ind City ;
-
-fun Countries_RO_provinces_Timis : Ind Province ;
-
-fun Countries_RO_provinces_Timis_cities_Timisoara : Ind City ;
-
-fun Countries_RO_provinces_Tulcea : Ind Province ;
-
-fun Countries_RO_provinces_Tulcea_cities_Tulcea : Ind City ;
-
-fun Countries_RO_provinces_Vaslui : Ind Province ;
-
-fun Countries_RO_provinces_Vaslui_cities_Vaslui : Ind City ;
-
-fun Countries_RO_provinces_Vilcea : Ind Province ;
-
-fun Countries_RO_provinces_Vilcea_cities_RimnicuVilcea : Ind City ;
-
-fun Countries_RO_provinces_Vrancea : Ind Province ;
-
-fun Countries_RO_provinces_Vrancea_cities_Focsani : Ind City ;
-
-fun Countries_RP_cities_CagayandeOro : Ind City ;
-
-fun Countries_RP_cities_Cebu : Ind City ;
-
-fun Countries_RP_cities_Davao : Ind City ;
-
-fun Countries_RP_cities_Kalookan : Ind City ;
-
-fun Countries_RP_cities_Makati : Ind City ;
-
-fun Countries_RP_cities_Manila : Ind City ;
-
-fun Countries_RP_cities_Pasay : Ind City ;
-
-fun Countries_RP_cities_Pasig : Ind City ;
-
-fun Countries_RP_cities_Quezon : Ind City ;
-
-fun Countries_RP_cities_Zamboanga : Ind City ;
-
-fun Countries_RSA_cities_Alexandra : Ind City ;
-
-fun Countries_RSA_cities_Benoni : Ind City ;
-
-fun Countries_RSA_cities_Boksburg : Ind City ;
-
-fun Countries_RSA_cities_Carletonville : Ind City ;
-
-fun Countries_RSA_cities_Daveyton : Ind City ;
-
-fun Countries_RSA_cities_Diepmeadow : Ind City ;
-
-fun Countries_RSA_cities_Evaton : Ind City ;
-
-fun Countries_RSA_cities_Germiston : Ind City ;
-
-fun Countries_RSA_cities_Ibhayi : Ind City ;
-
-fun Countries_RSA_cities_Katlehong : Ind City ;
-
-fun Countries_RSA_cities_KemptonPark : Ind City ;
-
-fun Countries_RSA_cities_Khayalitsha : Ind City ;
-
-fun Countries_RSA_cities_Lekoa : Ind City ;
-
-fun Countries_RSA_cities_Mamelodi : Ind City ;
-
-fun Countries_RSA_cities_Mangaung : Ind City ;
-
-fun Countries_RSA_cities_Roodepoort : Ind City ;
-
-fun Countries_RSA_cities_Sandton : Ind City ;
-
-fun Countries_RSA_cities_Soshanguve : Ind City ;
-
-fun Countries_RSA_cities_Tembisa : Ind City ;
-
-fun Countries_RSA_provinces_EasternCape : Ind Province ;
-
-fun Countries_RSA_provinces_EasternCape_cities_EastLondon : Ind City ;
-
-fun Countries_RSA_provinces_EasternCape_cities_KingWilliamsTown : Ind City ;
-
-fun Countries_RSA_provinces_EasternCape_cities_PortElizabeth : Ind City ;
-
-fun Countries_RSA_provinces_FreeState : Ind Province ;
-
-fun Countries_RSA_provinces_FreeState_cities_Bloemfontein : Ind City ;
-
-fun Countries_RSA_provinces_Gauteng : Ind Province ;
-
-fun Countries_RSA_provinces_Gauteng_cities_Johannesburg : Ind City ;
-
-fun Countries_RSA_provinces_Gauteng_cities_Pretoria : Ind City ;
-
-fun Countries_RSA_provinces_Gauteng_cities_Soweto : Ind City ;
-
-fun Countries_RSA_provinces_KwazuluNatal : Ind Province ;
-
-fun Countries_RSA_provinces_KwazuluNatal_cities_Durban : Ind City ;
-
-fun Countries_RSA_provinces_KwazuluNatal_cities_Pietermaritzburg : Ind City ;
-
-fun Countries_RSA_provinces_Mpumalanga : Ind Province ;
-
-fun Countries_RSA_provinces_Mpumalanga_cities_Nelspruit : Ind City ;
-
-fun Countries_RSA_provinces_NorthWest : Ind Province ;
-
-fun Countries_RSA_provinces_NorthWest_cities_Mmabatho : Ind City ;
-
-fun Countries_RSA_provinces_NorthernCape : Ind Province ;
-
-fun Countries_RSA_provinces_NorthernCape_cities_Kimberley : Ind City ;
-
-fun Countries_RSA_provinces_NorthernProvince : Ind Province ;
-
-fun Countries_RSA_provinces_NorthernProvince_cities_Pietersburg : Ind City ;
-
-fun Countries_RSA_provinces_WesternCape : Ind Province ;
-
-fun Countries_RSA_provinces_WesternCape_cities_CapeTown : Ind City ;
-
-fun Countries_RSM_cities_SanMarino : Ind City ;
-
-fun Countries_RT_cities_Lome : Ind City ;
-
-fun Countries_RWA_cities_Kigali : Ind City ;
-
-fun Countries_R_cities_Seversk : Ind City ;
-
-fun Countries_R_cities_Zagorsk : Ind City ;
-
-fun Countries_R_provinces_Altayskiykray : Ind Province ;
-
-fun Countries_R_provinces_Altayskiykray_cities_Barnaul : Ind City ;
-
-fun Countries_R_provinces_Altayskiykray_cities_Biysk : Ind City ;
-
-fun Countries_R_provinces_Altayskiykray_cities_Rubtsovsk : Ind City ;
-
-fun Countries_R_provinces_Amurskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Amurskayaoblast_cities_Blagoveshchensk : Ind City ;
-
-fun Countries_R_provinces_Arkhangelskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Arkhangelskayaoblast_cities_Arkhangelsk : Ind City ;
-
-fun Countries_R_provinces_Arkhangelskayaoblast_cities_Severodvinsk : Ind City ;
-
-fun Countries_R_provinces_Astrakhanskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Astrakhanskayaoblast_cities_Astrakhan : Ind City ;
-
-fun Countries_R_provinces_Belgorodskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Belgorodskayaoblast_cities_Belgorod : Ind City ;
-
-fun Countries_R_provinces_Belgorodskayaoblast_cities_StaryOskol : Ind City ;
-
-fun Countries_R_provinces_Bryanskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Bryanskayaoblast_cities_Bryansk : Ind City ;
-
-fun Countries_R_provinces_ChechenRep_ : Ind Province ;
-
-fun Countries_R_provinces_ChechenRep__cities_Grozny : Ind City ;
-
-fun Countries_R_provinces_Chelyabinskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Chelyabinskayaoblast_cities_Chelyabinsk : Ind City ;
-
-fun Countries_R_provinces_Chelyabinskayaoblast_cities_Magnitogorsk : Ind City ;
-
-fun Countries_R_provinces_Chelyabinskayaoblast_cities_Miass : Ind City ;
-
-fun Countries_R_provinces_Chelyabinskayaoblast_cities_Zlatoust : Ind City ;
-
-fun Countries_R_provinces_Chitinskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Chitinskayaoblast_cities_Chita : Ind City ;
-
-fun Countries_R_provinces_Chukotskyao : Ind Province ;
-
-fun Countries_R_provinces_Chukotskyao_cities_Anadyr : Ind City ;
-
-fun Countries_R_provinces_ChuvashRepublic : Ind Province ;
-
-fun Countries_R_provinces_ChuvashRepublic_cities_Cheboksary : Ind City ;
-
-fun Countries_R_provinces_ChuvashRepublic_cities_Novocheboksarsk : Ind City ;
-
-fun Countries_R_provinces_Irkutskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Irkutskayaoblast_cities_Angarsk : Ind City ;
-
-fun Countries_R_provinces_Irkutskayaoblast_cities_Bratsk : Ind City ;
-
-fun Countries_R_provinces_Irkutskayaoblast_cities_Irkutsk : Ind City ;
-
-fun Countries_R_provinces_Irkutskayaoblast_cities_UsolyeSibirskoye : Ind City ;
-
-fun Countries_R_provinces_Irkutskayaoblast_cities_UstIlimsk : Ind City ;
-
-fun Countries_R_provinces_Ivanovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Ivanovskayaoblast_cities_Ivanovo : Ind City ;
-
-fun Countries_R_provinces_Ivanovskayaoblast_cities_Kineshma : Ind City ;
-
-fun Countries_R_provinces_KabardinoBalkarRep_ : Ind Province ;
-
-fun Countries_R_provinces_KabardinoBalkarRep__cities_Nalchik : Ind City ;
-
-fun Countries_R_provinces_Kaliningradskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kaliningradskayaoblast_cities_Kaliningrad : Ind City ;
-
-fun Countries_R_provinces_Kaluzhskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kaluzhskayaoblast_cities_Kaluga : Ind City ;
-
-fun Countries_R_provinces_Kaluzhskayaoblast_cities_Obninsk : Ind City ;
-
-fun Countries_R_provinces_Kamchatskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kamchatskayaoblast_cities_PetropavlovskKamchatsky : Ind City ;
-
-fun Countries_R_provinces_KarachayevoCherkesskRep_ : Ind Province ;
-
-fun Countries_R_provinces_KarachayevoCherkesskRep__cities_Cherkessk : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_AnzheroSudzhensk : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_Kemerovo : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_Kiselyovsk : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_LeninskKuznetskiy : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_Mezhdurechensk : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_Novokuznetsk : Ind City ;
-
-fun Countries_R_provinces_Kemerovskayaoblast_cities_Prokopyevsk : Ind City ;
-
-fun Countries_R_provinces_Khabarovskiykray : Ind Province ;
-
-fun Countries_R_provinces_Khabarovskiykray_cities_Khabarovsk : Ind City ;
-
-fun Countries_R_provinces_Khabarovskiykray_cities_KomsomolsknaAmure : Ind City ;
-
-fun Countries_R_provinces_Kirovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kirovskayaoblast_cities_Kirov : Ind City ;
-
-fun Countries_R_provinces_Kostromskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kostromskayaoblast_cities_Kostroma : Ind City ;
-
-fun Countries_R_provinces_Krasnodarskykray : Ind Province ;
-
-fun Countries_R_provinces_Krasnodarskykray_cities_Armavir : Ind City ;
-
-fun Countries_R_provinces_Krasnodarskykray_cities_Krasnodar : Ind City ;
-
-fun Countries_R_provinces_Krasnodarskykray_cities_Novorossiysk : Ind City ;
-
-fun Countries_R_provinces_Krasnodarskykray_cities_Sochi : Ind City ;
-
-fun Countries_R_provinces_Krasnoyarskiykray : Ind Province ;
-
-fun Countries_R_provinces_Krasnoyarskiykray_cities_Achinsk : Ind City ;
-
-fun Countries_R_provinces_Krasnoyarskiykray_cities_Kansk : Ind City ;
-
-fun Countries_R_provinces_Krasnoyarskiykray_cities_Krasnoyarsk : Ind City ;
-
-fun Countries_R_provinces_Krasnoyarskiykray_cities_Norilsk : Ind City ;
-
-fun Countries_R_provinces_Kurganskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kurganskayaoblast_cities_Kurgan : Ind City ;
-
-fun Countries_R_provinces_Kurskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Kurskayaoblast_cities_Kursk : Ind City ;
-
-fun Countries_R_provinces_Leningradskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Leningradskayaoblast_cities_Kolpino : Ind City ;
-
-fun Countries_R_provinces_Lipetskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Lipetskayaoblast_cities_Lipetsk : Ind City ;
-
-fun Countries_R_provinces_Lipetskayaoblast_cities_Yelets : Ind City ;
-
-fun Countries_R_provinces_Magadanskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Magadanskayaoblast_cities_Magadan : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Balashikha : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Elektrostal : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Khimki : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Kolomna : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Lyubertsy : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Mytishchi : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Noginsk : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Odintsovo : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_OrekhovoZuyevo : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Podolsk : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Serpukhov : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Shchyolkovo : Ind City ;
-
-fun Countries_R_provinces_Moskovskayaoblast_cities_Zelenograd : Ind City ;
-
-fun Countries_R_provinces_Moskva : Ind Province ;
-
-fun Countries_R_provinces_Moskva_cities_Moscow : Ind City ;
-
-fun Countries_R_provinces_Murmanskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Murmanskayaoblast_cities_Murmansk : Ind City ;
-
-fun Countries_R_provinces_Nizhegorodskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Nizhegorodskayaoblast_cities_Arzamas : Ind City ;
-
-fun Countries_R_provinces_Nizhegorodskayaoblast_cities_Dzerzhinsk : Ind City ;
-
-fun Countries_R_provinces_Nizhegorodskayaoblast_cities_NizhniyNovgorod : Ind City ;
-
-fun Countries_R_provinces_Novgorodskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Novgorodskayaoblast_cities_Novgorod : Ind City ;
-
-fun Countries_R_provinces_Novosibirskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Novosibirskayaoblast_cities_Novosibirsk : Ind City ;
-
-fun Countries_R_provinces_Omskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Omskayaoblast_cities_Omsk : Ind City ;
-
-fun Countries_R_provinces_Orenburgskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Orenburgskayaoblast_cities_Novotroitsk : Ind City ;
-
-fun Countries_R_provinces_Orenburgskayaoblast_cities_Orenburg : Ind City ;
-
-fun Countries_R_provinces_Orenburgskayaoblast_cities_Orsk : Ind City ;
-
-fun Countries_R_provinces_Orlovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Orlovskayaoblast_cities_Orel : Ind City ;
-
-fun Countries_R_provinces_Penzenskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Penzenskayaoblast_cities_Kuznetsk : Ind City ;
-
-fun Countries_R_provinces_Penzenskayaoblast_cities_Penza : Ind City ;
-
-fun Countries_R_provinces_Permskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Permskayaoblast_cities_Berezniki : Ind City ;
-
-fun Countries_R_provinces_Permskayaoblast_cities_Perm : Ind City ;
-
-fun Countries_R_provinces_Permskayaoblast_cities_Solikamsk : Ind City ;
-
-fun Countries_R_provinces_Primorskykray : Ind Province ;
-
-fun Countries_R_provinces_Primorskykray_cities_Nakhodka : Ind City ;
-
-fun Countries_R_provinces_Primorskykray_cities_Ussuriysk : Ind City ;
-
-fun Countries_R_provinces_Primorskykray_cities_Vladivostok : Ind City ;
-
-fun Countries_R_provinces_Pskovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Pskovskayaoblast_cities_Pskov : Ind City ;
-
-fun Countries_R_provinces_Pskovskayaoblast_cities_VelikiyeLuki : Ind City ;
-
-fun Countries_R_provinces_Rep_ofAdygeya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofAdygeya_cities_Maykop : Ind City ;
-
-fun Countries_R_provinces_Rep_ofAltay : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofAltay_cities_GornoAltaysk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofBashkortostan : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofBashkortostan_cities_Oktyabrsky : Ind City ;
-
-fun Countries_R_provinces_Rep_ofBashkortostan_cities_Salavat : Ind City ;
-
-fun Countries_R_provinces_Rep_ofBashkortostan_cities_Sterlitamak : Ind City ;
-
-fun Countries_R_provinces_Rep_ofBashkortostan_cities_Ufa : Ind City ;
-
-fun Countries_R_provinces_Rep_ofBuryatiya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofBuryatiya_cities_UlanUde : Ind City ;
-
-fun Countries_R_provinces_Rep_ofDagestan : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofDagestan_cities_Makhachkala : Ind City ;
-
-fun Countries_R_provinces_Rep_ofIngushetiya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofIngushetiya_cities_Nazran : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKalmykiya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofKalmykiya_cities_Elista : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKarelia : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofKarelia_cities_Petrozavodsk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKhakassiya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofKhakassiya_cities_Abakan : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKomi : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofKomi_cities_Syktyvkar : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKomi_cities_Ukhta : Ind City ;
-
-fun Countries_R_provinces_Rep_ofKomi_cities_Vorkuta : Ind City ;
-
-fun Countries_R_provinces_Rep_ofMariyEl : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofMariyEl_cities_YoshkarOla : Ind City ;
-
-fun Countries_R_provinces_Rep_ofMordovia : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofMordovia_cities_Saransk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofNorthOssetiya : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofNorthOssetiya_cities_Vladikavkaz : Ind City ;
-
-fun Countries_R_provinces_Rep_ofSakha : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofSakha_cities_Yakutsk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTatarstan : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofTatarstan_cities_Almetyevsk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTatarstan_cities_Kazan : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTatarstan_cities_NaberezhnyeChelny : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTatarstan_cities_Nizhnekamsk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTatarstan_cities_Zelenodolysk : Ind City ;
-
-fun Countries_R_provinces_Rep_ofTyva : Ind Province ;
-
-fun Countries_R_provinces_Rep_ofTyva_cities_Kyzyl : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_Novocherkassk : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_Novoshakhtinsk : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_RostovnaDonu : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_RostovnoDonu : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_Shakhty : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_Taganrog : Ind City ;
-
-fun Countries_R_provinces_Rostovskayaoblast_cities_Volgodonsk : Ind City ;
-
-fun Countries_R_provinces_Ryazanskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Ryazanskayaoblast_cities_Ryazan : Ind City ;
-
-fun Countries_R_provinces_Sakhalinskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Sakhalinskayaoblast_cities_YuzhnoSakhalinsk : Ind City ;
-
-fun Countries_R_provinces_Samarskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Samarskayaoblast_cities_Novokuybyshevsk : Ind City ;
-
-fun Countries_R_provinces_Samarskayaoblast_cities_Samara : Ind City ;
-
-fun Countries_R_provinces_Samarskayaoblast_cities_Syzran : Ind City ;
-
-fun Countries_R_provinces_Samarskayaoblast_cities_Tolyatti : Ind City ;
-
-fun Countries_R_provinces_SanktPeterburg : Ind Province ;
-
-fun Countries_R_provinces_SanktPeterburg_cities_SanktPeterburg : Ind City ;
-
-fun Countries_R_provinces_Saratovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Saratovskayaoblast_cities_Balakovo : Ind City ;
-
-fun Countries_R_provinces_Saratovskayaoblast_cities_Engels : Ind City ;
-
-fun Countries_R_provinces_Saratovskayaoblast_cities_Saratov : Ind City ;
-
-fun Countries_R_provinces_Smolenskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Smolenskayaoblast_cities_Smolensk : Ind City ;
-
-fun Countries_R_provinces_Stavropolskykray : Ind Province ;
-
-fun Countries_R_provinces_Stavropolskykray_cities_Kislovodsk : Ind City ;
-
-fun Countries_R_provinces_Stavropolskykray_cities_Neftekamsk : Ind City ;
-
-fun Countries_R_provinces_Stavropolskykray_cities_Nevinnomyssk : Ind City ;
-
-fun Countries_R_provinces_Stavropolskykray_cities_Pyatigorsk : Ind City ;
-
-fun Countries_R_provinces_Stavropolskykray_cities_Stavropol : Ind City ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast_cities_KamenskUralskiy : Ind City ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast_cities_NizhniyTagil : Ind City ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast_cities_Pervouralsk : Ind City ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast_cities_Serov : Ind City ;
-
-fun Countries_R_provinces_Sverdlovskayaoblast_cities_Yekaterinburg : Ind City ;
-
-fun Countries_R_provinces_Tambovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Tambovskayaoblast_cities_Michurinsk : Ind City ;
-
-fun Countries_R_provinces_Tambovskayaoblast_cities_Tambov : Ind City ;
-
-fun Countries_R_provinces_Tomskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Tomskayaoblast_cities_Tomsk : Ind City ;
-
-fun Countries_R_provinces_Tulskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Tulskayaoblast_cities_Novomoskovsk : Ind City ;
-
-fun Countries_R_provinces_Tulskayaoblast_cities_Tula : Ind City ;
-
-fun Countries_R_provinces_Tverskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Tverskayaoblast_cities_Tver : Ind City ;
-
-fun Countries_R_provinces_Tyumenskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Tyumenskayaoblast_cities_Nizhnevartovsk : Ind City ;
-
-fun Countries_R_provinces_Tyumenskayaoblast_cities_Surgut : Ind City ;
-
-fun Countries_R_provinces_Tyumenskayaoblast_cities_Tyumen : Ind City ;
-
-fun Countries_R_provinces_UdmurtRepublic : Ind Province ;
-
-fun Countries_R_provinces_UdmurtRepublic_cities_Glazov : Ind City ;
-
-fun Countries_R_provinces_UdmurtRepublic_cities_Izhevsk : Ind City ;
-
-fun Countries_R_provinces_UdmurtRepublic_cities_Sarapul : Ind City ;
-
-fun Countries_R_provinces_UdmurtRepublic_cities_Votkinsk : Ind City ;
-
-fun Countries_R_provinces_Ulyanovskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Ulyanovskayaoblast_cities_Dimitrovgrad : Ind City ;
-
-fun Countries_R_provinces_Ulyanovskayaoblast_cities_Simbirsk : Ind City ;
-
-fun Countries_R_provinces_Vladimirskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Vladimirskayaoblast_cities_Kovrov : Ind City ;
-
-fun Countries_R_provinces_Vladimirskayaoblast_cities_Murom : Ind City ;
-
-fun Countries_R_provinces_Vladimirskayaoblast_cities_Vladimir : Ind City ;
-
-fun Countries_R_provinces_Volgogradskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Volgogradskayaoblast_cities_Kamyshin : Ind City ;
-
-fun Countries_R_provinces_Volgogradskayaoblast_cities_Volgograd : Ind City ;
-
-fun Countries_R_provinces_Volgogradskayaoblast_cities_Volzhsky : Ind City ;
-
-fun Countries_R_provinces_Vologodskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Vologodskayaoblast_cities_Cherepovets : Ind City ;
-
-fun Countries_R_provinces_Vologodskayaoblast_cities_Vologda : Ind City ;
-
-fun Countries_R_provinces_Voronezhskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Voronezhskayaoblast_cities_Voronezh : Ind City ;
-
-fun Countries_R_provinces_Yaroslavskayaoblast : Ind Province ;
-
-fun Countries_R_provinces_Yaroslavskayaoblast_cities_Rybinsk : Ind City ;
-
-fun Countries_R_provinces_Yaroslavskayaoblast_cities_Yaroslavl : Ind City ;
-
-fun Countries_R_provinces_Yevreyskayaavt_oblast : Ind Province ;
-
-fun Countries_R_provinces_Yevreyskayaavt_oblast_cities_Birobidzhan : Ind City ;
-
-fun Countries_SA_cities_Jeddah : Ind City ;
-
-fun Countries_SA_cities_Riyadh : Ind City ;
-
-fun Countries_SD_cities_Mbabane : Ind City ;
-
-fun Countries_SF_provinces_Aland : Ind Province ;
-
-fun Countries_SF_provinces_Aland_cities_Mariehamn : Ind City ;
-
-fun Countries_SF_provinces_Haeme : Ind Province ;
-
-fun Countries_SF_provinces_Haeme_cities_Haemeenlinna : Ind City ;
-
-fun Countries_SF_provinces_Haeme_cities_Lahti : Ind City ;
-
-fun Countries_SF_provinces_Haeme_cities_Tampere : Ind City ;
-
-fun Countries_SF_provinces_Kuopio : Ind Province ;
-
-fun Countries_SF_provinces_Kuopio_cities_Kuopio : Ind City ;
-
-fun Countries_SF_provinces_Kymi : Ind Province ;
-
-fun Countries_SF_provinces_Kymi_cities_Kotka : Ind City ;
-
-fun Countries_SF_provinces_Kymi_cities_Lappeenrenta : Ind City ;
-
-fun Countries_SF_provinces_Lappia : Ind Province ;
-
-fun Countries_SF_provinces_Lappia_cities_Rovaniemi : Ind City ;
-
-fun Countries_SF_provinces_Mikkeli : Ind Province ;
-
-fun Countries_SF_provinces_Mikkeli_cities_Mikkeli : Ind City ;
-
-fun Countries_SF_provinces_Oulu : Ind Province ;
-
-fun Countries_SF_provinces_Oulu_cities_Oulu : Ind City ;
-
-fun Countries_SF_provinces_Pohjols_Karjala : Ind Province ;
-
-fun Countries_SF_provinces_Pohjols_Karjala_cities_Joensuu : Ind City ;
-
-fun Countries_SF_provinces_Suomi : Ind Province ;
-
-fun Countries_SF_provinces_Suomi_cities_Jyvaeskylae : Ind City ;
-
-fun Countries_SF_provinces_Turku_Pori : Ind Province ;
-
-fun Countries_SF_provinces_Turku_Pori_cities_Pori : Ind City ;
-
-fun Countries_SF_provinces_Turku_Pori_cities_Turku : Ind City ;
-
-fun Countries_SF_provinces_Uusimaa : Ind Province ;
-
-fun Countries_SF_provinces_Uusimaa_cities_Espoo : Ind City ;
-
-fun Countries_SF_provinces_Uusimaa_cities_Helsinki : Ind City ;
-
-fun Countries_SF_provinces_Vaasa : Ind Province ;
-
-fun Countries_SF_provinces_Vaasa_cities_Vaasa : Ind City ;
-
-fun Countries_SGP_cities_Singapore : Ind City ;
-
-fun Countries_SK_cities_Bratislava : Ind City ;
-
-fun Countries_SLB_cities_Honiara : Ind City ;
-
-fun Countries_SLO_cities_Ljubljana : Ind City ;
-
-fun Countries_SME_cities_Paramaribo : Ind City ;
-
-fun Countries_SN_provinces_Dakar : Ind Province ;
-
-fun Countries_SN_provinces_Dakar_cities_Dakar : Ind City ;
-
-fun Countries_SN_provinces_Diourbel : Ind Province ;
-
-fun Countries_SN_provinces_Diourbel_cities_Diourbel : Ind City ;
-
-fun Countries_SN_provinces_Fatick : Ind Province ;
-
-fun Countries_SN_provinces_Fatick_cities_Fatick : Ind City ;
-
-fun Countries_SN_provinces_Kaolack : Ind Province ;
-
-fun Countries_SN_provinces_Kaolack_cities_Kaolack : Ind City ;
-
-fun Countries_SN_provinces_Kolda : Ind Province ;
-
-fun Countries_SN_provinces_Kolda_cities_Kolda : Ind City ;
-
-fun Countries_SN_provinces_Louga : Ind Province ;
-
-fun Countries_SN_provinces_Louga_cities_Louga : Ind City ;
-
-fun Countries_SN_provinces_SaintLouis : Ind Province ;
-
-fun Countries_SN_provinces_SaintLouis_cities_SaintLouis : Ind City ;
-
-fun Countries_SN_provinces_Tambacounda : Ind Province ;
-
-fun Countries_SN_provinces_Tambacounda_cities_Tambacounda : Ind City ;
-
-fun Countries_SN_provinces_Thies : Ind Province ;
-
-fun Countries_SN_provinces_Thies_cities_Thies : Ind City ;
-
-fun Countries_SN_provinces_Ziguinchor : Ind Province ;
-
-fun Countries_SN_provinces_Ziguinchor_cities_Ziguinchor : Ind City ;
-
-fun Countries_SP_cities_Mogadishu : Ind City ;
-
-fun Countries_STP_cities_SaoTome : Ind City ;
-
-fun Countries_SUD_provinces_AalianNil : Ind Province ;
-
-fun Countries_SUD_provinces_AalianNil_cities_Malakal : Ind City ;
-
-fun Countries_SUD_provinces_BahralGhazal : Ind Province ;
-
-fun Countries_SUD_provinces_BahralGhazal_cities_Waw : Ind City ;
-
-fun Countries_SUD_provinces_Darfur : Ind Province ;
-
-fun Countries_SUD_provinces_Darfur_cities_Nyala : Ind City ;
-
-fun Countries_SUD_provinces_Darfur_cities_alFasher : Ind City ;
-
-fun Countries_SUD_provinces_Kurdufan : Ind Province ;
-
-fun Countries_SUD_provinces_Kurdufan_cities_alUbayyid : Ind City ;
-
-fun Countries_SUD_provinces_alIstiwaiyah : Ind Province ;
-
-fun Countries_SUD_provinces_alIstiwaiyah_cities_Juba : Ind City ;
-
-fun Countries_SUD_provinces_alKhartum : Ind Province ;
-
-fun Countries_SUD_provinces_alKhartum_cities_Khartoum : Ind City ;
-
-fun Countries_SUD_provinces_alKhartum_cities_KhartoumNorth : Ind City ;
-
-fun Countries_SUD_provinces_alKhartum_cities_Omdurman : Ind City ;
-
-fun Countries_SUD_provinces_alWusta : Ind Province ;
-
-fun Countries_SUD_provinces_alWusta_cities_WadMadani : Ind City ;
-
-fun Countries_SUD_provinces_ashShamaliyah : Ind Province ;
-
-fun Countries_SUD_provinces_ashShamaliyah_cities_adDamir : Ind City ;
-
-fun Countries_SUD_provinces_ashSharqiyah : Ind Province ;
-
-fun Countries_SUD_provinces_ashSharqiyah_cities_Kassala : Ind City ;
-
-fun Countries_SUD_provinces_ashSharqiyah_cities_PortSudan : Ind City ;
-
-fun Countries_SUD_provinces_ashSharqiyah_cities_alQadarif : Ind City ;
-
-fun Countries_SYR_cities_Aleppo : Ind City ;
-
-fun Countries_SYR_cities_Damascus : Ind City ;
-
-fun Countries_SYR_cities_Homs : Ind City ;
-
-fun Countries_SY_cities_Victoria : Ind City ;
-
-fun Countries_S_provinces_Alvsborg : Ind Province ;
-
-fun Countries_S_provinces_Alvsborg_cities_Vanersborg : Ind City ;
-
-fun Countries_S_provinces_Blekinge : Ind Province ;
-
-fun Countries_S_provinces_Blekinge_cities_Karlskrona : Ind City ;
-
-fun Countries_S_provinces_Gavleborg : Ind Province ;
-
-fun Countries_S_provinces_Gavleborg_cities_Gavle : Ind City ;
-
-fun Countries_S_provinces_GoteborgochBohus : Ind Province ;
-
-fun Countries_S_provinces_GoteborgochBohus_cities_Goteborg : Ind City ;
-
-fun Countries_S_provinces_Gotland : Ind Province ;
-
-fun Countries_S_provinces_Gotland_cities_Visby : Ind City ;
-
-fun Countries_S_provinces_Halland : Ind Province ;
-
-fun Countries_S_provinces_Halland_cities_Halmstad : Ind City ;
-
-fun Countries_S_provinces_Jamtland : Ind Province ;
-
-fun Countries_S_provinces_Jamtland_cities_Ostersund : Ind City ;
-
-fun Countries_S_provinces_Jonkoping : Ind Province ;
-
-fun Countries_S_provinces_Jonkoping_cities_Jonkoping : Ind City ;
-
-fun Countries_S_provinces_Kalmar : Ind Province ;
-
-fun Countries_S_provinces_Kalmar_cities_Kalmar : Ind City ;
-
-fun Countries_S_provinces_Kopparberg : Ind Province ;
-
-fun Countries_S_provinces_Kopparberg_cities_Falun : Ind City ;
-
-fun Countries_S_provinces_Kristianstad : Ind Province ;
-
-fun Countries_S_provinces_Kristianstad_cities_Kristianstad : Ind City ;
-
-fun Countries_S_provinces_Kronoberg : Ind Province ;
-
-fun Countries_S_provinces_Kronoberg_cities_Vaxjo : Ind City ;
-
-fun Countries_S_provinces_Malmohus : Ind Province ;
-
-fun Countries_S_provinces_Malmohus_cities_Helsingborg : Ind City ;
-
-fun Countries_S_provinces_Malmohus_cities_Malmo : Ind City ;
-
-fun Countries_S_provinces_Norrbotten : Ind Province ;
-
-fun Countries_S_provinces_Norrbotten_cities_Jokkmokk : Ind City ;
-
-fun Countries_S_provinces_Norrbotten_cities_Lulea : Ind City ;
-
-fun Countries_S_provinces_Orebro : Ind Province ;
-
-fun Countries_S_provinces_Orebro_cities_Orebro : Ind City ;
-
-fun Countries_S_provinces_Ostergotland : Ind Province ;
-
-fun Countries_S_provinces_Ostergotland_cities_Linkoping : Ind City ;
-
-fun Countries_S_provinces_Ostergotland_cities_Norrkoping : Ind City ;
-
-fun Countries_S_provinces_Skaraborg : Ind Province ;
-
-fun Countries_S_provinces_Skaraborg_cities_Mariestad : Ind City ;
-
-fun Countries_S_provinces_Sodermanland : Ind Province ;
-
-fun Countries_S_provinces_Sodermanland_cities_Nykoping : Ind City ;
-
-fun Countries_S_provinces_Stockholm : Ind Province ;
-
-fun Countries_S_provinces_Stockholm_cities_Stockholm : Ind City ;
-
-fun Countries_S_provinces_Uppsala : Ind Province ;
-
-fun Countries_S_provinces_Uppsala_cities_Uppsala : Ind City ;
-
-fun Countries_S_provinces_Varmland : Ind Province ;
-
-fun Countries_S_provinces_Varmland_cities_Karlstad : Ind City ;
-
-fun Countries_S_provinces_Vasterbotten : Ind Province ;
-
-fun Countries_S_provinces_Vasterbotten_cities_Umea : Ind City ;
-
-fun Countries_S_provinces_Vasternorrland : Ind Province ;
-
-fun Countries_S_provinces_Vasternorrland_cities_Harnosand : Ind City ;
-
-fun Countries_S_provinces_Vastmanland : Ind Province ;
-
-fun Countries_S_provinces_Vastmanland_cities_Vasteras : Ind City ;
-
-fun Countries_TAD_provinces_BadakhshoniKuni : Ind Province ;
-
-fun Countries_TAD_provinces_BadakhshoniKuni_cities_Khorugh : Ind City ;
-
-fun Countries_TAD_provinces_Dushanbe_munic : Ind Province ;
-
-fun Countries_TAD_provinces_Dushanbe_munic_cities_Dushanbe : Ind City ;
-
-fun Countries_TAD_provinces_Khatlon : Ind Province ;
-
-fun Countries_TAD_provinces_Khatlon_cities_Qurghonteppa : Ind City ;
-
-fun Countries_TAD_provinces_Kulob : Ind Province ;
-
-fun Countries_TAD_provinces_Kulob_cities_Kulob : Ind City ;
-
-fun Countries_TAD_provinces_Leninobod : Ind Province ;
-
-fun Countries_TAD_provinces_Leninobod_cities_Khujand : Ind City ;
-
-fun Countries_TCH_cities_NDjamena : Ind City ;
-
-fun Countries_THA_provinces_AmnatCharoen : Ind Province ;
-
-fun Countries_THA_provinces_AngThong : Ind Province ;
-
-fun Countries_THA_provinces_BangkokMetropolis : Ind Province ;
-
-fun Countries_THA_provinces_BangkokMetropolis_cities_Bangkok : Ind City ;
-
-fun Countries_THA_provinces_BuriRam : Ind Province ;
-
-fun Countries_THA_provinces_CentralRegion : Ind Province ;
-
-fun Countries_THA_provinces_Chachoengsao : Ind Province ;
-
-fun Countries_THA_provinces_ChaiNat : Ind Province ;
-
-fun Countries_THA_provinces_Chaiyaphum : Ind Province ;
-
-fun Countries_THA_provinces_Chanthaburi : Ind Province ;
-
-fun Countries_THA_provinces_ChiangMai : Ind Province ;
-
-fun Countries_THA_provinces_ChiangMai_cities_ChiangMai : Ind City ;
-
-fun Countries_THA_provinces_ChiangRai : Ind Province ;
-
-fun Countries_THA_provinces_ChonBuri : Ind Province ;
-
-fun Countries_THA_provinces_Chumphon : Ind Province ;
-
-fun Countries_THA_provinces_Kalasin : Ind Province ;
-
-fun Countries_THA_provinces_KamphaengPhet : Ind Province ;
-
-fun Countries_THA_provinces_Kanchanaburi : Ind Province ;
-
-fun Countries_THA_provinces_KhonKaen : Ind Province ;
-
-fun Countries_THA_provinces_KhonKaen_cities_KhonKaen : Ind City ;
-
-fun Countries_THA_provinces_Krabi : Ind Province ;
-
-fun Countries_THA_provinces_Lampang : Ind Province ;
-
-fun Countries_THA_provinces_Lamphun : Ind Province ;
-
-fun Countries_THA_provinces_Loei : Ind Province ;
-
-fun Countries_THA_provinces_LopBuri : Ind Province ;
-
-fun Countries_THA_provinces_MaeHongSon : Ind Province ;
-
-fun Countries_THA_provinces_MahaSarakham : Ind Province ;
-
-fun Countries_THA_provinces_Mukdahan : Ind Province ;
-
-fun Countries_THA_provinces_NakhonNayok : Ind Province ;
-
-fun Countries_THA_provinces_NakhonPathom : Ind Province ;
-
-fun Countries_THA_provinces_NakhonPhanom : Ind Province ;
-
-fun Countries_THA_provinces_NakhonRatchasima : Ind Province ;
-
-fun Countries_THA_provinces_NakhonRatchasima_cities_NakhonRatchasima : Ind City ;
-
-fun Countries_THA_provinces_NakhonSawan : Ind Province ;
-
-fun Countries_THA_provinces_NakhonSawan_cities_NakhonSawan : Ind City ;
-
-fun Countries_THA_provinces_NakhonSiThammarat : Ind Province ;
-
-fun Countries_THA_provinces_NakhonSiThammarat_cities_NakhonsiThammarat : Ind City ;
-
-fun Countries_THA_provinces_Nan : Ind Province ;
-
-fun Countries_THA_provinces_Narathiwat : Ind Province ;
-
-fun Countries_THA_provinces_NongBuaLamPhu : Ind Province ;
-
-fun Countries_THA_provinces_NongKhai : Ind Province ;
-
-fun Countries_THA_provinces_Nonthaburi : Ind Province ;
-
-fun Countries_THA_provinces_Nonthaburi_cities_Nonthaburi : Ind City ;
-
-fun Countries_THA_provinces_NortheasternRegion : Ind Province ;
-
-fun Countries_THA_provinces_NorthernRegion : Ind Province ;
-
-fun Countries_THA_provinces_PathumThani : Ind Province ;
-
-fun Countries_THA_provinces_Pattani : Ind Province ;
-
-fun Countries_THA_provinces_Petchanbun : Ind Province ;
-
-fun Countries_THA_provinces_Phangnga : Ind Province ;
-
-fun Countries_THA_provinces_Phatthalung : Ind Province ;
-
-fun Countries_THA_provinces_Phayao : Ind Province ;
-
-fun Countries_THA_provinces_Phetchaburi : Ind Province ;
-
-fun Countries_THA_provinces_Phichit : Ind Province ;
-
-fun Countries_THA_provinces_Phitsanulok : Ind Province ;
-
-fun Countries_THA_provinces_PhraNakhonSiAyutthaya : Ind Province ;
-
-fun Countries_THA_provinces_Phrae : Ind Province ;
-
-fun Countries_THA_provinces_Phuket : Ind Province ;
-
-fun Countries_THA_provinces_PrachinBuri : Ind Province ;
-
-fun Countries_THA_provinces_PrachuapKhiriKhan : Ind Province ;
-
-fun Countries_THA_provinces_Ranong : Ind Province ;
-
-fun Countries_THA_provinces_Ratchaburi : Ind Province ;
-
-fun Countries_THA_provinces_Rayong : Ind Province ;
-
-fun Countries_THA_provinces_RoiEt : Ind Province ;
-
-fun Countries_THA_provinces_SaKaeo : Ind Province ;
-
-fun Countries_THA_provinces_SakonNakhon : Ind Province ;
-
-fun Countries_THA_provinces_SamutPrakan : Ind Province ;
-
-fun Countries_THA_provinces_SamutSakhon : Ind Province ;
-
-fun Countries_THA_provinces_SamutSongkhram : Ind Province ;
-
-fun Countries_THA_provinces_Saraburi : Ind Province ;
-
-fun Countries_THA_provinces_Saraburi_cities_Saraburi : Ind City ;
-
-fun Countries_THA_provinces_Satun : Ind Province ;
-
-fun Countries_THA_provinces_SiSaKet : Ind Province ;
-
-fun Countries_THA_provinces_SingBuri : Ind Province ;
-
-fun Countries_THA_provinces_Songkhla : Ind Province ;
-
-fun Countries_THA_provinces_Songkhla_cities_Songkhla : Ind City ;
-
-fun Countries_THA_provinces_SouthernRegion : Ind Province ;
-
-fun Countries_THA_provinces_Sukhothai : Ind Province ;
-
-fun Countries_THA_provinces_SuphanBuri : Ind Province ;
-
-fun Countries_THA_provinces_SuratThani : Ind Province ;
-
-fun Countries_THA_provinces_Surin : Ind Province ;
-
-fun Countries_THA_provinces_Tak : Ind Province ;
-
-fun Countries_THA_provinces_Trang : Ind Province ;
-
-fun Countries_THA_provinces_Trat : Ind Province ;
-
-fun Countries_THA_provinces_UbonRatchathani : Ind Province ;
-
-fun Countries_THA_provinces_UbonRatchathani_cities_UbonRatchathani : Ind City ;
-
-fun Countries_THA_provinces_UdonThani : Ind Province ;
-
-fun Countries_THA_provinces_UthaiThani : Ind Province ;
-
-fun Countries_THA_provinces_Uttaradit : Ind Province ;
-
-fun Countries_THA_provinces_Yala : Ind Province ;
-
-fun Countries_THA_provinces_Yasothon : Ind Province ;
-
-fun Countries_TJ_cities_HongKong : Ind City ;
-
-fun Countries_TJ_cities_Macau : Ind City ;
-
-fun Countries_TJ_provinces_Anhui : Ind Province ;
-
-fun Countries_TJ_provinces_Anhui_cities_Anqing : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Bengbu : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Chaoxian : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Chuxian : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Fuyang : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Hefei : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Huaibei : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Huainan : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Luan : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Maanshan : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Suzhou : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Tongling : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Wuhu : Ind City ;
-
-fun Countries_TJ_provinces_Anhui_cities_Xuancheng : Ind City ;
-
-fun Countries_TJ_provinces_Beijing_munic : Ind Province ;
-
-fun Countries_TJ_provinces_Beijing_munic_cities_Beijing : Ind City ;
-
-fun Countries_TJ_provinces_Fujian : Ind Province ;
-
-fun Countries_TJ_provinces_Fujian_cities_Fuzhou : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Longyan : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Nanping : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Quanzhou : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Sanming : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Xiamen : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Yongan : Ind City ;
-
-fun Countries_TJ_provinces_Fujian_cities_Zhangzhou : Ind City ;
-
-fun Countries_TJ_provinces_Gansu : Ind Province ;
-
-fun Countries_TJ_provinces_Gansu_cities_Baiyin : Ind City ;
-
-fun Countries_TJ_provinces_Gansu_cities_Lanzhou : Ind City ;
-
-fun Countries_TJ_provinces_Gansu_cities_Tianshui : Ind City ;
-
-fun Countries_TJ_provinces_Gansu_cities_Wuwei : Ind City ;
-
-fun Countries_TJ_provinces_Gansu_cities_Yumen : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong : Ind Province ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Chaozhou : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Dongguan : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Foshan : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Guangzhou : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Heyuan : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Huizhou : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Jiangmen : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Maoming : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Meixian : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Shantou : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Shanwei : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Shaoguan : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Shenzhen : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Yangjiang : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Zhanjiang : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Zhaoqing : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Zhongshan : Ind City ;
-
-fun Countries_TJ_provinces_Guangdong_cities_Zhuhai : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu : Ind Province ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Beihai : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Guilin : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Guixian : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Liuzhou : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Nanning : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Qinzhou : Ind City ;
-
-fun Countries_TJ_provinces_GuangxiZhuangzu_cities_Wuzhou : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou : Ind Province ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Anshun : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Duyun : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Guiyang : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Kaili : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Liupanshui : Ind City ;
-
-fun Countries_TJ_provinces_Guizhou_cities_Zunyi : Ind City ;
-
-fun Countries_TJ_provinces_Hainan : Ind Province ;
-
-fun Countries_TJ_provinces_Hainan_cities_Haikou : Ind City ;
-
-fun Countries_TJ_provinces_Hainan_cities_Sanya : Ind City ;
-
-fun Countries_TJ_provinces_Hebei : Ind Province ;
-
-fun Countries_TJ_provinces_Hebei_cities_Baoding : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Chengde : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Handan : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Hengshui : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Qinhuangdao : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Quzhou : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Renqiu : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Shijiazhuang : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Tangshan : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Xingtai : Ind City ;
-
-fun Countries_TJ_provinces_Hebei_cities_Zhangjiakou : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang : Ind Province ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Acheng : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Anda : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Beian : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Daqing : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Fuling : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Harbin : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Hegang : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Jiamusi : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Jixi : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Mishan : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Mudanjiang : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Qiqihar : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Qitaihe : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Shangzhi : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Shuangcheng : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Shuangyashan : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Suihua : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Yichun : Ind City ;
-
-fun Countries_TJ_provinces_Heilongjiang_cities_Zhaodong : Ind City ;
-
-fun Countries_TJ_provinces_Henan : Ind Province ;
-
-fun Countries_TJ_provinces_Henan_cities_Anyang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Hebi : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Jiaozuo : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Kaifeng : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Luohe : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Luoyang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Nanyang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Pingdingshan : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Puyang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Sanmenxia : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Shangqiu : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Xinxiang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Xinyang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Xuchang : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Zhengzhou : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Zhoukou : Ind City ;
-
-fun Countries_TJ_provinces_Henan_cities_Zhumadian : Ind City ;
-
-fun Countries_TJ_provinces_Hubei : Ind Province ;
-
-fun Countries_TJ_provinces_Hubei_cities_Cangzhou : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Echeng : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Guangshui : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Honghu : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Huangshi : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Laohekou : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Puqi : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Shashi : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Shishou : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Shiyan : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Tianmen : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Wuhan : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Xiangfan : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Xianning : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Xiaogan : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Yichang : Ind City ;
-
-fun Countries_TJ_provinces_Hubei_cities_Zaoyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan : Ind Province ;
-
-fun Countries_TJ_provinces_Hunan_cities_Changde : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Changsha : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Hengyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Huaihua : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Leiyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Lengshuijiang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Liling : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Loudi : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Shaoyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Xiangtan : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Yiyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Yuanjiang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Yueyang : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Zhuzhou : Ind City ;
-
-fun Countries_TJ_provinces_Hunan_cities_Zixing : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu : Ind Province ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Changshu : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Changzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Danyang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Dongtai : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Huaian : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Huaiyin : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Jiangyin : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Kunshan : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Lianyungang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Liyang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Nanjing : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Nantong : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Suqian : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Suzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Taizhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Wuxi : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Xinghua : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Xuzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Yancheng : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Yangzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Yixing : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Yizheng : Ind City ;
-
-fun Countries_TJ_provinces_Jiangsu_cities_Zhenjiang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi : Ind Province ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Fuzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Ganzhou : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Jingdezhen : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Jiujiang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Nanchang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Pingxiang : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Shangrao : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Xinyu : Ind City ;
-
-fun Countries_TJ_provinces_Jiangxi_cities_Yichun : Ind City ;
-
-fun Countries_TJ_provinces_Jilin : Ind Province ;
-
-fun Countries_TJ_provinces_Jilin_cities_Baicheng : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Changchun : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Daan : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Dunhua : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Fuyu : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Gongzhuling : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Huadian : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Hunjiang : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Jilin : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Jiutai : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Liaoyuan : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Longjing : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Meihekou : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Siping : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Tonghua : Ind City ;
-
-fun Countries_TJ_provinces_Jilin_cities_Yanji : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning : Ind Province ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Anshan : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Beipiao : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Benxi : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Chaoyang : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Dalian : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Dandong : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Fengcheng : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Fushun : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Fuxin : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Haicheng : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Jinxi : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Jinzhou : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Liaoyang : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Panshan : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Shenyang : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Tieling : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Wafangdian : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Xingcheng : Ind City ;
-
-fun Countries_TJ_provinces_Liaoning_cities_Yingkou : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol : Ind Province ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Baotou : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Chifeng : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Hailar : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Hohhot : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Jining : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Linhe : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Manzhouli : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Tongliao : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Ulanhot : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Wuhai : Ind City ;
-
-fun Countries_TJ_provinces_NeiMonggol_cities_Yakeshi : Ind City ;
-
-fun Countries_TJ_provinces_NingxiaHuizu : Ind Province ;
-
-fun Countries_TJ_provinces_NingxiaHuizu_cities_Shizuishan : Ind City ;
-
-fun Countries_TJ_provinces_NingxiaHuizu_cities_Yinchuan : Ind City ;
-
-fun Countries_TJ_provinces_Qinghai : Ind Province ;
-
-fun Countries_TJ_provinces_Qinghai_cities_Xining : Ind City ;
-
-fun Countries_TJ_provinces_Qinghai_cities_Yushu : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi : Ind Province ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Ankang : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Baoji : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Hanzhong : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Tongchuan : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Weinan : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Xi : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Xian : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Xianyang : Ind City ;
-
-fun Countries_TJ_provinces_Shaanxi_cities_Yanan : Ind City ;
-
-fun Countries_TJ_provinces_Shandong : Ind Province ;
-
-fun Countries_TJ_provinces_Shandong_cities_Dezhou : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Dongying : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Heze : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Jiaonan : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Jiaoxian : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Jinan : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Jining : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Laiwu : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Laiyang : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Liancheng : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Liaocheng : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Linqing : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Linyi : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Longkou : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Pingdu : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Qingdao : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Rizhao : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Taian : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Tengxian : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Weifang : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Weihai : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Wendeng : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Xintai : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Yantai : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Zaozhuang : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Zhucheng : Ind City ;
-
-fun Countries_TJ_provinces_Shandong_cities_Zibo : Ind City ;
-
-fun Countries_TJ_provinces_Shanghai_munic : Ind Province ;
-
-fun Countries_TJ_provinces_Shanghai_munic_cities_Shanghai : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi : Ind Province ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Changzhi : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Datong : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Jincheng : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Linfen : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Taiyuan : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Yangquan : Ind City ;
-
-fun Countries_TJ_provinces_Shanxi_cities_Yuci : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan : Ind Province ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Chengdu : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Chongqing : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Daxian : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Deyang : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Dukou : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Guangyuan : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Jiangyou : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Leshan : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Luzhou : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Mianyang : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Nanchong : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Neijiang : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Qianjiang : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Wanxian : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Xichang : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Yibin : Ind City ;
-
-fun Countries_TJ_provinces_Sichuan_cities_Zigong : Ind City ;
-
-fun Countries_TJ_provinces_Tianjin_munic : Ind Province ;
-
-fun Countries_TJ_provinces_Tianjin_munic_cities_Tianjin : Ind City ;
-
-fun Countries_TJ_provinces_Tibet : Ind Province ;
-
-fun Countries_TJ_provinces_Tibet_cities_Lhasa : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur : Ind Province ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Aksu : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Hami : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Karamay : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Kashi : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Korla : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Shihezi : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Urumqi : Ind City ;
-
-fun Countries_TJ_provinces_XinjiangUygur_cities_Yining : Ind City ;
-
-fun Countries_TJ_provinces_Yunnan : Ind Province ;
-
-fun Countries_TJ_provinces_Yunnan_cities_Gejiu : Ind City ;
-
-fun Countries_TJ_provinces_Yunnan_cities_Kunming : Ind City ;
-
-fun Countries_TJ_provinces_Yunnan_cities_Qujing : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang : Ind Province ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Cixi : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Haining : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Hangzhou : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Huzhou : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Jiaxing : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Jinhua : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Ningbo : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Ruian : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Shaoxing : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Wenzhou : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Xiaoshan : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Yuyao : Ind City ;
-
-fun Countries_TJ_provinces_Zhejiang_cities_Zhoushan : Ind City ;
-
-fun Countries_TM_provinces_Ahal : Ind Province ;
-
-fun Countries_TM_provinces_Ahal_cities_Ashgabat : Ind City ;
-
-fun Countries_TM_provinces_Balkan : Ind Province ;
-
-fun Countries_TM_provinces_Balkan_cities_Nebitdag : Ind City ;
-
-fun Countries_TM_provinces_Dashhowuz : Ind Province ;
-
-fun Countries_TM_provinces_Dashhowuz_cities_Tashauz : Ind City ;
-
-fun Countries_TM_provinces_Leban : Ind Province ;
-
-fun Countries_TM_provinces_Leban_cities_Charjew : Ind City ;
-
-fun Countries_TM_provinces_Mary : Ind Province ;
-
-fun Countries_TM_provinces_Mary_cities_Mary : Ind City ;
-
-fun Countries_TN_cities_Tunis : Ind City ;
-
-fun Countries_TO_cities_Nukualofa : Ind City ;
-
-fun Countries_TR_cities_Hatay : Ind City ;
-
-fun Countries_TR_cities_Icel : Ind City ;
-
-fun Countries_TR_provinces_Adana : Ind Province ;
-
-fun Countries_TR_provinces_Adana_cities_Adana : Ind City ;
-
-fun Countries_TR_provinces_Adana_cities_Osmaniye : Ind City ;
-
-fun Countries_TR_provinces_Adiyaman : Ind Province ;
-
-fun Countries_TR_provinces_Adiyaman_cities_Adiyaman : Ind City ;
-
-fun Countries_TR_provinces_Afyon : Ind Province ;
-
-fun Countries_TR_provinces_Afyon_cities_Afyon : Ind City ;
-
-fun Countries_TR_provinces_Agri : Ind Province ;
-
-fun Countries_TR_provinces_Agri_cities_Agri : Ind City ;
-
-fun Countries_TR_provinces_Aksaray : Ind Province ;
-
-fun Countries_TR_provinces_Aksaray_cities_Aksaray : Ind City ;
-
-fun Countries_TR_provinces_Amasya : Ind Province ;
-
-fun Countries_TR_provinces_Amasya_cities_Amasya : Ind City ;
-
-fun Countries_TR_provinces_Ankara : Ind Province ;
-
-fun Countries_TR_provinces_Ankara_cities_Ankara : Ind City ;
-
-fun Countries_TR_provinces_Antalya : Ind Province ;
-
-fun Countries_TR_provinces_Antalya_cities_Antalya : Ind City ;
-
-fun Countries_TR_provinces_Artvin : Ind Province ;
-
-fun Countries_TR_provinces_Artvin_cities_Artvin : Ind City ;
-
-fun Countries_TR_provinces_Aydin : Ind Province ;
-
-fun Countries_TR_provinces_Aydin_cities_Aydin : Ind City ;
-
-fun Countries_TR_provinces_Balikesir : Ind Province ;
-
-fun Countries_TR_provinces_Balikesir_cities_Balikesir : Ind City ;
-
-fun Countries_TR_provinces_Batman : Ind Province ;
-
-fun Countries_TR_provinces_Batman_cities_Batman : Ind City ;
-
-fun Countries_TR_provinces_Bayburt : Ind Province ;
-
-fun Countries_TR_provinces_Bayburt_cities_Bayburt : Ind City ;
-
-fun Countries_TR_provinces_Bilecik : Ind Province ;
-
-fun Countries_TR_provinces_Bilecik_cities_Bilecik : Ind City ;
-
-fun Countries_TR_provinces_Bingol : Ind Province ;
-
-fun Countries_TR_provinces_Bingol_cities_Bingol : Ind City ;
-
-fun Countries_TR_provinces_Bitlis : Ind Province ;
-
-fun Countries_TR_provinces_Bitlis_cities_Bitlis : Ind City ;
-
-fun Countries_TR_provinces_Bolu : Ind Province ;
-
-fun Countries_TR_provinces_Bolu_cities_Bolu : Ind City ;
-
-fun Countries_TR_provinces_Burdur : Ind Province ;
-
-fun Countries_TR_provinces_Burdur_cities_Burdur : Ind City ;
-
-fun Countries_TR_provinces_Bursa : Ind Province ;
-
-fun Countries_TR_provinces_Bursa_cities_Bursa : Ind City ;
-
-fun Countries_TR_provinces_Canakkale : Ind Province ;
-
-fun Countries_TR_provinces_Canakkale_cities_Canakkale : Ind City ;
-
-fun Countries_TR_provinces_Cankiri : Ind Province ;
-
-fun Countries_TR_provinces_Cankiri_cities_Cankiri : Ind City ;
-
-fun Countries_TR_provinces_Corum : Ind Province ;
-
-fun Countries_TR_provinces_Corum_cities_Corum : Ind City ;
-
-fun Countries_TR_provinces_Denizli : Ind Province ;
-
-fun Countries_TR_provinces_Denizli_cities_Denizli : Ind City ;
-
-fun Countries_TR_provinces_Diyarbakir : Ind Province ;
-
-fun Countries_TR_provinces_Diyarbakir_cities_Diyarbakir : Ind City ;
-
-fun Countries_TR_provinces_Edirne : Ind Province ;
-
-fun Countries_TR_provinces_Edirne_cities_Edirne : Ind City ;
-
-fun Countries_TR_provinces_Elazig : Ind Province ;
-
-fun Countries_TR_provinces_Elazig_cities_Elazig : Ind City ;
-
-fun Countries_TR_provinces_Erzincan : Ind Province ;
-
-fun Countries_TR_provinces_Erzincan_cities_Erzincan : Ind City ;
-
-fun Countries_TR_provinces_Erzurum : Ind Province ;
-
-fun Countries_TR_provinces_Erzurum_cities_Erzurum : Ind City ;
-
-fun Countries_TR_provinces_Eskisehir : Ind Province ;
-
-fun Countries_TR_provinces_Eskisehir_cities_Eskisehir : Ind City ;
-
-fun Countries_TR_provinces_Gaziantep : Ind Province ;
-
-fun Countries_TR_provinces_Gaziantep_cities_Gaziantep : Ind City ;
-
-fun Countries_TR_provinces_Giresun : Ind Province ;
-
-fun Countries_TR_provinces_Giresun_cities_Giresun : Ind City ;
-
-fun Countries_TR_provinces_Gumushane : Ind Province ;
-
-fun Countries_TR_provinces_Gumushane_cities_Gumushane : Ind City ;
-
-fun Countries_TR_provinces_Hakkari : Ind Province ;
-
-fun Countries_TR_provinces_Hakkari_cities_Hakkari : Ind City ;
-
-fun Countries_TR_provinces_Hatay : Ind Province ;
-
-fun Countries_TR_provinces_Hatay_cities_Antakya : Ind City ;
-
-fun Countries_TR_provinces_Hatay_cities_Iskenderun : Ind City ;
-
-fun Countries_TR_provinces_Icel : Ind Province ;
-
-fun Countries_TR_provinces_Icel_cities_Mersin : Ind City ;
-
-fun Countries_TR_provinces_Icel_cities_Tarsus : Ind City ;
-
-fun Countries_TR_provinces_Isparta : Ind Province ;
-
-fun Countries_TR_provinces_Isparta_cities_Isparta : Ind City ;
-
-fun Countries_TR_provinces_Istanbul : Ind Province ;
-
-fun Countries_TR_provinces_Istanbul_cities_Istanbul : Ind City ;
-
-fun Countries_TR_provinces_Izmir : Ind Province ;
-
-fun Countries_TR_provinces_Izmir_cities_Izmir : Ind City ;
-
-fun Countries_TR_provinces_Karaman : Ind Province ;
-
-fun Countries_TR_provinces_Karaman_cities_Karaman : Ind City ;
-
-fun Countries_TR_provinces_Karamanmaras : Ind Province ;
-
-fun Countries_TR_provinces_Karamanmaras_cities_KaramanMaras : Ind City ;
-
-fun Countries_TR_provinces_Kars : Ind Province ;
-
-fun Countries_TR_provinces_Kars_cities_Kars : Ind City ;
-
-fun Countries_TR_provinces_Kastamonu : Ind Province ;
-
-fun Countries_TR_provinces_Kastamonu_cities_Kastamonu : Ind City ;
-
-fun Countries_TR_provinces_Kayseri : Ind Province ;
-
-fun Countries_TR_provinces_Kayseri_cities_Kayseri : Ind City ;
-
-fun Countries_TR_provinces_Kirikkale : Ind Province ;
-
-fun Countries_TR_provinces_Kirikkale_cities_Kirikkale : Ind City ;
-
-fun Countries_TR_provinces_Kirklareli : Ind Province ;
-
-fun Countries_TR_provinces_Kirklareli_cities_Kirklareli : Ind City ;
-
-fun Countries_TR_provinces_Kirsehir : Ind Province ;
-
-fun Countries_TR_provinces_Kirsehir_cities_Kirsehir : Ind City ;
-
-fun Countries_TR_provinces_Kocaeli : Ind Province ;
-
-fun Countries_TR_provinces_Kocaeli_cities_Adapazari : Ind City ;
-
-fun Countries_TR_provinces_Kocaeli_cities_Gebze : Ind City ;
-
-fun Countries_TR_provinces_Kocaeli_cities_Izmit : Ind City ;
-
-fun Countries_TR_provinces_Kocaeli_cities_Kocaeli : Ind City ;
-
-fun Countries_TR_provinces_Konya : Ind Province ;
-
-fun Countries_TR_provinces_Konya_cities_Konya : Ind City ;
-
-fun Countries_TR_provinces_Kutahya : Ind Province ;
-
-fun Countries_TR_provinces_Kutahya_cities_Kutahya : Ind City ;
-
-fun Countries_TR_provinces_Malatya : Ind Province ;
-
-fun Countries_TR_provinces_Malatya_cities_Malatya : Ind City ;
-
-fun Countries_TR_provinces_Manisa : Ind Province ;
-
-fun Countries_TR_provinces_Manisa_cities_Manisa : Ind City ;
-
-fun Countries_TR_provinces_Mardin : Ind Province ;
-
-fun Countries_TR_provinces_Mardin_cities_Mardin : Ind City ;
-
-fun Countries_TR_provinces_Mugla : Ind Province ;
-
-fun Countries_TR_provinces_Mugla_cities_Mugla : Ind City ;
-
-fun Countries_TR_provinces_Mus : Ind Province ;
-
-fun Countries_TR_provinces_Mus_cities_Mus : Ind City ;
-
-fun Countries_TR_provinces_Nevsehir : Ind Province ;
-
-fun Countries_TR_provinces_Nevsehir_cities_Nevsehir : Ind City ;
-
-fun Countries_TR_provinces_Nigde : Ind Province ;
-
-fun Countries_TR_provinces_Nigde_cities_Nigde : Ind City ;
-
-fun Countries_TR_provinces_Ordu : Ind Province ;
-
-fun Countries_TR_provinces_Ordu_cities_Ordu : Ind City ;
-
-fun Countries_TR_provinces_Rize : Ind Province ;
-
-fun Countries_TR_provinces_Rize_cities_Rize : Ind City ;
-
-fun Countries_TR_provinces_Sakarya : Ind Province ;
-
-fun Countries_TR_provinces_Sakarya_cities_Sakarya : Ind City ;
-
-fun Countries_TR_provinces_Samsun : Ind Province ;
-
-fun Countries_TR_provinces_Samsun_cities_Samsun : Ind City ;
-
-fun Countries_TR_provinces_Sanliurfa : Ind Province ;
-
-fun Countries_TR_provinces_Sanliurfa_cities_Urfa : Ind City ;
-
-fun Countries_TR_provinces_Siirt : Ind Province ;
-
-fun Countries_TR_provinces_Siirt_cities_Siirt : Ind City ;
-
-fun Countries_TR_provinces_Sinop : Ind Province ;
-
-fun Countries_TR_provinces_Sinop_cities_Sinop : Ind City ;
-
-fun Countries_TR_provinces_Sirnak : Ind Province ;
-
-fun Countries_TR_provinces_Sirnak_cities_Sirnak : Ind City ;
-
-fun Countries_TR_provinces_Sivas : Ind Province ;
-
-fun Countries_TR_provinces_Sivas_cities_Sivas : Ind City ;
-
-fun Countries_TR_provinces_Tekirdag : Ind Province ;
-
-fun Countries_TR_provinces_Tekirdag_cities_Tekirdag : Ind City ;
-
-fun Countries_TR_provinces_Tokat : Ind Province ;
-
-fun Countries_TR_provinces_Tokat_cities_Tokat : Ind City ;
-
-fun Countries_TR_provinces_Trabzon : Ind Province ;
-
-fun Countries_TR_provinces_Trabzon_cities_Trabzon : Ind City ;
-
-fun Countries_TR_provinces_Tunceli : Ind Province ;
-
-fun Countries_TR_provinces_Tunceli_cities_Tunceli : Ind City ;
-
-fun Countries_TR_provinces_Usak : Ind Province ;
-
-fun Countries_TR_provinces_Usak_cities_Usak : Ind City ;
-
-fun Countries_TR_provinces_Van : Ind Province ;
-
-fun Countries_TR_provinces_Van_cities_Van : Ind City ;
-
-fun Countries_TR_provinces_Yozgat : Ind Province ;
-
-fun Countries_TR_provinces_Yozgat_cities_Yozgat : Ind City ;
-
-fun Countries_TR_provinces_Zonguldak : Ind Province ;
-
-fun Countries_TR_provinces_Zonguldak_cities_Karabuk : Ind City ;
-
-fun Countries_TR_provinces_Zonguldak_cities_Zonguldak : Ind City ;
-
-fun Countries_TT_cities_Port_of_Spain : Ind City ;
-
-fun Countries_TUV_cities_Funafuti : Ind City ;
-
-fun Countries_UAE_cities_AbuDhabi : Ind City ;
-
-fun Countries_UAE_cities_AlAyn : Ind City ;
-
-fun Countries_UAE_cities_Dubai : Ind City ;
-
-fun Countries_UAE_cities_Sharjah : Ind City ;
-
-fun Countries_UAE_provinces_AbuDhabi : Ind Province ;
-
-fun Countries_UAE_provinces_Ajman : Ind Province ;
-
-fun Countries_UAE_provinces_AlFujayrah : Ind Province ;
-
-fun Countries_UAE_provinces_AshShariqah : Ind Province ;
-
-fun Countries_UAE_provinces_Dubayy : Ind Province ;
-
-fun Countries_UAE_provinces_RasalKhaymah : Ind Province ;
-
-fun Countries_UAE_provinces_UmmalQaywayn : Ind Province ;
-
-fun Countries_UA_provinces_Cherkaska : Ind Province ;
-
-fun Countries_UA_provinces_Cherkaska_cities_Cherkasy : Ind City ;
-
-fun Countries_UA_provinces_Chernihivska : Ind Province ;
-
-fun Countries_UA_provinces_Chernihivska_cities_Chernihiv : Ind City ;
-
-fun Countries_UA_provinces_Chernivetska : Ind Province ;
-
-fun Countries_UA_provinces_Chernivetska_cities_Chernivtsi : Ind City ;
-
-fun Countries_UA_provinces_Dnipropetrovska : Ind Province ;
-
-fun Countries_UA_provinces_Dnipropetrovska_cities_Dniprodzerzhynsk : Ind City ;
-
-fun Countries_UA_provinces_Dnipropetrovska_cities_Dnipropetrovsk : Ind City ;
-
-fun Countries_UA_provinces_Dnipropetrovska_cities_KryvyyRih : Ind City ;
-
-fun Countries_UA_provinces_Donetska : Ind Province ;
-
-fun Countries_UA_provinces_Donetska_cities_Donetsk : Ind City ;
-
-fun Countries_UA_provinces_Donetska_cities_Horlivka : Ind City ;
-
-fun Countries_UA_provinces_Donetska_cities_Makiyivka : Ind City ;
-
-fun Countries_UA_provinces_Donetska_cities_Mariupol : Ind City ;
-
-fun Countries_UA_provinces_IvanoFrankivska : Ind Province ;
-
-fun Countries_UA_provinces_IvanoFrankivska_cities_IvanoFrankivsk : Ind City ;
-
-fun Countries_UA_provinces_Kharkivska : Ind Province ;
-
-fun Countries_UA_provinces_Kharkivska_cities_Kharkiv : Ind City ;
-
-fun Countries_UA_provinces_Khersonska : Ind Province ;
-
-fun Countries_UA_provinces_Khersonska_cities_Kherson : Ind City ;
-
-fun Countries_UA_provinces_Khmelnytska : Ind Province ;
-
-fun Countries_UA_provinces_Khmelnytska_cities_Khmelnytskyy : Ind City ;
-
-fun Countries_UA_provinces_Kirovohradska : Ind Province ;
-
-fun Countries_UA_provinces_Kirovohradska_cities_Kirovohrad : Ind City ;
-
-fun Countries_UA_provinces_Krym : Ind Province ;
-
-fun Countries_UA_provinces_Krym_cities_Sevastopol : Ind City ;
-
-fun Countries_UA_provinces_Krym_cities_Simferopol : Ind City ;
-
-fun Countries_UA_provinces_Kyyivska : Ind Province ;
-
-fun Countries_UA_provinces_Kyyivska_cities_Kiev : Ind City ;
-
-fun Countries_UA_provinces_Luhanska : Ind Province ;
-
-fun Countries_UA_provinces_Luhanska_cities_Luhansk : Ind City ;
-
-fun Countries_UA_provinces_Lvivska : Ind Province ;
-
-fun Countries_UA_provinces_Lvivska_cities_Lviv : Ind City ;
-
-fun Countries_UA_provinces_Mykolayivska : Ind Province ;
-
-fun Countries_UA_provinces_Mykolayivska_cities_Mykolayiv : Ind City ;
-
-fun Countries_UA_provinces_Odeska : Ind Province ;
-
-fun Countries_UA_provinces_Odeska_cities_Odesa : Ind City ;
-
-fun Countries_UA_provinces_Poltavska_cities_Kremenchuk : Ind City ;
-
-fun Countries_UA_provinces_Poltavska_cities_Poltava : Ind City ;
-
-fun Countries_UA_provinces_Rivnenska : Ind Province ;
-
-fun Countries_UA_provinces_Rivnenska_cities_Rivne : Ind City ;
-
-fun Countries_UA_provinces_Sumska : Ind Province ;
-
-fun Countries_UA_provinces_Sumska_cities_Sumy : Ind City ;
-
-fun Countries_UA_provinces_Ternopilska : Ind Province ;
-
-fun Countries_UA_provinces_Ternopilska_cities_Ternopil : Ind City ;
-
-fun Countries_UA_provinces_Vinnytska : Ind Province ;
-
-fun Countries_UA_provinces_Vinnytska_cities_Vinnytsya : Ind City ;
-
-fun Countries_UA_provinces_Volynska : Ind Province ;
-
-fun Countries_UA_provinces_Volynska_cities_Lutsk : Ind City ;
-
-fun Countries_UA_provinces_Zakarpatska : Ind Province ;
-
-fun Countries_UA_provinces_Zakarpatska_cities_Uzhhorod : Ind City ;
-
-fun Countries_UA_provinces_Zaporizka : Ind Province ;
-
-fun Countries_UA_provinces_Zaporizka_cities_Zaporizhzhya : Ind City ;
-
-fun Countries_UA_provinces_Zhytomyrska : Ind Province ;
-
-fun Countries_UA_provinces_Zhytomyrska_cities_Zhytomyr : Ind City ;
-
-fun Countries_USA_provinces_Alabama : Ind Province ;
-
-fun Countries_USA_provinces_Alabama_cities_Birmingham : Ind City ;
-
-fun Countries_USA_provinces_Alabama_cities_Huntsville : Ind City ;
-
-fun Countries_USA_provinces_Alabama_cities_Mobile : Ind City ;
-
-fun Countries_USA_provinces_Alabama_cities_Montgomery : Ind City ;
-
-fun Countries_USA_provinces_Alaska : Ind Province ;
-
-fun Countries_USA_provinces_Alaska_cities_Anchorage : Ind City ;
-
-fun Countries_USA_provinces_Alaska_cities_Juneau : Ind City ;
-
-fun Countries_USA_provinces_Arizona : Ind Province ;
-
-fun Countries_USA_provinces_Arizona_cities_Chandler : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Glendale : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Mesa : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Phoenix : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Scottsdale : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Tempe : Ind City ;
-
-fun Countries_USA_provinces_Arizona_cities_Tucson : Ind City ;
-
-fun Countries_USA_provinces_Arkansas : Ind Province ;
-
-fun Countries_USA_provinces_Arkansas_cities_LittleRock : Ind City ;
-
-fun Countries_USA_provinces_California : Ind Province ;
-
-fun Countries_USA_provinces_California_cities_Anaheim : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Bakersfield : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Berkeley : Ind City ;
-
-fun Countries_USA_provinces_California_cities_ChulaVista : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Concord : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Corona : Ind City ;
-
-fun Countries_USA_provinces_California_cities_CostaMesa : Ind City ;
-
-fun Countries_USA_provinces_California_cities_ElMonte : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Escondido : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Fontana : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Fremont : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Fresno : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Fullerton : Ind City ;
-
-fun Countries_USA_provinces_California_cities_GardenGrove : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Glendale : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Hayward : Ind City ;
-
-fun Countries_USA_provinces_California_cities_HuntingtonBeach : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Inglewood : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Irvine : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Lancaster : Ind City ;
-
-fun Countries_USA_provinces_California_cities_LongBeach : Ind City ;
-
-fun Countries_USA_provinces_California_cities_LosAngeles : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Modesto : Ind City ;
-
-fun Countries_USA_provinces_California_cities_MorenoValley : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Norwalk : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Oakland : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Oceanside : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Ontario : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Orange : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Oxnard : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Palmdale : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Pasadena : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Pomona : Ind City ;
-
-fun Countries_USA_provinces_California_cities_RanchoCucamonga : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Riverside : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Sacramento : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Salinas : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SanBernardino : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SanDiego : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SanFrancisco : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SanJose : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SantaAna : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SantaClarita : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SantaRosa : Ind City ;
-
-fun Countries_USA_provinces_California_cities_SimiValley : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Stockton : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Sunnyvale : Ind City ;
-
-fun Countries_USA_provinces_California_cities_ThousandOaks : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Torrance : Ind City ;
-
-fun Countries_USA_provinces_California_cities_Vallejo : Ind City ;
-
-fun Countries_USA_provinces_California_cities_WestCovina : Ind City ;
-
-fun Countries_USA_provinces_Colorado : Ind Province ;
-
-fun Countries_USA_provinces_Colorado_cities_Aurora : Ind City ;
-
-fun Countries_USA_provinces_Colorado_cities_ColoradoSprings : Ind City ;
-
-fun Countries_USA_provinces_Colorado_cities_Denver : Ind City ;
-
-fun Countries_USA_provinces_Colorado_cities_FortCollins : Ind City ;
-
-fun Countries_USA_provinces_Colorado_cities_Lakewood : Ind City ;
-
-fun Countries_USA_provinces_Connecticut : Ind Province ;
-
-fun Countries_USA_provinces_Connecticut_cities_Bridgeport : Ind City ;
-
-fun Countries_USA_provinces_Connecticut_cities_Hartford : Ind City ;
-
-fun Countries_USA_provinces_Connecticut_cities_NewHaven : Ind City ;
-
-fun Countries_USA_provinces_Connecticut_cities_Stamford : Ind City ;
-
-fun Countries_USA_provinces_Connecticut_cities_Waterbury : Ind City ;
-
-fun Countries_USA_provinces_Delaware : Ind Province ;
-
-fun Countries_USA_provinces_Delaware_cities_Dover : Ind City ;
-
-fun Countries_USA_provinces_Distr_Columbia : Ind Province ;
-
-fun Countries_USA_provinces_Distr_Columbia_cities_Washington : Ind City ;
-
-fun Countries_USA_provinces_Florida : Ind Province ;
-
-fun Countries_USA_provinces_Florida_cities_Clearwater : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_CoralSprings : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_FortLauderdale : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Hialeah : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Hollywood : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Jacksonville : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Miami : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Orlando : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_PembrokePines : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_St_Petersburg : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Tallahassee : Ind City ;
-
-fun Countries_USA_provinces_Florida_cities_Tampa : Ind City ;
-
-fun Countries_USA_provinces_Georgia : Ind Province ;
-
-fun Countries_USA_provinces_Georgia_cities_Atlanta : Ind City ;
-
-fun Countries_USA_provinces_Georgia_cities_Columbus : Ind City ;
-
-fun Countries_USA_provinces_Georgia_cities_Macon : Ind City ;
-
-fun Countries_USA_provinces_Georgia_cities_Savannah : Ind City ;
-
-fun Countries_USA_provinces_Hawaii : Ind Province ;
-
-fun Countries_USA_provinces_Hawaii_cities_Hilo : Ind City ;
-
-fun Countries_USA_provinces_Hawaii_cities_Honolulu : Ind City ;
-
-fun Countries_USA_provinces_Idaho : Ind Province ;
-
-fun Countries_USA_provinces_Idaho_cities_Boise : Ind City ;
-
-fun Countries_USA_provinces_Illinois : Ind Province ;
-
-fun Countries_USA_provinces_Illinois_cities_Aurora : Ind City ;
-
-fun Countries_USA_provinces_Illinois_cities_Chicago : Ind City ;
-
-fun Countries_USA_provinces_Illinois_cities_Naperville : Ind City ;
-
-fun Countries_USA_provinces_Illinois_cities_Peoria : Ind City ;
-
-fun Countries_USA_provinces_Illinois_cities_Rockford : Ind City ;
-
-fun Countries_USA_provinces_Illinois_cities_Springfield : Ind City ;
-
-fun Countries_USA_provinces_Indiana : Ind Province ;
-
-fun Countries_USA_provinces_Indiana_cities_Evansville : Ind City ;
-
-fun Countries_USA_provinces_Indiana_cities_FortWayne : Ind City ;
-
-fun Countries_USA_provinces_Indiana_cities_Gary : Ind City ;
-
-fun Countries_USA_provinces_Indiana_cities_Indianapolis : Ind City ;
-
-fun Countries_USA_provinces_Indiana_cities_SouthBend : Ind City ;
-
-fun Countries_USA_provinces_Iowa : Ind Province ;
-
-fun Countries_USA_provinces_Iowa_cities_CedarRapids : Ind City ;
-
-fun Countries_USA_provinces_Iowa_cities_DesMoines : Ind City ;
-
-fun Countries_USA_provinces_Kansas : Ind Province ;
-
-fun Countries_USA_provinces_Kansas_cities_KansasCity : Ind City ;
-
-fun Countries_USA_provinces_Kansas_cities_OverlandPark : Ind City ;
-
-fun Countries_USA_provinces_Kansas_cities_Topeka : Ind City ;
-
-fun Countries_USA_provinces_Kansas_cities_Wichita : Ind City ;
-
-fun Countries_USA_provinces_Kentucky : Ind Province ;
-
-fun Countries_USA_provinces_Kentucky_cities_Frankfort : Ind City ;
-
-fun Countries_USA_provinces_Kentucky_cities_LexingtonFayette : Ind City ;
-
-fun Countries_USA_provinces_Kentucky_cities_Louisville : Ind City ;
-
-fun Countries_USA_provinces_Louisiana : Ind Province ;
-
-fun Countries_USA_provinces_Louisiana_cities_BatonRouge : Ind City ;
-
-fun Countries_USA_provinces_Louisiana_cities_Lafayette : Ind City ;
-
-fun Countries_USA_provinces_Louisiana_cities_NewOrleans : Ind City ;
-
-fun Countries_USA_provinces_Louisiana_cities_Shreveport : Ind City ;
-
-fun Countries_USA_provinces_Maine : Ind Province ;
-
-fun Countries_USA_provinces_Maine_cities_Augusta : Ind City ;
-
-fun Countries_USA_provinces_Maryland : Ind Province ;
-
-fun Countries_USA_provinces_Maryland_cities_Annapolis : Ind City ;
-
-fun Countries_USA_provinces_Maryland_cities_Baltimore : Ind City ;
-
-fun Countries_USA_provinces_Massachusetts : Ind Province ;
-
-fun Countries_USA_provinces_Massachusetts_cities_Boston : Ind City ;
-
-fun Countries_USA_provinces_Massachusetts_cities_Lowell : Ind City ;
-
-fun Countries_USA_provinces_Massachusetts_cities_Springfield : Ind City ;
-
-fun Countries_USA_provinces_Massachusetts_cities_Worcester : Ind City ;
-
-fun Countries_USA_provinces_Michigan : Ind Province ;
-
-fun Countries_USA_provinces_Michigan_cities_AnnArbor : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_Detroit : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_Flint : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_GrandRapids : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_Lansing : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_Livonia : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_SterlingHeights : Ind City ;
-
-fun Countries_USA_provinces_Michigan_cities_Warren : Ind City ;
-
-fun Countries_USA_provinces_Minnesota : Ind Province ;
-
-fun Countries_USA_provinces_Minnesota_cities_Minneapolis : Ind City ;
-
-fun Countries_USA_provinces_Minnesota_cities_St_Paul : Ind City ;
-
-fun Countries_USA_provinces_Mississippi : Ind Province ;
-
-fun Countries_USA_provinces_Mississippi_cities_Jackson : Ind City ;
-
-fun Countries_USA_provinces_Missouri : Ind Province ;
-
-fun Countries_USA_provinces_Missouri_cities_Independence : Ind City ;
-
-fun Countries_USA_provinces_Missouri_cities_JeffersonCity : Ind City ;
-
-fun Countries_USA_provinces_Missouri_cities_KansasCity : Ind City ;
-
-fun Countries_USA_provinces_Missouri_cities_Springfield : Ind City ;
-
-fun Countries_USA_provinces_Missouri_cities_St_Louis : Ind City ;
-
-fun Countries_USA_provinces_Montana : Ind Province ;
-
-fun Countries_USA_provinces_Montana_cities_Helena : Ind City ;
-
-fun Countries_USA_provinces_Nebraska : Ind Province ;
-
-fun Countries_USA_provinces_Nebraska_cities_Lincoln : Ind City ;
-
-fun Countries_USA_provinces_Nebraska_cities_Omaha : Ind City ;
-
-fun Countries_USA_provinces_Nevada : Ind Province ;
-
-fun Countries_USA_provinces_Nevada_cities_CarsonCity : Ind City ;
-
-fun Countries_USA_provinces_Nevada_cities_Henderson : Ind City ;
-
-fun Countries_USA_provinces_Nevada_cities_LasVegas : Ind City ;
-
-fun Countries_USA_provinces_Nevada_cities_Reno : Ind City ;
-
-fun Countries_USA_provinces_NewHampshire : Ind Province ;
-
-fun Countries_USA_provinces_NewHampshire_cities_Concord : Ind City ;
-
-fun Countries_USA_provinces_NewHampshire_cities_Manchester : Ind City ;
-
-fun Countries_USA_provinces_NewJersey : Ind Province ;
-
-fun Countries_USA_provinces_NewJersey_cities_Elizabeth : Ind City ;
-
-fun Countries_USA_provinces_NewJersey_cities_JerseyCity : Ind City ;
-
-fun Countries_USA_provinces_NewJersey_cities_Newark : Ind City ;
-
-fun Countries_USA_provinces_NewJersey_cities_Paterson : Ind City ;
-
-fun Countries_USA_provinces_NewJersey_cities_Trenton : Ind City ;
-
-fun Countries_USA_provinces_NewMexico : Ind Province ;
-
-fun Countries_USA_provinces_NewMexico_cities_Albuquerque : Ind City ;
-
-fun Countries_USA_provinces_NewMexico_cities_SantaFe : Ind City ;
-
-fun Countries_USA_provinces_NewYork : Ind Province ;
-
-fun Countries_USA_provinces_NewYork_cities_Albany : Ind City ;
-
-fun Countries_USA_provinces_NewYork_cities_Buffalo : Ind City ;
-
-fun Countries_USA_provinces_NewYork_cities_NewYork : Ind City ;
-
-fun Countries_USA_provinces_NewYork_cities_Rochester : Ind City ;
-
-fun Countries_USA_provinces_NewYork_cities_Syracuse : Ind City ;
-
-fun Countries_USA_provinces_NewYork_cities_Yonkers : Ind City ;
-
-fun Countries_USA_provinces_NorthCarolina : Ind Province ;
-
-fun Countries_USA_provinces_NorthCarolina_cities_Charlotte : Ind City ;
-
-fun Countries_USA_provinces_NorthCarolina_cities_Durham : Ind City ;
-
-fun Countries_USA_provinces_NorthCarolina_cities_Greensboro : Ind City ;
-
-fun Countries_USA_provinces_NorthCarolina_cities_Raleigh : Ind City ;
-
-fun Countries_USA_provinces_NorthCarolina_cities_WinstonSalem : Ind City ;
-
-fun Countries_USA_provinces_NorthDakota : Ind Province ;
-
-fun Countries_USA_provinces_NorthDakota_cities_Bismarck : Ind City ;
-
-fun Countries_USA_provinces_Ohio : Ind Province ;
-
-fun Countries_USA_provinces_Ohio_cities_Akron : Ind City ;
-
-fun Countries_USA_provinces_Ohio_cities_Cincinnati : Ind City ;
-
-fun Countries_USA_provinces_Ohio_cities_Cleveland : Ind City ;
-
-fun Countries_USA_provinces_Ohio_cities_Columbus : Ind City ;
-
-fun Countries_USA_provinces_Ohio_cities_Dayton : Ind City ;
-
-fun Countries_USA_provinces_Ohio_cities_Toledo : Ind City ;
-
-fun Countries_USA_provinces_Oklahoma : Ind Province ;
-
-fun Countries_USA_provinces_Oklahoma_cities_OklahomaCity : Ind City ;
-
-fun Countries_USA_provinces_Oklahoma_cities_Tulsa : Ind City ;
-
-fun Countries_USA_provinces_Oregon : Ind Province ;
-
-fun Countries_USA_provinces_Oregon_cities_Eugene : Ind City ;
-
-fun Countries_USA_provinces_Oregon_cities_Portland : Ind City ;
-
-fun Countries_USA_provinces_Oregon_cities_Salem : Ind City ;
-
-fun Countries_USA_provinces_Pennsylvania : Ind Province ;
-
-fun Countries_USA_provinces_Pennsylvania_cities_Allentown : Ind City ;
-
-fun Countries_USA_provinces_Pennsylvania_cities_Erie : Ind City ;
-
-fun Countries_USA_provinces_Pennsylvania_cities_Harrisburg : Ind City ;
-
-fun Countries_USA_provinces_Pennsylvania_cities_Philadelphia : Ind City ;
-
-fun Countries_USA_provinces_Pennsylvania_cities_Pittsburgh : Ind City ;
-
-fun Countries_USA_provinces_RhodeIsland : Ind Province ;
-
-fun Countries_USA_provinces_RhodeIsland_cities_Providence : Ind City ;
-
-fun Countries_USA_provinces_SouthCarolina : Ind Province ;
-
-fun Countries_USA_provinces_SouthCarolina_cities_Columbia : Ind City ;
-
-fun Countries_USA_provinces_SouthDakota : Ind Province ;
-
-fun Countries_USA_provinces_SouthDakota_cities_Pierre : Ind City ;
-
-fun Countries_USA_provinces_SouthDakota_cities_SiouxFalls : Ind City ;
-
-fun Countries_USA_provinces_Tennessee : Ind Province ;
-
-fun Countries_USA_provinces_Tennessee_cities_Chattanooga : Ind City ;
-
-fun Countries_USA_provinces_Tennessee_cities_Knoxville : Ind City ;
-
-fun Countries_USA_provinces_Tennessee_cities_Memphis : Ind City ;
-
-fun Countries_USA_provinces_Tennessee_cities_Nashville : Ind City ;
-
-fun Countries_USA_provinces_Tennessee_cities_NashvilleDavidson : Ind City ;
-
-fun Countries_USA_provinces_Texas : Ind Province ;
-
-fun Countries_USA_provinces_Texas_cities_Abilene : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Amarillo : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Arlington : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Austin : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Beaumont : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Brownsville : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_CorpusChristi : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Dallas : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_ElPaso : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_FortWorth : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Garland : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_GrandPrairie : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Houston : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Irving : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Laredo : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Lubbock : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_McAllen : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Mesquite : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Pasadena : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Plano : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_SanAntonio : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_Waco : Ind City ;
-
-fun Countries_USA_provinces_Texas_cities_WichitaFalls : Ind City ;
-
-fun Countries_USA_provinces_Utah : Ind Province ;
-
-fun Countries_USA_provinces_Utah_cities_SaltLakeCity : Ind City ;
-
-fun Countries_USA_provinces_Vermont : Ind Province ;
-
-fun Countries_USA_provinces_Vermont_cities_Montpelier : Ind City ;
-
-fun Countries_USA_provinces_Virginia : Ind Province ;
-
-fun Countries_USA_provinces_Virginia_cities_Alexandria : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Arlington : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Chesapeake : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Hampton : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_NewportNews : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Norfolk : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Portsmouth : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_Richmond : Ind City ;
-
-fun Countries_USA_provinces_Virginia_cities_VirginiaBeach : Ind City ;
-
-fun Countries_USA_provinces_Washington : Ind Province ;
-
-fun Countries_USA_provinces_Washington_cities_Olympia : Ind City ;
-
-fun Countries_USA_provinces_Washington_cities_Seattle : Ind City ;
-
-fun Countries_USA_provinces_Washington_cities_Spokane : Ind City ;
-
-fun Countries_USA_provinces_Washington_cities_Tacoma : Ind City ;
-
-fun Countries_USA_provinces_WestVirginia : Ind Province ;
-
-fun Countries_USA_provinces_WestVirginia_cities_Charleston : Ind City ;
-
-fun Countries_USA_provinces_Wisconsin : Ind Province ;
-
-fun Countries_USA_provinces_Wisconsin_cities_GreenBay : Ind City ;
-
-fun Countries_USA_provinces_Wisconsin_cities_Madison : Ind City ;
-
-fun Countries_USA_provinces_Wisconsin_cities_Milwaukee : Ind City ;
-
-fun Countries_USA_provinces_Wyoming : Ind Province ;
-
-fun Countries_USA_provinces_Wyoming_cities_Cheyenne : Ind City ;
-
-fun Countries_UZB_provinces_Andijon : Ind Province ;
-
-fun Countries_UZB_provinces_Andijon_cities_Andijon : Ind City ;
-
-fun Countries_UZB_provinces_Bukhoro : Ind Province ;
-
-fun Countries_UZB_provinces_Bukhoro_cities_Bukhoro : Ind City ;
-
-fun Countries_UZB_provinces_Farghona : Ind Province ;
-
-fun Countries_UZB_provinces_Farghona_cities_Farghona : Ind City ;
-
-fun Countries_UZB_provinces_Farghona_cities_Marghilon : Ind City ;
-
-fun Countries_UZB_provinces_Farghona_cities_Quqon : Ind City ;
-
-fun Countries_UZB_provinces_Jizzakh : Ind Province ;
-
-fun Countries_UZB_provinces_Jizzakh_cities_Jizzakh : Ind City ;
-
-fun Countries_UZB_provinces_Khorazm : Ind Province ;
-
-fun Countries_UZB_provinces_Khorazm_cities_Urganch : Ind City ;
-
-fun Countries_UZB_provinces_Namangan : Ind Province ;
-
-fun Countries_UZB_provinces_Namangan_cities_Namangan : Ind City ;
-
-fun Countries_UZB_provinces_Nawoiy : Ind Province ;
-
-fun Countries_UZB_provinces_Nawoiy_cities_Nawoiy : Ind City ;
-
-fun Countries_UZB_provinces_Qasqadare : Ind Province ;
-
-fun Countries_UZB_provinces_Qasqadare_cities_Qarshi : Ind City ;
-
-fun Countries_UZB_provinces_Qoraqalpoghiston : Ind Province ;
-
-fun Countries_UZB_provinces_Qoraqalpoghiston_cities_Nukus : Ind City ;
-
-fun Countries_UZB_provinces_Samarqand : Ind Province ;
-
-fun Countries_UZB_provinces_Samarqand_cities_Samarqand : Ind City ;
-
-fun Countries_UZB_provinces_Sirdare : Ind Province ;
-
-fun Countries_UZB_provinces_Sirdare_cities_Guliston : Ind City ;
-
-fun Countries_UZB_provinces_Surkhondare : Ind Province ;
-
-fun Countries_UZB_provinces_Surkhondare_cities_Termiz : Ind City ;
-
-fun Countries_UZB_provinces_Toshkent : Ind Province ;
-
-fun Countries_UZB_provinces_Toshkent_cities_Angren : Ind City ;
-
-fun Countries_UZB_provinces_Toshkent_cities_Chirchiq : Ind City ;
-
-fun Countries_UZB_provinces_Toshkent_cities_Olmaliq : Ind City ;
-
-fun Countries_UZB_provinces_Toshkent_cities_Tashkent : Ind City ;
-
-fun Countries_VN_cities_CamPha : Ind City ;
-
-fun Countries_VN_cities_CanTho : Ind City ;
-
-fun Countries_VN_cities_DaNang : Ind City ;
-
-fun Countries_VN_cities_Haiphong : Ind City ;
-
-fun Countries_VN_cities_Hanoi : Ind City ;
-
-fun Countries_VN_cities_HongGai : Ind City ;
-
-fun Countries_VN_cities_Hue : Ind City ;
-
-fun Countries_VN_cities_LongXuyen : Ind City ;
-
-fun Countries_VN_cities_NamDinh : Ind City ;
-
-fun Countries_VN_cities_NhaTrang : Ind City ;
-
-fun Countries_VN_cities_QuiNhon : Ind City ;
-
-fun Countries_VN_cities_Saigon : Ind City ;
-
-fun Countries_VN_cities_ThaiNguyen : Ind City ;
-
-fun Countries_VN_cities_VietTri : Ind City ;
-
-fun Countries_VN_cities_VungTau : Ind City ;
-
-fun Countries_VN_provinces_AnGiang : Ind Province ;
-
-fun Countries_VN_provinces_BaRiaVungTau : Ind Province ;
-
-fun Countries_VN_provinces_BacThai : Ind Province ;
-
-fun Countries_VN_provinces_BenTre : Ind Province ;
-
-fun Countries_VN_provinces_BinhDinh : Ind Province ;
-
-fun Countries_VN_provinces_BinhThuan : Ind Province ;
-
-fun Countries_VN_provinces_CanTho : Ind Province ;
-
-fun Countries_VN_provinces_CaoBang : Ind Province ;
-
-fun Countries_VN_provinces_CentralHighlands : Ind Province ;
-
-fun Countries_VN_provinces_DacLac : Ind Province ;
-
-fun Countries_VN_provinces_DongNai : Ind Province ;
-
-fun Countries_VN_provinces_DongThap : Ind Province ;
-
-fun Countries_VN_provinces_GiaLai : Ind Province ;
-
-fun Countries_VN_provinces_HaBac : Ind Province ;
-
-fun Countries_VN_provinces_HaGiang : Ind Province ;
-
-fun Countries_VN_provinces_HaTay : Ind Province ;
-
-fun Countries_VN_provinces_HaTinh : Ind Province ;
-
-fun Countries_VN_provinces_HaiHung : Ind Province ;
-
-fun Countries_VN_provinces_Haiphong : Ind Province ;
-
-fun Countries_VN_provinces_Hanoi : Ind Province ;
-
-fun Countries_VN_provinces_HoChiMinhCity : Ind Province ;
-
-fun Countries_VN_provinces_HoaBinh : Ind Province ;
-
-fun Countries_VN_provinces_KhanhHoa : Ind Province ;
-
-fun Countries_VN_provinces_KienGiang : Ind Province ;
-
-fun Countries_VN_provinces_KonTum : Ind Province ;
-
-fun Countries_VN_provinces_LaiChau : Ind Province ;
-
-fun Countries_VN_provinces_LamDong : Ind Province ;
-
-fun Countries_VN_provinces_LangSon : Ind Province ;
-
-fun Countries_VN_provinces_LaoCai : Ind Province ;
-
-fun Countries_VN_provinces_LongAn : Ind Province ;
-
-fun Countries_VN_provinces_MekongRiverDelta : Ind Province ;
-
-fun Countries_VN_provinces_MinhHai : Ind Province ;
-
-fun Countries_VN_provinces_NamHa : Ind Province ;
-
-fun Countries_VN_provinces_NgheAn : Ind Province ;
-
-fun Countries_VN_provinces_NinhBinh : Ind Province ;
-
-fun Countries_VN_provinces_NinhThuan : Ind Province ;
-
-fun Countries_VN_provinces_NorthCentralCoast : Ind Province ;
-
-fun Countries_VN_provinces_NorthEastSouth : Ind Province ;
-
-fun Countries_VN_provinces_NorthMountainandMidlands : Ind Province ;
-
-fun Countries_VN_provinces_PhuYen : Ind Province ;
-
-fun Countries_VN_provinces_QuangBinh : Ind Province ;
-
-fun Countries_VN_provinces_QuangNamDaNang : Ind Province ;
-
-fun Countries_VN_provinces_QuangNgai : Ind Province ;
-
-fun Countries_VN_provinces_QuangNinh : Ind Province ;
-
-fun Countries_VN_provinces_QuangTri : Ind Province ;
-
-fun Countries_VN_provinces_RedRiverDelta : Ind Province ;
-
-fun Countries_VN_provinces_SocTrang : Ind Province ;
-
-fun Countries_VN_provinces_SonLa : Ind Province ;
-
-fun Countries_VN_provinces_SongBe : Ind Province ;
-
-fun Countries_VN_provinces_SouthCentralCoast : Ind Province ;
-
-fun Countries_VN_provinces_TayNinh : Ind Province ;
-
-fun Countries_VN_provinces_ThaiBinh : Ind Province ;
-
-fun Countries_VN_provinces_ThanhHoa : Ind Province ;
-
-fun Countries_VN_provinces_ThuaThienHue : Ind Province ;
-
-fun Countries_VN_provinces_TienGiang : Ind Province ;
-
-fun Countries_VN_provinces_TraVinh : Ind Province ;
-
-fun Countries_VN_provinces_TuyenQuang : Ind Province ;
-
-fun Countries_VN_provinces_VinhLong : Ind Province ;
-
-fun Countries_VN_provinces_VinhPhu : Ind Province ;
-
-fun Countries_VN_provinces_YenBai : Ind Province ;
-
-fun Countries_VU_cities_Port_Vila : Ind City ;
-
-fun Countries_V_cities_VaticanCity : Ind City ;
-
-fun Countries_WAG_cities_Banjul : Ind City ;
-
-fun Countries_WAL_cities_Freetown : Ind City ;
-
-fun Countries_WAN_cities_Aarri : Ind City ;
-
-fun Countries_WAN_cities_Aba : Ind City ;
-
-fun Countries_WAN_cities_Abeokuta : Ind City ;
-
-fun Countries_WAN_cities_Abuja : Ind City ;
-
-fun Countries_WAN_cities_AdoEkiti : Ind City ;
-
-fun Countries_WAN_cities_Akure : Ind City ;
-
-fun Countries_WAN_cities_BeninCity : Ind City ;
-
-fun Countries_WAN_cities_Bida : Ind City ;
-
-fun Countries_WAN_cities_Calabar : Ind City ;
-
-fun Countries_WAN_cities_DebaHabe : Ind City ;
-
-fun Countries_WAN_cities_Ede : Ind City ;
-
-fun Countries_WAN_cities_EffonAlaiye : Ind City ;
-
-fun Countries_WAN_cities_Enugu : Ind City ;
-
-fun Countries_WAN_cities_Gusau : Ind City ;
-
-fun Countries_WAN_cities_Ibadan : Ind City ;
-
-fun Countries_WAN_cities_Ife : Ind City ;
-
-fun Countries_WAN_cities_IjebuOde : Ind City ;
-
-fun Countries_WAN_cities_Ikare : Ind City ;
-
-fun Countries_WAN_cities_Ikerre : Ind City ;
-
-fun Countries_WAN_cities_Ikire : Ind City ;
-
-fun Countries_WAN_cities_Ikirun : Ind City ;
-
-fun Countries_WAN_cities_Ikorodu : Ind City ;
-
-fun Countries_WAN_cities_Ila : Ind City ;
-
-fun Countries_WAN_cities_IlaweEkiti : Ind City ;
-
-fun Countries_WAN_cities_Ilesha : Ind City ;
-
-fun Countries_WAN_cities_Ilobu : Ind City ;
-
-fun Countries_WAN_cities_Ilorin : Ind City ;
-
-fun Countries_WAN_cities_Inisa : Ind City ;
-
-fun Countries_WAN_cities_Iseyin : Ind City ;
-
-fun Countries_WAN_cities_Iwo : Ind City ;
-
-fun Countries_WAN_cities_Jos : Ind City ;
-
-fun Countries_WAN_cities_Kaduna : Ind City ;
-
-fun Countries_WAN_cities_Kano : Ind City ;
-
-fun Countries_WAN_cities_Katsina : Ind City ;
-
-fun Countries_WAN_cities_Kumo : Ind City ;
-
-fun Countries_WAN_cities_Lafia : Ind City ;
-
-fun Countries_WAN_cities_Lagos : Ind City ;
-
-fun Countries_WAN_cities_Maiduguri : Ind City ;
-
-fun Countries_WAN_cities_Makurdi : Ind City ;
-
-fun Countries_WAN_cities_Minna : Ind City ;
-
-fun Countries_WAN_cities_Mushin : Ind City ;
-
-fun Countries_WAN_cities_Offa : Ind City ;
-
-fun Countries_WAN_cities_Ogbomosho : Ind City ;
-
-fun Countries_WAN_cities_Oka : Ind City ;
-
-fun Countries_WAN_cities_Ondo : Ind City ;
-
-fun Countries_WAN_cities_Onitsha : Ind City ;
-
-fun Countries_WAN_cities_Oshogbo : Ind City ;
-
-fun Countries_WAN_cities_Owo : Ind City ;
-
-fun Countries_WAN_cities_Oyo : Ind City ;
-
-fun Countries_WAN_cities_PortHarcourt : Ind City ;
-
-fun Countries_WAN_cities_Sapele : Ind City ;
-
-fun Countries_WAN_cities_Shagamu : Ind City ;
-
-fun Countries_WAN_cities_Shaki : Ind City ;
-
-fun Countries_WAN_cities_Shomolu : Ind City ;
-
-fun Countries_WAN_cities_Sokoto : Ind City ;
-
-fun Countries_WAN_cities_Zaria : Ind City ;
-
-fun Countries_WD_cities_Roseau : Ind City ;
-
-fun Countries_WG_cities_SaintGeorges : Ind City ;
-
-fun Countries_WL_cities_Castries : Ind City ;
-
-fun Countries_WSA_cities_ElAlaiun : Ind City ;
-
-fun Countries_WS_cities_Apia : Ind City ;
-
-fun Countries_WV_cities_Kingstown : Ind City ;
-
-fun Countries_YE_cities_Sanaa : Ind City ;
-
-fun Countries_YU_cities_Belgrade : Ind City ;
-
-fun Countries_YV_cities_SantaAnadeCoro : Ind City ;
-
-fun Countries_YV_cities_Turmero : Ind City ;
-
-fun Countries_YV_provinces_Amazonas : Ind Province ;
-
-fun Countries_YV_provinces_Amazonas_cities_PuertoAyacucho : Ind City ;
-
-fun Countries_YV_provinces_Anzoategui : Ind Province ;
-
-fun Countries_YV_provinces_Anzoategui_cities_Barcelona : Ind City ;
-
-fun Countries_YV_provinces_Anzoategui_cities_PuertoLaCruz : Ind City ;
-
-fun Countries_YV_provinces_Apure : Ind Province ;
-
-fun Countries_YV_provinces_Apure_cities_SanFernando : Ind City ;
-
-fun Countries_YV_provinces_Aragua : Ind Province ;
-
-fun Countries_YV_provinces_Aragua_cities_Maracay : Ind City ;
-
-fun Countries_YV_provinces_Barinas : Ind Province ;
-
-fun Countries_YV_provinces_Barinas_cities_Barinas : Ind City ;
-
-fun Countries_YV_provinces_Bolivar : Ind Province ;
-
-fun Countries_YV_provinces_Bolivar_cities_CiudadBolivar : Ind City ;
-
-fun Countries_YV_provinces_Bolivar_cities_CiudadGuayana : Ind City ;
-
-fun Countries_YV_provinces_Carabobo : Ind Province ;
-
-fun Countries_YV_provinces_Carabobo_cities_Guacara : Ind City ;
-
-fun Countries_YV_provinces_Carabobo_cities_PuertoCabello : Ind City ;
-
-fun Countries_YV_provinces_Carabobo_cities_Valencia : Ind City ;
-
-fun Countries_YV_provinces_Cojedes : Ind Province ;
-
-fun Countries_YV_provinces_Cojedes_cities_SanCarlos : Ind City ;
-
-fun Countries_YV_provinces_DeltaAmacuro : Ind Province ;
-
-fun Countries_YV_provinces_DeltaAmacuro_cities_Tucupita : Ind City ;
-
-fun Countries_YV_provinces_DistritoFederal : Ind Province ;
-
-fun Countries_YV_provinces_DistritoFederal_cities_Caracas : Ind City ;
-
-fun Countries_YV_provinces_DistritoFederal_cities_CatiaLaMar : Ind City ;
-
-fun Countries_YV_provinces_Falcon : Ind Province ;
-
-fun Countries_YV_provinces_Falcon_cities_Coro : Ind City ;
-
-fun Countries_YV_provinces_Guarico : Ind Province ;
-
-fun Countries_YV_provinces_Guarico_cities_SanJuan : Ind City ;
-
-fun Countries_YV_provinces_Lara : Ind Province ;
-
-fun Countries_YV_provinces_Lara_cities_Barquisimeto : Ind City ;
-
-fun Countries_YV_provinces_Merida : Ind Province ;
-
-fun Countries_YV_provinces_Merida_cities_Merida : Ind City ;
-
-fun Countries_YV_provinces_Miranda : Ind Province ;
-
-fun Countries_YV_provinces_Miranda_cities_Baruta : Ind City ;
-
-fun Countries_YV_provinces_Miranda_cities_Guarenas : Ind City ;
-
-fun Countries_YV_provinces_Miranda_cities_LosTeques : Ind City ;
-
-fun Countries_YV_provinces_Miranda_cities_Petare : Ind City ;
-
-fun Countries_YV_provinces_Monagas : Ind Province ;
-
-fun Countries_YV_provinces_Monagas_cities_Maturin : Ind City ;
-
-fun Countries_YV_provinces_NuevaEsparta : Ind Province ;
-
-fun Countries_YV_provinces_NuevaEsparta_cities_LaAscuncion : Ind City ;
-
-fun Countries_YV_provinces_Portuguesa : Ind Province ;
-
-fun Countries_YV_provinces_Portuguesa_cities_Acarigua : Ind City ;
-
-fun Countries_YV_provinces_Portuguesa_cities_Guanare : Ind City ;
-
-fun Countries_YV_provinces_Sucre : Ind Province ;
-
-fun Countries_YV_provinces_Sucre_cities_Cumana : Ind City ;
-
-fun Countries_YV_provinces_Tachira : Ind Province ;
-
-fun Countries_YV_provinces_Tachira_cities_SanCristobal : Ind City ;
-
-fun Countries_YV_provinces_Trujillo : Ind Province ;
-
-fun Countries_YV_provinces_Trujillo_cities_Trujillo : Ind City ;
-
-fun Countries_YV_provinces_Yaracuy : Ind Province ;
-
-fun Countries_YV_provinces_Yaracuy_cities_SanFelipe : Ind City ;
-
-fun Countries_YV_provinces_Zulia : Ind Province ;
-
-fun Countries_YV_provinces_Zulia_cities_Cabimas : Ind City ;
-
-fun Countries_YV_provinces_Zulia_cities_Maracaibo : Ind City ;
-
-fun Countries_ZRE_provinces_Bandundu : Ind Province ;
-
-fun Countries_ZRE_provinces_Bandundu_cities_Bandundu : Ind City ;
-
-fun Countries_ZRE_provinces_Bandundu_cities_Kikwit : Ind City ;
-
-fun Countries_ZRE_provinces_BasZaire : Ind Province ;
-
-fun Countries_ZRE_provinces_BasZaire_cities_Boma : Ind City ;
-
-fun Countries_ZRE_provinces_BasZaire_cities_Matadi : Ind City ;
-
-fun Countries_ZRE_provinces_Equateur : Ind Province ;
-
-fun Countries_ZRE_provinces_Equateur_cities_Mbandaka : Ind City ;
-
-fun Countries_ZRE_provinces_HautZaire : Ind Province ;
-
-fun Countries_ZRE_provinces_HautZaire_cities_Kisangani : Ind City ;
-
-fun Countries_ZRE_provinces_KasaiOccidental : Ind Province ;
-
-fun Countries_ZRE_provinces_KasaiOccidental_cities_Kananga : Ind City ;
-
-fun Countries_ZRE_provinces_KasaiOccidental_cities_Tshikapa : Ind City ;
-
-fun Countries_ZRE_provinces_KasaiOriental : Ind Province ;
-
-fun Countries_ZRE_provinces_KasaiOriental_cities_Kalemi : Ind City ;
-
-fun Countries_ZRE_provinces_KasaiOriental_cities_MbujiMayi : Ind City ;
-
-fun Countries_ZRE_provinces_KasaiOriental_cities_MweneDitu : Ind City ;
-
-fun Countries_ZRE_provinces_Kinshasa : Ind Province ;
-
-fun Countries_ZRE_provinces_Kinshasa_cities_Kinshasa : Ind City ;
-
-fun Countries_ZRE_provinces_Kivu : Ind Province ;
-
-fun Countries_ZRE_provinces_Kivu_cities_Bukavu : Ind City ;
-
-fun Countries_ZRE_provinces_Kivu_cities_Butembo : Ind City ;
-
-fun Countries_ZRE_provinces_Kivu_cities_Goma : Ind City ;
-
-fun Countries_ZRE_provinces_Kivu_cities_Uvira : Ind City ;
-
-fun Countries_ZRE_provinces_Shaba : Ind Province ;
-
-fun Countries_ZRE_provinces_Shaba_cities_Kolwezi : Ind City ;
-
-fun Countries_ZRE_provinces_Shaba_cities_Likasi : Ind City ;
-
-fun Countries_ZRE_provinces_Shaba_cities_Lubumbashi : Ind City ;
-
-fun Countries_ZW_cities_Harare : Ind City ;
-
-fun Countries_Z_provinces_Central : Ind Province ;
-
-fun Countries_Z_provinces_Central_cities_Kabwe : Ind City ;
-
-fun Countries_Z_provinces_Copperbelt : Ind Province ;
-
-fun Countries_Z_provinces_Copperbelt_cities_Chingola : Ind City ;
-
-fun Countries_Z_provinces_Copperbelt_cities_Kitwe : Ind City ;
-
-fun Countries_Z_provinces_Copperbelt_cities_Luanshya : Ind City ;
-
-fun Countries_Z_provinces_Copperbelt_cities_Mufulira : Ind City ;
-
-fun Countries_Z_provinces_Copperbelt_cities_Ndola : Ind City ;
-
-fun Countries_Z_provinces_Eastern : Ind Province ;
-
-fun Countries_Z_provinces_Eastern_cities_Chipata : Ind City ;
-
-fun Countries_Z_provinces_Luapula : Ind Province ;
-
-fun Countries_Z_provinces_Luapula_cities_Mansa : Ind City ;
-
-fun Countries_Z_provinces_Lusaka : Ind Province ;
-
-fun Countries_Z_provinces_Lusaka_cities_Lusaka : Ind City ;
-
-fun Countries_Z_provinces_Northern : Ind Province ;
-
-fun Countries_Z_provinces_Northern_cities_Kasama : Ind City ;
-
-fun Countries_Z_provinces_Northwestern : Ind Province ;
-
-fun Countries_Z_provinces_Northwestern_cities_Solwezi : Ind City ;
-
-fun Countries_Z_provinces_Southern : Ind Province ;
-
-fun Countries_Z_provinces_Southern_cities_Livingstone : Ind City ;
-
-fun Countries_Z_provinces_Western : Ind Province ;
-
-fun Countries_Z_provinces_Western_cities_Mongu : Ind City ;
-
-fun Countries_cid_cia_American_Samoa : Ind Country ;
-
-fun Countries_cid_cia_American_Samoa_cities_PagoPago : Ind City ;
-
-fun Countries_cid_cia_Anguilla : Ind Country ;
-
-fun Countries_cid_cia_Anguilla_cities_TheValley : Ind City ;
-
-fun Countries_cid_cia_Aruba : Ind Country ;
-
-fun Countries_cid_cia_Aruba_cities_Oranjestad : Ind City ;
-
-fun Countries_cid_cia_Ashmore_and_Cartier_Islands : Ind Country ;
-
-fun Countries_cid_cia_Baker_Island : Ind Country ;
-
-fun Countries_cid_cia_Bassas_da_India : Ind Country ;
-
-fun Countries_cid_cia_Bermuda : Ind Country ;
-
-fun Countries_cid_cia_Bermuda_cities_Hamilton : Ind City ;
-
-fun Countries_cid_cia_Bouvet_Island : Ind Country ;
-
-fun Countries_cid_cia_British_Indian_Ocean_Territory : Ind Country ;
-
-fun Countries_cid_cia_British_Virgin_Islands : Ind Country ;
-
-fun Countries_cid_cia_British_Virgin_Islands_cities_RoadTown : Ind City ;
-
-fun Countries_cid_cia_Cayman_Islands : Ind Country ;
-
-fun Countries_cid_cia_Cayman_Islands_cities_GeorgeTown : Ind City ;
-
-fun Countries_cid_cia_Christmas_Island : Ind Country ;
-
-fun Countries_cid_cia_Christmas_Island_cities_TheSettlement : Ind City ;
-
-fun Countries_cid_cia_Clipperton_Island : Ind Country ;
-
-fun Countries_cid_cia_Cocos_Islands : Ind Country ;
-
-fun Countries_cid_cia_Cocos_Islands_cities_WestIsland : Ind City ;
-
-fun Countries_cid_cia_Cook_Islands : Ind Country ;
-
-fun Countries_cid_cia_Cook_Islands_cities_Avarua : Ind City ;
-
-fun Countries_cid_cia_Coral_Sea_Islands : Ind Country ;
-
-fun Countries_cid_cia_Europa_Island : Ind Country ;
-
-fun Countries_cid_cia_Falkland_Islands : Ind Country ;
-
-fun Countries_cid_cia_Falkland_Islands_cities_Stanley : Ind City ;
-
-fun Countries_cid_cia_Faroe_Islands : Ind Country ;
-
-fun Countries_cid_cia_Faroe_Islands_cities_Torshavn : Ind City ;
-
-fun Countries_cid_cia_French_Polynesia : Ind Country ;
-
-fun Countries_cid_cia_French_Polynesia_cities_Papeete : Ind City ;
-
-fun Countries_cid_cia_French_Southern_and_Antarctic_Lands : Ind Country ;
-
-fun Countries_cid_cia_Gaza_Strip : Ind Country ;
-
-fun Countries_cid_cia_Gibraltar : Ind Country ;
-
-fun Countries_cid_cia_Gibraltar_cities_Gibraltar : Ind City ;
-
-fun Countries_cid_cia_Glorioso_Islands : Ind Country ;
-
-fun Countries_cid_cia_Greenland : Ind Country ;
-
-fun Countries_cid_cia_Greenland_cities_Nuuk : Ind City ;
-
-fun Countries_cid_cia_Guadeloupe : Ind Country ;
-
-fun Countries_cid_cia_Guadeloupe_cities_Basse_Terre : Ind City ;
-
-fun Countries_cid_cia_Guam : Ind Country ;
-
-fun Countries_cid_cia_Guam_cities_Agana : Ind City ;
-
-fun Countries_cid_cia_Guernsey : Ind Country ;
-
-fun Countries_cid_cia_Guernsey_cities_SaintPeterPort : Ind City ;
-
-fun Countries_cid_cia_Heard_Island_and_McDonald_Islands : Ind Country ;
-
-fun Countries_cid_cia_Hong_Kong : Ind Country ;
-
-fun Countries_cid_cia_Howland_Island : Ind Country ;
-
-fun Countries_cid_cia_Jan_Mayen : Ind Country ;
-
-fun Countries_cid_cia_Jarvis_Island : Ind Country ;
-
-fun Countries_cid_cia_Jersey : Ind Country ;
-
-fun Countries_cid_cia_Jersey_cities_SaintHelier : Ind City ;
-
-fun Countries_cid_cia_Johnston_Atoll : Ind Country ;
-
-fun Countries_cid_cia_Juan_de_Nova_Island : Ind Country ;
-
-fun Countries_cid_cia_Kingman_Reef : Ind Country ;
-
-fun Countries_cid_cia_Macau : Ind Country ;
-
-fun Countries_cid_cia_Macau_cities_Macau : Ind City ;
-
-fun Countries_cid_cia_Man : Ind Country ;
-
-fun Countries_cid_cia_Man_cities_Douglas : Ind City ;
-
-fun Countries_cid_cia_Martinique : Ind Country ;
-
-fun Countries_cid_cia_Martinique_cities_Fort_de_France : Ind City ;
-
-fun Countries_cid_cia_Mayotte : Ind Country ;
-
-fun Countries_cid_cia_Mayotte_cities_Mamoutzou : Ind City ;
-
-fun Countries_cid_cia_Midway_Islands : Ind Country ;
-
-fun Countries_cid_cia_Montserrat : Ind Country ;
-
-fun Countries_cid_cia_Montserrat_cities_Plymouth : Ind City ;
-
-fun Countries_cid_cia_Navassa_Island : Ind Country ;
-
-fun Countries_cid_cia_Netherlands_Antilles : Ind Country ;
-
-fun Countries_cid_cia_Netherlands_Antilles_cities_Willemstad : Ind City ;
-
-fun Countries_cid_cia_Niue : Ind Country ;
-
-fun Countries_cid_cia_Niue_cities_Alofi : Ind City ;
-
-fun Countries_cid_cia_Norfolk_Island : Ind Country ;
-
-fun Countries_cid_cia_Norfolk_Island_cities_Kingston : Ind City ;
-
-fun Countries_cid_cia_Northern_Mariana_Islands : Ind Country ;
-
-fun Countries_cid_cia_Northern_Mariana_Islands_cities_Saipan : Ind City ;
-
-fun Countries_cid_cia_Palmyra_Atoll : Ind Country ;
-
-fun Countries_cid_cia_Paracel_Islands : Ind Country ;
-
-fun Countries_cid_cia_Pitcairn_Islands : Ind Country ;
-
-fun Countries_cid_cia_Pitcairn_Islands_cities_Adamstown : Ind City ;
-
-fun Countries_cid_cia_Puerto_Rico : Ind Country ;
-
-fun Countries_cid_cia_Puerto_Rico_cities_SanJuan : Ind City ;
-
-fun Countries_cid_cia_Reunion : Ind Country ;
-
-fun Countries_cid_cia_Reunion_cities_Saint_Denis : Ind City ;
-
-fun Countries_cid_cia_Saint_Helena : Ind Country ;
-
-fun Countries_cid_cia_Saint_Helena_cities_Jamestown : Ind City ;
-
-fun Countries_cid_cia_Saint_Pierre_and_Miquelon : Ind Country ;
-
-fun Countries_cid_cia_Saint_Pierre_and_Miquelon_cities_Saint_Pierre : Ind City ;
-
-fun Countries_cid_cia_South_Georgia_and_the_South_Sandwich_Islands : Ind Country ;
-
-fun Countries_cid_cia_Spratly_Islands : Ind Country ;
-
-fun Countries_cid_cia_Svalbard : Ind Country ;
-
-fun Countries_cid_cia_Svalbard_cities_Longyearbyen : Ind City ;
-
-fun Countries_cid_cia_Tokelau : Ind Country ;
-
-fun Countries_cid_cia_Tromelin_Island : Ind Country ;
-
-fun Countries_cid_cia_Turks_and_Caicos_Islands : Ind Country ;
-
-fun Countries_cid_cia_Turks_and_Caicos_Islands_cities_GrandTurk : Ind City ;
-
-fun Countries_cid_cia_Virgin_Islands : Ind Country ;
-
-fun Countries_cid_cia_Virgin_Islands_cities_CharlotteAmalie : Ind City ;
-
-fun Countries_cid_cia_Wake_Island : Ind Country ;
-
-fun Countries_cid_cia_Wallis_and_Futuna : Ind Country ;
-
-fun Countries_cid_cia_Wallis_and_Futuna_cities_Mata_Utu : Ind City ;
-
-fun Countries_cid_cia_West_Bank : Ind Country ;
-
-fun Country : Class ;
-
-fun Croatia : Ind (both Country Nation);
-
-fun Cuba : Ind (both Country (both Nation Island)) ;
-
-fun Cyprus : Ind (both Country Nation);
-
-fun CzechRepublic : Ind (both Country Nation);
-
-fun Denmark : Ind (both Country EuropeanNation);
-
-fun Deserts_ArabianDesert : Ind Desert ;
-
-fun Deserts_Asauad : Ind Desert ;
-
-fun Deserts_Atacama : Ind Desert ;
-
-fun Deserts_Dschurab : Ind Desert ;
-
-fun Deserts_ErgIgidi : Ind Desert ;
-
-fun Deserts_ErgRebiana : Ind Desert ;
-
-fun Deserts_ErgSchesch : Ind Desert ;
-
-fun Deserts_ErgdeBilma : Ind Desert ;
-
-fun Deserts_Fesan : Ind Desert ;
-
-fun Deserts_GibsonDesert : Ind Desert ;
-
-fun Deserts_GrandErgEst : Ind Desert ;
-
-fun Deserts_GrandErgOuest : Ind Desert ;
-
-fun Deserts_GrandSandDesert : Ind Desert ;
-
-fun Deserts_GrandVictoriaDesert : Ind Desert ;
-
-fun Deserts_HamadaduDraa : Ind Desert ;
-
-fun Deserts_Hamadael_Hamra : Ind Desert ;
-
-fun Deserts_Kalahari : Ind Desert ;
-
-fun Deserts_Karakum : Ind Desert ;
-
-fun Deserts_Kysylkum : Ind Desert ;
-
-fun Deserts_LibyanDesert : Ind Desert ;
-
-fun Deserts_Makteir : Ind Desert ;
-
-fun Deserts_Mujunkum : Ind Desert ;
-
-fun Deserts_NubianDesert : Ind Desert ;
-
-fun Deserts_Sagiael_Hamra : Ind Desert ;
-
-fun Deserts_SimpsonDesert : Ind Desert ;
-
-fun Deserts_Tanami : Ind Desert ;
-
-fun Deserts_Tanesruft : Ind Desert ;
-
-fun Deserts_Tenere : Ind Desert ;
-
-fun Deserts_Trarza : Ind Desert ;
-
-fun Deserts_Uaran : Ind Desert ;
-
-fun Djibouti : Ind (both Country Nation);
-
-fun Dominica : Ind (both Country Nation);
-
-fun DominicanRepublic : Ind (both Country Nation);
-
-fun Ecuador : Ind (both Country Nation);
-
-fun Egypt : Ind (both Country Nation);
-
-fun ElSalvador : Ind (both Country Nation);
-
-fun EquatorialGuinea : Ind (both Country Nation);
-
-fun Eritrea : Ind (both Country Nation);
-
-fun Estonia : Ind (both Country Nation);
-
-fun Ethiopia : Ind (both Country Nation);
-
-fun Fiji : Ind (both Country Nation);
-
-fun Finland : Ind (both Country EuropeanNation);
-
-fun France : Ind (both Country EuropeanNation);
-
-fun FrenchGuiana : Ind (both Country (both LandArea DependencyOrSpecialSovereigntyArea)) ;
-
-fun Gabon : Ind (both Country Nation);
-
-fun Gambia : Ind (both Country Nation);
-
-fun Georgia : Ind (both Country Nation);
-
-fun Germany : Ind (both Country EuropeanNation);
-
-fun Ghana : Ind (both Country Nation);
-
-fun Greece : Ind (both Country EuropeanNation);
-
-fun Grenada : Ind (both Country Nation);
-
-fun Guatemala : Ind (both Country Nation);
-
-fun Guinea : Ind (both Country Nation);
-
-fun Guinea_Bissau : Ind Country ;
-
-fun Guyana : Ind (both Country Nation);
-
-fun Haiti : Ind (both Country Nation);
-
-fun HolySee : Ind (both Country EuropeanNation);
-
-fun Honduras : Ind (both Country Nation);
-
-fun Hungary : Ind (both Country Nation);
-
-fun Iceland : Ind (both Country (both EuropeanNation Island)) ;
-
-fun India : Ind (both Country Nation);
-
-fun Indonesia : Ind (both Country Nation);
-
-fun Iran : Ind (both Country Nation);
-
-fun Iraq : Ind (both Country Nation);
-
-fun Ireland : Ind (both Country EuropeanNation);
-
-fun Islands_Aland : Ind Island ;
-
-fun Islands_Alderney : Ind Island ;
-
-fun Islands_Alicudi : Ind Island ;
-
-fun Islands_Anglesey : Ind Island ;
-
-fun Islands_Anguilla : Ind Island ;
-
-fun Islands_Anjouan : Ind Island ;
-
-fun Islands_Antigua : Ind Island ;
-
-fun Islands_Arran : Ind Island ;
-
-fun Islands_Ascension : Ind Island ;
-
-fun Islands_Aust_Vagoey : Ind Island ;
-
-fun Islands_BaffinIsland : Ind Island ;
-
-fun Islands_Bahamas : Ind Island ;
-
-fun Islands_Bali : Ind Island ;
-
-fun Islands_BanksIsland : Ind Island ;
-
-fun Islands_Barbados : Ind Island ;
-
-fun Islands_Barbuda : Ind Island ;
-
-fun Islands_Barra : Ind Island ;
-
-fun Islands_Benbecula : Ind Island ;
-
-fun Islands_Bermuda : Ind Island ;
-
-fun Islands_BishopRock : Ind Island ;
-
-fun Islands_Bohol : Ind Island ;
-
-fun Islands_Bornholm : Ind Island ;
-
-fun Islands_CangarooIsland : Ind Island ;
-
-fun Islands_Cayman : Ind Island ;
-
-fun Islands_CaymanBrac : Ind Island ;
-
-fun Islands_Chios : Ind Island ;
-
-fun Islands_Coll : Ind Island ;
-
-fun Islands_Colonsay : Ind Island ;
-
-fun Islands_Cuba : Ind Island ;
-
-fun Islands_Dagoe : Ind Island ;
-
-fun Islands_Dominica : Ind Island ;
-
-fun Islands_EastCaicos : Ind Island ;
-
-fun Islands_Falster : Ind Island ;
-
-fun Islands_FernandoPoo : Ind Island ;
-
-fun Islands_Fidschi : Ind Island ;
-
-fun Islands_Flores : Ind Island ;
-
-fun Islands_Formentera : Ind Island ;
-
-fun Islands_Fuenen : Ind Island ;
-
-fun Islands_Fuerteventura : Ind Island ;
-
-fun Islands_Gheschm : Ind Island ;
-
-fun Islands_Gomera : Ind Island ;
-
-fun Islands_Gotland : Ind Island ;
-
-fun Islands_GrKomoro : Ind Island ;
-
-fun Islands_GranCanaria : Ind Island ;
-
-fun Islands_GrandCaicos : Ind Island ;
-
-fun Islands_Grenada : Ind Island ;
-
-fun Islands_Guadeloupe : Ind Island ;
-
-fun Islands_Guernsey : Ind Island ;
-
-fun Islands_Harris : Ind Island ;
-
-fun Islands_Hawaii : Ind Island ;
-
-fun Islands_Hierro : Ind Island ;
-
-fun Islands_Hispaniola : Ind Island ;
-
-fun Islands_Hokkaido : Ind Island ;
-
-fun Islands_Honshu : Ind Island ;
-
-fun Islands_Hoy : Ind Island ;
-
-fun Islands_Ibiza : Ind Island ;
-
-fun Islands_Iceland : Ind Island ;
-
-fun Islands_Ikaria : Ind Island ;
-
-fun Islands_Iona : Ind Island ;
-
-fun Islands_Isabela : Ind Island ;
-
-fun Islands_Islay : Ind Island ;
-
-fun Islands_IsleofMan : Ind Island ;
-
-fun Islands_Jamaica : Ind Island ;
-
-fun Islands_JanMayen : Ind Island ;
-
-fun Islands_Jersey : Ind Island ;
-
-fun Islands_Jura : Ind Island ;
-
-fun Islands_Kauai : Ind Island ;
-
-fun Islands_Kefallinia : Ind Island ;
-
-fun Islands_Khark : Ind Island ;
-
-fun Islands_Kiribati : Ind Island ;
-
-fun Islands_Korfu : Ind Island ;
-
-fun Islands_Kos : Ind Island ;
-
-fun Islands_Kotelnyisland : Ind Island ;
-
-fun Islands_Kreta : Ind Island ;
-
-fun Islands_Kyushu : Ind Island ;
-
-fun Islands_LaPalma : Ind Island ;
-
-fun Islands_Lampedusa : Ind Island ;
-
-fun Islands_Lanai : Ind Island ;
-
-fun Islands_Langeland : Ind Island ;
-
-fun Islands_Lanzarote : Ind Island ;
-
-fun Islands_Lavan : Ind Island ;
-
-fun Islands_Lefkas : Ind Island ;
-
-fun Islands_Lewis : Ind Island ;
-
-fun Islands_Leyte : Ind Island ;
-
-fun Islands_Linosa : Ind Island ;
-
-fun Islands_Lipari : Ind Island ;
-
-fun Islands_LittleCayman : Ind Island ;
-
-fun Islands_Lolland : Ind Island ;
-
-fun Islands_Lundy : Ind Island ;
-
-fun Islands_Luzon : Ind Island ;
-
-fun Islands_Madagaskar : Ind Island ;
-
-fun Islands_Madeira : Ind Island ;
-
-fun Islands_Mainland : Ind Island ;
-
-fun Islands_Mallorca : Ind Island ;
-
-fun Islands_Malta : Ind Island ;
-
-fun Islands_MarthasVineyard : Ind Island ;
-
-fun Islands_Martinique : Ind Island ;
-
-fun Islands_Maui : Ind Island ;
-
-fun Islands_Mauritius : Ind Island ;
-
-fun Islands_Mayotta : Ind Island ;
-
-fun Islands_MelvilleIsland : Ind Island ;
-
-fun Islands_Menorca : Ind Island ;
-
-fun Islands_Mindanao : Ind Island ;
-
-fun Islands_Mindoro : Ind Island ;
-
-fun Islands_Mohilla : Ind Island ;
-
-fun Islands_Molokai : Ind Island ;
-
-fun Islands_Montserrat : Ind Island ;
-
-fun Islands_Mull : Ind Island ;
-
-fun Islands_Nantucket : Ind Island ;
-
-fun Islands_Nauru : Ind Island ;
-
-fun Islands_Negros : Ind Island ;
-
-fun Islands_Nevis : Ind Island ;
-
-fun Islands_NewCaledonia : Ind Island ;
-
-fun Islands_NorthCaicos : Ind Island ;
-
-fun Islands_NorthUlist : Ind Island ;
-
-fun Islands_Oahu : Ind Island ;
-
-fun Islands_Oeland : Ind Island ;
-
-fun Islands_Oesel : Ind Island ;
-
-fun Islands_Palau : Ind Island ;
-
-fun Islands_Palawan : Ind Island ;
-
-fun Islands_Panarea : Ind Island ;
-
-fun Islands_Panay : Ind Island ;
-
-fun Islands_Paramuschir : Ind Island ;
-
-fun Islands_Patmos : Ind Island ;
-
-fun Islands_PortoSanto : Ind Island ;
-
-fun Islands_PrinceCharlesIsland : Ind Island ;
-
-fun Islands_PrinceEdwardIsland : Ind Island ;
-
-fun Islands_PrinceofWalesIsland : Ind Island ;
-
-fun Islands_Providenciales : Ind Island ;
-
-fun Islands_Rhodos : Ind Island ;
-
-fun Islands_Rhum : Ind Island ;
-
-fun Islands_Sachalin : Ind Island ;
-
-fun Islands_SaintKitts : Ind Island ;
-
-fun Islands_SaintLucia : Ind Island ;
-
-fun Islands_SaintVincent : Ind Island ;
-
-fun Islands_Salina : Ind Island ;
-
-fun Islands_Samar : Ind Island ;
-
-fun Islands_Samos : Ind Island ;
-
-fun Islands_SanClementeIsland : Ind Island ;
-
-fun Islands_SanMiguelIsland : Ind Island ;
-
-fun Islands_Sanday : Ind Island ;
-
-fun Islands_SantaCatalinaIsland : Ind Island ;
-
-fun Islands_SantaCruzIsland : Ind Island ;
-
-fun Islands_SantaMaria : Ind Island ;
-
-fun Islands_SantaRosaIsland : Ind Island ;
-
-fun Islands_SaoMiguel : Ind Island ;
-
-fun Islands_SaoTomeandPrincipe : Ind Island ;
-
-fun Islands_Seeland : Ind Island ;
-
-fun Islands_Shikoku : Ind Island ;
-
-fun Islands_Skye : Ind Island ;
-
-fun Islands_SouthRonaldson : Ind Island ;
-
-fun Islands_SouthUlist : Ind Island ;
-
-fun Islands_SouthamptonIsland : Ind Island ;
-
-fun Islands_SriLanka : Ind Island ;
-
-fun Islands_St_Helena : Ind Island ;
-
-fun Islands_Staffa : Ind Island ;
-
-fun Islands_Stromboli : Ind Island ;
-
-fun Islands_Sumatra : Ind Island ;
-
-fun Islands_Taiwan : Ind Island ;
-
-fun Islands_Tasmania : Ind Island ;
-
-fun Islands_Teneriffa : Ind Island ;
-
-fun Islands_Tilos : Ind Island ;
-
-fun Islands_Tiree : Ind Island ;
-
-fun Islands_Tobago : Ind Island ;
-
-fun Islands_Tonga : Ind Island ;
-
-fun Islands_Trinidad : Ind Island ;
-
-fun Islands_Tuvalu : Ind Island ;
-
-fun Islands_VancouverIsland : Ind Island ;
-
-fun Islands_Vanuatu : Ind Island ;
-
-fun Islands_VictoriaIsland : Ind Island ;
-
-fun Islands_Vulcano : Ind Island ;
-
-fun Islands_Westray : Ind Island ;
-
-fun Islands_Westsamoa : Ind Island ;
-
-fun Islands_Zakinthos : Ind Island ;
-
-fun Israel : Ind (both Country Nation);
-
-fun Italy : Ind (both Country EuropeanNation);
-
-fun Jamaica : Ind (both Country Nation);
-
-fun Japan : Ind (both Country (both Nation Island)) ;
-
-fun Jordan : Ind (both Country Nation);
-
-fun Kazakstan : Ind Country ;
-
-fun Kenya : Ind (both Country Nation);
-
-fun Kiribati : Ind (both Country Nation);
-
-fun Kuwait : Ind (both Country Nation);
-
-fun Kyrgyzstan : Ind (both Country Nation);
-
-fun Lakes_Arresee : Ind Lake ;
-
-fun Lakes_BarragedeMbakaou : Ind Lake ;
-
-fun Lakes_Bodensee : Ind Lake ;
-
-fun Lakes_CaspianSea : Ind Lake ;
-
-fun Lakes_ChicamaugaLake : Ind Lake ;
-
-fun Lakes_DaryachehyeNamak : Ind Lake ;
-
-fun Lakes_Disappointment_Lake : Ind Lake ;
-
-fun Lakes_F_D_R_Lake : Ind Lake ;
-
-fun Lakes_GreatBearLake : Ind Lake ;
-
-fun Lakes_GreatSaltLake : Ind Lake ;
-
-fun Lakes_GreatSlaveLake : Ind Lake ;
-
-fun Lakes_HamuneJazMurian : Ind Lake ;
-
-fun Lakes_Inari : Ind Lake ;
-
-fun Lakes_Issyk_Kul : Ind Lake ;
-
-fun Lakes_KentuckyLake : Ind Lake ;
-
-fun Lakes_LacLeman : Ind Lake ;
-
-fun Lakes_LagoMaggiore : Ind Lake ;
-
-fun Lakes_LagodeChapala : Ind Lake ;
-
-fun Lakes_LagodiComo : Ind Lake ;
-
-fun Lakes_LagodiGarda : Ind Lake ;
-
-fun Lakes_LakeAbaya : Ind Lake ;
-
-fun Lakes_LakeAlbert : Ind Lake ;
-
-fun Lakes_LakeAmadeus : Ind Lake ;
-
-fun Lakes_LakeAssale : Ind Lake ;
-
-fun Lakes_LakeBangweulu : Ind Lake ;
-
-fun Lakes_LakeCabora_Bassa : Ind Lake ;
-
-fun Lakes_LakeChilwa : Ind Lake ;
-
-fun Lakes_LakeEduard : Ind Lake ;
-
-fun Lakes_LakeErie : Ind Lake ;
-
-fun Lakes_LakeEtoscha : Ind Lake ;
-
-fun Lakes_LakeEyasi : Ind Lake ;
-
-fun Lakes_LakeEyre : Ind Lake ;
-
-fun Lakes_LakeHuron : Ind Lake ;
-
-fun Lakes_LakeKainji : Ind Lake ;
-
-fun Lakes_LakeKalla : Ind Lake ;
-
-fun Lakes_LakeKariba : Ind Lake ;
-
-fun Lakes_LakeKioga : Ind Lake ;
-
-fun Lakes_LakeKivu : Ind Lake ;
-
-fun Lakes_LakeLeopold_II : Ind Lake ;
-
-fun Lakes_LakeMackay : Ind Lake ;
-
-fun Lakes_LakeMakarikari : Ind Lake ;
-
-fun Lakes_LakeMaracaibo : Ind Lake ;
-
-fun Lakes_LakeMeade : Ind Lake ;
-
-fun Lakes_LakeMichigan : Ind Lake ;
-
-fun Lakes_LakeMweru : Ind Lake ;
-
-fun Lakes_LakeNaesi : Ind Lake ;
-
-fun Lakes_LakeNasser : Ind Lake ;
-
-fun Lakes_LakeNatron : Ind Lake ;
-
-fun Lakes_LakeNgami : Ind Lake ;
-
-fun Lakes_LakeNicaragua : Ind Lake ;
-
-fun Lakes_LakeNipigon : Ind Lake ;
-
-fun Lakes_LakeNyasa : Ind Lake ;
-
-fun Lakes_LakeOhrid : Ind Lake ;
-
-fun Lakes_LakeOkeechobee : Ind Lake ;
-
-fun Lakes_LakeOntario : Ind Lake ;
-
-fun Lakes_LakeOri : Ind Lake ;
-
-fun Lakes_LakePowell : Ind Lake ;
-
-fun Lakes_LakePrespa : Ind Lake ;
-
-fun Lakes_LakeRudolph : Ind Lake ;
-
-fun Lakes_LakeRukwa : Ind Lake ;
-
-fun Lakes_LakeSaima : Ind Lake ;
-
-fun Lakes_LakeSkutari : Ind Lake ;
-
-fun Lakes_LakeStephanie : Ind Lake ;
-
-fun Lakes_LakeSuat : Ind Lake ;
-
-fun Lakes_LakeSuperior : Ind Lake ;
-
-fun Lakes_LakeTahoe : Ind Lake ;
-
-fun Lakes_LakeTana : Ind Lake ;
-
-fun Lakes_LakeTanganjika : Ind Lake ;
-
-fun Lakes_LakeTiticaca : Ind Lake ;
-
-fun Lakes_LakeTorren : Ind Lake ;
-
-fun Lakes_LakeTumba : Ind Lake ;
-
-fun Lakes_LakeUrumiyeh : Ind Lake ;
-
-fun Lakes_LakeVictoria : Ind Lake ;
-
-fun Lakes_LakeVolta : Ind Lake ;
-
-fun Lakes_LakeWilliston : Ind Lake ;
-
-fun Lakes_LakeWinnipeg : Ind Lake ;
-
-fun Lakes_LakeWinnipesaukee : Ind Lake ;
-
-fun Lakes_Maelaren : Ind Lake ;
-
-fun Lakes_Mjoesen : Ind Lake ;
-
-fun Lakes_OzeroAral : Ind Lake ;
-
-fun Lakes_OzeroBaikal : Ind Lake ;
-
-fun Lakes_OzeroBalchash : Ind Lake ;
-
-fun Lakes_OzeroChanka : Ind Lake ;
-
-fun Lakes_OzeroLadoga : Ind Lake ;
-
-fun Lakes_OzeroOnega : Ind Lake ;
-
-fun Lakes_OzeroPskovskoje : Ind Lake ;
-
-fun Lakes_OzeroTaimyr : Ind Lake ;
-
-fun Lakes_OzeroTschany : Ind Lake ;
-
-fun Lakes_Paeijaenne : Ind Lake ;
-
-fun Lakes_Tschadsee : Ind Lake ;
-
-fun Lakes_Vaenern : Ind Lake ;
-
-fun Lakes_Vaettern : Ind Lake ;
-
-fun Laos : Ind (both Country Nation);
-
-fun Latvia : Ind (both Country Nation);
-
-fun Lebanon : Ind (both Country Nation);
-
-fun Lesotho : Ind (both Country Nation);
-
-fun Liberia : Ind (both Country Nation);
-
-fun Libya : Ind (both Country Nation);
-
-fun Liechtenstein : Ind (both Country Nation);
-
-fun Lithuania : Ind (both Country Nation);
-
-fun Luxembourg : Ind (both Country Nation);
-
-fun Macedonia : Ind (both Country Nation);
-
-fun Madagascar : Ind (both Country Nation);
-
-fun Malawi : Ind (both Country Nation);
-
-fun Malaysia : Ind (both Country Nation);
-
-fun Maldives : Ind (both Country Nation);
-
-fun Mali : Ind (both Country Nation);
-
-fun Malta : Ind (both Country EuropeanNation);
-
-fun MarshallIslands : Ind (both Country Nation);
-
-fun Mauritania : Ind (both Country Nation);
-
-fun Mauritius : Ind (both Country Nation);
-
-fun Mexico : Ind (both Country Nation);
-
-fun Micronesia : Ind (both Country Nation);
-
-fun Moldova : Ind (both Country Nation);
-
-fun Monaco : Ind (both Country EuropeanNation);
-
-fun Mongolia : Ind (both Country Nation);
-
-fun Morocco : Ind (both Country Nation);
-
-fun Mountains_Aconcagua : Ind Mountain ;
-
-fun Mountains_Bjelucha : Ind Mountain ;
-
-fun Mountains_BlueMountainPeak : Ind Mountain ;
-
-fun Mountains_BorahPeak : Ind Mountain ;
-
-fun Mountains_BoundaryPeak : Ind Mountain ;
-
-fun Mountains_CathkinPeak : Ind Mountain ;
-
-fun Mountains_Chimborazo : Ind Mountain ;
-
-fun Mountains_Citlaltepetl : Ind Mountain ;
-
-fun Mountains_ClingmansDome : Ind Mountain ;
-
-fun Mountains_Damavand : Ind Mountain ;
-
-fun Mountains_DjebelAures : Ind Mountain ;
-
-fun Mountains_Elbrus : Ind Mountain ;
-
-fun Mountains_EmiKussi : Ind Mountain ;
-
-fun Mountains_Fako : Ind Mountain ;
-
-fun Mountains_Feldberg : Ind Mountain ;
-
-fun Mountains_Fuji_Yama : Ind Mountain ;
-
-fun Mountains_Galdhoeppig : Ind Mountain ;
-
-fun Mountains_GannettPeak : Ind Mountain ;
-
-fun Mountains_Glittertind : Ind Mountain ;
-
-fun Mountains_GranitePeak : Ind Mountain ;
-
-fun Mountains_GrosserArber : Ind Mountain ;
-
-fun Mountains_Grossglockner : Ind Mountain ;
-
-fun Mountains_GuadalupePeak : Ind Mountain ;
-
-fun Mountains_Haltiatunturi : Ind Mountain ;
-
-fun Mountains_HarneyPeak : Ind Mountain ;
-
-fun Mountains_Hotaka_Dake : Ind Mountain ;
-
-fun Mountains_Huascaran : Ind Mountain ;
-
-fun Mountains_HumphreysPeak : Ind Mountain ;
-
-fun Mountains_Illampu : Ind Mountain ;
-
-fun Mountains_JabalMarra : Ind Mountain ;
-
-fun Mountains_Jezerce : Ind Mountain ;
-
-fun Mountains_Joekul : Ind Mountain ;
-
-fun Mountains_Jostedalsbre : Ind Mountain ;
-
-fun Mountains_Kasbek : Ind Mountain ;
-
-fun Mountains_Kebnekaise : Ind Mountain ;
-
-fun Mountains_Kenia : Ind Mountain ;
-
-fun Mountains_Kilimanjaro : Ind Mountain ;
-
-fun Mountains_Kinabalu : Ind Mountain ;
-
-fun Mountains_KingsPeak : Ind Mountain ;
-
-fun Mountains_Korab : Ind Mountain ;
-
-fun Mountains_Leuser : Ind Mountain ;
-
-fun Mountains_Llullaillaco : Ind Mountain ;
-
-fun Mountains_MaunaKea : Ind Mountain ;
-
-fun Mountains_Meru : Ind Mountain ;
-
-fun Mountains_Montblanc : Ind Mountain ;
-
-fun Mountains_MountEverest : Ind Mountain ;
-
-fun Mountains_MountGodwinAusten : Ind Mountain ;
-
-fun Mountains_MountMorrison : Ind Mountain ;
-
-fun Mountains_Mpika : Ind Mountain ;
-
-fun Mountains_MtAylmer : Ind Mountain ;
-
-fun Mountains_MtElbert : Ind Mountain ;
-
-fun Mountains_MtHood : Ind Mountain ;
-
-fun Mountains_MtMcKinley : Ind Mountain ;
-
-fun Mountains_MtMitchell : Ind Mountain ;
-
-fun Mountains_MtRainier : Ind Mountain ;
-
-fun Mountains_MtRobson : Ind Mountain ;
-
-fun Mountains_MtWashington : Ind Mountain ;
-
-fun Mountains_MtWhitney : Ind Mountain ;
-
-fun Mountains_Mt_Bogong : Ind Mountain ;
-
-fun Mountains_Mt_Grebun : Ind Mountain ;
-
-fun Mountains_Mt_Kosciuszko : Ind Mountain ;
-
-fun Mountains_NevadodeColima : Ind Mountain ;
-
-fun Mountains_NevadodeToluca : Ind Mountain ;
-
-fun Mountains_Oeraefajoekull : Ind Mountain ;
-
-fun Mountains_PicoDuarte : Ind Mountain ;
-
-fun Mountains_PikChan_Tengri : Ind Mountain ;
-
-fun Mountains_PikKarl_Marx : Ind Mountain ;
-
-fun Mountains_PikKommunizma : Ind Mountain ;
-
-fun Mountains_PikLenina : Ind Mountain ;
-
-fun Mountains_PikMoskva : Ind Mountain ;
-
-fun Mountains_PikPobeda : Ind Mountain ;
-
-fun Mountains_PikRevoluzija : Ind Mountain ;
-
-fun Mountains_Popocatepetl : Ind Mountain ;
-
-fun Mountains_Portefjaellen : Ind Mountain ;
-
-fun Mountains_Pulog : Ind Mountain ;
-
-fun Mountains_RasDaschan : Ind Mountain ;
-
-fun Mountains_Sabalan : Ind Mountain ;
-
-fun Mountains_Sarektjokko : Ind Mountain ;
-
-fun Mountains_Semeru : Ind Mountain ;
-
-fun Mountains_Snoefell : Ind Mountain ;
-
-fun Mountains_Snoehetta : Ind Mountain ;
-
-fun Mountains_Sulitjelma : Ind Mountain ;
-
-fun Mountains_Tahan : Ind Mountain ;
-
-fun Mountains_Tahat : Ind Mountain ;
-
-fun Mountains_Tamgak : Ind Mountain ;
-
-fun Mountains_Tarrekaise : Ind Mountain ;
-
-fun Mountains_Tubhal : Ind Mountain ;
-
-fun Mountains_Zugspitze : Ind Mountain ;
-
-fun Mozambique : Ind (both Country Nation);
-
-fun Namibia : Ind (both Country Nation);
-
-fun Nauru : Ind (both Country Nation);
-
-fun Nepal : Ind (both Country Nation);
-
-fun Netherlands : Ind (both Country EuropeanNation);
-
-fun NewCaledonia : Ind (both Country (both LandArea DependencyOrSpecialSovereigntyArea)) ;
-
-fun NewZealand : Ind (both Country Nation);
-
-fun Nicaragua : Ind (both Country Nation);
-
-fun Niger : Ind (both Country Nation);
-
-fun Nigeria : Ind (both Country Nation);
-
-fun NorthKorea : Ind (both Country Nation);
-
-fun Norway : Ind (both Country EuropeanNation);
-
-fun Oman : Ind (both Country Nation);
-
-fun Organizations_ABEDA : Ind Organization ;
-
-fun Organizations_ACC : Ind Organization ;
-
-fun Organizations_ACCT : Ind Organization ;
-
-fun Organizations_ACP : Ind Organization ;
-
-fun Organizations_AFESD : Ind Organization ;
-
-fun Organizations_AG : Ind Organization ;
-
-fun Organizations_AL : Ind Organization ;
-
-fun Organizations_AMF : Ind Organization ;
-
-fun Organizations_AMU : Ind Organization ;
-
-fun Organizations_ANC : Ind Organization ;
-
-fun Organizations_ANZUS : Ind Organization ;
-
-fun Organizations_APEC : Ind Organization ;
-
-fun Organizations_ASEAN : Ind Organization ;
-
-fun Organizations_AfDB : Ind Organization ;
-
-fun Organizations_AsDB : Ind Organization ;
-
-fun Organizations_BCIE : Ind Organization ;
-
-fun Organizations_BDEAC : Ind Organization ;
-
-fun Organizations_BIS : Ind Organization ;
-
-fun Organizations_BSEC : Ind Organization ;
-
-fun Organizations_Benelux : Ind Organization ;
-
-fun Organizations_C : Ind Organization ;
-
-fun Organizations_CACM : Ind Organization ;
-
-fun Organizations_CAEU : Ind Organization ;
-
-fun Organizations_CBSS : Ind Organization ;
-
-fun Organizations_CCC : Ind Organization ;
-
-fun Organizations_CDB : Ind Organization ;
-
-fun Organizations_CE : Ind Organization ;
-
-fun Organizations_CEAO : Ind Organization ;
-
-fun Organizations_CEEAC : Ind Organization ;
-
-fun Organizations_CEI : Ind Organization ;
-
-fun Organizations_CEMA : Ind Organization ;
-
-fun Organizations_CEPGL : Ind Organization ;
-
-fun Organizations_CERN : Ind Organization ;
-
-fun Organizations_CIS : Ind Organization ;
-
-fun Organizations_CP : Ind Organization ;
-
-fun Organizations_Caricom : Ind Organization ;
-
-fun Organizations_EADB : Ind Organization ;
-
-fun Organizations_EBRD : Ind Organization ;
-
-fun Organizations_ECA : Ind Organization ;
-
-fun Organizations_ECE : Ind Organization ;
-
-fun Organizations_ECLAC : Ind Organization ;
-
-fun Organizations_ECO : Ind Organization ;
-
-fun Organizations_ECOSOC : Ind Organization ;
-
-fun Organizations_ECOWAS : Ind Organization ;
-
-fun Organizations_EFTA : Ind Organization ;
-
-fun Organizations_EIB : Ind Organization ;
-
-fun Organizations_EN : Ind Organization ;
-
-fun Organizations_ESA : Ind Organization ;
-
-fun Organizations_ESCAP : Ind Organization ;
-
-fun Organizations_ESCWA : Ind Organization ;
-
-fun Organizations_EU : Ind Organization ;
-
-fun Organizations_Entente : Ind Organization ;
-
-fun Organizations_FAO : Ind Organization ;
-
-fun Organizations_FZ : Ind Organization ;
-
-fun Organizations_GCC : Ind Organization ;
-
-fun Organizations_G_10 : Ind Organization ;
-
-fun Organizations_G_11 : Ind Organization ;
-
-fun Organizations_G_15 : Ind Organization ;
-
-fun Organizations_G_19 : Ind Organization ;
-
-fun Organizations_G_2 : Ind Organization ;
-
-fun Organizations_G_24 : Ind Organization ;
-
-fun Organizations_G_3 : Ind Organization ;
-
-fun Organizations_G_30 : Ind Organization ;
-
-fun Organizations_G_33 : Ind Organization ;
-
-fun Organizations_G_5 : Ind Organization ;
-
-fun Organizations_G_6 : Ind Organization ;
-
-fun Organizations_G_7 : Ind Organization ;
-
-fun Organizations_G_77 : Ind Organization ;
-
-fun Organizations_G_8 : Ind Organization ;
-
-fun Organizations_G_9 : Ind Organization ;
-
-fun Organizations_IADB : Ind Organization ;
-
-fun Organizations_IAEA : Ind Organization ;
-
-fun Organizations_IBRD : Ind Organization ;
-
-fun Organizations_ICAO : Ind Organization ;
-
-fun Organizations_ICC : Ind Organization ;
-
-fun Organizations_ICFTU : Ind Organization ;
-
-fun Organizations_ICJ : Ind Organization ;
-
-fun Organizations_ICRC : Ind Organization ;
-
-fun Organizations_ICRM : Ind Organization ;
-
-fun Organizations_IDA : Ind Organization ;
-
-fun Organizations_IDB : Ind Organization ;
-
-fun Organizations_IEA : Ind Organization ;
-
-fun Organizations_IFAD : Ind Organization ;
-
-fun Organizations_IFC : Ind Organization ;
-
-fun Organizations_IFRCS : Ind Organization ;
-
-fun Organizations_IGADD : Ind Organization ;
-
-fun Organizations_ILO : Ind Organization ;
-
-fun Organizations_IMF : Ind Organization ;
-
-fun Organizations_IMO : Ind Organization ;
-
-fun Organizations_IOC : Ind Organization ;
-
-fun Organizations_IOM : Ind Organization ;
-
-fun Organizations_ISO : Ind Organization ;
-
-fun Organizations_ITU : Ind Organization ;
-
-fun Organizations_Inmarsat : Ind Organization ;
-
-fun Organizations_Intelsat : Ind Organization ;
-
-fun Organizations_Interpol : Ind Organization ;
-
-fun Organizations_LAES : Ind Organization ;
-
-fun Organizations_LAIA : Ind Organization ;
-
-fun Organizations_MINURSO : Ind Organization ;
-
-fun Organizations_MTCR : Ind Organization ;
-
-fun Organizations_MekongGroup : Ind Organization ;
-
-fun Organizations_Mercosur : Ind Organization ;
-
-fun Organizations_NAM : Ind Organization ;
-
-fun Organizations_NATO : Ind Organization ;
-
-fun Organizations_NC : Ind Organization ;
-
-fun Organizations_NIB : Ind Organization ;
-
-fun Organizations_NSG : Ind Organization ;
-
-fun Organizations_OAPEC : Ind Organization ;
-
-fun Organizations_OAS : Ind Organization ;
-
-fun Organizations_OAU : Ind Organization ;
-
-fun Organizations_OECD : Ind Organization ;
-
-fun Organizations_OECS : Ind Organization ;
-
-fun Organizations_OIC : Ind Organization ;
-
-fun Organizations_OPANAL : Ind Organization ;
-
-fun Organizations_OPEC : Ind Organization ;
-
-fun Organizations_OSCE : Ind Organization ;
-
-fun Organizations_PCA : Ind Organization ;
-
-fun Organizations_PFP : Ind Organization ;
-
-fun Organizations_RG : Ind Organization ;
-
-fun Organizations_SAARC : Ind Organization ;
-
-fun Organizations_SACU : Ind Organization ;
-
-fun Organizations_SADC : Ind Organization ;
-
-fun Organizations_SELA : Ind Organization ;
-
-fun Organizations_SPC : Ind Organization ;
-
-fun Organizations_SPF : Ind Organization ;
-
-fun Organizations_Sparteca : Ind Organization ;
-
-fun Organizations_UDEAC : Ind Organization ;
-
-fun Organizations_UN : Ind Organization ;
-
-fun Organizations_UNAMIR : Ind Organization ;
-
-fun Organizations_UNAVEMIII : Ind Organization ;
-
-fun Organizations_UNCRO : Ind Organization ;
-
-fun Organizations_UNCTAD : Ind Organization ;
-
-fun Organizations_UNDOF : Ind Organization ;
-
-fun Organizations_UNDP : Ind Organization ;
-
-fun Organizations_UNEP : Ind Organization ;
-
-fun Organizations_UNESCO : Ind Organization ;
-
-fun Organizations_UNFICYP : Ind Organization ;
-
-fun Organizations_UNFPA : Ind Organization ;
-
-fun Organizations_UNHCR : Ind Organization ;
-
-fun Organizations_UNICEF : Ind Organization ;
-
-fun Organizations_UNIDO : Ind Organization ;
-
-fun Organizations_UNIFIL : Ind Organization ;
-
-fun Organizations_UNIKOM : Ind Organization ;
-
-fun Organizations_UNITAR : Ind Organization ;
-
-fun Organizations_UNMIH : Ind Organization ;
-
-fun Organizations_UNMOGIP : Ind Organization ;
-
-fun Organizations_UNMOT : Ind Organization ;
-
-fun Organizations_UNOMIG : Ind Organization ;
-
-fun Organizations_UNOMIL : Ind Organization ;
-
-fun Organizations_UNPREDEP : Ind Organization ;
-
-fun Organizations_UNPROFOR : Ind Organization ;
-
-fun Organizations_UNRISD : Ind Organization ;
-
-fun Organizations_UNRWA : Ind Organization ;
-
-fun Organizations_UNTSO : Ind Organization ;
-
-fun Organizations_UNU : Ind Organization ;
-
-fun Organizations_UPU : Ind Organization ;
-
-fun Organizations_WADB : Ind Organization ;
-
-fun Organizations_WCL : Ind Organization ;
-
-fun Organizations_WEU : Ind Organization ;
-
-fun Organizations_WFC : Ind Organization ;
-
-fun Organizations_WFP : Ind Organization ;
-
-fun Organizations_WFTU : Ind Organization ;
-
-fun Organizations_WHO : Ind Organization ;
-
-fun Organizations_WIPO : Ind Organization ;
-
-fun Organizations_WMO : Ind Organization ;
-
-fun Organizations_WToO : Ind Organization ;
-
-fun Organizations_WTrO : Ind Organization ;
-
-fun Organizations_ZC : Ind Organization ;
-
-fun Pakistan : Ind (both Country Nation);
-
-fun Palau : Ind (both Country Nation);
-
-fun Panama : Ind (both Country Nation);
-
-fun PapuaNewGuinea : Ind (both Country Nation);
-
-fun Paraguay : Ind (both Country Nation);
-
-fun Peru : Ind (both Country Nation);
-
-fun Philippines : Ind (both Country Nation);
-
-fun Poland : Ind (both Country EuropeanNation);
-
-fun Portugal : Ind (both Country EuropeanNation);
-
-fun Province : Class ;
-
-fun Qatar : Ind (both Country Nation);
-
-fun Rivers_Ajan_Jurjach : Ind River ;
-
-fun Rivers_Amazonas : Ind River ;
-
-fun Rivers_Amudarja : Ind River ;
-
-fun Rivers_Amur : Ind River ;
-
-fun Rivers_Anuwimi : Ind River ;
-
-fun Rivers_Argun : Ind River ;
-
-fun Rivers_Arkansas : Ind River ;
-
-fun Rivers_Atbara : Ind River ;
-
-fun Rivers_Bahrel_Djebel : Ind River ;
-
-fun Rivers_Bahrel_Gasal : Ind River ;
-
-fun Rivers_Bani : Ind River ;
-
-fun Rivers_Baro : Ind River ;
-
-fun Rivers_Benue : Ind River ;
-
-fun Rivers_Bija : Ind River ;
-
-fun Rivers_BlackDrin : Ind River ;
-
-fun Rivers_BlackIrtysch : Ind River ;
-
-fun Rivers_BlueNile : Ind River ;
-
-fun Rivers_Bomu : Ind River ;
-
-fun Rivers_Busira : Ind River ;
-
-fun Rivers_Casai : Ind River ;
-
-fun Rivers_Chatanga : Ind River ;
-
-fun Rivers_Chire : Ind River ;
-
-fun Rivers_Colorado : Ind River ;
-
-fun Rivers_ColumbiaRiver : Ind River ;
-
-fun Rivers_ConnecticutRiver : Ind River ;
-
-fun Rivers_Cuango : Ind River ;
-
-fun Rivers_Cuanza : Ind River ;
-
-fun Rivers_Cuilo : Ind River ;
-
-fun Rivers_Cunene : Ind River ;
-
-fun Rivers_Dalaelv : Ind River ;
-
-fun Rivers_Djuba : Ind River ;
-
-fun Rivers_Dnepr : Ind River ;
-
-fun Rivers_Don : Ind River ;
-
-fun Rivers_Donau : Ind River ;
-
-fun Rivers_Drin : Ind River ;
-
-fun Rivers_Elbe : Ind River ;
-
-fun Rivers_Fulda : Ind River ;
-
-fun Rivers_Gambia : Ind River ;
-
-fun Rivers_Garonne : Ind River ;
-
-fun Rivers_Gloma : Ind River ;
-
-fun Rivers_Goetaaelv : Ind River ;
-
-fun Rivers_GrosserJenissej : Ind River ;
-
-fun Rivers_Han : Ind River ;
-
-fun Rivers_HudsonRiver : Ind River ;
-
-fun Rivers_Hwangho : Ind River ;
-
-fun Rivers_Ingoda : Ind River ;
-
-fun Rivers_Irtysch : Ind River ;
-
-fun Rivers_Ischim : Ind River ;
-
-fun Rivers_Jangtse_Kiang : Ind River ;
-
-fun Rivers_Jenissej : Ind River ;
-
-fun Rivers_JoekulsaaFjoellum : Ind River ;
-
-fun Rivers_Jug : Ind River ;
-
-fun Rivers_Kafue : Ind River ;
-
-fun Rivers_Karun : Ind River ;
-
-fun Rivers_Katun : Ind River ;
-
-fun Rivers_Kemijoki : Ind River ;
-
-fun Rivers_Kitakami : Ind River ;
-
-fun Rivers_Klaraelv : Ind River ;
-
-fun Rivers_KleinerJenissej : Ind River ;
-
-fun Rivers_Kokemaeenjoki : Ind River ;
-
-fun Rivers_Kolyma : Ind River ;
-
-fun Rivers_Kulu : Ind River ;
-
-fun Rivers_Kura : Ind River ;
-
-fun Rivers_Kwa : Ind River ;
-
-fun Rivers_Lena : Ind River ;
-
-fun Rivers_Limpopo : Ind River ;
-
-fun Rivers_Loire : Ind River ;
-
-fun Rivers_Lomami : Ind River ;
-
-fun Rivers_Luangwa : Ind River ;
-
-fun Rivers_Lukuga : Ind River ;
-
-fun Rivers_Luvua : Ind River ;
-
-fun Rivers_Mekong : Ind River ;
-
-fun Rivers_Mississippi : Ind River ;
-
-fun Rivers_Missouri : Ind River ;
-
-fun Rivers_Moldau : Ind River ;
-
-fun Rivers_Neva : Ind River ;
-
-fun Rivers_Niger : Ind River ;
-
-fun Rivers_Nile : Ind River ;
-
-fun Rivers_NorthernDwina : Ind River ;
-
-fun Rivers_Ob : Ind River ;
-
-fun Rivers_Oesterdalaelv : Ind River ;
-
-fun Rivers_Oka : Ind River ;
-
-fun Rivers_Onon : Ind River ;
-
-fun Rivers_Oranje : Ind River ;
-
-fun Rivers_Orinoco : Ind River ;
-
-fun Rivers_Oulujoki : Ind River ;
-
-fun Rivers_Ounasjoki : Ind River ;
-
-fun Rivers_Paraguay : Ind River ;
-
-fun Rivers_Parana : Ind River ;
-
-fun Rivers_Petschora : Ind River ;
-
-fun Rivers_Pibor : Ind River ;
-
-fun Rivers_Pjandsh : Ind River ;
-
-fun Rivers_Rhein : Ind River ;
-
-fun Rivers_Rhone : Ind River ;
-
-fun Rivers_RioBalsas : Ind River ;
-
-fun Rivers_RioGrande : Ind River ;
-
-fun Rivers_RiodelaPlata : Ind River ;
-
-fun Rivers_Rufiji : Ind River ;
-
-fun Rivers_Ruki : Ind River ;
-
-fun Rivers_Ruvuma : Ind River ;
-
-fun Rivers_Sanaga : Ind River ;
-
-fun Rivers_Sanga : Ind River ;
-
-fun Rivers_Save : Ind River ;
-
-fun Rivers_Schari : Ind River ;
-
-fun Rivers_Schilka : Ind River ;
-
-fun Rivers_Seine : Ind River ;
-
-fun Rivers_Senegal : Ind River ;
-
-fun Rivers_Sobat : Ind River ;
-
-fun Rivers_St_Lorenzstrom : Ind River ;
-
-fun Rivers_Suchona : Ind River ;
-
-fun Rivers_Syrdarja : Ind River ;
-
-fun Rivers_Tana : Ind River ;
-
-fun Rivers_Thames : Ind River ;
-
-fun Rivers_Thjorsa : Ind River ;
-
-fun Rivers_Tobol : Ind River ;
-
-fun Rivers_Torneaelv : Ind River ;
-
-fun Rivers_Tshuapa : Ind River ;
-
-fun Rivers_Ubangi : Ind River ;
-
-fun Rivers_Uelle : Ind River ;
-
-fun Rivers_Umeaelv : Ind River ;
-
-fun Rivers_Ural : Ind River ;
-
-fun Rivers_Uruguay : Ind River ;
-
-fun Rivers_Vaal : Ind River ;
-
-fun Rivers_Vaesterdalaelv : Ind River ;
-
-fun Rivers_Volga : Ind River ;
-
-fun Rivers_Volta : Ind River ;
-
-fun Rivers_WebiSchebeli : Ind River ;
-
-fun Rivers_Weichsel : Ind River ;
-
-fun Rivers_Werra : Ind River ;
-
-fun Rivers_Weser : Ind River ;
-
-fun Rivers_WesternDwina : Ind River ;
-
-fun Rivers_WhiteDrin : Ind River ;
-
-fun Rivers_WhiteNile : Ind River ;
-
-fun Rivers_Zaire : Ind River ;
-
-fun Rivers_Zambezi : Ind River ;
-
-fun Romania : Ind (both Country Nation);
-
-fun Russia : Ind (both Country Nation);
-
-fun Rwanda : Ind (both Country Nation);
-
-fun SaintKittsAndNevis : Ind (both Country Nation);
-
-fun SaintLucia : Ind (both Country Nation);
-
-fun SaintVincentAndTheGrenadines : Ind (both Country Nation);
-
-fun SanMarino : Ind (both Country EuropeanNation);
-
-fun SaoTomeAndPrincipe : Ind (both Country Nation);
-
-fun SaudiArabia : Ind (both Country Nation);
-
-fun Seas_ArabianSea : Ind Sea ;
-
-fun Seas_ArcticOcean : Ind Sea ;
-
-fun Seas_AtlanticOcean : Ind Sea ;
-
-fun Seas_BalticSea : Ind Sea ;
-
-fun Seas_BlackSea : Ind Sea ;
-
-fun Seas_CaribbeanSea : Ind Sea ;
-
-fun Seas_EastChinaSea : Ind Sea ;
-
-fun Seas_GulfofAden : Ind Sea ;
-
-fun Seas_GulfofMexico : Ind Sea ;
-
-fun Seas_IndianOcean : Ind Sea ;
-
-fun Seas_IrishSea : Ind Sea ;
-
-fun Seas_MediterraneanSea : Ind Sea ;
-
-fun Seas_NorthSea : Ind Sea ;
-
-fun Seas_NorwegianSea : Ind Sea ;
-
-fun Seas_PacificOcean : Ind Sea ;
-
-fun Seas_PersianGulf : Ind Sea ;
-
-fun Seas_RedSea : Ind Sea ;
-
-fun Seas_SeaofAzov : Ind Sea ;
-
-fun Seas_SeaofJapan : Ind Sea ;
-
-fun Seas_SouthChinaSea : Ind Sea ;
-
-fun Seas_SundaSea : Ind Sea ;
-
-fun Seas_YellowSea : Ind Sea ;
-
-fun Senegal : Ind (both Country Nation);
-
-fun SerbiaAndMontenegro : Ind (both Country Nation);
-
-fun Seychelles : Ind (both Country Nation);
-
-fun SierraLeone : Ind (both Country Nation);
-
-fun Singapore : Ind (both Country Nation);
-
-fun Slovakia : Ind (both Country Nation);
-
-fun Slovenia : Ind (both Country Nation);
-
-fun SolomonIslands : Ind (both Country Nation);
-
-fun Somalia : Ind (both Country Nation);
-
-fun SouthAfrica : Ind (both Country Nation);
-
-fun SouthKorea : Ind (both Country Nation);
-
-fun Spain : Ind (both Country EuropeanNation);
-
-fun SriLanka : Ind (both Country Nation);
-
-fun Sudan : Ind (both Country Nation);
-
-fun Suriname : Ind (both Country Nation);
-
-fun Swaziland : Ind (both Country Nation);
-
-fun Sweden : Ind (both Country EuropeanNation);
-
-fun Switzerland : Ind (both Country EuropeanNation);
-
-fun Syria : Ind (both Country Nation);
-
-fun Taiwan : Ind (both Country Nation);
-
-fun Tajikistan : Ind (both Country Nation);
-
-fun Tanzania : Ind (both Country Nation);
-
-fun Thailand : Ind (both Country Nation);
-
-fun Togo : Ind (both Country Nation);
-
-fun Tonga : Ind (both Country Nation);
-
-fun TrinidadAndTobago : Ind (both Country Nation);
-
-fun Tunisia : Ind (both Country Nation);
-
-fun Turkey : Ind (both Country Nation);
-
-fun Turkmenistan : Ind (both Country Nation);
-
-fun Tuvalu : Ind (both Country Nation);
-
-fun Uganda : Ind (both Country Nation);
-
-fun Ukraine : Ind (both Country Nation);
-
-fun UnitedArabEmirates : Ind (both Country EuropeanNation);
-
-fun UnitedKingdom : Ind (both Country Nation);
-
-fun UnitedStates : Ind (both Country Nation);
-
-fun Uruguay : Ind (both Country Nation);
-
-fun Uzbekistan : Ind (both Country Nation);
-
-fun Vanuatu : Ind (both Country Nation);
-
-fun Venezuela : Ind (both Country Nation);
-
-fun Vietnam : Ind (both Country Nation);
-
-fun WesternSahara : Ind (both Country (both Nation GeopoliticalArea)) ;
-
-fun WesternSamoa : Ind Country ;
-
-fun Yemen : Ind (both Country Nation);
-
-fun Zaire : Ind Country ;
-
-fun Zambia : Ind (both Country Nation);
-
-fun flowsInto : El River -> El Sea -> Formula ;
-
-fun geographicalSubregion : El City -> El Province -> Formula ;
-
-fun hasHeadq : El Organization -> El City -> Formula ;
-}
diff --git a/examples/SUMO/mondialEng.gf b/examples/SUMO/mondialEng.gf
deleted file mode 100644
--- a/examples/SUMO/mondialEng.gf
+++ /dev/null
@@ -1,5558 +0,0 @@
---# -path=.:englishExtended
-concrete mondialEng of mondial = BasicEng ** open ParadigmsEng,NounEng  in {
-
-lin 
-
-Countries_H_provinces_Pest = UsePN (mkPN "Pest") ;
-Countries_THA_provinces_KamphaengPhet = UsePN (mkPN "Kamphaeng Phet") ;
-CapeVerde = UsePN (mkPN "Cape Verde") ;
-Countries_USA_provinces_Illinois_cities_Naperville = UsePN (mkPN "Naperville") ;
-Countries_USA_provinces_NorthCarolina_cities_Greensboro = UsePN (mkPN "Greensboro") ;
-Countries_EAK_provinces_RiftValley_cities_Nakuru = UsePN (mkPN "Nakuru") ;
-Countries_TJ_provinces_Guangdong_cities_Shenzhen = UsePN (mkPN "Shenzhen") ;
-Islands_St_Helena = UsePN (mkPN "St. Helena") ;
-Countries_F_provinces_IledeFrance_cities_BoulogneBillancourt = UsePN (mkPN "Boulogne Billancourt") ;
-Countries_ETH_cities_Nazret = UsePN (mkPN "Nazret") ;
-Countries_IR_provinces_AzarbayianeGharbt_cities_Khvoy = UsePN (mkPN "Khvoy") ;
-Countries_TJ_provinces_Jilin_cities_Jilin = UsePN (mkPN "Jilin") ;
-Countries_ES_provinces_Sonsonate_cities_Sonsonate = UsePN (mkPN "Sonsonate") ;
-Countries_H_provinces_Heves = UsePN (mkPN "Heves") ;
-Countries_UA_provinces_Odeska = UsePN (mkPN "Odeska") ;
-Countries_BR_provinces_SaoPaulo_cities_Guarulhos = UsePN (mkPN "Guarulhos") ;
-Countries_TJ_provinces_NeiMonggol_cities_Yakeshi = UsePN (mkPN "Yakeshi") ;
-Countries_THA_provinces_SaKaeo = UsePN (mkPN "Sa Kaeo") ;
-Countries_YV_provinces_Trujillo = UsePN (mkPN "Trujillo") ;
-Countries_N_provinces_Hordaland_cities_Bergen = UsePN (mkPN "Bergen") ;
-Countries_RO_provinces_Suceava = UsePN (mkPN "Suceava") ;
-Countries_TJ_provinces_Hubei_cities_Puqi = UsePN (mkPN "Puqi") ;
-Countries_RSA_provinces_Gauteng_cities_Soweto = UsePN (mkPN "Soweto") ;
-Countries_TR_provinces_Giresun_cities_Giresun = UsePN (mkPN "Giresun") ;
-Islands_Anguilla = UsePN (mkPN "Anguilla") ;
-Countries_J_provinces_Fukushima = UsePN (mkPN "Fukushima") ;
-Islands_SaintLucia = UsePN (mkPN "Saint Lucia") ;
-Zaire = UsePN (mkPN "Zaire") ;
-Countries_NOK_cities_Sunchon = UsePN (mkPN "Sunchon") ;
-Countries_RI_cities_Binjai = UsePN (mkPN "Binjai") ;
-Countries_S_provinces_Sodermanland_cities_Nykoping = UsePN (mkPN "Nykoping") ;
-Countries_cid_cia_Aruba = UsePN (mkPN "Aruba") ;
-Countries_HCA_provinces_Atlantida_cities_LaCeiba = UsePN (mkPN "La Ceiba") ;
-Countries_C_provinces_IsladelaJuventud_cities_NuevaGerona = UsePN (mkPN "Nueva Gerona") ;
-Countries_TR_provinces_Mugla_cities_Mugla = UsePN (mkPN "Mugla") ;
-Countries_IND_provinces_HimachalPradesh_cities_Simla = UsePN (mkPN "Simla") ;
-Countries_BR_provinces_SantaCatarina_cities_Blumenau = UsePN (mkPN "Blumenau") ;
-Countries_D_provinces_Hessen_cities_Wiesbaden = UsePN (mkPN "Wiesbaden") ;
-Countries_BD_cities_Saidpur = UsePN (mkPN "Saidpur") ;
-Islands_PortoSanto = UsePN (mkPN "Porto Santo") ;
-Countries_TJ_provinces_Jiangsu_cities_Huaian = UsePN (mkPN "Huaian") ;
-Countries_RO_provinces_Tulcea_cities_Tulcea = UsePN (mkPN "Tulcea") ;
-Countries_HCA_provinces_Copan = UsePN (mkPN "Copan") ;
-Countries_PK_cities_Sheikhupura = UsePN (mkPN "Sheikhupura") ;
-Countries_IRQ_provinces_Ninawa_cities_Mosul = UsePN (mkPN "Mosul") ;
-Countries_CZ_provinces_Jihocesky_cities_CeskeBudejovice = UsePN (mkPN "Ceske Budejovice") ;
-Countries_PL_provinces_Lodzkie_cities_Lodz = UsePN (mkPN "Lodz") ;
-Countries_MS_cities_PortLouis = UsePN (mkPN "Port Louis") ;
-Organizations_G_5 = UsePN (mkPN "Group of 5") ;
-Countries_R_provinces_Rep_ofBashkortostan_cities_Oktyabrsky = UsePN (mkPN "Oktyabrsky") ;
-Countries_D_provinces_Hessen_cities_FrankfurtamMain = UsePN (mkPN "Frankfurt am Main") ;
-Countries_CDN_provinces_NewBrunswick = UsePN (mkPN "New Brunswick") ;
-Countries_IS_cities_Reykjavik = UsePN (mkPN "Reykjavik") ;
-Countries_GB_provinces_Swansea = UsePN (mkPN "Swansea") ;
-Countries_GB_provinces_Flintshire_cities_Mold = UsePN (mkPN "Mold") ;
-Countries_USA_provinces_Indiana_cities_FortWayne = UsePN (mkPN "Fort Wayne") ;
-Countries_IND_provinces_WestBengal_cities_Calcutta = UsePN (mkPN "Calcutta") ;
-Countries_ET_provinces_BurSaid_munic = UsePN (mkPN "Bur Said (munic.)") ;
-Countries_RP_cities_Makati = UsePN (mkPN "Makati") ;
-Countries_I_provinces_Puglia_cities_Taranto = UsePN (mkPN "Taranto") ;
-Countries_I_provinces_ValledAosta_cities_Aosta = UsePN (mkPN "Aosta") ;
-Countries_I_provinces_FriuliVeneziaGiulia = UsePN (mkPN "Friuli Venezia Giulia") ;
-Countries_UZB_provinces_Toshkent = UsePN (mkPN "Toshkent") ;
-Countries_BG_cities_Sofia = UsePN (mkPN "Sofia") ;
-Countries_BR_provinces_MatoGrosso_cities_Cuiaba = UsePN (mkPN "Cuiaba") ;
-Countries_YV_cities_SantaAnadeCoro = UsePN (mkPN "Santa Ana de Coro") ;
-Countries_USA_provinces_Michigan_cities_GrandRapids = UsePN (mkPN "Grand Rapids") ;
-Countries_PA_provinces_Panama_cities_PanamaCity = UsePN (mkPN "Panama City") ;
-Countries_GB_provinces_Wiltshire = UsePN (mkPN "Wiltshire") ;
-Countries_R_provinces_Rep_ofAltay_cities_GornoAltaysk = UsePN (mkPN "Gorno Altaysk") ;
-Countries_TAD_provinces_Khatlon_cities_Qurghonteppa = UsePN (mkPN "Qurghonteppa") ;
-Countries_IR_provinces_AzarbayianeGharbt_cities_Orumiyeh = UsePN (mkPN "Orumiyeh") ;
-Countries_TR_provinces_Aksaray_cities_Aksaray = UsePN (mkPN "Aksaray") ;
-Countries_KAZ_provinces_Qostanay_cities_Rudny = UsePN (mkPN "Rudny") ;
-Countries_CO_provinces_Caldas = UsePN (mkPN "Caldas") ;
-Countries_ET_provinces_Aswan = UsePN (mkPN "Aswan") ;
-Gambia = UsePN (mkPN "Gambia") ;
-Countries_EAT_provinces_Arusha = UsePN (mkPN "Arusha") ;
-Countries_UA_provinces_Dnipropetrovska = UsePN (mkPN "Dnipropetrovska") ;
-Countries_ET_provinces_Ismailiya_cities_Ismailiya = UsePN (mkPN "Ismailiya") ;
-Countries_RO_provinces_Arad_cities_Arad = UsePN (mkPN "Arad") ;
-Islands_NewCaledonia = UsePN (mkPN "New Caledonia") ;
-Countries_cid_cia_Pitcairn_Islands_cities_Adamstown = UsePN (mkPN "Adamstown") ;
-Countries_TR_provinces_Sinop_cities_Sinop = UsePN (mkPN "Sinop") ;
-Organizations_ICRC = UsePN (mkPN "International Committee of the Red Cross") ;
-Countries_IND_provinces_UttarPradesh_cities_Lucknow = UsePN (mkPN "Lucknow") ;
-Islands_Barbuda = UsePN (mkPN "Barbuda") ;
-Countries_RO_provinces_Cluj = UsePN (mkPN "Cluj") ;
-Countries_N_provinces_VestAgder = UsePN (mkPN "Vest Agder") ;
-Countries_AUS_provinces_AustraliaCapitalTerritory_cities_Canberra = UsePN (mkPN "Canberra") ;
-Countries_GB_provinces_Hampshire = UsePN (mkPN "Hampshire") ;
-Countries_VN_cities_HongGai = UsePN (mkPN "Hong Gai") ;
-Countries_RA_provinces_Chaco = UsePN (mkPN "Chaco") ;
-Rivers_Colorado = UsePN (mkPN "Colorado") ;
-Countries_PA_provinces_Cocle_cities_Penonome = UsePN (mkPN "Penonome") ;
-Countries_R_provinces_ChechenRep__cities_Grozny = UsePN (mkPN "Grozny") ;
-Countries_USA_provinces_Pennsylvania_cities_Erie = UsePN (mkPN "Erie") ;
-Countries_NL_provinces_Limburg = UsePN (mkPN "Limburg") ;
-Countries_UA_provinces_Volynska = UsePN (mkPN "Volynska") ;
-Countries_R_provinces_Ulyanovskayaoblast = UsePN (mkPN "Ulyanovskaya oblast") ;
-Countries_GB_provinces_GreaterManchester_cities_Stockport = UsePN (mkPN "Stockport") ;
-Countries_MYA_provinces_Kachin = UsePN (mkPN "Kachin") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Munster = UsePN (mkPN "Munster") ;
-Countries_VN_provinces_NgheAn = UsePN (mkPN "Nghe An") ;
-Countries_TR_provinces_Kayseri = UsePN (mkPN "Kayseri") ;
-Countries_TJ_provinces_Jilin_cities_Jiutai = UsePN (mkPN "Jiutai") ;
-Countries_J_provinces_Yamanashi = UsePN (mkPN "Yamanashi") ;
-Countries_RC_provinces_Tainan = UsePN (mkPN "Tainan") ;
-Countries_C_provinces_VillaClara = UsePN (mkPN "Villa Clara") ;
-Countries_BR_cities_Hortolandia = UsePN (mkPN "Hortolandia") ;
-Congo = UsePN (mkPN "Congo") ;
-Countries_USA_provinces_NewYork_cities_Syracuse = UsePN (mkPN "Syracuse") ;
-Mountains_Haltiatunturi = UsePN (mkPN "Haltiatunturi") ;
-Seas_IndianOcean = UsePN (mkPN "Indian Ocean") ;
-Islands_Gotland = UsePN (mkPN "Gotland") ;
-Countries_J_provinces_Kagawa_cities_Takamatsu = UsePN (mkPN "Takamatsu") ;
-Countries_TR_provinces_Kutahya = UsePN (mkPN "Kutahya") ;
-Countries_BR_provinces_Parana_cities_Guarapuava = UsePN (mkPN "Guarapuava") ;
-Organizations_PCA = UsePN (mkPN "Permanent Court of Arbitration") ;
-Rivers_Jangtse_Kiang = UsePN (mkPN "Jangtse-Kiang") ;
-Countries_CAM_provinces_Ouest = UsePN (mkPN "Ouest") ;
-Countries_ROK_cities_Kunsan = UsePN (mkPN "Kunsan") ;
-Organizations_ASEAN = UsePN (mkPN "Association of Southeast Asian Nations") ;
-Islands_Islay = UsePN (mkPN "Islay") ;
-Deserts_GrandErgOuest = UsePN (mkPN "Grand Erg Ouest") ;
-Countries_MA_cities_Rabat = UsePN (mkPN "Rabat") ;
-Countries_ES_provinces_SanSalvador_cities_SanSalvador = UsePN (mkPN "San Salvador") ;
-Countries_IR_provinces_Gilan = UsePN (mkPN "Gilan") ;
-Countries_E_provinces_Galicia_cities_SantiagodeCompostella = UsePN (mkPN "Santiago de Compostella") ;
-Countries_SF_provinces_Aland = UsePN (mkPN "Aland") ;
-Countries_HCA_provinces_Comayagua_cities_Comayagua = UsePN (mkPN "Comayagua") ;
-Countries_RSA_cities_Benoni = UsePN (mkPN "Benoni") ;
-Countries_TJ_provinces_Jiangsu_cities_Wuxi = UsePN (mkPN "Wuxi") ;
-Countries_WAN_cities_Ogbomosho = UsePN (mkPN "Ogbomosho") ;
-Countries_MEX_provinces_Chihuahua_cities_Juarez = UsePN (mkPN "Juarez") ;
-Countries_cid_cia_Saint_Helena = UsePN (mkPN "Saint Helena") ;
-Countries_TJ_provinces_Shaanxi_cities_Xian = UsePN (mkPN "Xian") ;
-Countries_TJ_provinces_NeiMonggol = UsePN (mkPN "Nei Monggol") ;
-Countries_SF_provinces_Uusimaa = UsePN (mkPN "Uusimaa") ;
-Countries_D_provinces_Hessen_cities_OffenbachamMain = UsePN (mkPN "Offenbach am Main") ;
-Countries_TJ_provinces_Fujian_cities_Longyan = UsePN (mkPN "Longyan") ;
-Countries_CH_provinces_BE_cities_Biel = UsePN (mkPN "Biel") ;
-Countries_KAZ_provinces_Aqtobe = UsePN (mkPN "Aqtobe") ;
-Countries_WAN_cities_Ikirun = UsePN (mkPN "Ikirun") ;
-Countries_TJ_provinces_Jiangsu_cities_Yancheng = UsePN (mkPN "Yancheng") ;
-Countries_UA_provinces_IvanoFrankivska_cities_IvanoFrankivsk = UsePN (mkPN "Ivano Frankivsk") ;
-Countries_GB_provinces_Bedfordshire = UsePN (mkPN "Bedfordshire") ;
-Countries_P_provinces_Braga_cities_Braga = UsePN (mkPN "Braga") ;
-Countries_BR_provinces_Rondonia = UsePN (mkPN "Rondonia") ;
-Countries_RSA_provinces_NorthernProvince_cities_Pietersburg = UsePN (mkPN "Pietersburg") ;
-Countries_CH_provinces_SZ_cities_Schwyz = UsePN (mkPN "Schwyz") ;
-Countries_PE_provinces_Ica = UsePN (mkPN "Ica") ;
-Countries_IND_provinces_Rajasthan_cities_Ajmer = UsePN (mkPN "Ajmer") ;
-Countries_F_provinces_ProvenceCotedAzur_cities_AixenProvence = UsePN (mkPN "Aix en Provence") ;
-Lakes_LakeNasser = UsePN (mkPN "Lake Nasser") ;
-Countries_TJ_provinces_Shandong_cities_Laiwu = UsePN (mkPN "Laiwu") ;
-Countries_GB_provinces_Surrey_cities_Guildford = UsePN (mkPN "Guildford") ;
-Countries_WAN_cities_Ife = UsePN (mkPN "Ife") ;
-Countries_E_provinces_Andalusia_cities_JerezdelaFrontera = UsePN (mkPN "Jerez de la Frontera") ;
-Mountains_Jostedalsbre = UsePN (mkPN "Jostedalsbre") ;
-Rivers_Mississippi = UsePN (mkPN "Mississippi") ;
-Countries_R_provinces_Sverdlovskayaoblast = UsePN (mkPN "Sverdlovskaya oblast") ;
-Countries_YU_cities_Belgrade = UsePN (mkPN "Belgrade") ;
-Countries_ET_provinces_ElBuhayra_cities_Damanhur = UsePN (mkPN "Damanhur") ;
-Countries_MEX_provinces_Hidalgo_cities_PachucadeSoto = UsePN (mkPN "Pachuca de Soto") ;
-Countries_TJ_provinces_Guangdong_cities_Chaozhou = UsePN (mkPN "Chaozhou") ;
-Countries_H_provinces_Szeged_munic = UsePN (mkPN "Szeged (munic.)") ;
-Countries_MEX_provinces_Oaxaca = UsePN (mkPN "Oaxaca") ;
-Countries_USA_provinces_Oregon = UsePN (mkPN "Oregon") ;
-Countries_SF_provinces_Kymi = UsePN (mkPN "Kymi") ;
-Countries_KAZ_provinces_Aqmola = UsePN (mkPN "Aqmola") ;
-Countries_R_provinces_Penzenskayaoblast = UsePN (mkPN "Penzenskaya oblast") ;
-Countries_USA_provinces_Oregon_cities_Salem = UsePN (mkPN "Salem") ;
-Countries_USA_provinces_Connecticut_cities_NewHaven = UsePN (mkPN "New Haven") ;
-Countries_R_provinces_Arkhangelskayaoblast_cities_Severodvinsk = UsePN (mkPN "Severodvinsk") ;
-Countries_I_provinces_EmiliaRomagna_cities_Parma = UsePN (mkPN "Parma") ;
-Countries_TJ_provinces_Hubei_cities_Echeng = UsePN (mkPN "Echeng") ;
-Countries_PL_provinces_Torunskie_cities_Grudziadz = UsePN (mkPN "Grudziadz") ;
-Ireland = UsePN (mkPN "Ireland") ;
-Countries_USA_provinces_Florida_cities_Orlando = UsePN (mkPN "Orlando") ;
-Countries_YV_provinces_Zulia_cities_Cabimas = UsePN (mkPN "Cabimas") ;
-Countries_GB_provinces_Lancashire_cities_Blackpool = UsePN (mkPN "Blackpool") ;
-Countries_S_provinces_Kopparberg_cities_Falun = UsePN (mkPN "Falun") ;
-Countries_TJ_provinces_Henan_cities_Puyang = UsePN (mkPN "Puyang") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_Prokopyevsk = UsePN (mkPN "Prokopyevsk") ;
-Countries_D_provinces_Sachsen_cities_Dresden = UsePN (mkPN "Dresden") ;
-Lakes_LakeAmadeus = UsePN (mkPN "Lake Amadeus") ;
-Islands_Maui = UsePN (mkPN "Maui") ;
-Countries_F_provinces_LanguedocRousillon_cities_Montpellier = UsePN (mkPN "Montpellier") ;
-Countries_PL_provinces_Olsztynskie = UsePN (mkPN "Olsztynskie") ;
-Countries_UZB_provinces_Samarqand_cities_Samarqand = UsePN (mkPN "Samarqand") ;
-Countries_USA_provinces_California_cities_CostaMesa = UsePN (mkPN "Costa Mesa") ;
-Countries_IRQ_provinces_Baghdad = UsePN (mkPN "Baghdad") ;
-Countries_THA_provinces_ChiangRai = UsePN (mkPN "Chiang Rai") ;
-Countries_IND_provinces_UttarPradesh = UsePN (mkPN "Uttar Pradesh") ;
-Countries_TR_provinces_Bayburt = UsePN (mkPN "Bayburt") ;
-Countries_F_provinces_ProvenceCotedAzur_cities_Toulon = UsePN (mkPN "Toulon") ;
-Countries_TJ_provinces_Jilin_cities_Dunhua = UsePN (mkPN "Dunhua") ;
-Countries_TR_provinces_Icel_cities_Tarsus = UsePN (mkPN "Tarsus") ;
-Countries_TR_provinces_Antalya = UsePN (mkPN "Antalya") ;
-Countries_USA_provinces_Virginia_cities_Portsmouth = UsePN (mkPN "Portsmouth") ;
-Countries_I_provinces_Puglia_cities_Foggia = UsePN (mkPN "Foggia") ;
-Countries_P_provinces_Lisbon_cities_Amadora = UsePN (mkPN "Amadora") ;
-Countries_BR_provinces_SaoPaulo_cities_RibeiraoPires = UsePN (mkPN "Ribeirao Pires") ;
-Countries_USA_provinces_Indiana = UsePN (mkPN "Indiana") ;
-Islands_Jura = UsePN (mkPN "Jura") ;
-Countries_S_provinces_Gotland_cities_Visby = UsePN (mkPN "Visby") ;
-Countries_UA_provinces_Lvivska = UsePN (mkPN "Lvivska") ;
-Countries_PL_provinces_Wloclawskie_cities_Wloclawek = UsePN (mkPN "Wloclawek") ;
-Countries_USA_provinces_Michigan_cities_Warren = UsePN (mkPN "Warren") ;
-Organizations_IFC = UsePN (mkPN "International Finance Corporation") ;
-DominicanRepublic = UsePN (mkPN "Dominican Republic") ;
-Countries_TJ_provinces_Guangdong_cities_Meixian = UsePN (mkPN "Meixian") ;
-Countries_GB_provinces_IsleofWight = UsePN (mkPN "Isle of Wight") ;
-Countries_USA_provinces_NewYork_cities_Buffalo = UsePN (mkPN "Buffalo") ;
-Countries_PE_provinces_Huancavelica = UsePN (mkPN "Huancavelica") ;
-Countries_VN_provinces_KonTum = UsePN (mkPN "Kon Tum") ;
-Islands_Negros = UsePN (mkPN "Negros") ;
-Deserts_ErgSchesch = UsePN (mkPN "Erg Schesch") ;
-Countries_TJ_provinces_Fujian_cities_Quanzhou = UsePN (mkPN "Quanzhou") ;
-Countries_UAE_cities_Sharjah = UsePN (mkPN "Sharjah") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Jabalpur = UsePN (mkPN "Jabalpur") ;
-Countries_ES_provinces_Cuscatlan = UsePN (mkPN "Cuscatlan") ;
-Countries_cid_cia_Jersey_cities_SaintHelier = UsePN (mkPN "Saint Helier") ;
-Mountains_MaunaKea = UsePN (mkPN "Mauna Kea") ;
-Countries_TJ_provinces_Shanxi_cities_Yangquan = UsePN (mkPN "Yangquan") ;
-Countries_cid_cia_Wallis_and_Futuna = UsePN (mkPN "Wallis and Futuna") ;
-Countries_BR_provinces_RiodeJaneiro_cities_CaboFrio = UsePN (mkPN "Cabo Frio") ;
-Rivers_Atbara = UsePN (mkPN "Atbara") ;
-Countries_BR_provinces_RioGrandedoSul_cities_SaoLeopoldo = UsePN (mkPN "Sao Leopoldo") ;
-Countries_IND_provinces_DadraandNagarHaveli = UsePN (mkPN "Dadra and Nagar Haveli") ;
-Countries_RA_provinces_BuenosAires_cities_GeneralSanMartin = UsePN (mkPN "General San Martin") ;
-Countries_UA_provinces_Khmelnytska = UsePN (mkPN "Khmelnytska") ;
-Countries_F_provinces_Centre_cities_Orleans = UsePN (mkPN "Orleans") ;
-Countries_BR_provinces_SaoPaulo_cities_Itaquaquecetuba = UsePN (mkPN "Itaquaquecetuba") ;
-Rivers_Kulu = UsePN (mkPN "Kulu") ;
-Countries_MEX_provinces_Sonora_cities_CiudadObregon = UsePN (mkPN "Ciudad Obregon") ;
-Countries_TJ_provinces_NeiMonggol_cities_Hailar = UsePN (mkPN "Hailar") ;
-Countries_AG_cities_SaintJohns = UsePN (mkPN "Saint Johns") ;
-Countries_FJI_cities_Suva = UsePN (mkPN "Suva") ;
-Countries_ANG_provinces_LundaSul_cities_Saurimo = UsePN (mkPN "Saurimo") ;
-Countries_PE_provinces_Loreto_cities_Iquitos = UsePN (mkPN "Iquitos") ;
-Countries_SUD_provinces_alKhartum_cities_Omdurman = UsePN (mkPN "Omdurman") ;
-Countries_KAZ_provinces_Mangghystau = UsePN (mkPN "Mangghystau") ;
-Mountains_Tahat = UsePN (mkPN "Tahat") ;
-Organizations_UNU = UsePN (mkPN "United Nations University") ;
-Countries_EAK_provinces_NorthEastern = UsePN (mkPN "North Eastern") ;
-Countries_WAN_cities_Maiduguri = UsePN (mkPN "Maiduguri") ;
-Countries_NL_provinces_Overijssel_cities_Enschede = UsePN (mkPN "Enschede") ;
-Countries_GQ_cities_Malabo = UsePN (mkPN "Malabo") ;
-Countries_TJ_provinces_Shaanxi_cities_Baoji = UsePN (mkPN "Baoji") ;
-Countries_H_provinces_Fejer = UsePN (mkPN "Fejer") ;
-Mountains_KingsPeak = UsePN (mkPN "Kings Peak") ;
-Countries_PL_provinces_Bialskopodlaskie_cities_BialaPodlaska = UsePN (mkPN "Biala Podlaska") ;
-Countries_IL_provinces_Central_cities_Ramla = UsePN (mkPN "Ramla") ;
-Countries_TR_provinces_Sirnak_cities_Sirnak = UsePN (mkPN "Sirnak") ;
-Countries_J_provinces_Nagasaki = UsePN (mkPN "Nagasaki") ;
-Countries_EAT_provinces_Mtwara_cities_MtwaraMikandani = UsePN (mkPN "Mtwara Mikandani") ;
-Countries_RO_provinces_Botosani_cities_Botosani = UsePN (mkPN "Botosani") ;
-Countries_TR_provinces_Gaziantep_cities_Gaziantep = UsePN (mkPN "Gaziantep") ;
-Countries_EAT_provinces_Mara = UsePN (mkPN "Mara") ;
-Countries_BRN_cities_Manama = UsePN (mkPN "Manama") ;
-Lakes_Bodensee = UsePN (mkPN "Bodensee") ;
-Countries_NAU_cities_Yaren = UsePN (mkPN "Yaren") ;
-Countries_NOK_cities_Chongjin = UsePN (mkPN "Chongjin") ;
-Countries_E_provinces_Aragon_cities_Zaragoza = UsePN (mkPN "Zaragoza") ;
-Countries_GB_provinces_Nottinghamshire_cities_Mansfield = UsePN (mkPN "Mansfield") ;
-Countries_USA_provinces_Kentucky_cities_LexingtonFayette = UsePN (mkPN "Lexington Fayette") ;
-Countries_PE_provinces_Lambayeque = UsePN (mkPN "Lambayeque") ;
-Countries_Z_provinces_Western_cities_Mongu = UsePN (mkPN "Mongu") ;
-Countries_R_provinces_Ulyanovskayaoblast_cities_Simbirsk = UsePN (mkPN "Simbirsk") ;
-Countries_ANG_provinces_LundaSul = UsePN (mkPN "Lunda Sul") ;
-Rivers_Ruvuma = UsePN (mkPN "Ruvuma") ;
-Countries_TJ_provinces_Shandong_cities_Zhucheng = UsePN (mkPN "Zhucheng") ;
-Countries_BR_provinces_Pernambuco_cities_Paulista = UsePN (mkPN "Paulista") ;
-Djibouti = UsePN (mkPN "Djibouti") ;
-Countries_RI_cities_Semarang = UsePN (mkPN "Semarang") ;
-Countries_IRQ_provinces_Karbala = UsePN (mkPN "Karbala") ;
-Countries_PL_provinces_Jeleniogorskie_cities_JeleniaGora = UsePN (mkPN "Jelenia Gora") ;
-Brunei = UsePN (mkPN "Brunei") ;
-Countries_TR_provinces_Bayburt_cities_Bayburt = UsePN (mkPN "Bayburt") ;
-Countries_IND_provinces_Orissa_cities_Bhubaneswar = UsePN (mkPN "Bhubaneswar") ;
-Mountains_PikMoskva = UsePN (mkPN "Pik Moskva") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Recklinghausen = UsePN (mkPN "Recklinghausen") ;
-Countries_IRQ_provinces_AnNajaf_cities_AnNajaf = UsePN (mkPN "An Najaf") ;
-Countries_TR_provinces_Hakkari_cities_Hakkari = UsePN (mkPN "Hakkari") ;
-Countries_BR_provinces_MinasGerais_cities_Varginha = UsePN (mkPN "Varginha") ;
-Countries_H_provinces_Debrecen_munic_cities_Debrecen = UsePN (mkPN "Debrecen") ;
-Rivers_Benue = UsePN (mkPN "Benue") ;
-Countries_TJ_provinces_Hubei_cities_Xianning = UsePN (mkPN "Xianning") ;
-Organizations_Interpol = UsePN (mkPN "International Criminal Police Organization") ;
-Countries_USA_provinces_Iowa_cities_DesMoines = UsePN (mkPN "Des Moines") ;
-Countries_TJ_provinces_Jiangsu_cities_Yangzhou = UsePN (mkPN "Yangzhou") ;
-Islands_Molokai = UsePN (mkPN "Molokai") ;
-Organizations_EFTA = UsePN (mkPN "European Free Trade Association") ;
-Organizations_SELA = UsePN (mkPN "Sistema Economico Latinoamericana") ;
-Countries_E_provinces_Murcia_cities_Cartagena = UsePN (mkPN "Cartagena") ;
-Countries_USA_provinces_Nevada_cities_Reno = UsePN (mkPN "Reno") ;
-Countries_PL_provinces_Krosnienskie = UsePN (mkPN "Krosnienskie") ;
-Countries_S_provinces_Malmohus = UsePN (mkPN "Malmohus") ;
-Countries_ES_cities_Mejicanos = UsePN (mkPN "Mejicanos") ;
-Countries_IRQ_provinces_Diyala_cities_Baqubah = UsePN (mkPN "Baqubah") ;
-Islands_Lampedusa = UsePN (mkPN "Lampedusa") ;
-Countries_CH_provinces_NW = UsePN (mkPN "NW") ;
-Islands_Panay = UsePN (mkPN "Panay") ;
-Seas_GulfofAden = UsePN (mkPN "Gulf of Aden") ;
-Countries_J_provinces_Tottori = UsePN (mkPN "Tottori") ;
-Countries_N_provinces_Nordland_cities_Bodoe = UsePN (mkPN "Bodoe") ;
-Countries_MYA_provinces_Sagaing_cities_Sagaing = UsePN (mkPN "Sagaing") ;
-Countries_J_provinces_Wakayama_cities_Wakayama = UsePN (mkPN "Wakayama") ;
-Countries_TR_provinces_Kocaeli_cities_Kocaeli = UsePN (mkPN "Kocaeli") ;
-Countries_NL_provinces_NoordBrabant_cities_Tilburg = UsePN (mkPN "Tilburg") ;
-Countries_HCA_provinces_Valle_cities_Nacaome = UsePN (mkPN "Nacaome") ;
-Countries_P_provinces_Madeira = UsePN (mkPN "Madeira") ;
-Countries_PL_provinces_Elblaskie = UsePN (mkPN "Elblaskie") ;
-Countries_USA_provinces_Kansas_cities_Topeka = UsePN (mkPN "Topeka") ;
-Countries_N_provinces_Oslo_cities_Oslo = UsePN (mkPN "Oslo") ;
-Countries_IND_provinces_AndamanandNicobarIs_ = UsePN (mkPN "Andaman and Nicobar Is.") ;
-Countries_GB_provinces_BlaenauGwent_cities_EbbwVale = UsePN (mkPN "Ebbw Vale") ;
-Countries_THA_provinces_Phatthalung = UsePN (mkPN "Phatthalung") ;
-Countries_GB_provinces_Lothian_cities_Edinburgh = UsePN (mkPN "Edinburgh") ;
-Countries_USA_provinces_Texas_cities_McAllen = UsePN (mkPN "McAllen") ;
-Countries_MEX_provinces_Tamaulipas_cities_Matamoros = UsePN (mkPN "Matamoros") ;
-Countries_RI_cities_Padang = UsePN (mkPN "Padang") ;
-Countries_GB_provinces_NorthYorkshire_cities_York = UsePN (mkPN "York") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Odintsovo = UsePN (mkPN "Odintsovo") ;
-Countries_GB_provinces_WestYorkshire_cities_Leeds = UsePN (mkPN "Leeds") ;
-Organizations_UNRISD = UsePN (mkPN "United Nations Research Institute for Social Development") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Bhatpara = UsePN (mkPN "Bhatpara") ;
-Countries_SUD_provinces_Kurdufan_cities_alUbayyid = UsePN (mkPN "al Ubayyid") ;
-Countries_UAE_provinces_Ajman = UsePN (mkPN "Ajman") ;
-Countries_RC_provinces_Taichung_cities_Fengyuan = UsePN (mkPN "Fengyuan") ;
-Countries_TR_provinces_Isparta = UsePN (mkPN "Isparta") ;
-Countries_BD_cities_Jessore = UsePN (mkPN "Jessore") ;
-Countries_R_provinces_Saratovskayaoblast_cities_Engels = UsePN (mkPN "Engels") ;
-Countries_TR_provinces_Mus_cities_Mus = UsePN (mkPN "Mus") ;
-Countries_Q_cities_Wakrah = UsePN (mkPN "Wakrah") ;
-Seas_EastChinaSea = UsePN (mkPN "East China Sea") ;
-Organizations_ECOSOC = UsePN (mkPN "Economic and Social Council") ;
-Countries_TR_provinces_Rize_cities_Rize = UsePN (mkPN "Rize") ;
-Countries_EAT_provinces_Daressalam = UsePN (mkPN "Daressalam") ;
-Countries_GB_provinces_WestYorkshire = UsePN (mkPN "West Yorkshire") ;
-Islands_SouthamptonIsland = UsePN (mkPN "Southampton Island") ;
-Countries_C_provinces_Holguin_cities_Holguin = UsePN (mkPN "Holguin") ;
-Countries_cid_cia_Pitcairn_Islands = UsePN (mkPN "Pitcairn Islands") ;
-Countries_cid_cia_Baker_Island = UsePN (mkPN "Baker Island") ;
-Mountains_Grossglockner = UsePN (mkPN "Grossglockner") ;
-Countries_P_provinces_Viseu = UsePN (mkPN "Viseu") ;
-Countries_VN_cities_CamPha = UsePN (mkPN "Cam Pha") ;
-Countries_TM_provinces_Mary_cities_Mary = UsePN (mkPN "Mary") ;
-Countries_R_provinces_Ivanovskayaoblast_cities_Ivanovo = UsePN (mkPN "Ivanovo") ;
-Countries_D_provinces_Bayern_cities_Ingolstadt = UsePN (mkPN "Ingolstadt") ;
-Countries_MYA_provinces_Shan_cities_Taunggyi = UsePN (mkPN "Taunggyi") ;
-Organizations_ECA = UsePN (mkPN "Economic Commission for Africa") ;
-Countries_USA_provinces_Nevada_cities_CarsonCity = UsePN (mkPN "Carson City") ;
-Countries_PL_provinces_Ciechanowskie_cities_Ciechanow = UsePN (mkPN "Ciechanow") ;
-Countries_B_provinces_Liege = UsePN (mkPN "Liege") ;
-Countries_F_provinces_Bretagne = UsePN (mkPN "Bretagne") ;
-Countries_USA_provinces_Georgia_cities_Atlanta = UsePN (mkPN "Atlanta") ;
-Lakes_LakeTahoe = UsePN (mkPN "Lake Tahoe") ;
-Countries_EAT_provinces_Singida_cities_Singida = UsePN (mkPN "Singida") ;
-Countries_TJ_provinces_Jiangsu_cities_Zhenjiang = UsePN (mkPN "Zhenjiang") ;
-Countries_FL_cities_Vaduz = UsePN (mkPN "Vaduz") ;
-Countries_ANG_provinces_Bie_cities_Bie = UsePN (mkPN "Bie") ;
-Countries_TJ_provinces_Shandong_cities_Wendeng = UsePN (mkPN "Wendeng") ;
-Countries_USA_provinces_Alaska_cities_Juneau = UsePN (mkPN "Juneau") ;
-Countries_MEX_provinces_Tamaulipas_cities_CiudadMadero = UsePN (mkPN "Ciudad Madero") ;
-Countries_R_provinces_Rep_ofNorthOssetiya_cities_Vladikavkaz = UsePN (mkPN "Vladikavkaz") ;
-Countries_MYA_provinces_Bago = UsePN (mkPN "Bago") ;
-Countries_USA_provinces_Louisiana = UsePN (mkPN "Louisiana") ;
-Countries_RC_provinces_Taitung_cities_Taitung = UsePN (mkPN "Taitung") ;
-Countries_RO_provinces_Vaslui = UsePN (mkPN "Vaslui") ;
-Countries_HCA_provinces_SantaBarbara = UsePN (mkPN "Santa Barbara") ;
-Countries_THA_provinces_Chaiyaphum = UsePN (mkPN "Chaiyaphum") ;
-Countries_USA_provinces_California_cities_Berkeley = UsePN (mkPN "Berkeley") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Itaborai = UsePN (mkPN "Itaborai") ;
-Organizations_UNOMIL = UsePN (mkPN "United Nations Observer Mission in Liberia") ;
-Countries_ANG_provinces_Huila_cities_Lubango = UsePN (mkPN "Lubango") ;
-Countries_EAK_provinces_Central_cities_Thika = UsePN (mkPN "Thika") ;
-Countries_IR_provinces_Mazandaran_cities_Babol = UsePN (mkPN "Babol") ;
-Countries_TJ_provinces_Guangdong_cities_Jiangmen = UsePN (mkPN "Jiangmen") ;
-Kyrgyzstan = UsePN (mkPN "Kyrgyzstan") ;
-Countries_RO_provinces_Mures = UsePN (mkPN "Mures") ;
-Countries_CO_provinces_Tolima_cities_Ibague = UsePN (mkPN "Ibague") ;
-Countries_IR_provinces_Bakhtaran_cities_Bakhtaran = UsePN (mkPN "Bakhtaran") ;
-Countries_USA_provinces_Idaho = UsePN (mkPN "Idaho") ;
-Tuvalu = UsePN (mkPN "Tuvalu") ;
-Countries_B_provinces_Hainaut = UsePN (mkPN "Hainaut") ;
-Lakes_OzeroTaimyr = UsePN (mkPN "Ozero Taimyr") ;
-Countries_BR_provinces_SaoPaulo_cities_Itapevi = UsePN (mkPN "Itapevi") ;
-Countries_DZ_cities_Tlemcen = UsePN (mkPN "Tlemcen") ;
-Countries_BR_provinces_RiodeJaneiro_cities_NovoIguacu = UsePN (mkPN "Novo Iguacu") ;
-Countries_F_provinces_Alsace_cities_Mulhouse = UsePN (mkPN "Mulhouse") ;
-Islands_Fuenen = UsePN (mkPN "Fuenen") ;
-Countries_NL_provinces_Flevoland_cities_Lelystad = UsePN (mkPN "Lelystad") ;
-Countries_YV_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
-Countries_PE_provinces_MadredeDios = UsePN (mkPN "Madre de Dios") ;
-Countries_N_provinces_Vestfold = UsePN (mkPN "Vestfold") ;
-Countries_TJ_provinces_Shandong_cities_Taian = UsePN (mkPN "Taian") ;
-Countries_GB_provinces_Cheshire_cities_Macclesfield = UsePN (mkPN "Macclesfield") ;
-Countries_BR_provinces_Paraiba = UsePN (mkPN "Paraiba") ;
-Countries_YV_provinces_Miranda_cities_Guarenas = UsePN (mkPN "Guarenas") ;
-Countries_D_provinces_Hessen_cities_Kassel = UsePN (mkPN "Kassel") ;
-Countries_BD_cities_Gazipur = UsePN (mkPN "Gazipur") ;
-Countries_J_provinces_Tokushima = UsePN (mkPN "Tokushima") ;
-Countries_GB_provinces_Kent = UsePN (mkPN "Kent") ;
-Countries_USA_provinces_Texas_cities_Austin = UsePN (mkPN "Austin") ;
-Countries_EAT_provinces_Daressalam_cities_DaresSalaam = UsePN (mkPN "Dar es Salaam") ;
-Countries_IR_provinces_AzarbayianeSharqi_cities_Tabriz = UsePN (mkPN "Tabriz") ;
-Countries_HCA_provinces_Valle = UsePN (mkPN "Valle") ;
-Countries_THA_provinces_Lamphun = UsePN (mkPN "Lamphun") ;
-Countries_N_provinces_SoerTrondelag_cities_Trondheim = UsePN (mkPN "Trondheim") ;
-Islands_FernandoPoo = UsePN (mkPN "Fernando Poo") ;
-Mountains_Kinabalu = UsePN (mkPN "Kinabalu") ;
-Countries_TR_provinces_Sivas_cities_Sivas = UsePN (mkPN "Sivas") ;
-Countries_TJ_provinces_Jiangxi_cities_Jingdezhen = UsePN (mkPN "Jingdezhen") ;
-Countries_CI_cities_Yamoussoukro = UsePN (mkPN "Yamoussoukro") ;
-Organizations_G_7 = UsePN (mkPN "Group of 7") ;
-Countries_ZRE_provinces_KasaiOriental = UsePN (mkPN "Kasai Oriental") ;
-Countries_GB_provinces_Surrey = UsePN (mkPN "Surrey") ;
-Countries_EAT_provinces_KaskaziniUjunga_cities_Mkokotoni = UsePN (mkPN "Mkokotoni") ;
-PapuaNewGuinea = UsePN (mkPN "Papua New Guinea") ;
-Countries_I_provinces_Piemonte_cities_Turin = UsePN (mkPN "Turin") ;
-Countries_RH_cities_Port_au_Prince = UsePN (mkPN "Port-au-Prince") ;
-Morocco = UsePN (mkPN "Morocco") ;
-Countries_SF_provinces_Aland_cities_Mariehamn = UsePN (mkPN "Mariehamn") ;
-Countries_ES_provinces_Usulutan_cities_Usulutan = UsePN (mkPN "Usulutan") ;
-Countries_UA_provinces_Donetska_cities_Donetsk = UsePN (mkPN "Donetsk") ;
-Countries_BR_provinces_MinasGerais_cities_Sabara = UsePN (mkPN "Sabara") ;
-Countries_I_provinces_Lombardia_cities_Bergamo = UsePN (mkPN "Bergamo") ;
-Countries_IND_provinces_Gujarat = UsePN (mkPN "Gujarat") ;
-Countries_S_provinces_Blekinge_cities_Karlskrona = UsePN (mkPN "Karlskrona") ;
-Honduras = UsePN (mkPN "Honduras") ;
-Countries_USA_provinces_Alabama = UsePN (mkPN "Alabama") ;
-Countries_cid_cia_Christmas_Island = UsePN (mkPN "Christmas Island") ;
-Countries_IND_provinces_Kerala_cities_Trivandrum = UsePN (mkPN "Trivandrum") ;
-Countries_cid_cia_Christmas_Island_cities_TheSettlement = UsePN (mkPN "The Settlement") ;
-Countries_RO_provinces_Bucuresti_cities_Bucharest = UsePN (mkPN "Bucharest") ;
-Countries_BY_cities_Minsk = UsePN (mkPN "Minsk") ;
-Countries_TJ_provinces_Sichuan_cities_Wanxian = UsePN (mkPN "Wanxian") ;
-Countries_N_provinces_Hedmark_cities_Hamar = UsePN (mkPN "Hamar") ;
-Countries_E_provinces_Andalusia = UsePN (mkPN "Andalusia") ;
-Mountains_Bjelucha = UsePN (mkPN "Bjelucha") ;
-Countries_TJ_provinces_Jiangxi_cities_Jiujiang = UsePN (mkPN "Jiujiang") ;
-Countries_PE_provinces_Huanuco = UsePN (mkPN "Huanuco") ;
-Countries_RO_provinces_Hunedoara = UsePN (mkPN "Hunedoara") ;
-Countries_R_provinces_Samarskayaoblast_cities_Syzran = UsePN (mkPN "Syzran") ;
-Organizations_G_3 = UsePN (mkPN "Group of 3") ;
-Countries_BR_provinces_Para_cities_Maraba = UsePN (mkPN "Maraba") ;
-Countries_DZ_cities_Algiers = UsePN (mkPN "Algiers") ;
-Countries_RA_provinces_Tucuman = UsePN (mkPN "Tucuman") ;
-Countries_TJ_provinces_Guizhou_cities_Liupanshui = UsePN (mkPN "Liupanshui") ;
-Islands_Mayotta = UsePN (mkPN "Mayotta") ;
-Countries_I_provinces_EmiliaRomagna_cities_Ferrara = UsePN (mkPN "Ferrara") ;
-Lakes_LakeOhrid = UsePN (mkPN "Lake Ohrid") ;
-Countries_GB_provinces_Buckinghamshire_cities_Aylesbury = UsePN (mkPN "Aylesbury") ;
-Countries_GB_provinces_GreaterManchester_cities_Oldham = UsePN (mkPN "Oldham") ;
-Countries_IR_provinces_Khorasan_cities_Birjand = UsePN (mkPN "Birjand") ;
-Countries_CH_provinces_GL = UsePN (mkPN "GL") ;
-Hungary = UsePN (mkPN "Hungary") ;
-Countries_S_provinces_Kalmar_cities_Kalmar = UsePN (mkPN "Kalmar") ;
-Mountains_PikKarl_Marx = UsePN (mkPN "Pik Karl-Marx") ;
-Countries_DZ_cities_SidibelAbbes = UsePN (mkPN "Sidi bel Abbes") ;
-Countries_CO_provinces_Narino_cities_Tumaco = UsePN (mkPN "Tumaco") ;
-Countries_ET_provinces_Ismailiya = UsePN (mkPN "Ismailiya") ;
-Countries_RO_provinces_Iasi_cities_Iasi = UsePN (mkPN "Iasi") ;
-Rivers_Senegal = UsePN (mkPN "Senegal") ;
-Deserts_ErgdeBilma = UsePN (mkPN "Erg de Bilma") ;
-Mountains_Mt_Grebun = UsePN (mkPN "Mt-Grebun") ;
-Countries_BR_provinces_SaoPaulo_cities_Jau = UsePN (mkPN "Jau") ;
-Countries_TJ_provinces_Liaoning_cities_Haicheng = UsePN (mkPN "Haicheng") ;
-Countries_BR_provinces_RioGrandedoSul_cities_Uruguaiana = UsePN (mkPN "Uruguaiana") ;
-Countries_D_provinces_BadenWurttemberg_cities_Heilbronn = UsePN (mkPN "Heilbronn") ;
-Countries_cid_cia_Saint_Helena_cities_Jamestown = UsePN (mkPN "Jamestown") ;
-Organizations_CERN = UsePN (mkPN "European Organization for Nuclear Research") ;
-Countries_GB_provinces_Cardiff = UsePN (mkPN "Cardiff") ;
-Countries_TJ_provinces_Hubei_cities_Tianmen = UsePN (mkPN "Tianmen") ;
-Countries_BR_provinces_MinasGerais = UsePN (mkPN "Minas Gerais") ;
-Countries_R_provinces_Tyumenskayaoblast = UsePN (mkPN "Tyumenskaya oblast") ;
-Countries_IND_provinces_UttarPradesh_cities_Saharanpur = UsePN (mkPN "Saharanpur") ;
-Countries_R_provinces_ChuvashRepublic_cities_Novocheboksarsk = UsePN (mkPN "Novocheboksarsk") ;
-Organizations_CEPGL = UsePN (mkPN "Economic Community of the Great Lakes Countries") ;
-Countries_YV_provinces_Apure_cities_SanFernando = UsePN (mkPN "San Fernando") ;
-Countries_USA_provinces_California_cities_Modesto = UsePN (mkPN "Modesto") ;
-Countries_J_provinces_Shimane_cities_Matsue = UsePN (mkPN "Matsue") ;
-Countries_BZ_cities_Belmopan = UsePN (mkPN "Belmopan") ;
-Rivers_BlackDrin = UsePN (mkPN "Black Drin") ;
-Countries_TO_cities_Nukualofa = UsePN (mkPN "Nukualofa") ;
-Countries_TJ_provinces_Jiangxi_cities_Ganzhou = UsePN (mkPN "Ganzhou") ;
-Countries_NIC_cities_Managua = UsePN (mkPN "Managua") ;
-Countries_BD_cities_Rangpur = UsePN (mkPN "Rangpur") ;
-Countries_N_provinces_AustAgder = UsePN (mkPN "Aust Agder") ;
-Countries_USA_provinces_Hawaii = UsePN (mkPN "Hawaii") ;
-Lakes_OzeroTschany = UsePN (mkPN "Ozero Tschany") ;
-Countries_SF_provinces_Lappia_cities_Rovaniemi = UsePN (mkPN "Rovaniemi") ;
-Organizations_G_15 = UsePN (mkPN "Group of 15") ;
-Countries_USA_provinces_NewJersey = UsePN (mkPN "New Jersey") ;
-Countries_GB_provinces_Monmouthshire = UsePN (mkPN "Monmouthshire") ;
-Countries_TJ_provinces_Gansu_cities_Lanzhou = UsePN (mkPN "Lanzhou") ;
-Countries_IND_provinces_Sikkim = UsePN (mkPN "Sikkim") ;
-Countries_AL_cities_Shkoder = UsePN (mkPN "Shkoder") ;
-Islands_SaoTomeandPrincipe = UsePN (mkPN "Sao Tome and Principe") ;
-Countries_C_provinces_PinardelRio = UsePN (mkPN "Pinar del Rio") ;
-Countries_USA_provinces_California_cities_RanchoCucamonga = UsePN (mkPN "Rancho Cucamonga") ;
-Countries_TT_cities_Port_of_Spain = UsePN (mkPN "Port-of-Spain") ;
-Countries_R_provinces_Murmanskayaoblast_cities_Murmansk = UsePN (mkPN "Murmansk") ;
-Seas_PacificOcean = UsePN (mkPN "Pacific Ocean") ;
-Countries_AND_cities_AndorralaVella = UsePN (mkPN "Andorra la Vella") ;
-Countries_USA_provinces_Washington_cities_Olympia = UsePN (mkPN "Olympia") ;
-Countries_AUS_provinces_Tasmania_cities_Hobart = UsePN (mkPN "Hobart") ;
-Countries_IR_provinces_Mazandaran = UsePN (mkPN "Mazandaran") ;
-Islands_Lundy = UsePN (mkPN "Lundy") ;
-Countries_MEX_provinces_Colima = UsePN (mkPN "Colima") ;
-Tajikistan = UsePN (mkPN "Tajikistan") ;
-Countries_D_provinces_BadenWurttemberg_cities_Reutlingen = UsePN (mkPN "Reutlingen") ;
-Ecuador = UsePN (mkPN "Ecuador") ;
-Countries_USA_provinces_Oklahoma_cities_OklahomaCity = UsePN (mkPN "Oklahoma City") ;
-Countries_CDN_provinces_Ontario_cities_Hamilton = UsePN (mkPN "Hamilton") ;
-Countries_I_provinces_Campania = UsePN (mkPN "Campania") ;
-Countries_E_provinces_BasqueCountry_cities_VitoriaGasteiz = UsePN (mkPN "Vitoria Gasteiz") ;
-Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolski = UsePN (mkPN "Gorzow Wielkopolski") ;
-Countries_RI_cities_BandaAceh = UsePN (mkPN "Banda Aceh") ;
-Islands_SantaMaria = UsePN (mkPN "Santa Maria") ;
-Peru = UsePN (mkPN "Peru") ;
-Countries_KAZ_provinces_Almaty_munic = UsePN (mkPN "Almaty (munic.)") ;
-Countries_KN_cities_Basseterre = UsePN (mkPN "Basseterre") ;
-Countries_EAK_provinces_NorthEastern_cities_Garissa = UsePN (mkPN "Garissa") ;
-Countries_IND_provinces_Rajasthan_cities_Bikaner = UsePN (mkPN "Bikaner") ;
-Countries_TJ_provinces_Jilin_cities_Baicheng = UsePN (mkPN "Baicheng") ;
-Dominica = UsePN (mkPN "Dominica") ;
-Countries_GB_provinces_Lincolnshire = UsePN (mkPN "Lincolnshire") ;
-Countries_CH_provinces_BS_cities_Basel = UsePN (mkPN "Basel") ;
-Countries_MEX_provinces_BajaCaliforniaSur_cities_LaPaz = UsePN (mkPN "La Paz") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_Novokuznetsk = UsePN (mkPN "Novokuznetsk") ;
-Countries_BR_provinces_Bahia_cities_Jequie = UsePN (mkPN "Jequie") ;
-Countries_USA_provinces_Florida_cities_Clearwater = UsePN (mkPN "Clearwater") ;
-Countries_GB_provinces_Bridgend_cities_Bridgend = UsePN (mkPN "Bridgend") ;
-Countries_KAZ_provinces_OngtustikQazaqstan_cities_Shymkent = UsePN (mkPN "Shymkent") ;
-Countries_MAL_provinces_Pahang_cities_Kuantan = UsePN (mkPN "Kuantan") ;
-Countries_KAZ_provinces_Torghay = UsePN (mkPN "Torghay") ;
-Countries_UA_provinces_Krym_cities_Sevastopol = UsePN (mkPN "Sevastopol") ;
-Countries_USA_provinces_Florida_cities_Tampa = UsePN (mkPN "Tampa") ;
-Deserts_Karakum = UsePN (mkPN "Karakum") ;
-Islands_BaffinIsland = UsePN (mkPN "Baffin Island") ;
-Countries_R_provinces_Moskovskayaoblast = UsePN (mkPN "Moskovskaya oblast") ;
-Mountains_Citlaltepetl = UsePN (mkPN "Citlaltepetl") ;
-Countries_RSA_provinces_NorthWest_cities_Mmabatho = UsePN (mkPN "Mmabatho") ;
-Countries_KAZ_provinces_Qyzylorda_cities_Qyzylorda = UsePN (mkPN "Qyzylorda") ;
-Countries_PL_provinces_Lomzynskie = UsePN (mkPN "Lomzynskie") ;
-Countries_CH_provinces_GL_cities_Glarus = UsePN (mkPN "Glarus") ;
-Organizations_EADB = UsePN (mkPN "East African Development Bank") ;
-Countries_cid_cia_Juan_de_Nova_Island = UsePN (mkPN "Juan de Nova Island") ;
-Countries_S_provinces_Jonkoping = UsePN (mkPN "Jonkoping") ;
-Countries_RC_provinces_Yunlin = UsePN (mkPN "Yunlin") ;
-Countries_PL_provinces_Torunskie = UsePN (mkPN "Torunskie") ;
-Countries_H_provinces_Miskolc_munic = UsePN (mkPN "Miskolc (munic.)") ;
-Countries_USA_provinces_Texas_cities_Garland = UsePN (mkPN "Garland") ;
-Countries_IRQ_provinces_AdTamim_cities_Kirkuk = UsePN (mkPN "Kirkuk") ;
-Rivers_Onon = UsePN (mkPN "Onon") ;
-Countries_SLO_cities_Ljubljana = UsePN (mkPN "Ljubljana") ;
-Countries_BD_cities_Barisal = UsePN (mkPN "Barisal") ;
-Countries_USA_provinces_Texas_cities_Dallas = UsePN (mkPN "Dallas") ;
-Countries_FSM_cities_Kolonia = UsePN (mkPN "Kolonia") ;
-Countries_I_provinces_Veneto_cities_Vicenza = UsePN (mkPN "Vicenza") ;
-Countries_YV_provinces_Barinas_cities_Barinas = UsePN (mkPN "Barinas") ;
-Rivers_Zaire = UsePN (mkPN "Zaire") ;
-Countries_R_provinces_Arkhangelskayaoblast_cities_Arkhangelsk = UsePN (mkPN "Arkhangelsk") ;
-Countries_NL_provinces_Friesland_cities_Leeuwarden = UsePN (mkPN "Leeuwarden") ;
-Rivers_Djuba = UsePN (mkPN "Djuba") ;
-Benin = UsePN (mkPN "Benin") ;
-Countries_USA_provinces_California_cities_Corona = UsePN (mkPN "Corona") ;
-Countries_SF_provinces_Vaasa = UsePN (mkPN "Vaasa") ;
-Countries_CO_provinces_Vaupes_cities_Mitu = UsePN (mkPN "Mitu") ;
-Countries_PK_cities_Sialkot = UsePN (mkPN "Sialkot") ;
-Lakes_LakeAlbert = UsePN (mkPN "Lake Albert") ;
-Countries_TR_provinces_Bursa = UsePN (mkPN "Bursa") ;
-Countries_S_provinces_Vastmanland_cities_Vasteras = UsePN (mkPN "Vasteras") ;
-Countries_R_provinces_Rep_ofAdygeya_cities_Maykop = UsePN (mkPN "Maykop") ;
-Countries_R_provinces_Lipetskayaoblast_cities_Lipetsk = UsePN (mkPN "Lipetsk") ;
-Countries_USA_provinces_RhodeIsland_cities_Providence = UsePN (mkPN "Providence") ;
-Countries_PE_provinces_Piura_cities_Piura = UsePN (mkPN "Piura") ;
-Countries_TJ_provinces_Sichuan_cities_Chongqing = UsePN (mkPN "Chongqing") ;
-Countries_CH_provinces_GR = UsePN (mkPN "GR") ;
-Countries_IRQ_provinces_AlBasrah = UsePN (mkPN "Al Basrah") ;
-Countries_CH_provinces_JU = UsePN (mkPN "JU") ;
-Countries_CH_provinces_VS = UsePN (mkPN "VS") ;
-Countries_IRQ_provinces_Irbil = UsePN (mkPN "Irbil") ;
-Countries_WAN_cities_Iwo = UsePN (mkPN "Iwo") ;
-Countries_VN_provinces_NorthCentralCoast = UsePN (mkPN "North Central Coast") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Oberhausen = UsePN (mkPN "Oberhausen") ;
-Countries_TM_provinces_Mary = UsePN (mkPN "Mary") ;
-Countries_BD_cities_Jamalpur = UsePN (mkPN "Jamalpur") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Shihezi = UsePN (mkPN "Shihezi") ;
-Countries_MOC_provinces_Zambezia = UsePN (mkPN "Zambezia") ;
-Countries_BR_provinces_SaoPaulo_cities_PresidentePrudente = UsePN (mkPN "Presidente Prudente") ;
-Countries_TJ_provinces_Jiangxi_cities_Pingxiang = UsePN (mkPN "Pingxiang") ;
-Countries_R_provinces_Rostovskayaoblast_cities_RostovnoDonu = UsePN (mkPN "Rostov no Donu") ;
-Countries_BR_provinces_RioGrandedoSul = UsePN (mkPN "Rio Grande do Sul") ;
-Countries_USA_provinces_California_cities_Anaheim = UsePN (mkPN "Anaheim") ;
-Countries_ET_provinces_ElQalubiya_cities_ShubraelKheima = UsePN (mkPN "Shubra el Kheima") ;
-Countries_SF_provinces_Pohjols_Karjala_cities_Joensuu = UsePN (mkPN "Joensuu") ;
-Countries_R_provinces_Krasnoyarskiykray = UsePN (mkPN "Krasnoyarskiy kray") ;
-Countries_USA_provinces_Maine_cities_Augusta = UsePN (mkPN "Augusta") ;
-Countries_BR_provinces_Para = UsePN (mkPN "Para") ;
-Countries_BR_provinces_SaoPaulo_cities_AparecidadeGoiania = UsePN (mkPN "Aparecida de Goiania") ;
-Countries_SK_cities_Bratislava = UsePN (mkPN "Bratislava") ;
-Countries_TJ_provinces_Heilongjiang_cities_Beian = UsePN (mkPN "Beian") ;
-Organizations_ESA = UsePN (mkPN "European Space Agency") ;
-Countries_cid_cia_Faroe_Islands = UsePN (mkPN "Faroe Islands") ;
-Countries_CH_provinces_AG_cities_Aarau = UsePN (mkPN "Aarau") ;
-Organizations_MekongGroup = UsePN (mkPN "ASEAN-Mekong Basin Development Group") ;
-Countries_IR_provinces_Fars_cities_Shiraz = UsePN (mkPN "Shiraz") ;
-Islands_Fuerteventura = UsePN (mkPN "Fuerteventura") ;
-Countries_TJ_provinces_Heilongjiang_cities_Qiqihar = UsePN (mkPN "Qiqihar") ;
-Countries_cid_cia_Macau = UsePN (mkPN "Macau") ;
-Countries_MEX_provinces_SanLuisPotosi_cities_SanLuisPotosi = UsePN (mkPN "San Luis Potosi") ;
-Countries_J_provinces_Ishikawa_cities_Kanazawa = UsePN (mkPN "Kanazawa") ;
-Countries_cid_cia_Wake_Island = UsePN (mkPN "Wake Island") ;
-Countries_SA_cities_Riyadh = UsePN (mkPN "Riyadh") ;
-Organizations_UN = UsePN (mkPN "United Nations") ;
-Countries_E_provinces_Catalonia_cities_Baracaldo = UsePN (mkPN "Baracaldo") ;
-Countries_RSA_provinces_KwazuluNatal = UsePN (mkPN "Kwazulu Natal") ;
-Countries_ETH_cities_BahirDar = UsePN (mkPN "Bahir Dar") ;
-Countries_CDN_provinces_Ontario_cities_NorthYork = UsePN (mkPN "North York") ;
-Countries_MEX_provinces_Guanajuato_cities_Salamanca = UsePN (mkPN "Salamanca") ;
-Lakes_LakeAbaya = UsePN (mkPN "Lake Abaya") ;
-Countries_RO_provinces_Alba = UsePN (mkPN "Alba") ;
-Countries_Z_provinces_Luapula_cities_Mansa = UsePN (mkPN "Mansa") ;
-Countries_TJ_provinces_Jiangsu_cities_Lianyungang = UsePN (mkPN "Lianyungang") ;
-Countries_KAZ_provinces_Qostanay = UsePN (mkPN "Qostanay") ;
-Countries_RO_provinces_Bacau_cities_Bacau = UsePN (mkPN "Bacau") ;
-Countries_CDN_provinces_NovaScotia = UsePN (mkPN "Nova Scotia") ;
-CentralAfricanRepublic = UsePN (mkPN "Central African Republic") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Bielefeld = UsePN (mkPN "Bielefeld") ;
-Countries_CDN_provinces_Ontario_cities_Nepean = UsePN (mkPN "Nepean") ;
-Islands_Kiribati = UsePN (mkPN "Kiribati") ;
-Countries_N_provinces_Oppland = UsePN (mkPN "Oppland") ;
-Organizations_NC = UsePN (mkPN "Nordic Council") ;
-Countries_USA_provinces_California_cities_SanBernardino = UsePN (mkPN "San Bernardino") ;
-Countries_IR_provinces_Khuzestan = UsePN (mkPN "Khuzestan") ;
-Rivers_Pjandsh = UsePN (mkPN "Pjandsh") ;
-Countries_A_provinces_LowerAustria_cities_St_Polten = UsePN (mkPN "St. Polten") ;
-Countries_CH_provinces_SH_cities_Schaffhausen = UsePN (mkPN "Schaffhausen") ;
-Countries_E_provinces_Asturias = UsePN (mkPN "Asturias") ;
-Countries_KWT_cities_Kuwait = UsePN (mkPN "Kuwait") ;
-Countries_PL_provinces_Nowosadeckie = UsePN (mkPN "Nowosadeckie") ;
-Countries_ET_provinces_ElMinufiya_cities_ShibinelKom = UsePN (mkPN "Shibin el Kom") ;
-Countries_J_provinces_Fukui_cities_Fukui = UsePN (mkPN "Fukui") ;
-Countries_EAK_provinces_Eastern_cities_Machakos = UsePN (mkPN "Machakos") ;
-Countries_GB_provinces_Tayside = UsePN (mkPN "Tayside") ;
-Countries_USA_provinces_Iowa_cities_CedarRapids = UsePN (mkPN "Cedar Rapids") ;
-Countries_RO_provinces_Alba_cities_AlbaIulia = UsePN (mkPN "Alba Iulia") ;
-Countries_TJ_provinces_Heilongjiang_cities_Mudanjiang = UsePN (mkPN "Mudanjiang") ;
-Countries_ANG_provinces_CuanzaSul = UsePN (mkPN "Cuanza Sul") ;
-Countries_J_provinces_Fukuoka = UsePN (mkPN "Fukuoka") ;
-Countries_MEX_provinces_Coahuila_cities_Saltillo = UsePN (mkPN "Saltillo") ;
-Rivers_Don = UsePN (mkPN "Don") ;
-Countries_N_provinces_Oslo = UsePN (mkPN "Oslo") ;
-Countries_CR_provinces_Alajuela = UsePN (mkPN "Alajuela") ;
-Countries_R_provinces_Rep_ofKarelia_cities_Petrozavodsk = UsePN (mkPN "Petrozavodsk") ;
-Countries_BR_provinces_SaoPaulo_cities_Itu = UsePN (mkPN "Itu") ;
-Countries_WAN_cities_Oka = UsePN (mkPN "Oka") ;
-Countries_PL_provinces_Krosnienskie_cities_Krosno = UsePN (mkPN "Krosno") ;
-Countries_USA_provinces_Maryland = UsePN (mkPN "Maryland") ;
-Countries_GB_provinces_Essex_cities_Chelmsford = UsePN (mkPN "Chelmsford") ;
-Countries_ZRE_provinces_Kinshasa = UsePN (mkPN "Kinshasa") ;
-Countries_ZRE_provinces_Equateur = UsePN (mkPN "Equateur") ;
-Countries_TR_provinces_Canakkale_cities_Canakkale = UsePN (mkPN "Canakkale") ;
-Deserts_ErgRebiana = UsePN (mkPN "Erg Rebiana") ;
-Countries_IND_provinces_JammuandKashmir_cities_Jammu = UsePN (mkPN "Jammu") ;
-Countries_S_provinces_Jamtland = UsePN (mkPN "Jamtland") ;
-Countries_TJ_provinces_Shaanxi_cities_Yanan = UsePN (mkPN "Yanan") ;
-Countries_E_provinces_CastileLaMancha_cities_Toledo = UsePN (mkPN "Toledo") ;
-Countries_RO_provinces_Brasov = UsePN (mkPN "Brasov") ;
-Countries_TJ_provinces_Hunan_cities_Changde = UsePN (mkPN "Changde") ;
-Islands_Jersey = UsePN (mkPN "Jersey") ;
-Countries_GH_cities_Tamale = UsePN (mkPN "Tamale") ;
-Countries_ET_provinces_Matruh = UsePN (mkPN "Matruh") ;
-Countries_D_provinces_NordrheinWestfalen_cities_BergischGladbach = UsePN (mkPN "Bergisch Gladbach") ;
-Countries_WAN_cities_Ilorin = UsePN (mkPN "Ilorin") ;
-Countries_BR_provinces_Bahia_cities_Salvador = UsePN (mkPN "Salvador") ;
-Seas_IrishSea = UsePN (mkPN "Irish Sea") ;
-Countries_ES_cities_Soyapango = UsePN (mkPN "Soyapango") ;
-Countries_R_provinces_Permskayaoblast_cities_Perm = UsePN (mkPN "Perm") ;
-Organizations_IOM = UsePN (mkPN "International Organization for Migration") ;
-Organizations_G_30 = UsePN (mkPN "Group of 30") ;
-Countries_IRQ_provinces_Karbala_cities_Karbala = UsePN (mkPN "Karbala") ;
-Countries_RC_provinces_Tainan_munic = UsePN (mkPN "Tainan (munic.)") ;
-Islands_Gomera = UsePN (mkPN "Gomera") ;
-Countries_GB_provinces_Bedfordshire_cities_Luton = UsePN (mkPN "Luton") ;
-Continents_Africa = UsePN (mkPN "Africa") ;
-Countries_MOC_provinces_Tete_cities_Tete = UsePN (mkPN "Tete") ;
-Countries_PE_provinces_Ucayali_cities_Pucallpa = UsePN (mkPN "Pucallpa") ;
-Countries_USA_provinces_California_cities_Oxnard = UsePN (mkPN "Oxnard") ;
-Countries_CO_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
-Countries_IND_provinces_Maharashtra_cities_Amravati = UsePN (mkPN "Amravati") ;
-Countries_SN_provinces_Tambacounda_cities_Tambacounda = UsePN (mkPN "Tambacounda") ;
-Vietnam = UsePN (mkPN "Vietnam") ;
-Countries_B_provinces_Hainaut_cities_Charleroi = UsePN (mkPN "Charleroi") ;
-Countries_GB_provinces_Kent_cities_RochesteruponMedway = UsePN (mkPN "Rochester upon Medway") ;
-Countries_WAN_cities_Abuja = UsePN (mkPN "Abuja") ;
-Countries_USA_provinces_Arizona_cities_Phoenix = UsePN (mkPN "Phoenix") ;
-Countries_USA_provinces_NewYork_cities_Albany = UsePN (mkPN "Albany") ;
-Countries_TAD_provinces_Dushanbe_munic_cities_Dushanbe = UsePN (mkPN "Dushanbe") ;
-Countries_BR_provinces_MinasGerais_cities_Barbacena = UsePN (mkPN "Barbacena") ;
-Countries_CO_provinces_Cauca = UsePN (mkPN "Cauca") ;
-Countries_GB_provinces_Kent_cities_TunbridgeWells = UsePN (mkPN "Tunbridge Wells") ;
-Countries_NOK_cities_Kusong = UsePN (mkPN "Kusong") ;
-Countries_TR_provinces_Amasya = UsePN (mkPN "Amasya") ;
-Countries_BR_provinces_MinasGerais_cities_BeloHorizonte = UsePN (mkPN "Belo Horizonte") ;
-Countries_MH_cities_Majuro = UsePN (mkPN "Majuro") ;
-Countries_TJ_provinces_Hebei_cities_Tangshan = UsePN (mkPN "Tangshan") ;
-Countries_BR_provinces_Pernambuco_cities_VitoriadeSantoAntao = UsePN (mkPN "Vitoria de Santo Antao") ;
-Countries_PL_provinces_Skierniewickie_cities_Skierniewice = UsePN (mkPN "Skierniewice") ;
-Countries_UA_provinces_Donetska = UsePN (mkPN "Donetska") ;
-Countries_ES_provinces_LaLibertad_cities_NuevaSanSalvador = UsePN (mkPN "Nueva San Salvador") ;
-Countries_GB_provinces_Central = UsePN (mkPN "Central") ;
-Countries_SF_provinces_Mikkeli = UsePN (mkPN "Mikkeli") ;
-Azerbaijan = UsePN (mkPN "Azerbaijan") ;
-Countries_TR_provinces_Samsun_cities_Samsun = UsePN (mkPN "Samsun") ;
-Countries_UAE_provinces_AlFujayrah = UsePN (mkPN "Al Fujayrah") ;
-Countries_GB_provinces_HerefordandWorcester_cities_Worcester = UsePN (mkPN "Worcester") ;
-Countries_cid_cia_Gibraltar_cities_Gibraltar = UsePN (mkPN "Gibraltar") ;
-Countries_PE_provinces_Piura_cities_Talara = UsePN (mkPN "Talara") ;
-Countries_GB_provinces_Surrey_cities_Reigate = UsePN (mkPN "Reigate") ;
-Countries_MOC_provinces_Maputo_cities_Nacala = UsePN (mkPN "Nacala") ;
-Organizations_OSCE = UsePN (mkPN "Organization for Security and Cooperation in Europe") ;
-Countries_J_provinces_Kyoto = UsePN (mkPN "Kyoto") ;
-Countries_HCA_provinces_Choluteca = UsePN (mkPN "Choluteca") ;
-Countries_RA_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
-Countries_YV_provinces_Anzoategui = UsePN (mkPN "Anzoategui") ;
-Countries_GB_provinces_Wiltshire_cities_Trowbridge = UsePN (mkPN "Trowbridge") ;
-Countries_D_provinces_Berlin_cities_Berlin = UsePN (mkPN "Berlin") ;
-Countries_TR_provinces_Bursa_cities_Bursa = UsePN (mkPN "Bursa") ;
-Lakes_LakePowell = UsePN (mkPN "Lake Powell") ;
-SolomonIslands = UsePN (mkPN "Solomon Islands") ;
-Countries_PE_provinces_Moquegua_cities_Moquegua = UsePN (mkPN "Moquegua") ;
-Canada = UsePN (mkPN "Canada") ;
-Countries_USA_provinces_California_cities_LongBeach = UsePN (mkPN "Long Beach") ;
-Countries_MEX_provinces_Michoacan_cities_Zamora = UsePN (mkPN "Zamora") ;
-Countries_BR_provinces_SaoPaulo_cities_Barretos = UsePN (mkPN "Barretos") ;
-Countries_UZB_provinces_Samarqand = UsePN (mkPN "Samarqand") ;
-Countries_MYA_provinces_Kachin_cities_Myitkyina = UsePN (mkPN "Myitkyina") ;
-Countries_TR_cities_Icel = UsePN (mkPN "Icel") ;
-Countries_J_provinces_Oita = UsePN (mkPN "Oita") ;
-Countries_D_provinces_Niedersachsen_cities_Salzgitter = UsePN (mkPN "Salzgitter") ;
-Countries_KAZ_provinces_Zhambyl_cities_Zhambyl = UsePN (mkPN "Zhambyl") ;
-Countries_TR_provinces_Aydin = UsePN (mkPN "Aydin") ;
-Countries_N_provinces_Hedmark = UsePN (mkPN "Hedmark") ;
-Countries_GB_provinces_Staffordshire_cities_Stafford = UsePN (mkPN "Stafford") ;
-Countries_USA_provinces_California_cities_ThousandOaks = UsePN (mkPN "Thousand Oaks") ;
-Countries_TJ_provinces_Shandong_cities_Weifang = UsePN (mkPN "Weifang") ;
-Countries_EAT_provinces_Tanga = UsePN (mkPN "Tanga") ;
-Countries_ANG_provinces_Cabinda = UsePN (mkPN "Cabinda") ;
-Lakes_LakeHuron = UsePN (mkPN "Lake Huron") ;
-Countries_NL_provinces_NoordHolland_cities_Hilversum = UsePN (mkPN "Hilversum") ;
-Countries_IND_provinces_JammuandKashmir_cities_Srinagar = UsePN (mkPN "Srinagar") ;
-Rivers_WebiSchebeli = UsePN (mkPN "Webi Schebeli") ;
-Organizations_GCC = UsePN (mkPN "Gulf Cooperation Council") ;
-Countries_MEX_cities_SoledaddeGracianoSanchez = UsePN (mkPN "Soledad de Graciano Sanchez") ;
-Countries_BR_provinces_Paraiba_cities_JoaoPessoa = UsePN (mkPN "Joao Pessoa") ;
-Countries_J_provinces_Tokyo_cities_Tokyo = UsePN (mkPN "Tokyo") ;
-Countries_UA_provinces_Rivnenska_cities_Rivne = UsePN (mkPN "Rivne") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Urumqi = UsePN (mkPN "Urumqi") ;
-Countries_TR_provinces_Kutahya_cities_Kutahya = UsePN (mkPN "Kutahya") ;
-Countries_THA_provinces_Trat = UsePN (mkPN "Trat") ;
-Countries_COM_cities_Moroni = UsePN (mkPN "Moroni") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Noginsk = UsePN (mkPN "Noginsk") ;
-Countries_WAN_cities_Ondo = UsePN (mkPN "Ondo") ;
-Countries_USA_provinces_Montana = UsePN (mkPN "Montana") ;
-Countries_J_provinces_Hyogo = UsePN (mkPN "Hyogo") ;
-Countries_E_provinces_Valencia_cities_Valencia = UsePN (mkPN "Valencia") ;
-Countries_IRQ_provinces_DhiQar = UsePN (mkPN "Dhi Qar") ;
-Countries_TJ_provinces_Guizhou_cities_Anshun = UsePN (mkPN "Anshun") ;
-Countries_cid_cia_Norfolk_Island_cities_Kingston = UsePN (mkPN "Kingston") ;
-Countries_CH_provinces_ZH = UsePN (mkPN "ZH") ;
-Islands_LaPalma = UsePN (mkPN "La Palma") ;
-Countries_VN_cities_LongXuyen = UsePN (mkPN "Long Xuyen") ;
-Countries_RC_provinces_Kaohsiung = UsePN (mkPN "Kaohsiung") ;
-Countries_E_provinces_Madrid_cities_Leganes = UsePN (mkPN "Leganes") ;
-Countries_PE_provinces_Loreto = UsePN (mkPN "Loreto") ;
-Countries_UA_provinces_Chernihivska = UsePN (mkPN "Chernihivska") ;
-Tonga = UsePN (mkPN "Tonga") ;
-Countries_RC_provinces_Tainan_munic_cities_Tainan = UsePN (mkPN "Tainan") ;
-Countries_GB_provinces_Highland_cities_Inverness = UsePN (mkPN "Inverness") ;
-Mountains_Pulog = UsePN (mkPN "Pulog") ;
-Countries_R_provinces_Rep_ofMariyEl = UsePN (mkPN "Rep. of Mariy El") ;
-Countries_TR_provinces_Karaman_cities_Karaman = UsePN (mkPN "Karaman") ;
-Countries_TR_provinces_Afyon = UsePN (mkPN "Afyon") ;
-Countries_R_provinces_Ryazanskayaoblast = UsePN (mkPN "Ryazanskaya oblast") ;
-Islands_IsleofMan = UsePN (mkPN "Isle of Man") ;
-Countries_J_provinces_Ehime = UsePN (mkPN "Ehime") ;
-Countries_GQ_cities_Sta_Isabel = UsePN (mkPN "Sta. Isabel") ;
-Countries_CH_provinces_ZG_cities_Zug = UsePN (mkPN "Zug") ;
-Countries_PL_provinces_Zielonogorskie = UsePN (mkPN "Zielonogorskie") ;
-Countries_A_provinces_Salzburg_cities_Salzburg = UsePN (mkPN "Salzburg") ;
-Countries_MA_provinces_CentreSud = UsePN (mkPN "Centre Sud") ;
-Countries_VN_cities_CanTho = UsePN (mkPN "Can Tho") ;
-Countries_CH_provinces_LU_cities_Luzern = UsePN (mkPN "Luzern") ;
-Countries_IND_provinces_AndhraPradesh = UsePN (mkPN "Andhra Pradesh") ;
-Countries_NL_provinces_NoordBrabant_cities_sHertogenbosch = UsePN (mkPN "s Hertogenbosch") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Kashi = UsePN (mkPN "Kashi") ;
-Countries_CO_provinces_Cesar_cities_Valledupar = UsePN (mkPN "Valledupar") ;
-Countries_IND_provinces_Punjab_cities_Amritsar = UsePN (mkPN "Amritsar") ;
-Countries_UA_provinces_Cherkaska = UsePN (mkPN "Cherkaska") ;
-Countries_R_provinces_Rep_ofMordovia_cities_Saransk = UsePN (mkPN "Saransk") ;
-Countries_ET_provinces_ElQahira_munic_cities_Helwan = UsePN (mkPN "Helwan") ;
-Countries_C_provinces_SantiagodeCuba = UsePN (mkPN "Santiago de Cuba") ;
-Deserts_ErgIgidi = UsePN (mkPN "Erg Igidi") ;
-Countries_GB_provinces_Grampian = UsePN (mkPN "Grampian") ;
-Countries_GR_provinces_Kriti = UsePN (mkPN "Kriti") ;
-Countries_GB_provinces_Gloucestershire = UsePN (mkPN "Gloucestershire") ;
-Countries_S_provinces_Stockholm_cities_Stockholm = UsePN (mkPN "Stockholm") ;
-Islands_Vulcano = UsePN (mkPN "Vulcano") ;
-Countries_PL_provinces_Zamojskie = UsePN (mkPN "Zamojskie") ;
-Countries_BR_provinces_EspiritoSanto = UsePN (mkPN "Espirito Santo") ;
-Countries_J_provinces_Yamagata = UsePN (mkPN "Yamagata") ;
-Countries_F_provinces_Bourgogne_cities_Dijon = UsePN (mkPN "Dijon") ;
-Countries_PA_provinces_ComarcadeSanBlas = UsePN (mkPN "Comarca de San Blas") ;
-Countries_EAT_provinces_Kilimanjaro = UsePN (mkPN "Kilimanjaro") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Duisburg = UsePN (mkPN "Duisburg") ;
-Organizations_IMO = UsePN (mkPN "International Maritime Organization") ;
-Countries_TR_provinces_Batman_cities_Batman = UsePN (mkPN "Batman") ;
-Organizations_CCC = UsePN (mkPN "Customs Cooperation Council") ;
-Countries_UA_provinces_Mykolayivska = UsePN (mkPN "Mykolayivska") ;
-Countries_NOK_cities_Kaesong = UsePN (mkPN "Kaesong") ;
-Countries_MEX_provinces_Aguascalientes_cities_Aguascalientes = UsePN (mkPN "Aguascalientes") ;
-Countries_J_provinces_Gifu_cities_Gifu = UsePN (mkPN "Gifu") ;
-Organizations_UNEP = UsePN (mkPN "United Nations Environment Program") ;
-Countries_cid_cia_Bermuda_cities_Hamilton = UsePN (mkPN "Hamilton") ;
-Countries_EAK_provinces_Nairobi = UsePN (mkPN "Nairobi") ;
-Countries_VN_provinces_LongAn = UsePN (mkPN "Long An") ;
-Countries_PL_provinces_Suwalskie = UsePN (mkPN "Suwalskie") ;
-Countries_E_provinces_BasqueCountry_cities_Bilbao = UsePN (mkPN "Bilbao") ;
-Countries_PL_cities_JastrzebieZdroj = UsePN (mkPN "Jastrzebie Zdroj") ;
-Countries_MEX_cities_Llave = UsePN (mkPN "Llave") ;
-Countries_CDN_provinces_Alberta_cities_Calgary = UsePN (mkPN "Calgary") ;
-Countries_R_provinces_Bryanskayaoblast = UsePN (mkPN "Bryanskaya oblast") ;
-Countries_USA_provinces_Kansas_cities_OverlandPark = UsePN (mkPN "Overland Park") ;
-Countries_ANG_provinces_Benguela = UsePN (mkPN "Benguela") ;
-Countries_MEX_provinces_Guanajuato = UsePN (mkPN "Guanajuato") ;
-Countries_cid_cia_Greenland_cities_Nuuk = UsePN (mkPN "Nuuk") ;
-Islands_Lewis = UsePN (mkPN "Lewis") ;
-Countries_J_provinces_Kagawa = UsePN (mkPN "Kagawa") ;
-Countries_E_provinces_Cantabria = UsePN (mkPN "Cantabria") ;
-Countries_J_provinces_Fukuoka_cities_Fukuoka = UsePN (mkPN "Fukuoka") ;
-Countries_TR_provinces_Zonguldak_cities_Karabuk = UsePN (mkPN "Karabuk") ;
-Islands_Skye = UsePN (mkPN "Skye") ;
-Countries_BR_provinces_Roraima = UsePN (mkPN "Roraima") ;
-Countries_THA_provinces_ChiangMai = UsePN (mkPN "Chiang Mai") ;
-Countries_BD_cities_Savar = UsePN (mkPN "Savar") ;
-Countries_CO_provinces_ValledeCauca_cities_Buenaventura = UsePN (mkPN "Buenaventura") ;
-Countries_BD_cities_Dhaka = UsePN (mkPN "Dhaka") ;
-Seychelles = UsePN (mkPN "Seychelles") ;
-Countries_CH_provinces_GE_cities_Geneva = UsePN (mkPN "Geneva") ;
-Countries_IR_provinces_Semnan = UsePN (mkPN "Semnan") ;
-Countries_PE_provinces_Ayacucho = UsePN (mkPN "Ayacucho") ;
-Countries_TJ_provinces_Heilongjiang_cities_Hegang = UsePN (mkPN "Hegang") ;
-Countries_I_provinces_Abruzzo_cities_LAquila = UsePN (mkPN "LAquila") ;
-Rivers_Drin = UsePN (mkPN "Drin") ;
-Countries_RO_provinces_Buzau_cities_Buzau = UsePN (mkPN "Buzau") ;
-Countries_YV_provinces_Miranda_cities_Petare = UsePN (mkPN "Petare") ;
-Countries_NZ_cities_Auckland = UsePN (mkPN "Auckland") ;
-Countries_THA_provinces_Pattani = UsePN (mkPN "Pattani") ;
-Countries_RSA_provinces_Gauteng_cities_Johannesburg = UsePN (mkPN "Johannesburg") ;
-Countries_ZW_cities_Harare = UsePN (mkPN "Harare") ;
-Countries_VN_cities_NhaTrang = UsePN (mkPN "Nha Trang") ;
-Countries_IR_provinces_Markazi_cities_Arak = UsePN (mkPN "Arak") ;
-Countries_GB_provinces_Anglesey_cities_Llangefni = UsePN (mkPN "Llangefni") ;
-Countries_PL_provinces_Rzeszowskie_cities_Rzeszow = UsePN (mkPN "Rzeszow") ;
-Countries_F_provinces_LanguedocRousillon_cities_Perpignan = UsePN (mkPN "Perpignan") ;
-Countries_R_provinces_Smolenskayaoblast = UsePN (mkPN "Smolenskaya oblast") ;
-Countries_NCA_cities_Noumea = UsePN (mkPN "Noumea") ;
-Countries_CDN_provinces_Quebec_cities_Quebec = UsePN (mkPN "Quebec") ;
-Countries_UZB_provinces_Surkhondare = UsePN (mkPN "Surkhondare") ;
-Countries_GB_provinces_Suffolk = UsePN (mkPN "Suffolk") ;
-Countries_THA_provinces_UbonRatchathani = UsePN (mkPN "Ubon Ratchathani") ;
-Countries_RA_provinces_SantaCruz = UsePN (mkPN "Santa Cruz") ;
-Countries_BR_provinces_SaoPaulo_cities_Indaiatuba = UsePN (mkPN "Indaiatuba") ;
-Countries_TR_provinces_Trabzon_cities_Trabzon = UsePN (mkPN "Trabzon") ;
-Countries_S_provinces_Ostergotland_cities_Linkoping = UsePN (mkPN "Linkoping") ;
-Kuwait = UsePN (mkPN "Kuwait") ;
-Countries_NL_provinces_ZuidHolland_cities_Rotterdam = UsePN (mkPN "Rotterdam") ;
-Countries_J_provinces_Fukuoka_cities_Kitakyushu = UsePN (mkPN "Kita kyushu") ;
-Countries_IND_provinces_Maharashtra_cities_Mumbai = UsePN (mkPN "Mumbai") ;
-Countries_UA_provinces_Volynska_cities_Lutsk = UsePN (mkPN "Lutsk") ;
-Countries_CH_provinces_NE_cities_Neuchatel = UsePN (mkPN "Neuchatel") ;
-Countries_USA_provinces_Tennessee_cities_Knoxville = UsePN (mkPN "Knoxville") ;
-Countries_cid_cia_Anguilla = UsePN (mkPN "Anguilla") ;
-Countries_RI_cities_Pekalongan = UsePN (mkPN "Pekalongan") ;
-Countries_PK_cities_Larkana = UsePN (mkPN "Larkana") ;
-Countries_GB_provinces_Derbyshire_cities_Derby = UsePN (mkPN "Derby") ;
-Countries_THA_provinces_SakonNakhon = UsePN (mkPN "Sakon Nakhon") ;
-Lakes_LakeUrumiyeh = UsePN (mkPN "Lake Urumiyeh") ;
-Countries_GB_provinces_TyneandWear_cities_NewcastleuponTyne = UsePN (mkPN "Newcastle upon Tyne") ;
-Qatar = UsePN (mkPN "Qatar") ;
-Countries_R_provinces_Stavropolskykray_cities_Neftekamsk = UsePN (mkPN "Neftekamsk") ;
-Countries_NL_provinces_Flevoland = UsePN (mkPN "Flevoland") ;
-Countries_TJ_provinces_Jiangsu_cities_Yizheng = UsePN (mkPN "Yizheng") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Niteroi = UsePN (mkPN "Niteroi") ;
-Countries_IND_provinces_Karnataka_cities_Bangalore = UsePN (mkPN "Bangalore") ;
-Countries_R_provinces_Chelyabinskayaoblast_cities_Zlatoust = UsePN (mkPN "Zlatoust") ;
-Countries_I_provinces_Lombardia_cities_Milan = UsePN (mkPN "Milan") ;
-Islands_Patmos = UsePN (mkPN "Patmos") ;
-Lakes_LakeWinnipeg = UsePN (mkPN "Lake Winnipeg") ;
-Countries_RC_provinces_Chilung_munic_cities_Chilung = UsePN (mkPN "Chilung") ;
-Countries_H_provinces_KomaromEsztergom = UsePN (mkPN "Komarom Esztergom") ;
-Countries_IND_provinces_Mizoram_cities_Aijal = UsePN (mkPN "Aijal") ;
-Countries_HR_cities_Zagreb = UsePN (mkPN "Zagreb") ;
-Macedonia = UsePN (mkPN "Macedonia") ;
-Countries_MEX_provinces_NuevoLeon = UsePN (mkPN "Nuevo Leon") ;
-Countries_GB_provinces_Swansea_cities_Swansea = UsePN (mkPN "Swansea") ;
-Countries_RC_provinces_Ilan = UsePN (mkPN "Ilan") ;
-Lakes_LakeTanganjika = UsePN (mkPN "Lake Tanganjika") ;
-Countries_MEX_provinces_NuevoLeon_cities_SanNicolasdelosGarza = UsePN (mkPN "San Nicolas de los Garza") ;
-Countries_D_provinces_Brandenburg_cities_Cottbus = UsePN (mkPN "Cottbus") ;
-Countries_TR_provinces_Kastamonu = UsePN (mkPN "Kastamonu") ;
-Mountains_PicoDuarte = UsePN (mkPN "Pico Duarte") ;
-Countries_RA_provinces_SanLuis_cities_SanLuis = UsePN (mkPN "San Luis") ;
-Countries_RC_provinces_Yunlin_cities_Touliu = UsePN (mkPN "Touliu") ;
-Countries_GB_provinces_ValeofGlamorgan = UsePN (mkPN "Vale of Glamorgan") ;
-Countries_WAL_cities_Freetown = UsePN (mkPN "Freetown") ;
-Countries_SF_provinces_Haeme_cities_Haemeenlinna = UsePN (mkPN "Haemeenlinna") ;
-Countries_R_provinces_Altayskiykray_cities_Barnaul = UsePN (mkPN "Barnaul") ;
-Countries_VN_provinces_SocTrang = UsePN (mkPN "Soc Trang") ;
-Countries_ANG_provinces_LundaNorte_cities_Lucapa = UsePN (mkPN "Lucapa") ;
-Countries_R_provinces_Volgogradskayaoblast_cities_Kamyshin = UsePN (mkPN "Kamyshin") ;
-Islands_Kotelnyisland = UsePN (mkPN "Kotelny island") ;
-Rivers_Seine = UsePN (mkPN "Seine") ;
-Countries_MAL_provinces_Sarawak_cities_Sibu = UsePN (mkPN "Sibu") ;
-Organizations_ESCAP = UsePN (mkPN "Economic and Social Commission for Asia and the Pacific") ;
-Countries_CR_provinces_Alajuela_cities_Alajuela = UsePN (mkPN "Alajuela") ;
-Countries_TJ_provinces_Tibet = UsePN (mkPN "Tibet") ;
-Countries_GR_provinces_AnatolikiMakedhoniakaiThraki = UsePN (mkPN "Anatoliki Makedhonia kai Thraki") ;
-Countries_TR_provinces_Samsun = UsePN (mkPN "Samsun") ;
-Countries_RSA_cities_Sandton = UsePN (mkPN "Sandton") ;
-Rivers_Kura = UsePN (mkPN "Kura") ;
-Countries_MAL_provinces_Selangor_cities_ShahAlam = UsePN (mkPN "Shah Alam") ;
-Countries_RI_cities_Surabaya = UsePN (mkPN "Surabaya") ;
-Countries_PA_provinces_Panama_cities_SanMiguelito = UsePN (mkPN "San Miguelito") ;
-Countries_VN_provinces_LangSon = UsePN (mkPN "Lang Son") ;
-Countries_TJ_provinces_Hubei_cities_Cangzhou = UsePN (mkPN "Cangzhou") ;
-Countries_GB_provinces_Essex_cities_SouthendonSea = UsePN (mkPN "Southend on Sea") ;
-Countries_BR_provinces_Amazonas_cities_Manaus = UsePN (mkPN "Manaus") ;
-Islands_Palawan = UsePN (mkPN "Palawan") ;
-Countries_SN_provinces_Thies_cities_Thies = UsePN (mkPN "Thies") ;
-Countries_MA_provinces_NordOuest = UsePN (mkPN "Nord Ouest") ;
-Countries_UA_provinces_Chernihivska_cities_Chernihiv = UsePN (mkPN "Chernihiv") ;
-Countries_TJ_provinces_Zhejiang_cities_Cixi = UsePN (mkPN "Cixi") ;
-Countries_S_provinces_Kronoberg = UsePN (mkPN "Kronoberg") ;
-Countries_SUD_provinces_alKhartum_cities_KhartoumNorth = UsePN (mkPN "Khartoum North") ;
-Countries_TJ_provinces_GuangxiZhuangzu = UsePN (mkPN "Guangxi Zhuangzu") ;
-Countries_PK_cities_DeraGhaziKhan = UsePN (mkPN "Dera Ghazi Khan") ;
-Organizations_UNIDO = UsePN (mkPN "United Nations Industrial Development Organization") ;
-Countries_IL_provinces_Haifa = UsePN (mkPN "Haifa") ;
-Countries_EAT_provinces_Kagera_cities_Bukoba = UsePN (mkPN "Bukoba") ;
-Countries_RO_provinces_Covasha = UsePN (mkPN "Covasha") ;
-Countries_CZ_provinces_Jihomoravsky = UsePN (mkPN "Jihomoravsky") ;
-Countries_MAL_provinces_NegeriSembilan = UsePN (mkPN "Negeri Sembilan") ;
-Organizations_CE = UsePN (mkPN "Council of Europe") ;
-Countries_SF_provinces_Turku_Pori = UsePN (mkPN "Turku-Pori") ;
-Countries_MA_provinces_Oriental = UsePN (mkPN "Oriental") ;
-Countries_TR_provinces_Bitlis_cities_Bitlis = UsePN (mkPN "Bitlis") ;
-Countries_TJ_provinces_Hebei_cities_Zhangjiakou = UsePN (mkPN "Zhangjiakou") ;
-Countries_B_provinces_Namur_cities_Namur = UsePN (mkPN "Namur") ;
-Countries_GB_provinces_Berkshire_cities_Bracknell = UsePN (mkPN "Bracknell") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Liuzhou = UsePN (mkPN "Liuzhou") ;
-Countries_AUS_provinces_WesternAustralia_cities_Albany = UsePN (mkPN "Albany") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Macae = UsePN (mkPN "Macae") ;
-Countries_H_provinces_Veszprem_cities_Veszprem = UsePN (mkPN "Veszprem") ;
-Deserts_Trarza = UsePN (mkPN "Trarza") ;
-Countries_RO_provinces_Neamt = UsePN (mkPN "Neamt") ;
-Countries_YV_provinces_Lara_cities_Barquisimeto = UsePN (mkPN "Barquisimeto") ;
-Countries_IL_provinces_TelAviv_cities_TelAviv = UsePN (mkPN "Tel Aviv") ;
-Countries_MAL_provinces_Selangor_cities_Kelang = UsePN (mkPN "Kelang") ;
-Countries_CO_provinces_Vaupes = UsePN (mkPN "Vaupes") ;
-Countries_RO_provinces_Olt_cities_Slatina = UsePN (mkPN "Slatina") ;
-Netherlands = UsePN (mkPN "Netherlands") ;
-Countries_MAL_provinces_Johor = UsePN (mkPN "Johor") ;
-Deserts_Kysylkum = UsePN (mkPN "Kysylkum") ;
-Countries_MEX_provinces_Puebla_cities_Puebla = UsePN (mkPN "Puebla") ;
-Countries_RO_provinces_Bihor_cities_Oradea = UsePN (mkPN "Oradea") ;
-Countries_IR_provinces_ChaharMahaleBakhtiari = UsePN (mkPN "Chahar Mahal e Bakhtiari") ;
-Organizations_IDB = UsePN (mkPN "Islamic Development Bank") ;
-Countries_RO_provinces_Timis = UsePN (mkPN "Timis") ;
-Countries_CO_provinces_Bolivar_cities_Cartagena = UsePN (mkPN "Cartagena") ;
-Countries_C_provinces_LasTunas = UsePN (mkPN "Las Tunas") ;
-Countries_ANG_provinces_CuandoCubango = UsePN (mkPN "Cuando Cubango") ;
-Countries_GB_provinces_Cleveland_cities_Middlesbrough = UsePN (mkPN "Middlesbrough") ;
-Countries_CO_provinces_SantanderdelSur = UsePN (mkPN "Santander del Sur") ;
-Countries_R_provinces_Tulskayaoblast = UsePN (mkPN "Tulskaya oblast") ;
-Countries_CO_provinces_Cesar = UsePN (mkPN "Cesar") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Krefeld = UsePN (mkPN "Krefeld") ;
-Countries_cid_cia_Howland_Island = UsePN (mkPN "Howland Island") ;
-Uruguay = UsePN (mkPN "Uruguay") ;
-Countries_J_provinces_Saga = UsePN (mkPN "Saga") ;
-Islands_Alicudi = UsePN (mkPN "Alicudi") ;
-Lakes_LakeNgami = UsePN (mkPN "Lake Ngami") ;
-Countries_GB_provinces_Merseyside = UsePN (mkPN "Merseyside") ;
-Countries_YV_provinces_Miranda = UsePN (mkPN "Miranda") ;
-Countries_B_provinces_Namur = UsePN (mkPN "Namur") ;
-Countries_UZB_provinces_Nawoiy = UsePN (mkPN "Nawoiy") ;
-Countries_USA_provinces_Arizona_cities_Glendale = UsePN (mkPN "Glendale") ;
-Countries_BD_cities_Rajshahi = UsePN (mkPN "Rajshahi") ;
-Countries_GB_provinces_Durham = UsePN (mkPN "Durham") ;
-Countries_USA_provinces_Arizona_cities_Chandler = UsePN (mkPN "Chandler") ;
-Countries_IND_provinces_Kerala_cities_Kozhikode = UsePN (mkPN "Kozhikode") ;
-Chile = UsePN (mkPN "Chile") ;
-Countries_PK_cities_Okara = UsePN (mkPN "Okara") ;
-Countries_RO_provinces_BistritaNasaud = UsePN (mkPN "Bistrita Nasaud") ;
-Countries_E_provinces_Aragon = UsePN (mkPN "Aragon") ;
-Countries_MAL_provinces_Perak_cities_Ipoh = UsePN (mkPN "Ipoh") ;
-Countries_GB_provinces_Strathclyde = UsePN (mkPN "Strathclyde") ;
-Countries_CAM_provinces_Adamaoua_cities_Ngaoundere = UsePN (mkPN "Ngaoundere") ;
-Countries_C_provinces_Holguin = UsePN (mkPN "Holguin") ;
-Countries_N_provinces_Oestfold_cities_Moss = UsePN (mkPN "Moss") ;
-Countries_E_provinces_Valencia_cities_CastellondelaPlana = UsePN (mkPN "Castellon de la Plana") ;
-Countries_RA_provinces_Neuquen = UsePN (mkPN "Neuquen") ;
-Countries_IRQ_provinces_AlAnbar = UsePN (mkPN "Al Anbar") ;
-Countries_RI_cities_TebingTinggi = UsePN (mkPN "Tebing Tinggi") ;
-Swaziland = UsePN (mkPN "Swaziland") ;
-Countries_GB_provinces_Merseyside_cities_SaintHelens = UsePN (mkPN "Saint Helens") ;
-Deserts_Tanesruft = UsePN (mkPN "Tanesruft") ;
-Countries_SUD_provinces_alWusta = UsePN (mkPN "al Wusta") ;
-Countries_TJ_provinces_Hebei_cities_Xingtai = UsePN (mkPN "Xingtai") ;
-Countries_TJ_provinces_Shaanxi_cities_Hanzhong = UsePN (mkPN "Hanzhong") ;
-Countries_TR_provinces_Konya = UsePN (mkPN "Konya") ;
-Countries_cid_cia_Paracel_Islands = UsePN (mkPN "Paracel Islands") ;
-Countries_Q_cities_Rayyan = UsePN (mkPN "Rayyan") ;
-Countries_N_provinces_SoerTrondelag = UsePN (mkPN "Soer Trondelag") ;
-Countries_THA_provinces_SuphanBuri = UsePN (mkPN "Suphan Buri") ;
-Countries_VN_provinces_TraVinh = UsePN (mkPN "Tra Vinh") ;
-Countries_Z_provinces_Copperbelt_cities_Kitwe = UsePN (mkPN "Kitwe") ;
-Countries_GB_provinces_Cheshire = UsePN (mkPN "Cheshire") ;
-Countries_TJ_provinces_Jiangsu_cities_Changzhou = UsePN (mkPN "Changzhou") ;
-Countries_THA_provinces_AngThong = UsePN (mkPN "Ang Thong") ;
-Countries_TR_provinces_Kirklareli = UsePN (mkPN "Kirklareli") ;
-Countries_HCA_provinces_Cortes_cities_PuertoCortes = UsePN (mkPN "Puerto Cortes") ;
-Countries_R_provinces_Rep_ofIngushetiya_cities_Nazran = UsePN (mkPN "Nazran") ;
-Countries_F_provinces_PaysdelaLoire_cities_Angers = UsePN (mkPN "Angers") ;
-Mountains_HumphreysPeak = UsePN (mkPN "Humphreys Peak") ;
-Countries_IND_provinces_Maharashtra_cities_Nasik = UsePN (mkPN "Nasik") ;
-Countries_EAT_provinces_MjiniMagharibi = UsePN (mkPN "Mjini Magharibi") ;
-Countries_MAL_provinces_Perlis = UsePN (mkPN "Perlis") ;
-Countries_CO_provinces_Magdalena_cities_SantaMarta = UsePN (mkPN "Santa Marta") ;
-Countries_ROK_cities_Kwangju = UsePN (mkPN "Kwangju") ;
-Countries_TJ_provinces_Zhejiang_cities_Huzhou = UsePN (mkPN "Huzhou") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Guilin = UsePN (mkPN "Guilin") ;
-Countries_R_provinces_Rep_ofKomi_cities_Ukhta = UsePN (mkPN "Ukhta") ;
-Countries_BR_provinces_SaoPaulo_cities_Cotia = UsePN (mkPN "Cotia") ;
-Countries_UZB_provinces_Farghona_cities_Marghilon = UsePN (mkPN "Marghilon") ;
-Countries_IR_provinces_Mazandaran_cities_Qaemshahr = UsePN (mkPN "Qaemshahr") ;
-Countries_IR_provinces_Bushehr_cities_Bushehr = UsePN (mkPN "Bushehr") ;
-Countries_UA_provinces_Chernivetska = UsePN (mkPN "Chernivetska") ;
-Countries_A_provinces_Salzburg = UsePN (mkPN "Salzburg") ;
-NewZealand = UsePN (mkPN "New Zealand") ;
-Countries_R_provinces_Rostovskayaoblast_cities_Novoshakhtinsk = UsePN (mkPN "Novoshakhtinsk") ;
-Countries_C_provinces_VillaClara_cities_SantaClara = UsePN (mkPN "Santa Clara") ;
-Countries_EAT_provinces_Lindi_cities_Lindi = UsePN (mkPN "Lindi") ;
-Russia = UsePN (mkPN "Russia") ;
-Countries_S_provinces_Gavleborg_cities_Gavle = UsePN (mkPN "Gavle") ;
-Countries_E_provinces_CanaryIslands_cities_LaLaguna = UsePN (mkPN "La Laguna") ;
-Countries_D_provinces_BadenWurttemberg_cities_FreiburgimBreisgau = UsePN (mkPN "Freiburg im Breisgau") ;
-Countries_MEX_provinces_Guanajuato_cities_Guanajuato = UsePN (mkPN "Guanajuato") ;
-Countries_IND_provinces_Gujarat_cities_Jamnagar = UsePN (mkPN "Jamnagar") ;
-Countries_CDN_provinces_PrinceEdwardIsland_cities_Charlottetown = UsePN (mkPN "Charlottetown") ;
-Countries_ET_provinces_ElQalubiya_cities_Benha = UsePN (mkPN "Benha") ;
-Countries_IR_provinces_Kerman = UsePN (mkPN "Kerman") ;
-Countries_R_provinces_Rep_ofSakha_cities_Yakutsk = UsePN (mkPN "Yakutsk") ;
-Countries_RC_cities_Sanchuung = UsePN (mkPN "Sanchuung") ;
-Countries_CO_provinces_Casanare_cities_Yopal = UsePN (mkPN "Yopal") ;
-Countries_GB_provinces_TyneandWear_cities_Gateshead = UsePN (mkPN "Gateshead") ;
-Countries_SN_provinces_Diourbel = UsePN (mkPN "Diourbel") ;
-Countries_IRQ_provinces_Ninawa = UsePN (mkPN "Ninawa") ;
-Countries_USA_provinces_Texas_cities_Mesquite = UsePN (mkPN "Mesquite") ;
-Countries_R_provinces_Amurskayaoblast = UsePN (mkPN "Amurskaya oblast") ;
-Countries_GB_provinces_Berkshire_cities_Newbury = UsePN (mkPN "Newbury") ;
-Organizations_WMO = UsePN (mkPN "World Meteorological Organization") ;
-Countries_CO_provinces_SanAndresyProvidencia = UsePN (mkPN "San Andres y Providencia") ;
-Seas_ArabianSea = UsePN (mkPN "Arabian Sea") ;
-Countries_TUV_cities_Funafuti = UsePN (mkPN "Funafuti") ;
-Countries_USA_provinces_California_cities_SimiValley = UsePN (mkPN "Simi Valley") ;
-Countries_C_provinces_SanctiSpiritus_cities_SanctiSpiritus = UsePN (mkPN "Sancti Spiritus") ;
-Countries_CDN_provinces_BritishColumbia_cities_Victoria = UsePN (mkPN "Victoria") ;
-Countries_BR_provinces_SaoPaulo = UsePN (mkPN "Sao Paulo") ;
-Countries_R_provinces_Orlovskayaoblast_cities_Orel = UsePN (mkPN "Orel") ;
-Countries_DK_cities_Odense = UsePN (mkPN "Odense") ;
-Countries_BD_cities_Comilla = UsePN (mkPN "Comilla") ;
-Countries_R_provinces_Krasnoyarskiykray_cities_Kansk = UsePN (mkPN "Kansk") ;
-Countries_PL_provinces_Gdanskie_cities_Gdansk = UsePN (mkPN "Gdansk") ;
-Countries_BR_cities_SantaBarbaradOeste = UsePN (mkPN "Santa Barbara dOeste") ;
-Countries_RC_provinces_Changhua_cities_Changhua = UsePN (mkPN "Changhua") ;
-Countries_R_provinces_UdmurtRepublic_cities_Sarapul = UsePN (mkPN "Sarapul") ;
-Countries_UAE_cities_Dubai = UsePN (mkPN "Dubai") ;
-Countries_P_provinces_Lisbon = UsePN (mkPN "Lisbon") ;
-Countries_USA_provinces_Virginia_cities_VirginiaBeach = UsePN (mkPN "Virginia Beach") ;
-Countries_cid_cia_Cayman_Islands_cities_GeorgeTown = UsePN (mkPN "George Town") ;
-Countries_USA_provinces_California_cities_Stockton = UsePN (mkPN "Stockton") ;
-Iran = UsePN (mkPN "Iran") ;
-Countries_SF_provinces_Oulu = UsePN (mkPN "Oulu") ;
-Countries_RO_provinces_Olt = UsePN (mkPN "Olt") ;
-Countries_CDN_provinces_Ontario_cities_Brampton = UsePN (mkPN "Brampton") ;
-Countries_TJ_provinces_Jilin_cities_Gongzhuling = UsePN (mkPN "Gongzhuling") ;
-Countries_CO_provinces_Meta_cities_Villavicencio = UsePN (mkPN "Villavicencio") ;
-Countries_EAT_provinces_Mbeya = UsePN (mkPN "Mbeya") ;
-Countries_D_provinces_Thuringen = UsePN (mkPN "Thuringen") ;
-Countries_BR_provinces_Bahia_cities_Juazeiro = UsePN (mkPN "Juazeiro") ;
-Countries_CH_provinces_TI = UsePN (mkPN "TI") ;
-Countries_PL_provinces_Katowickie_cities_Katowice = UsePN (mkPN "Katowice") ;
-Countries_BHT_cities_Thimphu = UsePN (mkPN "Thimphu") ;
-Countries_MEX_provinces_Coahuila = UsePN (mkPN "Coahuila") ;
-Rivers_Kwa = UsePN (mkPN "Kwa") ;
-Countries_IR_provinces_Semnan_cities_Semnan = UsePN (mkPN "Semnan") ;
-Countries_I_provinces_Veneto_cities_Venice = UsePN (mkPN "Venice") ;
-CoteDIvoire = UsePN (mkPN "Cote dIvoire") ;
-Lakes_LakeSuat = UsePN (mkPN "Lake Suat") ;
-Countries_TJ_provinces_Anhui_cities_Anqing = UsePN (mkPN "Anqing") ;
-Countries_J_provinces_Shizuoka = UsePN (mkPN "Shizuoka") ;
-MarshallIslands = UsePN (mkPN "Marshall Islands") ;
-Countries_S_provinces_Alvsborg_cities_Vanersborg = UsePN (mkPN "Vanersborg") ;
-Countries_TJ_provinces_Shaanxi_cities_Weinan = UsePN (mkPN "Weinan") ;
-Countries_HCA_provinces_Copan_cities_SantaRosadeCopan = UsePN (mkPN "Santa Rosa de Copan") ;
-Countries_BR_provinces_Paraiba_cities_SantaLuzia = UsePN (mkPN "Santa Luzia") ;
-Countries_RI_cities_Bengkulu = UsePN (mkPN "Bengkulu") ;
-Countries_MEX_provinces_Tabasco = UsePN (mkPN "Tabasco") ;
-Countries_SA_cities_Jeddah = UsePN (mkPN "Jeddah") ;
-Countries_NL_provinces_NoordBrabant = UsePN (mkPN "Noord Brabant") ;
-Countries_TJ_provinces_Tibet_cities_Lhasa = UsePN (mkPN "Lhasa") ;
-Countries_TR_provinces_Afyon_cities_Afyon = UsePN (mkPN "Afyon") ;
-Countries_IND_provinces_AndhraPradesh_cities_Warangal = UsePN (mkPN "Warangal") ;
-Madagascar = UsePN (mkPN "Madagascar") ;
-Countries_KAZ_provinces_Almaty = UsePN (mkPN "Almaty") ;
-Countries_B_provinces_Antwerp = UsePN (mkPN "Antwerp") ;
-Countries_ZRE_provinces_Kivu_cities_Goma = UsePN (mkPN "Goma") ;
-Rivers_Ural = UsePN (mkPN "Ural") ;
-Islands_Langeland = UsePN (mkPN "Langeland") ;
-Countries_GR_provinces_StereaEllas = UsePN (mkPN "Sterea Ellas") ;
-Countries_MA_cities_Tanger = UsePN (mkPN "Tanger") ;
-Countries_R_provinces_Pskovskayaoblast_cities_Pskov = UsePN (mkPN "Pskov") ;
-Venezuela = UsePN (mkPN "Venezuela") ;
-Countries_TJ_provinces_Henan_cities_Sanmenxia = UsePN (mkPN "Sanmenxia") ;
-Countries_ET_provinces_Asyut_cities_Asyut = UsePN (mkPN "Asyut") ;
-Countries_GB_provinces_IslandAreas_munic = UsePN (mkPN "Island Areas (munic.)") ;
-Countries_MEX_provinces_Michoacan = UsePN (mkPN "Michoacan") ;
-Organizations_UNTSO = UsePN (mkPN "United Nations Truce Supervision Organization") ;
-Countries_J_provinces_Gifu = UsePN (mkPN "Gifu") ;
-Countries_TR_provinces_Kirikkale_cities_Kirikkale = UsePN (mkPN "Kirikkale") ;
-Countries_CZ_provinces_Severomoravsky_cities_Ostrava = UsePN (mkPN "Ostrava") ;
-Countries_BR_provinces_Bahia_cities_Ilheus = UsePN (mkPN "Ilheus") ;
-Countries_RM_provinces_Antsiranana = UsePN (mkPN "Antsiranana") ;
-Countries_NL_provinces_Groningen_cities_Groningen = UsePN (mkPN "Groningen") ;
-Countries_BR_provinces_Para_cities_Itaituba = UsePN (mkPN "Itaituba") ;
-Countries_UA_provinces_Poltavska_cities_Kremenchuk = UsePN (mkPN "Kremenchuk") ;
-Countries_RA_provinces_Cordoba_cities_RioCuarto = UsePN (mkPN "Rio Cuarto") ;
-Countries_RI_cities_Bandung = UsePN (mkPN "Bandung") ;
-Countries_MEX_provinces_Chihuahua = UsePN (mkPN "Chihuahua") ;
-Countries_GB_provinces_Cleveland_cities_StocktononTees = UsePN (mkPN "Stockton on Tees") ;
-Countries_Z_provinces_Copperbelt_cities_Chingola = UsePN (mkPN "Chingola") ;
-Countries_ES_cities_Delgado = UsePN (mkPN "Delgado") ;
-Lakes_LakeSuperior = UsePN (mkPN "Lake Superior") ;
-Countries_I_provinces_Toscana_cities_Pisa = UsePN (mkPN "Pisa") ;
-Countries_NL_provinces_Zeeland_cities_Middelburg = UsePN (mkPN "Middelburg") ;
-Countries_RSA_cities_Daveyton = UsePN (mkPN "Daveyton") ;
-Countries_R_provinces_Tulskayaoblast_cities_Tula = UsePN (mkPN "Tula") ;
-Countries_IND_provinces_UttarPradesh_cities_Allahabad = UsePN (mkPN "Allahabad") ;
-Ukraine = UsePN (mkPN "Ukraine") ;
-Countries_RA_provinces_LaPampa_cities_SantaRosa = UsePN (mkPN "Santa Rosa") ;
-Countries_RI_cities_Palangkaraya = UsePN (mkPN "Palangkaraya") ;
-Lakes_LakeNyasa = UsePN (mkPN "Lake Nyasa") ;
-Countries_HCA_provinces_ElParaiso = UsePN (mkPN "El Paraiso") ;
-Countries_cid_cia_Reunion_cities_Saint_Denis = UsePN (mkPN "Saint-Denis") ;
-Countries_I_provinces_Lombardia_cities_Brescia = UsePN (mkPN "Brescia") ;
-Countries_TR_provinces_Kirikkale = UsePN (mkPN "Kirikkale") ;
-Countries_UZB_provinces_Toshkent_cities_Tashkent = UsePN (mkPN "Tashkent") ;
-Countries_R_provinces_Krasnodarskykray_cities_Armavir = UsePN (mkPN "Armavir") ;
-Countries_CO_provinces_Amazonas_cities_Leticia = UsePN (mkPN "Leticia") ;
-Countries_TR_provinces_Isparta_cities_Isparta = UsePN (mkPN "Isparta") ;
-Countries_GB_provinces_TyneandWear_cities_Newcastle = UsePN (mkPN "Newcastle") ;
-Countries_E_provinces_Catalonia_cities_Lleida = UsePN (mkPN "Lleida") ;
-Countries_SN_provinces_Kolda_cities_Kolda = UsePN (mkPN "Kolda") ;
-Uzbekistan = UsePN (mkPN "Uzbekistan") ;
-Countries_WAN_cities_Kano = UsePN (mkPN "Kano") ;
-Countries_USA_provinces_Georgia_cities_Columbus = UsePN (mkPN "Columbus") ;
-Countries_ET_provinces_BeniSuef_cities_BeniSuef = UsePN (mkPN "Beni Suef") ;
-Countries_IS_cities_Akureyri = UsePN (mkPN "Akureyri") ;
-Deserts_GrandErgEst = UsePN (mkPN "Grand Erg Est") ;
-Countries_J_provinces_Kochi_cities_Kochi = UsePN (mkPN "Kochi") ;
-Countries_IND_provinces_AndhraPradesh_cities_Vijayawada = UsePN (mkPN "Vijayawada") ;
-Countries_WAN_cities_Inisa = UsePN (mkPN "Inisa") ;
-Countries_N_provinces_Oppland_cities_Lillehammer = UsePN (mkPN "Lillehammer") ;
-Islands_JanMayen = UsePN (mkPN "Jan Mayen") ;
-Countries_SF_provinces_Haeme_cities_Tampere = UsePN (mkPN "Tampere") ;
-Countries_GCA_cities_GuatemalaCity = UsePN (mkPN "Guatemala City") ;
-Countries_TR_provinces_Tokat = UsePN (mkPN "Tokat") ;
-Countries_R_provinces_Smolenskayaoblast_cities_Smolensk = UsePN (mkPN "Smolensk") ;
-Mountains_Leuser = UsePN (mkPN "Leuser") ;
-Countries_YV_provinces_Anzoategui_cities_PuertoLaCruz = UsePN (mkPN "Puerto La Cruz") ;
-Countries_USA_provinces_California_cities_ChulaVista = UsePN (mkPN "Chula Vista") ;
-Countries_BD_cities_Nawabganj = UsePN (mkPN "Nawabganj") ;
-Countries_CZ_provinces_Zapadocesky_cities_Plzen = UsePN (mkPN "Plzen") ;
-Islands_Seeland = UsePN (mkPN "Seeland") ;
-Countries_S_provinces_Norrbotten_cities_Lulea = UsePN (mkPN "Lulea") ;
-Countries_PL_provinces_Leszczynskie = UsePN (mkPN "Leszczynskie") ;
-Countries_R_provinces_Novosibirskayaoblast_cities_Novosibirsk = UsePN (mkPN "Novosibirsk") ;
-Countries_PL_provinces_Gorzowskie = UsePN (mkPN "Gorzowskie") ;
-Countries_ZRE_provinces_Shaba_cities_Likasi = UsePN (mkPN "Likasi") ;
-Rivers_JoekulsaaFjoellum = UsePN (mkPN "Joekulsa a Fjoellum") ;
-Organizations_NSG = UsePN (mkPN "Nuclear Suppliers Group") ;
-Countries_YV_provinces_Tachira = UsePN (mkPN "Tachira") ;
-Countries_THA_provinces_SamutSongkhram = UsePN (mkPN "Samut Songkhram") ;
-Countries_LAR_cities_Bengasi = UsePN (mkPN "Bengasi") ;
-Countries_B_provinces_Liege_cities_Liege = UsePN (mkPN "Liege") ;
-Countries_TJ_provinces_Shandong_cities_Dongying = UsePN (mkPN "Dongying") ;
-Countries_TJ_provinces_Jiangxi_cities_Shangrao = UsePN (mkPN "Shangrao") ;
-Countries_RI_cities_Batam = UsePN (mkPN "Batam") ;
-Rivers_WhiteDrin = UsePN (mkPN "White Drin") ;
-Rivers_Oulujoki = UsePN (mkPN "Oulujoki") ;
-Countries_TJ_provinces_Hubei_cities_Xiaogan = UsePN (mkPN "Xiaogan") ;
-Countries_R_provinces_Tambovskayaoblast_cities_Tambov = UsePN (mkPN "Tambov") ;
-Countries_J_provinces_Mie_cities_Tsu = UsePN (mkPN "Tsu") ;
-Countries_R_provinces_Belgorodskayaoblast_cities_Belgorod = UsePN (mkPN "Belgorod") ;
-Countries_PE_provinces_Ancash = UsePN (mkPN "Ancash") ;
-Countries_ROK_cities_Taegu = UsePN (mkPN "Taegu") ;
-Countries_RO_provinces_Arges_cities_Pitesti = UsePN (mkPN "Pitesti") ;
-Islands_PrinceofWalesIsland = UsePN (mkPN "Prince of Wales Island") ;
-Countries_PE_provinces_Ica_cities_ChinchaAlta = UsePN (mkPN "Chincha Alta") ;
-Countries_IRQ_provinces_AsSulaymaniyah = UsePN (mkPN "As Sulaymaniyah") ;
-Countries_UA_provinces_Luhanska_cities_Luhansk = UsePN (mkPN "Luhansk") ;
-Countries_TJ_provinces_Qinghai = UsePN (mkPN "Qinghai") ;
-Countries_GB_provinces_Merseyside_cities_Sefton = UsePN (mkPN "Sefton") ;
-Countries_cid_cia_Virgin_Islands_cities_CharlotteAmalie = UsePN (mkPN "Charlotte Amalie") ;
-Countries_B_provinces_Limburg_cities_Hasselt = UsePN (mkPN "Hasselt") ;
-Countries_BR_provinces_RioGrandedoSul_cities_NovoHamburgo = UsePN (mkPN "Novo Hamburgo") ;
-Countries_IR_provinces_Tehran_cities_Qom = UsePN (mkPN "Qom") ;
-Countries_KAZ_provinces_Zhambyl_cities_Dzhambul = UsePN (mkPN "Dzhambul") ;
-Countries_S_provinces_Skaraborg_cities_Mariestad = UsePN (mkPN "Mariestad") ;
-Organizations_UNFPA = UsePN (mkPN "United Nations Population Fund") ;
-Lakes_LakeBangweulu = UsePN (mkPN "Lake Bangweulu") ;
-Lakes_LakeNicaragua = UsePN (mkPN "Lake Nicaragua") ;
-Countries_cid_cia_Northern_Mariana_Islands = UsePN (mkPN "Northern Mariana Islands") ;
-Countries_R_cities_Seversk = UsePN (mkPN "Seversk") ;
-Countries_TJ_provinces_Liaoning_cities_Fushun = UsePN (mkPN "Fushun") ;
-Countries_R_provinces_Sakhalinskayaoblast_cities_YuzhnoSakhalinsk = UsePN (mkPN "Yuzhno Sakhalinsk") ;
-Countries_MV_cities_Male = UsePN (mkPN "Male") ;
-Countries_RP_cities_Davao = UsePN (mkPN "Davao") ;
-Lakes_LakeRudolph = UsePN (mkPN "Lake Rudolph") ;
-Organizations_G_19 = UsePN (mkPN "Group of 19") ;
-Countries_BR_provinces_EspiritoSanto_cities_Colatina = UsePN (mkPN "Colatina") ;
-Countries_TJ_provinces_Shandong_cities_Zaozhuang = UsePN (mkPN "Zaozhuang") ;
-Countries_J_provinces_Oita_cities_Oita = UsePN (mkPN "Oita") ;
-Countries_CR_provinces_Limon = UsePN (mkPN "Limon") ;
-Countries_J_provinces_Nagasaki_cities_Nagasaki = UsePN (mkPN "Nagasaki") ;
-Organizations_IEA = UsePN (mkPN "International Energy Agency") ;
-Seas_CaribbeanSea = UsePN (mkPN "Caribbean Sea") ;
-Countries_ANG_provinces_Malanje = UsePN (mkPN "Malanje") ;
-Mountains_Glittertind = UsePN (mkPN "Glittertind") ;
-Countries_THA_provinces_AmnatCharoen = UsePN (mkPN "Amnat Charoen") ;
-Countries_TJ_provinces_Jilin_cities_Liaoyuan = UsePN (mkPN "Liaoyuan") ;
-Countries_BR_provinces_Roraima_cities_BoaVista = UsePN (mkPN "Boa Vista") ;
-Islands_EastCaicos = UsePN (mkPN "East Caicos") ;
-Countries_HCA_provinces_Yoro_cities_Olanchito = UsePN (mkPN "Olanchito") ;
-Countries_TR_provinces_Giresun = UsePN (mkPN "Giresun") ;
-Countries_RO_provinces_Calarasi_cities_Calarasi = UsePN (mkPN "Calarasi") ;
-Countries_RO_provinces_Galati_cities_Galati = UsePN (mkPN "Galati") ;
-Countries_D_provinces_Niedersachsen_cities_Hannover = UsePN (mkPN "Hannover") ;
-Countries_PL_provinces_Kaliskie_cities_Kalisz = UsePN (mkPN "Kalisz") ;
-Countries_USA_provinces_NewHampshire = UsePN (mkPN "New Hampshire") ;
-Countries_J_provinces_Okinawa_cities_Naha = UsePN (mkPN "Naha") ;
-Countries_WAN_cities_Oyo = UsePN (mkPN "Oyo") ;
-Countries_RI_cities_Kediri = UsePN (mkPN "Kediri") ;
-Countries_RSA_cities_Tembisa = UsePN (mkPN "Tembisa") ;
-Countries_USA_provinces_Utah_cities_SaltLakeCity = UsePN (mkPN "Salt Lake City") ;
-Countries_USA_provinces_Texas_cities_Plano = UsePN (mkPN "Plano") ;
-Countries_RM_provinces_Antsiranana_cities_Antsiranana = UsePN (mkPN "Antsiranana") ;
-Organizations_CACM = UsePN (mkPN "Central American Common Market") ;
-Countries_USA_provinces_Montana_cities_Helena = UsePN (mkPN "Helena") ;
-Countries_IND_provinces_Gujarat_cities_Bhavnagar = UsePN (mkPN "Bhavnagar") ;
-Countries_HCA_provinces_Lempira_cities_Gracias = UsePN (mkPN "Gracias") ;
-Countries_P_provinces_Faro = UsePN (mkPN "Faro") ;
-Countries_R_provinces_Kemerovskayaoblast = UsePN (mkPN "Kemerovskaya oblast") ;
-Countries_CV_cities_Praia = UsePN (mkPN "Praia") ;
-Countries_D_provinces_Sachsen_cities_Chemnitz = UsePN (mkPN "Chemnitz") ;
-Countries_MAL_provinces_Kelantan_cities_KotaBaharu = UsePN (mkPN "Kota Baharu") ;
-Countries_WAN_cities_Owo = UsePN (mkPN "Owo") ;
-Countries_BD_cities_Brahmanbaria = UsePN (mkPN "Brahmanbaria") ;
-Countries_CAM_provinces_Sudoueste_cities_Buea = UsePN (mkPN "Buea") ;
-Countries_MYA_provinces_Ayeyarwady_cities_Pathein = UsePN (mkPN "Pathein") ;
-Countries_IND_provinces_UttarPradesh_cities_Aligarh = UsePN (mkPN "Aligarh") ;
-Mountains_RasDaschan = UsePN (mkPN "Ras Daschan") ;
-Rivers_BlueNile = UsePN (mkPN "Blue Nile") ;
-Countries_VN_provinces_QuangNgai = UsePN (mkPN "Quang Ngai") ;
-Countries_ET_provinces_ElGharbiya_cities_ElMahallaelKubra = UsePN (mkPN "El Mahalla el Kubra") ;
-Countries_USA_provinces_Connecticut_cities_Hartford = UsePN (mkPN "Hartford") ;
-Countries_MYA_provinces_Kayin = UsePN (mkPN "Kayin") ;
-Lakes_ChicamaugaLake = UsePN (mkPN "Chicamauga Lake") ;
-Mountains_Meru = UsePN (mkPN "Meru") ;
-Countries_IND_provinces_Nagaland_cities_Kohima = UsePN (mkPN "Kohima") ;
-Countries_GB_provinces_Hampshire_cities_Havant = UsePN (mkPN "Havant") ;
-Countries_ET_provinces_Qena_cities_ElUqsur = UsePN (mkPN "El Uqsur") ;
-Countries_A_provinces_Vienna = UsePN (mkPN "Vienna") ;
-Countries_H_provinces_Csongrad_cities_Hodmezovasarhely = UsePN (mkPN "Hodmezovasarhely") ;
-Lebanon = UsePN (mkPN "Lebanon") ;
-Countries_GB_provinces_Dorset = UsePN (mkPN "Dorset") ;
-Countries_USA_provinces_NewJersey_cities_Trenton = UsePN (mkPN "Trenton") ;
-Countries_TJ_provinces_Hunan_cities_Yuanjiang = UsePN (mkPN "Yuanjiang") ;
-Countries_GB_provinces_Pembrokeshire = UsePN (mkPN "Pembrokeshire") ;
-Countries_BR_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
-Countries_R_provinces_Rostovskayaoblast = UsePN (mkPN "Rostovskaya oblast") ;
-Countries_GNB_cities_Bissau = UsePN (mkPN "Bissau") ;
-Lakes_Vaenern = UsePN (mkPN "Vaenern") ;
-Somalia = UsePN (mkPN "Somalia") ;
-Countries_LB_cities_Monrovia = UsePN (mkPN "Monrovia") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Bhilai = UsePN (mkPN "Bhilai") ;
-Countries_PL_provinces_Bydgoskie_cities_Bydgoszcz = UsePN (mkPN "Bydgoszcz") ;
-Countries_RA_provinces_BuenosAires_cities_Quilmes = UsePN (mkPN "Quilmes") ;
-Countries_GB_provinces_Caerphilly_cities_YstradFawr = UsePN (mkPN "Ystrad Fawr") ;
-Countries_AUS_provinces_NorfolkIsland_cities_Kingston = UsePN (mkPN "Kingston") ;
-Islands_Rhodos = UsePN (mkPN "Rhodos") ;
-Islands_Lanai = UsePN (mkPN "Lanai") ;
-Countries_ET_provinces_KafrelSheikh = UsePN (mkPN "Kafr el Sheikh") ;
-Countries_IR_provinces_Tehran_cities_Kashan = UsePN (mkPN "Kashan") ;
-Countries_GH_cities_Tema = UsePN (mkPN "Tema") ;
-Countries_IS_cities_Keflavik = UsePN (mkPN "Keflavik") ;
-Countries_PL_provinces_Opolskie = UsePN (mkPN "Opolskie") ;
-Countries_GR_cities_Larisa = UsePN (mkPN "Larisa") ;
-Mountains_Chimborazo = UsePN (mkPN "Chimborazo") ;
-Countries_GCA_cities_Mixco = UsePN (mkPN "Mixco") ;
-Niger = UsePN (mkPN "Niger") ;
-Countries_Z_provinces_Copperbelt = UsePN (mkPN "Copperbelt") ;
-Countries_CDN_provinces_BritishColumbia_cities_Vancouver = UsePN (mkPN "Vancouver") ;
-Countries_F_provinces_IledeFrance_cities_Paris = UsePN (mkPN "Paris") ;
-Countries_TJ_provinces_Beijing_munic = UsePN (mkPN "Beijing (munic.)") ;
-Countries_WAN_cities_Iseyin = UsePN (mkPN "Iseyin") ;
-Organizations_ANZUS = UsePN (mkPN "Australia-New Zealand-United States Security Treaty") ;
-Countries_CAM_provinces_Cote_cities_Douala = UsePN (mkPN "Douala") ;
-Countries_R_provinces_Krasnodarskykray = UsePN (mkPN "Krasnodarsky kray") ;
-Countries_USA_provinces_California_cities_Salinas = UsePN (mkPN "Salinas") ;
-Countries_A_provinces_Tyrol = UsePN (mkPN "Tyrol") ;
-Countries_IR_provinces_Zanjan = UsePN (mkPN "Zanjan") ;
-Countries_IL_provinces_TelAviv = UsePN (mkPN "Tel Aviv") ;
-Countries_RSA_provinces_Gauteng_cities_Pretoria = UsePN (mkPN "Pretoria") ;
-Countries_MOC_provinces_Maputo = UsePN (mkPN "Maputo") ;
-Countries_RP_cities_CagayandeOro = UsePN (mkPN "Cagayan de Oro") ;
-Deserts_LibyanDesert = UsePN (mkPN "Libyan Desert") ;
-Countries_cid_cia_Cook_Islands_cities_Avarua = UsePN (mkPN "Avarua") ;
-Countries_MA_provinces_CentreNord = UsePN (mkPN "Centre Nord") ;
-Countries_IR_provinces_Lorestan_cities_Borujerd = UsePN (mkPN "Borujerd") ;
-Countries_CH_provinces_JU_cities_Delemont = UsePN (mkPN "Delemont") ;
-Countries_S_provinces_Vasterbotten = UsePN (mkPN "Vasterbotten") ;
-Islands_Mull = UsePN (mkPN "Mull") ;
-Countries_USA_provinces_SouthDakota_cities_Pierre = UsePN (mkPN "Pierre") ;
-Countries_MEX_provinces_Mexico_Estadode = UsePN (mkPN "Mexico, Estado de") ;
-Countries_GB_provinces_Essex = UsePN (mkPN "Essex") ;
-Countries_RI_cities_Balikpapan = UsePN (mkPN "Balikpapan") ;
-Countries_cid_cia_Man = UsePN (mkPN "Man") ;
-Countries_CH_provinces_AR_cities_Herisau = UsePN (mkPN "Herisau") ;
-Countries_MAL_provinces_Sabah_cities_KotaKinabalu = UsePN (mkPN "Kota Kinabalu") ;
-Countries_HCA_provinces_Ocotepeque = UsePN (mkPN "Ocotepeque") ;
-Palau = UsePN (mkPN "Palau") ;
-Countries_KAZ_provinces_Qaraghandy_cities_Temirtau = UsePN (mkPN "Temirtau") ;
-Seas_RedSea = UsePN (mkPN "Red Sea") ;
-Countries_VN_provinces_CentralHighlands = UsePN (mkPN "Central Highlands") ;
-Sweden = UsePN (mkPN "Sweden") ;
-Countries_TJ_provinces_Jilin_cities_Daan = UsePN (mkPN "Daan") ;
-Islands_Kefallinia = UsePN (mkPN "Kefallinia") ;
-Countries_ZRE_provinces_BasZaire_cities_Boma = UsePN (mkPN "Boma") ;
-Countries_WAN_cities_Makurdi = UsePN (mkPN "Makurdi") ;
-Countries_KAZ_provinces_Semey_cities_Semey = UsePN (mkPN "Semey") ;
-Lakes_LacLeman = UsePN (mkPN "Lac Leman") ;
-Countries_TJ_provinces_Hebei = UsePN (mkPN "Hebei") ;
-Countries_R_provinces_Rostovskayaoblast_cities_Taganrog = UsePN (mkPN "Taganrog") ;
-Countries_BR_provinces_RiodeJaneiro_cities_DuquedeCaxias = UsePN (mkPN "Duque de Caxias") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Neuss = UsePN (mkPN "Neuss") ;
-Countries_ANG_provinces_Zaire = UsePN (mkPN "Zaire") ;
-Islands_Sumatra = UsePN (mkPN "Sumatra") ;
-Lakes_LakeMakarikari = UsePN (mkPN "Lake Makarikari") ;
-Countries_P_provinces_Porto = UsePN (mkPN "Porto") ;
-Countries_TJ_provinces_Liaoning_cities_Yingkou = UsePN (mkPN "Yingkou") ;
-Countries_VN_provinces_SonLa = UsePN (mkPN "Son La") ;
-Countries_GB_provinces_Cheshire_cities_Chester = UsePN (mkPN "Chester") ;
-Countries_GB_provinces_Denbighshire_cities_Ruthin = UsePN (mkPN "Ruthin") ;
-Countries_TJ_provinces_Guangdong = UsePN (mkPN "Guangdong") ;
-Countries_Q_cities_Doha = UsePN (mkPN "Doha") ;
-Countries_TM_provinces_Leban_cities_Charjew = UsePN (mkPN "Charjew") ;
-Countries_BD_cities_Naogaon = UsePN (mkPN "Naogaon") ;
-Lakes_OzeroBalchash = UsePN (mkPN "Ozero Balchash") ;
-Countries_N_provinces_Buskerud = UsePN (mkPN "Buskerud") ;
-Countries_TJ_provinces_Hebei_cities_Baoding = UsePN (mkPN "Baoding") ;
-Countries_TJ_provinces_Jiangsu_cities_Nantong = UsePN (mkPN "Nantong") ;
-Countries_PL_provinces_Tarnobrzeskie_cities_Tarnobrzeg = UsePN (mkPN "Tarnobrzeg") ;
-Countries_USA_provinces_Missouri = UsePN (mkPN "Missouri") ;
-Countries_J_provinces_Hyogo_cities_Kobe = UsePN (mkPN "Kobe") ;
-Countries_ET_provinces_Qena_cities_Qena = UsePN (mkPN "Qena") ;
-Countries_BR_cities_RibeiraodasNeves = UsePN (mkPN "Ribeirao das Neves") ;
-Countries_cid_cia_Cayman_Islands = UsePN (mkPN "Cayman Islands") ;
-Islands_Teneriffa = UsePN (mkPN "Teneriffa") ;
-Belize = UsePN (mkPN "Belize") ;
-Countries_PE_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
-Countries_AUS_provinces_Tasmania = UsePN (mkPN "Tasmania") ;
-Countries_RA_provinces_BuenosAires_cities_Moron = UsePN (mkPN "Moron") ;
-Countries_GB_provinces_WestMidlands_cities_Dudley = UsePN (mkPN "Dudley") ;
-Countries_H_provinces_Vas_cities_Szombathely = UsePN (mkPN "Szombathely") ;
-Countries_IND_provinces_Orissa = UsePN (mkPN "Orissa") ;
-Countries_WAN_cities_Lagos = UsePN (mkPN "Lagos") ;
-Countries_CZ_provinces_Jihocesky = UsePN (mkPN "Jihocesky") ;
-Countries_I_provinces_Basilicata = UsePN (mkPN "Basilicata") ;
-Islands_VictoriaIsland = UsePN (mkPN "Victoria Island") ;
-Countries_TR_provinces_Eskisehir_cities_Eskisehir = UsePN (mkPN "Eskisehir") ;
-Countries_SUD_provinces_Darfur_cities_Nyala = UsePN (mkPN "Nyala") ;
-Islands_Leyte = UsePN (mkPN "Leyte") ;
-Fiji = UsePN (mkPN "Fiji") ;
-Countries_I_provinces_EmiliaRomagna_cities_Modena = UsePN (mkPN "Modena") ;
-Countries_USA_provinces_California_cities_SantaAna = UsePN (mkPN "Santa Ana") ;
-Countries_NOK_cities_Songjin = UsePN (mkPN "Songjin") ;
-Countries_R_provinces_Krasnoyarskiykray_cities_Norilsk = UsePN (mkPN "Norilsk") ;
-Islands_GranCanaria = UsePN (mkPN "Gran Canaria") ;
-Countries_IR_provinces_Lorestan = UsePN (mkPN "Lorestan") ;
-Lakes_LakeStephanie = UsePN (mkPN "Lake Stephanie") ;
-Countries_D_provinces_NordrheinWestfalen = UsePN (mkPN "Nordrhein Westfalen") ;
-Oman = UsePN (mkPN "Oman") ;
-Countries_TJ_provinces_Anhui_cities_Hefei = UsePN (mkPN "Hefei") ;
-Countries_SF_provinces_Haeme = UsePN (mkPN "Haeme") ;
-Countries_F_provinces_Auvergne = UsePN (mkPN "Auvergne") ;
-Countries_cid_cia_Aruba_cities_Oranjestad = UsePN (mkPN "Oranjestad") ;
-Islands_Cayman = UsePN (mkPN "Cayman") ;
-Countries_CH_provinces_SO_cities_Solothurn = UsePN (mkPN "Solothurn") ;
-Countries_R_provinces_Irkutskayaoblast_cities_UstIlimsk = UsePN (mkPN "Ust Ilimsk") ;
-Countries_USA_provinces_NewJersey_cities_Elizabeth = UsePN (mkPN "Elizabeth") ;
-Singapore = UsePN (mkPN "Singapore") ;
-Rivers_Weser = UsePN (mkPN "Weser") ;
-Islands_Rhum = UsePN (mkPN "Rhum") ;
-Countries_CO_provinces_Guainia_cities_PuertoInirida = UsePN (mkPN "Puerto Inirida") ;
-Countries_GB_provinces_IslandAreas_munic_cities_IslandAreas = UsePN (mkPN "Island Areas") ;
-Countries_NOK_cities_Kanggye = UsePN (mkPN "Kanggye") ;
-Countries_RSA_provinces_Mpumalanga = UsePN (mkPN "Mpumalanga") ;
-Countries_D_provinces_SchleswigHolstein = UsePN (mkPN "Schleswig Holstein") ;
-Islands_Tobago = UsePN (mkPN "Tobago") ;
-Countries_TJ_provinces_Zhejiang_cities_Yuyao = UsePN (mkPN "Yuyao") ;
-Countries_TAD_provinces_Leninobod = UsePN (mkPN "Leninobod") ;
-Countries_RC_provinces_Taipei_munic_cities_Taipei = UsePN (mkPN "Taipei") ;
-Countries_ROK_cities_Chonju = UsePN (mkPN "Chonju") ;
-Countries_PL_provinces_Krakowskie = UsePN (mkPN "Krakowskie") ;
-Countries_H_provinces_SzabolcsSzatmar = UsePN (mkPN "Szabolcs Szatmar") ;
-Countries_YV_provinces_Aragua = UsePN (mkPN "Aragua") ;
-Countries_TJ_provinces_Guangdong_cities_Maoming = UsePN (mkPN "Maoming") ;
-Countries_BR_provinces_Bahia_cities_Barreiras = UsePN (mkPN "Barreiras") ;
-Countries_USA_provinces_Utah = UsePN (mkPN "Utah") ;
-Countries_TJ_provinces_Hubei_cities_Shishou = UsePN (mkPN "Shishou") ;
-Countries_RSA_cities_Mamelodi = UsePN (mkPN "Mamelodi") ;
-Countries_GB_provinces_Devon = UsePN (mkPN "Devon") ;
-Countries_VN_provinces_BinhThuan = UsePN (mkPN "Binh Thuan") ;
-Organizations_ACC = UsePN (mkPN "Arab Cooperation Council") ;
-Rivers_Parana = UsePN (mkPN "Parana") ;
-Countries_GB_provinces_Surrey_cities_Elmbridge = UsePN (mkPN "Elmbridge") ;
-Countries_BD_cities_Sirajganj = UsePN (mkPN "Sirajganj") ;
-Countries_PL_provinces_Przemyskie_cities_Przemysl = UsePN (mkPN "Przemysl") ;
-Countries_TJ_provinces_Guangdong_cities_Shaoguan = UsePN (mkPN "Shaoguan") ;
-Countries_J_provinces_Saga_cities_Saga = UsePN (mkPN "Saga") ;
-Countries_R_provinces_Primorskykray_cities_Ussuriysk = UsePN (mkPN "Ussuriysk") ;
-Countries_ET_provinces_Dumyat = UsePN (mkPN "Dumyat") ;
-Countries_EAK_provinces_Western = UsePN (mkPN "Western") ;
-Countries_BR_provinces_Alagoas = UsePN (mkPN "Alagoas") ;
-Countries_TJ_provinces_Shandong_cities_Xintai = UsePN (mkPN "Xintai") ;
-Countries_DK_cities_Randers = UsePN (mkPN "Randers") ;
-Countries_TR_provinces_Erzincan_cities_Erzincan = UsePN (mkPN "Erzincan") ;
-Countries_E_provinces_Murcia = UsePN (mkPN "Murcia") ;
-Countries_THA_provinces_BuriRam = UsePN (mkPN "Buri Ram") ;
-Countries_USA_provinces_California_cities_SantaClarita = UsePN (mkPN "Santa Clarita") ;
-Countries_BR_provinces_Acre = UsePN (mkPN "Acre") ;
-Countries_RSA_provinces_EasternCape_cities_KingWilliamsTown = UsePN (mkPN "King Williams Town") ;
-Rivers_St_Lorenzstrom = UsePN (mkPN "St. Lorenzstrom") ;
-Countries_N_provinces_MoereogRomsdal_cities_Molde = UsePN (mkPN "Molde") ;
-Countries_N_provinces_Telemark_cities_Skien = UsePN (mkPN "Skien") ;
-Bhutan = UsePN (mkPN "Bhutan") ;
-Countries_UZB_provinces_Bukhoro = UsePN (mkPN "Bukhoro") ;
-Countries_PA_provinces_Cocle = UsePN (mkPN "Cocle") ;
-Countries_cid_cia_Svalbard = UsePN (mkPN "Svalbard") ;
-Countries_AUS_provinces_Kirimati = UsePN (mkPN "Kirimati") ;
-Countries_cid_cia_Montserrat_cities_Plymouth = UsePN (mkPN "Plymouth") ;
-Countries_R_provinces_Altayskiykray_cities_Biysk = UsePN (mkPN "Biysk") ;
-Countries_TR_provinces_Ankara = UsePN (mkPN "Ankara") ;
-Countries_THA_provinces_NakhonSawan_cities_NakhonSawan = UsePN (mkPN "Nakhon Sawan") ;
-Countries_E_provinces_Catalonia_cities_SantaColomadeGramanet = UsePN (mkPN "Santa Coloma de Gramanet") ;
-Turkmenistan = UsePN (mkPN "Turkmenistan") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Podolsk = UsePN (mkPN "Podolsk") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoVicente = UsePN (mkPN "Sao Vicente") ;
-Countries_E_provinces_Galicia_cities_Orense = UsePN (mkPN "Orense") ;
-Brazil = UsePN (mkPN "Brazil") ;
-Countries_PE_provinces_Ayacucho_cities_Ayacucho = UsePN (mkPN "Ayacucho") ;
-Islands_Iona = UsePN (mkPN "Iona") ;
-Countries_MAL_provinces_Pahang = UsePN (mkPN "Pahang") ;
-Countries_TJ_provinces_Liaoning_cities_Wafangdian = UsePN (mkPN "Wafangdian") ;
-Rivers_Schari = UsePN (mkPN "Schari") ;
-Organizations_CP = UsePN (mkPN "Colombo Plan") ;
-Lakes_LakeNaesi = UsePN (mkPN "Lake Naesi") ;
-Countries_cid_cia_Macau_cities_Macau = UsePN (mkPN "Macau") ;
-Countries_CDN_provinces_Quebec_cities_Montreal = UsePN (mkPN "Montreal") ;
-Countries_GH_cities_Kumasi = UsePN (mkPN "Kumasi") ;
-Countries_ES_provinces_SanVicente = UsePN (mkPN "San Vicente") ;
-Organizations_BCIE = UsePN (mkPN "Central American Bank for Economic Integration") ;
-Countries_R_provinces_Rep_ofBashkortostan = UsePN (mkPN "Rep. of Bashkortostan") ;
-Organizations_G_11 = UsePN (mkPN "Group of 11") ;
-Countries_PL_provinces_Warszwaskie = UsePN (mkPN "Warszwaskie") ;
-Countries_cid_cia_Guam_cities_Agana = UsePN (mkPN "Agana") ;
-Countries_H_provinces_Debrecen_munic = UsePN (mkPN "Debrecen (munic.)") ;
-Countries_EAK_provinces_Nyanza_cities_Kisii = UsePN (mkPN "Kisii") ;
-Countries_ANG_provinces_Moxico = UsePN (mkPN "Moxico") ;
-Countries_RM_provinces_Mahajanga = UsePN (mkPN "Mahajanga") ;
-Countries_PL_provinces_Leszczynskie_cities_Leszno = UsePN (mkPN "Leszno") ;
-Countries_VN_provinces_TuyenQuang = UsePN (mkPN "Tuyen Quang") ;
-UnitedArabEmirates = UsePN (mkPN "United Arab Emirates") ;
-Organizations_OPEC = UsePN (mkPN "Organization of Petroleum Exporting Countries") ;
-Lakes_GreatBearLake = UsePN (mkPN "Great Bear Lake") ;
-Countries_TJ_provinces_Hunan_cities_Liling = UsePN (mkPN "Liling") ;
-Countries_TJ_provinces_Yunnan_cities_Kunming = UsePN (mkPN "Kunming") ;
-Countries_MOC_cities_Matala = UsePN (mkPN "Matala") ;
-Countries_PE_provinces_SanMartin_cities_Moyobamba = UsePN (mkPN "Moyobamba") ;
-Countries_N_provinces_Oestfold = UsePN (mkPN "Oestfold") ;
-Countries_GB_provinces_Gloucestershire_cities_Stroud = UsePN (mkPN "Stroud") ;
-Countries_A_provinces_Vorarlberg_cities_Bregenz = UsePN (mkPN "Bregenz") ;
-Countries_KAZ_provinces_Kokchetau_cities_Kokchetau = UsePN (mkPN "Kokchetau") ;
-Countries_THA_provinces_BangkokMetropolis_cities_Bangkok = UsePN (mkPN "Bangkok") ;
-Countries_R_provinces_Tambovskayaoblast_cities_Michurinsk = UsePN (mkPN "Michurinsk") ;
-Countries_GB_provinces_Cheshire_cities_Crewe = UsePN (mkPN "Crewe") ;
-Countries_I_provinces_Molise_cities_Campobasso = UsePN (mkPN "Campobasso") ;
-Countries_D_provinces_RheinlandPfalz_cities_Koblenz = UsePN (mkPN "Koblenz") ;
-Countries_CO_provinces_Cordoba = UsePN (mkPN "Cordoba") ;
-Organizations_OIC = UsePN (mkPN "Organization of the Islamic Conference") ;
-Countries_PE_provinces_Tumbes = UsePN (mkPN "Tumbes") ;
-Countries_J_provinces_Nara = UsePN (mkPN "Nara") ;
-Countries_R_provinces_Yevreyskayaavt_oblast_cities_Birobidzhan = UsePN (mkPN "Birobidzhan") ;
-Countries_YV_provinces_Merida_cities_Merida = UsePN (mkPN "Merida") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Guixian = UsePN (mkPN "Guixian") ;
-Countries_IRQ_provinces_Irbil_cities_Irbil = UsePN (mkPN "Irbil") ;
-Countries_USA_provinces_Massachusetts_cities_Lowell = UsePN (mkPN "Lowell") ;
-Countries_C_provinces_Matanzas = UsePN (mkPN "Matanzas") ;
-Countries_ET_provinces_ElQahira_munic_cities_Cairo = UsePN (mkPN "Cairo") ;
-Countries_E_provinces_Rioja_cities_Logrono = UsePN (mkPN "Logrono") ;
-Countries_R_provinces_Stavropolskykray_cities_Nevinnomyssk = UsePN (mkPN "Nevinnomyssk") ;
-Countries_KAZ_provinces_ShyghysQazaqstan = UsePN (mkPN "Shyghys Qazaqstan") ;
-Countries_IND_provinces_Sikkim_cities_Gangtok = UsePN (mkPN "Gangtok") ;
-Countries_WAN_cities_Ilobu = UsePN (mkPN "Ilobu") ;
-Rivers_Baro = UsePN (mkPN "Baro") ;
-Rivers_WhiteNile = UsePN (mkPN "White Nile") ;
-Countries_C_provinces_CiegodeAvila_cities_CiegodeAvila = UsePN (mkPN "Ciego de Avila") ;
-Countries_IR_provinces_Esfahan_cities_Esfahan = UsePN (mkPN "Esfahan") ;
-Countries_IR_cities_Islamshahr = UsePN (mkPN "Islamshahr") ;
-Countries_AL_cities_Elbasan = UsePN (mkPN "Elbasan") ;
-UnitedKingdom = UsePN (mkPN "United Kingdom") ;
-Countries_GB_provinces_Merseyside_cities_Wiral = UsePN (mkPN "Wiral") ;
-Countries_cid_cia_Niue = UsePN (mkPN "Niue") ;
-Countries_GH_cities_Sekondi = UsePN (mkPN "Sekondi") ;
-Countries_MEX_provinces_Chiapas_cities_Nezahualcoyotl = UsePN (mkPN "Nezahualcoyotl") ;
-Countries_PL_provinces_Katowickie_cities_RudaSlaska = UsePN (mkPN "Ruda Slaska") ;
-Countries_BR_provinces_MinasGerais_cities_JuizdeFora = UsePN (mkPN "Juiz de Fora") ;
-Mountains_EmiKussi = UsePN (mkPN "Emi Kussi") ;
-Countries_F_provinces_NordPasdeCalais = UsePN (mkPN "Nord Pas de Calais") ;
-Countries_BD_cities_Tangail = UsePN (mkPN "Tangail") ;
-Countries_R_provinces_Kaluzhskayaoblast = UsePN (mkPN "Kaluzhskaya oblast") ;
-Liechtenstein = UsePN (mkPN "Liechtenstein") ;
-Guinea = UsePN (mkPN "Guinea") ;
-Countries_TJ_provinces_Henan_cities_Nanyang = UsePN (mkPN "Nanyang") ;
-SouthKorea = UsePN (mkPN "South Korea") ;
-Countries_J_provinces_Yamanashi_cities_Kofu = UsePN (mkPN "Kofu") ;
-Countries_USA_provinces_Ohio_cities_Cleveland = UsePN (mkPN "Cleveland") ;
-Countries_BR_provinces_RioGrandedoSul_cities_SantaCruzdoSul = UsePN (mkPN "Santa Cruz do Sul") ;
-Rivers_Rhone = UsePN (mkPN "Rhone") ;
-Countries_USA_provinces_Alabama_cities_Huntsville = UsePN (mkPN "Huntsville") ;
-Countries_GB_provinces_Northamptonshire = UsePN (mkPN "Northamptonshire") ;
-Countries_SUD_provinces_BahralGhazal_cities_Waw = UsePN (mkPN "Waw") ;
-Countries_WAN_cities_Aba = UsePN (mkPN "Aba") ;
-Countries_PA_provinces_LosSantos = UsePN (mkPN "Los Santos") ;
-Islands_Anjouan = UsePN (mkPN "Anjouan") ;
-Countries_YV_provinces_Cojedes_cities_SanCarlos = UsePN (mkPN "San Carlos") ;
-Countries_TJ_provinces_Jilin_cities_Huadian = UsePN (mkPN "Huadian") ;
-Countries_USA_provinces_Arizona_cities_Tucson = UsePN (mkPN "Tucson") ;
-Countries_USA_provinces_California_cities_Pasadena = UsePN (mkPN "Pasadena") ;
-Countries_TJ_provinces_Liaoning_cities_Dandong = UsePN (mkPN "Dandong") ;
-Countries_MEX_provinces_DistritoFederal_cities_MexicoCity = UsePN (mkPN "Mexico City") ;
-Countries_PL_provinces_Koszalinskie_cities_Koszalin = UsePN (mkPN "Koszalin") ;
-Countries_H_provinces_Nograd = UsePN (mkPN "Nograd") ;
-Countries_KAZ_provinces_Zhezkazghan_cities_Zhezkazghan = UsePN (mkPN "Zhezkazghan") ;
-Countries_PL_provinces_Torunskie_cities_Torun = UsePN (mkPN "Torun") ;
-Countries_PE_provinces_Arequipa = UsePN (mkPN "Arequipa") ;
-Countries_GB_provinces_Humberside_cities_Beverley = UsePN (mkPN "Beverley") ;
-Countries_PK_cities_Peshawar = UsePN (mkPN "Peshawar") ;
-Countries_R_provinces_Omskayaoblast = UsePN (mkPN "Omskaya oblast") ;
-Countries_CH_provinces_GR_cities_Chur = UsePN (mkPN "Chur") ;
-Countries_F_provinces_Corse = UsePN (mkPN "Corse") ;
-Countries_TJ_provinces_Zhejiang_cities_Haining = UsePN (mkPN "Haining") ;
-Mountains_Snoefell = UsePN (mkPN "Snoefell") ;
-Countries_J_provinces_Saitama_cities_Urawa = UsePN (mkPN "Urawa") ;
-Countries_D_provinces_Sachsen_cities_Zwickau = UsePN (mkPN "Zwickau") ;
-Countries_I_provinces_Sardegna_cities_Cagliari = UsePN (mkPN "Cagliari") ;
-Lakes_LakeCabora_Bassa = UsePN (mkPN "Lake Cabora-Bassa") ;
-Countries_IND_cities_PimpriChinchwad = UsePN (mkPN "Pimpri Chinchwad") ;
-Countries_Z_provinces_Southern = UsePN (mkPN "Southern") ;
-Countries_cid_cia_Coral_Sea_Islands = UsePN (mkPN "Coral Sea Islands") ;
-Countries_GH_cities_Takoradi = UsePN (mkPN "Takoradi") ;
-Countries_CO_provinces_Arauca_cities_Arauca = UsePN (mkPN "Arauca") ;
-Countries_CO_provinces_Choco_cities_Quibdo = UsePN (mkPN "Quibdo") ;
-Countries_RO_provinces_Brasov_cities_Brasov = UsePN (mkPN "Brasov") ;
-Countries_IR_provinces_Fars = UsePN (mkPN "Fars") ;
-Lakes_LakeWinnipesaukee = UsePN (mkPN "Lake Winnipesaukee") ;
-Countries_IND_provinces_Maharashtra_cities_Ulhasnagar = UsePN (mkPN "Ulhasnagar") ;
-Countries_GB_provinces_Warwickshire = UsePN (mkPN "Warwickshire") ;
-Countries_MEX_provinces_Chiapas_cities_Tapachula = UsePN (mkPN "Tapachula") ;
-Organizations_OAPEC = UsePN (mkPN "Organization of Arab Petroleum Exporting Countries") ;
-Countries_USA_provinces_Colorado_cities_Aurora = UsePN (mkPN "Aurora") ;
-Countries_BR_provinces_EspiritoSanto_cities_Linhares = UsePN (mkPN "Linhares") ;
-Rivers_Irtysch = UsePN (mkPN "Irtysch") ;
-Countries_TR_provinces_Artvin_cities_Artvin = UsePN (mkPN "Artvin") ;
-Countries_I_provinces_Puglia_cities_Lecce = UsePN (mkPN "Lecce") ;
-Belgium = UsePN (mkPN "Belgium") ;
-Countries_MYA_provinces_Shan = UsePN (mkPN "Shan") ;
-Countries_TJ_provinces_Henan_cities_Pingdingshan = UsePN (mkPN "Pingdingshan") ;
-Countries_THA_provinces_CentralRegion = UsePN (mkPN "Central Region") ;
-Countries_TJ_provinces_Shanghai_munic_cities_Shanghai = UsePN (mkPN "Shanghai") ;
-Countries_UA_provinces_Odeska_cities_Odesa = UsePN (mkPN "Odesa") ;
-Countries_ANG_provinces_Zaire_cities_MbanzaCongo = UsePN (mkPN "Mbanza Congo") ;
-Countries_RO_provinces_Dimbovita_cities_Tirgoviste = UsePN (mkPN "Tirgoviste") ;
-Countries_MEX_provinces_BajaCalifornia = UsePN (mkPN "Baja California") ;
-Countries_RI_cities_Malang = UsePN (mkPN "Malang") ;
-Lakes_LakeEyasi = UsePN (mkPN "Lake Eyasi") ;
-Countries_BR_provinces_SaoPaulo_cities_MojidasCruzes = UsePN (mkPN "Moji das Cruzes") ;
-Countries_N_provinces_SognogFjordane = UsePN (mkPN "Sogn og Fjordane") ;
-Countries_IND_provinces_AndhraPradesh_cities_Hyderabad = UsePN (mkPN "Hyderabad") ;
-Countries_GB_provinces_Hampshire_cities_Fareham = UsePN (mkPN "Fareham") ;
-Countries_R_provinces_Tyumenskayaoblast_cities_Nizhnevartovsk = UsePN (mkPN "Nizhnevartovsk") ;
-Lakes_LakeMackay = UsePN (mkPN "Lake Mackay") ;
-Countries_MEX_provinces_Queretaro = UsePN (mkPN "Queretaro") ;
-Countries_E_provinces_Catalonia = UsePN (mkPN "Catalonia") ;
-Countries_WV_cities_Kingstown = UsePN (mkPN "Kingstown") ;
-Seas_BalticSea = UsePN (mkPN "Baltic Sea") ;
-Countries_GB_provinces_Humberside = UsePN (mkPN "Humberside") ;
-Countries_TJ_provinces_Qinghai_cities_Yushu = UsePN (mkPN "Yushu") ;
-Countries_BR_provinces_RioGrandedoSul_cities_Viamao = UsePN (mkPN "Viamao") ;
-Countries_MOC_provinces_Tete = UsePN (mkPN "Tete") ;
-Organizations_AMF = UsePN (mkPN "Arab Monetary Fund") ;
-Countries_CO_provinces_ValledeCauca_cities_Cartago = UsePN (mkPN "Cartago") ;
-Countries_BD_cities_Narsinghdi = UsePN (mkPN "Narsinghdi") ;
-Countries_EAT_provinces_KaskaziniPemba_cities_Wete = UsePN (mkPN "Wete") ;
-Countries_TR_provinces_Kirklareli_cities_Kirklareli = UsePN (mkPN "Kirklareli") ;
-Countries_IND_provinces_UttarPradesh_cities_Gorakhpur = UsePN (mkPN "Gorakhpur") ;
-Poland = UsePN (mkPN "Poland") ;
-Countries_RA_provinces_TierradelFuego = UsePN (mkPN "Tierra del Fuego") ;
-Countries_I_provinces_TrentinoAltoAdige_cities_Trento = UsePN (mkPN "Trento") ;
-Rivers_Donau = UsePN (mkPN "Donau") ;
-Countries_THA_provinces_Lampang = UsePN (mkPN "Lampang") ;
-Bulgaria = UsePN (mkPN "Bulgaria") ;
-Countries_B_provinces_Luxembourg = UsePN (mkPN "Luxembourg") ;
-Organizations_ECOWAS = UsePN (mkPN "Economic Community of West African States") ;
-Countries_R_provinces_Moskva_cities_Moscow = UsePN (mkPN "Moscow") ;
-Countries_S_provinces_Sodermanland = UsePN (mkPN "Sodermanland") ;
-Countries_IND_provinces_UttarPradesh_cities_Faridabad = UsePN (mkPN "Faridabad") ;
-Rivers_Sanaga = UsePN (mkPN "Sanaga") ;
-Countries_RO_provinces_Prahova = UsePN (mkPN "Prahova") ;
-Burundi = UsePN (mkPN "Burundi") ;
-Countries_UZB_provinces_Sirdare = UsePN (mkPN "Sirdare") ;
-Countries_TJ_provinces_Guizhou_cities_Zunyi = UsePN (mkPN "Zunyi") ;
-Countries_PK_cities_WahCantonment = UsePN (mkPN "Wah Cantonment") ;
-Countries_E_provinces_Estremadura_cities_Badajoz = UsePN (mkPN "Badajoz") ;
-Countries_R_provinces_Altayskiykray_cities_Rubtsovsk = UsePN (mkPN "Rubtsovsk") ;
-Rivers_Ajan_Jurjach = UsePN (mkPN "Ajan-Jurjach") ;
-Countries_USA_provinces_Tennessee_cities_Chattanooga = UsePN (mkPN "Chattanooga") ;
-Countries_USA_provinces_Kentucky = UsePN (mkPN "Kentucky") ;
-Islands_Westsamoa = UsePN (mkPN "Westsamoa") ;
-Countries_D_provinces_MecklenburgVorpommern = UsePN (mkPN "Mecklenburg Vorpommern") ;
-Countries_THA_provinces_NakhonRatchasima_cities_NakhonRatchasima = UsePN (mkPN "Nakhon Ratchasima") ;
-Countries_IS_cities_Hafnarfjoerdur = UsePN (mkPN "Hafnarfjoerdur") ;
-Countries_TJ_provinces_Jiangsu_cities_Jiangyin = UsePN (mkPN "Jiangyin") ;
-Countries_CR_provinces_Guanacaste_cities_Liberia = UsePN (mkPN "Liberia") ;
-Countries_CH_provinces_VD_cities_Lausanne = UsePN (mkPN "Lausanne") ;
-Countries_TR_provinces_Ordu_cities_Ordu = UsePN (mkPN "Ordu") ;
-Islands_Barra = UsePN (mkPN "Barra") ;
-Islands_Nantucket = UsePN (mkPN "Nantucket") ;
-Lakes_HamuneJazMurian = UsePN (mkPN "Hamun e Jaz Murian") ;
-Countries_CH_provinces_BL_cities_Liestal = UsePN (mkPN "Liestal") ;
-Countries_D_provinces_Niedersachsen_cities_Osnabruck = UsePN (mkPN "Osnabruck") ;
-Countries_USA_provinces_California_cities_Fontana = UsePN (mkPN "Fontana") ;
-Countries_CO_provinces_Guajira_La = UsePN (mkPN "Guajira, La") ;
-Islands_SouthUlist = UsePN (mkPN "South Ulist") ;
-Islands_Oeland = UsePN (mkPN "Oeland") ;
-Countries_TJ_provinces_Tianjin_munic_cities_Tianjin = UsePN (mkPN "Tianjin") ;
-Countries_TM_provinces_Ahal = UsePN (mkPN "Ahal") ;
-Countries_E_provinces_Navarre_cities_Pamplona = UsePN (mkPN "Pamplona") ;
-Countries_cid_cia_Niue_cities_Alofi = UsePN (mkPN "Alofi") ;
-Countries_P_provinces_Setubal_cities_Setubal = UsePN (mkPN "Setubal") ;
-Organizations_AsDB = UsePN (mkPN "Asian Development Bank") ;
-Countries_IND_provinces_Assam_cities_Gauhati = UsePN (mkPN "Gauhati") ;
-Islands_Samos = UsePN (mkPN "Samos") ;
-Countries_R_provinces_Novosibirskayaoblast = UsePN (mkPN "Novosibirskaya oblast") ;
-Countries_VN_cities_QuiNhon = UsePN (mkPN "Qui Nhon") ;
-Countries_UA_provinces_Khersonska_cities_Kherson = UsePN (mkPN "Kherson") ;
-Countries_YV_provinces_DistritoFederal_cities_Caracas = UsePN (mkPN "Caracas") ;
-Countries_IL_provinces_Haifa_cities_Haifa = UsePN (mkPN "Haifa") ;
-Countries_F_provinces_Picardie = UsePN (mkPN "Picardie") ;
-Countries_YV_provinces_Guarico = UsePN (mkPN "Guarico") ;
-Countries_PL_provinces_Katowickie = UsePN (mkPN "Katowickie") ;
-Countries_TJ_provinces_Shandong_cities_Dezhou = UsePN (mkPN "Dezhou") ;
-Countries_BD_cities_Bogra = UsePN (mkPN "Bogra") ;
-Countries_J_provinces_Yamagata_cities_Yamagata = UsePN (mkPN "Yamagata") ;
-Countries_TJ_provinces_Liaoning_cities_Fengcheng = UsePN (mkPN "Fengcheng") ;
-Countries_TR_provinces_Denizli_cities_Denizli = UsePN (mkPN "Denizli") ;
-Mountains_GannettPeak = UsePN (mkPN "Gannett Peak") ;
-Countries_S_provinces_Vasternorrland_cities_Harnosand = UsePN (mkPN "Harnosand") ;
-Countries_R_provinces_Novgorodskayaoblast = UsePN (mkPN "Novgorodskaya oblast") ;
-Countries_IND_provinces_Gujarat_cities_Surat = UsePN (mkPN "Surat") ;
-Countries_F_provinces_BasseNormandie = UsePN (mkPN "Basse Normandie") ;
-Countries_TJ_provinces_Jilin_cities_Hunjiang = UsePN (mkPN "Hunjiang") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Moers = UsePN (mkPN "Moers") ;
-Countries_KAZ_provinces_Atyrau_cities_Atyrau = UsePN (mkPN "Atyrau") ;
-Countries_TJ_provinces_Jiangsu_cities_Nanjing = UsePN (mkPN "Nanjing") ;
-Rivers_Thjorsa = UsePN (mkPN "Thjorsa") ;
-Organizations_IGADD = UsePN (mkPN "Inter-Governmental Authority on Drought and Development") ;
-Countries_VN_cities_Haiphong = UsePN (mkPN "Haiphong") ;
-Islands_Mindanao = UsePN (mkPN "Mindanao") ;
-Countries_ZRE_provinces_HautZaire = UsePN (mkPN "Haut Zaire") ;
-Countries_TR_provinces_Zonguldak_cities_Zonguldak = UsePN (mkPN "Zonguldak") ;
-Countries_EAT_provinces_Mara_cities_Musoma = UsePN (mkPN "Musoma") ;
-Islands_Guernsey = UsePN (mkPN "Guernsey") ;
-Countries_MAL_provinces_Perlis_cities_Kangar = UsePN (mkPN "Kangar") ;
-Countries_KAZ_provinces_Zhezkazghan_cities_Zhezqazghan = UsePN (mkPN "Zhezqazghan") ;
-Countries_I_provinces_EmiliaRomagna_cities_Ravenna = UsePN (mkPN "Ravenna") ;
-Countries_J_provinces_Niigata = UsePN (mkPN "Niigata") ;
-Countries_PL_provinces_Koninskie_cities_Konin = UsePN (mkPN "Konin") ;
-Countries_MAL_provinces_Fed_Terr_ofLabuan_cities_Labuan = UsePN (mkPN "Labuan") ;
-Countries_H_provinces_Szeged_munic_cities_Szeged = UsePN (mkPN "Szeged") ;
-Countries_E_provinces_Andalusia_cities_Granada = UsePN (mkPN "Granada") ;
-Countries_SN_provinces_Dakar_cities_Dakar = UsePN (mkPN "Dakar") ;
-Countries_TJ_provinces_Guangdong_cities_Yangjiang = UsePN (mkPN "Yangjiang") ;
-Countries_H_provinces_Zala_cities_Zalaegerszeg = UsePN (mkPN "Zalaegerszeg") ;
-Countries_D_provinces_Bayern_cities_Augsburg = UsePN (mkPN "Augsburg") ;
-Countries_cid_cia_Montserrat = UsePN (mkPN "Montserrat") ;
-Countries_BR_provinces_SaoPaulo_cities_Suzano = UsePN (mkPN "Suzano") ;
-Countries_TJ_provinces_Shandong_cities_Zibo = UsePN (mkPN "Zibo") ;
-Countries_BS_cities_Nassau = UsePN (mkPN "Nassau") ;
-Countries_MEX_provinces_Veracruz_cities_Orizaba = UsePN (mkPN "Orizaba") ;
-Mountains_Tubhal = UsePN (mkPN "Tubhal") ;
-Algeria = UsePN (mkPN "Algeria") ;
-Countries_ES_provinces_Sonsonate = UsePN (mkPN "Sonsonate") ;
-Countries_H_provinces_KomaromEsztergom_cities_Tatabanya = UsePN (mkPN "Tatabanya") ;
-Countries_GB_provinces_GreaterLondon_cities_London = UsePN (mkPN "London") ;
-Countries_R_provinces_Rep_ofTyva_cities_Kyzyl = UsePN (mkPN "Kyzyl") ;
-Countries_J_provinces_Kagoshima_cities_Kagoshima = UsePN (mkPN "Kagoshima") ;
-Countries_GH_cities_Accra = UsePN (mkPN "Accra") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Ujjain = UsePN (mkPN "Ujjain") ;
-Countries_R_provinces_Primorskykray = UsePN (mkPN "Primorsky kray") ;
-Countries_HCA_provinces_IslasdelaBahia = UsePN (mkPN "Islas de la Bahia") ;
-Lakes_Maelaren = UsePN (mkPN "Maelaren") ;
-Countries_R_provinces_Rep_ofKomi_cities_Vorkuta = UsePN (mkPN "Vorkuta") ;
-Countries_MEX_provinces_Sonora_cities_Hermosillo = UsePN (mkPN "Hermosillo") ;
-Rivers_Cuanza = UsePN (mkPN "Cuanza") ;
-Countries_TR_provinces_Manisa_cities_Manisa = UsePN (mkPN "Manisa") ;
-Countries_R_provinces_Rep_ofTatarstan = UsePN (mkPN "Rep. of Tatarstan") ;
-Countries_IR_provinces_Tehran_cities_Karaj = UsePN (mkPN "Karaj") ;
-Countries_BR_provinces_EspiritoSanto_cities_CachoeirodeItapemirim = UsePN (mkPN "Cachoeiro de Itapemirim") ;
-Lakes_Tschadsee = UsePN (mkPN "Tschadsee") ;
-Countries_RC_provinces_Hsinchu = UsePN (mkPN "Hsinchu") ;
-Countries_GB_provinces_ValeofGlamorgan_cities_RhymneyValley = UsePN (mkPN "Rhymney Valley") ;
-Countries_I_provinces_FriuliVeneziaGiulia_cities_Trieste = UsePN (mkPN "Trieste") ;
-Countries_RA_provinces_Jujuy = UsePN (mkPN "Jujuy") ;
-Countries_DZ_cities_Blida = UsePN (mkPN "Blida") ;
-Countries_TR_provinces_Gumushane = UsePN (mkPN "Gumushane") ;
-SerbiaAndMontenegro = UsePN (mkPN "Serbia and Montenegro") ;
-Countries_D_provinces_Sachsen_cities_Leipzig = UsePN (mkPN "Leipzig") ;
-Countries_RN_cities_Niamey = UsePN (mkPN "Niamey") ;
-Countries_UAE_provinces_RasalKhaymah = UsePN (mkPN "Ras al Khaymah") ;
-Portugal = UsePN (mkPN "Portugal") ;
-Continents_America = UsePN (mkPN "America") ;
-Countries_SUD_provinces_AalianNil = UsePN (mkPN "Aali an Nil") ;
-Countries_PA_provinces_Herrera = UsePN (mkPN "Herrera") ;
-Countries_WAG_cities_Banjul = UsePN (mkPN "Banjul") ;
-Countries_BR_provinces_SantaCatarina_cities_Lages = UsePN (mkPN "Lages") ;
-Countries_P_provinces_Evora = UsePN (mkPN "Evora") ;
-Countries_ANG_provinces_Luanda_cities_Luanda = UsePN (mkPN "Luanda") ;
-Rivers_Luvua = UsePN (mkPN "Luvua") ;
-Lesotho = UsePN (mkPN "Lesotho") ;
-Countries_cid_cia_Falkland_Islands = UsePN (mkPN "Falkland Islands") ;
-Countries_D_provinces_SchleswigHolstein_cities_Lubeck = UsePN (mkPN "Lubeck") ;
-Islands_Samar = UsePN (mkPN "Samar") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Aachen = UsePN (mkPN "Aachen") ;
-Countries_CH_provinces_ZH_cities_Zurich = UsePN (mkPN "Zurich") ;
-Countries_THA_provinces_MaeHongSon = UsePN (mkPN "Mae Hong Son") ;
-Countries_VN_cities_VungTau = UsePN (mkPN "Vung Tau") ;
-Countries_I_provinces_Toscana_cities_Prato = UsePN (mkPN "Prato") ;
-Countries_ETH_cities_DireDawa = UsePN (mkPN "Dire Dawa") ;
-Lakes_LakeKainji = UsePN (mkPN "Lake Kainji") ;
-Countries_YV_provinces_DeltaAmacuro = UsePN (mkPN "Delta Amacuro") ;
-Countries_cid_cia_Clipperton_Island = UsePN (mkPN "Clipperton Island") ;
-Countries_USA_provinces_NewYork_cities_Yonkers = UsePN (mkPN "Yonkers") ;
-Countries_TR_provinces_Bolu_cities_Bolu = UsePN (mkPN "Bolu") ;
-Countries_VN_provinces_AnGiang = UsePN (mkPN "An Giang") ;
-Countries_IR_provinces_Kerman_cities_Kerman = UsePN (mkPN "Kerman") ;
-Countries_CO_provinces_Caldas_cities_Manizales = UsePN (mkPN "Manizales") ;
-Organizations_Inmarsat = UsePN (mkPN "International Mobile Satellite Organization") ;
-Countries_MA_cities_Casablanca = UsePN (mkPN "Casablanca") ;
-Countries_VN_provinces_QuangBinh = UsePN (mkPN "Quang Binh") ;
-Countries_CO_provinces_ValledeCauca_cities_Cali = UsePN (mkPN "Cali") ;
-Countries_VN_provinces_NinhThuan = UsePN (mkPN "Ninh Thuan") ;
-Countries_I_provinces_Umbria = UsePN (mkPN "Umbria") ;
-Countries_CO_provinces_Antioquia_cities_Envigado = UsePN (mkPN "Envigado") ;
-Countries_J_provinces_Hiroshima_cities_Hiroshima = UsePN (mkPN "Hiroshima") ;
-Countries_SUD_provinces_alIstiwaiyah_cities_Juba = UsePN (mkPN "Juba") ;
-Countries_TJ_provinces_Jiangsu_cities_Kunshan = UsePN (mkPN "Kunshan") ;
-Countries_D_provinces_SachsenAnhalt = UsePN (mkPN "Sachsen Anhalt") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Korla = UsePN (mkPN "Korla") ;
-Countries_BR_provinces_SaoPaulo_cities_Aracatuba = UsePN (mkPN "Aracatuba") ;
-Countries_TJ_provinces_Jilin_cities_Changchun = UsePN (mkPN "Changchun") ;
-Countries_I_provinces_Veneto_cities_Verona = UsePN (mkPN "Verona") ;
-Countries_USA_provinces_Ohio = UsePN (mkPN "Ohio") ;
-Countries_HCA_provinces_Yoro_cities_ElProgreso = UsePN (mkPN "El Progreso") ;
-Countries_USA_provinces_Colorado_cities_Lakewood = UsePN (mkPN "Lakewood") ;
-Countries_TR_provinces_Karaman = UsePN (mkPN "Karaman") ;
-Countries_TR_provinces_Malatya = UsePN (mkPN "Malatya") ;
-Countries_R_provinces_UdmurtRepublic = UsePN (mkPN "Udmurt Republic") ;
-Countries_MOC_provinces_Inhambane = UsePN (mkPN "Inhambane") ;
-Countries_ET_provinces_ElGharbiya = UsePN (mkPN "El Gharbiya") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Essen = UsePN (mkPN "Essen") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Monchengladbach = UsePN (mkPN "Monchengladbach") ;
-Countries_WAN_cities_Gusau = UsePN (mkPN "Gusau") ;
-Seas_SeaofAzov = UsePN (mkPN "Sea of Azov") ;
-Countries_VN_provinces_HaiHung = UsePN (mkPN "Hai Hung") ;
-Countries_NL_provinces_Limburg_cities_Maastricht = UsePN (mkPN "Maastricht") ;
-Countries_H_provinces_Somogy = UsePN (mkPN "Somogy") ;
-Countries_UA_provinces_Vinnytska = UsePN (mkPN "Vinnytska") ;
-Countries_TJ_provinces_Hunan = UsePN (mkPN "Hunan") ;
-Countries_TJ_provinces_Hubei_cities_Zaoyang = UsePN (mkPN "Zaoyang") ;
-Countries_IL_provinces_South_cities_BeerSheva = UsePN (mkPN "Beer Sheva") ;
-Countries_IND_provinces_Karnataka_cities_Mysore = UsePN (mkPN "Mysore") ;
-Bahrain = UsePN (mkPN "Bahrain") ;
-Countries_I_provinces_Campania_cities_TorredelGreco = UsePN (mkPN "Torre del Greco") ;
-Countries_RI_cities_Palembang = UsePN (mkPN "Palembang") ;
-Countries_TAD_provinces_Kulob_cities_Kulob = UsePN (mkPN "Kulob") ;
-Countries_USA_provinces_Indiana_cities_SouthBend = UsePN (mkPN "South Bend") ;
-Countries_ROU_cities_Montevideo = UsePN (mkPN "Montevideo") ;
-Countries_RM_provinces_Mahajanga_cities_Majunga = UsePN (mkPN "Majunga") ;
-Countries_GB_provinces_Hertfordshire_cities_Hertford = UsePN (mkPN "Hertford") ;
-Countries_CAM_provinces_Adamaoua = UsePN (mkPN "Adamaoua") ;
-Rivers_Karun = UsePN (mkPN "Karun") ;
-Countries_UA_provinces_Kirovohradska_cities_Kirovohrad = UsePN (mkPN "Kirovohrad") ;
-Countries_RI_cities_Samarinda = UsePN (mkPN "Samarinda") ;
-Islands_SantaCruzIsland = UsePN (mkPN "Santa Cruz Island") ;
-Countries_SF_provinces_Lappia = UsePN (mkPN "Lappia") ;
-Countries_MAL_provinces_Perak = UsePN (mkPN "Perak") ;
-Countries_TJ_provinces_Guizhou_cities_Guiyang = UsePN (mkPN "Guiyang") ;
-Countries_ZRE_provinces_Shaba = UsePN (mkPN "Shaba") ;
-Countries_RA_provinces_BuenosAires_cities_LaMatanza = UsePN (mkPN "La Matanza") ;
-Rivers_Zambezi = UsePN (mkPN "Zambezi") ;
-Countries_TJ_provinces_Jiangsu_cities_Suqian = UsePN (mkPN "Suqian") ;
-Countries_E_provinces_Rioja = UsePN (mkPN "Rioja") ;
-Countries_PK_cities_Mardan = UsePN (mkPN "Mardan") ;
-Countries_CAM_provinces_Nordoueste_cities_Bamenda = UsePN (mkPN "Bamenda") ;
-Islands_Iceland = UsePN (mkPN "Iceland") ;
-Countries_R_cities_Zagorsk = UsePN (mkPN "Zagorsk") ;
-Countries_USA_provinces_NewYork = UsePN (mkPN "New York") ;
-Countries_Z_provinces_Northern = UsePN (mkPN "Northern") ;
-Countries_IR_provinces_Esfahan = UsePN (mkPN "Esfahan") ;
-Countries_I_provinces_Toscana_cities_Firenze = UsePN (mkPN "Firenze") ;
-Countries_CO_provinces_Guajira_La_cities_Cienaga = UsePN (mkPN "Cienaga") ;
-Countries_TJ_provinces_Shandong_cities_Yantai = UsePN (mkPN "Yantai") ;
-Countries_NOK_cities_Tanchon = UsePN (mkPN "Tanchon") ;
-Countries_GB_provinces_Shropshire_cities_Shrewsbury = UsePN (mkPN "Shrewsbury") ;
-Rivers_Loire = UsePN (mkPN "Loire") ;
-Countries_PL_provinces_Rzeszowskie = UsePN (mkPN "Rzeszowskie") ;
-Countries_TJ_provinces_Zhejiang_cities_Zhoushan = UsePN (mkPN "Zhoushan") ;
-Countries_N_provinces_Finnmark_cities_Vadsoe = UsePN (mkPN "Vadsoe") ;
-Countries_USA_provinces_Indiana_cities_Indianapolis = UsePN (mkPN "Indianapolis") ;
-Countries_GB_provinces_Grampian_cities_Aberdeen = UsePN (mkPN "Aberdeen") ;
-Countries_BR_provinces_SantaCatarina_cities_PraiaGrande = UsePN (mkPN "Praia Grande") ;
-Countries_PE_provinces_Piura_cities_Sullana = UsePN (mkPN "Sullana") ;
-Countries_USA_provinces_Oregon_cities_Eugene = UsePN (mkPN "Eugene") ;
-Countries_YV_provinces_Portuguesa_cities_Acarigua = UsePN (mkPN "Acarigua") ;
-Countries_GB_provinces_Essex_cities_Colchester = UsePN (mkPN "Colchester") ;
-Countries_USA_provinces_California_cities_WestCovina = UsePN (mkPN "West Covina") ;
-Countries_USA_provinces_Alaska_cities_Anchorage = UsePN (mkPN "Anchorage") ;
-Countries_CO_provinces_Atlantico = UsePN (mkPN "Atlantico") ;
-Countries_GB_provinces_Gloucestershire_cities_Gloucester = UsePN (mkPN "Gloucester") ;
-Countries_THA_provinces_ChiangMai_cities_ChiangMai = UsePN (mkPN "Chiang Mai") ;
-Countries_CH_provinces_SG = UsePN (mkPN "SG") ;
-Countries_MEX_provinces_Veracruz_cities_Cordoba = UsePN (mkPN "Cordoba") ;
-Countries_TJ_provinces_Heilongjiang_cities_Shangzhi = UsePN (mkPN "Shangzhi") ;
-Mountains_Jezerce = UsePN (mkPN "Jezerce") ;
-Countries_USA_provinces_Michigan_cities_SterlingHeights = UsePN (mkPN "Sterling Heights") ;
-Countries_R_provinces_Kaliningradskayaoblast = UsePN (mkPN "Kaliningradskaya oblast") ;
-Rivers_Ingoda = UsePN (mkPN "Ingoda") ;
-Countries_UA_provinces_Khmelnytska_cities_Khmelnytskyy = UsePN (mkPN "Khmelnytskyy") ;
-Countries_WAN_cities_Akure = UsePN (mkPN "Akure") ;
-Countries_THA_provinces_Chachoengsao = UsePN (mkPN "Chachoengsao") ;
-Countries_USA_provinces_Arizona_cities_Mesa = UsePN (mkPN "Mesa") ;
-Countries_PL_provinces_Radomskie = UsePN (mkPN "Radomskie") ;
-Countries_USA_provinces_NewMexico = UsePN (mkPN "New Mexico") ;
-Countries_USA_provinces_Texas_cities_Lubbock = UsePN (mkPN "Lubbock") ;
-Islands_GrKomoro = UsePN (mkPN "Gr Komoro") ;
-Countries_USA_provinces_Massachusetts_cities_Springfield = UsePN (mkPN "Springfield") ;
-Countries_RA_provinces_BuenosAires = UsePN (mkPN "Buenos Aires") ;
-Countries_GB_provinces_Bridgend = UsePN (mkPN "Bridgend") ;
-Monaco = UsePN (mkPN "Monaco") ;
-Countries_S_provinces_Alvsborg = UsePN (mkPN "Alvsborg") ;
-Countries_S_provinces_Uppsala = UsePN (mkPN "Uppsala") ;
-Countries_TJ_provinces_Zhejiang_cities_Jinhua = UsePN (mkPN "Jinhua") ;
-Countries_GB_provinces_GreaterManchester_cities_Manchester = UsePN (mkPN "Manchester") ;
-Countries_USA_provinces_Alaska = UsePN (mkPN "Alaska") ;
-Rivers_Oranje = UsePN (mkPN "Oranje") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_LeninskKuznetskiy = UsePN (mkPN "Leninsk Kuznetskiy") ;
-Countries_GB_provinces_WestYorkshire_cities_Kirklees = UsePN (mkPN "Kirklees") ;
-Countries_R_provinces_Tomskayaoblast_cities_Tomsk = UsePN (mkPN "Tomsk") ;
-Countries_S_provinces_Vasterbotten_cities_Umea = UsePN (mkPN "Umea") ;
-Countries_TJ_provinces_Sichuan_cities_Xichang = UsePN (mkPN "Xichang") ;
-Countries_THA_provinces_Nonthaburi = UsePN (mkPN "Nonthaburi") ;
-Countries_BR_provinces_SaoPaulo_cities_Santos = UsePN (mkPN "Santos") ;
-Countries_TJ_provinces_Liaoning_cities_Panshan = UsePN (mkPN "Panshan") ;
-Countries_USA_provinces_California_cities_SanDiego = UsePN (mkPN "San Diego") ;
-Countries_THA_provinces_Sukhothai = UsePN (mkPN "Sukhothai") ;
-Countries_SUD_provinces_alWusta_cities_WadMadani = UsePN (mkPN "Wad Madani") ;
-HolySee = UsePN (mkPN "Holy See") ;
-Countries_RP_cities_Cebu = UsePN (mkPN "Cebu") ;
-Countries_CO_provinces_Cundinamarca = UsePN (mkPN "Cundinamarca") ;
-Countries_KAZ_provinces_BatysQazaqstan_cities_Oral = UsePN (mkPN "Oral") ;
-Countries_cid_cia_Gibraltar = UsePN (mkPN "Gibraltar") ;
-Countries_UZB_provinces_Qasqadare = UsePN (mkPN "Qasqadare") ;
-Countries_N_provinces_Finnmark = UsePN (mkPN "Finnmark") ;
-Countries_GR_provinces_DhytikiMakedhonia = UsePN (mkPN "Dhytiki Makedhonia") ;
-Countries_BR_provinces_SaoPaulo_cities_RibeiraoPreto = UsePN (mkPN "Ribeirao Preto") ;
-Countries_KAZ_provinces_Pavlodar_cities_Ekibastuz = UsePN (mkPN "Ekibastuz") ;
-Countries_D_provinces_Bremen_cities_Bremerhaven = UsePN (mkPN "Bremerhaven") ;
-Countries_USA_provinces_California_cities_Vallejo = UsePN (mkPN "Vallejo") ;
-Countries_IR_provinces_Mazandaran_cities_GonbadeKavus = UsePN (mkPN "Gonbad e Kavus") ;
-Countries_CH_provinces_OW = UsePN (mkPN "OW") ;
-Organizations_LAIA = UsePN (mkPN "Latin American Integration Association") ;
-Countries_EAT_provinces_Mwanza_cities_Mwanza = UsePN (mkPN "Mwanza") ;
-Organizations_WToO = UsePN (mkPN "World Tourism Organization") ;
-Countries_TR_provinces_Mardin = UsePN (mkPN "Mardin") ;
-Countries_MAL_provinces_Selangor = UsePN (mkPN "Selangor") ;
-Countries_PL_provinces_Chelmskie_cities_Chelm = UsePN (mkPN "Chelm") ;
-Countries_SN_provinces_Louga_cities_Louga = UsePN (mkPN "Louga") ;
-Countries_D_provinces_RheinlandPfalz_cities_Kaiserslautern = UsePN (mkPN "Kaiserslautern") ;
-Mountains_ClingmansDome = UsePN (mkPN "Clingmans Dome") ;
-Countries_J_provinces_Miyazaki = UsePN (mkPN "Miyazaki") ;
-Countries_IND_provinces_Maharashtra_cities_Nagpur = UsePN (mkPN "Nagpur") ;
-Countries_J_provinces_Kochi = UsePN (mkPN "Kochi") ;
-Countries_USA_provinces_NorthCarolina = UsePN (mkPN "North Carolina") ;
-Countries_CO_provinces_NortedeSantander = UsePN (mkPN "Norte de Santander") ;
-Countries_CO_provinces_ValledeCauca_cities_Tulua = UsePN (mkPN "Tulua") ;
-Countries_RA_provinces_SanJuan = UsePN (mkPN "San Juan") ;
-Countries_MAL_provinces_Fed_Terr_ofLabuan = UsePN (mkPN "Fed. Terr. of Labuan") ;
-Countries_USA_provinces_Ohio_cities_Cincinnati = UsePN (mkPN "Cincinnati") ;
-Countries_HCA_provinces_SantaBarbara_cities_SantaBarbara = UsePN (mkPN "Santa Barbara") ;
-Countries_IR_provinces_Kerman_cities_Sirjan = UsePN (mkPN "Sirjan") ;
-Countries_EAT_provinces_Ruvuma_cities_Songea = UsePN (mkPN "Songea") ;
-Countries_ANG_provinces_Namibe_cities_Namibe = UsePN (mkPN "Namibe") ;
-Countries_RO_provinces_Vilcea_cities_RimnicuVilcea = UsePN (mkPN "Rimnicu Vilcea") ;
-Countries_HCA_provinces_GraciasaDios = UsePN (mkPN "Gracias a Dios") ;
-Countries_USA_provinces_Nevada_cities_Henderson = UsePN (mkPN "Henderson") ;
-Countries_WAN_cities_Onitsha = UsePN (mkPN "Onitsha") ;
-Countries_PL_provinces_Przemyskie = UsePN (mkPN "Przemyskie") ;
-Lakes_OzeroLadoga = UsePN (mkPN "Ozero Ladoga") ;
-Countries_CO_provinces_Putumayo_cities_Mocoa = UsePN (mkPN "Mocoa") ;
-Countries_TJ_provinces_Shaanxi_cities_Tongchuan = UsePN (mkPN "Tongchuan") ;
-Countries_PE_provinces_Junin_cities_Huancayo = UsePN (mkPN "Huancayo") ;
-Countries_BR_provinces_Parana_cities_Londrina = UsePN (mkPN "Londrina") ;
-Countries_RSA_provinces_Gauteng = UsePN (mkPN "Gauteng") ;
-Countries_RO_provinces_SatuMare_cities_SatuMare = UsePN (mkPN "Satu Mare") ;
-Countries_USA_provinces_Michigan_cities_Detroit = UsePN (mkPN "Detroit") ;
-Countries_USA_provinces_Wisconsin_cities_Madison = UsePN (mkPN "Madison") ;
-Countries_S_provinces_Uppsala_cities_Uppsala = UsePN (mkPN "Uppsala") ;
-Countries_USA_provinces_Connecticut_cities_Bridgeport = UsePN (mkPN "Bridgeport") ;
-Countries_R_provinces_UdmurtRepublic_cities_Izhevsk = UsePN (mkPN "Izhevsk") ;
-Countries_THA_provinces_Uttaradit = UsePN (mkPN "Uttaradit") ;
-Countries_PE_provinces_Tacna = UsePN (mkPN "Tacna") ;
-Countries_E_provinces_Galicia_cities_LaCoruna = UsePN (mkPN "La Coruna") ;
-Countries_R_provinces_Voronezhskayaoblast_cities_Voronezh = UsePN (mkPN "Voronezh") ;
-Countries_PL_provinces_Bielskie = UsePN (mkPN "Bielskie") ;
-Countries_ANG_provinces_Bengo_cities_Caxito = UsePN (mkPN "Caxito") ;
-Countries_EAK_provinces_Coast_cities_Malindi = UsePN (mkPN "Malindi") ;
-Countries_F_provinces_PaysdelaLoire_cities_LeMans = UsePN (mkPN "Le Mans") ;
-Countries_I_provinces_Puglia = UsePN (mkPN "Puglia") ;
-Countries_RO_provinces_Arad = UsePN (mkPN "Arad") ;
-Countries_RSA_provinces_WesternCape = UsePN (mkPN "Western Cape") ;
-Countries_BR_provinces_Ceara = UsePN (mkPN "Ceara") ;
-Countries_RO_provinces_Prahova_cities_Ploiesti = UsePN (mkPN "Ploiesti") ;
-Countries_GR_provinces_VoreionAiyaion = UsePN (mkPN "Voreion Aiyaion") ;
-Countries_N_provinces_Hordaland = UsePN (mkPN "Hordaland") ;
-SaoTomeAndPrincipe = UsePN (mkPN "Sao Tome and Principe") ;
-Countries_GB_provinces_Powys = UsePN (mkPN "Powys") ;
-Countries_TJ_provinces_Anhui = UsePN (mkPN "Anhui") ;
-Countries_USA_provinces_Hawaii_cities_Honolulu = UsePN (mkPN "Honolulu") ;
-Organizations_IFRCS = UsePN (mkPN "International Federation of Red Cross and Red Crescent Societies") ;
-Countries_RO_provinces_Maramures_cities_BaiaMare = UsePN (mkPN "Baia Mare") ;
-Countries_IND_provinces_ArunachalPradesh = UsePN (mkPN "Arunachal Pradesh") ;
-Countries_F_provinces_LanguedocRousillon = UsePN (mkPN "Languedoc Rousillon") ;
-Countries_RC_provinces_Hsinchu_munic_cities_Hsinchu = UsePN (mkPN "Hsinchu") ;
-Countries_TJ_provinces_Hunan_cities_Xiangtan = UsePN (mkPN "Xiangtan") ;
-SaintVincentAndTheGrenadines = UsePN (mkPN "Saint Vincent and the Grenadines") ;
-Countries_RI_cities_BandarLampung = UsePN (mkPN "Bandar Lampung") ;
-Countries_IND_provinces_Mizoram = UsePN (mkPN "Mizoram") ;
-Islands_SanClementeIsland = UsePN (mkPN "San Clemente Island") ;
-Countries_FGU_cities_Cayenne = UsePN (mkPN "Cayenne") ;
-Seas_BlackSea = UsePN (mkPN "Black Sea") ;
-Countries_HCA_provinces_Intibuca = UsePN (mkPN "Intibuca") ;
-Countries_BR_provinces_SaoPaulo_cities_Campinas = UsePN (mkPN "Campinas") ;
-Countries_RA_provinces_Mendoza = UsePN (mkPN "Mendoza") ;
-Countries_SUD_provinces_Kurdufan = UsePN (mkPN "Kurdufan") ;
-Countries_E_provinces_Andalusia_cities_Jaen = UsePN (mkPN "Jaen") ;
-Countries_E_provinces_Madrid_cities_Mostoles = UsePN (mkPN "Mostoles") ;
-Countries_BR_provinces_Para_cities_Santarem = UsePN (mkPN "Santarem") ;
-Countries_R_provinces_Kirovskayaoblast_cities_Kirov = UsePN (mkPN "Kirov") ;
-Countries_NL_provinces_Overijssel_cities_Zwolle = UsePN (mkPN "Zwolle") ;
-FrenchGuiana = UsePN (mkPN "French Guiana") ;
-Islands_Nevis = UsePN (mkPN "Nevis") ;
-Islands_Coll = UsePN (mkPN "Coll") ;
-Countries_USA_provinces_Florida_cities_Hialeah = UsePN (mkPN "Hialeah") ;
-Countries_A_provinces_Styria_cities_Graz = UsePN (mkPN "Graz") ;
-Countries_HCA_provinces_IslasdelaBahia_cities_Roatan = UsePN (mkPN "Roatan") ;
-Countries_TJ_provinces_Fujian = UsePN (mkPN "Fujian") ;
-Countries_RSM_cities_SanMarino = UsePN (mkPN "San Marino") ;
-Laos = UsePN (mkPN "Laos") ;
-Islands_Honshu = UsePN (mkPN "Honshu") ;
-Countries_GB_provinces_Staffordshire = UsePN (mkPN "Staffordshire") ;
-Countries_YV_provinces_Monagas_cities_Maturin = UsePN (mkPN "Maturin") ;
-Countries_GB_provinces_Essex_cities_Basildon = UsePN (mkPN "Basildon") ;
-Countries_ES_provinces_LaUnion = UsePN (mkPN "La Union") ;
-Countries_D_provinces_SchleswigHolstein_cities_Kiel = UsePN (mkPN "Kiel") ;
-Countries_RSA_cities_Katlehong = UsePN (mkPN "Katlehong") ;
-Lakes_LakeTorren = UsePN (mkPN "Lake Torren") ;
-Countries_UZB_provinces_Farghona_cities_Quqon = UsePN (mkPN "Quqon") ;
-Countries_THA_provinces_Kanchanaburi = UsePN (mkPN "Kanchanaburi") ;
-Countries_RP_cities_Manila = UsePN (mkPN "Manila") ;
-Lakes_LakeSkutari = UsePN (mkPN "Lake Skutari") ;
-Countries_J_provinces_Kyoto_cities_Kyoto = UsePN (mkPN "Kyoto") ;
-Countries_YV_provinces_Portuguesa = UsePN (mkPN "Portuguesa") ;
-Mountains_NevadodeToluca = UsePN (mkPN "Nevado de Toluca") ;
-Mountains_MountEverest = UsePN (mkPN "Mount Everest") ;
-Iceland = UsePN (mkPN "Iceland") ;
-Countries_VN_provinces_ThaiBinh = UsePN (mkPN "Thai Binh") ;
-Countries_RM_provinces_Toliary_cities_Toliary = UsePN (mkPN "Toliary") ;
-Islands_VancouverIsland = UsePN (mkPN "Vancouver Island") ;
-Lakes_OzeroOnega = UsePN (mkPN "Ozero Onega") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Solingen = UsePN (mkPN "Solingen") ;
-Countries_USA_provinces_Connecticut = UsePN (mkPN "Connecticut") ;
-Countries_C_provinces_Guantanamo = UsePN (mkPN "Guantanamo") ;
-Countries_E_provinces_Catalonia_cities_Sabadell = UsePN (mkPN "Sabadell") ;
-Countries_RC_provinces_Taipei = UsePN (mkPN "Taipei") ;
-Countries_USA_provinces_Washington_cities_Spokane = UsePN (mkPN "Spokane") ;
-Countries_AL_cities_Vlore = UsePN (mkPN "Vlore") ;
-Countries_PL_provinces_Bielskie_cities_BielskoBiala = UsePN (mkPN "Bielsko Biala") ;
-Countries_MEX_provinces_Hidalgo_cities_Pachuca = UsePN (mkPN "Pachuca") ;
-Countries_cid_cia_Wallis_and_Futuna_cities_Mata_Utu = UsePN (mkPN "Mata-Utu") ;
-Countries_VN_provinces_HoaBinh = UsePN (mkPN "Hoa Binh") ;
-Organizations_ECLAC = UsePN (mkPN "Economic Commission for Latin America and the Caribbean") ;
-Countries_EAT_provinces_Ruvuma = UsePN (mkPN "Ruvuma") ;
-Countries_IND_provinces_Assam = UsePN (mkPN "Assam") ;
-Countries_R_provinces_Omskayaoblast_cities_Omsk = UsePN (mkPN "Omsk") ;
-Countries_N_provinces_Finnmark_cities_Hammerfest = UsePN (mkPN "Hammerfest") ;
-Countries_TJ_provinces_Hunan_cities_Loudi = UsePN (mkPN "Loudi") ;
-Countries_THA_provinces_Saraburi_cities_Saraburi = UsePN (mkPN "Saraburi") ;
-Haiti = UsePN (mkPN "Haiti") ;
-Mountains_MtWashington = UsePN (mkPN "Mt Washington") ;
-Organizations_UPU = UsePN (mkPN "Universal Postal Union") ;
-Countries_R_provinces_Ryazanskayaoblast_cities_Ryazan = UsePN (mkPN "Ryazan") ;
-Countries_NL_provinces_Overijssel = UsePN (mkPN "Overijssel") ;
-Countries_cid_cia_Navassa_Island = UsePN (mkPN "Navassa Island") ;
-Countries_THA_provinces_Chanthaburi = UsePN (mkPN "Chanthaburi") ;
-Countries_KAZ_provinces_Almaty_munic_cities_Almaty = UsePN (mkPN "Almaty") ;
-Countries_F_provinces_Corse_cities_Ajaccio = UsePN (mkPN "Ajaccio") ;
-Countries_I_provinces_Puglia_cities_Bari = UsePN (mkPN "Bari") ;
-Countries_MEX_provinces_Campeche_cities_Campeche = UsePN (mkPN "Campeche") ;
-Countries_BR_cities_Alvorada = UsePN (mkPN "Alvorada") ;
-Organizations_AfDB = UsePN (mkPN "African Development Bank") ;
-Rivers_Kokemaeenjoki = UsePN (mkPN "Kokemaeenjoki") ;
-Countries_UA_provinces_Kyyivska = UsePN (mkPN "Kyyivska") ;
-Organizations_CAEU = UsePN (mkPN "Council of Arab Economic Unity") ;
-Countries_cid_cia_Jan_Mayen = UsePN (mkPN "Jan Mayen") ;
-Countries_R_provinces_Leningradskayaoblast = UsePN (mkPN "Leningradskaya oblast") ;
-Countries_RCB_cities_Brazzaville = UsePN (mkPN "Brazzaville") ;
-Countries_F_provinces_Aquitaine_cities_Bordeaux = UsePN (mkPN "Bordeaux") ;
-Countries_BR_provinces_SaoPaulo_cities_Botucatu = UsePN (mkPN "Botucatu") ;
-Countries_USA_provinces_Florida_cities_Hollywood = UsePN (mkPN "Hollywood") ;
-Countries_S_provinces_Ostergotland_cities_Norrkoping = UsePN (mkPN "Norrkoping") ;
-Countries_ES_provinces_LaLibertad = UsePN (mkPN "La Libertad") ;
-Countries_USA_provinces_California_cities_Pomona = UsePN (mkPN "Pomona") ;
-Countries_BR_cities_Abaetetuba = UsePN (mkPN "Abaetetuba") ;
-BurkinaFaso = UsePN (mkPN "Burkina Faso") ;
-Countries_WAN_cities_Ikorodu = UsePN (mkPN "Ikorodu") ;
-Countries_ET_provinces_SinaashShamaliyah_cities_ElArish = UsePN (mkPN "El Arish") ;
-Rivers_Lukuga = UsePN (mkPN "Lukuga") ;
-Countries_TJ_provinces_Guangdong_cities_Heyuan = UsePN (mkPN "Heyuan") ;
-Countries_KAZ_provinces_Qaraghandy_cities_Karaganda = UsePN (mkPN "Karaganda") ;
-Countries_TR_provinces_Tokat_cities_Tokat = UsePN (mkPN "Tokat") ;
-Countries_C_provinces_Guantanamo_cities_Guantanamo = UsePN (mkPN "Guantanamo") ;
-Islands_Hoy = UsePN (mkPN "Hoy") ;
-Countries_BR_cities_Sumare = UsePN (mkPN "Sumare") ;
-Mountains_Kenia = UsePN (mkPN "Kenia") ;
-Rivers_Bani = UsePN (mkPN "Bani") ;
-Countries_RA_provinces_RioNegro = UsePN (mkPN "Rio Negro") ;
-Liberia = UsePN (mkPN "Liberia") ;
-Countries_WAN_cities_Ila = UsePN (mkPN "Ila") ;
-Countries_TJ_provinces_Hunan_cities_Yiyang = UsePN (mkPN "Yiyang") ;
-Countries_PL_provinces_Lodzkie = UsePN (mkPN "Lodzkie") ;
-Countries_NL_provinces_Friesland = UsePN (mkPN "Friesland") ;
-Countries_RP_cities_Pasig = UsePN (mkPN "Pasig") ;
-Countries_R_provinces_Pskovskayaoblast_cities_VelikiyeLuki = UsePN (mkPN "Velikiye Luki") ;
-Countries_E_provinces_Madrid_cities_AlcaladeHenares = UsePN (mkPN "Alcala de Henares") ;
-Countries_cid_cia_Bouvet_Island = UsePN (mkPN "Bouvet Island") ;
-Countries_GB_provinces_Oxfordshire = UsePN (mkPN "Oxfordshire") ;
-Countries_CO_provinces_NortedeSantander_cities_Cucuta = UsePN (mkPN "Cucuta") ;
-Countries_GB_provinces_Lancashire_cities_Lancaster = UsePN (mkPN "Lancaster") ;
-Countries_cid_cia_Europa_Island = UsePN (mkPN "Europa Island") ;
-Countries_CO_provinces_Bolivar = UsePN (mkPN "Bolivar") ;
-Countries_ET_provinces_ElGharbiya_cities_Tanta = UsePN (mkPN "Tanta") ;
-Countries_TJ_provinces_Henan = UsePN (mkPN "Henan") ;
-Countries_BR_provinces_Para_cities_Castanhal = UsePN (mkPN "Castanhal") ;
-Countries_R_provinces_Orlovskayaoblast = UsePN (mkPN "Orlovskaya oblast") ;
-Countries_MEX_provinces_Guanajuato_cities_Celaya = UsePN (mkPN "Celaya") ;
-Countries_MAL_provinces_Kelantan = UsePN (mkPN "Kelantan") ;
-Countries_UA_provinces_Donetska_cities_Makiyivka = UsePN (mkPN "Makiyivka") ;
-Countries_WAN_cities_Ikerre = UsePN (mkPN "Ikerre") ;
-Countries_cid_cia_Johnston_Atoll = UsePN (mkPN "Johnston Atoll") ;
-Countries_RC_cities_Hsinchuang = UsePN (mkPN "Hsinchuang") ;
-Countries_I_provinces_Liguria_cities_LaSpezia = UsePN (mkPN "La Spezia") ;
-Countries_RM_provinces_Toamasina_cities_Tamatave = UsePN (mkPN "Tamatave") ;
-Countries_S_provinces_Kristianstad_cities_Kristianstad = UsePN (mkPN "Kristianstad") ;
-Countries_R_provinces_UdmurtRepublic_cities_Glazov = UsePN (mkPN "Glazov") ;
-Countries_HCA_provinces_Lempira = UsePN (mkPN "Lempira") ;
-Rivers_Vaal = UsePN (mkPN "Vaal") ;
-Countries_TJ_provinces_Anhui_cities_Xuancheng = UsePN (mkPN "Xuancheng") ;
-Countries_ET_provinces_ElWadielJadid_cities_ElKharga = UsePN (mkPN "El Kharga") ;
-Countries_R_provinces_Vladimirskayaoblast_cities_Vladimir = UsePN (mkPN "Vladimir") ;
-Mountains_Portefjaellen = UsePN (mkPN "Portefjaellen") ;
-Countries_PL_provinces_Warszwaskie_cities_Warsaw = UsePN (mkPN "Warsaw") ;
-Countries_IRQ_provinces_Babil = UsePN (mkPN "Babil") ;
-Countries_CZ_provinces_Zapadocesky = UsePN (mkPN "Zapadocesky") ;
-Organizations_Benelux = UsePN (mkPN "Benelux Economic Union") ;
-Countries_TJ_provinces_Sichuan_cities_Chengdu = UsePN (mkPN "Chengdu") ;
-Countries_PL_provinces_Lomzynskie_cities_Lomza = UsePN (mkPN "Lomza") ;
-Burma = UsePN (mkPN "Burma") ;
-Countries_CO_provinces_Risaralda = UsePN (mkPN "Risaralda") ;
-Countries_R_provinces_Kostromskayaoblast = UsePN (mkPN "Kostromskaya oblast") ;
-Countries_E_provinces_Catalonia_cities_HospitaletdeLlobregat = UsePN (mkPN "Hospitalet de Llobregat") ;
-Countries_GR_provinces_Attiki = UsePN (mkPN "Attiki") ;
-Countries_D_provinces_Bayern_cities_Nurnberg = UsePN (mkPN "Nurnberg") ;
-Countries_USA_provinces_Mississippi_cities_Jackson = UsePN (mkPN "Jackson") ;
-Islands_Montserrat = UsePN (mkPN "Montserrat") ;
-Countries_R_provinces_Magadanskayaoblast_cities_Magadan = UsePN (mkPN "Magadan") ;
-Countries_ES_provinces_Chalatenango_cities_Chalatenango = UsePN (mkPN "Chalatenango") ;
-Countries_CO_provinces_Narino = UsePN (mkPN "Narino") ;
-Islands_SantaRosaIsland = UsePN (mkPN "Santa Rosa Island") ;
-Countries_MEX_provinces_Hidalgo = UsePN (mkPN "Hidalgo") ;
-Countries_R_provinces_Ivanovskayaoblast = UsePN (mkPN "Ivanovskaya oblast") ;
-Countries_C_provinces_CiegodeAvila = UsePN (mkPN "Ciego de Avila") ;
-Countries_R_provinces_Tulskayaoblast_cities_Novomoskovsk = UsePN (mkPN "Novomoskovsk") ;
-Countries_GB_provinces_GreaterManchester_cities_Wigan = UsePN (mkPN "Wigan") ;
-Countries_GB_provinces_Central_cities_Stirling = UsePN (mkPN "Stirling") ;
-Countries_USA_provinces_Texas_cities_Laredo = UsePN (mkPN "Laredo") ;
-Rivers_Chire = UsePN (mkPN "Chire") ;
-Countries_TJ_provinces_NeiMonggol_cities_Hohhot = UsePN (mkPN "Hohhot") ;
-Bangladesh = UsePN (mkPN "Bangladesh") ;
-Countries_CZ_provinces_Severocesky_cities_Liberec = UsePN (mkPN "Liberec") ;
-Lakes_LakePrespa = UsePN (mkPN "Lake Prespa") ;
-Rivers_Cunene = UsePN (mkPN "Cunene") ;
-Rivers_Arkansas = UsePN (mkPN "Arkansas") ;
-Countries_TJ_provinces_Hunan_cities_Shaoyang = UsePN (mkPN "Shaoyang") ;
-Countries_VN_provinces_SongBe = UsePN (mkPN "Song Be") ;
-Countries_J_provinces_Okayama = UsePN (mkPN "Okayama") ;
-Countries_USA_provinces_Virginia_cities_Chesapeake = UsePN (mkPN "Chesapeake") ;
-Mongolia = UsePN (mkPN "Mongolia") ;
-Countries_RSA_cities_Ibhayi = UsePN (mkPN "Ibhayi") ;
-Countries_CH_provinces_VD = UsePN (mkPN "VD") ;
-Lakes_LakeWilliston = UsePN (mkPN "Lake Williston") ;
-Islands_Shikoku = UsePN (mkPN "Shikoku") ;
-Countries_IR_provinces_Khuzestan_cities_Dezful = UsePN (mkPN "Dezful") ;
-Countries_IND_provinces_Bihar = UsePN (mkPN "Bihar") ;
-Deserts_Makteir = UsePN (mkPN "Makteir") ;
-Countries_EAT_provinces_Mwanza = UsePN (mkPN "Mwanza") ;
-Rivers_Weichsel = UsePN (mkPN "Weichsel") ;
-Spain = UsePN (mkPN "Spain") ;
-Countries_PL_provinces_Poznanskie = UsePN (mkPN "Poznanskie") ;
-Countries_GB_provinces_Somerset_cities_Taunton = UsePN (mkPN "Taunton") ;
-Countries_RO_provinces_Salaj = UsePN (mkPN "Salaj") ;
-Countries_R_provinces_Belgorodskayaoblast = UsePN (mkPN "Belgorodskaya oblast") ;
-Countries_CH_provinces_BL = UsePN (mkPN "BL") ;
-Countries_RA_provinces_Corrientes_cities_Corrientes = UsePN (mkPN "Corrientes") ;
-Countries_TR_provinces_Erzurum_cities_Erzurum = UsePN (mkPN "Erzurum") ;
-Countries_CDN_provinces_Ontario_cities_SaintCatharines = UsePN (mkPN "Saint Catharines") ;
-Countries_ET_provinces_ElSuweiz_munic = UsePN (mkPN "El Suweiz (munic.)") ;
-Countries_BR_provinces_Pernambuco_cities_Petrolina = UsePN (mkPN "Petrolina") ;
-Islands_Bornholm = UsePN (mkPN "Bornholm") ;
-Countries_USA_provinces_Texas_cities_Amarillo = UsePN (mkPN "Amarillo") ;
-Lakes_LakeEduard = UsePN (mkPN "Lake Eduard") ;
-Countries_GB_provinces_WestMidlands_cities_Wolverhampton = UsePN (mkPN "Wolverhampton") ;
-Countries_GB_provinces_NorthYorkshire_cities_Northallerton = UsePN (mkPN "Northallerton") ;
-Seas_PersianGulf = UsePN (mkPN "Persian Gulf") ;
-Organizations_BDEAC = UsePN (mkPN "Central African States Development Bank") ;
-Countries_J_provinces_Gumma_cities_Maebashi = UsePN (mkPN "Maebashi") ;
-Countries_GB_provinces_Dorset_cities_Dorchester = UsePN (mkPN "Dorchester") ;
-Countries_IND_provinces_AndhraPradesh_cities_Guntur = UsePN (mkPN "Guntur") ;
-Countries_EAK_provinces_Central_cities_Nyeri = UsePN (mkPN "Nyeri") ;
-Countries_D_provinces_BadenWurttemberg_cities_Stuttgart = UsePN (mkPN "Stuttgart") ;
-Countries_ROK_cities_Chongju = UsePN (mkPN "Chongju") ;
-Countries_E_provinces_Catalonia_cities_Mataro = UsePN (mkPN "Mataro") ;
-Countries_SN_provinces_SaintLouis_cities_SaintLouis = UsePN (mkPN "Saint Louis") ;
-Countries_UZB_provinces_Surkhondare_cities_Termiz = UsePN (mkPN "Termiz") ;
-Countries_THA_provinces_Satun = UsePN (mkPN "Satun") ;
-Countries_IR_provinces_Mazandaran_cities_Gorgan = UsePN (mkPN "Gorgan") ;
-Countries_TJ_provinces_Sichuan_cities_Guangyuan = UsePN (mkPN "Guangyuan") ;
-Countries_IRQ_provinces_Wasit = UsePN (mkPN "Wasit") ;
-Countries_PL_provinces_Ostroleckie_cities_Ostroleka = UsePN (mkPN "Ostroleka") ;
-Countries_TR_provinces_Balikesir_cities_Balikesir = UsePN (mkPN "Balikesir") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Dortmund = UsePN (mkPN "Dortmund") ;
-Countries_PL_provinces_Plockie = UsePN (mkPN "Plockie") ;
-Countries_CZ_provinces_Severomoravsky_cities_Olomouc = UsePN (mkPN "Olomouc") ;
-Countries_MEX_provinces_Coahuila_cities_Monclova = UsePN (mkPN "Monclova") ;
-Countries_CAM_provinces_Sud_cities_Ebolowa = UsePN (mkPN "Ebolowa") ;
-Countries_IND_provinces_TamilNadu_cities_Tiruchchirappalli = UsePN (mkPN "Tiruchchirappalli") ;
-Countries_THA_provinces_LopBuri = UsePN (mkPN "Lop Buri") ;
-Countries_EAT_provinces_Tabora_cities_Tabora = UsePN (mkPN "Tabora") ;
-Countries_TR_provinces_Sanliurfa = UsePN (mkPN "Sanliurfa") ;
-Countries_THA_provinces_SuratThani = UsePN (mkPN "Surat Thani") ;
-Countries_USA_provinces_SouthDakota_cities_SiouxFalls = UsePN (mkPN "Sioux Falls") ;
-Countries_GB_provinces_MerthyrTydfil = UsePN (mkPN "Merthyr Tydfil") ;
-Countries_BR_provinces_MatoGrossodoSul = UsePN (mkPN "Mato Grosso do Sul") ;
-Countries_YV_provinces_Bolivar_cities_CiudadGuayana = UsePN (mkPN "Ciudad Guayana") ;
-Mountains_BoundaryPeak = UsePN (mkPN "Boundary Peak") ;
-Countries_GB_provinces_AberconwyandColwyn = UsePN (mkPN "Aberconwy and Colwyn") ;
-Countries_UA_provinces_Zakarpatska_cities_Uzhhorod = UsePN (mkPN "Uzhhorod") ;
-AntiguaAndBarbuda = UsePN (mkPN "Antigua and Barbuda") ;
-Countries_R_provinces_Irkutskayaoblast_cities_Irkutsk = UsePN (mkPN "Irkutsk") ;
-Countries_HCA_provinces_Comayagua = UsePN (mkPN "Comayagua") ;
-Countries_USA_provinces_NorthCarolina_cities_Durham = UsePN (mkPN "Durham") ;
-Countries_HCA_provinces_Colon_cities_Trujillo = UsePN (mkPN "Trujillo") ;
-Countries_WAN_cities_Shaki = UsePN (mkPN "Shaki") ;
-Countries_SF_provinces_Uusimaa_cities_Helsinki = UsePN (mkPN "Helsinki") ;
-Countries_I_provinces_Piemonte = UsePN (mkPN "Piemonte") ;
-Comoros = UsePN (mkPN "Comoros") ;
-Countries_GR_provinces_KedrikiMakedhonia = UsePN (mkPN "Kedriki Makedhonia") ;
-Countries_USA_provinces_Texas_cities_Arlington = UsePN (mkPN "Arlington") ;
-Rivers_Casai = UsePN (mkPN "Casai") ;
-Lakes_LakeKioga = UsePN (mkPN "Lake Kioga") ;
-Countries_H_provinces_Budapest_munic = UsePN (mkPN "Budapest (munic.)") ;
-Rivers_Sanga = UsePN (mkPN "Sanga") ;
-Countries_USA_provinces_Arizona_cities_Scottsdale = UsePN (mkPN "Scottsdale") ;
-Countries_RO_provinces_Teleorman = UsePN (mkPN "Teleorman") ;
-Countries_CAM_provinces_Est_cities_Bertoua = UsePN (mkPN "Bertoua") ;
-Countries_BR_cities_Betim = UsePN (mkPN "Betim") ;
-Countries_GB_provinces_WestMidlands_cities_Solihull = UsePN (mkPN "Solihull") ;
-Countries_GB_provinces_RhonddaCynonTaff_cities_Rhondda = UsePN (mkPN "Rhondda") ;
-Countries_TR_provinces_Ordu = UsePN (mkPN "Ordu") ;
-Countries_J_provinces_Kanagawa_cities_Kawasaki = UsePN (mkPN "Kawasaki") ;
-Islands_Tasmania = UsePN (mkPN "Tasmania") ;
-Countries_DJI_cities_Djibouti = UsePN (mkPN "Djibouti") ;
-Countries_MEX_provinces_NuevoLeon_cities_Monterrey = UsePN (mkPN "Monterrey") ;
-Countries_TR_provinces_Hatay_cities_Iskenderun = UsePN (mkPN "Iskenderun") ;
-Lakes_GreatSaltLake = UsePN (mkPN "Great Salt Lake") ;
-SaintLucia = UsePN (mkPN "Saint Lucia") ;
-Countries_WAN_cities_Sapele = UsePN (mkPN "Sapele") ;
-Countries_USA_provinces_Tennessee_cities_Nashville = UsePN (mkPN "Nashville") ;
-Countries_CH_provinces_UR = UsePN (mkPN "UR") ;
-Countries_IR_provinces_AzarbayianeGharbt_cities_Maragheh = UsePN (mkPN "Maragheh") ;
-Countries_E_provinces_CanaryIslands_cities_LasPalmasdeGranCanaria = UsePN (mkPN "Las Palmas de Gran Canaria") ;
-Countries_CDN_provinces_Ontario = UsePN (mkPN "Ontario") ;
-Countries_RO_provinces_Maramures = UsePN (mkPN "Maramures") ;
-Countries_RI_cities_Gorontalo = UsePN (mkPN "Gorontalo") ;
-Countries_CH_provinces_LU = UsePN (mkPN "LU") ;
-Countries_R_provinces_Rep_ofAdygeya = UsePN (mkPN "Rep. of Adygeya") ;
-Countries_MEX_provinces_Colima_cities_Colima = UsePN (mkPN "Colima") ;
-Countries_RO_provinces_Calarasi = UsePN (mkPN "Calarasi") ;
-Countries_S_provinces_Norrbotten = UsePN (mkPN "Norrbotten") ;
-Countries_TJ_provinces_Shanxi_cities_Yuci = UsePN (mkPN "Yuci") ;
-Countries_AZ_cities_Baku = UsePN (mkPN "Baku") ;
-Countries_E_provinces_Catalonia_cities_Tarragona = UsePN (mkPN "Tarragona") ;
-Countries_I_provinces_Abruzzo_cities_Pescara = UsePN (mkPN "Pescara") ;
-Countries_R_provinces_Kurskayaoblast = UsePN (mkPN "Kurskaya oblast") ;
-Countries_RA_provinces_SantaCruz_cities_RioGallegos = UsePN (mkPN "Rio Gallegos") ;
-Countries_IR_provinces_Hamadan_cities_Malayer = UsePN (mkPN "Malayer") ;
-Countries_J_provinces_Kumamoto = UsePN (mkPN "Kumamoto") ;
-Organizations_NAM = UsePN (mkPN "Nonaligned Movement") ;
-Countries_TJ_provinces_Liaoning_cities_Benxi = UsePN (mkPN "Benxi") ;
-Rivers_ConnecticutRiver = UsePN (mkPN "Connecticut River") ;
-Countries_I_provinces_Toscana = UsePN (mkPN "Toscana") ;
-Countries_BR_provinces_Pernambuco_cities_Garanhuns = UsePN (mkPN "Garanhuns") ;
-Countries_AL_cities_Tirane = UsePN (mkPN "Tirane") ;
-Islands_SaintVincent = UsePN (mkPN "Saint Vincent") ;
-Countries_GB_provinces_Lothian = UsePN (mkPN "Lothian") ;
-Countries_YV_provinces_Carabobo_cities_Valencia = UsePN (mkPN "Valencia") ;
-Countries_USA_provinces_NorthCarolina_cities_Raleigh = UsePN (mkPN "Raleigh") ;
-Countries_WAN_cities_Enugu = UsePN (mkPN "Enugu") ;
-Countries_R_provinces_Khabarovskiykray_cities_Khabarovsk = UsePN (mkPN "Khabarovsk") ;
-Countries_IR_provinces_Khorasan_cities_Bojnurd = UsePN (mkPN "Bojnurd") ;
-Countries_TM_provinces_Balkan_cities_Nebitdag = UsePN (mkPN "Nebitdag") ;
-Rivers_RiodelaPlata = UsePN (mkPN "Rio de la Plata") ;
-Rivers_Pibor = UsePN (mkPN "Pibor") ;
-Countries_BD_cities_Sylhet = UsePN (mkPN "Sylhet") ;
-Countries_D_provinces_NordrheinWestfalen_cities_MulheimanderRuhr = UsePN (mkPN "Mulheim an der Ruhr") ;
-Countries_USA_provinces_NewJersey_cities_Paterson = UsePN (mkPN "Paterson") ;
-Countries_TJ_provinces_Heilongjiang_cities_Fuling = UsePN (mkPN "Fuling") ;
-Countries_TR_provinces_Kocaeli_cities_Adapazari = UsePN (mkPN "Adapazari") ;
-Countries_MA_cities_Tetouan = UsePN (mkPN "Tetouan") ;
-Countries_S_provinces_Kristianstad = UsePN (mkPN "Kristianstad") ;
-Countries_E_provinces_Andalusia_cities_Sevilla = UsePN (mkPN "Sevilla") ;
-Countries_S_provinces_Orebro_cities_Orebro = UsePN (mkPN "Orebro") ;
-Countries_MYA_provinces_Chin_cities_Hakha = UsePN (mkPN "Hakha") ;
-Countries_TJ_provinces_Hubei_cities_Guangshui = UsePN (mkPN "Guangshui") ;
-Rivers_Kafue = UsePN (mkPN "Kafue") ;
-Countries_cid_cia_French_Polynesia_cities_Papeete = UsePN (mkPN "Papeete") ;
-Countries_BR_provinces_Alagoas_cities_Maceio = UsePN (mkPN "Maceio") ;
-Countries_TJ_provinces_Henan_cities_Luohe = UsePN (mkPN "Luohe") ;
-Countries_GR_cities_Piraeus = UsePN (mkPN "Piraeus") ;
-Countries_ET_provinces_Sohag = UsePN (mkPN "Sohag") ;
-Countries_GB_provinces_WestMidlands_cities_Coventry = UsePN (mkPN "Coventry") ;
-France = UsePN (mkPN "France") ;
-Countries_BR_provinces_Bahia_cities_FeiradeSantana = UsePN (mkPN "Feira de Santana") ;
-Countries_TR_provinces_Diyarbakir_cities_Diyarbakir = UsePN (mkPN "Diyarbakir") ;
-Organizations_UNRWA = UsePN (mkPN "United Nations Relief and Works Agency for Palestine Refugees in the Near East") ;
-Germany = UsePN (mkPN "Germany") ;
-Countries_WAN_cities_Ibadan = UsePN (mkPN "Ibadan") ;
-Countries_PK_cities_Islamabad = UsePN (mkPN "Islamabad") ;
-Countries_RSA_cities_Soshanguve = UsePN (mkPN "Soshanguve") ;
-Countries_J_provinces_Fukushima_cities_Fukushima = UsePN (mkPN "Fukushima") ;
-Countries_RM_provinces_Antananarivo = UsePN (mkPN "Antananarivo") ;
-Countries_P_provinces_Braganca = UsePN (mkPN "Braganca") ;
-Countries_YV_provinces_Tachira_cities_SanCristobal = UsePN (mkPN "San Cristobal") ;
-Countries_MEX_provinces_Veracruz_cities_Coatzacoalcos = UsePN (mkPN "Coatzacoalcos") ;
-Countries_CDN_provinces_Ontario_cities_Oshawa = UsePN (mkPN "Oshawa") ;
-Countries_RSA_provinces_Mpumalanga_cities_Nelspruit = UsePN (mkPN "Nelspruit") ;
-Countries_R_provinces_Irkutskayaoblast = UsePN (mkPN "Irkutskaya oblast") ;
-Countries_cid_cia_Greenland = UsePN (mkPN "Greenland") ;
-Countries_Z_provinces_Northern_cities_Kasama = UsePN (mkPN "Kasama") ;
-Countries_PL_provinces_Ciechanowskie = UsePN (mkPN "Ciechanowskie") ;
-Countries_UA_provinces_Kharkivska_cities_Kharkiv = UsePN (mkPN "Kharkiv") ;
-Countries_A_provinces_Carinthia_cities_Klagenfurt = UsePN (mkPN "Klagenfurt") ;
-Organizations_G_10 = UsePN (mkPN "Group of 10") ;
-Countries_CO_provinces_Bolivar_cities_Mangangue = UsePN (mkPN "Mangangue") ;
-Countries_RO_provinces_Dimbovita = UsePN (mkPN "Dimbovita") ;
-Countries_DZ_cities_Bechar = UsePN (mkPN "Bechar") ;
-Countries_PL_provinces_Poznanskie_cities_Poznan = UsePN (mkPN "Poznan") ;
-Countries_GB_provinces_SouthYorkshire_cities_Sheffield = UsePN (mkPN "Sheffield") ;
-Countries_MYA_provinces_Tanintharyi_cities_Tavoy = UsePN (mkPN "Tavoy") ;
-Countries_GB_provinces_Kent_cities_Tonbridge = UsePN (mkPN "Tonbridge") ;
-Countries_L_cities_Luxembourg = UsePN (mkPN "Luxembourg") ;
-Organizations_OECS = UsePN (mkPN "Organization of Eastern Caribbean States") ;
-Countries_D_provinces_Saarland = UsePN (mkPN "Saarland") ;
-Countries_CR_provinces_Heredia = UsePN (mkPN "Heredia") ;
-Countries_USA_provinces_California_cities_Lancaster = UsePN (mkPN "Lancaster") ;
-Countries_TJ_provinces_Jiangsu_cities_Yixing = UsePN (mkPN "Yixing") ;
-Countries_BR_provinces_MatoGrosso = UsePN (mkPN "Mato Grosso") ;
-Countries_RO_provinces_Gorj = UsePN (mkPN "Gorj") ;
-Countries_S_provinces_Stockholm = UsePN (mkPN "Stockholm") ;
-Mountains_MtHood = UsePN (mkPN "Mt Hood") ;
-Countries_YV_provinces_Cojedes = UsePN (mkPN "Cojedes") ;
-Countries_TJ_provinces_Guangdong_cities_Shantou = UsePN (mkPN "Shantou") ;
-Countries_J_provinces_Aichi = UsePN (mkPN "Aichi") ;
-Countries_WAN_cities_EffonAlaiye = UsePN (mkPN "Effon Alaiye") ;
-Mountains_GuadalupePeak = UsePN (mkPN "Guadalupe Peak") ;
-Countries_PL_provinces_Tarnobrzeskie = UsePN (mkPN "Tarnobrzeskie") ;
-Countries_I_provinces_TrentinoAltoAdige_cities_Bolzano = UsePN (mkPN "Bolzano") ;
-Countries_TJ_provinces_Shandong_cities_Liaocheng = UsePN (mkPN "Liaocheng") ;
-Countries_USA_provinces_Illinois_cities_Peoria = UsePN (mkPN "Peoria") ;
-Countries_MEX_provinces_Veracruz_cities_XalapaEnriquez = UsePN (mkPN "Xalapa Enriquez") ;
-Countries_VN_provinces_BacThai = UsePN (mkPN "Bac Thai") ;
-Countries_RO_provinces_Dolj_cities_Craiova = UsePN (mkPN "Craiova") ;
-WesternSamoa = UsePN (mkPN "Western Samoa") ;
-Kazakstan = UsePN (mkPN "Kazakstan") ;
-Countries_BF_cities_Ouagadougou = UsePN (mkPN "Ouagadougou") ;
-Countries_TJ_provinces_Liaoning_cities_Tieling = UsePN (mkPN "Tieling") ;
-Countries_BR_provinces_Para_cities_Ananindeua = UsePN (mkPN "Ananindeua") ;
-Georgia = UsePN (mkPN "Georgia") ;
-Senegal = UsePN (mkPN "Senegal") ;
-Countries_J_provinces_Kagoshima = UsePN (mkPN "Kagoshima") ;
-Islands_NorthCaicos = UsePN (mkPN "North Caicos") ;
-Countries_WAN_cities_Lafia = UsePN (mkPN "Lafia") ;
-Countries_TJ_provinces_Jiangxi_cities_Xinyu = UsePN (mkPN "Xinyu") ;
-Countries_THA_provinces_Trang = UsePN (mkPN "Trang") ;
-Countries_AUS_provinces_Victoria_cities_Melbourne = UsePN (mkPN "Melbourne") ;
-Countries_TR_provinces_Cankiri = UsePN (mkPN "Cankiri") ;
-Islands_Trinidad = UsePN (mkPN "Trinidad") ;
-Micronesia = UsePN (mkPN "Micronesia") ;
-Organizations_ZC = UsePN (mkPN "Zangger Committee") ;
-Countries_E_provinces_BalearicIslands = UsePN (mkPN "Balearic Islands") ;
-Countries_BR_provinces_RioGrandedoSul_cities_Canoas = UsePN (mkPN "Canoas") ;
-Countries_USA_provinces_Texas_cities_Brownsville = UsePN (mkPN "Brownsville") ;
-Countries_MOC_provinces_Sofala_cities_Beira = UsePN (mkPN "Beira") ;
-Countries_PE_provinces_Huanuco_cities_Huanuco = UsePN (mkPN "Huanuco") ;
-Countries_IND_provinces_Maharashtra_cities_Bhiwandi = UsePN (mkPN "Bhiwandi") ;
-Countries_USA_provinces_Texas_cities_ElPaso = UsePN (mkPN "El Paso") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Elektrostal = UsePN (mkPN "Elektrostal") ;
-Countries_USA_provinces_Virginia_cities_Hampton = UsePN (mkPN "Hampton") ;
-Countries_IR_cities_Mehrshahr = UsePN (mkPN "Mehrshahr") ;
-Countries_THA_provinces_Phetchaburi = UsePN (mkPN "Phetchaburi") ;
-Countries_IND_provinces_Manipur = UsePN (mkPN "Manipur") ;
-Countries_VN_provinces_PhuYen = UsePN (mkPN "Phu Yen") ;
-Countries_F_provinces_Lorraine_cities_Nancy = UsePN (mkPN "Nancy") ;
-Countries_C_provinces_CiudaddelaHabana_cities_Havana = UsePN (mkPN "Havana") ;
-Countries_RA_provinces_Formosa = UsePN (mkPN "Formosa") ;
-Countries_R_provinces_Ulyanovskayaoblast_cities_Dimitrovgrad = UsePN (mkPN "Dimitrovgrad") ;
-Countries_TJ_provinces_Heilongjiang_cities_Jixi = UsePN (mkPN "Jixi") ;
-Islands_Oahu = UsePN (mkPN "Oahu") ;
-Rivers_RioBalsas = UsePN (mkPN "Rio Balsas") ;
-Countries_EAT_provinces_Dodoma_cities_Dodoma = UsePN (mkPN "Dodoma") ;
-Countries_EAT_provinces_Shinyanga = UsePN (mkPN "Shinyanga") ;
-Countries_EAT_provinces_KaskaziniPemba = UsePN (mkPN "Kaskazini Pemba") ;
-Countries_S_provinces_Gotland = UsePN (mkPN "Gotland") ;
-Deserts_Dschurab = UsePN (mkPN "Dschurab") ;
-Countries_TR_provinces_Mugla = UsePN (mkPN "Mugla") ;
-Islands_Bahamas = UsePN (mkPN "Bahamas") ;
-Countries_TR_provinces_Canakkale = UsePN (mkPN "Canakkale") ;
-Countries_P_provinces_Leiria = UsePN (mkPN "Leiria") ;
-Countries_TJ_provinces_Zhejiang_cities_Ningbo = UsePN (mkPN "Ningbo") ;
-Countries_H_provinces_Pecs_munic_cities_Pecs = UsePN (mkPN "Pecs") ;
-Countries_TJ_provinces_Guangdong_cities_Shanwei = UsePN (mkPN "Shanwei") ;
-Countries_BR_provinces_Amapa = UsePN (mkPN "Amapa") ;
-Countries_RM_provinces_Antananarivo_cities_Antananarivo = UsePN (mkPN "Antananarivo") ;
-Countries_D_provinces_BadenWurttemberg = UsePN (mkPN "Baden Wurttemberg") ;
-Countries_BR_provinces_SaoPaulo_cities_Franca = UsePN (mkPN "Franca") ;
-Countries_F_provinces_MidiPyrenees = UsePN (mkPN "Midi Pyrenees") ;
-Organizations_WIPO = UsePN (mkPN "World Intellectual Property Organization") ;
-Countries_NL_provinces_NoordHolland = UsePN (mkPN "Noord Holland") ;
-Countries_ET_provinces_Dumyat_cities_Dumyat = UsePN (mkPN "Dumyat") ;
-Rivers_Klaraelv = UsePN (mkPN "Klaraelv") ;
-Countries_THA_provinces_SamutPrakan = UsePN (mkPN "Samut Prakan") ;
-Deserts_ArabianDesert = UsePN (mkPN "Arabian Desert") ;
-Countries_VN_cities_VietTri = UsePN (mkPN "Viet Tri") ;
-Barbados = UsePN (mkPN "Barbados") ;
-Countries_RCH_cities_Valparaiso = UsePN (mkPN "Valparaiso") ;
-Countries_SUD_provinces_alIstiwaiyah = UsePN (mkPN "al Istiwaiyah") ;
-Countries_USA_provinces_Oklahoma_cities_Tulsa = UsePN (mkPN "Tulsa") ;
-Countries_RSA_cities_Khayalitsha = UsePN (mkPN "Khayalitsha") ;
-Countries_IR_provinces_Khorasan_cities_Mashhad = UsePN (mkPN "Mashhad") ;
-Rivers_Rufiji = UsePN (mkPN "Rufiji") ;
-Countries_PK_cities_Sahiwal = UsePN (mkPN "Sahiwal") ;
-Organizations_WTrO = UsePN (mkPN "World Trade Organization") ;
-Countries_I_provinces_Molise = UsePN (mkPN "Molise") ;
-Countries_CO_provinces_Cauca_cities_Popayan = UsePN (mkPN "Popayan") ;
-Countries_UAE_provinces_Dubayy = UsePN (mkPN "Dubayy") ;
-Lithuania = UsePN (mkPN "Lithuania") ;
-Countries_ZRE_provinces_KasaiOriental_cities_MweneDitu = UsePN (mkPN "Mwene Ditu") ;
-Countries_MAL_provinces_Sabah_cities_Tawai = UsePN (mkPN "Tawai") ;
-Countries_BR_provinces_Goias_cities_Goiania = UsePN (mkPN "Goiania") ;
-Countries_GB_provinces_WestYorkshire_cities_Bradford = UsePN (mkPN "Bradford") ;
-Islands_Fidschi = UsePN (mkPN "Fidschi") ;
-Organizations_UNPREDEP = UsePN (mkPN "United Nations Preventive Deployment Force") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Karamay = UsePN (mkPN "Karamay") ;
-Countries_D_provinces_RheinlandPfalz_cities_Ludwigshafen = UsePN (mkPN "Ludwigshafen") ;
-Countries_NOK_cities_Wonsan = UsePN (mkPN "Wonsan") ;
-Countries_MEX_provinces_QuintanaRoo = UsePN (mkPN "Quintana Roo") ;
-Countries_BR_provinces_Ceara_cities_Fortaleza = UsePN (mkPN "Fortaleza") ;
-Countries_GB_provinces_ValeofGlamorgan_cities_Barry = UsePN (mkPN "Barry") ;
-Countries_cid_cia_Turks_and_Caicos_Islands_cities_GrandTurk = UsePN (mkPN "Grand Turk") ;
-Countries_D_provinces_Bayern_cities_Erlangen = UsePN (mkPN "Erlangen") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Koln = UsePN (mkPN "Koln") ;
-Countries_BD_cities_Tongi = UsePN (mkPN "Tongi") ;
-Countries_MOC_provinces_Niassa_cities_Lichinga = UsePN (mkPN "Lichinga") ;
-Countries_CH_provinces_BS = UsePN (mkPN "BS") ;
-Countries_F_provinces_Auvergne_cities_ClermontFerrand = UsePN (mkPN "Clermont Ferrand") ;
-Countries_RI_cities_Bogor = UsePN (mkPN "Bogor") ;
-Countries_EAU_cities_Kampala = UsePN (mkPN "Kampala") ;
-Countries_GB_provinces_TyneandWear_cities_Sunderland = UsePN (mkPN "Sunderland") ;
-Countries_USA_provinces_California_cities_SantaRosa = UsePN (mkPN "Santa Rosa") ;
-Countries_TJ_provinces_Zhejiang_cities_Wenzhou = UsePN (mkPN "Wenzhou") ;
-Countries_EAT_provinces_MjiniMagharibi_cities_Zanzibar = UsePN (mkPN "Zanzibar") ;
-Countries_TJ_provinces_Shandong_cities_Weihai = UsePN (mkPN "Weihai") ;
-Countries_R_provinces_Rep_ofKhakassiya_cities_Abakan = UsePN (mkPN "Abakan") ;
-Islands_Palau = UsePN (mkPN "Palau") ;
-Islands_Guadeloupe = UsePN (mkPN "Guadeloupe") ;
-Countries_THA_provinces_PhraNakhonSiAyutthaya = UsePN (mkPN "Phra Nakhon Si Ayutthaya") ;
-Countries_NL_provinces_Gelderland = UsePN (mkPN "Gelderland") ;
-Mountains_CathkinPeak = UsePN (mkPN "Cathkin Peak") ;
-Countries_MEX_provinces_Morelos = UsePN (mkPN "Morelos") ;
-Mountains_MtElbert = UsePN (mkPN "Mt Elbert") ;
-Countries_TR_provinces_Adana_cities_Adana = UsePN (mkPN "Adana") ;
-Countries_PA_provinces_BocasdelToro_cities_BocasdelToro = UsePN (mkPN "Bocas del Toro") ;
-Countries_CO_provinces_Risaralda_cities_Pereira = UsePN (mkPN "Pereira") ;
-Countries_BR_provinces_Parana_cities_PontaGrossa = UsePN (mkPN "Ponta Grossa") ;
-Countries_GB_provinces_Buckinghamshire = UsePN (mkPN "Buckinghamshire") ;
-Countries_PE_provinces_Ica_cities_Ica = UsePN (mkPN "Ica") ;
-Countries_USA_provinces_Louisiana_cities_Lafayette = UsePN (mkPN "Lafayette") ;
-Countries_VN_provinces_BaRiaVungTau = UsePN (mkPN "Ba Ria Vung Tau") ;
-Countries_F_provinces_NordPasdeCalais_cities_Lille = UsePN (mkPN "Lille") ;
-Countries_CH_provinces_TI_cities_Bellinzona = UsePN (mkPN "Bellinzona") ;
-Countries_RC_provinces_Miaoli = UsePN (mkPN "Miaoli") ;
-Countries_F_provinces_PaysdelaLoire = UsePN (mkPN "Pays de la Loire") ;
-Countries_TR_provinces_Usak = UsePN (mkPN "Usak") ;
-Countries_GB_provinces_Shropshire = UsePN (mkPN "Shropshire") ;
-Countries_RA_provinces_Cordoba_cities_Cordoba = UsePN (mkPN "Cordoba") ;
-Countries_TR_provinces_Bingol_cities_Bingol = UsePN (mkPN "Bingol") ;
-Countries_USA_provinces_California_cities_Palmdale = UsePN (mkPN "Palmdale") ;
-Countries_N_provinces_VestAgder_cities_Kristiansand = UsePN (mkPN "Kristiansand") ;
-Countries_SLB_cities_Honiara = UsePN (mkPN "Honiara") ;
-Countries_VN_provinces_MinhHai = UsePN (mkPN "Minh Hai") ;
-Countries_RSA_provinces_FreeState = UsePN (mkPN "Free State") ;
-Countries_TJ_provinces_Zhejiang_cities_Hangzhou = UsePN (mkPN "Hangzhou") ;
-Countries_VN_provinces_NorthEastSouth = UsePN (mkPN "North East South") ;
-Countries_TJ_provinces_Hunan_cities_Yueyang = UsePN (mkPN "Yueyang") ;
-Countries_CZ_provinces_Severocesky_cities_UstinadLabem = UsePN (mkPN "Usti nad Labem") ;
-Countries_USA_provinces_Tennessee = UsePN (mkPN "Tennessee") ;
-Countries_TJ_provinces_Hunan_cities_Zixing = UsePN (mkPN "Zixing") ;
-Countries_GB_provinces_Gwynedd = UsePN (mkPN "Gwynedd") ;
-Countries_MEX_provinces_Chihuahua_cities_Chihuahua = UsePN (mkPN "Chihuahua") ;
-Organizations_AMU = UsePN (mkPN "Arab Maghreb Union") ;
-Countries_ROK_cities_Seoul = UsePN (mkPN "Seoul") ;
-Organizations_ECE = UsePN (mkPN "Economic Commission for Europe") ;
-Countries_NEP_cities_Kathmandu = UsePN (mkPN "Kathmandu") ;
-Countries_USA_provinces_Georgia_cities_Macon = UsePN (mkPN "Macon") ;
-Countries_PL_provinces_Plockie_cities_Plock = UsePN (mkPN "Plock") ;
-Countries_GB_provinces_Norfolk_cities_Norwich = UsePN (mkPN "Norwich") ;
-Countries_VN_provinces_ThanhHoa = UsePN (mkPN "Thanh Hoa") ;
-Countries_BR_provinces_SaoPaulo_cities_RioClaro = UsePN (mkPN "Rio Claro") ;
-Organizations_UNMOT = UsePN (mkPN "United Nations Mission of Observers in Tajikistan") ;
-Countries_YV_provinces_Apure = UsePN (mkPN "Apure") ;
-Countries_TJ_provinces_Gansu_cities_Tianshui = UsePN (mkPN "Tianshui") ;
-Gabon = UsePN (mkPN "Gabon") ;
-Countries_GB_provinces_NorthernIreland_cities_Belfast = UsePN (mkPN "Belfast") ;
-Nauru = UsePN (mkPN "Nauru") ;
-Countries_RM_provinces_Toliary = UsePN (mkPN "Toliary") ;
-Countries_cid_cia_Puerto_Rico_cities_SanJuan = UsePN (mkPN "San Juan") ;
-Countries_ZRE_provinces_Bandundu_cities_Kikwit = UsePN (mkPN "Kikwit") ;
-Countries_HCA_provinces_FranciscoMorazan = UsePN (mkPN "Francisco Morazan") ;
-Countries_E_provinces_Galicia = UsePN (mkPN "Galicia") ;
-Countries_PA_provinces_Herrera_cities_Chitre = UsePN (mkPN "Chitre") ;
-Countries_TJ_provinces_Jilin = UsePN (mkPN "Jilin") ;
-Countries_GB_provinces_Ceredigion_cities_Aberystwyth = UsePN (mkPN "Aberystwyth") ;
-Countries_R_provinces_Rep_ofBashkortostan_cities_Ufa = UsePN (mkPN "Ufa") ;
-Countries_I_provinces_Basilicata_cities_Potenza = UsePN (mkPN "Potenza") ;
-Countries_RSA_provinces_KwazuluNatal_cities_Pietermaritzburg = UsePN (mkPN "Pietermaritzburg") ;
-Countries_IND_provinces_Maharashtra_cities_Pune = UsePN (mkPN "Pune") ;
-Rivers_Ob = UsePN (mkPN "Ob") ;
-Organizations_WADB = UsePN (mkPN "West African Development Bank") ;
-Countries_EAK_provinces_Eastern_cities_Embu = UsePN (mkPN "Embu") ;
-Countries_PL_provinces_Tarnowskie = UsePN (mkPN "Tarnowskie") ;
-Countries_UAE_cities_AlAyn = UsePN (mkPN "Al Ayn") ;
-Countries_BR_provinces_Sergipe_cities_Aracaju = UsePN (mkPN "Aracaju") ;
-Organizations_G_24 = UsePN (mkPN "Group of 24") ;
-Countries_BR_provinces_RiodeJaneiro_cities_SaoGoncalo = UsePN (mkPN "Sao Goncalo") ;
-Countries_I_provinces_Marche_cities_Ancona = UsePN (mkPN "Ancona") ;
-Countries_IND_provinces_Goa_cities_Panaji = UsePN (mkPN "Panaji") ;
-Countries_USA_provinces_Michigan = UsePN (mkPN "Michigan") ;
-Deserts_Mujunkum = UsePN (mkPN "Mujunkum") ;
-Countries_TR_provinces_Tunceli_cities_Tunceli = UsePN (mkPN "Tunceli") ;
-Rivers_NorthernDwina = UsePN (mkPN "Northern Dwina") ;
-Countries_PL_provinces_Tarnowskie_cities_Tarnow = UsePN (mkPN "Tarnow") ;
-Countries_A_provinces_Vorarlberg = UsePN (mkPN "Vorarlberg") ;
-Islands_Kauai = UsePN (mkPN "Kauai") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Remscheid = UsePN (mkPN "Remscheid") ;
-Indonesia = UsePN (mkPN "Indonesia") ;
-Countries_RSA_provinces_WesternCape_cities_CapeTown = UsePN (mkPN "Cape Town") ;
-Countries_YV_provinces_Falcon_cities_Coro = UsePN (mkPN "Coro") ;
-Countries_MEX_provinces_Chiapas = UsePN (mkPN "Chiapas") ;
-Islands_Benbecula = UsePN (mkPN "Benbecula") ;
-Countries_PL_provinces_Legnickie_cities_Legnica = UsePN (mkPN "Legnica") ;
-Countries_THA_provinces_Songkhla_cities_Songkhla = UsePN (mkPN "Songkhla") ;
-Countries_RA_provinces_RioNegro_cities_Viedma = UsePN (mkPN "Viedma") ;
-Countries_PL_provinces_Lubelskie = UsePN (mkPN "Lubelskie") ;
-Greece = UsePN (mkPN "Greece") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Bhopal = UsePN (mkPN "Bhopal") ;
-Countries_H_provinces_BorsodAbaujZemplen = UsePN (mkPN "Borsod Abauj Zemplen") ;
-Countries_PE_provinces_Ancash_cities_Huaraz = UsePN (mkPN "Huaraz") ;
-Countries_CO_provinces_SantaFedeBogota_DC = UsePN (mkPN "Santa Fe de Bogota, DC") ;
-Countries_IRQ_provinces_AlQadisiyah = UsePN (mkPN "Al Qadisiyah") ;
-Countries_TR_provinces_Icel_cities_Mersin = UsePN (mkPN "Mersin") ;
-Countries_cid_cia_Anguilla_cities_TheValley = UsePN (mkPN "The Valley") ;
-Countries_UA_provinces_Kirovohradska = UsePN (mkPN "Kirovohradska") ;
-Malta = UsePN (mkPN "Malta") ;
-Countries_RMM_cities_Bamako = UsePN (mkPN "Bamako") ;
-Countries_R_provinces_Kirovskayaoblast = UsePN (mkPN "Kirovskaya oblast") ;
-Countries_R_provinces_Irkutskayaoblast_cities_Angarsk = UsePN (mkPN "Angarsk") ;
-Countries_USA_provinces_Missouri_cities_Springfield = UsePN (mkPN "Springfield") ;
-Libya = UsePN (mkPN "Libya") ;
-Countries_UZB_provinces_Qasqadare_cities_Qarshi = UsePN (mkPN "Qarshi") ;
-Countries_CO_provinces_Choco = UsePN (mkPN "Choco") ;
-Countries_NL_provinces_NoordBrabant_cities_Breda = UsePN (mkPN "Breda") ;
-Islands_Madagaskar = UsePN (mkPN "Madagaskar") ;
-Countries_RI_cities_PekanBaru = UsePN (mkPN "Pekan Baru") ;
-Organizations_UNIFIL = UsePN (mkPN "United Nations Interim Force in Lebanon") ;
-Countries_NIC_cities_Chinandega = UsePN (mkPN "Chinandega") ;
-Countries_YV_provinces_Carabobo_cities_Guacara = UsePN (mkPN "Guacara") ;
-Countries_R_provinces_Chelyabinskayaoblast_cities_Chelyabinsk = UsePN (mkPN "Chelyabinsk") ;
-Countries_GB_provinces_HerefordandWorcester = UsePN (mkPN "Hereford and Worcester") ;
-Countries_MEX_provinces_Veracruz_cities_PozaRica = UsePN (mkPN "Poza Rica") ;
-Countries_R_provinces_Rostovskayaoblast_cities_RostovnaDonu = UsePN (mkPN "Rostov na Donu") ;
-Countries_M_cities_Valletta = UsePN (mkPN "Valletta") ;
-Countries_TJ_provinces_Heilongjiang_cities_Harbin = UsePN (mkPN "Harbin") ;
-Countries_GR_provinces_Attiki_cities_Athens = UsePN (mkPN "Athens") ;
-Rivers_Bija = UsePN (mkPN "Bija") ;
-Vanuatu = UsePN (mkPN "Vanuatu") ;
-Mountains_Illampu = UsePN (mkPN "Illampu") ;
-Countries_UAE_cities_AbuDhabi = UsePN (mkPN "Abu Dhabi") ;
-Countries_TR_provinces_Agri_cities_Agri = UsePN (mkPN "Agri") ;
-Countries_TR_provinces_Manisa = UsePN (mkPN "Manisa") ;
-Countries_J_provinces_Hiroshima = UsePN (mkPN "Hiroshima") ;
-Countries_PL_provinces_Elblaskie_cities_Elblag = UsePN (mkPN "Elblag") ;
-Countries_ET_provinces_ElFaiyum = UsePN (mkPN "El Faiyum") ;
-Countries_I_provinces_Veneto_cities_Padova = UsePN (mkPN "Padova") ;
-Countries_RC_provinces_Hsinchu_munic = UsePN (mkPN "Hsinchu (munic.)") ;
-Countries_R_provinces_Samarskayaoblast = UsePN (mkPN "Samarskaya oblast") ;
-Countries_ET_provinces_ElBahrelAhmar_cities_Hurghada = UsePN (mkPN "Hurghada") ;
-Rivers_Volta = UsePN (mkPN "Volta") ;
-Lakes_LakeLeopold_II = UsePN (mkPN "Lake Leopold-II") ;
-Countries_UZB_provinces_Namangan_cities_Namangan = UsePN (mkPN "Namangan") ;
-Countries_J_provinces_Yamaguchi = UsePN (mkPN "Yamaguchi") ;
-Countries_CDN_provinces_Alberta_cities_Edmonton = UsePN (mkPN "Edmonton") ;
-Countries_IND_provinces_Maharashtra_cities_Bombay = UsePN (mkPN "Bombay") ;
-UnitedStates = UsePN (mkPN "United States") ;
-Countries_I_provinces_EmiliaRomagna_cities_Bologna = UsePN (mkPN "Bologna") ;
-Countries_I_provinces_Lazio_cities_Latina = UsePN (mkPN "Latina") ;
-Countries_UZB_provinces_Toshkent_cities_Angren = UsePN (mkPN "Angren") ;
-Rivers_Syrdarja = UsePN (mkPN "Syrdarja") ;
-Organizations_WFTU = UsePN (mkPN "World Federation of Trade Unions") ;
-Deserts_SimpsonDesert = UsePN (mkPN "Simpson Desert") ;
-Countries_MEX_provinces_Jalisco_cities_Tlaquepaque = UsePN (mkPN "Tlaquepaque") ;
-Countries_KAZ_provinces_Aqtobe_cities_Aqtobe = UsePN (mkPN "Aqtobe") ;
-Countries_UA_provinces_Kyyivska_cities_Kiev = UsePN (mkPN "Kiev") ;
-Countries_WD_cities_Roseau = UsePN (mkPN "Roseau") ;
-Countries_BR_provinces_RioGrandedoSul_cities_Pelotas = UsePN (mkPN "Pelotas") ;
-Countries_MAL_provinces_PulauPinang = UsePN (mkPN "Pulau Pinang") ;
-Islands_Tiree = UsePN (mkPN "Tiree") ;
-Countries_EAT_provinces_Tanga_cities_Tanga = UsePN (mkPN "Tanga") ;
-Countries_IND_provinces_JammuandKashmir = UsePN (mkPN "Jammu and Kashmir") ;
-Countries_CDN_provinces_Saskatchewan_cities_Saskatoon = UsePN (mkPN "Saskatoon") ;
-Countries_F_provinces_RhoneAlpes_cities_Lyon = UsePN (mkPN "Lyon") ;
-Countries_TJ_provinces_Hubei_cities_Huangshi = UsePN (mkPN "Huangshi") ;
-Countries_GB_provinces_Cambridgeshire_cities_Huntingdon = UsePN (mkPN "Huntingdon") ;
-Countries_USA_provinces_Washington_cities_Tacoma = UsePN (mkPN "Tacoma") ;
-Countries_IND_provinces_Goa = UsePN (mkPN "Goa") ;
-Countries_F_provinces_ProvenceCotedAzur_cities_Marseille = UsePN (mkPN "Marseille") ;
-Countries_MA_cities_Meknes = UsePN (mkPN "Meknes") ;
-Countries_USA_provinces_California_cities_Fremont = UsePN (mkPN "Fremont") ;
-Countries_R_provinces_Tyumenskayaoblast_cities_Tyumen = UsePN (mkPN "Tyumen") ;
-Countries_CO_provinces_Narino_cities_Pasto = UsePN (mkPN "Pasto") ;
-Countries_TJ_provinces_Jilin_cities_Siping = UsePN (mkPN "Siping") ;
-Countries_IR_provinces_Tehran = UsePN (mkPN "Tehran") ;
-Countries_BR_provinces_MinasGerais_cities_SeteLagoas = UsePN (mkPN "Sete Lagoas") ;
-Countries_BR_provinces_Bahia = UsePN (mkPN "Bahia") ;
-Countries_TR_provinces_Gaziantep = UsePN (mkPN "Gaziantep") ;
-Countries_USA_provinces_Delaware = UsePN (mkPN "Delaware") ;
-Countries_THA_provinces_SiSaKet = UsePN (mkPN "Si Sa Ket") ;
-Countries_cid_cia_Spratly_Islands = UsePN (mkPN "Spratly Islands") ;
-Countries_TR_provinces_Diyarbakir = UsePN (mkPN "Diyarbakir") ;
-Countries_RA_provinces_SantaFe_cities_SantaFe = UsePN (mkPN "Santa Fe") ;
-Countries_UZB_provinces_Nawoiy_cities_Nawoiy = UsePN (mkPN "Nawoiy") ;
-Countries_RO_provinces_Vilcea = UsePN (mkPN "Vilcea") ;
-Countries_N_provinces_Troms_cities_Tromsoe = UsePN (mkPN "Tromsoe") ;
-Countries_CO_provinces_Risaralda_cities_Dosquebradas = UsePN (mkPN "Dosquebradas") ;
-Countries_MEX_provinces_Zacatecas = UsePN (mkPN "Zacatecas") ;
-Mountains_PikLenina = UsePN (mkPN "Pik Lenina") ;
-Countries_EAK_provinces_Eastern_cities_Meru = UsePN (mkPN "Meru") ;
-Countries_CDN_provinces_Ontario_cities_EastYork = UsePN (mkPN "East York") ;
-SaintKittsAndNevis = UsePN (mkPN "Saint Kitts and Nevis") ;
-Countries_S_provinces_Malmohus_cities_Malmo = UsePN (mkPN "Malmo") ;
-Countries_CR_provinces_Cartago_cities_Cartago = UsePN (mkPN "Cartago") ;
-Countries_WL_cities_Castries = UsePN (mkPN "Castries") ;
-Countries_TR_provinces_Bingol = UsePN (mkPN "Bingol") ;
-Countries_cid_cia_Virgin_Islands = UsePN (mkPN "Virgin Islands") ;
-Countries_ZRE_provinces_Bandundu_cities_Bandundu = UsePN (mkPN "Bandundu") ;
-Countries_MEX_provinces_Mexico_Estadode_cities_TolucadeLerdo = UsePN (mkPN "Toluca de Lerdo") ;
-Countries_J_provinces_Fukui = UsePN (mkPN "Fukui") ;
-Countries_PL_provinces_Katowickie_cities_Chorzow = UsePN (mkPN "Chorzow") ;
-Countries_USA_provinces_Texas_cities_CorpusChristi = UsePN (mkPN "Corpus Christi") ;
-Rivers_Umeaelv = UsePN (mkPN "Umeaelv") ;
-Countries_TJ_provinces_Hainan_cities_Haikou = UsePN (mkPN "Haikou") ;
-Countries_D_provinces_Bremen_cities_Bremen = UsePN (mkPN "Bremen") ;
-Countries_YV_provinces_NuevaEsparta_cities_LaAscuncion = UsePN (mkPN "La Ascuncion") ;
-Mountains_Zugspitze = UsePN (mkPN "Zugspitze") ;
-Countries_IND_provinces_Bihar_cities_Ranchi = UsePN (mkPN "Ranchi") ;
-Countries_CO_provinces_Sucre = UsePN (mkPN "Sucre") ;
-Countries_WAN_cities_Mushin = UsePN (mkPN "Mushin") ;
-Lakes_OzeroBaikal = UsePN (mkPN "Ozero Baikal") ;
-Countries_CZ_provinces_Vychodocesky = UsePN (mkPN "Vychodocesky") ;
-Countries_H_provinces_Fejer_cities_Szekesfehervar = UsePN (mkPN "Szekesfehervar") ;
-Countries_WAN_cities_Shomolu = UsePN (mkPN "Shomolu") ;
-Countries_IND_provinces_Karnataka = UsePN (mkPN "Karnataka") ;
-Organizations_CEI = UsePN (mkPN "Central European Initiative") ;
-Countries_D_provinces_Hamburg = UsePN (mkPN "Hamburg") ;
-Countries_MEX_provinces_Coahuila_cities_Torreon = UsePN (mkPN "Torreon") ;
-Countries_MNG_cities_Ulaanbaatar = UsePN (mkPN "Ulaanbaatar") ;
-Countries_R_provinces_Saratovskayaoblast_cities_Saratov = UsePN (mkPN "Saratov") ;
-Countries_UZB_provinces_Khorazm_cities_Urganch = UsePN (mkPN "Urganch") ;
-Countries_USA_provinces_Washington_cities_Seattle = UsePN (mkPN "Seattle") ;
-Countries_RA_provinces_BuenosAires_cities_VicenteLopez = UsePN (mkPN "Vicente Lopez") ;
-Countries_Z_provinces_Central = UsePN (mkPN "Central") ;
-India = UsePN (mkPN "India") ;
-Organizations_UNPROFOR = UsePN (mkPN "United Nations Protection Force") ;
-Syria = UsePN (mkPN "Syria") ;
-Countries_TR_provinces_Adana_cities_Osmaniye = UsePN (mkPN "Osmaniye") ;
-Organizations_Mercosur = UsePN (mkPN "Southern Cone Common Market") ;
-Countries_RSA_cities_Evaton = UsePN (mkPN "Evaton") ;
-Countries_BR_provinces_RioGrandedoSul_cities_SantaMaria = UsePN (mkPN "Santa Maria") ;
-Countries_MEX_provinces_Tamaulipas_cities_CiudadVictoria = UsePN (mkPN "Ciudad Victoria") ;
-Organizations_ANC = UsePN (mkPN "North Atlantic Cooperation Council") ;
-Countries_EAK_provinces_Central = UsePN (mkPN "Central") ;
-Organizations_CEEAC = UsePN (mkPN "Economic Community of Central African States") ;
-Countries_UA_provinces_Donetska_cities_Horlivka = UsePN (mkPN "Horlivka") ;
-Countries_ES_provinces_Usulutan = UsePN (mkPN "Usulutan") ;
-Countries_IR_provinces_Khuzestan_cities_MasjedeSoleyman = UsePN (mkPN "Masjed e Soleyman") ;
-Countries_P_provinces_Guarda = UsePN (mkPN "Guarda") ;
-Rivers_Bahrel_Djebel = UsePN (mkPN "Bahr el-Djebel") ;
-Countries_TJ_provinces_Jilin_cities_Meihekou = UsePN (mkPN "Meihekou") ;
-Countries_KIR_cities_Tarawa = UsePN (mkPN "Tarawa") ;
-Countries_IND_provinces_Gujarat_cities_Gandhinagar = UsePN (mkPN "Gandhinagar") ;
-Countries_SF_provinces_Turku_Pori_cities_Turku = UsePN (mkPN "Turku") ;
-Countries_CDN_provinces_Newfoundland = UsePN (mkPN "Newfoundland") ;
-Countries_RA_provinces_LaRioja_cities_LaRioja = UsePN (mkPN "La Rioja") ;
-Countries_SN_provinces_Ziguinchor_cities_Ziguinchor = UsePN (mkPN "Ziguinchor") ;
-Countries_UA_provinces_Luhanska = UsePN (mkPN "Luhanska") ;
-Countries_R_provinces_Magadanskayaoblast = UsePN (mkPN "Magadanskaya oblast") ;
-Countries_PE_provinces_Moquegua = UsePN (mkPN "Moquegua") ;
-Islands_Malta = UsePN (mkPN "Malta") ;
-Countries_S_provinces_Vastmanland = UsePN (mkPN "Vastmanland") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Bonn = UsePN (mkPN "Bonn") ;
-Malaysia = UsePN (mkPN "Malaysia") ;
-Countries_USA_provinces_California = UsePN (mkPN "California") ;
-Countries_YV_provinces_NuevaEsparta = UsePN (mkPN "Nueva Esparta") ;
-Countries_PA_provinces_Darien = UsePN (mkPN "Darien") ;
-Countries_USA_provinces_Illinois_cities_Aurora = UsePN (mkPN "Aurora") ;
-Countries_F_provinces_ProvenceCotedAzur_cities_Nice = UsePN (mkPN "Nice") ;
-Countries_RC_provinces_Taichung_munic = UsePN (mkPN "Taichung (munic.)") ;
-Countries_MEX_provinces_Veracruz_cities_Minatitlan = UsePN (mkPN "Minatitlan") ;
-Countries_EAT_provinces_Tabora = UsePN (mkPN "Tabora") ;
-Countries_GB_provinces_Humberside_cities_Hull = UsePN (mkPN "Hull") ;
-Countries_TJ_provinces_Hubei_cities_Wuhan = UsePN (mkPN "Wuhan") ;
-Countries_ETH_cities_Harer = UsePN (mkPN "Harer") ;
-Countries_USA_provinces_California_cities_Hayward = UsePN (mkPN "Hayward") ;
-Lakes_LakeMaracaibo = UsePN (mkPN "Lake Maracaibo") ;
-Countries_cid_cia_Northern_Mariana_Islands_cities_Saipan = UsePN (mkPN "Saipan") ;
-Countries_R_provinces_Saratovskayaoblast_cities_Balakovo = UsePN (mkPN "Balakovo") ;
-Countries_ZRE_provinces_KasaiOccidental_cities_Kananga = UsePN (mkPN "Kananga") ;
-Countries_MOC_provinces_Gaza_cities_XaiXai = UsePN (mkPN "Xai Xai") ;
-Organizations_SPC = UsePN (mkPN "South Pacific Commission") ;
-Countries_USA_provinces_NorthDakota_cities_Bismarck = UsePN (mkPN "Bismarck") ;
-Countries_NL_provinces_Utrecht = UsePN (mkPN "Utrecht") ;
-Countries_MYA_provinces_Chin = UsePN (mkPN "Chin") ;
-Countries_GB_provinces_Avon = UsePN (mkPN "Avon") ;
-Countries_I_provinces_EmiliaRomagna_cities_Rimini = UsePN (mkPN "Rimini") ;
-Countries_BR_provinces_SantaCatarina_cities_Criciuma = UsePN (mkPN "Criciuma") ;
-Countries_ES_provinces_SanSalvador = UsePN (mkPN "San Salvador") ;
-Countries_E_provinces_CastileandLeon_cities_Albacete = UsePN (mkPN "Albacete") ;
-Countries_H_provinces_Baranya = UsePN (mkPN "Baranya") ;
-Countries_VN_provinces_KhanhHoa = UsePN (mkPN "Khanh Hoa") ;
-Countries_R_provinces_Yevreyskayaavt_oblast = UsePN (mkPN "Yevreyskaya avt. oblast") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Kolomna = UsePN (mkPN "Kolomna") ;
-Countries_E_provinces_CastileandLeon = UsePN (mkPN "Castile and Leon") ;
-Countries_GB_provinces_Durham_cities_Durham = UsePN (mkPN "Durham") ;
-Countries_RO_provinces_Timis_cities_Timisoara = UsePN (mkPN "Timisoara") ;
-Countries_cid_cia_British_Indian_Ocean_Territory = UsePN (mkPN "British Indian Ocean Territory") ;
-Countries_GB_provinces_Northamptonshire_cities_Northampton = UsePN (mkPN "Northampton") ;
-Islands_Menorca = UsePN (mkPN "Menorca") ;
-Countries_IRQ_provinces_Ninawa_cities_AlMawsil = UsePN (mkPN "Al Mawsil") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Yining = UsePN (mkPN "Yining") ;
-Countries_R_provinces_Rostovskayaoblast_cities_Novocherkassk = UsePN (mkPN "Novocherkassk") ;
-Countries_CZ_provinces_Praha_cities_Prague = UsePN (mkPN "Prague") ;
-Countries_IR_provinces_Hormozgan_cities_BandarAbbas = UsePN (mkPN "Bandar Abbas") ;
-Countries_PL_provinces_Piotrkowskie_cities_PiottrkowTrybunalski = UsePN (mkPN "Piottrkow Trybunalski") ;
-Countries_USA_provinces_Mississippi = UsePN (mkPN "Mississippi") ;
-Countries_CO_provinces_Atlantico_cities_Malambo = UsePN (mkPN "Malambo") ;
-Countries_USA_provinces_Florida_cities_CoralSprings = UsePN (mkPN "Coral Springs") ;
-Countries_TJ_provinces_Heilongjiang_cities_Shuangcheng = UsePN (mkPN "Shuangcheng") ;
-Countries_KAZ_provinces_Zhezkazghan = UsePN (mkPN "Zhezkazghan") ;
-Countries_IND_provinces_Pondicherry_cities_Pondicherry = UsePN (mkPN "Pondicherry") ;
-Countries_VN_provinces_DongNai = UsePN (mkPN "Dong Nai") ;
-Countries_THA_provinces_NakhonSiThammarat_cities_NakhonsiThammarat = UsePN (mkPN "Nakhon si Thammarat") ;
-Countries_USA_provinces_NorthCarolina_cities_Charlotte = UsePN (mkPN "Charlotte") ;
-Countries_R_provinces_Tverskayaoblast = UsePN (mkPN "Tverskaya oblast") ;
-Countries_USA_provinces_Ohio_cities_Columbus = UsePN (mkPN "Columbus") ;
-Countries_PL_provinces_Radomskie_cities_Radom = UsePN (mkPN "Radom") ;
-Countries_SF_provinces_Suomi = UsePN (mkPN "Suomi") ;
-Countries_RI_cities_Tegal = UsePN (mkPN "Tegal") ;
-Countries_RCA_cities_Bangui = UsePN (mkPN "Bangui") ;
-Countries_J_provinces_Hokkaido = UsePN (mkPN "Hokkaido") ;
-Countries_Z_provinces_Southern_cities_Livingstone = UsePN (mkPN "Livingstone") ;
-Countries_USA_provinces_Idaho_cities_Boise = UsePN (mkPN "Boise") ;
-Countries_AUS_provinces_Kirimati_cities_FlyingFishCove = UsePN (mkPN "Flying Fish Cove") ;
-Islands_CaymanBrac = UsePN (mkPN "Cayman Brac") ;
-Countries_MEX_cities_SanPedroGarzaGarcia = UsePN (mkPN "San Pedro Garza Garcia") ;
-Islands_GrandCaicos = UsePN (mkPN "Grand Caicos") ;
-Countries_IRQ_provinces_Babil_cities_AlHillah = UsePN (mkPN "Al Hillah") ;
-Countries_TJ_provinces_Guangdong_cities_Zhongshan = UsePN (mkPN "Zhongshan") ;
-Countries_PL_provinces_Sieradzkie_cities_Sieradz = UsePN (mkPN "Sieradz") ;
-Countries_NL_provinces_Utrecht_cities_Utrecht = UsePN (mkPN "Utrecht") ;
-Countries_IRQ_provinces_DhiQar_cities_AnNasiriyah = UsePN (mkPN "An Nasiriyah") ;
-Countries_TR_provinces_Trabzon = UsePN (mkPN "Trabzon") ;
-Mexico = UsePN (mkPN "Mexico") ;
-Countries_TAD_provinces_BadakhshoniKuni = UsePN (mkPN "Badakhshoni Kuni") ;
-Countries_PL_provinces_Koszalinskie = UsePN (mkPN "Koszalinskie") ;
-Countries_TJ_provinces_Sichuan_cities_Zigong = UsePN (mkPN "Zigong") ;
-Countries_E_provinces_CanaryIslands_cities_SantaCruzdeTenerife = UsePN (mkPN "Santa Cruz de Tenerife") ;
-Countries_MEX_provinces_Tlaxcala = UsePN (mkPN "Tlaxcala") ;
-Seas_SouthChinaSea = UsePN (mkPN "South China Sea") ;
-Countries_C_provinces_Camaguey = UsePN (mkPN "Camaguey") ;
-Countries_TR_provinces_Erzincan = UsePN (mkPN "Erzincan") ;
-Countries_USA_provinces_Virginia_cities_Norfolk = UsePN (mkPN "Norfolk") ;
-Countries_IND_provinces_AndhraPradesh_cities_Vishakhapatnam = UsePN (mkPN "Vishakhapatnam") ;
-Countries_TJ_provinces_Fujian_cities_Nanping = UsePN (mkPN "Nanping") ;
-Countries_S_provinces_Jamtland_cities_Ostersund = UsePN (mkPN "Ostersund") ;
-Organizations_UNITAR = UsePN (mkPN "United Nations Institute for Training and Research") ;
-Countries_cid_cia_Cocos_Islands_cities_WestIsland = UsePN (mkPN "West Island") ;
-Countries_CO_provinces_Antioquia_cities_Medellin = UsePN (mkPN "Medellin") ;
-Countries_I_provinces_Veneto = UsePN (mkPN "Veneto") ;
-Countries_IND_provinces_UttarPradesh_cities_Meerut = UsePN (mkPN "Meerut") ;
-Countries_THA_provinces_ChonBuri = UsePN (mkPN "Chon Buri") ;
-Countries_F_provinces_Lorraine_cities_Metz = UsePN (mkPN "Metz") ;
-Countries_PK_cities_Gujranwala = UsePN (mkPN "Gujranwala") ;
-Countries_PE_provinces_Pasco = UsePN (mkPN "Pasco") ;
-Countries_MEX_provinces_Guerrero_cities_Acapulco = UsePN (mkPN "Acapulco") ;
-Countries_TR_provinces_Kayseri_cities_Kayseri = UsePN (mkPN "Kayseri") ;
-Countries_R_provinces_Ivanovskayaoblast_cities_Kineshma = UsePN (mkPN "Kineshma") ;
-Countries_TJ_provinces_Anhui_cities_Bengbu = UsePN (mkPN "Bengbu") ;
-Countries_EAK_provinces_RiftValley = UsePN (mkPN "Rift Valley") ;
-Countries_R_provinces_Lipetskayaoblast_cities_Yelets = UsePN (mkPN "Yelets") ;
-Countries_N_provinces_Nordland = UsePN (mkPN "Nordland") ;
-Countries_KAZ_provinces_Mangghystau_cities_Aqtau = UsePN (mkPN "Aqtau") ;
-Countries_YE_cities_Sanaa = UsePN (mkPN "Sanaa") ;
-Countries_TJ_provinces_Shanxi_cities_Jincheng = UsePN (mkPN "Jincheng") ;
-Countries_GB_provinces_GreaterManchester_cities_Tameside = UsePN (mkPN "Tameside") ;
-Rivers_Lena = UsePN (mkPN "Lena") ;
-Countries_RA_provinces_DistritoFederal_cities_BuenosAires = UsePN (mkPN "Buenos Aires") ;
-Countries_RA_provinces_Jujuy_cities_SanSalvadordeJujuy = UsePN (mkPN "San Salvador de Jujuy") ;
-Lakes_LakeErie = UsePN (mkPN "Lake Erie") ;
-Countries_MA_cities_Kenitra = UsePN (mkPN "Kenitra") ;
-Countries_ZRE_provinces_BasZaire_cities_Matadi = UsePN (mkPN "Matadi") ;
-Countries_RO_provinces_CarasSeverin = UsePN (mkPN "Caras Severin") ;
-Countries_SUD_provinces_ashSharqiyah_cities_Kassala = UsePN (mkPN "Kassala") ;
-Countries_USA_provinces_Tennessee_cities_Memphis = UsePN (mkPN "Memphis") ;
-Countries_RO_provinces_Buzau = UsePN (mkPN "Buzau") ;
-Countries_TJ_provinces_Sichuan_cities_Nanchong = UsePN (mkPN "Nanchong") ;
-Countries_I_provinces_Sicilia_cities_Palermo = UsePN (mkPN "Palermo") ;
-Countries_BR_provinces_Piaui = UsePN (mkPN "Piaui") ;
-Countries_TR_provinces_Agri = UsePN (mkPN "Agri") ;
-Countries_IND_provinces_Punjab_cities_Ludhiana = UsePN (mkPN "Ludhiana") ;
-Countries_THA_provinces_Kalasin = UsePN (mkPN "Kalasin") ;
-Countries_CAM_provinces_Nordoueste = UsePN (mkPN "Nordoueste") ;
-Countries_USA_provinces_Texas_cities_GrandPrairie = UsePN (mkPN "Grand Prairie") ;
-Countries_RC_provinces_Penghu_cities_Makung = UsePN (mkPN "Makung") ;
-Countries_PE_provinces_Tumbes_cities_Tumbes = UsePN (mkPN "Tumbes") ;
-Countries_AFG_cities_Kabul = UsePN (mkPN "Kabul") ;
-Lakes_OzeroChanka = UsePN (mkPN "Ozero Chanka") ;
-Mountains_Tarrekaise = UsePN (mkPN "Tarrekaise") ;
-Countries_TR_provinces_Konya_cities_Konya = UsePN (mkPN "Konya") ;
-Rivers_Fulda = UsePN (mkPN "Fulda") ;
-Countries_ZRE_provinces_KasaiOccidental = UsePN (mkPN "Kasai Occidental") ;
-Countries_TR_provinces_Bolu = UsePN (mkPN "Bolu") ;
-Countries_USA_provinces_California_cities_Oakland = UsePN (mkPN "Oakland") ;
-Islands_Luzon = UsePN (mkPN "Luzon") ;
-Countries_PL_provinces_Gdanskie = UsePN (mkPN "Gdanskie") ;
-Countries_BR_provinces_EspiritoSanto_cities_VilaVelha = UsePN (mkPN "Vila Velha") ;
-Countries_BR_provinces_MatoGrosso_cities_Rondonopolis = UsePN (mkPN "Rondonopolis") ;
-Countries_RA_provinces_BuenosAires_cities_Avellaneda = UsePN (mkPN "Avellaneda") ;
-Mountains_JabalMarra = UsePN (mkPN "Jabal Marra") ;
-Countries_USA_provinces_Kansas_cities_Wichita = UsePN (mkPN "Wichita") ;
-Countries_USA_provinces_Kentucky_cities_Louisville = UsePN (mkPN "Louisville") ;
-Countries_USA_provinces_SouthCarolina = UsePN (mkPN "South Carolina") ;
-Lakes_Mjoesen = UsePN (mkPN "Mjoesen") ;
-Countries_TJ_provinces_Yunnan = UsePN (mkPN "Yunnan") ;
-Countries_CAM_provinces_Cote = UsePN (mkPN "Cote") ;
-Countries_TJ_provinces_Hubei = UsePN (mkPN "Hubei") ;
-Organizations_ICC = UsePN (mkPN "International Chamber of Commerce") ;
-Countries_SN_provinces_Fatick = UsePN (mkPN "Fatick") ;
-Countries_UA_provinces_Khersonska = UsePN (mkPN "Khersonska") ;
-Countries_Z_provinces_Copperbelt_cities_Mufulira = UsePN (mkPN "Mufulira") ;
-Countries_TJ_provinces_Jiangsu = UsePN (mkPN "Jiangsu") ;
-Countries_CR_provinces_Punarenas_cities_Puntarenas = UsePN (mkPN "Puntarenas") ;
-Countries_RC_provinces_Chilung_munic = UsePN (mkPN "Chilung (munic.)") ;
-Countries_TJ_provinces_Jiangxi = UsePN (mkPN "Jiangxi") ;
-Countries_THA_provinces_RoiEt = UsePN (mkPN "Roi Et") ;
-Countries_GB_provinces_Cambridgeshire_cities_Cambridge = UsePN (mkPN "Cambridge") ;
-Countries_I_provinces_Lombardia_cities_Monza = UsePN (mkPN "Monza") ;
-Rivers_Rhein = UsePN (mkPN "Rhein") ;
-Cambodia = UsePN (mkPN "Cambodia") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_AnzheroSudzhensk = UsePN (mkPN "Anzhero Sudzhensk") ;
-Countries_PL_provinces_Walbrzyskie_cities_Walbrzych = UsePN (mkPN "Walbrzych") ;
-Countries_BR_provinces_SaoPaulo_cities_Diadema = UsePN (mkPN "Diadema") ;
-Countries_USA_provinces_Alabama_cities_Mobile = UsePN (mkPN "Mobile") ;
-Countries_IRQ_provinces_Maysan_cities_AlAmarah = UsePN (mkPN "Al Amarah") ;
-Countries_ROK_cities_Mokpo = UsePN (mkPN "Mokpo") ;
-Countries_KAZ_provinces_Taldyqorghan_cities_Taldyqorghan = UsePN (mkPN "Taldyqorghan") ;
-Organizations_Sparteca = UsePN (mkPN "South Pacific Regional Trade and Economic Cooperation Agreement") ;
-Countries_NL_provinces_NoordHolland_cities_Zaanstreek = UsePN (mkPN "Zaanstreek") ;
-Countries_GB_provinces_MerthyrTydfil_cities_MerthyrTydfil = UsePN (mkPN "Merthyr Tydfil") ;
-Mountains_Korab = UsePN (mkPN "Korab") ;
-Countries_THA_provinces_Surin = UsePN (mkPN "Surin") ;
-Countries_YV_provinces_Trujillo_cities_Trujillo = UsePN (mkPN "Trujillo") ;
-Countries_MAL_provinces_Kedah_cities_AlorSetar = UsePN (mkPN "Alor Setar") ;
-Countries_GB_provinces_Avon_cities_Bristol = UsePN (mkPN "Bristol") ;
-Mountains_Elbrus = UsePN (mkPN "Elbrus") ;
-Countries_BR_provinces_MinasGerais_cities_Divinopolis = UsePN (mkPN "Divinopolis") ;
-Rivers_Torneaelv = UsePN (mkPN "Torneaelv") ;
-Countries_TJ_provinces_Shandong_cities_Pingdu = UsePN (mkPN "Pingdu") ;
-Countries_BR_provinces_SantaCatarina_cities_Itajai = UsePN (mkPN "Itajai") ;
-Countries_GB_provinces_Derbyshire_cities_SuttoninAshfield = UsePN (mkPN "Sutton in Ashfield") ;
-Organizations_CEAO = UsePN (mkPN "West African Economic Community") ;
-Countries_TJ_provinces_Shaanxi_cities_Xianyang = UsePN (mkPN "Xianyang") ;
-Countries_RC_provinces_Miaoli_cities_Miaoli = UsePN (mkPN "Miaoli") ;
-Countries_USA_provinces_California_cities_Torrance = UsePN (mkPN "Torrance") ;
-Countries_USA_provinces_Colorado_cities_FortCollins = UsePN (mkPN "Fort Collins") ;
-Countries_CDN_provinces_Saskatchewan_cities_Regina = UsePN (mkPN "Regina") ;
-Countries_EAT_provinces_KusiniUjunga_cities_Koani = UsePN (mkPN "Koani") ;
-Countries_MEX_provinces_Guerrero_cities_Chilpancingo = UsePN (mkPN "Chilpancingo") ;
-Countries_E_provinces_Valencia_cities_Alacant = UsePN (mkPN "Alacant") ;
-Countries_NOK_cities_Pyongyang = UsePN (mkPN "Pyongyang") ;
-Organizations_SAARC = UsePN (mkPN "South Asian Association for Regional Cooperation") ;
-Countries_SUD_provinces_ashShamaliyah_cities_adDamir = UsePN (mkPN "ad Damir") ;
-Countries_CAM_provinces_Nord_cities_Garoua = UsePN (mkPN "Garoua") ;
-Countries_CDN_provinces_Ontario_cities_Markham = UsePN (mkPN "Markham") ;
-Countries_J_provinces_Aomori_cities_Aomori = UsePN (mkPN "Aomori") ;
-Countries_UA_provinces_Krym_cities_Simferopol = UsePN (mkPN "Simferopol") ;
-Countries_TR_provinces_Corum_cities_Corum = UsePN (mkPN "Corum") ;
-Countries_USA_provinces_Vermont = UsePN (mkPN "Vermont") ;
-Rivers_KleinerJenissej = UsePN (mkPN "Kleiner Jenissej") ;
-Countries_N_provinces_MoereogRomsdal = UsePN (mkPN "Moere og Romsdal") ;
-Countries_WAN_cities_IlaweEkiti = UsePN (mkPN "Ilawe Ekiti") ;
-Countries_NL_provinces_NoordHolland_cities_Velsen = UsePN (mkPN "Velsen") ;
-Countries_CO_provinces_Quindio = UsePN (mkPN "Quindio") ;
-Countries_GB_provinces_Lancashire = UsePN (mkPN "Lancashire") ;
-Countries_SUD_provinces_ashShamaliyah = UsePN (mkPN "ash Shamaliyah") ;
-Countries_MAL_provinces_Johor_cities_JohorBaharu = UsePN (mkPN "Johor Baharu") ;
-Countries_AUS_provinces_NewSouthWales_cities_SunshineCoast = UsePN (mkPN "Sunshine Coast") ;
-Thailand = UsePN (mkPN "Thailand") ;
-Mountains_Semeru = UsePN (mkPN "Semeru") ;
-Countries_BR_provinces_MinasGerais_cities_MontesClaros = UsePN (mkPN "Montes Claros") ;
-Countries_RI_cities_Pontianak = UsePN (mkPN "Pontianak") ;
-Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEstero = UsePN (mkPN "Santiago del Estero") ;
-Countries_RO_provinces_Mehedinti_cities_DrobetaTurnuSeverin = UsePN (mkPN "Drobeta Turnu Severin") ;
-Countries_R_provinces_Stavropolskykray_cities_Kislovodsk = UsePN (mkPN "Kislovodsk") ;
-Countries_TR_provinces_Istanbul_cities_Istanbul = UsePN (mkPN "Istanbul") ;
-Countries_CDN_provinces_Ontario_cities_ThunderBay = UsePN (mkPN "Thunder Bay") ;
-Mountains_Tahan = UsePN (mkPN "Tahan") ;
-Countries_TR_provinces_Siirt = UsePN (mkPN "Siirt") ;
-Countries_R_provinces_Rep_ofKarelia = UsePN (mkPN "Rep. of Karelia") ;
-Mauritania = UsePN (mkPN "Mauritania") ;
-Countries_RO_provinces_Teleorman_cities_Alexandria = UsePN (mkPN "Alexandria") ;
-Mountains_MountGodwinAusten = UsePN (mkPN "Mount Godwin Austen") ;
-Countries_TR_provinces_Rize = UsePN (mkPN "Rize") ;
-Countries_GB_provinces_SouthYorkshire_cities_Barnsley = UsePN (mkPN "Barnsley") ;
-Countries_RI_cities_Banjarmasin = UsePN (mkPN "Banjarmasin") ;
-Countries_RC_provinces_Taipei_munic = UsePN (mkPN "Taipei (munic.)") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_Mezhdurechensk = UsePN (mkPN "Mezhdurechensk") ;
-Countries_JA_cities_Kingston = UsePN (mkPN "Kingston") ;
-Countries_C_provinces_IsladelaJuventud = UsePN (mkPN "Isla de la Juventud") ;
-Countries_TJ_provinces_Anhui_cities_Suzhou = UsePN (mkPN "Suzhou") ;
-Countries_TJ_provinces_Sichuan_cities_Dukou = UsePN (mkPN "Dukou") ;
-Countries_TJ_provinces_XinjiangUygur = UsePN (mkPN "Xinjiang Uygur") ;
-Countries_USA_provinces_California_cities_Oceanside = UsePN (mkPN "Oceanside") ;
-Countries_KAZ_provinces_Qyzylorda = UsePN (mkPN "Qyzylorda") ;
-Countries_USA_provinces_Texas = UsePN (mkPN "Texas") ;
-Countries_YV_provinces_Zulia = UsePN (mkPN "Zulia") ;
-Countries_NL_provinces_NoordHolland_cities_Amsterdam = UsePN (mkPN "Amsterdam") ;
-Countries_R_provinces_Rep_ofDagestan = UsePN (mkPN "Rep. of Dagestan") ;
-Countries_R_provinces_Rep_ofKhakassiya = UsePN (mkPN "Rep. of Khakassiya") ;
-Countries_CDN_provinces_Quebec = UsePN (mkPN "Quebec") ;
-Countries_GR_provinces_IonioiNisoi = UsePN (mkPN "Ionioi Nisoi") ;
-Countries_J_provinces_Ishikawa = UsePN (mkPN "Ishikawa") ;
-Islands_Aland = UsePN (mkPN "Aland") ;
-Countries_GB_provinces_Lancashire_cities_Blackburn = UsePN (mkPN "Blackburn") ;
-Countries_ROK_cities_Inchon = UsePN (mkPN "Inchon") ;
-Countries_cid_cia_Cocos_Islands = UsePN (mkPN "Cocos Islands") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Mytishchi = UsePN (mkPN "Mytishchi") ;
-Mountains_Sarektjokko = UsePN (mkPN "Sarektjokko") ;
-Countries_S_provinces_Varmland_cities_Karlstad = UsePN (mkPN "Karlstad") ;
-Countries_GB_provinces_Cornwall_IslesofScilly = UsePN (mkPN "Cornwall / Isles of Scilly") ;
-Countries_RA_provinces_EntreRios_cities_Concordia = UsePN (mkPN "Concordia") ;
-Organizations_UNDP = UsePN (mkPN "United Nations Development Program") ;
-Countries_cid_cia_Faroe_Islands_cities_Torshavn = UsePN (mkPN "Torshavn") ;
-Countries_IND_provinces_TamilNadu_cities_Madras = UsePN (mkPN "Madras") ;
-Countries_MYA_provinces_Magway_cities_Magway = UsePN (mkPN "Magway") ;
-Croatia = UsePN (mkPN "Croatia") ;
-Countries_RA_provinces_SantaFe = UsePN (mkPN "Santa Fe") ;
-Countries_AUS_provinces_WesternAustralia = UsePN (mkPN "Western Australia") ;
-Countries_PL_provinces_Zamojskie_cities_Zamosc = UsePN (mkPN "Zamosc") ;
-Countries_RA_provinces_Catamarca_cities_SanFernando = UsePN (mkPN "San Fernando") ;
-Countries_KGZ_cities_Bishkek = UsePN (mkPN "Bishkek") ;
-Countries_IND_provinces_Maharashtra_cities_Sholapur = UsePN (mkPN "Sholapur") ;
-Countries_GB_provinces_WestSussex_cities_Horsham = UsePN (mkPN "Horsham") ;
-Countries_YV_provinces_Sucre = UsePN (mkPN "Sucre") ;
-Countries_VN_provinces_BinhDinh = UsePN (mkPN "Binh Dinh") ;
-Countries_USA_provinces_Colorado_cities_Denver = UsePN (mkPN "Denver") ;
-Countries_TR_provinces_Karamanmaras_cities_KaramanMaras = UsePN (mkPN "Karaman Maras") ;
-Countries_RA_provinces_SantiagodeEstero_cities_SantiagodelEsteroLaBanda = UsePN (mkPN "Santiago del Estero La Banda") ;
-Countries_TJ_provinces_Hebei_cities_Qinhuangdao = UsePN (mkPN "Qinhuangdao") ;
-Countries_S_provinces_GoteborgochBohus = UsePN (mkPN "Goteborg och Bohus") ;
-Mountains_GrosserArber = UsePN (mkPN "Grosser Arber") ;
-Countries_H_provinces_Vas = UsePN (mkPN "Vas") ;
-Countries_TR_provinces_Nevsehir_cities_Nevsehir = UsePN (mkPN "Nevsehir") ;
-Islands_Aust_Vagoey = UsePN (mkPN "Aust-Vagoey") ;
-Countries_cid_cia_Kingman_Reef = UsePN (mkPN "Kingman Reef") ;
-Islands_Harris = UsePN (mkPN "Harris") ;
-Countries_R_provinces_Volgogradskayaoblast_cities_Volgograd = UsePN (mkPN "Volgograd") ;
-Deserts_GrandVictoriaDesert = UsePN (mkPN "Grand Victoria Desert") ;
-Countries_GB_provinces_Lancashire_cities_Preston = UsePN (mkPN "Preston") ;
-Countries_RO_provinces_Sibiu_cities_Sibiu = UsePN (mkPN "Sibiu") ;
-Countries_TR_provinces_Kocaeli = UsePN (mkPN "Kocaeli") ;
-Countries_I_provinces_TrentinoAltoAdige = UsePN (mkPN "Trentino Alto Adige") ;
-Countries_CH_provinces_AI_cities_Appenzell = UsePN (mkPN "Appenzell") ;
-Countries_RI_cities_Pasuruan = UsePN (mkPN "Pasuruan") ;
-Countries_GB_provinces_GreaterManchester_cities_Salford = UsePN (mkPN "Salford") ;
-Countries_MEX_provinces_Jalisco_cities_Zapopan = UsePN (mkPN "Zapopan") ;
-Countries_B_provinces_Limburg = UsePN (mkPN "Limburg") ;
-Countries_BR_provinces_MinasGerais_cities_Ipatinga = UsePN (mkPN "Ipatinga") ;
-Countries_AL_cities_Durres = UsePN (mkPN "Durres") ;
-Countries_RG_cities_Conakry = UsePN (mkPN "Conakry") ;
-Countries_NL_provinces_Groningen = UsePN (mkPN "Groningen") ;
-Countries_GB_provinces_Gloucestershire_cities_Glouchester = UsePN (mkPN "Glouchester") ;
-Countries_cid_cia_Saint_Pierre_and_Miquelon = UsePN (mkPN "Saint Pierre and Miquelon") ;
-Countries_RA_provinces_Chubut = UsePN (mkPN "Chubut") ;
-Countries_MEX_provinces_Michoacan_cities_Morelia = UsePN (mkPN "Morelia") ;
-Countries_GB_provinces_WestSussex_cities_Chichester = UsePN (mkPN "Chichester") ;
-Countries_D_provinces_Bayern_cities_Regensburg = UsePN (mkPN "Regensburg") ;
-Countries_R_provinces_Chelyabinskayaoblast_cities_Miass = UsePN (mkPN "Miass") ;
-Countries_RC_provinces_Pingtung_cities_Pingtung = UsePN (mkPN "Pingtung") ;
-Countries_R_provinces_Khabarovskiykray = UsePN (mkPN "Khabarovskiy kray") ;
-Islands_Staffa = UsePN (mkPN "Staffa") ;
-Countries_PL_cities_DabrowaGornicza = UsePN (mkPN "Dabrowa Gornicza") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Dusseldorf = UsePN (mkPN "Dusseldorf") ;
-Countries_VN_provinces_DacLac = UsePN (mkPN "Dac Lac") ;
-Organizations_RG = UsePN (mkPN "Rio Group") ;
-Countries_CDN_provinces_Ontario_cities_Etobicoke = UsePN (mkPN "Etobicoke") ;
-Rivers_WesternDwina = UsePN (mkPN "Western Dwina") ;
-Countries_CDN_provinces_Ontario_cities_London = UsePN (mkPN "London") ;
-Countries_RO_provinces_Salaj_cities_Zalau = UsePN (mkPN "Zalau") ;
-Countries_RO_provinces_Cluj_cities_ClujNapoca = UsePN (mkPN "Cluj Napoca") ;
-Countries_GB_provinces_Monmouthshire_cities_Cwmbran = UsePN (mkPN "Cwmbran") ;
-Countries_MEX_provinces_DistritoFederal = UsePN (mkPN "Distrito Federal") ;
-Countries_TJ_provinces_Jiangsu_cities_Suzhou = UsePN (mkPN "Suzhou") ;
-Countries_F_provinces_PaysdelaLoire_cities_Nantes = UsePN (mkPN "Nantes") ;
-Countries_R_provinces_Stavropolskykray_cities_Pyatigorsk = UsePN (mkPN "Pyatigorsk") ;
-Countries_cid_cia_Svalbard_cities_Longyearbyen = UsePN (mkPN "Longyearbyen") ;
-Countries_CH_provinces_FR_cities_Fribourg = UsePN (mkPN "Fribourg") ;
-Countries_USA_provinces_Connecticut_cities_Stamford = UsePN (mkPN "Stamford") ;
-Countries_ET_provinces_ElQalubiya = UsePN (mkPN "El Qalubiya") ;
-Countries_A_provinces_LowerAustria = UsePN (mkPN "Lower Austria") ;
-Countries_RP_cities_Quezon = UsePN (mkPN "Quezon") ;
-Countries_cid_cia_Midway_Islands = UsePN (mkPN "Midway Islands") ;
-Islands_MelvilleIsland = UsePN (mkPN "Melville Island") ;
-Countries_GB_provinces_EastSussex = UsePN (mkPN "East Sussex") ;
-Countries_KAZ_provinces_BatysQazaqstan = UsePN (mkPN "Batys Qazaqstan") ;
-Countries_RI_cities_Manado = UsePN (mkPN "Manado") ;
-NewCaledonia = UsePN (mkPN "New Caledonia") ;
-Countries_PE_provinces_SanMartin = UsePN (mkPN "San Martin") ;
-Countries_MOC_provinces_Zambezia_cities_Quelimane = UsePN (mkPN "Quelimane") ;
-Countries_BR_provinces_MinasGerais_cities_TeofiloOtoni = UsePN (mkPN "Teofilo Otoni") ;
-Islands_Taiwan = UsePN (mkPN "Taiwan") ;
-Countries_IND_provinces_Kerala_cities_Cochin = UsePN (mkPN "Cochin") ;
-Countries_IND_provinces_Karnataka_cities_Hubli = UsePN (mkPN "Hubli") ;
-Islands_Martinique = UsePN (mkPN "Martinique") ;
-Countries_BIH_cities_Sarajevo = UsePN (mkPN "Sarajevo") ;
-Countries_NIC_cities_Masaya = UsePN (mkPN "Masaya") ;
-Countries_RO_provinces_Constanta_cities_Constanta = UsePN (mkPN "Constanta") ;
-Countries_WAN_cities_Bida = UsePN (mkPN "Bida") ;
-Countries_RC_provinces_Kaohsiung_munic_cities_Kaohsiung = UsePN (mkPN "Kaohsiung") ;
-Organizations_OPANAL = UsePN (mkPN "Agency for the Prohibition of Nuclear Weapons in Latin America and the Caribbean") ;
-Countries_MAL_provinces_PulauPinang_cities_GeorgeTown = UsePN (mkPN "George Town") ;
-Islands_Anglesey = UsePN (mkPN "Anglesey") ;
-Countries_TR_provinces_Sakarya_cities_Sakarya = UsePN (mkPN "Sakarya") ;
-Countries_E_provinces_Andalusia_cities_Cordoba = UsePN (mkPN "Cordoba") ;
-Countries_EAK_provinces_Eastern = UsePN (mkPN "Eastern") ;
-Countries_THA_provinces_NakhonNayok = UsePN (mkPN "Nakhon Nayok") ;
-Rivers_Orinoco = UsePN (mkPN "Orinoco") ;
-Countries_H_provinces_Pecs_munic = UsePN (mkPN "Pecs (munic.)") ;
-Countries_EAT_provinces_KusiniUjunga = UsePN (mkPN "Kusini Ujunga") ;
-Countries_F_provinces_HauteNormandie_cities_LeHavre = UsePN (mkPN "Le Havre") ;
-Countries_BD_cities_Dinajpur = UsePN (mkPN "Dinajpur") ;
-Countries_ANG_provinces_Namibe = UsePN (mkPN "Namibe") ;
-Countries_MEX_provinces_Tamaulipas_cities_Tampico = UsePN (mkPN "Tampico") ;
-Countries_IND_provinces_Bihar_cities_Patna = UsePN (mkPN "Patna") ;
-Countries_CO_provinces_Boyaca_cities_Tunja = UsePN (mkPN "Tunja") ;
-Countries_RA_provinces_TierradelFuego_cities_Ushuaia = UsePN (mkPN "Ushuaia") ;
-Countries_R_provinces_Khabarovskiykray_cities_KomsomolsknaAmure = UsePN (mkPN "Komsomolsk na Amure") ;
-Countries_BR_provinces_MinasGerais_cities_GovernadorValadares = UsePN (mkPN "Governador Valadares") ;
-Countries_B_provinces_EastFlanders = UsePN (mkPN "East Flanders") ;
-Countries_TJ_provinces_Shandong_cities_Liancheng = UsePN (mkPN "Liancheng") ;
-Countries_IRQ_provinces_Maysan = UsePN (mkPN "Maysan") ;
-Countries_BR_provinces_Pernambuco_cities_Gravatai = UsePN (mkPN "Gravatai") ;
-Rivers_Cuilo = UsePN (mkPN "Cuilo") ;
-Countries_MEX_provinces_Durango_cities_VictoriadeDurango = UsePN (mkPN "Victoria de Durango") ;
-Countries_MOC_provinces_Nampula_cities_Nampula = UsePN (mkPN "Nampula") ;
-Countries_R_provinces_Rep_ofNorthOssetiya = UsePN (mkPN "Rep. of North Ossetiya") ;
-Countries_SF_provinces_Kymi_cities_Kotka = UsePN (mkPN "Kotka") ;
-Countries_H_provinces_Bekes = UsePN (mkPN "Bekes") ;
-Countries_GB_provinces_Derbyshire_cities_Matlock = UsePN (mkPN "Matlock") ;
-Islands_SouthRonaldson = UsePN (mkPN "South Ronaldson") ;
-Countries_cid_cia_French_Southern_and_Antarctic_Lands = UsePN (mkPN "French Southern and Antarctic Lands") ;
-Countries_GB_provinces_NorthYorkshire_cities_Harrogate = UsePN (mkPN "Harrogate") ;
-Lakes_LakeChilwa = UsePN (mkPN "Lake Chilwa") ;
-Countries_IRQ_provinces_AlAnbar_cities_ArRamadi = UsePN (mkPN "Ar Ramadi") ;
-Countries_HCA_provinces_Olancho_cities_Jutigalpa = UsePN (mkPN "Jutigalpa") ;
-Countries_I_provinces_Lombardia = UsePN (mkPN "Lombardia") ;
-Countries_TJ_provinces_NeiMonggol_cities_Tongliao = UsePN (mkPN "Tongliao") ;
-Countries_BOL_cities_LaPaz = UsePN (mkPN "La Paz") ;
-Countries_D_provinces_Berlin = UsePN (mkPN "Berlin") ;
-Countries_MEX_provinces_Veracruz_cities_Jalapa = UsePN (mkPN "Jalapa") ;
-Grenada = UsePN (mkPN "Grenada") ;
-Mountains_Sulitjelma = UsePN (mkPN "Sulitjelma") ;
-Countries_F_provinces_FrancheComte_cities_Besancon = UsePN (mkPN "Besancon") ;
-Countries_GB_provinces_Dorset_cities_Poole = UsePN (mkPN "Poole") ;
-Countries_TJ_provinces_Shandong_cities_Rizhao = UsePN (mkPN "Rizhao") ;
-Countries_MYA_provinces_Rakhine_cities_Akyab = UsePN (mkPN "Akyab") ;
-Countries_GB_provinces_Buckinghamshire_cities_MiltonKeynes = UsePN (mkPN "Milton Keynes") ;
-Countries_TJ_provinces_Shandong_cities_Jiaoxian = UsePN (mkPN "Jiaoxian") ;
-Organizations_EN = UsePN (mkPN "Nuclear Energy Agency") ;
-Countries_IR_provinces_Bakhtaran = UsePN (mkPN "Bakhtaran") ;
-Countries_BR_provinces_RiodeJaneiro_cities_SaoJoaodeMeriti = UsePN (mkPN "Sao Joao de Meriti") ;
-Countries_YV_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
-Countries_J_provinces_Nagano = UsePN (mkPN "Nagano") ;
-Countries_R_provinces_Orenburgskayaoblast_cities_Novotroitsk = UsePN (mkPN "Novotroitsk") ;
-Countries_USA_provinces_Colorado = UsePN (mkPN "Colorado") ;
-Countries_MEX_provinces_Sinaloa = UsePN (mkPN "Sinaloa") ;
-Countries_J_provinces_Akita_cities_Akita = UsePN (mkPN "Akita") ;
-Countries_CO_provinces_Antioquia_cities_Turbo = UsePN (mkPN "Turbo") ;
-Countries_E_provinces_Asturias_cities_Oviedo = UsePN (mkPN "Oviedo") ;
-Countries_SUD_provinces_ashSharqiyah_cities_alQadarif = UsePN (mkPN "al Qadarif") ;
-Countries_R_provinces_Kaluzhskayaoblast_cities_Kaluga = UsePN (mkPN "Kaluga") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Qinzhou = UsePN (mkPN "Qinzhou") ;
-Islands_Kyushu = UsePN (mkPN "Kyushu") ;
-Lakes_Vaettern = UsePN (mkPN "Vaettern") ;
-Countries_BR_provinces_Maranhao_cities_Codo = UsePN (mkPN "Codo") ;
-Countries_GB_provinces_Merseyside_cities_Knowsley = UsePN (mkPN "Knowsley") ;
-Countries_BR_provinces_MinasGerais_cities_ItapecericadaSerra = UsePN (mkPN "Itapecerica da Serra") ;
-Countries_TR_provinces_Sinop = UsePN (mkPN "Sinop") ;
-Countries_R_provinces_Rep_ofAltay = UsePN (mkPN "Rep. of Altay") ;
-Rivers_Limpopo = UsePN (mkPN "Limpopo") ;
-Countries_TJ_provinces_Hubei_cities_Shiyan = UsePN (mkPN "Shiyan") ;
-Organizations_UNAVEMIII = UsePN (mkPN "United Nations Angola Verification Mission") ;
-Rivers_Ischim = UsePN (mkPN "Ischim") ;
-SaudiArabia = UsePN (mkPN "Saudi Arabia") ;
-Countries_cid_cia_Palmyra_Atoll = UsePN (mkPN "Palmyra Atoll") ;
-Countries_BR_provinces_MatoGrossodoSul_cities_Parnaiba = UsePN (mkPN "Parnaiba") ;
-Countries_VN_provinces_ThuaThienHue = UsePN (mkPN "Thua Thien Hue") ;
-Countries_RSA_cities_Diepmeadow = UsePN (mkPN "Diepmeadow") ;
-Countries_PL_provinces_Pilskie_cities_Pila = UsePN (mkPN "Pila") ;
-Islands_Grenada = UsePN (mkPN "Grenada") ;
-Countries_GB_provinces_Cleveland = UsePN (mkPN "Cleveland") ;
-Countries_BR_provinces_Parana = UsePN (mkPN "Parana") ;
-Countries_BR_provinces_RioGrandedoNorte_cities_Mossoro = UsePN (mkPN "Mossoro") ;
-Countries_J_provinces_Ibaraki_cities_Mito = UsePN (mkPN "Mito") ;
-Countries_PNG_cities_PortMoresby = UsePN (mkPN "Port Moresby") ;
-Countries_TR_provinces_Ankara_cities_Ankara = UsePN (mkPN "Ankara") ;
-Countries_USA_provinces_Pennsylvania = UsePN (mkPN "Pennsylvania") ;
-Countries_SN_provinces_SaintLouis = UsePN (mkPN "Saint Louis") ;
-Countries_RA_provinces_Salta_cities_Salta = UsePN (mkPN "Salta") ;
-Countries_ANG_provinces_Cabinda_cities_Cabinda = UsePN (mkPN "Cabinda") ;
-Countries_PE_provinces_Huancavelica_cities_Huancavelica = UsePN (mkPN "Huancavelica") ;
-Countries_TJ_provinces_Shandong_cities_Tengxian = UsePN (mkPN "Tengxian") ;
-Countries_D_provinces_Bayern_cities_Furth = UsePN (mkPN "Furth") ;
-Countries_SN_provinces_Dakar = UsePN (mkPN "Dakar") ;
-Countries_IR_provinces_SistaneBaluchestan_cities_Zahedan = UsePN (mkPN "Zahedan") ;
-Countries_R_provinces_Yaroslavskayaoblast = UsePN (mkPN "Yaroslavskaya oblast") ;
-Rivers_Werra = UsePN (mkPN "Werra") ;
-Australia = UsePN (mkPN "Australia") ;
-Countries_ET_provinces_ElDaqahliya = UsePN (mkPN "El Daqahliya") ;
-Countries_ES_provinces_Morazan_cities_SanFranciscoGotera = UsePN (mkPN "San Francisco Gotera") ;
-Countries_CH_provinces_NW_cities_Stans = UsePN (mkPN "Stans") ;
-Countries_ET_provinces_ElQahira_munic_cities_ElQahira = UsePN (mkPN "El Qahira") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoJosedosCampos = UsePN (mkPN "Sao Jose dos Campos") ;
-Organizations_SADC = UsePN (mkPN "Southern African Development Community") ;
-Countries_MEX_provinces_Campeche = UsePN (mkPN "Campeche") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Zelenograd = UsePN (mkPN "Zelenograd") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Nanning = UsePN (mkPN "Nanning") ;
-Countries_TJ_provinces_Liaoning_cities_Jinxi = UsePN (mkPN "Jinxi") ;
-Countries_HCA_provinces_Cortes_cities_SanPedroSula = UsePN (mkPN "San Pedro Sula") ;
-Countries_ET_provinces_ElMinya_cities_ElMinya = UsePN (mkPN "El Minya") ;
-Countries_TJ_provinces_Liaoning_cities_Dalian = UsePN (mkPN "Dalian") ;
-Countries_EC_cities_Guayaquil = UsePN (mkPN "Guayaquil") ;
-Countries_USA_provinces_Washington = UsePN (mkPN "Washington") ;
-Countries_CH_provinces_FR = UsePN (mkPN "FR") ;
-Countries_YV_cities_Turmero = UsePN (mkPN "Turmero") ;
-Countries_cid_cia_Guam = UsePN (mkPN "Guam") ;
-Countries_GB_provinces_EastSussex_cities_Brighton = UsePN (mkPN "Brighton") ;
-Countries_BR_provinces_Acre_cities_RioBranco = UsePN (mkPN "Rio Branco") ;
-Countries_THA_provinces_Phangnga = UsePN (mkPN "Phangnga") ;
-Countries_ET_provinces_Sharqiya_cities_Zagazig = UsePN (mkPN "Zagazig") ;
-Lakes_DaryachehyeNamak = UsePN (mkPN "Daryacheh ye Namak") ;
-Countries_GB_provinces_Tayside_cities_Dundee = UsePN (mkPN "Dundee") ;
-Countries_RA_provinces_BuenosAires_cities_BahiaBlanca = UsePN (mkPN "Bahia Blanca") ;
-Mountains_Mpika = UsePN (mkPN "Mpika") ;
-Countries_USA_provinces_Kansas = UsePN (mkPN "Kansas") ;
-Countries_TJ_provinces_Fujian_cities_Sanming = UsePN (mkPN "Sanming") ;
-Countries_TJ_provinces_Anhui_cities_Huaibei = UsePN (mkPN "Huaibei") ;
-Cameroon = UsePN (mkPN "Cameroon") ;
-Countries_USA_provinces_California_cities_LosAngeles = UsePN (mkPN "Los Angeles") ;
-Countries_ET_provinces_ElMinya = UsePN (mkPN "El Minya") ;
-Countries_RO_provinces_Dolj = UsePN (mkPN "Dolj") ;
-Countries_ETH_cities_Mekele = UsePN (mkPN "Mekele") ;
-Countries_ES_provinces_Cabanas_cities_Sensuntepeque = UsePN (mkPN "Sensuntepeque") ;
-Countries_RO_provinces_Neamt_cities_PiatraNeamt = UsePN (mkPN "Piatra Neamt") ;
-Seas_SundaSea = UsePN (mkPN "Sunda Sea") ;
-Countries_ES_cities_Apopa = UsePN (mkPN "Apopa") ;
-Countries_TJ_provinces_Sichuan_cities_Neijiang = UsePN (mkPN "Neijiang") ;
-Countries_MYA_provinces_Tanintharyi = UsePN (mkPN "Tanintharyi") ;
-Countries_F_provinces_LanguedocRousillon_cities_Nimes = UsePN (mkPN "Nimes") ;
-Jordan = UsePN (mkPN "Jordan") ;
-Countries_cid_cia_Netherlands_Antilles = UsePN (mkPN "Netherlands Antilles") ;
-Countries_GCA_cities_VillaNueva = UsePN (mkPN "Villa Nueva") ;
-Countries_TJ_provinces_NeiMonggol_cities_Wuhai = UsePN (mkPN "Wuhai") ;
-Countries_GB_provinces_Devon_cities_Exeter = UsePN (mkPN "Exeter") ;
-Countries_CH_provinces_AI = UsePN (mkPN "AI") ;
-Countries_R_provinces_Rep_ofMariyEl_cities_YoshkarOla = UsePN (mkPN "Yoshkar Ola") ;
-Countries_TR_provinces_Cankiri_cities_Cankiri = UsePN (mkPN "Cankiri") ;
-Countries_TJ_provinces_Shanxi_cities_Datong = UsePN (mkPN "Datong") ;
-Countries_TM_provinces_Balkan = UsePN (mkPN "Balkan") ;
-Countries_BR_provinces_SaoPaulo_cities_Sorocaba = UsePN (mkPN "Sorocaba") ;
-Countries_USA_provinces_NewHampshire_cities_Manchester = UsePN (mkPN "Manchester") ;
-Countries_NAM_cities_Windhoek = UsePN (mkPN "Windhoek") ;
-Countries_I_provinces_EmiliaRomagna_cities_ReggionellEmilia = UsePN (mkPN "Reggio nellEmilia") ;
-Countries_GB_provinces_GreaterManchester_cities_Rochdale = UsePN (mkPN "Rochdale") ;
-Countries_SF_provinces_Mikkeli_cities_Mikkeli = UsePN (mkPN "Mikkeli") ;
-Countries_HCA_provinces_LaPaz_cities_LaPaz = UsePN (mkPN "La Paz") ;
-Countries_IRQ_provinces_AlQadisiyah_cities_AdDiwaniyah = UsePN (mkPN "Ad Diwaniyah") ;
-Organizations_IADB = UsePN (mkPN "Inter-American Development Bank") ;
-Countries_USA_provinces_Texas_cities_WichitaFalls = UsePN (mkPN "Wichita Falls") ;
-Islands_Tuvalu = UsePN (mkPN "Tuvalu") ;
-Countries_AUS_provinces_NewSouthWales_cities_Geelong = UsePN (mkPN "Geelong") ;
-Countries_TR_provinces_Kocaeli_cities_Izmit = UsePN (mkPN "Izmit") ;
-Countries_YV_provinces_Portuguesa_cities_Guanare = UsePN (mkPN "Guanare") ;
-Countries_IND_provinces_DamanandDiu_cities_Daman = UsePN (mkPN "Daman") ;
-Organizations_UNCTAD = UsePN (mkPN "United Nations Conference on Trade and Development") ;
-Countries_CH_provinces_AG = UsePN (mkPN "AG") ;
-Countries_THA_provinces_KhonKaen_cities_KhonKaen = UsePN (mkPN "Khon Kaen") ;
-Countries_MYA_provinces_Kayah_cities_Loikaw = UsePN (mkPN "Loikaw") ;
-Countries_BR_provinces_Maranhao_cities_Imperatriz = UsePN (mkPN "Imperatriz") ;
-Countries_DK_cities_Copenhagen = UsePN (mkPN "Copenhagen") ;
-Countries_MEX_provinces_Yucatan = UsePN (mkPN "Yucatan") ;
-Countries_BR_provinces_Pernambuco_cities_Recife = UsePN (mkPN "Recife") ;
-Countries_USA_provinces_Arkansas_cities_LittleRock = UsePN (mkPN "Little Rock") ;
-Countries_cid_cia_British_Virgin_Islands = UsePN (mkPN "British Virgin Islands") ;
-Countries_USA_provinces_California_cities_Bakersfield = UsePN (mkPN "Bakersfield") ;
-Countries_THA_provinces_Saraburi = UsePN (mkPN "Saraburi") ;
-Islands_Bohol = UsePN (mkPN "Bohol") ;
-Islands_Isabela = UsePN (mkPN "Isabela") ;
-Countries_TR_provinces_Kirsehir = UsePN (mkPN "Kirsehir") ;
-Countries_PL_provinces_Szczecinskie_cities_Szczecin = UsePN (mkPN "Szczecin") ;
-Organizations_EBRD = UsePN (mkPN "European Bank for Reconstruction and Development") ;
-Countries_THA_provinces_NortheasternRegion = UsePN (mkPN "Northeastern Region") ;
-Mountains_BorahPeak = UsePN (mkPN "Borah Peak") ;
-Countries_PK_cities_Multan = UsePN (mkPN "Multan") ;
-Mountains_MtAylmer = UsePN (mkPN "Mt Aylmer") ;
-Countries_USA_provinces_NewJersey_cities_Newark = UsePN (mkPN "Newark") ;
-Rivers_Gloma = UsePN (mkPN "Gloma") ;
-Countries_PL_provinces_Gdanskie_cities_Gdynia = UsePN (mkPN "Gdynia") ;
-Countries_UZB_provinces_Namangan = UsePN (mkPN "Namangan") ;
-Countries_GE_cities_Tbilisi = UsePN (mkPN "Tbilisi") ;
-Countries_CO_provinces_Guaviare = UsePN (mkPN "Guaviare") ;
-Countries_D_provinces_Thuringen_cities_Gera = UsePN (mkPN "Gera") ;
-Countries_MEX_provinces_BajaCalifornia_cities_Tijuana = UsePN (mkPN "Tijuana") ;
-Islands_Tilos = UsePN (mkPN "Tilos") ;
-Countries_SF_provinces_Oulu_cities_Oulu = UsePN (mkPN "Oulu") ;
-NorthKorea = UsePN (mkPN "North Korea") ;
-Countries_TJ_provinces_NeiMonggol_cities_Jining = UsePN (mkPN "Jining") ;
-Countries_cid_cia_Tromelin_Island = UsePN (mkPN "Tromelin Island") ;
-Countries_N_provinces_Nordland_cities_Svolvaer = UsePN (mkPN "Svolvaer") ;
-Countries_B_provinces_Hainaut_cities_Mons = UsePN (mkPN "Mons") ;
-Countries_USA_provinces_California_cities_Ontario = UsePN (mkPN "Ontario") ;
-Countries_EAT_provinces_Kigoma = UsePN (mkPN "Kigoma") ;
-Countries_ES_provinces_LaPaz = UsePN (mkPN "La Paz") ;
-Rivers_Ruki = UsePN (mkPN "Ruki") ;
-Rivers_Tobol = UsePN (mkPN "Tobol") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Raipur = UsePN (mkPN "Raipur") ;
-Countries_I_provinces_EmiliaRomagna = UsePN (mkPN "Emilia Romagna") ;
-Countries_RA_provinces_SanLuis = UsePN (mkPN "San Luis") ;
-Countries_THA_provinces_SouthernRegion = UsePN (mkPN "Southern Region") ;
-Countries_THA_provinces_NakhonSawan = UsePN (mkPN "Nakhon Sawan") ;
-Countries_USA_provinces_Michigan_cities_Livonia = UsePN (mkPN "Livonia") ;
-Countries_RA_provinces_BuenosAires_cities_SanNicolasdelosArroyos = UsePN (mkPN "San Nicolas de los Arroyos") ;
-Countries_UA_provinces_Krym = UsePN (mkPN "Krym") ;
-Organizations_UNMOGIP = UsePN (mkPN "United Nations Military Observer Group in India and Pakistan") ;
-Countries_R_provinces_Irkutskayaoblast_cities_Bratsk = UsePN (mkPN "Bratsk") ;
-Countries_IND_provinces_AndhraPradesh_cities_Rajahmundry = UsePN (mkPN "Rajahmundry") ;
-Countries_RA_provinces_Catamarca_cities_SanFernandodelValledeCatamarca = UsePN (mkPN "San Fernando del Valle de Catamarca") ;
-Countries_CDN_provinces_Ontario_cities_Windsor = UsePN (mkPN "Windsor") ;
-Countries_MEX_provinces_BajaCalifornia_cities_Ensenada = UsePN (mkPN "Ensenada") ;
-Countries_ET_provinces_ElMinufiya = UsePN (mkPN "El Minufiya") ;
-Countries_CDN_provinces_Ontario_cities_Glouchester = UsePN (mkPN "Glouchester") ;
-Countries_TJ_provinces_Sichuan_cities_Qianjiang = UsePN (mkPN "Qianjiang") ;
-Countries_EAT_provinces_Kilimanjaro_cities_Moshi = UsePN (mkPN "Moshi") ;
-Countries_TR_provinces_Tunceli = UsePN (mkPN "Tunceli") ;
-Countries_E_provinces_Andalusia_cities_Cadiz = UsePN (mkPN "Cadiz") ;
-Countries_TAD_provinces_Khatlon = UsePN (mkPN "Khatlon") ;
-Countries_GB_provinces_Wiltshire_cities_Salisbury = UsePN (mkPN "Salisbury") ;
-Countries_R_provinces_Yaroslavskayaoblast_cities_Yaroslavl = UsePN (mkPN "Yaroslavl") ;
-Countries_TJ_provinces_Liaoning = UsePN (mkPN "Liaoning") ;
-Organizations_AG = UsePN (mkPN "Andean Group") ;
-Countries_CDN_provinces_Quebec_cities_Laval = UsePN (mkPN "Laval") ;
-Countries_cid_cia_Mayotte = UsePN (mkPN "Mayotte") ;
-Lakes_LakeNatron = UsePN (mkPN "Lake Natron") ;
-Countries_DZ_cities_Annaba = UsePN (mkPN "Annaba") ;
-Countries_AUS_provinces_AustraliaCapitalTerritory = UsePN (mkPN "Australia Capital Territory") ;
-Organizations_MTCR = UsePN (mkPN "Missile Technology Control Regime") ;
-Countries_E_provinces_Madrid_cities_Madrid = UsePN (mkPN "Madrid") ;
-Countries_D_provinces_Bayern_cities_Wurzburg = UsePN (mkPN "Wurzburg") ;
-Countries_USA_provinces_Maryland_cities_Annapolis = UsePN (mkPN "Annapolis") ;
-Countries_BR_provinces_Ceara_cities_Sobral = UsePN (mkPN "Sobral") ;
-Countries_USA_provinces_NewHampshire_cities_Concord = UsePN (mkPN "Concord") ;
-Countries_RC_cities_Chungli = UsePN (mkPN "Chungli") ;
-Countries_PL_provinces_Koninskie = UsePN (mkPN "Koninskie") ;
-Countries_NL_provinces_Limburg_cities_Geleen = UsePN (mkPN "Geleen") ;
-Countries_CAM_provinces_Centre = UsePN (mkPN "Centre") ;
-Islands_Chios = UsePN (mkPN "Chios") ;
-Countries_TJ_provinces_Gansu = UsePN (mkPN "Gansu") ;
-Countries_UZB_provinces_Andijon = UsePN (mkPN "Andijon") ;
-Egypt = UsePN (mkPN "Egypt") ;
-Countries_USA_provinces_Missouri_cities_JeffersonCity = UsePN (mkPN "Jefferson City") ;
-Countries_THA_provinces_PrachuapKhiriKhan = UsePN (mkPN "Prachuap Khiri Khan") ;
-Estonia = UsePN (mkPN "Estonia") ;
-Countries_D_provinces_MecklenburgVorpommern_cities_Rostock = UsePN (mkPN "Rostock") ;
-Countries_EAT_provinces_Rukwa_cities_Sumbawanga = UsePN (mkPN "Sumbawanga") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Bottrop = UsePN (mkPN "Bottrop") ;
-Countries_J_provinces_Aomori = UsePN (mkPN "Aomori") ;
-Countries_WAN_cities_Kaduna = UsePN (mkPN "Kaduna") ;
-Countries_VN_provinces_LamDong = UsePN (mkPN "Lam Dong") ;
-Organizations_SACU = UsePN (mkPN "Southern African Customs Union") ;
-Countries_TJ_provinces_Guangdong_cities_Guangzhou = UsePN (mkPN "Guangzhou") ;
-Countries_LT_cities_Vilnius = UsePN (mkPN "Vilnius") ;
-Countries_D_provinces_Niedersachsen_cities_Gottingen = UsePN (mkPN "Gottingen") ;
-Countries_USA_provinces_Maryland_cities_Baltimore = UsePN (mkPN "Baltimore") ;
-Countries_ET_provinces_Aswan_cities_Aswan = UsePN (mkPN "Aswan") ;
-Countries_D_provinces_Brandenburg_cities_Potsdam = UsePN (mkPN "Potsdam") ;
-Countries_TR_provinces_Denizli = UsePN (mkPN "Denizli") ;
-Countries_TJ_provinces_Hunan_cities_Leiyang = UsePN (mkPN "Leiyang") ;
-Latvia = UsePN (mkPN "Latvia") ;
-Countries_KAZ_provinces_Leninsk_munic_cities_Leninsk = UsePN (mkPN "Leninsk") ;
-Countries_H_provinces_Csongrad = UsePN (mkPN "Csongrad") ;
-Countries_R_provinces_Leningradskayaoblast_cities_Kolpino = UsePN (mkPN "Kolpino") ;
-Countries_GB_provinces_Leicestershire_cities_Leichester = UsePN (mkPN "Leichester") ;
-Countries_RC_provinces_Hualien = UsePN (mkPN "Hualien") ;
-Rivers_Busira = UsePN (mkPN "Busira") ;
-Countries_VN_provinces_TayNinh = UsePN (mkPN "Tay Ninh") ;
-Mountains_Joekul = UsePN (mkPN "Joekul") ;
-Countries_WAN_cities_Ilesha = UsePN (mkPN "Ilesha") ;
-Countries_WAN_cities_Zaria = UsePN (mkPN "Zaria") ;
-Countries_J_provinces_Ehime_cities_Matsuyama = UsePN (mkPN "Matsuyama") ;
-Countries_MEX_provinces_Tamaulipas = UsePN (mkPN "Tamaulipas") ;
-Countries_ZRE_provinces_Shaba_cities_Kolwezi = UsePN (mkPN "Kolwezi") ;
-Countries_R_provinces_Permskayaoblast = UsePN (mkPN "Permskaya oblast") ;
-Countries_MEX_provinces_Jalisco_cities_Guadalajara = UsePN (mkPN "Guadalajara") ;
-Islands_Arran = UsePN (mkPN "Arran") ;
-Countries_USA_provinces_California_cities_Escondido = UsePN (mkPN "Escondido") ;
-Countries_BR_provinces_SaoPaulo_cities_Piracicaba = UsePN (mkPN "Piracicaba") ;
-Countries_CDN_provinces_Ontario_cities_Burlington = UsePN (mkPN "Burlington") ;
-Countries_WAN_cities_PortHarcourt = UsePN (mkPN "Port Harcourt") ;
-Countries_R_provinces_Rep_ofKalmykiya_cities_Elista = UsePN (mkPN "Elista") ;
-Countries_R_provinces_ChuvashRepublic_cities_Cheboksary = UsePN (mkPN "Cheboksary") ;
-Islands_SantaCatalinaIsland = UsePN (mkPN "Santa Catalina Island") ;
-Rivers_Han = UsePN (mkPN "Han") ;
-Countries_USA_provinces_Missouri_cities_Independence = UsePN (mkPN "Independence") ;
-Countries_PA_provinces_ComarcadeSanBlas_cities_ElPorvenir = UsePN (mkPN "El Porvenir") ;
-Countries_PL_provinces_Katowickie_cities_Zabrze = UsePN (mkPN "Zabrze") ;
-Countries_CDN_provinces_Quebec_cities_Richmond = UsePN (mkPN "Richmond") ;
-Countries_SUD_provinces_ashSharqiyah_cities_PortSudan = UsePN (mkPN "Port Sudan") ;
-ElSalvador = UsePN (mkPN "El Salvador") ;
-Countries_BR_provinces_EspiritoSanto_cities_Vitoria = UsePN (mkPN "Vitoria") ;
-Countries_D_provinces_BadenWurttemberg_cities_Mannheim = UsePN (mkPN "Mannheim") ;
-Countries_TJ_provinces_NeiMonggol_cities_Manzhouli = UsePN (mkPN "Manzhouli") ;
-Countries_USA_provinces_NewYork_cities_NewYork = UsePN (mkPN "New York") ;
-Countries_RI_cities_Blitar = UsePN (mkPN "Blitar") ;
-Countries_GB_provinces_Berkshire_cities_Slough = UsePN (mkPN "Slough") ;
-Countries_IRQ_provinces_Diyala = UsePN (mkPN "Diyala") ;
-Countries_TJ_provinces_Shanxi_cities_Changzhi = UsePN (mkPN "Changzhi") ;
-Countries_I_provinces_Sardegna_cities_Sassari = UsePN (mkPN "Sassari") ;
-Countries_TR_provinces_Kocaeli_cities_Gebze = UsePN (mkPN "Gebze") ;
-Countries_YV_provinces_Yaracuy = UsePN (mkPN "Yaracuy") ;
-Countries_D_provinces_SachsenAnhalt_cities_Magdeburg = UsePN (mkPN "Magdeburg") ;
-Countries_BR_provinces_SaoPaulo_cities_MojiGuacu = UsePN (mkPN "Moji Guacu") ;
-Organizations_WEU = UsePN (mkPN "Western European Union") ;
-Countries_MEX_cities_CiudadApodaca = UsePN (mkPN "Ciudad Apodaca") ;
-Countries_IL_provinces_Central_cities_Jerusalem = UsePN (mkPN "Jerusalem") ;
-Countries_BR_provinces_EspiritoSanto_cities_Serra = UsePN (mkPN "Serra") ;
-Countries_TJ_provinces_Anhui_cities_Maanshan = UsePN (mkPN "Maanshan") ;
-Organizations_CBSS = UsePN (mkPN "Council of the Baltic Sea States") ;
-Countries_BR_provinces_RioGrandedoSul_cities_CaxiasdoSul = UsePN (mkPN "Caxias do Sul") ;
-Countries_E_provinces_Cantabria_cities_Santander = UsePN (mkPN "Santander") ;
-Countries_TJ_provinces_Guangdong_cities_Huizhou = UsePN (mkPN "Huizhou") ;
-Countries_SF_provinces_Vaasa_cities_Vaasa = UsePN (mkPN "Vaasa") ;
-Countries_PK_cities_Lahore = UsePN (mkPN "Lahore") ;
-Countries_RO_provinces_Ialomita = UsePN (mkPN "Ialomita") ;
-Rivers_Thames = UsePN (mkPN "Thames") ;
-Countries_IR_provinces_Khorasan = UsePN (mkPN "Khorasan") ;
-Countries_P_provinces_Madeira_cities_Funchal = UsePN (mkPN "Funchal") ;
-Countries_USA_provinces_Indiana_cities_Gary = UsePN (mkPN "Gary") ;
-Countries_IR_provinces_Hormozgan = UsePN (mkPN "Hormozgan") ;
-Countries_TJ_provinces_Jilin_cities_Yanji = UsePN (mkPN "Yanji") ;
-Countries_J_provinces_Ibaraki = UsePN (mkPN "Ibaraki") ;
-Lakes_LakeOntario = UsePN (mkPN "Lake Ontario") ;
-Countries_CDN_provinces_Ontario_cities_Toronto = UsePN (mkPN "Toronto") ;
-Countries_SUD_provinces_ashSharqiyah = UsePN (mkPN "ash Sharqiyah") ;
-Countries_TJ_provinces_Henan_cities_Xinxiang = UsePN (mkPN "Xinxiang") ;
-Countries_TJ_provinces_Anhui_cities_Chuxian = UsePN (mkPN "Chuxian") ;
-Countries_USA_provinces_SouthCarolina_cities_Columbia = UsePN (mkPN "Columbia") ;
-Countries_H_provinces_Tolna = UsePN (mkPN "Tolna") ;
-Countries_RA_provinces_BuenosAires_cities_Lanus = UsePN (mkPN "Lanus") ;
-Countries_EAK_provinces_Coast_cities_Mombasa = UsePN (mkPN "Mombasa") ;
-Countries_MEX_provinces_Guerrero = UsePN (mkPN "Guerrero") ;
-Countries_MEX_provinces_Chiapas_cities_TuxtlaGutierrez = UsePN (mkPN "Tuxtla Gutierrez") ;
-Countries_BR_cities_Ibirite = UsePN (mkPN "Ibirite") ;
-Countries_THA_provinces_Petchanbun = UsePN (mkPN "Petchanbun") ;
-Countries_H_provinces_Nograd_cities_Salgotarjan = UsePN (mkPN "Salgotarjan") ;
-Countries_YV_provinces_Miranda_cities_Baruta = UsePN (mkPN "Baruta") ;
-Countries_RO_provinces_Vrancea_cities_Focsani = UsePN (mkPN "Focsani") ;
-Countries_TJ_provinces_Hunan_cities_Changsha = UsePN (mkPN "Changsha") ;
-Mountains_HarneyPeak = UsePN (mkPN "Harney Peak") ;
-Countries_BR_provinces_SaoPaulo_cities_Maua = UsePN (mkPN "Maua") ;
-Countries_UZB_provinces_Bukhoro_cities_Bukhoro = UsePN (mkPN "Bukhoro") ;
-Islands_CangarooIsland = UsePN (mkPN "Cangaroo Island") ;
-Deserts_Sagiael_Hamra = UsePN (mkPN "Sagia el-Hamra") ;
-Countries_R_provinces_Altayskiykray = UsePN (mkPN "Altayskiy kray") ;
-Zambia = UsePN (mkPN "Zambia") ;
-Countries_RCH_cities_Santiago = UsePN (mkPN "Santiago") ;
-Countries_RO_provinces_Sibiu = UsePN (mkPN "Sibiu") ;
-Countries_MOC_provinces_Maputo_munic_cities_Maputo = UsePN (mkPN "Maputo") ;
-Countries_IRQ_provinces_SalahadDin_cities_Samarra = UsePN (mkPN "Samarra") ;
-Countries_CZ_provinces_Severocesky = UsePN (mkPN "Severocesky") ;
-Countries_GB_provinces_Warwickshire_cities_Nuneaton = UsePN (mkPN "Nuneaton") ;
-Countries_GB_provinces_Gwynedd_cities_Caernarfon = UsePN (mkPN "Caernarfon") ;
-Countries_YV_provinces_Barinas = UsePN (mkPN "Barinas") ;
-Countries_RA_provinces_Cordoba = UsePN (mkPN "Cordoba") ;
-Countries_USA_provinces_Nebraska = UsePN (mkPN "Nebraska") ;
-Countries_cid_cia_Man_cities_Douglas = UsePN (mkPN "Douglas") ;
-Countries_YV_provinces_Falcon = UsePN (mkPN "Falcon") ;
-Countries_GB_provinces_Nottinghamshire = UsePN (mkPN "Nottinghamshire") ;
-Countries_R_provinces_Sakhalinskayaoblast = UsePN (mkPN "Sakhalinskaya oblast") ;
-Countries_H_provinces_Miskolc_munic_cities_Miskolc = UsePN (mkPN "Miskolc") ;
-Countries_IND_provinces_AndamanandNicobarIs__cities_PortBlair = UsePN (mkPN "Port Blair") ;
-Countries_R_provinces_Chukotskyao_cities_Anadyr = UsePN (mkPN "Anadyr") ;
-Countries_J_provinces_Saitama = UsePN (mkPN "Saitama") ;
-Countries_RO_provinces_Tulcea = UsePN (mkPN "Tulcea") ;
-Countries_R_provinces_Chitinskayaoblast = UsePN (mkPN "Chitinskaya oblast") ;
-Countries_MYA_provinces_Mandalay_cities_Mandalay = UsePN (mkPN "Mandalay") ;
-Yemen = UsePN (mkPN "Yemen") ;
-Islands_Nauru = UsePN (mkPN "Nauru") ;
-Countries_IND_provinces_Maharashtra_cities_Kolhapur = UsePN (mkPN "Kolhapur") ;
-Countries_EAK_provinces_RiftValley_cities_Kericho = UsePN (mkPN "Kericho") ;
-Countries_IND_provinces_Chandigarh_cities_Chandigarh = UsePN (mkPN "Chandigarh") ;
-Countries_USA_provinces_Nebraska_cities_Omaha = UsePN (mkPN "Omaha") ;
-Countries_GB_provinces_WestMidlands_cities_Walsall = UsePN (mkPN "Walsall") ;
-Countries_IR_provinces_Markazi = UsePN (mkPN "Markazi") ;
-Countries_EAK_provinces_RiftValley_cities_Kitale = UsePN (mkPN "Kitale") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Hagen = UsePN (mkPN "Hagen") ;
-Countries_EAT_provinces_KusiniPemba = UsePN (mkPN "Kusini Pemba") ;
-Countries_CO_provinces_Vichada = UsePN (mkPN "Vichada") ;
-Countries_AUS_provinces_SouthAustralia_cities_Adelaide = UsePN (mkPN "Adelaide") ;
-Countries_J_provinces_Kumamoto_cities_Kumamoto = UsePN (mkPN "Kumamoto") ;
-Romania = UsePN (mkPN "Romania") ;
-Islands_Paramuschir = UsePN (mkPN "Paramuschir") ;
-Countries_VN_provinces_HaTinh = UsePN (mkPN "Ha Tinh") ;
-Countries_USA_provinces_Connecticut_cities_Waterbury = UsePN (mkPN "Waterbury") ;
-Countries_B_provinces_Brabant_cities_Brussels = UsePN (mkPN "Brussels") ;
-Countries_DZ_cities_Tebessa = UsePN (mkPN "Tebessa") ;
-Countries_GB_provinces_BlaenauGwent = UsePN (mkPN "Blaenau Gwent") ;
-Countries_LS_cities_Maseru = UsePN (mkPN "Maseru") ;
-Countries_MEX_provinces_NuevoLeon_cities_CiudadSantaCatarina = UsePN (mkPN "Ciudad Santa Catarina") ;
-Countries_USA_provinces_California_cities_Orange = UsePN (mkPN "Orange") ;
-Countries_USA_provinces_Distr_Columbia = UsePN (mkPN "Distr. Columbia") ;
-Countries_IND_provinces_Maharashtra_cities_NewBombay = UsePN (mkPN "New Bombay") ;
-Countries_CDN_provinces_Manitoba = UsePN (mkPN "Manitoba") ;
-Countries_BR_provinces_SaoPaulo_cities_FerrazdeVasconcelos = UsePN (mkPN "Ferraz de Vasconcelos") ;
-Countries_F_provinces_IledeFrance = UsePN (mkPN "Ile de France") ;
-Countries_TJ_provinces_Hebei_cities_Handan = UsePN (mkPN "Handan") ;
-Countries_USA_provinces_Virginia = UsePN (mkPN "Virginia") ;
-Countries_S_provinces_Ostergotland = UsePN (mkPN "Ostergotland") ;
-Countries_VN_cities_Saigon = UsePN (mkPN "Saigon") ;
-Austria = UsePN (mkPN "Austria") ;
-Countries_R_provinces_Tambovskayaoblast = UsePN (mkPN "Tambovskaya oblast") ;
-Countries_HCA_provinces_Intibuca_cities_LaEsperanza = UsePN (mkPN "La Esperanza") ;
-Countries_TR_provinces_Erzurum = UsePN (mkPN "Erzurum") ;
-Countries_R_provinces_Kostromskayaoblast_cities_Kostroma = UsePN (mkPN "Kostroma") ;
-Countries_EAK_provinces_Nyanza = UsePN (mkPN "Nyanza") ;
-Countries_P_provinces_Coimbra_cities_Coimbra = UsePN (mkPN "Coimbra") ;
-Mountains_Huascaran = UsePN (mkPN "Huascaran") ;
-Countries_F_provinces_Centre_cities_Tours = UsePN (mkPN "Tours") ;
-Countries_USA_provinces_Louisiana_cities_NewOrleans = UsePN (mkPN "New Orleans") ;
-Countries_cid_cia_Turks_and_Caicos_Islands = UsePN (mkPN "Turks and Caicos Islands") ;
-Countries_ES_provinces_LaPaz_cities_Zacatecoluca = UsePN (mkPN "Zacatecoluca") ;
-Countries_UA_provinces_Mykolayivska_cities_Mykolayiv = UsePN (mkPN "Mykolayiv") ;
-Countries_GB_provinces_GreaterManchester_cities_Trafford = UsePN (mkPN "Trafford") ;
-Countries_UZB_provinces_Jizzakh_cities_Jizzakh = UsePN (mkPN "Jizzakh") ;
-Rivers_Oesterdalaelv = UsePN (mkPN "Oesterdalaelv") ;
-Countries_BR_provinces_Goias_cities_Araguaina = UsePN (mkPN "Araguaina") ;
-Countries_VN_provinces_CaoBang = UsePN (mkPN "Cao Bang") ;
-Countries_cid_cia_Martinique_cities_Fort_de_France = UsePN (mkPN "Fort-de-France") ;
-Countries_GB_provinces_NorthYorkshire_cities_Scarborough = UsePN (mkPN "Scarborough") ;
-Countries_CDN_provinces_Ontario_cities_Scarborough = UsePN (mkPN "Scarborough") ;
-Lakes_LakeTiticaca = UsePN (mkPN "Lake Titicaca") ;
-Countries_RP_cities_Kalookan = UsePN (mkPN "Kalookan") ;
-Countries_R_provinces_SanktPeterburg = UsePN (mkPN "Sankt Peterburg") ;
-Countries_GR_provinces_DhytikiEllas = UsePN (mkPN "Dhytiki Ellas") ;
-Countries_D_provinces_Saarland_cities_Saarbrucken = UsePN (mkPN "Saarbrucken") ;
-Countries_RO_provinces_Gorj_cities_TirguJiu = UsePN (mkPN "Tirgu Jiu") ;
-Countries_TR_provinces_Yozgat_cities_Yozgat = UsePN (mkPN "Yozgat") ;
-Countries_J_provinces_Toyama_cities_Toyama = UsePN (mkPN "Toyama") ;
-Countries_SME_cities_Paramaribo = UsePN (mkPN "Paramaribo") ;
-Countries_KAZ_provinces_Aqmola_cities_Aqmola = UsePN (mkPN "Aqmola") ;
-Countries_MEX_provinces_Yucatan_cities_Merida = UsePN (mkPN "Merida") ;
-Countries_TR_provinces_Mardin_cities_Mardin = UsePN (mkPN "Mardin") ;
-Countries_CH_provinces_NE = UsePN (mkPN "NE") ;
-Countries_cid_cia_Bermuda = UsePN (mkPN "Bermuda") ;
-Countries_SF_provinces_Haeme_cities_Lahti = UsePN (mkPN "Lahti") ;
-Countries_F_provinces_Limousin = UsePN (mkPN "Limousin") ;
-Countries_GB_provinces_Derbyshire = UsePN (mkPN "Derbyshire") ;
-Countries_ES_provinces_SanMiguel_cities_SanMiguel = UsePN (mkPN "San Miguel") ;
-Countries_TJ_provinces_Henan_cities_Xinyang = UsePN (mkPN "Xinyang") ;
-Countries_BRU_cities_BandarSeriBegawan = UsePN (mkPN "Bandar Seri Begawan") ;
-Countries_PE_provinces_Amazonas_cities_Chachapoyas = UsePN (mkPN "Chachapoyas") ;
-Countries_ET_provinces_Sohag_cities_Sohag = UsePN (mkPN "Sohag") ;
-Countries_IND_provinces_LakshadweepIs_ = UsePN (mkPN "Lakshadweep Is.") ;
-Countries_KAZ_provinces_SoltustikQazaqstan = UsePN (mkPN "Soltustik Qazaqstan") ;
-Countries_BR_provinces_SaoPaulo_cities_Embu = UsePN (mkPN "Embu") ;
-Islands_SriLanka = UsePN (mkPN "Sri Lanka") ;
-Organizations_FZ = UsePN (mkPN "Franc Zone") ;
-Countries_CZ_provinces_Praha = UsePN (mkPN "Praha") ;
-Countries_USA_provinces_Missouri_cities_KansasCity = UsePN (mkPN "Kansas City") ;
-Mountains_Tamgak = UsePN (mkPN "Tamgak") ;
-Countries_ANG_provinces_Uige_cities_Uige = UsePN (mkPN "Uige") ;
-Countries_USA_provinces_California_cities_Irvine = UsePN (mkPN "Irvine") ;
-Countries_R_provinces_Orenburgskayaoblast = UsePN (mkPN "Orenburgskaya oblast") ;
-Countries_BR_provinces_Maranhao_cities_SaoLuis = UsePN (mkPN "Sao Luis") ;
-Countries_MEX_provinces_Mexico_Estadode_cities_Toluca = UsePN (mkPN "Toluca") ;
-Countries_BR_provinces_Parana_cities_Colombo = UsePN (mkPN "Colombo") ;
-Countries_TR_provinces_Kars_cities_Kars = UsePN (mkPN "Kars") ;
-Countries_USA_provinces_California_cities_Fullerton = UsePN (mkPN "Fullerton") ;
-Countries_TJ_provinces_Gansu_cities_Wuwei = UsePN (mkPN "Wuwei") ;
-Countries_TJ_provinces_Hebei_cities_Shijiazhuang = UsePN (mkPN "Shijiazhuang") ;
-Countries_PE_provinces_MadredeDios_cities_PuertoMaldonado = UsePN (mkPN "Puerto Maldonado") ;
-Countries_NOK_cities_Nampo = UsePN (mkPN "Nampo") ;
-Countries_CO_provinces_Huila = UsePN (mkPN "Huila") ;
-Namibia = UsePN (mkPN "Namibia") ;
-Countries_AUS_provinces_NewSouthWales_cities_Newcastle = UsePN (mkPN "Newcastle") ;
-Countries_PA_provinces_Colon_cities_Colon = UsePN (mkPN "Colon") ;
-Countries_MAL_provinces_Melaka = UsePN (mkPN "Melaka") ;
-Countries_USA_provinces_Virginia_cities_Richmond = UsePN (mkPN "Richmond") ;
-Countries_D_provinces_Bayern = UsePN (mkPN "Bayern") ;
-Countries_SUD_provinces_AalianNil_cities_Malakal = UsePN (mkPN "Malakal") ;
-Countries_E_provinces_Andalusia_cities_Huelva = UsePN (mkPN "Huelva") ;
-Organizations_ILO = UsePN (mkPN "International Labor Organization") ;
-Countries_BR_provinces_SaoPaulo_cities_Itapetininga = UsePN (mkPN "Itapetininga") ;
-Rivers_Suchona = UsePN (mkPN "Suchona") ;
-Countries_MEX_provinces_Sinaloa_cities_LosMochis = UsePN (mkPN "Los Mochis") ;
-Countries_TJ_provinces_Guangdong_cities_Foshan = UsePN (mkPN "Foshan") ;
-Countries_D_provinces_RheinlandPfalz_cities_Mainz = UsePN (mkPN "Mainz") ;
-Countries_BR_provinces_SaoPaulo_cities_Americana = UsePN (mkPN "Americana") ;
-Countries_PA_provinces_Chiriqui = UsePN (mkPN "Chiriqui") ;
-Countries_RC_provinces_Chiai = UsePN (mkPN "Chiai") ;
-Countries_VN_provinces_Hanoi = UsePN (mkPN "Hanoi") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Beihai = UsePN (mkPN "Beihai") ;
-Countries_TJ_cities_Macau = UsePN (mkPN "Macau") ;
-Countries_USA_provinces_Florida_cities_Miami = UsePN (mkPN "Miami") ;
-Countries_TJ_provinces_Guangdong_cities_Zhanjiang = UsePN (mkPN "Zhanjiang") ;
-Countries_RC_provinces_Tainan_cities_Hsinying = UsePN (mkPN "Hsinying") ;
-Countries_BR_provinces_SaoPaulo_cities_Limeira = UsePN (mkPN "Limeira") ;
-Countries_YV_provinces_Yaracuy_cities_SanFelipe = UsePN (mkPN "San Felipe") ;
-Countries_AL_cities_Korce = UsePN (mkPN "Korce") ;
-Countries_CO_provinces_Guajira_La_cities_Riohacha = UsePN (mkPN "Riohacha") ;
-Countries_IND_provinces_Rajasthan_cities_Jaipur = UsePN (mkPN "Jaipur") ;
-Countries_CR_provinces_Guanacaste = UsePN (mkPN "Guanacaste") ;
-Countries_N_provinces_Rogaland_cities_Stavanger = UsePN (mkPN "Stavanger") ;
-Countries_E_provinces_Madrid = UsePN (mkPN "Madrid") ;
-Countries_WAN_cities_Offa = UsePN (mkPN "Offa") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Indore = UsePN (mkPN "Indore") ;
-Countries_BR_provinces_Goias_cities_Luziania = UsePN (mkPN "Luziania") ;
-Countries_USA_provinces_Virginia_cities_Alexandria = UsePN (mkPN "Alexandria") ;
-Countries_RA_provinces_BuenosAires_cities_MardelPlata = UsePN (mkPN "Mar del Plata") ;
-Countries_CO_provinces_ValledeCauca = UsePN (mkPN "Valle de Cauca") ;
-Countries_GB_provinces_WestMidlands_cities_WestBromwich = UsePN (mkPN "West Bromwich") ;
-Countries_PL_provinces_Katowickie_cities_Bytom = UsePN (mkPN "Bytom") ;
-Countries_SN_provinces_Kaolack = UsePN (mkPN "Kaolack") ;
-Countries_USA_provinces_Minnesota_cities_Minneapolis = UsePN (mkPN "Minneapolis") ;
-Organizations_ACP = UsePN (mkPN "African, Caribbean, and Pacific Countries") ;
-Countries_USA_provinces_California_cities_Fresno = UsePN (mkPN "Fresno") ;
-Mountains_GranitePeak = UsePN (mkPN "Granite Peak") ;
-Countries_R_provinces_Kamchatskayaoblast_cities_PetropavlovskKamchatsky = UsePN (mkPN "Petropavlovsk Kamchatsky") ;
-Countries_A_provinces_UpperAustria_cities_Linz = UsePN (mkPN "Linz") ;
-Switzerland = UsePN (mkPN "Switzerland") ;
-Countries_USA_provinces_Florida_cities_Jacksonville = UsePN (mkPN "Jacksonville") ;
-Countries_IND_provinces_Kerala = UsePN (mkPN "Kerala") ;
-Countries_USA_provinces_Florida = UsePN (mkPN "Florida") ;
-Countries_ANG_provinces_CuanzaNorte_cities_Ndalatando = UsePN (mkPN "Ndalatando") ;
-Countries_NIC_cities_Leon = UsePN (mkPN "Leon") ;
-Countries_P_provinces_Portalegre = UsePN (mkPN "Portalegre") ;
-Countries_RC_provinces_Taichung = UsePN (mkPN "Taichung") ;
-Countries_TR_provinces_Balikesir = UsePN (mkPN "Balikesir") ;
-Deserts_Tanami = UsePN (mkPN "Tanami") ;
-Countries_P_provinces_Setubal = UsePN (mkPN "Setubal") ;
-Countries_TJ_provinces_Shandong_cities_Longkou = UsePN (mkPN "Longkou") ;
-Countries_R_provinces_Chelyabinskayaoblast = UsePN (mkPN "Chelyabinskaya oblast") ;
-Countries_USA_provinces_California_cities_Norwalk = UsePN (mkPN "Norwalk") ;
-Countries_G_cities_Libreville = UsePN (mkPN "Libreville") ;
-Countries_B_provinces_Brabant = UsePN (mkPN "Brabant") ;
-Countries_CH_provinces_ZH_cities_Winterthur = UsePN (mkPN "Winterthur") ;
-Countries_S_provinces_Orebro = UsePN (mkPN "Orebro") ;
-Countries_I_provinces_Calabria = UsePN (mkPN "Calabria") ;
-Countries_TR_provinces_Kirsehir_cities_Kirsehir = UsePN (mkPN "Kirsehir") ;
-Countries_USA_provinces_Michigan_cities_AnnArbor = UsePN (mkPN "Ann Arbor") ;
-Islands_Sanday = UsePN (mkPN "Sanday") ;
-Mountains_Aconcagua = UsePN (mkPN "Aconcagua") ;
-Countries_MYA_provinces_Sagaing = UsePN (mkPN "Sagaing") ;
-Countries_NL_provinces_NoordHolland_cities_Haarlem = UsePN (mkPN "Haarlem") ;
-Countries_A_provinces_Tyrol_cities_Innsbruck = UsePN (mkPN "Innsbruck") ;
-Countries_RI_cities_Jakarta = UsePN (mkPN "Jakarta") ;
-Countries_IND_provinces_Bihar_cities_BokaraSteelCity = UsePN (mkPN "Bokara Steel City") ;
-Countries_TJ_provinces_Zhejiang_cities_Jiaxing = UsePN (mkPN "Jiaxing") ;
-Countries_USA_provinces_California_cities_GardenGrove = UsePN (mkPN "Garden Grove") ;
-Countries_THA_provinces_NakhonPhanom = UsePN (mkPN "Nakhon Phanom") ;
-Countries_BR_provinces_RiodeJaneiro_cities_BelfortRoxo = UsePN (mkPN "Belfort Roxo") ;
-Countries_J_provinces_Osaka = UsePN (mkPN "Osaka") ;
-Countries_C_provinces_Granma_cities_Manzanillo = UsePN (mkPN "Manzanillo") ;
-Countries_HCA_provinces_Cortes = UsePN (mkPN "Cortes") ;
-Countries_SF_provinces_Uusimaa_cities_Espoo = UsePN (mkPN "Espoo") ;
-Countries_CO_provinces_Guainia = UsePN (mkPN "Guainia") ;
-Countries_CH_provinces_BE = UsePN (mkPN "BE") ;
-Countries_R_provinces_Nizhegorodskayaoblast_cities_NizhniyNovgorod = UsePN (mkPN "Nizhniy Novgorod") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Paderborn = UsePN (mkPN "Paderborn") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Bochum = UsePN (mkPN "Bochum") ;
-Countries_TJ_provinces_NeiMonggol_cities_Linhe = UsePN (mkPN "Linhe") ;
-Countries_PL_provinces_Opolskie_cities_Opole = UsePN (mkPN "Opole") ;
-Islands_Lipari = UsePN (mkPN "Lipari") ;
-Countries_BD_cities_Chittagong = UsePN (mkPN "Chittagong") ;
-Countries_RA_provinces_Neuquen_cities_Neuquen = UsePN (mkPN "Neuquen") ;
-Countries_IRQ_provinces_Dahuk = UsePN (mkPN "Dahuk") ;
-Countries_PL_provinces_Bialostockie_cities_Bialystok = UsePN (mkPN "Bialystok") ;
-Countries_PE_provinces_LaLibertad_cities_Trujillo = UsePN (mkPN "Trujillo") ;
-Countries_D_provinces_Niedersachsen_cities_Oldenburg = UsePN (mkPN "Oldenburg") ;
-Countries_UA_provinces_Dnipropetrovska_cities_Dnipropetrovsk = UsePN (mkPN "Dnipropetrovsk") ;
-Countries_CH_provinces_AR = UsePN (mkPN "AR") ;
-Guinea_Bissau = UsePN (mkPN "Guinea-Bissau") ;
-Countries_HCA_provinces_ElParaiso_cities_Yuscaran = UsePN (mkPN "Yuscaran") ;
-Organizations_UNFICYP = UsePN (mkPN "United Nations Force in Cyprus") ;
-Countries_IND_provinces_DamanandDiu = UsePN (mkPN "Daman and Diu") ;
-Islands_Kos = UsePN (mkPN "Kos") ;
-Countries_TJ_provinces_Anhui_cities_Wuhu = UsePN (mkPN "Wuhu") ;
-Countries_R_provinces_Kaluzhskayaoblast_cities_Obninsk = UsePN (mkPN "Obninsk") ;
-Countries_NL_provinces_Drenthe_cities_Assen = UsePN (mkPN "Assen") ;
-Mountains_BlueMountainPeak = UsePN (mkPN "Blue Mountain Peak") ;
-Countries_R_provinces_Lipetskayaoblast = UsePN (mkPN "Lipetskaya oblast") ;
-Countries_IR_provinces_Yazd_cities_Yazd = UsePN (mkPN "Yazd") ;
-Countries_IR_provinces_Kordestan_cities_Sanandaj = UsePN (mkPN "Sanandaj") ;
-Countries_H_provinces_Veszprem = UsePN (mkPN "Veszprem") ;
-Countries_TR_provinces_Nigde_cities_Nigde = UsePN (mkPN "Nigde") ;
-Nepal = UsePN (mkPN "Nepal") ;
-Countries_cid_cia_Guernsey = UsePN (mkPN "Guernsey") ;
-Countries_PA_provinces_LosSantos_cities_LasTablas = UsePN (mkPN "Las Tablas") ;
-Countries_R_provinces_Kurganskayaoblast_cities_Kurgan = UsePN (mkPN "Kurgan") ;
-Countries_PE_provinces_Arequipa_cities_Arequipa = UsePN (mkPN "Arequipa") ;
-Countries_J_provinces_Tochigi_cities_Utsonomiya = UsePN (mkPN "Utsonomiya") ;
-Countries_BR_provinces_Parana_cities_Apucarana = UsePN (mkPN "Apucarana") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Nilopolis = UsePN (mkPN "Nilopolis") ;
-Countries_GB_provinces_SouthYorkshire_cities_Rotherham = UsePN (mkPN "Rotherham") ;
-Countries_PL_provinces_Siedleckie = UsePN (mkPN "Siedleckie") ;
-Countries_F_provinces_RhoneAlpes = UsePN (mkPN "Rhone Alpes") ;
-Countries_PK_cities_Gujrat = UsePN (mkPN "Gujrat") ;
-Countries_RI_cities_PangkalPinang = UsePN (mkPN "Pangkal Pinang") ;
-Countries_USA_provinces_Delaware_cities_Dover = UsePN (mkPN "Dover") ;
-Countries_SF_provinces_Pohjols_Karjala = UsePN (mkPN "Pohjols-Karjala") ;
-Countries_USA_provinces_Arizona = UsePN (mkPN "Arizona") ;
-Countries_MEX_provinces_QuintanaRoo_cities_Cancun = UsePN (mkPN "Cancun") ;
-Countries_RL_cities_Beirut = UsePN (mkPN "Beirut") ;
-Countries_ET_provinces_ElBuhayra = UsePN (mkPN "El Buhayra") ;
-Rivers_Kolyma = UsePN (mkPN "Kolyma") ;
-Lakes_CaspianSea = UsePN (mkPN "Caspian Sea") ;
-Lakes_LakeVictoria = UsePN (mkPN "Lake Victoria") ;
-Countries_MEX_provinces_Durango = UsePN (mkPN "Durango") ;
-Countries_J_provinces_Miyagi = UsePN (mkPN "Miyagi") ;
-Countries_AUS_provinces_NewSouthWales = UsePN (mkPN "New South Wales") ;
-Seas_YellowSea = UsePN (mkPN "Yellow Sea") ;
-TrinidadAndTobago = UsePN (mkPN "Trinidad and Tobago") ;
-Countries_GB_provinces_Durham_cities_Darlington = UsePN (mkPN "Darlington") ;
-Countries_UZB_provinces_Toshkent_cities_Olmaliq = UsePN (mkPN "Olmaliq") ;
-Countries_RA_provinces_Catamarca = UsePN (mkPN "Catamarca") ;
-Countries_RWA_cities_Kigali = UsePN (mkPN "Kigali") ;
-Countries_S_provinces_Vasternorrland = UsePN (mkPN "Vasternorrland") ;
-Countries_YV_provinces_Anzoategui_cities_Barcelona = UsePN (mkPN "Barcelona") ;
-Countries_CDN_provinces_YukonTerritory_cities_Whitehorse = UsePN (mkPN "Whitehorse") ;
-Countries_EAK_provinces_RiftValley_cities_Eldoret = UsePN (mkPN "Eldoret") ;
-Countries_USA_provinces_Texas_cities_SanAntonio = UsePN (mkPN "San Antonio") ;
-Countries_CO_provinces_SantanderdelSur_cities_Floridablanca = UsePN (mkPN "Floridablanca") ;
-Countries_EAT_provinces_Iringa_cities_Iringa = UsePN (mkPN "Iringa") ;
-Deserts_Fesan = UsePN (mkPN "Fesan") ;
-Countries_H_provinces_Bekes_cities_Bekescaba = UsePN (mkPN "Bekescaba") ;
-Countries_PE_provinces_Tacna_cities_Tacna = UsePN (mkPN "Tacna") ;
-Countries_MAL_provinces_Sarawak = UsePN (mkPN "Sarawak") ;
-Countries_D_provinces_Hamburg_cities_Hamburg = UsePN (mkPN "Hamburg") ;
-Countries_RA_provinces_LaPampa = UsePN (mkPN "La Pampa") ;
-Countries_GB_provinces_Anglesey = UsePN (mkPN "Anglesey") ;
-Countries_RM_provinces_Fianarantsoa = UsePN (mkPN "Fianarantsoa") ;
-Countries_SN_provinces_Thies = UsePN (mkPN "Thies") ;
-Countries_PL_provinces_Katowickie_cities_Tychy = UsePN (mkPN "Tychy") ;
-Countries_EAT_provinces_Pwani = UsePN (mkPN "Pwani") ;
-Lakes_LakeOkeechobee = UsePN (mkPN "Lake Okeechobee") ;
-Slovenia = UsePN (mkPN "Slovenia") ;
-China = UsePN (mkPN "China") ;
-Countries_NOK_cities_Anju = UsePN (mkPN "Anju") ;
-Countries_RA_provinces_Misiones = UsePN (mkPN "Misiones") ;
-Countries_THA_provinces_Nan = UsePN (mkPN "Nan") ;
-Countries_YV_provinces_Monagas = UsePN (mkPN "Monagas") ;
-Countries_MEX_provinces_Zacatecas_cities_Zacatecas = UsePN (mkPN "Zacatecas") ;
-Countries_PL_provinces_Ostroleckie = UsePN (mkPN "Ostroleckie") ;
-Organizations_WCL = UsePN (mkPN "World Confederation of Labor") ;
-Countries_RI_cities_Surakarta = UsePN (mkPN "Surakarta") ;
-Countries_AUS_provinces_CocosIslands_cities_BantamVillage = UsePN (mkPN "Bantam Village") ;
-Countries_PK_cities_Nawabshah = UsePN (mkPN "Nawabshah") ;
-Countries_cid_cia_Jersey = UsePN (mkPN "Jersey") ;
-Countries_E_provinces_Madrid_cities_Fuenlabrada = UsePN (mkPN "Fuenlabrada") ;
-Countries_TJ_provinces_Guangdong_cities_Zhaoqing = UsePN (mkPN "Zhaoqing") ;
-Countries_GB_provinces_Staffordshire_cities_NewcastleunderLyme = UsePN (mkPN "Newcastle under Lyme") ;
-Lakes_LakeKariba = UsePN (mkPN "Lake Kariba") ;
-Countries_IND_provinces_Manipur_cities_Imphal = UsePN (mkPN "Imphal") ;
-Countries_IRQ_provinces_Baghdad_cities_Baghdad = UsePN (mkPN "Baghdad") ;
-Countries_R_provinces_Rep_ofTatarstan_cities_Almetyevsk = UsePN (mkPN "Almetyevsk") ;
-Countries_A_provinces_Carinthia = UsePN (mkPN "Carinthia") ;
-Countries_PL_provinces_Bialostockie = UsePN (mkPN "Bialostockie") ;
-Countries_F_provinces_ChampagneArdenne = UsePN (mkPN "Champagne Ardenne") ;
-Countries_BR_provinces_RioGrandedoSul_cities_PortoAlegre = UsePN (mkPN "Porto Alegre") ;
-Countries_USA_provinces_Michigan_cities_Flint = UsePN (mkPN "Flint") ;
-Countries_BR_provinces_SaoPaulo_cities_Carapicuiba = UsePN (mkPN "Carapicuiba") ;
-Countries_TJ_provinces_Jiangsu_cities_Liyang = UsePN (mkPN "Liyang") ;
-Countries_P_provinces_CasteloBranco = UsePN (mkPN "Castelo Branco") ;
-Countries_R_provinces_Rep_ofKalmykiya = UsePN (mkPN "Rep. of Kalmykiya") ;
-Countries_RO_provinces_Vaslui_cities_Vaslui = UsePN (mkPN "Vaslui") ;
-Countries_SF_provinces_Kuopio = UsePN (mkPN "Kuopio") ;
-Mountains_Feldberg = UsePN (mkPN "Feldberg") ;
-Countries_THA_provinces_BangkokMetropolis = UsePN (mkPN "Bangkok Metropolis") ;
-Islands_Jamaica = UsePN (mkPN "Jamaica") ;
-Countries_VN_provinces_VinhLong = UsePN (mkPN "Vinh Long") ;
-Countries_R_provinces_Volgogradskayaoblast_cities_Volzhsky = UsePN (mkPN "Volzhsky") ;
-Countries_J_provinces_Iwate_cities_Morioka = UsePN (mkPN "Morioka") ;
-Countries_GB_provinces_Kent_cities_Maidstone = UsePN (mkPN "Maidstone") ;
-Organizations_CIS = UsePN (mkPN "Commonwealth of Independent States") ;
-Countries_PL_provinces_Zielonogorskie_cities_ZielonaGora = UsePN (mkPN "Zielona Gora") ;
-Countries_RT_cities_Lome = UsePN (mkPN "Lome") ;
-Countries_BR_provinces_SaoPaulo_cities_Taubate = UsePN (mkPN "Taubate") ;
-Countries_E_provinces_CastileandLeon_cities_Leon = UsePN (mkPN "Leon") ;
-Islands_SaintKitts = UsePN (mkPN "Saint Kitts") ;
-Countries_RSA_cities_Lekoa = UsePN (mkPN "Lekoa") ;
-Countries_VN_provinces_QuangNamDaNang = UsePN (mkPN "Quang Nam Da Nang") ;
-Countries_MOC_provinces_Sofala = UsePN (mkPN "Sofala") ;
-Countries_R_provinces_Belgorodskayaoblast_cities_StaryOskol = UsePN (mkPN "Stary Oskol") ;
-Islands_Panarea = UsePN (mkPN "Panarea") ;
-Countries_BR_cities_Contagem = UsePN (mkPN "Contagem") ;
-Countries_TJ_provinces_GuangxiZhuangzu_cities_Wuzhou = UsePN (mkPN "Wuzhou") ;
-Slovakia = UsePN (mkPN "Slovakia") ;
-Organizations_AFESD = UsePN (mkPN "Arab Fund for Economic and Social Development") ;
-Countries_PL_provinces_Czestochowskie = UsePN (mkPN "Czestochowskie") ;
-Rivers_Save = UsePN (mkPN "Save") ;
-Countries_UA_provinces_Donetska_cities_Mariupol = UsePN (mkPN "Mariupol") ;
-Countries_IND_provinces_Tripura_cities_Agartala = UsePN (mkPN "Agartala") ;
-Countries_CR_provinces_Heredia_cities_Heredia = UsePN (mkPN "Heredia") ;
-Countries_WAN_cities_DebaHabe = UsePN (mkPN "Deba Habe") ;
-Countries_USA_provinces_Arizona_cities_Tempe = UsePN (mkPN "Tempe") ;
-Rivers_Uelle = UsePN (mkPN "Uelle") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoCarlos = UsePN (mkPN "Sao Carlos") ;
-Countries_F_provinces_Bretagne_cities_Brest = UsePN (mkPN "Brest") ;
-Rivers_Tana = UsePN (mkPN "Tana") ;
-Countries_IL_provinces_North_cities_Nazareth = UsePN (mkPN "Nazareth") ;
-Countries_Z_provinces_Northwestern = UsePN (mkPN "Northwestern") ;
-Countries_TR_provinces_Edirne_cities_Edirne = UsePN (mkPN "Edirne") ;
-Countries_Z_provinces_Lusaka_cities_Lusaka = UsePN (mkPN "Lusaka") ;
-Countries_ZRE_provinces_KasaiOccidental_cities_Tshikapa = UsePN (mkPN "Tshikapa") ;
-Countries_VN_provinces_HaGiang = UsePN (mkPN "Ha Giang") ;
-Countries_IRQ_provinces_AlQadisiyah_cities_Diwaniyah = UsePN (mkPN "Diwaniyah") ;
-Countries_P_provinces_Lisbon_cities_Almada = UsePN (mkPN "Almada") ;
-Countries_R_provinces_KarachayevoCherkesskRep__cities_Cherkessk = UsePN (mkPN "Cherkessk") ;
-Countries_TR_cities_Hatay = UsePN (mkPN "Hatay") ;
-Countries_IND_provinces_WestBengal_cities_Haora = UsePN (mkPN "Haora") ;
-Countries_BR_provinces_Pernambuco_cities_JaboataodosGuararapes = UsePN (mkPN "Jaboatao dos Guararapes") ;
-Countries_IND_provinces_UttarPradesh_cities_Bareilly = UsePN (mkPN "Bareilly") ;
-Countries_RSA_cities_Alexandra = UsePN (mkPN "Alexandra") ;
-Countries_R_provinces_Astrakhanskayaoblast = UsePN (mkPN "Astrakhanskaya oblast") ;
-Rivers_Bahrel_Gasal = UsePN (mkPN "Bahr el-Gasal") ;
-Countries_TJ_provinces_Hunan_cities_Hengyang = UsePN (mkPN "Hengyang") ;
-Countries_GB_provinces_Buckinghamshire_cities_Wycombe = UsePN (mkPN "Wycombe") ;
-Uganda = UsePN (mkPN "Uganda") ;
-Countries_GR_provinces_Thessalia = UsePN (mkPN "Thessalia") ;
-Countries_R_provinces_Nizhegorodskayaoblast_cities_Arzamas = UsePN (mkPN "Arzamas") ;
-Countries_USA_provinces_Kansas_cities_KansasCity = UsePN (mkPN "Kansas City") ;
-Countries_R_provinces_Penzenskayaoblast_cities_Penza = UsePN (mkPN "Penza") ;
-Countries_IRQ_provinces_AdTamim = UsePN (mkPN "Ad Tamim") ;
-Countries_YV_provinces_Merida = UsePN (mkPN "Merida") ;
-Countries_MEX_provinces_Aguascalientes = UsePN (mkPN "Aguascalientes") ;
-Seas_AtlanticOcean = UsePN (mkPN "Atlantic Ocean") ;
-Countries_EW_cities_Tallinn = UsePN (mkPN "Tallinn") ;
-Countries_WS_cities_Apia = UsePN (mkPN "Apia") ;
-Lakes_LagodeChapala = UsePN (mkPN "Lago de Chapala") ;
-Countries_PE_provinces_Ucayali = UsePN (mkPN "Ucayali") ;
-Countries_IND_provinces_DadraandNagarHaveli_cities_Silvassa = UsePN (mkPN "Silvassa") ;
-Countries_GB_provinces_Leicestershire = UsePN (mkPN "Leicestershire") ;
-Countries_RC_provinces_Hualien_cities_Hualien = UsePN (mkPN "Hualien") ;
-Organizations_UNCRO = UsePN (mkPN "United Nations Confidence Restoration Operation in Croatia") ;
-Countries_R_provinces_Moskva = UsePN (mkPN "Moskva") ;
-Countries_TJ_provinces_Heilongjiang_cities_Zhaodong = UsePN (mkPN "Zhaodong") ;
-Countries_RO_provinces_Ialomita_cities_Slobozia = UsePN (mkPN "Slobozia") ;
-Countries_PK_cities_Lyallpur = UsePN (mkPN "Lyallpur") ;
-Countries_D_provinces_Brandenburg = UsePN (mkPN "Brandenburg") ;
-Countries_RI_cities_Madiun = UsePN (mkPN "Madiun") ;
-Countries_IRQ_provinces_Dahuk_cities_Dahuk = UsePN (mkPN "Dahuk") ;
-Countries_EAT_provinces_Morogoro_cities_Morogoro = UsePN (mkPN "Morogoro") ;
-Countries_BR_provinces_RiodeJaneiro_cities_VoltaRedonda = UsePN (mkPN "Volta Redonda") ;
-Organizations_UNHCR = UsePN (mkPN "United Nations Office of the High Commissioner for Refugees") ;
-Rivers_Hwangho = UsePN (mkPN "Hwangho") ;
-Countries_BR_provinces_SaoPaulo_cities_SantoAndre = UsePN (mkPN "Santo Andre") ;
-Countries_RP_cities_Pasay = UsePN (mkPN "Pasay") ;
-Countries_ROK_cities_Cheju = UsePN (mkPN "Cheju") ;
-Countries_LAR_cities_Tripoli = UsePN (mkPN "Tripoli") ;
-Tanzania = UsePN (mkPN "Tanzania") ;
-Lakes_BarragedeMbakaou = UsePN (mkPN "Barrage de Mbakaou") ;
-Countries_TJ_provinces_Hubei_cities_Yichang = UsePN (mkPN "Yichang") ;
-Countries_Z_provinces_Copperbelt_cities_Ndola = UsePN (mkPN "Ndola") ;
-Countries_USA_provinces_Hawaii_cities_Hilo = UsePN (mkPN "Hilo") ;
-Rivers_Tshuapa = UsePN (mkPN "Tshuapa") ;
-Countries_RA_provinces_Misiones_cities_Posadas = UsePN (mkPN "Posadas") ;
-Countries_BR_provinces_MinasGerais_cities_Uberaba = UsePN (mkPN "Uberaba") ;
-Countries_USA_provinces_Illinois_cities_Chicago = UsePN (mkPN "Chicago") ;
-Countries_RO_provinces_Iasi = UsePN (mkPN "Iasi") ;
-Countries_CDN_provinces_NewBrunswick_cities_Fredericton = UsePN (mkPN "Fredericton") ;
-Countries_TJ_provinces_Henan_cities_Zhoukou = UsePN (mkPN "Zhoukou") ;
-Countries_ET_provinces_Sharqiya = UsePN (mkPN "Sharqiya") ;
-Countries_R_provinces_Vladimirskayaoblast = UsePN (mkPN "Vladimirskaya oblast") ;
-Countries_NZ_cities_Wellington = UsePN (mkPN "Wellington") ;
-Countries_IR_provinces_Zanjan_cities_Zanjan = UsePN (mkPN "Zanjan") ;
-Countries_A_provinces_Vienna_cities_Vienna = UsePN (mkPN "Vienna") ;
-Lakes_LakeEtoscha = UsePN (mkPN "Lake Etoscha") ;
-Countries_ANG_provinces_CuanzaNorte = UsePN (mkPN "Cuanza Norte") ;
-Countries_GB_provinces_Hampshire_cities_Eastleigh = UsePN (mkPN "Eastleigh") ;
-Countries_GB_provinces_Merseyside_cities_Liverpool = UsePN (mkPN "Liverpool") ;
-Countries_TJ_provinces_Shandong_cities_Heze = UsePN (mkPN "Heze") ;
-Countries_WAN_cities_Oshogbo = UsePN (mkPN "Oshogbo") ;
-Countries_TJ_cities_HongKong = UsePN (mkPN "Hong Kong") ;
-Countries_R_provinces_Rostovskayaoblast_cities_Volgodonsk = UsePN (mkPN "Volgodonsk") ;
-Countries_F_provinces_Lorraine = UsePN (mkPN "Lorraine") ;
-Countries_PK_cities_Hyderabad = UsePN (mkPN "Hyderabad") ;
-Countries_USA_provinces_California_cities_MorenoValley = UsePN (mkPN "Moreno Valley") ;
-Countries_ETH_cities_Gonder = UsePN (mkPN "Gonder") ;
-Mountains_Galdhoeppig = UsePN (mkPN "Galdhoeppig") ;
-Countries_GB_provinces_SouthYorkshire_cities_Doncaster = UsePN (mkPN "Doncaster") ;
-Countries_USA_provinces_Ohio_cities_Toledo = UsePN (mkPN "Toledo") ;
-Ethiopia = UsePN (mkPN "Ethiopia") ;
-Organizations_ICAO = UsePN (mkPN "International Civil Aviation Organization") ;
-Countries_I_provinces_Umbria_cities_Perugia = UsePN (mkPN "Perugia") ;
-Organizations_MINURSO = UsePN (mkPN "United Nations Mission for the Referendum in Western Sahara") ;
-Lakes_OzeroPskovskoje = UsePN (mkPN "Ozero Pskovskoje") ;
-Countries_H_provinces_HajduBihar = UsePN (mkPN "Hajdu Bihar") ;
-Countries_BR_provinces_SantaCatarina = UsePN (mkPN "Santa Catarina") ;
-Countries_VN_provinces_KienGiang = UsePN (mkPN "Kien Giang") ;
-Countries_R_provinces_Permskayaoblast_cities_Berezniki = UsePN (mkPN "Berezniki") ;
-Countries_USA_provinces_Nevada = UsePN (mkPN "Nevada") ;
-Countries_R_provinces_Yaroslavskayaoblast_cities_Rybinsk = UsePN (mkPN "Rybinsk") ;
-Countries_RA_provinces_SantiagodeEstero = UsePN (mkPN "Santiago de Estero") ;
-Countries_R_provinces_Sverdlovskayaoblast_cities_Yekaterinburg = UsePN (mkPN "Yekaterinburg") ;
-Countries_IND_provinces_MadhyaPradesh = UsePN (mkPN "Madhya Pradesh") ;
-BosniaAndHerzegovina = UsePN (mkPN "Bosnia and Herzegovina") ;
-Countries_ES_provinces_SantaAna_cities_SantaAna = UsePN (mkPN "Santa Ana") ;
-Countries_PE_provinces_Cajamarca_cities_Cajamarca = UsePN (mkPN "Cajamarca") ;
-Countries_cid_cia_South_Georgia_and_the_South_Sandwich_Islands = UsePN (mkPN "South Georgia and the South Sandwich Islands") ;
-Countries_MEX_provinces_Tlaxcala_cities_Tlaxcala = UsePN (mkPN "Tlaxcala") ;
-Countries_BR_provinces_SaoPaulo_cities_Marilia = UsePN (mkPN "Marilia") ;
-Countries_RC_provinces_Taipei_cities_Panchiao = UsePN (mkPN "Panchiao") ;
-Countries_USA_provinces_WestVirginia = UsePN (mkPN "West Virginia") ;
-Countries_USA_provinces_California_cities_ElMonte = UsePN (mkPN "El Monte") ;
-Countries_THA_provinces_Krabi = UsePN (mkPN "Krabi") ;
-Countries_HCA_provinces_Atlantida_cities_Tela = UsePN (mkPN "Tela") ;
-Countries_UZB_provinces_Khorazm = UsePN (mkPN "Khorazm") ;
-Countries_TJ_provinces_Sichuan_cities_Daxian = UsePN (mkPN "Daxian") ;
-Countries_UA_provinces_Vinnytska_cities_Vinnytsya = UsePN (mkPN "Vinnytsya") ;
-Countries_P_provinces_Lisbon_cities_Lisbon = UsePN (mkPN "Lisbon") ;
-Countries_ANG_provinces_Moxico_cities_Luena = UsePN (mkPN "Luena") ;
-Countries_RC_provinces_Penghu = UsePN (mkPN "Penghu") ;
-Lakes_LakeKalla = UsePN (mkPN "Lake Kalla") ;
-Countries_THA_provinces_Mukdahan = UsePN (mkPN "Mukdahan") ;
-Guatemala = UsePN (mkPN "Guatemala") ;
-Countries_MEX_provinces_Chiapas_cities_Tonala = UsePN (mkPN "Tonala") ;
-Rivers_RioGrande = UsePN (mkPN "Rio Grande") ;
-Islands_Mindoro = UsePN (mkPN "Mindoro") ;
-Countries_TJ_provinces_Sichuan_cities_Mianyang = UsePN (mkPN "Mianyang") ;
-Deserts_Tenere = UsePN (mkPN "Tenere") ;
-Countries_TJ_provinces_Hebei_cities_Renqiu = UsePN (mkPN "Renqiu") ;
-Countries_THA_provinces_Loei = UsePN (mkPN "Loei") ;
-Tunisia = UsePN (mkPN "Tunisia") ;
-Countries_J_provinces_Iwate = UsePN (mkPN "Iwate") ;
-Countries_ZRE_provinces_Kivu = UsePN (mkPN "Kivu") ;
-Countries_RP_cities_Zamboanga = UsePN (mkPN "Zamboanga") ;
-Countries_BR_provinces_Paraiba_cities_SantaRita = UsePN (mkPN "Santa Rita") ;
-Countries_ZRE_provinces_Kivu_cities_Butembo = UsePN (mkPN "Butembo") ;
-Countries_ES_provinces_Ahuachapan = UsePN (mkPN "Ahuachapan") ;
-Countries_ANG_provinces_LundaNorte = UsePN (mkPN "Lunda Norte") ;
-Countries_IR_provinces_Hamadan = UsePN (mkPN "Hamadan") ;
-Countries_UA_provinces_Chernivetska_cities_Chernivtsi = UsePN (mkPN "Chernivtsi") ;
-Countries_PL_provinces_Nowosadeckie_cities_NowySacz = UsePN (mkPN "Nowy Sacz") ;
-Countries_OM_cities_Muscat = UsePN (mkPN "Muscat") ;
-Countries_KAZ_provinces_Pavlodar_cities_Pavlodar = UsePN (mkPN "Pavlodar") ;
-Countries_RO_provinces_Vrancea = UsePN (mkPN "Vrancea") ;
-Countries_BR_provinces_SaoPaulo_cities_TaboaodaSerra = UsePN (mkPN "Taboao da Serra") ;
-Countries_MAL_provinces_Sabah_cities_Sandakan = UsePN (mkPN "Sandakan") ;
-Countries_R_provinces_Novgorodskayaoblast_cities_Novgorod = UsePN (mkPN "Novgorod") ;
-Countries_H_provinces_Szolnok_cities_Szolnok = UsePN (mkPN "Szolnok") ;
-Islands_Salina = UsePN (mkPN "Salina") ;
-Countries_F_provinces_ProvenceCotedAzur = UsePN (mkPN "Provence Cote dAzur") ;
-Countries_CH_provinces_SZ = UsePN (mkPN "SZ") ;
-Countries_BR_provinces_EspiritoSanto_cities_Cariacica = UsePN (mkPN "Cariacica") ;
-Countries_TJ_provinces_Hunan_cities_Lengshuijiang = UsePN (mkPN "Lengshuijiang") ;
-Lakes_LakeVolta = UsePN (mkPN "Lake Volta") ;
-Countries_ET_provinces_ElBuhayra_cities_KafrelDauwar = UsePN (mkPN "Kafr el Dauwar") ;
-Countries_TJ_provinces_Jiangxi_cities_Yichun = UsePN (mkPN "Yichun") ;
-Countries_RSA_provinces_NorthernCape_cities_Kimberley = UsePN (mkPN "Kimberley") ;
-Countries_TJ_provinces_Jilin_cities_Tonghua = UsePN (mkPN "Tonghua") ;
-Countries_BR_provinces_RioGrandedoNorte_cities_Natal = UsePN (mkPN "Natal") ;
-Countries_TJ_provinces_Liaoning_cities_Beipiao = UsePN (mkPN "Beipiao") ;
-Countries_TJ_provinces_Jiangsu_cities_Xinghua = UsePN (mkPN "Xinghua") ;
-Countries_H_provinces_GyorSopron = UsePN (mkPN "Gyor Sopron") ;
-Countries_R_provinces_Stavropolskykray = UsePN (mkPN "Stavropolsky kray") ;
-Countries_ES_provinces_Chalatenango = UsePN (mkPN "Chalatenango") ;
-Countries_IR_provinces_AzarbayianeGharbt = UsePN (mkPN "Azarbayian e Gharbt") ;
-Countries_HCA_provinces_ElParaiso_cities_Danli = UsePN (mkPN "Danli") ;
-Countries_IR_provinces_AzarbayianeSharqi = UsePN (mkPN "Azarbayian e Sharqi") ;
-Countries_BR_provinces_MatoGrosso_cities_VarzeaGrande = UsePN (mkPN "Varzea Grande") ;
-Countries_ZRE_provinces_KasaiOriental_cities_MbujiMayi = UsePN (mkPN "Mbuji Mayi") ;
-Countries_MEX_provinces_Nayarit_cities_Tepic = UsePN (mkPN "Tepic") ;
-Organizations_ABEDA = UsePN (mkPN "Arab Bank for Economic Development in Africa") ;
-Countries_PL_provinces_Chelmskie = UsePN (mkPN "Chelmskie") ;
-Countries_J_provinces_Tottori_cities_Tottori = UsePN (mkPN "Tottori") ;
-Countries_WAN_cities_Aarri = UsePN (mkPN "Aarri") ;
-Countries_GR_cities_Patrai = UsePN (mkPN "Patrai") ;
-Countries_TR_provinces_Corum = UsePN (mkPN "Corum") ;
-Deserts_HamadaduDraa = UsePN (mkPN "Hamada du Draa") ;
-Countries_D_provinces_BadenWurttemberg_cities_Karlsruhe = UsePN (mkPN "Karlsruhe") ;
-Countries_TM_provinces_Leban = UsePN (mkPN "Leban") ;
-Countries_CH_provinces_GE = UsePN (mkPN "GE") ;
-Countries_cid_cia_Gaza_Strip = UsePN (mkPN "Gaza Strip") ;
-Countries_TJ_provinces_Jiangsu_cities_Dongtai = UsePN (mkPN "Dongtai") ;
-Countries_NL_provinces_ZuidHolland_cities_Leiden = UsePN (mkPN "Leiden") ;
-Countries_ET_provinces_SinaalJanubiyah_cities_ElTur = UsePN (mkPN "El Tur") ;
-Countries_TJ_provinces_Heilongjiang_cities_Anda = UsePN (mkPN "Anda") ;
-Countries_R_provinces_Rep_ofTyva = UsePN (mkPN "Rep. of Tyva") ;
-Countries_THA_provinces_SingBuri = UsePN (mkPN "Sing Buri") ;
-Countries_RI_cities_Sukabumi = UsePN (mkPN "Sukabumi") ;
-Countries_TJ_provinces_Shandong = UsePN (mkPN "Shandong") ;
-Countries_C_provinces_SanctiSpiritus = UsePN (mkPN "Sancti Spiritus") ;
-Countries_SN_provinces_Kaolack_cities_Kaolack = UsePN (mkPN "Kaolack") ;
-Countries_TJ_provinces_Jiangxi_cities_Fuzhou = UsePN (mkPN "Fuzhou") ;
-Countries_USA_provinces_Virginia_cities_Arlington = UsePN (mkPN "Arlington") ;
-Countries_IL_provinces_South = UsePN (mkPN "South") ;
-Countries_cid_cia_Netherlands_Antilles_cities_Willemstad = UsePN (mkPN "Willemstad") ;
-Countries_USA_provinces_Wisconsin_cities_Milwaukee = UsePN (mkPN "Milwaukee") ;
-Deserts_Kalahari = UsePN (mkPN "Kalahari") ;
-Lakes_LakeOri = UsePN (mkPN "Lake Ori") ;
-Countries_BR_provinces_SaoPaulo_cities_Jundiai = UsePN (mkPN "Jundiai") ;
-Countries_EAT_provinces_Lindi = UsePN (mkPN "Lindi") ;
-Countries_J_provinces_Chiba_cities_Chiba = UsePN (mkPN "Chiba") ;
-Countries_MYA_provinces_Yangon_cities_Rangoon = UsePN (mkPN "Rangoon") ;
-Countries_RO_provinces_Braila_cities_Braila = UsePN (mkPN "Braila") ;
-Islands_Lolland = UsePN (mkPN "Lolland") ;
-Albania = UsePN (mkPN "Albania") ;
-Countries_USA_provinces_NewMexico_cities_Albuquerque = UsePN (mkPN "Albuquerque") ;
-Countries_HCA_provinces_FranciscoMorazan_cities_Tegucigalpa = UsePN (mkPN "Tegucigalpa") ;
-Countries_BR_provinces_RiodeJaneiro_cities_NovaFriburgo = UsePN (mkPN "Nova Friburgo") ;
-Countries_IRQ_provinces_SalahadDin = UsePN (mkPN "Salah ad Din") ;
-Countries_TJ_provinces_Shandong_cities_Laiyang = UsePN (mkPN "Laiyang") ;
-Countries_TJ_provinces_Jiangsu_cities_Changshu = UsePN (mkPN "Changshu") ;
-Mozambique = UsePN (mkPN "Mozambique") ;
-Countries_UZB_provinces_Farghona = UsePN (mkPN "Farghona") ;
-Countries_R_provinces_Samarskayaoblast_cities_Novokuybyshevsk = UsePN (mkPN "Novokuybyshevsk") ;
-Countries_PE_provinces_Cuzco = UsePN (mkPN "Cuzco") ;
-Countries_R_provinces_Rep_ofSakha = UsePN (mkPN "Rep. of Sakha") ;
-Countries_GB_provinces_Kent_cities_Sevenoaks = UsePN (mkPN "Sevenoaks") ;
-Countries_RA_provinces_Chubut_cities_ComodoroRivadavia = UsePN (mkPN "Comodoro Rivadavia") ;
-Countries_IR_provinces_Yazd = UsePN (mkPN "Yazd") ;
-Countries_BR_provinces_SantaCatarina_cities_Joinvile = UsePN (mkPN "Joinvile") ;
-Countries_DZ_cities_Setif = UsePN (mkPN "Setif") ;
-Countries_ZRE_provinces_Kivu_cities_Bukavu = UsePN (mkPN "Bukavu") ;
-Countries_TJ_provinces_Shanxi_cities_Linfen = UsePN (mkPN "Linfen") ;
-Countries_CAM_provinces_Centre_cities_Yaounde = UsePN (mkPN "Yaounde") ;
-Countries_UA_provinces_Ternopilska = UsePN (mkPN "Ternopilska") ;
-Countries_SUD_provinces_Darfur = UsePN (mkPN "Darfur") ;
-Countries_WAN_cities_Ikare = UsePN (mkPN "Ikare") ;
-Countries_TR_provinces_Nevsehir = UsePN (mkPN "Nevsehir") ;
-Organizations_G_8 = UsePN (mkPN "Group of 8") ;
-Countries_THA_provinces_Yasothon = UsePN (mkPN "Yasothon") ;
-Countries_THA_provinces_Nonthaburi_cities_Nonthaburi = UsePN (mkPN "Nonthaburi") ;
-Countries_R_provinces_Arkhangelskayaoblast = UsePN (mkPN "Arkhangelskaya oblast") ;
-Countries_ET_provinces_ElIskandariya_munic_cities_ElIskandariya = UsePN (mkPN "El Iskandariya") ;
-Countries_PA_provinces_Panama = UsePN (mkPN "Panama") ;
-Lakes_LakeSaima = UsePN (mkPN "Lake Saima") ;
-Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_PetalingJaya = UsePN (mkPN "Petaling Jaya") ;
-Countries_BR_provinces_SaoPaulo_cities_Osasco = UsePN (mkPN "Osasco") ;
-Countries_RB_cities_Gaborone = UsePN (mkPN "Gaborone") ;
-Countries_F_provinces_PoitouCharentes_cities_Poitiers = UsePN (mkPN "Poitiers") ;
-Countries_MEX_provinces_SanLuisPotosi = UsePN (mkPN "San Luis Potosi") ;
-Countries_UA_provinces_Dnipropetrovska_cities_Dniprodzerzhynsk = UsePN (mkPN "Dniprodzerzhynsk") ;
-Countries_IR_provinces_Bushehr = UsePN (mkPN "Bushehr") ;
-Countries_TJ_provinces_Liaoning_cities_Anshan = UsePN (mkPN "Anshan") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_Kemerovo = UsePN (mkPN "Kemerovo") ;
-Countries_THA_provinces_NakhonPathom = UsePN (mkPN "Nakhon Pathom") ;
-Countries_PA_provinces_Darien_cities_LaPalma = UsePN (mkPN "La Palma") ;
-Countries_RSA_provinces_NorthernProvince = UsePN (mkPN "Northern Province") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Witten = UsePN (mkPN "Witten") ;
-Countries_E_provinces_CastileandLeon_cities_Salamanca = UsePN (mkPN "Salamanca") ;
-Countries_BR_provinces_Goias_cities_Anapolis = UsePN (mkPN "Anapolis") ;
-Countries_KAZ_provinces_Zhambyl = UsePN (mkPN "Zhambyl") ;
-Mountains_NevadodeColima = UsePN (mkPN "Nevado de Colima") ;
-Countries_R_provinces_Kurskayaoblast_cities_Kursk = UsePN (mkPN "Kursk") ;
-Countries_USA_provinces_Louisiana_cities_Shreveport = UsePN (mkPN "Shreveport") ;
-Countries_USA_provinces_Illinois_cities_Springfield = UsePN (mkPN "Springfield") ;
-Countries_VN_provinces_NorthMountainandMidlands = UsePN (mkPN "North Mountain and Midlands") ;
-Countries_BOL_cities_Cochabamba = UsePN (mkPN "Cochabamba") ;
-Rivers_Jug = UsePN (mkPN "Jug") ;
-Countries_MOC_provinces_Manica = UsePN (mkPN "Manica") ;
-Countries_R_provinces_Nizhegorodskayaoblast_cities_Dzerzhinsk = UsePN (mkPN "Dzerzhinsk") ;
-Rivers_Amur = UsePN (mkPN "Amur") ;
-Countries_P_provinces_Lisbon_cities_Barreiro = UsePN (mkPN "Barreiro") ;
-Countries_USA_provinces_California_cities_SanFrancisco = UsePN (mkPN "San Francisco") ;
-Countries_S_provinces_Varmland = UsePN (mkPN "Varmland") ;
-Countries_NOK_cities_Sinpo = UsePN (mkPN "Sinpo") ;
-Countries_E_provinces_Estremadura_cities_Merida = UsePN (mkPN "Merida") ;
-Countries_MEX_provinces_Sinaloa_cities_Culiacan = UsePN (mkPN "Culiacan") ;
-Countries_SN_provinces_Diourbel_cities_Diourbel = UsePN (mkPN "Diourbel") ;
-Countries_EAK_provinces_Nyanza_cities_Kisumu = UsePN (mkPN "Kisumu") ;
-Countries_THA_provinces_UthaiThani = UsePN (mkPN "Uthai Thani") ;
-Countries_NOK_cities_HamhungHungnam = UsePN (mkPN "Hamhung Hungnam") ;
-Countries_ET_provinces_Asyut = UsePN (mkPN "Asyut") ;
-Organizations_EIB = UsePN (mkPN "European Investment Bank") ;
-Countries_RA_provinces_Formosa_cities_Formosa = UsePN (mkPN "Formosa") ;
-Countries_UZB_provinces_Sirdare_cities_Guliston = UsePN (mkPN "Guliston") ;
-Countries_GB_provinces_Newport = UsePN (mkPN "Newport") ;
-Countries_PK_cities_Kasur = UsePN (mkPN "Kasur") ;
-Countries_BR_provinces_MatoGrossodoSul_cities_Dourados = UsePN (mkPN "Dourados") ;
-Mountains_Kebnekaise = UsePN (mkPN "Kebnekaise") ;
-Countries_GB_provinces_Kent_cities_Swale = UsePN (mkPN "Swale") ;
-Countries_IND_provinces_Gujarat_cities_Ahmadabad = UsePN (mkPN "Ahmadabad") ;
-Countries_CAM_provinces_Nordextreme_cities_Maroua = UsePN (mkPN "Maroua") ;
-Countries_RSA_provinces_EasternCape_cities_EastLondon = UsePN (mkPN "East London") ;
-Kiribati = UsePN (mkPN "Kiribati") ;
-Organizations_WFC = UsePN (mkPN "World Food Council") ;
-Countries_GB_provinces_Torfaen = UsePN (mkPN "Torfaen") ;
-Lakes_LakeEyre = UsePN (mkPN "Lake Eyre") ;
-Countries_IND_provinces_Punjab = UsePN (mkPN "Punjab") ;
-Mountains_Montblanc = UsePN (mkPN "Montblanc") ;
-Mountains_MtWhitney = UsePN (mkPN "Mt Whitney") ;
-Countries_S_provinces_Gavleborg = UsePN (mkPN "Gavleborg") ;
-Countries_MEX_provinces_Puebla_cities_Tehuacan = UsePN (mkPN "Tehuacan") ;
-Sudan = UsePN (mkPN "Sudan") ;
-Countries_GB_provinces_Essex_cities_EppingForest = UsePN (mkPN "Epping Forest") ;
-Countries_RA_provinces_Tucuman_cities_SanMigueldeTucuman = UsePN (mkPN "San Miguel de Tucuman") ;
-Countries_NOK_cities_Huichon = UsePN (mkPN "Huichon") ;
-Organizations_UNOMIG = UsePN (mkPN "United Nations Observer Mission in Georgia") ;
-Countries_ANG_provinces_Luanda = UsePN (mkPN "Luanda") ;
-Countries_TJ_provinces_NeiMonggol_cities_Ulanhot = UsePN (mkPN "Ulanhot") ;
-Countries_NL_provinces_ZuidHolland_cities_Dordrecht = UsePN (mkPN "Dordrecht") ;
-Countries_KAZ_provinces_OngtustikQazaqstan = UsePN (mkPN "Ongtustik Qazaqstan") ;
-Countries_ZRE_provinces_Kivu_cities_Uvira = UsePN (mkPN "Uvira") ;
-Mountains_MountMorrison = UsePN (mkPN "Mount Morrison") ;
-Countries_R_provinces_Orenburgskayaoblast_cities_Orenburg = UsePN (mkPN "Orenburg") ;
-Countries_R_provinces_Rep_ofBuryatiya = UsePN (mkPN "Rep. of Buryatiya") ;
-Countries_MEX_provinces_QuintanaRoo_cities_Chetumal = UsePN (mkPN "Chetumal") ;
-Countries_TAD_provinces_BadakhshoniKuni_cities_Khorugh = UsePN (mkPN "Khorugh") ;
-Countries_R_provinces_Rep_ofIngushetiya = UsePN (mkPN "Rep. of Ingushetiya") ;
-Countries_D_provinces_Niedersachsen_cities_Braunschweig = UsePN (mkPN "Braunschweig") ;
-Countries_PE_provinces_Ancash_cities_Chimbote = UsePN (mkPN "Chimbote") ;
-Countries_BR_provinces_SaoPaulo_cities_Pindamonhangaba = UsePN (mkPN "Pindamonhangaba") ;
-Countries_cid_cia_Reunion = UsePN (mkPN "Reunion") ;
-Islands_Lavan = UsePN (mkPN "Lavan") ;
-Islands_Tonga = UsePN (mkPN "Tonga") ;
-Countries_F_provinces_HauteNormandie = UsePN (mkPN "Haute Normandie") ;
-Countries_WAN_cities_BeninCity = UsePN (mkPN "Benin City") ;
-Countries_BR_provinces_Tocantins = UsePN (mkPN "Tocantins") ;
-Countries_TJ_provinces_Fujian_cities_Fuzhou = UsePN (mkPN "Fuzhou") ;
-Countries_GB_provinces_RhonddaCynonTaff = UsePN (mkPN "Rhondda Cynon Taff") ;
-Countries_IND_provinces_MadhyaPradesh_cities_Gwalior = UsePN (mkPN "Gwalior") ;
-Countries_MEX_cities_AtizapandeZaragoza = UsePN (mkPN "Atizapan de Zaragoza") ;
-Countries_GB_provinces_Pembrokeshire_cities_Haverfordwest = UsePN (mkPN "Haverfordwest") ;
-Countries_MD_cities_Chisinau = UsePN (mkPN "Chisinau") ;
-Countries_HCA_provinces_Olancho = UsePN (mkPN "Olancho") ;
-Countries_USA_provinces_NewJersey_cities_JerseyCity = UsePN (mkPN "Jersey City") ;
-Countries_PE_provinces_Puno_cities_Juliaca = UsePN (mkPN "Juliaca") ;
-Countries_S_provinces_Kronoberg_cities_Vaxjo = UsePN (mkPN "Vaxjo") ;
-Countries_USA_provinces_California_cities_Sacramento = UsePN (mkPN "Sacramento") ;
-Countries_R_provinces_UdmurtRepublic_cities_Votkinsk = UsePN (mkPN "Votkinsk") ;
-Countries_D_provinces_Thuringen_cities_Erfurt = UsePN (mkPN "Erfurt") ;
-Countries_ROK_cities_Chunchon = UsePN (mkPN "Chunchon") ;
-Countries_MEX_provinces_Sinaloa_cities_Mazatlan = UsePN (mkPN "Mazatlan") ;
-Deserts_Uaran = UsePN (mkPN "Uaran") ;
-Countries_TR_provinces_Hatay = UsePN (mkPN "Hatay") ;
-Countries_UZB_provinces_Andijon_cities_Andijon = UsePN (mkPN "Andijon") ;
-Rivers_GrosserJenissej = UsePN (mkPN "Grosser Jenissej") ;
-Countries_BR_provinces_Tocantins_cities_Palmas = UsePN (mkPN "Palmas") ;
-Countries_CO_provinces_Arauca = UsePN (mkPN "Arauca") ;
-Countries_Z_provinces_Western = UsePN (mkPN "Western") ;
-Countries_LV_cities_Riga = UsePN (mkPN "Riga") ;
-Mountains_Mt_Kosciuszko = UsePN (mkPN "Mt. Kosciuszko") ;
-Countries_CDN_provinces_Ontario_cities_York = UsePN (mkPN "York") ;
-Countries_A_provinces_Styria = UsePN (mkPN "Styria") ;
-Countries_R_provinces_Chelyabinskayaoblast_cities_Magnitogorsk = UsePN (mkPN "Magnitogorsk") ;
-Countries_RI_cities_Cirebon = UsePN (mkPN "Cirebon") ;
-Countries_Z_provinces_Luapula = UsePN (mkPN "Luapula") ;
-Countries_RO_provinces_Giurgiu_cities_Giurgiu = UsePN (mkPN "Giurgiu") ;
-Countries_GB_provinces_Hampshire_cities_Winchester = UsePN (mkPN "Winchester") ;
-Countries_F_provinces_RhoneAlpes_cities_Villeurbanne = UsePN (mkPN "Villeurbanne") ;
-Countries_R_provinces_Penzenskayaoblast_cities_Kuznetsk = UsePN (mkPN "Kuznetsk") ;
-Islands_Colonsay = UsePN (mkPN "Colonsay") ;
-Countries_D_provinces_Bayern_cities_Munich = UsePN (mkPN "Munich") ;
-Countries_cid_cia_Falkland_Islands_cities_Stanley = UsePN (mkPN "Stanley") ;
-Countries_AUS_provinces_NewSouthWales_cities_Wollongong = UsePN (mkPN "Wollongong") ;
-Countries_NL_provinces_Gelderland_cities_Nijmegen = UsePN (mkPN "Nijmegen") ;
-Countries_AUS_provinces_Queensland_cities_Townsville = UsePN (mkPN "Townsville") ;
-Countries_USA_provinces_California_cities_SanJose = UsePN (mkPN "San Jose") ;
-Countries_ES_provinces_Morazan = UsePN (mkPN "Morazan") ;
-Organizations_G_2 = UsePN (mkPN "Group of 2") ;
-Countries_VN_provinces_SouthCentralCoast = UsePN (mkPN "South Central Coast") ;
-Countries_R_provinces_Murmanskayaoblast = UsePN (mkPN "Murmanskaya oblast") ;
-Countries_PL_provinces_Slupskie = UsePN (mkPN "Slupskie") ;
-Countries_TR_provinces_Yozgat = UsePN (mkPN "Yozgat") ;
-Countries_TJ_provinces_Liaoning_cities_Shenyang = UsePN (mkPN "Shenyang") ;
-Countries_GR_provinces_Peloponnisos = UsePN (mkPN "Peloponnisos") ;
-Countries_CDN_provinces_Ontario_cities_Mississauga = UsePN (mkPN "Mississauga") ;
-Turkey = UsePN (mkPN "Turkey") ;
-Countries_THA_provinces_Phrae = UsePN (mkPN "Phrae") ;
-Countries_STP_cities_SaoTome = UsePN (mkPN "Sao Tome") ;
-Countries_RO_provinces_Bacau = UsePN (mkPN "Bacau") ;
-Countries_IR_provinces_Esfahan_cities_Najafabad = UsePN (mkPN "Najafabad") ;
-Countries_SD_cities_Mbabane = UsePN (mkPN "Mbabane") ;
-Countries_ANG_provinces_Huambo_cities_Huambo = UsePN (mkPN "Huambo") ;
-Countries_TJ_provinces_Shaanxi_cities_Ankang = UsePN (mkPN "Ankang") ;
-Lakes_LakeTumba = UsePN (mkPN "Lake Tumba") ;
-Countries_VN_provinces_HaBac = UsePN (mkPN "Ha Bac") ;
-Countries_YV_provinces_Zulia_cities_Maracaibo = UsePN (mkPN "Maracaibo") ;
-Countries_cid_cia_Hong_Kong = UsePN (mkPN "Hong Kong") ;
-Countries_TJ_provinces_Anhui_cities_Huainan = UsePN (mkPN "Huainan") ;
-Countries_AUS_provinces_Queensland_cities_Brisbane = UsePN (mkPN "Brisbane") ;
-Countries_R_provinces_Primorskykray_cities_Vladivostok = UsePN (mkPN "Vladivostok") ;
-Countries_IRQ_provinces_AnNajaf = UsePN (mkPN "An Najaf") ;
-Mountains_Damavand = UsePN (mkPN "Damavand") ;
-Countries_IR_provinces_Hamadan_cities_Hamadan = UsePN (mkPN "Hamadan") ;
-Countries_CDN_provinces_Alberta = UsePN (mkPN "Alberta") ;
-Countries_ANG_provinces_Uige = UsePN (mkPN "Uige") ;
-Countries_EAT_provinces_Singida = UsePN (mkPN "Singida") ;
-Countries_TJ_provinces_Liaoning_cities_Liaoyang = UsePN (mkPN "Liaoyang") ;
-Countries_ER_cities_Asmara = UsePN (mkPN "Asmara") ;
-Rivers_Petschora = UsePN (mkPN "Petschora") ;
-Countries_R_provinces_Amurskayaoblast_cities_Blagoveshchensk = UsePN (mkPN "Blagoveshchensk") ;
-Countries_USA_provinces_Michigan_cities_Lansing = UsePN (mkPN "Lansing") ;
-Countries_TJ_provinces_Shandong_cities_Jinan = UsePN (mkPN "Jinan") ;
-Countries_GB_provinces_WestMidlands = UsePN (mkPN "West Midlands") ;
-Countries_IRQ_provinces_AlMuthanna_cities_AsSamawah = UsePN (mkPN "As Samawah") ;
-Countries_GB_provinces_Somerset = UsePN (mkPN "Somerset") ;
-Rivers_Garonne = UsePN (mkPN "Garonne") ;
-Countries_RI_cities_TanjungBalai = UsePN (mkPN "Tanjung Balai") ;
-Countries_C_provinces_PinardelRio_cities_PinardelRio = UsePN (mkPN "Pinar del Rio") ;
-Countries_GB_provinces_Borders_cities_NewtownSt_Boswells = UsePN (mkPN "Newtown St. Boswells") ;
-Countries_R_provinces_Volgogradskayaoblast = UsePN (mkPN "Volgogradskaya oblast") ;
-Countries_USA_provinces_Georgia = UsePN (mkPN "Georgia") ;
-Countries_IND_provinces_Pondicherry = UsePN (mkPN "Pondicherry") ;
-Countries_cid_cia_Ashmore_and_Cartier_Islands = UsePN (mkPN "Ashmore and Cartier Islands") ;
-Countries_USA_provinces_California_cities_Inglewood = UsePN (mkPN "Inglewood") ;
-Countries_TR_provinces_Tekirdag_cities_Tekirdag = UsePN (mkPN "Tekirdag") ;
-Countries_USA_provinces_Massachusetts_cities_Boston = UsePN (mkPN "Boston") ;
-Countries_J_provinces_Toyama = UsePN (mkPN "Toyama") ;
-Countries_IRQ_provinces_AsSulaymaniyah_cities_AsSulaymaniyah = UsePN (mkPN "As Sulaymaniyah") ;
-Countries_IND_provinces_Rajasthan = UsePN (mkPN "Rajasthan") ;
-Countries_GB_provinces_Warwickshire_cities_StratfordonAvon = UsePN (mkPN "Stratford on Avon") ;
-Countries_CO_provinces_Cordoba_cities_Monteria = UsePN (mkPN "Monteria") ;
-Countries_H_provinces_Gyor_munic_cities_Gyor = UsePN (mkPN "Gyor") ;
-Rivers_Uruguay = UsePN (mkPN "Uruguay") ;
-Countries_MOC_provinces_Inhambane_cities_Inhambane = UsePN (mkPN "Inhambane") ;
-Countries_S_provinces_Norrbotten_cities_Jokkmokk = UsePN (mkPN "Jokkmokk") ;
-Countries_USA_provinces_California_cities_HuntingtonBeach = UsePN (mkPN "Huntington Beach") ;
-Countries_GB_provinces_Cumbria = UsePN (mkPN "Cumbria") ;
-Countries_SUD_provinces_alKhartum_cities_Khartoum = UsePN (mkPN "Khartoum") ;
-Islands_NorthUlist = UsePN (mkPN "North Ulist") ;
-Countries_F_provinces_HauteNormandie_cities_Rouen = UsePN (mkPN "Rouen") ;
-Countries_VN_provinces_DongThap = UsePN (mkPN "Dong Thap") ;
-Islands_SanMiguelIsland = UsePN (mkPN "San Miguel Island") ;
-Countries_R_provinces_Rep_ofMordovia = UsePN (mkPN "Rep. of Mordovia") ;
-Countries_SF_provinces_Turku_Pori_cities_Pori = UsePN (mkPN "Pori") ;
-Countries_MEX_provinces_Veracruz = UsePN (mkPN "Veracruz") ;
-Countries_P_provinces_Porto_cities_Porto = UsePN (mkPN "Porto") ;
-Countries_PE_provinces_Callao_cities_Callao = UsePN (mkPN "Callao") ;
-SriLanka = UsePN (mkPN "Sri Lanka") ;
-Countries_ARM_cities_Yerevan = UsePN (mkPN "Yerevan") ;
-Countries_MW_cities_Lilongwe = UsePN (mkPN "Lilongwe") ;
-Countries_USA_provinces_Alabama_cities_Birmingham = UsePN (mkPN "Birmingham") ;
-Countries_MK_cities_Skopje = UsePN (mkPN "Skopje") ;
-Countries_IR_provinces_BoyerAhmadeKohkiluyeh_cities_Yasuj = UsePN (mkPN "Yasuj") ;
-Islands_Antigua = UsePN (mkPN "Antigua") ;
-Countries_E_provinces_Murcia_cities_Murcia = UsePN (mkPN "Murcia") ;
-Countries_VN_cities_Hue = UsePN (mkPN "Hue") ;
-Countries_USA_provinces_NewYork_cities_Rochester = UsePN (mkPN "Rochester") ;
-Countries_GB_provinces_Nottinghamshire_cities_Nottingham = UsePN (mkPN "Nottingham") ;
-Countries_VN_provinces_BenTre = UsePN (mkPN "Ben Tre") ;
-Armenia = UsePN (mkPN "Armenia") ;
-Countries_TJ_provinces_Shanxi_cities_Taiyuan = UsePN (mkPN "Taiyuan") ;
-Countries_VN_cities_DaNang = UsePN (mkPN "Da Nang") ;
-Countries_PL_provinces_Wroclawskie_cities_Wroclaw = UsePN (mkPN "Wroclaw") ;
-Deserts_NubianDesert = UsePN (mkPN "Nubian Desert") ;
-Countries_BR_cities_CamposdosGoytacazes = UsePN (mkPN "Campos dos Goytacazes") ;
-Countries_RO_provinces_Arges = UsePN (mkPN "Arges") ;
-Countries_R_provinces_ChuvashRepublic = UsePN (mkPN "Chuvash Republic") ;
-Mountains_PikChan_Tengri = UsePN (mkPN "Pik Chan-Tengri") ;
-Countries_YV_provinces_Bolivar_cities_CiudadBolivar = UsePN (mkPN "Ciudad Bolivar") ;
-Countries_IR_provinces_Khuzestan_cities_Khorramshahr = UsePN (mkPN "Khorramshahr") ;
-Countries_UA_provinces_Zaporizka = UsePN (mkPN "Zaporizka") ;
-Countries_THA_provinces_Narathiwat = UsePN (mkPN "Narathiwat") ;
-Countries_TJ_provinces_NingxiaHuizu_cities_Shizuishan = UsePN (mkPN "Shizuishan") ;
-Countries_I_provinces_Liguria_cities_Genua = UsePN (mkPN "Genua") ;
-Countries_PL_provinces_Kieleckie = UsePN (mkPN "Kieleckie") ;
-Countries_E_provinces_Valencia_cities_Elx = UsePN (mkPN "Elx") ;
-Countries_ET_provinces_ElGiza = UsePN (mkPN "El Giza") ;
-Countries_R_provinces_Tverskayaoblast_cities_Tver = UsePN (mkPN "Tver") ;
-Countries_RIM_cities_Nouakchott = UsePN (mkPN "Nouakchott") ;
-Countries_IND_provinces_TamilNadu_cities_Salem = UsePN (mkPN "Salem") ;
-Countries_R_provinces_KarachayevoCherkesskRep_ = UsePN (mkPN "Karachayevo Cherkessk Rep.") ;
-Organizations_FAO = UsePN (mkPN "Food and Agriculture Organization") ;
-Lakes_Paeijaenne = UsePN (mkPN "Paeijaenne") ;
-Countries_TJ_provinces_Sichuan_cities_Yibin = UsePN (mkPN "Yibin") ;
-Seas_MediterraneanSea = UsePN (mkPN "Mediterranean Sea") ;
-Countries_E_provinces_Madrid_cities_Getafe = UsePN (mkPN "Getafe") ;
-Organizations_CDB = UsePN (mkPN "Caribbean Development Bank") ;
-Islands_Mainland = UsePN (mkPN "Mainland") ;
-Countries_RO_provinces_Harghita = UsePN (mkPN "Harghita") ;
-Countries_GB_provinces_Berkshire_cities_Windsor = UsePN (mkPN "Windsor") ;
-Countries_J_provinces_Hokkaido_cities_Sapporo = UsePN (mkPN "Sapporo") ;
-Countries_VN_provinces_QuangTri = UsePN (mkPN "Quang Tri") ;
-Countries_GB_provinces_WestYorkshire_cities_Wakefield = UsePN (mkPN "Wakefield") ;
-Countries_MEX_provinces_Jalisco_cities_Cuautla = UsePN (mkPN "Cuautla") ;
-Rivers_Elbe = UsePN (mkPN "Elbe") ;
-Belarus = UsePN (mkPN "Belarus") ;
-Countries_J_provinces_Shiga = UsePN (mkPN "Shiga") ;
-Countries_CAM_provinces_Nordextreme = UsePN (mkPN "Nord extreme") ;
-Countries_TJ_provinces_Heilongjiang_cities_Yichun = UsePN (mkPN "Yichun") ;
-Mountains_Llullaillaco = UsePN (mkPN "Llullaillaco") ;
-Countries_TJ_provinces_Shandong_cities_Qingdao = UsePN (mkPN "Qingdao") ;
-Countries_TJ_provinces_Fujian_cities_Zhangzhou = UsePN (mkPN "Zhangzhou") ;
-Lakes_Inari = UsePN (mkPN "Inari") ;
-Islands_Ibiza = UsePN (mkPN "Ibiza") ;
-Countries_TJ_provinces_Henan_cities_Jiaozuo = UsePN (mkPN "Jiaozuo") ;
-Countries_TR_provinces_Izmir_cities_Izmir = UsePN (mkPN "Izmir") ;
-Countries_CH_provinces_VS_cities_Sion = UsePN (mkPN "Sion") ;
-Countries_USA_provinces_Arkansas = UsePN (mkPN "Arkansas") ;
-Countries_RC_provinces_Kaohsiung_munic = UsePN (mkPN "Kaohsiung (munic.)") ;
-Countries_I_provinces_Lazio_cities_Rome = UsePN (mkPN "Rome") ;
-Countries_TJ_provinces_Jilin_cities_Fuyu = UsePN (mkPN "Fuyu") ;
-CostaRica = UsePN (mkPN "Costa Rica") ;
-Countries_PL_provinces_Pilskie = UsePN (mkPN "Pilskie") ;
-Countries_CH_provinces_TG_cities_Frauenfeld = UsePN (mkPN "Frauenfeld") ;
-Countries_GB_provinces_Strathclyde_cities_Renfrew = UsePN (mkPN "Renfrew") ;
-Countries_C_provinces_Granma_cities_Bayamo = UsePN (mkPN "Bayamo") ;
-Countries_PL_provinces_Katowickie_cities_Gliwice = UsePN (mkPN "Gliwice") ;
-Countries_THA_provinces_Phuket = UsePN (mkPN "Phuket") ;
-Countries_UA_provinces_Cherkaska_cities_Cherkasy = UsePN (mkPN "Cherkasy") ;
-Countries_HCA_provinces_Ocotepeque_cities_Ocotepeque = UsePN (mkPN "Ocotepeque") ;
-Lakes_LakeRukwa = UsePN (mkPN "Lake Rukwa") ;
-Countries_R_provinces_Sverdlovskayaoblast_cities_KamenskUralskiy = UsePN (mkPN "Kamensk Uralskiy") ;
-Jamaica = UsePN (mkPN "Jamaica") ;
-Countries_GB_provinces_Fife_cities_Glenrothes = UsePN (mkPN "Glenrothes") ;
-Countries_SP_cities_Mogadishu = UsePN (mkPN "Mogadishu") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Siegen = UsePN (mkPN "Siegen") ;
-Countries_HCA_provinces_Yoro_cities_Yoro = UsePN (mkPN "Yoro") ;
-Countries_CH_provinces_OW_cities_Sarnen = UsePN (mkPN "Sarnen") ;
-Countries_AUS_provinces_NorfolkIsland = UsePN (mkPN "Norfolk Island") ;
-Countries_MA_cities_Khouribga = UsePN (mkPN "Khouribga") ;
-Countries_P_provinces_VilaReal = UsePN (mkPN "Vila Real") ;
-Countries_PK_cities_RahimYarKhan = UsePN (mkPN "Rahim Yar Khan") ;
-Countries_cid_cia_Heard_Island_and_McDonald_Islands = UsePN (mkPN "Heard Island and McDonald Islands") ;
-Countries_AUS_provinces_NewSouthWales_cities_Sydney = UsePN (mkPN "Sydney") ;
-Rivers_Goetaaelv = UsePN (mkPN "Goetaaelv") ;
-Countries_TR_provinces_Tekirdag = UsePN (mkPN "Tekirdag") ;
-Countries_TJ_provinces_Heilongjiang_cities_Qitaihe = UsePN (mkPN "Qitaihe") ;
-Countries_RSA_cities_Mangaung = UsePN (mkPN "Mangaung") ;
-Islands_Bali = UsePN (mkPN "Bali") ;
-Countries_R_provinces_Vladimirskayaoblast_cities_Kovrov = UsePN (mkPN "Kovrov") ;
-Countries_cid_cia_Guadeloupe_cities_Basse_Terre = UsePN (mkPN "Basse-Terre") ;
-Countries_RA_provinces_Corrientes = UsePN (mkPN "Corrientes") ;
-Countries_CO_provinces_Atlantico_cities_Soledad = UsePN (mkPN "Soledad") ;
-Countries_J_provinces_Shizuoka_cities_Shizuoka = UsePN (mkPN "Shizuoka") ;
-Countries_D_provinces_MecklenburgVorpommern_cities_Schwerin = UsePN (mkPN "Schwerin") ;
-Mountains_Hotaka_Dake = UsePN (mkPN "Hotaka-Dake") ;
-Countries_MC_cities_Monaco = UsePN (mkPN "Monaco") ;
-Countries_ROK_cities_Masan = UsePN (mkPN "Masan") ;
-Countries_GB_cities_Sandwell = UsePN (mkPN "Sandwell") ;
-Countries_UZB_provinces_Farghona_cities_Farghona = UsePN (mkPN "Farghona") ;
-Countries_MA_cities_BeniMellal = UsePN (mkPN "Beni Mellal") ;
-Countries_V_cities_VaticanCity = UsePN (mkPN "Vatican City") ;
-Countries_KAZ_provinces_Pavlodar = UsePN (mkPN "Pavlodar") ;
-Countries_HCA_provinces_Colon = UsePN (mkPN "Colon") ;
-Organizations_ISO = UsePN (mkPN "International Organization for Standardization") ;
-Rivers_Argun = UsePN (mkPN "Argun") ;
-Countries_LAO_cities_Vientiane = UsePN (mkPN "Vientiane") ;
-Countries_R_provinces_ChechenRep_ = UsePN (mkPN "Chechen Rep.") ;
-Countries_BR_provinces_SantaCatarina_cities_Chapeco = UsePN (mkPN "Chapeco") ;
-Countries_GB_provinces_SouthYorkshire = UsePN (mkPN "South Yorkshire") ;
-Countries_GB_provinces_Hampshire_cities_Portsmouth = UsePN (mkPN "Portsmouth") ;
-Countries_IND_provinces_HimachalPradesh = UsePN (mkPN "Himachal Pradesh") ;
-Countries_GB_provinces_Torfaen_cities_Pontypool = UsePN (mkPN "Pontypool") ;
-Countries_R_provinces_Krasnoyarskiykray_cities_Achinsk = UsePN (mkPN "Achinsk") ;
-Countries_USA_provinces_RhodeIsland = UsePN (mkPN "Rhode Island") ;
-Organizations_ITU = UsePN (mkPN "International Telecommunication Union") ;
-Countries_USA_provinces_Texas_cities_Pasadena = UsePN (mkPN "Pasadena") ;
-Organizations_Intelsat = UsePN (mkPN "International Telecommunications Satellite Organization") ;
-Seas_GulfofMexico = UsePN (mkPN "Gulf of Mexico") ;
-Countries_PL_provinces_Szczecinskie = UsePN (mkPN "Szczecinskie") ;
-Countries_CZ_provinces_Severomoravsky = UsePN (mkPN "Severomoravsky") ;
-Countries_PA_provinces_Colon = UsePN (mkPN "Colon") ;
-Countries_RO_provinces_Hunedoara_cities_Deva = UsePN (mkPN "Deva") ;
-Countries_MOC_provinces_Niassa = UsePN (mkPN "Niassa") ;
-Countries_BR_provinces_SaoPaulo_cities_FranciscoMorato = UsePN (mkPN "Francisco Morato") ;
-Organizations_OAU = UsePN (mkPN "Organization of African Unity") ;
-Organizations_IMF = UsePN (mkPN "International Monetary Fund") ;
-Countries_GB_provinces_Carmarthenshire_cities_Carmarthen = UsePN (mkPN "Carmarthen") ;
-Countries_UA_provinces_Zaporizka_cities_Zaporizhzhya = UsePN (mkPN "Zaporizhzhya") ;
-Countries_cid_cia_American_Samoa_cities_PagoPago = UsePN (mkPN "Pago Pago") ;
-Countries_TR_provinces_Sivas = UsePN (mkPN "Sivas") ;
-Countries_R_provinces_Rep_ofKomi = UsePN (mkPN "Rep. of Komi") ;
-Countries_TJ_provinces_Heilongjiang_cities_Mishan = UsePN (mkPN "Mishan") ;
-Countries_TJ_provinces_Shaanxi = UsePN (mkPN "Shaanxi") ;
-Countries_IR_provinces_ChaharMahaleBakhtiari_cities_ShahreKord = UsePN (mkPN "Shahr e Kord") ;
-Countries_J_provinces_Shimane = UsePN (mkPN "Shimane") ;
-Countries_PE_provinces_Lima = UsePN (mkPN "Lima") ;
-Organizations_NATO = UsePN (mkPN "North Atlantic Treaty Organization") ;
-Countries_USA_provinces_NorthDakota = UsePN (mkPN "North Dakota") ;
-Countries_SYR_cities_Aleppo = UsePN (mkPN "Aleppo") ;
-Countries_I_provinces_Abruzzo = UsePN (mkPN "Abruzzo") ;
-Countries_WAN_cities_Ikire = UsePN (mkPN "Ikire") ;
-Organizations_AL = UsePN (mkPN "Arab League") ;
-Countries_ZRE_provinces_Kinshasa_cities_Kinshasa = UsePN (mkPN "Kinshasa") ;
-Countries_NL_provinces_Gelderland_cities_Arnhem = UsePN (mkPN "Arnhem") ;
-Countries_ANG_provinces_Huambo = UsePN (mkPN "Huambo") ;
-Islands_Madeira = UsePN (mkPN "Madeira") ;
-Countries_R_provinces_Astrakhanskayaoblast_cities_Astrakhan = UsePN (mkPN "Astrakhan") ;
-Countries_P_provinces_Aveiro = UsePN (mkPN "Aveiro") ;
-Countries_CY_cities_Nicosia = UsePN (mkPN "Nicosia") ;
-Islands_PrinceCharlesIsland = UsePN (mkPN "Prince Charles Island") ;
-Maldives = UsePN (mkPN "Maldives") ;
-Organizations_NIB = UsePN (mkPN "Nordic Investment Bank") ;
-Countries_PAL_cities_Koror = UsePN (mkPN "Koror") ;
-Countries_YV_provinces_Miranda_cities_LosTeques = UsePN (mkPN "Los Teques") ;
-Organizations_UDEAC = UsePN (mkPN "Central African Customs and Economic Union") ;
-Countries_S_provinces_Skaraborg = UsePN (mkPN "Skaraborg") ;
-Organizations_UNICEF = UsePN (mkPN "United Nations Childrens Fund") ;
-Countries_CR_provinces_Limon_cities_Limon = UsePN (mkPN "Limon") ;
-Countries_cid_cia_British_Virgin_Islands_cities_RoadTown = UsePN (mkPN "Road Town") ;
-Seas_ArcticOcean = UsePN (mkPN "Arctic Ocean") ;
-Countries_CR_provinces_Punarenas = UsePN (mkPN "Punarenas") ;
-Countries_MA_provinces_Centre = UsePN (mkPN "Centre") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Herne = UsePN (mkPN "Herne") ;
-Organizations_WFP = UsePN (mkPN "World Food Program") ;
-Countries_PE_provinces_Puno_cities_Puno = UsePN (mkPN "Puno") ;
-Countries_CO_provinces_Casanare = UsePN (mkPN "Casanare") ;
-Countries_TJ_provinces_Hubei_cities_Xiangfan = UsePN (mkPN "Xiangfan") ;
-Countries_CDN_provinces_NorthwestTerritories = UsePN (mkPN "Northwest Territories") ;
-Countries_TJ_provinces_Zhejiang_cities_Ruian = UsePN (mkPN "Ruian") ;
-Chad = UsePN (mkPN "Chad") ;
-Countries_I_cities_Forli = UsePN (mkPN "Forli") ;
-Rivers_Luangwa = UsePN (mkPN "Luangwa") ;
-Countries_MA_provinces_Tensift = UsePN (mkPN "Tensift") ;
-Countries_F_provinces_Centre = UsePN (mkPN "Centre") ;
-Countries_NL_provinces_Limburg_cities_Heerlen = UsePN (mkPN "Heerlen") ;
-Countries_IR_provinces_Ilam_cities_Ilam = UsePN (mkPN "Ilam") ;
-Countries_TJ_provinces_Anhui_cities_Chaoxian = UsePN (mkPN "Chaoxian") ;
-Lakes_LagodiGarda = UsePN (mkPN "Lago di Garda") ;
-Countries_RO_provinces_Botosani = UsePN (mkPN "Botosani") ;
-Islands_Cuba = UsePN (mkPN "Cuba") ;
-Countries_BR_provinces_Ceara_cities_Maracanau = UsePN (mkPN "Maracanau") ;
-Mauritius = UsePN (mkPN "Mauritius") ;
-Countries_TJ_provinces_Shandong_cities_Linyi = UsePN (mkPN "Linyi") ;
-Countries_USA_provinces_Texas_cities_Irving = UsePN (mkPN "Irving") ;
-Countries_CO_provinces_Cundinamarca_cities_Soacha = UsePN (mkPN "Soacha") ;
-Countries_USA_provinces_Minnesota_cities_St_Paul = UsePN (mkPN "St. Paul") ;
-Countries_IND_provinces_Maharashtra_cities_Aurangabad = UsePN (mkPN "Aurangabad") ;
-Organizations_IDA = UsePN (mkPN "International Development Association") ;
-Countries_SN_provinces_Kolda = UsePN (mkPN "Kolda") ;
-Countries_BR_provinces_Rondonia_cities_PortoVelho = UsePN (mkPN "Porto Velho") ;
-Organizations_ICRM = UsePN (mkPN "International Red Cross and Red Crescent Movement") ;
-Rivers_Moldau = UsePN (mkPN "Moldau") ;
-Countries_F_provinces_Limousin_cities_Limoges = UsePN (mkPN "Limoges") ;
-Countries_IL_provinces_Central = UsePN (mkPN "Central") ;
-Countries_TJ_provinces_Yunnan_cities_Gejiu = UsePN (mkPN "Gejiu") ;
-Organizations_BSEC = UsePN (mkPN "Black Sea Economic Cooperation Zone") ;
-Countries_BR_provinces_Ceara_cities_JuazeirodoNorte = UsePN (mkPN "Juazeiro do Norte") ;
-Countries_RO_provinces_Galati = UsePN (mkPN "Galati") ;
-Countries_PK_cities_Jhang = UsePN (mkPN "Jhang") ;
-Countries_J_provinces_Aichi_cities_Nagoya = UsePN (mkPN "Nagoya") ;
-Countries_TR_provinces_Aksaray = UsePN (mkPN "Aksaray") ;
-Islands_Oesel = UsePN (mkPN "Oesel") ;
-Countries_TJ_provinces_Jiangsu_cities_Huaiyin = UsePN (mkPN "Huaiyin") ;
-Countries_IR_provinces_BoyerAhmadeKohkiluyeh = UsePN (mkPN "Boyer Ahmad e Kohkiluyeh") ;
-Countries_R_provinces_Vologodskayaoblast_cities_Cherepovets = UsePN (mkPN "Cherepovets") ;
-Countries_P_provinces_Coimbra = UsePN (mkPN "Coimbra") ;
-Islands_Dagoe = UsePN (mkPN "Dagoe") ;
-Countries_YV_provinces_Carabobo_cities_PuertoCabello = UsePN (mkPN "Puerto Cabello") ;
-Countries_IND_provinces_Meghalaya = UsePN (mkPN "Meghalaya") ;
-Countries_R_provinces_Rep_ofBashkortostan_cities_Sterlitamak = UsePN (mkPN "Sterlitamak") ;
-Countries_N_provinces_Rogaland = UsePN (mkPN "Rogaland") ;
-Islands_Mallorca = UsePN (mkPN "Mallorca") ;
-Countries_USA_provinces_Kentucky_cities_Frankfort = UsePN (mkPN "Frankfort") ;
-Countries_ET_provinces_ElWadielJadid = UsePN (mkPN "El Wadi el Jadid") ;
-Countries_THA_provinces_Rayong = UsePN (mkPN "Rayong") ;
-Countries_SF_provinces_Kuopio_cities_Kuopio = UsePN (mkPN "Kuopio") ;
-Countries_R_provinces_Krasnoyarskiykray_cities_Krasnoyarsk = UsePN (mkPN "Krasnoyarsk") ;
-Countries_IND_provinces_WestBengal_cities_Durgapur = UsePN (mkPN "Durgapur") ;
-Countries_BR_provinces_Amazonas = UsePN (mkPN "Amazonas") ;
-Countries_ETH_cities_Debrezit = UsePN (mkPN "Debrezit") ;
-Countries_MYA_provinces_Yangon = UsePN (mkPN "Yangon") ;
-Countries_PL_provinces_Wloclawskie = UsePN (mkPN "Wloclawskie") ;
-Countries_GB_provinces_Surrey_cities_Kingston = UsePN (mkPN "Kingston") ;
-Countries_SF_provinces_Kymi_cities_Lappeenrenta = UsePN (mkPN "Lappeenrenta") ;
-Countries_DK_cities_Esbjerg = UsePN (mkPN "Esbjerg") ;
-Countries_CZ_provinces_Vychodocesky_cities_Pardubice = UsePN (mkPN "Pardubice") ;
-Countries_UA_provinces_Ternopilska_cities_Ternopil = UsePN (mkPN "Ternopil") ;
-Countries_P_provinces_Santarem = UsePN (mkPN "Santarem") ;
-Countries_MAL_provinces_Kedah = UsePN (mkPN "Kedah") ;
-Countries_RI_cities_PematangSiantar = UsePN (mkPN "Pematang Siantar") ;
-Countries_PE_provinces_Cajamarca = UsePN (mkPN "Cajamarca") ;
-Countries_TJ_provinces_NingxiaHuizu_cities_Yinchuan = UsePN (mkPN "Yinchuan") ;
-Countries_J_provinces_Niigata_cities_Niigata = UsePN (mkPN "Niigata") ;
-Countries_GB_provinces_Bedfordshire_cities_Bedford = UsePN (mkPN "Bedford") ;
-Countries_BR_provinces_Para_cities_Belem = UsePN (mkPN "Belem") ;
-Countries_NOK_cities_Sinuiju = UsePN (mkPN "Sinuiju") ;
-Countries_H_provinces_Somogy_cities_Kaposvar = UsePN (mkPN "Kaposvar") ;
-Organizations_IBRD = UsePN (mkPN "International Bank for Reconstruction and Development") ;
-Countries_D_provinces_Thuringen_cities_Jena = UsePN (mkPN "Jena") ;
-Countries_BR_cities_CabodeSantoAgostinho = UsePN (mkPN "Cabo de Santo Agostinho") ;
-Islands_Hokkaido = UsePN (mkPN "Hokkaido") ;
-Countries_VN_provinces_MekongRiverDelta = UsePN (mkPN "Mekong River Delta") ;
-Rivers_Amazonas = UsePN (mkPN "Amazonas") ;
-Countries_SGP_cities_Singapore = UsePN (mkPN "Singapore") ;
-Countries_VN_provinces_Haiphong = UsePN (mkPN "Haiphong") ;
-Countries_TJ_provinces_Yunnan_cities_Qujing = UsePN (mkPN "Qujing") ;
-Countries_E_provinces_Andalusia_cities_Algeciras = UsePN (mkPN "Algeciras") ;
-Countries_C_provinces_Matanzas_cities_Matanzas = UsePN (mkPN "Matanzas") ;
-Lakes_Disappointment_Lake = UsePN (mkPN "Disappointment-Lake") ;
-Countries_cid_cia_Tokelau = UsePN (mkPN "Tokelau") ;
-Countries_H_provinces_BacsKiskun = UsePN (mkPN "Bacs Kiskun") ;
-Countries_I_provinces_Umbria_cities_Terni = UsePN (mkPN "Terni") ;
-Countries_IND_provinces_Delhi_cities_NewDelhi = UsePN (mkPN "New Delhi") ;
-Countries_BR_provinces_Paraiba_cities_CampinaGrande = UsePN (mkPN "Campina Grande") ;
-Countries_ES_provinces_LaUnion_cities_LaUnion = UsePN (mkPN "La Union") ;
-Islands_Mauritius = UsePN (mkPN "Mauritius") ;
-Countries_EAT_provinces_Kagera = UsePN (mkPN "Kagera") ;
-Countries_CI_cities_Abidjan = UsePN (mkPN "Abidjan") ;
-Countries_KAZ_provinces_Semey = UsePN (mkPN "Semey") ;
-Cyprus = UsePN (mkPN "Cyprus") ;
-Countries_TR_provinces_Usak_cities_Usak = UsePN (mkPN "Usak") ;
-Countries_TJ_provinces_Heilongjiang_cities_Acheng = UsePN (mkPN "Acheng") ;
-Countries_TJ_provinces_Jiangsu_cities_Danyang = UsePN (mkPN "Danyang") ;
-Countries_PE_provinces_Cuzco_cities_Cuzco = UsePN (mkPN "Cuzco") ;
-Nigeria = UsePN (mkPN "Nigeria") ;
-Countries_VN_provinces_RedRiverDelta = UsePN (mkPN "Red River Delta") ;
-Countries_R_provinces_Tyumenskayaoblast_cities_Surgut = UsePN (mkPN "Surgut") ;
-Countries_R_provinces_Vologodskayaoblast_cities_Vologda = UsePN (mkPN "Vologda") ;
-Countries_E_provinces_CanaryIslands = UsePN (mkPN "Canary Islands") ;
-Countries_BR_provinces_SaoPaulo_cities_Catanduva = UsePN (mkPN "Catanduva") ;
-Countries_F_provinces_MidiPyrenees_cities_Toulouse = UsePN (mkPN "Toulouse") ;
-Countries_H_provinces_Zala = UsePN (mkPN "Zala") ;
-Countries_USA_provinces_Virginia_cities_NewportNews = UsePN (mkPN "Newport News") ;
-Countries_F_provinces_FrancheComte = UsePN (mkPN "Franche Comte") ;
-Countries_USA_provinces_Maine = UsePN (mkPN "Maine") ;
-Countries_MYA_provinces_Magway = UsePN (mkPN "Magway") ;
-Countries_TJ_provinces_Henan_cities_Kaifeng = UsePN (mkPN "Kaifeng") ;
-Countries_D_provinces_Hessen_cities_Darmstadt = UsePN (mkPN "Darmstadt") ;
-Countries_RA_provinces_LaRioja = UsePN (mkPN "La Rioja") ;
-Countries_GB_provinces_Hampshire_cities_Southampton = UsePN (mkPN "Southampton") ;
-Countries_BR_provinces_RiodeJaneiro = UsePN (mkPN "Rio de Janeiro") ;
-Countries_IND_provinces_Maharashtra_cities_Kalyan = UsePN (mkPN "Kalyan") ;
-Countries_SUD_provinces_BahralGhazal = UsePN (mkPN "Bahr al Ghazal") ;
-Countries_BR_provinces_Pernambuco_cities_Camaragibe = UsePN (mkPN "Camaragibe") ;
-Countries_GB_provinces_DumfriesandGalloway_cities_Dumfries = UsePN (mkPN "Dumfries") ;
-Countries_R_provinces_Vladimirskayaoblast_cities_Murom = UsePN (mkPN "Murom") ;
-Countries_BR_provinces_Parana_cities_Curitiba = UsePN (mkPN "Curitiba") ;
-Countries_RSA_cities_Boksburg = UsePN (mkPN "Boksburg") ;
-Finland = UsePN (mkPN "Finland") ;
-Countries_YV_provinces_DistritoFederal_cities_CatiaLaMar = UsePN (mkPN "Catia La Mar") ;
-Countries_TR_provinces_Sakarya = UsePN (mkPN "Sakarya") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoBernardodoCampo = UsePN (mkPN "Sao Bernardo do Campo") ;
-Countries_IR_provinces_Gilan_cities_Rasht = UsePN (mkPN "Rasht") ;
-Countries_TJ_provinces_Hunan_cities_Zhuzhou = UsePN (mkPN "Zhuzhou") ;
-Countries_UA_provinces_Zakarpatska = UsePN (mkPN "Zakarpatska") ;
-Countries_TJ_provinces_Heilongjiang_cities_Daqing = UsePN (mkPN "Daqing") ;
-Countries_WAN_cities_IjebuOde = UsePN (mkPN "Ijebu Ode") ;
-Malawi = UsePN (mkPN "Malawi") ;
-Countries_USA_provinces_Distr_Columbia_cities_Washington = UsePN (mkPN "Washington") ;
-Countries_TR_provinces_Burdur_cities_Burdur = UsePN (mkPN "Burdur") ;
-Countries_USA_provinces_Vermont_cities_Montpelier = UsePN (mkPN "Montpelier") ;
-Rivers_Anuwimi = UsePN (mkPN "Anuwimi") ;
-Countries_R_provinces_Tomskayaoblast = UsePN (mkPN "Tomskaya oblast") ;
-SouthAfrica = UsePN (mkPN "South Africa") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoPaulo = UsePN (mkPN "Sao Paulo") ;
-Countries_E_provinces_Navarre = UsePN (mkPN "Navarre") ;
-Colombia = UsePN (mkPN "Colombia") ;
-Countries_GB_provinces_Caerphilly = UsePN (mkPN "Caerphilly") ;
-Countries_CAM_provinces_Sudoueste = UsePN (mkPN "Sudoueste") ;
-Countries_MYA_provinces_Mon = UsePN (mkPN "Mon") ;
-Countries_IND_provinces_UttarPradesh_cities_Agra = UsePN (mkPN "Agra") ;
-Countries_TJ_provinces_Sichuan_cities_Luzhou = UsePN (mkPN "Luzhou") ;
-Countries_MEX_provinces_Sonora = UsePN (mkPN "Sonora") ;
-Countries_VN_provinces_YenBai = UsePN (mkPN "Yen Bai") ;
-Countries_ANG_provinces_Malanje_cities_Malanje = UsePN (mkPN "Malanje") ;
-Countries_MOC_provinces_CaboDelgado_cities_Pemba = UsePN (mkPN "Pemba") ;
-Countries_USA_provinces_Texas_cities_FortWorth = UsePN (mkPN "Fort Worth") ;
-Countries_ET_provinces_ElBahrelAhmar = UsePN (mkPN "El Bahr el Ahmar") ;
-Countries_GB_provinces_NorthYorkshire = UsePN (mkPN "North Yorkshire") ;
-Countries_PL_provinces_Slupskie_cities_Slupsk = UsePN (mkPN "Slupsk") ;
-Countries_USA_provinces_Pennsylvania_cities_Pittsburgh = UsePN (mkPN "Pittsburgh") ;
-Islands_Dominica = UsePN (mkPN "Dominica") ;
-Panama = UsePN (mkPN "Panama") ;
-Countries_R_provinces_Rep_ofDagestan_cities_Makhachkala = UsePN (mkPN "Makhachkala") ;
-Lakes_F_D_R_Lake = UsePN (mkPN "F.D.R. Lake") ;
-Countries_CAM_provinces_Sud = UsePN (mkPN "Sud") ;
-Countries_RM_provinces_Antananarivo_cities_Antsirabe = UsePN (mkPN "Antsirabe") ;
-Countries_RC_cities_Yungho = UsePN (mkPN "Yungho") ;
-Countries_THA_provinces_NongBuaLamPhu = UsePN (mkPN "Nong Bua Lam Phu") ;
-Seas_SeaofJapan = UsePN (mkPN "Sea of Japan") ;
-Countries_PL_provinces_Sieradzkie = UsePN (mkPN "Sieradzkie") ;
-Countries_GB_provinces_Hertfordshire_cities_SaintAlbans = UsePN (mkPN "Saint Albans") ;
-Lakes_LagodiComo = UsePN (mkPN "Lago di Como") ;
-Countries_RI_cities_Ambon = UsePN (mkPN "Ambon") ;
-Islands_Zakinthos = UsePN (mkPN "Zakinthos") ;
-Lakes_LagoMaggiore = UsePN (mkPN "Lago Maggiore") ;
-Countries_RC_cities_Hsintien = UsePN (mkPN "Hsintien") ;
-Countries_NL_provinces_Drenthe = UsePN (mkPN "Drenthe") ;
-Countries_YV_provinces_Lara = UsePN (mkPN "Lara") ;
-Rivers_Schilka = UsePN (mkPN "Schilka") ;
-Mountains_Fuji_Yama = UsePN (mkPN "Fuji-Yama") ;
-Countries_TJ_provinces_Sichuan = UsePN (mkPN "Sichuan") ;
-Countries_CO_provinces_Antioquia_cities_Itagui = UsePN (mkPN "Itagui") ;
-Guyana = UsePN (mkPN "Guyana") ;
-Countries_TJ_provinces_Heilongjiang_cities_Shuangyashan = UsePN (mkPN "Shuangyashan") ;
-Countries_CDN_provinces_Manitoba_cities_Winnipeg = UsePN (mkPN "Winnipeg") ;
-Countries_F_provinces_ChampagneArdenne_cities_Reims = UsePN (mkPN "Reims") ;
-Countries_UZB_provinces_Jizzakh = UsePN (mkPN "Jizzakh") ;
-Countries_RSA_cities_KemptonPark = UsePN (mkPN "Kempton Park") ;
-Nicaragua = UsePN (mkPN "Nicaragua") ;
-Countries_VN_cities_Hanoi = UsePN (mkPN "Hanoi") ;
-Countries_THA_provinces_ChaiNat = UsePN (mkPN "Chai Nat") ;
-Countries_TAD_provinces_Leninobod_cities_Khujand = UsePN (mkPN "Khujand") ;
-Countries_RSA_cities_Roodepoort = UsePN (mkPN "Roodepoort") ;
-Countries_R_provinces_Irkutskayaoblast_cities_UsolyeSibirskoye = UsePN (mkPN "Usolye Sibirskoye") ;
-Countries_TR_provinces_Bilecik_cities_Bilecik = UsePN (mkPN "Bilecik") ;
-Countries_MEX_provinces_Jalisco = UsePN (mkPN "Jalisco") ;
-Countries_WAN_cities_Katsina = UsePN (mkPN "Katsina") ;
-Countries_RO_provinces_Bihor = UsePN (mkPN "Bihor") ;
-Countries_cid_cia_Norfolk_Island = UsePN (mkPN "Norfolk Island") ;
-Countries_EAT_provinces_Morogoro = UsePN (mkPN "Morogoro") ;
-Countries_ET_provinces_ElIskandariya_munic = UsePN (mkPN "El Iskandariya (munic.)") ;
-Countries_TR_provinces_Amasya_cities_Amasya = UsePN (mkPN "Amasya") ;
-Countries_IND_provinces_Maharashtra = UsePN (mkPN "Maharashtra") ;
-Rivers_BlackIrtysch = UsePN (mkPN "Black Irtysch") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Shchyolkovo = UsePN (mkPN "Shchyolkovo") ;
-Countries_RO_provinces_Braila = UsePN (mkPN "Braila") ;
-Countries_PE_provinces_LaLibertad = UsePN (mkPN "La Libertad") ;
-Organizations_UNDOF = UsePN (mkPN "United Nations Disengagement Observer Force") ;
-Islands_Stromboli = UsePN (mkPN "Stromboli") ;
-Countries_IR_provinces_SistaneBaluchestan = UsePN (mkPN "Sistan e Baluchestan") ;
-Countries_DZ_cities_Skikda = UsePN (mkPN "Skikda") ;
-Countries_E_provinces_Catalonia_cities_Barcelona = UsePN (mkPN "Barcelona") ;
-Countries_BR_provinces_RioGrandedoSul_cities_PassoFundo = UsePN (mkPN "Passo Fundo") ;
-Countries_TJ_provinces_Liaoning_cities_Fuxin = UsePN (mkPN "Fuxin") ;
-Countries_RC_provinces_Ilan_cities_Ilan = UsePN (mkPN "Ilan") ;
-Countries_CO_provinces_SantanderdelSur_cities_Bucaramanga = UsePN (mkPN "Bucaramanga") ;
-Countries_EAT_provinces_Kigoma_cities_KigomaUjiji = UsePN (mkPN "Kigoma Ujiji") ;
-Countries_ROK_cities_Yosu = UsePN (mkPN "Yosu") ;
-Countries_Z_provinces_Central_cities_Kabwe = UsePN (mkPN "Kabwe") ;
-Countries_IL_provinces_North = UsePN (mkPN "North") ;
-Countries_GB_provinces_WestSussex = UsePN (mkPN "West Sussex") ;
-Countries_ANG_provinces_Bie = UsePN (mkPN "Bie") ;
-Countries_GB_provinces_Powys_cities_LlandrindodWells = UsePN (mkPN "Llandrindod Wells") ;
-Countries_GB_provinces_GreaterManchester_cities_Bolton = UsePN (mkPN "Bolton") ;
-Countries_KAZ_provinces_Leninsk_munic = UsePN (mkPN "Leninsk (munic.)") ;
-Countries_R_provinces_Orenburgskayaoblast_cities_Orsk = UsePN (mkPN "Orsk") ;
-Countries_RC_provinces_Pingtung = UsePN (mkPN "Pingtung") ;
-Countries_R_provinces_Voronezhskayaoblast = UsePN (mkPN "Voronezhskaya oblast") ;
-Countries_E_provinces_Galicia_cities_Vigo = UsePN (mkPN "Vigo") ;
-Countries_BR_provinces_SaoPaulo_cities_Guaruja = UsePN (mkPN "Guaruja") ;
-Countries_USA_provinces_Wyoming_cities_Cheyenne = UsePN (mkPN "Cheyenne") ;
-Countries_MAL_provinces_NegeriSembilan_cities_Seremban = UsePN (mkPN "Seremban") ;
-Countries_S_provinces_Halland_cities_Halmstad = UsePN (mkPN "Halmstad") ;
-Countries_TJ_provinces_Hebei_cities_Quzhou = UsePN (mkPN "Quzhou") ;
-Countries_A_provinces_Burgenland = UsePN (mkPN "Burgenland") ;
-Countries_TJ_provinces_Henan_cities_Hebi = UsePN (mkPN "Hebi") ;
-Countries_RA_provinces_BuenosAires_cities_LaPlata = UsePN (mkPN "La Plata") ;
-Countries_R_provinces_Chukotskyao = UsePN (mkPN "Chukotsky ao") ;
-Countries_AUS_provinces_CocosIslands = UsePN (mkPN "Cocos Islands") ;
-Rivers_Katun = UsePN (mkPN "Katun") ;
-Countries_SY_cities_Victoria = UsePN (mkPN "Victoria") ;
-Countries_I_provinces_Calabria_cities_ReggiodiCalabria = UsePN (mkPN "Reggio di Calabria") ;
-Countries_I_provinces_Piemonte_cities_Novara = UsePN (mkPN "Novara") ;
-Countries_HCA_provinces_Atlantida = UsePN (mkPN "Atlantida") ;
-Countries_ETH_cities_Dese = UsePN (mkPN "Dese") ;
-Lakes_LakeNipigon = UsePN (mkPN "Lake Nipigon") ;
-CzechRepublic = UsePN (mkPN "Czech Republic") ;
-Countries_EAT_provinces_Rukwa = UsePN (mkPN "Rukwa") ;
-Countries_D_provinces_Bremen = UsePN (mkPN "Bremen") ;
-Countries_B_provinces_EastFlanders_cities_Ghent = UsePN (mkPN "Ghent") ;
-Luxembourg = UsePN (mkPN "Luxembourg") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Gelsenkirchen = UsePN (mkPN "Gelsenkirchen") ;
-Countries_GB_provinces_WestMidlands_cities_Birmingham = UsePN (mkPN "Birmingham") ;
-Countries_ROK_cities_Chinju = UsePN (mkPN "Chinju") ;
-Countries_TJ_provinces_Jiangsu_cities_Taizhou = UsePN (mkPN "Taizhou") ;
-Lakes_LakeMeade = UsePN (mkPN "Lake Meade") ;
-Countries_J_provinces_Miyazaki_cities_Miyazaki = UsePN (mkPN "Miyazaki") ;
-Countries_USA_provinces_WestVirginia_cities_Charleston = UsePN (mkPN "Charleston") ;
-Countries_TR_provinces_Aydin_cities_Aydin = UsePN (mkPN "Aydin") ;
-Countries_J_provinces_Akita = UsePN (mkPN "Akita") ;
-Countries_TR_provinces_Edirne = UsePN (mkPN "Edirne") ;
-Countries_J_provinces_Yamaguchi_cities_Yamaguchi = UsePN (mkPN "Yamaguchi") ;
-Countries_IND_provinces_Nagaland = UsePN (mkPN "Nagaland") ;
-Lakes_OzeroAral = UsePN (mkPN "Ozero Aral") ;
-Countries_ET_provinces_BurSaid_munic_cities_PortSaid = UsePN (mkPN "Port Said") ;
-Countries_CH_provinces_ZG = UsePN (mkPN "ZG") ;
-Countries_J_provinces_Mie = UsePN (mkPN "Mie") ;
-Countries_TR_provinces_Bilecik = UsePN (mkPN "Bilecik") ;
-Rivers_Chatanga = UsePN (mkPN "Chatanga") ;
-Countries_TN_cities_Tunis = UsePN (mkPN "Tunis") ;
-Countries_VN_provinces_TienGiang = UsePN (mkPN "Tien Giang") ;
-Countries_R_provinces_KabardinoBalkarRep_ = UsePN (mkPN "Kabardino Balkar Rep.") ;
-Mountains_MtMitchell = UsePN (mkPN "Mt Mitchell") ;
-Countries_DZ_cities_Mostaganem = UsePN (mkPN "Mostaganem") ;
-Countries_GB_provinces_Highland = UsePN (mkPN "Highland") ;
-Countries_D_provinces_SachsenAnhalt_cities_Halle = UsePN (mkPN "Halle") ;
-Countries_BR_provinces_SaoPaulo_cities_BragancaPaulista = UsePN (mkPN "Braganca Paulista") ;
-Countries_PK_cities_Rawalpindi = UsePN (mkPN "Rawalpindi") ;
-Countries_R_provinces_Chitinskayaoblast_cities_Chita = UsePN (mkPN "Chita") ;
-Countries_MEX_provinces_Guanajuato_cities_Leon = UsePN (mkPN "Leon") ;
-Countries_E_provinces_CastileandLeon_cities_Valladolid = UsePN (mkPN "Valladolid") ;
-Countries_USA_provinces_California_cities_Sunnyvale = UsePN (mkPN "Sunnyvale") ;
-Countries_IND_provinces_Gujarat_cities_Rajkot = UsePN (mkPN "Rajkot") ;
-Countries_cid_cia_French_Polynesia = UsePN (mkPN "French Polynesia") ;
-Countries_BI_cities_Bujumbura = UsePN (mkPN "Bujumbura") ;
-Mountains_Snoehetta = UsePN (mkPN "Snoehetta") ;
-Countries_USA_provinces_Oklahoma = UsePN (mkPN "Oklahoma") ;
-Countries_TR_provinces_Burdur = UsePN (mkPN "Burdur") ;
-Countries_ES_provinces_SanMiguel = UsePN (mkPN "San Miguel") ;
-Countries_IND_provinces_UttarPradesh_cities_Kanpur = UsePN (mkPN "Kanpur") ;
-Countries_GB_provinces_Hertfordshire = UsePN (mkPN "Hertfordshire") ;
-Countries_MEX_provinces_Michoacan_cities_Uruapan = UsePN (mkPN "Uruapan") ;
-Countries_IR_provinces_Bushehr_cities_BandareBushehr = UsePN (mkPN "Bandar e Bushehr") ;
-Countries_BR_provinces_Pernambuco = UsePN (mkPN "Pernambuco") ;
-Countries_PL_provinces_Wroclawskie = UsePN (mkPN "Wroclawskie") ;
-Countries_EAT_provinces_Arusha_cities_Arusha = UsePN (mkPN "Arusha") ;
-Countries_ET_provinces_BurSaid_munic_cities_BurSaid = UsePN (mkPN "Bur Said") ;
-Countries_cid_cia_Cook_Islands = UsePN (mkPN "Cook Islands") ;
-Countries_MEX_provinces_BajaCalifornia_cities_Mexicali = UsePN (mkPN "Mexicali") ;
-Islands_Ikaria = UsePN (mkPN "Ikaria") ;
-Countries_RA_provinces_SantaFe_cities_Rosario = UsePN (mkPN "Rosario") ;
-Countries_WAN_cities_Kumo = UsePN (mkPN "Kumo") ;
-Countries_RI_cities_Medan = UsePN (mkPN "Medan") ;
-Countries_P_provinces_VianadoCastelo = UsePN (mkPN "Viana do Castelo") ;
-Countries_B_provinces_WestFlanders_cities_Brugge = UsePN (mkPN "Brugge") ;
-Countries_GB_provinces_Lincolnshire_cities_Lincoln = UsePN (mkPN "Lincoln") ;
-Countries_F_provinces_BasseNormandie_cities_Caen = UsePN (mkPN "Caen") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Aksu = UsePN (mkPN "Aksu") ;
-Countries_RI_cities_ParePare = UsePN (mkPN "Pare Pare") ;
-Countries_USA_provinces_Pennsylvania_cities_Allentown = UsePN (mkPN "Allentown") ;
-Countries_RO_provinces_SatuMare = UsePN (mkPN "Satu Mare") ;
-Countries_TR_provinces_Antalya_cities_Antalya = UsePN (mkPN "Antalya") ;
-Countries_MOC_provinces_Nampula = UsePN (mkPN "Nampula") ;
-Countries_VN_provinces_GiaLai = UsePN (mkPN "Gia Lai") ;
-Countries_ANG_provinces_Bengo = UsePN (mkPN "Bengo") ;
-Countries_CO_provinces_Quindio_cities_Armenia = UsePN (mkPN "Armenia") ;
-Countries_MYA_provinces_Kayin_cities_Hpaan = UsePN (mkPN "Hpa an") ;
-Countries_RO_provinces_Covasha_cities_SfintuGheorghe = UsePN (mkPN "Sfintu Gheorghe") ;
-Countries_S_provinces_GoteborgochBohus_cities_Goteborg = UsePN (mkPN "Goteborg") ;
-Countries_ES_provinces_Ahuachapan_cities_Ahuachapan = UsePN (mkPN "Ahuachapan") ;
-Countries_R_provinces_Rep_ofTatarstan_cities_Kazan = UsePN (mkPN "Kazan") ;
-Countries_IND_provinces_WestBengal = UsePN (mkPN "West Bengal") ;
-Countries_CH_provinces_BE_cities_Bern = UsePN (mkPN "Bern") ;
-Philippines = UsePN (mkPN "Philippines") ;
-Countries_WAN_cities_Jos = UsePN (mkPN "Jos") ;
-Countries_BR_provinces_Piaui_cities_Teresina = UsePN (mkPN "Teresina") ;
-Countries_ES_provinces_SanVicente_cities_SanVicente = UsePN (mkPN "San Vicente") ;
-Countries_R_provinces_SanktPeterburg_cities_SanktPeterburg = UsePN (mkPN "Sankt Peterburg") ;
-Countries_H_provinces_Gyor_munic = UsePN (mkPN "Gyor (munic.)") ;
-Countries_CO_provinces_Caqueta_cities_Florencia = UsePN (mkPN "Florencia") ;
-Countries_Z_provinces_Eastern = UsePN (mkPN "Eastern") ;
-Countries_IR_provinces_Tehran_cities_Tehran = UsePN (mkPN "Tehran") ;
-Countries_IND_provinces_Haryana = UsePN (mkPN "Haryana") ;
-Countries_TJ_provinces_Henan_cities_Shangqiu = UsePN (mkPN "Shangqiu") ;
-WesternSahara = UsePN (mkPN "Western Sahara") ;
-Countries_PL_provinces_Kaliskie = UsePN (mkPN "Kaliskie") ;
-Countries_CH_provinces_SG_cities_SanktGallen = UsePN (mkPN "Sankt Gallen") ;
-Countries_TJ_provinces_Hebei_cities_Hengshui = UsePN (mkPN "Hengshui") ;
-Countries_THA_provinces_PathumThani = UsePN (mkPN "Pathum Thani") ;
-Countries_E_provinces_Estremadura = UsePN (mkPN "Estremadura") ;
-Countries_H_provinces_BacsKiskun_cities_Kecskemet = UsePN (mkPN "Kecskemet") ;
-Countries_TR_provinces_Batman = UsePN (mkPN "Batman") ;
-Countries_BR_provinces_Sergipe_cities_Arapiraca = UsePN (mkPN "Arapiraca") ;
-Countries_USA_provinces_Florida_cities_PembrokePines = UsePN (mkPN "Pembroke Pines") ;
-Countries_R_provinces_Samarskayaoblast_cities_Tolyatti = UsePN (mkPN "Tolyatti") ;
-Countries_PE_provinces_Apurimac = UsePN (mkPN "Apurimac") ;
-Countries_MAL_provinces_Terengganu = UsePN (mkPN "Terengganu") ;
-Countries_GB_provinces_TyneandWear = UsePN (mkPN "Tyne and Wear") ;
-Countries_R_provinces_Permskayaoblast_cities_Solikamsk = UsePN (mkPN "Solikamsk") ;
-Countries_S_provinces_Malmohus_cities_Helsingborg = UsePN (mkPN "Helsingborg") ;
-Countries_NL_provinces_ZuidHolland_cities_sGravenhage = UsePN (mkPN "s Gravenhage") ;
-Countries_GB_provinces_Hampshire_cities_Basingstoke = UsePN (mkPN "Basingstoke") ;
-Countries_EAK_provinces_Western_cities_Kakamega = UsePN (mkPN "Kakamega") ;
-Countries_BR_provinces_Parana_cities_Maringa = UsePN (mkPN "Maringa") ;
-Countries_J_provinces_Osaka_cities_Osaka = UsePN (mkPN "Osaka") ;
-Countries_F_provinces_Alsace = UsePN (mkPN "Alsace") ;
-Countries_MAL_provinces_Fed_Terr_ofKualaLumpur_cities_KualaLumpur = UsePN (mkPN "Kuala Lumpur") ;
-Countries_GB_provinces_Humberside_cities_KingstonuponHull = UsePN (mkPN "Kingston upon Hull") ;
-Rivers_ColumbiaRiver = UsePN (mkPN "Columbia River") ;
-Mountains_MtMcKinley = UsePN (mkPN "Mt McKinley") ;
-Countries_E_provinces_Valencia = UsePN (mkPN "Valencia") ;
-Countries_RA_provinces_Salta = UsePN (mkPN "Salta") ;
-Countries_ET_provinces_ElQahira_munic = UsePN (mkPN "El Qahira (munic.)") ;
-Countries_RA_provinces_SanJuan_cities_SanJuan = UsePN (mkPN "San Juan") ;
-Countries_CDN_provinces_BritishColumbia_cities_Burnaby = UsePN (mkPN "Burnaby") ;
-Countries_RSA_cities_Carletonville = UsePN (mkPN "Carletonville") ;
-Islands_PrinceEdwardIsland = UsePN (mkPN "Prince Edward Island") ;
-Countries_MEX_provinces_NuevoLeon_cities_Guadalupe = UsePN (mkPN "Guadalupe") ;
-Countries_SN_provinces_Ziguinchor = UsePN (mkPN "Ziguinchor") ;
-Countries_USA_provinces_Massachusetts = UsePN (mkPN "Massachusetts") ;
-Countries_IR_provinces_Esfahan_cities_Khomeynishahr = UsePN (mkPN "Khomeynishahr") ;
-Countries_GR_provinces_Ipiros = UsePN (mkPN "Ipiros") ;
-Countries_TJ_provinces_NeiMonggol_cities_Chifeng = UsePN (mkPN "Chifeng") ;
-Countries_PL_provinces_Bydgoskie = UsePN (mkPN "Bydgoskie") ;
-Countries_VN_provinces_NamHa = UsePN (mkPN "Nam Ha") ;
-Countries_THA_provinces_NakhonSiThammarat = UsePN (mkPN "Nakhon Si Thammarat") ;
-Islands_LittleCayman = UsePN (mkPN "Little Cayman") ;
-Countries_CO_provinces_Antioquia_cities_Bello = UsePN (mkPN "Bello") ;
-Countries_USA_provinces_Nebraska_cities_Lincoln = UsePN (mkPN "Lincoln") ;
-Countries_GB_provinces_Derbyshire_cities_Chesterfield = UsePN (mkPN "Chesterfield") ;
-Countries_NL_provinces_ZuidHolland = UsePN (mkPN "Zuid Holland") ;
-Countries_IR_provinces_Khorasan_cities_Sabzevar = UsePN (mkPN "Sabzevar") ;
-Countries_USA_provinces_Texas_cities_Abilene = UsePN (mkPN "Abilene") ;
-Countries_PA_provinces_Chiriqui_cities_David = UsePN (mkPN "David") ;
-Islands_Sachalin = UsePN (mkPN "Sachalin") ;
-Countries_E_provinces_Andalusia_cities_Almeria = UsePN (mkPN "Almeria") ;
-Countries_BDS_cities_Bridgetown = UsePN (mkPN "Bridgetown") ;
-Countries_ANG_provinces_CuandoCubango_cities_Menongue = UsePN (mkPN "Menongue") ;
-Countries_ROK_cities_Suwon = UsePN (mkPN "Suwon") ;
-Countries_N_provinces_Nordland_cities_Narvik = UsePN (mkPN "Narvik") ;
-Pakistan = UsePN (mkPN "Pakistan") ;
-Countries_TR_provinces_Van_cities_Van = UsePN (mkPN "Van") ;
-Rivers_HudsonRiver = UsePN (mkPN "Hudson River") ;
-Countries_TJ_provinces_Hunan_cities_Huaihua = UsePN (mkPN "Huaihua") ;
-Countries_KAZ_provinces_SoltustikQazaqstan_cities_Petropavl = UsePN (mkPN "Petropavl") ;
-Countries_RA_provinces_BuenosAires_cities_SanIsidro = UsePN (mkPN "San Isidro") ;
-Countries_TJ_provinces_Guangdong_cities_Zhuhai = UsePN (mkPN "Zhuhai") ;
-Countries_PK_cities_Sargodha = UsePN (mkPN "Sargodha") ;
-Countries_KAZ_provinces_Taldyqorghan = UsePN (mkPN "Taldyqorghan") ;
-Islands_Linosa = UsePN (mkPN "Linosa") ;
-Countries_PK_cities_Jhelum = UsePN (mkPN "Jhelum") ;
-Rivers_Kitakami = UsePN (mkPN "Kitakami") ;
-Countries_N_provinces_SognogFjordane_cities_Hermannsverk = UsePN (mkPN "Hermannsverk") ;
-Countries_RA_provinces_Chaco_cities_Resistencia = UsePN (mkPN "Resistencia") ;
-Countries_PL_provinces_Krakowskie_cities_Krakow = UsePN (mkPN "Krakow") ;
-Countries_S_provinces_Blekinge = UsePN (mkPN "Blekinge") ;
-Rivers_Volga = UsePN (mkPN "Volga") ;
-Rivers_Dalaelv = UsePN (mkPN "Dalaelv") ;
-Countries_TR_provinces_Istanbul = UsePN (mkPN "Istanbul") ;
-Countries_BD_cities_Khulna = UsePN (mkPN "Khulna") ;
-Countries_BR_provinces_Goias = UsePN (mkPN "Goias") ;
-Countries_BR_provinces_RiodeJaneiro_cities_BarraMansa = UsePN (mkPN "Barra Mansa") ;
-Countries_MYA_provinces_Mandalay = UsePN (mkPN "Mandalay") ;
-Andorra = UsePN (mkPN "Andorra") ;
-Countries_TR_provinces_Zonguldak = UsePN (mkPN "Zonguldak") ;
-Countries_H_provinces_Szolnok = UsePN (mkPN "Szolnok") ;
-Countries_RO_provinces_Harghita_cities_MiercureaCiuc = UsePN (mkPN "Miercurea Ciuc") ;
-Countries_I_provinces_Lazio = UsePN (mkPN "Lazio") ;
-Countries_MOC_provinces_Maputo_munic = UsePN (mkPN "Maputo (munic.)") ;
-Countries_USA_provinces_Missouri_cities_St_Louis = UsePN (mkPN "St. Louis") ;
-Countries_Z_provinces_Eastern_cities_Chipata = UsePN (mkPN "Chipata") ;
-Countries_GB_provinces_Kent_cities_Canterbury = UsePN (mkPN "Canterbury") ;
-Mountains_MtRainier = UsePN (mkPN "Mt Rainier") ;
-Countries_PL_provinces_Czestochowskie_cities_Czestochowa = UsePN (mkPN "Czestochowa") ;
-Countries_E_provinces_BalearicIslands_cities_PalmadeMallorca = UsePN (mkPN "Palma de Mallorca") ;
-Countries_GR_cities_Volos = UsePN (mkPN "Volos") ;
-Countries_YV_provinces_Bolivar = UsePN (mkPN "Bolivar") ;
-Countries_GB_provinces_NeathandPortTalbot_cities_PortTalbot = UsePN (mkPN "Port Talbot") ;
-Countries_CO_provinces_Caqueta = UsePN (mkPN "Caqueta") ;
-Countries_BR_provinces_SantaCatarina_cities_Florianopolis = UsePN (mkPN "Florianopolis") ;
-Countries_AUS_provinces_Queensland = UsePN (mkPN "Queensland") ;
-Countries_NL_provinces_NoordBrabant_cities_Eindhoven = UsePN (mkPN "Eindhoven") ;
-Countries_PA_provinces_Veraguas = UsePN (mkPN "Veraguas") ;
-Countries_RA_provinces_Chubut_cities_Rawson = UsePN (mkPN "Rawson") ;
-Countries_IND_provinces_TamilNadu_cities_Coimbatore = UsePN (mkPN "Coimbatore") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Queimados = UsePN (mkPN "Queimados") ;
-Countries_WAN_cities_Sokoto = UsePN (mkPN "Sokoto") ;
-Countries_CH_provinces_SH = UsePN (mkPN "SH") ;
-Countries_ES_provinces_Cabanas = UsePN (mkPN "Cabanas") ;
-Countries_ANG_provinces_CuanzaSul_cities_Sumbe = UsePN (mkPN "Sumbe") ;
-Countries_USA_provinces_Wisconsin = UsePN (mkPN "Wisconsin") ;
-Ghana = UsePN (mkPN "Ghana") ;
-Countries_IR_provinces_Lorestan_cities_Khorramabad = UsePN (mkPN "Khorramabad") ;
-Countries_BR_provinces_DistritoFederal_cities_Brasilia = UsePN (mkPN "Brasilia") ;
-Countries_S_provinces_Jonkoping_cities_Jonkoping = UsePN (mkPN "Jonkoping") ;
-Rivers_Jenissej = UsePN (mkPN "Jenissej") ;
-Mountains_Fako = UsePN (mkPN "Fako") ;
-Countries_VN_provinces_VinhPhu = UsePN (mkPN "Vinh Phu") ;
-Islands_Alderney = UsePN (mkPN "Alderney") ;
-Countries_USA_provinces_Tennessee_cities_NashvilleDavidson = UsePN (mkPN "Nashville Davidson") ;
-Islands_Kreta = UsePN (mkPN "Kreta") ;
-Countries_THA_provinces_NongKhai = UsePN (mkPN "Nong Khai") ;
-Norway = UsePN (mkPN "Norway") ;
-Countries_MEX_provinces_Morelos_cities_Cuernavaca = UsePN (mkPN "Cuernavaca") ;
-Rivers_Paraguay = UsePN (mkPN "Paraguay") ;
-Lakes_LakeMichigan = UsePN (mkPN "Lake Michigan") ;
-Countries_VN_provinces_LaoCai = UsePN (mkPN "Lao Cai") ;
-Countries_BR_provinces_SaoPaulo_cities_Barueri = UsePN (mkPN "Barueri") ;
-Countries_TJ_provinces_Qinghai_cities_Xining = UsePN (mkPN "Xining") ;
-Denmark = UsePN (mkPN "Denmark") ;
-Countries_UA_provinces_Kharkivska = UsePN (mkPN "Kharkivska") ;
-Countries_ET_provinces_SinaashShamaliyah = UsePN (mkPN "Sina ash Shamaliyah") ;
-Countries_IR_provinces_Kordestan = UsePN (mkPN "Kordestan") ;
-Countries_J_provinces_Kanagawa_cities_Yokohama = UsePN (mkPN "Yokohama") ;
-Islands_Westray = UsePN (mkPN "Westray") ;
-Seas_NorwegianSea = UsePN (mkPN "Norwegian Sea") ;
-Countries_CR_provinces_Cartago = UsePN (mkPN "Cartago") ;
-Countries_USA_provinces_Oregon_cities_Portland = UsePN (mkPN "Portland") ;
-Countries_PL_provinces_Katowickie_cities_Sosnowiec = UsePN (mkPN "Sosnowiec") ;
-Countries_CO_provinces_Huila_cities_Neiva = UsePN (mkPN "Neiva") ;
-Countries_BR_provinces_Parana_cities_FozdoIguacu = UsePN (mkPN "Foz do Iguacu") ;
-Countries_RA_provinces_EntreRios_cities_Parana = UsePN (mkPN "Parana") ;
-Countries_PL_provinces_Suwalskie_cities_Suwalki = UsePN (mkPN "Suwalki") ;
-Countries_USA_provinces_Florida_cities_FortLauderdale = UsePN (mkPN "Fort Lauderdale") ;
-Countries_PY_cities_Asuncion = UsePN (mkPN "Asuncion") ;
-Countries_TJ_provinces_Shaanxi_cities_Xi = UsePN (mkPN "Xi") ;
-Rivers_Niger = UsePN (mkPN "Niger") ;
-Countries_TJ_provinces_Beijing_munic_cities_Beijing = UsePN (mkPN "Beijing") ;
-Countries_PE_provinces_Apurimac_cities_Abancay = UsePN (mkPN "Abancay") ;
-Countries_CDN_provinces_NovaScotia_cities_Halifax = UsePN (mkPN "Halifax") ;
-Countries_IR_provinces_Tehran_cities_Qazvin = UsePN (mkPN "Qazvin") ;
-Countries_CDN_provinces_Newfoundland_cities_SaintJohns = UsePN (mkPN "Saint Johns") ;
-Countries_E_provinces_Andalusia_cities_Malaga = UsePN (mkPN "Malaga") ;
-Countries_SN_provinces_Fatick_cities_Fatick = UsePN (mkPN "Fatick") ;
-Islands_SaoMiguel = UsePN (mkPN "Sao Miguel") ;
-Countries_R_provinces_Rep_ofBuryatiya_cities_UlanUde = UsePN (mkPN "Ulan Ude") ;
-Countries_EAT_provinces_Iringa = UsePN (mkPN "Iringa") ;
-Countries_AUS_provinces_NorthernTerritory_cities_Darwin = UsePN (mkPN "Darwin") ;
-Islands_Ascension = UsePN (mkPN "Ascension") ;
-Countries_MAL_provinces_Perak_cities_Taiping = UsePN (mkPN "Taiping") ;
-Countries_BR_provinces_Parana_cities_Paranagua = UsePN (mkPN "Paranagua") ;
-Mountains_Oeraefajoekull = UsePN (mkPN "Oeraefajoekull") ;
-Countries_CDN_provinces_Ontario_cities_Kitchener = UsePN (mkPN "Kitchener") ;
-Countries_CO_provinces_SantanderdelSur_cities_Barrancabermeja = UsePN (mkPN "Barrancabermeja") ;
-Islands_Barbados = UsePN (mkPN "Barbados") ;
-Countries_IND_provinces_TamilNadu_cities_Madurai = UsePN (mkPN "Madurai") ;
-Countries_BR_provinces_Bahia_cities_Alagoinhas = UsePN (mkPN "Alagoinhas") ;
-Countries_USA_provinces_Iowa = UsePN (mkPN "Iowa") ;
-Countries_TJ_provinces_Henan_cities_Zhumadian = UsePN (mkPN "Zhumadian") ;
-Countries_UZB_provinces_Toshkent_cities_Chirchiq = UsePN (mkPN "Chirchiq") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoCaetanodoSul = UsePN (mkPN "Sao Caetano do Sul") ;
-Countries_D_provinces_Sachsen = UsePN (mkPN "Sachsen") ;
-Countries_ROK_cities_Ulsan = UsePN (mkPN "Ulsan") ;
-Countries_R_provinces_Rep_ofTatarstan_cities_NaberezhnyeChelny = UsePN (mkPN "Naberezhnye Chelny") ;
-Countries_TM_provinces_Dashhowuz = UsePN (mkPN "Dashhowuz") ;
-Countries_TJ_provinces_Heilongjiang_cities_Jiamusi = UsePN (mkPN "Jiamusi") ;
-Countries_BR_provinces_Parana_cities_Cascavel = UsePN (mkPN "Cascavel") ;
-Countries_IND_provinces_Punjab_cities_Jalandhar = UsePN (mkPN "Jalandhar") ;
-Countries_MYA_provinces_Kayah = UsePN (mkPN "Kayah") ;
-Rivers_Gambia = UsePN (mkPN "Gambia") ;
-Countries_SUD_provinces_Darfur_cities_alFasher = UsePN (mkPN "al Fasher") ;
-Countries_TR_provinces_Kars = UsePN (mkPN "Kars") ;
-Countries_RI_cities_Yogyakarta = UsePN (mkPN "Yogyakarta") ;
-Countries_ET_provinces_BeniSuef = UsePN (mkPN "Beni Suef") ;
-Countries_RSA_provinces_NorthWest = UsePN (mkPN "North West") ;
-Countries_UAE_provinces_AshShariqah = UsePN (mkPN "Ash Shariqah") ;
-Mali = UsePN (mkPN "Mali") ;
-Countries_UZB_provinces_Qoraqalpoghiston_cities_Nukus = UsePN (mkPN "Nukus") ;
-Countries_I_provinces_Calabria_cities_Cosenza = UsePN (mkPN "Cosenza") ;
-Countries_R_provinces_Kurganskayaoblast = UsePN (mkPN "Kurganskaya oblast") ;
-Countries_F_provinces_ChampagneArdenne_cities_ChalonssurMarne = UsePN (mkPN "Chalons sur Marne") ;
-Islands_Khark = UsePN (mkPN "Khark") ;
-Countries_cid_cia_Mayotte_cities_Mamoutzou = UsePN (mkPN "Mamoutzou") ;
-Organizations_G_9 = UsePN (mkPN "Group of 9") ;
-Countries_HCA_provinces_FranciscoMorazan_cities_Siguatepeque = UsePN (mkPN "Siguatepeque") ;
-Islands_BishopRock = UsePN (mkPN "Bishop Rock") ;
-Countries_PE_provinces_Pasco_cities_CerrodePasco = UsePN (mkPN "Cerro de Pasco") ;
-Rivers_Amudarja = UsePN (mkPN "Amudarja") ;
-Countries_TJ_provinces_Guangdong_cities_Dongguan = UsePN (mkPN "Dongguan") ;
-Countries_GB_provinces_GreaterManchester = UsePN (mkPN "Greater Manchester") ;
-Countries_USA_provinces_Minnesota = UsePN (mkPN "Minnesota") ;
-Countries_AUS_provinces_SouthAustralia = UsePN (mkPN "South Australia") ;
-Countries_USA_provinces_Texas_cities_Houston = UsePN (mkPN "Houston") ;
-Countries_YV_provinces_Guarico_cities_SanJuan = UsePN (mkPN "San Juan") ;
-Countries_CO_provinces_Guaviare_cities_SanJosedelGuaviare = UsePN (mkPN "San Jose del Guaviare") ;
-Countries_GB_provinces_Berkshire = UsePN (mkPN "Berkshire") ;
-Countries_cid_cia_Guadeloupe = UsePN (mkPN "Guadeloupe") ;
-Countries_D_provinces_Niedersachsen_cities_Wolfsburg = UsePN (mkPN "Wolfsburg") ;
-Countries_GB_provinces_EastSussex_cities_Lewes = UsePN (mkPN "Lewes") ;
-Countries_MEX_provinces_Durango_cities_Durango = UsePN (mkPN "Durango") ;
-Countries_GB_provinces_Cornwall_IslesofScilly_cities_Truro = UsePN (mkPN "Truro") ;
-Countries_CH_provinces_SO = UsePN (mkPN "SO") ;
-Countries_TJ_provinces_Heilongjiang_cities_Suihua = UsePN (mkPN "Suihua") ;
-Countries_KAZ_provinces_ShyghysQazaqstan_cities_Oskemen = UsePN (mkPN "Oskemen") ;
-Countries_R_provinces_Rep_ofTatarstan_cities_Zelenodolysk = UsePN (mkPN "Zelenodolysk") ;
-Countries_N_provinces_Vestfold_cities_Toensberg = UsePN (mkPN "Toensberg") ;
-Organizations_OECD = UsePN (mkPN "Organization for Economic Cooperation and Development") ;
-Countries_I_provinces_Calabria_cities_Messina = UsePN (mkPN "Messina") ;
-Countries_D_provinces_BadenWurttemberg_cities_Pforzheim = UsePN (mkPN "Pforzheim") ;
-Rivers_Lomami = UsePN (mkPN "Lomami") ;
-Countries_CH_provinces_TG = UsePN (mkPN "TG") ;
-Countries_RSA_provinces_KwazuluNatal_cities_Durban = UsePN (mkPN "Durban") ;
-Mountains_Kilimanjaro = UsePN (mkPN "Kilimanjaro") ;
-Countries_SYR_cities_Damascus = UsePN (mkPN "Damascus") ;
-Countries_USA_provinces_NorthCarolina_cities_WinstonSalem = UsePN (mkPN "Winston Salem") ;
-Countries_GUY_cities_Georgetown = UsePN (mkPN "Georgetown") ;
-Countries_F_provinces_RhoneAlpes_cities_SaintEtienne = UsePN (mkPN "Saint Etienne") ;
-Countries_R_provinces_Saratovskayaoblast = UsePN (mkPN "Saratovskaya oblast") ;
-Countries_KAZ_provinces_Qaraghandy = UsePN (mkPN "Qaraghandy") ;
-Countries_IND_provinces_Meghalaya_cities_Shillong = UsePN (mkPN "Shillong") ;
-Countries_MA_cities_Oujda = UsePN (mkPN "Oujda") ;
-SierraLeone = UsePN (mkPN "Sierra Leone") ;
-Countries_MA_cities_Safi = UsePN (mkPN "Safi") ;
-Countries_EAK_provinces_Nairobi_cities_Nairobi = UsePN (mkPN "Nairobi") ;
-Countries_IND_provinces_Bihar_cities_Jamshedpur = UsePN (mkPN "Jamshedpur") ;
-Countries_BR_cities_NossaSenhoradoSocorro = UsePN (mkPN "Nossa Senhora do Socorro") ;
-Countries_VN_provinces_QuangNinh = UsePN (mkPN "Quang Ninh") ;
-Countries_N_provinces_Telemark = UsePN (mkPN "Telemark") ;
-Countries_TM_provinces_Dashhowuz_cities_Tashauz = UsePN (mkPN "Tashauz") ;
-Countries_TJ_provinces_Anhui_cities_Luan = UsePN (mkPN "Luan") ;
-Countries_YV_provinces_Sucre_cities_Cumana = UsePN (mkPN "Cumana") ;
-Countries_USA_provinces_Massachusetts_cities_Worcester = UsePN (mkPN "Worcester") ;
-Organizations_C = UsePN (mkPN "Commonwealth") ;
-Countries_RO_provinces_Bucuresti = UsePN (mkPN "Bucuresti") ;
-Countries_UAE_provinces_AbuDhabi = UsePN (mkPN "Abu Dhabi") ;
-Countries_THA_provinces_KhonKaen = UsePN (mkPN "Khon Kaen") ;
-Countries_USA_provinces_NewMexico_cities_SantaFe = UsePN (mkPN "Santa Fe") ;
-Countries_BOL_cities_Sucre = UsePN (mkPN "Sucre") ;
-Countries_ZRE_provinces_HautZaire_cities_Kisangani = UsePN (mkPN "Kisangani") ;
-Countries_GR_provinces_NotionAiyaion = UsePN (mkPN "Notion Aiyaion") ;
-Countries_WAN_cities_AdoEkiti = UsePN (mkPN "Ado Ekiti") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Hamm = UsePN (mkPN "Hamm") ;
-Countries_GB_provinces_NorthernIreland = UsePN (mkPN "Northern Ireland") ;
-Countries_IND_provinces_Delhi = UsePN (mkPN "Delhi") ;
-Countries_CDN_provinces_NorthwestTerritories_cities_Yellowknife = UsePN (mkPN "Yellowknife") ;
-Taiwan = UsePN (mkPN "Taiwan") ;
-Countries_TJ_provinces_Shanxi = UsePN (mkPN "Shanxi") ;
-Countries_CO_provinces_Magdalena = UsePN (mkPN "Magdalena") ;
-Countries_CO_provinces_Antioquia = UsePN (mkPN "Antioquia") ;
-Countries_TJ_provinces_Guizhou = UsePN (mkPN "Guizhou") ;
-Organizations_BIS = UsePN (mkPN "Bank for International Settlements") ;
-Paraguay = UsePN (mkPN "Paraguay") ;
-Countries_D_provinces_RheinlandPfalz = UsePN (mkPN "Rheinland Pfalz") ;
-Countries_P_provinces_Beja = UsePN (mkPN "Beja") ;
-Rwanda = UsePN (mkPN "Rwanda") ;
-Countries_PL_provinces_Kieleckie_cities_Kielce = UsePN (mkPN "Kielce") ;
-Afghanistan = UsePN (mkPN "Afghanistan") ;
-Countries_PK_cities_Chiniot = UsePN (mkPN "Chiniot") ;
-Countries_ROK_cities_Songnam = UsePN (mkPN "Songnam") ;
-Organizations_IOC = UsePN (mkPN "International Olympic Committee") ;
-Countries_TJ_provinces_Zhejiang = UsePN (mkPN "Zhejiang") ;
-Mountains_MtRobson = UsePN (mkPN "Mt Robson") ;
-Countries_R_provinces_Stavropolskykray_cities_Stavropol = UsePN (mkPN "Stavropol") ;
-Countries_GB_provinces_Cardiff_cities_Cardiff = UsePN (mkPN "Cardiff") ;
-Countries_C_provinces_Cienfuegos_cities_Cienfuegos = UsePN (mkPN "Cienfuegos") ;
-Countries_TJ_provinces_Shandong_cities_Jining = UsePN (mkPN "Jining") ;
-Countries_J_provinces_Tochigi = UsePN (mkPN "Tochigi") ;
-Countries_ET_provinces_KafrelSheikh_cities_KafrelSheikh = UsePN (mkPN "Kafr el Sheikh") ;
-Countries_E_provinces_BasqueCountry_cities_Donostia = UsePN (mkPN "Donostia") ;
-Countries_UA_provinces_Sumska = UsePN (mkPN "Sumska") ;
-Countries_HCA_provinces_GraciasaDios_cities_PuertoLempira = UsePN (mkPN "Puerto Lempira") ;
-Organizations_OAS = UsePN (mkPN "Organization of American States") ;
-Countries_J_provinces_Miyagi_cities_Sendai = UsePN (mkPN "Sendai") ;
-Countries_R_provinces_Krasnodarskykray_cities_Novorossiysk = UsePN (mkPN "Novorossiysk") ;
-Countries_HCA_provinces_LaPaz = UsePN (mkPN "La Paz") ;
-Countries_R_provinces_Vologodskayaoblast = UsePN (mkPN "Vologodskaya oblast") ;
-Countries_PE_provinces_Lima_cities_Lima = UsePN (mkPN "Lima") ;
-Countries_GB_provinces_Cambridgeshire_cities_Peterborough = UsePN (mkPN "Peterborough") ;
-Countries_IR_provinces_Mazandaran_cities_Amol = UsePN (mkPN "Amol") ;
-Countries_BR_provinces_SaoPaulo_cities_SaoJosedoRioPreto = UsePN (mkPN "Sao Jose do Rio Preto") ;
-Countries_BR_provinces_Sergipe = UsePN (mkPN "Sergipe") ;
-Mountains_PikRevoluzija = UsePN (mkPN "Pik Revoluzija") ;
-Islands_Lefkas = UsePN (mkPN "Lefkas") ;
-Countries_RO_provinces_Suceava_cities_Suceava = UsePN (mkPN "Suceava") ;
-Countries_RA_provinces_BuenosAires_cities_LomasdeZamoras = UsePN (mkPN "Lomas de Zamoras") ;
-Countries_GB_provinces_Newport_cities_Newport = UsePN (mkPN "Newport") ;
-Countries_THA_provinces_NorthernRegion = UsePN (mkPN "Northern Region") ;
-Countries_P_provinces_Porto_cities_VilaNovadeGaia = UsePN (mkPN "Vila Nova de Gaia") ;
-Countries_RC_provinces_Taichung_munic_cities_Taichung = UsePN (mkPN "Taichung") ;
-EquatorialGuinea = UsePN (mkPN "Equatorial Guinea") ;
-Countries_GB_provinces_Essex_cities_Braintree = UsePN (mkPN "Braintree") ;
-Countries_CDN_cities_Surrey = UsePN (mkPN "Surrey") ;
-Islands_Hispaniola = UsePN (mkPN "Hispaniola") ;
-Countries_N_provinces_Buskerud_cities_Drammen = UsePN (mkPN "Drammen") ;
-Countries_GB_provinces_GreaterLondon = UsePN (mkPN "Greater London") ;
-Countries_Z_provinces_Copperbelt_cities_Luanshya = UsePN (mkPN "Luanshya") ;
-Countries_TJ_provinces_NeiMonggol_cities_Baotou = UsePN (mkPN "Baotou") ;
-Lakes_LakeAssale = UsePN (mkPN "Lake Assale") ;
-Countries_VN_provinces_NinhBinh = UsePN (mkPN "Ninh Binh") ;
-Countries_cid_cia_American_Samoa = UsePN (mkPN "American Samoa") ;
-Countries_TR_provinces_Sirnak = UsePN (mkPN "Sirnak") ;
-Countries_C_provinces_Camaguey_cities_Camaguey = UsePN (mkPN "Camaguey") ;
-Countries_MEX_provinces_Queretaro_cities_Queretaro = UsePN (mkPN "Queretaro") ;
-Countries_PL_provinces_Piotrkowskie = UsePN (mkPN "Piotrkowskie") ;
-Countries_USA_provinces_Florida_cities_St_Petersburg = UsePN (mkPN "St. Petersburg") ;
-Countries_PE_provinces_Puno = UsePN (mkPN "Puno") ;
-Countries_UA_provinces_IvanoFrankivska = UsePN (mkPN "Ivano Frankivska") ;
-Countries_THA_provinces_Yala = UsePN (mkPN "Yala") ;
-Countries_MYA_provinces_Sagaing_cities_Monywa = UsePN (mkPN "Monywa") ;
-Countries_ET_provinces_ElSuweiz_munic_cities_Suez = UsePN (mkPN "Suez") ;
-Countries_J_provinces_Okinawa = UsePN (mkPN "Okinawa") ;
-Countries_UA_provinces_Dnipropetrovska_cities_KryvyyRih = UsePN (mkPN "Kryvyy Rih") ;
-Countries_PK_cities_Bahawalpur = UsePN (mkPN "Bahawalpur") ;
-Countries_EC_cities_Quito = UsePN (mkPN "Quito") ;
-Countries_cid_cia_Martinique = UsePN (mkPN "Martinique") ;
-Countries_TJ_provinces_Jilin_cities_Longjing = UsePN (mkPN "Longjing") ;
-Countries_CDN_provinces_Quebec_cities_Longueuil = UsePN (mkPN "Longueuil") ;
-Countries_GB_provinces_Oxfordshire_cities_Oxford = UsePN (mkPN "Oxford") ;
-Lakes_Issyk_Kul = UsePN (mkPN "Issyk-Kul") ;
-Countries_BR_provinces_MinasGerais_cities_PocosdeCaldas = UsePN (mkPN "Pocos de Caldas") ;
-Countries_GB_provinces_Wrexham = UsePN (mkPN "Wrexham") ;
-Lakes_GreatSlaveLake = UsePN (mkPN "Great Slave Lake") ;
-Islands_Mohilla = UsePN (mkPN "Mohilla") ;
-Countries_PE_provinces_Piura = UsePN (mkPN "Piura") ;
-Countries_GB_provinces_Wrexham_cities_Wrexham = UsePN (mkPN "Wrexham") ;
-Countries_THA_provinces_Ranong = UsePN (mkPN "Ranong") ;
-Countries_KAZ_provinces_Kokchetau = UsePN (mkPN "Kokchetau") ;
-Countries_C_provinces_Cienfuegos = UsePN (mkPN "Cienfuegos") ;
-Countries_PE_provinces_Callao = UsePN (mkPN "Callao") ;
-Countries_PE_provinces_Lambayeque_cities_Chiclayo = UsePN (mkPN "Chiclayo") ;
-Countries_UA_provinces_Poltavska_cities_Poltava = UsePN (mkPN "Poltava") ;
-Rivers_Nile = UsePN (mkPN "Nile") ;
-Countries_IND_provinces_UttarPradesh_cities_Varanasi = UsePN (mkPN "Varanasi") ;
-Countries_TR_provinces_Siirt_cities_Siirt = UsePN (mkPN "Siirt") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Serpukhov = UsePN (mkPN "Serpukhov") ;
-Countries_DK_cities_Aalborg = UsePN (mkPN "Aalborg") ;
-Countries_PL_provinces_Bialskopodlaskie = UsePN (mkPN "Bialskopodlaskie") ;
-Countries_PK_cities_LahoreCantonment = UsePN (mkPN "Lahore Cantonment") ;
-Countries_S_provinces_Kopparberg = UsePN (mkPN "Kopparberg") ;
-Countries_RSA_cities_Germiston = UsePN (mkPN "Germiston") ;
-Countries_MAL_cities_SeloyangBaru = UsePN (mkPN "Seloyang Baru") ;
-Countries_USA_provinces_Indiana_cities_Evansville = UsePN (mkPN "Evansville") ;
-Countries_ANG_provinces_Benguela_cities_Benguela = UsePN (mkPN "Benguela") ;
-Seas_NorthSea = UsePN (mkPN "North Sea") ;
-Countries_UAE_provinces_UmmalQaywayn = UsePN (mkPN "Umm al Qaywayn") ;
-Countries_PL_provinces_Walbrzyskie = UsePN (mkPN "Walbrzyskie") ;
-Countries_BR_provinces_Bahia_cities_Camacari = UsePN (mkPN "Camacari") ;
-Countries_BR_cities_SapucaiadoSul = UsePN (mkPN "Sapucaia do Sul") ;
-Countries_CO_provinces_Meta = UsePN (mkPN "Meta") ;
-Countries_D_provinces_BadenWurttemberg_cities_Heidelberg = UsePN (mkPN "Heidelberg") ;
-Countries_ETH_cities_Jima = UsePN (mkPN "Jima") ;
-Organizations_IFAD = UsePN (mkPN "International Fund for Agricultural Development") ;
-Countries_H_provinces_Tolna_cities_Szekszard = UsePN (mkPN "Szekszard") ;
-Countries_R_provinces_Moskovskayaoblast_cities_OrekhovoZuyevo = UsePN (mkPN "Orekhovo Zuyevo") ;
-Countries_cid_cia_Saint_Pierre_and_Miquelon_cities_Saint_Pierre = UsePN (mkPN "Saint-Pierre") ;
-Countries_GB_provinces_Gloucestershire_cities_Cheltenham = UsePN (mkPN "Cheltenham") ;
-Mountains_DjebelAures = UsePN (mkPN "Djebel Aures") ;
-Countries_BR_provinces_RioGrandedoSul_cities_Bage = UsePN (mkPN "Bage") ;
-Countries_CO_provinces_SantaFedeBogota_DC_cities_Bogota = UsePN (mkPN "Bogota") ;
-Countries_PE_provinces_Junin = UsePN (mkPN "Junin") ;
-Countries_RO_provinces_BistritaNasaud_cities_Bistrita = UsePN (mkPN "Bistrita") ;
-Countries_BR_provinces_Amapa_cities_Macapa = UsePN (mkPN "Macapa") ;
-Countries_R_provinces_Kaliningradskayaoblast_cities_Kaliningrad = UsePN (mkPN "Kaliningrad") ;
-Countries_J_provinces_Gumma = UsePN (mkPN "Gumma") ;
-Countries_TJ_provinces_Hubei_cities_Honghu = UsePN (mkPN "Honghu") ;
-Countries_RC_provinces_Taitung = UsePN (mkPN "Taitung") ;
-Suriname = UsePN (mkPN "Suriname") ;
-Countries_RC_provinces_Nantou = UsePN (mkPN "Nantou") ;
-Countries_USA_provinces_Pennsylvania_cities_Harrisburg = UsePN (mkPN "Harrisburg") ;
-Countries_cid_cia_Glorioso_Islands = UsePN (mkPN "Glorioso Islands") ;
-Countries_UA_provinces_Zhytomyrska_cities_Zhytomyr = UsePN (mkPN "Zhytomyr") ;
-Countries_GB_provinces_Suffolk_cities_Ipswich = UsePN (mkPN "Ipswich") ;
-Countries_I_provinces_Campania_cities_Napoli = UsePN (mkPN "Napoli") ;
-Countries_KAZ_provinces_Torghay_cities_Arqalyq = UsePN (mkPN "Arqalyq") ;
-Countries_ANG_provinces_Huila = UsePN (mkPN "Huila") ;
-Countries_E_provinces_Madrid_cities_Alcorcon = UsePN (mkPN "Alcorcon") ;
-Countries_I_provinces_Campania_cities_Salerno = UsePN (mkPN "Salerno") ;
-Countries_PK_cities_Sukkur = UsePN (mkPN "Sukkur") ;
-Countries_CAM_provinces_Est = UsePN (mkPN "Est") ;
-Countries_IND_provinces_Delhi_cities_Ghaziabad = UsePN (mkPN "Ghaziabad") ;
-Countries_ROK_cities_Taejon = UsePN (mkPN "Taejon") ;
-Countries_TJ_provinces_Guizhou_cities_Kaili = UsePN (mkPN "Kaili") ;
-Countries_MOC_provinces_CaboDelgado = UsePN (mkPN "Cabo Delgado") ;
-Countries_BR_provinces_MinasGerais_cities_PatosdeMinas = UsePN (mkPN "Patos de Minas") ;
-Countries_ET_provinces_Matruh_cities_MarsaMatruh = UsePN (mkPN "Marsa Matruh") ;
-Countries_RO_provinces_Mures_cities_TirguMures = UsePN (mkPN "Tirgu Mures") ;
-Countries_TJ_provinces_Henan_cities_Xuchang = UsePN (mkPN "Xuchang") ;
-Countries_Z_provinces_Lusaka = UsePN (mkPN "Lusaka") ;
-Countries_TR_provinces_Van = UsePN (mkPN "Van") ;
-Countries_THA_provinces_SamutSakhon = UsePN (mkPN "Samut Sakhon") ;
-Countries_MEX_provinces_Tamaulipas_cities_NuevoLaredo = UsePN (mkPN "Nuevo Laredo") ;
-Deserts_GrandSandDesert = UsePN (mkPN "Grand Sand Desert") ;
-Countries_IND_provinces_Assam_cities_Dispur = UsePN (mkPN "Dispur") ;
-Rivers_Bomu = UsePN (mkPN "Bomu") ;
-Countries_EAT_provinces_Mtwara = UsePN (mkPN "Mtwara") ;
-Countries_R_provinces_Sverdlovskayaoblast_cities_NizhniyTagil = UsePN (mkPN "Nizhniy Tagil") ;
-Countries_THA_provinces_Phitsanulok = UsePN (mkPN "Phitsanulok") ;
-Countries_RA_provinces_EntreRios = UsePN (mkPN "Entre Rios") ;
-Countries_USA_provinces_SouthDakota = UsePN (mkPN "South Dakota") ;
-Rivers_Dnepr = UsePN (mkPN "Dnepr") ;
-Countries_WSA_cities_ElAlaiun = UsePN (mkPN "El Alaiun") ;
-Botswana = UsePN (mkPN "Botswana") ;
-Countries_K_cities_PhnomPenh = UsePN (mkPN "Phnom Penh") ;
-Countries_PL_provinces_Jeleniogorskie = UsePN (mkPN "Jeleniogorskie") ;
-Countries_R_provinces_Kemerovskayaoblast_cities_Kiselyovsk = UsePN (mkPN "Kiselyovsk") ;
-Countries_I_provinces_Calabria_cities_Catanzaro = UsePN (mkPN "Catanzaro") ;
-Countries_TJ_provinces_Fujian_cities_Yongan = UsePN (mkPN "Yongan") ;
-Moldova = UsePN (mkPN "Moldova") ;
-Countries_IND_provinces_Maharashtra_cities_Thane = UsePN (mkPN "Thane") ;
-Countries_PL_provinces_Siedleckie_cities_Siedlce = UsePN (mkPN "Siedlce") ;
-Countries_CO_provinces_Tolima = UsePN (mkPN "Tolima") ;
-Countries_IND_provinces_Gujarat_cities_Vadodara = UsePN (mkPN "Vadodara") ;
-Countries_UA_provinces_Zhytomyrska = UsePN (mkPN "Zhytomyrska") ;
-Countries_GB_provinces_Carmarthenshire = UsePN (mkPN "Carmarthenshire") ;
-Countries_TJ_provinces_Sichuan_cities_Deyang = UsePN (mkPN "Deyang") ;
-Countries_D_provinces_BadenWurttemberg_cities_Ulm = UsePN (mkPN "Ulm") ;
-Countries_IND_provinces_Rajasthan_cities_Jodhpur = UsePN (mkPN "Jodhpur") ;
-Countries_TR_provinces_Gumushane_cities_Gumushane = UsePN (mkPN "Gumushane") ;
-Countries_EAK_provinces_Coast = UsePN (mkPN "Coast") ;
-Countries_TJ_provinces_Shanghai_munic = UsePN (mkPN "Shanghai (munic.)") ;
-Countries_PL_provinces_Lubelskie_cities_Lublin = UsePN (mkPN "Lublin") ;
-Countries_BR_provinces_Maranhao_cities_Timon = UsePN (mkPN "Timon") ;
-Countries_CDN_provinces_BritishColumbia = UsePN (mkPN "British Columbia") ;
-Eritrea = UsePN (mkPN "Eritrea") ;
-Countries_RA_provinces_Mendoza_cities_Mendoza = UsePN (mkPN "Mendoza") ;
-Countries_THA_provinces_UbonRatchathani_cities_UbonRatchathani = UsePN (mkPN "Ubon Ratchathani") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Balashikha = UsePN (mkPN "Balashikha") ;
-Countries_TR_provinces_Icel = UsePN (mkPN "Icel") ;
-Countries_DZ_cities_Batna = UsePN (mkPN "Batna") ;
-Countries_TJ_provinces_Hubei_cities_Laohekou = UsePN (mkPN "Laohekou") ;
-Countries_RI_cities_Magelang = UsePN (mkPN "Magelang") ;
-Countries_VN_provinces_HaTay = UsePN (mkPN "Ha Tay") ;
-Countries_USA_provinces_Wyoming = UsePN (mkPN "Wyoming") ;
-Countries_PA_provinces_Veraguas_cities_Santiago = UsePN (mkPN "Santiago") ;
-Countries_MAL_provinces_Terengganu_cities_KualaTerengganu = UsePN (mkPN "Kuala Terengganu") ;
-Countries_DZ_cities_Oran = UsePN (mkPN "Oran") ;
-Countries_MYA_provinces_Mon_cities_Moulmein = UsePN (mkPN "Moulmein") ;
-Countries_N_provinces_Akershus = UsePN (mkPN "Akershus") ;
-Islands_Flores = UsePN (mkPN "Flores") ;
-Countries_MAL_provinces_Sabah = UsePN (mkPN "Sabah") ;
-Countries_TJ_provinces_Zhejiang_cities_Shaoxing = UsePN (mkPN "Shaoxing") ;
-Organizations_EU = UsePN (mkPN "European Union") ;
-Countries_YV_provinces_Amazonas_cities_PuertoAyacucho = UsePN (mkPN "Puerto Ayacucho") ;
-Countries_TJ_provinces_Hubei_cities_Shashi = UsePN (mkPN "Shashi") ;
-Islands_Providenciales = UsePN (mkPN "Providenciales") ;
-Countries_TJ_provinces_Tianjin_munic = UsePN (mkPN "Tianjin (munic.)") ;
-Countries_DK_cities_Aarhus = UsePN (mkPN "Aarhus") ;
-Countries_THA_provinces_UdonThani = UsePN (mkPN "Udon Thani") ;
-Countries_TJ_provinces_Gansu_cities_Baiyin = UsePN (mkPN "Baiyin") ;
-Countries_GB_provinces_Dorset_cities_Bournemouth = UsePN (mkPN "Bournemouth") ;
-Countries_J_provinces_Okayama_cities_Okayama = UsePN (mkPN "Okayama") ;
-Countries_USA_provinces_Ohio_cities_Akron = UsePN (mkPN "Akron") ;
-Countries_CDN_provinces_Ontario_cities_Vaughan = UsePN (mkPN "Vaughan") ;
-Argentina = UsePN (mkPN "Argentina") ;
-Countries_EAT_provinces_Dodoma = UsePN (mkPN "Dodoma") ;
-Countries_BR_provinces_RiodeJaneiro_cities_RiodeJaneiro = UsePN (mkPN "Rio de Janeiro") ;
-Countries_GB_provinces_Cumbria_cities_Carlisle = UsePN (mkPN "Carlisle") ;
-Countries_GB_provinces_Norfolk_cities_KingsLynn = UsePN (mkPN "Kings Lynn") ;
-Countries_UA_provinces_Sumska_cities_Sumy = UsePN (mkPN "Sumy") ;
-Islands_Hawaii = UsePN (mkPN "Hawaii") ;
-Countries_C_provinces_LaHabana = UsePN (mkPN "La Habana") ;
-Countries_WAN_cities_Calabar = UsePN (mkPN "Calabar") ;
-Countries_H_provinces_Heves_cities_Eger = UsePN (mkPN "Eger") ;
-Countries_BR_provinces_Bahia_cities_Itabuna = UsePN (mkPN "Itabuna") ;
-Countries_WAN_cities_Ede = UsePN (mkPN "Ede") ;
-Countries_TJ_provinces_Henan_cities_Luoyang = UsePN (mkPN "Luoyang") ;
-Countries_TJ_provinces_Liaoning_cities_Xingcheng = UsePN (mkPN "Xingcheng") ;
-Countries_N_provinces_NordTrondelag_cities_Steinkjer = UsePN (mkPN "Steinkjer") ;
-Countries_I_provinces_Sicilia_cities_Catania = UsePN (mkPN "Catania") ;
-Countries_S_provinces_Halland = UsePN (mkPN "Halland") ;
-Countries_RC_provinces_Changhua = UsePN (mkPN "Changhua") ;
-Countries_GB_provinces_Norfolk = UsePN (mkPN "Norfolk") ;
-Countries_SN_provinces_Tambacounda = UsePN (mkPN "Tambacounda") ;
-Countries_ANG_provinces_Cunene = UsePN (mkPN "Cunene") ;
-Countries_ZRE_provinces_Equateur_cities_Mbandaka = UsePN (mkPN "Mbandaka") ;
-Countries_ES_provinces_SantaAna = UsePN (mkPN "Santa Ana") ;
-Countries_ET_provinces_SinaalJanubiyah = UsePN (mkPN "Sina al Janubiyah") ;
-Countries_MOC_provinces_Manica_cities_Chimoio = UsePN (mkPN "Chimoio") ;
-Countries_F_provinces_Bourgogne = UsePN (mkPN "Bourgogne") ;
-Countries_MYA_provinces_Rakhine = UsePN (mkPN "Rakhine") ;
-Countries_C_provinces_CiudaddelaHabana = UsePN (mkPN "Ciudad de la Habana") ;
-Countries_KAZ_provinces_Atyrau = UsePN (mkPN "Atyrau") ;
-Countries_R_provinces_Kamchatskayaoblast = UsePN (mkPN "Kamchatskaya oblast") ;
-Countries_DOM_cities_SantoDomingo = UsePN (mkPN "Santo Domingo") ;
-Countries_HCA_provinces_Choluteca_cities_Choluteca = UsePN (mkPN "Choluteca") ;
-Countries_IND_provinces_Tripura = UsePN (mkPN "Tripura") ;
-Countries_BR_provinces_RioGrandedoNorte = UsePN (mkPN "Rio Grande do Norte") ;
-Islands_MarthasVineyard = UsePN (mkPN "Martha s Vineyard") ;
-Countries_cid_cia_Jarvis_Island = UsePN (mkPN "Jarvis Island") ;
-Countries_ZRE_provinces_Shaba_cities_Lubumbashi = UsePN (mkPN "Lubumbashi") ;
-Countries_S_provinces_Kalmar = UsePN (mkPN "Kalmar") ;
-Countries_PK_cities_Karachi = UsePN (mkPN "Karachi") ;
-Countries_I_provinces_Sardegna = UsePN (mkPN "Sardegna") ;
-Countries_GB_provinces_Flintshire = UsePN (mkPN "Flintshire") ;
-Countries_C_provinces_LasTunas_cities_VictoriadelasTunas = UsePN (mkPN "Victoria de las Tunas") ;
-Countries_RSA_provinces_EasternCape = UsePN (mkPN "Eastern Cape") ;
-Countries_IRQ_provinces_AlBasrah_cities_AlBasrah = UsePN (mkPN "Al Basrah") ;
-Countries_GB_provinces_Berkshire_cities_Reading = UsePN (mkPN "Reading") ;
-Countries_ANG_provinces_Cunene_cities_Ngiva = UsePN (mkPN "Ngiva") ;
-Countries_J_provinces_Tokushima_cities_Tokushima = UsePN (mkPN "Tokushima") ;
-Countries_ET_provinces_Qena = UsePN (mkPN "Qena") ;
-SanMarino = UsePN (mkPN "San Marino") ;
-Countries_BR_provinces_Ceara_cities_Caucaia = UsePN (mkPN "Caucaia") ;
-Countries_TR_provinces_Eskisehir = UsePN (mkPN "Eskisehir") ;
-Countries_RM_provinces_Fianarantsoa_cities_Fianarantsoa = UsePN (mkPN "Fianarantsoa") ;
-Countries_VN_provinces_LaiChau = UsePN (mkPN "Lai Chau") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Lyubertsy = UsePN (mkPN "Lyubertsy") ;
-Countries_MEX_provinces_Tamaulipas_cities_Reynosa = UsePN (mkPN "Reynosa") ;
-Countries_TJ_provinces_Liaoning_cities_Chaoyang = UsePN (mkPN "Chaoyang") ;
-Rivers_Ounasjoki = UsePN (mkPN "Ounasjoki") ;
-Countries_MOC_provinces_Gaza = UsePN (mkPN "Gaza") ;
-Organizations_UNIKOM = UsePN (mkPN "United Nations Iraq-Kuwait Observation Mission") ;
-Countries_TCH_cities_NDjamena = UsePN (mkPN "NDjamena") ;
-Countries_GB_provinces_Leicestershire_cities_Leicester = UsePN (mkPN "Leicester") ;
-Countries_TR_provinces_Adiyaman = UsePN (mkPN "Adiyaman") ;
-Countries_GB_provinces_Warwickshire_cities_Warwick = UsePN (mkPN "Warwick") ;
-Countries_TR_provinces_Izmir = UsePN (mkPN "Izmir") ;
-Countries_TJ_provinces_Jiangsu_cities_Xuzhou = UsePN (mkPN "Xuzhou") ;
-Countries_GB_provinces_AberconwyandColwyn_cities_ColwynBay = UsePN (mkPN "Colwyn Bay") ;
-Countries_CAM_provinces_Nord = UsePN (mkPN "Nord") ;
-Countries_WAN_cities_Abeokuta = UsePN (mkPN "Abeokuta") ;
-Countries_TJ_provinces_Fujian_cities_Xiamen = UsePN (mkPN "Xiamen") ;
-Countries_MEX_provinces_Puebla = UsePN (mkPN "Puebla") ;
-Countries_N_provinces_NordTrondelag = UsePN (mkPN "Nord Trondelag") ;
-Countries_TJ_provinces_Shandong_cities_Jiaonan = UsePN (mkPN "Jiaonan") ;
-Countries_TJ_provinces_NingxiaHuizu = UsePN (mkPN "Ningxia Huizu") ;
-Countries_PL_provinces_Gorzowskie_cities_GorzowWielkopolskie = UsePN (mkPN "Gorzow Wielkopolskie") ;
-Angola = UsePN (mkPN "Angola") ;
-Countries_RO_provinces_Mehedinti = UsePN (mkPN "Mehedinti") ;
-Countries_ET_provinces_ElIskandariya_munic_cities_Alexandria = UsePN (mkPN "Alexandria") ;
-Mountains_Popocatepetl = UsePN (mkPN "Popocatepetl") ;
-Lakes_KentuckyLake = UsePN (mkPN "Kentucky Lake") ;
-Countries_ET_provinces_ElDaqahliya_cities_ElMansura = UsePN (mkPN "El Mansura") ;
-Countries_C_provinces_SantiagodeCuba_cities_SantiagodeCuba = UsePN (mkPN "Santiago de Cuba") ;
-Countries_USA_provinces_Illinois_cities_Rockford = UsePN (mkPN "Rockford") ;
-Countries_USA_provinces_Colorado_cities_ColoradoSprings = UsePN (mkPN "Colorado Springs") ;
-Countries_PL_provinces_Skierniewickie = UsePN (mkPN "Skierniewickie") ;
-Countries_TAD_provinces_Kulob = UsePN (mkPN "Kulob") ;
-Organizations_ACCT = UsePN (mkPN "Agency for Cultural and Technical Cooperation") ;
-Countries_CZ_provinces_Jihomoravsky_cities_Zlin = UsePN (mkPN "Zlin") ;
-Countries_N_provinces_AustAgder_cities_Arendal = UsePN (mkPN "Arendal") ;
-Countries_TR_provinces_Nigde = UsePN (mkPN "Nigde") ;
-Organizations_APEC = UsePN (mkPN "Asia Pacific Economic Cooperation") ;
-Countries_MAL_provinces_Melaka_cities_Melaka = UsePN (mkPN "Melaka") ;
-Countries_RO_provinces_Giurgiu = UsePN (mkPN "Giurgiu") ;
-Rivers_Oka = UsePN (mkPN "Oka") ;
-Cuba = UsePN (mkPN "Cuba") ;
-Countries_BR_provinces_MinasGerais_cities_Uberlandia = UsePN (mkPN "Uberlandia") ;
-Countries_TR_provinces_Mus = UsePN (mkPN "Mus") ;
-Countries_GR_cities_Thessaloniki = UsePN (mkPN "Thessaloniki") ;
-Countries_J_provinces_Tokyo = UsePN (mkPN "Tokyo") ;
-Countries_USA_provinces_Texas_cities_Beaumont = UsePN (mkPN "Beaumont") ;
-Countries_BR_provinces_MatoGrossodoSul_cities_CampoGrande = UsePN (mkPN "Campo Grande") ;
-Countries_THA_provinces_Phayao = UsePN (mkPN "Phayao") ;
-Mountains_Kasbek = UsePN (mkPN "Kasbek") ;
-Countries_THA_provinces_Songkhla = UsePN (mkPN "Songkhla") ;
-Countries_TJ_provinces_Henan_cities_Zhengzhou = UsePN (mkPN "Zhengzhou") ;
-Countries_RC_provinces_Chiai_munic_cities_Chiai = UsePN (mkPN "Chiai") ;
-Organizations_ICFTU = UsePN (mkPN "International Confederation of Free Trade Unions") ;
-Countries_I_provinces_Sicilia = UsePN (mkPN "Sicilia") ;
-Countries_BEN_cities_Porto_Novo = UsePN (mkPN "Porto-Novo") ;
-Countries_AUS_provinces_Queensland_cities_GoldCoast = UsePN (mkPN "Gold Coast") ;
-Countries_J_provinces_Wakayama = UsePN (mkPN "Wakayama") ;
-Organizations_ICJ = UsePN (mkPN "International Court of Justice") ;
-Countries_WAN_cities_Minna = UsePN (mkPN "Minna") ;
-Countries_MA_cities_Fes = UsePN (mkPN "Fes") ;
-Countries_CDN_provinces_YukonTerritory = UsePN (mkPN "Yukon Territory") ;
-Countries_MYA_provinces_Ayeyarwady = UsePN (mkPN "Ayeyarwady") ;
-Countries_GR_cities_Kavalla = UsePN (mkPN "Kavalla") ;
-Countries_USA_provinces_Louisiana_cities_BatonRouge = UsePN (mkPN "Baton Rouge") ;
-Islands_Gheschm = UsePN (mkPN "Gheschm") ;
-Countries_GB_provinces_Staffordshire_cities_StokeonTrent = UsePN (mkPN "Stoke on Trent") ;
-Countries_AUS_provinces_Victoria = UsePN (mkPN "Victoria") ;
-Islands_Korfu = UsePN (mkPN "Korfu") ;
-Countries_BR_provinces_Bahia_cities_VitoriadaConquista = UsePN (mkPN "Vitoria da Conquista") ;
-Countries_MAL_provinces_Sarawak_cities_Kuching = UsePN (mkPN "Kuching") ;
-Countries_RC_cities_Chungho = UsePN (mkPN "Chungho") ;
-Countries_GB_provinces_Cambridgeshire = UsePN (mkPN "Cambridgeshire") ;
-Countries_THA_provinces_Chumphon = UsePN (mkPN "Chumphon") ;
-Countries_RI_cities_Jambi = UsePN (mkPN "Jambi") ;
-Countries_I_provinces_Liguria = UsePN (mkPN "Liguria") ;
-Countries_BR_provinces_Pernambuco_cities_Caruaru = UsePN (mkPN "Caruaru") ;
-Countries_E_provinces_CastileLaMancha = UsePN (mkPN "Castile La Mancha") ;
-Countries_HCA_provinces_Yoro = UsePN (mkPN "Yoro") ;
-Countries_USA_provinces_Nevada_cities_LasVegas = UsePN (mkPN "Las Vegas") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Wuppertal = UsePN (mkPN "Wuppertal") ;
-Countries_ET_provinces_ElGiza_cities_ElGiza = UsePN (mkPN "El Giza") ;
-Deserts_Atacama = UsePN (mkPN "Atacama") ;
-Lakes_LakeMweru = UsePN (mkPN "Lake Mweru") ;
-Countries_VN_cities_NamDinh = UsePN (mkPN "Nam Dinh") ;
-Countries_TJ_provinces_Shandong_cities_Linqing = UsePN (mkPN "Linqing") ;
-Countries_IRQ_provinces_Wasit_cities_AlKut = UsePN (mkPN "Al Kut") ;
-Countries_GB_provinces_WestYorkshire_cities_Huddersfield = UsePN (mkPN "Huddersfield") ;
-Countries_TJ_provinces_Sichuan_cities_Jiangyou = UsePN (mkPN "Jiangyou") ;
-Countries_D_provinces_Niedersachsen = UsePN (mkPN "Niedersachsen") ;
-Countries_TJ_provinces_Anhui_cities_Fuyang = UsePN (mkPN "Fuyang") ;
-Countries_TJ_provinces_Jiangxi_cities_Nanchang = UsePN (mkPN "Nanchang") ;
-Rivers_Ubangi = UsePN (mkPN "Ubangi") ;
-Countries_PL_provinces_Katowickie_cities_Rybnik = UsePN (mkPN "Rybnik") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Petropolis = UsePN (mkPN "Petropolis") ;
-Countries_THA_provinces_NakhonRatchasima = UsePN (mkPN "Nakhon Ratchasima") ;
-Lakes_LakeTana = UsePN (mkPN "Lake Tana") ;
-Countries_ETH_cities_AddisAbaba = UsePN (mkPN "Addis Ababa") ;
-Countries_I_provinces_Marche = UsePN (mkPN "Marche") ;
-Countries_YV_provinces_Carabobo = UsePN (mkPN "Carabobo") ;
-Countries_TR_provinces_Hakkari = UsePN (mkPN "Hakkari") ;
-Countries_D_provinces_Hessen = UsePN (mkPN "Hessen") ;
-Countries_USA_provinces_California_cities_Concord = UsePN (mkPN "Concord") ;
-Countries_TJ_provinces_Hainan = UsePN (mkPN "Hainan") ;
-Countries_CO_provinces_Boyaca = UsePN (mkPN "Boyaca") ;
-Countries_NL_provinces_Zeeland = UsePN (mkPN "Zeeland") ;
-Countries_RO_provinces_Constanta = UsePN (mkPN "Constanta") ;
-Countries_MEX_provinces_Oaxaca_cities_Oaxaca = UsePN (mkPN "Oaxaca") ;
-Continents_Europe = UsePN (mkPN "Europe") ;
-Countries_R_provinces_Moskovskayaoblast_cities_Khimki = UsePN (mkPN "Khimki") ;
-Countries_EAT_provinces_KaskaziniUjunga = UsePN (mkPN "Kaskazini Ujunga") ;
-Countries_THA_provinces_Phichit = UsePN (mkPN "Phichit") ;
-Countries_PL_provinces_Legnickie = UsePN (mkPN "Legnickie") ;
-Countries_EAT_provinces_KusiniPemba_cities_ChakeCahke = UsePN (mkPN "Chake Cahke") ;
-Countries_MEX_provinces_Guanajuato_cities_Irapuato = UsePN (mkPN "Irapuato") ;
-Countries_TR_provinces_Karamanmaras = UsePN (mkPN "Karamanmaras") ;
-Countries_IRQ_provinces_AlMuthanna = UsePN (mkPN "Al Muthanna") ;
-Countries_TJ_provinces_Liaoning_cities_Jinzhou = UsePN (mkPN "Jinzhou") ;
-Organizations_G_77 = UsePN (mkPN "Group of 77") ;
-Organizations_PFP = UsePN (mkPN "Partnership for Peace") ;
-Countries_D_provinces_NordrheinWestfalen_cities_Leverkusen = UsePN (mkPN "Leverkusen") ;
-Countries_IR_provinces_Khuzestan_cities_Ahvaz = UsePN (mkPN "Ahvaz") ;
-Islands_Hierro = UsePN (mkPN "Hierro") ;
-Countries_R_provinces_Sverdlovskayaoblast_cities_Pervouralsk = UsePN (mkPN "Pervouralsk") ;
-Countries_DZ_cities_Constantine = UsePN (mkPN "Constantine") ;
-Countries_UA_provinces_Lvivska_cities_Lviv = UsePN (mkPN "Lviv") ;
-Countries_RI_cities_UjungPandang = UsePN (mkPN "Ujung Pandang") ;
-Countries_J_provinces_Nara_cities_Nara = UsePN (mkPN "Nara") ;
-Countries_E_provinces_Asturias_cities_Gijon = UsePN (mkPN "Gijon") ;
-Countries_GB_provinces_NeathandPortTalbot = UsePN (mkPN "Neath and Port Talbot") ;
-Countries_TAD_provinces_Dushanbe_munic = UsePN (mkPN "Dushanbe (munic.)") ;
-Countries_CO_provinces_SanAndresyProvidencia_cities_SanAndres = UsePN (mkPN "San Andres") ;
-Countries_TR_provinces_Adana = UsePN (mkPN "Adana") ;
-Countries_ZRE_provinces_Bandundu = UsePN (mkPN "Bandundu") ;
-Countries_GH_cities_CapeCoast = UsePN (mkPN "Cape Coast") ;
-Countries_IR_cities_Rajaishahr = UsePN (mkPN "Rajaishahr") ;
-Countries_SUD_provinces_alKhartum = UsePN (mkPN "al Khartum") ;
-Kenya = UsePN (mkPN "Kenya") ;
-Mountains_Sabalan = UsePN (mkPN "Sabalan") ;
-Countries_R_provinces_Rostovskayaoblast_cities_Shakhty = UsePN (mkPN "Shakhty") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Teresopolis = UsePN (mkPN "Teresopolis") ;
-Lakes_Arresee = UsePN (mkPN "Arresee") ;
-Japan = UsePN (mkPN "Japan") ;
-Countries_IND_provinces_UttarPradesh_cities_Moradabad = UsePN (mkPN "Moradabad") ;
-Countries_TR_provinces_Hatay_cities_Antakya = UsePN (mkPN "Antakya") ;
-Countries_VN_provinces_CanTho = UsePN (mkPN "Can Tho") ;
-Countries_GB_provinces_Ceredigion = UsePN (mkPN "Ceredigion") ;
-Countries_MAL_provinces_Fed_Terr_ofKualaLumpur = UsePN (mkPN "Fed. Terr. of Kuala Lumpur") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Mage = UsePN (mkPN "Mage") ;
-Countries_RSA_provinces_NorthernCape = UsePN (mkPN "Northern Cape") ;
-Countries_THA_provinces_PrachinBuri = UsePN (mkPN "Prachin Buri") ;
-Organizations_ECO = UsePN (mkPN "Economic Cooperation Organization") ;
-Countries_THA_provinces_Ratchaburi = UsePN (mkPN "Ratchaburi") ;
-Countries_TJ_provinces_Gansu_cities_Yumen = UsePN (mkPN "Yumen") ;
-Countries_RI_cities_Probolinggo = UsePN (mkPN "Probolinggo") ;
-Countries_USA_provinces_Pennsylvania_cities_Philadelphia = UsePN (mkPN "Philadelphia") ;
-Countries_MA_cities_Marrakech = UsePN (mkPN "Marrakech") ;
-Italy = UsePN (mkPN "Italy") ;
-Organizations_UNMIH = UsePN (mkPN "United Nations Mission in Haiti") ;
-Countries_I_provinces_Sicilia_cities_Siracusa = UsePN (mkPN "Siracusa") ;
-Countries_R_provinces_Rep_ofBashkortostan_cities_Salavat = UsePN (mkPN "Salavat") ;
-Countries_D_provinces_Niedersachsen_cities_Hildesheim = UsePN (mkPN "Hildesheim") ;
-Countries_USA_provinces_Ohio_cities_Dayton = UsePN (mkPN "Dayton") ;
-Countries_BR_provinces_Maranhao_cities_Caxias = UsePN (mkPN "Caxias") ;
-Countries_BD_cities_Pabna = UsePN (mkPN "Pabna") ;
-Countries_RM_provinces_Toamasina = UsePN (mkPN "Toamasina") ;
-Countries_A_provinces_UpperAustria = UsePN (mkPN "Upper Austria") ;
-Deserts_Asauad = UsePN (mkPN "Asauad") ;
-Countries_CH_provinces_UR_cities_Altdorf = UsePN (mkPN "Altdorf") ;
-Organizations_LAES = UsePN (mkPN "Latin American Economic System") ;
-Rivers_Neva = UsePN (mkPN "Neva") ;
-Countries_Z_provinces_Northwestern_cities_Solwezi = UsePN (mkPN "Solwezi") ;
-Bahamas = UsePN (mkPN "Bahamas") ;
-Countries_BR_provinces_Maranhao = UsePN (mkPN "Maranhao") ;
-Countries_PL_provinces_Katowickie_cities_WodzilawSlaski = UsePN (mkPN "Wodzilaw Slaski") ;
-Countries_PK_cities_MirpurKhas = UsePN (mkPN "Mirpur Khas") ;
-Countries_SF_provinces_Suomi_cities_Jyvaeskylae = UsePN (mkPN "Jyvaeskylae") ;
-Countries_F_provinces_PoitouCharentes = UsePN (mkPN "Poitou Charentes") ;
-Countries_E_provinces_Catalonia_cities_Badalona = UsePN (mkPN "Badalona") ;
-Countries_RC_provinces_Taoyuan_cities_Taoyuan = UsePN (mkPN "Taoyuan") ;
-Countries_UA_provinces_Rivnenska = UsePN (mkPN "Rivnenska") ;
-Countries_I_provinces_Toscana_cities_Livorno = UsePN (mkPN "Livorno") ;
-Countries_NOK_cities_Haeju = UsePN (mkPN "Haeju") ;
-Countries_R_provinces_KabardinoBalkarRep__cities_Nalchik = UsePN (mkPN "Nalchik") ;
-Countries_VU_cities_Port_Vila = UsePN (mkPN "Port-Vila") ;
-Islands_Bermuda = UsePN (mkPN "Bermuda") ;
-Countries_GB_provinces_Nottinghamshire_cities_NewarkonTrent = UsePN (mkPN "Newark on Trent") ;
-Rivers_Vaesterdalaelv = UsePN (mkPN "Vaesterdalaelv") ;
-Islands_Lanzarote = UsePN (mkPN "Lanzarote") ;
-Mountains_PikKommunizma = UsePN (mkPN "Pik Kommunizma") ;
-Togo = UsePN (mkPN "Togo") ;
-Countries_F_provinces_Alsace_cities_Strasbourg = UsePN (mkPN "Strasbourg") ;
-Countries_IR_provinces_Ilam = UsePN (mkPN "Ilam") ;
-Countries_CDN_provinces_Ontario_cities_Ottawa = UsePN (mkPN "Ottawa") ;
-Countries_USA_provinces_Florida_cities_Tallahassee = UsePN (mkPN "Tallahassee") ;
-Countries_MEX_provinces_Nayarit = UsePN (mkPN "Nayarit") ;
-Countries_GB_provinces_Kent_cities_Dover = UsePN (mkPN "Dover") ;
-Countries_BR_provinces_RioGrandedoSul_cities_RioGrande = UsePN (mkPN "Rio Grande") ;
-Lakes_LakeKivu = UsePN (mkPN "Lake Kivu") ;
-Countries_BR_provinces_SaoPaulo_cities_Bauru = UsePN (mkPN "Bauru") ;
-Countries_CO_provinces_ValledeCauca_cities_Palmira = UsePN (mkPN "Palmira") ;
-Continents_Australia_Oceania = UsePN (mkPN "Australia/Oceania") ;
-Countries_J_provinces_Shiga_cities_Otsu = UsePN (mkPN "Otsu") ;
-Countries_R_provinces_Sverdlovskayaoblast_cities_Serov = UsePN (mkPN "Serov") ;
-Countries_MEX_provinces_Durango_cities_GomezPalacio = UsePN (mkPN "Gomez Palacio") ;
-Countries_cid_cia_West_Bank = UsePN (mkPN "West Bank") ;
-Countries_IND_provinces_Rajasthan_cities_Kota = UsePN (mkPN "Kota") ;
-Countries_CZ_provinces_Vychodocesky_cities_HradecKralove = UsePN (mkPN "Hradec Kralove") ;
-Bolivia = UsePN (mkPN "Bolivia") ;
-Countries_IR_provinces_Khorasan_cities_Neyshabur = UsePN (mkPN "Neyshabur") ;
-Countries_ZRE_provinces_KasaiOriental_cities_Kalemi = UsePN (mkPN "Kalemi") ;
-Organizations_WHO = UsePN (mkPN "World Health Organization") ;
-Countries_TJ_provinces_Heilongjiang = UsePN (mkPN "Heilongjiang") ;
-Countries_VN_provinces_HoChiMinhCity = UsePN (mkPN "Ho Chi Minh City") ;
-Countries_GB_provinces_DumfriesandGalloway = UsePN (mkPN "Dumfries and Galloway") ;
-Countries_ET_provinces_ElSuweiz_munic_cities_ElSuweiz = UsePN (mkPN "El Suweiz") ;
-Countries_PA_provinces_BocasdelToro = UsePN (mkPN "Bocas del Toro") ;
-Countries_R_provinces_Krasnodarskykray_cities_Krasnodar = UsePN (mkPN "Krasnodar") ;
-Deserts_Hamadael_Hamra = UsePN (mkPN "Hamada el-Hamra") ;
-Organizations_UNESCO = UsePN (mkPN "United Nations Educational, Scientific, and Cultural Organization") ;
-Rivers_Cuango = UsePN (mkPN "Cuango") ;
-Countries_RO_provinces_CarasSeverin_cities_Resita = UsePN (mkPN "Resita") ;
-Mountains_PikPobeda = UsePN (mkPN "Pik Pobeda") ;
-Countries_J_provinces_Kanagawa = UsePN (mkPN "Kanagawa") ;
-Countries_J_provinces_Nagano_cities_Nagano = UsePN (mkPN "Nagano") ;
-Countries_THA_provinces_Tak = UsePN (mkPN "Tak") ;
-Countries_SYR_cities_Homs = UsePN (mkPN "Homs") ;
-Countries_TM_provinces_Ahal_cities_Ashgabat = UsePN (mkPN "Ashgabat") ;
-Countries_TR_provinces_Artvin = UsePN (mkPN "Artvin") ;
-Countries_RSA_provinces_EasternCape_cities_PortElizabeth = UsePN (mkPN "Port Elizabeth") ;
-Countries_IND_provinces_UttarPradesh_cities_Jhansi = UsePN (mkPN "Jhansi") ;
-Countries_USA_provinces_Georgia_cities_Savannah = UsePN (mkPN "Savannah") ;
-Countries_BR_provinces_SaoPaulo_cities_Jacarei = UsePN (mkPN "Jacarei") ;
-Countries_PK_cities_Quetta = UsePN (mkPN "Quetta") ;
-Countries_F_provinces_RhoneAlpes_cities_Grenoble = UsePN (mkPN "Grenoble") ;
-Rivers_Missouri = UsePN (mkPN "Missouri") ;
-Countries_IND_provinces_ArunachalPradesh_cities_Itanagar = UsePN (mkPN "Itanagar") ;
-Countries_USA_provinces_California_cities_Glendale = UsePN (mkPN "Glendale") ;
-Countries_IND_provinces_TamilNadu = UsePN (mkPN "Tamil Nadu") ;
-Islands_Falster = UsePN (mkPN "Falster") ;
-Countries_THA_provinces_MahaSarakham = UsePN (mkPN "Maha Sarakham") ;
-Countries_SN_provinces_Louga = UsePN (mkPN "Louga") ;
-Countries_TJ_provinces_Hebei_cities_Chengde = UsePN (mkPN "Chengde") ;
-Countries_CDN_provinces_Saskatchewan = UsePN (mkPN "Saskatchewan") ;
-Countries_F_provinces_Bretagne_cities_Rennes = UsePN (mkPN "Rennes") ;
-Countries_GR_cities_Iraklion = UsePN (mkPN "Iraklion") ;
-Organizations_ESCWA = UsePN (mkPN "Economic and Social Commission for Western Asia") ;
-Countries_DZ_cities_Bejaia = UsePN (mkPN "Bejaia") ;
-Countries_TJ_provinces_Guizhou_cities_Duyun = UsePN (mkPN "Duyun") ;
-Countries_MEX_provinces_Tabasco_cities_Villahermosa = UsePN (mkPN "Villahermosa") ;
-Countries_USA_provinces_Wisconsin_cities_GreenBay = UsePN (mkPN "Green Bay") ;
-Countries_TR_provinces_Bitlis = UsePN (mkPN "Bitlis") ;
-Countries_GB_provinces_Berkshire_cities_Wokingham = UsePN (mkPN "Wokingham") ;
-Israel = UsePN (mkPN "Israel") ;
-Countries_cid_cia_Bassas_da_India = UsePN (mkPN "Bassas da India") ;
-Countries_WAN_cities_Shagamu = UsePN (mkPN "Shagamu") ;
-Countries_P_provinces_Azores_The = UsePN (mkPN "Azores, The") ;
-Countries_cid_cia_Puerto_Rico = UsePN (mkPN "Puerto Rico") ;
-Countries_CO_provinces_Vichada_cities_PuertoCarreno = UsePN (mkPN "Puerto Carreno") ;
-Countries_EAT_provinces_Shinyanga_cities_Shinyanga = UsePN (mkPN "Shinyanga") ;
-Organizations_IAEA = UsePN (mkPN "International Atomic Energy Agency") ;
-Countries_B_provinces_WestFlanders = UsePN (mkPN "West Flanders") ;
-Countries_AUS_provinces_WesternAustralia_cities_Perth = UsePN (mkPN "Perth") ;
-Countries_WG_cities_SaintGeorges = UsePN (mkPN "Saint Georges") ;
-Countries_CO_provinces_Putumayo = UsePN (mkPN "Putumayo") ;
-Deserts_GibsonDesert = UsePN (mkPN "Gibson Desert") ;
-Countries_MYA_provinces_Bago_cities_Bago = UsePN (mkPN "Bago") ;
-Countries_TR_provinces_Sanliurfa_cities_Urfa = UsePN (mkPN "Urfa") ;
-Countries_TJ_provinces_Henan_cities_Anyang = UsePN (mkPN "Anyang") ;
-Countries_YV_provinces_DeltaAmacuro_cities_Tucupita = UsePN (mkPN "Tucupita") ;
-Countries_USA_provinces_Illinois = UsePN (mkPN "Illinois") ;
-Countries_E_provinces_CastileandLeon_cities_Burgos = UsePN (mkPN "Burgos") ;
-Countries_E_provinces_BasqueCountry = UsePN (mkPN "Basque Country") ;
-Countries_IND_provinces_Orissa_cities_Cuttack = UsePN (mkPN "Cuttack") ;
-Countries_KAZ_provinces_Qostanay_cities_Qostanay = UsePN (mkPN "Qostanay") ;
-Islands_Vanuatu = UsePN (mkPN "Vanuatu") ;
-Organizations_Entente = UsePN (mkPN "Council of the Entente") ;
-Countries_TJ_provinces_Anhui_cities_Tongling = UsePN (mkPN "Tongling") ;
-Countries_E_provinces_Catalonia_cities_Terrassa = UsePN (mkPN "Terrassa") ;
-Countries_TJ_provinces_XinjiangUygur_cities_Hami = UsePN (mkPN "Hami") ;
-Countries_I_provinces_ValledAosta = UsePN (mkPN "Valle dAosta") ;
-Countries_GB_provinces_Strathclyde_cities_Glasgow = UsePN (mkPN "Glasgow") ;
-Countries_R_provinces_Rep_ofKomi_cities_Syktyvkar = UsePN (mkPN "Syktyvkar") ;
-Countries_CO_provinces_Atlantico_cities_Barranquilla = UsePN (mkPN "Barranquilla") ;
-Countries_B_provinces_Luxembourg_cities_Arlon = UsePN (mkPN "Arlon") ;
-Countries_BR_provinces_Goias_cities_RioVerde = UsePN (mkPN "Rio Verde") ;
-Countries_BR_provinces_SantaCatarina_cities_SaoJose = UsePN (mkPN "Sao Jose") ;
-Countries_MA_cities_Agadir = UsePN (mkPN "Agadir") ;
-Countries_B_provinces_Antwerp_cities_Antwerp = UsePN (mkPN "Antwerp") ;
-Countries_TJ_provinces_Zhejiang_cities_Xiaoshan = UsePN (mkPN "Xiaoshan") ;
-Organizations_G_33 = UsePN (mkPN "Group of 33") ;
-Countries_R_provinces_Krasnodarskykray_cities_Sochi = UsePN (mkPN "Sochi") ;
-Countries_GB_provinces_Fife = UsePN (mkPN "Fife") ;
-Mountains_Mt_Bogong = UsePN (mkPN "Mt. Bogong") ;
-Iraq = UsePN (mkPN "Iraq") ;
-Countries_J_provinces_Chiba = UsePN (mkPN "Chiba") ;
-Countries_R_provinces_Bryanskayaoblast_cities_Bryansk = UsePN (mkPN "Bryansk") ;
-Countries_CO_provinces_Sucre_cities_Sincelejo = UsePN (mkPN "Sincelejo") ;
-Countries_NOK_cities_Tokchon = UsePN (mkPN "Tokchon") ;
-Countries_F_provinces_Picardie_cities_Amiens = UsePN (mkPN "Amiens") ;
-Countries_GB_provinces_Devon_cities_Plymouth = UsePN (mkPN "Plymouth") ;
-Countries_MEX_provinces_BajaCaliforniaSur = UsePN (mkPN "Baja California Sur") ;
-Countries_TR_provinces_Adiyaman_cities_Adiyaman = UsePN (mkPN "Adiyaman") ;
-Countries_JOR_cities_Amman = UsePN (mkPN "Amman") ;
-Countries_N_provinces_Troms = UsePN (mkPN "Troms") ;
-Countries_H_provinces_SzabolcsSzatmar_cities_Nyiregyhaza = UsePN (mkPN "Nyiregyhaza") ;
-Countries_BR_cities_SaoJosedosPinhais = UsePN (mkPN "Sao Jose dos Pinhais") ;
-Countries_GB_provinces_GreaterManchester_cities_Bury = UsePN (mkPN "Bury") ;
-Continents_Asia = UsePN (mkPN "Asia") ;
-Organizations_CEMA = UsePN (mkPN "Council for Mutual Economic Assistance") ;
-Countries_EAT_provinces_Mbeya_cities_Mbeya = UsePN (mkPN "Mbeya") ;
-Countries_R_provinces_Nizhegorodskayaoblast = UsePN (mkPN "Nizhegorodskaya oblast") ;
-Countries_TJ_provinces_Sichuan_cities_Leshan = UsePN (mkPN "Leshan") ;
-Countries_MEX_provinces_Sonora_cities_HeroicaNogales = UsePN (mkPN "Heroica Nogales") ;
-Countries_CR_provinces_SanJose = UsePN (mkPN "San Jose") ;
-Countries_RSA_provinces_FreeState_cities_Bloemfontein = UsePN (mkPN "Bloemfontein") ;
-Countries_BR_provinces_SaoPaulo_cities_Araraquara = UsePN (mkPN "Araraquara") ;
-Countries_TR_provinces_Kastamonu_cities_Kastamonu = UsePN (mkPN "Kastamonu") ;
-Countries_RC_provinces_Nantou_cities_Nantou = UsePN (mkPN "Nantou") ;
-Countries_GB_provinces_Cheshire_cities_Warrington = UsePN (mkPN "Warrington") ;
-Countries_R_provinces_Samarskayaoblast_cities_Samara = UsePN (mkPN "Samara") ;
-Countries_cid_cia_Guernsey_cities_SaintPeterPort = UsePN (mkPN "Saint Peter Port") ;
-Countries_IR_provinces_Mazandaran_cities_Sari = UsePN (mkPN "Sari") ;
-Countries_RC_provinces_Taoyuan = UsePN (mkPN "Taoyuan") ;
-Organizations_G_6 = UsePN (mkPN "Group of 6") ;
-Countries_F_provinces_Aquitaine = UsePN (mkPN "Aquitaine") ;
-Countries_GB_cities_WrexhamMaelor = UsePN (mkPN "Wrexham Maelor") ;
-Countries_IR_provinces_AzarbayianeSharqi_cities_Ardabil = UsePN (mkPN "Ardabil") ;
-Rivers_Kemijoki = UsePN (mkPN "Kemijoki") ;
-Countries_ET_provinces_ElFaiyum_cities_ElFaiyum = UsePN (mkPN "El Faiyum") ;
-Countries_AUS_provinces_NorthernTerritory = UsePN (mkPN "Northern Territory") ;
-Countries_UZB_provinces_Qoraqalpoghiston = UsePN (mkPN "Qoraqalpoghiston") ;
-Countries_TJ_provinces_Hainan_cities_Sanya = UsePN (mkPN "Sanya") ;
-Countries_P_provinces_Braga = UsePN (mkPN "Braga") ;
-Countries_YV_provinces_Aragua_cities_Maracay = UsePN (mkPN "Maracay") ;
-Countries_R_provinces_Rep_ofTatarstan_cities_Nizhnekamsk = UsePN (mkPN "Nizhnekamsk") ;
-Countries_GB_provinces_Borders = UsePN (mkPN "Borders") ;
-Islands_Formentera = UsePN (mkPN "Formentera") ;
-Organizations_UNAMIR = UsePN (mkPN "United Nations Assistance Mission for Rwanda") ;
-Countries_RC_provinces_Kaohsiung_cities_Fengshan = UsePN (mkPN "Fengshan") ;
-Countries_ROK_cities_Pusan = UsePN (mkPN "Pusan") ;
-Countries_GB_provinces_Denbighshire = UsePN (mkPN "Denbighshire") ;
-Countries_RC_provinces_Chiai_munic = UsePN (mkPN "Chiai (munic.)") ;
-Countries_ES_provinces_Cuscatlan_cities_Cojutepeque = UsePN (mkPN "Cojutepeque") ;
-Countries_USA_provinces_California_cities_Riverside = UsePN (mkPN "Riverside") ;
-Countries_H_provinces_Budapest_munic_cities_Budapest = UsePN (mkPN "Budapest") ;
-Rivers_Mekong = UsePN (mkPN "Mekong") ;
-Countries_USA_provinces_Alabama_cities_Montgomery = UsePN (mkPN "Montgomery") ;
-Islands_BanksIsland = UsePN (mkPN "Banks Island") ;
-Countries_R_provinces_Primorskykray_cities_Nakhodka = UsePN (mkPN "Nakhodka") ;
-Rivers_Sobat = UsePN (mkPN "Sobat") ;
-Countries_IND_provinces_LakshadweepIs__cities_Kavaratti = UsePN (mkPN "Kavaratti") ;
-Countries_PL_provinces_Olsztynskie_cities_Olsztyn = UsePN (mkPN "Olsztyn") ;
-Countries_USA_provinces_Texas_cities_Waco = UsePN (mkPN "Waco") ;
-Countries_IND_provinces_Chandigarh = UsePN (mkPN "Chandigarh") ;
-Countries_BD_cities_Mymensingh = UsePN (mkPN "Mymensingh") ;
-Countries_CZ_provinces_Jihomoravsky_cities_Brno = UsePN (mkPN "Brno") ;
-Countries_CR_provinces_SanJose_cities_SanJose = UsePN (mkPN "San Jose") ;
-Countries_R_provinces_Pskovskayaoblast = UsePN (mkPN "Pskovskaya oblast") ;
-Countries_CDN_provinces_PrinceEdwardIsland = UsePN (mkPN "Prince Edward Island") ;
-Organizations_Caricom = UsePN (mkPN "Caribbean Community and Common Market") ;
-Countries_IRL_cities_Dublin = UsePN (mkPN "Dublin") ;
-Countries_TR_provinces_Elazig_cities_Elazig = UsePN (mkPN "Elazig") ;
-Countries_CL_cities_Colombo = UsePN (mkPN "Colombo") ;
-Organizations_SPF = UsePN (mkPN "South Pacific Forum") ;
-Countries_CAM_provinces_Ouest_cities_Bafoussam = UsePN (mkPN "Bafoussam") ;
-Countries_BR_provinces_RiodeJaneiro_cities_Olinda = UsePN (mkPN "Olinda") ;
-Countries_GB_provinces_Northumberland = UsePN (mkPN "Northumberland") ;
-Countries_I_provinces_EmiliaRomagna_cities_Piacenza = UsePN (mkPN "Piacenza") ;
-Countries_BD_cities_Narayanganj = UsePN (mkPN "Narayanganj") ;
-Countries_A_provinces_Burgenland_cities_Eisenstadt = UsePN (mkPN "Eisenstadt") ;
-Countries_TR_provinces_Malatya_cities_Malatya = UsePN (mkPN "Malatya") ;
-Countries_TR_provinces_Elazig = UsePN (mkPN "Elazig") ;
-Countries_C_provinces_Granma = UsePN (mkPN "Granma") ;
-Countries_VN_cities_ThaiNguyen = UsePN (mkPN "Thai Nguyen") ;
-Countries_ZRE_provinces_BasZaire = UsePN (mkPN "Bas Zaire") ;
-Countries_UA_provinces_Poltavska = UsePN (mkPN "Poltavska") ;
-};
diff --git a/examples/animals/AnimalsEng.gf b/examples/animals/AnimalsEng.gf
--- a/examples/animals/AnimalsEng.gf
+++ b/examples/animals/AnimalsEng.gf
@@ -1,16 +1,15 @@
---# -path=.:present:prelude
---resource/english:resource/abstract:resource/../prelude
+--# -path=.:present
 
 concrete AnimalsEng of Animals = QuestionsEng **
-  open LangEng, ParadigmsEng, IrregEng in {
+  open SyntaxEng, ParadigmsEng, IrregEng in {
 
   lin
-    Dog = regN "dog" ;
-    Cat = regN "cat" ;
-    Mouse = mk2N "mouse" "mice" ;
-    Lion = regN "lion" ;
-    Zebra = regN "zebra" ;
-    Chase = dirV2 (regV "chase") ;
-    Eat = dirV2 eat_V ;
-    See = dirV2 see_V ;
+    Dog = mkN "dog" ;
+    Cat = mkN "cat" ;
+    Mouse = mkN "mouse" "mice" ;
+    Lion = mkN "lion" ;
+    Zebra = mkN "zebra" ;
+    Chase = mkV2 "chase" ;
+    Eat = mkV2 eat_V ;
+    See = mkV2 see_V ;
 }
diff --git a/examples/animals/AnimalsFre.gf b/examples/animals/AnimalsFre.gf
--- a/examples/animals/AnimalsFre.gf
+++ b/examples/animals/AnimalsFre.gf
@@ -1,15 +1,15 @@
---# -path=.:present:prelude
+--# -path=.:present
 
 concrete AnimalsFre of Animals = QuestionsFre **
-  open LangFre, ParadigmsFre, IrregFre in {
+  open SyntaxFre, ParadigmsFre, IrregFre in {
 
   lin
-    Dog   = regN "chien" ;
-    Cat   = regN "chat" ;
-    Mouse = regGenN "souris" feminine ;
+    Dog   = mkN "chien" ;
+    Cat   = mkN "chat" ;
+    Mouse = mkN "souris" feminine ;
     Lion  = mkN "lion" masculine ;
-    Zebra = regGenN "zèbre" masculine ;
-    Chase = dirV2 (regV "chasser") ;
-    Eat   = dirV2 (regV "manger") ;
+    Zebra = mkN "zèbre" masculine ;
+    Chase = mkV2 (mkV "chasser") ;
+    Eat   = mkV2 (mkV "manger") ;
     See   = voir_V2 ;
 }
diff --git a/examples/animals/QuestionsEng.gf b/examples/animals/QuestionsEng.gf
--- a/examples/animals/QuestionsEng.gf
+++ b/examples/animals/QuestionsEng.gf
@@ -1,2 +1,2 @@
 concrete QuestionsEng of Questions = QuestionsI with 
-  (Lang = LangEng) ;
+  (Syntax = SyntaxEng) ;
diff --git a/examples/animals/QuestionsFre.gf b/examples/animals/QuestionsFre.gf
--- a/examples/animals/QuestionsFre.gf
+++ b/examples/animals/QuestionsFre.gf
@@ -1,2 +1,2 @@
 concrete QuestionsFre of Questions = QuestionsI with 
-  (Lang = LangFre) ;
+  (Syntax = SyntaxFre) ;
diff --git a/examples/animals/QuestionsI.gf b/examples/animals/QuestionsI.gf
--- a/examples/animals/QuestionsI.gf
+++ b/examples/animals/QuestionsI.gf
@@ -1,7 +1,8 @@
--- to compile: echo "eb -file=QuestionsI.gfe" -probs=probs | gf $GF_LIB_PATH/present/LangEng.gfo
+-- to compile: 
+-- echo "eb -probs=probs -api -file=QuestionsI.gfe" | gf $GF_LIB_PATH/present/LangEng.gfo
 -- or use directly gf <mkAnimals.gfs
 
-incomplete concrete QuestionsI of Questions = open Lang in {
+incomplete concrete QuestionsI of Questions = open Syntax in {
   lincat
     Phrase = Utt ;
     Entity = N ;
@@ -9,21 +10,20 @@
 
   lin 
     Who  love_V2 man_N           = (
---- WARNING: ambiguous example who loves men
-UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestVP whoSg_IP (ComplSlash (SlashV2a love_V2) (DetCN (DetQuant IndefArt NumPl) (UseN man_N)))))  -- 2.122431752061382e-11
+mkUtt (mkQCl    (mkQCl whoSg_IP (mkVP (mkVPSlash love_V2) (mkNP a_Art plNum man_N))))  -- 4.548068040131532e-11
 )
  ;
     Whom man_N love_V2           = (
 --- WARNING: ambiguous example whom does the man love
-UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestSlash whoPl_IP (SlashVP (DetCN (DetQuant DefArt NumSg) (UseN man_N)) (SlashV2a love_V2))))  -- 1.3265198450383634e-11
-  --- UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestSlash whoSg_IP (SlashVP (DetCN (DetQuant DefArt NumSg) (UseN man_N)) (SlashV2a love_V2))))  -- 1.3265198450383634e-11
+mkUtt (mkQCl    (mkQCl whoPl_IP (mkClSlash (mkNP the_Art  man_N) (mkVPSlash love_V2))))  -- 2.8425425250822075e-11
+  --- mkUtt (mkQCl    (mkQCl whoSg_IP (mkClSlash (mkNP the_Art  man_N) (mkVPSlash love_V2))))  -- 2.8425425250822075e-11
 )
  ;
     Answer woman_N love_V2 man_N = (
 --- WARNING: ambiguous example the woman loves men
-UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (UseN woman_N)) (ComplSlash (SlashV2a love_V2) (DetCN (DetQuant IndefArt NumPl) (UseN man_N)))))  -- 1.1637456560533483e-14
-  --- UttNP (DetCN (DetQuant DefArt NumSg) (ApposCN (ApposCN (UseN woman_N) (DetCN (DetQuant IndefArt NumPl) (UseN love_N))) (DetCN (DetQuant IndefArt NumPl) (UseN man_N))))  -- 2.018579347059343e-20
-  --- UttNP (DetCN (DetQuant DefArt NumSg) (ApposCN (UseN woman_N) (DetCN (DetQuant IndefArt NumPl) (ApposCN (UseN love_N) (DetCN (DetQuant IndefArt NumPl) (UseN man_N))))))  -- 2.018579347059343e-20
+mkUtt (mkCl    (mkCl (mkNP the_Art  woman_N) (mkVP (mkVPSlash love_V2) (mkNP a_Art plNum man_N))))  -- 3.273034657650043e-14
+  --- mkUtt (mkNP the_Art  (mkCN (mkCN (mkCN woman_N) (mkNP a_Art plNum love_N)) (mkNP a_Art plNum man_N)))  -- 1.6623594622841657e-20
+  --- mkUtt (mkNP the_Art  (mkCN (mkCN woman_N) (mkNP a_Art plNum (mkCN (mkCN love_N) (mkNP a_Art plNum man_N)))))  -- 1.6623594622841657e-20
 )
  ;
 
diff --git a/examples/animals/QuestionsI.gfe b/examples/animals/QuestionsI.gfe
--- a/examples/animals/QuestionsI.gfe
+++ b/examples/animals/QuestionsI.gfe
@@ -1,7 +1,8 @@
--- to compile: echo "eb -file=QuestionsI.gfe" | gf $GF_LIB_PATH/present/LangEng.gfo
+-- to compile: 
+-- echo "eb -probs=probs -api -file=QuestionsI.gfe" | gf $GF_LIB_PATH/present/LangEng.gfo
 -- or use directly gf <mkAnimals.gfs
 
-incomplete concrete QuestionsI of Questions = open Lang in {
+incomplete concrete QuestionsI of Questions = open Syntax in {
   lincat
     Phrase = Utt ;
     Entity = N ;
@@ -9,7 +10,7 @@
 
   lin 
     Who  love_V2 man_N           = %ex Utt "who loves men" ;
-    Whom man_N love_V2           = %ex Utt "whom does the man love and chase" ;
-    Answer woman_N love_V2 man_N = %ex Utt "the woman loves and chases men" ;
+    Whom man_N love_V2           = %ex Utt "whom does the man love" ;
+    Answer woman_N love_V2 man_N = %ex Utt "the woman loves men" ;
 
 }
diff --git a/examples/attempto/Attempto.gf b/examples/attempto/Attempto.gf
--- a/examples/attempto/Attempto.gf
+++ b/examples/attempto/Attempto.gf
@@ -1,11 +1,12 @@
-abstract Attempto = Symbols ** {
+abstract Attempto = 
+  Numeral, Symbols ** {
 
 flags startcat = ACEText ;
 
 cat CN ;
 cat NP ;
 cat Card ;
-cat Numeral ;
+---cat Numeral ;
 cat PN ;
 cat A ;
 cat A2 ;
@@ -54,10 +55,10 @@
 fun allMassNP : MCN -> NP ;
 fun notAllMassNP : MCN -> NP ;
 
-fun one_Card : Card ;
-fun two_Card : Card ;
-fun five_Card : Card ;
-fun ten_Card : Card ;
+---fun one_Card : Card ;
+---fun two_Card : Card ;
+---fun five_Card : Card ;
+---fun ten_Card : Card ;
 
 
 fun pnNP : PN -> NP ;
@@ -234,7 +235,7 @@
 
 -- 3.6
 
-fun impVP : NP -> VP -> Text ; -- John, go to the bank!
+fun np_impVP : NP -> VP -> Text ; -- John, go to the bank!
 
 -- 4
 
@@ -245,6 +246,16 @@
 
 fun sText : S -> Text ;
 fun qsText : QS -> Text ;
+
+-- more
+
+fun npVP  : NP -> VP ;              -- is a bank
+fun impVP : VP -> Text ;            -- go to the bank!
+fun numeralCard : Numeral -> Card ; -- fifteen banks
+fun digitsCard : Digits -> Card ;   -- 8 banks
+fun have_V2 : V2 ;                  -- has (an apple)
+fun v2_byVP : V2 -> NP -> VP ;      -- is bought by a customer
+
 
 }
 
diff --git a/examples/attempto/AttemptoEng.gf b/examples/attempto/AttemptoEng.gf
--- a/examples/attempto/AttemptoEng.gf
+++ b/examples/attempto/AttemptoEng.gf
@@ -1,7 +1,11 @@
 --# -path=.:present
 
-concrete AttemptoEng of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoEng of Attempto = SymbolsC,NumeralEng ** AttemptoI - [which_RP] with
   (Syntax = SyntaxEng),
   (Symbolic = SymbolicEng),
-  (LexAttempto = LexAttemptoEng) ;
+  (LexAttempto = LexAttemptoEng) ** open SyntaxEng, ExtraEng in {
+
+lin which_RP = SyntaxEng.which_RP | that_RP ;
+
+} ;
 
diff --git a/examples/attempto/AttemptoFin.gf b/examples/attempto/AttemptoFin.gf
--- a/examples/attempto/AttemptoFin.gf
+++ b/examples/attempto/AttemptoFin.gf
@@ -1,6 +1,6 @@
 --# -path=.:present
 
-concrete AttemptoFin of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoFin of Attempto = NumeralFin, SymbolsC ** AttemptoI with
   (Syntax = SyntaxFin),
   (Symbolic = SymbolicFin),
   (LexAttempto = LexAttemptoFin) ;
diff --git a/examples/attempto/AttemptoFre.gf b/examples/attempto/AttemptoFre.gf
--- a/examples/attempto/AttemptoFre.gf
+++ b/examples/attempto/AttemptoFre.gf
@@ -1,6 +1,6 @@
 --# -path=.:present
 
-concrete AttemptoFre of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoFre of Attempto = NumeralFre, SymbolsC ** AttemptoI with
   (Syntax = SyntaxFre),
   (Symbolic = SymbolicFre),
   (LexAttempto = LexAttemptoFre) ;
diff --git a/examples/attempto/AttemptoGer.gf b/examples/attempto/AttemptoGer.gf
--- a/examples/attempto/AttemptoGer.gf
+++ b/examples/attempto/AttemptoGer.gf
@@ -1,6 +1,6 @@
 --# -path=.:/Users/aarne/GF/next-lib/present
 
-concrete AttemptoGer of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoGer of Attempto = SymbolsC, NumeralGer ** AttemptoI with
   (Syntax = SyntaxGer),
   (Symbolic = SymbolicGer),
   (LexAttempto = LexAttemptoGer) ;
diff --git a/examples/attempto/AttemptoI.gf b/examples/attempto/AttemptoI.gf
--- a/examples/attempto/AttemptoI.gf
+++ b/examples/attempto/AttemptoI.gf
@@ -1,4 +1,4 @@
-incomplete concrete AttemptoI of Attempto = SymbolsC ** open 
+incomplete concrete AttemptoI of Attempto = SymbolsC, Numeral ** open 
   Syntax, 
   Symbolic,
   Prelude,
@@ -8,7 +8,7 @@
 lincat CN = Syntax.CN ;
 lincat NP = Syntax.NP ;
 lincat Card = Syntax.Card ;
-lincat Numeral = Syntax.Numeral ;
+--lincat Numeral = Syntax.Numeral ;
 lincat PN = Syntax.PN ;
 lincat A = Syntax.A ;
 lincat A2 = Syntax.A2 ;
@@ -32,7 +32,7 @@
 lincat RP = Syntax.RP ;
 
 lincat MCN = Syntax.CN ;
-lincat PP = Adv ;
+lincat PP = Syntax.Adv ;
 
 lin aNP = mkNP a_Art ;
 lin theNP = mkNP the_Art ;
@@ -57,10 +57,10 @@
 lin noMassNP = mkNP no_Quant ;
 lin notAllMassNP cn = mkNP not_Predet (mkNP all_Predet (mkNP cn)) ; 
 
-lin one_Card = mkCard n1_Numeral ;
-lin two_Card = mkCard n2_Numeral ;
-lin five_Card = mkCard n5_Numeral ;
-lin ten_Card = mkCard n10_Numeral ;
+---lin one_Card = mkCard n1_Numeral ;
+---lin two_Card = mkCard n2_Numeral ;
+---lin five_Card = mkCard n5_Numeral ;
+---lin ten_Card = mkCard n10_Numeral ;
 
 lin pnNP = mkNP ;
 lin intNP = symb ;
@@ -159,7 +159,6 @@
 ---- John is as fond-of Mary as of Sue
 ---- John is more fond-of Mary than of Sue
 
-lincat PP = Adv ;
 --lincat [PP] = Adv ;
 
 --lin BasePP p = p ;
@@ -235,7 +234,7 @@
 
 -- 3.6
 
-lin impVP np vp = mkText (mkPhr (mkUtt (mkImp vp)) (mkVoc np)) exclMarkPunct ; 
+lin np_impVP np vp = mkText (mkPhr (mkUtt (mkImp vp)) (mkVoc np)) exclMarkPunct ; 
         ---- John, go to the bank!
 
 
@@ -243,6 +242,16 @@
 lin baseText t = t ;
 lin sText = mkText ;
 lin qsText = mkText ;
+
+
+--- more
+
+lin npVP = mkVP ;
+lin impVP vp = mkText (mkImp vp) ;
+lin numeralCard n = mkCard <lin Numeral n : Numeral> ;
+lin digitsCard n = mkCard <lin Digits n : Digits> ;
+lin have_V2 = Syntax.have_V2 ;
+lin v2_byVP v2 np = mkVP (passiveVP v2) (mkAdv by8agent_Prep np) ;
 
 }
 
diff --git a/examples/attempto/AttemptoIta.gf b/examples/attempto/AttemptoIta.gf
--- a/examples/attempto/AttemptoIta.gf
+++ b/examples/attempto/AttemptoIta.gf
@@ -1,6 +1,6 @@
 --# -path=.:present
 
-concrete AttemptoIta of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoIta of Attempto = NumeralIta, SymbolsC ** AttemptoI with
   (Syntax = SyntaxIta),
   (Symbolic = SymbolicIta),
   (LexAttempto = LexAttemptoIta) ;
diff --git a/examples/attempto/AttemptoSwe.gf b/examples/attempto/AttemptoSwe.gf
--- a/examples/attempto/AttemptoSwe.gf
+++ b/examples/attempto/AttemptoSwe.gf
@@ -1,6 +1,6 @@
 --# -path=.:present
 
-concrete AttemptoSwe of Attempto = SymbolsC ** AttemptoI with
+concrete AttemptoSwe of Attempto = NumeralSwe, SymbolsC ** AttemptoI with
   (Syntax = SyntaxSwe),
   (Symbolic = SymbolicSwe),
   (LexAttempto = LexAttemptoSwe) ;
diff --git a/examples/category-theory/Adjoints.gf b/examples/category-theory/Adjoints.gf
--- a/examples/category-theory/Adjoints.gf
+++ b/examples/category-theory/Adjoints.gf
@@ -1,11 +1,16 @@
 abstract Adjoints = NaturalTransform ** {
 
-cat Adjoints ({c1,c2} : Category) (Functor c1 c2) (Functor c2 c1) ;
+  ----------------------------------------------------------
+  -- Adjoint functors - pair of functors such that
+  -- there is a natural transformation from the identity
+  -- functor to the composition of the functors.
 
-data adjoints : ({c1,c2} : Category)
-              -> (f : Functor c1 c2)
-              -> (g : Functor c2 c1)
-              -> NT (idF c1) (compF g f)
-              -> Adjoints f g ;
+  cat Adjoints ({c1,c2} : Category) (Functor c1 c2) (Functor c2 c1) ;
 
-}
+  data adjoints : ({c1,c2} : Category)
+                -> (f : Functor c1 c2)
+                -> (g : Functor c2 c1)
+                -> NT (idF c1) (compF g f)
+                -> Adjoints f g ;
+
+}
diff --git a/examples/category-theory/Categories.gf b/examples/category-theory/Categories.gf
--- a/examples/category-theory/Categories.gf
+++ b/examples/category-theory/Categories.gf
@@ -1,164 +1,201 @@
 abstract Categories = {
 
+  -------------------------------------------------------
+  -- Basic category theory: categories, objects, 
+  -- arrows and equality of arrows
+
   cat Category ;
-      El Category ;
-      Arrow ({c} : Category) (El c) (El c) ;
-      EqAr ({c} : Category) ({x,y} : El c) (f,g : Arrow x y) ;
+      Obj Category ;
+      Arrow ({c} : Category) (Obj c) (Obj c) ;
+      EqAr ({c} : Category) ({x,y} : Obj c) (f,g : Arrow x y) ;
 
-  fun dom : ({c} : Category) -> ({x,y} : El c) -> Arrow x y -> El c ;
+  fun dom : ({c} : Category) -> ({x,y} : Obj c) -> Arrow x y -> Obj c ;
   def dom   {_} {x} {y} _ = x ;
-      
-  fun codom : ({c} : Category) -> ({x,y} : El c) -> Arrow x y -> El c ;
+
+  fun codom : ({c} : Category) -> ({x,y} : Obj c) -> Arrow x y -> Obj c ;
   def codom {_} {x} {y} _ = y ;
 
-  fun id   : ({c} : Category) -> (x : El c) -> Arrow x x ;
+  -- 'id x' is the identity arrow for object x
+  fun id   : ({c} : Category) -> (x : Obj c) -> Arrow x x ;
 
-  fun comp : ({c} : Category) -> ({x,y,z} : El c) -> Arrow z y -> Arrow x z -> Arrow x y ;
+  -- composition of arrows
+  fun comp : ({c} : Category) -> ({x,y,z} : Obj c) -> Arrow z y -> Arrow x z -> Arrow x y ;
 
+
+  -------------------------------------------------------
+  -- The basic equality properties: reflexive, 
+  -- symetric and transitive relation. 
+  -- Only the reflexivity is an axiom.
+
   data eqRefl :  ({c} : Category)
-              -> ({x,y} : El c)
+              -> ({x,y} : Obj c)
               -> (a : Arrow x y)
               -> EqAr a a ;
+
   fun  eqSym  : ({c} : Category)
-              -> ({x,y} : El c)
+              -> ({x,y} : Obj c)
               -> ({a,b} : Arrow x y)
               -> EqAr a b
               -> EqAr b a ;
-  def  eqSym {c} {x} {y} {a} {a} (eqRefl {c} {x} {y} a) = eqRefl a ;
-              
+  def  eqSym (eqRefl a) = eqRefl a ;
+
   fun eqTran :  ({c} : Category)
-             -> ({x,y} : El c)
+             -> ({x,y} : Obj c)
              -> ({f,g,h} : Arrow x y)
              -> EqAr f g
              -> EqAr f h
              -> EqAr g h ;
-  def eqTran {c} {x} {y} {a} {a} {b} (eqRefl {c} {x} {y} a) eq = eq ;
+  def eqTran (eqRefl a) eq = eq ;
 
-  fun eqCompL :  ({c} : Category)
-              -> ({x,y,z} : El c)
-              -> ({g,h} : Arrow x z)
-              -> (f : Arrow z y)
-              -> EqAr g h
-              -> EqAr (comp f g) (comp f h) ;
-  def eqCompL {c} {x} {y} {z} {g} {g} f (eqRefl {c} {x} {z} g) = eqRefl (comp f g) ;
 
-  fun eqCompR :  ({c} : Category)
-              -> ({x,y,z} : El c)
-              -> ({g,h} : Arrow z y)
-              -> EqAr g h
-              -> (f : Arrow x z)
-              -> EqAr (comp g f) (comp h f) ;
-  def eqCompR {c} {x} {y} {z} {g} {g} (eqRefl {c} {z} {y} g) f = eqRefl (comp g f) ;
+  -------------------------------------------------------
+  -- Now we prove some theorems which are specific for
+  -- the equality of arrows
+  --
+  -- First we assert the axioms:
+  --
+  --    a . id == id . a == a
+  --    f . (g . h) == (f . g) . h
+  --
+  -- and after that we prove that the composition
+  -- preserves the equality.
 
   fun eqIdL  : ({c} : Category)
-             -> ({x,y} : El c)
+             -> ({x,y} : Obj c)
              -> (a : Arrow x y)
              -> EqAr (comp a (id x)) a ;
       eqIdR  :  ({c} : Category)
-             -> ({x,y} : El c)
+             -> ({x,y} : Obj c)
              -> (a : Arrow x y)
              -> EqAr (comp (id y) a) a ;
 
   fun eqAssoc :  ({c} : Category)
-              -> ({w,x,y,z} : El c)
+              -> ({w,x,y,z} : Obj c)
               -> (f : Arrow w y)
               -> (g : Arrow z w)
               -> (h : Arrow x z)
               -> EqAr (comp f (comp g h)) (comp (comp f g) h) ;
 
+  fun eqCompL :  ({c} : Category)
+              -> ({x,y,z} : Obj c)
+              -> ({g,h} : Arrow x z)
+              -> (f : Arrow z y)
+              -> EqAr g h
+              -> EqAr (comp f g) (comp f h) ;
+  def eqCompL f (eqRefl g) = eqRefl (comp f g) ;
+
+  fun eqCompR :  ({c} : Category)
+              -> ({x,y,z} : Obj c)
+              -> ({g,h} : Arrow z y)
+              -> EqAr g h
+              -> (f : Arrow x z)
+              -> EqAr (comp g f) (comp h f) ;
+  def eqCompR (eqRefl g) f = eqRefl (comp g f) ;
+
+
+  -------------------------------------------------------
+  -- Operations over categories
+  --
+  
+  -- 1. Dual category
   data Op   :  (c : Category)
             -> Category ;
-       opEl :  ({c} : Category)
-            -> (x : El c)
-            -> El (Op c) ;
+       opObj:  ({c} : Category)
+            -> (x : Obj c)
+            -> Obj (Op c) ;
        opAr :  ({c} : Category)
-            -> ({x,y} : El c)
+            -> ({x,y} : Obj c)
             -> (a : Arrow x y)
-            -> Arrow {Op c} (opEl y) (opEl x) ;
-  def  id {Op c} (opEl {c} x) = opAr (id x) ;
-  def  comp {Op c} {opEl {c} x} {opEl {c} y} {opEl {c} z} (opAr {c} {y} {z} f) (opAr {c} {z} {x} g) = opAr (comp g f) ;
-  
+            -> Arrow {Op c} (opObj y) (opObj x) ;
+  def  id (opObj x) = opAr (id x) ;
+  def  comp (opAr f) (opAr g) = opAr (comp g f) ;
+
   fun eqOp :  ({c} : Category)
-           -> ({x,y} : El c)
+           -> ({x,y} : Obj c)
            -> ({f} : Arrow x y)
            -> ({g} : Arrow x y)
            -> EqAr f g
            -> EqAr (opAr f) (opAr g) ;
-  def eqOp {c} {x} {y} {f} {f} (eqRefl {c} {x} {y} f) = eqRefl (opAr f) ;
-  
+  def eqOp (eqRefl f) = eqRefl (opAr f) ;
+
+  -- 2. Slash of a category
   data Slash     :  (c : Category)
-                 -> (x : El c)
+                 -> (x : Obj c)
                  -> Category ;
-       slashEl   :  ({c} : Category)
-                 -> (x,{y} : El c)
+       slashObj  :  ({c} : Category)
+                 -> (x,{y} : Obj c)
                  -> Arrow y x
-                 -> El (Slash c x) ;
+                 -> Obj (Slash c x) ;
        slashAr   :  ({c} : Category)
-                 -> (x,{y,z} : El c)
+                 -> (x,{y,z} : Obj c)
                  -> ({ay} : Arrow y x)
                  -> ({az} : Arrow z x)
                  -> Arrow y z
-                 -> Arrow (slashEl x ay) (slashEl x az) ;
-  def  id {Slash c x} (slashEl {c} x {y} a) = slashAr x {y} {y} {a} {a} (id y) ;
-  def  comp {Slash c t} {slashEl {c} t {x} ax} {slashEl {c} t {y} ay} {slashEl {c} t {z} az} (slashAr {c} t {z} {y} {az} {ay} azy) (slashAr {c} t {x} {z} {ax} {az} axz) = slashAr t {x} {y} {ax} {ay} (comp azy axz) ;
+                 -> Arrow (slashObj x ay) (slashObj x az) ;
+  def  id (slashObj x {y} a) = slashAr x (id y) ;
+  def  comp (slashAr t azy) (slashAr ~t axz) = slashAr t (comp azy axz) ;
 
+  -- 3. CoSlash of a category
   data CoSlash   :  (c : Category)
-                 -> (x : El c)
+                 -> (x : Obj c)
                  -> Category ;
-       coslashEl :  ({c} : Category)
-                 -> (x,{y} : El c)
+       coslashObj:  ({c} : Category)
+                 -> (x,{y} : Obj c)
                  -> Arrow x y
-                 -> El (CoSlash c x) ;
+                 -> Obj (CoSlash c x) ;
        coslashAr :  ({c} : Category)
-                 -> (x,{y,z} : El c)
+                 -> (x,{y,z} : Obj c)
                  -> ({ay} : Arrow x y)
                  -> ({az} : Arrow x z)
                  -> Arrow z y
-                 -> Arrow (coslashEl x ay) (coslashEl x az) ;
-  def  id {CoSlash c x} (coslashEl {c} x {y} a) = coslashAr x (id y) ;
-  def  comp {CoSlash c t} {coslashEl {c} t {x} ax} {coslashEl {c} t {y} ay} {coslashEl {c} t {z} az} (coslashAr {c} t {z} {y} {az} {ay} ayz) (coslashAr {c} t {x} {z} {ax} {az} azx) = coslashAr t {x} {y} {ax} {ay} (comp azx ayz) ;
+                 -> Arrow (coslashObj x ay) (coslashObj x az) ;
+  def  id (coslashObj x {y} a) = coslashAr x (id y) ;
+  def  comp (coslashAr t ayz) (coslashAr ~t azx) = coslashAr t (comp azx ayz) ;
 
+  -- 4. Cartesian product of two categories
   data Prod   :  (c1,c2 : Category)
               -> Category ;
-       prodEl :  ({c1,c2} : Category)
-              -> El c1
-              -> El c2
-              -> El (Prod c1 c2) ;
+       prodObj:  ({c1,c2} : Category)
+              -> Obj c1
+              -> Obj c2
+              -> Obj (Prod c1 c2) ;
        prodAr :  ({c1,c2} : Category)
-              -> ({x1,y1} : El c1)
-              -> ({x2,y2} : El c2)
+              -> ({x1,y1} : Obj c1)
+              -> ({x2,y2} : Obj c2)
               -> Arrow x1 y1
               -> Arrow x2 y2
-              -> Arrow (prodEl x1 x2) (prodEl y1 y2) ;
-  def id {Prod c1 c2} (prodEl {c1} {c2} x1 x2) = prodAr (id x1) (id x2) ;
-  def comp {Prod c1 c2} {prodEl {c1} {c2} x1 x2} {prodEl {c1} {c2} y1 y2} {prodEl {c1} {c2} z1 z2} (prodAr {c1} {c2} {z1} {y1} {z2} {y2} f1 f2) (prodAr {c1} {c2} {x1} {z1} {x2} {z2} g1 g2) = prodAr {c1} {c2} {x1} {y1} {x2} {y2} (comp f1 g1) (comp f2 g2) ;
-  
-  fun fst : ({c1,c2} : Category) -> El (Prod c1 c2) -> El c1 ;
-  def fst {c1} {c2} (prodEl {c1} {c2} x1 _) = x1 ;
+              -> Arrow (prodObj x1 x2) (prodObj y1 y2) ;
+  def id (prodObj x1 x2) = prodAr (id x1) (id x2) ;
+  def comp (prodAr f1 f2) (prodAr g1 g2) = prodAr (comp f1 g1) (comp f2 g2) ;
 
-  fun snd : ({c1,c2} : Category) -> El (Prod c1 c2) -> El c2 ;
-  def snd {c1} {c2} (prodEl {c1} {c2} _ x2) = x2 ;
+  fun fst : ({c1,c2} : Category) -> Obj (Prod c1 c2) -> Obj c1 ;
+  def fst (prodObj x1 _) = x1 ;
 
+  fun snd : ({c1,c2} : Category) -> Obj (Prod c1 c2) -> Obj c2 ;
+  def snd (prodObj _ x2) = x2 ;
+  
+  -- 5. Sum of two categories
   data Sum    :  (c1,c2 : Category)
               -> Category ;
-       sumLEl :  ({c1,c2} : Category)
-              -> El c1
-              -> El (Sum c1 c2) ;
-       sumREl :  ({c1,c2} : Category)
-              -> El c2
-              -> El (Sum c1 c2) ;
+       sumLObj:  ({c1,c2} : Category)
+              -> Obj c1
+              -> Obj (Sum c1 c2) ;
+       sumRObj:  ({c1,c2} : Category)
+              -> Obj c2
+              -> Obj (Sum c1 c2) ;
        sumLAr :  ({c1,c2} : Category)
-              -> ({x,y} : El c1)
+              -> ({x,y} : Obj c1)
               -> Arrow x y
-              -> Arrow {Sum c1 c2} (sumLEl x) (sumLEl y) ;
+              -> Arrow {Sum c1 c2} (sumLObj x) (sumLObj y) ;
        sumRAr :  ({c1,c2} : Category)
-              -> ({x,y} : El c2)
+              -> ({x,y} : Obj c2)
               -> Arrow x y
-              -> Arrow {Sum c1 c2} (sumREl x) (sumREl y) ;
-  def  id {Sum c1 c2} (sumLEl {c1} {c2} x) = sumLAr (id x) ;
-       id {Sum c1 c2} (sumREl {c1} {c2} x) = sumRAr (id x) ;
+              -> Arrow {Sum c1 c2} (sumRObj x) (sumRObj y) ;
 
-       comp {Sum c1 c2} {sumREl {c1} {c2} x} {sumREl {c1} {c2} y} {sumREl {c1} {c2} z} (sumRAr {c1} {c2} {z} {y} f) (sumRAr {c1} {c2} {x} {z} g) = sumRAr (comp f g) ;
-       comp {Sum c1 c2} {sumLEl {c1} {c2} x} {sumLEl {c1} {c2} y} {sumLEl {c1} {c2} z} (sumLAr {c1} {c2} {z} {y} f) (sumLAr {c1} {c2} {x} {z} g) = sumLAr (comp f g) ;
+  def  id (sumLObj x) = sumLAr (id x) ;
+       id (sumRObj x) = sumRAr (id x) ;
+
+       comp (sumRAr f) (sumRAr g) = sumRAr (comp f g) ;
+       comp (sumLAr f) (sumLAr g) = sumLAr (comp f g) ;
 
 }
diff --git a/examples/category-theory/Equalizer.gf b/examples/category-theory/Equalizer.gf
--- a/examples/category-theory/Equalizer.gf
+++ b/examples/category-theory/Equalizer.gf
@@ -1,45 +1,45 @@
 abstract Equalizer = Morphisms ** {
 
-cat Equalizer ({c} : Category) ({x,y,z} : El c) (f,g : Arrow x y) (e : Arrow z x) ;
+cat Equalizer ({c} : Category) ({x,y,z} : Obj c) (f,g : Arrow x y) (e : Arrow z x) ;
 
 data equalizer :  ({c} : Category)
-               -> ({x,y,z} : El c)
+               -> ({x,y,z} : Obj c)
                -> (f,g : Arrow x y)
                -> (e : Arrow z x)
                -> EqAr (comp f e) (comp g e)
                -> Equalizer f g e ;
 
 fun idEqualizer : ({c} : Category)
-               -> ({x,y} : El c)
+               -> ({x,y} : Obj c)
                -> (f : Arrow x y)
                -> Equalizer f f (id x) ;
 def idEqualizer {c} {x} {y} f = equalizer f f (id x) (eqCompL f (eqRefl (id x))) ;
 
 fun equalizer2mono :  ({c} : Category)
-                   -> ({x,y,z} : El c)
+                   -> ({x,y,z} : Obj c)
                    -> (f,g : Arrow x y)
                    -> (e : Arrow z x)
                    -> Equalizer f g e
                    -> Mono e ;
 -- def equalizer2mono = ...
 
-cat CoEqualizer ({c} : Category) ({x,y,z} : El c) (e : Arrow y z) (f,g : Arrow x y) ;
+cat CoEqualizer ({c} : Category) ({x,y,z} : Obj c) (e : Arrow y z) (f,g : Arrow x y) ;
 
 data coequalizer :  ({c} : Category)
-                 -> ({x,y,z} : El c)
+                 -> ({x,y,z} : Obj c)
                  -> (e : Arrow y z)
                  -> (f,g : Arrow x y)
                  -> EqAr (comp e f) (comp e g)
                  -> CoEqualizer e f g ;
 
 fun idCoEqualizer : ({c} : Category)
-                 -> ({x,y} : El c)
+                 -> ({x,y} : Obj c)
                  -> (f : Arrow x y)
                  -> CoEqualizer (id y) f f ;
 def idCoEqualizer {c} {x} {y} f = coequalizer (id y) f f (eqCompR (eqRefl (id y)) f) ;
 
 fun coequalizer2epi :  ({c} : Category)
-                    -> ({x,y,z} : El c)
+                    -> ({x,y,z} : Obj c)
                     -> ({e} : Arrow y z)
                     -> ({f,g} : Arrow x y)
                     -> CoEqualizer e f g
diff --git a/examples/category-theory/Functor.gf b/examples/category-theory/Functor.gf
--- a/examples/category-theory/Functor.gf
+++ b/examples/category-theory/Functor.gf
@@ -1,41 +1,49 @@
 abstract Functor = Categories ** {
 
-cat Functor (c1, c2 : Category) ;
+  ----------------------------------------------------------
+  -- Functor - an arrow (a morphism) between two categories
+  --
+  -- The functor is defined by two morphisms - one for the
+  -- objects and one for the arrows. We also require that
+  -- the morphisms preserve the categorial structure.
 
-data functor :  ({c1, c2} : Category) 
-             -> (f0 : El c1 -> El c2)
-             -> (f1 : ({x,y} : El c1) -> Arrow x y -> Arrow (f0 x) (f0 y))
-             -> ((x : El c1) -> EqAr (f1 (id x)) (id (f0 x)))
-             -> (({x,y,z} : El c1) -> (f : Arrow x z) -> (g : Arrow z y) -> EqAr (f1 (comp g f)) (comp (f1 g) (f1 f)))
-             -> Functor c1 c2 ;
+  cat Functor (c1, c2 : Category) ;
 
-fun idF : (c : Category) -> Functor c c ;
--- def idF c = functor (\x->x) (\f->f) (\x -> eqRefl (id x)) (\f,g -> eqRefl (comp g f)) ;
+  data functor :  ({c1, c2} : Category) 
+               -> (f0 : Obj c1 -> Obj c2)
+               -> (f1 : ({x,y} : Obj c1) -> Arrow x y -> Arrow (f0 x) (f0 y))
+               -> ((x : Obj c1) -> EqAr (f1 (id x)) (id (f0 x)))
+               -> (({x,y,z} : Obj c1) -> (f : Arrow x z) -> (g : Arrow z y) -> EqAr (f1 (comp g f)) (comp (f1 g) (f1 f)))
+               -> Functor c1 c2 ;
 
-fun compF : ({c1,c2,c3} : Category) -> Functor c3 c2 -> Functor c1 c3 -> Functor c1 c2 ;
--- def compF {c1} {c2} {c3} (functor {c3} {c2} f032 f132 eqid32 eqcmp32) (functor {c1} {c3} f013 f113 eqid13 eqcmp13) =
---         functor (\x -> f032 (f013 x)) (\x -> f132 (f113 x)) (\x -> mapEqAr (f132 {?} {?}) eqid13) ? ;
+  -- identity functor
+  fun idF : (c : Category) -> Functor c c ;
+  def idF c = functor (\x->x) (\f->f) (\x -> eqRefl (id x)) (\f,g -> eqRefl (comp g f)) ;
 
-fun mapEl :  ({c1, c2} : Category)
-          -> Functor c1 c2
-          -> El c1
-          -> El c2 ;
-def mapEl {c1} {c2} (functor {c1} {c2} f0 f1 _ _) = f0 ;
-{-
-fun mapAr :  ({c1, c2} : Category)
-          -> ({x,y} : El c1)
-          -> (f : Functor c1 c2)
-          -> Arrow x y
-          -> Arrow (mapEl f x) (mapEl f y) ;
-def mapAr {c1} {c2} {x} {y} (functor {c1} {c2} f0 f1 _ _) = f1 {x} {y} ;
--}
-{-
-fun mapEqAr :  ({c} : Category)
-            -> ({x,y} : El c)
-            -> ({f,g} : Arrow x y)
-            -> (func : Arrow x y -> Arrow x y)
-            -> EqAr f g
-            -> EqAr (func f) (func g) ;
-def mapEqAr {c} {x} {y} {f} {f} func (eqRefl {c} {x} {y} f) = eqRefl (func f) ;
--}
-}
+  -- composition of two functors
+  fun compF : ({c1,c2,c3} : Category) -> Functor c3 c2 -> Functor c1 c3 -> Functor c1 c2 ;
+  def compF (functor f032 f132 eqid32 eqcmp32) (functor f013 f113 eqid13 eqcmp13) =
+           functor (\x -> f032 (f013 x)) (\x -> f132 (f113 x)) (\x -> mapEqAr f132 eqid13) ? ;
+
+  fun mapObj :  ({c1, c2} : Category)
+            -> Functor c1 c2
+            -> Obj c1
+            -> Obj c2 ;
+  def mapObj (functor f0 f1 _ _) = f0 ;
+
+  fun mapAr :  ({c1, c2} : Category)
+            -> ({x,y} : Obj c1)
+            -> (f : Functor c1 c2)
+            -> Arrow x y
+            -> Arrow (mapObj f x) (mapObj f y) ;
+  def mapAr (functor f0 f1 _ _) = f1 ;
+
+  fun mapEqAr :  ({c} : Category)
+              -> ({x,y} : Obj c)
+              -> ({f,g} : Arrow x y)
+              -> (func : Arrow x y -> Arrow x y)
+              -> EqAr f g
+              -> EqAr (func f) (func g) ;
+  def mapEqAr func (eqRefl f) = eqRefl (func f) ;
+
+}
diff --git a/examples/category-theory/InitialAndTerminal.gf b/examples/category-theory/InitialAndTerminal.gf
--- a/examples/category-theory/InitialAndTerminal.gf
+++ b/examples/category-theory/InitialAndTerminal.gf
@@ -1,44 +1,46 @@
 abstract InitialAndTerminal = Morphisms ** {
 
-cat  Initial  ({c} : Category) (El c) ;
+cat  Initial  ({c} : Category) (Obj c) ;
 data initial  : ({c} : Category)
-              -> (x : El c)
-              -> ((y : El c) -> Arrow x y)
+              -> (x : Obj c)
+              -> ((y : Obj c) -> Arrow x y)
               -> Initial x ;
               
 fun initAr :  ({c} : Category)
-           -> ({x} : El c)
+           -> ({x} : Obj c)
            -> Initial x
-           -> (y : El c)
+           -> (y : Obj c)
            -> Arrow x y ;
-def initAr {c} {x} (initial {c} x f) y = f y ;
-
+-- def initAr {~c} {~x} (initial {c} x f) y = f y ;
+{-
 fun initials2iso :  ({c} : Category)
-                 -> ({x,y} : El c)
+                 -> ({x,y} : Obj c)
                  -> (ix : Initial x)
                  -> (iy : Initial y)
                  -> Iso (initAr ix y) (initAr iy x) ;
+-}
 -- def initials2iso = .. ;
 
 
-cat  Terminal ({c} : Category) (El c) ;
+cat  Terminal ({c} : Category) (Obj c) ;
 data terminal : ({c} : Category)
-              -> (y : El c)
-              -> ((x : El c) -> Arrow x y)
+              -> (y : Obj c)
+              -> ((x : Obj c) -> Arrow x y)
               -> Terminal y ;
 
 fun terminalAr :  ({c} : Category)
-               -> (x : El c)
-               -> ({y} : El c)
+               -> (x : Obj c)
+               -> ({y} : Obj c)
                -> Terminal y
                -> Arrow x y ;
-def terminalAr {c} x {y} (terminal {c} y f) = f x ;
-
+-- def terminalAr {c} x {~y} (terminal {~c} y f) = f x ;
+{-
 fun terminals2iso :  ({c} : Category)
-                  -> ({x,y} : El c)
+                  -> ({x,y} : Obj c)
                   -> (tx : Terminal x)
                   -> (ty : Terminal y)
                   -> Iso (terminalAr x ty) (terminalAr y tx) ;
+                  -}
 -- def terminals2iso = .. ;
 
-}
+}
diff --git a/examples/category-theory/Morphisms.gf b/examples/category-theory/Morphisms.gf
--- a/examples/category-theory/Morphisms.gf
+++ b/examples/category-theory/Morphisms.gf
@@ -1,9 +1,13 @@
 abstract Morphisms = Categories ** {
 
-cat Iso ({c} : Category) ({x,y} : El c) (Arrow x y) (Arrow y x) ;
+-------------------------------------------------------
+-- 1. Isomorphism - pair of arrows whose composition
+-- is the identity arrow
 
+cat Iso ({c} : Category) ({x,y} : Obj c) (Arrow x y) (Arrow y x) ;
+
 data iso :  ({c} : Category)
-         -> ({x,y} : El c)
+         -> ({x,y} : Obj c)
          -> (f : Arrow x y)
          -> (g : Arrow y x)
          -> (EqAr (comp f g) (id y))
@@ -11,20 +15,20 @@
          -> Iso f g ;
 
 fun isoOp : ({c} : Category)
-         -> ({x,y} : El c)
+         -> ({x,y} : Obj c)
          -> ({f} : Arrow x y)
          -> ({g} : Arrow y x)
          -> Iso f g
          -> Iso (opAr g) (opAr f) ;
-def isoOp {c} {x} {y} {f} {g} (iso {c} {x} {y} f g id_fg id_gf) =
-        iso {Op c} (opAr g) (opAr f) (eqOp id_fg) (eqOp id_gf) ;
+def isoOp (iso f g id_fg id_gf) = iso (opAr g) (opAr f) (eqOp id_fg) (eqOp id_gf) ;
 
+-- every isomorphism is also monomorphism
 fun iso2mono :  ({c} : Category)
-             -> ({x,y} : El c)
+             -> ({x,y} : Obj c)
              -> ({f} : Arrow x y)
              -> ({g} : Arrow y x)
              -> (Iso f g -> Mono f) ;
-def iso2mono {c} {x} {y} {f} {g} (iso {c} {x} {y} f g id_fg id_gf) = 
+def iso2mono (iso f g id_fg id_gf) = 
         mono f (\h,m,eq_fh_fm -> 
                       eqSym (eqTran (eqIdR m)                                                                      --           h = m
                                     (eqTran (eqCompR id_gf m)                                                      --      id . m = h
@@ -35,13 +39,15 @@
                                                                                    (eqCompL g eq_fh_fm))))))))) ;  -- g . (f . h) = g . (f . m)
                                                                                                                    --      f . h  = f . m
 
+-- every isomorphism is also epimorphism
 fun iso2epi  :  ({c} : Category)
-             -> ({x,y} : El c)
+             -> ({x,y} : Obj c)
              -> ({f} : Arrow x y)
              -> ({g} : Arrow y x)
              -> (Iso f g -> Epi f) ;
-def iso2epi {c} {x} {y} {f} {g} (iso {c} {x} {y} f g id_fg id_gf) =
-        epi {c} {x} {y} f (\{z},h,m,eq_hf_mf -> 
+
+def iso2epi (iso f g id_fg id_gf) =
+        epi f (\h,m,eq_hf_mf -> 
                       eqSym (eqTran (eqIdL m)                                                                     --           h = m
                                     (eqTran (eqCompL m id_fg)                                                     --      m . id = h
                                             (eqTran (eqSym (eqAssoc m f g))                                       -- m . (f . g) = h
@@ -51,21 +57,36 @@
                                                                                    (eqCompR eq_hf_mf g))))))))) ; -- (h . f) . g = (m . f) . g
                                                                                                                   --  h . f      =  m . f
 
-cat Mono ({c} : Category) ({x,y} : El c) (Arrow x y) ;
 
+-------------------------------------------------------
+-- 2. Monomorphism - an arrow f such that:
+-- 
+--        f . h == f . m  ==>  h == m
+--
+-- for every h and m.
+
+cat Mono ({c} : Category) ({x,y} : Obj c) (Arrow x y) ;
+
 data mono :  ({c} : Category)
-          -> ({x,y} : El c)
+          -> ({x,y} : Obj c)
           -> (f : Arrow x y)
-          -> (({z} : El c) -> (h,m : Arrow z x) -> EqAr (comp f h) (comp f m) -> EqAr h m)
+          -> (({z} : Obj c) -> (h,m : Arrow z x) -> EqAr (comp f h) (comp f m) -> EqAr h m)
           -> Mono f ;
 
 
-cat Epi ({c} : Category) ({x,y} : El c) (Arrow x y) ;
+-------------------------------------------------------
+-- 3. Epimorphism - an arrow f such that:
+-- 
+--        h . f == m . f  ==>  h == m
+--
+-- for every h and m.
 
+cat Epi ({c} : Category) ({x,y} : Obj c) (Arrow x y) ;
+
 data epi  :  ({c} : Category)
-          -> ({x,y} : El c)
+          -> ({x,y} : Obj c)
           -> (f : Arrow x y)
-          -> (({z} : El c) -> (h,m : Arrow y z) -> EqAr (comp h f) (comp m f) -> EqAr h m)
+          -> (({z} : Obj c) -> (h,m : Arrow y z) -> EqAr (comp h f) (comp m f) -> EqAr h m)
           -> Epi f ;
 
 }
diff --git a/examples/category-theory/NaturalTransform.gf b/examples/category-theory/NaturalTransform.gf
--- a/examples/category-theory/NaturalTransform.gf
+++ b/examples/category-theory/NaturalTransform.gf
@@ -1,10 +1,19 @@
 abstract NaturalTransform = Functor ** {
 
-cat NT ({c1,c2} : Category) (f,g : Functor c1 c2) ;
+  ----------------------------------------------------------
+  -- Natural transformation - a pair of functors which 
+  -- differ up to an arrow
 
-data nt :  ({c1,c2} : Category)
-        -> (f,g : Functor c1 c2)
-        -> ((x : El c1) -> Arrow (mapEl f x) (mapEl g x))
-        -> NT f g ;
+  cat NT ({c1,c2} : Category) (f,g : Functor c1 c2) ;
+
+  data nt :  ({c1,c2} : Category)
+          -> (f,g : Functor c1 c2)
+          -> (n : (x : Obj c1) -> Arrow (mapObj f x) (mapObj g x))
+          -> (  ({x,y} : Obj c1)
+             -> (ar : Arrow x y)
+             -> EqAr (comp (n y) (mapAr f ar))
+                     (comp (mapAr g ar) (n x))
+             )
+          -> NT f g ;
 
 }
diff --git a/examples/gfm-format/Food.gfm b/examples/gfm-format/Food.gfm
new file mode 100644
--- /dev/null
+++ b/examples/gfm-format/Food.gfm
@@ -0,0 +1,76 @@
+-- Full .gfm format: multi-module files (see Words.gfm for a baseline format)
+-- The compiler recognizes the suffix .gfm and a file for each module.
+--   Food.gf, FoodEng.gf, FoodIta.gf
+-- The first non-comment line must give a list of lang names for the top modules.
+-- This modules are the ones imported in 'import Food.gfm'.
+-- Their prefix comes from this file.
+-- This file must be UTF-8 encoded.
+
+
+> langs Eng Ita
+
+abstract Food = {
+
+  cat
+    Phrase ; Item ; Kind ; Quality ;
+
+  flags startcat = Phrase ;
+
+  fun
+    Is : Item -> Quality -> Phrase ;
+    This, That : Kind -> Item ;
+    QKind : Quality -> Kind -> Kind ;
+    Wine, Cheese, Fish : Kind ;
+    Very : Quality -> Quality ;
+    Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
+
+}
+
+concrete FoodEng of Food = {
+
+
+  lincat
+    Phrase, Item, Kind, Quality = {s : Str} ;
+
+  lin
+    Is item quality = {s = item.s ++ "is" ++ quality.s} ;
+    This kind = {s = "this" ++ kind.s} ;
+    That kind = {s = "that" ++ kind.s} ;
+    QKind quality kind = {s = quality.s ++ kind.s} ;
+    Wine = {s = "wine"} ;
+    Cheese = {s = "cheese"} ;
+    Fish = {s = "fish"} ;
+    Very quality = {s = "very" ++ quality.s} ;
+    Fresh = {s = "fresh"} ;
+    Warm = {s = "warm"} ;
+    Italian = {s = "Italian"} ;
+    Expensive = {s = "expensive"} ;
+    Delicious = {s = "delicious"} ;
+    Boring = {s = "boring"} ;
+
+}
+    
+concrete FoodIta of Food = {
+
+  flags coding = utf8 ;
+
+  lincat
+    Phrase, Item, Kind, Quality = {s : Str} ;
+
+  lin
+    Is item quality = {s = item.s ++ "è" ++ quality.s} ;
+    This kind = {s = "questo" ++ kind.s} ;
+    That kind = {s = "quel" ++ kind.s} ;
+    QKind quality kind = {s = kind.s ++ quality.s} ;
+    Wine = {s = "vino"} ;
+    Cheese = {s = "formaggio"} ;
+    Fish = {s = "pesce"} ;
+    Very quality = {s = "molto" ++ quality.s} ;
+    Fresh = {s = "fresco"} ;
+    Warm = {s = "caldo"} ;
+    Italian = {s = "italiano"} ;
+    Expensive = {s = "caro"} ;
+    Delicious = {s = "delizioso"} ;
+    Boring = {s = "noioso"} ;
+
+}
diff --git a/examples/gfm-format/Words.gfm b/examples/gfm-format/Words.gfm
new file mode 100644
--- /dev/null
+++ b/examples/gfm-format/Words.gfm
@@ -0,0 +1,22 @@
+-- Baseline of .gfm format: multilingual word lists (see Food.gfm for multi-module gf)
+-- The compiler recognizes the suffix .gfm and creates four files:
+--   Words.gf, WordsEng.gf, WordsFin.gf, WordsSwe.gf
+-- The first non-comment line must give a list of lang names.
+-- The prefix comes from this file, as well as the abstract name.
+-- Languages are separated by ';', variants within a language by ','.
+-- Multi-word expressions are allowed.
+-- The startcat is S.
+-- The abstract name is multi_word_S for the first multi word (or word) on each line.
+-- This file must be UTF-8 encoded.
+
+> langs Eng Swe Fin
+
+house ; hus ; talo
+car, automobile ; bil ; auto
+man ; man ; mies
+girl ; flicka, tjej ; tyttö
+technical university ; teknisk högskola ; teknillinen korkeakoulu
+
+
+
+
diff --git a/examples/lrec-tutorial/Ara.gf b/examples/lrec-tutorial/Ara.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Ara.gf
@@ -0,0 +1,8 @@
+abstract Ara = {
+
+cat S ; V ;
+
+fun ktb_V : V ;
+
+  Tab : V -> S ;
+}
diff --git a/examples/lrec-tutorial/AraAra.gf b/examples/lrec-tutorial/AraAra.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/AraAra.gf
@@ -0,0 +1,9 @@
+concrete AraAra of Ara = open Arabic in {
+
+lincat V = Verb ; S = Str ;
+
+lin ktb_V = u_Verb "ktb" ;
+ 
+  Tab v = verbTable v ;
+
+}
diff --git a/examples/lrec-tutorial/Arabic.gf b/examples/lrec-tutorial/Arabic.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Arabic.gf
@@ -0,0 +1,110 @@
+resource Arabic = {
+oper
+  Root    : Type = {F,C,L : Str} ;
+  Pattern : Type = {F,FC,CL,L : Str} ;
+
+  appPattern : Root -> Pattern -> Str = \r,p ->
+    p.F + r.F + p.FC + r.C + p.CL + r.L + p.L ;
+
+  getRoot : Str -> Root = \s -> case s of {
+    F@? + C@? + L => {F = F ; C = C ; L = L} ;
+    _ => Predef.error ("cannot get root from" ++ s)
+    } ;
+
+  getPattern : Str -> Pattern = \s -> case s of {
+    F + "F" + FC + "C" + CL + "L" + L => {F = F ; FC = FC ; CL = CL ; L = L} ;
+    _ => Predef.error ("cannot get pattern from" ++ s)
+    } ;
+
+  getWord : Str -> Str -> Str = \r,p ->
+    appPattern (getRoot r) (getPattern p) ;
+
+param
+  Number = Sg | Dl | Pl ;
+  Gender = Masc | Fem ;
+  Tense  = Perf | Impf ;
+
+  VPer = Vp3 Number Gender | Vp2Sg Gender | Vp2Dl | Vp2Pl Gender | Vp1Sg | Vp1Pl ;
+
+oper
+  Verb : Type = {s : Tense => VPer => Str} ;  
+
+  pattV_u : Tense -> VPer -> Pattern = \t,v -> getPattern (case t of {
+    Perf => case v of {
+      Vp3 Sg Masc => "FaCaLa" ;
+      Vp3 Sg Fem  => "FaCaLat" ;
+      Vp3 Dl Masc => "FaCaLaA" ;
+      Vp3 Dl Fem  => "FaCaLataA" ;
+      Vp3 Pl Masc => "FaCaLuwA" ;
+      Vp3 Pl Fem  => "FaCaLona" ;
+
+      Vp2Sg  Masc => "FaCaLota" ;
+      Vp2Sg  Fem  => "FaCaLoti" ;
+      Vp2Dl       => "FaCaLotumaA" ;
+      Vp2Pl  Masc => "FaCaLotum" ;
+      Vp2Pl  Fem  => "FaCaLotunv2a" ;
+       
+      Vp1Sg       => "FaCaLotu" ;
+      Vp1Pl       => "FaCaLonaA"
+      } ;
+    Impf => case v of {
+      Vp3 Sg Masc => "yaFoCuLu" ;
+      Vp3 Sg Fem  => "taFoCuLu" ;
+      Vp3 Dl Masc => "yaFoCuLaAni" ;
+      Vp3 Dl Fem  => "taFoCuLaAni" ;
+      Vp3 Pl Masc => "yaFoCuLuwna" ;
+      Vp3 Pl Fem  => "yaFoCuLna" ;
+
+      Vp2Sg  Masc => "taFoCuLu" ;
+      Vp2Sg  Fem  => "taFoCuLiyna" ;
+      Vp2Dl       => "taFoCuLaAni" ;
+      Vp2Pl  Masc => "taFoCuLuwna" ;
+      Vp2Pl  Fem  => "taFoCuLona" ;
+       
+      Vp1Sg       => "A?aFoCuLu" ;
+      Vp1Pl       => "naFoCuLu"
+      }
+   }) ;
+
+  u_Verb : Str -> Verb = \s -> {
+    s = \\t,p => appPattern (getRoot s) (pattV_u t p)
+    } ;
+
+-- for html
+
+  tag : Str -> Str = \t -> "<" + t + ">" ;
+  etag : Str -> Str = \t -> "</" + t + ">" ;
+  atag : Str -> Str -> Str = \t,a -> "<" + t ++ a + ">" ;
+
+  intag : Str -> Str -> Str = \t,s -> tag t ++ s ++ etag t ;
+  intagAttr : Str -> Str -> Str -> Str = \t,a,s -> atag t a ++ s ++ etag t ;
+
+  verbTable : Verb -> Str = \v -> 
+    let 
+      vsp = v.s ! Perf ;
+      vsi = v.s ! Impf ;
+      tr : Str -> Str = intag "tr" ;
+      td : Str -> Str = intag "td" ;
+      ts : Str -> Str = \s -> td ("\"" ++ s ++ "\"") ;
+      trs : Str -> Str -> VPer -> Str = \s,n,v -> 
+        tr (td s ++ td n ++ ts (vsp ! v) ++ ts (vsi ! v))
+    in 
+    intagAttr "table" "border=1" (
+       tr ((td "Persona") ++ (td "Numerus") ++ (td "Perfectum") ++ (td "Imperfectum")) ++
+       trs "3. masc." "sing." (Vp3 Sg Masc) ++
+       trs "3. fem."  "sing." (Vp3 Sg Fem) ++
+       trs "2. masc." "sing." (Vp2Sg Masc) ++
+       trs "2. fem."  "sing." (Vp2Sg Fem) ++
+       trs "1."       "sing." (Vp1Sg) ++
+       trs "3. masc." "dual." (Vp3 Dl Masc) ++
+       trs "3. fem."  "dual." (Vp3 Dl Fem) ++
+       trs "2."       "dual." (Vp2Dl) ++
+       trs "3. masc." "plur." (Vp3 Pl Masc) ++
+       trs "3. fem."  "plur." (Vp3 Pl Fem) ++
+       trs "2. masc." "plur." (Vp2Pl Masc) ++
+       trs "2. fem."  "plur." (Vp2Pl Fem) ++
+       trs "1."       "plur." (Vp1Pl)
+      ) ;
+
+
+}
diff --git a/examples/lrec-tutorial/Grammar.gf b/examples/lrec-tutorial/Grammar.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Grammar.gf
@@ -0,0 +1,17 @@
+abstract Grammar = {
+  cat 
+    Cl ; NP ; VP ; AP ; CN ; Det ; N ; A ; V ; V2 ;
+  fun
+    PredVP  : NP -> VP -> Cl ;
+    ComplV2 : V2 -> NP -> VP ;
+    DetCN   : Det -> CN -> NP ;
+    ModCN   : CN -> AP -> CN ;
+
+    UseV    : V -> VP ;
+    UseN    : N -> CN ;
+    UseA    : A -> AP ;
+
+    a_Det, the_Det : Det ;
+    this_Det, these_Det : Det ;
+    i_NP, she_NP, we_NP : NP ;
+}
diff --git a/examples/lrec-tutorial/GrammarIta.gf b/examples/lrec-tutorial/GrammarIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/GrammarIta.gf
@@ -0,0 +1,80 @@
+concrete GrammarIta of Grammar = open ResIta, Prelude in {
+  lincat  
+    Cl = {s : ResIta.Tense => Str} ; 
+    NP = ResIta.NP ;          -- {s : Case => {clit,obj : Str} ; a : Agr} ; 
+    VP = ResIta.VP ;          -- {v : Verb ; clit : Str ; obj : Str} ;
+    AP = {s : Gender => Number => Str ; isPre : Bool} ;
+    CN = Noun ;               -- {s : Number => Str ; g : Gender} ;
+    Det = {s : Gender => Case => Str ; n : Number} ;
+    N = Noun ;                -- {s : Number => Str ; g : Gender} ;
+    A = Adj ;                 -- {s : Gender => Number => Str ; isPre : Bool} ;
+    V = Verb ;                -- {s : VForm => Str ; aux : Aux} ;
+    V2 = Verb ** {c : Case} ;
+
+  lin
+    PredVP np vp = 
+      let 
+        subj = (np.s ! Nom).obj ;
+        obj  = vp.obj ;
+        clit = vp.clit ;
+        verb = table {
+          Pres => agrV vp.v np.a ;
+          Perf => agrV (auxVerb vp.v.aux) np.a ++ agrPart vp.v np.a 
+          }
+      in {
+        s = \\t => subj ++ clit ++ verb ! t ++ obj
+      } ;
+
+    ComplV2 v2 np = 
+      let
+        nps = np.s ! v2.c
+      in {
+        v = {s = v2.s ; aux = v2.aux} ; 
+        clit = nps.clit ; 
+        obj  = nps.obj
+        } ;
+
+    UseV v = {
+      v = v ; 
+      clit = [] ; 
+      obj = []
+      } ;
+
+    DetCN det cn = {
+      s = \\c => {obj = det.s ! cn.g ! c ++ cn.s ! det.n ; clit = []} ;
+      a = Ag cn.g det.n Per3
+      } ;
+
+    ModCN cn ap = {
+      s = \\n => preOrPost ap.isPre (ap.s ! cn.g ! n) (cn.s ! n) ;
+      g = cn.g
+      } ;
+
+    UseN n = n ;
+
+    UseA adj = adj ;
+
+    a_Det = adjDet (mkA "un" "una" [] [] True) Sg ;
+
+    the_Det = {
+      s = table {
+        Masc => table {
+          Nom | Acc => pre {"il" ; "lo" / s_impuro ; "l'" / vowel} ;
+          Dat => pre {"al" ; "allo" / s_impuro ; "all'" / vowel}
+          } ;
+        Fem => table {
+          Nom | Acc => pre {"la" ; "l'" / vowel} ;
+          Dat => pre {"alla" ; "all'" / vowel}
+          }
+        } ;
+      n = Sg
+      } ;
+        
+    this_Det = adjDet (mkA "questo") Sg ;
+    these_Det = adjDet (mkA "questo") Pl ;
+
+    i_NP =   pronNP "io"  "mi" "mi" Masc Sg Per1 ;
+    she_NP = pronNP "lei" "la" "le" Fem  Sg Per3 ;
+    we_NP =  pronNP "noi" "ci" "ci" Masc Pl Per1 ;
+
+}
diff --git a/examples/lrec-tutorial/GrammarIta0.gf b/examples/lrec-tutorial/GrammarIta0.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/GrammarIta0.gf
@@ -0,0 +1,80 @@
+concrete GrammarIta of Grammar = open ResIta, Prelude in {
+  lincat  
+    Cl = {s : Tense => Str} ; 
+    NP = {s : Case => Str ; a : Agr} ; 
+    VP = {s : VForm => Str ; aux : Aux} ;
+    AP = {s : Gender => Number => Str} ;
+    CN = {s : Number => Str ; g : Gender} ;
+    Det = {s : Gender => Case => Str ; n : Number} ;
+    N = {s : Number => Str ; g : Gender} ;
+    A = {s : Gender => Number => Str} ;
+    V = {s : VForm => Str ; aux : Aux} ;
+    V2 = Verb ** {c : Preposition} ;
+
+  lin
+    PredVP np vp = 
+      let 
+        subj = np.s ! Nom ;
+        obj  = vp.obj ;
+        clit = vp.clit ;
+        verb = table {
+          Pres => agrV vp ;
+          Perf => agrV (auxVerb vp.aux) np.a ++ agrPart vp np.a 
+          }
+      in {
+        s = \\t => subj ++ clit ++ verb ! t ++ obj
+      } ;
+
+    ComplV2 v2 np = 
+      let
+        nps = np.s ! v2.c.c
+      in {
+        v = {s = v2.s ; aux = v2.aux} ; 
+        clit = nps.clit ; 
+        obj = v2.c.p ++ nps.obj
+        } ;
+
+    UseV v = {
+      v = v ; 
+      clit = [] ; 
+      obj = []
+      } ;
+
+    DetCN det cn = {
+      s = \\c => {obj = det.s ! cn.g ! c ++ cn.s ! det.n ; clit = []} ;
+      a = Ag cn.g det.n Per3
+      } ;
+
+    ModCN cn ap = {
+      s = \\n => preOrPost ap.isPre (ap.s ! cn.g ! n) (cn.s ! n) ;
+      g = cn.g
+      } ;
+
+    UseN n = n ;
+
+    UseA adj = adj ;
+
+    a_Det = adjDet (mkA "un" "una" [] [] True) Sg ;
+
+    the_Det = {
+      s = table {
+        Masc => table {
+          Nom | Acc => pre {"il" ; "lo" / s_impuro ; "l'" / vowel} ;
+          Dat => pre {"al" ; "allo" / s_impuro ; "all'" / vowel}
+          } ;
+        Fem => table {
+          Nom | Acc => pre {"la" ; "l'" / vowel} ;
+          Dat => pre {"alla" ; "all'" / vowel}
+          }
+        } ;
+      n = Sg
+      } ;
+        
+    this_Det = adjDet (mkA "questo") Sg ;
+    these_Det = adjDet (mkA "questo") Pl ;
+
+    i_NP =   pronNP "io"  "mi" "mi" Masc Sg Per1 ;
+    she_NP = pronNP "lei" "la" "le" Fem  Sg Per3 ;
+    we_NP =  pronNP "noi" "ci" "ci" Masc Pl Per1 ;
+
+}
diff --git a/examples/lrec-tutorial/Lang.gf b/examples/lrec-tutorial/Lang.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Lang.gf
@@ -0,0 +1,9 @@
+abstract Lang = Grammar ** {
+
+fun
+  man_N, woman_N, house_N, tree_N : N ;
+  big_A, small_A, green_A : A ;
+  walk_V, arrive_V : V ;
+  love_V2, please_V2 : V2 ;
+
+} ;
diff --git a/examples/lrec-tutorial/LangIta.gf b/examples/lrec-tutorial/LangIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/LangIta.gf
@@ -0,0 +1,17 @@
+concrete LangIta of Lang = GrammarIta ** open ResIta in {
+
+lin
+  man_N = mkN "uomo" "uomini" Masc ;
+  woman_N = mkN "donna" ;
+  house_N = mkN "casa" ;
+  tree_N = mkN "albero" ;
+  big_A = preA (mkA "grande") ;
+  small_A = preA (mkA "piccolo") ;
+  green_A = mkA "verde" ;
+  walk_V = mkV "camminare" ;
+  arrive_V = essereV (mkV "arrivare") ;
+  love_V2 = mkV2 "amare" ;
+  please_V2 = mkV2 (mkV "piacere" "piaccio" "piaci" "piace" 
+       "piacciamo" "piacete" "piacciono" "piaciuto" Essere) Dat ;
+
+} ;
diff --git a/examples/lrec-tutorial/LexFaceIta.gf b/examples/lrec-tutorial/LexFaceIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/LexFaceIta.gf
@@ -0,0 +1,9 @@
+instance LexFaceIta of LexFace = open SyntaxIta, ParadigmsIta, LexiconIta in {
+
+oper
+  like_V2 = mkV2 "amare" ;
+  invitation_N = mkN "invitazione" feminine ;
+  friend_N = mkN "amico" ;
+  have_V2 = LexiconIta.have_V2 ;
+
+}
diff --git a/examples/lrec-tutorial/Morpho.gf b/examples/lrec-tutorial/Morpho.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Morpho.gf
@@ -0,0 +1,82 @@
+resource Morpho = open Prelude in {
+
+param
+  VForm = VInf | VPres | VPast | VPastPart | VPresPart ;
+
+oper
+  Verb : Type = {s : VForm => Str} ;
+
+-- worst-case function for data abstraction
+
+  mkVerb : (_,_,_,_,_ : Str) -> Verb = \vi,vpr,vpa,vpap,vprp -> {
+    s = table {
+      VInf => vi ;
+      VPres => vpr ;
+      VPast => vpa ;
+      VPastPart => vpap ;
+      VPresPart => vprp
+      }
+    } ;
+
+  regVerb : Str -> Verb = \walk -> 
+    mkVerb walk (walk + "s") (walk + "ed") (walk + "ed") (walk + "ing") ;
+
+  s_regVerb : Str -> Verb = \kiss -> 
+    mkVerb kiss (kiss + "es") (kiss + "ed") (kiss + "ed") (kiss + "ing") ;
+
+  e_regVerb : Str -> Verb = \use -> 
+    let us = init use 
+    in
+    mkVerb use (use + "s") (us + "ed") (us + "ed") (us + "ing") ;
+
+  y_regVerb : Str -> Verb = \cry -> 
+    let cr = init cry 
+    in
+    mkVerb cry (cr + "ies") (cr + "ied") (cr + "ied") (cry + "ing") ;
+
+  ie_regVerb : Str -> Verb = \die -> 
+    let dy = Predef.tk 2 die + "y" 
+    in
+    mkVerb die (die + "s") (die + "d") (die + "d") (dy + "ing") ;
+
+  dupRegVerb : Str -> Verb = \stop -> 
+    let stopp = stop + last stop 
+    in
+    mkVerb stop (stop + "s") (stopp + "ed") (stopp + "ed") (stopp + "ing") ;
+
+  smartVerb : Str -> Verb = \v -> case v of {
+    _ + ("s"|"z"|"x"|"ch")      => s_regVerb v ;
+    _                    + "ie" => ie_regVerb v ;
+    _                    + "ee" => mkVerb v (v + "s") (v + "d") (v + "d") (v + "ing") ;
+    _                     + "e" => e_regVerb v ;
+    _ + ("a"|"e"|"o"|"u") + "y" =>   regVerb v ;
+    _                     + "y" => y_regVerb v ;
+    _ + ("ea"|"ee"|"ie"|"oa"|"oo"|"ou") + ? => regVerb v ;
+    _ + ("a"|"e"|"i"|"o"|"u") + 
+            ("b"|"d"|"g"|"m"|"n"|"p"|"s"|"t") => dupRegVerb v ;
+    _ => regVerb v
+    } ;
+
+  irregVerb : (_,_,_ : Str) -> Verb = \sing,sang,sung -> 
+    let v = smartVerb sing 
+    in
+    mkVerb sing (v.s ! VPres) sang sung (v.s ! VPresPart) ;
+
+-- first example of matching
+
+  add_s : Str -> Str = \v -> case v of {
+    _ +     ("s"|"z"|"x"|"ch")  => v  + "es" ;
+    _ + ("a"|"e"|"o"|"u") + "y" => v  + "s" ;
+    cr                    + "y" => cr + "ies" ;
+    _                           => v  + "s"
+    } ;
+
+-- user paradigm
+
+  mkV = overload {
+    mkV : (cry : Str) -> Verb = smartVerb ;
+    mkV : (sing,sang,sung : Str) -> Verb = irregVerb ;
+    mkV : (go,goes,went,gone,going : Str) -> Verb = mkVerb ;
+  } ;
+
+}
diff --git a/examples/lrec-tutorial/One.gf b/examples/lrec-tutorial/One.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/One.gf
@@ -0,0 +1,42 @@
+abstract One = {
+  cat  
+    S ;
+    Cl ; 
+    NP ; 
+    VP ;
+    AP ;
+    CN ;
+    Det ;
+    Pron ;
+    PN ;
+    N ;
+    A ;
+    V ;
+    V2 ;
+    Adv ;
+    Prep ;
+    Pol ;
+    Tense ;
+  fun
+    DeclCl  : Tense -> Pol -> Cl -> S ;
+    QuestCl : Tense -> Pol -> Cl -> S ;
+
+    PredVP  : NP -> VP -> Cl ;
+
+    ComplV2 : V2 -> NP -> VP ;
+    UseAP   : AP -> VP ;
+    UseV    : V -> VP ;
+    AdVP    : VP -> Adv -> VP ;
+
+    DetCN   : Det -> CN -> NP ;
+    UsePN   : PN -> NP ;
+    UsePron : Pron -> NP ;
+
+    ModCN   : CN -> AP -> CN ;
+    UseN    : N -> CN ;
+
+    UseA    : A -> AP ;
+
+    AdvA    : A -> Adv ;
+    PrepNP  : Prep -> NP -> Adv ;
+}
diff --git a/examples/lrec-tutorial/ResIta.gf b/examples/lrec-tutorial/ResIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ResIta.gf
@@ -0,0 +1,154 @@
+resource ResIta = open Prelude in {
+
+-- parameters
+
+param
+  Number = Sg | Pl ;
+  Gender = Masc | Fem ;
+  Case = Nom | Acc | Dat ;
+  Agr = Ag Gender Number Person ;
+  Aux = Avere | Essere ;
+  Tense = Pres | Perf ;
+  Person = Per1 | Per2 | Per3 ;
+
+  VForm = VInf | VPres Number Person | VPart Gender Number ;
+
+-- parts of speech
+
+oper
+  VP = {v : Verb ; clit : Str ; obj : Str} ;
+  NP = {s : Case => {clit,obj : Str} ; a : Agr} ; 
+
+-- auxiliaries
+
+  prepCase : Case -> Str = \c -> case c of {
+    Dat => "a" ;
+    _ => []
+    } ;
+
+  adjDet : Adj -> Number -> {s : Gender => Case => Str ; n : Number} = \adj,n -> {
+    s = \\g,c => prepCase c ++ adj.s ! g ! n ;
+    n = n
+    } ;
+
+  pronNP : (s,a,d : Str) -> Gender -> Number -> Person -> NP = \s,a,d,g,n,p -> {
+    s = table {
+      Nom => {clit = [] ; obj = s} ;
+      Acc => {clit = a  ; obj = []} ;
+      Dat => {clit = d  ; obj = []}
+      } ;
+    a = Ag g n p
+    } ;
+
+-- predication
+
+  agrV : Verb -> Agr -> Str = \v,a -> case a of {
+    Ag _ n p => v.s ! VPres n p
+    } ;
+
+  auxVerb : Aux -> Verb = \a -> case a of {
+    Avere => mkVerb "avere" "ho" "hai" "ha" "abbiamo" "avete" "hanno" "avuto" Avere ;
+    Essere => mkVerb "essere" "sono" "sei" "è" "siamo" "siete" "sono" "stato" Essere
+    } ;
+
+  agrPart : Verb -> Agr -> Str = \v,a -> case v.aux of {
+    Avere  => v.s ! VPart Masc Sg ;
+    Essere => case a of {
+      Ag g n _ => v.s ! VPart g n
+      }
+    } ;
+
+  neg : Bool -> Str = \b -> case b of {True => [] ; False => "non"} ;
+
+--------------------------------------------------------
+-- morphology
+
+  Noun : Type = {s : Number => Str ; g : Gender} ;
+  Adj  : Type = {s : Gender => Number => Str ; isPre : Bool} ;
+  Verb : Type = {s : VForm => Str ; aux : Aux} ;
+
+  mkNoun : Str -> Str -> Gender -> Noun = \vino,vini,g -> {
+    s = table {Sg => vino ; Pl => vini} ;
+    g = g
+    } ;
+
+  regNoun : Str -> Noun = \vino -> case vino of {
+    fuo + c@("c"|"g") + "o" => mkNoun vino (fuo + c + "hi") Masc ;
+    ol  + "io" => mkNoun vino (ol + "i") Masc ;
+    vin + "o" => mkNoun vino (vin + "i") Masc ;
+    cas + "a" => mkNoun vino (cas + "e") Fem ;
+    pan + "e" => mkNoun vino (pan + "i") Masc ;
+    _ => mkNoun vino vino Masc 
+    } ;
+
+  mkN = overload {
+    mkN : (vino : Str) -> Noun = regNoun ;
+    mkN : (uomo, uomini : Str) -> Gender -> Noun = mkNoun ;
+    } ;
+
+  mkAdj : (_,_,_,_ : Str) -> Bool -> Adj = \buono,buona,buoni,buone,p -> {
+    s = table {
+          Masc => table {Sg => buono ; Pl => buoni} ;
+          Fem  => table {Sg => buona ; Pl => buone}
+        } ;
+    isPre = p
+    } ;
+
+  regAdj : Str -> Adj = \nero -> case nero of {
+    ner + "o"  => mkAdj nero (ner + "a") (ner + "i") (ner + "e") False ;
+    verd + "e" => mkAdj nero nero (verd + "i") (verd + "i") False ;
+    _ => mkAdj nero nero nero nero False
+    } ;
+
+  mkA = overload {
+    mkA : (nero : Str) -> Adj = regAdj ;
+    mkN : (buono,buona,buoni,buone : Str) -> Bool -> Adj = mkAdj ;
+    } ;
+
+  preA : Adj -> Adj = \a -> {s = a.s ; isPre = True} ;
+  
+  mkVerb : (_,_,_,_,_,_,_,_ : Str) -> Aux -> Verb = 
+    \amare,amo,ami,ama,amiamo,amate,amano,amato,aux -> {
+    s = table {
+          VInf          => amare ;
+          VPres Sg Per1 => amo ;
+          VPres Sg Per2 => ami ;
+          VPres Sg Per3 => ama ;
+          VPres Pl Per1 => amiamo ;
+          VPres Pl Per2 => amate ;
+          VPres Pl Per3 => amano ;
+          VPart g n     => (regAdj amato).s ! g ! n
+          } ;
+    aux = aux
+    } ;
+
+  regVerb : Str -> Verb = \amare -> case amare of {
+    am  + "are" => mkVerb amare (am+"o") (am+"i") (am+"a") 
+                          (am+"iamo") (am+"ate") (am+"ano") (am+"ato") Avere ;
+    tem + "ere" => mkVerb amare (tem+"o") (tem+"i") (tem+"e") 
+                          (tem+"iamo") (tem+"ete") (tem+"ono") (tem+"uto") Avere ;
+    fin + "ire" => mkVerb amare (fin+"isco") (fin+"isci") (fin+"isce") 
+                          (fin+"iamo") (fin+"ite") (fin+"iscono") (fin+"ito") Avere
+    } ; 
+
+  mkV = overload {
+    mkV : (finire : Str) -> Verb = regVerb ;
+    mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andato : Str) -> 
+             Aux -> Verb = mkVerb ;
+    } ;
+
+  essereV : Verb -> Verb = \v -> {s = v.s ; aux = Essere} ;
+  
+  Verb2 = Verb ** {c : Case} ;
+
+  mkV2 = overload {
+    mkV2 : (amare : Str) -> Verb2 = \v -> regVerb v ** {c = Acc} ; 
+    mkV2 : (amare : Verb) -> Case -> Verb2 = \v,p -> v ** {c = p} ;
+    } ;
+
+-- phonological auxiliaries
+
+    vowel    : Strs = strs {"a" ; "e" ; "i" ; "o" ; "u" ; "h"} ;
+    s_impuro : Strs = strs {"z" ; "sb" ; "sc" ; "sd" ; "sf" ; "sp"} ; --- ...
+
+}
diff --git a/examples/lrec-tutorial/Zero.gf b/examples/lrec-tutorial/Zero.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/Zero.gf
@@ -0,0 +1,9 @@
+abstract Zero = {
+  cat  
+    S ; NP ; VP ; V2 ;
+  fun
+    Pred  : NP -> VP -> S ;
+    Compl : V2 -> NP -> VP ;
+    John, Mary : NP ;
+    Love : V2 ;
+}
diff --git a/examples/lrec-tutorial/ZeroDut.gf b/examples/lrec-tutorial/ZeroDut.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroDut.gf
@@ -0,0 +1,18 @@
+concrete ZeroDut of Zero = {
+  lincat
+    S, NP, VP = Str ;
+    V2 = {v,p : Str} ;
+  lin
+    Pred np vp = np ++ vp ;
+    Compl v2 np = v2.v ++ np ++ v2.p ;
+    John = "Jan" ;
+    Mary = "Marie" ;
+    Love = {v = "heeft" ; p = "lief"} ;
+}
+
+--.
+
+-- illustrates: discontinuous constituents
+--
+-- > p -lang=ZeroEng "John loves Mary" | aw -view=open -format=png
+
diff --git a/examples/lrec-tutorial/ZeroEng.gf b/examples/lrec-tutorial/ZeroEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroEng.gf
@@ -0,0 +1,11 @@
+concrete ZeroEng of Zero = {
+  lincat
+    S, NP, VP, V2 = Str ;
+  lin
+    Pred np vp = np ++ vp ;
+    Compl v2 np = v2 ++ np ;
+    John = "John" ;
+    Mary = "Mary" ;
+    Love = "loves" ;
+}
+
diff --git a/examples/lrec-tutorial/ZeroFre.gf b/examples/lrec-tutorial/ZeroFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroFre.gf
@@ -0,0 +1,16 @@
+concrete ZeroFre of Zero = {
+  lincat
+    S, NP, VP, V2 = Str ;
+  lin
+    Pred np vp = np ++ vp ;
+    Compl v2 np = v2 ++ np ;
+    John = "Jean" ;
+    Mary = "Marie" ;
+    Love = "aime" ;
+}
+
+--.
+
+-- > gr | l
+-- > p -lang=ZeroEng "John loves Mary" | l -lang=ZeroFre
+
diff --git a/examples/lrec-tutorial/ZeroGer.gf b/examples/lrec-tutorial/ZeroGer.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroGer.gf
@@ -0,0 +1,19 @@
+concrete ZeroGer of Zero = {
+  lincat
+    S, NP, VP = Str ;
+    V2 = {v,p : Str} ;
+  lin
+    Pred np vp = np ++ vp ;
+    Compl v2 np = v2.v ++ np ++ v2.p ;
+    John = "Johann" ;
+    Mary = "Maria" ;
+    Love = {v = "hat" ; p = "lieb"} ;
+}
+
+--.
+
+-- illustrates: discontinuous constituents
+-- contrived, since we also have "liebt"
+--
+-- > p -lang=ZeroEng "John loves Mary" | aw -view=open -format=png
+
diff --git a/examples/lrec-tutorial/ZeroHeb.gf b/examples/lrec-tutorial/ZeroHeb.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroHeb.gf
@@ -0,0 +1,24 @@
+
+ concrete ZeroHeb of Zero = {
+    flags coding=utf8 ;
+  lincat
+    S = Str ;
+    NP = {s : Str ; g : Gender} ;
+    VP, V2 = Gender => Str ;
+  lin
+    Pred np vp = np.s ++ vp ! np.g ;
+    Compl v2 np = table {g => v2 ! g ++ "את" ++ np.s} ;
+    John = {s = "ג׳ון" ; g = Masc} ;
+    Mary = {s = "מרי" ; g = Fem} ;
+    Love = table {Masc => "אוהב" ; Fem => "אוהבת"} ;
+  param
+    Gender = Masc | Fem ;
+ }
+
+--.
+-- illustrates: transliteration, inherent features, agreement
+-- > gr | l -to_hebrew
+-- > ut -hebrew
+-- > rf -file=ZeroHeb.gf | ps -env=quotes -to_hebrew
+-- > dc amac aw -format=png -view=open ?0
+-- > gr | %amac
diff --git a/examples/lrec-tutorial/ZeroHebTr.gf b/examples/lrec-tutorial/ZeroHebTr.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroHebTr.gf
@@ -0,0 +1,20 @@
+concrete ZeroHebTr of Zero = {
+  lincat
+    S = Str ;
+    NP = {s : Str ; g : Gender} ;
+    VP, V2 = Gender => Str ;
+  lin
+    Pred np vp = np.s ++ vp ! np.g ;
+    Compl v2 np = table {g => v2 ! g ++ "At" ++ np.s} ;
+    John = {s = "gg1wN" ; g = Masc} ;
+    Mary = {s = "mry" ; g = Fem} ;
+    love = table {Masc => "Awhb" ; Fem => "Awhbt"} ;
+  param
+    Gender = Masc | Fem ;
+}
+
+--.
+-- illustrates: transliteration, inherent features, agreement
+-- > gr | l -to_hebrew
+-- > ut -hebrew
+-- > rf -file=ZeroHeb.gf | ps -env=quotes -to_hebrew
diff --git a/examples/lrec-tutorial/ZeroIta.gf b/examples/lrec-tutorial/ZeroIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroIta.gf
@@ -0,0 +1,16 @@
+concrete ZeroIta of Zero = {
+  lincat
+    S, NP, VP, V2 = Str ;
+  lin
+    Pred np vp = np ++ vp ;
+    Compl v2 np = v2 ++ np ;
+    John = "Giovanni" ;
+    Mary = "Maria" ;
+    Love = "ama" ;
+}
+
+--.
+
+-- > gr | l
+-- > p -lang=ZeroEng "John loves Mary" | l -lang=ZeroIta
+
diff --git a/examples/lrec-tutorial/ZeroLat.gf b/examples/lrec-tutorial/ZeroLat.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/ZeroLat.gf
@@ -0,0 +1,17 @@
+concrete ZeroLat of Zero = {
+  lincat
+    S, VP, V2 = Str ;
+    NP = Case => Str ;
+  lin
+    Pred  np vp = np ! Nom ++ vp ;
+    Compl v2 np = np ! Acc ++ v2 ;
+    John = table {Nom => "Ioannes" ; Acc => "Ioannem"} ;
+    Mary = table {Nom => "Maria" ; Acc => "Mariam"} ;
+    Love = "amat" ;
+  param 
+    Case = Nom | Acc ;
+}
+
+--.
+-- illustrates: parameters, word order
+-- > p -lang=ZeroEng "John loves Mary" | aw -view=open -format=png
diff --git a/examples/lrec-tutorial/face/Face.gf b/examples/lrec-tutorial/face/Face.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/Face.gf
@@ -0,0 +1,14 @@
+abstract Face = {
+
+flags startcat = Message ;
+
+cat
+  Message ; Person ; Object ; Number ;
+fun
+  Have : Person -> Number -> Object -> Message ;
+  Like : Person -> Object -> Message ;
+  You : Person ;
+  Friend, Invitation : Object ;
+  One, Two, Hundred : Number ;
+
+}
diff --git a/examples/lrec-tutorial/face/FaceEn0.gf b/examples/lrec-tutorial/face/FaceEn0.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/FaceEn0.gf
@@ -0,0 +1,22 @@
+--# -path=.:present
+
+concrete FaceEn0 of Face = open SyntaxEng, ParadigmsEng in {
+lincat
+  Message = Cl ;
+  Person = NP ;
+  Object = CN ;
+  Number = Numeral ;
+lin
+  Have p n o = mkCl p have_V2 (mkNP n o) ;
+  Like p o = mkCl p like_V2 (mkNP this_Quant o) ;
+  You = mkNP youSg_Pron ;
+  Friend = mkCN friend_N ;
+  Invitation = mkCN invitation_N ;
+  One = n1_Numeral ;
+  Two = n2_Numeral ;
+  Hundred = n100_Numeral ;
+oper
+  like_V2 = mkV2 "like" ;
+  invitation_N = mkN "invitation" ;
+  friend_N = mkN "friend" ;
+}
diff --git a/examples/lrec-tutorial/face/FaceEng.gf b/examples/lrec-tutorial/face/FaceEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/FaceEng.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+concrete FaceEng of Face = FaceI with
+  (Syntax = SyntaxEng), 
+  (LexFace = LexFaceEng) ;
+
+
diff --git a/examples/lrec-tutorial/face/FaceFin.gf b/examples/lrec-tutorial/face/FaceFin.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/FaceFin.gf
@@ -0,0 +1,7 @@
+--# -path=.:present
+
+concrete FaceFin of Face = FaceI with
+  (Syntax = SyntaxFin), 
+  (LexFace = LexFaceFin) ;
+
+
diff --git a/examples/lrec-tutorial/face/FaceI.gf b/examples/lrec-tutorial/face/FaceI.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/FaceI.gf
@@ -0,0 +1,17 @@
+incomplete concrete FaceI of Face = open Syntax, LexFace in {
+
+lincat
+  Message = Cl ;
+  Person = NP ;
+  Object = CN ;
+  Number = Numeral ;
+lin
+  Have p n o = mkCl p have_V2 (mkNP n o) ;
+  Like p o = mkCl p like_V2 (mkNP this_Quant o) ;
+  You = mkNP youSg_Pron ;
+  Friend = mkCN friend_N ;
+  Invitation = mkCN invitation_N ;
+  One = n1_Numeral ;
+  Two = n2_Numeral ;
+  Hundred = n100_Numeral ;
+}
diff --git a/examples/lrec-tutorial/face/FaceIta.gf b/examples/lrec-tutorial/face/FaceIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/FaceIta.gf
@@ -0,0 +1,8 @@
+--# -path=.:present
+
+concrete FaceIta of Face = FaceI - [Like] with
+  (Syntax = SyntaxIta), 
+  (LexFace = LexFaceIta) ** open SyntaxIta in {
+lin Like p o = 
+  mkCl (mkNP this_Quant o) like_V2 p ;
+}
diff --git a/examples/lrec-tutorial/face/LexFace.gf b/examples/lrec-tutorial/face/LexFace.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/LexFace.gf
@@ -0,0 +1,8 @@
+interface LexFace = open Syntax in {
+
+oper
+  like_V2 : V2 ;
+  invitation_N : N ;
+  friend_N : N ; 
+
+}
diff --git a/examples/lrec-tutorial/face/LexFaceEng.gf b/examples/lrec-tutorial/face/LexFaceEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/LexFaceEng.gf
@@ -0,0 +1,8 @@
+instance LexFaceEng of LexFace = open SyntaxEng, ParadigmsEng in {
+
+oper
+  like_V2 = mkV2 "like" ;
+  invitation_N = mkN "invitation" ;
+  friend_N = mkN "friend" ;
+
+}
diff --git a/examples/lrec-tutorial/face/LexFaceFin.gf b/examples/lrec-tutorial/face/LexFaceFin.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/LexFaceFin.gf
@@ -0,0 +1,7 @@
+instance LexFaceFin of LexFace = open SyntaxFin, ParadigmsFin in {
+
+oper
+  like_V2 = mkV2 (mkV "pitää") elative ;
+  invitation_N = mkN "kutsu" ;
+  friend_N = mkN "ystävä" ;
+}
diff --git a/examples/lrec-tutorial/face/LexFaceIta.gf b/examples/lrec-tutorial/face/LexFaceIta.gf
new file mode 100644
--- /dev/null
+++ b/examples/lrec-tutorial/face/LexFaceIta.gf
@@ -0,0 +1,6 @@
+instance LexFaceIta of LexFace = open SyntaxIta, ParadigmsIta in {
+oper
+  like_V2 = mkV2 (mkV (piacere_64 "piacere")) dative ;
+  invitation_N = mkN "invito" ;
+  friend_N = mkN "amico" ;
+}
diff --git a/examples/messages/Messages.gf b/examples/messages/Messages.gf
new file mode 100644
--- /dev/null
+++ b/examples/messages/Messages.gf
@@ -0,0 +1,45 @@
+abstract Messages = 
+  Words - [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale],
+  Greetings ** {
+
+flags startcat = Message ;
+
+cat
+  Message ;
+  Heading ;
+  Body ;
+  Ending ;
+  Statement ;
+  Recipient ;
+  Sender ;
+  Title ;
+  Role ;
+
+fun
+  Msg : Heading -> Body -> Ending -> Message ;
+  
+  HHello : Recipient -> Heading ;
+  HDear  : Recipient -> Heading ;
+  
+  BOne  : Statement -> Body ;
+  BMore : Statement -> Body -> Body ;
+
+  ERegards : Sender -> Ending ;
+
+  SSentence : Sentence -> Statement ;
+  SQuestion : Question -> Statement ;
+  SGreeting : Greeting -> Statement ;
+
+  RName  : Name -> Recipient ;
+  RTitle : Title -> Name -> Recipient ;
+  SName  : Name -> Sender ;
+
+  TMr  : Title ;
+  TMs  : Title ;
+
+  RI   : Role ;   -- generic: Gender and Politeness from context
+  RYou : Role ;
+
+  PRole : Role -> Person ;
+
+}
diff --git a/examples/messages/MessagesEng.gf b/examples/messages/MessagesEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/messages/MessagesEng.gf
@@ -0,0 +1,54 @@
+--# -path=.:../phrasebook:present
+
+concrete MessagesEng of Messages = 
+  WordsEng - 
+    [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale],
+  GreetingsEng ** open
+  SyntaxEng,
+  ParadigmsEng,
+  (Phr = PhrasebookEng)
+  in {
+
+lincat
+  Message = Text ;
+  Heading = Text ;
+  Body = Text ;
+  Ending = Text ;
+  Statement = Text ;
+  Recipient = NP ;
+  Sender = NP ;
+  Title = CN ;
+  Role = Phr.NPPerson ;
+
+lin
+  Msg h b e = mkText h (mkText b e) ;
+  
+  HHello n = 
+    mkText (strText "hello") (mkText (mkPhrase (mkUtt n)) (strText ",")) ;
+  HDear n = 
+    mkText (strText "dear") (mkText (mkPhrase (mkUtt n)) (strText ",")) ;
+  
+  BOne  p = p ;
+  BMore p b = mkText p b ;
+
+  ERegards n = mkText (strText "regards") (mkPhrase (mkUtt n)) ;
+
+  SSentence s = mkText s ;
+  SQuestion s = mkText s ;
+  SGreeting s = mkText s exclMarkPunct ;
+
+  RName n = n ;
+  RTitle t n = mkNP (mkCN t n) ;
+  SName n = n ;
+
+  TMr = mkCN (mkN "Mr") ;
+  TMs = mkCN (mkN "Ms") ;
+
+  RI = Phr.IMale ;  -- gender and politeness don't matter in English
+  RYou = Phr.YouFamMale ;
+
+  PRole r = r ;
+
+oper
+  strText : Str -> Text = \s -> lin Text {s = s} ;
+}
diff --git a/examples/messages/MessagesFre.gf b/examples/messages/MessagesFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/messages/MessagesFre.gf
@@ -0,0 +1,74 @@
+--# -path=.:../phrasebook:present
+
+concrete MessagesFre of Messages = 
+  WordsFre - 
+    [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale],
+  GreetingsFre ** 
+ open
+  SyntaxFre,
+  ParadigmsFre,
+  Prelude,
+  (Phr = PhrasebookFre)
+ in {
+
+lincat
+  Message = Text ;
+  Heading = {s : Text ; g : Gender ; isPol : Bool} ;
+  Body = {s : Gender => Gender => Bool => Text} ;
+  Ending = {s : Text ; g : Gender} ;
+  Statement = {s : Gender => Gender => Bool => Text} ;
+  Recipient = NP ;
+  Sender = NP ;
+  Title = CN ;
+  Role = Phr.NPPerson ;
+
+lin
+  Msg h b e = mkText h.s (mkText (b.s ! h.g ! e.g ! h.isPol) e.s) ;
+  
+  HHello n = {
+    s = mkText (strText "bonjour") (mkText (mkPhrase (mkUtt n)) (strText ",")) ;
+    g = n.a.g ; ----Res
+    isPol = n.isPol ----Res
+    } ;
+  HDear r = { 
+    s = mkText 
+      (mkPhrase (mkUtt (mkCN (prefixA (mkA "cher")) (nameCN r)))) 
+      (strText ",") ;
+    g = r.a.g ; ----Res
+    isPol = r.isPol ----Res
+    } ;
+
+  BOne  p = p ;
+  BMore s b = {s = \\i,y,p => mkText (s.s ! i ! y ! p) (b.s ! i ! y ! p)} ;
+
+  ERegards n = {
+    s = mkText (strText "avec salutations") (mkPhrase (mkUtt n)) ;
+    g = n.a.g ----Res
+    } ;
+
+  SSentence s = {s = \\i,y,p => mkText s} ;
+  SQuestion s = {s = \\i,y,p => mkText s} ;
+  SGreeting s = {s = \\i,y,p => mkText s exclMarkPunct} ;
+
+  RName n = n ; 
+  RTitle t n = cnNP (mkCN t n) ;
+  SName n = n ;
+
+  TMr = mkCN (mkN "monsieur" "messieurs" masculine) ;
+  TMs = mkCN (mkN "madame" "mesdames" feminine) ;
+
+  RI = Phr.IMale ;
+  RYou = Phr.YouFamMale ;
+
+  PRole r = r ;
+
+oper
+  strText : Str -> Text = \s -> lin Text {s = s} ;
+
+
+---- TODO in RG and its API
+
+  nameCN : NP -> CN = \n -> mkCN (mkN "") n ;
+  cnNP : CN -> NP = \cn -> mkNP (mkPN (cn.s ! singular) cn.g) ;
+
+}
diff --git a/examples/morpho/Fre.gf b/examples/morpho/Fre.gf
--- a/examples/morpho/Fre.gf
+++ b/examples/morpho/Fre.gf
@@ -12,7 +12,7 @@
   TMood ; Number ; Person ; NumPersI ; Gender ; Mood ;
 
 fun
-  DAll : Word -> Display ;
+--  DAll : Word -> Display ;
   DForm : Word -> Form -> Display ;
 
   VInfin : Form ;
diff --git a/examples/morpho/FreDescr.gf b/examples/morpho/FreDescr.gf
--- a/examples/morpho/FreDescr.gf
+++ b/examples/morpho/FreDescr.gf
@@ -9,13 +9,13 @@
   TMood, Number, Person, NumPersI, Gender, Mood = Str ;
 
 lin
-  DAll w = w ++ ":" ++ "la conjugaison" ;
+--  DAll w = w ++ ":" ++ "la conjugaison" ;
 
   DForm w f = w ++ ":" ++ f ;
 
   VInfin = "infinitif" ;
   VFin m n p = m ++ n ++ p ;
-  VImper np = "imparfait" ++ np ;
+  VImper np = "impératif" ++ np ;
   VPart g n = "participe passé" ++ g ++ n ;
   VGer = "participe présent" ;
 
diff --git a/examples/morpho/FreReal.gf b/examples/morpho/FreReal.gf
--- a/examples/morpho/FreReal.gf
+++ b/examples/morpho/FreReal.gf
@@ -16,6 +16,7 @@
 lin
   -- display the same subset of forms as Petit Robert
 
+{-
   DAll w = 
     w ! R.VInfin True ++
     w ! R.VFin (R.VPres R.Indic) R.Sg R.P1 ++ 
@@ -33,7 +34,7 @@
     w ! R.VImper R.PlP1 ++
     w ! R.VGer ++
     w ! R.VPart R.Masc R.Sg ; 
-
+-}
   DForm w f = w ! f.v ++ f.s ; ---
 
   VInfin = {s = [] ; v = R.VInfin True} ;
diff --git a/examples/nqueens/NQueens.gf b/examples/nqueens/NQueens.gf
--- a/examples/nqueens/NQueens.gf
+++ b/examples/nqueens/NQueens.gf
@@ -1,21 +1,21 @@
 abstract NQueens = Nat ** {
 
+cat S ;
 cat Matrix Nat ;
-cat Constr ;
-cat Vec (s,l : Nat) Constr ;
-cat Sat Nat Nat Constr ;
+cat [Nat] ;
+cat Vec (s,l : Nat) [Nat] ;
+cat Sat Nat Nat [Nat] ;
 
-data nilV  : (s : Nat) -> (c : Constr) -> Vec s zero c ;
-     consV : (l,j,k : Nat) -> 
-                let s = succ (plus j k)
-                in (c : Constr) -> Sat j (succ zero) c -> Vec s l (consC j c) -> Vec s (succ l) c ;
+data nqueens : (n : Nat) -> Matrix n -> S ;
 
-     nilC  : Constr ;
-     consC : (j : Nat) -> Constr -> Constr ;
+data nilV  : ({s} : Nat) -> ({c} : [Nat]) -> Vec s zero c ;
+     consV : ({l},j,k : Nat) -> 
+                let s = succ (plus j k)
+                in ({c} : [Nat]) -> Sat j (succ zero) c -> Vec s l (ConsNat j c) -> Vec s (succ l) c ;
 
-     nilS : (j,d : Nat) -> Sat j d nilC ;
-     consS : (i,j,d : Nat) -> (c : Constr) -> NE i j -> NE i (plus d j) -> NE (plus d i) j -> Sat j (succ d) c -> Sat j d (consC i c) ;
+     nilS : ({j,d} : Nat) -> Sat j d BaseNat ;
+     consS : ({i,j,d} : Nat) -> ({c} : [Nat]) -> NE i j -> NE i (plus d j) -> NE (plus d i) j -> Sat j (succ d) c -> Sat j d (ConsNat i c) ;
 
-     matrix : (s : Nat) -> Vec s s nilC -> Matrix s ;
+     matrix : ({s} : Nat) -> Vec s s BaseNat -> Matrix s ;
 
 }
diff --git a/examples/nqueens/NQueensAscii.gf b/examples/nqueens/NQueensAscii.gf
--- a/examples/nqueens/NQueensAscii.gf
+++ b/examples/nqueens/NQueensAscii.gf
@@ -1,10 +1,12 @@
 concrete NQueensAscii of NQueens = NatAscii ** {
 
-lincat Matrix, Vec = Str ;
-       Constr, Sat = {} ;
+lincat S, Matrix, Vec = Str ;
+       ListNat, Sat = {} ;
 
+lin nqueens _ m = m ;
+
 lin nilV _ _ = "" ;
-    consV _ j k _ _ v = j ++ "X" ++ k ++ "\n" ++ v ;
+    consV _ j k _ _ v = j ++ "X" ++ k ++ ";" ++ v ;
 
     matrix _ v = v ;
 
diff --git a/examples/nqueens/Nat.gf b/examples/nqueens/Nat.gf
--- a/examples/nqueens/Nat.gf
+++ b/examples/nqueens/Nat.gf
@@ -11,8 +11,8 @@
      lNE : (j : Nat) -> NE zero (succ j) ;
      rNE : (j : Nat) -> NE (succ j) zero ;
 
-fun plus : Nat -> Nat -> Nat ;
-def plus zero     n = n ;
-    plus (succ m) n = succ (plus m n) ;
+oper plus : Nat -> Nat -> Nat ;
+def  plus zero     n = n ;
+     plus (succ m) n = succ (plus m n) ;
 
 }
diff --git a/examples/nqueens/NatAscii.gf b/examples/nqueens/NatAscii.gf
--- a/examples/nqueens/NatAscii.gf
+++ b/examples/nqueens/NatAscii.gf
@@ -3,7 +3,7 @@
 lincat Nat = Str ;
 
 lin zero   = "" ;
-    succ n = "_" ++ n ;
+    succ n = "-" ++ n ;
 
 lincat NE = {} ;
 
diff --git a/examples/numerals/amharic.gf b/examples/numerals/amharic.gf
--- a/examples/numerals/amharic.gf
+++ b/examples/numerals/amharic.gf
@@ -1,86 +1,47 @@
 concrete amharic of Numerals = {
-flags coding = utf8 ;
--- include numerals.Abs.gf ;
--- flags coding=ethiopic ;
 
--- 14, 15 have variants in pronounciation {asraratt, asrammIst}
-
--- No long consonants marked in the indigen. script
--- s is set intersection s
--- h is set union h
--- H is three-fork h
--- x is hook-looking h
--- L is sin-looking s
--- X is h looking like k with a roof
--- ) is chair-vowel i.e historically glottal stop
--- ( is round-shape vowel sign i.e historically 3ayn
--- Z is zh
--- $ is sh
--- N is n~
--- I is i" ዕ6ትህ ሮውእ
--- አ ኢስ ኣ" (1st row)
--- Capitalis for ejectives KPTCS
-
+flags coding = UTF8;
 
-param DForm = unit | ten ;
-param Size = sg | pl | tenplus ;
-param S100 = indep | tenpart | tenelfu | sihpart ;
+param DForm = unit | ten  ;
+-- Size is Sg or Pl -- 
 
-oper LinDigit = {s : DForm => Str ; size : Size} ;
-oper LinSub100 = {s : S100 => Str ; size : Size} ;
+lincat Numeral =    { s : Str } ;
+lincat Digit = 	    {s : DForm => Str}  ;
+lincat Sub10 =      {s : DForm => Str} ;
+lincat Sub100 =     { s : Str } ;
+lincat Sub1000 =    { s : Str } ;
+lincat Sub1000000 = { s : Str } ;
 
-lincat Numeral = {s : Str} ;
-lincat Digit = LinDigit ;
-lincat Sub10 = LinDigit ;
-lincat Sub100 = LinSub100 ;
-lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ;
-lincat Sub1000000 = {s : Str} ;
+oper mkNum : Str -> Str ->{s : DForm => Str}  = 
+  \hulet ->  \haya -> 
+  {s = table {unit => hulet ; ten => haya}} ;
 
-oper mkNum : Str -> Str -> LinDigit = \hulatt -> \haya ->
-  {s = table {unit => hulatt ; ten => haya} ; size = pl} ;
+oper ss : Str -> {s : Str} = \s -> {s = s} ;
 
-lin num x0 =
-  {s = [] ++ x0.s ++ []} ;
-lin n2 = mkNum "ሁለት" (variants {"ሃያ" ; "ሓያ" ; "ኃያ" ; "ካያ" }) ; 
-lin n3 = mkNum "ሦስት" "ሠላሳ"  ;
-lin n4 = mkNum "ኣራት" "ኣርባ" ;
-lin n5 = mkNum "ኣምስት" (variants { "ኣምሳ" ; "ኃምሳ" }) ;
-lin n6 = mkNum "ስድስት" (variants { "ስድሳ" ; "ስልሳ" }) ;
-lin n7 = mkNum "ሰባት" "ሰባ" ;
+lin num x = x ;
+lin n2 = mkNum "ሁለት" "ሃያ";
+lin n3 = mkNum "ሶስት"  "ሰላሳ" ;
+lin n4 = mkNum "አራት" "አርባ" ;
+lin n5 = mkNum "አምስት"  "ሃምሳ" ;
+lin n6 = mkNum "ስድስት"  "ስድሳ" ;
+lin n7 = mkNum "ሰባት"  "ሰባ" ;
 lin n8 = mkNum "ስምንት" "ሰማንያ" ;
-lin n9 = mkNum "ዘጠኝ" "ዘጠና" ;
-
-oper ss1 : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> 
-  {s = table {indep => assir ; tenpart => ten ; tenelfu => [] ; sihpart => unitpart} ; size = tenplus } ;
-  
-oper ss : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> 
-  {s = table {indep => assir ; tenpart => ten ; tenelfu => ten ; sihpart => unitpart} ; size = tenplus } ;
-
-lin pot01  =
-  {s = table {unit => "ኣንድ" ; ten => "ኣስራ" }; size = sg};
-lin pot0 d = d ;
-lin pot110 = ss1 "ኣስር" "ኣንድ" [] ; 
-lin pot111 = ss1 (variants {"ኣስራንድ" ; "ኣስራ" ++ "ኣንድ" }) "ኣንድ" Sih ;
-lin pot1to19 d = ss1 ("ኣስራ" ++ d.s ! unit) "ኣንድ" (mkSih d.size (d.s ! unit)) ;
-lin pot0as1 n = {s = table {indep => n.s ! unit ; sihpart => mkSih n.size (n.s ! unit) ; _ => [] } ; size = n.size} ;
-lin pot1 d = ss (d.s ! ten) (d.s ! unit) [] ; 
-lin pot1plus d e = ss ((d.s ! ten) ++ (e.s ! unit)) 
-                      (d.s ! unit) 
-                      (mkSih e.size (e.s ! unit)); 
-
-lin pot1as2 n = {s = n.s ! indep ; s2 = n.s ! tenelfu ++ "እሌፍ" ++ n.s ! sihpart ; size = n.size} ;
-
-lin pot2 d = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ; 
-	      s2 = sel d.size "ኣስር" (d.s ! ten) ; size = tenplus} ;
-lin pot2plus d e = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ++ e.s ! indep ; s2 = d.s ! ten ++ e.s ! tenpart ++ "እሌፍ" ++ e.s ! sihpart ; size = tenplus} ;
-lin pot2as3 n = {s = n.s} ;
-lin pot3 n = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size} ;
-lin pot3plus n m = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size ++ m.s} ;
-
-oper Sih : Str = variants {"ሺህ" ; "ሺ"} ;
+lin n9 = mkNum "ዘጠኝ"  "ዘጠና" ;
 
-oper mkSih : Size -> Str -> Str = \sz -> \attr -> (sel sz [] attr) ++ Sih ;
+lin pot01 = {s = table {f => "አንድ"}} ;
+lin pot0 d = {s = table {f => d.s ! f}} ;
+lin pot110 = ss "አስር" ;
+lin pot111 = ss "አስራ አንድ" ;
+lin pot1to19 d ={s = "አስራ"++ d.s ! unit} ;
+lin pot0as1 n = {s = n.s ! unit} ;
+lin pot1 d = {s = d.s ! ten} ;
+lin pot1plus d e = {s = d.s ! ten ++ e.s ! unit} ;
+lin pot1as2 n = n ;
+lin pot2 d = {s = d.s ! unit ++ "መቶ"} ;
+lin pot2plus d e = {s = d.s ! unit ++ "መቶ" ++ e.s} ;
+lin pot2as3 n = n ;
+lin pot3 n = {s = n.s ++ "ሺህ"} ;
+lin pot3plus n m = {s = n.s ++ "ሺህ" ++ m.s} ;
 
-oper sel : Size -> Str -> Str -> Str = \sz -> \a -> \b -> table {sg => a ; _ => b} ! sz ; 
 
 }
diff --git a/examples/numerals/arabic_classical.gf b/examples/numerals/arabic_classical.gf
--- a/examples/numerals/arabic_classical.gf
+++ b/examples/numerals/arabic_classical.gf
@@ -1,101 +1,100 @@
 concrete arabic_classical of Numerals = {
 flags coding = utf8 ;
--- include numerals.Abs.gf ;
--- flags coding=arabic0600 ;
-
--- There is uncertainty as to wthere forms like 102 000 should be
--- hundred and thousand<DUAL> or hundred and two thousands<GEN.PL> or
--- as implemented hundred and two thousand<DUAL>
-
-param DForm = unit Place | teen  | ten | hund ;
-param Size = sg | pl | dual | eleventonineteen ;
-param Place = attr | indep  ;
-lincat Numeral = {s : Str} ;
-lincat Digit = {s : DForm => Str ; size : Size} ;
-lincat Sub10 = {s : DForm => Str ; size : Size} ;
-lincat Sub100 = {s : Place => Str ; size : Size} ;
-lincat Sub1000 = {s : Place => Str ; size : Size} ;
-lincat Sub1000000 = {s : Str} ;
-lin num x0 =
-  {s = [] ++ x0.s ++ []} ; -- the Arabic0x0600 environment
-
-lin n2  =
-  {s = table {(unit attr) => [] ; 
-              (unit indep) => "اثنان" ; 
-              teen => "اثنا" ; 
-              ten  => "عشرون" ;
-              hund => "مائتان"} ; size = dual} ;
-lin n3  =
-  {s = table {(unit _) => "ثلاثة" ; 
-              teen => "ثلاثة" ; 
-              ten  => "ثلاثون" ;
-              hund => variants {"ثلاث" ++ "مائة" ; "ثلاثمائة"}} ; 
-   size = pl} ;
-lin n4  =
-  {s = table {(unit _) => "أربعة" ; 
-              teen => "أربعة" ; 
-              ten  => "أربعون" ;
-              hund => variants {"أربع" ++ "مائة" ; "أربعمائة"}} ; 
-   size = pl} ;
-lin n5  =
-  {s = table {(unit _) => "خمسة" ; 
-              teen => "خمسة" ; 
-              ten  => "خمسون" ;
-              hund => variants {"خمس" ++ "مائة" ; "خمسمائة"}} ; size = pl} ;
-lin n6  =
-  {s = table {(unit _) => "ستة" ; 
-              teen => "ستة" ; 
-              ten  => "ستون" ;
-              hund => variants {"ست" ++ "مائة" ; "ستمائة"}} ; size = pl} ;
-lin n7  =
-  {s = table {(unit _) => "سبعة" ; 
-              teen => "سبعة" ; 
-              ten  => "سبعون" ;
-              hund => variants {"سبع" ++ "مائة" ; "سبعمائة"}} ; size = pl} ;
-lin n8  =
-  {s = table {(unit _) => "ثمانية" ; 
-              teen => "ثمانية" ; 
-              ten  => "ثمانون" ;
-              hund => variants {"ثمان" ++ "مائة" ; "ثمانمائة"}} ; 
-   size = pl} ;
-lin n9  =
-  {s = table {(unit _) => "تسعة" ; 
-              teen => "تسعة" ; 
-              ten  => "تسعون" ;
-              hund => variants {"تسع" ++ "مائة" ; "تسعمائة"}} ; 
-   size = pl} ;
-
-lin pot01  =
-  {s = table {hund => (variants {"مائة" ; "م0ة"} ) ; (unit attr) => [] ; f => "واحد"} ; size = sg} ;
-lin pot0 d =
-  {s = d.s ; size = d.size} ;
-lin pot110  =
-  {s = table {_ => "عشرة"} ; size = pl} ;
-lin pot111  =
-  {s = table {_ => "احد" ++ "عشر"} ; size = eleventonineteen} ;
-lin pot1to19 d =
-  {s =  table {_ => d.s ! teen ++ "عشر"} ; size = eleventonineteen} ;
-lin pot0as1 n =
-  {s = table {p => n.s ! unit p} ; size = n.size} ;
-lin pot1 d =
-  {s = table {_ => d.s ! ten} ; size = eleventonineteen} ;
-lin pot1plus d e =
-  {s = table {_ => e.s ! unit indep ++ "و" ++ d.s ! ten} ; size = e.size} ;
-lin pot1as2 n =
-  {s = n.s ; size = n.size} ;
-lin pot2 d =
-  {s = table {_ => d.s ! hund} ; size = pl} ;
-lin pot2plus d e =
-  {s = table {_ => d.s ! hund ++ "و" ++ e.s ! indep} ; size = e.size} ;
-lin pot2as3 n =
-  {s = n.s ! indep} ;
-lin pot3 n =
-  {s = n.s ! attr ++ Alf ! n.size} ;
-lin pot3plus n m =
-  {s = n.s ! attr ++ Alf ! n.size ++ "و" ++ m.s ! indep} ;
-
-oper Alf : Size => Str = 
-  table {{pl} => "آلاف" ; {dual} => "الفان" ; {eleventonineteen} => "الفا" ; sg => "الف"} ;
- 
+-- include numerals.Abs.gf ;
+-- flags coding=arabic0600 ;
 
+-- There is uncertainty as to wthere forms like 102 000 should be
+-- hundred and thousand<DUAL> or hundred and two thousands<GEN.PL> or
+-- as implemented hundred and two thousand<DUAL>
+
+param DForm = unit Place | teen  | ten | hund ;
+param Size = sg | pl | dual | eleventonineteen ;
+param Place = attr | indep  ;
+lincat Numeral = {s : Str} ;
+lincat Digit = {s : DForm => Str ; size : Size} ;
+lincat Sub10 = {s : DForm => Str ; size : Size} ;
+lincat Sub100 = {s : Place => Str ; size : Size} ;
+lincat Sub1000 = {s : Place => Str ; size : Size} ;
+lincat Sub1000000 = {s : Str} ;
+lin num x0 =
+  {s = [] ++ x0.s ++ []} ; -- the Arabic0x0600 environment
+
+lin n2  =
+  {s = table {(unit attr) => [] ; 
+              (unit indep) => "اثنان" ; 
+              teen => "اثنا" ; 
+              ten  => "عشرون" ;
+              hund => "مائتان"} ; size = dual} ;
+lin n3  =
+  {s = table {(unit _) => "ثلاثة" ; 
+              teen => "ثلاثة" ; 
+              ten  => "ثلاثون" ;
+              hund => variants {"ثلاث" ++ "مائة" ; "ثلاثمائة"}} ; 
+   size = pl} ;
+lin n4  =
+  {s = table {(unit _) => "أربعة" ; 
+              teen => "أربعة" ; 
+              ten  => "أربعون" ;
+              hund => variants {"أربع" ++ "مائة" ; "أربعمائة"}} ; 
+   size = pl} ;
+lin n5  =
+  {s = table {(unit _) => "خمسة" ; 
+              teen => "خمسة" ; 
+              ten  => "خمسون" ;
+              hund => variants {"خمس" ++ "مائة" ; "خمسمائة"}} ; size = pl} ;
+lin n6  =
+  {s = table {(unit _) => "ستة" ; 
+              teen => "ستة" ; 
+              ten  => "ستون" ;
+              hund => variants {"ست" ++ "مائة" ; "ستمائة"}} ; size = pl} ;
+lin n7  =
+  {s = table {(unit _) => "سبعة" ; 
+              teen => "سبعة" ; 
+              ten  => "سبعون" ;
+              hund => variants {"سبع" ++ "مائة" ; "سبعمائة"}} ; size = pl} ;
+lin n8  =
+  {s = table {(unit _) => "ثمانية" ; 
+              teen => "ثمانية" ; 
+              ten  => "ثمانون" ;
+              hund => variants {"ثمان" ++ "مائة" ; "ثمانمائة"}} ; 
+   size = pl} ;
+lin n9  =
+  {s = table {(unit _) => "تسعة" ; 
+              teen => "تسعة" ; 
+              ten  => "تسعون" ;
+              hund => variants {"تسع" ++ "مائة" ; "تسعمائة"}} ; 
+   size = pl} ;
+
+lin pot01  =
+  {s = table {hund => (variants {"مائة" ; "م0ة"} ) ; (unit attr) => [] ; f => "واحد"} ; size = sg} ;
+lin pot0 d =
+  {s = d.s ; size = d.size} ;
+lin pot110  =
+  {s = table {_ => "عشرة"} ; size = pl} ;
+lin pot111  =
+  {s = table {_ => "احد" ++ "عشر"} ; size = eleventonineteen} ;
+lin pot1to19 d =
+  {s =  table {_ => d.s ! teen ++ "عشر"} ; size = eleventonineteen} ;
+lin pot0as1 n =
+  {s = table {p => n.s ! unit p} ; size = n.size} ;
+lin pot1 d =
+  {s = table {_ => d.s ! ten} ; size = eleventonineteen} ;
+lin pot1plus d e =
+  {s = table {_ => e.s ! unit indep ++ "و" ++ d.s ! ten} ; size = e.size} ;
+lin pot1as2 n =
+  {s = n.s ; size = n.size} ;
+lin pot2 d =
+  {s = table {_ => d.s ! hund} ; size = pl} ;
+lin pot2plus d e =
+  {s = table {_ => d.s ! hund ++ "و" ++ e.s ! indep} ; size = e.size} ;
+lin pot2as3 n =
+  {s = n.s ! indep} ;
+lin pot3 n =
+  {s = n.s ! attr ++ Alf ! n.size} ;
+lin pot3plus n m =
+  {s = n.s ! attr ++ Alf ! n.size ++ "و" ++ m.s ! indep} ;
+
+oper Alf : Size => Str = 
+  table {pl => "آلاف" ; dual => "الفان" ; eleventonineteen => "الفا" ; sg => "الف"} ;
+ 
 }
diff --git a/examples/numerals/arabic_modern.gf b/examples/numerals/arabic_modern.gf
--- a/examples/numerals/arabic_modern.gf
+++ b/examples/numerals/arabic_modern.gf
@@ -88,7 +88,7 @@
   {s = n.s ! attr ++ Alf ! n.size ++ "ﻭ" ++ m.s ! indep} ;
 
 oper Alf : Size => Str = 
-  table {{small} => "ﺁﻻﻑ" ; {dual} => "ﺍﻟﻔﻴﻦ" ; _ => "ﺍﻟﻒ"} ;
+  table {small => "ﺁﻻﻑ" ; dual => "ﺍﻟﻔﻴﻦ" ; _ => "ﺍﻟﻒ"} ;
  
 
 }
diff --git a/examples/numerals/chinese.gf b/examples/numerals/chinese.gf
--- a/examples/numerals/chinese.gf
+++ b/examples/numerals/chinese.gf
@@ -7,12 +7,12 @@
 param Bform = shi  | shi0  | wan  | wan0  ;
 param Zero = zero  | nozero  ;
 oper ling : Zero * Zero => Str =
-  table {<{zero},z> => "零" ; 
-         <z,{zero}> => "零" ; 
-         <{nozero},{nozero}> => []} ;
+  table {<zero,z> => "零" ; 
+         <z,zero> => "零" ; 
+         <nozero,nozero> => []} ;
 oper Wan : Zero => Str =
-  table {{zero} => "万" ; 
-         {nozero} => []} ;
+  table {zero => "万" ; 
+         nozero => []} ;
 lincat Numeral = {s : Str} ;
 lincat Digit = {s : Str} ;
 lincat Sub10 = {s : Str} ;
@@ -44,66 +44,66 @@
 lin pot110  =
   {inh = nozero ; 
    s = table {
-    {shi} => "壹拾" ; 
-    {shi0} => "壹拾" ; 
-    {wan} => "壹万" ; 
-    {wan0} => "壹万"}} ;
+    shi => "壹拾" ; 
+    shi0 => "壹拾" ; 
+    wan => "壹万" ; 
+    wan0 => "壹万"}} ;
 lin pot111  =
   {inh = nozero ; 
    s = table {
-    {shi} => "拾壹" ; 
-    {shi0} => "壹拾壹" ; 
-    {wan} => "拾壹万" ; 
-    {wan0} => "拾壹万"}} ;
+    shi => "拾壹" ; 
+    shi0 => "壹拾壹" ; 
+    wan => "拾壹万" ; 
+    wan0 => "拾壹万"}} ;
 lin pot1to19 d =
   {inh = nozero ; 
    s = table {
-    {shi} => "壹拾" ++ d.s ; 
-    {shi0} => "壹拾" ; 
-    {wan} => "壹万" ++ d.s ++ "仟" ; 
-    {wan0} => "壹万" ++ d.s ++ "仟"}} ;
+    shi => "壹拾" ++ d.s ; 
+    shi0 => "壹拾" ; 
+    wan => "壹万" ++ d.s ++ "仟" ; 
+    wan0 => "壹万" ++ d.s ++ "仟"}} ;
 lin pot0as1 n =
   {inh = zero ; 
    s = table {
-    {shi} => n.s ; 
-    {shi0} => n.s ; 
-    {wan} => n.s ++ "仟" ; 
-    {wan0} => n.s ++ "仟"}} ;
+    shi => n.s ; 
+    shi0 => n.s ; 
+    wan => n.s ++ "仟" ; 
+    wan0 => n.s ++ "仟"}} ;
 lin pot1 d =
   {inh = zero ; 
    s = table {
-    {shi} => d.s ++ "拾" ; 
-    {shi0} => d.s ++ "拾" ; 
-    {wan0} => d.s ++ "万" ; 
-    {wan} => d.s ++ "万"}} ;
+    shi => d.s ++ "拾" ; 
+    shi0 => d.s ++ "拾" ; 
+    wan0 => d.s ++ "万" ; 
+    wan => d.s ++ "万"}} ;
 lin pot1plus d e =
   {inh = nozero ; 
    s = table {
-    {shi} => d.s ++ "拾" ++ e.s ; 
-    {shi0} => d.s ++ "拾" ++ e.s ; 
-    {wan} => d.s ++ "万" ++ e.s ++ "仟" ; 
-    {wan0} => d.s ++ "万" ++ e.s ++ "仟"}} ;
+    shi => d.s ++ "拾" ++ e.s ; 
+    shi0 => d.s ++ "拾" ++ e.s ; 
+    wan => d.s ++ "万" ++ e.s ++ "仟" ; 
+    wan0 => d.s ++ "万" ++ e.s ++ "仟"}} ;
 lin pot1as2 n =
   {inh = zero ; 
    s = table {
-    {bai} => n.s ! shi ; 
-    {bai0} => n.s ! shi ; 
-    {shiwan} => n.s ! wan ; 
-    {shiwan0} => n.s ! wan0}} ;
+    bai => n.s ! shi ; 
+    bai0 => n.s ! shi ; 
+    shiwan => n.s ! wan ; 
+    shiwan0 => n.s ! wan0}} ;
 lin pot2 d =
   {inh = zero ; 
    s = table {
-    {bai} => d.s ++ "佰" ; 
-    {bai0} => d.s ++ "佰" ; 
-    {shiwan0} => d.s ++ "拾万" ; 
-    {shiwan} => d.s ++ "拾万"}} ;
+    bai => d.s ++ "佰" ; 
+    bai0 => d.s ++ "佰" ; 
+    shiwan0 => d.s ++ "拾万" ; 
+    shiwan => d.s ++ "拾万"}} ;
 lin pot2plus d e =
   {inh = nozero ; 
    s = table {
-    {bai} => d.s ++ "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; 
-    {bai0} => d.s ++ "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; 
-    {shiwan} => d.s ++ "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan ; 
-    {shiwan0} => d.s ++ "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan0}} ;
+    bai => d.s ++ "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; 
+    bai0 => d.s ++ "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; 
+    shiwan => d.s ++ "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan ; 
+    shiwan0 => d.s ++ "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan0}} ;
 lin pot2as3 n =
   {s = n.s ! bai} ;
 lin pot3 n =
diff --git a/examples/numerals/english.gf b/examples/numerals/english.gf
--- a/examples/numerals/english.gf
+++ b/examples/numerals/english.gf
@@ -1,4 +1,5 @@
 concrete english of Numerals = {
+flags language = en_US ;
 -- include numerals.Abs.gf ;
 
 param DForm = unit  | teen  | ten  ;
diff --git a/examples/numerals/finnish.gf b/examples/numerals/finnish.gf
--- a/examples/numerals/finnish.gf
+++ b/examples/numerals/finnish.gf
@@ -4,9 +4,9 @@
 param Place = indep | attr  ;
 param Nm = sg  | pl  ;
 oper sata : Nm => Str =
-  table {{sg} => "sata" ; {pl} => "sataa"} ;
+  table {sg => "sata" ; pl => "sataa"} ;
 oper tuhat : Nm => Str =
-  table {{sg} => "tuhat" ; {pl} => "tuhatta"} ;
+  table {sg => "tuhat" ; pl => "tuhatta"} ;
 lincat Numeral = {s : Str} ;
 lincat Digit = {s : Str} ;
 lincat Sub10 = {inh : Nm ; s : Place => Str} ;
@@ -32,7 +32,7 @@
 lin n9  =
   {s = "yhdeksän"} ;
 lin pot01  =
-  {inh = sg ; s = table {{attr} => [] ; {indep} => "yksi"}} ;
+  {inh = sg ; s = table {attr => [] ; indep => "yksi"}} ;
 lin pot0 d =
   {inh = pl ; s = table {p => d.s}} ;
 lin pot110  =
diff --git a/examples/numerals/greek_modern.gf b/examples/numerals/greek_modern.gf
--- a/examples/numerals/greek_modern.gf
+++ b/examples/numerals/greek_modern.gf
@@ -43,7 +43,7 @@
 lin n8 = mkIndeclNum "οχτώ" "δεκαοχτώ" "ογδόντα" "οχτακόσι" ;
 lin n9 = mkIndeclNum (variants {"εννέα" ; "εννία" }) "δεκαεννέα" "ενενήντα" "εννιακόσι" ;
 lin pot01  =
-  {s = table {unit => "ένα" ; fem => "μία" ; _ => "εκατό" + pre {[] ; "ν" / vowel}} ; size = sg} ;
+  {s = table {unit => "ένα" ; fem => "μία" ; _ => "εκατό" + pre { "" ; "ν" / vowel}} ; size = sg} ;
 lin pot0 d =
   {s = d.s ; size = pl} ;
 lin pot110  = 
diff --git a/examples/numerals/hebrew_biblical.gf b/examples/numerals/hebrew_biblical.gf
--- a/examples/numerals/hebrew_biblical.gf
+++ b/examples/numerals/hebrew_biblical.gf
@@ -87,7 +87,7 @@
   {s = n.s ! attr ++ Alf ! n.size ++ "ו" ++ m.s ! indep} ;
 
 oper Alf : Size => Str = 
-  table {{small} => "אלפים" ; {dual} => "אלפים" ; _ => "אלף"} ;
+  table {small => "אלפים" ; dual => "אלפים" ; _ => "אלף"} ;
  
 
 }
diff --git a/examples/numerals/italian.gf b/examples/numerals/italian.gf
--- a/examples/numerals/italian.gf
+++ b/examples/numerals/italian.gf
@@ -1,4 +1,5 @@
 concrete italian of Numerals = {
+flags language = it_IT ;
 -- include numerals.Abs.gf ;
 
 param DForm = ental Pred | ton | tiotal  ;
diff --git a/examples/numerals/malay.gf b/examples/numerals/malay.gf
--- a/examples/numerals/malay.gf
+++ b/examples/numerals/malay.gf
@@ -20,10 +20,10 @@
 
 oper
  ratus : Nm => Str =                               -- 100
-   table {{sg} => "seratus" ; {pl} => "ratus"} ;
+   table {sg => "seratus" ; pl => "ratus"} ;
 
  ribu : Nm => Str =                                -- 1000
-   table {{sg} => "seribu" ; {pl} => "ribu"} ;
+   table {sg => "seribu" ; pl => "ribu"} ;
 
  mkTab : Str -> Place => Str = \s -> table { _ => s } ;
 
@@ -43,7 +43,7 @@
  n8  = ss "delapan"  ;
  n9  = ss "sembilan" ;
 
- pot01 = {inh = sg ; s = table {{attr} => [] ; {indep} => "satu"}} ;
+ pot01 = {inh = sg ; s = table {attr => [] ; indep => "satu"}} ;
 
  pot0 d = mkNum d.s  ;
 
diff --git a/examples/numerals/polish.gf b/examples/numerals/polish.gf
--- a/examples/numerals/polish.gf
+++ b/examples/numerals/polish.gf
@@ -1,4 +1,5 @@
 concrete polish of Numerals = {
+flags language = pl_PL ;
 -- numerals in Polish, author Wojciech Mostowski, 20/9/2002
 
 -- include numerals.Abs.gf ;
diff --git a/examples/numerals/russian.gf b/examples/numerals/russian.gf
--- a/examples/numerals/russian.gf
+++ b/examples/numerals/russian.gf
@@ -17,8 +17,8 @@
 lincat Sub1000000 = {s : Gen => Str} ;
 
 oper mille : Size => Str = table {
-  {nom} => "тысяча" ;
-  {sgg} => "тысячи" ;
+  nom => "тысяча" ;
+  sgg => "тысячи" ;
   _     => "тысяч"} ;
 
 oper gg : Str -> Gen => Str = \s -> table {_ => s} ;
@@ -27,59 +27,59 @@
   {s = [] ++ x0.s ! masc ++ []} ;  -- Russian environment
 
 lin n2  =
-  {s = table {{unit} => table {{fem} => "две" ; _ => "два"} ; 
-            {teen} => gg "двенадцать" ; 
-            {ten}  => gg "двадцать" ;
-            {hund} => gg "двести"} ; 
+  {s = table {unit => table {fem => "две" ; _ => "два"} ; 
+            teen => gg "двенадцать" ; 
+            ten  => gg "двадцать" ;
+            hund => gg "двести"} ; 
    size = sgg} ;
 lin n3  =
-  {s = table {{unit} => gg "три" ; 
-            {teen} => gg "тринадцать" ; 
-            {ten}  => gg "тридцать" ;
-            {hund} => gg "триста"} ; 
+  {s = table {unit => gg "три" ; 
+            teen => gg "тринадцать" ; 
+            ten  => gg "тридцать" ;
+            hund => gg "триста"} ; 
   size = sgg} ;
 lin n4  =
-  {s = table {{unit} => gg "четыре" ; 
-            {teen} => gg "четырнадцать" ; 
-            {ten}  => gg "сорок" ;
-            {hund} => gg "четыреста"} ; 
+  {s = table {unit => gg "четыре" ; 
+            teen => gg "четырнадцать" ; 
+            ten  => gg "сорок" ;
+            hund => gg "четыреста"} ; 
   size = sgg} ;
 lin n5  =
-  {s = table {{unit} => gg "пять" ; 
-            {teen} => gg "пятнадцать" ; 
-            {ten}  => gg "пятьдесят" ;
-            {hund} => gg "пятьсот"} ; 
+  {s = table {unit => gg "пять" ; 
+            teen => gg "пятнадцать" ; 
+            ten  => gg "пятьдесят" ;
+            hund => gg "пятьсот"} ; 
   size = plg} ;
 lin n6  =
-  {s = table {{unit} => gg "шесть" ; 
-            {teen} => gg "шестнадцать" ; 
-            {ten}  => gg "шестьдесят" ;
-            {hund} => gg "шестьсот"} ; 
+  {s = table {unit => gg "шесть" ; 
+            teen => gg "шестнадцать" ; 
+            ten  => gg "шестьдесят" ;
+            hund => gg "шестьсот"} ; 
   size = plg} ;
 lin n7  =
-  {s = table {{unit} => gg "семь" ; 
-            {teen} => gg "семнадцать" ; 
-            {ten}  => gg "семьдесят" ;
-            {hund} => gg "семьсот"} ; 
+  {s = table {unit => gg "семь" ; 
+            teen => gg "семнадцать" ; 
+            ten  => gg "семьдесят" ;
+            hund => gg "семьсот"} ; 
   size = plg} ;
 lin n8  =
-  {s = table {{unit} => gg "восемь" ; 
-            {teen} => gg "восемнадцать" ; 
-            {ten}  => gg "восемьдесят" ;
-            {hund} => gg "восемьсот"} ; 
+  {s = table {unit => gg "восемь" ; 
+            teen => gg "восемнадцать" ; 
+            ten  => gg "восемьдесят" ;
+            hund => gg "восемьсот"} ; 
   size = plg} ;
 lin n9  =
-  {s = table {{unit} => gg "девять" ; 
-            {teen} => gg "девятнадцать" ; 
-            {ten}  => gg "девяносто" ;
-            {hund} => gg "девятьсот"} ; 
+  {s = table {unit => gg "девять" ; 
+            teen => gg "девятнадцать" ; 
+            ten  => gg "девяносто" ;
+            hund => gg "девятьсот"} ; 
   size = plg} ;
 
 
 lin pot01  =
-  {s = table {{attr} => table {{hund} => gg "сто" ; _ => gg []} ; 
-            _ => table {{hund} => gg "сто" ; 
-                     _ => table {{masc} => "один" ; {fem} => "одна" ; _ => "одно"}}} ;
+  {s = table {attr => table {hund => gg "сто" ; _ => gg []} ; 
+            _ => table {hund => gg "сто" ; 
+                     _ => table {masc => "один" ; fem => "одна" ; _ => "одно"}}} ;
    size = nom} ;
 lin pot0 d =
   {s = table {_ => d.s} ; size = d.size} ;
diff --git a/examples/numerals/swedish.gf b/examples/numerals/swedish.gf
--- a/examples/numerals/swedish.gf
+++ b/examples/numerals/swedish.gf
@@ -1,4 +1,5 @@
 concrete swedish of Numerals = {
+flags language = sv_SE ;
 -- include numerals.Abs.gf ;
 
 param DForm = ental  | ton  | tiotal  ;
diff --git a/examples/numerals/tampere.gf b/examples/numerals/tampere.gf
--- a/examples/numerals/tampere.gf
+++ b/examples/numerals/tampere.gf
@@ -4,9 +4,9 @@
 param Place = attr  | indep  ;
 param Nm = sg  | pl  ;
 oper sata : Nm => Str =
-  table {{sg} => "sata" ; {pl} => "sataa"} ;
+  table {sg => "sata" ; pl => "sataa"} ;
 oper tuhat : Nm => Str =
-  table {{sg} => "tuhat" ; {pl} => "tuhatta"} ;
+  table {sg => "tuhat" ; pl => "tuhatta"} ;
 lincat Numeral = {s : Str} ;
 lincat Digit = {s : Place => Str} ;
 lincat Sub10 = {inh : Nm ; s : Place => Str} ;
@@ -18,21 +18,21 @@
 lin n2  =
   {s = table {p => "kaks"}} ;
 lin n3  =
-  {s = table {{attr} => "kol" ; {indep} => "kolme"}} ;
+  {s = table {attr => "kol" ; indep => "kolme"}} ;
 lin n4  =
-  {s = table {{attr} => "nel" ; {indep} => "neliä"}} ;
+  {s = table {attr => "nel" ; indep => "neliä"}} ;
 lin n5  =
   {s = table {p => "viis"}} ;
 lin n6  =
   {s = table {p => "kuus"}} ;
 lin n7  =
-  {s = table {{attr} => "seit" ; {indep} => "seittämän"}} ;
+  {s = table {attr => "seit" ; indep => "seittämän"}} ;
 lin n8  =
   {s = table {p => "kahreksan"}} ;
 lin n9  =
   {s = table {p => "yhreksän"}} ;
 lin pot01  =
-  {inh = sg ; s = table {{attr} => [] ; {indep} => "yks"}} ;
+  {inh = sg ; s = table {attr => [] ; indep => "yks"}} ;
 lin pot0 d =
   {inh = pl ; s = table {p => d.s ! indep}} ;
 lin pot110  =
diff --git a/examples/phrasebook/Compile.hs b/examples/phrasebook/Compile.hs
--- a/examples/phrasebook/Compile.hs
+++ b/examples/phrasebook/Compile.hs
@@ -29,10 +29,17 @@
     else return ()
   case opts of
     _ | elem "-make" opts || elem "-link" opts -> do
-      system $ "gf -make " ++ unwords (map (++ ".pgf") modus)
+      let comm = "gf -make -s " ++ unwords (map (++ ".pgf") modus)
+      putStrLn comm
+      system comm
       return () 
     _ -> return ()
 
-compileOne modu = system $ "gf -make -name=" ++ modu ++ " " ++ modu ++ ".gf"
+compileOne modu = do
+  let comm = "gf -make -s -optimize-pgf -name=" ++ 
+             modu ++ " " ++ modu ++ ".gf" ++
+             " +RTS -K32M"
+  putStrLn comm
+  system comm
 
 mkFile la = if length la == 3 then mainmodu ++ la else la
diff --git a/examples/phrasebook/DisambPhrasebookEng.gf b/examples/phrasebook/DisambPhrasebookEng.gf
--- a/examples/phrasebook/DisambPhrasebookEng.gf
+++ b/examples/phrasebook/DisambPhrasebookEng.gf
@@ -9,7 +9,8 @@
     GExcuse, GExcusePol, 
     GSorry, GSorryPol, 
     GPleaseGive, GPleaseGivePol,
-    GNiceToMeetYou, GNiceToMeetYouPol
+    GNiceToMeetYou, -- GNiceToMeetYouPol,
+    PYes, PYesToNo, ObjMass
    ] 
   ** open SyntaxEng, ParadigmsEng, Prelude in {
 lin
@@ -30,7 +31,12 @@
   GPleaseGive = fam "please" ;
   GPleaseGivePol = pol "please" ;
   GNiceToMeetYou = fam "nice to meet you" ;
-  GNiceToMeetYouPol = pol "nice to meet you" ;
+--  GNiceToMeetYouPol = pol "nice to meet you" ;
+
+  PYes = mkPhrase (lin Utt (ss "yes (answer to positive question)")) ;
+  PYesToNo = mkPhrase (lin Utt (ss "yes (answer to negative question)")) ;
+
+  ObjMass x = mkNP (mkNP x) (ParadigmsEng.mkAdv "(a portion of)") ;
 
 oper
   fam : Str -> SS = \s -> postfixSS "(familiar)" (ss s) ;
diff --git a/examples/phrasebook/Greetings.gf b/examples/phrasebook/Greetings.gf
--- a/examples/phrasebook/Greetings.gf
+++ b/examples/phrasebook/Greetings.gf
@@ -1,7 +1,4 @@
-abstract Greetings = {
-
-cat 
-  Greeting ; -- idiomatic phrase, not inflected, e.g. "hello"
+abstract Greetings = Sentences [Greeting] ** {
 
 fun
   GBye : Greeting ;
@@ -22,6 +19,9 @@
   GSeeYouSoon : Greeting ;
   GSorry, GSorryPol : Greeting ;
   GThanks : Greeting ;
-  GTheCheck : Greeting ; 
+  GTheCheck : Greeting ;
+  GCongratulations : Greeting ;
+  GHappyBirthday : Greeting ;
+  GGoodLuck : Greeting ; 
 
 }
diff --git a/examples/phrasebook/GreetingsBul.gf b/examples/phrasebook/GreetingsBul.gf
--- a/examples/phrasebook/GreetingsBul.gf
+++ b/examples/phrasebook/GreetingsBul.gf
@@ -1,30 +1,30 @@
-concrete GreetingsBul of Greetings = open Prelude in {
+concrete GreetingsBul of Greetings = SentencesBul [Greeting,mkGreeting] ** open Prelude in {
 
 flags
   coding=utf8;
 
-lincat 
-  Greeting = SS ;
-
 lin 
-  GBye = ss "чао" ;
-  GCheers = ss "наздраве" ;
-  GDamn = ss "по дяволите" ;
-  GExcuse, GExcusePol = ss "извинете" ;
-  GGoodDay = ss "добър ден" ;
-  GGoodEvening = ss "добра вечер" ;
-  GGoodMorning = ss "добро утро" ;
-  GGoodNight = ss "лека нощ" ;
-  GGoodbye = ss "довиждане" ;
-  GHello = ss "здравей" ;
-  GHelp = ss "помощ" ;
-  GHowAreYou = ss "как си" ;
-  GLookOut = ss "погледни" ;
-  GNiceToMeetYou = ss "радвам се да се видим" ;
-  GPleaseGive, GPleaseGivePol = ss "моля" ;
-  GSeeYouSoon = ss "до скоро" ;
-  GSorry, GSorryPol = ss "извинете" ;
-  GThanks = ss "благодаря ти" ;
-  GTheCheck = ss "сметката" ;
+  GBye = mkGreeting "чао" ;
+  GCheers = mkGreeting "наздраве" ;
+  GDamn = mkGreeting "по дяволите" ;
+  GExcuse, GExcusePol = mkGreeting "извинете" ;
+  GGoodDay = mkGreeting "добър ден" ;
+  GGoodEvening = mkGreeting "добра вечер" ;
+  GGoodMorning = mkGreeting "добро утро" ;
+  GGoodNight = mkGreeting "лека нощ" ;
+  GGoodbye = mkGreeting "довиждане" ;
+  GHello = mkGreeting "здравей" ;
+  GHelp = mkGreeting "помощ" ;
+  GHowAreYou = mkGreeting "как си" ;
+  GLookOut = mkGreeting "погледни" ;
+  GNiceToMeetYou = mkGreeting "радвам се да се видим" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "моля" ;
+  GSeeYouSoon = mkGreeting "до скоро" ;
+  GSorry, GSorryPol = mkGreeting "извинете" ;
+  GThanks = mkGreeting "благодаря ти" ;
+  GTheCheck = mkGreeting "сметката" ;
+  GCongratulations = mkGreeting "поздравления";
+  GHappyBirthday = mkGreeting "честит рожден ден" ;
+  GGoodLuck = mkGreeting "успех" ; 
 
 }
diff --git a/examples/phrasebook/GreetingsCat.gf b/examples/phrasebook/GreetingsCat.gf
--- a/examples/phrasebook/GreetingsCat.gf
+++ b/examples/phrasebook/GreetingsCat.gf
@@ -1,31 +1,30 @@
-concrete GreetingsCat of Greetings = open Prelude in {
-
---lincat 
---  Greeting = SS ;
+concrete GreetingsCat of Greetings = SentencesCat [Greeting,mkGreeting] ** open Prelude in {
 
---lin 
---  GBye = ss "ciao" ;
---  GCheers = ss "cincin" ;
---  GDamn = ss "maledizione" ;
---  GExcuse = ss "scusa" ;
---  GExcusePol = ss "scusi" ;
---  GGoodDay = ss "buongiorno" ;
---  GGoodEvening = ss "buona sera" ;
---  GGoodMorning = ss "buongiorno" ;
---  GGoodNight = ss "buona notte" ;
---  GGoodbye = ss "arrivederci" ;
---  GHello = ss "ciao" ;
---  GHelp = ss "aiuto" ;
---  GHowAreYou = ss "come sta" ;
---  GLookOut = ss "attenzione" ;
---  GNiceToMeetYou = ss "piacere di conoscerti" ;
---  GNiceToMeetYouPol = ss "piacere di conoscerLa" ;
---  GPleaseGive, GPleaseGivePol = ss "per favore" ;
---  GSeeYouSoon = ss "a presto" ; ----
---  GSorry = ss "scusami" ; ----
---  GSorryPol = ss "scusimi" ; ----
---  GThanks = ss "grazie" ;
---  GTheCheck = ss "il conto" ;
+lin 
+  GBye = mkGreeting "adéu" ;
+  GCheers = mkGreeting "salut" ;
+  GDamn = mkGreeting "merda" ;
+  GExcuse = mkGreeting "perdona" ;
+  GExcusePol = mkGreeting ("perdoni" | "disculpi") ;
+  GCongratulations = mkGreeting "felicitats" ;
+  GHappyBirthday = mkGreeting "feliç aniversari" ;
+  GGoodLuck = mkGreeting "sort" ;
+  GGoodDay = mkGreeting "bon dia" ;
+  GGoodEvening = mkGreeting "bona tarda" ;
+  GGoodMorning = mkGreeting "bon dia" ;
+  GGoodNight = mkGreeting "bona nit" ;
+  GGoodbye = mkGreeting "a reveure" ;
+  GHello = mkGreeting "hola" ;
+  GHelp = mkGreeting "socors" ;
+  GHowAreYou = mkGreeting "què tal" ;
+  GLookOut = mkGreeting "compte" ;
+  GNiceToMeetYou = mkGreeting "encantat de conèixer-lo" ; -- make distinction Masc/Fem
+  GPleaseGive = mkGreeting "si et plau" ;
+  GPleaseGivePol = mkGreeting "si us plau" ;
+  GSeeYouSoon = mkGreeting "fins aviat" ; 
+  GSorry = mkGreeting "perdoni" ;
+  GSorryPol = mkGreeting "em sap greu" ; 
+  GThanks = mkGreeting "gràcies" ;
+  GTheCheck = mkGreeting "el compte" ;
 
---}
 }
diff --git a/examples/phrasebook/GreetingsDan.gf b/examples/phrasebook/GreetingsDan.gf
--- a/examples/phrasebook/GreetingsDan.gf
+++ b/examples/phrasebook/GreetingsDan.gf
@@ -1,28 +1,28 @@
-concrete GreetingsDan of Greetings = open Prelude in {
-
---lincat 
---  Greeting = SS ;
+concrete GreetingsDan of Greetings = SentencesDan [Greeting,mkGreeting] ** open Prelude in {
 
---lin 
---  GBye = ss "hej då" ;
---  GCheers = ss "skål" ;
---  GDamn = ss "fan" ;
---  GExcuse, GExcusePol = ss "ursäkta" ;
---  GGoodDay = ss "god dag" ;
---  GGoodEvening = ss "god afton" ;
---  GGoodMorning = ss "god morgon" ;
---  GGoodNight = ss "god natt" ;
---  GGoodbye = ss "hej då" ;
---  GHello = ss "hej" ;
---  GHelp = ss "hjälp" ;
---  GHowAreYou = ss "hur står det till" ;
---  GLookOut = ss "se upp" ;
---  GNiceToMeetYou, GNiceToMeetYouPol = ss "trevligt att träffas" ;
---  GPleaseGive, GPleaseGivePol = ss "var så god" ;
---  GSeeYouSoon = ss "vi ses snart" ;
---  GSorry, GSorryPol = ss "förlåt" ;
---  GThanks = ss "tack" ;
---  GTheCheck = ss "notan" ;
+lin 
+  GBye = mkGreeting "hej hej" ; -- not google translate
+  GCheers = mkGreeting "skål" ;
+  GDamn = mkGreeting "satans" ; -- X  
+  GExcuse, GExcusePol = mkGreeting "undskyld mig" ;
+  GGoodDay = mkGreeting "god dag" ;
+  GGoodEvening = mkGreeting "god aften" ;
+  GGoodMorning = mkGreeting "god morgen" ;
+  GGoodNight = mkGreeting "godnat" ;
+  GGoodbye = mkGreeting "farvel" ;
+  GHello = mkGreeting "hej" ;
+  GHelp = mkGreeting "hjælp" ;
+  GHowAreYou = mkGreeting "hvordan har du det" ;
+  GLookOut = mkGreeting "pas på" ;
+  GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "hyggeligt at møde dig" ; -- more common than rart (google translate) 
+  GPleaseGive = mkGreeting "vær så sød" ; -- can also have flink instead of sod
+  GPleaseGivePol = mkGreeting "venligst" ; -- X not behage 
+  GSeeYouSoon = mkGreeting "vi ses snart" ; -- X se dig snart
+  GSorry, GSorryPol = mkGreeting "undskyld" ;
+  GThanks = mkGreeting "tak" ;
+  GTheCheck = mkGreeting "regningen" ;
+  GCongratulations = mkGreeting "tillykke";
+  GHappyBirthday = mkGreeting "tillykke med fødselsdagen" ;
+  GGoodLuck = mkGreeting "held og lykke" ; 
 
---}
 }
diff --git a/examples/phrasebook/GreetingsDut.gf b/examples/phrasebook/GreetingsDut.gf
--- a/examples/phrasebook/GreetingsDut.gf
+++ b/examples/phrasebook/GreetingsDut.gf
@@ -1,28 +1,29 @@
-concrete GreetingsDut of Greetings = open Prelude in {
+concrete GreetingsDut of Greetings = SentencesDut [Greeting,mkGreeting] ** open Prelude in {
 
---lincat 
---  Greeting = SS ;
 
---lin 
---  GBye = ss "hej då" ;
---  GCheers = ss "skål" ;
---  GDamn = ss "fan" ;
---  GExcuse, GExcusePol = ss "ursäkta" ;
---  GGoodDay = ss "god dag" ;
---  GGoodEvening = ss "god afton" ;
---  GGoodMorning = ss "god morgon" ;
---  GGoodNight = ss "god natt" ;
---  GGoodbye = ss "hej då" ;
---  GHello = ss "hej" ;
---  GHelp = ss "hjälp" ;
---  GHowAreYou = ss "hur står det till" ;
---  GLookOut = ss "se upp" ;
---  GNiceToMeetYou, GNiceToMeetYouPol = ss "trevligt att träffas" ;
---  GPleaseGive, GPleaseGivePol = ss "var så god" ;
---  GSeeYouSoon = ss "vi ses snart" ;
---  GSorry, GSorryPol = ss "förlåt" ;
---  GThanks = ss "tack" ;
---  GTheCheck = ss "notan" ;
-
---}
+lin 
+  GBye = mkGreeting "doei" ; 
+  GCheers = mkGreeting "proost" ;
+  GDamn = mkGreeting "verdomme" ; 
+  GExcuse, GExcusePol = mkGreeting "pardon" ; 
+  GGoodDay = mkGreeting "goedendag" ;
+  GGoodEvening = mkGreeting "goedenavond" ;
+  GGoodMorning = mkGreeting "goedemorgen" ;
+  GGoodNight = mkGreeting "goedenacht" ;
+  GGoodbye = mkGreeting "tot ziens" ;
+  GHello = mkGreeting "hallo" ;
+  GHelp = mkGreeting "help" ;
+  GHowAreYou = mkGreeting "hoe gaat het" ;
+  GLookOut = mkGreeting "kijk uit" ;
+  GNiceToMeetYou = mkGreeting "leuk je te ontmoeten" ;
+  GNiceToMeetYouPol = mkGreeting "leuk je u ontmoeten" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "alstublieft" ; 
+  GSeeYouSoon = mkGreeting "tot ziens" ;
+  GSorry = mkGreeting "sorry";
+  GSorryPol = mkGreeting "mijn verontschuldiging" ;
+  GThanks = mkGreeting "dank je wel" ; 
+  GTheCheck = mkGreeting "rekening" ; 
+  GCongratulations = mkGreeting "gefeliciteerd";
+  GHappyBirthday = mkGreeting "gelukkige verjaardag" ;
+  GGoodLuck = mkGreeting "veel geluk" ; 
 }
diff --git a/examples/phrasebook/GreetingsEng.gf b/examples/phrasebook/GreetingsEng.gf
--- a/examples/phrasebook/GreetingsEng.gf
+++ b/examples/phrasebook/GreetingsEng.gf
@@ -1,27 +1,26 @@
-concrete GreetingsEng of Greetings = open Prelude in {
-
-lincat 
-  Greeting = SS ;
+concrete GreetingsEng of Greetings = SentencesEng [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "bye" ;
-  GCheers = ss "cheers" ;
-  GDamn = ss "damn" ;
-  GExcuse, GExcusePol = ss "excuse me" ;
-  GGoodDay = ss "good afternoon" ; ----
-  GGoodEvening = ss "good evening" ;
-  GGoodMorning = ss "good morning" ;
-  GGoodNight = ss "good night" ;
-  GGoodbye = ss "goodbye" ;
-  GHello = ss "hello" ;
-  GHelp = ss "help" ;
-  GHowAreYou = ss "how are you" ;
-  GLookOut = ss "look out" ;
-  GNiceToMeetYou, GNiceToMeetYouPol = ss "nice to meet you" ;
-  GPleaseGive, GPleaseGivePol = ss "please" ;
-  GSeeYouSoon = ss "see you soon" ;
-  GSorry, GSorryPol = ss "sorry" ;
-  GThanks = ss "thank you" ;
-  GTheCheck = ss "the bill" ;
-
+  GBye = mkGreeting "bye" ;
+  GCheers = mkGreeting "cheers" ;
+  GDamn = mkGreeting "damn" ;
+  GExcuse, GExcusePol = mkGreeting "excuse me" ;
+  GGoodDay = mkGreeting "good afternoon" ; ----
+  GGoodEvening = mkGreeting "good evening" ;
+  GGoodMorning = mkGreeting "good morning" ;
+  GGoodNight = mkGreeting "good night" ;
+  GGoodbye = mkGreeting "goodbye" ;
+  GHello = mkGreeting "hello" ;
+  GHelp = mkGreeting "help" ;
+  GHowAreYou = mkGreeting "how are you" ;
+  GLookOut = mkGreeting "look out" ;
+  GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "nice to meet you" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "please" ;
+  GSeeYouSoon = mkGreeting "see you soon" ;
+  GSorry, GSorryPol = mkGreeting "sorry" ;
+  GThanks = mkGreeting "thank you" ;
+  GTheCheck = mkGreeting "the bill" ;
+  GCongratulations = mkGreeting "congratulations";
+  GHappyBirthday = mkGreeting "happy birthday" ;
+  GGoodLuck = mkGreeting "good luck" ; 
 }
diff --git a/examples/phrasebook/GreetingsFin.gf b/examples/phrasebook/GreetingsFin.gf
--- a/examples/phrasebook/GreetingsFin.gf
+++ b/examples/phrasebook/GreetingsFin.gf
@@ -1,27 +1,27 @@
-concrete GreetingsFin of Greetings = open Prelude in {
-
-lincat 
-  Greeting, Politeness = SS ;
+concrete GreetingsFin of Greetings = SentencesFin [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "hei hei" ;
-  GCheers = ss "terveydeksi" ;
-  GDamn = ss "hitto" ;
-  GExcuse, GExcusePol = ss "anteeksi" ;
-  GGoodDay = ss "hyvää päivää" ;
-  GGoodEvening = ss "hyvää iltaa" ;
-  GGoodMorning = ss "hyvää huomenta" ;
-  GGoodNight = ss "hyvää yötä" ;
-  GGoodbye = ss "näkemiin" ;
-  GHello = ss "hei" ;
-  GHelp = ss "apua" ;
-  GHowAreYou = ss "mitä kuuluu" ;
-  GLookOut = ss "varo" ;
-  GNiceToMeetYou = ss "hauska tutustua" ;
-  GPleaseGive = ss "ole hyvä" ;
-  GPleaseGivePol = ss "olkaa hyvä" ;
-  GSeeYouSoon = ss "nähdään pian" ;
-  GSorry, GSorryPol = ss "anteeksi" ;
-  GThanks = ss "kiitos" ;
-  GTheCheck = ss "lasku" ;
+  GBye = mkGreeting "hei hei" ;
+  GCheers = mkGreeting "terveydeksi" ;
+  GDamn = mkGreeting "hitto" ;
+  GExcuse, GExcusePol = mkGreeting "anteeksi" ;
+  GGoodDay = mkGreeting "hyvää päivää" ;
+  GGoodEvening = mkGreeting "hyvää iltaa" ;
+  GGoodMorning = mkGreeting "hyvää huomenta" ;
+  GGoodNight = mkGreeting "hyvää yötä" ;
+  GGoodbye = mkGreeting "näkemiin" ;
+  GHello = mkGreeting "hei" ;
+  GHelp = mkGreeting "apua" ;
+  GHowAreYou = mkGreeting "mitä kuuluu" ;
+  GLookOut = mkGreeting "varo" ;
+  GNiceToMeetYou = mkGreeting "hauska tutustua" ;
+  GPleaseGive = mkGreeting "ole hyvä" ;
+  GPleaseGivePol = mkGreeting "olkaa hyvä" ;
+  GSeeYouSoon = mkGreeting "nähdään pian" ;
+  GSorry, GSorryPol = mkGreeting "anteeksi" ;
+  GThanks = mkGreeting "kiitos" ;
+  GTheCheck = mkGreeting "lasku" ;
+  GCongratulations = mkGreeting "onnittelut";
+  GHappyBirthday = mkGreeting "hyvää syntymäpäivää" ;
+  GGoodLuck = mkGreeting "onnea" ; 
 }
diff --git a/examples/phrasebook/GreetingsFre.gf b/examples/phrasebook/GreetingsFre.gf
--- a/examples/phrasebook/GreetingsFre.gf
+++ b/examples/phrasebook/GreetingsFre.gf
@@ -1,29 +1,29 @@
-concrete GreetingsFre of Greetings = open Prelude in {
-
-lincat 
-  Greeting = SS ;
+concrete GreetingsFre of Greetings = SentencesFre [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "au revoir" ;
-  GCheers = ss "santé" ;
-  GDamn = ss "maudit" ;
-  GExcuse = ss "excuse-moi" ;
-  GExcusePol = ss "excusez-moi" ;
-  GGoodDay = ss "bonjour" ;
-  GGoodEvening = ss "bon soir" ;
-  GGoodMorning = ss "bonjour" ;
-  GGoodNight = ss "bonne nuit" ;
-  GGoodbye = ss "au revoir" ;
-  GHello = ss "salut" ;
-  GHelp = ss "au secours" ;
-  GHowAreYou = ss "comment ça va" ;
-  GLookOut = ss "attention" ;
-  GNiceToMeetYou = ss "enchanté" ;
-  GPleaseGive = ss "s'il te plaît" ;
-  GPleaseGivePol = ss "s'il vous plaît" ;
-  GSeeYouSoon = ss "à bientôt" ;
-  GSorry, GSorryPol = ss "pardon" ;
-  GThanks = ss "merci" ;
-  GTheCheck = ss "l'addition" ;
+  GBye = mkGreeting "au revoir" ;
+  GCheers = mkGreeting "santé" ;
+  GDamn = mkGreeting "maudit" ;
+  GExcuse = mkGreeting "excuse-moi" ;
+  GExcusePol = mkGreeting "excusez-moi" ;
+  GGoodDay = mkGreeting "bonjour" ;
+  GGoodEvening = mkGreeting "bon soir" ;
+  GGoodMorning = mkGreeting "bonjour" ;
+  GGoodNight = mkGreeting "bonne nuit" ;
+  GGoodbye = mkGreeting "au revoir" ;
+  GHello = mkGreeting "salut" ;
+  GHelp = mkGreeting "au secours" ;
+  GHowAreYou = mkGreeting "comment ça va" ;
+  GLookOut = mkGreeting "attention" ;
+  GNiceToMeetYou = mkGreeting "enchanté" ;
+  GPleaseGive = mkGreeting "s'il te plaît" ;
+  GPleaseGivePol = mkGreeting "s'il vous plaît" ;
+  GSeeYouSoon = mkGreeting "à bientôt" ;
+  GSorry, GSorryPol = mkGreeting "pardon" ;
+  GThanks = mkGreeting "merci" ;
+  GTheCheck = mkGreeting "l'addition" ;
+  GCongratulations = mkGreeting "félicitations";
+  GHappyBirthday = mkGreeting "joyeux anniversaire" ;
+  GGoodLuck = mkGreeting "bonne chance" ; 
 
 }
diff --git a/examples/phrasebook/GreetingsGer.gf b/examples/phrasebook/GreetingsGer.gf
--- a/examples/phrasebook/GreetingsGer.gf
+++ b/examples/phrasebook/GreetingsGer.gf
@@ -1,28 +1,29 @@
-concrete GreetingsGer of Greetings = open Prelude in {
-
-lincat 
-  Greeting = SS ;
+--# -path=.:abstract:prelude:german:api:common
+concrete GreetingsGer of Greetings = SentencesGer [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "tschüß" ;
-  GCheers = ss "zum Wohl" ;
-  GDamn = ss "Teufel" ;
-  GExcuse, GExcusePol = ss "Entschuldigung" ;
-  GGoodDay = ss "guten Tag" ;
-  GGoodEvening = ss "guten Abend" ;
-  GGoodMorning = ss "guten Morgen" ;
-  GGoodNight = ss "gute Nacht" ;
-  GGoodbye = ss "auf Wiedersehen" ;
-  GHello = ss "Hallo" ;
-  GHelp = ss "Hilfe" ;
-  GHowAreYou = ss "wie geht's" ;
-  GLookOut = ss "Achtung" ;
---  GNiceToMeetYou = ss "trevligt att träffas" ;
-  GPleaseGive, GPleaseGivePol = ss "bitte" ;
-  GSeeYouSoon = ss "bis bald" ;
-  GSorry, GSorryPol = ss "Entschuldigung" ;
-  GThanks = ss "Danke" ;
-  GTheCheck = ss "die Rechnung" ;
+  GBye = mkGreeting "tschüß" ;
+  GCheers = mkGreeting "zum Wohl" ;
+  GDamn = mkGreeting "verdammt" ;
+  GExcuse, GExcusePol = mkGreeting "Entschuldigung" ;
+  GGoodDay = mkGreeting "guten Tag" ;
+  GGoodEvening = mkGreeting "guten Abend" ;
+  GGoodMorning = mkGreeting "guten Morgen" ;
+  GGoodNight = mkGreeting "gute Nacht" ;
+  GGoodbye = mkGreeting "auf Wiedersehen" ;
+  GHello = mkGreeting "Hallo" ;
+  GHelp = mkGreeting "Hilfe" ;
+  GHowAreYou = mkGreeting "wie geht's" ;
+  GLookOut = mkGreeting "Achtung" ;
+  GNiceToMeetYou = mkGreeting "nett, Sie zu treffen" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "bitte" ;
+  GSeeYouSoon = mkGreeting "bis bald" ;
+  GSorry, GSorryPol = mkGreeting "Entschuldigung" ;
+  GThanks = mkGreeting "Danke" ;
+  GTheCheck = mkGreeting "die Rechnung" ;
+  GCongratulations = mkGreeting "herzlichen Glückwunsch";
+  GHappyBirthday = mkGreeting "alles Gute zum Geburtstag" ;
+  GGoodLuck = mkGreeting "viel Glück" ; 
 
 }
 
diff --git a/examples/phrasebook/GreetingsIta.gf b/examples/phrasebook/GreetingsIta.gf
--- a/examples/phrasebook/GreetingsIta.gf
+++ b/examples/phrasebook/GreetingsIta.gf
@@ -1,30 +1,30 @@
-concrete GreetingsIta of Greetings = open Prelude in {
-
-lincat 
-  Greeting = SS ;
+concrete GreetingsIta of Greetings = SentencesIta [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "ciao" ;
-  GCheers = ss "cincin" ;
-  GDamn = ss "maledizione" ;
-  GExcuse = ss "scusa" ;
-  GExcusePol = ss "scusi" ;
-  GGoodDay = ss "buongiorno" ;
-  GGoodEvening = ss "buona sera" ;
-  GGoodMorning = ss "buongiorno" ;
-  GGoodNight = ss "buona notte" ;
-  GGoodbye = ss "arrivederci" ;
-  GHello = ss "ciao" ;
-  GHelp = ss "aiuto" ;
-  GHowAreYou = ss "come sta" ;
-  GLookOut = ss "attenzione" ;
-  GNiceToMeetYou = ss "piacere di conoscerti" ;
-  GNiceToMeetYouPol = ss "piacere di conoscerLa" ;
-  GPleaseGive, GPleaseGivePol = ss "per favore" ;
-  GSeeYouSoon = ss "a presto" ; ----
-  GSorry = ss "scusami" ; ----
-  GSorryPol = ss "scusimi" ; ----
-  GThanks = ss "grazie" ;
-  GTheCheck = ss "il conto" ;
+  GBye = mkGreeting "ciao" ;
+  GCheers = mkGreeting "cincin" ;
+  GDamn = mkGreeting "maledizione" ;
+  GExcuse = mkGreeting "scusa" ;
+  GExcusePol = mkGreeting "scusi" ;
+  GGoodDay = mkGreeting "buongiorno" ;
+  GGoodEvening = mkGreeting "buona sera" ;
+  GGoodMorning = mkGreeting "buongiorno" ;
+  GGoodNight = mkGreeting "buona notte" ;
+  GGoodbye = mkGreeting "arrivederci" ;
+  GHello = mkGreeting "ciao" ;
+  GHelp = mkGreeting "aiuto" ;
+  GHowAreYou = mkGreeting "come sta" ;
+  GLookOut = mkGreeting "attenzione" ;
+  GNiceToMeetYou = mkGreeting "piacere di conoscerti" ;
+  GNiceToMeetYouPol = mkGreeting "piacere di conoscerLa" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "per favore" ;
+  GSeeYouSoon = mkGreeting "a presto" ; ----
+  GSorry = mkGreeting "scusami" ; ----
+  GSorryPol = mkGreeting "scusimi" ; ----
+  GThanks = mkGreeting "grazie" ;
+  GTheCheck = mkGreeting "il conto" ;
+  GCongratulations = mkGreeting "congratulazioni";
+  GHappyBirthday = mkGreeting "buon compleanno" ;
+  GGoodLuck = mkGreeting "buona fortuna" ; 
 
 }
diff --git a/examples/phrasebook/GreetingsNor.gf b/examples/phrasebook/GreetingsNor.gf
--- a/examples/phrasebook/GreetingsNor.gf
+++ b/examples/phrasebook/GreetingsNor.gf
@@ -1,28 +1,27 @@
-concrete GreetingsNor of Greetings = open Prelude in {
-
---lincat 
---  Greeting = SS ;
+concrete GreetingsNor of Greetings = SentencesNor [Greeting,mkGreeting] ** open Prelude in {
 
---lin 
---  GBye = ss "hej då" ;
---  GCheers = ss "skål" ;
---  GDamn = ss "fan" ;
---  GExcuse, GExcusePol = ss "ursäkta" ;
---  GGoodDay = ss "god dag" ;
---  GGoodEvening = ss "god afton" ;
---  GGoodMorning = ss "god morgon" ;
---  GGoodNight = ss "god natt" ;
---  GGoodbye = ss "hej då" ;
---  GHello = ss "hej" ;
---  GHelp = ss "hjälp" ;
---  GHowAreYou = ss "hur står det till" ;
---  GLookOut = ss "se upp" ;
---  GNiceToMeetYou, GNiceToMeetYouPol = ss "trevligt att träffas" ;
---  GPleaseGive, GPleaseGivePol = ss "var så god" ;
---  GSeeYouSoon = ss "vi ses snart" ;
---  GSorry, GSorryPol = ss "förlåt" ;
---  GThanks = ss "tack" ;
---  GTheCheck = ss "notan" ;
+lin 
+  GBye = mkGreeting "ha det" ;
+  GCheers = mkGreeting "skål" ; -- google translate ! 
+  GDamn = mkGreeting "faen" ; 
+  GExcuse, GExcusePol = mkGreeting "unnskyld" ;
+  GGoodDay = mkGreeting "god dag" ;
+  GGoodEvening = mkGreeting "god kveld" ;
+  GGoodMorning = mkGreeting "god morgen" ;
+  GGoodNight = mkGreeting "god natt" ;
+  GGoodbye = mkGreeting "ha det bra" ;
+  GHello = mkGreeting "hei" ;
+  GHelp = mkGreeting "hjelp" ;
+  GHowAreYou = mkGreeting "hvordan går det" ;
+  GLookOut = mkGreeting "se opp" ; -- google translate !
+  GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "hyggelig å treffe deg" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "vær så snill" ;
+  GSeeYouSoon = mkGreeting "se deg snart" ; -- google translate !
+  GSorry, GSorryPol = mkGreeting "beklager" ;
+  GThanks = mkGreeting "takk" ;
+  GTheCheck = mkGreeting "regningen" ;
+  GCongratulations = mkGreeting "gratulerer";
+  GHappyBirthday = mkGreeting "gratulerer med dagen" ;
+  GGoodLuck = mkGreeting "lykke til" ; 
 
---}
 }
diff --git a/examples/phrasebook/GreetingsPol.gf b/examples/phrasebook/GreetingsPol.gf
--- a/examples/phrasebook/GreetingsPol.gf
+++ b/examples/phrasebook/GreetingsPol.gf
@@ -1,28 +1,27 @@
-concrete GreetingsPol of Greetings = open Prelude in {
-
---lincat 
---  Greeting = SS ;
+concrete GreetingsPol of Greetings = SentencesPol [Greeting,mkGreeting] ** open Prelude in {
 
---lin 
---  GBye = ss "bye" ;
---  GCheers = ss "cheers" ;
---  GDamn = ss "damn" ;
---  GExcuse, GExcusePol = ss "excuse me" ;
---  GGoodDay = ss "good afternoon" ; ----
---  GGoodEvening = ss "good evening" ;
---  GGoodMorning = ss "good morning" ;
---  GGoodNight = ss "good night" ;
---  GGoodbye = ss "goodbye" ;
---  GHello = ss "hello" ;
---  GHelp = ss "help" ;
---  GHowAreYou = ss "how are you" ;
---  GLookOut = ss "look out" ;
---  GNiceToMeetYou, GNiceToMeetYouPol = ss "nice to meet you" ;
---  GPleaseGive, GPleaseGivePol = ss "please" ;
---  GSeeYouSoon = ss "see you soon" ;
---  GSorry, GSorryPol = ss "sorry" ;
---  GThanks = ss "thank you" ;
---  GTheCheck = ss "the bill" ;
+flags
+  optimize =values ; coding =utf8 ; 
 
---}
+lin 
+  GBye = mkGreeting "cześć" ;
+  GCheers = mkGreeting "na zdrowie" ;
+  GDamn = mkGreeting "cholera" ; -- not polite
+  GExcuse, GExcusePol, GSorry, GSorryPol = mkGreeting "przepraszam" ;
+  GGoodDay, GGoodMorning = mkGreeting "dzień dobry" ;
+  GGoodEvening = mkGreeting "dobry wieczór" ;
+  GGoodNight = mkGreeting "dobranoc" ;
+  GGoodbye = mkGreeting "do widzenia" ;
+  GHello = mkGreeting "cześć" ;
+  GHelp = mkGreeting "pomocy" ;
+  GHowAreYou = mkGreeting "jak się masz" ;
+  GLookOut = mkGreeting "uwaga" ;
+  GNiceToMeetYou = mkGreeting "miło mi" ; 
+  GPleaseGive, GPleaseGivePol = mkGreeting "poproszę" ;
+  GSeeYouSoon = mkGreeting "do zobaczenia" ;
+  GThanks = mkGreeting "dziękuję" ;
+  GTheCheck = mkGreeting "rachunek" ;
+  GCongratulations = mkGreeting "gratulacje";
+  GHappyBirthday = mkGreeting "wszystkiego najlepszego z okazji urodzin" ;
+  GGoodLuck = mkGreeting "powodzenia" ; 
 }
diff --git a/examples/phrasebook/GreetingsRon.gf b/examples/phrasebook/GreetingsRon.gf
--- a/examples/phrasebook/GreetingsRon.gf
+++ b/examples/phrasebook/GreetingsRon.gf
@@ -1,29 +1,31 @@
-concrete GreetingsRon of Greetings = open Prelude in {
+concrete GreetingsRon of Greetings = SentencesRon [Greeting,mkGreeting] ** open Prelude in {
 
 flags coding = utf8 ;
 
-lincat 
-  Greeting, Politeness = SS ;
-
 lin 
-  GBye = ss "pa" ;
-  GCheers = ss "noroc" ;
-  GDamn = ss "ptiu" ;
-  GExcuse = ss "pardon" ;
-  GGoodDay = ss "bună ziua" ;
-  GGoodEvening = ss "bună seara" ;
-  GGoodMorning = ss "bună dimineaţa" ;
-  GGoodNight = ss "noapte bună" ;
-  GGoodbye = ss "la revedere" ;
-  GHello = ss "salut" ;
-  GHelp = ss "ajutor" ;
-  GHowAreYou = ss "ce faci" ;
-  GLookOut = ss "atenţie" ;
-  GNiceToMeetYou = ss "încântat" ;
-  GPleaseGive = ss "vă rog" ;
-  GSeeYouSoon = ss "pe curând" ;
-  GSorry = ss "îmi pare rău" ;
-  GThanks = ss "mulţumesc" ;
-  GTheCheck = ss "nota de plată" ;
+  GBye = mkGreeting "pa" ;
+  GCheers = mkGreeting "noroc" ;
+  GDamn = mkGreeting "ptiu" ;
+  GExcuse = mkGreeting "pardon" ;
+  GExcusePol = mkGreeting "mă scuzați" ;
+  GGoodDay = mkGreeting "bună ziua" ;
+  GGoodEvening = mkGreeting "bună seara" ;
+  GGoodMorning = mkGreeting "bună dimineaţa" ;
+  GGoodNight = mkGreeting "noapte bună" ;
+  GGoodbye = mkGreeting "la revedere" ;
+  GHello = mkGreeting "salut" ;
+  GHelp = mkGreeting "ajutor" ;
+  GHowAreYou = mkGreeting "ce faci" ;
+  GLookOut = mkGreeting "atenţie" ;
+  GNiceToMeetYou = mkGreeting "încântat" ;
+  GPleaseGive = mkGreeting "te rog" ;
+  GPleaseGivePol = mkGreeting "vă rog" ;
+  GSeeYouSoon = mkGreeting "pe curând" ;
+  GSorry, GSorryPol = mkGreeting "îmi pare rău" ;
+  GThanks = mkGreeting "mulţumesc" ;
+  GTheCheck = mkGreeting "nota de plată" ;
+  GCongratulations = mkGreeting "felicitări";
+  GHappyBirthday = mkGreeting "la mulți ani" ;
+  GGoodLuck = mkGreeting "baftă" ; 
 
 }
diff --git a/examples/phrasebook/GreetingsRus.gf b/examples/phrasebook/GreetingsRus.gf
--- a/examples/phrasebook/GreetingsRus.gf
+++ b/examples/phrasebook/GreetingsRus.gf
@@ -1,28 +1,32 @@
 concrete GreetingsRus of Greetings = open Prelude in {
 
---lincat 
---  Greeting = SS ;
+flags coding = utf8 ;
 
---lin 
---  GBye = ss "bye" ;
---  GCheers = ss "cheers" ;
---  GDamn = ss "damn" ;
---  GExcuse, GExcusePol = ss "excuse me" ;
---  GGoodDay = ss "good afternoon" ; ----
---  GGoodEvening = ss "good evening" ;
---  GGoodMorning = ss "good morning" ;
---  GGoodNight = ss "good night" ;
---  GGoodbye = ss "goodbye" ;
---  GHello = ss "hello" ;
---  GHelp = ss "help" ;
---  GHowAreYou = ss "how are you" ;
---  GLookOut = ss "look out" ;
---  GNiceToMeetYou, GNiceToMeetYouPol = ss "nice to meet you" ;
---  GPleaseGive, GPleaseGivePol = ss "please" ;
---  GSeeYouSoon = ss "see you soon" ;
---  GSorry, GSorryPol = ss "sorry" ;
---  GThanks = ss "thank you" ;
---  GTheCheck = ss "the bill" ;
+lincat 
+  Greeting = SS ;
 
---}
+lin 
+  GBye = ss "до свидания" ;
+  GCheers = ss "ура" ;
+  GDamn = ss "проклинать" ;
+  GExcuse, GExcusePol = ss "извините" ;
+  GGoodDay = ss "добрый день" ; ----
+  GGoodEvening = ss "добрый вечер" ;
+  GGoodMorning = ss "доброе утро" ;
+  GGoodNight = ss "спокойной ночи" ;
+  GGoodbye = ss "до свидания" ;
+  GHello = ss "привет" ;
+  GHelp = ss "помощь" ;
+  GHowAreYou = ss "Как поживаете" ;
+  GLookOut = ss "смотреть" ;
+  GNiceToMeetYou, GNiceToMeetYouPol = ss "приятно встретиться с вами" ;
+  GPleaseGive, GPleaseGivePol = ss "пожалуйста" ;
+  GSeeYouSoon = ss "до скорой встречи" ;
+  GSorry, GSorryPol = ss "Мне жаль" ;
+  GThanks = ss "спасибо" ;
+  GTheCheck = ss "проверить" ;
+  GCongratulations = ss "Поздравляю";
+  GHappyBirthday = ss "С Днем Рождения" ;
+  GGoodLuck = ss "удача" ; 
+
 }
diff --git a/examples/phrasebook/GreetingsSpa.gf b/examples/phrasebook/GreetingsSpa.gf
--- a/examples/phrasebook/GreetingsSpa.gf
+++ b/examples/phrasebook/GreetingsSpa.gf
@@ -1,31 +1,31 @@
-concrete GreetingsSpa of Greetings = open Prelude in {
+concrete GreetingsSpa of Greetings = SentencesSpa [Greeting,mkGreeting] ** open Prelude in {
 
---lincat 
---  Greeting = SS ;
+flags coding = utf8 ;
 
---lin 
---  GBye = ss "ciao" ;
---  GCheers = ss "cincin" ;
---  GDamn = ss "maledizione" ;
---  GExcuse = ss "scusa" ;
---  GExcusePol = ss "scusi" ;
---  GGoodDay = ss "buongiorno" ;
---  GGoodEvening = ss "buona sera" ;
---  GGoodMorning = ss "buongiorno" ;
---  GGoodNight = ss "buona notte" ;
---  GGoodbye = ss "arrivederci" ;
---  GHello = ss "ciao" ;
---  GHelp = ss "aiuto" ;
---  GHowAreYou = ss "come sta" ;
---  GLookOut = ss "attenzione" ;
---  GNiceToMeetYou = ss "piacere di conoscerti" ;
---  GNiceToMeetYouPol = ss "piacere di conoscerLa" ;
---  GPleaseGive, GPleaseGivePol = ss "per favore" ;
---  GSeeYouSoon = ss "a presto" ; ----
---  GSorry = ss "scusami" ; ----
---  GSorryPol = ss "scusimi" ; ----
---  GThanks = ss "grazie" ;
---  GTheCheck = ss "il conto" ;
+lin 
+  GBye = mkGreeting "adiós" ;
+  GCheers = mkGreeting "salud" ;
+  GDamn = mkGreeting "joder" ;
+  GExcuse = mkGreeting "perdón" ;
+  GExcusePol = mkGreeting "perdone" ;
+  GCongratulations = mkGreeting "felicitaciones" ;
+  GGoodLuck = mkGreeting "buena suerte" ;
+  GHappyBirthday = mkGreeting "feliz cumpleaños" ;
+  GGoodMorning, GGoodDay = mkGreeting "buenos días" ;
+  GGoodEvening = mkGreeting "buenas tardes" ;
+  GGoodNight = mkGreeting "buenas noches" ;
+  GGoodbye = mkGreeting "hasta luego" ;
+  GHello = mkGreeting "hola" ;
+  GHelp = mkGreeting "socorro" ;
+  GHowAreYou = mkGreeting "cómo está¡" ; -- the polite singular "you"
+  GLookOut = mkGreeting "atención" ;
+  GNiceToMeetYou = mkGreeting "encantado de conocerle" ; -- the polite singular "you"
+  GPleaseGive, GPleaseGivePol = mkGreeting "por favor" ;
+  GSeeYouSoon = mkGreeting "nos vemos pronto" ; 
+  GSorry = mkGreeting "disculpa" ; 
+  GSorryPol = mkGreeting "disculpe" ; 
+  GThanks = mkGreeting "gracias" ;
+  GTheCheck = mkGreeting "la cuenta" ;
 
---}
+
 }
diff --git a/examples/phrasebook/GreetingsSwe.gf b/examples/phrasebook/GreetingsSwe.gf
--- a/examples/phrasebook/GreetingsSwe.gf
+++ b/examples/phrasebook/GreetingsSwe.gf
@@ -1,27 +1,27 @@
-concrete GreetingsSwe of Greetings = open Prelude in {
-
-lincat 
-  Greeting = SS ;
+concrete GreetingsSwe of Greetings = SentencesSwe [Greeting,mkGreeting] ** open Prelude in {
 
 lin 
-  GBye = ss "hej då" ;
-  GCheers = ss "skål" ;
-  GDamn = ss "fan" ;
-  GExcuse, GExcusePol = ss "ursäkta" ;
-  GGoodDay = ss "god dag" ;
-  GGoodEvening = ss "god afton" ;
-  GGoodMorning = ss "god morgon" ;
-  GGoodNight = ss "god natt" ;
-  GGoodbye = ss "hej då" ;
-  GHello = ss "hej" ;
-  GHelp = ss "hjälp" ;
-  GHowAreYou = ss "hur står det till" ;
-  GLookOut = ss "se upp" ;
-  GNiceToMeetYou, GNiceToMeetYouPol = ss "trevligt att träffas" ;
-  GPleaseGive, GPleaseGivePol = ss "var så god" ;
-  GSeeYouSoon = ss "vi ses snart" ;
-  GSorry, GSorryPol = ss "förlåt" ;
-  GThanks = ss "tack" ;
-  GTheCheck = ss "notan" ;
+  GBye = mkGreeting "hej då" ;
+  GCheers = mkGreeting "skål" ;
+  GDamn = mkGreeting "fan" ;
+  GExcuse, GExcusePol = mkGreeting "ursäkta" ;
+  GGoodDay = mkGreeting "god dag" ;
+  GGoodEvening = mkGreeting "god afton" ;
+  GGoodMorning = mkGreeting "god morgon" ;
+  GGoodNight = mkGreeting "god natt" ;
+  GGoodbye = mkGreeting "hej då" ;
+  GHello = mkGreeting "hej" ;
+  GHelp = mkGreeting "hjälp" ;
+  GHowAreYou = mkGreeting "hur står det till" ;
+  GLookOut = mkGreeting "se upp" ;
+  GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "trevligt att träffas" ;
+  GPleaseGive, GPleaseGivePol = mkGreeting "var så god" ;
+  GSeeYouSoon = mkGreeting "vi ses snart" ;
+  GSorry, GSorryPol = mkGreeting "förlåt" ;
+  GThanks = mkGreeting "tack" ;
+  GTheCheck = mkGreeting "notan" ;
+  GCongratulations = mkGreeting "grattis";
+  GHappyBirthday = mkGreeting "grattis på födelsedagen" ;
+  GGoodLuck = mkGreeting "lycka till" ; 
 
 }
diff --git a/examples/phrasebook/Implementation.html b/examples/phrasebook/Implementation.html
--- a/examples/phrasebook/Implementation.html
+++ b/examples/phrasebook/Implementation.html
@@ -23,6 +23,7 @@
       Proposition = Cl ;
       Item = NP ;
       Kind = CN ;
+      MassKind = CN ;
       Quality = AP ;
       Property = A ;
       Object = NP ;
@@ -41,12 +42,16 @@
       Date = Adv ;
       Name = NP ;
       Number = Card ;
+      ByTransport = Adv ;
+      Transport = {name : CN ; by : Adv} ;
+      Superlative = Det ;
     lin
       PSentence s = mkText s | lin Text (mkUtt s) ;  -- optional '.'
       PQuestion s = mkText s | lin Text (mkUtt s) ;  -- optional '?'
   
       PObject x = mkPhrase (mkUtt x) ;
       PKind x = mkPhrase (mkUtt x) ;
+      PMassKind x = mkPhrase (mkUtt x) ;
       PQuality x = mkPhrase (mkUtt x) ;
       PNumber x = mkPhrase (mkUtt x) ;
       PPlace x = mkPhrase (mkUtt x.name) ;
@@ -57,9 +62,12 @@
       PCountry x = mkPhrase (mkUtt x) ;
       PCitizenship x = mkPhrase (mkUtt (mkAP x)) ;
       PDay d = mkPhrase (mkUtt d.name) ;
+      PTransport t = mkPhrase (mkUtt t.name) ;
+      PByTransport t = mkPhrase (mkUtt t) ;
   
       PYes = mkPhrase yes_Utt ;
       PNo = mkPhrase no_Utt ;
+      PYesToNo = mkPhrase yes_Utt ;
   
       Is = mkCl ;
   
@@ -77,6 +85,8 @@
       ObjItem i = i ;
       ObjNumber n k = mkNP n k ;
       ObjIndef k = mkNP a_Quant k ;
+      ObjPlural k = mkNP aPl_Det k ;
+      ObjMass k = mkNP k ;
       ObjAndObj = mkNP and_Conj ;
       OneObj o = o ; 
   
@@ -85,19 +95,22 @@
       These kind = mkNP this_Quant plNum kind ;
       Those kind = mkNP that_Quant plNum kind ;
       The kind = mkNP the_Quant kind ;
-      The kind = mkNP the_Quant kind ;
       Thes kind = mkNP the_Quant plNum kind ;
+      ThisMass kind = mkNP this_Quant kind ;
+      ThatMass kind = mkNP that_Quant kind ;
+      TheMass kind = mkNP the_Quant kind ;
+  
       SuchKind quality kind = mkCN quality kind ;
+      SuchMassKind quality kind = mkCN quality kind ;
       Very property = mkAP very_AdA (mkAP property) ;
       Too property = mkAP too_AdA (mkAP property) ;
       PropQuality property = mkAP property ;
-      ThePlace kind =
-        let name : NP = mkNP the_Quant kind.name in {
-          name = name ;
-          at = mkAdv kind.at name ;
-          to = mkAdv kind.to name
-        } ;
   
+      ThePlace kind = let dd = if_then_else Det kind.isPl thePl_Det theSg_Det 
+                       in placeNP dd kind ;
+      APlace kind = let dd = if_then_else Det kind.isPl thePl_Det theSg_Det 
+                       in placeNP dd kind ;
+  
       IMale, IFemale = mkPerson i_Pron ;
       YouFamMale, YouFamFemale = mkPerson youSg_Pron ;
       YouPolMale, YouPolFemale = mkPerson youPol_Pron ;
@@ -114,15 +127,20 @@
         {name = n ; isPron = False ; poss = mkQuant he_Pron} ; -- poss not used
 </pre>
 
---    NameString s = symb s ; --%
 <pre>
       NameNN = symb "NN" ;
   
       NNumeral n = mkCard &lt;lin Numeral n : Numeral>  ;
   
-      AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
+      SHave   p obj = mkS (mkCl p.name have_V2 obj) ;
+      SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP aPl_Det k)) ;
+      SHaveNoMass p m = mkS negativePol (mkCl p.name have_V2 (mkNP m)) ;
+      QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
+  
+      AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
       ACitizen p n = mkCl p.name n ;
       ABePlace p place = mkCl p.name place.at ;
+      ByTransp t = t.by ;
   
   oper 
 </pre>
@@ -154,14 +172,29 @@
         } ;
   
     NPPlace : Type = {name : NP ; at : Adv ; to : Adv} ;
-    CNPlace : Type = {name : CN ; at : Prep ; to : Prep} ;
+    CNPlace : Type = {name : CN ; at : Prep ; to : Prep; isPl : Bool} ;
   
     mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
       name = p ;
       at = i ;
-      to = t
+      to = t ;
+      isPl = False
       } ;
   
+   mkCNPlacePl : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
+      name = p ;
+      at = i ;
+      to = t ;
+      isPl = True
+      } ;
+  
+    placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
+      let name : NP = mkNP det kind.name in {
+        name = name ;
+        at = mkAdv kind.at name ;
+        to = mkAdv kind.to name
+      } ;
+  
     NPPerson : Type = {name : NP ; isPron : Bool ; poss : Quant} ;
   
     relativePerson : GNumber -> CN -> (Num -> NP -> CN -> NP) -> NPPerson -> NPPerson = 
@@ -243,20 +276,33 @@
 defined by <tt>mkPlace</tt>.
 <pre>
       Airport = mkPlace "airport" "at" ;
+      AmusementPark = mkCompoundPlace "amusement" "park" "at" ;
+      Bank = mkPlace "bank" "at" ;
       Bar = mkPlace "bar" "in" ;
-      Church = mkPlace "church" "in" ;
+      Cafeteria = mkPlace "canteen" "in" ;
+      Center = mkPlace "center" "in" ;
       Cinema = mkPlace "cinema" "at" ;
+      Church = mkPlace "church" "in" ;
+      Disco = mkPlace "disco" "at" ;
       Hospital = mkPlace "hospital" "in" ;
       Hotel = mkPlace "hotel" "in" ;
-      Museum = mkPlace "museum" "in" ;
+      Museum = mkPlace "museum" "at" ;
       Park = mkPlace "park" "in" ;
+      Parking = mkCompoundPlace "car" "park" "in" ; 
+      Pharmacy = mkPlace "pharmacy" "at" ;
+      PostOffice = mkCompoundPlace "post" "office" "at" ;
+      Pub = mkPlace "pub" "at" ;
       Restaurant = mkPlace "restaurant" "in" ;
       School = mkPlace "school" "at" ;
-      Shop = mkPlace "shop" "in" ;
+      Shop = mkPlace "shop" "at" ;
       Station = mkPlace "station" "at" ;
+      Supermarket = mkPlace "supermarket" "at" ; 
       Theatre = mkPlace "theatre" "at" ;
       Toilet = mkPlace "toilet" "in" ;
       University = mkPlace "university" "at" ;
+      Zoo = mkPlace "zoo" "at" ;
+  
+      CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ;
 </pre>
 
 Currencies; <tt>crown</tt> is ambiguous between Danish and Swedish crowns.
@@ -265,25 +311,54 @@
       Dollar = mkCN (mkN "dollar") ;
       Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
       Lei = mkCN (mkN "leu" "lei") ;
+      Leva = mkCN (mkN "lev") ;
+      NorwegianCrown = mkCN (mkA "Norwegian") (mkN "crown") | mkCN (mkN "crown") ;
+      Pound = mkCN (mkN "pound") ;
+      Rouble = mkCN (mkN "rouble") ;
       SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
+      Zloty = mkCN (mkN "zloty" "zloty") ;
 </pre>
 
 Nationalities
 <pre>
       Belgian = mkA "Belgian" ;
       Belgium = mkNP (mkPN "Belgium") ;
+      Bulgarian = mkNat "Bulgarian" "Bulgaria" ;
+      Catalan = mkNPNationality (mkNP (mkPN "Catalan")) (mkNP (mkPN "Catalonia")) (mkA "Catalonian") ;
+      Danish = mkNat "Danish" "Denmark" ;
+      Dutch =  mkNPNationality (mkNP (mkPN "Dutch")) (mkNP the_Quant (mkN "Netherlands")) (mkA "Dutch") ;
       English = mkNat "English" "England" ;
       Finnish = mkNat "Finnish" "Finland" ;
       Flemish = mkNP (mkPN "Flemish") ;
       French = mkNat "French" "France" ; 
+      German = mkNat "German" "Germany" ;
       Italian = mkNat "Italian" "Italy" ;
+      Norwegian = mkNat "Norwegian" "Norway" ;
+      Polish = mkNat "Polish" "Poland" ;
       Romanian = mkNat "Romanian" "Romania" ;
+      Russian = mkNat "Russian" "Russia" ;
+      Spanish = mkNat "Spanish" "Spain" ;
       Swedish = mkNat "Swedish" "Sweden" ;
 </pre>
 
+Means of transportation 
+<pre>
+     Bike = mkTransport L.bike_N ;
+     Bus = mkTransport (mkN "bus") ;
+     Car = mkTransport L.car_N ;
+     Ferry = mkTransport (mkN "ferry") ;
+     Plane = mkTransport L.airplane_N ;
+     Subway = mkTransport (mkN "subway") ;
+     Taxi = mkTransport (mkN "taxi") ;
+     Train = mkTransport (mkN "train") ;
+     Tram = mkTransport (mkN "tram") ;
+  
+     ByFoot = P.mkAdv "by foot" ;
+</pre>
+
 Actions: the predication patterns are very often language-dependent.
 <pre>
-      AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+      AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsEng.mkAdv "old"));
       AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
       AHasRoom p num = mkCl p.name have_V2 
         (mkNP (mkNP a_Det (mkN "room")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
@@ -325,8 +400,9 @@
 Building phrases from strings is complicated: the solution is to use
 mkText : Text -> Text -> Text ;
 <pre>
-      PSeeYou d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
-      PSeeYouPlace p d = 
+      PSeeYouDate d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
+      PSeeYouPlace p = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt p.at)) ;
+      PSeeYouPlaceDate p d = 
         mkText (lin Text (ss ("see you"))) 
           (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 </pre>
@@ -355,6 +431,33 @@
       Tomorrow = P.mkAdv "tomorrow" ;
 </pre>
 
+modifiers of places
+<pre>
+      TheBest = mkSuperl L.good_A ;
+      TheClosest = mkSuperl L.near_A ; 
+      TheCheapest = mkSuperl (mkA "cheap") ;
+      TheMostExpensive = mkSuperl (mkA "expensive") ;
+      TheMostPopular = mkSuperl (mkA "popular") ;
+      TheWorst = mkSuperl L.bad_A ;
+  
+      SuperlPlace sup p = placeNP sup p ;
+</pre>
+
+transports
+<pre>
+      HowFar place = mkQS (mkQCl far_IAdv place.name) ;
+      HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxEng.mkAdv from_Prep x.name))) ;
+      HowFarFromBy x y t = 
+        mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxEng.mkAdv from_Prep x.name)) t)) ;
+      HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
+  
+      WhichTranspPlace trans place = 
+        mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+  
+      IsTranspPlace trans place =
+        mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+</pre>
+
 auxiliaries
 <pre>
     oper
@@ -367,7 +470,10 @@
         mkNPDay day (SyntaxEng.mkAdv on_Prep day) 
           (SyntaxEng.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
   
-      mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
+      mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
+       mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
+  
+      mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> 
         mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
   
       open_Adv = P.mkAdv "open" ;
@@ -377,6 +483,15 @@
         relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
   
       nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
+  
+      mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+        name = mkCN n ; 
+        by = SyntaxEng.mkAdv by8means_Prep (mkNP n)
+        } ;
+  
+      mkSuperl : A -> Det = \a -> SyntaxEng.mkDet the_Art (SyntaxEng.mkOrd a) ;
+  
+     far_IAdv = ExtraEng.IAdvAdv (ss "far") ;
   
   }
 </pre>
diff --git a/examples/phrasebook/Makefile b/examples/phrasebook/Makefile
--- a/examples/phrasebook/Makefile
+++ b/examples/phrasebook/Makefile
@@ -5,10 +5,10 @@
 demo: compdemo linkdemo
 
 compdemo:
-	$(compile) Bul Eng Fre Ger Ita Ron Swe DisambPhrasebookEng
+	$(compile) Bul Cat Dan Dut Eng Fre Ger Ita Nor Pol Ron Spa Swe DisambPhrasebookEng
 
 linkdemo:
-	$(compile) -link Bul Eng Fin Fre Ger Ita Ron Swe DisambPhrasebookEng 
+	$(compile) -link Eng Bul Cat Dan Dut Fin Fre Ger Ita Nor Pol Ron Spa Swe DisambPhrasebookEng 
 
 #separate, because slow...
 fin:
@@ -29,6 +29,9 @@
 	rm -f Ontology.gf
 	cat SentencesI.gf WordsEng.gf >Implementation.gf
 	gfdoc Implementation.gf
-	txt2tags -thtml phrasebook.txt
+	txt2tags -thtml --toc doc-phrasebook.txt
+	txt2tags -thtml help-phrasebook.txt
 	rm -f Ontology.gf Implementation.gf
 
+upload:: Phrasebook.pgf
+	rsync -a Phrasebook.pgf www.grammaticalframework.org:/usr/local/www/GF-demos/www/grammars
diff --git a/examples/phrasebook/Ontology.html b/examples/phrasebook/Ontology.html
--- a/examples/phrasebook/Ontology.html
+++ b/examples/phrasebook/Ontology.html
@@ -29,6 +29,7 @@
       PrimObject ;  -- single object of wanting, ordering, etc   e.g. "three pizzas"
       Item ;        -- a single entity                           e.g. "this pizza"
       Kind ;        -- a type of an item                         e.g. "pizza"
+      MassKind ;    -- a type mass (uncountable)                 e.g. "water"
       Quality ;     -- qualification of an item, can be complex  e.g. "very good"
       Property ;    -- basic property of an item, one word       e.g. "good"
       Place ;       -- location                                  e.g. "the bar" 
@@ -45,6 +46,9 @@
       Date ;        -- definite date                             e.g. "on Friday"
       Name ;        -- name of person                            e.g. "NN"
       Number ;      -- number expression 1 .. 999,999            e.g. "twenty"
+      Transport ;   -- transportation device                     e.g. "car"
+      ByTransport ; -- mean of transportation                    e.g. "by tram"
+      Superlative ; -- superlative modifiers of places           e.g. "the best restaurant"
 </pre>
 
 Many of the categories are accessible as Phrases, i.e. as translation units.
@@ -53,20 +57,23 @@
       PSentence    : Sentence -> Phrase ;
       PQuestion    : Question -> Phrase ;
   
-      PObject      : Object   -> Phrase ;
-      PKind        : Kind     -> Phrase ;
-      PQuality     : Quality  -> Phrase ;
-      PNumber      : Number   -> Phrase ;
-      PPlace       : Place    -> Phrase ;
-      PPlaceKind   : PlaceKind-> Phrase ;
-      PCurrency    : Currency -> Phrase ;
-      PPrice       : Price    -> Phrase ;
-      PLanguage    : Language -> Phrase ;
+      PObject      : Object      -> Phrase ;
+      PKind        : Kind        -> Phrase ;
+      PMassKind    : MassKind    -> Phrase ;
+      PQuality     : Quality     -> Phrase ;
+      PNumber      : Number      -> Phrase ;
+      PPlace       : Place       -> Phrase ;
+      PPlaceKind   : PlaceKind   -> Phrase ;
+      PCurrency    : Currency    -> Phrase ;
+      PPrice       : Price       -> Phrase ;
+      PLanguage    : Language    -> Phrase ;
       PCitizenship : Citizenship -> Phrase ;
-      PCountry     : Country -> Phrase ;
-      PDay         : Day -> Phrase ;
+      PCountry     : Country     -> Phrase ;
+      PDay         : Day         -> Phrase ;
+      PByTransport : ByTransport -> Phrase ;
+      PTransport   : Transport   -> Phrase ;
   
-      PYes, PNo : Phrase ;
+      PYes, PNo, PYesToNo : Phrase ;  -- yes, no, si/doch (pos. answer to neg. question)
 </pre>
 
 This is the way to build propositions about inanimate items.
@@ -94,10 +101,13 @@
       ObjItem   : Item -> PrimObject ;             -- this pizza
       ObjNumber : Number -> Kind -> PrimObject ;   -- five pizzas
       ObjIndef  : Kind -> PrimObject ;             -- a pizza
+      ObjPlural : Kind -> PrimObject ;             -- pizzas
+      ObjMass   : MassKind -> PrimObject ;         -- water
       ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
       OneObj    : PrimObject -> Object ;           -- this pizza
   
       SuchKind : Quality -> Kind -> Kind ;         -- Italian pizza
+      SuchMassKind : Quality -> MassKind -> MassKind ; -- Italian water
       Very : Property -> Quality ;                 -- very Italian
       Too  : Property -> Quality ;                 -- too Italian      
       PropQuality : Property -> Quality ;          -- Italian
@@ -105,12 +115,14 @@
 
 Determiners.
 <pre>
-      This, That, These, Those : Kind -> Item ;    -- this pizza,...,those pizzas
-      The, Thes : Kind -> Item ;                   -- the pizza, the pizzas
+      This, That, These, Those : Kind -> Item ;         -- this pizza,...,those pizzas
+      The, Thes : Kind -> Item ;                        -- the pizza, the pizzas
+      ThisMass, ThatMass, TheMass : MassKind -> Item ;  -- this/that/the water
   
-      AmountCurrency : Number -> Currency -> Price ;  -- five euros
+      AmountCurrency : Number -> Currency -> Price ;    -- five euros
   
-      ThePlace : PlaceKind -> Place ;                  -- the bar
+      ThePlace : PlaceKind -> Place ;                   -- the bar
+      APlace : PlaceKind -> Place ;                     -- a bar
   
       IMale, IFemale,                     -- I, said by man/woman (affects agreement)
       YouFamMale, YouFamFemale,           -- familiar you, said to man/woman (affects agreement)
@@ -128,7 +140,6 @@
       NameNN     : Name ;                       -- the name "NN"
 </pre>
 
---    NameString : String -> Name ; ---- creates ambiguities with all words --%
 <pre>
       NNumeral   : Numeral -> Number ;          -- numeral in words, e.g. "twenty"
 </pre>
@@ -136,15 +147,21 @@
 Actions are typically language-dependent, not only lexically but also
 structurally. However, these ones are mostly functorial.
 <pre>
-      AHave    : Person -> Kind        -> Action ;  -- you have a pizza
-      ACitizen : Person -> Citizenship -> Action ;  -- you are Swedish
-      ABePlace : Person -> Place       -> Action ;  -- you are in the bar
+      SHave       : Person -> Object      -> Sentence ;  -- you have beer
+      SHaveNo     : Person -> Kind        -> Sentence ;  -- you have no apples
+      SHaveNoMass : Person -> MassKind    -> Sentence ;  -- you have no beer
+      QDoHave     : Person -> Object      -> Question ;  -- do you have beer
   
+      AHaveCurr : Person -> Currency    -> Action ;  -- you have dollars
+      ACitizen  : Person -> Citizenship -> Action ;  -- you are Swedish
+      ABePlace  : Person -> Place       -> Action ;  -- you are in the bar
+  
+      ByTransp : Transport -> ByTransport ;          -- by bus
+  
   }
 </pre>
 
 <h2> Words and idiomatic phrases of the Phrasebook</h2>
-(c) 2009 Aarne Ranta under LGPL --%
 <pre>
   abstract Words = Sentences ** {
   
@@ -154,19 +171,19 @@
 kinds of items (so far mostly food stuff)
 <pre>
       Apple : Kind ;
-      Beer : Kind ;
-      Bread : Kind ; 
-      Cheese : Kind ;
-      Chicken : Kind ; 
-      Coffee : Kind ; 
-      Fish : Kind ; 
-      Meat : Kind ;
-      Milk : Kind ; 
+      Beer : MassKind ;
+      Bread : MassKind ; 
+      Cheese : MassKind ;
+      Chicken : MassKind ; 
+      Coffee : MassKind ; 
+      Fish : MassKind ; 
+      Meat : MassKind ;
+      Milk : MassKind ; 
       Pizza : Kind ; 
-      Salt : Kind ; 
-      Tea : Kind ; 
-      Water : Kind ; 
-      Wine : Kind ;
+      Salt : MassKind ; 
+      Tea : MassKind ; 
+      Water : MassKind ; 
+      Wine : MassKind ;
 </pre>
 
 properties of kinds (so far mostly of food)
@@ -186,44 +203,86 @@
 kinds of places
 <pre>
       Airport : PlaceKind ;
+      AmusementPark : PlaceKind ;
+      Bank : PlaceKind ;
       Bar : PlaceKind ;
+      Cafeteria : PlaceKind ;
+      Center : PlaceKind ;
       Cinema : PlaceKind ;
       Church : PlaceKind ;
+      Disco : PlaceKind ;
       Hospital : PlaceKind ;
       Hotel : PlaceKind ;
       Museum : PlaceKind ;
       Park : PlaceKind ;
+      Parking : PlaceKind ;
+      Pharmacy : PlaceKind ;
+      PostOffice : PlaceKind ;
+      Pub : PlaceKind ;
       Restaurant : PlaceKind ;
       School : PlaceKind ;
       Shop : PlaceKind ;
       Station : PlaceKind ;
+      Supermarket : PlaceKind ;
       Theatre : PlaceKind ; 
       Toilet : PlaceKind ; 
       University : PlaceKind ;
+      Zoo : PlaceKind ;
+  
+      CitRestaurant : Citizenship -> PlaceKind ;
 </pre>
 
 currency units
 <pre>
-      DanishCrown : Currency ;
+      DanishCrown : Currency ; 
       Dollar : Currency ; 
-      Euro : Currency ;
-      Lei : Currency ;
+      Euro : Currency ; -- Germany, France, Italy, Finland, Spain, The Netherlands
+      Lei : Currency ; -- Romania
+      Leva : Currency ; -- Bulgaria
+      NorwegianCrown : Currency ;
+      Pound : Currency ; -- UK
+      Rouble : Currency ; -- Russia
       SwedishCrown : Currency ;
+      Zloty : Currency ; -- Poland
 </pre>
 
 nationalities, countries, languages, citizenships
 <pre>
       Belgian : Citizenship ;
       Belgium : Country ;
+      Bulgarian : Nationality ;
+      Catalan : Nationality ;
+      Danish : Nationality ;
+      Dutch : Nationality ;
       English : Nationality ;
       Finnish : Nationality ;
       Flemish : Language ;
       French : Nationality ;
+      German : Nationality ;
       Italian : Nationality ;
+      Norwegian : Nationality ;
+      Polish : Nationality ;
       Romanian : Nationality ;
+      Russian : Nationality ;
+      Spanish : Nationality ;
       Swedish : Nationality ;
 </pre>
 
+means of transportation 
+<pre>
+      Bike : Transport ; 
+      Bus : Transport ;
+      Car : Transport ;
+      Ferry : Transport ;
+      Plane : Transport ;
+      Subway : Transport ;
+      Taxi : Transport ;
+      Train : Transport ;
+      Tram : Transport ;
+  
+      ByFoot : ByTransport ;
+</pre>
+
 Actions (which can be expressed by different structures in different languages).
 Notice that also negations and questions can be formed from these.
 <pre>
@@ -245,7 +304,7 @@
       AThirsty    : Person -> Action ;              -- I am thirsty
       ATired      : Person -> Action ;              -- I am tired
       AUnderstand : Person -> Action ;              -- I (don't) understand
-      AWant       : Person -> Object -> Action ;    -- I want two beers
+      AWant       : Person -> Object -> Action ;    -- I want two apples
       AWantGo     : Person -> Place -> Action ;     -- I want to go to the hospital
 </pre>
 
@@ -264,8 +323,9 @@
       PropOpenDay    : Place -> Day  -> Proposition ;  -- the museum is open on Mondays
       PropClosedDay  : Place -> Day  -> Proposition ;  -- the museum is closed on Mondays
   
-      PSeeYou      : Date -> Phrase ;           -- see you on Monday
-      PSeeYouPlace : Place -> Date -> Phrase ;  -- see you in the bar on Monday
+      PSeeYouPlaceDate : Place -> Date -> Phrase ;     -- see you in the bar on Monday
+      PSeeYouPlace     : Place         -> Phrase ;     -- see you in the bar
+      PSeeYouDate      :          Date -> Phrase ;     -- see you on Monday
 </pre>
 
 family relations
@@ -280,6 +340,30 @@
       Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday : Day ;
   
       Tomorrow : Date ;
+</pre>
+
+transports
+<pre>
+      HowFar : Place -> Question ;                  -- how far is the zoo ?
+      HowFarFrom : Place -> Place -> Question ;     -- how far is the center from the hotel ?
+      HowFarFromBy : Place -> Place -> ByTransport -> Question ; 
+                                              -- how far is the airport from the hotel by taxi ? 
+      HowFarBy : Place -> ByTransport -> Question ;   -- how far is the museum by bus ?
+  
+      WhichTranspPlace : Transport -> Place -> Question ;   -- which bus goes to the hotel
+      IsTranspPlace    : Transport -> Place -> Question ;   -- is there a metro to the airport ?
+</pre>
+
+modifiers of places
+<pre>
+      TheBest : Superlative ;
+      TheClosest : Superlative ;
+      TheCheapest : Superlative ;
+      TheMostExpensive : Superlative ;
+      TheMostPopular : Superlative ;
+      TheWorst : Superlative ;
+  
+      SuperlPlace : Superlative -> PlaceKind -> Place ; -- the best bar
   
   }
 </pre>
diff --git a/examples/phrasebook/Phrasebook.gf b/examples/phrasebook/Phrasebook.gf
--- a/examples/phrasebook/Phrasebook.gf
+++ b/examples/phrasebook/Phrasebook.gf
@@ -5,7 +5,4 @@
 
 flags startcat = Phrase ;
 
-fun
-  PGreeting : Greeting -> Phrase ;
-
 }
diff --git a/examples/phrasebook/PhrasebookBul.gf b/examples/phrasebook/PhrasebookBul.gf
--- a/examples/phrasebook/PhrasebookBul.gf
+++ b/examples/phrasebook/PhrasebookBul.gf
@@ -6,7 +6,4 @@
     SyntaxBul,
     Prelude in {
 
-lin
-  PGreeting g = lin Text g ;
-
 }
diff --git a/examples/phrasebook/PhrasebookCat.gf b/examples/phrasebook/PhrasebookCat.gf
--- a/examples/phrasebook/PhrasebookCat.gf
+++ b/examples/phrasebook/PhrasebookCat.gf
@@ -7,8 +7,5 @@
     SyntaxCat,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
-
 }
 
diff --git a/examples/phrasebook/PhrasebookDan.gf b/examples/phrasebook/PhrasebookDan.gf
--- a/examples/phrasebook/PhrasebookDan.gf
+++ b/examples/phrasebook/PhrasebookDan.gf
@@ -1,12 +1,9 @@
---# -path=.:present
+--# -path=.:present:alltenses
 
 concrete PhrasebookDan of Phrasebook = 
   GreetingsDan,
   WordsDan ** open 
     SyntaxDan,
     Prelude in {
-
-lin
-  PGreeting g = lin Text (ss g.s) ;
 
 }
diff --git a/examples/phrasebook/PhrasebookDut.gf b/examples/phrasebook/PhrasebookDut.gf
--- a/examples/phrasebook/PhrasebookDut.gf
+++ b/examples/phrasebook/PhrasebookDut.gf
@@ -6,7 +6,5 @@
     SyntaxDut,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
 
 }
diff --git a/examples/phrasebook/PhrasebookEng.gf b/examples/phrasebook/PhrasebookEng.gf
--- a/examples/phrasebook/PhrasebookEng.gf
+++ b/examples/phrasebook/PhrasebookEng.gf
@@ -9,7 +9,4 @@
 flags 
   language = en_US ;
 
-lin
-  PGreeting g = lin Text g ;
-
 }
diff --git a/examples/phrasebook/PhrasebookFin.gf b/examples/phrasebook/PhrasebookFin.gf
--- a/examples/phrasebook/PhrasebookFin.gf
+++ b/examples/phrasebook/PhrasebookFin.gf
@@ -6,7 +6,4 @@
     SyntaxFin,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
-
 }
diff --git a/examples/phrasebook/PhrasebookFre.gf b/examples/phrasebook/PhrasebookFre.gf
--- a/examples/phrasebook/PhrasebookFre.gf
+++ b/examples/phrasebook/PhrasebookFre.gf
@@ -7,7 +7,5 @@
     SyntaxFre,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
   
 }
diff --git a/examples/phrasebook/PhrasebookGer.gf b/examples/phrasebook/PhrasebookGer.gf
--- a/examples/phrasebook/PhrasebookGer.gf
+++ b/examples/phrasebook/PhrasebookGer.gf
@@ -6,7 +6,5 @@
     SyntaxGer,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
 
 }
diff --git a/examples/phrasebook/PhrasebookIta.gf b/examples/phrasebook/PhrasebookIta.gf
--- a/examples/phrasebook/PhrasebookIta.gf
+++ b/examples/phrasebook/PhrasebookIta.gf
@@ -9,8 +9,5 @@
 
 flags language = it_IT ;
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
-
 }
 
diff --git a/examples/phrasebook/PhrasebookNor.gf b/examples/phrasebook/PhrasebookNor.gf
--- a/examples/phrasebook/PhrasebookNor.gf
+++ b/examples/phrasebook/PhrasebookNor.gf
@@ -6,7 +6,4 @@
     SyntaxNor,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
-
 }
diff --git a/examples/phrasebook/PhrasebookPol.gf b/examples/phrasebook/PhrasebookPol.gf
--- a/examples/phrasebook/PhrasebookPol.gf
+++ b/examples/phrasebook/PhrasebookPol.gf
@@ -6,7 +6,8 @@
     SyntaxPol,
     Prelude in {
 
-lin
-  PGreeting g = lin Text g ;
+flags 
+  language = pl_PL ; optimize =values ; coding =utf8 ; 
+      
 
 }
diff --git a/examples/phrasebook/PhrasebookRon.gf b/examples/phrasebook/PhrasebookRon.gf
--- a/examples/phrasebook/PhrasebookRon.gf
+++ b/examples/phrasebook/PhrasebookRon.gf
@@ -7,7 +7,5 @@
     SyntaxRon,
     Prelude in {
 
-lin
-  PGreeting g = lin Text (ss g.s) ;
 
 }
diff --git a/examples/phrasebook/PhrasebookSpa.gf b/examples/phrasebook/PhrasebookSpa.gf
--- a/examples/phrasebook/PhrasebookSpa.gf
+++ b/examples/phrasebook/PhrasebookSpa.gf
@@ -1,14 +1,12 @@
---# -path=.:present
-
-concrete PhrasebookSpa of Phrasebook = 
-  GreetingsSpa,
-  WordsSpa
-  ** open 
-    SyntaxSpa,
-    Prelude in {
-
-lin
-  PGreeting g = lin Text (ss g.s) ;
-
-}
-
+--# -path=.:present
+
+concrete PhrasebookSpa of Phrasebook = 
+  GreetingsSpa,
+  WordsSpa
+  ** open 
+    SyntaxSpa,
+    Prelude in {
+
+
+}
+
diff --git a/examples/phrasebook/PhrasebookSwe.gf b/examples/phrasebook/PhrasebookSwe.gf
--- a/examples/phrasebook/PhrasebookSwe.gf
+++ b/examples/phrasebook/PhrasebookSwe.gf
@@ -7,7 +7,5 @@
     Prelude in {
 flags  
   language = sv_SE ;
-lin
-  PGreeting g = lin Text (ss g.s) ;
 
 }
diff --git a/examples/phrasebook/Sentences.gf b/examples/phrasebook/Sentences.gf
--- a/examples/phrasebook/Sentences.gf
+++ b/examples/phrasebook/Sentences.gf
@@ -14,14 +14,17 @@
 
   cat
     Phrase ;      -- complete phrase, the unit of translation  e.g. "Where are you?"
+    Word ;        -- word that could be used as phrase         e.g. "Monday"
+    Message ;     -- sequence of phrases, longest unit         e.g. "Hello! Where are you?"
+    Greeting ;    -- idiomatic greeting                        e.g. "hello"
     Sentence ;    -- declarative sentence                      e.g. "I am in the bar"
     Question ;    -- question, either yes/no or wh             e.g. "where are you"
-    -- Greeting ; -- idiomatic phrase, not inflected,          e.g. "hello"
     Proposition ; -- can be turned into sentence or question   e.g. "this pizza is good"
     Object ;      -- the object of wanting, ordering, etc      e.g. "three pizzas and a beer"
     PrimObject ;  -- single object of wanting, ordering, etc   e.g. "three pizzas"
     Item ;        -- a single entity                           e.g. "this pizza"
     Kind ;        -- a type of an item                         e.g. "pizza"
+    MassKind ;    -- a type mass (uncountable)                 e.g. "water"
     Quality ;     -- qualification of an item, can be complex  e.g. "very good"
     Property ;    -- basic property of an item, one word       e.g. "good"
     Place ;       -- location                                  e.g. "the bar" 
@@ -38,31 +41,54 @@
     Date ;        -- definite date                             e.g. "on Friday"
     Name ;        -- name of person                            e.g. "NN"
     Number ;      -- number expression 1 .. 999,999            e.g. "twenty"
+    Transport ;   -- transportation device                     e.g. "car"
+    ByTransport ; -- mean of transportation                    e.g. "by tram"
+    Superlative ; -- superlative modifiers of places           e.g. "the best restaurant"
 
+
+  fun 
+
+-- To build a whole message
+
+    MPhrase   : Phrase -> Message ;
+    MContinue : Phrase -> Message -> Message ;
+
 -- Many of the categories are accessible as Phrases, i.e. as translation units.
+-- To regulate whether words appear on the top level, change their status between
+-- Word and Phrase, or uncomment PWord,
 
-  fun
+    --    PWord : Word -> Phrase ;
+
+    PGreeting    : Greeting -> Phrase ;
     PSentence    : Sentence -> Phrase ;
     PQuestion    : Question -> Phrase ;
 
-    PObject      : Object   -> Phrase ;
-    PKind        : Kind     -> Phrase ;
-    PQuality     : Quality  -> Phrase ;
-    PNumber      : Number   -> Phrase ;
-    PPlace       : Place    -> Phrase ;
-    PPlaceKind   : PlaceKind-> Phrase ;
-    PCurrency    : Currency -> Phrase ;
-    PPrice       : Price    -> Phrase ;
-    PLanguage    : Language -> Phrase ;
-    PCitizenship : Citizenship -> Phrase ;
-    PCountry     : Country -> Phrase ;
-    PDay         : Day -> Phrase ;
+    PNumber      : Number      -> Phrase ;
+    PPrice       : Price       -> Phrase ;
+    PObject      : Object      -> Word ;
+    PKind        : Kind        -> Word ;
+    PMassKind    : MassKind    -> Word ;
+    PQuality     : Quality     -> Word ;
+    PPlace       : Place       -> Word ;
+    PPlaceKind   : PlaceKind   -> Word ;
+    PCurrency    : Currency    -> Word ;
+    PLanguage    : Language    -> Word ;
+    PCitizenship : Citizenship -> Word ;
+    PCountry     : Country     -> Word ;
+    PDay         : Day         -> Word ;
+    PByTransport : ByTransport -> Word ;
+    PTransport   : Transport   -> Word ;
 
-    PYes, PNo : Phrase ;
+    PYes, PNo, PYesToNo : Greeting ;  -- yes, no, si/doch (pos. answer to neg. question)
 
+-- To order something.
+
+    GObjectPlease : Object -> Greeting ;           -- a pizza and beer, please!
+
 -- This is the way to build propositions about inanimate items.
 
-    Is       : Item -> Quality -> Proposition ;  -- this pizza is good
+    Is     : Item -> Quality -> Proposition ;      -- this pizza is good
+    IsMass : MassKind -> Quality -> Proposition ;  -- Belgian beer is good
 
 -- To use propositions on higher levels.
 
@@ -82,23 +108,28 @@
     ObjItem   : Item -> PrimObject ;             -- this pizza
     ObjNumber : Number -> Kind -> PrimObject ;   -- five pizzas
     ObjIndef  : Kind -> PrimObject ;             -- a pizza
+    ObjPlural : Kind -> PrimObject ;             -- pizzas
+    ObjMass   : MassKind -> PrimObject ;         -- water
     ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
     OneObj    : PrimObject -> Object ;           -- this pizza
     
     SuchKind : Quality -> Kind -> Kind ;         -- Italian pizza
+    SuchMassKind : Quality -> MassKind -> MassKind ; -- Italian water
     Very : Property -> Quality ;                 -- very Italian
     Too  : Property -> Quality ;                 -- too Italian      
     PropQuality : Property -> Quality ;          -- Italian
 
 -- Determiners.
 
-    This, That, These, Those : Kind -> Item ;    -- this pizza,...,those pizzas
-    The, Thes : Kind -> Item ;                   -- the pizza, the pizzas
-
-    AmountCurrency : Number -> Currency -> Price ;  -- five euros
+    This, That, These, Those : Kind -> Item ;         -- this pizza,...,those pizzas
+    The, Thes : Kind -> Item ;                        -- the pizza, the pizzas
+    ThisMass, ThatMass, TheMass : MassKind -> Item ;  -- this/that/the water
 
-    ThePlace : PlaceKind -> Place ;                  -- the bar
+    AmountCurrency : Number -> Currency -> Price ;    -- five euros
 
+    ThePlace : PlaceKind -> Place ;                   -- the bar
+    APlace : PlaceKind -> Place ;                     -- a bar
+   
     IMale, IFemale,                     -- I, said by man/woman (affects agreement)
     YouFamMale, YouFamFemale,           -- familiar you, said to man/woman (affects agreement)
     YouPolMale, YouPolFemale : Person ; -- polite you, said to man/woman (affects agreement)
@@ -121,9 +152,20 @@
 -- Actions are typically language-dependent, not only lexically but also
 -- structurally. However, these ones are mostly functorial.
 
-    AHave    : Person -> Kind        -> Action ;  -- you have a pizza
-    ACitizen : Person -> Citizenship -> Action ;  -- you are Swedish
-    ABePlace : Person -> Place       -> Action ;  -- you are in the bar
+    SHave       : Person -> Object      -> Sentence ;  -- you have beer
+    SHaveNo     : Person -> Kind        -> Sentence ;  -- you have no apples
+    SHaveNoMass : Person -> MassKind    -> Sentence ;  -- you have no beer
+    QDoHave     : Person -> Object      -> Question ;  -- do you have beer
+
+    AHaveCurr : Person -> Currency    -> Action ;  -- you have dollars
+    ACitizen  : Person -> Citizenship -> Action ;  -- you are Swedish
+    ABePlace  : Person -> Place       -> Action ;  -- you are in the bar
+
+    ByTransp : Transport -> ByTransport ;          -- by bus
+
+    AKnowSentence : Person -> Sentence -> Action ; -- you know that I am in the bar
+    AKnowPerson   : Person -> Person   -> Action ; -- you know me
+    AKnowQuestion : Person -> Question -> Action ; -- you know how far the bar is
 
 }
 
diff --git a/examples/phrasebook/SentencesBul.gf b/examples/phrasebook/SentencesBul.gf
--- a/examples/phrasebook/SentencesBul.gf
+++ b/examples/phrasebook/SentencesBul.gf
@@ -1,4 +1,48 @@
-concrete SentencesBul of Sentences = NumeralBul ** SentencesI with 
+concrete SentencesBul of Sentences = 
+  NumeralBul ** SentencesI - [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, 
+                              YouPolFemale, ACitizen, Citizenship, PCitizenship, 
+                              LangNat, CitiNat, CountryNat, PropCit,
+                              Nationality, Country, Language, PLanguage, PCountry
+                              ] with 
   (Syntax = SyntaxBul),
   (Symbolic = SymbolicBul),
-  (Lexicon = LexiconBul) ;
+  (Lexicon = LexiconBul) ** open ExtraBul, (R = ResBul) in {
+
+lincat
+    Citizenship = {s1 : R.Gender => R.NForm => Str;                 -- there are two nouns for every citizenship - one for males and one for females
+                   s2 : A                                           -- furthermore, adjective for Property
+                  } ;           
+    Nationality = {s1 : R.Gender => R.NForm => Str;                 -- there are two nouns for every citizenship - one for males and one for females
+                   s2 : A;                                          -- furthermore, adjective for Property
+                   s3 : PN                                          -- country name
+                  } ;
+    Language = A ;
+    Country = PN ;
+
+lin IMale = mkPerson i_Pron ;
+    IFemale = mkPerson i8fem_Pron ;
+
+lin YouFamMale = mkPerson youSg_Pron ;
+    YouFamFemale = mkPerson youSg8fem_Pron ;
+    YouPolMale, YouPolFemale = mkPerson youPol_Pron ;
+
+lin ACitizen p cit = 
+      let noun : N
+               = case p.name.a.gn of {
+                   R.GSg g => lin N {s = \\nf => cit.s1 ! g      ! nf; g = case g of {R.Masc=>R.AMasc R.Human; R.Fem=>R.AFem; R.Neut=>R.ANeut}} ;
+                   R.GPl   => lin N {s = \\nf => cit.s1 ! R.Masc ! nf; g = R.AMasc R.Human}
+                 } ;
+      in mkCl p.name noun ;
+
+    PCitizenship cit =
+      mkPhrase (mkUtt (mkAP cit.s2)) ;
+
+    LangNat n = n.s2 ;
+    CitiNat n = n ;
+    CountryNat n = n.s3 ;
+    PropCit cit = cit.s2 ;
+
+    PLanguage x = mkPhrase (mkUtt (mkAP x)) ;
+    PCountry x = mkPhrase (mkUtt (mkNP x)) ;
+
+}
diff --git a/examples/phrasebook/SentencesCat.gf b/examples/phrasebook/SentencesCat.gf
--- a/examples/phrasebook/SentencesCat.gf
+++ b/examples/phrasebook/SentencesCat.gf
@@ -1,27 +1,66 @@
 concrete SentencesCat of Sentences = NumeralCat ** SentencesI - [
-  PersonName ---- stack overflow
-  ,IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
+  IsMass,
+  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+  WherePlace, WherePerson, ABePlace,
+  Superlative
  ] 
   with 
     (Syntax = SyntaxCat), 
     (Symbolic = SymbolicCat), 
     (Lexicon = LexiconCat) ** 
-  open SyntaxCat, ExtraCat, Prelude in {
-{-
-    lin 
-      IFemale = 
-        {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
-      YouFamFemale = 
-        {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
-      YouPolFemale = 
-        {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
-      IMale = 
-        {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
-      YouFamMale = 
-        {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
-      YouPolMale = 
-        {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
--}
-}
+  open ParadigmsCat, BeschCat, SyntaxCat, ExtraCat, Prelude in {
 
+flags coding = utf8 ;
 
+lincat
+  Superlative = OrdSuperlative ; -- {ord: Ord ; isPre: Bool}
+
+lin
+      IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
+
+  IFemale = 
+    {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
+  YouFamFemale = 
+    {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
+  YouPolFemale = 
+     {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
+  IMale = 
+     {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
+  YouFamMale = 
+     {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+  YouPolMale = 
+     {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
+   ABePlace p place = mkCl p.name (mkVP (mkVP ser) place.at) ;
+   WherePlace place = mkQS (mkQCl where_IAdv (mkCl place.name ser) ) ;
+   WherePerson person = mkQS (mkQCl where_IAdv (mkCl person.name ser) ) ;
+
+oper
+   ser = mkV (ser_52 "ser") ;
+
+   CNPlace : Type = {name : CN ; at : Prep ; to : Prep }  ;
+
+   mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t ->
+	{ name = p ; at = i ; to = t ; } ;
+
+   OrdSuperlative : Type = {ord: Ord ; isPre: Bool} ;
+
+   placeNPSuperl : OrdSuperlative -> CNPlace -> NPPlace  = \sup,kind -> case sup.isPre of {
+     True  => placeNPDet sup.ord kind ;
+     False  => placeNPAdj sup.ord kind 
+     } ;
+
+   placeNPDet : Ord -> CNPlace -> NPPlace = \ord,kind ->
+     let name : NP = mkNP (mkDet the_Art ord) kind.name in {
+       name = name ;
+       at = SyntaxCat.mkAdv kind.at name ;
+       to = SyntaxCat.mkAdv kind.to name ;
+    };
+
+
+   placeNPAdj : Ord -> CNPlace -> NPPlace = \ord,kind ->
+     let name : NP = mkNP the_Art (mkCN kind.name (mkAP ord)) in {
+       name = name ;
+       at = SyntaxCat.mkAdv kind.at name ;
+       to = SyntaxCat.mkAdv kind.to name ;
+     };
+}
diff --git a/examples/phrasebook/SentencesDan.gf b/examples/phrasebook/SentencesDan.gf
--- a/examples/phrasebook/SentencesDan.gf
+++ b/examples/phrasebook/SentencesDan.gf
@@ -1,4 +1,8 @@
-concrete SentencesDan of Sentences = NumeralDan ** SentencesI with 
+concrete SentencesDan of Sentences = NumeralDan ** SentencesI - [NameNN] with 
   (Syntax = SyntaxDan),
   (Symbolic = SymbolicDan),
-  (Lexicon = LexiconDan) ;
+  (Lexicon = LexiconDan) ** open Prelude, SyntaxDan, (P = ParadigmsDan) in {
+
+  lin NameNN = mkNP (P.mkPN "NN") ;
+
+}
diff --git a/examples/phrasebook/SentencesDut.gf b/examples/phrasebook/SentencesDut.gf
--- a/examples/phrasebook/SentencesDut.gf
+++ b/examples/phrasebook/SentencesDut.gf
@@ -1,4 +1,13 @@
-concrete SentencesDut of Sentences = NumeralDut ** SentencesI with 
+concrete SentencesDut of Sentences = NumeralDut ** SentencesI - 
+  [SHaveNo,SHaveNoMass]
+  with 
   (Syntax = SyntaxDut),
   (Symbolic = SymbolicDut),
-  (Lexicon = LexiconDut) ;
+  (Lexicon = LexiconDut) ** open Prelude, SyntaxDut in {
+
+  lin 
+    SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
+    SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
+
+}
+
diff --git a/examples/phrasebook/SentencesFin.gf b/examples/phrasebook/SentencesFin.gf
--- a/examples/phrasebook/SentencesFin.gf
+++ b/examples/phrasebook/SentencesFin.gf
@@ -1,19 +1,30 @@
 concrete SentencesFin of Sentences = NumeralFin ** SentencesI - 
-  [Is,NameNN,
-   IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
+  [Is, IsMass, NameNN, ObjMass,
+   IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+   GObjectPlease
   ] with 
   (Syntax = SyntaxFin),
   (Symbolic = SymbolicFin),
-  (Lexicon = LexiconFin) ** open SyntaxFin, ExtraFin, (P = ParadigmsFin), (V = VerbFin) in {
+  (Lexicon = LexiconFin) ** 
+    open SyntaxFin, ExtraFin, (P = ParadigmsFin), (V = VerbFin), Prelude in {
 
+  flags optimize = noexpand ;
+
   lin 
-    Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ; -- pizza on herkullista
+    Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ; -- tämä pizza on herkullista
+    IsMass mass prop = mkCl (mkNP a_Det mass) (V.UseComp (CompPartAP prop)) ; -- pizza on herkullista
     NameNN = mkNP (P.mkPN (P.mkN "NN" "NN:iä")) ;
 
     IMale, IFemale = 
-        {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
+        {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = ProDropPoss i_Pron} ; 
     YouFamMale, YouFamFemale = 
-        {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+        {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = ProDropPoss youSg_Pron} ; 
     YouPolMale, YouPolFemale = 
-        {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
+        {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = ProDropPoss youPol_Pron} ;
+
+    ObjMass = PartCN ;
+
+    GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "kiitos"))) ;
+
+
   }
diff --git a/examples/phrasebook/SentencesFre.gf b/examples/phrasebook/SentencesFre.gf
--- a/examples/phrasebook/SentencesFre.gf
+++ b/examples/phrasebook/SentencesFre.gf
@@ -1,14 +1,21 @@
 concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
+  IsMass,
   QProp,
-  IFemale, YouFamFemale, YouPolFemale
+  IFemale, YouFamFemale, YouPolFemale,
+  PYesToNo,
+  SHaveNo,SHaveNoMass,
+  Superlative
  ] 
   with 
     (Syntax = SyntaxFre), 
     (Symbolic = SymbolicFre), 
     (Lexicon = LexiconFre) ** 
-  open SyntaxFre, ExtraFre, Prelude in {
+  open SyntaxFre, ExtraFre, (P = ParadigmsFre), Prelude in {
 
+    lincat
+      Superlative = {s : Ord ; isPre : Bool} ;
     lin 
+      IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
       QProp a = 
         lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
       IFemale = 
@@ -17,5 +24,13 @@
         {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ; 
       YouPolFemale = 
         {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
+
+      PYesToNo = mkPhrase (lin Utt (ss "si")) ;
+
+    SHaveNo p k = mkS negativePol (mkCl p.name have_de (mkNP aPl_Det k)) ;
+    SHaveNoMass p k = mkS negativePol (mkCl p.name (ComplCN have_de k)) ;
+
+  oper
+    have_de : V2 =  P.mkV2 (P.mkV have_V2) P.genitive ;
 
 }
diff --git a/examples/phrasebook/SentencesGer.gf b/examples/phrasebook/SentencesGer.gf
--- a/examples/phrasebook/SentencesGer.gf
+++ b/examples/phrasebook/SentencesGer.gf
@@ -1,4 +1,41 @@
-concrete SentencesGer of Sentences = NumeralGer ** SentencesI with 
+concrete SentencesGer of Sentences = NumeralGer ** SentencesI - 
+  [PYesToNo,SHaveNo,SHaveNoMass,
+   Proposition, Action, Is, IsMass, SProp, SPropNot, QProp,
+   AHaveCurr, ACitizen, ABePlace, AKnowSentence, AKnowPerson, AKnowQuestion,
+   Nationality, Language
+  ] with 
   (Syntax = SyntaxGer),
   (Symbolic = SymbolicGer),
-  (Lexicon = LexiconGer) ;
+  (Lexicon = LexiconGer) ** open Prelude, SyntaxGer in {
+
+  lin 
+    PYesToNo = mkPhrase (lin Utt (ss "doch")) ;
+    SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
+    SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
+
+  lincat
+    Proposition, Action = Prop ;
+  oper
+    Prop = {pos : Cl ; neg : S} ;  -- x F y ; x F nicht/kein y
+    mkProp : Cl -> S -> Prop = \pos,neg -> {pos = pos ; neg = neg} ;
+    prop : Cl -> Prop = \cl -> mkProp cl (mkS negativePol cl) ;
+  lin
+    Is i q = prop (mkCl i q) ;
+    IsMass m q = prop (mkCl (mkNP m) q) ;
+    SProp p = mkS p.pos ;
+    SPropNot p = p.neg ;
+    QProp p = mkQS (mkQCl p.pos) ;
+
+    AHaveCurr p curr = prop (mkCl p.name have_V2 (mkNP aPl_Det curr)) ;
+    ACitizen p n = prop (mkCl p.name n) ;
+    ABePlace p place = prop (mkCl p.name place.at) ;
+
+    AKnowSentence p s = prop (mkCl p.name Lexicon.know_VS s) ;
+    AKnowQuestion p s = prop (mkCl p.name Lexicon.know_VQ s) ;
+    AKnowPerson p q = prop (mkCl p.name Lexicon.know_V2 q.name) ;
+
+  lincat
+    Nationality = {lang : CN ; country : NP ; prop : A} ;
+    Language = CN ; -- kein Deutsch
+
+}
diff --git a/examples/phrasebook/SentencesI.gf b/examples/phrasebook/SentencesI.gf
--- a/examples/phrasebook/SentencesI.gf
+++ b/examples/phrasebook/SentencesI.gf
@@ -11,11 +11,15 @@
   in {
   lincat
     Phrase = Text ;
+    Word = Text ;
+    Message = Text ;
+    Greeting = Text ;
     Sentence = S ;
     Question = QS ;
     Proposition = Cl ;
     Item = NP ;
     Kind = CN ;
+    MassKind = CN ;
     Quality = AP ;
     Property = A ;
     Object = NP ;
@@ -34,27 +38,45 @@
     Date = Adv ;
     Name = NP ;
     Number = Card ;
+    ByTransport = Adv ;
+    Transport = {name : CN ; by : Adv} ;
+    Superlative = Det ;
   lin
+    MPhrase p = p ;
+    MContinue p m = mkText p m ;
+
     PSentence s = mkText s | lin Text (mkUtt s) ;  -- optional '.'
     PQuestion s = mkText s | lin Text (mkUtt s) ;  -- optional '?'
 
+    PGreeting g = mkText (lin Phr g) exclMarkPunct | g ;
+
+    -- PWord w = w ;
+
+    PNumber x = mkSentence (mkUtt x) ;
+    PPrice x = mkSentence (mkUtt x) ;
+
     PObject x = mkPhrase (mkUtt x) ;
     PKind x = mkPhrase (mkUtt x) ;
+    PMassKind x = mkPhrase (mkUtt x) ;
     PQuality x = mkPhrase (mkUtt x) ;
-    PNumber x = mkPhrase (mkUtt x) ;
     PPlace x = mkPhrase (mkUtt x.name) ;
     PPlaceKind x = mkPhrase (mkUtt x.name) ;
     PCurrency x = mkPhrase (mkUtt x) ;
-    PPrice x = mkPhrase (mkUtt x) ;
     PLanguage x = mkPhrase (mkUtt x) ;
     PCountry x = mkPhrase (mkUtt x) ;
     PCitizenship x = mkPhrase (mkUtt (mkAP x)) ;
     PDay d = mkPhrase (mkUtt d.name) ;
-    
+    PTransport t = mkPhrase (mkUtt t.name) ;
+    PByTransport t = mkPhrase (mkUtt t) ;
+
     PYes = mkPhrase yes_Utt ;
     PNo = mkPhrase no_Utt ;
+    PYesToNo = mkPhrase yes_Utt ;
 
+    GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_Voc) ;
+
     Is = mkCl ;
+    IsMass m q = mkCl (mkNP m) q ;
 
     SProp = mkS ;
     SPropNot = mkS negativePol ;
@@ -70,6 +92,8 @@
     ObjItem i = i ;
     ObjNumber n k = mkNP n k ;
     ObjIndef k = mkNP a_Quant k ;
+    ObjPlural k = mkNP aPl_Det k ;
+    ObjMass k = mkNP k ;
     ObjAndObj = mkNP and_Conj ;
     OneObj o = o ; 
 
@@ -78,19 +102,22 @@
     These kind = mkNP this_Quant plNum kind ;
     Those kind = mkNP that_Quant plNum kind ;
     The kind = mkNP the_Quant kind ;
-    The kind = mkNP the_Quant kind ;
     Thes kind = mkNP the_Quant plNum kind ;
+    ThisMass kind = mkNP this_Quant kind ;
+    ThatMass kind = mkNP that_Quant kind ;
+    TheMass kind = mkNP the_Quant kind ;
+
     SuchKind quality kind = mkCN quality kind ;
+    SuchMassKind quality kind = mkCN quality kind ;
     Very property = mkAP very_AdA (mkAP property) ;
     Too property = mkAP too_AdA (mkAP property) ;
     PropQuality property = mkAP property ;
-    ThePlace kind =
-      let name : NP = mkNP the_Quant kind.name in {
-        name = name ;
-        at = mkAdv kind.at name ;
-        to = mkAdv kind.to name
-      } ;
 
+    ThePlace kind = let dd = if_then_else Det kind.isPl thePl_Det theSg_Det 
+                     in placeNP dd kind ;
+    APlace kind = let dd = if_then_else Det kind.isPl aPl_Det aSg_Det 
+                     in placeNP dd kind ;
+
     IMale, IFemale = mkPerson i_Pron ;
     YouFamMale, YouFamFemale = mkPerson youSg_Pron ;
     YouPolMale, YouPolFemale = mkPerson youPol_Pron ;
@@ -110,15 +137,27 @@
 
     NNumeral n = mkCard <lin Numeral n : Numeral>  ;
 
-    AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
+    SHave   p obj = mkS (mkCl p.name have_V2 obj) ;
+    SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP aPl_Det k)) ;
+    SHaveNoMass p m = mkS negativePol (mkCl p.name have_V2 (mkNP m)) ;
+    QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
+
+    AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
     ACitizen p n = mkCl p.name n ;
     ABePlace p place = mkCl p.name place.at ;
+    ByTransp t = t.by ;
 
+    AKnowSentence p s = mkCl p.name Lexicon.know_VS s ;
+    AKnowQuestion p s = mkCl p.name Lexicon.know_VQ s ;
+    AKnowPerson p q = mkCl p.name Lexicon.know_V2 q.name ;
+
 oper 
 
 -- These operations are used internally in Sentences.
 
   mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation
+  mkGreeting : Str -> Text = \s -> lin Text (ss s) ; -- no punctuation
+  mkSentence : Utt -> Text = \t -> lin Text (postfixSS "." t | t) ; -- optional .
 
   mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p -> 
     {name = mkNP p ; isPron = True ; poss = mkQuant p} ;
@@ -142,12 +181,27 @@
       } ;
 
   NPPlace : Type = {name : NP ; at : Adv ; to : Adv} ;
-  CNPlace : Type = {name : CN ; at : Prep ; to : Prep} ;
+  CNPlace : Type = {name : CN ; at : Prep ; to : Prep; isPl : Bool} ;
 
   mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
     name = p ;
     at = i ;
-    to = t
+    to = t ;
+    isPl = False
+    } ;
+
+ mkCNPlacePl : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
+    name = p ;
+    at = i ;
+    to = t ;
+    isPl = True
+    } ;
+
+  placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
+    let name : NP = mkNP det kind.name in {
+      name = name ;
+      at = mkAdv kind.at name ;
+      to = mkAdv kind.to name
     } ;
 
   NPPerson : Type = {name : NP ; isPron : Bool ; poss : Quant} ;
diff --git a/examples/phrasebook/SentencesIta.gf b/examples/phrasebook/SentencesIta.gf
--- a/examples/phrasebook/SentencesIta.gf
+++ b/examples/phrasebook/SentencesIta.gf
@@ -1,5 +1,7 @@
 concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
-  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
+  IsMass,
+  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+  mkPerson, Superlative, SHaveNoMass
  ] 
   with 
     (Syntax = SyntaxIta), 
@@ -7,19 +9,48 @@
     (Lexicon = LexiconIta) ** 
   open SyntaxIta, ExtraIta, Prelude in {
 
+    lincat
+     Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
+     Superlative = {s : A ; isPre : Bool} ;
+ 
     lin 
+      IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
+
       IFemale = 
-        {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
+        {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ; 
       YouFamFemale = 
-        {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+        {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ; 
       YouPolFemale = 
-        {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
+        {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron};
       IMale = 
-        {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
+        {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ; 
       YouFamMale = 
-        {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+        {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ; 
       YouPolMale = 
-        {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
+        {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron} ;
+
+      SHaveNoMass p k =  mkS negativePol (mkCl p.name (ComplCN have_V2 k)) ;
+
+    oper
+
+  CNPlace : Type = {name : CN ; at : Prep ; to : Prep }  ;
+
+  mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
+    name = p ;
+    at = i ;
+    to = t ;
+    } ;
+
+  placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
+    let name : NP = mkNP det kind.name in {
+      name = name ;
+      at = mkAdv kind.at name ;
+      to = mkAdv kind.to name
+    } ;
+
+  mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p -> 
+    {name = mkNP p ; isPron = True ; poss = PossFamQuant p} ;
+
 
 }
 
diff --git a/examples/phrasebook/SentencesNor.gf b/examples/phrasebook/SentencesNor.gf
--- a/examples/phrasebook/SentencesNor.gf
+++ b/examples/phrasebook/SentencesNor.gf
@@ -1,4 +1,10 @@
-concrete SentencesNor of Sentences = NumeralNor ** SentencesI with 
+concrete SentencesNor of Sentences = NumeralNor ** SentencesI - [NameNN] with 
   (Syntax = SyntaxNor),
   (Symbolic = SymbolicNor),
-  (Lexicon = LexiconNor) ;
+  (Lexicon = LexiconNor) ** open SyntaxNor, (P = ParadigmsNor) in
+
+{
+
+lin NameNN = mkNP (P.mkPN "NN") ;
+
+}
diff --git a/examples/phrasebook/SentencesPol.gf b/examples/phrasebook/SentencesPol.gf
--- a/examples/phrasebook/SentencesPol.gf
+++ b/examples/phrasebook/SentencesPol.gf
@@ -1,4 +1,52 @@
-concrete SentencesPol of Sentences = NumeralPol ** SentencesI with 
+concrete SentencesPol of Sentences = 
+  NumeralPol ** SentencesI - [
+    Day,PDay,OnDay,Language,PLanguage,Citizenship,
+    PCitizenship,CitiNat,PropCit,ACitizen,
+    Nationality,Transport,PTransport,ByTransp,
+    IFemale,YouFamFemale, YouPolFemale,YouPolMale,
+    IMale, YouFamMale --- AR, for pro drop
+    ] 
+    with 
   (Syntax = SyntaxPol),
   (Symbolic = SymbolicPol),
-  (Lexicon = LexiconPol) ;
+  (Lexicon = LexiconPol) ** 
+  open (N = NounPol),(R = ResPol), (Pron = PronounMorphoPol), (E = ExtraPol), Prelude in {
+    
+  flags  
+    optimize =values ; coding =utf8 ; 
+
+  lincat
+    Day = { name,hab,adv:Str } ;
+    Language = A ;
+    Citizenship = { prop:A; citizenMSg:Str; citizenMPl:Str; citizenF:Str} ;
+    Nationality = { lang: A; prop: A; country: NP; citizenMSg:Str; citizenMPl:Str; citizenF:Str } ;
+    Transport = { cn:CN; verb:Str} ;
+
+  lin
+    PDay d = (ss d.name) ** {lock_Text = <>};
+    OnDay d = (ss d.adv) ** {lock_Adv = <>};
+    PLanguage l = (ss l.pos.s1) ** {lock_Text = <>};    
+    PTransport t = mkPhrase (mkUtt t.cn) ;
+    ByTransp t = { s=t.cn.s!R.Sg!R.Instr; lock_Adv = <>} ;
+    PCitizenship c = mkPhrase (mkUtt (mkAP c.prop)) ;
+    CitiNat n = {prop=n.prop; citizenMSg=n.citizenMSg; citizenMPl=n.citizenMPl; citizenF=n.citizenF};
+    PropCit c = c.prop;
+    ACitizen p n = mkCl p.name {s= case p.name.gn of {
+          R.MascPersSg=>n.citizenMSg; R.FemSg=>n.citizenF; _=>n.citizenMPl
+        };
+         lock_Adv=<>};
+
+--- AR 8/12/2010: using pro drop
+    IMale = mkPerson (E.ProDrop Pron.pronJa);
+    IFemale = mkPerson (E.ProDrop (Pron.pronJaFoo (R.PGen R.Fem)));
+    YouFamMale = mkPerson (E.ProDrop (Pron.pronTy));
+    YouFamFemale = mkPerson (E.ProDrop (Pron.pronTyFoo (R.PGen R.Fem)));
+--    YouPolFemale = mkPerson (E.ProDrop (Pron.pronPani));
+--    YouPolMale = mkPerson (E.ProDrop (Pron.pronPan));
+
+--- original
+---    IFemale = mkPerson (Pron.pronJaFoo (R.PGen R.Fem));
+---    YouFamFemale = mkPerson (Pron.pronTyFoo (R.PGen R.Fem));
+    YouPolFemale = mkPerson (Pron.pronPani);
+    YouPolMale = mkPerson (Pron.pronPan);
+}
diff --git a/examples/phrasebook/SentencesRon.gf b/examples/phrasebook/SentencesRon.gf
--- a/examples/phrasebook/SentencesRon.gf
+++ b/examples/phrasebook/SentencesRon.gf
@@ -1,4 +1,71 @@
-concrete SentencesRon of Sentences = NumeralRon ** SentencesI with 
-  (Syntax = SyntaxRon),
-  (Symbolic = SymbolicRon),
-  (Lexicon = LexiconRon) ;
+
+concrete SentencesRon of Sentences = NumeralRon ** SentencesI - [
+  IsMass,
+  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+  ThePlace, Nationality, CitiNat, Citizenship, ACitizen, PCitizenship, PropCit
+] 
+  with 
+    (Syntax = SyntaxRon), 
+    (Symbolic = SymbolicRon), 
+    (Lexicon = LexiconRon) ** 
+  open SyntaxRon, ExtraRon, (R = ResRon), (P = ParamX), (PR = ParadigmsRon) in {
+
+oper 
+  NPNationalityRon : Type = {lang : NP ; 
+                             country : NP ; 
+                             propObj : A; 
+                             propPers : R.Gender => P.Number => Str};
+  CitizenshipRon : Type = {pers : R.Gender => P.Number => Str; 
+                           prop : A};
+
+
+  mkNPNationalityRon : NP -> NP -> A -> Str -> Str -> Str -> Str -> NPNationalityRon = \la,co,pro, s1,s2,s3,s4 ->
+        {lang = la ; 
+         country = co ;
+         propObj = pro ;
+         propPers = mkCitiPers s1 s2 s3 s4
+        } ;
+ 
+   mkCitizenshipRon : A -> Str -> Str -> Str -> Str -> CitizenshipRon = \aobj, ap1, ap2, ap3, ap4 -> {pers = mkCitiPers ap1 ap2 ap3 ap4; prop = aobj};
+
+   mkCitiPers : Str -> Str -> Str -> Str -> (R.Gender => P.Number => Str) = \francez, franceza, francezi, franceze ->  
+table {R.Masc => table {P.Sg => francez;
+                        P.Pl => francezi};
+ R.Fem => table {P.Sg => franceza;
+                 P.Pl => franceze}};
+
+
+lincat 
+   Nationality = NPNationalityRon ;
+   Citizenship = CitizenshipRon ;   
+
+lin 
+      IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
+
+ IFemale = {name = mkNP i8fem_Pron ; isPron = True ; poss = mkQuant i_Pron} ; 
+ YouFamFemale = {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+ YouPolFemale = {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
+ IMale = {name = mkNP i_Pron ; isPron = True ; poss = mkQuant i_Pron} ; 
+ YouFamMale = {name = mkNP youSg_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ; 
+ YouPolMale = {name = mkNP youPol_Pron ; isPron = True ; poss = mkQuant youPol_Pron} ;
+ ThePlace kind = let name : NP = mkNP the_Quant kind.name ;
+                     condAt : Bool = needIndefPlace kind.name kind.at ;
+                     condTo : Bool = needIndefPlace kind.name kind.to in {
+         name = name ;
+         at = if_then_else Adv condAt (mkAdv kind.at (mkNP the_Art kind.name)) (mkAdv kind.at name);
+         to = if_then_else Adv condTo (mkAdv kind.at (mkNP the_Art kind.name)) (mkAdv kind.to name)
+       } ;
+CitiNat n = {pers = n.propPers; prop = n.propObj} ;
+ACitizen p n = mkCl p.name (PR.mkAdv (n.pers ! (p.name.a.g) ! (p.name.a.n))) ;
+PCitizenship x =  mkPhrase (mkUtt (mkAP x.prop)) ;
+PropCit p = p.prop ;
+
+
+oper needIndefPlace : CN -> Prep -> Bool = \cn,prep -> 
+ case <cn.isComp,prep.needIndef> of
+  {<True,_> => True ;
+   <False,True> => False ;
+    _ => True
+   };
+}
+
diff --git a/examples/phrasebook/SentencesSpa.gf b/examples/phrasebook/SentencesSpa.gf
--- a/examples/phrasebook/SentencesSpa.gf
+++ b/examples/phrasebook/SentencesSpa.gf
@@ -1,13 +1,24 @@
 concrete SentencesSpa of Sentences = NumeralSpa ** SentencesI - [
-  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
+  IsMass,
+  IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+  WherePlace, WherePerson, ABePlace,
+  Superlative
  ] 
   with 
     (Syntax = SyntaxSpa), 
     (Symbolic = SymbolicSpa), 
     (Lexicon = LexiconSpa) ** 
-  open SyntaxSpa, ExtraSpa, Prelude in {
+  open ParadigmsSpa, BeschSpa, SyntaxSpa, ExtraSpa, Prelude in {
 
-    lin 
+flags coding = utf8 ;
+
+    lincat
+      Superlative = OrdSuperlative ; -- {ord: Ord ; isPre: Bool}
+
+    lin
+
+      IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
+
       IFemale = 
         {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ; 
       YouFamFemale = 
@@ -21,6 +32,44 @@
       YouPolMale = 
         {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
 
-}
+      ABePlace p place = mkCl p.name (mkVP (mkVP estar) place.at) ;
 
+      WherePlace place = mkQS (mkQCl where_IAdv (mkCl place.name estar) ) ;
 
+      WherePerson person = mkQS (mkQCl where_IAdv (mkCl person.name estar) ) ;
+
+oper
+
+  estar = mkV (estar_2 "estar") ;
+
+  CNPlace : Type = {name : CN ; at : Prep ; to : Prep }  ;
+
+  mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
+    name = p ;
+    at = i ;
+    to = t ;
+    } ;
+
+  OrdSuperlative : Type = {ord: Ord ; isPre: Bool} ;
+
+  placeNPSuperl : OrdSuperlative -> CNPlace -> NPPlace  = \sup,kind -> case sup.isPre of {
+    True  => placeNPDet sup.ord kind ;
+    False  => placeNPAdj sup.ord kind 
+    } ;
+
+  -- "el mejor aeropuerto"
+  placeNPDet : Ord -> CNPlace -> NPPlace = \ord,kind ->
+    let name : NP = mkNP (mkDet the_Art ord) kind.name in {
+      name = name ;
+      at = SyntaxSpa.mkAdv kind.at name ;
+      to = SyntaxSpa.mkAdv kind.to name ;
+   };
+
+  -- "el aeropuerto más grande"
+  placeNPAdj : Ord -> CNPlace -> NPPlace = \ord,kind ->
+    let name : NP = mkNP the_Art (mkCN kind.name (mkAP ord)) in {
+      name = name ;
+      at = SyntaxSpa.mkAdv kind.at name ;
+      to = SyntaxSpa.mkAdv kind.to name ;
+    };
+}
diff --git a/examples/phrasebook/SentencesSwe.gf b/examples/phrasebook/SentencesSwe.gf
--- a/examples/phrasebook/SentencesSwe.gf
+++ b/examples/phrasebook/SentencesSwe.gf
@@ -1,4 +1,9 @@
-concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI with 
+concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI - [PYesToNo,NameNN] with 
   (Syntax = SyntaxSwe),
   (Symbolic = SymbolicSwe),
-  (Lexicon = LexiconSwe) ;
+  (Lexicon = LexiconSwe) ** open Prelude, SyntaxSwe, (P = ParadigmsSwe) in {
+
+  lin PYesToNo = mkPhrase (lin Utt (ss "jo")) ;
+  lin NameNN = mkNP (P.mkPN "NN") ;
+
+}
diff --git a/examples/phrasebook/Words.gf b/examples/phrasebook/Words.gf
--- a/examples/phrasebook/Words.gf
+++ b/examples/phrasebook/Words.gf
@@ -10,19 +10,19 @@
 -- kinds of items (so far mostly food stuff)
 
     Apple : Kind ;
-    Beer : Kind ;
-    Bread : Kind ; 
-    Cheese : Kind ;
-    Chicken : Kind ; 
-    Coffee : Kind ; 
-    Fish : Kind ; 
-    Meat : Kind ;
-    Milk : Kind ; 
+    Beer : MassKind ;
+    Bread : MassKind ; 
+    Cheese : MassKind ;
+    Chicken : MassKind ; 
+    Coffee : MassKind ; 
+    Fish : MassKind ; 
+    Meat : MassKind ;
+    Milk : MassKind ; 
     Pizza : Kind ; 
-    Salt : Kind ; 
-    Tea : Kind ; 
-    Water : Kind ; 
-    Wine : Kind ;
+    Salt : MassKind ;
+    Tea : MassKind ; 
+    Water : MassKind ; 
+    Wine : MassKind ;
 
 -- properties of kinds (so far mostly of food)
 
@@ -40,41 +40,84 @@
 -- kinds of places
 
     Airport : PlaceKind ;
+    AmusementPark : PlaceKind ;
+    Bank : PlaceKind ;
     Bar : PlaceKind ;
+    Cafeteria : PlaceKind ;
+    Center : PlaceKind ;
     Cinema : PlaceKind ;
     Church : PlaceKind ;
+    Disco : PlaceKind ;
     Hospital : PlaceKind ;
     Hotel : PlaceKind ;
     Museum : PlaceKind ;
     Park : PlaceKind ;
+    Parking : PlaceKind ;
+    Pharmacy : PlaceKind ;
+    PostOffice : PlaceKind ;
+    Pub : PlaceKind ;
     Restaurant : PlaceKind ;
     School : PlaceKind ;
     Shop : PlaceKind ;
     Station : PlaceKind ;
+    Supermarket : PlaceKind ;
     Theatre : PlaceKind ; 
     Toilet : PlaceKind ; 
     University : PlaceKind ;
+    Zoo : PlaceKind ;
+   
+    CitRestaurant : Citizenship -> PlaceKind ;
 
 -- currency units
 
-    DanishCrown : Currency ;
+    DanishCrown : Currency ; 
     Dollar : Currency ; 
-    Euro : Currency ;
-    Lei : Currency ;
+    Euro : Currency ; -- Germany, France, Italy, Finland, Spain, The Netherlands
+    Lei : Currency ; -- Romania
+    Leva : Currency ; -- Bulgaria
+    NorwegianCrown : Currency ;
+    Pound : Currency ; -- UK
+    Rouble : Currency ; -- Russia
     SwedishCrown : Currency ;
+    Zloty : Currency ; -- Poland
 
+  
 -- nationalities, countries, languages, citizenships
 
     Belgian : Citizenship ;
     Belgium : Country ;
+    Bulgarian : Nationality ;
+    Catalan : Nationality ;
+    Danish : Nationality ;
+    Dutch : Nationality ;
     English : Nationality ;
     Finnish : Nationality ;
     Flemish : Language ;
     French : Nationality ;
+    German : Nationality ;
     Italian : Nationality ;
+    Norwegian : Nationality ;
+    Polish : Nationality ;
     Romanian : Nationality ;
+    Russian : Nationality ;
+    Spanish : Nationality ;
     Swedish : Nationality ;
 
+-- means of transportation 
+
+    Bike : Transport ; 
+    Bus : Transport ;
+    Car : Transport ;
+    Ferry : Transport ;
+    Plane : Transport ;
+    Subway : Transport ;
+    Taxi : Transport ;
+    Train : Transport ;
+    Tram : Transport ;
+
+    ByFoot : ByTransport ;
+
+
 -- Actions (which can be expressed by different structures in different languages).
 -- Notice that also negations and questions can be formed from these.
 
@@ -96,7 +139,7 @@
     AThirsty    : Person -> Action ;              -- I am thirsty
     ATired      : Person -> Action ;              -- I am tired
     AUnderstand : Person -> Action ;              -- I (don't) understand
-    AWant       : Person -> Object -> Action ;    -- I want two beers
+    AWant       : Person -> Object -> Action ;    -- I want two apples
     AWantGo     : Person -> Place -> Action ;     -- I want to go to the hospital
 
 -- Miscellaneous phrases. Notice that also negations and questions can be formed from
@@ -114,8 +157,9 @@
     PropOpenDay    : Place -> Day  -> Proposition ;  -- the museum is open on Mondays
     PropClosedDay  : Place -> Day  -> Proposition ;  -- the museum is closed on Mondays
 
-    PSeeYou      : Date -> Phrase ;           -- see you on Monday
-    PSeeYouPlace : Place -> Date -> Phrase ;  -- see you in the bar on Monday
+    PSeeYouPlaceDate : Place -> Date -> Greeting ;   -- see you in the bar on Monday
+    PSeeYouPlace     : Place         -> Greeting ;   -- see you in the bar
+    PSeeYouDate      :          Date -> Greeting ;   -- see you on Monday
 
 -- family relations
 
@@ -128,5 +172,27 @@
     Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday : Day ;
 
     Tomorrow : Date ;
+
+-- transports
+
+    HowFar : Place -> Question ;                  -- how far is the zoo ?
+    HowFarFrom : Place -> Place -> Question ;     -- how far is the center from the hotel ?
+    HowFarFromBy : Place -> Place -> ByTransport -> Question ; 
+                                            -- how far is the airport from the hotel by taxi ? 
+    HowFarBy : Place -> ByTransport -> Question ;   -- how far is the museum by bus ?
+                          
+    WhichTranspPlace : Transport -> Place -> Question ;   -- which bus goes to the hotel
+    IsTranspPlace    : Transport -> Place -> Question ;   -- is there a metro to the airport ?
+
+-- modifiers of places
+
+    TheBest : Superlative ;
+    TheClosest : Superlative ;
+    TheCheapest : Superlative ;
+    TheMostExpensive : Superlative ;
+    TheMostPopular : Superlative ;
+    TheWorst : Superlative ;
+
+    SuperlPlace : Superlative -> PlaceKind -> Place ; -- the best bar
 
 }
diff --git a/examples/phrasebook/WordsBul.gf b/examples/phrasebook/WordsBul.gf
--- a/examples/phrasebook/WordsBul.gf
+++ b/examples/phrasebook/WordsBul.gf
@@ -7,7 +7,8 @@
       ParadigmsBul, 
       (L = LexiconBul), 
       (P = ParadigmsBul), 
-      ExtraBul, 
+      ExtraBul,
+      MorphoFunsBul,
       Prelude in {
    
   flags
@@ -49,21 +50,34 @@
 -- also the directional preposition varies, but in English we use $to$, as
 -- defined by $mkPlace$.
 
-    Airport = mkPlace (mkN066 "летище") "на" ;
-    Bar = mkPlace (mkN042 "бар") "в" ;
-    Church = mkPlace (mkN041 "църква") "в" ;
-    Cinema = mkPlace (mkN054 "кино") "на" ;
-    Hospital = mkPlace (mkN041 "болница") "в" ;
-    Hotel = mkPlace (mkN007 "хотел") "в" ;
-    Museum = mkPlace (mkN032 "музей") "в" ;
-    Park = mkPlace (mkN001 "парк") "в" ;
-    Restaurant = mkPlace (mkN007 "ресторант") "в" ;
-    School = mkPlace (mkN007 "училище") "в" ;
-    Shop = mkPlace (mkN007 "магазин") "в" ;
-    Station = mkPlace (mkN041 "гарата") "на" ;
-    Theatre = mkPlace (mkN009 "театър") "на" ;
-    Toilet = mkPlace (mkN007 "тоалет") "в" ;
-    University = mkPlace (mkN007 "университет") "в" ;
+    Airport = mkPlace (mkN066 "летище") na_Prep ;
+    AmusementPark = mkCompoundPlace (mkA079 "увеселителен") (mkN001 "парк") in_Prep ;
+    Bank = mkPlace (mkN041 "банка") in_Prep ;
+    Bar = mkPlace (mkN001 "бар") in_Prep ;
+    Cafeteria = mkPlace (mkN065 "кафе") in_Prep ;
+    Center = mkPlace (mkN009a "център") in_Prep ;
+    Cinema = mkPlace (mkN054 "кино") na_Prep ;
+    Church = mkPlace (mkN041 "църква") in_Prep ;
+    Disco = mkPlace (mkN041 "дискотека") in_Prep ;
+    Hospital = mkPlace (mkN041 "болница") in_Prep ;
+    Hotel = mkPlace (mkN007 "хотел") in_Prep ;
+    Museum = mkPlace (mkN032 "музей") in_Prep ;
+    Park = mkPlace (mkN001 "парк") in_Prep ;
+    Parking = mkPlace (mkN007 "паркинг") na_Prep ; 
+    Pharmacy = mkPlace (mkN041 "аптека") in_Prep ;
+    PostOffice = mkPlace (mkN041 "поща") in_Prep ;
+    Pub = mkPlace (mkN001 "бар") in_Prep ;
+    Restaurant = mkPlace (mkN007 "ресторант") in_Prep ;
+    School = mkPlace (mkN007 "училище") in_Prep ;
+    Shop = mkPlace (mkN007 "магазин") in_Prep ;
+    Station = mkPlace (mkN041 "гара") na_Prep ;
+    Supermarket = mkPlace (mkN007 "супермаркет") in_Prep ;
+    Theatre = mkPlace (mkN009 "театър") na_Prep ;
+    Toilet = mkPlace (mkN041 "тоалетна") in_Prep ;
+    University = mkPlace (mkN007 "университет") in_Prep ;
+    Zoo = mkPlace (mkN001 "зоопарк") in_Prep ;
+    
+    CitRestaurant cit = mkCNPlace (mkCN cit.s2 (mkN007 "ресторант")) in_Prep to_Prep ;
 
 -- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
 
@@ -71,111 +85,185 @@
     Dollar = mkCN (mkN007 "долар") ;
     Euro = mkCN (mkN054 "евро") ;
     Lei = mkCN (mkN047 "лея") ;
+    Leva = mkCN (mkN001 "лев") ;
+    NorwegianCrown = mkCN (mkA078 "норвежки") (mkN041 "крона") | mkCN (mkN041 "крона") ;
+    Pound = mkCN (mkN007 "паунд") ;
+    Rouble = mkCN (mkN041 "рубла") ;
     SwedishCrown = mkCN (mkA078 "шведски") (mkN041 "крона") | mkCN (mkN041 "крона") ;
+    Zloty = mkCN (mkN041 "злота") ;
 
 -- Nationalities
 
-    Belgian = mkA078 "белгийски" ;
-    -- Belgium = mkNP (mkPN "Белгия" Fem) ;
-    -- English = mkA078 "английски" ;
---    Finnish = mkNat "Finnish" "Finland" ;
---    Flemish = mkNP (mkPN "Flemish") ;
---    French = mkNat "French" "France" ; 
---    Italian = mkNat "Italian" "Italy" ;
---    Romanian = mkNat "Romanian" "Romania" ;
---    Swedish = mkNat "Swedish" "Sweden" ;
+    Belgian = mkCitizenship (mkN013 "белгиец") (mkN041 "белгийка") (mkA078 "белгийски") ;
+    Belgium = mkPN "Белгия" R.Fem ;
+    Bulgarian = mkNat (mkN018 "българин") (mkN041 "българка") (mkA078 "български") (mkPN "България" R.Fem) ;
+    Catalan = mkNat (mkN008a "каталонец") (mkN041 "каталонка") (mkA078 "каталонски") (mkPN "Каталуния" R.Fem) ;
+    Danish = mkNat (mkN018 "датчанин") (mkN041 "датчанка") (mkA078 "датски") (mkPN "Дания" R.Fem) ;
+    Dutch =  mkNat (mkN008a "холандец") (mkN041 "холандка") (mkA078 "холандски") (mkPN "Холандия" R.Fem) ;
+    English =  mkNat (mkN018 "англичанин") (mkN041 "англичанка") (mkA078 "английски") (mkPN "Англия" R.Fem) ;
+    Finnish = mkNat (mkN008a "финландец") (mkN041 "финландка") (mkA078 "финландски") (mkPN "Финландия" R.Fem) ;
+    Flemish = mkA078 "фламандски" ;
+    French = mkNat (mkN018 "французин") (mkN041 "французойка") (mkA078 "френски") (mkPN "Франция" R.Fem) ;
+    German = mkNat (mkN008a "германец") (mkN041 "германка") (mkA078 "немски") (mkPN "Германия" R.Fem) ;
+    Italian = mkNat (mkN008a "италианец") (mkN041 "италианка") (mkA078 "италиански") (mkPN "Италия" R.Fem) ;
+    Norwegian = mkNat (mkN008a "норвежец") (mkN041 "норвежка") (mkA078 "норвежки") (mkPN "Норвегия" R.Fem) ;
+    Polish = mkNat (mkN014 "поляк") (mkN047 "полякиня") (mkA078 "полски") (mkPN "Полша" R.Fem) ;
+    Romanian = mkNat (mkN008a "румънец") (mkN041 "румънка") (mkA078 "румънски") (mkPN "Румъния" R.Fem) ;
+    Russian = mkNat (mkN014 "руснак") (mkN047 "рускиня") (mkA078 "руски") (mkPN "Русия" R.Fem) ;
+    Swedish = mkNat (mkN007 "швед") (mkN041 "шведка") (mkA078 "шведски") (mkPN "Швеция" R.Fem) ;
+    Spanish = mkNat (mkN008a "испанец") (mkN041 "испанка") (mkA078 "испански") (mkPN "Испания" R.Fem) ;
 
+-- Means of transportation 
+
+    Bike = mkTransport L.bike_N ;
+    Bus = mkTransport (mkN007 "автобус") ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN007 "ферибот") ;
+    Plane = mkTransport (mkN007 "самолет") ;
+    Subway = mkTransport (mkN054 "метро") ;
+    Taxi = mkTransport (mkN073 "такси") ;
+    Train = mkTransport (mkN001 "влак") ;
+    Tram = mkTransport (mkN032 "трамвай") ;
+
+    ByFoot = P.mkAdv "пеша" ;
+
 -- Actions: the predication patterns are very often language-dependent.
 
-    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+    AHasAge p num = mkCl p.name (SyntaxBul.mkAdv na_Prep (mkNP num L.year_N)) ;
     AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "room")) (SyntaxBul.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "table")) (SyntaxBul.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasName p name = mkCl (nameOf p) name ;
---    AHungry p = mkCl p.name (mkA "hungry") ;
---    AIll p = mkCl p.name (mkA "ill") ;
---    AKnow p = mkCl p.name IrregBul.know_V ;
---    ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxBul.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
---    AMarried p = mkCl p.name (mkA "married") ;
---    AReady p = mkCl p.name (mkA "ready") ;
---    AScared p = mkCl p.name (mkA "scared") ;
---    ASpeak p lang = mkCl p.name  (mkV2 IrregBul.speak_V) lang ;
---    AThirsty p = mkCl p.name (mkA "thirsty") ;
---    ATired p = mkCl p.name (mkA "tired") ;
---    AUnderstand p = mkCl p.name IrregBul.understand_V ;
---    AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregBul.go_V) place.to) ;
+    AHasRoom p num = mkCl p.name have_V2 (mkNP (mkNP a_Det (mkN047 "стая")) (SyntaxBul.mkAdv (mkPrep "за" R.Acc) (mkNP num (mkN014 "човек")))) ;
+    AHasTable p num = mkCl p.name have_V2 (mkNP (mkNP a_Det (mkN041 "маса")) (SyntaxBul.mkAdv (mkPrep "за" R.Acc) (mkNP num (mkN014 "човек")))) ;
+    AHasName p name = mkCl p.name (dirV2 (medialV (actionV (mkV186 "казвам") (mkV156 "кажа")) R.Acc)) name ;
+    AHungry p = mkCl p.name (mkA079 "гладен") ;
+    AIll p = mkCl p.name (mkA079 "болен") ;
+    AKnow p = mkCl p.name (actionV (mkV186 "знам") (mkV162 "зная")) ;
+    ALike p item = mkCl p.name (dirV2 (actionV (mkV186 "харесвам") (mkV186 "харесам"))) item ;
+    ALive p co = mkCl p.name (mkVP (mkVP (stateV (mkV160 "живея"))) (SyntaxBul.mkAdv in_Prep (mkNP co))) ;
+    ALove p q = mkCl p.name (dirV2 (actionV (mkV186 "обичам") (mkV152 "обикна"))) q.name ;
+    AMarried p = mkCl p.name (mkA076 (case p.name.a.gn of {
+                                        R.GSg R.Fem => "омъжен" ;
+                                        _           => "женен"
+                                      })) ;
+    AReady p = mkCl p.name (mkA076 "готов") ;
+    AScared p = mkCl p.name (mkA076 "уплашен") ;
+    ASpeak p lang = mkCl p.name (dirV2 (stateV (mkV173 "говоря"))) (mkNP (adj2noun lang)) ;
+    AThirsty p = mkCl p.name (mkA079 "жаден") ;
+    ATired p = mkCl p.name (mkA076 "уморен") ;
+    AUnderstand p = mkCl p.name (actionV (mkV186 "разбирам") (mkV170 "разбера")) ;
+    AWant p obj = mkCl p.name (dirV2 (stateV (mkV186 "искам"))) obj ;
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (actionV (mkV186 "отивам") (mkV146 "отида"))) place.to) ;
 
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregBul.cost_V)) ; 
---    ItCost item price = mkCl item (mkV2 IrregBul.cost_V) price ;
+    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (medialV (actionV (mkV186 "казвам") (mkV156 "кажа")) R.Acc))) ;
+    QWhatAge p = mkQS (mkQCl (MorphoFunsBul.mkIAdv "на колко") (mkCl p.name (mkNP a_Quant plNum L.year_N))) ;
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (stateV (mkV186 "струвам")))) ; 
+    ItCost item price = mkCl item (dirV2 (stateV (mkV186 "струвам"))) price ;
 
---    PropOpen p = mkCl p.name open_Adv ;
---    PropClosed p = mkCl p.name closed_Adv ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ; 
+    PropOpen p = mkCl p.name open_AP ;
+    PropClosed p = mkCl p.name closed_AP ;
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_AP) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_AP) d) ; 
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_AP) d.habitual) ;
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_AP) d.habitual) ;
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("see you"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("ще се видим"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("ще се видим"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d =
+      mkText (lin Text (ss ("ще се видим"))) 
+        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
 
---    Wife = xOf sing (mkN "wife") ;
---    Husband = xOf sing (mkN "husband") ;
---    Son = xOf sing (mkN "son") ;
---    Daughter = xOf sing (mkN "daughter") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (mkN041 "съпруга") ;
+    Husband = xOf sing (mkN015 "съпруг") ;
+    Son = xOf sing (mkN018 "син") ;
+    Daughter = xOf sing (mkN047 "дъщеря") ;
+    Children = xOf plur L.child_N ;
 
 -- week days
 
---    Monday = mkDay "Monday" ;
---    Tuesday = mkDay "Tuesday" ;
---    Wednesday = mkDay "Wednesday" ;
---    Thursday = mkDay "Thursday" ;
---    Friday = mkDay "Friday" ;
---    Saturday = mkDay "Saturday" ;
---    Sunday = mkDay "Sunday" ;
+    Monday = mkDay (mkN014 "понеделник") ;
+    Tuesday = mkDay (mkN014 "вторник") ;
+    Wednesday = mkDay (mkN043 "сряда") ;
+    Thursday = mkDay (mkN014 "четвъртък") ;
+    Friday = mkDay (mkN014 "петък") ;
+    Saturday = mkDay (mkN041 "събота") ;
+    Sunday = mkDay (mkN047 "неделя") ;
  
---    Tomorrow = P.mkAdv "tomorrow" ;
+    Tomorrow = P.mkAdv "утре" ;
 
+-- modifiers of places
+
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA076 "евтин") ;
+    TheMostExpensive = mkSuperl (mkA076 "скъп") ;
+    TheMostPopular = mkSuperl (mkA079 "известен") ;
+    TheWorst = mkSuperl L.bad_A ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
+
+-- transports
+
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ;
+    HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxBul.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxBul.mkAdv from_Prep x.name)) t)) ;
+    HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
+
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
 -- auxiliaries
 
   oper
+    mkCitizenship : N -> N -> A -> Citizenship
+                  = \male, female, adj -> lin Citizenship {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj} ;
 
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+    mkNat : N -> N -> A -> PN -> Nationality
+          = \male, female, adj, country -> lin Nationality {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj; s3 = country} ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxBul.mkAdv on_Prep day) 
---        (SyntaxBul.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+    mkDay : N -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+      let day    : NP   = mkNP d ;
+      in mkNPDay day
+                 (SyntaxBul.mkAdv in_Prep day) 
+                 (SyntaxBul.mkAdv in_Prep (mkNP the_Quant plNum (mkCN d))) ;
 
-    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
-      mkCNPlace (mkCN p) (P.mkPrep i R.Acc) to_Prep ;
+    mkCompoundPlace : A -> N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \a, n, p ->
+     mkCNPlace (mkCN a n) p to_Prep ;
 
---    open_Adv = P.mkAdv "open" ;
---    closed_Adv = P.mkAdv "closed" ;
+    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n,p -> 
+      mkCNPlace (mkCN n) p to_Prep ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+    open_AP = mkAP (mkA076 "отворен") ;
+    closed_AP = mkAP (mkA076 "затворен") ;
 
---    nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
+      relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxBul.mkAdv (mkPrep "" R.Dat) b)) p ;
 
+    adj2noun : A -> N ;
+    adj2noun a = let g = R.AMasc R.NonHuman
+                 in lin N {s = \\nf => a.s ! R.nform2aform nf g; g = g} ;
+
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxBul.mkAdv with_Prep (mkNP n)
+      } ;
+
+    mkSuperl : A -> Det = \a -> SyntaxBul.mkDet the_Art (SyntaxBul.mkOrd a) ;
+
+    far_IAdv = ExtraBul.IAdvAdv (ss "далече") ;
+    
+    na_Prep = mkPrep "на" R.Acc ;
 
 }
diff --git a/examples/phrasebook/WordsCat.gf b/examples/phrasebook/WordsCat.gf
--- a/examples/phrasebook/WordsCat.gf
+++ b/examples/phrasebook/WordsCat.gf
@@ -6,6 +6,7 @@
   (E = ExtraCat),
   (L = LexiconCat),
   (P = ParadigmsCat), 
+  (S = SyntaxCat),
   ParadigmsCat,
   Prelude in {
 
@@ -16,159 +17,261 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "formaggio") ;
---    Chicken = mkCN (mkN "pollo") ;
---    Coffee = mkCN (mkN "caffè") ;
+    Cheese = mkCN (mkN "formatge") ;
+    Chicken = mkCN (mkN "pollastre") ;
+    Coffee = mkCN (mkN "cafè") ;
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "carne" feminine) ;
+    Meat = mkCN (mkN "carn" feminine) ;
     Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Pizza = mkCN (mkN "pizza") ;
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "tè") ;
+    Tea = mkCN (mkN "te") ;
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
 -- properties
 
     Bad = L.bad_A ;
---    Boring = mkA "noioso" ;
---    Cheap = let c = "a buon mercato" in mkA c c c c c ; ----
+    Boring = mkA "avorrit" "avorrida" "avorrits" "avorrides" "avorridament" ;
+    Cheap = cheap_A ; 
     Cold = L.cold_A ;
---    Delicious = mkA "delizioso" ;
---    Expensive = mkA "caro" ;
---    Fresh = mkA "fresco" ;
+    Delicious = mkA "deliciós" "deliciosa" "deliciosos" "delicioses" "deliciosament";
+    Expensive = expensive_A ; 
+    Fresh = mkA "fresc" ;
     Good = L.good_A ;
+    Suspect = mkA "sospitós" ;
     Warm = L.warm_A ;
---    Suspect = mkA "sospetto" ;
 
 -- places
 
---    Airport = mkPlace (mkN "aeroporto") dative ;
---    Bar = mkPlace (mkN "bar") P.in_Prep ;
---    Church = mkPlace (mkN "chiesa") P.in_Prep ;
---    Cinema = mkPlace (mkN "cinema") P.in_Prep ;
---    Hospital = mkPlace (mkN "ospedale") P.in_Prep ;
---    Hotel = mkPlace (mkN "albergo") P.in_Prep ;
---    Museum = mkPlace (mkN "museo") P.in_Prep ;
---    Park = mkPlace (mkN "parco") P.in_Prep ;
---    Restaurant = mkPlace (mkN "ristorante") P.in_Prep ;
---    School = mkPlace (mkN "scuola") P.in_Prep ;
---    Shop = mkPlace (mkN "negozio") P.in_Prep ;
---    Station = mkPlace (mkN "stazione" feminine) dative ;
---    Theatre = mkPlace (mkN "teatro") P.in_Prep ;
---    Toilet = mkPlace (mkN "bagno") P.in_Prep ;
---    University = mkPlace (mkN "università") dative ;
+lin
+    Airport = mkPlace (mkN "aeroport") ;
+    AmusementPark = mkPlace (mkN "parc d' atraccions") ;
+	Bank = mkPlace (mkN "banc") ;
+    Bar = mkPlace (mkN "bar") ;
+    Cafeteria = mkPlace (mkN "cafeteria") ;
+    Center = mkPlace (mkN "centre") ;
+    Cinema = mkPlace (mkN "cinema" masculine) ;
+    Church = mkPlace (mkN "església")  ;
+    Disco = mkPlace (mkN "discoteca") ;
+    Hospital = mkPlace (mkN "hospital")  ;
+    Hotel = mkPlace (mkN "alberg")  ;
+    Museum = mkPlace (mkN "museu")  ;
+    Park = mkPlace (mkN "parc") ;
+    Parking = mkPlace (mkN "pàrking" masculine) ;
+    Pharmacy = mkPlace (mkN "farmàcia") ;
+	PostOffice = mkPlace (mkN "oficina de correus" feminine) ;
+    Pub = mkPlace (mkN "pub" masculine) ;
+    Restaurant = mkPlace (mkN "restaurant") ;
+    School = mkPlace (mkN "escola") ;
+    Shop = mkPlace (mkN "tenda") ;
+    Station = mkPlace (mkN "estació" feminine)  ;
+    Supermarket = mkPlace (mkN "supermercat" masculine) ;
+    Theatre = mkPlace (mkN "teatre")  ;
+    Toilet = mkPlace (mkN "lavabo")  ;
+    University = mkPlace (mkN "universitat" feminine) ;
+    Zoo = mkPlace (mkN "zoo" masculine) ;
 
--- currencies
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) dative dative ;
 
---    DanishCrown = mkCN (mkA "danese") (mkN "corona") | mkCN (mkN "corona") ;
---    Dollar = mkCN (mkN "dollar") ;
---    Euro = mkCN (mkN "euro" "euro" masculine) ;
---    Lei = mkCN (mkN "lei") ; ---- ?
---    SwedishCrown = mkCN (mkA "svedese") (mkN "corona") | mkCN (mkN "corona") ;
+-- currencies
+oper corona : A -> CN = \adj -> 
+	  let corona_N = (mkN "corona")
+	  in mkCN adj corona_N | mkCN corona_N ;
+lin
+    DanishCrown = corona (mkA "danès" "danesa" "danesos" "daneses" "a la danesa") ; 
+    Dollar = mkCN (mkN "dollar") ;
+  	Euro = mkCN (mkN "euro" masculine) ;
+    Lei = mkCN (mkN "leu" "lei" masculine) ;
+	Leva = mkCN (mkN "lev" "lev" masculine) ; 
+	NorwegianCrown = corona (mkA "noruec" "noruega" "noruecs" "noruegues" "a la noruega") ;
+	Pound = mkCN (mkN "lliura") ;
+	Rouble = mkCN (mkN "ruble") ;
+    SwedishCrown = corona (mkA "suec" "sueca" "suecs" "sueques" "a la sueca") ;
+	Zloty = mkCN (mkN "zloty" "zloty" masculine) ;
 
 -- nationalities
 
---    Belgian = mkA "belgo" ;
---    Belgium = mkNP (mkPN "Belgio") ;
---    English = mkNat "inglese" "Inghilterra" ;
---    Finnish = mkNat "finlandese" "Finlandia" ;
---    Flemish = mkNP (mkPN "fiammingo") ;
---    French = mkNat "francese" "Francia" ; 
---    Italian = mkNat "italiano" "Italia" ;
---    Romanian = mkNat "rumeno" "Romania" ;
---    Swedish = mkNat "svedese" "Svezia" ;
+    Belgian = mkA "belga" ;
+    Belgium = mkNP (mkPN "Bèlgica") ;
+	Bulgarian = mkNat "búlgar" "Bulgària" ;
+	Catalan = mkNat "català" "Catalunya" ; -- "catalana" "catalans" "catalanes" "a la catalana" ;
+	Danish = mkNat "danès" "Dinamarca" ; -- mkA "danès" "danesa" "danesos" "daneses" "a la danesa" ;
+	Dutch = mkNat "holandès" "Holanda" ; 
+    English = mkNat "anglès" "Anglaterra" ;
+    Finnish = mkNat "finès" "Finlàndia" ;
+    Flemish = mkNP (mkPN "flamenc") ;
+    French = mkNat "francès" "França" ;
+    German = mkNat "alemany" "Alemania" ;
+    Italian = mkNat "italià" "Itàlia" ;
+    Norwegian = mkNat "noruec" "Noruega" ; -- mkA "noruec" "noruega" "noruecs" "noruegues" "a la noruega" ;
+    Polish = mkNat "polonès" "Polònia" ; 
+    Romanian = mkNat "romanès" "Romania" ;
+    Russian = mkNat "rus" "Rússia" ;
+    Spanish = mkNat "espanyol" "Espanya" ;
+    Swedish = mkNat "suec" "Suècia" ;
 
+
+-- means of transportation 
+
+    Bike = mkTransport (mkN "bici" feminine) ; 
+    Bus = mkTransport (mkN "autobús" "autobusos" masculine) ; 
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN "ferri" masculine) ;
+    Plane = mkTransport L.airplane_N ;
+    Subway = mkTransport (mkN "metro") ;
+    Taxi = mkTransport (mkN "taxi" masculine) ;
+    Train = mkTransport (mkN "tren" masculine) ;
+    Tram = mkTransport (mkN "tramvia" masculine) ;
+
+    ByFoot = P.mkAdv "a peu" ;
+
 -- actions
 
---    AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
+    AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
     AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "camera")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "tavolo")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
---    AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ;
---    AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ;
---    AIll p = mkCl p.name (mkA "malato") ;
---    AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ;
---    ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ;
---    ALive p co = 
---      mkCl p.name (mkVP (mkVP (mkV "abitare")) (SyntaxCat.mkAdv P.in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ;
---    AMarried p = mkCl p.name (mkA "sposato") ;
---    AReady p = mkCl p.name (mkA "pronto") ;
---    AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ;
---    ASpeak p lang = mkCl p.name  (mkV2 (mkV "parlare")) lang ;
---    AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ;
---    ATired p = mkCl p.name (mkA "stanco") ;
---    AUnderstand p = mkCl p.name (mkV "capire") ;
---    AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
+    AHasName p name =
+       let dir = mkV (dir_41 "dir")
+       in mkCl p.name (mkV2 (reflV dir)) name ;
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "habitació" feminine)) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "taula")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+    AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "gana" feminine))) ;
+    AIll p = mkCl p.name (mkA "malalt") ;
+    AKnow p =
+      let saber = mkV (saber_99 "saber")
+      in mkCl p.name saber ;
+    ALike p item = mkCl item (mkV2 (mkV "agradar") dative) p.name ;
+    ALive p co =
+      let viure = mkV (viure_119 "viure")
+      in mkCl p.name (mkVP (mkVP viure) (SyntaxCat.mkAdv in_Prep co)) ;
+    ALove p q = mkCl p.name (mkV2 (mkV "estimar")) q.name ;
+    AMarried p = mkCl p.name (mkA "casat") ;
+    AReady p =
+      let ap = "a punt"
+      in mkCl p.name (mkA ap ap ap ap ap) ;
+    AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "por" feminine))) ;
+    ASpeak p lang = mkCl p.name  (mkV2 (mkV "parlar")) lang ;
+    AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "set" feminine))) ;
+    ATired p = mkCl p.name (mkA "cansat") ;
+    AUnderstand p = mkCl p.name (mkV "entendre") ;
+    AWant p obj = 
+      let voler = mkV (voler_120 "voler")
+      in mkCl p.name (mkV2 voler) obj ;
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
 
 
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ;
---    QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
+    QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
+    QWhatName p =
+       let dir = mkV (dir_41 "dir")
+       in  mkQS (mkQCl how_IAdv (mkCl p.name (reflV dir))) ;
+    HowMuchCost item = 
+      let valer = mkV (valer_114 "valer")
+      in  mkQS (mkQCl how8much_IAdv (mkCl item valer)) ; 
+    ItCost item price = 
+      let valer = mkV (valer_114 "valer")
+      in mkCl item (mkV2 valer) price ;
+    PropOpen p = mkCl p.name open_A ;
+    PropClosed p = mkCl p.name closed_A ;
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+	PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("a reveure"))) 
+      (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt p.at)) ;
+--  PSeeYou d = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouDate d = mkText (lin Text (ss ("a reveure"))) (mkPhrase (mkUtt d)) ;
 
---    PropOpen p = mkCl p.name open_A ;
---    PropClosed p = mkCl p.name closed_A ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+-- family relations
 
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; 
---    ItCost item price = mkCl item (mkV2 (mkV "costare")) price ;
+    Wife = xOf sing (mkN "dona") ;
+    Husband = xOf sing (mkN "home") ;
+    Son = xOf sing (mkN "fill") ;
+    Daughter = xOf sing (mkN "filla") ;
+    Children = xOf plur L.child_N ;
 
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
+-- week days
 
---    PSeeYou d = mkText (lin Text (ss ("arrivederci"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("arrivederci"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    Monday = mkDay "dilluns" ;
+    Tuesday = mkDay "dimarts" ;
+    Wednesday = mkDay "dimecres" ;
+    Thursday = mkDay "dijous" ;
+    Friday = mkDay "divendres" ;
+    Saturday = mkDay "dissabte" ;
+    Sunday = mkDay "diumenge" ;
 
--- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
--- below. Languages with productive genitives can use an equivalent of
--- "my son's wife" for non-pronouns, as e.g. in English.
+    Tomorrow = P.mkAdv "demà" ;
 
---    Wife = xOf sing (mkN "sposa") ;
---    Husband = xOf sing (mkN "marito") ;
---    Son = xOf sing (mkN "figlio") ;
---    Daughter = xOf sing (mkN "figlia") ;
---    Children = xOf plur L.child_N ;
 
--- week days
+-- transports
 
---    Monday = mkDay "lunedì" ;
---    Tuesday = mkDay "martedì" ;
---    Wednesday = mkDay "mercoledì" ;
---    Thursday = mkDay "giovedì" ;
---    Friday = mkDay "venerdì" ;
---    Saturday = mkDay "sabato" ;
---    Sunday = mkDay "domenica" ;
+   HowFar place = mkQS (mkQCl far_IP place.name placeCopula) ;
+   HowFarFrom x y = mkQS (mkQCl (mkIP far_IP (S.mkAdv from_Prep x.name)) y.name placeCopula) ; 
+   HowFarFromBy x y t = mkQS (mkQCl how8much_IAdv
+      (mkCl (mkVP (mkVP (mkVP (mkVP (mkV "durar")) (S.mkAdv desde_Prep x.name)) (S.mkAdv fins_Prep y.name)) t ))) ;
+   HowFarBy y t = mkQS (mkQCl how8much_IAdv 
+      (mkCl (mkVP (mkVP (mkVP (mkV "durar")) (S.mkAdv fins_Prep y.name)) t ))) ;
+   WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+   IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxCat.mkAdv for_Prep place.name)))) ;
 
---    Tomorrow = P.mkAdv "domani" ;
+-- modifiers of places
+    TheBest = mkSuperl L.good_A True ;
+	TheClosest = mkSuperl L.near_A False; 
+    TheCheapest = mkSuperl cheap_A False ;
+    TheMostExpensive = mkSuperl expensive_A False ;
+    TheMostPopular = mkSuperl (mkA "popular") False ;
+    TheWorst = mkSuperl L.bad_A True ;
+    SuperlPlace sup p = placeNPSuperl sup p ;
 
 -- auxiliaries
 
---  oper
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+  oper
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in
---      mkNPDay day (P.mkAdv ("il" ++ d)) (P.mkAdv ("il" ++ d)) ; ---- ?
+  mkSuperl : A -> Bool -> OrdSuperlative = \a,bool ->
+    let ord : Ord = S.mkOrd a in {
+      ord = ord ;
+      isPre = bool ;
+    } ;
 
---    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
---      mkCNPlace (mkCN p) i dative ;
+	desde_Prep = mkPrep "des de" ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
+    fins_Prep = mkPrep "fins a" ;
 
---    open_A = mkA "aperto" ;
---    closed_A = mkA "chiuso" ;
+	far_IP = mkIP whatSg_IP (S.mkAdv (P.mkAdA "tan") (P.mkAdv "lluny")) ; 
+	
+    placeCopula = mkV2 (mkV (estar_54 "estar")) ; 
 
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
 
---}
+    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+      let day = mkNP (mkPN d)
+      in mkNPDay day (P.mkAdv ("el" ++ d)) (P.mkAdv ("el" ++ d)) ; ---- ?
+
+    mkPlace : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p ->
+      mkCNPlace (mkCN p) dative dative ;
+
+	 mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+	      name = mkCN n ; 
+	      by = S.mkAdv with_Prep (mkNP n)
+	      } ;
+
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
+
+    open_A = mkA "obert" ;
+
+    closed_A = mkA "tancat" ;
+
+	cheap_A = mkA "barat" ; 
+
+	expensive_A = mkA "car" ;
 }
+
+
diff --git a/examples/phrasebook/WordsDan.gf b/examples/phrasebook/WordsDan.gf
--- a/examples/phrasebook/WordsDan.gf
+++ b/examples/phrasebook/WordsDan.gf
@@ -1,7 +1,7 @@
 -- (c) 2009 Aarne Ranta under LGPL
 
 concrete WordsDan of Words = SentencesDan ** 
-    open SyntaxDan, ParadigmsDan, IrregDan, (L = LexiconDan), ExtraDan, Prelude in {
+    open SyntaxDan, ParadigmsDan, IrregDan, (L = LexiconDan), ExtraDan, StructuralDan, Prelude in {
 
   lin
 
@@ -10,158 +10,250 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "ost") ;
---    Chicken = mkCN (mkN "kyckling") ;
---    Coffee = mkCN (mkN "kaffe" neutrum) ;
+    Cheese = mkCN (mkN "ost" "osten" "oste" "ostene") ;
+    Chicken = mkCN (mkN "kylling" "kyllingen" "kyllinger" "kyllingerne") ;
+    Coffee = mkCN (mkN "kaffe" "kaffen" "kaffe" "kaffe") ; -- den kaffe 
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "kött" "kött") ;
+    Meat = mkCN (mkN "kød" "kødet" "kød" "kødet") ;
     Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Pizza = mkCN (mkN "pizza" "pizzaen" "pizzaer" "pizzaerne") ; -- den pizza
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "te" neutrum) ;
+    Tea = mkCN (mkN "te" "teen" "teer" "teerne") ; -- den te 
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
 -- properties
 
     Bad = L.bad_A ;
---    Cheap = mkA "billig" ;
---    Boring = mkA "tråkig" ;
+    Cheap = mkA "billig" ;
+    Boring = mkA "kedelig" ;
     Cold = L.cold_A ;
---    Delicious = mkA "läcker" ;
---    Expensive = mkA "dyr" ;
---    Fresh = mkA "färsk" ;
+    Delicious = mkA "lækker" ;
+    Expensive = mkA "dyr" ; -- or dyrt
+    Fresh = mkA "frisk" ;
     Good = L.good_A ;
---    Suspect = mkA "suspekt" "suspekt" ;
+    Suspect = mkA "mistænkelig" ;
     Warm = L.warm_A ;
 
 -- places
 
---    Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ;
---    Bar = mkPlace (mkN "bar" "barer") "i" ;
---    Church = mkPlace (mkN "kyrka") "i" ;
---    Cinema = mkPlace (mkN "bio" "bio" "bion" "biona") "på" ; ---- ?
---    Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ;
---    Hotel = mkPlace (mkN "hotell" "hotell") "på" ;
---    Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ;
---    Park = mkPlace (mkN "park" "parker") "i" ;
---    Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ;
---    Shop = mkPlace (mkN "affär" "affär") "i" ;
---    School = mkPlace (mkN "skola") "på" ;
---    Station = mkPlace (mkN "station" "stationer") "på" ;
---    Theatre = mkPlace (mkN "teater" "teatrar") "på" ;
---    Toilet = mkPlace (mkN "toalett" "toaletter") "på" ;
---    University = mkPlace (mkN "universitet" "universitet") "på" ;
 
+    Airport = mkPlace (mkN "lufthavnen" "lufthavnen" "lufthavne" "lufthavnene") "i" ;
+    AmusementPark = mkPlace (mkN "forlystelsespark" "forlystelsesparken" "forlystelsesparker" "forlystelsesparker") "i" ;
+    Bank = mkPlace (mkN "bank" "banken" "banke" "bankene") "i" ;
+    Bar = mkPlace (mkN "bar" "baren" "barer" "barerne") "i" ;
+    Cafeteria = mkPlace (mkN "cafeteria" "cafeteriet" "cafeterier" "cafeterierne") "i" ;
+    Center = mkPlace (mkN "centrum" "centrum" "centrummer" "centrummerne")  "i" ; -- all centrum ?
+    Cinema = mkPlace (mkN "biograf" "biografen" "biografer" "biograferne") "i" ;
+    Church = mkPlace (mkN "kirke" "kirken" "kirker" "kirkerne") "i" ; 
+    Disco = mkPlace (mkN "diskotek" "diskoteket" "diskoteker" "diskotekerne") "på" ;
+    Hospital = mkPlace (mkN "hospital" "hospitalet" "hospitaler" "hospitalerne") "på" ;
+
+    Hotel = mkPlace (mkN "hotel" "hotellet" "hoteller" "hotellerne") "på" ;
+    Museum = mkPlace (mkN "museum" "museet" "museer" "museerne") "på" ;
+    Park = mkPlace (mkN "park" "parken" "parker" "parkerne") "i" ;
+    Parking = mkPlace (mkN "parkeringsplads" "parkeringspladsen" "parkeringspladser" "parkeringspladserne") "på" ;
+    Pharmacy = mkPlace (mkN "apotek" "apoteket" "apoteker" "apotekerne") "på" ;
+    PostOffice = mkPlace (mkN "posthus" "posthuset" "posthuse" "posthusene") "på" ;
+    Pub = mkPlace (mkN "pub" "pubben" "pubber" "pubber") "på" ;
+    Restaurant = mkPlace (mkN "restaurant" "restauranten" "restauranter" "restauranterne") "på" ;
+    School = mkPlace (mkN "skole" "skolen" "skoler" "skolerne") "i" ;
+    Shop = mkPlace (mkN "butik" "butikken" "butikker" "butikkerne") "i" ;
+    Station = mkPlace (mkN "station" "stationen" "stationer" "stationerne") "på" ;
+    Supermarket = mkPlace (mkN "supermarked" "supermarkedet" "supermarkeder" "supermarkederne") "i" ;
+    Theatre = mkPlace (mkN "teater" "teatret" "teatre" "teatrene") "i" ;
+    Toilet = mkPlace (mkN "toilet" "toilettet" "toiletter" "toiletterne") "på" ;
+    University = mkPlace (mkN "universitet" "universitetet" "universiteter" "universiteterne") "på" ;
+    Zoo = mkCNPlace (mkCN (mkA "zoologisk") (mkN "have")) in_Prep to_Prep ;
+
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) (mkPrep "på") to_Prep ;
+
 -- currencies
 
---    DanishCrown = mkCN (mkA "dansk") (mkN "krona") | mkCN (mkN "krona") ;
---    Dollar = mkCN (mkN "dollar" "dollar") ;
---    Euro = mkCN (mkN "euro" "euro") ;
---    Lei = mkCN (mkN "lei" "lei") ;
---    SwedishCrown = mkCN (mkA "svensk") (mkN "krona") | mkCN (mkN "krona") ;
+    DanishCrown = mkCN (mkA "dansk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
+    Dollar = mkCN (mkN "dollar" "dollaren" "dollar" "dollar") ; -- den dollar 
+    Euro = mkCN (mkN "euro" "euroen" "euro" "euroerne") ; -- den euro 
+    Lei = mkCN (mkN "leu" "leu" "lei" "lei") ; -- det leis ?
+    Leva = mkCN (mkN "lev" "lev" "leva" "leva") ; -- det leva ?
+    NorwegianCrown = mkCN (mkA "norsk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
+    Pound = mkCN (mkN "pund" "pundet" "pund" "pundene") ; -- det pund 
+    Rouble = mkCN (mkN "rubel" "rublen" "rubler" "rublerne") ; -- den rubel 
+    SwedishCrown = mkCN (mkA "svensk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
+    Zloty = mkCN (mkN "zloty" "zloty" "zloty" "zloty") ; -- det zloty ?
 
 -- nationalities
 
---    Belgian = mkA "belgisk" ;
---    Belgium = mkNP (mkPN "Belgien") ;
---    English = mkNat "engelsk" "England" ;
---    Finnish = mkNat "finsk" "Finland" ;
---    Flemish = mkNP (mkPN "flamländska") ;
---    French = mkNat "fransk" "Frankrike" ; 
---    Italian = mkNat "italiensk" "Italien" ;
---    Romanian = mkNat "rumänsk" "Rumänien" ;
---    Swedish = mkNat "svensk" "Sverige" ;
 
+    Belgian = mkA "belgisk" ;
+    Belgium = mkNP (mkPN "Belgien") ;
+    Bulgarian = mkNat "bulgarsk" "Bulgarien" ;
+    Catalan = mkNPNationality (mkNP (mkPN "catalansk")) (mkNP (mkPN "Catalonien")) (mkA "catalonsk") ;
+    Danish = mkNat "dansk" "Danmark" ;
+    Dutch =  mkNat "hollandsk" "Holland" ;
+    English = mkNat "engelsk" "England" ;
+    Finnish = mkNat "finsk" "Finland" ;
+    Flemish = mkNP (mkPN "flamsk") ;
+    French = mkNat "fransk" "Frankrig" ; 
+    German = mkNat "tysk" "Tyskland" ;
+    Italian = mkNat "italiensk" "Italien" ;
+    Norwegian = mkNat "norsk" "Norge" ;
+    Polish = mkNat "polsk" "Polen" ;
+    Romanian = mkNat "rumænsk" "Rumænien" ;
+    Russian = mkNat "russisk" "Russland" ;
+    Spanish = mkNat "spansk" "Spanien" ;
+    Swedish = mkNat "svensk" "Sverige" ;
+
+
+
+-- Means of transportation 
+
+   Bike = mkTransport L.bike_N ;
+   Bus = mkTransport (mkN "bus" "bussen" "busser" "busserne") ;
+   Car = mkTransport L.car_N ;
+   Ferry = mkTransport (mkN "færge" "færgen" "færger" "færgerne") ;
+   Plane = mkTransport L.airplane_N ;
+   Subway = mkTransport (mkN "undergrundsbane" "undergrundsbanen" "undergrundsbaner" "undergrundsbanerne") ;
+   Taxi = mkTransport (mkN "taxa") ;
+   Train = mkTransport (mkN "tog" "toget" "tog" "togene") ;
+   Tram = mkTransport (mkN "sporvogn" "sporvognen" "sporvogne" "sporvognene") ;
+
+   ByFoot = ParadigmsDan.mkAdv "til fods" ;
+
+
+
+
 -- actions
 
---    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
---    AHasName p name = mkCl p.name (mkV2 (mkV "heter")) name ;
+    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+    AHasName p name = mkCl p.name (mkV2 (mkV "hedde")) name ;
     AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "rum" "rum")) 
---        (SyntaxDan.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "bord" "bord")) 
---        (SyntaxDan.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHungry p = mkCl p.name (mkA "hungrig") ;
---    AIll p = mkCl p.name (mkA "sjuk") ;
---    AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; 
---    ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDan.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ;
---    AMarried p = mkCl p.name (mkA "gift") ;
---    AReady p = mkCl p.name (mkA "färdig") ;
---    AScared p = mkCl p.name (mkA "rädd") ;
---    ASpeak p lang = mkCl p.name  (mkV2 (mkV "tala")) lang ;
---    AThirsty p = mkCl p.name (mkA "törstig") ;
---    ATired p = mkCl p.name (mkA "trött") ;
---    AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ;
---    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "værelse" "værelset" "værelser" "værelserne")) 
+        (SyntaxDan.mkAdv to_Prep (mkNP num (mkN "person" "personen" "personer" "personerne")))) ;
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "bord")) 
+        (SyntaxDan.mkAdv to_Prep (mkNP num (mkN "person" "personen" "personer" "personerne")))) ;
+    AHungry p = mkCl p.name (mkA "sulten" "sultet" "sultne") ;
+    AIll p = mkCl p.name (mkA "syg") ;
+    AKnow p = mkCl p.name vide_V ; 
+    ALike p item = mkCl p.name (mkV2 holde_V (mkPrep "af")) item ;
+    ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDan.mkAdv in_Prep co)) ;
+    ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
+    AMarried p = mkCl p.name (mkA "gift") ;
+    AReady p = mkCl p.name (mkA "færdig") ; 
+    AScared p = mkCl p.name (mkA "bange") ;
+    ASpeak p lang = mkCl p.name  (mkV2 (mkV "tale")) lang ;
+    AThirsty p = mkCl p.name (mkA "tørstig") ;
+    ATired p = mkCl p.name (mkA "træt") ;
+    AUnderstand p = mkCl p.name (irregV "forstå" "forstod" "forstået") ;
+    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
 --    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP tage_V) place.to) ;
 
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 (mkV "heter"))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosta"))) ; 
---    ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ;
+    QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 hede_V)) ;
+    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "koste"))) ; 
+    ItCost item price = mkCl item (mkV2 (mkV "koste")) price ;
 
---    PropOpen p = mkCl p.name open_A ;
---    PropClosed p = mkCl p.name closed_A ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+    PropOpen p = mkCl p.name (mkVP (mkVP have_V) open_Adv) ;
+    PropClosed p = mkCl p.name (mkVP (mkVP have_V) closed_Adv) ;
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP (mkVP have_V) open_Adv) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP (mkVP have_V) closed_Adv) d) ; 
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP (mkVP have_V) open_Adv) d.habitual) ; 
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP (mkVP have_V) closed_Adv) d.habitual) ; 
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("vi ses"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("vi ses"))) 
+        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
 
---    Wife = xOf sing (mkN "fru" "fruar") ;
---    Husband = xOf sing L.man_N ;
---    Son = xOf sing (mkN "son" "söner") ;
---    Daughter = xOf sing (mkN "dotter" "döttrar") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (mkN "kone" "konen" "koner" "konerne") ;
+    Husband = xOf sing L.man_N ;
+    Son = xOf sing (mkN "søn" "sønnen" "sønner" "sønnerne") ;
+    Daughter = xOf sing (mkN "datter" "datteren" "døtre" "døtrene") ;
+    Children = xOf plur L.child_N ;
 
 -- week days
 
---    Monday = mkDay "måndag" ;
---    Tuesday = mkDay "tisdag" ;
---    Wednesday = mkDay "onsdag" ;
---    Thursday = mkDay "torsdag" ;
---    Friday = mkDay "fredag" ;
---    Saturday = mkDay "lördag" ;
---    Sunday = mkDay "söndag" ;
+    Monday = mkDay "mandag" ;
+    Tuesday = mkDay "tirsdag" ;
+    Wednesday = mkDay "onsdag" ;
+    Thursday = mkDay "torsdag" ;
+    Friday = mkDay "fredag" ;
+    Saturday = mkDay "lørdag" ;
+    Sunday = mkDay "søndag" ;
 
---    Tomorrow = ParadigmsDan.mkAdv "imorgon" ;
+    Tomorrow = ParadigmsDan.mkAdv "i morgen" ;
 
---  oper
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN (nat + "a"))) (mkNP (mkPN co)) (mkA nat) ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxDan.mkAdv on_Prep day) 
---        (SyntaxDan.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+-- modifiers of places
 
---    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
---      mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA "billig") ;
+    TheMostExpensive = mkSuperl (mkA "dyr") ;
+    TheMostPopular = mkSuperl (mkA "populær") ;
+    TheWorst = mkSuperl L.bad_A ;
 
---    open_A = mkA "öppen" "öppet" ;
---    closed_A = mkA "stängd" "stängt" ;
+    SuperlPlace sup p = placeNP sup p ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
 
 
---}
+
+-- transports
+
+    HowFar place = 
+      mkQS (mkQCl long_IAdv (mkCl (mkVP (SyntaxDan.mkAdv to_Prep place.name)))) ;
+    HowFarFrom place x = 
+      mkQS (mkQCl long_IAdv (mkCl place.name (SyntaxDan.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl long_IAdv (mkCl y.name (SyntaxDan.mkAdv from_Prep (mkNP x.name t)))) ;
+    HowFarBy y t = 
+      mkQS (mkQCl long_IAdv (mkCl y.name t)) ;
+ -- not sure !
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
+
+  oper
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+-- don't add the "a"
+   mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+      let day = mkNP (mkPN d) in 
+      mkNPDay day (SyntaxDan.mkAdv on_Prep day) 
+        (SyntaxDan.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+
+    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> 
+    mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
+
+    open_Adv = ParadigmsDan.mkAdv "åbent" ;
+    closed_Adv = ParadigmsDan.mkAdv "lukket" ;
+
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
+      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+
+    mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
+
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxDan.mkAdv by8means_Prep (mkNP n)
+      } ;
+
+    far_IAdv = ExtraDan.IAdvAdv L.far_Adv ;
+    long_IAdv : IAdv = ss "hvor langt" ** {lock_IAdv = <>};
+    how8much_IAdv : IAdv = ss "hvad" ** {lock_IAdv = <>};
 }
diff --git a/examples/phrasebook/WordsDut.gf b/examples/phrasebook/WordsDut.gf
--- a/examples/phrasebook/WordsDut.gf
+++ b/examples/phrasebook/WordsDut.gf
@@ -1,7 +1,8 @@
 -- (c) 2009 Aarne Ranta under LGPL
 
+
 concrete WordsDut of Words = SentencesDut ** 
-    open SyntaxDut, ParadigmsDut, IrregDut, (L = LexiconDut), ExtraDut, Prelude in {
+    open SyntaxDut, (P = ParadigmsDut), (I = IrregDut), (L = LexiconDut), ExtraDut, Prelude in {
 
   lin
 
@@ -10,158 +11,268 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "ost") ;
---    Chicken = mkCN (mkN "kyckling") ;
---    Coffee = mkCN (mkN "kaffe" neutrum) ;
+    Cheese = mkCN L.cheese_N ;
+    Chicken = mkCN (P.mkN "kip" "kippen" P.de) ;
+    Coffee = mkCN (P.mkN "koffie" "koffie" P.de) ;
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "kött" "kött") ;
-    Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Meat = mkCN (P.mkN "vlees" "vleesen" P.het) ;
+    Milk = mkCN L.milk_N ; 
+    Pizza = mkCN (P.mkN "pizza" "pizza's" P.de) ;
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "te" neutrum) ;
+    Tea = mkCN (P.mkN "thee" "thee" P.de) ;
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
 -- properties
 
-    Bad = L.bad_A ;
---    Cheap = mkA "billig" ;
---    Boring = mkA "tråkig" ;
+
+    Bad = P.mkA "slecht" ;
+    Cheap = P.mkA "goedkoop" ;
+    Boring = P.mkA "saai" ;
     Cold = L.cold_A ;
---    Delicious = mkA "läcker" ;
---    Expensive = mkA "dyr" ;
---    Fresh = mkA "färsk" ;
+    Delicious = P.mkA "lekker" ;
+    Expensive = P.mkA "duur" ;
+    Fresh = P.mkA "vers" ;
     Good = L.good_A ;
---    Suspect = mkA "suspekt" "suspekt" ;
+    Suspect = P.mkA "verdacht" ;
     Warm = L.warm_A ;
 
+
+
 -- places
+ 
+    Airport = mkPlace (P.mkN "luchthaven" "luchthavens" P.de) "op" ; 
+    AmusementPark = mkPlace (P.mkN "pretpark" "pretparken" P.het) "in" ;
+    Bank = mkPlace (P.mkN "bank" "banken" P.de) "op" ;
+    Bar = mkPlace (P.mkN "bar" P.de) "in" ;  
+    Cafeteria = mkPlace (P.mkN "cafetaria" "cafetaria's" P.de) "in" ;
+    Center = mkPlace (P.mkN "centrum" "centra" P.het) "in" ;
+    Church = mkPlace (P.mkN "kerk" "kerken" P.de) "in" ; 
+    Cinema = mkPlace (P.mkN "bioscoop" "bioscopen" P.de) "in" ;  
+    Disco = mkPlace (P.mkN "disco" "disco's" P.de) "in" ;
+    Hospital = mkPlace (P.mkN "ziekenhuis" "ziekenhuizen" P.het) "in" ; 
+    Hotel = mkPlace (P.mkN "hotel" "hotels" P.het) "in" ; 
+    Museum = mkPlace (P.mkN "museum" "musea" P.het) "in" ; 
+    Park = mkPlace (P.mkN "park" "parken" P.het) "in" ; 
+    Parking = mkPlace (P.mkN "parkeerplaats" "parkeerplaatsen" P.de) "op" ; --parkeren x parkeerplaats -- naar op 
+    Pharmacy = mkPlace (P.mkN "apotheek" "apotheken" P.de)  "in" ;
+    PostOffice = mkPlace (P.mkN "postkantoor" "postkantoren" P.het) "op" ;
+    Pub = mkPlace (P.mkN "kroeg" "kroegen" P.de) "in" ;
+    Restaurant = mkPlace (P.mkN "restaurant" "restaurants" P.het) "in" ; 
+    Shop = mkPlace (P.mkN "winkel" "winkels" P.de) "in" ; -- shop x winkel 
+    School = mkPlace (P.mkN "school" "scholen" P.de) "in" ; 
+    Station = mkPlace (P.mkN "station" "stations" P.het) "op" ; 
+    Supermarket = mkPlace (P.mkN "supermarkt" "supermarkten" P.de) "in" ;
+    Theatre = mkPlace (P.mkN "theater" "theaters" P.het) "in" ;
+    Toilet = mkPlace (P.mkN "toilet" "toiletten" P.het) "op" ; 
+    University = mkPlace (P.mkN "universiteit" "universiteiten" P.de) "in" ; --universitair x universiteit -- naar in
+    Zoo = mkPlace (P.mkN "dierentuin" "dierentuinen" P.de) "op" ;
 
---    Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ;
---    Bar = mkPlace (mkN "bar" "barer") "i" ;
---    Church = mkPlace (mkN "kyrka") "i" ;
---    Cinema = mkPlace (mkN "bio" "bio" "bion" "biona") "på" ; ---- ?
---    Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ;
---    Hotel = mkPlace (mkN "hotell" "hotell") "på" ;
---    Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ;
---    Park = mkPlace (mkN "park" "parker") "i" ;
---    Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ;
---    Shop = mkPlace (mkN "affär" "affär") "i" ;
---    School = mkPlace (mkN "skola") "på" ;
---    Station = mkPlace (mkN "station" "stationer") "på" ;
---    Theatre = mkPlace (mkN "teater" "teatrar") "på" ;
---    Toilet = mkPlace (mkN "toalett" "toaletter") "på" ;
---    University = mkPlace (mkN "universitet" "universitet") "på" ;
+ 
+    CitRestaurant cit = 
+      mkCNPlace (mkCN cit (P.mkN "restaurant" "restaurants" P.het)) in_Prep to_Prep ;    
 
+
 -- currencies
 
---    DanishCrown = mkCN (mkA "dansk") (mkN "krona") | mkCN (mkN "krona") ;
---    Dollar = mkCN (mkN "dollar" "dollar") ;
---    Euro = mkCN (mkN "euro" "euro") ;
---    Lei = mkCN (mkN "lei" "lei") ;
---    SwedishCrown = mkCN (mkA "svensk") (mkN "krona") | mkCN (mkN "krona") ;
+    DanishCrown = mkCN (P.mkA "Deens") (P.mkN "kroon" "kronen" P.de) ;
+    Dollar = mkCN (P.mkN "dollar" "dollars" P.de) ;
+    Euro = mkCN (P.mkN "euro" "euro's" P.de) ;
+    Lei = mkCN (P.mkA "Roemeens") (P.mkN "leu" "lei" P.de) ;
+    Leva = mkCN (P.mkA "Bulgaars") (P.mkN "leva" "levs" P.de) ;
+    NorwegianCrown = mkCN (P.mkA "Noors") (P.mkN "kroon" "kronen "P.de) ;  
+    Pound = mkCN (P.mkA "Brits") (P.mkN "pond" "pond" P.het);
+    Rouble = mkCN (P.mkA "Russisch") (P.mkN "roebel" "roebel" P.de) ;
+    SwedishCrown = mkCN (P.mkA "Zweeds") (P.mkN "kroon" "kronen" P.de) ;
+    Zloty = mkCN (P.mkA "Pools") (P.mkN "zloty" "zloty" P.de) ;
 
--- nationalities
 
---    Belgian = mkA "belgisk" ;
---    Belgium = mkNP (mkPN "Belgien") ;
---    English = mkNat "engelsk" "England" ;
---    Finnish = mkNat "finsk" "Finland" ;
---    Flemish = mkNP (mkPN "flamländska") ;
---    French = mkNat "fransk" "Frankrike" ; 
---    Italian = mkNat "italiensk" "Italien" ;
---    Romanian = mkNat "rumänsk" "Rumänien" ;
---    Swedish = mkNat "svensk" "Sverige" ;
+-- Nationalities
 
--- actions
+    Belgian = P.mkA "Belgisch" ;
+    Belgium = mkNP (P.mkPN "België") ;
+    Bulgarian = mkNat "Bulgaars" "Bulgarije" ;
+    Catalan = mkNat "Catalaans" "Catalonië" ;
+    Danish = mkNat "Deens" "Denemarken" ;
+    Dutch = mkNat "Nederlands" "Nederland" ;
+    English = mkNat "Engels" "Engeland" ;
+    Finnish = mkNat "Fins" "Finland" ;
+    Flemish = mkNP (P.mkPN "Vlaams") ;
+    French = mkNat "Frans" "Frankrijk" ; 
+    German = mkNat "Duits" "Duitsland" ;
+    Italian = mkNat "Italiaans" "Italië" ;
+    Norwegian = mkNat "Noors" "Noorwegen" ;
+    Polish = mkNat "Pools" "Polen" ;
+    Romanian = mkNat "Roemeens" "Roemenië" ;
+    Russian = mkNat "Russisch" "Rusland" ;
+    Spanish = mkNat "Spaans" "Spanje" ;
+    Swedish = mkNat "Zweeds" "Zweden" ;
 
---    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
---    AHasName p name = mkCl p.name (mkV2 (mkV "heter")) name ;
-    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "rum" "rum")) 
---        (SyntaxDut.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "bord" "bord")) 
---        (SyntaxDut.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHungry p = mkCl p.name (mkA "hungrig") ;
---    AIll p = mkCl p.name (mkA "sjuk") ;
---    AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; 
---    ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDut.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ;
---    AMarried p = mkCl p.name (mkA "gift") ;
---    AReady p = mkCl p.name (mkA "färdig") ;
---    AScared p = mkCl p.name (mkA "rädd") ;
---    ASpeak p lang = mkCl p.name  (mkV2 (mkV "tala")) lang ;
---    AThirsty p = mkCl p.name (mkA "törstig") ;
---    ATired p = mkCl p.name (mkA "trött") ;
---    AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ;
---    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
 
+-- Means of transportation
+
+
+    Bike = mkTransport L.bike_N ;
+    Bus = mkTransport (P.mkN "bus" "bussen" P.de) ; 
+    Car = mkTransport (P.mkN "auto" "auto's" P.de);
+    Ferry = mkTransport (P.mkN "veerboot" "veerboten" P.de) ; -- ferry x veerboot
+    Plane = mkTransport (P.mkN "vliegtuig" "vliegtuigen" P.het) ;
+    Subway = mkTransport (P.mkN "metro" "metro" P.de) ;
+    Taxi = mkTransport (P.mkN "taxi" "taxi's" P.de) ;
+    Tram = mkTransport (P.mkN "tram" "trams" P.de) ;
+    Train = mkTransport (P.mkN "trein" "treinen" P.de) ;
+
+    ByFoot = P.mkAdv "te voet" ;
+{-
+ ik ga met de/het ....
+ik ga te voet/ ik ga lopend
+
+-}
+
+
+
+-- actions
+    AHasAge p num = mkCl p.name (mkNP num L.year_N) ; -- ik ben ... jaar
+    AHasName p name = mkCl p.name (P.mkV2 I.heten_V) name ;  -- ik heet ...
+    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ; -- ik heb ... kinderen
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (P.mkN "kamer")) 
+        (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))) ; -- ik heb een ... persoons kamer/ ik heb een kamer voor ... personen
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (P.mkN "tafel")) 
+        (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))) ;
+    AHungry p = mkCl p.name have_V2 (mkNP (P.mkN "honger")) ; -- to have   
+    AIll p = mkCl p.name (P.mkA "ziek") ; -- to be ?
+    AKnow p = mkCl p.name I.weten_V ; -- ik weet het.
+    ALike p item = mkCl p.name (P.mkV2 I.houden_V P.van_Prep) item ; -- lekker
+    ALive p co = mkCl p.name (mkVP (mkVP (P.mkV "wonen")) (SyntaxDut.mkAdv in_Prep co)) ; -- woon
+    ALove p q = mkCl p.name (P.mkV2 (P.mkV "lief" P.hebben_V)) q.name ; -- houden van
+    AMarried p = mkCl p.name (P.mkA "getrouwd") ; -- ik ben getrouwd
+    AReady p = mkCl p.name (P.mkA "klaar") ; -- ik ben klaar
+    AScared p = mkCl p.name (P.mkA "bang") ; -- ik ben bang
+    ASpeak p lang = mkCl p.name (P.mkV2 I.spreken_V) lang ; -- ik spreek .../ ik versta ...
+    AThirsty p = mkCl p.name have_V2 (mkNP (P.mkN "dorst")) ; -- ik heb dorst
+    ATired p = mkCl p.name (P.mkA "moe") ; -- ik ben moe
+    AUnderstand p = mkCl p.name (P.mkV "verstaan" "verstond" "verstonden" "verstaan") ; 
+    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; -- ik wil
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; -- ik wil naar ...
+
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 (mkV "heter"))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosta"))) ; 
---    ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ;
+    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name  I.heten_V)) ; --hoe heet je
+    QWhatAge p =  mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (P.mkV "kosten"))) ; --hoeveel kost...
+    ItCost item price = mkCl item (P.mkV2 (P.mkV "kosten")) price ; --..item.. kost ..price..
 
---    PropOpen p = mkCl p.name open_A ;
---    PropClosed p = mkCl p.name closed_A ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+    PropOpen p = mkCl p.name open_A ; 
+    PropClosed p = mkCl p.name closed_A ; 
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; --de winkel is geopend op vrijdag(s)
+           --normaal gesproken ga ik op vrijdag ..action../vrijdags ga ik ..action..
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; -- gesloten
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("vi ses"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("ik zie je"))) (mkPhrase (mkUtt d)) ; -- zie je / tot 
+    PSeeYouPlace p = 
+      mkText (lin Text (ss ("ik zie je"))) (mkPhrase (mkUtt p.at)) ; -- tot ziens in p (AR) 
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("ik zie je"))) 
+        (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ; --tot ... op/in/bij
 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
 
---    Wife = xOf sing (mkN "fru" "fruar") ;
---    Husband = xOf sing L.man_N ;
---    Son = xOf sing (mkN "son" "söner") ;
---    Daughter = xOf sing (mkN "dotter" "döttrar") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (P.mkN "vrouw" "vrowen" P.de) ; -- x vrouw
+    Husband = xOf sing L.man_N ;
+    Son = xOf sing (P.mkN "zoon" "zonen" P.de) ;
+    Daughter = xOf sing (P.mkN "dochter" "dochters" P.de) ;
+    Children = xOf plur L.child_N ; -- kind
 
+
+ 
 -- week days
 
---    Monday = mkDay "måndag" ;
---    Tuesday = mkDay "tisdag" ;
---    Wednesday = mkDay "onsdag" ;
---    Thursday = mkDay "torsdag" ;
---    Friday = mkDay "fredag" ;
---    Saturday = mkDay "lördag" ;
---    Sunday = mkDay "söndag" ;
+    Monday = mkDay "maandag" ;
+    Tuesday = mkDay "dinsdag" ;
+    Wednesday = mkDay "woensdag" ;
+    Thursday = mkDay "donderdag" ;
+    Friday = mkDay "vrijdag" ;
+    Saturday = mkDay "zaterdag" ;
+    Sunday = mkDay "zondag" ;
 
---    Tomorrow = ParadigmsDut.mkAdv "imorgon" ;
+  Tomorrow = P.mkAdv "morgen" ;
 
---  oper
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN (nat + "a"))) (mkNP (mkPN co)) (mkA nat) ;
+-- modifiers of places 
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl (P.mkA 
+      "dichtbijzijnd" "dichtbijzijnde" "dichtbijzijndes" 
+      "dichterbijzijnd" "dichtestbijzijnd") ; 
+    TheCheapest = mkSuperl (P.mkA "goedkoop") ;
+    TheMostExpensive = mkSuperl (P.mkA "duur") ;
+    TheMostPopular = mkSuperl (P.mkA "populair") ;
+    TheWorst = mkSuperl (P.mkA "slecht") ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxDut.mkAdv on_Prep day) 
---        (SyntaxDut.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+    SuperlPlace sup p = placeNP sup p ;
 
---    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
---      mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
+-- transports
 
---    open_A = mkA "öppen" "öppet" ;
---    closed_A = mkA "stängd" "stängt" ;
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ; -- hoe ver is de dierentuin
+    HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxDut.mkAdv from_Prep x.name))) ;
+-- how far is the center from the hotel ? hoever is het centrum van het hotel
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxDut.mkAdv from_Prep x.name)) t)) ;
+--hoelang duurt het om van het vliegveld naar het hotel te gaan per taxi
+    HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ; --hoe ver is het museum per bus
+ 
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
 
 
---}
+
+
+  oper
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (P.mkPN nat)) (mkNP (P.mkPN co)) (P.mkA nat) ;
+
+    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> 
+      mkNPDay (mkNP (P.mkPN d)) (mkAdv (P.mkPrep []) (mkNP (P.mkPN d))) 
+                                ---- (mkAdv on_Prep (mkNP (P.mkPN d))) 
+        (mkAdv on_Prep (mkNP a_Quant plNum (mkCN (P.mkN d (d + "en") P.utrum)))) ;
+
+    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> 
+      mkCNPlace (mkCN p) (P.mkPrep i) to_Prep ;
+
+    open_A = P.mkA "geopend" ;
+    closed_A = P.mkA "gesloten" ;
+
+   xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
+      relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxDut.mkAdv possess_Prep b)) p ;
+
+     mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxDut.mkAdv with_Prep (mkNP the_Det n)
+      } ;
+
+  far_IAdv = ss "hoe ver" ** {lock_IAdv = <>} ;
+  long_IAdv = ss "hoe lang" ** {lock_IAdv = <>};
+
+  mkSuperl : A -> Det = \a -> SyntaxDut.mkDet the_Art (SyntaxDut.mkOrd a) ;
+
+
+{- 
+    HowFarFrom : how far is the center from the hotel ? hoe ver is het centrum van het hotel
+    HowFarFromBy : how far is the airport from the hotel by taxi ? hoe lang duurt het om van het vliegveld naar het hotel te gaan per taxi
+    HowFarBy : how far is the museum by bus ? hoe ver is het museum per bus/ hoelang doe je er over om met de bus naar het museum te gaan/hoelang doet de bus er over tot het museum
+
+
+-}
+
+
 }
diff --git a/examples/phrasebook/WordsEng.gf b/examples/phrasebook/WordsEng.gf
--- a/examples/phrasebook/WordsEng.gf
+++ b/examples/phrasebook/WordsEng.gf
@@ -46,44 +46,86 @@
 -- defined by $mkPlace$.
 
     Airport = mkPlace "airport" "at" ;
+    AmusementPark = mkCompoundPlace "amusement" "park" "at" ;
+    Bank = mkPlace "bank" "at" ;
     Bar = mkPlace "bar" "in" ;
-    Church = mkPlace "church" "in" ;
+    Cafeteria = mkPlace "canteen" "in" ;
+    Center = mkPlace "center" "in" ;
     Cinema = mkPlace "cinema" "at" ;
+    Church = mkPlace "church" "in" ;
+    Disco = mkPlace "disco" "at" ;
     Hospital = mkPlace "hospital" "in" ;
     Hotel = mkPlace "hotel" "in" ;
-    Museum = mkPlace "museum" "in" ;
+    Museum = mkPlace "museum" "at" ;
     Park = mkPlace "park" "in" ;
+    Parking = mkCompoundPlace "car" "park" "in" ; 
+    Pharmacy = mkPlace "pharmacy" "at" ;
+    PostOffice = mkCompoundPlace "post" "office" "at" ;
+    Pub = mkPlace "pub" "at" ;
     Restaurant = mkPlace "restaurant" "in" ;
     School = mkPlace "school" "at" ;
-    Shop = mkPlace "shop" "in" ;
+    Shop = mkPlace "shop" "at" ;
     Station = mkPlace "station" "at" ;
+    Supermarket = mkPlace "supermarket" "at" ; 
     Theatre = mkPlace "theatre" "at" ;
     Toilet = mkPlace "toilet" "in" ;
     University = mkPlace "university" "at" ;
+    Zoo = mkPlace "zoo" "at" ;
+   
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ;
 
+
 -- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
 
     DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
     Dollar = mkCN (mkN "dollar") ;
     Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
     Lei = mkCN (mkN "leu" "lei") ;
+    Leva = mkCN (mkN "lev") ;
+    NorwegianCrown = mkCN (mkA "Norwegian") (mkN "crown") | mkCN (mkN "crown") ;
+    Pound = mkCN (mkN "pound") ;
+    Rouble = mkCN (mkN "rouble") ;
     SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
+    Zloty = mkCN (mkN "zloty" "zloty") ;
 
 -- Nationalities
 
     Belgian = mkA "Belgian" ;
     Belgium = mkNP (mkPN "Belgium") ;
+    Bulgarian = mkNat "Bulgarian" "Bulgaria" ;
+    Catalan = mkNPNationality (mkNP (mkPN "Catalan")) (mkNP (mkPN "Catalonia")) (mkA "Catalonian") ;
+    Danish = mkNat "Danish" "Denmark" ;
+    Dutch =  mkNPNationality (mkNP (mkPN "Dutch")) (mkNP the_Quant (mkN "Netherlands")) (mkA "Dutch") ;
     English = mkNat "English" "England" ;
     Finnish = mkNat "Finnish" "Finland" ;
     Flemish = mkNP (mkPN "Flemish") ;
     French = mkNat "French" "France" ; 
+    German = mkNat "German" "Germany" ;
     Italian = mkNat "Italian" "Italy" ;
+    Norwegian = mkNat "Norwegian" "Norway" ;
+    Polish = mkNat "Polish" "Poland" ;
     Romanian = mkNat "Romanian" "Romania" ;
+    Russian = mkNat "Russian" "Russia" ;
+    Spanish = mkNat "Spanish" "Spain" ;
     Swedish = mkNat "Swedish" "Sweden" ;
 
+-- Means of transportation 
+
+   Bike = mkTransport L.bike_N ;
+   Bus = mkTransport (mkN "bus") ;
+   Car = mkTransport L.car_N ;
+   Ferry = mkTransport (mkN "ferry") ;
+   Plane = mkTransport L.airplane_N ;
+   Subway = mkTransport (mkN "subway") ;
+   Taxi = mkTransport (mkN "taxi") ;
+   Train = mkTransport (mkN "train") ;
+   Tram = mkTransport (mkN "tram") ;
+
+   ByFoot = P.mkAdv "by foot" ;
+
 -- Actions: the predication patterns are very often language-dependent.
 
-    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+    AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsEng.mkAdv "old"));
     AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
     AHasRoom p num = mkCl p.name have_V2 
       (mkNP (mkNP a_Det (mkN "room")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
@@ -123,8 +165,9 @@
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
+    PSeeYouDate d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
       mkText (lin Text (ss ("see you"))) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
@@ -150,6 +193,35 @@
  
     Tomorrow = P.mkAdv "tomorrow" ;
 
+-- modifiers of places
+
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA "cheap") ;
+    TheMostExpensive = mkSuperl (mkA "expensive") ;
+    TheMostPopular = mkSuperl (mkA "popular") ;
+    TheWorst = mkSuperl L.bad_A ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
+
+-- transports
+
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ;
+    HowFarFrom x y = 
+      mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxEng.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxEng.mkAdv from_Prep (mkNP x.name t)))) ;
+    HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl y.name t)) ;
+ 
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
+
+
 -- auxiliaries
 
   oper
@@ -161,8 +233,11 @@
       let day = mkNP (mkPN d) in 
       mkNPDay day (SyntaxEng.mkAdv on_Prep day) 
         (SyntaxEng.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+    
+    mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
+     mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
 
-    mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
+    mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> 
       mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
 
     open_Adv = P.mkAdv "open" ;
@@ -172,5 +247,15 @@
       relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
 
     nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
+
+
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxEng.mkAdv by8means_Prep (mkNP n)
+      } ;
+
+    mkSuperl : A -> Det = \a -> SyntaxEng.mkDet the_Art (SyntaxEng.mkOrd a) ;
+    
+   far_IAdv = ExtraEng.IAdvAdv (ss "far") ;
 
 }
diff --git a/examples/phrasebook/WordsFin.gf b/examples/phrasebook/WordsFin.gf
--- a/examples/phrasebook/WordsFin.gf
+++ b/examples/phrasebook/WordsFin.gf
@@ -1,10 +1,12 @@
--- (c) 2009 Aarne Ranta under LGPL
+-- (c) 2010 Aarne Ranta under LGPL
 
 concrete WordsFin of Words = SentencesFin ** 
   open 
     SyntaxFin, ParadigmsFin, (L = LexiconFin), 
     Prelude, (E = ExtraFin) in {
 
+  flags optimize = noexpand ;
+
   lin
 
 -- kinds
@@ -40,6 +42,8 @@
 -- places
 
     Restaurant = mkPlace (mkN "ravintola") ssa ;
+    Bank = mkPlace (mkN "pankki") ssa ;
+    PostOffice = mkPlace (mkN "posti") ssa ;
     Bar = mkPlace (mkN "baari") ssa ;
     Toilet = mkPlace (mkN "vessa") ssa ;
     Museum = mkPlace (mkN "museo") ssa ;
@@ -55,30 +59,72 @@
     University = mkPlace (mkN "yliopisto") lla ;
     School = mkPlace (mkN "koulu") lla ;
 
+    CitRestaurant cit = {
+      name = mkCN cit (mkN "ravintola") ; at = casePrep inessive ; to = casePrep illative; isPl = False
+      } ;
+    Parking = mkPlace (mkN "pysäköinti" (mkN "alue")) lla ;
+    Supermarket = mkPlace (mkN "supermarket") ssa ;
+    Pharmacy = mkPlace (mkN "apteekki") ssa ;
+    Center = mkPlace (mkN "keskusta") ssa ;
+    Cafeteria = mkPlace (mkN "kahvila") ssa ;
+    Disco = mkPlace (mkN "disko") ssa ;
+    Pub = mkPlace (mkN "pub") ssa ;
+    AmusementPark = mkPlace (mkN "huvi" (mkN "puisto")) ssa ;   
+    Zoo = mkPlace (mkN "eläin" (mkN "tarha")) ssa ;   
+
 -- currencies
 
     DanishCrown = mkCN (mkN "Tanskan kruunu") | mkCN (mkN "kruunu") ;
     Dollar = mkCN (mkN "dollari") ;
     Euro = mkCN (mkN "euro") ;
     Lei = mkCN (mkN "lei") ;
+    Leva = mkCN (mkN "leva") ;
+    NorwegianCrown = mkCN (mkN "Norjan kruunu") | mkCN (mkN "kruunu") ;
+    Pound = mkCN (mkN "punta") ;
+    Rouble = mkCN (mkN "rupla") ;
     SwedishCrown = mkCN (mkN "Ruotsin kruunu") | mkCN (mkN "kruunu") ;
+    Zloty = mkCN (mkN "zloty" "zlotyja") ;
 
 -- nationalities
 
     Belgian = mkA "belgialainen" ;
     Belgium = mkNP (mkPN "Belgia") ;
+    Bulgarian = mkNat (mkPN "bulgaria") (mkPN "Bulgaria") (mkA "bulgarialainen") ;
+    Catalan = mkNat (mkPN "katalaani") (mkPN "Katalonia") (mkA "katalonialainen") ;
+    Danish = mkNat (mkPN "tanska") (mkPN "Tanska") (mkA "tanskalainen") ;
+    Dutch = mkNat (mkPN "hollanti") (mkPN "Hollanti") (mkA "hollantilainen") ;
     English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ;
     Finnish = 
       mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia")) 
             (mkA "suomalainen") ;
     Flemish = mkNP (mkPN "flaami") ;
     French = mkNat (mkPN "ranska") (mkPN "Ranska") (mkA "ranskalainen") ; 
+    German = mkNat (mkPN "saksa") (mkPN "Saksa") (mkA "saksalainen") ;
     Italian = mkNat (mkPN "italia") (mkPN "Italia") (mkA "italialainen") ;
+    Norwegian = mkNat (mkPN "norja") (mkPN "Norja") (mkA "norjalainen") ;
+    Polish = mkNat (mkPN "puola") (mkPN "Puola") (mkA "puolalainen") ;
     Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ;
+    Russian = mkNat (mkPN "venäjä") (mkPN "Venäjä") (mkA "venäläinen") ;
+    Spanish = mkNat (mkPN "espanja") (mkPN "Espanja") (mkA "espanjalainen") ;
     Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ;
 
     ---- it would be nice to have a capitalization Predef function
 
+-- means of transportation 
+
+    Bike = mkTransport L.bike_N ; 
+    Bus = mkTransport (mkN "bussi") ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN "lautta") ;
+    Plane = mkTransport L.airplane_N ;
+    Subway = mkTransport (mkN "metro") ;
+    Taxi = mkTransport (mkN "taksi") ;
+    Train = mkTransport L.train_N ;
+    Tram = mkTransport (mkN "raitiovaunu") ;
+
+    ByFoot = ParadigmsFin.mkAdv "jalkaisin" ;
+
+
 -- actions
 
     AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
@@ -120,8 +166,9 @@
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text (ss ("nähdään"))) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
+    PSeeYouDate d = mkText (lin Text (ss ("nähdään"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("nähdään"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
       mkText (lin Text (ss ("nähdään"))) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
@@ -147,6 +194,38 @@
 
     Tomorrow = ParadigmsFin.mkAdv "huomenna" ;
 
+-- transports
+
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ;
+    HowFarFrom x y = 
+      mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxFin.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkCl y.name 
+        (mkVP (mkVP (SyntaxFin.mkAdv from_Prep x.name)) t))) ;
+    HowFarBy place t = 
+      mkQS (mkQCl far_IAdv (mkCl place.name t)) ;
+      -- mkQS (mkQCl (mkIAdv far_IAdv t) y.name) ; 
+
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkVP (mkVP (mkVP (mkV "päästä")) trans.by) place.to))) ;
+      -- pääseekö keskustaan bussilla
+      -- mkQS (mkQCl (E.AdvPredNP place.to L.go_V (E.PartCN (trans.name)))) ; 
+      -- meneekö keskustaan bussia
+
+-- modifiers of places
+
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl (mkA (mkN "läheinen") "lähempi" "lähin") ;
+    TheCheapest = mkSuperl (mkA (mkN "halpa") "halvempi" "halvin") ;
+    TheMostExpensive = mkSuperl (mkA (mkN "kallis") "kalliimpi" "kallein") ;
+    TheMostPopular = mkSuperl (mkA "suosittu") ;
+    TheWorst = mkSuperl (mkA "huono") ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
   oper
     mkNat : PN -> PN -> A -> 
       {lang : NP ; prop : A ; country : NP} = \nat,co,pro ->
@@ -163,11 +242,12 @@
        habitual = ParadigmsFin.mkAdv s
       } ;
 
-    mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep} = \p,e -> {
+    mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,e -> {
       name = mkCN p ;
       at = casePrep (if_then_else Case e adessive inessive) ;  -- True: external
       to = casePrep (if_then_else Case e allative illative) ;
-      } ;
+      isPl = False   
+   } ;
     ssa = False ;
     lla = True ;
 
@@ -180,11 +260,20 @@
     -- do you have a table for five persons
     haveForPerson : NP -> CN -> Card -> Cl = \p,a,n ->
       mkCl p have_V2 
-----      (mkNP (E.PartCN a)  ---- partitive works in questions 
+----      (mkNP (E.PartCN a)  ---- partitive works in questions )
         (mkNP (mkNP a_Det a)
            (SyntaxFin.mkAdv for_Prep (mkNP n (mkN "henki" "henkiä")))) ;
+----       (SyntaxFin.mkAdv for_Prep (mkNP (mkDet n)))) ; -- 60s faster compile 25/10/2010
 
     open_Adv = ParadigmsFin.mkAdv "avoinna" ;
     closed_Adv = ParadigmsFin.mkAdv "kiinni" ;
 
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxFin.mkAdv (casePrep adessive) (mkNP n)
+      } ;
+
+    mkSuperl : A -> Det = \a -> mkDet the_Quant (mkOrd a) ;
+
+    far_IAdv = E.IAdvAdv L.far_Adv ;
 }
diff --git a/examples/phrasebook/WordsFre.gf b/examples/phrasebook/WordsFre.gf
--- a/examples/phrasebook/WordsFre.gf
+++ b/examples/phrasebook/WordsFre.gf
@@ -6,9 +6,11 @@
   (E = ExtraFre),
   (L = LexiconFre),
   ParadigmsFre,
+  (M = MorphoFre),
   (P = ParadigmsFre),
   Prelude in {
 
+
 lin
 
 -- kinds
@@ -44,41 +46,83 @@
 -- places
 
     Airport = mkPlace (mkN "aéroport") dative ;
-    Bar = mkPlace (mkN "bar") in_Prep ;
-    Church = mkPlace (mkN "église") in_Prep ;
-    Cinema = mkPlace (mkN "cinéma" masculine) in_Prep ;
+    AmusementPark = mkPlace (compN (mkN "parc") ["d'attractions"]) dative ;
+    Bank = mkPlace (mkN "banque") dative ;
+    Bar = mkPlace (mkN "bar") dative ;
+    Cafeteria = mkPlace (mkN "cafétéria") dative ;
+    Center = mkPlace (mkN "centre" "centres" ParadigmsFre.masculine) dative ;
+    Church = mkPlace (mkN "église") dative ;
+    Cinema = mkPlace (mkN "cinéma" masculine) dative ;
+    Disco = mkPlace (mkN "discothèque" feminine) dative ;
     Hospital = mkPlace (mkN "hôpital") dative ;
     Hotel = mkPlace (mkN "hôtel") dative ;
-    Museum = mkPlace (mkN "musée" masculine) in_Prep ;
-    Park = mkPlace (mkN "parc") in_Prep ;
-    Restaurant = mkPlace (mkN "restaurant") in_Prep ;
+    Museum = mkPlace (mkN "musée" masculine) dative ;
+    Park = mkPlace (mkN "parc") dative ;
+    Parking = mkPlace (mkN "parking" masculine) dative ;
+    Pharmacy = mkPlace (mkN "pharmacie" feminine) dative ;
+    PostOffice = mkPlace (mkN "poste" feminine) dative ;
+    Pub = mkPlace (mkN "pub" masculine) dative ;
+    Restaurant = mkPlace (mkN "restaurant") dative ;
     School = mkPlace (mkN "école") dative ;
-    Shop = mkPlace (mkN "magasin") in_Prep ;
+    Shop = mkPlace (mkN "magasin") dative ;
     Station = mkPlace (mkN "gare") dative ;
-    Theatre = mkPlace (mkN "théâtre" masculine) in_Prep ;
-    Toilet = mkPlace (mkN "toilette") in_Prep ;
+    Supermarket = mkPlace (mkN "supermarché" masculine) dative ;
+    Theatre = mkPlace (mkN "théâtre" masculine) dative ;
+    Toilet = mkCNPlacePl (mkCN (mkN "toilette")) dative dative; 
     University = mkPlace (mkN "université" feminine) dative ;
+    Zoo = mkPlace (mkN "zoo" masculine) dative ;
 
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) dative to_Prep ;
+
 -- currencies
 
     DanishCrown = mkCN (mkA "danois") (mkN "couronne") | mkCN (mkN "couronne") ;
     Dollar = mkCN (mkN "dollar") ;
     Euro = mkCN (mkN "euro") ;
     Lei = mkCN (mkN "leu" "lei" masculine) ;
+    Leva = mkCN (mkN "lev" "leva" masculine);
+    NorwegianCrown = mkCN (mkA "norvégien") (mkN "couronne") | mkCN (mkN "couronne") ;
+    Pound = mkCN (compN (mkN "livre") ["sterling"]);
+    Rouble = mkCN (mkN "rouble" "rouble" masculine) ;
     SwedishCrown = mkCN (mkA "suédois") (mkN "couronne") | mkCN (mkN "couronne") ;
-
+    Zloty = mkCN (mkN "zloty" "zlotych" masculine) ;
+   
 -- nationalities
 
     Belgian = mkA "belge" ;
     Belgium = mkNP (mkPN "Belgique") ;
+    Bulgarian = mkNat "bulgare" "Bulgarie" ;
+    Catalan = mkNat "catalan" "Catalogne" ;
+    Danish = mkNat "danois" "Danemark" ;
+    Dutch = mkNat "hollandais" "Holland" ;
     English = mkNat "anglais" "Angleterre" ;
     Finnish = mkNat "finlandais" "Finlande" ;
     Flemish = mkNP (mkPN "flamand") ;
     French = mkNat "français" "France" ; 
+    German = mkNat "allemand" "Allemagne" ;
     Italian = mkNat "italien" "Italie" ;
+    Norwegian = mkNat "norvégien" "Norvège" ;
+    Polish = mkNat "polonais" "Pologne" ;
     Romanian = mkNat "roumain" "Roumanie" ;
+    Russian = mkNat "russe" "Russie" ;
+    Spanish = mkNat "espagnol" "Espagne" ;
     Swedish = mkNat "suédois" "Suède" ;
 
+-- means of transportation
+  
+   Bike = mkTransport en_Prep L.bike_N ;
+   Bus = mkTransport par_Prep (mkN "bus") ;
+   Car = mkTransport en_Prep L.car_N ;
+   Ferry = mkTransport en_Prep (mkN "ferry") ;
+   Plane = mkTransport par_Prep L.airplane_N ;
+   Subway = mkTransport par_Prep (mkN "métro") ;
+   Taxi = mkTransport en_Prep (mkN "taxi") ;
+   Train = mkTransport par_Prep (mkN "train") ;
+   Tram = mkTransport par_Prep (mkN "tram") ;
+
+   ByFoot = P.mkAdv "à pied" ;
+
+
 -- actions
 
     AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
@@ -124,9 +168,11 @@
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text (ss ("on se verra"))) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
-      mkText (lin Text (ss ("on se verra"))) 
+
+    PSeeYouPlace d = mkText (lin Text (ss ("on se voit"))) (mkPhrase (mkUtt d.at)) ;
+    PSeeYouDate d = mkText (lin Text (ss ("on se voit"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("on se voit"))) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
 -- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
@@ -152,7 +198,48 @@
 
     Tomorrow = ParadigmsFre.mkAdv "demain" ;
 
+-- modifiers of places
+    TheBest = mkSuperl True L.good_A ;
+    TheClosest = mkSuperl False L.near_A ; 
+    TheCheapest = mkSuperl False 
+      (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; 
+       isPre = False ; lock_A = <>}) ; 
+    TheMostExpensive = mkSuperl False (mkA "cher") ;
+    TheMostPopular = mkSuperl False (mkA "populaire") ;
+    TheWorst = mkSuperl True L.bad_A ;
 
+    SuperlPlace sup kind = 
+      let 
+        det  : Det = mkDet the_Art sup.s ;
+        name : NP  = case sup.isPre of {
+          True  => mkNP det kind.name ;                      -- le meilleur bar
+          False => mkNP the_Art (mkCN kind.name (mkNP det))  -- le bar le plus cher
+          } 
+      in {
+        name = name ;
+        at = SyntaxFre.mkAdv kind.at name ;
+        to = SyntaxFre.mkAdv kind.to name
+      } ;
+
+-- transports
+
+    HowFar place = mkQS (mkQCl what_distance_IAdv place.name) ; 
+    HowFarFrom x y = 
+      mkQS (mkQCl (E.CompIQuant which_IQuant) 
+        (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) y.to)) ; 
+    HowFarFromBy x y t = 
+      mkQS (mkQCl (E.CompIQuant which_IQuant) 
+        (mkNP (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) y.to) t)) ; 
+    HowFarBy place t = 
+       mkQS (mkQCl what_distance_IAdv (mkNP place.name t)) ; 
+     
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      lin QS {s = \\_ => (E.EstcequeS (mkS (mkCl (mkCN trans.name (SyntaxFre.mkAdv for_Prep place.name))))).s} ;
+      --      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
   oper
     mkNat : Str -> Str -> NPNationality = \nat,co -> 
       mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
@@ -161,12 +248,29 @@
       let day = mkNP (mkPN d) in
       mkNPDay day (P.mkAdv d) (P.mkAdv ("le" ++ d)) ;
 
-    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
+    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
       mkCNPlace (mkCN p) i dative ;
 
     open_A = P.mkA "ouvert" ;
     closed_A = P.mkA "fermé" ;
 
     xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
+
+    mkTransport : Prep -> N -> {name : CN ; by : Adv} = \p,n -> {
+      name = mkCN n ; 
+      by = E.PrepCN p n  -- par train, en vélo
+      } ;
+
+    en_Prep = mkPrep "en" ;
+    par_Prep = mkPrep "par" ;
+
+  mkSuperl : Bool -> A -> {s : Ord ; isPre : Bool} = \b,a ->
+     {s = SyntaxFre.mkOrd a ; isPre = b} ;
+
+    
+    what_distance_IAdv = ss "à quelle distance"**{lock_IAdv=<>};
+    
+    distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
+
 
 }
diff --git a/examples/phrasebook/WordsGer.gf b/examples/phrasebook/WordsGer.gf
--- a/examples/phrasebook/WordsGer.gf
+++ b/examples/phrasebook/WordsGer.gf
@@ -10,13 +10,15 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
-    Cheese = mkCN (mkN "Käse" "Käse" masculine) ;
---    Coffee = mkCN (mkN "Kaffee" "Kaffee" masculine) ;
+    Cheese = mkCN (mkN "Käse" "Käse" "Käse" "Käse" "Käse" "Käse" masculine) ;
+    Chicken = mkCN (mkN "Huhn" "Huhn" "Huhn" "Huhn" "Hühner" "Hühner" neuter) ;
+    Coffee = mkCN (mkN "Kaffee" "Kaffee" "Kaffee" "Kaffee" "Kaffees" "Kaffee" masculine) ;
     Fish = mkCN L.fish_N ;
+    Meat = mkCN (mkN "Fleisch" "Fleisch" "Fleisch" "Fleisch" "Fleisch" "Fleisch" neuter) ;
     Milk = mkCN L.milk_N ;
-    Pizza = mkCN (mkN "pizza" "pizzen" feminine) ;
+    Pizza = mkCN (mkN "Pizza" "Pizzen" feminine) ;
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "Tee" neutrum) ;
+    Tea = mkCN (mkN "Tee" "Tee" "Tee" "Tee" "Tees" "Tees" masculine) ;
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
@@ -31,90 +33,133 @@
     Fresh = mkA "frisch" ;
     Good = L.good_A ;
     Warm = L.warm_A ;
+    Suspect = mkA "verdächtig" ;
 
 -- places
 
-    Airport = mkPlace (mkN "Flughafen" "Flughäfen" masculine) on_Prep to_Prep ;
---     Bar = mkPlace (mkN "bar" "barer") "i" ;
-    Church = mkPlace (mkN "Kirche") in_Prep to_Prep ;
-    Hospital = mkPlace (mkN "Krankenhaus" "Krankenhäuser" neuter) in_Prep to_Prep ;
---     Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ;
-    Restaurant = mkPlace (mkN "Restaurant" "Restaurants" neuter) in_Prep to_Prep ;
-    Station = mkPlace (mkN "Bahnhofen" "Bahnhöfen" masculine) on_Prep to_Prep ;
---     Toilet = mkPlace (mkN "toalett" "toaletter") "på" ;
-    University = mkPlace (mkN "Universität" "Universitäten" feminine) 
-       (mkPrep "an" dative) (mkPrep "an" accusative) ;
+    Airport = mkPlace (mkN "Flughafen" "Flughäfen" masculine) on_Prep zu_Prep ; 
+    Church = mkPlace (mkN "Kirche") in_Prep inAcc_Prep ;
+    Hospital = mkPlace (mkN "Krankenhaus" "Krankenhäuser" neuter) in_Prep inAcc_Prep ;
+    Restaurant = mkPlace (mkN "Restaurant" "Restaurants" neuter) in_Prep inAcc_Prep ;
+    Station = mkPlace (mkN "Bahnhof" "Bahnhöfe" masculine) on_Prep zu_Prep ;
+    University = mkPlace (mkN "Universität" "Universitäten" feminine) in_Prep zu_Prep ;
 
+    AmusementPark = mkPlace (mkN "Vergnügungspark" "Vergnügungspark" "Vergnügungspark" "Vergnügungspark" "Vergnügungsparks" "Vergnügungsparks" masculine) in_Prep inAcc_Prep ;
+    Bank = mkPlace (mkN "Bank" "Bank" "Bank" "Bank" "Banken" "Banken" feminine) in_Prep zu_Prep ;
+    Bar = mkPlace (mkN "Bar" "Bar" "Bar" "Bar" "Bars" "Bars" feminine) in_Prep inAcc_Prep ;
+    Cafeteria = mkPlace (mkN "Cafeteria" "Cafeteria" "Cafeteria" "Cafeteria" "Cafeterien" "Cafeterien" feminine) in_Prep inAcc_Prep ;
+    Center = mkPlace (mkN "Zentrum" "Zentrum" "Zentrum" "Zentrum" "Zentren" "Zentren" neuter) in_Prep zu_Prep ;
+    Cinema = mkPlace (mkN "Kino" "Kino" "Kino" "Kino" "Kinos" "Kinos" neuter) in_Prep inAcc_Prep ;
+    Disco = mkPlace (mkN "Disco" "Disco" "Disco" "Disco" "Discos" "Discos" feminine) in_Prep inAcc_Prep ;
+    Hotel = mkPlace (mkN "Hotel" "Hotel" "Hotel" "Hotel" "Hotels" "Hotels" neuter) in_Prep inAcc_Prep ;
+    Museum = mkPlace (mkN "Museum" "Museum" "Museum" "Museum" "Museen" "Museen" neuter) in_Prep inAcc_Prep ;
+    Park = mkPlace (mkN "Park" "Park" "Park" "Park" "Parks" "Parks" masculine) in_Prep inAcc_Prep ;
+    Parking = mkPlace (mkN "Parkplatz" "Parkplatz" "Parkplatz" "Parkplatz" "Parkplatzen" "Parkplatzen" masculine) on_Prep zu_Prep ;
+    Pharmacy = mkPlace (mkN "Apotheke" "Apotheke" "Apotheke" "Apotheke" "Apotheken" "Apotheken" feminine) in_Prep zu_Prep ;
+    PostOffice = mkPlace (mkN "Post" "Post" "Post" "Post" "Posten" "Posten" feminine) in_Prep inAcc_Prep ;
+    Pub = mkPlace (mkN "Kneipe" "Kneipe" "Kneipe" "Kneipe" "Kneipen" "Kneipen" feminine) in_Prep inAcc_Prep;
+    School = mkPlace (mkN "Schule" "Schule" "Schule" "Schule" "Schulen" "Schule" feminine) in_Prep inAcc_Prep ;
+    Shop = mkPlace (mkN "Geschäft" "Geschäft" "Geschäft" "Geschäft" "Geschäfte" "Geschäfte" neuter) in_Prep inAcc_Prep ;
+    Supermarket = mkPlace (mkN "Supermarkt" "Supermarkt" "Supermarkt" "Supermarkt" "Supermärkten" "Supermärkte" masculine) in_Prep inAcc_Prep ;
+    Theatre = mkPlace (mkN "Theater" "Theater" "Theater" "Theaters" "Theatern" "Thaters" neuter) in_Prep inAcc_Prep ; 
+    Toilet = mkPlace (mkN "Toilette" "Toilette" "Toilette" "Toilette" "Toiletten" "Toiletten" feminine) in_Prep (mkPrep "auf" accusative) ; 
+    Zoo = mkPlace (mkN "Zoo" "Zoo" "Zoo" "Zoo" "Zoos" "Zoos" masculine) in_Prep inAcc_Prep ;
+
+
+CitRestaurant cit = mkCNPlace (mkCN cit  (mkN "Restaurant" "Restaurants" neuter)) in_Prep inAcc_Prep ;
+
+
 -- currencies
 
-    DanishCrown = mkCN (mkA "Dänisch") (mkN "Krone") | mkCN (mkN "Krone") ;
---     Dollar = mkCN (mkN "dollar" "dollar") ;
+    DanishCrown = mkCN (mkA "Dänisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
+     Dollar = mkCN (mkN "Dollar" "Dollar" "Dollar" "Dollar" "Dollar" "Dollar" masculine) ;
     Euro = mkCN (mkN "Euro" "Euro" "Euro" "Euro" "Euro" "Euro" neuter) ;
---     Lei = mkCN (mkN "lei" "lei") ;
-    SwedishCrown = mkCN (mkA "Schwedisch") (mkN "Krone") | mkCN (mkN "Krone") ;
+     Lei = mkCN (mkN "Leu" "Leu" "Leu" "Leu" "Lei" "Lei" masculine) ;
+    SwedishCrown = mkCN (mkA "Schwedisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
+    Leva = mkCN (mkN "Lewa" "Lewa" "Lewa" "Lewa" "Lewa" "Lewa" feminine);
+    NorwegianCrown = mkCN (mkA "Norwegisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
+    Pound = mkCN (mkN "Pfund" "Pfund" "Pfund" "Pfund" "Pfund" "Pfund" neuter) ;
+    Rouble = mkCN (mkN "Rubel" "Rubel" "Rubel" "Rubel" "Rubels" "Rubels" masculine);
+    Zloty = mkCN (mkN "Zloty" "Zloty" "Zloty" "Zloty" "Zloty" "Zloty" masculine);
+   
 
+
 -- nationalities
 
-    Belgian = mkA "Belgisch" ;
+    Belgian = mkA "belgisch" ;
     Belgium = mkNP (mkPN "Belgien") ;
-    English = mkNat "Englisch" "England" ;
-    Finnish = mkNat "Finnisch" "Finnland" ;
-    Flemish = mkNP (mkPN "Flämisch") ;
-    French = mkNat "Französisch" "Frankreich" ; 
-    Italian = mkNat "Italienisch" "Italien" ;
-    Romanian = mkNat "Rumänisch" "Rumänien" ;
-    Swedish = mkNat "Schwedisch" "Schweden" ;
+    Bulgarian = mkNat "Bulgarien" "Bulgarisch" "bulgarisch" ;	
+    Catalan = mkNat "Katalonien" "Katalanisch" "katalanisch" ;
+    Danish = mkNat "Dänemark" "Dänisch" "dänisch" ;
+    Dutch = mkNat "den Niederlanden" "Niederländisch" "niederländisch" ;
+    English = mkNat "England" "Englisch" "englisch" ;
+    Finnish = mkNat "Finnland" "Finnisch" "finnisch" ;
+    Flemish = mkCN (mkN "Flämisch" "Flämisch" neuter) ;
+    French = mkNat "Frankreich" "Französisch" "französisch" ;
+    German = mkNat "Deutschland" "Deutsch" "deutsche" ;
+    Italian = mkNat "Italien" "Italienisch" "italienisch" ;
+    Norwegian = mkNat "Norwegen" "Norwegisch" "norwegisch" ;
+    Polish = mkNat "Polen" "Polnisch" "polnisch"  ;
+    Romanian = mkNat "Rumänien" "Rumänisch" "rumänisch" ;
+    Russian = mkNat "Russland" "Russisch" "russisch" ;
+    Spanish = mkNat "Spanien" "Spanisch" "spanisch" ;
+    Swedish = mkNat "Schweden" "Schwedisch" "schwedisch" ;
 
+
+
 -- actions
 
-    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
-    AHasName p name = mkCl p.name (mkV2 heißen_V) name ;
-    AHungry p = mkCl p.name (mkA "hungrig") ;
-    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
-    AHasRoom p num = mkCl p.name have_V2 
+    AHasAge p num = prop (mkCl p.name (mkNP num L.year_N)) ;
+    AHasName p name = prop (mkCl p.name (mkV2 heißen_V) name) ;
+    AHungry p = prop (mkCl p.name (mkA "hungrig")) ;
+    AHasChildren p num = prop (mkCl p.name have_V2 (mkNP num L.child_N)) ;
+    AHasRoom p num = prop (mkCl p.name have_V2 
       (mkNP (mkNP a_Det (mkN "Zimmer" "Zimmer" neuter)) 
-        (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone")))) ;
-    AHasTable p num = mkCl p.name have_V2 
+        (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone"))))) ;
+    AHasTable p num = prop (mkCl p.name have_V2 
       (mkNP (mkNP a_Det (mkN "Tisch")) 
-        (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone")))) ;
-    AIll p = mkCl p.name (mkA "Krank") ;
-    AKnow p = mkCl p.name wissen_V ;
-    ALike p item = mkCl item (mkV2 (fixprefixV "ge" (fallen_V)) dative) p.name ;
-    ALive p co = mkCl p.name (mkVP (mkVP (mkV "wohnen")) (SyntaxGer.mkAdv in_Prep co)) ;
-    ALove p q = mkCl p.name (mkV2 (mkV "lieben")) q.name ;
-    AMarried p = mkCl p.name (mkA "verheiratet") ;
-    AReady p = mkCl p.name (mkA "fertig") ;
-    AScared p = mkCl p.name have_V2 (mkNP (mkN "Angst" "Angsten" feminine)) ;
-    ASpeak p lang = mkCl p.name  (mkV2 sprechen_V) lang ;
-    AThirsty p = mkCl p.name (mkA "dürstig") ;
-    ATired p = mkCl p.name (mkA "müde") ;
-    AUnderstand p = mkCl p.name (fixprefixV "ver" stehen_V) ;
-    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
-    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
+        (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone"))))) ;
+    AIll p = prop (mkCl p.name (mkA "krank")) ;
+    AKnow p = prop (mkCl p.name wissen_V) ;
+    ALike p item = prop (mkCl p.name (mkV2 mögen_V) item) ;
+    ALive p co = prop (mkCl p.name (mkVP (mkVP (mkV "wohnen")) (SyntaxGer.mkAdv in_Prep co))) ;
+    ALove p q = prop (mkCl p.name (mkV2 (mkV "lieben")) q.name) ;
+    AMarried p = prop (mkCl p.name (mkA "verheiratet")) ;
+    AReady p = prop (mkCl p.name (mkA "bereit")) ;
+    AScared p = prop (mkCl p.name have_V2 (mkNP (mkN "Angst" "Angsten" feminine))) ;
+    ASpeak p lang = mkProp (mkCl p.name (mkV2 sprechen_V) (mkNP lang)) 
+      (mkS (mkCl p.name (mkV2 sprechen_V) (mkNP no_Quant lang))) ;
+    AThirsty p = prop (mkCl p.name (mkA "durstig")) ;
+    ATired p = prop (mkCl p.name (mkA "müde")) ;
+    AUnderstand p = prop (mkCl p.name (fixprefixV "ver" stehen_V)) ;
+    AWant p obj = prop (mkCl p.name want_VV (mkVP have_V2 obj)) ;
+    AWantGo p place = prop (mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to)) ;
 
 -- miscellaneous
 
     QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name heißen_V)) ;
     QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
 
-    PropOpen p = mkCl p.name open_Adv ;
-    PropClosed p = mkCl p.name closed_Adv ;
-    PropOpenDate p d = mkCl p.name (mkVP (mkVP d) open_Adv) ; 
-    PropClosedDate p d = mkCl p.name (mkVP (mkVP d) closed_Adv) ; 
-    PropOpenDay p d = mkCl p.name (mkVP (mkVP d.habitual) open_Adv) ; 
-    PropClosedDay p d = mkCl p.name (mkVP (mkVP d.habitual) closed_Adv) ; 
+    PropOpen p = prop (mkCl p.name open_Adv) ;
+    PropClosed p = prop (mkCl p.name closed_Adv) ;
+    PropOpenDate p d = prop (mkCl p.name (mkVP (mkVP d) open_Adv)) ; 
+    PropClosedDate p d = prop (mkCl p.name (mkVP (mkVP d) closed_Adv)) ; 
+    PropOpenDay p d = prop (mkCl p.name (mkVP (mkVP d.habitual) open_Adv)) ; 
+    PropClosedDay p d = prop (mkCl p.name (mkVP (mkVP d.habitual) closed_Adv)) ; 
 
     HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosten"))) ; 
-    ItCost item price = mkCl item (mkV2 (mkV "kosten")) price ;
+    ItCost item price = prop (mkCl item (mkV2 (mkV "kosten")) price) ;
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("auf Wiedersehen"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("auf Wiedersehen"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("wir sehen uns"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("wir sehen uns"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("wir sehen uns"))) 
+        (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
 
+
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
@@ -137,12 +182,52 @@
 
     Tomorrow = ParadigmsGer.mkAdv "morgen" ;
 
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA "billig") ;
+    TheMostExpensive = mkSuperl (mkA "teuer") ;
+    TheMostPopular = mkSuperl (mkA "beliebt") ;
+    TheWorst = mkSuperl (mkA "schlimm") ;
 
+    SuperlPlace sup p = placeNP sup p ;
+
+
+-- means of transportation 
+
+    Bike = mkTransport L.bike_N ; 
+    Bus = mkTransport (mkN "Bus" "Bus" "Bus" "Bus" "Buss" "Buss" masculine) ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN "Fähre" "Fähre" "Fähre" "Fähre" "Fähren" "Fähren" feminine) ;
+    Plane = mkTransport (mkN "Flugzeug" "Flugzeug" "Flugzeug" "Flugzeug" "Flugzeuge" "Flugzeuge" neuter) ;
+    Subway = mkTransport (mkN "U-Bahn" "U-Bahn" "U-Bahn" "U-Bahn" "U-Bahnen" "U-Bahnen" feminine) ;
+    Taxi = mkTransport (mkN "Taxi" "Taxi" "Taxi" "Taxi" "Taxis" "Taxis" neuter) ;
+    Train = mkTransport (mkN "Zug" "Zug" "Zug" "Zug" "Züge" "Züge" masculine) ;
+    Tram = mkTransport (mkN "Straßenbahn" "Straßenbahn" "Straßenbahn" "Straßenbahn" "Straßenbahnen" "Straßenbahnen" feminine) ;
+
+    ByFoot = ParadigmsGer.mkAdv "zu Fuß" ;
+
+
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ;
+    HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxGer.mkAdv from_Prep x.name)) (ParadigmsGer.mkAdv "entfernt"))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (SyntaxGer.mkAdv zu_Prep (mkNP (mkNP y.name (SyntaxGer.mkAdv from_Prep x.name)) t))))) ;
+    HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl (mkVP (SyntaxGer.mkAdv zu_Prep (mkNP y.name t))))) ;
+ 
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
+
+
+
   oper
-    mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> 
-      {lang = mkNP (mkPN nat) ; 
-       prop = mkA nat ; country = mkNP (mkPN co)} ;
 
+    mkNat : Str -> Str -> Str -> {lang : CN ; prop : A ; country : NP} = \co, la, adj -> 
+      {lang = mkCN (mkN la la neuter) ; 
+       prop = mkA adj ; country = mkNP (mkPN co)} ;
+     
     mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
       let day = mkNP (mkPN d) in
       {name = day ; 
@@ -150,15 +235,27 @@
        habitual = ParadigmsGer.mkAdv (d + "s") ----
       } ;
 
-    mkPlace : N -> Prep -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,at,to -> {
+    mkPlace : N -> Prep -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,at,to -> {
       name = mkCN p ;
       at = at ;
-      to = to
+      to = to ;
+      isPl = False
       } ;
 
-    open_Adv = mkAdv "geöffnet" ;  ---- Adv to get right word order easily
-    closed_Adv = mkAdv "geschlossen" ;
+    open_Adv = ParadigmsGer.mkAdv "geöffnet" ;  ---- Adv to get right word order easily
+    closed_Adv = ParadigmsGer.mkAdv "geschlossen" ;
 
     xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
+  
+    
+    mkSuperl : A -> Det = \a -> SyntaxGer.mkDet the_Art (SyntaxGer.mkOrd a) ;
+
+
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxGer.mkAdv by8means_Prep (mkNP the_Det n)
+      } ;
+
+   far_IAdv = ss "wie weit" ** {lock_IAdv = <>} ; 
 
 }
diff --git a/examples/phrasebook/WordsIta.gf b/examples/phrasebook/WordsIta.gf
--- a/examples/phrasebook/WordsIta.gf
+++ b/examples/phrasebook/WordsIta.gf
@@ -32,10 +32,10 @@
 
     Bad = L.bad_A ;
     Boring = mkA "noioso" ;
-    Cheap = let c = "a buon mercato" in mkA c c c c c ; ----
+    Cheap = mkA "conveniente";
     Cold = L.cold_A ;
     Delicious = mkA "delizioso" ;
-    Expensive = mkA "caro" ;
+    Expensive = mkA "costoso" ;
     Fresh = mkA "fresco" ;
     Good = L.good_A ;
     Warm = L.warm_A ;
@@ -44,41 +44,99 @@
 -- places
 
     Airport = mkPlace (mkN "aeroporto") dative ;
-    Bar = mkPlace (mkN "bar") P.in_Prep ;
+    AmusementPark = mkPlace (mkN "parco divertimenti") dative ;
+    Bank = mkPlace (mkN "banca") P.in_Prep ;
+    Bar = mkPlace (mkN "bar") dative ;
+    Cafeteria = mkPlace (mkN "mensa") P.in_Prep;
+    Center = mkPlace (mkN "centro") P.in_Prep;
     Church = mkPlace (mkN "chiesa") P.in_Prep ;
-    Cinema = mkPlace (mkN "cinema") P.in_Prep ;
+    Cinema = mkPlace (mkN "cinema" masculine) dative ;
+    Disco = mkPlace (mkN "discoteca") P.in_Prep;
     Hospital = mkPlace (mkN "ospedale") P.in_Prep ;
     Hotel = mkPlace (mkN "albergo") P.in_Prep ;
-    Museum = mkPlace (mkN "museo") P.in_Prep ;
-    Park = mkPlace (mkN "parco") P.in_Prep ;
-    Restaurant = mkPlace (mkN "ristorante") P.in_Prep ;
-    School = mkPlace (mkN "scuola") P.in_Prep ;
+    Museum = mkPlace (mkN "museo") dative ;
+    Park = mkPlace (mkN "parco") dative ;
+    Parking = mkPlace (mkN "parcheggio") dative ;
+    Pharmacy = mkPlace (mkN "farmacia") P.in_Prep ;
+    PostOffice = mkPlace (mkN "ufficio postale") dative ;
+    Pub = mkPlace (mkN "birreria") P.in_Prep ;
+    Restaurant = mkPlace (mkN "ristorante") dative ;
+    School = mkPlace (mkN "scuola") dative ;
     Shop = mkPlace (mkN "negozio") P.in_Prep ;
     Station = mkPlace (mkN "stazione" feminine) dative ;
-    Theatre = mkPlace (mkN "teatro") P.in_Prep ;
+    Supermarket = mkPlace (mkN "supermercato") dative ;
+    Theatre = mkPlace (mkN "teatro") dative ;
     Toilet = mkPlace (mkN "bagno") P.in_Prep ;
     University = mkPlace (mkN "università") dative ;
+    Zoo = mkPlace (mkN "zoo") dative ;
 
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "ristorante")) P.in_Prep dative ;
+
+
+
+-- transports
+
+   HowFar place = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkV "distare")));
+
+-- -- how far is place from x
+   HowFarFrom x place = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkV2 (mkV "distare") from_Prep) x.name ))) ;
+
+-- -- how far is place by t
+   HowFarBy place t = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkVP (mkV "distare")) t)) ); 
+
+-- -- how far is place from x by t
+   HowFarFromBy x place t = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkVP (mkV2 (mkV "distare") from_Prep)x.name) t) )); 
+
+--   HowFarFromBy x y t =  mkQS (mkQCl (mkIAdv (mkIAdv L.far_Adv (SyntaxIta.mkAdv from_Prep x.name)) t) y.name) ;
+
 -- currencies
 
     DanishCrown = mkCN (mkA "danese") (mkN "corona") | mkCN (mkN "corona") ;
     Dollar = mkCN (mkN "dollar") ;
-    Euro = mkCN (mkN "euro" "euro" masculine) ;
-    Lei = mkCN (mkN "lei") ; ---- ?
+    Euro = mkCN (mkN "Euro" "Euro" masculine) ;
+    Lei = mkCN (mkN "leu") ; 
+    Leva = mkCN (mkN "lev" "lev" masculine) ; 
+    NorwegianCrown = mkCN (mkA "norvegese") (mkN "corona") | mkCN (mkN "corona") ;
+    Pound = mkCN (mkN "sterlina") ;
+    Rouble = mkCN (mkN "rublo") ; 
     SwedishCrown = mkCN (mkA "svedese") (mkN "corona") | mkCN (mkN "corona") ;
+    Zloty = mkCN (mkN "zloty" "zlotych" masculine) ;
 
 -- nationalities
 
     Belgian = mkA "belga" ;
     Belgium = mkNP (mkPN "Belgio") ;
+    Bulgarian = mkNat "bulgaro" "Bulgaria" ;
+    Catalan = mkNat "catalano" "Catalonia" ;
+    Danish = mkNat "danese" "Danimarca" ;
+    Dutch = mkNat "olandese" "Olanda" ;
     English = mkNat "inglese" "Inghilterra" ;
     Finnish = mkNat "finlandese" "Finlandia" ;
     Flemish = mkNP (mkPN "fiammingo") ;
-    French = mkNat "francese" "Francia" ; 
+    French = mkNat "francese" "Francia" ;
+    German = mkNat "tedesco" "Germania" ;
     Italian = mkNat "italiano" "Italia" ;
+    Norwegian = mkNat "norvegese" "Norvegia" ;
+    Polish = mkNat "polacco" "Polonia" ;
     Romanian = mkNat "rumeno" "Romania" ;
+    Russian = mkNat "russo" "Russia" ;
+    Spanish = mkNat "spagnolo" "Spagna" ;
     Swedish = mkNat "svedese" "Svezia" ;
 
+-- means of transportation 
+
+    Bike = mkTransport (mkN "bicicletta") ; 
+    Bus = mkTransport (mkN "autobus" "autobus" masculine) ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN "traghetto") ;
+    Plane = mkTransport L.airplane_N ;
+    Subway = mkTransport (mkN "metro" feminine) ; 
+    Taxi = mkTransport (mkN "taxi" masculine) ; 
+    Train = mkTransport (mkN "treno") ;
+    Tram = mkTransport (mkN "tram") ;
+
+    ByFoot = ParadigmsIta.mkAdv "a piedi" ;    
+
 -- actions
 
     AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
@@ -110,6 +168,8 @@
 
     QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ;
     QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; 
+    ItCost item price = mkCl item (mkV2 (mkV "costare")) price ;
 
     PropOpen p = mkCl p.name open_A ;
     PropClosed p = mkCl p.name closed_A ;
@@ -118,14 +178,13 @@
     PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
     PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
 
-    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; 
-    ItCost item price = mkCl item (mkV2 (mkV "costare")) price ;
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text (ss ("ci vediamo"))) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
+    PSeeYouDate d = mkText (lin Text (ss ("ci vediamo"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("ci vediamo"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
       mkText (lin Text (ss ("ci vediamo"))) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
@@ -133,10 +192,10 @@
 -- below. Languages with productive genitives can use an equivalent of
 -- "my son's wife" for non-pronouns, as e.g. in English.
 
-    Wife = xOf sing (mkN "sposa") ;
-    Husband = xOf sing (mkN "marito") ;
-    Son = xOf sing (mkN "figlio") ;
-    Daughter = xOf sing (mkN "figlia") ;
+    Wife = xOf sing (mkN "moglie" feminine) ;
+    Husband = xOf sing (mkN "marito" masculine) ;
+    Son = xOf sing (mkN "figlio" masculine) ;
+    Daughter = xOf sing (mkN "figlia" feminine) ;
     Children = xOf plur L.child_N ;
 
 -- week days
@@ -151,6 +210,35 @@
 
     Tomorrow = P.mkAdv "domani" ;
 
+lin
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxIta.mkAdv for_Prep place.name)))) ;
+
+-- modifiers of places
+
+    TheBest = mkSuperl True L.good_A ;
+    TheClosest = mkSuperl False L.near_A ; 
+    TheCheapest = mkSuperl False (mkA (mkA "economico") (mkA "meno caro")) ;
+    TheMostExpensive = mkSuperl False (mkA "costoso") ;
+    TheMostPopular = mkSuperl False (mkA "alla moda") ;
+    TheWorst = mkSuperl True L.bad_A ;
+
+    SuperlPlace sup kind = 
+      let 
+        det  : Det = mkDet the_Art (mkOrd sup.s) ;
+        name : NP  = case sup.isPre of {
+          True  => mkNP det kind.name ;                 -- il migliore bar
+          False => mkNP the_Art (mkCN (mkAP (mkOrd sup.s)) kind.name)  -- il bar più caro
+          } 
+      in {
+        name = name ;
+        at = SyntaxIta.mkAdv kind.at name ;
+        to = SyntaxIta.mkAdv kind.to name
+      } ;
+
 -- auxiliaries
 
   oper
@@ -159,15 +247,22 @@
 
     mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
       let day = mkNP (mkPN d) in
-      mkNPDay day (P.mkAdv ("il" ++ d)) (P.mkAdv ("il" ++ d)) ; ---- ?
+      mkNPDay day (P.mkAdv d) (P.mkAdv ("di" ++ d)) ; ---- ?
 
-    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
+    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
       mkCNPlace (mkCN p) i dative ;
 
     xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
 
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = E.PrepCN P.in_Prep n
+      } ;
+
+    mkSuperl : Bool -> A -> {s : A ; isPre : Bool} = \b,a -> 
+      {s = a ; isPre = b} ;
+
     open_A = mkA "aperto" ;
     closed_A = mkA "chiuso" ;
-
 
 }
diff --git a/examples/phrasebook/WordsNor.gf b/examples/phrasebook/WordsNor.gf
--- a/examples/phrasebook/WordsNor.gf
+++ b/examples/phrasebook/WordsNor.gf
@@ -1,167 +1,272 @@
 -- (c) 2009 Aarne Ranta under LGPL
 
 concrete WordsNor of Words = SentencesNor ** 
-    open SyntaxNor, ParadigmsNor, IrregNor, (L = LexiconNor), ExtraNor, Prelude in {
+    open SyntaxNor, ParadigmsNor, IrregNor, (L = LexiconNor), ExtraNor, StructuralNor, Prelude in {
 
   lin
 
 -- kinds of food
 
-    Apple = mkCN L.apple_N ;
+    Apple = mkCN (mkN "eple" "eplet" "epler" "eplene") ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "ost") ;
---    Chicken = mkCN (mkN "kyckling") ;
---    Coffee = mkCN (mkN "kaffe" neutrum) ;
+    Cheese = mkCN (mkN "ost" "osten" "oster" "ostene") ;
+    Chicken = mkCN (mkN "kylling" "kyllingen" "kyllinger" "kyllingene") ;
+    Coffee = mkCN (mkN "kaffe" "kaffet" "kaffen" "kaffene") ; -- av kaffe ?
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "kött" "kött") ;
+    Meat = mkCN (mkN "kjøtt" "kjøttet" "kjøtt" "kjøtta") ;
     Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Pizza = mkCN (mkN "pizza" "pizzaen" "pizzaer" "pizzaene") ; -- av pizza ?
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "te" neutrum) ;
+    Tea = mkCN (mkN "te" "teen" "teer" "teene") ; -- av te ?
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
 -- properties
 
     Bad = L.bad_A ;
---    Cheap = mkA "billig" ;
---    Boring = mkA "tråkig" ;
+    Cheap = mkA "billig" ;
+    Boring = mkA "kjedelig" ;
     Cold = L.cold_A ;
---    Delicious = mkA "läcker" ;
---    Expensive = mkA "dyr" ;
---    Fresh = mkA "färsk" ;
+    Delicious = mkA "deilig" ;
+    Expensive = mkA "dyr" ;
+    Fresh = mkA "fersk" ;
     Good = L.good_A ;
---    Suspect = mkA "suspekt" "suspekt" ;
+    Suspect = mkA "suspekt" "suspekt" ;
     Warm = L.warm_A ;
 
 -- places
 
---    Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ;
---    Bar = mkPlace (mkN "bar" "barer") "i" ;
---    Church = mkPlace (mkN "kyrka") "i" ;
---    Cinema = mkPlace (mkN "bio" "bio" "bion" "biona") "på" ; ---- ?
---    Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ;
---    Hotel = mkPlace (mkN "hotell" "hotell") "på" ;
---    Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ;
---    Park = mkPlace (mkN "park" "parker") "i" ;
---    Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ;
---    Shop = mkPlace (mkN "affär" "affär") "i" ;
---    School = mkPlace (mkN "skola") "på" ;
---    Station = mkPlace (mkN "station" "stationer") "på" ;
---    Theatre = mkPlace (mkN "teater" "teatrar") "på" ;
---    Toilet = mkPlace (mkN "toalett" "toaletter") "på" ;
---    University = mkPlace (mkN "universitet" "universitet") "på" ;
 
+    Airport = mkPlace (mkN "flyplass" "flyplassen" "flyplasser" "flyplassene") "på" "til";
+    AmusementPark = mkPlace (mkN "fornøyelsespark" "fornøyelsesparken" "fornøyelsesparker" "fornøyelsesparkene") "i" "til";
+    Bank = mkPlace (mkN "bank" "banken" "banker" "bankene") "i" "til";
+    Bar = mkPlace (mkN "bar" "baren" "barer" "barene") "i" "til"; -- ?? check forms
+    Cafeteria = mkPlace (mkN "kafeteria" "kafeterian" "kafeterier" "kafeteriene") "i" "til";
+    Center = mkPlace (mkN "sentrum" "sentrum" "sentre" "sentrene") "i" "til";
+    Cinema = mkPlace (mkN "kino" "kino" "kinoer" "kinoene") "på" "på";
+    Church = mkPlace (mkN "kirke" "kirka" "kirker" "kirkene") "i" "til"; 
+    Disco = mkPlace (mkN "diskotek" "diskoteket" "diskoteker" "diskotekene") "på" "på";
+    Hospital = mkPlace (mkN "sykehus" "sykehuset" "sykehus" "sykehusa") "på" "til";
+
+    Hotel = mkPlace (mkN "hotel" "hotellet" "hoteller" "hotellene") "på" "til";
+    Museum = mkPlace (mkN "museum" "museet" "museer" "museene") "i" "til";
+    Park = mkPlace (mkN "park" "parken" "parker" "parkene") "i" "til";
+    Parking = mkPlace (mkN "parkeringsplass" "parkeringsplassen" "parkeringsplasser" "parkeringplassene") "på" "til";
+    Pharmacy = mkPlace (mkN "apotek" "apoteket" "apoteker" "apotekene") "på" "til";
+    PostOffice = mkPlace (mkN "postkontor" "postkontoret" "postkontorer" "postkontorene") "på" "til";
+    Pub = mkPlace (mkN "pub" "puben" "puber" "pubene") "på" "til";
+    Restaurant = mkPlace (mkN "restaurant" "restauranten" "restauranter" "restaurantene") "på" "til";
+    School = mkPlace (mkN "skole" "skola" "skoler" "skolene") "i" "til";
+    Shop = mkPlace (mkN "butikk" "butikken" "butikker" "butikkene") "i" "til";
+    Station = mkPlace (mkN "stasjon" "stasjonen" "stasjoner" "stasjonene") "på" "til";
+    Supermarket = mkPlace (mkN "supermarked" "supermarkedet" "supermarkeder" "supermarkedene") "på" "til";
+    Theatre = mkPlace (mkN "teater" "teatret" "teatre" "teatrene") "på" "til";
+    Toilet = mkPlace (mkN "toalett" "toalettet" "toaletter" "toalettene") "på" "på";
+    University = mkPlace (mkN "universitet" "universitetet" "universitet" "universiteta") "i" "til";
+    Zoo = mkPlace (mkN "dyrepark" "dyreparken" "dyreparker" "dyreparkene") "på" "til";
+
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant" "restauranten" "restauranter" "restaurantene")) on_Prep to_Prep ;
+
 -- currencies
 
---    DanishCrown = mkCN (mkA "dansk") (mkN "krona") | mkCN (mkN "krona") ;
---    Dollar = mkCN (mkN "dollar" "dollar") ;
---    Euro = mkCN (mkN "euro" "euro") ;
---    Lei = mkCN (mkN "lei" "lei") ;
---    SwedishCrown = mkCN (mkA "svensk") (mkN "krona") | mkCN (mkN "krona") ;
+    DanishCrown = mkCN (mkA "dansk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
+    Dollar = mkCN (mkN "dollar" "dollaren" "dollar" "dollar") ; -- i dollar ?
+    Euro = mkCN (mkN "euro" "euroen" "euro" "euro") ; -- i euro 
+    Lei = mkCN (mkN "leu" "leu" "leis" "leis") ; -- den leis ?
+    Leva = mkCN (mkN "lev" "lev" "leva" "leva") ; -- det leva ?
+    NorwegianCrown = mkCN (mkA "norsk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
+    Pound = mkCN (mkN "pund" "pundet" "pund" "punda") ; -- i pounds ?
+    Rouble = mkCN (mkN "rubel" "rubelen" "rubler" "rublene") ; -- av rubler ?
+    SwedishCrown = mkCN (mkA "svensk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
+    Zloty = mkCN (mkN "zloty" "zloty" "zloty" "zloty") ; -- i/den zloty ?
 
 -- nationalities
 
---    Belgian = mkA "belgisk" ;
---    Belgium = mkNP (mkPN "Belgien") ;
---    English = mkNat "engelsk" "England" ;
---    Finnish = mkNat "finsk" "Finland" ;
---    Flemish = mkNP (mkPN "flamländska") ;
---    French = mkNat "fransk" "Frankrike" ; 
---    Italian = mkNat "italiensk" "Italien" ;
---    Romanian = mkNat "rumänsk" "Rumänien" ;
---    Swedish = mkNat "svensk" "Sverige" ;
 
+    Belgian = mkA "belgisk" ;
+    Belgium = mkNP (mkPN "Belgia") ;
+    Bulgarian = mkNat "bulgarsk" "Bulgaria" ;
+    Catalan = mkNat "katalansk" "Katalonia" ;
+    Danish = mkNat "dansk" "Danmark" ;
+    Dutch =  mkNat "nederlandsk" "Nederland" ;
+    English = mkNat "engelsk" "England" ;
+    Finnish = mkNat "finsk" "Finland" ;
+    Flemish = mkNP (mkPN "flamsk") ;
+    French = mkNat "fransk" "Frankrike" ; 
+    German = mkNat "tysk" "Tyskland" ;
+    Italian = mkNat "italiensk" "Italia" ;
+    Norwegian = mkNat "norsk" "Norge" ;
+    Polish = mkNat "polsk" "Polen" ;
+    Romanian = mkNat "rumensk" "Romania" ;
+    Russian = mkNat "russisk" "Russland" ;
+    Spanish = mkNat "spansk" "Spania" ;
+    Swedish = mkNat "svensk" "Sverige" ;
+
+
+
+-- Means of transportation 
+
+   Bike = mkTransport L.bike_N ;
+   Bus = mkTransport (mkN "buss" "bussen" "busser" "bussene") ;
+   Car = mkTransport L.car_N ;
+   Ferry = mkTransport (mkN "ferge" "fergen" "ferger" "fergene") ;
+   Plane = mkTransport L.airplane_N ;
+   Subway = mkTransport (mkN "undergrunnsbane" "undergrunnsbanen" "undergrunnsbaner" "undergrunnsbanene") ; -- check ?
+   Taxi = mkTransport (mkN "drosje" "drosja" "drosjer" "drosjene") ;
+   Train = mkTransport (mkN "tog" "toget" "tog" "toga") ;
+   Tram = mkTransport (mkN "trikk" "trikken" "trikker" "trikkene") ;
+
+   ByFoot = ParadigmsNor.mkAdv "til fots" ;
+
+
+
+
 -- actions
 
---    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
---    AHasName p name = mkCl p.name (mkV2 (mkV "heter")) name ;
+    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+    AHasName p name = mkCl p.name (mkV2 hete_V) name ;
     AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "rum" "rum")) 
---        (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "bord" "bord")) 
---        (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
---    AHungry p = mkCl p.name (mkA "hungrig") ;
---    AIll p = mkCl p.name (mkA "sjuk") ;
---    AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; 
---    ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxNor.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ;
---    AMarried p = mkCl p.name (mkA "gift") ;
---    AReady p = mkCl p.name (mkA "färdig") ;
---    AScared p = mkCl p.name (mkA "rädd") ;
---    ASpeak p lang = mkCl p.name  (mkV2 (mkV "tala")) lang ;
---    AThirsty p = mkCl p.name (mkA "törstig") ;
---    ATired p = mkCl p.name (mkA "trött") ;
---    AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ;
---    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "rom" "rommet" "rommene" "romma")) 
+        (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personen" "personer" "personene")))) ;
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "bord" "bordet" "bord" "borda")) 
+        (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personen" "personer" "personene")))) ;
+    AHungry p = mkCl p.name (mkA "sulten" "sultet" "sultne") ;
+    AIll p = mkCl p.name (mkA "syk") ;
+    AKnow p = mkCl p.name vite_V ; 
+    ALike p item = mkCl p.name (dirV2 (mk2V "like" "likte")) item ;
+    ALive p co = mkCl p.name  (mkVP (mkVP (mkV "bor")) (SyntaxNor.mkAdv in_Prep co)) ;
+    ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
+    AMarried p = mkCl p.name (mkA "gift") ;
+    AReady p = mkCl p.name (mkA "klar") ;
+    AScared p = mkCl p.name (mkA "redd") ;
+    ASpeak p lang = mkCl p.name  (dirV2 (regV "snakke")) lang ;
+    AThirsty p = mkCl p.name (mkA "tørstig") ;
+    ATired p = mkCl p.name (mkA "sliten") ;
+    AUnderstand p = mkCl p.name (irregV "forstå" "forstod" "forstått") ;
+    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
 
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 (mkV "heter"))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosta"))) ; 
---    ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ;
+    QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 hete_V)) ;
+    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "koste"))) ; 
+    ItCost item price = mkCl item (mkV2 (mkV "koste")) price ;
 
---    PropOpen p = mkCl p.name open_A ;
---    PropClosed p = mkCl p.name closed_A ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+    PropOpen p = mkCl p.name open_A ;
+    PropClosed p = mkCl p.name closed_A ;
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("vi ses"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("vi ses"))) 
+        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
 
---    Wife = xOf sing (mkN "fru" "fruar") ;
---    Husband = xOf sing L.man_N ;
---    Son = xOf sing (mkN "son" "söner") ;
---    Daughter = xOf sing (mkN "dotter" "döttrar") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (mkN "kone" "kona" "koner" "konene") ;
+    Husband = xOf sing L.man_N ;
+    Son = xOf sing (mkN "sønn" "sønnen" "sønner" "sønnene") ;
+    Daughter = xOf sing (mkN "datter" "datteren" "døtre" "døtrene") ;
+    Children = xOf plur L.child_N ;
 
 -- week days
 
---    Monday = mkDay "måndag" ;
---    Tuesday = mkDay "tisdag" ;
---    Wednesday = mkDay "onsdag" ;
---    Thursday = mkDay "torsdag" ;
---    Friday = mkDay "fredag" ;
---    Saturday = mkDay "lördag" ;
---    Sunday = mkDay "söndag" ;
+    Monday = mkDay "mandag" ;
+    Tuesday = mkDay "tirsdag" ;
+    Wednesday = mkDay "onsdag" ;
+    Thursday = mkDay "torsdag" ;
+    Friday = mkDay "fredag" ;
+    Saturday = mkDay "lørdag" ;
+    Sunday = mkDay "søndag" ;
 
---    Tomorrow = ParadigmsNor.mkAdv "imorgon" ;
+    Tomorrow = ParadigmsNor.mkAdv "i morgen" ;
 
---  oper
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN (nat + "a"))) (mkNP (mkPN co)) (mkA nat) ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxNor.mkAdv on_Prep day) 
---        (SyntaxNor.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+-- modifiers of places
 
---    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
---      mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA "billig") ;
+    TheMostExpensive = mkSuperl (mkA "dyr") ;
+    TheMostPopular = mkSuperl (mkA "populær") ;
+    TheWorst = mkSuperl L.bad_A ;
 
---    open_A = mkA "öppen" "öppet" ;
---    closed_A = mkA "stängd" "stängt" ;
+    SuperlPlace sup p = placeNP sup p ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
 
 
---}
+
+-- transports
+
+    HowFar place = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP place.to))) ;
+    HowFarFrom x y = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP y.to) 
+                    (SyntaxNor.mkAdv from_Prep x.name)))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP (mkVP y.to) 
+                    (SyntaxNor.mkAdv from_Prep x.name)) t))) ;
+    HowFarBy place t = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP place.to) t))) ;
+
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
+
+  oper
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+
+   mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+      let day = mkNP (mkPN d) in 
+      mkNPDay day (SyntaxNor.mkAdv on_Prep day) 
+        (SyntaxNor.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
+
+    mkPlace : N -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,t -> 
+    mkCNPlace (mkCN p) (mkPrep i) (mkPrep t) ;
+
+    open_A = mkA "åpen" "åpent";
+    closed_A = mkA "stengt" "stengt";
+
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
+      relativePersonNor n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+
+    mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
+
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxNor.mkAdv by8means_Prep (mkNP the_Det n)
+      } ;
+
+    far_IAdv = ExtraNor.IAdvAdv (ParadigmsNor.mkAdv "langt") ;
+
+    how8much_IAdv : IAdv = ss "hvor mye" ** {lock_IAdv = <>};
+
+  relativePersonNor : GNumber -> CN -> (Num -> NP -> CN -> NP) -> NPPerson -> NPPerson = 
+    \n,x,f,p -> 
+      let num = if_then_else Num n plNum sgNum in {
+      name = case p.isPron of {
+        True => PossNP (mkNP the_Quant num x) p.name ;
+        _    => f num p.name x
+        } ;
+      isPron = False ;
+      poss = mkQuant he_Pron -- not used because not pron
+      } ;
+
 }
diff --git a/examples/phrasebook/WordsPol.gf b/examples/phrasebook/WordsPol.gf
--- a/examples/phrasebook/WordsPol.gf
+++ b/examples/phrasebook/WordsPol.gf
@@ -1,13 +1,19 @@
---2 Implementations of Words, with English as example
+--2 Implementations of Words, with Polish as example
 
 concrete WordsPol of Words = SentencesPol ** 
     open 
+      ResPol,
       SyntaxPol, 
-      ParadigmsPol, 
       (L = LexiconPol), 
       (P = ParadigmsPol), 
---      ExtraPol, 
+      (Q = QuestionPol),
+      (N = NounPol),
+      MorphoPol,
       Prelude in {
+    
+  flags  
+    optimize =values ; coding =utf8 ; 
+      
   lin
 
 -- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
@@ -15,162 +21,343 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "cheese") ;
---    Chicken = mkCN (mkN "chicken") ;
---    Coffee = mkCN (mkN "coffee") ;
+    Cheese = mkCN L.cheese_N ;
+    Chicken = mkCN (P.nPtak "kurczak") ;
+    Coffee = mkCN ({ s = table { 
+	     SF Sg Nom => "kawa";
+	     SF Sg (Acc|Gen) => "kawę";
+	     SF Sg Instr => "kawą";
+	     SF Sg VocP => "kawo"; 
+	     SF Sg _ => "kawie"; 
+	     SF Pl Gen => "kawy"; 
+	     SF Pl Dat => "kawom";
+	     SF Pl Instr => "kawami";
+	     SF Pl Loc => "kawach";
+	     SF Pl _ => "kawy" 
+	     };
+	   g = Fem;
+	   lock_N : {} = <>});
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "meat") ;
+    Meat = mkCN L.meat_N ;
     Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Pizza = mkCN ({ s = table { 
+	     SF Sg Nom => "pizza";
+	     SF Sg (Acc) => "pizzę";
+	     SF Sg Instr => "pizzą";
+	     SF Sg (Dat|Gen) => "pizzy";
+	     SF Sg VocP => "pizzo"; 
+	     SF Sg _ => "pizzie"; 
+	     SF Pl Gen => "pizz"; 
+	     SF Pl Dat => "pizzom";
+	     SF Pl Instr => "pizzami";
+	     SF Pl Loc => "pizzach";
+	     SF Pl _ => "pizze" 
+	     };
+	   g = Fem;
+	   lock_N : {} = <>});
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "tea") ;
+    Tea = mkCN (P.nWoda "herbata") ;
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
 -- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
 
     Bad = L.bad_A ;
---    Boring = mkA "boring" ;
---    Cheap = mkA "cheap" ;
+    Boring = mkA (mkRegAdj "nudny" "nudniejszy" "nudno" "nudniej" );
+    Cheap = mkA (mkRegAdj "tani" "tańszy" "tanio" "taniej" );
     Cold = L.cold_A ;
---    Delicious = mkA "delicious" ;
---    Expensive = mkA "expensive" ;
---    Fresh = mkA "fresh" ;
+    Delicious = mkA (mkRegAdj "pyszny" "pyszniejszy" "pysznie" "pyszniej") ;
+    Expensive = mkA (mkRegAdj "drogi" "droższy" "drogo" "drożej" );
+    Fresh = mkA (mkRegAdj "świeży" "świeższy" "świeżo" "świeżej" );
     Good = L.good_A ;
---    Suspect = mkA "suspect" ;
+    Suspect = mkA (mkCompAdj "podejrzany" "podejrzanie" );
     Warm = L.warm_A ;
 
 -- Places require different prepositions to express location; in some languages 
 -- also the directional preposition varies, but in English we use $to$, as
 -- defined by $mkPlace$.
 
---    Airport = mkPlace "airport" "at" ;
---    Bar = mkPlace "bar" "in" ;
---    Church = mkPlace "church" "in" ;
---    Cinema = mkPlace "cinema" "at" ;
---    Hospital = mkPlace "hospital" "in" ;
---    Hotel = mkPlace "hotel" "in" ;
---    Museum = mkPlace "museum" "in" ;
---    Park = mkPlace "park" "in" ;
---    Restaurant = mkPlace "restaurant" "in" ;
---    School = mkPlace "school" "at" ;
---    Shop = mkPlace "shop" "in" ;
---    Station = mkPlace "station" "at" ;
---    Theatre = mkPlace "theatre" "at" ;
---    Toilet = mkPlace "toilet" "in" ;
---    University = mkPlace "university" "at" ;
+    Airport = mkPlaceNa (P.nWojsko "lotnisko") ;
+    AmusementPark = mkPlaceDo ["wesołe miasteczko"] ["wesołego miasteczka"] ["wesołym miasteczku"] Neut;
+    Bank = mkPlaceDo "bank" "banku" "banku" (Masc Inanimate);
+    Bar = mkPlaceDo "bar" "baru" "barze" (Masc Inanimate);
+    Cafeteria = mkPlaceDo "stołówka" "stołówki" "stołówce" Fem;
+    Center = mkPlaceDo "centrum" "centrum" "centrum" Neut;
+    Cinema = mkPlaceDo "kino" "kina" "kinie" Neut ;
+    Church = mkPlaceDo "kościół" "kościoła" "kościele" (Masc Inanimate);
+    Disco = mkPlaceNa "dyskoteka" "dyskotekę" "dyskotece" Fem ;
+    Hospital = mkPlaceDo "szpital" "szpitala" "szpitalu" (Masc Inanimate);
+    Hotel = mkPlaceDo "hotel" "hotelu" "hotelu" (Masc Inanimate) ;
+    Museum = mkPlaceDo "muzeum" "muzeum" "muzeum" Neut ;
+    Park = mkPlaceDo "park" "parku" "parku" (Masc Inanimate) ;
+    Parking = mkPlaceNa "parking" "parking" "parkingu" (Masc Inanimate) ;
+    Pharmacy = mkPlaceDo "apteka" "apteki" "aptece" Fem ;
+    PostOffice = mkPlaceNa "poczta" "pocztę" "poczcie" Fem ;
+    Pub = mkPlaceDo "pub" "pubu" "pubie" (Masc Inanimate) ;
+    Restaurant = mkPlaceDo L.restaurant_N;
+    School = mkPlaceDo L.school_N;
+    Shop = mkPlaceDo "sklep" "sklepu" "sklepie" (Masc Inanimate) ;
+    Station = mkPlaceNa "stacja" "stację" "stacji" Fem ;
+    Supermarket = mkPlaceDo "supermarket" "supermarketu" "supermarkecie" (Masc Inanimate) ;
+    Theatre = mkPlaceDo "teatr" "teatru" "teatrze" (Masc Inanimate) ;
+    Toilet = mkPlaceDo "toaleta" "toalety" "toalecie" Fem ;
+    University = mkPlaceNa L.university_N;
+    Zoo = mkPlaceDo "zoo" "zoo" "zoo" Neut ;
+   
+    CitRestaurant cit = { name=(mkCN cit.prop (mkCN L.restaurant_N));
+        at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
 
+
 -- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
 
---    DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
---    Dollar = mkCN (mkN "dollar") ;
---    Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
---    Lei = mkCN (mkN "leu" "lei") ;
---    SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
+    DanishCrown = mkCN (mkCurrency "korona duńska" "korony duńskie" "koron duńskich" Fem);
+    Dollar = mkCN (P.nSer "dolar") ;
+    Euro = mkCN (mkCurrency "euro" "euro" "euro" Neut);
+    Lei = mkCN (mkCurrency "leja" "leje" "lei" Fem);
+    Leva = mkCN (mkCurrency "lew" "lewy" "lewów" (Masc Animate));
+    NorwegianCrown = mkCN (mkCurrency "korona norweska" "korony norweskie" "koron norweskich" Fem);
+    Pound = mkCN (mkCurrency "funt" "funty" "funtów" (Masc Animate));
+    Rouble = mkCN (mkCurrency "rubel" "ruble" "rubli" (Masc Animate));
+    SwedishCrown = mkCN (mkCurrency "korona szwedzka" "korony szwedzkie" "koron szwedzkich" Fem);
+    Zloty = mkCN (mkCurrency "złoty" "złote" "złotych" (Masc Animate));
 
 -- Nationalities
+--  język, po języku, obywatelstwo, kraj, obywatelem, obywatelami, obywatelką
+    Belgian = {prop=mkA (mkCompAdj "belgijski"); citizenMSg="Belgiem"; citizenMPl="Belgami"; citizenF="Belgijką"};
+    Belgium = mkNP (P.nLilia "Belgia") ;
+    Bulgarian = mkNat "bułgarski" ["po bułgarsku"] "bułgarski" (P.nLilia "Bułgaria") "Bułgarem" "Bułgarami" "Bułgarką";
+    Catalan = mkNat "kataloński" ["po katalońsku"] "kataloński" (P.nLilia "Katalonia") "Katalończykiem" "Katalończykami" "Katalonką";
+    Danish = mkNat "duński" ["po duńsku"] "duński" (P.nLilia "Dania") "Duńczykiem" "Duńczykami" "Dunką";
+    Dutch =  mkNat "holenderski" ["po holendersku"] "holenderski" (P.nLilia "Holandia") "Holendrem" "Holendrami" "Holenderką";
+    English = mkNat "angielski" ["po angielsku"] "angielski" (P.nLilia "Anglia") "Anglikiem" "Anglikami" "Angielką";
+    Finnish = mkNat "fiński" ["po fińsku"] "finladzki" (P.nLilia "Finlandia") "Finem" "Finami" "Finką";
+    Flemish = mkA (mkCompAdj "flamandzki" ["po flamandzku"]);
+    French = mkNat "francuski" ["po francusku"] "francuski" (P.nLilia "Francja") "Framcuzem" "Francuzami" "Francuzką";
+    German = mkNat "niemiecki" ["po niemiecku"] "niemiecki" (mkCountry "Niemcy" "Niemczech" Plur) "Niemcem" "Niemcami" "Niemką";
+    Italian = mkNat "włoski" ["po włosku"] "włoski" (mkCountry "Włochy" "Włoszech" Plur)"Włochem" "Włochami" "Włoszką";
+    Norwegian = mkNat "norweski" ["po norwesku"] "norweski" (P.nLilia "Norwegia") "Norwegiem" "Norwegami" "Norweszką";
+    Polish = mkNat "polski" ["po polsku"] "polski" (mkCountry "Polska" "Polsce" Fem) "Polakiem" "Polakami" "Polką";
+    Romanian = mkNat "rumuński" ["po rumuńsku"] "rumuński" (P.nLilia "Rumunia") "Rumunem" "Rumunami" "Rumunką";
+    Russian = mkNat "rosyjski" ["po rosyjsku"] "rosyjski" (P.nLilia "Rosja") "Rosjaninem" "Rosjanami"  "Rosjanką";
+    Spanish = mkNat "hiszpański" ["po hiszpańsku"] "hiszpański" (P.nLilia "Hiszpania") "Hiszpanem" "Hiszpanami"  "Hiszpanką";
+    Swedish = mkNat "szwedzki" ["po szwedzku"] "szwedzki" (P.nLilia "Szwecja") "Szwedem" "Szwedami" "Szwedką";
 
---    Belgian = mkA "Belgian" ;
---    Belgium = mkNP (mkPN "Belgium") ;
---    English = mkNat "English" "England" ;
---    Finnish = mkNat "Finnish" "Finland" ;
---    Flemish = mkNP (mkPN "Flemish") ;
---    French = mkNat "French" "France" ; 
---    Italian = mkNat "Italian" "Italy" ;
---    Romanian = mkNat "Romanian" "Romania" ;
---    Swedish = mkNat "Swedish" "Sweden" ;
+-- Means of transportation 
 
+   Bike = {cn = mkCN L.bike_N ; verb="jedzie" };
+   Bus = mkTransport "autobus" "autobusem" (Masc Inanimate) "jedzie";
+   Car = {cn = mkCN L.car_N ; verb="jedzie" };
+   Ferry = mkTransport "prom" "promem" (Masc Inanimate) "płynie";
+   Plane = {cn = mkCN L.airplane_N ; verb="leci" };
+   Subway = mkTransport "metro" "metrem" Neut "jedzie";
+   Taxi = mkTransport "taksówka" "taksówką" Fem "jedzie";
+   Train = mkTransport "pociąg" "pociągiem" (Masc Inanimate) "jedzie";
+   Tram = mkTransport "tramwaj" "tramwajem" (Masc Inanimate) "jedzie";
+
+   ByFoot = ss "pieszo" ** {lock_Adv = <>};
+
 -- Actions: the predication patterns are very often language-dependent.
 
---    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
-    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "room")) (SyntaxPol.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "table")) (SyntaxPol.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasName p name = mkCl (nameOf p) name ;
---    AHungry p = mkCl p.name (mkA "hungry") ;
---    AIll p = mkCl p.name (mkA "ill") ;
---    AKnow p = mkCl p.name IrregPol.know_V ;
---    ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxPol.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
---    AMarried p = mkCl p.name (mkA "married") ;
---    AReady p = mkCl p.name (mkA "ready") ;
---    AScared p = mkCl p.name (mkA "scared") ;
---    ASpeak p lang = mkCl p.name  (mkV2 IrregPol.speak_V) lang ;
---    AThirsty p = mkCl p.name (mkA "thirsty") ;
---    ATired p = mkCl p.name (mkA "tired") ;
---    AUnderstand p = mkCl p.name IrregPol.understand_V ;
---    AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregPol.go_V) place.to) ;
+    AHasAge p num = mkCl p.name have_V2 (mkNP (mkDet num) (mkCN L.year_N)) ;
+    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ; 
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (P.nPokoj "pokój")) (SyntaxPol.mkAdv for_Prep (mkNP num (L.person_N)))) ;
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (L.table_N)) (SyntaxPol.mkAdv for_Prep (mkNP num (L.person_N)))) ;
 
+
+
+    AHasName p name = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "być" conj1 Imperfective) name.nom));
+    AHungry p = mkCl p.name (mkA (mkRegAdj "głodny" "głodniejszy" "głodno" "głodniej" )) ;
+    AIll p = mkCl p.name (mkA (mkCompAdj "chory")) ;
+    AKnow p = mkCl p.name (mkVP (mkMonoVerb "wiedzieć" conj103 Imperfective)) ;
+    ALike p item = mkCl p.name (L.like_V2) item ;
+    ALive p co = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "mieszkam" conj98 Imperfective) ("w" ++ co.dep!LocPrep)));
+    ALove p q = mkCl p.name (L.love_V2) q.name ;
+    AMarried p = mkCl p.name (case p.name.gn of {
+        MascPersSg|MascAniSg|MascInaniSg|MascPersPl=> mkCompAdj "żonaty";
+        _=>mkCompAdj "zamężny"}) ;
+    AReady p = mkCl p.name (L.ready_A) ;
+    AScared p = mkCl p.name (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) ; 
+    ASpeak p lang = mkCl p.name  (mkVP (mkComplicatedVerb (mkMonoVerb "mówić" conj72 Imperfective) lang.advpos)) ;
+    AThirsty p = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "chcieć" conj45 Imperfective) ["pić"]));
+    ATired p = mkCl p.name (mkA (mkCompAdj "zmęczony")) ;
+    AUnderstand p = mkCl p.name (mkVP (mkV "rozumieć" conj101 "zrozumieć" conj101)) ;
+    AWant p obj = mkCl p.name (dirV2 (mkMonoVerb "chcieć" conj45 Imperfective)) obj ; 
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkComplicatedVerb (mkV1 "iść" conj41a "pójść" conj42) place.to.s)) ;
+
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregPol.cost_V)) ; 
---    ItCost item price = mkCl item (mkV2 IrregPol.cost_V) price ;
+    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name 
+        (mkVP (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) ["na imię"]))));
+    QWhatAge p = mkQS (mkQCl howmany_IAdv (mkCl p.name 
+        (mkVP (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) ["lat"]))));
+    HowMuchCost item = { s="ile" ++ 
+        (mkMonoVerb "kosztować" conj53 Imperfective).si!(VFinM (extract_num!item.gn) P3) ++ item.nom; 
+        lock_QS=<> } ; 
+    ItCost item price = mkCl item (dirV2 (mkMonoVerb "kosztować" conj53 Imperfective) ) price ;
 
---    PropOpen p = mkCl p.name open_Adv ;
---    PropClosed p = mkCl p.name closed_Adv ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ; 
+    PropOpen p = mkCl p.name open_A ;
+    PropClosed p = mkCl p.name closed_A ;
+    PropOpenDate p d = mkCl p.name (mkAP d open_A) ; 
+    PropClosedDate p d = mkCl p.name (mkAP d closed_A) ; 
+    PropOpenDay p d = mkCl p.name (mkAP (ss d.hab) open_A) ; 
+    PropClosedDay p d = mkCl p.name (mkAP (ss d.hab) closed_A) ; 
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("see you"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
+    PSeeYouDate d = mkText (lin Text (ss ("do zobaczenia"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("do zobaczenia"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("do zobaczenia"))) 
+        (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
+-- 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
-
---    Wife = xOf sing (mkN "wife") ;
---    Husband = xOf sing (mkN "husband") ;
---    Son = xOf sing (mkN "son") ;
---    Daughter = xOf sing (mkN "daughter") ;
---    Children = xOf plur L.child_N ;
+-- 
+    Wife p     = xOf p N.NumSg L.wife_N ;
+    Husband p  = xOf p N.NumSg L.husband_N ;
+    Son p      = xOf p N.NumSg (mkPer "syn" "syna" "syna" (Masc Personal)) ;
+    Daughter p = xOf p N.NumSg (mkPer "córka" "córki" "córkę" Fem );
+    Children p = xOf p N.NumPl L.child_N ;
 
 -- week days
 
---    Monday = mkDay "Monday" ;
---    Tuesday = mkDay "Tuesday" ;
---    Wednesday = mkDay "Wednesday" ;
---    Thursday = mkDay "Thursday" ;
---    Friday = mkDay "Friday" ;
---    Saturday = mkDay "Saturday" ;
---    Sunday = mkDay "Sunday" ;
+    Monday = { name="poniedziałek"; hab=["w poniedziałki"]; adv=["w poniedziałek"] } ; 
+    Tuesday = { name="wtorek"; hab=["we wtorki"]; adv=["we wtorek"] } ; 
+    Wednesday = { name="środa"; hab=["we środy"]; adv=["we środę"] } ; 
+    Thursday = { name="czwartek"; hab=["w czwartki"]; adv=["w czwartek"] } ; 
+    Friday = { name="piątek"; hab=["w piątki"]; adv=["w piątek"] } ; 
+    Saturday = { name="sobota"; hab=["w soboty"]; adv=["w sobotę"] } ; 
+    Sunday = { name="niedziela"; hab=["w niedziele"]; adv=["w niedzielę"] } ; 
  
---    Tomorrow = P.mkAdv "tomorrow" ;
+    Tomorrow = (ss "jutro") ** {lock_Adv = <>} ;
 
--- auxiliaries
+-- modifiers of places
 
---  oper
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA (mkRegAdj "tani" "tańszy" "tanio" "taniej") );
+    TheMostExpensive = mkSuperl (mkA (mkRegAdj "drogi" "droższy" "drogo" "drożej" ) );
+    TheMostPopular = mkSuperl (mkA (mkRegAdj "popularny" "popularniejszy" "popularnie" "popularniej" ) ) ;
+    TheWorst = mkSuperl L.bad_A ;
 
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+    SuperlPlace sup p = placeNP sup p ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxPol.mkAdv on_Prep day) 
---        (SyntaxPol.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
 
---    mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
---      mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
+-- transports
+    HowFar place = mkQS (Q.QuestIComp (Q.CompIAdv far_IAdv) place.name) ;
+    
+    --jak daleko jest z cenrum do hotelu
+    HowFarFrom x y = { s=["jak daleko jest z"] ++ x.name.dep!GenPrep ++ y.to.s; lock_QS=<> };
 
---    open_Adv = P.mkAdv "open" ;
---    closed_Adv = P.mkAdv "closed" ;
+    --jak daleko jest pieszo z centrum do hotelu
+    HowFarFromBy x y t = 
+      { s=["jak daleko jest"] ++ t.s ++ "z" ++ x.name.dep!GenPrep ++ y.to.s; lock_QS=<> };
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+    HowFarBy y t = 
+            { s=["jak daleko jest"] ++ t.s ++ y.to.s; lock_QS=<> };
+ 
+    WhichTranspPlace trans place = 
+      { s= ktory ! AF (cast_gennum!<trans.cn.g,Sg>) Nom ++ trans.cn.s!Sg!Nom ++ trans.verb ++ place.to.s; lock_QS=<> };
 
---    nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
+    IsTranspPlace trans place = 
+      { s= ["czy jest stąd"] ++ trans.cn.s!Sg!Nom ++ place.to.s; lock_QS=<> };
 
---}
+
+-- auxiliaries
+
+  oper
+  
+  mkA : Adj -> A = \adj -> adj ** { lock_A = <> };
+
+  mkPlaceDo = overload {
+    mkPlaceDo : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n -> {
+      name = mkCN n; at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
+    mkPlaceDo : Str -> Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \nom,gen,loc,g -> {
+      name = mkCN {
+        s = table {SF Sg Nom => nom; SF Sg Gen => gen; SF Sg Loc => loc; _ => ["not implemented"]};
+        g = g;
+        lock_N=<>
+      };
+      at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
+  };
+  
+  mkPlaceNa = overload {
+    mkPlaceNa : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n -> {
+      name = mkCN n; at = { s="na"; c=LocPrep; lock_Prep = <> }; to = {s="na"; c=AccPrep; lock_Prep = <>}; isPl = False };
+    mkPlaceNa : Str -> Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \nom,acc,loc,g -> {
+      name = mkCN {
+        s = table {SF Sg Nom => nom; SF Sg Acc => acc; SF Sg Loc => loc; _ => ["not implemented"]};
+        g = g;
+        lock_N=<>
+      };
+    at = { s="na"; c=LocPrep; lock_Prep = <> }; to = {s="na"; c=AccPrep; lock_Prep = <>}; isPl = False };
+  };
+  
+  mkTransport : Str -> Str -> Gender -> Str -> {cn:CN; verb:Str} = \nom,instr,g,verb -> {
+    cn = {
+    s = \\n,c => case <n,c> of {<Sg,Nom> => nom; <Sg,Instr> => instr; _ => ["not implemented"]};
+    g = g;
+    lock_CN=<>
+    };
+    verb=verb
+  };
+
+  mkCitizen = overload {
+    mkCitizen : Str -> N = \s -> {
+      s = table {SF Sg Instr => s; _ => ["not implemented"]};
+      g = Fem;
+      lock_N=<>
+    };
+    mkCitizen : Str -> Str -> N = \inst, instpl -> {
+      s = table {SF Sg Instr => inst; SF Pl Instr => instpl; _ => ["not implemented"]};
+      g = Masc Personal;
+      lock_N=<>
+    };
+  };
+  
+  mkCountry : Str -> Str -> Gender -> N = \nom,loc,g -> {
+    s = table {SF Sg Nom => nom; SF Sg Loc => loc; _ => ["not implemented"]};
+    g = g;
+    lock_N=<>
+  };
+
+  mkPer : Str -> Str -> Str -> Gender -> N = \nom,gen,acc,g -> {
+    s = table {SF Sg Nom => nom; SF Sg Gen => gen; SF Sg Acc => acc; _ => ["not implemented"]};
+    g = g;
+    lock_N=<>
+  };
+
+  
+  mkCurrency : Str -> Str -> Str -> Gender -> N = \nom,nompl,genpl,g -> {
+    s = table {SF Sg Nom => nom; SF Pl (Nom|Acc) => nompl; SF Pl Gen => genpl; _ => ["not implemented"]};
+    g = g;
+    lock_N=<>
+  };
+  
+  mkNat : Str -> Str -> Str -> N -> Str -> Str -> Str -> 
+    { lang: A; prop: A; country: NP; citizenMSg:Str; citizenMPl: Str; citizenF:Str } = 
+    \lang,ladv,prop,country,citiMsg, citiMpl, citiF -> {
+    lang = mkA (mkCompAdj lang ladv); prop = mkA (mkCompAdj prop); 
+    country=mkNP country; citizenMSg=citiMsg; citizenMPl=citiMpl; citizenF=citiF };
+ 
+  open_A : A = (mkA (mkCompAdj "otwarty"));
+  closed_A : A = (mkA (mkCompAdj "zamknięty"));
+    
+  xOf : NPPerson -> Num -> N -> NPPerson = \p,num,n ->
+      { name = case p.isPron of {
+          True  => mkNP (mkDet p.poss num) n; 
+          False => mkNP (mkNP (mkDet a_Quant num) n) ({s=p.name.dep!GenNoPrep; lock_Adv=<>})
+        };
+        isPron = False;
+        poss = p.poss }; --it is not used, because it is not a pron
+    
+    mkSuperl : A -> Det = \a -> SyntaxPol.mkDet the_Art (SyntaxPol.mkOrd a) ;
+
+   far_IAdv : IAdv = (ss ["jak daleko"]) ** {lock_IAdv = <>};
+   howmany_IAdv : IAdv = (ss ["ile"]) ** {lock_IAdv = <>};
+
 }
diff --git a/examples/phrasebook/WordsRon.gf b/examples/phrasebook/WordsRon.gf
--- a/examples/phrasebook/WordsRon.gf
+++ b/examples/phrasebook/WordsRon.gf
@@ -1,7 +1,10 @@
--- (c) 2009 Ramona Enache under LGPL
+--# -path=.:../../dist/build/rgl/alltenses
 
+
+-- (c) 2010 Ramona Enache under LGPL
+
 concrete WordsRon of Words = SentencesRon ** open
-  SyntaxRon,
+  SyntaxRon, ResRon, Prelude,
   (P = ParadigmsRon),
   (L = LexiconRon),
   BeschRon,
@@ -17,7 +20,7 @@
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
     Cheese = mkCN L.cheese_N ;
-    Chicken = mkCN (P.mkN "pui" "pui") ;
+    Chicken = mkCN (P.mkN "pui" "pui" P.masculine) ;
     Coffee = mkCN (P.mkN "cafea") ;
     Fish = mkCN L.fish_N ;
     Meat = mkCN (P.mkN "carne" "cărnuri" "cărni") ;
@@ -44,42 +47,96 @@
 -- places
 
     Airport = mkPlace (P.mkNR "aeroport") at_Prep ; 
-    Bar = mkPlace (P.mkNR "bar") at_Prep ; 
+    AmusementPark = mkCNPlace (mkCN (mkCN (P.mkNR "parc")) (mkAdv by8means_Prep (mkNP (P.mkPN "distracții")))) in_Prep to_Prep;
+    Bank = mkPlace (P.mkN "bancă" "bănci") at_Prep ;
+    Bar = mkPlace (P.mkNR "bar") at_Prep ;
+    Cafeteria = mkPlace (P.mkN "cantină" "cantine") in_Prep ;
+    Center = mkCNPlace (mkCN (P.mkN "centru" "centre" )) in_Prep in_Prep; 
     Church = mkPlace (P.mkN "biserică" "biserici") at_Prep ; 
-    Cinema = mkPlace (P.mkNR "cinema") at_Prep ; 
+    Cinema = mkPlace (P.mkNR "cinematograf") at_Prep ;
+    Disco = mkPlace (P.mkN "discotecă" "discoteci" ) at_Prep ; 
     Hospital = mkPlace (P.mkN "spital") at_Prep ;
     Hotel = mkPlace (P.mkNR "hotel") at_Prep ; 
     Museum = mkPlace (P.mkN "muzeu" "muzee") at_Prep ; 
-    Park = mkPlace (P.mkNR "parc") at_Prep ;
+    Park = mkPlace (P.mkNR "parc") in_Prep ;
+    Parking = mkPlace (P.mkN "parcare" "parcări") in_Prep ;
+    Pharmacy = mkPlace (P.mkN "farmacie" "farmacii" P.feminine) at_Prep;
+    PostOffice = mkPlace (P.mkN "poștă" "poște") at_Prep ;
+    Pub = mkPlace (P.mkNR "pub") in_Prep ;
     Restaurant = mkPlace (P.mkN "restaurant") at_Prep ; 
     School = mkPlace (P.mkN "şcoală" "şcoli") at_Prep ;
     Shop = mkPlace (P.mkN "magazin") at_Prep ;
     Station = mkPlace (P.mkN "gară" "gări") at_Prep ;
+    Supermarket = mkPlace (P.mkNR "supermarket") at_Prep ;
     Theatre = mkPlace (P.mkN "teatru" "teatre") at_Prep ;
     Toilet = mkPlace (P.mkN "toaletă") at_Prep ;
     University = mkPlace (P.mkN "universitate") at_Prep ;
+    Zoo = {name = mkCN (P.mkA "zoologic") (P.mkN "grădină" "grădini");
+           to = to_Prep; at = at_Prep; isPl = False };
 
+    CitRestaurant cit = mkCNPlace (mkCN cit.prop (P.mkN "restaurant" "restaurante")) in_Prep to_Prep;  
+
 -- currencies
 
+    DanishCrown = mkCN (P.mkA "danez") (P.mkN "coroană") ;
     Dollar = mkCN (P.mkN "dolar" P.masculine) ;
-    Euro = mkCN (P.mkN "euro" "euro") ;
+    Euro = mkCN (P.mkN "euro" "euro" P.masculine) ;
     Lei = mkCN (P.mkN "leu" "lei") ;
-    DanishCrown = mkCN (P.mkA "danez") (P.mkN "coroană") ;
+    Leva = mkCN (P.mkN "levă" "leve") ;
+    NorwegianCrown = mkCN (P.mkA "norvegian") (P.mkN "coroană") ;
+    Pound = mkCN (P.mkA "sterlin") (P.mkN "liră") ;
+    Rouble = mkCN (P.mkN "rublă" "ruble") ;
     SwedishCrown = mkCN (P.mkA "suedez") (P.mkN "coroană") ;
-    
+    Zloty = mkCN (P.mkN "zlot" P.masculine) ;    
+
 -- nationalities
 
-    Belgian = P.mkA "belgian" ;
+    Belgian = mkCitizenshipRon (P.mkA "belgian" "belgiană" "belgieni" "belgiene")  "belgian" "belgiancă" "belgieni" "belgience" ;
     Belgium = mkNP (P.mkPN "Belgia") ;
-    English = mkNat "englez" "Anglia" ;
-    Finnish = mkNat "finlandez" "Finlanda" ;
+    Bulgarian = mkCompNat "bulgar" "Bulgaria" "bulgăresc" "bulgar" "bulgăroaică" "bulgari" "bulgăroaice";
+    Catalan = mkSimpSimpNat "catalan" "Catalonia" ;
+    Danish = mkSimpSimpNat "danez" "Danemarca" ;
+    Dutch = mkSimpSimpNat "olandez" "Olanda" ;
+    English = mkNat "englez" "Anglia" "englez" "englezoaică" "englezi" "englezoaice" ;
+    Finnish = mkSimpSimpNat "finlandez" "Finlanda" ;
     Flemish = mkNP (P.mkPN "flamandă") ; 
-    French = mkNat "francez" "Franţa" ; 
-    Italian = mkNat "italian" "Italia" ;
-    Romanian = mkNat "român" "România" ;
-    Swedish = mkNat "suedez" "Suedia" ;
+    French = mkCompNat "francez" "Franţa" "franțuzesc" "francez" "franțuzoaică" "francezi" "franțuzoaice";
+    German = mkCompNat "german" "Germania" "nemțesc" "neamț" "nemțoaică" "nemți" "nemțoaice"; 
+    Italian = mkSimpNat "italian"  "Italia" "italian" "italiancă" "italieni" "italience" ;
+    Norwegian = mkSimpSimpNat "norvegian" "Norvegia";
+    Polish = mkSimpSimpNat "polonez" "Polonia" ;
+    Romanian = mkNat "român" "România" "român" "româncă" "români" "românce" ;
+    Russian = mkNat "rus" "Rusia" "rus" "rusoaică" "ruși" "rusoaice";
+    Spanish = mkSimpSimpNat "spaniol" "Spania" ;
+    Swedish = mkSimpSimpNat "suedez" "Suedia" ;
     
+-- means of transportation 
 
+    Bike = mkTransport L.bike_N ; 
+    Bus = mkTransport (P.mkN "autobuz" "autobuze") ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (P.mkNR "feribot") ;
+    Plane = mkTransport L.airplane_N ;
+    Subway = mkTransport (P.mkNR "metrou") ; 
+    Taxi = mkTransport (P.mkNR "taxi") ; 
+    Train = mkTransport (P.mkNR "tren") ;
+    Tram = mkTransport (P.mkN "tramvai" "tramvaie") ;
+
+    ByFoot = P.mkAdv "pe jos" ;
+
+    HowFar place = mkQS (mkQCl how8much_IAdv (mkDestination place.name)) ;
+    HowFarFrom x y = mkQS (mkQCl how8much_IAdv (mkNP (mkDestination y.name) (SyntaxRon.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl how8much_IAdv (mkNP (mkNP (mkDestination y.name) (SyntaxRon.mkAdv from_Prep x.name)) t)) ;
+    HowFarBy y t = mkQS (mkQCl how8much_IAdv (mkNP (mkDestination y.name) t)) ; 
+
+   WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name (mkDestination place.name)))) ;
+
+
 -- actions
 
     AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
@@ -88,27 +145,27 @@
       (mkNP (mkNP a_Det (P.mkN "cameră")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
     AHasTable p num = mkCl p.name have_V2 
       (mkNP (mkNP a_Det (P.mkN "masa" "mese")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
-    AHasName p name = mkCl p.name (P.dirV2 (mkRVAcc (v_besch119 "numi"))) name ;
-    AHungry p = DatSubjCl p.name (mkVP (mkCN (P.mkN "foame"))) ;
+    AHasName p name = mkCl p.name (P.mmkV2 (mkRVAcc (v_besch119 "numi")) (P.noPrep P.Nom)) name ;
+    AHungry p = DatSubjCl p.name (mkVP (mkNP (P.mkN "foame"))) ;
     AIll p = mkCl p.name (P.mkA "bolnav") ;
     AKnow p = mkCl p.name (v_besch122 "şti") ;
-    ALike p item = mkCl p.name (P.dirV2 (v_besch71 "plăcea")) item ;
+    ALike p item = DatSubjCompCl p.name  (mkVP (v_besch71 "plăcea")) item ;
     ALive p co = 
       mkCl p.name (mkVP (mkVP (v_besch121 "locui")) (SyntaxRon.mkAdv in_Prep co)) ;
     ALove p q = mkCl p.name (P.dirV2 (P.mkV "iubi")) q.name ;
     AMarried p = mkCl p.name (P.mkA "căsătorit") ;
     AReady p = mkCl p.name (P.mkA "gata" "gata" "gata" "gata") ;
     AScared p = mkCl p.name (P.mkA "speriat") ;
-    ASpeak p lang = mkCl p.name  (P.dirV2 (P.mkV "vorbi")) lang ;
-    AThirsty p = DatSubjCl p.name (mkVP (mkCN (P.mkN "sete"))) ;
+    ASpeak p lang = mkCl p.name  (P.mmkV2 (P.mkV "vorbi") (P.noPrep P.Nom)) lang ;
+    AThirsty p = DatSubjCl p.name (mkVP (mkNP (P.mkN "sete"))) ;
     ATired p = mkCl p.name (P.mkA "obosit") ;
     AUnderstand p = mkCl p.name (v_besch83 "înţelege") ;
-    AWant p obj = mkCl p.name (P.dirV2 (v_besch74 "vrea")) obj ;
+    AWant p obj = mkCl p.name (P.mmkV2 (v_besch74 "vrea") (P.noPrep P.Nom)) obj ;
     AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
 
 -- miscellaneous
 
-    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (mkRVAcc (v_besch29 "chema")))) ;
+    QWhatName p = mkQS (mkQCl how_IAdv (AccSubjCl p.name (mkVP (v_besch29 "chema")))) ;
     QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
 
     PropOpen p = mkCl p.name open_A ;
@@ -119,15 +176,16 @@
     PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
     
     HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (v_besch18 "costa"))) ; 
-    ItCost item price = mkCl item (P.dirV2 (v_besch18 "costa")) price ;
+    ItCost item price = mkCl item (P.mmkV2 (v_besch18 "costa") (P.noPrep P.Nom)) price ;
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text {s = ("pe" ++ "curând")}) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
+    PSeeYouDate d = mkText (lin Text {s = ("ne" ++ "vedem")}) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlaceDate p d = 
       mkText (lin Text { s = ("ne" ++ "vedem")}) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouPlace p = mkText (lin Text {s = ("ne" ++ "vedem")}) (mkPhrase (mkUtt p.at)) ;
 
 -- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
 -- below. Languages with productive genitives can use an equivalent of
@@ -135,10 +193,10 @@
 
     Wife = xOf sing (P.mkN "soţie") ;
     Husband = xOf sing (P.mkN "soţ" "soţi") ;
-    Son = xOf sing (P.mkN "fiu") ;
-    Daughter = xOf sing (P.mkN "fiică") ;
-    Children = xOf plur L.child_N ;    
-    
+    Son = xOf sing (P.mkN "fiu" "fii") ;
+    Daughter = xOf sing  (P.mkN "fiică" "fiice") ;
+    Children = xOf plur  L.child_N ;    
+ 
 -- week days
 
     Monday = mkDay "luni" ;
@@ -151,34 +209,69 @@
 
     Tomorrow = P.mkAdv "mâine" ;
 
+-- modifiers of places
+
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (P.mkA "ieftin") ;
+    TheMostExpensive = mkSuperl (P.mkA "scump") ;
+    TheMostPopular = mkSuperl (P.mkA "popular") ;
+    TheWorst = mkSuperl L.bad_A ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
+
+
+
+
 oper
 
-closed_A : A = P.mkA "inchis" ;
+closed_A : A = P.mkA "închis" ;
 open_A : A = P.mkA "deschis" ;
 
--- auxiliaries
+-- auxiliaries     
 
-    mkNat : Str -> Str -> NPNationality = \nat,co -> 
-      mkNPNationality (mkNP (P.mkPN nat)) (mkNP (P.mkPN co)) (P.mkA nat) ;
+   mkSimpSimpNat : Str -> Str -> NPNationalityRon = \nat, co -> 
+     mkSimpNat nat co nat (nat + "a") (nat + "i") (nat+"e");
 
-    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+    mkSimpNat : Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, citMS, citFS, citMP, citFP -> let adj = P.mkA nat in
+      mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) adj citMS citFS citMP citFP ;
+
+    mkNat : Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, citMS, citFS, citMP, citFP -> let adj = P.mkA (nat+"esc") in
+      mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) adj citMS citFS citMP citFP ;
+
+   mkCompNat : Str -> Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, adj, citMS, citFS, citMP, citFP -> let a = P.mkA adj in
+      mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) a citMS citFS citMP citFP ;
+   
+
+
+mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
       let day = mkNP (P.mkPN d P.Feminine) ;
-          ad = {s = d} in
+          ad = {s = d; lock_Adv=<>} in
       mkNPDay day ad ad; ---- difference is enforced by additional constructions
 
-   -- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
-   --   mkCNPlace (mkCN p) i P.dative ;
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (refCN x) p ; 
 
-    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
     
     
 -- auxiliaries
 
 oper
-    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> {
+    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> {
       name = mkCN p ;
-      at = i ;
+      at = i ; isPl = False ;
       to = to_Prep   -- in Romanian, most of the time they would be the same
       } ;
+
+   mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxRon.mkAdv with_Prep (mkNP the_Det n)
+      } ;
+
+    mkSuperl : A -> Det = \a -> mkDet the_Art (SyntaxRon.mkOrd a) ;
+
+    mkDestination : NP -> NP = \np -> heavyNP {s = \\c => "pâna la"++np.indForm ; 
+                                               a = np.a; hasClit = HasRef False;
+                                               ss = "pâna la"++np.indForm} ** {lock_NP =<>};
 
 }
diff --git a/examples/phrasebook/WordsRus.gf b/examples/phrasebook/WordsRus.gf
--- a/examples/phrasebook/WordsRus.gf
+++ b/examples/phrasebook/WordsRus.gf
@@ -1,177 +1,263 @@
---2 Implementations of Words, with English as example
+-- (c) 2009 Aarne Ranta under LGPL
 
 concrete WordsRus of Words = SentencesRus ** 
-    open 
-      SyntaxRus, 
-      ParadigmsRus, 
-      (L = LexiconRus), 
-      (P = ParadigmsRus), 
---      IrregRus, 
---      ExtraRus, 
-      Prelude in {
---  lin
+    open SyntaxRus, (P = ParadigmsRus), (L = LexiconRus), Prelude in {
 
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
+flags coding = utf8 ;
 
+  lin
+
+-- kinds of food
+
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "cheese") ;
---    Chicken = mkCN (mkN "chicken") ;
---    Coffee = mkCN (mkN "coffee") ;
+    Cheese = mkCN L.cheese_N ;
+    Chicken = mkCN (P.mkN "курица") ;
+    Coffee = mkCN (P.mkN "кофе") ;
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "meat") ;
-    Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Meat = mkCN (P.mkN "мясо") ;
+    Milk = mkCN L.milk_N ; 
+    Pizza = mkCN (P.mkN "пицца") ;
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "tea") ;
+    Tea = mkCN (P.mkN "чай") ;
     Water = mkCN L.water_N ;
     Wine = mkCN L.wine_N ;
 
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
+-- properties
 
-    Bad = L.bad_A ;
---    Boring = mkA "boring" ;
---    Cheap = mkA "cheap" ;
+
+    Bad = P.mkA "плохой" ;
+    Cheap = P.mkA "дешевый" ;
+    Boring = P.mkA "скучный" ;
     Cold = L.cold_A ;
---    Delicious = mkA "delicious" ;
---    Expensive = mkA "expensive" ;
---    Fresh = mkA "fresh" ;
+    Delicious = P.mkA "вкусный" ;
+    Expensive = P.mkA "дорогой" ;
+    Fresh = P.mkA "свежий" ;
     Good = L.good_A ;
---    Suspect = mkA "suspect" ;
+    Suspect = P.mkA "подозреваемый" ;
     Warm = L.warm_A ;
 
--- Places require different prepositions to express location; in some languages 
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
 
---    Airport = mkPlace "airport" "at" ;
---    Bar = mkPlace "bar" "in" ;
---    Church = mkPlace "church" "in" ;
---    Cinema = mkPlace "cinema" "at" ;
---    Hospital = mkPlace "hospital" "in" ;
---    Hotel = mkPlace "hotel" "in" ;
---    Museum = mkPlace "museum" "in" ;
---    Park = mkPlace "park" "in" ;
---    Restaurant = mkPlace "restaurant" "in" ;
---    School = mkPlace "school" "at" ;
---    Shop = mkPlace "shop" "in" ;
---    Station = mkPlace "station" "at" ;
---    Theatre = mkPlace "theatre" "at" ;
---    Toilet = mkPlace "toilet" "in" ;
---    University = mkPlace "university" "at" ;
 
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
+-- places
+ 
+    Airport = mkPlace (P.mkN "аэропорт") in_Prep ; 
+--    AmusementPark = ? парк развлечений
+    Bank = mkPlace (P.mkN "банк") in_Prep ;
+    Bar = mkPlace (P.mkN "бар") in_Prep ;  
+    Cafeteria = mkPlace (P.mkN "кафетерий") in_Prep ;
+    Center = mkPlace (P.mkN "центр") in_Prep ;
+    Church = mkPlace (P.mkN "церковь") in_Prep ; 
+    Cinema = mkPlace (P.mkN "кино") in_Prep ;  
+    Disco = mkPlace (P.mkN "дискотека") on_Prep ;
+    Hospital = mkPlace (P.mkN "больница") in_Prep ; 
+    Hotel = mkPlace (P.mkN "отель") in_Prep ; 
+    Museum = mkPlace (P.mkN "музей") in_Prep ; 
+    Park = mkPlace (P.mkN "парк") in_Prep ; 
+    Parking = mkPlace (P.mkN "автостоянки") on_Prep ; 
+    Pharmacy = mkPlace (P.mkN "аптека") in_Prep ;
+    PostOffice = mkPlace (P.mkN "почтовое") in_Prep ;
+    Pub = mkPlace (P.mkN "паб") in_Prep ;
+    Restaurant = mkPlace (P.mkN "ресторан") in_Prep ; 
+    Shop = mkPlace (P.mkN "магазин") in_Prep ;  
+    School = mkPlace (P.mkN "школа") in_Prep ; 
+    Station = mkPlace (P.mkN "станция") on_Prep ; 
+    Supermarket = mkPlace (P.mkN "супермаркет") in_Prep ;
+    Theatre = mkPlace (P.mkN "театр") in_Prep ;
+    Toilet = mkPlace (P.mkN "туалет") in_Prep ; 
+    University = mkPlace (P.mkN "университет") in_Prep ; 
+    Zoo = mkPlace (P.mkN "зоопарк") in_Prep ;
 
---    DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
---    Dollar = mkCN (mkN "dollar") ;
---    Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
---    Lei = mkCN (mkN "leu" "lei") ;
---    SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
+ 
+    CitRestaurant cit = 
+      mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to_Prep ;    
 
+
+-- currencies
+
+    DanishCrown = mkCN (P.mkA "датско") (P.mkN "венец") ;
+    Dollar = mkCN (P.mkN "доллар") ;
+    Euro = mkCN (P.mkN "евро") ;
+    Lei = mkCN (P.mkN "лей") ;
+    Leva = mkCN (P.mkN "левов") ;
+    NorwegianCrown = mkCN (P.mkA "норвежец") (P.mkN "венец") ;  
+    Pound = mkCN (P.mkN "фунт");
+    Rouble = mkCN (P.mkN "рубль") ;
+    SwedishCrown = mkCN (P.mkA "шведский") (P.mkN "венец") ;
+    Zloty = mkCN (P.mkN "злотый") ;
+
+
 -- Nationalities
 
---    Belgian = mkA "Belgian" ;
---    Belgium = mkNP (mkPN "Belgium") ;
---    English = mkNat "English" "England" ;
---    Finnish = mkNat "Finnish" "Finland" ;
---    Flemish = mkNP (mkPN "Flemish") ;
---    French = mkNat "French" "France" ; 
---    Italian = mkNat "Italian" "Italy" ;
---    Romanian = mkNat "Romanian" "Romania" ;
---    Swedish = mkNat "Swedish" "Sweden" ;
+    Belgian = P.mkA "Belgisch" ;
+    Belgium = mkNP (P.mkPN "België") ;
+    Bulgarian = mkNat "болгарском" "Болгарии" ;
+    Catalan = mkNat "каталонский" "Каталонии" ;
+    Danish = mkNat "датском" "Дании" ;
+    Dutch = mkNat "голландский" "Нидерландов" ;
+    English = mkNat "английский" "Англии" ;
+    Finnish = mkNat "финском" "Финляндии" ;
+    Flemish = mkNP (P.mkPN "Vlaams") ;
+    French = mkNat "французском" "Франции" ; 
+    German = mkNat "немецкого" "Германии" ;
+    Italian = mkNat "итальянский" "Италии" ;
+    Norwegian = mkNat "норвежец" "Норвегии" ;
+    Polish = mkNat "польский" "Польши" ;
+    Romanian = mkNat "румынском" "Румынии" ;
+    Russian = mkNat "русский." "России" ;
+    Spanish = mkNat "испанском" "Испании" ;
+    Swedish = mkNat "шведский" "Швеции" ;
 
--- Actions: the predication patterns are very often language-dependent.
 
---    AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
-    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "room")) (SyntaxRus.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "table")) (SyntaxRus.mkAdv for_Prep (mkNP num (mkN "person")))) ;
---    AHasName p name = mkCl (nameOf p) name ;
---    AHungry p = mkCl p.name (mkA "hungry") ;
---    AIll p = mkCl p.name (mkA "ill") ;
---    AKnow p = mkCl p.name IrregRus.know_V ;
---    ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
---    ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxRus.mkAdv in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
---    AMarried p = mkCl p.name (mkA "married") ;
---    AReady p = mkCl p.name (mkA "ready") ;
---    AScared p = mkCl p.name (mkA "scared") ;
---    ASpeak p lang = mkCl p.name  (mkV2 IrregRus.speak_V) lang ;
---    AThirsty p = mkCl p.name (mkA "thirsty") ;
---    ATired p = mkCl p.name (mkA "tired") ;
---    AUnderstand p = mkCl p.name IrregRus.understand_V ;
---    AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregRus.go_V) place.to) ;
+-- Means of transportation
 
+
+    Bike = mkTransport L.bike_N ;
+    Bus = mkTransport (P.mkN "автобус") ; 
+    Car = mkTransport (P.mkN "автомобиль");
+    Ferry = mkTransport (P.mkN "паром") ;
+    Plane = mkTransport (P.mkN "самолет") ;
+    Subway = mkTransport (P.mkN "метро") ;
+    Taxi = mkTransport (P.mkN "такси") ;
+    Tram = mkTransport (P.mkN "трамвай") ;
+    Train = mkTransport (P.mkN "поезд") ;
+
+    ByFoot = P.mkAdv "пешком" ;
+
+
+
+-- actions
+    AHasAge p num = mkCl p.name (mkNP num L.year_N) ; 
+--    AHasName p name = ? 
+    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ; 
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (P.mkN "номер")) 
+        (SyntaxRus.mkAdv for_Prep (mkNP num (P.mkN "человек")))) ; 
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (P.mkN "стол")) 
+        (SyntaxRus.mkAdv for_Prep (mkNP num (P.mkN "человек")))) ;
+    AHungry p = mkCl p.name (P.mkAdv "голоден") ;    
+    AIll p = mkCl p.name (P.mkA "олен") ; 
+    AKnow p = mkCl p.name (P.regV P.imperfective P.first "зна" "ю" "знал" "знай" "знать" ) ; 
+    ALike p item = mkCl p.name (P.dirV2 (P.regV P.imperfective P.second "нрав" "лю" "нравил" "нравь" "нравить" )) item ; 
+    ALive p co = mkCl p.name (mkVP (mkVP (P.regV P.imperfective P.firstE "жив" "у" "жил" "живи" "жить")) (SyntaxRus.mkAdv in_Prep co)) ; 
+    ALove p q = mkCl p.name (P.dirV2 (P.regV P.imperfective P.second "люб" "лю" "любил" "люби" "любить" )) q.name ; 
+    AMarried p = mkCl p.name (P.mkA "женат") ; 
+    AReady p = mkCl p.name (P.mkA "готов") ; 
+    AScared p = mkCl p.name (P.mkA "боюсь") ;
+    ASpeak p lang = mkCl p.name (P.mkV2 (P.regV P.imperfective P.secondA "говор" "ю" "говорил" "говори" "говорить")
+               "на" P.prepositional) lang ; 
+    AThirsty p = mkCl p.name (P.mkA "жажду") ; 
+    ATired p = mkCl p.name (P.mkA "устал") ; 
+    AUnderstand p = mkCl p.name (P.regV P.imperfective P.first "понима" "ю" "понимал" "понимай" "понимать"); ; 
+    AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; 
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; 
+
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
---    QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregRus.cost_V)) ; 
---    ItCost item price = mkCl item (mkV2 IrregRus.cost_V) price ;
+--    QWhatName p = ? 
+--    QWhatAge p =  ?
+--    HowMuchCost item = ?
+--    ItCost item price = ? 
 
---    PropOpen p = mkCl p.name open_Adv ;
---    PropClosed p = mkCl p.name closed_Adv ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ; 
+    PropOpen p = mkCl p.name open_A ; 
+    PropClosed p = mkCl p.name closed_A ; 
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("see you"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("увидимся"))) (mkPhrase (mkUtt d)) ; 
+    PSeeYouPlace p = 
+      mkText (lin Text (ss ("Вы видите"))) (mkPhrase (mkUtt p.at)) ; 
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("увидимся"))) 
+        (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ; 
 
 -- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
 -- below. Languages without productive genitives must use an equivalent of
 -- "the wife of my son" for non-pronouns.
 
---    Wife = xOf sing (mkN "wife") ;
---    Husband = xOf sing (mkN "husband") ;
---    Son = xOf sing (mkN "son") ;
---    Daughter = xOf sing (mkN "daughter") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (P.mkN "жена") ; 
+    Husband = xOf sing (P.mkN "муж") ;
+    Son = xOf sing (P.mkN "сын") ;
+    Daughter = xOf sing (P.mkN "дочь") ;
+    Children = xOf plur L.child_N ; 
 
+
+ 
 -- week days
 
---    Monday = mkDay "Monday" ;
---    Tuesday = mkDay "Tuesday" ;
---    Wednesday = mkDay "Wednesday" ;
---    Thursday = mkDay "Thursday" ;
---    Friday = mkDay "Friday" ;
---    Saturday = mkDay "Saturday" ;
---    Sunday = mkDay "Sunday" ;
+    Monday = mkDay "понедельник" ;
+    Tuesday = mkDay "вторник" ;
+    Wednesday = mkDay "среда" ;
+    Thursday = mkDay "четверг" ;
+    Friday = mkDay "пятница" ;
+    Saturday = mkDay "суббота" ;
+    Sunday = mkDay "воскресенье" ;
+
+  Tomorrow = P.mkAdv "завтра" ;
+
+-- modifiers of places 
+    TheBest = mkSuperl L.good_A ;
+    --TheClosest = mkSuperl ? ; 
+    TheCheapest = mkSuperl (P.mkA "дешевый") ;
+    TheMostExpensive = mkSuperl (P.mkA "duur") ;
+    TheMostPopular = mkSuperl (P.mkA "популярный") ;
+    TheWorst = mkSuperl (P.mkA "плохой") ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
+-- transports
+
+    HowFar place = mkQS (mkQCl far_IAdv place.name) ; 
+    HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxRus.mkAdv from_Prep x.name))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxRus.mkAdv from_Prep x.name)) t)) ;
+    HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ; 
  
---    Tomorrow = P.mkAdv "tomorrow" ;
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
 
--- auxiliaries
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
 
---  oper
 
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in 
---      mkNPDay day (SyntaxRus.mkAdv on_Prep day) 
---        (SyntaxRus.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
 
---    mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
---      mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
+  oper
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (P.mkPN nat)) (mkNP (P.mkPN co)) (P.mkA nat) ;
 
---    open_Adv = P.mkAdv "open" ;
---    closed_Adv = P.mkAdv "closed" ;
+    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> 
+      mkNPDay (mkNP (P.mkPN d)) (mkAdv (P.mkPrep []) (mkNP (P.mkPN d))) 
+                                ---- (mkAdv on_Prep (mkNP (P.mkPN d))) 
+        (mkAdv on_Prep (mkNP a_Quant plNum (mkCN (P.mkN d (d + "en") P.utrum)))) ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
---      relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
+    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
+      mkCNPlace (mkCN p) (P.mkPrep i) to_Prep ;
 
---    nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
+--    open_A = P.mkA ? ;  seem to use a verb
+--    closed_A = P.mkA ? ;
 
---}
+   xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
+      relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxRus.mkAdv possess_Prep b)) p ;
+
+     mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxRus.mkAdv with_Prep (mkNP the_Det n)
+      } ;
+
+  far_IAdv = ss "как далеко" ** {lock_IAdv = <>} ;
+  long_IAdv = ss "Как долго" ** {lock_IAdv = <>};
+
+  mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
+
+
+
+
 }
diff --git a/examples/phrasebook/WordsSpa.gf b/examples/phrasebook/WordsSpa.gf
--- a/examples/phrasebook/WordsSpa.gf
+++ b/examples/phrasebook/WordsSpa.gf
@@ -6,9 +6,13 @@
   (E = ExtraSpa),
   (L = LexiconSpa),
   (P = ParadigmsSpa), 
+  (S = SyntaxSpa),
   ParadigmsSpa,
+  StructuralSpa,
   Prelude in {
 
+flags coding = utf8 ;
+
 lin
 
 -- kinds
@@ -16,159 +20,281 @@
     Apple = mkCN L.apple_N ;
     Beer = mkCN L.beer_N ;
     Bread = mkCN L.bread_N ;
---    Cheese = mkCN (mkN "formaggio") ;
---    Chicken = mkCN (mkN "pollo") ;
---    Coffee = mkCN (mkN "caffè") ;
+    Cheese = mkCN (mkN "queso") ;
+    Chicken = mkCN (mkN "pollo") ;
+    Coffee = mkCN (mkN "café") ;
     Fish = mkCN L.fish_N ;
---    Meat = mkCN (mkN "carne" feminine) ;
+    Meat = mkCN (mkN "carne" feminine) ;
     Milk = mkCN L.milk_N ;
---    Pizza = mkCN (mkN "pizza") ;
+    Pizza = mkCN (mkN "pizza") ;
     Salt = mkCN L.salt_N ;
---    Tea = mkCN (mkN "tè") ;
-    Water = mkCN L.water_N ;
+    Tea = mkCN (mkN "té" "tés" masculine) ;
+    Water = mkCN (mkN "agua") ;
     Wine = mkCN L.wine_N ;
 
 -- properties
 
     Bad = L.bad_A ;
---    Boring = mkA "noioso" ;
---    Cheap = let c = "a buon mercato" in mkA c c c c c ; ----
+    Boring = mkA "aburrido" ;
+    Cheap = cheap_A ; 
     Cold = L.cold_A ;
---    Delicious = mkA "delizioso" ;
---    Expensive = mkA "caro" ;
---    Fresh = mkA "fresco" ;
+    Delicious = mkA "delicioso" ;
+    Expensive = expensive_A ;
+    Fresh = mkA "fresco" ;
     Good = L.good_A ;
     Warm = L.warm_A ;
---    Suspect = mkA "sospetto" ;
+    Suspect = mkA "sospechoso" ;
 
 -- places
 
---    Airport = mkPlace (mkN "aeroporto") dative ;
---    Bar = mkPlace (mkN "bar") P.in_Prep ;
---    Church = mkPlace (mkN "chiesa") P.in_Prep ;
---    Cinema = mkPlace (mkN "cinema") P.in_Prep ;
---    Hospital = mkPlace (mkN "ospedale") P.in_Prep ;
---    Hotel = mkPlace (mkN "albergo") P.in_Prep ;
---    Museum = mkPlace (mkN "museo") P.in_Prep ;
---    Park = mkPlace (mkN "parco") P.in_Prep ;
---    Restaurant = mkPlace (mkN "ristorante") P.in_Prep ;
---    School = mkPlace (mkN "scuola") P.in_Prep ;
---    Shop = mkPlace (mkN "negozio") P.in_Prep ;
---    Station = mkPlace (mkN "stazione" feminine) dative ;
---    Theatre = mkPlace (mkN "teatro") P.in_Prep ;
---    Toilet = mkPlace (mkN "bagno") P.in_Prep ;
---    University = mkPlace (mkN "università") dative ;
+    Airport = mkPlace (mkN "aeropuerto") in_Prep ;
+    AmusementPark = mkPlace (compN (mkN "parque") ["de atracciones"]) in_Prep ;
+    Bank = mkPlace (mkN "banco") in_Prep ;
+    Bar = mkPlace (mkN "bar") in_Prep ;
+    Cafeteria = mkPlace (mkN "cafetería") in_Prep;
+    Center = mkPlace (mkN "centro") in_Prep;
+    Church = mkPlace (mkN "iglesia") in_Prep ;
+    Cinema = mkPlace (mkN "cine") in_Prep ;
+    Disco = mkPlace (mkN "disco") in_Prep;
+    Hospital = mkPlace (mkN "hospital") in_Prep ;
+    Hotel = mkPlace (mkN "hotel") in_Prep ;
+    Museum = mkPlace (mkN "museo") in_Prep ;
+    Park = mkPlace (mkN "parque") in_Prep ;
+    Parking = mkPlace (mkN "aparcamiento") in_Prep ;
+    Pharmacy = mkPlace (mkN "farmacia") in_Prep ;
+    PostOffice = mkPlace (compN (mkN "oficina") ["de correos"]) in_Prep ;
+    Pub = mkPlace (mkN "pub" "pubs" masculine) in_Prep ;
+    Restaurant = mkPlace (mkN "restaurante") in_Prep ;
+    School = mkPlace (mkN "escuela") in_Prep ;
+    Shop = mkPlace (mkN "tienda") in_Prep ;
+    Station = mkPlace (mkN "estación" feminine) in_Prep ;
+    Supermarket = mkPlace (mkN "supermercado") in_Prep ;
+    Theatre = mkPlace (mkN "teatro") in_Prep ;
+    Toilet = mkPlace (mkN "baño") in_Prep ; 
+    University = mkPlace (mkN "universidad" feminine) in_Prep ;
+    Zoo = mkPlace (mkN "zoo") in_Prep ;
 
--- currencies
+    CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurante")) in_Prep to_Prep ;
 
---    DanishCrown = mkCN (mkA "danese") (mkN "corona") | mkCN (mkN "corona") ;
---    Dollar = mkCN (mkN "dollar") ;
---    Euro = mkCN (mkN "euro" "euro" masculine) ;
---    Lei = mkCN (mkN "lei") ; ---- ?
---    SwedishCrown = mkCN (mkA "svedese") (mkN "corona") | mkCN (mkN "corona") ;
+-- currencies
+    DanishCrown = mkCN (mkA "daneso") (mkN "corona") | mkCN (mkN "corona") ;
+    Dollar = mkCN (mkN "dólar") ;
+    Euro = mkCN (mkN "euro") ;
+    Lei = mkCN (mkN "leu") ; 
+    Leva = mkCN (mkN "lev" "lev" masculine) ; 
+    NorwegianCrown = mkCN (mkA "noruego") (mkN "corona") | mkCN (mkN "corona") ;
+    Pound = mkCN (mkN "libra") | mkCN (mkA "esterlino") (mkN "libra") ;
+    Rouble = mkCN (mkN "rublo") ; 
+    SwedishCrown = mkCN (mkA "sueco") (mkN "corona") | mkCN (mkN "corona") ;
+    Zloty = mkCN (mkN "zloty" "zlotys" masculine) ;
 
 -- nationalities
 
---    Belgian = mkA "belgo" ;
---    Belgium = mkNP (mkPN "Belgio") ;
---    English = mkNat "inglese" "Inghilterra" ;
---    Finnish = mkNat "finlandese" "Finlandia" ;
---    Flemish = mkNP (mkPN "fiammingo") ;
---    French = mkNat "francese" "Francia" ; 
---    Italian = mkNat "italiano" "Italia" ;
---    Romanian = mkNat "rumeno" "Romania" ;
---    Swedish = mkNat "svedese" "Svezia" ;
+    Belgian = mkA "belga" ;
+    Belgium = mkNP (mkPN "Bélgica") ;
+    Bulgarian = mkNat "bulgaro" "Bulgaria" ;
+    Catalan = mkNat "catalán" "Cataluña" ;
+    Danish = mkNat "danés" "Dinamarca" ;
+    Dutch = mkNat "neerlandés" "Holanda" ;
+    English = mkNat "inglés" "Inglaterra" ;
+    Finnish = mkNat "finlandés" "Finlandia" ;
+    Flemish = mkNP (mkPN "flamenco") ;
+    French = mkNat "francés" "Francia" ;
+    German = mkNat "alemán" "Alemania" ;
+    Italian = mkNat "italiano" "Italia" ;
+    Norwegian = mkNat "noruego" "Noruega" ;
+    Polish = mkNat "polaco" "Polonia" ;
+    Romanian = mkNat "rumano" "Rumania" ;
+    Russian = mkNat "ruso" "Rusia" ;
+    Spanish = mkNat "español" "España" ;
+    Swedish = mkNat "sueco" "Suecia" ;
 
+-- means of transportation 
+
+    Bike = mkTransport (mkN "bicicleta") ; 
+    Bus = mkTransport (mkN "autobús" "autobuses" masculine) ;
+    Car = mkTransport L.car_N | mkTransport (mkN "coche") ; 
+    Ferry = mkTransport (mkN "ferry") | mkTransport (mkN "transbordador") ;
+    Plane = mkTransport (mkN "avión") ;
+    Subway = mkTransport (mkN "metro") ; 
+    Taxi = mkTransport (mkN "taxi" masculine) ; 
+    Train = mkTransport (mkN "tren") ;
+    Tram = mkTransport (mkN "tranvía") ;
+
+    ByFoot = P.mkAdv "a pie" ;    
+
 -- actions
 
---    AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
-    AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
---    AHasRoom p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "camera")) (SyntaxSpa.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
---    AHasTable p num = mkCl p.name have_V2 
---      (mkNP (mkNP a_Det (mkN "tavolo")) (SyntaxSpa.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
---    AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ;
---    AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ;
---    AIll p = mkCl p.name (mkA "malato") ;
---    AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ;
---    ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ;
---    ALive p co = 
---      mkCl p.name (mkVP (mkVP (mkV "abitare")) (SyntaxSpa.mkAdv P.in_Prep co)) ;
---    ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ;
---    AMarried p = mkCl p.name (mkA "sposato") ;
---    AReady p = mkCl p.name (mkA "pronto") ;
---    AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ;
---    ASpeak p lang = mkCl p.name  (mkV2 (mkV "parlare")) lang ;
---    AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ;
---    ATired p = mkCl p.name (mkA "stanco") ;
---    AUnderstand p = mkCl p.name (mkV "capire") ;
---    AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ;
---    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
+    AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
+    AHasChildren p num = mkCl p.name have_V2 (mkNP num (mkN "hijo")) ;
+    AHasRoom p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "habitación" feminine)) (S.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+    AHasTable p num = mkCl p.name have_V2 
+      (mkNP (mkNP a_Det (mkN "mesa")) (S.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+    AHasName p name = mkCl p.name (mkV2 (reflV (mkV "llamar"))) name ;
+    AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "hambre" feminine))) ;
+    AIll p = mkCl p.name stateCopula (mkAP (mkA "enfermo")) ;
+    AKnow p = mkCl p.name (mkV (saber_71 "saber")) ;
+    ALike p item = mkCl item (mkV2 (mkV ("gustar")) dative) p.name ;
+    ALive p co = mkCl p.name (mkVP (mkVP (mkV "vivir")) (S.mkAdv in_Prep co)) ;
+    ALove p q = mkCl p.name (mkV2 (mkV "amar")) q.name ;
+    AMarried p = mkCl p.name (mkA "casado") ;
+    AReady p = mkCl p.name stateCopula (mkAP (mkA "listo")) ;
+    AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "miedo"))) ;
+    ASpeak p lang = mkCl p.name (mkV2 (mkV "hablar")) lang ;
+    AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sed" feminine))) ;
+    ATired p = mkCl p.name stateCopula (mkAP (mkA "cansado")) ;
+    AUnderstand p = mkCl p.name (mkV (defender_29 "entender")) ;
+    AWant p obj = mkCl p.name (mkV2 (mkV (querer_64 "querer"))) obj ;
+    AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
 
 
 -- miscellaneous
 
---    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ;
---    QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
+    QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "llamar")))) ;
+    QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; 
+    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costar" "cuesto"))) ; 
+    ItCost item price = mkCl item (mkV2 (mkV "costar" "cuesto")) price ;
 
---    PropOpen p = mkCl p.name open_A ;
---    PropClosed p = mkCl p.name closed_A ;
---    PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; 
---    PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; 
---    PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; 
---    PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; 
+    PropOpen p = mkCl p.name stateCopula (mkAP open_A) ;
+    PropClosed p = mkCl p.name stateCopula (mkAP closed_A) ;
+    PropOpenDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP open_A)) d) ; 
+    PropClosedDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP closed_A)) d) ;
+    PropOpenDay p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP open_A)) d.habitual) ;
+    PropClosedDay p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP closed_A)) d.habitual) ;
 
---    HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; 
---    ItCost item price = mkCl item (mkV2 (mkV "costare")) price ;
 
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
---    PSeeYou d = mkText (lin Text (ss ("arrivederci"))) (mkPhrase (mkUtt d)) ;
---    PSeeYouPlace p d = 
---      mkText (lin Text (ss ("arrivederci"))) 
---        (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
+    PSeeYouDate d = mkText (lin Text (ss ("nos vemos"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("nos vemos"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
+      mkText (lin Text (ss ("nos vemos"))) 
+        (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
 
 -- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
 -- below. Languages with productive genitives can use an equivalent of
 -- "my son's wife" for non-pronouns, as e.g. in English.
 
---    Wife = xOf sing (mkN "sposa") ;
---    Husband = xOf sing (mkN "marito") ;
---    Son = xOf sing (mkN "figlio") ;
---    Daughter = xOf sing (mkN "figlia") ;
---    Children = xOf plur L.child_N ;
+    Wife = xOf sing (mkN "esposa" feminine) ;
+    Husband = xOf sing (mkN "marido" masculine) ;
+    Son = xOf sing (mkN "hijo" masculine) ;
+    Daughter = xOf sing (mkN "hija" feminine) ;
+    Children = xOf plur (mkN "hijo") ;
 
 -- week days
 
---    Monday = mkDay "lunedì" ;
---    Tuesday = mkDay "martedì" ;
---    Wednesday = mkDay "mercoledì" ;
---    Thursday = mkDay "giovedì" ;
---    Friday = mkDay "venerdì" ;
---    Saturday = mkDay "sabato" ;
---    Sunday = mkDay "domenica" ;
+    Monday = mkDay "lunes" ;
+    Tuesday = mkDay "martes" ;
+    Wednesday = mkDay "miércoles" ;
+    Thursday = mkDay "jueves" ;
+    Friday = mkDay "viernes" ;
+    Saturday = mkDay "sábado" ;
+    Sunday = mkDay "domingo" ;
 
---    Tomorrow = P.mkAdv "domani" ;
+    Tomorrow = P.mkAdv "mañana" ;
 
+
+-- transports
+
+    -- "qué tan lejos está PLACE"
+    HowFar place = mkQS (mkQCl far_IP place.name placeCopula) ;
+
+    -- "qué tan lejos de X está Y"
+    HowFarFrom x y = mkQS (mkQCl (mkIP far_IP (S.mkAdv from_Prep x.name)) y.name placeCopula) ; 
+
+    -- "cuánto dura desde X hasta Y con T"
+    -- x,y: Place ; t: ByTransport
+    HowFarFromBy x y t = mkQS (mkQCl how8much_IAdv
+       (mkCl (mkVP (mkVP (mkVP (mkVP (mkV "durar")) (S.mkAdv desde_Prep x.name)) (S.mkAdv hasta_Prep y.name)) t ))) ;
+
+    -- "cuánto dura hasta Y con T"
+    -- y: Place ; t: ByTransport
+    HowFarBy y t = mkQS (mkQCl how8much_IAdv 
+       (mkCl (mkVP (mkVP (mkVP (mkV "durar")) (S.mkAdv hasta_Prep y.name)) t ))) ;
+
+
+oper
+     far_IP = mkIP whatSg_IP (S.mkAdv (P.mkAdA "tan") (P.mkAdv "lejos")) ; -- "qué tan lejos"
+     how8much_IAdv = ss "cuánto" ; -- this wasn't implemented in the resource library
+     desde_Prep = mkPrep "desde" ;
+     hasta_Prep = mkPrep "hasta" ;
+     placeCopula = mkV2 (mkV (estar_2 "estar")) ; 
+
+lin
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxSpa.mkAdv for_Prep place.name)))) ;
+
+-- modifiers of places
+
+    ------------------------------------------------------------------
+    -- Common adjectives like "good" or "bad" come before the noun,
+    -- but most of them come after. So, when making a superlative
+    -- place, we have to know in which place it belongs.
+    -- 
+    -- The lincat of Superlative is defined in SentencesSpa as a type
+    -- OrdSuperlative, consisting of {ord: Ord ; isPre: Bool}.
+    -- 
+    -- The function mkSuperl returns an OrdSuperlative. SuperlPlace
+    -- takes two parameters, OrdSuperlative and PlaceKind, and gives
+    -- them to placeNPSuperl (defined in SentencesSpa). 
+    -- In placeNPSuperl the value of isPre determines whether the
+    -- superlative is placed before or after the noun.
+    ------------------------------------------------------------------
+
+    TheBest = mkSuperl L.good_A True;
+    TheClosest = mkSuperl L.near_A False; 
+    TheCheapest = mkSuperl cheap_A False ;
+    TheMostExpensive = mkSuperl expensive_A False ;
+    TheMostPopular =
+      let popular = mkA "popular" "popular" "populars" "populars" "popularment"
+      in  mkSuperl popular False ;
+    TheWorst = mkSuperl L.bad_A True ;
+
+    SuperlPlace sup p = placeNPSuperl sup p ;
+
+
 -- auxiliaries
 
---  oper
---    mkNat : Str -> Str -> NPNationality = \nat,co -> 
---      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+  oper
+    mkNat : Str -> Str -> NPNationality = \nat,co -> 
+      mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
 
---    mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
---      let day = mkNP (mkPN d) in
---      mkNPDay day (P.mkAdv ("il" ++ d)) (P.mkAdv ("il" ++ d)) ; ---- ?
 
---    mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
---      mkCNPlace (mkCN p) i dative ;
+    -- not the most elegant solution, but it works
+    mkDay : Str -> NPDay = \d ->
+      case last d of {
+        "s" => mkNPDay (mkNP (mkN d)) (P.mkAdv d) (P.mkAdv ("los" ++ d)) ;
+         _  => mkNPDay (mkNP (mkN d)) (P.mkAdv d) (P.mkAdv ("los" ++ d + "s")) 
+      } ;
 
---    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
+    mkPlace : N -> Prep -> CNPlace = \p,i ->
+      mkCNPlace (mkCN p) i dative ;
 
---    open_A = mkA "aperto" ;
---    closed_A = mkA "chiuso" ;
+    xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; 
 
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = S.mkAdv with_Prep (mkNP n)
+      } ;
 
---}
+    mkSuperl : A -> Bool -> OrdSuperlative = \a,bool ->
+      let ord : Ord = S.mkOrd a in {
+        ord = ord ;
+        isPre = bool ;
+      } ;
+
+
+    -- for adjectives that express temporary state
+    stateCopula = mkVA (mkV (estar_2 "estar")) ;
+
+    cheap_A = mkA "barato" ; 
+    expensive_A = mkA "caro" ;
+    open_A = mkA "abierto" ;
+    closed_A = mkA "cerrado" ;
+
 }
diff --git a/examples/phrasebook/WordsSwe.gf b/examples/phrasebook/WordsSwe.gf
--- a/examples/phrasebook/WordsSwe.gf
+++ b/examples/phrasebook/WordsSwe.gf
@@ -1,4 +1,4 @@
--- (c) 2009 Aarne Ranta under LGPL
+-- (c) 2010 Aarne Ranta under LGPL
 
 concrete WordsSwe of Words = SentencesSwe ** 
     open SyntaxSwe, ParadigmsSwe, IrregSwe, (L = LexiconSwe), ExtraSwe, Prelude in {
@@ -38,41 +38,83 @@
 -- places
 
     Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ;
+    AmusementPark = mkPlace (mkN "nöjespark" "nöjesparker") "i" ;
+    Bank = mkPlace (mkN "bank" "banker") "i" ;
     Bar = mkPlace (mkN "bar" "barer") "i" ;
+    Cafeteria = mkPlace (mkN "café" "café") "på" ;
+    Center = mkPlace (mkN "innerstad" "innerstäder") "på" ; ----
     Church = mkPlace (mkN "kyrka") "i" ;
-    Cinema = mkPlace (mkN "bio" "bio" "bion" "biona") "på" ; ---- ?
+    Cinema = mkPlace (mkN "bio" "bion" "biografer" "biograferna") "på" ; ---- ?
+    Disco = mkPlace (mkN "diskotek" "diskotek") "på" ;
     Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ;
     Hotel = mkPlace (mkN "hotell" "hotell") "på" ;
     Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ;
     Park = mkPlace (mkN "park" "parker") "i" ;
+    Parking = mkPlace (mkN "parkering") "på" ;
+    Pharmacy = mkPlace (mkN "apotek" "apotek") "i" ;
+    PostOffice = mkPlace (mkN "post" "poster") "på" ;
+    Pub = mkPlace (mkN "pub") "på" ;
     Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ;
-    Shop = mkPlace (mkN "affär" "affär") "i" ;
+    Shop = mkPlace (mkN "affär" "affärer") "i" ;
     School = mkPlace (mkN "skola") "på" ;
     Station = mkPlace (mkN "station" "stationer") "på" ;
+    Supermarket = mkPlace (mkN "snabbköp" "snabbköp") "på" ;
     Theatre = mkPlace (mkN "teater" "teatrar") "på" ;
-    Toilet = mkPlace (mkN "toalett" "toaletter") "på" ;
+    Toilet = mkPlace2 (mkN "toalett" "toaletter") "på" "på" ;
     University = mkPlace (mkN "universitet" "universitet") "på" ;
+    Zoo = mkPlace (mkN "djurpark" "djurparker") "i" ;
 
+    CitRestaurant cit = 
+      mkCNPlace (mkCN cit (mkN "restaurang" "restauranger")) on_Prep to_Prep ;
+
 -- currencies
 
     DanishCrown = mkCN (mkA "dansk") (mkN "krona") | mkCN (mkN "krona") ;
     Dollar = mkCN (mkN "dollar" "dollar") ;
     Euro = mkCN (mkN "euro" "euro") ;
     Lei = mkCN (mkN "lei" "lei") ;
+    Leva = mkCN (mkN "leva" "leva") ;
+    NorwegianCrown = mkCN (mkA "norsk") (mkN "krona") | mkCN (mkN "krona") ;
+    Pound = mkCN (mkN "pund" "pund") ; ---- ett pund ?
+    Rouble = mkCN (mkN "rubel" "rubeln" "rubel" "rubeln") ; ---- ?
     SwedishCrown = mkCN (mkA "svensk") (mkN "krona") | mkCN (mkN "krona") ;
+    Zloty = mkCN (mkN "zloty" "zloty") ;
 
 -- nationalities
 
     Belgian = mkA "belgisk" ;
     Belgium = mkNP (mkPN "Belgien") ;
+    Bulgarian = mkNat "bulgarisk" "Bulgarien" ;
+    Catalan = mkNat "katalansk" "Katalonien" ;
+    Danish = mkNat "dansk" "Danmark" ;
+    Dutch = mkNat "nederländsk" "Nederländerna" ;
     English = mkNat "engelsk" "England" ;
     Finnish = mkNat "finsk" "Finland" ;
     Flemish = mkNP (mkPN "flamländska") ;
-    French = mkNat "fransk" "Frankrike" ; 
+    French = mkNat "fransk" "Frankrike" ;
+    German = mkNat "tysk" "Tyskland" ; 
     Italian = mkNat "italiensk" "Italien" ;
+    Norwegian = mkNat "norsk" "Norge" ;
+    Polish = mkNat "polsk" "Polen" ;
     Romanian = mkNat "rumänsk" "Rumänien" ;
+    Russian = mkNat "rysk" "Ryssland" ;
+    Spanish = mkNat "spansk" "Spanien" ;
     Swedish = mkNat "svensk" "Sverige" ;
 
+-- means of transportation 
+
+    Bike = mkTransport L.bike_N ; 
+    Bus = mkTransport (mkN "buss") ;
+    Car = mkTransport L.car_N ;
+    Ferry = mkTransport (mkN "färja") ;
+    Plane = mkTransport L.airplane_N ;
+    Subway = mkTransport (mkN "tunnelbana") ;
+    Taxi = mkTransport (mkN "taxi" "taxin" "taxibilar" "taxibilarna") ; ----
+    Train = mkTransport L.train_N ;
+    Tram = mkTransport (mkN "spårvagn") ;
+
+    ByFoot = ParadigmsSwe.mkAdv "till fots" ;
+
 -- actions
 
     AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
@@ -117,8 +159,9 @@
 -- Building phrases from strings is complicated: the solution is to use
 -- mkText : Text -> Text -> Text ;
 
-    PSeeYou d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
-    PSeeYouPlace p d = 
+    PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
+    PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
+    PSeeYouPlaceDate p d = 
       mkText (lin Text (ss ("vi ses"))) 
         (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
 
@@ -144,6 +187,36 @@
 
     Tomorrow = ParadigmsSwe.mkAdv "imorgon" ;
 
+-- transports
+
+    HowFar place = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP place.to))) ;
+    HowFarFrom x y = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP y.to) 
+                    (SyntaxSwe.mkAdv from_Prep x.name)))) ;
+    HowFarFromBy x y t = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP (mkVP y.to) 
+                    (SyntaxSwe.mkAdv from_Prep x.name)) t))) ;
+    HowFarBy place t = 
+      mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP place.to) t))) ;
+
+    WhichTranspPlace trans place = 
+      mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
+
+    IsTranspPlace trans place =
+      mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
+
+-- modifiers of places
+
+    TheBest = mkSuperl L.good_A ;
+    TheClosest = mkSuperl L.near_A ; 
+    TheCheapest = mkSuperl (mkA "billig") ;
+    TheMostExpensive = mkSuperl (mkA "dyr") ;
+    TheMostPopular = mkSuperl (mkA "populär") ;
+    TheWorst = mkSuperl L.bad_A ;
+
+    SuperlPlace sup p = placeNP sup p ;
+
   oper
     mkNat : Str -> Str -> NPNationality = \nat,co -> 
       mkNPNationality (mkNP (mkPN (nat + "a"))) (mkNP (mkPN co)) (mkA nat) ;
@@ -153,8 +226,10 @@
       mkNPDay day (SyntaxSwe.mkAdv on_Prep day) 
         (SyntaxSwe.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
 
-    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> 
+    mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = \p,i -> 
       mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
+    mkPlace2 : N -> Str -> Str -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = 
+      \p,i,t -> mkCNPlace (mkCN p) (mkPrep i) (mkPrep t) ;
 
     open_A = mkA "öppen" "öppet" ;
     closed_A = mkA "stängd" "stängt" ;
@@ -162,5 +237,12 @@
     xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> 
       relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
 
+    mkTransport : N -> {name : CN ; by : Adv} = \n -> {
+      name = mkCN n ; 
+      by = SyntaxSwe.mkAdv with_Prep (mkNP n)
+      } ;
 
+    mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
+
+    far_IAdv = ExtraSwe.IAdvAdv L.far_Adv ;
 }
diff --git a/examples/phrasebook/doc-phrasebook.html b/examples/phrasebook/doc-phrasebook.html
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/doc-phrasebook.html
@@ -0,0 +1,687 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>MOLTO Multilingual Phrasebook</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>MOLTO Multilingual Phrasebook</H1>
+<FONT SIZE="4">
+<I>Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes, Adam Slaski</I><BR>
+Showcase for project FP7-ICT-247914, Deliverable D10.2.
+</FONT></CENTER>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+  <UL>
+  <LI><A HREF="#toc1">Purpose</A>
+  <LI><A HREF="#toc2">Points illustrated</A>
+    <UL>
+    <LI><A HREF="#toc3">From the user perspective</A>
+    <LI><A HREF="#toc4">From the programmer's perspective</A>
+    </UL>
+  <LI><A HREF="#toc5">Files</A>
+    <UL>
+    <LI><A HREF="#toc6">Grammars</A>
+    <LI><A HREF="#toc7">Ontology</A>
+    <LI><A HREF="#toc8">Run-time system and user interface</A>
+    </UL>
+  <LI><A HREF="#toc9">Effort and cost</A>
+  <LI><A HREF="#toc10">Example-based grammar writing prototype</A>
+  <LI><A HREF="#toc11">To Do</A>
+  <LI><A HREF="#toc12">How to contribute</A>
+  <LI><A HREF="#toc13">Conclusions (tentative)</A>
+  <LI><A HREF="#toc14">Acknowledgements</A>
+  </UL>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+<P>
+<HR>
+<font size=-1>
+</P>
+<P>
+History
+</P>
+<UL>
+<LI>2 June. Version 1.0 released!
+<LI>29 May. Link to Google translate with the current language pair and phrase.
+<LI>27 May. Polish added.
+<LI>26 May. Version 0.9:
+  Catalan added, mass/count noun distinction to reduce overgeneration, 
+  improved web interface.
+<LI>20 May. Version 0.8:
+  Spanish added, Bulgarian complete.
+<LI>9 May. Version 0.7: 
+  Danish and Norwegian added (preliminary versions induced from statistical models 
+  and resource grammars).
+<LI>3 May. Version 0.6: 
+  Extended API (now final for release), Dutch added; new user interface with text 
+  input enabled.
+<LI>10 April. Some additions in API, comments in implementation; regenerated clones.
+<LI>8 April. Added German.
+<LI>7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
+<LI>6 April. Version 0.4: weekdays, nationalities
+<LI>30 March. Version 0.3: disambiguation grammar for English
+<LI>28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
+<LI>26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
+</UL>
+
+<P>
+<A HREF="missing.txt">Missing constructs</A> 
+</P>
+<P>
+<A HREF="http://www.grammaticalframework.org/demos/phrasebook/">Back to the phrasebook</A>
+</P>
+<P>
+</font>
+<HR>
+</P>
+<A NAME="toc1"></A>
+<H1>Purpose</H1>
+<P>
+This phrasebook is a program for translating touristic phrases 
+between 14 European languages included in the 
+<A HREF="http://www.molto-project.eu">MOLTO</A> project
+(Multilingual On-Line Translation):
+</P>
+<UL>
+<LI>Bulgarian, Catalan, Danish, Dutch, English,
+  Finnish, French, German, Italian, Norwegian,
+  Polish, Romanian, Spanish, Swedish
+</UL>
+
+<P>
+A Russian version is not yet finished but is projected later. Also other languages may be added.
+</P>
+<P>
+The phrasebook is implemented by using the GF programming language 
+(<A HREF="http://grammaticalframework.org">Grammatical Framework</A>).
+It is the first demo for the MOLTO project, released in the third month (by June 2010).
+The first version is a very small system, but it will extended in the course of the project.
+</P>
+<P>
+The phrasebook has the following requirement specification:
+</P>
+<UL>
+<LI>high quality: reliable translations to express yourself in any of the languages
+<LI>translation between all pairs of languages
+<LI>runnable in web browsers
+<LI>runnable on mobile phones (via web browser; Android stand-alone forthcoming)
+<LI>easily extensible by new words (forthcoming: semi-automatic extensions by users)
+</UL>
+
+<P>
+The phrasebook is available as open-source software, licensed under GNU LGPL. 
+The source code resides in 
+<A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>code.haskell.org/gf/examples/phrasebook/</CODE></A>
+</P>
+<A NAME="toc2"></A>
+<H1>Points illustrated</H1>
+<A NAME="toc3"></A>
+<H2>From the user perspective</H2>
+<P>
+Interlingua-based translation
+</P>
+<UL>
+<LI>we translate meanings, rather than words
+</UL>
+
+<P>
+Incremental parsing
+</P>
+<UL>
+<LI>the user is at every point guided by the list of possible next words
+</UL>
+
+<P>
+Mixed modalities
+</P>
+<UL>
+<LI>selection of words ("fridge magnets") combined with text input
+</UL>
+
+<P>
+Quasi-incremental translation: many basic types are also used as phrases
+</P>
+<UL>
+<LI>one can translate both words and complete sentences, and get intermediate results
+</UL>
+
+<P>
+Disambiguation, esp. of politeness distinctions
+</P>
+<UL>
+<LI>if a phrase has many translations, each of them is shown and given an explanation
+  (currently just in English, later in any source language)
+</UL>
+
+<P>
+Fall-back to statistical translation
+</P>
+<UL>
+<LI>currently just a link to Google translate (forthcoming: tailor-made statistical models)
+</UL>
+
+<P>
+Feed-back from users
+</P>
+<UL>
+<LI>users are welcomed to send comments, bug reports, and better translation suggestions
+</UL>
+
+<A NAME="toc4"></A>
+<H2>From the programmer's perspective</H2>
+<P>
+The use of resource grammars and functors
+</P>
+<UL>
+<LI>the translator was implemented on top of an earlier linguistic knowledge base,
+  the <A HREF="http://grammaticalframework.com/lib">GF Resource Grammar Library</A>
+</UL>
+
+<P>
+Example-based grammar writing and grammar induction from statistical models 
+(<A HREF="http://translate.google.com">Google translate</A>)
+</P>
+<UL>
+<LI>many of the grammars were created semi-automatically by generalization from
+  examples
+</UL>
+
+<P>
+Compile-time transfer: especially, in Action in Words
+</P>
+<UL>
+<LI>the structural differences between languages are treated at compile time,
+  for maximal run-time efficiency
+</UL>
+
+<P>
+The level of skills involved in grammar development
+</P>
+<UL>
+<LI>testing different configurations (see table below)
+</UL>
+
+<P>
+Grammar testing
+</P>
+<UL>
+<LI>use of treebanks with guided random generation for initial evaluation and regression testing
+</UL>
+
+<A NAME="toc5"></A>
+<H1>Files</H1>
+<A NAME="toc6"></A>
+<H2>Grammars</H2>
+<P>
+<CODE>Sentences</CODE>: general syntactic structures implementable in a uniform way. 
+Concrete syntax via the functor <CODE>SencencesI</CODE>.
+</P>
+<P>
+<CODE>Words</CODE>: words and predicates, typically language-dependent. 
+Separate concrete syntaxes.
+</P>
+<P>
+<CODE>Greetings</CODE>: idiomatic phrases, string-based. 
+Separate concrete syntaxes.
+</P>
+<P>
+<CODE>Phrasebook</CODE>: the top module putting everything together. 
+Separate concrete syntaxes.
+</P>
+<P>
+<CODE>DisambPhrasebook</CODE>: disambiguation grammars generating feedback phrases if
+the input language is ambiguous.
+</P>
+<P>
+<CODE>Numeral</CODE>: resource grammar module directly inherited from the library.
+</P>
+<P>
+Here is the module structure as produced in GF by
+</P>
+<PRE>
+    &gt; i -retain DisambPhrasebookEng.gf
+    &gt; dg -only=Phrasebook*,Sentences*,Words*,Greetings*,Numeral,NumeralEng,DisambPhrasebookEng
+    &gt; ! dot -Tpng _gfdepgraph.dot &gt;pgraph.png
+</PRE>
+<P></P>
+<P>
+<IMG ALIGN="middle" SRC="pgraph.png" BORDER="0" ALT="">
+</P>
+<A NAME="toc7"></A>
+<H2>Ontology</H2>
+<P>
+The abstract syntax defines the <B>ontology</B> behind the phrasebook. 
+Some explanations can be found in the 
+<A HREF="Ontology.html">ontology document</A>, which is produced from the
+abstract syntax files
+<A HREF="http://code.haskell.org/gf/examples/phrasebook/Sentences.gf"><CODE>Sentences.gf</CODE></A>
+and
+<A HREF="http://code.haskell.org/gf/examples/phrasebook/Words.gf"><CODE>Words.gf</CODE></A>
+by <CODE>make doc</CODE>.
+</P>
+<A NAME="toc8"></A>
+<H2>Run-time system and user interface</H2>
+<P>
+The phrasebook uses 
+the 
+<A HREF="http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos">PGF server</A>
+written in Haskell and the 
+<A HREF="http://www.cse.chalmers.se/~hallgren/minibar/about.html">minibar library</A>
+written in JavaScript. Since the sources of these systems are available, anyone can build the phrasebook
+locally on her own computer.
+</P>
+<A NAME="toc9"></A>
+<H1>Effort and cost</H1>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Language</TH>
+<TH>Grammarian's language skills</TH>
+<TH>Grammarian's GF skills</TH>
+<TH>Informant used for development</TH>
+<TH>Informant used for testing</TH>
+<TH>Use of external tools</TH>
+<TH>Impact of external tools</TH>
+<TH>Changes on the resource grammar</TH>
+<TH COLSPAN="2">Development time</TH>
+</TR>
+<TR>
+<TD>Bulgarian</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Catalan</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">#</TD>
+</TR>
+<TR>
+<TD>Danish</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Dutch</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>English</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">_</TD>
+<TD ALIGN="center">#</TD>
+</TR>
+<TR>
+<TD>Finnish</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>French</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">#</TD>
+</TR>
+<TR>
+<TD>German</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">###</TD>
+</TR>
+<TR>
+<TD>Italian</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Norwegian</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Polish</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Romanian</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">###</TD>
+</TR>
+<TR>
+<TD>Spanish</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">#</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">_</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+<TR>
+<TD>Swedish</TD>
+<TD ALIGN="center">##</TD>
+<TD ALIGN="center">###</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">+</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">?</TD>
+<TD ALIGN="center">-</TD>
+<TD ALIGN="center">##</TD>
+</TR>
+</TABLE>
+
+<P>
+Explanation on scores
+</P>
+<UL>
+<LI>Grammarian's language skills  
+   <UL>
+   <LI>-   : no skills
+   <LI>#   : passive knowledge
+   <LI>##  : fluent non-native
+   <LI>### : native speaker
+   </UL>
+</UL>
+
+<UL>
+<LI>Grammarian's GF skills  
+   <UL>
+   <LI>-   : no skills
+   <LI>#   : basic skills (2-day GF tutorial)
+   <LI>##  : medium skills (previous experience of similar task)
+   <LI>### : advanced skills (resource grammar writer/substantial contributor)
+   </UL>
+</UL>
+
+<UL>
+<LI>Informant used for development/Informant needed for testing/Use of external tools 
+   <UL>
+   <LI>- : no
+   <LI>+ : yes
+   </UL>
+</UL>
+
+<UL>
+<LI>Impact of external tools 
+   <UL>
+   <LI>? : not investigated
+   <LI>- : no effect on the Phrasebook
+   <LI># : small impact (literal translation, simple idioms)
+   <LI>## : medium effect (translation of more forms of words, contextual preposition)
+   <LI>### : great effect (no extra work needed, translations are correct)
+   </UL>
+</UL>
+
+<UL>
+<LI>Changes on the resource grammars
+   <UL>
+   <LI>- : no changes
+   <LI># : 1-3 minor changes
+   <LI>## : 4-10 minor changes, 1-3 medium changes
+   <LI>### : &gt;10 changes of any kind  
+   </UL>
+</UL>
+
+<UL>
+<LI>Overall effort (including extra work on resource grammars)
+   <UL>
+   <LI># : less than 8 person hours
+   <LI>## : 8-24 person hours
+   <LI>### : &gt;24 person hours
+   </UL>
+</UL>
+
+<A NAME="toc10"></A>
+<H1>Example-based grammar writing prototype</H1>
+<P>
+The figure presents the process of creating a Phrasebook using an example-based 
+approach for the language X, where X = {Danish, Dutch, German, Norwegian}.
+</P>
+<P>
+<IMG ALIGN="middle" SRC="picpic.jpg" BORDER="0" ALT="">
+</P>
+<UL>
+<LI>the first step assumes an analysis of the resource grammar and extracts the necessary 
+  information that functions that build new lexical entries would need. 
+  A model is built so that the proper forms of the word can be rendered, 
+  and additional information, such as gender, can be inferred. The script applies 
+  these rules to each entry that we want to translate into the target language, and 
+  one obtains a set of constructions.
+<LI>they are furthermore given to an external translator tool (Google translate) 
+  or a native speaker for translation. One needs the configuration file even if the 
+  translator is human, because formal knowledge of grammar is not assumed.
+<LI>the translations into the target language are further more processed in order to 
+  build the linearizations of the categories first, decoding the information received. 
+  Furthermore, having the words in the lexicon, one can parse the translations of 
+  functions with the GF parser and generalize from that.
+<LI>the resulting grammar is tested with the aid of a script that generates 
+  constructions covering all the functions and categories from the grammar, along 
+  with some other constructions that proved to be problematic in some language. 
+  The result of the script contains for each construction in the target language 
+  its English correspondent and the abstract syntax tree. A native speaker 
+  evaluates the results and if corrections are needed, the algorithm runs again 
+  with the new examples. Depending on the language skills of the grammar writer, 
+  the changes can be made directly into the GF files, and the correct examples 
+  given by the native informant are just kept for validating the results. 
+  The algorithm is repeated as long as corrections are needed.
+</UL>
+
+<P>
+The time needed for preparing the configuration files for a grammar will not be needed 
+in the future, since the files are reusable for other applications.
+The time for the second step can be saved if automatic tools, like Google translate 
+are used. This is only possible in languages with a simpler morphology and syntax 
+and large corpora available.
+Good results were obtained for German and Dutch with Google translate, but for 
+languages like Romanian or Polish, which are both complex and lack enough resources, 
+the results are discouraging. 
+</P>
+<P>
+If the statistical oracle works well, the only step where the presence of a human 
+translator is needed is the evaluation and feedback step. An average of 4 hours per 
+round and 2 rounds were needed in average for the languages for which we performed 
+the experiment. It is possible that more effort is needed for more complex languages.
+</P>
+<A NAME="toc11"></A>
+<H1>To Do</H1>
+<P>
+Disambiguation grammars for other languages than English
+</P>
+<P>
+Extend the abstract lexicon in <CODE>Words</CODE> by hand or (semi)automatically for
+</P>
+<UL>
+<LI>food stuff
+<LI>places
+<LI>actions
+</UL>
+
+<P>
+Customizable phone distribution: make your own selection of the 2^15 language subsets
+when downloading the phrasebook to a phone
+</P>
+<A NAME="toc12"></A>
+<H1>How to contribute</H1>
+<P>
+The basic things "everyone" can do is 
+</P>
+<UL>
+<LI>complete <A HREF="missing.txt">missing words</A> in concrete syntaxes
+<LI>add new abstract words in <CODE>Words</CODE> and greetings in <CODE>Greetings</CODE>
+</UL>
+
+<P>
+The missing concrete syntax entries are added to the <CODE>Words</CODE><I>L</I><CODE>.gf</CODE> 
+files for each language <I>L</I>. The
+<A HREF="http://code.haskell.org/gf/lib/doc/synopsis.html#toc78">morphological paradigms</A>
+of the GF resource library should be used. Actions (prefixed with <CODE>A</CODE>, as <CODE>AWant</CODE>) are
+a little more demanding, since they also require syntax constructors. Greetings (prefixed
+with <CODE>G</CODE>) are pure strings.
+</P>
+<P>
+Some explanations can be found in the 
+<A HREF="Implementation.html">implementation document</A>, which is produced from the
+concrete syntax files
+<A HREF="http://code.haskell.org/gf/examples/phrasebook/SentencesI.gf"><CODE>SentencesI.gf</CODE></A>
+and
+<A HREF="http://code.haskell.org/gf/examples/phrasebook/WordsEng.gf"><CODE>WordsEng.gf</CODE></A>
+by <CODE>make doc</CODE>.
+</P>
+<P>
+Here are the steps to follow for contributors:
+</P>
+<OL>
+<LI>Make sure you have the latest sources 
+  from <A HREF="http://www.grammaticalframework.org/doc/gf-developers.html">GF Darcs</A>, 
+  using <CODE>darcs pull</CODE>.
+<LI>Also make sure that you have compiled the library by <CODE>make present</CODE> in <CODE>gf/lib/src/</CODE>.
+<LI>Work in the directory 
+  <A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>gf/examples/phrasebook/</CODE></A>.
+<LI>After you've finished your contribution, recompile the phrasebook by <CODE>make pgf</CODE>.
+<LI>Save your changes in <CODE>darcs record .</CODE> (in the <CODE>phrasebook</CODE> subdirectory).
+<LI>Make a patch file with <CODE>darcs send -o my_phrasebook_patch</CODE>, which you can 
+  send to GF maintainers.
+<LI>(Recommended:) Test the phrasebook on your local server:
+  <OL>
+  <LI>Go to <CODE>gf/src/server/</CODE> and follow the instructions in the
+    <A HREF="http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos">project Wiki</A>.
+  <LI>Make sure that <CODE>Phrasebook.pgf</CODE> is available to you GF server (see project wiki).
+  <LI>Launch <CODE>lighttpd</CODE> (see project wiki).
+  <LI>How you can open <CODE>gf/examples/phrasebook/www/phrasebook.html</CODE> and use your phrasebook!
+  </OL>
+</OL>
+
+<UL>
+<LI>Don't delete anything! But you are free to correct incorrect forms.
+<LI>Don't change the module structure! 
+<LI>Don't compromise quality to gain coverage: <I>non multa sed multum!</I> 
+</UL>
+
+<A NAME="toc13"></A>
+<H1>Conclusions (tentative)</H1>
+<P>
+The grammarian need not be a native speaker of the language.
+</P>
+<P>
+For many languages, the grammarian need not even know the language - native informants are
+enough.
+</P>
+<P>
+However, evaluation by native speakers is necessary.
+</P>
+<P>
+Correct and idiomatic translations are possible.
+</P>
+<P>
+A typical development time was 2-3 person working days per language.
+</P>
+<P>
+Google translate helps in bootstrapping grammars, but must be checked.
+</P>
+<UL>
+<LI>in particular, unreliable for morphologically rich languages
+</UL>
+
+<P>
+Resource grammars should give some more support
+</P>
+<UL>
+<LI>higher-level access to constructions like negative expressions
+<LI>large-scale morphological lexica
+</UL>
+
+<A NAME="toc14"></A>
+<H1>Acknowledgements</H1>
+<P>
+The Phrasebook has been built in the MOLTO project funded by the European Commission.
+</P>
+<P>
+The authors are grateful to their native speaker informants helping to bootstrap and evaluate
+the grammars: 
+Richard Bubel, 
+Grégoire Détrez, 
+Rise Eilert,
+Karin Keijzer, 
+Michał Pałka,
+Willard Rafnsson,
+Nick Smallbone.
+</P>
+
+<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml -\-toc doc-phrasebook.txt -->
+</BODY></HTML>
diff --git a/examples/phrasebook/doc-phrasebook.txt b/examples/phrasebook/doc-phrasebook.txt
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/doc-phrasebook.txt
@@ -0,0 +1,410 @@
+MOLTO Multilingual Phrasebook
+Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes, Adam Slaski
+Showcase for project FP7-ICT-247914, Deliverable D10.2.
+
+
+%!Encoding:utf-8
+
+%!postproc(html): #HR <HR>
+%!postproc(html): #BSMALL <font size=-1>
+%!postproc(html): #ESMALL </font>
+
+
+
+
+#HR
+#BSMALL
+
+History
+- 1 September. Version 1.1: bug fixes, some new constructions.
+- 2 June. Version 1.0 released!
+- 29 May. Link to Google translate with the current language pair and phrase.
+- 27 May. Polish added.
+- 26 May. Version 0.9:
+  Catalan added, mass/count noun distinction to reduce overgeneration, 
+  improved web interface.
+- 20 May. Version 0.8:
+  Spanish added, Bulgarian complete.
+- 9 May. Version 0.7: 
+  Danish and Norwegian added (preliminary versions induced from statistical models 
+  and resource grammars).
+- 3 May. Version 0.6: 
+  Extended API (now final for release), Dutch added; new user interface with text 
+  input enabled.
+- 10 April. Some additions in API, comments in implementation; regenerated clones.
+- 8 April. Added German.
+- 7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
+- 6 April. Version 0.4: weekdays, nationalities
+- 30 March. Version 0.3: disambiguation grammar for English
+- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
+- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
+
+
+[Missing constructs missing.txt] 
+
+[Back to the phrasebook http://www.grammaticalframework.org/demos/phrasebook/]
+
+#ESMALL
+#HR
+
+
+=Purpose=
+
+This phrasebook is a program for translating touristic phrases 
+between 14 European languages included in the 
+[MOLTO http://www.molto-project.eu] project
+(Multilingual On-Line Translation):
+- Bulgarian, Catalan, Danish, Dutch, English,
+  Finnish, French, German, Italian, Norwegian,
+  Polish, Romanian, Spanish, Swedish
+
+
+A Russian version is not yet finished but is projected later. Also other languages may be added.
+
+The phrasebook is implemented by using the GF programming language 
+([Grammatical Framework http://grammaticalframework.org]).
+It is the first demo for the MOLTO project, released in the third month (by June 2010).
+The first version is a very small system, but it will extended in the course of the project.
+
+The phrasebook has the following requirement specification:
+- high quality: reliable translations to express yourself in any of the languages
+- translation between all pairs of languages
+- runnable in web browsers
+- runnable on mobile phones (via web browser; Android stand-alone forthcoming)
+- easily extensible by new words (forthcoming: semi-automatic extensions by users)
+
+
+The phrasebook is available as open-source software, licensed under GNU LGPL. 
+The source code resides in 
+[``code.haskell.org/gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/]
+
+
+
+=Points illustrated=
+
+
+==From the user perspective==
+
+Interlingua-based translation
+- we translate meanings, rather than words
+
+
+Incremental parsing
+- the user is at every point guided by the list of possible next words
+
+
+Mixed modalities
+- selection of words ("fridge magnets") combined with text input
+
+
+Quasi-incremental translation: many basic types are also used as phrases
+- one can translate both words and complete sentences, and get intermediate results
+
+
+Disambiguation, esp. of politeness distinctions
+- if a phrase has many translations, each of them is shown and given an explanation
+  (currently just in English, later in any source language)
+
+
+Fall-back to statistical translation
+- currently just a link to Google translate (forthcoming: tailor-made statistical models)
+
+
+Feed-back from users
+- users are welcomed to send comments, bug reports, and better translation suggestions
+
+
+
+==From the programmer's perspective==
+
+The use of resource grammars and functors
+- the translator was implemented on top of an earlier linguistic knowledge base,
+  the [GF Resource Grammar Library http://grammaticalframework.com/lib]
+
+
+Example-based grammar writing and grammar induction from statistical models 
+([Google translate http://translate.google.com])
+- many of the grammars were created semi-automatically by generalization from
+  examples
+
+
+Compile-time transfer: especially, in Action in Words
+- the structural differences between languages are treated at compile time,
+  for maximal run-time efficiency
+
+
+The level of skills involved in grammar development
+- testing different configurations (see table below)
+
+
+Grammar testing
+- use of treebanks with guided random generation for initial evaluation and regression testing
+
+
+
+
+=Files=
+
+==Grammars==
+
+``Sentences``: general syntactic structures implementable in a uniform way. 
+Concrete syntax via the functor ``SencencesI``.
+
+``Words``: words and predicates, typically language-dependent. 
+Separate concrete syntaxes.
+
+``Greetings``: idiomatic phrases, string-based. 
+Separate concrete syntaxes.
+
+``Phrasebook``: the top module putting everything together. 
+Separate concrete syntaxes.
+
+``DisambPhrasebook``: disambiguation grammars generating feedback phrases if
+the input language is ambiguous.
+
+``Numeral``: resource grammar module directly inherited from the library.
+
+Here is the module structure as produced in GF by
+```
+  > i -retain DisambPhrasebookEng.gf
+  > dg -only=Phrasebook*,Sentences*,Words*,Greetings*,Numeral,NumeralEng,DisambPhrasebookEng
+  > ! dot -Tpng _gfdepgraph.dot >pgraph.png
+```
+
+[pgraph.png]
+
+
+==Ontology==
+
+The abstract syntax defines the **ontology** behind the phrasebook. 
+Some explanations can be found in the 
+[ontology document Ontology.html], which is produced from the
+abstract syntax files
+[``Sentences.gf`` http://code.haskell.org/gf/examples/phrasebook/Sentences.gf]
+and
+[``Words.gf`` http://code.haskell.org/gf/examples/phrasebook/Words.gf]
+by ``make doc``.
+
+
+
+==Run-time system and user interface==
+
+The phrasebook uses 
+the 
+[PGF server http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos]
+written in Haskell and the 
+[minibar library http://www.cse.chalmers.se/~hallgren/minibar/about.html]
+written in JavaScript. Since the sources of these systems are available, anyone can build the phrasebook
+locally on her own computer.
+
+
+=Effort and cost=
+
+|| Language | Grammarian's language skills  | Grammarian's GF skills | Informant used for development | Informant used for testing | Use of external tools | Impact of external tools | Changes on the resource grammar | Development time || 
+| Bulgarian |   ###    |    ###  |    -  |  -  |   -   |   ?   |  #   |   ##  |
+| Catalan   |   ###    |    ###  |    -  |  -  |   -   |   ?   |  #   |   #   |
+| Danish    |   -      |    ###  |    +  |  +  |   +   |   ##  |  #   |   ##  |
+| Dutch     |   -      |    ###  |    +  |  +  |   +   |   ##  |  #   |   ##  |
+| English   |   ##     |    ###  |    -  |  +  |   -   |   -   |  _   |   #   |
+| Finnish   |   ###    |    ###  |    -  |  -  |   -   |   ?   |  #   |   ##  |
+| French    |   ##     |    ###  |    -  |  +  |   -   |   ?   |  #   |   #   |
+| German    |   #      |    ###  |    +  |  +  |   +   |   ##  |  ##  |   ###  |
+| Italian   |   ###    |    #    |    -  |  -  |   -   |   ?   |  ##  |   ##  |
+| Norwegian |   #      |    ###  |    +  |  -  |   +   |   ##  |  #   |   ##  |
+| Polish    |   ###    |    ###  |    +  |  +  |   +   |   #   |  #   |   ##  |
+| Romanian  |   ###    |    ###  |    -  |  -  |   +   |   #   |  ###  |   ###  |
+| Spanish   |   ##     |    #    |    -  |  -  |   -   |   ?   |  _   |   ##   |
+| Swedish   |   ##     |    ###  |    -  |  +  |   -   |   ?   |  -   |   ##  |
+
+
+Explanation on scores
+
+- Grammarian's language skills  
+   - -   : no skills
+   - #   : passive knowledge
+   - ##  : fluent non-native
+   - ### : native speaker
+
+
+- Grammarian's GF skills  
+   - -   : no skills
+   - #   : basic skills (2-day GF tutorial)
+   - ##  : medium skills (previous experience of similar task)
+   - ### : advanced skills (resource grammar writer/substantial contributor)
+
+
+- Informant used for development/Informant needed for testing/Use of external tools 
+   - - : no
+   - + : yes
+
+
+- Impact of external tools 
+   - ? : not investigated
+   - - : no effect on the Phrasebook
+   - # : small impact (literal translation, simple idioms)
+   - ## : medium effect (translation of more forms of words, contextual preposition)
+   - ### : great effect (no extra work needed, translations are correct)
+
+
+- Changes on the resource grammars
+   - - : no changes
+   - # : 1-3 minor changes
+   - ## : 4-10 minor changes, 1-3 medium changes
+   - ### : >10 changes of any kind  
+
+
+- Overall effort (including extra work on resource grammars)
+   - # : less than 8 person hours
+   - ## : 8-24 person hours
+   - ### : >24 person hours
+ 
+
+=Example-based grammar writing prototype=
+
+The figure presents the process of creating a Phrasebook using an example-based 
+approach for the language X, where X = {Danish, Dutch, German, Norwegian}.
+
+[picpic.jpg]
+
+- the first step assumes an analysis of the resource grammar and extracts the necessary 
+  information that functions that build new lexical entries would need. 
+  A model is built so that the proper forms of the word can be rendered, 
+  and additional information, such as gender, can be inferred. The script applies 
+  these rules to each entry that we want to translate into the target language, and 
+  one obtains a set of constructions.
+- they are furthermore given to an external translator tool (Google translate) 
+  or a native speaker for translation. One needs the configuration file even if the 
+  translator is human, because formal knowledge of grammar is not assumed.
+- the translations into the target language are further more processed in order to 
+  build the linearizations of the categories first, decoding the information received. 
+  Furthermore, having the words in the lexicon, one can parse the translations of 
+  functions with the GF parser and generalize from that.
+- the resulting grammar is tested with the aid of a script that generates 
+  constructions covering all the functions and categories from the grammar, along 
+  with some other constructions that proved to be problematic in some language. 
+  The result of the script contains for each construction in the target language 
+  its English correspondent and the abstract syntax tree. A native speaker 
+  evaluates the results and if corrections are needed, the algorithm runs again 
+  with the new examples. Depending on the language skills of the grammar writer, 
+  the changes can be made directly into the GF files, and the correct examples 
+  given by the native informant are just kept for validating the results. 
+  The algorithm is repeated as long as corrections are needed.
+
+
+The time needed for preparing the configuration files for a grammar will not be needed 
+in the future, since the files are reusable for other applications.
+The time for the second step can be saved if automatic tools, like Google translate 
+are used. This is only possible in languages with a simpler morphology and syntax 
+and large corpora available.
+Good results were obtained for German and Dutch with Google translate, but for 
+languages like Romanian or Polish, which are both complex and lack enough resources, 
+the results are discouraging. 
+
+If the statistical oracle works well, the only step where the presence of a human 
+translator is needed is the evaluation and feedback step. An average of 4 hours per 
+round and 2 rounds were needed in average for the languages for which we performed 
+the experiment. It is possible that more effort is needed for more complex languages.
+
+
+=To Do=
+
+Disambiguation grammars for other languages than English
+
+Extend the abstract lexicon in ``Words`` by hand or (semi)automatically for
+- food stuff
+- places
+- actions
+
+
+Customizable phone distribution: make your own selection of the 2^15 language subsets
+when downloading the phrasebook to a phone
+
+
+=How to contribute=
+
+The basic things "everyone" can do is 
+- complete [missing words missing.txt] in concrete syntaxes
+- add new abstract words in ``Words`` and greetings in ``Greetings``
+
+
+The missing concrete syntax entries are added to the ``Words``//L//``.gf`` 
+files for each language //L//. The
+[morphological paradigms http://code.haskell.org/gf/lib/doc/synopsis.html#toc78]
+of the GF resource library should be used. Actions (prefixed with ``A``, as ``AWant``) are
+a little more demanding, since they also require syntax constructors. Greetings (prefixed
+with ``G``) are pure strings.
+
+Some explanations can be found in the 
+[implementation document Implementation.html], which is produced from the
+concrete syntax files
+[``SentencesI.gf`` http://code.haskell.org/gf/examples/phrasebook/SentencesI.gf]
+and
+[``WordsEng.gf`` http://code.haskell.org/gf/examples/phrasebook/WordsEng.gf]
+by ``make doc``.
+
+Here are the steps to follow for contributors:
++ Make sure you have the latest sources 
+  from [GF Darcs http://www.grammaticalframework.org/doc/gf-developers.html], 
+  using ``darcs pull``.
++ Also make sure that you have compiled the library by ``make present`` in ``gf/lib/src/``.
++ Work in the directory 
+  [``gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/].
++ After you've finished your contribution, recompile the phrasebook by ``make pgf``.
++ Save your changes in ``darcs record .`` (in the ``phrasebook`` subdirectory).
++ Make a patch file with ``darcs send -o my_phrasebook_patch``, which you can 
+  send to GF maintainers.
++ (Recommended:) Test the phrasebook on your local server:
+  + Go to ``gf/src/server/`` and follow the instructions in the
+    [project Wiki http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos].
+  + Make sure that ``Phrasebook.pgf`` is available to you GF server (see project wiki).
+  + Launch ``lighttpd`` (see project wiki).
+  + How you can open ``gf/examples/phrasebook/www/phrasebook.html`` and use your phrasebook!
+
+
+- Don't delete anything! But you are free to correct incorrect forms.
+- Don't change the module structure! 
+- Don't compromise quality to gain coverage: //non multa sed multum!// 
+
+
+
+
+=Conclusions (tentative)=
+
+The grammarian need not be a native speaker of the language.
+
+For many languages, the grammarian need not even know the language - native informants are
+enough.
+
+However, evaluation by native speakers is necessary.
+
+Correct and idiomatic translations are possible.
+
+A typical development time was 2-3 person working days per language.
+
+Google translate helps in bootstrapping grammars, but must be checked.
+- in particular, unreliable for morphologically rich languages
+
+
+Resource grammars should give some more support
+- higher-level access to constructions like negative expressions
+- large-scale morphological lexica
+
+
+
+
+
+
+=Acknowledgements=
+
+The Phrasebook has been built in the MOLTO project funded by the European Commission.
+
+The authors are grateful to their native speaker informants helping to bootstrap and evaluate
+the grammars: 
+Richard Bubel, 
+Grégoire Détrez, 
+Rise Eilert,
+Karin Keijzer, 
+Michał Pałka,
+Willard Rafnsson,
+Nick Smallbone.
+
diff --git a/examples/phrasebook/help-phrasebook.html b/examples/phrasebook/help-phrasebook.html
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/help-phrasebook.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<TITLE>MOLTO Phrasebook Help</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>MOLTO Phrasebook Help</H1>
+<FONT SIZE="4">
+</FONT></CENTER>
+
+<P>
+To start: klick at a word or start typing.
+</P>
+<P>
+<B>From</B>: source language
+</P>
+<P>
+<B>To</B>: target language (either a single one or "All" simultaneously)
+</P>
+<P>
+<B>Del</B>: delete last word
+</P>
+<P>
+<B>Clear</B>: start over
+</P>
+<P>
+<B>Random</B>: generate a random phrase
+</P>
+<P>
+Google translate: the current input and language choice; opens in a new window or tab.
+</P>
+<P>
+The symbol <CODE>&amp;+</CODE> means binding of two words. It will disappear in the complete translation.
+</P>
+<P>
+The translator is slightly <I>overgenerating</I>, which means you can build some semantically strange phrases.
+Before reporting them as bugs, ask yourself: could this be correct in some situation? is the translation
+valid in that situation?
+</P>
+
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml help-phrasebook.txt -->
+</BODY></HTML>
diff --git a/examples/phrasebook/help-phrasebook.txt b/examples/phrasebook/help-phrasebook.txt
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/help-phrasebook.txt
@@ -0,0 +1,23 @@
+MOLTO Phrasebook Help
+
+
+
+To start: klick at a word or start typing.
+
+**From**: source language
+
+**To**: target language (either a single one or "All" simultaneously)
+
+**Del**: delete last word
+
+**Clear**: start over
+
+**Random**: generate a random phrase
+
+Google translate: the current input and language choice; opens in a new window or tab.
+
+The symbol ``&+`` means binding of two words. It will disappear in the complete translation.
+
+The translator is slightly //overgenerating//, which means you can build some semantically strange phrases.
+Before reporting them as bugs, ask yourself: could this be correct in some situation? is the translation
+valid in that situation?
diff --git a/examples/phrasebook/missing.txt b/examples/phrasebook/missing.txt
--- a/examples/phrasebook/missing.txt
+++ b/examples/phrasebook/missing.txt
@@ -1,9 +1,15 @@
 DisambPhrasebookEng :
-PhrasebookBul : AHasName AHasRoom AHasTable AHungry AIll AKnow ALike ALive ALove AMarried AReady AScared ASpeak AThirsty ATired AUnderstand AWant AWantGo Belgium Children Daughter English Finnish Flemish French Friday HowMuchCost Husband ItCost Italian Monday PSeeYou PSeeYouPlace PropClosed PropClosedDate PropClosedDay PropOpen PropOpenDate PropOpenDay QWhatAge QWhatName Romanian Saturday Son Sunday Swedish Thursday Tomorrow Tuesday Wednesday Wife
+PhrasebookBul :
+PhrasebookCat :
+PhrasebookDan :
+PhrasebookDut :
 PhrasebookEng :
 PhrasebookFin :
 PhrasebookFre :
-PhrasebookGer : Bar Chicken Cinema Coffee Dollar GNiceToMeetYou Hotel Lei Meat Museum PSeeYou PSeeYouPlace Park School Shop Suspect Tea Theatre Toilet
+PhrasebookGer :
 PhrasebookIta :
-PhrasebookRon : GExcusePol GPleaseGivePol GSorryPol
+PhrasebookNor :
+PhrasebookPol :
+PhrasebookRon :
+PhrasebookSpa :
 PhrasebookSwe :
diff --git a/examples/phrasebook/pgraph.png b/examples/phrasebook/pgraph.png
Binary files a/examples/phrasebook/pgraph.png and b/examples/phrasebook/pgraph.png differ
diff --git a/examples/phrasebook/phrasebook.html b/examples/phrasebook/phrasebook.html
deleted file mode 100644
--- a/examples/phrasebook/phrasebook.html
+++ /dev/null
@@ -1,245 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>MOLTO Multilingual Phrasebook</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>MOLTO Multilingual Phrasebook</H1>
-<FONT SIZE="4">
-<I>Aarne Ranta</I><BR>
-</FONT></CENTER>
-
-<P>
-<HR>
-<font size=-1>
-</P>
-<P>
-History
-</P>
-<UL>
-<LI>10 April. Some additions in API, comments in implementation; regenerated clones.
-<LI>8 April. Added German.
-<LI>7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
-<LI>6 April. Version 0.4: weekdays, nationalities
-<LI>30 March. Version 0.3: disambiguation grammar for English
-<LI>28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
-<LI>26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
-</UL>
-
-<P>
-<A HREF="missing.txt">Missing constructs</A> 
-</P>
-<P>
-<A HREF="http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html">Back to phrasebook</A>
-</P>
-<P>
-</font>
-<HR>
-</P>
-<H1>Purpose</H1>
-<P>
-This phrasebook is a program for translating touristic phrases 
-between the 15 European languages included in the 
-<A HREF="http://www.molto-project.eu">MOLTO</A> project
-(Multilingual On-Line Translation):
-</P>
-<UL>
-<LI>Bulgarian, Catalan, Danish, Dutch, English,
-  Finnish, French, German, Italian, Norwegian,
-  Polish, Romanian, Russian, Spanish, Swedish
-</UL>
-
-<P>
-It is implemented by using the GF programming language 
-(<A HREF="http://grammaticalframework.org">Grammatical Framework</A>).
-It is the first demo for the MOLTO project, released in the third month (by June 2010)
-but to be updated in the course of the project.
-</P>
-<P>
-The phrasebook has the following requirements:
-</P>
-<UL>
-<LI>high quality: reliable translations to express yourself in any language
-<LI>translation between all pairs of languages
-<LI>runnable in web browsers
-<LI>runnable on mobile phones (also off-line: forthcoming for Android phones)
-<LI>easily extensible by new words (forthcoming: semi-automatic extensions by users)
-</UL>
-
-<P>
-The phrasebook is available as open-source software, licensed under GNU LGPL. 
-The source code resides in 
-<A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>code.haskell.org/gf/examples/phrasebook/</CODE></A>
-</P>
-<P>
-Current status (8 April 2010):
-</P>
-<UL>
-<LI>small coverage in abstract syntax
-<LI>reasonable implementations for English, Finnish, French, German, Italian, Romanian, Swedish
-<LI>almost just cloned for the rest of MOLTO languages
-<LI>temporary user interdace
-<LI>works on web browsers calling a server
-<LI>web service not yet released, but preliminarily available in
-  <A HREF="http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html"><CODE>http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html</CODE></A>
-</UL>
-
-<H1>Points illustrated</H1>
-<P>
-Interlingua-based translation.
-</P>
-<P>
-Incremental parsing.
-</P>
-<P>
-The use of resource grammars and functors.
-</P>
-<P>
-Compile-time transfer: especially, in Action in Words.
-</P>
-<P>
-Quasi-incremental translation: many basic types are also used as phrases.
-</P>
-<P>
-Disambiguation, esp. of politeness distinctions.
-</P>
-<H1>Ontology</H1>
-<P>
-The abstract syntax defines the <B>ontology</B> behind the phrasebook. 
-Some explanations can be found in the 
-<A HREF="Ontology.html">ontology document</A>, which is produced from the
-abstract syntax files
-<A HREF="http://code.haskell.org/gf/examples/phrasebook/Sentences.gf"><CODE>Sentences.gf</CODE></A>
-and
-<A HREF="http://code.haskell.org/gf/examples/phrasebook/Words.gf"><CODE>Words.gf</CODE></A>
-by <CODE>make doc</CODE>.
-</P>
-<H1>Files</H1>
-<P>
-<CODE>Sentences</CODE>: general syntactic structures implementable in a uniform way. 
-Concrete syntax via the functor <CODE>SencencesI</CODE>.
-</P>
-<P>
-<CODE>Words</CODE>: words and predicates, typically language-dependent. 
-Separate concrete syntaxes.
-</P>
-<P>
-<CODE>Greetings</CODE>: idiomatic phrases, string-based. 
-Separate concrete syntaxes.
-</P>
-<P>
-<CODE>Phrasebook</CODE>: the top module putting everything together. 
-Separate concrete syntaxes.
-</P>
-<P>
-<CODE>DisambPhrasebook</CODE>: disambiguation grammars generating feedback phrases if
-the input language is ambiguous.
-</P>
-<P>
-Here is the module structure as produced in GF by
-</P>
-<PRE>
-    &gt; i -retain DisambPhrasebookEng.gf
-    &gt; dg -only=Phrasebook*,Sentences*,Words*,Greetings*,DisambPhrasebookEng
-    &gt; ! dot -Tpng _gfdepgraph.dot &gt;pgraph.png
-</PRE>
-<P></P>
-<P>
-<IMG ALIGN="middle" SRC="pgraph.png" BORDER="0" ALT="">
-</P>
-<H1>To Do</H1>
-<P>
-Improved translation interface
-</P>
-<UL>
-<LI>a <I>to</I> list of languages: either <I>all</I>, or just one
-<LI>combined text field/fridge magnet input; filter magnets by started word prefix
-<LI>a nicer way to show disambiguation (maybe hidden by default)
-</UL>
-
-<P>
-Complete the missing words and phrases
-</P>
-<P>
-Disambiguation grammars for other languages than English
-</P>
-<P>
-Extend the abstract lexicon in <CODE>Words</CODE> by hand or (semi)automatically for
-</P>
-<UL>
-<LI>food stuff
-<LI>languages
-<LI>places
-</UL>
-
-<P>
-Link to Google translate, for fall-back and for comparison
-</P>
-<P>
-Feedback facility in the UI
-</P>
-<P>
-Customizable distribution: make your own selection of the 2^15 language subsets
-when downloading the phrasebook to a phone
-</P>
-<H1>How to contribute</H1>
-<P>
-The basic things "everyone" can do is 
-</P>
-<UL>
-<LI>complete <A HREF="missing.txt">missing words</A> in concrete syntaxes
-<LI>add new abstract words in <CODE>Words</CODE> and greetings in <CODE>Greetings</CODE>
-</UL>
-
-<P>
-The missing concrete syntax entries are added to the <CODE>Words</CODE><I>L</I><CODE>.gf</CODE> 
-files for each language <I>L</I>. The
-<A HREF="http://code.haskell.org/gf/lib/doc/synopsis.html#toc78">morphological paradigms</A>
-of the GF resource library should be used. Actions (prefixed with <CODE>A</CODE>, as <CODE>AWant</CODE>) are
-a little more demanding, since they also require syntax constructors. Greetings (prefixed
-with <CODE>G</CODE>) are pure strings.
-</P>
-<P>
-Some explanations can be found in the 
-<A HREF="Implementation.html">implementation document</A>, which is produced from the
-concrete syntax files
-<A HREF="http://code.haskell.org/gf/examples/phrasebook/SentencesI.gf"><CODE>SentencesI.gf</CODE></A>
-and
-<A HREF="http://code.haskell.org/gf/examples/phrasebook/WordsEng.gf"><CODE>WordsEng.gf</CODE></A>
-by <CODE>make doc</CODE>.
-</P>
-<P>
-Here are the steps to follow for contributors:
-</P>
-<OL>
-<LI>Make sure you have the latest sources 
-  from <A HREF="http://www.grammaticalframework.org/doc/gf-developers.html">GF Darcs</A>, 
-  using <CODE>darcs pull</CODE>.
-<LI>Also make sure that you have compiled the library by <CODE>make present</CODE> in <CODE>gf/lib/src/</CODE>.
-<LI>Work in the directory 
-  <A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>gf/examples/phrasebook/</CODE></A>.
-<LI>After you've finished your contribution, recompile the phrasebook by <CODE>make pgf</CODE>.
-<LI>Save your changes in <CODE>darcs record .</CODE> (in the <CODE>phrasebook</CODE> subdirectory).
-<LI>Make a patch file with <CODE>darcs send -o my_phrasebook_patch</CODE>, which you can 
-  send to GF maintainers.
-<LI>(Recommended:) Test the phrasebook on your local server:
-  <OL>
-  <LI>Go to <CODE>gf/src/server/</CODE> and follow the instructions in the
-    <A HREF="http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos">project Wiki</A>.
-  <LI>Make sure that <CODE>Phrasebook.pgf</CODE> is available to you GF server (see project wiki).
-  <LI>Launch <CODE>lighttpd</CODE> (see project wiki).
-  <LI>How you can open <CODE>gf/examples/phrasebook/www/phrasebook.html</CODE> and use your phrasebook!
-  </OL>
-</OL>
-
-<UL>
-<LI>Don't delete anything! But you are free to correct incorrect forms.
-<LI>Don't change the module structure! 
-<LI>Don't compromise quality to gain coverage: <I>non multa sed multum!</I> 
-<P></P>
-</UL>
-
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml phrasebook.txt -->
-</BODY></HTML>
diff --git a/examples/phrasebook/phrasebook.txt b/examples/phrasebook/phrasebook.txt
deleted file mode 100644
--- a/examples/phrasebook/phrasebook.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-MOLTO Multilingual Phrasebook
-Aarne Ranta
-
-
-%!postproc(html): #HR <HR>
-%!postproc(html): #BSMALL <font size=-1>
-%!postproc(html): #ESMALL </font>
-
-
-
-
-#HR
-#BSMALL
-
-History
-- 10 April. Some additions in API, comments in implementation; regenerated clones.
-- 8 April. Added German.
-- 7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
-- 6 April. Version 0.4: weekdays, nationalities
-- 30 March. Version 0.3: disambiguation grammar for English
-- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
-- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
-
-
-[Missing constructs missing.txt] 
-
-[Back to phrasebook http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html]
-
-#ESMALL
-#HR
-
-
-=Purpose=
-
-This phrasebook is a program for translating touristic phrases 
-between the 15 European languages included in the 
-[MOLTO http://www.molto-project.eu] project
-(Multilingual On-Line Translation):
-- Bulgarian, Catalan, Danish, Dutch, English,
-  Finnish, French, German, Italian, Norwegian,
-  Polish, Romanian, Russian, Spanish, Swedish
-
-
-It is implemented by using the GF programming language 
-([Grammatical Framework http://grammaticalframework.org]).
-It is the first demo for the MOLTO project, released in the third month (by June 2010)
-but to be updated in the course of the project.
-
-The phrasebook has the following requirements:
-- high quality: reliable translations to express yourself in any language
-- translation between all pairs of languages
-- runnable in web browsers
-- runnable on mobile phones (also off-line: forthcoming for Android phones)
-- easily extensible by new words (forthcoming: semi-automatic extensions by users)
-
-
-The phrasebook is available as open-source software, licensed under GNU LGPL. 
-The source code resides in 
-[``code.haskell.org/gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/]
-
-
-Current status (8 April 2010):
-- small coverage in abstract syntax
-- reasonable implementations for English, Finnish, French, German, Italian, Romanian, Swedish
-- almost just cloned for the rest of MOLTO languages
-- temporary user interdace
-- works on web browsers calling a server
-- web service not yet released, but preliminarily available in
-  [``http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html`` http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html]
-
-
-
-=Points illustrated=
-
-Interlingua-based translation.
-
-Incremental parsing.
-
-The use of resource grammars and functors.
-
-Compile-time transfer: especially, in Action in Words.
-
-Quasi-incremental translation: many basic types are also used as phrases.
-
-Disambiguation, esp. of politeness distinctions.
-
-
-
-=Ontology=
-
-The abstract syntax defines the **ontology** behind the phrasebook. 
-Some explanations can be found in the 
-[ontology document Ontology.html], which is produced from the
-abstract syntax files
-[``Sentences.gf`` http://code.haskell.org/gf/examples/phrasebook/Sentences.gf]
-and
-[``Words.gf`` http://code.haskell.org/gf/examples/phrasebook/Words.gf]
-by ``make doc``.
-
-
-
-
-
-=Files=
-
-``Sentences``: general syntactic structures implementable in a uniform way. 
-Concrete syntax via the functor ``SencencesI``.
-
-``Words``: words and predicates, typically language-dependent. 
-Separate concrete syntaxes.
-
-``Greetings``: idiomatic phrases, string-based. 
-Separate concrete syntaxes.
-
-``Phrasebook``: the top module putting everything together. 
-Separate concrete syntaxes.
-
-``DisambPhrasebook``: disambiguation grammars generating feedback phrases if
-the input language is ambiguous.
-
-Here is the module structure as produced in GF by
-```
-  > i -retain DisambPhrasebookEng.gf
-  > dg -only=Phrasebook*,Sentences*,Words*,Greetings*,DisambPhrasebookEng
-  > ! dot -Tpng _gfdepgraph.dot >pgraph.png
-```
-
-[pgraph.png]
-
-
-
-=To Do=
-
-Improved translation interface
-- a //to// list of languages: either //all//, or just one
-- combined text field/fridge magnet input; filter magnets by started word prefix
-- a nicer way to show disambiguation (maybe hidden by default)
-
-
-Complete the missing words and phrases
-
-Disambiguation grammars for other languages than English
-
-Extend the abstract lexicon in ``Words`` by hand or (semi)automatically for
-- food stuff
-- languages
-- places
-
-
-Link to Google translate, for fall-back and for comparison
-
-Feedback facility in the UI
-
-Customizable distribution: make your own selection of the 2^15 language subsets
-when downloading the phrasebook to a phone
-
-
-=How to contribute=
-
-The basic things "everyone" can do is 
-- complete [missing words missing.txt] in concrete syntaxes
-- add new abstract words in ``Words`` and greetings in ``Greetings``
-
-
-The missing concrete syntax entries are added to the ``Words``//L//``.gf`` 
-files for each language //L//. The
-[morphological paradigms http://code.haskell.org/gf/lib/doc/synopsis.html#toc78]
-of the GF resource library should be used. Actions (prefixed with ``A``, as ``AWant``) are
-a little more demanding, since they also require syntax constructors. Greetings (prefixed
-with ``G``) are pure strings.
-
-Some explanations can be found in the 
-[implementation document Implementation.html], which is produced from the
-concrete syntax files
-[``SentencesI.gf`` http://code.haskell.org/gf/examples/phrasebook/SentencesI.gf]
-and
-[``WordsEng.gf`` http://code.haskell.org/gf/examples/phrasebook/WordsEng.gf]
-by ``make doc``.
-
-Here are the steps to follow for contributors:
-+ Make sure you have the latest sources 
-  from [GF Darcs http://www.grammaticalframework.org/doc/gf-developers.html], 
-  using ``darcs pull``.
-+ Also make sure that you have compiled the library by ``make present`` in ``gf/lib/src/``.
-+ Work in the directory 
-  [``gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/].
-+ After you've finished your contribution, recompile the phrasebook by ``make pgf``.
-+ Save your changes in ``darcs record .`` (in the ``phrasebook`` subdirectory).
-+ Make a patch file with ``darcs send -o my_phrasebook_patch``, which you can 
-  send to GF maintainers.
-+ (Recommended:) Test the phrasebook on your local server:
-  + Go to ``gf/src/server/`` and follow the instructions in the
-    [project Wiki http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos].
-  + Make sure that ``Phrasebook.pgf`` is available to you GF server (see project wiki).
-  + Launch ``lighttpd`` (see project wiki).
-  + How you can open ``gf/examples/phrasebook/www/phrasebook.html`` and use your phrasebook!
-
-
-- Don't delete anything! But you are free to correct incorrect forms.
-- Don't change the module structure! 
-- Don't compromise quality to gain coverage: //non multa sed multum!// 
-
diff --git a/examples/phrasebook/picpic.jpg b/examples/phrasebook/picpic.jpg
new file mode 100644
Binary files /dev/null and b/examples/phrasebook/picpic.jpg differ
diff --git a/examples/phrasebook/testScript.gfs b/examples/phrasebook/testScript.gfs
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/testScript.gfs
@@ -0,0 +1,109 @@
+-- invoke script with command : 
+-- > gf PhrasebookX <testScript.gfs 
+-- where X is the name of the language
+-- for collecting the results in a separate file, use the command 
+-- > gf PhrasebookX <testScript.gfs >rez.txt
+-- where rez.txt can be replaced by the name of the file that you want to write
+
+i PhrasebookEng.gf
+
+gt (PPlace (ThePlace (CitRestaurant  ?))) | l -treebank 
+gr (AHasAge  IMale ?) | l -treebank 
+gr (AHasChildren IMale ?) | l -treebank 
+gr (AHasName  IMale ?) | l -treebank 
+gr (AHasRoom  IMale ?) | l -treebank 
+gr (AHasTable  IMale ?) | l -treebank 
+gr (AHungry  ?) | l -treebank 
+gr (AIll  ?) | l -treebank 
+gr (AKnow  ?) | l -treebank 
+gr (ALike  ? ?) | l -treebank 
+--gr (ALive  ? ?) | l -treebank 
+gr (ALove  ? ?) | l -treebank 
+gr (AMarried  ?) | l -treebank 
+gr (AReady  ?) | l -treebank 
+gr (AScared  ?) | l -treebank 
+gr (ASpeak  ? ?) | l -treebank 
+gr (AThirsty  ?) | l -treebank 
+gr (ATired  ?) | l -treebank 
+gr (AUnderstand  ?) | l -treebank 
+gr (AWant  IMale ?) | l -treebank 
+gr (AWantGo  IMale ?) | l -treebank 
+gr (QWhatAge  ?) | l -treebank 
+gr (QWhatName  ?) | l -treebank 
+gr (HowMuchCost  ?) | l -treebank 
+gr (ItCost  ? ?) | l -treebank 
+gr (PropOpen  ?) | l -treebank 
+gr (PropClosed  ?) | l -treebank 
+gr (PropOpenDate  ? ?) | l -treebank 
+gr (PropClosedDate  ? ?) | l -treebank 
+gr (PropOpenDay  ? ?) | l -treebank 
+gr (PropClosedDay  ? ?) | l -treebank 
+gr (PSeeYouPlaceDate  ? ?) | l -treebank 
+gr (PSeeYouPlace  ?) | l -treebank 
+gr (PSeeYouDate  ?) | l -treebank 
+gr (Wife ?) | l -treebank 
+gr (Husband  ?) | l -treebank 
+gr (Son ?) | l -treebank 
+gr (Daughter  ?) | l -treebank 
+gr (Children  ?) | l -treebank 
+gr (HowFar  ?) | l -treebank 
+gr (HowFarFrom  ? ?) | l -treebank 
+gr (HowFarFromBy  ? ? ?) | l -treebank 
+gt (HowFarBy  (ThePlace Hospital) ?) | l -treebank 
+gr (WhichTranspPlace  ? ?) | l -treebank 
+gr (IsTranspPlace  ? ?) | l -treebank 
+gr (SuperlPlace  ? ?) | l -treebank 
+gr (PSentence  ?) | l -treebank 
+gr (PQuestion  ?) | l -treebank 
+gr (PObject  ?) | l -treebank 
+gr (PKind  ?) | l -treebank 
+gr (PQuality  ?) | l -treebank 
+gr (PNumber  ?) | l -treebank 
+gr (PPlace  ?) | l -treebank 
+gr (PPlaceKind ) | l -treebank 
+gr (PCurrency  ?) | l -treebank 
+gr (PPrice  ?) | l -treebank 
+gr (PLanguage  ?) | l -treebank 
+gr (PCitizenship  ?) | l -treebank 
+gr (PCountry  ?) | l -treebank 
+gr (PDay  ?) | l -treebank 
+gr (PByTransport  ?) | l -treebank 
+gr (PTransport  ?) | l -treebank 
+gr (Is  ? ?) | l -treebank 
+gr (SProp  ?) | l -treebank 
+gr (SPropNot  ?) | l -treebank 
+gr (QProp  ?) | l -treebank 
+gr (WherePlace  ?) | l -treebank 
+gr (WherePerson  ?) | l -treebank 
+gr (PropAction  ?) | l -treebank 
+gr (ObjItem  ?) | l -treebank 
+gr (ObjNumber  ? ?) | l -treebank 
+gr (ObjIndef  ?) | l -treebank 
+gr (ObjAndObj  ? ?) | l -treebank 
+gr (OneObj  ?) | l -treebank 
+gr (SuchKind  ? ?) | l -treebank 
+gr (Very  ?) | l -treebank 
+gr (Too  ?) | l -treebank 
+gr (PropQuality  ?) | l -treebank 
+gr (This ?) | l -treebank
+gr (That ?) | l -treebank
+gr (These ?) | l -treebank
+gr (Those  ?) | l -treebank 
+gr (The ?) | l -treebank
+gr (Thes  ?) | l -treebank 
+gr (AmountCurrency  ? ?) | l -treebank 
+gr (ThePlace  ?) | l -treebank 
+gr (APlace  ?) | l -treebank 
+gr (LangNat  ?) | l -treebank 
+gr (CitiNat  ?) | l -treebank 
+gr (CountryNat  ?) | l -treebank 
+gr (PropCit  ?) | l -treebank 
+gr (OnDay  ?) | l -treebank 
+gr (PersonName  ?) | l -treebank 
+gr (NNumeral  ?) | l -treebank 
+gr (AHave  ? ?) | l -treebank 
+gr (AHaveCurr  ? ?) | l -treebank 
+gt (ACitizen  IMale ?) | l -treebank 
+gt (ABePlace  IMale (ThePlace ?)) | l -treebank 
+gr (ByTransp  ?) | l -treebank 
+
diff --git a/examples/phrasebook/www/old-phrasebook.html b/examples/phrasebook/www/old-phrasebook.html
new file mode 100644
--- /dev/null
+++ b/examples/phrasebook/www/old-phrasebook.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
+<html> <head> 
+<title>Phrasebook</title> 
+<link rel=stylesheet type="text/css" href="phrasebook.css"> 
+<script type="text/JavaScript" src="support.js"></script> 
+<script type="text/JavaScript" src="phrasebook.js"></script> 
+</head> 
+ 
+<body onload="start_minibar()"> 
+
+<div id=minibar> 
+</div> 
+<hr> 
+ 
+<small> 
+
+Based on
+<a href="http://www.cs.chalmers.se/~hallgren/minibar/minibar.html">minibar</a>,
+powered by
+<a href="http://www.grammaticalframework.org">GF</a>,
+see
+<a href="../phrasebook.html">doc</a>.
+
+ 
+</body> 
+ 
+</html> 
+
+
+
diff --git a/examples/phrasebook/www/phrasebook.html b/examples/phrasebook/www/phrasebook.html
deleted file mode 100644
--- a/examples/phrasebook/www/phrasebook.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
-<html> <head> 
-<title>Phrasebook</title> 
-<link rel=stylesheet type="text/css" href="phrasebook.css"> 
-<script type="text/JavaScript" src="support.js"></script> 
-<script type="text/JavaScript" src="phrasebook.js"></script> 
-</head> 
- 
-<body onload="start_minibar()"> 
-
-<div id=minibar> 
-</div> 
-<hr> 
- 
-<small> 
-
-Based on
-<a href="http://www.cs.chalmers.se/~hallgren/minibar/minibar.html">minibar</a>,
-powered by
-<a href="http://www.grammaticalframework.org">GF</a>,
-see
-<a href="../phrasebook.html">doc</a>.
-
- 
-</body> 
- 
-</html> 
-
-
-
diff --git a/examples/phrasebook/www/support.js b/examples/phrasebook/www/support.js
--- a/examples/phrasebook/www/support.js
+++ b/examples/phrasebook/www/support.js
@@ -1,7 +1,11 @@
+/* --- Accessing document elements ------------------------------------------ */
+
 function element(id) {
   return document.getElementById(id);
 }
 
+/* --- JSONP ---------------------------------------------------------------- */
+
 // Inspired by the function jsonp from 
 //          http://www.west-wind.com/Weblog/posts/107136.aspx
 // See also http://niryariv.wordpress.com/2009/05/05/jsonp-quickly/
@@ -12,8 +16,8 @@
         url += "&jsonp=" 
     else
         url += "?jsonp=" 
-    url += callback + "&";
-    //url += new Date().getTime().toString(); // prevent caching        
+    url += callback;
+    //url += "&" + new Date().getTime().toString(); // prevent caching        
     
     var script = empty("script");        
     script.setAttribute("src",url);
@@ -21,6 +25,18 @@
     document.body.appendChild(script);
 }
 
+var json = {next:0};
+
+// Like jsonp, but instead of passing the name of the ballback function, you 
+// pass the callback function directly, making it possible to use anonymous
+// functions.
+function jsonpf(url,callback)
+{
+    var name="callback"+(json.next++);
+    json[name]=function(x) { delete json[name]; callback(x); }
+    jsonp(url,"json."+name);
+}
+
 /* --- HTML construction ---------------------------------------------------- */
 function text(s) { return document.createTextNode(s); }
 
@@ -34,6 +50,7 @@
 function empty_class(tag,cls) { return empty(tag,"class",cls); }
 
 function div_id(id) { return empty_id("div",id); }
+function span_id(id) { return empty_id("span",id); }
 
 function wrap(tag,contents) {
   var el=empty(tag);
@@ -52,6 +69,7 @@
 
 function p(contents) { return wrap("p",contents); }
 function dt(contents) { return wrap("dt",contents); }
+function li(contents) { return wrap("li",contents); }
 
 function th(contents) { return wrap("th",contents); }
 function td(contents) { return wrap("td",contents); }
@@ -64,13 +82,18 @@
 }
 
 function button(label,action) {
-  var el=empty("input");
-  el.setAttribute("type","button");
+  var el=empty("input","type","button");
   el.setAttribute("value",label);
   el.setAttribute("onclick",action);
   return el;
 }
 
+function option(label,value) {
+    var el=empty("option","value",value);
+    el.innerHTML=label;
+    return el;
+}
+
 function appendChildren(el,cs) {
   for(var i=0;i<cs.length;i++)
     el.appendChild(cs[i]);
@@ -107,7 +130,10 @@
   return a;
 }
 
-function sort(a) { // Note: this doesn't work on strings.
+function sort(a) {
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort
+  return a.sort();
+  /* // Note: this doesn't work on strings.
   for(var i=0;i<a.length-1;i++) {
     var min=i;
     for(var j=i+1;j<a.length;j++)
@@ -115,6 +141,7 @@
     if(min!=i) swap(a,i,min);
   }
   return a;
+  */
 }
 
 function filter(p,xs) {
@@ -124,7 +151,7 @@
   return ys;
 }
 
-function implode(cs) {
+function implode(cs) { // array of strings to string
   /*
   var s="";
   for(var i=0;i<cs.length;i++)
@@ -133,6 +160,9 @@
   */
   return cs.join("");
 }
+
+function hasPrefix(s,pre) { return s.substr(0,pre.length)==pre; }
+
 /*
 function all(p,xs) {
   for(var i=0;i<xs.length;i++)
@@ -147,6 +177,9 @@
   return ys;
 }
 
+// map in continuation passing style 
+function mapc(f,xs,cont) { mapc_from(f,xs,0,[],cont); }
+
 function mapc_from(f,xs,i,ys,cont) {
   if(i<xs.length)
     f(xs[i],function(y){ys[i]=y;mapc_from(f,xs,i+1,ys,cont)});
@@ -154,4 +187,19 @@
     cont(ys);
 }
 
-function mapc(f,xs,cont) { mapc_from(f,xs,0,[],cont); }
+function overlaps(as,bs) {
+    for(var i=0;i<as.length;i++)
+	if(elem(as[i],bs)) return true;
+    return false;
+}
+
+function elem(a,as) {
+    for(var i=0;i<as.length;i++)
+	if(a==as[i]) return true;
+    return false;
+}
+
+function shuffle(a) {
+    for(i=0;i<a.length;i++) swap(a,i,Math.floor(Math.random()*a.length))
+    return a;
+}
diff --git a/examples/query/LexQuery.gf b/examples/query/LexQuery.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/LexQuery.gf
@@ -0,0 +1,36 @@
+interface LexQuery = open Syntax in {
+
+oper
+  located_A : A ;
+  giveMe : NP -> VP ;
+  know_V2 : V2 ;
+
+-- structural words
+  about_Prep : Prep ;
+  all_NP : NP ;
+  also_AdV : AdV ;
+  also_AdA : AdA ;
+  as_Prep : Prep ;
+  at_Prep : Prep ;
+  that_RP : RP ;
+
+  called_A : A ;
+
+  participlePropCN : Prop -> CN -> CN ;
+
+  vpAP : VP -> AP ;
+
+  information_N : N ;
+  other_A : A ;
+  otherwise_AdV : AdV ;
+  otherwise_AdA : AdA ;
+  what_IQuant : IQuant ;
+
+-- lincats
+  Fun = {cn : CN ; prep : Prep} ;
+  Prop = {ap : AP ; vp : VP} ;
+  Rel = {ap : AP ; vp : VP ; prep : Prep} ;
+
+
+
+}
diff --git a/examples/query/LexQueryEng.gf b/examples/query/LexQueryEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/LexQueryEng.gf
@@ -0,0 +1,32 @@
+instance LexQueryEng of LexQuery = 
+  open SyntaxEng, (M = MakeStructuralEng), ParadigmsEng, ExtraEng, IrregEng in {
+
+oper
+  located_A : A = mkA "located" | mkA "situated" ;
+
+  giveMe : NP -> VP = \np -> mkVP (mkV3 give_V) (mkNP i_Pron) np ; 
+  know_V2 = mkV2 know_V ;
+
+-- structural words
+  about_Prep : Prep = mkPrep "about" ;
+  all_NP : NP = mkNP (mkPN "all") ; ---
+  also_AdV : AdV = mkAdV "also" ;
+  also_AdA : AdA = mkAdA "also" ;
+  as_Prep : Prep = mkPrep "as" ;
+  at_Prep : Prep = mkPrep "at" ;
+  that_RP = ExtraEng.that_RP ;
+
+  participlePropCN : Prop -> CN -> CN = \p,k -> mkCN p.ap k ;
+
+  vpAP = PartVP ;
+
+  called_A : A = mkA "called" | mkA "named" ;
+
+  information_N : N = mkN "information" ;
+  other_A : A = mkA "other" ;
+  otherwise_AdV : AdV = mkAdV "otherwise" ;
+  otherwise_AdA : AdA = mkAdA "otherwise" ;
+  what_IQuant : IQuant = M.mkIQuant "what" "what" ;
+
+
+}
diff --git a/examples/query/LexQueryFre.gf b/examples/query/LexQueryFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/LexQueryFre.gf
@@ -0,0 +1,32 @@
+instance LexQueryFre of LexQuery = 
+  open SyntaxFre, (M = MakeStructuralFre), ParadigmsFre, ExtraFre, IrregFre in {
+
+oper
+  located_A : A = mkA "situé" ;
+
+  giveMe = \np -> mkVP (mkV2 (mkV "montrer")) np ; ---
+  know_V2 = IrregFre.savoir_V2 ;
+
+-- structural words
+  about_Prep : Prep = mkPrep "sur" ;
+  all_NP : NP = mkNP (mkPN "tout") ; ---
+  also_AdV : AdV = mkAdV "aussi" ;
+  also_AdA : AdA = mkAdA "aussi" ;
+  as_Prep : Prep = mkPrep "pour" ; --- only used for "vad har X för Y"
+  at_Prep : Prep = mkPrep "chez" ; --- | mkPrep "hos" | mkPrep "vid" ;
+  that_RP = which_RP ;
+
+  participlePropCN : Prop -> CN -> CN = variants {} ;
+
+  vpAP _ = mkAP (mkA "nonexistant") ; --- not used, see LexQuery.participlePropCN
+
+  called_A : A = mkA "appelé" ;
+
+  information_N : N = mkN "information" feminine ;
+  other_A : A = prefixA (mkA "autre") ;
+  otherwise_AdV : AdV = mkAdV "autrement" ;
+  otherwise_AdA : AdA = mkAdA "autrement" ;
+  what_IQuant : IQuant = which_IQuant ;
+
+
+}
diff --git a/examples/query/LexQuerySwe.gf b/examples/query/LexQuerySwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/LexQuerySwe.gf
@@ -0,0 +1,32 @@
+instance LexQuerySwe of LexQuery = 
+  open SyntaxSwe, (M = MakeStructuralSwe), ParadigmsSwe, ExtraSwe, IrregSwe in {
+
+oper
+  located_A : A = compoundA (mkA "belägen" "beläget" "belägna" [] []) ;
+
+  giveMe : NP -> VP = \np -> mkVP (mkV3 giva_V) (mkNP i_Pron) np ; 
+  know_V2 = mkV2 veta_V ;
+
+-- structural words
+  about_Prep : Prep = mkPrep "om" ;
+  all_NP : NP = mkNP (mkPN "allt") ; ---
+  also_AdV : AdV = mkAdV "också" ;
+  also_AdA : AdA = mkAdA "även" ;
+  as_Prep : Prep = mkPrep "för" ; --- only used for "vad har X för Y"
+  at_Prep : Prep = mkPrep "på" ; --- | mkPrep "hos" | mkPrep "vid" ;
+  that_RP = which_RP ;
+
+  participlePropCN : Prop -> CN -> CN = variants {} ;
+
+  vpAP _ = mkAP (mkA "obefintlig") ; --- not used, see LexQuery.participlePropCN
+
+  called_A : A = compoundA (mkA "kallad" "kallat" "kallade" "kallade" "kallade") ;
+
+  information_N : N = mkN "information" "informationer" ;
+  other_A : A = compoundA (mkA "annan" "annat" "andra" "andra" "andra") ;
+  otherwise_AdV : AdV = mkAdV "annars" ;
+  otherwise_AdA : AdA = mkAdA "annars" ;
+  what_IQuant : IQuant = which_IQuant ;
+
+
+}
diff --git a/examples/query/Query.gf b/examples/query/Query.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/Query.gf
@@ -0,0 +1,166 @@
+abstract Query = {
+
+flags
+  startcat = Move ;
+
+-- general query language, which can be specialized with any lexicon
+
+cat
+  Move ;     -- top-level utterance,    e.g. "give me all Bulgarian persons that work at Google"
+  Query ;   
+  Answer ;
+  Set ;           -- the set requested,      e.g. "all persons"
+  Interrogative ; -- interrog. pron.         e.g. "who" 
+  Function ;      -- something of something, e.g. "subregion of Bulgaria"
+  Kind ;          -- type of things,         e.g. "person"
+  Relation ;      -- relation between things,e.g. "employed at"
+  Property ;      -- property of things,     e.g. "employed at Google"
+  Individual ;    -- one entity,             e.g. "Google"
+--  Activity ;      -- action property,        e.g. "work at Google"
+  Name ;          -- person, company...      e.g. "Eric Schmidt"
+  Loc ;
+  Org ;
+  Pers ;
+  [Individual] {2} ; -- list of entities, e.g. "Larry Page, Sergey Brin"
+
+fun
+  MQuery  : Query -> Move ;
+  MAnswer : Answer -> Move ;
+ 
+  QSet    : Set  -> Query ;  -- (give me | what are | which are | ) (S | the names of S | S's names)
+  QWhere     : Set  -> Query ;  -- where are S
+  QWhat      : Interrogative -> Property -> Query ; -- who P
+  QWhatWhat  : Interrogative -> Interrogative -> Relation -> Query ; -- who R what
+  QWhatWhere : Interrogative -> Relation -> Query ; -- who R where --- overgenerating
+  QRelWhere  : Set -> Relation -> Query ; -- where does S R --- overgenerating
+  QFun       : Function -> Set -> Query ; -- what R does S have
+  QFunPair   : Set -> Function -> Query ; -- S and their R's
+  QInfo      : Set  -> Query ;  -- (give me | ) (information about | all about) S
+  QCalled    : Individual -> Query ; -- how is X (also | otherwise) (called | named | known) ;
+  QWhether   : Answer -> Query ; -- is S P --- not in the corpus, but should be ??
+
+  AKind  : Set  -> Kind     -> Answer ; -- S is a K
+  AInd   : Set  -> Individual -> Answer ; -- S is I
+  AName  : Set  -> Name     -> Answer ; -- N is the name of S
+  AProp  : Set  -> Property -> Answer ; -- S is P
+--  AAct   : Set  -> Activity -> Answer ; -- S As --+
+
+  SAll   : Kind -> Set ;  -- all Ks | the Ks
+  SFun   : Set  -> Function -> Set ;  -- S's Rs
+  SOne   : Kind -> Set ;  -- one K
+  SIndef : Kind -> Set ;  -- a K
+  SDef   : Kind -> Set ;  -- the K
+  SPlural : Kind -> Set ;  -- Ks
+  SOther : Kind -> Set ;  -- other Ks
+  SInd   : Individual  -> Set ;  -- X
+  SInds  : [Individual] -> Set ; -- X and Y
+
+  IWho   : Interrogative ; -- who
+  IWhat  : Interrogative ; -- what
+  IWhich : Kind -> Interrogative ; -- which K | what K | which Ks | what Ks
+
+  KFunSet  : Function -> Set -> Kind ; -- R of S | S's R
+  KFunsSet : Function -> Function -> Set -> Kind ; -- R and Q of S
+  KFunKind : Kind -> Function -> Set -> Kind ; -- K that is R of S
+  KFunPair : Kind -> Function -> Kind ; -- S's with their R's
+  KProp    : Property -> Kind -> Kind ; -- P K | K that is P
+--  KAct     : Activity -> Kind -> Kind ; -- K that Ps
+  KFun     : Function -> Kind ; -- R ---??
+
+  IName    : Name -> Individual ;
+
+  NLoc : Loc -> Name ;
+  NOrg : Org -> Name ;
+  NPers : Pers -> Name ;
+
+  PCalled  : Individual   -> Property ;  -- also called I
+  PCalleds : [Individual] -> Property ;  -- also called I or J
+
+  PIs      : Individual -> Property ;
+
+  PRelation : Relation -> Set -> Property ;
+
+-- the test lexicon
+
+cat
+  Country ;
+  JobTitle ;
+fun
+  NCountry : Country -> Name ;
+  PCountry : Country -> Property ;
+
+  Located : Relation ;
+
+  In : Relation ;
+  HaveTitleAt : JobTitle -> Relation ;
+  EmployedAt : Set -> Relation ;
+  HaveTitle : Relation ;
+  Employed : Relation ;
+
+  Named : Name -> Property ;
+
+  Start : Name -> Property ;
+
+  Organization : Kind ;
+  Company : Kind ;
+  Place : Kind ;
+  Person : Kind ;
+
+  Location : Function ;
+  Region : Function ;
+  Subregion : Function ;
+
+--  USA : Country ;
+--  California : Country ;
+--  Bulgaria : Country ;
+--  OblastSofiya : Name ;
+
+  FName     : Function ;
+  FNickname : Function ;
+  FJobTitle : Function ;
+
+  SJobTitle : JobTitle -> Set ; -- a programmer
+
+-- JobTitles
+   JobTitle1 : JobTitle ;
+   JobTitle2 : JobTitle ;
+   JobTitle3 : JobTitle ;
+   JobTitle4 : JobTitle ;
+
+-- Locations
+   Location1 : Loc ;
+   Location2 : Loc ;
+   Location3 : Loc ;
+   Location4 : Loc ;
+
+-- Organizations
+   Organization1 : Org ;
+   Organization2 : Org ;
+   Organization3 : Org ;
+   Organization4 : Org ;
+
+-- Persons
+   Person1 : Pers ;
+   Person2 : Pers ;
+   Person3 : Pers ;
+   Person4 : Pers ;
+
+--  CEO : JobTitle ;
+--  ChiefInformationOfficer : JobTitle ;
+  
+--  Microsoft : Name ;
+--  Google : Name ;
+
+--  SergeyBrin : Name ;
+--  LarryPage : Name ;
+--  EricSchmidt : Name ;
+--  MarissaMayer : Name ;
+--  UdiManber : Name ;
+--  CarlGustavJung : Name ;
+--  Jung : Name ;
+--  BenFried : Name ;
+
+
+}
+
+
diff --git a/examples/query/QueryEng.gf b/examples/query/QueryEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/QueryEng.gf
@@ -0,0 +1,110 @@
+--# -path=.:present
+
+concrete QueryEng of Query = QueryI with 
+  (Syntax = SyntaxEng),
+  (Lang = LangEng),
+  (LexQuery = LexQueryEng) **
+open
+  LexQueryEng,
+  ParadigmsEng,
+  IrregEng,
+  SyntaxEng,
+  ExtraEng,
+  (L = LangEng),
+  (M = MakeStructuralEng),
+  Prelude
+in {
+
+-- lexicon
+
+lin
+  Located = relAP (mkAP located_A) in_Prep ;
+
+  In = relVP UseCopula in_Prep ;
+
+  Employed = 
+      relAP (mkAP (mkA "employed")) by8agent_Prep
+    | relAP (mkAP (mkA "paid")) by8agent_Prep
+    | relAP (mkAP (mkA "active")) at_Prep
+    | relAP (mkAP (mkA "professionally active")) at_Prep
+    | relVP (mkVP (mkV "work")) at_Prep
+    | relVP (mkVP (mkV "collaborate")) in_Prep
+    ;
+
+  HaveTitle = 
+      relAP (mkAP (mkA "employed")) as_Prep
+    | relVP UseCopula noPrep
+    | relVP (mkVP (mkV "work")) as_Prep
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "title"))))) possess_Prep
+    ;
+
+  EmployedAt s = 
+      relAP (mkAP (mkA2 (mkA "employed") at_Prep) s) as_Prep
+    | relAP (mkAP (mkA2 (mkA "employed") by8agent_Prep) s) as_Prep
+    | relVP (mkVP (mkV2 (mkV "work") at_Prep) s) as_Prep 
+    ;
+
+  HaveTitleAt t = 
+      relAP (mkAP (mkA2 (mkA "employed") as_Prep) (mkNP t)) at_Prep
+    | relAP (mkAP (mkA2 (mkA "employed") as_Prep) (mkNP t)) by8agent_Prep
+    | relVP (mkVP (mkNP a_Det t)) at_Prep
+    | relVP (mkVP (mkV2 (mkV "work") as_Prep) (mkNP t)) at_Prep 
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "title")) (mkNP t)))) at_Prep 
+    ;
+
+  Named n = propAP  (mkAP (mkA2 (mkA "named") []) n) ;
+  Start n = propVP (mkVP (mkV2 "start" with_Prep) n) ;
+
+  Organization = mkCN (mkN "organization") ;
+  Company = mkCN (mkN "company") ;
+  Place = mkCN (mkN "place") ;
+  Person = 
+      mkCN (mkN "person" "people")
+    | mkCN (mkN "person") ;
+
+  Location = mkFunction "location" ;
+  Region = mkFunction "region" ;
+  Subregion = mkFunction "subregion" | mkFunction "sub-region" ;
+  FName = mkFunction "name" ;
+  FNickname = mkFunction "nickname" ;
+  FJobTitle = mkFunction "job title" | mkFunction "job" | mkFunction "position" |
+    mkFunction "appointment" | mkFunction "job position" | mkFunction "mandate" |
+    mkFunction "title" | mkFunction "capacity" ;
+
+  SJobTitle t = mkNP a_Det t ;
+
+oper
+  mkCountry : Str -> Str -> {np : NP ; a : A} = 
+    \n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
+
+  mkName : Str -> NP = 
+    \s -> mkNP (mkPN s) ;
+  mkFunction : Str -> Fun =
+    \s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
+
+lin
+-- JobTitles
+  JobTitle1 = mkCN (mkN "'JobTitle1") ;
+  JobTitle2 = mkCN (mkN "'JobTitle2") ;
+  JobTitle3 = mkCN (mkN "'JobTitle3") ;
+  JobTitle4 = mkCN (mkN "'JobTitle4") ;
+
+-- Locations
+  Location1 = mkName "'Location1" ;
+  Location2 = mkName "'Location2" ;
+  Location3 = mkName "'Location3" ;
+  Location4 = mkName "'Location4" ;
+
+-- Organizations
+  Organization1 = mkName "'Organization1" ;
+  Organization2 = mkName "'Organization2" ;
+  Organization3 = mkName "'Organization3" ;
+  Organization4 = mkName "'Organization4" ;
+
+-- Persons
+  Person1 = mkName "'Person1" ;
+  Person2 = mkName "'Person2" ;
+  Person3 = mkName "'Person3" ;
+  Person4 = mkName "'Person4" ;
+
+}
diff --git a/examples/query/QueryFre.gf b/examples/query/QueryFre.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/QueryFre.gf
@@ -0,0 +1,135 @@
+--# -path=.:present
+
+concrete QueryFre of Query = QueryI - 
+  [namePrep, propCalled, SFun, SAll, IWhat] 
+with 
+  (Syntax = SyntaxFre),
+  (Lang = LangFre),
+  (LexQuery = LexQueryFre) **
+open
+  LexQueryFre,
+  ParadigmsFre,
+  IrregFre,
+  SyntaxFre,
+  ExtraFre,
+  (L = LangFre),
+  (M = MakeStructuralFre),
+  Prelude
+in {
+
+-- deviations from functor
+oper
+-- prep not "av"
+  namePrep = possess_Prep ;
+-- verb "heta"
+  propCalled : NP -> Prop = \i -> 
+      propVP (mkVP (mkAdV "aussi") (mkVP (mkV2 (reflV (mkV "appeler"))) i)) ;
+
+lin
+  SAll k = mkNP all_Predet (mkNP thePl_Det k) | mkNP thePl_Det k ;
+  SFun s r = mkNP (mkNP the_Quant plNum r.cn) (mkAdv r.prep s) ;
+  IWhat = mkIP (mkIDet which_IQuant) | mkIP (mkIDet which_IQuant pluralNum) ;
+
+
+-- lexicon
+
+lin
+  Located = relAP (mkAP located_A) in_Prep ;
+
+  In = relVP useCopula in_Prep ;
+
+  Employed = 
+      relAP (mkAP (mkA "employé")) by8agent_Prep
+    | relAP (mkAP (mkA "payé")) by8agent_Prep
+    | relAP (mkAP (mkA "actif")) at_Prep
+    | relAP (mkAP (mkA "professionnellement actif")) at_Prep
+    | relVP (mkVP (mkV "travailler")) at_Prep
+    ;
+
+  HaveTitle = 
+      relAP (mkAP (mkA "employé")) som_Prep
+    | relVP useCopula noPrep
+    | relVP (mkVP (mkV "travailler")) som_Prep
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titre" masculine) noPrep)))) 
+        possess_Prep
+    ;
+
+  EmployedAt s = 
+      relAP (mkAP (mkA2 (mkA "employé") at_Prep) s) som_Prep
+    | relAP (mkAP (mkA2 (mkA "employé") by8agent_Prep) s) som_Prep
+    | relVP (mkVP (mkV2 (mkV "travailler") at_Prep) s) som_Prep 
+    ;
+
+  HaveTitleAt t = 
+      relAP (mkAP (mkA2 (mkA "employé") som_Prep) (mkNP t)) at_Prep
+    | relAP (mkAP (mkA2 (mkA "employé") som_Prep) (mkNP t)) by8agent_Prep
+    | relVP (mkVP (mkNP a_Det t)) at_Prep
+    | relVP (mkVP (mkV2 (mkV "travailler") som_Prep) (mkNP t)) at_Prep 
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titre") noPrep) 
+        (mkNP t)))) at_Prep 
+    ;
+
+  Named n = propAP  (mkAP (mkA2 called_A (mkPrep [])) n) ;
+  Start n = propVP (mkVP (mkV2 (mkV "commencer") with_Prep) n) ;
+
+  Organization = mkCN (mkN "organisation" feminine) ;
+  Company = mkCN (mkN "entreprise") ;
+  Place = mkCN (mkN "lieu") | mkCN (mkN "endroit") ;
+  Person = 
+      mkCN (mkN "personne")
+    | mkCN (mkN "personne" "gens" feminine) ;
+
+  Location = mkFunctionP (mkN "localité") possess_Prep ;
+  Region = mkFunctionP (mkN "région" feminine) possess_Prep ;
+  Subregion = mkFunctionP (mkN "sous-région" feminine) possess_Prep ;
+  FName = mkFunctionP (mkN "nom") possess_Prep ;
+  FNickname = mkFunctionP (mkN "surnom") possess_Prep ;
+  FJobTitle = 
+     mkFunctionP (mkN "titre" masculine) possess_Prep
+   | mkFunctionP (mkN "position" feminine) possess_Prep ;
+
+  SJobTitle t = mkNP a_Det t ;
+
+oper
+  mkCountry : Str -> Str -> {np : NP ; a : A} = 
+    \n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
+
+  mkName : Str -> NP = 
+    \s -> mkNP (mkPN s) ;
+  mkFunction : Str -> Fun =
+    \s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
+  mkFunctionP : N -> Prep -> Fun =
+    \n,p -> {cn = mkCN n ; prep = p} ;
+
+  som_Prep = mkPrep "comme" ;
+
+  noPrep = mkPrep [] ;
+
+  useCopula = mkVP être_V ;
+
+lin
+-- JobTitles
+  JobTitle1 = mkCN (mkN "'JobTitle1") ;
+  JobTitle2 = mkCN (mkN "'JobTitle2") ;
+  JobTitle3 = mkCN (mkN "'JobTitle3") ;
+  JobTitle4 = mkCN (mkN "'JobTitle4") ;
+
+-- Locations
+  Location1 = mkName "'Location1" ;
+  Location2 = mkName "'Location2" ;
+  Location3 = mkName "'Location3" ;
+  Location4 = mkName "'Location4" ;
+
+-- Organizations
+  Organization1 = mkName "'Organization1" ;
+  Organization2 = mkName "'Organization2" ;
+  Organization3 = mkName "'Organization3" ;
+  Organization4 = mkName "'Organization4" ;
+
+-- Persons
+  Person1 = mkName "'Person1" ;
+  Person2 = mkName "'Person2" ;
+  Person3 = mkName "'Person3" ;
+  Person4 = mkName "'Person4" ;
+
+}
diff --git a/examples/query/QueryI.gf b/examples/query/QueryI.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/QueryI.gf
@@ -0,0 +1,185 @@
+incomplete concrete QueryI of Query = open
+  Syntax,
+  LexQuery,
+  Lang,
+  Prelude
+in {
+
+lincat
+  Move = Utt ; ---- Text ;
+  Query = Utt ;
+  Answer = Cl ; -- Utt ;
+  Set = NP ;
+  Interrogative = IP ;
+  Function = Fun ; -- = {cn : CN ; prep : Prep} ;
+  Kind = CN ;
+  Property = Prop ; -- = {ap : AP ; vp : VP} ;
+  Relation = Rel ; -- = {ap : AP ; vp : VP ; prep : Prep} ;
+  Individual = NP ;
+  Name = NP ;
+  Loc = NP ;
+  Org = NP ;
+  Pers = NP ;
+  [Individual] = [NP] ;
+
+lin
+  MQuery  q = q ; ---- mkText (mkPhr q) questMarkPunct ;
+  MAnswer a = mkUtt a ; ---- mkText (mkPhr a) fullStopPunct ;
+ 
+  QSet s = 
+    let 
+     ss : NP = s 
+        | mkNP (mkNP theSg_Det Lang.name_N) (mkAdv namePrep s)
+        | mkNP (mkNP thePl_Det Lang.name_N) (mkAdv namePrep s)
+----        | mkNP (GenNP s) sgNum Lang.name_N 
+----        | mkNP (GenNP s) plNum Lang.name_N ;
+    in 
+      mkUtt (mkImp (giveMe ss))
+    | mkUtt (mkQS (mkQCl (Lang.CompIP whatSg_IP) ss))
+    | mkUtt (mkQS (mkQCl (Lang.CompIP (Lang.IdetIP (mkIDet which_IQuant))) ss))
+    | mkUtt ss ;
+
+  QWhere s = 
+      mkUtt (mkQS (mkQCl where_IAdv s))
+    | mkUtt (mkQS (mkQCl where_IAdv (mkCl s located_A))) ;
+  QWhat i p = mkUtt (mkQS (mkQCl i p.vp)) ;
+  QRelWhere s p = mkUtt (mkQS (mkQCl where_IAdv (mkCl s p.vp))) ;
+
+  QFun r s = 
+      mkUtt 
+        (mkImp (giveMe (mkNP and_Conj s (detSet s r.cn))))
+    | mkUtt (mkQS (mkQCl (mkIP what_IQuant plNum r.cn) s have_V2))
+    | mkUtt (mkQS (mkQCl whatSg_IP 
+        (mkClSlash (mkClSlash s have_V2) (mkAdv LexQuery.as_Prep (mkNP aPl_Det r.cn))))) ; 
+
+  QFunPair s f = 
+    let 
+     ss0 : NP = s 
+              | mkNP (mkNP thePl_Det Lang.name_N) (mkAdv namePrep s) ;
+     ss  : NP = mkNP and_Conj ss0 (mkNP (mkQuant they_Pron) plNum f.cn)
+              | mkNP ss0 (mkAdv with_Prep (mkNP (mkQuant they_Pron) plNum f.cn))
+    in 
+      mkUtt (mkImp (giveMe ss))
+    | mkUtt (mkQS (mkQCl (Lang.CompIP whatPl_IP) ss))
+    | mkUtt (mkQS (mkQCl (Lang.CompIP (Lang.IdetIP (mkIDet which_IQuant))) ss))
+    | mkUtt ss ;
+
+  QInfo  s = 
+    let
+      info : NP = mkNP (all_NP | (mkNP information_N)) (mkAdv about_Prep s) ;
+    in
+      mkUtt (mkImp (giveMe info))
+    | mkUtt (mkQCl whatSg_IP 
+        (mkClSlash (mkClSlash (mkNP youSg_Pron) LexQuery.know_V2) (mkAdv about_Prep s)))
+    | mkUtt info ;
+
+  QCalled i = mkUtt (mkQS (mkQCl how_IAdv (mkCl i 
+    (mkVP (also_AdV | otherwise_AdV) (mkVP called_A))))) ;
+
+  QWhether a = mkUtt (mkQS a) ;
+
+  AInd s i = (mkCl s i) ;
+  AName s n = (mkCl n (mkNP the_Det (mkCN Lang.name_N (mkAdv namePrep s)))) ;
+  AProp s p = (mkCl s p.vp) ;
+
+  SAll k = mkNP all_Predet (mkNP aPl_Det k) | mkNP thePl_Det k ;
+  SOne k = mkNP n1_Numeral k ;
+  SIndef k = mkNP a_Det k ;
+  SDef k = mkNP the_Det k ;
+  SPlural k = mkNP aPl_Det k ;
+  SOther k = mkNP aPl_Det (mkCN other_A k) ;
+  SInd i = i ;
+  SInds is = mkNP and_Conj is ;
+
+  IWhich k = 
+      mkIP what_IQuant  (sgNum | plNum) k
+    | mkIP which_IQuant (sgNum | plNum) k ;
+
+  IWho = whoSg_IP | whoPl_IP ;
+  IWhat = whatSg_IP | whatPl_IP ;
+
+  KFunSet r s = 
+     mkCN r.cn (mkAdv r.prep s) ;
+
+  KFunKind k r s = 
+     mkCN k (mkRS (mkRCl which_RP (mkVP (mkNP aPl_Det (mkCN r.cn (mkAdv r.prep s))))))
+   | mkCN k (mkRS (mkRCl that_RP (mkVP (mkNP aPl_Det (mkCN r.cn (mkAdv r.prep s)))))) 
+   ;
+  
+  KFunPair k r = mkCN k (mkAdv with_Prep (mkNP (mkQuant they_Pron) plNum r.cn)) ;
+  KProp p k = 
+      participlePropCN p k
+    | mkCN k (mkRS (mkRCl which_RP p.vp)) 
+    | mkCN k (mkRS (mkRCl that_RP p.vp)) 
+     ;
+  KFun r = r.cn ;
+
+  IName n = n ;
+
+  PCalled  i  = propCalled i ;
+  PCalleds is = propCalled (mkNP or_Conj is) ;
+
+  BaseIndividual = mkListNP ;
+  ConsIndividual = mkListNP ;
+
+-- these need new things in resource
+lin
+  KFunsSet r q s = 
+     mkCN (ConjCN and_Conj (BaseCN r.cn q.cn)) (mkAdv r.prep s) ;
+  SFun s r = mkNP (GenNP s) plNum r.cn | mkNP (GenNP s) sgNum r.cn ;
+  QWhatWhat i j p = mkUtt (mkQS (QuestQVP i (AdvQVP p.vp (mkIAdv p.prep j)))) ;
+  QWhatWhere i p = mkUtt (mkQS (QuestQVP i (AdvQVP p.vp where_IAdv))) ;
+  PIs i = propVP (mkVP i) ;
+  AKind s k = (mkCl s (Lang.UseComp (Lang.CompCN k))) ;
+
+  PRelation r s = {
+    ap = AdvAP r.ap (mkAdv r.prep s) ; 
+    vp = mkVP r.vp (mkAdv r.prep s)
+    } ;
+
+oper
+  namePrep : Prep = possess_Prep ;
+
+  relVP : VP -> Prep -> Rel = \vp,p -> {
+    ap = vpAP vp ;
+    vp = vp ;
+    prep = p
+    } ;
+
+  propVP : VP -> Prop = \vp -> {
+    ap = vpAP vp ;
+    vp = vp
+    } ;
+
+  propAP : AP -> Prop = \ap -> {
+    ap = ap ;
+    vp = mkVP ap
+    } ;
+
+  relAP : AP -> Prep -> Rel = \ap,p -> {
+    ap = ap ;
+    vp = mkVP ap ;
+    prep = p
+    } ;
+
+  propCalled : NP -> Prop = \i -> 
+    propAP (mkAP (also_AdA | otherwise_AdA) (mkAP (mkA2 called_A (mkPrep [])) i)) ;
+
+  detSet : NP -> CN -> NP = \s,c -> 
+    mkNP (mkQuant they_Pron) plNum c ;
+
+
+-- lexicon
+
+lincat
+  Country = {np : NP ; a : A} ;
+  JobTitle = CN ;
+lin
+  NCountry c = c.np ;
+  PCountry c = propAP (mkAP c.a) ;
+
+  NLoc n = n ;
+  NOrg n = n ;
+  NPers n = n;
+}
+
diff --git a/examples/query/QuerySwe.gf b/examples/query/QuerySwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/QuerySwe.gf
@@ -0,0 +1,131 @@
+--# -path=.:present
+
+concrete QuerySwe of Query = QueryI - [namePrep, propCalled] with 
+  (Syntax = SyntaxSwe),
+  (Lang = LangSwe),
+  (LexQuery = LexQuerySwe) **
+open
+  LexQuerySwe,
+  ParadigmsSwe,
+  IrregSwe,
+  SyntaxSwe,
+  ExtraSwe,
+  (L = LangSwe),
+  (M = MakeStructuralSwe),
+  Prelude
+in {
+
+-- deviations from functor
+oper
+-- prep not "av"
+  namePrep = on_Prep ;
+-- verb "heta"
+  propCalled : NP -> Prop = \i -> 
+      propVP (mkVP (mkAdV "även") (mkVP (mkV2 (depV (mkV "kalla")) for_Prep) i))
+    | propVP (mkVP (mkAdV "även") (mkVP (mkV2 "heter") i)) ;
+
+
+
+-- lexicon
+
+lin
+  Located = relAP (mkAP located_A) in_Prep ;
+
+  In = relVP UseCopula in_Prep ;
+
+  Employed = 
+      relAP (mkAP (mkA "anställd" "anställt")) by8agent_Prep
+    | relAP (mkAP (mkA "betald" "betalt")) by8agent_Prep
+    | relAP (mkAP (mkA "aktiv")) at_Prep
+    | relAP (mkAP (mkA "professionellt aktiv")) at_Prep
+    | relVP (mkVP (mkV "arbeta")) at_Prep
+    | relVP (mkVP (mkV "jobba")) at_Prep
+    | relVP (mkVP (mkV "medarbeta")) at_Prep
+    ;
+
+  HaveTitle = 
+      relAP (mkAP (mkA "anställd" "anställt")) som_Prep
+    | relVP UseCopula noPrep
+    | relVP (mkVP (mkV "arbeta")) som_Prep
+    | relVP (mkVP (mkV "jobba")) som_Prep
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titel" "titlar") noPrep)))) 
+        possess_Prep
+    ;
+
+  EmployedAt s = 
+      relAP (mkAP (mkA2 (mkA "anställd" "anställt") at_Prep) s) som_Prep
+    | relAP (mkAP (mkA2 (mkA "anställd" "anställt") by8agent_Prep) s) som_Prep
+    | relVP (mkVP (mkV2 (mkV "arbeta") at_Prep) s) som_Prep 
+    | relVP (mkVP (mkV2 (mkV "jobba") at_Prep) s) som_Prep 
+    ;
+
+  HaveTitleAt t = 
+      relAP (mkAP (mkA2 (mkA "anställd" "anställt") som_Prep) (mkNP t)) at_Prep
+    | relAP (mkAP (mkA2 (mkA "anställd" "anställt") som_Prep) (mkNP t)) by8agent_Prep
+    | relVP (mkVP (mkNP a_Det t)) at_Prep
+    | relVP (mkVP (mkV2 (mkV "arbeta") som_Prep) (mkNP t)) at_Prep 
+    | relVP (mkVP (mkV2 (mkV "jobba") som_Prep) (mkNP t)) at_Prep 
+    | relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titel" "titlar") noPrep) 
+        (mkNP t)))) at_Prep 
+    ;
+
+  Named n = propAP  (mkAP (mkA2 called_A (mkPrep [])) n) ;
+  Start n = propVP (mkVP (mkV2 "börja" with_Prep) n) ;
+
+  Organization = mkCN (mkN "organisation" "organisationer") ;
+  Company = mkCN (mkN "företag" "företag") ;
+  Place = mkCN (mkN "plats" "platser") | mkCN (mkN "ställe" "ställen") ;
+  Person = 
+      mkCN (mkN "person" "personen" "folk" "folket")
+    | mkCN (mkN "person" "personer") ;
+
+  Location = mkFunctionP (mkN "läge" "lägen") possess_Prep ;
+  Region = mkFunctionP (mkN "region" "regioner") possess_Prep ;
+  Subregion = mkFunctionP (mkN "delregion" "delregioner") possess_Prep ;
+  FName = mkFunctionP (mkN "namn" "namn") on_Prep ;
+  FNickname = mkFunctionP (mkN "tilläggsnamn" "tilläggsnamn") on_Prep ;
+  FJobTitle = 
+     mkFunctionP (mkN "jobb" "jobb") possess_Prep
+   | mkFunction "befattning" ;
+
+  SJobTitle t = mkNP a_Det t ;
+
+oper
+  mkCountry : Str -> Str -> {np : NP ; a : A} = 
+    \n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
+
+  mkName : Str -> NP = 
+    \s -> mkNP (mkPN s) ;
+  mkFunction : Str -> Fun =
+    \s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
+  mkFunctionP : N -> Prep -> Fun =
+    \n,p -> {cn = mkCN n ; prep = p} ;
+
+  som_Prep = mkPrep "som" ;
+
+lin
+-- JobTitles
+  JobTitle1 = mkCN (mkN "'JobTitle1") ;
+  JobTitle2 = mkCN (mkN "'JobTitle2") ;
+  JobTitle3 = mkCN (mkN "'JobTitle3") ;
+  JobTitle4 = mkCN (mkN "'JobTitle4") ;
+
+-- Locations
+  Location1 = mkName "'Location1" ;
+  Location2 = mkName "'Location2" ;
+  Location3 = mkName "'Location3" ;
+  Location4 = mkName "'Location4" ;
+
+-- Organizations
+  Organization1 = mkName "'Organization1" ;
+  Organization2 = mkName "'Organization2" ;
+  Organization3 = mkName "'Organization3" ;
+  Organization4 = mkName "'Organization4" ;
+
+-- Persons
+  Person1 = mkName "'Person1" ;
+  Person2 = mkName "'Person2" ;
+  Person3 = mkName "'Person3" ;
+  Person4 = mkName "'Person4" ;
+
+}
diff --git a/examples/query/README b/examples/query/README
new file mode 100644
--- /dev/null
+++ b/examples/query/README
@@ -0,0 +1,57 @@
+Copyright (c) 2010 Aarne Ranta, under LGPL(3).
+Part of MOLTO Project, WP 4.
+
+Query language, based on the corpus from Ontotext.
+
+Purpose: natural language queries to an ontology database.
+
+Work in progress: 
+- 19 June parsing 28% 160/562
+- 17 June 2010 first version, parsing under 10%
+
+
+The corpus contains misspellings and ungrammatical sentences; these will (mostly) not
+be covered by the grammar.
+
+Test:
+
+  -- start GF with the grammar; notice that lib/present/ must have latest Eng libraries,
+  -- which can be provided by 'runghc Make present lang api langs=Eng' in lib/src/
+  % gf QueryEng.gf
+  -- parse a sentence and see all variants
+  > p "Bulgarian people working at Google" | l -all
+
+Regression test:
+
+  -- run the parser on the corpus
+  % gf QueryEng.gf <test.gfs > test.results8
+  -- compute the number of sentences not covered
+  % grep "no tree" test.results8 | wc
+
+
+Semantics: generic logical semantics, that could be mapped to many query languages.
+The denotations of the main categories are, assuming a domain of individuals:
+
+  Set ;           P(P(D)) (generalized quantifier) -- the set requested, e.g. "all persons"
+  Function ;      D -> P(D)   -- something of something, e.g. "subregion of Bulgaria"
+  Kind ;          P(D)        -- type of things,         e.g. "person"
+  Relation ;      D -> D -> T -- relation between things,e.g. "employed at"
+  Property ;      D -> T      -- property of things,     e.g. "employed at Google"
+  Individual ;    D           -- one entity,             e.g. "Google"
+  Name ;          D           -- person, company...      e.g. "Eric Schmidt"
+
+
+Characteristics:
+- simple AST's, lots of variants (easily hundreds per query)
+- semantic overgeneration, e.g. "Google works at Larry Page"
+- some ambiguities, e.g.
+
+    > give me the organizations and their locations
+    MQuery (QFun Location (SAll Organization))
+    MQuery (QFunPair (SAll Organization) Location)
+   
+  Maybe harmless?
+
+Resource grammar was not quite enough; added for instance multiple interrogatives
+("who is employed as what where") in Extra and ExtraEng
+
diff --git a/examples/query/TestQuery.gf b/examples/query/TestQuery.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/TestQuery.gf
@@ -0,0 +1,26 @@
+abstract TestQuery = Query ** {
+
+fun
+  USA : Country ;
+  California : Country ;
+  Bulgaria : Country ;
+  OblastSofiya : Name ;
+
+  CEO : JobTitle ;
+  ChiefInformationOfficer : JobTitle ;
+  
+  Microsoft : Name ;
+  Google : Name ;
+
+  SergeyBrin : Name ;
+  LarryPage : Name ;
+  EricSchmidt : Name ;
+  MarissaMayer : Name ;
+  UdiManber : Name ;
+  CarlGustavJung : Name ;
+  Jung : Name ;
+  BenFried : Name ;
+
+}
+
+
diff --git a/examples/query/TestQueryEng.gf b/examples/query/TestQueryEng.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/TestQueryEng.gf
@@ -0,0 +1,38 @@
+--# -path=.:present
+
+concrete TestQueryEng of TestQuery = QueryEng **
+open
+  LexQueryEng,
+  ParadigmsEng,
+  IrregEng,
+  SyntaxEng,
+  ExtraEng,
+  (L = LangEng),
+  (M = MakeStructuralEng),
+  Prelude
+in {
+
+-- test lexicon
+
+lin
+  USA = mkCountry "USA" "American" ;
+  Bulgaria = mkCountry "Bulgaria" "Bulgarian" ;
+  California = mkCountry "California" "Californian" ;
+  OblastSofiya = mkName "Oblast Sofiya" ;
+
+  CEO = mkCN (mkN "CEO") ;
+  ChiefInformationOfficer = mkCN (mkN "Chief Information Officer") ;
+
+  Microsoft = mkName "Microsoft" ;
+  Google = mkName "Google" ;
+
+  SergeyBrin = mkName "Sergey Brin" ;
+  LarryPage = mkName "Larry Page" ;
+  EricSchmidt = mkName "Eric Schmidt" ;
+  MarissaMayer = mkName "Marissa Mayer" ;
+  UdiManber = mkName "Udi Manber" ;
+  CarlGustavJung = mkName "Carl Gustav Jung" ;
+  Jung = mkName "Jung" ;
+  BenFried = mkName "Ben Fried" ;
+
+}
diff --git a/examples/query/TestQuerySwe.gf b/examples/query/TestQuerySwe.gf
new file mode 100644
--- /dev/null
+++ b/examples/query/TestQuerySwe.gf
@@ -0,0 +1,38 @@
+--# -path=.:present
+
+concrete TestQuerySwe of TestQuery = QuerySwe **
+open
+  LexQuerySwe,
+  ParadigmsSwe,
+  IrregSwe,
+  SyntaxSwe,
+  ExtraSwe,
+  (L = LangSwe),
+  (M = MakeStructuralSwe),
+  Prelude
+in {
+
+-- test lexicon
+
+lin
+  USA = mkCountry "USA" "amerikansk" ;
+  Bulgaria = mkCountry "Bulgarien" "bulgarisk" ;
+  California = mkCountry "Kalifornien" "Kalifornisk" ;
+  OblastSofiya = mkName "Oblast Sofiya" ;
+
+  CEO = mkCN (mkN "VD" "VD:ar") ;
+  ChiefInformationOfficer = mkCN (mkN "chefsinformatör" "chefsinformatörer") ;
+
+  Microsoft = mkName "Microsoft" ;
+  Google = mkName "Google" ;
+
+  SergeyBrin = mkName "Sergey Brin" ;
+  LarryPage = mkName "Larry Page" ;
+  EricSchmidt = mkName "Eric Schmidt" ;
+  MarissaMayer = mkName "Marissa Mayer" ;
+  UdiManber = mkName "Udi Manber" ;
+  CarlGustavJung = mkName "Carl Gustav Jung" ;
+  Jung = mkName "Jung" ;
+  BenFried = mkName "Ben Fried" ;
+
+}
diff --git a/examples/query/test.gfs b/examples/query/test.gfs
new file mode 100644
--- /dev/null
+++ b/examples/query/test.gfs
@@ -0,0 +1,562 @@
+ps -tr "what are the names of all locations that are subregions of other locations" | p
+ps -tr "give me the names of all locations that are subregions of other locations" | p
+ps -tr "give me the sub-regions of all locations" | p
+ps -tr "give me all locations with their sub-regions" | p
+ps -tr "give me all locations' sub-regions" | p
+ps -tr "give me all locations and their subregions" | p
+ps -tr "give me all subregions and their locations" | p
+ps -tr "what are the subregions of all locations" | p
+ps -tr "what subregions do all locations have" | p
+ps -tr "what do all locations have as subregions" | p
+ps -tr "what are the names of all locations that are subregions of Bulgaria" | p
+ps -tr "give me the sub-regions of Bulgaria" | p
+ps -tr "give me the Bulgarian sub-regions" | p
+ps -tr "what are the Bulgarian sub-regions" | p
+ps -tr "what are the names of the Bulgarian sub-regions" | p
+ps -tr "what are the names of all subregions of Bulgaria" | p
+ps -tr "what are the subregions of Bulgaria" | p
+ps -tr "what subregions does Bulgaria have" | p
+ps -tr "Bulgarian subregions" | p
+ps -tr "subregions of Bulgaria" | p
+ps -tr "where is Oblast Sofiya" | p
+ps -tr "give me the location of Oblast Sofiya" | p
+ps -tr "the location of Oblast Sofiya" | p
+ps -tr "what country is Oblast Sofiya in" | p
+ps -tr "Oblast Sofiya is in Bulgaria" | p
+ps -tr "Oblast Sofiya is located in Bulgaria" | p
+ps -tr "Oblast Sofiya is a subregion of Bulgaria" | p
+ps -tr "Oblast Sofiya's location is Bulgaria" | p
+ps -tr "Oblast Sofiya's location is in Bulgaria" | p
+ps -tr "one subregion of Bulgaria is Oblast Sofiya" | p
+ps -tr "a subregion of Bulgaria is Oblast Sofiya" | p
+ps -tr "Oblast Sofiya is the name of a subregion of Bulgaria" | p
+ps -tr "Bulgaria has a subregion - Oblast Sofiya" | p
+ps -tr "Oblast Sofiya is a Bulgarian subregion" | p
+ps -tr "Oblast Sofiya is a Bulgarian location" | p
+ps -tr "which are all organizations" | p
+ps -tr "what are the organizations" | p
+ps -tr "all organizations" | p
+ps -tr "give me all organizations" | p
+ps -tr "the organizations" | p
+ps -tr "what are the names of all organizations" | p
+ps -tr "give me all organizations' names" | p
+ps -tr "the names of all organizations" | p
+ps -tr "all organizations' names" | p
+ps -tr "organizations" | p
+ps -tr "what is Microsoft" | p
+ps -tr "what organization is Microsoft" | p
+ps -tr "give me information about Microsoft" | p
+ps -tr "all about Microsoft" | p
+ps -tr "give me all organizations named Microsoft" | p
+ps -tr "give me all organizations that start with Microsoft" | p
+ps -tr "all organizations' names starting with Microsoft" | p
+ps -tr "what are the organizations starting with Microsoft" | p
+ps -tr "what are the organizations that start with Microsoft" | p
+ps -tr "organizations starting with Microsoft" | p
+ps -tr "all organizations and their locations" | p
+ps -tr "give me all organizations with their locations" | p
+ps -tr "which organizations with their locations do you have" | p
+ps -tr "which organizations are located where" | p
+ps -tr "organizations with their locations" | p
+ps -tr "give me the organizations and their locations" | p
+ps -tr "what are the organizations and their locations" | p
+ps -tr "what organizations are located in what locations" | p
+ps -tr "the names of organizations and their locations" | p
+ps -tr "what are the names of all organizations and their locations" | p
+ps -tr "all organizations in Bulgaria" | p
+ps -tr "give me all organizations in Bulgaria" | p
+ps -tr "organizations located in Bulgaria" | p
+ps -tr "organizations in Bulgaria" | p
+ps -tr "organizations from Bulgaria" | p
+ps -tr "which organizations are from Bulgaria" | p
+ps -tr "which organizations are in Bulgaria" | p
+ps -tr "which organizations are located in Bulgaria" | p
+ps -tr "organizations that are located in Bulgaria" | p
+ps -tr "organizations that are in Bulgaria" | p
+ps -tr "organizations which are in Bulgaria" | p
+ps -tr "organizations which are located in Bulgaria" | p
+ps -tr "where is Google located" | p
+ps -tr "where is Google" | p
+ps -tr "what is Google's location" | p
+ps -tr "the location of Google" | p
+ps -tr "give me the location of Google" | p
+ps -tr "give me where is Google" | p
+ps -tr "give me where Google is located" | p
+ps -tr "what is the location of Google" | p
+ps -tr "Google's location" | p
+ps -tr "Google is in California" | p
+ps -tr "Google is located in California" | p
+ps -tr "Google's location is California" | p
+ps -tr "Google's in California" | p
+ps -tr "Google's location is in California" | p
+ps -tr "Google has a location California" | p
+ps -tr "California is Google's location" | p
+ps -tr "California is where Google is located" | p
+ps -tr "california is the location of Google" | p
+ps -tr "Google is situated in california" | p
+ps -tr "California is where Google is situated" | p
+ps -tr "organizations located in a subregion of a location" | p
+ps -tr "give me all organizations and in what subregion of what location they are located in" | p
+ps -tr "which organizations are located in a place which is the subregion of which location" | p
+ps -tr "where are the organizations located , in what subregion and region" | p
+ps -tr "which organizations are in which subregion and location" | p
+ps -tr "what organization is located in what subregion of which location" | p
+ps -tr "what are the organizations' locations by region and subregion" | p
+ps -tr "all organizations and their locations with their subregions" | p
+ps -tr "all organizations and the subregions of the locations they are located in" | p
+ps -tr "give me all organizations and the regions they are located in , with their subregions" | p
+ps -tr "the locations and subregions of all organizations" | p
+ps -tr "organizations which a located in subregions of Bulgaria" | p
+ps -tr "which organizations are located in subregions of Bulgaria" | p
+ps -tr "give me the organizations located in subregions of Bulgaria" | p
+ps -tr "give me all organizations that are located in subregions of Bulgaria" | p
+ps -tr "all organizations located in subregions of Bulgaria" | p
+ps -tr "all organizations which are in subregions of Bulgaria" | p
+ps -tr "the organizations which are in subregions of Bulgaria" | p
+ps -tr "the orgnaizations and the subregions of Bulgaria they are located in" | p
+ps -tr "the organizations and the subregions of Bulgaria they are in" | p
+ps -tr  "(simple} all organizations and the subregions of Bulgaria they are located in" | p
+ps -tr "all organizations in Sofia and a subregion of what area is Sofia" | p
+ps -tr "give me all organizations in Sofia and a subregion of which country it is" | p
+ps -tr "which organizations are located in Sofia , and where is Sofia" | p
+ps -tr "which organizations are located in Sofia and where is Sofia located" | p
+ps -tr "which organizations are located in Sofia and where is Sofia situated" | p
+ps -tr "all organizations located in Sofia and the region Sofia is subregion of" | p
+ps -tr "which organizations are located in Sofia , and Sofia is the subregion of which area" | p
+ps -tr "which organizations are in Sofia and a subregion of which country it is" | p
+ps -tr "all organizations in Sofia , a subregion of which country it is" | p
+ps -tr "all organizations in Sofia and the country of Sofia" | p
+ps -tr "which organizations are located in Sofia Bulgaria" | p
+ps -tr "all organizations located in Sofia Bulgaria" | p
+ps -tr "all organizations in Sofia Bulgaria" | p
+ps -tr "organizations which are in Sofia Bulgaria" | p
+ps -tr "organizations that are in Sofia Bulgaria" | p
+ps -tr "organizations located in Sofia , a subregion of Bulgaria" | p
+ps -tr "all organizations in Sofia , a subregion of Bulgaria" | p
+ps -tr "organizations that are in Sofia , which is a subregion of Bulgaria" | p
+ps -tr "organizations which are located in Sofia , which is in Bulgaria" | p
+ps -tr "organizations located in Sofia which is in Bulgaria" | p
+ps -tr "which organizations are situated in Sofia Bulgaria" | p
+ps -tr "all organizations situated in Sofia Bulgaria" | p
+ps -tr "organizations situated in Sofia , a subregion of Bulgaria" | p
+ps -tr "organizations which are situated in Sofia , which is in Bulgaria" | p
+ps -tr "organizations situated in Sofia which is in Bulgaria" | p
+ps -tr "what are the region and subregion where Google is located" | p
+ps -tr "what region and subregion Google is located in" | p
+ps -tr "the region and subregion Google is located in" | p
+ps -tr "the region and subregion of Google" | p
+ps -tr "the subregion of which region Google is located in" | p
+ps -tr "the subregion of which region is located Google in" | p
+ps -tr "which subregion and region Google is in" | p
+ps -tr "which are the region and subregion of Google" | p
+ps -tr "which are the locations of Google - region and subregion" | p
+ps -tr "give me the region and subregion Google is located in" | p
+ps -tr "where in the USA is Google" | p
+ps -tr "where in the USA is located Google" | p
+ps -tr "which subregion of the USA is Google located in" | p
+ps -tr "which subregion of the USA is Google in" | p
+ps -tr "which area in the USA is Google located in" | p
+ps -tr "which area of the USA is Google located in" | p
+ps -tr "the area of the USA Google is located in" | p
+ps -tr "the subregion of the USA where Google is located" | p
+ps -tr "the subregion of the USA Google is located in" | p
+ps -tr "give me the area of the USA Google is located in" | p
+ps -tr "give me the subregion of the USA where Google is located" | p
+ps -tr "give me the US state where Google is located" | p
+ps -tr "which country is located Google California in" | p
+ps -tr "where is located Google , California" | p
+ps -tr "what country is located Google , California in" | p
+ps -tr "what is the country of California , where Google is located" | p
+ps -tr "where is California , where Google is located in" | p
+ps -tr "give me the country of California , where Google is located in " | p
+ps -tr "what country is California located in , and Google" | p
+ps -tr "Google is located in California , USA" | p
+ps -tr "Google is located in California in the USA" | p
+ps -tr "Google is in California , the USA" | p
+ps -tr "Google is in California in the USA" | p
+ps -tr "Google's location is California , USA" | p
+ps -tr "Google's located in California in the USA" | p
+ps -tr "Google's location is California , which is in the USA" | p
+ps -tr "Google is located in California , which is in the USA" | p
+ps -tr "give me all people" | p
+ps -tr "give me all about all people" | p
+ps -tr "give me the names of all people" | p
+ps -tr "give me all people's names" | p
+ps -tr "person" | p
+ps -tr "all people" | p
+ps -tr "all about Marissa Mayer" | p
+ps -tr "give me all people named Marissa Mayer" | p
+ps -tr "who is Marissa Mayer" | p
+ps -tr "what person is Marissa Mayer" | p
+ps -tr "give me information about Marissa Mayer" | p
+ps -tr "what do you know about Marissa Mayer" | p
+ps -tr "all people named Marissa Mayer" | p
+ps -tr "give me all names and nicknames of all people" | p
+ps -tr "give me all names of all people" | p
+ps -tr "what are the names and the nicknames of all people" | p
+ps -tr "give me the names and nicknames of all people" | p
+ps -tr "give me the names of all people" | p
+ps -tr "the names and the nicknames of all people" | p
+ps -tr "all names and nicknames of all people" | p
+ps -tr "who is also known as Jung " | p
+ps -tr "who is also called Jung" | p
+ps -tr "who is otherwise known as Jung " | p
+ps -tr "who is otherwise called Jung " | p
+ps -tr "who is also named Jung" | p
+ps -tr "who is otherwise named Jung" | p
+ps -tr "who is famous with the name Jung" | p
+ps -tr "what is the full name of a person also known as Jung" | p
+ps -tr "what is the full name of a person otherwise known as Jung" | p
+ps -tr "what is the full name of a person also named Jung" | p
+ps -tr "what is the full name of a person otherwise named Jung" | p
+ps -tr "what is the full name of a person also called Jung" | p
+ps -tr "what is the full name of a person otherwise called Jung" | p
+ps -tr "give me all people with a nickname Jung" | p
+ps -tr "give me all people also named Jung" | p
+ps -tr "give me all people also known as Jung" | p
+ps -tr "give me all people otherwise known as Jung" | p
+ps -tr "give me all people also called Jung" | p
+ps -tr "give me all people otherwise called Jung" | p
+ps -tr "how is Carl Gustav Jung also known " | p
+ps -tr "how is Carl Gustav Jung also called" | p
+ps -tr "how is Carl Gustav Jung otherwise known" | p
+ps -tr "how is Carl Gustav Jung otherwise called" | p
+ps -tr "how is Carl Gustav Jung also named" | p
+ps -tr "how is Carl Gustav Jung otherwise named" | p
+ps -tr "what name is Carl Gustav Jung famous with" | p
+ps -tr "what name is Carl Gustav Jung known with" | p
+ps -tr "what name is Carl Gustav Jung called with" | p
+ps -tr "what name is Carl Gustav Jung also called with" | p
+ps -tr "give me the nickname of Carl Gustav Jung" | p
+ps -tr "give me Carl Gustav Jung's nickname" | p
+ps -tr "Carl Gustav Jung is also known as Jung" | p
+ps -tr "Carl Gustav Jung also called Jung" | p
+ps -tr "Carl Gustav Jung otherwise known as Jung" | p
+ps -tr "Carl Gustav Jung otherwise called Jung" | p
+ps -tr "Carl Gustav Jung also named Jung" | p
+ps -tr "Carl Gustav Jung otherwise named Jung" | p
+ps -tr "Carl Gustav Jung famous with the name Jung" | p
+ps -tr "Carl Gustav Jung known with the name Jung" | p
+ps -tr "Carl Gustav Jung called with the name Jung" | p
+ps -tr "Carl Gustav Jung also called with the name Jung" | p
+ps -tr "the nickname of Carl Gustav Jung is Jung" | p
+ps -tr "Carl Gustav Jung's nickname is Jung" | p
+ps -tr "who works as what" | p
+ps -tr "give me all people with their job titles" | p
+ps -tr "give me all job titles with their holders" | p
+ps -tr "give me all people with their job positions" | p
+ps -tr "give me all job positions with their holders" | p
+ps -tr "give me all people with their occupation" | p
+ps -tr "give me all people with their occupations" | p
+ps -tr "give me all occupations with their holders" | p
+ps -tr "what are all people by occupation" | p
+ps -tr "what are the jobs of all people" | p
+ps -tr "what are all people's occupations" | p
+ps -tr "give me all job positions and the people occupying them" | p
+ps -tr "who is appointed to work as what" | p
+ps -tr "whose appointment is what" | p
+ps -tr "who is paid for what" | p
+ps -tr "who is appointed for what" | p
+ps -tr "who is active as what" | p
+ps -tr "whose mandate is what" | p
+ps -tr "which person works as what" | p
+ps -tr "which person is appointed as what" | p
+ps -tr "what are the job positions of all people" | p
+ps -tr "what is everybody's job" | p
+ps -tr "who works as a CEO" | p
+ps -tr "whose job position is CEO" | p
+ps -tr "whose job title is CEO" | p
+ps -tr "whose occupation is CEO" | p
+ps -tr "who is CEO by occupation" | p
+ps -tr "who holds the position CEO" | p
+ps -tr "all people working as CEO" | p
+ps -tr "give me all CEOs" | p
+ps -tr "give me all people with the job position CEO" | p
+ps -tr "who has a job title CEO" | p
+ps -tr "who has a job position CEO" | p
+ps -tr "who is appointed as CEO" | p
+ps -tr "who is active as CEO" | p
+ps -tr "who has a mandate to be a CEO" | p
+ps -tr "whose mandate is to be a CEO" | p
+ps -tr "whose appointment is to be a CEO" | p
+ps -tr "who operates as CEO" | p
+ps -tr "who is paid to be a CEO" | p
+ps -tr "which person is mandated to be a CEO" | p
+ps -tr "who is a CEO" | p
+ps -tr "what does Udi Manber work" | p
+ps -tr "what's Udi Manber's job position" | p
+ps -tr "what's Udi Manber's job title" | p
+ps -tr "what does Udi Manber do" | p
+ps -tr "what is Udi Manber's job" | p
+ps -tr "what's the job of Udi Manber" | p
+ps -tr "what's the job title of Udi Manber" | p
+ps -tr "what's Udi Manber's occupation" | p
+ps -tr "what is Udi Manber by occupation" | p
+ps -tr "what job position does Udi Manber hold" | p
+ps -tr "what is the position of Udi Manber" | p
+ps -tr "what is the appointment of Udi Manber" | p
+ps -tr "what is the mandate of Udi Manber" | p
+ps -tr "what is Udi Manber paid for" | p
+ps -tr "what is Udi Manber's title" | p
+ps -tr "what is Udi Manber working as" | p
+ps -tr "what is Udi Manber appointed as" | p
+ps -tr "Ben Fried works as a Chief Information Officer" | p
+ps -tr "Ben Fried's job position is Chief Information Officer" | p
+ps -tr "Ben Fried is a Chief Information Officer" | p
+ps -tr "Ben Fried's job title is Chief Information Officer" | p
+ps -tr "Ben Fried's occupation is Chief Information Officer" | p
+ps -tr "Ben Fried is Cheif Information Officer by occupation" | p
+ps -tr "the Chief Information Officer is Ben Fried" | p
+ps -tr "Ben Fried holds the position of Chief Information Officer" | p
+ps -tr "Ben Fried is Chief Information Officer" | p
+ps -tr "Ben Fried is appointed as Chief Information Officer" | p
+ps -tr "Ben Fried is mandated as Chief Information Officer" | p
+ps -tr "Ben Fried has the title of Chief Information Officer" | p
+ps -tr "the title of Ben Fried is Chief Information Officer" | p
+ps -tr "Ben Fried works in a position of Chief Information Officer" | p
+ps -tr "the position of Ben Fried is Chief Information Officer" | p
+ps -tr "Ben Fried's title is Chief Information Officer" | p
+ps -tr "Ben Fried's position is Chief Information Officer" | p
+ps -tr "where do all people work and what is their occupation" | p
+ps -tr "who do all people work for and what's their occupation" | p
+ps -tr "give me all people with their job titles and the organization they work for" | p
+ps -tr "give me all job titles with their holders and the organization they work for" | p
+ps -tr "give me all people with their job positions and the organization they work for" | p
+ps -tr "give me all job positions with their holders and the organization they work for" | p
+ps -tr "give me all people with their occupation and where they work" | p
+ps -tr "give me all people with their occupations and where they work" | p
+ps -tr "what are all people by occupation and who do they work for" | p
+ps -tr "what are all people by occupation and what is the name of the organization they work for" | p
+ps -tr "what are the jobs of all people and who do they work for" | p
+ps -tr "what are the jobs of all people and what is the name of the organization they work for" | p
+ps -tr "what are all people's occupations and what is the name of the organizations they work for" | p
+ps -tr "who is employed where as what" | p
+ps -tr "who is employed at what organization in what position" | p
+ps -tr "who operates where and in what position" | p
+ps -tr "who is active at what organization in what capacity" | p
+ps -tr "who is paid by which organization for what work" | p
+ps -tr "who is appointed by which organization as in what capacity" | p
+ps -tr "which organization does employ whom as what" | p
+ps -tr "which organization appoints whom in what position" | p
+ps -tr "what is the job title of which person at what organization" | p
+ps -tr "what is the occupation of all people and who do they work for" | p
+ps -tr "which people work for what organization in what capacity" | p
+ps -tr "who works in what company and in what capacity" | p
+ps -tr "who works at Microsoft as what " | p
+ps -tr "who is who at Microsoft" | p
+ps -tr "who is appointed as what at Microsoft" | p
+ps -tr "who is employed by Microsoft as what" | p
+ps -tr "who is mandated by Microsoft as what" | p
+ps -tr "which position is occupied by whom at Microsoft" | p
+ps -tr "who occupies which position at Microsoft" | p
+ps -tr "who works at what position at Microsoft" | p
+ps -tr "who is active as what at Microsoft" | p
+ps -tr "who has what title at Microsoft" | p
+ps -tr "give me the names of the people that work for Microsoft with their job positions" | p
+ps -tr "give me the Microsoft employees names with their job titles" | p
+ps -tr "give me the names of the people that work for Microsoft with their job titles" | p
+ps -tr "give me the Microsoft employees names with their job positions" | p
+ps -tr "give me the Microsoft employees names with their occupations" | p
+ps -tr "give me the names of the people that work for Microsoft with their occupations" | p
+ps -tr "give me the names of the people that are active at Microsoft with their job positions" | p
+ps -tr "give me the names of the people that are active at Microsoft with their job titles" | p
+ps -tr "give me the names of the people that are active at Microsoft with their occupations" | p
+ps -tr "who works where as a CEO" | p
+ps -tr "who is apopinted at which oranigzation as a CEO" | p
+ps -tr "which organization employs whom as a CEO" | p
+ps -tr "which orgnization appoints whom as a CEO" | p
+ps -tr "which organization gives the mandate to whom to be the CEO" | p
+ps -tr "which organization has whom as the CEO" | p
+ps -tr "who is a CEO of which organization" | p
+ps -tr "who and where is CEO" | p
+ps -tr "who is a CEO of which organization" | p
+ps -tr "who is employed as CEO and in which organization" | p
+ps -tr "who is appointed as CEO and in which organization" | p
+ps -tr "who is mandated as CEO and in which organization" | p
+ps -tr "who is appointed as a CEO and where" | p
+ps -tr "who is a CEO and where" | p
+ps -tr "give me the names of all CEOs and the organizations they work for" | p
+ps -tr "give me the names of the people that work as a CEO and in which organization" | p
+ps -tr "give me the names of the people that have a job position CEO and in which organization" | p
+ps -tr "give me the names of the people that have a job title CEO and in which organization" | p
+ps -tr "give me the names of the people that have an occupation CEO and in which organization" | p
+ps -tr "give me the names of the people that occupy the the position CEO and in which organization" | p
+ps -tr "who is the president of Microsoft" | p
+ps -tr "who works as president of Microsoft" | p
+ps -tr "which person has the title president of Microsoft" | p
+ps -tr "who has the title president of Microsoft" | p
+ps -tr "who is employed as president of Microsoft" | p
+ps -tr "who is appointed as president of Microsoft" | p
+ps -tr "who has Microsoft employed as president" | p
+ps -tr "who is employed as president by Microsoft" | p
+ps -tr "who does Microsoft appoint as its president" | p
+ps -tr "who has the mandate to be the president of Microsoft" | p
+ps -tr "who acts as president of Microsoft" | p
+ps -tr "who acts as Microsoft's president" | p
+ps -tr "where does Eric Schmidt work and as what" | p
+ps -tr "where is Eric Schmidt apopinted and as what" | p
+ps -tr "what is the position of Eric Schmidt and at which organization does he work" | p
+ps -tr "what is the title of Eric Schmidt and where does he work" | p
+ps -tr "where does Eric Schmidt work and in what capacity" | p
+ps -tr "which organization has employed Eric Schmidt and as what" | p
+ps -tr "which organization has employed Eric Schmidt and in what capacity" | p
+ps -tr "where is Eric Schmidt appointed and as what" | p
+ps -tr "what is the title of Eric Schmidt at Google" | p
+ps -tr "what position does Eric Schmidt occupy at Google" | p
+ps -tr "what position does Eric Schmidt have at Google" | p
+ps -tr "what title does Eric Schmidt have at Google" | p
+ps -tr "Eric Schmidt is appointed at Google as what" | p
+ps -tr "Eric Schidt works for Google in what position" | p
+ps -tr "what is Eric Schmidt at Google" | p
+ps -tr "what mandate has Eric Schmidt at Google" | p
+ps -tr "the CEO of which organization is Eric Schmidt" | p
+ps -tr "Eric Schmidt is the CEO of which organization" | p
+ps -tr "Eric Schmidt is employed as CEO of which organization" | p
+ps -tr "where is Eric Schmidt the CEO" | p
+ps -tr "who employs Eric Schmidt as  CEO" | p
+ps -tr "where is Eric Schmidt appointed as CEO" | p
+ps -tr "which organization has employed Eric Schmidt as CEO" | p
+ps -tr "Eric Schmidt has the mandate of CEO for which organization" | p
+ps -tr "which organization gave Eric Schmidt the mandate to be the CEO" | p
+ps -tr "who appointed Eric Schmidt to be the CEO" | p
+ps -tr "which organization apopinted Eric Schmidt as the CEO" | p
+ps -tr "Eric Schmidt is CEO at Google" | p
+ps -tr "Eric Schmidt is the CEO of Google" | p
+ps -tr "Eric Schmidt has the title of CEO at Google" | p
+ps -tr "Eric Schmidt occupies the position of CEO at Google" | p
+ps -tr "Eric Schmidt acts as a CEO of Google" | p
+ps -tr "Eric Schmidt is employed as the CEO of Google" | p
+ps -tr "Eric Schmidt has the mandate of CEO of Google" | p
+ps -tr "Google has Eric Schmidt as its CEO" | p
+ps -tr "Google has employed Eric Schmidt as CEO" | p
+ps -tr "Google assigned Eric Schmidt to be the CEO" | p
+ps -tr "Google assigned the title of CEO to Eric Schmidt" | p
+ps -tr "Google gave the mandate of Eric Schmidt to be its CEO" | p
+ps -tr "Eric Schmidt's position is CEO at Google" | p
+ps -tr "Eric Schmidt's title is CEO at Google" | p
+ps -tr "who works where" | p
+ps -tr "who occupies position in which organization" | p
+ps -tr "which person works where" | p
+ps -tr "who is employed where" | p
+ps -tr "who is employed in what organization" | p
+ps -tr "what person has what workplace" | p
+ps -tr "who operates in what organization" | p
+ps -tr "which person operates in which organization" | p
+ps -tr "who occupies position where" | p
+ps -tr "who works at Google" | p
+ps -tr "all people working for Google" | p
+ps -tr "who is an employee of Google" | p
+ps -tr "all Google's employees" | p
+ps -tr "what are the names of the people working for Google" | p
+ps -tr "what are the names of all people working for Google" | p
+ps -tr "who operates at Google" | p
+ps -tr "what person exercises position at Google" | p
+ps -tr "who is active at Google" | p
+ps -tr "who works for Google" | p
+ps -tr "which person occupies position at Google" | p
+ps -tr "who has a job at Google" | p
+ps -tr "who is employed by Google" | p
+ps -tr "who is paid by Google" | p
+ps -tr "where does Sergey Brin work" | p
+ps -tr "what is the organization that employs Sergey Brin" | p
+ps -tr "which organization does Sergey Brin work for" | p
+ps -tr "who employes Sergey Brin" | p
+ps -tr "who does Sergey Brin work for" | p
+ps -tr "which organization is Sergey Brin employed by" | p
+ps -tr "which organization is Sergey Brin active in " | p
+ps -tr "Sergey Brin occupies position in which organizaton" | p
+ps -tr "where does Sergey Brin go to work" | p
+ps -tr "where is Sergey Brin professionally occupied" | p
+ps -tr "who is Sergey Brin's employer" | p
+ps -tr "who is the employer of Sergey Brin" | p
+ps -tr "Sergey Brin works at Google" | p
+ps -tr "Sergey Brin has position at Google" | p
+ps -tr "Sergey Brin is professionally occupied at Google" | p
+ps -tr "Sergey Brin is active at Google" | p
+ps -tr "Google has employed Sergey Brin" | p
+ps -tr "Google is the employer of Sergey Brin" | p
+ps -tr "Sergey Brin does work for Google" | p
+ps -tr "Sergey Brin is employed by Google" | p
+ps -tr "Sergey Brin has a work contract with Google" | p
+ps -tr "Sergey Brin has a job contract with Google" | p
+ps -tr "Sergey Brin is a professional at Google" | p
+ps -tr "who is also known as Jung and as Carl G Jung" | p
+ps -tr "who is also called Jung , or Carl G Jung" | p
+ps -tr "who is otherwise known as Jung , or Carl G Jung " | p
+ps -tr "who is otherwise called Jung , or Carl G Jung " | p
+ps -tr "who is also named Jung , or Carl G Jung" | p
+ps -tr "who is otherwise named Jung , or Carl G Jung" | p
+ps -tr "who is famous with the name Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person also known as Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person otherwise known as Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person also named Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person otherwise named Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person also called Jung , or Carl G Jung" | p
+ps -tr "what is the full name of a person otherwise called Jung , or Carl G Jung" | p
+ps -tr "give me all people with a nickname Jung , or Carl G Jung" | p
+ps -tr "give me all people also named Jung , or Carl G Jung" | p
+ps -tr "give me all people also known as Jung , or Carl G Jung" | p
+ps -tr "give me all people otherwise known as Jung , or Carl G Jung" | p
+ps -tr "give me all people also called Jung , or Carl G Jung" | p
+ps -tr "give me all people otherwise called Jung , or Carl G Jung" | p
+ps -tr "how is Carl Gustav Jung also known" | p
+ps -tr "how is Carl Gustav Jung also called" | p
+ps -tr "how is Carl Gustav Jung otherwise known" | p
+ps -tr "how is Carl Gustav Jung otherwise called" | p
+ps -tr "how is Carl Gustav Jung also named" | p
+ps -tr "how is Carl Gustav Jung otherwise named" | p
+ps -tr "what names is Carl Gustav Jung famous with" | p
+ps -tr "what names is Carl Gustav Jung known with" | p
+ps -tr "what names is Carl Gustav Jung called with" | p
+ps -tr "what names is Carl Gustav Jung also called with" | p
+ps -tr "give me the nicknames of Carl Gustav Jung" | p
+ps -tr "give me Carl Gustav Jung's nicknames" | p
+ps -tr "Carl Gustav Jung is also known as Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung also called Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung otherwise known as Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung otherwise called Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung also named Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung otherwise named Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung famous with the names Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung known with the names Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung called with the names Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung also called with the names Jung and Carl G Jung" | p
+ps -tr "the nicknames of Carl Gustav Jung are Jung and Carl G Jung" | p
+ps -tr "Carl Gustav Jung's nicknames are Jung and Carl G Jung" | p
+ps -tr "Jung and Carl G Jung are names of Carl Gustav Jung" | p
+ps -tr "Jung and Carl G Jung are aliases of Carl Gustav Jung" | p
+ps -tr "Larry Page and Sergey Brin are co-founders of Google" | p
+ps -tr "co-founders of Google are Larry Page and Sergey Brin" | p
+ps -tr "Larry Page is co-founder of Google and Sergey Brin is co-founder of Google" | p
+ps -tr "Larry Page with Sergey Brin is co-founder of Google" | p
+ps -tr "Larry Page and Sergey Brin co-founded Google" | p
+ps -tr "Larry Page and Sergey Brin founded Google together" | p
+ps -tr "Larry Page co-founded Google with Sergey Brin" | p
+ps -tr "Larry Page and Sergey Brin estabslished Google together" | p
+ps -tr "Larry Page and Sergey Brin set up Google together" | p
+ps -tr "Larry Page established Google with Sergey Brin" | p
+ps -tr "Larry Page set up Google with Sergey Brin" | p
+ps -tr "Larry Page launched Google with Sergey Brin" | p
+ps -tr "Larry Page and Sergey Brin launched Google" | p
+ps -tr "Larry Page and Sergey Brin created Google" | p
+ps -tr "Larry Page and Sergey Brin constituted Google together" | p
+ps -tr "Sergey Brin and Larry Page work at Google" | p
+ps -tr "Sergey Brin works with Larry Page at Google" | p
+ps -tr "Sergey Brin and Larry Page are colleagues at Google" | p
+ps -tr "Sergey Brin and Larry Page are occupied at Google" | p
+ps -tr "Google has employed Sergey Brin and Larry Page" | p
+ps -tr "Sergey Brin and Larry Page are employed by Google" | p
+ps -tr "Sergey Brin and Larry Page have positions at Google" | p
+ps -tr "Sergey Brin and Larry Page are professionally active at Google" | p
+ps -tr "Sergey Brin and Larry Page get sallaries from Google" | p
+ps -tr "Sergey Brin and Larry Page are paid by Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt work at Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt are colleagues at Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt are employed by Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt collaborate in Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt are paid by Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt get sallaries at Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt are professionally active at Google" | p
+ps -tr "Google has employed Sergey Brin , Larry Page and Eric Schmidt" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt are appointed by Google" | p
+ps -tr "Sergey Brin , Larry Page and Eric Schmidt do work for Google" | p
diff --git a/examples/query/test.txt b/examples/query/test.txt
new file mode 100644
--- /dev/null
+++ b/examples/query/test.txt
@@ -0,0 +1,566 @@
+
+
+ What are the names of all locations that are subregions of other locations
+ give me the names of all locations that are subregions of other locations
+ give me the sub-regions of all locations
+ give me all locations with their sub-regions
+ give me all locations' sub-regions
+ give me all locations and their subregions
+ give me all subregions and their locations
+ what are the subregions of all locations
+ what subregions do all locations have
+ what do all locations have as subregions
+ What are the names of all locations that are subregion of Bulgaria
+ give me the sub-regions of Bulgaria
+ give me the Bulgarian sub-regions
+ What are the Bulgarian sub-regions
+ What are the names of the Bulgarian sub-regions
+ what are the names of all subregions of Bulgaria
+ what are the subregions of Bulgaria
+ what subregions does Bulgaria have
+ Bulgarian subregions
+ subregions of Bulgaria
+ Where is Oblast Sofiya
+ give me the location of Oblast Sofiya
+ the location of Oblast Sofyia
+ what country is Oblast Sofyia in
+ Oblast Sofyia is in Bulgaria
+ Oblast Sofyia is located in Bulgaria
+ Oblast Sofyia is a subregion of Bulgaria
+ Oblast Sofyia's location is Bulgaria
+ Oblast Sofyia's location is in Bulgaria
+ One subregion of Bulgaria is Oblast Sofyia
+ A subregion of Bulgaria is Oblast Sofyia
+ Oblast SOfyia is the name of a subregion of Bulgaria
+ Bulgaria has a subregion - Oblast Sofyia
+ Oblast Sofyia is a Bulgarian subregion
+ Oblast Sofyia is a Bulgarian location
+ Which are all organizations
+ What are the organizations
+ all organizations
+ give me all organizations
+ the organizations
+ what are the names of all organizations
+ give me all organizations' names
+ the names of all organizations
+ all organizations' names
+ organizations
+ What is Microsoft
+ What organization is Microsoft
+ Give me information about Microsoft
+ all about Microsoft
+ give me all organizations named Microsoft
+ give me all organizations that start with Microsoft
+ all organizations' names starting with Microsoft
+ what are the organizations starting with Microsoft
+ what are the organizations that start with Microsoft
+ organizations starting with Microsoft
+ all organizations and their locations
+ give me all organizations with their locations
+ which organizations with their locations do you have
+ which organizations are located where
+ organizations with their locations
+ give me the organizations and their locations
+ what are the organizations and their locations
+ what organizations are located in what locations
+ the names of organizations and their locations
+ what are the names of all organizations and their locations
+ all organizations in Bulgaria
+ give me all organizations in Bulgaria
+ organizations located in Bulgaria
+ organizations in Bulgaria
+ organizations from Bulgaria
+ which organizations are from Bulgaria
+ which organizations are in Bulgaria
+ which organizations are located in Bulgaria
+ organizations that are located in Bulgaria
+ organizations that are in Bulgaria
+ organizations which are in Bulgaria
+ organizations which are located in Bulgaria
+ Where is Google located
+ Where is Google
+ What is Google's location
+ the location of Google
+ give me the location of Google
+ give me where is Google
+ give me where Google is located
+ what is the location of Google
+ Google's location
+ Google is in California
+ Google is located in California
+ Google's location is California
+ Google's in California
+ Google's location is in California
+ Google has a location California
+ California is Google's location
+ California is where Google is located
+ california is the location of Google
+ Google is situated in california
+ California is where Google is situated
+ Organizations located in a subregion of a location
+ give me all organizations and in what subregion of what location they are located in
+ which organizations are located in a place which is the subregion of which location
+ where are the organizations located, in what subregion and region
+ which organizations are in which subregion and location
+ what organization is located in what subregion of which location
+ what are the organizations' locations by region and subregion
+ all organizations and their locations with their subregions
+ all organizations and the subregions of the locations they are located in
+ give me all organizations and the regions they are located in, with their subregions
+ the locations and subregions of all oragnizations
+ Orgnaizations which a located in subregions of Bulgaria
+ which organizations are located in subregions of Bulgaria
+ give me the organizations located in subregions of Bulgaria
+ give me all organizations that are located in subregions of Bulgaria
+ all organizations located in subregions of Bulgaria
+ all organizations which are in subregions of Bulgaria
+ the organizations which are in subregions of Bulgaria
+ the orgnaizations and the subregions of Bulgaria they are located in
+ the organizations and the subregions of Bulgaria they are in
+(simple} all organizations and the subregions of Bulgaria they are located in
+ all organizations in Sofia and a subregion of what area is Sofia
+ give me all organizations in Sofia and a subregion of which country it is
+ which organizations are located in Sofia, and where is Sofia
+ Which organizations are located in Sofia and where is Sofia located
+ which organizations are located in Sofia and where is Sofia situated
+ all organizations located in Sofia and the region Sofia is subregion of
+ which organizations are located in Sofia, and Sofia is the subregion of which area
+ which organizations are in Sofia and a subregion of which country it is
+ all organizations in Sofia, a subregion of which country it is
+ all organizations in Sofia and the country of Sofia
+ Which organizations are located in Sofia Bulgaria
+ all organizations located in Sofia Bulgaria
+ all organizations in Sofia Bulgaria
+ organizations which are in Sofia Bulgaria
+ organizations that are in Sofia Bulgaria
+ organizations located in Sofia, a subregion of Bulgaria
+ all organizations in Sofia, a subregion of Bulgaria
+ organizations that are in Sofia, which is a subregion of Bulgaria
+ organizations which are located in Sofia, which is in Bulgaria
+ organizations located in Sofia which is in Bulgaria
+ Which organizations are situated in Sofia Bulgaria
+ all organizations situated in Sofia Bulgaria
+ organizations situated in Sofia, a subregion of Bulgaria
+ organizations which are situated in Sofia, which is in Bulgaria
+ organizations situated in Sofia which is in Bulgaria
+ What are the region and subregion where Google is located
+ What region and subregion Google is located in
+ the region and subregion Google is located in
+ the region and subregion of Google
+ the subregion of which region Google is located in
+ the subregion of which region is located Google in
+ which subregion and region Google is in
+ which are the region and subregion of Google
+ which are the locations of Google - region and subregion
+ give me the region and subregion Google is located in
+ Where in the USA is Google
+ Where in the USA is located Google
+ Which subregion of the USA is Google located in
+ Which subregion of the USA is Google in
+ Which area in the USA is Google located in
+ Which area of the USA is Google located in
+ the area of the USA Google is located in
+ the subregion of the USA where Google is located
+ the subregion of the USA Google is located in
+ give me the area of the USA Google is located in
+ give me the subregion of the USA where Google is located
+ give me the US state where Google is located
+ Which country is located Google California in
+ Where is located Google, California
+ What country is located Google, California in
+ What is the country of California, where Google is located
+ Where is California, where Google is located in
+ give me the country of California, where Google is located in 
+ what country is California located in, and Google
+ Google is located in California, USA
+ Google is located in California in the USA
+ Google is in California, the USA
+ Google is in California in the USA
+ Google's location is California, USA
+ Google's located in California in the USA
+ Google's location is California, which is in the USA
+ Google is located in California, which is in the USA
+ give me all people
+ give me all about all people
+{simples} give me the names of all people
+ give me all people's names
+ person
+ all people
+ all about Marissa Mayer
+ give me all people named Marissa Mayer
+ who is Marissa Mayer
+ what person is Marissa Mayer
+ give me information about Marissa Mayer
+ what do you know about Marissa Mayer
+ all people named Marissa Mayer
+ give me all names and nicknames of all people
+ give me all names of all people
+ What are the names and the nicknames of all people
+ give me the names and nicknames of all people
+ give me the names of all people
+ the names and the nicknames of all people
+ all names and nicknames of all people
+ Who is also known as Jung 
+ Who is also called Jung
+ Who is otherwise known as Jung 
+ Who is otherwise called Jung 
+ Who is also named Jung
+ Who is otherwise named Jung
+ Who is famous with the name Jung
+ What is the full name of a person also known as Jung
+ What is the full name of a person otherwise known as Jung
+ What is the full name of a person also named Jung
+ What is the full name of a person otherwise named Jung
+ What is the full name of a person also called Jung
+ What is the full name of a person otherwise called Jung
+ give me all people with a nickname Jung
+ give me all people also named Jung
+ give me all people also known as Jung
+ give me all people otherwise known as Jung
+ give me all people also called Jung
+ give me all people otherwise called Jung
+ How is Carl Gustav Jung also known 
+ How is Carl Gustav Jung also called
+ How is Carl Gustav Jung otherwise known
+ How is Carl Gustav Jung otherwise called
+ How is Carl Gustav Jung also named
+ How is Carl Gustav Jung otherwise named
+ What name is Carl Gustav Jung famous with
+ What name is Carl Gustav Jung known with
+ What name is Carl Gustav Jung called with
+ What name is Carl Gustav Jung also called with
+ give me the nickname of Carl Gustav Jung
+ give me Carl Gustav Jung's nickname
+ Carl Gustav Jung is also known as Jung
+ Carl Gustav Jung also called Jung
+ Carl Gustav Jung otherwise known as Jung
+ Carl Gustav Jung otherwise called Jung
+ Carl Gustav Jung also named Jung
+ Carl Gustav Jung otherwise named Jung
+ Carl Gustav Jung famous with the name Jung
+ Carl Gustav Jung known with the name Jung
+ Carl Gustav Jung called with the name Jung
+ Carl Gustav Jung also called with the name Jung
+ the nickname of Carl Gustav Jung is Jung
+ Carl Gustav Jung's nickname is Jung
+ Who works as what
+ give me all people with their job titles
+ give me all job titles with their holders
+ give me all people with their job positions
+ give me all job positions with their holders
+ give me all people with their occupation
+ give me all people with their occupations
+ give me all occupations with their holders
+ What are all people by occupation
+ What are the jobs of all people
+ What are all people's occupations
+ give me all job positions and the people occupying them
+ who is appointed to work as what
+ whose appointment is what
+ who is paid for what
+ who is appointed for what
+ who is active as what
+ whose mandate is what
+ which person works as what
+ which person is appointed as what
+ what are the job positions of all people
+ what is everybody's job
+ Who works as a CEO
+ Whose job position is CEO
+ Whose job title is CEO
+ Whose occupation is CEO
+ Who is CEO by occupation
+ Who holds the position CEO
+ all people working as CEO
+ give me all CEOs
+ give me all people with the job position CEO
+ Who has a job title CEO
+ Who has a job position CEO
+ who is appointed as CEO
+ who is active as CEO
+ who has a mandate to be a CEO
+ whose mandate is to be a CEO
+ whose appointment is to be a CEO
+ who operates as CEO
+ who is paid to be a CEO
+ which person is mandated to be a CEO
+ who is a CEO
+ What does Udi Manber work
+ What's Udi Manber's job position
+ What's Udi Manber's job title
+ What does Udi Manber do
+ What is Udi Manber's job
+ What's the job of Udi Manber
+ What's the job title of Udi Manber
+ What's Udi Manber's occupation
+ What is Udi Manber by occupation
+ What job position does Udi Manber hold
+ What is the position of Udi Manber
+ What is the appointment of Udi Manber
+ What is the mandate of Udi Manber
+ What is Udi Manber paid for
+ What is Udi Manber's title
+ What is Udi Manber working as
+ What is Udi Manber apopinted as
+ Ben Fried works as a Chief Information Officer
+ Ben Fried's job position is Chief Information Officer
+ Ben Fried is a Chief Information Officer
+ Ben Fried's job title is Chief Information Officer
+ Ben Fried's occupation is Chief Information Officer
+ Ben Fried is Cheif Information Officer by occupation
+ The Chief Information Officer is Ben Fried
+ Ben Fried holds the position of Chief Information Officer
+ Ben Fried is Chief Information Officer
+ Ben Fried is appointed as Chief Information Officer
+ Ben Fried is mandated as Chief Information Officer
+ Ben Fried has the title of Chief Information Officer
+ The title of Ben Fried is Chief Information Officer
+ Ben Fried works in a position of Chief Information Officer
+ The position of Ben Fried is Chief Information Officer
+ Ben Fried's title is Chief Information Officer
+ Ben fried's position is Chief Information Officer
+ Where do all people work and what is their occupation
+ Who do all people work for and what's their occupation
+ give me all people with their job titles and the Organization they work for
+ give me all job titles with their holders and the Organization they work for
+ give me all people with their job positions and the Organization they work for
+ give me all job positions with their holders and the Organization they work for
+ give me all people with their occupation and where they work
+ give me all people with their occupations and where they work
+ What are all people by occupation and who do they work for
+ What are all people by occupation and what is the name of the organization they work for
+ What are the jobs of all people and who do they work for
+ What are the jobs of all people and what is the name of the organization they work for
+ What are all people's occupations and what is the name of the organizations they work for
+ Who is employed where as what
+ Who is employed at what organization in what position
+ Who operates where and in what position
+ who is active at what organization in what capacity
+ who is paid by which organization for what work
+ who is appointed by which organization as in what capacity
+ which orgniazation does employ whom as what
+ which organization appoints whom in what position
+ what is the job title of which person at what organization
+ what is the occupation of all people and who do they work for
+ which people work for what organization in what capacity
+ who works in what company and in what capacity
+ Who works at Microsoft as what 
+ Who is who at Microsoft
+ Who is appointed as what at Microsoft
+ Who is employed by Microsoft as what
+ Who is mandated by Microsoft as what
+ Which position is occupied by whom at Microsoft
+ Who occupies which position at Microsoft
+ Who works at what position at Microsoft
+ who is active as what at Microsoft
+ who has what title at Microsoft
+ give me the names of the people that work for Microsoft with their job positions
+ give me the Microsoft employees names with their job titles
+ give me the names of the people that work for Microsoft with their job titles
+ give me the Microsoft employees names with their job positions
+ give me the Microsoft employees names with their occupations
+ give me the names of the people that work for Microsoft with their occupations
+ give me the names of the people that are active at Microsoft with their job positions
+ give me the names of the people that are active at Microsoft with their job titles
+ give me the names of the people that are active at Microsoft with their occupations
+ Who works where as a CEO
+ Who is apopinted at which oranigzation as a CEO
+ Which organization employs whom as a CEO
+ Which orgnization appoints whom as a CEO
+ Which organization gives the mandate to whom to be the CEO
+ Which organization has whom as the CEO
+ who is a CEO of which organization
+ who and where is CEO
+ who is a CEO of which organization
+ who is employed as CEO and in which organization
+ who is appointed as CEO and in which organization
+ who is mandated as CEO and in which organization
+ who is appointed as a CEO and where
+ who is a CEO and where
+ give me the names of all CEOs and the organizations they work for
+ give me the names of the people that work as a CEO and in which organization
+ give me the names of the people that have a job position CEO and in which organization
+ give me the names of the people that have a job title CEO and in which organization
+ give me the names of the people that have an occupation CEO and in which organization
+ give me the names of the people that occupy the the position CEO and in which organization
+ Who is the president of Microsoft
+ Who works as president of Microsoft
+ Which person has the title president of Microsoft
+ who has the title president of Microsoft
+ who is employed as president of Microsoft
+ who is appointed as president of Microsoft
+ who has Microsoft employed as president
+ who is employed as president by Microsoft
+ who does Microsoft appoint as its president
+ who has the mandate to be the president of Microsoft
+ who acts as president of Microsoft
+ who acts as Microsoft's president
+ Where does Eric Schmidt work and as what
+ Where is Eric Schmidt apopinted and as what
+ What is the position of Eric Schmidt and at which organization does he work
+ What is the title of Eric Schmidt and where does he work
+ Where does Eric Schmidt work and in what capacity
+ Which organization has employed Eric Schmidt and as what
+ Which organization has employed Eric Schmidt and in what capacity
+ Where is Eric Schmidt appointed and as what
+ What is the title of Eric Schmidt at Google
+ What position does Eric Schmidt occupy at Google
+ What position does Eric Schmidt have at Google
+ What title does Eric Schmidt have at Google
+ Eric Schmidt is appointed at Google as what
+ Eric Schidt works for Google in what position
+ What is Eric Schmidt at Google
+ What mandate has Eric Schmidt at Google
+ The CEO of which organization is Eric Schmidt
+ Eric Schmidt is the CEO of which organization
+ Eric Schmidt is employed as CEO of which organization
+ where is Eric Schmidt the CEO
+ Who employs Eric Schmidt as  CEO
+ where is Eric Schmidt appointed as CEO
+ which organization has employed Eric Schmidt as CEO
+ Eric Schmidt has the mandate of CEO for which organization
+ Which organization gave Eric Schmidt the mandate to be the CEO
+ Who appointed Eric Schmidt to be the CEO
+ which organization apopinted Eric Schmidt as the CEO
+ Eric Schmidt is CEO at Google
+ Eric Schmidt is the CEO of Google
+ Eric Schmidt has the title of CEO at Google
+ Eric Schmidt occupies the position of CEO at Google
+ Eric Schmidt acts as a CEO of Google
+ Eric Schmidt is employed as the CEO of Google
+ Eric Schmidt has the mandate of CEO of Google
+ Google has Eric Schmidt as its CEO
+ Google has employed Eric Schmidt as CEO
+ Google assigned Eric Schmidt to be the CEO
+ Google assigned the title of CEO to Eric Schmidt
+ Google gave the mandate of Eric Schmidt to be its CEO
+ Eric Schmidt's position is CEO at Google
+ Eric Schmidt's title is CEO at Google
+ Who works where
+ who occupies position in which organization
+ which person works where
+ who is employed where
+ who is employed in what organization
+ what person has what workplace
+ who operates in what organization
+ which person operates in which organization
+ who occupies position where
+ Who works at Google
+ all people working for Google
+ who is an employee of Google
+ all Google's employees
+ what are the names of the people working for Google
+ what are the names of all people working for Google
+ who operates at Google
+ what person exercises position at Google
+ who is active at Google
+ who works for Google
+ which person occupies position at Google
+ who has a job at Google
+ who is employed by Google
+ who is paid by Google
+ Where does Sergey Brin work
+ What is the organization that employs Sergey Brin
+ Which organization does Sergey Brin work for
+ Who employes Sergey Brin
+ Who does Sergey Brin work for
+ Which organization is Sergey Brin employed by
+ Which organization is Sergey Brin active in 
+ Sergey Brin occupies position in which organizaton
+ Where does Sergey Brin go to work
+ Where is Sergey Brin professionally occupied
+ Who is Sergey Brin's employer
+ Who is the employer of Sergey Brin
+ Sergey Brin works at Google
+ Sergey Brin has position at Google
+ Sergey Brin is professionally occupied at Google
+ Sergey Brin is active at Google
+ Google has employed Sergey Brin
+ Google is the employer of Sergey Brin
+ Sergey Brin does work for Google
+ Sergey Brin is employed by Google
+ Sergey Brin has a work contract with Google
+ Sergey Brin has a job contract with Google
+ Sergey Brin is a professional at Google
+ Who is also known as Jung and as Carl G Jung
+ Who is also called Jung, or Carl G Jung
+ Who is otherwise known as Jung, or Carl G Jung 
+ Who is otherwise called Jung, or Carl G Jung 
+ Who is also named Jung, or Carl G Jung
+ Who is otherwise named Jung, or Carl G Jung
+ Who is famous with the name Jung, or Carl G Jung
+ What is the full name of a person also known as Jung, or Carl G Jung
+ What is the full name of a person otherwise known as Jung, or Carl G Jung
+ What is the full name of a person also named Jung, or Carl G Jung
+ What is the full name of a person otherwise named Jung, or Carl G Jung
+ What is the full name of a person also called Jung, or Carl G Jung
+ What is the full name of a person otherwise called Jung, or Carl G Jung
+ give me all people with a nickname Jung, or Carl G Jung
+ give me all people also named Jung, or Carl G Jung
+ give me all people also known as Jung, or Carl G Jung
+ give me all people otherwise known as Jung, or Carl G Jung
+ give me all people also called Jung, or Carl G Jung
+ give me all people otherwise called Jung, or Carl G Jung
+ How is Carl Gustav Jung also known
+ How is Carl Gustav Jung also called
+ How is Carl Gustav Jung otherwise known
+ How is Carl Gustav Jung otherwise called
+ How is Carl Gustav Jung also named
+ How is Carl Gustav Jung otherwise named
+ What names is Carl Gustav Jung famous with
+ What names is Carl Gustav Jung known with
+ What names is Carl Gustav Jung called with
+ What names is Carl Gustav Jung also called with
+ give me the nicknames of Carl Gustav Jung
+ give me Carl Gustav Jung's nicknames
+ Carl Gustav Jung is also known as Jung and Carl G Jung
+ Carl Gustav Jung also called Jung and Carl G Jung
+ Carl Gustav Jung otherwise known as Jung and Carl G Jung
+ Carl Gustav Jung otherwise called Jung and Carl G Jung
+ Carl Gustav Jung also named Jung and Carl G Jung
+ Carl Gustav Jung otherwise named Jung and Carl G Jung
+ Carl Gustav Jung famous with the names Jung and Carl G Jung
+ Carl Gustav Jung known with the names Jung and Carl G Jung
+ Carl Gustav Jung called with the names Jung and Carl G Jung
+ Carl Gustav Jung also called with the names Jung and Carl G Jung
+ the nicknames of Carl Gustav Jung are Jung and Carl G Jung
+ Carl Gustav Jung's nicknames are Jung and Carl G Jung
+ Jung and Carl G Jung are names of Carl Gustav Jung
+ Jung and Carl G Jung are aliases of Carl Gustav Jung
+ Larry Page and Sergey Brin are co-founders of Google
+ Co-founders of Google are Larry Page and Sergey Brin
+ Larry Page is co-founder of Google and Sergey Brin is co-founder of Google
+ Larry Page with Sergey Brin is co-founder of Google
+ Larry Page and Sergey Brin co-founded Google
+ Larry Page and Sergey Brin founded Google together
+ Larry Page co-founded Google with Sergey Brin
+ Larry Page and Sergey Brin estabslished Google together
+ Larry Page and Sergey Brin set up Google together
+ Larry Page established Google with Sergey Brin
+ Larry Page set up Google with Sergey Brin
+ Larry Page launched Google with Sergey Brin
+ Larry Page and Sergey Brin launched Google
+ Larry Page and Sergey Brin created Google
+ Larry Page and Sergey Brin constituted Google together
+ Sergey Brin and Larry Page work at Google
+ Sergey Brin works with Larry Page at Google
+ Sergey Brin and Larry Page are colleagues at Google
+ Sergey Brin and Larry Page are occupied at Google
+ Google has employed Sergey Brin and Larry Page
+ Sergey Brin and Larry Page are employed by Google
+ Sergey Brin and Larry Page have positions at Google
+ Sergey Brin and Larry Page are professionally active at Google
+ Sergey Brin and Larry Page get sallaries from Google
+ Sergey Brin and Larry Page are paid by Google
+ Sergey Brin, Larry Page and Eric Schmidt work at Google
+ Sergey Brin, Larry Page and Eric Schmidt are colleagues at Google
+ Sergey Brin, Larry Page and Eric Schmidt are employed by Google
+ Sergey Brin, Larry Page and Eric Schmidt collaborate in Google
+ Sergey Brin, Larry Page and Eric Schmidt are paid by Google
+ Sergey Brin, Larry Page and Eric Schmidt get sallaries at Google
+ Sergey Brin, Larry Page and Eric Schmidt are professionally active at Google
+ Google has employed Sergey Brin, Larry Page and Eric Schmidt
+ Sergey Brin, Larry Page and Eric Schmidt are appointed by Google
+ Sergey Brin, Larry Page and Eric Schmidt do work for Google
+
+
diff --git a/examples/tutorial/embedded/Makefile b/examples/tutorial/embedded/Makefile
--- a/examples/tutorial/embedded/Makefile
+++ b/examples/tutorial/embedded/Makefile
@@ -1,4 +1,4 @@
 all:
-	gfc --make --output-format=haskell QueryEng.gf
+	gfc --make --output-format=haskell QueryEng.gf QuerySpa.gf
 	ghc --make -o ./math TransferLoop.hs
 	strip math
diff --git a/examples/tutorial/embedded/QuerySpa.gf b/examples/tutorial/embedded/QuerySpa.gf
new file mode 100644
--- /dev/null
+++ b/examples/tutorial/embedded/QuerySpa.gf
@@ -0,0 +1,15 @@
+concrete QuerySpa of Query = {
+  lincat 
+    Answer, Question, Object = Str ;
+
+  lin 
+    Even x = x ++ "es" ++ "par" ;
+    Odd  x = x ++ "es" ++ "impar" ;
+    Prime x = x  ++ "es" ++ "primo" ;
+    Number n = n.s ;
+
+    Yes = "si" ;
+    No = "no" ;
+
+}
+
diff --git a/examples/tutorial/resource-foods/ExtFoodsI.gf b/examples/tutorial/resource-foods/ExtFoodsI.gf
--- a/examples/tutorial/resource-foods/ExtFoodsI.gf
+++ b/examples/tutorial/resource-foods/ExtFoodsI.gf
@@ -35,10 +35,10 @@
     You = mkNP youPol_Pron ;
     We = mkNP we_Pron ;
 
-    GThis = mkNP this_QuantSg ;
-    GThat = mkNP that_QuantSg ;
-    GThese = mkNP these_QuantPl ;
-    GThose = mkNP those_QuantPl ;
+    GThis = mkNP this_Det ;
+    GThat = mkNP that_Det ;
+    GThese = mkNP these_Det ;
+    GThose = mkNP those_Det ;
 
     Eat = eat_V2 ;
     Drink = drink_V2 ;
diff --git a/examples/tutorial/resource-foods/FoodsEng.gf b/examples/tutorial/resource-foods/FoodsEng.gf
--- a/examples/tutorial/resource-foods/FoodsEng.gf
+++ b/examples/tutorial/resource-foods/FoodsEng.gf
@@ -8,10 +8,10 @@
     Quality = AP ;
   lin
     Is item quality = mkCl item quality ;
-    This kind = mkNP this_Quant kind ;
-    That kind = mkNP that_Quant kind ;
-    These kind = mkNP this_Quant plNum kind ;
-    Those kind = mkNP that_Quant plNum kind ;
+    This kind = mkNP this_Det kind ;
+    That kind = mkNP that_Det kind ;
+    These kind = mkNP these_Det kind ;
+    Those kind = mkNP those_Det kind ;
     QKind quality kind = mkCN quality kind ;
     Wine = mkCN (mkN "wine") ;
     Pizza = mkCN (mkN "pizza") ;
diff --git a/examples/tutorial/resource-foods/FoodsI.gf b/examples/tutorial/resource-foods/FoodsI.gf
--- a/examples/tutorial/resource-foods/FoodsI.gf
+++ b/examples/tutorial/resource-foods/FoodsI.gf
@@ -9,10 +9,10 @@
   lin
     Is item quality = mkUtt (mkCl item quality) ;
     Isnt item quality = mkUtt (mkS negativePol (mkCl item quality)) ;
-    This kind = mkNP this_Quant kind ;
-    That kind = mkNP that_Quant kind ;
-    These kind = mkNP this_Quant plNum kind ;
-    Those kind = mkNP that_Quant plNum kind ;
+    This kind = mkNP this_Det kind ;
+    That kind = mkNP that_Det kind ;
+    These kind = mkNP these_Det kind ;
+    Those kind = mkNP those_Det kind ;
     QKind quality kind = mkCN quality kind ;
     Very quality = mkAP very_AdA quality ;
 
diff --git a/examples/tutorial/smart/SmartEng.gf b/examples/tutorial/smart/SmartEng.gf
--- a/examples/tutorial/smart/SmartEng.gf
+++ b/examples/tutorial/smart/SmartEng.gf
@@ -18,13 +18,16 @@
   Action = {s : VForm => Str ; part : Str} ;
   Device = {s : Str ; n : Number} ;
   Location = SS ;
+  Switchable = {} ;
+  Dimmable = {} ;
+  Statelike = {} ;
 
 lin
   UCommand  c = c ;
   UQuestion q = q ;
 
   CAction _ act dev = ss (act.s ! VImp ++ bothWays act.part dev.s) ;
-  QAction _ act st dev = ss (be dev.n ++ dev.s ++ act.s ! VPart ++ act.part ++ st.s) ;
+  QAction _ act _ dev = ss (be dev.n ++ dev.s ++ act.s ! VPart ++ act.part) ;
 
   DKindOne  k = {
     s = "the" ++ k.s ! Sg ; 
@@ -42,8 +45,8 @@
   light = mkNoun "light" ;
   fan = mkNoun "fan" ;
 
-  switchOn _ _ = mkVerb "switch" "swithced" "on" ;
-  switchOff _ _ = mkVerb "switch" "swithced" "off" ;
+  switchOn _ _ = mkVerb "switch" "switched" "on" ;
+  switchOff _ _ = mkVerb "switch" "switched" "off" ;
 
   dim _ _ = mkVerb "dim" "dimmed" [] ;
 
@@ -70,15 +73,6 @@
     Sg => "is" ;
     Pl => "are"
     } ;
-
-  hidden : SS = ss [] ;
-lin
-  switchable_light = hidden ;
-  switchable_fan = hidden ;
-  dimmable_light = hidden ;
-
-  statelike_switchOn _ _ = hidden ;
-  statelike_switchOff _ _ = hidden ;
 
 }
 
diff --git a/examples/tutorial/smart/SmartFre.gf b/examples/tutorial/smart/SmartFre.gf
--- a/examples/tutorial/smart/SmartFre.gf
+++ b/examples/tutorial/smart/SmartFre.gf
@@ -19,14 +19,17 @@
   Action = {s : VForm => Str} ;
   Device = {s : Str ; g : Gender ; n : Number} ;
   Location = {s : Number => Str ; g : Gender} ; 
+  Switchable = {} ;
+  Dimmable = {} ;
+  Statelike = {} ;
 
 lin
   UCommand  c = c ;
   UQuestion q = q ;
 
   CAction _ act dev = ss (act.s ! VInf ++ dev.s) ;
-  QAction _ act st dev = 
-    ss (dev.s ++ est dev.g dev.n ++ act.s ! VPart dev.g dev.n ++ st.s) ;
+  QAction _ act _ dev = 
+    ss (dev.s ++ est dev.g dev.n ++ act.s ! VPart dev.g dev.n) ;
 
   DKindOne  k = {
     s = defArt k.g ++ k.s ! Sg ; 
@@ -82,14 +85,6 @@
     } ;
 
   defArt : Gender -> Str = \g -> case g of {Masc => "le" ; Fem => "la"} ;
-
-lin
-  switchable_light = ss [] ;
-  switchable_fan  = ss [] ;
-  dimmable_light  = ss [] ;
-
-  statelike_switchOn _ _ = ss [] ;
-  statelike_switchOff _ _ = ss [] ;
 
 }
 
diff --git a/examples/tutorial/smart/SmartI.gf b/examples/tutorial/smart/SmartI.gf
--- a/examples/tutorial/smart/SmartI.gf
+++ b/examples/tutorial/smart/SmartI.gf
@@ -14,18 +14,21 @@
   Action = V2 ;
   Device = NP ;
   Location = N ;
+  Switchable = {} ;
+  Dimmable = {} ;
+  Statelike = {} ;
 
 lin
   UCommand  c = mkUtt politeImpForm c ;
   UQuestion q = mkUtt q ;
 
   CAction _ act dev = mkImp act dev ;
-  QAction _ act st dev = 
-    mkQS anteriorAnt (mkQCl (mkCl dev (passiveVP act))) ; ---- show empty proof
+  QAction _ act _ dev = 
+    mkQS anteriorAnt (mkQCl (mkCl dev (passiveVP act))) ;
 
-  DKindOne k = mkNP defSgDet k ;
-  DKindMany k = mkNP defPlDet k ;
-  DLoc _ dev loc = mkNP dev (mkAdv in_Prep (mkNP defSgDet loc)) ;
+  DKindOne k = mkNP the_Det k ;
+  DKindMany k = mkNP thePl_Det k ;
+  DLoc _ dev loc = mkNP dev (mkAdv in_Prep (mkNP the_Det loc)) ;
 
   light = light_N ;
   fan = fan_N ;
@@ -37,14 +40,5 @@
 
   kitchen = kitchen_N ;
   livingRoom = livingRoom_N ;
-  
-lin
-  switchable_light = ss [] ;
-  switchable_fan  = ss [] ;
-  dimmable_light  = ss [] ;
-
-  statelike_switchOn _ _ = ss [] ;
-  statelike_switchOff _ _ = ss [] ;
-
 
 }
diff --git a/gf.cabal b/gf.cabal
--- a/gf.cabal
+++ b/gf.cabal
@@ -1,8 +1,9 @@
 name: gf
-version: 3.1.6.2
-cabal-version: >= 1.2
+version: 3.2
+
+cabal-version: >= 1.8
 build-type: Custom
-license: GPL
+license: OtherLicense
 license-file: LICENSE
 category: Natural Language Processing, Compiler
 synopsis: Grammatical Framework
@@ -19,7 +20,9 @@
                  array,
                  containers,
                  bytestring,
-                 random
+                 random,
+                 pretty,
+                 mtl
   ghc-options: -O2
   hs-source-dirs: src/compiler src/runtime/haskell
   extensions: 
@@ -42,6 +45,9 @@
     PGF.VisualizeTree
     PGF.Printer
     PGF.Probabilistic
+    PGF.Forest
+    PGF.Optimize
+    PGF.Signature
     GF.Data.TrieMap
     GF.Data.Utilities
     GF.Data.SortedList
@@ -54,6 +60,7 @@
     Data.Binary.Put
     Data.Binary.Get
     Data.Binary.Builder
+    Data.Binary.IEEE754
 
 executable gf
   build-depends: base >= 4.2,
@@ -79,27 +86,25 @@
   main-is: GF.hs
   other-modules:
     GF.Data.BacktrackM
-    GF.JavaScript.AbsJS
-    GF.JavaScript.PrintJS
-    GF.Infra.CompactPrint
     GF.Data.TrieMap
     GF.Data.Utilities
     GF.Data.SortedList
     GF.Data.ErrM
     GF.Data.Operations
-    GF.Infra.Ident
-    GF.Grammar.Predef
     GF.Data.Str
-    GF.Data.Zipper
+    GF.JavaScript.AbsJS
+    GF.JavaScript.PrintJS
+    GF.Infra.Ident
+    GF.Infra.Modules
     GF.Infra.GetOpt
     GF.Infra.Option
     GF.Infra.UseIO
+    GF.Infra.CheckM
     GF.Command.Commands
     GF.Command.Interpreter
     GF.Command.Abstract
     GF.Command.Parse
     GF.Command.Importing
-    GF.Infra.Modules
     GF.Grammar
     GF.Grammar.Lexer
     GF.Grammar.Parser
@@ -114,22 +119,21 @@
     GF.Grammar.Printer
     GF.Grammar.ShowTerm
     GF.Grammar.Binary
-    GF.Infra.CheckM
     GF.Compile.Update
     GF.Compile.CheckGrammar
     GF.Compile.Refresh
     GF.Compile.Rename
     GF.Compile.ReadFiles
     GF.Compile.GrammarToPGF
-    GF.Compile.Concrete.TypeCheck
-    GF.Compile.Concrete.Compute
-    GF.Compile.Concrete.AppPredefined
-    GF.Compile.Abstract.TC
-    GF.Compile.Abstract.TypeCheck
-    GF.Compile.Abstract.Compute
+    GF.Compile.ToAPI
+    GF.Compile.TypeCheck.Abstract
+    GF.Compile.TypeCheck.Concrete
+    GF.Compile.TypeCheck.TC
+    GF.Compile.Compute.Abstract
+    GF.Compile.Compute.Concrete
+    GF.Compile.Compute.AppPredefined
     GF.Compile.Optimize
     GF.Compile.SubExOpt
-    GF.Compile.ModDeps
     GF.Compile.GetGrammar
     GF.Compile.PGFtoHaskell
     GF.Compile.PGFtoProlog
@@ -150,6 +154,7 @@
     PGF.TypeCheck
     PGF.Binary
     PGF.Printer
+    PGF.Optimize
     GFC
     GFI
 
diff --git a/index.html b/index.html
--- a/index.html
+++ b/index.html
@@ -2,11 +2,7 @@
 <HTML>
 <HEAD>
 <TITLE>GF - Grammatical Framework</TITLE>
-<style>
-div.center { text-align: center; }
-h1,h2,h3 { font-family: sans-serif; }
-div.news { font-size: small; }
-</style>
+<link rel=stylesheet href="css/style.css">
 </HEAD>
 
 <BODY>
@@ -15,40 +11,44 @@
 <IMG SRC="doc/Logos/gf0.png" alt="">
 <H1>Grammatical Framework</H1>
 <P>
-Version 3.1
+Version 3.2
 <br>
-December 2009
+December 2010
+
 <P>
 <font size=+2>
 [ <A HREF="demos/index.html">Demos</A>
-| <A HREF="download/index.html">Download</A>
+| <A HREF="http://www.grammaticalframework.org/download/index.html">Download</A>
 | <A HREF="lib/doc/synopsis.html">Libraries</A>
 | <A HREF="doc/gf-refman.html">Reference</A>
-| <A HREF="doc/gf-tutorial.html">Tutorial</A>
+| <A HREF="doc/tutorial/gf-tutorial.html">Tutorial</A>
+| <A HREF="doc/gf-quickstart.html">QuickStart</A>
+| <A HREF="http://groups.google.com/group/gf-dev">UserGroup</A>
 ] 
 </font>
 <P>
-[ <A HREF="doc/gf-developers.html">Developers</A>
+[ <A HREF="http://code.google.com/p/grammatical-framework/wiki/SideBar?tm=6">ForDevelopers</A>
 | <A HREF="doc/gf-people.html">People</A>
 | <A HREF="doc/gf-bibliography.html">Publications</A>
 | <A HREF="doc/gf-reference.html">QuickRefCard</A>
-| <A HREF="doc/resource-tutorial.pdf">LibTutorial</A>
+| <A HREF="doc/gf-lrec-2010.pdf">LibTutorial</A>
+| <A HREF="http://www.molto-project.eu">MOLTO</A>
+| <A HREF="http://school.grammaticalframework.org">SummerSchool</A>
 ] 
 </div>
 <H2>News</H2>
 
-<div class=news>
-<p>15 December 2009:
-<ul class=news>
-  <li><strong>GF version 3.1 released</strong>.
-    See the <a href="download/index.html">Download</a> page.
-  <li>There is now a
-    <a href="http://groups.google.com/group/gf-dev">GF Google Group</a>
-    where developers and users can discuss GF.
-  <li>There is now a
-    <a href="http://code.google.com/p/grammatical-framework/">GF Project page on
-      Google Code</a>, with a bug tracker among other things.
-</ul>
+<div class=news2>
+
+<dl>
+<dt>2010-12-23: <strong>GF 3.2 released!</strong>
+    <a href="download/release-3.2.html">Release notes</a>
+<dt>2010-12-22:
+  <A HREF="http://school.grammaticalframework.org">GF Summer School</A>
+  in Barcelona, 15-26 August 2011.
+</dl>
+  
+
 </div>
 
 <H2>What is GF</H2>
@@ -78,26 +78,25 @@
 GF can be used for building
 </P>
 <UL>
-<LI><A HREF="http://tournesol.cs.chalmers.se:41296">text translators</A>
-<LI><A HREF="http://tournesol.cs.chalmers.se:41296/fridge">multilingual web gadgets</A>
-<LI><A HREF="http://www.cs.chalmers.se/~bringert/gf/translatespeech.html">speech translators</A>
+<LI><A HREF="http://grammaticalframework.org:41296">translation systems</A>
+<LI><A HREF="http://grammaticalframework.org:41296/minibar/minibar.html">multilingual web gadgets</A>
 <LI><A HREF="http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html">natural-language interfaces</A>
-<LI><A HREF="http://www.cs.chalmers.se/~markus/gramlets/letter-applet.html">multilingual authoring systems</A>
-<LI><A HREF="http://www.cs.chalmers.se/~bringert/xv/pizza/">dialogue systems</A>
-<LI><A HREF="lib/resource/doc/synopsis.html">natural language resources</A>
+<LI><A HREF="http://www.youtube.com/watch?v=1bfaYHWS6zU">dialogue systems</A>
+<LI><A HREF="lib/doc/synopsis.html">natural language resources</A>
 </UL>
 
 <H2>Availability</H2>
 <P>
 GF is <B>open-source</B>, licensed under <A HREF="LICENSE">GPL</A> (the program) and 
-<A HREF="lib/LICENSE">LGPL</A> (the libraries). It
+<A HREF="./LICENSE">LGPL</A> and <A HREF="./LICENSE">BSD</A> (the libraries). It
 is available for 
 </P>
 <UL>
 <LI>Linux
 <LI>Mac OS X
 <LI>Windows
-<LI>via compilation to JavaScript, almost any platform that has a web browser
+<li>Android mobile platform (via Java; runtime)
+<LI>via compilation to JavaScript, almost any platform that has a web browser (runtime)
 </UL>
 
 <H2>Projects</H2>
@@ -127,7 +126,9 @@
   multilingual generation of mathematical exercises (commercial project)
 <LI><A HREF="http://spraakbanken.gu.se/sal/">SALDO</A>: 
   Swedish morphological dictionary based on rules developed for GF and
-  <A HREF="http://www.cs.chalmers.se/~markus/FM/">Functional Morphology</A>
+  <A HREF="http://www.cse.chalmers.se/alumni/markus/FM/">Functional Morphology</A>
+<LI><a href="http://www.molto-project.eu">MOLTO</a>:
+  multilingual online translation.
 </UL>
 
 <P>
@@ -136,7 +137,7 @@
 </P>
 <H2>Programming in GF</H2>
 <P>
-GF is easy to learn by following the <A HREF="doc/gf-tutorial.html">tutorial</A>. 
+GF is easy to learn by following the <A HREF="doc/tutorial/gf-tutorial.html">tutorial</A>. 
 You can write your first translator in 15 minutes.
 </P>
 <P>
@@ -147,6 +148,7 @@
 </P>
 <UL>
 <LI>Haskell
+<li>Java, in particular the Android platform
 <LI>JavaScript
 <LI>Speech recognition: HTK/ATK, Nuance, JSGF
 </UL>
@@ -171,6 +173,7 @@
 support for an increasing number of languages, currently including
 </P>
 <OL>
+<LI>Amharic (partial)
 <LI>Arabic (partial)
 <LI>Bulgarian
 <LI>Catalan
@@ -180,25 +183,39 @@
 <LI>Finnish
 <LI>French
 <LI>German 
-<LI>Hindi/Urdu (fragments)
+<LI>Hindi (fragments)
 <LI><A HREF="http://www.interlingua.com/">Interlingua</A>
 <LI>Italian
 <LI>Latin (fragments)
 <LI>Norwegian bokmål
 <LI>Polish
+<li>Punjabi
 <LI>Romanian
 <LI>Russian
 <LI>Spanish
 <LI>Swedish
 <LI>Thai (fragments)
+<LI>Turkish (fragments)
+<LI>Urdu
 </OL>
 
 <P>
 Adding a language to the resource library takes 3 to 9 
 months - contributions 
-are welcome! You can start with the <A HREF="doc/resource-tutorial.pdf">resource grammarian's tutorial</A>.
+are welcome! You can start with the <A HREF="doc/gf-lrec-2010.pdf">resource grammarian's tutorial</A>.
 </P>
 
 <!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
 <!-- cmdline: txt2tags -thtml index.txt -->
+
+
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+try {
+var pageTracker = _gat._getTracker("UA-7811807-3");
+pageTracker._trackPageview();
+} catch(err) {}</script>
 </BODY></HTML>
diff --git a/index.txt b/index.txt
deleted file mode 100644
--- a/index.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-
-%!postproc(html): "#BECE" "<center>"
-%!postproc(html): "#ENCE" "</center>"
-%!postproc(html): "#BESMALL" "<font size=-1>"
-%!postproc(html): "#ENSMALL" "</font>"
-%!postproc(html): "#BELARGE" "<font size=+2>"
-%!postproc(html): "#ENLARGE" "</font>"
-
-#BECE
-
-[doc/Logos/gf0.png]
-
-=Grammatical Framework=
-
-Version 3.1
-
-December 2009
-
-
-#BELARGE
-
-``[`` [Demos demos/index.html]
-``|`` [Download download/index.html]
-``|`` [Libraries lib/doc/synopsis.html]
-``|`` [Reference doc/gf-refman.html]
-``|`` [Tutorial doc/gf-tutorial.html]
-``]`` 
-
-#ENLARGE
-
-``[`` [Demos demos/index.html]
-``|`` [Download download/index.html]
-``|`` [Developers doc/gf-developers.html]
-``|`` [Libraries lib/doc/synopsis.html]
-``|`` [People doc/gf-people.html]
-``|`` [Publications doc/gf-bibliography.html]
-``|`` [QuickRefCard doc/gf-reference.html]
-``|`` [Reference doc/gf-refman.html]
-``|`` [Tutorial doc/gf-tutorial.html]
-``|`` [LibTutorial doc/resource-tutorial.pdf]
-``]`` 
-
-#ENCE
-
-
-#BESMALL
-
-==News==
-
-GF users mailing list and wiki - link forthcoming here!
-
-
-#ENSMALL
-
-
-==What is GF==
-
-GF, Grammatical Framework, is a programming language for 
-**multilingual grammar applications**. It is
-- a **special-purpose language for grammars**, like YACC, Bison, Happy, BNFC, 
-  but not restricted to programming languages
-- a **functional language**, like Haskell, Lisp, OCaml, Scheme, SML,
-  but specialized to grammar writing
-- a **natural language processing framework**, like LKB, XLE, Regulus,
-  but based on functional programming and type theory
-- a **categorial grammar formalism**, like ACG, CCG,
-  but different and equipped with different tools
-- a **logical framework**, like Agda, Coq, Isabelle,
-  but equipped with concrete syntax in addition to logic
-
-
-Don't worry if you don't know most of the references above - but if you do know at
-least one, it may help you to get a first idea of what GF is.
-
-
-==Applications==
-
-GF can be used for building
-- [text translators http://tournesol.cs.chalmers.se:41296]
-- [multilingual web gadgets http://tournesol.cs.chalmers.se:41296/fridge]
-- [speech translators http://www.cs.chalmers.se/~bringert/gf/translatespeech.html]
-- [natural-language interfaces http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html]
-% - [multilingual web pages http://www.restauranggajden.se/tomas/]
-- [multilingual authoring systems http://www.cs.chalmers.se/~markus/gramlets/letter-applet.html]
-- [dialogue systems http://www.cs.chalmers.se/~bringert/xv/pizza/]
-% - [language training systems http://csmisc14.cs.chalmers.se/~bjorn/langtrain.cgi]
-- [natural language resources lib/resource/doc/synopsis.html]
-
-
-==Availability==
-
-GF is **open-source**, licensed under [GPL LICENSE] (the program) and 
-[LGPL lib/LICENSE] (the libraries). It
-is available for 
-- Linux
-- Mac OS X
-- Windows
-- via compilation to JavaScript, almost any platform that has a web browser
-
-
-==Projects==
-
-GF was first created in 1998 at 
-[Xerox Research Centre Europe http://www.xrce.xerox.com/], 
-Grenoble, in the project
-Multilingual Document Authoring. At Xerox, it was used for prototypes including
-a restaurant phrase book,
-a database query system,
-a formalization of an alarm system instructions with translations to 5 languages, and
-an authoring system for medical drug descriptions.
-
-Later projects using GF and involving third parties include, in chronological order,
-- [GF-Alfa http://www.cs.chalmers.se/~hallgren/Alfa/Tutorial/GFplugin.html]: 
-  natural language interface to formal proofs
-- [Efficient http://efficient.citi.tudor.lu/index_noframe.html]:
-  authoring tool for business models.
-- [GF-KeY http://www.key-project.org/]: 
-  authoring and translation of software specifications
-- [TALK http://www.talk-project.org]: 
-  multilingual and multimodal spoken dialogue systems
-- [WebALT http://webalt.math.helsinki.fi/]: 
-  multilingual generation of mathematical exercises (commercial project)
-- [SALDO http://spraakbanken.gu.se/sal/]: 
-  Swedish morphological dictionary based on rules developed for GF and
-  [Functional Morphology http://www.cs.chalmers.se/~markus/FM/]
-
-
-Academically, GF has been used in four PhD theses and resulted in around
-fifty scientific publications (see [GF publication list doc/gf-bibliography.html]).
-
-
-==Programming in GF==
-
-GF is easy to learn by following the [tutorial doc/gf-tutorial.html]. 
-You can write your first translator in 15 minutes.
-
-GF has an interactive command interpreter, as well as a batch compiler. 
-Grammars can be compiled to parser and translator code in many different 
-formats.  These components can then be embedded in applications written 
-in other programming languages. The formats currently supported are:
-- Haskell
-- JavaScript
-- Speech recognition: HTK/ATK, Nuance, JSGF
-
-
-The GF programming language is high-level and advanced, featuring
-- static type checking
-- higher-order functions
-- dependent types
-- pattern matching with data constructors and regular expressions
-- module system with multiple inheritance and parametrized modules
-
-
-==Libraries==
-
-Libraries are at the heart of modern software engineering. In natural language 
-applications, libraries are a way to cope with thousands of details involved in
-syntax, lexicon, and inflection. The 
-[GF resource grammar library lib/doc/synopsis.html] has
-support for an increasing number of languages, currently including
-+ Arabic (partial)
-+ Bulgarian
-+ Catalan
-+ Danish
-+ Dutch
-+ English
-+ Finnish
-+ French
-+ German 
-+ Hindi/Urdu (fragments)
-+ [Interlingua http://www.interlingua.com/]
-+ Italian
-+ Latin (fragments)
-+ Norwegian bokmål
-+ Polish
-+ Romanian
-+ Russian
-+ Spanish
-+ Swedish
-+ Thai (fragments)
-
-
-Adding a language to the resource library takes 3 to 9 
-months - contributions 
-are welcome! You can start with the [resource grammarian's tutorial doc/resource-tutorial.pdf].
-
-% [doc/10lang-small.png]
-
-
diff --git a/lib/doc/Makefile b/lib/doc/Makefile
--- a/lib/doc/Makefile
+++ b/lib/doc/Makefile
@@ -1,6 +1,6 @@
 .PHONY: abstract synopsis
 
-all: synopsis abstract
+all: exx synopsis
 
 index:
 	txt2tags -thtml index.txt
@@ -14,3 +14,22 @@
 	gfdoc -txthtml ../src/abstract/*.gf
 	mv ../src/abstract/*.html abstract
 
+exx-script:
+	runghc MkExx.hs <api-examples.txt >api-examples.gfs
+exx: exx-script
+	gf -retain -s ../alltenses/TryBul.gfo <api-examples.gfs >api-examples-Bul.txt
+	gf -retain -s ../alltenses/TryCat.gfo <api-examples.gfs >api-examples-Cat.txt
+	gf -retain -s ../alltenses/TryDan.gfo <api-examples.gfs >api-examples-Dan.txt
+	gf -retain -s ../alltenses/TryDut.gfo <api-examples.gfs >api-examples-Dut.txt
+	gf -retain -s ../alltenses/TryEng.gfo <api-examples.gfs >api-examples-Eng.txt
+	gf -retain -s ../alltenses/TryFin.gfo <api-examples.gfs >api-examples-Fin.txt
+	gf -retain -s ../alltenses/TryFre.gfo <api-examples.gfs >api-examples-Fre.txt
+	gf -retain -s ../alltenses/TryGer.gfo <api-examples.gfs >api-examples-Ger.txt
+	gf -retain -s ../alltenses/TryIta.gfo <api-examples.gfs >api-examples-Ita.txt
+	gf -retain -s ../alltenses/TryNor.gfo <api-examples.gfs >api-examples-Nor.txt
+	gf -retain -s ../alltenses/TryPol.gfo <api-examples.gfs >api-examples-Pol.txt
+	gf -retain -s ../alltenses/TryRon.gfo <api-examples.gfs >api-examples-Ron.txt
+	gf -retain -s ../alltenses/TryRus.gfo <api-examples.gfs >api-examples-Rus.txt
+	gf -retain -s ../alltenses/TrySpa.gfo <api-examples.gfs >api-examples-Spa.txt
+	gf -retain -s ../alltenses/TrySwe.gfo <api-examples.gfs >api-examples-Swe.txt
+	gf -retain -s ../alltenses/TryUrd.gfo <api-examples.gfs >api-examples-Urd.txt
diff --git a/lib/doc/MkExx.hs b/lib/doc/MkExx.hs
new file mode 100644
--- /dev/null
+++ b/lib/doc/MkExx.hs
@@ -0,0 +1,72 @@
+-- make a script for computing examples
+-- usage: runghc MkExx.hs <koe.txt >koe.gfs
+-- then:  gf -retain -s ../alltenses/TryRon.gfo <koe.gfs
+-- called automatically by 'make exx'
+
+main = interact (unlines . concatMap mkScript . takeWhile (/="--.") . lines)
+
+mkScript l = case l of
+  ' ':_ -> 
+     let ident = mkIdent $ unwords $ takeWhile (/="--") $ words l
+     in [add $ psq ident]
+  '-':_ -> []
+  _ -> [
+     add $ psq l,
+     add $ "cc -one " ++ l,
+     add $ psq "*"
+     ]
+
+add = ('\n':)
+
+psq s = "ps \"" ++ s ++ "\""
+
+-- makes mkUtt : QS -> Utt to mkUtt-QS-Utt
+mkIdent :: String -> String
+mkIdent = concatMap unspec where
+  unspec c = case c of
+    ' ' -> ""
+    '>' -> ""
+    '(' -> ""
+    ')' -> ""
+    ':' -> "-"
+    _   -> [c]
+
+
+
+langsCoding = [
+  (("amharic",  "Amh"),""),
+  (("arabic",   "Ara"),""),
+  (("bulgarian","Bul"),""),
+  (("catalan",  "Cat"),"Romance"),
+  (("danish",   "Dan"),"Scand"),
+  (("dutch",    "Dut"),""),
+  (("english",  "Eng"),""),
+  (("finnish",  "Fin"),""),
+  (("french",   "Fre"),"Romance"),
+  (("hindi",    "Hin"),"Hindustani"),
+  (("german",   "Ger"),""),
+  (("interlingua","Ina"),""),
+  (("italian",  "Ita"),"Romance"),
+  (("latin",    "Lat"),""),
+  (("norwegian","Nor"),"Scand"),
+  (("polish",   "Pol"),""),
+  (("punjabi",  "Pnb"),""),
+  (("romanian", "Ron"),""),
+  (("russian",  "Rus"),""),
+  (("spanish",  "Spa"),"Romance"),
+  (("swedish",  "Swe"),"Scand"), 
+  (("thai",     "Tha"),""),
+  (("turkish",  "Tur"),""),
+  (("urdu",     "Urd"),"Hindustani")
+  ]
+
+
+langs = map fst langsCoding
+
+-- languagues for which Try is normally compiled
+langsLang = langs `except` langsIncomplete
+
+-- languages for which Lang can be compiled but which are incomplete
+langsIncomplete = ["Amh","Ara","Hin","Lat","Pnb","Rus","Tha","Tur","Urd"]
+
+except ls es = filter (flip notElem es . snd) ls
diff --git a/lib/doc/MkExxTable.hs b/lib/doc/MkExxTable.hs
new file mode 100644
--- /dev/null
+++ b/lib/doc/MkExxTable.hs
@@ -0,0 +1,82 @@
+module MkExxTable (getApiExx, ApiExx, prApiEx) where
+
+import System
+import qualified Data.Map as M
+import Data.Char
+
+main = do
+  xx <- getArgs 
+  aexx <- getApiExx xx
+  return () -- putStrLn $ prApiExx aexx
+
+getApiExx :: [FilePath] -> IO ApiExx
+getApiExx xx = do
+  s  <- readFile (head xx)
+  let aet = getApiExxTrees $ filter validOutput $ lines s 
+  aeos <- mapM readApiExxOne xx
+  let aexx = mkApiExx $ ("API",aet) : aeos
+--  putStrLn $ prApiExx aexx
+  return aexx
+
+readApiExxOne file = do
+  s <- readFile file
+  let lang = reverse (take 3 (drop 4 (reverse file))) -- api-exx-*Eng*.txt
+  let api = getApiExxOne $ filter validOutput $ lines s
+  putStrLn $ unlines $ prApiEx api ---
+  return (lang,api)
+
+-- map function -> language -> example
+type ApiExx = M.Map String (M.Map String String)
+
+-- map function -> example
+type ApiExxOne = M.Map String String
+
+-- get a map function -> example
+getApiExxOne :: [String] -> ApiExxOne
+getApiExxOne = M.fromList . pairs . map cleanUp
+ where
+   pairs ss = case ss of
+     f:_:e:rest -> (f,e) : pairs (drop 1 (dropWhile (notElem '*') rest))
+     _ -> []
+
+-- get the map function -> tree
+getApiExxTrees :: [String] -> ApiExxOne
+getApiExxTrees = M.fromList . pairs . map cleanUp
+ where
+   pairs ss = case ss of
+     f:e:_:rest -> (f,e) : pairs (drop 1 (dropWhile (notElem '*') rest))
+     _ -> []
+
+-- remove leading prompts and spaces
+cleanUp = dropWhile (flip elem " >")
+
+-- only accept lines starting with prompts (to eliminate multi-line gf uncomputed output)
+validOutput = (==">") . take 1
+
+mkApiExx :: [(String,ApiExxOne)] -> ApiExx
+mkApiExx ltes = 
+  M.fromList [(t, 
+      M.fromList [(l,maybe "NONE" id (M.lookup t te)) | (l,te) <- ltes]) 
+    | t <- M.keys firstL]
+  where
+    firstL = snd (head ltes)
+
+prApiExx :: ApiExx -> String
+prApiExx aexx = unlines 
+  [unlines (t:prApiEx lexx) | (t,lexx) <- M.toList aexx]
+
+prApiEx :: M.Map String String -> [String]
+prApiEx apexx = case M.toList apexx of
+  (a,e):lexx -> (a ++ ": ``" ++ unwords (words e) ++ "``"):
+                [l ++ ": //" ++ mkEx e ++ "//" | (l,e) <- lexx]
+
+mkEx e = case words e of
+  "atomic":"term":_ -> "*"
+  "[]":_ -> "''"
+  es -> unwords (bind es)
+
+bind ws = case ws of
+         w : "&+" : u : ws2 -> bind ((w ++ u) : ws2)
+         "&+":ws2           -> bind ws2
+         w : ws2            -> w : bind ws2
+         _ -> ws
diff --git a/lib/doc/MkSynopsis.hs b/lib/doc/MkSynopsis.hs
--- a/lib/doc/MkSynopsis.hs
+++ b/lib/doc/MkSynopsis.hs
@@ -1,10 +1,24 @@
+import MkExxTable
 import System
 import Char
 import List
+import qualified Data.ByteString.Char8 as BS
+import qualified Data.Map as M
+---import Debug.Trace ----
 
 type Cats = [(String,String,String)]
 type Rules = [(String,String,String)]
 
+-- the file generated
+synopsis = "synopsis.txt"
+
+-- the language in which revealed examples are shown
+revealedLang = "Eng"
+
+-- all languages shown
+apiExxFiles = ["api-examples-" ++ lang ++ ".txt" | lang <- words 
+  "Bul Cat Dan Dut Eng Fin Fre Ger Ita Nor Pol Ron Rus Spa Swe Urd"]
+
 main = do
   xx <- getArgs
   let isLatex = case xx of
@@ -14,8 +28,17 @@
   cs2 <- getCats catAPI
   let cs = sortCats (cs1 ++ cs2)
   writeFile synopsis "GF Resource Grammar Library: Synopsis"
-  append "B. Bringert and A. Ranta"
+  append "B. Bringert, T. Hallgren, and A. Ranta"
   space
+  append "%!Encoding:utf-8"
+  append "%!style(html): ./revealpopup.css"
+  space
+  append "%!postproc(html): '#divreveal'  '<div class=reveal>'"
+  append "%!postproc(html): '#divpopup'  '<div class=popup>'"
+  append "%!postproc(html): '#ediv'  '</div>'"
+  append "%!postproc(html): '#UL'  '<ul>'"
+  append "%!postproc(html): '#EUL'  '</ul>'"
+  append "%!postproc(html): '#LI'  '<li>'"
   append "%!postproc(html): '(SRC=\"categories.png\")'  '\\1 USEMAP=\"#categories\"'"  
   append "%!postproc(html): '#LParadigms'  '<a name=\"RParadigms\"></a>'"
   append "%!postproc(tex): '#LParadigms' ''"
@@ -38,9 +61,14 @@
   space
   link "Source 2:" structuralAPI
   space
-  rs <- getRules syntaxAPI
-  rs2 <- getRules structuralAPI
-  delimit $ mkSplitTables True isLatex cs $ rs ++ rs2
+  apiExx <- getApiExx apiExxFiles
+  rs <- getRules apiExx syntaxAPI
+---  putStrLn $ unlines ["p -cat=" ++ last (words t) ++ 
+---               " \"" ++ e ++ "\"" | (_,t,e) <- rs, not (null e)] ----
+  rs2 <- getRules apiExx structuralAPI
+  let rss = rs ++ rs2
+---  mapM_ putStrLn [f ++ " " ++ e | (f,_,e) <- rss]
+  delimit $ mkSplitTables True isLatex apiExx cs rss 
   space
 --  title "Structural Words"
 --  space
@@ -58,8 +86,12 @@
   space
   include "synopsis-example.txt"
   space
+  title "Table of Contents"
+  space
+  append "%%toc"
+  space
   let format = if isLatex then "tex" else "html"
-  system $ "txt2tags -t" ++ format ++ " --toc " ++ synopsis
+  system $ "txt2tags -t" ++ format ++ " " ++ " --toc " ++ synopsis
   if isLatex then (system $ "pdflatex synopsis.tex") >> return () else return ()
 
 addToolTips :: Cats -> [String]
@@ -81,15 +113,15 @@
          (expl,ex) = span (/="e.g.") exp
        _ -> getrs rs ss2
 
-rulesTable :: Bool -> Bool -> Cats -> FilePath -> IO [String]
-rulesTable hasEx isLatex cs file = do
-  rs <- getRules file
-  return $ mkTable hasEx isLatex cs rs
+rulesTable :: ApiExx ->  Bool -> Bool -> Cats -> FilePath -> IO [String]
+rulesTable aexx hasEx isLatex cs file = do
+  rs <- getRules aexx file
+  return $ mkTable hasEx isLatex aexx cs rs
 
 
-getRules :: FilePath -> IO Rules
-getRules file = do
-  ss <- readFile file >>= return . lines
+getRules :: ApiExx -> FilePath -> IO Rules
+getRules aexx file = do
+  ss <- readFileC (coding file) file >>= return . filter (not . hiddenLine) . lines
   return $ getrs [] ss
  where
    getrs rs ss = case ss of
@@ -102,7 +134,7 @@
        _ -> getrs rs ss2
    rule s = (name, typ, ex)
        where 
-         ws = takeWhile (/="--#") $ words s
+         ws = takeWhile (flip notElem ["--#", "--:"]) $ words s
          name = head ws
          (t,e) = span (/="--") (tail ws)
          typ = unwords $ filtype (drop 1 t)
@@ -119,7 +151,7 @@
   space
   link "source" file
   space
-  rs <- rulesTable False isLatex cs file
+  rs <- rulesTable M.empty False isLatex cs file
   space
   delimit rs
   space
@@ -131,33 +163,62 @@
 
 -- Makes one table per result category.
 -- Adds a subsection header for each table.
-mkSplitTables :: Bool -> Bool -> Cats -> Rules -> [String]
-mkSplitTables hasEx isLatex cs = concatMap t . addLexicalCats cs . sortRules
+mkSplitTables :: Bool -> Bool -> ApiExx -> Cats -> Rules -> [String]
+mkSplitTables hasEx isLatex aexx cs = concatMap t . addLexicalCats cs . sortRules
   where t (c, xs) = [subtitle c expl] ++ tableOrLink
          where 
            expl = case [e | (n,e,_) <- cs, n == c] of
                         []  -> ""
                         e:_ -> e
-           tableOrLink = if null xs then parad else mkTable hasEx isLatex cs xs
+           tableOrLink = if null xs then parad else mkTable hasEx isLatex aexx cs xs
            parad = [
              "Lexical category, constructors given in",
              "[lexical paradigms #RParadigms]."
              ]
 
-mkTable :: Bool -> Bool -> Cats -> Rules -> [String]
-mkTable hasEx isLatex cs = inChunks chsize (\rs -> header : map (unwords . row) rs)
+mkTable :: Bool -> Bool -> ApiExx -> Cats -> Rules -> [String]
+mkTable hasEx isLatex aexx cs = inChunks chsize (\rs -> header : map (unwords . row) rs)
  where
   chsize = if isLatex then 40 else 1000
   header = if hasEx then "|| Function  | Type  | Example  ||" 
-                    else "|| Function  | Type  ||"
-  row (name,typ,ex) 
-         = if hasEx then ["|", name', "|", typ', "|", ex', "|"]
-                    else ["|", name', "|", typ', "|"]
+                    else "|| Function  | Type  | Explanation ||"
+  row (name,typ,ex) =
+         let ntyp = mkIdent (name ++ " : " ++ typ) in
+         if hasEx then ["|", name', "|", typ', "|", ex' ntyp, "|"]
+                  else ["|", name', "|", typ', "|", expl ntyp, "|"]
    where 
      name' = ttf name
      typ' = showTyp cs typ
-     ex' = if null ex then itf (takeWhile (/='_') name) else itf ex
+     ex' typ = let ex0 = if null ex then itf (takeWhile (/='_') name) else ex in 
+           case M.lookup typ aexx of
+             Just es -> mkExample es ex0
+             _ -> itf ex0
+     expl typ = if null ex then itf "-" else itf ex 
 
+-- make an example with hover-popup translations
+mkExample es ex = unwords [
+  "#divreveal",
+  itf (maybe ex id (M.lookup revealedLang es)), 
+  "#divpopup",
+  "#UL",
+  unwords ["#LI" ++ e | e <- prApiEx es],
+  "#EUL",
+  "#ediv",
+  "#ediv"
+  ]
+
+-- makes mkUtt : QS -> Utt to mkUtt-QS-Utt
+mkIdent :: String -> String
+mkIdent = concatMap unspec where
+  unspec c = case c of
+    ' ' -> ""
+    '>' -> ""
+    '(' -> ""
+    ')' -> ""
+    ':' -> "-"
+    _   -> [c]
+
+
 mkCatTable :: Bool -> Cats -> [String]
 mkCatTable isLatex cs = inChunks chsize (\rs -> header ++ map mk1 rs) cs
  where
@@ -168,7 +229,6 @@
 
 srcPath = ("../src" ++)
 
-synopsis = "synopsis.txt"
 commonAPI = srcPath "/abstract/Common.gf"
 catAPI    = srcPath "/abstract/Cat.gf"
 syntaxAPI = srcPath "/api/Constructors.gf"
@@ -177,6 +237,7 @@
   ("Bulgarian", srcPath "/bulgarian/ParadigmsBul.gf"),
   ("Catalan", srcPath "/catalan/ParadigmsCat.gf"),
   ("Danish", srcPath "/danish/ParadigmsDan.gf"),
+  ("Dutch", srcPath "/dutch/ParadigmsDut.gf"),
   ("English", srcPath "/english/ParadigmsEng.gf"),
   ("Finnish", srcPath "/finnish/ParadigmsFin.gf"),
   ("French",  srcPath "/french/ParadigmsFre.gf"),
@@ -198,12 +259,16 @@
 include s = append $ "%!include: " ++ s
 space = append "\n"
 delimit ss = mapM_ append ss
-link s f = append $ s ++ " [``" ++ fa ++ "`` " ++ f ++ "]" where
-  fa = "http://www.grammaticalframework.org/lib/resource" ++ dropWhile (=='.') f
+link s f = append $ s ++ " [``" ++ f ++ "`` " ++ fa ++ "]" where
+  fa = "http://www.grammaticalframework.org/lib" ++ dropWhile (=='.') f
 
 ttf s = "``" ++ s ++ "``"
 itf s = "//" ++ s ++ "//"
 
+hiddenLine s = case reverse (words s) of
+  "--%":_ -> True
+  _ -> False
+
 -----------------
 
 -- sort category synopsis by category, retain one table
@@ -244,3 +309,20 @@
         isCat cat = cat `notElem` ["Str","Int"]
                     && all (\c -> isAlphaNum c || c == '\'') cat
                     && isUpper (head cat)
+
+-- to work around GHC 6.12 file input
+readFileC cod file = do
+  let tmp = file ++ ".tmp"
+  case cod of
+    "utf8" -> readFile file
+    _ -> do
+      system $ "iconv -f ISO-8859-1 -t UTF-8 " ++ file ++ " >" ++ tmp
+      readFile tmp
+
+coding file = case language file of
+  "Pol" -> "utf8"
+  "Rus" -> "utf8"
+  _     -> "latin1"
+
+language = reverse . take 3 . drop 3 . reverse
+
diff --git a/lib/doc/api-examples.txt b/lib/doc/api-examples.txt
new file mode 100644
--- /dev/null
+++ b/lib/doc/api-examples.txt
@@ -0,0 +1,905 @@
+      mkText : Phr -> (Punct) -> (Text) -> Text  -- Does she sleep? Yes. 
+mkText (mkPhr (mkQS (mkCl she_NP sleep_V))) questMarkPunct (mkText (mkPhr yes_Utt) fullStopPunct)
+      mkText : Utt ->  Text    -- Yes. 
+mkText yes_Utt
+      mkText : S   ->  Text    -- She slept. 
+mkText (mkS pastTense (mkCl she_NP sleep_V))
+      mkText : Cl  ->  Text    -- She sleeps.
+mkText (mkCl she_NP sleep_V)
+      mkText : QS  ->  Text    -- Did she sleep? 
+mkText (mkQS pastTense (mkQCl (mkCl she_NP sleep_V)))
+      mkText : (Pol) -> Imp ->  Text    -- Don't sleep!
+mkText negativePol (mkImp sleep_V)
+      mkText : Text -> Text -> Text  -- Where? Here. When? Now! 
+mkText (mkText (mkPhr (mkUtt where_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt here_Adv)))) (mkText (mkPhr (mkUtt when_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt now_Adv)) exclMarkPunct))
+--      emptyText : Text  -- (empty text)  
+--emptyText
+      fullStopPunct  : Punct   -- .   
+mkText (mkPhr yes_Utt) fullStopPunct
+      questMarkPunct : Punct   -- ?   
+mkText (mkPhr yes_Utt) questMarkPunct
+      exclMarkPunct  : Punct   -- !   
+mkText (mkPhr yes_Utt) exclMarkPunct
+      mkPhr : (PConj) -> Utt -> (Voc) -> Phr   -- but sleep, my friend   
+mkPhr but_PConj (mkUtt (mkImp sleep_V)) (mkVoc (mkNP i_Pron friend_N))
+      mkPhr : S -> Phr   -- she won't sleep
+mkPhr (mkS futureTense negativePol (mkCl she_NP sleep_V))
+      mkPhr : Cl -> Phr   -- she sleeps
+mkPhr (mkCl she_NP sleep_V)
+      mkPhr : QS -> Phr   -- would she sleep
+mkPhr (mkQS conditionalTense (mkQCl (mkCl she_NP sleep_V)))  
+      mkPhr : Imp -> Phr  -- sleep
+mkPhr (mkImp sleep_V)
+      mkPConj : Conj -> PConj   -- and   
+mkPhr (mkPConj and_Conj) (mkUtt now_Adv)
+      mkVoc : NP -> Voc  -- my friend
+mkPhr yes_Utt (mkVoc (mkNP i_Pron friend_N))
+      mkUtt : S -> Utt                     -- she slept     
+mkUtt (mkS pastTense (mkCl she_NP sleep_V))
+      mkUtt : Cl -> Utt                     -- she sleeps  
+mkUtt (mkCl she_NP sleep_V)
+      mkUtt : QS -> Utt                    -- who didn't sleep
+mkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V))   
+      mkUtt : QCl -> Utt                   -- who sleeps 
+mkUtt (mkQCl who_IP sleep_V) 
+      mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt  -- don't be men
+mkUtt pluralImpForm negativePol (mkImp (mkVP man_N))
+      mkUtt : IP   -> Utt     -- who
+mkUtt who_IP
+      mkUtt : IAdv -> Utt     -- why   
+mkUtt why_IAdv
+      mkUtt : NP   -> Utt     -- this man   
+mkUtt (mkNP this_Det man_N)
+      mkUtt : Adv  -> Utt     -- here
+mkUtt here_Adv   
+      mkUtt : VP   -> Utt     -- to sleep  
+mkUtt (mkVP sleep_V)
+      mkUtt : CN   -> Utt     -- beer
+mkUtt (mkCN beer_N)      
+      mkUtt : AP   -> Utt     -- good
+mkUtt (mkAP good_A)   
+      mkUtt : Card -> Utt     -- five  
+mkUtt (mkCard (mkNumeral n5_Unit)) 
+      lets_Utt : VP ->  Utt  -- let's sleep
+mkPhr (lets_Utt (mkVP sleep_V))
+      positivePol : Pol   -- she sleeps [default]    
+mkS positivePol (mkCl she_NP sleep_V)
+      negativePol : Pol   -- she doesn't sleep    
+mkS negativePol (mkCl she_NP sleep_V)
+      simultaneousAnt : Ant   -- she sleeps [default]
+mkS simultaneousAnt (mkCl she_NP sleep_V)
+      anteriorAnt : Ant   -- she has slept       --# notpresent   
+mkS anteriorAnt (mkCl she_NP sleep_V)
+      presentTense     : Tense  -- she sleeps [default]   
+mkS presentTense (mkCl she_NP sleep_V)
+      pastTense        : Tense  -- she slept           --# notpresent   
+mkS pastTense (mkCl she_NP sleep_V)
+      futureTense      : Tense  -- she will sleep        --# notpresent  
+mkS futureTense (mkCl she_NP sleep_V)
+      conditionalTense : Tense  -- she would sleep       --# notpresent   
+mkS conditionalTense (mkCl she_NP sleep_V)
+      singularImpForm : ImpForm   -- be a man [default]
+mkUtt singularImpForm (mkImp (mkVP man_N))
+      pluralImpForm   : ImpForm   -- be men 
+mkUtt pluralImpForm (mkImp (mkVP man_N)) 
+      politeImpForm   : ImpForm   -- be a man [polite singular]  
+mkUtt politeImpForm (mkImp (mkVP man_N))
+      mkS : (Tense) -> (Ant) -> (Pol) -> Cl  -> S -- she wouldn't have slept  
+mkS conditionalTense anteriorAnt negativePol (mkCl she_NP sleep_V)
+      mkS : Conj -> S -> S -> S   -- she sleeps and I run    
+mkS and_Conj (mkS (mkCl she_NP sleep_V)) (mkS (mkCl i_NP run_V))
+      mkS : Conj -> ListS  -> S   -- she sleeps, I run and you walk  
+mkS and_Conj (mkListS (mkS (mkCl she_NP sleep_V)) (mkListS (mkS (mkCl i_NP run_V)) (mkS (mkCl (mkNP youSg_Pron) walk_V))))
+      mkS : Adv -> S -> S         -- today, she sleeps 
+mkS today_Adv (mkS (mkCl she_NP sleep_V))
+      mkCl : NP -> V -> Cl                -- she sleeps   
+mkCl she_NP sleep_V
+      mkCl : NP -> V2 -> NP -> Cl         -- she loves him
+mkCl she_NP love_V2 he_NP
+      mkCl : NP -> V3 -> NP -> NP -> Cl   -- she sends it to him
+mkCl she_NP send_V3 it_NP he_NP
+      mkCl : NP  -> VV -> VP -> Cl        -- she wants to sleep
+mkCl she_NP want_VV (mkVP sleep_V)
+      mkCl : NP  -> VS -> S  -> Cl        -- she says that I sleep
+mkCl she_NP say_VS (mkS (mkCl i_NP sleep_V))
+      mkCl : NP  -> VQ -> QS -> Cl        -- she wonders who sleeps
+mkCl she_NP wonder_VQ (mkQS (mkQCl who_IP sleep_V))
+      mkCl : NP  -> VA -> A  -> Cl        -- she becomes old
+mkCl she_NP become_VA old_A
+      mkCl : NP  -> VA -> AP -> Cl        -- she becomes very old
+mkCl she_NP become_VA (mkAP very_AdA old_A)
+      mkCl : NP  -> V2A -> NP -> A  -> Cl -- she paints it red
+mkCl she_NP paint_V2A it_NP red_A
+      mkCl : NP  -> V2A -> NP -> AP -> Cl -- she paints it very red
+mkCl she_NP paint_V2A it_NP (mkAP red_A)
+      mkCl : NP  -> V2S -> NP -> S -> Cl  -- she answers to him that we sleep
+mkCl she_NP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))
+      mkCl : NP  -> V2Q -> NP -> QS -> Cl -- she asks him who sleeps 
+mkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))
+      mkCl : NP  -> V2V -> NP -> VP -> Cl -- she begs him to sleep
+mkCl she_NP beg_V2V he_NP (mkVP sleep_V)
+      mkCl : NP -> A  -> Cl       -- she is old
+mkCl she_NP old_A
+      mkCl : NP -> A -> NP -> Cl  -- she is older than he   
+mkCl she_NP old_A he_NP
+      mkCl : NP -> A2 -> NP -> Cl -- she is married to him 
+mkCl she_NP married_A2 he_NP
+      mkCl : NP -> AP -> Cl    -- she is very old 
+mkCl she_NP (mkAP very_AdA old_A)
+      mkCl : NP -> NP -> Cl    -- she is the woman   
+mkCl she_NP (mkNP the_Det woman_N)
+      mkCl : NP -> N -> Cl     -- she is a woman   
+mkCl she_NP woman_N
+      mkCl : NP -> CN -> Cl    -- she is an old woman   
+mkCl she_NP (mkCN old_A woman_N)
+      mkCl : NP -> Adv -> Cl   -- she is here   
+mkCl she_NP here_Adv
+      mkCl : NP -> VP -> Cl    -- she always sleeps
+mkCl she_NP (mkVP always_AdV (mkVP sleep_V))
+      mkCl : N -> Cl           -- there is a house
+mkCl house_N
+---      mkCl : CN -> Cl          -- there is an old house 
+--- mkCl (mkCN old_A house_N)
+      mkCl : NP -> Cl          -- there are many houses 
+mkCl (mkNP many_Det house_N)  
+      mkCl : NP  -> RS -> Cl   -- it is she who sleeps
+mkCl she_NP (mkRS (mkRCl which_RP (mkVP sleep_V)))
+      mkCl : Adv -> S  -> Cl   -- it is here that she sleeps
+mkCl here_Adv (mkS (mkCl she_NP sleep_V)) 
+      mkCl : V -> Cl           -- it rains
+mkCl rain_V0 
+      mkCl : VP -> Cl          -- it is raining    
+mkCl (progressiveVP (mkVP rain_V0))
+      mkCl : SC -> VP -> Cl    -- that she sleeps is good
+mkCl (mkSC (mkS (mkCl she_NP sleep_V))) (mkVP good_A)
+      genericCl : VP ->  Cl    -- one sleeps
+mkS (genericCl (mkVP sleep_V))              
+      mkVP : V   -> VP                -- sleep
+mkUtt (mkVP sleep_V) 
+      mkVP : V2  -> NP -> VP          -- love him 
+mkUtt (mkVP love_V2 he_NP) 
+      mkVP : V3  -> NP -> NP -> VP    -- send it to him 
+mkUtt (mkVP send_V3 it_NP he_NP) 
+      mkVP : VV  -> VP -> VP          -- want to sleep
+mkUtt (mkVP want_VV (mkVP sleep_V)) 
+      mkVP : VS  -> S  -> VP          -- know that she sleeps
+mkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) 
+      mkVP : VQ  -> QS -> VP          -- wonder who sleeps  
+mkUtt (mkVP wonder_VQ (mkQS (mkQCl who_IP sleep_V))) 
+      mkVP : VA  -> AP -> VP          -- become red 
+mkUtt (mkVP become_VA (mkAP red_A))
+      mkVP : V2A -> NP -> AP -> VP    -- paint it red 
+mkUtt (mkVP paint_V2A it_NP (mkAP red_A))
+      mkVP : V2S -> NP -> S  -> VP    -- answer to him that we sleep
+mkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V))) 
+      mkVP : V2Q -> NP -> QS -> VP    -- ask him who sleeps
+mkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))) 
+      mkVP : V2V -> NP -> VP -> VP    -- beg him to sleep
+mkUtt (mkVP beg_V2V he_NP (mkVP sleep_V))
+      mkVP : A -> VP               -- be old
+mkUtt (mkVP old_A) 
+      mkVP : A -> NP -> VP         -- be older than he 
+mkUtt (mkVP old_A he_NP) 
+      mkVP : A2 -> NP -> VP        -- be married to him
+mkUtt (mkVP married_A2 he_NP)  
+      mkVP : AP -> VP              -- be very old
+mkUtt (mkVP (mkAP very_AdA old_A)) 
+      mkVP : N -> VP               -- be a woman
+mkUtt (mkVP woman_N) 
+      mkVP : CN -> VP              -- be an old woman 
+mkUtt (mkVP (mkCN old_A woman_N)) 
+      mkVP : NP -> VP              -- be the woman 
+mkUtt (mkVP (mkNP the_Det woman_N)) 
+      mkVP : Adv -> VP             -- be here 
+mkUtt (mkVP here_Adv) 
+      mkVP : VP -> Adv -> VP       -- sleep here
+mkUtt (mkVP (mkVP sleep_V) here_Adv)
+      mkVP : AdV -> VP -> VP       -- always sleep   
+mkUtt (mkVP always_AdV (mkVP sleep_V))
+      mkVP : VPSlash -> NP -> VP   -- paint it black  
+mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)) it_NP)
+      mkVP : VPSlash -> VP         -- paint itself black 
+mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)))
+      mkVP : Comp -> VP            -- be warm 
+mkUtt (mkVP (mkComp (mkAP warm_A)))
+      reflexiveVP : V2 -> VP       -- love itself
+mkUtt (reflexiveVP love_V2)  
+      mkVP : VPSlash -> VP         -- paint itself black 
+mkUtt (reflexiveVP (mkVPSlash paint_V2A (mkAP black_A)))
+      passiveVP : V2 ->       VP   -- be loved
+mkUtt (passiveVP love_V2)
+      passiveVP : V2 -> NP -> VP   -- be loved by her 
+mkUtt (passiveVP love_V2 she_NP)
+      progressiveVP : VP -> VP     -- be sleeping 
+mkUtt (progressiveVP (mkVP sleep_V))
+      mkComp : AP -> Comp -- very old 
+mkComp (mkAP old_A)
+      mkComp : NP -> Comp -- this man 
+mkComp (mkNP this_Det man_N)
+      mkComp : Adv -> Comp -- here
+mkComp here_Adv 
+      mkSC : S -> SC -- that she sleeps
+mkSC (mkS (mkCl she_NP sleep_V))
+      mkSC : QS -> SC -- who sleeps 
+mkSC (mkQS (mkQCl who_IP sleep_V))
+      mkSC : VP -> SC -- to sleep 
+mkSC (mkVP sleep_V)
+      mkImp : VP -> Imp                -- come to my house
+mkImp (mkVP (mkVP come_V) (mkAdv to_Prep (mkNP i_Pron house_N)))
+      mkImp : V  -> Imp                -- come
+mkImp come_V
+      mkImp : V2 -> NP -> Imp          -- take it
+mkImp buy_V2 it_NP
+      mkNP : Quant -> N  -> NP          -- this man
+mkUtt (mkNP this_Quant man_N)
+      mkNP : Quant -> CN -> NP          -- this old man
+mkUtt (mkNP this_Quant (mkCN old_A man_N))
+      mkNP : Quant -> Num -> CN -> NP   -- these five old men
+mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) (mkCN old_A man_N))
+      mkNP : Quant -> Num -> N  -> NP   -- these five men
+mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) man_N)
+      mkNP : Det -> CN -> NP      -- the first old man
+mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) (mkCN old_A man_N))
+      mkNP : Det -> N -> NP       -- the first man   
+mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) man_N)
+      mkNP : Numeral -> CN -> NP      -- fifty old men
+mkUtt (mkNP (mkNumeral (tenfoldSub100 n5_Unit)) (mkCN old_A man_N))
+      mkNP : Numeral -> N -> NP       -- fifty men  
+mkUtt (mkNP (mkNumeral (tenfoldSub100 n5_Unit)) man_N)
+      mkNP : Digits -> CN -> NP      -- 51 old men 
+mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) (mkCN old_A man_N))
+      mkNP : Digits -> N -> NP       -- 51 men 
+mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) man_N)
+--      mkNP : Card -> CN -> NP     -- forty-five old men   
+--      mkNP : Card -> N -> NP       -- forty-five men   
+      mkNP : Pron -> CN -> NP   -- my old man
+mkUtt (mkNP i_Pron (mkCN old_A man_N))
+      mkNP : Pron -> N  -> NP   -- my man
+mkUtt (mkNP i_Pron man_N)
+      mkNP : PN -> NP             -- Paris
+mkUtt (mkNP paris_PN)
+      mkNP : Pron -> NP           -- we
+mkUtt (mkNP we_Pron)
+      mkNP : Quant -> NP           -- this
+mkUtt (mkNP this_Quant)  
+      mkNP : Quant -> Num -> NP    -- these five  
+mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)))
+      mkNP : Det -> NP             -- the five best  
+mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)))
+      mkNP : CN -> NP  -- old beer   
+mkUtt (mkNP (mkCN old_A beer_N))
+      mkNP : N -> NP  -- beer
+mkUtt (mkNP beer_N)
+      mkNP : Predet -> NP -> NP  -- only this woman   
+mkUtt (mkNP only_Predet (mkNP this_Det woman_N))
+      mkNP : NP -> V2  -> NP     -- the man seen
+mkUtt (mkNP (mkNP the_Det man_N) see_V2)
+      mkNP : NP -> Adv -> NP     -- Paris today
+mkUtt (mkNP (mkNP paris_PN) today_Adv)
+      mkNP : NP -> RS -> NP      -- John, who walks
+mkUtt (mkNP (mkNP john_PN) (mkRS (mkRCl which_RP (mkVP walk_V))))
+      mkNP : Conj -> NP -> NP -> NP
+mkUtt (mkNP or_Conj (mkNP this_Det woman_N) (mkNP john_PN))
+      mkNP : Conj -> ListNP -> NP
+mkUtt (mkNP or_Conj (mkListNP (mkNP this_Det woman_N) (mkListNP (mkNP john_PN) i_NP)))
+      i_NP : NP          -- I
+mkUtt i_NP
+      you_NP : NP        -- you (singular)
+mkUtt you_NP
+      youPol_NP : NP     -- you (polite singular)
+mkUtt youPol_NP
+      he_NP : NP         -- he
+mkUtt he_NP
+      she_NP : NP        -- she
+mkUtt she_NP
+      it_NP : NP         -- it
+mkUtt it_NP
+      we_NP : NP         -- we
+mkUtt we_NP
+      youPl_NP : NP      -- you (plural)
+mkUtt youPl_NP
+      they_NP : NP       -- they
+mkUtt they_NP
+      mkDet : Quant ->  Det       -- this  
+mkDet this_Quant
+      this_NP : NP 
+mkUtt this_NP
+      that_NP : NP 
+mkUtt that_NP
+      these_NP : NP 
+mkUtt these_NP
+      those_NP : NP 
+mkUtt those_NP
+      mkDet : Quant -> Card -> Det   -- these five
+mkDet this_Quant (mkCard (mkNumeral n5_Unit))
+      mkDet : Quant ->  Ord -> Det     -- the best
+mkDet the_Quant (mkOrd (mkNumeral n5_Unit))
+      mkDet : Quant -> Num -> Ord -> Det  -- these five best  
+mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)
+      mkDet : Quant -> Num -> Det -- these five  
+mkDet this_Quant pluralNum
+      mkDet : Card ->  Det     -- forty  
+mkDet (mkCard (mkNumeral n5_Unit))
+--      mkDet : Digits -> Det    -- 51
+--      mkDet : Numeral -> Det  -- five 
+mkDet (mkNumeral n5_Unit)
+      mkDet : Pron -> Det     -- my
+mkDet i_Pron
+      mkDet : Pron -> Num -> Det -- my five
+mkDet i_Pron  (mkNum (mkNumeral n5_Unit))
+      the_Det   : Det -- the (house)
+mkNP the_Det house_N
+      a_Det     : Det -- a (house)
+mkNP a_Det house_N
+      theSg_Det : Det -- the (houses)
+mkNP theSg_Det house_N
+      thePl_Det : Det -- the (houses)
+mkNP thePl_Det house_N
+      aSg_Det   : Det -- a (house)
+mkNP aSg_Det woman_N
+      aPl_Det   : Det -- (houses)
+mkNP aPl_Det woman_N
+      this_Det : Det 
+mkNP this_Det woman_N
+      that_Det : Det 
+mkNP that_Det woman_N
+      these_Det : Det 
+mkNP these_Det woman_N
+      those_Det : Det 
+mkNP those_Det woman_N
+      mkQuant : Pron -> Quant   -- my  
+mkNP (mkQuant i_Pron) house_N
+      the_Quant : Quant    -- the 
+mkNP the_Quant house_N
+      a_Quant   : Quant    -- a  
+mkNP a_Quant house_N
+--      mkNum : Str -> Num   -- thirty-five (given by "35") 
+      mkNum : Numeral -> Num  -- twenty  
+mkNum (mkNumeral (tenfoldSub100 n2_Unit))
+      mkNum : Digits -> Num   -- 21 
+mkNum (mkDigits n2_Dig (mkDigits n1_Dig))
+--      mkNum : Digit -> Num -- five
+      mkNum : Card -> Num  -- almost ten
+mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) 
+      mkNum : AdN -> Card -> Num  -- almost ten
+mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))
+--      singularNum : Num              -- singular 
+--      pluralNum : Num                -- plural 
+--      mkCard : Str -> Card   -- thirty-five (given as "35")
+      mkCard : Numeral -> Card   -- twenty  
+mkCard (mkNumeral n7_Unit)
+--      mkCard : Digits -> Card      -- 51  
+--      mkCard : AdN -> Card -> Card  -- almost fifty
+--      mkOrd : Numeral -> Ord   -- twentieth  
+--      mkOrd : Digits -> Ord         -- 51st 
+--      mkOrd : Digit -> Ord       -- fifth 
+      mkOrd : A -> Ord           -- largest  
+mkOrd small_A
+      mkAdN : CAdv -> AdN  -- more than  
+mkCard (mkAdN more_CAdv) (mkCard (mkNumeral n8_Unit))
+      mkNumeral : Sub1000 -> Numeral -- coerce 1..999  
+mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))
+      mkNumeral : Sub1000 -> Sub1000 -> Numeral -- 1000m + n  
+mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))
+--      mkNumeral : Str -> Numeral   -- thirty-five (given by "35") 
+      thousandfoldNumeral : Sub1000 -> Numeral -- 1000n  
+thousandfoldNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))
+      mkSub1000 : Sub100 -> Sub1000 -- coerce 1..99  
+mkNumeral (mkSub1000 (mkSub100 n9_Unit n9_Unit))
+      mkSub1000 : Unit -> Sub1000 -- 100n  
+mkNumeral (mkSub1000 n9_Unit)
+      mkSub1000 : Unit -> Sub100 -> Sub1000 -- 100m + n  
+mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))
+      mkSub100 : Unit -> Sub100            -- eight (coerce 1..9)  
+mkSub100 n8_Unit
+    mkSub100 : Unit -> Unit -> Sub100    -- 10m + n  
+mkSub100 n8_Unit n3_Unit
+    tenfoldSub100 : Unit -> Sub100 -- 10n  
+mkSub100 n8_Unit
+    n1_Unit : Unit -- one 
+mkNumeral n1_Unit
+    n2_Unit : Unit -- two  
+mkNumeral n2_Unit
+    n3_Unit : Unit -- three  
+mkNumeral n3_Unit
+    n4_Unit : Unit -- four  
+mkNumeral n4_Unit
+    n5_Unit : Unit -- five  
+mkNumeral n5_Unit
+    n6_Unit : Unit -- six  
+mkNumeral n6_Unit
+    n7_Unit : Unit -- seven  
+mkNumeral n7_Unit
+    n8_Unit : Unit -- eight  
+mkNumeral n8_Unit
+    n9_Unit : Unit -- nine  
+mkNumeral n9_Unit
+--      mkDigits : Str -> Digits -- 35 (from string "35")
+      mkDigits : Dig -> Digits -- 4  
+mkDigits n4_Dig
+      mkDigits : Dig -> Digits -> Digits -- 1,233,486 
+mkDigits n1_Dig (mkDigits n2_Dig (mkDigits n3_Dig (mkDigits n3_Dig (mkDigits n4_Dig (mkDigits n8_Dig (mkDigits n6_Dig)))))) 
+--      n0_Dig : Dig   -- 0  
+--      n1_Dig : Dig   -- 1  
+--      n2_Dig : Dig   -- 2   
+--      n3_Dig : Dig   -- 3      
+--      n4_Dig : Dig   -- 4  
+--      n5_Dig : Dig   -- 5      
+--      n6_Dig : Dig   -- 6      
+--      n7_Dig : Dig   -- 7           
+--      n8_Dig : Dig   -- 8      
+--      n9_Dig : Dig   -- 9  
+      mkCN : N  -> CN            -- house 
+mkCN house_N 
+      mkCN : N2 -> NP -> CN      -- mother of the king   
+mkCN mother_N2 (mkNP the_Det king_N)
+      mkCN : N3 -> NP -> NP -> CN  -- distance from this city to Paris
+mkCN distance_N3 (mkNP this_Det city_N) (mkNP paris_PN) 
+      mkCN : N2 -> CN            -- mother 
+mkCN mother_N2
+      mkCN : N3 -> CN            -- distance 
+mkCN distance_N3
+      mkCN :  A ->  N  -> CN     -- big house
+mkCN big_A house_N  
+      mkCN :  A -> CN  -> CN     -- big blue house  
+mkCN big_A (mkCN blue_A house_N)
+      mkCN : AP ->  N  -> CN     -- very big house
+mkCN (mkAP very_AdA big_A) house_N  
+      mkCN : AP -> CN  -> CN     -- very big blue house  
+mkCN (mkAP very_AdA big_A) (mkCN blue_A house_N)  
+      mkCN :  N -> RS  -> CN     -- man whom she loves 
+mkCN man_N (mkRS (mkRCl which_RP she_NP love_V2))
+      mkCN : CN -> RS  -> CN     -- old man whom she loves 
+mkCN (mkCN old_A man_N) (mkRS (mkRCl which_RP she_NP love_V2)) 
+      mkCN :  N -> Adv -> CN     -- house on the hill 
+mkCN house_N (mkAdv on_Prep (mkNP the_Det hill_N))
+      mkCN : CN -> Adv -> CN     -- big house on the hill 
+mkCN (mkCN big_A house_N) (mkAdv on_Prep (mkNP the_Det hill_N))
+      mkCN : CN -> S   -> CN     -- rule that she sleeps 
+mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))
+      mkCN : CN -> QS  -> CN     -- question if she sleeps 
+mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))
+      mkCN : CN -> VP  -> CN     -- reason to sleep 
+mkCN (mkCN reason_N) (mkVP sleep_V)
+      mkCN : CN -> SC  -> CN     -- reason to sleep  
+mkCN (mkCN reason_N) (mkVP sleep_V)
+      mkCN :  N -> NP  -> CN     -- king John
+mkCN king_N (mkNP john_PN) 
+      mkCN : CN -> NP  -> CN     -- old king John
+mkCN (mkCN old_A king_N) (mkNP john_PN)
+      mkAP : A -> AP           -- warm   
+mkAP warm_A
+      mkAP : A -> NP -> AP     -- warmer than Paris    
+mkAP warm_A (mkNP paris_PN)
+      mkAP : A2 -> NP -> AP    -- married to her
+mkAP married_A2 she_NP 
+      mkAP : A2 -> AP          -- married 
+mkAP married_A2
+      mkAP : AP -> S -> AP    -- probable that she sleeps  
+mkCl (mkVP (mkAP (mkAP good_A) (mkS (mkCl she_NP sleep_V))))
+      mkAP : AP -> QS -> AP    -- uncertain who sleeps  
+mkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V))))
+      mkAP : AP -> VP -> AP    -- ready to go 
+mkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V))
+      mkAP : AP -> SC -> AP    -- ready to go  
+mkCl she_NP (mkAP (mkAP ready_A) (mkSC (mkVP sleep_V)))
+      mkAP : AdA -> A -> AP   -- very old
+mkAP very_AdA old_A
+      mkAP : AdA -> AP -> AP   -- very very old  
+mkAP very_AdA (mkAP very_AdA old_A)
+      mkAP : Conj -> AP -> AP -> AP -- old and big 
+mkAP or_Conj (mkAP old_A) (mkAP young_A)
+      mkAP : Conj -> ListAP -> AP   -- old, big and warm 
+mkAP and_Conj (mkListAP (mkAP old_A) (mkListAP (mkAP big_A) (mkAP warm_A)))
+      mkAP : Ord   -> AP              -- oldest 
+mkAP (mkOrd old_A)
+      mkAP : CAdv -> AP -> NP -> AP   -- as old as she
+mkAP as_CAdv (mkAP old_A) she_NP
+      reflAP   : A2 -> AP             -- married to himself 
+mkUtt (reflAP married_A2)
+      comparAP : A -> AP              -- warmer 
+mkUtt (comparAP warm_A)
+      mkAdv : A -> Adv            -- warmly   
+mkAdv warm_A
+      mkAdv : Prep -> NP -> Adv          -- in the house    
+mkAdv in_Prep (mkNP the_Det house_N)
+      mkAdv : Subj -> S -> Adv   -- when she sleeps
+mkAdv when_Subj (mkS (mkCl she_NP sleep_V))
+      mkAdv : CAdv -> A -> NP -> Adv   -- more warmly than he
+mkAdv more_CAdv warm_A he_NP  
+      mkAdv : CAdv -> A -> S -> Adv    -- more warmly than he runs 
+mkAdv more_CAdv warm_A (mkS (mkCl he_NP run_V))  
+      mkAdv : AdA -> Adv -> Adv        -- very warmly
+mkAdv very_AdA (mkAdv warm_A) 
+      mkAdv : Conj -> Adv -> Adv -> Adv  -- here and now
+mkAdv and_Conj here_Adv now_Adv
+      mkAdv : Conj -> ListAdv -> Adv   -- with her, here and now  
+mkAdv and_Conj (mkListAdv (mkAdv with_Prep she_NP) (mkListAdv here_Adv now_Adv))
+      mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS -- who wouldn't have slept 
+mkQS conditionalTense anteriorAnt negativePol (mkQCl who_IP sleep_V)
+      mkQS : Cl -> QS -- 
+mkQS (mkCl she_NP sleep_V)
+      mkQCl : Cl -> QCl -- does she sleep
+mkQCl (mkCl she_NP sleep_V)
+      mkQCl : IP -> VP -> QCl               -- who sleeps      
+mkQCl who_IP (mkVP (mkVP sleep_V) here_Adv)
+      mkQCl : IP -> V -> QCl                -- who sleeps
+mkQCl who_IP sleep_V
+      mkQCl : IP -> V2 -> NP -> QCl         -- who loves her
+mkQCl who_IP love_V2 she_NP
+      mkQCl : IP -> V3 -> NP -> NP -> QCl   -- who sends it to her
+mkQCl who_IP send_V3 it_NP she_NP
+      mkQCl : IP  -> VV -> VP -> QCl        -- who wants to sleep
+mkQCl who_IP want_VV (mkVP sleep_V)
+      mkQCl : IP  -> VS -> S  -> QCl        -- who says that I sleep
+mkQCl who_IP say_VS (mkS (mkCl i_NP sleep_V))
+      mkQCl : IP  -> VQ -> QS -> QCl        -- who wonders who sleeps
+mkQCl who_IP wonder_VQ (mkQS (mkQCl who_IP sleep_V))
+      mkQCl : IP  -> VA -> A  -> QCl        -- who becomes old
+mkQCl who_IP become_VA old_A
+      mkQCl : IP  -> VA -> AP -> QCl        -- who becomes very old
+mkQCl who_IP become_VA (mkAP very_AdA old_A)
+      mkQCl : IP  -> V2A -> NP -> A  -> QCl -- who paints it red
+mkQCl who_IP paint_V2A it_NP red_A
+      mkQCl : IP  -> V2A -> NP -> AP -> QCl -- who paints it very red
+mkQCl who_IP paint_V2A it_NP (mkAP very_AdA red_A)
+      mkQCl : IP  -> V2S -> NP -> S -> QCl  -- who answers to him that we sleep
+mkQCl who_IP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))
+      mkQCl : IP  -> V2Q -> NP -> QS -> QCl -- who asks him who sleeps 
+mkQCl who_IP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))
+      mkQCl : IP  -> V2V -> NP -> VP -> QCl -- who begs him to sleep
+mkQCl who_IP beg_V2V he_NP (mkVP sleep_V)
+      mkQCl : IP -> A  -> QCl       -- who is old
+mkQCl who_IP old_A
+      mkQCl : IP -> A -> NP -> QCl  -- who is older than he   
+mkQCl who_IP old_A he_NP
+      mkQCl : IP -> A2 -> NP -> QCl -- who is married to him 
+mkQCl who_IP married_A2 he_NP
+      mkQCl : IP -> AP -> QCl    -- who is very old 
+mkQCl who_IP (mkAP very_AdA old_A)
+      mkQCl : IP -> NP -> QCl    -- who is the woman   
+mkQCl who_IP (mkNP the_Det woman_N)
+      mkQCl : IP -> N -> QCl     -- who is a woman   
+mkQCl who_IP woman_N
+      mkQCl : IP -> CN -> QCl    -- who is an old woman   
+mkQCl who_IP (mkCN old_A woman_N)
+      mkQCl : IP -> Adv -> QCl   -- who is here   
+mkQCl who_IP here_Adv
+      mkQCl : IP -> VP -> QCl    -- who always sleeps
+mkQCl who_IP (mkVP always_AdV (mkVP sleep_V))
+      mkQCl : IAdv -> Cl -> QCl            -- why does she sleep
+mkQCl why_IAdv (mkCl she_NP sleep_V)     
+      mkQCl : Prep -> IP -> Cl -> QCl      -- with whom does she sleep
+mkQCl with_Prep who_IP (mkCl she_NP sleep_V)      
+      mkQCl : IAdv -> NP -> QCl   -- where is she
+mkQCl where_IAdv she_NP 
+      mkQCl : IComp -> NP -> QCl   -- who is this man
+mkQCl (mkIComp who_IP) (mkNP this_Det man_N)
+      mkQCl : IP -> QCl         -- which cities are there
+mkQCl (mkIP which_IQuant city_N)
+      mkQCl : IP -> NP -> V2 -> QCl        -- who does she love 
+mkQCl who_IP she_NP
+      mkQCl : IP -> ClSlash -> QCl         -- who does she love today   --:   
+mkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv)
+      mkIP : IDet -> CN -> IP          -- which five big cities
+mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) (mkCN big_A city_N)    
+      mkIP : IDet -> N -> IP      -- which five cities
+mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) city_N    
+      mkIP : IDet -> IP      -- which five 
+mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit)))
+      mkIP : IQuant -> CN -> IP    -- which big city
+mkIP which_IQuant (mkCN big_A city_N)    
+      mkIP : IQuant -> Num -> CN -> IP          -- which five big cities
+mkIP which_IQuant (mkNum (mkNumeral n5_Unit)) (mkCN big_A city_N)    
+      mkIP : IQuant -> N -> IP      -- which city
+mkIP which_IQuant city_N
+      mkIP : IP -> Adv -> IP        -- who in Paris
+mkIP who_IP (mkAdv in_Prep (mkNP paris_PN))
+      what_IP : IP  -- what (singular)
+mkUtt what_IP
+      who_IP : IP   -- who (singular)
+mkUtt who_IP
+      mkIAdv : Prep -> IP -> IAdv --  in which city 
+mkIAdv in_Prep (mkIP which_IQuant city_N)
+      mkIAdv : IAdv -> Adv -> IAdv --  where in Paris
+mkIAdv where_IAdv (mkAdv in_Prep (mkNP paris_PN))  
+      mkIDet : IQuant -> Num -> IDet          -- which (songs) 
+mkIP (mkIDet which_IQuant pluralNum) house_N
+      mkIDet : IQuant -> IDet
+mkIP (mkIDet which_IQuant) house_N      
+      which_IDet : IDet 
+mkIP which_IDet house_N
+      whichPl_IDet : IDet 
+mkIP whichPl_IDet house_N
+      mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS -- that wouldn't have slept 
+mkCN woman_N (mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V))
+      mkRS : RCl -> RS -- 
+mkCN woman_N (mkRS (mkRCl which_RP sleep_V))
+      mkRS : Conj -> RS -> RS -> RS -- 
+mkCN woman_N (mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP we_NP love_V2)))
+      mkRCl : RP -> VP -> RCl               -- who sleeps      
+mkCN woman_N (mkRS (mkRCl which_RP (mkVP (mkVP sleep_V) here_Adv)))
+      mkRCl : RP -> V -> RCl                -- who sleeps
+mkCN woman_N (mkRS (mkRCl which_RP sleep_V))
+      mkRCl : RP -> V2 -> NP -> RCl         -- who loves her
+mkCN woman_N (mkRS (mkRCl which_RP love_V2 he_NP))
+      mkRCl : RP -> V3 -> NP -> NP -> RCl   -- who sends it to her
+mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP))
+      mkRCl : RP  -> VV -> VP -> RCl        -- who wants to sleep
+mkCN woman_N (mkRS (mkRCl which_RP want_VV (mkVP sleep_V)))
+      mkRCl : RP  -> VS -> S  -> RCl        -- who says that I sleep
+mkCN woman_N (mkRS (mkRCl which_RP say_VS (mkS (mkCl i_NP sleep_V))))
+      mkRCl : RP  -> VQ -> QS -> RCl        -- who wonders who sleeps
+mkCN woman_N (mkRS (mkRCl which_RP wonder_VQ (mkQS (mkQCl who_IP sleep_V))))
+      mkRCl : RP  -> VA -> A  -> RCl        -- who becomes old
+mkCN woman_N (mkRS (mkRCl which_RP become_VA old_A))
+      mkRCl : RP  -> VA -> AP -> RCl        -- who becomes very old
+mkCN woman_N (mkRS (mkRCl which_RP become_VA (mkAP very_AdA old_A)))
+      mkRCl : RP  -> V2A -> NP -> A  -> RCl -- who paints it red
+mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A))
+      mkRCl : RP  -> V2A -> NP -> AP -> RCl -- who paints it very red
+mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A)))
+      mkRCl : RP  -> V2S -> NP -> S -> RCl  -- who answers to him that we sleep
+mkCN woman_N (mkRS (mkRCl which_RP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))))
+      mkRCl : RP  -> V2Q -> NP -> QS -> RCl -- who asks him who sleeps 
+mkCN woman_N (mkRS (mkRCl which_RP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))))
+      mkRCl : RP  -> V2V -> NP -> VP -> RCl -- who begs him to sleep
+mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V)))
+      mkRCl : RP -> A  -> RCl       -- who is old
+mkCN woman_N (mkRS (mkRCl which_RP old_A))
+      mkRCl : RP -> A -> NP -> RCl  -- who is older than he   
+mkCN woman_N (mkRS (mkRCl which_RP old_A he_NP))
+      mkRCl : RP -> A2 -> NP -> RCl -- who is married to him 
+mkCN woman_N (mkRS (mkRCl which_RP married_A2 he_NP))
+      mkRCl : RP -> AP -> RCl    -- who is very old 
+mkCN woman_N (mkRS (mkRCl which_RP (mkAP very_AdA old_A)))
+      mkRCl : RP -> NP -> RCl    -- who is the woman   
+mkCN woman_N (mkRS (mkRCl which_RP (mkNP the_Det woman_N)))
+      mkRCl : RP -> N -> RCl     -- who is a woman   
+mkCN student_N (mkRS (mkRCl which_RP woman_N))
+      mkRCl : RP -> CN -> RCl    -- who is an old woman   
+mkCN student_N (mkRS (mkRCl which_RP (mkCN old_A woman_N)))
+      mkRCl : RP -> Adv -> RCl   -- who is here   
+mkCN woman_N (mkRS (mkRCl which_RP here_Adv))
+      mkRCl : RP -> VP -> RCl    -- who always sleeps
+mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V))))
+      mkRCl : RP -> NP -> V2 -> RCl        -- who she loves 
+mkCN woman_N (mkRS (mkRCl which_RP we_NP love_V2))
+      mkRCl : RP -> ClSlash -> RCl         -- who she loves today   --:   
+mkCN woman_N (mkRS (mkRCl which_RP (mkClSlash (mkClSlash she_NP love_V2) today_Adv)))
+--      which_RP : RP                        -- which/who 
+--which_RP
+      mkRP : Prep -> NP -> RP -> RP    -- all the cities in which
+mkRP in_Prep (mkNP all_Predet (mkNP the_Quant pluralNum city_N)) which_RP
+      mkSSlash : Temp -> Pol -> ClSlash -> SSlash  
+mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash she_NP (mkVPSlash see_V2))
+      mkClSlash : NP -> VPSlash -> ClSlash        -- (whom) he sees here  
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2))
+      mkClSlash : NP -> V2 -> ClSlash        -- (whom) he sees 
+mkQCl who_IP (mkClSlash she_NP see_V2)
+      mkClSlash : NP -> VV -> V2 -> ClSlash  -- (whom) he wants to see
+mkQCl who_IP (mkClSlash she_NP want_VV see_V2)
+      mkClSlash : Cl -> Prep -> ClSlash      -- (with whom) he sleeps
+mkQCl who_IP (mkClSlash (mkCl she_NP sleep_V) with_Prep)
+      mkClSlash : ClSlash -> Adv -> ClSlash    -- (whom) he sees tomorrow   
+mkQCl who_IP (mkClSlash (mkClSlash she_NP see_V2) today_Adv)
+      mkClSlash : NP -> VS -> SSlash -> ClSlash -- (whom)she says that he s
+mkQCl who_IP (mkClSlash she_NP know_VS (mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash we_NP (mkVPSlash see_V2))))
+      mkVPSlash : V2  -> VPSlash         -- (whom) (she) loves 
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2))
+      mkVPSlash : V3  -> NP -> VPSlash   -- (whom) (she) gives an apple 
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash send_V3 it_NP))  
+      mkVPSlash : V2A -> AP -> VPSlash   -- (whom) (she) paints red
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash paint_V2A (mkAP red_A)))  
+      mkVPSlash : V2Q -> QS -> VPSlash   -- (whom) (she) asks who sleeps
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_Idv (mkCl i_NP sleep_V)))))   
+      mkVPSlash : V2S -> S  -> VPSlash   -- (whom) (she) tells that we sleep
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash answer_V2S (mkS (mkCl i_NP sleep_V))))   
+      mkVPSlash : V2V -> VP -> VPSlash   -- (whom) (she) forces to sleep  
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V (mkVP sleep_V)))
+      mkVPSlash : VV  -> VPSlash -> VPSlash  -- want always to buy 
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash want_VV (mkVPSlash see_V2)))
+      mkVPSlash : V2V -> NP -> VPSlash -> VPSlash -- beg me always to buy 
+mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V i_NP (mkVPSlash see_V2)))
+    above_Prep : Prep   
+mkAdv above_Prep it_NP
+    after_Prep : Prep 
+mkAdv after_Prep it_NP
+    all_Predet : Predet 
+mkNP all_Predet (mkNP thePl_Det man_N)
+    almost_AdA : AdA    
+mkAP almost_AdA red_A
+    almost_AdN : AdN
+mkCard almostAdN (mkCard (mkNumeral n8_Unit))    
+    although_Subj : Subj 
+mkAdv although_Subj (mkS (mkCl she_NP sleep_V))
+    always_AdV : AdV 
+always_AdV
+    and_Conj : Conj 
+mkAdv and_Conj here_Adv now_Adv
+    because_Subj : Subj 
+mkAdv because_Subj (mkS (mkCl she_NP sleep_V))
+    before_Prep : Prep 
+mkAdv before_Prep it_NP
+    behind_Prep : Prep 
+mkAdv behind_Prep it_NP
+    between_Prep : Prep 
+mkAdv between_Prep (mkNP and_Conj you_NP i_NP)
+    both7and_DConj : Conj  -- both...and
+mkAdv both7and_DConj here_Adv there_Adv
+    but_PConj : PConj 
+but_PConj
+    by8agent_Prep : Prep  -- by (agent)
+mkAdv by8agent_Prep it_NP
+    by8means_Prep : Prep  -- by (means of)
+mkAdv by8means_Prep it_NP
+    can8know_VV : VV  -- can (capacity)
+mkUtt (mkVP can8know_VV (mkVP sleep_V))
+    can_VV : VV       -- can (possibility)
+mkUtt (mkVP can_VV (mkVP sleep_V))
+    during_Prep : Prep 
+mkAdv during_Prep it_NP
+    either7or_DConj : Conj  -- either...or
+mkAdv either7or_DConj here_Adv there_Adv
+    every_Det : Det 
+every_Det
+    everybody_NP : NP   -- everybody
+everybody_NP
+    everything_NP : NP 
+everything_NP
+    everywhere_Adv : Adv 
+everywhere_Adv
+    few_Det : Det 
+few_Det
+    for_Prep : Prep 
+mkAdv for_Prep it_NP
+    from_Prep : Prep 
+mkAdv from_Prep it_NP
+    he_Pron : Pron 
+he_Pron
+    here_Adv : Adv 
+here_Adv
+    here7to_Adv : Adv  -- to here
+here7to_Adv
+    here7from_Adv : Adv   -- from here
+here7from_Adv
+    how_IAdv : IAdv 
+mkUtt how_IAdv
+    how8many_IDet : IDet 
+mkUtt (mkIP how8many_IDet house_N)
+    how8much_IAdv : IAdv 
+mkUtt how8much_IAdv
+    i_Pron : Pron 
+i_Pron
+    if_Subj : Subj 
+mkAdv if_Subj (mkS (mkCl she_NP sleep_V))
+    in8front_Prep : Prep  -- in front of
+mkAdv in8front_Prep it_NP
+    in_Prep : Prep 
+mkAdv in_Prep it_NP
+    it_Pron : Pron 
+it_Pron
+    less_CAdv : CAdv 
+less_CAdv
+    many_Det : Det 
+mkNP many_Det house_N
+    more_CAdv : CAdv 
+more_CAdv
+    most_Predet : Predet 
+most_Predet
+    much_Det : Det 
+much_Det
+    must_VV : VV 
+must_VV
+    no_Utt : Utt 
+no_Utt
+    on_Prep : Prep 
+mkAdv on_Prep it_NP
+    only_Predet : Predet 
+only_Predet
+    or_Conj : Conj 
+mkAdv or_Conj here_Adv there_Adv
+    otherwise_PConj : PConj 
+otherwise_PConj
+    part_Prep : Prep 
+mkAdv part_Prep it_NP
+    please_Voc : Voc 
+please_Voc
+    possess_Prep : Prep  -- of (possessive)
+mkAdv possess_Prep it_NP
+    quite_Adv : AdA 
+quite_Adv
+    she_Pron : Pron 
+she_Pron
+    so_AdA : AdA 
+so_AdA
+    someSg_Det : Det 
+someSg_Det
+    somePl_Det : Det 
+somePl_Det
+    somebody_NP : NP 
+somebody_NP
+    something_NP : NP 
+something_NP
+    somewhere_Adv : Adv 
+somewhere_Adv
+    that_Quant : Quant 
+mkNP that_Quant house_N
+    that_Subj : Subj 
+mkAdv that_Subj (mkS (mkCl she_NP sleep_V))
+    there_Adv : Adv 
+there_Adv
+    there7to_Adv : Adv  -- to there
+there7to_Adv
+    there7from_Adv : Adv  -- from there
+there7from_Adv
+    therefore_PConj : PConj 
+therefore_PConj
+    they_Pron : Pron  
+they_Pron
+    this_Quant : Quant 
+mkNP this_Quant house_N
+    through_Prep : Prep 
+mkAdv through_Prep it_NP
+    to_Prep : Prep 
+mkAdv to_Prep it_NP
+    too_AdA : AdA 
+too_AdA
+    under_Prep : Prep 
+mkAdv under_Prep it_NP
+    very_AdA : AdA 
+very_AdA
+    want_VV : VV 
+want_VV
+    we_Pron : Pron 
+we_Pron
+    whatPl_IP : IP  -- what (plural)
+whatPl_IP
+    whatSg_IP : IP  -- what (singular)
+whatSg_IP
+    when_IAdv : IAdv 
+mkUtt when_IAdv
+    when_Subj : Subj 
+mkAdv when_Subj (mkS (mkCl she_NP sleep_V))
+    where_IAdv : IAdv 
+mkUtt where_IAdv
+    which_IQuant : IQuant 
+mkIP which_IQuant house_N
+    whoPl_IP : IP   -- who (plural)
+whoPl_IP
+    whoSg_IP : IP   -- who (singular)
+whoSg_IP
+    why_IAdv : IAdv 
+mkUtt why_IAdv
+    with_Prep : Prep 
+mkAdv with_Prep it_NP
+    without_Prep : Prep 
+mkAdv without_Prep it_NP
+    yes_Utt : Utt 
+yes_Utt
+    youSg_Pron : Pron  -- you (singular)
+youSg_Pron
+    youPl_Pron : Pron  -- you (plural)
+youPl_Pron
+    youPol_Pron : Pron  -- you (polite)
+youPol_Pron
+    no_Quant : Quant  
+mkNP no_Quant house_N
+    not_Predet : Predet 
+mkNP not_Predet everybody_NP
+    if_then_Conj : Conj 
+mkAdv if_then_Conj here_Adv there_Adv
+    at_least_AdN : AdN 
+mkCard at_least_AdN (mkCard (mkNumeral n8_Unit))
+    at_most_AdN : AdN 
+mkCard at_most_AdN (mkCard (mkNumeral n8_Unit))
+    nobody_NP : NP 
+nobody_NP
+    nothing_NP : NP 
+nothing_NP
+    except_Prep : Prep 
+mkAdv except_Prep it_NP
+    as_CAdv : CAdv 
+as_CAdv
+    have_V2 : V2 
+mkUtt (mkVP have_V2 it_NP)
diff --git a/lib/doc/hovering.png b/lib/doc/hovering.png
new file mode 100644
Binary files /dev/null and b/lib/doc/hovering.png differ
diff --git a/lib/doc/revealpopup.css b/lib/doc/revealpopup.css
new file mode 100644
--- /dev/null
+++ b/lib/doc/revealpopup.css
@@ -0,0 +1,26 @@
+/* Popup boxes will have a light yellow background and a black border */
+div.popup {
+  display: none;
+  background: #ffc;
+  border: 1px solid black;
+}
+
+div.expand { display: none }
+
+div.reveal:hover div.popup {
+  display: block;
+  position: absolute;
+  margin-left: 3em;
+}
+.popup dl { margin: 5px; }
+
+tr:hover div.expand {
+  display: block;
+}
+
+/* Just some optional color and border styles: */
+body { background: #eee; }
+table { border-collapse: collapse; }
+td, th { padding: 5px; }
+th { background: #9df; }
+td { background: white }
diff --git a/lib/doc/status.html b/lib/doc/status.html
new file mode 100644
--- /dev/null
+++ b/lib/doc/status.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<TITLE>The Status of the GF Resource Grammar Library</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>The Status of the GF Resource Grammar Library</H1>
+<FONT SIZE="4">
+<I>Aarne Ranta</I><BR>
+20101222
+</FONT></CENTER>
+
+<P>
+The following table gives the languages currently available in the 
+GF Resource Grammar Library.
+</P>
+<P>
+Corrections and additions are welcome! Notice that only those parts of implementations
+that are currently available via <A HREF="http://grammaticalframework.org">http://grammaticalframework.org</A> 
+are marked in the table
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TH>Lang</TH>
+<TH>Darcs</TH>
+<TH>Mini</TH>
+<TH>Parad</TH>
+<TH>Lex</TH>
+<TH>Lang</TH>
+<TH>API</TH>
+<TH>Symb</TH>
+<TH>Irreg</TH>
+<TH>Dict</TH>
+<TH COLSPAN="2">authors</TH>
+</TR>
+<TR>
+<TD>Afr</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*LPs,LPj</TD>
+</TR>
+<TR>
+<TD>Amh</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*MK</TD>
+</TR>
+<TR>
+<TD>Ara</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>AD</TD>
+</TR>
+<TR>
+<TD>Bul</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>*KA</TD>
+</TR>
+<TR>
+<TD>Cat</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*JS</TD>
+</TR>
+<TR>
+<TD>Dan</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Dut</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR,FJ</TD>
+</TR>
+<TR>
+<TD>Eng</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>*AR,BB</TD>
+</TR>
+<TR>
+<TD>Fin</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Fre</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Ger</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR,HH</TD>
+</TR>
+<TR>
+<TD>Hin</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*SV,*KP,MH,AR</TD>
+</TR>
+<TR>
+<TD>Ina</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>JB</TD>
+</TR>
+<TR>
+<TD>Ita</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*AR,*RE,GP</TD>
+</TR>
+<TR>
+<TD>Lat</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Lav</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*NG</TD>
+</TR>
+<TR>
+<TD>Mon</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*NE</TD>
+</TR>
+<TR>
+<TD>Nor</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Pes</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*SM</TD>
+</TR>
+<TR>
+<TD>Pnb</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*SV,MH</TD>
+</TR>
+<TR>
+<TD>Pol</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>IN,*AS</TD>
+</TR>
+<TR>
+<TD>Ron</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*RE</TD>
+</TR>
+<TR>
+<TD>Rus</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>JK</TD>
+</TR>
+<TR>
+<TD>Spa</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>*AR,IA,TS</TD>
+</TR>
+<TR>
+<TD>Swe</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>*AR,MF</TD>
+</TR>
+<TR>
+<TD>Tha</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*AR</TD>
+</TR>
+<TR>
+<TD>Tsn</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*LPs,AB</TD>
+</TR>
+<TR>
+<TD>Tur</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>+</TD>
+<TD>*SC,KA</TD>
+</TR>
+<TR>
+<TD>Urd</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>++</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>+</TD>
+<TD>-</TD>
+<TD>-</TD>
+<TD>*SV,MH</TD>
+</TR>
+</TABLE>
+
+<P>
+Lang = 3-letter ISO language code, used in library file names
+</P>
+<P>
+Darcs = available in the darcs repository of <A HREF="http://code.haskell.org/gf">http://code.haskell.org/gf</A>
+</P>
+<P>
+Mini = minimal resource, compiles with <CODE>make minimal</CODE>
+</P>
+<P>
+Parad = <CODE>Paradigms</CODE> file complete for major POS, ++ means with smart paradigms
+</P>
+<P>
+Lex = the resource <CODE>Lexicon</CODE> (nearly) complete
+</P>
+<P>
+Lang = the resource <CODE>Syntax</CODE> (nearly) complete
+</P>
+<P>
+API = the <CODE>Syntax</CODE> compiles
+</P>
+<P>
+API = the <CODE>Symbolic</CODE> API compiles
+</P>
+<P>
+Irreg = the <CODE>Irreg</CODE> module with irregular verbs exists
+</P>
+<P>
+Dict = the <CODE>Dict</CODE> module, large-scale morphological lexicon, exists
+</P>
+<P>
+authors = main contributors, * means still active 
+(ready to fix bugs, answer to questions, etc)
+</P>
+<H3>Author codes</H3>
+<P>
+AB Ansu Berg,
+AD Ali El Dada,
+AR Aarne Ranta,
+AS Adam Slaski,
+BB Björn Bringert,
+FJ Femke Johansson,
+HH Harald Hammarström,
+GP Gabriele Paganelli,
+IA Ingrid Andersson,
+IN Ilona Novak,
+JB Jean-Philippe Bernardy,
+JK Janna Khegai,
+JS Jordi Saludes,
+KA Krasimir Angelov,
+KP Kuchi Prasad,
+LPj Laurette Pretorius Jr,
+LPs Laurette Pretorius Sr,
+MF Markus Forsberg,
+MK Markos Kassa Gobena,
+MH Muhammad Humayoun,
+NE Nyamsuren Erdenebadrakh,
+NG Normunds Gruzitis,
+RE Ramona Enache,
+SC Server Cimen,
+SM Sofy Moradi,
+SV Shafqat Virk,
+TH Therese Söderberg
+</P>
+<H2>Rules</H2>
+<P>
+Only components available at <A HREF="http://grammaticalframework.org">http://grammaticalframework.org</A> are included in the table.
+</P>
+<P>
+If you want to work on a language already in the table, please be kind and contact the
+active authors of it.
+</P>
+<P>
+Feel free to start a new language that is not yet in the table - but let us know and
+contribute some code as soon as you can!
+</P>
+
+<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -thtml status.txt -->
+</BODY></HTML>
diff --git a/lib/doc/status.txt b/lib/doc/status.txt
new file mode 100644
--- /dev/null
+++ b/lib/doc/status.txt
@@ -0,0 +1,115 @@
+The Status of the GF Resource Grammar Library
+Aarne Ranta
+%%date
+
+
+
+The following table gives the languages currently available in the 
+GF Resource Grammar Library.
+
+Corrections and additions are welcome! Notice that only those parts of implementations
+that are currently available via http://grammaticalframework.org 
+are marked in the table
+
+
+|| Lang | Darcs | Mini | Parad | Lex | Lang | API | Symb | Irreg | Dict | authors       ||
+| Afr   | -     | -    | -     | -   | -    | -   | -    | -     | -    | *LPs,LPj
+| Amh   | +     | +    | ++    | +   | +    | -   | -    | -     | -    | *MK
+| Ara   | +     | +    | +     | +   | -    | -   | -    | -     | -    | AD
+| Bul   | +     | +    | +     | +   | +    | +   | +    | +     | +    | *KA
+| Cat   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *JS
+| Dan   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR
+| Dut   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR,FJ
+| Eng   | +     | +    | ++    | +   | +    | +   | +    | +     | +    | *AR,BB
+| Fin   | +     | +    | ++    | +   | +    | +   | +    | -     | -    | *AR
+| Fre   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR
+| Ger   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR,HH
+% | Heb   | -   | -    | -     | -   | -    | -   | -    | -     | -    | DD
+| Hin   | +     | +    | ++    | +   | +    | +   | +    | -     | -    | *SV,*KP,MH,AR
+| Ina   | +     | +    | ++    | +   | +    | -   | -    | -     | -    | JB
+| Ita   | +     | +    | ++    | +   | +    | +   | +    | -     | -    | *AR,*RE,GP
+| Lat   | +     | -    | -     | -   | -    | -   | -    | -     | -    | *AR
+| Lav   | -     | -    | -     | -   | -    | -   | -    | -     | -    | *NG
+| Mon   | -     | -    | -     | -   | -    | -   | -    | -     | -    | *NE
+| Nor   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR
+| Pes   | -     | -    | -     | -   | -    | -   | -    | -     | -    | *SM
+| Pnb   | +     | +    | +     | +   | +    | +   | +    | -     | -    | *SV,MH
+| Pol   | +     | +    | +     | +   | +    | +   | +    | -     | -    | IN,*AS
+| Ron   | +     | +    | ++    | +   | +    | +   | +    | -     | -    | *RE
+| Rus   | +     | +    | ++    | +   | +    | +   | -    | -     | -    | JK
+| Spa   | +     | +    | ++    | +   | +    | +   | +    | +     | -    | *AR,IA,TS
+| Swe   | +     | +    | ++    | +   | +    | +   | +    | +     | +    | *AR,MF
+| Tha   | +     | -    | -     | -   | -    | -   | -    | -     | -    | *AR
+| Tsn   | -     | -    | -     | -   | -    | -   | -    | -     | -    | *LPs,AB
+| Tur   | +     | -    | ++    | +   | -    | -   | -    | -     | +    | *SC,KA
+| Urd   | +     | +    | ++    | +   | +    | +   | +    | -     | -    | *SV,MH
+
+Lang = 3-letter ISO language code, used in library file names
+
+Darcs = available in the darcs repository of http://code.haskell.org/gf
+
+Mini = minimal resource, compiles with ``make minimal``
+
+Parad = ``Paradigms`` file complete for major POS, ++ means with smart paradigms
+
+Lex = the resource ``Lexicon`` (nearly) complete
+
+Lang = the resource ``Syntax`` (nearly) complete
+
+API = the ``Syntax`` compiles
+
+API = the ``Symbolic`` API compiles
+
+Irreg = the ``Irreg`` module with irregular verbs exists
+
+Dict = the ``Dict`` module, large-scale morphological lexicon, exists
+
+authors = main contributors, * means still active 
+(ready to fix bugs, answer to questions, etc)
+
+
+===Author codes===
+
+AB Ansu Berg,
+AD Ali El Dada,
+AR Aarne Ranta,
+AS Adam Slaski,
+BB Björn Bringert,
+FJ Femke Johansson,
+HH Harald Hammarström,
+GP Gabriele Paganelli,
+IA Ingrid Andersson,
+IN Ilona Novak,
+JB Jean-Philippe Bernardy,
+JK Janna Khegai,
+JS Jordi Saludes,
+KA Krasimir Angelov,
+KP Kuchi Prasad,
+LPj Laurette Pretorius Jr,
+LPs Laurette Pretorius Sr,
+MF Markus Forsberg,
+MK Markos Kassa Gobena,
+MH Muhammad Humayoun,
+NE Nyamsuren Erdenebadrakh,
+NG Normunds Gruzitis,
+RE Ramona Enache,
+SC Server Cimen,
+SM Sofy Moradi,
+SV Shafqat Virk,
+TH Therese Söderberg
+
+
+
+
+==Rules==
+
+Only components available at http://grammaticalframework.org are included in the table.
+
+If you want to work on a language already in the table, please be kind and contact the
+active authors of it.
+
+Feel free to start a new language that is not yet in the table - but let us know and
+contribute some code as soon as you can!
+
+
+
diff --git a/lib/doc/synopsis-intro.txt b/lib/doc/synopsis-intro.txt
--- a/lib/doc/synopsis-intro.txt
+++ b/lib/doc/synopsis-intro.txt
@@ -1,26 +1,54 @@
 
 
 
+
+
+
+
 =Introduction=
 
-This document contains the most important parts of the GF Resource Grammar API.
-It has been machine-generated from the source files; each chapter gives a link
-to the relevant source files, which give more information. Some of the files have
-not yet been prepared so that the machine generated documentation has the right 
-format.
+The GF Resource Grammar Library is the standard library for Grammatical Framework.
+It covers the morphology and basic syntax of currently 16 languages.
 
-Since the character encoding is UTF-8 for Russian and Latin-1 for other 
-languages, you
-may have to change the encoding preference of your browser when reading different
-parts of the document.
+This document contains the most important parts of the GF Resource Grammar API,
+as needed by a GF application programmer.
+It has been machine-generated from the source files; there are links
+to the relevant source files, which give more information. Some of the files have
+not yet been prepared so that the machine generated documentation has the nicest
+possible format.
 
-The second-last chapter gives instructions on how to "browse" the library by 
+The main contents are:
+- [Chapter 1 #toc2]: categories, with links to the functions for
+constructing trees in them.
+- [Chapter 2 #toc5]: syntactic construction functions, with cross-links and
+examples. 
+- [Chapter 3 #toc83]: morphological paradigms.
+- [Chapter 4 #toc100]: how to "browse" the library by 
 loading the grammars into the ``gf`` command editor.
+- [Chapter 5 #toc101]: a brief example of how application grammars can
+use the resource modules. 
+- [Detailed table of contents #toc102].
 
-**New**: Browsing by syntax editor 
-[directly on the web ../../../demos/resource-api/editor.html].
 
-The last chapter contains a brief example of how application grammars can
-import resource modules. At the same time, it illustrates a "design pattern" for 
-using the resource API to build functor-based applications
+Many examples in [Chapter 2 #toc5] can be seen in multiple languages by hovering the
+mouse over the example, as shown in the following screenshot:
+
+[hovering.png]
+
+Other relevant documents:
+- [``status.html`` ./status.html]: the current status of different languages
+  and the authors of each grammar
+- [Resource Grammar Tutorial http://www.grammaticalframework.org/doc/gf-lrec-2010.pdf]
+  as presented in LREC-2010.
+- Paper "The GF Resource Grammar Library" by A. Ranta
+  (//Linguistic Issues in Language Technology//, 2 (2), 2009). An overview of
+  the library with linguistic motivations.
+  [PDF http://elanguage.net/journals/index.php/lilt/article/viewFile/214/158]
+- Paper "Grammars as Software Libraries" by A. Ranta
+  (In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
+   //From Semantics to Computer Science//, Cambridge University Press, 
+   Cambridge, pp. 281--308, 2009).
+  The library from a software engineering point of view.
+  [PDF http://www.cse.chalmers.se/~aarne/old/articles/libraries-kahn.pdf]
+
 
diff --git a/lib/doc/synopsis.html b/lib/doc/synopsis.html
--- a/lib/doc/synopsis.html
+++ b/lib/doc/synopsis.html
@@ -2,7591 +2,8727 @@
 <HTML>
 <HEAD>
 <META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>GF Resource Grammar Library: Synopsis</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>GF Resource Grammar Library: Synopsis</H1>
-<FONT SIZE="4">
-<I>B. Bringert and A. Ranta</I><BR>
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-  <UL>
-  <LI><A HREF="#toc1">Introduction</A>
-  <LI><A HREF="#toc2">Categories</A>
-    <UL>
-    <LI><A HREF="#toc3">A hierarchic view</A>
-    <LI><A HREF="#toc4">Explanations</A>
-    </UL>
-  <LI><A HREF="#toc5">Syntax Rules and Structural Words</A>
-    <UL>
-    <LI><A HREF="#A" TITLE="A - one-place adjective">A - one-place adjective</A>
-    <LI><A HREF="#A2" TITLE="A2 - two-place adjective">A2 - two-place adjective</A>
-    <LI><A HREF="#AP" TITLE="AP - adjectival phrase">AP - adjectival phrase</A>
-    <LI><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA - adjective-modifying adverb</A>
-    <LI><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN - numeral-modifying adverb</A>
-    <LI><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV - adverb directly attached to verb</A>
-    <LI><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv - verb-phrase-modifying adverb</A>
-    <LI><A HREF="#Ant" TITLE="Ant - anteriority">Ant - anteriority</A>
-    <LI><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv - comparative adverb</A>
-    <LI><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN - common noun (without determiner)</A>
-    <LI><A HREF="#Card" TITLE="Card - cardinal number">Card - cardinal number</A>
-    <LI><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl - declarative clause, with all tenses</A>
-    <LI><A HREF="#ClSlash">ClSlash</A>
-    <LI><A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp - complement of copula, such as AP</A>
-    <LI><A HREF="#Conj" TITLE="Conj - conjunction">Conj - conjunction</A>
-    <LI><A HREF="#Det" TITLE="Det - determiner phrase">Det - determiner phrase</A>
-    <LI><A HREF="#Dig">Dig</A>
-    <LI><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits - cardinal or ordinal in digits</A>
-    <LI><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv - interrogative adverb</A>
-    <LI><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp - interrogative complement of copula</A>
-    <LI><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet - interrogative determiner</A>
-    <LI><A HREF="#IP" TITLE="IP - interrogative pronoun">IP - interrogative pronoun</A>
-    <LI><A HREF="#IQuant">IQuant</A>
-    <LI><A HREF="#Imp" TITLE="Imp - imperative">Imp - imperative</A>
-    <LI><A HREF="#ImpForm">ImpForm</A>
-    <LI><A HREF="#ListAP">ListAP</A>
-    <LI><A HREF="#ListAdv">ListAdv</A>
-    <LI><A HREF="#ListNP">ListNP</A>
-    <LI><A HREF="#ListRS">ListRS</A>
-    <LI><A HREF="#ListS">ListS</A>
-    <LI><A HREF="#N" TITLE="N - common noun">N - common noun</A>
-    <LI><A HREF="#N2" TITLE="N2 - relational noun">N2 - relational noun</A>
-    <LI><A HREF="#N3" TITLE="N3 - three-place relational noun">N3 - three-place relational noun</A>
-    <LI><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP - noun phrase (subject or object)</A>
-    <LI><A HREF="#Num" TITLE="Num - number determining element">Num - number determining element</A>
-    <LI><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral - cardinal or ordinal in words</A>
-    <LI><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord - ordinal number (used in Det)</A>
-    <LI><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj - phrase-beginning conjunction</A>
-    <LI><A HREF="#PN" TITLE="PN - proper name">PN - proper name</A>
-    <LI><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr - phrase in a text</A>
-    <LI><A HREF="#Pol" TITLE="Pol - polarity">Pol - polarity</A>
-    <LI><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet - predeterminer (prefixed Quant)</A>
-    <LI><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep - preposition, or just case</A>
-    <LI><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron - personal pronoun</A>
-    <LI><A HREF="#Punct">Punct</A>
-    <LI><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl - question clause, with all tenses</A>
-    <LI><A HREF="#QS" TITLE="QS - question">QS - question</A>
-    <LI><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant - quantifier ('nucleus' of Det)</A>
-    <LI><A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl - relative clause, with all tenses</A>
-    <LI><A HREF="#RP" TITLE="RP - relative pronoun">RP - relative pronoun</A>
-    <LI><A HREF="#RS" TITLE="RS - relative">RS - relative</A>
-    <LI><A HREF="#S" TITLE="S - declarative sentence">S - declarative sentence</A>
-    <LI><A HREF="#SC" TITLE="SC - embedded sentence or question">SC - embedded sentence or question</A>
-    <LI><A HREF="#Subj" TITLE="Subj - subjunction">Subj - subjunction</A>
-    <LI><A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp - temporal and aspectual features</A>
-    <LI><A HREF="#Tense" TITLE="Tense - tense">Tense - tense</A>
-    <LI><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text - text consisting of several phrases</A>
-    <LI><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt - sentence, question, word...</A>
-    <LI><A HREF="#V" TITLE="V - one-place verb">V - one-place verb</A>
-    <LI><A HREF="#V2" TITLE="V2 - two-place verb">V2 - two-place verb</A>
-    <LI><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A - verb with NP and AP complement</A>
-    <LI><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q - verb with NP and Q complement</A>
-    <LI><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S - verb with NP and S complement</A>
-    <LI><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V - verb with NP and V complement</A>
-    <LI><A HREF="#V3" TITLE="V3 - three-place verb">V3 - three-place verb</A>
-    <LI><A HREF="#VA" TITLE="VA - adjective-complement verb">VA - adjective-complement verb</A>
-    <LI><A HREF="#VP" TITLE="VP - verb phrase">VP - verb phrase</A>
-    <LI><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash - verb phrase missing complement</A>
-    <LI><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ - question-complement verb</A>
-    <LI><A HREF="#VS" TITLE="VS - sentence-complement verb">VS - sentence-complement verb</A>
-    <LI><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV - verb-phrase-complement verb</A>
-    <LI><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc - vocative or "please"</A>
-    </UL>
-  <LI><A HREF="#toc78">Lexical Paradigms</A>
-    <UL>
-    <LI><A HREF="#toc79">Paradigms for Bulgarian</A>
-    <LI><A HREF="#toc80">Paradigms for Catalan</A>
-    <LI><A HREF="#toc81">Paradigms for Danish</A>
-    <LI><A HREF="#toc82">Paradigms for English</A>
-    <LI><A HREF="#toc83">Paradigms for Finnish</A>
-    <LI><A HREF="#toc84">Paradigms for French</A>
-    <LI><A HREF="#toc85">Paradigms for German</A>
-    <LI><A HREF="#toc86">Paradigms for Italian</A>
-    <LI><A HREF="#toc87">Paradigms for Norwegian</A>
-    <LI><A HREF="#toc88">Paradigms for Polish</A>
-    <LI><A HREF="#toc89">Paradigms for Romanian</A>
-    <LI><A HREF="#toc90">Paradigms for Russian</A>
-    <LI><A HREF="#toc91">Paradigms for Spanish</A>
-    <LI><A HREF="#toc92">Paradigms for Swedish</A>
-    <LI><A HREF="#toc93">Paradigms for Urdu</A>
-    </UL>
-  <LI><A HREF="#toc94">Browsing the libraries with GF commands</A>
-  <LI><A HREF="#toc95">An Example of Usage</A>
-  </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<A NAME="toc1"></A>
-<H1>Introduction</H1>
-<P>
-This document contains the most important parts of the GF Resource Grammar API.
-It has been machine-generated from the source files; each chapter gives a link
-to the relevant source files, which give more information. Some of the files have
-not yet been prepared so that the machine generated documentation has the right 
-format.
-</P>
-<P>
-Since the character encoding is UTF-8 for Russian and Latin-1 for other 
-languages, you
-may have to change the encoding preference of your browser when reading different
-parts of the document.
-</P>
-<P>
-The second-last chapter gives instructions on how to "browse" the library by 
-loading the grammars into the <CODE>gf</CODE> command editor.
-</P>
-<P>
-<B>New</B>: Browsing by syntax editor 
-<A HREF="../../../demos/resource-api/editor.html">directly on the web</A>.
-</P>
-<P>
-The last chapter contains a brief example of how application grammars can
-import resource modules. At the same time, it illustrates a "design pattern" for 
-using the resource API to build functor-based applications
-</P>
-<A NAME="toc2"></A>
-<H1>Categories</H1>
-<P>
-Source 1: <A HREF="../src/abstract/Common.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/abstract/Common.gf</CODE></A>
-</P>
-<P>
-Source 2: <A HREF="../src/abstract/Cat.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/abstract/Cat.gf</CODE></A>
-</P>
-<A NAME="toc3"></A>
-<H2>A hierarchic view</H2>
-<P>
-The chart below shows the categories in a hierarchical top-down order.
-The edges do not define the complete dependency structure; if they did,
-the graph would have many many more edges, and also many cycles. The precise
-meaning of a directed edge from <I>C</I> to <I>D</I> is: there is a constructor
-of <I>C</I> that takes <I>D</I> as an argument. What the constructors exactly are,
-and what other arguments they take, is described by separate tables for
-each category.
-</P>
-<TABLE ALIGN="center" CELLPADDING="4" BORDER="1">
-<TR>
-<TD ALIGN="right"><center><IMG ALIGN="middle" SRC="categories.png" USEMAP="#categories" BORDER="0" ALT=""></center></TD>
-</TR>
-</TABLE>
-
-<map id="categories" name="categories">
-<area shape="poly" href="#Text" TITLE="Text - text consisting of several phrases" alt="" coords="690,23 688,17 685,12 679,8 672,5 664,4 656,5 649,8 643,12 640,17 638,23 640,29 643,34 649,38 656,41 664,42 672,41 679,38 685,34 688,29"/>
-<area shape="poly" href="#Punct" title="Punct" alt="" coords="657,95 656,89 652,84 646,80 638,77 629,76 620,77 612,80 606,84 602,89 600,95 602,101 606,106 612,110 620,113 629,114 638,113 646,110 652,106 656,101"/>
-<area shape="poly" href="#Phr" TITLE="Phr - phrase in a text" alt="" coords="726,95 725,89 721,84 715,80 708,77 700,76 692,77 685,80 679,84 676,89 675,95 676,101 679,106 685,110 692,113 700,114 708,113 715,110 721,106 725,101"/>
-<area shape="poly" href="#PConj" TITLE="PConj - phrase-beginning conjunction" alt="" coords="658,167 656,162 652,156 645,152 637,150 628,149 619,150 610,152 604,156 600,162 598,167 600,173 604,179 610,183 619,185 628,186 637,185 645,183 652,179 656,173"/>
-<area shape="poly" href="#Utt" TITLE="Utt - sentence, question, word..." alt="" coords="726,167 725,162 721,156 715,152 708,150 700,149 692,150 685,152 679,156 676,162 675,167 676,173 679,179 685,183 692,185 700,186 708,185 715,183 721,179 725,173"/>
-<area shape="poly" href="#Voc" TITLE="Voc - vocative or "please"" alt="" coords="794,167 793,162 789,156 784,152 777,150 769,149 761,150 754,152 748,156 744,162 743,167 744,173 748,179 754,183 761,185 769,186 777,185 784,183 789,179 793,173"/>
-<area shape="poly" href="#Imp" TITLE="Imp - imperative" alt="" coords="657,240 656,234 652,229 647,225 640,222 632,221 624,222 617,225 611,229 607,234 606,240 607,246 611,251 617,255 624,258 632,259 640,258 647,255 652,251 656,246"/>
-<area shape="poly" href="#S" TITLE="S - declarative sentence" alt="" coords="726,240 725,234 721,229 715,225 708,223 700,222 692,223 685,225 679,229 676,234 675,240 676,245 679,250 685,254 692,257 700,258 708,257 715,254 721,250 725,245"/>
-<area shape="poly" href="#QS" TITLE="QS - question" alt="" coords="870,240 868,234 865,229 859,225 852,222 844,221 836,222 829,225 823,229 819,234 818,240 819,246 823,251 829,255 836,258 844,259 852,258 859,255 865,251 868,246"/>
-<area shape="poly" href="#Tense" TITLE="Tense - tense" alt="" coords="521,312 519,306 515,301 509,297 501,294 492,293 483,294 475,297 469,301 464,306 463,312 464,318 469,323 475,327 483,330 492,331 501,330 509,327 515,323 519,318"/>
-<area shape="poly" href="#Ant" TITLE="Ant - anteriority" alt="" coords="589,312 588,306 584,301 578,297 571,294 563,293 555,294 548,297 542,301 539,306 538,312 539,318 542,323 548,327 555,330 563,331 571,330 578,327 584,323 588,318"/>
-<area shape="poly" href="#Pol" TITLE="Pol - polarity" alt="" coords="657,312 656,306 652,301 647,297 640,294 632,293 624,294 617,297 611,301 607,306 606,312 607,318 611,323 617,327 624,330 632,331 640,330 647,327 652,323 656,318"/>
-<area shape="poly" href="#Cl" TITLE="Cl - declarative clause, with all tenses" alt="" coords="726,312 725,306 721,301 715,297 708,294 700,293 692,294 685,297 679,301 676,306 675,312 676,318 679,323 685,327 692,330 700,331 708,330 715,327 721,323 725,318"/>
-<area shape="poly" href="#ListS" title="ListS" alt="" coords="798,312 797,306 793,301 787,297 779,294 771,293 762,294 754,297 748,301 745,306 743,312 745,318 748,323 754,327 762,330 771,331 779,330 787,327 793,323 797,318"/>
-<area shape="poly" href="#Conj" TITLE="Conj - conjunction" alt="" coords="867,312 866,306 862,301 856,297 849,294 841,293 833,294 826,297 820,301 816,306 815,312 816,318 820,323 826,327 833,330 841,331 849,330 856,327 862,323 866,318"/>
-<area shape="poly" href="#QCl" TITLE="QCl - question clause, with all tenses" alt="" coords="945,312 943,306 940,301 934,297 927,294 919,293 911,294 904,297 898,301 895,306 893,312 895,318 898,323 904,327 911,330 919,331 927,330 934,327 940,323 943,318"/>
-<area shape="poly" href="#NP" TITLE="NP - noun phrase (subject or object)" alt="" coords="270,384 269,379 265,373 260,369 252,366 244,366 237,366 229,369 224,373 220,379 219,384 220,390 224,395 229,400 237,402 244,403 252,402 260,400 265,395 269,390"/>
-<area shape="poly" href="#VP" TITLE="VP - verb phrase" alt="" coords="636,384 634,379 631,373 625,369 618,366 610,366 602,366 595,369 589,373 585,379 584,384 585,390 589,395 595,400 602,402 610,403 618,402 625,400 631,395 634,390"/>
-<area shape="rect" href="#Adv" TITLE="Adv - verb-phrase-modifying adverb" alt="" coords="702,367,753,401"/>
-<area shape="poly" href="#Predet" TITLE="Predet - predeterminer (prefixed Quant)" alt="" coords="65,457 63,451 59,446 52,441 44,439 34,438 25,439 16,441 10,446 5,451 4,457 5,462 10,468 16,472 25,475 34,475 44,475 52,472 59,468 63,462"/>
-<area shape="poly" href="#Pron" TITLE="Pron - personal pronoun" alt="" coords="133,457 132,451 129,446 123,441 116,439 108,438 99,439 92,441 86,446 83,451 82,457 83,462 86,468 92,472 99,475 108,475 116,475 123,472 129,468 132,462"/>
-<area shape="rect" href="#PN" TITLE="PN - proper name" alt="" coords="150,440,202,474"/>
-<area shape="poly" href="#Det" TITLE="Det - determiner phrase" alt="" coords="270,457 269,451 265,446 260,441 252,439 244,438 237,439 229,441 224,446 220,451 219,457 220,462 224,468 229,472 237,475 244,475 252,475 260,472 265,468 269,462"/>
-<area shape="poly" href="#CN" TITLE="CN - common noun (without determiner)" alt="" coords="339,457 337,451 334,446 328,441 321,439 313,438 305,439 298,441 292,446 289,451 287,457 289,462 292,468 298,472 305,475 313,475 321,475 328,472 334,468 337,462"/>
-<area shape="poly" href="#ListNP" title="ListNP" alt="" coords="420,457 419,451 414,446 407,441 398,439 388,438 378,439 369,441 362,446 358,451 356,457 358,462 362,468 369,472 378,475 388,475 398,475 407,472 414,468 419,462"/>
-<area shape="poly" href="#AdV" TITLE="Adv - verb-phrase-modifying adverb" alt="" coords="489,457 488,451 484,446 479,441 471,439 463,438 455,439 448,441 442,446 439,451 437,457 439,462 442,468 448,472 455,475 463,475 471,475 479,472 484,468 488,462"/>
-<area shape="rect" href="#V" TITLE="V - one-place verb" alt="" coords="506,440,616,474"/>
-<area shape="poly" href="#AP" TITLE="AP - adjectival phrase" alt="" coords="685,457 684,451 680,446 674,441 667,439 659,438 651,439 644,441 639,446 635,451 634,457 635,462 639,468 644,472 651,475 659,475 667,475 674,472 680,468 684,462"/>
-<area shape="poly" href="#Subj" TITLE="Subj - subjunction" alt="" coords="753,457 752,451 749,446 743,441 736,439 728,438 720,439 713,441 707,446 703,451 702,457 703,462 707,468 713,472 720,475 728,475 736,475 743,472 749,468 752,462"/>
-<area shape="poly" href="#ListAdj" title="ListAdj" alt="" coords="837,457 836,451 831,446 824,441 814,439 804,438 794,439 784,441 777,446 772,451 770,457 772,462 777,468 784,472 794,475 804,475 814,475 824,472 831,468 836,462"/>
-<area shape="poly" href="#Art" title="Art" alt="" coords="90,529 89,523 85,518 80,514 73,511 65,510 57,511 50,514 44,518 40,523 39,529 40,535 44,540 50,544 57,547 65,548 73,547 80,544 85,540 89,535"/>
-<area shape="poly" 'href="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"' alt="" coords="166,529 165,523 161,518 154,514 146,511 137,510 128,511 120,514 113,518 109,523 108,529 109,535 113,540 120,544 128,547 137,548 146,547 154,544 161,540 165,535"/>
-<area shape="poly" href="#Num" TITLE="Num - number determining element" alt="" coords="237,529 235,523 232,518 226,514 218,511 210,510 202,511 195,514 189,518 185,523 184,529 185,535 189,540 195,544 202,547 210,548 218,547 226,544 232,540 235,535"/>
-<area shape="poly" href="#Ord" TITLE="Ord - ordinal number (used in Det)" alt="" coords="305,529 304,523 300,518 295,514 288,511 280,510 272,511 265,514 259,518 255,523 254,529 255,535 259,540 265,544 272,547 280,548 288,547 295,544 300,540 304,535"/>
-<area shape="rect" href="#N" TITLE="N - common noun" alt="" coords="323,512,387,546"/>
-<area shape="poly" href="#RS" TITLE="RS - relative" alt="" coords="456,529 454,523 451,518 445,514 438,511 430,510 422,511 415,514 409,518 406,523 404,529 406,535 409,540 415,544 422,547 430,548 438,547 445,544 451,540 454,535"/>
-<area shape="poly" href="#Card" TITLE="Card - cardinal number" alt="" coords="236,601 235,595 231,590 226,586 218,583 210,582 202,583 195,586 189,590 186,595 184,601 186,607 189,612 195,616 202,619 210,620 218,619 226,616 231,612 235,607"/>
-<area shape="poly" href="#Numeral" TITLE="Numeral - cardinal or ordinal in words" alt="" coords="216,674 214,668 206,662 194,658 179,656 162,655 145,656 130,658 118,662 110,668 107,674 110,679 118,685 130,689 145,691 162,692 179,691 194,689 206,685 214,679"/>
-<area shape="poly" href="#AdN" TITLE="AdN - numeral-modifying adverb" alt="" coords="285,674 283,668 280,662 274,658 267,656 259,655 251,656 244,658 238,662 234,668 233,674 234,679 238,685 244,689 251,691 259,692 267,691 274,689 280,685 283,679"/>
-<area shape="poly" href="#CAdv" TITLE="CAdv - comparative adverb" alt="" coords="288,746 286,740 282,735 276,731 268,728 259,727 250,728 242,731 235,735 231,740 230,746 231,752 235,757 242,761 250,764 259,765 268,764 276,761 282,757 286,752"/>
-<area shape="poly" href="#RCl" TITLE="RCl - relative clause, with all tenses" alt="" coords="456,601 454,595 451,590 445,586 438,583 430,582 422,583 415,586 409,590 406,595 404,601 406,607 409,612 415,616 422,619 430,620 438,619 445,616 451,612 454,607"/>
-<area shape="poly" href="#AdA" TITLE="AdA - adjective-modifying adverb" alt="" coords="617,529 615,523 612,518 606,514 599,511 591,510 583,511 576,514 570,518 566,523 565,529 566,535 570,540 576,544 583,547 591,548 599,547 606,544 612,540 615,535"/>
-<area shape="rect" href="#A" TITLE="A - one-place adjective" alt="" coords="634,512,685,546"/>
-<area shape="poly" href="#ListAP" title="ListAP" alt="" coords="767,529 765,523 760,518 753,514 744,511 734,510 725,511 716,514 708,518 704,523 702,529 704,535 708,540 716,544 725,547 734,548 744,547 753,544 760,540 765,535"/>
-<area shape="poly" href="#IP" TITLE="IP - interrogative pronoun" alt="" coords="895,384 894,379 890,373 885,369 877,366 870,366 862,366 854,369 849,373 845,379 844,384 845,390 849,395 854,400 862,402 870,403 877,402 885,400 890,395 894,390"/>
-<area shape="poly" href="#IAdv" TITLE="IAdv - interrogative adverb" alt="" coords="966,384 965,379 961,373 955,369 947,366 939,366 931,366 923,369 917,373 913,379 912,384 913,390 917,395 923,400 931,402 939,403 947,402 955,400 961,395 965,390"/>
-<area shape="poly" href="#ClSlash" title="ClSlash" alt="" coords="1050,384 1048,379 1043,373 1036,369 1026,366 1016,366 1006,366 996,369 989,373 984,379 982,384 984,390 989,395 996,400 1006,402 1016,403 1026,402 1036,400 1043,395 1048,390"/>
-<area shape="poly" href="#IDet" TITLE="IDet - interrogative determiner" alt="" coords="906,457 904,451 901,446 895,441 888,439 880,438 872,439 865,441 859,446 856,451 854,457 856,462 859,468 865,472 872,475 880,475 888,475 895,472 901,468 904,462"/>
-<area shape="poly" href="#VPSlash" TITLE="VPSlash - verb phrase missing complement" alt="" coords="1052,457 1050,451 1045,446 1037,441 1027,439 1016,438 1005,439 995,441 987,446 982,451 980,457 982,462 987,468 995,472 1005,475 1016,475 1027,475 1037,472 1045,468 1050,462"/>
-<area shape="poly" href="#IQuant" title="IQuant" alt="" coords="912,529 910,523 906,518 899,514 890,511 880,510 870,511 861,514 854,518 850,523 848,529 850,535 854,540 861,544 870,547 880,548 890,547 899,544 906,540 910,535"/>
-<area shape="poly" href="#RP" TITLE="RP - relative pronoun" alt="" coords="456,674 454,668 451,662 445,658 438,656 430,655 422,656 415,658 409,662 406,668 404,674 406,679 409,685 415,689 422,691 430,692 438,691 445,689 451,685 454,679"/>
-</map>
-<P>
-The rectangular boxes mark open lexical categories, which have constructors
-also in the <CODE>Paradigms</CODE> modules.
-</P>
-<A NAME="toc4"></A>
-<H2>Explanations</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Category</TH>
-<TH>Explanation</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-<TD>one-place adjective</TD>
-<TD><I>warm</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-<TD>two-place adjective</TD>
-<TD><I>divisible</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD>adjectival phrase</TD>
-<TD><I>very warm</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD>adjective-modifying adverb</TD>
-<TD><I>very</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-<TD>numeral-modifying adverb</TD>
-<TD><I>more than</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-<TD>adverb directly attached to verb</TD>
-<TD><I>always</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD>verb-phrase-modifying adverb</TD>
-<TD><I>in the house</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
-<TD>anteriority</TD>
-<TD>simultaneous, anterior</TD>
-</TR>
-<TR>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
-<TD>comparative adverb</TD>
-<TD><I>more</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD>common noun (without determiner)</TD>
-<TD><I>red house</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
-<TD>cardinal number</TD>
-<TD><I>seven</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD>declarative clause, with all tenses</TD>
-<TD><I>she looks at this</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A></TD>
-<TD>complement of copula, such as AP</TD>
-<TD><I>very warm</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD>conjunction</TD>
-<TD><I>and</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD>determiner phrase</TD>
-<TD><I>those seven</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD>cardinal or ordinal in digits</TD>
-<TD><I>1,000/1,000th</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD>interrogative adverb</TD>
-<TD><I>why</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A></TD>
-<TD>interrogative complement of copula</TD>
-<TD><I>where</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
-<TD>interrogative determiner</TD>
-<TD><I>how many</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD>interrogative pronoun</TD>
-<TD><I>who</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
-<TD>imperative</TD>
-<TD><I>look at this</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#N" TITLE="N - common noun">N</A></TD>
-<TD>common noun</TD>
-<TD><I>house</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-<TD>relational noun</TD>
-<TD><I>son</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-<TD>three-place relational noun</TD>
-<TD><I>connection</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD>noun phrase (subject or object)</TD>
-<TD><I>the red house</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD>number determining element</TD>
-<TD><I>seven</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD>cardinal or ordinal in words</TD>
-<TD><I>five/fifth</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
-<TD>ordinal number (used in Det)</TD>
-<TD><I>seventh</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
-<TD>phrase-beginning conjunction</TD>
-<TD><I>therefore</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-<TD>proper name</TD>
-<TD><I>Paris</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD>phrase in a text</TD>
-<TD><I>but be quiet please</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
-<TD>polarity</TD>
-<TD>positive, negative</TD>
-</TR>
-<TR>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
-<TD>predeterminer (prefixed Quant)</TD>
-<TD><I>all</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD>preposition, or just case</TD>
-<TD><I>in</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD>personal pronoun</TD>
-<TD><I>she</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD>question clause, with all tenses</TD>
-<TD><I>why does she walk</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#QS" TITLE="QS - question">QS</A></TD>
-<TD>question</TD>
-<TD><I>where did she live</I></TD>
-</TR>
-<TR>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD>quantifier ('nucleus' of Det)</TD>
-<TD><I>this/these</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
-<TD>relative clause, with all tenses</TD>
-<TD><I>in which she lives</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
-<TD>relative pronoun</TD>
-<TD><I>in which</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#RS" TITLE="RS - relative">RS</A></TD>
-<TD>relative</TD>
-<TD><I>in which she lived</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD>declarative sentence</TD>
-<TD><I>she lived here</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A></TD>
-<TD>embedded sentence or question</TD>
-<TD><I>that it rains</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD>subjunction</TD>
-<TD><I>if</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp</A></TD>
-<TD>temporal and aspectual features</TD>
-<TD>past anterior</TD>
-</TR>
-<TR>
-<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
-<TD>tense</TD>
-<TD>present, past, future</TD>
-</TR>
-<TR>
-<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD>text consisting of several phrases</TD>
-<TD><I>He is here. Why?</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD>sentence, question, word...</TD>
-<TD><I>be quiet</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-<TD>one-place verb</TD>
-<TD><I>sleep</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-<TD>two-place verb</TD>
-<TD><I>love</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-<TD>verb with NP and AP complement</TD>
-<TD><I>paint</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-<TD>verb with NP and Q complement</TD>
-<TD><I>ask</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-<TD>verb with NP and S complement</TD>
-<TD><I>tell</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-<TD>verb with NP and V complement</TD>
-<TD><I>cause</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-<TD>three-place verb</TD>
-<TD><I>show</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-<TD>adjective-complement verb</TD>
-<TD><I>look</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD>verb phrase</TD>
-<TD><I>is very warm</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD>verb phrase missing complement</TD>
-<TD><I>give to John</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-<TD>question-complement verb</TD>
-<TD><I>wonder</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-<TD>sentence-complement verb</TD>
-<TD><I>claim</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-<TD>verb-phrase-complement verb</TD>
-<TD><I>want</I></TD>
-</TR>
-<TR>
-<TD><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
-<TD>vocative or "please"</TD>
-<TD><I>my darling</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc5"></A>
-<H1>Syntax Rules and Structural Words</H1>
-<P>
-Source 1: <A HREF="../src/api/Constructors.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/api/Constructors.gf</CODE></A>
-</P>
-<P>
-Source 2: <A HREF="../src/abstract/Structural.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/abstract/Structural.gf</CODE></A>
-</P>
-<A NAME="A"></A>
-<H2>A - one-place adjective</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="A2"></A>
-<H2>A2 - two-place adjective</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="AP"></A>
-<H2>AP - adjectival phrase</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>comparAP</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>warmer</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>older than John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>married to her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>married</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>probable that John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>uncertain if John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>ready to go</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>very old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>very very old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>old and big</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>old, big and warm</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>oldest</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAP</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>as old as John</I></TD>
-</TR>
-<TR>
-<TD><CODE>reflAP</CODE></TD>
-<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
-<TD><I>married to himself</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="AdA"></A>
-<H2>AdA - adjective-modifying adverb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>almost_AdA</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD><I>almost</I></TD>
-</TR>
-<TR>
-<TD><CODE>quite_Adv</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD><I>quite</I></TD>
-</TR>
-<TR>
-<TD><CODE>so_AdA</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD><I>so</I></TD>
-</TR>
-<TR>
-<TD><CODE>too_AdA</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD><I>too</I></TD>
-</TR>
-<TR>
-<TD><CODE>very_AdA</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-<TD><I>very</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="AdN"></A>
-<H2>AdN - numeral-modifying adverb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>almost_AdN</CODE></TD>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-<TD><I>almost</I></TD>
-</TR>
-<TR>
-<TD><CODE>at_least_AdN</CODE></TD>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-<TD><I>at</I></TD>
-</TR>
-<TR>
-<TD><CODE>at_most_AdN</CODE></TD>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-<TD><I>at</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdN</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-<TD><I>more than</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="AdV"></A>
-<H2>AdV - adverb directly attached to verb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>always_AdV</CODE></TD>
-<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-<TD><I>always</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Adv"></A>
-<H2>Adv - verb-phrase-modifying adverb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>everywhere_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>everywhere</I></TD>
-</TR>
-<TR>
-<TD><CODE>here7from_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>from here</I></TD>
-</TR>
-<TR>
-<TD><CODE>here7to_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>to here</I></TD>
-</TR>
-<TR>
-<TD><CODE>here_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>warmly</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>with John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>when John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>more warmly than John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>more warmly than John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>very warmly</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>here and now</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>with John, here and now</I></TD>
-</TR>
-<TR>
-<TD><CODE>somewhere_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>somewhere</I></TD>
-</TR>
-<TR>
-<TD><CODE>there7from_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>from there</I></TD>
-</TR>
-<TR>
-<TD><CODE>there7to_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>to there</I></TD>
-</TR>
-<TR>
-<TD><CODE>there_Adv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-<TD><I>there</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Ant"></A>
-<H2>Ant - anteriority</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>anteriorAnt</CODE></TD>
-<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
-<TD><I>(John has walked)</I></TD>
-</TR>
-<TR>
-<TD><CODE>simultaneousAnt</CODE></TD>
-<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
-<TD><I>(John walks) [default]</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="CAdv"></A>
-<H2>CAdv - comparative adverb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>as_CAdv</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
-<TD><I>as</I></TD>
-</TR>
-<TR>
-<TD><CODE>less_CAdv</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
-<TD><I>less</I></TD>
-</TR>
-<TR>
-<TD><CODE>more_CAdv</CODE></TD>
-<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
-<TD><I>more</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="CN"></A>
-<H2>CN - common noun (without determiner)</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>mother of John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>distance from this city to Paris</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>son</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>flight</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>big house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>big blue house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>very big house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>very big blue house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>house that John loves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>big house that John loves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>house in the city</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>big house in the city</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>rule that John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>question if John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>reason to walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>king John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCN</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
-<TD><I>old king John</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Card"></A>
-<H2>Card - cardinal number</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkCard</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
-<TD><I>thirty-five (given by "35")</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCard</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
-<TD><I>thirty-five (given in any way)</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCard</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
-<TD><I>51</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCard</CODE></TD>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
-<TD><I>mkCard</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Cl"></A>
-<H2>Cl - declarative clause, with all tenses</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>genericCl</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>one walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John loves her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John sends it to her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John wants to walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John says that it is good</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John wonders if it is good</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John becomes old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John paints it red</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John tells her that we are here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John asks her who is here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John forces us to sleep</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is older than her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is married to her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is very old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is a man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is an old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is the man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John is here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>John walks here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>it rains</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>it is raining</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>there is a house</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>there is an old houses</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>there are five houses</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>it is John that walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkCl</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
-<TD><I>it is here John walks</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ClSlash"></A>
-<H2>ClSlash</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkClSlash</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
-<TD><I>(whom) John loves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkClSlash</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
-<TD><I>(whom) John wants to see</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkClSlash</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
-<TD><I>(with whom) John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkClSlash</CODE></TD>
-<TD><A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
-<TD><I>(whom) John loves today</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Comp"></A>
-<H2>Comp - complement of copula, such as AP</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="Conj"></A>
-<H2>Conj - conjunction</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>and_Conj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD><I>and</I></TD>
-</TR>
-<TR>
-<TD><CODE>both7and_DConj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD><I>both...and</I></TD>
-</TR>
-<TR>
-<TD><CODE>either7or_DConj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD><I>either...or</I></TD>
-</TR>
-<TR>
-<TD><CODE>if_then_Conj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD><I>if</I></TD>
-</TR>
-<TR>
-<TD><CODE>or_Conj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-<TD><I>or</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Det"></A>
-<H2>Det - determiner phrase</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>aPl_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>(houses)</I></TD>
-</TR>
-<TR>
-<TD><CODE>aSg_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>a (house)</I></TD>
-</TR>
-<TR>
-<TD><CODE>a_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>a (house)</I></TD>
-</TR>
-<TR>
-<TD><CODE>every_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>every</I></TD>
-</TR>
-<TR>
-<TD><CODE>few_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>few</I></TD>
-</TR>
-<TR>
-<TD><CODE>many_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>many</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> (<A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A>) <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>this first</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>these</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> (<A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A>) <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>these five best</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>these five</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>almost twenty</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>five</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>51</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>my (house)</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>my (houses)</I></TD>
-</TR>
-<TR>
-<TD><CODE>much_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>much</I></TD>
-</TR>
-<TR>
-<TD><CODE>somePl_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>somePl</I></TD>
-</TR>
-<TR>
-<TD><CODE>someSg_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>someSg</I></TD>
-</TR>
-<TR>
-<TD><CODE>thePl_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>the (houses)</I></TD>
-</TR>
-<TR>
-<TD><CODE>the_Det</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
-<TD><I>the (house)</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Dig"></A>
-<H2>Dig</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>n0_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>0</I></TD>
-</TR>
-<TR>
-<TD><CODE>n1_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>1</I></TD>
-</TR>
-<TR>
-<TD><CODE>n2_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>2</I></TD>
-</TR>
-<TR>
-<TD><CODE>n3_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>3</I></TD>
-</TR>
-<TR>
-<TD><CODE>n4_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>4</I></TD>
-</TR>
-<TR>
-<TD><CODE>n5_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>5</I></TD>
-</TR>
-<TR>
-<TD><CODE>n6_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>6</I></TD>
-</TR>
-<TR>
-<TD><CODE>n7_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>7</I></TD>
-</TR>
-<TR>
-<TD><CODE>n8_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>8</I></TD>
-</TR>
-<TR>
-<TD><CODE>n9_Dig</CODE></TD>
-<TD><A HREF="#Dig">Dig</A></TD>
-<TD><I>9</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Digits"></A>
-<H2>Digits - cardinal or ordinal in digits</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkDigits</CODE></TD>
-<TD><A HREF="#Dig">Dig</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>8</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkDigits</CODE></TD>
-<TD><A HREF="#Dig">Dig</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>876</I></TD>
-</TR>
-<TR>
-<TD><CODE>n1000_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>1,000</I></TD>
-</TR>
-<TR>
-<TD><CODE>n100_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>100</I></TD>
-</TR>
-<TR>
-<TD><CODE>n10_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>10</I></TD>
-</TR>
-<TR>
-<TD><CODE>n1_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>1</I></TD>
-</TR>
-<TR>
-<TD><CODE>n20_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>20</I></TD>
-</TR>
-<TR>
-<TD><CODE>n2_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>2</I></TD>
-</TR>
-<TR>
-<TD><CODE>n3_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>3</I></TD>
-</TR>
-<TR>
-<TD><CODE>n4_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>4</I></TD>
-</TR>
-<TR>
-<TD><CODE>n5_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>5</I></TD>
-</TR>
-<TR>
-<TD><CODE>n6_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>6</I></TD>
-</TR>
-<TR>
-<TD><CODE>n7_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>7</I></TD>
-</TR>
-<TR>
-<TD><CODE>n8_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>8</I></TD>
-</TR>
-<TR>
-<TD><CODE>n9_Digits</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
-<TD><I>9</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="IAdv"></A>
-<H2>IAdv - interrogative adverb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>how8much_IAdv</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>how8much</I></TD>
-</TR>
-<TR>
-<TD><CODE>how_IAdv</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>how</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkIAdv</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>in which city</I></TD>
-</TR>
-<TR>
-<TD><CODE>when_IAdv</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>when</I></TD>
-</TR>
-<TR>
-<TD><CODE>where_IAdv</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>where</I></TD>
-</TR>
-<TR>
-<TD><CODE>why_IAdv</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
-<TD><I>why</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="IComp"></A>
-<H2>IComp - interrogative complement of copula</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="IDet"></A>
-<H2>IDet - interrogative determiner</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>how8many_IDet</CODE></TD>
-<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
-<TD><I>how8many</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="IP"></A>
-<H2>IP - interrogative pronoun</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkIP</CODE></TD>
-<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>which city</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkIP</CODE></TD>
-<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> (<A HREF="#Num" TITLE="Num - number determining element">Num</A>) <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>which five big cities</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkIP</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>who in Paris</I></TD>
-</TR>
-<TR>
-<TD><CODE>whatPl_IP</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>what (plural)</I></TD>
-</TR>
-<TR>
-<TD><CODE>whatSg_IP</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>what (singular)</I></TD>
-</TR>
-<TR>
-<TD><CODE>whoPl_IP</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>who (plural)</I></TD>
-</TR>
-<TR>
-<TD><CODE>whoSg_IP</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
-<TD><I>who (singular)</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="IQuant"></A>
-<H2>IQuant</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>which_IQuant</CODE></TD>
-<TD><A HREF="#IQuant">IQuant</A></TD>
-<TD><I>which</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Imp"></A>
-<H2>Imp - imperative</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkImp</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
-<TD><I>go</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkImp</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
-<TD><I>take it</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkImp</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
-<TD><I>go there now</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ImpForm"></A>
-<H2>ImpForm</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>pluralImpForm</CODE></TD>
-<TD><A HREF="#ImpForm">ImpForm</A></TD>
-<TD><I>(help yourselves)</I></TD>
-</TR>
-<TR>
-<TD><CODE>politeImpForm</CODE></TD>
-<TD><A HREF="#ImpForm">ImpForm</A></TD>
-<TD><I>(help yourself) (polite singular)</I></TD>
-</TR>
-<TR>
-<TD><CODE>singularImpForm</CODE></TD>
-<TD><A HREF="#ImpForm">ImpForm</A></TD>
-<TD><I>(help yourself) [default]</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ListAP"></A>
-<H2>ListAP</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkListAP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A></TD>
-<TD><I>old, big</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkListAP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A></TD>
-<TD><I>old, big, warm</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ListAdv"></A>
-<H2>ListAdv</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkListAdv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A></TD>
-<TD><I>here, now</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkListAdv</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A></TD>
-<TD><I>to me, here, now</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ListNP"></A>
-<H2>ListNP</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkListNP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A></TD>
-<TD><I>John, I</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkListNP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A></TD>
-<TD><I>John, I, that</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ListRS"></A>
-<H2>ListRS</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkListRS</CODE></TD>
-<TD><A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A></TD>
-<TD><I>who walks, who runs</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkListRS</CODE></TD>
-<TD><A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A></TD>
-<TD><I>who walks, who runs, who sleeps</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="ListS"></A>
-<H2>ListS</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkListS</CODE></TD>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A></TD>
-<TD><I>he walks, I run</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkListS</CODE></TD>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A></TD>
-<TD><I>John walks, I run, you sleep</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="N"></A>
-<H2>N - common noun</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="N2"></A>
-<H2>N2 - relational noun</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="N3"></A>
-<H2>N3 - three-place relational noun</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="NP"></A>
-<H2>NP - noun phrase (subject or object)</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>everybody_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>everybody</I></TD>
-</TR>
-<TR>
-<TD><CODE>everything_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>everything</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>this men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> (<A HREF="#Num" TITLE="Num - number determining element">Num</A>) <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>these five old men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>the first man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>the first old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>twenty men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>twenty old men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>45 men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>45 old men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>almost twenty men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>almost twenty old men</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>my man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>my old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>he</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>this</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>these five</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>beer</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>beer</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>only John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John killed</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John in Paris</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John, who lives in Paris</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John and I</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNP</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>John, I, and that</I></TD>
-</TR>
-<TR>
-<TD><CODE>nobody_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>nobody</I></TD>
-</TR>
-<TR>
-<TD><CODE>nothing_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>nothing</I></TD>
-</TR>
-<TR>
-<TD><CODE>somebody_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>somebody</I></TD>
-</TR>
-<TR>
-<TD><CODE>something_NP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
-<TD><I>something</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Num"></A>
-<H2>Num - number determining element</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkNum</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>thirty-five (given by "35")</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNum</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>twenty</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNum</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>51</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNum</CODE></TD>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>almost ten</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkNum</CODE></TD>
-<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>almost ten</I></TD>
-</TR>
-<TR>
-<TD><CODE>plNum</CODE></TD>
-<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>plural</I></TD>
-</TR>
-<TR>
-<TD><CODE>sgNum</CODE></TD>
-<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
-<TD><I>singular</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Numeral"></A>
-<H2>Numeral - cardinal or ordinal in words</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkNumeral</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>thirty-five (given by "35")</I></TD>
-</TR>
-<TR>
-<TD><CODE>n1000_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>thousand</I></TD>
-</TR>
-<TR>
-<TD><CODE>n100_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>hundred</I></TD>
-</TR>
-<TR>
-<TD><CODE>n10_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>ten</I></TD>
-</TR>
-<TR>
-<TD><CODE>n1_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>one</I></TD>
-</TR>
-<TR>
-<TD><CODE>n20_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>twenty</I></TD>
-</TR>
-<TR>
-<TD><CODE>n2_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>two</I></TD>
-</TR>
-<TR>
-<TD><CODE>n3_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>three</I></TD>
-</TR>
-<TR>
-<TD><CODE>n4_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>four</I></TD>
-</TR>
-<TR>
-<TD><CODE>n5_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>five</I></TD>
-</TR>
-<TR>
-<TD><CODE>n6_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>six</I></TD>
-</TR>
-<TR>
-<TD><CODE>n7_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>seven</I></TD>
-</TR>
-<TR>
-<TD><CODE>n8_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>eight</I></TD>
-</TR>
-<TR>
-<TD><CODE>n9_Numeral</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
-<TD><I>nine</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Ord"></A>
-<H2>Ord - ordinal number (used in Det)</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkOrd</CODE></TD>
-<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
-<TD><I>twentieth</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkOrd</CODE></TD>
-<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
-<TD><I>51st</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkOrd</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
-<TD><I>best</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="PConj"></A>
-<H2>PConj - phrase-beginning conjunction</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>but_PConj</CODE></TD>
-<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
-<TD><I>but</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPConj</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
-<TD><I>and</I></TD>
-</TR>
-<TR>
-<TD><CODE>otherwise_PConj</CODE></TD>
-<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
-<TD><I>otherwise</I></TD>
-</TR>
-<TR>
-<TD><CODE>therefore_PConj</CODE></TD>
-<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
-<TD><I>therefore</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="PN"></A>
-<H2>PN - proper name</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="Phr"></A>
-<H2>Phr - phrase in a text</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>why</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD>(<A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A>) <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A> <CODE>-&gt;</CODE> (<A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A>) <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>but why John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>John walked</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>did John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkPhr</CODE></TD>
-<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
-<TD><I>walk</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Pol"></A>
-<H2>Pol - polarity</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>negativePol</CODE></TD>
-<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
-<TD><I>(John doesn't walk)</I></TD>
-</TR>
-<TR>
-<TD><CODE>positivePol</CODE></TD>
-<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
-<TD><I>(John walks) [default]</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Predet"></A>
-<H2>Predet - predeterminer (prefixed Quant)</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>all_Predet</CODE></TD>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
-<TD><I>all</I></TD>
-</TR>
-<TR>
-<TD><CODE>most_Predet</CODE></TD>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
-<TD><I>most</I></TD>
-</TR>
-<TR>
-<TD><CODE>not_Predet</CODE></TD>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
-<TD><I>not</I></TD>
-</TR>
-<TR>
-<TD><CODE>only_Predet</CODE></TD>
-<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
-<TD><I>only</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Prep"></A>
-<H2>Prep - preposition, or just case</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>above_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>above</I></TD>
-</TR>
-<TR>
-<TD><CODE>after_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>after</I></TD>
-</TR>
-<TR>
-<TD><CODE>before_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>before</I></TD>
-</TR>
-<TR>
-<TD><CODE>behind_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>behind</I></TD>
-</TR>
-<TR>
-<TD><CODE>between_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>between</I></TD>
-</TR>
-<TR>
-<TD><CODE>by8agent_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>by (agent)</I></TD>
-</TR>
-<TR>
-<TD><CODE>by8means_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>by (means of)</I></TD>
-</TR>
-<TR>
-<TD><CODE>during_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>during</I></TD>
-</TR>
-<TR>
-<TD><CODE>except_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>except</I></TD>
-</TR>
-<TR>
-<TD><CODE>for_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>for</I></TD>
-</TR>
-<TR>
-<TD><CODE>from_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>from</I></TD>
-</TR>
-<TR>
-<TD><CODE>in8front_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>in front of</I></TD>
-</TR>
-<TR>
-<TD><CODE>in_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>in</I></TD>
-</TR>
-<TR>
-<TD><CODE>on_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>on</I></TD>
-</TR>
-<TR>
-<TD><CODE>part_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>part</I></TD>
-</TR>
-<TR>
-<TD><CODE>possess_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>of (possessive)</I></TD>
-</TR>
-<TR>
-<TD><CODE>through_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>through</I></TD>
-</TR>
-<TR>
-<TD><CODE>to_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>to</I></TD>
-</TR>
-<TR>
-<TD><CODE>under_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>under</I></TD>
-</TR>
-<TR>
-<TD><CODE>with_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>with</I></TD>
-</TR>
-<TR>
-<TD><CODE>without_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-<TD><I>without</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Pron"></A>
-<H2>Pron - personal pronoun</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>he_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>he</I></TD>
-</TR>
-<TR>
-<TD><CODE>i_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>i</I></TD>
-</TR>
-<TR>
-<TD><CODE>it_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>it</I></TD>
-</TR>
-<TR>
-<TD><CODE>she_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>she</I></TD>
-</TR>
-<TR>
-<TD><CODE>they_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>they</I></TD>
-</TR>
-<TR>
-<TD><CODE>we_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>we</I></TD>
-</TR>
-<TR>
-<TD><CODE>youPl_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>you (plural)</I></TD>
-</TR>
-<TR>
-<TD><CODE>youPol_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>you (polite)</I></TD>
-</TR>
-<TR>
-<TD><CODE>youSg_Pron</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
-<TD><I>you (singular)</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Punct"></A>
-<H2>Punct</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>exclMarkPunct</CODE></TD>
-<TD><A HREF="#Punct">Punct</A></TD>
-<TD><I>!</I></TD>
-</TR>
-<TR>
-<TD><CODE>fullStopPunct</CODE></TD>
-<TD><A HREF="#Punct">Punct</A></TD>
-<TD><I>.</I></TD>
-</TR>
-<TR>
-<TD><CODE>questMarkPunct</CODE></TD>
-<TD><A HREF="#Punct">Punct</A></TD>
-<TD><I>?</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="QCl"></A>
-<H2>QCl - question clause, with all tenses</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>does John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>who walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>whom does John love</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>whom does John love today</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>why does John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>with who does John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>where is John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>what is there</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQCl</CODE></TD>
-<TD><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
-<TD><I>who is John</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="QS"></A>
-<H2>QS - question</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkQS</CODE></TD>
-<TD><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A></TD>
-<TD><I>who walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQS</CODE></TD>
-<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A></TD>
-<TD><I>who wouldn't have walked</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQS</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A></TD>
-<TD><I>does John walk</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Quant"></A>
-<H2>Quant - quantifier ('nucleus' of Det)</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>a_Quant</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>a</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkQuant</CODE></TD>
-<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>my</I></TD>
-</TR>
-<TR>
-<TD><CODE>no_Quant</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>no</I></TD>
-</TR>
-<TR>
-<TD><CODE>that_Quant</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>that</I></TD>
-</TR>
-<TR>
-<TD><CODE>the_Quant</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>the</I></TD>
-</TR>
-<TR>
-<TD><CODE>this_Quant</CODE></TD>
-<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-<TD><I>this</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="RCl"></A>
-<H2>RCl - relative clause, with all tenses</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkRCl</CODE></TD>
-<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
-<TD><I>that walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRCl</CODE></TD>
-<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
-<TD><I>which John loves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRCl</CODE></TD>
-<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
-<TD><I>which John loves today</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRCl</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
-<TD><I>such that John loves her</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="RP"></A>
-<H2>RP - relative pronoun</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkRP</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
-<TD><I>all the houses in which</I></TD>
-</TR>
-<TR>
-<TD><CODE>which_RP</CODE></TD>
-<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
-<TD><I>which</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="RS"></A>
-<H2>RS - relative</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkRS</CODE></TD>
-<TD><A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
-<TD><I>that walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRS</CODE></TD>
-<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
-<TD><I>that wouldn't have walked</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRS</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
-<TD><I>who walks and whom I know</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkRS</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
-<TD><I>who walks, whose son runs, and whom I know</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="S"></A>
-<H2>S - declarative sentence</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkS</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD><I>John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkS</CODE></TD>
-<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD><I>John wouldn't have walked</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkS</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD><I>John walks and I run</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkS</CODE></TD>
-<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD><I>John walks, I run and you sleep</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkS</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
-<TD><I>today, John walks</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="SC"></A>
-<H2>SC - embedded sentence or question</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="Subj"></A>
-<H2>Subj - subjunction</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>although_Subj</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD><I>although</I></TD>
-</TR>
-<TR>
-<TD><CODE>because_Subj</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD><I>because</I></TD>
-</TR>
-<TR>
-<TD><CODE>if_Subj</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD><I>if</I></TD>
-</TR>
-<TR>
-<TD><CODE>that_Subj</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD><I>that</I></TD>
-</TR>
-<TR>
-<TD><CODE>when_Subj</CODE></TD>
-<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
-<TD><I>when</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Temp"></A>
-<H2>Temp - temporal and aspectual features</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="Tense"></A>
-<H2>Tense - tense</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>conditionalTense</CODE></TD>
-<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
-<TD><I>(John would walk)</I></TD>
-</TR>
-<TR>
-<TD><CODE>futureTense</CODE></TD>
-<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
-<TD><I>(John will walk)</I></TD>
-</TR>
-<TR>
-<TD><CODE>pastTense</CODE></TD>
-<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
-<TD><I>(John walked)</I></TD>
-</TR>
-<TR>
-<TD><CODE>presentTense</CODE></TD>
-<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
-<TD><I>(John walks) [default]</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Text"></A>
-<H2>Text - text consisting of several phrases</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>emptyText</CODE></TD>
-<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>(empty text)</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>But John walks.</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A> <CODE>-&gt;</CODE> (<A HREF="#Punct">Punct</A>) <CODE>-&gt;</CODE> (<A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A>) <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>John walks? Yes.</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>John.</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>John walked.</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>John walks.</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>Did John walk?</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>Walk!</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkText</CODE></TD>
-<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
-<TD><I>Where? When? Here. Now!</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Utt"></A>
-<H2>Utt - sentence, question, word...</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>lets_Utt</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>let's walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>John walked</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>John walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>did John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>does John walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>love yourself</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD>(<A HREF="#ImpForm">ImpForm</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>don't love yourselves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>who</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>why</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>John</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>to walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>beer</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>fine</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkUtt</CODE></TD>
-<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>five</I></TD>
-</TR>
-<TR>
-<TD><CODE>no_Utt</CODE></TD>
-<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>no</I></TD>
-</TR>
-<TR>
-<TD><CODE>yes_Utt</CODE></TD>
-<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
-<TD><I>yes</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="V"></A>
-<H2>V - one-place verb</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="V2"></A>
-<H2>V2 - two-place verb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>have_V2</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-<TD><I>have</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="V2A"></A>
-<H2>V2A - verb with NP and AP complement</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="V2Q"></A>
-<H2>V2Q - verb with NP and Q complement</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="V2S"></A>
-<H2>V2S - verb with NP and S complement</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="V2V"></A>
-<H2>V2V - verb with NP and V complement</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="V3"></A>
-<H2>V3 - three-place verb</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="VA"></A>
-<H2>VA - adjective-complement verb</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="VP"></A>
-<H2>VP - verb phrase</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>love her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>send it to her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>want to walk</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>know that she walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>ask if she walks</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>become old</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>paint it red</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be warm</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be very warm</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be older than her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be married to her</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be a man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be an old man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be the man</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>sleep here</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>always sleep</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>paint it black</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVP</CODE></TD>
-<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>paint itself black</I></TD>
-</TR>
-<TR>
-<TD><CODE>passiveVP</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be loved</I></TD>
-</TR>
-<TR>
-<TD><CODE>passiveVP</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be loved by her</I></TD>
-</TR>
-<TR>
-<TD><CODE>progressiveVP</CODE></TD>
-<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>be sleeping</I></TD>
-</TR>
-<TR>
-<TD><CODE>reflexiveVP</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
-<TD><I>love itself</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="VPSlash"></A>
-<H2>VPSlash - verb phrase missing complement</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) loves</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) gives an apple</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) paints red</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) asks who sleeps</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) tells that we sleep</I></TD>
-</TR>
-<TR>
-<TD><CODE>mkVPSlash</CODE></TD>
-<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
-<TD><I>(whom) (John) forces to sleep</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="VQ"></A>
-<H2>VQ - question-complement verb</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="VS"></A>
-<H2>VS - sentence-complement verb</H2>
-<P>
-Lexical category, constructors given in
-<A HREF="#RParadigms">lexical paradigms</A>.
-</P>
-<A NAME="VV"></A>
-<H2>VV - verb-phrase-complement verb</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>can8know_VV</CODE></TD>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-<TD><I>can (capacity)</I></TD>
-</TR>
-<TR>
-<TD><CODE>can_VV</CODE></TD>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-<TD><I>can (possibility)</I></TD>
-</TR>
-<TR>
-<TD><CODE>must_VV</CODE></TD>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-<TD><I>must</I></TD>
-</TR>
-<TR>
-<TD><CODE>want_VV</CODE></TD>
-<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-<TD><I>want</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="Voc"></A>
-<H2>Voc - vocative or "please"</H2>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH>Type</TH>
-<TH COLSPAN="2">Example</TH>
-</TR>
-<TR>
-<TD><CODE>mkVoc</CODE></TD>
-<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
-<TD><I>John</I></TD>
-</TR>
-<TR>
-<TD><CODE>please_Voc</CODE></TD>
-<TD><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
-<TD><I>please</I></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc78"></A>
-<H1>Lexical Paradigms</H1>
-<A NAME="toc79"></A>
-<H2>Paradigms for Bulgarian</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/bulgarian/ParadigmsBul.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/bulgarian/ParadigmsBul.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>mkN001</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN002</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN002a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN003</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN004</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN005</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN006</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN007</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN007b</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN007a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN008</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN008b</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN008c</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN008a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN009</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN009a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN010</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN011</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN012</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN013</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN014</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN014a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN015</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN015a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN016</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN016a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN017</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN018</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN018a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN019</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN019a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN020</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN021</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN022</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN023</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN024a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN024</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN025</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN026</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN027</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN028</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN028a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN029</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN030</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN031</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN031a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN032</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN032a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN033</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN034</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN035</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN035a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN036</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN037</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN038</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN039</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN040</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN040a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN041</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN041a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN041b</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN042</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN043</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN043a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN044</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN045</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN046</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN047</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN048</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN049</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN050</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN051</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN052</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN052a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN053</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN054</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN055</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN056</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN057</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN057a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN058</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN059</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN060</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN061</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN062</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN063</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN064</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN065</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN066</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN067</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN068</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN069</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN070</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN071</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN072</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN073</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN074</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN075</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA076</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA077</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA078</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA079</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA080</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA081</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA082</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA082a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA083</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA084</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA084a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA085</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA086</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA087</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA088</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA089a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV142</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV143</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV144</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV145</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV145a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV145b</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV146</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV146a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV147</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV148</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV149</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV150</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV150a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV151</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV152</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV152a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV153</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV154</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV155</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV156</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV157</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV158</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV159</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV160</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV160a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV161</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV161a</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV162</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV163</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV164</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV165</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV166</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV167</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV168</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV169</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV170</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV171</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV172</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV173</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV174</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV175</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV176</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV177</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV178</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV179</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV180</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV181</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV182</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV183</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV184</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV185</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV186</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV187</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
-</TR>
-<TR>
-<TD><CODE>adjAdv</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>=</CODE></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc80"></A>
-<H2>Paradigms for Catalan</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/catalan/ParadigmsCat.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/catalan/ParadigmsCat.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(llum</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(disc,discos</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>compN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>deN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>aN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(Anna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(Pilar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(sol</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fort,forta,forts,fortes,fortament</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(bo</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <CODE>(millor</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>prefixA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(cantar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#Verbum">Verbum</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>special_ppV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>v2V</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>deVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>aVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc81"></A>
-<H2>Paradigms for Danish</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/danish/ParadigmsDan.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/danish/ParadigmsDan.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>utrum</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neutrum</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>noPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(bil</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(hus</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(bil,bilen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(bil,bilen,biler</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(dreng,drengen,drenge,drengene</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>regN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fin,fint</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(galen,galet,galne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(stor,stort,store,storre,storst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(snakke</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(leve,levde</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(drikke,</CODE> <CODE>drakk,</CODE> <CODE>drukket</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(spise,spiser,spises,spiste,spist,spis</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>vaereV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>depV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc82"></A>
-<H2>Paradigms for English</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/english/ParadigmsEng.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/english/ParadigmsEng.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>human</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>nonhuman</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(flash</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(man,men</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(man,men,man's,men's</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkQuant</CODE></TD>
-<TD><CODE>(this,</CODE> <CODE>these</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkQuant</CODE></TD>
-<TD><CODE>(no_sg,</CODE> <CODE>no_pl,</CODE> <CODE>none_sg,</CODE> <CODE>non_pl</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkOrd</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(happy</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fat,fatter</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(good,better,best,well</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>compoundA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>simpleA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>noPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(cry</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(stop,</CODE> <CODE>stopped</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(drink,</CODE> <CODE>drank,</CODE> <CODE>drunk</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(run,</CODE> <CODE>ran,</CODE> <CODE>run,</CODE> <CODE>running</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(go,</CODE> <CODE>goes,</CODE> <CODE>went,</CODE> <CODE>gone,</CODE> <CODE>going</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>partV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkSubj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Subj" TITLE="Subj - subjunction">Subj</A> <CODE>=</CODE> <CODE>\s</CODE> <CODE>-&gt;</CODE> <CODE>lin</CODE> <A HREF="#Subj" TITLE="Subj - subjunction">Subj</A> <CODE>{s</CODE> <CODE>=</CODE> <CODE>s}</CODE></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc83"></A>
-<H2>Paradigms for Finnish</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/finnish/ParadigmsFin.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/finnish/ParadigmsFin.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>partitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>essive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>translative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>inessive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>elative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>illative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>adessive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>ablative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>allative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>prePrep</CODE></TD>
-<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>postPrep</CODE></TD>
-<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>postGenPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>casePrep</CODE></TD>
-<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(talo</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(savi,savia</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(vesi,veden,vesiä</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(vesi,veden,vesiä,vettä</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(olo,olon,olona,oloa,oloon,olojen,oloja,oloina,oloissa,oloihin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(pika</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <CODE>(juna</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(oma</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <CODE>(tunto</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>(kivempaa,kivinta</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(hyva,parempi,paras</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <CODE>(hyvin,paremmin,parhaiten</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>=</CODE> <CODE>\a,p</CODE> <CODE>-&gt;</CODE> <CODE>a</CODE> <CODE>**</CODE> <CODE>{c2</CODE> <CODE>=</CODE> <CODE>p</CODE> <CODE>lock_A2</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(huutaa</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(huutaa,huusi</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(huutaa,huudan,huusi</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>huusin,huusi,huusisi,huutanut,huudettu,huutanee</CODE></TD>
-<TD><CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>caseV</CODE></TD>
-<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>vOlla</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVVf</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#InfForm">InfForm</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Vf</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#InfForm">InfForm</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc84"></A>
-<H2>Paradigms for French</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/french/ParadigmsFre.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/french/ParadigmsFre.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(cheval</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(foie</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(oeil,yeux</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>deN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>aN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(cher</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(sec,seche</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(banal,banale,banaux,banalement</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>prefixA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(finir</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(jeter,jette,jettera</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>etreV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>=</CODE> <CODE>\s</CODE> <CODE>-&gt;</CODE> <CODE>dirV2</CODE> <CODE>(regV</CODE> <CODE>s)</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>=</CODE> <CODE>dirV2</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>=</CODE> <CODE>mmkV2</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>deVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>aVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc85"></A>
-<H2>Paradigms for German</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/german/ParadigmsGer.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/german/ParadigmsGer.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neuter</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(Stufe</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(Bild,Bilder</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(x1,_,_,_,_,x6</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(nom,gen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(nom,acc,dat,gen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(gut,besser,beste</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(gut,gute,besser,beste</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>invarA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>accPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>datPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>von_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>zu_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(führen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(sehen,sieht,sah,sähe,gesehen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(geben,</CODE> <CODE>gibt,</CODE> <CODE>gib,</CODE> <CODE>gab,</CODE> <CODE>gäbe,</CODE> <CODE>gegeben</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>no_geV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>fixprefixV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>seinV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>habenV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>accdatV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc86"></A>
-<H2>Paradigms for Italian</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/italian/ParadigmsIta.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/italian/ParadigmsIta.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>--Prep</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(cane</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(carne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(uomo,uomini</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(bianco</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(solo,sola,soli,sole,solamente</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>prefixA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>=</CODE> <CODE>prefA</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#Verbo">Verbo</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>essereV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>v2V</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>deVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>aVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc87"></A>
-<H2>Paradigms for Norwegian</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/norwegian/ParadigmsNor.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/norwegian/ParadigmsNor.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neutrum</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>noPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(bil,bilen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(dreng,drengen,drenger,drengene</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>regN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(fin,fint</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(galen,galet,galne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(stor,stort,store,storre,storst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(snakke</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(leve,levde</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(drikke,</CODE> <CODE>drakk,</CODE> <CODE>drukket</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(spise,spiser,spises,spiste,spist,spis</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>vaereV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>depV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc88"></A>
-<H2>Paradigms for Polish</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/polish/ParadigmsPol.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/polish/ParadigmsPol.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculineP</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculineA</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculineI</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neuter</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>personal</CODE></TD>
-<TD><A HREF="#Animacy">Animacy</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>instrumental</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>locative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>vocative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKapiel</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLodz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSul</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKonew</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWies</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDlon</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSiec</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDrzwi</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKosc</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nNoc</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWesz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKrolowa</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nReka</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nApteka</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDroga</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMatka</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nZiemia</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nFala</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLilia</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKobieta</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLiczba</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSila</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDoba</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWoda</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSzkola</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWojna</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWiosna</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMgla</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nGwiazda</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nUlica</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nOwca</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDanie</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSerce</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nNasienie</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMorze</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nImie</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nCiele</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nUdo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPiwo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nZero</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nNiebo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nTlo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nZebro</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nOkno</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nGniazdo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWojsko</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nJajo</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nJablko</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nStudio</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDziecko</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nUcho</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nOko</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nFacet</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nArab</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPrzyjaciel</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKowal</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLekarz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKrol</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMaz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWrog</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKsiadz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nOjciec</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nBrat</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nBog</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nChlopiec</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMezczyzna</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKon</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWaz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPtak</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKot</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPies</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nBat</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nChleb</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSer</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nZab</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKosciol</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nCien</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPien</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLisc</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKoc</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWiersz</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDzien</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKajak</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMlotek</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nMiech</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nSad</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDym</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWal</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDol</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nOgrod</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nKwiat</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nLas</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nWiatr</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPopiol</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nPokoj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nGaj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nBrzeg</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nRok</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nProg</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nStatek</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>nDom</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(nomSg,</CODE> <CODE>genSg,</CODE> <CODE>datSg,</CODE> <CODE>accSg,</CODE> <CODE>instrSg,</CODE> <CODE>locSg,</CODE> <CODE>vocSg,</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkFun</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>nullPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>=</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>[]</CODE> <CODE>c=</CODE> <A HREF="#GenNoPrep">GenNoPrep</A> <CODE>lock_Prep=&lt;&gt;}</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>datPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>accPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>instrPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>bez_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--without</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>dla_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--for</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>do_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--to</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>dookola_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--(a)round</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>kolo_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--near</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>obok_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--beside,</CODE> <CODE>next</CODE> <CODE>to</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>od_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--from</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>oprocz_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--out</CODE> <CODE>of</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>podczas_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--during</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mimo_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>spod_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--under</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>u_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--by,</CODE> <CODE>with</CODE> <CODE>(I</CODE> <CODE>was</CODE> <CODE>by</CODE> <A HREF="#Peter">Peter</A> <CODE>last</CODE> <CODE>sunday.)</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>wzdluz_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--along</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>z_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--from</CODE> <CODE>(I</CODE> <CODE>come</CODE> <CODE>from</CODE> <CODE>Italy.),</CODE> <CODE>of/</CODE> <CODE>from</CODE> <CODE>(The</CODE> <CODE>ring</CODE> <CODE>is</CODE> <CODE>made</CODE> <CODE>of</CODE> <CODE>silver.)</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>zamiast_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--instead</CODE> <CODE>of</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>znad_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--over,</CODE> <CODE>above</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>zza_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>--behind</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>dzieki_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>przeciw_Prep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc89"></A>
-<H2>Paradigms for Romanian</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/romanian/ParadigmsRon.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/romanian/ParadigmsRon.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>NGender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#NGender">NGender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#NGender">NGender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neuter</CODE></TD>
-<TD><A HREF="#NGender">NGender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>Masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Anim</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>animate</CODE></TD>
-<TD><A HREF="#Anim">Anim</A></TD>
-</TR>
-<TR>
-<TD><CODE>inanimate</CODE></TD>
-<TD><CODE>Anim;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Preposition</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>NCase</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>Acc</CODE></TD>
-<TD><A HREF="#NCase">NCase</A></TD>
-</TR>
-<TR>
-<TD><CODE>Dat</CODE></TD>
-<TD><A HREF="#NCase">NCase</A></TD>
-</TR>
-<TR>
-<TD><CODE>Gen</CODE></TD>
-<TD><A HREF="#NCase">NCase</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>NCase-&gt;</CODE> <A HREF="#Bool">Bool</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#NCase">NCase</A> <CODE>-&gt;</CODE> <CODE>Prep;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>noPrep</CODE></TD>
-<TD><A HREF="#NCase">NCase</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>mkPropN</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>mkPropNI</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>mkPropNoun</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>mkProperNoun;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkInAn</CODE></TD>
-<TD><A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>\romania</CODE> <CODE>-&gt;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPropNI</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPropN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>\Ion</CODE> <CODE>-&gt;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPropNoun</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>\Ion,</CODE> <CODE>gen</CODE> <CODE>-&gt;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkProperNoun</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>\Ion,</CODE> <CODE>gen,</CODE> <CODE>num</CODE> <CODE>-&gt;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc90"></A>
-<H2>Paradigms for Russian</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/russian/ParadigmsRus.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/russian/ParadigmsRus.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neuter</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>instructive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>prepositional</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(karta</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(tigr</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(nomSg,</CODE> <CODE>genSg,</CODE> <CODE>datSg,</CODE> <CODE>accSg,</CODE> <CODE>instSg,</CODE> <CODE>preposSg,</CODE> <CODE>prepos2Sg,</CODE> <CODE>nomPl,</CODE> <CODE>genPl,</CODE> <CODE>datPl,</CODE> <CODE>accPl,</CODE> <CODE>instPl,</CODE> <CODE>preposPl</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>nounPN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(positive</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(positive,</CODE> <CODE>comparative</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#Aspect">Aspect</A> <CODE>-&gt;</CODE> <CODE>(presentSgP1,presentSgP2,presentSgP3,</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>pastSgP1,imperative,infinitive</CODE></TD>
-<TD><CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>tvDirDir</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc91"></A>
-<H2>Paradigms for Spanish</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/spanish/ParadigmsSpa.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/spanish/ParadigmsSpa.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>accusative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>dative</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(luz</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(baston,bastones</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>compN</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>deN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>aN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(Anna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(Pilar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(util</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(solo,sola,solos,solas,solamente</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(bueno</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <CODE>(mejor</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>prefixA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(pagar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(mostrar,muestro</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#Verbum">Verbum</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>special_ppV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>v2V</CODE></TD>
-<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>dirdirV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>deVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>aVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc92"></A>
-<H2>Paradigms for Swedish</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/swedish/ParadigmsSwe.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/swedish/ParadigmsSwe.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>Gender</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>utrum</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>neutrum</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>Number</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><A HREF="#Number">Number</A></TD>
-</TR>
-<TR>
-<TD><CODE>Case</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-<TR>
-<TD><CODE>nominative</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>genitive</CODE></TD>
-<TD><A HREF="#Case">Case</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>noPrep</CODE></TD>
-<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(apa</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(lik</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(nyckel,nycklar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(museum,museet,museer,museerna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>(jesus,jesu</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(billig</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(bred,brett</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(tung,tyngre,tyngst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(god,gott,goda,battre,bast</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>(liten,litet,lilla,sma,mindre,minst,minsta</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>compoundA</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(stämmer</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(dricka,drack,druckit</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>(gå,går,gå,gick,gått,gången</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>depV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>reflV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV0</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V0">V0</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVS</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2S</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVA</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2A</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkVQ</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2Q</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAS</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AS">AS</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2S</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2S">A2S</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkAV</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AV">AV</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA2V</CODE></TD>
-<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2V">A2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>V0</CODE></TD>
-<TD><A HREF="#Type">Type</A></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc93"></A>
-<H2>Paradigms for Urdu</H2>
-<P>
-<a name="RParadigms"></a>
-</P>
-<P>
-source <A HREF="../src/urdu/ParadigmsUrd.gf"><CODE>http://www.grammaticalframework.org/lib/resource/src/urdu/ParadigmsUrd.gf</CODE></A>
-</P>
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TH>Function</TH>
-<TH COLSPAN="2">Type</TH>
-</TR>
-<TR>
-<TD><CODE>masculine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>feminine</CODE></TD>
-<TD><A HREF="#Gender">Gender</A></TD>
-</TR>
-<TR>
-<TD><CODE>singular</CODE></TD>
-<TD><CODE>Number;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>plural</CODE></TD>
-<TD><CODE>Number;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN</CODE></TD>
-<TD><CODE>(x1,_,_,_,_,x6</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkN2</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N2;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkN3</CODE></TD>
-<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkCmpdNoun</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>=</CODE> <CODE>\s</CODE> <CODE>-&gt;</CODE> <CODE>let</CODE> <CODE>n</CODE> <CODE>=</CODE> <CODE>regNoun</CODE> <CODE>s</CODE> <CODE>in</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>n.s</CODE> <CODE>!</CODE> <A HREF="#Sg">Sg</A> <CODE>g</CODE> <CODE>=</CODE> <CODE>n.g</CODE> <CODE>lock_PN</CODE> <CODE>=</CODE> <CODE>&lt;&gt;}</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>personalPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#UPerson">UPerson</A> <CODE>-&gt;</CODE> <A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>=</CODE> <CODE>\s1,s2,s3,sp,nn,g,p</CODE> <CODE>-&gt;</CODE> <CODE>let</CODE> <CODE>n</CODE> <CODE>=</CODE> <CODE>mkPron</CODE> <CODE>s1</CODE> <CODE>s2</CODE> <CODE>s3</CODE> <CODE>in</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>n.s</CODE> <CODE>a</CODE> <CODE>=</CODE> <CODE>toAgr</CODE> <CODE>nn</CODE> <CODE>p</CODE> <CODE>g</CODE> <CODE>ps</CODE> <CODE>=</CODE> <CODE>sp</CODE> <CODE>lock_Pron</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>demoPN</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>=</CODE> <CODE>\s1,s2,s3</CODE> <CODE>-&gt;</CODE> <CODE>let</CODE> <CODE>n</CODE> <CODE>=</CODE> <CODE>makeDemonPronForm</CODE> <CODE>s1</CODE> <CODE>s2</CODE> <CODE>s3</CODE> <CODE>in</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>n.s</CODE> <CODE>a</CODE> <CODE>=</CODE> <CODE>defaultAgr</CODE> <CODE>lock_Quant</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkDet</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>=</CODE> <CODE>\s1,s2,s3,s4,nb</CODE> <CODE>-&gt;</CODE> <CODE>let</CODE> <CODE>dt</CODE> <CODE>=</CODE> <CODE>makeDet</CODE> <CODE>s1</CODE> <CODE>s2</CODE> <CODE>s3</CODE> <CODE>s4</CODE> <CODE>nb</CODE> <CODE>in</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>dt.s</CODE> <CODE>n</CODE> <CODE>=</CODE> <CODE>nb</CODE> <CODE>lock_Det</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkIP</CODE></TD>
-<TD><CODE>(x1,x2,x3:Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>=</CODE> <CODE>\s1,s2,s3,n,g</CODE> <CODE>-&gt;</CODE> <CODE>let</CODE> <CODE>p</CODE> <CODE>=</CODE> <CODE>mkIntPronForm</CODE> <CODE>s1</CODE> <CODE>s2</CODE> <CODE>s3</CODE> <CODE>in</CODE> <CODE>{</CODE> <CODE>s</CODE> <CODE>=</CODE> <CODE>p.s</CODE> <CODE>n</CODE> <CODE>=</CODE> <CODE>n</CODE> <CODE>g</CODE> <CODE>=</CODE> <CODE>g</CODE> <CODE>lock_IP</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>Str-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkA</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkV3</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>V3;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkV2V</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Bool">Bool</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
-</TR>
-<TR>
-<TD><CODE>compoundV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>=</CODE> <CODE>\s,v</CODE> <CODE>-&gt;</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>\\vf</CODE> <CODE>=&gt;</CODE> <CODE>s</CODE> <CODE>++</CODE> <CODE>v.s</CODE> <CODE>!</CODE> <CODE>vf</CODE> <CODE>lock_V</CODE> <CODE>=</CODE> <CODE>&lt;&gt;}</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>compoundV</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>=</CODE> <CODE>\s,v</CODE> <CODE>-&gt;</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>\\vf</CODE> <CODE>=&gt;</CODE> <CODE>s</CODE> <CODE>++</CODE> <CODE>v.s</CODE> <CODE>!</CODE> <CODE>vf</CODE> <CODE>lock_V</CODE> <CODE>=</CODE> <CODE>&lt;&gt;}</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkAdv</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>=</CODE> <CODE>\str</CODE> <CODE>-&gt;</CODE> <CODE>{s</CODE> <CODE>=</CODE> <CODE>str</CODE> <CODE>lock_Adv</CODE> <CODE>=</CODE> <CODE>&lt;&gt;};</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkPrep</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>=</CODE> <CODE>\y</CODE> <CODE>-&gt;</CODE> <CODE>mk2Conj</CODE> <CODE>[]</CODE> <CODE>y</CODE> <CODE>plural</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>=</CODE> <CODE>\y,n</CODE> <CODE>-&gt;</CODE> <CODE>mk2Conj</CODE> <CODE>[]</CODE> <CODE>y</CODE> <CODE>n</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>=</CODE> <CODE>\x,y</CODE> <CODE>-&gt;</CODE> <CODE>mk2Conj</CODE> <CODE>x</CODE> <CODE>y</CODE> <CODE>plural</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkConj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>=</CODE> <CODE>mk2Conj</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mk2Conj</CODE></TD>
-<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>=</CODE> <CODE>\x,y,n</CODE> <CODE>-&gt;</CODE></TD>
-</TR>
-<TR>
-<TD><CODE>mkVV</CODE></TD>
-<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>=</CODE> <CODE>\v</CODE> <CODE>-&gt;</CODE> <CODE>lin</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>(v</CODE> <CODE>**</CODE> <CODE>{isAux</CODE> <CODE>=</CODE> <CODE>False});</CODE></TD>
-</TR>
-</TABLE>
-
-<A NAME="toc94"></A>
-<H1>Browsing the libraries with GF commands</H1>
-<P>
-<B>New</B>: Browsing by syntax editor 
-<A HREF="../../../demos/resource-api/editor.html">directly on the web</A>.
-</P>
-<P>
-All of the following assume
-</P>
-<PRE>
-    cd $GF_LIB_PATH
-</PRE>
-<P>
-To try out inflection paradigms:
-</P>
-<PRE>
-    &gt; i -path=alltenses -retain alltenses/ParadigmsGer.gfo
-    &gt; cc mkN "Farbe"
-</PRE>
-<P>
-To try out overloaded syntax, test lexicon, and inflection paradigms:
-</P>
-<PRE>
-    &gt; i -path=alltenses -retain alltenses/TryGer.gfo
-    &gt; cc mkCl (mkNP this_Quant (mkN "Farbe")) (mkA "dunkel")
-</PRE>
-<P></P>
-<A NAME="toc95"></A>
-<H1>An Example of Usage</H1>
-<P>
-The standard way of building an application has the following modules.
-</P>
-<P>
-An abstract syntax:
-</P>
-<PRE>
-    abstract Music = {    
-    cat 
-      Kind, 
-      Property ;
-    fun 
-      PropKind : Kind -&gt; Property -&gt; Kind ; 
-      Song : Kind ;
-      American : Property ;
-    }
-</PRE>
-<P>
-A domain lexicon interface:
-</P>
-<PRE>
-    interface LexMusic = open Cat in {
-    oper
-      song_N : N ;
-      american_A : A ;
-    }
-</PRE>
-<P>
-A functor on <CODE>Syntax</CODE> and the domain lexicon interface:
-</P>
-<PRE>
-    incomplete concrete MusicI of Music = open Syntax, MusicLex in {
-    lincat 
-      Kind = CN ;
-      Property = AP ;
-    lin
-      PropKind k p = mkCN p k ;
-      Song = mkCN song_N ;
-      American = mkAP american_A ;
-    }
-</PRE>
-<P>
-For each language, an instance of the domain lexicon:
-</P>
-<PRE>
-    instance LexMusicGer of LexMusic = CatGer ** open ParadigmsGer in {    
-    oper
-      song_N = mkN "Lied" "Lieder" neuter ;
-      american_A = mkA "amerikanisch" ;
-    }
-</PRE>
-<P>
-For each language, an instantiation of the functor:
-</P>
-<PRE>
-    --# -path=.:present:prelude
-  
-    concrete MusicGer of Music = MusicI with
-      (Syntax = SyntaxGer),
-      (LexMusic = LexMusicGer) ;
-</PRE>
-<P></P>
-
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<LINK REL="stylesheet" TYPE="text/css" HREF="./revealpopup.css">
+<TITLE>GF Resource Grammar Library: Synopsis</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>GF Resource Grammar Library: Synopsis</H1>
+<FONT SIZE="4">
+<I>B. Bringert, T. Hallgren, and A. Ranta</I><BR>
+</FONT></CENTER>
+
+<A NAME="toc1"></A>
+<H1>Introduction</H1>
+<P>
+The GF Resource Grammar Library is the standard library for Grammatical Framework.
+It covers the morphology and basic syntax of currently 16 languages.
+</P>
+<P>
+This document contains the most important parts of the GF Resource Grammar API,
+as needed by a GF application programmer.
+It has been machine-generated from the source files; there are links
+to the relevant source files, which give more information. Some of the files have
+not yet been prepared so that the machine generated documentation has the nicest
+possible format.
+</P>
+<P>
+The main contents are:
+</P>
+<UL>
+<LI><A HREF="#toc2">Chapter 1</A>: categories, with links to the functions for
+constructing trees in them.
+<LI><A HREF="#toc5">Chapter 2</A>: syntactic construction functions, with cross-links and
+examples. 
+<LI><A HREF="#toc83">Chapter 3</A>: morphological paradigms.
+<LI><A HREF="#toc100">Chapter 4</A>: how to "browse" the library by 
+loading the grammars into the <CODE>gf</CODE> command editor.
+<LI><A HREF="#toc101">Chapter 5</A>: a brief example of how application grammars can
+use the resource modules. 
+<LI><A HREF="#toc102">Detailed table of contents</A>.
+</UL>
+
+<P>
+Many examples in <A HREF="#toc5">Chapter 2</A> can be seen in multiple languages by hovering the
+mouse over the example, as shown in the following screenshot:
+</P>
+<P>
+<IMG ALIGN="middle" SRC="hovering.png" BORDER="0" ALT="">
+</P>
+<P>
+Other relevant documents:
+</P>
+<UL>
+<LI><A HREF="./status.html"><CODE>status.html</CODE></A>: the current status of different languages
+  and the authors of each grammar
+<LI><A HREF="http://www.grammaticalframework.org/doc/gf-lrec-2010.pdf">Resource Grammar Tutorial</A>
+  as presented in LREC-2010.
+<LI>Paper "The GF Resource Grammar Library" by A. Ranta
+  (<I>Linguistic Issues in Language Technology</I>, 2 (2), 2009). An overview of
+  the library with linguistic motivations.
+  <A HREF="http://elanguage.net/journals/index.php/lilt/article/viewFile/214/158">PDF</A>
+<LI>Paper "Grammars as Software Libraries" by A. Ranta
+  (In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
+   <I>From Semantics to Computer Science</I>, Cambridge University Press, 
+   Cambridge, pp. 281--308, 2009).
+  The library from a software engineering point of view.
+  <A HREF="http://www.cse.chalmers.se/~aarne/old/articles/libraries-kahn.pdf">PDF</A>
+</UL>
+
+<A NAME="toc2"></A>
+<H1>Categories</H1>
+<P>
+Source 1: <A HREF="http://www.grammaticalframework.org/lib/src/abstract/Common.gf"><CODE>../src/abstract/Common.gf</CODE></A>
+</P>
+<P>
+Source 2: <A HREF="http://www.grammaticalframework.org/lib/src/abstract/Cat.gf"><CODE>../src/abstract/Cat.gf</CODE></A>
+</P>
+<A NAME="toc3"></A>
+<H2>A hierarchic view</H2>
+<P>
+The chart below shows the categories in a hierarchical top-down order.
+The edges do not define the complete dependency structure; if they did,
+the graph would have many many more edges, and also many cycles. The precise
+meaning of a directed edge from <I>C</I> to <I>D</I> is: there is a constructor
+of <I>C</I> that takes <I>D</I> as an argument. What the constructors exactly are,
+and what other arguments they take, is described by separate tables for
+each category.
+</P>
+<TABLE ALIGN="center" BORDER="1" CELLPADDING="4">
+<TR>
+<TD ALIGN="right"><center><IMG ALIGN="middle" SRC="categories.png" USEMAP="#categories" BORDER="0" ALT=""></center></TD>
+</TR>
+</TABLE>
+
+<map id="categories" name="categories">
+<area shape="poly" href="#Text" TITLE="Text - text consisting of several phrases" alt="" coords="690,23 688,17 685,12 679,8 672,5 664,4 656,5 649,8 643,12 640,17 638,23 640,29 643,34 649,38 656,41 664,42 672,41 679,38 685,34 688,29"/>
+<area shape="poly" href="#Punct" title="Punct" alt="" coords="657,95 656,89 652,84 646,80 638,77 629,76 620,77 612,80 606,84 602,89 600,95 602,101 606,106 612,110 620,113 629,114 638,113 646,110 652,106 656,101"/>
+<area shape="poly" href="#Phr" TITLE="Phr - phrase in a text" alt="" coords="726,95 725,89 721,84 715,80 708,77 700,76 692,77 685,80 679,84 676,89 675,95 676,101 679,106 685,110 692,113 700,114 708,113 715,110 721,106 725,101"/>
+<area shape="poly" href="#PConj" TITLE="PConj - phrase-beginning conjunction" alt="" coords="658,167 656,162 652,156 645,152 637,150 628,149 619,150 610,152 604,156 600,162 598,167 600,173 604,179 610,183 619,185 628,186 637,185 645,183 652,179 656,173"/>
+<area shape="poly" href="#Utt" TITLE="Utt - sentence, question, word..." alt="" coords="726,167 725,162 721,156 715,152 708,150 700,149 692,150 685,152 679,156 676,162 675,167 676,173 679,179 685,183 692,185 700,186 708,185 715,183 721,179 725,173"/>
+<area shape="poly" href="#Voc" TITLE="Voc - vocative or "please"" alt="" coords="794,167 793,162 789,156 784,152 777,150 769,149 761,150 754,152 748,156 744,162 743,167 744,173 748,179 754,183 761,185 769,186 777,185 784,183 789,179 793,173"/>
+<area shape="poly" href="#Imp" TITLE="Imp - imperative" alt="" coords="657,240 656,234 652,229 647,225 640,222 632,221 624,222 617,225 611,229 607,234 606,240 607,246 611,251 617,255 624,258 632,259 640,258 647,255 652,251 656,246"/>
+<area shape="poly" href="#S" TITLE="S - declarative sentence" alt="" coords="726,240 725,234 721,229 715,225 708,223 700,222 692,223 685,225 679,229 676,234 675,240 676,245 679,250 685,254 692,257 700,258 708,257 715,254 721,250 725,245"/>
+<area shape="poly" href="#QS" TITLE="QS - question" alt="" coords="870,240 868,234 865,229 859,225 852,222 844,221 836,222 829,225 823,229 819,234 818,240 819,246 823,251 829,255 836,258 844,259 852,258 859,255 865,251 868,246"/>
+<area shape="poly" href="#Tense" TITLE="Tense - tense" alt="" coords="521,312 519,306 515,301 509,297 501,294 492,293 483,294 475,297 469,301 464,306 463,312 464,318 469,323 475,327 483,330 492,331 501,330 509,327 515,323 519,318"/>
+<area shape="poly" href="#Ant" TITLE="Ant - anteriority" alt="" coords="589,312 588,306 584,301 578,297 571,294 563,293 555,294 548,297 542,301 539,306 538,312 539,318 542,323 548,327 555,330 563,331 571,330 578,327 584,323 588,318"/>
+<area shape="poly" href="#Pol" TITLE="Pol - polarity" alt="" coords="657,312 656,306 652,301 647,297 640,294 632,293 624,294 617,297 611,301 607,306 606,312 607,318 611,323 617,327 624,330 632,331 640,330 647,327 652,323 656,318"/>
+<area shape="poly" href="#Cl" TITLE="Cl - declarative clause, with all tenses" alt="" coords="726,312 725,306 721,301 715,297 708,294 700,293 692,294 685,297 679,301 676,306 675,312 676,318 679,323 685,327 692,330 700,331 708,330 715,327 721,323 725,318"/>
+<area shape="poly" href="#ListS" title="ListS" alt="" coords="798,312 797,306 793,301 787,297 779,294 771,293 762,294 754,297 748,301 745,306 743,312 745,318 748,323 754,327 762,330 771,331 779,330 787,327 793,323 797,318"/>
+<area shape="poly" href="#Conj" TITLE="Conj - conjunction" alt="" coords="867,312 866,306 862,301 856,297 849,294 841,293 833,294 826,297 820,301 816,306 815,312 816,318 820,323 826,327 833,330 841,331 849,330 856,327 862,323 866,318"/>
+<area shape="poly" href="#QCl" TITLE="QCl - question clause, with all tenses" alt="" coords="945,312 943,306 940,301 934,297 927,294 919,293 911,294 904,297 898,301 895,306 893,312 895,318 898,323 904,327 911,330 919,331 927,330 934,327 940,323 943,318"/>
+<area shape="poly" href="#NP" TITLE="NP - noun phrase (subject or object)" alt="" coords="270,384 269,379 265,373 260,369 252,366 244,366 237,366 229,369 224,373 220,379 219,384 220,390 224,395 229,400 237,402 244,403 252,402 260,400 265,395 269,390"/>
+<area shape="poly" href="#VP" TITLE="VP - verb phrase" alt="" coords="636,384 634,379 631,373 625,369 618,366 610,366 602,366 595,369 589,373 585,379 584,384 585,390 589,395 595,400 602,402 610,403 618,402 625,400 631,395 634,390"/>
+<area shape="rect" href="#Adv" TITLE="Adv - verb-phrase-modifying adverb" alt="" coords="702,367,753,401"/>
+<area shape="poly" href="#Predet" TITLE="Predet - predeterminer (prefixed Quant)" alt="" coords="65,457 63,451 59,446 52,441 44,439 34,438 25,439 16,441 10,446 5,451 4,457 5,462 10,468 16,472 25,475 34,475 44,475 52,472 59,468 63,462"/>
+<area shape="poly" href="#Pron" TITLE="Pron - personal pronoun" alt="" coords="133,457 132,451 129,446 123,441 116,439 108,438 99,439 92,441 86,446 83,451 82,457 83,462 86,468 92,472 99,475 108,475 116,475 123,472 129,468 132,462"/>
+<area shape="rect" href="#PN" TITLE="PN - proper name" alt="" coords="150,440,202,474"/>
+<area shape="poly" href="#Det" TITLE="Det - determiner phrase" alt="" coords="270,457 269,451 265,446 260,441 252,439 244,438 237,439 229,441 224,446 220,451 219,457 220,462 224,468 229,472 237,475 244,475 252,475 260,472 265,468 269,462"/>
+<area shape="poly" href="#CN" TITLE="CN - common noun (without determiner)" alt="" coords="339,457 337,451 334,446 328,441 321,439 313,438 305,439 298,441 292,446 289,451 287,457 289,462 292,468 298,472 305,475 313,475 321,475 328,472 334,468 337,462"/>
+<area shape="poly" href="#ListNP" title="ListNP" alt="" coords="420,457 419,451 414,446 407,441 398,439 388,438 378,439 369,441 362,446 358,451 356,457 358,462 362,468 369,472 378,475 388,475 398,475 407,472 414,468 419,462"/>
+<area shape="poly" href="#AdV" TITLE="Adv - verb-phrase-modifying adverb" alt="" coords="489,457 488,451 484,446 479,441 471,439 463,438 455,439 448,441 442,446 439,451 437,457 439,462 442,468 448,472 455,475 463,475 471,475 479,472 484,468 488,462"/>
+<area shape="rect" href="#V" TITLE="V - one-place verb" alt="" coords="506,440,616,474"/>
+<area shape="poly" href="#AP" TITLE="AP - adjectival phrase" alt="" coords="685,457 684,451 680,446 674,441 667,439 659,438 651,439 644,441 639,446 635,451 634,457 635,462 639,468 644,472 651,475 659,475 667,475 674,472 680,468 684,462"/>
+<area shape="poly" href="#Subj" TITLE="Subj - subjunction" alt="" coords="753,457 752,451 749,446 743,441 736,439 728,438 720,439 713,441 707,446 703,451 702,457 703,462 707,468 713,472 720,475 728,475 736,475 743,472 749,468 752,462"/>
+<area shape="poly" href="#ListAdj" title="ListAdj" alt="" coords="837,457 836,451 831,446 824,441 814,439 804,438 794,439 784,441 777,446 772,451 770,457 772,462 777,468 784,472 794,475 804,475 814,475 824,472 831,468 836,462"/>
+<area shape="poly" href="#Art" title="Art" alt="" coords="90,529 89,523 85,518 80,514 73,511 65,510 57,511 50,514 44,518 40,523 39,529 40,535 44,540 50,544 57,547 65,548 73,547 80,544 85,540 89,535"/>
+<area shape="poly" 'href="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"' alt="" coords="166,529 165,523 161,518 154,514 146,511 137,510 128,511 120,514 113,518 109,523 108,529 109,535 113,540 120,544 128,547 137,548 146,547 154,544 161,540 165,535"/>
+<area shape="poly" href="#Num" TITLE="Num - number determining element" alt="" coords="237,529 235,523 232,518 226,514 218,511 210,510 202,511 195,514 189,518 185,523 184,529 185,535 189,540 195,544 202,547 210,548 218,547 226,544 232,540 235,535"/>
+<area shape="poly" href="#Ord" TITLE="Ord - ordinal number (used in Det)" alt="" coords="305,529 304,523 300,518 295,514 288,511 280,510 272,511 265,514 259,518 255,523 254,529 255,535 259,540 265,544 272,547 280,548 288,547 295,544 300,540 304,535"/>
+<area shape="rect" href="#N" TITLE="N - common noun" alt="" coords="323,512,387,546"/>
+<area shape="poly" href="#RS" TITLE="RS - relative" alt="" coords="456,529 454,523 451,518 445,514 438,511 430,510 422,511 415,514 409,518 406,523 404,529 406,535 409,540 415,544 422,547 430,548 438,547 445,544 451,540 454,535"/>
+<area shape="poly" href="#Card" TITLE="Card - cardinal number" alt="" coords="236,601 235,595 231,590 226,586 218,583 210,582 202,583 195,586 189,590 186,595 184,601 186,607 189,612 195,616 202,619 210,620 218,619 226,616 231,612 235,607"/>
+<area shape="poly" href="#Numeral" TITLE="Numeral - cardinal or ordinal in words" alt="" coords="216,674 214,668 206,662 194,658 179,656 162,655 145,656 130,658 118,662 110,668 107,674 110,679 118,685 130,689 145,691 162,692 179,691 194,689 206,685 214,679"/>
+<area shape="poly" href="#AdN" TITLE="AdN - numeral-modifying adverb" alt="" coords="285,674 283,668 280,662 274,658 267,656 259,655 251,656 244,658 238,662 234,668 233,674 234,679 238,685 244,689 251,691 259,692 267,691 274,689 280,685 283,679"/>
+<area shape="poly" href="#CAdv" TITLE="CAdv - comparative adverb" alt="" coords="288,746 286,740 282,735 276,731 268,728 259,727 250,728 242,731 235,735 231,740 230,746 231,752 235,757 242,761 250,764 259,765 268,764 276,761 282,757 286,752"/>
+<area shape="poly" href="#RCl" TITLE="RCl - relative clause, with all tenses" alt="" coords="456,601 454,595 451,590 445,586 438,583 430,582 422,583 415,586 409,590 406,595 404,601 406,607 409,612 415,616 422,619 430,620 438,619 445,616 451,612 454,607"/>
+<area shape="poly" href="#AdA" TITLE="AdA - adjective-modifying adverb" alt="" coords="617,529 615,523 612,518 606,514 599,511 591,510 583,511 576,514 570,518 566,523 565,529 566,535 570,540 576,544 583,547 591,548 599,547 606,544 612,540 615,535"/>
+<area shape="rect" href="#A" TITLE="A - one-place adjective" alt="" coords="634,512,685,546"/>
+<area shape="poly" href="#ListAP" title="ListAP" alt="" coords="767,529 765,523 760,518 753,514 744,511 734,510 725,511 716,514 708,518 704,523 702,529 704,535 708,540 716,544 725,547 734,548 744,547 753,544 760,540 765,535"/>
+<area shape="poly" href="#IP" TITLE="IP - interrogative pronoun" alt="" coords="895,384 894,379 890,373 885,369 877,366 870,366 862,366 854,369 849,373 845,379 844,384 845,390 849,395 854,400 862,402 870,403 877,402 885,400 890,395 894,390"/>
+<area shape="poly" href="#IAdv" TITLE="IAdv - interrogative adverb" alt="" coords="966,384 965,379 961,373 955,369 947,366 939,366 931,366 923,369 917,373 913,379 912,384 913,390 917,395 923,400 931,402 939,403 947,402 955,400 961,395 965,390"/>
+<area shape="poly" href="#ClSlash" title="ClSlash" alt="" coords="1050,384 1048,379 1043,373 1036,369 1026,366 1016,366 1006,366 996,369 989,373 984,379 982,384 984,390 989,395 996,400 1006,402 1016,403 1026,402 1036,400 1043,395 1048,390"/>
+<area shape="poly" href="#IDet" TITLE="IDet - interrogative determiner" alt="" coords="906,457 904,451 901,446 895,441 888,439 880,438 872,439 865,441 859,446 856,451 854,457 856,462 859,468 865,472 872,475 880,475 888,475 895,472 901,468 904,462"/>
+<area shape="poly" href="#VPSlash" TITLE="VPSlash - verb phrase missing complement" alt="" coords="1052,457 1050,451 1045,446 1037,441 1027,439 1016,438 1005,439 995,441 987,446 982,451 980,457 982,462 987,468 995,472 1005,475 1016,475 1027,475 1037,472 1045,468 1050,462"/>
+<area shape="poly" href="#IQuant" title="IQuant" alt="" coords="912,529 910,523 906,518 899,514 890,511 880,510 870,511 861,514 854,518 850,523 848,529 850,535 854,540 861,544 870,547 880,548 890,547 899,544 906,540 910,535"/>
+<area shape="poly" href="#RP" TITLE="RP - relative pronoun" alt="" coords="456,674 454,668 451,662 445,658 438,656 430,655 422,656 415,658 409,662 406,668 404,674 406,679 409,685 415,689 422,691 430,692 438,691 445,689 451,685 454,679"/>
+</map>
+<P>
+The rectangular boxes mark open lexical categories, which have constructors
+also in the <CODE>Paradigms</CODE> modules.
+</P>
+<A NAME="toc4"></A>
+<H2>Explanations</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Category</TH>
+<TH>Explanation</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD>one-place adjective</TD>
+<TD><I>warm</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD>two-place adjective</TD>
+<TD><I>divisible</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD>adjectival phrase</TD>
+<TD><I>very warm</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD>adjective-modifying adverb</TD>
+<TD><I>very</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD>numeral-modifying adverb</TD>
+<TD><I>more than</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD>adverb directly attached to verb</TD>
+<TD><I>always</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD>verb-phrase-modifying adverb</TD>
+<TD><I>in the house</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
+<TD>anteriority</TD>
+<TD>simultaneous, anterior</TD>
+</TR>
+<TR>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
+<TD>comparative adverb</TD>
+<TD><I>more</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD>common noun (without determiner)</TD>
+<TD><I>red house</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
+<TD>cardinal number</TD>
+<TD><I>seven</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD>declarative clause, with all tenses</TD>
+<TD><I>she looks at this</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A></TD>
+<TD>complement of copula, such as AP</TD>
+<TD><I>very warm</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD>conjunction</TD>
+<TD><I>and</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD>determiner phrase</TD>
+<TD><I>those seven</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
+<TD>cardinal or ordinal in digits</TD>
+<TD><I>1,000/1,000th</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD>interrogative adverb</TD>
+<TD><I>why</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A></TD>
+<TD>interrogative complement of copula</TD>
+<TD><I>where</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD>interrogative determiner</TD>
+<TD><I>how many</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD>interrogative pronoun</TD>
+<TD><I>who</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
+<TD>imperative</TD>
+<TD><I>look at this</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Interj" TITLE="Interj - interjection">Interj</A></TD>
+<TD>interjection</TD>
+<TD><I>alas</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD>common noun</TD>
+<TD><I>house</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD>relational noun</TD>
+<TD><I>son</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD>three-place relational noun</TD>
+<TD><I>connection</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD>noun phrase (subject or object)</TD>
+<TD><I>the red house</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD>number determining element</TD>
+<TD><I>seven</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD>cardinal or ordinal in words</TD>
+<TD><I>five/fifth</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
+<TD>ordinal number (used in Det)</TD>
+<TD><I>seventh</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
+<TD>phrase-beginning conjunction</TD>
+<TD><I>therefore</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD>proper name</TD>
+<TD><I>Paris</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD>phrase in a text</TD>
+<TD><I>but be quiet please</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
+<TD>polarity</TD>
+<TD>positive, negative</TD>
+</TR>
+<TR>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
+<TD>predeterminer (prefixed Quant)</TD>
+<TD><I>all</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD>preposition, or just case</TD>
+<TD><I>in</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD>personal pronoun</TD>
+<TD><I>she</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD>question clause, with all tenses</TD>
+<TD><I>why does she walk</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#QS" TITLE="QS - question">QS</A></TD>
+<TD>question</TD>
+<TD><I>where did she live</I></TD>
+</TR>
+<TR>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD>quantifier ('nucleus' of Det)</TD>
+<TD><I>this/these</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD>relative clause, with all tenses</TD>
+<TD><I>in which she lives</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
+<TD>relative pronoun</TD>
+<TD><I>in which</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#RS" TITLE="RS - relative">RS</A></TD>
+<TD>relative</TD>
+<TD><I>in which she lived</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
+<TD>declarative sentence</TD>
+<TD><I>she lived here</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A></TD>
+<TD>embedded sentence or question</TD>
+<TD><I>that it rains</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD>subjunction</TD>
+<TD><I>if</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp</A></TD>
+<TD>temporal and aspectual features</TD>
+<TD>past anterior</TD>
+</TR>
+<TR>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
+<TD>tense</TD>
+<TD>present, past, future</TD>
+</TR>
+<TR>
+<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD>text consisting of several phrases</TD>
+<TD><I>He is here. Why?</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD>sentence, question, word...</TD>
+<TD><I>be quiet</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD>one-place verb</TD>
+<TD><I>sleep</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD>two-place verb</TD>
+<TD><I>love</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD>verb with NP and AP complement</TD>
+<TD><I>paint</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD>verb with NP and Q complement</TD>
+<TD><I>ask</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD>verb with NP and S complement</TD>
+<TD><I>tell</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD>verb with NP and V complement</TD>
+<TD><I>cause</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD>three-place verb</TD>
+<TD><I>show</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD>adjective-complement verb</TD>
+<TD><I>look</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD>verb phrase</TD>
+<TD><I>is very warm</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD>verb phrase missing complement</TD>
+<TD><I>give to John</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD>question-complement verb</TD>
+<TD><I>wonder</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD>sentence-complement verb</TD>
+<TD><I>claim</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD>verb-phrase-complement verb</TD>
+<TD><I>want</I></TD>
+</TR>
+<TR>
+<TD><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
+<TD>vocative or "please"</TD>
+<TD><I>my darling</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc5"></A>
+<H1>Syntax Rules and Structural Words</H1>
+<P>
+Source 1: <A HREF="http://www.grammaticalframework.org/lib/src/api/Constructors.gf"><CODE>../src/api/Constructors.gf</CODE></A>
+</P>
+<P>
+Source 2: <A HREF="http://www.grammaticalframework.org/lib/src/abstract/Structural.gf"><CODE>../src/abstract/Structural.gf</CODE></A>
+</P>
+<A NAME="A"></A>
+<H2>A - one-place adjective</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="A2"></A>
+<H2>A2 - two-place adjective</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="AP"></A>
+<H2>AP - adjectival phrase</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>comparAP</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>warmer</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (comparAP warm_A)</CODE> <li>Bul: <I>по - топъл</I> <li>Cat: <I>més tebi</I> <li>Dan: <I>varmere</I> <li>Dut: <I>warmer</I> <li>Eng: <I>warmer</I> <li>Fin: <I>lämpimämpi</I> <li>Fre: <I>plus chaud</I> <li>Ger: <I>wärmer</I> <li>Ita: <I>più caldo</I> <li>Nor: <I>varmere</I> <li>Pol: <I>cieplejszy</I> <li>Ron: <I>mai călduţ</I> <li>Rus: <I>тёплее</I> <li>Spa: <I>más tibio</I> <li>Swe: <I>varmare</I> <li>Urd: <I>گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>warm</I> <div class=popup> <ul> <li>API: <CODE>mkAP warm_A</CODE> <li>Bul: <I>топъл</I> <li>Cat: <I>tebi</I> <li>Dan: <I>varm</I> <li>Dut: <I>warm</I> <li>Eng: <I>warm</I> <li>Fin: <I>lämmin</I> <li>Fre: <I>chaud</I> <li>Ger: <I>warm</I> <li>Ita: <I>caldo</I> <li>Nor: <I>varm</I> <li>Pol: <I>ciepły</I> <li>Ron: <I>călduţ</I> <li>Rus: <I>тёплый</I> <li>Spa: <I>tibio</I> <li>Swe: <I>varm</I> <li>Urd: <I>گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>warmer than Paris</I> <div class=popup> <ul> <li>API: <CODE>mkAP warm_A (mkNP paris_PN)</CODE> <li>Bul: <I>по - топъл от Париж</I> <li>Cat: <I>més tebi que Paris</I> <li>Dan: <I>varmere end Paris</I> <li>Dut: <I>warmer dan Parijs</I> <li>Eng: <I>warmer than Paris</I> <li>Fin: <I>Pariisia lämpimämpi</I> <li>Fre: <I>plus chaud que Paris</I> <li>Ger: <I>wärmer als Paris</I> <li>Ita: <I>più caldo di Parigi</I> <li>Nor: <I>varmere enn Paris</I> <li>Pol: <I>cieplejszy niż Paryż</I> <li>Ron: <I>mai călduţ decât Paris</I> <li>Rus: <I>тёплее Парижа</I> <li>Spa: <I>más tibio que Paris</I> <li>Swe: <I>varmare än Paris</I> <li>Urd: <I>پیرس سے گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>married to her</I> <div class=popup> <ul> <li>API: <CODE>mkAP married_A2 she_NP</CODE> <li>Bul: <I>женен за нея</I> <li>Cat: <I>casat a ella</I> <li>Dan: <I>gift med hende</I> <li>Dut: <I>getrouwd met haar</I> <li>Eng: <I>married to her</I> <li>Fin: <I>hänen kanssa avioitunut</I> <li>Fre: <I>marié à elle</I> <li>Ger: <I>verheiratet mit ihr</I> <li>Ita: <I>sposato con lei</I> <li>Nor: <I>gift med henne</I> <li>Pol: <I>zaślubiony jej</I> <li>Ron: <I>căsătorit cu ea</I> <li>Rus: <I>замужем за ей</I> <li>Spa: <I>casado a ella</I> <li>Swe: <I>gift med henne</I> <li>Urd: <I>اس سے [شادی كرنa]</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>married</I> <div class=popup> <ul> <li>API: <CODE>mkAP married_A2</CODE> <li>Bul: <I>женен</I> <li>Cat: <I>casat</I> <li>Dan: <I>gift</I> <li>Dut: <I>getrouwd</I> <li>Eng: <I>married</I> <li>Fin: <I>avioitunut</I> <li>Fre: <I>marié</I> <li>Ger: <I>verheiratet</I> <li>Ita: <I>sposato</I> <li>Nor: <I>gift</I> <li>Pol: <I>zaślubiony</I> <li>Ron: <I>căsătorit</I> <li>Rus: <I>замужем</I> <li>Spa: <I>casado</I> <li>Swe: <I>gift</I> <li>Urd: <I>[شادی كرنa]</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>it is good that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl (mkVP (mkAP (mkAP good_A) (mkS (mkCl she_NP sleep_V))))</CODE> <li>Bul: <I>е добро , че тя спи</I> <li>Cat: <I>és bo que ella dorm</I> <li>Dan: <I>det er godt at hun sover</I> <li>Dut: <I>'t is goed dat ze slaapt</I> <li>Eng: <I>it is good that she sleeps</I> <li>Fin: <I>on hyvä että hän nukkuu</I> <li>Fre: <I>il est bon qu' elle dort</I> <li>Ger: <I>es ist gut daß sie schläft</I> <li>Ita: <I>è buono che lei dorme</I> <li>Nor: <I>det er godt at hun sover</I> <li>Pol: <I>jest dobrze , że ona śpi</I> <li>Ron: <I>este bun cã ea doarme</I> <li>Rus: <I>хорошее , что она спдит</I> <li>Spa: <I>es bueno que ella duerme</I> <li>Swe: <I>det är gott att hon sover</I> <li>Urd: <I>اچھا كہ وہ سوتی ہے ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>it is uncertain who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V))))</CODE> <li>Bul: <I>е неясно който спи</I> <li>Cat: <I>és incert qui dorm</I> <li>Dan: <I>*</I> <li>Dut: <I>'t is onzeker wie slaapt</I> <li>Eng: <I>it is uncertain who sleeps</I> <li>Fin: <I>on epävarma kuka nukkuu</I> <li>Fre: <I>il est incertain qui dort</I> <li>Ger: <I>es ist unsicher wer schläft</I> <li>Ita: <I>è insicuro chi dorme</I> <li>Nor: <I>*</I> <li>Pol: <I>jest niepewnie , kto śpi</I> <li>Ron: <I>este nesigur cine doarme</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>det är osäkert vem som sover</I> <li>Urd: <I>غیریقینی كون سوتا ہے ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>she is ready to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V))</CODE> <li>Bul: <I>тя е готова да спя</I> <li>Cat: <I>ella és preparata dormir</I> <li>Dan: <I>*</I> <li>Dut: <I>ze is klaar te slapen</I> <li>Eng: <I>she is ready to sleep</I> <li>Fin: <I>hän on valmis nukkua</I> <li>Fre: <I>elle est prête dormir</I> <li>Ger: <I>sie ist fertig zu schlafen</I> <li>Ita: <I>lei è pronta dormire</I> <li>Nor: <I>*</I> <li>Pol: <I>ona jest <A HREF="exist"> gotowy : the adverb positive form does not</A> spać</I> <li>Ron: <I>ea este pregătită sã doarmă</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>hon är färdig att sova</I> <li>Urd: <I>*</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>she is ready to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkAP (mkAP ready_A) (mkSC (mkVP sleep_V)))</CODE> <li>Bul: <I>тя е готова да спя</I> <li>Cat: <I>ella és preparata dormir</I> <li>Dan: <I>*</I> <li>Dut: <I>ze is klaar te slapen</I> <li>Eng: <I>she is ready to sleep</I> <li>Fin: <I>hän on valmis nukkua</I> <li>Fre: <I>elle est prête dormir</I> <li>Ger: <I>sie ist fertig zu schlafen</I> <li>Ita: <I>lei è pronta dormire</I> <li>Nor: <I>*</I> <li>Pol: <I>ona jest <A HREF="exist"> gotowy : the adverb positive form does not</A> spać</I> <li>Ron: <I>ea este pregătită sã doarmă</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>hon är färdig att sova</I> <li>Urd: <I>*</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>very old</I> <div class=popup> <ul> <li>API: <CODE>mkAP very_AdA old_A</CODE> <li>Bul: <I>много стар</I> <li>Cat: <I>molt vell</I> <li>Dan: <I>meget gammel</I> <li>Dut: <I>erg oud</I> <li>Eng: <I>very old</I> <li>Fin: <I>erittäin vanha</I> <li>Fre: <I>très vieux</I> <li>Ger: <I>sehr alt</I> <li>Ita: <I>molto vecchio</I> <li>Nor: <I>mye gammel</I> <li>Pol: <I>bardzo stary</I> <li>Ron: <I>foarte vechi</I> <li>Rus: <I>очень старый</I> <li>Spa: <I>muy viejo</I> <li>Swe: <I>mycket gammal</I> <li>Urd: <I>بہت بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>very very old</I> <div class=popup> <ul> <li>API: <CODE>mkAP very_AdA (mkAP very_AdA old_A)</CODE> <li>Bul: <I>много много стар</I> <li>Cat: <I>molt molt vell</I> <li>Dan: <I>meget meget gammel</I> <li>Dut: <I>erg erg oud</I> <li>Eng: <I>very very old</I> <li>Fin: <I>erittäin erittäin vanha</I> <li>Fre: <I>très très vieux</I> <li>Ger: <I>sehr sehr alt</I> <li>Ita: <I>molto molto vecchio</I> <li>Nor: <I>mye mye gammel</I> <li>Pol: <I>bardzo bardzo stary</I> <li>Ron: <I>foarte foarte vechi</I> <li>Rus: <I>очень очень старый</I> <li>Spa: <I>muy muy viejo</I> <li>Swe: <I>mycket mycket gammal</I> <li>Urd: <I>بہت بہت بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>old or young</I> <div class=popup> <ul> <li>API: <CODE>mkAP or_Conj (mkAP old_A) (mkAP young_A)</CODE> <li>Bul: <I>стар или млад</I> <li>Cat: <I>vell o jove</I> <li>Dan: <I>gammel eller ung</I> <li>Dut: <I>oud of jong</I> <li>Eng: <I>old or young</I> <li>Fin: <I>vanha tai nuori</I> <li>Fre: <I>vieux ou jeune</I> <li>Ger: <I>alt oder jung</I> <li>Ita: <I>vecchio o giovane</I> <li>Nor: <I>gammel eller ung</I> <li>Pol: <I>stary lub młody</I> <li>Ron: <I>vechi sau tânăr</I> <li>Rus: <I>старый или молодой</I> <li>Spa: <I>viejo o joven</I> <li>Swe: <I>gammal eller ung</I> <li>Urd: <I>بوڑھا یا جوان</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>old , big and warm</I> <div class=popup> <ul> <li>API: <CODE>mkAP and_Conj (mkListAP (mkAP old_A) (mkListAP (mkAP big_A) (mkAP warm_A)))</CODE> <li>Bul: <I>стар , голям и топъл</I> <li>Cat: <I>vell , gros i tebi</I> <li>Dan: <I>gammel , stor og varm</I> <li>Dut: <I>oud , groot en warm</I> <li>Eng: <I>old , big and warm</I> <li>Fin: <I>vanha , suuri ja lämmin</I> <li>Fre: <I>vieux , grand et chaud</I> <li>Ger: <I>alt , groß und warm</I> <li>Ita: <I>vecchio , grande e caldo</I> <li>Nor: <I>gammel , stor og varm</I> <li>Pol: <I>stary , duży i ciepły</I> <li>Ron: <I>vechi , mare şi călduţ</I> <li>Rus: <I>большой , тёплый и старый</I> <li>Spa: <I>viejo , grande y tibio</I> <li>Swe: <I>gammal , stor och varm</I> <li>Urd: <I>بوڑھا , بڑا اور گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>oldest</I> <div class=popup> <ul> <li>API: <CODE>mkAP (mkOrd old_A)</CODE> <li>Bul: <I>най - стар</I> <li>Cat: <I>més vell</I> <li>Dan: <I>ældste</I> <li>Dut: <I>oudst</I> <li>Eng: <I>oldest</I> <li>Fin: <I>vanhin</I> <li>Fre: <I>plus vieux</I> <li>Ger: <I>ältest</I> <li>Ita: <I>più vecchio</I> <li>Nor: <I>eldste</I> <li>Pol: <I>najstarszy</I> <li>Ron: <I>cel mai vechi</I> <li>Rus: <I>старый</I> <li>Spa: <I>más viejo</I> <li>Swe: <I>äldsta</I> <li>Urd: <I>سب سے بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAP</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>as old as she</I> <div class=popup> <ul> <li>API: <CODE>mkAP as_CAdv (mkAP old_A) she_NP</CODE> <li>Bul: <I>*</I> <li>Cat: <I>tan vell com ella</I> <li>Dan: <I>*</I> <li>Dut: <I>zo oud als ze</I> <li>Eng: <I>as old as she</I> <li>Fin: <I>yhtä vanha kuin hän</I> <li>Fre: <I>aussi vieux qu' elle</I> <li>Ger: <I>ebenso alt wie sie</I> <li>Ita: <I>così vecchio di lei</I> <li>Nor: <I>*</I> <li>Pol: <I>tak stary jak ona</I> <li>Ron: <I>cel la fel de vechi ca ea</I> <li>Rus: <I>*</I> <li>Spa: <I>si viejo que ella</I> <li>Swe: <I>lika gammal som hon</I> <li>Urd: <I>اتنا بوڑھا جتنا وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>reflAP</CODE></TD>
+<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A></TD>
+<TD><div class=reveal> <I>married to itself</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (reflAP married_A2)</CODE> <li>Bul: <I>женен за себе си</I> <li>Cat: <I>casat a sÌ</I> <li>Dan: <I>gift med sig</I> <li>Dut: <I>getrouwd met zich</I> <li>Eng: <I>married to itself</I> <li>Fin: <I>avioitunut itsensä kanssa</I> <li>Fre: <I>marié à soi</I> <li>Ger: <I>verheiratet mit sich</I> <li>Ita: <I>sposato con se</I> <li>Nor: <I>gift med seg</I> <li>Pol: <I>zaślubiony sobie</I> <li>Ron: <I>căsătorit cu sine însuşi</I> <li>Rus: <I>замужем за собой</I> <li>Spa: <I>casado a sí</I> <li>Swe: <I>gift med sig</I> <li>Urd: <I>[شادی كرنa] خود سے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="AdA"></A>
+<H2>AdA - adjective-modifying adverb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>almost_AdA</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><div class=reveal> <I>almost red</I> <div class=popup> <ul> <li>API: <CODE>mkAP almost_AdA red_A</CODE> <li>Bul: <I>почти червен</I> <li>Cat: <I>{s : CommonRomance.AForm =&gt; Str</I> <li>Dan: <I>næsten rød</I> <li>Dut: <I>bijna rood</I> <li>Eng: <I>almost red</I> <li>Fin: <I>melkein punainen</I> <li>Fre: <I>presque rouge</I> <li>Ger: <I>fast rot</I> <li>Ita: <I>quasi rosso</I> <li>Nor: <I>nesten rød</I> <li>Pol: <I>prawie czerwony</I> <li>Ron: <I>aproape roşu</I> <li>Rus: <I>почти красный</I> <li>Spa: <I>casi rojo</I> <li>Swe: <I>nästan röd</I> <li>Urd: <I>تقریبا لال</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>quite_Adv</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><div class=reveal> <I>quite</I> <div class=popup> <ul> <li>API: <CODE>quite_Adv</CODE> <li>Bul: <I>доста</I> <li>Cat: <I>bastant</I> <li>Dan: <I>temmelig</I> <li>Dut: <I>heel</I> <li>Eng: <I>quite</I> <li>Fin: <I>melko</I> <li>Fre: <I>assez</I> <li>Ger: <I>ziemlich</I> <li>Ita: <I>assai</I> <li>Nor: <I>temmelig</I> <li>Pol: <I>całkiem</I> <li>Ron: <I>chiar</I> <li>Rus: <I>довольно</I> <li>Spa: <I>bastante</I> <li>Swe: <I>ganska</I> <li>Urd: <I>خاموش</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>so_AdA</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><div class=reveal> <I>so</I> <div class=popup> <ul> <li>API: <CODE>so_AdA</CODE> <li>Bul: <I>толкова</I> <li>Cat: <I>tan</I> <li>Dan: <I>så</I> <li>Dut: <I>zo</I> <li>Eng: <I>so</I> <li>Fin: <I>niin</I> <li>Fre: <I>si</I> <li>Ger: <I>so</I> <li>Ita: <I>cosÃ¬</I> <li>Nor: <I>så</I> <li>Pol: <I>tak</I> <li>Ron: <I>aşa</I> <li>Rus: <I>так</I> <li>Spa: <I>tanto</I> <li>Swe: <I>så</I> <li>Urd: <I>[اس لیE]</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>too_AdA</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><div class=reveal> <I>too</I> <div class=popup> <ul> <li>API: <CODE>too_AdA</CODE> <li>Bul: <I>прекалено</I> <li>Cat: <I>massa</I> <li>Dan: <I>for</I> <li>Dut: <I>te</I> <li>Eng: <I>too</I> <li>Fin: <I>liian</I> <li>Fre: <I>trop</I> <li>Ger: <I>zu</I> <li>Ita: <I>troppo</I> <li>Nor: <I>for</I> <li>Pol: <I>za</I> <li>Ron: <I>prea</I> <li>Rus: <I>слишком</I> <li>Spa: <I>demasiado</I> <li>Swe: <I>för</I> <li>Urd: <I>بہت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>very_AdA</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><div class=reveal> <I>very</I> <div class=popup> <ul> <li>API: <CODE>very_AdA</CODE> <li>Bul: <I>много</I> <li>Cat: <I>molt</I> <li>Dan: <I>meget</I> <li>Dut: <I>erg</I> <li>Eng: <I>very</I> <li>Fin: <I>erittäin</I> <li>Fre: <I>très</I> <li>Ger: <I>sehr</I> <li>Ita: <I>molto</I> <li>Nor: <I>mye</I> <li>Pol: <I>bardzo</I> <li>Ron: <I>foarte</I> <li>Rus: <I>очень</I> <li>Spa: <I>muy</I> <li>Swe: <I>mycket</I> <li>Urd: <I>بہت</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="AdN"></A>
+<H2>AdN - numeral-modifying adverb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>almost_AdN</CODE></TD>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><div class=reveal> <I>atomic term almostAdN</I> <div class=popup> <ul> <li>API: <CODE>mkCard almostAdN (mkCard (mkNumeral n8_Unit))</CODE> <li>Bul: <I>*</I> <li>Cat: <I>*</I> <li>Dan: <I>*</I> <li>Dut: <I>*</I> <li>Eng: <I>*</I> <li>Fin: <I>*</I> <li>Fre: <I>*</I> <li>Ger: <I>*</I> <li>Ita: <I>*</I> <li>Nor: <I>*</I> <li>Pol: <I>*</I> <li>Ron: <I>*</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>*</I> <li>Urd: <I>*</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>at_least_AdN</CODE></TD>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><div class=reveal> <I>at least eight</I> <div class=popup> <ul> <li>API: <CODE>mkCard at_least_AdN (mkCard (mkNumeral n8_Unit))</CODE> <li>Bul: <I>*</I> <li>Cat: <I>almenys vuit</I> <li>Dan: <I>*</I> <li>Dut: <I>ten minste acht</I> <li>Eng: <I>at least eight</I> <li>Fin: <I>vähintään kahdeksan</I> <li>Fre: <I>au moins huit</I> <li>Ger: <I>wenigstens acht</I> <li>Ita: <I>almeno otto</I> <li>Nor: <I>*</I> <li>Pol: <I>co najmniej osiemm</I> <li>Ron: <I>cel puţin opt</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>minst åtta</I> <li>Urd: <I>كم از كم آتھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>at_most_AdN</CODE></TD>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><div class=reveal> <I>at most eight</I> <div class=popup> <ul> <li>API: <CODE>mkCard at_most_AdN (mkCard (mkNumeral n8_Unit))</CODE> <li>Bul: <I>*</I> <li>Cat: <I>com a màxim vuit</I> <li>Dan: <I>*</I> <li>Dut: <I>hooguit acht</I> <li>Eng: <I>at most eight</I> <li>Fin: <I>enintään kahdeksan</I> <li>Fre: <I>au plus huit</I> <li>Ger: <I>höchstens acht</I> <li>Ita: <I>al massimo otto</I> <li>Nor: <I>*</I> <li>Pol: <I>co najwyżej osiemm</I> <li>Ron: <I>cel mult opt</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>högst åtta</I> <li>Urd: <I>زیادہ سے زیادہ آتھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdN</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><div class=reveal> <I>more than eight</I> <div class=popup> <ul> <li>API: <CODE>mkCard (mkAdN more_CAdv) (mkCard (mkNumeral n8_Unit))</CODE> <li>Bul: <I>повече от осмина</I> <li>Cat: <I>més que vuit</I> <li>Dan: <I>mer end otte</I> <li>Dut: <I>meer dan acht</I> <li>Eng: <I>more than eight</I> <li>Fin: <I>enemmän kuin kahdeksan</I> <li>Fre: <I>plus pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>mehr als acht</I> <li>Ita: <I>più di otto</I> <li>Nor: <I>mer enn åtte</I> <li>Pol: <I>więcej niż osiemm</I> <li>Ron: <I>mai mult decât opt</I> <li>Rus: <I>более чем восемь</I> <li>Spa: <I>más que ocho</I> <li>Swe: <I>mer än åtta</I> <li>Urd: <I>آتھ سے زیادہ</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="AdV"></A>
+<H2>AdV - adverb directly attached to verb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>always_AdV</CODE></TD>
+<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><div class=reveal> <I>always</I> <div class=popup> <ul> <li>API: <CODE>always_AdV</CODE> <li>Bul: <I>винаги</I> <li>Cat: <I>sempre</I> <li>Dan: <I>altid</I> <li>Dut: <I>altijd</I> <li>Eng: <I>always</I> <li>Fin: <I>aina</I> <li>Fre: <I>toujours</I> <li>Ger: <I>immer</I> <li>Ita: <I>sempre</I> <li>Nor: <I>altid</I> <li>Pol: <I>zawsze</I> <li>Ron: <I>mereu</I> <li>Rus: <I>всегда</I> <li>Spa: <I>siempre</I> <li>Swe: <I>alltid</I> <li>Urd: <I>ہمیشہ</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Adv"></A>
+<H2>Adv - verb-phrase-modifying adverb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>everywhere_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>everywhere</I> <div class=popup> <ul> <li>API: <CODE>everywhere_Adv</CODE> <li>Bul: <I>навсякъде</I> <li>Cat: <I>a tot arreu</I> <li>Dan: <I>overalt</I> <li>Dut: <I>overal</I> <li>Eng: <I>everywhere</I> <li>Fin: <I>kaikkialla</I> <li>Fre: <I>partout</I> <li>Ger: <I>überall</I> <li>Ita: <I>dappertutto</I> <li>Nor: <I>overalt</I> <li>Pol: <I>wszędzie</I> <li>Ron: <I>pretutindeni</I> <li>Rus: <I>везде</I> <li>Spa: <I>en todas partes</I> <li>Swe: <I>överallt</I> <li>Urd: <I>ہر جگہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>here7from_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>from here</I> <div class=popup> <ul> <li>API: <CODE>here7from_Adv</CODE> <li>Bul: <I>от тук</I> <li>Cat: <I>d'aquí</I> <li>Dan: <I>herfra</I> <li>Dut: <I>van hier</I> <li>Eng: <I>from here</I> <li>Fin: <I>täältä</I> <li>Fre: <I>d'ici</I> <li>Ger: <I>hieraus</I> <li>Ita: <I>da quà</I> <li>Nor: <I>herfra</I> <li>Pol: <I>stąd</I> <li>Ron: <I>de aici</I> <li>Rus: <I>отсюда</I> <li>Spa: <I>de acá</I> <li>Swe: <I>härifrån</I> <li>Urd: <I>یہاں سے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>here7to_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>to here</I> <div class=popup> <ul> <li>API: <CODE>here7to_Adv</CODE> <li>Bul: <I>до тук</I> <li>Cat: <I>cap aquí</I> <li>Dan: <I>hit</I> <li>Dut: <I>hier</I> <li>Eng: <I>to here</I> <li>Fin: <I>tänne</I> <li>Fre: <I>ici</I> <li>Ger: <I>hierher</I> <li>Ita: <I>quà</I> <li>Nor: <I>hit</I> <li>Pol: <I>tutaj</I> <li>Ron: <I>până aici</I> <li>Rus: <I>сюда</I> <li>Spa: <I>para acá</I> <li>Swe: <I>hit</I> <li>Urd: <I>یہاں پر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>here_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>here</I> <div class=popup> <ul> <li>API: <CODE>here_Adv</CODE> <li>Bul: <I>тук</I> <li>Cat: <I>aquí</I> <li>Dan: <I>her</I> <li>Dut: <I>hier</I> <li>Eng: <I>here</I> <li>Fin: <I>täällä</I> <li>Fre: <I>ici</I> <li>Ger: <I>hier</I> <li>Ita: <I>quà</I> <li>Nor: <I>her</I> <li>Pol: <I>tutaj</I> <li>Ron: <I>aici</I> <li>Rus: <I>здесь</I> <li>Spa: <I>aquí</I> <li>Swe: <I>här</I> <li>Urd: <I>یہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>warmly</I> <div class=popup> <ul> <li>API: <CODE>mkAdv warm_A</CODE> <li>Bul: <I>топло</I> <li>Cat: <I>tebiament</I> <li>Dan: <I>varmt</I> <li>Dut: <I>warm</I> <li>Eng: <I>warmly</I> <li>Fin: <I>lämpimästi</I> <li>Fre: <I>chaudement</I> <li>Ger: <I>warm</I> <li>Ita: <I>caldamente</I> <li>Nor: <I>varmt</I> <li>Pol: <I>ciepło</I> <li>Ron: <I>călduros</I> <li>Rus: <I>тёпло</I> <li>Spa: <I>tibiamente</I> <li>Swe: <I>varmt</I> <li>Urd: <I>گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>in the house</I> <div class=popup> <ul> <li>API: <CODE>mkAdv in_Prep (mkNP the_Det house_N)</CODE> <li>Bul: <I>в къщата</I> <li>Cat: <I>en la casa</I> <li>Dan: <I>i huset</I> <li>Dut: <I>in het huis</I> <li>Eng: <I>in the house</I> <li>Fin: <I>talossa</I> <li>Fre: <I>dans la maison</I> <li>Ger: <I>im Haus / Hause</I> <li>Ita: <I>nella casa</I> <li>Nor: <I>i huset</I> <li>Pol: <I>w domu</I> <li>Ron: <I>în casă</I> <li>Rus: <I>в доме</I> <li>Spa: <I>en la casa</I> <li>Swe: <I>i huset</I> <li>Urd: <I>گھر میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>when she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv when_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>когато тя спи</I> <li>Cat: <I>quan ella dorm</I> <li>Dan: <I>når hun sover</I> <li>Dut: <I>als ze slaapt</I> <li>Eng: <I>when she sleeps</I> <li>Fin: <I>kun hän nukkuu</I> <li>Fre: <I>quand elle dort</I> <li>Ger: <I>wenn sie schläft</I> <li>Ita: <I>quando lei dorme</I> <li>Nor: <I>når hun sover</I> <li>Pol: <I>jeśli ona śpi</I> <li>Ron: <I>când ea doarme</I> <li>Rus: <I>когда она спдит</I> <li>Spa: <I>cuando ella duerme</I> <li>Swe: <I>när hon sover</I> <li>Urd: <I>جب وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>more warmly than he</I> <div class=popup> <ul> <li>API: <CODE>mkAdv more_CAdv warm_A he_NP</CODE> <li>Bul: <I>по - топло от него</I> <li>Cat: <I>més tebiament que ell</I> <li>Dan: <I>mer varmt end han</I> <li>Dut: <I>meer warm dan hij</I> <li>Eng: <I>more warmly than he</I> <li>Fin: <I>enemmän lämpimästi kuin hän</I> <li>Fre: <I>plus chaudement que lui</I> <li>Ger: <I>mehr warm als er</I> <li>Ita: <I>più caldamente di lui</I> <li>Nor: <I>mer varmt enn han</I> <li>Pol: <I>bardziej ciepło niż on</I> <li>Ron: <I>mai călduros decât el</I> <li>Rus: <I>более тёпло чем он</I> <li>Spa: <I>más tibiamente que él</I> <li>Swe: <I>mer varmt än han</I> <li>Urd: <I>اس سے زیادہ گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>more warmly than he runs</I> <div class=popup> <ul> <li>API: <CODE>mkAdv more_CAdv warm_A (mkS (mkCl he_NP run_V))</CODE> <li>Bul: <I>по - топло от колкото той бяга</I> <li>Cat: <I>més tebiament que ell corri</I> <li>Dan: <I>mer varmt end han løber</I> <li>Dut: <I>meer warm dan hij rent</I> <li>Eng: <I>more warmly than he runs</I> <li>Fin: <I>enemmän lämpimästi kuin hän juoksee</I> <li>Fre: <I>plus chaudement qu' il coure</I> <li>Ger: <I>mehr warm als er läuft</I> <li>Ita: <I>più caldamente di lui corra</I> <li>Nor: <I>mer varmt enn han springer</I> <li>Pol: <I>bardziej ciepło niż on biegnie</I> <li>Ron: <I>mai călduros decât el fuge</I> <li>Rus: <I>более тёпло чем он бегает</I> <li>Spa: <I>más tibiamente que el corra</I> <li>Swe: <I>mer varmt än han springer</I> <li>Urd: <I>سے زیادہ گرم وہ دوڑتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>very warmly</I> <div class=popup> <ul> <li>API: <CODE>mkAdv very_AdA (mkAdv warm_A)</CODE> <li>Bul: <I>много топло</I> <li>Cat: <I>molt tebiament</I> <li>Dan: <I>meget varmt</I> <li>Dut: <I>erg warm</I> <li>Eng: <I>very warmly</I> <li>Fin: <I>erittäin lämpimästi</I> <li>Fre: <I>très chaudement</I> <li>Ger: <I>sehr warm</I> <li>Ita: <I>molto caldamente</I> <li>Nor: <I>mye varmt</I> <li>Pol: <I>bardzo ciepło</I> <li>Ron: <I>foarte călduros</I> <li>Rus: <I>очень тёпло</I> <li>Spa: <I>muy tibiamente</I> <li>Swe: <I>mycket varmt</I> <li>Urd: <I>بہت گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>here and now</I> <div class=popup> <ul> <li>API: <CODE>mkAdv and_Conj here_Adv now_Adv</CODE> <li>Bul: <I>тук и сега</I> <li>Cat: <I>aquí i ara</I> <li>Dan: <I>her og nu</I> <li>Dut: <I>hier en nu</I> <li>Eng: <I>here and now</I> <li>Fin: <I>täällä ja nyt</I> <li>Fre: <I>ici et maintenant</I> <li>Ger: <I>hier und jetzt</I> <li>Ita: <I>quà e adesso</I> <li>Nor: <I>her og nå</I> <li>Pol: <I>tutaj i teraz</I> <li>Ron: <I>aici şi acum</I> <li>Rus: <I>здесь и сейчас</I> <li>Spa: <I>aquí y ahora</I> <li>Swe: <I>här och nu</I> <li>Urd: <I>یہاں اور اب</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>with her , here and now</I> <div class=popup> <ul> <li>API: <CODE>mkAdv and_Conj (mkListAdv (mkAdv with_Prep she_NP) (mkListAdv here_Adv now_Adv))</CODE> <li>Bul: <I>с нея , тук и сега</I> <li>Cat: <I>amb ella , aquí i ara</I> <li>Dan: <I>med hende , her og nu</I> <li>Dut: <I>met haar , hier en nu</I> <li>Eng: <I>with her , here and now</I> <li>Fin: <I>hänen kanssa , täällä ja nyt</I> <li>Fre: <I>avec elle , ici et maintenant</I> <li>Ger: <I>mit ihr , hier und jetzt</I> <li>Ita: <I>con lei , quà e adesso</I> <li>Nor: <I>med henne , her og nå</I> <li>Pol: <I>z nią , tutaj i teraz</I> <li>Ron: <I>cu ea , aici şi acum</I> <li>Rus: <I>с ней , здесь и сейчас</I> <li>Spa: <I>con ella , aquí y ahora</I> <li>Swe: <I>med henne , här och nu</I> <li>Urd: <I>اس كے ساتھ , یہاں اور اب</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>somewhere_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>somewhere</I> <div class=popup> <ul> <li>API: <CODE>somewhere_Adv</CODE> <li>Bul: <I>някъде</I> <li>Cat: <I>a algun lloc</I> <li>Dan: <I>et eller annet sted</I> <li>Dut: <I>ergens</I> <li>Eng: <I>somewhere</I> <li>Fin: <I>jossain</I> <li>Fre: <I>quelque part</I> <li>Ger: <I>irgendwo</I> <li>Ita: <I>qualche parte</I> <li>Nor: <I>et eller annet sted</I> <li>Pol: <I>gdzieś</I> <li>Ron: <I>undeva</I> <li>Rus: <I>где-нибудь</I> <li>Spa: <I>en ninguna parte</I> <li>Swe: <I>någonstans</I> <li>Urd: <I>كہیں پر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>there7from_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>from there</I> <div class=popup> <ul> <li>API: <CODE>there7from_Adv</CODE> <li>Bul: <I>от там</I> <li>Cat: <I>d'allà</I> <li>Dan: <I>derfra</I> <li>Dut: <I>van daar</I> <li>Eng: <I>from there</I> <li>Fin: <I>sieltä</I> <li>Fre: <I>de là</I> <li>Ger: <I>daher</I> <li>Ita: <I>di là</I> <li>Nor: <I>derfra</I> <li>Pol: <I>stamtąd</I> <li>Ron: <I>de acolo</I> <li>Rus: <I>оттуда</I> <li>Spa: <I>de allá</I> <li>Swe: <I>därifrån</I> <li>Urd: <I>وہاں سے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>there7to_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>there</I> <div class=popup> <ul> <li>API: <CODE>there7to_Adv</CODE> <li>Bul: <I>до там</I> <li>Cat: <I>cap a allà</I> <li>Dan: <I>dit</I> <li>Dut: <I>daar</I> <li>Eng: <I>there</I> <li>Fin: <I>sinne</I> <li>Fre: <I>là</I> <li>Ger: <I>dahin</I> <li>Ita: <I>là</I> <li>Nor: <I>dit</I> <li>Pol: <I>tam</I> <li>Ron: <I>până acolo</I> <li>Rus: <I>туда</I> <li>Spa: <I>para allá</I> <li>Swe: <I>dit</I> <li>Urd: <I>وہاں پر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>there_Adv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><div class=reveal> <I>there</I> <div class=popup> <ul> <li>API: <CODE>there_Adv</CODE> <li>Bul: <I>там</I> <li>Cat: <I>allà</I> <li>Dan: <I>der</I> <li>Dut: <I>daar</I> <li>Eng: <I>there</I> <li>Fin: <I>siellä</I> <li>Fre: <I>là</I> <li>Ger: <I>da</I> <li>Ita: <I>là</I> <li>Nor: <I>der</I> <li>Pol: <I>tam</I> <li>Ron: <I>acolo</I> <li>Rus: <I>там</I> <li>Spa: <I>allí</I> <li>Swe: <I>där</I> <li>Urd: <I>وہاں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Ant"></A>
+<H2>Ant - anteriority</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>anteriorAnt</CODE></TD>
+<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
+<TD><div class=reveal> <I>she has slept</I> <div class=popup> <ul> <li>API: <CODE>mkS anteriorAnt (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя е спалa</I> <li>Cat: <I>ella ha dormit</I> <li>Dan: <I>hun har sovet</I> <li>Dut: <I>ze heeft geslapen</I> <li>Eng: <I>she has slept</I> <li>Fin: <I>hän on nukkunut</I> <li>Fre: <I>elle a dormi</I> <li>Ger: <I>sie hat geschlafen</I> <li>Ita: <I>lei ha dormito</I> <li>Nor: <I>hun har sovet</I> <li>Pol: <I>ona spała</I> <li>Ron: <I>ea a dormit</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella ha dormido</I> <li>Swe: <I>hon har sovit</I> <li>Urd: <I>وہ سو چكی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>simultaneousAnt</CODE></TD>
+<TD><A HREF="#Ant" TITLE="Ant - anteriority">Ant</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkS simultaneousAnt (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="CAdv"></A>
+<H2>CAdv - comparative adverb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>as_CAdv</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
+<TD><div class=reveal> <I>as</I> <div class=popup> <ul> <li>API: <CODE>as_CAdv</CODE> <li>Bul: <I>*</I> <li>Cat: <I>tan</I> <li>Dan: <I>*</I> <li>Dut: <I>zo</I> <li>Eng: <I>as</I> <li>Fin: <I>yhtä</I> <li>Fre: <I>aussi</I> <li>Ger: <I>ebenso</I> <li>Ita: <I>così</I> <li>Nor: <I>*</I> <li>Pol: <I>tak</I> <li>Ron: <I>la fel de</I> <li>Rus: <I>*</I> <li>Spa: <I>si</I> <li>Swe: <I>lika</I> <li>Urd: <I>اتنا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>less_CAdv</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
+<TD><div class=reveal> <I>less</I> <div class=popup> <ul> <li>API: <CODE>less_CAdv</CODE> <li>Bul: <I>не</I> <li>Cat: <I>menys</I> <li>Dan: <I>mindre</I> <li>Dut: <I>minder</I> <li>Eng: <I>less</I> <li>Fin: <I>vähemmän</I> <li>Fre: <I>moins</I> <li>Ger: <I>weniger</I> <li>Ita: <I>meno</I> <li>Nor: <I>mindre</I> <li>Pol: <I>mniej</I> <li>Ron: <I>mai puţin</I> <li>Rus: <I>менее</I> <li>Spa: <I>menos</I> <li>Swe: <I>mindre</I> <li>Urd: <I>كم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>more_CAdv</CODE></TD>
+<TD><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv</A></TD>
+<TD><div class=reveal> <I>more</I> <div class=popup> <ul> <li>API: <CODE>more_CAdv</CODE> <li>Bul: <I>''</I> <li>Cat: <I>més</I> <li>Dan: <I>mer</I> <li>Dut: <I>meer</I> <li>Eng: <I>more</I> <li>Fin: <I>enemmän</I> <li>Fre: <I>plus</I> <li>Ger: <I>mehr</I> <li>Ita: <I>più</I> <li>Nor: <I>mer</I> <li>Pol: <I>bardziej</I> <li>Ron: <I>mai</I> <li>Rus: <I>более</I> <li>Spa: <I>más</I> <li>Swe: <I>mer</I> <li>Urd: <I>زیادہ</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="CN"></A>
+<H2>CN - common noun (without determiner)</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>house</I> <div class=popup> <ul> <li>API: <CODE>mkCN house_N</CODE> <li>Bul: <I>къща</I> <li>Cat: <I>casa</I> <li>Dan: <I>hus</I> <li>Dut: <I>huis</I> <li>Eng: <I>house</I> <li>Fin: <I>talo</I> <li>Fre: <I>maison</I> <li>Ger: <I>Haus</I> <li>Ita: <I>casa</I> <li>Nor: <I>hus</I> <li>Pol: <I>dom</I> <li>Ron: <I>casă</I> <li>Rus: <I>дом</I> <li>Spa: <I>casa</I> <li>Swe: <I>hus</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>mother of the king</I> <div class=popup> <ul> <li>API: <CODE>mkCN mother_N2 (mkNP the_Det king_N)</CODE> <li>Bul: <I>майка на царя</I> <li>Cat: <I>mare del rei</I> <li>Dan: <I>moder til kongen</I> <li>Dut: <I>moeder van de koning</I> <li>Eng: <I>mother of the king</I> <li>Fin: <I>kuninkaan äiti</I> <li>Fre: <I>mère du roi</I> <li>Ger: <I>Mutter von dem König</I> <li>Ita: <I>madre del ré</I> <li>Nor: <I>mor til kongen</I> <li>Pol: <I>matka króla</I> <li>Ron: <I>mamă regelui</I> <li>Rus: <I>мать короля</I> <li>Spa: <I>madre del rey</I> <li>Swe: <I>mor till kungen</I> <li>Urd: <I>بادشاہ كی ماں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>distance from this city to Paris</I> <div class=popup> <ul> <li>API: <CODE>mkCN distance_N3 (mkNP this_Det city_N) (mkNP paris_PN)</CODE> <li>Bul: <I>разстояние от този град до Париж</I> <li>Cat: <I>distància de aquesta ciutat a Paris</I> <li>Dan: <I>afstand fra denne by til Paris</I> <li>Dut: <I>afstand van deze stad naar Parijs</I> <li>Eng: <I>distance from this city to Paris</I> <li>Fin: <I>etäisyys tästä kaupungista Pariisiin</I> <li>Fre: <I>distance de cette ville à Paris</I> <li>Ger: <I>Entfernung von dieser Stadt zu Paris</I> <li>Ita: <I>distanza di questa città a Parigi</I> <li>Nor: <I>avstand fra denne byen til Paris</I> <li>Pol: <I>odległość z tego miasta do Paryża</I> <li>Ron: <I>distanţă de la acest oraş la Paris</I> <li>Rus: <I>расстояние от этого города к Парижу</I> <li>Spa: <I>distancia de esta ciudad a Paris</I> <li>Swe: <I>avstånd från den här staden till Paris</I> <li>Urd: <I>پیرس كا یہ شہر سے فاصلہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N2" TITLE="N2 - relational noun">N2</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>mother</I> <div class=popup> <ul> <li>API: <CODE>mkCN mother_N2</CODE> <li>Bul: <I>майка</I> <li>Cat: <I>mare</I> <li>Dan: <I>moder</I> <li>Dut: <I>moeder</I> <li>Eng: <I>mother</I> <li>Fin: <I>äiti</I> <li>Fre: <I>mère</I> <li>Ger: <I>Mutter</I> <li>Ita: <I>madre</I> <li>Nor: <I>mor</I> <li>Pol: <I>matka</I> <li>Ron: <I>mamă</I> <li>Rus: <I>мать</I> <li>Spa: <I>madre</I> <li>Swe: <I>mor</I> <li>Urd: <I>ماں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>distance</I> <div class=popup> <ul> <li>API: <CODE>mkCN distance_N3</CODE> <li>Bul: <I>разстояние</I> <li>Cat: <I>distància</I> <li>Dan: <I>afstand</I> <li>Dut: <I>afstand</I> <li>Eng: <I>distance</I> <li>Fin: <I>etäisyys</I> <li>Fre: <I>distance</I> <li>Ger: <I>Entfernung</I> <li>Ita: <I>distanza</I> <li>Nor: <I>avstand</I> <li>Pol: <I>odległość</I> <li>Ron: <I>distanţă</I> <li>Rus: <I>расстояние</I> <li>Spa: <I>distancia</I> <li>Swe: <I>avstånd</I> <li>Urd: <I>فاصلہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>big house</I> <div class=popup> <ul> <li>API: <CODE>mkCN big_A house_N</CODE> <li>Bul: <I>голяма къща</I> <li>Cat: <I>casa grosa</I> <li>Dan: <I>stort hus</I> <li>Dut: <I>groot huis</I> <li>Eng: <I>big house</I> <li>Fin: <I>suuri talo</I> <li>Fre: <I>grande maison</I> <li>Ger: <I>großes Haus</I> <li>Ita: <I>grande casa</I> <li>Nor: <I>stort hus</I> <li>Pol: <I>duży dom</I> <li>Ron: <I>casă mare</I> <li>Rus: <I>большой дом</I> <li>Spa: <I>grande casa</I> <li>Swe: <I>stort hus</I> <li>Urd: <I>بڑا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>big blue house</I> <div class=popup> <ul> <li>API: <CODE>mkCN big_A (mkCN blue_A house_N)</CODE> <li>Bul: <I>голяма синя къща</I> <li>Cat: <I>casa blava grosa</I> <li>Dan: <I>stort blått hus</I> <li>Dut: <I>groot blauw huis</I> <li>Eng: <I>big blue house</I> <li>Fin: <I>suuri sininen talo</I> <li>Fre: <I>grande maison bleue</I> <li>Ger: <I>großes blaues Haus</I> <li>Ita: <I>grande casa blù</I> <li>Nor: <I>stort blått hus</I> <li>Pol: <I>duży niebieski dom</I> <li>Ron: <I>casă albastră mare</I> <li>Rus: <I>большой голубой дом</I> <li>Spa: <I>grande casa azul</I> <li>Swe: <I>stort blått hus</I> <li>Urd: <I>بڑا نیلا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>very big house</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkAP very_AdA big_A) house_N</CODE> <li>Bul: <I>много голяма къща</I> <li>Cat: <I>casa molt grosa</I> <li>Dan: <I>meget stort hus</I> <li>Dut: <I>erg groot huis</I> <li>Eng: <I>very big house</I> <li>Fin: <I>erittäin suuri talo</I> <li>Fre: <I>très grande maison</I> <li>Ger: <I>sehr großes Haus</I> <li>Ita: <I>molto grande casa</I> <li>Nor: <I>mye stort hus</I> <li>Pol: <I>bardzo duży dom</I> <li>Ron: <I>casă foarte mare</I> <li>Rus: <I>очень большой дом</I> <li>Spa: <I>muy grande casa</I> <li>Swe: <I>mycket stort hus</I> <li>Urd: <I>بہت بڑا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>very big blue house</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkAP very_AdA big_A) (mkCN blue_A house_N)</CODE> <li>Bul: <I>много голяма синя къща</I> <li>Cat: <I>casa blava molt grosa</I> <li>Dan: <I>meget stort blått hus</I> <li>Dut: <I>erg groot blauw huis</I> <li>Eng: <I>very big blue house</I> <li>Fin: <I>erittäin suuri sininen talo</I> <li>Fre: <I>très grande maison bleue</I> <li>Ger: <I>sehr großes blaues Haus</I> <li>Ita: <I>molto grande casa blù</I> <li>Nor: <I>mye stort blått hus</I> <li>Pol: <I>bardzo duży niebieski dom</I> <li>Ron: <I>casă albastră foarte mare</I> <li>Rus: <I>очень большой голубой дом</I> <li>Spa: <I>muy grande casa azul</I> <li>Swe: <I>mycket stort blått hus</I> <li>Urd: <I>بہت بڑا نیلا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>man whom she loves</I> <div class=popup> <ul> <li>API: <CODE>mkCN man_N (mkRS (mkRCl which_RP she_NP love_V2))</CODE> <li>Bul: <I>мъж който тя обича</I> <li>Cat: <I>home que ella estima</I> <li>Dan: <I>mand som hun elsker</I> <li>Dut: <I>man die ze lief heeft</I> <li>Eng: <I>man whom she loves</I> <li>Fin: <I>mies jota hän rakastaa</I> <li>Fre: <I>homme qu' elle aime</I> <li>Ger: <I>Mann den sie liebt</I> <li>Ita: <I>uomo che lei ama</I> <li>Nor: <I>mann som hun elsker</I> <li>Pol: <I>mężczyzna , którego kocha ona</I> <li>Ron: <I>om pe care îl iubeşte ea</I> <li>Rus: <I>человек , который она любдит</I> <li>Spa: <I>hombre que ella ama</I> <li>Swe: <I>man som hon älskar</I> <li>Urd: <I>آدمی جس كو وہ پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>old man whom she loves</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkCN old_A man_N) (mkRS (mkRCl which_RP she_NP love_V2))</CODE> <li>Bul: <I>стар мъж който тя обича</I> <li>Cat: <I>home vell que ella estima</I> <li>Dan: <I>gammel mand som hun elsker</I> <li>Dut: <I>oude man die ze lief heeft</I> <li>Eng: <I>old man whom she loves</I> <li>Fin: <I>vanha mies jota hän rakastaa</I> <li>Fre: <I>vieux homme qu' elle aime</I> <li>Ger: <I>alter Mann den sie liebt</I> <li>Ita: <I>vecchio uomo che lei ama</I> <li>Nor: <I>gammel mann som hun elsker</I> <li>Pol: <I>stary mężczyzna , którego kocha ona</I> <li>Ron: <I>om vechi pe care îl iubeşte ea</I> <li>Rus: <I>старый человек , который она любдит</I> <li>Spa: <I>viejo hombre que ella ama</I> <li>Swe: <I>gammal man som hon älskar</I> <li>Urd: <I>بوڑھا آدمی جس كو وہ پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>house on the hill</I> <div class=popup> <ul> <li>API: <CODE>mkCN house_N (mkAdv on_Prep (mkNP the_Det hill_N))</CODE> <li>Bul: <I>къща на хълма</I> <li>Cat: <I>casa sobre el turó</I> <li>Dan: <I>hus på højen</I> <li>Dut: <I>huis op de heuvel</I> <li>Eng: <I>house on the hill</I> <li>Fin: <I>talo kukkulalla</I> <li>Fre: <I>maison sur la colline</I> <li>Ger: <I>Haus auf dem Hügel</I> <li>Ita: <I>casa sulla collina</I> <li>Nor: <I>hus på haugen</I> <li>Pol: <I>dom nа wzgórzu</I> <li>Ron: <I>casă pe deal</I> <li>Rus: <I>дом на холме</I> <li>Spa: <I>casa sobre la colina</I> <li>Swe: <I>hus på kullen</I> <li>Urd: <I>پہاڑی پر گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>big house on the hill</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkCN big_A house_N) (mkAdv on_Prep (mkNP the_Det hill_N))</CODE> <li>Bul: <I>голяма къща на хълма</I> <li>Cat: <I>casa grosa sobre el turó</I> <li>Dan: <I>stort hus på højen</I> <li>Dut: <I>groot huis op de heuvel</I> <li>Eng: <I>big house on the hill</I> <li>Fin: <I>suuri talo kukkulalla</I> <li>Fre: <I>grande maison sur la colline</I> <li>Ger: <I>großes Haus auf dem Hügel</I> <li>Ita: <I>grande casa sulla collina</I> <li>Nor: <I>stort hus på haugen</I> <li>Pol: <I>duży dom nа wzgórzu</I> <li>Ron: <I>casă mare pe deal</I> <li>Rus: <I>большой дом на холме</I> <li>Spa: <I>grande casa sobre la colina</I> <li>Swe: <I>stort hus på kullen</I> <li>Urd: <I>پہاڑی پر بڑا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>almost five</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>почти петима</I> <li>Cat: <I>{s = table CommonRomance.Gender {</I> <li>Dan: <I>næsten fem</I> <li>Dut: <I>bijna vijf</I> <li>Eng: <I>almost five</I> <li>Fin: <I>melkein viisi</I> <li>Fre: <I>presque cinq</I> <li>Ger: <I>fast fünf</I> <li>Ita: <I>quasi cinque</I> <li>Nor: <I>nesten fem</I> <li>Pol: <I>prawie pięć</I> <li>Ron: <I>aproape cinci</I> <li>Rus: <I>почти пять</I> <li>Spa: <I>casi cinco</I> <li>Swe: <I>nästan fem</I> <li>Urd: <I>تقریبا پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>almost five</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>почти петима</I> <li>Cat: <I>{s = table CommonRomance.Gender {</I> <li>Dan: <I>næsten fem</I> <li>Dut: <I>bijna vijf</I> <li>Eng: <I>almost five</I> <li>Fin: <I>melkein viisi</I> <li>Fre: <I>presque cinq</I> <li>Ger: <I>fast fünf</I> <li>Ita: <I>quasi cinque</I> <li>Nor: <I>nesten fem</I> <li>Pol: <I>prawie pięć</I> <li>Ron: <I>aproape cinci</I> <li>Rus: <I>почти пять</I> <li>Spa: <I>casi cinco</I> <li>Swe: <I>nästan fem</I> <li>Urd: <I>تقریبا پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>reason to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkCN reason_N) (mkVP sleep_V)</CODE> <li>Bul: <I>причина да спя</I> <li>Cat: <I>raó dormir</I> <li>Dan: <I>*</I> <li>Dut: <I>reden te slapen</I> <li>Eng: <I>reason to sleep</I> <li>Fin: <I>syy nukkua</I> <li>Fre: <I>raison dormir</I> <li>Ger: <I>Grund zu schlafen</I> <li>Ita: <I>ragione dormire</I> <li>Nor: <I>*</I> <li>Pol: <I>powód spać</I> <li>Ron: <I>motiv sã doarmă</I> <li>Rus: <I>причина спать</I> <li>Spa: <I>*</I> <li>Swe: <I>anledning att sova</I> <li>Urd: <I>وجہ سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>reason to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkCN reason_N) (mkVP sleep_V)</CODE> <li>Bul: <I>причина да спя</I> <li>Cat: <I>raó dormir</I> <li>Dan: <I>*</I> <li>Dut: <I>reden te slapen</I> <li>Eng: <I>reason to sleep</I> <li>Fin: <I>syy nukkua</I> <li>Fre: <I>raison dormir</I> <li>Ger: <I>Grund zu schlafen</I> <li>Ita: <I>ragione dormire</I> <li>Nor: <I>*</I> <li>Pol: <I>powód spać</I> <li>Ron: <I>motiv sã doarmă</I> <li>Rus: <I>причина спать</I> <li>Spa: <I>*</I> <li>Swe: <I>anledning att sova</I> <li>Urd: <I>وجہ سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>king John</I> <div class=popup> <ul> <li>API: <CODE>mkCN king_N (mkNP john_PN)</CODE> <li>Bul: <I>цар Джон</I> <li>Cat: <I>rei Joan</I> <li>Dan: <I>konge John</I> <li>Dut: <I>koning Jan</I> <li>Eng: <I>king John</I> <li>Fin: <I>kuningas Jussi</I> <li>Fre: <I>roi Jean</I> <li>Ger: <I>König Johann</I> <li>Ita: <I>ré Giovanni</I> <li>Nor: <I>konge John</I> <li>Pol: <I>król Jan</I> <li>Ron: <I>rege Ion</I> <li>Rus: <I>король Иван</I> <li>Spa: <I>rey Juan</I> <li>Swe: <I>kung Johan</I> <li>Urd: <I>بادشاہ جان</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCN</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A></TD>
+<TD><div class=reveal> <I>old king John</I> <div class=popup> <ul> <li>API: <CODE>mkCN (mkCN old_A king_N) (mkNP john_PN)</CODE> <li>Bul: <I>стар цар Джон</I> <li>Cat: <I>rei vell Joan</I> <li>Dan: <I>gammel konge John</I> <li>Dut: <I>oude koning Jan</I> <li>Eng: <I>old king John</I> <li>Fin: <I>vanha kuningas Jussi</I> <li>Fre: <I>vieux roi Jean</I> <li>Ger: <I>alter König Johann</I> <li>Ita: <I>vecchio ré Giovanni</I> <li>Nor: <I>gammel konge John</I> <li>Pol: <I>stary król Jan</I> <li>Ron: <I>rege vechi Ion</I> <li>Rus: <I>старый король Иван</I> <li>Spa: <I>viejo rey Juan</I> <li>Swe: <I>gammal kung Johan</I> <li>Urd: <I>بوڑھا بادشاہ جان</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Card"></A>
+<H2>Card - cardinal number</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkCard</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
+<TD><I>thirty-five (given as "35"; range 1-999)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCard</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
+<TD><div class=reveal> <I>seven</I> <div class=popup> <ul> <li>API: <CODE>mkCard (mkNumeral n7_Unit)</CODE> <li>Bul: <I>седмина</I> <li>Cat: <I>set</I> <li>Dan: <I>syv</I> <li>Dut: <I>zeven</I> <li>Eng: <I>seven</I> <li>Fin: <I>seitsemän</I> <li>Fre: <I>sept</I> <li>Ger: <I>sieben</I> <li>Ita: <I>sette</I> <li>Nor: <I>sju</I> <li>Pol: <I>siedem</I> <li>Ron: <I>şapte</I> <li>Rus: <I>семь</I> <li>Spa: <I>siete</I> <li>Swe: <I>sju</I> <li>Urd: <I>سات</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCard</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
+<TD><I>51</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCard</CODE></TD>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A></TD>
+<TD><I>almost fifty</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="Cl"></A>
+<H2>Cl - declarative clause, with all tenses</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>genericCl</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>one sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkS (genericCl (mkVP sleep_V))</CODE> <li>Bul: <I>някой спи</I> <li>Cat: <I>hom dorm</I> <li>Dan: <I>man sover</I> <li>Dut: <I>men slaapt</I> <li>Eng: <I>one sleeps</I> <li>Fin: <I>nukutaan</I> <li>Fre: <I>on dort</I> <li>Ger: <I>man schläft</I> <li>Ita: <I>si dorme</I> <li>Nor: <I>man sover</I> <li>Pol: <I>ktoś śpi</I> <li>Ron: <I>cineva doarme</I> <li>Rus: <I>ты спдишь</I> <li>Spa: <I>se duerme</I> <li>Swe: <I>man sover</I> <li>Urd: <I>كوی سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP sleep_V</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she loves him</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP love_V2 he_NP</CODE> <li>Bul: <I>тя обича него</I> <li>Cat: <I>ella el estima</I> <li>Dan: <I>hun elsker ham</I> <li>Dut: <I>ze heeft hem lief</I> <li>Eng: <I>she loves him</I> <li>Fin: <I>hän rakastaa häntä</I> <li>Fre: <I>elle l' aime</I> <li>Ger: <I>sie liebt ihn</I> <li>Ita: <I>lei lo ama</I> <li>Nor: <I>hun elsker ham</I> <li>Pol: <I>ona kocha jego</I> <li>Ron: <I>ea îl iubeşte</I> <li>Rus: <I>она любдит его</I> <li>Spa: <I>ella lo ama</I> <li>Swe: <I>hon älskar honom</I> <li>Urd: <I>وہ اس كو پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she sends it to him</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP send_V3 it_NP he_NP</CODE> <li>Bul: <I>тя праща него до него</I> <li>Cat: <I>ella ho li envia</I> <li>Dan: <I>hun sender det til ham</I> <li>Dut: <I>ze stuurt het naar hem</I> <li>Eng: <I>she sends it to him</I> <li>Fin: <I>hän lähettää sen hänelle</I> <li>Fre: <I>elle le lui envoie</I> <li>Ger: <I>sie schickt es ihm</I> <li>Ita: <I>lei lo gli manda</I> <li>Nor: <I>hun sender det til ham</I> <li>Pol: <I>ona wysyła do niego je</I> <li>Ron: <I>ea i -l trimite</I> <li>Rus: <I>она посылает нему его</I> <li>Spa: <I>ella lo le manda</I> <li>Swe: <I>hon skickar det till honom</I> <li>Urd: <I>وہ اس كو اس كو بھیجتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she wants to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP want_VV (mkVP sleep_V)</CODE> <li>Bul: <I>тя иска да спи</I> <li>Cat: <I>ella vol dormir</I> <li>Dan: <I>hun vil sove</I> <li>Dut: <I>ze wil slapen</I> <li>Eng: <I>she wants to sleep</I> <li>Fin: <I>hän tahtoo nukkua</I> <li>Fre: <I>elle veut dormir</I> <li>Ger: <I>sie will schlafen</I> <li>Ita: <I>lei vuole dormire</I> <li>Nor: <I>hun vil sove</I> <li>Pol: <I>ona chce spać</I> <li>Ron: <I>ea vrea sã doarmă</I> <li>Rus: <I>она хоччет спать</I> <li>Spa: <I>ella quiere dormir</I> <li>Swe: <I>hon vill sova</I> <li>Urd: <I>وہ سونا چاہتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she says that I sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP say_VS (mkS (mkCl i_NP sleep_V))</CODE> <li>Bul: <I>тя казва , че аз спя</I> <li>Cat: <I>ella diu que jo dormo</I> <li>Dan: <I>hun siger at jeg sover</I> <li>Dut: <I>ze zegt dat ik slaap</I> <li>Eng: <I>she says that I sleep</I> <li>Fin: <I>hän sanoo että minä nukun</I> <li>Fre: <I>elle dit que je dors</I> <li>Ger: <I>sie sagt daß ich schlafe</I> <li>Ita: <I>lei dice che io dormo</I> <li>Nor: <I>hun sier at jeg sover</I> <li>Pol: <I>ona mówi , że ja śpię</I> <li>Ron: <I>ea spune cã eu dorm</I> <li>Rus: <I>она говордит , что я сплю</I> <li>Spa: <I>ella dice que yo duermo</I> <li>Swe: <I>hon säger att jag sover</I> <li>Urd: <I>وہ كہتی ہے كہ میں سوتا ہوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she wonders who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP wonder_VQ (mkQS (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>тя се учудва кой спи</I> <li>Cat: <I>ella se pregunta qui dorm</I> <li>Dan: <I>hun undres hvem som sover</I> <li>Dut: <I>ze vraagt zich af wie slaapt</I> <li>Eng: <I>she wonders who sleeps</I> <li>Fin: <I>hän ihmettelee kuka nukkuu</I> <li>Fre: <I>elle s' étonne qui dort</I> <li>Ger: <I>sie wundert sich wer schläft</I> <li>Ita: <I>lei si domanda chi dorme</I> <li>Nor: <I>hun undrer hvem som sover</I> <li>Pol: <I>ona zastanawia się , kto śpi</I> <li>Ron: <I>ea se întreabă cine doarme</I> <li>Rus: <I>она интересует кто спдит</I> <li>Spa: <I>ella se pregunta quién duerme</I> <li>Swe: <I>hon undrar vem som sover</I> <li>Urd: <I>وہ حیران ہوتی ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she becomes old</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP become_VA old_A</CODE> <li>Bul: <I>тя става стара</I> <li>Cat: <I>ella se torna vell</I> <li>Dan: <I>hun bliver gammel</I> <li>Dut: <I>ze wordt oud</I> <li>Eng: <I>she becomes old</I> <li>Fin: <I>hän tulee vanhaksi</I> <li>Fre: <I>elle devient vieille</I> <li>Ger: <I>sie wird alt</I> <li>Ita: <I>lei diventa vecchia</I> <li>Nor: <I>hun blir gammel</I> <li>Pol: <I>ona staje się stara</I> <li>Ron: <I>ea devine veche</I> <li>Rus: <I>она становдит старой</I> <li>Spa: <I>ella se converte vieja</I> <li>Swe: <I>hon blir gammal</I> <li>Urd: <I>وہ بوڑھی بنتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she becomes very old</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP become_VA (mkAP very_AdA old_A)</CODE> <li>Bul: <I>тя става много стара</I> <li>Cat: <I>ella se torna molt vell</I> <li>Dan: <I>hun bliver meget gammel</I> <li>Dut: <I>ze wordt erg oud</I> <li>Eng: <I>she becomes very old</I> <li>Fin: <I>hän tulee erittäin vanhaksi</I> <li>Fre: <I>elle devient très vieille</I> <li>Ger: <I>sie wird sehr alt</I> <li>Ita: <I>lei diventa molto vecchia</I> <li>Nor: <I>hun blir mye gammel</I> <li>Pol: <I>ona staje się bardzo stara</I> <li>Ron: <I>ea devine foarte veche</I> <li>Rus: <I>она становдит очень старой</I> <li>Spa: <I>ella se converte muy vieja</I> <li>Swe: <I>hon blir mycket gammal</I> <li>Urd: <I>وہ بہت بوڑھی بنتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she paints it red</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP paint_V2A it_NP red_A</CODE> <li>Bul: <I>тя рисува него червено</I> <li>Cat: <I>ella ho pinta en vermell</I> <li>Dan: <I>hun maler det rødt</I> <li>Dut: <I>ze schildeert het rood</I> <li>Eng: <I>she paints it red</I> <li>Fin: <I>hän maalaa sen punaiseksi</I> <li>Fre: <I>elle le peint en rouge</I> <li>Ger: <I>sie malt es rot</I> <li>Ita: <I>lei lo dipinge rosso</I> <li>Nor: <I>hun maler det rødt</I> <li>Pol: <I>ona maluje je na czerwono</I> <li>Ron: <I>ea îl pictează roşu</I> <li>Rus: <I>она рисует красным его</I> <li>Spa: <I>ella lo pinta en rojo</I> <li>Swe: <I>hon målar det rött</I> <li>Urd: <I>وہ اس كو لال رنگ كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she paints it red</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP paint_V2A it_NP (mkAP red_A)</CODE> <li>Bul: <I>тя рисува него червено</I> <li>Cat: <I>ella ho pinta en vermell</I> <li>Dan: <I>hun maler det rødt</I> <li>Dut: <I>ze schildeert het rood</I> <li>Eng: <I>she paints it red</I> <li>Fin: <I>hän maalaa sen punaiseksi</I> <li>Fre: <I>elle le peint en rouge</I> <li>Ger: <I>sie malt es rot</I> <li>Ita: <I>lei lo dipinge rosso</I> <li>Nor: <I>hun maler det rødt</I> <li>Pol: <I>ona maluje je na czerwono</I> <li>Ron: <I>ea îl pictează roşu</I> <li>Rus: <I>она рисует красным его</I> <li>Spa: <I>ella lo pinta en rojo</I> <li>Swe: <I>hon målar det rött</I> <li>Urd: <I>وہ اس كو لال رنگ كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she answers to him that we sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))</CODE> <li>Bul: <I>тя отговаря му , че ние спим</I> <li>Cat: <I>ella li respon que nosaltres dormim</I> <li>Dan: <I>hun svarer til ham at vi sover</I> <li>Dut: <I>ze antwoordt hem dat we slapen</I> <li>Eng: <I>she answers to him that we sleep</I> <li>Fin: <I>hän vastaa hänelle että me nukumme</I> <li>Fre: <I>elle lui répond que nous dormons</I> <li>Ger: <I>sie antwortet ihm daß wir schlafen</I> <li>Ita: <I>lei gli risponde che noi dormiamo</I> <li>Nor: <I>hun svarer til ham at vi sover</I> <li>Pol: <I>ona odpowiada jemu , że my śpimy</I> <li>Ron: <I>ea îi răspunde cã noi dormim</I> <li>Rus: <I>она отвечает , что мы спдим его</I> <li>Spa: <I>ella le responde que nosotros dormimos</I> <li>Swe: <I>hon svarar till honom att vi sover</I> <li>Urd: <I>وہ اس كو جواب دیتی ہے كہ ہم سوتے ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she asks him who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>тя пита него кой спи</I> <li>Cat: <I>ella li pregunta qui dorm</I> <li>Dan: <I>hun spørger ham hvem som sover</I> <li>Dut: <I>ze vraagt hem wie slaapt</I> <li>Eng: <I>she asks him who sleeps</I> <li>Fin: <I>hän kysyy häneltä kuka nukkuu</I> <li>Fre: <I>elle lui demande qui dort</I> <li>Ger: <I>sie fragt ihn wer schläft</I> <li>Ita: <I>lei gli chiede chi dorme</I> <li>Nor: <I>hun spørr ham hvem som sover</I> <li>Pol: <I>ona pyta jego , kto śpi</I> <li>Ron: <I>ea îl întreabă cine doarme</I> <li>Rus: <I>она спрашивает кто спдит его</I> <li>Spa: <I>ella le pregunta quién duerme</I> <li>Swe: <I>hon frågar honom vem som sover</I> <li>Urd: <I>وہ اس سے پوچھتی ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she begs him to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP beg_V2V he_NP (mkVP sleep_V)</CODE> <li>Bul: <I>тя моли него да спи</I> <li>Cat: <I>ella el demana a dormir</I> <li>Dan: <I>hun beder ham at sove</I> <li>Dut: <I>ze smeekt hem te slapen</I> <li>Eng: <I>she begs him to sleep</I> <li>Fin: <I>hän pyytää häntä nukkumaan</I> <li>Fre: <I>elle le demande à dormir</I> <li>Ger: <I>sie bittet ihn zu schlafen</I> <li>Ita: <I>lei lo prega di dormire</I> <li>Nor: <I>hun ber ham att sove</I> <li>Pol: <I>*</I> <li>Ron: <I>ea îl roagă sã doarmă</I> <li>Rus: <I>она просит спать его</I> <li>Spa: <I>ella lo roga a dormir</I> <li>Swe: <I>hon ber honom att sova</I> <li>Urd: <I>وہ اس سے سونے كی التجا كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is old</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP old_A</CODE> <li>Bul: <I>тя е стара</I> <li>Cat: <I>ella és vell</I> <li>Dan: <I>hun er gammel</I> <li>Dut: <I>ze is oud</I> <li>Eng: <I>she is old</I> <li>Fin: <I>hän on vanha</I> <li>Fre: <I>elle est vieille</I> <li>Ger: <I>sie ist alt</I> <li>Ita: <I>lei è vecchia</I> <li>Nor: <I>hun er gammel</I> <li>Pol: <I>ona jest stara</I> <li>Ron: <I>ea este veche</I> <li>Rus: <I>она старая</I> <li>Spa: <I>ella es vieja</I> <li>Swe: <I>hon är gammal</I> <li>Urd: <I>وہ بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is older than he</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP old_A he_NP</CODE> <li>Bul: <I>тя е по - стара от него</I> <li>Cat: <I>ella és més vell que ell</I> <li>Dan: <I>hun er ældre end han</I> <li>Dut: <I>ze is ouder dan hij</I> <li>Eng: <I>she is older than he</I> <li>Fin: <I>hän on vanhempi kuin hän</I> <li>Fre: <I>elle est plus vieille que lui</I> <li>Ger: <I>sie ist älter als er</I> <li>Ita: <I>lei è più vecchia di lui</I> <li>Nor: <I>hun er eldre enn han</I> <li>Pol: <I>ona jest starsza niż on</I> <li>Ron: <I>ea este mai veche decât el</I> <li>Rus: <I>она старше него</I> <li>Spa: <I>ella es más vieja que él</I> <li>Swe: <I>hon är äldre än han</I> <li>Urd: <I>وہ اس سے بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is married to him</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP married_A2 he_NP</CODE> <li>Bul: <I>тя е женена за него</I> <li>Cat: <I>ella és casata a ell</I> <li>Dan: <I>hun er gift med ham</I> <li>Dut: <I>ze is getrouwd met hem</I> <li>Eng: <I>she is married to him</I> <li>Fin: <I>hän on avioitunut hänen kanssa</I> <li>Fre: <I>elle est mariée à lui</I> <li>Ger: <I>sie ist verheiratet mit ihm</I> <li>Ita: <I>lei è sposata con lui</I> <li>Nor: <I>hun er gift med ham</I> <li>Pol: <I>ona jest zaślubiona jemu</I> <li>Ron: <I>ea este căsătorită cu el</I> <li>Rus: <I>она замужем за им</I> <li>Spa: <I>ella es casada a él</I> <li>Swe: <I>hon är gift med honom</I> <li>Urd: <I>وہ اس سے [شادی كرنa] ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is very old</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkAP very_AdA old_A)</CODE> <li>Bul: <I>тя е много стара</I> <li>Cat: <I>ella és molt vell</I> <li>Dan: <I>hun er meget gammel</I> <li>Dut: <I>ze is erg oud</I> <li>Eng: <I>she is very old</I> <li>Fin: <I>hän on erittäin vanha</I> <li>Fre: <I>elle est très vieille</I> <li>Ger: <I>sie ist sehr alt</I> <li>Ita: <I>lei è molto vecchia</I> <li>Nor: <I>hun er mye gammel</I> <li>Pol: <I>ona jest bardzo stara</I> <li>Ron: <I>ea este foarte veche</I> <li>Rus: <I>она очень старая</I> <li>Spa: <I>ella es muy vieja</I> <li>Swe: <I>hon är mycket gammal</I> <li>Urd: <I>وہ بہت بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is the woman</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkNP the_Det woman_N)</CODE> <li>Bul: <I>тя е жената</I> <li>Cat: <I>ella és la dona</I> <li>Dan: <I>hun er kvinden</I> <li>Dut: <I>ze is de vrouw</I> <li>Eng: <I>she is the woman</I> <li>Fin: <I>hän on nainen</I> <li>Fre: <I>elle est la femme</I> <li>Ger: <I>sie ist die Frau</I> <li>Ita: <I>lei è la donna</I> <li>Nor: <I>hun er kvinna</I> <li>Pol: <I>ona jest kobietą</I> <li>Ron: <I>ea este femeia</I> <li>Rus: <I>она женщина</I> <li>Spa: <I>ella es la mujer</I> <li>Swe: <I>hon är kvinnan</I> <li>Urd: <I>وہ عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is a woman</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP woman_N</CODE> <li>Bul: <I>тя е жена</I> <li>Cat: <I>ella és dona</I> <li>Dan: <I>hun er en kvinde</I> <li>Dut: <I>ze is vrouw</I> <li>Eng: <I>she is a woman</I> <li>Fin: <I>hän on nainen</I> <li>Fre: <I>elle est femme</I> <li>Ger: <I>sie ist eine Frau</I> <li>Ita: <I>lei è donna</I> <li>Nor: <I>hun er ei kvinne</I> <li>Pol: <I>ona jest kobieta</I> <li>Ron: <I>ea este femeie</I> <li>Rus: <I>она женщина</I> <li>Spa: <I>ella es mujer</I> <li>Swe: <I>hon är en kvinna</I> <li>Urd: <I>وہ عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is an old woman</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkCN old_A woman_N)</CODE> <li>Bul: <I>тя е стара жена</I> <li>Cat: <I>ella és dona vell</I> <li>Dan: <I>hun er en gammel kvinde</I> <li>Dut: <I>ze is oude vrouw</I> <li>Eng: <I>she is an old woman</I> <li>Fin: <I>hän on vanha nainen</I> <li>Fre: <I>elle est vieille femme</I> <li>Ger: <I>sie ist eine alte Frau</I> <li>Ita: <I>lei è vecchia donna</I> <li>Nor: <I>hun er ei gammel kvinne</I> <li>Pol: <I>ona jest stara kobieta</I> <li>Ron: <I>ea este femeie veche</I> <li>Rus: <I>она старая женщина</I> <li>Spa: <I>ella es vieja mujer</I> <li>Swe: <I>hon är en gammal kvinna</I> <li>Urd: <I>وہ بوڑھی عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she is here</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP here_Adv</CODE> <li>Bul: <I>тя е тук</I> <li>Cat: <I>ella és aquí</I> <li>Dan: <I>hun er her</I> <li>Dut: <I>ze is hier</I> <li>Eng: <I>she is here</I> <li>Fin: <I>hän on täällä</I> <li>Fre: <I>elle est ici</I> <li>Ger: <I>sie ist hier</I> <li>Ita: <I>lei è quà</I> <li>Nor: <I>hun er her</I> <li>Pol: <I>ona jest tutaj</I> <li>Ron: <I>ea este aici</I> <li>Rus: <I>она здесь</I> <li>Spa: <I>ella es aquí</I> <li>Swe: <I>hon är här</I> <li>Urd: <I>وہ یہاں ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>she always sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkVP always_AdV (mkVP sleep_V))</CODE> <li>Bul: <I>тя винаги спи</I> <li>Cat: <I>ella dorm sempre</I> <li>Dan: <I>hun sover altid</I> <li>Dut: <I>ze slaapt altijd</I> <li>Eng: <I>she always sleeps</I> <li>Fin: <I>hän nukkuu aina</I> <li>Fre: <I>elle dort toujours</I> <li>Ger: <I>sie schläft immer</I> <li>Ita: <I>lei dorme sempre</I> <li>Nor: <I>hun sover altid</I> <li>Pol: <I>ona zawsze śpi</I> <li>Ron: <I>ea doarme mereu</I> <li>Rus: <I>она спдит всегда</I> <li>Spa: <I>ella duerme siempre</I> <li>Swe: <I>hon sover alltid</I> <li>Urd: <I>وہ ہمیشہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>there is a house</I> <div class=popup> <ul> <li>API: <CODE>mkCl house_N</CODE> <li>Bul: <I>има къща</I> <li>Cat: <I>hi ha una casa</I> <li>Dan: <I>det findes et hus</I> <li>Dut: <I>er is een huis</I> <li>Eng: <I>there is a house</I> <li>Fin: <I>on olemassa talo</I> <li>Fre: <I>il y a une maison</I> <li>Ger: <I>es gibt ein Haus</I> <li>Ita: <I>c' è una casa</I> <li>Nor: <I>det finnes et hus</I> <li>Pol: <I>jest dom</I> <li>Ron: <I>există o casă</I> <li>Rus: <I>существует дом</I> <li>Spa: <I>hay una casa</I> <li>Swe: <I>det finns ett hus</I> <li>Urd: <I>وہاں گھر ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><I>there is an old house</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>there are many houses</I> <div class=popup> <ul> <li>API: <CODE>mkCl (mkNP many_Det house_N)</CODE> <li>Bul: <I>има много къщи</I> <li>Cat: <I>hi ha moltes cases</I> <li>Dan: <I>det findes mange huse</I> <li>Dut: <I>er zijn veel huizen</I> <li>Eng: <I>there are many houses</I> <li>Fin: <I>on olemassa moni talo</I> <li>Fre: <I>il y a plusieurs maisons</I> <li>Ger: <I>es gibt viele Häuser</I> <li>Ita: <I>ci sono molte case</I> <li>Nor: <I>det finnes mange hus</I> <li>Pol: <I>jest wiele domów</I> <li>Ron: <I>există multe case</I> <li>Rus: <I>существует много дома</I> <li>Spa: <I>hay muchas casas</I> <li>Swe: <I>det finns många hus</I> <li>Urd: <I>وہاں بہت زیادہ گھر ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>it is she who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl she_NP (mkRS (mkRCl which_RP (mkVP sleep_V)))</CODE> <li>Bul: <I>тя е тaзи която спи</I> <li>Cat: <I>és ella que dorm</I> <li>Dan: <I>det er hun som sover</I> <li>Dut: <I>'t is ze die slaapt</I> <li>Eng: <I>it is she who sleeps</I> <li>Fin: <I>se on hän joka nukkuu</I> <li>Fre: <I>c' est elle qui dort</I> <li>Ger: <I>es ist sie die schläft</I> <li>Ita: <I>è lei che dorme</I> <li>Nor: <I>det er hun som sover</I> <li>Pol: <I>to ona , która śpi</I> <li>Ron: <I>este ea care doarme</I> <li>Rus: <I>это она , которая спдит</I> <li>Spa: <I>es ella que duerme</I> <li>Swe: <I>det är hon som sover</I> <li>Urd: <I>وہ ہے جو سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>it is here that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCl here_Adv (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>тук тя спи</I> <li>Cat: <I>és aquí que ella dorm</I> <li>Dan: <I>det er her hun sover</I> <li>Dut: <I>'t is hier dat ze slaapt</I> <li>Eng: <I>it is here that she sleeps</I> <li>Fin: <I>se on täällä kun hän nukkuu</I> <li>Fre: <I>c' est ici qu' elle dort</I> <li>Ger: <I>es ist hier daß sie schläft</I> <li>Ita: <I>è quà che lei dorme</I> <li>Nor: <I>det er her hun sover</I> <li>Pol: <I>tutaj ona śpi</I> <li>Ron: <I>este aici cã ea doarme</I> <li>Rus: <I>это здесь , она спдит</I> <li>Spa: <I>es aquí que ella duerme</I> <li>Swe: <I>det är här hon sover</I> <li>Urd: <I>یہاں وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>it rains</I> <div class=popup> <ul> <li>API: <CODE>mkCl rain_V0</CODE> <li>Bul: <I>вали</I> <li>Cat: <I>plou</I> <li>Dan: <I>det regner</I> <li>Dut: <I>'t regeent</I> <li>Eng: <I>it rains</I> <li>Fin: <I>sataa</I> <li>Fre: <I>il pleut</I> <li>Ger: <I>es regnet</I> <li>Ita: <I>piove</I> <li>Nor: <I>det regner</I> <li>Pol: <I>pada</I> <li>Ron: <I>plouă</I> <li>Rus: <I>идет дождь</I> <li>Spa: <I>llueve</I> <li>Swe: <I>det regnar</I> <li>Urd: <I>بارش ہوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>it is raining</I> <div class=popup> <ul> <li>API: <CODE>mkCl (progressiveVP (mkVP rain_V0))</CODE> <li>Bul: <I>вали</I> <li>Cat: <I>està plovent</I> <li>Dan: <I>det er ved å regne</I> <li>Dut: <I>'t is aan het regenen</I> <li>Eng: <I>it is raining</I> <li>Fin: <I>on satamassa</I> <li>Fre: <I>il est en train de pleuvoir</I> <li>Ger: <I>es regnet eben</I> <li>Ita: <I>sta piovendo</I> <li>Nor: <I>det er ved å regne</I> <li>Pol: <I>pada</I> <li>Ron: <I>plouă</I> <li>Rus: <I>идет дождь</I> <li>Spa: <I>está lloviendo</I> <li>Swe: <I>det håller på att regna</I> <li>Urd: <I>بارش ہو رہا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkCl</CODE></TD>
+<TD><A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A></TD>
+<TD><div class=reveal> <I>that she sleeps is good</I> <div class=popup> <ul> <li>API: <CODE>mkCl (mkSC (mkS (mkCl she_NP sleep_V))) (mkVP good_A)</CODE> <li>Bul: <I>, че тя спи е добър</I> <li>Cat: <I>que ella dorm és bo</I> <li>Dan: <I>at hun sover er godt</I> <li>Dut: <I>dat ze slaapt is goed</I> <li>Eng: <I>that she sleeps is good</I> <li>Fin: <I>että hän nukkuu on hyvä</I> <li>Fre: <I>qu' elle dort est bon</I> <li>Ger: <I>daß sie schläft ist gut</I> <li>Ita: <I>che lei dorme è buono</I> <li>Nor: <I>at hun sover er godt</I> <li>Pol: <I>, że ona śpi jest dobre</I> <li>Ron: <I>cã ea doarme este bun</I> <li>Rus: <I>что она спдит хорошее</I> <li>Spa: <I>que ella duerme es bueno</I> <li>Swe: <I>att hon sover är gott</I> <li>Urd: <I>كہ وہ سوتی ہے اچھا ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="ClSlash"></A>
+<H2>ClSlash</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>whom does she see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2))</CODE> <li>Bul: <I>кого вижда тя</I> <li>Cat: <I>qui veu ella</I> <li>Dan: <I>hvem ser hun</I> <li>Dut: <I>wie zit ze</I> <li>Eng: <I>whom does she see</I> <li>Fin: <I>kenet hän näkee</I> <li>Fre: <I>qui voit elle</I> <li>Ger: <I>wen sieht sie</I> <li>Ita: <I>chi vede lei</I> <li>Nor: <I>hvem ser hun</I> <li>Pol: <I>kogo widzi ona</I> <li>Ron: <I>pe cine vede ea</I> <li>Rus: <I>кого она видит</I> <li>Spa: <I>quién ve ella</I> <li>Swe: <I>vem ser hon</I> <li>Urd: <I>كون وہ دیكھتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>whom does she see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP see_V2)</CODE> <li>Bul: <I>кого вижда тя</I> <li>Cat: <I>qui veu ella</I> <li>Dan: <I>hvem ser hun</I> <li>Dut: <I>wie zit ze</I> <li>Eng: <I>whom does she see</I> <li>Fin: <I>kenet hän näkee</I> <li>Fre: <I>qui voit elle</I> <li>Ger: <I>wen sieht sie</I> <li>Ita: <I>chi vede lei</I> <li>Nor: <I>hvem ser hun</I> <li>Pol: <I>kogo widzi ona</I> <li>Ron: <I>pe cine vede ea</I> <li>Rus: <I>кого она видит</I> <li>Spa: <I>quién ve ella</I> <li>Swe: <I>vem ser hon</I> <li>Urd: <I>كون وہ دیكھتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>whom does she want to see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP want_VV see_V2)</CODE> <li>Bul: <I>кого иска да види тя</I> <li>Cat: <I>qui vol ella veure</I> <li>Dan: <I>hvem vil hun se</I> <li>Dut: <I>wie wil ze zien</I> <li>Eng: <I>whom does she want to see</I> <li>Fin: <I>kenet hän tahtoo nähdä</I> <li>Fre: <I>qui veut elle voir</I> <li>Ger: <I>wen will sie sehen</I> <li>Ita: <I>chi vuole lei vedere</I> <li>Nor: <I>hvem vil hun se</I> <li>Pol: <I>kogo ona chce widzieć</I> <li>Ron: <I>pe cine vrea ea sã vadă</I> <li>Rus: <I>кого она хоччет видеть</I> <li>Spa: <I>quién quiere ella ver</I> <li>Swe: <I>vem vill hon se</I> <li>Urd: <I>كون وہ دیكھنا چاہتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>with whom does she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash (mkCl she_NP sleep_V) with_Prep)</CODE> <li>Bul: <I>с кого спи тя</I> <li>Cat: <I>amb qui dorm ella</I> <li>Dan: <I>med hvem sover hun</I> <li>Dut: <I>met wie slaapt ze</I> <li>Eng: <I>with whom does she sleep</I> <li>Fin: <I>kenen kanssa hän nukkuu</I> <li>Fre: <I>avec qui dort elle</I> <li>Ger: <I>mit wem schläft sie</I> <li>Ita: <I>con chi dorme lei</I> <li>Nor: <I>med hvem sover hun</I> <li>Pol: <I>z kim ona śpi</I> <li>Ron: <I>cu cine doarme ea</I> <li>Rus: <I>с кем она спдит</I> <li>Spa: <I>con quién duerme ella</I> <li>Swe: <I>med vem sover hon</I> <li>Urd: <I>كون وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>whom does she see today</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash (mkClSlash she_NP see_V2) today_Adv)</CODE> <li>Bul: <I>кого вижда тя днес</I> <li>Cat: <I>qui veu ella avui</I> <li>Dan: <I>hvem ser hun idag</I> <li>Dut: <I>wie zit ze vandaag</I> <li>Eng: <I>whom does she see today</I> <li>Fin: <I>kenet hän näkee tänään</I> <li>Fre: <I>qui voit elle aujourd'hui</I> <li>Ger: <I>wen sieht sie heute</I> <li>Ita: <I>chi vede lei oggi</I> <li>Nor: <I>hvem ser hun idag</I> <li>Pol: <I>kogo dziś widzi ona</I> <li>Ron: <I>pe cine vede ea astăzi</I> <li>Rus: <I>*</I> <li>Spa: <I>quién ve ella hoy</I> <li>Swe: <I>vem ser hon idag</I> <li>Urd: <I>كون آج وہ دیكھتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkClSlash</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#SSlash">SSlash</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A></TD>
+<TD><div class=reveal> <I>whom does she know that we hadn't seen</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP know_VS (mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash we_NP (mkVPSlash see_V2))))</CODE> <li>Bul: <I>кого знае че ние не бяхме видeли тя</I> <li>Cat: <I>qui sap ella que nosaltres no havíem vist</I> <li>Dan: <I>hvem ved hun at vi ikke havde set</I> <li>Dut: <I>wie weet ze dat we niet gezien hadden</I> <li>Eng: <I>whom does she know that we hadn't seen</I> <li>Fin: <I>kenet hän tietää että me emme olleet nähneet</I> <li>Fre: <I>qui sait elle que nous n' avions pas vu</I> <li>Ger: <I>wen weiß sie daß wir nicht gesehen hatten</I> <li>Ita: <I>chi sa lei che noi non avevamo visto</I> <li>Nor: <I>hvem vet hun at vi ikke hadde sett</I> <li>Pol: <I>kogo ona wie , że nie zobaczyliśmy my</I> <li>Ron: <I>pe cine ştie ea cã noi nu văzuserăm</I> <li>Rus: <I>*</I> <li>Spa: <I>quién sabe ella que nosotros no habíamos visto</I> <li>Swe: <I>vem vet hon att vi inte hade sett</I> <li>Urd: <I>كون وہ جانتی ہے كہ ہم نہیں دیكھ چكے تh-ے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Comp"></A>
+<H2>Comp - complement of copula, such as AP</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkComp</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A></TD>
+<TD><div class=reveal> <I>old</I> <div class=popup> <ul> <li>API: <CODE>mkComp (mkAP old_A)</CODE> <li>Bul: <I>стар</I> <li>Cat: <I>vell</I> <li>Dan: <I>gammel</I> <li>Dut: <I>oud</I> <li>Eng: <I>old</I> <li>Fin: <I>vanha</I> <li>Fre: <I>vieux</I> <li>Ger: <I>alt</I> <li>Ita: <I>vecchio</I> <li>Nor: <I>gammel</I> <li>Pol: <I>stary</I> <li>Ron: <I>vechi</I> <li>Rus: <I>старый</I> <li>Spa: <I>viejo</I> <li>Swe: <I>gammal</I> <li>Urd: <I>بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkComp</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A></TD>
+<TD><div class=reveal> <I>this man</I> <div class=popup> <ul> <li>API: <CODE>mkComp (mkNP this_Det man_N)</CODE> <li>Bul: <I>този мъж</I> <li>Cat: <I>aquest home</I> <li>Dan: <I>denne mand</I> <li>Dut: <I>deze man</I> <li>Eng: <I>this man</I> <li>Fin: <I>tämä mies</I> <li>Fre: <I>cet homme</I> <li>Ger: <I>dieser Mann</I> <li>Ita: <I>questo uomo</I> <li>Nor: <I>denne mannen</I> <li>Pol: <I>tym mężczyzną</I> <li>Ron: <I>acest om</I> <li>Rus: <I>этот человек</I> <li>Spa: <I>este hombre</I> <li>Swe: <I>den här mannen</I> <li>Urd: <I>یہ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkComp</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A></TD>
+<TD><div class=reveal> <I>here</I> <div class=popup> <ul> <li>API: <CODE>mkComp here_Adv</CODE> <li>Bul: <I>тук</I> <li>Cat: <I>aquí</I> <li>Dan: <I>her</I> <li>Dut: <I>hier</I> <li>Eng: <I>here</I> <li>Fin: <I>täällä</I> <li>Fre: <I>ici</I> <li>Ger: <I>hier</I> <li>Ita: <I>quà</I> <li>Nor: <I>her</I> <li>Pol: <I>tutaj</I> <li>Ron: <I>aici</I> <li>Rus: <I>здесь</I> <li>Spa: <I>aquí</I> <li>Swe: <I>här</I> <li>Urd: <I>یہاں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Conj"></A>
+<H2>Conj - conjunction</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>and_Conj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><div class=reveal> <I>here and now</I> <div class=popup> <ul> <li>API: <CODE>mkAdv and_Conj here_Adv now_Adv</CODE> <li>Bul: <I>тук и сега</I> <li>Cat: <I>aquí i ara</I> <li>Dan: <I>her og nu</I> <li>Dut: <I>hier en nu</I> <li>Eng: <I>here and now</I> <li>Fin: <I>täällä ja nyt</I> <li>Fre: <I>ici et maintenant</I> <li>Ger: <I>hier und jetzt</I> <li>Ita: <I>quà e adesso</I> <li>Nor: <I>her og nå</I> <li>Pol: <I>tutaj i teraz</I> <li>Ron: <I>aici şi acum</I> <li>Rus: <I>здесь и сейчас</I> <li>Spa: <I>aquí y ahora</I> <li>Swe: <I>här och nu</I> <li>Urd: <I>یہاں اور اب</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>both7and_DConj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><div class=reveal> <I>both here and there</I> <div class=popup> <ul> <li>API: <CODE>mkAdv both7and_DConj here_Adv there_Adv</CODE> <li>Bul: <I>и тук и там</I> <li>Cat: <I>i aquí i allà</I> <li>Dan: <I>både her og der</I> <li>Dut: <I>zowel hier als daar</I> <li>Eng: <I>both here and there</I> <li>Fin: <I>sekä täällä että siellä</I> <li>Fre: <I>et ici et là</I> <li>Ger: <I>sowohl hier als auch da</I> <li>Ita: <I>e quà e là</I> <li>Nor: <I>både her og der</I> <li>Pol: <I>zarówno tutaj jak i tam</I> <li>Ron: <I>şi aici şi acolo</I> <li>Rus: <I>как здесь , так и там</I> <li>Spa: <I>y aquí y allí</I> <li>Swe: <I>både här och där</I> <li>Urd: <I>دونوں یہاں اور وہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>either7or_DConj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><div class=reveal> <I>either here or there</I> <div class=popup> <ul> <li>API: <CODE>mkAdv either7or_DConj here_Adv there_Adv</CODE> <li>Bul: <I>или тук или там</I> <li>Cat: <I>o aquí o allà</I> <li>Dan: <I>enten her eller der</I> <li>Dut: <I>ofwel hier of daar</I> <li>Eng: <I>either here or there</I> <li>Fin: <I>joko täällä tai siellä</I> <li>Fre: <I>ou ici ou là</I> <li>Ger: <I>entweder hier oder da</I> <li>Ita: <I>o quà o là</I> <li>Nor: <I>enten her eller der</I> <li>Pol: <I>albo tutaj albo tam</I> <li>Ron: <I>sau aici sau acolo</I> <li>Rus: <I>либо здесь , либо там</I> <li>Spa: <I>o aquí o allí</I> <li>Swe: <I>antingen här eller där</I> <li>Urd: <I>كوی ایك یہاں یا وہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>if_then_Conj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><div class=reveal> <I>if here then there</I> <div class=popup> <ul> <li>API: <CODE>mkAdv if_then_Conj here_Adv there_Adv</CODE> <li>Bul: <I>*</I> <li>Cat: <I>si aquí llavors allà</I> <li>Dan: <I>*</I> <li>Dut: <I>als hier dan daar</I> <li>Eng: <I>if here then there</I> <li>Fin: <I>jos täällä niin siellä</I> <li>Fre: <I>si ici alors là</I> <li>Ger: <I>wenn hier dann da</I> <li>Ita: <I>si quà allora là</I> <li>Nor: <I>*</I> <li>Pol: <I>jeżeli tutaj , to tam</I> <li>Ron: <I>dacă aici atunci acolo</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>om här så där</I> <li>Urd: <I>اگر یہاں تو وہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>or_Conj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><div class=reveal> <I>here or there</I> <div class=popup> <ul> <li>API: <CODE>mkAdv or_Conj here_Adv there_Adv</CODE> <li>Bul: <I>тук или там</I> <li>Cat: <I>aquí o allà</I> <li>Dan: <I>her eller der</I> <li>Dut: <I>hier of daar</I> <li>Eng: <I>here or there</I> <li>Fin: <I>täällä tai siellä</I> <li>Fre: <I>ici ou là</I> <li>Ger: <I>hier oder da</I> <li>Ita: <I>quà o là</I> <li>Nor: <I>her eller der</I> <li>Pol: <I>tutaj lub tam</I> <li>Ron: <I>aici sau acolo</I> <li>Rus: <I>здесь или там</I> <li>Spa: <I>aquí o allí</I> <li>Swe: <I>här eller där</I> <li>Urd: <I>یہاں یا وہاں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Det"></A>
+<H2>Det - determiner phrase</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>aPl_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>women</I> <div class=popup> <ul> <li>API: <CODE>mkNP aPl_Det woman_N</CODE> <li>Bul: <I>жени</I> <li>Cat: <I>''</I> <li>Dan: <I>kvinder</I> <li>Dut: <I>vrouwen</I> <li>Eng: <I>women</I> <li>Fin: <I>naisia</I> <li>Fre: <I>''</I> <li>Ger: <I>Frauen</I> <li>Ita: <I>''</I> <li>Nor: <I>kvinner</I> <li>Pol: <I>kobiet</I> <li>Ron: <I>''</I> <li>Rus: <I>женщины</I> <li>Spa: <I>''</I> <li>Swe: <I>kvinnor</I> <li>Urd: <I>عورتیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>aSg_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>a woman</I> <div class=popup> <ul> <li>API: <CODE>mkNP aSg_Det woman_N</CODE> <li>Bul: <I>жена</I> <li>Cat: <I>''</I> <li>Dan: <I>en kvinde</I> <li>Dut: <I>een vrouw</I> <li>Eng: <I>a woman</I> <li>Fin: <I>nainen</I> <li>Fre: <I>''</I> <li>Ger: <I>eine Frau</I> <li>Ita: <I>''</I> <li>Nor: <I>ei kvinne</I> <li>Pol: <I>kobiety</I> <li>Ron: <I>''</I> <li>Rus: <I>женщина</I> <li>Spa: <I>''</I> <li>Swe: <I>en kvinna</I> <li>Urd: <I>عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>a_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>a house</I> <div class=popup> <ul> <li>API: <CODE>mkNP a_Det house_N</CODE> <li>Bul: <I>къща</I> <li>Cat: <I>''</I> <li>Dan: <I>et hus</I> <li>Dut: <I>een huis</I> <li>Eng: <I>a house</I> <li>Fin: <I>talo</I> <li>Fre: <I>''</I> <li>Ger: <I>ein Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>et hus</I> <li>Pol: <I>domu</I> <li>Ron: <I>''</I> <li>Rus: <I>дом</I> <li>Spa: <I>''</I> <li>Swe: <I>ett hus</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>every_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>every</I> <div class=popup> <ul> <li>API: <CODE>every_Det</CODE> <li>Bul: <I>всеки</I> <li>Cat: <I>cada</I> <li>Dan: <I>hver</I> <li>Dut: <I>elke</I> <li>Eng: <I>every</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>chaque</I> <li>Ger: <I>jeder</I> <li>Ita: <I>ogni</I> <li>Nor: <I>hver</I> <li>Pol: <I>każdy</I> <li>Ron: <I>orice</I> <li>Rus: <I>каждый</I> <li>Spa: <I>cada</I> <li>Swe: <I>varje</I> <li>Urd: <I>ہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>few_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>few</I> <div class=popup> <ul> <li>API: <CODE>few_Det</CODE> <li>Bul: <I>няколко</I> <li>Cat: <I>pocs</I> <li>Dan: <I>få</I> <li>Dut: <I>weinig</I> <li>Eng: <I>few</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>peu pre {"de"; "d'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>wenige</I> <li>Ita: <I>pochi</I> <li>Nor: <I>få</I> <li>Pol: <I>parę</I> <li>Ron: <I>câţiva</I> <li>Rus: <I>немного</I> <li>Spa: <I>pocos</I> <li>Swe: <I>få</I> <li>Urd: <I>چند</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>many_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>many houses</I> <div class=popup> <ul> <li>API: <CODE>mkNP many_Det house_N</CODE> <li>Bul: <I>много къщи</I> <li>Cat: <I>''</I> <li>Dan: <I>mange huse</I> <li>Dut: <I>veel huizen</I> <li>Eng: <I>many houses</I> <li>Fin: <I>moni talo</I> <li>Fre: <I>''</I> <li>Ger: <I>viele Häuser</I> <li>Ita: <I>''</I> <li>Nor: <I>mange hus</I> <li>Pol: <I>wielu domów</I> <li>Ron: <I>''</I> <li>Rus: <I>много дома</I> <li>Spa: <I>''</I> <li>Swe: <I>många hus</I> <li>Urd: <I>بہت زیادہ گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>this</I> <div class=popup> <ul> <li>API: <CODE>mkDet this_Quant</CODE> <li>Bul: <I>този</I> <li>Cat: <I>aquest</I> <li>Dan: <I>denne</I> <li>Dut: <I>deze</I> <li>Eng: <I>this</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>pre {"ce"; "cet" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>dieser</I> <li>Ita: <I>questo</I> <li>Nor: <I>denne</I> <li>Pol: <I>ten</I> <li>Ron: <I>acest</I> <li>Rus: <I>этот</I> <li>Spa: <I>este</I> <li>Swe: <I>den här</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>these five</I> <div class=popup> <ul> <li>API: <CODE>mkDet this_Quant (mkCard (mkNumeral n5_Unit))</CODE> <li>Bul: <I>тези петима</I> <li>Cat: <I>aquests cinc</I> <li>Dan: <I>disse fem</I> <li>Dut: <I>deze vijf</I> <li>Eng: <I>these five</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>ces cinq</I> <li>Ger: <I>diese fünf</I> <li>Ita: <I>questi cinque</I> <li>Nor: <I>disse fem</I> <li>Pol: <I>tych pięć</I> <li>Ron: <I>aceşti cinci</I> <li>Rus: <I>этот пять</I> <li>Spa: <I>estos cinco</I> <li>Swe: <I>de här fem</I> <li>Urd: <I>یہ پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>the fifth</I> <div class=popup> <ul> <li>API: <CODE>mkDet the_Quant (mkOrd (mkNumeral n5_Unit))</CODE> <li>Bul: <I>петият</I> <li>Cat: <I>el quint</I> <li>Dan: <I>den femte</I> <li>Dut: <I>de vijfde</I> <li>Eng: <I>the fifth</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>le cinquième</I> <li>Ger: <I>der fünfte</I> <li>Ita: <I>il quinto</I> <li>Nor: <I>den femte</I> <li>Pol: <I>piąty</I> <li>Ron: <I>al cincilea</I> <li>Rus: <I>// <li>Spa: //el quinto</I> <li>Swe: <I>den femte</I> <li>Urd: <I>پانچ واں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>the five best</I> <div class=popup> <ul> <li>API: <CODE>mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)</CODE> <li>Bul: <I>петимата най - добри</I> <li>Cat: <I>els cinc millors</I> <li>Dan: <I>de fem bedste</I> <li>Dut: <I>de vijf beste</I> <li>Eng: <I>the five best</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>les cinq meilleurs</I> <li>Ger: <I>die fünf besten</I> <li>Ita: <I>i cinque migliori</I> <li>Nor: <I>de fem beste</I> <li>Pol: <I>pięć najlepszych</I> <li>Ron: <I>cei mai buni cinci</I> <li>Rus: <I>пять хороший</I> <li>Spa: <I>los cinco mejores</I> <li>Swe: <I>de fem bästa</I> <li>Urd: <I>پانچ سب سے اچھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>these</I> <div class=popup> <ul> <li>API: <CODE>mkDet this_Quant pluralNum</CODE> <li>Bul: <I>тези</I> <li>Cat: <I>aquests</I> <li>Dan: <I>disse</I> <li>Dut: <I>deze</I> <li>Eng: <I>these</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>ces</I> <li>Ger: <I>diese</I> <li>Ita: <I>questi</I> <li>Nor: <I>disse</I> <li>Pol: <I>te</I> <li>Ron: <I>aceşti</I> <li>Rus: <I>этот</I> <li>Spa: <I>estos</I> <li>Swe: <I>de här</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>five</I> <div class=popup> <ul> <li>API: <CODE>mkDet (mkCard (mkNumeral n5_Unit))</CODE> <li>Bul: <I>петима</I> <li>Cat: <I>cinc</I> <li>Dan: <I>fem</I> <li>Dut: <I>vijf</I> <li>Eng: <I>five</I> <li>Fin: <I>Prelude.False</I> <li>Fre: <I>cinq</I> <li>Ger: <I>fünf</I> <li>Ita: <I>cinque</I> <li>Nor: <I>fem</I> <li>Pol: <I>pięć</I> <li>Ron: <I>cinci</I> <li>Rus: <I>пять</I> <li>Spa: <I>cinco</I> <li>Swe: <I>fem</I> <li>Urd: <I>پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><I>51</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><I>five</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><I>my</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>my five</I> <div class=popup> <ul> <li>API: <CODE>mkDet i_Pron (mkNum (mkNumeral n5_Unit))</CODE> <li>Bul: <I>моите петима</I> <li>Cat: <I>mes cinc</I> <li>Dan: <I>mine fem</I> <li>Dut: <I>mijn vijf</I> <li>Eng: <I>my five</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>mes cinq</I> <li>Ger: <I>meine fünf</I> <li>Ita: <I>i miei cinque</I> <li>Nor: <I>mine fem</I> <li>Pol: <I>moich pięć</I> <li>Ron: <I>cei cinci</I> <li>Rus: <I>мой пять</I> <li>Spa: <I>mis cinco</I> <li>Swe: <I>mina fem</I> <li>Urd: <I>میرا پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>much_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>much</I> <div class=popup> <ul> <li>API: <CODE>much_Det</CODE> <li>Bul: <I>много</I> <li>Cat: <I>molt</I> <li>Dan: <I>meget</I> <li>Dut: <I>veel</I> <li>Eng: <I>much</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>beaucoup pre {"de"; "d'" / strs {"a"; "à"; "â"; "e"; "é"; "è";</I> <li>Ger: <I>vieler</I> <li>Ita: <I>molto</I> <li>Nor: <I>mye</I> <li>Pol: <I>dużo</I> <li>Ron: <I>// <li>Rus: //много</I> <li>Spa: <I>mucho</I> <li>Swe: <I>mycket</I> <li>Urd: <I>بہت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>somePl_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>some</I> <div class=popup> <ul> <li>API: <CODE>somePl_Det</CODE> <li>Bul: <I>някои</I> <li>Cat: <I>alguns</I> <li>Dan: <I>nogle</I> <li>Dut: <I>sommige</I> <li>Eng: <I>some</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>quelques</I> <li>Ger: <I>einige</I> <li>Ita: <I>qualche</I> <li>Nor: <I>noen</I> <li>Pol: <I>pewne</I> <li>Ron: <I>unii</I> <li>Rus: <I>некоторый</I> <li>Spa: <I>algunos</I> <li>Swe: <I>några</I> <li>Urd: <I>كچھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>someSg_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>some</I> <div class=popup> <ul> <li>API: <CODE>someSg_Det</CODE> <li>Bul: <I>някой</I> <li>Cat: <I>algun</I> <li>Dan: <I>nogen</I> <li>Dut: <I>sommige</I> <li>Eng: <I>some</I> <li>Fin: <I>Prelude.True</I> <li>Fre: <I>pre {"quelque"; "quelqu'" / strs {"a"; "à"; "â"; "e"; "é"; "è";</I> <li>Ger: <I>ein</I> <li>Ita: <I>qualche</I> <li>Nor: <I>noen</I> <li>Pol: <I>pewien</I> <li>Ron: <I>nişte</I> <li>Rus: <I>некоторый</I> <li>Spa: <I>algun</I> <li>Swe: <I>någon</I> <li>Urd: <I>كچھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>that_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>that woman</I> <div class=popup> <ul> <li>API: <CODE>mkNP that_Det woman_N</CODE> <li>Bul: <I>онази жена</I> <li>Cat: <I>''</I> <li>Dan: <I>den der kvinde</I> <li>Dut: <I>die vrouw</I> <li>Eng: <I>that woman</I> <li>Fin: <I>tuo nainen</I> <li>Fre: <I>''</I> <li>Ger: <I>jene Frau</I> <li>Ita: <I>''</I> <li>Nor: <I>den der kvinna</I> <li>Pol: <I>tamtej kobiety</I> <li>Ron: <I>''</I> <li>Rus: <I>та женщина</I> <li>Spa: <I>''</I> <li>Swe: <I>den där kvinnan</I> <li>Urd: <I>وہ عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>thePl_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>the houses</I> <div class=popup> <ul> <li>API: <CODE>mkNP thePl_Det house_N</CODE> <li>Bul: <I>къщите</I> <li>Cat: <I>''</I> <li>Dan: <I>husene</I> <li>Dut: <I>de huizen</I> <li>Eng: <I>the houses</I> <li>Fin: <I>talot</I> <li>Fre: <I>''</I> <li>Ger: <I>die Häuser</I> <li>Ita: <I>''</I> <li>Nor: <I>husa</I> <li>Pol: <I>domów</I> <li>Ron: <I>''</I> <li>Rus: <I>домы</I> <li>Spa: <I>''</I> <li>Swe: <I>husen</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>theSg_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>the house</I> <div class=popup> <ul> <li>API: <CODE>mkNP theSg_Det house_N</CODE> <li>Bul: <I>къщата</I> <li>Cat: <I>''</I> <li>Dan: <I>huset</I> <li>Dut: <I>het huis</I> <li>Eng: <I>the house</I> <li>Fin: <I>talo</I> <li>Fre: <I>''</I> <li>Ger: <I>das Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>huset</I> <li>Pol: <I>domu</I> <li>Ron: <I>''</I> <li>Rus: <I>дом</I> <li>Spa: <I>''</I> <li>Swe: <I>huset</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>the_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>the house</I> <div class=popup> <ul> <li>API: <CODE>mkNP the_Det house_N</CODE> <li>Bul: <I>къщата</I> <li>Cat: <I>''</I> <li>Dan: <I>huset</I> <li>Dut: <I>het huis</I> <li>Eng: <I>the house</I> <li>Fin: <I>talo</I> <li>Fre: <I>''</I> <li>Ger: <I>das Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>huset</I> <li>Pol: <I>domu</I> <li>Ron: <I>''</I> <li>Rus: <I>дом</I> <li>Spa: <I>''</I> <li>Swe: <I>huset</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>these_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>these women</I> <div class=popup> <ul> <li>API: <CODE>mkNP these_Det woman_N</CODE> <li>Bul: <I>тези жени</I> <li>Cat: <I>''</I> <li>Dan: <I>disse kvinder</I> <li>Dut: <I>deze vrouwen</I> <li>Eng: <I>these women</I> <li>Fin: <I>nämä naiset</I> <li>Fre: <I>''</I> <li>Ger: <I>diese Frauen</I> <li>Ita: <I>''</I> <li>Nor: <I>disse kvinnene</I> <li>Pol: <I>tych kobiet</I> <li>Ron: <I>''</I> <li>Rus: <I>эти женщины</I> <li>Spa: <I>''</I> <li>Swe: <I>de här kvinnorna</I> <li>Urd: <I>یہ عورتیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>this_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>this woman</I> <div class=popup> <ul> <li>API: <CODE>mkNP this_Det woman_N</CODE> <li>Bul: <I>тази жена</I> <li>Cat: <I>''</I> <li>Dan: <I>denne kvinde</I> <li>Dut: <I>deze vrouw</I> <li>Eng: <I>this woman</I> <li>Fin: <I>tämä nainen</I> <li>Fre: <I>''</I> <li>Ger: <I>diese Frau</I> <li>Ita: <I>''</I> <li>Nor: <I>denne kvinna</I> <li>Pol: <I>tej kobiety</I> <li>Ron: <I>''</I> <li>Rus: <I>эта женщина</I> <li>Spa: <I>''</I> <li>Swe: <I>den här kvinnan</I> <li>Urd: <I>یہ عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>those_Det</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><div class=reveal> <I>those women</I> <div class=popup> <ul> <li>API: <CODE>mkNP those_Det woman_N</CODE> <li>Bul: <I>онези жени</I> <li>Cat: <I>''</I> <li>Dan: <I>de der kvinder</I> <li>Dut: <I>die vrouwen</I> <li>Eng: <I>those women</I> <li>Fin: <I>nuo naiset</I> <li>Fre: <I>''</I> <li>Ger: <I>jene Frauen</I> <li>Ita: <I>''</I> <li>Nor: <I>de der kvinnene</I> <li>Pol: <I>tamtych kobiet</I> <li>Ron: <I>''</I> <li>Rus: <I>те женщины</I> <li>Spa: <I>''</I> <li>Swe: <I>de där kvinnorna</I> <li>Urd: <I>وہ عورتیں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Dig"></A>
+<H2>Dig</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>n0_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>0</I></TD>
+</TR>
+<TR>
+<TD><CODE>n1_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>1</I></TD>
+</TR>
+<TR>
+<TD><CODE>n2_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>2</I></TD>
+</TR>
+<TR>
+<TD><CODE>n3_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>3</I></TD>
+</TR>
+<TR>
+<TD><CODE>n4_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>4</I></TD>
+</TR>
+<TR>
+<TD><CODE>n5_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>5</I></TD>
+</TR>
+<TR>
+<TD><CODE>n6_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>6</I></TD>
+</TR>
+<TR>
+<TD><CODE>n7_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>7</I></TD>
+</TR>
+<TR>
+<TD><CODE>n8_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>8</I></TD>
+</TR>
+<TR>
+<TD><CODE>n9_Dig</CODE></TD>
+<TD><A HREF="#Dig">Dig</A></TD>
+<TD><I>9</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="Digits"></A>
+<H2>Digits - cardinal or ordinal in digits</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkDigits</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
+<TD><I>35 (from string "35"; ; range 1-9999999)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkDigits</CODE></TD>
+<TD><A HREF="#Dig">Dig</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
+<TD><div class=reveal> <I>4</I> <div class=popup> <ul> <li>API: <CODE>mkDigits n4_Dig</CODE> <li>Bul: <I>4</I> <li>Cat: <I>4</I> <li>Dan: <I>4</I> <li>Dut: <I>4</I> <li>Eng: <I>4</I> <li>Fin: <I>4</I> <li>Fre: <I>4</I> <li>Ger: <I>4</I> <li>Ita: <I>4</I> <li>Nor: <I>4</I> <li>Pol: <I>4</I> <li>Ron: <I>4</I> <li>Rus: <I>4</I> <li>Spa: <I>4</I> <li>Swe: <I>4</I> <li>Urd: <I>۴</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkDigits</CODE></TD>
+<TD><A HREF="#Dig">Dig</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A></TD>
+<TD><div class=reveal> <I>1 , 2 3 3 , 4 8 6</I> <div class=popup> <ul> <li>API: <CODE>mkDigits n1_Dig (mkDigits n2_Dig (mkDigits n3_Dig (mkDigits n3_Dig (mkDigits n4_Dig (mkDigits n8_Dig (mkDigits n6_Dig))))))</CODE> <li>Bul: <I>1 , 2 3 3 , 4 8 6</I> <li>Cat: <I>1 2 3 3 4 8 6</I> <li>Dan: <I>1 2 3 3 4 8 6</I> <li>Dut: <I>1 2 3 3 4 8 6</I> <li>Eng: <I>1 , 2 3 3 , 4 8 6</I> <li>Fin: <I>1 2 3 3 4 8 6</I> <li>Fre: <I>1 2 3 3 4 8 6</I> <li>Ger: <I>1 2 3 3 4 8 6</I> <li>Ita: <I>1 2 3 3 4 8 6</I> <li>Nor: <I>1 2 3 3 4 8 6</I> <li>Pol: <I>1 2 3 3 4 8 6</I> <li>Ron: <I>1 2 3 3 4 8 6</I> <li>Rus: <I>1 2 3 3 4 8 6</I> <li>Spa: <I>1 2 3 3 4 8 6</I> <li>Swe: <I>1 2 3 3 4 8 6</I> <li>Urd: <I>۶۸۴۳۳۲۱</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="IAdv"></A>
+<H2>IAdv - interrogative adverb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>how8much_IAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>how much</I> <div class=popup> <ul> <li>API: <CODE>mkUtt how8much_IAdv</CODE> <li>Bul: <I>колко</I> <li>Cat: <I>quant</I> <li>Dan: <I>*</I> <li>Dut: <I>hoeveel</I> <li>Eng: <I>how much</I> <li>Fin: <I>kuinka paljon</I> <li>Fre: <I>combien</I> <li>Ger: <I>wieviel</I> <li>Ita: <I>quanto</I> <li>Nor: <I>*</I> <li>Pol: <I>*</I> <li>Ron: <I>cât</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>hur mycket</I> <li>Urd: <I>كتنا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>how_IAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>how</I> <div class=popup> <ul> <li>API: <CODE>mkUtt how_IAdv</CODE> <li>Bul: <I>как</I> <li>Cat: <I>com</I> <li>Dan: <I>hvor</I> <li>Dut: <I>hoe</I> <li>Eng: <I>how</I> <li>Fin: <I>miten</I> <li>Fre: <I>comment</I> <li>Ger: <I>wie</I> <li>Ita: <I>come</I> <li>Nor: <I>hvor</I> <li>Pol: <I>jak</I> <li>Ron: <I>cum</I> <li>Rus: <I>как</I> <li>Spa: <I>como</I> <li>Swe: <I>hur</I> <li>Urd: <I>كیسے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIAdv</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>in which city</I> <div class=popup> <ul> <li>API: <CODE>mkIAdv in_Prep (mkIP which_IQuant city_N)</CODE> <li>Bul: <I>в кой град</I> <li>Cat: <I>en quin ciutat</I> <li>Dan: <I>i hvilken by</I> <li>Dut: <I>in welke stad</I> <li>Eng: <I>in which city</I> <li>Fin: <I>missä kaupungissa</I> <li>Fre: <I>dans quelle ville</I> <li>Ger: <I>in welcher Stadt</I> <li>Ita: <I>in quale città</I> <li>Nor: <I>i hvilken by</I> <li>Pol: <I>w którym mieście</I> <li>Ron: <I>în care oraş</I> <li>Rus: <I>в который город</I> <li>Spa: <I>en qué ciudad</I> <li>Swe: <I>i vilken stad</I> <li>Urd: <I>كون سے شہر میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>where in Paris</I> <div class=popup> <ul> <li>API: <CODE>mkIAdv where_IAdv (mkAdv in_Prep (mkNP paris_PN))</CODE> <li>Bul: <I>къде в Париж</I> <li>Cat: <I>on en Paris</I> <li>Dan: <I>hvor i Paris</I> <li>Dut: <I>waar in Parijs</I> <li>Eng: <I>where in Paris</I> <li>Fin: <I>missä Pariisissa</I> <li>Fre: <I>oÃ¹ dans Paris</I> <li>Ger: <I>wo in Paris</I> <li>Ita: <I>dove in Parigi</I> <li>Nor: <I>hvor i Paris</I> <li>Pol: <I>gdzie w Paryżu</I> <li>Ron: <I>unde în Paris</I> <li>Rus: <I>где в Париже</I> <li>Spa: <I>donde en Paris</I> <li>Swe: <I>var i Paris</I> <li>Urd: <I>كہاں پیرس میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>when_IAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>when</I> <div class=popup> <ul> <li>API: <CODE>mkUtt when_IAdv</CODE> <li>Bul: <I>кога</I> <li>Cat: <I>quan</I> <li>Dan: <I>hvornår</I> <li>Dut: <I>wanneer</I> <li>Eng: <I>when</I> <li>Fin: <I>milloin</I> <li>Fre: <I>quand</I> <li>Ger: <I>wann</I> <li>Ita: <I>quando</I> <li>Nor: <I>når</I> <li>Pol: <I>kiedy</I> <li>Ron: <I>când</I> <li>Rus: <I>когда</I> <li>Spa: <I>cuando</I> <li>Swe: <I>när</I> <li>Urd: <I>كب</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>where_IAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>where</I> <div class=popup> <ul> <li>API: <CODE>mkUtt where_IAdv</CODE> <li>Bul: <I>къде</I> <li>Cat: <I>on</I> <li>Dan: <I>hvor</I> <li>Dut: <I>waar</I> <li>Eng: <I>where</I> <li>Fin: <I>missä</I> <li>Fre: <I>oÃ¹</I> <li>Ger: <I>wo</I> <li>Ita: <I>dove</I> <li>Nor: <I>hvor</I> <li>Pol: <I>gdzie</I> <li>Ron: <I>unde</I> <li>Rus: <I>где</I> <li>Spa: <I>donde</I> <li>Swe: <I>var</I> <li>Urd: <I>كہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>why_IAdv</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A></TD>
+<TD><div class=reveal> <I>why</I> <div class=popup> <ul> <li>API: <CODE>mkUtt why_IAdv</CODE> <li>Bul: <I>защо</I> <li>Cat: <I>per quË</I> <li>Dan: <I>hvorfor</I> <li>Dut: <I>waarom</I> <li>Eng: <I>why</I> <li>Fin: <I>miksi</I> <li>Fre: <I>pourquoi</I> <li>Ger: <I>warum</I> <li>Ita: <I>perché</I> <li>Nor: <I>hvorfor</I> <li>Pol: <I>dlaczego</I> <li>Ron: <I>de ce</I> <li>Rus: <I>почему</I> <li>Spa: <I>porqué</I> <li>Swe: <I>varför</I> <li>Urd: <I>كیوں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="IComp"></A>
+<H2>IComp - interrogative complement of copula</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkIComp</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A></TD>
+<TD><I>where (is it)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkIComp</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A></TD>
+<TD><I>who (is it)</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="IDet"></A>
+<H2>IDet - interrogative determiner</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>how8many_IDet</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD><div class=reveal> <I>how many houses</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkIP how8many_IDet house_N)</CODE> <li>Bul: <I>колко къщи</I> <li>Cat: <I>quantes cases</I> <li>Dan: <I>hur mange huse</I> <li>Dut: <I>hoeveel huizen</I> <li>Eng: <I>how many houses</I> <li>Fin: <I>kuinka moni talo</I> <li>Fre: <I>combien pre {"de"; "d'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>wieviele Häuser</I> <li>Ita: <I>quante case</I> <li>Nor: <I>hur mange hus</I> <li>Pol: <I>ile domu</I> <li>Ron: <I>câte case</I> <li>Rus: <I>скольки домов</I> <li>Spa: <I>cuantas casas</I> <li>Swe: <I>hur många hus</I> <li>Urd: <I>كتنے گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIDet</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD><div class=reveal> <I>which houses</I> <div class=popup> <ul> <li>API: <CODE>mkIP (mkIDet which_IQuant pluralNum) house_N</CODE> <li>Bul: <I>кои къщи</I> <li>Cat: <I>quins cases</I> <li>Dan: <I>hvilke huse</I> <li>Dut: <I>welke huizen</I> <li>Eng: <I>which houses</I> <li>Fin: <I>mitkä talot</I> <li>Fre: <I>quelles maisons</I> <li>Ger: <I>welche Häuser</I> <li>Ita: <I>quali case</I> <li>Nor: <I>hvilke hus</I> <li>Pol: <I>których domów</I> <li>Ron: <I>care case</I> <li>Rus: <I>которые домы</I> <li>Spa: <I>qué casas</I> <li>Swe: <I>vilka hus</I> <li>Urd: <I>كون سے گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIDet</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD><div class=reveal> <I>which house</I> <div class=popup> <ul> <li>API: <CODE>mkIP (mkIDet which_IQuant) house_N</CODE> <li>Bul: <I>коя къща</I> <li>Cat: <I>quin casa</I> <li>Dan: <I>hvilket hus</I> <li>Dut: <I>welk huis</I> <li>Eng: <I>which house</I> <li>Fin: <I>mikä talo</I> <li>Fre: <I>quelle maison</I> <li>Ger: <I>welches Haus</I> <li>Ita: <I>quale casa</I> <li>Nor: <I>hvilket hus</I> <li>Pol: <I>którego domu</I> <li>Ron: <I>care casă</I> <li>Rus: <I>который дом</I> <li>Spa: <I>qué casa</I> <li>Swe: <I>vilket hus</I> <li>Urd: <I>كون سا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>whichPl_IDet</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD><div class=reveal> <I>which houses</I> <div class=popup> <ul> <li>API: <CODE>mkIP whichPl_IDet house_N</CODE> <li>Bul: <I>кои къщи</I> <li>Cat: <I>quins cases</I> <li>Dan: <I>hvilke huse</I> <li>Dut: <I>welke huizen</I> <li>Eng: <I>which houses</I> <li>Fin: <I>mitkä talot</I> <li>Fre: <I>quelles maisons</I> <li>Ger: <I>welche Häuser</I> <li>Ita: <I>quali case</I> <li>Nor: <I>hvilke hus</I> <li>Pol: <I>których domów</I> <li>Ron: <I>care case</I> <li>Rus: <I>которые домы</I> <li>Spa: <I>qué casas</I> <li>Swe: <I>vilka hus</I> <li>Urd: <I>كون سے گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>which_IDet</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A></TD>
+<TD><div class=reveal> <I>which house</I> <div class=popup> <ul> <li>API: <CODE>mkIP which_IDet house_N</CODE> <li>Bul: <I>коя къща</I> <li>Cat: <I>quin casa</I> <li>Dan: <I>hvilket hus</I> <li>Dut: <I>welk huis</I> <li>Eng: <I>which house</I> <li>Fin: <I>mikä talo</I> <li>Fre: <I>quelle maison</I> <li>Ger: <I>welches Haus</I> <li>Ita: <I>quale casa</I> <li>Nor: <I>hvilket hus</I> <li>Pol: <I>którego domu</I> <li>Ron: <I>care casă</I> <li>Rus: <I>который дом</I> <li>Spa: <I>qué casa</I> <li>Swe: <I>vilket hus</I> <li>Urd: <I>كون سا گھر</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="IP"></A>
+<H2>IP - interrogative pronoun</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which five big cities</I> <div class=popup> <ul> <li>API: <CODE>mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) (mkCN big_A city_N)</CODE> <li>Bul: <I>кои пет големи града</I> <li>Cat: <I>quins cinc ciutats groses</I> <li>Dan: <I>hvilke fem store byer</I> <li>Dut: <I>welke vijf grote stadden</I> <li>Eng: <I>which five big cities</I> <li>Fin: <I>mitkä viisi suurta kaupunkia</I> <li>Fre: <I>quelles cinq grandes villes</I> <li>Ger: <I>welche fünf großen Städte</I> <li>Ita: <I>quali cinque grandi città</I> <li>Nor: <I>hvilke fem store byer</I> <li>Pol: <I>których pięciu dużych miast</I> <li>Ron: <I>care cinci oraşe mari</I> <li>Rus: <I>которые пять большие городы</I> <li>Spa: <I>qué cinco grandes ciudades</I> <li>Swe: <I>vilka fem stora städer</I> <li>Urd: <I>كون سے پانچ بڑے شہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which five cities</I> <div class=popup> <ul> <li>API: <CODE>mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) city_N</CODE> <li>Bul: <I>кои пет града</I> <li>Cat: <I>quins cinc ciutats</I> <li>Dan: <I>hvilke fem byer</I> <li>Dut: <I>welke vijf stadden</I> <li>Eng: <I>which five cities</I> <li>Fin: <I>mitkä viisi kaupunkia</I> <li>Fre: <I>quelles cinq villes</I> <li>Ger: <I>welche fünf Städte</I> <li>Ita: <I>quali cinque città</I> <li>Nor: <I>hvilke fem byer</I> <li>Pol: <I>których pięciu miast</I> <li>Ron: <I>care cinci oraşe</I> <li>Rus: <I>которые пять городы</I> <li>Spa: <I>qué cinco ciudades</I> <li>Swe: <I>vilka fem städer</I> <li>Urd: <I>كون سے پانچ شہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which five</I> <div class=popup> <ul> <li>API: <CODE>mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>кои пет</I> <li>Cat: <I>quins cinc</I> <li>Dan: <I>hvilke fem</I> <li>Dut: <I>welke vijf</I> <li>Eng: <I>which five</I> <li>Fin: <I>mitkä viisi</I> <li>Fre: <I>quels cinq</I> <li>Ger: <I>welche fünf</I> <li>Ita: <I>quali cinque</I> <li>Nor: <I>hvilke fem</I> <li>Pol: <I>których pięciu</I> <li>Ron: <I>care cinci</I> <li>Rus: <I>которые пять</I> <li>Spa: <I>qué cinco</I> <li>Swe: <I>vilka fem</I> <li>Urd: <I>كون سے پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which big city</I> <div class=popup> <ul> <li>API: <CODE>mkIP which_IQuant (mkCN big_A city_N)</CODE> <li>Bul: <I>кой голям град</I> <li>Cat: <I>quin ciutat grosa</I> <li>Dan: <I>hvilken stor by</I> <li>Dut: <I>welke grote stad</I> <li>Eng: <I>which big city</I> <li>Fin: <I>mikä suuri kaupunki</I> <li>Fre: <I>quelle grande ville</I> <li>Ger: <I>welche große Stadt</I> <li>Ita: <I>quale grande città</I> <li>Nor: <I>hvilken stor by</I> <li>Pol: <I>którego dużego miasta</I> <li>Ron: <I>care oraş mare</I> <li>Rus: <I>который большой город</I> <li>Spa: <I>qué grande ciudad</I> <li>Swe: <I>vilken stor stad</I> <li>Urd: <I>كون سا بڑا شہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which five big cities</I> <div class=popup> <ul> <li>API: <CODE>mkIP which_IQuant (mkNum (mkNumeral n5_Unit)) (mkCN big_A city_N)</CODE> <li>Bul: <I>кои пет големи града</I> <li>Cat: <I>quins cinc ciutats groses</I> <li>Dan: <I>hvilke fem store byer</I> <li>Dut: <I>welke vijf grote stadden</I> <li>Eng: <I>which five big cities</I> <li>Fin: <I>mitkä viisi suurta kaupunkia</I> <li>Fre: <I>quelles cinq grandes villes</I> <li>Ger: <I>welche fünf großen Städte</I> <li>Ita: <I>quali cinque grandi città</I> <li>Nor: <I>hvilke fem store byer</I> <li>Pol: <I>których pięciu dużych miast</I> <li>Ron: <I>care cinci oraşe mari</I> <li>Rus: <I>которые пять большие городы</I> <li>Spa: <I>qué cinco grandes ciudades</I> <li>Swe: <I>vilka fem stora städer</I> <li>Urd: <I>كون سے پانچ بڑے شہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>which city</I> <div class=popup> <ul> <li>API: <CODE>mkIP which_IQuant city_N</CODE> <li>Bul: <I>кой град</I> <li>Cat: <I>quin ciutat</I> <li>Dan: <I>hvilken by</I> <li>Dut: <I>welke stad</I> <li>Eng: <I>which city</I> <li>Fin: <I>mikä kaupunki</I> <li>Fre: <I>quelle ville</I> <li>Ger: <I>welche Stadt</I> <li>Ita: <I>quale città</I> <li>Nor: <I>hvilken by</I> <li>Pol: <I>którego miasta</I> <li>Ron: <I>care oraş</I> <li>Rus: <I>который город</I> <li>Spa: <I>qué ciudad</I> <li>Swe: <I>vilken stad</I> <li>Urd: <I>كون سا شہر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>who in Paris</I> <div class=popup> <ul> <li>API: <CODE>mkIP who_IP (mkAdv in_Prep (mkNP paris_PN))</CODE> <li>Bul: <I>кой в Париж</I> <li>Cat: <I>qui en Paris</I> <li>Dan: <I>hvem i Paris</I> <li>Dut: <I>wie in Parijs</I> <li>Eng: <I>who in Paris</I> <li>Fin: <I>kuka Pariisissa</I> <li>Fre: <I>qui dans Paris</I> <li>Ger: <I>wer in Paris</I> <li>Ita: <I>chi in Parigi</I> <li>Nor: <I>hvem i Paris</I> <li>Pol: <I>kogo w Paryżu</I> <li>Ron: <I>cine în Paris</I> <li>Rus: <I>кто в Париже</I> <li>Spa: <I>quién en Paris</I> <li>Swe: <I>vem i Paris</I> <li>Urd: <I>پیرس میں كون</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>whatPl_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>what</I> <div class=popup> <ul> <li>API: <CODE>whatPl_IP</CODE> <li>Bul: <I>какви</I> <li>Cat: <I>què</I> <li>Dan: <I>hvilke</I> <li>Dut: <I>wat</I> <li>Eng: <I>what</I> <li>Fin: <I>mitkä</I> <li>Fre: <I>pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>was</I> <li>Ita: <I>che</I> <li>Nor: <I>hva</I> <li>Pol: <I>czego</I> <li>Ron: <I>ce</I> <li>Rus: <I>что</I> <li>Spa: <I>qué</I> <li>Swe: <I>vad</I> <li>Urd: <I>كیا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>whatSg_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>what</I> <div class=popup> <ul> <li>API: <CODE>whatSg_IP</CODE> <li>Bul: <I>какъв</I> <li>Cat: <I>què</I> <li>Dan: <I>hvad</I> <li>Dut: <I>wat</I> <li>Eng: <I>what</I> <li>Fin: <I>mikä</I> <li>Fre: <I>pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>was</I> <li>Ita: <I>che</I> <li>Nor: <I>hva</I> <li>Pol: <I>czego</I> <li>Ron: <I>ce</I> <li>Rus: <I>что</I> <li>Spa: <I>qué</I> <li>Swe: <I>vad</I> <li>Urd: <I>كیا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>what_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>what</I> <div class=popup> <ul> <li>API: <CODE>mkUtt what_IP</CODE> <li>Bul: <I>какъв</I> <li>Cat: <I>què</I> <li>Dan: <I>hvad</I> <li>Dut: <I>wat</I> <li>Eng: <I>what</I> <li>Fin: <I>mikä</I> <li>Fre: <I>pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>was</I> <li>Ita: <I>che</I> <li>Nor: <I>hva</I> <li>Pol: <I>co</I> <li>Ron: <I>ce</I> <li>Rus: <I>что</I> <li>Spa: <I>qué</I> <li>Swe: <I>vad</I> <li>Urd: <I>كیا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>whoPl_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>who</I> <div class=popup> <ul> <li>API: <CODE>whoPl_IP</CODE> <li>Bul: <I>кои</I> <li>Cat: <I>qui</I> <li>Dan: <I>hvilke</I> <li>Dut: <I>wie</I> <li>Eng: <I>who</I> <li>Fin: <I>ketkä</I> <li>Fre: <I>qui</I> <li>Ger: <I>wer</I> <li>Ita: <I>chi</I> <li>Nor: <I>hvilke</I> <li>Pol: <I>kogo</I> <li>Ron: <I>cine</I> <li>Rus: <I>кто</I> <li>Spa: <I>quién</I> <li>Swe: <I>vilka</I> <li>Urd: <I>كون</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>whoSg_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>who</I> <div class=popup> <ul> <li>API: <CODE>whoSg_IP</CODE> <li>Bul: <I>кой</I> <li>Cat: <I>qui</I> <li>Dan: <I>hvem</I> <li>Dut: <I>wie</I> <li>Eng: <I>who</I> <li>Fin: <I>kuka</I> <li>Fre: <I>qui</I> <li>Ger: <I>wer</I> <li>Ita: <I>chi</I> <li>Nor: <I>hvem</I> <li>Pol: <I>kogo</I> <li>Ron: <I>cine</I> <li>Rus: <I>кто</I> <li>Spa: <I>quién</I> <li>Swe: <I>vem</I> <li>Urd: <I>كون</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>who_IP</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><div class=reveal> <I>who</I> <div class=popup> <ul> <li>API: <CODE>mkUtt who_IP</CODE> <li>Bul: <I>кой</I> <li>Cat: <I>qui</I> <li>Dan: <I>hvem</I> <li>Dut: <I>wie</I> <li>Eng: <I>who</I> <li>Fin: <I>kuka</I> <li>Fre: <I>qui</I> <li>Ger: <I>wer</I> <li>Ita: <I>chi</I> <li>Nor: <I>hvem</I> <li>Pol: <I>kto</I> <li>Ron: <I>cine</I> <li>Rus: <I>кто</I> <li>Spa: <I>quién</I> <li>Swe: <I>vem</I> <li>Urd: <I>كون</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="IQuant"></A>
+<H2>IQuant</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>which_IQuant</CODE></TD>
+<TD><A HREF="#IQuant">IQuant</A></TD>
+<TD><div class=reveal> <I>which house</I> <div class=popup> <ul> <li>API: <CODE>mkIP which_IQuant house_N</CODE> <li>Bul: <I>коя къща</I> <li>Cat: <I>quin casa</I> <li>Dan: <I>hvilket hus</I> <li>Dut: <I>welk huis</I> <li>Eng: <I>which house</I> <li>Fin: <I>mikä talo</I> <li>Fre: <I>quelle maison</I> <li>Ger: <I>welches Haus</I> <li>Ita: <I>quale casa</I> <li>Nor: <I>hvilket hus</I> <li>Pol: <I>którego domu</I> <li>Ron: <I>care casă</I> <li>Rus: <I>который дом</I> <li>Spa: <I>qué casa</I> <li>Swe: <I>vilket hus</I> <li>Urd: <I>كون سا گھر</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Imp"></A>
+<H2>Imp - imperative</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkImp</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
+<TD><div class=reveal> <I>come to my house</I> <div class=popup> <ul> <li>API: <CODE>mkImp (mkVP (mkVP come_V) (mkAdv to_Prep (mkNP i_Pron house_N)))</CODE> <li>Bul: <I>ела до моята къща</I> <li>Cat: <I>venir a la meva casa</I> <li>Dan: <I>kom til mit hus</I> <li>Dut: <I>komt u naar mijn huis</I> <li>Eng: <I>come to my house</I> <li>Fin: <I>tule minun talooni</I> <li>Fre: <I>venez à pre {"ma"; "mon" / strs {"a"; "à"; "â"; "e"; "é"; "è";</I> <li>Ger: <I>kommen Sie nach meinem Haus / Hause</I> <li>Ita: <I>venire alla mia casa</I> <li>Nor: <I>komm til mit hus</I> <li>Pol: <I>do mojego domu przychodź</I> <li>Ron: <I>sã vii la casa mea</I> <li>Rus: <I>приходи к моему дому</I> <li>Spa: <I>venir a mi casa</I> <li>Swe: <I>kom till mitt hus</I> <li>Urd: <I>آنا میرا گھر كو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkImp</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
+<TD><div class=reveal> <I>come</I> <div class=popup> <ul> <li>API: <CODE>mkImp come_V</CODE> <li>Bul: <I>ела</I> <li>Cat: <I>venir</I> <li>Dan: <I>kom</I> <li>Dut: <I>komt u</I> <li>Eng: <I>come</I> <li>Fin: <I>tule</I> <li>Fre: <I>venez</I> <li>Ger: <I>kommen Sie</I> <li>Ita: <I>venire</I> <li>Nor: <I>komm</I> <li>Pol: <I>przychodź</I> <li>Ron: <I>sã vii</I> <li>Rus: <I>приходи</I> <li>Spa: <I>venir</I> <li>Swe: <I>kom</I> <li>Urd: <I>آنا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkImp</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A></TD>
+<TD><div class=reveal> <I>buy it</I> <div class=popup> <ul> <li>API: <CODE>mkImp buy_V2 it_NP</CODE> <li>Bul: <I>купи него</I> <li>Cat: <I>comprar</I> <li>Dan: <I>køb det</I> <li>Dut: <I>koopt u</I> <li>Eng: <I>buy it</I> <li>Fin: <I>osta sen</I> <li>Fre: <I>achetez pre {"le"; "l'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>kaufen Sie</I> <li>Ita: <I>comprare lo</I> <li>Nor: <I>kjøp det</I> <li>Pol: <I>kupuj je</I> <li>Ron: <I>sã îl cumperi</I> <li>Rus: <I>покупай его</I> <li>Spa: <I>comprar</I> <li>Swe: <I>köp det</I> <li>Urd: <I>اس كو خریدنا</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="ImpForm"></A>
+<H2>ImpForm</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>pluralImpForm</CODE></TD>
+<TD><A HREF="#ImpForm">ImpForm</A></TD>
+<TD><div class=reveal> <I>be men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt pluralImpForm (mkImp (mkVP man_N))</CODE> <li>Bul: <I>бъдете мъже</I> <li>Cat: <I>sigueu homes</I> <li>Dan: <I>var mænd</I> <li>Dut: <I>wezen mannen</I> <li>Eng: <I>be men</I> <li>Fin: <I>olkaa miehiä</I> <li>Fre: <I>soyez hommes</I> <li>Ger: <I>seid Männer</I> <li>Ita: <I>siate uomini</I> <li>Nor: <I>var menn</I> <li>Pol: <I>bądźcie mężczyzna</I> <li>Ron: <I>fiţi oameni</I> <li>Rus: <I>будьте человеками</I> <li>Spa: <I>sed hombres</I> <li>Swe: <I>var män</I> <li>Urd: <I>آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>politeImpForm</CODE></TD>
+<TD><A HREF="#ImpForm">ImpForm</A></TD>
+<TD><div class=reveal> <I>be a man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt politeImpForm (mkImp (mkVP man_N))</CODE> <li>Bul: <I>бъдете мъже</I> <li>Cat: <I>ser home</I> <li>Dan: <I>var en mand</I> <li>Dut: <I>weest u man</I> <li>Eng: <I>be a man</I> <li>Fin: <I>olkaa mies</I> <li>Fre: <I>soyez homme</I> <li>Ger: <I>seien Sie ein Mann</I> <li>Ita: <I>essere uomo</I> <li>Nor: <I>var en mann</I> <li>Pol: <I>bądź mężczyzna</I> <li>Ron: <I>sã fii om</I> <li>Rus: <I>будь человеком</I> <li>Spa: <I>ser hombre</I> <li>Swe: <I>var en man</I> <li>Urd: <I>آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>singularImpForm</CODE></TD>
+<TD><A HREF="#ImpForm">ImpForm</A></TD>
+<TD><div class=reveal> <I>be a man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt singularImpForm (mkImp (mkVP man_N))</CODE> <li>Bul: <I>бъди мъж</I> <li>Cat: <I>sigues home</I> <li>Dan: <I>var en mand</I> <li>Dut: <I>wees man</I> <li>Eng: <I>be a man</I> <li>Fin: <I>ole mies</I> <li>Fre: <I>sois homme</I> <li>Ger: <I>sei ein Mann</I> <li>Ita: <I>sii uomo</I> <li>Nor: <I>var en mann</I> <li>Pol: <I>bądź mężczyzna</I> <li>Ron: <I>fii om</I> <li>Rus: <I>будь человеком</I> <li>Spa: <I>sé hombre</I> <li>Swe: <I>var en man</I> <li>Urd: <I>آدمی</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Interj"></A>
+<H2>Interj - interjection</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="ListAP"></A>
+<H2>ListAP</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkListAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A></TD>
+<TD><I>list of two</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkListAP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A> <CODE>-&gt;</CODE> <A HREF="#ListAP">ListAP</A></TD>
+<TD><I>list of more</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="ListAdv"></A>
+<H2>ListAdv</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkListAdv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A></TD>
+<TD><I>list of two</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkListAdv</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A> <CODE>-&gt;</CODE> <A HREF="#ListAdv">ListAdv</A></TD>
+<TD><I>list of more</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="ListNP"></A>
+<H2>ListNP</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkListNP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A></TD>
+<TD><I>list of two</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkListNP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A></TD>
+<TD><I>list of more</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="ListRS"></A>
+<H2>ListRS</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkListRS</CODE></TD>
+<TD><A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A></TD>
+<TD><I>list of two</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkListRS</CODE></TD>
+<TD><A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A></TD>
+<TD><I>list of more</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="ListS"></A>
+<H2>ListS</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkListS</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A></TD>
+<TD><I>list of two</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkListS</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A></TD>
+<TD><I>list of more</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="N"></A>
+<H2>N - common noun</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="N2"></A>
+<H2>N2 - relational noun</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="N3"></A>
+<H2>N3 - three-place relational noun</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="NP"></A>
+<H2>NP - noun phrase (subject or object)</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>everybody_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>everybody</I> <div class=popup> <ul> <li>API: <CODE>everybody_NP</CODE> <li>Bul: <I>всеки</I> <li>Cat: <I>''</I> <li>Dan: <I>alle</I> <li>Dut: <I>alle</I> <li>Eng: <I>everybody</I> <li>Fin: <I>jokainen</I> <li>Fre: <I>''</I> <li>Ger: <I>jeder</I> <li>Ita: <I>''</I> <li>Nor: <I>alle</I> <li>Pol: <I>wszystkich</I> <li>Ron: <I>''</I> <li>Rus: <I>все</I> <li>Spa: <I>''</I> <li>Swe: <I>alla</I> <li>Urd: <I>ہر كوی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>everything_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>everything</I> <div class=popup> <ul> <li>API: <CODE>everything_NP</CODE> <li>Bul: <I>всичко</I> <li>Cat: <I>''</I> <li>Dan: <I>alt</I> <li>Dut: <I>alles</I> <li>Eng: <I>everything</I> <li>Fin: <I>kaikki</I> <li>Fre: <I>''</I> <li>Ger: <I>alles</I> <li>Ita: <I>''</I> <li>Nor: <I>alt</I> <li>Pol: <I>wszystkiego</I> <li>Ron: <I>// <li>Rus: //всё</I> <li>Spa: <I>''</I> <li>Swe: <I>allting</I> <li>Urd: <I>ہر چیز</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>he_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>he</I> <div class=popup> <ul> <li>API: <CODE>mkUtt he_NP</CODE> <li>Bul: <I>той</I> <li>Cat: <I>ell</I> <li>Dan: <I>ham</I> <li>Dut: <I>hij</I> <li>Eng: <I>he</I> <li>Fin: <I>hän</I> <li>Fre: <I>lui</I> <li>Ger: <I>er</I> <li>Ita: <I>lui</I> <li>Nor: <I>ham</I> <li>Pol: <I>on</I> <li>Ron: <I>el</I> <li>Rus: <I>его</I> <li>Spa: <I>él</I> <li>Swe: <I>honom</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>i_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>I</I> <div class=popup> <ul> <li>API: <CODE>mkUtt i_NP</CODE> <li>Bul: <I>аз</I> <li>Cat: <I>mi</I> <li>Dan: <I>mig</I> <li>Dut: <I>ik</I> <li>Eng: <I>I</I> <li>Fin: <I>minä</I> <li>Fre: <I>moi</I> <li>Ger: <I>ich</I> <li>Ita: <I>me</I> <li>Nor: <I>meg</I> <li>Pol: <I>ja</I> <li>Ron: <I>eu</I> <li>Rus: <I>меня</I> <li>Spa: <I>mí</I> <li>Swe: <I>mig</I> <li>Urd: <I>میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>it_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>it</I> <div class=popup> <ul> <li>API: <CODE>mkUtt it_NP</CODE> <li>Bul: <I>то</I> <li>Cat: <I>ell</I> <li>Dan: <I>det</I> <li>Dut: <I>het</I> <li>Eng: <I>it</I> <li>Fin: <I>se</I> <li>Fre: <I>lui</I> <li>Ger: <I>es</I> <li>Ita: <I>lui</I> <li>Nor: <I>det</I> <li>Pol: <I>ono</I> <li>Ron: <I>''</I> <li>Rus: <I>его</I> <li>Spa: <I>él</I> <li>Swe: <I>det</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant man_N)</CODE> <li>Bul: <I>този мъж</I> <li>Cat: <I>aquest home</I> <li>Dan: <I>denne mand</I> <li>Dut: <I>deze man</I> <li>Eng: <I>this man</I> <li>Fin: <I>tämä mies</I> <li>Fre: <I>cet homme</I> <li>Ger: <I>dieser Mann</I> <li>Ita: <I>questo uomo</I> <li>Nor: <I>denne mannen</I> <li>Pol: <I>ten mężczyzna</I> <li>Ron: <I>acest om</I> <li>Rus: <I>этот человек</I> <li>Spa: <I>este hombre</I> <li>Swe: <I>den här mannen</I> <li>Urd: <I>یہ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this old man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant (mkCN old_A man_N))</CODE> <li>Bul: <I>този стар мъж</I> <li>Cat: <I>aquest home vell</I> <li>Dan: <I>denne gamle mand</I> <li>Dut: <I>deze oude man</I> <li>Eng: <I>this old man</I> <li>Fin: <I>tämä vanha mies</I> <li>Fre: <I>ce vieux homme</I> <li>Ger: <I>dieser alte Mann</I> <li>Ita: <I>questo vecchio uomo</I> <li>Nor: <I>denne gamle mannen</I> <li>Pol: <I>ten stary mężczyzna</I> <li>Ron: <I>acest om vechi</I> <li>Rus: <I>этот старый человек</I> <li>Spa: <I>este viejo hombre</I> <li>Swe: <I>den här gamla mannen</I> <li>Urd: <I>یہ بوڑھا آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>these five old men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) (mkCN old_A man_N))</CODE> <li>Bul: <I>тези петима стари мъже</I> <li>Cat: <I>aquests cinc homes vells</I> <li>Dan: <I>disse fem gamle mænd</I> <li>Dut: <I>deze vijf oude mannen</I> <li>Eng: <I>these five old men</I> <li>Fin: <I>nämä viisi vanhaa miestä</I> <li>Fre: <I>ces cinq vieux hommes</I> <li>Ger: <I>diese fünf alten Männer</I> <li>Ita: <I>questi cinque vecchi uomini</I> <li>Nor: <I>disse fem gamle mennen</I> <li>Pol: <I>tych pięciu starych mężczyzn</I> <li>Ron: <I>aceşti cinci oameni vechi</I> <li>Rus: <I>эти пять старые человеки</I> <li>Spa: <I>estos cinco viejos hombres</I> <li>Swe: <I>de här fem gamla männen</I> <li>Urd: <I>یہ پانچ بوڑھے آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>these five men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) man_N)</CODE> <li>Bul: <I>тези петима мъже</I> <li>Cat: <I>aquests cinc homes</I> <li>Dan: <I>disse fem mænd</I> <li>Dut: <I>deze vijf mannen</I> <li>Eng: <I>these five men</I> <li>Fin: <I>nämä viisi miestä</I> <li>Fre: <I>ces cinq hommes</I> <li>Ger: <I>diese fünf Männer</I> <li>Ita: <I>questi cinque uomini</I> <li>Nor: <I>disse fem mennen</I> <li>Pol: <I>tych pięciu mężczyzn</I> <li>Ron: <I>aceşti cinci oameni</I> <li>Rus: <I>эти пять человеки</I> <li>Spa: <I>estos cinco hombres</I> <li>Swe: <I>de här fem männen</I> <li>Urd: <I>یہ پانچ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>the five old men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) (mkCN old_A man_N))</CODE> <li>Bul: <I>петимата стари мъже</I> <li>Cat: <I>els cinc homes vells</I> <li>Dan: <I>de fem gamle mænd</I> <li>Dut: <I>de vijf oude mannen</I> <li>Eng: <I>the five old men</I> <li>Fin: <I>viisi vanhaa miestä</I> <li>Fre: <I>les cinq vieux hommes</I> <li>Ger: <I>die fünf alten Männer</I> <li>Ita: <I>i cinque vecchi uomini</I> <li>Nor: <I>de fem gamle mennen</I> <li>Pol: <I>pięciu starych mężczyzn</I> <li>Ron: <I>cei cinci oameni vechi</I> <li>Rus: <I>пять старые человеки</I> <li>Spa: <I>los cinco viejos hombres</I> <li>Swe: <I>de fem gamla männen</I> <li>Urd: <I>پانچ بوڑھے آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>the five men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) man_N)</CODE> <li>Bul: <I>петимата мъже</I> <li>Cat: <I>els cinc homes</I> <li>Dan: <I>de fem mændene</I> <li>Dut: <I>de vijf mannen</I> <li>Eng: <I>the five men</I> <li>Fin: <I>viisi miestä</I> <li>Fre: <I>les cinq hommes</I> <li>Ger: <I>die fünf Männer</I> <li>Ita: <I>i cinque uomini</I> <li>Nor: <I>de fem mennen</I> <li>Pol: <I>pięciu mężczyzn</I> <li>Ron: <I>cei cinci oameni</I> <li>Rus: <I>пять человеки</I> <li>Spa: <I>los cinco hombres</I> <li>Swe: <I>de fem männen</I> <li>Urd: <I>پانچ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>fifty old men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkNumeral (tenfoldSub100 n5_Unit)) (mkCN old_A man_N))</CODE> <li>Bul: <I>петдесетима стари мъже</I> <li>Cat: <I>cinquanta homes vells</I> <li>Dan: <I>halvtreds gamle mænd</I> <li>Dut: <I>vijftig oude mannen</I> <li>Eng: <I>fifty old men</I> <li>Fin: <I>viisikymmentä vanhaa miestä</I> <li>Fre: <I>cinquante vieux hommes</I> <li>Ger: <I>fünfzig alte Männer</I> <li>Ita: <I>cinquanta vecchi uomini</I> <li>Nor: <I>femti gamle menn</I> <li>Pol: <I>pięćdziesięciu starych mężczyzn</I> <li>Ron: <I>cincizeci de oameni vechi</I> <li>Rus: <I>пятьдесят старые человеки</I> <li>Spa: <I>cinquenta viejos hombres</I> <li>Swe: <I>femtio gamla män</I> <li>Urd: <I>پچاس بوڑھے آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>fifty men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkNumeral (tenfoldSub100 n5_Unit)) man_N)</CODE> <li>Bul: <I>петдесетима мъже</I> <li>Cat: <I>cinquanta homes</I> <li>Dan: <I>halvtreds mænd</I> <li>Dut: <I>vijftig mannen</I> <li>Eng: <I>fifty men</I> <li>Fin: <I>viisikymmentä miestä</I> <li>Fre: <I>cinquante hommes</I> <li>Ger: <I>fünfzig Männer</I> <li>Ita: <I>cinquanta uomini</I> <li>Nor: <I>femti menn</I> <li>Pol: <I>pięćdziesięciu mężczyzn</I> <li>Ron: <I>cincizeci de oameni</I> <li>Rus: <I>пятьдесят человеки</I> <li>Spa: <I>cinquenta hombres</I> <li>Swe: <I>femtio män</I> <li>Urd: <I>پچاس آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>5 1 old men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) (mkCN old_A man_N))</CODE> <li>Bul: <I>5 1 стари мъже</I> <li>Cat: <I>5 1 homes vells</I> <li>Dan: <I>5 1 gamle mænd</I> <li>Dut: <I>5 1 oude mannen</I> <li>Eng: <I>5 1 old men</I> <li>Fin: <I>5 1 vanhaa miestä</I> <li>Fre: <I>5 1 vieux hommes</I> <li>Ger: <I>5 1 alte Männer</I> <li>Ita: <I>5 1 vecchi uomini</I> <li>Nor: <I>5 1 gamle menn</I> <li>Pol: <I>5 1 starzy mężczyźni</I> <li>Ron: <I>5 1 de oameni vechi</I> <li>Rus: <I>5 1 старые человеки</I> <li>Spa: <I>5 1 viejos hombres</I> <li>Swe: <I>5 1 gamla män</I> <li>Urd: <I>۱۵ بوڑھے آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>5 1 men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) man_N)</CODE> <li>Bul: <I>5 1 мъже</I> <li>Cat: <I>5 1 homes</I> <li>Dan: <I>5 1 mænd</I> <li>Dut: <I>5 1 mannen</I> <li>Eng: <I>5 1 men</I> <li>Fin: <I>5 1 miestä</I> <li>Fre: <I>5 1 hommes</I> <li>Ger: <I>5 1 Männer</I> <li>Ita: <I>5 1 uomini</I> <li>Nor: <I>5 1 menn</I> <li>Pol: <I>5 1 mężczyźni</I> <li>Ron: <I>5 1 de oameni</I> <li>Rus: <I>5 1 человеки</I> <li>Spa: <I>5 1 hombres</I> <li>Swe: <I>5 1 män</I> <li>Urd: <I>۱۵ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><I>forty-five old men</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><I>forty-five men</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>my old man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP i_Pron (mkCN old_A man_N))</CODE> <li>Bul: <I>моят стар мъж</I> <li>Cat: <I>el meu home vell</I> <li>Dan: <I>min gamle mand</I> <li>Dut: <I>mijn oude man</I> <li>Eng: <I>my old man</I> <li>Fin: <I>minun vanha mieheni</I> <li>Fre: <I>mon vieux homme</I> <li>Ger: <I>mein alter Mann</I> <li>Ita: <I>il mio vecchio uomo</I> <li>Nor: <I>min gamle mann</I> <li>Pol: <I>mój stary mężczyzna</I> <li>Ron: <I>omul vechi meu</I> <li>Rus: <I>моего старый человек</I> <li>Spa: <I>mi viejo hombre</I> <li>Swe: <I>min gamla man</I> <li>Urd: <I>میرا بوڑھا آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>my man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP i_Pron man_N)</CODE> <li>Bul: <I>моят мъж</I> <li>Cat: <I>el meu home</I> <li>Dan: <I>min mand</I> <li>Dut: <I>mijn man</I> <li>Eng: <I>my man</I> <li>Fin: <I>minun mieheni</I> <li>Fre: <I>mon homme</I> <li>Ger: <I>mein Mann</I> <li>Ita: <I>il mio uomo</I> <li>Nor: <I>min mann</I> <li>Pol: <I>mój mężczyzna</I> <li>Ron: <I>omul meu</I> <li>Rus: <I>моего человек</I> <li>Spa: <I>mi hombre</I> <li>Swe: <I>min man</I> <li>Urd: <I>میرا آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>Paris</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP paris_PN)</CODE> <li>Bul: <I>Париж</I> <li>Cat: <I>Paris</I> <li>Dan: <I>Paris</I> <li>Dut: <I>Parijs</I> <li>Eng: <I>Paris</I> <li>Fin: <I>Pariisi</I> <li>Fre: <I>Paris</I> <li>Ger: <I>Paris</I> <li>Ita: <I>Parigi</I> <li>Nor: <I>Paris</I> <li>Pol: <I>Paryż</I> <li>Ron: <I>Paris</I> <li>Rus: <I>Париж</I> <li>Spa: <I>Paris</I> <li>Swe: <I>Paris</I> <li>Urd: <I>پیرس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>we</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP we_Pron)</CODE> <li>Bul: <I>ние</I> <li>Cat: <I>nosaltres</I> <li>Dan: <I>os</I> <li>Dut: <I>we</I> <li>Eng: <I>we</I> <li>Fin: <I>me</I> <li>Fre: <I>nous</I> <li>Ger: <I>wir</I> <li>Ita: <I>noi</I> <li>Nor: <I>oss</I> <li>Pol: <I>my</I> <li>Ron: <I>noi</I> <li>Rus: <I>нас</I> <li>Spa: <I>nosotros</I> <li>Swe: <I>oss</I> <li>Urd: <I>ہم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant)</CODE> <li>Bul: <I>това</I> <li>Cat: <I>aquest</I> <li>Dan: <I>dette</I> <li>Dut: <I>dit</I> <li>Eng: <I>this</I> <li>Fin: <I>tämä</I> <li>Fre: <I>celui-ci</I> <li>Ger: <I>dieses</I> <li>Ita: <I>questo</I> <li>Nor: <I>dette</I> <li>Pol: <I>ten</I> <li>Ron: <I>acesta</I> <li>Rus: <I>это</I> <li>Spa: <I>este</I> <li>Swe: <I>det här</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>these five</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>тези пет</I> <li>Cat: <I>aquests cinc</I> <li>Dan: <I>disse fem</I> <li>Dut: <I>deze vijf</I> <li>Eng: <I>these five</I> <li>Fin: <I>nämä viisi</I> <li>Fre: <I>ces cinq</I> <li>Ger: <I>diese fünf</I> <li>Ita: <I>questi cinque</I> <li>Nor: <I>disse fem</I> <li>Pol: <I>tych pięciu</I> <li>Ron: <I>aceştia cinci</I> <li>Rus: <I>эти пять</I> <li>Spa: <I>estos cinco</I> <li>Swe: <I>de här fem</I> <li>Urd: <I>یہ پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Det" TITLE="Det - determiner phrase">Det</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>the five best</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)))</CODE> <li>Bul: <I>петте най - добри</I> <li>Cat: <I>els cinc millors</I> <li>Dan: <I>de fem bedste</I> <li>Dut: <I>die vijf beste</I> <li>Eng: <I>the five best</I> <li>Fin: <I>ne viisi parhaimmat</I> <li>Fre: <I>les cinq meilleurs</I> <li>Ger: <I>die fünf besten</I> <li>Ita: <I>i cinque migliori</I> <li>Nor: <I>de fem beste</I> <li>Pol: <I>pięciu najlepszych</I> <li>Ron: <I>cei mai buni cinci</I> <li>Rus: <I>пять хорошие</I> <li>Spa: <I>los cinco mejores</I> <li>Swe: <I>de fem bästa</I> <li>Urd: <I>پانچ سب سے اچھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>old beer</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkCN old_A beer_N))</CODE> <li>Bul: <I>стара бира</I> <li>Cat: <I>cervesa vell</I> <li>Dan: <I>gammelt øl</I> <li>Dut: <I>oud bier</I> <li>Eng: <I>old beer</I> <li>Fin: <I>vanha olut</I> <li>Fre: <I>pre {"de"; "d'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>altes Bier</I> <li>Ita: <I>della vecchia birra</I> <li>Nor: <I>gammelt øl</I> <li>Pol: <I>stare piwo</I> <li>Ron: <I>bere veche</I> <li>Rus: <I>старое пиво</I> <li>Spa: <I>vieja cerveza</I> <li>Swe: <I>gammalt öl</I> <li>Urd: <I>بوڑھا بییر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>beer</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP beer_N)</CODE> <li>Bul: <I>бира</I> <li>Cat: <I>cervesa</I> <li>Dan: <I>øl</I> <li>Dut: <I>bier</I> <li>Eng: <I>beer</I> <li>Fin: <I>olut</I> <li>Fre: <I>pre {"de"; "d'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨"; "h";</I> <li>Ger: <I>Bier</I> <li>Ita: <I>della birra</I> <li>Nor: <I>øl</I> <li>Pol: <I>piwo</I> <li>Ron: <I>bere</I> <li>Rus: <I>пиво</I> <li>Spa: <I>cerveza</I> <li>Swe: <I>öl</I> <li>Urd: <I>بییر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>only this woman</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP only_Predet (mkNP this_Det woman_N))</CODE> <li>Bul: <I>само тази жена</I> <li>Cat: <I>nomÈs aquesta dona</I> <li>Dan: <I>kun denne kvinde</I> <li>Dut: <I>slechts deze vrouw</I> <li>Eng: <I>only this woman</I> <li>Fin: <I>vain tämä nainen</I> <li>Fre: <I>seulement cette femme</I> <li>Ger: <I>nur diese Frau</I> <li>Ita: <I>soltanto questa donna</I> <li>Nor: <I>kun denne kvinna</I> <li>Pol: <I>tylko tej kobiety</I> <li>Ron: <I>doar această femeie</I> <li>Rus: <I>единственную эту женщину</I> <li>Spa: <I>solamente esta mujer</I> <li>Swe: <I>bara den här kvinnan</I> <li>Urd: <I>صرف یہ عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>the man seen</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkNP the_Det man_N) see_V2)</CODE> <li>Bul: <I>мъжът видян</I> <li>Cat: <I>l' home vist</I> <li>Dan: <I>manden set</I> <li>Dut: <I>de man gezien</I> <li>Eng: <I>the man seen</I> <li>Fin: <I>mies nähtynä</I> <li>Fre: <I>l' homme vu</I> <li>Ger: <I>der Mann gesehen</I> <li>Ita: <I>l' uomo visto</I> <li>Nor: <I>mannen sett</I> <li>Pol: <I>mężczyzna zobaczony</I> <li>Ron: <I>omul văzut</I> <li>Rus: <I>человек видеть</I> <li>Spa: <I>el hombre visto</I> <li>Swe: <I>mannen sedd</I> <li>Urd: <I>دیكھا آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>Paris today</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkNP paris_PN) today_Adv)</CODE> <li>Bul: <I>Париж днес</I> <li>Cat: <I>Paris avui</I> <li>Dan: <I>Paris idag</I> <li>Dut: <I>Parijs vandaag</I> <li>Eng: <I>Paris today</I> <li>Fin: <I>Pariisi tänään</I> <li>Fre: <I>Paris aujourd'hui</I> <li>Ger: <I>Paris heute</I> <li>Ita: <I>Parigi oggi</I> <li>Nor: <I>Paris idag</I> <li>Pol: <I>Paryż dziś</I> <li>Ron: <I>Paris astăzi</I> <li>Rus: <I>*</I> <li>Spa: <I>Paris hoy</I> <li>Swe: <I>Paris idag</I> <li>Urd: <I>آج پیرس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>John , who walks</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP (mkNP john_PN) (mkRS (mkRCl which_RP (mkVP walk_V))))</CODE> <li>Bul: <I>Джон който ходи</I> <li>Cat: <I>Joan que camina</I> <li>Dan: <I>John , som går</I> <li>Dut: <I>Jan , dat loopt</I> <li>Eng: <I>John , who walks</I> <li>Fin: <I>Jussi , joka kävelee</I> <li>Fre: <I>Jean qui marche</I> <li>Ger: <I>Johann , das geht</I> <li>Ita: <I>Giovanni che cammina</I> <li>Nor: <I>John , som går</I> <li>Pol: <I>Jan , który spaceruje</I> <li>Ron: <I>Ion care merge</I> <li>Rus: <I>Ивана , которого гуляет</I> <li>Spa: <I>Juan que camina</I> <li>Swe: <I>Johan , som går</I> <li>Urd: <I>جان , جو چلتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this woman or John</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP or_Conj (mkNP this_Det woman_N) (mkNP john_PN))</CODE> <li>Bul: <I>тази жена или Джон</I> <li>Cat: <I>aquesta dona o Joan</I> <li>Dan: <I>denne kvinde eller John</I> <li>Dut: <I>deze vrouw of Jan</I> <li>Eng: <I>this woman or John</I> <li>Fin: <I>tämä nainen tai Jussi</I> <li>Fre: <I>cette femme ou Jean</I> <li>Ger: <I>diese Frau oder Johann</I> <li>Ita: <I>questa donna o Giovanni</I> <li>Nor: <I>denne kvinna eller John</I> <li>Pol: <I>ta kobieta lub Jan</I> <li>Ron: <I>această femeie sau Ion</I> <li>Rus: <I>эту женщину или Ивана</I> <li>Spa: <I>esta mujer o Juan</I> <li>Swe: <I>den här kvinnan eller Johan</I> <li>Urd: <I>یہ عورت یا جان</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNP</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListNP">ListNP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this woman , John or I</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP or_Conj (mkListNP (mkNP this_Det woman_N) (mkListNP (mkNP john_PN) i_NP)))</CODE> <li>Bul: <I>тази жена , Джон или аз</I> <li>Cat: <I>aquesta dona , Joan o mi</I> <li>Dan: <I>denne kvinde , John eller mig</I> <li>Dut: <I>deze vrouw , Jan of ik</I> <li>Eng: <I>this woman , John or I</I> <li>Fin: <I>tämä nainen , Jussi tai minä</I> <li>Fre: <I>cette femme , Jean ou moi</I> <li>Ger: <I>diese Frau , Johann oder ich</I> <li>Ita: <I>questa donna , Giovanni o me</I> <li>Nor: <I>denne kvinna , John eller meg</I> <li>Pol: <I>ta kobieta , Jan lub ja</I> <li>Ron: <I>această femeie , Ion sau eu</I> <li>Rus: <I>Ивана , меня или эту женщину</I> <li>Spa: <I>esta mujer , Juan o mí</I> <li>Swe: <I>den här kvinnan , Johan eller mig</I> <li>Urd: <I>یہ عورت , جان یا میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>nobody_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>nobody</I> <div class=popup> <ul> <li>API: <CODE>nobody_NP</CODE> <li>Bul: <I>*</I> <li>Cat: <I>''</I> <li>Dan: <I>*</I> <li>Dut: <I>niemand</I> <li>Eng: <I>nobody</I> <li>Fin: <I>ei kukaan</I> <li>Fre: <I>''</I> <li>Ger: <I>niemand</I> <li>Ita: <I>''</I> <li>Nor: <I>*</I> <li>Pol: <I>nikogo</I> <li>Ron: <I>''</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>ingen</I> <li>Urd: <I>كوی نہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>nothing_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>nothing</I> <div class=popup> <ul> <li>API: <CODE>nothing_NP</CODE> <li>Bul: <I>*</I> <li>Cat: <I>''</I> <li>Dan: <I>*</I> <li>Dut: <I>niets</I> <li>Eng: <I>nothing</I> <li>Fin: <I>ei mikään</I> <li>Fre: <I>''</I> <li>Ger: <I>nichts</I> <li>Ita: <I>''</I> <li>Nor: <I>*</I> <li>Pol: <I>niczego</I> <li>Ron: <I>''</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>inget</I> <li>Urd: <I>كوی چیز نہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>she_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>she</I> <div class=popup> <ul> <li>API: <CODE>mkUtt she_NP</CODE> <li>Bul: <I>тя</I> <li>Cat: <I>ella</I> <li>Dan: <I>hende</I> <li>Dut: <I>ze</I> <li>Eng: <I>she</I> <li>Fin: <I>hän</I> <li>Fre: <I>elle</I> <li>Ger: <I>sie</I> <li>Ita: <I>lei</I> <li>Nor: <I>henne</I> <li>Pol: <I>ona</I> <li>Ron: <I>ea</I> <li>Rus: <I>её</I> <li>Spa: <I>ella</I> <li>Swe: <I>henne</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>somebody_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>somebody</I> <div class=popup> <ul> <li>API: <CODE>somebody_NP</CODE> <li>Bul: <I>някой</I> <li>Cat: <I>''</I> <li>Dan: <I>nogen</I> <li>Dut: <I>iemand</I> <li>Eng: <I>somebody</I> <li>Fin: <I>joku</I> <li>Fre: <I>''</I> <li>Ger: <I>jemand</I> <li>Ita: <I>''</I> <li>Nor: <I>noen</I> <li>Pol: <I>kogoś</I> <li>Ron: <I>''</I> <li>Rus: <I>кто-то</I> <li>Spa: <I>''</I> <li>Swe: <I>någon</I> <li>Urd: <I>كوی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>something_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>something</I> <div class=popup> <ul> <li>API: <CODE>something_NP</CODE> <li>Bul: <I>нещо</I> <li>Cat: <I>''</I> <li>Dan: <I>noget</I> <li>Dut: <I>iets</I> <li>Eng: <I>something</I> <li>Fin: <I>jokin</I> <li>Fre: <I>''</I> <li>Ger: <I>etwas</I> <li>Ita: <I>''</I> <li>Nor: <I>noe</I> <li>Pol: <I>czegoś</I> <li>Ron: <I>''</I> <li>Rus: <I>что-то</I> <li>Spa: <I>''</I> <li>Swe: <I>något</I> <li>Urd: <I>كوی چیز</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>that_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>that</I> <div class=popup> <ul> <li>API: <CODE>mkUtt that_NP</CODE> <li>Bul: <I>онова</I> <li>Cat: <I>aquell</I> <li>Dan: <I>det der</I> <li>Dut: <I>dat</I> <li>Eng: <I>that</I> <li>Fin: <I>tuo</I> <li>Fre: <I>celui-là</I> <li>Ger: <I>jenes</I> <li>Ita: <I>quello</I> <li>Nor: <I>det der</I> <li>Pol: <I>tamten</I> <li>Ron: <I>acela</I> <li>Rus: <I>то</I> <li>Spa: <I>ese</I> <li>Swe: <I>det där</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>these_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>these</I> <div class=popup> <ul> <li>API: <CODE>mkUtt these_NP</CODE> <li>Bul: <I>тези</I> <li>Cat: <I>aquests</I> <li>Dan: <I>disse</I> <li>Dut: <I>deze</I> <li>Eng: <I>these</I> <li>Fin: <I>nämä</I> <li>Fre: <I>ceux-ci</I> <li>Ger: <I>diese</I> <li>Ita: <I>questi</I> <li>Nor: <I>disse</I> <li>Pol: <I>ci</I> <li>Ron: <I>aceştia</I> <li>Rus: <I>эти</I> <li>Spa: <I>estos</I> <li>Swe: <I>de här</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>they_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>they</I> <div class=popup> <ul> <li>API: <CODE>mkUtt they_NP</CODE> <li>Bul: <I>те</I> <li>Cat: <I>elles</I> <li>Dan: <I>dem</I> <li>Dut: <I>ze</I> <li>Eng: <I>they</I> <li>Fin: <I>he</I> <li>Fre: <I>eux</I> <li>Ger: <I>sie</I> <li>Ita: <I>loro</I> <li>Nor: <I>dem</I> <li>Pol: <I>oni</I> <li>Ron: <I>ei</I> <li>Rus: <I>их</I> <li>Spa: <I>ellos</I> <li>Swe: <I>dem</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>this_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>this</I> <div class=popup> <ul> <li>API: <CODE>mkUtt this_NP</CODE> <li>Bul: <I>това</I> <li>Cat: <I>aquest</I> <li>Dan: <I>dette</I> <li>Dut: <I>dit</I> <li>Eng: <I>this</I> <li>Fin: <I>tämä</I> <li>Fre: <I>celui-ci</I> <li>Ger: <I>dieses</I> <li>Ita: <I>questo</I> <li>Nor: <I>dette</I> <li>Pol: <I>ten</I> <li>Ron: <I>acesta</I> <li>Rus: <I>это</I> <li>Spa: <I>este</I> <li>Swe: <I>det här</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>those_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>those</I> <div class=popup> <ul> <li>API: <CODE>mkUtt those_NP</CODE> <li>Bul: <I>онези</I> <li>Cat: <I>aquells</I> <li>Dan: <I>de der</I> <li>Dut: <I>die</I> <li>Eng: <I>those</I> <li>Fin: <I>nuo</I> <li>Fre: <I>ceux-là</I> <li>Ger: <I>jene</I> <li>Ita: <I>quelli</I> <li>Nor: <I>de der</I> <li>Pol: <I>tamci</I> <li>Ron: <I>aceia</I> <li>Rus: <I>те</I> <li>Spa: <I>esos</I> <li>Swe: <I>de där</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>we_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>we</I> <div class=popup> <ul> <li>API: <CODE>mkUtt we_NP</CODE> <li>Bul: <I>ние</I> <li>Cat: <I>nosaltres</I> <li>Dan: <I>os</I> <li>Dut: <I>we</I> <li>Eng: <I>we</I> <li>Fin: <I>me</I> <li>Fre: <I>nous</I> <li>Ger: <I>wir</I> <li>Ita: <I>noi</I> <li>Nor: <I>oss</I> <li>Pol: <I>my</I> <li>Ron: <I>noi</I> <li>Rus: <I>нас</I> <li>Spa: <I>nosotros</I> <li>Swe: <I>oss</I> <li>Urd: <I>ہم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>youPl_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>mkUtt youPl_NP</CODE> <li>Bul: <I>вие</I> <li>Cat: <I>vosaltres</I> <li>Dan: <I>jer</I> <li>Dut: <I>jullie</I> <li>Eng: <I>you</I> <li>Fin: <I>te</I> <li>Fre: <I>vous</I> <li>Ger: <I>ihr</I> <li>Ita: <I>voi</I> <li>Nor: <I>dere</I> <li>Pol: <I>wy</I> <li>Ron: <I>voi</I> <li>Rus: <I>вас</I> <li>Spa: <I>vosotros</I> <li>Swe: <I>er</I> <li>Urd: <I>تم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>youPol_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>mkUtt youPol_NP</CODE> <li>Bul: <I>вие</I> <li>Cat: <I>vosté</I> <li>Dan: <I>Dem</I> <li>Dut: <I>u</I> <li>Eng: <I>you</I> <li>Fin: <I>te</I> <li>Fre: <I>vous</I> <li>Ger: <I>Sie</I> <li>Ita: <I>Lei</I> <li>Nor: <I>Dere</I> <li>Pol: <I>ty</I> <li>Ron: <I>dumneavoastră</I> <li>Rus: <I>вас</I> <li>Spa: <I>usted</I> <li>Swe: <I>er</I> <li>Urd: <I>آپ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>you_NP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>mkUtt you_NP</CODE> <li>Bul: <I>ти</I> <li>Cat: <I>tu</I> <li>Dan: <I>dig</I> <li>Dut: <I>je</I> <li>Eng: <I>you</I> <li>Fin: <I>sinä</I> <li>Fre: <I>toi</I> <li>Ger: <I>du</I> <li>Ita: <I>te</I> <li>Nor: <I>deg</I> <li>Pol: <I>ty</I> <li>Ron: <I>tu</I> <li>Rus: <I>тебя</I> <li>Spa: <I>tí</I> <li>Swe: <I>dig</I> <li>Urd: <I>تو</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Num"></A>
+<H2>Num - number determining element</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><I>thirty-five (given by "35"; range 1-999)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><div class=reveal> <I>twenty</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkNumeral (tenfoldSub100 n2_Unit))</CODE> <li>Bul: <I>двадесетима</I> <li>Cat: <I>vint</I> <li>Dan: <I>tyve</I> <li>Dut: <I>twintig</I> <li>Eng: <I>twenty</I> <li>Fin: <I>kaksikymmentä</I> <li>Fre: <I>vingt</I> <li>Ger: <I>zwanzig</I> <li>Ita: <I>venti</I> <li>Nor: <I>tjue</I> <li>Pol: <I>dwadzieścia</I> <li>Ron: <I>douăzeci</I> <li>Rus: <I>двадцать</I> <li>Spa: <I>veinte</I> <li>Swe: <I>tjugo</I> <li>Urd: <I>بیس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><div class=reveal> <I>2 1</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkDigits n2_Dig (mkDigits n1_Dig))</CODE> <li>Bul: <I>2 1</I> <li>Cat: <I>2 1</I> <li>Dan: <I>2 1</I> <li>Dut: <I>2 1</I> <li>Eng: <I>2 1</I> <li>Fin: <I>2 1</I> <li>Fre: <I>2 1</I> <li>Ger: <I>2 1</I> <li>Ita: <I>2 1</I> <li>Nor: <I>2 1</I> <li>Pol: <I>2 1</I> <li>Ron: <I>2 1</I> <li>Rus: <I>2 1</I> <li>Spa: <I>2 1</I> <li>Swe: <I>2 1</I> <li>Urd: <I>۱۲</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><A HREF="#Digit">Digit</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><I>five</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><div class=reveal> <I>almost five</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>почти петима</I> <li>Cat: <I>{s = table CommonRomance.Gender {</I> <li>Dan: <I>næsten fem</I> <li>Dut: <I>bijna vijf</I> <li>Eng: <I>almost five</I> <li>Fin: <I>melkein viisi</I> <li>Fre: <I>presque cinq</I> <li>Ger: <I>fast fünf</I> <li>Ita: <I>quasi cinque</I> <li>Nor: <I>nesten fem</I> <li>Pol: <I>prawie pięć</I> <li>Ron: <I>aproape cinci</I> <li>Rus: <I>почти пять</I> <li>Spa: <I>casi cinco</I> <li>Swe: <I>nästan fem</I> <li>Urd: <I>تقریبا پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNum</CODE></TD>
+<TD><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A> <CODE>-&gt;</CODE> <A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><div class=reveal> <I>almost five</I> <div class=popup> <ul> <li>API: <CODE>mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))</CODE> <li>Bul: <I>почти петима</I> <li>Cat: <I>{s = table CommonRomance.Gender {</I> <li>Dan: <I>næsten fem</I> <li>Dut: <I>bijna vijf</I> <li>Eng: <I>almost five</I> <li>Fin: <I>melkein viisi</I> <li>Fre: <I>presque cinq</I> <li>Ger: <I>fast fünf</I> <li>Ita: <I>quasi cinque</I> <li>Nor: <I>nesten fem</I> <li>Pol: <I>prawie pięć</I> <li>Ron: <I>aproape cinci</I> <li>Rus: <I>почти пять</I> <li>Spa: <I>casi cinco</I> <li>Swe: <I>nästan fem</I> <li>Urd: <I>تقریبا پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>pluralNum</CODE></TD>
+<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><I>plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>singularNum</CODE></TD>
+<TD><A HREF="#Num" TITLE="Num - number determining element">Num</A></TD>
+<TD><I>singular</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="Numeral"></A>
+<H2>Numeral - cardinal or ordinal in words</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkNumeral</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><I>eight (coerce 1..9)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNumeral</CODE></TD>
+<TD><A HREF="#Sub100">Sub100</A> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><I>twenty-five (coerce 1..99)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNumeral</CODE></TD>
+<TD><A HREF="#Sub1000">Sub1000</A> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><div class=reveal> <I>nine hundred and ninety - nine</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))</CODE> <li>Bul: <I>деветстотин деветдесет и деветима</I> <li>Cat: <I>nou -cents noranta- nou</I> <li>Dan: <I>ni hundrede og ni og halvfems</I> <li>Dut: <I>negenhonderdnegenennegentig</I> <li>Eng: <I>nine hundred and ninety - nine</I> <li>Fin: <I>yhdeksänsataayhdeksänkymmentäyhdeksän</I> <li>Fre: <I>neuf cent quatre-vingt - dix-neuf</I> <li>Ger: <I>neunhundertneunundneunzig</I> <li>Ita: <I>novecentonovantanove</I> <li>Nor: <I>ni hundre og nitti ni</I> <li>Pol: <I>dziewięćset dziewięćdziesiąt dziewięć</I> <li>Ron: <I>nouă sute nouăzeci şi nouă</I> <li>Rus: <I>девятьсот девяносто девять</I> <li>Spa: <I>novecientos noventa y nueve</I> <li>Swe: <I>niohundra nittionio</I> <li>Urd: <I>نو سو ننانوے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNumeral</CODE></TD>
+<TD><A HREF="#Sub1000">Sub1000</A> <CODE>-&gt;</CODE> <A HREF="#Sub1000">Sub1000</A> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><div class=reveal> <I>nine hundred and ninety - nine thousand nine hundred and ninety - nine</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))</CODE> <li>Bul: <I>деветстотин деветдесет и девет хиляди деветстотин деветдесет и деветима</I> <li>Cat: <I>nou -cents noranta- nou mil nou -cents noranta- nou</I> <li>Dan: <I>ni hundrede og ni og halvfems tusind og ni hundrede og ni og halvfems</I> <li>Dut: <I>negenhonderdnegenennegentigduizend negenhonderdnegenennegentig</I> <li>Eng: <I>nine hundred and ninety - nine thousand nine hundred and ninety - nine</I> <li>Fin: <I>yhdeksänsataayhdeksänkymmentäyhdeksäntuhatta yhdeksänsataayhdeksänkymmentäyhdeksän</I> <li>Fre: <I>neuf cent quatre-vingt - dix-neuf mille neuf cent quatre-vingt - dix-neuf</I> <li>Ger: <I>neunhundertneunundneunzigtausend neunhundertneunundneunzig</I> <li>Ita: <I>novecentonovantanovemila e novecentonovantanove</I> <li>Nor: <I>ni hundre og nitti ni tusen og ni hundre og nitti ni</I> <li>Pol: <I>dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć</I> <li>Ron: <I>nouă sute nouăzeci şi nouă de mii nouă sute nouăzeci şi nouă</I> <li>Rus: <I>девятьсот девяносто девять тысяч девятьсот девяносто девять</I> <li>Spa: <I>novecientos noventa y nueve mil novecientos noventa y nueve</I> <li>Swe: <I>niohundra nittioniotusen niohundra nittionio</I> <li>Urd: <I>نو لاكھ ننانوے ہزار نو سو ننانوے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkNumeral</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><I>thirty-five (given by "35"; range 1-999)</I></TD>
+</TR>
+<TR>
+<TD><CODE>thousandfoldNumeral</CODE></TD>
+<TD><A HREF="#Sub1000">Sub1000</A> <CODE>-&gt;</CODE> <A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A></TD>
+<TD><div class=reveal> <I>nine hundred and ninety - nine thousand</I> <div class=popup> <ul> <li>API: <CODE>thousandfoldNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))</CODE> <li>Bul: <I>деветстотин деветдесет и девет хиляди</I> <li>Cat: <I>nou -cents noranta- nou mil</I> <li>Dan: <I>ni hundrede og ni og halvfems tusind</I> <li>Dut: <I>negenhonderdnegenennegentigduizend</I> <li>Eng: <I>nine hundred and ninety - nine thousand</I> <li>Fin: <I>yhdeksänsataayhdeksänkymmentäyhdeksäntuhatta</I> <li>Fre: <I>neuf cent quatre-vingt - dix-neuf mille</I> <li>Ger: <I>neunhundertneunundneunzigtausend</I> <li>Ita: <I>novecentonovantanovemila</I> <li>Nor: <I>ni hundre og nitti ni tusen</I> <li>Pol: <I>dziewięćset dziewięćdziesiąt dziewięć tysięcy</I> <li>Ron: <I>nouă sute nouăzeci şi nouă de mii</I> <li>Rus: <I>девятьсот девяносто девять тысяч</I> <li>Spa: <I>novecientos noventa y nueve mil</I> <li>Swe: <I>niohundra nittionio tusen</I> <li>Urd: <I>نو لاكھ ننانوے ہزار</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Ord"></A>
+<H2>Ord - ordinal number (used in Det)</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkOrd</CODE></TD>
+<TD><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
+<TD><I>twentieth</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkOrd</CODE></TD>
+<TD><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
+<TD><I>51st</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkOrd</CODE></TD>
+<TD><A HREF="#Digit">Digit</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
+<TD><I>fifth</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkOrd</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord</A></TD>
+<TD><div class=reveal> <I>smallest</I> <div class=popup> <ul> <li>API: <CODE>mkOrd small_A</CODE> <li>Bul: <I>най - малък</I> <li>Cat: <I>més petit</I> <li>Dan: <I>mindste</I> <li>Dut: <I>kleinst</I> <li>Eng: <I>smallest</I> <li>Fin: <I>pienin</I> <li>Fre: <I>plus petit</I> <li>Ger: <I>kleinst</I> <li>Ita: <I>più piccolo</I> <li>Nor: <I>minste</I> <li>Pol: <I>najmniejszy</I> <li>Ron: <I>cel mai mic</I> <li>Rus: <I>маленький</I> <li>Spa: <I>más pequeño</I> <li>Swe: <I>minsta</I> <li>Urd: <I>سب سے چھوٹا</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="PConj"></A>
+<H2>PConj - phrase-beginning conjunction</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>but_PConj</CODE></TD>
+<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
+<TD><div class=reveal> <I>but</I> <div class=popup> <ul> <li>API: <CODE>but_PConj</CODE> <li>Bul: <I>но</I> <li>Cat: <I>però</I> <li>Dan: <I>men</I> <li>Dut: <I>maar</I> <li>Eng: <I>but</I> <li>Fin: <I>mutta</I> <li>Fre: <I>mais</I> <li>Ger: <I>aber</I> <li>Ita: <I>ma</I> <li>Nor: <I>men</I> <li>Pol: <I>ale</I> <li>Ron: <I>dar</I> <li>Rus: <I>но</I> <li>Spa: <I>pero</I> <li>Swe: <I>men</I> <li>Urd: <I>لیكن</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkPConj</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
+<TD><div class=reveal> <I>and now</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (mkPConj and_Conj) (mkUtt now_Adv)</CODE> <li>Bul: <I>и сега</I> <li>Cat: <I>i ara</I> <li>Dan: <I>og nu</I> <li>Dut: <I>en nu</I> <li>Eng: <I>and now</I> <li>Fin: <I>ja nyt</I> <li>Fre: <I>et maintenant</I> <li>Ger: <I>und jetzt</I> <li>Ita: <I>e adesso</I> <li>Nor: <I>og nå</I> <li>Pol: <I>i teraz</I> <li>Ron: <I>şi acum</I> <li>Rus: <I>и сейчас</I> <li>Spa: <I>y ahora</I> <li>Swe: <I>och nu</I> <li>Urd: <I>اور اب</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>otherwise_PConj</CODE></TD>
+<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
+<TD><div class=reveal> <I>otherwise</I> <div class=popup> <ul> <li>API: <CODE>otherwise_PConj</CODE> <li>Bul: <I>иначе</I> <li>Cat: <I>altrament</I> <li>Dan: <I>anderledes</I> <li>Dut: <I>anders</I> <li>Eng: <I>otherwise</I> <li>Fin: <I>muuten</I> <li>Fre: <I>autrement</I> <li>Ger: <I>sonst</I> <li>Ita: <I>altramente</I> <li>Nor: <I>annarledes</I> <li>Pol: <I>inaczej</I> <li>Ron: <I>altfel</I> <li>Rus: <I>иначе</I> <li>Spa: <I>otramente</I> <li>Swe: <I>annars</I> <li>Urd: <I>یا پھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>therefore_PConj</CODE></TD>
+<TD><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A></TD>
+<TD><div class=reveal> <I>therefore</I> <div class=popup> <ul> <li>API: <CODE>therefore_PConj</CODE> <li>Bul: <I>така че</I> <li>Cat: <I>per tant</I> <li>Dan: <I>derfor</I> <li>Dut: <I>daarom</I> <li>Eng: <I>therefore</I> <li>Fin: <I>siksi</I> <li>Fre: <I>donc</I> <li>Ger: <I>deshalb</I> <li>Ita: <I>quindi</I> <li>Nor: <I>derfor</I> <li>Pol: <I>dlatego</I> <li>Ron: <I>astfel</I> <li>Rus: <I>следовательно</I> <li>Spa: <I>por eso</I> <li>Swe: <I>därför</I> <li>Urd: <I>اس لیے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="PN"></A>
+<H2>PN - proper name</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="Phr"></A>
+<H2>Phr - phrase in a text</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkPhr</CODE></TD>
+<TD>(<A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj</A>) <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A> <CODE>-&gt;</CODE> (<A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A>) <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD><div class=reveal> <I>but sleep , my friend</I> <div class=popup> <ul> <li>API: <CODE>mkPhr but_PConj (mkUtt (mkImp sleep_V)) (mkVoc (mkNP i_Pron friend_N))</CODE> <li>Bul: <I>но спи , мой приятелю</I> <li>Cat: <I>però dorm , el meu amic</I> <li>Dan: <I>men sov , min ven</I> <li>Dut: <I>maar slaap , mijn vriend</I> <li>Eng: <I>but sleep , my friend</I> <li>Fin: <I>mutta nuku , minun ystäväni</I> <li>Fre: <I>mais dors , mon ami</I> <li>Ger: <I>aber schlaf , mein Freund</I> <li>Ita: <I>ma dormi , il mio amico</I> <li>Nor: <I>men sov , min venn</I> <li>Pol: <I>ale śpij , mój przyjacielu</I> <li>Ron: <I>dar dormi , prietenul meu</I> <li>Rus: <I>но спи , мой друг</I> <li>Spa: <I>pero duerme , mi amigo</I> <li>Swe: <I>men sov , min vän</I> <li>Urd: <I>لیكن سونا میرا دوست</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkPhr</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD><div class=reveal> <I>she won't sleep</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (mkS futureTense negativePol (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>тя няма да спи</I> <li>Cat: <I>ella no dormirà</I> <li>Dan: <I>hun vil ikke sove</I> <li>Dut: <I>ze zal niet geslapen hebben</I> <li>Eng: <I>she won't sleep</I> <li>Fin: <I>hän ei nuku</I> <li>Fre: <I>elle ne dormira pas</I> <li>Ger: <I>sie wird nicht schlafen</I> <li>Ita: <I>lei non dormirà</I> <li>Nor: <I>hun vil ikke sove</I> <li>Pol: <I>ona nie będzie spała</I> <li>Ron: <I>ea nu va dormi</I> <li>Rus: <I>она не будет спать</I> <li>Spa: <I>ella no dormirá</I> <li>Swe: <I>hon ska inte sova</I> <li>Urd: <I>وہ نہیں سوئے گی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkPhr</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkPhr</CODE></TD>
+<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD><div class=reveal> <I>would she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (mkQS conditionalTense (mkQCl (mkCl she_NP sleep_V)))</CODE> <li>Bul: <I>тя би ли спалa</I> <li>Cat: <I>ella dormiria</I> <li>Dan: <I>ville hun sove</I> <li>Dut: <I>zou ze geslapen hebben</I> <li>Eng: <I>would she sleep</I> <li>Fin: <I>nukkuisiko hän</I> <li>Fre: <I>elle dormirait</I> <li>Ger: <I>würde sie schlafen</I> <li>Ita: <I>lei dormirebbe</I> <li>Nor: <I>ville hun sove</I> <li>Pol: <I>czy ona spałaby</I> <li>Ron: <I>ea ar dormi</I> <li>Rus: <I>она спала бы</I> <li>Spa: <I>ella dormiría</I> <li>Swe: <I>skulle hon sova</I> <li>Urd: <I>كیا وہ شاید سوئے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkPhr</CODE></TD>
+<TD><A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A></TD>
+<TD><div class=reveal> <I>sleep</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (mkImp sleep_V)</CODE> <li>Bul: <I>спи</I> <li>Cat: <I>dorm</I> <li>Dan: <I>sov</I> <li>Dut: <I>slaap</I> <li>Eng: <I>sleep</I> <li>Fin: <I>nuku</I> <li>Fre: <I>dors</I> <li>Ger: <I>schlaf</I> <li>Ita: <I>dormi</I> <li>Nor: <I>sov</I> <li>Pol: <I>śpij</I> <li>Ron: <I>dormi</I> <li>Rus: <I>спи</I> <li>Spa: <I>duerme</I> <li>Swe: <I>sov</I> <li>Urd: <I>سونا</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Pol"></A>
+<H2>Pol - polarity</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>negativePol</CODE></TD>
+<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
+<TD><div class=reveal> <I>she doesn't sleep</I> <div class=popup> <ul> <li>API: <CODE>mkS negativePol (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя не спи</I> <li>Cat: <I>ella no dorm</I> <li>Dan: <I>hun sover ikke</I> <li>Dut: <I>ze slaapt niet</I> <li>Eng: <I>she doesn't sleep</I> <li>Fin: <I>hän ei nuku</I> <li>Fre: <I>elle ne dort pas</I> <li>Ger: <I>sie schläft nicht</I> <li>Ita: <I>lei non dorme</I> <li>Nor: <I>hun sover ikke</I> <li>Pol: <I>ona nie śpi</I> <li>Ron: <I>ea nu doarme</I> <li>Rus: <I>она не спдит</I> <li>Spa: <I>ella no duerme</I> <li>Swe: <I>hon sover inte</I> <li>Urd: <I>وہ نہیں سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>positivePol</CODE></TD>
+<TD><A HREF="#Pol" TITLE="Pol - polarity">Pol</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkS positivePol (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Predet"></A>
+<H2>Predet - predeterminer (prefixed Quant)</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>all_Predet</CODE></TD>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
+<TD><div class=reveal> <I>all the men</I> <div class=popup> <ul> <li>API: <CODE>mkNP all_Predet (mkNP thePl_Det man_N)</CODE> <li>Bul: <I>всичките мъжете</I> <li>Cat: <I>''</I> <li>Dan: <I>alle mændene</I> <li>Dut: <I>alle de mannen</I> <li>Eng: <I>all the men</I> <li>Fin: <I>kaikki miehet</I> <li>Fre: <I>''</I> <li>Ger: <I>alle die Männer</I> <li>Ita: <I>''</I> <li>Nor: <I>alle mennen</I> <li>Pol: <I>wszystkich mężczyzn</I> <li>Ron: <I>''</I> <li>Rus: <I>все человеки</I> <li>Spa: <I>''</I> <li>Swe: <I>alla männen</I> <li>Urd: <I>تمام آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>most_Predet</CODE></TD>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
+<TD><div class=reveal> <I>most</I> <div class=popup> <ul> <li>API: <CODE>most_Predet</CODE> <li>Bul: <I>повечето</I> <li>Cat: <I>la majoria</I> <li>Dan: <I>den meste</I> <li>Dut: <I>meeste</I> <li>Eng: <I>most</I> <li>Fin: <I>useinta</I> <li>Fre: <I>la plupart</I> <li>Ger: <I>meister</I> <li>Ita: <I>la maggior parte</I> <li>Nor: <I>den meste</I> <li>Pol: <I>wszystek</I> <li>Ron: <I>marea parte a</I> <li>Rus: <I>большинство</I> <li>Spa: <I>la mayor parte</I> <li>Swe: <I>den mesta</I> <li>Urd: <I>زیادہ تر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>not_Predet</CODE></TD>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
+<TD><div class=reveal> <I>not everybody</I> <div class=popup> <ul> <li>API: <CODE>mkNP not_Predet everybody_NP</CODE> <li>Bul: <I>*</I> <li>Cat: <I>''</I> <li>Dan: <I>*</I> <li>Dut: <I>niet alle</I> <li>Eng: <I>not everybody</I> <li>Fin: <I>ei jokainen</I> <li>Fre: <I>''</I> <li>Ger: <I>nicht jeder</I> <li>Ita: <I>''</I> <li>Nor: <I>*</I> <li>Pol: <I>żadnych wszystkich</I> <li>Ron: <I>''</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>inte alla</I> <li>Urd: <I>نہیں ہر كوی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>only_Predet</CODE></TD>
+<TD><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet</A></TD>
+<TD><div class=reveal> <I>only</I> <div class=popup> <ul> <li>API: <CODE>only_Predet</CODE> <li>Bul: <I>само</I> <li>Cat: <I>nomÈs</I> <li>Dan: <I>kun</I> <li>Dut: <I>slechts</I> <li>Eng: <I>only</I> <li>Fin: <I>vain</I> <li>Fre: <I>seulement</I> <li>Ger: <I>nur</I> <li>Ita: <I>soltanto</I> <li>Nor: <I>kun</I> <li>Pol: <I>tylko</I> <li>Ron: <I>doar</I> <li>Rus: <I>единственный</I> <li>Spa: <I>solamente</I> <li>Swe: <I>bara</I> <li>Urd: <I>صرف</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Prep"></A>
+<H2>Prep - preposition, or just case</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>above_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>above it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv above_Prep it_NP</CODE> <li>Bul: <I>над него</I> <li>Cat: <I>sobre ell</I> <li>Dan: <I>ovenfor det</I> <li>Dut: <I>boven het</I> <li>Eng: <I>above it</I> <li>Fin: <I>sen yläpuolella</I> <li>Fre: <I>au dessus de lui</I> <li>Ger: <I>über ihm</I> <li>Ita: <I>sopra di lui</I> <li>Nor: <I>ovenfor det</I> <li>Pol: <I>nad nim</I> <li>Ron: <I>deasupra lui</I> <li>Rus: <I>над ним</I> <li>Spa: <I>sobre él</I> <li>Swe: <I>ovanför det</I> <li>Urd: <I>اس اوپر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>after_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>after it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv after_Prep it_NP</CODE> <li>Bul: <I>след него</I> <li>Cat: <I>després de ell</I> <li>Dan: <I>efter det</I> <li>Dut: <I>na het</I> <li>Eng: <I>after it</I> <li>Fin: <I>sen jälkeen</I> <li>Fre: <I>après lui</I> <li>Ger: <I>nach ihm</I> <li>Ita: <I>dopo lui</I> <li>Nor: <I>etter det</I> <li>Pol: <I>po nim</I> <li>Ron: <I>după el</I> <li>Rus: <I>после него</I> <li>Spa: <I>despues de él</I> <li>Swe: <I>efter det</I> <li>Urd: <I>اس كے بعد</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>before_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>before it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv before_Prep it_NP</CODE> <li>Bul: <I>преди него</I> <li>Cat: <I>abans de ell</I> <li>Dan: <I>før det</I> <li>Dut: <I>voor het</I> <li>Eng: <I>before it</I> <li>Fin: <I>ennen sitä</I> <li>Fre: <I>avant lui</I> <li>Ger: <I>vor ihm</I> <li>Ita: <I>prima lui</I> <li>Nor: <I>før det</I> <li>Pol: <I>przed nim</I> <li>Ron: <I>înaintea lui</I> <li>Rus: <I>перед ним</I> <li>Spa: <I>antes de él</I> <li>Swe: <I>före det</I> <li>Urd: <I>اس پہلے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>behind_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>behind it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv behind_Prep it_NP</CODE> <li>Bul: <I>зад него</I> <li>Cat: <I>darrera de ell</I> <li>Dan: <I>bag det</I> <li>Dut: <I>achter het</I> <li>Eng: <I>behind it</I> <li>Fin: <I>sen takana</I> <li>Fre: <I>derrière lui</I> <li>Ger: <I>hinter ihm</I> <li>Ita: <I>dietro lui</I> <li>Nor: <I>bakom det</I> <li>Pol: <I>za nim</I> <li>Ron: <I>înapoia lui</I> <li>Rus: <I>за ним</I> <li>Spa: <I>detrás de él</I> <li>Swe: <I>bakom det</I> <li>Urd: <I>اس پیچھے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>between_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>between you and me</I> <div class=popup> <ul> <li>API: <CODE>mkAdv between_Prep (mkNP and_Conj you_NP i_NP)</CODE> <li>Bul: <I>между теб и мен</I> <li>Cat: <I>entre tu i mi</I> <li>Dan: <I>mellem dig og mig</I> <li>Dut: <I>tussen je en me</I> <li>Eng: <I>between you and me</I> <li>Fin: <I>sinun ja minun välissä</I> <li>Fre: <I>entre toi et moi</I> <li>Ger: <I>zwischen dir und mir</I> <li>Ita: <I>fra te e me</I> <li>Nor: <I>mellom deg og meg</I> <li>Pol: <I>między tobą i mną</I> <li>Ron: <I>între</I> <li>Rus: <I>между тобой и мной</I> <li>Spa: <I>entre tí y mí</I> <li>Swe: <I>mellan dig och mig</I> <li>Urd: <I>تو اور مجھ درمیاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>by8agent_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>by it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv by8agent_Prep it_NP</CODE> <li>Bul: <I>чрез него</I> <li>Cat: <I>per ell</I> <li>Dan: <I>af det</I> <li>Dut: <I>door het</I> <li>Eng: <I>by it</I> <li>Fin: <I>sen toimesta</I> <li>Fre: <I>par lui</I> <li>Ger: <I>durch es</I> <li>Ita: <I>da lui</I> <li>Nor: <I>av det</I> <li>Pol: <I>przez nie</I> <li>Ron: <I>de către el</I> <li>Rus: <I>с помощью него</I> <li>Spa: <I>por él</I> <li>Swe: <I>av det</I> <li>Urd: <I>اس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>by8means_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>by it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv by8means_Prep it_NP</CODE> <li>Bul: <I>чрез него</I> <li>Cat: <I>mitjançant ell</I> <li>Dan: <I>med det</I> <li>Dut: <I>met het</I> <li>Eng: <I>by it</I> <li>Fin: <I>sillä</I> <li>Fre: <I>par lui</I> <li>Ger: <I>mit ihm</I> <li>Ita: <I>per lui</I> <li>Nor: <I>med det</I> <li>Pol: <I>przez nie</I> <li>Ron: <I>de el</I> <li>Rus: <I>с помощью него</I> <li>Spa: <I>por él</I> <li>Swe: <I>med det</I> <li>Urd: <I>اس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>during_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>during it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv during_Prep it_NP</CODE> <li>Bul: <I>по време на него</I> <li>Cat: <I>durant ell</I> <li>Dan: <I>under det</I> <li>Dut: <I>tijdens het</I> <li>Eng: <I>during it</I> <li>Fin: <I>sen aikana</I> <li>Fre: <I>pendant lui</I> <li>Ger: <I>während seiner</I> <li>Ita: <I>durante lui</I> <li>Nor: <I>under det</I> <li>Pol: <I>podczas niego</I> <li>Ron: <I>în timpul lui</I> <li>Rus: <I>в течение него</I> <li>Spa: <I>durante él</I> <li>Swe: <I>under det</I> <li>Urd: <I>اس كے درمیاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>except_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>except it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv except_Prep it_NP</CODE> <li>Bul: <I>*</I> <li>Cat: <I>excepte ell</I> <li>Dan: <I>*</I> <li>Dut: <I>met uitzondering van het</I> <li>Eng: <I>except it</I> <li>Fin: <I>sitä lukuunottamatta</I> <li>Fre: <I>excepté lui</I> <li>Ger: <I>außer ihm</I> <li>Ita: <I>eccetto lui</I> <li>Nor: <I>*</I> <li>Pol: <I>z wyjątkiem nie</I> <li>Ron: <I>cu excepţia lui</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>utom det</I> <li>Urd: <I>اس سواے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>for_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>for it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv for_Prep it_NP</CODE> <li>Bul: <I>за него</I> <li>Cat: <I>per a ell</I> <li>Dan: <I>for det</I> <li>Dut: <I>voor het</I> <li>Eng: <I>for it</I> <li>Fin: <I>sille</I> <li>Fre: <I>pour lui</I> <li>Ger: <I>für es</I> <li>Ita: <I>per lui</I> <li>Nor: <I>for det</I> <li>Pol: <I>dla niego</I> <li>Ron: <I>pentru el</I> <li>Rus: <I>*</I> <li>Spa: <I>para él</I> <li>Swe: <I>för det</I> <li>Urd: <I>اس كیلیے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>from_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>from it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv from_Prep it_NP</CODE> <li>Bul: <I>от него</I> <li>Cat: <I>de ell</I> <li>Dan: <I>fra det</I> <li>Dut: <I>uit het</I> <li>Eng: <I>from it</I> <li>Fin: <I>siitä</I> <li>Fre: <I>de lui</I> <li>Ger: <I>aus ihm</I> <li>Ita: <I>da lui</I> <li>Nor: <I>fra det</I> <li>Pol: <I>z niego</I> <li>Ron: <I>de la el</I> <li>Rus: <I>от него</I> <li>Spa: <I>de él</I> <li>Swe: <I>från det</I> <li>Urd: <I>اس سے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>in8front_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>in front of it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv in8front_Prep it_NP</CODE> <li>Bul: <I>пред него</I> <li>Cat: <I>davant de ell</I> <li>Dan: <I>foran det</I> <li>Dut: <I>voor het</I> <li>Eng: <I>in front of it</I> <li>Fin: <I>sen edessä</I> <li>Fre: <I>devant lui</I> <li>Ger: <I>vor ihm</I> <li>Ita: <I>davanti lui</I> <li>Nor: <I>foran det</I> <li>Pol: <I>przed nim</I> <li>Ron: <I>în faţa lui</I> <li>Rus: <I>перед ним</I> <li>Spa: <I>delante de él</I> <li>Swe: <I>framför det</I> <li>Urd: <I>اس كے سامنے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>in_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>in it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv in_Prep it_NP</CODE> <li>Bul: <I>в него</I> <li>Cat: <I>en ell</I> <li>Dan: <I>i det</I> <li>Dut: <I>in het</I> <li>Eng: <I>in it</I> <li>Fin: <I>siinä</I> <li>Fre: <I>dans lui</I> <li>Ger: <I>in ihm</I> <li>Ita: <I>in lui</I> <li>Nor: <I>i det</I> <li>Pol: <I>w nim</I> <li>Ron: <I>în el</I> <li>Rus: <I>в нём</I> <li>Spa: <I>en él</I> <li>Swe: <I>i det</I> <li>Urd: <I>اس میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>on_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>on it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv on_Prep it_NP</CODE> <li>Bul: <I>на него</I> <li>Cat: <I>sobre ell</I> <li>Dan: <I>på det</I> <li>Dut: <I>op het</I> <li>Eng: <I>on it</I> <li>Fin: <I>sillä</I> <li>Fre: <I>sur lui</I> <li>Ger: <I>auf ihm</I> <li>Ita: <I>su lui</I> <li>Nor: <I>på det</I> <li>Pol: <I>nа nim</I> <li>Ron: <I>pe el</I> <li>Rus: <I>на нём</I> <li>Spa: <I>sobre él</I> <li>Swe: <I>på det</I> <li>Urd: <I>اس پر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>part_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>of it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv part_Prep it_NP</CODE> <li>Bul: <I>от него</I> <li>Cat: <I>de ell</I> <li>Dan: <I>af det</I> <li>Dut: <I>van het</I> <li>Eng: <I>of it</I> <li>Fin: <I>sitä</I> <li>Fre: <I>de lui</I> <li>Ger: <I>von ihm</I> <li>Ita: <I>di lui</I> <li>Nor: <I>av det</I> <li>Pol: <I>z niego</I> <li>Ron: <I>din el</I> <li>Rus: <I>оно</I> <li>Spa: <I>de él</I> <li>Swe: <I>av det</I> <li>Urd: <I>اس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>possess_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>of it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv possess_Prep it_NP</CODE> <li>Bul: <I>му</I> <li>Cat: <I>de ell</I> <li>Dan: <I>af det</I> <li>Dut: <I>van het</I> <li>Eng: <I>of it</I> <li>Fin: <I>sen</I> <li>Fre: <I>de lui</I> <li>Ger: <I>von ihm</I> <li>Ita: <I>di lui</I> <li>Nor: <I>av det</I> <li>Pol: <I>jego</I> <li>Ron: <I>lui</I> <li>Rus: <I>него</I> <li>Spa: <I>de él</I> <li>Swe: <I>av det</I> <li>Urd: <I>اس كا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>through_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>through it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv through_Prep it_NP</CODE> <li>Bul: <I>през него</I> <li>Cat: <I>mitjançant ell</I> <li>Dan: <I>gennem det</I> <li>Dut: <I>door het</I> <li>Eng: <I>through it</I> <li>Fin: <I>sen kautta</I> <li>Fre: <I>par lui</I> <li>Ger: <I>durch es</I> <li>Ita: <I>per lui</I> <li>Nor: <I>gjennom det</I> <li>Pol: <I>przez nie</I> <li>Ron: <I>prin el</I> <li>Rus: <I>через него</I> <li>Spa: <I>por él</I> <li>Swe: <I>genom det</I> <li>Urd: <I>اس میں سے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>to_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>to it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv to_Prep it_NP</CODE> <li>Bul: <I>до него</I> <li>Cat: <I>a ell</I> <li>Dan: <I>til det</I> <li>Dut: <I>naar het</I> <li>Eng: <I>to it</I> <li>Fin: <I>siihen</I> <li>Fre: <I>à lui</I> <li>Ger: <I>nach ihm</I> <li>Ita: <I>a lui</I> <li>Nor: <I>til det</I> <li>Pol: <I>do niego</I> <li>Ron: <I>la el</I> <li>Rus: <I>к нему</I> <li>Spa: <I>a él</I> <li>Swe: <I>till det</I> <li>Urd: <I>اس كو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>under_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>under it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv under_Prep it_NP</CODE> <li>Bul: <I>под него</I> <li>Cat: <I>sota ell</I> <li>Dan: <I>under det</I> <li>Dut: <I>onder het</I> <li>Eng: <I>under it</I> <li>Fin: <I>sen alla</I> <li>Fre: <I>sous lui</I> <li>Ger: <I>unter ihm</I> <li>Ita: <I>sotto lui</I> <li>Nor: <I>under det</I> <li>Pol: <I>pod nim</I> <li>Ron: <I>sub el</I> <li>Rus: <I>под ним</I> <li>Spa: <I>bajo él</I> <li>Swe: <I>under det</I> <li>Urd: <I>اس نیچے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>with_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>with it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv with_Prep it_NP</CODE> <li>Bul: <I>с него</I> <li>Cat: <I>amb ell</I> <li>Dan: <I>med det</I> <li>Dut: <I>met het</I> <li>Eng: <I>with it</I> <li>Fin: <I>sen kanssa</I> <li>Fre: <I>avec lui</I> <li>Ger: <I>mit ihm</I> <li>Ita: <I>con lui</I> <li>Nor: <I>med det</I> <li>Pol: <I>z nim</I> <li>Ron: <I>cu el</I> <li>Rus: <I>с ним</I> <li>Spa: <I>con él</I> <li>Swe: <I>med det</I> <li>Urd: <I>اس كے ساتھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>without_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><div class=reveal> <I>without it</I> <div class=popup> <ul> <li>API: <CODE>mkAdv without_Prep it_NP</CODE> <li>Bul: <I>без него</I> <li>Cat: <I>sense ell</I> <li>Dan: <I>uden det</I> <li>Dut: <I>zonder het</I> <li>Eng: <I>without it</I> <li>Fin: <I>ilman sitä</I> <li>Fre: <I>sans lui</I> <li>Ger: <I>ohne es</I> <li>Ita: <I>senza lui</I> <li>Nor: <I>uten det</I> <li>Pol: <I>bez niego</I> <li>Ron: <I>fără el</I> <li>Rus: <I>без него</I> <li>Spa: <I>sin él</I> <li>Swe: <I>utan det</I> <li>Urd: <I>اس كے بغیر</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Pron"></A>
+<H2>Pron - personal pronoun</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>he_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>he</I> <div class=popup> <ul> <li>API: <CODE>he_Pron</CODE> <li>Bul: <I>той</I> <li>Cat: <I>''</I> <li>Dan: <I>han</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>he</I> <li>Fin: <I>hän</I> <li>Fre: <I>''</I> <li>Ger: <I>er</I> <li>Ita: <I>''</I> <li>Nor: <I>han</I> <li>Pol: <I>niego</I> <li>Ron: <I>el</I> <li>Rus: <I>он</I> <li>Spa: <I>''</I> <li>Swe: <I>han</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>i_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>I</I> <div class=popup> <ul> <li>API: <CODE>i_Pron</CODE> <li>Bul: <I>аз</I> <li>Cat: <I>''</I> <li>Dan: <I>jeg</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>I</I> <li>Fin: <I>minä</I> <li>Fre: <I>''</I> <li>Ger: <I>ich</I> <li>Ita: <I>''</I> <li>Nor: <I>jeg</I> <li>Pol: <I>mnie</I> <li>Ron: <I>eu</I> <li>Rus: <I>я</I> <li>Spa: <I>''</I> <li>Swe: <I>jag</I> <li>Urd: <I>میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>it_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>it</I> <div class=popup> <ul> <li>API: <CODE>it_Pron</CODE> <li>Bul: <I>то</I> <li>Cat: <I>''</I> <li>Dan: <I>det</I> <li>Dut: <I>ResDut.Neutr</I> <li>Eng: <I>it</I> <li>Fin: <I>se</I> <li>Fre: <I>''</I> <li>Ger: <I>es</I> <li>Ita: <I>''</I> <li>Nor: <I>det</I> <li>Pol: <I>niego</I> <li>Ron: <I>''</I> <li>Rus: <I>оно</I> <li>Spa: <I>''</I> <li>Swe: <I>det</I> <li>Urd: <I>یہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>she_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>she</I> <div class=popup> <ul> <li>API: <CODE>she_Pron</CODE> <li>Bul: <I>тя</I> <li>Cat: <I>''</I> <li>Dan: <I>hun</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>she</I> <li>Fin: <I>hän</I> <li>Fre: <I>''</I> <li>Ger: <I>sie</I> <li>Ita: <I>''</I> <li>Nor: <I>hun</I> <li>Pol: <I>niej</I> <li>Ron: <I>ea</I> <li>Rus: <I>она</I> <li>Spa: <I>''</I> <li>Swe: <I>hon</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>they_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>they</I> <div class=popup> <ul> <li>API: <CODE>they_Pron</CODE> <li>Bul: <I>те</I> <li>Cat: <I>''</I> <li>Dan: <I>de</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>they</I> <li>Fin: <I>he</I> <li>Fre: <I>''</I> <li>Ger: <I>sie</I> <li>Ita: <I>''</I> <li>Nor: <I>de</I> <li>Pol: <I>nich</I> <li>Ron: <I>ei</I> <li>Rus: <I>они</I> <li>Spa: <I>''</I> <li>Swe: <I>de</I> <li>Urd: <I>وہ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>we_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>we</I> <div class=popup> <ul> <li>API: <CODE>we_Pron</CODE> <li>Bul: <I>ние</I> <li>Cat: <I>''</I> <li>Dan: <I>vi</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>we</I> <li>Fin: <I>me</I> <li>Fre: <I>''</I> <li>Ger: <I>wir</I> <li>Ita: <I>''</I> <li>Nor: <I>vi</I> <li>Pol: <I>nas</I> <li>Ron: <I>noi</I> <li>Rus: <I>мы</I> <li>Spa: <I>''</I> <li>Swe: <I>vi</I> <li>Urd: <I>ہم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>youPl_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>youPl_Pron</CODE> <li>Bul: <I>вие</I> <li>Cat: <I>''</I> <li>Dan: <I>I</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>you</I> <li>Fin: <I>te</I> <li>Fre: <I>''</I> <li>Ger: <I>ihr</I> <li>Ita: <I>''</I> <li>Nor: <I>dere</I> <li>Pol: <I>was</I> <li>Ron: <I>voi</I> <li>Rus: <I>вы</I> <li>Spa: <I>''</I> <li>Swe: <I>ni</I> <li>Urd: <I>تم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>youPol_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>youPol_Pron</CODE> <li>Bul: <I>вие</I> <li>Cat: <I>''</I> <li>Dan: <I>De</I> <li>Dut: <I>ResDut.Utr</I> <li>Eng: <I>you</I> <li>Fin: <I>te</I> <li>Fre: <I>''</I> <li>Ger: <I>Sie</I> <li>Ita: <I>''</I> <li>Nor: <I>Dere</I> <li>Pol: <I>ciebie</I> <li>Ron: <I>dumneavoastră</I> <li>Rus: <I>вы</I> <li>Spa: <I>''</I> <li>Swe: <I>ni</I> <li>Urd: <I>آپ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>youSg_Pron</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><div class=reveal> <I>you</I> <div class=popup> <ul> <li>API: <CODE>youSg_Pron</CODE> <li>Bul: <I>ти</I> <li>Cat: <I>''</I> <li>Dan: <I>du</I> <li>Dut: <I>ResDut.Neutr</I> <li>Eng: <I>you</I> <li>Fin: <I>sinä</I> <li>Fre: <I>''</I> <li>Ger: <I>du</I> <li>Ita: <I>''</I> <li>Nor: <I>du</I> <li>Pol: <I>ciebie</I> <li>Ron: <I>tu</I> <li>Rus: <I>ты</I> <li>Spa: <I>''</I> <li>Swe: <I>du</I> <li>Urd: <I>تو</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Punct"></A>
+<H2>Punct</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>exclMarkPunct</CODE></TD>
+<TD><A HREF="#Punct">Punct</A></TD>
+<TD><div class=reveal> <I>yes !</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkPhr yes_Utt) exclMarkPunct</CODE> <li>Bul: <I>да !</I> <li>Cat: <I>sí !</I> <li>Dan: <I>ja !</I> <li>Dut: <I>ja !</I> <li>Eng: <I>yes !</I> <li>Fin: <I>kyllä !</I> <li>Fre: <I>oui !</I> <li>Ger: <I>ja !</I> <li>Ita: <I>sì !</I> <li>Nor: <I>ja !</I> <li>Pol: <I>tak !</I> <li>Ron: <I>da !</I> <li>Rus: <I>Да !</I> <li>Spa: <I>¡ sí !</I> <li>Swe: <I>ja !</I> <li>Urd: <I>ہاں !</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>fullStopPunct</CODE></TD>
+<TD><A HREF="#Punct">Punct</A></TD>
+<TD><div class=reveal> <I>yes .</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkPhr yes_Utt) fullStopPunct</CODE> <li>Bul: <I>да .</I> <li>Cat: <I>sí .</I> <li>Dan: <I>ja .</I> <li>Dut: <I>ja .</I> <li>Eng: <I>yes .</I> <li>Fin: <I>kyllä .</I> <li>Fre: <I>oui .</I> <li>Ger: <I>ja .</I> <li>Ita: <I>sì .</I> <li>Nor: <I>ja .</I> <li>Pol: <I>tak .</I> <li>Ron: <I>da .</I> <li>Rus: <I>Да .</I> <li>Spa: <I>sí .</I> <li>Swe: <I>ja .</I> <li>Urd: <I>ہاں .</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>questMarkPunct</CODE></TD>
+<TD><A HREF="#Punct">Punct</A></TD>
+<TD><div class=reveal> <I>yes ?</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkPhr yes_Utt) questMarkPunct</CODE> <li>Bul: <I>да ?</I> <li>Cat: <I>sí ?</I> <li>Dan: <I>ja ?</I> <li>Dut: <I>ja ?</I> <li>Eng: <I>yes ?</I> <li>Fin: <I>kyllä ?</I> <li>Fre: <I>oui ?</I> <li>Ger: <I>ja ?</I> <li>Ita: <I>sì ?</I> <li>Nor: <I>ja ?</I> <li>Pol: <I>tak ?</I> <li>Ron: <I>da ?</I> <li>Rus: <I>Да ?</I> <li>Spa: <I>¿ sí ?</I> <li>Swe: <I>ja ?</I> <li>Urd: <I>ہاں ?</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="QCl"></A>
+<H2>QCl - question clause, with all tenses</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>does she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи ли</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>sover hun</I> <li>Dut: <I>slaapt ze</I> <li>Eng: <I>does she sleep</I> <li>Fin: <I>nukkuuko hän</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>schläft sie</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>sover hun</I> <li>Pol: <I>czy ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>sover hon</I> <li>Urd: <I>كیا وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who always sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkVP always_AdV (mkVP sleep_V))</CODE> <li>Bul: <I>кой винаги спи</I> <li>Cat: <I>qui dorm sempre</I> <li>Dan: <I>hvem sover altid</I> <li>Dut: <I>wie slaapt altijd</I> <li>Eng: <I>who always sleeps</I> <li>Fin: <I>kuka nukkuu aina</I> <li>Fre: <I>qui dort toujours</I> <li>Ger: <I>wer schläft immer</I> <li>Ita: <I>chi dorme sempre</I> <li>Nor: <I>hvem sover altid</I> <li>Pol: <I>kto zawsze śpi</I> <li>Ron: <I>cine doarme mereu</I> <li>Rus: <I>кто всегда спдит</I> <li>Spa: <I>quién duerme siempre</I> <li>Swe: <I>vem sover alltid</I> <li>Urd: <I>كون ہمیشہ سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP sleep_V</CODE> <li>Bul: <I>кой спи</I> <li>Cat: <I>qui dorm</I> <li>Dan: <I>hvem sover</I> <li>Dut: <I>wie slaapt</I> <li>Eng: <I>who sleeps</I> <li>Fin: <I>kuka nukkuu</I> <li>Fre: <I>qui dort</I> <li>Ger: <I>wer schläft</I> <li>Ita: <I>chi dorme</I> <li>Nor: <I>hvem sover</I> <li>Pol: <I>kto śpi</I> <li>Ron: <I>cine doarme</I> <li>Rus: <I>кто спдит</I> <li>Spa: <I>quién duerme</I> <li>Swe: <I>vem sover</I> <li>Urd: <I>كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who loves her</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP love_V2 she_NP</CODE> <li>Bul: <I>кой обича нея</I> <li>Cat: <I>qui la estima</I> <li>Dan: <I>hvem elsker hende</I> <li>Dut: <I>wie heeft haar lief</I> <li>Eng: <I>who loves her</I> <li>Fin: <I>kuka rakastaa häntä</I> <li>Fre: <I>qui l' aime</I> <li>Ger: <I>wer liebt sie</I> <li>Ita: <I>chi la ama</I> <li>Nor: <I>hvem elsker henne</I> <li>Pol: <I>kto kocha ją</I> <li>Ron: <I>cine o iubeşte</I> <li>Rus: <I>кто любдит её</I> <li>Spa: <I>quién la ama</I> <li>Swe: <I>vem älskar henne</I> <li>Urd: <I>كون اس كو پیار كرتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who sends it to her</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP send_V3 it_NP she_NP</CODE> <li>Bul: <I>кой праща него до нея</I> <li>Cat: <I>qui ho li envia</I> <li>Dan: <I>hvem sender det til hende</I> <li>Dut: <I>wie stuurt het naar haar</I> <li>Eng: <I>who sends it to her</I> <li>Fin: <I>kuka lähettää sen hänelle</I> <li>Fre: <I>qui le lui envoie</I> <li>Ger: <I>wer schickt es ihr</I> <li>Ita: <I>chi lo le manda</I> <li>Nor: <I>hvem sender det til henne</I> <li>Pol: <I>kto wysyła do niej je</I> <li>Ron: <I>cine i -l trimite</I> <li>Rus: <I>кто посылает ней его</I> <li>Spa: <I>quién lo le manda</I> <li>Swe: <I>vem skickar det till henne</I> <li>Urd: <I>كون اس كو اس كو بھیجتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who wants to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP want_VV (mkVP sleep_V)</CODE> <li>Bul: <I>кой иска да спи</I> <li>Cat: <I>qui vol dormir</I> <li>Dan: <I>hvem vil sove</I> <li>Dut: <I>wie wil slapen</I> <li>Eng: <I>who wants to sleep</I> <li>Fin: <I>kuka tahtoo nukkua</I> <li>Fre: <I>qui veut dormir</I> <li>Ger: <I>wer will schlafen</I> <li>Ita: <I>chi vuole dormire</I> <li>Nor: <I>hvem vil sove</I> <li>Pol: <I>kto chce spać</I> <li>Ron: <I>cine vrea sã doarmă</I> <li>Rus: <I>кто хоччет спать</I> <li>Spa: <I>quién quiere dormir</I> <li>Swe: <I>vem vill sova</I> <li>Urd: <I>كون سونا چاہتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who says that I sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP say_VS (mkS (mkCl i_NP sleep_V))</CODE> <li>Bul: <I>кой казва , че аз спя</I> <li>Cat: <I>qui diu que jo dormo</I> <li>Dan: <I>hvem siger at jeg sover</I> <li>Dut: <I>wie zegt dat ik slaap</I> <li>Eng: <I>who says that I sleep</I> <li>Fin: <I>kuka sanoo että minä nukun</I> <li>Fre: <I>qui dit que je dors</I> <li>Ger: <I>wer sagt daß ich schlafe</I> <li>Ita: <I>chi dice che io dormo</I> <li>Nor: <I>hvem sier at jeg sover</I> <li>Pol: <I>kto mówi , że ja śpię</I> <li>Ron: <I>cine spune cã eu dorm</I> <li>Rus: <I>кто говордит , что я сплю</I> <li>Spa: <I>quién dice que yo duermo</I> <li>Swe: <I>vem säger att jag sover</I> <li>Urd: <I>كون كہتا ہے كہ میں سوتا ہوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who wonders who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP wonder_VQ (mkQS (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>кой се учудва кой спи</I> <li>Cat: <I>qui se pregunta qui dorm</I> <li>Dan: <I>hvem undres hvem som sover</I> <li>Dut: <I>wie vraagt zich af wie slaapt</I> <li>Eng: <I>who wonders who sleeps</I> <li>Fin: <I>kuka ihmettelee kuka nukkuu</I> <li>Fre: <I>qui s' étonne qui dort</I> <li>Ger: <I>wer wundert sich wer schläft</I> <li>Ita: <I>chi si domanda chi dorme</I> <li>Nor: <I>hvem undrer hvem som sover</I> <li>Pol: <I>kto zastanawia się , kto śpi</I> <li>Ron: <I>cine se întreabă cine doarme</I> <li>Rus: <I>кто интересует кто спдит</I> <li>Spa: <I>quién se pregunta quién duerme</I> <li>Swe: <I>vem undrar vem som sover</I> <li>Urd: <I>كون حیران ہوتا ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who becomes old</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP become_VA old_A</CODE> <li>Bul: <I>кой става стар</I> <li>Cat: <I>qui se torna vell</I> <li>Dan: <I>hvem bliver gammel</I> <li>Dut: <I>wie wordt oud</I> <li>Eng: <I>who becomes old</I> <li>Fin: <I>kuka tulee vanhaksi</I> <li>Fre: <I>qui devient vieux</I> <li>Ger: <I>wer wird alt</I> <li>Ita: <I>chi diventa vecchio</I> <li>Nor: <I>hvem blir gammel</I> <li>Pol: <I>kto staje się stary</I> <li>Ron: <I>cine devine vechi</I> <li>Rus: <I>кто становдит старым</I> <li>Spa: <I>quién se converte viejo</I> <li>Swe: <I>vem blir gammal</I> <li>Urd: <I>كون بوڑھا بنتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who becomes very old</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP become_VA (mkAP very_AdA old_A)</CODE> <li>Bul: <I>кой става много стар</I> <li>Cat: <I>qui se torna molt vell</I> <li>Dan: <I>hvem bliver meget gammel</I> <li>Dut: <I>wie wordt erg oud</I> <li>Eng: <I>who becomes very old</I> <li>Fin: <I>kuka tulee erittäin vanhaksi</I> <li>Fre: <I>qui devient très vieux</I> <li>Ger: <I>wer wird sehr alt</I> <li>Ita: <I>chi diventa molto vecchio</I> <li>Nor: <I>hvem blir mye gammel</I> <li>Pol: <I>kto staje się bardzo stary</I> <li>Ron: <I>cine devine foarte vechi</I> <li>Rus: <I>кто становдит очень старым</I> <li>Spa: <I>quién se converte muy viejo</I> <li>Swe: <I>vem blir mycket gammal</I> <li>Urd: <I>كون بہت بوڑھا بنتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who paints it red</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP paint_V2A it_NP red_A</CODE> <li>Bul: <I>кой рисува него червено</I> <li>Cat: <I>qui ho pinta en vermell</I> <li>Dan: <I>hvem maler det rødt</I> <li>Dut: <I>wie schildeert het rood</I> <li>Eng: <I>who paints it red</I> <li>Fin: <I>kuka maalaa sen punaiseksi</I> <li>Fre: <I>qui le peint en rouge</I> <li>Ger: <I>wer malt es rot</I> <li>Ita: <I>chi lo dipinge rosso</I> <li>Nor: <I>hvem maler det rødt</I> <li>Pol: <I>kto maluje je na czerwono</I> <li>Ron: <I>cine îl pictează roşu</I> <li>Rus: <I>кто рисует красным его</I> <li>Spa: <I>quién lo pinta en rojo</I> <li>Swe: <I>vem målar det rött</I> <li>Urd: <I>كون اس كو لال رنگ كرتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who paints it very red</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP paint_V2A it_NP (mkAP very_AdA red_A)</CODE> <li>Bul: <I>кой рисува него много червено</I> <li>Cat: <I>qui ho pinta en molt vermell</I> <li>Dan: <I>hvem maler det meget rødt</I> <li>Dut: <I>wie schildeert het erg rood</I> <li>Eng: <I>who paints it very red</I> <li>Fin: <I>kuka maalaa sen erittäin punaiseksi</I> <li>Fre: <I>qui le peint en très rouge</I> <li>Ger: <I>wer malt es sehr rot</I> <li>Ita: <I>chi lo dipinge molto rosso</I> <li>Nor: <I>hvem maler det mye rødt</I> <li>Pol: <I>kto maluje je na bardzo czerwono</I> <li>Ron: <I>cine îl pictează foarte roşu</I> <li>Rus: <I>кто рисует очень красным его</I> <li>Spa: <I>quién lo pinta en muy rojo</I> <li>Swe: <I>vem målar det mycket rött</I> <li>Urd: <I>كون اس كو بہت لال رنگ كرتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who answers to him that we sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))</CODE> <li>Bul: <I>кой отговаря му , че ние спим</I> <li>Cat: <I>qui li respon que nosaltres dormim</I> <li>Dan: <I>hvem svarer til ham at vi sover</I> <li>Dut: <I>wie antwoordt hem dat we slapen</I> <li>Eng: <I>who answers to him that we sleep</I> <li>Fin: <I>kuka vastaa hänelle että me nukumme</I> <li>Fre: <I>qui lui répond que nous dormons</I> <li>Ger: <I>wer antwortet ihm daß wir schlafen</I> <li>Ita: <I>chi gli risponde che noi dormiamo</I> <li>Nor: <I>hvem svarer til ham at vi sover</I> <li>Pol: <I>kto odpowiada jemu , że my śpimy</I> <li>Ron: <I>cine îi răspunde cã noi dormim</I> <li>Rus: <I>кто отвечает , что мы спдим его</I> <li>Spa: <I>quién le responde que nosotros dormimos</I> <li>Swe: <I>vem svarar till honom att vi sover</I> <li>Urd: <I>كون اس كو جواب دیتا ہے كہ ہم سوتے ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who asks him who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>кой пита него кой спи</I> <li>Cat: <I>qui li pregunta qui dorm</I> <li>Dan: <I>hvem spørger ham hvem som sover</I> <li>Dut: <I>wie vraagt hem wie slaapt</I> <li>Eng: <I>who asks him who sleeps</I> <li>Fin: <I>kuka kysyy häneltä kuka nukkuu</I> <li>Fre: <I>qui lui demande qui dort</I> <li>Ger: <I>wer fragt ihn wer schläft</I> <li>Ita: <I>chi gli chiede chi dorme</I> <li>Nor: <I>hvem spørr ham hvem som sover</I> <li>Pol: <I>kto pyta jego , kto śpi</I> <li>Ron: <I>cine îl întreabă cine doarme</I> <li>Rus: <I>кто спрашивает кто спдит его</I> <li>Spa: <I>quién le pregunta quién duerme</I> <li>Swe: <I>vem frågar honom vem som sover</I> <li>Urd: <I>كون اس سے پوچھتا ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who begs him to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP beg_V2V he_NP (mkVP sleep_V)</CODE> <li>Bul: <I>кой моли него да спи</I> <li>Cat: <I>qui el demana a dormir</I> <li>Dan: <I>hvem beder ham at sove</I> <li>Dut: <I>wie smeekt hem te slapen</I> <li>Eng: <I>who begs him to sleep</I> <li>Fin: <I>kuka pyytää häntä nukkumaan</I> <li>Fre: <I>qui le demande à dormir</I> <li>Ger: <I>wer bittet ihn zu schlafen</I> <li>Ita: <I>chi lo prega di dormire</I> <li>Nor: <I>hvem ber ham att sove</I> <li>Pol: <I>*</I> <li>Ron: <I>cine îl roagă sã doarmă</I> <li>Rus: <I>кто просит спать его</I> <li>Spa: <I>quién lo roga a dormir</I> <li>Swe: <I>vem ber honom att sova</I> <li>Urd: <I>كون اس سے سونے كی التجا كرتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is old</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP old_A</CODE> <li>Bul: <I>кой е стар</I> <li>Cat: <I>qui és vell</I> <li>Dan: <I>hvem er gammel</I> <li>Dut: <I>wie is oud</I> <li>Eng: <I>who is old</I> <li>Fin: <I>kuka on vanha</I> <li>Fre: <I>qui est vieux</I> <li>Ger: <I>wer ist alt</I> <li>Ita: <I>chi è vecchio</I> <li>Nor: <I>hvem er gammel</I> <li>Pol: <I>kto jest stary</I> <li>Ron: <I>cine este vechi</I> <li>Rus: <I>кто старый</I> <li>Spa: <I>quién es viejo</I> <li>Swe: <I>vem är gammal</I> <li>Urd: <I>كون بوڑھا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is older than he</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP old_A he_NP</CODE> <li>Bul: <I>кой е по - стар от него</I> <li>Cat: <I>qui és més vell que ell</I> <li>Dan: <I>hvem er ældre end han</I> <li>Dut: <I>wie is ouder dan hij</I> <li>Eng: <I>who is older than he</I> <li>Fin: <I>kuka on vanhempi kuin hän</I> <li>Fre: <I>qui est plus vieux que lui</I> <li>Ger: <I>wer ist älter als er</I> <li>Ita: <I>chi è più vecchio di lui</I> <li>Nor: <I>hvem er eldre enn han</I> <li>Pol: <I>kto jest starszy niż on</I> <li>Ron: <I>cine este mai vechi decât el</I> <li>Rus: <I>кто старше него</I> <li>Spa: <I>quién es más viejo que él</I> <li>Swe: <I>vem är äldre än han</I> <li>Urd: <I>كون اس سے بوڑھا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is married to him</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP married_A2 he_NP</CODE> <li>Bul: <I>кой е женен за него</I> <li>Cat: <I>qui és casata a ell</I> <li>Dan: <I>hvem er gift med ham</I> <li>Dut: <I>wie is getrouwd met hem</I> <li>Eng: <I>who is married to him</I> <li>Fin: <I>kuka on avioitunut hänen kanssa</I> <li>Fre: <I>qui est marié à lui</I> <li>Ger: <I>wer ist verheiratet mit ihm</I> <li>Ita: <I>chi è sposato con lui</I> <li>Nor: <I>hvem er gift med ham</I> <li>Pol: <I>kto jest zaślubiony jemu</I> <li>Ron: <I>cine este căsătorit cu el</I> <li>Rus: <I>кто замужем за им</I> <li>Spa: <I>quién es casado a él</I> <li>Swe: <I>vem är gift med honom</I> <li>Urd: <I>كون اس سے [شادی كرنa] ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is very old</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkAP very_AdA old_A)</CODE> <li>Bul: <I>кой е много стар</I> <li>Cat: <I>qui és molt vell</I> <li>Dan: <I>hvem er meget gammel</I> <li>Dut: <I>wie is erg oud</I> <li>Eng: <I>who is very old</I> <li>Fin: <I>kuka on erittäin vanha</I> <li>Fre: <I>qui est très vieux</I> <li>Ger: <I>wer ist sehr alt</I> <li>Ita: <I>chi è molto vecchio</I> <li>Nor: <I>hvem er mye gammel</I> <li>Pol: <I>kto jest bardzo stary</I> <li>Ron: <I>cine este foarte vechi</I> <li>Rus: <I>кто очень старый</I> <li>Spa: <I>quién es muy viejo</I> <li>Swe: <I>vem är mycket gammal</I> <li>Urd: <I>كون بہت بوڑھا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is the woman</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkNP the_Det woman_N)</CODE> <li>Bul: <I>кой е жената</I> <li>Cat: <I>qui és la dona</I> <li>Dan: <I>hvem er kvinden</I> <li>Dut: <I>wie is de vrouw</I> <li>Eng: <I>who is the woman</I> <li>Fin: <I>kuka on nainen</I> <li>Fre: <I>qui est la femme</I> <li>Ger: <I>wer ist die Frau</I> <li>Ita: <I>chi è la donna</I> <li>Nor: <I>hvem er kvinna</I> <li>Pol: <I>kto jest kobietą</I> <li>Ron: <I>cine este femeia</I> <li>Rus: <I>кто женщина</I> <li>Spa: <I>quién es la mujer</I> <li>Swe: <I>vem är kvinnan</I> <li>Urd: <I>كون عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is a woman</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP woman_N</CODE> <li>Bul: <I>кой е жена</I> <li>Cat: <I>qui és dona</I> <li>Dan: <I>hvem er en kvinde</I> <li>Dut: <I>wie is vrouw</I> <li>Eng: <I>who is a woman</I> <li>Fin: <I>kuka on nainen</I> <li>Fre: <I>qui est femme</I> <li>Ger: <I>wer ist eine Frau</I> <li>Ita: <I>chi è donna</I> <li>Nor: <I>hvem er ei kvinne</I> <li>Pol: <I>kto jest kobieta</I> <li>Ron: <I>cine este femeie</I> <li>Rus: <I>кто женщина</I> <li>Spa: <I>quién es mujer</I> <li>Swe: <I>vem är en kvinna</I> <li>Urd: <I>كون عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is an old woman</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkCN old_A woman_N)</CODE> <li>Bul: <I>кой е стара жена</I> <li>Cat: <I>qui és dona vell</I> <li>Dan: <I>hvem er en gammel kvinde</I> <li>Dut: <I>wie is oude vrouw</I> <li>Eng: <I>who is an old woman</I> <li>Fin: <I>kuka on vanha nainen</I> <li>Fre: <I>qui est vieille femme</I> <li>Ger: <I>wer ist eine alte Frau</I> <li>Ita: <I>chi è vecchia donna</I> <li>Nor: <I>hvem er ei gammel kvinne</I> <li>Pol: <I>kto jest stara kobieta</I> <li>Ron: <I>cine este femeie veche</I> <li>Rus: <I>кто старая женщина</I> <li>Spa: <I>quién es vieja mujer</I> <li>Swe: <I>vem är en gammal kvinna</I> <li>Urd: <I>كون بوڑھی عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is here</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP here_Adv</CODE> <li>Bul: <I>кой е тук</I> <li>Cat: <I>qui és aquí</I> <li>Dan: <I>hvem er her</I> <li>Dut: <I>wie is hier</I> <li>Eng: <I>who is here</I> <li>Fin: <I>kuka on täällä</I> <li>Fre: <I>qui est ici</I> <li>Ger: <I>wer ist hier</I> <li>Ita: <I>chi è quà</I> <li>Nor: <I>hvem er her</I> <li>Pol: <I>kto jest tutaj</I> <li>Ron: <I>cine este aici</I> <li>Rus: <I>кто здесь</I> <li>Spa: <I>quién es aquí</I> <li>Swe: <I>vem är här</I> <li>Urd: <I>كون یہاں ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is her</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP she_NP</CODE> <li>Bul: <I>кой е нея</I> <li>Cat: <I>qui és ella</I> <li>Dan: <I>hvem er hende</I> <li>Dut: <I>wie is ze</I> <li>Eng: <I>who is her</I> <li>Fin: <I>kuka on hän</I> <li>Fre: <I>qui est elle</I> <li>Ger: <I>wer ist sie</I> <li>Ita: <I>chi è lei</I> <li>Nor: <I>hvem er henne</I> <li>Pol: <I>kto jest nią</I> <li>Ron: <I>cine este ea</I> <li>Rus: <I>кто она</I> <li>Spa: <I>quién es ella</I> <li>Swe: <I>vem är henne</I> <li>Urd: <I>كون وہ ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>whom does she love today</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv)</CODE> <li>Bul: <I>кого обича тя днес</I> <li>Cat: <I>qui estima ella avui</I> <li>Dan: <I>hvem elsker hun idag</I> <li>Dut: <I>wie heeft ze lief vandaag</I> <li>Eng: <I>whom does she love today</I> <li>Fin: <I>ketä hän rakastaa tänään</I> <li>Fre: <I>qui aime elle aujourd'hui</I> <li>Ger: <I>wen liebt sie heute</I> <li>Ita: <I>chi ama lei oggi</I> <li>Nor: <I>hvem elsker hun idag</I> <li>Pol: <I>kogo dziś kocha ona</I> <li>Ron: <I>pe cine iubeşte ea astăzi</I> <li>Rus: <I>*</I> <li>Spa: <I>quién ama ella hoy</I> <li>Swe: <I>vem älskar hon idag</I> <li>Urd: <I>كون آج وہ پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>why does she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl why_IAdv (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>защо спи тя</I> <li>Cat: <I>per quË dorm ella</I> <li>Dan: <I>hvorfor sover hun</I> <li>Dut: <I>waarom slaapt ze</I> <li>Eng: <I>why does she sleep</I> <li>Fin: <I>miksi hän nukkuu</I> <li>Fre: <I>pourquoi dort elle</I> <li>Ger: <I>warum schläft sie</I> <li>Ita: <I>perché dorme lei</I> <li>Nor: <I>hvorfor sover hun</I> <li>Pol: <I>dlaczego ona śpi</I> <li>Ron: <I>de ce doarme ea</I> <li>Rus: <I>почему она спдит</I> <li>Spa: <I>porqué duerme ella</I> <li>Swe: <I>varför sover hon</I> <li>Urd: <I>كیوں وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>with whom does she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl with_Prep who_IP (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>с кой спи тя</I> <li>Cat: <I>amb qui dorm ella</I> <li>Dan: <I>med hvem sover hun</I> <li>Dut: <I>met wie slaapt ze</I> <li>Eng: <I>with whom does she sleep</I> <li>Fin: <I>kenen kanssa hän nukkuu</I> <li>Fre: <I>avec qui dort elle</I> <li>Ger: <I>mit wem schläft sie</I> <li>Ita: <I>con chi dorme lei</I> <li>Nor: <I>med hvem sover hun</I> <li>Pol: <I>z kim ona śpi</I> <li>Ron: <I>cu cine doarme ea</I> <li>Rus: <I>с кто она спдит</I> <li>Spa: <I>con quién duerme ella</I> <li>Swe: <I>med vem sover hon</I> <li>Urd: <I>كس كے ساتھ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>where is she</I> <div class=popup> <ul> <li>API: <CODE>mkQCl where_IAdv she_NP</CODE> <li>Bul: <I>къде е тя</I> <li>Cat: <I>on és ella</I> <li>Dan: <I>hvor er hun</I> <li>Dut: <I>waar is ze</I> <li>Eng: <I>where is she</I> <li>Fin: <I>missä hän on</I> <li>Fre: <I>oÃ¹ est elle</I> <li>Ger: <I>wo ist sie</I> <li>Ita: <I>dove è lei</I> <li>Nor: <I>hvor er hun</I> <li>Pol: <I>gdzie jest ona</I> <li>Ron: <I>unde este ea</I> <li>Rus: <I>где она</I> <li>Spa: <I>donde es ella</I> <li>Swe: <I>var är hon</I> <li>Urd: <I>وہ كہاں ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>who is this man</I> <div class=popup> <ul> <li>API: <CODE>mkQCl (mkIComp who_IP) (mkNP this_Det man_N)</CODE> <li>Bul: <I>кой е този мъж</I> <li>Cat: <I>qui és aquest home</I> <li>Dan: <I>hvem er denne mand</I> <li>Dut: <I>wie is deze man</I> <li>Eng: <I>who is this man</I> <li>Fin: <I>kuka tämä mies on</I> <li>Fre: <I>qui est cet homme</I> <li>Ger: <I>wer ist dieser Mann</I> <li>Ita: <I>chi è questo uomo</I> <li>Nor: <I>hvem er denne mannen</I> <li>Pol: <I>kim jest ten mężczyzna</I> <li>Ron: <I>cine este acest om</I> <li>Rus: <I>кто этот человек</I> <li>Spa: <I>quién es este hombre</I> <li>Swe: <I>vem är den här mannen</I> <li>Urd: <I>یہ آدمی كون ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQCl</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A></TD>
+<TD><div class=reveal> <I>which city is there</I> <div class=popup> <ul> <li>API: <CODE>mkQCl (mkIP which_IQuant city_N)</CODE> <li>Bul: <I>кой град е тук</I> <li>Cat: <I>quin ciutat hi ha quin ciutat</I> <li>Dan: <I>hvilken by findes det</I> <li>Dut: <I>welke stad is er</I> <li>Eng: <I>which city is there</I> <li>Fin: <I>mikä kaupunki on olemassa</I> <li>Fre: <I>quelle ville il y a</I> <li>Ger: <I>welche Stadt gibt es</I> <li>Ita: <I>quale città c' è</I> <li>Nor: <I>hvilken by finnes det</I> <li>Pol: <I>które miasto jest</I> <li>Ron: <I>care oraş este</I> <li>Rus: <I>который город существует</I> <li>Spa: <I>qué ciudad hay</I> <li>Swe: <I>vilken stad finns det</I> <li>Urd: <I>وہاں كون سا شہر ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="QS"></A>
+<H2>QS - question</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkQS</CODE></TD>
+<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A></TD>
+<TD><div class=reveal> <I>who wouldn't have slept</I> <div class=popup> <ul> <li>API: <CODE>mkQS conditionalTense anteriorAnt negativePol (mkQCl who_IP sleep_V)</CODE> <li>Bul: <I>кой не би спал</I> <li>Cat: <I>qui no hauria dormit</I> <li>Dan: <I>hvem ville ikke have sovet</I> <li>Dut: <I>wie zou niet geslapen hebben</I> <li>Eng: <I>who wouldn't have slept</I> <li>Fin: <I>kuka ei olisi nukkunut</I> <li>Fre: <I>qui n' aurait pas dormi</I> <li>Ger: <I>wer würde nicht geschlafen haben</I> <li>Ita: <I>chi non avrebbe dormito</I> <li>Nor: <I>hvem ville ikke ha sovet</I> <li>Pol: <I>kto nie spałby</I> <li>Ron: <I>cine nu ar fi dormit</I> <li>Rus: <I>кто спал бы</I> <li>Spa: <I>quién no habría dormido</I> <li>Swe: <I>vem skulle inte ha sovit</I> <li>Urd: <I>كون نا شاید سو ے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQS</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A></TD>
+<TD><div class=reveal> <I>does she sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQS (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи ли</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>sover hun</I> <li>Dut: <I>slaapt ze</I> <li>Eng: <I>does she sleep</I> <li>Fin: <I>nukkuuko hän</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>schläft sie</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>sover hun</I> <li>Pol: <I>czy ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>sover hon</I> <li>Urd: <I>كیا وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Quant"></A>
+<H2>Quant - quantifier ('nucleus' of Det)</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>a_Quant</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>a house</I> <div class=popup> <ul> <li>API: <CODE>mkNP a_Quant house_N</CODE> <li>Bul: <I>къща</I> <li>Cat: <I>''</I> <li>Dan: <I>et hus</I> <li>Dut: <I>een huis</I> <li>Eng: <I>a house</I> <li>Fin: <I>talo</I> <li>Fre: <I>''</I> <li>Ger: <I>ein Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>et hus</I> <li>Pol: <I>domu</I> <li>Ron: <I>''</I> <li>Rus: <I>дом</I> <li>Spa: <I>''</I> <li>Swe: <I>ett hus</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkQuant</CODE></TD>
+<TD><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>my house</I> <div class=popup> <ul> <li>API: <CODE>mkNP (mkQuant i_Pron) house_N</CODE> <li>Bul: <I>моята къща</I> <li>Cat: <I>''</I> <li>Dan: <I>mit hus</I> <li>Dut: <I>mijn huis</I> <li>Eng: <I>my house</I> <li>Fin: <I>minun taloni</I> <li>Fre: <I>''</I> <li>Ger: <I>mein Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>mit hus</I> <li>Pol: <I>mojego domu</I> <li>Ron: <I>''</I> <li>Rus: <I>мой дом</I> <li>Spa: <I>''</I> <li>Swe: <I>mitt hus</I> <li>Urd: <I>میرا گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>no_Quant</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>no house</I> <div class=popup> <ul> <li>API: <CODE>mkNP no_Quant house_N</CODE> <li>Bul: <I>*</I> <li>Cat: <I>''</I> <li>Dan: <I>*</I> <li>Dut: <I>geen huis</I> <li>Eng: <I>no house</I> <li>Fin: <I>ei mikään talo</I> <li>Fre: <I>''</I> <li>Ger: <I>kein Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>*</I> <li>Pol: <I>żadnego domu</I> <li>Ron: <I>''</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>inget hus</I> <li>Urd: <I>كوی نہیں گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>that_Quant</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>that house</I> <div class=popup> <ul> <li>API: <CODE>mkNP that_Quant house_N</CODE> <li>Bul: <I>онази къща</I> <li>Cat: <I>''</I> <li>Dan: <I>det der hus</I> <li>Dut: <I>dat huis</I> <li>Eng: <I>that house</I> <li>Fin: <I>tuo talo</I> <li>Fre: <I>''</I> <li>Ger: <I>jenes Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>det der huset</I> <li>Pol: <I>tamtego domu</I> <li>Ron: <I>''</I> <li>Rus: <I>тот дом</I> <li>Spa: <I>''</I> <li>Swe: <I>det där huset</I> <li>Urd: <I>وہ گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>the_Quant</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>the house</I> <div class=popup> <ul> <li>API: <CODE>mkNP the_Quant house_N</CODE> <li>Bul: <I>къщата</I> <li>Cat: <I>''</I> <li>Dan: <I>huset</I> <li>Dut: <I>het huis</I> <li>Eng: <I>the house</I> <li>Fin: <I>talo</I> <li>Fre: <I>''</I> <li>Ger: <I>das Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>huset</I> <li>Pol: <I>domu</I> <li>Ron: <I>''</I> <li>Rus: <I>дом</I> <li>Spa: <I>''</I> <li>Swe: <I>huset</I> <li>Urd: <I>گھر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>this_Quant</CODE></TD>
+<TD><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><div class=reveal> <I>this house</I> <div class=popup> <ul> <li>API: <CODE>mkNP this_Quant house_N</CODE> <li>Bul: <I>тази къща</I> <li>Cat: <I>''</I> <li>Dan: <I>dette hus</I> <li>Dut: <I>dit huis</I> <li>Eng: <I>this house</I> <li>Fin: <I>tämä talo</I> <li>Fre: <I>''</I> <li>Ger: <I>dieses Haus</I> <li>Ita: <I>''</I> <li>Nor: <I>dette huset</I> <li>Pol: <I>tego domu</I> <li>Ron: <I>''</I> <li>Rus: <I>этот дом</I> <li>Spa: <I>''</I> <li>Swe: <I>det här huset</I> <li>Urd: <I>یہ گھر</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="RCl"></A>
+<H2>RCl - relative clause, with all tenses</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who always sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V))))</CODE> <li>Bul: <I>жена която винаги спи</I> <li>Cat: <I>dona que dorm sempre</I> <li>Dan: <I>kvinde som altid sover</I> <li>Dut: <I>vrouw die altijd slaapt</I> <li>Eng: <I>woman who always sleeps</I> <li>Fin: <I>nainen joka nukkuu aina</I> <li>Fre: <I>femme qui dort toujours</I> <li>Ger: <I>Frau die immer schläft</I> <li>Ita: <I>donna che dorme sempre</I> <li>Nor: <I>kvinne som altid sover</I> <li>Pol: <I>kobieta , która zawsze śpi</I> <li>Ron: <I>femeie care doarme mereu</I> <li>Rus: <I>женщина , которая всегда спдит</I> <li>Spa: <I>mujer que duerme siempre</I> <li>Swe: <I>kvinna som alltid sover</I> <li>Urd: <I>عورت جو ہمیشہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP sleep_V))</CODE> <li>Bul: <I>жена която спи</I> <li>Cat: <I>dona que dorm</I> <li>Dan: <I>kvinde som sover</I> <li>Dut: <I>vrouw die slaapt</I> <li>Eng: <I>woman who sleeps</I> <li>Fin: <I>nainen joka nukkuu</I> <li>Fre: <I>femme qui dort</I> <li>Ger: <I>Frau die schläft</I> <li>Ita: <I>donna che dorme</I> <li>Nor: <I>kvinne som sover</I> <li>Pol: <I>kobieta , która śpi</I> <li>Ron: <I>femeie care doarme</I> <li>Rus: <I>женщина , которая спдит</I> <li>Spa: <I>mujer que duerme</I> <li>Swe: <I>kvinna som sover</I> <li>Urd: <I>عورت جو سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who loves him</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP love_V2 he_NP))</CODE> <li>Bul: <I>жена която обича него</I> <li>Cat: <I>dona que el estima</I> <li>Dan: <I>kvinde som elsker ham</I> <li>Dut: <I>vrouw die hem lief heeft</I> <li>Eng: <I>woman who loves him</I> <li>Fin: <I>nainen joka rakastaa häntä</I> <li>Fre: <I>femme qui l' aime</I> <li>Ger: <I>Frau die ihn liebt</I> <li>Ita: <I>donna che lo ama</I> <li>Nor: <I>kvinne som elsker ham</I> <li>Pol: <I>kobieta , która kocha jego</I> <li>Ron: <I>femeie care îl iubeşte</I> <li>Rus: <I>женщина , которая любдит его</I> <li>Spa: <I>mujer que lo ama</I> <li>Swe: <I>kvinna som älskar honom</I> <li>Urd: <I>عورت جو اس كو پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who sends it to him</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP))</CODE> <li>Bul: <I>жена която праща него до него</I> <li>Cat: <I>dona que ho li envia</I> <li>Dan: <I>kvinde som sender det til ham</I> <li>Dut: <I>vrouw die het naar hem stuurt</I> <li>Eng: <I>woman who sends it to him</I> <li>Fin: <I>nainen joka lähettää sen hänelle</I> <li>Fre: <I>femme qui le lui envoie</I> <li>Ger: <I>Frau die es ihm schickt</I> <li>Ita: <I>donna che lo gli manda</I> <li>Nor: <I>kvinne som sender det til ham</I> <li>Pol: <I>kobieta , która wysyła do niego je</I> <li>Ron: <I>femeie care i -l trimite</I> <li>Rus: <I>женщина , которая посылает нему его</I> <li>Spa: <I>mujer que lo le manda</I> <li>Swe: <I>kvinna som skickar det till honom</I> <li>Urd: <I>عورت جو اس كو اس كو بھیجتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who wants to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP want_VV (mkVP sleep_V)))</CODE> <li>Bul: <I>жена която иска да спи</I> <li>Cat: <I>dona que vol dormir</I> <li>Dan: <I>kvinde som vil sove</I> <li>Dut: <I>vrouw die slapen wil</I> <li>Eng: <I>woman who wants to sleep</I> <li>Fin: <I>nainen joka tahtoo nukkua</I> <li>Fre: <I>femme qui veut dormir</I> <li>Ger: <I>Frau die schlafen will</I> <li>Ita: <I>donna che vuole dormire</I> <li>Nor: <I>kvinne som vil sove</I> <li>Pol: <I>kobieta , która chce spać</I> <li>Ron: <I>femeie care vrea sã doarmă</I> <li>Rus: <I>женщина , которая хоччет спать</I> <li>Spa: <I>mujer que quiere dormir</I> <li>Swe: <I>kvinna som vill sova</I> <li>Urd: <I>عورت جو سونا چاہتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who says that I sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP say_VS (mkS (mkCl i_NP sleep_V))))</CODE> <li>Bul: <I>жена която казва , че аз спя</I> <li>Cat: <I>dona que diu que jo dormo</I> <li>Dan: <I>kvinde som siger at jeg sover</I> <li>Dut: <I>vrouw die zegt dat ik slaap</I> <li>Eng: <I>woman who says that I sleep</I> <li>Fin: <I>nainen joka sanoo että minä nukun</I> <li>Fre: <I>femme qui dit que je dors</I> <li>Ger: <I>Frau die sagt daß ich schlafe</I> <li>Ita: <I>donna che dice che io dormo</I> <li>Nor: <I>kvinne som sier at jeg sover</I> <li>Pol: <I>kobieta , która mówi , że ja śpię</I> <li>Ron: <I>femeie care spune cã eu dorm</I> <li>Rus: <I>женщина , которая говордит , что я сплю</I> <li>Spa: <I>mujer que dice que yo duermo</I> <li>Swe: <I>kvinna som säger att jag sover</I> <li>Urd: <I>عورت جو كہتی ہے كہ میں سوتا ہوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who wonders who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP wonder_VQ (mkQS (mkQCl who_IP sleep_V))))</CODE> <li>Bul: <I>жена която се учудва кой спи</I> <li>Cat: <I>dona que se pregunta qui dorm</I> <li>Dan: <I>kvinde som undres hvem som sover</I> <li>Dut: <I>vrouw die zich af vraagt wie slaapt</I> <li>Eng: <I>woman who wonders who sleeps</I> <li>Fin: <I>nainen joka ihmettelee kuka nukkuu</I> <li>Fre: <I>femme qui s' étonne qui dort</I> <li>Ger: <I>Frau die sich wundert wer schläft</I> <li>Ita: <I>donna che si domanda chi dorme</I> <li>Nor: <I>kvinne som undrer hvem som sover</I> <li>Pol: <I>kobieta , która zastanawia się , kto śpi</I> <li>Ron: <I>femeie care se întreabă cine doarme</I> <li>Rus: <I>женщина , которая интересует кто спдит</I> <li>Spa: <I>mujer que se pregunta quién duerme</I> <li>Swe: <I>kvinna som undrar vem som sover</I> <li>Urd: <I>عورت جو حیران ہوتی ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who becomes old</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP become_VA old_A))</CODE> <li>Bul: <I>жена която става стара</I> <li>Cat: <I>dona que se torna vell</I> <li>Dan: <I>kvinde som bliver gammel</I> <li>Dut: <I>vrouw die oud wordt</I> <li>Eng: <I>woman who becomes old</I> <li>Fin: <I>nainen joka tulee vanhaksi</I> <li>Fre: <I>femme qui devient vieille</I> <li>Ger: <I>Frau die alt wird</I> <li>Ita: <I>donna che diventa vecchia</I> <li>Nor: <I>kvinne som blir gammel</I> <li>Pol: <I>kobieta , która staje się stara</I> <li>Ron: <I>femeie care devine veche</I> <li>Rus: <I>женщина , которая становдит старой</I> <li>Spa: <I>mujer que se converte vieja</I> <li>Swe: <I>kvinna som blir gammal</I> <li>Urd: <I>عورت جو بوڑھی بنتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who becomes very old</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP become_VA (mkAP very_AdA old_A)))</CODE> <li>Bul: <I>жена която става много стара</I> <li>Cat: <I>dona que se torna molt vell</I> <li>Dan: <I>kvinde som bliver meget gammel</I> <li>Dut: <I>vrouw die erg oud wordt</I> <li>Eng: <I>woman who becomes very old</I> <li>Fin: <I>nainen joka tulee erittäin vanhaksi</I> <li>Fre: <I>femme qui devient très vieille</I> <li>Ger: <I>Frau die sehr alt wird</I> <li>Ita: <I>donna che diventa molto vecchia</I> <li>Nor: <I>kvinne som blir mye gammel</I> <li>Pol: <I>kobieta , która staje się bardzo stara</I> <li>Ron: <I>femeie care devine foarte veche</I> <li>Rus: <I>женщина , которая становдит очень старой</I> <li>Spa: <I>mujer que se converte muy vieja</I> <li>Swe: <I>kvinna som blir mycket gammal</I> <li>Urd: <I>عورت جو بہت بوڑھی بنتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who paints it red</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A))</CODE> <li>Bul: <I>жена която рисува него червено</I> <li>Cat: <I>dona que ho pinta en vermell</I> <li>Dan: <I>kvinde som maler det rødt</I> <li>Dut: <I>vrouw die het rood schildeert</I> <li>Eng: <I>woman who paints it red</I> <li>Fin: <I>nainen joka maalaa sen punaiseksi</I> <li>Fre: <I>femme qui le peint en rouge</I> <li>Ger: <I>Frau die es rot malt</I> <li>Ita: <I>donna che lo dipinge rosso</I> <li>Nor: <I>kvinne som maler det rødt</I> <li>Pol: <I>kobieta , która maluje je na czerwono</I> <li>Ron: <I>femeie care îl pictează roşu</I> <li>Rus: <I>женщина , которая рисует красным его</I> <li>Spa: <I>mujer que lo pinta en rojo</I> <li>Swe: <I>kvinna som målar det rött</I> <li>Urd: <I>عورت جو اس كو لال رنگ كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who paints it very red</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A)))</CODE> <li>Bul: <I>жена която рисува него много червено</I> <li>Cat: <I>dona que ho pinta en molt vermell</I> <li>Dan: <I>kvinde som maler det meget rødt</I> <li>Dut: <I>vrouw die het erg rood schildeert</I> <li>Eng: <I>woman who paints it very red</I> <li>Fin: <I>nainen joka maalaa sen erittäin punaiseksi</I> <li>Fre: <I>femme qui le peint en très rouge</I> <li>Ger: <I>Frau die es sehr rot malt</I> <li>Ita: <I>donna che lo dipinge molto rosso</I> <li>Nor: <I>kvinne som maler det mye rødt</I> <li>Pol: <I>kobieta , która maluje je na bardzo czerwono</I> <li>Ron: <I>femeie care îl pictează foarte roşu</I> <li>Rus: <I>женщина , которая рисует очень красным его</I> <li>Spa: <I>mujer que lo pinta en muy rojo</I> <li>Swe: <I>kvinna som målar det mycket rött</I> <li>Urd: <I>عورت جو اس كو بہت لال رنگ كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who answers to him that we sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP answer_V2S he_NP (mkS (mkCl we_NP sleep_V))))</CODE> <li>Bul: <I>жена която отговаря му , че ние спим</I> <li>Cat: <I>dona que li respon que nosaltres dormim</I> <li>Dan: <I>kvinde som svarer til ham at vi sover</I> <li>Dut: <I>vrouw die hem antwoordt dat we slapen</I> <li>Eng: <I>woman who answers to him that we sleep</I> <li>Fin: <I>nainen joka vastaa hänelle että me nukumme</I> <li>Fre: <I>femme qui lui répond que nous dormons</I> <li>Ger: <I>Frau die ihm antwortet daß wir schlafen</I> <li>Ita: <I>donna che gli risponde che noi dormiamo</I> <li>Nor: <I>kvinne som svarer til ham at vi sover</I> <li>Pol: <I>kobieta , która odpowiada jemu , że my śpimy</I> <li>Ron: <I>femeie care îi răspunde cã noi dormim</I> <li>Rus: <I>женщина , которая отвечает , что мы спдим его</I> <li>Spa: <I>mujer que le responde que nosotros dormimos</I> <li>Swe: <I>kvinna som svarar till honom att vi sover</I> <li>Urd: <I>عورت جو اس كو جواب دیتی ہے كہ ہم سوتے ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who asks him who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))))</CODE> <li>Bul: <I>жена която пита него кой спи</I> <li>Cat: <I>dona que li pregunta qui dorm</I> <li>Dan: <I>kvinde som spørger ham hvem som sover</I> <li>Dut: <I>vrouw die hem vraagt wie slaapt</I> <li>Eng: <I>woman who asks him who sleeps</I> <li>Fin: <I>nainen joka kysyy häneltä kuka nukkuu</I> <li>Fre: <I>femme qui lui demande qui dort</I> <li>Ger: <I>Frau die ihn fragt wer schläft</I> <li>Ita: <I>donna che gli chiede chi dorme</I> <li>Nor: <I>kvinne som spørr ham hvem som sover</I> <li>Pol: <I>kobieta , która pyta jego , kto śpi</I> <li>Ron: <I>femeie care îl întreabă cine doarme</I> <li>Rus: <I>женщина , которая спрашивает кто спдит его</I> <li>Spa: <I>mujer que le pregunta quién duerme</I> <li>Swe: <I>kvinna som frågar honom vem som sover</I> <li>Urd: <I>عورت جو اس سے پوچھتی ہے كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who begs him to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V)))</CODE> <li>Bul: <I>жена която моли него да спи</I> <li>Cat: <I>dona que el demana a dormir</I> <li>Dan: <I>kvinde som beder ham at sove</I> <li>Dut: <I>vrouw die hem te slapen smeekt</I> <li>Eng: <I>woman who begs him to sleep</I> <li>Fin: <I>nainen joka pyytää häntä nukkumaan</I> <li>Fre: <I>femme qui le demande à dormir</I> <li>Ger: <I>Frau die ihn zu schlafen bittet</I> <li>Ita: <I>donna che lo prega di dormire</I> <li>Nor: <I>kvinne som ber ham att sove</I> <li>Pol: <I>*</I> <li>Ron: <I>femeie care îl roagă sã doarmă</I> <li>Rus: <I>женщина , которая просит спать его</I> <li>Spa: <I>mujer que lo roga a dormir</I> <li>Swe: <I>kvinna som ber honom att sova</I> <li>Urd: <I>عورت جو اس سے سونے كی التجا كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is old</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP old_A))</CODE> <li>Bul: <I>жена която е стара</I> <li>Cat: <I>dona que és vell</I> <li>Dan: <I>kvinde som er gammel</I> <li>Dut: <I>vrouw die oud is</I> <li>Eng: <I>woman who is old</I> <li>Fin: <I>nainen joka on vanha</I> <li>Fre: <I>femme qui est vieille</I> <li>Ger: <I>Frau die alt ist</I> <li>Ita: <I>donna che è vecchia</I> <li>Nor: <I>kvinne som er gammel</I> <li>Pol: <I>kobieta , która jest stara</I> <li>Ron: <I>femeie care este veche</I> <li>Rus: <I>женщина , которая старая</I> <li>Spa: <I>mujer que es vieja</I> <li>Swe: <I>kvinna som är gammal</I> <li>Urd: <I>عورت جو بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is older than he</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP old_A he_NP))</CODE> <li>Bul: <I>жена която е по - стара от него</I> <li>Cat: <I>dona que és més vell que ell</I> <li>Dan: <I>kvinde som er ældre end han</I> <li>Dut: <I>vrouw die ouder dan hij is</I> <li>Eng: <I>woman who is older than he</I> <li>Fin: <I>nainen joka on vanhempi kuin hän</I> <li>Fre: <I>femme qui est plus vieille que lui</I> <li>Ger: <I>Frau die älter als er ist</I> <li>Ita: <I>donna che è più vecchia di lui</I> <li>Nor: <I>kvinne som er eldre enn han</I> <li>Pol: <I>kobieta , która jest starsza niż on</I> <li>Ron: <I>femeie care este mai veche decât el</I> <li>Rus: <I>женщина , которая старше него</I> <li>Spa: <I>mujer que es más vieja que él</I> <li>Swe: <I>kvinna som är äldre än han</I> <li>Urd: <I>عورت جو اس سے بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is married to him</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP married_A2 he_NP))</CODE> <li>Bul: <I>жена която е женена за него</I> <li>Cat: <I>dona que és casata a ell</I> <li>Dan: <I>kvinde som er gift med ham</I> <li>Dut: <I>vrouw die getrouwd met hem is</I> <li>Eng: <I>woman who is married to him</I> <li>Fin: <I>nainen joka on avioitunut hänen kanssa</I> <li>Fre: <I>femme qui est mariée à lui</I> <li>Ger: <I>Frau die verheiratet mit ihm ist</I> <li>Ita: <I>donna che è sposata con lui</I> <li>Nor: <I>kvinne som er gift med ham</I> <li>Pol: <I>kobieta , która jest zaślubiona jemu</I> <li>Ron: <I>femeie care este căsătorită cu el</I> <li>Rus: <I>женщина , которая замужем за им</I> <li>Spa: <I>mujer que es casada a él</I> <li>Swe: <I>kvinna som är gift med honom</I> <li>Urd: <I>عورت جو اس سے [شادی كرنa] ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is very old</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP (mkAP very_AdA old_A)))</CODE> <li>Bul: <I>жена която е много стара</I> <li>Cat: <I>dona que és molt vell</I> <li>Dan: <I>kvinde som er meget gammel</I> <li>Dut: <I>vrouw die erg oud is</I> <li>Eng: <I>woman who is very old</I> <li>Fin: <I>nainen joka on erittäin vanha</I> <li>Fre: <I>femme qui est très vieille</I> <li>Ger: <I>Frau die sehr alt ist</I> <li>Ita: <I>donna che è molto vecchia</I> <li>Nor: <I>kvinne som er mye gammel</I> <li>Pol: <I>kobieta , która jest bardzo stara</I> <li>Ron: <I>femeie care este foarte veche</I> <li>Rus: <I>женщина , которая очень старая</I> <li>Spa: <I>mujer que es muy vieja</I> <li>Swe: <I>kvinna som är mycket gammal</I> <li>Urd: <I>عورت جو بہت بوڑھی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is the woman</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP (mkNP the_Det woman_N)))</CODE> <li>Bul: <I>жена която е жената</I> <li>Cat: <I>dona que és la dona</I> <li>Dan: <I>kvinde som er kvinden</I> <li>Dut: <I>vrouw die de vrouw is</I> <li>Eng: <I>woman who is the woman</I> <li>Fin: <I>nainen joka on nainen</I> <li>Fre: <I>femme qui est la femme</I> <li>Ger: <I>Frau die die Frau ist</I> <li>Ita: <I>donna che è la donna</I> <li>Nor: <I>kvinne som er kvinna</I> <li>Pol: <I>kobieta , która jest kobietą</I> <li>Ron: <I>femeie care este femeia</I> <li>Rus: <I>женщина , которая женщина</I> <li>Spa: <I>mujer que es la mujer</I> <li>Swe: <I>kvinna som är kvinnan</I> <li>Urd: <I>عورت جو عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>student who is a woman</I> <div class=popup> <ul> <li>API: <CODE>mkCN student_N (mkRS (mkRCl which_RP woman_N))</CODE> <li>Bul: <I>студент който е жена</I> <li>Cat: <I>estudiant que és dona</I> <li>Dan: <I>student som er en kvinde</I> <li>Dut: <I>student die vrouw is</I> <li>Eng: <I>student who is a woman</I> <li>Fin: <I>opiskelija joka on nainen</I> <li>Fre: <I>étudiant qui est femme</I> <li>Ger: <I>Student der eine Frau ist</I> <li>Ita: <I>studente che è donna</I> <li>Nor: <I>student som er ei kvinne</I> <li>Pol: <I>student , który jest kobieta</I> <li>Ron: <I>student care este femeie</I> <li>Rus: <I>студент , который женщина</I> <li>Spa: <I>estudiante que es mujer</I> <li>Swe: <I>student som är en kvinna</I> <li>Urd: <I>طالب علم جو عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>student who is an old woman</I> <div class=popup> <ul> <li>API: <CODE>mkCN student_N (mkRS (mkRCl which_RP (mkCN old_A woman_N)))</CODE> <li>Bul: <I>студент който е стара жена</I> <li>Cat: <I>estudiant que és dona vell</I> <li>Dan: <I>student som er en gammel kvinde</I> <li>Dut: <I>student die oude vrouw is</I> <li>Eng: <I>student who is an old woman</I> <li>Fin: <I>opiskelija joka on vanha nainen</I> <li>Fre: <I>étudiant qui est vieille femme</I> <li>Ger: <I>Student der eine alte Frau ist</I> <li>Ita: <I>studente che è vecchia donna</I> <li>Nor: <I>student som er ei gammel kvinne</I> <li>Pol: <I>student , który jest stara kobieta</I> <li>Ron: <I>student care este femeie veche</I> <li>Rus: <I>студент , который старая женщина</I> <li>Spa: <I>estudiante que es vieja mujer</I> <li>Swe: <I>student som är en gammal kvinna</I> <li>Urd: <I>طالب علم جو بوڑھی عورت ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman who is here</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP here_Adv))</CODE> <li>Bul: <I>жена която е тук</I> <li>Cat: <I>dona que és aquí</I> <li>Dan: <I>kvinde som er her</I> <li>Dut: <I>vrouw die hier is</I> <li>Eng: <I>woman who is here</I> <li>Fin: <I>nainen joka on täällä</I> <li>Fre: <I>femme qui est ici</I> <li>Ger: <I>Frau die hier ist</I> <li>Ita: <I>donna che è quà</I> <li>Nor: <I>kvinne som er her</I> <li>Pol: <I>kobieta , która jest tutaj</I> <li>Ron: <I>femeie care este aici</I> <li>Rus: <I>женщина , которая здесь</I> <li>Spa: <I>mujer que es aquí</I> <li>Swe: <I>kvinna som är här</I> <li>Urd: <I>عورت جو یہاں ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman whom we love</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP we_NP love_V2))</CODE> <li>Bul: <I>жена която ние обичаме</I> <li>Cat: <I>dona que nosaltres estimem</I> <li>Dan: <I>kvinde som vi elsker</I> <li>Dut: <I>vrouw die we lief hebben</I> <li>Eng: <I>woman whom we love</I> <li>Fin: <I>nainen jota me rakastamme</I> <li>Fre: <I>femme que nous aimons</I> <li>Ger: <I>Frau die wir lieben</I> <li>Ita: <I>donna che noi amiamo</I> <li>Nor: <I>kvinne som vi elsker</I> <li>Pol: <I>kobieta , którą kochamy my</I> <li>Ron: <I>femeie pe care o iubim noi</I> <li>Rus: <I>женщина , которую мы любдим</I> <li>Spa: <I>mujer que nosotros amamos</I> <li>Swe: <I>kvinna som vi älskar</I> <li>Urd: <I>عورت جس كو ہم پیار كرتے ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><div class=reveal> <I>woman whom she loves today</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS (mkRCl which_RP (mkClSlash (mkClSlash she_NP love_V2) today_Adv)))</CODE> <li>Bul: <I>жена която тя обича днес</I> <li>Cat: <I>dona que ella estima avui</I> <li>Dan: <I>kvinde som hun elsker idag</I> <li>Dut: <I>vrouw die ze lief heeft vandaag</I> <li>Eng: <I>woman whom she loves today</I> <li>Fin: <I>nainen jota hän rakastaa tänään</I> <li>Fre: <I>femme pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>Frau die sie liebt heute</I> <li>Ita: <I>donna che lei ama oggi</I> <li>Nor: <I>kvinne som hun elsker idag</I> <li>Pol: <I>kobieta , którą dziś kocha ona</I> <li>Ron: <I>femeie pe care o iubeşte ea astăzi</I> <li>Rus: <I>*</I> <li>Spa: <I>mujer que ella ama hoy</I> <li>Swe: <I>kvinna som hon älskar idag</I> <li>Urd: <I>عورت جس كو آج وہ پیار كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRCl</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A></TD>
+<TD><I>such that she loves him</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="RP"></A>
+<H2>RP - relative pronoun</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkRP</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#RP" TITLE="RP - relative pronoun">RP</A> <CODE>-&gt;</CODE> <A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
+<TD><div class=reveal> <I>all the cities in whom</I> <div class=popup> <ul> <li>API: <CODE>mkRP in_Prep (mkNP all_Predet (mkNP the_Quant pluralNum city_N)) which_RP</CODE> <li>Bul: <I>всичките градовете в който</I> <li>Cat: <I>totes les ciutats en que</I> <li>Dan: <I>alle byerne i hvilken</I> <li>Dut: <I>alle de stadden in die</I> <li>Eng: <I>all the cities in whom</I> <li>Fin: <I>jossa kaikki kaupungit</I> <li>Fre: <I>toutes les villes dans lequel</I> <li>Ger: <I>alle die Städte in dem</I> <li>Ita: <I>tutte le città in cui</I> <li>Nor: <I>alle byene i hvilken</I> <li>Pol: <I>w którym wszystkie miast</I> <li>Ron: <I>toate oraşele în care</I> <li>Rus: <I>все городы в котором</I> <li>Spa: <I>todas las ciudades en que</I> <li>Swe: <I>alla städerna i vilken</I> <li>Urd: <I>جو تمام شہر میں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>which_RP</CODE></TD>
+<TD><A HREF="#RP" TITLE="RP - relative pronoun">RP</A></TD>
+<TD><I>which/who</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="RS"></A>
+<H2>RS - relative</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkRS</CODE></TD>
+<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
+<TD><div class=reveal> <I>woman who wouldn't have slept</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V))</CODE> <li>Bul: <I>жена която не би спалa</I> <li>Cat: <I>dona que no hauria dormit</I> <li>Dan: <I>kvinde som ikke ville have sovet</I> <li>Dut: <I>vrouw die niet geslapen hebben zou</I> <li>Eng: <I>woman who wouldn't have slept</I> <li>Fin: <I>nainen joka ei olisi nukkunut</I> <li>Fre: <I>femme qui n' aurait pas dormi</I> <li>Ger: <I>Frau die nicht geschlafen haben würde</I> <li>Ita: <I>donna che non avrebbe dormito</I> <li>Nor: <I>kvinne som ikke ville ha sovet</I> <li>Pol: <I>kobieta , która nie spałaby</I> <li>Ron: <I>femeie care nu ar fi dormit</I> <li>Rus: <I>женщина , которая спала бы</I> <li>Spa: <I>mujer que no habría dormido</I> <li>Swe: <I>kvinna som inte skulle ha sovit</I> <li>Urd: <I>عورت جو نا شاید سو ے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRS</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
+<TD><div class=reveal> <I>woman who sleeps or whom we love</I> <div class=popup> <ul> <li>API: <CODE>mkCN woman_N (mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP we_NP love_V2)))</CODE> <li>Bul: <I>жена която спи или която ние обичаме</I> <li>Cat: <I>dona que dorm o que nosaltres estimem</I> <li>Dan: <I>kvinde som sover eller som vi elsker</I> <li>Dut: <I>vrouw die slaapt of die we lief hebben</I> <li>Eng: <I>woman who sleeps or whom we love</I> <li>Fin: <I>nainen joka nukkuu tai jota me rakastamme</I> <li>Fre: <I>femme qui dort ou que nous aimons</I> <li>Ger: <I>Frau die schläft oder die wir lieben</I> <li>Ita: <I>donna che dorme o che noi amiamo</I> <li>Nor: <I>kvinne som sover eller som vi elsker</I> <li>Pol: <I>kobieta , która śpi lub , którą kochamy my</I> <li>Ron: <I>femeie care doarme sau pe care o iubim noi</I> <li>Rus: <I>женщина , которая спдит или , которую мы любдим</I> <li>Spa: <I>mujer que duerme o que nosotros amamos</I> <li>Swe: <I>kvinna som sover eller som vi älskar</I> <li>Urd: <I>عورت جو سوتی ہے یا جس كو ہم پیار كرتے ہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkRS</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListRS">ListRS</A> <CODE>-&gt;</CODE> <A HREF="#RS" TITLE="RS - relative">RS</A></TD>
+<TD><I>who sleeps, whom I see and who sleeps</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="S"></A>
+<H2>S - declarative sentence</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkS</CODE></TD>
+<TD>(<A HREF="#Tense" TITLE="Tense - tense">Tense</A>) <CODE>-&gt;</CODE> (<A HREF="#Ant" TITLE="Ant - anteriority">Ant</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
+<TD><div class=reveal> <I>she wouldn't have slept</I> <div class=popup> <ul> <li>API: <CODE>mkS conditionalTense anteriorAnt negativePol (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя не би спалa</I> <li>Cat: <I>ella no hauria dormit</I> <li>Dan: <I>hun ville ikke have sovet</I> <li>Dut: <I>ze zou niet geslapen hebben</I> <li>Eng: <I>she wouldn't have slept</I> <li>Fin: <I>hän ei olisi nukkunut</I> <li>Fre: <I>elle n' aurait pas dormi</I> <li>Ger: <I>sie würde nicht geschlafen haben</I> <li>Ita: <I>lei non avrebbe dormito</I> <li>Nor: <I>hun ville ikke ha sovet</I> <li>Pol: <I>ona nie spałaby</I> <li>Ron: <I>ea nu ar fi dormit</I> <li>Rus: <I>она не спала бы</I> <li>Spa: <I>ella no habría dormido</I> <li>Swe: <I>hon skulle inte ha sovit</I> <li>Urd: <I>وہ نا شاید سوئے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkS</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
+<TD><div class=reveal> <I>she sleeps and I run</I> <div class=popup> <ul> <li>API: <CODE>mkS and_Conj (mkS (mkCl she_NP sleep_V)) (mkS (mkCl i_NP run_V))</CODE> <li>Bul: <I>тя спи и аз бягам</I> <li>Cat: <I>ella dorm i jo corro</I> <li>Dan: <I>hun sover og jeg løber</I> <li>Dut: <I>ze slaapt en ik ren</I> <li>Eng: <I>she sleeps and I run</I> <li>Fin: <I>hän nukkuu ja minä juoksen</I> <li>Fre: <I>elle dort et je cours</I> <li>Ger: <I>sie schläft und ich laufe</I> <li>Ita: <I>lei dorme e io corro</I> <li>Nor: <I>hun sover og jeg springer</I> <li>Pol: <I>ona śpi i ja biegnę</I> <li>Ron: <I>ea doarme şi eu fug</I> <li>Rus: <I>она спдит и я бегаю</I> <li>Spa: <I>ella duerme y yo corro</I> <li>Swe: <I>hon sover och jag springer</I> <li>Urd: <I>وہ سوتی ہے اور میں دوڑتا ہوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkS</CODE></TD>
+<TD><A HREF="#Conj" TITLE="Conj - conjunction">Conj</A> <CODE>-&gt;</CODE> <A HREF="#ListS">ListS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
+<TD><div class=reveal> <I>she sleeps , I run and you walk</I> <div class=popup> <ul> <li>API: <CODE>mkS and_Conj (mkListS (mkS (mkCl she_NP sleep_V)) (mkListS (mkS (mkCl i_NP run_V)) (mkS (mkCl (mkNP youSg_Pron) walk_V))))</CODE> <li>Bul: <I>тя спи , аз бягам и ти ходиш</I> <li>Cat: <I>ella dorm , jo corro i tu camines</I> <li>Dan: <I>hun sover , jeg løber og du går</I> <li>Dut: <I>ze slaapt , ik ren en je loopt</I> <li>Eng: <I>she sleeps , I run and you walk</I> <li>Fin: <I>hän nukkuu , minä juoksen ja sinä kävelet</I> <li>Fre: <I>elle dort , je cours et tu marches</I> <li>Ger: <I>sie schläft , ich laufe und du gehst</I> <li>Ita: <I>lei dorme , io corro e tu cammini</I> <li>Nor: <I>hun sover , jeg springer og du går</I> <li>Pol: <I>ona śpi , ja biegnę i ty spacerujesz</I> <li>Ron: <I>ea doarme , eu fug şi tu mergi</I> <li>Rus: <I>она спдит , я бегаю и ты гуляешь</I> <li>Spa: <I>ella duerme , yo corro y tu caminas</I> <li>Swe: <I>hon sover , jag springer och du går</I> <li>Urd: <I>وہ سوتی ہے , میں دوڑتا ہوں اور تو چلتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkS</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A></TD>
+<TD><div class=reveal> <I>today , she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkS today_Adv (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>днес , тя спи</I> <li>Cat: <I>avui , ella dorm</I> <li>Dan: <I>idag sover hun</I> <li>Dut: <I>vandaag slaapt ze</I> <li>Eng: <I>today , she sleeps</I> <li>Fin: <I>tänään hän nukkuu</I> <li>Fre: <I>aujourd'hui , elle dort</I> <li>Ger: <I>heute schläft sie</I> <li>Ita: <I>oggi , lei dorme</I> <li>Nor: <I>idag sover hun</I> <li>Pol: <I>dziś ona śpi</I> <li>Ron: <I>astăzi ea doarme</I> <li>Rus: <I>*</I> <li>Spa: <I>hoy , ella duerme</I> <li>Swe: <I>idag sover hon</I> <li>Urd: <I>آج وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="SC"></A>
+<H2>SC - embedded sentence or question</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkSC</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A></TD>
+<TD><div class=reveal> <I>that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkSC (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>, че тя спи</I> <li>Cat: <I>que ella dorm</I> <li>Dan: <I>at hun sover</I> <li>Dut: <I>dat ze slaapt</I> <li>Eng: <I>that she sleeps</I> <li>Fin: <I>että hän nukkuu</I> <li>Fre: <I>qu' elle dort</I> <li>Ger: <I>daß sie schläft</I> <li>Ita: <I>che lei dorme</I> <li>Nor: <I>at hun sover</I> <li>Pol: <I>, że ona śpi</I> <li>Ron: <I>cã ea doarme</I> <li>Rus: <I>что она спдит</I> <li>Spa: <I>que ella duerme</I> <li>Swe: <I>att hon sover</I> <li>Urd: <I>كہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkSC</CODE></TD>
+<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A></TD>
+<TD><div class=reveal> <I>who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkSC (mkQS (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>който спи</I> <li>Cat: <I>qui dorm</I> <li>Dan: <I>hvem som sover</I> <li>Dut: <I>wie slaapt</I> <li>Eng: <I>who sleeps</I> <li>Fin: <I>kuka nukkuu</I> <li>Fre: <I>qui dort</I> <li>Ger: <I>wer schläft</I> <li>Ita: <I>chi dorme</I> <li>Nor: <I>hvem som sover</I> <li>Pol: <I>, kto śpi</I> <li>Ron: <I>cine doarme</I> <li>Rus: <I>кто спдит</I> <li>Spa: <I>quién duerme</I> <li>Swe: <I>vem som sover</I> <li>Urd: <I>كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkSC</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#SC" TITLE="SC - embedded sentence or question">SC</A></TD>
+<TD><div class=reveal> <I>to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkSC (mkVP sleep_V)</CODE> <li>Bul: <I>да спя</I> <li>Cat: <I>dormir</I> <li>Dan: <I>at sove</I> <li>Dut: <I>te slapen</I> <li>Eng: <I>to sleep</I> <li>Fin: <I>nukkua</I> <li>Fre: <I>dormir</I> <li>Ger: <I>zu schlafen</I> <li>Ita: <I>dormire</I> <li>Nor: <I>å sove</I> <li>Pol: <I>spać</I> <li>Ron: <I>sã doarmă</I> <li>Rus: <I>спать</I> <li>Spa: <I>dormir</I> <li>Swe: <I>att sova</I> <li>Urd: <I>سونا</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="SSlash"></A>
+<H2>SSlash</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkSSlash</CODE></TD>
+<TD><A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp</A> <CODE>-&gt;</CODE> <A HREF="#Pol" TITLE="Pol - polarity">Pol</A> <CODE>-&gt;</CODE> <A HREF="#ClSlash">ClSlash</A> <CODE>-&gt;</CODE> <A HREF="#SSlash">SSlash</A></TD>
+<TD><div class=reveal> <I>she hadn't seen</I> <div class=popup> <ul> <li>API: <CODE>mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash she_NP (mkVPSlash see_V2))</CODE> <li>Bul: <I>тя не беше видялa</I> <li>Cat: <I>ella no havia vist</I> <li>Dan: <I>hun havde ikke set</I> <li>Dut: <I>ze had niet gezien</I> <li>Eng: <I>she hadn't seen</I> <li>Fin: <I>hän ei ollut nähnyt</I> <li>Fre: <I>elle n' avait pas vu</I> <li>Ger: <I>sie hatte nicht gesehen</I> <li>Ita: <I>lei non aveva visto</I> <li>Nor: <I>hun hadde ikke sett</I> <li>Pol: <I>nie zobaczyła ona</I> <li>Ron: <I>ea nu văzuse</I> <li>Rus: <I>она не видела</I> <li>Spa: <I>ella no había visto</I> <li>Swe: <I>hon hade inte sett</I> <li>Urd: <I>وہ نہیں دیكھ چكی تh-ی</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Sub100"></A>
+<H2>Sub100</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkSub100</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Sub100">Sub100</A></TD>
+<TD><div class=reveal> <I>eight</I> <div class=popup> <ul> <li>API: <CODE>mkSub100 n8_Unit</CODE> <li>Bul: <I>осмина</I> <li>Cat: <I>vuit</I> <li>Dan: <I>otte</I> <li>Dut: <I>acht</I> <li>Eng: <I>eight</I> <li>Fin: <I>kahdeksan</I> <li>Fre: <I>huit</I> <li>Ger: <I>acht</I> <li>Ita: <I>otto</I> <li>Nor: <I>åtte</I> <li>Pol: <I>osiemm</I> <li>Ron: <I>opt</I> <li>Rus: <I>восемь</I> <li>Spa: <I>ocho</I> <li>Swe: <I>åtta</I> <li>Urd: <I>آتھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkSub100</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Sub100">Sub100</A></TD>
+<TD><div class=reveal> <I>eighty - three</I> <div class=popup> <ul> <li>API: <CODE>mkSub100 n8_Unit n3_Unit</CODE> <li>Bul: <I>осемдесет и трима</I> <li>Cat: <I>vuitanta- tres</I> <li>Dan: <I>tre og firs</I> <li>Dut: <I>drieëntachtig</I> <li>Eng: <I>eighty - three</I> <li>Fin: <I>kahdeksankymmentäkolme</I> <li>Fre: <I>quatre-vingt - trois</I> <li>Ger: <I>dreiundachzig</I> <li>Ita: <I>ottantatre</I> <li>Nor: <I>åtti tre</I> <li>Pol: <I>osiemdziesiąt trzy</I> <li>Ron: <I>optzeci şi trei</I> <li>Rus: <I>восемьдесят три</I> <li>Spa: <I>ochenta y tres</I> <li>Swe: <I>åttiotre</I> <li>Urd: <I>تراسی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>tenfoldSub100</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Sub100">Sub100</A></TD>
+<TD><div class=reveal> <I>eight</I> <div class=popup> <ul> <li>API: <CODE>mkSub100 n8_Unit</CODE> <li>Bul: <I>осмина</I> <li>Cat: <I>vuit</I> <li>Dan: <I>otte</I> <li>Dut: <I>acht</I> <li>Eng: <I>eight</I> <li>Fin: <I>kahdeksan</I> <li>Fre: <I>huit</I> <li>Ger: <I>acht</I> <li>Ita: <I>otto</I> <li>Nor: <I>åtte</I> <li>Pol: <I>osiemm</I> <li>Ron: <I>opt</I> <li>Rus: <I>восемь</I> <li>Spa: <I>ocho</I> <li>Swe: <I>åtta</I> <li>Urd: <I>آتھ</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Sub1000"></A>
+<H2>Sub1000</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkSub1000</CODE></TD>
+<TD><A HREF="#Sub100">Sub100</A> <CODE>-&gt;</CODE> <A HREF="#Sub1000">Sub1000</A></TD>
+<TD><div class=reveal> <I>ninety - nine</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral (mkSub1000 (mkSub100 n9_Unit n9_Unit))</CODE> <li>Bul: <I>деветдесет и деветима</I> <li>Cat: <I>noranta- nou</I> <li>Dan: <I>ni og halvfems</I> <li>Dut: <I>negenennegentig</I> <li>Eng: <I>ninety - nine</I> <li>Fin: <I>yhdeksänkymmentäyhdeksän</I> <li>Fre: <I>quatre-vingt - dix-neuf</I> <li>Ger: <I>neunundneunzig</I> <li>Ita: <I>novantanove</I> <li>Nor: <I>nitti ni</I> <li>Pol: <I>dziewięćdziesiąt dziewięć</I> <li>Ron: <I>nouăzeci şi nouă</I> <li>Rus: <I>девяносто девять</I> <li>Spa: <I>noventa y nueve</I> <li>Swe: <I>nittionio</I> <li>Urd: <I>ننانوے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkSub1000</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Sub1000">Sub1000</A></TD>
+<TD><div class=reveal> <I>nine hundred</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral (mkSub1000 n9_Unit)</CODE> <li>Bul: <I>деветстотин</I> <li>Cat: <I>nou -cents</I> <li>Dan: <I>ni hundrede</I> <li>Dut: <I>negenhonderd</I> <li>Eng: <I>nine hundred</I> <li>Fin: <I>yhdeksänsataa</I> <li>Fre: <I>neuf cents</I> <li>Ger: <I>neunhundert</I> <li>Ita: <I>novecento</I> <li>Nor: <I>ni hundre</I> <li>Pol: <I>dziewięćset</I> <li>Ron: <I>nouă sute</I> <li>Rus: <I>девятьсот</I> <li>Spa: <I>novecientos</I> <li>Swe: <I>niohundra</I> <li>Urd: <I>نو سو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkSub1000</CODE></TD>
+<TD><A HREF="#Unit">Unit</A> <CODE>-&gt;</CODE> <A HREF="#Sub100">Sub100</A> <CODE>-&gt;</CODE> <A HREF="#Sub1000">Sub1000</A></TD>
+<TD><div class=reveal> <I>nine hundred and ninety - nine</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))</CODE> <li>Bul: <I>деветстотин деветдесет и деветима</I> <li>Cat: <I>nou -cents noranta- nou</I> <li>Dan: <I>ni hundrede og ni og halvfems</I> <li>Dut: <I>negenhonderdnegenennegentig</I> <li>Eng: <I>nine hundred and ninety - nine</I> <li>Fin: <I>yhdeksänsataayhdeksänkymmentäyhdeksän</I> <li>Fre: <I>neuf cent quatre-vingt - dix-neuf</I> <li>Ger: <I>neunhundertneunundneunzig</I> <li>Ita: <I>novecentonovantanove</I> <li>Nor: <I>ni hundre og nitti ni</I> <li>Pol: <I>dziewięćset dziewięćdziesiąt dziewięć</I> <li>Ron: <I>nouă sute nouăzeci şi nouă</I> <li>Rus: <I>девятьсот девяносто девять</I> <li>Spa: <I>novecientos noventa y nueve</I> <li>Swe: <I>niohundra nittionio</I> <li>Urd: <I>نو سو ننانوے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Subj"></A>
+<H2>Subj - subjunction</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>although_Subj</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD><div class=reveal> <I>although she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv although_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>въпреки че тя спи</I> <li>Cat: <I>encara que ella dormi</I> <li>Dan: <I>selv om hun sover</I> <li>Dut: <I>hoewel ze slaapt</I> <li>Eng: <I>although she sleeps</I> <li>Fin: <I>vaikka hän nukkuu</I> <li>Fre: <I>bien pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>obwohl sie schläft</I> <li>Ita: <I>benché lei dorma</I> <li>Nor: <I>selv om hun sover</I> <li>Pol: <I>pomimo ona śpi</I> <li>Ron: <I>deşi ea doarme</I> <li>Rus: <I>хотя она спдит</I> <li>Spa: <I>benché ella duerma</I> <li>Swe: <I>fast hon sover</I> <li>Urd: <I>اگرچہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>because_Subj</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD><div class=reveal> <I>because she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv because_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>защото тя спи</I> <li>Cat: <I>perque ella dorm</I> <li>Dan: <I>fordi hun sover</I> <li>Dut: <I>omdat ze slaapt</I> <li>Eng: <I>because she sleeps</I> <li>Fin: <I>koska hän nukkuu</I> <li>Fre: <I>parce pre {"que"; "qu'" / strs {"a"; "à"; "â"; "e"; "é"; "è"; "ê¨";</I> <li>Ger: <I>weil sie schläft</I> <li>Ita: <I>perché lei dorme</I> <li>Nor: <I>fordi hun sover</I> <li>Pol: <I>ponieważ ona śpi</I> <li>Ron: <I>deoarece ea doarme</I> <li>Rus: <I>потому что она спдит</I> <li>Spa: <I>porque ella duerme</I> <li>Swe: <I>eftersom hon sover</I> <li>Urd: <I>كیونكہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>if_Subj</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD><div class=reveal> <I>if she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv if_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>ако тя спи</I> <li>Cat: <I>si ella dorm</I> <li>Dan: <I>hvis hun sover</I> <li>Dut: <I>als ze slaapt</I> <li>Eng: <I>if she sleeps</I> <li>Fin: <I>jos hän nukkuu</I> <li>Fre: <I>si elle dort</I> <li>Ger: <I>wenn sie schläft</I> <li>Ita: <I>se lei dorme</I> <li>Nor: <I>hvis hun sover</I> <li>Pol: <I>jeśli ona śpi</I> <li>Ron: <I>dacă ea doarme</I> <li>Rus: <I>если она спдит</I> <li>Spa: <I>si ella duerme</I> <li>Swe: <I>om hon sover</I> <li>Urd: <I>اگر وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>that_Subj</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD><div class=reveal> <I>that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv that_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>*</I> <li>Cat: <I>que ella dormi</I> <li>Dan: <I>*</I> <li>Dut: <I>dat ze slaapt</I> <li>Eng: <I>that she sleeps</I> <li>Fin: <I>*</I> <li>Fre: <I>qu' elle dorme</I> <li>Ger: <I>daß sie schläft</I> <li>Ita: <I>che lei dorma</I> <li>Nor: <I>*</I> <li>Pol: <I>*</I> <li>Ron: <I>*</I> <li>Rus: <I>*</I> <li>Spa: <I>que ella duerma</I> <li>Swe: <I>att hon sover</I> <li>Urd: <I>كہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>when_Subj</CODE></TD>
+<TD><A HREF="#Subj" TITLE="Subj - subjunction">Subj</A></TD>
+<TD><div class=reveal> <I>when she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkAdv when_Subj (mkS (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>когато тя спи</I> <li>Cat: <I>quan ella dorm</I> <li>Dan: <I>når hun sover</I> <li>Dut: <I>als ze slaapt</I> <li>Eng: <I>when she sleeps</I> <li>Fin: <I>kun hän nukkuu</I> <li>Fre: <I>quand elle dort</I> <li>Ger: <I>wenn sie schläft</I> <li>Ita: <I>quando lei dorme</I> <li>Nor: <I>når hun sover</I> <li>Pol: <I>jeśli ona śpi</I> <li>Ron: <I>când ea doarme</I> <li>Rus: <I>когда она спдит</I> <li>Spa: <I>cuando ella duerme</I> <li>Swe: <I>när hon sover</I> <li>Urd: <I>جب وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Temp"></A>
+<H2>Temp - temporal and aspectual features</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkTemp</CODE></TD>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A> <CODE>-&gt;</CODE> <A HREF="#Ant" TITLE="Ant - anteriority">Ant</A> <CODE>-&gt;</CODE> <A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp</A></TD>
+<TD><I>e.g. past + anterior</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="Tense"></A>
+<H2>Tense - tense</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>conditionalTense</CODE></TD>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
+<TD><div class=reveal> <I>she would sleep</I> <div class=popup> <ul> <li>API: <CODE>mkS conditionalTense (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя би спалa</I> <li>Cat: <I>ella dormiria</I> <li>Dan: <I>hun ville sove</I> <li>Dut: <I>ze zou geslapen hebben</I> <li>Eng: <I>she would sleep</I> <li>Fin: <I>hän nukkuisi</I> <li>Fre: <I>elle dormirait</I> <li>Ger: <I>sie würde schlafen</I> <li>Ita: <I>lei dormirebbe</I> <li>Nor: <I>hun ville sove</I> <li>Pol: <I>ona spałaby</I> <li>Ron: <I>ea ar dormi</I> <li>Rus: <I>она спала бы</I> <li>Spa: <I>ella dormiría</I> <li>Swe: <I>hon skulle sova</I> <li>Urd: <I>وہ شاید سوئے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>futureTense</CODE></TD>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
+<TD><div class=reveal> <I>she will sleep</I> <div class=popup> <ul> <li>API: <CODE>mkS futureTense (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя ще спи</I> <li>Cat: <I>ella dormirà</I> <li>Dan: <I>hun vil sove</I> <li>Dut: <I>ze zal geslapen hebben</I> <li>Eng: <I>she will sleep</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dormira</I> <li>Ger: <I>sie wird schlafen</I> <li>Ita: <I>lei dormirà</I> <li>Nor: <I>hun vil sove</I> <li>Pol: <I>ona będzie spała</I> <li>Ron: <I>ea va dormi</I> <li>Rus: <I>она будет спать</I> <li>Spa: <I>ella dormirá</I> <li>Swe: <I>hon ska sova</I> <li>Urd: <I>وہ سوئے گی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>pastTense</CODE></TD>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
+<TD><div class=reveal> <I>she slept</I> <div class=popup> <ul> <li>API: <CODE>mkS pastTense (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спа</I> <li>Cat: <I>ella dormia</I> <li>Dan: <I>hun sov</I> <li>Dut: <I>ze sliep</I> <li>Eng: <I>she slept</I> <li>Fin: <I>hän nukkui</I> <li>Fre: <I>elle dormait</I> <li>Ger: <I>sie schlief</I> <li>Ita: <I>lei dormiva</I> <li>Nor: <I>hun sov</I> <li>Pol: <I>ona spała</I> <li>Ron: <I>ea a dormit</I> <li>Rus: <I>она спала</I> <li>Spa: <I>ella dormía</I> <li>Swe: <I>hon sov</I> <li>Urd: <I>وہ سوئی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>presentTense</CODE></TD>
+<TD><A HREF="#Tense" TITLE="Tense - tense">Tense</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkS presentTense (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Text"></A>
+<H2>Text - text consisting of several phrases</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>emptyText</CODE></TD>
+<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><I>(empty text)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr</A> <CODE>-&gt;</CODE> (<A HREF="#Punct">Punct</A>) <CODE>-&gt;</CODE> (<A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A>) <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>does she sleep ? yes .</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkPhr (mkQS (mkCl she_NP sleep_V))) questMarkPunct (mkText (mkPhr yes_Utt) fullStopPunct)</CODE> <li>Bul: <I>тя спи ли ? да .</I> <li>Cat: <I>ella dorm ? sí .</I> <li>Dan: <I>sover hun ? ja .</I> <li>Dut: <I>slaapt ze ? ja .</I> <li>Eng: <I>does she sleep ? yes .</I> <li>Fin: <I>nukkuuko hän ? kyllä .</I> <li>Fre: <I>elle dort ? oui .</I> <li>Ger: <I>schläft sie ? ja .</I> <li>Ita: <I>lei dorme ? sì .</I> <li>Nor: <I>sover hun ? ja .</I> <li>Pol: <I>czy ona śpi ? tak .</I> <li>Ron: <I>ea doarme ? da .</I> <li>Rus: <I>она спдит ? Да .</I> <li>Spa: <I>¿ ella duerme ? sí .</I> <li>Swe: <I>sover hon ? ja .</I> <li>Urd: <I>كیا وہ سوتی ہے ? ہاں .</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>yes .</I> <div class=popup> <ul> <li>API: <CODE>mkText yes_Utt</CODE> <li>Bul: <I>да .</I> <li>Cat: <I>sí .</I> <li>Dan: <I>ja .</I> <li>Dut: <I>ja .</I> <li>Eng: <I>yes .</I> <li>Fin: <I>kyllä .</I> <li>Fre: <I>oui .</I> <li>Ger: <I>ja .</I> <li>Ita: <I>sì .</I> <li>Nor: <I>ja .</I> <li>Pol: <I>tak .</I> <li>Ron: <I>da .</I> <li>Rus: <I>Да .</I> <li>Spa: <I>sí .</I> <li>Swe: <I>ja .</I> <li>Urd: <I>ہاں .</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>she slept .</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkS pastTense (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>тя спа .</I> <li>Cat: <I>ella dormia .</I> <li>Dan: <I>hun sov .</I> <li>Dut: <I>ze sliep .</I> <li>Eng: <I>she slept .</I> <li>Fin: <I>hän nukkui .</I> <li>Fre: <I>elle dormait .</I> <li>Ger: <I>sie schlief .</I> <li>Ita: <I>lei dormiva .</I> <li>Nor: <I>hun sov .</I> <li>Pol: <I>ona spała .</I> <li>Ron: <I>ea a dormit .</I> <li>Rus: <I>она спала .</I> <li>Spa: <I>ella dormía .</I> <li>Swe: <I>hon sov .</I> <li>Urd: <I>وہ سوئی .</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>she sleeps .</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи .</I> <li>Cat: <I>ella dorm .</I> <li>Dan: <I>hun sover .</I> <li>Dut: <I>ze slaapt .</I> <li>Eng: <I>she sleeps .</I> <li>Fin: <I>hän nukkuu .</I> <li>Fre: <I>elle dort .</I> <li>Ger: <I>sie schläft .</I> <li>Ita: <I>lei dorme .</I> <li>Nor: <I>hun sover .</I> <li>Pol: <I>ona śpi .</I> <li>Ron: <I>ea doarme .</I> <li>Rus: <I>она спдит .</I> <li>Spa: <I>ella duerme .</I> <li>Swe: <I>hon sover .</I> <li>Urd: <I>وہ سوتی ہے .</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>did she sleep ?</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkQS pastTense (mkQCl (mkCl she_NP sleep_V)))</CODE> <li>Bul: <I>тя спа ли ?</I> <li>Cat: <I>ella dormia ?</I> <li>Dan: <I>sov hun ?</I> <li>Dut: <I>sliep ze ?</I> <li>Eng: <I>did she sleep ?</I> <li>Fin: <I>nukkuiko hän ?</I> <li>Fre: <I>elle dormait ?</I> <li>Ger: <I>schlief sie ?</I> <li>Ita: <I>lei dormiva ?</I> <li>Nor: <I>sov hun ?</I> <li>Pol: <I>czy ona spała ?</I> <li>Ron: <I>ea a dormit ?</I> <li>Rus: <I>она спала ?</I> <li>Spa: <I>¿ ella dormía ?</I> <li>Swe: <I>sov hon ?</I> <li>Urd: <I>كیا وہ سوئی ?</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD>(<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>don't sleep !</I> <div class=popup> <ul> <li>API: <CODE>mkText negativePol (mkImp sleep_V)</CODE> <li>Bul: <I>не спи !</I> <li>Cat: <I>no dorm !</I> <li>Dan: <I>sov ikke !</I> <li>Dut: <I>slaap niet !</I> <li>Eng: <I>don't sleep !</I> <li>Fin: <I>älä nuku !</I> <li>Fre: <I>ne dors pas !</I> <li>Ger: <I>schlaf nicht !</I> <li>Ita: <I>non dormire !</I> <li>Nor: <I>sov ikke !</I> <li>Pol: <I>nie śpij !</I> <li>Ron: <I>nu dormi !</I> <li>Rus: <I>не спи !</I> <li>Spa: <I>¡ no duerme !</I> <li>Swe: <I>sov inte !</I> <li>Urd: <I>مت سونا !</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkText</CODE></TD>
+<TD><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A> <CODE>-&gt;</CODE> <A HREF="#Text" TITLE="Text - text consisting of several phrases">Text</A></TD>
+<TD><div class=reveal> <I>where ? here . when ? now !</I> <div class=popup> <ul> <li>API: <CODE>mkText (mkText (mkPhr (mkUtt where_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt here_Adv)))) (mkText (mkPhr (mkUtt when_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt now_Adv)) exclMarkPunct))</CODE> <li>Bul: <I>къде ? тук . кога ? сега !</I> <li>Cat: <I>on ? aquí . quan ? ara !</I> <li>Dan: <I>hvor ? her . hvornår ? nu !</I> <li>Dut: <I>waar ? hier . wanneer ? nu !</I> <li>Eng: <I>where ? here . when ? now !</I> <li>Fin: <I>missä ? täällä . milloin ? nyt !</I> <li>Fre: <I>oÃ¹ ? ici . quand ? maintenant !</I> <li>Ger: <I>wo ? hier . wann ? jetzt !</I> <li>Ita: <I>dove ? quà . quando ? adesso !</I> <li>Nor: <I>hvor ? her . når ? nå !</I> <li>Pol: <I>gdzie ? tutaj . kiedy ? teraz !</I> <li>Ron: <I>unde ? aici . când ? acum !</I> <li>Rus: <I>где ? здесь . когда ? сейчас !</I> <li>Spa: <I>¿ donde ? aquí . ¿ cuando ? ¡ ahora !</I> <li>Swe: <I>var ? här . när ? nu !</I> <li>Urd: <I>كہاں ? یہاں . كب ? اب !</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Unit"></A>
+<H2>Unit</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>n1_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>one</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n1_Unit</CODE> <li>Bul: <I>един</I> <li>Cat: <I>un</I> <li>Dan: <I>en</I> <li>Dut: <I>een</I> <li>Eng: <I>one</I> <li>Fin: <I>yksi</I> <li>Fre: <I>un</I> <li>Ger: <I>ein</I> <li>Ita: <I>uno</I> <li>Nor: <I>en</I> <li>Pol: <I>jeden</I> <li>Ron: <I>un</I> <li>Rus: <I>один</I> <li>Spa: <I>uno</I> <li>Swe: <I>en</I> <li>Urd: <I>ایك</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n2_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>two</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n2_Unit</CODE> <li>Bul: <I>двама</I> <li>Cat: <I>dos</I> <li>Dan: <I>to</I> <li>Dut: <I>twee</I> <li>Eng: <I>two</I> <li>Fin: <I>kaksi</I> <li>Fre: <I>deux</I> <li>Ger: <I>zwei</I> <li>Ita: <I>due</I> <li>Nor: <I>to</I> <li>Pol: <I>dwa</I> <li>Ron: <I>doi</I> <li>Rus: <I>два</I> <li>Spa: <I>dos</I> <li>Swe: <I>två</I> <li>Urd: <I>دو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n3_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>three</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n3_Unit</CODE> <li>Bul: <I>трима</I> <li>Cat: <I>tres</I> <li>Dan: <I>tre</I> <li>Dut: <I>drie</I> <li>Eng: <I>three</I> <li>Fin: <I>kolme</I> <li>Fre: <I>trois</I> <li>Ger: <I>drei</I> <li>Ita: <I>tre</I> <li>Nor: <I>tre</I> <li>Pol: <I>trzy</I> <li>Ron: <I>trei</I> <li>Rus: <I>три</I> <li>Spa: <I>tres</I> <li>Swe: <I>tre</I> <li>Urd: <I>تین</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n4_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>four</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n4_Unit</CODE> <li>Bul: <I>четирима</I> <li>Cat: <I>quatre</I> <li>Dan: <I>fire</I> <li>Dut: <I>vier</I> <li>Eng: <I>four</I> <li>Fin: <I>neljä</I> <li>Fre: <I>quatre</I> <li>Ger: <I>vier</I> <li>Ita: <I>quattro</I> <li>Nor: <I>fire</I> <li>Pol: <I>cztery</I> <li>Ron: <I>patru</I> <li>Rus: <I>четыре</I> <li>Spa: <I>cuatro</I> <li>Swe: <I>fyra</I> <li>Urd: <I>چار</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n5_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>five</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n5_Unit</CODE> <li>Bul: <I>петима</I> <li>Cat: <I>cinc</I> <li>Dan: <I>fem</I> <li>Dut: <I>vijf</I> <li>Eng: <I>five</I> <li>Fin: <I>viisi</I> <li>Fre: <I>cinq</I> <li>Ger: <I>fünf</I> <li>Ita: <I>cinque</I> <li>Nor: <I>fem</I> <li>Pol: <I>pięć</I> <li>Ron: <I>cinci</I> <li>Rus: <I>пять</I> <li>Spa: <I>cinco</I> <li>Swe: <I>fem</I> <li>Urd: <I>پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n6_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>six</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n6_Unit</CODE> <li>Bul: <I>шестима</I> <li>Cat: <I>sis</I> <li>Dan: <I>seks</I> <li>Dut: <I>zes</I> <li>Eng: <I>six</I> <li>Fin: <I>kuusi</I> <li>Fre: <I>six</I> <li>Ger: <I>sechs</I> <li>Ita: <I>sei</I> <li>Nor: <I>seks</I> <li>Pol: <I>sześć</I> <li>Ron: <I>şase</I> <li>Rus: <I>шесть</I> <li>Spa: <I>seis</I> <li>Swe: <I>sex</I> <li>Urd: <I>چھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n7_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>seven</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n7_Unit</CODE> <li>Bul: <I>седмина</I> <li>Cat: <I>set</I> <li>Dan: <I>syv</I> <li>Dut: <I>zeven</I> <li>Eng: <I>seven</I> <li>Fin: <I>seitsemän</I> <li>Fre: <I>sept</I> <li>Ger: <I>sieben</I> <li>Ita: <I>sette</I> <li>Nor: <I>sju</I> <li>Pol: <I>siedem</I> <li>Ron: <I>şapte</I> <li>Rus: <I>семь</I> <li>Spa: <I>siete</I> <li>Swe: <I>sju</I> <li>Urd: <I>سات</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n8_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>eight</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n8_Unit</CODE> <li>Bul: <I>осмина</I> <li>Cat: <I>vuit</I> <li>Dan: <I>otte</I> <li>Dut: <I>acht</I> <li>Eng: <I>eight</I> <li>Fin: <I>kahdeksan</I> <li>Fre: <I>huit</I> <li>Ger: <I>acht</I> <li>Ita: <I>otto</I> <li>Nor: <I>åtte</I> <li>Pol: <I>osiemm</I> <li>Ron: <I>opt</I> <li>Rus: <I>восемь</I> <li>Spa: <I>ocho</I> <li>Swe: <I>åtta</I> <li>Urd: <I>آتھ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>n9_Unit</CODE></TD>
+<TD><A HREF="#Unit">Unit</A></TD>
+<TD><div class=reveal> <I>nine</I> <div class=popup> <ul> <li>API: <CODE>mkNumeral n9_Unit</CODE> <li>Bul: <I>деветима</I> <li>Cat: <I>nou</I> <li>Dan: <I>ni</I> <li>Dut: <I>negen</I> <li>Eng: <I>nine</I> <li>Fin: <I>yhdeksän</I> <li>Fre: <I>neuf</I> <li>Ger: <I>neun</I> <li>Ita: <I>nove</I> <li>Nor: <I>ni</I> <li>Pol: <I>dziewięć</I> <li>Ron: <I>nouă</I> <li>Rus: <I>девять</I> <li>Spa: <I>nueve</I> <li>Swe: <I>nio</I> <li>Urd: <I>نو</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Utt"></A>
+<H2>Utt - sentence, question, word...</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>lets_Utt</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>let's sleep</I> <div class=popup> <ul> <li>API: <CODE>mkPhr (lets_Utt (mkVP sleep_V))</CODE> <li>Bul: <I>нека да спим</I> <li>Cat: <I>dormim</I> <li>Dan: <I>lad os sove</I> <li>Dut: <I>laten we slapen</I> <li>Eng: <I>let's sleep</I> <li>Fin: <I>nukutaan</I> <li>Fre: <I>dormons</I> <li>Ger: <I>schlafen wir</I> <li>Ita: <I>dormiamo</I> <li>Nor: <I>lat oss sove</I> <li>Pol: <I>śpijmy</I> <li>Ron: <I>sã dormim</I> <li>Rus: <I>давайте будем спать</I> <li>Spa: <I>durmamos</I> <li>Swe: <I>låt oss sova</I> <li>Urd: <I>آو سوئیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>she slept</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkS pastTense (mkCl she_NP sleep_V))</CODE> <li>Bul: <I>тя спа</I> <li>Cat: <I>ella dormia</I> <li>Dan: <I>hun sov</I> <li>Dut: <I>ze sliep</I> <li>Eng: <I>she slept</I> <li>Fin: <I>hän nukkui</I> <li>Fre: <I>elle dormait</I> <li>Ger: <I>sie schlief</I> <li>Ita: <I>lei dormiva</I> <li>Nor: <I>hun sov</I> <li>Pol: <I>ona spała</I> <li>Ron: <I>ea a dormit</I> <li>Rus: <I>она спала</I> <li>Spa: <I>ella dormía</I> <li>Swe: <I>hon sov</I> <li>Urd: <I>وہ سوئی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkCl she_NP sleep_V)</CODE> <li>Bul: <I>тя спи</I> <li>Cat: <I>ella dorm</I> <li>Dan: <I>hun sover</I> <li>Dut: <I>ze slaapt</I> <li>Eng: <I>she sleeps</I> <li>Fin: <I>hän nukkuu</I> <li>Fre: <I>elle dort</I> <li>Ger: <I>sie schläft</I> <li>Ita: <I>lei dorme</I> <li>Nor: <I>hun sover</I> <li>Pol: <I>ona śpi</I> <li>Ron: <I>ea doarme</I> <li>Rus: <I>она спдит</I> <li>Spa: <I>ella duerme</I> <li>Swe: <I>hon sover</I> <li>Urd: <I>وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>who didn't sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V))</CODE> <li>Bul: <I>кой не спа</I> <li>Cat: <I>qui no dormia</I> <li>Dan: <I>hvem sov ikke</I> <li>Dut: <I>wie sliep niet</I> <li>Eng: <I>who didn't sleep</I> <li>Fin: <I>kuka ei nukkunut</I> <li>Fre: <I>qui ne dormait pas</I> <li>Ger: <I>wer schlief nicht</I> <li>Ita: <I>chi non dormiva</I> <li>Nor: <I>hvem sov ikke</I> <li>Pol: <I>kto nie spał</I> <li>Ron: <I>cine nu a dormit</I> <li>Rus: <I>кто спал</I> <li>Spa: <I>quién no dormía</I> <li>Swe: <I>vem sov inte</I> <li>Urd: <I>كون نہیں سویا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkQCl who_IP sleep_V)</CODE> <li>Bul: <I>кой спи</I> <li>Cat: <I>qui dorm</I> <li>Dan: <I>hvem sover</I> <li>Dut: <I>wie slaapt</I> <li>Eng: <I>who sleeps</I> <li>Fin: <I>kuka nukkuu</I> <li>Fre: <I>qui dort</I> <li>Ger: <I>wer schläft</I> <li>Ita: <I>chi dorme</I> <li>Nor: <I>hvem sover</I> <li>Pol: <I>kto śpi</I> <li>Ron: <I>cine doarme</I> <li>Rus: <I>кто спдит</I> <li>Spa: <I>quién duerme</I> <li>Swe: <I>vem sover</I> <li>Urd: <I>كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD>(<A HREF="#ImpForm">ImpForm</A>) <CODE>-&gt;</CODE> (<A HREF="#Pol" TITLE="Pol - polarity">Pol</A>) <CODE>-&gt;</CODE> <A HREF="#Imp" TITLE="Imp - imperative">Imp</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>don't be men</I> <div class=popup> <ul> <li>API: <CODE>mkUtt pluralImpForm negativePol (mkImp (mkVP man_N))</CODE> <li>Bul: <I>не бъдете мъже</I> <li>Cat: <I>no sigueu homes</I> <li>Dan: <I>var ikke mænd</I> <li>Dut: <I>wezen mannen niet</I> <li>Eng: <I>don't be men</I> <li>Fin: <I>älkää olko miehiä</I> <li>Fre: <I>ne soyez pas hommes</I> <li>Ger: <I>seid Männer nicht</I> <li>Ita: <I>non siate uomini</I> <li>Nor: <I>var ikke menn</I> <li>Pol: <I>nie bądźcie mężczyzna</I> <li>Ron: <I>nu sunteţi oameni</I> <li>Rus: <I>не будьте человеками</I> <li>Spa: <I>no sed hombres</I> <li>Swe: <I>var inte män</I> <li>Urd: <I>مت آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>who</I> <div class=popup> <ul> <li>API: <CODE>mkUtt who_IP</CODE> <li>Bul: <I>кой</I> <li>Cat: <I>qui</I> <li>Dan: <I>hvem</I> <li>Dut: <I>wie</I> <li>Eng: <I>who</I> <li>Fin: <I>kuka</I> <li>Fre: <I>qui</I> <li>Ger: <I>wer</I> <li>Ita: <I>chi</I> <li>Nor: <I>hvem</I> <li>Pol: <I>kto</I> <li>Ron: <I>cine</I> <li>Rus: <I>кто</I> <li>Spa: <I>quién</I> <li>Swe: <I>vem</I> <li>Urd: <I>كون</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>why</I> <div class=popup> <ul> <li>API: <CODE>mkUtt why_IAdv</CODE> <li>Bul: <I>защо</I> <li>Cat: <I>per quË</I> <li>Dan: <I>hvorfor</I> <li>Dut: <I>waarom</I> <li>Eng: <I>why</I> <li>Fin: <I>miksi</I> <li>Fre: <I>pourquoi</I> <li>Ger: <I>warum</I> <li>Ita: <I>perché</I> <li>Nor: <I>hvorfor</I> <li>Pol: <I>dlaczego</I> <li>Ron: <I>de ce</I> <li>Rus: <I>почему</I> <li>Spa: <I>porqué</I> <li>Swe: <I>varför</I> <li>Urd: <I>كیوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>this man</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkNP this_Det man_N)</CODE> <li>Bul: <I>този мъж</I> <li>Cat: <I>aquest home</I> <li>Dan: <I>denne mand</I> <li>Dut: <I>deze man</I> <li>Eng: <I>this man</I> <li>Fin: <I>tämä mies</I> <li>Fre: <I>cet homme</I> <li>Ger: <I>dieser Mann</I> <li>Ita: <I>questo uomo</I> <li>Nor: <I>denne mannen</I> <li>Pol: <I>ten mężczyzna</I> <li>Ron: <I>acest om</I> <li>Rus: <I>этот человек</I> <li>Spa: <I>este hombre</I> <li>Swe: <I>den här mannen</I> <li>Urd: <I>یہ آدمی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>here</I> <div class=popup> <ul> <li>API: <CODE>mkUtt here_Adv</CODE> <li>Bul: <I>тук</I> <li>Cat: <I>aquí</I> <li>Dan: <I>her</I> <li>Dut: <I>hier</I> <li>Eng: <I>here</I> <li>Fin: <I>täällä</I> <li>Fre: <I>ici</I> <li>Ger: <I>hier</I> <li>Ita: <I>quà</I> <li>Nor: <I>her</I> <li>Pol: <I>tutaj</I> <li>Ron: <I>aici</I> <li>Rus: <I>здесь</I> <li>Spa: <I>aquí</I> <li>Swe: <I>här</I> <li>Urd: <I>یہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP sleep_V)</CODE> <li>Bul: <I>да спи</I> <li>Cat: <I>dormir</I> <li>Dan: <I>at sove</I> <li>Dut: <I>slapen</I> <li>Eng: <I>to sleep</I> <li>Fin: <I>nukkua</I> <li>Fre: <I>dormir</I> <li>Ger: <I>schlafen</I> <li>Ita: <I>dormire</I> <li>Nor: <I>å sove</I> <li>Pol: <I>spać</I> <li>Ron: <I>sã doarmă</I> <li>Rus: <I>спать</I> <li>Spa: <I>dormir</I> <li>Swe: <I>att sova</I> <li>Urd: <I>سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>beer</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkCN beer_N)</CODE> <li>Bul: <I>бира</I> <li>Cat: <I>cervesa</I> <li>Dan: <I>øl</I> <li>Dut: <I>bier</I> <li>Eng: <I>beer</I> <li>Fin: <I>olut</I> <li>Fre: <I>bière</I> <li>Ger: <I>Bier</I> <li>Ita: <I>birra</I> <li>Nor: <I>øl</I> <li>Pol: <I>piwo</I> <li>Ron: <I>bere</I> <li>Rus: <I>пиво</I> <li>Spa: <I>cerveza</I> <li>Swe: <I>öl</I> <li>Urd: <I>بییر</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>good</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkAP good_A)</CODE> <li>Bul: <I>добър</I> <li>Cat: <I>bo</I> <li>Dan: <I>god</I> <li>Dut: <I>goed</I> <li>Eng: <I>good</I> <li>Fin: <I>hyvä</I> <li>Fre: <I>bon</I> <li>Ger: <I>gut</I> <li>Ita: <I>buono</I> <li>Nor: <I>god</I> <li>Pol: <I>dobry</I> <li>Ron: <I>bun</I> <li>Rus: <I>хорошее</I> <li>Spa: <I>bueno</I> <li>Swe: <I>god</I> <li>Urd: <I>اچھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkUtt</CODE></TD>
+<TD><A HREF="#Card" TITLE="Card - cardinal number">Card</A> <CODE>-&gt;</CODE> <A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>five</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkCard (mkNumeral n5_Unit))</CODE> <li>Bul: <I>пет</I> <li>Cat: <I>cinc</I> <li>Dan: <I>fem</I> <li>Dut: <I>vijf</I> <li>Eng: <I>five</I> <li>Fin: <I>viisi</I> <li>Fre: <I>cinq</I> <li>Ger: <I>fünf</I> <li>Ita: <I>cinque</I> <li>Nor: <I>fem</I> <li>Pol: <I>pięć</I> <li>Ron: <I>cinci</I> <li>Rus: <I>пять</I> <li>Spa: <I>cinco</I> <li>Swe: <I>fem</I> <li>Urd: <I>پانچ</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>no_Utt</CODE></TD>
+<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>no</I> <div class=popup> <ul> <li>API: <CODE>no_Utt</CODE> <li>Bul: <I>не</I> <li>Cat: <I>no</I> <li>Dan: <I>nej</I> <li>Dut: <I>neen</I> <li>Eng: <I>no</I> <li>Fin: <I>ei</I> <li>Fre: <I>non</I> <li>Ger: <I>nein</I> <li>Ita: <I>no</I> <li>Nor: <I>nei</I> <li>Pol: <I>nie</I> <li>Ron: <I>nu</I> <li>Rus: <I>Нет</I> <li>Spa: <I>no</I> <li>Swe: <I>nej</I> <li>Urd: <I>نہیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>yes_Utt</CODE></TD>
+<TD><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt</A></TD>
+<TD><div class=reveal> <I>yes</I> <div class=popup> <ul> <li>API: <CODE>yes_Utt</CODE> <li>Bul: <I>да</I> <li>Cat: <I>sí</I> <li>Dan: <I>ja</I> <li>Dut: <I>ja</I> <li>Eng: <I>yes</I> <li>Fin: <I>kyllä</I> <li>Fre: <I>oui</I> <li>Ger: <I>ja</I> <li>Ita: <I>sì</I> <li>Nor: <I>ja</I> <li>Pol: <I>tak</I> <li>Ron: <I>da</I> <li>Rus: <I>Да</I> <li>Spa: <I>sí</I> <li>Swe: <I>ja</I> <li>Urd: <I>ہاں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="V"></A>
+<H2>V - one-place verb</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="V2"></A>
+<H2>V2 - two-place verb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>have_V2</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><div class=reveal> <I>to have it</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP have_V2 it_NP)</CODE> <li>Bul: <I>да има него</I> <li>Cat: <I>tenir ho</I> <li>Dan: <I>at have det</I> <li>Dut: <I>hebben</I> <li>Eng: <I>to have it</I> <li>Fin: <I>olla sen</I> <li>Fre: <I>l' avoir</I> <li>Ger: <I>es haben</I> <li>Ita: <I>avere lo</I> <li>Nor: <I>å ha det</I> <li>Pol: <I>mieć je</I> <li>Ron: <I>sã îl aibă</I> <li>Rus: <I>иметь его</I> <li>Spa: <I>tener lo</I> <li>Swe: <I>att ha det</I> <li>Urd: <I>اس راكھنا</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="V2A"></A>
+<H2>V2A - verb with NP and AP complement</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="V2Q"></A>
+<H2>V2Q - verb with NP and Q complement</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="V2S"></A>
+<H2>V2S - verb with NP and S complement</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="V2V"></A>
+<H2>V2V - verb with NP and V complement</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="V3"></A>
+<H2>V3 - three-place verb</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="VA"></A>
+<H2>VA - adjective-complement verb</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="VP"></A>
+<H2>VP - verb phrase</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP sleep_V)</CODE> <li>Bul: <I>да спи</I> <li>Cat: <I>dormir</I> <li>Dan: <I>at sove</I> <li>Dut: <I>slapen</I> <li>Eng: <I>to sleep</I> <li>Fin: <I>nukkua</I> <li>Fre: <I>dormir</I> <li>Ger: <I>schlafen</I> <li>Ita: <I>dormire</I> <li>Nor: <I>å sove</I> <li>Pol: <I>spać</I> <li>Ron: <I>sã doarmă</I> <li>Rus: <I>спать</I> <li>Spa: <I>dormir</I> <li>Swe: <I>att sova</I> <li>Urd: <I>سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to love him</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP love_V2 he_NP)</CODE> <li>Bul: <I>да обича него</I> <li>Cat: <I>estimar el</I> <li>Dan: <I>at elske ham</I> <li>Dut: <I>liefhebben</I> <li>Eng: <I>to love him</I> <li>Fin: <I>rakastaa häntä</I> <li>Fre: <I>l' aimer</I> <li>Ger: <I>ihn lieben</I> <li>Ita: <I>amare lo</I> <li>Nor: <I>å elske ham</I> <li>Pol: <I>kochać jego</I> <li>Ron: <I>sã îl iubească</I> <li>Rus: <I>любить его</I> <li>Spa: <I>amar lo</I> <li>Swe: <I>att älska honom</I> <li>Urd: <I>اس كو پیار كرنا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to send it to him</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP send_V3 it_NP he_NP)</CODE> <li>Bul: <I>да прати него до него</I> <li>Cat: <I>enviar ho li</I> <li>Dan: <I>at sende det til ham</I> <li>Dut: <I>naar hem sturen</I> <li>Eng: <I>to send it to him</I> <li>Fin: <I>lähettää sen hänelle</I> <li>Fre: <I>l' envoyer lui</I> <li>Ger: <I>es ihm schicken</I> <li>Ita: <I>mandare lo gli</I> <li>Nor: <I>å sende det til ham</I> <li>Pol: <I>wysłać do niego je</I> <li>Ron: <I>sã i -l trimită</I> <li>Rus: <I>посылать нему его</I> <li>Spa: <I>mandar lo le</I> <li>Swe: <I>att skicka det till honom</I> <li>Urd: <I>اس كو بھیجنا اس كو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to want to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP want_VV (mkVP sleep_V))</CODE> <li>Bul: <I>да иска да спи</I> <li>Cat: <I>voler dormir</I> <li>Dan: <I>at ville sove</I> <li>Dut: <I>slapen willen</I> <li>Eng: <I>to want to sleep</I> <li>Fin: <I>tahtoa nukkua</I> <li>Fre: <I>vouloir dormir</I> <li>Ger: <I>schlafen wollen</I> <li>Ita: <I>volere dormire</I> <li>Nor: <I>å ville sove</I> <li>Pol: <I>zechcieć spać</I> <li>Ron: <I>sã vrea sã doarmă</I> <li>Rus: <I>хотеть спать</I> <li>Spa: <I>querer dormir</I> <li>Swe: <I>att vilja sova</I> <li>Urd: <I>چاہنا سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to know that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V)))</CODE> <li>Bul: <I>да знае , че тя спи</I> <li>Cat: <I>saber que ella dorm</I> <li>Dan: <I>at vide at hun sover</I> <li>Dut: <I>dat ze slaapt weten</I> <li>Eng: <I>to know that she sleeps</I> <li>Fin: <I>tietää että hän nukkuu</I> <li>Fre: <I>savoir qu' elle dort</I> <li>Ger: <I>daß sie schläft wissen</I> <li>Ita: <I>sapere che lei dorme</I> <li>Nor: <I>å vite at hun sover</I> <li>Pol: <I>wiedzieć , że ona śpi</I> <li>Ron: <I>sã ştie cã ea doarme</I> <li>Rus: <I>*</I> <li>Spa: <I>saber que ella duerme</I> <li>Swe: <I>att veta att hon sover</I> <li>Urd: <I>جاننا كہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to wonder who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))</CODE> <li>Bul: <I>да се чуди кой спи</I> <li>Cat: <I>preguntar qui dorm</I> <li>Dan: <I>at undres hvem som sover</I> <li>Dut: <I>wie slaapt afvragen</I> <li>Eng: <I>to wonder who sleeps</I> <li>Fin: <I>ihmetellä kuka nukkuu</I> <li>Fre: <I>étonner qui dort</I> <li>Ger: <I>sich wer schläft wundern</I> <li>Ita: <I>domandare chi dorme</I> <li>Nor: <I>å undre hvem som sover</I> <li>Pol: <I>zastanowić się , kto śpi</I> <li>Ron: <I>sã se întrebe cine doarme</I> <li>Rus: <I>интересовать кто спдит</I> <li>Spa: <I>preguntar quién duerme</I> <li>Swe: <I>att undra vem som sover</I> <li>Urd: <I>حیران ہونا كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to become red</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP become_VA (mkAP red_A))</CODE> <li>Bul: <I>да стане червено</I> <li>Cat: <I>tornar vermell</I> <li>Dan: <I>at blive rød</I> <li>Dut: <I>rood worden</I> <li>Eng: <I>to become red</I> <li>Fin: <I>tulla punaiseksi</I> <li>Fre: <I>devenir rouge</I> <li>Ger: <I>rot werden</I> <li>Ita: <I>diventare rossa</I> <li>Nor: <I>å bli rød</I> <li>Pol: <I>stać się czerwony</I> <li>Ron: <I>sã devină roşu</I> <li>Rus: <I>стать</I> <li>Spa: <I>convertir roja</I> <li>Swe: <I>att bli röd</I> <li>Urd: <I>بننا لال</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to paint it red</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP paint_V2A it_NP (mkAP red_A))</CODE> <li>Bul: <I>да нарисува него червено</I> <li>Cat: <I>pintar ho en vermell</I> <li>Dan: <I>at male det rødt</I> <li>Dut: <I>rood schilderen</I> <li>Eng: <I>to paint it red</I> <li>Fin: <I>maalata sen punaiseksi</I> <li>Fre: <I>le peindre en rouge</I> <li>Ger: <I>es rot malen</I> <li>Ita: <I>dipingere lo rosso</I> <li>Nor: <I>å male det rødt</I> <li>Pol: <I>pomalować je na czerwono</I> <li>Ron: <I>sã îl picteze roşu</I> <li>Rus: <I>рисовать красным его</I> <li>Spa: <I>pintar lo en rojo</I> <li>Swe: <I>att måla det rött</I> <li>Urd: <I>اس كو رنگ كرنا لال</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to answer to him that she sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V)))</CODE> <li>Bul: <I>да отговори му , че тя спи</I> <li>Cat: <I>respondre li que ella dorm</I> <li>Dan: <I>at svare til ham at hun sover</I> <li>Dut: <I>dat ze slaapt antwoorden</I> <li>Eng: <I>to answer to him that she sleeps</I> <li>Fin: <I>vastata hänelle että hän nukkuu</I> <li>Fre: <I>répondre lui qu' elle dort</I> <li>Ger: <I>ihm daß sie schläft antworten</I> <li>Ita: <I>rispondere gli che lei dorme</I> <li>Nor: <I>å svare til ham at hun sover</I> <li>Pol: <I>odpowiedzieć jemu , że ona śpi</I> <li>Ron: <I>sã îi răspundă cã ea doarme</I> <li>Rus: <I>отвечать , что она спдит его</I> <li>Spa: <I>responder le que ella duerme</I> <li>Swe: <I>att svara till honom att hon sover</I> <li>Urd: <I>اس كو جواب دینا كہ وہ سوتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to ask him who sleeps</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))</CODE> <li>Bul: <I>да пита него кой спи</I> <li>Cat: <I>preguntar li qui dorm</I> <li>Dan: <I>at spørge ham hvem som sover</I> <li>Dut: <I>wie slaapt vragen</I> <li>Eng: <I>to ask him who sleeps</I> <li>Fin: <I>kysyä häneltä kuka nukkuu</I> <li>Fre: <I>demander lui qui dort</I> <li>Ger: <I>ihn wer schläft fragen</I> <li>Ita: <I>chiedere gli chi dorme</I> <li>Nor: <I>å spørre ham hvem som sover</I> <li>Pol: <I>spytać jego , kto śpi</I> <li>Ron: <I>sã îl întrebe cine doarme</I> <li>Rus: <I>спрашивать кто спдит его</I> <li>Spa: <I>preguntar le quién duerme</I> <li>Swe: <I>att fråga honom vem som sover</I> <li>Urd: <I>اس سے پوچھنا كہ كون سوتا ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to beg him to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP beg_V2V he_NP (mkVP sleep_V))</CODE> <li>Bul: <I>да моли него да спи</I> <li>Cat: <I>demanar el a dormir</I> <li>Dan: <I>at bede ham at sove</I> <li>Dut: <I>te slapen smeken</I> <li>Eng: <I>to beg him to sleep</I> <li>Fin: <I>pyytää häntä nukkumaan</I> <li>Fre: <I>le demander à dormir</I> <li>Ger: <I>ihn zu schlafen bitten</I> <li>Ita: <I>pregare lo di dormire</I> <li>Nor: <I>å be ham att sove</I> <li>Pol: <I>*</I> <li>Ron: <I>sã îl roage sã doarmă</I> <li>Rus: <I>просить спать его</I> <li>Spa: <I>rogar lo a dormir</I> <li>Swe: <I>att be honom att sova</I> <li>Urd: <I>اس سے التجا كرنا سونے كی</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be old</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP old_A)</CODE> <li>Bul: <I>да е старо</I> <li>Cat: <I>ser vell</I> <li>Dan: <I>at være gammel</I> <li>Dut: <I>oud zijn</I> <li>Eng: <I>to be old</I> <li>Fin: <I>olla vanha</I> <li>Fre: <I>être vieille</I> <li>Ger: <I>alt sein</I> <li>Ita: <I>essere vecchia</I> <li>Nor: <I>å være gammel</I> <li>Pol: <I>być stary</I> <li>Ron: <I>sã fie vechi</I> <li>Rus: <I>быть старым</I> <li>Spa: <I>ser vieja</I> <li>Swe: <I>att vara gammal</I> <li>Urd: <I>بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be older than he</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP old_A he_NP)</CODE> <li>Bul: <I>да е по - старо от него</I> <li>Cat: <I>ser més vell que ell</I> <li>Dan: <I>at være ældre end han</I> <li>Dut: <I>ouder dan hij zijn</I> <li>Eng: <I>to be older than he</I> <li>Fin: <I>olla vanhempi kuin hän</I> <li>Fre: <I>être plus vieille que lui</I> <li>Ger: <I>älter als er sein</I> <li>Ita: <I>essere più vecchia di lui</I> <li>Nor: <I>å være eldre enn han</I> <li>Pol: <I>być starszy niż on</I> <li>Ron: <I>sã fie mai vechi decât el</I> <li>Rus: <I>быть старше него</I> <li>Spa: <I>ser más vieja que él</I> <li>Swe: <I>att vara äldre än han</I> <li>Urd: <I>اس سے بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#A2" TITLE="A2 - two-place adjective">A2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be married to him</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP married_A2 he_NP)</CODE> <li>Bul: <I>да е женено за него</I> <li>Cat: <I>ser casata a ell</I> <li>Dan: <I>at være gift med ham</I> <li>Dut: <I>getrouwd met hem zijn</I> <li>Eng: <I>to be married to him</I> <li>Fin: <I>olla avioitunut hänen kanssa</I> <li>Fre: <I>être mariée à lui</I> <li>Ger: <I>verheiratet mit ihm sein</I> <li>Ita: <I>essere sposata con lui</I> <li>Nor: <I>å være gift med ham</I> <li>Pol: <I>być zaślubiony jemu</I> <li>Ron: <I>sã fie căsătorit cu el</I> <li>Rus: <I>быть замужем за им</I> <li>Spa: <I>ser casada a él</I> <li>Swe: <I>att vara gift med honom</I> <li>Urd: <I>اس سے [شادی كرنa]</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be very old</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkAP very_AdA old_A))</CODE> <li>Bul: <I>да е много старо</I> <li>Cat: <I>ser molt vell</I> <li>Dan: <I>at være meget gammel</I> <li>Dut: <I>erg oud zijn</I> <li>Eng: <I>to be very old</I> <li>Fin: <I>olla erittäin vanha</I> <li>Fre: <I>être très vieille</I> <li>Ger: <I>sehr alt sein</I> <li>Ita: <I>essere molto vecchia</I> <li>Nor: <I>å være mye gammel</I> <li>Pol: <I>być bardzo stary</I> <li>Ron: <I>sã fie foarte vechi</I> <li>Rus: <I>быть очень старым</I> <li>Spa: <I>ser muy vieja</I> <li>Swe: <I>att vara mycket gammal</I> <li>Urd: <I>بہت بوڑھا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be a woman</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP woman_N)</CODE> <li>Bul: <I>да е жена</I> <li>Cat: <I>ser dona</I> <li>Dan: <I>at være en kvinde</I> <li>Dut: <I>vrouw zijn</I> <li>Eng: <I>to be a woman</I> <li>Fin: <I>olla nainen</I> <li>Fre: <I>être femme</I> <li>Ger: <I>eine Frau sein</I> <li>Ita: <I>essere donna</I> <li>Nor: <I>å være ei kvinne</I> <li>Pol: <I>być kobieta</I> <li>Ron: <I>sã fie femeie</I> <li>Rus: <I>быть женщиной</I> <li>Spa: <I>ser mujer</I> <li>Swe: <I>att vara en kvinna</I> <li>Urd: <I>عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be an old woman</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkCN old_A woman_N))</CODE> <li>Bul: <I>да е стара жена</I> <li>Cat: <I>ser dona vell</I> <li>Dan: <I>at være en gammel kvinde</I> <li>Dut: <I>oude vrouw zijn</I> <li>Eng: <I>to be an old woman</I> <li>Fin: <I>olla vanha nainen</I> <li>Fre: <I>être vieille femme</I> <li>Ger: <I>eine alte Frau sein</I> <li>Ita: <I>essere vecchia donna</I> <li>Nor: <I>å være ei gammel kvinne</I> <li>Pol: <I>być stara kobieta</I> <li>Ron: <I>sã fie femeie veche</I> <li>Rus: <I>быть старой женщиной</I> <li>Spa: <I>ser vieja mujer</I> <li>Swe: <I>att vara en gammal kvinna</I> <li>Urd: <I>بوڑھی عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be the woman</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkNP the_Det woman_N))</CODE> <li>Bul: <I>да е жената</I> <li>Cat: <I>ser la dona</I> <li>Dan: <I>at være kvinden</I> <li>Dut: <I>de vrouw zijn</I> <li>Eng: <I>to be the woman</I> <li>Fin: <I>olla nainen</I> <li>Fre: <I>être la femme</I> <li>Ger: <I>die Frau sein</I> <li>Ita: <I>essere la donna</I> <li>Nor: <I>å være kvinna</I> <li>Pol: <I>być kobietą</I> <li>Ron: <I>sã fie femeia</I> <li>Rus: <I>быть женщиной</I> <li>Spa: <I>ser la mujer</I> <li>Swe: <I>att vara kvinnan</I> <li>Urd: <I>عورت</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be here</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP here_Adv)</CODE> <li>Bul: <I>да е тук</I> <li>Cat: <I>ser aquí</I> <li>Dan: <I>at være her</I> <li>Dut: <I>hier zijn</I> <li>Eng: <I>to be here</I> <li>Fin: <I>olla täällä</I> <li>Fre: <I>être ici</I> <li>Ger: <I>hier sein</I> <li>Ita: <I>essere quà</I> <li>Nor: <I>å være her</I> <li>Pol: <I>być tutaj</I> <li>Ron: <I>sã fie aici</I> <li>Rus: <I>быть здесь</I> <li>Spa: <I>ser aquí</I> <li>Swe: <I>att vara här</I> <li>Urd: <I>یہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to sleep here</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkVP sleep_V) here_Adv)</CODE> <li>Bul: <I>да спи тук</I> <li>Cat: <I>dormir aquí</I> <li>Dan: <I>at sove her</I> <li>Dut: <I>hier slapen</I> <li>Eng: <I>to sleep here</I> <li>Fin: <I>nukkua täällä</I> <li>Fre: <I>dormir ici</I> <li>Ger: <I>hier schlafen</I> <li>Ita: <I>dormire quà</I> <li>Nor: <I>å sove her</I> <li>Pol: <I>tutaj spać</I> <li>Ron: <I>sã doarmă aici</I> <li>Rus: <I>спать</I> <li>Spa: <I>dormir aquí</I> <li>Swe: <I>att sova här</I> <li>Urd: <I>سونا یہاں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>always to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP always_AdV (mkVP sleep_V))</CODE> <li>Bul: <I>винаги да спи</I> <li>Cat: <I>dormir sempre</I> <li>Dan: <I>at altid sove</I> <li>Dut: <I>altijd slapen</I> <li>Eng: <I>always to sleep</I> <li>Fin: <I>nukkua aina</I> <li>Fre: <I>dormir toujours</I> <li>Ger: <I>immer schlafen</I> <li>Ita: <I>dormire sempre</I> <li>Nor: <I>å altid sove</I> <li>Pol: <I>zawsze spać</I> <li>Ron: <I>sã doarmă mereu</I> <li>Rus: <I>спать</I> <li>Spa: <I>dormir siempre</I> <li>Swe: <I>att alltid sova</I> <li>Urd: <I>ہمیشہ سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to paint it black</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)) it_NP)</CODE> <li>Bul: <I>да нарисува него черно</I> <li>Cat: <I>pintar ho en negre</I> <li>Dan: <I>at male det sort</I> <li>Dut: <I>zwart schilderen</I> <li>Eng: <I>to paint it black</I> <li>Fin: <I>maalata sen mustaksi</I> <li>Fre: <I>le peindre en noir</I> <li>Ger: <I>es schwarz malen</I> <li>Ita: <I>dipingere lo nero</I> <li>Nor: <I>å male det svart</I> <li>Pol: <I>pomalować je na czarno</I> <li>Ron: <I>sã îl picteze negru</I> <li>Rus: <I>рисовать чёрным его</I> <li>Spa: <I>pintar lo en negro</I> <li>Swe: <I>att måla det svart</I> <li>Urd: <I>اس كو رنگ كرنا كالا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to paint itself black</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (reflexiveVP (mkVPSlash paint_V2A (mkAP black_A)))</CODE> <li>Bul: <I>да се нарисува черно</I> <li>Cat: <I>pintar en negre</I> <li>Dan: <I>at male sig sort</I> <li>Dut: <I>zich zwart schilderen</I> <li>Eng: <I>to paint itself black</I> <li>Fin: <I>maalata itsensä mustaksi</I> <li>Fre: <I>peindre en noir</I> <li>Ger: <I>sich schwarz malen</I> <li>Ita: <I>dipingere nero</I> <li>Nor: <I>å male seg svart</I> <li>Pol: <I>pomalować siebie na czarno</I> <li>Ron: <I>sã se picteze negru</I> <li>Rus: <I>рисовать чёрным себя</I> <li>Spa: <I>pintar en negro</I> <li>Swe: <I>att måla sig svart</I> <li>Urd: <I>رنگ كرنا خود كو كالا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVP</CODE></TD>
+<TD><A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be warm</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP (mkComp (mkAP warm_A)))</CODE> <li>Bul: <I>да е топло</I> <li>Cat: <I>ser tebia</I> <li>Dan: <I>at være varm</I> <li>Dut: <I>warm zijn</I> <li>Eng: <I>to be warm</I> <li>Fin: <I>olla lämmin</I> <li>Fre: <I>être chaude</I> <li>Ger: <I>warm sein</I> <li>Ita: <I>essere calda</I> <li>Nor: <I>å være varm</I> <li>Pol: <I>być ciepły</I> <li>Ron: <I>sã fie călduţ</I> <li>Rus: <I>быть тёплым</I> <li>Spa: <I>ser tibia</I> <li>Swe: <I>att vara varm</I> <li>Urd: <I>گرم</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>passiveVP</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be loved</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (passiveVP love_V2)</CODE> <li>Bul: <I>да е обичано</I> <li>Cat: <I>ser estimada</I> <li>Dan: <I>at blive elsket</I> <li>Dut: <I>liefgehad worden</I> <li>Eng: <I>to be loved</I> <li>Fin: <I>rakastetaan</I> <li>Fre: <I>être aimée</I> <li>Ger: <I>geliebt werden</I> <li>Ita: <I>venire amata</I> <li>Nor: <I>å bli elska</I> <li>Pol: <I>być kochany</I> <li>Ron: <I>sã fie iubit</I> <li>Rus: <I>любиться</I> <li>Spa: <I>ser amada</I> <li>Swe: <I>att bli älskad</I> <li>Urd: <I>پیار كرنا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>passiveVP</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be loved by her</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (passiveVP love_V2 she_NP)</CODE> <li>Bul: <I>да е обичано чрез нея</I> <li>Cat: <I>ser estimada per ella</I> <li>Dan: <I>at blive elsket af hende</I> <li>Dut: <I>door haar liefgehad worden</I> <li>Eng: <I>to be loved by her</I> <li>Fin: <I>rakastetaan hänen toimesta</I> <li>Fre: <I>être aimée par elle</I> <li>Ger: <I>durch sie geliebt werden</I> <li>Ita: <I>venire amata da lei</I> <li>Nor: <I>å bli elska av henne</I> <li>Pol: <I>przez nią być kochany</I> <li>Ron: <I>sã fie iubit de către ea</I> <li>Rus: <I>любиться</I> <li>Spa: <I>ser amada por ella</I> <li>Swe: <I>att bli älskad av henne</I> <li>Urd: <I>پیار كرنا اس</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>progressiveVP</CODE></TD>
+<TD><A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to be sleeping</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (progressiveVP (mkVP sleep_V))</CODE> <li>Bul: <I>да спи</I> <li>Cat: <I>estar dormint</I> <li>Dan: <I>at være ved å sove</I> <li>Dut: <I>aan het slapen zijn</I> <li>Eng: <I>to be sleeping</I> <li>Fin: <I>olla nukkumassa</I> <li>Fre: <I>être en train de dormir</I> <li>Ger: <I>eben schlafen</I> <li>Ita: <I>stare dormendo</I> <li>Nor: <I>å være ved å sove</I> <li>Pol: <I>spać</I> <li>Ron: <I>sã doarmă</I> <li>Rus: <I>спать</I> <li>Spa: <I>estar durmiendo</I> <li>Swe: <I>att hålla på att sova</I> <li>Urd: <I>سونا</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>reflexiveVP</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><div class=reveal> <I>to love itself</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (reflexiveVP love_V2)</CODE> <li>Bul: <I>да се обича</I> <li>Cat: <I>estimar</I> <li>Dan: <I>at elske sig</I> <li>Dut: <I>zich liefhebben</I> <li>Eng: <I>to love itself</I> <li>Fin: <I>rakastaa itseänsä</I> <li>Fre: <I>aimer</I> <li>Ger: <I>sich lieben</I> <li>Ita: <I>amare</I> <li>Nor: <I>å elske seg</I> <li>Pol: <I>kochać siebie</I> <li>Ron: <I>sã se iubească</I> <li>Rus: <I>любить себя</I> <li>Spa: <I>amar</I> <li>Swe: <I>att älska sig</I> <li>Urd: <I>پیار كرنا خود كو</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>reflexiveVP</CODE></TD>
+<TD><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A></TD>
+<TD><I>paint itself black</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="VPSlash"></A>
+<H2>VPSlash - verb phrase missing complement</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>whom does she see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2))</CODE> <li>Bul: <I>кого вижда тя</I> <li>Cat: <I>qui veu ella</I> <li>Dan: <I>hvem ser hun</I> <li>Dut: <I>wie zit ze</I> <li>Eng: <I>whom does she see</I> <li>Fin: <I>kenet hän näkee</I> <li>Fre: <I>qui voit elle</I> <li>Ger: <I>wen sieht sie</I> <li>Ita: <I>chi vede lei</I> <li>Nor: <I>hvem ser hun</I> <li>Pol: <I>kogo widzi ona</I> <li>Ron: <I>pe cine vede ea</I> <li>Rus: <I>кого она видит</I> <li>Spa: <I>quién ve ella</I> <li>Swe: <I>vem ser hon</I> <li>Urd: <I>كون وہ دیكھتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V3" TITLE="V3 - three-place verb">V3</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>to whom does she send it</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash send_V3 it_NP))</CODE> <li>Bul: <I>до кого праща него тя</I> <li>Cat: <I>a qui ho envia ella</I> <li>Dan: <I>til hvem sender hun det</I> <li>Dut: <I>naar wie stuurt ze het</I> <li>Eng: <I>to whom does she send it</I> <li>Fin: <I>kenelle hän lähettää sen</I> <li>Fre: <I>à qui l' envoie elle</I> <li>Ger: <I>wem schickt sie es</I> <li>Ita: <I>a chi lo manda lei</I> <li>Nor: <I>til hvem sender hun det</I> <li>Pol: <I>do kogo ona wysyła je</I> <li>Ron: <I>cui îl trimite ea</I> <li>Rus: <I>кому она посылает его</I> <li>Spa: <I>a quién lo manda ella</I> <li>Swe: <I>till vem skickar hon det</I> <li>Urd: <I>كون وہ اس كو بھیجتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A> <CODE>-&gt;</CODE> <A HREF="#AP" TITLE="AP - adjectival phrase">AP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>whom does she paint red</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash paint_V2A (mkAP red_A)))</CODE> <li>Bul: <I>кого рисува червен тя</I> <li>Cat: <I>qui pinta ella en vermell</I> <li>Dan: <I>hvem maler hun rød</I> <li>Dut: <I>wie schildeert ze rood</I> <li>Eng: <I>whom does she paint red</I> <li>Fin: <I>kenet hän maalaa punaiseksi</I> <li>Fre: <I>qui peint elle en rouge</I> <li>Ger: <I>wen malt sie rot</I> <li>Ita: <I>chi dipinge lei rosso</I> <li>Nor: <I>hvem maler hun rød</I> <li>Pol: <I>kogo ona maluje na czerwono</I> <li>Ron: <I>pe cine pictează ea roşu</I> <li>Rus: <I>кого она рисует красным</I> <li>Spa: <I>quién pinta ella en rojo</I> <li>Swe: <I>vem målar hon röd</I> <li>Urd: <I>كون وہ لال رنگ كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A> <CODE>-&gt;</CODE> <A HREF="#QS" TITLE="QS - question">QS</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>atomic term where_Idv</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_Idv (mkCl i_NP sleep_V)))))</CODE> <li>Bul: <I>*</I> <li>Cat: <I>*</I> <li>Dan: <I>*</I> <li>Dut: <I>*</I> <li>Eng: <I>*</I> <li>Fin: <I>*</I> <li>Fre: <I>*</I> <li>Ger: <I>*</I> <li>Ita: <I>*</I> <li>Nor: <I>*</I> <li>Pol: <I>*</I> <li>Ron: <I>*</I> <li>Rus: <I>*</I> <li>Spa: <I>*</I> <li>Swe: <I>*</I> <li>Urd: <I>*</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A> <CODE>-&gt;</CODE> <A HREF="#S" TITLE="S - declarative sentence">S</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>to whom does she answer that I sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash answer_V2S (mkS (mkCl i_NP sleep_V))))</CODE> <li>Bul: <I>на на кого отговаря , че аз спя тя</I> <li>Cat: <I>a qui respon ella que jo dormo</I> <li>Dan: <I>til hvem svarer hun at jeg sover</I> <li>Dut: <I>wie antwoordt ze dat ik slaap</I> <li>Eng: <I>to whom does she answer that I sleep</I> <li>Fin: <I>kenelle hän vastaa että minä nukun</I> <li>Fre: <I>à qui répond elle que je dors</I> <li>Ger: <I>wem antwortet sie daß ich schlafe</I> <li>Ita: <I>a chi risponde lei che io dormo</I> <li>Nor: <I>til hvem svarer hun at jeg sover</I> <li>Pol: <I>komu ona odpowiada , że ja śpię</I> <li>Ron: <I>cui răspunde ea cã eu dorm</I> <li>Rus: <I>кого она отвечает , что я сплю</I> <li>Spa: <I>a quién responde ella que yo duermo</I> <li>Swe: <I>till vem svarar hon att jag sover</I> <li>Urd: <I>كون وہ جواب دیتی ہے كہ میں سوتا ہوں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#VP" TITLE="VP - verb phrase">VP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>whom does she beg to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V (mkVP sleep_V)))</CODE> <li>Bul: <I>кого моли да спи тя</I> <li>Cat: <I>qui demana ella a dormir</I> <li>Dan: <I>hvem beder hun at sove</I> <li>Dut: <I>wie smeekt ze te slapen</I> <li>Eng: <I>whom does she beg to sleep</I> <li>Fin: <I>ketä hän pyytää nukkumaan</I> <li>Fre: <I>qui demande elle à dormir</I> <li>Ger: <I>wen bittet sie zu schlafen</I> <li>Ita: <I>chi prega lei di dormire</I> <li>Nor: <I>hvem ber hun att sove</I> <li>Pol: <I>*</I> <li>Ron: <I>pe cine roagă ea sã doarmă</I> <li>Rus: <I>кого она просит спать</I> <li>Spa: <I>quién roga ella a dormir</I> <li>Swe: <I>vem ber hon att sova</I> <li>Urd: <I>كون وہ سونے كی التجا كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>whom does she want to see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash want_VV (mkVPSlash see_V2)))</CODE> <li>Bul: <I>кого иска да види тя</I> <li>Cat: <I>qui vol ella veure</I> <li>Dan: <I>hvem vil hun se</I> <li>Dut: <I>wie wil ze zien</I> <li>Eng: <I>whom does she want to see</I> <li>Fin: <I>kenet hän tahtoo nähdä</I> <li>Fre: <I>qui veut elle voir</I> <li>Ger: <I>wen will sie sehen</I> <li>Ita: <I>chi vuole lei vedere</I> <li>Nor: <I>hvem vil hun se</I> <li>Pol: <I>kogo ona chce widzieć</I> <li>Ron: <I>pe cine vrea ea sã vadă</I> <li>Rus: <I>кого она хоччет видеть</I> <li>Spa: <I>quién quiere ella ver</I> <li>Swe: <I>vem vill hon se</I> <li>Urd: <I>كون وہ دیكھنا چاہتی ہے</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>mkVPSlash</CODE></TD>
+<TD><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A> <CODE>-&gt;</CODE> <A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A> <CODE>-&gt;</CODE> <A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash</A></TD>
+<TD><div class=reveal> <I>whom does she beg me to see</I> <div class=popup> <ul> <li>API: <CODE>mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V i_NP (mkVPSlash see_V2)))</CODE> <li>Bul: <I>кого моли мен да видя тя</I> <li>Cat: <I>qui em demana ella a veure</I> <li>Dan: <I>hvem beder hun mig at se</I> <li>Dut: <I>wie smeekt ze me te zien</I> <li>Eng: <I>whom does she beg me to see</I> <li>Fin: <I>kenet hän pyytää minua näkemään</I> <li>Fre: <I>qui me demande elle à voir</I> <li>Ger: <I>wen bittet sie mich zu sehen</I> <li>Ita: <I>chi mi prega lei di vedere</I> <li>Nor: <I>hvem ber hun meg att se</I> <li>Pol: <I>*</I> <li>Ron: <I>pe cine mă roagă ea sã văd</I> <li>Rus: <I>кого она просит меня видеть</I> <li>Spa: <I>quién me roga ella a ver</I> <li>Swe: <I>vem ber hon mig att se</I> <li>Urd: <I>كون وہ مجھ سے دیكھنا التجا كرتی ہے</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="VQ"></A>
+<H2>VQ - question-complement verb</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="VS"></A>
+<H2>VS - sentence-complement verb</H2>
+<P>
+Lexical category, constructors given in
+<A HREF="#RParadigms">lexical paradigms</A>.
+</P>
+<A NAME="VV"></A>
+<H2>VV - verb-phrase-complement verb</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>can8know_VV</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><div class=reveal> <I>to be able to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP can8know_VV (mkVP sleep_V))</CODE> <li>Bul: <I>да може да спи</I> <li>Cat: <I>saber dormir</I> <li>Dan: <I>at kunne sove</I> <li>Dut: <I>slapen kunnen</I> <li>Eng: <I>to be able to sleep</I> <li>Fin: <I>osata nukkua</I> <li>Fre: <I>savoir dormir</I> <li>Ger: <I>schlafen können</I> <li>Ita: <I>sapere dormire</I> <li>Nor: <I>å kunne sove</I> <li>Pol: <I>umieć spać</I> <li>Ron: <I>sã poată sã doarmă</I> <li>Rus: <I>мочь спать</I> <li>Spa: <I>saber dormir</I> <li>Swe: <I>att kunna sova</I> <li>Urd: <I>سكنا سوئیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>can_VV</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><div class=reveal> <I>to be able to sleep</I> <div class=popup> <ul> <li>API: <CODE>mkUtt (mkVP can_VV (mkVP sleep_V))</CODE> <li>Bul: <I>да може да спи</I> <li>Cat: <I>poder dormir</I> <li>Dan: <I>at kunne sove</I> <li>Dut: <I>slapen kunnen</I> <li>Eng: <I>to be able to sleep</I> <li>Fin: <I>voida nukkua</I> <li>Fre: <I>pouvoir dormir</I> <li>Ger: <I>schlafen können</I> <li>Ita: <I>potere dormire</I> <li>Nor: <I>å kunne sove</I> <li>Pol: <I>móc spać</I> <li>Ron: <I>sã poată sã doarmă</I> <li>Rus: <I>мочь спать</I> <li>Spa: <I>poder dormir</I> <li>Swe: <I>att kunna sova</I> <li>Urd: <I>سكنا سوئیں</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>must_VV</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><div class=reveal> <I>have to</I> <div class=popup> <ul> <li>API: <CODE>must_VV</CODE> <li>Bul: <I>трябва</I> <li>Cat: <I>haver</I> <li>Dan: <I>må</I> <li>Dut: <I>moeten</I> <li>Eng: <I>have to</I> <li>Fin: <I>täytyä</I> <li>Fre: <I>devoir</I> <li>Ger: <I>zu müssen</I> <li>Ita: <I>dover</I> <li>Nor: <I>må</I> <li>Pol: <I>ResPol.Imperfective</I> <li>Ron: <I>trebui</I> <li>Rus: <I>должен</I> <li>Spa: <I>deber</I> <li>Swe: <I>måste</I> <li>Urd: <I>*</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>want_VV</CODE></TD>
+<TD><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><div class=reveal> <I>want</I> <div class=popup> <ul> <li>API: <CODE>want_VV</CODE> <li>Bul: <I>искам</I> <li>Cat: <I>voler</I> <li>Dan: <I>vil</I> <li>Dut: <I>willen</I> <li>Eng: <I>want</I> <li>Fin: <I>tahtoa</I> <li>Fre: <I>vouloir</I> <li>Ger: <I>zu wollen</I> <li>Ita: <I>voler</I> <li>Nor: <I>vil</I> <li>Pol: <I>ResPol.Dual</I> <li>Ron: <I>vrea</I> <li>Rus: <I>хочу</I> <li>Spa: <I>querer</I> <li>Swe: <I>vill</I> <li>Urd: <I>چاہوں</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="Voc"></A>
+<H2>Voc - vocative or "please"</H2>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Example</TH>
+</TR>
+<TR>
+<TD><CODE>mkVoc</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
+<TD><div class=reveal> <I>yes , my friend</I> <div class=popup> <ul> <li>API: <CODE>mkPhr yes_Utt (mkVoc (mkNP i_Pron friend_N))</CODE> <li>Bul: <I>да , мой приятелю</I> <li>Cat: <I>sí , el meu amic</I> <li>Dan: <I>ja , min ven</I> <li>Dut: <I>ja , mijn vriend</I> <li>Eng: <I>yes , my friend</I> <li>Fin: <I>kyllä , minun ystäväni</I> <li>Fre: <I>oui , mon ami</I> <li>Ger: <I>ja , mein Freund</I> <li>Ita: <I>sì , il mio amico</I> <li>Nor: <I>ja , min venn</I> <li>Pol: <I>tak , mój przyjacielu</I> <li>Ron: <I>da , prietenul meu</I> <li>Rus: <I>Да , мой друг</I> <li>Spa: <I>sí , mi amigo</I> <li>Swe: <I>ja , min vän</I> <li>Urd: <I>ہاں میرا دوست</I> </ul> </div> </div></TD>
+</TR>
+<TR>
+<TD><CODE>please_Voc</CODE></TD>
+<TD><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc</A></TD>
+<TD><div class=reveal> <I>please</I> <div class=popup> <ul> <li>API: <CODE>please_Voc</CODE> <li>Bul: <I>моля</I> <li>Cat: <I>sisplau</I> <li>Dan: <I>tak</I> <li>Dut: <I>alsjeblieft</I> <li>Eng: <I>please</I> <li>Fin: <I>ole hyvä</I> <li>Fre: <I>s'il vous plaît</I> <li>Ger: <I>bitte</I> <li>Ita: <I>per favore</I> <li>Nor: <I>takk</I> <li>Pol: <I>proszę</I> <li>Ron: <I>vă rog</I> <li>Rus: <I>пожалуйста</I> <li>Spa: <I>por favor</I> <li>Swe: <I>tack</I> <li>Urd: <I>مہربانی</I> </ul> </div> </div></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc83"></A>
+<H1>Lexical Paradigms</H1>
+<A NAME="toc84"></A>
+<H2>Paradigms for Bulgarian</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/bulgarian/ParadigmsBul.gf"><CODE>../src/bulgarian/ParadigmsBul.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>mkN001</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>numbers refer to Krustev, Bulg. Morph. in 187 Tables</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN002</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN002a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN003</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN004</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN005</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN006</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN007</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN007b</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN007a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN008</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN008b</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN008c</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN008a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN009</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN009a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN010</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN011</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN012</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN013</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN014</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN014a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN015</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN015a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN016</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN016a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN017</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN018</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN018a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN019</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN019a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN020</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN021</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN022</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN023</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN024a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN024</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN025</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN026</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN027</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN028</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN028a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN029</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN030</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN031</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN031a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN032</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN032a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN033</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN034</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN035</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN035a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN036</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN037</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN038</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN039</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN040</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN040a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN041</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN041a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN041b</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN042</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN043</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN043a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN044</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN045</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN046</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN047</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN048</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN049</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN050</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN051</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN052</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN052a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN053</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN054</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN055</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN056</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN057</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN057a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN058</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN059</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN060</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN061</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN062</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN063</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN064</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN065</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN066</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN067</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN068</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN069</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN070</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN071</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN072</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN073</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN074</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN075</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA076</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA077</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA078</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA079</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA080</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA081</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA082</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA082a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA083</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA084</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA084a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA085</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA086</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA087</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA088</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA089a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV142</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV143</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV144</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV145</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV145a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV145b</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV146</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV146a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV147</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV148</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV149</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV150</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV150a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV151</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV152</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV152a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV153</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV154</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV155</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV156</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV157</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV158</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV159</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV160</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV160a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV161</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV161a</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV162</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV163</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV164</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV165</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV166</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV167</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV168</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV169</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV170</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV171</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV172</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV173</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV174</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV175</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV176</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV177</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV178</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV179</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV180</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV181</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV182</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV183</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV184</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV185</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV186</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV187</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV188</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#VTable">VTable</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>adjAdv</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>=</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc85"></A>
+<H2>Paradigms for Catalan</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/catalan/ParadigmsCat.gf"><CODE>../src/catalan/ParadigmsCat.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "de"</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "a"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>other preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(llum</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>regular, with heuristics for plural and gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(disc,discos</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>compN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound, e.g. "número" + "de telèfon"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. filla + genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>deN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relation with genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>aN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relation with dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. connexió + genitive + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(Anna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>feminine for "-a", otherwise masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(Pilar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(sol</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fort,forta,forts,fortes,fortament</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(bo</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <CODE>(millor</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>special comparison (default with "mas")</I></TD>
+</TR>
+<TR>
+<TD><CODE>prefixA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adjective before noun (default: after)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. "casat" + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(cantar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular in models I, IIa, IIb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#Verbum">Verbum</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>use verb constructed in BeschCat</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>regular verb, direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>any verb, direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>preposition for complement</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>parlar, a, de</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>donar,(accusative),a</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>donar,(dative),(accusative)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>plain infinitive: "vull parlar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>deVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"acabar de parlar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>aVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"aprendre a parlar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc86"></A>
+<H2>Paradigms for Danish</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/danish/ParadigmsDan.gf"><CODE>../src/danish/ParadigmsDan.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>utrum</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>"en" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>neutrum</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>"et" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g. "til"</I></TD>
+</TR>
+<TR>
+<TD><CODE>noPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>empty string</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(bil</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>regular noun: "en" gender with plural "-er" or "-r"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(bil,bilen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>better prediction from both singular and plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(dreng,drengen,drenge,drengene</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. datter + til</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. forbindelse + fra + til</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>utrum gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>other gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fin,fint</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>deviant neuter</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(galen,galet,galne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>also deviant plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(stor,stort,store,storre,storst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>force comparison with mer/mest</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. gift + med</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>after verb, e.g. "idag"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>close to verb, e.g. "altid"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>modify adjective, e.g. "meget"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(snakke</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(leve,levde</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>also give past tense</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(drikke,</CODE> <CODE>drakk,</CODE> <CODE>drukket</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>theme of irregular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(spise,spiser,spises,spiste,spist,spis</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>particle verb, e.g. lukke + op</I></TD>
+</TR>
+<TR>
+<TD><CODE>vaereV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force auxiliary "være"</I></TD>
+</TR>
+<TR>
+<TD><CODE>depV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deponent, e.g. "undres"</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive, e.g. "forestille sig"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>prepositional object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>snakke, med, om</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>give,_,til</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>give,_,_</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc87"></A>
+<H2>Paradigms for Dutch</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/dutch/ParadigmsDut.gf"><CODE>../src/dutch/ParadigmsDut.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>de</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>non-neutrum</I></TD>
+</TR>
+<TR>
+<TD><CODE>het</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>neutrum</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(muis</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>de muis-muisen, with some predictable exceptions</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(bit</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>if gender is not predictable</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(gat,gaten</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst-case for nouns</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun with preposition van</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>other preposition than van</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. afstand + van + naar</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>proper name</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(vers</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(goed,goede,goeds,beter,best</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>invarA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adjective with just one form</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. getrouwd + met</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>van_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>te_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(aaien</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(breken,brak,gebroken</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>theme of irregular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(breken,brak,braken,gebroken</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>also past plural irregular</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(aai,aait,aaien,aaide,aaide,aaiden,geaaid</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst-case verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>add movable suffix, e.g. af + stappen</I></TD>
+</TR>
+<TR>
+<TD><CODE>zijnV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force zijn as auxiliary (default hebben)</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive verb e.g. zich afvragen</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>geven,(accusative),(dative)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>sturen,(accusative),naar</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>praten, met, over</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc88"></A>
+<H2>Paradigms for English</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/english/ParadigmsEng.gf"><CODE>../src/english/ParadigmsEng.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>human</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nonhuman</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>npNumber</CODE></TD>
+<TD><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A></TD>
+<TD><I>exctract the number of a noun phrase</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(flash</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>plural s, incl. flash-flashes, fly-flies</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(man,men</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>irregular plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(man,men,man's,men's</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>irregular genitives</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>default nonhuman</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>e.g. baby + boom</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. wife of (default prep. to)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. access to</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. connection from x to y</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(happy</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular adj, incl. happy-happier, rude-ruder</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fat,fatter</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irreg. comparative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(good,better,best,well</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>completely irreg.</I></TD>
+</TR>
+<TR>
+<TD><CODE>compoundA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>force comparison with more/most</I></TD>
+</TR>
+<TR>
+<TD><CODE>simpleA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>force comparison with -er,-est</I></TD>
+</TR>
+<TR>
+<TD><CODE>irregAdv</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adverb irreg, e.g. "fast"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>absent from</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>e.g. today</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>e.g. always</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>e.g. quite</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><I>e.g. approximately</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g. "in front of"</I></TD>
+</TR>
+<TR>
+<TD><CODE>noPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>no preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(cry</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular, incl. cry-cries, kiss-kisses etc</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(stop,</CODE> <CODE>stopped</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reg. with consonant duplication</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(drink,</CODE> <CODE>drank,</CODE> <CODE>drunk</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>ordinary irregular</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(go,</CODE> <CODE>goes,</CODE> <CODE>went,</CODE> <CODE>gone,</CODE> <CODE>going</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>totally irregular</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>fix compound, e.g. under+take</I></TD>
+</TR>
+<TR>
+<TD><CODE>partV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>with particle, e.g. switch + on</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive e.g. behave oneself</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>transitive, e.g. hit</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>with preposiiton, e.g. believe in</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>ditransitive, e.g. give,_,_</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>two prepositions, e.g. speak, with, about</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>sentence-compl e.g. say (that S)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>e.g. tell (NP) (that S)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>e.g. want (to VP)</I></TD>
+</TR>
+<TR>
+<TD><CODE>ingVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>e.g. start (VPing)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>e.g. want (NP) (to VP)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>e.g. become (AP)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>e.g. paint (NP) (AP)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>e.g. wonder (QS)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>e.g. ask (NP) (QS)</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc89"></A>
+<H2>Paradigms for Finnish</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/finnish/ParadigmsFin.gf"><CODE>../src/finnish/ParadigmsFin.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Case</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nominative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talo"</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talon"</I></TD>
+</TR>
+<TR>
+<TD><CODE>partitive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "taloa"</I></TD>
+</TR>
+<TR>
+<TD><CODE>essive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talona"</I></TD>
+</TR>
+<TR>
+<TD><CODE>translative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "taloksi"</I></TD>
+</TR>
+<TR>
+<TD><CODE>inessive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talossa"</I></TD>
+</TR>
+<TR>
+<TD><CODE>elative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talosta"</I></TD>
+</TR>
+<TR>
+<TD><CODE>illative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "taloon"</I></TD>
+</TR>
+<TR>
+<TD><CODE>adessive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talolla"</I></TD>
+</TR>
+<TR>
+<TD><CODE>ablative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talolta"</I></TD>
+</TR>
+<TR>
+<TD><CODE>allative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>e.g. "talolle"</I></TD>
+</TR>
+<TR>
+<TD><CODE>infFirst</CODE></TD>
+<TD><A HREF="#InfForm">InfForm</A></TD>
+<TD><I>e.g. "tehdä"</I></TD>
+</TR>
+<TR>
+<TD><CODE>infElat</CODE></TD>
+<TD><A HREF="#InfForm">InfForm</A></TD>
+<TD><I>e.g. "tekemästä"</I></TD>
+</TR>
+<TR>
+<TD><CODE>infIllat</CODE></TD>
+<TD><A HREF="#InfForm">InfForm</A></TD>
+<TD><I>e.g. "tekemään"</I></TD>
+</TR>
+<TR>
+<TD><CODE>prePrep</CODE></TD>
+<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition, e.g. partitive "ilman"</I></TD>
+</TR>
+<TR>
+<TD><CODE>postPrep</CODE></TD>
+<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>postposition, e.g. genitive "takana"</I></TD>
+</TR>
+<TR>
+<TD><CODE>postGenPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>genitive postposition, e.g. "takana"</I></TD>
+</TR>
+<TR>
+<TD><CODE>casePrep</CODE></TD>
+<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>just case, e.g. adessive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(kukko</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>predictable nouns, covers 82%</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(savi,savia</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>different pl.part</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(vesi,veden,vesiä</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>also different sg.gen</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(vesi,veden,vesiä,vettä</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>also different sg.part</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(olo,n,a,na,oon,jen,ja,ina,issa,ihin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case, 10 forms</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(pika</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <CODE>(juna</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound with invariable prefix</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(oma</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <CODE>(tunto</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound with inflecting prefix</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun with genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun another prep.</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>relation with two complements</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>predictable noun made into name</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>any noun made into name</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular noun made into adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>any noun made into adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>(kivempi,kivin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>deviating comparison forms</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(hyva,prmpi,pras</CODE> <CODE>:</CODE> <CODE>N)</CODE> <CODE>-&gt;</CODE> <CODE>(hyvin,pmmin,prhten</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst case adj</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. "jaollinen" casePrep adessive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(huutaa</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>predictable verbs, covers 90%</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(huutaa,huusi</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deviating past 3sg</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(huutaa,huudan,huusi</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>also deviating pres. 1sg</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst-case verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>caseV</CODE></TD>
+<TD><A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deviating subj. case, e.g. genitive "täytyä"</I></TD>
+</TR>
+<TR>
+<TD><CODE>vOlla</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>the verb "be"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>predictable direct transitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct transitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>complement just case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>complement pre/postposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>e.g. puhua, allative, elative</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>siirtää, (accusative), illative</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>antaa, (accusative), (allative)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>e.g. "sanoa" allative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>e.g. "alkaa"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVVf</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#InfForm">InfForm</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>e.g. "ruveta" infIllat</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>e.g. "käskeä" genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Vf</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#InfForm">InfForm</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>e.g. "kieltää" partitive infElat</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>e.g. "maistua" ablative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>e.g. "maalata" accusative translative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>e.g. "kysyä" ablative</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc90"></A>
+<H2>Paradigms for French</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/french/ParadigmsFre.gf"><CODE>../src/french/ParadigmsFre.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>direct object case</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>genitive, constructed with "de"</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>dative, usually constructed with "à"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition (other than "de" and "à")</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(cheval</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>predictable, with variations like cheval-chevaux</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(oeil,yeux</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst-case noun</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound noun, e.g. numéro + de téléphone</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. fille + genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. connection + genitive + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>feminine if ends with "e", otherwise masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>gender deviant from the simple rule</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(cher</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>predictable, e.g. cher-chère</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(sec,seche</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>unpredictable feminine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(banal,banale,banaux,banalement</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst-case adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular comparison, e.g. bon-meilleur</I></TD>
+</TR>
+<TR>
+<TD><CODE>prefixA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adjective that comes before noun, e.g. petit</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. supérieur + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>ordinary adverb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>sentential adverb, e.g. toujours</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>modify adjective, e.g. très</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(finir</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular 1/2/3 conjugation</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(jeter,jette,jettera</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>1st conjugation variations</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>make 2-place to 1-place (e.g. from IrregFre)</I></TD>
+</TR>
+<TR>
+<TD><CODE>etreV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force auxiliary to be être (default avoir)</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive, implies auxiliary être, e.g. se demander</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct transitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>e.g. se fier + genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>donner (+ accusative + dative)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>placer (+ accusative) + dans</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>parler + dative + genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>plain infinitive: "je veux parler"</I></TD>
+</TR>
+<TR>
+<TD><CODE>deVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"j'essaie de parler"</I></TD>
+</TR>
+<TR>
+<TD><CODE>aVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"j'arrive à parler"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc91"></A>
+<H2>Paradigms for German</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/german/ParadigmsGer.gf"><CODE>../src/german/ParadigmsGer.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>neuter</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Case</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nominative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(Stufe</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>die Stufe-Stufen, der Tisch-Tische</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(Bild,Bilder</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>sg and pl nom, and gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(x1,_,_,_,_,x6</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case: mann, mann, manne, mannes, männer, männern</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>noun + von</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>noun + other preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>noun + two prepositions</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>regular name with genitive in "s"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(nom,gen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>name with other genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(nom,acc,dat,gen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>name with all case forms</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular adjective, works for most cases</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(gut,besser,beste</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular comparison</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(gut,gute,besser,beste</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular positive if ending added</I></TD>
+</TR>
+<TR>
+<TD><CODE>invarA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>invariable, e.g. prima</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. teilbar + durch</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>adverbs have just one form anyway</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g. "durch" + accusative</I></TD>
+</TR>
+<TR>
+<TD><CODE>accPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>no string, just accusative case</I></TD>
+</TR>
+<TR>
+<TD><CODE>datPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>no string, just dative case</I></TD>
+</TR>
+<TR>
+<TD><CODE>genPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>no string, just genitive case</I></TD>
+</TR>
+<TR>
+<TD><CODE>von_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>von + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>zu_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>zu + dative, with contractions zum, zur</I></TD>
+</TR>
+<TR>
+<TD><CODE>anDat_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>an + dative, with contraction am</I></TD>
+</TR>
+<TR>
+<TD><CODE>inDat_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>in + dative, with contraction ins</I></TD>
+</TR>
+<TR>
+<TD><CODE>inAcc_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>in + accusative, with contraction im</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(führen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(sehen,sieht,sah,sähe,gesehen</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>irregular verb theme</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(geben,</CODE> <CODE>gibt,</CODE> <CODE>gib,</CODE> <CODE>gab,</CODE> <CODE>gäbe,</CODE> <CODE>gegeben</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst-case verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>movable prefix, e.g. auf+fassen</I></TD>
+</TR>
+<TR>
+<TD><CODE>no_geV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>no participle "ge", e.g. "bedeuten"</I></TD>
+</TR>
+<TR>
+<TD><CODE>fixprefixV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>add prefix such as "be"; implies no_ge</I></TD>
+</TR>
+<TR>
+<TD><CODE>seinV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force "sein" as auxiliary</I></TD>
+</TR>
+<TR>
+<TD><CODE>habenV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force "haben" as auxiliary</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive, with case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>preposition for complement</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>just case for complement</I></TD>
+</TR>
+<TR>
+<TD><CODE>accdatV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>geben + acc + dat</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>senden + acc + nach</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>sprechen + mit + über</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc92"></A>
+<H2>Paradigms for Italian</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/italian/ParadigmsIta.gf"><CODE>../src/italian/ParadigmsIta.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>--Prep</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "di" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "a" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>con_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "con" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>da_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "da" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>in_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "in" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>su_Prep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "su" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>other prepositions, e.g. "dopo"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(cane</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>regular noun; fem for -"a", masc otherwise</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(carne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>override default gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(uomo,uomini</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound such as "numero" + "di telefono"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>regular with genitive, e.g. "figlio" + "di"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>arbitrary noun and preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. volo + da + per</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>femininne for "-a", otherwise masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>set gender manually</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(bianco</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>predictable adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(solo,sola,soli,sole,solamente</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>special comparison, e.g. buono - migliore</I></TD>
+</TR>
+<TR>
+<TD><CODE>prefixA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adjective that comes before noun (default: after)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. divisibile + per</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verbs in "-are"/"-ire"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#Verbo">Verbo</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>verbs formed by BeschIta</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>essereV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force "essere" as auxiliary (default avere)</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive verb (implies essere)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>regular verb, direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>prepositional object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>parlare, a, di</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>dare,_,a</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>dare,_,_</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>plain infinitive: "voglio parlare"</I></TD>
+</TR>
+<TR>
+<TD><CODE>deVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"cerco di parlare"</I></TD>
+</TR>
+<TR>
+<TD><CODE>aVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"arrivo a parlare"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc93"></A>
+<H2>Paradigms for Norwegian</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/norwegian/ParadigmsNor.gf"><CODE>../src/norwegian/ParadigmsNor.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>the "en" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>the "ei" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>neutrum</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>the "et" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g. "etter"</I></TD>
+</TR>
+<TR>
+<TD><CODE>noPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>empty string</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>predictable noun, feminine for "-e" otherwise masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(dreng,drengen,drenger,drengene</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. datter + til</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g forbindelse + fra + til</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fin</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>predictable adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(fin,fint</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>deviant neuter</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(galen,galet,galne</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>also plural deviant</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(stor,stort,store,storre,storst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>comparison with mer/mest, e.g. "norsk"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. gift + med</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>e.g. her</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>e.g. altid</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>e.g. mye</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(snakke</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verb (first conjugation)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(leve,levde</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>other past tense</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(drikke,</CODE> <CODE>drakk,</CODE> <CODE>drukket</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>theme of irregular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(spise,spiser,spises,spiste,spist,spis</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>verb with particle, e.g. lukke + opp</I></TD>
+</TR>
+<TR>
+<TD><CODE>vaereV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>force "være" as auxiliary (default "have")</I></TD>
+</TR>
+<TR>
+<TD><CODE>depV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deponent, e.g "trives"</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive, e.g. "forestille seg"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>regular, direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>preposition for complement</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>snakke, med, om</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>gi,_,til</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>gi,_,_</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc94"></A>
+<H2>Paradigms for Polish</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/polish/ParadigmsPol.gf"><CODE>../src/polish/ParadigmsPol.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><CODE>Type;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculineP</CODE></TD>
+<TD><CODE>Gender;</CODE></TD>
+<TD><I>personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculineA</CODE></TD>
+<TD><CODE>Gender;</CODE></TD>
+<TD><I>animate</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculineI</CODE></TD>
+<TD><CODE>Gender;</CODE></TD>
+<TD><I>inanimate</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><CODE>Gender;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>neuter</CODE></TD>
+<TD><CODE>Gender;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>personal</CODE></TD>
+<TD><CODE>Animacy;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Case</CODE></TD>
+<TD><CODE>Type;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nominative</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>instrumental</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>locative</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>vocative</CODE></TD>
+<TD><CODE>Case;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><CODE>Type;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><CODE>Number;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><CODE>Number;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKapiel</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-l"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLodz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-dź"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSul</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-l"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKonew</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-w"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWies</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ś"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDlon</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ń"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSiec</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ć" (sieć),"-ść" (miłość)</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDrzwi</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>drzwi, wnętrzności, usta</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKosc</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ść"(kość), "-ć" (nić),</I></TD>
+</TR>
+<TR>
+<TD><CODE>nNoc</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-c", "-cz", "-rz", "-ż"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWesz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-sz"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKrolowa</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-wa", but also for "księżna"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nReka</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine "ręka", irregularly noun</I></TD>
+</TR>
+<TR>
+<TD><CODE>nApteka</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-k", -"g", consonant alternation k:c, g:dz</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDroga</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "g", consonant alternation d:dz, vowel alternation o:ó</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMatka</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in -k,consonant alternation k:c, fleeting e</I></TD>
+</TR>
+<TR>
+<TD><CODE>nZiemia</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ia"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nFala</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-l"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLilia</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ia"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKobieta</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-t"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLiczba</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-b", "-p", "-n"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSila</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-ł", "-r"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDoba</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-b", "-p"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWoda</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-d"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSzkola</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-oła", "-ra"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWojna</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in two consonants: jn, łz, łn, ćm,żw</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWiosna</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in two consonants: sn</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMgla</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-gł"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nGwiazda</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-zd"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nUlica</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending mainly in "-c", but also in "-ż", "-rz", "-dz"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nOwca</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>feminine, subject ending in "-c"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDanie</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ni"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSerce</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in a hardened consonant "-c", "-rz"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nNasienie</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ni" (only for "nasienie")</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMorze</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-rz", "-ż"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nImie</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ę"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nCiele</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ę"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nUdo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in hard consonant + "o"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPiwo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in a hard consonant + "o"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nZero</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-r"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nNiebo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, declension for "niebo"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nTlo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ło"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nZebro</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-r"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nOkno</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-n"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nGniazdo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-zd", "-st"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWojsko</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-k"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nJajo</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-j"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nJablko</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-k"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nStudio</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-n"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDziecko</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-n"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nUcho</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-ch"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nOko</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>neuter, subject ending in "-k"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nFacet</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-i"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nArab</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-y"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPrzyjaciel</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in a hard consonant "-l"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKowal</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in a hard consonant "-l"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLekarz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal ending in -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKrol</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in "-ul"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMaz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWrog</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal, subject ending in "-g"; only for "wróg"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKsiadz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nOjciec</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal for "ojciec"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nBrat</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nBog</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nChlopiec</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMezczyzna</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine personal</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKon</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine animate, for "koń"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWaz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine animate, for "wąż"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPtak</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine animate, subject ending in "-k"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKot</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine animate, for "kot"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPies</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine animate, for "pies"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nBat</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nChleb</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSer</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in "-r"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nZab</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in "-ąb"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKosciol</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, for "kosciół"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nCien</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a week consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPien</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a week consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLisc</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKoc</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a hardened consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWiersz</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a hardened consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDzien</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, for "dzień"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKajak</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -g or -k</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMlotek</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -ek</I></TD>
+</TR>
+<TR>
+<TD><CODE>nMiech</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -ch</I></TD>
+</TR>
+<TR>
+<TD><CODE>nSad</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDym</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWal</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDol</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nOgrod</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nKwiat</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nLas</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nWiatr</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPopiol</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant</I></TD>
+</TR>
+<TR>
+<TD><CODE>nPokoj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -ój</I></TD>
+</TR>
+<TR>
+<TD><CODE>nGaj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in a vowel + hard consonant j</I></TD>
+</TR>
+<TR>
+<TD><CODE>nBrzeg</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -g or -k</I></TD>
+</TR>
+<TR>
+<TD><CODE>nRok</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate for "rok", form in pl irregular</I></TD>
+</TR>
+<TR>
+<TD><CODE>nProg</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -óg</I></TD>
+</TR>
+<TR>
+<TD><CODE>nStatek</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -ek</I></TD>
+</TR>
+<TR>
+<TD><CODE>nDom</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>masculine inanimate, subject ending in -ch and for dom</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc95"></A>
+<H2>Paradigms for Romanian</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/romanian/ParadigmsRon.gf"><CODE>../src/romanian/ParadigmsRon.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>NGender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#NGender">NGender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#NGender">NGender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>neuter</CODE></TD>
+<TD><A HREF="#NGender">NGender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Anim</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>animate</CODE></TD>
+<TD><A HREF="#Anim">Anim</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>inanimate</CODE></TD>
+<TD><CODE>Anim;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Preposition</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>NCase</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Acc</CODE></TD>
+<TD><A HREF="#NCase">NCase</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Dat</CODE></TD>
+<TD><A HREF="#NCase">NCase</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Gen</CODE></TD>
+<TD><A HREF="#NCase">NCase</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Nom</CODE></TD>
+<TD><A HREF="#NCase">NCase</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>NCase-&gt;</CODE> <A HREF="#Bool">Bool</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#NCase">NCase</A> <CODE>-&gt;</CODE> <CODE>Prep;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>noPrep</CODE></TD>
+<TD><A HREF="#NCase">NCase</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>Singular, infers gender and Plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#NGender">NGender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case: Singular + Plural + gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>very irregular nouns - feminine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>Singular + Plural, infers gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#NGender">NGender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>Singular + gender, infers Plural</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkNR</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkInAn</CODE></TD>
+<TD><A HREF="#PN" TITLE="PN - proper name">PN</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPropNoun</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>regular adjectives</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>--worst</CODE> <CODE>case</CODE></TD>
+<TD><I>all 4 forms are needed + form for adverb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>4 forms are needed</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc96"></A>
+<H2>Paradigms for Russian</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/russian/ParadigmsRus.gf"><CODE>../src/russian/ParadigmsRus.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>neuter</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Case</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>nominative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>instructive</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>prepositional</CODE></TD>
+<TD><A HREF="#Case">Case</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(karta</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(tigr</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(nomSg,</CODE> <CODE>genSg,</CODE> <CODE>datSg,</CODE> <CODE>accSg,</CODE> <CODE>instSg,</CODE> <CODE>preposSg,</CODE> <CODE>prepos2Sg,</CODE> <CODE>nomPl,</CODE> <CODE>genPl,</CODE> <CODE>datPl,</CODE> <CODE>accPl,</CODE> <CODE>instPl,</CODE> <CODE>preposPl</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#Animacy">Animacy</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>"Иван", "Маша"</I></TD>
+</TR>
+<TR>
+<TD><CODE>nounPN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(positive</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(positive,</CODE> <CODE>comparative</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>"делим на"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#Aspect">Aspect</A> <CODE>-&gt;</CODE> <CODE>(presSg1,presSg2,presSg3,presPl1,presPl2,presPl3,pastSgMasc,imp,inf:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>"войти в дом"; "в", accusative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#Case">Case</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>"сложить письмо в конверт"</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>"видеть", "любить"</I></TD>
+</TR>
+<TR>
+<TD><CODE>tvDirDir</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc97"></A>
+<H2>Paradigms for Spanish</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/spanish/ParadigmsSpa.gf"><CODE>../src/spanish/ParadigmsSpa.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>accusative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>genitive</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "de" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>dative</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>preposition "a" and its contractions</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>other preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(luz</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>predictable; feminine for "-a"/"-z", otherwise masculine</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(baston,bastones</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>compN</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>compound, e.g. "número" + "de teléfono"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun with preposition</I></TD>
+</TR>
+<TR>
+<TD><CODE>deN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun with preposition "de"</I></TD>
+</TR>
+<TR>
+<TD><CODE>aN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>relational noun with preposition "a"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>prepositions for two complements</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(Anna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>feminine for "-a"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(Pilar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>force gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(util</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>predictable adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(solo,sola,solos,solas,solamente</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst-case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(bueno</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <CODE>(mejor</CODE> <CODE>:</CODE> <CODE>A)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>special comparison (default with "mas")</I></TD>
+</TR>
+<TR>
+<TD><CODE>prefixA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>adjective before noun (default after noun)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. "casado" + dative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(pagar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular in "-ar", "-er", ".ir"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(mostrar,muestro</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular with vowel alternation</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#Verbum">Verbum</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>import verb constructed with BeschSpa</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>special_ppV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deviant past participle, e.g. abrir - abierto</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>regular, direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>other object</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>e.g. hablar, a, di</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>e.g. dar,(accusative),a</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>e.g. dar,(dative),(accusative)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>plain infinitive: "quiero hablar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>deVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"terminar de hablar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>aVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>"aprender a hablar"</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc98"></A>
+<H2>Paradigms for Swedish</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/swedish/ParadigmsSwe.gf"><CODE>../src/swedish/ParadigmsSwe.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>Gender</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>utrum</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>the "en" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>neutrum</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>the "ett" gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>Number</CODE></TD>
+<TD><A HREF="#Type">Type</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><A HREF="#Number">Number</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g. "till"</I></TD>
+</TR>
+<TR>
+<TD><CODE>noPrep</CODE></TD>
+<TD><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>empty string</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(apa</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>predictable nouns: apa-apor, rike-riken, or bil-bilar</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(nyckel,nycklar</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>singular and plural suffice for most nouns</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(museum,museet,museer,museerna</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case for nouns</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N2" TITLE="N2 - relational noun">N2</A></TD>
+<TD><I>e.g. syster - till</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g. flyg - från - till</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>default gender utrum</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>set other gender</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>(jesus,jesu</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>irregular genitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(billig</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(bred,brett</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>predictable adjective</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(tung,tyngre,tyngst</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>irregular comparison</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(god,gott,goda,battre,bast</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>very irregular</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>(liten,litet,lilla,sma,mindre,minst,minsta</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>compoundA</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>force comparison by mera - mest</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g. delbar - med</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>postverbal, e.g. här</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV</A></TD>
+<TD><I>preverbal, e.g. alltid</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>modify adjective, e.g. tämligen</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(stämmer</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>predictable verb: use present indicative</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(dricka,drack,druckit</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>the theme of an irregular verb</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>(gå,går,gå,gick,gått,gången</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>particle verb, e.g. passa - på</I></TD>
+</TR>
+<TR>
+<TD><CODE>depV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>deponent verb, e.g. andas</I></TD>
+</TR>
+<TR>
+<TD><CODE>reflV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>reflexive verb, e.g. ångra sig</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>direct transitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>preposition for complement</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>direct ditransitive</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>preposition for last argument</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>prepositions for both complements</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VS" TITLE="VS - sentence-complement verb">VS</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2S</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVA</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VA" TITLE="VA - adjective-complement verb">VA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2A</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2Q</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q</A></TD>
+<TD><I>-</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc99"></A>
+<H2>Paradigms for Urdu</H2>
+<P>
+<a name="RParadigms"></a>
+</P>
+<P>
+source <A HREF="http://www.grammaticalframework.org/lib/src/urdu/ParadigmsUrd.gf"><CODE>../src/urdu/ParadigmsUrd.gf</CODE></A>
+</P>
+<TABLE BORDER="1" CELLPADDING="4">
+<TR>
+<TH>Function</TH>
+<TH>Type</TH>
+<TH COLSPAN="2">Explanation</TH>
+</TR>
+<TR>
+<TD><CODE>masculine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>feminine</CODE></TD>
+<TD><A HREF="#Gender">Gender</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>singular</CODE></TD>
+<TD><CODE>Number;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>plural</CODE></TD>
+<TD><CODE>Number;</CODE></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>Regular nouns like lRka, gender is judged from noun ending</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>nouns whose gender is irregular like Admy</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN</CODE></TD>
+<TD><CODE>(x1,_,_,_,_,x6</CODE> <CODE>:</CODE> <CODE>Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>worst case</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN2</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>N2;</CODE></TD>
+<TD><I>e.g maN ky</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkN3</CODE></TD>
+<TD><A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str-&gt;</CODE> <A HREF="#N3" TITLE="N3 - three-place relational noun">N3</A></TD>
+<TD><I>e.g faSlh - sE - ka</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkCmpdNoun</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A> <CODE>-&gt;</CODE> <A HREF="#N" TITLE="N - common noun">N</A></TD>
+<TD><I>e.g t-alb elm</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#PN" TITLE="PN - proper name">PN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>personalPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#UPerson">UPerson</A> <CODE>-&gt;</CODE> <A HREF="#Pron" TITLE="Pron - personal pronoun">Pron</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>demoPN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkDet</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Det" TITLE="Det - determiner phrase">Det</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkIP</CODE></TD>
+<TD><CODE>(x1,x2,x3:Str)</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Gender">Gender</A> <CODE>-&gt;</CODE> <A HREF="#IP" TITLE="IP - interrogative pronoun">IP</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdN</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str-&gt;</CODE> <A HREF="#A" TITLE="A - one-place adjective">A</A></TD>
+<TD><I>e.g ach'a</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>e.g sE Xady krna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkA2</CODE></TD>
+<TD><A HREF="#A" TITLE="A - one-place adjective">A</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#A2" TITLE="A2 - two-place adjective">A2</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>regular verbs like swna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>e.g pyna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>e.g pyna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A></TD>
+<TD><I>e.g bnd krna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>V3;</CODE></TD>
+<TD><I>e.g bycna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkV2V</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Bool">Bool</A> <CODE>-&gt;</CODE> <A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V</A></TD>
+<TD><I>e.g eltja krna - sE - kw</I></TD>
+</TR>
+<TR>
+<TD><CODE>dirdirV3</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V3" TITLE="V3 - three-place verb">V3</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>compoundV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>e.g barX hwna</I></TD>
+</TR>
+<TR>
+<TD><CODE>compoundV</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#V2" TITLE="V2 - two-place verb">V2</A> <CODE>-&gt;</CODE> <A HREF="#V" TITLE="V - one-place verb">V</A></TD>
+<TD><I>e.g bnd krna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdv</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv</A></TD>
+<TD><I>e.g yhaN</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkPrep</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep</A></TD>
+<TD><I>e.g ka - ky</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkConj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><I>and (plural agreement)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkConj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><I>or (agrement number given as argument)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkConj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><I>both ... and (plural)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkConj</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#Number">Number</A> <CODE>-&gt;</CODE> <A HREF="#Conj" TITLE="Conj - conjunction">Conj</A></TD>
+<TD><I>either ... or (agrement number given as argument)</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVS</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <CODE>VS;</CODE></TD>
+<TD><I>e.g drna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVV</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV</A></TD>
+<TD><I>e.g cahna</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkAdA</CODE></TD>
+<TD><CODE>Str</CODE> <CODE>-&gt;</CODE> <A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA</A></TD>
+<TD><I>-</I></TD>
+</TR>
+<TR>
+<TD><CODE>mkVQ</CODE></TD>
+<TD><A HREF="#V" TITLE="V - one-place verb">V</A> <CODE>-&gt;</CODE> <A HREF="#VQ" TITLE="VQ - question-complement verb">VQ</A></TD>
+<TD><I>e.g janna</I></TD>
+</TR>
+</TABLE>
+
+<A NAME="toc100"></A>
+<H1>Browsing the libraries with GF commands</H1>
+<P>
+<B>New</B>: Browsing by syntax editor 
+<A HREF="../../../demos/resource-api/editor.html">directly on the web</A>.
+</P>
+<P>
+All of the following assume
+</P>
+<PRE>
+    cd $GF_LIB_PATH
+</PRE>
+<P>
+To try out inflection paradigms:
+</P>
+<PRE>
+    &gt; i -path=alltenses -retain alltenses/ParadigmsGer.gfo
+    &gt; cc mkN "Farbe"
+</PRE>
+<P>
+To try out overloaded syntax, test lexicon, and inflection paradigms:
+</P>
+<PRE>
+    &gt; i -path=alltenses -retain alltenses/TryGer.gfo
+    &gt; cc mkCl (mkNP this_Quant (mkN "Farbe")) (mkA "dunkel")
+</PRE>
+<P></P>
+<A NAME="toc101"></A>
+<H1>An Example of Usage</H1>
+<P>
+The standard way of building an application has the following modules.
+</P>
+<P>
+An abstract syntax:
+</P>
+<PRE>
+    abstract Music = {    
+    cat 
+      Kind, 
+      Property ;
+    fun 
+      PropKind : Kind -&gt; Property -&gt; Kind ; 
+      Song : Kind ;
+      American : Property ;
+    }
+</PRE>
+<P>
+A domain lexicon interface:
+</P>
+<PRE>
+    interface LexMusic = open Cat in {
+    oper
+      song_N : N ;
+      american_A : A ;
+    }
+</PRE>
+<P>
+A functor on <CODE>Syntax</CODE> and the domain lexicon interface:
+</P>
+<PRE>
+    incomplete concrete MusicI of Music = open Syntax, MusicLex in {
+    lincat 
+      Kind = CN ;
+      Property = AP ;
+    lin
+      PropKind k p = mkCN p k ;
+      Song = mkCN song_N ;
+      American = mkAP american_A ;
+    }
+</PRE>
+<P>
+For each language, an instance of the domain lexicon:
+</P>
+<PRE>
+    instance LexMusicGer of LexMusic = CatGer ** open ParadigmsGer in {    
+    oper
+      song_N = mkN "Lied" "Lieder" neuter ;
+      american_A = mkA "amerikanisch" ;
+    }
+</PRE>
+<P>
+For each language, an instantiation of the functor:
+</P>
+<PRE>
+    --# -path=.:present:prelude
+  
+    concrete MusicGer of Music = MusicI with
+      (Syntax = SyntaxGer),
+      (LexMusic = LexMusicGer) ;
+</PRE>
+<P></P>
+<A NAME="toc102"></A>
+<H1>Table of Contents</H1>
+  <UL>
+  <LI><A HREF="#toc1">Introduction</A>
+  <LI><A HREF="#toc2">Categories</A>
+    <UL>
+    <LI><A HREF="#toc3">A hierarchic view</A>
+    <LI><A HREF="#toc4">Explanations</A>
+    </UL>
+  <LI><A HREF="#toc5">Syntax Rules and Structural Words</A>
+    <UL>
+    <LI><A HREF="#A" TITLE="A - one-place adjective">A - one-place adjective</A>
+    <LI><A HREF="#A2" TITLE="A2 - two-place adjective">A2 - two-place adjective</A>
+    <LI><A HREF="#AP" TITLE="AP - adjectival phrase">AP - adjectival phrase</A>
+    <LI><A HREF="#AdA" TITLE="AdA - adjective-modifying adverb">AdA - adjective-modifying adverb</A>
+    <LI><A HREF="#AdN" TITLE="AdN - numeral-modifying adverb">AdN - numeral-modifying adverb</A>
+    <LI><A HREF="#AdV" TITLE="Adv - verb-phrase-modifying adverb">AdV - adverb directly attached to verb</A>
+    <LI><A HREF="#Adv" TITLE="Adv - verb-phrase-modifying adverb">Adv - verb-phrase-modifying adverb</A>
+    <LI><A HREF="#Ant" TITLE="Ant - anteriority">Ant - anteriority</A>
+    <LI><A HREF="#CAdv" TITLE="CAdv - comparative adverb">CAdv - comparative adverb</A>
+    <LI><A HREF="#CN" TITLE="CN - common noun (without determiner)">CN - common noun (without determiner)</A>
+    <LI><A HREF="#Card" TITLE="Card - cardinal number">Card - cardinal number</A>
+    <LI><A HREF="#Cl" TITLE="Cl - declarative clause, with all tenses">Cl - declarative clause, with all tenses</A>
+    <LI><A HREF="#ClSlash">ClSlash</A>
+    <LI><A HREF="#Comp" TITLE="Comp - complement of copula, such as AP">Comp - complement of copula, such as AP</A>
+    <LI><A HREF="#Conj" TITLE="Conj - conjunction">Conj - conjunction</A>
+    <LI><A HREF="#Det" TITLE="Det - determiner phrase">Det - determiner phrase</A>
+    <LI><A HREF="#Dig">Dig</A>
+    <LI><A HREF="#Digits" TITLE="Digits - cardinal or ordinal in digits">Digits - cardinal or ordinal in digits</A>
+    <LI><A HREF="#IAdv" TITLE="IAdv - interrogative adverb">IAdv - interrogative adverb</A>
+    <LI><A HREF="#IComp" TITLE="IComp - interrogative complement of copula">IComp - interrogative complement of copula</A>
+    <LI><A HREF="#IDet" TITLE="IDet - interrogative determiner">IDet - interrogative determiner</A>
+    <LI><A HREF="#IP" TITLE="IP - interrogative pronoun">IP - interrogative pronoun</A>
+    <LI><A HREF="#IQuant">IQuant</A>
+    <LI><A HREF="#Imp" TITLE="Imp - imperative">Imp - imperative</A>
+    <LI><A HREF="#ImpForm">ImpForm</A>
+    <LI><A HREF="#Interj" TITLE="Interj - interjection">Interj - interjection</A>
+    <LI><A HREF="#ListAP">ListAP</A>
+    <LI><A HREF="#ListAdv">ListAdv</A>
+    <LI><A HREF="#ListNP">ListNP</A>
+    <LI><A HREF="#ListRS">ListRS</A>
+    <LI><A HREF="#ListS">ListS</A>
+    <LI><A HREF="#N" TITLE="N - common noun">N - common noun</A>
+    <LI><A HREF="#N2" TITLE="N2 - relational noun">N2 - relational noun</A>
+    <LI><A HREF="#N3" TITLE="N3 - three-place relational noun">N3 - three-place relational noun</A>
+    <LI><A HREF="#NP" TITLE="NP - noun phrase (subject or object)">NP - noun phrase (subject or object)</A>
+    <LI><A HREF="#Num" TITLE="Num - number determining element">Num - number determining element</A>
+    <LI><A HREF="#Numeral" TITLE="Numeral - cardinal or ordinal in words">Numeral - cardinal or ordinal in words</A>
+    <LI><A HREF="#Ord" TITLE="Ord - ordinal number (used in Det)">Ord - ordinal number (used in Det)</A>
+    <LI><A HREF="#PConj" TITLE="PConj - phrase-beginning conjunction">PConj - phrase-beginning conjunction</A>
+    <LI><A HREF="#PN" TITLE="PN - proper name">PN - proper name</A>
+    <LI><A HREF="#Phr" TITLE="Phr - phrase in a text">Phr - phrase in a text</A>
+    <LI><A HREF="#Pol" TITLE="Pol - polarity">Pol - polarity</A>
+    <LI><A HREF="#Predet" TITLE="Predet - predeterminer (prefixed Quant)">Predet - predeterminer (prefixed Quant)</A>
+    <LI><A HREF="#Prep" TITLE="Prep - preposition, or just case">Prep - preposition, or just case</A>
+    <LI><A HREF="#Pron" TITLE="Pron - personal pronoun">Pron - personal pronoun</A>
+    <LI><A HREF="#Punct">Punct</A>
+    <LI><A HREF="#QCl" TITLE="QCl - question clause, with all tenses">QCl - question clause, with all tenses</A>
+    <LI><A HREF="#QS" TITLE="QS - question">QS - question</A>
+    <LI><A 'HREF="#Quant" TITLE="Quant - quantifier ('nucleus' of Det)"'>Quant - quantifier ('nucleus' of Det)</A>
+    <LI><A HREF="#RCl" TITLE="RCl - relative clause, with all tenses">RCl - relative clause, with all tenses</A>
+    <LI><A HREF="#RP" TITLE="RP - relative pronoun">RP - relative pronoun</A>
+    <LI><A HREF="#RS" TITLE="RS - relative">RS - relative</A>
+    <LI><A HREF="#S" TITLE="S - declarative sentence">S - declarative sentence</A>
+    <LI><A HREF="#SC" TITLE="SC - embedded sentence or question">SC - embedded sentence or question</A>
+    <LI><A HREF="#SSlash">SSlash</A>
+    <LI><A HREF="#Sub100">Sub100</A>
+    <LI><A HREF="#Sub1000">Sub1000</A>
+    <LI><A HREF="#Subj" TITLE="Subj - subjunction">Subj - subjunction</A>
+    <LI><A HREF="#Temp" TITLE="Temp - temporal and aspectual features">Temp - temporal and aspectual features</A>
+    <LI><A HREF="#Tense" TITLE="Tense - tense">Tense - tense</A>
+    <LI><A HREF="#Text" TITLE="Text - text consisting of several phrases">Text - text consisting of several phrases</A>
+    <LI><A HREF="#Unit">Unit</A>
+    <LI><A HREF="#Utt" TITLE="Utt - sentence, question, word...">Utt - sentence, question, word...</A>
+    <LI><A HREF="#V" TITLE="V - one-place verb">V - one-place verb</A>
+    <LI><A HREF="#V2" TITLE="V2 - two-place verb">V2 - two-place verb</A>
+    <LI><A HREF="#V2A" TITLE="V2A - verb with NP and AP complement">V2A - verb with NP and AP complement</A>
+    <LI><A HREF="#V2Q" TITLE="V2Q - verb with NP and Q complement">V2Q - verb with NP and Q complement</A>
+    <LI><A HREF="#V2S" TITLE="V2S - verb with NP and S complement">V2S - verb with NP and S complement</A>
+    <LI><A HREF="#V2V" TITLE="V2V - verb with NP and V complement">V2V - verb with NP and V complement</A>
+    <LI><A HREF="#V3" TITLE="V3 - three-place verb">V3 - three-place verb</A>
+    <LI><A HREF="#VA" TITLE="VA - adjective-complement verb">VA - adjective-complement verb</A>
+    <LI><A HREF="#VP" TITLE="VP - verb phrase">VP - verb phrase</A>
+    <LI><A HREF="#VPSlash" TITLE="VPSlash - verb phrase missing complement">VPSlash - verb phrase missing complement</A>
+    <LI><A HREF="#VQ" TITLE="VQ - question-complement verb">VQ - question-complement verb</A>
+    <LI><A HREF="#VS" TITLE="VS - sentence-complement verb">VS - sentence-complement verb</A>
+    <LI><A HREF="#VV" TITLE="VV - verb-phrase-complement verb">VV - verb-phrase-complement verb</A>
+    <LI><A HREF="#Voc" TITLE="Voc - vocative or "please"">Voc - vocative or "please"</A>
+    </UL>
+  <LI><A HREF="#toc83">Lexical Paradigms</A>
+    <UL>
+    <LI><A HREF="#toc84">Paradigms for Bulgarian</A>
+    <LI><A HREF="#toc85">Paradigms for Catalan</A>
+    <LI><A HREF="#toc86">Paradigms for Danish</A>
+    <LI><A HREF="#toc87">Paradigms for Dutch</A>
+    <LI><A HREF="#toc88">Paradigms for English</A>
+    <LI><A HREF="#toc89">Paradigms for Finnish</A>
+    <LI><A HREF="#toc90">Paradigms for French</A>
+    <LI><A HREF="#toc91">Paradigms for German</A>
+    <LI><A HREF="#toc92">Paradigms for Italian</A>
+    <LI><A HREF="#toc93">Paradigms for Norwegian</A>
+    <LI><A HREF="#toc94">Paradigms for Polish</A>
+    <LI><A HREF="#toc95">Paradigms for Romanian</A>
+    <LI><A HREF="#toc96">Paradigms for Russian</A>
+    <LI><A HREF="#toc97">Paradigms for Spanish</A>
+    <LI><A HREF="#toc98">Paradigms for Swedish</A>
+    <LI><A HREF="#toc99">Paradigms for Urdu</A>
+    </UL>
+  <LI><A HREF="#toc100">Browsing the libraries with GF commands</A>
+  <LI><A HREF="#toc101">An Example of Usage</A>
+  <LI><A HREF="#toc102">Table of Contents</A>
+  </UL>
+
+<P></P>
+
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
 <!-- cmdline: txt2tags -thtml -\-toc synopsis.txt -->
 </BODY></HTML>
diff --git a/lib/doc/synopsis.txt b/lib/doc/synopsis.txt
deleted file mode 100644
--- a/lib/doc/synopsis.txt
+++ /dev/null
@@ -1,1935 +0,0 @@
-GF Resource Grammar Library: Synopsis
-B. Bringert and A. Ranta
-
-
-%!postproc(html): '(SRC="categories.png")'  '\1 USEMAP="#categories"'
-%!postproc(html): '#LParadigms'  '<a name="RParadigms"></a>'
-%!postproc(tex): '#LParadigms' ''
-%!postproc(html): '(?i)(HREF="#A")( TITLE="[^"]*")?'  '\1 TITLE="A - one-place adjective"'
-%!postproc(html): '(?i)(HREF="#A2")( TITLE="[^"]*")?'  '\1 TITLE="A2 - two-place adjective"'
-%!postproc(html): '(?i)(HREF="#AP")( TITLE="[^"]*")?'  '\1 TITLE="AP - adjectival phrase"'
-%!postproc(html): '(?i)(HREF="#AdA")( TITLE="[^"]*")?'  '\1 TITLE="AdA - adjective-modifying adverb"'
-%!postproc(html): '(?i)(HREF="#AdN")( TITLE="[^"]*")?'  '\1 TITLE="AdN - numeral-modifying adverb"'
-%!postproc(html): '(?i)(HREF="#AdV")( TITLE="[^"]*")?'  '\1 TITLE="AdV - adverb directly attached to verb"'
-%!postproc(html): '(?i)(HREF="#Adv")( TITLE="[^"]*")?'  '\1 TITLE="Adv - verb-phrase-modifying adverb"'
-%!postproc(html): '(?i)(HREF="#Ant")( TITLE="[^"]*")?'  '\1 TITLE="Ant - anteriority"'
-%!postproc(html): '(?i)(HREF="#CAdv")( TITLE="[^"]*")?'  '\1 TITLE="CAdv - comparative adverb"'
-%!postproc(html): '(?i)(HREF="#CN")( TITLE="[^"]*")?'  '\1 TITLE="CN - common noun (without determiner)"'
-%!postproc(html): '(?i)(HREF="#Card")( TITLE="[^"]*")?'  '\1 TITLE="Card - cardinal number"'
-%!postproc(html): '(?i)(HREF="#Cl")( TITLE="[^"]*")?'  '\1 TITLE="Cl - declarative clause, with all tenses"'
-%!postproc(html): '(?i)(HREF="#Comp")( TITLE="[^"]*")?'  '\1 TITLE="Comp - complement of copula, such as AP"'
-%!postproc(html): '(?i)(HREF="#Conj")( TITLE="[^"]*")?'  '\1 TITLE="Conj - conjunction"'
-%!postproc(html): '(?i)(HREF="#Det")( TITLE="[^"]*")?'  '\1 TITLE="Det - determiner phrase"'
-%!postproc(html): '(?i)(HREF="#Digits")( TITLE="[^"]*")?'  '\1 TITLE="Digits - cardinal or ordinal in digits"'
-%!postproc(html): '(?i)(HREF="#IAdv")( TITLE="[^"]*")?'  '\1 TITLE="IAdv - interrogative adverb"'
-%!postproc(html): '(?i)(HREF="#IComp")( TITLE="[^"]*")?'  '\1 TITLE="IComp - interrogative complement of copula"'
-%!postproc(html): '(?i)(HREF="#IDet")( TITLE="[^"]*")?'  '\1 TITLE="IDet - interrogative determiner"'
-%!postproc(html): '(?i)(HREF="#IP")( TITLE="[^"]*")?'  '\1 TITLE="IP - interrogative pronoun"'
-%!postproc(html): '(?i)(HREF="#Imp")( TITLE="[^"]*")?'  '\1 TITLE="Imp - imperative"'
-%!postproc(html): '(?i)(HREF="#N")( TITLE="[^"]*")?'  '\1 TITLE="N - common noun"'
-%!postproc(html): '(?i)(HREF="#N2")( TITLE="[^"]*")?'  '\1 TITLE="N2 - relational noun"'
-%!postproc(html): '(?i)(HREF="#N3")( TITLE="[^"]*")?'  '\1 TITLE="N3 - three-place relational noun"'
-%!postproc(html): '(?i)(HREF="#NP")( TITLE="[^"]*")?'  '\1 TITLE="NP - noun phrase (subject or object)"'
-%!postproc(html): '(?i)(HREF="#Num")( TITLE="[^"]*")?'  '\1 TITLE="Num - number determining element"'
-%!postproc(html): '(?i)(HREF="#Numeral")( TITLE="[^"]*")?'  '\1 TITLE="Numeral - cardinal or ordinal in words"'
-%!postproc(html): '(?i)(HREF="#Ord")( TITLE="[^"]*")?'  '\1 TITLE="Ord - ordinal number (used in Det)"'
-%!postproc(html): '(?i)(HREF="#PConj")( TITLE="[^"]*")?'  '\1 TITLE="PConj - phrase-beginning conjunction"'
-%!postproc(html): '(?i)(HREF="#PN")( TITLE="[^"]*")?'  '\1 TITLE="PN - proper name"'
-%!postproc(html): '(?i)(HREF="#Phr")( TITLE="[^"]*")?'  '\1 TITLE="Phr - phrase in a text"'
-%!postproc(html): '(?i)(HREF="#Pol")( TITLE="[^"]*")?'  '\1 TITLE="Pol - polarity"'
-%!postproc(html): '(?i)(HREF="#Predet")( TITLE="[^"]*")?'  '\1 TITLE="Predet - predeterminer (prefixed Quant)"'
-%!postproc(html): '(?i)(HREF="#Prep")( TITLE="[^"]*")?'  '\1 TITLE="Prep - preposition, or just case"'
-%!postproc(html): '(?i)(HREF="#Pron")( TITLE="[^"]*")?'  '\1 TITLE="Pron - personal pronoun"'
-%!postproc(html): '(?i)(HREF="#QCl")( TITLE="[^"]*")?'  '\1 TITLE="QCl - question clause, with all tenses"'
-%!postproc(html): '(?i)(HREF="#QS")( TITLE="[^"]*")?'  '\1 TITLE="QS - question"'
-%!postproc(html): '(?i)(HREF="#Quant")( TITLE="[^"]*")?'  '\1 TITLE="Quant - quantifier ('nucleus' of Det)"'
-%!postproc(html): '(?i)(HREF="#RCl")( TITLE="[^"]*")?'  '\1 TITLE="RCl - relative clause, with all tenses"'
-%!postproc(html): '(?i)(HREF="#RP")( TITLE="[^"]*")?'  '\1 TITLE="RP - relative pronoun"'
-%!postproc(html): '(?i)(HREF="#RS")( TITLE="[^"]*")?'  '\1 TITLE="RS - relative"'
-%!postproc(html): '(?i)(HREF="#S")( TITLE="[^"]*")?'  '\1 TITLE="S - declarative sentence"'
-%!postproc(html): '(?i)(HREF="#SC")( TITLE="[^"]*")?'  '\1 TITLE="SC - embedded sentence or question"'
-%!postproc(html): '(?i)(HREF="#Subj")( TITLE="[^"]*")?'  '\1 TITLE="Subj - subjunction"'
-%!postproc(html): '(?i)(HREF="#Temp")( TITLE="[^"]*")?'  '\1 TITLE="Temp - temporal and aspectual features"'
-%!postproc(html): '(?i)(HREF="#Tense")( TITLE="[^"]*")?'  '\1 TITLE="Tense - tense"'
-%!postproc(html): '(?i)(HREF="#Text")( TITLE="[^"]*")?'  '\1 TITLE="Text - text consisting of several phrases"'
-%!postproc(html): '(?i)(HREF="#Utt")( TITLE="[^"]*")?'  '\1 TITLE="Utt - sentence, question, word..."'
-%!postproc(html): '(?i)(HREF="#V")( TITLE="[^"]*")?'  '\1 TITLE="V - one-place verb"'
-%!postproc(html): '(?i)(HREF="#V2")( TITLE="[^"]*")?'  '\1 TITLE="V2 - two-place verb"'
-%!postproc(html): '(?i)(HREF="#V2A")( TITLE="[^"]*")?'  '\1 TITLE="V2A - verb with NP and AP complement"'
-%!postproc(html): '(?i)(HREF="#V2Q")( TITLE="[^"]*")?'  '\1 TITLE="V2Q - verb with NP and Q complement"'
-%!postproc(html): '(?i)(HREF="#V2S")( TITLE="[^"]*")?'  '\1 TITLE="V2S - verb with NP and S complement"'
-%!postproc(html): '(?i)(HREF="#V2V")( TITLE="[^"]*")?'  '\1 TITLE="V2V - verb with NP and V complement"'
-%!postproc(html): '(?i)(HREF="#V3")( TITLE="[^"]*")?'  '\1 TITLE="V3 - three-place verb"'
-%!postproc(html): '(?i)(HREF="#VA")( TITLE="[^"]*")?'  '\1 TITLE="VA - adjective-complement verb"'
-%!postproc(html): '(?i)(HREF="#VP")( TITLE="[^"]*")?'  '\1 TITLE="VP - verb phrase"'
-%!postproc(html): '(?i)(HREF="#VPSlash")( TITLE="[^"]*")?'  '\1 TITLE="VPSlash - verb phrase missing complement"'
-%!postproc(html): '(?i)(HREF="#VQ")( TITLE="[^"]*")?'  '\1 TITLE="VQ - question-complement verb"'
-%!postproc(html): '(?i)(HREF="#VS")( TITLE="[^"]*")?'  '\1 TITLE="VS - sentence-complement verb"'
-%!postproc(html): '(?i)(HREF="#VV")( TITLE="[^"]*")?'  '\1 TITLE="VV - verb-phrase-complement verb"'
-%!postproc(html): '(?i)(HREF="#Voc")( TITLE="[^"]*")?'  '\1 TITLE="Voc - vocative or "please""'
-%!include: synopsis-intro.txt
-=Categories=
-
-
-Source 1: [``http://www.grammaticalframework.org/lib/resource/src/abstract/Common.gf`` ../src/abstract/Common.gf]
-
-
-Source 2: [``http://www.grammaticalframework.org/lib/resource/src/abstract/Cat.gf`` ../src/abstract/Cat.gf]
-
-
-==A hierarchic view==
-
-%!include: categories-intro.txt
-==Explanations==
-
-|| Category  | Explanation  | Example  ||
-| [A #A] | one-place adjective | //warm// |
-| [A2 #A2] | two-place adjective | //divisible// |
-| [AP #AP] | adjectival phrase | //very warm// |
-| [AdA #AdA] | adjective-modifying adverb | //very// |
-| [AdN #AdN] | numeral-modifying adverb | //more than// |
-| [AdV #AdV] | adverb directly attached to verb | //always// |
-| [Adv #Adv] | verb-phrase-modifying adverb | //in the house// |
-| [Ant #Ant] | anteriority | simultaneous, anterior |
-| [CAdv #CAdv] | comparative adverb | //more// |
-| [CN #CN] | common noun (without determiner) | //red house// |
-| [Card #Card] | cardinal number | //seven// |
-| [Cl #Cl] | declarative clause, with all tenses | //she looks at this// |
-| [Comp #Comp] | complement of copula, such as AP | //very warm// |
-| [Conj #Conj] | conjunction | //and// |
-| [Det #Det] | determiner phrase | //those seven// |
-| [Digits #Digits] | cardinal or ordinal in digits | //1,000/1,000th// |
-| [IAdv #IAdv] | interrogative adverb | //why// |
-| [IComp #IComp] | interrogative complement of copula | //where// |
-| [IDet #IDet] | interrogative determiner | //how many// |
-| [IP #IP] | interrogative pronoun | //who// |
-| [Imp #Imp] | imperative | //look at this// |
-| [N #N] | common noun | //house// |
-| [N2 #N2] | relational noun | //son// |
-| [N3 #N3] | three-place relational noun | //connection// |
-| [NP #NP] | noun phrase (subject or object) | //the red house// |
-| [Num #Num] | number determining element | //seven// |
-| [Numeral #Numeral] | cardinal or ordinal in words | //five/fifth// |
-| [Ord #Ord] | ordinal number (used in Det) | //seventh// |
-| [PConj #PConj] | phrase-beginning conjunction | //therefore// |
-| [PN #PN] | proper name | //Paris// |
-| [Phr #Phr] | phrase in a text | //but be quiet please// |
-| [Pol #Pol] | polarity | positive, negative |
-| [Predet #Predet] | predeterminer (prefixed Quant) | //all// |
-| [Prep #Prep] | preposition, or just case | //in// |
-| [Pron #Pron] | personal pronoun | //she// |
-| [QCl #QCl] | question clause, with all tenses | //why does she walk// |
-| [QS #QS] | question | //where did she live// |
-| [Quant #Quant] | quantifier ('nucleus' of Det) | //this/these// |
-| [RCl #RCl] | relative clause, with all tenses | //in which she lives// |
-| [RP #RP] | relative pronoun | //in which// |
-| [RS #RS] | relative | //in which she lived// |
-| [S #S] | declarative sentence | //she lived here// |
-| [SC #SC] | embedded sentence or question | //that it rains// |
-| [Subj #Subj] | subjunction | //if// |
-| [Temp #Temp] | temporal and aspectual features | past anterior |
-| [Tense #Tense] | tense | present, past, future |
-| [Text #Text] | text consisting of several phrases | //He is here. Why?// |
-| [Utt #Utt] | sentence, question, word... | //be quiet// |
-| [V #V] | one-place verb | //sleep// |
-| [V2 #V2] | two-place verb | //love// |
-| [V2A #V2A] | verb with NP and AP complement | //paint// |
-| [V2Q #V2Q] | verb with NP and Q complement | //ask// |
-| [V2S #V2S] | verb with NP and S complement | //tell// |
-| [V2V #V2V] | verb with NP and V complement | //cause// |
-| [V3 #V3] | three-place verb | //show// |
-| [VA #VA] | adjective-complement verb | //look// |
-| [VP #VP] | verb phrase | //is very warm// |
-| [VPSlash #VPSlash] | verb phrase missing complement | //give to John// |
-| [VQ #VQ] | question-complement verb | //wonder// |
-| [VS #VS] | sentence-complement verb | //claim// |
-| [VV #VV] | verb-phrase-complement verb | //want// |
-| [Voc #Voc] | vocative or "please" | //my darling// |
-
-
-=Syntax Rules and Structural Words=
-
-
-Source 1: [``http://www.grammaticalframework.org/lib/resource/src/api/Constructors.gf`` ../src/api/Constructors.gf]
-
-
-Source 2: [``http://www.grammaticalframework.org/lib/resource/src/abstract/Structural.gf`` ../src/abstract/Structural.gf]
-
-
-==A - one-place adjective==[A]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==A2 - two-place adjective==[A2]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==AP - adjectival phrase==[AP]
-|| Function  | Type  | Example  ||
-| ``comparAP`` | [A #A] ``->`` [AP #AP] | //warmer// |
-| ``mkAP`` | [A #A] ``->`` [AP #AP] | //old// |
-| ``mkAP`` | [A #A] ``->`` [NP #NP] ``->`` [AP #AP] | //older than John// |
-| ``mkAP`` | [A2 #A2] ``->`` [NP #NP] ``->`` [AP #AP] | //married to her// |
-| ``mkAP`` | [A2 #A2] ``->`` [AP #AP] | //married// |
-| ``mkAP`` | [AP #AP] ``->`` [S #S] ``->`` [AP #AP] | //probable that John walks// |
-| ``mkAP`` | [AP #AP] ``->`` [QS #QS] ``->`` [AP #AP] | //uncertain if John walks// |
-| ``mkAP`` | [AP #AP] ``->`` [VP #VP] ``->`` [AP #AP] | //ready to go// |
-| ``mkAP`` | [AdA #AdA] ``->`` [A #A] ``->`` [AP #AP] | //very old// |
-| ``mkAP`` | [AdA #AdA] ``->`` [AP #AP] ``->`` [AP #AP] | //very very old// |
-| ``mkAP`` | [Conj #Conj] ``->`` [AP #AP] ``->`` [AP #AP] ``->`` [AP #AP] | //old and big// |
-| ``mkAP`` | [Conj #Conj] ``->`` [ListAP #ListAP] ``->`` [AP #AP] | //old, big and warm// |
-| ``mkAP`` | [Ord #Ord] ``->`` [AP #AP] | //oldest// |
-| ``mkAP`` | [CAdv #CAdv] ``->`` [AP #AP] ``->`` [NP #NP] ``->`` [AP #AP] | //as old as John// |
-| ``reflAP`` | [A2 #A2] ``->`` [AP #AP] | //married to himself// |
-==AdA - adjective-modifying adverb==[AdA]
-|| Function  | Type  | Example  ||
-| ``almost_AdA`` | [AdA #AdA] | //almost// |
-| ``quite_Adv`` | [AdA #AdA] | //quite// |
-| ``so_AdA`` | [AdA #AdA] | //so// |
-| ``too_AdA`` | [AdA #AdA] | //too// |
-| ``very_AdA`` | [AdA #AdA] | //very// |
-==AdN - numeral-modifying adverb==[AdN]
-|| Function  | Type  | Example  ||
-| ``almost_AdN`` | [AdN #AdN] | //almost// |
-| ``at_least_AdN`` | [AdN #AdN] | //at// |
-| ``at_most_AdN`` | [AdN #AdN] | //at// |
-| ``mkAdN`` | [CAdv #CAdv] ``->`` [AdN #AdN] | //more than// |
-==AdV - adverb directly attached to verb==[AdV]
-|| Function  | Type  | Example  ||
-| ``always_AdV`` | [AdV #AdV] | //always// |
-==Adv - verb-phrase-modifying adverb==[Adv]
-|| Function  | Type  | Example  ||
-| ``everywhere_Adv`` | [Adv #Adv] | //everywhere// |
-| ``here7from_Adv`` | [Adv #Adv] | //from here// |
-| ``here7to_Adv`` | [Adv #Adv] | //to here// |
-| ``here_Adv`` | [Adv #Adv] | //here// |
-| ``mkAdv`` | [A #A] ``->`` [Adv #Adv] | //warmly// |
-| ``mkAdv`` | [Prep #Prep] ``->`` [NP #NP] ``->`` [Adv #Adv] | //with John// |
-| ``mkAdv`` | [Subj #Subj] ``->`` [S #S] ``->`` [Adv #Adv] | //when John walks// |
-| ``mkAdv`` | [CAdv #CAdv] ``->`` [A #A] ``->`` [NP #NP] ``->`` [Adv #Adv] | //more warmly than John// |
-| ``mkAdv`` | [CAdv #CAdv] ``->`` [A #A] ``->`` [S #S] ``->`` [Adv #Adv] | //more warmly than John walks// |
-| ``mkAdv`` | [AdA #AdA] ``->`` [Adv #Adv] ``->`` [Adv #Adv] | //very warmly// |
-| ``mkAdv`` | [Conj #Conj] ``->`` [Adv #Adv] ``->`` [Adv #Adv] ``->`` [Adv #Adv] | //here and now// |
-| ``mkAdv`` | [Conj #Conj] ``->`` [ListAdv #ListAdv] ``->`` [Adv #Adv] | //with John, here and now// |
-| ``somewhere_Adv`` | [Adv #Adv] | //somewhere// |
-| ``there7from_Adv`` | [Adv #Adv] | //from there// |
-| ``there7to_Adv`` | [Adv #Adv] | //to there// |
-| ``there_Adv`` | [Adv #Adv] | //there// |
-==Ant - anteriority==[Ant]
-|| Function  | Type  | Example  ||
-| ``anteriorAnt`` | [Ant #Ant] | //(John has walked)// |
-| ``simultaneousAnt`` | [Ant #Ant] | //(John walks) [default]// |
-==CAdv - comparative adverb==[CAdv]
-|| Function  | Type  | Example  ||
-| ``as_CAdv`` | [CAdv #CAdv] | //as// |
-| ``less_CAdv`` | [CAdv #CAdv] | //less// |
-| ``more_CAdv`` | [CAdv #CAdv] | //more// |
-==CN - common noun (without determiner)==[CN]
-|| Function  | Type  | Example  ||
-| ``mkCN`` | [N #N] ``->`` [CN #CN] | //house// |
-| ``mkCN`` | [N2 #N2] ``->`` [NP #NP] ``->`` [CN #CN] | //mother of John// |
-| ``mkCN`` | [N3 #N3] ``->`` [NP #NP] ``->`` [NP #NP] ``->`` [CN #CN] | //distance from this city to Paris// |
-| ``mkCN`` | [N2 #N2] ``->`` [CN #CN] | //son// |
-| ``mkCN`` | [N3 #N3] ``->`` [CN #CN] | //flight// |
-| ``mkCN`` | [A #A] ``->`` [N #N] ``->`` [CN #CN] | //big house// |
-| ``mkCN`` | [A #A] ``->`` [CN #CN] ``->`` [CN #CN] | //big blue house// |
-| ``mkCN`` | [AP #AP] ``->`` [N #N] ``->`` [CN #CN] | //very big house// |
-| ``mkCN`` | [AP #AP] ``->`` [CN #CN] ``->`` [CN #CN] | //very big blue house// |
-| ``mkCN`` | [N #N] ``->`` [RS #RS] ``->`` [CN #CN] | //house that John loves// |
-| ``mkCN`` | [CN #CN] ``->`` [RS #RS] ``->`` [CN #CN] | //big house that John loves// |
-| ``mkCN`` | [N #N] ``->`` [Adv #Adv] ``->`` [CN #CN] | //house in the city// |
-| ``mkCN`` | [CN #CN] ``->`` [Adv #Adv] ``->`` [CN #CN] | //big house in the city// |
-| ``mkCN`` | [CN #CN] ``->`` [S #S] ``->`` [CN #CN] | //rule that John walks// |
-| ``mkCN`` | [CN #CN] ``->`` [QS #QS] ``->`` [CN #CN] | //question if John walks// |
-| ``mkCN`` | [CN #CN] ``->`` [VP #VP] ``->`` [CN #CN] | //reason to walk// |
-| ``mkCN`` | [N #N] ``->`` [NP #NP] ``->`` [CN #CN] | //king John// |
-| ``mkCN`` | [CN #CN] ``->`` [NP #NP] ``->`` [CN #CN] | //old king John// |
-==Card - cardinal number==[Card]
-|| Function  | Type  | Example  ||
-| ``mkCard`` | ``Str`` ``->`` [Card #Card] | //thirty-five (given by "35")// |
-| ``mkCard`` | [Numeral #Numeral] ``->`` [Card #Card] | //thirty-five (given in any way)// |
-| ``mkCard`` | [Digits #Digits] ``->`` [Card #Card] | //51// |
-| ``mkCard`` | [AdN #AdN] ``->`` [Card #Card] ``->`` [Card #Card] | //mkCard// |
-==Cl - declarative clause, with all tenses==[Cl]
-|| Function  | Type  | Example  ||
-| ``genericCl`` | [VP #VP] ``->`` [Cl #Cl] | //one walks// |
-| ``mkCl`` | [NP #NP] ``->`` [V #V] ``->`` [Cl #Cl] | //John walks// |
-| ``mkCl`` | [NP #NP] ``->`` [V2 #V2] ``->`` [NP #NP] ``->`` [Cl #Cl] | //John loves her// |
-| ``mkCl`` | [NP #NP] ``->`` [V3 #V3] ``->`` [NP #NP] ``->`` [NP #NP] ``->`` [Cl #Cl] | //John sends it to her// |
-| ``mkCl`` | [NP #NP] ``->`` [VV #VV] ``->`` [VP #VP] ``->`` [Cl #Cl] | //John wants to walk// |
-| ``mkCl`` | [NP #NP] ``->`` [VS #VS] ``->`` [S #S] ``->`` [Cl #Cl] | //John says that it is good// |
-| ``mkCl`` | [NP #NP] ``->`` [VQ #VQ] ``->`` [QS #QS] ``->`` [Cl #Cl] | //John wonders if it is good// |
-| ``mkCl`` | [NP #NP] ``->`` [VA #VA] ``->`` [AP #AP] ``->`` [Cl #Cl] | //John becomes old// |
-| ``mkCl`` | [NP #NP] ``->`` [V2A #V2A] ``->`` [NP #NP] ``->`` [AP #AP] ``->`` [Cl #Cl] | //John paints it red// |
-| ``mkCl`` | [NP #NP] ``->`` [V2S #V2S] ``->`` [NP #NP] ``->`` [S #S] ``->`` [Cl #Cl] | //John tells her that we are here// |
-| ``mkCl`` | [NP #NP] ``->`` [V2Q #V2Q] ``->`` [NP #NP] ``->`` [QS #QS] ``->`` [Cl #Cl] | //John asks her who is here// |
-| ``mkCl`` | [NP #NP] ``->`` [V2V #V2V] ``->`` [NP #NP] ``->`` [VP #VP] ``->`` [Cl #Cl] | //John forces us to sleep// |
-| ``mkCl`` | [NP #NP] ``->`` [A #A] ``->`` [Cl #Cl] | //John is old// |
-| ``mkCl`` | [NP #NP] ``->`` [A #A] ``->`` [NP #NP] ``->`` [Cl #Cl] | //John is older than her// |
-| ``mkCl`` | [NP #NP] ``->`` [A2 #A2] ``->`` [NP #NP] ``->`` [Cl #Cl] | //John is married to her// |
-| ``mkCl`` | [NP #NP] ``->`` [AP #AP] ``->`` [Cl #Cl] | //John is very old// |
-| ``mkCl`` | [NP #NP] ``->`` [N #N] ``->`` [Cl #Cl] | //John is a man// |
-| ``mkCl`` | [NP #NP] ``->`` [CN #CN] ``->`` [Cl #Cl] | //John is an old man// |
-| ``mkCl`` | [NP #NP] ``->`` [NP #NP] ``->`` [Cl #Cl] | //John is the man// |
-| ``mkCl`` | [NP #NP] ``->`` [Adv #Adv] ``->`` [Cl #Cl] | //John is here// |
-| ``mkCl`` | [NP #NP] ``->`` [VP #VP] ``->`` [Cl #Cl] | //John walks here// |
-| ``mkCl`` | [V #V] ``->`` [Cl #Cl] | //it rains// |
-| ``mkCl`` | [VP #VP] ``->`` [Cl #Cl] | //it is raining// |
-| ``mkCl`` | [N #N] ``->`` [Cl #Cl] | //there is a house// |
-| ``mkCl`` | [CN #CN] ``->`` [Cl #Cl] | //there is an old houses// |
-| ``mkCl`` | [NP #NP] ``->`` [Cl #Cl] | //there are five houses// |
-| ``mkCl`` | [NP #NP] ``->`` [RS #RS] ``->`` [Cl #Cl] | //it is John that walks// |
-| ``mkCl`` | [Adv #Adv] ``->`` [S #S] ``->`` [Cl #Cl] | //it is here John walks// |
-==ClSlash==[ClSlash]
-|| Function  | Type  | Example  ||
-| ``mkClSlash`` | [NP #NP] ``->`` [V2 #V2] ``->`` [ClSlash #ClSlash] | //(whom) John loves// |
-| ``mkClSlash`` | [NP #NP] ``->`` [VV #VV] ``->`` [V2 #V2] ``->`` [ClSlash #ClSlash] | //(whom) John wants to see// |
-| ``mkClSlash`` | [Cl #Cl] ``->`` [Prep #Prep] ``->`` [ClSlash #ClSlash] | //(with whom) John walks// |
-| ``mkClSlash`` | [ClSlash #ClSlash] ``->`` [Adv #Adv] ``->`` [ClSlash #ClSlash] | //(whom) John loves today// |
-==Comp - complement of copula, such as AP==[Comp]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==Conj - conjunction==[Conj]
-|| Function  | Type  | Example  ||
-| ``and_Conj`` | [Conj #Conj] | //and// |
-| ``both7and_DConj`` | [Conj #Conj] | //both...and// |
-| ``either7or_DConj`` | [Conj #Conj] | //either...or// |
-| ``if_then_Conj`` | [Conj #Conj] | //if// |
-| ``or_Conj`` | [Conj #Conj] | //or// |
-==Det - determiner phrase==[Det]
-|| Function  | Type  | Example  ||
-| ``aPl_Det`` | [Det #Det] | //(houses)// |
-| ``aSg_Det`` | [Det #Det] | //a (house)// |
-| ``a_Det`` | [Det #Det] | //a (house)// |
-| ``every_Det`` | [Det #Det] | //every// |
-| ``few_Det`` | [Det #Det] | //few// |
-| ``many_Det`` | [Det #Det] | //many// |
-| ``mkDet`` | [Quant #Quant] ``->`` [Det #Det] | //this// |
-| ``mkDet`` | [Quant #Quant] ``->`` ([Ord #Ord]) ``->`` [Det #Det] | //this first// |
-| ``mkDet`` | [Quant #Quant] ``->`` [Num #Num] ``->`` [Det #Det] | //these// |
-| ``mkDet`` | [Quant #Quant] ``->`` [Num #Num] ``->`` ([Ord #Ord]) ``->`` [Det #Det] | //these five best// |
-| ``mkDet`` | [Quant #Quant] ``->`` [Det #Det] | //this// |
-| ``mkDet`` | [Quant #Quant] ``->`` [Num #Num] ``->`` [Det #Det] | //these five// |
-| ``mkDet`` | [Card #Card] ``->`` [Det #Det] | //almost twenty// |
-| ``mkDet`` | [Numeral #Numeral] ``->`` [Det #Det] | //five// |
-| ``mkDet`` | [Digits #Digits] ``->`` [Det #Det] | //51// |
-| ``mkDet`` | [Pron #Pron] ``->`` [Det #Det] | //my (house)// |
-| ``mkDet`` | [Pron #Pron] ``->`` [Num #Num] ``->`` [Det #Det] | //my (houses)// |
-| ``much_Det`` | [Det #Det] | //much// |
-| ``somePl_Det`` | [Det #Det] | //somePl// |
-| ``someSg_Det`` | [Det #Det] | //someSg// |
-| ``thePl_Det`` | [Det #Det] | //the (houses)// |
-| ``the_Det`` | [Det #Det] | //the (house)// |
-==Dig==[Dig]
-|| Function  | Type  | Example  ||
-| ``n0_Dig`` | [Dig #Dig] | //0// |
-| ``n1_Dig`` | [Dig #Dig] | //1// |
-| ``n2_Dig`` | [Dig #Dig] | //2// |
-| ``n3_Dig`` | [Dig #Dig] | //3// |
-| ``n4_Dig`` | [Dig #Dig] | //4// |
-| ``n5_Dig`` | [Dig #Dig] | //5// |
-| ``n6_Dig`` | [Dig #Dig] | //6// |
-| ``n7_Dig`` | [Dig #Dig] | //7// |
-| ``n8_Dig`` | [Dig #Dig] | //8// |
-| ``n9_Dig`` | [Dig #Dig] | //9// |
-==Digits - cardinal or ordinal in digits==[Digits]
-|| Function  | Type  | Example  ||
-| ``mkDigits`` | [Dig #Dig] ``->`` [Digits #Digits] | //8// |
-| ``mkDigits`` | [Dig #Dig] ``->`` [Digits #Digits] ``->`` [Digits #Digits] | //876// |
-| ``n1000_Digits`` | [Digits #Digits] | //1,000// |
-| ``n100_Digits`` | [Digits #Digits] | //100// |
-| ``n10_Digits`` | [Digits #Digits] | //10// |
-| ``n1_Digits`` | [Digits #Digits] | //1// |
-| ``n20_Digits`` | [Digits #Digits] | //20// |
-| ``n2_Digits`` | [Digits #Digits] | //2// |
-| ``n3_Digits`` | [Digits #Digits] | //3// |
-| ``n4_Digits`` | [Digits #Digits] | //4// |
-| ``n5_Digits`` | [Digits #Digits] | //5// |
-| ``n6_Digits`` | [Digits #Digits] | //6// |
-| ``n7_Digits`` | [Digits #Digits] | //7// |
-| ``n8_Digits`` | [Digits #Digits] | //8// |
-| ``n9_Digits`` | [Digits #Digits] | //9// |
-==IAdv - interrogative adverb==[IAdv]
-|| Function  | Type  | Example  ||
-| ``how8much_IAdv`` | [IAdv #IAdv] | //how8much// |
-| ``how_IAdv`` | [IAdv #IAdv] | //how// |
-| ``mkIAdv`` | [Prep #Prep] ``->`` [IP #IP] ``->`` [IAdv #IAdv] | //in which city// |
-| ``when_IAdv`` | [IAdv #IAdv] | //when// |
-| ``where_IAdv`` | [IAdv #IAdv] | //where// |
-| ``why_IAdv`` | [IAdv #IAdv] | //why// |
-==IComp - interrogative complement of copula==[IComp]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==IDet - interrogative determiner==[IDet]
-|| Function  | Type  | Example  ||
-| ``how8many_IDet`` | [IDet #IDet] | //how8many// |
-==IP - interrogative pronoun==[IP]
-|| Function  | Type  | Example  ||
-| ``mkIP`` | [IQuant #IQuant] ``->`` [N #N] ``->`` [IP #IP] | //which city// |
-| ``mkIP`` | [IQuant #IQuant] ``->`` ([Num #Num]) ``->`` [CN #CN] ``->`` [IP #IP] | //which five big cities// |
-| ``mkIP`` | [IP #IP] ``->`` [Adv #Adv] ``->`` [IP #IP] | //who in Paris// |
-| ``whatPl_IP`` | [IP #IP] | //what (plural)// |
-| ``whatSg_IP`` | [IP #IP] | //what (singular)// |
-| ``whoPl_IP`` | [IP #IP] | //who (plural)// |
-| ``whoSg_IP`` | [IP #IP] | //who (singular)// |
-==IQuant==[IQuant]
-|| Function  | Type  | Example  ||
-| ``which_IQuant`` | [IQuant #IQuant] | //which// |
-==Imp - imperative==[Imp]
-|| Function  | Type  | Example  ||
-| ``mkImp`` | [V #V] ``->`` [Imp #Imp] | //go// |
-| ``mkImp`` | [V2 #V2] ``->`` [NP #NP] ``->`` [Imp #Imp] | //take it// |
-| ``mkImp`` | [VP #VP] ``->`` [Imp #Imp] | //go there now// |
-==ImpForm==[ImpForm]
-|| Function  | Type  | Example  ||
-| ``pluralImpForm`` | [ImpForm #ImpForm] | //(help yourselves)// |
-| ``politeImpForm`` | [ImpForm #ImpForm] | //(help yourself) (polite singular)// |
-| ``singularImpForm`` | [ImpForm #ImpForm] | //(help yourself) [default]// |
-==ListAP==[ListAP]
-|| Function  | Type  | Example  ||
-| ``mkListAP`` | [AP #AP] ``->`` [AP #AP] ``->`` [ListAP #ListAP] | //old, big// |
-| ``mkListAP`` | [AP #AP] ``->`` [ListAP #ListAP] ``->`` [ListAP #ListAP] | //old, big, warm// |
-==ListAdv==[ListAdv]
-|| Function  | Type  | Example  ||
-| ``mkListAdv`` | [Adv #Adv] ``->`` [Adv #Adv] ``->`` [ListAdv #ListAdv] | //here, now// |
-| ``mkListAdv`` | [Adv #Adv] ``->`` [ListAdv #ListAdv] ``->`` [ListAdv #ListAdv] | //to me, here, now// |
-==ListNP==[ListNP]
-|| Function  | Type  | Example  ||
-| ``mkListNP`` | [NP #NP] ``->`` [NP #NP] ``->`` [ListNP #ListNP] | //John, I// |
-| ``mkListNP`` | [NP #NP] ``->`` [ListNP #ListNP] ``->`` [ListNP #ListNP] | //John, I, that// |
-==ListRS==[ListRS]
-|| Function  | Type  | Example  ||
-| ``mkListRS`` | [RS #RS] ``->`` [RS #RS] ``->`` [ListRS #ListRS] | //who walks, who runs// |
-| ``mkListRS`` | [RS #RS] ``->`` [ListRS #ListRS] ``->`` [ListRS #ListRS] | //who walks, who runs, who sleeps// |
-==ListS==[ListS]
-|| Function  | Type  | Example  ||
-| ``mkListS`` | [S #S] ``->`` [S #S] ``->`` [ListS #ListS] | //he walks, I run// |
-| ``mkListS`` | [S #S] ``->`` [ListS #ListS] ``->`` [ListS #ListS] | //John walks, I run, you sleep// |
-==N - common noun==[N]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==N2 - relational noun==[N2]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==N3 - three-place relational noun==[N3]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==NP - noun phrase (subject or object)==[NP]
-|| Function  | Type  | Example  ||
-| ``everybody_NP`` | [NP #NP] | //everybody// |
-| ``everything_NP`` | [NP #NP] | //everything// |
-| ``mkNP`` | [Quant #Quant] ``->`` [N #N] ``->`` [NP #NP] | //this men// |
-| ``mkNP`` | [Quant #Quant] ``->`` ([Num #Num]) ``->`` [CN #CN] ``->`` [NP #NP] | //these five old men// |
-| ``mkNP`` | [Det #Det] ``->`` [N #N] ``->`` [NP #NP] | //the first man// |
-| ``mkNP`` | [Det #Det] ``->`` [CN #CN] ``->`` [NP #NP] | //the first old man// |
-| ``mkNP`` | [Numeral #Numeral] ``->`` [N #N] ``->`` [NP #NP] | //twenty men// |
-| ``mkNP`` | [Numeral #Numeral] ``->`` [CN #CN] ``->`` [NP #NP] | //twenty old men// |
-| ``mkNP`` | [Digits #Digits] ``->`` [N #N] ``->`` [NP #NP] | //45 men// |
-| ``mkNP`` | [Digits #Digits] ``->`` [CN #CN] ``->`` [NP #NP] | //45 old men// |
-| ``mkNP`` | [Card #Card] ``->`` [N #N] ``->`` [NP #NP] | //almost twenty men// |
-| ``mkNP`` | [Card #Card] ``->`` [CN #CN] ``->`` [NP #NP] | //almost twenty old men// |
-| ``mkNP`` | [Pron #Pron] ``->`` [N #N] ``->`` [NP #NP] | //my man// |
-| ``mkNP`` | [Pron #Pron] ``->`` [CN #CN] ``->`` [NP #NP] | //my old man// |
-| ``mkNP`` | [PN #PN] ``->`` [NP #NP] | //John// |
-| ``mkNP`` | [Pron #Pron] ``->`` [NP #NP] | //he// |
-| ``mkNP`` | [Quant #Quant] ``->`` [NP #NP] | //this// |
-| ``mkNP`` | [Det #Det] ``->`` [NP #NP] | //these five// |
-| ``mkNP`` | [N #N] ``->`` [NP #NP] | //beer// |
-| ``mkNP`` | [CN #CN] ``->`` [NP #NP] | //beer// |
-| ``mkNP`` | [Predet #Predet] ``->`` [NP #NP] ``->`` [NP #NP] | //only John// |
-| ``mkNP`` | [NP #NP] ``->`` [V2 #V2] ``->`` [NP #NP] | //John killed// |
-| ``mkNP`` | [NP #NP] ``->`` [Adv #Adv] ``->`` [NP #NP] | //John in Paris// |
-| ``mkNP`` | [NP #NP] ``->`` [RS #RS] ``->`` [NP #NP] | //John, who lives in Paris// |
-| ``mkNP`` | [Conj #Conj] ``->`` [NP #NP] ``->`` [NP #NP] ``->`` [NP #NP] | //John and I// |
-| ``mkNP`` | [Conj #Conj] ``->`` [ListNP #ListNP] ``->`` [NP #NP] | //John, I, and that// |
-| ``nobody_NP`` | [NP #NP] | //nobody// |
-| ``nothing_NP`` | [NP #NP] | //nothing// |
-| ``somebody_NP`` | [NP #NP] | //somebody// |
-| ``something_NP`` | [NP #NP] | //something// |
-==Num - number determining element==[Num]
-|| Function  | Type  | Example  ||
-| ``mkNum`` | ``Str`` ``->`` [Num #Num] | //thirty-five (given by "35")// |
-| ``mkNum`` | [Numeral #Numeral] ``->`` [Num #Num] | //twenty// |
-| ``mkNum`` | [Digits #Digits] ``->`` [Num #Num] | //51// |
-| ``mkNum`` | [Card #Card] ``->`` [Num #Num] | //almost ten// |
-| ``mkNum`` | [AdN #AdN] ``->`` [Card #Card] ``->`` [Num #Num] | //almost ten// |
-| ``plNum`` | [Num #Num] | //plural// |
-| ``sgNum`` | [Num #Num] | //singular// |
-==Numeral - cardinal or ordinal in words==[Numeral]
-|| Function  | Type  | Example  ||
-| ``mkNumeral`` | ``Str`` ``->`` [Numeral #Numeral] | //thirty-five (given by "35")// |
-| ``n1000_Numeral`` | [Numeral #Numeral] | //thousand// |
-| ``n100_Numeral`` | [Numeral #Numeral] | //hundred// |
-| ``n10_Numeral`` | [Numeral #Numeral] | //ten// |
-| ``n1_Numeral`` | [Numeral #Numeral] | //one// |
-| ``n20_Numeral`` | [Numeral #Numeral] | //twenty// |
-| ``n2_Numeral`` | [Numeral #Numeral] | //two// |
-| ``n3_Numeral`` | [Numeral #Numeral] | //three// |
-| ``n4_Numeral`` | [Numeral #Numeral] | //four// |
-| ``n5_Numeral`` | [Numeral #Numeral] | //five// |
-| ``n6_Numeral`` | [Numeral #Numeral] | //six// |
-| ``n7_Numeral`` | [Numeral #Numeral] | //seven// |
-| ``n8_Numeral`` | [Numeral #Numeral] | //eight// |
-| ``n9_Numeral`` | [Numeral #Numeral] | //nine// |
-==Ord - ordinal number (used in Det)==[Ord]
-|| Function  | Type  | Example  ||
-| ``mkOrd`` | [Numeral #Numeral] ``->`` [Ord #Ord] | //twentieth// |
-| ``mkOrd`` | [Digits #Digits] ``->`` [Ord #Ord] | //51st// |
-| ``mkOrd`` | [A #A] ``->`` [Ord #Ord] | //best// |
-==PConj - phrase-beginning conjunction==[PConj]
-|| Function  | Type  | Example  ||
-| ``but_PConj`` | [PConj #PConj] | //but// |
-| ``mkPConj`` | [Conj #Conj] ``->`` [PConj #PConj] | //and// |
-| ``otherwise_PConj`` | [PConj #PConj] | //otherwise// |
-| ``therefore_PConj`` | [PConj #PConj] | //therefore// |
-==PN - proper name==[PN]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==Phr - phrase in a text==[Phr]
-|| Function  | Type  | Example  ||
-| ``mkPhr`` | [Utt #Utt] ``->`` [Phr #Phr] | //why// |
-| ``mkPhr`` | ([PConj #PConj]) ``->`` [Utt #Utt] ``->`` ([Voc #Voc]) ``->`` [Phr #Phr] | //but why John// |
-| ``mkPhr`` | [S #S] ``->`` [Phr #Phr] | //John walked// |
-| ``mkPhr`` | [Cl #Cl] ``->`` [Phr #Phr] | //John walks// |
-| ``mkPhr`` | [QS #QS] ``->`` [Phr #Phr] | //did John walk// |
-| ``mkPhr`` | [Imp #Imp] ``->`` [Phr #Phr] | //walk// |
-==Pol - polarity==[Pol]
-|| Function  | Type  | Example  ||
-| ``negativePol`` | [Pol #Pol] | //(John doesn't walk)// |
-| ``positivePol`` | [Pol #Pol] | //(John walks) [default]// |
-==Predet - predeterminer (prefixed Quant)==[Predet]
-|| Function  | Type  | Example  ||
-| ``all_Predet`` | [Predet #Predet] | //all// |
-| ``most_Predet`` | [Predet #Predet] | //most// |
-| ``not_Predet`` | [Predet #Predet] | //not// |
-| ``only_Predet`` | [Predet #Predet] | //only// |
-==Prep - preposition, or just case==[Prep]
-|| Function  | Type  | Example  ||
-| ``above_Prep`` | [Prep #Prep] | //above// |
-| ``after_Prep`` | [Prep #Prep] | //after// |
-| ``before_Prep`` | [Prep #Prep] | //before// |
-| ``behind_Prep`` | [Prep #Prep] | //behind// |
-| ``between_Prep`` | [Prep #Prep] | //between// |
-| ``by8agent_Prep`` | [Prep #Prep] | //by (agent)// |
-| ``by8means_Prep`` | [Prep #Prep] | //by (means of)// |
-| ``during_Prep`` | [Prep #Prep] | //during// |
-| ``except_Prep`` | [Prep #Prep] | //except// |
-| ``for_Prep`` | [Prep #Prep] | //for// |
-| ``from_Prep`` | [Prep #Prep] | //from// |
-| ``in8front_Prep`` | [Prep #Prep] | //in front of// |
-| ``in_Prep`` | [Prep #Prep] | //in// |
-| ``on_Prep`` | [Prep #Prep] | //on// |
-| ``part_Prep`` | [Prep #Prep] | //part// |
-| ``possess_Prep`` | [Prep #Prep] | //of (possessive)// |
-| ``through_Prep`` | [Prep #Prep] | //through// |
-| ``to_Prep`` | [Prep #Prep] | //to// |
-| ``under_Prep`` | [Prep #Prep] | //under// |
-| ``with_Prep`` | [Prep #Prep] | //with// |
-| ``without_Prep`` | [Prep #Prep] | //without// |
-==Pron - personal pronoun==[Pron]
-|| Function  | Type  | Example  ||
-| ``he_Pron`` | [Pron #Pron] | //he// |
-| ``i_Pron`` | [Pron #Pron] | //i// |
-| ``it_Pron`` | [Pron #Pron] | //it// |
-| ``she_Pron`` | [Pron #Pron] | //she// |
-| ``they_Pron`` | [Pron #Pron] | //they// |
-| ``we_Pron`` | [Pron #Pron] | //we// |
-| ``youPl_Pron`` | [Pron #Pron] | //you (plural)// |
-| ``youPol_Pron`` | [Pron #Pron] | //you (polite)// |
-| ``youSg_Pron`` | [Pron #Pron] | //you (singular)// |
-==Punct==[Punct]
-|| Function  | Type  | Example  ||
-| ``exclMarkPunct`` | [Punct #Punct] | //!// |
-| ``fullStopPunct`` | [Punct #Punct] | //.// |
-| ``questMarkPunct`` | [Punct #Punct] | //?// |
-==QCl - question clause, with all tenses==[QCl]
-|| Function  | Type  | Example  ||
-| ``mkQCl`` | [Cl #Cl] ``->`` [QCl #QCl] | //does John walk// |
-| ``mkQCl`` | [IP #IP] ``->`` [VP #VP] ``->`` [QCl #QCl] | //who walks// |
-| ``mkQCl`` | [IP #IP] ``->`` [NP #NP] ``->`` [V2 #V2] ``->`` [QCl #QCl] | //whom does John love// |
-| ``mkQCl`` | [IP #IP] ``->`` [ClSlash #ClSlash] ``->`` [QCl #QCl] | //whom does John love today// |
-| ``mkQCl`` | [IAdv #IAdv] ``->`` [Cl #Cl] ``->`` [QCl #QCl] | //why does John walk// |
-| ``mkQCl`` | [Prep #Prep] ``->`` [IP #IP] ``->`` [Cl #Cl] ``->`` [QCl #QCl] | //with who does John walk// |
-| ``mkQCl`` | [IAdv #IAdv] ``->`` [NP #NP] ``->`` [QCl #QCl] | //where is John// |
-| ``mkQCl`` | [IP #IP] ``->`` [QCl #QCl] | //what is there// |
-| ``mkQCl`` | [IComp #IComp] ``->`` [NP #NP] ``->`` [QCl #QCl] | //who is John// |
-==QS - question==[QS]
-|| Function  | Type  | Example  ||
-| ``mkQS`` | [QCl #QCl] ``->`` [QS #QS] | //who walks// |
-| ``mkQS`` | ([Tense #Tense]) ``->`` ([Ant #Ant]) ``->`` ([Pol #Pol]) ``->`` [QCl #QCl] ``->`` [QS #QS] | //who wouldn't have walked// |
-| ``mkQS`` | [Cl #Cl] ``->`` [QS #QS] | //does John walk// |
-==Quant - quantifier ('nucleus' of Det)==[Quant]
-|| Function  | Type  | Example  ||
-| ``a_Quant`` | [Quant #Quant] | //a// |
-| ``mkQuant`` | [Pron #Pron] ``->`` [Quant #Quant] | //my// |
-| ``no_Quant`` | [Quant #Quant] | //no// |
-| ``that_Quant`` | [Quant #Quant] | //that// |
-| ``the_Quant`` | [Quant #Quant] | //the// |
-| ``this_Quant`` | [Quant #Quant] | //this// |
-==RCl - relative clause, with all tenses==[RCl]
-|| Function  | Type  | Example  ||
-| ``mkRCl`` | [RP #RP] ``->`` [VP #VP] ``->`` [RCl #RCl] | //that walk// |
-| ``mkRCl`` | [RP #RP] ``->`` [NP #NP] ``->`` [V2 #V2] ``->`` [RCl #RCl] | //which John loves// |
-| ``mkRCl`` | [RP #RP] ``->`` [ClSlash #ClSlash] ``->`` [RCl #RCl] | //which John loves today// |
-| ``mkRCl`` | [Cl #Cl] ``->`` [RCl #RCl] | //such that John loves her// |
-==RP - relative pronoun==[RP]
-|| Function  | Type  | Example  ||
-| ``mkRP`` | [Prep #Prep] ``->`` [NP #NP] ``->`` [RP #RP] ``->`` [RP #RP] | //all the houses in which// |
-| ``which_RP`` | [RP #RP] | //which// |
-==RS - relative==[RS]
-|| Function  | Type  | Example  ||
-| ``mkRS`` | [RCl #RCl] ``->`` [RS #RS] | //that walk// |
-| ``mkRS`` | ([Tense #Tense]) ``->`` ([Ant #Ant]) ``->`` ([Pol #Pol]) ``->`` [RCl #RCl] ``->`` [RS #RS] | //that wouldn't have walked// |
-| ``mkRS`` | [Conj #Conj] ``->`` [RS #RS] ``->`` [RS #RS] ``->`` [RS #RS] | //who walks and whom I know// |
-| ``mkRS`` | [Conj #Conj] ``->`` [ListRS #ListRS] ``->`` [RS #RS] | //who walks, whose son runs, and whom I know// |
-==S - declarative sentence==[S]
-|| Function  | Type  | Example  ||
-| ``mkS`` | [Cl #Cl] ``->`` [S #S] | //John walks// |
-| ``mkS`` | ([Tense #Tense]) ``->`` ([Ant #Ant]) ``->`` ([Pol #Pol]) ``->`` [Cl #Cl] ``->`` [S #S] | //John wouldn't have walked// |
-| ``mkS`` | [Conj #Conj] ``->`` [S #S] ``->`` [S #S] ``->`` [S #S] | //John walks and I run// |
-| ``mkS`` | [Conj #Conj] ``->`` [ListS #ListS] ``->`` [S #S] | //John walks, I run and you sleep// |
-| ``mkS`` | [Adv #Adv] ``->`` [S #S] ``->`` [S #S] | //today, John walks// |
-==SC - embedded sentence or question==[SC]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==Subj - subjunction==[Subj]
-|| Function  | Type  | Example  ||
-| ``although_Subj`` | [Subj #Subj] | //although// |
-| ``because_Subj`` | [Subj #Subj] | //because// |
-| ``if_Subj`` | [Subj #Subj] | //if// |
-| ``that_Subj`` | [Subj #Subj] | //that// |
-| ``when_Subj`` | [Subj #Subj] | //when// |
-==Temp - temporal and aspectual features==[Temp]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==Tense - tense==[Tense]
-|| Function  | Type  | Example  ||
-| ``conditionalTense`` | [Tense #Tense] | //(John would walk)// |
-| ``futureTense`` | [Tense #Tense] | //(John will walk)// |
-| ``pastTense`` | [Tense #Tense] | //(John walked)// |
-| ``presentTense`` | [Tense #Tense] | //(John walks) [default]// |
-==Text - text consisting of several phrases==[Text]
-|| Function  | Type  | Example  ||
-| ``emptyText`` | [Text #Text] | //(empty text)// |
-| ``mkText`` | [Phr #Phr] ``->`` [Text #Text] | //But John walks.// |
-| ``mkText`` | [Phr #Phr] ``->`` ([Punct #Punct]) ``->`` ([Text #Text]) ``->`` [Text #Text] | //John walks? Yes.// |
-| ``mkText`` | [Utt #Utt] ``->`` [Text #Text] | //John.// |
-| ``mkText`` | [S #S] ``->`` [Text #Text] | //John walked.// |
-| ``mkText`` | [Cl #Cl] ``->`` [Text #Text] | //John walks.// |
-| ``mkText`` | [QS #QS] ``->`` [Text #Text] | //Did John walk?// |
-| ``mkText`` | [Imp #Imp] ``->`` [Text #Text] | //Walk!// |
-| ``mkText`` | [Text #Text] ``->`` [Text #Text] ``->`` [Text #Text] | //Where? When? Here. Now!// |
-==Utt - sentence, question, word...==[Utt]
-|| Function  | Type  | Example  ||
-| ``lets_Utt`` | [VP #VP] ``->`` [Utt #Utt] | //let's walk// |
-| ``mkUtt`` | [S #S] ``->`` [Utt #Utt] | //John walked// |
-| ``mkUtt`` | [Cl #Cl] ``->`` [Utt #Utt] | //John walks// |
-| ``mkUtt`` | [QS #QS] ``->`` [Utt #Utt] | //did John walk// |
-| ``mkUtt`` | [QCl #QCl] ``->`` [Utt #Utt] | //does John walk// |
-| ``mkUtt`` | [Imp #Imp] ``->`` [Utt #Utt] | //love yourself// |
-| ``mkUtt`` | ([ImpForm #ImpForm]) ``->`` ([Pol #Pol]) ``->`` [Imp #Imp] ``->`` [Utt #Utt] | //don't love yourselves// |
-| ``mkUtt`` | [IP #IP] ``->`` [Utt #Utt] | //who// |
-| ``mkUtt`` | [IAdv #IAdv] ``->`` [Utt #Utt] | //why// |
-| ``mkUtt`` | [NP #NP] ``->`` [Utt #Utt] | //John// |
-| ``mkUtt`` | [Adv #Adv] ``->`` [Utt #Utt] | //here// |
-| ``mkUtt`` | [VP #VP] ``->`` [Utt #Utt] | //to walk// |
-| ``mkUtt`` | [CN #CN] ``->`` [Utt #Utt] | //beer// |
-| ``mkUtt`` | [AP #AP] ``->`` [Utt #Utt] | //fine// |
-| ``mkUtt`` | [Card #Card] ``->`` [Utt #Utt] | //five// |
-| ``no_Utt`` | [Utt #Utt] | //no// |
-| ``yes_Utt`` | [Utt #Utt] | //yes// |
-==V - one-place verb==[V]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==V2 - two-place verb==[V2]
-|| Function  | Type  | Example  ||
-| ``have_V2`` | [V2 #V2] | //have// |
-==V2A - verb with NP and AP complement==[V2A]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==V2Q - verb with NP and Q complement==[V2Q]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==V2S - verb with NP and S complement==[V2S]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==V2V - verb with NP and V complement==[V2V]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==V3 - three-place verb==[V3]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==VA - adjective-complement verb==[VA]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==VP - verb phrase==[VP]
-|| Function  | Type  | Example  ||
-| ``mkVP`` | [V #V] ``->`` [VP #VP] | //walk// |
-| ``mkVP`` | [V2 #V2] ``->`` [NP #NP] ``->`` [VP #VP] | //love her// |
-| ``mkVP`` | [V3 #V3] ``->`` [NP #NP] ``->`` [NP #NP] ``->`` [VP #VP] | //send it to her// |
-| ``mkVP`` | [VV #VV] ``->`` [VP #VP] ``->`` [VP #VP] | //want to walk// |
-| ``mkVP`` | [VS #VS] ``->`` [S #S] ``->`` [VP #VP] | //know that she walks// |
-| ``mkVP`` | [VQ #VQ] ``->`` [QS #QS] ``->`` [VP #VP] | //ask if she walks// |
-| ``mkVP`` | [VA #VA] ``->`` [AP #AP] ``->`` [VP #VP] | //become old// |
-| ``mkVP`` | [V2A #V2A] ``->`` [NP #NP] ``->`` [AP #AP] ``->`` [VP #VP] | //paint it red// |
-| ``mkVP`` | [A #A] ``->`` [VP #VP] | //be warm// |
-| ``mkVP`` | [AP #AP] ``->`` [VP #VP] | //be very warm// |
-| ``mkVP`` | [A #A] ``->`` [NP #NP] ``->`` [VP #VP] | //be older than her// |
-| ``mkVP`` | [A2 #A2] ``->`` [NP #NP] ``->`` [VP #VP] | //be married to her// |
-| ``mkVP`` | [N #N] ``->`` [VP #VP] | //be a man// |
-| ``mkVP`` | [CN #CN] ``->`` [VP #VP] | //be an old man// |
-| ``mkVP`` | [NP #NP] ``->`` [VP #VP] | //be the man// |
-| ``mkVP`` | [Adv #Adv] ``->`` [VP #VP] | //be here// |
-| ``mkVP`` | [VP #VP] ``->`` [Adv #Adv] ``->`` [VP #VP] | //sleep here// |
-| ``mkVP`` | [AdV #AdV] ``->`` [VP #VP] ``->`` [VP #VP] | //always sleep// |
-| ``mkVP`` | [VPSlash #VPSlash] ``->`` [NP #NP] ``->`` [VP #VP] | //paint it black// |
-| ``mkVP`` | [VPSlash #VPSlash] ``->`` [VP #VP] | //paint itself black// |
-| ``passiveVP`` | [V2 #V2] ``->`` [VP #VP] | //be loved// |
-| ``passiveVP`` | [V2 #V2] ``->`` [NP #NP] ``->`` [VP #VP] | //be loved by her// |
-| ``progressiveVP`` | [VP #VP] ``->`` [VP #VP] | //be sleeping// |
-| ``reflexiveVP`` | [V2 #V2] ``->`` [VP #VP] | //love itself// |
-==VPSlash - verb phrase missing complement==[VPSlash]
-|| Function  | Type  | Example  ||
-| ``mkVPSlash`` | [V2 #V2] ``->`` [VPSlash #VPSlash] | //(whom) (John) loves// |
-| ``mkVPSlash`` | [V3 #V3] ``->`` [NP #NP] ``->`` [VPSlash #VPSlash] | //(whom) (John) gives an apple// |
-| ``mkVPSlash`` | [V2A #V2A] ``->`` [AP #AP] ``->`` [VPSlash #VPSlash] | //(whom) (John) paints red// |
-| ``mkVPSlash`` | [V2Q #V2Q] ``->`` [QS #QS] ``->`` [VPSlash #VPSlash] | //(whom) (John) asks who sleeps// |
-| ``mkVPSlash`` | [V2S #V2S] ``->`` [S #S] ``->`` [VPSlash #VPSlash] | //(whom) (John) tells that we sleep// |
-| ``mkVPSlash`` | [V2V #V2V] ``->`` [VP #VP] ``->`` [VPSlash #VPSlash] | //(whom) (John) forces to sleep// |
-==VQ - question-complement verb==[VQ]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==VS - sentence-complement verb==[VS]
-Lexical category, constructors given in
-[lexical paradigms #RParadigms].
-==VV - verb-phrase-complement verb==[VV]
-|| Function  | Type  | Example  ||
-| ``can8know_VV`` | [VV #VV] | //can (capacity)// |
-| ``can_VV`` | [VV #VV] | //can (possibility)// |
-| ``must_VV`` | [VV #VV] | //must// |
-| ``want_VV`` | [VV #VV] | //want// |
-==Voc - vocative or "please"==[Voc]
-|| Function  | Type  | Example  ||
-| ``mkVoc`` | [NP #NP] ``->`` [Voc #Voc] | //John// |
-| ``please_Voc`` | [Voc #Voc] | //please// |
-
-
-
-
-=Lexical Paradigms=
-==Paradigms for Bulgarian==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/bulgarian/ParadigmsBul.gf`` ../src/bulgarian/ParadigmsBul.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``mkN001`` | ``Str`` ``->`` [N #N] |
-| ``mkN002`` | ``Str`` ``->`` [N #N] |
-| ``mkN002a`` | ``Str`` ``->`` [N #N] |
-| ``mkN003`` | ``Str`` ``->`` [N #N] |
-| ``mkN004`` | ``Str`` ``->`` [N #N] |
-| ``mkN005`` | ``Str`` ``->`` [N #N] |
-| ``mkN006`` | ``Str`` ``->`` [N #N] |
-| ``mkN007`` | ``Str`` ``->`` [N #N] |
-| ``mkN007b`` | ``Str`` ``->`` [N #N] |
-| ``mkN007a`` | ``Str`` ``->`` [N #N] |
-| ``mkN008`` | ``Str`` ``->`` [N #N] |
-| ``mkN008b`` | ``Str`` ``->`` [N #N] |
-| ``mkN008c`` | ``Str`` ``->`` [N #N] |
-| ``mkN008a`` | ``Str`` ``->`` [N #N] |
-| ``mkN009`` | ``Str`` ``->`` [N #N] |
-| ``mkN009a`` | ``Str`` ``->`` [N #N] |
-| ``mkN010`` | ``Str`` ``->`` [N #N] |
-| ``mkN011`` | ``Str`` ``->`` [N #N] |
-| ``mkN012`` | ``Str`` ``->`` [N #N] |
-| ``mkN013`` | ``Str`` ``->`` [N #N] |
-| ``mkN014`` | ``Str`` ``->`` [N #N] |
-| ``mkN014a`` | ``Str`` ``->`` [N #N] |
-| ``mkN015`` | ``Str`` ``->`` [N #N] |
-| ``mkN015a`` | ``Str`` ``->`` [N #N] |
-| ``mkN016`` | ``Str`` ``->`` [N #N] |
-| ``mkN016a`` | ``Str`` ``->`` [N #N] |
-| ``mkN017`` | ``Str`` ``->`` [N #N] |
-| ``mkN018`` | ``Str`` ``->`` [N #N] |
-| ``mkN018a`` | ``Str`` ``->`` [N #N] |
-| ``mkN019`` | ``Str`` ``->`` [N #N] |
-| ``mkN019a`` | ``Str`` ``->`` [N #N] |
-| ``mkN020`` | ``Str`` ``->`` [N #N] |
-| ``mkN021`` | ``Str`` ``->`` [N #N] |
-| ``mkN022`` | ``Str`` ``->`` [N #N] |
-| ``mkN023`` | ``Str`` ``->`` [N #N] |
-| ``mkN024a`` | ``Str`` ``->`` [N #N] |
-| ``mkN024`` | ``Str`` ``->`` [N #N] |
-| ``mkN025`` | ``Str`` ``->`` [N #N] |
-| ``mkN026`` | ``Str`` ``->`` [N #N] |
-| ``mkN027`` | ``Str`` ``->`` [N #N] |
-| ``mkN028`` | ``Str`` ``->`` [N #N] |
-| ``mkN028a`` | ``Str`` ``->`` [N #N] |
-| ``mkN029`` | ``Str`` ``->`` [N #N] |
-| ``mkN030`` | ``Str`` ``->`` [N #N] |
-| ``mkN031`` | ``Str`` ``->`` [N #N] |
-| ``mkN031a`` | ``Str`` ``->`` [N #N] |
-| ``mkN032`` | ``Str`` ``->`` [N #N] |
-| ``mkN032a`` | ``Str`` ``->`` [N #N] |
-| ``mkN033`` | ``Str`` ``->`` [N #N] |
-| ``mkN034`` | ``Str`` ``->`` [N #N] |
-| ``mkN035`` | ``Str`` ``->`` [N #N] |
-| ``mkN035a`` | ``Str`` ``->`` [N #N] |
-| ``mkN036`` | ``Str`` ``->`` [N #N] |
-| ``mkN037`` | ``Str`` ``->`` [N #N] |
-| ``mkN038`` | ``Str`` ``->`` [N #N] |
-| ``mkN039`` | ``Str`` ``->`` [N #N] |
-| ``mkN040`` | ``Str`` ``->`` [N #N] |
-| ``mkN040a`` | ``Str`` ``->`` [N #N] |
-| ``mkN041`` | ``Str`` ``->`` [N #N] |
-| ``mkN041a`` | ``Str`` ``->`` [N #N] |
-| ``mkN041b`` | ``Str`` ``->`` [N #N] |
-| ``mkN042`` | ``Str`` ``->`` [N #N] |
-| ``mkN043`` | ``Str`` ``->`` [N #N] |
-| ``mkN043a`` | ``Str`` ``->`` [N #N] |
-| ``mkN044`` | ``Str`` ``->`` [N #N] |
-| ``mkN045`` | ``Str`` ``->`` [N #N] |
-| ``mkN046`` | ``Str`` ``->`` [N #N] |
-| ``mkN047`` | ``Str`` ``->`` [N #N] |
-| ``mkN048`` | ``Str`` ``->`` [N #N] |
-| ``mkN049`` | ``Str`` ``->`` [N #N] |
-| ``mkN050`` | ``Str`` ``->`` [N #N] |
-| ``mkN051`` | ``Str`` ``->`` [N #N] |
-| ``mkN052`` | ``Str`` ``->`` [N #N] |
-| ``mkN052a`` | ``Str`` ``->`` [N #N] |
-| ``mkN053`` | ``Str`` ``->`` [N #N] |
-| ``mkN054`` | ``Str`` ``->`` [N #N] |
-| ``mkN055`` | ``Str`` ``->`` [N #N] |
-| ``mkN056`` | ``Str`` ``->`` [N #N] |
-| ``mkN057`` | ``Str`` ``->`` [N #N] |
-| ``mkN057a`` | ``Str`` ``->`` [N #N] |
-| ``mkN058`` | ``Str`` ``->`` [N #N] |
-| ``mkN059`` | ``Str`` ``->`` [N #N] |
-| ``mkN060`` | ``Str`` ``->`` [N #N] |
-| ``mkN061`` | ``Str`` ``->`` [N #N] |
-| ``mkN062`` | ``Str`` ``->`` [N #N] |
-| ``mkN063`` | ``Str`` ``->`` [N #N] |
-| ``mkN064`` | ``Str`` ``->`` [N #N] |
-| ``mkN065`` | ``Str`` ``->`` [N #N] |
-| ``mkN066`` | ``Str`` ``->`` [N #N] |
-| ``mkN067`` | ``Str`` ``->`` [N #N] |
-| ``mkN068`` | ``Str`` ``->`` [N #N] |
-| ``mkN069`` | ``Str`` ``->`` [N #N] |
-| ``mkN070`` | ``Str`` ``->`` [N #N] |
-| ``mkN071`` | ``Str`` ``->`` [N #N] |
-| ``mkN072`` | ``Str`` ``->`` [N #N] |
-| ``mkN073`` | ``Str`` ``->`` [N #N] |
-| ``mkN074`` | ``Str`` ``->`` [N #N] |
-| ``mkN075`` | ``Str`` ``->`` [N #N] |
-| ``mkA076`` | ``Str`` ``->`` [A #A] |
-| ``mkA077`` | ``Str`` ``->`` [A #A] |
-| ``mkA078`` | ``Str`` ``->`` [A #A] |
-| ``mkA079`` | ``Str`` ``->`` [A #A] |
-| ``mkA080`` | ``Str`` ``->`` [A #A] |
-| ``mkA081`` | ``Str`` ``->`` [A #A] |
-| ``mkA082`` | ``Str`` ``->`` [A #A] |
-| ``mkA082a`` | ``Str`` ``->`` [A #A] |
-| ``mkA083`` | ``Str`` ``->`` [A #A] |
-| ``mkA084`` | ``Str`` ``->`` [A #A] |
-| ``mkA084a`` | ``Str`` ``->`` [A #A] |
-| ``mkA085`` | ``Str`` ``->`` [A #A] |
-| ``mkA086`` | ``Str`` ``->`` [A #A] |
-| ``mkA087`` | ``Str`` ``->`` [A #A] |
-| ``mkA088`` | ``Str`` ``->`` [A #A] |
-| ``mkA089a`` | ``Str`` ``->`` [A #A] |
-| ``mkV142`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV143`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV144`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV145`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV145a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV145b`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV146`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV146a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV147`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV148`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV149`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV150`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV150a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV151`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV152`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV152a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV153`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV154`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV155`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV156`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV157`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV158`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV159`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV160`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV160a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV161`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV161a`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV162`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV163`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV164`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV165`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV166`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV167`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV168`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV169`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV170`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV171`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV172`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV173`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV174`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV175`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV176`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV177`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV178`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV179`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV180`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV181`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV182`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV183`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV184`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV185`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV186`` | ``Str`` ``->`` [VTable #VTable] |
-| ``mkV187`` | ``Str`` ``->`` [VTable #VTable] |
-| ``adjAdv`` | [A #A] ``->`` ``Str`` ``->`` [A #A] ``=`` |
-
-
-==Paradigms for Catalan==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/catalan/ParadigmsCat.gf`` ../src/catalan/ParadigmsCat.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``accusative`` | [Prep #Prep] |
-| ``genitive`` | [Prep #Prep] |
-| ``dative`` | [Prep #Prep] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``mkN`` | ``(llum`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(disc,discos`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``compN`` | [N #N] ``->`` ``Str`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``deN2`` | [N #N] ``->`` [N2 #N2] |
-| ``aN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``(Anna`` ``:`` ``Str)`` ``->`` [PN #PN] |
-| ``mkPN`` | ``(Pilar`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkA`` | ``(sol`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(fort,forta,forts,fortes,fortament`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(bo`` ``:`` ``A)`` ``->`` ``(millor`` ``:`` ``A)`` ``->`` [A #A] |
-| ``prefixA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(cantar`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [Verbum #Verbum] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``special_ppV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``v2V`` | [V2 #V2] ``->`` [V #V] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``deVV`` | [V #V] ``->`` [VV #VV] |
-| ``aVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [Prep #Prep] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Danish==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/danish/ParadigmsDan.gf`` ../src/danish/ParadigmsDan.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``utrum`` | [Gender #Gender] |
-| ``neutrum`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``noPrep`` | [Prep #Prep] |
-| ``mkN`` | ``(bil`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(hus`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(bil,bilen`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(bil,bilen,biler`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(dreng,drengen,drenge,drengene`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``regN2`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkPN`` | [N #N] ``->`` [PN #PN] |
-| ``mkA`` | ``(fin`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(fin,fint`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(galen,galet,galne`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(stor,stort,store,storre,storst`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(snakke`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(leve,levde`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(drikke,`` ``drakk,`` ``drukket`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(spise,spiser,spises,spiste,spist,spis`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``vaereV`` | [V #V] ``->`` [V #V] |
-| ``depV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for English==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/english/ParadigmsEng.gf`` ../src/english/ParadigmsEng.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``human`` | [Gender #Gender] |
-| ``nonhuman`` | [Gender #Gender] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``mkN`` | ``(flash`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(man,men`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(man,men,man's,men's`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | [Gender #Gender] ``->`` [N #N] ``->`` [N #N] |
-| ``mkN`` | ``Str`` ``->`` [N #N] ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` ``Str`` ``->`` [N2 #N2] |
-| ``mkN2`` | ``Str`` ``->`` ``Str`` ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN2`` | ``Str`` ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | [N #N] ``->`` [PN #PN] |
-| ``mkQuant`` | ``(this,`` ``these`` ``:`` ``Str)`` ``->`` [Quant #Quant] |
-| ``mkQuant`` | ``(no_sg,`` ``no_pl,`` ``none_sg,`` ``non_pl`` ``:`` ``Str)`` ``->`` [Quant #Quant] |
-| ``mkOrd`` | ``Str`` ``->`` [Ord #Ord] |
-| ``mkA`` | ``(happy`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(fat,fatter`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(good,better,best,well`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``compoundA`` | [A #A] ``->`` [A #A] |
-| ``simpleA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkA2`` | [A #A] ``->`` ``Str`` ``->`` [A2 #A2] |
-| ``mkA2`` | ``Str`` ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkA2`` | ``Str`` ``->`` ``Str`` ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkAdN`` | ``Str`` ``->`` [AdN #AdN] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``noPrep`` | [Prep #Prep] |
-| ``mkConj`` | ``Str`` ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] |
-| ``mkV`` | ``(cry`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(stop,`` ``stopped`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(drink,`` ``drank,`` ``drunk`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(run,`` ``ran,`` ``run,`` ``running`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(go,`` ``goes,`` ``went,`` ``gone,`` ``going`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``Str`` ``->`` [V #V] ``->`` [V #V] |
-| ``partV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | ``Str`` ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV2`` | ``Str`` ``->`` ``Str`` ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` ``Str`` ``->`` [V3 #V3] |
-| ``mkV3`` | ``Str`` ``->`` ``Str`` ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV3`` | ``Str`` ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-| ``mkSubj`` | ``Str`` ``->`` [Subj #Subj] ``=`` ``\s`` ``->`` ``lin`` [Subj #Subj] ``{s`` ``=`` ``s}`` |
-
-
-==Paradigms for Finnish==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/finnish/ParadigmsFin.gf`` ../src/finnish/ParadigmsFin.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``partitive`` | [Case #Case] |
-| ``essive`` | [Case #Case] |
-| ``translative`` | [Case #Case] |
-| ``inessive`` | [Case #Case] |
-| ``elative`` | [Case #Case] |
-| ``illative`` | [Case #Case] |
-| ``adessive`` | [Case #Case] |
-| ``ablative`` | [Case #Case] |
-| ``allative`` | [Case #Case] |
-| ``prePrep`` | [Case #Case] ``->`` ``Str`` ``->`` [Prep #Prep] |
-| ``postPrep`` | [Case #Case] ``->`` ``Str`` ``->`` [Prep #Prep] |
-| ``postGenPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``casePrep`` | [Case #Case] ``->`` [Prep #Prep] |
-| ``mkN`` | ``(talo`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(savi,savia`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(vesi,veden,vesiä`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(vesi,veden,vesiä,vettä`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(olo,olon,olona,oloa,oloon,olojen,oloja,oloina,oloissa,oloihin`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(pika`` ``:`` ``Str)`` ``->`` ``(juna`` ``:`` ``N)`` ``->`` [N #N] |
-| ``mkN`` | ``(oma`` ``:`` ``N)`` ``->`` ``(tunto`` ``:`` ``N)`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | [N #N] ``->`` [PN #PN] |
-| ``mkA`` | ``Str`` ``->`` [A #A] |
-| ``mkA`` | [N #N] ``->`` [A #A] |
-| ``mkA`` | [N #N] ``->`` ``(kivempaa,kivinta`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(hyva,parempi,paras`` ``:`` ``N)`` ``->`` ``(hyvin,paremmin,parhaiten`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] ``=`` ``\a,p`` ``->`` ``a`` ``**`` ``{c2`` ``=`` ``p`` ``lock_A2`` ``=`` ``<>};`` |
-| ``mkV`` | ``(huutaa`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(huutaa,huusi`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(huutaa,huudan,huusi`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(`` |
-| ``huusin,huusi,huusisi,huutanut,huudettu,huutanee`` | ``Str)`` ``->`` [V #V] |
-| ``caseV`` | [Case #Case] ``->`` [V #V] ``->`` [V #V] |
-| ``vOlla`` | [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Case #Case] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Case #Case] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkVVf`` | [V #V] ``->`` [InfForm #InfForm] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkV2Vf`` | [V #V] ``->`` [Prep #Prep] ``->`` [InfForm #InfForm] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [Prep #Prep] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for French==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/french/ParadigmsFre.gf`` ../src/french/ParadigmsFre.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``accusative`` | [Prep #Prep] |
-| ``genitive`` | [Prep #Prep] |
-| ``dative`` | [Prep #Prep] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``mkN`` | ``(cheval`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(foie`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(oeil,yeux`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | [N #N] ``->`` ``Str`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``deN2`` | [N #N] ``->`` [N2 #N2] |
-| ``aN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkA`` | ``(cher`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(sec,seche`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(banal,banale,banaux,banalement`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | [A #A] ``->`` [A #A] ``->`` [A #A] |
-| ``prefixA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(finir`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(jeter,jette,jettera`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [V2 #V2] ``->`` [V #V] |
-| ``etreV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] ``=`` ``\s`` ``->`` ``dirV2`` ``(regV`` ``s)`` |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] ``=`` ``dirV2`` |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] ``=`` ``mmkV2`` |
-| ``mkV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``deVV`` | [V #V] ``->`` [VV #VV] |
-| ``aVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [Prep #Prep] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for German==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/german/ParadigmsGer.gf`` ../src/german/ParadigmsGer.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``neuter`` | [Gender #Gender] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``accusative`` | [Case #Case] |
-| ``dative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``mkN`` | ``(Stufe`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(Bild,Bilder`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(x1,_,_,_,_,x6`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN2`` | ``Str`` ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``(nom,gen`` ``:`` ``Str)`` ``->`` [PN #PN] |
-| ``mkPN`` | ``(nom,acc,dat,gen`` ``:`` ``Str)`` ``->`` [PN #PN] |
-| ``mkA`` | ``Str`` ``->`` [A #A] |
-| ``mkA`` | ``(gut,besser,beste`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(gut,gute,besser,beste`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``invarA`` | ``Str`` ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkPrep`` | ``Str`` ``->`` [Case #Case] ``->`` [Prep #Prep] |
-| ``accPrep`` | [Prep #Prep] |
-| ``datPrep`` | [Prep #Prep] |
-| ``genPrep`` | [Prep #Prep] |
-| ``von_Prep`` | [Prep #Prep] |
-| ``zu_Prep`` | [Prep #Prep] |
-| ``mkV`` | ``(führen`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(sehen,sieht,sah,sähe,gesehen`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(geben,`` ``gibt,`` ``gib,`` ``gab,`` ``gäbe,`` ``gegeben`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``Str`` ``->`` [V #V] ``->`` [V #V] |
-| ``no_geV`` | [V #V] ``->`` [V #V] |
-| ``fixprefixV`` | ``Str`` ``->`` [V #V] ``->`` [V #V] |
-| ``seinV`` | [V #V] ``->`` [V #V] |
-| ``habenV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [Case #Case] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Case #Case] ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``accdatV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Italian==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/italian/ParadigmsIta.gf`` ../src/italian/ParadigmsIta.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``--Prep`` | [Type #Type] |
-| ``accusative`` | [Prep #Prep] |
-| ``genitive`` | [Prep #Prep] |
-| ``dative`` | [Prep #Prep] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``mkN`` | ``(cane`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(carne`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(uomo,uomini`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | [N #N] ``->`` ``Str`` ``->`` [N #N] |
-| ``mkN2`` | ``Str`` ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkA`` | ``(bianco`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(solo,sola,soli,sole,solamente`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | [A #A] ``->`` [A #A] ``->`` [A #A] |
-| ``prefixA`` | [A #A] ``->`` [A #A] ``=`` ``prefA`` |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``Str`` ``->`` [V #V] |
-| ``mkV`` | [Verbo #Verbo] ``->`` [V #V] |
-| ``mkV`` | ``(udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``essereV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``v2V`` | [V2 #V2] ``->`` [V #V] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``deVV`` | [V #V] ``->`` [VV #VV] |
-| ``aVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [Prep #Prep] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Norwegian==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/norwegian/ParadigmsNor.gf`` ../src/norwegian/ParadigmsNor.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``neutrum`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``noPrep`` | [Prep #Prep] |
-| ``mkN`` | ``Str`` ``->`` [N #N] |
-| ``mkN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(bil,bilen`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(dreng,drengen,drenger,drengene`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``regN2`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkPN`` | [N #N] ``->`` [PN #PN] |
-| ``mkA`` | ``(fin`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(fin,fint`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(galen,galet,galne`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(stor,stort,store,storre,storst`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(snakke`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(leve,levde`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(drikke,`` ``drakk,`` ``drukket`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(spise,spiser,spises,spiste,spist,spis`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``vaereV`` | [V #V] ``->`` [V #V] |
-| ``depV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Polish==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/polish/ParadigmsPol.gf`` ../src/polish/ParadigmsPol.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculineP`` | [Gender #Gender] |
-| ``masculineA`` | [Gender #Gender] |
-| ``masculineI`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``neuter`` | [Gender #Gender] |
-| ``personal`` | [Animacy #Animacy] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``dative`` | [Case #Case] |
-| ``accusative`` | [Case #Case] |
-| ``instrumental`` | [Case #Case] |
-| ``locative`` | [Case #Case] |
-| ``vocative`` | [Case #Case] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``nKapiel`` | ``Str`` ``->`` [N #N] |
-| ``nLodz`` | ``Str`` ``->`` [N #N] |
-| ``nSul`` | ``Str`` ``->`` [N #N] |
-| ``nKonew`` | ``Str`` ``->`` [N #N] |
-| ``nWies`` | ``Str`` ``->`` [N #N] |
-| ``nDlon`` | ``Str`` ``->`` [N #N] |
-| ``nSiec`` | ``Str`` ``->`` [N #N] |
-| ``nDrzwi`` | ``Str`` ``->`` [N #N] |
-| ``nKosc`` | ``Str`` ``->`` [N #N] |
-| ``nNoc`` | ``Str`` ``->`` [N #N] |
-| ``nWesz`` | ``Str`` ``->`` [N #N] |
-| ``nKrolowa`` | ``Str`` ``->`` [N #N] |
-| ``nReka`` | ``Str`` ``->`` [N #N] |
-| ``nApteka`` | ``Str`` ``->`` [N #N] |
-| ``nDroga`` | ``Str`` ``->`` [N #N] |
-| ``nMatka`` | ``Str`` ``->`` [N #N] |
-| ``nZiemia`` | ``Str`` ``->`` [N #N] |
-| ``nFala`` | ``Str`` ``->`` [N #N] |
-| ``nLilia`` | ``Str`` ``->`` [N #N] |
-| ``nKobieta`` | ``Str`` ``->`` [N #N] |
-| ``nLiczba`` | ``Str`` ``->`` [N #N] |
-| ``nSila`` | ``Str`` ``->`` [N #N] |
-| ``nDoba`` | ``Str`` ``->`` [N #N] |
-| ``nWoda`` | ``Str`` ``->`` [N #N] |
-| ``nSzkola`` | ``Str`` ``->`` [N #N] |
-| ``nWojna`` | ``Str`` ``->`` [N #N] |
-| ``nWiosna`` | ``Str`` ``->`` [N #N] |
-| ``nMgla`` | ``Str`` ``->`` [N #N] |
-| ``nGwiazda`` | ``Str`` ``->`` [N #N] |
-| ``nUlica`` | ``Str`` ``->`` [N #N] |
-| ``nOwca`` | ``Str`` ``->`` [N #N] |
-| ``nDanie`` | ``Str`` ``->`` [N #N] |
-| ``nSerce`` | ``Str`` ``->`` [N #N] |
-| ``nNasienie`` | ``Str`` ``->`` [N #N] |
-| ``nMorze`` | ``Str`` ``->`` [N #N] |
-| ``nImie`` | ``Str`` ``->`` [N #N] |
-| ``nCiele`` | ``Str`` ``->`` [N #N] |
-| ``nUdo`` | ``Str`` ``->`` [N #N] |
-| ``nPiwo`` | ``Str`` ``->`` [N #N] |
-| ``nZero`` | ``Str`` ``->`` [N #N] |
-| ``nNiebo`` | ``Str`` ``->`` [N #N] |
-| ``nTlo`` | ``Str`` ``->`` [N #N] |
-| ``nZebro`` | ``Str`` ``->`` [N #N] |
-| ``nOkno`` | ``Str`` ``->`` [N #N] |
-| ``nGniazdo`` | ``Str`` ``->`` [N #N] |
-| ``nWojsko`` | ``Str`` ``->`` [N #N] |
-| ``nJajo`` | ``Str`` ``->`` [N #N] |
-| ``nJablko`` | ``Str`` ``->`` [N #N] |
-| ``nStudio`` | ``Str`` ``->`` [N #N] |
-| ``nDziecko`` | ``Str`` ``->`` [N #N] |
-| ``nUcho`` | ``Str`` ``->`` [N #N] |
-| ``nOko`` | ``Str`` ``->`` [N #N] |
-| ``nFacet`` | ``Str`` ``->`` [N #N] |
-| ``nArab`` | ``Str`` ``->`` [N #N] |
-| ``nPrzyjaciel`` | ``Str`` ``->`` [N #N] |
-| ``nKowal`` | ``Str`` ``->`` [N #N] |
-| ``nLekarz`` | ``Str`` ``->`` [N #N] |
-| ``nKrol`` | ``Str`` ``->`` [N #N] |
-| ``nMaz`` | ``Str`` ``->`` [N #N] |
-| ``nWrog`` | ``Str`` ``->`` [N #N] |
-| ``nKsiadz`` | ``Str`` ``->`` [N #N] |
-| ``nOjciec`` | ``Str`` ``->`` [N #N] |
-| ``nBrat`` | ``Str`` ``->`` [N #N] |
-| ``nBog`` | ``Str`` ``->`` [N #N] |
-| ``nChlopiec`` | ``Str`` ``->`` [N #N] |
-| ``nMezczyzna`` | ``Str`` ``->`` [N #N] |
-| ``nKon`` | ``Str`` ``->`` [N #N] |
-| ``nWaz`` | ``Str`` ``->`` [N #N] |
-| ``nPtak`` | ``Str`` ``->`` [N #N] |
-| ``nKot`` | ``Str`` ``->`` [N #N] |
-| ``nPies`` | ``Str`` ``->`` [N #N] |
-| ``nBat`` | ``Str`` ``->`` [N #N] |
-| ``nChleb`` | ``Str`` ``->`` [N #N] |
-| ``nSer`` | ``Str`` ``->`` [N #N] |
-| ``nZab`` | ``Str`` ``->`` [N #N] |
-| ``nKosciol`` | ``Str`` ``->`` [N #N] |
-| ``nCien`` | ``Str`` ``->`` [N #N] |
-| ``nPien`` | ``Str`` ``->`` [N #N] |
-| ``nLisc`` | ``Str`` ``->`` [N #N] |
-| ``nKoc`` | ``Str`` ``->`` [N #N] |
-| ``nWiersz`` | ``Str`` ``->`` [N #N] |
-| ``nDzien`` | ``Str`` ``->`` [N #N] |
-| ``nKajak`` | ``Str`` ``->`` [N #N] |
-| ``nMlotek`` | ``Str`` ``->`` [N #N] |
-| ``nMiech`` | ``Str`` ``->`` [N #N] |
-| ``nSad`` | ``Str`` ``->`` [N #N] |
-| ``nDym`` | ``Str`` ``->`` [N #N] |
-| ``nWal`` | ``Str`` ``->`` [N #N] |
-| ``nDol`` | ``Str`` ``->`` [N #N] |
-| ``nOgrod`` | ``Str`` ``->`` [N #N] |
-| ``nKwiat`` | ``Str`` ``->`` [N #N] |
-| ``nLas`` | ``Str`` ``->`` [N #N] |
-| ``nWiatr`` | ``Str`` ``->`` [N #N] |
-| ``nPopiol`` | ``Str`` ``->`` [N #N] |
-| ``nPokoj`` | ``Str`` ``->`` [N #N] |
-| ``nGaj`` | ``Str`` ``->`` [N #N] |
-| ``nBrzeg`` | ``Str`` ``->`` [N #N] |
-| ``nRok`` | ``Str`` ``->`` ``Str`` ``->`` [N #N] |
-| ``nProg`` | ``Str`` ``->`` [N #N] |
-| ``nStatek`` | ``Str`` ``->`` [N #N] |
-| ``nDom`` | ``Str`` ``->`` [N #N] |
-| ``mkN`` | ``(nomSg,`` ``genSg,`` ``datSg,`` ``accSg,`` ``instrSg,`` ``locSg,`` ``vocSg,`` |
-| ``mkN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkFun`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``nullPrep`` | [Prep #Prep] ``=`` ``{s`` ``=`` ``[]`` ``c=`` [GenNoPrep #GenNoPrep] ``lock_Prep=<>}`` |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPrep`` | ``Str`` ``->`` [Case #Case] ``->`` [Prep #Prep] |
-| ``genPrep`` | [Prep #Prep] |
-| ``datPrep`` | [Prep #Prep] |
-| ``accPrep`` | [Prep #Prep] |
-| ``instrPrep`` | [Prep #Prep] |
-| ``bez_Prep`` | [Prep #Prep] ``--without`` |
-| ``dla_Prep`` | [Prep #Prep] ``--for`` |
-| ``do_Prep`` | [Prep #Prep] ``--to`` |
-| ``dookola_Prep`` | [Prep #Prep] ``--(a)round`` |
-| ``kolo_Prep`` | [Prep #Prep] ``--near`` |
-| ``obok_Prep`` | [Prep #Prep] ``--beside,`` ``next`` ``to`` |
-| ``od_Prep`` | [Prep #Prep] ``--from`` |
-| ``oprocz_Prep`` | [Prep #Prep] ``--out`` ``of`` |
-| ``podczas_Prep`` | [Prep #Prep] ``--during`` |
-| ``mimo_Prep`` | [Prep #Prep] |
-| ``spod_Prep`` | [Prep #Prep] ``--under`` |
-| ``u_Prep`` | [Prep #Prep] ``--by,`` ``with`` ``(I`` ``was`` ``by`` [Peter #Peter] ``last`` ``sunday.)`` |
-| ``wzdluz_Prep`` | [Prep #Prep] ``--along`` |
-| ``z_Prep`` | [Prep #Prep] ``--from`` ``(I`` ``come`` ``from`` ``Italy.),`` ``of/`` ``from`` ``(The`` ``ring`` ``is`` ``made`` ``of`` ``silver.)`` |
-| ``zamiast_Prep`` | [Prep #Prep] ``--instead`` ``of`` |
-| ``znad_Prep`` | [Prep #Prep] ``--over,`` ``above`` |
-| ``zza_Prep`` | [Prep #Prep] ``--behind`` |
-| ``dzieki_Prep`` | [Prep #Prep] |
-| ``przeciw_Prep`` | [Prep #Prep] |
-
-
-==Paradigms for Romanian==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/romanian/ParadigmsRon.gf`` ../src/romanian/ParadigmsRon.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``NGender`` | [Type #Type] |
-| ``masculine`` | [NGender #NGender] |
-| ``feminine`` | [NGender #NGender] |
-| ``neuter`` | [NGender #NGender] |
-| ``Gender`` | [Type #Type] |
-| ``Masculine`` | [Gender #Gender] |
-| ``Feminine`` | [Gender #Gender] |
-| ``Anim`` | [Type #Type] |
-| ``animate`` | [Anim #Anim] |
-| ``inanimate`` | ``Anim;`` |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Preposition`` | [Type #Type] |
-| ``NCase`` | [Type #Type] |
-| ``Acc`` | [NCase #NCase] |
-| ``Dat`` | [NCase #NCase] |
-| ``Gen`` | [NCase #NCase] |
-| ``mkPrep`` | ``Str`` ``->`` ``NCase->`` [Bool #Bool] ``->`` [Prep #Prep] |
-| ``mkPrep`` | ``Str`` ``->`` [NCase #NCase] ``->`` ``Prep;`` |
-| ``noPrep`` | [NCase #NCase] ``->`` [Prep #Prep] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] ``=`` ``mkPropN`` |
-| ``mkPN`` | ``Str`` ``->`` ``Str`` ``->`` [Gender #Gender] ``->`` [Number #Number] ``->`` [PN #PN] ``=`` ``mkPropNI`` |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] ``=`` ``mkPropNoun`` |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [Number #Number] ``->`` [PN #PN] ``=`` ``mkProperNoun;`` |
-| ``mkInAn`` | [PN #PN] ``->`` [PN #PN] ``=`` ``\romania`` ``->`` |
-| ``mkPropNI`` | ``Str`` ``->`` ``Str`` ``->`` [Gender #Gender] ``->`` [Number #Number] ``->`` [PN #PN] ``=`` |
-| ``mkPropN`` | ``Str`` ``->`` [PN #PN] ``=`` ``\Ion`` ``->`` |
-| ``mkPropNoun`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] ``=`` ``\Ion,`` ``gen`` ``->`` |
-| ``mkProperNoun`` | ``Str`` ``->`` [Gender #Gender] ``->`` [Number #Number] ``->`` [PN #PN] ``=`` ``\Ion,`` ``gen,`` ``num`` ``->`` |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-
-
-==Paradigms for Russian==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/russian/ParadigmsRus.gf`` ../src/russian/ParadigmsRus.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``neuter`` | [Gender #Gender] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``dative`` | [Case #Case] |
-| ``accusative`` | [Case #Case] |
-| ``instructive`` | [Case #Case] |
-| ``prepositional`` | [Case #Case] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``mkN`` | ``(karta`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(tigr`` ``:`` ``Str)`` ``->`` [Animacy #Animacy] ``->`` [N #N] |
-| ``mkN`` | ``(nomSg,`` ``genSg,`` ``datSg,`` ``accSg,`` ``instSg,`` ``preposSg,`` ``prepos2Sg,`` ``nomPl,`` ``genPl,`` ``datPl,`` ``accPl,`` ``instPl,`` ``preposPl`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [Animacy #Animacy] ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [Animacy #Animacy] ``->`` [PN #PN] |
-| ``nounPN`` | [N #N] ``->`` [PN #PN] |
-| ``mkA`` | ``(positive`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(positive,`` ``comparative`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` ``Str`` ``->`` [Case #Case] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkV`` | [Aspect #Aspect] ``->`` ``(presentSgP1,presentSgP2,presentSgP3,`` |
-| ``pastSgP1,imperative,infinitive`` | ``Str)`` ``->`` [V #V] |
-| ``mkV2`` | [V #V] ``->`` ``Str`` ``->`` [Case #Case] ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` ``Str`` ``->`` ``Str`` ``->`` [Case #Case] ``->`` [Case #Case] ``->`` [V3 #V3] |
-| ``dirV2`` | [V #V] ``->`` [V2 #V2] |
-| ``tvDirDir`` | [V #V] ``->`` [V3 #V3] |
-
-
-==Paradigms for Spanish==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/spanish/ParadigmsSpa.gf`` ../src/spanish/ParadigmsSpa.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``accusative`` | [Prep #Prep] |
-| ``genitive`` | [Prep #Prep] |
-| ``dative`` | [Prep #Prep] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``mkN`` | ``(luz`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(baston,bastones`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``compN`` | [N #N] ``->`` ``Str`` ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``deN2`` | [N #N] ``->`` [N2 #N2] |
-| ``aN2`` | [N #N] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``(Anna`` ``:`` ``Str)`` ``->`` [PN #PN] |
-| ``mkPN`` | ``(Pilar`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkA`` | ``(util`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(solo,sola,solos,solas,solamente`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(bueno`` ``:`` ``A)`` ``->`` ``(mejor`` ``:`` ``A)`` ``->`` [A #A] |
-| ``prefixA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(pagar`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(mostrar,muestro`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [Verbum #Verbum] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``special_ppV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``v2V`` | [V2 #V2] ``->`` [V #V] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``dirdirV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``deVV`` | [V #V] ``->`` [VV #VV] |
-| ``aVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [Prep #Prep] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Swedish==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/swedish/ParadigmsSwe.gf`` ../src/swedish/ParadigmsSwe.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``Gender`` | [Type #Type] |
-| ``utrum`` | [Gender #Gender] |
-| ``neutrum`` | [Gender #Gender] |
-| ``Number`` | [Type #Type] |
-| ``singular`` | [Number #Number] |
-| ``plural`` | [Number #Number] |
-| ``Case`` | [Type #Type] |
-| ``nominative`` | [Case #Case] |
-| ``genitive`` | [Case #Case] |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``noPrep`` | [Prep #Prep] |
-| ``mkN`` | ``(apa`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(lik`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(nyckel,nycklar`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN`` | ``(museum,museet,museer,museerna`` ``:`` ``Str)`` ``->`` [N #N] |
-| ``mkN2`` | ``Str`` ``->`` [N2 #N2] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` [N2 #N2] |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [N3 #N3] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] |
-| ``mkPN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkPN`` | ``(jesus,jesu`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [PN #PN] |
-| ``mkA`` | ``(billig`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(bred,brett`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(tung,tyngre,tyngst`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(god,gott,goda,battre,bast`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``mkA`` | ``(liten,litet,lilla,sma,mindre,minst,minsta`` ``:`` ``Str)`` ``->`` [A #A] |
-| ``compoundA`` | [A #A] ``->`` [A #A] |
-| ``mkA2`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2 #A2] |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] |
-| ``mkAdV`` | ``Str`` ``->`` [AdV #AdV] |
-| ``mkAdA`` | ``Str`` ``->`` [AdA #AdA] |
-| ``mkV`` | ``(stämmer`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(dricka,drack,druckit`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | ``(gå,går,gå,gick,gått,gången`` ``:`` ``Str)`` ``->`` [V #V] |
-| ``mkV`` | [V #V] ``->`` ``Str`` ``->`` [V #V] |
-| ``depV`` | [V #V] ``->`` [V #V] |
-| ``reflV`` | [V #V] ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2 #V2] |
-| ``mkV3`` | ``Str`` ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV3`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V3 #V3] |
-| ``mkV0`` | [V #V] ``->`` [V0 #V0] |
-| ``mkVS`` | [V #V] ``->`` [VS #VS] |
-| ``mkV2S`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2S #V2S] |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] |
-| ``mkV2V`` | [V #V] ``->`` [Prep #Prep] ``->`` [Prep #Prep] ``->`` [V2V #V2V] |
-| ``mkVA`` | [V #V] ``->`` [VA #VA] |
-| ``mkV2A`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2A #V2A] |
-| ``mkVQ`` | [V #V] ``->`` [VQ #VQ] |
-| ``mkV2Q`` | [V #V] ``->`` [Prep #Prep] ``->`` [V2Q #V2Q] |
-| ``mkAS`` | [A #A] ``->`` [AS #AS] |
-| ``mkA2S`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2S #A2S] |
-| ``mkAV`` | [A #A] ``->`` [AV #AV] |
-| ``mkA2V`` | [A #A] ``->`` [Prep #Prep] ``->`` [A2V #A2V] |
-| ``V0`` | [Type #Type] |
-
-
-==Paradigms for Urdu==
-#LParadigms
-
-
-source [``http://www.grammaticalframework.org/lib/resource/src/urdu/ParadigmsUrd.gf`` ../src/urdu/ParadigmsUrd.gf]
-
-
-
-
-|| Function  | Type  ||
-| ``masculine`` | [Gender #Gender] |
-| ``feminine`` | [Gender #Gender] |
-| ``singular`` | ``Number;`` |
-| ``plural`` | ``Number;`` |
-| ``mkN`` | ``Str`` ``->`` [N #N] |
-| ``mkN`` | ``Str`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN`` | ``(x1,_,_,_,_,x6`` ``:`` ``Str)`` ``->`` [Gender #Gender] ``->`` [N #N] |
-| ``mkN2`` | [N #N] ``->`` [Prep #Prep] ``->`` ``Str`` ``->`` ``N2;`` |
-| ``mkN3`` | [N #N] ``->`` [Prep #Prep] ``->`` ``Str`` ``->`` ``Str->`` [N3 #N3] |
-| ``mkCmpdNoun`` | ``Str`` ``->`` [N #N] ``->`` [N #N] |
-| ``mkPN`` | ``Str`` ``->`` [PN #PN] ``=`` ``\s`` ``->`` ``let`` ``n`` ``=`` ``regNoun`` ``s`` ``in`` ``{s`` ``=`` ``n.s`` ``!`` [Sg #Sg] ``g`` ``=`` ``n.g`` ``lock_PN`` ``=`` ``<>}`` |
-| ``personalPN`` | ``Str`` ``->`` ``Str`` ``->`` ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Gender #Gender] ``->`` [UPerson #UPerson] ``->`` [Pron #Pron] ``=`` ``\s1,s2,s3,sp,nn,g,p`` ``->`` ``let`` ``n`` ``=`` ``mkPron`` ``s1`` ``s2`` ``s3`` ``in`` ``{s`` ``=`` ``n.s`` ``a`` ``=`` ``toAgr`` ``nn`` ``p`` ``g`` ``ps`` ``=`` ``sp`` ``lock_Pron`` ``=`` ``<>};`` |
-| ``demoPN`` | ``Str`` ``->`` ``Str`` ``->`` ``Str`` ``->`` [Quant #Quant] ``=`` ``\s1,s2,s3`` ``->`` ``let`` ``n`` ``=`` ``makeDemonPronForm`` ``s1`` ``s2`` ``s3`` ``in`` ``{s`` ``=`` ``n.s`` ``a`` ``=`` ``defaultAgr`` ``lock_Quant`` ``=`` ``<>};`` |
-| ``mkDet`` | ``Str`` ``->`` ``Str`` ``->`` ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Det #Det] ``=`` ``\s1,s2,s3,s4,nb`` ``->`` ``let`` ``dt`` ``=`` ``makeDet`` ``s1`` ``s2`` ``s3`` ``s4`` ``nb`` ``in`` ``{s`` ``=`` ``dt.s`` ``n`` ``=`` ``nb`` ``lock_Det`` ``=`` ``<>};`` |
-| ``mkIP`` | ``(x1,x2,x3:Str)`` ``->`` [Number #Number] ``->`` [Gender #Gender] ``->`` [IP #IP] ``=`` ``\s1,s2,s3,n,g`` ``->`` ``let`` ``p`` ``=`` ``mkIntPronForm`` ``s1`` ``s2`` ``s3`` ``in`` ``{`` ``s`` ``=`` ``p.s`` ``n`` ``=`` ``n`` ``g`` ``=`` ``g`` ``lock_IP`` ``=`` ``<>};`` |
-| ``mkA`` | ``Str->`` [A #A] |
-| ``mkA`` | ``Str`` ``->`` ``Str`` ``->`` [A2 #A2] |
-| ``mkV`` | ``Str`` ``->`` [V #V] |
-| ``mkV2`` | ``Str`` ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` [V2 #V2] |
-| ``mkV2`` | [V #V] ``->`` ``Str`` ``->`` [V2 #V2] |
-| ``mkV3`` | [V #V] ``->`` ``Str`` ``->`` ``Str`` ``->`` ``V3;`` |
-| ``mkV2V`` | [V #V] ``->`` ``Str`` ``->`` ``Str`` ``->`` [Bool #Bool] ``->`` [V2V #V2V] |
-| ``compoundV`` | ``Str`` ``->`` [V #V] ``->`` [V #V] ``=`` ``\s,v`` ``->`` ``{s`` ``=`` ``\\vf`` ``=>`` ``s`` ``++`` ``v.s`` ``!`` ``vf`` ``lock_V`` ``=`` ``<>}`` |
-| ``compoundV`` | ``Str`` ``->`` [V2 #V2] ``->`` [V #V] ``=`` ``\s,v`` ``->`` ``{s`` ``=`` ``\\vf`` ``=>`` ``s`` ``++`` ``v.s`` ``!`` ``vf`` ``lock_V`` ``=`` ``<>}`` |
-| ``mkAdv`` | ``Str`` ``->`` [Adv #Adv] ``=`` ``\str`` ``->`` ``{s`` ``=`` ``str`` ``lock_Adv`` ``=`` ``<>};`` |
-| ``mkPrep`` | ``Str`` ``->`` [Prep #Prep] |
-| ``mkConj`` | ``Str`` ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] |
-| ``mkConj`` | ``Str`` ``->`` [Conj #Conj] ``=`` ``\y`` ``->`` ``mk2Conj`` ``[]`` ``y`` ``plural`` |
-| ``mkConj`` | ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] ``=`` ``\y,n`` ``->`` ``mk2Conj`` ``[]`` ``y`` ``n`` |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Conj #Conj] ``=`` ``\x,y`` ``->`` ``mk2Conj`` ``x`` ``y`` ``plural`` |
-| ``mkConj`` | ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] ``=`` ``mk2Conj`` |
-| ``mk2Conj`` | ``Str`` ``->`` ``Str`` ``->`` [Number #Number] ``->`` [Conj #Conj] ``=`` ``\x,y,n`` ``->`` |
-| ``mkVV`` | [V #V] ``->`` [VV #VV] ``=`` ``\v`` ``->`` ``lin`` [VV #VV] ``(v`` ``**`` ``{isAux`` ``=`` ``False});`` |
-
-
-
-
-%!include: synopsis-browse.txt
-
-
-=An Example of Usage=
-
-
-%!include: synopsis-example.txt
-
diff --git a/lib/doc/tour/Makefile b/lib/doc/tour/Makefile
--- a/lib/doc/tour/Makefile
+++ b/lib/doc/tour/Makefile
@@ -37,5 +37,8 @@
 	runghc MkTour Spa Spanish
 
 Swe:
-	txt2tags -thtml -o tourSwe.html tour.txt 
+	runghc MkTour Swe Swedish
+
+Urd:
+	runghc MkTour Urd Urdu
 
diff --git a/lib/doc/tour/MkTour.hs b/lib/doc/tour/MkTour.hs
--- a/lib/doc/tour/MkTour.hs
+++ b/lib/doc/tour/MkTour.hs
@@ -1,5 +1,6 @@
 module Main where
 
+import Char
 import System
 
 original = "tour.txt"
@@ -14,27 +15,30 @@
   writeFile txt []
   script <- mkTour lan language src txt gfs
   system $ "gf -s Demo.pgf <" ++ gfs
-  system $ "txt2tags -thtml " ++ txt
+  system $ "txt2tags --toc -thtml " ++ txt
 
 
 mkTour :: String -> String -> [String] -> FilePath -> FilePath -> IO ()
 mkTour lan language src txt gfs = mapM_ mk src where
 
-  mk line = case line of
-    '>':command -> do                        -- gf command
-      let comm = loc command
-      apptxt ('>':comm) 
-      appgfs (comm ++ " | " ++ appcomm)
-      appgfs "\n"
-    '*':_       -> return ()                 -- gf-generated text
-    '#':_       -> return ()                 -- Swedish-specific line
-    _           -> apptxt (loc line)
+  mk ll = do
+    let (lans,line) = lansline ll
+    if (not (null lans) && not (elem lan lans))  -- language-specific, not for lan
+      then return ()
+      else case line of
+        '>':command -> do                        -- gf command
+          let comm = loc command
+          apptxt ('>':comm) 
+          appgfs (comm ++ " | " ++ appcomm)
+          appgfs "\n"
+        '*':_  -> return ()                 -- gf-generated text
+        _      -> apptxt (loc line)
 
   appgfs line = appendFile gfs line >> appendFile gfs "\n"
 
   loc line = case line of
-    'S':'w':'e':'d':'i':'s':'h':cs -> language ++ loc cs
-    'S':'w':'e'                :cs -> lan ++ loc cs
+    'L':'A':'N':'G':'U':'A':'G':'E':cs -> language ++ loc cs
+    'L':'N':'G'                :cs -> lan ++ loc cs
     c                          :cs -> c   :  loc cs
     _ -> line
 
@@ -42,6 +46,9 @@
  
   appcomm = "wf -append -file=" ++ txt
 
+  lansline ll = case ll of
+    '#':cs -> let (la,li) = break isSpace cs in (langs la, drop 1 li)
+    _ -> ([],ll)
 
-                                        
-     
+  langs = words . (map (\c -> if c==',' then ' ' else c))
+
diff --git a/lib/doc/tour/tour.txt b/lib/doc/tour/tour.txt
--- a/lib/doc/tour/tour.txt
+++ b/lib/doc/tour/tour.txt
@@ -1,20 +1,20 @@
-A Guided Tour of Swedish Grammar
+A Guided Tour of LANGUAGE Grammar
 Aarne Ranta
 
+
 %!style(html) : utf8
-%!postproc(html) : "#SWE" ""
-%!postproc(html) : "sswedish" "Swedish"
 
-This is an introduction to the basic grammar of Swedish. 
+
+This is an introduction to the basic grammar of LANGUAGE. 
 It is guided by a computer program that knows the rules of the grammar.
 All examples shown during the tour have been produced by that program.
 You can read this document as it is, to get an
-overview of Swedish grammar. 
+overview of LANGUAGE grammar. 
 However, really to exploit the linguistic knowledge included in the program,
 you should try out every rule by itself and also vary the rules in
 interaction with the computer. 
 
-The same tour is available for 16 languages.
+The same tour is (or will be) available for 17 languages.
 - [Arabic tourAra.html]
 - [Bulgarian tourBul.html]
 - [Catalan tourCat.html]
@@ -30,16 +30,17 @@
 - [Romanian tourRon.html]
 - [Russian tourRus.html]
 - [Spanish tourSpa.html]
-- [swedish tour.html]
+- [Swedish tourSwe.html]
+- [Urdu tourUrd.html]
 
 
-To contribute a new language, see the
-[GF Resource Grammar Project http://grammaticalframework.org/doc/gfss].
+See the last section of this document for how to contribute support for 
+new languages as a developer.
 
 
 =Computer prerequisites=
 
-To use the Swedish grammar program and test the grammar yourself, you need
+To use the LANGUAGE grammar program and test the grammar yourself, you need
 - a computer with Linux, Mac OS, or Windows
 - the program GF (Grammatical Framework), downloadable from
   the [GF website http://grammaticalframework.org]
@@ -57,18 +58,18 @@
 ```
 Then initialize the shell with a couple of handy commands:
 
-| ``%forms``     | show the forms of a word or a phrase in Swedish |
-| ``%numeral``   | translate a number to a Swedish numeral expression |
-| ``%table``     | show the inflection table a word or a phrase in Swedish |
-| ``%translate`` | translate an utterance from English to Swedish |
+| ``%forms``     | show the forms of a word or a phrase in LANGUAGE |
+| ``%numeral``   | translate a number to a LANGUAGE numeral expression |
+| ``%table``     | show the inflection table a word or a phrase in LANGUAGE |
+| ``%translate`` | translate an utterance from English to LANGUAGE |
 
 
 Initialization is made with the command macro definitions in GF:
 ```
-> dc translate ps -lextext ?0 | parse -cat=Utt -lang=DemoEng | linearize -lang=DemoSwe
-> dc table linearize -table -lang=DemoSwe ?0
-> dc forms linearize -list -lang=DemoSwe ?0
-> dc numeral ps -chars ?0 | p -cat=Digits -lang=DemoSwe | pt -transfer=digits2num | l -lang=DemoSwe
+> dc translate ps -lextext ?0 | parse -cat=Utt -lang=Eng | linearize -lang=LNG
+> dc table linearize -table -lang=LNG ?0
+> dc forms linearize -list -lang=LNG ?0
+> dc numeral ps -chars ?0 | p -cat=Digits -lang=LNG | pt -transfer=digits2num | l -bind -lang=LNG
 ```
 This is just to save you some work afterwards and to make this document
 clearer; you could quite as well use the basic commands that are predifined
@@ -106,7 +107,7 @@
 ```
 The forms together are an example of an **inflection pattern**.
 Here are some inflection patterns.
-#SWE They show the declensions 1 to 5.
+#Swe They show the declensions 1 to 5.
 ```
 > %forms flower_N
 * blomma, blommas, blomman, blommans, blommor, blommors, blommorna, blommornas
@@ -124,11 +125,11 @@
 * hus, hus, huset, husets, hus, hus, husen, husens
 ```
 The symbol ``N`` is used in the program to denote nouns. Here it is suffixed to
-English words to indicate the meanings of the Swedish nouns. This meaning
+English words to indicate the meanings of the LANGUAGE nouns. This meaning
 can be approximative, or just cover one of the possible senses.
 
 In addition to inflection forms,
-Swedish nouns also have a gender. The gender is reflected, among
+LANGUAGE nouns also have a gender. The gender is reflected, among
 other things, in the indefinite article used with the nouns.
 ```
 > %translate "a man"
@@ -144,7 +145,7 @@
 all there nouns, together with their inflection forms and senses explained in
 English, you can do as follows:
 ```
-> generate_trees -cat=N -number=5 | linearize -treebank -list -lang=DemoSwe
+> generate_trees -cat=N -number=5 | linearize -treebank -list -lang=LNG
 
 * airplane_N
 * flygplan, flygplans, flygplanet, flygplanets, flygplan, flygplans, flygplanen, flygplanens
@@ -155,12 +156,12 @@
 
 ===Quizzes with nouns===
 
-If you already know some Swedish,
+If you already know some LANGUAGE,
 you can try out a **morphology quiz**, which lets you train your knowledge
-of Swedish noun inflection. You can later train your inflection skills with
+of LANGUAGE noun inflection. You can later train your inflection skills with
 other parts of speech, just changing the symbol ``N`` to some other symbol.
 ```
-  morpho_quiz -cat=N -lang=DemoSwe
+  morpho_quiz -cat=N -lang=LNG
 
   Welcome to GF Morphology Quiz.
   The quiz is over when you have done at least 10 examples
@@ -181,12 +182,12 @@
 (The above quiz example is swedish for all languages, for technical reasons.)
 
 The quiz questions are randomly generated, so you can use the same
-quiz for increasing your Swedish skills over and over again.
+quiz for increasing your LANGUAGE skills over and over again.
 
 Another quiz is the **translation quiz**, which lets you to train translations
-of nouns from English to Swedish (or, in fact, of any part of speech from any
+of nouns from English to LANGUAGE (or, in fact, of any part of speech from any
 language to any other one). Here is how it goes 
-(to swedish, for technical reasons):
+(to Swedish, for the sake of example):
 ```
   translation_quiz -from=DemoEng -to=DemoSwe -cat=N
   Welcome to GF Translation Quiz.
@@ -207,13 +208,13 @@
 
 ==Numerals and determiners==
 
-Numerals are in Swedish the easiest way to build complex noun phrases from nouns,
+Numerals are in LANGUAGE the easiest way to build complex noun phrases from nouns,
 since their forms are independent of the noun; the noun is just inflected in
 the plural indefinite. This is with the exception of "one", whose form depends
 on the gender of the noun. Here is a quick way to generate the numerals from 1 
 to 9:
 ```
-> generate_trees -cat=Sub10 -number=9 | l -lang=DemoEng,DemoSwe
+> generate_trees -cat=Sub10 -number=9 | l -lang=Eng,LNG
 * en
 * två
 * tre
@@ -225,7 +226,7 @@
 * nio
 ```
 Any sequence of digits from 1 to 999999 can be translated 
-to a Swedish numeral with the ``%numeral`` command:
+to a LANGUAGE numeral with the ``%numeral`` command:
 ```
 > %numeral "10"
 * tio
@@ -267,8 +268,8 @@
 * ett hus
 ```
 Here are examples with definite articles.
-#SWE In Swedish, they are expressed by inflecting the noun 
-#SWE rather than adding a word like English //the//.
+#Swe In LANGUAGE, they are expressed by inflecting the noun 
+#Swe rather than adding a word like English //the//.
 ```
 > %translate "the man"
 * mannen
@@ -334,7 +335,7 @@
 ```
 Generate more examples of nouns with determiners:
 ```
-> gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=DemoEng,DemoSwe
+> gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=Eng,LNG
 * much reason
 * mycket anledning
 * 
@@ -352,21 +353,21 @@
 > %translate "the seven sisters"
 * de sju systrarna
 ```
-#SWE thus with a numeral, the definite article suddenly appears as a word.
+#Swe thus with a numeral, the definite article suddenly appears as a word.
 
 The random generation above used a **pattern** for generating
 expressions of the form ``(UttNP (DetCN ? (UseN ?)))``, where just the
 question marks may vary. Such patterns can also be used to fine-tune quizzes.
 For instance, here is a translation quiz for nouns with determiners:
 ```
-  trans_quiz -from=DemoEng -to=DemoSwe (UttNP (DetCN ? (UseN ?)))
+  trans_quiz -from=DemoEng -to=DemoLNG (UttNP (DetCN ? (UseN ?)))
 ```
 
 
 ==Adjectives==
 
 Adjectives generally have more forms than nouns. Here is an example showing the
-available forms for Swedish adjectives:
+available forms for LANGUAGE adjectives:
 ```
 > %table warm_A
 * s (AF (APosit (Strong (GSg Utr))) Nom) : varm
@@ -408,7 +409,7 @@
 ```
 The morpho quiz for adjectives is as one would expect:
 ```
-  morpho_quiz -cat=A -lang=DemoSwe
+  morpho_quiz -cat=A -lang=DemoLNG
 ```
 
 ==The use of adjectives==
@@ -433,39 +434,39 @@
 ```
 Here are the quizzes for training the adjectival modification of nouns:
 ```
-  translate_quiz -from=DemoEng -to=DemoSwe (AdjCN (PositA ?) (UseN ?))
+  translate_quiz -from=DemoEng -to=DemoLNG (AdjCN (PositA ?) (UseN ?))
   
-  morpho_quiz -lang=DemoSwe (AdjCN (PositA ?) (UseN ?))
+  morpho_quiz -lang=DemoLNG (AdjCN (PositA ?) (UseN ?))
 ```
 Adjectives can be combined to **adjectival phrases** (AP). One way to do this
 is by means of **adadjectives**, such as //very// and //too//:
 ```
-> p -lang=DemoEng -cat=AP "very old" | l -lang=DemoSwe
+> p -lang=Eng -cat=AP "very old" | l -lang=LNG
 * mycket gammal
 
-> p -lang=DemoEng -cat=AP "too heavy" | l -lang=DemoSwe
+> p -lang=Eng -cat=AP "too heavy" | l -lang=LNG
 * för tung
 ```
 The **comparative** forms can be used for building adjectival phrases together
 with noun phrase complements:
 ```
-> p -lang=DemoEng -cat=AP  "warmer than the sun" | l -lang=DemoSwe
+> p -lang=Eng -cat=AP  "warmer than the sun" | l -lang=LNG
 * varmare än solen
 ```
 Also these complex AP's can modify common nouns. The word order can be different
 from modification with simple adjectives.
 ```
-> p -lang=DemoEng -cat=CN  "country warmer than the sun" | l -lang=DemoSwe
+> p -lang=Eng -cat=CN  "country warmer than the sun" | l -lang=LNG
 * land varmare än solen
 
-> p -lang=DemoEng -cat=CN  "very warm country" | l -lang=DemoSwe
+> p -lang=Eng -cat=CN  "very warm country" | l -lang=LNG
 * mycket varmt land
 ```
 Quizzes for such constructions are as follows:
 ```
-  translate_quiz -from=DemoEng -to=DemoSwe (AdjCN ? (UseN ?))
+  translate_quiz -from=DemoEng -to=DemoLNG (AdjCN ? (UseN ?))
   
-  morpho_quiz -lang=DemoSwe (AdjCN ? (UseN ?))
+  morpho_quiz -lang=DemoLNG (AdjCN ? (UseN ?))
 ```
 
 
@@ -480,7 +481,7 @@
 * s (NPPoss (GSg Neutr)) : vårt
 * s (NPPoss GPl) : våra
 ```
-Here are the forms of all personal pronouns of Swedish:
+Here are the forms of all personal pronouns of LANGUAGE:
 ```
 > %forms i_Pron
 * jag, mig, min, mitt, mina
@@ -630,9 +631,9 @@
 **sentences**. Each sentence is built by fixing a **tense**, a **polarity**
 (yes or no), and possibly a word order (inverted question, subordinate clause),
 a mood (indicative, subjunctive). Here is a table showing what forms a clause
-can have in Swedish:
+can have in LANGUAGE:
 ```
-> p -cat=Cl -lang=DemoEng "the man walks" | %table
+> p -cat=Cl -lang=Eng "the man walks" | %table
 * s Pres Simul Pos Main : mannen går
 * s Pres Simul Pos Inv : går mannen
 * s Pres Simul Pos Sub : mannen går
@@ -685,11 +686,11 @@
 The following quiz can be used for training the inflection of intransitive
 clauses:
 ```
-  morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseV ?))
+  morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) (UseV ?))
 ```
 The following quiz translates English sentences in random tenses and polarities:
 ```
-  translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) (UseV ?)))
+  translate_quiz -from=DemoEng -to=DemoLNG (UseCl ? ? (PredVP (UsePron ?) (UseV ?)))
 ```
 
 ==Verbs with different predication patterns==
@@ -748,16 +749,16 @@
 The following quiz can be used for training the inflection of clauses with 
 any verb:
 ```
-  morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) ?)
+  morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) ?)
 ```
 The following quiz can be used for training the inflection of clauses with 
 //to be//:
 ```
-  morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseComp ?))
+  morpho_quiz -lang=DemoLNG (PredVP (UsePron ?) (UseComp ?))
 ```
 The following quiz translates English sentences in random tenses and polarities:
 ```
-  translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) ?))
+  translate_quiz -from=DemoEng -to=DemoLNG (UseCl ? ? (PredVP (UsePron ?) ?))
 ```
 
 
@@ -789,3 +790,73 @@
 > %translate "why didn't she wait for us"
 * varför väntade hon inte på oss
 ```
+
+
+=For developers=
+
+There are three levels of involvement, from the easiest to the hardest,
++ create the default tour for a language that is in the GF resource grammar library
+  (takes less than a minute, if you have the tools listed below)
++ customize the tour for a language that is in the library
+  (worth spending a couple of hours on)
++ add a language to the library and build the tour for it
+  (an undertaking of a few months)
+
+
+1. To create the tour for a language that is in the library, e.g. Spanish, 
+just run
+```
+  make Spa
+```
+in the directory ``GF/lib/doc/tour``. You need the following things for this 
+to work out
+- the program GF (Grammatical Framework), downloadable from
+  the [GF website http://grammaticalframework.org]
+- the precompiled grammar package ``Demo.pgf``, downloadable from 
+  [here http://grammaticalframework.org/lib/doc/Demo.pgf.gz] or makeable in
+  ``GF/lib/src`` with ``make demo``
+- the command ``runghc`` available in any [GHC http://www.haskell.org/ghc] installation
+- the command [``txt2tags`` http://txt2tags.sourceforge.net/]
+
+
+2. To customize the tour, edit the master file ``GF/lib/doc/tour/tour.txt``. 
+The customization mainly proceeds by adding lines marked ``#Spa`` (if Spanish is
+your target language). This can be done both for text lines, e.g.
+```
+  #Spa LANGUAGE has separate second-person plural pronouns for both genders.
+```
+and for GF command lines, e.g.
+```
+  #Spa %translate "you are very old"
+```
+In both cases, one can also add ``#Spa`` to the existing markings if they are
+adequate, e.g.
+```
+  #Fre,Spa LANGUAGE has two genders: the masculine and the feminine.
+```
+It's in particular for this purpose that we recommend using the variable ``LANGUAGE``
+rather than the constant ``Spanish``. The ``make`` procedure replaces the variable with
+the constant automatically. Similarly, the language code ``Spa`` used in GF commands
+should be avoided and the variable ``LNG`` used instead.
+
+In general, the master file ``tour.txt`` is processed line by line. It has five kinds
+of lines, distinguished by the prefix of the line:
+- ``#`` //LANGS// ``>`` //COMMAND// : language-specific GF command
+- ``#`` //LANGS// //TEXT// : language-specific text
+- ``>`` //COMMAND// : language-independent GF command
+- ``*`` : ignored; included for the sake of documentation
+- any other text : language-independet text
+
+
+Here //LANGS// is a comma-separated list of 3-letter language codes,
+such as ``Fre,Spa,Ita``.
+
+
+3. To contribute a new language to the library, see the
+[GF Resource Grammar Project http://grammaticalframework.org/doc/gfss].
+
+In cases (2) and (3), please contribute your work to the GF community!
+
+
+
+
diff --git a/lib/doc/tour/tourSwe.html b/lib/doc/tour/tourSwe.html
new file mode 100644
--- /dev/null
+++ b/lib/doc/tour/tourSwe.html
@@ -0,0 +1,1085 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META NAME="generator" CONTENT="http://txt2tags.sf.net">
+<LINK REL="stylesheet" TYPE="text/css" HREF="utf8">
+<TITLE>A Guided Tour of Swedish Grammar</TITLE>
+</HEAD><BODY BGCOLOR="white" TEXT="black">
+<P ALIGN="center"><CENTER><H1>A Guided Tour of Swedish Grammar</H1>
+<FONT SIZE="4">
+<I>Aarne Ranta</I><BR>
+</FONT></CENTER>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+  <UL>
+  <LI><A HREF="#toc1">Computer prerequisites</A>
+  <LI><A HREF="#toc2">Words and inflection</A>
+    <UL>
+    <LI><A HREF="#toc3">Nouns</A>
+      <UL>
+      <LI><A HREF="#toc4">Quizzes with nouns</A>
+      </UL>
+    <LI><A HREF="#toc5">Numerals and determiners</A>
+    <LI><A HREF="#toc6">Adjectives</A>
+    <LI><A HREF="#toc7">The use of adjectives</A>
+    <LI><A HREF="#toc8">Personal pronouns</A>
+    <LI><A HREF="#toc9">Prepositions</A>
+    <LI><A HREF="#toc10">Verbs</A>
+    </UL>
+  <LI><A HREF="#toc11">Syntactic combinations</A>
+    <UL>
+    <LI><A HREF="#toc12">Predication</A>
+    <LI><A HREF="#toc13">Verbs with different predication patterns</A>
+    <LI><A HREF="#toc14">Questions</A>
+    </UL>
+  <LI><A HREF="#toc15">For developers</A>
+  </UL>
+
+<P></P>
+<HR NOSHADE SIZE=1>
+<P></P>
+<P>
+This is an introduction to the basic grammar of Swedish. 
+It is guided by a computer program that knows the rules of the grammar.
+All examples shown during the tour have been produced by that program.
+You can read this document as it is, to get an
+overview of Swedish grammar. 
+However, really to exploit the linguistic knowledge included in the program,
+you should try out every rule by itself and also vary the rules in
+interaction with the computer. 
+</P>
+<P>
+The same tour is (or will be) available for 17 languages.
+</P>
+<UL>
+<LI><A HREF="tourAra.html">Arabic</A>
+<LI><A HREF="tourBul.html">Bulgarian</A>
+<LI><A HREF="tourCat.html">Catalan</A>
+<LI><A HREF="tourDan.html">Danish</A>
+<LI><A HREF="tourDut.html">Dutch</A>
+<LI><A HREF="tourEng.html">English</A>
+<LI><A HREF="tourFin.html">Finnish</A>
+<LI><A HREF="tourFre.html">French</A>
+<LI><A HREF="tourGer.html">German</A>
+<LI><A HREF="tourIta.html">Italian</A>
+<LI><A HREF="tourNor.html">Norwegian</A>
+<LI><A HREF="tourPol.html">Polish</A>
+<LI><A HREF="tourRon.html">Romanian</A>
+<LI><A HREF="tourRus.html">Russian</A>
+<LI><A HREF="tourSpa.html">Spanish</A>
+<LI><A HREF="tourSwe.html">Swedish</A>
+<LI><A HREF="tourUrd.html">Urdu</A>
+</UL>
+
+<P>
+See the last section of this document for how to contribute support for 
+new languages as a developer.
+</P>
+<A NAME="toc1"></A>
+<H1>Computer prerequisites</H1>
+<P>
+To use the Swedish grammar program and test the grammar yourself, you need
+</P>
+<UL>
+<LI>a computer with Linux, Mac OS, or Windows
+<LI>the program GF (Grammatical Framework), downloadable from
+  the <A HREF="http://grammaticalframework.org">GF website</A>
+<LI>the grammar package <CODE>Demo.pgf</CODE>, downloadable from 
+  <A HREF="http://grammaticalframework.org/lib/doc/Demo.pgf.gz">here</A>
+</UL>
+
+<P>
+In the future, we plan to provide a web-based version of this grammar tour,
+so that you can ran the program without downloading or installing anything.
+</P>
+<P>
+After installing GF (see instructions at GF website), just start it by
+the shell command
+</P>
+<PRE>
+    gf Demo.pgf
+</PRE>
+<P>
+Then initialize the shell with a couple of handy commands:
+</P>
+<TABLE CELLPADDING="4" BORDER="1">
+<TR>
+<TD><CODE>%forms</CODE></TD>
+<TD>show the forms of a word or a phrase in Swedish</TD>
+</TR>
+<TR>
+<TD><CODE>%numeral</CODE></TD>
+<TD>translate a number to a Swedish numeral expression</TD>
+</TR>
+<TR>
+<TD><CODE>%table</CODE></TD>
+<TD>show the inflection table a word or a phrase in Swedish</TD>
+</TR>
+<TR>
+<TD><CODE>%translate</CODE></TD>
+<TD>translate an utterance from English to Swedish</TD>
+</TR>
+</TABLE>
+
+<P>
+Initialization is made with the command macro definitions in GF:
+</P>
+<PRE>
+  &gt; dc translate ps -lextext ?0 | parse -cat=Utt -lang=Eng | linearize -lang=Swe
+  &gt; dc table linearize -table -lang=Swe ?0
+  &gt; dc forms linearize -list -lang=Swe ?0
+  &gt; dc numeral ps -chars ?0 | p -cat=Digits -lang=Swe | pt -transfer=digits2num | l -bind -lang=Swe
+</PRE>
+<P>
+This is just to save you some work afterwards and to make this document
+clearer; you could quite as well use the basic commands that are predifined
+in GF, and for some less frequent cases we'll actually use them directly.
+</P>
+<P>
+The <B>prompt</B> sign <CODE>&gt;</CODE> is produced by GF, and you should only
+write what is after it. In this document, we will use two kinds of markings
+of type-written lines:
+</P>
+<UL>
+<LI><CODE>&gt;</CODE> followed by a command you type
+<LI><CODE>*</CODE> followed by output from GF
+</UL>
+
+<A NAME="toc2"></A>
+<H1>Words and inflection</H1>
+<P>
+We are ready to start the tour. 
+We begin in the same way as grammar books usually do:
+from words and their forms. We will also show the most basic 
+syntactic combinations, to explain how the words are used, but
+syntax proper is treated in the next chapter.
+</P>
+<A NAME="toc3"></A>
+<H2>Nouns</H2>
+<P>
+The inflection forms of nouns are shown in the following example:
+</P>
+<PRE>
+  &gt; %table flower_N
+  s Sg Indef Nom : blomma
+  s Sg Indef Gen : blommas
+  s Sg Def Nom : blomman
+  s Sg Def Gen : blommans
+  s Pl Indef Nom : blommor
+  s Pl Indef Gen : blommors
+  s Pl Def Nom : blommorna
+  s Pl Def Gen : blommornas
+  
+</PRE>
+<P>
+The forms together are an example of an <B>inflection pattern</B>.
+Here are some inflection patterns.
+They show the declensions 1 to 5.
+</P>
+<PRE>
+  &gt; %forms flower_N
+  blomma, blommas, blomman, blommans, blommor, blommors, blommorna, blommornas
+  
+  &gt; %forms car_N
+  bil, bils, bilen, bilens, bilar, bilars, bilarna, bilarnas
+  
+  &gt; %forms cat_N
+  katt, katts, katten, kattens, katter, katters, katterna, katternas
+  
+  &gt; %forms apple_N
+  äpple, äpples, äpplet, äpplets, äpplen, äpplens, äpplena, äpplenas
+  
+  &gt; %forms house_N
+  hus, hus, huset, husets, hus, hus, husen, husens
+</PRE>
+<P>
+The symbol <CODE>N</CODE> is used in the program to denote nouns. Here it is suffixed to
+English words to indicate the meanings of the Swedish nouns. This meaning
+can be approximative, or just cover one of the possible senses.
+</P>
+<P>
+In addition to inflection forms,
+Swedish nouns also have a gender. The gender is reflected, among
+other things, in the indefinite article used with the nouns.
+</P>
+<PRE>
+  &gt; %translate "a man"
+  en man
+  
+  &gt; %translate "a woman"
+  en kvinna
+  
+  &gt; %translate "a house"
+  ett hus
+</PRE>
+<P>
+The grammar training program has a small lexicon, with just 182 nouns. To see 
+all there nouns, together with their inflection forms and senses explained in
+English, you can do as follows:
+</P>
+<PRE>
+  &gt; generate_trees -cat=N -number=5 | linearize -treebank -list -lang=Swe
+  Demo: airplane_N
+  DemoSwe: flygplan, flygplans, flygplanet, flygplanets, flygplan, flygplans, flygplanen, flygplanens
+   Demo: animal_N
+  DemoSwe: djur, djurs, djuret, djurets, djur, djurs, djuren, djurens
+   Demo: apartment_N
+  DemoSwe: lägenhet, lägenhets, lägenheten, lägenhetens, lägenheter, lägenheters, lägenheterna, lägenheternas
+   Demo: apple_N
+  DemoSwe: äpple, äpples, äpplet, äpplets, äpplen, äpplens, äpplena, äpplenas
+   Demo: art_N
+  DemoSwe: konst, konsts, konsten, konstens, konster, konsters, konsterna, konsternas
+  
+  
+</PRE>
+<P></P>
+<A NAME="toc4"></A>
+<H3>Quizzes with nouns</H3>
+<P>
+If you already know some Swedish,
+you can try out a <B>morphology quiz</B>, which lets you train your knowledge
+of Swedish noun inflection. You can later train your inflection skills with
+other parts of speech, just changing the symbol <CODE>N</CODE> to some other symbol.
+</P>
+<PRE>
+    morpho_quiz -cat=N -lang=Swe
+  
+    Welcome to GF Morphology Quiz.
+    The quiz is over when you have done at least 10 examples
+    with at least 75 % success.
+    You can interrupt the quiz by entering a line consisting of a dot ('.').
+  
+    vetenskap s Sg Def Gen
+    vetenskapens
+    &gt; Yes.
+    Score 1/1
+  
+    kyrka s Pl Indef Nom
+    kyrker
+    &gt; No, not kyrker, but
+    kyrkor
+    Score 1/2
+</PRE>
+<P>
+(The above quiz example is swedish for all languages, for technical reasons.)
+</P>
+<P>
+The quiz questions are randomly generated, so you can use the same
+quiz for increasing your Swedish skills over and over again.
+</P>
+<P>
+Another quiz is the <B>translation quiz</B>, which lets you to train translations
+of nouns from English to Swedish (or, in fact, of any part of speech from any
+language to any other one). Here is how it goes 
+(to Swedish, for the sake of example):
+</P>
+<PRE>
+    translation_quiz -from=DemoEng -to=DemoSwe -cat=N
+    Welcome to GF Translation Quiz.
+    The quiz is over when you have done at least 10 examples
+    with at least 75 % success.
+    You can interrupt the quiz by entering a line consisting of a dot ('.').
+   
+    ceiling
+    tak
+    &gt; Yes.
+    Score 1/1
+    night
+    nat
+    &gt; No, not nat, but
+    natt
+</PRE>
+<P></P>
+<A NAME="toc5"></A>
+<H2>Numerals and determiners</H2>
+<P>
+Numerals are in Swedish the easiest way to build complex noun phrases from nouns,
+since their forms are independent of the noun; the noun is just inflected in
+the plural indefinite. This is with the exception of "one", whose form depends
+on the gender of the noun. Here is a quick way to generate the numerals from 1 
+to 9:
+</P>
+<PRE>
+  &gt; generate_trees -cat=Sub10 -number=9 | l -lang=Eng,Swe
+  two
+  två
+   three
+  tre
+   four
+  fyra
+   five
+  fem
+   six
+  sex
+   seven
+  sju
+   eight
+  åtta
+   nine
+  nio
+   two
+  två
+</PRE>
+<P>
+Any sequence of digits from 1 to 999999 can be translated 
+to a Swedish numeral with the <CODE>%numeral</CODE> command:
+</P>
+<PRE>
+  &gt; %numeral "10"
+  tio
+  
+  &gt; %numeral "11"
+  elva
+  
+  &gt; %numeral "20"
+  tjugo
+  
+  &gt; %numeral "123"
+  etthundra tjugotre
+  
+  &gt; %numeral "999999"
+  niohundra nittioniotusen niohundra nittionio
+  
+</PRE>
+<P>
+Numerals can be combined with nouns to form <B>noun phrases</B>:
+</P>
+<PRE>
+  &gt; %translate "one boy"
+  en pojke
+  &gt; %translate "one apple"
+  ett äpple
+  &gt; %translate "two boys"
+  två pojkar
+  &gt; %translate "eleven cars"
+  elva bilar
+</PRE>
+<P>
+Numerals are a special case of <B>determiners</B>: words that are 
+combined with nouns to
+form <B>noun phrases</B>. Articles are anouther special case; 
+we already saw the indefinite articles:
+</P>
+<PRE>
+  &gt; %translate "a man"
+  en man
+  
+  &gt; %translate "a woman"
+  en kvinna
+  
+  &gt; %translate "a car"
+  en bil
+  
+  &gt; %translate "a house"
+  ett hus
+</PRE>
+<P>
+Here are examples with definite articles.
+In Swedish, they are expressed by inflecting the noun 
+rather than adding a word like English <I>the</I>.
+</P>
+<PRE>
+  &gt; %translate "the man"
+  mannen
+  
+  &gt; %translate "the woman"
+  kvinnan
+  
+  &gt; %translate "the car"
+  bilen
+  
+  &gt; %translate "the house"
+  huset
+</PRE>
+<P>
+Definite articles in the plural:
+</P>
+<PRE>
+  &gt; %translate "the men"
+  männen
+  
+  &gt; %translate "the women"
+  kvinnorna
+  
+  &gt; %translate "the cars"
+  bilarna
+  
+  &gt; %translate "the houses"
+  husen
+</PRE>
+<P>
+The indefinite forms in the plural form look as follows.
+English, like many other languages, have no explicit indefinite article: 
+just use the plural form of the noun.
+</P>
+<PRE>
+  &gt; %translate "men"
+  män
+  
+  &gt; %translate "women"
+  kvinnor
+  
+  &gt; %translate "cars"
+  bilar
+  
+  &gt; %translate "houses"
+  hus
+</PRE>
+<P>
+Other common determiners are shown in the following:
+</P>
+<PRE>
+  &gt; %translate "this car"
+  den här bilen
+  
+  &gt; %translate "that car"
+  den där bilen
+  
+  &gt; %translate "these cars"
+  de här bilarna
+  
+  &gt; %translate "those cars"
+  de där bilarna
+  
+  &gt; %translate "some cars"
+  några bilar
+  
+  &gt; %translate "all cars"
+</PRE>
+<P>
+Generate more examples of nouns with determiners:
+</P>
+<PRE>
+  &gt; gr -number=11 (UttNP (DetCN ? (UseN ?))) | l -lang=Eng,Swe
+  some sister
+  någon syster
+   many men
+  många män
+   those dusts
+  de där dammen
+   many pens
+  många pennor
+   some sticks
+  några pinnar
+   every boss
+  varje chef
+   few houses
+  få hus
+   some wars
+  några krig
+   some school
+  någon skola
+   many moons
+  många månar
+   a flower
+  en blomma
+</PRE>
+<P>
+You will find out that other determiners can combine with numerals, such as in
+</P>
+<PRE>
+  &gt; %translate "these seven sisters"
+  de här sju systrarna
+  
+  &gt; %translate "the seven sisters"
+  de sju systrarna
+</PRE>
+<P>
+thus with a numeral, the definite article suddenly appears as a word.
+</P>
+<P>
+The random generation above used a <B>pattern</B> for generating
+expressions of the form <CODE>(UttNP (DetCN ? (UseN ?)))</CODE>, where just the
+question marks may vary. Such patterns can also be used to fine-tune quizzes.
+For instance, here is a translation quiz for nouns with determiners:
+</P>
+<PRE>
+    trans_quiz -from=DemoEng -to=DemoSwe (UttNP (DetCN ? (UseN ?)))
+</PRE>
+<P></P>
+<A NAME="toc6"></A>
+<H2>Adjectives</H2>
+<P>
+Adjectives generally have more forms than nouns. Here is an example showing the
+available forms for Swedish adjectives:
+</P>
+<PRE>
+  &gt; %table warm_A
+  s (AF (APosit (Strong (GSg Utr))) Nom) : varm
+  s (AF (APosit (Strong (GSg Utr))) Gen) : varms
+  s (AF (APosit (Strong (GSg Neutr))) Nom) : varmt
+  s (AF (APosit (Strong (GSg Neutr))) Gen) : varmts
+  s (AF (APosit (Strong GPl)) Nom) : varma
+  s (AF (APosit (Strong GPl)) Gen) : varmas
+  s (AF (APosit (Weak Sg)) Nom) : varma
+  s (AF (APosit (Weak Sg)) Gen) : varmas
+  s (AF (APosit (Weak Pl)) Nom) : varma
+  s (AF (APosit (Weak Pl)) Gen) : varmas
+  s (AF ACompar Nom) : varmare
+  s (AF ACompar Gen) : varmares
+  s (AF (ASuperl SupStrong) Nom) : varmast
+  s (AF (ASuperl SupStrong) Gen) : varmasts
+  s (AF (ASuperl SupWeak) Nom) : varmaste
+  s (AF (ASuperl SupWeak) Gen) : varmastes
+  
+</PRE>
+<P>
+The comparative and superlative forms are often formed syntactically, by using 
+words similar to <I>more</I> and <I>most</I>.
+</P>
+<P>
+Here are some examples of adjective inflections:
+</P>
+<PRE>
+  &gt; %forms good_A
+  god, gods, gott, gotts, goda, godas, goda, godas, goda, godas, bättre, bättres, bäst, bästs, bästa, bästas
+  
+  &gt; %forms bad_A
+  dålig, dåligs, dåligt, dåligts, dåliga, dåligas, dåliga, dåligas, dåliga, dåligas, sämre, sämres, sämst, sämsts, sämsta, sämstas
+  
+  &gt; %forms rotten_A
+  rutten, ruttens, ruttet, ruttets, ruttna, ruttnas, ruttna, ruttnas, ruttna, ruttnas, ruttnare, ruttnares, ruttnast, ruttnasts, ruttnaste, ruttnastes
+  
+  &gt; %forms important_A
+  viktig, viktigs, viktigt, viktigts, viktiga, viktigas, viktiga, viktigas, viktiga, viktigas, viktigare, viktigares, viktigast, viktigasts, viktigaste, viktigastes
+  
+  &gt; %forms stupid_A
+  dum, dums, dumt, dumts, dumma, dummas, dumma, dummas, dumma, dummas, dummare, dummares, dummast, dummasts, dummaste, dummastes
+</PRE>
+<P>
+The morpho quiz for adjectives is as one would expect:
+</P>
+<PRE>
+    morpho_quiz -cat=A -lang=DemoSwe
+</PRE>
+<P></P>
+<A NAME="toc7"></A>
+<H2>The use of adjectives</H2>
+<P>
+Adjectives can be used to <B>modify</B> nouns.
+The form of the adjective may then depend on the gender of the noun.
+</P>
+<PRE>
+  &gt; %translate "old man"
+  gammal man
+  
+  &gt; %translate "old woman"
+  gammal kvinna
+  
+  &gt; %translate "old house"
+  gammalt hus
+</PRE>
+<P>
+The adjective+noun combination is inflected for the same forms as the
+bare noun:
+</P>
+<PRE>
+  &gt; parse -cat=CN "old house" | %forms
+  gammalt hus, gammalt hus, gamla hus, gamla hus, gamla huset, gamla husets, gamla hus, gamla hus, gamla hus, gamla hus, gamla husen, gamla husens
+</PRE>
+<P>
+Here are the quizzes for training the adjectival modification of nouns:
+</P>
+<PRE>
+    translate_quiz -from=DemoEng -to=DemoSwe (AdjCN (PositA ?) (UseN ?))
+    
+    morpho_quiz -lang=DemoSwe (AdjCN (PositA ?) (UseN ?))
+</PRE>
+<P>
+Adjectives can be combined to <B>adjectival phrases</B> (AP). One way to do this
+is by means of <B>adadjectives</B>, such as <I>very</I> and <I>too</I>:
+</P>
+<PRE>
+  &gt; p -lang=Eng -cat=AP "very old" | l -lang=Swe
+  mycket gammal
+  
+  &gt; p -lang=Eng -cat=AP "too heavy" | l -lang=Swe
+  för tung
+</PRE>
+<P>
+The <B>comparative</B> forms can be used for building adjectival phrases together
+with noun phrase complements:
+</P>
+<PRE>
+  &gt; p -lang=Eng -cat=AP  "warmer than the sun" | l -lang=Swe
+</PRE>
+<P>
+Also these complex AP's can modify common nouns. The word order can be different
+from modification with simple adjectives.
+</P>
+<PRE>
+  &gt; p -lang=Eng -cat=CN  "country warmer than the sun" | l -lang=Swe
+  
+  &gt; p -lang=Eng -cat=CN  "very warm country" | l -lang=Swe
+  mycket varmt land
+</PRE>
+<P>
+Quizzes for such constructions are as follows:
+</P>
+<PRE>
+    translate_quiz -from=DemoEng -to=DemoSwe (AdjCN ? (UseN ?))
+    
+    morpho_quiz -lang=DemoSwe (AdjCN ? (UseN ?))
+</PRE>
+<P></P>
+<A NAME="toc8"></A>
+<H2>Personal pronouns</H2>
+<P>
+Personal pronouns have many forms:
+</P>
+<PRE>
+  &gt; %table we_Pron
+  s NPNom : vi
+  s NPAcc : oss
+  s (NPPoss (GSg Utr)) : vår
+  s (NPPoss (GSg Neutr)) : vårt
+  s (NPPoss GPl) : våra
+  
+</PRE>
+<P>
+Here are the forms of all personal pronouns of Swedish:
+</P>
+<PRE>
+  &gt; %forms i_Pron
+  jag, mig, min, mitt, mina
+  
+  &gt; %forms youSg_Pron
+  du, dig, din, ditt, dina
+  
+  &gt; %forms youPol_Pron
+  ni, er, er, ert, era
+  
+  &gt; %forms he_Pron
+  han, honom, hans, hans, hans
+  
+  &gt; %forms she_Pron
+  hon, henne, hennes, hennes, hennes
+  
+  &gt; %forms we_Pron
+  vi, oss, vår, vårt, våra
+  
+  &gt; %forms youPl_Pron
+  ni, er, er, ert, era
+  
+  &gt; %forms they_Pron
+  de, dem, deras, deras, deras
+</PRE>
+<P>
+Notice the polite and plural forms of <I>you</I>, which English doesn't have.
+</P>
+<P>
+The <B>possessive</B> forms of pronouns are used as determiners:
+</P>
+<PRE>
+  &gt; %translate "her house , my car and our children"
+</PRE>
+<P>
+Here's the pattern for training the combination of possessive pronouns and
+nouns, with the <CODE>morpho_quiz</CODE> and <CODE>translate_quiz</CODE> commands:
+</P>
+<PRE>
+    (DetCN (DetQuant (PossPron ?) ?) (UseN ?))
+</PRE>
+<P></P>
+<A NAME="toc9"></A>
+<H2>Prepositions</H2>
+<P>
+Prepositions are not inflected. But when attached to noun phrases, they may
+affect the inflection of the noun phrase. In some languages, no preposition
+word may be shown, but just a different form of the noun phrase.
+</P>
+<PRE>
+  &gt; %translate "my yellow house"
+  mitt gula hus
+  
+  &gt; %translate "in my yellow house"
+  i mitt gula hus
+  
+  &gt; %translate "to my yellow house"
+  till mitt gula hus
+  
+  &gt; %translate "from my yellow house"
+  från mitt gula hus
+  
+  &gt; %translate "with my yellow house"
+  med mitt gula hus
+  
+  &gt; %translate "without my yellow house"
+  utan mitt gula hus
+</PRE>
+<P>
+Pronouns show in some languages even more variation.
+</P>
+<P>
+To train prepositional phrases, use the pattern
+</P>
+<PRE>
+    (PrepNP ? ?)
+</PRE>
+<P></P>
+<A NAME="toc10"></A>
+<H2>Verbs</H2>
+<P>
+Verbs usually have more inflection forms than any other words:
+</P>
+<PRE>
+  &gt; %table sleep_V
+  s (VF (VPres Act)) : sover
+  s (VF (VPres Pass)) : sovs
+  s (VF (VPret Act)) : sov
+  s (VF (VPret Pass)) : sovs
+  s (VF (VImper Act)) : sov
+  s (VF (VImper Pass)) : sovs
+  s (VI (VInfin Act)) : sova
+  s (VI (VInfin Pass)) : sovas
+  s (VI (VSupin Act)) : sovit
+  s (VI (VSupin Pass)) : sovits
+  s (VI (VPtPret (Strong (GSg Utr)) Nom)) : soven
+  s (VI (VPtPret (Strong (GSg Utr)) Gen)) : sovens
+  s (VI (VPtPret (Strong (GSg Neutr)) Nom)) : sovet
+  s (VI (VPtPret (Strong (GSg Neutr)) Gen)) : sovets
+  s (VI (VPtPret (Strong GPl) Nom)) : sovna
+  s (VI (VPtPret (Strong GPl) Gen)) : sovnas
+  s (VI (VPtPret (Weak Sg) Nom)) : sovna
+  s (VI (VPtPret (Weak Sg) Gen)) : sovnas
+  s (VI (VPtPret (Weak Pl) Nom)) : sovna
+  s (VI (VPtPret (Weak Pl) Gen)) : sovnas
+  part : 
+  
+</PRE>
+<P>
+Here are some inflection examples:
+</P>
+<PRE>
+  &gt; %forms speak_V2
+  talar, talas, talade, talades, tala, talas, tala, talas, talat, talats, talad, talads, talat, talats, talade, talades, talade, talades, talade, talades, , 
+  
+  &gt; %forms play_V2
+  spelar, spelas, spelade, spelades, spela, spelas, spela, spelas, spelat, spelats, spelad, spelads, spelat, spelats, spelade, spelades, spelade, spelades, spelade, spelades, , 
+  
+  &gt; %forms buy_V2
+  köper, köps, köpte, köptes, köp, köps, köpa, köpas, köpt, köpts, köpt, köpts, köpt, köpts, köpta, köptas, köpta, köptas, köpta, köptas, , 
+  
+  &gt; %forms run_V
+  springer, springs, sprang, sprangs, spring, springs, springa, springas, sprungit, sprungits, sprungen, sprungens, sprunget, sprungets, sprungna, sprungnas, sprungna, sprungnas, sprungna, sprungnas, 
+  
+  &gt; %forms walk_V
+  går, gås, gick, gicks, gå, gås, gå, gås, gått, gåtts, gången, gångens, gånget, gångets, gångna, gångnas, gångna, gångnas, gångna, gångnas, 
+</PRE>
+<P>
+In some languages, verbs can be very irregular.
+</P>
+<P>
+There are different <B>subcategories</B> of verbs: intransitive verbs (V), two-place
+verbs (V2), sentence-complement verbs (VS). The differences have to do with
+syntax, and will be discussed later.
+</P>
+<A NAME="toc11"></A>
+<H1>Syntactic combinations</H1>
+<P>
+Above, we have discussed some syntactic combinations:
+determination (<I>the car</I>, <I>this car</I>) and adjectival modification
+(<I>old car</I>). In this chapter, we concentrate on the formation of
+sentences.
+</P>
+<A NAME="toc12"></A>
+<H2>Predication</H2>
+<P>
+In <B>predication</B>, a verb is give its <B>arguments</B>: 
+the <B>subject</B> (the one who does something)
+and the <B>complements</B> (what is done, to whom it is done, etc). The simplest
+predication is with <B>intransitive verbs</B>, which only have the subject:
+</P>
+<PRE>
+  &gt; %translate "he walks"
+  han går
+  
+  &gt; %translate "we sleep"
+  vi sover
+  
+  &gt; %translate "the very old woman sings"
+  den mycket gamla kvinnan sjunger
+</PRE>
+<P>
+A predication forms a <B>clause</B>, which corresponds to many different
+(yes or no), and possibly a word order (inverted question, subordinate clause),
+a mood (indicative, subjunctive). Here is a table showing what forms a clause
+can have in Swedish:
+</P>
+<PRE>
+  &gt; p -cat=Cl -lang=Eng "the man walks" | %table
+  s Pres Simul Pos Main : mannen går
+  s Pres Simul Pos Inv : går mannen
+  s Pres Simul Pos Sub : mannen går
+  s Pres Simul Neg Main : mannen går inte
+  s Pres Simul Neg Inv : går mannen inte
+  s Pres Simul Neg Sub : mannen inte går
+  s Pres Anter Pos Main : mannen har gått
+  s Pres Anter Pos Inv : har mannen gått
+  s Pres Anter Pos Sub : mannen har gått
+  s Pres Anter Neg Main : mannen har inte gått
+  s Pres Anter Neg Inv : har mannen inte gått
+  s Pres Anter Neg Sub : mannen inte har gått
+  s Past Simul Pos Main : mannen gick
+  s Past Simul Pos Inv : gick mannen
+  s Past Simul Pos Sub : mannen gick
+  s Past Simul Neg Main : mannen gick inte
+  s Past Simul Neg Inv : gick mannen inte
+  s Past Simul Neg Sub : mannen inte gick
+  s Past Anter Pos Main : mannen hade gått
+  s Past Anter Pos Inv : hade mannen gått
+  s Past Anter Pos Sub : mannen hade gått
+  s Past Anter Neg Main : mannen hade inte gått
+  s Past Anter Neg Inv : hade mannen inte gått
+  s Past Anter Neg Sub : mannen inte hade gått
+  s Fut Simul Pos Main : mannen ska gå
+  s Fut Simul Pos Inv : ska mannen gå
+  s Fut Simul Pos Sub : mannen ska gå
+  s Fut Simul Neg Main : mannen ska inte gå
+  s Fut Simul Neg Inv : ska mannen inte gå
+  s Fut Simul Neg Sub : mannen inte ska gå
+  s Fut Anter Pos Main : mannen ska ha gått
+  s Fut Anter Pos Inv : ska mannen ha gått
+  s Fut Anter Pos Sub : mannen ska ha gått
+  s Fut Anter Neg Main : mannen ska inte ha gått
+  s Fut Anter Neg Inv : ska mannen inte ha gått
+  s Fut Anter Neg Sub : mannen inte ska ha gått
+  s Cond Simul Pos Main : mannen skulle gå
+  s Cond Simul Pos Inv : skulle mannen gå
+  s Cond Simul Pos Sub : mannen skulle gå
+  s Cond Simul Neg Main : mannen skulle inte gå
+  s Cond Simul Neg Inv : skulle mannen inte gå
+  s Cond Simul Neg Sub : mannen inte skulle gå
+  s Cond Anter Pos Main : mannen skulle ha gått
+  s Cond Anter Pos Inv : skulle mannen ha gått
+  s Cond Anter Pos Sub : mannen skulle ha gått
+  s Cond Anter Neg Main : mannen skulle inte ha gått
+  s Cond Anter Neg Inv : skulle mannen inte ha gått
+  s Cond Anter Neg Sub : mannen inte skulle ha gått
+  
+</PRE>
+<P>
+The following quiz can be used for training the inflection of intransitive
+clauses:
+</P>
+<PRE>
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseV ?))
+</PRE>
+<P>
+The following quiz translates English sentences in random tenses and polarities:
+</P>
+<PRE>
+    translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) (UseV ?)))
+</PRE>
+<P></P>
+<A NAME="toc13"></A>
+<H2>Verbs with different predication patterns</H2>
+<P>
+Transitive verbs take an object in the accusative case (if there is a case):
+</P>
+<PRE>
+  &gt; %translate "he loves her"
+  han älskar henne
+</PRE>
+<P>
+A generalization is two-place verbs, where the object is in some other case, or
+has a preposition. What is transitive in one language can often require a 
+preposition in another language:
+</P>
+<PRE>
+  &gt; %translate "he waits for her"
+  han väntar på henne
+  
+  &gt; %translate "he likes her"
+  han tycker om henne
+</PRE>
+<P>
+Three-place verbs usually take an object and another argument:
+</P>
+<PRE>
+  &gt; %translate "the king gave the city to the queen"
+  kungen gav staden till drottningen
+</PRE>
+<P>
+There are also verbs that have a sentence or a question as an argument,
+possibly with an object:
+</P>
+<PRE>
+  &gt; %translate "he said that the man walks"
+  han sade att mannen går
+  
+  &gt; %translate "he wonders who sleeps"
+  han undrar vem som sover
+  
+  &gt; %translate "he asked me who sleeps"
+  han frågade mig vem som sover
+  
+  &gt; %translate "we answer to him that everybody sleeps"
+  vi svarar till honom att alla sover
+</PRE>
+<P>
+There are also verbs that take other verbs (with their complements) as arguments:
+</P>
+<PRE>
+  &gt; %translate "we must sleep"
+  vi måste sova
+  
+  &gt; %translate "we want to wait for her"
+  vi vill vänta på henne
+</PRE>
+<P>
+The verb <I>to be</I> takes adjectives and noun phrases as arguments:
+</P>
+<PRE>
+  &gt; %translate "he is very old"
+  han är mycket gammal
+  
+  &gt; %translate "he is an old man"
+  han är en gammal man
+</PRE>
+<P>
+The following quiz can be used for training the inflection of clauses with 
+any verb:
+</P>
+<PRE>
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) ?)
+</PRE>
+<P>
+The following quiz can be used for training the inflection of clauses with 
+<I>to be</I>:
+</P>
+<PRE>
+    morpho_quiz -lang=DemoSwe (PredVP (UsePron ?) (UseComp ?))
+</PRE>
+<P>
+The following quiz translates English sentences in random tenses and polarities:
+</P>
+<PRE>
+    translate_quiz -from=DemoEng -to=DemoSwe (UseCl ? ? (PredVP (UsePron ?) ?))
+</PRE>
+<P></P>
+<A NAME="toc14"></A>
+<H2>Questions</H2>
+<P>
+Questions are similar to sentences, but can have a different word order:
+</P>
+<PRE>
+  &gt; %translate "is he very old"
+  är han mycket gammal
+  
+  &gt; %translate "would I sleep"
+  skulle jag sova
+</PRE>
+<P>
+Questions can moreover have <B>interrogatives</B> as their arguments,
+instead of norman nouns:
+</P>
+<PRE>
+  &gt; %translate "who doesn't sleep"
+  vem sover inte
+  
+  &gt; %translate "whom did she see"
+  vem såg hon
+</PRE>
+<P>
+Sentences without interrogatives can be made to questions with
+</P>
+<PRE>
+  &gt; %translate "where will we sleep"
+  var ska vi sova
+  
+  &gt; %translate "why didn't she wait for us"
+  varför väntade hon inte på oss
+</PRE>
+<P></P>
+<A NAME="toc15"></A>
+<H1>For developers</H1>
+<P>
+There are three levels of involvement, from the easiest to the hardest,
+</P>
+<OL>
+<LI>create the default tour for a language that is in the GF resource grammar library
+  (takes less than a minute, if you have the tools listed below)
+<LI>customize the tour for a language that is in the library
+  (worth spending a couple of hours on)
+<LI>add a language to the library and build the tour for it
+  (an undertaking of a few months)
+</OL>
+
+<P>
+1. To create the tour for a language that is in the library, e.g. Spanish, 
+just run
+</P>
+<PRE>
+    make Spa
+</PRE>
+<P>
+in the directory <CODE>GF/lib/doc/tour</CODE>. You need the following things for this 
+to work out
+</P>
+<UL>
+<LI>the program GF (Grammatical Framework), downloadable from
+  the <A HREF="http://grammaticalframework.org">GF website</A>
+<LI>the precompiled grammar package <CODE>Demo.pgf</CODE>, downloadable from 
+  <A HREF="http://grammaticalframework.org/lib/doc/Demo.pgf.gz">here</A> or makeable in
+  <CODE>GF/lib/src</CODE> with <CODE>make demo</CODE>
+<LI>the command <CODE>runghc</CODE> available in any <A HREF="http://www.haskell.org/ghc">GHC</A> installation
+<LI>the command <A HREF="http://txt2tags.sourceforge.net/"><CODE>txt2tags</CODE></A>
+</UL>
+
+<P>
+2. To customize the tour, edit the master file <CODE>GF/lib/doc/tour/tour.txt</CODE>. 
+The customization mainly proceeds by adding lines marked <CODE>#Spa</CODE> (if Spanish is
+your target language). This can be done both for text lines, e.g.
+</P>
+<PRE>
+    #Spa Swedish has separate second-person plural pronouns for both genders.
+</PRE>
+<P>
+and for GF command lines, e.g.
+</P>
+<PRE>
+    #Spa %translate "you are very old"
+</PRE>
+<P>
+In both cases, one can also add <CODE>#Spa</CODE> to the existing markings if they are
+adequate, e.g.
+</P>
+<PRE>
+    #Fre,Spa Swedish has two genders: the masculine and the feminine.
+</PRE>
+<P>
+It's in particular for this purpose that we recommend using the variable <CODE>Swedish</CODE>
+rather than the constant <CODE>Spanish</CODE>. The <CODE>make</CODE> procedure replaces the variable with
+the constant automatically. Similarly, the language code <CODE>Spa</CODE> used in GF commands
+should be avoided and the variable <CODE>Swe</CODE> used instead.
+</P>
+<P>
+In general, the master file <CODE>tour.txt</CODE> is processed line by line. It has five kinds
+of lines, distinguished by the prefix of the line:
+</P>
+<UL>
+<LI><CODE>#</CODE> <I>LANGS</I> <CODE>&gt;</CODE> <I>COMMAND</I> : language-specific GF command
+<LI><CODE>#</CODE> <I>LANGS</I> <I>TEXT</I> : language-specific text
+<LI><CODE>&gt;</CODE> <I>COMMAND</I> : language-independent GF command
+<LI><CODE>*</CODE> : ignored; included for the sake of documentation
+<LI>any other text : language-independet text
+</UL>
+
+<P>
+Here <I>LANGS</I> is a comma-separated list of 3-letter language codes,
+such as <CODE>Fre,Spa,Ita</CODE>.
+</P>
+<P>
+3. To contribute a new language to the library, see the
+<A HREF="http://grammaticalframework.org/doc/gfss">GF Resource Grammar Project</A>.
+</P>
+<P>
+In cases (2) and (3), please contribute your work to the GF community!
+</P>
+
+<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<!-- cmdline: txt2tags -\-toc -thtml tourSwe.txt -->
+</BODY></HTML>
diff --git a/lib/src/Make.hs b/lib/src/Make.hs
--- a/lib/src/Make.hs
+++ b/lib/src/Make.hs
@@ -28,6 +28,7 @@
 -- we also give the functors implied
  
 langsCoding = [
+  (("amharic",  "Amh"),""),
   (("arabic",   "Ara"),""),
   (("bulgarian","Bul"),""),
   (("catalan",  "Cat"),"Romance"),
@@ -36,20 +37,21 @@
   (("english",  "Eng"),""),
   (("finnish",  "Fin"),""),
   (("french",   "Fre"),"Romance"),
-  (("hindi",    "Hin"),""),
+  (("hindi",    "Hin"),"Hindustani"),
   (("german",   "Ger"),""),
   (("interlingua","Ina"),""),
   (("italian",  "Ita"),"Romance"),
   (("latin",    "Lat"),""),
   (("norwegian","Nor"),"Scand"),
   (("polish",   "Pol"),""),
+  (("punjabi",  "Pnb"),""),
   (("romanian", "Ron"),""),
   (("russian",  "Rus"),""),
   (("spanish",  "Spa"),"Romance"),
   (("swedish",  "Swe"),"Scand"), 
   (("thai",     "Tha"),""),
   (("turkish",  "Tur"),""),
-  (("urdu",     "Urd"),"")
+  (("urdu",     "Urd"),"Hindustani")
   ]
 
 implied (_,lan) = [fun | ((_,la),fun) <- langsCoding, la == lan, fun /= ""]
@@ -63,10 +65,10 @@
 langsLang = langs `except` langsIncomplete ---- []
 
 -- languages for which Lang can be compiled but which are incomplete
-langsIncomplete = ["Ara","Hin","Lat","Tha","Tur"]
+langsIncomplete = ["Amh","Ara","Hin","Lat","Pnb","Tha","Tur"]
 
 -- languages for which to compile Try 
-langsAPI = langsLang `except` (langsIncomplete ++ ["Ina"])
+langsAPI = langsLang `except` langsIncomplete
 
 -- languages for which to compile Symbolic
 langsSymbolic = langsLang `except` (langsIncomplete ++ ["Rus","Ina"])
@@ -149,13 +151,13 @@
   return ()
 
 gfc pres ppath file = do
-  let preproc = if pres then "-preproc=./mkPresent" else ""
+  let preproc = if pres then "-preproc=mkPresent" else ""
   let path    = if pres then ppath else ""
   putStrLn $ "Compiling " ++ file
-  run_gfc ["-s","-src", preproc, path, file]
+  run_gfc ["-s","-src",preproc, path, file]
 
 gfcmin path file = do
-  let preproc = "-preproc=./mkMinimal"
+  let preproc = "-preproc=mkMinimal"
   putStrLn $ "Compiling minimal " ++ file
   run_gfc ["-s","-src", preproc, path, file]
 
diff --git a/lib/src/abstract/Adjective.gf b/lib/src/abstract/Adjective.gf
--- a/lib/src/abstract/Adjective.gf
+++ b/lib/src/abstract/Adjective.gf
@@ -29,7 +29,11 @@
 
     AdAP    : AdA -> AP -> AP ; -- very warm
 
--- The formation of adverbs from adjective (e.g. "quickly") is covered
--- in [Adverb Adverb.html].
+-- It can also be postmodified by an adverb, typically a prepositional phrase.
+
+    AdvAP   : AP -> Adv -> AP ; -- warm by nature
+
+-- The formation of adverbs from adjectives (e.g. "quickly") is covered
+-- in [Adverb Adverb.html]; the same concerns adadjectives (e.g. "extremely").
 
 }
diff --git a/lib/src/abstract/Adverb.gf b/lib/src/abstract/Adverb.gf
--- a/lib/src/abstract/Adverb.gf
+++ b/lib/src/abstract/Adverb.gf
@@ -20,6 +20,10 @@
 
     AdAdv  : AdA -> Adv -> Adv ;             -- very quickly
 
+-- Like adverbs, adadjectives can be produced by adjectives.
+
+    PositAdAAdj : A -> AdA ;                 -- extremely
+
 -- Subordinate clauses can function as adverbs.
 
     SubjS  : Subj -> S -> Adv ;              -- when she sleeps
@@ -27,6 +31,5 @@
 -- Comparison adverbs also work as numeral adverbs.
 
     AdnCAdv : CAdv -> AdN ;                  -- less (than five)
-
 
 }
diff --git a/lib/src/abstract/Cat.gf b/lib/src/abstract/Cat.gf
--- a/lib/src/abstract/Cat.gf
+++ b/lib/src/abstract/Cat.gf
@@ -12,7 +12,7 @@
 -- implementation in all languages in the resource (typically,
 -- just a string). These categories are
 -- $AdA, AdN, AdV, Adv, Ant, CAdv, IAdv, PConj, Phr$, 
--- $Pol, SC, Tense, Text, Utt, Voc$.
+-- $Pol, SC, Tense, Text, Utt, Voc, Interj$.
 --
 -- Moreover, the list categories $ListAdv, ListAP, ListNP, ListS$
 -- are defined on $Conjunction$ and only used locally there.
diff --git a/lib/src/abstract/Common.gf b/lib/src/abstract/Common.gf
--- a/lib/src/abstract/Common.gf
+++ b/lib/src/abstract/Common.gf
@@ -15,10 +15,11 @@
 
 -- Constructed in [``Phrase`` Phrase.html]:
 
-    Phr ;   -- phrase in a text                    e.g. "but be quiet please"
-    Utt ;   -- sentence, question, word...         e.g. "be quiet"
-    Voc ;   -- vocative or "please"                e.g. "my darling"
-    PConj ; -- phrase-beginning conjunction        e.g. "therefore"
+    Phr ;    -- phrase in a text                   e.g. "but be quiet please"
+    Utt ;    -- sentence, question, word...        e.g. "be quiet"
+    Voc ;    -- vocative or "please"               e.g. "my darling"
+    PConj ;  -- phrase-beginning conjunction       e.g. "therefore"
+    Interj ; -- interjection                       e.g. "alas"
 
 -- Constructed in [``Sentence`` Sentence.html]:
 
diff --git a/lib/src/abstract/Conjunction.gf b/lib/src/abstract/Conjunction.gf
--- a/lib/src/abstract/Conjunction.gf
+++ b/lib/src/abstract/Conjunction.gf
@@ -17,11 +17,13 @@
 --2 Rules
 
   fun
-    ConjS   : Conj -> [S] -> S ;     -- "he walks and she runs"
-    ConjRS  : Conj -> [RS] -> RS ;   -- "who walks and whose mother runs"
-    ConjAP  : Conj -> [AP] -> AP ;   -- "cold and warm"
-    ConjNP  : Conj -> [NP] -> NP ;   -- "she or we"
-    ConjAdv : Conj -> [Adv] -> Adv ; -- "here or there"
+    ConjS    : Conj -> [S] -> S ;       -- "he walks and she runs"
+    ConjRS   : Conj -> [RS] -> RS ;     -- "who walks and whose mother runs"
+    ConjAP   : Conj -> [AP] -> AP ;     -- "cold and warm"
+    ConjNP   : Conj -> [NP] -> NP ;     -- "she or we"
+    ConjAdv  : Conj -> [Adv] -> Adv ;   -- "here or there"
+    ConjIAdv : Conj -> [IAdv] -> IAdv ; -- "where and with whom"
+    ConjCN   : Conj -> [CN] -> CN ;     -- "man and woman"
 
 --2 Categories
 
@@ -33,6 +35,8 @@
     [Adv]{2} ; 
     [NP]{2} ; 
     [AP]{2} ;
+    [IAdv]{2} ;
+    [CN] {2} ;
 
 --2 List constructors
 
diff --git a/lib/src/abstract/Extra.gf b/lib/src/abstract/Extra.gf
--- a/lib/src/abstract/Extra.gf
+++ b/lib/src/abstract/Extra.gf
@@ -43,4 +43,28 @@
     ICompAP : AP -> IComp ;   -- "how old"
     IAdvAdv : Adv -> IAdv ;   -- "how often"
 
+    CompIQuant : IQuant -> IComp ; -- which (is it) [agreement to NP]
+
+    PrepCN : Prep -> CN -> Adv ;   -- by accident [Prep + CN without article]
+
+  -- fronted/focal constructions, only for main clauses
+
+  cat
+    Foc ;
+
+  fun
+    FocObj : NP  -> ClSlash -> Foc ;   -- her I love
+    FocAdv : Adv -> Cl      -> Foc ;   -- today I will sleep
+    FocAdV : AdV -> Cl      -> Foc ;   -- never will I sleep
+    FocAP  : AP  -> NP      -> Foc ;   -- green was the tree
+    FocNeg : Cl             -> Foc ;   -- not is he here
+    FocVP  : VP  -> NP      -> Foc ;   -- love her I do
+    FocVV  : VV -> VP -> NP -> Foc ;   -- to love her I want
+    
+    UseFoc : Temp -> Pol -> Foc -> Utt ;
+
+  fun
+    PartVP : VP -> AP ; -- (the man) looking at Mary
+    EmbedPresPart : VP -> SC ; -- looking at Mary (is fun)
+
 }
diff --git a/lib/src/abstract/Lexicon.gf b/lib/src/abstract/Lexicon.gf
--- a/lib/src/abstract/Lexicon.gf
+++ b/lib/src/abstract/Lexicon.gf
@@ -2,6 +2,7 @@
 fun
   add_V3 : V3 ;
   airplane_N : N ;
+  alas_Interj : Interj ;
   already_Adv : Adv ;
   animal_N : N ;
   answer_V2S : V2S ;
@@ -158,6 +159,7 @@
   king_N : N ;
   knee_N : N ;
   know_V2 : V2 ;
+  know_VQ : VQ ;
   know_VS : VS ;
   lake_N : N ;
   lamp_N : N ;
diff --git a/lib/src/abstract/Noun.gf b/lib/src/abstract/Noun.gf
--- a/lib/src/abstract/Noun.gf
+++ b/lib/src/abstract/Noun.gf
@@ -133,4 +133,4 @@
     ApposCN : CN -> NP -> CN ;    -- city Paris (, numbers x and y)
 
 
-} ;
+}
diff --git a/lib/src/abstract/Numeral.gf b/lib/src/abstract/Numeral.gf
--- a/lib/src/abstract/Numeral.gf
+++ b/lib/src/abstract/Numeral.gf
@@ -17,7 +17,7 @@
 -- parts of a numeral, which is often incorrect - more work on
 -- (un)lexing is needed to solve this problem.
 
-abstract Numeral = Cat ** {
+abstract Numeral = Cat [Numeral,Digits] ** {
 
 cat 
   Digit ;       -- 2..9
diff --git a/lib/src/abstract/Phrase.gf b/lib/src/abstract/Phrase.gf
--- a/lib/src/abstract/Phrase.gf
+++ b/lib/src/abstract/Phrase.gf
@@ -23,17 +23,18 @@
 -- Moreover, in many languages e.g. noun phrases in different cases
 -- can be used.
 
-    UttIP   : IP   -> Utt ;                 -- who
-    UttIAdv : IAdv -> Utt ;                 -- why
-    UttNP   : NP   -> Utt ;                 -- this man
-    UttAdv  : Adv  -> Utt ;                 -- here
-    UttVP   : VP   -> Utt ;                 -- to sleep
-    UttCN   : CN   -> Utt ;                 -- house
-    UttCard : Card -> Utt ;                 -- five
-    UttAP   : AP   -> Utt ;                 -- fine
+    UttIP     : IP   -> Utt ;               -- who
+    UttIAdv   : IAdv -> Utt ;               -- why
+    UttNP     : NP   -> Utt ;               -- this man
+    UttAdv    : Adv  -> Utt ;               -- here
+    UttVP     : VP   -> Utt ;               -- to sleep
+    UttCN     : CN   -> Utt ;               -- house
+    UttCard   : Card -> Utt ;               -- five
+    UttAP     : AP   -> Utt ;               -- fine
+    UttInterj : Interj -> Utt ;             -- alas
 
 -- The phrasal conjunction is optional. A sentence conjunction
--- can also used to prefix an utterance.
+-- can also be used to prefix an utterance.
 
     NoPConj   : PConj ;                      
     PConjConj : Conj -> PConj ;             -- and
diff --git a/lib/src/abstract/Question.gf b/lib/src/abstract/Question.gf
--- a/lib/src/abstract/Question.gf
+++ b/lib/src/abstract/Question.gf
@@ -30,6 +30,10 @@
 
     PrepIP    : Prep -> IP -> IAdv ;     -- with whom
 
+-- They can be modified with other adverbs.
+
+    AdvIAdv   : IAdv -> Adv -> IAdv ;    -- where in Paris
+
 -- Interrogative complements to copulas can be both adverbs and
 -- pronouns.
 
@@ -38,4 +42,14 @@
 
 -- More $IP$, $IDet$, and $IAdv$ are defined in $Structural$.
 
+-- Wh questions with two or more question words require a new, special category.
+
+  cat 
+    QVP ;          -- buy what where
+  fun
+    ComplSlashIP  : VPSlash -> IP -> QVP ;   -- buys what 
+    AdvQVP        : VP  ->   IAdv -> QVP ;   -- lives where 
+    AddAdvQVP     : QVP ->   IAdv -> QVP ;   -- buys what where 
+
+    QuestQVP      : IP -> QVP -> QCl ;       -- who buys what where
 }
diff --git a/lib/src/abstract/Verb.gf b/lib/src/abstract/Verb.gf
--- a/lib/src/abstract/Verb.gf
+++ b/lib/src/abstract/Verb.gf
@@ -65,7 +65,11 @@
 -- Adjectival phrases, noun phrases, and adverbs can be used.
 
     CompAP   : AP  -> Comp ;            -- (be) small
-    CompNP   : NP  -> Comp ;            -- (be) a man
+    CompNP   : NP  -> Comp ;            -- (be) the man
     CompAdv  : Adv -> Comp ;            -- (be) here
+    CompCN   : CN  -> Comp ;            -- (be) a man/men
 
+-- Copula alone
+
+    UseCopula : VP ;                    -- be
 }
diff --git a/lib/src/amharic/AdjectiveAmh.gf b/lib/src/amharic/AdjectiveAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/AdjectiveAmh.gf
@@ -0,0 +1,69 @@
+concrete AdjectiveAmh of Adjective = CatAmh ** open ResAmh,ParamX, Prelude in {
+
+ flags coding = utf8 ;
+  lin
+	PositA a = {
+
+		s = \\g,n,s,c => a.s ! g ! n ! s ! c          
+	};
+
+	ComparA a np = {
+
+		s = \\g,n,s,c => 
+		
+		case c of
+	
+		{
+			Acc =>"ከ" ++ np.s ! Nom ++ "ይልቅ"++ a.s ! g ! n ! s ! c ; 
+			_   =>  affix2 ("ከ")!c ++ np.s ! Nom ++ "ይልቅ"++ a.s ! g ! n ! s ! Nom 
+		} 
+	} ;
+
+ --FIX  ada.s ? strange error : 
+	{-
+	AdAP ada ap = {
+		
+		s = \\g,n,s,c  => 
+			case c of 
+		{
+			Acc => ada.s ++ ap.s ! g ! Sg ! Indef ! c;
+			_   => affix2 ada.s !c ++ ap.s ! g ! Sg ! Indef ! Nom
+		}
+	} ;-}
+
+	AdAP ada ap = {
+		
+		s = \\g,n,s,c  => ada.s ++ ap.s ! g ! Sg ! Indef ! c
+
+		};
+
+	UseComparA a = {
+		
+		s = \\g,n,s,c  => "በደምብ"  ++ a.s ! g ! Sg ! Indef ! Nom
+
+		};
+	
+	AdjOrd ord = {
+		
+		s = \\g,n,s,c => 
+		
+		case c of
+	
+		{
+			Acc =>"ከሁሉ" ++ ord.s!g!n!s!c ;
+			_   =>  affix2 ("ከሁሉ")!c ++ ord.s ! g!n!s!Nom
+		} 
+
+	
+		};
+
+	--  CAdvAP  : CAdv -> AP -> NP -> AP ;  -- as cool as John
+
+
+	 CAdvAP ad ap np = {
+
+      			s = \\g,n,s,c =>   ad.s ++ ad.p ++ np.s ! Nom ++ ap.s ! g ! n ! s ! c ; 
+
+     		 } ;
+
+}
diff --git a/lib/src/amharic/AdverbAmh.gf b/lib/src/amharic/AdverbAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/AdverbAmh.gf
@@ -0,0 +1,17 @@
+
+
+--# -path=.:../abstract:../common:../../prelude
+
+concrete AdverbAmh of Adverb = CatAmh ** open ResAmh, Prelude,ParamX in {
+flags coding = utf8;
+--
+  lin
+         PositAdvAdj a = {s = "በ" ++ a.s ! Masc! Sg! Indef! Nom ++"ሁኔታ"} ;  
+
+	 PrepNP prep np = {s = preOrPost2 prep.isPre (prep.s)(np.s ! Nom)(prep.s2)}; 
+      
+	 AdAdv ada ad ={s = ada.s ++ ad.s  };
+	  
+	 ComparAdvAdj c a n = {s= "ከ" ++ n.s!Nom++c.s ++c.p ++ "በ" ++ a.s ! Masc! Sg! Indef! Nom ++"ሁኔታ"};
+
+}
diff --git a/lib/src/amharic/AllAmh.gf b/lib/src/amharic/AllAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/AllAmh.gf
@@ -0,0 +1,3 @@
+--# -path=.:../abstract:../common:prelude
+--
+concrete AllAmh of AllAmhAbs = LangAmh, ExtAmh ;
diff --git a/lib/src/amharic/AllAmhAbs.gf b/lib/src/amharic/AllAmhAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/AllAmhAbs.gf
@@ -0,0 +1,3 @@
+--# -path=.:../abstract:../common:prelude
+
+abstract AllAmhAbs = Lang, ExtAmhAbs ;
diff --git a/lib/src/amharic/CatAmh.gf b/lib/src/amharic/CatAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/CatAmh.gf
@@ -0,0 +1,44 @@
+concrete CatAmh of Cat = CommonX ** open ResAmh, Prelude in {
+
+lincat
+
+
+	CN,N = ResAmh.Noun ;-- {s :Number => Species => Case => Str; g : Gender} ;
+	N2 = ResAmh.N2 ;--{s : Number => Case => Str ; g : Gender} ** {c2 : Str} ;
+	N3 = ResAmh.N3 ;--{s : Number => Case => Str ; g : Gender} ** {c2,c3 : Str} ;
+	A2V,A= ResAmh.Adjective ;--{s : Gender => Number => Species => Case => Str} ;
+	V = ResAmh.Verb ; 
+	V,V0,VS,VQ,VA,V2A,V2V,V2S,V2Q,VV= ResAmh.Verb ; -- = {s : VForm => Str} ;
+	V2 = ResAmh.Verb ** {c2 : Prep} ;
+	V3 = ResAmh.Verb ** {c2, c3 : Prep} ;
+	Pron,NP = ResAmh.NP ;  --NP = {s : Case => Str ; a : Agr} ; 
+	VP = ResAmh.VP ;
+        Comp =ResAmh.Comp;
+	PN = ResAmh.PN ; --{s : Number => Species => Case => Str ; g : Gender} ;
+	Quant = ResAmh.Quant; 
+	Det = ResAmh.Det;--{s : Gender => Case => Str ;  n : Number ; isDef : Bool };
+	Predet = ResAmh.Predet;
+	AP = ResAmh.AP; 
+	Prep = ResAmh.Prep;
+	Numeral = ResAmh.Numeral; --{s : CardOrd => Case => Str ; n : Number} ;
+	Digits  = ResAmh.Digits;--{s : CardOrd => Case => Str ; n : Number ; tail : DTail} ;
+	Ord = ResAmh.Ord ; --{ s : Case => Str } ;
+	Num  = ResAmh.Num;--{s : Case => Str ; n : Number ; hasCard : Bool} ;
+	Card = ResAmh.Card;--{s : Case => Str ; n : Number} ;
+        Cl = ResAmh.Cl; -- {s : Tense => Pol => Str};
+        QCl = ResAmh.QCl;
+        Obj = ResAmh.Obj;
+	VPSlash = ResAmh.VPSlash;
+        ClSlash = ResAmh.ClSlash;
+	Imp = ResAmh.Imp;
+        S =  ResAmh.S;
+	IP = ResAmh.IP;-- {s : Str ; n : ResAra.Number} ;
+        IDet = ResAmh.IDet ;
+	IQuant  = ResAmh.IQuant;
+	Conj = ResAmh.Conj;
+
+}
+
+
+
+
diff --git a/lib/src/amharic/ConjunctionAmh.gf b/lib/src/amharic/ConjunctionAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/ConjunctionAmh.gf
@@ -0,0 +1,33 @@
+
+
+concrete ConjunctionAmh of Conjunction = 
+CatAmh ** open ResAmh, Coordination, Prelude,ParamX, CommonX in {
+
+ flags optimize=all_subs ;
+	 coding = utf8;
+
+  lin
+
+	ConjS = conjunctDistrSS ;
+	ConjAdv = conjunctDistrSS ;
+	ConjNP conj ss = conjunctDistrTable Case conj ss ** { a = {png= conjAgr (agrP3 conj.n) ss.a.png ;isPron =False}};
+	ConjAP conj ss = conjunctDistrTable4 Gender Number Species Case conj ss ;
+
+
+
+	BaseS = twoSS ;
+	ConsS = consrSS "፣" ;
+	BaseAdv = twoSS ;
+	ConsAdv = consrSS "፣"  ;
+	BaseNP x y = twoTable Case x y ** {a = {png =conjAgr x.a.png y.a.png ;isPron = False}} ;
+	ConsNP xs x = consrTable Case "፣" xs x ** {a = { png = conjAgr xs.a.png x.a.png ;isPron =False} }; 
+	BaseAP x y = twoTable4 Gender Number Species Case x y  ;
+	ConsAP xs x = consrTable4 Gender Number Species Case "፤"   xs x  ;
+
+ lincat
+	[S]  = {s1,s2 : Str} ;
+	[Adv]= {s1,s2 : Str} ;
+	[NP] = {s1,s2 : Case => Str ; a : Agr} ;
+	[AP] = {s1,s2 : Gender => Number => Species => Case => Str} ;
+
+}
diff --git a/lib/src/amharic/ExtAmh.gf b/lib/src/amharic/ExtAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/ExtAmh.gf
@@ -0,0 +1,12 @@
+concrete ExtAmh of ExtAmhAbs = CatAmh ** 
+
+  open MorphoAmh, ResAmh, ParadigmsAmh,ParamX, Prelude in {
+--
+  flags optimize=all ;  coding=utf8 ;
+  
+lin
+	youSgFem_Pron = pronNP "አንቺ" "አንቺን" "የአንቺ" "ለአንቺ"   (Per2 Sg Fem);
+        hePol_pron  = pronNP "እርሳቸው" "እርሳቸውን" "የእርሳቸው" "ለእርሳቸው"  (Per3 Pl Masc) ; 
+	shePol_pron = pronNP "እርሳቸው" "እርሳቸውን" "የእርሳቸው" "ለእርሳቸው"  (Per3 Pl Masc) ; 
+
+}
diff --git a/lib/src/amharic/ExtAmhAbs.gf b/lib/src/amharic/ExtAmhAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/ExtAmhAbs.gf
@@ -0,0 +1,11 @@
+abstract ExtAmhAbs = Cat ** {
+
+
+  fun
+	
+
+  	youSgFem_Pron : Pron ; 
+	shePol_pron : Pron ;
+	hePol_pron : Pron ;
+
+}
diff --git a/lib/src/amharic/GrammarAmh.gf b/lib/src/amharic/GrammarAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/GrammarAmh.gf
@@ -0,0 +1,26 @@
+--# -path=.:../abstract:../common:prelude
+
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+
+concrete GrammarAmh of Grammar = 
+  NounAmh,
+  VerbAmh, 
+  AdjectiveAmh,
+  AdverbAmh,
+  NumeralAmh,
+  SentenceAmh,
+  QuestionAmh,
+  RelativeAmh,
+  ConjunctionAmh,
+  PhraseAmh,
+  TextX,
+  StructuralAmh,
+  IdiomAmh,
+  TenseX 
+
+  ** {
+
+ flags startcat = Phr ; unlexer = text ; lexer = text ;coding=utf8 ;
+
+} ;
diff --git a/lib/src/amharic/IdiomAmh.gf b/lib/src/amharic/IdiomAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/IdiomAmh.gf
@@ -0,0 +1,14 @@
+concrete IdiomAmh of Idiom = CatAmh ** open Prelude, ResAmh in {
+----
+----  flags optimize=all_subs ;
+----
+----  lin
+----    ExistNP np = 
+----      mkClause "تهري" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
+----    ImpersCl vp = mkClause "ِت" (agrP3 Sg) vp ;
+----    GenericCl vp = mkClause "ْني" (agrP3 Sg) vp ;
+----
+----    ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
+----     ProgrVP   : VP -> VP ;        -- be sleeping
+}
+
diff --git a/lib/src/amharic/IrregAmh.gf b/lib/src/amharic/IrregAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/IrregAmh.gf
@@ -0,0 +1,181 @@
+--# -path=.:prelude:../abstract:../common
+
+concrete IrregAmh of IrregAmhAbs = CatAmh ** open ParadigmsAmh in {
+----
+----flags optimize=values ;
+----
+----  lin
+----  awake_V = irregV "َوَكي" "َوْكي" "َوْكن" ;
+----  bear_V = irregV "بَر" "بْري" "بْرن" ;
+----  beat_V = irregV "بَت" "بَت" "بَت" ;
+----  become_V = irregV "بعْمي" "بعَمي" "بعْمي" ;
+----  begin_V = irregV "بغِن" "بغَن" "بغُن" ;
+----  bend_V = irregV "بند" "بنت" "بنت" ;
+----  beset_V = irregV "بست" "بست" "بست" ;
+----  bet_V = irregDuplV "بت" "بت" "بت" ;
+----  bid_V = irregDuplV "بِد" (variants {"بِد" ; "بَدي"}) (variants {"بِد" ; "بِدّن"}) ;
+----  bind_V = irregV "بِند" "بُْند" "بُْند" ;
+----  bite_V = irregV "بِتي" "بِت" "بِتّن" ;
+----  bleed_V = irregV "بلّد" "بلد" "بلد" ;
+----  blow_V = irregV "بلْو" "بلو" "بلْون" ;
+----  break_V = irregV "برَك" "برْكي" "برْكن" ;
+----  breed_V = irregV "برّد" "برد" "برد" ;
+----  bring_V = irregV "برِنغ" "برُْغهت" "برُْغهت" ;
+----  broadcast_V = irregV "برَْدعَست" "برَْدعَست" "برَْدعَست" ;
+----  build_V = irregV "بُِلد" "بُِلت" "بُِلت" ;
+----  burn_V = irregV "بُرن" (variants {"بُرند" ; "بُرنت"}) (variants {"بُرند" ; "بُرنت"}) ;
+----  burst_V = irregV "بُرست" "بُرست" "بُرست" ;
+----  buy_V = irregV "بُي" "بُْغهت" "بُْغهت" ;
+----  cast_V = irregV "عَست" "عَست" "عَست" ;
+----  catch_V = irregV "عَتعه" "عَُغهت" "عَُغهت" ;
+----  choose_V = irregV "عهّْسي" "عهْسي" "عهْسن" ;
+----  cling_V = irregV "علِنغ" "علُنغ" "علُنغ" ;
+----  come_V = irregV "عْمي" "عَمي" "عْمي" ;
+----  cost_V = irregV "عْست" "عْست" "عْست" ;
+----  creep_V = irregV "عرّة" "عرةت" "عرةت" ;
+----  cut_V = irregDuplV "عُت" "عُت" "عُت" ;
+----  deal_V = irregV "دَل" "دَلت" "دَلت" ;
+----  dig_V = irregDuplV "دِغ" "دُغ" "دُغ" ;
+----  dive_V = irregV "دِثي" (variants {"دِثد" ; "دْثي"}) "دِثد" ;
+----  do_V = mkV "دْ" "دْس" "دِد" "دْني" "دِْنغ" ;
+----  draw_V = irregV "درَو" "درو" "درَون" ;
+----  dream_V = irregV "درَم" (variants {"درَمد" ; "درَمت"}) (variants {"درَمد" ; "درَمت"}) ;
+----  drive_V = irregV "درِثي" "درْثي" "درِثن" ;
+----  drink_V = irregV "درِنك" "درَنك" "درُنك" ;
+----  eat_V = irregV "َت" "َتي" "َتن" ;
+----  fall_V = irregV "فَلّ" "فلّ" "فَلّن" ;
+----  feed_V = irregV "فّد" "فد" "فد" ;
+----  feel_V = irregV "فّل" "فلت" "فلت" ;
+----  fight_V = irregV "فِغهت" "فُْغهت" "فُْغهت" ;
+----  find_V = irregV "فِند" "فُْند" "فُْند" ;
+----  fit_V = irregDuplV "فِت" "فِت" "فِت" ;
+----  flee_V = irregV "فلّ" "فلد" "فلد" ;
+----  fling_V = irregV "فلِنغ" "فلُنغ" "فلُنغ" ;
+----  fly_V = irregV "فلي" "فلو" "فلْون" ;
+----  forbid_V = irregDuplV "فْربِد" "فْربَدي" "فْربِدّن" ;
+----  forget_V = irregDuplV "فْرغت" "فْرغْت" "فْرغْتّن" ;
+----  forgive_V = irregV "فْرغِثي" "فْرغَثي" "فْرغِثن" ;
+----  forsake_V = irregV "فْرسَكي" "فْرسّْك" "فْرسَكن" ;
+----  freeze_V = irregV "فرّزي" "فرْزي" "فرْزن" ;
+----  get_V = irregDuplV "غت" "غْت" "غْتّن" ;
+----  give_V = irregV "غِثي" "غَثي" "غِثن" ;
+----  go_V = irregV "غْ" "ونت" "غْني" ;
+----  grind_V = irregV "غرِند" "غرُْند" "غرُْند" ;
+----  grow_V = irregV "غرْو" "غرو" "غرْون" ;
+----  hang_V = irregV "هَنغ" "هُنغ" "هُنغ" ;
+----  have_V = mkV "هَثي" "هَس" "هَد" "هَد" "هَثِنغ" ;
+----  hear_V = irregV "هَر" "هَرد" "هَرد" ;
+----  hide_V = irregV "هِدي" "هِد" "هِدّن" ;
+----  hit_V = irregDuplV "هِت" "هِت" "هِت" ;
+----  hold_V = irregV "هْلد" "هلد" "هلد" ;
+----  hurt_V = irregV "هُرت" "هُرت" "هُرت" ;
+----  keep_V = irregV "كّة" "كةت" "كةت" ;
+----  kneel_V = irregV "كنّل" "كنلت" "كنلت" ;
+----  knit_V = irregDuplV "كنِت" "كنِت" "كنِت" ;
+----  know_V = irregV "كنْو" "كنو" "كنْو" ;
+----  lay_V = irregV "لَي" "لَِد" "لَِد" ;
+----  lead_V = irregV "لَد" "لد" "لد" ;
+----  leap_V = irregV "لَة" (variants {"لَةد" ; "لةت"}) (variants {"لَةد" ; "لةت"}) ;
+----  learn_V = irregV "لَرن" (variants {"لَرند" ; "لَرنت"}) (variants {"لَرند" ; "لَرنت"}) ;
+----  leave_V = irregV "لَثي" "لفت" "لفت" ;
+----  lend_V = irregV "لند" "لنت" "لنت" ;
+----  let_V = irregDuplV "لت" "لت" "لت" ;
+----  lie_V = irregV "لِي" "لَي" "لَِن" ;
+----  light_V = irregV "لِغهت" (variants {"لِغهتد" ; "لِت"}) "لِغهتد" ;
+----  lose_V = irregV "لْسي" "لْست" "لْست" ;
+----  make_V = irregV "مَكي" "مَدي" "مَدي" ;
+----  mean_V = irregV "مَن" "مَنت" "مَنت" ;
+----  meet_V = irregV "مّت" "مت" "مت" ;
+----  misspell_V = irregV "مِسّةلّ" (variants {"مِسّةلّد" ; "مِسّةلت"}) (variants {"مِسّةلّد" ; "مِسّةلت"}) ;
+----  mistake_V = irregV "مِستَكي" "مِستّْك" "مِستَكن" ;
+----  mow_V = irregV "مْو" "مْود" (variants {"مْود" ; "مْون"}) ;
+----  overcome_V = irregV "ْثرعْمي" "ْثرعَمي" "ْثرعْمي" ;
+----  overdo_V = mkV "ْثردْ" "ْثردْس" "ْثردِد" "ْثردْني" "ْثردِْنغ" ;
+----  overtake_V = irregV "ْثرتَكي" "ْثرتّْك" "ْثرتَكن" ;
+----  overthrow_V = irregV "ْثرتهرْو" "ْثرتهرو" "ْثرتهرْون" ;
+----  pay_V = irregV "ةَي" "ةَِد" "ةَِد" ;
+----  plead_V = irregV "ةلَد" "ةلد" "ةلد" ;
+----  prove_V = irregV "ةرْثي" "ةرْثد" (variants {"ةرْثد" ; "ةرْثن"}) ;
+----  put_V = irregDuplV "ةُت" "ةُت" "ةُت" ;
+----  quit_V = irregDuplV "قُِت" "قُِت" "قُِت" ;
+----  read_V = irregV "رَد" "رَد" "رَد" ;
+----  rid_V = irregDuplV "رِد" "رِد" "رِد" ;
+----  ride_V = irregV "رِدي" "رْدي" "رِدّن" ;
+----  ring_V = irregV "رِنغ" "رَنغ" "رُنغ" ;
+----  rise_V = irregV "رِسي" "رْسي" "رِسن" ;
+----  run_V = irregDuplV "رُن" "رَن" "رُن" ;
+----  saw_V = irregV "سَو" "سَود" (variants {"سَود" ; "سَون"}) ;
+----  say_V = irregV "سَي" "سَِد" "سَِد" ;
+----  see_V = irregV "سّ" "سَو" "سّن" ;
+----  seek_V = irregV "سّك" "سُْغهت" "سُْغهت" ;
+----  sell_V = irregV "سلّ" "سْلد" "سْلد" ;
+----  send_V = irregV "سند" "سنت" "سنت" ;
+----  set_V = irregDuplV "ست" "ست" "ست" ;
+----  sew_V = irregV "سو" "سود" (variants {"سود" ; "سون"}) ;
+----  shake_V = irregV "سهَكي" "سهّْك" "سهَكن" ;
+----  shave_V = irregV "سهَثي" "سهَثد" (variants {"سهَثد" ; "سهَثن"}) ;
+----  shear_V = irregV "سهَر" "سهْري" "سهْرن" ;
+----  shed_V = irregDuplV "سهد" "سهد" "سهد" ;
+----  shine_V = irregV "سهِني" "سهْني" "سهْني" ;
+----  shoe_V = irregV "سهْي" "سهْد" (variants {"سهْد" ; "سهْد"}) ;
+----  shoot_V = irregV "سهّْت" "سهْت" "سهْت" ;
+----  show_V = irregV "سهْو" "سهْود" (variants {"سهْود" ; "سهْون"}) ;
+----  shrink_V = irregV "سهرِنك" "سهرَنك" "سهرُنك" ;
+----  shut_V = irregDuplV "سهُت" "سهُت" "سهُت" ;
+----  sing_V = irregV "سِنغ" "سَنغ" "سُنغ" ;
+----  sink_V = irregV "سِنك" "سَنك" "سُنك" ;
+----  sit_V = irregDuplV "سِت" "سَت" "سَت" ;
+----  sleep_V = irregV "سلّة" "سلةت" "سلةت" ;
+----  slay_V = irregV "سلَي" "سلو" "سلَِن" ;
+----  slide_V = irregV "سلِدي" "سلِد" "سلِد" ;
+----  sling_V = irregV "سلِنغ" "سلُنغ" "سلُنغ" ;
+----  slit_V = irregDuplV "سلِت" "سلِت" "سلِت" ;
+----  smite_V = irregV "سمِتي" "سمْتي" "سمِتّن" ;
+----  sow_V = irregV "سْو" "سْود" (variants {"سْود" ; "سْون"}) ;
+----  speak_V = irregV "سةَك" "سةْكي" "سةْكن" ;
+----  speed_V = irregV "سةّد" "سةد" "سةد" ;
+----  spend_V = irregV "سةند" "سةنت" "سةنت" ;
+----  spill_V = irregV "سةِلّ" (variants {"سةِلّد" ; "سةِلت"}) (variants {"سةِلّد" ; "سةِلت"}) ;
+----  spin_V = irregDuplV "سةِن" "سةُن" "سةُن" ;
+----  spit_V = irregDuplV "سةِت" (variants {"سةِت" ; "سةَت"}) "سةِت" ;
+----  split_V = irregDuplV "سةلِت" "سةلِت" "سةلِت" ;
+----  spread_V = irregV "سةرَد" "سةرَد" "سةرَد" ;
+----  spring_V = irregV "سةرِنغ" (variants {"سةرَنغ" ; "سةرُنغ"}) "سةرُنغ" ;
+----  stand_V = irregV "ستَند" "ستّْد" "ستّْد" ;
+----  steal_V = irregV "ستَل" "ستْلي" "ستْلن" ;
+----  stick_V = irregV "ستِعك" "ستُعك" "ستُعك" ;
+----  sting_V = irregV "ستِنغ" "ستُنغ" "ستُنغ" ;
+----  stink_V = irregV "ستِنك" "ستَنك" "ستُنك" ;
+----  stride_V = irregV "سترِدي" "سترْد" "سترِدّن" ;
+----  strike_V = irregV "سترِكي" "سترُعك" "سترُعك" ;
+----  string_V = irregV "سترِنغ" "سترُنغ" "سترُنغ" ;
+----  strive_V = irregV "سترِثي" "سترْثي" "سترِثن" ;
+----  swear_V = irregV "سوَر" "سوْري" "سوْرن" ;
+----  sweep_V = irregV "سوّة" "سوةت" "سوةت" ;
+----  swell_V = irregV "سولّ" "سولّد" (variants {"سولّد" ; "سوْلّن"}) ;
+----  swim_V = irregDuplV "سوِم" "سوَم" "سوُم" ;
+----  swing_V = irregV "سوِنغ" "سوُنغ" "سوُنغ" ;
+----  take_V = irregV "تَكي" "تّْك" "تَكن" ;
+----  teach_V = irregV "تَعه" "تَُغهت" "تَُغهت" ;
+----  tear_V = irregV "تَر" "تْري" "تْرن" ;
+----  tell_V = irregV "تلّ" "تْلد" "تْلد" ;
+----  think_V = irregV "تهِنك" "تهُْغهت" "تهُْغهت" ;
+----  thrive_V = irregV "تهرِثي" (variants {"تهرِثد" ; "تهرْثي"}) "تهرِثد" ;
+----  throw_V = irregV "تهرْو" "تهرو" "تهرْون" ;
+----  thrust_V = irregV "تهرُست" "تهرُست" "تهرُست" ;
+----  tread_V = irregV "ترَد" "ترْد" "ترْدّن" ;
+----  understand_V = irregV "ُندرستَند" "ُندرستّْد" "ُندرستّْد" ;
+----  uphold_V = irregV "ُةهْلد" "ُةهلد" "ُةهلد" ;
+----  upset_V = irregDuplV "ُةست" "ُةست" "ُةست" ;
+----  wake_V = irregV "وَكي" "وْكي" "وْكن" ;
+----  wear_V = irregV "وَر" "وْري" "وْرن" ;
+----  weave_V = irregV "وَثي" (variants {"وَثد" ; "وْثي"}) (variants {"وَثد" ; "وْثن"}) ;
+----  wed_V = irregDuplV "ود" "ود" "ود" ;
+----  weep_V = irregV "وّة" "وةت" "وةت" ;
+----  wind_V = irregV "وِند" "وُْند" "وُْند" ;
+----  win_V = irregDuplV "وِن" "وْن" "وْن" ;
+----  withhold_V = irregV "وِتهّْلد" "وِتهّلد" "وِتهّلد" ;
+----  withstand_V = irregV "وِتهستَند" "وِتهستّْد" "وِتهستّْد" ;
+----  wring_V = irregV "ورِنغ" "ورُنغ" "ورُنغ" ;
+----  write_V = irregV "ورِتي" "ورْتي" "ورِتّن" ;
+}
diff --git a/lib/src/amharic/LangAmh.gf b/lib/src/amharic/LangAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/LangAmh.gf
@@ -0,0 +1,15 @@
+--# -path=.:../abstract:../common:../prelude
+
+--(c) 2010 Markos KG
+-- Licensed under LGPL
+
+concrete LangAmh of Lang = 
+  GrammarAmh,
+  LexiconAmh
+  ** {
+
+  flags startcat = Phr ; unlexer = text ; lexer = text ; coding = utf8 ;
+
+}
+
+
diff --git a/lib/src/amharic/LexAmhTran.gf b/lib/src/amharic/LexAmhTran.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/LexAmhTran.gf
@@ -0,0 +1,378 @@
+--# -path=.:prelude
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+
+concrete LexiconAmh of Lexicon = CatAmh ** open 
+
+  ParadigmsAmh, ResAmh, Prelude in { 
+
+ --
+ flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN "!wr/pl!n" ;
+  answer_V2S = mkV3mls"???";--answer_V2S = mkV2  (compoundV "????" (mkV "????")) ;
+  apartment_N = mkN "!p!rt!m!" ;
+  apple_N = mkN "b'l'?" ;
+  art_N = mkN "Tb'b" ;
+  ask_V2Q = mkV3mls "???";--ask_V2Q = mkV2 (mkV "??????") ;
+  baby_N = mkN "hS!n" ;
+  bad_A = mkA "m'Tf/" ;
+  bank_N = mkN "b!nk" ;
+  beautiful_A = mkA "q/nj/" ;
+  become_VA = mkV2nr"??";--become_VA = mkV "????";
+  beer_N = mkN "b#r!" ;
+  beg_V2V =  mkV3mls "???";-- beg_V2V =  mkV2V (compoundV "?????" (mkV "????")) "??" "??" False;
+  big_A = mkA "tlq" ;
+  bike_N = mkN "b#?kl%t";
+  bird_N = mkN "w'f" feminine ;
+  black_A =  mkA "Tq&r" ;
+  bless_V = mkV3brk "???";
+  blue_A = mkA "?m!y!w#" ;
+  boat_N = mkN "j'lb!" feminine ;
+  book_N = mkN "m'Sh!f"  ;
+  boot_N = mkN "b/t#" ;
+  boss_N = mkN "!l'q!" ;
+  boy_N = mkN "lj" ;
+  bread_N = mkN "?b/" ;
+  break_V2 = mkV3gdl"???";
+  broad_A = mkA "?f#" ;
+  brother_N =  mkN "w'ndm";
+  brown_A = mkA "b&n#" ;
+  butter_N = mkN "qb%" ;
+  buy_V2 = mkV2bl "??";--buy_V2 = mkV2 (mkV "??????");
+  camera_N = mkN "k!m%r!" ;
+  cap_N = mkN "b!rn%T!" ;
+  car_N = mkN "m'k#n!" ;
+  carpet_N = mkN "mnT!f" ;
+  cat_N = mkN "?m't" feminine ;
+  ceiling_N = mkN "T!r!";
+  chair_N = mkN "w'nb'r" ;
+  cheese_N = mkN "!yb";
+  child_N = mkN "hS!n"  ;
+  church_N = mkN (mkN "b%t'") (mkN "kr?ty!n" feminine);
+  city_N = mkN "k't'm!" feminine ;
+  clean_A = mkA "nS&h" ;
+  clever_A = mkA "blh" ;  
+  close_V2 =  mkV2bl "??";--close_V2 =  mkV2 (compoundV "???" do_V2); 
+  coat_N = mkN "k/t" ;
+  cold_A = mkA "q'zq!z!" ;
+  come_V = mkV2bl "??" ;
+  computer_N = mkN "k/mp#wt'r" ;
+  country_N = mkN "h!g'r" feminine ;
+ -- cousin_N = mkN "y'!k?t" (mkN "lj"); --cousin_N = mkCmpdNoun "???" (mkN "???") ; -- a compund noun made of two nouns
+  cow_N = mkN "l!m" feminine ;
+  die_V = mkV2nr "??" ;
+  dirty_A = mkA "q/x!x!" ;
+  distance_N3 = mkN3 (mkN (mkN "y!l'w") (mkN "rq't")) (mkPrep "k'" "" True) (mkPrep "w'd'" "" True);
+  doctor_N = mkN "h!k#m" ;
+  dog_N = mkN "wx!" ;
+  door_N = mkN "b'r" ;
+  drink_V2 = mkV2bl "??";
+  --easy_A2V = mkA2V "q'l!l";
+  eat_V2 = mkV2bl "??";
+  empty_A = mkA "b!d/" ;
+  enemy_N = mkN "T'l!t" ;
+  factory_N = mkN "f!br#k!" ;
+  father_N2 = mkN2 (mkN "!b!t") (mkPrep "y'" "" True) ;
+  fear_VS = mkV2bl "??";
+  --find_V2 = mkV2 (mkV "????") ;
+  fish_N = mkN "!?" ;
+  floor_N = mkN "w'l'l" ;
+  forget_V2 = mkV2bl"??";--forget_V2 = mkV2 (mkV "??????")  ;
+  fridge_N = mkN "m!q'zq'Z!" ;
+  friend_N = mkN "g7d'N!";
+  fruit_N = mkN "fr!fr%" ;
+--  fun_AV = mkAV (regA "???") ;
+  garden_N = mkN "m!?" ;
+  girl_N = mkN "lj#t" feminine ;
+  glove_N = mkN "g&w!nt" ;
+  gold_N = mkN "w'rq" ;
+  good_A = mkA "Tr&" ;
+  --go_V = mkV "????" ;
+  green_A = mkA "!r'ng&Ad%" ;
+  harbour_N = mkN "w'd'b" ; --harbour_N = mkCmpdNoun "????" (mkN "???") ;
+  hate_V2 = mkV2bl "??";--hate_V2 = mkV2 (compoundV "????" do_V2) ;
+  hat_N = mkN "b!rn%T!" ;
+--  have_V2 = dirV2 (mk5V "????" "???" "???" "???" "??????") ;
+  hear_V2 = mkV2bl "??";--hear_V2 = mkV2 (mkV "????") ;
+  hill_N = mkN "!q'b't" ;
+  --hope_VS = (compoundV "????" do_V2); -- 
+  horse_N = mkN "f'r'?" ;
+  hot_A = mkA "tk&?" ;
+  house_N = mkN "b%t" ;
+  important_A = mkA "T'q!m#" ;
+  industry_N = mkN "#nd&?tr#" ;
+  iron_N = mkN "br't" ;
+  king_N = mkN "ng&?" ;
+  --know_V2 = mkV2 (mkV "?????") ;
+  --know_VS = mkV "?????";
+  lake_N = mkN "h!yq"  ;
+  lamp_N = mkN "k&r!z" ;
+  --learn_V2 = mkV3brk "???"; --learn_V2 = mkV2 (mkV "??????") ;
+  leather_N = mkN "q/d!" ;
+  leave_V2 = mkV3gdl "???";--leave_V2 = mkV2 (mkV "????") ;
+  like_V2 = mkV3gdl "???";--like_V2 = mkV2 (compoundV "????" do_V2);
+  --listen_V2 = mkV2 (mkV "????") ;
+  live_V = mkV2nr "??" ; ---- touch
+  long_A = mkA "r'jm" ;
+  lose_V2 = mkV2bl "??";--lose_V2 = mkV2 (compoundV "???" do_V2) ;
+  love_N = mkN "fqr" ;
+  --love_V2 = mkV2 (compoundV "????" do_V2) "??";
+  man_N = mkN "?w" ; -- not correct according to rules should be discussed
+  --married_A2 = mkA "?????????" "??" ;
+  meat_N = mkN "?g!" ;
+  milk_N = mkN "w't't" ;
+  moon_N = mkN "C'r'q!" feminine ;
+  mother_N = mkN "(n!t" feminine;   -- not covered need to be discussed
+  mountain_N = mkN "t'r!r!" ;
+  music_N = mkN "m&z#q!" feminine ;
+  narrow_A = mkA "T'b!b" ;
+  new_A = mkA "!d#?" ;
+  newspaper_N = mkN "g!z%T!" ;
+  oil_N = mkN "z'yt" ;
+  old_A = mkA "!r/g%" ;
+  open_V2 = mkV3gdl "???";--open_V2 = mkV2 (mkV "??????") ;
+  paint_V2A = mkV2bl "??";--paint_V2A = mkV2 (compoundV "???" do_V2) ;
+  paper_N = mkN "w'r'q't" ;
+  paris_PN = mkPN "p!r#?" Fem ;
+  peace_N = mkN "?l!m";
+  pen_N = mkN "b(r" ;
+  planet_N = mkN "pl!n%t" ;
+  plastic_N = mkN "pl!?t#k" ;
+  --play_V2 = mkV2 (mkV "??????") ;
+  policeman_N = mkN "p/l#?" ; 
+  priest_N = (mkN "q%?") ;
+--  probable_AS = mkAS (regA "????????") ;
+  queen_N = mkN "ng?t" feminine ;
+  radio_N = mkN "r!d#y/" ;
+  --rain_V0 = compoundV "????" (mkV "????" ) ;
+  --read_V2 = mkV2 (mkV "?????");
+  red_A = mkA "q'y" ;
+  religion_N = mkN "(mn't" ;
+  restaurant_N = mkN (mkN "mgb") (mkN "b%t");
+  river_N = mkN "w'nz";
+  rock_N = mkN "!l't" ;
+  roof_N = mkN "T!ry!";
+  rubber_N = mkN "g/m!" ;
+  run_V = mkV2nr "??" ; 
+  --say_V = mkV "";--say_VS = mkV "????" ;
+  school_N = mkN (mkN "tmhrt") (mkN "b%t") ; -- will 
+  science_N = mkN "?yn?" ;
+  sea_N = mkN "b!hr" ;
+  --seek_V2 = mkV2 (compoundV "????" do_V2) ;
+  --see_V2 = mkV2 (mkV "??????") ;
+  --sell_V3 = mkV3 (mkV "?????") "??" "";
+  send_V3 = mkV2yz "??";--send_V3 = mkV2yz "??";
+  sheep_N = mkN "b'g";
+  ship_N = mkN "m'rk'b" feminine ;
+  shirt_N = mkN "x'm#z";
+  shoe_N = mkN "C!m!" ;
+  shop_N = mkN "?q";
+  short_A = mkA "!Cr" ;
+  silver_N = mkN "br" ;
+  sister_N = mkN "(ht";
+  sleep_V = mkV2bl "??" ;
+  small_A = mkA "tnx" ;
+  snake_N = mkN "(b!b" ;
+  sock_N = mkN "k!l?"  ;
+  --speak_V2 = mkV2 (mkV "?????");
+  star_N = mkN "k/k'b" feminine ;
+  steel_N = mkN "br't" ;
+  stone_N = mkN "dng!y" ;
+  stove_N = mkN "mdj!" ;
+  student_N =mkN "t'm!r#" ;
+  stupid_A = mkA "b!l'g%" ;
+  sun_N = mkN "S'h!y" feminine ;
+  switch8off_V2 = mkV2bl "??" ;--switch8off_V2 = mkV2 (mkV "?????") ; -- ADRAGI
+  switch8on_V2 = mkV2bl "??";--switch8on_V2 = mkV2 (compoundV "???" do_V2) ; -- ADRAGI -- abra
+  table_N = mkN "T'r'P%z!";
+  --talk_V3 = mkV3 (mkV "?????") "??" "???????????";
+  teacher_N = mkN "!?t'm!r#" ;
+  --teach_V2 = mkV2 (mkV "?????") ;
+  television_N = mkN "t%l%v#Zn" ;
+  thick_A = mkA "w'fr!m" ;
+  thin_A = mkA "q'Cn" ;
+  train_N = mkN "b!b&r" ;
+  --travel_V = mkV "????" ;
+  tree_N = mkN "z!f";
+  ugly_A = mkA "f&ng!" ;
+  --understand_V2 = mkV2 (mkV "??????") ;
+  university_N = mkN "y&nv'r?t#" ;
+  village_N = mkN "m'nd'r" feminine ;
+  wait_V2 = mkV3mls "???"; --wait_V2 = mkV2 (compoundV "??????" do_V2) ;
+ 
+  --walk_V = mkV "????" ;
+  warm_A = mkA "m&q" ;
+  war_N = mkN "T/rn't" ;
+  --watch_V2 = mkV2 (mkV "??????") ;
+  water_N = mkN "wh!" feminine ; -- not covered masculine ending with y
+  white_A = mkA "n'C" ;
+  window_N = mkN "m'?k/t" ;
+  wine_N = mkN "w'yn"  ;
+  want_V = mkV3mls"???";
+  
+  --win_V2 = mkV2 (mkV "?????") ;
+  woman_N = mkN "?t" feminine;
+  --wonder_VQ = compoundV "?????" (mkV "????") ;
+  wood_N = mkN "(nC't" ;
+  write_V2 = mkV3gdl "???";--write_V2 = mkV2 (mkV "?????") ;
+  yellow_A = mkA "b#C!" ;
+  young_A = mkA "w'T!t" ;
+  --do_V2 = mkV2 (mkV "????")  ;
+  now_Adv = mkAdv "!h&n" ;
+  --already_Adv = mkAdv "?" ;
+  song_N = mkN "z'f'n" ;
+  add_V3 = mkV3mls "???";--add_V3 = mkV3 (compoundV "?????" do_V2) "" "" ;
+  number_N = mkN "q&Tr" ;
+  --put_V2 = mkV2 (mkV "?????") ;
+  stop_V = mkV2nr "??"  ; -- some times  A - qm  ( later)
+  jump_V = mkV3gdl "???" ;
+  --left_Ord = {s = "gr!" ; n = singular};
+  --right_Ord = {s= "q'N" ; n = singular};
+  far_Adv = mkAdv "r&q" ;
+  correct_A = mkA "tkkl" ;
+  dry_A = mkA "d'r'q" ;
+  dull_A = mkA "d&ld&m" ;
+  full_A = mkA "m&l&" ;
+  heavy_A = mkA "k'b!d" ;
+  near_A = mkA "qrb" ;
+  rotten_A = mkA "gm" ;
+  round_A = mkA "kb" ;
+  sharp_A = mkA "x&l" ;
+  smooth_A = mkA "l'?l!?" ;
+  straight_A = mkA "q'Tt!" ;
+  wet_A = mkA "rTb" ; ----
+  wide_A = mkA "?f#" ;
+  animal_N = mkN "(n??" ;
+  ashes_N = mkN "!m'd" ; 
+  back_N = mkN "j'rb!" ;
+  bark_N = mkN "qrf#" ;
+  belly_N = mkN "h/d" ;
+  blood_N = mkN "d'm" ;
+  bone_N = mkN "!Tnt" ;
+  breast_N = mkN "T&t" ;
+  cloud_N = mkN "d'm'n!" ;
+  day_N = mkN "q'n" ;
+  dust_N = mkN "!b&w!r!" ;
+  ear_N = mkN "j/r/" ;
+  earth_N = mkN "m'r%t" feminine ;
+  egg_N = mkN "(nq&l!l" ;
+  eye_N = mkN "!yn"  ;
+  fat_N = mkN "w'fr!m" ;
+  feather_N = mkN "l!b!" ;
+  fingernail_N = mkN "Tfr" ;
+  fire_N = mkN "(?t" ;
+  flower_N = mkN "!b'b!" ;
+  fog_N = mkN "Cg!g";
+  foot_N = mkN "(gr" ; -- not properly covered need to be discussed
+  forest_N = mkN "C!k!" ;
+  grass_N = mkN "?r"  ;
+  guts_N = mkN "" ; 
+  hair_N = mkN "S'g&r" ;
+  hand_N = mkN "(j" ;
+  head_N = mkN "Cnql!t" ;
+  heart_N = mkN "lb" ;
+  horn_N = mkN "q'nd" ;
+  husband_N = mkN "b!l" ;
+  ice_N = mkN "b'r'd/";
+  knee_N = mkN "g&lb't" ;
+  leaf_N = mkN "qT'l" ;
+  leg_N = mkN "(gr" ;
+  liver_N = mkN "g&b't" ;
+  louse_N = mkN "qm!l" feminine ;
+  mouth_N = mkN "!f" ;
+  name_N = mkN "?m" ;
+  neck_N = mkN "!ng't";
+  night_N = mkN "mxt";
+  nose_N = mkN "!fnC!" ;
+  person_N = mkN "?w" ;
+  rain_N = mkN "zn!b";
+  road_N = mkN "m'ng'd" ;
+  root_N = mkN "?r"  ;
+  rope_N = mkN "g'm'd" ;
+  salt_N = mkN "C'w"  ;
+  sand_N = mkN "!x'w!"  ;
+  seed_N = mkN "z'r"  ;
+  skin_N = mkN "q/d!"  ;
+  sky_N = mkN "?m!y" ;
+  smoke_N = mkN "C?"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN "b'r'd/";
+  stick_N = mkN "b'tr" ;
+  tail_N = mkN "Cr!" ;
+  tongue_N = mkN "ml!?";
+  tooth_N = mkN "Tr?";
+  wife_N = mkN "m#?t" feminine ;
+  wind_N = mkN "n'f!?" ;
+  wing_N = mkN "knf" ;
+  worm_N = mkN "tl" feminine;
+  year_N = mkN "!m't" ;
+  blow_V = mkV2bl "??" ;--blow_V3 = mkbela "??" ;
+  breathe_V = mkV4dbdb "????";--breathe_V = compoundV "????" (mkV "????" ) ;
+  --burn_V = mkV "????" ;
+ -- dig_V = mkV "???" ;
+  fall_V = mkV3gdl "???" ;
+  float_V = mkV3gdl "???" ; -- test!! WRONG
+  flow_V = mkV3gdl"???" ;
+  fly_V = mkV3gdl "???" ;
+  
+  freeze_V = mkV4dbdb "????";
+  give_V3 = mkV2sT "??";--give_V3 = mkV3 (mkV "????") "??" "";
+  laugh_V = mkV2yz "??" ;
+--  lie_N = mkN "????" masculine ;
+    lie_V = mkV2wN "??" ;
+  --play_V = mkV "??????" ;
+    sew_V = mkV2bl "??" ;
+    sing_V = mkV3mls"???" ;
+  --sit_V = mkV "??????" ;
+  --smell_V = mkV "??????" ;
+    spit_V = mkV2bl "??" ;
+  stand_V = mkV2nr "??";--stand_V = compoundV "????" (mkV "????" );
+    --swell_V = mkV "???" ;
+    swim_V = mkV2wN "??" ;
+  --think_V = mkV2sT "??" ;
+    turn_V = mkV3tTb "???";
+  --vomit_V = compoundV "????" (mkV "????") ;
+    bite_V2 = mkV3gdl "???";--bite_V2 = mkV2 (mkV "?????") ;
+  count_V2 = mkV3qTr"???";
+  cut_V2 = mkV3qTr"???";
+  fear_V2 = mkV2bl "??";--fear_V2 = mkV2 (mkV "????") ;
+  fight_V2 = mkV4dbdb "????";--fight_V2 = mkV2 (mkV "????") ;
+  hit_V2 = mkV2bl "??";--hit_V2 = mkV2 (compoundV "?????" (mkV "?????" ));
+  hold_V2 = mkV2yz "??";--hold_V2 = mkV2 (mkV "?????") ;
+  --hunt_V2 = mkV2 (compoundV "????" do_V2);
+  kill_V2 =  mkV3gdl "???";--kill_V2 =  mkV2 (compoundV "???" (mkV "?????" )) ;
+  pull_V2 = mkV2yz "??";--pull_V2 = mkV2 (mkV "??????");
+  push_V2 = mkV2bl "??";--push_V2 = mkV2 (mkV "???????") "??" ;
+  rub_V2 = mkV3gdl "???";--rub_V2 = mkV2 (mkV "?????") ;
+  scratch_V2 = mkV2yz "??";--scratch_V2 = mkV2 (mkV "??????") "??" ;
+  split_V2 = mkV3gdl "???";--split_V2 = mkV2 (mkV "?????") "??" ;
+    squeeze_V2 = mkV3gdl "???"; 
+  --squeeze_V2 = dirV2 (regV "???????") ;
+  stab_V2 = mkV2bl "??";--stab_V2 = dirV2 (regDuplV "????") ;
+  suck_V2 = mkV4dbdb "????";--suck_V2 = mkV2 (mkV "?????") ;
+  throw_V2 = mkV4dbdb "????";--throw_V2 = mkV2 (mkV "???????") ;
+  --tie_V2 = mkV2 (mkV "???????") ;
+  --wash_V2 = mkV2 (mkV "?????") ;
+  wipe_V2 = mkV3gdl "???";--wipe_V2 = mkV2 (compoundV "???" (mkV "????" ));
+
+  other_A = mkA "l%l!" ;
+
+  grammar_N = mkN "?w!?w" ;
+  language_N = mkN "?n?"  ;
+  rule_N = mkN "hg" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "y/h!n?" Masc ;
+    question_N = mkN "Ty!q%" ;
+    ready_A = mkA "zgj&" ;
+    reason_N = mkN "m?l%" ;
+    today_Adv = mkAdv "z!r%" ;
+    --uncertain_A = mkA "y!lt'r'g!g'T'";
+
+    ------------------------
+     
+    
+} 
diff --git a/lib/src/amharic/LexiconAmh.gf b/lib/src/amharic/LexiconAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/LexiconAmh.gf
@@ -0,0 +1,378 @@
+--# -path=.:prelude
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+
+concrete LexiconAmh of Lexicon = CatAmh ** open 
+
+  ParadigmsAmh, ResAmh, Prelude in { 
+
+ --
+ flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+
+  airplane_N = mkN "አውሮፕላን" ;
+  answer_V2 = mkV2 (mkV3mls"mls") (mkPrep "" "" True);--answer_V2S = mkV2  (compoundV "جواب" (mkV "دینا")) ;
+  apartment_N = mkN "አፓርታማ" ;
+  apple_N = mkN "በለስ" ;
+  art_N = mkN "ጥበብ" ;
+  ask_V2Q = mkV3mls "Tyq";--ask_V2Q = mkV2 (mkV "پوچھنا") ;
+  baby_N = mkN "ህጻን" ;
+  bad_A = mkA "መጥፎ" ;
+  bank_N = mkN "ባንክ" ;
+  beautiful_A = mkA "ቆንጆ" ;
+  become_VA = mkV2nr"hn";--become_VA = mkV "بننا";
+  beer_N = mkN "ቢራ" ;
+  beg_V2V =  mkV3mls "lmn";-- beg_V2V =  mkV2V (compoundV "التجا" (mkV "كرنا")) "سے" "كہ" False;
+  big_A = mkA "ትልቅ" ;
+  bike_N = mkN "ቢስክሌት";
+  bird_N = mkN "ወፍ" feminine ;
+  black_A =  mkA "ጥቁር" ;
+  bless_V = mkV3brk "brk";
+  blue_A = mkA "ሰማያዊ" ;
+  boat_N = mkN "ጀልባ" feminine ;
+  book_N = mkN "መጽሃፍ"  ;
+  boot_N = mkN "ቦቲ" ;
+  boss_N = mkN "አለቃ" ;
+  boy_N = mkN "ልጅ" ;
+  bread_N = mkN "ዻቦ" ;
+  break_V2 = mkV2 (mkV3gdl"sbr") (mkPrep "" "" True);
+  broad_A = mkA "ሰፊ" ;
+  brother_N =  mkN "ወንድም";
+  brown_A = mkA "ቡኒ" ;
+  butter_N = mkN "ቅቤ" ;
+  buy_V2 = mkV2 (mkV2bl "gz")(mkPrep "ከ" "" True);--buy_V2 = mkV2 (mkV "خریدنا");
+  camera_N = mkN "ካሜራ" ;
+  cap_N = mkN "ባርኔጣ" ;
+  car_N = mkN "መኪና" ;
+  carpet_N = mkN "ምንጣፍ" ;
+  cat_N = mkN "ዽመት" feminine ;
+  ceiling_N = mkN "ጣራ";
+  chair_N = mkN "ወንበር" ;
+  cheese_N = mkN "አይብ";
+  child_N = mkN "ህጻን"  ;
+  church_N = mkN (mkN "ቤተ") (mkN "ክርስትያን" feminine);
+  city_N = mkN "ከተማ" feminine ;
+  clean_A = mkA "ንጹህ" ;
+  clever_A = mkA "ብልህ" ;  
+  close_V2 = mkV2 (mkV2bl "zg") (mkPrep "" "" True);--close_V2 =  mkV2 (compoundV "بند" do_V2); 
+  coat_N = mkN "ኮት" ;
+  cold_A = mkA "ቀዝቃዛ" ;
+  come_V = mkV2bl "mT" ;
+  computer_N = mkN "ኮምፒውተር" ;
+  country_N = mkN "ሃገር" feminine ;
+  cousin_N = mkN( mkN "አክስት") (mkN "ልጅ"); --cousin_N = mkCmpdNoun "چچا" (mkN "زاد") ; -- a compund noun made of two nouns
+  cow_N = mkN "ላም" feminine ;
+  die_V = mkV2nr "mt" ;
+  dirty_A = mkA "ቆሻሻ" ;
+  -- distance_N3 = mkN3 (mkN (mkN "ያለው") (mkN "ርቀት")) (mkPrep "ከ" "" True) (mkPrep "ወደ" "" True);
+  doctor_N = mkN "ሃኪም" ;
+  dog_N = mkN "ውሻ" ;
+  door_N = mkN "በር" ;
+  drink_V2 = mkV2 (mkV2bl "TT") (mkPrep "" "" True);
+  -- easy_A2V = mkA "ቀላል";
+  eat_V2 = mkV2 (mkV2bl "bl" ) (mkPrep "" "" True);
+  empty_A = mkA "ባዶ" ;
+  enemy_N = mkN "ጠላት" ;
+  factory_N = mkN "ፋብሪካ" ;
+  father_N2 = mkN2 (mkN "አባት") (mkPrep "የ" "" True) ;
+  fear_VS = mkV2bl "fr";
+  find_V2 = mkV2( mkV3asr "'gN" ) (mkPrep "" "" True);
+  fish_N = mkN "አሳ" ;
+  floor_N = mkN "ወለል" ;
+   forget_V2 = mkV2 (mkV2bl"rs") (mkPrep "" "" True);--forget_V2 = mkV2 (mkV "بھولنا")  ;
+  fridge_N = mkN "ማቀዝቀዣ" ;
+  friend_N = mkN "ጓደኛ";
+  fruit_N = mkN "ፍራፍሬ" ;
+--  fun_AV = mkAV (regA "فuن") ;
+  garden_N = mkN "ማሳ" ;
+  girl_N = mkN "ልጃገረድ" feminine ;
+  glove_N = mkN "ጉዋንት" ;
+  gold_N = mkN "ወርቅ" ;
+  good_A = mkA "ጥሩ" ;
+  --go_V = mkV "جانا" ;
+  green_A = mkA "አረንጉኣዴ" ;
+  harbour_N = mkN "ወደብ" ; --harbour_N = mkCmpdNoun "بندر" (mkN "گاہ") ;
+  hate_V2 = mkV2 (mkV2bl "Tl") (mkPrep "" "" True);--hate_V2 = mkV2 (compoundV "نفرت" do_V2) ;
+  hat_N = mkN "ባርኔጣ" ;
+ -- have_V2 = mkV2 (mkV2sT "!l") (mkPrep "" "" True);
+   hear_V2 = mkV2 (mkV2bl "sm") (mkPrep "" "" True);--hear_V2 = mkV2 (mkV "سننا") ;
+  hill_N = mkN "አቀበት" ;
+  --hope_VS = (compoundV "امید" do_V2); -- 
+  horse_N = mkN "ፈረስ" ;
+  hot_A = mkA "ትኩስ" ;
+  house_N = mkN "ቤት" ;
+  important_A = mkA "ጠቃሚ" ;
+  industry_N = mkN "ኢንዱስትሪ" ;
+  iron_N = mkN "ብረት" ;
+  king_N = mkN "ንጉስ" ;
+  know_V2 = mkV2 (mkV3asr "wq") (mkPrep "" "" True);
+  --know_VS = mkV "جاننا";
+  lake_N = mkN "ሃይቅ"  ;
+  lamp_N = mkN "ኩራዝ" ;
+--learn_V2 = mkV2 (mkV3brk "tmr") (mkPrep "" "" True); --learn_V2 = mkV2 (mkV "سیكھنا") ;
+ leather_N = mkN "ቆዳ" ;
+   leave_V2 = mkV2 (mkV3gdl "lqq") (mkPrep "" "" True); --leave_V2 = mkV2 (mkV "جانا") ;
+  like_V2 = mkV2 (mkV3gdl "wdd" ) (mkPrep "" "" True);--like_V2 = mkV2 (compoundV "پسند" do_V2);
+  listen_V2 = mkV2 (mkV3brk "dmT") (mkPrep "" "" True);
+  live_V = mkV2nr "nr" ; ---- touch
+  long_A = mkA "ረጅም" ;
+  lose_V2 = mkV2 (mkV2bl "Tf" ) (mkPrep "" "" True);--lose_V2 = mkV2 (compoundV "كھو" do_V2) ;
+  love_N = mkN "ፍቅር" ;
+  love_V2 = mkV2 (mkV3gdl "wdd") (mkPrep "" "" True);
+  man_N = mkN "ሰው" ; -- not correct according to rules should be discussed
+  --married_A2 = mkA "شادی كرنا" "سے" ;
+  meat_N = mkN "ስጋ" ;
+  milk_N = mkN "ወተት" ;
+  moon_N = mkN "ጨረቃ" feminine ;
+  mother_N = mkN "እናት" feminine;   -- not covered need to be discussed
+  mountain_N = mkN "ተራራ" ;
+  music_N = mkN "ሙዚቃ" feminine ;
+  narrow_A = mkA "ጠባብ" ;
+  new_A = mkA "አዲስ" ;
+  newspaper_N = mkN "ጋዜጣ" ;
+  oil_N = mkN "ዘይት" ;
+  old_A = mkA "አሮጌ" ;
+  open_V2 = mkV2 (mkV3gdl "kft") (mkPrep "" "" True);--open_V2 = mkV2 (mkV "كھولنا") ;
+  paint_V2 = mkV2 (mkV2bl "qb") (mkPrep "" "" True);--paint_V2A = mkV2 (compoundV "رنگ" do_V2) ;
+  paper_N = mkN "ወረቀት" ;
+  paris_PN = mkPN "ፓሪስ" Fem ;
+  peace_N = mkN "ሰላም";
+  pen_N = mkN "ብእር" ;
+  planet_N = mkN "ፕላኔት" ;
+  plastic_N = mkN "ፕላስቲክ" ;
+  play_V2 = mkV2 (mkV4dbdb "Cwt") (mkPrep "" "" True);  ----
+  policeman_N = mkN "ፖሊስ" ; 
+  priest_N = (mkN "ቄስ") ;
+--  probable_AS = mkAS (regA "پرoبابلع") ;
+  queen_N = mkN "ንግስት" feminine ;
+  radio_N = mkN "ራዲዮ" ;
+  --rain_V0 = compoundV "بارش" (mkV "ہونا" ) ;
+  --read_V2 = mkV2 (mkV "پڑھنا");
+  red_A = mkA "ቀይ" ;
+  religion_N = mkN "እምነት" ;
+  restaurant_N = mkN (mkN "ምግብ") (mkN "ቤት");
+  river_N = mkN "ወንዝ";
+  rock_N = mkN "አለት" ;
+  roof_N = mkN "ጣርያ";
+  rubber_N = mkN "ጎማ" ;
+  run_V = mkV2nr "rT" ; 
+  say_VS = mkV2sT "'l";--say_VS = mkV "كہنا" ;
+  school_N = mkN (mkN "ትምህርት") (mkN "ቤት") ; -- will 
+  science_N = mkN "ሳይንስ" ;
+  sea_N = mkN "ባህር" ;
+  --seek_V2 = mkV2 () ;
+  see_V2 = mkV2 (mkV2sT "äy")(mkPrep "" "" True);
+  sell_V3 = mkV3 (mkV2sT "xT" ) (mkPrep "ለ" "" True)  (mkPrep "" "" True);
+  send_V3 = mkV3 (mkV2yz "lk" ) (mkPrep "ለ" "" True)  (mkPrep "" "" True);--send_V3 = mkV2yz "lk";
+  sheep_N = mkN "በግ";
+  ship_N = mkN "መርከብ" feminine ;
+  shirt_N = mkN "ሸሚዝ";
+  shoe_N = mkN "ጫማ" ;
+  shop_N = mkN "ሱቅ";
+  short_A = mkA "አጭር" ;
+  silver_N = mkN "ብር" ;
+  sister_N = mkN "እህት";
+  sleep_V = mkV2bl "tN" ;
+  small_A = mkA "ትንሽ" ;
+  snake_N = mkN "እባብ" ;
+  sock_N = mkN "ካልሲ"  ;
+  speak_V2 = mkV2 ( mkV3brk ("ngr"))(mkPrep "" "" True);
+  star_N = mkN "ኮከብ" feminine ;
+  steel_N = mkN "ብረት" ;
+  stone_N = mkN "ድንጋይ" ;
+  stove_N = mkN "ምድጃ" ;
+  student_N =mkN "ተማሪ" ;
+  stupid_A = mkA "ባለጌ" ;
+  sun_N = mkN "ጸሃይ" feminine ;
+  switch8off_V2 = mkV2 (mkV2bl "Tf" )(mkPrep "" "" True) ;--switch8off_V2 = mkV2 (mkV "چلانا") ; -- ADRAGI
+  switch8on_V2 = mkV2 (mkV2bl "br")(mkPrep "" "" True) ;--switch8on_V2 = mkV2 (compoundV "بند" do_V2) ; -- ADRAGI -- abra
+  table_N = mkN "ጠረጴዛ";
+  talk_V3 = mkV3 (mkV3asr "'wr" ) (mkPrep "ለ" "" True)  (mkPrep "" "" True);
+  teacher_N = mkN "አስተማሪ" ;
+  --teach_V2 = mkV2 (mkV "پڑھنا") ;
+  television_N = mkN "ቴሌቪዥን" ;
+  thick_A = mkA "ወፍራም" ;
+  thin_A = mkA "ቀጭን" ;
+  train_N = mkN "ባቡር" ;
+  --travel_V = mkV "gwz" ;
+  tree_N = mkN "ዛፍ";
+  ugly_A = mkA "ፉንጋ" ;
+  understand_V2 = mkV2 (mkV2bl"trd")(mkPrep "" "" True)  ;
+  university_N = mkN "ዩንቨርሲቲ" ;
+  village_N = mkN "መንደር" feminine ;
+   wait_V2 = mkV2 (mkV3mls "Tbq")(mkPrep "" "" True) ;--wait_V2 = mkV2 (compoundV "انتظار" do_V2) ;
+ 
+  walk_V = mkV3tTb "rmd" ;
+  warm_A = mkA "ሙቅ" ;
+  war_N = mkN "ጦርነት" ;
+  watch_V2 = mkV2 (mkV4dbdb ("mlkt"))(mkPrep "" "" True) ; 
+  water_N = mkN "ውሃ" feminine ; -- not covered masculine ending with y
+  white_A = mkA "ነጭ" ;
+  window_N = mkN "መስኮት" ;
+  wine_N = mkN "ወይን"  ;
+  want_V = mkV3mls"flg";
+  
+  --win_V2 = mkV2 (mkV "جیتنا") ;
+  woman_N = mkN "ሴት" feminine;
+  --wonder_VQ = compoundV "حعران" (mkV "ہونا") ;
+  wood_N = mkN "እንጨት" ;
+  write_V2 = mkV2 (mkV3gdl "ktb")(mkPrep "" "" True) ;--write_V2 = mkV2 (mkV "لكھنا") ;
+  yellow_A = mkA "ቢጫ" ;
+  young_A = mkA "ወጣት" ;
+  do_V2 = mkV2 (mkV2bl "sr")(mkPrep "" "" True)  ;
+  now_Adv = ss "አሁን" ;
+  --already_Adv = mkAdv "ی" ;
+  song_N = mkN "ዘፈን" ;
+  add_V3 = mkV3(mkV3mls "Cmr" ) (mkPrep "" "" True) (mkPrep "" "" True);--add_V3 = mkV3 (compoundV "اضافہ" do_V2) "" "" ;
+  number_N = mkN "ቁጥር" ;
+  --put_V2 = mkV2 (mkV "ڈالنا") ;
+  stop_V = mkV2nr "qm"  ; -- some times  A - qm  ( later)
+  jump_V = mkV3gdl "zll" ;
+  left_Ord = mkA"ግራ" ;
+  right_Ord =mkA"ቀኝ" ;
+  far_Adv = ss "ሩቅ" ;
+  correct_A = mkA "ትክክል" ;
+  dry_A = mkA "ደረቅ" ;
+  dull_A = mkA "ዱልዱም" ;
+  full_A = mkA "ሙሉ" ;
+  heavy_A = mkA "ከባድ" ;
+  near_A = mkA "ቅርብ" ;
+  rotten_A = mkA "ግም" ;
+  round_A = mkA "ክብ" ;
+  sharp_A = mkA "ሹል" ;
+  smooth_A = mkA "ለስላሳ" ;
+  straight_A = mkA "ቀጥታ" ;
+  wet_A = mkA "ርጥብ" ; ----
+  wide_A = mkA "ሰፊ" ;
+  animal_N = mkN "እንስሳ" ;
+  ashes_N = mkN "አመድ" ; 
+  back_N = mkN "ጀርባ" ;
+  bark_N = mkN "ቅርፊት" ;
+  belly_N = mkN "ሆድ" ;
+  blood_N = mkN "ደም" ;
+  bone_N = mkN "አጥንት" ;
+  breast_N = mkN "ጡት" ;
+  cloud_N = mkN "ደመና" ;
+  day_N = mkN "ቀን" ;
+  dust_N = mkN "አቡዋራ" ;
+  ear_N = mkN "ጆሮ" ;
+  earth_N = mkN "መሬት" feminine ;
+  egg_N = mkN "እንቁላል" ;
+  eye_N = mkN "አይን"  ;
+  fat_N = mkN "ወፍራም" ;
+  feather_N = mkN "ላባ" ;
+  fingernail_N = mkN "ጥፍር" ;
+  fire_N = mkN "እሳት" ;
+  flower_N = mkN "አበባ" ;
+  fog_N = mkN "ጭጋግ";
+  foot_N = mkN "እግር" ; -- not properly covered need to be discussed
+  forest_N = mkN "ጫካ" ;
+  grass_N = mkN "ሳር"  ;
+  guts_N = mkN "" ; 
+  hair_N = mkN "ጸጉር" ;
+  hand_N = mkN "እጅ" ;
+  head_N = mkN "ጭንቅላት" ;
+  heart_N = mkN "ልብ" ;
+  horn_N = mkN "ቀንድ" ;
+  husband_N = mkN "ባል" ;
+  ice_N = mkN "በረዶ";
+  knee_N = mkN "ጉልበት" ;
+  leaf_N = mkN "ቅጠል" ;
+  leg_N = mkN "እግር" ;
+  liver_N = mkN "ጉበት" ;
+  louse_N = mkN "ቅማል" feminine ;
+  mouth_N = mkN "አፍ" ;
+  name_N = mkN "ስም" ;
+  neck_N = mkN "አንገት";
+  night_N = mkN "ምሽት";
+  nose_N = mkN "አፍንጫ" ;
+  person_N = mkN "ሰው" ;
+  rain_N = mkN "ዝናብ";
+  road_N = mkN "መንገድ" ;
+  root_N = mkN "ስር"  ;
+  rope_N = mkN "ገመድ" ;
+  salt_N = mkN "ጨው"  ;
+  sand_N = mkN "አሸዋ"  ;
+  seed_N = mkN "ዘር"  ;
+  skin_N = mkN "ቆዳ"  ;
+  sky_N = mkN "ሰማይ" ;
+  smoke_N = mkN "ጭስ"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN "በረዶ";
+  stick_N = mkN "በትር" ;
+  tail_N = mkN "ጭራ" ;
+  tongue_N = mkN "ምላስ";
+  tooth_N = mkN "ጥርስ";
+  wife_N = mkN "ሚስት" feminine ;
+  wind_N = mkN "ነፋስ" ;
+  wing_N = mkN "ክንፍ" ;
+  worm_N = mkN "ትል" feminine;
+  year_N = mkN "አመት" ;
+  blow_V = mkV2bl "nf" ;--blow_V3 = mkbela "nf" ;
+  breathe_V = mkV4dbdb "tnfs";--breathe_V = compoundV "سانس" (mkV "لینا" ) ;
+  burn_V = mkV3brk "qTl" ;
+  dig_V = mkV3qTr "qfr" ;
+  fall_V = mkV3gdl "wdq" ;
+  float_V = mkV3gdl "kbr" ; -- test!! WRONG
+  flow_V = mkV3gdl"fss" ;
+  fly_V = mkV3gdl "brr" ;
+  
+  freeze_V = mkV4dbdb "qzqz";
+  give_V3 = mkV3 (mkV2sT "sT" ) (mkPrep "ለ" "" True)  (mkPrep "" "" True);--give_V3 = mkV3 (mkV "دینا") "كو" "";
+  laugh_V = mkV2yz "sq" ;
+   -- lie_N = mkN "ሃሰት"  ;
+    lie_V = mkV2wN "wx" ;
+  play_V = mkV3brk "Cwt" ;
+    sew_V = mkV2bl "sf" ;
+    sing_V = mkV3mls"zmr" ;
+  sit_V = mkV3gdl "qmT" ;
+  smell_V = mkV3gdl "xtt" ;
+    spit_V = mkV2bl "tf" ;
+  stand_V = mkV2nr "qm";--stand_V = compoundV "كھڑے" (mkV "ہونا" );
+    --swell_V = mkV "äbT" ;
+    swim_V = mkV2wN "wN" ;
+  think_V = mkV3asr "'sb" ;
+    turn_V = mkV3tTb "tTf";
+  --vomit_V = compoundV "التی" (mkV "كرنا") ;
+    bite_V2 = mkV2 (mkV3gdl "nks") (mkPrep "" "" True);--bite_V2 = mkV2 (mkV "كاتنا") ;
+  count_V2 = mkV2 (mkV3qTr"qTr") (mkPrep "" "" True);
+  cut_V2 = mkV2 (mkV3qTr"qrT") (mkPrep "" "" True);
+  fear_V2 = mkV2 (mkV2bl "fr") (mkPrep "" "" True);--fear_V2 = mkV2 (mkV "ڈرنا") ;
+  fight_V2 = mkV2 (mkV4dbdb "dbdb") (mkPrep "" "" True);--fight_V2 = mkV2 (mkV "لڑنا") ;
+  hit_V2 = mkV2 (mkV2sT "gC") (mkPrep "" "" True);--hit_V2 = mkV2 (compoundV "تھوكر" (mkV "مارنا" ));
+  hold_V2 = mkV2 (mkV2yz "yz") (mkPrep "" "" True);--hold_V2 = mkV2 (mkV "پكڑنا") ;
+  hunt_V2 = mkV2 (mkV3asr  "'dn" )(mkPrep "" "" True);
+  kill_V2 =  mkV2 (mkV3gdl "gdl") (mkPrep "" "" True);--kill_V2 =  mkV2 (compoundV "مار" (mkV "ڈالنا" )) ;
+  pull_V2 = mkV2 (mkV2yz "sb") (mkPrep "" "" True);--pull_V2 = mkV2 (mkV "كھنچنا");
+  push_V2 = mkV2 (mkV2bl "gf") (mkPrep "" "" True);--push_V2 = mkV2 (mkV "دھكیلنا") "كو" ;
+  rub_V2 = mkV2 (mkV3gdl "Trg") (mkPrep "" "" True);--rub_V2 = mkV2 (mkV "رگڑنا") ;
+  scratch_V2 = mkV2 (mkV2yz "fq") (mkPrep "" "" True);--scratch_V2 = mkV2 (mkV "كھرچنا") "كو" ;
+  split_V2 = mkV2 (mkV3gdl "kfl") (mkPrep "" "" True);--split_V2 = mkV2 (mkV "بانتا") "كو" ;
+    squeeze_V2 = mkV2 (mkV3gdl "Cmq") (mkPrep "" "" True); 
+
+  stab_V2 = mkV2 (mkV2bl "wg") (mkPrep "" "" True);--stab_V2 = dirV2 (regDuplV "ستاب") ;
+  suck_V2 = mkV2 (mkV4dbdb "mgmg") (mkPrep "" "" True);--suck_V2 = mkV2 (mkV "چوسنا") ;
+  throw_V2 = mkV2 (mkV4dbdb "wrwr") (mkPrep "" "" True);--throw_V2 = mkV2 (mkV "پھینكنا") ;
+  tie_V2 = mkV2 (mkV3asr "'sr")(mkPrep "" "" True);
+  wash_V2 = mkV2 (mkV3asr "'Tb")(mkPrep "" "" True);
+  wipe_V2 = mkV2 (mkV3gdl "Trg") (mkPrep "" "" True);--wipe_V2 = mkV2 (compoundV "صاف" (mkV "كرنا" ));
+
+  other_A = mkA "ሌላ" ;
+
+  grammar_N = mkN "ስዋሰው" ;
+  language_N = mkN "ቋንቋ"  ;
+  rule_N = mkN "ህግ" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "ዮሃንስ" Masc ;
+    question_N = mkN "ጥያቄ" ;
+    ready_A = mkA "ዝግጁ" ;
+    reason_N = mkN "ምክንያት" ;
+    today_Adv = ss "ዛሬ" ;
+    --uncertain_A = mkA "ያልተረጋገጠ";
+
+   
+    
+} 
diff --git a/lib/src/amharic/LexiconMlt.gf b/lib/src/amharic/LexiconMlt.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/LexiconMlt.gf
@@ -0,0 +1,57 @@
+--# -path=alltenses
+
+concrete LexiconMlt of Lexicon = open ResMlt, Prelude in {
+ 
+--CatMlt **
+--open ParadigmsMlt, ResMlt, Prelude in { 
+
+	flags optimize=values ; coding=utf8 ;
+	
+	lin
+		{- ===== VERBS ===== -}
+		
+	--	cut_V2 = mkVerb "qata'" "aqta'" "aqtgħu" ;
+	--	write_V2 = mkVerb "kiteb" ;
+	--	break_V2 = mkVerb "kiser" ;
+--		find_V2 = mkVerb "ħareġ" ;
+	--	throw_V2 = mkVerb "tefa'" ;
+	--	hear_V2 = mkVerb "sama'" "isma'" "isimgħu" ;
+	--	fear_V2 = mkVerb "beża'" ;
+--		fear_V2 = mkVerb "ħareġ" ;
+--		pray_V = mkVerb "talab" "itlob" "itolbu"
+	--	understand_V2 = mkVerb "fehem" ;
+	--	pull_V2 = mkVerb "ġibed" ;
+		--walk_V = mkVerb "mexa'" ;
+		
+		die_V = mkVerb "qarmeċ" ;
+		
+		
+		{- ===== NOUNS ===== -}
+		
+		airplane_N = mkNoun "ajruplan" Masc ;
+		apple_N = mkNoun "tuffieħa" Fem ;
+  
+--	oper
+		-- Define different possible patterns
+		{-
+		pattern_AA : Pattern = { v1 = "a" ; v2 = "a" } ; -- eg QASAM
+		pattern_AE : Pattern = { v1 = "a" ; v2 = "e" } ; -- eg QABEŻ
+		pattern_EE : Pattern = { v1 = "e" ; v2 = "e" } ; -- eg QERED
+		pattern_EA : Pattern = { v1 = "e" ; v2 = "a" } ; -- eg SERAQ
+		pattern_IE : Pattern = { v1 = "i" ; v2 = "e" } ; -- eg KITEB
+		pattern_OO : Pattern = { v1 = "o" ; v2 = "o" } ; -- eg QOROB
+		pattern_OA : Pattern = { v1 = "o" ; v2 = "o" } ; -- GĦOLA, GĦOXA, ĦOLA (only!)
+		-}
+		
+		--Define some roots
+		{-
+		root_HTF : Root = { K = "ħ" ; T = "t" ; B = "f" ; L=[] } ; -- pattern: AA
+		root_HRG : Root = { K = "ħ" ; T = "r" ; B = "ġ" ; L=[] } ; -- pattern: AE
+		root_QRD : Root = { K = "q" ; T = "r" ; B = "d" ; L=[] } ; -- pattern: EE
+		root_SRQ : Root = { K = "s" ; T = "r" ; B = "q" ; L=[] } ; -- pattern: EA
+		root_KTB : Root = { K = "k" ; T = "t" ; B = "b" ; L=[] } ; -- pattern: IE
+		root_QRB : Root = { K = "q" ; T = "r" ; B = "b" ; L=[] } ; -- pattern: oo
+		root_GMGM : Root = { K = "g" ; T = "m" ; B = "g" ; L = "m" } ;
+		root_MQDR : Root = { K = "m" ; T = "q" ; B = "d" ; L = "r" } ;
+		-}
+} ;
diff --git a/lib/src/amharic/MorphoAmh.gf b/lib/src/amharic/MorphoAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/MorphoAmh.gf
@@ -0,0 +1,81 @@
+resource MorphoAmh = open Prelude,Predef in {
+
+flags optimize = all ;--noexpand;  
+	coding=utf8 ;
+oper 
+-------------------------------------------------------------- Helps to regulate the use of endings for both nouns and adjectives: changes---------------------------------------------------------------
+                                              {--("ል"|"ሕ"|"ም"|"ሥ"|"ር"|"ስ"|"ሽ"|"ቅ"|"ብ"|"ቭ"|"ት"|"ች"|"ን"|"ኝ"|"እ"|"ክ"|"ው"|"ዝ"|"ዥ"|"ይ"|"ድ"|"ጅ"|"ግ"|"ጥ"|"ጭ"|"ጵ"|"ጽ"|"ፍ"|"ፕ") --}
+-- Number
+		replaceLastLet6_7 :  Str -> Str = \c -> 
+		let y = last (c) in
+	 		case c of {     "ህ" =>  "ሆች"  ;  
+                                                  "ል" =>  "ሎች"  ;     
+					"ሕ" =>  "ሖች"  ;     
+					"ም" =>  "ሞች" ;  
+					"ሥ" =>  "ሦች"  ;
+					"ር" =>  "ሮች"  ; 
+					"ስ" =>  "ሶች"  ;
+					"ሽ" => "ሾች"  ; 
+					"ቅ" =>  "ቆች"  ;  
+					"ብ" =>  "ቦች"  ; 
+					"ቭ" =>  "ቮች"  ;  
+					"ት" =>  "ቶች"  ;  
+					"ች" =>  "ቾች"  ;  
+					"ን" =>  "ኖች"  ;  
+					"ኝ" =>  "ኞች"  ;
+					"እ" =>  "ኦች"  ;   
+					"ክ" =>  "ኮች"  ; 
+					"ው" =>  "ዎች"  ; 
+					"ዝ" =>  "ዞች"  ; 
+					"ዥ" =>  "ዦች"  ;  
+					"ይ" =>  "ዮች"  ;   
+					"ድ" =>  "ዶች"  ;  
+					"ጅ" =>  "ጆች"  ;   
+					"ግ" =>  "ጎች"  ; 
+					"ጥ" =>  "ጦች"  ;    
+					"ጭ" =>  "ጮች"  ;  
+					"ጵ" =>  "ጶች"  ;    
+					"ጽ" =>  "ጾች"  ; 
+					"ፍ" =>  "ፎች"  ;
+					"ፕ" =>  "ፖች"  ;
+					_ => y+"ዎች"
+					} ;
+
+
+-- Species / Masculine
+
+		replaceLastLet6_2_M :  Str -> Str = \c -> 
+		let y = last (c) in
+					 case y of {   "ህ" =>  "ሁ"  ;       "ል" =>  "ሉ"  ;      "ሕ" =>  "ሁ"  ;      "ም" =>  "ሙ" ;      "ሥ" =>  "ሱ"  ;      "ር" =>  "ሩ"  ;      "ስ" =>  			"ሱ"  ;      "ሽ" =>  "ሹ"  ;
+      		"ቅ" =>  "ቁ"  ;      "ብ" =>  "ቡ"  ;      "ቭ" =>  "ቩ"  ;      "ት" =>  "ቱ"  ;      "ች" =>  "ቹ"  ;      "ን" =>  "ኑ"  ;      "ኝ" =>  "ኙ"  ;      "እ" =>  "ኡ"  ;      "ክ" =>  "ኩ"  ;
+      		"ው" =>  "ዉ"  ;      "ዝ" =>  "ዙ"  ;      "ዥ" =>  "ዡ"  ;      "ይ" =>  "ዩ"  ;      "ድ" =>  "ዱ"  ;      "ጅ" =>  "ጁ"  ;      "ግ" =>  "ጉ"  ;      "ጥ" =>  "ጡ"  ;      "ጭ" =>  "ጩ"  ;
+      		"ጵ" =>  "ጱ"  ;      "ጽ" =>  "ጹ"  ;      "ፍ" =>  "ፉ"  ;      "ፕ" =>  "ፑ"  ; _ => y+"ዉ"} ;
+
+-- Species / Feminine
+
+		replaceLastLet6_2_F:  Str -> Str = \c -> 
+		let y = last (c) in
+	 	case c of {   "ህ" =>  "ኋ"  ;       "ል" =>  "ሏ"  ;      "ሕ" =>  "ኋ"  ;      "ም" =>  "ሟ" ;      "ሥ" =>  "ሷ"  ;      "ር" =>  "ሯ"  ;      "ስ" =>  "ሷ"  ;      "ሽ" =>  "ሿ"  ;
+      		"ቅ" =>  "ቋ"  ;      "ብ" =>  "ቧ"  ;      "ቭ" =>  "ቯ"  ;      "ት" =>  "ቷ"  ;      "ች" =>  "ቿ"  ;      "ን" =>  "ኗ"  ;      "ኝ" =>  "ኟ"   ;      "ክ" =>  "ኳ"  ;
+ 		"ዝ" =>  "ዟ"  ;      "ዥ" =>  "ዧ"  ;      "ድ" =>  "ዷ"  ;      "ጅ" =>  "ጇ"  ;      "ግ" =>  "ጓ"  ;      "ጥ" =>  "ጧ"  ;      "ጭ" =>  "ጩ"  ;
+      		"ጵ" =>  "ጷ"  ;      "ጽ" =>  "ጿ"  ;      "ፍ" =>  "ፏ"  ;      "ፕ" =>  "ፗ"  ; _ => y+"ዋ" 
+			
+			} ;
+
+             -- pallatalization 
+
+                pallatalize :  Str -> Str = \c-> 
+         		case c of { 
+			"d" => "j";
+			"t" => "c";
+			"T" => "C";
+			"n" => "N";
+			"l" => "y";
+			"s" => "x";
+			"z" => "Z";
+			"S" => "C";
+			 _  => c  
+			  } ;
+
+ 		 
+}
diff --git a/lib/src/amharic/NounAmh.gf b/lib/src/amharic/NounAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/NounAmh.gf
@@ -0,0 +1,201 @@
+--# -path=.:../Romance:../common:../abstract:../common:prelude
+
+concrete NounAmh of Noun = CatAmh ** open ResAmh,ParamX, Prelude in {
+
+flags optimize=noexpand ; 
+flags coding = utf8;
+
+
+lin
+
+	DetCN det cn = 
+          
+	{
+	s = \\ c => case c of 
+		{
+	   Acc =>	det.s ! cn.g ! Nom ++ cn.s ! det.n! det.d ! c ; 
+	   _   =>	det.s ! cn.g ! c ++ cn.s ! det.n! det.d ! Nom
+		};
+	a = {png = Per3 det.n cn.g; isPron = False} 
+         
+	};  
+
+	--
+	UsePN pn = { 
+	s = pn.s; 
+	a = {png=Per3 Sg pn.g; isPron = False} 
+        
+	};
+	--  
+	UsePron p = p ;
+
+	--  
+	PredetNP pred np = {
+	s = \\c => case pred.isDecl of {
+	True => pred.s! c ++ np.s ! Nom ; -- amzaNaw temari, yeabzaNaw temari , lebzaNaw temari
+	False => np.s ! c ++ pred.s!c
+	};
+	a = np.a
+	} ;
+
+-- FIX NEEDED! consider the case for number and gender later !!! --- arabic book table --- to solve affices
+
+--Compound Participle : is formed  by prefixing the relative pronoun yete : to the forms of the 				perfect mood -- there are three ways of building the participle in Amh
+
+	PPartNP np v2 = 
+	     
+
+	{
+	s = \\c =>  "y'"++ (v2.s ! Perf!Pas! np.a.png) ++ np.s ! c;
+
+	a = np.a   
+	} ;
+
+
+        DetNP det = {
+    
+        s = \\_ => det.s!Masc!Nom;
+        a =  { png = Per3 det.n Masc ; isPron = False}
+
+        };
+
+
+	AdvNP np adv = {
+	s = \\c => np.s ! c ++ adv.s;
+	a = np.a
+	};
+
+	DetQuantOrd quant num ord = {
+
+	  s = \\g,c=> quant.s!num.n!g!c ++ num.s!quant.d!Nom ++ ord.s!g!num.n!quant.d!Nom;
+	  d = Indef;
+	  n = num.n;
+	  isNum = True;
+	  isPron = quant.isPron
+
+	} ;
+
+	DetQuant quant num = {
+
+	s = \\g,c =>quant.s!num.n!g!c ++ num.s!quant.d!c ;
+	d = quant.d;
+	n = num.n;
+	isNum = True;
+	isPron = quant.isPron
+
+	} ;
+
+	PossPron p = {
+	s = \\_,_,_ => p.s ! Gen; 
+	d = Indef;
+	isNum = False;
+	isPron = True } ;
+        
+	NumCard n = {s = \\s,c => n.s!Masc!Sg!s!c ; n = Pl; hasCard = True} ;
+
+	NumDigits n = {s = n.s ! NCard } ;
+	
+	NumNumeral numeral = {s = numeral.s ! NCard} ;
+
+	OrdDigits n = {s = n.s ! NOrd} ;
+
+
+	OrdNumeral numeral = {s = numeral.s ! NOrd} ;
+     
+
+        NumSg = {s = \\s,c => []; n = Sg ; hasCard = False} ;
+   
+        NumPl = {s = \\s,c => []; n = Pl ; hasCard = False} ;
+
+
+	--  AdNum adn num = {
+	--    s = \\g,d,c => adn.s ++ num.s ! g ! d ! c ;
+	--    n = num.n } ;
+	--  
+
+	 OrdSuperl a = {
+			s = \\g,n,s,c =>  a.s!g!n!s!c ;
+		
+			};
+
+
+ 
+	DefArt = {
+	s = \\_,_,_ => []; 
+	d = Def ;
+	isNum,isPron = False
+	} ;
+
+
+
+	IndefArt = {
+	s = \\n,g,_ => case <n,g> of {
+        <Sg,Masc> =>"አንድ" ++ [];
+	<Sg,Fem>  =>"አንዲት" ++ [];
+        <Pl,_> => [] };
+ 	d = Indef ;
+	isNum,isPron = False
+	} ;
+
+
+	MassNP cn = 
+	{s = \\_=> cn.s ! Sg ! Indef!Nom ;
+ 
+	a =  { png = Per3 Sg cn.g; isPron = False } };  
+
+
+	UseN n = n ; 
+
+	--UseN n = n ** {adj = \\_,_,_ => []};
+
+
+	ComplN2 f x = {s = \\n,s,c => f.c2++ x.s ! c ++ f.s ! n !Indef! Nom ; 
+		   g = f.g } ;
+
+	ComplN3 f x = {s = \\n,s,c =>  f.c2 ++ x.s ! c ++ f.s ! n !Indef! Nom ;g = f.g; c2 = f.c3} ; 
+
+--<Sg> => f.c2 ++ x.s ! c++"ያለው" ++ f.s ! n !Indef! Nom ;
+--<Pl> => f.c2 ++ x.s ! c ++"ያሉት"++ f.s ! n !Indef! Nom  };
+--                       g = f.g; c2 = f.c3;
+
+        UseN2 n = n ;
+
+        UseN3 n = n ;
+
+  	Use2N3 f = {
+		      s = \\n,s,c => f.s ! n !Indef! Nom ;
+		      g = f.g ;
+		      c2 = f.c2
+		   } ;
+
+   	Use3N3 f = {
+		      s = \\n,s,c => f.s ! n !Indef! Nom ;
+		      g = f.g ;
+		      c2 = f.c3
+		   } ;
+        --TO DO!!
+	AdjCN ap cn = {
+	s = \\n,s,c => 
+		case c of
+		{
+		Acc => ap.s ! cn.g !n ! s !Nom++ cn.s ! n! Indef ! c  ;
+		_   => ap.s ! cn.g !n ! s !c  ++ cn.s ! n! Indef ! Nom
+		};
+
+	g = cn.g
+	} ;
+
+
+	--  --    RelCN cn rs = {s = \\n,c => cn.s ! n ! c ++ rs.s ! {n = n ; p = P3}} ;
+
+	AdvCN cn ad = {s = \\n,s,c => ad.s ++ cn.s ! n ! Indef ! c ;
+                       g = cn.g} ;
+	--  --
+	--  --    SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s} ;
+
+
+	ApposCN cn np = {s = \\n,s,c => cn.s ! n !Indef! Nom ++ np.s ! c ; 
+                         g = cn.g} ;
+
+
+	} 
diff --git a/lib/src/amharic/NumeralAmh.gf b/lib/src/amharic/NumeralAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/NumeralAmh.gf
@@ -0,0 +1,121 @@
+
+concrete NumeralAmh of Numeral = CatAmh ** open ResAmh,ParamX in {
+flags coding = UTF8;
+lincat 
+
+
+  Digit =      {s : DForm => CardOrd => Gender=>Number=>Species=>Case=> Str} ;
+  Sub10 =      {s : DForm => CardOrd =>Gender=>Number=>Species=>Case=> Str } ;
+  Sub100     = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ;
+  Sub1000    = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ;
+  Sub1000000 = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ;
+
+
+
+lin num x = x ;
+lin n2 = mkNum "ሁለት"  "ሃያ" "ሁለተኛ" ;
+lin n3 = mkNum "ሶስት"  "ሰላሳ" "ሶስተኛ";
+lin n4 = mkNum "አራት"  "አርባ" "አራተኛ";
+lin n5 = mkNum "አምስት"  "ሃምሳ" "አምስተኛ";
+lin n6 = mkNum "ስድስት"  "ስድሳ" "ስድስተኛ";
+lin n7 = mkNum "ሰባት"  "ሰባ" "ሰባተኛ";
+lin n8 = mkNum "ስምንት" "ሰማንያ" "ስምንተኛ";
+lin n9 = mkNum "ዘጠኝ"  "ዘጠና" "ዘጠነኛ";
+
+lin pot01 = mkNum "አንድ" "አስር" "አንደኛ"  ;
+lin pot0 d = d  ;
+lin pot110 = regCardOrd "አስር"  ;
+lin pot111 = regCardOrd "አስራንድ" ;
+lin pot1to19 d = {s = \\o,g,n,s,c =>case c of {
+                Gen => ("የአስራ"++ d.s ! unit ! o!g!n! s!c);
+		Dat => ("ለአስራ"++ d.s ! unit ! o!g!n! s!c) ; 
+		 _   => ( "አስራ"++ d.s ! unit ! o!g!n!s!c) }    } ;
+lin pot0as1 n = {s = n.s ! unit};
+lin pot1 d = {s = d.s ! ten} ;
+lin pot1plus d e = {
+   s = \\o,g,n,s,c => case c of { 
+
+ Gen|Dat => d.s ! ten ! NCard !Masc!Sg!Indef! c ++ e.s ! unit ! o!g!n!s! Nom ;
+       _ =>d.s ! ten ! NCard !Masc!Sg!Indef! Nom ++ e.s ! unit ! o!g!n!s! c 
+        }} ;
+lin pot1as2 n = n ;
+lin pot2 d = {s = \\o,g,n,s,c => case c of {
+	Gen|Dat =>  d.s ! unit ! NCard !Masc!Sg!Indef! c ++ mkCard o "መቶ" !g!n! s!Nom;
+	 _      =>  d.s ! unit ! NCard !Masc!Sg! Indef! Nom ++ mkCard o "መቶ" !g!n!s!c}}  ;
+
+
+lin pot2plus d e = { s = \\o,g,n,s,c => case c of    { 
+                                  Gen|Dat =>  d.s ! unit ! NCard !Masc!Sg!Indef! c ++ "መቶ" ++ e.s ! o!g!n!s! Nom  ;
+                                   _      =>  d.s ! unit ! NCard!Masc!Sg! Indef! Nom ++ "መቶ" ++ e.s ! o!g!n!s! c  
+                    }} ;
+lin pot2as3 n = n ;
+lin pot3 n = {
+  s = \\o,g,n2,s,c => case c of { 
+         Gen|Dat => n.s ! NCard !Masc!Sg! Indef! c ++ mkCard o  "ሺህ" !g!n2! s!Nom ;
+          _      => n.s ! NCard !Masc!Sg! Indef! Nom ++ mkCard o "ሺህ" !g!n2 ! s!c}} ;
+
+lin pot3plus n m = {
+  s = \\o,g,n2,s,c => case c of {
+	Gen|Dat => n.s ! NCard !Masc!Sg! Indef!c ++ "ሺህ" ++ m.s ! o!g!n2!s! Nom;
+               _=> n.s ! NCard !Masc!Sg! Indef! Nom ++ "ሺህ" ++ m.s ! o!g!n2!s! c}}; 
+
+
+
+
+
+--numerals as sequences of digits
+
+  lincat
+ 
+    Dig = TDigit ;
+
+  lin
+    IDig d = d ** {tail = T1} ;
+
+    IIDig d i = {
+      s = \\o,g,n,s,c => case c of {
+            Gen|Dat => d.s ! NCard !Masc!Sg!Indef!c ++ commaIf i.tail ++ i.s ! o!g!n!s! Nom ;
+         _       => d.s ! NCard !Masc!Sg!Indef! Nom ++ commaIf i.tail ++ i.s ! o!g!n!s! c       };
+
+      tail = inc i.tail
+    } ;
+
+    D_0 = mk3Dig "0" "0ኛ" ;
+    D_1 = mk3Dig "1" "1ኛ"  ;
+    D_2 = mkDig "2";
+    D_3 = mkDig "3";
+    D_4 = mkDig "4" ;
+    D_5 = mkDig "5" ;
+    D_6 = mkDig "6" ;
+    D_7 = mkDig "7" ;
+    D_8 = mkDig "8" ;
+    D_9 = mk2Dig "9" "9ኛ";
+
+  oper
+    commaIf : DTail -> Str = \t -> case t of {
+      T3 => "," ;
+      _ => []
+      } ;
+
+    inc : DTail -> DTail = \t -> case t of {
+      T1 => T2 ;
+      T2 => T3 ;
+      T3 => T1
+      } ;
+------------------ :) what a releif 
+
+    mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o  ;
+    mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ተኛ") ;
+    mk3Dig : Str -> Str -> TDigit = \c,o -> {
+      s = table {NCard => adjaffix c ; NOrd => adjaffix o}
+      } ;
+
+    TDigit = {        
+         s :  CardOrd => Gender=>Number=>Species=>Case=> Str	   
+    	     } ;
+
+
+-- የማትረሳዋ ምሽት -  ተመስገን አምላኬ! 
+
+}
+
diff --git a/lib/src/amharic/Numerals.gf b/lib/src/amharic/Numerals.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/Numerals.gf
@@ -0,0 +1,35 @@
+abstract Numerals = {
+
+-- numerals from 1 to 999999 in decimal notation
+
+flags startcat=Numeral ;
+
+cat 
+  Numeral ;     -- 0..
+  Digit ;       -- 2..9
+  Sub10 ;       -- 1..9
+  Sub100 ;      -- 1..99
+  Sub1000 ;     -- 1..999
+  Sub1000000 ;  -- 1..999999
+
+fun 
+  num : Sub1000000 -> Numeral ;
+
+  n2, n3, n4, n5, n6, n7, n8, n9 : Digit ;
+
+  pot01 : Sub10 ;                               -- 1
+  pot0 : Digit -> Sub10 ;                       -- d * 1
+  pot110 : Sub100 ;                             -- 10
+  pot111 : Sub100 ;                             -- 11
+  pot1to19 : Digit -> Sub100 ;                  -- 10 + d
+  pot0as1 : Sub10 -> Sub100 ;                   -- coercion of 1..9
+  pot1 : Digit -> Sub100 ;                      -- d * 10
+  pot1plus : Digit -> Sub10 -> Sub100 ;         -- d * 10 + n
+  pot1as2 : Sub100 -> Sub1000 ;                 -- coercion of 1..99
+  pot2 : Sub10 -> Sub1000 ;                     -- m * 100
+  pot2plus : Sub10 -> Sub100 -> Sub1000 ;       -- m * 100 + n
+  pot2as3 : Sub1000 -> Sub1000000 ;             -- coercion of 1..999
+  pot3 : Sub1000 -> Sub1000000 ;                -- m * 1000
+  pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
+
+}
diff --git a/lib/src/amharic/OrthoAmh.gf b/lib/src/amharic/OrthoAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/OrthoAmh.gf
@@ -0,0 +1,7 @@
+resource OrthoAmh = open Prelude, Predef in {
+
+flags coding=utf8 ;
+
+
+    
+}
diff --git a/lib/src/amharic/ParadigmsAmh.gf b/lib/src/amharic/ParadigmsAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/ParadigmsAmh.gf
@@ -0,0 +1,2408 @@
+--# -path=.:../abstract:../../prelude:../common
+--
+----1 Amharic Lexical Paradigms
+----
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+----
+---- This is an API to the user of the resource grammar 
+---- for adding lexical items. It gives functions for forming
+---- expressions of open categories: nouns, adjectives, verbs.
+---- 
+---- Closed categories (determiners, pronouns, conjunctions) are
+---- accessed through the resource syntax API, $Structural.gf$. 
+----
+---- The main difference with $MorphoAmh.gf$ is that the types
+---- referred to are compiled resource grammar types. We have moreover
+---- had the design principle of always having existing forms, rather
+---- than stems, as string arguments of the paradigms.
+----
+---- The structure of functions for each word class $C$ is the following:
+---- first we give a handful of patterns that aim to cover all
+---- regular cases. Then we give a worst-case function $mkC$, which serves as an
+---- escape to construct the most irregular words of type $C$.
+---- 
+---- The following modules are presupposed:
+--
+resource ParadigmsAmh = open 
+  Predef, 
+  Prelude, 
+  MorphoAmh,
+  ParamX,
+  OrthoAmh,ResAmh,
+  CatAmh
+  in {
+
+   flags coding = utf8;
+
+
+oper
+  
+   masculine : Gender ;
+   feminine : Gender ;
+   masculine = Masc ; 
+   feminine = Fem ; 
+
+	mkN = overload {
+    			mkN : Str-> N 
+                              = \s -> regN s ** {lock_N = <>};
+    			mkN : Str-> Gender-> N 
+                              = \s,g -> regN2 s g ** {lock_N = <>} ;
+    			mkN : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x16 : Str)-> Gender -> N = 		\bEtu,bEtun,yebEtu,lebEtu,bEt,bEtn,yebEt,lebEt,bEtocu,bEtocun,yebEtocu,lebEtocu,bEtoc,bEtocn,yebEtoc,lebEtoc,g-> mkNoun bEtu bEtun yebEtu lebEtu bEt   bEtn yebEt lebEt bEtocu bEtocun yebEtocu lebEtocu bEtoc bEtocn yebEtoc lebEtoc g ** {lock_N = <>};   
+                        mkN : N -> N -> N 
+                               = \s,n -> compN s n ** {lock_N = <>}; 
+
+                   
+  } ;
+
+       mkA = overload {
+    			mkA : Str-> Adjective 
+                              = \s -> regAdj s ** {lock_Adj = <>};
+
+                     --   mkA : Str-> Adjective 
+                    --          = \s -> regAdj2 s ** {lock_Adj = <>};
+
+       			mkA : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x32 : Str)-> Adjective = 		\msdn,msda,msdg,msdd,msin,msia,msig,msid,mpdn,mpda,mpdg,mpdd,mpin,mpia,mpig,mpid,
+                  fsdn,fsda,fsdg,fsdd,fsin,fsia,fsig,fsid,fpdn,fpda,fpdg,fpdd,fpin,fpia,fpig,fpid-> mkAdjective msdn msda msdg msdd msin msia msig msid mpdn mpda mpdg mpdd mpin mpia mpig mpid 
+                  fsdn fsda fsdg fsdd fsin fsia fsig fsid fpdn fpda fpdg fpdd fpin fpia fpig fpid ** {lock_Adj = <>}; 
+                     
+  } ;
+
+	mkV = overload {
+    			mkV : Str-> V 
+                              = \s -> mkV3gdl s ** {lock_V = <>};
+
+
+    			                 
+  } ;
+
+  
+mkV3gdl : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  { 
+
+			Act => table {
+
+		     			      Per1 Sg      => appPattern3 root C1aC2aC3ku ;
+					      Per1 Pl      => appPattern3 root C1aC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root C1aC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2aC3sh ;
+					      Per2 Pl _     => appPattern3 root C1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root C1aC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root C1aC2aC3u};
+
+                         Pas => table {
+
+					      Per1 Sg      => appPattern3 root pteC1aC2aC3ku ;
+					      Per1 Pl      => appPattern3 root pteC1aC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root pteC1aC2aC3sh ;
+					      Per2 Pl _     => appPattern3 root pteC1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root pteC1aC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root pteC1aC2aC3u
+
+				}
+			    	} ;
+
+               CompPerf => table  {  
+
+       			Act => table {
+	 	     			      Per1 Sg      => appPattern3pal root C1aC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root C1aC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root C1aC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root C1aC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root C1aC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root C1aC2C3ewwal };
+
+			Pas => table {	      Per1 Sg      => appPattern3pal root pteC1aC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root pteC1aC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root pteC1aC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root pteC1aC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root pteC1aC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pteC1aC2C3ewwal }
+			    	} ;
+ 
+
+                Cont => table {    
+
+				Act => table {
+					      Per1 Sg      => appPattern3 root eC1aC2C3 ;
+					      Per1 Pl      => appPattern3 root enC1aC2C3e ;
+					      Per2 Sg Masc => appPattern3 root teC1aC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root teC1aC2C3 ;
+					      Per2 Pl _     => appPattern3 root teC1aC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yeC1aC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root teC1aC2C3 ;
+					      Per3 Pl _=> appPattern3 root yeC1aC2C3u};
+
+  			Pas =>table {	      Per1 Sg      => appPattern3 root peC1aC2C3 ;
+					      Per1 Pl      => appPattern3 root penC1aC2C3e ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1aC2C3 ;
+					      Per2 Pl _     => appPattern3 root pteC1aC2C3u ;
+					      Per3 Sg Masc => appPattern3 root pyeC1aC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2C3 ;
+					      Per3 Pl _=> appPattern3 root pyeC1aC2C3u}
+  };
+		 
+		Imperf => table {     
+		   
+			Act => table {
+					      Per1 Sg      => appPattern3 root eC1aC2C3alehu ;
+					      Per1 Pl      => appPattern3 root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root teC1aC2C3aleh ;
+					      Per2 Pl _      => appPattern3 root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root teC1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root yeC1aC2C3alu 
+				} ;
+
+			Pas => table {Per1 Sg      => appPattern3 root peC1aC2aC3alehu ;
+					      Per1 Pl      => appPattern3 root penC1aC2aC3alen ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2aC3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1aC2aC3aleh ;
+					      Per2 Pl _      => appPattern3 root pteC1aC2aC3alachehu ;
+					      Per3 Sg Masc => appPattern3 root pyeC1aC2aC3al ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2aC3alech ;
+					      Per3 Pl _=> appPattern3 root pyeC1aC2aC3alu }
+		  	         } ;
+
+		Jus_Imperat => table {  
+
+				Act => table {   
+		   
+					      Per1 Sg      => appPattern3 root leC1C2aC3  ;
+					      Per1 Pl      => appPattern3 root enC1C2aC3 ;
+					      Per2 Sg Masc => appPattern3 root C1C2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root C1C2aC3i ;
+					      Per2 Pl _      => appPattern3 root C1C2aC3u ;
+					      Per3 Sg Masc => appPattern3 root yC1C2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root tC1C2aC3 ;
+					      Per3 Pl _=> appPattern3 root yC1C2aC3u };
+
+			      Pas => table  {
+						 Per1 Sg      => appPattern3 root pleC1C2aC3  ;
+					      Per1 Pl      => appPattern3 root penC1C2aC3 ;
+					      Per2 Sg Masc => appPattern3 root pC1C2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root pC1C2aC3i ;
+					      Per2 Pl _      => appPattern3 root pC1C2aC3u ;
+					      Per3 Sg Masc => appPattern3 root pyC1C2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root ptC1C2aC3 ;
+					      Per3 Pl _=> appPattern3 root pyC1C2aC3u 
+						
+						}
+		  	         } ;
+
+		
+		Gerund => table {   
+
+				Act => table {  
+		   
+					      Per1 Sg      => appPattern3pal root C1aC2C3ie ;
+					      Per1 Pl      => appPattern3 root C1aC2C3en ;
+					      Per2 Sg Masc => appPattern3 root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2C3esh ;
+					      Per2 Pl _      => appPattern3 root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root C1aC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2C3a ;
+					      Per3 Pl _=> appPattern3 root C1aC2C3ew };
+
+				Pas => table {Per1 Sg      => appPattern3pal root ptC1aC2C3ie ;
+					      Per1 Pl      => appPattern3 root ptC1aC2C3en ;
+					      Per2 Sg Masc => appPattern3 root ptC1aC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root ptC1aC2C3esh ;
+					      Per2 Pl _      => appPattern3 root ptC1aC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root ptC1aC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root ptC1aC2C3a ;
+					      Per3 Pl _=> appPattern3 root ptC1aC2C3ew }
+		  	         } ;
+
+		
+	Infinitive => table {     
+		   			Act => table {
+					     	 _    => appPattern3 root meC1C2aC3 };
+
+				       Pas => table {  _    => appPattern3 root pmeC1C2aC3 }
+					   
+		     
+		  	         }; 
+	Parti => table {     
+		   			Act => table {
+					      _    => appPattern3pal root C1eC2aC3 };
+					Pas => table { _ => appPattern3pal root pteC1eC2aC3 }
+					   
+		     
+		  	         }
+
+			  }
+		  };
+
+
+
+
+	mkV3mls : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+
+			Act => table {
+      
+		     			      Per1 Sg      => appPattern3 root C1aC2aC3ku ;
+					      Per1 Pl      => appPattern3 root C1aC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root C1aC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2aC3sh ;
+					      Per2 Pl _      => appPattern3 root C1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root C1aC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root C1aC2aC3u 
+			    	} ; 
+
+			Pas => table  { 
+      
+		     			      Per1 Sg      => appPattern3 root pteC1aC2aC3ku ;
+					      Per1 Pl      => appPattern3 root pteC1aC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root pteC1aC2aC3sh ;
+					      Per2 Pl _     => appPattern3 root pteC1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root pteC1aC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root pteC1aC2aC3u
+			    	}
+
+
+};
+
+
+      CompPerf => table  {  
+      
+		     	Act => table {		      Per1 Sg      => appPattern3 root C1aC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root C1aC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root C1aC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root C1aC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root C1aC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root C1aC2C3ewwal };
+
+		Pas => table  {  
+      
+		     			      Per1 Sg      => appPattern3pal root pteC1aC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root pteC1aC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root pteC1aC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root pteC1aC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root pteC1aC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pteC1aC2C3ewwal 
+			    	}
+
+
+
+ 
+			    	} ;
+
+		 Cont => table {   
+					Act => table {  	      Per1 Sg      => appPattern3 root eC1aC2C3 ;
+					      Per1 Pl      => appPattern3 root enC1aC2C3e ;
+					      Per2 Sg Masc => appPattern3 root teC1aC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root teC1aC2C3 ;
+					      Per2 Pl _     => appPattern3 root teC1aC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yeC1aC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root teC1aC2C3 ;
+					      Per3 Pl _=> appPattern3 root yeC1aC2C3u  };
+
+				Pas => table {    Per1 Sg      => appPattern3 root peC1aC2C3 ;
+					      Per1 Pl      => appPattern3 root penC1aC2C3e ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1aC2C3 ;
+					      Per2 Pl _     => appPattern3 root pteC1aC2C3u ;
+					      Per3 Sg Masc => appPattern3 root pyeC1aC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2C3 ;
+					      Per3 Pl _=> appPattern3 root pyeC1aC2C3u  }
+
+};
+		Imperf => table {     
+		                       Act => table {
+					      Per1 Sg      => appPattern3 root eC1aC2C3alehu ;
+					      Per1 Pl      => appPattern3 root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root teC1aC2C3aleh ;
+					      Per2 Pl _=> appPattern3 root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root teC1aC2C3alech ;
+					      Per3 Pl _=> appPattern3 root yeC1aC2C3alu };
+		      Pas => table {     
+		   
+					      Per1 Sg      => appPattern3 root peC1aC2aC3alehu ;
+					      Per1 Pl      => appPattern3 root penC1aC2aC3alen ;
+					      Per2 Sg Masc => appPattern3 root pteC1aC2aC3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1aC2aC3aleh ;
+					      Per2 Pl _      => appPattern3 root pteC1aC2aC3alachehu ;
+					      Per3 Sg Masc => appPattern3 root pyeC1aC2aC3al ;
+					      Per3 Sg Fem  => appPattern3 root pteC1aC2aC3alech ;
+					      Per3 Pl _=> appPattern3 root pyeC1aC2aC3alu 
+
+		  	         }
+
+		  	         } ;
+
+		Jus_Imperat => table {     
+		                     Act=> table{
+					      Per1 Sg      => appPattern3 root leC1aC2C3  ;
+					      Per1 Pl      => appPattern3 root enC1aC2C3 ;
+					      Per2 Sg Masc => appPattern3 root C1aC2C3 ;
+					      Per2 Sg Fem  =>appPattern3pal root C1aC2C3i;
+					      Per2 Pl _      => appPattern3 root C1aC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yC1aC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root tC1aC2C3 ;
+					      Per3 Pl _=> appPattern3 root yC1aC2C3u  };
+
+            Pas => table {     
+		   
+					      Per1 Sg      => appPattern3 root pleC1C2aC3  ;
+					      Per1 Pl      => appPattern3 root penC1C2aC3 ;
+					      Per2 Sg Masc => appPattern3 root pC1C2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root pC1C2aC3i ;
+					      Per2 Pl _      => appPattern3 root pC1C2aC3u ;
+					      Per3 Sg Masc => appPattern3 root pyC1C2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root ptC1C2aC3 ;
+					      Per3 Pl _=> appPattern3 root pyC1C2aC3u 
+		  	         } 
+		     
+		  	         } ;
+
+		
+		Gerund => table {     
+		                Act => table {
+					      Per1 Sg      => appPattern3 root C1aC2C3ie ;
+					      Per1 Pl      => appPattern3 root C1aC2C3en ;
+					      Per2 Sg Masc => appPattern3 root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root C1aC2C3esh ;
+					      Per2 Pl _      => appPattern3 root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root C1aC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root C1aC2C3a ;
+					      Per3 Pl _=> appPattern3 root C1aC2C3ew  };
+
+			Pas => table {     
+		   
+					      Per1 Sg      => appPattern3pal root ptC1aC2C3ie ;
+					      Per1 Pl      => appPattern3 root ptC1aC2C3en ;
+					      Per2 Sg Masc => appPattern3 root ptC1aC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root ptC1aC2C3esh ;
+					      Per2 Pl _      => appPattern3 root ptC1aC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root ptC1aC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root ptC1aC2C3a ;
+					      Per3 Pl _=> appPattern3 root ptC1aC2C3ew 
+		  	         } 
+		     
+		  	         } ;
+
+		Infinitive => table {   
+
+         Act => table {  
+		   
+					      _      => appPattern3 root meC1aC2aC3 };
+					      
+		     Pas => table {     
+		   
+					      _    => appPattern3 root pmeC1C2aC3 
+					   
+		     
+		  	         }
+		  	         };
+                	Parti => table {   
+
+                                     Act => table 
+
+				{  
+		   
+					      _    => appPattern3pal root C1eC2aC3
+					};
+
+			Pas  => table {     
+		   
+					      _    => appPattern3pal root pteC1eC2aC3 
+					   
+		     
+		  	         }   
+		     
+		  	         }    
+
+
+			  }
+		  };
+	mkV3brk : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+
+					Act=> table {
+      
+		     			      Per1 Sg      => appPattern3 root C1AC2aC3ku ;
+					      Per1 Pl      => appPattern3 root C1AC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root C1AC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root C1AC2aC3sh ;
+					      Per2 Pl _      => appPattern3 root C1AC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root C1AC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root C1AC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root C1AC2aC3u 
+			    	} ;
+					Pas=> table {
+		     			      Per1 Sg      => appPattern3 root pC1AC2aC3ku ;
+					      Per1 Pl      => appPattern3 root pC1AC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root pC1AC2aC3sh ;
+					      Per2 Pl _      => appPattern3 root pC1AC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root pC1AC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root pC1AC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root pC1AC2aC3u }  } ;
+
+
+      CompPerf => table  {  
+      					Act =>table{
+		     			      Per1 Sg      => appPattern3 root C1AC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root C1AC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root C1AC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root C1AC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root C1AC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root C1AC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root C1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root C1AC2C3ewwal 
+			    	} ;
+
+			Pas => table {
+		     			      Per1 Sg      => appPattern3 root pC1AC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root pC1AC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root pC1AC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root pC1AC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root pC1AC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root pC1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pC1AC2C3ewwal  }
+} ;
+
+	Cont => table {    
+
+				Act => table {
+
+					     Per1 Sg      => appPattern3 root eC1AC2C3 ;
+					      Per1 Pl      => appPattern3 root enC1AC2C3e ;
+					      Per2 Sg Masc => appPattern3 root teC1AC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root teC1AC2C3 ;
+					      Per2 Pl _      => appPattern3 root teC1AC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yeC1AC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root teC1AC2C3 ;
+					      Per3 Pl _=> appPattern3 root yeC1AC2C3u   };
+
+				Pas => table {    
+
+					     Per1 Sg      => appPattern3 root peC1AC2C3 ;
+					      Per1 Pl      => appPattern3 root penC1AC2C3e ;
+					      Per2 Sg Masc => appPattern3 root pteC1AC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1AC2C3 ;
+					      Per2 Pl _      => appPattern3 root pteC1AC2C3u ;
+					      Per3 Sg Masc => appPattern3 root pyeC1AC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root pteC1AC2C3 ;
+					      Per3 Pl _=> appPattern3 root pyeC1AC2C3u  }
+
+				
+};	 
+		Imperf => table {     
+		   			Act => table {
+					      Per1 Sg      => appPattern3 root eC1AC2C3alehu ;
+					      Per1 Pl      => appPattern3 root enC1AC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root teC1AC2C3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root teC1AC2C3aleh ;
+					      Per2 Pl _      => appPattern3 root teC1AC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root yeC1AC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root teC1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root yeC1AC2C3alu };
+
+
+		     Pas => table {     
+		   
+					      
+					      Per1 Sg      => appPattern3 root peC1AC2C3alehu ;
+					      Per1 Pl      => appPattern3 root penC1AC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root pteC1AC2C3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1AC2C3aleh ;
+					      Per2 Pl _      => appPattern3 root pteC1AC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root pyeC1AC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root pteC1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pyeC1AC2C3alu
+
+		  	         }
+
+		  	         } ;
+
+		Jus_Imperat => table {     
+	Act => table {
+		   
+					      Per1 Sg      => appPattern3 root leC1AC2C3  ;
+					      Per1 Pl      => appPattern3 root enC1AC2C3 ;
+					      Per2 Sg Masc => appPattern3 root C1AC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root C1AC2C3i;
+					      Per2 Pl _      => appPattern3 root C1AC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yC1AC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root tC1AC2C3 ;
+					      Per3 Pl _=> appPattern3 root yC1AC2C3u };
+
+	Pas => table {     
+		   
+					      Per1 Sg      => appPattern3 root pleC1AC2C3  ;
+					      Per1 Pl      => appPattern3 root penC1AC2C3 ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root pC1AC2C3i;
+					      Per2 Pl _      => appPattern3 root pC1AC2C3u ;
+					      Per3 Sg Masc => appPattern3 root pyC1AC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root ptC1AC2C3 ;
+					      Per3 Pl _=> appPattern3 root pyC1AC2C3u 
+		  	         } 
+		     
+		  	         } ;
+
+		
+		Gerund => table {     
+		   		Act => table {
+					      Per1 Sg      => appPattern3PasPer root C1AC2C3ie ;
+					      Per1 Pl      => appPattern3PasPer root C1AC2C3en ;
+					      Per2 Sg Masc => appPattern3PasPer root C1AC2C3ek ;
+					      Per2 Sg Fem  => appPattern3PasPer root C1AC2C3esh ;
+					      Per2 Pl _      => appPattern3PasPer root C1AC2C3achehu ;
+					      Per3 Sg Masc => appPattern3PasPer root C1AC2C3o ;
+					      Per3 Sg Fem  => appPattern3PasPer root C1AC2C3a ;
+					      Per3 Pl _=> appPattern3PasPer root C1AC2C3ew  };
+
+		Pas => table {     
+		   
+					      Per1 Sg      => appPattern3PasPer root pC1AC2C3ie ;
+					      Per1 Pl      => appPattern3PasPer root pC1AC2C3en ;
+					      Per2 Sg Masc => appPattern3PasPer root pC1AC2C3ek ;
+					      Per2 Sg Fem  => appPattern3PasPer root pC1AC2C3esh ;
+					      Per2 Pl _      => appPattern3PasPer root pC1AC2C3achehu ;
+					      Per3 Sg Masc => appPattern3PasPer root pC1AC2C3o ;
+					      Per3 Sg Fem  => appPattern3PasPer root pC1AC2C3a ;
+					      Per3 Pl _=> appPattern3PasPer root pC1AC2C3ew 
+		  	         } 
+		     
+		  	         } ;
+
+		Infinitive => table {     
+		   Act => table {
+					      _      => appPattern3 root meC1AC2aC3 };
+		Pas => table {     
+		   
+					      _      => appPattern3 root pmeC1AC2aC3 
+					   
+		     
+		  	         }
+
+				      
+		  	            } ;
+
+	Parti => table {     
+		   Act => table {
+					      _    => appPattern3pal root C1aC2aC3i };
+
+		Pas => table {     
+		   
+					      _    => appPattern3pal root pC1aC2aC3i 
+					   
+		     
+		  	         }
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+	mkV3tTb : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  { 
+
+
+				Act=>table { 
+      
+		     			      Per1 Sg      => appPattern3 root C1AC2aC3ku ;
+					      Per1 Pl      => appPattern3 root C1AC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root C1AC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root C1AC2aC3sh ;
+					      Per2 Pl _      => appPattern3 root C1AC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root C1AC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root C1AC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root C1AC2aC3u };
+
+				Pas => table {Per1 Sg      => appPattern3 root pC1AC2aC3ku ;
+					      Per1 Pl      => appPattern3 root pC1AC2aC3n ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2aC3k ;
+					      Per2 Sg Fem  => appPattern3 root pC1AC2aC3sh ;
+					      Per2 Pl _      => appPattern3 root pC1AC2aC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root pC1AC2aC3e ;
+					      Per3 Sg Fem  => appPattern3 root pC1AC2aC3ech ;
+					      Per3 Pl _=> appPattern3 root pC1AC2aC3u }
+			    	} ;
+
+      CompPerf => table  {  
+
+				Act => table {
+      
+		     			      Per1 Sg      => appPattern3 root C1AC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root C1AC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root C1AC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root C1AC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root C1AC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root C1AC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root C1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root C1AC2C3ewwal }; 
+			    	
+				Pas => table { Per1 Sg      => appPattern3 root pC1AC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root pC1AC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root pC1AC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root pC1AC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root pC1AC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root pC1AC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pC1AC2C3ewwal}
+			} ;
+
+				
+
+	Cont => table {    
+				Act => table {
+
+						Per1 Sg      => appPattern3 root eC1AC2aC3 ;
+					      Per1 Pl      => appPattern3 root enC1AC2aC3e ;
+					      Per2 Sg Masc => appPattern3 root teC1AC2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root teC1AC2aC3 ;
+					      Per2 Pl _      => appPattern3 root teC1AC2aC3u ;
+					      Per3 Sg Masc => appPattern3 root yeC1AC2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root teC1AC2aC3 ;
+					      Per3 Pl _=> appPattern3 root yeC1AC2aC3u  };
+
+				Pas => table {Per1 Sg      => appPattern3 root peC1AC2aC3 ;
+					      Per1 Pl      => appPattern3 root penC1AC2aC3e ;
+					      Per2 Sg Masc => appPattern3 root pteC1AC2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1AC2aC3 ;
+					      Per2 Pl _      => appPattern3 root pteC1AC2aC3u ;
+					      Per3 Sg Masc => appPattern3 root pyeC1AC2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root pteC1AC2aC3 ;
+					      Per3 Pl _=> appPattern3 root pyeC1AC2aC3u}
+
+};	 
+		Imperf => table {     
+
+				Act => table {
+		   
+					      Per1 Sg      => appPattern3 root eC1AC2aC3alehu ;
+					      Per1 Pl      => appPattern3 root enC1AC2aC3alen ;
+					      Per2 Sg Masc => appPattern3 root teC1AC2aC3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root teC1AC2aC3aleh ;
+					      Per2 Pl _      => appPattern3 root teC1AC2aC3alachehu ;
+					      Per3 Sg Masc => appPattern3 root yeC1AC2aC3al ;
+					      Per3 Sg Fem  => appPattern3 root teC1AC2aC3alech ;
+					      Per3 Pl _=> appPattern3 root yeC1AC2aC3alu};
+
+				Pas => table {Per1 Sg      => appPattern3 root peC1AC2aC3alehu ;
+					      Per1 Pl      => appPattern3 root penC1AC2aC3alen ;
+					      Per2 Sg Masc => appPattern3 root pteC1AC2aC3yaleh ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1AC2aC3aleh ;
+					      Per2 Pl _      => appPattern3 root pteC1AC2aC3alachehu ;
+					      Per3 Sg Masc => appPattern3 root pyeC1AC2aC3al ;
+					      Per3 Sg Fem  => appPattern3 root pteC1AC2aC3alech ;
+					      Per3 Pl _=> appPattern3 root pyeC1AC2aC3alu}
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {   
+
+				Act => table {  
+		   
+					      Per1 Sg      => appPattern3 root leC1AC2aC3  ;
+					      Per1 Pl      => appPattern3 root enC1AC2aC3 ;
+					      Per2 Sg Masc => appPattern3 root C1AC2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root C1AC2aC3i;
+					      Per2 Pl _      => appPattern3 root C1AC2aC3u ;
+					      Per3 Sg Masc => appPattern3 root yC1AC2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root tC1AC2aC3 ;
+					      Per3 Pl _=> appPattern3 root yC1AC2aC3u } ;
+
+
+				Pas => table { Per1 Sg      => appPattern3 root pleC1AC2aC3  ;
+					      Per1 Pl      => appPattern3 root penC1AC2aC3 ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2aC3 ;
+					      Per2 Sg Fem  => appPattern3pal root pC1AC2aC3i;
+					      Per2 Pl _      => appPattern3 root pC1AC2aC3u ;
+					      Per3 Sg Masc => appPattern3 root pyC1AC2aC3 ;
+					      Per3 Sg Fem  => appPattern3 root ptC1AC2aC3 ;
+					      Per3 Pl _=> appPattern3 root pyC1AC2aC3u}
+		     
+		  	         } ;
+
+		
+		Gerund => table {     
+
+
+				Act => table {
+		   
+					      Per1 Sg      => appPattern3 root C1AC2C3ie ;
+					      Per1 Pl      => appPattern3 root C1AC2C3en ;
+					      Per2 Sg Masc => appPattern3 root C1AC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root C1AC2C3esh ;
+					      Per2 Pl _      => appPattern3 root C1AC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root C1AC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root C1AC2C3a ;
+					      Per3 Pl _=> appPattern3 root C1AC2C3ew };
+
+
+				Pas => table {
+					      Per1 Sg      => appPattern3 root pC1AC2C3ie ;
+					      Per1 Pl      => appPattern3 root pC1AC2C3en ;
+					      Per2 Sg Masc => appPattern3 root pC1AC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root pC1AC2C3esh ;
+					      Per2 Pl _      => appPattern3 root pC1AC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root pC1AC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root pC1AC2C3a ;
+					      Per3 Pl _=> appPattern3 root pC1AC2C3ew}
+		     
+		  	         } ;
+
+		Infinitive => table {     
+
+				Act => table {	   
+					      _      => appPattern3 root meC1AC2aC3 };
+
+				Pas => table {_      => appPattern3 root pmeC1AC2aC3}
+
+				      
+		  	            } ;
+	Parti => table {     
+		   		Act => table {
+					      _    => appPattern3pal root C1aC2aC3i };
+
+				Pas => table {_    => appPattern3pal root pC1aC2aC3i}
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+
+		mkV3qTr : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+					Act=> table {
+      
+		     			      Per1 Sg      => appPattern3 root C1oC2eC3ku ;
+					      Per1 Pl      => appPattern3 root C1oC2eC3n ;
+					      Per2 Sg Masc => appPattern3 root C1oC2eC3k ;
+					      Per2 Sg Fem  => appPattern3 root C1oC2eC3sh ;
+					      Per2 Pl _      => appPattern3 root C1oC2eC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root C1oC2eC3e ;
+					      Per3 Sg Fem  => appPattern3 root C1oC2eC3ech ;
+					      Per3 Pl _=> appPattern3 root C1oC2eC3u };
+
+					Pas => table {     Per1 Sg      => appPattern3 root pC1oC2eC3ku ;
+					      Per1 Pl      => appPattern3 root pC1oC2eC3n ;
+					      Per2 Sg Masc => appPattern3 root pC1oC2eC3k ;
+					      Per2 Sg Fem  => appPattern3 root pC1oC2eC3sh ;
+					      Per2 Pl _      => appPattern3 root pC1oC2eC3achehu ;   
+					      Per3 Sg Masc => appPattern3 root pC1oC2eC3e ;
+					      Per3 Sg Fem  => appPattern3 root pC1oC2eC3ech ;
+					      Per3 Pl _=> appPattern3 root pC1oC2eC3u}
+			    	} ;
+
+      		CompPerf => table  { 
+
+				Act => table {
+      
+		     			      Per1 Sg      => appPattern3pal root C1oC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root C1oC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root C1oC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root C1oC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root C1oC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root C1oC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root C1oC2C3alech ;
+					      Per3 Pl _=> appPattern3 root C1oC2C3ewwal };
+
+
+				Pas => table {Per1 Sg      => appPattern3pal root pC1oC2C3iealehu ;
+					      Per1 Pl      => appPattern3 root pC1oC2C3enal ;
+					      Per2 Sg Masc => appPattern3 root pC1oC2C3ekal ;
+					      Per2 Sg Fem  => appPattern3 root pC1oC2C3eshal ;
+					      Per2 Pl _      => appPattern3 root pC1oC2C3achehual ;   
+					      Per3 Sg Masc => appPattern3 root pC1oC2C3oal ;
+					      Per3 Sg Fem  => appPattern3 root pC1oC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pC1oC2C3ewwal}
+			    	} ;
+     Cont => table {  				
+				Act => table {
+
+						Per1 Sg      => appPattern3 root eC1oC2C3 ;
+					      Per1 Pl      => appPattern3 root enC1oC2C3e ;
+					      Per2 Sg Masc => appPattern3 root teC1oC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root teC1oC2C3 ;
+					      Per2 Pl _      => appPattern3 root teC1oC2C3u ;
+					      Per3 Sg Masc => appPattern3 root yeC1oC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root teC1oC2C3 ;
+					      Per3 Pl _=> appPattern3 root yeC1oC2C3u  };
+
+
+				Pas => table {Per1 Sg      => appPattern3 root peC1oC2C3 ;
+					      Per1 Pl      => appPattern3 root penC1oC2C3e ;
+					      Per2 Sg Masc => appPattern3 root pteC1oC2C3 ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1oC2C3 ;
+					      Per2 Pl _      => appPattern3 root pteC1oC2C3u ;
+					      Per3 Sg Masc => appPattern3 root pyeC1oC2C3 ;
+					      Per3 Sg Fem  => appPattern3 root pteC1oC2C3 ;
+					      Per3 Pl _=> appPattern3 root pyeC1oC2C3u  }
+		      };
+		 
+		Imperf => table {    
+
+					Act => table { 
+		   
+					      Per1 Sg      => appPattern3 root eC1oC2C3alehu ;
+					      Per1 Pl      => appPattern3 root enC1oC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root teC1oC2C3aleh ;
+					      Per2 Sg Fem  => appPattern3pal root teC1oC2C3yalesh ;
+					      Per2 Pl _      => appPattern3 root teC1oC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root yeC1oC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root teC1oC2C3alech ;
+					      Per3 Pl _=> appPattern3 root yeC1oC2C3alu };
+
+					Pas => table {Per1 Sg      => appPattern3 root peC1oC2C3alehu ;
+					      Per1 Pl      => appPattern3 root penC1oC2C3alen ;
+					      Per2 Sg Masc => appPattern3 root pteC1oC2C3aleh ;
+					      Per2 Sg Fem  => appPattern3pal root pteC1oC2C3yalesh ;
+					      Per2 Pl _      => appPattern3 root pteC1oC2C3alachehu ;
+					      Per3 Sg Masc => appPattern3 root pyeC1oC2C3al ;
+					      Per3 Sg Fem  => appPattern3 root pteC1oC2C3alech ;
+					      Per3 Pl _=> appPattern3 root pyeC1oC2C3alu}
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {  
+
+
+					Act => table {   
+		   
+					      Per1 Sg      => appPattern3 root leC1uC2eC3  ;
+					      Per1 Pl      => appPattern3 root enC1uC2eC3 ;
+					      Per2 Sg Masc => appPattern3 root C1uC2eC3 ;
+					      Per2 Sg Fem  => appPattern3pal root C1uC2eC3i;
+					      Per2 Pl _      => appPattern3 root C1uC2eC3u ;
+					      Per3 Sg Masc => appPattern3 root yC1uC2eC3 ;
+					      Per3 Sg Fem  => appPattern3 root tC1uC2eC3 ;
+					      Per3 Pl _=> appPattern3 root yC1uC2eC3u };
+					
+					Pas => table {Per1 Sg      => appPattern3 root pleC1uC2eC3  ;
+					      Per1 Pl      => appPattern3 root penC1uC2eC3 ;
+					      Per2 Sg Masc => appPattern3 root pC1uC2eC3 ;
+					      Per2 Sg Fem  => appPattern3pal root pC1uC2eC3i;
+					      Per2 Pl _      => appPattern3 root pC1uC2eC3u ;
+					      Per3 Sg Masc => appPattern3 root pyC1uC2eC3 ;
+					      Per3 Sg Fem  => appPattern3 root ptC1uC2eC3 ;
+					      Per3 Pl _=> appPattern3 root pyC1uC2eC3u} 
+		     
+		  	         } ;
+
+		
+		Gerund => table {
+
+					Act => table {     
+		   
+					      Per1 Sg      => appPattern3pal root C1oC2C3ie ;
+					      Per1 Pl      => appPattern3 root C1oC2C3en ;
+					      Per2 Sg Masc => appPattern3 root C1oC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root C1oC2C3esh ;
+					      Per2 Pl _      => appPattern3 root C1oC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root C1oC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root C1oC2C3a ;
+					      Per3 Pl _=> appPattern3 root C1oC2C3ew };
+
+					Pas => table { Per1 Sg      => appPattern3pal root pC1oC2C3ie ;
+					      Per1 Pl      => appPattern3 root pC1oC2C3en ;
+					      Per2 Sg Masc => appPattern3 root pC1oC2C3ek ;
+					      Per2 Sg Fem  => appPattern3 root pC1oC2C3esh ;
+					      Per2 Pl _      => appPattern3 root pC1oC2C3achehu ;
+					      Per3 Sg Masc => appPattern3 root pC1oC2C3o ;
+					      Per3 Sg Fem  => appPattern3 root pC1oC2C3a ;
+					      Per3 Pl _=> appPattern3 root pC1oC2C3ew}
+		     
+		  	         } ;
+
+		Infinitive => table { 
+
+					Act => table {    
+		   
+					      _      => appPattern3 root meC1uC2eC3 };
+					Pas => table {_      => appPattern3 root pmeC1uC2eC3}
+
+				      
+		  	            } ;
+
+	Parti => table {     
+		   			Act => table {
+					      _    => appPattern3pal root C1oC2aC3i };
+
+					Pas => table {_    => appPattern3pal root pC1oC2aC3i }
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+       
+
+
+
+
+	mkV2bl : Str -> Verb = \v ->
+
+		let root = getRoot2 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+
+					Act=>table {
+      		     			      Per1 Sg      => appPattern2 root C1aC2hu ;
+					      Per1 Pl      => appPattern2 root C1aC2n ;
+					      Per2 Sg Masc => appPattern2 root C1aC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1aC2sh ;
+					      Per2 Pl _      => appPattern2 root C1aC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1aC2ach ;
+					      Per3 Pl _=> appPattern2 root C1aC2u };
+
+					Pas => table {      Per1 Sg      => appPattern2 root pC1aC2hu ;
+					      Per1 Pl      => appPattern2 root pC1aC2n ;
+					      Per2 Sg Masc => appPattern2 root pC1aC2k ;
+					      Per2 Sg Fem  => appPattern2 root pC1aC2sh ;
+					      Per2 Pl _      => appPattern2 root pC1aC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root pC1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root pC1aC2ach ;
+					      Per3 Pl _=> appPattern2 root pC1aC2u}
+			    	} ;
+
+CompPerf => table  { 			      
+					Act => table {
+						Per1 Sg      => appPattern2 root C1eC2ciealehu ;
+					      Per1 Pl      => appPattern2 root C1eC2tenal ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2teshal ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root C1eC2toal ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2talech ;
+					      Per3 Pl _=> appPattern2 root C1eC2tewal};
+
+
+					Pas => table {	Per1 Sg      => appPattern2 root pC1eC2ciealehu ;
+					      Per1 Pl      => appPattern2 root pC1eC2tenal ;
+					      Per2 Sg Masc => appPattern2 root pC1eC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root pC1eC2teshal ;
+					      Per2 Pl _      => appPattern2 root pC1eC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root pC1eC2toal ;
+					      Per3 Sg Fem  => appPattern2 root pC1eC2talech ;
+					      Per3 Pl _=> appPattern2 root pC1eC2tewal}
+
+
+
+ };
+
+Cont => table {  				
+					Act => table {
+					Per1 Sg      => appPattern2 root eC1eC2a ;
+					      Per1 Pl      => appPattern2 root enC1eC2a ;
+					      Per2 Sg Masc => appPattern2 root teC1eC2a ;
+					      Per2 Sg Fem  => appPattern2pal root teC1eC2i ;
+					      Per2 Pl _      => appPattern2 root teC1eC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1eC2a ;
+					      Per3 Sg Fem  => appPattern2 root teC1eC2a ;
+					      Per3 Pl _=> appPattern2 root yeC1eC2u };
+
+					Pas => table {Per1 Sg      => appPattern2 root peC1eC2a ;
+					      Per1 Pl      => appPattern2 root penC1eC2a ;
+					      Per2 Sg Masc => appPattern2 root pteC1eC2a ;
+					      Per2 Sg Fem  => appPattern2pal root pteC1eC2i ;
+					      Per2 Pl _      => appPattern2 root pteC1eC2u ;
+					      Per3 Sg Masc => appPattern2 root pyeC1eC2a ;
+					      Per3 Sg Fem  => appPattern2 root pteC1eC2a ;
+					      Per3 Pl _=> appPattern2 root pyeC1eC2u}
+
+				};		 
+		Imperf => table {    
+					Act => table { 
+					      Per1 Sg      => appPattern2 root eC1eC2alehu ;
+					      Per1 Pl      => appPattern2 root enC1eC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1eC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1eC2aleh ;
+					      Per2 Pl _     => appPattern2 root teC1eC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1eC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1eC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1eC2alu};
+
+					Pas => table {   Per1 Sg      => appPattern2 root peC1eC2alehu ;
+					      Per1 Pl      => appPattern2 root penC1eC2alen ;
+					      Per2 Sg Masc => appPattern2 root pteC1eC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root pteC1eC2aleh ;
+					      Per2 Pl _     => appPattern2 root pteC1eC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root pyeC1eC2al ;
+					      Per3 Sg Fem  => appPattern2 root pteC1eC2alech ;
+					      Per3 Pl _=> appPattern2 root pyeC1eC2alu}		     
+
+		  	         } ;
+
+		Jus_Imperat => table {  
+
+					Act => table {   
+		   
+					      Per1 Sg      => appPattern2 root leC1C2a  ;
+					      Per1 Pl      => appPattern2 root enC1C2a ;
+					      Per2 Sg Masc => appPattern2 root C1C2a ;
+					      Per2 Sg Fem  => appPattern2pal root C1C2i ;
+					      Per2 Pl _      => appPattern2 root C1C2u ;
+					      Per3 Sg Masc => appPattern2 root yC1C2a ;
+					      Per3 Sg Fem  => appPattern2 root tC1C2a ;
+					      Per3 Pl _=> appPattern2 root yC1C2u };
+
+
+					Pas => table { Per1 Sg      => appPattern2 root pleC1C2a  ;
+					      Per1 Pl      => appPattern2 root penC1C2a ;
+					      Per2 Sg Masc => appPattern2 root pC1C2a ;
+					      Per2 Sg Fem  => appPattern2pal root pC1C2i ;
+					      Per2 Pl _      => appPattern2 root pC1C2u ;
+					      Per3 Sg Masc => appPattern2 root pyC1C2a ;
+					      Per3 Sg Fem  => appPattern2 root ptC1C2a ;
+					      Per3 Pl _=> appPattern2 root pyC1C2u}
+		     
+		  	         } ;
+
+		
+		Gerund => table {     
+		   			Act => table {
+					      Per1 Sg      => appPattern2 root C1eC2cie ;
+					      Per1 Pl      => appPattern2 root C1eC2ten ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tek ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2tesh ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root C1eC2to ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2ta ;
+					      Per3 Pl _=> appPattern2 root C1eC2tew};
+
+					Pas => table {    Per1 Sg      => appPattern2 root pC1eC2cie ;
+					      Per1 Pl      => appPattern2 root pC1eC2ten ;
+					      Per2 Sg Masc => appPattern2 root pC1eC2tek ;
+					      Per2 Sg Fem  => appPattern2 root pC1eC2tesh ;
+					      Per2 Pl _      => appPattern2 root pC1eC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root pC1eC2to ;
+					      Per3 Sg Fem  => appPattern2 root pC1eC2ta ;
+					      Per3 Pl _=> appPattern2 root pC1eC2tew}
+		  	         } ;
+
+		
+		Infinitive => table {     
+		   			Act => table {
+					      _    => appPattern2 root meC1C2at };
+
+					Pas => table {_    => appPattern2 root pmeC1C2at}
+					   
+		     
+		  	         } ;
+
+	Parti => table {     
+		   			Act => table {
+					      _    => appPattern2pal root C1eC2 };
+
+					Pas => table {_    => appPattern2pal root pC1eC2}
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+	mkV2yz : Str -> Verb = \v ->
+
+		let root = getRoot2 v
+
+		in {
+
+		s = table { 
+ 
+
+		Perf => table  {  
+
+					Act => table {
+      
+		     			      Per1 Sg      => appPattern2 root C1AC2hu ;
+					      Per1 Pl      => appPattern2 root C1AC2n ;
+					      Per2 Sg Masc => appPattern2 root C1AC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1AC2sh ;
+					      Per2 Pl _      => appPattern2 root C1AC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1AC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1AC2ach ;
+					      Per3 Pl _=> appPattern2 root C1AC2u};
+
+
+					Pas => table {Per1 Sg      => appPattern2 root C1AC2hu ;
+					      Per1 Pl      => appPattern2 root C1AC2n ;
+					      Per2 Sg Masc => appPattern2 root C1AC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1AC2sh ;
+					      Per2 Pl _      => appPattern2 root C1AC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1AC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1AC2ach ;
+					      Per3 Pl _=> appPattern2 root C1AC2u}
+			    	} ;
+
+CompPerf => table  {  			     
+				Act => table {
+
+						 Per1 Sg      => appPattern2 root C1C2iealehu ;
+					      Per1 Pl      => appPattern2 root C1C2enal ;
+					      Per2 Sg Masc => appPattern2 root C1C2ekal ;
+					      Per2 Sg Fem  => appPattern2 root C1C2eshal ;
+					      Per2 Pl _      => appPattern2 root C1C2achehual ;
+					      Per3 Sg Masc => appPattern2 root C1C2oal ;
+					      Per3 Sg Fem  => appPattern2 root C1C2alech ;
+					      Per3 Pl _=> appPattern2 root C1C2ewal };
+
+				Pas => table {
+
+						 Per1 Sg      => appPattern2 root C1C2iealehu ;
+					      Per1 Pl      => appPattern2 root C1C2enal ;
+					      Per2 Sg Masc => appPattern2 root C1C2ekal ;
+					      Per2 Sg Fem  => appPattern2 root C1C2eshal ;
+					      Per2 Pl _      => appPattern2 root C1C2achehual ;
+					      Per3 Sg Masc => appPattern2 root C1C2oal ;
+					      Per3 Sg Fem  => appPattern2 root C1C2alech ;
+					      Per3 Pl _=> appPattern2 root C1C2ewal }
+
+
+
+				};
+
+Cont => table {      				
+
+					Act => table {
+
+						Per1 Sg      => appPattern2 root eC1C2  ;
+					      Per1 Pl      => appPattern2 root enC1C2 ;
+					      Per2 Sg Masc => appPattern2 root teC1C2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1C2 ;
+					      Per2 Pl _      => appPattern2 root teC1C2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1C2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1C2 ;
+					      Per3 Pl _=> appPattern2 root yeC1C2u };
+
+					Pas => table {Per1 Sg      => appPattern2 root eC1C2  ;
+					      Per1 Pl      => appPattern2 root enC1C2 ;
+					      Per2 Sg Masc => appPattern2 root teC1C2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1C2 ;
+					      Per2 Pl _      => appPattern2 root teC1C2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1C2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1C2 ;
+					      Per3 Pl _=> appPattern2 root yeC1C2u} 
+};
+		 
+		Imperf => table {
+
+					Act => table { 
+				    
+		   
+					      Per1 Sg      => appPattern2 root eC1C2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1C2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1C2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1C2aleh ;
+					      Per2 Pl _      => appPattern2 root teC1C2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1C2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1C2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1C2alu };
+
+					Pas => table {
+					      Per1 Sg      => appPattern2 root eC1C2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1C2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1C2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1C2aleh ;
+					      Per2 Pl _      => appPattern2 root teC1C2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1C2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1C2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1C2alu} 
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {   
+
+					Act => table {   
+		   
+					      Per1 Sg      => appPattern2 root leC1aC2a  ;
+					      Per1 Pl      => appPattern2 root enC1aC2a ;
+					      Per2 Sg Masc => appPattern2 root C1aC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1aC2i ;
+					      Per2 Pl _      => appPattern2 root C1eC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root tC1aC2a ;
+					      Per3 Pl _=> appPattern2 root yC1aC2u };
+
+
+					Pas => table {Per1 Sg      => appPattern2 root leC1aC2a  ;
+					      Per1 Pl      => appPattern2 root enC1aC2a ;
+					      Per2 Sg Masc => appPattern2 root C1aC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1aC2i ;
+					      Per2 Pl _      => appPattern2 root C1eC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root tC1aC2a ;
+					      Per3 Pl _=> appPattern2 root yC1aC2u} 
+		     
+		  	         } ;
+
+		
+		Gerund => table {    
+
+					Act => table {  
+		   
+					      Per1 Sg      => appPattern2 root C1C2ie ;
+					      Per1 Pl      => appPattern2 root C1C2en ;
+					      Per2 Sg Masc => appPattern2 root C1C2ek ;
+					      Per2 Sg Fem  => appPattern2 root C1C2esh ;
+					      Per2 Pl _      => appPattern2 root C1C2achehu ;
+					      Per3 Sg Masc => appPattern2 root C1C2o ;
+					      Per3 Sg Fem  => appPattern2 root C1C2a ;
+					      Per3 Pl _=> appPattern2 root C1C2ew };
+
+					Pas => table {Per1 Sg      => appPattern2 root C1C2ie ;
+					      Per1 Pl      => appPattern2 root C1C2en ;
+					      Per2 Sg Masc => appPattern2 root C1C2ek ;
+					      Per2 Sg Fem  => appPattern2 root C1C2esh ;
+					      Per2 Pl _      => appPattern2 root C1C2achehu ;
+					      Per3 Sg Masc => appPattern2 root C1C2o ;
+					      Per3 Sg Fem  => appPattern2 root C1C2a ;
+					      Per3 Pl _=> appPattern2 root C1C2ew} 
+		  	         } ;
+
+		
+		Infinitive => table {     
+					Act => table { 
+		   
+					      _    => appPattern2 root meC1aC2};
+
+					Pas => table { _    => appPattern2 root meC1aC2} 
+					   
+		     
+		  	         } ;
+
+	Parti => table { 
+				Act => table {_    => appPattern2pal root C1aC2ii  };
+
+				Pas => table {_    => appPattern2pal root C1aC2ii  }      
+		   
+					      
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+
+
+	mkV2nr : Str -> Verb = \v ->
+
+		let root = getRoot2 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+
+					Act => table {
+      
+		     			      Per1 Sg      => appPattern2 root C1oC2hu ;
+					      Per1 Pl      => appPattern2 root C1oC2n ;
+					      Per2 Sg Masc => appPattern2 root C1oC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2sh ;
+					      Per2 Pl _      => appPattern2 root C1oC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1oC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2ach ;
+					      Per3 Pl _=> appPattern2 root C1oC2u };
+
+					Pas => table {      Per1 Sg      => appPattern2 root C1oC2hu ;
+					      Per1 Pl      => appPattern2 root C1oC2n ;
+					      Per2 Sg Masc => appPattern2 root C1oC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2sh ;
+					      Per2 Pl _      => appPattern2 root C1oC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1oC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2ach ;
+					      Per3 Pl _=> appPattern2 root C1oC2u}
+			    	} ;
+
+		CompPerf => table  { 
+					Act => table {
+					      Per1 Sg      => appPattern2pal root C1oC2iealehu ;
+					      Per1 Pl      => appPattern2 root C1oC2enal ;
+					      Per2 Sg Masc => appPattern2 root C1oC2ekal ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2eshal;
+					      Per2 Pl _      => appPattern2 root C1oC2achehual;
+					      Per3 Sg Masc => appPattern2 root C1oC2oal ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2Alech ;
+					      Per3 Pl _=> appPattern2 root C1oC2ewal };
+
+					Pas => table  {
+					      Per1 Sg      => appPattern2pal root C1oC2iealehu ;
+					      Per1 Pl      => appPattern2 root C1oC2enal ;
+					      Per2 Sg Masc => appPattern2 root C1oC2ekal ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2eshal;
+					      Per2 Pl _      => appPattern2 root C1oC2achehual;
+					      Per3 Sg Masc => appPattern2 root C1oC2oal ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2Alech ;
+					      Per3 Pl _=> appPattern2 root C1oC2ewal}
+				};
+
+Cont => table { 	Act => table {		      
+					      Per1 Sg      => appPattern2 root eC1oC2  ;
+					      Per1 Pl      => appPattern2 root enC1oC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2i ;
+					      Per2 Pl _      => appPattern2 root teC1oC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2u};
+
+			Pas => table { Per1 Sg      => appPattern2 root eC1oC2  ;
+					      Per1 Pl      => appPattern2 root enC1oC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2i ;
+					      Per2 Pl _      => appPattern2 root teC1oC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2u}
+ };		 
+		Imperf => table {  
+
+					Act => table {  
+		   
+					      Per1 Sg      => appPattern2 root eC1oC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1oC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2alesh ;
+					      Per2 Pl _      => appPattern2 root teC1oC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2alu } ;
+					Pas => table { Per1 Sg      => appPattern2 root eC1oC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1oC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2alesh ;
+					      Per2 Pl _      => appPattern2 root teC1oC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2alu}
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {   
+
+
+					Act => table {  
+		   
+					      Per1 Sg      => appPattern2 root leC1uC2;
+					      Per1 Pl      => appPattern2 root enC1uC2;
+					      Per2 Sg Masc => appPattern2 root C1uC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1uC2i ;
+					      Per2 Pl __      => appPattern2 root C1uC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1uC2 ;
+					      Per3 Sg Fem  => appPattern2 root tC1uC2 ;
+					      Per3 Pl _=> appPattern2 root yC1uC2u };
+
+					Pas => table {  Per1 Sg      => appPattern2 root leC1uC2;
+					      Per1 Pl      => appPattern2 root enC1uC2;
+					      Per2 Sg Masc => appPattern2 root C1uC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1uC2i ;
+					      Per2 Pl __      => appPattern2 root C1uC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1uC2 ;
+					      Per3 Sg Fem  => appPattern2 root tC1uC2 ;
+					      Per3 Pl _=> appPattern2 root yC1uC2u}
+		     
+		  	         } ;
+
+		
+		Gerund => table { 
+
+					Act => table {    
+		   
+					      Per1 Sg      => appPattern2 root C1oC2ie ;
+					      Per1 Pl      => appPattern2 root C1oC2en ;
+					      Per2 Sg Masc => appPattern2 root C1oC2ek ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2esh;
+					      Per2 Pl _      => appPattern2 root C1oC2achehu;
+					      Per3 Sg Masc => appPattern2 root C1oC2o ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2A ;
+					      Per3 Pl _=> appPattern2 root C1oC2ew };
+
+					Pas => table {      Per1 Sg      => appPattern2 root C1oC2ie ;
+					      Per1 Pl      => appPattern2 root C1oC2en ;
+					      Per2 Sg Masc => appPattern2 root C1oC2ek ;
+					      Per2 Sg Fem  => appPattern2 root C1oC2esh;
+					      Per2 Pl _      => appPattern2 root C1oC2achehu;
+					      Per3 Sg Masc => appPattern2 root C1oC2o ;
+					      Per3 Sg Fem  => appPattern2 root C1oC2A ;
+					      Per3 Pl _=> appPattern2 root C1oC2ew}
+		     
+		  	         } ;
+
+		
+		Infinitive => table {     
+
+					Act => table {
+		   
+					      _    => appPattern2 root meC1oC2 };
+
+					Pas => table {_    => appPattern2 root meC1oC2 }
+					   
+		     
+		  	         } ;
+	Parti => table {     
+					Act => table {
+		   
+					      _    => appPattern2pal root C1uaC2i };
+
+					Pas => table { _    => appPattern2pal root C1uaC2i } 
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+	mkV2sT : Str -> Verb = \v ->
+
+		let root = getRoot2 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  { 
+
+
+				Act => table { 
+      
+		     			      Per1 Sg      => appPattern2 root C1eC2hu ;
+					      Per1 Pl      => appPattern2 root C1eC2n ;
+					      Per2 Sg Masc => appPattern2 root C1eC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2sh ;
+					      Per2 Pl _      => appPattern2 root C1eC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1eC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2ach ;
+					      Per3 Pl _=> appPattern2 root C1aC2u };
+
+			    Pas => table {     Per1 Sg      => appPattern2 root C1eC2hu ;
+					      Per1 Pl      => appPattern2 root C1eC2n ;
+					      Per2 Sg Masc => appPattern2 root C1eC2k ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2sh ;
+					      Per2 Pl _      => appPattern2 root C1eC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1eC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2ach ;
+					      Per3 Pl _=> appPattern2 root C1aC2u}
+			    	} ;
+
+CompPerf => table  {			      
+
+				Act => table {
+						Per1 Sg      => appPattern2 root C1eC2ciealehu ;
+					      Per1 Pl      => appPattern2 root C1eC2tenal ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2teshal ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root C1eC2toal ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2talech ;
+					      Per3 Pl _=> appPattern2 root C1eC2tewal };
+
+				 Pas => table {	Per1 Sg      => appPattern2 root C1eC2ciealehu ;
+					      Per1 Pl      => appPattern2 root C1eC2tenal ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2teshal ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root C1eC2toal ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2talech ;
+					      Per3 Pl _=> appPattern2 root C1eC2tewal }
+		   } ;
+Cont => table {    
+				Act => table {
+						Per1 Sg      => appPattern2 root eC1oC2  ;
+					      Per1 Pl      => appPattern2 root enC1oC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2i ;
+					      Per2 Pl _      => appPattern2 root teC1oC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2u };
+
+				 Pas => table {Per1 Sg      => appPattern2 root eC1oC2  ;
+					      Per1 Pl      => appPattern2 root enC1oC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1oC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1oC2i ;
+					      Per2 Pl _      => appPattern2 root teC1oC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1oC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1oC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1oC2u}
+};		 
+		Imperf => table {  
+
+				 Act => table {   
+		   
+					      Per1 Sg      => appPattern2 root eC1eC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1eC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1eC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1eC2aleh ;
+					      Per2 Pl _      => appPattern2 root teC1eC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1eC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1eC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1eC2alu };
+
+
+				 Pas => table {     Per1 Sg      => appPattern2 root eC1eC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1eC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1eC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1eC2aleh ;
+					      Per2 Pl _      => appPattern2 root teC1eC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1eC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1eC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1eC2alu }
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {  
+
+
+				 Act => table {   
+		   
+					      Per1 Sg      => appPattern2 root leC1eC2;
+					      Per1 Pl      => appPattern2 root enC1eC2;
+					      Per2 Sg Masc => appPattern2 root C1C2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1eC2i ;
+					      Per2 Pl _      => appPattern2 root C1C2u ;
+					      Per3 Sg Masc => appPattern2 root yC1eC2 ;
+					      Per3 Sg Fem  => appPattern2 root tC1eC2 ;
+					      Per3 Pl _=> appPattern2 root yC1C2u };
+
+				 Pas => table {	      Per1 Sg      => appPattern2 root leC1eC2;
+					      Per1 Pl      => appPattern2 root enC1eC2;
+					      Per2 Sg Masc => appPattern2 root C1C2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1eC2i ;
+					      Per2 Pl _      => appPattern2 root C1C2u ;
+					      Per3 Sg Masc => appPattern2 root yC1eC2 ;
+					      Per3 Sg Fem  => appPattern2 root tC1eC2 ;
+					      Per3 Pl _=> appPattern2 root yC1C2u}
+		  	         } ;
+
+		
+		Gerund => table {    
+
+
+				 Act => table { 
+		   
+					      Per1 Sg      => appPattern2 root C1eC2cie ;
+					      Per1 Pl      => appPattern2 root C1eC2ten ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tek ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2tesh ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root C1eC2to ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2ta ;
+					      Per3 Pl _=> appPattern2 root C1eC2tew };
+
+				 Pas => table {Per1 Sg      => appPattern2 root C1eC2cie ;
+					      Per1 Pl      => appPattern2 root C1eC2ten ;
+					      Per2 Sg Masc => appPattern2 root C1eC2tek ;
+					      Per2 Sg Fem  => appPattern2 root C1eC2tesh ;
+					      Per2 Pl _      => appPattern2 root C1eC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root C1eC2to ;
+					      Per3 Sg Fem  => appPattern2 root C1eC2ta ;
+					      Per3 Pl _=> appPattern2 root C1eC2tew }
+		  	         } ;
+
+		
+		Infinitive => table { 
+
+				 Act => table {   
+		   
+					      _    => appPattern2 root meC1C2et } ;
+
+				 Pas => table { _    => appPattern2 root meC1C2et}
+					   
+		     
+		  	         } ;
+	Parti => table {     
+		   		 Act => table {
+					      _    => appPattern2pal root C1eC2 };
+				
+				 Pas => table {
+					      _    => appPattern2pal root C1eC2 }
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+
+
+mkV2wN : Str -> Verb = \v ->
+
+		let root = getRoot2 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  {  
+
+				Act => table {
+      
+		     			      Per1 Sg      => appPattern2 root C1AC2ehu ;
+					      Per1 Pl      => appPattern2 root C1AC2en ;
+					      Per2 Sg Masc => appPattern2 root C1AC2ek;
+					      Per2 Sg Fem  => appPattern2 root C1AC2esh;
+					      Per2 Pl _      => appPattern2 root C1AC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1AC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1AC2ach ;
+					      Per3 Pl _=> appPattern2 root C1AC2u };
+
+				Pas => table {      Per1 Sg      => appPattern2 root C1AC2ehu ;
+					      Per1 Pl      => appPattern2 root C1AC2en ;
+					      Per2 Sg Masc => appPattern2 root C1AC2ek;
+					      Per2 Sg Fem  => appPattern2 root C1AC2esh;
+					      Per2 Pl _      => appPattern2 root C1AC2achehu ;   
+					      Per3 Sg Masc => appPattern2 root C1AC2a ;
+					      Per3 Sg Fem  => appPattern2 root C1AC2ach ;
+					      Per3 Pl _=> appPattern2 root C1AC2u}
+
+			    	} ;
+
+CompPerf => table  {  			      
+				Act => table {
+					      Per1 Sg      => appPattern2 root C1aC2ciealehu ;
+					      Per1 Pl      => appPattern2 root C1aC2tenal ;
+					      Per2 Sg Masc => appPattern2 root C1aC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root C1aC2teshal ;
+					      Per2 Pl _      => appPattern2 root C1aC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root C1aC2toal ;
+					      Per3 Sg Fem  => appPattern2 root C1aC2talech ;
+					      Per3 Pl _=> appPattern2 root C1aC2tewal};
+				
+				Pas => table {	      Per1 Sg      => appPattern2 root C1aC2ciealehu ;
+					      Per1 Pl      => appPattern2 root C1aC2tenal ;
+					      Per2 Sg Masc => appPattern2 root C1aC2tekal ;
+					      Per2 Sg Fem  => appPattern2 root C1aC2teshal ;
+					      Per2 Pl _      => appPattern2 root C1aC2tachehual ;
+					      Per3 Sg Masc => appPattern2 root C1aC2toal ;
+					      Per3 Sg Fem  => appPattern2 root C1aC2talech ;
+					      Per3 Pl _=> appPattern2 root C1aC2tewal}
+				
+
+				 };
+
+Cont => table {      			  Act => table {    
+				             Per1 Sg      => appPattern2 root eC1aC2  ;
+					      Per1 Pl      => appPattern2 root enC1aC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1aC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1aC2 ;
+					      Per2 Pl _      => appPattern2 root teC1aC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1aC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1aC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1aC2u };
+
+					Pas => table {   
+				             Per1 Sg      => appPattern2 root eC1aC2  ;
+					      Per1 Pl      => appPattern2 root enC1aC2 ;
+					      Per2 Sg Masc => appPattern2 root teC1aC2 ;
+					      Per2 Sg Fem  => appPattern2pal root teC1aC2 ;
+					      Per2 Pl _      => appPattern2 root teC1aC2u ;
+					      Per3 Sg Masc => appPattern2 root yeC1aC2 ;
+					      Per3 Sg Fem  => appPattern2 root teC1aC2 ;
+					      Per3 Pl _=> appPattern2 root yeC1aC2u}
+		      };		 
+		Imperf => table {     
+
+				Act => table {
+		   
+					      Per1 Sg      => appPattern2 root eC1aC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1aC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1aC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1aC2alesh ;
+					      Per2 Pl _      => appPattern2 root teC1aC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1aC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1aC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1aC2alu };
+
+				Pas => table {	      Per1 Sg      => appPattern2 root eC1aC2alehu  ;
+					      Per1 Pl      => appPattern2 root enC1aC2alen ;
+					      Per2 Sg Masc => appPattern2 root teC1aC2yaleh ;
+					      Per2 Sg Fem  => appPattern2pal root teC1aC2alesh ;
+					      Per2 Pl _      => appPattern2 root teC1aC2alachehu ;
+					      Per3 Sg Masc => appPattern2 root yeC1aC2al ;
+					      Per3 Sg Fem  => appPattern2 root teC1aC2alech ;
+					      Per3 Pl _=> appPattern2 root yeC1aC2alu}
+		     
+
+		  	         } ;
+
+		Jus_Imperat => table {   
+
+				Act => table {  
+		   
+					      Per1 Sg      => appPattern2 root leC1aC2a  ;
+					      Per1 Pl      => appPattern2 root enC1aC2a ;
+					      Per2 Sg Masc => appPattern2 root C1aC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1aC2i ;
+					      Per2 Pl _      => appPattern2 root C1eC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root tC1aC2a ;
+					      Per3 Pl _=> appPattern2 root yC1aC2u };
+
+				Pas => table {   Per1 Sg      => appPattern2 root leC1aC2a  ;
+					      Per1 Pl      => appPattern2 root enC1aC2a ;
+					      Per2 Sg Masc => appPattern2 root C1aC2  ;
+					      Per2 Sg Fem  => appPattern2pal root C1aC2i ;
+					      Per2 Pl _      => appPattern2 root C1eC2u ;
+					      Per3 Sg Masc => appPattern2 root yC1aC2a ;
+					      Per3 Sg Fem  => appPattern2 root tC1aC2a ;
+					      Per3 Pl _=> appPattern2 root yC1aC2u}
+		  	         } ;
+
+		
+		Gerund => table {    
+
+				Act => table {
+		   
+					      Per1 Sg      => appPattern2 root C1aC2cie ;
+					      Per1 Pl      => appPattern2 root C1aC2ten ;
+					      Per2 Sg Masc => appPattern2 root C1aC2tek ;
+					      Per2 Sg Fem  => appPattern2 root C1aC2tesh ;
+					      Per2 Pl _      => appPattern2 root C1aC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root C1aC2to ;
+					      Per3 Sg Fem  => appPattern2 root C1aC2ta ;
+					      Per3 Pl _=> appPattern2 root C1aC2tew} ;
+
+				Pas => table {      Per1 Sg      => appPattern2 root C1aC2cie ;
+					      Per1 Pl      => appPattern2 root C1aC2ten ;
+					      Per2 Sg Masc => appPattern2 root C1aC2tek ;
+					      Per2 Sg Fem  => appPattern2 root C1aC2tesh ;
+					      Per2 Pl _      => appPattern2 root C1aC2tachehu ;
+					      Per3 Sg Masc => appPattern2 root C1aC2to ;
+					      Per3 Sg Fem  => appPattern2 root C1aC2ta ;
+					      Per3 Pl _=> appPattern2 root C1aC2tew}
+		  	         } ;
+
+		
+		Infinitive => table { 
+
+				Act => table {    
+		   
+					      _    => appPattern2 root meC1aC2et };
+
+				Pas => table {_    => appPattern2 root meC1aC2et}
+					   
+		     
+		  	         } ;
+	Parti => table {    
+				Act => table { 
+		   
+					      _    => appPattern2pal root C1aC2i };
+
+				Pas => table {_    => appPattern2pal root C1aC2i }
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+
+	
+---------- QUAD
+
+	mkV4dbdb : Str -> Verb = \v ->
+
+		let root = getRoot4 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  { 
+
+				Act => table { 
+      
+		     			      Per1 Sg      => appPattern4 root C1aC2aC3aC4hu ;
+					      Per1 Pl      => appPattern4 root C1aC2aC3aC4n ;
+					      Per2 Sg Masc => appPattern4 root C1aC2aC3aC4k ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2aC3aC4sh ;
+					      Per2 Pl _      => appPattern4 root C1aC2aC3aC4achehu ;   
+					      Per3 Sg Masc => appPattern4 root C1aC2aC3aC4a ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2aC3aC4ech ;
+					      Per3 Pl _=> appPattern4 root C1aC2aC3aC4u };
+
+				Pas => table {Per1 Sg      => appPattern4 root C1aC2aC3aC4hu ;
+					      Per1 Pl      => appPattern4 root C1aC2aC3aC4n ;
+					      Per2 Sg Masc => appPattern4 root C1aC2aC3aC4k ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2aC3aC4sh ;
+					      Per2 Pl _      => appPattern4 root C1aC2aC3aC4achehu ;   
+					      Per3 Sg Masc => appPattern4 root C1aC2aC3aC4a ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2aC3aC4ech ;
+					      Per3 Pl _=> appPattern4 root C1aC2aC3aC4u}
+
+			    	} ;
+
+CompPerf => table  {  			      
+				Act => table {
+					      Per1 Sg      => appPattern4pal root C1aC2C3C4iealehu ;
+					      Per1 Pl      => appPattern4 root C1aC2C3C4enal ;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4ekal ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2C3C4eshal ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4achehual ;
+					      Per3 Sg Masc => appPattern4 root C1aC2C3C4oal ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2C3C4alech ;
+					      Per3 Pl _=> appPattern4 root C1aC2C3C4ewal  };
+
+
+				Pas => table {   Per1 Sg      => appPattern4pal root C1aC2C3C4iealehu ;
+					      Per1 Pl      => appPattern4 root C1aC2C3C4enal ;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4ekal ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2C3C4eshal ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4achehual ;
+					      Per3 Sg Masc => appPattern4 root C1aC2C3C4oal ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2C3C4alech ;
+					      Per3 Pl _=> appPattern4 root C1aC2C3C4ewal}
+};
+
+Cont => table {	     			
+      				Act => table {
+					      Per1 Sg      => appPattern4 root eC1aC2aC3C4  ;
+					      Per1 Pl      => appPattern4 root enC1aC2aC3C4 ;
+					      Per2 Sg Masc => appPattern4 root teC1aC2aC3C4 ;
+					      Per2 Sg Fem  => appPattern4pal root teC1aC2aC3C4i ;
+					      Per2 Pl _      => appPattern4 root teC1aC2aC3C4u ;
+					      Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4 ;
+					      Per3 Sg Fem  => appPattern4 root teC1aC2aC3C4 ;
+					      Per3 Pl _=> appPattern4 root yeC1aC2aC3C4u };
+
+				Pas => table {   Per1 Sg      => appPattern4 root eC1aC2aC3C4  ;
+					      Per1 Pl      => appPattern4 root enC1aC2aC3C4 ;
+					      Per2 Sg Masc => appPattern4 root teC1aC2aC3C4 ;
+					      Per2 Sg Fem  => appPattern4pal root teC1aC2aC3C4i ;
+					      Per2 Pl _      => appPattern4 root teC1aC2aC3C4u ;
+					      Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4 ;
+					      Per3 Sg Fem  => appPattern4 root teC1aC2aC3C4 ;
+					      Per3 Pl _=> appPattern4 root yeC1aC2aC3C4u }
+				
+ };		 
+		Imperf => table {     
+
+					Act => table {
+		   
+					      Per1 Sg      => appPattern4 root eC1aC2aC3C4alehu  ;
+					      Per1 Pl      => appPattern4 root enC1aC2aC3C4alen ;
+					      Per2 Sg Masc => appPattern4 root teC1aC2aC3C4yaleh ;
+					      Per2 Sg Fem  => appPattern4pal root teC1aC2aC3C4aleh ;
+					      Per2 Pl _     => appPattern4 root teC1aC2aC3C4alachehu ;
+					      Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4al ;
+					      Per3 Sg Fem  => appPattern4 root teC1aC2aC3C4alech ;
+					      Per3 Pl _=> appPattern4 root yeC1aC2aC3C4alu};
+
+
+					Pas => table {      Per1 Sg      => appPattern4 root eC1aC2aC3C4alehu  ;
+					      Per1 Pl      => appPattern4 root enC1aC2aC3C4alen ;
+					      Per2 Sg Masc => appPattern4 root teC1aC2aC3C4yaleh ;
+					      Per2 Sg Fem  => appPattern4pal root teC1aC2aC3C4aleh ;
+					      Per2 Pl _     => appPattern4 root teC1aC2aC3C4alachehu ;
+					      Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4al ;
+					      Per3 Sg Fem  => appPattern4 root teC1aC2aC3C4alech ;
+					      Per3 Pl _=> appPattern4 root yeC1aC2aC3C4alu}
+		  	         } ;
+
+		Jus_Imperat => table {    
+
+					Act => table { 
+		   
+					      Per1 Sg      => appPattern4 root leC1aC2C3C4;
+					      Per1 Pl      => appPattern4 root enC1aC2C3C4;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4  ;
+					      Per2 Sg Fem  => appPattern4pal root C1aC2C3C4i ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4u ;
+					      Per3 Sg Masc => appPattern4 root yC1aC2C3C4 ;
+					      Per3 Sg Fem  => appPattern4 root tC1aC2C3C4 ;
+					      Per3 Pl _=> appPattern4 root yC1aC2C3C4u};
+
+					Pas => table {     Per1 Sg      => appPattern4 root leC1aC2C3C4;
+					      Per1 Pl      => appPattern4 root enC1aC2C3C4;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4  ;
+					      Per2 Sg Fem  => appPattern4pal root C1aC2C3C4i ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4u ;
+					      Per3 Sg Masc => appPattern4 root yC1aC2C3C4 ;
+					      Per3 Sg Fem  => appPattern4 root tC1aC2C3C4 ;
+					      Per3 Pl _=> appPattern4 root yC1aC2C3C4u}
+		  	         } ;
+
+		
+		Gerund => table {  
+
+					Act => table {   
+		   
+					      Per1 Sg      => appPattern4pal root C1aC2C3C4ie ;
+					      Per1 Pl      => appPattern4 root C1aC2C3C4en ;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4ek ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2C3C4esh ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4achehu ;
+					      Per3 Sg Masc => appPattern4 root C1aC2C3C4o ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2C3C4a ;
+					      Per3 Pl _=> appPattern4 root C1aC2C3C4ew};
+
+					Pas => table { Per1 Sg      => appPattern4pal root C1aC2C3C4ie ;
+					      Per1 Pl      => appPattern4 root C1aC2C3C4en ;
+					      Per2 Sg Masc => appPattern4 root C1aC2C3C4ek ;
+					      Per2 Sg Fem  => appPattern4 root C1aC2C3C4esh ;
+					      Per2 Pl _      => appPattern4 root C1aC2C3C4achehu ;
+					      Per3 Sg Masc => appPattern4 root C1aC2C3C4o ;
+					      Per3 Sg Fem  => appPattern4 root C1aC2C3C4a ;
+					      Per3 Pl _=> appPattern4 root C1aC2C3C4ew}
+		  	         } ;
+
+		
+		Infinitive => table {     
+					Act => table {
+		   
+					      _    => appPattern4 root meC1aC2C3aC4 };
+
+					Pas => table {_    => appPattern4 root meC1aC2C3aC4 }
+					   
+		     
+		  	         } ;
+
+		Parti => table {   
+					Act => table {  
+		   
+					      _    => appPattern4pal root C1eC2C3aC4i };
+
+					Pas => table {_    => appPattern4pal root C1eC2C3aC4i}
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+
+
+--test : for verbs that start with A - need further clearup with those -AS as well
+	mkV3asr : Str -> Verb = \v ->
+
+		let root = getRoot3 v
+
+		in {
+
+		s = table { 
+
+
+		Perf => table  { 
+
+				Act => table { 
+      
+		     			      Per1 Sg      => appPatternRemove root C1aC2aC3ku ;
+					      Per1 Pl      => appPatternRemove root C1aC2aC3n ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2aC3k ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2aC3sh ;
+					      Per2 Pl _      => appPatternRemove root C1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPatternRemove root C1aC2aC3e ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2aC3ech ;
+					      Per3 Pl _=> appPatternRemove root C1aC2aC3u };
+
+				Pas => table {    Per1 Sg      => appPatternRemove root C1aC2aC3ku ;
+					      Per1 Pl      => appPatternRemove root C1aC2aC3n ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2aC3k ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2aC3sh ;
+					      Per2 Pl _      => appPatternRemove root C1aC2aC3achehu ;   
+					      Per3 Sg Masc => appPatternRemove root C1aC2aC3e ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2aC3ech ;
+					      Per3 Pl _=> appPatternRemove root C1aC2aC3u }
+			    	} ;
+
+CompPerf => table  {    			
+				Act => table {
+					Per1 Sg      => appPatternRemove root C1aC2C3ie ;
+					      Per1 Pl      => appPatternRemove root C1aC2C3en ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2C3esh ;
+					      Per2 Pl _     => appPatternRemove root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPatternRemove root C1aC2C3o ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2C3a ;
+					      Per3 Pl _=> appPatternRemove root C1aC2C3ew};
+
+			Pas => table {Per1 Sg      => appPatternRemove root C1aC2C3ie ;
+					      Per1 Pl      => appPatternRemove root C1aC2C3en ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2C3esh ;
+					      Per2 Pl _     => appPatternRemove root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPatternRemove root C1aC2C3o ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2C3a ;
+					      Per3 Pl _=> appPatternRemove root C1aC2C3ew}
+
+			
+
+  };
+
+Cont => table { 	
+
+				Act => table {			
+						Per1 Sg      => appPatternRemove root eC1aC2C3alehu ;
+					      Per1 Pl      => appPatternRemove root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPatternRemove root teC1aC2C3aleh ;
+					      Per2 Pl _      => appPatternRemove root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPatternRemove root teC1aC2C3alech ;
+					      Per3 Pl _=> appPatternRemove root yeC1aC2C3alu };
+
+
+				Pas => table {	Per1 Sg      => appPatternRemove root eC1aC2C3alehu ;
+					      Per1 Pl      => appPatternRemove root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPatternRemove root teC1aC2C3aleh ;
+					      Per2 Pl _      => appPatternRemove root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPatternRemove root teC1aC2C3alech ;
+					      Per3 Pl _=> appPatternRemove root yeC1aC2C3alu}
+			};
+		 
+		Imperf => table {  
+					Act => table {		   
+					      Per1 Sg      => appPatternRemove root eC1aC2C3alehu ;
+					      Per1 Pl      => appPatternRemove root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPatternRemove root teC1aC2C3aleh ;
+					      Per2 Pl _      => appPatternRemove root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPatternRemove root teC1aC2C3alech ;
+					      Per3 Pl _=> appPatternRemove root yeC1aC2C3alu};
+
+					Pas => table {   Per1 Sg      => appPatternRemove root eC1aC2C3alehu ;
+					      Per1 Pl      => appPatternRemove root enC1aC2C3alen ;
+					      Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ;
+					      Per2 Sg Fem  => appPatternRemove root teC1aC2C3aleh ;
+					      Per2 Pl _      => appPatternRemove root teC1aC2C3alachehu ;
+					      Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ;
+					      Per3 Sg Fem  => appPatternRemove root teC1aC2C3alech ;
+					      Per3 Pl _=> appPatternRemove root yeC1aC2C3alu}
+
+		  	         } ;
+
+		Jus_Imperat => table { 
+
+					Act => table {    
+		   
+					      Per1 Sg      => appPatternRemove root leC1C2aC3  ;
+					      Per1 Pl      => appPatternRemove root enC1C2aC3 ;
+					      Per2 Sg Masc => appPatternRemove root C1C2aC3 ;
+					      Per2 Sg Fem  => appPatternRemove root C1C2aC3i ;
+					      Per2 Pl _      => appPatternRemove root C1C2aC3u ;
+					      Per3 Sg Masc => appPatternRemove root yC1C2aC3 ;
+					      Per3 Sg Fem  => appPatternRemove root tC1C2aC3 ;
+					      Per3 Pl _=> appPatternRemove root yC1C2aC3u };
+
+					Pas => table {Per1 Sg      => appPatternRemove root leC1C2aC3  ;
+					      Per1 Pl      => appPatternRemove root enC1C2aC3 ;
+					      Per2 Sg Masc => appPatternRemove root C1C2aC3 ;
+					      Per2 Sg Fem  => appPatternRemove root C1C2aC3i ;
+					      Per2 Pl _      => appPatternRemove root C1C2aC3u ;
+					      Per3 Sg Masc => appPatternRemove root yC1C2aC3 ;
+					      Per3 Sg Fem  => appPatternRemove root tC1C2aC3 ;
+					      Per3 Pl _=> appPatternRemove root yC1C2aC3u}
+		  	         } ;
+
+		
+		Gerund => table { 
+
+
+				Act => table {    
+		   
+					      Per1 Sg      => appPatternRemove root C1aC2C3ie ;
+					      Per1 Pl      => appPatternRemove root C1aC2C3en ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2C3esh ;
+					      Per2 Pl _     => appPatternRemove root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPatternRemove root C1aC2C3o ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2C3a ;
+					      Per3 Pl _=> appPatternRemove root C1aC2C3ew };
+
+				Pas => table { Per1 Sg      => appPatternRemove root C1aC2C3ie ;
+					      Per1 Pl      => appPatternRemove root C1aC2C3en ;
+					      Per2 Sg Masc => appPatternRemove root C1aC2C3ek ;
+					      Per2 Sg Fem  => appPatternRemove root C1aC2C3esh ;
+					      Per2 Pl _     => appPatternRemove root C1aC2C3achehu ;
+					      Per3 Sg Masc => appPatternRemove root C1aC2C3o ;
+					      Per3 Sg Fem  => appPatternRemove root C1aC2C3a ;
+					      Per3 Pl _=> appPatternRemove root C1aC2C3ew}
+		  	         } ;
+
+		
+	Infinitive => table { 
+
+				Act => table {    
+		   
+					      _    => appPatternRemove root meC1C2aC3 };
+
+				Pas => table {_    => appPatternRemove root meC1C2aC3}
+					   
+		     
+		  	         } ;
+
+	Parti => table {     
+		   		Act => table {
+					      _    => appPatternRemove root meC1C2aC3  };
+
+				Pas => table { _    => appPatternRemove root meC1C2aC3  }
+					   
+		     
+		  	         }
+
+
+			  }
+		  };
+
+-- trial
+mkV3al: Str -> Verb = \v ->
+
+	{
+
+		s = table { 
+
+
+		Perf => table  { 
+
+			Act => table {
+
+		     			      Per1 Sg      => "ነበረኝ" ;
+					      Per1 Pl      => "ነበረን";
+					      Per2 Sg Masc =>"ነበረህ";
+					      Per2 Sg Fem  => "ነበረሽ";
+					      Per2 Pl _    => "ነበራችሁ";
+					      Per3 Sg Masc => "ነበረው";
+					      Per3 Sg Fem  => "ነበራት";
+					      Per3 Pl _=>  "ነበራቸው"};
+
+                         Pas => table {
+
+					      Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""
+
+				}
+			    	} ;
+
+               CompPerf => table  {  
+
+       			Act => table {
+	 	     			      Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> "" };
+
+			Pas => table {	       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> "" }
+			    	} ;
+ 
+
+                Cont => table {    
+
+				Act => table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""};
+
+  			Pas =>table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""}
+};
+		 
+		Imperf => table {     
+		   
+			Act => table {
+					       Per1 Sg      => "አለኝ" ;
+					      Per1 Pl      => "አለን";
+					      Per2 Sg Masc =>"አለህ";
+					      Per2 Sg Fem  => "አለሽ";
+					      Per2 Pl _    => "አላችሁ";
+					      Per3 Sg Masc => "አለው";
+					      Per3 Sg Fem  => "አላት";
+					      Per3 Pl _=>  "አላቸው"};
+
+			Pas => table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""}};
+
+		Jus_Imperat => table {  
+
+				Act => table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> "" };
+			      Pas => table  {
+					      Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""}
+		  	         } ;
+
+		
+		Gerund => table {   
+
+				Act => table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""};
+
+				Pas => table {
+					       Per1 Sg      => "" ;
+					      Per1 Pl      => "" ;
+					      Per2 Sg Masc => "" ;
+					      Per2 Sg Fem  => "" ;
+					      Per2 Pl _     => "" ;   
+					      Per3 Sg Masc => "" ;
+					      Per3 Sg Fem  => "" ;
+					      Per3 Pl _=> ""}
+		  	         } ;
+
+		
+	Infinitive => table {     
+		   			Act => table {
+					     	 _    => "" };
+
+				       Pas => table {  _    => "" }
+					   
+		     
+		  	         }; 
+	Parti => table {     
+		   			Act => table {
+					      _    => "" };
+					Pas => table { _ => "" }
+					   
+		     
+		  	         }
+}
+			  
+};		
+
+
+
+
+} ;
diff --git a/lib/src/amharic/PatternsAmh.gf b/lib/src/amharic/PatternsAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/PatternsAmh.gf
@@ -0,0 +1,1389 @@
+resource PatternsAmh =  {
+
+flags coding=utf8 ;
+
+ oper
+
+{-WORK I - Inclusions of Newer forms : 
+
+Sofar, the forms considered were SP,CI,JI,G and I but these forms wont suffice to generate all the required tensed together with the auxillaries. There for inclusion of the CP C and P is found mandatory :(
+
+Verb Forms
+
+Simple Perfect	ለበሰ
+	Compound Perfect ለብሷል --- G+
+	Contingent    ይለብስ   ------- CI -
+Compound Imperfect ይለብሳል
+Jussive	Imperative ይልበስ
+Gerund	ለብሶ  
+Infinitive መልበስ
+	Participle ለባሽ	--------------- NEW -}
+
+--Starting with type Tri-Radical Roots
+--mkV3gdl Eg.
+--Perf -- 
+C1aC2aC3ku = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3="k&"};
+C1aC2aC3n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="n"};
+C1aC2aC3k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="k"}; 
+C1aC2aC3sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="x"}; 
+C1aC2aC3achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="!ch&"}; 
+C1aC2aC3e = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="'"}; 
+C1aC2aC3ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="'c"}; 
+C1aC2aC3u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="&"}; 
+
+---Cmpd Perf
+
+C1aC2C3iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3="%y!l'h&"};
+C1aC2C3enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'n!l"};
+C1aC2C3ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'k!l"}; 
+C1aC2C3eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'x!l"}; 
+C1aC2C3achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!cX7l"}; 
+C1aC2C3oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="7l"}; 
+C1aC2C3alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!l'c"}; 
+C1aC2C3ewwal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'w!l"}; 
+
+
+--Imper --mkV3gdl  
+eC1aC2C3alehu = { C1 = "ä" ; C1C2="'"; C2C3 =""; C3="!l'h&"}; 
+enC1aC2C3alen = { C1 = "än" ; C1C2="'"; C2C3 =""; C3="!l'n"};
+teC1aC2C3yaleh = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l'h"};
+teC1aC2C3aleh = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="y!l'x"};
+teC1aC2C3alachehu = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l!ch&"};
+yeC1aC2C3al = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="!l"};
+teC1aC2C3alech = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l'c"};
+yeC1aC2C3alu = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="!l&"};
+
+
+--Contingent --mkV3gdl  
+eC1aC2C3 = { C1 = "ä" ; C1C2="'"; C2C3 =""; C3=""}; 
+enC1aC2C3e = { C1 = "än" ; C1C2="'"; C2C3 =""; C3=""};
+teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""};
+--teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""};-- 3
+teC1aC2C3u = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="&"};
+yeC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3=""};
+--teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""};
+yeC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="&"};
+
+--
+
+--Jus_Imperat mkV3gdl
+leC1C2aC3 = {C1 ="l" ; C1C2=""; C2C3 ="'"; C3=""};
+enC1C2aC3 = { C1 = "än" ; C1C2=""; C2C3 ="'"; C3=""};
+C1C2aC3 = { C1 = "" ; C1C2=""; C2C3 ="'"; C3=""}; 
+C1C2aC3i = { C1 = "" ; C1C2=""; C2C3 ="'"; C3="#"}; 
+C1C2aC3u = { C1 = "" ; C1C2=""; C2C3 ="'"; C3="&"}; 
+yC1C2aC3 = { C1 = "y" ; C1C2=""; C2C3 ="'"; C3=""}; 
+tC1C2aC3 = { C1 = "t" ; C1C2=""; C2C3 ="'"; C3=""}; 
+yC1C2aC3u = { C1 = "y" ; C1C2=""; C2C3 ="'"; C3="&"}; 
+--Gerund mkV3gdl
+C1aC2C3ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3="%"};
+C1aC2C3en = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'n"};
+C1aC2C3ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'k"}; 
+C1aC2C3esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'x"}; 
+C1aC2C3achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!ch&"}; 
+C1aC2C3o = { C1 = "" ; C1C2="'"; C2C3 =""; C3="/"}; 
+C1aC2C3a = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!"}; 
+C1aC2C3ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'w"}; 
+--Infinitve mkV3gdl
+meC1C2aC3 = {C1 ="m'" ; C1C2=""; C2C3 ="'"; C3=""};
+
+--Participle mkV3gdl
+C1eC2aC3 = {C1 ="" ; C1C2="'"; C2C3 ="!"; C3="#"};
+
+				--Passive perf mkV3gdl
+
+				pteC1aC2aC3ku = {C1 ="t'" ; C1C2="'"; C2C3 ="'"; C3="k&"};
+				pteC1aC2aC3n = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="n"};
+				pteC1aC2aC3k = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="k"}; 
+				pteC1aC2aC3sh = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="x"}; 
+				pteC1aC2aC3achehu = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="!ch&"}; 
+				pteC1aC2aC3e = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="'"}; 
+				pteC1aC2aC3ech = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="'c"}; 
+				pteC1aC2aC3u = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="&"}; 
+
+				--Passive Cmpd Perf
+
+				pteC1aC2C3iealehu = {C1 ="t'" ; C1C2="'"; C2C3 =""; C3="%y!l'h&"};
+				pteC1aC2C3enal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'n!l"};
+				pteC1aC2C3ekal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'k!l"}; 
+				pteC1aC2C3eshal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'x!l"}; 
+				pteC1aC2C3achehual = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!cX7l"}; 
+				pteC1aC2C3oal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="7l"}; 
+				pteC1aC2C3alech = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!l'c"}; 
+				pteC1aC2C3ewwal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'w!l"}; 
+
+				--Passive Imper --mkV3gdl  
+
+				peC1aC2aC3alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3="!l'h&"}; 
+				penC1aC2aC3alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3="!l'n"};
+				pteC1aC2aC3yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l'h"};
+				pteC1aC2aC3aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="y!l'x"};
+				pteC1aC2aC3alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l!ch&"};
+				pyeC1aC2aC3al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="!l"};
+				pteC1aC2aC3alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l'c"};
+				pyeC1aC2aC3alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="!l&"};
+
+				--Passive Contingent --mkV3gdl  
+
+				peC1aC2C3 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3=""}; 
+				penC1aC2C3e = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3=""};
+				pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""};
+				pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""};-- 3
+				pteC1aC2C3u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="&"};
+				pyeC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3=""};
+				pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""};
+				pyeC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="&"};
+
+				--Passive Jus_Imperat mkV3gdl
+
+				pleC1C2aC3 = {C1 ="l" ; C1C2="'"; C2C3 ="'"; C3=""};
+				penC1C2aC3 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3=""};
+				pC1C2aC3 = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3=""}; 
+				pC1C2aC3i = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="#"}; 
+				pC1C2aC3u = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="&"}; 
+				pyC1C2aC3 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3=""}; 
+				ptC1C2aC3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""}; 
+				pyC1C2aC3u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="&"}; 
+
+				--Passive Gerund mkV3gdl
+
+				ptC1aC2C3ie = {C1 ="t'" ; C1C2="'"; C2C3 =""; C3="%"};
+				ptC1aC2C3en = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'n"};
+				ptC1aC2C3ek = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'k"}; 
+				ptC1aC2C3esh = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'x"}; 
+				ptC1aC2C3achehu = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!ch&"}; 
+				ptC1aC2C3o = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="/"}; 
+				ptC1aC2C3a = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!"}; 
+				ptC1aC2C3ew = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'w"}; 
+
+				--Passive Infinitve mkV3gdl
+
+				pmeC1C2aC3 = {C1 ="m'" ; C1C2="'"; C2C3 ="'"; C3=""};
+
+				--Passive Participle perf mkV3gdl
+
+				pteC1eC2aC3 = {C1 ="t'" ; C1C2="'"; C2C3 ="!"; C3="#"};
+
+
+--mkV3mls Eg. mls,flg, Tbq, zmr
+----Jus_Imperat mkV3mls
+leC1aC2C3 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3=""};
+enC1aC2C3 = { C1 = "(n" ; C1C2="'"; C2C3 =""; C3=""};
+C1aC2C3 = { C1 = "" ; C1C2="'"; C2C3 =""; C3=""}; 
+C1aC2C3i = { C1 = "" ; C1C2="'"; C2C3 =""; C3="#"}; 
+C1aC2C3u = { C1 = "" ; C1C2="'"; C2C3 =""; C3="&"}; 
+yC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3=""}; 
+tC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""}; 
+yC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="&"}; 
+--Infinitve mkV3mls
+meC1aC2aC3 = {C1 ="m'" ; C1C2="'"; C2C3 ="'"; C3=""};
+---mkV3brk
+--Perf -- mkV3brk
+C1AC2aC3ku = {C1 ="" ; C1C2="!"; C2C3 ="'"; C3="k&"};
+C1AC2aC3n = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="n"};
+C1AC2aC3k = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="k"}; 
+C1AC2aC3sh = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="x"}; 
+C1AC2aC3achehu = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="!ch&"}; 
+C1AC2aC3e = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="'"}; 
+C1AC2aC3ech = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="'c"}; 
+C1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; 
+--Imper -- mkV3brk 
+eC1AC2C3alehu = { C1 = "ä" ; C1C2="!"; C2C3 =""; C3="!l'h&"}; 
+enC1AC2C3alen = { C1 = "än" ; C1C2="!"; C2C3 =""; C3="!l'n"};
+teC1AC2C3yaleh = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'h"};
+teC1AC2C3aleh = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="y!l'x"};
+teC1AC2C3alachehu = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l!ch&"};
+yeC1AC2C3al = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="!l"};
+teC1AC2C3alech = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'c"};
+yeC1AC2C3alu = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="!l&"};
+
+--Cont -- mkV3brk 
+eC1AC2C3 = { C1 = "ä" ; C1C2="!"; C2C3 =""; C3=""}; 
+enC1AC2C3e = { C1 = "än" ; C1C2="!"; C2C3 =""; C3=""};
+teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3=""};
+--teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="y!l'x"};
+teC1AC2C3u = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="&"};
+yeC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 =""; C3=""};
+--teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'c"};
+yeC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"};
+
+--Jus_Imperat mkV3brk
+leC1AC2C3 = {C1 ="l" ; C1C2="!"; C2C3 =""; C3=""};
+enC1AC2C3 = { C1 = "(n" ; C1C2="!"; C2C3 =""; C3=""};
+C1AC2C3 = { C1 = "" ; C1C2="!"; C2C3 =""; C3=""}; 
+C1AC2C3i = { C1 = "" ; C1C2="!"; C2C3 =""; C3="#"}; 
+C1AC2C3u = { C1 = "" ; C1C2="!"; C2C3 =""; C3="&"}; 
+yC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 =""; C3=""}; 
+tC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3=""}; 
+yC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"};
+
+
+
+--Gerund  mkV3brk
+C1AC2C3ie = {C1 ="" ; C1C2="!"; C2C3 =""; C3="%"};
+C1AC2C3en = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'n"};
+C1AC2C3ek = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'k"}; 
+C1AC2C3esh = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'x"}; 
+C1AC2C3achehu = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!ch&"}; 
+C1AC2C3o = { C1 = "" ; C1C2="!"; C2C3 =""; C3="/"}; 
+C1AC2C3a = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!"}; 
+C1AC2C3ew = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'w"}; 
+
+--CompPer  mkV3brk  %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l 
+C1AC2C3iealehu = {C1 ="" ; C1C2="!"; C2C3 =""; C3="%y!l'h&"};
+C1AC2C3enal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'n!l"};
+C1AC2C3ekal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'k!l"}; 
+C1AC2C3eshal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'x!l"}; 
+C1AC2C3achehual = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!cX7l"}; 
+C1AC2C3oal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="7l"}; 
+C1AC2C3alech = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!l'c"}; 
+C1AC2C3ewwal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'w!l"}; 
+
+
+--Infinitive mkV3brk
+meC1AC2aC3 = {C1 ="m'" ; C1C2="!"; C2C3 ="'"; C3=""};
+
+--Participle mkV3brk
+C1aC2aC3i = {C1 ="" ; C1C2="!"; C2C3 ="!"; C3="#"};
+
+	---mkV3brk
+				--Perf -- mkV3brk
+				pC1AC2aC3ku = {C1 ="t'" ; C1C2="!"; C2C3 ="'"; C3="k&"};
+				pC1AC2aC3n = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="n"};
+				pC1AC2aC3k = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="k"}; 
+				pC1AC2aC3sh = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="x"}; 
+				pC1AC2aC3achehu = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="!ch&"}; 
+				pC1AC2aC3e = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="'"}; 
+				pC1AC2aC3ech = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="'c"}; 
+				pC1AC2aC3u = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="&"}; 
+				--Imper -- mkV3brk 
+				peC1AC2C3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; 
+				penC1AC2C3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"};
+				pteC1AC2C3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"};
+				pteC1AC2C3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"};
+				pteC1AC2C3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"};
+				pyeC1AC2C3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"};
+				pteC1AC2C3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"};
+				pyeC1AC2C3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"};
+
+				--Cont -- mkV3brk 
+				peC1AC2C3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				penC1AC2C3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+				--pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"};
+				pteC1AC2C3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"};
+				pyeC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""};
+				--pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"};
+				pyeC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"};
+
+				--Jus_Imperat mkV3brk
+				pleC1AC2C3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""};
+				penC1AC2C3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pC1AC2C3 = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				pC1AC2C3i = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="#"}; 
+				pC1AC2C3u = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="&"}; 
+				pyC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				ptC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				pyC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"};
+
+
+
+				--Gerund  mkV3brk
+				pC1AC2C3ie = {C1 ="t'" ; C1C2="!"; C2C3 =""; C3="%"};
+				pC1AC2C3en = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'n"};
+				pC1AC2C3ek = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'k"}; 
+				pC1AC2C3esh = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'x"}; 
+				pC1AC2C3achehu = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!ch&"}; 
+				pC1AC2C3o = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="/"}; 
+				pC1AC2C3a = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!"}; 
+				pC1AC2C3ew = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'w"}; 
+
+				--CompPer  mkV3brk  %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l 
+				pC1AC2C3iealehu = {C1 ="t'" ; C1C2="!"; C2C3 =""; C3="%y!l'h&"};
+				pC1AC2C3enal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'n!l"};
+				pC1AC2C3ekal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'k!l"}; 
+				pC1AC2C3eshal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'x!l"}; 
+				pC1AC2C3achehual = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!cX7l"}; 
+				pC1AC2C3oal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="7l"}; 
+				pC1AC2C3alech = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!l'c"}; 
+				pC1AC2C3ewwal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'w!l"}; 
+
+
+				--Infinitive mkV3brk
+				pmeC1AC2aC3 = {C1 ="m'" ; C1C2="!"; C2C3 ="'"; C3=""};
+
+				--Participle mkV3brk
+				pC1aC2aC3i = {C1 ="t'" ; C1C2="!"; C2C3 ="!"; C3="#"};
+
+
+-- taTebe
+---mkV3tTb
+--Imper -- mkV3tTb 
+eC1AC2aC3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; 
+enC1AC2aC3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"};
+teC1AC2aC3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"};
+teC1AC2aC3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"};
+teC1AC2aC3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"};
+yeC1AC2aC3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"};
+teC1AC2aC3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"};
+yeC1AC2aC3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"};
+
+--Cont -- mkV3tTb 
+eC1AC2aC3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+enC1AC2aC3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""};
+teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+teC1AC2aC3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"};
+yeC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""};
+--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+yeC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"};
+
+--Jus_Imperat mkV3tTb
+leC1AC2aC3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""};
+enC1AC2aC3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""};
+C1AC2aC3 = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+C1AC2aC3i = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="#"}; 
+C1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; 
+yC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+tC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+yC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"};
+
+
+						-- taTebe
+				---mkV3tTb
+				--Imper -- mkV3tTb 
+				peC1AC2aC3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; 
+				penC1AC2aC3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"};
+				pteC1AC2aC3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"};
+				pteC1AC2aC3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"};
+				pteC1AC2aC3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"};
+				pyeC1AC2aC3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"};
+				pteC1AC2aC3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"};
+				pyeC1AC2aC3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"};
+
+				--Cont -- mkV3tTb 
+				peC1AC2aC3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				penC1AC2aC3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pteC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+				--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pteC1AC2aC3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"};
+				pyeC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""};
+				--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pyeC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"};
+
+				--Jus_Imperat mkV3tTb
+				pleC1AC2aC3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""};
+				penC1AC2aC3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""};
+				pC1AC2aC3 = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				pC1AC2aC3i = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="#"}; 
+				-- pC1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; 
+				pyC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				ptC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; 
+				pyC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"};
+
+
+--mkV3qTr Eg.
+--Perf -- 
+C1oC2eC3ku = {C1 ="" ; C1C2="/"; C2C3 ="'"; C3="k&"};
+C1oC2eC3n = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="n"};
+C1oC2eC3k = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="k"}; 
+C1oC2eC3sh = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="x"}; 
+C1oC2eC3achehu = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="!ch&"}; 
+C1oC2eC3e = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="'"}; 
+C1oC2eC3ech = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="'c"}; 
+C1oC2eC3u = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="&"}; 
+--Imper --mkV3qTr  
+eC1oC2C3alehu = { C1 = "ä" ; C1C2="/"; C2C3 =""; C3="!l'h&"}; 
+enC1oC2C3alen = { C1 = "än" ; C1C2="/"; C2C3 =""; C3="!l'n"};
+teC1oC2C3aleh = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l'h"};
+teC1oC2C3yalesh = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="y!l'x"};
+teC1oC2C3alachehu = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l!ch&"};
+yeC1oC2C3al = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="!l"};
+teC1oC2C3alech = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l'c"};
+yeC1oC2C3alu = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="!l&"};
+
+--Cont mkV3qTr  
+eC1oC2C3 = { C1 = "ä" ; C1C2="/"; C2C3 =""; C3=""}; 
+enC1oC2C3e = { C1 = "än" ; C1C2="/"; C2C3 =""; C3=""};
+teC1oC2C3 = { C1 = "t" ; C1C2="/"; C2C3 =""; C3=""};
+--teC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""};
+teC1oC2C3u = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="&"};
+yeC1oC2C3 = { C1 = "y" ; C1C2="/"; C2C3 =""; C3=""};
+--teC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""};
+yeC1oC2C3u = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="&"};
+
+--Jus_Imperat mkV3qTr
+leC1uC2eC3 = {C1 ="l" ; C1C2="&"; C2C3 ="'"; C3=""};
+enC1uC2eC3 = { C1 = "än" ; C1C2="&"; C2C3 ="'"; C3=""};
+C1uC2eC3 = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3=""}; 
+C1uC2eC3i = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3="#"}; 
+C1uC2eC3u = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3="&"}; 
+yC1uC2eC3 = { C1 = "y" ; C1C2="&"; C2C3 ="'"; C3=""}; 
+tC1uC2eC3 = { C1 = "t" ; C1C2="&"; C2C3 ="'"; C3=""}; 
+yC1uC2eC3u = { C1 = "y" ; C1C2="&"; C2C3 ="'"; C3="&"}; 
+
+--CompPerf mkV3qTr  %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l
+C1oC2C3iealehu = {C1 ="" ; C1C2="/"; C2C3 =""; C3="%y!l'h&"};
+C1oC2C3enal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'n!l"};
+C1oC2C3ekal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'k!l"}; 
+C1oC2C3eshal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'x!l"}; 
+C1oC2C3achehual = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!cX7l"}; 
+C1oC2C3oal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="7l"};
+C1oC2C3alech = {C1 = "" ; C1C2="/"; C2C3 =""; C3="!l'c"};
+C1oC2C3ewwal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'w!l"}; 
+
+
+
+--Gerund mkV3qTr
+C1oC2C3ie = {C1 ="" ; C1C2="/"; C2C3 =""; C3="%"};
+C1oC2C3en = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'n"};
+C1oC2C3ek = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'k"}; 
+C1oC2C3esh = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'x"}; 
+C1oC2C3achehu = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!ch&"}; 
+C1oC2C3o = { C1 = "" ; C1C2="/"; C2C3 =""; C3="/"}; 
+C1oC2C3a = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!"}; 
+C1oC2C3ew = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'w"}; 
+--Infinitve mkV3qTr
+meC1uC2eC3 = {C1 ="m'" ; C1C2="&"; C2C3 ="'"; C3=""};
+
+--Infinitve mkV3qTr
+C1oC2aC3i = {C1 ="" ; C1C2="/"; C2C3 ="!"; C3="#"};
+
+									--mkV3qTr Eg.
+					--Perf -- 
+					pC1oC2eC3ku = {C1 ="t'" ; C1C2="/"; C2C3 ="'"; C3="k&"};
+					pC1oC2eC3n = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="n"};
+					pC1oC2eC3k = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="k"}; 
+					pC1oC2eC3sh = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="x"}; 
+					pC1oC2eC3achehu = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="!ch&"}; 
+					pC1oC2eC3e = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="'"}; 
+					pC1oC2eC3ech = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="'c"}; 
+					pC1oC2eC3u = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="&"}; 
+					--Imper --mkV3qTr  
+					peC1oC2C3alehu = { C1 = "ä" ; C1C2="/"; C2C3 ="'"; C3="!l'h&"}; 
+					penC1oC2C3alen = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3="!l'n"};
+					pteC1oC2C3aleh = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l'h"};
+					pteC1oC2C3yalesh = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="y!l'x"};
+					pteC1oC2C3alachehu = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l!ch&"};
+					pyeC1oC2C3al = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="!l"};
+					pteC1oC2C3alech = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l'c"};
+					pyeC1oC2C3alu = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="!l&"};
+
+					--Cont mkV3qTr  
+					peC1oC2C3 = { C1 = "ä" ; C1C2="/"; C2C3 ="'"; C3=""}; 
+					penC1oC2C3e = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3=""};
+					pteC1oC2C3 = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3=""};
+					--pteC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""};
+					pteC1oC2C3u = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="&"};
+					pyeC1oC2C3 = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3=""};
+					--pteC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""};
+					pyeC1oC2C3u = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="&"};
+
+					--Jus_Imperat mkV3qTr
+					pleC1uC2eC3 = {C1 ="l" ; C1C2="/"; C2C3 ="'"; C3=""};
+					penC1uC2eC3 = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3=""};
+					pC1uC2eC3 = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3=""}; 
+					pC1uC2eC3i = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="#"}; 
+					pC1uC2eC3u = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="&"}; 
+					pyC1uC2eC3 = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3=""}; 
+					ptC1uC2eC3 = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3=""}; 
+					pyC1uC2eC3u = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="&"}; 
+
+					--CompPerf mkV3qTr  %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l
+					pC1oC2C3iealehu = {C1 ="t'" ; C1C2="/"; C2C3 =""; C3="%y!l'h&"};
+					pC1oC2C3enal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'n!l"};
+					pC1oC2C3ekal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'k!l"}; 
+					pC1oC2C3eshal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'x!l"}; 
+					pC1oC2C3achehual = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!cX7l"}; 
+					pC1oC2C3oal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="7l"};
+					pC1oC2C3alech = {C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!l'c"};
+					pC1oC2C3ewwal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'w!l"}; 
+
+
+
+					--Gerund mkV3qTr
+					pC1oC2C3ie = {C1 ="t'" ; C1C2="/"; C2C3 =""; C3="%"};
+					pC1oC2C3en = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'n"};
+					pC1oC2C3ek = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'k"}; 
+					pC1oC2C3esh = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'x"}; 
+					pC1oC2C3achehu = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!ch&"}; 
+					pC1oC2C3o = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="/"}; 
+					pC1oC2C3a = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!"}; 
+					pC1oC2C3ew = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'w"}; 
+					--Infinitve mkV3qTr
+					pmeC1uC2eC3 = {C1 ="m'" ; C1C2="/"; C2C3 ="'"; C3=""};
+
+					--Infinitve mkV3qTr
+					pC1oC2aC3i = {C1 ="t'" ; C1C2="/"; C2C3 ="!"; C3="#"};
+
+
+					
+				
+					
+
+
+
+-- Duo Radicals
+--mkV2bl  -- bl -- eat
+--Perf -- 
+C1aC2hu = {C1 ="" ; C1C2="'"; C2 ="!h&"};
+C1aC2n = { C1 = "" ; C1C2="'"; C2 ="!n"};
+C1aC2k = { C1 = "" ; C1C2="'"; C2 ="!k"}; 
+C1aC2sh = { C1 = "" ; C1C2="'"; C2 ="!x"}; 
+C1aC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="!ch&"}; 
+C1aC2a = { C1 = "" ; C1C2="'"; C2 ="!"}; 
+C1aC2ach = { C1 = "" ; C1C2="'"; C2 ="!c"}; 
+C1aC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; 
+-- Imper -- mkV2bl 
+eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; 
+enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};
+teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};
+teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};
+teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};
+yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};
+teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};
+yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};
+
+-- Imper -- mkV2bl 
+eC1eC2a = { C1 = "ä" ; C1C2="'"; C2 ="!"}; 
+enC1eC2a = { C1 = "än" ; C1C2="'"; C2 ="!"};
+teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"};
+teC1eC2i = { C1 = "t" ; C1C2="'"; C2 ="#"};
+teC1eC2u = { C1 = "t" ; C1C2="'"; C2 ="&"};
+yeC1eC2a = { C1 = "y" ; C1C2="'"; C2 ="!"};
+--teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"};
+yeC1eC2u = { C1 = "y" ; C1C2="'"; C2 ="&"};
+
+--Jus_Imperat mkV2bl
+leC1C2a = {C1 ="l" ; C1C2=""; C2 ="!"};
+enC1C2a = { C1 = "än" ; C1C2=""; C2 ="!"};
+C1C2a = { C1 = "" ; C1C2=""; C2 ="!"}; 
+C1C2i = { C1 = "" ; C1C2=""; C2 ="#"}; 
+C1C2u = { C1 = "" ; C1C2=""; C2 ="&"}; 
+yC1C2a = { C1 = "y" ; C1C2=""; C2 ="!"}; 
+tC1C2a = { C1 = "t" ; C1C2=""; C2 ="!"}; 
+yC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"}; 
+--Gerund mkV2bl
+C1eC2cie = {C1 ="" ; C1C2="'"; C2 ="c%"};
+C1eC2ten = { C1 = "" ; C1C2="'"; C2 ="t'n"};
+C1eC2tek = { C1 = "" ; C1C2="'"; C2 ="t'k"}; 
+C1eC2tesh = { C1 = "" ; C1C2="'"; C2 ="t'x"}; 
+C1eC2tachehu = { C1 = "" ; C1C2="'"; C2 ="t!ch&"}; 
+C1eC2to = { C1 = "" ; C1C2="'"; C2 ="t/"}; 
+C1eC2ta = { C1 = "" ; C1C2="'"; C2="t!"}; 
+C1eC2tew = { C1 = "" ; C1C2="'"; C2="t'w"}; 
+
+--CompPerf mkV2bl y!l'h& !l !l !l cX7l 7l l'c !l 
+C1eC2ciealehu = {C1 ="" ; C1C2="'"; C2 ="c%y!l'h&"};
+C1eC2tenal = { C1 = "" ; C1C2="'"; C2 ="t'n!l"};
+C1eC2tekal = { C1 = "" ; C1C2="'"; C2 ="t'k!l"}; 
+C1eC2teshal = { C1 = "" ; C1C2="'"; C2 ="t'x!l"}; 
+C1eC2tachehual = { C1 = "" ; C1C2="'"; C2 ="t!cX7l"}; 
+C1eC2toal = { C1 = "" ; C1C2="'"; C2 ="t7l"}; 
+C1eC2talech = { C1 = "" ; C1C2="'"; C2="t!l'c"}; 
+C1eC2tewal = { C1 = "" ; C1C2="'"; C2="t'w!l"}; 
+
+--Infinitve mkV2bl
+meC1C2at= {C1 ="m'" ; C1C2=""; C2 ="!t"};
+
+--Infinitve mkV2bl
+C1eC2= {C1 ="" ; C1C2="'"; C2 ="#"};
+
+
+						pC1aC2hu = {C1 ="t'" ; C1C2="'"; C2 ="!h&"};
+						pC1aC2n = { C1 = "t'" ; C1C2="'"; C2 ="!n"};
+						pC1aC2k = { C1 = "t'" ; C1C2="'"; C2 ="!k"}; 
+						pC1aC2sh = { C1 = "t'" ; C1C2="'"; C2 ="!x"}; 
+						pC1aC2achehu = { C1 = "t'" ; C1C2 ="'"; C2 ="!ch&"}; 
+						pC1aC2a = { C1 = "t'" ; C1C2="'"; C2 ="!"}; 
+						pC1aC2ach = { C1 = "t'" ; C1C2="'"; C2 ="!c"}; 
+						pC1aC2u = { C1 = "t'" ; C1C2="'"; C2 ="&"}; 
+						-- Imper -- mkV2bl 
+						peC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; 
+						penC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};
+						pteC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};
+						pteC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};
+						pteC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};
+						pyeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};
+						pteC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};
+						pyeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};
+
+						-- Imper -- mkV2bl 
+						peC1eC2a = { C1 = "ä" ; C1C2="'"; C2 ="!"}; 
+						penC1eC2a = { C1 = "än" ; C1C2="'"; C2 ="!"};
+						pteC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"};
+						pteC1eC2i = { C1 = "t" ; C1C2="'"; C2 ="#"};
+						pteC1eC2u = { C1 = "t" ; C1C2="'"; C2 ="&"};
+						pyeC1eC2a = { C1 = "y" ; C1C2="'"; C2 ="!"};
+						--teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"};
+						pyeC1eC2u = { C1 = "y" ; C1C2="'"; C2 ="&"};
+
+						--Jus_Imperat mkV2bl
+						pleC1C2a = {C1 ="l" ; C1C2="'"; C2 ="!"};
+						penC1C2a = { C1 = "än" ; C1C2="'"; C2 ="!"};
+						pC1C2a = { C1 = "t'" ; C1C2="'"; C2 ="!"}; 
+						pC1C2i = { C1 = "t'" ; C1C2="'"; C2 ="#"}; 
+						pC1C2u = { C1 = "t'" ; C1C2="'"; C2 ="&"}; 
+						pyC1C2a = { C1 = "y" ; C1C2="'"; C2 ="!"}; 
+						ptC1C2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; 
+						pyC1C2u = { C1 = "y" ; C1C2="'"; C2 ="&"}; 
+						--Gerund mkV2bl
+						pC1eC2cie = {C1 ="t'" ; C1C2="'"; C2 ="c%"};
+						pC1eC2ten = { C1 = "t'" ; C1C2="'"; C2 ="t'n"};
+						pC1eC2tek = { C1 = "t'" ; C1C2="'"; C2 ="t'k"}; 
+						pC1eC2tesh = { C1 = "t'" ; C1C2="'"; C2 ="t'x"}; 
+						pC1eC2tachehu = { C1 = "t'" ; C1C2="'"; C2 ="t!ch&"}; 
+						pC1eC2to = { C1 = "t'" ; C1C2="'"; C2 ="t/"}; 
+						pC1eC2ta = { C1 = "t'" ; C1C2="'"; C2="t!"}; 
+						pC1eC2tew = { C1 = "t'" ; C1C2="'"; C2="t'w"}; 
+
+						--CompPerf mkV2bl y!l'h& !l !l !l cX7l 7l l'c !l 
+						pC1eC2ciealehu = {C1 ="t'" ; C1C2="'"; C2 ="c%y!l'h&"};
+						pC1eC2tenal = { C1 = "t'" ; C1C2="'"; C2 ="t'n!l"};
+						pC1eC2tekal = { C1 = "t'" ; C1C2="'"; C2 ="t'k!l"}; 
+						pC1eC2teshal = { C1 = "t'" ; C1C2="'"; C2 ="t'x!l"}; 
+						pC1eC2tachehual = { C1 = "t'" ; C1C2="'"; C2 ="t!cX7l"}; 
+						pC1eC2toal = { C1 = "t'" ; C1C2="'"; C2 ="t7l"}; 
+						pC1eC2talech = { C1 = "t'" ; C1C2="'"; C2="t!l'c"}; 
+						pC1eC2tewal = { C1 = "t'" ; C1C2="'"; C2="t'w!l"}; 
+
+						--Infinitve mkV2bl
+						pmeC1C2at= {C1 ="m'" ; C1C2="'"; C2 ="!t"};
+
+						--Infinitve mkV2bl
+						pC1eC2= {C1 ="t'" ; C1C2="'"; C2 ="#"};
+
+--------------------------- TO DO : CORRECT PASSIVE FORMS OF THE VERBS BELOW : CURRENTLY = ACTIVE!
+--mkV2yz -- yz -- catch
+--Perf -- 
+C1AC2hu = {C1 ="" ; C1C2="!"; C2 ="h&"};
+C1AC2n = { C1 = "" ; C1C2="!"; C2 ="n"};
+C1AC2k = { C1 = "" ; C1C2="!"; C2 ="k"}; 
+C1AC2sh = { C1 = "" ; C1C2="!"; C2 ="x"}; 
+C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; 
+C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; 
+C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; 
+C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+-- Imper -- mkV2yz
+eC1C2alehu = { C1 = "ä" ; C1C2=""; C2 ="!l'h&"}; 
+enC1C2alen = { C1 = "än" ; C1C2=""; C2 ="!l'n"};
+teC1C2yaleh = { C1 = "t" ; C1C2=""; C2 ="!l'h"};
+teC1C2aleh = { C1 = "t" ; C1C2=""; C2 ="y!l'x"};
+teC1C2alachehu = { C1 = "t" ; C1C2=""; C2 ="!l!ch&"};
+yeC1C2al = { C1 = "y" ; C1C2=""; C2 ="!l"};
+teC1C2alech = { C1 = "t" ; C1C2=""; C2 ="!l'c"};
+yeC1C2alu = { C1 = "y" ; C1C2=""; C2 ="!l&"};
+
+-- Cont -- mkV2yz
+eC1C2 = { C1 = "ä" ; C1C2=""; C2 =""}; 
+enC1C2 = { C1 = "än" ; C1C2=""; C2 =""};
+teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};
+--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};3
+teC1C2u = { C1 = "t" ; C1C2=""; C2 ="&"};
+yeC1C2 = { C1 = "y" ; C1C2=""; C2 =""};
+--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};
+yeC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"};
+
+
+--Jus_Imperat mkV2yz
+leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""};
+enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""};
+C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; 
+C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; 
+C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; 
+tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; 
+yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; 
+--Gerund mkV2yz
+C1C2ie = {C1 ="" ; C1C2=""; C2 ="%"};
+C1C2en = { C1 = "" ; C1C2=""; C2 ="'n"};
+C1C2ek = { C1 = "" ; C1C2=""; C2 ="'k"}; 
+C1C2esh = { C1 = "" ; C1C2=""; C2 ="'x"}; 
+C1C2achehu = { C1 = "" ; C1C2=""; C2 ="!ch&"}; 
+C1C2o = { C1 = "" ; C1C2=""; C2 ="/"}; 
+C1C2a = { C1 = "" ; C1C2=""; C2="!"}; 
+C1C2ew = { C1 = "" ; C1C2=""; C2="'w"};
+
+--CompPer mkV2yz  y!l'h& !l !l !l cX7l 7l l'c !l 
+C1C2iealehu = {C1 ="" ; C1C2=""; C2 ="%y!l'h&"};
+C1C2enal = { C1 = "" ; C1C2=""; C2 ="'n!l"};
+C1C2ekal = { C1 = "" ; C1C2=""; C2 ="'k!l"}; 
+C1C2eshal = { C1 = "" ; C1C2=""; C2 ="'x!l"}; 
+C1C2achehual = { C1 = "" ; C1C2=""; C2 ="!cX7l"}; 
+C1C2oal = { C1 = "" ; C1C2=""; C2 ="7l"}; 
+C1C2alech = { C1 = "" ; C1C2=""; C2="!l'c"}; 
+C1C2ewal = { C1 = "" ; C1C2=""; C2="'w!l"};
+
+ 
+--Infinitve mkV2yz  
+meC1aC2= {C1 ="m'" ; C1C2="!"; C2 =""};
+
+--Infinitve mkV2yz  
+C1aC2ii= {C1 ="" ; C1C2="!"; C2 ="#"};
+
+
+								--mkV2yz -- yz -- catch
+						--Perf -- 
+						C1AC2hu = {C1 ="" ; C1C2="!"; C2 ="h&"};
+						C1AC2n = { C1 = "" ; C1C2="!"; C2 ="n"};
+						C1AC2k = { C1 = "" ; C1C2="!"; C2 ="k"}; 
+						C1AC2sh = { C1 = "" ; C1C2="!"; C2 ="x"}; 
+						C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; 
+						C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; 
+						C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; 
+						C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+						-- Imper -- mkV2yz
+						eC1C2alehu = { C1 = "ä" ; C1C2=""; C2 ="!l'h&"}; 
+						enC1C2alen = { C1 = "än" ; C1C2=""; C2 ="!l'n"};
+						teC1C2yaleh = { C1 = "t" ; C1C2=""; C2 ="!l'h"};
+						teC1C2aleh = { C1 = "t" ; C1C2=""; C2 ="y!l'x"};
+						teC1C2alachehu = { C1 = "t" ; C1C2=""; C2 ="!l!ch&"};
+						yeC1C2al = { C1 = "y" ; C1C2=""; C2 ="!l"};
+						teC1C2alech = { C1 = "t" ; C1C2=""; C2 ="!l'c"};
+						yeC1C2alu = { C1 = "y" ; C1C2=""; C2 ="!l&"};
+
+						-- Cont -- mkV2yz
+						eC1C2 = { C1 = "ä" ; C1C2=""; C2 =""}; 
+						enC1C2 = { C1 = "än" ; C1C2=""; C2 =""};
+						teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};
+						--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};3
+						teC1C2u = { C1 = "t" ; C1C2=""; C2 ="&"};
+						yeC1C2 = { C1 = "y" ; C1C2=""; C2 =""};
+						--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};
+						yeC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"};
+
+
+						--Jus_Imperat mkV2yz
+						leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""};
+						enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""};
+						C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; 
+						C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; 
+						C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+						yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; 
+						tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; 
+						yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; 
+						--Gerund mkV2yz
+						C1C2ie = {C1 ="" ; C1C2=""; C2 ="%"};
+						C1C2en = { C1 = "" ; C1C2=""; C2 ="'n"};
+						C1C2ek = { C1 = "" ; C1C2=""; C2 ="'k"}; 
+						C1C2esh = { C1 = "" ; C1C2=""; C2 ="'x"}; 
+						C1C2achehu = { C1 = "" ; C1C2=""; C2 ="!ch&"}; 
+						C1C2o = { C1 = "" ; C1C2=""; C2 ="/"}; 
+						C1C2a = { C1 = "" ; C1C2=""; C2="!"}; 
+						C1C2ew = { C1 = "" ; C1C2=""; C2="'w"};
+
+						--CompPer mkV2yz  y!l'h& !l !l !l cX7l 7l l'c !l 
+						C1C2iealehu = {C1 ="" ; C1C2=""; C2 ="%y!l'h&"};
+						C1C2enal = { C1 = "" ; C1C2=""; C2 ="'n!l"};
+						C1C2ekal = { C1 = "" ; C1C2=""; C2 ="'k!l"}; 
+						C1C2eshal = { C1 = "" ; C1C2=""; C2 ="'x!l"}; 
+						C1C2achehual = { C1 = "" ; C1C2=""; C2 ="!cX7l"}; 
+						C1C2oal = { C1 = "" ; C1C2=""; C2 ="7l"}; 
+						C1C2alech = { C1 = "" ; C1C2=""; C2="!l'c"}; 
+						C1C2ewal = { C1 = "" ; C1C2=""; C2="'w!l"};
+
+						 
+						--Infinitve mkV2yz  
+						meC1aC2= {C1 ="m'" ; C1C2="!"; C2 =""};
+
+						--Infinitve mkV2yz  
+						C1aC2ii= {C1 ="" ; C1C2="!"; C2 ="#"};
+
+--nore -- nr -- live
+--Perf -- 
+C1oC2hu = {C1 ="" ; C1C2="/"; C2 ="h&"};
+C1oC2n = { C1 = "" ; C1C2="/"; C2 ="n"};
+C1oC2k = { C1 = "" ; C1C2="/"; C2 ="k"}; 
+C1oC2sh = { C1 = "" ; C1C2="/"; C2 ="x"}; 
+C1oC2achehu = { C1 = "" ; C1C2 ="/"; C2 ="!ch&"}; 
+C1oC2a = { C1 = "" ; C1C2="/"; C2 ="'"}; 
+C1oC2ach = { C1 = "" ; C1C2="/"; C2 ="'c"}; 
+C1oC2u = { C1 = "" ; C1C2="/"; C2 ="&"}; 
+-- Imper -- mkV2nr
+eC1oC2alehu = { C1 = "ä" ; C1C2="/"; C2 ="!l'h&"}; 
+enC1oC2alen = { C1 = "än" ; C1C2="/"; C2 ="!l'n"};
+teC1oC2yaleh = { C1 = "t" ; C1C2="/"; C2 ="!l'h"};
+teC1oC2alesh = { C1 = "t" ; C1C2="/"; C2 ="y!l'x"};
+teC1oC2alachehu = { C1 = "t" ; C1C2="/"; C2 ="!l!ch&"};
+yeC1oC2al = { C1 = "y" ; C1C2="/"; C2 ="!l"};
+teC1oC2alech = { C1 = "t" ; C1C2="/"; C2 ="!l'c"};
+yeC1oC2alu = { C1 = "y" ; C1C2="/"; C2 ="!l&"};
+
+-- Imper -- mkV2nr
+eC1oC2 = { C1 = "ä" ; C1C2="/"; C2 =""}; 
+enC1oC2 = { C1 = "än" ; C1C2="/"; C2 =""};
+teC1oC2 = { C1 = "t" ; C1C2="/"; C2 =""};
+teC1oC2i = { C1 = "t" ; C1C2="/"; C2 ="#"};
+teC1oC2u = { C1 = "t" ; C1C2="/"; C2 ="&"};
+yeC1oC2 = { C1 = "y" ; C1C2="/"; C2 =""};
+--teC1oC2 = { C1 = "t" ; C1C2="/"; C2 ="!l'c"};
+yeC1oC2u = { C1 = "y" ; C1C2="/"; C2 ="&"};
+
+--Jus_Imperat mkV2nr
+leC1uC2 = {C1 ="l" ; C1C2="&"; C2 =""};
+enC1uC2 = { C1 = "än" ; C1C2="&"; C2 =""};
+C1uC2 = { C1 = "" ; C1C2="&"; C2 =""}; 
+C1uC2i = { C1 = "" ; C1C2="&"; C2 ="#"}; 
+C1uC2u = { C1 = "" ; C1C2="&"; C2 ="&"}; 
+yC1uC2 = { C1 = "y" ; C1C2="&"; C2 =""}; 
+tC1uC2 = { C1 = "t" ; C1C2="&"; C2 =""}; 
+yC1uC2u = { C1 = "y" ; C1C2="&"; C2 ="&"}; 
+
+
+
+--Gerund mkV2nr
+C1oC2ie = {C1 ="" ; C1C2="/"; C2 ="%"};
+C1oC2en = { C1 = "" ; C1C2="/"; C2 ="'n"};
+C1oC2ek = { C1 = "" ; C1C2="/"; C2 ="'k"}; 
+C1oC2esh = { C1 = "" ; C1C2="/"; C2 ="'x"}; 
+C1oC2achehu = { C1 = "" ; C1C2="/"; C2 ="!ch&"}; 
+C1oC2o = { C1 = "" ; C1C2="/"; C2 ="/"}; 
+C1oC2A = { C1 = "" ; C1C2="/"; C2="!"}; 
+C1oC2ew = { C1 = "" ; C1C2="/"; C2="'w"}; 
+
+--CompPer mkV2nr y!l'h& !l !l !l cX7l 7l l'c !l
+C1oC2iealehu = {C1 ="" ; C1C2="/"; C2 ="%y!l'h& "};
+C1oC2enal = { C1 = "" ; C1C2="/"; C2 ="'n!l"};
+C1oC2ekal = { C1 = "" ; C1C2="/"; C2 ="'k!l"}; 
+C1oC2eshal = { C1 = "" ; C1C2="/"; C2 ="'x!l"}; 
+C1oC2achehual = { C1 = "" ; C1C2="/"; C2 ="!cX7l"}; 
+C1oC2oal = { C1 = "" ; C1C2="/"; C2 ="7l"}; 
+C1oC2Alech = { C1 = "" ; C1C2="/"; C2="!l'c"}; 
+C1oC2ewal = { C1 = "" ; C1C2="/"; C2="'w!l"};
+
+--Infinitve mkV2nr
+meC1oC2= {C1 ="m'" ; C1C2="/"; C2 =""};
+
+--Participle mkV2nr
+C1uaC2i= {C1 ="" ; C1C2="7"; C2 ="#"};
+
+
+
+
+								--nore -- nr -- live
+						--Perf -- 
+						C1oC2hu = {C1 ="" ; C1C2="/"; C2 ="h&"};
+						C1oC2n = { C1 = "" ; C1C2="/"; C2 ="n"};
+						C1oC2k = { C1 = "" ; C1C2="/"; C2 ="k"}; 
+						C1oC2sh = { C1 = "" ; C1C2="/"; C2 ="x"}; 
+						C1oC2achehu = { C1 = "" ; C1C2 ="/"; C2 ="!ch&"}; 
+						C1oC2a = { C1 = "" ; C1C2="/"; C2 ="'"}; 
+						C1oC2ach = { C1 = "" ; C1C2="/"; C2 ="'c"}; 
+						C1oC2u = { C1 = "" ; C1C2="/"; C2 ="&"}; 
+						-- Imper -- mkV2nr
+						eC1oC2alehu = { C1 = "ä" ; C1C2="/"; C2 ="!l'h&"}; 
+						enC1oC2alen = { C1 = "än" ; C1C2="/"; C2 ="!l'n"};
+						teC1oC2yaleh = { C1 = "t" ; C1C2="/"; C2 ="!l'h"};
+						teC1oC2alesh = { C1 = "t" ; C1C2="/"; C2 ="y!l'x"};
+						teC1oC2alachehu = { C1 = "t" ; C1C2="/"; C2 ="!l!ch&"};
+						yeC1oC2al = { C1 = "y" ; C1C2="/"; C2 ="!l"};
+						teC1oC2alech = { C1 = "t" ; C1C2="/"; C2 ="!l'c"};
+						yeC1oC2alu = { C1 = "y" ; C1C2="/"; C2 ="!l&"};
+
+						-- Imper -- mkV2nr
+						eC1oC2 = { C1 = "ä" ; C1C2="/"; C2 =""}; 
+						enC1oC2 = { C1 = "än" ; C1C2="/"; C2 =""};
+						teC1oC2 = { C1 = "t" ; C1C2="/"; C2 =""};
+						teC1oC2i = { C1 = "t" ; C1C2="/"; C2 ="#"};
+						teC1oC2u = { C1 = "t" ; C1C2="/"; C2 ="&"};
+						yeC1oC2 = { C1 = "y" ; C1C2="/"; C2 =""};
+						--teC1oC2 = { C1 = "t" ; C1C2="/"; C2 ="!l'c"};
+						yeC1oC2u = { C1 = "y" ; C1C2="/"; C2 ="&"};
+
+						--Jus_Imperat mkV2nr
+						leC1uC2 = {C1 ="l" ; C1C2="&"; C2 =""};
+						enC1uC2 = { C1 = "än" ; C1C2="&"; C2 =""};
+						C1uC2 = { C1 = "" ; C1C2="&"; C2 =""}; 
+						C1uC2i = { C1 = "" ; C1C2="&"; C2 ="#"}; 
+						C1uC2u = { C1 = "" ; C1C2="&"; C2 ="&"}; 
+						yC1uC2 = { C1 = "y" ; C1C2="&"; C2 =""}; 
+						tC1uC2 = { C1 = "t" ; C1C2="&"; C2 =""}; 
+						yC1uC2u = { C1 = "y" ; C1C2="&"; C2 ="&"}; 
+
+
+
+						--Gerund mkV2nr
+						C1oC2ie = {C1 ="" ; C1C2="/"; C2 ="%"};
+						C1oC2en = { C1 = "" ; C1C2="/"; C2 ="'n"};
+						C1oC2ek = { C1 = "" ; C1C2="/"; C2 ="'k"}; 
+						C1oC2esh = { C1 = "" ; C1C2="/"; C2 ="'x"}; 
+						C1oC2achehu = { C1 = "" ; C1C2="/"; C2 ="!ch&"}; 
+						C1oC2o = { C1 = "" ; C1C2="/"; C2 ="/"}; 
+						C1oC2A = { C1 = "" ; C1C2="/"; C2="!"}; 
+						C1oC2ew = { C1 = "" ; C1C2="/"; C2="'w"}; 
+
+						--CompPer mkV2nr y!l'h& !l !l !l cX7l 7l l'c !l
+						C1oC2iealehu = {C1 ="" ; C1C2="/"; C2 ="%y!l'h& "};
+						C1oC2enal = { C1 = "" ; C1C2="/"; C2 ="'n!l"};
+						C1oC2ekal = { C1 = "" ; C1C2="/"; C2 ="'k!l"}; 
+						C1oC2eshal = { C1 = "" ; C1C2="/"; C2 ="'x!l"}; 
+						C1oC2achehual = { C1 = "" ; C1C2="/"; C2 ="!cX7l"}; 
+						C1oC2oal = { C1 = "" ; C1C2="/"; C2 ="7l"}; 
+						C1oC2Alech = { C1 = "" ; C1C2="/"; C2="!l'c"}; 
+						C1oC2ewal = { C1 = "" ; C1C2="/"; C2="'w!l"};
+
+						--Infinitve mkV2nr
+						meC1oC2= {C1 ="m'" ; C1C2="/"; C2 =""};
+
+						--Participle mkV2nr
+						C1uaC2i= {C1 ="" ; C1C2="7"; C2 ="#"};
+
+
+--mkV2wN -- wN -- swim --- Eg lie, see, say
+--Perf -- 
+C1AC2ehu = {C1 ="" ; C1C2="!"; C2 ="'h&"};
+C1AC2en = { C1 = "" ; C1C2="!"; C2 ="'n"};
+C1AC2ek = { C1 = "" ; C1C2="!"; C2 ="'k"}; 
+C1AC2esh = { C1 = "" ; C1C2="!"; C2 ="'x"}; 
+--C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; 
+--C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; 
+--C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; 
+--C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+-- Imper -- mkV2wN
+eC1aC2alehu = { C1 = "ä" ; C1C2="!"; C2 ="!l'h&"}; 
+enC1aC2alen = { C1 = "än" ; C1C2="!"; C2 ="!l'n"};
+teC1aC2yaleh = { C1 = "t" ; C1C2="!"; C2 ="!l'h"};
+teC1aC2alesh = { C1 = "t" ; C1C2="!"; C2 ="y!l'x"};
+teC1aC2alachehu = { C1 = "t" ; C1C2="!"; C2 ="!l!ch&"};
+yeC1aC2al = { C1 = "y" ; C1C2="!"; C2 ="!l"};
+teC1aC2alech = { C1 = "t" ; C1C2="!"; C2 ="!l'c"};
+yeC1aC2alu = { C1 = "y" ; C1C2="!"; C2 ="!l&"};
+
+-- Cont -- mkV2wN
+eC1aC2 = { C1 = "ä" ; C1C2="!"; C2 =""}; 
+enC1aC2 = { C1 = "än" ; C1C2="!"; C2 =""};
+teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+teC1aC2u = { C1 = "t" ; C1C2="!"; C2 ="&"};
+yeC1aC2 = { C1 = "y" ; C1C2="!"; C2 =""};
+--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+yeC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"};
+
+--Jus_Imperat mkV2wN
+--leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""};
+--enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""};
+--C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; 
+--C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; 
+--C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+--yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; 
+--tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; 
+--yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; 
+--Gerund mkV2wN
+C1aC2cie = {C1 ="" ; C1C2="!"; C2 ="c%"};
+C1aC2ten = { C1 = "" ; C1C2="!"; C2 ="t'n"};
+C1aC2tek = { C1 = "" ; C1C2="!"; C2 ="t'k"}; 
+C1aC2tesh = { C1 = "" ; C1C2="!"; C2 ="t'x"}; 
+C1aC2tachehu = { C1 = "" ; C1C2="!"; C2 ="t!ch&"}; 
+C1aC2to = { C1 = "" ; C1C2="!"; C2 ="t/"}; 
+C1aC2ta = { C1 = "" ; C1C2="!"; C2="t!"}; 
+C1aC2tew = { C1 = "" ; C1C2="!"; C2="t'w"}; 
+
+--ComPer mkV2wN  y!l'h& !l !l !l cX7l 7l l'c !l 
+C1aC2ciealehu = {C1 ="" ; C1C2="!"; C2 ="c%y!l'h&"};
+C1aC2tenal = { C1 = "" ; C1C2="!"; C2 ="t'n!l"};
+C1aC2tekal = { C1 = "" ; C1C2="!"; C2 ="t'k!l"}; 
+C1aC2teshal = { C1 = "" ; C1C2="!"; C2 ="t'x!l"}; 
+C1aC2tachehual = { C1 = "" ; C1C2="!"; C2 ="t!cX7l"}; 
+C1aC2toal = { C1 = "" ; C1C2="!"; C2 ="t7l"}; 
+C1aC2talech = { C1 = "" ; C1C2="!"; C2="t!l'c"}; 
+C1aC2tewal = { C1 = "" ; C1C2="!"; C2="t'w!l"}; 
+
+--Infinitve mkV2wN
+meC1aC2et= {C1 ="m'" ; C1C2="!"; C2 ="'t"};
+--nore -- nr -- live
+
+
+		
+								--mkV2wN -- wN -- swim --- Eg lie, see, say
+					--Perf -- 
+					C1AC2ehu = {C1 ="" ; C1C2="!"; C2 ="'h&"};
+					C1AC2en = { C1 = "" ; C1C2="!"; C2 ="'n"};
+					C1AC2ek = { C1 = "" ; C1C2="!"; C2 ="'k"}; 
+					C1AC2esh = { C1 = "" ; C1C2="!"; C2 ="'x"}; 
+					--C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; 
+					--C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; 
+					--C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; 
+					--C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+					-- Imper -- mkV2wN
+					eC1aC2alehu = { C1 = "ä" ; C1C2="!"; C2 ="!l'h&"}; 
+					enC1aC2alen = { C1 = "än" ; C1C2="!"; C2 ="!l'n"};
+					teC1aC2yaleh = { C1 = "t" ; C1C2="!"; C2 ="!l'h"};
+					teC1aC2alesh = { C1 = "t" ; C1C2="!"; C2 ="y!l'x"};
+					teC1aC2alachehu = { C1 = "t" ; C1C2="!"; C2 ="!l!ch&"};
+					yeC1aC2al = { C1 = "y" ; C1C2="!"; C2 ="!l"};
+					teC1aC2alech = { C1 = "t" ; C1C2="!"; C2 ="!l'c"};
+					yeC1aC2alu = { C1 = "y" ; C1C2="!"; C2 ="!l&"};
+
+					-- Cont -- mkV2wN
+					eC1aC2 = { C1 = "ä" ; C1C2="!"; C2 =""}; 
+					enC1aC2 = { C1 = "än" ; C1C2="!"; C2 =""};
+					teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+					--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+					teC1aC2u = { C1 = "t" ; C1C2="!"; C2 ="&"};
+					yeC1aC2 = { C1 = "y" ; C1C2="!"; C2 =""};
+					--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""};
+					yeC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"};
+
+					--Jus_Imperat mkV2wN
+					--leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""};
+					--enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""};
+					--C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; 
+					--C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; 
+					--C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; 
+					--yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; 
+					--tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; 
+					--yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; 
+					--Gerund mkV2wN
+					C1aC2cie = {C1 ="" ; C1C2="!"; C2 ="c%"};
+					C1aC2ten = { C1 = "" ; C1C2="!"; C2 ="t'n"};
+					C1aC2tek = { C1 = "" ; C1C2="!"; C2 ="t'k"}; 
+					C1aC2tesh = { C1 = "" ; C1C2="!"; C2 ="t'x"}; 
+					C1aC2tachehu = { C1 = "" ; C1C2="!"; C2 ="t!ch&"}; 
+					C1aC2to = { C1 = "" ; C1C2="!"; C2 ="t/"}; 
+					C1aC2ta = { C1 = "" ; C1C2="!"; C2="t!"}; 
+					C1aC2tew = { C1 = "" ; C1C2="!"; C2="t'w"}; 
+
+					--ComPer mkV2wN  y!l'h& !l !l !l cX7l 7l l'c !l 
+					C1aC2ciealehu = {C1 ="" ; C1C2="!"; C2 ="c%y!l'h&"};
+					C1aC2tenal = { C1 = "" ; C1C2="!"; C2 ="t'n!l"};
+					C1aC2tekal = { C1 = "" ; C1C2="!"; C2 ="t'k!l"}; 
+					C1aC2teshal = { C1 = "" ; C1C2="!"; C2 ="t'x!l"}; 
+					C1aC2tachehual = { C1 = "" ; C1C2="!"; C2 ="t!cX7l"}; 
+					C1aC2toal = { C1 = "" ; C1C2="!"; C2 ="t7l"}; 
+					C1aC2talech = { C1 = "" ; C1C2="!"; C2="t!l'c"}; 
+					C1aC2tewal = { C1 = "" ; C1C2="!"; C2="t'w!l"}; 
+
+					--Infinitve mkV2wN
+					meC1aC2et= {C1 ="m'" ; C1C2="!"; C2 ="'t"};
+					--nore -- nr -- live
+	
+
+
+
+----------- This much is enough for the duo-radicals--- 
+--There are few verbs still remaining like the case of shete, hede , --washe, aye, ale , all need unique froms for them selves. I will get --back here later!! 
+
+--seTe -- st -- give
+--Perf -- 
+C1eC2hu = {C1 ="" ; C1C2="'"; C2 ="'h&"};
+C1eC2n = { C1 = "" ; C1C2="'"; C2 ="'n"};
+C1eC2k = { C1 = "" ; C1C2="'"; C2 ="'k"}; 
+C1eC2sh = { C1 = "" ; C1C2="'"; C2 ="'x"}; 
+C1eC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="'ch&"}; 
+C1eC2a = { C1 = "" ; C1C2="'"; C2 ="'"}; 
+C1eC2ach = { C1 = "" ; C1C2="'"; C2 ="'c"}; 
+--C1eC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; same as C1aC2u (bela) 
+-- Imper -- mkV2sT
+--eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; eC1aC2alehu
+--enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};enC1aC2alen
+--teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};teC1aC2yaleh
+--teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};teC1aC2aleh 
+--teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};teC1aC2alachehu
+--yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};yeC1aC2al 
+--teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};teC1aC2alech 
+--yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};yeC1aC2alu
+
+--Jus_Imperat mkV2sT
+
+leC1eC2 = {C1 ="l" ; C1C2=""; C2 =""};
+enC1eC2 = { C1 = "än" ; C1C2=""; C2 =""};
+C1C2 = { C1 = "" ; C1C2=""; C2 =""}; 
+C1eC2i = { C1 = "" ; C1C2=""; C2 ="#"}; 
+--C1eC2u = { C1 = "" ; C1C2=""; C2 ="&"}; C1C2u 
+yC1eC2 = { C1 = "y" ; C1C2=""; C2 =""}; 
+tC1eC2 = { C1 = "t" ; C1C2=""; C2 =""}; 
+--yC1eC2u = { C1 = "y" ; C1C2=""; C2 ="&"};yC1C2u 
+
+
+--Gerund mkV2sT
+
+--C1eC2ie = {C1 ="" ; C1C2="'"; C2 ="c%"}; C1aC2cie
+--C1eC2en = { C1 = "" ; C1C2="'"; C2 ="'n"};C1aC2ten 
+--C1eC2ek = { C1 = "" ; C1C2="'"; C2 ="'k"}; C1aC2tek
+--C1eC2esh = { C1 = "" ; C1C2="'"; C2 ="'x"}; C1aC2tesh
+--C1eC2achehu = { C1 = "" ; C1C2="'"; C2 ="!ch&"};C1aC2tachehu  
+--C1eC2o = { C1 = "" ; C1C2="'"; C2 ="/"};C1aC2to
+--C1eC2A = { C1 = "" ; C1C2="'"; C2="!"};C1aC2ta
+--C1eC2ew = { C1 = "" ; C1C2="'"; C2="'w"}; C1aC2tew
+--Infinitve mkV2sT
+meC1C2et= {C1 ="m'" ; C1C2=""; C2 ="'t"};
+
+
+
+
+
+				----------- This much is enough for the duo-radicals--- 
+				--There are few verbs still remaining like the case of shete, hede , --washe, aye, ale , all need unique froms for them selves. I will get --back here later!! 
+
+				--seTe -- st -- give
+				--Perf -- 
+				C1eC2hu = {C1 ="" ; C1C2="'"; C2 ="'h&"};
+				C1eC2n = { C1 = "" ; C1C2="'"; C2 ="'n"};
+				C1eC2k = { C1 = "" ; C1C2="'"; C2 ="'k"}; 
+				C1eC2sh = { C1 = "" ; C1C2="'"; C2 ="'x"}; 
+				C1eC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="'ch&"}; 
+				C1eC2a = { C1 = "" ; C1C2="'"; C2 ="'"}; 
+				C1eC2ach = { C1 = "" ; C1C2="'"; C2 ="'c"}; 
+				--C1eC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; same as C1aC2u (bela) 
+				-- Imper -- mkV2sT
+				--eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; eC1aC2alehu
+				--enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};enC1aC2alen
+				--teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};teC1aC2yaleh
+				--teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};teC1aC2aleh 
+				--teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};teC1aC2alachehu
+				--yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};yeC1aC2al 
+				--teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};teC1aC2alech 
+				--yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};yeC1aC2alu
+
+				--Jus_Imperat mkV2sT
+
+				leC1eC2 = {C1 ="l" ; C1C2=""; C2 =""};
+				enC1eC2 = { C1 = "än" ; C1C2=""; C2 =""};
+				C1C2 = { C1 = "" ; C1C2=""; C2 =""}; 
+				C1eC2i = { C1 = "" ; C1C2=""; C2 ="#"}; 
+				--C1eC2u = { C1 = "" ; C1C2=""; C2 ="&"}; C1C2u 
+				yC1eC2 = { C1 = "y" ; C1C2=""; C2 =""}; 
+				tC1eC2 = { C1 = "t" ; C1C2=""; C2 =""}; 
+				--yC1eC2u = { C1 = "y" ; C1C2=""; C2 ="&"};yC1C2u 
+
+
+				--Gerund mkV2sT
+
+				--C1eC2ie = {C1 ="" ; C1C2="'"; C2 ="c%"}; C1aC2cie
+				--C1eC2en = { C1 = "" ; C1C2="'"; C2 ="'n"};C1aC2ten 
+				--C1eC2ek = { C1 = "" ; C1C2="'"; C2 ="'k"}; C1aC2tek
+				--C1eC2esh = { C1 = "" ; C1C2="'"; C2 ="'x"}; C1aC2tesh
+				--C1eC2achehu = { C1 = "" ; C1C2="'"; C2 ="!ch&"};C1aC2tachehu  
+				--C1eC2o = { C1 = "" ; C1C2="'"; C2 ="/"};C1aC2to
+				--C1eC2A = { C1 = "" ; C1C2="'"; C2="!"};C1aC2ta
+				--C1eC2ew = { C1 = "" ; C1C2="'"; C2="'w"}; C1aC2tew
+				--Infinitve mkV2sT
+				meC1C2et= {C1 ="m'" ; C1C2=""; C2 ="'t"};
+
+
+
+
+---- Quadro_Radical
+
+
+--Starting with type Tri-Radical Roots
+--	 Eg. dbdb  - fight
+--           qzqz  - freeze
+--            wrwr  - throw 
+--             tnfs  - breath
+
+--Perf -- 
+C1aC2aC3aC4hu = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "h&" };
+C1aC2aC3aC4n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "n" };
+C1aC2aC3aC4k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "k" }; 
+C1aC2aC3aC4sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "x" }; 
+C1aC2aC3aC4achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "!ch&" }; 
+C1aC2aC3aC4a = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'" }; 
+C1aC2aC3aC4ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'c" }; 
+C1aC2aC3aC4u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "&" }; 
+--Imper --mkV4dbdb 
+eC1aC2aC3C4alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h&" }; 
+enC1aC2aC3C4alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'n" };
+teC1aC2aC3C4yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h" };
+teC1aC2aC3C4aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "y!l'x" };
+teC1aC2aC3C4alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l!ch&" };
+yeC1aC2aC3C4al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l" };
+teC1aC2aC3C4alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'c" };
+yeC1aC2aC3C4alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l&" };
+
+--Cont --mkV4dbdb 
+eC1aC2aC3C4 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; 
+enC1aC2aC3C4 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+teC1aC2aC3C4i = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "#" };
+teC1aC2aC3C4u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" };
+yeC1aC2aC3C4 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+--teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+yeC1aC2aC3C4u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" };
+
+
+
+--Jus_Imperat mkV4dbdb 
+leC1aC2C3C4 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" };
+enC1aC2C3C4 = { C1 = "än" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" };
+C1aC2C3C4 = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+C1aC2C3C4i = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "#" }; 
+C1aC2C3C4u = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; 
+yC1aC2C3C4 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+tC1aC2C3C4 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+yC1aC2C3C4u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; 
+--Gerund mkV4dbdb 
+C1aC2C3C4ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%" };
+C1aC2C3C4en = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n" };
+C1aC2C3C4ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k" }; 
+C1aC2C3C4esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x" }; 
+C1aC2C3C4achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!ch&" }; 
+C1aC2C3C4o = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "/" }; 
+C1aC2C3C4a = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!" }; 
+C1aC2C3C4ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w" }; 
+
+--CompPerf mkV4dbdb y!l'h& !l !l !l cX7l 7l l'c !l  
+C1aC2C3C4iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%y!l'h&" };
+C1aC2C3C4enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n!l" };
+C1aC2C3C4ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k!l" }; 
+C1aC2C3C4eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x!l" }; 
+C1aC2C3C4achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!cX7l" }; 
+C1aC2C3C4oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "7l" }; 
+C1aC2C3C4alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!l'c" }; 
+C1aC2C3C4ewal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w!l" }; 
+
+--Infinitve mkV4dbdb 
+meC1aC2C3aC4 = {C1 ="m'" ; C1C2="'"; C2C3 =""; C3C4="'"; C4= "" };
+
+--Participle mkV4dbdb 
+C1eC2C3aC4i = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4="!"; C4= "#" };
+
+
+								---- Quadro_Radical
+
+
+					--Starting with type Tri-Radical Roots
+					--	 Eg. dbdb  - fight
+					--           qzqz  - freeze
+					--            wrwr  - throw 
+					--             tnfs  - breath
+
+					--Perf -- 
+					C1aC2aC3aC4hu = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "h&" };
+					C1aC2aC3aC4n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "n" };
+					C1aC2aC3aC4k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "k" }; 
+					C1aC2aC3aC4sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "x" }; 
+					C1aC2aC3aC4achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "!ch&" }; 
+					C1aC2aC3aC4a = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'" }; 
+					C1aC2aC3aC4ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'c" }; 
+					C1aC2aC3aC4u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "&" }; 
+					--Imper --mkV4dbdb 
+					eC1aC2aC3C4alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h&" }; 
+					enC1aC2aC3C4alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'n" };
+					teC1aC2aC3C4yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h" };
+					teC1aC2aC3C4aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "y!l'x" };
+					teC1aC2aC3C4alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l!ch&" };
+					yeC1aC2aC3C4al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l" };
+					teC1aC2aC3C4alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'c" };
+					yeC1aC2aC3C4alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l&" };
+
+					--Cont --mkV4dbdb 
+					eC1aC2aC3C4 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; 
+					enC1aC2aC3C4 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+					teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+					teC1aC2aC3C4i = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "#" };
+					teC1aC2aC3C4u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" };
+					yeC1aC2aC3C4 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+					--teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" };
+					yeC1aC2aC3C4u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" };
+
+
+
+					--Jus_Imperat mkV4dbdb 
+					leC1aC2C3C4 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" };
+					enC1aC2C3C4 = { C1 = "än" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" };
+					C1aC2C3C4 = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+					C1aC2C3C4i = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "#" }; 
+					C1aC2C3C4u = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; 
+					yC1aC2C3C4 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+					tC1aC2C3C4 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; 
+					yC1aC2C3C4u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; 
+					--Gerund mkV4dbdb 
+					C1aC2C3C4ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%" };
+					C1aC2C3C4en = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n" };
+					C1aC2C3C4ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k" }; 
+					C1aC2C3C4esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x" }; 
+					C1aC2C3C4achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!ch&" }; 
+					C1aC2C3C4o = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "/" }; 
+					C1aC2C3C4a = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!" }; 
+					C1aC2C3C4ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w" }; 
+
+					--CompPerf mkV4dbdb y!l'h& !l !l !l cX7l 7l l'c !l  
+					C1aC2C3C4iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%y!l'h&" };
+					C1aC2C3C4enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n!l" };
+					C1aC2C3C4ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k!l" }; 
+					C1aC2C3C4eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x!l" }; 
+					C1aC2C3C4achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!cX7l" }; 
+					C1aC2C3C4oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "7l" }; 
+					C1aC2C3C4alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!l'c" }; 
+					C1aC2C3C4ewal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w!l" }; 
+
+					--Infinitve mkV4dbdb 
+					meC1aC2C3aC4 = {C1 ="m'" ; C1C2="'"; C2C3 =""; C3C4="'"; C4= "" };
+
+					--Participle mkV4dbdb 
+					C1eC2C3aC4i = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4="!"; C4= "#" };
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{-
+resource PatternsAmh =  {
+
+flags coding=utf8 ;
+
+ oper
+--perf
+C1aC2aC3ku = {C1 ="" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኩ"};
+C1aC2aC3n = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ን"};
+C1aC2aC3k = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ክ"}; 
+C1aC2aC3sh = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ሽ"}; 
+C1aC2aC3achehu = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="አችሁ"}; 
+C1aC2aC3e = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኧ"}; 
+C1aC2aC3ech = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኧች"}; 
+C1aC2aC3u = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኡ"}; 
+
+--imper
+eC1aC2C3alehu = { C1 = "እ" ; C1C2="ኧ"; C2C3 =""; C3="አለሁ"}; 
+enC1aC2C3alen = { C1 = "እን" ; C1C2="ኧ"; C2C3 =""; C3="አለን"};
+teC1aC2C3yaleh = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አለህ"};
+teC1aC2C3aleh = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="ያለሽ"};
+teC1aC2C3alachehu = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አላችሁ"};
+yeC1aC2C3al = { C1 = "ይ" ; C1C2="ኧ"; C2C3 =""; C3="አል"};
+teC1aC2C3alech = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አለች"};
+yeC1aC2C3alu = { C1 = "ይ" ; C1C2="ኧ"; C2C3 =""; C3="አሉ"};
+
+
+}
+-}
+
+
+
+
+
diff --git a/lib/src/amharic/PhraseAmh.gf b/lib/src/amharic/PhraseAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/PhraseAmh.gf
@@ -0,0 +1,37 @@
+concrete PhraseAmh of Phrase = CatAmh ** open 
+  ParamX, 
+  Prelude, 
+  CommonX,
+  ResAmh in {
+    	 
+	 
+ 	flags optimize=all_subs ;
+ 	coding = utf8;
+	lin
+	PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;    	
+	NoPConj = {s = []} ;
+	NoVoc = {s = []} ;
+	UttS s = s;
+	UttAdv adv = adv ;
+        UttNP np = {s = np.s ! Nom } ;
+	UttAP ap = {s = ap.s ! Masc!Sg!Indef!Nom } ;
+	UttCN n = {s = n.s ! Sg ! Indef! Nom} ;
+	UttCard n = {s = n.s ! Masc!Sg!Indef!Nom } ;
+	VocNP np = {s = "፤" ++ np.s ! Nom} ;
+	UttQS qs = {s = qs.s } ;
+	UttIP ip = ip ; --- Acc also
+	UttVP vp = {s = vp.obj.s ++ vp.inf} ;
+	UttIAdv iadv = iadv ;
+	UttCN n = {s = n.s ! Sg ! Indef!Nom} ;
+    	UttCard n = {s = n.s ! Masc!Sg!Indef!Nom} ;
+	UttImpSg pol imp = {s = pol.s ++ imp.s!pol.p!Masc!Sg};
+	UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p! Masc! Pl} ; --- TO DO 
+	UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Masc!Pl} ; -- TO DO --- 
+	UttQS qs = {s = qs.s } ; -- TO DO 
+    {-  
+    
+    PConjConj conj = {s = conj.s2} ; ---
+
+    -}
+
+}
diff --git a/lib/src/amharic/QuestionAmh.gf b/lib/src/amharic/QuestionAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/QuestionAmh.gf
@@ -0,0 +1,46 @@
+concrete QuestionAmh of Question = CatAmh ** open ResAmh, ParamX, Prelude in {
+
+  flags optimize=all_subs ; coding = utf8 ;
+--
+  lin
+
+	QuestCl cl = {
+	  s = \\t,p => cl.s ! t ! p  ++ "እንዴ" 
+	};
+
+	IdetCN idet cn = {
+	s = idet.s ! Nom ++ cn.s ! idet.n ! Indef ! Nom ; 
+	n = idet.n
+	} ; ---- FIX ME
+
+	IdetQuant idet num = {
+	s = \\c => idet.s!Sg ++ num.s ! Indef ! c; 
+	n = Sg ---- size of Num
+	} ;
+
+
+	QuestVP qp vp = 
+	let cl = mkClause (qp.s) (Per3  qp.n Masc) vp in
+	{s = \\t,p => cl.s ! t ! p } ;
+
+	QuestIAdv iadv cl = mkQuestion iadv cl ;
+
+
+	AdvIP ip adv = {
+	s =  adv.s ++ ip.s;
+	n = ip.n
+	} ;
+
+
+	  IdetIP idet = {
+     	s = idet.s!Nom ; 
+      	n = idet.n
+      	} ;
+
+	CompIAdv a = a ;
+	CompIP p = ss (p.s) ;
+
+	-- PrepIP p ip = {s = p.s ++ ip.s } ;
+
+
+}
diff --git a/lib/src/amharic/RelativeAmh.gf b/lib/src/amharic/RelativeAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/RelativeAmh.gf
@@ -0,0 +1,58 @@
+concrete RelativeAmh of Relative = CatAmh ** open ResAmh in {
+----
+----  flags optimize=all_subs ;
+----
+----  lin
+----
+----    RelCl cl = {
+----      s = \\t,a,p,_ => "سُعه" ++ "تهَت" ++ cl.s ! t ! a ! p ! ODir
+----      } ;
+----
+----    RelVP rp vp = {
+----      s = \\t,ant,b,ag => 
+----        let 
+----          agr = case rp.a of {
+----            RNoAg => ag ;
+----            RAg a => a
+----            } ;
+----          cl = mkClause (rp.s ! Nom) agr vp
+----        in
+----        cl.s ! t ! ant ! b ! ODir
+----      } ;
+----
+----    RelSlash rp slash = {
+----      s = \\t,a,p,_ => slash.c2 ++ rp.s ! Acc ++ slash.s ! t ! a ! p ! ODir
+----      } ;
+----
+----    FunRP p np rp = {
+----      s = \\c => np.s ! c ++ p.s ++ rp.s ! Acc ;
+----      a = RAg np.a
+----      } ;
+----
+----    IdRP = mkIP "وهِعه" "وهِعه" "وهْسي" Sg ** {a = RNoAg} ;
+
+
+{-
+
+-- The simplest way to form a relative clause is from a clause by
+-- a pronoun similar to "such that".
+
+    RelCl    : Cl -> RCl ;            -- such that John loves her
+
+-- The more proper ways are from a verb phrase 
+-- (formed in [``Verb`` Verb.html]) or a sentence 
+-- with a missing noun phrase (formed in [``Sentence`` Sentence.html]).
+
+    RelVP    : RP -> VP -> RCl ;      -- who loves John
+    RelSlash : RP -> ClSlash -> RCl ; -- whom John loves
+
+-- Relative pronouns are formed from an 'identity element' by prefixing
+-- or suffixing (depending on language) prepositional phrases or genitives.
+
+    IdRP  : RP ;                      -- which
+    FunRP : Prep -> NP -> RP -> RP ;  -- the mother of whom
+
+
+-}
+----
+}
diff --git a/lib/src/amharic/ResAmh.gf b/lib/src/amharic/ResAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/ResAmh.gf
@@ -0,0 +1,1251 @@
+
+--# -path=.:../abstract:../common:../../prelude
+
+
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+
+
+resource ResAmh =  PatternsAmh** open Prelude,MorphoAmh,ParamX in {
+--PatternsAmh ** open Prelude in {
+
+        flags coding = utf8;
+	
+	param
+		Species = Def | Indef ;	
+		-- Number = Sg | Pl ; --Sg | Pl --ParamX **
+		-- Gen = Gp1Sg | Gp1Pl | Gp2Sg Gender | Gp2Pl | Gp3Sg Gender | Gp3Pl ; betih == ye ante bet
+
+		Case    = Nom | Acc | Gen | Dat ; ---source : 'Grammar of the Amharic Language' - Revised on Jun 								10th 2010 for the addition of the Dative case
+		Gender  = Masc | Fem ; -- the Amharic nouns have but two genders Masculine and Feminine
+                --Person = P1 | P2 | P3 ; -- P1 | P2 | P3  ParamX **
+		--PerNumGen = Vp1Sg | Vp1Pl | Vp2Sg Gender | Vp2Pl | Vp3Sg Gender | Vp3Pl ;
+
+		PerNumGen =  Per1 Number| Per2 Number Gender |Per3 Number Gender ;
+
+		VForm = Perf  |Imperf |Jus_Imperat|Gerund|Infinitive|Parti|CompPerf|Cont  ;
+
+		Voice = Act | Pas ;  
+
+		--Polarity = Pos | Neg;
+
+		--QForm = QDir | QIndir ;
+
+                TenseAmh =  PresFut |SimplePast|PresPerf | PastPerf |  PresCont | PastCont;              
+		
+
+
+--
+		--  Agr = Ag Gender Number Person ; 
+
+		-- To count the length of a tail in a sequence of digits, e.g. to put commas
+		-- as in 1,000,000.
+
+		-- DTail = T1 | T2 | T3 ; -- ParamX
+
+
+	oper  
+
+		Agr = { png : PerNumGen ; isPron : Bool};
+
+		Obj : Type = { 
+		      s : Str ; 
+		      a : Agr
+		      };
+		
+		Verb : Type = {
+				s : VForm =>Voice => PerNumGen  => Str 
+			      } ; -- {s : s : VForm => PerNumGen  => Str  ; aux : Aux} ;
+
+		V0,VS, VQ, VA, V2A ,V2V, V2S, V2Q  = Verb ; -- = {s : VForm => Str} ;-- {s : Tense => VPerNumGen  => Str } ;
+		V2= Verb ** {c2 : Prep} ;
+
+		V3 = ResAmh.Verb ** {c2, c3 : Prep} ;
+
+             
+	
+		Noun : Type = {
+				s : Number => Species => Case => Str ;
+			        g : Gender
+			      } ;
+                N2 = {s : Number => Species => Case => Str ;
+                      g : Gender} ** {c2 : Str} ;
+ 
+                N3 = {s : Number => Species => Case => Str ;
+		      g : Gender} ** {c2,c3 : Str} ;
+
+                Adjective : Type = {
+                                     s : Gender => Number => Species => Case => Str
+                                   } ;
+                Verb2 : Type = Verb ;---- {v : Verb ; obj : Str} ;
+
+		VP : Type = {
+			     s : TenseAmh => Polarity =>PerNumGen => Str ;
+                             obj : Obj ;
+                             pred: Comp;   --- DO or IO  Liju 
+			     imp : Str;
+	                     isPred : Bool;
+			     inf: Str; --indicates if there is a predicate 
+                             s2 : Str          
+			    } ;
+		
+                Comp = {s : AmhAgr => Case => Str} ;
+
+  		AmhAgr = { g : Gender ; n : Number  } ; -- species  later addition
+
+ 
+                VPSlash = VP ** {c2 : Prep} ;
+
+                S  = {s : Str} ;
+
+                Cl : Type = { s : TenseAmh => Polarity => Str};
+
+		QCl = {s : TenseAmh => Polarity  => Str} ;
+
+                ClSlash : Type = {
+		      s : TenseAmh => Polarity => Str ;
+		      c2 : Prep
+		   } ;
+-- FIX ME : addition of the isPron -- DONE
+
+ 	        NP  = {
+			      s : Case => Str ; 
+                              a : Agr  
+                                                      
+                            } ; 
+                -- Adjective
+
+		AP : Type = {	
+                               s: Gender => Number => Species => Case => Str 
+			        
+			    } ; 
+
+                Quant = {	
+				s : Number  => Gender => Case => Str; 
+		    		d : Species;
+		    		isNum : Bool;
+		     		isPron: Bool
+                        } ;
+
+     		 Det : Type = {
+			        s : Gender => Case => Str ; 
+			        d : Species; 
+			        n : Number; 
+			        isNum : Bool;
+			        isPron : Bool 
+			      } ;
+
+		PN : Type = {
+			     s : Case => Str; 
+			     g : Gender
+                            } ;
+
+    		Predet : Type = { 
+      				s : Case => Str;
+      				isDecl : Bool 
+      				};
+
+		Prep = {s : Str ; s2:Str ; isPre : Bool} ;
+		
+
+		CAdv : Type = { s: Str};
+
+                 -- Numeral
+
+    		Numeral = {
+                            s : CardOrd=>Gender=>Number=>Species=>Case => Str  
+                            
+                          } ;
+
+    		Digits  = {
+                            s : CardOrd=>Gender=>Number=>Species=>Case => Str ; 
+                            tail : DTail
+                          } ;
+
+ 		Ord =  {s : Gender=>Number=>Species=>Case => Str} ;
+
+
+    		Num  = {s : Species=>Case => Str ; 
+			n : Number ; 
+			hasCard : Bool} ;
+
+    		Card = {s : Gender => Number=>Species=>Case => Str ; -- Decision with Number grr...should not be like this but should be. TO DO
+                        } ;
+     
+		Imp = {s : Polarity => Gender => Number => Str} ;
+
+		IP = {s : Str ; n : Number} ;   
+                
+                IDet = {s : Case => Str ; n : Number} ; 
+		
+		IQuant = {s : Number => Str} ;
+
+
+	        Conj = {s1,s2 : Str ; n : Number} ;
+
+
+		Pattern2 : Type = {C1,C1C2,C2: Str};
+		Pattern3 : Type = {C1,C1C2,C2C3,C3 : Str};
+		Pattern4 : Type = {C1,C1C2,C2C3,C3C4,C4 : Str};
+		Root2    : Type = {C1,C2: Str};
+    		Root3    : Type = Root2 ** {C3 : Str};
+                Root4    : Type = Root3 ** {C4 : Str};   
+
+             
+
+		-- N O U N
+		
+		{-Note: the declension of Nouns is very simple and uniform. Nouns are inflected 		through four Cases, equally in the singular and the plural,ie. the Nominative, the 			Genetive, Dative and Accusative.
+
+		One example may suffice to show the while mode of proceeding 
+		    	sing                 			plural
+		Nom:	bEt - a house    			bEtoc - houses
+		Gen:	yebEt - of a house, a house's		yebEtoc - of houses
+		Dat:	lebEt - to a house			lebEtoc - to houses
+		Acc:	bEtn- a house				bEtocn - houses
+		-}				
+		
+
+
+	mkNoun : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x16 : Str) -> Gender -> Noun = 
+     		 \sdn,sda,sdg,sdd,sin,sia,sig,sid,pdn,pda,pdg,pdd,pin,pia,pig,pid,g -> {
+     	 s = table {
+
+                  Sg => table { 
+                                  Def => table 
+                                            { 
+                                              Nom => sdn ; 
+                                              Acc => sda ; 
+                                              Gen => sdg ; 
+                                              Dat => sdd 
+                                            };   
+                                  Indef => table 
+                                            { 
+                                              Nom => sin ; 
+                                              Acc => sia ; 
+                                              Gen => sig ; 
+                                              Dat => sid 
+                                            } 
+                                } ;   
+  
+                  Pl  => table { 
+                                  Def=> table 
+                                            { 
+                                              Nom => pdn ; 
+                                              Acc => pda ; 
+                                              Gen => pdg ; 
+                                              Dat => pdd 
+                                            }; 
+                                  Indef => table 
+                                            { 
+                                              Nom => pin ; 
+                                              Acc => pia ; 
+                                              Gen => pig ; 
+                                              Dat => pid 
+                                            } 
+                                } 
+              		 
+           } ;  g = g
+         		 } ;
+
+-- most amharic nouns follow the Masc trend so...
+
+		
+		regN : Str -> Noun =            
+			\bEt -> 
+        		 let bE = init bEt
+        		 in
+   		mkNoun (bE + replaceLastLet6_2_M (last bEt))
+                       (bE + replaceLastLet6_2_M (last bEt)+"ን") 
+                             ("የ"+bE + replaceLastLet6_2_M (last bEt)) 
+                             ("ለ"+bE + replaceLastLet6_2_M (last bEt)) 
+                       bEt
+                       (bEt+"ን") 
+                             ("የ"+bEt)
+                             ("ለ"+bEt)
+                       (bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) )
+                       ((bE + init(replaceLastLet6_7(last bEt)) +replaceLastLet6_2_M(replaceLastLet6_7(last bEt)))+"ን")
+                             ("የ"+(bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) ))
+                             ("ለ"+(bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) ))
+                       (bE + replaceLastLet6_7 (last bEt))
+                       (bE+replaceLastLet6_7 (last bEt)+"ን")
+                             ("የ"+bE + replaceLastLet6_7 (last bEt))  
+                             ("ለ"+bE + replaceLastLet6_7 (last bEt))
+                       Masc ;
+
+
+	 	regN2 :  Str -> Gender -> Noun = \root,g -> 
+			case root of {
+			bE + t@? => table {
+		Masc => mkNoun (bE + replaceLastLet6_2_M (t)) 
+                               (bE + replaceLastLet6_2_M (t)+"ን") 
+                                       ("የ"+bE + replaceLastLet6_2_M (t))
+                                       ("ለ"+bE + replaceLastLet6_2_M (t)) 
+                               root 
+                               (root+"ን") 
+                                       ("የ"+root)
+                                       ("ለ"+root)
+                               (bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )
+                               ((bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M   (replaceLastLet6_7(t)))+"ን")
+                                       ("የ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ))
+                                       ("ለ"+(bE + init(replaceLastLet6_7 (t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ))
+                               (bE + replaceLastLet6_7 (t))
+			       (bE+replaceLastLet6_7 (t)+"ን")
+                                       ("የ"+bE + replaceLastLet6_7 (t))
+                                       ("ለ"+bE + replaceLastLet6_7 (t)) g;
+
+		Fem => mkNoun  (bE + replaceLastLet6_2_F (t))
+                               (bE + replaceLastLet6_2_F (t)+"ን") 
+                                       ("የ"+bE + replaceLastLet6_2_F (t))
+                                       ("ለ"+bE + replaceLastLet6_2_F (t)) 
+                               root 
+                               (root+"ን")      
+                                       ("የ"+root)
+                                       ("ለ"+root)
+                               (bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )
+                               ((bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)))+"ን")
+                                       ("የ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ))
+                                       ("ለ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ))
+                               (bE + replaceLastLet6_7 (t))
+			       (bE+replaceLastLet6_7 (t)+"ን")
+                                       ("የ"+bE + replaceLastLet6_7 (t))
+                                       ("ለ"+bE + replaceLastLet6_7 (t)) g
+ 		  } ! g
+			}; 
+
+
+                compN : Noun -> Noun -> Noun ;
+                                       
+                compN x y = 
+              		{              
+		          s = \\N,S,C => case C of 
+                                { 
+                                  Gen|Dat =>  x.s ! Sg ! Indef!C++ y.s ! N ! S ! Nom ;
+                                   _      =>  x.s ! Sg ! Indef!Nom  ++ y.s ! N ! S !C  
+                                }; 
+                          g = y.g;  
+                     	  lock_N = <>
+                 	} ;
+
+
+		
+		
+
+	--PN
+
+        preOrPost2 : Bool -> Str-> Str -> Str -> Str = \pr,x,y,z -> 
+    	if_then_Str pr (x ++ y) (x ++ y ++ z) ;
+
+	
+	affix :  Case => Str =
+	      table {
+		
+		Acc => "ን";
+		Gen => "የ";
+		Dat =>"ለ";
+		_ => ""
+	      };
+
+
+
+	mkPN : Str -> Gender -> PN = \ str,gen -> 
+
+	    { 
+		s = \\c =>case c of
+		{
+		Gen|Dat => affix!c + str;
+		   _    => str + affix!c 
+		};
+
+	        g = gen;
+
+		 lock_PN = <>
+	    };
+       
+
+	mkPredet : Str -> Bool -> Predet = \word,decl ->
+      		
+	      { 
+		s = \\c => 
+		  case decl of {
+		    True =>  case c of
+			{
+			Gen|Dat => affix!c + word;
+			   _    => word + affix!c 
+			};
+		    False => word
+		  };
+		isDecl = decl
+	      };
+
+	mkPrep : Str -> Str-> Bool -> Prep = \word1,word2,ispre ->
+      	      {
+	            s = word1; s2 = word2;
+		    isPre = ispre
+	      };
+
+
+
+
+	
+  mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> 
+
+    lin Conj (sd2 x y ** {n = n}) ;
+
+mkConj = overload {
+    mkConj : Str -> Conj = \y -> mk2Conj [] y Pl ;
+    mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
+    mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y Pl ;
+    mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
+  } ;
+
+
+  mkConj : overload {
+    mkConj : Str -> Conj ;                  -- and (plural agreement)
+    mkConj : Str -> Number -> Conj ;        -- or (agrement number given as argument)
+    mkConj : Str -> Str -> Conj ;           -- both ... and (plural)
+    mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
+  } ;
+
+        mkIP : Str -> Number -> {s : Str ; n : Number} = \s,n -> {s = s ; n = n} ;
+     	
+	--mkAdv : Str -> C.Adv = \x -> { s = x};
+
+	mkN2 : Noun -> Prep -> N2;
+
+	mkN2 = \n,p -> lin N2 (n ** {c2 = p.s}) ;
+
+	mkN3 : Noun -> Prep -> Prep -> N3 ;
+	
+	mkN3 = \n,p,q -> lin N3 (n ** {c2 = p.s ; c3 = q.s}) ;
+
+
+
+
+
+--Adjective = {s : Gender (mf) => Number(sp) =>Species (di)=> Case (nagd) => Str} ;
+mkAdjective : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x32 : Str)-> Adjective = 
+     		 \msdn,msda,msdg,msdd,msin,msia,msig,msid,mpdn,mpda,mpdg,mpdd,mpin,mpia,mpig,mpid,
+                  fsdn,fsda,fsdg,fsdd,fsin,fsia,fsig,fsid,fpdn,fpda,fpdg,fpdd,fpin,fpia,fpig,fpid-> {
+     		 s = table {
+
+                  Masc => table { 
+                                  Sg=> table 
+                                            { 
+                                             Def=> table 
+                                                        { 
+                                                         Nom => msdn ; 
+                                                         Acc => msda ; 
+                                                         Gen => msdg ; 
+                                                         Dat => msdd 
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+                                                          Nom => msin ; 
+                                                          Acc => msia ; 
+                                                          Gen => msig ; 
+                                                          Dat => msid 
+                                                         }  
+                                            };   
+                                  Pl=> table 
+                                            { 
+                                              Def=> table 
+                                                        { 
+                                                          Nom => mpdn ; 
+                                                          Acc => mpda ; 
+                                                          Gen => mpdg ; 
+                                                          Dat => mpdd 
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+                                                          Nom => mpin ; 
+                                                          Acc => mpia ; 
+                                                          Gen => mpig ; 
+                                                          Dat => mpid 
+                                                         }  
+                                            } 
+                                } ;   
+  
+                  Fem  => table { 
+                                   Sg=> table 
+                                            { 
+                                             Def=> table 
+                                                        { 
+                                                         Nom => fsdn ; 
+                                                         Acc => fsda ; 
+                                                         Gen => fsdg ; 
+                                                         Dat => fsdd 
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+                                                          Nom => fsin ; 
+                                                          Acc => fsia ; 
+                                                          Gen => fsig ; 
+                                                          Dat => fsid 
+                                                         }  
+                                            };   
+                                  Pl=> table 
+                                            { 
+                                              Def=> table 
+                                                        { 
+                                                         Nom => fpdn ; 
+                                                         Acc => fpda ; 
+                                                         Gen => fpdg ; 
+                                                         Dat => fpdd 
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+                                                          Nom => fpin ; 
+                                                          Acc => fpia ; 
+                                                          Gen => fpig ; 
+                                                          Dat => fpid 
+                                                         }  
+                                            } 
+                                } 
+              		 
+           }
+         		 } ;
+
+-- most amharic nouns follow the Masc trend so...
+
+		 regAdj : Str -> Adjective =            
+			\qey -> 
+        		 let qe = init qey
+        		 in
+
+   		 mkAdjective   (qe + replaceLastLet6_2_M (last qey)) 
+                               (qe + replaceLastLet6_2_M (last qey)+"ን") 
+                                       ("የ"+qe + replaceLastLet6_2_M (last qey))
+                                       ("ለ"+qe + replaceLastLet6_2_M (last qey)) 
+                               qey 
+                               (qey+"ን") 
+                                       ("የ"+qey)
+                                       ("ለ"+qey)
+                               (qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )
+                               ((qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M   (replaceLastLet6_7(last qey)))+"ን")
+                                       ("የ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ))
+                                       ("ለ"+(qe + init(replaceLastLet6_7 (last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ))
+                               (qe + replaceLastLet6_7 (last qey))
+			       (qe+replaceLastLet6_7 (last qey)+"ን")
+                                       ("የ"+qe + replaceLastLet6_7 (last qey))
+                                       ("ለ"+qe + replaceLastLet6_7 (last qey))
+			       (qe + replaceLastLet6_2_F (last qey))
+                               (qe + replaceLastLet6_2_F (last qey)+"ን") 
+                                       ("የ"+qe + replaceLastLet6_2_F (last qey))
+                                       ("ለ"+qe + replaceLastLet6_2_F (last qey)) 
+                               qey 
+                               (qey+"ን")      
+                                       ("የ"+qey)
+                                       ("ለ"+qey)
+                               (qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )
+                               ((qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)))+"ን")
+                                       ("የ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ))
+                                       ("ለ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ))
+                               (qe + replaceLastLet6_7 (last qey))
+			       (qe+replaceLastLet6_7 (last qey)+"ን")
+                                       ("የ"+qe + replaceLastLet6_7 (last qey))
+                                       ("ለ"+qe + replaceLastLet6_7 (last qey)) ;  
+
+
+	mkAdjyh : Str -> Adjective = 
+                 
+                 \yh ->            
+			
+   		 mkAdjective    (yh+"ኛው")
+				(yh+"ኛው"+"ን")
+				"የዚህኛው"
+				"ለዚህኛው"
+				yh
+				(yh+"ን")
+				"የዚህ"
+				"ለዚህ"
+				"እነዚኞቹ"
+				"እነዚኞቹን"
+				"የእነዚኞቹ"
+				"ለእነዚኞቹ"
+				"እነዚህ"
+				"እነዚህን"
+				"የእነዚህ"
+				"ለእነዚህ"
+				(yh+"ች"+"ኛዋ")
+				(yh+"ች"+"ኛዋ"+"ን")
+				"የዚህችኛዋ"
+				"ለዚህችኛዋ"
+				 (yh+"ች")
+				(yh+"ችን")
+				"የዚህች"
+				"ለዚህች"
+				"እነዚኞቹ"
+				"እነዚኞቹን"
+				"የእነዚኞቹ"
+				"ለእነዚኞቹ"
+				"እነዚህ"
+				"እነዚህን"
+				"የእነዚህ"
+				"ለእነዚህ" 	;
+
+	 mkAdjya : Str -> Adjective = 
+                 
+                 \ya ->            
+			
+   		 mkAdjective    (ya+"ኛው")
+				(ya+"ኛው"+"ን")
+				"የዛኛው"
+				"ለዛኛው"
+				ya
+				(ya+"ን")
+				"የዛ"
+				"ለዛ"
+				"እነዚያኞቹ"
+				"እነዚያኞቹን"
+				"የእነዚያኞቹ"
+				"ለእነዚያኞቹ"
+				"እነዚያ"
+				"እነዚያን"
+				"የእነዚያ"
+				"ለእነዚያ" 
+				(ya+"ች"+"ኛዋ")
+				(ya+"ች"+"ኛዋ"+"ን")
+				"የዛችኛዋ"
+				"ለዛችኛዋ"
+				(ya+"ች")
+				(ya+"ችን")
+				"የዛች"
+				"ለዛች"
+				"እነዚያኞቹ"
+				"እነዚያኞቹን"
+				"የእነዚያኞቹ"
+				"ለእነዚያኞቹ"
+				"እነዚያ"
+				"እነዚያን"
+				"የእነዚያ"
+				"ለእነዚያ" ;
+
+
+
+   mkDet : Adjective -> Number -> Species -> Det 
+      = \word,num,species -> 
+      { s = \\g,c => word.s ! g ! num ! species ! c;
+        d = species;  --
+	n = num;
+        isNum = False;
+        isPron = False
+      };
+
+   
+   mkQuant : Adjective ->Species -> Quant =
+    \word,species ->
+
+    { s = \\n,g,c =>word.s! g ! n ! species ! c ;
+      d = species;
+      isPron = False;
+      isNum = False;
+    
+    };
+  
+
+
+
+
+pronNP : (N,A,G,D : Str) -> PerNumGen -> NP = \N,A,G,D,png-> {
+		    s = table {
+		      Nom => N ;
+		      Acc => A ;
+		      Gen => G ;
+		      Dat => D 
+		      } ;
+		    a = {png = png ; isPron = True} 
+		    } ;
+
+		
+		 -- Adverbs
+
+ 	 
+		-- (head (qey)+head(tail(qey))+"አ"+tail(qey)) --- why couldn't this be working while head and tail are still in the prelude libray.
+
+		
+----------------------
+-- Verb
+
+		 getRoot4 : Str -> Root4 = \s -> case s of {
+		    C1@? + C2@? + C3@?+C4 => {C1 = C1 ; C2 = C2 ; C3 = C3;C4 = C4} ;
+		    _ => Predef.error ("cannot get root from" ++ s)
+		    } ;
+
+		 appPattern4 : Root4 -> Pattern4 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3C4+ r.C4 + p.C4 ;                  	 
+		
+		 getRoot3 : Str -> Root3 = \s -> case s of {
+		    C1@? + C2@? + C3 => {C1 = C1 ; C2 = C2 ; C3 = C3} ;
+		    _ => Predef.error ("cannot get root from" ++ s)
+		    } ; 
+
+		 appPattern3 : Root3 -> Pattern3 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3 ;
+		
+		 appPattern3PasPer : Root3 -> Pattern3 -> Str = \r,p ->
+		    "t'" + r.C1 + "!" + r.C2 + "'" + r.C3 + p.C3 ;
+
+		appPattern3PasImp : Root3 -> Pattern3 -> Str = \r,p ->
+		    p.C1 + r.C1 + "!" + r.C2 + "'" + r.C3 + p.C3 ;
+       
+                 getRoot2 : Str -> Root2 = \s -> case s of {
+		    C1@? + C2 => {C1 = C1 ; C2 = C2} ;
+		    _ => Predef.error ("cannot get root from" ++ s)
+		    } ; 
+
+		 appPattern2 : Root2 -> Pattern2 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2;
+
+
+		--remove the first letter
+ 			appPatternRemove : Root3 -> Pattern3 -> Str = \r,p ->
+    			p.C1 +"ä"+ p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3 ;
+		--palatalization
+
+  		 appPattern2pal : Root2 -> Pattern2 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + pallatalize (r.C2) + p.C2;
+		 appPattern3pal : Root3 -> Pattern3 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + pallatalize (r.C3) + p.C3 ;
+ 		 appPattern4pal : Root4 -> Pattern4 -> Str = \r,p ->
+		    p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3C4+ pallatalize (r.C4) + p.C4 ;
+
+
+		suffixDef : PerNumGen => Str = 
+	    table {
+	      Per1 Sg      => "t" ;
+	      Per1 Pl      => "'w";
+	      Per2 Sg Masc => "w";
+	      Per2 Sg Fem  => "w";
+	      Per2 Pl _    => "t" ;
+	      Per3 Sg Masc => "w";
+	      Per3 Sg Fem  => "w";
+	      Per3 Pl _    => "t"
+	    } ;
+
+
+		suffixObjPres : Str-> (PerNumGen => Str) = \str->
+	    table {
+	      Per1 Sg      => str++"N" ;
+	      Per1 Pl      => str++"n";
+	      Per2 Sg Masc => str++"k";
+	      Per2 Sg Fem  => str++"x";
+	      Per2 Pl _    => str++"Ach&" ;
+	      Per3 Sg Masc => str++"w";
+	      Per3 Sg Fem  => str++"!t";
+	      Per3 Pl _    => str++"Ac'w"
+	    } ;
+
+			suffixObjPast : Str-> (PerNumGen => Str) = \str->
+	    table {
+	      Per1 Sg      => str++"&+"++"N" ; -- test:
+	      Per1 Pl      => str++"&+"++"n";
+	      Per2 Sg Masc => str++"&+"++"k";
+	      Per2 Sg Fem  => str++"&+"++"x";
+	      Per2 Pl _    => str++"&+"++"Ach&" ;
+	      Per3 Sg Masc => str++"&+"++"w";
+	      Per3 Sg Fem  => str++"&+"++"!t";
+	      Per3 Pl _    => str++"&+"++"Ac'w"
+	    } ;
+
+		suffixPos : PerNumGen => Str = 
+	    table {
+	      Per1 Sg      => "y7" ;
+	      Per1 Pl      => "Acn";
+	      Per2 Sg Masc => "h";
+	      Per2 Sg Fem  => "x";
+	      Per2 Pl _ => "Ach&" ;
+	      Per3 Sg Masc => "&";
+	      Per3 Sg Fem  => "w!";
+	      Per3 Pl _=> "Ac!w"
+	    } ;
+
+		reflPron : PerNumGen => Str =
+          table
+            {
+
+    	      Per1 Sg      => "ራሴ" ;
+	      Per1 Pl      => "ራሳችን";
+	      Per2 Sg Masc => "ራስህ";
+	      Per2 Sg Fem  => "ራስሽ";
+	      Per2 Pl _    => "ራሳችሁ" ;
+	      Per3 Sg Masc => "ራሱ";
+	      Per3 Sg Fem  => "ራሷ";
+	      Per3 Pl _    => "ራሳቸው"
+            } ;
+
+
+ predV :Verb -> VP = \v ->
+
+	{
+		
+	s = \\t,p,png =>
+
+		 let
+
+			ketebku		 =    v.s ! Perf !Act! png ; --
+			eketbalehu       =    v.s ! Imperf !Act! png ;--
+			keteb		 =    v.s ! Jus_Imperat !Act! png ; -- imperative
+			ketbie		 =    v.s ! Gerund !Act! png ; --
+			mekteb		 =    v.s ! Infinitive !Act! png ; --
+			ketabi		 =    v.s ! Parti !Act! png ; 
+			ketbiealehu      =    v.s ! CompPerf !Act! png ; --
+			eketib		 =    v.s ! Cont !Act! png ; --  just play with the actives for now
+
+		in
+
+		  case <t,p> of {
+
+
+			
+			<PresFut,Pos>  => eketbalehu ;
+			<PresFut,Neg>  => "!" ++"&+"++ eketib ++"&+" ++"m" ;--   case for I is unique 											  but sticking to the 												general trend
+			<PresPerf,Pos>  => ketbiealehu;
+			<PresPerf,Neg>  => "!l"++"&+"++ketebku++"&+"++"m";
+			<PresCont,Pos>   => "(y'"++ "&+"++ketebku ++"n'w" ;
+			<PresCont,Neg>   => "(y'"++ "&+"++ketebku ++"Ayd'l'm" ;			
+			<SimplePast,Pos> => ketebku;
+			<SimplePast,Neg> => "!l"++"&+"++ketebku++"&+"++"m";			
+			<PastPerf,Pos>  => ketbie ++ "n'b'r";
+			<PastPerf,Neg>  => "!l"++"&+"++ketebku++"&+"++"m"++"n'b'r"; 
+			<PastCont,Pos>   => "(y'"++ "&+"++ketebku ++ "n'b'r" ;
+			<PastCont,Neg>   => "(y'"++ "&+"++ketebku ++ "Aln'b'r'm"
+                     
+
+			      };
+
+			obj = {
+				s = [] ; 
+				a = {png = Per3 Sg Masc  ; isPron = False} 
+			}; 
+			s2 = [];
+			imp  = v.s ! Jus_Imperat!Act !Per2 Sg Masc ;
+			inf  = v.s ! Infinitive ! Act ! Per3 Sg Masc ;-- or any
+			pred = { s = \\_,_ => []};
+			isPred = False
+
+
+		};
+
+  predVc : V2 -> VPSlash = \v2 -> 
+       	   predV v2 ** {c2 = v2.c2} ;
+
+     insertObj : NP -> VP -> VP = \np,vp ->
+      { s = vp.s;
+        obj = {s = np.s ! Acc ; a = np.a};   
+        s2 = vp.s2;
+        pred = vp.pred;
+	inf = vp.inf;
+	imp = vp.imp ; 
+        isPred = vp.isPred
+      };
+
+	
+
+   insertPred : {s : AmhAgr => Case => Str} -> VP -> VP = \p,vp ->
+      { s = vp.s;
+        obj = vp.obj;
+        s2 = vp.s2;
+	imp = vp.imp ;
+	inf = vp.inf;
+        pred = p;
+        isPred = True
+      };
+
+    insertStr : Str -> VP -> VP = \str,vp ->
+      { s = vp.s;
+        obj = vp.obj;
+        s2 = str;
+	imp = vp.imp ;
+	inf = vp.inf;
+        pred = vp.pred;
+        isPred = vp.isPred
+      };
+
+	
+	
+
+{-
+
+  insertObjPre : (PerNumGen => Str) -> VP -> VP = \obj,vp -> {
+    s = vp.s ;
+    obj = vp.s ! obj;
+    pred = vp.pred;
+    isPred = vp.isPred
+
+		
+    } ;
+
+  insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
+    s = vp.s ;
+    prp = vp.prp ;
+    inf = vp.inf ;
+    ad = vp.ad ;
+    s2 = \\a => vp.s2 ! a ++ obj ! a
+    } ;
+
+  insertObjPre : (PerNumGen => Str) -> VP -> VP = \obj,vp -> {
+    s = vp.s ;
+    prp = vp.prp ;
+    inf = vp.inf ;
+    ad = vp.ad ;
+    s2 = \\a => obj ! a ++ vp.s2 ! a 
+    } ;
+
+
+  insertObjc : (Agr => Str) -> SlashVP -> SlashVP = \obj,vp -> 
+    insertObj obj vp ** {c2 = vp.c2} ;
+
+-}
+
+
+--  impVP : VP -> PerNumGen -> Str = \vp,a ->
+  --            vp.imp ! a;
+
+
+  mkV2  : Verb -> Prep -> V2 = \ v, p ->                  
+	lin V2 (v ** {c2 = p ; lock_V2 = <>}) ;
+ 
+  mkV3     : Verb -> Prep -> Prep -> V3 = \ v, p ,q  ->  
+	lin V3 (v ** {c2 = p ; c3 = q ; lock_V3 = <>} );
+
+------
+-- For Sentence
+
+-- Transformations between parameter types
+
+
+
+  png2gn : PerNumGen -> {g : Gender; n : Number} = \png ->
+      case png of {
+        Per3  nm gn => {g = gn; n = nm};
+        Per2  nm gn => {g = gn; n = nm};
+        _ 	    => {g = Masc; n = Sg} --randomly
+      };
+
+
+
+
+     toAgr : Number -> Person -> Gender -> PerNumGen = \n,p,g -> 
+      case p of {
+        P1 => Per1 n ;
+        P2 =>case n of {
+          Sg => Per2 Sg g ;
+          Pl => Per2 Pl g
+          };
+        P3 => case n of {
+          Sg => Per3 Sg g ;
+          Pl => Per3 Pl g 
+          }
+        } ;
+
+    fromAgr : PerNumGen -> {n : Number ; p : Person ; g : Gender} = \png -> case png of {
+      Per1 n    => {n = n ; p = P1 ; g = Masc} ; -- random (Ramona)
+      Per2 Pl g   => {n = Pl ; p = P2 ; g = Masc} ;
+      Per2 Sg g => {n = Sg ; p = P2 ; g = g} ;
+      Per3 Sg g => {n = Sg ; p = P3 ; g = g} ;
+      Per3 Pl g   => {n = Pl ; p = P3 ; g = Masc}
+      } ;
+
+    agrP3 : Number -> PerNumGen = \n -> agrgP3 n Masc ;
+
+    agrgP3 : Number -> Gender -> PerNumGen = \n,g -> toAgr n P3 g ;
+
+    conjAgr : PerNumGen -> PerNumGen -> PerNumGen = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        (conjPerson a.p b.p) a.g ;
+
+
+
+{-
+  infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
+    vp.ad ++ vp.inf ++ vp.s2 ! a  
+    ;-}
+
+
+
+
+
+
+
+  mkClause : Str -> PerNumGen -> VP -> Cl =
+    \subj,png,vp -> {
+      s = \\t,b => 
+        let 
+          verb  = vp.s ! t !b ! png ;
+          obj = vp.obj.s;
+          gn = png2gn png ;
+	  pred = vp.pred.s ! gn ! Nom     -- Totawa / muzun / lita belach
+          
+        in
+	       subj ++ obj ++ pred ++ verb ;
+             --  subj ++ obj ++ pred ++ suffixObjPast(verb) !vp.obj.a.png ;
+   
+    } ;
+
+
+  regNP : Str -> Number -> NP = \word,n ->
+    {     
+      s = \\c =>case c of
+		{
+		Gen|Dat => affix!c + word;
+		   _    => word + affix!c 
+		};
+      a = {png = Per3 n Masc ; isPron = False };
+      lock_NP = <>
+    };
+
+
+  mkDeterminer : Number -> Str -> {s : Case => Str; n : Number} = \n,s ->
+    {
+     s = affix2 s ;
+     n = n
+      } ;
+
+
+--------
+					     -- speak, 									with, about
+  {-dirV3    : Verb -> Prep -> V3 = \ v,p -> 
+	mkV3 v [] p.s ;				               -- give,_,to
+  dirdirV3 : Verb -> V3 = \ v ->
+	dirV3 v [] ;			                       -- give,_,_
+  mkV0  : Verb -> V0 = \ v ->
+	v ** {lock_V = <>} ;
+  mkVS  : Verb -> VS = \ v ->
+	v ** {lock_VS = <>} ;
+  mkV2S : Verb -> Str -> V2S = \ v,p ->
+	mkV2 v p ** {lock_V2S = <>} ;
+  --mkV2V : V -> Str -> Str -> V2V = \ v,p,t -> 
+	--mkV2 v p ** {s4 = t ; lock_V2V = <>} ;
+  mkVA  : Verb -> VA = \ v ->
+	v ** {lock_VA = <>} ;
+  mkV2A : Verb -> Str -> V2A = \ v,p ->
+	mkV2 v p ** {lock_V2A = <>} ;
+  mkVQ  : Verb -> VQ = \ v ->
+	v ** {lock_VQ = <>} ; 
+  mkV2Q : Verb -> Str -> V2Q = \ v,p -> 
+	mkV2 v p ** {lock_V2Q = <>} ;
+-}
+
+--PerNumGen =  Per1 Number| Per2 Number Gender |Per3 Number Gender ;
+
+
+--- N U M E R A L S
+
+   param  CardOrd = NCard | NOrd ;
+  
+   param DForm = unit | ten  ;
+
+   oper affix2 : Str -> Case => Str = \str-> 
+	
+	table {
+		
+		Gen => "የ"  + str;
+		Dat => "ለ"  + str;
+                Acc => str + "ን" ;
+		_   =>       str 
+	  };
+	
+-- This is as well a proposed solution to solve the  confusion...
+   oper affix3 : Str -> Species => Case => Str= \str-> 
+	     table {
+
+
+                     Def=> table 
+                                { 
+
+                                  Gen => "የ"  + regOrdMasc(str);
+				  Dat => "ለ"  + regOrdMasc(str);
+				  Acc => regOrdMasc(str) + "ን" ;
+				  _   => regOrdMasc(str)
+				};
+         
+                     Indef=> table 
+                                { 
+                                  Gen => "የ"  + str;
+				  Dat => "ለ"  + str;
+				  Acc => str + "ን" ;
+				  _   =>       str
+
+                                 }  
+                                           
+                   };   
+ 
+   
+--}
+
+ adjaffix :  Str -> Gender=>Number=>Species=>Case=> Str= \str->  
+     		table {
+
+                    Masc => table { 
+                                  Sg=> table 
+                                            { 
+                                             Def=> table 
+                                                        { 
+							Gen => "የ"  + regOrdMasc(str);
+							Dat => "ለ"  + regOrdMasc(str);
+							Acc => regOrdMasc(str)+ "ን" ;
+							_   => regOrdMasc(str)
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+							Gen => "የ"  + str;
+							Dat => "ለ"  + str;
+							Acc => str + "ን" ;
+							_   =>       str 
+                                                         }  
+                                            };   
+                                  Pl=> table 
+                                            { 
+                                              Def=> table 
+                                                        { 
+							Gen => "የ"  + regordPlDef(str);
+							Dat => "ለ"  + regordPlDef(str);
+							Acc => regordPlDef(str)+ "ን" ;
+							_   => regordPlDef(str)
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+							Gen => "የ"  + regOrdPlIndef(str);
+							Dat => "ለ"  + regOrdPlIndef(str); 
+							Acc => regOrdPlIndef(str)+ "ን" ;
+							_   =>   regOrdPlIndef(str)
+                                                         }  
+                                            } 
+                                } ;   
+  
+                  Fem  => table { 
+                                   Sg=> table 
+                                            { 
+                                             Def=> table 
+                                                        { 
+							Gen => "የ"  + regOrdFem(str);
+							Dat => "ለ"  + regOrdFem(str);
+							Acc => regOrdFem(str)+ "ን" ;
+							_   => regOrdFem(str)
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+							Gen => "የ"  + str;
+							Dat => "ለ"  + str;
+							Acc => str + "ን" ;
+							_   =>       str
+                                                         }  
+                                            };   
+                                  Pl=> table 
+                                            { 
+                                              Def=> table 
+                                                        { 
+							Gen => "የ"  + regordPlDef(str);
+							Dat => "ለ"  + regordPlDef(str);
+							Acc => regordPlDef(str)+ "ን" ;
+							_   => regordPlDef(str)
+                                                        };   
+                                             Indef=> table 
+                                                        { 
+							Gen => "የ"  + regOrdPlIndef(str);
+							Dat => "ለ"  + regOrdPlIndef(str); 
+							Acc => regOrdPlIndef(str)+ "ን" ;
+							_   =>   regOrdPlIndef(str)
+                                                         }  
+                                            } 
+                                } 
+              		 
+           		};
+        
+
+
+ 
+   oper regOrdMasc :  Str -> Str = \str -> 
+		case last str of
+          {   
+		"ድ" => init str + "ዱ" ;
+     		"ት" => init str + "ቱ" ;
+     		"ኝ" => init str + "ኙ" ;
+      		"ር" => init str + "ሩ" ;
+ 		_ => str+"ዉ"
+           } ;
+
+   oper regOrdFem : Str -> Str = \ str ->
+           		case last str of
+          {   
+		"ድ" => init str + "ዷ" ;
+     		"ት" => init str + "ቷ" ;
+     		"ኝ" => init str + "ኟ" ;
+      		"ር" => init str + "ሯ" ;
+ 		_ => str+"ዋ"
+           } ;
+
+ oper regOrdPlIndef : Str -> Str = \ str ->
+           		case last str of
+          {   
+		"ድ" => init str + "ደኞች" ;
+     		"ት" => init str + "ተኞች" ;
+     		"ኝ" => init str + "ነኞች" ;
+      		"ር" => init str + "ሮች" ;
+ 		_ => str+"ዎች"
+           } ;
+
+ oper regordPlDef : Str -> Str =\ str ->
+
+		case last str of 
+{
+		"ድ" => init str + "ደኞቹ" ;
+     		"ት" => init str + "ተኞቹ" ;
+     		"ኝ" => init str + "ነኞቹ" ;
+      		"ር" => init str + "ሮቹ" ;
+ 		_ => str+"ዎቹ"
+
+};
+
+
+
+
+   oper regOrd : Str -> Str = \ten -> 
+     case last ten of {
+      		"ድ" => init ten + "ደኛ" ;
+     		"ት" => init ten + "ተኛ" ;
+     		"ኝ" => init ten + "ነኛ" ;
+      		"ር" => init ten + "ረኛ" ;
+   	       	 _ => ten + "ኛ"
+      } ;
+
+  oper regCardOrd : Str -> {s :CardOrd =>Gender=>Number=>Species=>Case=> Str} = \ten ->
+    {s = table {
+                NCard => adjaffix ten ; 
+		NOrd =>  adjaffix (regOrd ten)
+               } 
+    } ;
+  
+
+  oper mkCard : CardOrd -> Str ->Gender=>Number=>Species=>Case=> Str = \o,ten -> 
+    (regCardOrd ten).s ! o ; 
+
+
+
+  oper mkNum : Str -> Str -> Str -> {s : DForm => CardOrd =>Gender=>Number=>Species=>Case=> Str} = 
+    \hulet,haya, huleteNa ->
+    {s = table {
+      		 unit => 
+			table {	
+				NCard => adjaffix hulet ; 
+				NOrd =>  adjaffix huleteNa
+			      } ;
+    
+                  		       			
+		ten  => \\c => mkCard c haya
+       }
+    } ;
+
+	
+
+ oper mkQuestion :  {s : Str} -> Cl ->  {s : TenseAmh => Polarity  => Str} = \wh,cl ->
+     	{ 
+		s = \\t,p =>  wh.s ++ cl.s ! t ! p 
+	};
+
+	
+}
diff --git a/lib/src/amharic/SentenceAmh.gf b/lib/src/amharic/SentenceAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/SentenceAmh.gf
@@ -0,0 +1,69 @@
+--# -path=.:abstract:common:prelude
+--
+concrete SentenceAmh of Sentence = CatAmh ** open 
+  ResAmh, ParamX
+   in {
+--
+--
+ flags optimize=all_subs ; coding=utf8 ;
+--        
+  lin
+
+	
+
+
+	PredVP np vp = mkClause (np.s ! Nom) np.a.png vp ;
+
+        SlashVP np vp =  mkClause (np.s ! Nom) np.a.png vp ** {c2 = vp.c2} ;
+
+	ImpVP vp = {
+			s = \\p,g,n =>
+			case p of {
+				Pos => vp.obj.s  ++  vp.imp  ;
+				Neg => vp.obj.s  ++ "አት" ++ "&+" ++ vp.imp 
+			}
+		      };
+	
+--ImpVP     : VP -> Imp ;              -- love yourselves
+    --FIXME, all tenses
+
+	    UseCl  t ap cl = 
+	      let ss : Str = case t.t of 
+		      {
+		       Pres => cl.s ! PresFut ! ap.p ;
+		       Cond => cl.s ! PresFut ! ap.p ;
+		       Past => cl.s ! SimplePast ! ap.p ;
+		       Fut  => cl.s ! PresFut ! ap.p
+		      }
+		   in {
+
+		s =  ss
+	     };
+
+		
+
+
+	    UseQCl  t ap qcl = 
+
+	      let ss : Str = case t.t of 
+		      {
+		       Pres => qcl.s ! PresFut ! ap.p ;
+		       Cond => qcl.s ! PresFut ! ap.p ;
+		       Past => qcl.s ! SimplePast ! ap.p ;
+		       Fut  => qcl.s ! PresFut ! ap.p
+		      }
+		   in {
+
+		s =  ss
+	     };
+	
+	EmbedVP vp = {s =   vp.obj.s ++ vp.inf} ;
+
+	AdvS a s = {s = a.s ++ "፤" ++ s.s} ;
+
+	SSubjS a s b = {s = b.s ++ s.s ++ a.s} ;
+
+
+
+
+}
diff --git a/lib/src/amharic/StructuralAmh.gf b/lib/src/amharic/StructuralAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/StructuralAmh.gf
@@ -0,0 +1,127 @@
+--# -path=.:../Romance:../common:../abstract:../common:prelude
+-- (c) 2010 Markos KG
+-- Licensed under LGPL
+
+
+concrete StructuralAmh of Structural = CatAmh ** 
+
+open MorphoAmh, ResAmh, ParadigmsAmh,(C = ConstructX),ParamX, Prelude in {
+--
+flags optimize=all ;  coding=utf8 ;
+--
+lin
+
+		above_Prep = mkPrep  "ከ"  "በላይ" False;
+		after_Prep = mkPrep  "ከ"  "በኋላ" False;
+		all_Predet = mkPredet"ሁሉ"  False ;
+		-- almost_AdA = ss "ገደማ";
+		-- almost_AdN = ss "حَوَالي" ; -- or  "تَقرِيبا"
+		although_Subj = ss "ይሁን እንጂ" ;
+		always_AdV = ss "ሁልጊዜ" ;
+		and_Conj = sd2 [] "እና" ** {n = Pl} ; --and_Conj = mkConj "እና" Pl ; -- and_Conj = ss "እና" ** {n = Pl} ;
+		because_Subj = ss "ሰለዚህ" ;
+		before_Prep = mkPrep "ከ" "በፊት "  False ;
+		behind_Prep = mkPrep "ከ" "በስተጀርባ" False;
+		between_Prep = mkPrep "በ" "መካከል" False ;
+		both7and_DConj = sd2 "" "እና" ** {n = Pl} ;
+		but_PConj = ss "ነገር ግን" ;
+		by8means_Prep = mkPrep "በ" "" True  ;
+		by8agent_Prep = mkPrep "" "ጋ" False ;
+		--can8know_VV, can_VV = {
+		--s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ; 
+		----         ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ; 
+		----    isAux = True
+		----    } ;
+		--  during_Prep = mkPrep "ሳለ" ;
+		either7or_DConj = sd2 "ወይ " " ካለበለዚያ" ** {n = Sg} ;
+		everybody_NP = regNP "ሁሉምሰው" Sg ;
+		every_Det = mkDet (regAdj "እያንዳንዱ") Sg Indef ;
+		everything_NP = regNP "ሁሉነገር" Sg ;
+		everywhere_Adv = ss "በየቦታው" ;
+		few_Det =   mkDet (regAdj "ጥቂት") Pl Indef ;
+		first_Ord = ss "መጀመሪያ" ;
+		from_Prep = mkPrep "ከ" ""True ;
+		he_Pron = pronNP "እርሱ" "እርሱን" "የእርሱ" "ለእርሱ"  (Per3 Sg Masc)  ;
+		here_Adv = ss "እዚህ" ;
+		here7to_Adv = ss "ወደዚህ" ;
+		here7from_Adv = ss "ከዚህ" ;
+		how_IAdv = ss "እንዴት" ;
+		how8many_IDet = mkDeterminer Pl ["ስንት"] ;
+		--if_Subj = ss "ِف" ;
+		in8front_Prep = mkPrep "ከ" "ፊትለፊት" False;
+		i_Pron  = pronNP "እኔ" "እኔን" "የእኔ" "ለእኔ" (Per1 Sg)  ;
+		in_Prep = mkPrep "" "ውስጥ" False;
+		it_Pron  = pronNP "" "" "" ""  (Per3 Sg Masc)  ; 
+		less_CAdv = C.mkCAdv "በ" "አነስ";
+		many_Det = mkDet (regAdj "ብዙ") Pl Indef ;
+		more_CAdv = C.mkCAdv "በ" "ተሻለ";
+		as_CAdv  = C.mkCAdv "ልክ" "እንደ" ;
+		most_Predet = mkPredet  "አብዛኛው" True ;
+		much_Det =  mkDet (regAdj "ብዙ") Pl Indef ;
+		--must_VV = {
+		--s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ; 
+		----         ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ---- 
+		--    isAux = True
+		--    } ;
+		--  no_Utt = {s = \\_ => "لا"} ;
+		on_Prep = mkPrep "በ" "ላይ" False ;
+		--DEPREC  one_Quant = mkQuantNum "واحِد" Sg Indef ;
+		only_Predet = mkPredet "ብቻ" False;
+		or_Conj = sd2 [] "ወይም" ** {n = Sg} ; 
+		otherwise_PConj = ss "ካለበለዚያ" ;
+		-- part_Prep = mkPrep "مِنَ" ;
+	        please_Voc = ss "ስለእግዚአብሐር" ; --  cant be here in structural : 
+		-- possess_Prep = mkPrep "ل" ;
+		-- quite_Adv = ss "قُِتي" ;
+		she_Pron = pronNP "እርሷ" "እርሷን" "የእርሷ" "ለእርሷ" (Per3 Sg Fem)  ;
+		so_AdA = ss "በጣም";
+		somebody_NP = regNP "የሆነሰው" Sg ;
+		someSg_Det = mkDet (regAdj "የሆነ" ) Sg Indef ;
+		somePl_Det = mkDet (regAdj "ጥቂት" ) Pl Indef ;
+		something_NP = regNP "የሆነነገር" Sg ;
+		somewhere_Adv = ss "የሆነቦታ" ;
+		--  that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def;
+		------b  that_NP = indeclNP "ذَلِكَ" Sg ;
+		for_Prep = mkPrep "ለ" "" False;
+		there_Adv = ss "እዚያ" ;
+		there7to_Adv = ss "ወደዚያ" ;
+		there7from_Adv = ss "ከዚያ" ;
+		 therefore_PConj = ss "ሰለዚህ" ;
+		--b  these_NP = indeclNP "هَؤُلَاء" Pl ;
+		they_Pron = pronNP "እነርሱ" "እነርሱን" "የእነርሱ" "ለእነርሱ" (Per3 Pl Masc)  ; 
+		--this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def;
+		this_Quant =  mkQuant (mkAdjyh "ይህ") Indef ;
+		--these_Quant = adjDet (mkDetyh "ይህ") Pl False;
+		that_Quant =  mkQuant (mkAdjya "ያ")  Indef;
+		--those_Quant = adjDet (mkDetya "ያ") Pl False;
+		--b  this_NP = indeclNP "هَذا" Sg ;
+		--b  those_NP = indeclNP "هَؤُلَاءكَ" Pl ;
+		through_Prep = mkPrep "በ" "በኩል" False ;
+		 too_AdA = ss "በጣም" ;
+		 to_Prep = mkPrep "ወደ" "" True;
+		under_Prep = mkPrep "ከ" "ታች" False ;
+		very_AdA = ss "በጣም" ;
+		want_VV = mkV3mls"flg"; 
+		we_Pron = pronNP "እኛ" "እኛን" "የእኛ" "ለእኛ"   (Per1 Pl) ;
+		--whatPl_IP = mkIP "ماذا" Pl ;
+		--whatSg_IP = mkIP "ماذا" Sg ;
+		when_IAdv = ss "መቼ" ;
+		--when_Subj = ss "وهن" ;
+		where_IAdv = ss "የት" ;
+		which_IQuant = {s = \\_ =>"የምን"} ;
+		whichPl_IDet = mkDeterminer Pl ["የትኞቹ"] ;
+		whichSg_IDet = mkDeterminer Sg ["የትኛው"] ;
+		whoSg_IP = mkIP "ማን" Sg ;
+		whoPl_IP = mkIP "እነማን" Pl ;
+		why_IAdv = ss "ለምን" ;
+		without_Prep = mkPrep "ካለ" "" True ;
+		with_Prep = mkPrep "ከ" "ጋር" False ;
+		--yes_Utt = {s = \\_ => "نَعَم"} ;
+		youSg_Pron = pronNP "አንተ" "አንተን" "የአንተ" "ለአንተ" (Per2 Sg Masc);	
+		youPl_Pron = pronNP "እናንተ" "እናንተን" "የእናንተ" "ለእናንተ"  (Per2 Pl Masc);
+		youPol_Pron = pronNP "እርስዎ" "እርስዎን" "የእርስዎ" "ለእርስዎ"  (Per3 Pl Masc) ;  -- discuss this i the report : 
+		have_V2      = mkV2 (mkV3al "äl") (mkPrep "" "" True);
+		-- dirV2 (regV "يَملِك") ; 
+		lin language_title_Utt = ss "አማርኛ"  ;
+		
+}
diff --git a/lib/src/amharic/SymbolAmh.gf b/lib/src/amharic/SymbolAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/SymbolAmh.gf
@@ -0,0 +1,47 @@
+--# -path=.:../abstract:../common
+
+concrete SymbolAmh of Symbol = CatAmh ** open Prelude, ResAmh in {
+--
+--{-
+--lin
+--  SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c
+--  IntPN i  = {s = \\c => i.s ; g = Neutr} ; --- c
+--  FloatPN i  = {s = \\c => i.s ; g = Neutr} ; --- c
+--  NumPN i  = {s = i.s ! Neutr ; g = Neutr} ; --- c
+--
+--  CNIntNP cn i = {
+--    s = \\c => cn.s ! Weak ! Sg ! Nom ++ i.s ;
+--    a = agrP3 Sg ;
+--    isPron = False
+--    } ;
+--  CNSymbNP det cn xs = let g = cn.g in {
+--    s = \\c => det.s ! g ! c ++ cn.s !  adjfCase det.a c ! det.n ! c ++ xs.s ; 
+--    a = agrP3 det.n ;
+--    isPron = False
+--    } ;
+--  CNNumNP cn i = {
+--    s = \\c => artDef ! (GSg cn.g) ! c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! c ;
+--    a = agrP3 Sg ;
+--    isPron = False
+--    } ;
+--
+--  SymbS sy = {s = \\_ => sy.s} ;
+--
+--  SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ;
+--  SymbOrd n = {s = \\_   => n.s ++ "።"} ;
+--
+--
+--lincat 
+--
+--  Symb, [Symb] = SS ;
+--
+--lin
+--
+--  MkSymb s = s ;
+--
+--  BaseSymb = infixSS "und" ;
+--  ConsSymb = infixSS "," ;
+---}
+--
+}
+
diff --git a/lib/src/amharic/VerbAmh.gf b/lib/src/amharic/VerbAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/VerbAmh.gf
@@ -0,0 +1,331 @@
+concrete VerbAmh of Verb = CatAmh ** open Prelude,ParamX, ResAmh in {
+--
+ flags optimize=all_subs ;
+            coding = utf8;
+--
+  lin
+
+
+	    UseV = predV ;
+
+	    SlashV2a v = predVc v ;
+
+	    Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2};
+
+	    ComplSlash vp np = insertObj np vp ;    
+
+	    CompAP ap = {s = \\amhagr,c => ap.s ! amhagr.g ! amhagr.n ! Indef ! c} ; --FIXME
+
+	    CompNP np = {s = \\_,c => np.s ! c};
+
+	    CompAdv a = {s = \\_,_ => a.s} ;
+
+	--    PassV2   : V2 -> VP ;               -- be loved
+	  	PassV2 v2 = {
+				s = \\t,p,png =>
+
+		 let
+
+			teketebku		 =    v2.s ! Perf !Pas! png ; --
+			eketebalehu       =    v2.s ! Imperf !Pas! png ;--
+			teketeb		 =    v2.s ! Jus_Imperat !Pas! png ; -- imperative
+			teketbie		 =    v2.s ! Gerund !Pas! png ; --
+			meketeb		 =    v2.s ! Infinitive !Pas! png ; --
+			teketabi		 =    v2.s ! Parti !Pas! png ; 
+			teketbiealehu      =    v2.s ! CompPerf !Pas! png ; --
+			eketeb		 =    v2.s ! Cont !Pas! png ; --  just play with the actives for now
+
+		in
+
+		  case <t,p> of {
+
+
+			
+			<PresFut,Pos>  => eketebalehu ;
+			<PresFut,Neg>  => "!" ++"&+"++ eketeb ++"&+" ++"m" ;--   case for I is unique 											  but sticking to the 												general trend
+			<PresPerf,Pos>  => teketbiealehu;
+			<PresPerf,Neg>  => "!l"++"&+"++teketebku++"&+"++"m";
+			<PresCont,Pos>   => "(y'"++ "&+"++teketebku ++"n'w" ;
+			<PresCont,Neg>   => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;			
+			<SimplePast,Pos> => teketebku;
+			<SimplePast,Neg> => "!l"++"&+"++teketebku++"&+"++"m";			
+			<PastPerf,Pos>  => teketbie ++ "n'b'r";
+			<PastPerf,Neg>  => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; 
+			<PastCont,Pos>   => "(y'"++ "&+"++teketebku ++ "n'b'r" ;
+			<PastCont,Neg>   => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm"
+                     
+
+			      };
+			obj = {
+				s = [] ; 
+				a = {png = Per3 Sg Masc  ; isPron = False} 
+			}; 
+			s2 = [];
+			imp  = v2.s ! Jus_Imperat!Act !Per2 Sg Masc;
+			inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ;
+			pred = { s = \\_,_ => []};
+			isPred = False
+			} ;
+
+	--  AdvVP    : VP -> Adv -> VP ; 
+
+		AdvVP vp adv = { 
+
+			s = \\t,p,pgn =>  adv.s ++ vp.s!t!p!pgn ; 
+			
+			obj = vp.obj; 
+			s2 = [];
+			imp  = vp.imp ;
+			inf = vp.inf;
+			pred = { s = \\_,_ => []};
+			isPred = False
+		};
+
+
+		--  AdVVP    : AdV -> VP -> VP ;        -- always sleep
+
+
+  --     : Comp -> VP ;            -- be warm -- 
+--
+	UseComp comp = {s= \\t,p,png => 
+       			let 
+				gn = png2gn png 
+				
+       			in 
+	
+		 case <png,t,p> of {
+
+
+			<Per1 Sg,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ነኝ"; 
+			<Per1 Sg,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለሁም"; 
+			<Per1 Sg,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበርኩ";
+			<Per1 Sg,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበርኩም"; 
+			<Per1 Sg,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንኩ ነው";
+			<Per1 Sg,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንኩ አይደለም";			
+			<Per1 Sg,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርኩ";
+			<Per1 Sg,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበርኩም"; 			
+			<Per1 Sg,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበርኩ";
+			<Per1 Sg,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበርኩም" ; 
+			<Per1 Sg,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንኩ ነበር";  
+			<Per1 Sg,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንኩ አልነበረም";
+
+
+			<Per1 Pl,PresFut,Pos>  => comp.s ! gn ! Nom ++ "ነን";
+			<Per1 Pl,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለንም"; 
+			<Per1 Pl,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበርን";
+			<Per1 Pl,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበርንም"; 
+			<Per1 Pl,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንን ነው";
+			<Per1 Pl,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንን አይደለም";			
+			<Per1 Pl,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርን";
+			<Per1 Pl,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበርንም"; 			
+			<Per1 Pl,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበርን";
+			<Per1 Pl,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበርንም" ; 
+			<Per1 Pl,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንን ነበር";  
+			<Per1 Pl,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንን አልነበረም";
+			
+
+			<Per2 Sg Masc,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ነህ"; 
+			<Per2 Sg Masc,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለህም"; 
+			<Per2 Sg Masc,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበርክ";
+			<Per2 Sg Masc,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበርክም"; 
+			<Per2 Sg Masc,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንክ ነው";
+			<Per2 Sg Masc,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንክ አይደለም";			
+			<Per2 Sg Masc,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርክ";
+			<Per2 Sg Masc,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበርክም"; 			
+			<Per2 Sg Masc,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበርክ";
+			<Per2 Sg Masc,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበርክም" ; 
+			<Per2 Sg Masc,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንክ ነበር";  
+			<Per2 Sg Masc,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንክ አልነበረም";
+
+
+			<Per2 Sg Fem,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ነሽ"; 
+			<Per2 Sg Fem,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለሽም"; 
+			<Per2 Sg Fem,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበርሽ";
+			<Per2 Sg Fem,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበርሽም"; 
+			<Per2 Sg Fem,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንሽ ነው";
+			<Per2 Sg Fem,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንሽ አይደለም";			
+			<Per2 Sg Fem,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርሽ";
+			<Per2 Sg Fem,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበርሽም"; 			
+			<Per2 Sg Fem,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበርሽ";
+			<Per2 Sg Fem,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበርሽም" ; 
+			<Per2 Sg Fem,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆንሽ ነበር";  
+			<Per2 Sg Fem,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆንሽ አልነበረም";
+
+			<Per2 Pl _,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ናችሁ"; 
+			<Per2 Pl _,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደላችሁም"; 
+			<Per2 Pl _,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበራችሁ";
+			<Per2 Pl _,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበራችሁም"; 
+			<Per2 Pl _,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆናችሁ ነው";
+			<Per2 Pl _,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆናችሁ አይደለም";			
+			<Per2 Pl _,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበራችሁ";
+			<Per2 Pl _,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበራችሁም"; 			
+			<Per2 Pl _,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበራችሁ";
+			<Per2 Pl _,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበራችሁም" ; 
+			<Per2 Pl _,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆናችሁ ነበር";  
+			<Per2 Pl _,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆናችሁ አልነበረም";
+		
+			<Per3 Sg Masc,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ነው"; 
+			<Per3 Sg Masc,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለም"; 
+			<Per3 Sg Masc,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበረ";
+			<Per3 Sg Masc,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበረም"; 
+			<Per3 Sg Masc,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆነ ነው";
+			<Per3 Sg Masc,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆነ  አይደለም";			
+			<Per3 Sg Masc,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበረ ";
+			<Per3 Sg Masc,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበረም"; 			
+			<Per3 Sg Masc,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበረ";
+			<Per3 Sg Masc,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበረም" ; 
+			<Per3 Sg Masc,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆነ ነበር";  
+			<Per3 Sg Masc,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆነ አልነበረም";	
+
+	
+			<Per3 Sg Fem,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ነች"; 
+			<Per3 Sg Fem,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደለችም"; 
+			<Per3 Sg Fem,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበረች";
+			<Per3 Sg Fem,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበረችም"; 
+			<Per3 Sg Fem,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆነች ነው";
+			<Per3 Sg Fem,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆነች  አይደለም";			
+			<Per3 Sg Fem,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበረች ";
+			<Per3 Sg Fem,SimplePast,Neg >  => comp.s ! gn ! Nom ++ "አልነበረችም"; 			
+			<Per3 Sg Fem,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበረች";
+			<Per3 Sg Fem,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበረችም" ; 
+			<Per3 Sg Fem,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆነች ነበር";  
+			<Per3 Sg Fem,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆነች አልነበረም";
+
+
+			<Per3 Pl _,PresFut,Pos >  => comp.s ! gn ! Nom ++ "ናቸው"; 
+			<Per3 Pl _,PresFut,Neg >  => comp.s ! gn ! Nom ++ "አይደሉም"; 
+			<Per3 Pl _,PresPerf,Pos>  => comp.s ! gn ! Nom ++"ነበሩ";
+			<Per3 Pl _,PresPerf,Neg>  => comp.s ! gn ! Nom ++"አልነበሩም"; 
+			<Per3 Pl _,PresCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆኑ ነው";
+			<Per3 Pl _,PresCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆኑ  አይደለም";			
+			<Per3 Pl _,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበሩ ";
+			<Per3 Pl _,SimplePast,Neg>  => comp.s ! gn ! Nom ++ "አልነበሩም"; 			
+			<Per3 Pl _,PastPerf,Pos>  => comp.s ! gn ! Nom ++ "ነበሩ";
+			<Per3 Pl _,PastPerf,Neg>  => comp.s ! gn ! Nom ++ "አልነበሩም" ; 
+			<Per3 Pl _,PastCont,Pos>   => comp.s ! gn ! Nom ++ "እየሆኑ ነበር";  
+			<Per3 Pl _,PastCont,Neg>   => comp.s ! gn ! Nom ++ "እየሆኑ አልነበረም"
+	
+			      };
+			
+			obj = {
+				s = [] ; 
+				a = {png = Per3 Sg Masc  ; isPron = False} 
+			}; 
+			s2 = [];
+  			imp  = [] ;
+			inf = [];
+			pred = { s = \\_,_ => []};
+			isPred = False
+					  			
+			};
+
+
+			ComplVA v2 ap= {
+
+				s = \\t,p,png =>
+
+		 let
+			
+			teketebku	=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Perf !Pas! png ; --
+			eketebalehu     =    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Imperf !Pas! png ;--
+			teketeb		=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Jus_Imperat !Pas! png ; -- imperative
+			teketbie	=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Gerund !Pas! png ; --
+			meketeb		=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Infinitive !Pas! png ; --
+			teketabi	=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Parti !Pas! png ; 
+			teketbiealehu   =    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! CompPerf !Pas! png ; --
+			eketeb		=    ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Cont !Pas! png ; --  just play with the actives for now
+
+		in
+
+		  case <t,p> of {
+
+
+			
+			<PresFut,Pos>  => eketebalehu ;
+			<PresFut,Neg>  => "!" ++"&+"++ eketeb ++"&+" ++"m" ;--   case for I is unique 											  but sticking to the 												general trend
+			<PresPerf,Pos>  => teketbiealehu;
+			<PresPerf,Neg>  => "!l"++"&+"++teketebku++"&+"++"m";
+			<PresCont,Pos>   => "(y'"++ "&+"++teketebku ++"n'w" ;
+			<PresCont,Neg>   => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;			
+			<SimplePast,Pos> => teketebku;
+			<SimplePast,Neg> => "!l"++"&+"++teketebku++"&+"++"m";			
+			<PastPerf,Pos>  => teketbie ++ "n'b'r";
+			<PastPerf,Neg>  => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; 
+			<PastCont,Pos>   => "(y'"++ "&+"++teketebku ++ "n'b'r" ;
+			<PastCont,Neg>   => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm"
+                     
+
+			      };
+			obj = {
+				s = [] ; 
+				a = {png = Per3 Sg Masc  ; isPron = False} 
+			}; 
+			s2 = [];
+			imp  = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ;
+			inf = v2.s ! Infinitive ! Act ! Per3 Sg Masc ;
+			pred = { s = \\_,_ => []};
+			isPred = False
+			} ;
+
+	
+
+
+
+
+ 	ComplVV v2 vp = {
+				s = \\t,p,png =>
+
+		 let
+
+			teketebku		 =    v2.s ! Perf !Act! png ; --
+			eketebalehu       =    v2.s ! Imperf !Act! png ;--
+			teketeb		 =    v2.s ! Jus_Imperat !Act! png ; -- imperative
+			teketbie		 =    v2.s ! Gerund !Act! png ; --
+			meketeb		 =    v2.s ! Infinitive !Act! png ; --
+			teketabi		 =    v2.s ! Parti !Act! png ; 
+			teketbiealehu      =    v2.s ! CompPerf !Act! png ; --
+			eketeb		 =    v2.s ! Cont !Act! png ; --  just play with the actives for now
+
+		in
+
+		  case <t,p> of {
+
+
+			
+			<PresFut,Pos>  => vp.inf ++ eketebalehu ;
+			<PresFut,Neg>  => vp.inf ++ "!" ++"&+"++ eketeb ++"&+" ++"m" ;--   case for I is unique 											  but sticking to the 												general trend
+			<PresPerf,Pos>  => vp.inf ++ teketbiealehu;
+			<PresPerf,Neg>  => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m";
+			<PresCont,Pos>   => vp.inf ++ "(y'"++ "&+"++teketebku ++"n'w" ;
+			<PresCont,Neg>   => vp.inf ++ "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;			
+			<SimplePast,Pos> => vp.inf ++ teketebku;
+			<SimplePast,Neg> => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m";			
+			<PastPerf,Pos>  => vp.inf ++ teketbie ++ "n'b'r";
+			<PastPerf,Neg>  => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; 
+			<PastCont,Pos>   => vp.inf ++ "(y'"++ "&+"++teketebku ++ "n'b'r" ;
+			<PastCont,Neg>   => vp.inf ++ "(y'"++ "&+"++teketebku ++ "Aln'b'r'm"
+                     
+
+			      };
+			obj = vp.obj;
+			s2 = [];
+			imp  = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ;
+			inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ;
+			pred = vp.pred;
+			isPred = False
+			} ;
+
+		--  v vp = vp.inf ++ (predV v)** {c2 = v.c2};
+
+
+		--      ReflVP   : VPSlash -> VP ;         -- love himself
+		--	ReflVP v = insertObj (\\a => reflPron ! a ++ v.c2) v ;
+		--Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2};
+
+		-- ComplVA  : VA  -> AP -> VP ;  -- they become red
+		--			ComplVA  v    ap = insertObj2 (ap.s!Masc!Sing!Indef) (predV v) ;
+		-- ComplVV  : VV  -> VP -> VP ;  -- want to run  
+
+
+
+}
diff --git a/lib/src/amharic/amharic.gf b/lib/src/amharic/amharic.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/amharic.gf
@@ -0,0 +1,86 @@
+concrete amharic of Numerals = {
+flags coding = utf8 ;
+-- include numerals.Abs.gf ;
+-- flags coding=ethiopic ;
+
+-- 14, 15 have variants in pronounciation {asraratt, asrammIst}
+
+-- No long consonants marked in the indigen. script
+-- s is set intersection s
+-- h is set union h
+-- H is three-fork h
+-- x is hook-looking h
+-- L is sin-looking s
+-- X is h looking like k with a roof
+-- ) is chair-vowel i.e historically glottal stop
+-- ( is round-shape vowel sign i.e historically 3ayn
+-- Z is zh
+-- $ is sh
+-- N is n~
+-- I is i" ዕ6ትህ ሮውእ
+--  አ ኢስ ኣ" (1st row)
+-- Capitalis for ejectives KPTCS
+
+
+param DForm = unit | ten ;
+param Size = sg | pl | tenplus ;
+param S100 = indep | tenpart | tenelfu | sihpart ;
+
+oper LinDigit = {s : DForm => Str ; size : Size} ;
+oper LinSub100 = {s : S100 => Str ; size : Size} ;
+
+lincat Numeral = {s : Str} ;
+lincat Digit = LinDigit ;
+lincat Sub10 = LinDigit ;
+lincat Sub100 = LinSub100 ;
+lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ;
+lincat Sub1000000 = {s : Str} ;
+
+oper mkNum : Str -> Str -> LinDigit = \hulatt -> \haya ->
+  {s = table {unit => hulatt ; ten => haya} ; size = pl} ;
+
+lin num x0 =
+  {s = [] ++ x0.s ++ []} ;
+lin n2 = mkNum "ሁለት" (variants {"ሃያ" ; "ሓያ" ; "ኃያ" ; "ካያ" }) ; 
+lin n3 = mkNum "ሦስት" "ሠላሳ"  ;
+lin n4 = mkNum "ኣራት" "ኣርባ" ;
+lin n5 = mkNum "ኣምስት" (variants { "ኣምሳ" ; "ኃምሳ" }) ;
+lin n6 = mkNum "ስድስት" (variants { "ስድሳ" ; "ስልሳ" }) ;
+lin n7 = mkNum "ሰባት" "ሰባ" ;
+lin n8 = mkNum "ስምንት" "ሰማንያ" ;
+lin n9 = mkNum "ዘጠኝ" "ዘጠና" ;
+
+oper ss1 : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> 
+  {s = table {indep => assir ; tenpart => ten ; tenelfu => [] ; sihpart => unitpart} ; size = tenplus } ;
+  
+oper ss : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> 
+  {s = table {indep => assir ; tenpart => ten ; tenelfu => ten ; sihpart => unitpart} ; size = tenplus } ;
+
+lin pot01  =
+  {s = table {unit => "ኣንድ" ; ten => "ኣስራ" }; size = sg};
+lin pot0 d = d ;
+lin pot110 = ss1 "ኣስር" "ኣንድ" [] ; 
+lin pot111 = ss1 (variants {"ኣስራንድ" ; "ኣስራ" ++ "ኣንድ" }) "ኣንድ" Sih ;
+lin pot1to19 d = ss1 ("ኣስራ" ++ d.s ! unit) "ኣንድ" (mkSih d.size (d.s ! unit)) ;
+lin pot0as1 n = {s = table {indep => n.s ! unit ; sihpart => mkSih n.size (n.s ! unit) ; _ => [] } ; size = n.size} ;
+lin pot1 d = ss (d.s ! ten) (d.s ! unit) [] ; 
+lin pot1plus d e = ss ((d.s ! ten) ++ (e.s ! unit)) 
+                      (d.s ! unit) 
+                      (mkSih e.size (e.s ! unit)); 
+
+lin pot1as2 n = {s = n.s ! indep ; s2 = n.s ! tenelfu ++ "እሌፍ" ++ n.s ! sihpart ; size = n.size} ;
+
+lin pot2 d = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ; 
+	      s2 = sel d.size "ኣስር" (d.s ! ten) ; size = tenplus} ;
+lin pot2plus d e = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ++ e.s ! indep ; s2 = d.s ! ten ++ e.s ! tenpart ++ "እሌፍ" ++ e.s ! sihpart ; size = tenplus} ;
+lin pot2as3 n = {s = n.s} ;
+lin pot3 n = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size} ;
+lin pot3plus n m = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size ++ m.s} ;
+
+oper Sih : Str = variants {"ሺህ" ; "ሺ"} ;
+
+oper mkSih : Size -> Str -> Str = \sz -> \attr -> (sel sz [] attr) ++ Sih ;
+
+oper sel : Size -> Str -> Str -> Str = \sz -> \a -> \b -> table {sg => a ; _ => b} ! sz ; 
+
+}
diff --git a/lib/src/amharic/transliterateAmh.gf b/lib/src/amharic/transliterateAmh.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/amharic/transliterateAmh.gf
@@ -0,0 +1,8 @@
+rf -file=transliterated/IdiomAmh.gf   | ps -env=quotes -to_amharic | wf -file=IdiomAmh.gf
+rf -file=transliterated/LexiconAmh.gf | ps -env=quotes -to_amharic | wf -file=LexiconAmh.gf
+rf -file=transliterated/MorphoAmh.gf  | ps -env=quotes -to_amharic | wf -file=MorphoAmh.gf
+rf -file=transliterated/NumeralAmh.gf | ps -env=quotes -to_amharic | wf -file=NumeralAmh.gf
+rf -file=transliterated/ResAmh.gf     | ps -env=quotes -to_amharic | wf -file=ResAmh.gf
+rf -file=transliterated/StructuralAmh.gf | ps -env=quotes -to_amharic | wf -file=StructuralAmh.gf
+
+rf -file=LexiconAmh.gf   | ps -env=quotes -from_amharic | wf -file=LexAmhTran.gf
diff --git a/lib/src/api/Combinators.gf b/lib/src/api/Combinators.gf
--- a/lib/src/api/Combinators.gf
+++ b/lib/src/api/Combinators.gf
@@ -29,13 +29,13 @@
 
 --2 Function application
 
-    app : overload {
-      app : N  -> NP ;
-      app : N2 -> NP -> NP ; 
-      app : N3 -> NP -> NP -> NP ;
-      app : N2 -> NP -> NP -> NP ;
-      app : N2 -> N  -> CN ;
+    app : overload {                 
+      app : N  -> NP ;               -- the bottom
+      app : N2 -> NP -> NP ;         -- the successor of x
+      app : N3 -> NP -> NP -> NP ;   -- the distance from x to y
+      app : N2 -> NP -> NP -> NP ;   -- the sum of x and y
 
+      app : N2 -> N  -> CN ;         -- set of integers
       app : N2 -> NP -> CN ;         -- divisor of x
       app : N3 -> NP -> NP -> CN ;   -- path from x to y
       app : N2 -> NP -> NP -> CN ;   -- path between x and y
diff --git a/lib/src/api/CombinatorsPnb.gf b/lib/src/api/CombinatorsPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/CombinatorsPnb.gf
@@ -0,0 +1,6 @@
+--# -path=.:alltenses:prelude
+
+resource CombinatorsPnb = Combinators with 
+  (Cat = CatPnb),
+  (Structural = StructuralPnb),
+  (Constructors = ConstructorsPnb) ;
diff --git a/lib/src/api/Constructors.gf b/lib/src/api/Constructors.gf
--- a/lib/src/api/Constructors.gf
+++ b/lib/src/api/Constructors.gf
@@ -1,1901 +1,1802 @@
---1 Constructors: the Resource Syntax API --# notminimal
-
-incomplete resource Constructors = open Grammar in {  
-
-  flags optimize=noexpand ;  
-
--- This module gives access to the syntactic constructions of the
--- GF Resource Grammar library. Its main principle is simple:
--- to construct an object of type $C$, use the function $mkC$.
---
--- For example, an object of type $S$ corresponding to the string
---
--- $John loves Mary$
---
--- is written
---
--- $mkS (mkCl (mkNP (mkPN "John")) (mkV2 "love") (mkNP (mkPN "Mary")))$
---
--- This module defines the syntactic constructors, which take trees as arguments.
--- Lexical constructors, which take strings as arguments, are defined in the
--- $Paradigms$ modules separately for each language.
---
--- The recommended usage of this module is via the wrapper module $Syntax$, 
--- which also contains the $Structural$ (structural words). 
--- Together with $Paradigms$, $Syntax$ gives everything that is needed
--- to implement the concrete syntax for a language.
-
---2 Principles of organization --# notminimal
-
--- To make the library easier to grasp and navigate, we have followed
--- a set of principles when organizing it:
--- + Each category $C$ has an overloaded constructor $mkC$, with value type $C$.
--- + With $mkC$, it is possible to construct any tree of type $C$, except
---   atomic ones, i.e. those that take no arguments, and
---   those whose argument types are exactly the same as in some other instance
--- + To achieve completeness, the library therefore also has
---   for each atomic tree of type $C$, a constant suffixed $C$, and,
---   for other missing constructions, some operation suffixed $C$.
---   These constructors are listed immediately after the $mkC$ group.
--- + Those atomic constructors that are given in $Structural$ are not repeated here.
--- + In addition to the minimally complete set of constructions, many $mkC$ groups
---   include some frequently needed special cases, with two possible logics:
---   default value (to decrease the number of arguments), and
---   direct arguments of an intervening constructor (to flatten the terms).
--- + If such a special case is applied to some category in some rule, it is
---   also applied to all other rules in which the category appears.
--- + The constructors in a group are listed, roughly, 
---   *from the most common to the most general*. This does not of course specify
---   a total order. 
--- + Optional argument types are marked in parentheses. Although parentheses make no
---   difference in the way the GF compiler treats the types, their presence indicates
---   to the reader that the corresponding arguments can be left out; internally, the
---   library has an overload case for each such combination.
--- + Each constructor case is equipped with an example that is built by that
---   case but could not be built with any other one.
---
---
-
---2 Texts, phrases, and utterances --# notminimal
-
---3 Text: texts --# notminimal
-
--- A text is a list of phrases separated by punctuation marks.
--- The default punctuation mark is the full stop, and the default
--- continuation of a text is empty.
-
-  oper   
-    mkText : overload { --# notminimal
-      mkText : Phr ->                      Text ; -- 1. But John walks. --# notminimal
-      mkText : Phr -> (Punct) -> (Text) -> Text ; -- 2. John walks? Yes. --# notminimal
-
--- A text can also be directly built from utterances, which in turn can
--- be directly built from sentences, present-tense clauses, questions, or
--- positive imperatives. 
-
-      mkText : Utt ->  Text ;  -- 3. John. --# notminimal
-      mkText : S   ->  Text ;  -- 4. John walked. --# notminimal
-      mkText : Cl  ->  Text ;  -- 5. John walks. --# notminimal
-      mkText : QS  ->  Text ;  -- 6. Did John walk? --# notminimal
-      mkText : Imp ->  Text ;  -- 7. Walk! --# notminimal
-
--- Finally, two texts can be combined into a text.
-
-      mkText : Text -> Text -> Text ;  -- 8. Where? When? Here. Now! --# notminimal
-
-      } ; --# notminimal
-
--- A text can also be empty.
-
-      emptyText :      Text ;  -- 8. (empty text) --# notminimal
-
-
---3 Punct: punctuation marks --# notminimal
-
--- There are three punctuation marks that can separate phrases in a text.
-
-      fullStopPunct  : Punct ;  -- . --# notminimal
-      questMarkPunct : Punct ;  -- ? --# notminimal
-      exclMarkPunct  : Punct ;  -- ! --# notminimal
-
---3 Phr: phrases in a text --# notminimal
-
--- Phrases are built from utterances by adding a phrasal conjunction
--- and a vocative, both of which are by default empty.
-
-    mkPhr : overload { --# notminimal
-      mkPhr :            Utt ->          Phr ;  -- 1. why --# notminimal
-      mkPhr : (PConj) -> Utt -> (Voc) -> Phr ;  -- 2. but why John --# notminimal
-
-
--- A phrase can also be directly built by a sentence, a present-tense
--- clause, a question, or a positive singular imperative. 
-
-      mkPhr : S   ->  Phr ; -- 3. John walked --# notminimal
-      mkPhr : Cl  ->  Phr ; -- 4. John walks --# notminimal
-      mkPhr : QS  ->  Phr ; -- 5. did John walk --# notminimal
-      mkPhr : Imp ->  Phr   -- 6. walk --# notminimal
-      } ; --# notminimal
-
---3 PConj, phrasal conjunctions --# notminimal
-
--- Any conjunction can be used as a phrasal conjunction.
--- More phrasal conjunctions are defined in $Structural$.
-
-      mkPConj : Conj -> PConj ;  -- 1. and --# notminimal
-
---3 Voc, vocatives --# notminimal
-
--- Any noun phrase can be turned into a vocative.
--- More vocatives are defined in $Structural$.
-
-      mkVoc : NP -> Voc ;   -- 1. John --# notminimal
-
---3 Utt, utterances --# notminimal
-
--- Utterances are formed from sentences, clauses, questions, and positive singular imperatives.
-
-    mkUtt : overload { --# notminimal
-      mkUtt : S   -> Utt ;  -- 1. John walked --# notminimal
-      mkUtt : Cl  -> Utt ;  -- 2. John walks --# notminimal
-      mkUtt : QS  -> Utt ;  -- 3. did John walk --# notminimal
-      mkUtt : QCl -> Utt ;  -- 4. does John walk --# notminimal
-      mkUtt : Imp -> Utt ;  -- 5. love yourself --# notminimal
-
--- Imperatives can also vary in $ImpForm$ (number/politeness) and 
--- polarity.
-
-      mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt ;  -- 5. don't love yourselves --# notminimal
-
--- Utterances can also be formed from interrogative phrases and
--- interrogative adverbials, noun phrases, adverbs, and verb phrases.
-
-      mkUtt : IP   ->  Utt ;  -- 6. who --# notminimal
-      mkUtt : IAdv ->  Utt ;  -- 7. why --# notminimal
-      mkUtt : NP   ->  Utt ;  -- 8. John --# notminimal
-      mkUtt : Adv  ->  Utt ;  -- 9. here --# notminimal
-      mkUtt : VP   ->  Utt ;  -- 10. to walk --# notminimal
-      mkUtt : CN   ->  Utt ;  -- 11. beer --# notminimal
-      mkUtt : AP   ->  Utt ;  -- 12. fine --# notminimal
-      mkUtt : Card ->  Utt ;  -- 13. five --# notminimal
-      } ; --# notminimal
-
--- The plural first-person imperative is a special construction.
-
-      lets_Utt : VP ->  Utt ;  -- 11. let's walk --# notminimal
-
-
---2 Auxiliary parameters for phrases and sentences --# notminimal
-
---3 Pol, polarity --# notminimal
-
--- Polarity is a parameter that sets a clause to positive or negative
--- form. Since positive is the default, it need never be given explicitly.
-
-      positivePol : Pol ;  -- (John walks) [default] --# notminimal
-      negativePol : Pol ;  -- (John doesn't walk) --# notminimal
-
---3 Ant, anteriority --# notminimal
-
--- Anteriority is a parameter that presents an event as simultaneous or
--- anterior to some other reference time.
--- Since simultaneous is the default, it need never be given explicitly.
-
-      simultaneousAnt : Ant ;  -- (John walks) [default] --# notminimal
-      anteriorAnt     : Ant ;  -- (John has walked)       --# notpresent --# notminimal
-
---3 Tense, tense --# notminimal
-
--- Tense is a parameter that relates the time of an event 
--- to the time of speaking about it.
--- Since present is the default, it need never be given explicitly.
-
-      presentTense     : Tense ; -- (John walks) [default] --# notminimal
-      pastTense        : Tense ; -- (John walked)           --# notpresent --# notminimal
-      futureTense      : Tense ; -- (John will walk)        --# notpresent --# notminimal
-      conditionalTense : Tense ; -- (John would walk)       --# notpresent --# notminimal
-
---3 ImpForm, imperative form --# notminimal
-
--- Imperative form is a parameter that sets the form of imperative
--- by reference to the person or persons addressed.
--- Since singular is the default, it need never be given explicitly.
-
-      singularImpForm : ImpForm ;  -- (help yourself) [default] --# notminimal
-      pluralImpForm   : ImpForm ;  -- (help yourselves) --# notminimal
-      politeImpForm   : ImpForm ;  -- (help yourself) (polite singular) --# notminimal
-
-
---2 Sentences and clauses --# notminimal
-
---3 S, sentences --# notminimal
-
--- A sentence has a fixed tense, anteriority and polarity.
-
-    mkS : overload { --# notminimal
-      mkS :                              Cl -> S ;  -- 1. John walks --# notminimal
-      mkS : (Tense) -> (Ant) -> (Pol) -> Cl -> S ;  -- 2. John wouldn't have walked --# notminimal
-
--- Sentences can be combined with conjunctions. This can apply to a pair
--- of sentences, but also to a list of more than two.
-
-      mkS : Conj -> S -> S -> S ;  -- 3. John walks and I run    --# notminimal
-      mkS : Conj -> ListS  -> S ;  -- 4. John walks, I run and you sleep --# notminimal
-
--- A sentence can be prefixed by an adverb.
-
-      mkS : Adv -> S -> S           -- 5. today, John walks --# notminimal
-      } ; --# notminimal
-
---3 Cl, clauses --# notminimal
-
--- A clause has a variable tense, anteriority and polarity.
--- A clause can be built from a subject noun phrase 
--- with a verb and appropriate arguments.
-
-    mkCl : overload { --# notminimal
-      mkCl : NP  -> V  ->             Cl ;  -- 1. John walks --# notminimal
-      mkCl : NP  -> V2 -> NP ->       Cl ;  -- 2. John loves her --# notminimal
-      mkCl : NP  -> V3 -> NP -> NP -> Cl ;  -- 3. John sends it to her --# notminimal
-      mkCl : NP  -> VV -> VP ->       Cl ;  -- 4. John wants to walk  --# notminimal
-      mkCl : NP  -> VS -> S  ->       Cl ;  -- 5. John says that it is good --# notminimal
-      mkCl : NP  -> VQ -> QS ->       Cl ;  -- 6. John wonders if it is good --# notminimal
-      mkCl : NP  -> VA -> AP ->       Cl ;  -- 7. John becomes old --# notminimal
-      mkCl : NP  -> V2A -> NP -> AP -> Cl ; -- 8. John paints it red --# notminimal
-      mkCl : NP  -> V2S -> NP -> S -> Cl ;  -- 9. John tells her that we are here --# notminimal
-      mkCl : NP  -> V2Q -> NP -> QS -> Cl ; -- 10. John asks her who is here --# notminimal
-      mkCl : NP  -> V2V -> NP -> VP -> Cl ; -- 11. John forces us to sleep --# notminimal
-      mkCl : NP  -> A  ->             Cl ;  -- 12. John is old --# notminimal
-      mkCl : NP  -> A  -> NP ->       Cl ;  -- 13. John is older than her --# notminimal
-      mkCl : NP  -> A2 -> NP ->       Cl ;  -- 14. John is married to her --# notminimal
-      mkCl : NP  -> AP ->             Cl ;  -- 15. John is very old --# notminimal
-      mkCl : NP  -> N  ->             Cl ;  -- 16. John is a man --# notminimal
-      mkCl : NP  -> CN ->             Cl ;  -- 17. John is an old man --# notminimal
-      mkCl : NP  -> NP ->             Cl ;  -- 18. John is the man --# notminimal
-      mkCl : NP  -> Adv ->            Cl ;  -- 19. John is here --# notminimal
-
--- As the general rule, a clause can be built from a subject noun phrase and 
--- a verb phrase.
-
-      mkCl : NP  -> VP -> Cl ;  -- 20. John walks here --# notminimal
-
--- Subjectless verb phrases are used for impersonal actions.
-
-      mkCl : V   ->  Cl ;  -- 21. it rains --# notminimal
-      mkCl : VP  ->  Cl ;  -- 22. it is raining --# notminimal
-
--- Existentials are a special form of clauses.
-
-      mkCl : N   ->  Cl ;  -- 23. there is a house --# notminimal
-      mkCl : CN  ->  Cl ;  -- 24. there is an old houses --# notminimal
-      mkCl : NP  ->  Cl ;  -- 25. there are five houses --# notminimal
-
--- There are also special forms in which a noun phrase or an adverb is
--- emphasized.
-
-      mkCl : NP  -> RS -> Cl ;  -- 26. it is John that walks --# notminimal
-      mkCl : Adv -> S  -> Cl    -- 27. it is here John walks --# notminimal
-      } ; --# notminimal
-
--- Generic clauses are one with an impersonal subject.
-
-      genericCl : VP ->  Cl ;   -- 28. one walks               --# notminimal
-
-
---2 Verb phrases and imperatives --# notminimal
-
---3 VP, verb phrases --# notminimal
-
--- A verb phrase is formed from a verb with appropriate arguments.
-
-    mkVP : overload { --# notminimal
-      mkVP : V   ->             VP ;  -- 1. walk --# notminimal
-      mkVP : V2  -> NP ->       VP ;  -- 2. love her --# notminimal
-      mkVP : V3  -> NP -> NP -> VP ;  -- 3. send it to her --# notminimal
-      mkVP : VV  -> VP ->       VP ;  -- 4. want to walk --# notminimal
-      mkVP : VS  -> S  ->       VP ;  -- 5. know that she walks --# notminimal
-      mkVP : VQ  -> QS ->       VP ;  -- 6. ask if she walks --# notminimal
-      mkVP : VA  -> AP ->       VP ;  -- 7. become old --# notminimal
-      mkVP : V2A -> NP -> AP -> VP ;  -- 8. paint it red --# notminimal
-
--- The verb can also be a copula ("be"), and the relevant argument is
--- then the complement adjective or noun phrase.
-
-      mkVP : A   ->      VP ;  --  9. be warm --# notminimal
-      mkVP : AP  ->      VP ;  -- 12. be very warm --# notminimal
-      mkVP : A  -> NP -> VP ;  -- 10. be older than her --# notminimal
-      mkVP : A2 -> NP -> VP ;  -- 11. be married to her --# notminimal
-      mkVP : N   ->      VP ;  -- 13. be a man --# notminimal
-      mkVP : CN  ->      VP ;  -- 14. be an old man --# notminimal
-      mkVP : NP  ->      VP ;  -- 15. be the man --# notminimal
-      mkVP : Adv ->      VP ;  -- 16. be here --# notminimal
-
--- A verb phrase can be modified with a postverbal or a preverbal adverb.
-
-      mkVP : VP  -> Adv -> VP ;  -- 17. sleep here --# notminimal
-      mkVP : AdV -> VP  -> VP ;  -- 18. always sleep --# notminimal
-
--- Objectless verb phrases can be taken to verb phrases in two ways.
-
-      mkVP : VPSlash -> NP -> VP ; -- 19. paint it black --# notminimal
-      mkVP : VPSlash -> VP ;       -- 20. paint itself black --# notminimal
-
-      } ; --# notminimal
-
--- Two-place verbs can be used reflexively.
-
-      reflexiveVP : V2 -> VP ; -- 19. love itself --# notminimal
-
--- Two-place verbs can also be used in the passive, with or without an agent.
-
-    passiveVP : overload { --# notminimal
-      passiveVP : V2 ->       VP ;  -- 20. be loved --# notminimal
-      passiveVP : V2 -> NP -> VP ;  -- 21. be loved by her --# notminimal
-      } ; --# notminimal
-
--- A verb phrase can be turned into the progressive form.
-
-      progressiveVP : VP -> VP ;  -- 22. be sleeping --# notminimal
-
---3 Imp, imperatives --# notminimal
-
--- Imperatives are formed from verbs and their arguments; as the general
--- rule, from verb phrases.
-
-    mkImp : overload { --# notminimal
-      mkImp : V  ->        Imp  ;   -- go --# notminimal
-      mkImp : V2 -> NP ->  Imp  ;   -- take it --# notminimal
-      mkImp : VP ->        Imp      -- go there now --# notminimal
-      } ; --# notminimal
-
-
---2 Noun phrases and determiners --# notminimal
-
---3 NP, noun phrases --# notminimal
-
--- A noun phrases can be built from a determiner and a common noun ($CN$) .
--- For determiners, the special cases of quantifiers, numerals, integers, 
--- and possessive pronouns are provided. For common nouns, the 
--- special case of a simple common noun ($N$) is always provided.
-
-    mkNP : overload { --# notminimal
-      mkNP : Quant   -> N  -> NP ;       --  3. this men --# notminimal
-      mkNP : Quant -> (Num) -> CN -> NP ; --  4. these five old men --# notminimal
-      mkNP : Det     -> N  -> NP ;       --  5. the first man --# notminimal
-      mkNP : Det     -> CN -> NP ;       --  6. the first old man --# notminimal
-      mkNP : Numeral -> N  -> NP ;       --  7. twenty men --# notminimal
-      mkNP : Numeral -> CN -> NP ;       --  8. twenty old men --# notminimal
-      mkNP : Digits  -> N  -> NP ;       --  9. 45 men --# notminimal
-      mkNP : Digits  -> CN -> NP ;       -- 10. 45 old men --# notminimal
-      mkNP : Card    -> N  -> NP ;       -- 11. almost twenty men --# notminimal
-      mkNP : Card    -> CN -> NP ;       -- 12. almost twenty old men --# notminimal
-      mkNP : Pron    -> N  -> NP ;       -- 13. my man --# notminimal
-      mkNP : Pron    -> CN -> NP ;       -- 14. my old man --# notminimal
-
--- Proper names and pronouns can be used as noun phrases.
-
-      mkNP : PN    -> NP ;  -- 15. John --# notminimal
-      mkNP : Pron  -> NP ;  -- 16. he --# notminimal
-
--- Determiners alone can form noun phrases.
-
-      mkNP : Quant -> NP ;  -- 17. this --# notminimal
-      mkNP : Det   -> NP ;  -- 18. these five --# notminimal
-
--- Determinesless mass noun phrases.
-
-      mkNP : N ->  NP ; -- 19. beer --# notminimal
-      mkNP : CN -> NP ; -- 20. beer --# notminimal
-
--- A noun phrase once formed can be prefixed by a predeterminer and
--- suffixed by a past participle or an adverb.
-
-      mkNP : Predet -> NP -> NP ;  -- 21. only John --# notminimal
-      mkNP : NP ->    V2  -> NP ;  -- 22. John killed --# notminimal
-      mkNP : NP ->    Adv -> NP ;  -- 23. John in Paris --# notminimal
-      mkNP : NP ->    RS  -> NP ;  -- 24. John, who lives in Paris --# notminimal
-
--- A conjunction can be formed both from two noun phrases and a longer
--- list of them.
-
-      mkNP : Conj  -> NP -> NP -> NP ; -- 25. John and I --# notminimal
-      mkNP : Conj  -> ListNP   -> NP ; -- 26. John, I, and that --# notminimal
-
-      } ; --# notminimal
-
-
---3 Det, determiners --# notminimal
-
--- A determiner is either a singular or a plural one.
--- Both have a quantifier and an optional ordinal; the plural
--- determiner also has an optional numeral.
-
-    mkDet : overload { --# notminimal
-      mkDet : Quant ->                 Det ; -- 1. this --# notminimal
-      mkDet : Quant ->        (Ord) -> Det ; -- 2. this first --# notminimal
-      mkDet : Quant -> Num ->          Det ; -- 3. these --# notminimal
-      mkDet : Quant -> Num -> (Ord) -> Det ; -- 4. these five best --# notminimal
-
--- Quantifiers that have both singular and plural forms are by default used as
--- singular determiners. If a numeral is added, the plural form is chosen.
-
-      mkDet : Quant ->        Det ;  -- 5. this --# notminimal
-      mkDet : Quant -> Num -> Det ;  -- 6. these five --# notminimal
-
--- Numerals, their special cases integers and digits, and possessive pronouns can be
--- used as determiners.
-
-      mkDet : Card        -> Det ;  --  7. almost twenty --# notminimal
-      mkDet : Numeral     -> Det ;  --  8. five --# notminimal
-      mkDet : Digits      -> Det ;  --  9. 51 --# notminimal
-      mkDet : Pron        -> Det ;  -- 10. my (house) --# notminimal
-      mkDet : Pron -> Num -> Det    -- 11. my (houses) --# notminimal
-      } ; --# notminimal
-
-
-      the_Det   : Det ; -- the (house)
-      a_Det     : Det ; -- a (house)
-      thePl_Det : Det ; -- the (houses)
-      aSg_Det   : Det ; -- a (house)
-      aPl_Det   : Det ; -- (houses)
-
---3 Quant, quantifiers --# notminimal
-
--- There are definite and indefinite articles.
-
-    mkQuant : overload { --# notminimal
-      mkQuant : Pron -> Quant ;  -- 1. my --# notminimal
-      } ; --# notminimal
-
-      the_Quant : Quant ;   -- the --# notminimal
-      a_Quant   : Quant ;   -- a --# notminimal
-
---3 Num, cardinal numerals  --# notminimal
-
--- Numerals can be formed from number words ($Numeral$), their special case digits,
--- and from symbolic integers.
-
-    mkNum : overload { --# notminimal
-      mkNum : Str     -> Num ;   -- 0. thirty-five (given by "35") --# notminimal
-      mkNum : Numeral -> Num ;   -- 1. twenty --# notminimal
-      mkNum : Digits  -> Num ;   -- 2. 51 --# notminimal
-      mkNum : Card    -> Num ;   -- 3. almost ten --# notminimal
-
--- Cardinals are the non-dummy numerals.
-
-    mkCard : overload {  
-      mkCard : Str -> Card ;     -- 0. thirty-five (given by "35")
-      mkCard : Numeral -> Card ;  -- 0. thirty-five (given in any way)
-      mkCard : Digits -> Card ;        -- 51  --# notminimal
-      mkCard : AdN -> Card -> Card --# notminimal
-      } ;
-
-
--- Such a numeral can be modified by an adnumeral.
-
-      mkNum : AdN -> Card -> Num  -- 4. almost ten --# notminimal
-      } ; --# notminimal
-
--- Dummy numbers are sometimes to select the grammatical number of a determiner.
-
-      sgNum : Num ;  -- singular --# notminimal
-      plNum : Num ;  -- plural --# notminimal
-
---3 Ord, ordinal numerals --# notminimal
-
--- Just like cardinals, ordinals can be formed from number words ($Numeral$)
--- and from symbolic integers.
-
-    mkOrd : overload { --# notminimal
-      mkOrd : Numeral -> Ord ;  -- 1. twentieth --# notminimal
-      mkOrd : Digits  -> Ord ;  -- 2. 51st --# notminimal
-
--- Also adjectives in the superlative form can appear on ordinal positions.
-
-      mkOrd : A  -> Ord  -- 3. best --# notminimal
-      } ; --# notminimal
-
---3 AdN, adnumerals --# notminimal
-
--- Comparison adverbs can be used as adnumerals.
-
-      mkAdN : CAdv -> AdN ;  -- 1. more than --# notminimal
-
---3 Numeral, number words --# notminimal
-
--- Digits and some "round" numbers are here given as shorthands.
-
-      n1_Numeral    : Numeral ; -- 1. one --# notminimal
-      n2_Numeral    : Numeral ; -- 2. two --# notminimal
-      n3_Numeral    : Numeral ; -- 3. three --# notminimal
-      n4_Numeral    : Numeral ; -- 4. four --# notminimal
-      n5_Numeral    : Numeral ; -- 5. five --# notminimal
-      n6_Numeral    : Numeral ; -- 6. six --# notminimal
-      n7_Numeral    : Numeral ; -- 7. seven --# notminimal
-      n8_Numeral    : Numeral ; -- 8. eight --# notminimal
-      n9_Numeral    : Numeral ; -- 9. nine --# notminimal
-      n10_Numeral   : Numeral ; -- 10. ten --# notminimal
-      n20_Numeral   : Numeral ; -- 11. twenty --# notminimal
-      n100_Numeral  : Numeral ; -- 12. hundred --# notminimal
-      n1000_Numeral : Numeral ; -- 13. thousand --# notminimal
-
-    mkNumeral : overload {       --# notminimal
-      mkNumeral : Str -> Numeral -- 0. thirty-five (given by "35") --# notminimal
-    } ;      --# notminimal
-
--- See $Numeral$ for the full set of constructors, and use the category 
--- $Digits$ for other numbers from one million.
-
-   mkDigits : overload { --# notminimal
-      mkDigits : Dig -> Digits ;           -- 1. 8  --# notminimal
-      mkDigits : Dig -> Digits -> Digits ; -- 2. 876 --# notminimal
-      } ; --# notminimal
-
-      n1_Digits    : Digits ; -- 1. 1 --# notminimal
-      n2_Digits    : Digits ; -- 2. 2 --# notminimal
-      n3_Digits    : Digits ; -- 3. 3 --# notminimal
-      n4_Digits    : Digits ; -- 4. 4 --# notminimal
-      n5_Digits    : Digits ; -- 5. 5 --# notminimal
-      n6_Digits    : Digits ; -- 6. 6 --# notminimal
-      n7_Digits    : Digits ; -- 7. 7 --# notminimal
-      n8_Digits    : Digits ; -- 8. 8 --# notminimal
-      n9_Digits    : Digits ; -- 9. 9 --# notminimal
-      n10_Digits   : Digits ; -- 10. 10 --# notminimal
-      n20_Digits   : Digits ; -- 11. 20 --# notminimal
-      n100_Digits  : Digits ; -- 12. 100 --# notminimal
-      n1000_Digits : Digits ; -- 13. 1,000 --# notminimal
-
---3 Dig, single digits --# notminimal
-
-      n0_Dig    : Dig ; -- 0. 0 --# notminimal
-      n1_Dig    : Dig ; -- 1. 1 --# notminimal
-      n2_Dig    : Dig ; -- 2. 2 --# notminimal
-      n3_Dig    : Dig ; -- 3. 3 --# notminimal
-      n4_Dig    : Dig ; -- 4. 4 --# notminimal
-      n5_Dig    : Dig ; -- 5. 5 --# notminimal
-      n6_Dig    : Dig ; -- 6. 6 --# notminimal
-      n7_Dig    : Dig ; -- 7. 7 --# notminimal
-      n8_Dig    : Dig ; -- 8. 8 --# notminimal
-      n9_Dig    : Dig ; -- 9. 9 --# notminimal
-
-      
---2 Nouns --# notminimal
-
---3 CN, common noun phrases --# notminimal
-
-    mkCN : overload { --# notminimal
-
--- The most frequent way of forming common noun phrases is from atomic nouns $N$.
-
-      mkCN : N -> CN ;   -- 1. house --# notminimal
-
--- Common noun phrases can be formed from relational nouns by providing arguments.
-
-      mkCN : N2 -> NP ->       CN ; -- 2. mother of John --# notminimal
-      mkCN : N3 -> NP -> NP -> CN ; -- 3. distance from this city to Paris --# notminimal
-
--- Relational nouns can also be used without their arguments.
-
-      mkCN : N2 -> CN ;   -- 4. son --# notminimal
-      mkCN : N3 -> CN ;   -- 5. flight --# notminimal
-
--- A common noun phrase can be modified by adjectival phrase. We give special 
--- cases of this, where one or both of the arguments are atomic.
-
-      mkCN : A  -> N   -> CN ;   -- 6. big house --# notminimal
-      mkCN : A  -> CN  -> CN ;   -- 7. big blue house --# notminimal
-      mkCN : AP -> N   -> CN ;   -- 8. very big house --# notminimal
-      mkCN : AP -> CN  -> CN ;   -- 9. very big blue house --# notminimal
-
--- A common noun phrase can be modified by a relative clause or an adverb.
-
-      mkCN : N  -> RS  -> CN ;   -- 10. house that John loves --# notminimal
-      mkCN : CN -> RS  -> CN ;   -- 11. big house that John loves --# notminimal
-      mkCN : N  -> Adv -> CN ;   -- 12. house in the city --# notminimal
-      mkCN : CN -> Adv -> CN ;   -- 13. big house in the city --# notminimal
-
--- For some nouns it makes sense to modify them by sentences, 
--- questions, or infinitives. But syntactically this is possible for
--- all nouns.
-
-      mkCN : CN -> S   -> CN ;   -- 14. rule that John walks --# notminimal
-      mkCN : CN -> QS  -> CN ;   -- 15. question if John walks --# notminimal
-      mkCN : CN -> VP  -> CN ;   -- 16. reason to walk --# notminimal
-
--- A noun can be used in apposition to a noun phrase, especially a proper name.
-
-      mkCN : N  -> NP  -> CN ;   -- 17. king John --# notminimal
-      mkCN : CN -> NP  -> CN     -- 18. old king John --# notminimal
-      } ; --# notminimal
-
-
---2 Adjectives and adverbs --# notminimal
-
---3 AP, adjectival phrases --# notminimal
-
-    mkAP : overload { --# notminimal
-
--- Adjectival phrases can be formed from atomic adjectives by using the positive form or
--- the comparative with a complement
-
-      mkAP : A  ->       AP ;  -- 1. old --# notminimal
-      mkAP : A  -> NP -> AP ;  -- 2. older than John --# notminimal
-
--- Relational adjectives can be used with a complement or a reflexive
-
-      mkAP : A2 -> NP -> AP ;  -- 3. married to her --# notminimal
-      mkAP : A2 ->       AP ;  -- 4. married --# notminimal
-
--- Some adjectival phrases can take as complements sentences, 
--- questions, or infinitives. Syntactically this is possible for
--- all adjectives.
-
-      mkAP : AP -> S  -> AP ;  -- 5. probable that John walks --# notminimal
-      mkAP : AP -> QS -> AP ;  -- 6. uncertain if John walks --# notminimal
-      mkAP : AP -> VP -> AP ;  -- 7. ready to go --# notminimal
-
--- An adjectival phrase can be modified by an adadjective.
-
-      mkAP : AdA  -> A  -> AP ;  -- 8. very old --# notminimal
-      mkAP : AdA  -> AP -> AP ;  -- 9. very very old --# notminimal
-
--- Conjunction can be formed from two or more adjectival phrases.
-
-      mkAP : Conj  -> AP -> AP -> AP ; -- 10. old and big --# notminimal
-      mkAP : Conj  -> ListAP   -> AP ; -- 11. old, big and warm --# notminimal
-
-      mkAP : Ord   -> AP ;             -- 12. oldest --# notminimal
-      mkAP : CAdv -> AP -> NP -> AP ;  -- 13. as old as John --# notminimal
-      } ; --# notminimal
-
-      reflAP   : A2 -> AP ;            -- married to himself --# notminimal
-      comparAP : A -> AP ;             -- warmer --# notminimal
-
---3 Adv, adverbial phrases --# notminimal
-
-    mkAdv : overload { --# notminimal
-
--- Adverbs can be formed from adjectives.
-
-      mkAdv : A -> Adv  ;   -- 1. warmly --# notminimal
-
--- Prepositional phrases are treated as adverbs.
-
-      mkAdv : Prep -> NP -> Adv ;  -- 2. with John --# notminimal
-
--- Subordinate sentences are treated as adverbs.
-
-      mkAdv : Subj -> S -> Adv  ;  -- 3. when John walks --# notminimal
-
--- An adjectival adverb can be compared to a noun phrase or a sentence.
-
-      mkAdv : CAdv -> A -> NP -> Adv ;  -- 4. more warmly than John --# notminimal
-      mkAdv : CAdv -> A -> S  -> Adv ;  -- 5. more warmly than John walks --# notminimal
-
--- Adverbs can be modified by adadjectives.
-
-      mkAdv : AdA -> Adv -> Adv ;  -- 6. very warmly --# notminimal
-
--- Conjunction can be formed from two or more adverbial phrases.
-
-      mkAdv : Conj  -> Adv -> Adv -> Adv ; -- 7. here and now --# notminimal
-      mkAdv : Conj  -> ListAdv ->    Adv ; -- 8. with John, here and now --# notminimal
-      } ; --# notminimal
-
-
---2 Questions and relatives --# notminimal
-
---3 QS, question sentences --# notminimal
-
-    mkQS : overload { --# notminimal
-
--- Just like a sentence $S$ is built from a clause $Cl$, 
--- a question sentence $QS$ is built from
--- a question clause $QCl$ by fixing tense, anteriority and polarity. 
--- Any of these arguments can be omitted, which results in the 
--- default (present, simultaneous, and positive, respectively).
-
-      mkQS :                              QCl -> QS ;  -- 1. who walks --# notminimal
-      mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS ;  -- 2. who wouldn't have walked --# notminimal
-
--- Since 'yes-no' question clauses can be built from clauses (see below), 
--- we give a shortcut
--- for building a question sentence directly from a clause, using the defaults
--- present, simultaneous, and positive.
-
-      mkQS : Cl -> QS  -- 3. does John walk --# notminimal
-      } ; --# notminimal
-
-
---3 QCl, question clauses --# notminimal
-
-    mkQCl : overload { --# notminimal
-
--- 'Yes-no' question clauses are built from 'declarative' clauses.
-
-      mkQCl : Cl -> QCl ;   -- 1. does John walk --# notminimal
- 
--- 'Wh' questions are built from interrogative pronouns in subject 
--- or object position. The former uses a verb phrase; we don't give
--- shortcuts for verb-argument sequences as we do for clauses.
--- The latter uses the 'slash' category of objectless clauses 
--- (see below); we give the common special case with a two-place verb.
-
-      mkQCl : IP -> VP ->       QCl ;  -- 2. who walks --# notminimal
-      mkQCl : IP -> NP -> V2 -> QCl ;  -- 3. whom does John love --# notminimal
-      mkQCl : IP -> ClSlash  -> QCl ;  -- 4. whom does John love today --# notminimal
-
--- Adverbial 'wh' questions are built with interrogative adverbials, with the
--- special case of prepositional phrases with interrogative pronouns.
-
-      mkQCl : IAdv -> Cl ->       QCl ;   -- 5. why does John walk --# notminimal
-      mkQCl : Prep -> IP -> Cl -> QCl ;   -- 6. with who does John walk --# notminimal
-
--- An interrogative adverbial can serve as the complement of a copula.
-
-      mkQCl : IAdv -> NP -> QCl ;  -- 7. where is John --# notminimal
-
--- Existentials are a special construction.
-
-      mkQCl : IP -> QCl ;    -- 8. what is there --# notminimal
-      mkQCl : IComp -> NP -> QCl ;  -- 9. who is John --# notminimal
-
-      } ; --# notminimal
-
-
---3 IP, interrogative pronouns --# notminimal
-
-    mkIP : overload { --# notminimal
-
--- Interrogative pronouns 
--- can be formed much like noun phrases, by using interrogative quantifiers.
-
-      mkIP : IQuant ->          N  -> IP ; -- 1. which city --# notminimal
-      mkIP : IQuant -> (Num) -> CN -> IP ; -- 2. which five big cities --# notminimal
-
--- An interrogative pronoun can be modified by an adverb.
-
-      mkIP : IP -> Adv -> IP               -- 3. who in Paris --# notminimal
-      } ; --# notminimal
-
--- More interrogative pronouns and determiners can be found in $Structural$.
-
-
-
---3 IAdv, interrogative adverbs. --# notminimal
-
--- In addition to the interrogative adverbs defined in the $Structural$ lexicon, they
--- can be formed as prepositional phrases from interrogative pronouns.
-
-    mkIAdv : Prep -> IP -> IAdv ;  -- 1. in which city --# notminimal
-
--- More interrogative adverbs are given in $Structural$.
-
-
---3 RS, relative sentences --# notminimal
-
--- Just like a sentence $S$ is built from a clause $Cl$, 
--- a relative sentence $RS$ is built from
--- a relative clause $RCl$ by fixing the tense, anteriority and polarity. 
--- Any of these arguments
--- can be omitted, which results in the default (present, simultaneous,
--- and positive, respectively).
-
-    mkRS : overload { --# notminimal
-      mkRS : RCl ->                              RS ; -- 1. that walk --# notminimal
-      mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS ; -- 2. that wouldn't have walked --# notminimal
-      mkRS : Conj -> RS -> RS -> RS ;  -- 3. who walks and whom I know    --# notminimal
-      mkRS : Conj -> ListRS  -> RS ; -- 4. who walks, whose son runs, and whom I know    --# notminimal
-      } ; --# notminimal
-
---3 RCl, relative clauses --# notminimal
-
-    mkRCl : overload { --# notminimal
-
--- Relative clauses are built from relative pronouns in subject or object position.
--- The former uses a verb phrase; we don't give
--- shortcuts for verb-argument sequences as we do for clauses.
--- The latter uses the 'slash' category of objectless clauses (see below); 
--- we give the common special case with a two-place verb.
-
-      mkRCl : RP -> VP ->       RCl ;  -- 1. that walk --# notminimal
-      mkRCl : RP -> NP -> V2 -> RCl ;  -- 2. which John loves --# notminimal
-      mkRCl : RP -> ClSlash  -> RCl ;  -- 3. which John loves today --# notminimal
-
--- There is a simple 'such that' construction for forming relative 
--- clauses from clauses.
-
-      mkRCl : Cl -> RCl  -- 4. such that John loves her --# notminimal
-      } ; --# notminimal
-
---3 RP, relative pronouns --# notminimal
-
--- There is an atomic relative pronoun
-
-      which_RP : RP ;   -- 1. which --# notminimal
-
--- A relative pronoun can be made into a kind of a prepositional phrase.
-
-      mkRP : Prep -> NP -> RP -> RP ;  -- 2. all the houses in which --# notminimal
-
-
---3 ClSlash, objectless sentences --# notminimal
-
-    mkClSlash : overload { --# notminimal
-
--- Objectless sentences are used in questions and relative clauses.
--- The most common way of constructing them is by using a two-place verb
--- with a subject but without an object.
-
-      mkClSlash : NP -> V2 -> ClSlash ;  -- 1. (whom) John loves --# notminimal
-
--- The two-place verb can be separated from the subject by a verb-complement verb.
-
-      mkClSlash : NP -> VV -> V2 -> ClSlash ;  -- 2. (whom) John wants to see --# notminimal
-
--- The missing object can also be the noun phrase in a prepositional phrase.
-
-      mkClSlash : Cl -> Prep -> ClSlash ;  -- 3. (with whom) John walks --# notminimal
-
--- An objectless sentence can be modified by an adverb.
-
-      mkClSlash : ClSlash -> Adv -> ClSlash  -- 4. (whom) John loves today --# notminimal
-      } ; --# notminimal
-
-
---3 VPSlash, verb phrases missing an object --# notminimal
-
-    mkVPSlash : overload { --# notminimal
-
--- This is the deep level of many-argument predication, permitting extraction.
-
-      mkVPSlash : V2  -> VPSlash ;        -- 1. (whom) (John) loves --# notminimal
-      mkVPSlash : V3  -> NP -> VPSlash ;  -- 2. (whom) (John) gives an apple --# notminimal
-      mkVPSlash : V2A -> AP -> VPSlash ;  -- 3. (whom) (John) paints red --# notminimal
-      mkVPSlash : V2Q -> QS -> VPSlash ;  -- 4. (whom) (John) asks who sleeps --# notminimal
-      mkVPSlash : V2S -> S  -> VPSlash ;  -- 5. (whom) (John) tells that we sleep --# notminimal
-      mkVPSlash : V2V -> VP -> VPSlash ;  -- 6. (whom) (John) forces to sleep --# notminimal
-
-      } ; --# notminimal
-
-
---2 Lists for coordination --# notminimal
-
--- The rules in this section are very uniform: a list can be built from two or more
--- expressions of the same category.
-
---3 ListS, sentence lists --# notminimal
-
-    mkListS : overload { --# notminimal
-     mkListS : S -> S ->     ListS ;  -- 1. he walks, I run --# notminimal
-     mkListS : S -> ListS -> ListS    -- 2. John walks, I run, you sleep --# notminimal
-     } ; --# notminimal
-
---3 ListAdv, adverb lists --# notminimal
-
-    mkListAdv : overload { --# notminimal
-     mkListAdv : Adv -> Adv ->     ListAdv ;  -- 1. here, now --# notminimal
-     mkListAdv : Adv -> ListAdv -> ListAdv    -- 2. to me, here, now --# notminimal
-     } ; --# notminimal
-
---3 ListAP, adjectival phrase lists --# notminimal
-
-    mkListAP : overload { --# notminimal
-     mkListAP : AP -> AP ->     ListAP ;  -- 1. old, big --# notminimal
-     mkListAP : AP -> ListAP -> ListAP    -- 2. old, big, warm --# notminimal
-     } ; --# notminimal
-  
-
---3 ListNP, noun phrase lists --# notminimal
-
-    mkListNP : overload { --# notminimal
-     mkListNP : NP -> NP ->     ListNP ;  -- 1. John, I --# notminimal
-     mkListNP : NP -> ListNP -> ListNP    -- 2. John, I, that --# notminimal
-     } ; --# notminimal
-
---3 ListRS, relative clause lists --# notminimal
-
-    mkListRS : overload { --# notminimal
-     mkListRS : RS -> RS ->     ListRS ;  -- 1. who walks, who runs --# notminimal
-     mkListRS : RS -> ListRS -> ListRS    -- 2. who walks, who runs, who sleeps --# notminimal
-     } ; --# notminimal
-
---.  --# notminimal
--- Definitions
-
-    mkAP = overload {   
-      mkAP : A -> AP           -- warm   
-                                         =    PositA   ;   
-      mkAP : A -> NP -> AP     -- warmer than Spain   
-                                         =    ComparA  ;   
-      mkAP : A2 -> NP -> AP    -- divisible by 2 --# notminimal
-                                         =    ComplA2  ; --# notminimal
-      mkAP : A2 -> AP          -- divisible --# notminimal
-                                         =    UseA2   ; --# notminimal
-      mkAP : AP -> S -> AP    -- great that she won --# notminimal
-                                         =  \ap,s -> SentAP ap (EmbedS s) ; --# notminimal
-      mkAP : AP -> QS -> AP    -- great that she won --# notminimal
-                                         =  \ap,s -> SentAP ap (EmbedQS s) ; --# notminimal
-      mkAP : AP -> VP -> AP    -- great that she won --# notminimal
-                                         =  \ap,s -> SentAP ap (EmbedVP s) ; --# notminimal
-      mkAP : AdA -> A -> AP   -- very uncertain   
-                                         =   \x,y -> AdAP x (PositA y) ;
-      mkAP : AdA -> AP -> AP   -- very uncertain   
-                                         =    AdAP ;
-      mkAP : Conj -> AP -> AP -> AP --# notminimal
-                                        = \c,x,y -> ConjAP c (BaseAP x y) ; --# notminimal
-      mkAP : Conj -> ListAP -> AP --# notminimal
-                                        = \c,xy -> ConjAP c xy ; --# notminimal
-      mkAP : Ord   -> AP --# notminimal
-        = AdjOrd ; --# notminimal
-      mkAP : CAdv -> AP -> NP -> AP  --# notminimal
-        = CAdvAP ; --# notminimal
-      } ;   
-
-      reflAP = ReflA2 ; --# notminimal
-      comparAP = UseComparA ; --# notminimal
-
-    mkAdv = overload {   
-      mkAdv : A -> Adv                   -- quickly   
-                                         =    PositAdvAdj  ;   
-      mkAdv : Prep -> NP -> Adv          -- in the house   
-                                         =    PrepNP       ;   
-      mkAdv : CAdv -> A -> NP -> Adv   -- more quickly than John --# notminimal
-                                         =    ComparAdvAdj   ; --# notminimal
-      mkAdv : CAdv -> A -> S -> Adv    -- more quickly than he runs --# notminimal
-                                         =    ComparAdvAdjS  ; --# notminimal
-      mkAdv : AdA -> Adv -> Adv               -- very quickly --# notminimal
-                                         =    AdAdv   ; --# notminimal
-      mkAdv : Subj -> S -> Adv                 -- when he arrives --# notminimal
-                                         =    SubjS ; --# notminimal
-      mkAdv : Conj -> Adv -> Adv -> Adv --# notminimal
-                                         = \c,x,y -> ConjAdv c (BaseAdv x y) ; --# notminimal
-      mkAdv : Conj -> ListAdv -> Adv --# notminimal
-                                         = \c,xy -> ConjAdv c xy ; --# notminimal
-      } ;   
-
-    mkCl = overload {   
-      mkCl : NP -> VP -> Cl           -- John wants to walk   
-                                         =    PredVP  ;   
-      mkCl : NP -> V -> Cl           -- John walks   
-                                         =    \s,v -> PredVP s (UseV v);   
-      mkCl : NP -> V2 -> NP -> Cl    -- John uses it   
-                                         =    \s,v,o -> PredVP s (ComplV2 v o);   
-      mkCl : NP -> V3 -> NP -> NP -> Cl   
-                                         =    \s,v,o,i -> PredVP s (ComplV3 v o i);   
-
-      mkCl : NP  -> VV -> VP -> Cl  --# notminimal
-        = \s,v,vp -> PredVP s (ComplVV v vp) ; --# notminimal
-      mkCl : NP  -> VS -> S  -> Cl --# notminimal
-        = \s,v,p -> PredVP s (ComplVS v p) ; --# notminimal
-      mkCl : NP  -> VQ -> QS -> Cl --# notminimal
-        = \s,v,q -> PredVP s (ComplVQ v q) ; --# notminimal
-      mkCl : NP  -> VA -> AP -> Cl --# notminimal
-        = \s,v,q -> PredVP s (ComplVA v q) ; --# notminimal
-      mkCl : NP  -> V2A -> NP -> AP -> Cl --# notminimal
-        = \s,v,n,q -> PredVP s (ComplV2A v n q) ; --# notminimal
-      mkCl : NP  -> V2S -> NP -> S -> Cl          --n14 --# notminimal
-        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2S v q) n) ; --# notminimal
-      mkCl : NP  -> V2Q -> NP -> QS -> Cl         --n14 --# notminimal
-        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --# notminimal
-      mkCl : NP  -> V2V -> NP -> VP -> Cl         --n14 --# notminimal
-        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --# notminimal
-
-      mkCl : VP -> Cl          -- it rains --# notminimal
-                                         =    ImpersCl   ; --# notminimal
-      mkCl : NP  -> RS -> Cl   -- it is you who did it --# notminimal
-                                         =    CleftNP    ; --# notminimal
-      mkCl : Adv -> S  -> Cl   -- it is yesterday she arrived --# notminimal
-                                         =    CleftAdv   ; --# notminimal
-      mkCl : N -> Cl           -- there is a house --# notminimal
-                                   = \y -> ExistNP (DetArtSg IndefArt (UseN y)) ; --# notminimal
-      mkCl : CN -> Cl          -- there is a house --# notminimal
-                                         =    \y -> ExistNP (DetArtSg IndefArt y) ; --# notminimal
-      mkCl : NP -> Cl          -- there is a house --# notminimal
-                                         =    ExistNP    ; --# notminimal
-      mkCl : NP -> AP -> Cl    -- John is nice and warm 
-	                      =     \x,y -> PredVP x (UseComp (CompAP y)) ; 
-      mkCl : NP -> A  -> Cl    -- John is warm   
-                      =     \x,y -> PredVP x (UseComp (CompAP (PositA y))) ;   
-      mkCl : NP -> A -> NP -> Cl -- John is warmer than Mary   
-                    =     \x,y,z -> PredVP x (UseComp (CompAP (ComparA y z))) ; 
-      mkCl : NP -> A2 -> NP -> Cl -- John is married to Mary --# notminimal
-	            =     \x,y,z -> PredVP x (UseComp (CompAP (ComplA2 y z))) ; --# notminimal
-      mkCl : NP -> NP -> Cl    -- John is the man   
-                                =    \x,y -> PredVP x (UseComp (CompNP y)) ;   
-      mkCl : NP -> CN -> Cl    -- John is a man   
-	    =    \x,y -> PredVP x (UseComp (CompNP (DetArtSg IndefArt y))) ;   
-      mkCl : NP -> N -> Cl    -- John is a man   
-	 =    \x,y -> PredVP x (UseComp (CompNP (DetArtSg IndefArt (UseN y)))) ;   
-      mkCl : NP -> Adv -> Cl   -- John is here   
-	    =    \x,y -> PredVP x (UseComp (CompAdv y)) ;   
-      mkCl : V -> Cl   -- it rains --# notminimal
-	    =    \v -> ImpersCl (UseV v) --# notminimal
-      } ;   
-
-    genericCl : VP -> Cl = GenericCl ; --# notminimal
-
-
-    mkNP = overload {   
-      mkNP : Art -> Num -> Ord -> CN -> NP   -- the five best men --n14 --# notminimal
-          =  \d,nu,ord,cn -> DetCN (DetArtOrd d nu ord) (cn) ; --# notminimal
-      mkNP : Art -> Ord -> CN -> NP   -- the best men --n14 --# notminimal
-          =  \d,ord,cn -> DetCN (DetArtOrd d sgNum ord) (cn) ; --# notminimal
-      mkNP : Art -> Card -> CN -> NP   -- the five men --n14 --# notminimal
-          =  \d,nu,cn -> DetCN (DetArtCard d nu) (cn) ; --# notminimal
-
-      mkNP : Art -> Num -> Ord -> N -> NP   -- the five best men --n14 --# notminimal
-          =  \d,nu,ord,cn -> DetCN (DetArtOrd d nu ord) (UseN cn) ; --# notminimal
-      mkNP : Art -> Ord -> N -> NP   -- the best men --n14 --# notminimal
-          =  \d,ord,cn -> DetCN (DetArtOrd d sgNum ord) (UseN cn) ; --# notminimal
-      mkNP : Art -> Card -> N -> NP   -- the five men --n14 --# notminimal
-          =  \d,nu,cn -> DetCN (DetArtCard d nu) (UseN cn) ; --# notminimal
-
-      mkNP : CN -> NP  -- old beer --n14   
-          = MassNP ;   
-      mkNP : N -> NP  -- beer --n14   
-          = \n -> MassNP (UseN n) ;   
-
-      mkNP : Det -> CN -> NP      -- the old man   
-          =  DetCN    ;   
-      mkNP : Det -> N -> NP       -- the man   
-          =  \d,n -> DetCN d (UseN n)   ;   
-      mkNP : Quant -> NP            -- this  --# notminimal
-          =  \q -> DetNP (DetQuant q sgNum) ;  --# notminimal
-      mkNP : Quant -> Num -> NP            -- this  --# notminimal
-          =  \q,n -> DetNP (DetQuant q n) ;  --# notminimal
-      mkNP : Det -> NP            -- this --# notminimal
-          =  DetNP ; --# notminimal
-      mkNP : Card -> CN -> NP     -- forty-five old men   
-	  =  \d,n -> DetCN (DetArtCard IndefArt d) n ;   
-      mkNP : Card -> N -> NP       -- forty-five men   
-	  =  \d,n -> DetCN (DetArtCard IndefArt d) (UseN n) ;   
-      mkNP : Quant -> CN -> NP   
-          = \q,n -> DetCN (DetQuant q NumSg) n ;   
-      mkNP : Quant -> N  -> NP   
-          = \q,n -> DetCN (DetQuant q NumSg) (UseN n) ;   
-      mkNP : Quant -> Num -> CN -> NP   
-          = \q,nu,n -> DetCN (DetQuant q nu) n ;  
-      mkNP : Quant -> Num -> N  -> NP   
-          = \q,nu,n -> DetCN (DetQuant q nu) (UseN n) ;  
-
-      mkNP : Pron    -> CN -> NP --# notminimal
-          = \p,n -> DetCN (DetQuant (PossPron p) NumSg) n ; --# notminimal
-      mkNP : Pron    -> N  -> NP  --# notminimal
-          = \p,n -> DetCN (DetQuant (PossPron p) NumSg) (UseN n) ; --# notminimal
-
-      mkNP : Numeral -> CN -> NP      -- 51 old men   
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral d)) n ;  
-
-      mkNP : Numeral -> N -> NP       -- 51 men  
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral d)) (UseN n) ;  
-      mkNP : Digits -> CN -> NP      -- 51 old men --# notminimal
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumDigits d)) n ; --# notminimal
-
-      mkNP : Digits -> N -> NP       -- 51 men --# notminimal
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumDigits d)) (UseN n) ; --# notminimal
-
-      mkNP : Digit -> CN -> NP    ---- obsol --# notminimal
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))))) n ; --# notminimal
-      mkNP : Digit -> N -> NP     ---- obsol --# notminimal
-	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))))) (UseN n) ; --# notminimal
-
-      mkNP : PN -> NP             -- John  
-                                         =    UsePN    ;  
-      mkNP : Pron -> NP           -- he  
-                                         =    UsePron  ;  
-      mkNP : Predet -> NP -> NP  -- only the man  
-                                         =    PredetNP  ;  
-      mkNP : NP -> V2  -> NP      -- the number squared --# notminimal
-                                         =    PPartNP  ; --# notminimal
-      mkNP : NP -> Adv -> NP      -- Paris at midnight --# notminimal
-                                         =    AdvNP ; --# notminimal
-      mkNP : NP -> RS -> NP --# notminimal
-            = RelNP ; --# notminimal
-      mkNP : Conj -> NP -> NP -> NP --# notminimal
-                                        = \c,x,y -> ConjNP c (BaseNP x y) ; --# notminimal
-      mkNP : Conj -> ListNP -> NP --# notminimal
-                                        = \c,xy -> ConjNP c xy ; --# notminimal
--- backward compat
-      mkNP : QuantSg -> CN -> NP  --# notminimal
-          = \q,n -> DetCN (DetQuant q NumSg) n ; --# notminimal
-      mkNP : QuantPl -> CN -> NP  --# notminimal
-          = \q,n -> DetCN (DetQuant q NumPl) n ; --# notminimal
-
-      } ;  
-
-    mkDet = overload {  
-
-      mkDet : Art -> Card -> Det   -- the five men --n14 --# notminimal
-          =  \d,nu -> (DetArtCard d nu) ; --# notminimal
-
-
-
-      mkDet : Quant ->  Ord -> Det     -- this best man --# notminimal
-        = \q,o -> DetQuantOrd q NumSg o  ; --# notminimal
-      mkDet : Quant ->  Det       -- this man  
-        = \q -> DetQuant q NumSg  ;  
-      mkDet : Quant -> Num -> Ord -> Det     -- these five best men --# notminimal
-        = DetQuantOrd  ; --# notminimal
-      mkDet : Quant -> Num -> Det       -- these five man  
-        = DetQuant ;  
-      mkDet : Card ->  Det       -- forty-five men  
-	= DetArtCard IndefArt ;  
-      mkDet : Digits -> Det          -- 51 (men) --# notminimal
-	= \d -> DetArtCard IndefArt (NumDigits d) ; --# notminimal
-      mkDet : Numeral -> Det  --  
-	= \d -> DetArtCard IndefArt (NumNumeral d) ;  
-      mkDet : Pron -> Det      -- my (house) --# notminimal
-        = \p -> DetQuant (PossPron p) NumSg ; --# notminimal
-      mkDet : Pron -> Num -> Det   -- my (houses) --# notminimal
-        = \p -> DetQuant (PossPron p) ; --# notminimal
-      } ;  
-
-    mkQuant = overload { --# notminimal
-      mkQuant : Pron -> Quant = PossPron ;  -- 1. my --# notminimal
-      } ; --# notminimal
-
-
-      the_Art : Art = DefArt ;     -- the  
-      a_Art   : Art = IndefArt ;   -- a  
-
-    ---- obsol --# notminimal
-
-    mkQuantSg : Quant -> QuantSg = SgQuant ; --# notminimal
-    mkQuantPl : Quant -> QuantPl = PlQuant ; --# notminimal
-
-      this_QuantSg : QuantSg = mkQuantSg this_Quant ; --# notminimal
-      that_QuantSg : QuantSg = mkQuantSg that_Quant ;  --# notminimal
-
---      the_QuantPl  : QuantPl = mkQuantPl defQuant ; 
---      a_QuantPl    : QuantPl = mkQuantPl indefQuant ; 
-      these_QuantPl : QuantPl = mkQuantPl this_Quant ;  --# notminimal
-      those_QuantPl : QuantPl = mkQuantPl that_Quant ;  --# notminimal
-
-    sgNum : Num = NumSg ;  
-    plNum : Num = NumPl ;  
-
-
-    mkCard = overload {  
-      mkCard : Str -> Card 
-        = str2card ;
-      mkCard : Numeral -> Card  
-        = NumNumeral ;  
-      mkCard : Digits -> Card         -- 51  --# notminimal
-        = NumDigits ;  --# notminimal
-      mkCard : AdN -> Card -> Card --# notminimal
-        = AdNum --# notminimal
-      } ;
-
-    mkNum = overload {  
-      mkNum : Str -> Num 
-        = \s -> NumCard (str2card s) ;
-      mkNum : Numeral -> Num  
-        = \d -> NumCard (NumNumeral d) ;  
-      mkNum : Digits -> Num         -- 51 --# notminimal
-        = \d -> NumCard (NumDigits d)      ; --# notminimal
-      mkNum : Digit -> Num --# notminimal
-        = \d -> NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d)))))) ; --# notminimal
-
-      mkNum : Card -> Num = NumCard ;  
-      mkNum : AdN -> Card -> Num = \a,c -> NumCard (AdNum a c) --# notminimal
-      } ;  
-
-    singularNum : Num                -- [no num] --# notminimal
-                                         =    NumSg       ; --# notminimal
-    pluralNum : Num                -- [no num] --# notminimal
-                                         =    NumPl       ; --# notminimal
-
-    mkOrd = overload { --# notminimal
-      -- mkOrd : Str -> Ord = str2ord ; -- ambiguous in Try
-      mkOrd : Numeral -> Ord = OrdNumeral ; --# notminimal
-      mkOrd : Digits -> Ord         -- 51st --# notminimal
-                                         =    OrdDigits      ; --# notminimal
-      mkOrd : Digit -> Ord       -- fifth --# notminimal
-                                         =    \d ->  --# notminimal
-        OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))) ; --# notminimal
-      mkOrd : A -> Ord           -- largest --# notminimal
-                                         =    OrdSuperl --# notminimal
-      } ; --# notminimal
-
-    mkNumeral = overload {      --# notminimal
-      mkNumeral : Str -> Numeral --# notminimal
-      = str2numeral ; --# notminimal
-    } ; --# notminimal
-
-    n1_Numeral = num (pot2as3 (pot1as2 (pot0as1 pot01))) ;  
-    n2_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))) ;  
-    n3_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n3)))) ;  
-    n4_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n4)))) ;  
-    n5_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n5)))) ;  
-    n6_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n6)))) ;  
-    n7_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n7)))) ;  
-    n8_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))) ;  
-    n9_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n9)))) ;  
-    n10_Numeral = num (pot2as3 (pot1as2 pot110)) ;  
-    n20_Numeral = num (pot2as3 (pot1as2 (pot1 n2))) ;  
-    n100_Numeral = num (pot2as3 (pot2 pot01)) ;  
-    n1000_Numeral = num (pot3 (pot1as2 (pot0as1 pot01))) ;  
-
-    n1_Digits = IDig D_1 ; --# notminimal
-    n2_Digits = IDig D_2 ; --# notminimal
-    n3_Digits = IDig D_3 ; --# notminimal
-    n4_Digits = IDig D_4 ; --# notminimal
-    n5_Digits = IDig D_5 ; --# notminimal
-    n6_Digits = IDig D_6 ; --# notminimal
-    n7_Digits = IDig D_7 ; --# notminimal
-    n8_Digits = IDig D_8 ; --# notminimal
-    n9_Digits = IDig D_9 ; --# notminimal
-    n10_Digits = IIDig D_1 (IDig D_0) ; --# notminimal
-    n20_Digits = IIDig D_2 (IDig D_0) ; --# notminimal
-    n100_Digits = IIDig D_1 (IIDig D_0 (IDig D_0)) ; --# notminimal
-    n1000_Digits = IIDig D_1 (IIDig D_0 (IIDig D_0 (IDig D_0))) ; --# notminimal
-
-
-    mkAdN : CAdv -> AdN = AdnCAdv ;                  -- more (than five) --# notminimal
-
-   mkDigits = overload { --# notminimal
-      mkDigits : Str -> Digits = str2digits ; --# notminimal
-      mkDigits : Dig -> Digits = IDig ;  --# notminimal
-      mkDigits : Dig -> Digits -> Digits = IIDig ;  --# notminimal
-      } ; --# notminimal
-
-      n0_Dig = D_0 ; --# notminimal
-      n1_Dig = D_1 ; --# notminimal
-      n2_Dig    = D_2 ; --# notminimal
-      n3_Dig    = D_3 ; --# notminimal
-      n4_Dig    = D_4 ; --# notminimal
-      n5_Dig    = D_5 ; --# notminimal
-      n6_Dig        = D_6 ; --# notminimal
-      n7_Dig        = D_7 ; --# notminimal
-      n8_Dig        = D_8 ; --# notminimal
-      n9_Dig        = D_9 ; --# notminimal
-
-
-
-
-    mkCN = overload {  
-      mkCN : N  -> CN            -- house  
-                                         =    UseN     ;  
-      mkCN : N2 -> NP -> CN      -- son of the king --# notminimal
-                                         =    ComplN2  ; --# notminimal
-      mkCN : N3 -> NP -> NP -> CN      -- flight from Moscow (to Paris) --# notminimal
-                                         =    \f,x -> ComplN2 (ComplN3 f x)  ; --# notminimal
-      mkCN : N2 -> CN            -- son --# notminimal
-                                         =    UseN2    ; --# notminimal
-      mkCN : N3 -> CN            -- flight --# notminimal
-                                         =    \n -> UseN2 (Use2N3 n)    ; --# notminimal
-      mkCN : AP -> CN  -> CN     -- nice and big blue house  
-                                         =    AdjCN    ;  
-      mkCN : AP ->  N  -> CN     -- nice and big house  
-                                         =    \x,y -> AdjCN x (UseN y) ;  
-      mkCN : CN -> AP  -> CN     -- nice and big blue house --# notminimal
-                                         =    \x,y -> AdjCN y x    ; --# notminimal
-      mkCN :  N -> AP  -> CN     -- nice and big house --# notminimal
-                                         =    \x,y -> AdjCN y (UseN x)    ; --# notminimal
-      mkCN :  A -> CN  -> CN     -- big blue house  
-	                                 =    \x,y -> AdjCN (PositA x) y;  
-      mkCN :  A ->  N  -> CN     -- big house  
-	                                 =  \x,y -> AdjCN (PositA x) (UseN y);  
-      mkCN : CN -> RS  -> CN     -- house that John owns --# notminimal
-                                         =    RelCN    ; --# notminimal
-      mkCN :  N -> RS  -> CN     -- house that John owns --# notminimal
-                                         =    \x,y -> RelCN (UseN x) y   ; --# notminimal
-      mkCN : CN -> Adv -> CN     -- house on the hill --# notminimal
-                                         =    AdvCN    ; --# notminimal
-      mkCN :  N -> Adv -> CN     -- house on the hill --# notminimal
-                                         =    \x,y -> AdvCN (UseN x) y  ; --# notminimal
-      mkCN : CN -> S   -> CN     -- fact that John smokes --# notminimal
-                                         =    \cn,s -> SentCN cn (EmbedS s) ; --# notminimal
-      mkCN : CN -> QS  -> CN     -- question if John smokes --# notminimal
-                                         =    \cn,s -> SentCN cn (EmbedQS s) ; --# notminimal
-      mkCN : CN -> VP  -> CN     -- reason to smoke --# notminimal
-                                         =    \cn,s -> SentCN cn (EmbedVP s) ; --# notminimal
-      mkCN : CN -> NP  -> CN     -- number x, numbers x and y --# notminimal
-                                         =    ApposCN ; --# notminimal
-      mkCN :  N -> NP  -> CN     -- number x, numbers x and y --# notminimal
-                                         =    \x,y -> ApposCN (UseN x) y --# notminimal
-      } ;  
-
-
-    mkPhr = overload {  
-      mkPhr : PConj -> Utt -> Voc -> Phr   -- But go home my friend --# notminimal
-                                         =    PhrUtt    ; --# notminimal
-      mkPhr : Utt -> Voc -> Phr --# notminimal
-                                         =    \u,v -> PhrUtt NoPConj u v ; --# notminimal
-      mkPhr : PConj -> Utt -> Phr --# notminimal
-                                         =    \u,v -> PhrUtt u v NoVoc ; --# notminimal
-      mkPhr : Utt -> Phr   -- Go home  
-                                         =    \u -> PhrUtt NoPConj u NoVoc   ;  
-      mkPhr : S -> Phr   -- I go home  
-         = \s -> PhrUtt NoPConj (UttS s) NoVoc ;  
-      mkPhr : Cl -> Phr   -- I go home  
-         = \s -> PhrUtt NoPConj (UttS (TUseCl TPres ASimul PPos s)) NoVoc ;  
-      mkPhr : QS -> Phr   -- I go home  
-                 =    \s -> PhrUtt NoPConj (UttQS s) NoVoc ;  
-      mkPhr : Imp -> Phr   -- I go home  
-                 =    \s -> PhrUtt NoPConj (UttImpSg PPos s) NoVoc   
-
-      } ;  
-
-    mkPConj : Conj -> PConj = PConjConj ; --# notminimal
-    noPConj : PConj = NoPConj ; --# notminimal
-
-    mkVoc   : NP -> Voc  = VocNP ; --# notminimal
-    noVoc   : Voc  = NoVoc ; --# notminimal
-
-    positivePol : Pol = PPos ;  
-    negativePol : Pol = PNeg ;  
-
-    simultaneousAnt : Ant = ASimul ;  --# notminimal
-    anteriorAnt : Ant = AAnter ; --# notpresent --# notminimal
-
-    presentTense     : Tense = TPres ; --# notminimal
-    pastTense        : Tense = TPast ; --# notpresent --# notminimal
-    futureTense      : Tense = TFut ;  --# notpresent --# notminimal
-    conditionalTense : Tense = TCond ; --# notpresent --# notminimal
-
-  param ImpForm = IFSg | IFPl | IFPol ; --# notminimal
-
-  oper --# notminimal
-    singularImpForm  : ImpForm = IFSg ; --# notminimal
-    pluralImpForm  : ImpForm = IFPl ; --# notminimal
-    politeImpForm : ImpForm = IFPol ; --# notminimal
-
-    mkUttImp : ImpForm -> Pol -> Imp -> Utt = \f,p,i -> case f of { --# notminimal
-      IFSg  => UttImpSg p i ; --# notminimal
-      IFPl  => UttImpPl p i ; --# notminimal
-      IFPol => UttImpPol p i --# notminimal
-      } ; --# notminimal
-
-    mkUtt = overload {  
-      mkUtt : S -> Utt                     -- John walked  
-                                         =    UttS      ;  
-      mkUtt : Cl -> Utt                     -- John walks  
-	                                 =    \c -> UttS (TUseCl TPres ASimul PPos c);  
-      mkUtt : QS -> Utt                    -- is it good  
-                                         =    UttQS     ;  
-      mkUtt : QCl -> Utt                   -- does John walk  
-	                                 =    \c -> UttQS (TUseQCl TPres ASimul PPos c);  
-      mkUtt : ImpForm -> Pol -> Imp -> Utt -- don't help yourselves --# notminimal
-                                         =    mkUttImp  ; --# notminimal
-      mkUtt : ImpForm ->        Imp -> Utt -- help yourselves --# notminimal
-                                         =  \f -> mkUttImp f PPos ; --# notminimal
-      mkUtt : Pol -> Imp -> Utt            -- (don't) help yourself  
-                                         =    UttImpSg  ;  
-      mkUtt : Imp -> Utt                    -- help yourself  
-                                         =    UttImpSg PPos  ;  
-      mkUtt : IP   -> Utt                   -- who  
-                                         =    UttIP    ;  
-      mkUtt : IAdv -> Utt                   -- why  
-                                         =    UttIAdv  ;  
-      mkUtt : NP   -> Utt                   -- this man  
-                                         =    UttNP    ;  
-      mkUtt : Adv  -> Utt                   -- here  
-                                         =    UttAdv   ;  
-      mkUtt : VP   -> Utt                   -- to sleep --# notminimal
-                                         =    UttVP ;  --# notminimal
-      mkUtt : CN   -> Utt =    UttCN ;    --# notminimal
-      mkUtt : AP   -> Utt =    UttAP ;    --# notminimal
-      mkUtt : Card -> Utt =    UttCard ;  --# notminimal
-      } ;  
-
-    lets_Utt : VP -> Utt = ImpPl1 ; --# notminimal
-
-    mkQCl = overload {  
-
-      mkQCl : Cl -> QCl                    -- does John walk  
-                                         =    QuestCl      ;  
-      mkQCl : IP -> VP -> QCl              -- who walks  
-                                         =    QuestVP      ;  
-      mkQCl : IP -> ClSlash -> QCl           -- who does John love --# notminimal
-                                         =    QuestSlash   ; --# notminimal
-      mkQCl : IP -> NP -> V2 -> QCl           -- who does John love --# notminimal
-                                         =    \ip,np,v -> QuestSlash ip (SlashVP np (SlashV2a v))  ; --# notminimal
-      mkQCl : IAdv -> Cl -> QCl            -- why does John walk  
-                                         =    QuestIAdv    ;  
-      mkQCl : Prep -> IP -> Cl -> QCl      -- with whom does John walk --# notminimal
-                                         =    \p,ip -> QuestIAdv (PrepIP p ip)  ; --# notminimal
-      mkQCl : IAdv -> NP -> QCl   -- where is John --# notminimal
-                                         =    \a -> QuestIComp (CompIAdv a)   ; --# notminimal
-      mkQCl : IP -> NP -> QCl   -- who is John --# notminimal
-                                         =    \a -> QuestIComp (CompIP a)   ; --# notminimal
-      mkQCl : IP -> QCl         -- which houses are there --# notminimal
-                                         =    ExistIP ; --# notminimal
-      mkQCl : IComp -> NP -> QCl   -- who is John --# notminimal
-                                         =    \a -> QuestIComp a   ; --# notminimal
-      } ;  
-
-    mkIP = overload {  
-      mkIP : IDet -> CN -> IP          -- which songs --# notminimal
-                                         = IdetCN ; --# notminimal
-      mkIP : IDet -> N -> IP      -- which song --# notminimal
-                                         =    \i,n -> IdetCN i (UseN n)  ; --# notminimal
-      mkIP : IQuant -> CN -> IP          -- which songs  
-                     =  \i,n -> IdetCN (IdetQuant i NumSg) n ;  
-      mkIP : IQuant -> Num -> CN -> IP          -- which songs --# notminimal
-                     =  \i,nu,n -> IdetCN (IdetQuant i nu) n ; --# notminimal
-      mkIP : IQuant -> N -> IP      -- which song  
-                     =  \i,n -> IdetCN (IdetQuant i NumSg) (UseN n) ;  
-      mkIP : IP -> Adv -> IP                  -- who in Europe --# notminimal
-                                         =    AdvIP --# notminimal
-      } ;  
-
-    mkIDet = overload { 
-      mkIDet : IQuant -> Num -> IDet          -- which (songs) --# notminimal
-                     =  \i,nu -> IdetQuant i nu ; --# notminimal
-      mkIDet : IQuant -> IDet      
-                     =  \i -> IdetQuant i NumSg ; 
-      } ; 
-
-    whichSg_IDet : IDet = IdetQuant which_IQuant NumSg ; --# notminimal
-    whichPl_IDet : IDet = IdetQuant which_IQuant NumPl ; --# notminimal
-
-    what_IP : IP = whatSg_IP ;  
-    who_IP : IP = whoSg_IP ;  
-    which_IDet : IDet = whichSg_IDet ; --# notminimal
-
-    mkIAdv : Prep -> IP -> IAdv = PrepIP ; --# notminimal
-
-    mkRCl = overload { --# notminimal
-      mkRCl : Cl -> RCl              -- such that John loves her --# notminimal
-                                         =    RelCl     ; --# notminimal
-      mkRCl : RP -> VP -> RCl        -- who loves John --# notminimal
-                                         =    RelVP     ; --# notminimal
-      mkRCl : RP -> ClSlash -> RCl     -- whom John loves --# notminimal
-                                         =    RelSlash ; --# notminimal
-      mkRCl : RP -> NP -> V2 -> RCl     -- whom John loves --# notminimal
-                                         =  \rp,np,v2 -> RelSlash rp (SlashVP np (SlashV2a v2)) ; --# notminimal
-      } ; --# notminimal
-
-    which_RP : RP                        -- which --# notminimal
-                                         =    IdRP   ; --# notminimal
-    mkRP : Prep -> NP -> RP -> RP    -- all the roots of which --# notminimal
-                                         =    FunRP --# notminimal
-      ; --# notminimal
-
-    mkClSlash = overload { --# notminimal
-      mkClSlash : NP -> V2 -> ClSlash        -- (whom) he sees --# notminimal
-               = \np,v2 -> SlashVP np (SlashV2a v2) ; --# notminimal
-      mkClSlash : NP -> VV -> V2 -> ClSlash  -- (whom) he wants to see --# notminimal
-               = \np,vv,v2 -> SlashVP np (SlashVV vv (SlashV2a v2))  ; --# notminimal
-      mkClSlash : ClSlash -> Adv -> ClSlash    -- (whom) he sees tomorrow --# notminimal
-                                         =    AdvSlash   ; --# notminimal
-      mkClSlash : Cl -> Prep -> ClSlash      -- (with whom) he walks --# notminimal
-                                         =    SlashPrep --# notminimal
-      } ; --# notminimal
-
-    mkImp = overload {  
-      mkImp : VP -> Imp                -- go --# notminimal
-                                         =    ImpVP      ; --# notminimal
-      mkImp : V  -> Imp  
-                                         =    \v -> ImpVP (UseV v)  ;  
-      mkImp : V2 -> NP -> Imp  
-                                         =    \v,np -> ImpVP (ComplV2 v np)  
-      } ;  
-
-    mkS = overload {  
-      mkS : Cl  -> S  
-                                         =    TUseCl TPres ASimul PPos ;  
-      mkS : Tense -> Cl -> S  --# notminimal
-	                                 =    \t -> TUseCl t ASimul PPos ; --# notminimal
-      mkS : Ant -> Cl -> S --# notminimal
-                                         =    \a -> TUseCl TPres a PPos ; --# notminimal
-      mkS : Pol -> Cl -> S  
-                                         =    \p -> TUseCl TPres ASimul p ;  
-      mkS : Tense -> Ant -> Cl -> S --# notminimal
-                                         =    \t,a -> TUseCl t a PPos ; --# notminimal
-      mkS : Tense -> Pol -> Cl -> S --# notminimal
-                                         =    \t,p -> TUseCl t ASimul p ; --# notminimal
-      mkS : Ant -> Pol -> Cl -> S --# notminimal
-                                         =    \a,p -> TUseCl TPres a p ; --# notminimal
-      mkS : Tense -> Ant -> Pol -> Cl  -> S --# notminimal
-                                         =    \t,a -> TUseCl t a ; --# notminimal
-      mkS : Conj -> S -> S -> S --# notminimal
-                                        = \c,x,y -> ConjS c (BaseS x y) ; --# notminimal
-      mkS : Conj -> ListS -> S --# notminimal
-                                        = \c,xy -> ConjS c xy ; --# notminimal
-      mkS : Adv -> S -> S  --# notminimal
-                                        = AdvS --# notminimal
-
-      } ;  
-
-    mkQS = overload {  
-
-      mkQS : QCl  -> QS  
-                                         =    TUseQCl TPres ASimul PPos ;  
-      mkQS : Tense -> QCl -> QS  --# notminimal
-	                                 =    \t -> TUseQCl t ASimul PPos ; --# notminimal
-      mkQS : Ant -> QCl -> QS --# notminimal
-                                         =    \a -> TUseQCl TPres a PPos ; --# notminimal
-      mkQS : Pol -> QCl -> QS  
-                                         =    \p -> TUseQCl TPres ASimul p ;  
-      mkQS : Tense -> Ant -> QCl -> QS --# notminimal
-                                         =    \t,a -> TUseQCl t a PPos ; --# notminimal
-      mkQS : Tense -> Pol -> QCl -> QS --# notminimal
-                                         =    \t,p -> TUseQCl t ASimul p ; --# notminimal
-      mkQS : Ant -> Pol -> QCl -> QS --# notminimal
-                                         =    \a,p -> TUseQCl TPres a p ; --# notminimal
-      mkQS : Tense -> Ant -> Pol -> QCl -> QS --# notminimal
-                                         =    TUseQCl  ; --# notminimal
-      mkQS : Cl   -> QS                    
-	                                 =    \x -> TUseQCl TPres ASimul PPos (QuestCl x)  
-      } ;  
-
-
-    mkRS = overload { --# notminimal
-
-      mkRS : RCl  -> RS --# notminimal
-                                         =    TUseRCl TPres ASimul PPos ; --# notminimal
-      mkRS : Tense -> RCl -> RS  --# notminimal
-	                                 =    \t -> TUseRCl t ASimul PPos ; --# notminimal
-      mkRS : Ant -> RCl -> RS --# notminimal
-                                         =    \a -> TUseRCl TPres a PPos ; --# notminimal
-      mkRS : Pol -> RCl -> RS --# notminimal
-                                         =    \p -> TUseRCl TPres ASimul p ; --# notminimal
-      mkRS : Tense -> Ant -> RCl -> RS --# notminimal
-                                         =    \t,a -> TUseRCl t a PPos ; --# notminimal
-      mkRS : Tense -> Pol -> RCl -> RS --# notminimal
-                                         =    \t,p -> TUseRCl t ASimul p ; --# notminimal
-      mkRS : Ant -> Pol -> RCl -> RS --# notminimal
-                                         =    \a,p -> TUseRCl TPres a p ; --# notminimal
-      mkRS : Tense -> Ant -> Pol -> RCl -> RS --# notminimal
-                                         =    TUseRCl ; --# notminimal
-      mkRS : Conj -> RS -> RS -> RS --# notminimal
-                                        = \c,x,y -> ConjRS c (BaseRS x y) ; --# notminimal
-      mkRS : Conj -> ListRS -> RS --# notminimal
-                                        = \c,xy -> ConjRS c xy ; --# notminimal
-
-      } ; --# notminimal
-
-  param Punct = PFullStop | PExclMark | PQuestMark ;  
-
-  oper  
-    emptyText : Text = TEmpty ;       -- [empty text] --# notminimal
-
-    fullStopPunct  : Punct = PFullStop ; -- .  
-    questMarkPunct : Punct = PQuestMark ; -- ?  
-    exclMarkPunct  : Punct = PExclMark ; -- !  
-
-
-    mkText = overload {  
-      mkText : Phr -> Punct -> Text -> Text = --# notminimal
-        \phr,punct,text -> case punct of { --# notminimal
-          PFullStop => TFullStop phr text ;  --# notminimal
-          PExclMark => TExclMark phr text ; --# notminimal
-          PQuestMark => TQuestMark phr text --# notminimal
-          } ; --# notminimal
-      mkText : Phr -> Punct -> Text =  
-        \phr,punct -> case punct of {  
-          PFullStop => TFullStop phr TEmpty ;  
-          PExclMark => TExclMark phr TEmpty ;  
-          PQuestMark => TQuestMark phr TEmpty  
-          } ;  
-      mkText : Phr -> Text            -- John walks. --# notminimal
-                                         =    \x -> TFullStop x TEmpty  ; --# notminimal
-      mkText : Utt -> Text  
-	                                 =    \u -> TFullStop (PhrUtt NoPConj u NoVoc) TEmpty ;  
-      mkText : S -> Text  
-	                                 =    \s -> TFullStop (PhrUtt NoPConj (UttS s) NoVoc) TEmpty;  
-      mkText : Cl -> Text  
-	                                 =    \c -> TFullStop (PhrUtt NoPConj (UttS (TUseCl TPres ASimul PPos c)) NoVoc) TEmpty;  
-      mkText : QS -> Text  
-	                                 =    \q -> TQuestMark (PhrUtt NoPConj (UttQS q) NoVoc) TEmpty ;  
-      mkText : Imp -> Text  
-	                                =    \i -> TExclMark (PhrUtt NoPConj (UttImpSg PPos i) NoVoc) TEmpty;  
-      mkText : Pol -> Imp -> Text  --# notminimal
-	                                 =    \p,i -> TExclMark (PhrUtt NoPConj (UttImpSg p i) NoVoc) TEmpty; --# notminimal
-      mkText : Phr -> Text -> Text    -- John walks. ... --# notminimal
-                                         =    TFullStop ; --# notminimal
-      mkText : Text -> Text -> Text  --# notminimal
-        = \t,u -> {s = t.s ++ u.s ; lock_Text = <>} ; --# notminimal
-      } ;  
-
-    mkVP = overload { 
-      mkVP : V   -> VP                -- sleep 
-                                         =    UseV      ; 
-      mkVP : V2  -> NP -> VP          -- use it 
-                                         =    ComplV2   ; 
-      mkVP : V3  -> NP -> NP -> VP    -- send a message to her --# notminimal
-                                         =    ComplV3   ; --# notminimal
-      mkVP : VV  -> VP -> VP          -- want to run --# notminimal
-                                         =    ComplVV   ; --# notminimal
-      mkVP : VS  -> S  -> VP          -- know that she runs --# notminimal
-                                         =    ComplVS   ; --# notminimal
-      mkVP : VQ  -> QS -> VP          -- ask if she runs --# notminimal
-                                         =    ComplVQ   ; --# notminimal
-      mkVP : VA  -> AP -> VP          -- look red --# notminimal
-                                         =    ComplVA   ; --# notminimal
-      mkVP : V2A -> NP -> AP -> VP    -- paint the house red --# notminimal
-                                         =    ComplV2A  ; --# notminimal
-
-      mkVP : V2S -> NP -> S  -> VP          --n14 --# notminimal
-        = \v,n,q -> (ComplSlash (SlashV2S v q) n) ; --# notminimal
-      mkVP : V2Q -> NP -> QS -> VP         --n14 --# notminimal
-        = \v,n,q -> (ComplSlash (SlashV2Q v q) n) ; --# notminimal
-      mkVP : V2V -> NP -> VP -> VP         --n14 --# notminimal
-        = \v,n,q -> (ComplSlash (SlashV2V v q) n) ; --# notminimal
-
-      mkVP : A -> VP               -- be warm --# notminimal
-                                         =    \a -> UseComp (CompAP (PositA a)) ; --# notminimal
-      mkVP : A -> NP -> VP -- John is warmer than Mary --# notminimal
-	                                =     \y,z -> (UseComp (CompAP (ComparA y z))) ; --# notminimal
-      mkVP : A2 -> NP -> VP -- John is married to Mary --# notminimal
-	                                =     \y,z -> (UseComp (CompAP (ComplA2 y z))) ; --# notminimal
-      mkVP : AP -> VP               -- be warm --# notminimal
-                                         =    \a -> UseComp (CompAP a)   ; --# notminimal
-      mkVP : NP -> VP               -- be a man --# notminimal
-                                         =    \a -> UseComp (CompNP a)   ; --# notminimal
-      mkVP : CN -> VP               -- be a man --# notminimal
-                             = \y -> (UseComp (CompNP (DetArtSg IndefArt y))) ; --# notminimal
-      mkVP : N -> VP               -- be a man --# notminimal
-                             = \y -> (UseComp (CompNP (DetArtSg IndefArt (UseN y)))) ; --# notminimal
-      mkVP : Adv -> VP               -- be here --# notminimal
-                                         =    \a -> UseComp (CompAdv a)   ; --# notminimal
-      mkVP : VP -> Adv -> VP          -- sleep here 
-                                         =    AdvVP     ; 
-      mkVP : AdV -> VP -> VP          -- always sleep --# notminimal
-                                         =    AdVVP ; --# notminimal
-      mkVP : VPSlash -> NP -> VP          -- always sleep --# notminimal
-                                         =    ComplSlash ; --# notminimal
-      mkVP : VPSlash -> VP --# notminimal
-        = ReflVP --# notminimal
-      } ; 
-
-  reflexiveVP   : V2 -> VP = \v -> ReflVP (SlashV2a v) ; --# notminimal
-
-    mkVPSlash = overload { --# notminimal
-
-      mkVPSlash : V2  -> VPSlash         -- 1. (whom) (John) loves --# notminimal
-        = SlashV2a ; --# notminimal
-      mkVPSlash : V3  -> NP -> VPSlash   -- 2. (whom) (John) gives an apple --# notminimal
-        = Slash2V3 ; --# notminimal
-      mkVPSlash : V2A -> AP -> VPSlash   -- 3. (whom) (John) paints red --# notminimal
-        = SlashV2A ; --# notminimal
-      mkVPSlash : V2Q -> QS -> VPSlash   -- 4. (whom) (John) asks who sleeps --# notminimal
-        = SlashV2Q ; --# notminimal
-      mkVPSlash : V2S -> S  -> VPSlash   -- 5. (whom) (John) tells that we sleep --# notminimal
-        = SlashV2S ; --# notminimal
-      mkVPSlash : V2V -> VP -> VPSlash   -- 6. (whom) (John) forces to sleep --# notminimal
-        = SlashV2V ; --# notminimal
-      } ; --# notminimal
-
-
-
-  passiveVP = overload { --# notminimal
-      passiveVP : V2 ->       VP = PassV2 ; --# notminimal
-      passiveVP : V2 -> NP -> VP = \v,np ->  --# notminimal
-        (AdvVP (PassV2 v) (PrepNP by8agent_Prep np)) --# notminimal
-      } ; --# notminimal
-  progressiveVP : VP -> VP = ProgrVP ; --# notminimal
-
-
-  mkListS = overload { --# notminimal
-   mkListS : S -> S -> ListS = BaseS ; --# notminimal
-   mkListS : S -> ListS -> ListS = ConsS --# notminimal
-   } ; --# notminimal
-
-  mkListAP = overload { --# notminimal
-   mkListAP : AP -> AP -> ListAP = BaseAP ; --# notminimal
-   mkListAP : AP -> ListAP -> ListAP = ConsAP --# notminimal
-   } ; --# notminimal
-
-  mkListAdv = overload { --# notminimal
-   mkListAdv : Adv -> Adv -> ListAdv = BaseAdv ; --# notminimal
-   mkListAdv : Adv -> ListAdv -> ListAdv = ConsAdv --# notminimal
-   } ; --# notminimal
-
-  mkListNP = overload { --# notminimal
-   mkListNP : NP -> NP -> ListNP = BaseNP ; --# notminimal
-   mkListNP : NP -> ListNP -> ListNP = ConsNP --# notminimal
-   } ; --# notminimal
-
-  mkListRS = overload { --# notminimal
-   mkListRS : RS -> RS -> ListRS = BaseRS ; --# notminimal
-   mkListRS : RS -> ListRS -> ListRS = ConsRS --# notminimal
-   } ; --# notminimal
-
-
------------- for backward compatibility --# notminimal
-
-    QuantSg : Type = Quant ** {isSg : {}} ; --# notminimal
-    QuantPl : Type = Quant ** {isPl : {}} ; --# notminimal
-    SgQuant : Quant -> QuantSg = \q -> q ** {isSg = <>} ; --# notminimal
-    PlQuant : Quant -> QuantPl = \q -> q ** {isPl = <>} ; --# notminimal
-
--- Pre-1.4 constants defined
-
-  DetSg : Quant -> Ord -> Det = \q -> DetQuantOrd q NumSg ; --# notminimal
-  DetPl : Quant -> Num -> Ord -> Det = DetQuantOrd ; --# notminimal
-
-  ComplV2 : V2 -> NP -> VP = \v,np -> ComplSlash (SlashV2a v) np ;
-  ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ; --# notminimal
-  ComplV3 : V3 -> NP -> NP -> VP = \v,o,d -> ComplSlash (Slash3V3 v o) d ; 
-
-    that_NP : NP = DetNP (DetQuant that_Quant sgNum) ; --# notminimal
-    this_NP : NP = DetNP (DetQuant this_Quant sgNum) ; --# notminimal
-    those_NP : NP = DetNP (DetQuant that_Quant plNum) ; --# notminimal
-    these_NP : NP = DetNP (DetQuant this_Quant plNum) ; --# notminimal
-
-    that_Det : Det = (DetQuant that_Quant sgNum) ;
-    this_Det : Det = (DetQuant this_Quant sgNum) ;
-    those_Det : Det = (DetQuant that_Quant plNum) ;
-    these_Det : Det = (DetQuant this_Quant plNum) ;
-
-
-{- --# notminimal
--- The definite and indefinite articles are commonly used determiners.
-
-      defSgDet   : Det ;  -- 11. the (house) --# notminimal
-      defPlDet   : Det ;  -- 12. the (houses) --# notminimal
-      indefSgDet : Det ;  -- 13. a (house) --# notminimal
-      indefPlDet : Det ;  -- 14. (houses) --# notminimal
-
-
---3 QuantSg, singular quantifiers --# notminimal
-
--- From quantifiers that can have both forms, this constructor 
--- builds the singular form.
-
-      mkQuantSg : Quant -> QuantSg ;  -- 1. this --# notminimal
-
--- The mass noun phrase constructor is treated as a singular quantifier.
-
-      massQuant : QuantSg ;  -- 2. (mass terms) --# notminimal
-
--- More singular quantifiers are available in the $Structural$ module.
--- The following singular cases of quantifiers are often used.
-
-      the_QuantSg  : QuantSg ; -- 3. the --# notminimal
-      a_QuantSg    : QuantSg ; -- 4. a --# notminimal
-      this_QuantSg : QuantSg ; -- 5. this --# notminimal
-      that_QuantSg : QuantSg ; -- 6. that --# notminimal
-
-
---3 QuantPl, plural quantifiers --# notminimal
-
--- From quantifiers that can have both forms, this constructor 
--- builds the plural form.
-
-      mkQuantPl : Quant -> QuantPl ;  -- 1. these --# notminimal
-
--- More plural quantifiers are available in the $Structural$ module.   
--- The following plural cases of quantifiers are often used.
-
-      the_QuantPl   : QuantPl ; -- 2. the --# notminimal
-      a_QuantPl     : QuantPl ; -- 3. (indefinite plural) --# notminimal
-      these_QuantPl : QuantPl ; -- 4. these --# notminimal
-      those_QuantPl : QuantPl ; -- 5. those --# notminimal
--} --# notminimal
-
--- new things
-
-      the_Det   : Det = theSg_Det ; -- the (house)
-      a_Det     : Det = aSg_Det ; -- a (house)
-      theSg_Det : Det = DetQuant DefArt NumSg ; -- the (houses)
-      thePl_Det : Det = DetQuant DefArt NumPl ; -- the (houses)
-      aSg_Det   : Det = DetQuant IndefArt NumSg ; -- a (house)
-      aPl_Det   : Det = DetQuant IndefArt NumPl ; -- (houses)
-
-
--- export needed, since not in Cat
-
-  ListAdv : Type = Grammar.ListAdv ; --# notminimal
-  ListAP : Type = Grammar.ListAP ; --# notminimal
-  ListNP : Type = Grammar.ListNP ; --# notminimal
-  ListS : Type = Grammar.ListS ; --# notminimal
-
--- bw to 1.4
-
-    Art : Type = Quant ; 
-      the_Art : Art = DefArt ;   -- the --# notminimal
-      a_Art : Art  = IndefArt ;   -- a --# notminimal
-
-    the_Quant : Quant = DefArt ;   -- the --# notminimal
-    a_Quant : Quant  = IndefArt ;   -- a --# notminimal
-
-    DetArtSg : Art -> CN -> NP = \a -> DetCN (DetQuant a sgNum) ; 
-    DetArtPl : Art -> CN -> NP = \a -> DetCN (DetQuant a plNum) ; 
-
-    DetArtOrd : Quant -> Num -> Ord -> Det = DetQuantOrd ; --# notminimal
-    DetArtCard : Art -> Card -> Det = \a,c -> DetQuant a (NumCard c) ; 
-
-    TUseCl  : Tense -> Ant -> Pol ->  Cl ->  S = \t,a -> UseCl  (TTAnt t a) ; 
-    TUseQCl : Tense -> Ant -> Pol -> QCl -> QS = \t,a -> UseQCl (TTAnt t a) ; 
-    TUseRCl : Tense -> Ant -> Pol -> RCl -> RS = \t,a -> UseRCl (TTAnt t a) ; --# notminimal
-
--- numerals from strings
-
-oper --# notminimal
-  str2ord : Str -> Ord = \s -> case Predef.lessInt (Predef.length s) 7 of {
-    Predef.PTrue  => OrdNumeral (str2numeral s) ;
-    Predef.PFalse => OrdDigits (str2digits s)
-    } ;
-
-  str2card : Str -> Card = \s -> case Predef.lessInt (Predef.length s) 7 of {
-    Predef.PTrue  => NumNumeral (str2numeral s) ;
-    Predef.PFalse => NumDigits (str2digits s)
-    } ;
-
-  str2numeral : Str -> Numeral = (\s -> case s of {
-    m@(? + _) + "000"            => num (pot3 (s2s1000 m)) ;
-    m@(? + _) + "00" + n@?       => num (pot3plus (s2s1000 m) (s2s1000 n)) ; --# notminimal
-    m@(? + _) + "0"  + n@(? + ?) => num (pot3plus (s2s1000 m) (s2s1000 n)) ; --# notminimal
-    m@(? + _) + n@(? + ? + ?)    => num (pot3plus (s2s1000 m) (s2s1000 n)) ; --# notminimal
-    _ => num (pot2as3 (s2s1000 s))
-    }) 
-  where {
-
-  s2d : Str -> Digit = \s -> case s of {
-    "2" => n2 ;
-    "3" => n3 ;
-    "4" => n4 ;
-    "5" => n5 ;
-    "6" => n6 ;
-    "7" => n7 ;
-    "8" => n8 ;
-    "9" => n9 ;
-    _   => Predef.error ("not a valid digit" ++ s)
-    } ;
-
-  s2s10 : Str -> Sub10 = \s -> case s of {
-    "1" => pot01 ;
-    #idigit => pot0 (s2d s) ;
-    _   => Predef.error ("not a valid digit" ++ s)
-    } ;
-
-  s2s100 : Str -> Sub100 = \s -> case s of {
-    "10"       => pot110 ;
-    "11"       => pot111 ;
-    "1" + d@#digit  => pot1to19 (s2d d) ;
-    d@#idigit + "0" => pot1 (s2d d) ;
-    d@#idigit + n@? => pot1plus (s2d d) (s2s10 n) ;
-    _               => pot0as1 (s2s10 s)
-    } ;
-
-  s2s1000 : Str -> Sub1000 = \s -> case s of {
-    d@? + "00"      => pot2 (s2s10 d) ;
-    d@? + "0" + n@? => pot2plus (s2s10 d) (s2s100 n) ;
-    d@? + n@(? + ?) => pot2plus (s2s10 d) (s2s100 n) ;
-    _ => pot1as2 (s2s100 s)
-    } ;
-  } ;
-  idigit : pattern Str = #("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9") ;
-  digit : pattern Str = #("0" | #idigit) ;
-
-  --- it would be nice to have foldr on strings...
-  str2digits : Str -> Digits = (\s -> case s of {
-    d0@? => IDig (s2d d0) ;
-    d1@? + d0@? => IIDig (s2d d1) (IDig (s2d d0)) ;
-    d2@? + d1@? + d0@? => IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))) ;
-    d3@? + d2@? + d1@? + d0@? => 
-      IIDig (s2d d3) (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0)))) ;
-    d4@? + d3@? + d2@? + d1@? + d0@? => 
-      IIDig (s2d d4) (IIDig (s2d d3) (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))))) ;
-    d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
-      IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) (IIDig (s2d d2) 
-        (IIDig (s2d d1) (IDig (s2d d0)))))) ;
-    d6@? + d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
-      IIDig (s2d d6) (IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) 
-        (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))))))) ;
-    d7@? + d6@? + d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
-      IIDig (s2d d7) (IIDig (s2d d6) (IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) 
-        (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0)))))))) ;
-    _ => Predef.error ("cannot deal with so many digits:" ++ s)
-    }) where {
-  s2d : Str -> Dig = \s -> case s of {
-    "0" => D_0 ;
-    "1" => D_1 ;
-    "2" => D_2 ;
-    "3" => D_3 ;
-    "4" => D_4 ;
-    "5" => D_5 ;
-    "6" => D_6 ;
-    "7" => D_7 ;
-    "8" => D_8 ;
-    "9" => D_9 ;
-    _   => Predef.error ("not a valid digit" ++ s)
-    } ;
-  } ;
+--1 Constructors: the Resource Syntax API 
+
+incomplete resource Constructors = open Grammar in {  --%
+
+  flags optimize=noexpand ;  --%
+
+-- For developers: this document is tagged to support GF-Doc and synopsis    --%
+-- generation:    --%
+--  --% ignore this line in documentation    --%  
+--  --: this is a ground constructor  --%
+-- Moreover, follow the format  --%
+--   oper : Typ                 --%
+--   = def ; --%                --%
+--
+-- This module gives access to the syntactic constructions of the
+-- GF Resource Grammar library. Its main principle is simple:
+-- to construct an object of type $C$, use the function $mkC$.
+--
+-- For example, an object of type $S$ corresponding to the string
+--
+-- $John loves Mary$
+--
+-- is written
+--
+-- $mkS (mkCl (mkNP (mkPN "John")) (mkV2 "love") (mkNP (mkPN "Mary")))$
+--
+-- This module defines the syntactic constructors, which take trees as arguments.
+-- Lexical constructors, which take strings as arguments, are defined in the
+-- $Paradigms$ modules separately for each language.
+--
+-- The recommended usage of this module is via the wrapper module $Syntax$, 
+-- which also contains the $Structural$ (structural words). 
+-- Together with $Paradigms$, $Syntax$ gives everything that is needed
+-- to implement the concrete syntax for a language.
+
+--2 Principles of organization 
+
+-- To make the library easier to grasp and navigate, we have followed
+-- a set of principles when organizing it:
+-- + Each category $C$ has an overloaded constructor $mkC$, with value type $C$.
+-- + With $mkC$, it is possible to construct any tree of type $C$, except
+--   atomic ones, i.e. those that take no arguments, and
+--   those whose argument types are exactly the same as in some other instance
+-- + To achieve completeness, the library therefore also has
+--   for each atomic tree of type $C$, a constant suffixed $C$, and,
+--   for other missing constructions, some operation suffixed $C$.
+--   These constructors are listed immediately after the $mkC$ group.
+-- + Those atomic constructors that are given in $Structural$ are not repeated here.
+-- + In addition to the minimally complete set of constructions, many $mkC$ groups
+--   include some frequently needed special cases, with two possible logics:
+--   default value (to decrease the number of arguments), and
+--   direct arguments of an intervening constructor (to flatten the terms).
+-- + If such a special case is applied to some category in some rule, it is
+--   also applied to all other rules in which the category appears.
+-- + The constructors in a group are listed, roughly, 
+--   *from the most common to the most general*. This does not of course specify
+--   a total order. 
+-- + Optional argument types are marked in parentheses. Although parentheses make no
+--   difference in the way the GF compiler treats the types, their presence indicates
+--   to the reader that the corresponding arguments can be left out; internally, the
+--   library has an overload case for each such combination.
+-- + Each constructor case is equipped with an example that is built by that
+--   case but could not be built with any other one.
+--
+--
+
+--2 Texts, phrases, and utterances 
+
+--3 Text: texts 
+
+-- A text is a list of phrases separated by punctuation marks.
+-- The default punctuation mark is the full stop, and the default
+-- continuation of a text is empty.
+
+  oper   
+    mkText = overload {  --%
+      mkText : Phr -> (Punct) -> (Text) -> Text  -- Does she sleep? Yes. --:
+        = \phr,punct,text -> case punct of {  --%
+          PFullStop => TFullStop phr text ;   --%
+          PExclMark => TExclMark phr text ;   --%
+          PQuestMark => TQuestMark phr text   --%
+          } ;  --%
+      mkText : Phr -> Text -> Text  -- But she sleeps. Yes!  --%
+        =    \x,t -> TFullStop x t  ;  --%
+      mkText : Phr -> Punct -> Text   --%
+        = \phr,punct -> case punct of {   --%
+          PFullStop => TFullStop phr TEmpty ;   --%
+          PExclMark => TExclMark phr TEmpty ;   --%
+          PQuestMark => TQuestMark phr TEmpty   --%
+          } ;   --%
+      mkText : Phr -> Text  -- But she sleeps.  --%
+        =    \x -> TFullStop x TEmpty  ;  --%
+
+
+-- A text can also be directly built from utterances, which in turn can
+-- be directly built from sentences, present-tense clauses, questions, or
+-- positive imperatives. 
+
+      mkText : Utt ->  Text    -- Yes. 
+        = \u -> TFullStop (PhrUtt NoPConj u NoVoc) TEmpty ;  --%  
+      mkText : S   ->  Text    -- She slept. 
+        = \s -> TFullStop (PhrUtt NoPConj (UttS s) NoVoc) TEmpty ; --%  
+      mkText : Cl  ->  Text    -- She sleeps. 
+        = \c -> TFullStop (PhrUtt NoPConj (UttS (TUseCl TPres ASimul PPos c)) NoVoc) TEmpty ; --%  
+      mkText : QS  ->  Text    -- Did she sleep? 
+        = \q -> TQuestMark (PhrUtt NoPConj (UttQS q) NoVoc) TEmpty ;  --%
+      mkText : (Pol) -> Imp ->  Text    -- Don't sleep!
+        = \p,i -> TExclMark (PhrUtt NoPConj (UttImpSg p i) NoVoc) TEmpty; --%  
+      mkText : Imp ->  Text    -- Sleep! --%
+        = \i -> TExclMark (PhrUtt NoPConj (UttImpSg PPos i) NoVoc) TEmpty; --%  
+
+-- Finally, two texts can be combined into a text.
+
+      mkText : Text -> Text -> Text  -- Where? Here. When? Here. Now! 
+        = \t,u -> {s = t.s ++ u.s ; lock_Text = <>} ; --%
+      } ; --%
+
+-- A text can also be empty.
+
+      emptyText : Text  -- (empty text)  --:
+        = TEmpty ; --%
+
+--3 Punct: punctuation marks 
+
+-- There are three punctuation marks that can separate phrases in a text.
+
+      fullStopPunct  : Punct   -- .   --:
+        = PFullStop ; --%  
+      questMarkPunct : Punct   -- ?   --:
+        = PQuestMark ; --%
+      exclMarkPunct  : Punct   -- !   --:
+        = PExclMark ; --%
+
+-- Internally, they are handled with a parameter type. --%
+
+  param Punct = PFullStop | PExclMark | PQuestMark ;  --%
+
+  oper --%
+
+--3 Phr: phrases in a text 
+
+-- Phrases are built from utterances by adding a phrasal conjunction
+-- and a vocative, both of which are by default empty.
+
+    mkPhr = overload { --%
+      mkPhr : (PConj) -> Utt -> (Voc) -> Phr   -- but sleep, my friend  --: 
+      = PhrUtt ; --%
+      mkPhr : Utt -> Voc -> Phr -- come here John --%
+      = \u,v -> PhrUtt NoPConj u v ; --% 
+      mkPhr : PConj -> Utt -> Phr -- but come here --%
+      = \u,v -> PhrUtt u v NoVoc ; --%
+      mkPhr : Utt -> Phr   -- come here --%
+      = \u -> PhrUtt NoPConj u NoVoc   ;  --%
+
+-- A phrase can also be directly built by a sentence, a present-tense
+-- clause, a question, or a positive singular imperative. 
+
+      mkPhr : S -> Phr   -- she won't sleep
+         = \s -> PhrUtt NoPConj (UttS s) NoVoc ; --%  
+      mkPhr : Cl -> Phr   -- she sleeps
+         = \s -> PhrUtt NoPConj (UttS (TUseCl TPres ASimul PPos s)) NoVoc ; --%  
+      mkPhr : QS -> Phr   -- would she sleep  
+         =    \s -> PhrUtt NoPConj (UttQS s) NoVoc ;  --%
+      mkPhr : Imp -> Phr  -- sleep
+         =  \s -> PhrUtt NoPConj (UttImpSg PPos s) NoVoc --%   
+      } ; --%
+
+
+--3 PConj, phrasal conjunctions 
+
+-- Any conjunction can be used as a phrasal conjunction.
+-- More phrasal conjunctions are defined in $Structural$.
+
+      mkPConj : Conj -> PConj   -- and   --:
+        = PConjConj ; --%
+      noPConj : PConj --: --% 
+        = NoPConj ; --%
+
+
+--3 Voc, vocatives 
+
+-- Any noun phrase can be turned into a vocative.
+-- More vocatives are defined in $Structural$.
+
+    mkVoc : NP -> Voc  -- my friend   --:
+      = VocNP ; --% 
+    noVoc : Voc --% 
+      = NoVoc ; --% 
+
+
+--3 Utt, utterances 
+
+-- Utterances are formed from sentences, clauses, questions, and imperatives.
+
+    mkUtt = overload { 
+      mkUtt : S -> Utt                     -- she slept   --:  
+      = UttS ; --%  
+      mkUtt : Cl -> Utt                    -- she sleeps  
+      = \c -> UttS (TUseCl TPres ASimul PPos c) ; --%  
+      mkUtt : QS -> Utt                    -- who didn't sleep   --:
+      = UttQS   ; --%  
+      mkUtt : QCl -> Utt                   -- who sleeps  
+      = \c -> UttQS (TUseQCl TPres ASimul PPos c) ; --%  
+      mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt  -- don't be men   --: 
+      = mkUttImp  ; --%
+      mkUtt : ImpForm -> Imp -> Utt -- be men --% 
+      = \f -> mkUttImp f PPos ; --% 
+      mkUtt : Pol -> Imp -> Utt  -- don't be men --% 
+      = UttImpSg  ;  --%
+      mkUtt : Imp -> Utt  -- love yourself --%  
+      = UttImpSg PPos  ;  --%
+
+-- Utterances can also be formed from interrogative phrases and
+-- interrogative adverbials, noun phrases, adverbs, and verb phrases.
+
+      mkUtt : IP   -> Utt     -- who   --:
+      = UttIP    ; --%  
+      mkUtt : IAdv -> Utt     -- why   --:
+      = UttIAdv  ; --%  
+      mkUtt : NP   -> Utt     -- this man  --: 
+      = UttNP    ; --%  
+      mkUtt : Adv  -> Utt     -- here   --:
+      = UttAdv   ; --%  
+      mkUtt : VP   -> Utt     -- to sleep  --:
+      = UttVP ; --%  
+      mkUtt : CN   -> Utt     -- beer      --:
+      =    UttCN ; --% 
+      mkUtt : AP   -> Utt     -- good   --:
+      =    UttAP ; --%    
+      mkUtt : Card -> Utt     -- five   --:
+      =    UttCard ; --%  
+    } ; --%
+
+-- The plural first-person imperative is a special construction.
+
+      lets_Utt : VP ->  Utt  -- let's sleep    --:
+      = ImpPl1 ; --%
+
+
+--2 Auxiliary parameters for phrases and sentences 
+
+--3 Pol, polarity 
+
+-- Polarity is a parameter that sets a clause to positive or negative
+-- form. Since positive is the default, it need never be given explicitly.
+
+      positivePol : Pol   -- she sleeps [default]   --: 
+        = PPos ; --%
+      negativePol : Pol   -- she doesn't sleep    --:
+        = PNeg ; --%
+
+--3 Ant, anteriority 
+
+-- Anteriority is a parameter that presents an event as simultaneous or
+-- anterior to some other reference time.
+-- Since simultaneous is the default, it need never be given explicitly.
+
+      simultaneousAnt : Ant   -- she sleeps [default]   --: 
+        = ASimul ; --%
+      anteriorAnt : Ant   -- she has slept       --# notpresent  --: 
+        = AAnter ; --# notpresent --%
+
+--3 Tense, tense 
+
+-- Tense is a parameter that relates the time of an event 
+-- to the time of speaking about it.
+-- Since present is the default, it need never be given explicitly.
+
+      presentTense     : Tense  -- she sleeps [default]   --:
+        = TPres ; --% 
+      pastTense        : Tense  -- she slept           --# notpresent  --: 
+        = TPast ; --# notpresent --% 
+      futureTense      : Tense  -- she will sleep        --# notpresent  --:
+        = TFut ; --# notpresent --% 
+      conditionalTense : Tense  -- she would sleep       --# notpresent   --:
+        = TCond ; --# notpresent --% 
+
+--3 Temp, temporal and aspectual features
+
+-- Temp is a combination of Tense and Ant. In extra modules for some
+-- languages, it can also involve aspect and other things.
+
+      mkTemp : Tense -> Ant -> Temp -- e.g. past + anterior
+        = TTAnt ; --%
+
+--3 ImpForm, imperative form 
+
+-- Imperative form is a parameter that sets the form of imperative
+-- by reference to the person or persons addressed.
+-- Since singular is the default, it need never be given explicitly.
+
+      singularImpForm : ImpForm   -- be a man [default]   --:
+      = IFSg ;  --%
+      pluralImpForm   : ImpForm   -- be men  --:
+      = IFPl ;  --%
+      politeImpForm   : ImpForm   -- be a man [polite singular]  --:
+      = IFPol ;  --%
+
+-- This is how imperatives are implemented internally. --%
+
+  param ImpForm = IFSg | IFPl | IFPol ; --%
+
+  oper --%
+  mkUttImp : ImpForm -> Pol -> Imp -> Utt --%
+  = \f,p,i -> case f of { --%
+      IFSg  => UttImpSg p i ; --%
+      IFPl  => UttImpPl p i ; --%
+      IFPol => UttImpPol p i --%
+      } ; --%
+
+
+--2 Sentences and clauses 
+
+--3 S, sentences 
+
+-- A sentence has a fixed tense, anteriority and polarity.
+
+    mkS = overload {  --%
+      mkS : Cl  -> S  --%  
+      = TUseCl TPres ASimul PPos ;   --%    
+      mkS : Tense -> Cl -> S    --%  
+      = \t -> TUseCl t ASimul PPos ;   --%  
+      mkS : Ant -> Cl -> S   --%  
+      = \a -> TUseCl TPres a PPos ;   --%   
+      mkS : Pol -> Cl -> S    --%  
+      = \p -> TUseCl TPres ASimul p ;   --%    
+      mkS : Tense -> Ant -> Cl -> S   --%  
+      = \t,a -> TUseCl t a PPos ;   --%  
+      mkS : Tense -> Pol -> Cl -> S   --%  
+      = \t,p -> TUseCl t ASimul p ;   --%  
+      mkS : Ant -> Pol -> Cl -> S   --%  
+      = \a,p -> TUseCl TPres a p ;   --%  
+      mkS : (Tense) -> (Ant) -> (Pol) -> Cl  -> S -- she wouldn't have slept  --:
+      = \t,a -> TUseCl t a ;   --%  
+
+-- Sentences can be combined with conjunctions. This can apply to a pair
+-- of sentences, but also to a list of more than two.
+
+      mkS : Conj -> S -> S -> S   -- she sleeps and I run    
+      = \c,x,y -> ConjS c (BaseS x y) ; --% 
+      mkS : Conj -> ListS  -> S   -- she sleeps, I run and you walk  --:
+      = \c,xy -> ConjS c xy ; --% 
+
+-- A sentence can be prefixed by an adverb.
+
+      mkS : Adv -> S -> S           -- today, she sleeps   --:
+      = AdvS ; --%
+      } ; 
+
+--3 Cl, clauses 
+
+-- A clause has a variable tense, anteriority and polarity.
+-- A clause can be built from a subject noun phrase 
+-- with a verb, adjective, or noun, and appropriate arguments.
+
+    mkCl = overload { 
+
+      mkCl : NP -> V -> Cl                -- she sleeps   
+      = \s,v -> PredVP s (UseV v); --%   
+      mkCl : NP -> V2 -> NP -> Cl         -- she loves him
+      = \s,v,o -> PredVP s (ComplV2 v o); --%   
+      mkCl : NP -> V3 -> NP -> NP -> Cl   -- she sends it to him
+      = \s,v,o,i -> PredVP s (ComplV3 v o i); --%   
+      mkCl : NP  -> VV -> VP -> Cl        -- she wants to sleep
+        = \s,v,vp -> PredVP s (ComplVV v vp) ; --% 
+      mkCl : NP  -> VS -> S  -> Cl        -- she says that she sleeps
+        = \s,v,p -> PredVP s (ComplVS v p) ; --% 
+      mkCl : NP  -> VQ -> QS -> Cl        -- she wonders who sleeps
+        = \s,v,q -> PredVP s (ComplVQ v q) ; --% 
+      mkCl : NP  -> VA -> A -> Cl         -- she becomes old
+        = \s,v,q -> PredVP s (ComplVA v (PositA q)) ; --% 
+      mkCl : NP  -> VA -> AP -> Cl        -- she becomes very old
+        = \s,v,q -> PredVP s (ComplVA v q) ; --% 
+      mkCl : NP  -> V2A -> NP -> A -> Cl  -- she paints it red
+        = \s,v,n,q -> PredVP s (ComplV2A v n (PositA q)) ; --% 
+      mkCl : NP  -> V2A -> NP -> AP -> Cl -- she paints it very red
+        = \s,v,n,q -> PredVP s (ComplV2A v n q) ; --% 
+      mkCl : NP  -> V2S -> NP -> S -> Cl          -- she answers to him that we sleep
+        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2S v q) n) ; --% 
+      mkCl : NP  -> V2Q -> NP -> QS -> Cl         -- she asks him who sleeps 
+        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --% 
+      mkCl : NP  -> V2V -> NP -> VP -> Cl         -- she begs him to sleep
+        = \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --% 
+      mkCl : NP -> A  -> Cl    -- she is old
+        = \x,y -> PredVP x (UseComp (CompAP (PositA y))) ; --%   
+      mkCl : NP -> A -> NP -> Cl -- she is older than him   
+        = \x,y,z -> PredVP x (UseComp (CompAP (ComparA y z))) ; --% 
+      mkCl : NP -> A2 -> NP -> Cl -- she is married to him 
+	= \x,y,z -> PredVP x (UseComp (CompAP (ComplA2 y z))) ; --% 
+      mkCl : NP -> AP -> Cl    -- she is very old 
+	= \x,y -> PredVP x (UseComp (CompAP y)) ; --% 
+      mkCl : NP -> NP -> Cl    -- she is the woman   
+        = \x,y -> PredVP x (UseComp (CompNP y)) ; --%   
+      mkCl : NP -> N -> Cl    -- she is a woman   
+        = \x,y -> PredVP x (UseComp (CompCN (UseN y))) ; --% 
+      mkCl : NP -> CN -> Cl    -- she is an old woman   
+	= \x,y -> PredVP x (UseComp (CompCN y)) ; --%   
+      mkCl : NP -> Adv -> Cl   -- she is here   
+	= \x,y -> PredVP x (UseComp (CompAdv y)) ; --%   
+
+-- As the general rule, a clause can be built from a subject noun phrase and 
+-- a verb phrase.
+
+      mkCl : NP -> VP -> Cl   -- she always sleeps   --:
+      = PredVP  ; --%
+
+-- Existentials are a special form of clauses.
+
+      mkCl : N -> Cl           -- there is a house 
+      = \y -> ExistNP (DetArtSg IndefArt (UseN y)) ; --% 
+      mkCl : CN -> Cl          -- there is an old house 
+      = \y -> ExistNP (DetArtSg IndefArt y) ; --% 
+      mkCl : NP -> Cl          -- there are many houses   --:
+      = ExistNP ; --% 
+
+-- There are also special forms in which a noun phrase or an adverb is
+-- emphasized.
+
+      mkCl : NP  -> RS -> Cl   -- it is she who sleeps   --: 
+      = CleftNP    ; --% 
+      mkCl : Adv -> S  -> Cl   -- it is here that she sleeps    --:
+      = CleftAdv   ; --% 
+
+-- Subjectless verb phrases are used for impersonal actions.
+
+      mkCl : V -> Cl   -- it rains 
+      = \v -> ImpersCl (UseV v) ; --%
+      mkCl : VP -> Cl  -- it is raining    --:
+      = ImpersCl   ;  --%
+      mkCl : SC -> VP -> Cl  -- that she sleeps is good --:
+      = PredSCVP ; --%
+
+      } ; 
+
+-- Generic clauses are those with an impersonal subject.
+
+      genericCl : VP ->  Cl    -- one sleeps               
+      = GenericCl ; --%
+
+--2 Verb phrases and imperatives 
+
+--3 VP, verb phrases 
+
+-- A verb phrase is formed from a verb with appropriate arguments.
+
+    mkVP = overload { 
+      mkVP : V   -> VP                -- sleep --:
+      = UseV      ; --% 
+      mkVP : V2  -> NP -> VP          -- love him 
+      = ComplV2   ; --% 
+      mkVP : V3  -> NP -> NP -> VP    -- send a message to him 
+      = ComplV3   ; --% 
+      mkVP : VV  -> VP -> VP          -- want to sleep  --:
+      = ComplVV   ; --% 
+      mkVP : VS  -> S  -> VP          -- know that she sleeps  --: 
+      = ComplVS   ; --% 
+      mkVP : VQ  -> QS -> VP          -- wonder if she sleeps  --:
+      = ComplVQ   ; --% 
+      mkVP : VA  -> AP -> VP          -- become red  --:
+      = ComplVA   ; --% 
+      mkVP : V2A -> NP -> AP -> VP    -- paint it red 
+      = ComplV2A  ; --% 
+      mkVP : V2S -> NP -> S  -> VP         -- answer to him that we sleep 
+        = \v,n,q -> (ComplSlash (SlashV2S v q) n) ; --% 
+      mkVP : V2Q -> NP -> QS -> VP         -- ask him who sleeps
+        = \v,n,q -> (ComplSlash (SlashV2Q v q) n) ; --% 
+      mkVP : V2V -> NP -> VP -> VP         -- beg him to sleep
+        = \v,n,q -> (ComplSlash (SlashV2V v q) n) ; --% 
+
+-- The verb can also be a copula ("be"), and the relevant argument is
+-- then the complement adjective or noun phrase.
+
+      mkVP : A -> VP               -- be warm 
+      = \a -> UseComp (CompAP (PositA a)) ; --% 
+      mkVP : A -> NP -> VP         -- be older than him 
+      = \y,z -> (UseComp (CompAP (ComparA y z))) ; --% 
+      mkVP : A2 -> NP -> VP        -- be married to him 
+      = \y,z -> (UseComp (CompAP (ComplA2 y z))) ; --% 
+      mkVP : AP -> VP              -- be warm 
+      = \a -> UseComp (CompAP a)   ; --% 
+      mkVP : N -> VP               -- be a man 
+      = \y -> UseComp (CompCN (UseN y)) ; --% 
+      mkVP : CN -> VP              -- be an old man 
+      = \y -> UseComp (CompCN y) ; --% 
+      mkVP : NP -> VP              -- be the man 
+      = \a -> UseComp (CompNP a)   ; --% 
+      mkVP : Adv -> VP             -- be here 
+      = \a -> UseComp (CompAdv a)   ; --% 
+
+-- A verb phrase can be modified with a postverbal or a preverbal adverb.
+
+      mkVP : VP -> Adv -> VP          -- sleep here   --: 
+      = AdvVP     ; --% 
+      mkVP : AdV -> VP -> VP          -- always sleep   --:
+      = AdVVP ; --% 
+
+-- Objectless verb phrases can be taken to verb phrases in two ways.
+
+      mkVP : VPSlash -> NP -> VP      -- paint it black  --:
+      = ComplSlash ; --% 
+      mkVP : VPSlash -> VP            -- paint itself black --:
+        = ReflVP ; --%
+
+      mkVP : Comp -> VP               -- be warm --:
+        = UseComp ; --%
+
+      } ; --% 
+
+-- Two-place verbs can be used reflexively, and VPSlash more generally.
+    reflexiveVP = overload { --%
+      reflexiveVP : V2 -> VP        -- love itself 
+      = \v -> ReflVP (SlashV2a v) ; --% 
+      reflexiveVP : VPSlash -> VP   -- paint itself black
+        = ReflVP ; --%
+      } ; --%
+
+
+-- Two-place verbs can also be used in the passive, with or without an agent.
+
+    passiveVP = overload { --%
+      passiveVP : V2 ->       VP   -- be loved
+      = PassV2 ; --%  
+      passiveVP : V2 -> NP -> VP   -- be loved by her 
+      = \v,np -> (AdvVP (PassV2 v) (PrepNP by8agent_Prep np)) ; --%
+      -- passiveVP : VPSlash -> VP --: --%
+
+      } ; --% 
+
+-- A verb phrase can be turned into the progressive form.
+
+      progressiveVP : VP -> VP   -- be sleeping 
+      = ProgrVP ; --%
+
+--3 Comp, verb phrase complements
+
+   mkComp = overload { --%
+     mkComp : AP -> Comp -- very old --:
+     = CompAP ; --%
+     mkComp : NP -> Comp -- this man --:
+     = CompNP ; --%
+     mkComp : Adv -> Comp -- here --:
+     = CompAdv ; --%
+     } ; --%
+
+--3 SC, embedded sentence
+
+   mkSC = overload { --%
+     mkSC : S -> SC -- that he sleeps --:
+     = EmbedS ; --%
+     mkSC : QS -> SC -- whether he sleeps --:
+     = EmbedQS ; --%
+     mkSC : VP -> SC -- to sleep --:
+     = EmbedVP ; --%
+     } ; --%
+
+
+--3 Imp, imperatives 
+
+-- Imperatives are formed from verbs and their arguments; as the general
+-- rule, from verb phrases.
+
+    mkImp = overload {  --%
+      mkImp : VP -> Imp                -- come to my house
+      = ImpVP      ;  --%
+      mkImp : V  -> Imp                -- come
+      = \v -> ImpVP (UseV v)  ;   --%
+      mkImp : V2 -> NP -> Imp          -- buy it
+      = \v,np -> ImpVP (ComplV2 v np) ; --%
+      } ;  --%
+
+
+--2 Noun phrases and determiners 
+
+--3 NP, noun phrases 
+
+-- A noun phrases can be built from a determiner and a common noun ($CN$) .
+-- For determiners, the special cases of quantifiers, numerals, integers, 
+-- and possessive pronouns are provided. For common nouns, the 
+-- special case of a simple common noun ($N$) is always provided.
+
+    mkNP = overload { 
+      mkNP : Quant -> N  -> NP          -- this man
+          = \q,n -> DetCN (DetQuant q NumSg) (UseN n) ; --%   
+      mkNP : Quant -> CN -> NP          -- this old man
+          = \q,n -> DetCN (DetQuant q NumSg) n ; --%   
+      mkNP : Quant -> Num -> CN -> NP   -- these five old men
+          = \q,nu,n -> DetCN (DetQuant q nu) n ; --%  
+      mkNP : Quant -> Num -> N  -> NP   -- these five men
+          = \q,nu,n -> DetCN (DetQuant q nu) (UseN n) ; --%  
+      mkNP : Det -> CN -> NP      -- the first old man   --:
+          =  DetCN    ; --%   
+      mkNP : Det -> N -> NP       -- the first man   
+          =  \d,n -> DetCN d (UseN n)   ; --%   
+      mkNP : Numeral -> CN -> NP      -- fifty old men   
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral d)) n ; --%  
+      mkNP : Numeral -> N -> NP       -- fifty men  
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral d)) (UseN n) ; --%  
+      mkNP : Digits -> CN -> NP      -- 51 old men 
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumDigits d)) n ; --% 
+      mkNP : Digits -> N -> NP       -- 51 men 
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumDigits d)) (UseN n) ; --% 
+      mkNP : Digit -> CN -> NP    ---- obsol --% 
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))))) n ; --% 
+      mkNP : Digit -> N -> NP     ---- obsol --% 
+	  = \d,n -> DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))))) (UseN n) ; --% 
+      mkNP : Card -> CN -> NP     -- forty-five old men   
+	  =  \d,n -> DetCN (DetArtCard IndefArt d) n ; --%   
+      mkNP : Card -> N -> NP       -- forty-five men   
+	  =  \d,n -> DetCN (DetArtCard IndefArt d) (UseN n) ; --%   
+      mkNP : Pron -> CN -> NP   -- my old man
+          = \p,n -> DetCN (DetQuant (PossPron p) NumSg) n ; --% 
+      mkNP : Pron -> N  -> NP   -- my man
+          = \p,n -> DetCN (DetQuant (PossPron p) NumSg) (UseN n) ; --% 
+
+-- Proper names and pronouns can be used as noun phrases.
+
+      mkNP : PN -> NP             -- she  --:
+      = UsePN    ; --%  
+      mkNP : Pron -> NP           -- he  --:
+      = UsePron  ; --%  
+
+-- Determiners alone can form noun phrases.
+
+      mkNP : Quant -> NP           -- this  
+          =  \q -> DetNP (DetQuant q sgNum) ; --%  
+      mkNP : Quant -> Num -> NP    -- these five  
+          =  \q,n -> DetNP (DetQuant q n) ; --%  
+      mkNP : Det -> NP             -- these five best  --:
+          =  DetNP ; --% 
+
+-- Determinesless mass noun phrases.
+
+      mkNP : CN -> NP  -- old beer   --:
+          = MassNP ; --%   
+      mkNP : N -> NP  -- beer   
+          = \n -> MassNP (UseN n) ; --%   
+
+-- A noun phrase once formed can be prefixed by a predeterminer and
+-- suffixed by a past participle or an adverb.
+
+      mkNP : Predet -> NP -> NP  -- only the man --:  
+      = PredetNP  ; --%  
+      mkNP : NP -> V2  -> NP     -- the man seen --:
+      = PPartNP  ; --% 
+      mkNP : NP -> Adv -> NP     -- Paris today --:
+      = AdvNP ; --% 
+      mkNP : NP -> RS -> NP      -- John, who walks --:
+      = RelNP ; --% 
+
+-- A conjunction can be formed both from two noun phrases and a longer
+-- list of them.
+
+      mkNP : Conj -> NP -> NP -> NP 
+      = \c,x,y -> ConjNP c (BaseNP x y) ; --% 
+      mkNP : Conj -> ListNP -> NP --: 
+      = \c,xy -> ConjNP c xy ; --% 
+
+-- backward compat --%
+      mkNP : QuantSg -> CN -> NP --%  
+          = \q,n -> DetCN (DetQuant q NumSg) n ; --% 
+      mkNP : QuantPl -> CN -> NP  --%
+          = \q,n -> DetCN (DetQuant q NumPl) n ; --% 
+
+      } ; --% 
+
+-- Pronouns can be used as noun phrases.
+
+      i_NP : NP          -- I
+      = mkNP i_Pron ;
+      you_NP : NP        -- you (singular)
+      = mkNP youSg_Pron ;
+      youPol_NP : NP     -- you (polite singular)
+      = mkNP youPol_Pron ;
+      he_NP : NP         -- he
+      = mkNP he_Pron ;
+      she_NP : NP        -- she
+      = mkNP she_Pron ;
+      it_NP : NP         -- it
+      = mkNP it_Pron ;
+      we_NP : NP         -- we
+      = mkNP we_Pron ;
+      youPl_NP : NP      -- you (plural)
+      = mkNP youPl_Pron ;
+      they_NP : NP       -- they
+      = mkNP they_Pron ;
+
+    this_NP : NP -- this
+    = DetNP (DetQuant this_Quant sgNum) ;  --% 
+    that_NP : NP -- that 
+    = DetNP (DetQuant that_Quant sgNum) ;  --% 
+    these_NP : NP 
+    = DetNP (DetQuant this_Quant plNum) ;  --% 
+    those_NP : NP 
+    = DetNP (DetQuant that_Quant plNum) ;  --% 
+
+
+--3 Det, determiners 
+
+-- A determiner is either a singular or a plural one.
+-- Quantifiers that have both singular and plural forms are by default used as
+-- singular determiners. If a numeral is added, the plural form is chosen.
+-- A determiner also has an optional ordinal.
+
+    mkDet = overload { --%
+
+      mkDet : Quant ->  Det       -- this  
+        = \q -> DetQuant q NumSg  ; --%  
+      mkDet : Quant -> Card -> Det   -- these five
+        = \d,nu -> (DetQuant d (NumCard nu)) ; --% 
+      mkDet : Quant ->  Ord -> Det     -- the best
+        = \q,o -> DetQuantOrd q NumSg o  ; --% 
+      mkDet : Quant -> Num -> Ord -> Det  -- these five best --: 
+        = DetQuantOrd  ; --% 
+      mkDet : Quant -> Num -> Det -- these five  --:
+        = DetQuant ; --%  
+
+-- Numerals, their special cases integers and digits, and possessive pronouns can be
+-- used as determiners.
+
+      mkDet : Card ->  Det     -- forty  
+	= DetArtCard IndefArt ; --%  
+      mkDet : Digits -> Det    -- 51
+	= \d -> DetArtCard IndefArt (NumDigits d) ; --% 
+      mkDet : Numeral -> Det  -- five 
+	= \d -> DetArtCard IndefArt (NumNumeral d) ; --%  
+      mkDet : Pron -> Det     -- my
+        = \p -> DetQuant (PossPron p) NumSg ; --% 
+      mkDet : Pron -> Num -> Det -- my five
+        = \p -> DetQuant (PossPron p) ; --% 
+
+      } ; --% 
+
+
+      the_Det   : Det -- the (house)
+        = theSg_Det ; --% 
+      a_Det     : Det -- a (house)
+        = aSg_Det ; --% 
+      theSg_Det : Det -- the (houses)
+        = DetQuant DefArt NumSg ; --% 
+      thePl_Det : Det -- the (houses)
+        = DetQuant DefArt NumPl ; --% 
+      aSg_Det   : Det -- a (house)
+        = DetQuant IndefArt NumSg ; --% 
+      aPl_Det   : Det -- (houses)
+        = DetQuant IndefArt NumPl ; --% 
+      this_Det : Det 
+      = (DetQuant this_Quant sgNum) ; --% 
+      that_Det : Det 
+      = (DetQuant that_Quant sgNum) ; --% 
+      these_Det : Det 
+      = (DetQuant this_Quant plNum) ; --% 
+      those_Det : Det 
+      = (DetQuant that_Quant plNum) ; --% 
+
+
+
+--3 Quant, quantifiers 
+
+-- There are definite and indefinite articles.
+
+    mkQuant = overload { --%
+      mkQuant : Pron -> Quant   -- my  --:
+      = PossPron ; --% 
+      } ; --% 
+
+    the_Quant : Quant    -- the --:
+      = DefArt ; --% 
+    a_Quant   : Quant    -- a  --:
+      = IndefArt ; --%
+
+--3 Num, cardinal numerals  
+
+-- Numerals can be formed from number words ($Numeral$), their special case digits,
+-- and from symbolic integers.
+
+    mkNum = overload { --%  
+      mkNum : Str -> Num   -- thirty-five (given by "35"; range 1-999) 
+        = \s -> NumCard (str2card s) ; --%
+      mkNum : Numeral -> Num  -- twenty  
+        = \d -> NumCard (NumNumeral d) ; --%  
+      mkNum : Digits -> Num   -- 21 
+        = \d -> NumCard (NumDigits d)      ; --% 
+      mkNum : Digit -> Num -- five
+        = \d -> NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d)))))) ; --% 
+      mkNum : Card -> Num  -- almost ten --:
+        = NumCard ; --%  
+
+-- A numeral can be modified by an adnumeral.
+
+      mkNum : AdN -> Card -> Num  -- almost ten
+        = \a,c -> NumCard (AdNum a c) 
+      } ; --%  
+
+-- Dummy numbers are sometimes to select the grammatical number of a determiner.
+
+      singularNum : Num              -- singular --:
+      = NumSg       ; --% 
+      pluralNum : Num                -- plural --:
+      = NumPl       ; --% 
+
+
+-- Cardinals are the non-dummy numerals.
+
+    mkCard = overload {  --%
+      mkCard : Str -> Card   -- thirty-five (given as "35"; range 1-999) 
+        = str2card ; --%
+      mkCard : Numeral -> Card   -- twenty  --:
+        = NumNumeral ; --%  
+      mkCard : Digits -> Card      -- 51  --:
+        = NumDigits ; --%  
+      mkCard : AdN -> Card -> Card  -- almost fifty
+        = AdNum ; --%
+      } ; --%
+
+--3 Ord, ordinal numerals 
+
+-- Just like cardinals, ordinals can be formed from number words ($Numeral$)
+-- and from symbolic integers.
+
+    mkOrd = overload { --% 
+      mkOrd : Numeral -> Ord   -- twentieth  --:
+      = OrdNumeral ; --% 
+      mkOrd : Digits -> Ord         -- 51st --:
+      = OrdDigits      ; --% 
+      mkOrd : Digit -> Ord       -- fifth 
+      = \d -> OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))) ; --% 
+
+-- Also adjectives in the superlative form can appear on ordinal positions.
+
+      mkOrd : A -> Ord           -- largest  --:
+      = OrdSuperl ; --% 
+      } ; --% 
+
+
+--3 AdN, adnumerals 
+
+-- Comparison adverbs can be used as adnumerals.
+
+      mkAdN : CAdv -> AdN  -- more than --: 
+      = AdnCAdv ; --%
+
+--3 Numeral, number words 
+
+-- Numerals are divided to classes Sub1000000 (= Numeral), Sub1000, Sub100, Sub10.
+
+    mkNumeral = overload {  --%       
+
+-- Number words up to 999,999 can be built as follows.
+
+      mkNumeral : Unit -> Numeral -- eight (coerce 1..9) --: 
+      = \n -> num (pot2as3 (pot1as2 (pot0as1 n.n))) ; --%
+      mkNumeral : Sub100 -> Numeral -- twenty-five (coerce 1..99) --: 
+      = \n -> num (pot2as3 (pot1as2 n)) ; --%
+      mkNumeral : Sub1000 -> Numeral -- six hundred (coerce 1..999) --: 
+      = \n -> num (pot2as3 n) ; --%
+      mkNumeral : Sub1000 -> Sub1000 -> Numeral -- 1000m + n --: 
+      = \m,n -> num (pot3plus m n) ; --%
+
+-- Some numerals can also be extracted from strings at compile time.
+
+      mkNumeral : Str -> Numeral   -- thirty-five (given by "35"; range 1-999)  
+      = str2numeral ; --% 
+      } ; --%      
+
+    thousandfoldNumeral : Sub1000 -> Numeral -- 1000n  --:
+      = \n -> num (pot3 n) ;  --%
+
+    mkSub1000 = overload {  --% 
+      mkSub1000 : Sub100 -> Sub1000 -- coerce 1..99  --:
+      = pot1as2 ; --% 
+      mkSub1000 : Unit -> Sub1000 -- 100n  --:
+      = \n -> pot2 n.n ; --% 
+      mkSub1000 : Unit -> Sub100 -> Sub1000 -- 100m + n  --:
+      = \m,n -> pot2plus m.n n ; --% 
+      } ; --%
+
+    mkSub100 = overload {  --% 
+      mkSub100 : Unit -> Sub100            -- coerce 1..9  --:
+      = \n -> pot0as1 n.n ; --% 
+      mkSub100 : Unit -> Unit -> Sub100    -- 10m + n  --:
+      = \m,n -> case m.isOne of {
+         Predef.PFalse => pot1plus m.d n.n ; --%
+         _ => case n.isOne of { 
+            Predef.PFalse => pot1to19 n.d ; --%
+            _ => pot111
+            }
+         }
+      } ; --%
+
+    tenfoldSub100 : Unit -> Sub100 -- 10n  --:
+      = \n -> case n.isOne of {  --%
+        Predef.PTrue => pot110 ; --%
+        _ => pot1 n.d  --%
+        } ; --%
+
+-- We introduce the internal type $Unit$ for 1..9
+
+    Unit : Type --%
+      = {n : Sub10 ; d : Digit ; isOne : Predef.PBool} ; --%
+
+    n1_Unit : Unit -- one --:
+      = {n = pot01 ; d = n2 ; isOne = Predef.PTrue} ; --%
+    n2_Unit : Unit -- two --: 
+      = {n = pot0 n2 ; d = n2 ; isOne = Predef.PFalse} ; --%
+    n3_Unit : Unit -- three --: 
+      = {n = pot0 n3 ; d = n3 ; isOne = Predef.PFalse} ; --%
+    n4_Unit : Unit -- four --: 
+      = {n = pot0 n4 ; d = n4 ; isOne = Predef.PFalse} ; --%
+    n5_Unit : Unit -- five --: 
+      = {n = pot0 n5 ; d = n5 ; isOne = Predef.PFalse} ; --%
+    n6_Unit : Unit -- six --: 
+      = {n = pot0 n6 ; d = n6 ; isOne = Predef.PFalse} ; --%
+    n7_Unit : Unit -- seven --: 
+      = {n = pot0 n7 ; d = n7 ; isOne = Predef.PFalse} ; --%
+    n8_Unit : Unit -- eight --: 
+      = {n = pot0 n8 ; d = n8 ; isOne = Predef.PFalse} ; --%
+    n9_Unit : Unit -- nine --: 
+      = {n = pot0 n9 ; d = n9 ; isOne = Predef.PFalse} ; --%
+
+-- Use the category $Digits$ for numbers above one million.
+
+
+--3 Digits, numerals as sequences of digits
+
+   mkDigits = overload { --%
+      mkDigits : Str -> Digits -- 35 (from string "35"; ; range 1-9999999)
+      = str2digits ; --% 
+      mkDigits : Dig -> Digits -- 4  --:
+      = IDig ; --%  
+      mkDigits : Dig -> Digits -> Digits -- 1,233,432  --:
+      = IIDig ; --%  
+      } ; --% 
+
+--3 Dig, single digits 
+
+      n0_Dig : Dig   -- 0 --: 
+      = D_0 ; --% 
+      n1_Dig : Dig   -- 1 --: 
+      = D_1 ; --% 
+      n2_Dig : Dig   -- 2 --:  
+      = D_2 ; --% 
+      n3_Dig : Dig   -- 3 --:     
+      = D_3 ; --% 
+      n4_Dig : Dig   -- 4 --: 
+      = D_4 ; --% 
+      n5_Dig : Dig   -- 5 --:     
+      = D_5 ; --% 
+      n6_Dig : Dig   -- 6 --:     
+      = D_6 ; --% 
+      n7_Dig : Dig   -- 7 --:          
+      = D_7 ; --% 
+      n8_Dig : Dig   -- 8 --:     
+      = D_8 ; --% 
+      n9_Dig : Dig   -- 9 --: 
+      = D_9 ; --% 
+      
+--2 Nouns 
+
+--3 CN, common noun phrases 
+
+    mkCN = overload { --%
+
+-- The simplest way of forming common noun phrases is from atomic nouns $N$.
+
+      mkCN : N  -> CN            -- house  --:
+      = UseN     ; --%  
+
+-- Common noun phrases can be formed from relational nouns by providing arguments.
+
+      mkCN : N2 -> NP -> CN      -- mother of John  --: 
+      = ComplN2  ; --% 
+      mkCN : N3 -> NP -> NP -> CN      -- distance from this city to Paris --:
+      = \f,x -> ComplN2 (ComplN3 f x)  ; --% 
+
+-- Relational nouns can also be used without their arguments.
+
+      mkCN : N2 -> CN            -- mother 
+      = UseN2    ; --% 
+      mkCN : N3 -> CN            -- distance 
+      = \n -> UseN2 (Use2N3 n)    ; --% 
+
+-- A common noun phrase can be modified by an adjectival phrase. We give special 
+-- cases of this, where one or both of the arguments are atomic.
+
+
+      mkCN :  A ->  N  -> CN     -- big house  
+      = \x,y -> AdjCN (PositA x) (UseN y); --%  
+      mkCN :  A -> CN  -> CN     -- big blue house  
+      = \x,y -> AdjCN (PositA x) y; --%  
+      mkCN : AP ->  N  -> CN     -- very big house  
+      = \x,y -> AdjCN x (UseN y) ; --%  
+      mkCN : AP -> CN  -> CN     -- very big blue house  
+      = AdjCN    ; --%  
+      mkCN : CN -> AP  -> CN     -- very big blue house --: --%
+      = \x,y -> AdjCN y x    ; --% 
+      mkCN :  N -> AP  -> CN     -- very big house --%
+      = \x,y -> AdjCN y (UseN x)    ; --% 
+
+-- A common noun phrase can be modified by a relative clause or an adverb.
+
+      mkCN :  N -> RS  -> CN     -- house that she owns 
+      = \x,y -> RelCN (UseN x) y   ; --% 
+      mkCN : CN -> RS  -> CN     -- big house that she loves --:
+      = RelCN    ; --% 
+      mkCN :  N -> Adv -> CN     -- house on the hill 
+      = \x,y -> AdvCN (UseN x) y  ; --% 
+      mkCN : CN -> Adv -> CN     -- big house on the hill 
+      = AdvCN    ; --% 
+
+-- For some nouns it makes sense to modify them by sentences, 
+-- questions, or infinitives. But syntactically this is possible for
+-- all nouns.
+
+      mkCN : CN -> S   -> CN     -- rule that she sleeps 
+      = \cn,s -> SentCN cn (EmbedS s) ; --% 
+      mkCN : CN -> QS  -> CN     -- question if she sleeps 
+      = \cn,s -> SentCN cn (EmbedQS s) ; --% 
+      mkCN : CN -> VP  -> CN     -- reason to sleep 
+      = \cn,s -> SentCN cn (EmbedVP s) ; --% 
+      mkCN : CN -> SC  -> CN     -- reason to sleep --: 
+      = \cn,s -> SentCN cn s ; --% 
+
+-- A noun can be used in apposition to a noun phrase, especially a proper name.
+
+      mkCN :  N -> NP  -> CN     -- king John 
+      = \x,y -> ApposCN (UseN x) y ; --% 
+      mkCN : CN -> NP  -> CN     -- old king John
+      = ApposCN ; --% 
+      } ; --%  
+
+
+--2 Adjectives and adverbs 
+
+--3 AP, adjectival phrases 
+
+    mkAP = overload { --%
+
+-- Adjectival phrases can be formed from atomic adjectives by using the positive form or
+-- the comparative with a complement
+
+      mkAP : A -> AP           -- warm   --:
+      = PositA   ; --%   
+      mkAP : A -> NP -> AP     -- warmer than Paris --:   
+      = ComparA  ; --%   
+
+-- Relational adjectives can be used with a complement or a reflexive
+
+      mkAP : A2 -> NP -> AP    -- married to her --:
+      = ComplA2  ; --% 
+      mkAP : A2 -> AP          -- married --:
+      = UseA2   ; --% 
+
+-- Some adjectival phrases can take as complements sentences, 
+-- questions, or infinitives. Syntactically this is possible for
+-- all adjectives.
+
+      mkAP : AP -> S -> AP    -- probable that she sleeps  
+      =  \ap,s -> SentAP ap (EmbedS s) ; --% 
+      mkAP : AP -> QS -> AP    -- uncertain if she sleeps  
+      =  \ap,s -> SentAP ap (EmbedQS s) ; --% 
+      mkAP : AP -> VP -> AP    -- ready to go 
+      =  \ap,s -> SentAP ap (EmbedVP s) ; --% 
+      mkAP : AP -> SC -> AP    -- ready to go --: 
+      =  \ap,s -> SentAP ap s ; --% 
+
+-- An adjectival phrase can be modified by an adadjective.
+
+      mkAP : AdA -> A -> AP   -- very old
+      =\x,y -> AdAP x (PositA y) ; --%
+      mkAP : AdA -> AP -> AP   -- very very old  --:
+      = AdAP ; --%
+
+-- Conjunction can be formed from two or more adjectival phrases.
+
+      mkAP : Conj -> AP -> AP -> AP -- old and big 
+      = \c,x,y -> ConjAP c (BaseAP x y) ; --% 
+      mkAP : Conj -> ListAP -> AP   -- old, big and warm --:
+      = \c,xy -> ConjAP c xy ; --% 
+
+-- Two more constructions.
+
+      mkAP : Ord   -> AP              -- oldest 
+      = AdjOrd ; --%
+      mkAP : CAdv -> AP -> NP -> AP   -- as old as she
+      = CAdvAP ; --%
+      } ; --% 
+
+      reflAP   : A2 -> AP             -- married to himself --:
+      = ReflA2 ; --% 
+      comparAP : A -> AP              -- warmer 
+      = UseComparA ; --%
+
+--3 Adv, adverbial phrases 
+
+    mkAdv = overload { --%
+
+-- Adverbs can be formed from adjectives.
+
+      mkAdv : A -> Adv            -- warmly   --:
+      = PositAdvAdj  ; --%   
+
+-- Prepositional phrases are treated as adverbs.
+
+      mkAdv : Prep -> NP -> Adv          -- in the house --:   
+      = PrepNP       ; --%   
+
+-- Subordinate sentences are treated as adverbs.
+
+      mkAdv : Subj -> S -> Adv   -- when she sleeps  --:
+      = SubjS ; --% 
+
+-- An adjectival adverb can be compared to a noun phrase or a sentence.
+
+      mkAdv : CAdv -> A -> NP -> Adv   -- more warmly than she --: 
+      = ComparAdvAdj   ; --% 
+      mkAdv : CAdv -> A -> S -> Adv    -- more warmly than he runs --:
+      = ComparAdvAdjS  ; --% 
+
+-- Adverbs can be modified by adadjectives.
+
+      mkAdv : AdA -> Adv -> Adv        -- very warmly --:
+      = AdAdv   ; --% 
+
+-- Conjunction can be formed from two or more adverbial phrases.
+
+      mkAdv : Conj -> Adv -> Adv -> Adv  -- here and now
+      = \c,x,y -> ConjAdv c (BaseAdv x y) ; --% 
+      mkAdv : Conj -> ListAdv -> Adv   -- with John, here and now --: 
+      = \c,xy -> ConjAdv c xy ; --% 
+      } ; --% 
+
+
+--2 Questions and relatives 
+
+--3 QS, question sentences 
+
+    mkQS = overload { --%
+
+-- Just like a sentence $S$ is built from a clause $Cl$, 
+-- a question sentence $QS$ is built from
+-- a question clause $QCl$ by fixing tense, anteriority and polarity. 
+-- Any of these arguments can be omitted, which results in the 
+-- default (present, simultaneous, and positive, respectively).
+
+      mkQS : QCl  -> QS  --%
+      = TUseQCl TPres ASimul PPos ; --%  
+      mkQS : Tense -> QCl -> QS  --%  
+      =  \t -> TUseQCl t ASimul PPos ; --% 
+      mkQS : Ant -> QCl -> QS  --%
+      = \a -> TUseQCl TPres a PPos ; --% 
+      mkQS : Pol -> QCl -> QS  --%
+      = \p -> TUseQCl TPres ASimul p ; --%  
+      mkQS : Tense -> Ant -> QCl -> QS --%
+      = \t,a -> TUseQCl t a PPos ; --% 
+      mkQS : Tense -> Pol -> QCl -> QS --%
+      = \t,p -> TUseQCl t ASimul p ; --% 
+      mkQS : Ant -> Pol -> QCl -> QS --%
+      = \a,p -> TUseQCl TPres a p ; --% 
+      mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS -- who wouldn't have slept 
+      = TUseQCl ; --%
+
+-- Since 'yes-no' question clauses can be built from clauses (see below), 
+-- we give a shortcut
+-- for building a question sentence directly from a clause, using the defaults
+-- present, simultaneous, and positive.
+
+      mkQS : Cl -> QS                    
+      = \x -> TUseQCl TPres ASimul PPos (QuestCl x) ; --%  
+      } ; --% 
+
+
+--3 QCl, question clauses 
+
+    mkQCl = overload { --%
+
+-- 'Yes-no' question clauses are built from 'declarative' clauses.
+
+      mkQCl : Cl -> QCl -- does she sleep  --:  
+      = QuestCl ; --%  
+ 
+-- 'Wh' questions are built from interrogative pronouns in subject 
+-- or object position. The former uses a verb phrase; we don't give
+-- shortcuts for verb-argument sequences as we do for clauses.
+-- The latter uses the 'slash' category of objectless clauses 
+-- (see below); we give the common special case with a two-place verb.
+
+      mkQCl : IP -> VP -> QCl               -- who sleeps  --:    
+      = QuestVP ; --%  
+      mkQCl : IP -> V -> QCl                -- who sleeps   
+      = \s,v -> QuestVP s (UseV v); --%   
+      mkQCl : IP -> V2 -> NP -> QCl         -- who loves her
+      = \s,v,o -> QuestVP s (ComplV2 v o); --%   
+      mkQCl : IP -> V3 -> NP -> NP -> QCl   -- who sends it to her
+      = \s,v,o,i -> QuestVP s (ComplV3 v o i); --%   
+      mkQCl : IP  -> VV -> VP -> QCl        -- who wants to sleep
+        = \s,v,vp -> QuestVP s (ComplVV v vp) ; --% 
+      mkQCl : IP  -> VS -> S  -> QCl        -- who says that she sleeps
+        = \s,v,p -> QuestVP s (ComplVS v p) ; --% 
+      mkQCl : IP  -> VQ -> QS -> QCl        -- who wonders who sleeps
+        = \s,v,q -> QuestVP s (ComplVQ v q) ; --% 
+      mkQCl : IP  -> VA -> A -> QCl        -- who becomes old
+        = \s,v,q -> QuestVP s (ComplVA v (PositA q)) ; --% 
+      mkQCl : IP  -> VA -> AP -> QCl        -- who becomes old
+        = \s,v,q -> QuestVP s (ComplVA v q) ; --% 
+      mkQCl : IP  -> V2A -> NP -> A -> QCl -- who paints it red
+        = \s,v,n,q -> QuestVP s (ComplV2A v n (PositA q)) ; --% 
+      mkQCl : IP  -> V2A -> NP -> AP -> QCl -- who paints it red
+        = \s,v,n,q -> QuestVP s (ComplV2A v n q) ; --% 
+      mkQCl : IP  -> V2S -> NP -> S -> QCl          -- who tells her that we sleep
+        = \s,v,n,q -> QuestVP s (ComplSlash (SlashV2S v q) n) ; --% 
+      mkQCl : IP  -> V2Q -> NP -> QS -> QCl         -- who asks her who sleeps 
+        = \s,v,n,q -> QuestVP s (ComplSlash (SlashV2Q v q) n) ; --% 
+      mkQCl : IP  -> V2V -> NP -> VP -> QCl         -- who forces her to sleep
+        = \s,v,n,q -> QuestVP s (ComplSlash (SlashV2V v q) n) ; --% 
+      mkQCl : IP -> A  -> QCl    -- who is old
+        = \x,y -> QuestVP x (UseComp (CompAP (PositA y))) ; --%   
+      mkQCl : IP -> A -> NP -> QCl -- who is older than her   
+        = \x,y,z -> QuestVP x (UseComp (CompAP (ComparA y z))) ; --% 
+      mkQCl : IP -> A2 -> NP -> QCl -- who is married to her 
+	= \x,y,z -> QuestVP x (UseComp (CompAP (ComplA2 y z))) ; --% 
+      mkQCl : IP -> AP -> QCl    -- who is very old 
+	= \x,y -> QuestVP x (UseComp (CompAP y)) ; --% 
+      mkQCl : IP -> NP -> QCl    -- who is the man   
+        = \x,y -> QuestVP x (UseComp (CompNP y)) ; --%   
+      mkQCl : IP -> N -> QCl    -- who is a man   
+        = \x,y -> QuestVP x (UseComp (CompCN (UseN y))) ; --%   
+      mkQCl : IP -> CN -> QCl    -- who is an old man   
+	= \x,y -> QuestVP x (UseComp (CompCN y)) ; --%   
+      mkQCl : IP -> Adv -> QCl   -- who is here   
+	= \x,y -> QuestVP x (UseComp (CompAdv y)) ; --%   
+      mkQCl : IP -> NP -> V2 -> QCl        -- who does she love 
+      = \ip,np,v -> QuestSlash ip (SlashVP np (SlashV2a v)) ; --%
+      mkQCl : IP -> ClSlash -> QCl         -- who does she love today   --:   
+      = QuestSlash   ; --% 
+
+-- Adverbial 'wh' questions are built with interrogative adverbials, with the
+-- special case of prepositional phrases with interrogative pronouns.
+
+      mkQCl : IAdv -> Cl -> QCl            -- why does she sleep   --:  
+      = QuestIAdv    ; --%  
+      mkQCl : Prep -> IP -> Cl -> QCl      -- with whom does she sleep 
+      = \p,ip -> QuestIAdv (PrepIP p ip)  ; --% 
+
+-- An interrogative adverbial can serve as the complement of a copula.
+
+      mkQCl : IAdv -> NP -> QCl   -- where is she 
+      = \a -> QuestIComp (CompIAdv a)   ; --% 
+
+-- Asking about a known subject.
+
+      mkQCl : IComp -> NP -> QCl   -- who is this man  --:  
+      = \a -> QuestIComp a   ; --% 
+
+-- Existentials are a special construction.
+
+      mkQCl : IP -> QCl         -- which cities are there  --:  
+      = ExistIP ; --% 
+      } ; --% 
+
+
+--3 IComp, interrogative complements
+
+    mkIComp = overload { --%
+      mkIComp : IAdv -> IComp  -- where (is it) --:
+      = CompIAdv ; --%
+      mkIComp : IP -> IComp    -- who (is it) --:
+      = CompIP ; --%
+      } ; --% 
+
+--3 IP, interrogative pronouns 
+
+    mkIP = overload { --%
+
+-- Interrogative pronouns 
+-- can be formed much like noun phrases, by using interrogative quantifiers.
+
+      mkIP : IDet -> CN -> IP          -- which five big cities  --:  
+      = IdetCN ; --% 
+      mkIP : IDet -> N -> IP      -- which five cities
+      = \i,n -> IdetCN i (UseN n)  ; --% 
+      mkIP : IDet -> IP      -- which five --:
+      = IdetIP  ; --% 
+      mkIP : IQuant -> CN -> IP    -- which big city
+                     =  \i,n -> IdetCN (IdetQuant i NumSg) n ; --%  
+      mkIP : IQuant -> Num -> CN -> IP          -- which five big cities 
+                     =  \i,nu,n -> IdetCN (IdetQuant i nu) n ; --% 
+      mkIP : IQuant -> N -> IP      -- which city
+                     =  \i,n -> IdetCN (IdetQuant i NumSg) (UseN n) ; --%  
+
+
+-- An interrogative pronoun can be modified by an adverb.
+
+      mkIP : IP -> Adv -> IP        -- who in Paris --:
+      = AdvIP ; --%
+      } ; --% 
+
+    what_IP : IP  -- what (singular)
+    = whatSg_IP ; --%  
+    who_IP : IP   -- who (singular)
+    = whoSg_IP ; --%  
+
+-- More interrogative pronouns and determiners can be found in $Structural$.
+
+
+
+--3 IAdv, interrogative adverbs. 
+
+-- In addition to the interrogative adverbs defined in the $Structural$ lexicon, they
+-- can be formed as prepositional phrases from interrogative pronouns.
+
+    mkIAdv = overload {  --%
+      mkIAdv : Prep -> IP -> IAdv --  in which city 
+      = PrepIP ; --%    
+      mkIAdv : IAdv -> Adv -> IAdv --  where in Paris  
+      = AdvIAdv ; --%  
+      } ; --%  
+
+-- More interrogative adverbs are given in $Structural$.
+
+--3 IDet, interrogative determiners
+    mkIDet = overload { --%
+      mkIDet : IQuant -> Num -> IDet          -- which (songs) 
+      =  \i,nu -> IdetQuant i nu ; --% 
+      mkIDet : IQuant -> IDet      
+      =  \i -> IdetQuant i NumSg ; --% 
+      } ; --% 
+
+    which_IDet : IDet 
+    = whichSg_IDet ; --% 
+    whichSg_IDet : IDet  --%
+    = IdetQuant which_IQuant NumSg ; --% 
+    whichPl_IDet : IDet 
+    = IdetQuant which_IQuant NumPl ; --% 
+
+
+
+
+--3 RS, relative sentences 
+
+-- Just like a sentence $S$ is built from a clause $Cl$, 
+-- a relative sentence $RS$ is built from
+-- a relative clause $RCl$ by fixing the tense, anteriority and polarity. 
+-- Any of these arguments
+-- can be omitted, which results in the default (present, simultaneous,
+-- and positive, respectively).
+
+    mkRS = overload { --%
+
+      mkRS : RCl  -> RS --%
+      = TUseRCl TPres ASimul PPos ; --% 
+      mkRS : Tense -> RCl -> RS --%  
+      = \t -> TUseRCl t ASimul PPos ; --% 
+      mkRS : Ant -> RCl -> RS --%
+      = \a -> TUseRCl TPres a PPos ; --% 
+      mkRS : Pol -> RCl -> RS --%
+      = \p -> TUseRCl TPres ASimul p ; --% 
+      mkRS : Tense -> Ant -> RCl -> RS --% 
+      = \t,a -> TUseRCl t a PPos ; --% 
+      mkRS : Tense -> Pol -> RCl -> RS --%
+      = \t,p -> TUseRCl t ASimul p ; --% 
+      mkRS : Ant -> Pol -> RCl -> RS --%
+      = \a,p -> TUseRCl TPres a p ; --% 
+      mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS -- that wouldn't have slept 
+      = TUseRCl ; --% 
+      mkRS : Conj -> RS -> RS -> RS -- who sleeps and whose mother runsx
+      = \c,x,y -> ConjRS c (BaseRS x y) ; --% 
+      mkRS : Conj -> ListRS -> RS -- who sleeps, whom I see and who sleeps --:
+      = \c,xy -> ConjRS c xy ; --% 
+      } ; --% 
+
+--3 RCl, relative clauses 
+
+    mkRCl = overload { --%
+
+-- Relative clauses are built from relative pronouns in subject or object position.
+-- The former uses a verb phrase; we don't give
+-- shortcuts for verb-argument sequences as we do for clauses.
+-- The latter uses the 'slash' category of objectless clauses (see below); 
+-- we give the common special case with a two-place verb.
+
+      mkRCl : RP -> VP -> RCl        -- that loves she   --:   
+      = RelVP     ; --% 
+
+      mkRCl : RP -> V -> RCl                -- who sleeps   
+      = \s,v -> RelVP s (UseV v); --%   
+      mkRCl : RP -> V2 -> NP -> RCl         -- who loves her
+      = \s,v,o -> RelVP s (ComplV2 v o); --%   
+      mkRCl : RP -> V3 -> NP -> NP -> RCl   -- who sends it to her
+      = \s,v,o,i -> RelVP s (ComplV3 v o i); --%   
+      mkRCl : RP  -> VV -> VP -> RCl        -- who wants to sleep
+        = \s,v,vp -> RelVP s (ComplVV v vp) ; --% 
+      mkRCl : RP  -> VS -> S  -> RCl        -- who says that she sleeps
+        = \s,v,p -> RelVP s (ComplVS v p) ; --% 
+      mkRCl : RP  -> VQ -> QS -> RCl        -- who wonders who sleeps
+        = \s,v,q -> RelVP s (ComplVQ v q) ; --% 
+      mkRCl : RP  -> VA -> A -> RCl        -- who becomes old
+        = \s,v,q -> RelVP s (ComplVA v (PositA q)) ; --% 
+      mkRCl : RP  -> VA -> AP -> RCl        -- who becomes old
+        = \s,v,q -> RelVP s (ComplVA v q) ; --% 
+      mkRCl : RP  -> V2A -> NP -> A -> RCl -- who paints it red
+        = \s,v,n,q -> RelVP s (ComplV2A v n (PositA q)) ; --% 
+      mkRCl : RP  -> V2A -> NP -> AP -> RCl -- who paints it red
+        = \s,v,n,q -> RelVP s (ComplV2A v n q) ; --% 
+      mkRCl : RP  -> V2S -> NP -> S -> RCl          -- who tells her that we sleep
+        = \s,v,n,q -> RelVP s (ComplSlash (SlashV2S v q) n) ; --% 
+      mkRCl : RP  -> V2Q -> NP -> QS -> RCl         -- who asks her who sleeps 
+        = \s,v,n,q -> RelVP s (ComplSlash (SlashV2Q v q) n) ; --% 
+      mkRCl : RP  -> V2V -> NP -> VP -> RCl         -- who forces her to sleep
+        = \s,v,n,q -> RelVP s (ComplSlash (SlashV2V v q) n) ; --% 
+      mkRCl : RP -> A  -> RCl    -- who is old
+        = \x,y -> RelVP x (UseComp (CompAP (PositA y))) ; --%   
+      mkRCl : RP -> A -> NP -> RCl -- who is older than her   
+        = \x,y,z -> RelVP x (UseComp (CompAP (ComparA y z))) ; --% 
+      mkRCl : RP -> A2 -> NP -> RCl -- who is married to her 
+	= \x,y,z -> RelVP x (UseComp (CompAP (ComplA2 y z))) ; --% 
+      mkRCl : RP -> AP -> RCl    -- who is very old 
+	= \x,y -> RelVP x (UseComp (CompAP y)) ; --% 
+      mkRCl : RP -> NP -> RCl    -- who is the man   
+        = \x,y -> RelVP x (UseComp (CompNP y)) ; --%   
+      mkRCl : RP -> N -> RCl    -- who is a man   
+        = \x,y -> RelVP x (UseComp (CompCN (UseN y))) ; --%   
+      mkRCl : RP -> CN -> RCl    -- who is an old man   
+	= \x,y -> RelVP x (UseComp (CompCN y)) ; --%   
+      mkRCl : RP -> Adv -> RCl   -- who is here   
+	= \x,y -> RelVP x (UseComp (CompAdv y)) ; --%   
+      mkRCl : RP -> NP -> V2 -> RCl        -- who does she love 
+      = \ip,np,v -> RelSlash ip (SlashVP np (SlashV2a v)) ; --%
+      mkRCl : RP -> ClSlash -> RCl         -- who does she love today   --:   
+      = RelSlash   ; --% 
+
+-- There is a simple 'such that' construction for forming relative 
+-- clauses from clauses.
+
+      mkRCl : Cl -> RCl              -- such that she loves him 
+      = RelCl ; --% 
+      } ; --% 
+
+--3 RP, relative pronouns 
+
+-- There is an atomic relative pronoun
+
+    which_RP : RP                        -- which/who  --:
+      = IdRP ; --% 
+
+-- A relative pronoun can be made into a kind of a prepositional phrase.
+
+    mkRP : Prep -> NP -> RP -> RP    -- all the houses in which --: 
+      = FunRP ; --% 
+
+
+--3 SSlash, objectless sentences 
+
+    mkSSlash = overload { --%
+      mkSSlash : Temp -> Pol -> ClSlash -> SSlash  --:
+      = UseSlash --%
+      } ; --%
+
+--3 ClSlash, objectless clauses
+
+    mkClSlash = overload { --%
+
+-- Objectless sentences are used in questions and relative clauses.
+-- The most common way of constructing them is by using a two-place verb
+-- with a subject but without an object.
+
+      mkClSlash : NP -> VPSlash -> ClSlash        -- (whom) he sees here --: 
+      = \np,vps -> SlashVP np vps ; --% 
+      mkClSlash : NP -> V2 -> ClSlash        -- (whom) he sees 
+      = \np,v2 -> SlashVP np (SlashV2a v2) ; --% 
+
+-- The two-place verb can be separated from the subject by a verb-complement verb.
+
+      mkClSlash : NP -> VV -> V2 -> ClSlash  -- (whom) he wants to see 
+               = \np,vv,v2 -> SlashVP np (SlashVV vv (SlashV2a v2))  ; --% 
+
+-- The missing object can also be the noun phrase in a prepositional phrase.
+
+      mkClSlash : Cl -> Prep -> ClSlash      -- (with whom) he sleeps --:
+      = SlashPrep ; --% 
+
+-- An objectless sentence can be modified by an adverb.
+
+      mkClSlash : ClSlash -> Adv -> ClSlash    -- (whom) he sees tomorrow  --: 
+      = AdvSlash ; --% 
+
+-- Slash can be transferred to an embedded sentence.
+
+      mkClSlash : NP -> VS -> SSlash -> ClSlash -- (whom) she says that he loves --:
+      = SlashVS --%
+
+      } ; --% 
+
+
+--3 VPSlash, verb phrases missing an object 
+
+    mkVPSlash = overload { --%
+
+-- This is the deep level of many-argument predication, permitting extraction.
+
+      mkVPSlash : V2  -> VPSlash         -- (whom) (she) loves --:
+        = SlashV2a ; --% 
+      mkVPSlash : V3  -> NP -> VPSlash   -- (whom) (she) gives an apple  --: 
+        = Slash2V3 ; --% 
+      mkVPSlash : V2A -> AP -> VPSlash   -- (whom) (she) paints red  --:
+        = SlashV2A ; --% 
+      mkVPSlash : V2Q -> QS -> VPSlash   -- (whom) (she) asks who sleeps  --: 
+        = SlashV2Q ; --% 
+      mkVPSlash : V2S -> S  -> VPSlash   -- (whom) (she) tells that we sleep  --:
+        = SlashV2S ; --% 
+      mkVPSlash : V2V -> VP -> VPSlash   -- (whom) (she) forces to sleep  --:
+        = SlashV2V ; --% 
+      mkVPSlash : VV  -> VPSlash -> VPSlash  -- want always to buy --:
+        = SlashVV ; --%
+      mkVPSlash : V2V -> NP -> VPSlash -> VPSlash -- beg me always to buy --:
+        = SlashV2VNP ; --%
+      } ; --% 
+
+
+--2 Lists for coordination 
+
+-- The rules in this section are very uniform: a list can be built from two or more
+-- expressions of the same category.
+
+--3 ListS, sentence lists 
+
+  mkListS = overload { --%
+   mkListS : S -> S -> ListS  -- list of two --:
+   = BaseS ; --% 
+   mkListS : S -> ListS -> ListS  -- list of more --:
+   = ConsS  ; --% 
+   } ; --% 
+
+--3 ListAdv, adverb lists 
+
+  mkListAdv = overload {  --%
+   mkListAdv : Adv -> Adv -> ListAdv  -- list of two --:
+   = BaseAdv ; --% 
+   mkListAdv : Adv -> ListAdv -> ListAdv  -- list of more --:
+   = ConsAdv  ; --% 
+   } ; --% 
+
+
+
+--3 ListAP, adjectival phrase lists 
+
+  mkListAP = overload {  --%
+   mkListAP : AP -> AP -> ListAP  -- list of two --:
+   = BaseAP ; --% 
+   mkListAP : AP -> ListAP -> ListAP  -- list of more --:
+   = ConsAP  ; --% 
+   } ; --% 
+
+
+
+--3 ListNP, noun phrase lists 
+
+  mkListNP = overload {  --%
+   mkListNP : NP -> NP -> ListNP  -- list of two --:
+   = BaseNP ; --% 
+   mkListNP : NP -> ListNP -> ListNP  -- list of more --:
+   = ConsNP  ; --% 
+   } ; --% 
+
+--3 ListRS, relative clause lists 
+
+  mkListRS = overload {  --%
+   mkListRS : RS -> RS -> ListRS  -- list of two --:
+   = BaseRS ; --% 
+   mkListRS : RS -> ListRS -> ListRS  -- list of more --:
+   = ConsRS  ; --% 
+   } ; --% 
+
+
+--.  
+
+
+      the_Art : Art = DefArt ;     -- the  
+      a_Art   : Art = IndefArt ;   -- a  
+
+    ---- obsol 
+
+    mkQuantSg : Quant -> QuantSg = SgQuant ; 
+    mkQuantPl : Quant -> QuantPl = PlQuant ; 
+
+      this_QuantSg : QuantSg = mkQuantSg this_Quant ; 
+      that_QuantSg : QuantSg = mkQuantSg that_Quant ;  
+
+      these_QuantPl : QuantPl = mkQuantPl this_Quant ;  
+      those_QuantPl : QuantPl = mkQuantPl that_Quant ;  
+
+    sgNum : Num = NumSg ;  
+    plNum : Num = NumPl ;  
+
+
+
+
+
+------------ for backward compatibility 
+
+    QuantSg : Type = Quant ** {isSg : {}} ; 
+    QuantPl : Type = Quant ** {isPl : {}} ; 
+    SgQuant : Quant -> QuantSg = \q -> q ** {isSg = <>} ; 
+    PlQuant : Quant -> QuantPl = \q -> q ** {isPl = <>} ; 
+
+-- Pre-4 constants defined
+
+  DetSg : Quant -> Ord -> Det = \q -> DetQuantOrd q NumSg ; 
+  DetPl : Quant -> Num -> Ord -> Det = DetQuantOrd ; 
+
+  ComplV2 : V2 -> NP -> VP = \v,np -> ComplSlash (SlashV2a v) np ;
+  ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ; 
+  ComplV3 : V3 -> NP -> NP -> VP = \v,o,d -> ComplSlash (Slash3V3 v d) o ; 
+
+
+
+-- new things
+
+
+
+-- export needed, since not in Cat
+
+  ListAdv : Type = Grammar.ListAdv ; 
+  ListAP : Type = Grammar.ListAP ; 
+  ListNP : Type = Grammar.ListNP ; 
+  ListS : Type = Grammar.ListS ; 
+
+-- bw to 4
+
+    Art : Type = Quant ; 
+      the_Art : Art = DefArt ;   -- the 
+      a_Art : Art  = IndefArt ;   -- a 
+
+
+    DetArtSg : Art -> CN -> NP = \a -> DetCN (DetQuant a sgNum) ; 
+    DetArtPl : Art -> CN -> NP = \a -> DetCN (DetQuant a plNum) ; 
+
+    DetArtOrd : Quant -> Num -> Ord -> Det = DetQuantOrd ; 
+    DetArtCard : Art -> Card -> Det = \a,c -> DetQuant a (NumCard c) ; 
+
+    TUseCl  : Tense -> Ant -> Pol ->  Cl ->  S = \t,a -> UseCl  (TTAnt t a) ; 
+    TUseQCl : Tense -> Ant -> Pol -> QCl -> QS = \t,a -> UseQCl (TTAnt t a) ; 
+    TUseRCl : Tense -> Ant -> Pol -> RCl -> RS = \t,a -> UseRCl (TTAnt t a) ; 
+
+-- numerals from strings
+
+oper 
+  str2ord : Str -> Ord = \s -> case Predef.lessInt (Predef.length s) 7 of {
+    Predef.PTrue  => OrdNumeral (str2numeral s) ;
+    Predef.PFalse => OrdDigits (str2digits s)
+    } ;
+
+  str2card : Str -> Card = \s -> case Predef.lessInt (Predef.length s) 7 of {
+    Predef.PTrue  => NumNumeral (str2numeral s) ;
+    Predef.PFalse => NumDigits (str2digits s)
+    } ;
+
+  str2numeral : Str -> Numeral = 
+(\s -> case s of {
+    ? => num (pot2as3 (pot1as2 (pot0as1 (s2s10 s)))) ;
+    ? + ? => num (pot2as3 (pot1as2 (s2s100 s))) ;
+    ? + ? + ? => num (pot2as3 (s2s1000 s)) ;
+
+--    m@(? + _) + "000"            => num (pot3 (s2s1000 m)) ;
+--    m@(? + _) + "00" + n@?       => num (pot3plus (s2s1000 m) (s2s1000 n)) ; 
+--    m@(? + _) + "0"  + n@(? + ?) => num (pot3plus (s2s1000 m) (s2s1000 n)) ; 
+--    m@(? + _) + n@(? + ? + ?)    => num (pot3plus (s2s1000 m) (s2s1000 n)) ; 
+--    _ => num (pot2as3 (s2s1000 s))
+    _ => Predef.error ("no numeral for string" ++ s)
+    })
+  where {
+
+  s2d : Str -> Digit = \s -> case s of {
+    "2" => n2 ;
+    "3" => n3 ;
+    "4" => n4 ;
+    "5" => n5 ;
+    "6" => n6 ;
+    "7" => n7 ;
+    "8" => n8 ;
+    "9" => n9 ;
+    _   => Predef.error ("not a valid digit" ++ s)
+    } ;
+
+  s2s10 : Str -> Sub10 = \s -> case s of {
+    "1" => pot01 ;
+    #idigit => pot0 (s2d s) ;
+    _   => Predef.error ("not a valid digit" ++ s)
+    } ;
+
+  s2s100 : Str -> Sub100 = \s -> case s of {
+    "10"       => pot110 ;
+    "11"       => pot111 ;
+    "1" + d@#digit  => pot1to19 (s2d d) ;
+    d@#idigit + "0" => pot1 (s2d d) ;
+    d@#idigit + n@? => pot1plus (s2d d) (s2s10 n) ;
+    _               => pot0as1 (s2s10 s)
+    } ;
+
+  s2s1000 : Str -> Sub1000 = \s -> case s of {
+    d@? + "00"      => pot2 (s2s10 d) ;
+    d@? + "0" + n@? => pot2plus (s2s10 d) (s2s100 n) ;
+    d@? + n@(? + ?) => pot2plus (s2s10 d) (s2s100 n) ;
+    _ => pot1as2 (s2s100 s)
+    } ;
+
+  } ;
+  idigit : pattern Str = #("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9") ;
+  digit : pattern Str = #("0" | #idigit) ;
+
+  --- it would be nice to have foldr on strings...
+  str2digits : Str -> Digits = (\s -> case s of {
+    d0@? => IDig (s2d d0) ;
+    d1@? + d0@? => IIDig (s2d d1) (IDig (s2d d0)) ;
+    d2@? + d1@? + d0@? => IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))) ;
+    d3@? + d2@? + d1@? + d0@? => 
+      IIDig (s2d d3) (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0)))) ;
+    d4@? + d3@? + d2@? + d1@? + d0@? => 
+      IIDig (s2d d4) (IIDig (s2d d3) (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))))) ;
+    d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
+      IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) (IIDig (s2d d2) 
+        (IIDig (s2d d1) (IDig (s2d d0)))))) ;
+    d6@? + d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
+      IIDig (s2d d6) (IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) 
+        (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0))))))) ;
+    d7@? + d6@? + d5@? + d4@? + d3@? + d2@? + d1@? + d0@? => 
+      IIDig (s2d d7) (IIDig (s2d d6) (IIDig (s2d d5) (IIDig (s2d d4) (IIDig (s2d d3) 
+        (IIDig (s2d d2) (IIDig (s2d d1) (IDig (s2d d0)))))))) ;
+    _ => Predef.error ("cannot deal with so many digits:" ++ s)
+    }) where {
+  s2d : Str -> Dig = \s -> case s of {
+    "0" => D_0 ;
+    "1" => D_1 ;
+    "2" => D_2 ;
+    "3" => D_3 ;
+    "4" => D_4 ;
+    "5" => D_5 ;
+    "6" => D_6 ;
+    "7" => D_7 ;
+    "8" => D_8 ;
+    "9" => D_9 ;
+    _   => Predef.error ("not a valid digit" ++ s)
+    } ;
+  } ;
+
+    n1_Digits : Digits -- 1 
+    = IDig D_1 ; --% 
+    n2_Digits : Digits -- 2 
+    = IDig D_2 ; --% 
+    n3_Digits : Digits -- 3
+    = IDig D_3 ; --% 
+    n4_Digits : Digits -- 4
+    = IDig D_4 ; --% 
+    n5_Digits : Digits -- 5
+    = IDig D_5 ; --% 
+    n6_Digits : Digits -- 6
+    = IDig D_6 ; --% 
+    n7_Digits : Digits -- 7
+    = IDig D_7 ; --% 
+    n8_Digits : Digits -- 8
+    = IDig D_8 ; --% 
+    n9_Digits : Digits -- 9
+    = IDig D_9 ; --% 
+    n10_Digits : Digits -- 10
+    = IIDig D_1 (IDig D_0) ; --% 
+    n20_Digits : Digits   -- 20
+    = IIDig D_2 (IDig D_0) ; --% 
+    n100_Digits : Digits -- 100
+    = IIDig D_1 (IIDig D_0 (IDig D_0)) ; --% 
+    n1000_Digits : Digits -- 1000
+    = IIDig D_1 (IIDig D_0 (IIDig D_0 (IDig D_0))) ; --% 
+
+-- Some "round" numbers are here given as shorthands.
+
+    n1_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 pot01))) ; --%  
+    n2_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))) ; --%  
+    n3_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n3)))) ; --%  
+    n4_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n4)))) ; --%  
+    n5_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n5)))) ; --%  
+    n6_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n6)))) ; --%  
+    n7_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n7)))) ; --%  
+    n8_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))) ; --%  
+    n9_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot0as1 (pot0 n9)))) ; --%  
+    n10_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 pot110)) ; --%  
+    n20_Numeral : Numeral 
+    = num (pot2as3 (pot1as2 (pot1 n2))) ; --%  
+    n100_Numeral : Numeral 
+    = num (pot2as3 (pot2 pot01)) ; --%  
+    n1000_Numeral : Numeral 
+    = num (pot3 (pot1as2 (pot0as1 pot01))) ; --%  
+
 
 }  
diff --git a/lib/src/api/ConstructorsIna.gf b/lib/src/api/ConstructorsIna.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/ConstructorsIna.gf
@@ -0,0 +1,3 @@
+--# -path=.:alltenses:prelude
+
+resource ConstructorsIna = Constructors with (Grammar = GrammarIna) ;
diff --git a/lib/src/api/ConstructorsPnb.gf b/lib/src/api/ConstructorsPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/ConstructorsPnb.gf
@@ -0,0 +1,3 @@
+--# -path=.:alltenses:prelude
+
+resource ConstructorsPnb = Constructors with (Grammar = GrammarPnb) ;
diff --git a/lib/src/api/SyntaxIna.gf b/lib/src/api/SyntaxIna.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/SyntaxIna.gf
@@ -0,0 +1,4 @@
+--# -path=.:alltenses:prelude
+
+instance SyntaxIna of Syntax = ConstructorsIna, CatIna, StructuralIna, CombinatorsIna ;
+
diff --git a/lib/src/api/SyntaxPnb.gf b/lib/src/api/SyntaxPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/SyntaxPnb.gf
@@ -0,0 +1,5 @@
+--# -path=.:./alltenses:../prelude
+
+instance SyntaxPnb of Syntax = 
+  ConstructorsPnb, CatPnb, StructuralPnb, CombinatorsPnb ;
+
diff --git a/lib/src/api/TryIna.gf b/lib/src/api/TryIna.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/TryIna.gf
@@ -0,0 +1,3 @@
+--# -path=.:alltenses:prelude
+
+resource TryIna = SyntaxIna, LexiconIna, ParadigmsIna - [mkAdv] ;
diff --git a/lib/src/api/TryPnb.gf b/lib/src/api/TryPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/api/TryPnb.gf
@@ -0,0 +1,22 @@
+--# -path=.:alltenses:prelude
+
+resource TryPnb = SyntaxPnb - [mkAdN] , LexiconPnb, ParadigmsPnb - [mkAdv,mkDet,mkIP,mkAdN] ** 
+  open (P = ParadigmsPnb) in {
+
+oper
+
+  mkAdv = overload SyntaxPnb {
+    mkAdv : Str -> Adv = P.mkAdv ;
+  } ;
+
+  mkAdN = overload {
+    mkAdN : CAdv -> AdN = SyntaxPnb.mkAdN ;
+---   mkAdN : Str -> AdN = P.mkAdN ;
+  } ;
+
+--  mkOrd = overload SyntaxPnb {
+--    mkOrd : A -> Ord = SyntaxPnb.OrdSuperl ;
+--  } ;
+
+
+}
diff --git a/lib/src/bulgarian/AdverbBul.gf b/lib/src/bulgarian/AdverbBul.gf
--- a/lib/src/bulgarian/AdverbBul.gf
+++ b/lib/src/bulgarian/AdverbBul.gf
@@ -14,6 +14,8 @@
 
     AdAdv = cc2 ;
 
+    PositAdAAdj a = {s = a.adv} ;
+
     SubjS = cc2 ;
 
     AdnCAdv cadv = {s = cadv.sn ++ "îò"} ;
diff --git a/lib/src/bulgarian/CatBul.gf b/lib/src/bulgarian/CatBul.gf
--- a/lib/src/bulgarian/CatBul.gf
+++ b/lib/src/bulgarian/CatBul.gf
@@ -1,4 +1,4 @@
-concrete CatBul of Cat = CommonX - [AAnter,ASimul,IAdv,CAdv] ** open ResBul, Prelude, (R = ParamX) in {
+concrete CatBul of Cat = CommonX - [IAdv,CAdv] ** open ResBul, Prelude, (R = ParamX) in {
 
   flags 
     coding=cp1251; optimize=all_subs;
@@ -87,11 +87,4 @@
     N2 = {s : NForm => Str; g : AGender} ** {c2 : Preposition} ;
     N3 = {s : NForm => Str; g : AGender} ** {c2,c3 : Preposition} ;
     PN = {s : Str; g : Gender} ;
-
-
--- Tense, Anteriority and Polarity functions
-
-  lin
-    ASimul = {s = []} ** {a = R.Simul} ;
-    AAnter = {s = []} ** {a = R.Anter} ; --# notpresent
 }
diff --git a/lib/src/bulgarian/DictBul.gf b/lib/src/bulgarian/DictBul.gf
# file too large to diff: lib/src/bulgarian/DictBul.gf
diff --git a/lib/src/bulgarian/DictBulAbs.gf b/lib/src/bulgarian/DictBulAbs.gf
--- a/lib/src/bulgarian/DictBulAbs.gf
+++ b/lib/src/bulgarian/DictBulAbs.gf
@@ -13197,7 +13197,7 @@
   zna_ch_itelen_A : A ;
   zna_ch_itelnost_N : N ;
   zna_ch_ka_N : N ;
-  zna_ja__V : V ;
+  znam_V : V ;
   znoen_A : A ;
   znoj_N : N ;
   zob_N : N ;
@@ -50620,7 +50620,6 @@
   hardueren_A : A ;
   harem_N : N ;
   haren_A : A ;
-  haresam_V : V ;
   haresvam_V : V ;
   haresvane_N : N ;
   harizvam_V : V ;
@@ -53192,4 +53191,4 @@
   _ja_hyr_N : N ;
   _ja__sh_mak_N : N ;
   _ja__sht_en_A : A ;
-}
+}
diff --git a/lib/src/bulgarian/ExtraBul.gf b/lib/src/bulgarian/ExtraBul.gf
--- a/lib/src/bulgarian/ExtraBul.gf
+++ b/lib/src/bulgarian/ExtraBul.gf
@@ -1,5 +1,5 @@
 concrete ExtraBul of ExtraBulAbs = CatBul ** 
-  open ResBul, Coordination, Prelude in {
+  open ResBul, MorphoFunsBul, Coordination, Prelude in {
   flags coding=cp1251 ;
 
 
@@ -33,9 +33,6 @@
     
     youSg8fem_Pron  = mkPron "òè" "òåá" "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Fem) P2 ;
     youSg8neut_Pron = mkPron "òè" "òåá" "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Neut) P2 ;
-    
-    youPol8fem_Pron  = mkPron "âèå" "âàñ" "âè" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" (GSg Fem) P2 ;
-    youPol8neut_Pron = mkPron "âèå" "âàñ" "âè" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" (GSg Neut) P2 ;
 
     onePl_Num = {s = table {
                        CFMasc Indef _ | CFFem Indef | CFNeut Indef            => "åäíè" ;
@@ -48,6 +45,8 @@
     UttImpSg8fem  pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
     UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
     
+    IAdvAdv adv = {s = \\qf => (mkIAdv "êîëêî").s ! qf ++ adv.s} ;
+
   oper
     reflPron : AForm => Str =
       table {
diff --git a/lib/src/bulgarian/ExtraBulAbs.gf b/lib/src/bulgarian/ExtraBulAbs.gf
--- a/lib/src/bulgarian/ExtraBulAbs.gf
+++ b/lib/src/bulgarian/ExtraBulAbs.gf
@@ -22,9 +22,6 @@
     
   youSg8fem_Pron : Pron ;
   youSg8neut_Pron : Pron ;
-
-  youPol8fem_Pron : Pron ;
-  youPol8neut_Pron : Pron ;
   
   onePl_Num : Num ;
   
diff --git a/lib/src/bulgarian/LexiconBul.gf b/lib/src/bulgarian/LexiconBul.gf
--- a/lib/src/bulgarian/LexiconBul.gf
+++ b/lib/src/bulgarian/LexiconBul.gf
@@ -113,6 +113,8 @@
               vtype  = VNormal ;
               lock_V = <>
             } ;
+  know_VQ = mkVQ (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ;
+  know_VS = mkVS (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ;
   lake_N = mkN054 "åçåðî" ;
   lamp_N = mkN041 "ëàìïà" ;
   learn_V2 = dirV2 (actionV (mkV176 "ó÷à") (mkV176 "íàó÷à")) ;
@@ -376,4 +378,5 @@
   sP  = mkPrep (pre { "ñ" ; 
                       "ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"}
                     })  Acc ;
+
 } ;
diff --git a/lib/src/bulgarian/MorphoBul.gf b/lib/src/bulgarian/MorphoBul.gf
--- a/lib/src/bulgarian/MorphoBul.gf
+++ b/lib/src/bulgarian/MorphoBul.gf
@@ -53,6 +53,7 @@
           VPres      Pl P2 => chete + "òå";
           VPres      Pl P3 => case cheta of {
                                 vika + "ì" => case chete of {
+                                                zn + "àå" => zn + "àÿò";
                                                 dad + "å" => dad + "àò";
                                                 vika      => vika + "ò"
                                               };
@@ -182,4 +183,4 @@
     adv = dobro ;
     lock_A = <>
     } ;
-}
+}
diff --git a/lib/src/bulgarian/MorphoFunsBul.gf b/lib/src/bulgarian/MorphoFunsBul.gf
--- a/lib/src/bulgarian/MorphoFunsBul.gf
+++ b/lib/src/bulgarian/MorphoFunsBul.gf
@@ -158,6 +158,17 @@
       = \s,n -> {s = \\nform => s ++ n.s ! nform ; g=n.g ; anim=n.anim ; lock_N = <>} ;
     compoundN : N -> Str -> N 
       = \n,s -> {s = \\nform => s ++ n.s ! nform ; g=n.g ; anim=n.anim ; lock_N = <>} ;
+    compoundN : N -> N -> N 
+      = \n1,n2 -> lin N
+                {s = table {
+                       NF num spec => n1.s ! (NF num spec) ++ n2.s ! (NF num Indef) ;
+                       NFSgDefNom  => n1.s ! NFSgDefNom    ++ n2.s ! (NF Sg Indef) ;
+                       NFPlCount   => n1.s ! NFPlCount     ++ n2.s ! (NF Pl Indef) ;
+                       NFVocative  => n1.s ! NFVocative    ++ n2.s ! (NF Sg Indef)
+                     } ;
+                 g = n1.g ;
+                 g = n1.anim
+                } ;
   } ;
   
 
diff --git a/lib/src/bulgarian/ParadigmsBul.gf b/lib/src/bulgarian/ParadigmsBul.gf
--- a/lib/src/bulgarian/ParadigmsBul.gf
+++ b/lib/src/bulgarian/ParadigmsBul.gf
@@ -1,6 +1,6 @@
---# -path=.:../abstract:../common:../prelude
-
-resource ParadigmsBul = MorphoFunsBul ** open
+--# -path=.:../abstract:../common:../prelude
+
+resource ParadigmsBul = MorphoFunsBul ** open
   Predef,
   Prelude,
   MorphoBul,
@@ -9,13 +9,19 @@
   flags coding=cp1251 ;
 
 oper
-  mkN001 : Str -> N ;
-  mkN001 base = let v0 = base
-                in mkNoun (v0)
-                          (v0+"îâå")
-                          (v0+"à")
-                          (v0)
-                          (AMasc NonHuman) ;
+  mkN001 : Str -> N ; -- numbers refer to Krustev, Bulg. Morph. in 187 Tables
+  mkN001 base = {s = table {
+                       NF Sg Indef => base ;
+                       NF Sg Def   => base+"à" ;
+                       NF Pl Indef => base+"îâå" ;
+                       NF Pl Def   => base+"îâåòå" ;
+                       NFSgDefNom  => base+"úò" ;
+                       NFPlCount   => base+"à" ;
+                       NFVocative  => base+"å"
+                     } ;
+                 g = AMasc NonHuman ;
+                 lock_N = <>
+                } ;
   mkN002 : Str -> N ;
   mkN002 base = let v0 = tk 2 base;
                     v1 = last (base)
@@ -62,12 +68,18 @@
                           (v0)
                           (AMasc NonHuman) ;
   mkN007 : Str -> N ;
-  mkN007 base = let v0 = base
-                in mkNoun (v0)
-                          (v0+"è")
-                          (v0+"à")
-                          (v0+"å")
-                          (AMasc NonHuman) ;
+  mkN007 base = {s = table {
+                       NF Sg Indef => base ;
+                       NF Sg Def   => base+"à" ;
+                       NF Pl Indef => base+"è" ;
+                       NF Pl Def   => base+"èòå" ;
+                       NFSgDefNom  => base+"úò" ;
+                       NFPlCount   => base+"à" ;
+                       NFVocative  => base+"å"
+                     } ;
+                 g = AMasc NonHuman ;
+                 lock_N = <>
+                } ;
   mkN007b : Str -> N ;
   mkN007b base = let v0 = base
                  in mkNoun (v0)
@@ -76,12 +88,18 @@
                            (v0+"î")
                            (AMasc NonHuman) ;
   mkN007a : Str -> N ;
-  mkN007a base = let v0 = base
-                 in mkNoun (v0)
-                           (v0+"è")
-                           (v0+"à")
-                           (v0+"å")
-                           (AMasc Human) ;
+  mkN007a base = {s = table {
+                       NF Sg Indef => base ;
+                       NF Sg Def   => base+"à" ;
+                       NF Pl Indef => base+"è" ;
+                       NF Pl Def   => base+"èòå" ;
+                       NFSgDefNom  => base+"úò" ;
+                       NFPlCount   => base+"è" ;
+                       NFVocative  => base+"å"
+                     } ;
+                  g = AMasc Human ;
+                  lock_N = <>
+                 } ;
   mkN008 : Str -> N ;
   mkN008 base = let v0 = tk 2 base;
                     v1 = last (base)
@@ -1488,7 +1506,18 @@
                           (v0+"ÿí")
                           (v0+"ÿù")
                           (v0+"ÿé") ;
+  mkV188 : Str -> VTable ;
+  mkV188 base = let v0 = tk 2 base
+                in mkVerb (v0+"àì")
+                          (v0+"àå")
+                          (v0+"àõ")
+                          (v0+"àõ")
+                          (v0+"àë")
+                          (v0+"àë")
+                          (v0+"àí")
+                          (v0+"àù")
+                          (v0+"àé") ;
 
   adjAdv : A -> Str -> A =
     \a,adv -> {s = a.s; adv = adv; lock_A=<>} ;
-}
+}
diff --git a/lib/src/bulgarian/QuestionBul.gf b/lib/src/bulgarian/QuestionBul.gf
--- a/lib/src/bulgarian/QuestionBul.gf
+++ b/lib/src/bulgarian/QuestionBul.gf
@@ -59,5 +59,7 @@
       nonEmpty = num.nonEmpty
       } ;
 
+    AdvIAdv i a = {s = \\q => i.s ! q ++ a.s} ;
+
     CompIP ip = {s = ip.s ! RSubj} ;
 }
diff --git a/lib/src/bulgarian/StructuralBul.gf b/lib/src/bulgarian/StructuralBul.gf
--- a/lib/src/bulgarian/StructuralBul.gf
+++ b/lib/src/bulgarian/StructuralBul.gf
@@ -37,6 +37,7 @@
   here7to_Adv = ss ["äî òóê"] ;
   here7from_Adv = ss ["îò òóê"] ;
   how_IAdv = mkIAdv "êàê" ;
+  how8much_IAdv = mkIAdv "êîëêî" ;
   how8many_IDet = {s = \\_ => table QForm ["êîëêî";"êîëêîòî"]; n = Pl; nonEmpty = False} ;
   if_Subj = ss "àêî" ;
   in8front_Prep = mkPrep "ïðåä" Acc ;
diff --git a/lib/src/bulgarian/VerbBul.gf b/lib/src/bulgarian/VerbBul.gf
--- a/lib/src/bulgarian/VerbBul.gf
+++ b/lib/src/bulgarian/VerbBul.gf
@@ -89,4 +89,6 @@
     CompAP ap = {s = \\agr => ap.s ! aform agr.gn Indef (RObj Acc)} ;
     CompNP np = {s = \\_ => np.s ! RObj Acc} ;
     CompAdv a = {s = \\_ => a.s} ;
+    CompCN cn = {s = \\agr => cn.s ! (NF (numGenNum agr.gn) Indef)} ;
+
 }
diff --git a/lib/src/catalan/DiffCat.gf b/lib/src/catalan/DiffCat.gf
--- a/lib/src/catalan/DiffCat.gf
+++ b/lib/src/catalan/DiffCat.gf
@@ -36,9 +36,9 @@
 
     artIndef = \g,n,c -> case <n,c> of {
       <Sg,CPrep P_de>   => genForms ["d' un"] ["d' una"] ! g ;
-      <Pl,CPrep P_de> => genForms ["d' uns"] ["d' unes"] ! g ;
       <Sg,_> => prepCase c ++ genForms "un" "una" ! g ;
-      <Pl,_> => prepCase c ++ genForms "uns" "unes" ! g
+                           ---      <Pl,CPrep P_de> => genForms ["d' uns"] ["d' unes"] ! g ;
+      <Pl,_> => prepCase c --- ++ genForms "uns" "unes" ! g --- take this as a determiner
       } ;
 
       
diff --git a/lib/src/catalan/ExtraCat.gf b/lib/src/catalan/ExtraCat.gf
--- a/lib/src/catalan/ExtraCat.gf
+++ b/lib/src/catalan/ExtraCat.gf
@@ -3,7 +3,7 @@
 
 lin
 	i8fem_Pron =  mkPronoun
-      	"jo" "em" "em" "mi"  ("mon"|["el meu"]) ("ma"|["la meva"]) "mes"
+      	"jo" "em" "em" "mi"  ["el meu"] ["la meva"] "mes"
 		Fem Sg P1 ;
 
       these8fem_NP = makeNP "aquestes" Fem Pl ;
@@ -25,7 +25,7 @@
 
     youSg8fem_Pron = mkPronoun 
   		"tu" "et" "et" "tu"
-    	("ton"|["el teu"]) ("ta"|["la teva"]) ("tes"|["les teves"])
+    	["el teu"] ["la teva"] ["les teves"]
       	Fem Sg P2 ;
     youPl8fem_Pron = mkPronoun
       "vosaltres" "us" "us" "vosaltres"
diff --git a/lib/src/catalan/LexiconCat.gf b/lib/src/catalan/LexiconCat.gf
--- a/lib/src/catalan/LexiconCat.gf
+++ b/lib/src/catalan/LexiconCat.gf
@@ -91,7 +91,7 @@
    girl_N = regFN "noia" ;
    glove_N = regMN "guant" ;
    gold_N = regMN "or" ;
-   good_A = mkADeg (mkA "bó" "bona" "bons" "bones" "bonament") (regA "millor") ; ---- adv?
+   good_A = mkADeg (mkA "bo" "bona" "bons" "bones" "bonament") (regA "millor") ; ---- adv?
    go_V = (verbV (anar_4 "anar")) ;
    green_A = regADeg "verd" ;
    harbour_N = regMN "port" ;
@@ -108,6 +108,7 @@
    iron_N = regMN "ferro" ;
    king_N = regMN "rei" ;
    know_V2 = dirV2 saberV ;
+   know_VQ = mkVQ saberV;
    know_VS = mkVS saberV;
    lake_N = regMN "llac" ;
    lamp_N = regFN "làmpada" ;
diff --git a/lib/src/catalan/MorphoCat.gf b/lib/src/catalan/MorphoCat.gf
--- a/lib/src/catalan/MorphoCat.gf
+++ b/lib/src/catalan/MorphoCat.gf
@@ -118,9 +118,11 @@
 	mkAdj fidel fidel fidels fidels (fidel + "ment") ;
 
   mkAdjReg : Str -> Adj = \prim ->
-	case last prim of {
-		"e"|"u"|"o"	=> adjFondo prim ;
-		_			=> adjPrim prim  
+	case prim of {
+		_ + "e" + ("r"|"l") => adjPrim prim ;
+		_ + ("r"|"l")       => adjFidel prim ;
+		_ + ("e"|"u"|"o")   => adjFondo prim ;
+		_                   => adjPrim prim  
 	} ;
 
 
diff --git a/lib/src/catalan/NumeralCat.gf b/lib/src/catalan/NumeralCat.gf
--- a/lib/src/catalan/NumeralCat.gf
+++ b/lib/src/catalan/NumeralCat.gf
@@ -100,7 +100,7 @@
 			unit => cardOrd1 co "un" "una" "primer" ;
 			teen => cardOrd2 co "onze" ;
 			ten => cardOrd2 co "deu" ;
-			tenplus => variants {} ;
+			tenplus => [] ; ---- variants {} ; -- not used AR 26/5/2010 
 			OrdF => cardOrd2 co "un" ;
 			Aunit => [] 
 		};
diff --git a/lib/src/catalan/ParadigmsCat.gf b/lib/src/catalan/ParadigmsCat.gf
--- a/lib/src/catalan/ParadigmsCat.gf
+++ b/lib/src/catalan/ParadigmsCat.gf
@@ -58,11 +58,11 @@
 -- amalgamate with the following word (the 'genitive' "de" and the
 -- 'dative' "a").
 
-  accusative : Prep ;
-  genitive   : Prep ;
-  dative     : Prep ;
+  accusative : Prep ; -- direct object
+  genitive   : Prep ; -- preposition "de"
+  dative     : Prep ; -- preposition "a"
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ; -- other preposition
 
 
 --2 Nouns
@@ -77,15 +77,15 @@
 -- those ending with "z" have "ces" in plural; all other nouns
 -- have "es" as plural ending. The accent is not dealt with. TODO
 
-    mkN : (llum : Str) -> N ;
+    mkN : (llum : Str) -> N ; -- regular, with heuristics for plural and gender
 
 -- A different gender can be forced.
 
-    mkN : Str -> Gender -> N ;
+    mkN : Str -> Gender -> N ; -- force gender
 
 -- The worst case has two forms (singular + plural) and the gender.
 
-    mkN : (disc,discos : Str) -> Gender -> N 
+    mkN : (disc,discos : Str) -> Gender -> N -- worst case
     } ;
 
 
@@ -96,24 +96,24 @@
 -- They could be formed in syntax, but we give a shortcut here since
 -- they are frequent in lexica.
 
-  compN : N -> Str -> N ;
+  compN : N -> Str -> N ; -- compound, e.g. "número" +  "de telèfon"
 
 
 --3 Relational nouns 
 -- 
 -- Relational nouns ("filla de x") need a case and a preposition. 
 
-  mkN2 : N -> Prep -> N2 ;
+  mkN2 : N -> Prep -> N2 ; -- e.g. filla + genitive
 
 -- The most common cases are the genitive "de" and the dative "a", 
 -- with the empty preposition.
 
-  deN2 : N -> N2 ;
-  aN2  : N -> N2 ;
+  deN2 : N -> N2 ; -- relation with genitive
+  aN2  : N -> N2 ; -- relation with dative
 
 -- Three-place relational nouns ("la connexió de x a y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. connexió + genitive + dative
 
 
 --3 Relational common noun phrases
@@ -130,8 +130,8 @@
 -- The default gender is feminine for names ending with "a", otherwise masculine. TODO 
 
   mkPN : overload {
-    mkPN : (Anna : Str) -> PN ;
-    mkPN : (Pilar : Str) -> Gender -> PN
+    mkPN : (Anna : Str) -> PN ; -- feminine for "-a", otherwise masculine
+    mkPN : (Pilar : Str) -> Gender -> PN -- force gender
     } ;
 
 
@@ -143,17 +143,17 @@
 -- masculine singular. The types of adjectives that are recognized are
 -- "alto", "fuerte", "util". Comparison is formed by "mas".
 
-    mkA : (sol : Str) -> A ;
+    mkA : (sol : Str) -> A ; -- regular
 
 -- One-place adjectives compared with "mas" need five forms in the worst
 -- case (masc and fem singular, masc plural, adverbial).
 
-    mkA : (fort,forta,forts,fortes,fortament : Str) -> A ;
+    mkA : (fort,forta,forts,fortes,fortament : Str) -> A ; -- worst case
 
 -- In the worst case, two separate adjectives are given: 
 -- the positive ("bo"), and the comparative ("millor"). 
 
-    mkA : (bo : A) -> (millor : A) -> A
+    mkA : (bo : A) -> (millor : A) -> A -- special comparison (default with "mas")
     } ;
 
 -- The functions above create postfix adjectives. To switch
@@ -162,14 +162,14 @@
 -- provided.
 -- JS: What about vi bÛ -> bon vi ?
 
-  prefixA : A -> A ;
+  prefixA : A -> A ; -- adjective before noun (default: after)
 
 
 --3 Two-place adjectives
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. "casat" + dative
 
 
 
@@ -197,7 +197,7 @@
 -- The regular verb function works for models I, IIa, IIb and IIa
 -- The module $BeschCat$ gives the complete set of "Bescherelle" conjugations.
 
-    mkV : (cantar : Str) -> V ;
+    mkV : (cantar : Str) -> V ; -- regular in models I, IIa, IIb
 
 -- Verbs with vowel alternatition in the stem - easiest to give with
 -- two forms, e.g. "mostrar"/"muestro". TODO
@@ -208,17 +208,17 @@
 -- the module $BeschCat$ gives all the patterns of the "Bescherelle"
 -- book. To use them in the category $V$, wrap them with the function
 
-    mkV : Verbum -> V 
+    mkV : Verbum -> V  -- use verb constructed in BeschCat
     } ;
 
 -- To form reflexive verbs:
 
-  reflV : V -> V ;
+  reflV : V -> V ; -- reflexive verb
 
 -- Verbs with a deviant passive participle: just give the participle
 -- in masculine singular form as second argument.
 
-  special_ppV : V -> Str -> V ; 
+  special_ppV : V -> Str -> V ;  --%
 
 
 
@@ -228,15 +228,15 @@
 -- (transitive verbs). 
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;  
-    mkV2 : V -> Prep -> V2
+    mkV2 : Str -> V2 ; -- regular verb, direct object
+    mkV2 : V -> V2 ;   -- any verb, direct object
+    mkV2 : V -> Prep -> V2 -- preposition for complement
     } ;
 
 
 -- You can reuse a $V2$ verb in $V$.
 
-  v2V : V2 -> V ;
+  v2V : V2 -> V ; --%
 
 --3 Three-place verbs
 --
@@ -252,7 +252,7 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;  -- plain infinitive: "vull parlar"
@@ -264,18 +264,18 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> Prep -> AV ;
-  mkA2V : A -> Prep -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> Prep -> AV ; --%
+  mkA2V : A -> Prep -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given
 -- as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V  : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V  : Type ; --%
 
 
 --.
diff --git a/lib/src/catalan/StructuralCat.gf b/lib/src/catalan/StructuralCat.gf
--- a/lib/src/catalan/StructuralCat.gf
+++ b/lib/src/catalan/StructuralCat.gf
@@ -40,12 +40,13 @@
   from_Prep = complGen ; ---
   he_Pron = 
     mkPronoun 
-     "ell" "el" "li" "ell" ("son"|["el seu"]) ("sa"|["la seva"]) "ses"
+     "ell" "el" "li" "ell" ["el seu"] ["la seva"] "ses"
       Masc Sg P3 ;
   here_Adv = mkAdv "aquí" ;		-- acÌ
   here7to_Adv = mkAdv ["cap aquí"] ;
   here7from_Adv = mkAdv ["d'aquí"] ;
   how_IAdv = ss "com" ;
+  how8much_IAdv = ss "quant" ;
   how8many_IDet = 
     {s = \\g,c => prepCase c ++ genForms "quants" "quantes" ! g ; n = Pl} ;
   if_Subj = ss "si" ** {m = Indic} ;
@@ -53,7 +54,7 @@
   i_Pron = 
     mkPronoun
       "jo" "em" "em" "mi"
-      ("mon"|["el meu"]) ("ma"|["la meva"]) "mes"
+      ["el meu"] ["la meva"] "mes"
       Fem Sg P1 ;
   in_Prep = mkPrep "en" ;
   it_Pron = mkPronoun 
@@ -84,7 +85,7 @@
   she_Pron = 
     mkPronoun
       "ella" "la" "li" "ella"
-      ("son"|["el seu"]) ("sa"|["la seva"]) "ses"
+      ["el seu"] ["la seva"] "ses"
       Fem Sg P3 ;
   so_AdA = ss "tan" ;
   somebody_NP = pn2np (mkPN ["alg˙"] Masc) ;
@@ -152,7 +153,7 @@
   yes_Utt = ss "sí" ;  
   youSg_Pron = mkPronoun 
     "tu" "et" "et" "tu"
-    ("ton"|["el teu"]) ("ta"|["la teva"]) ("tes"|["les teves"])
+    ["el teu"] ["la teva"] ["les teves"]
     Masc Sg P2 ;
   youPl_Pron =
     mkPronoun
diff --git a/lib/src/common/CommonX.gf b/lib/src/common/CommonX.gf
--- a/lib/src/common/CommonX.gf
+++ b/lib/src/common/CommonX.gf
@@ -1,18 +1,19 @@
 concrete CommonX of Common = open (R = ParamX) in {
 
   lincat
-    Text = {s : Str} ; --lock_Text : {}} ;
-    Phr = {s : Str} ; --lock_Phr : {}} ;
-    Utt = {s : Str} ; --lock_Utt : {}} ;
-    Voc = {s : Str} ; --lock_Voc : {}} ;
-    SC  = {s : Str} ; --lock_SC : {}} ;
-    Adv = {s : Str} ; --lock_Adv : {}} ;
-    AdV = {s : Str} ; --lock_AdV : {}} ;
-    AdA = {s : Str} ; --lock_AdA : {}} ;
-    AdN = {s : Str} ; --lock_AdN : {}} ;
-    IAdv = {s : Str} ; --lock_IAdv : {}} ;
-    CAdv = {s,p : Str} ; --lock_CAdv : {}} ;
-    PConj = {s : Str} ; --lock_PConj : {}} ;
+    Text = {s : Str} ; 
+    Phr = {s : Str} ; 
+    Utt = {s : Str} ; 
+    Voc = {s : Str} ; 
+    SC  = {s : Str} ; 
+    Adv = {s : Str} ; 
+    AdV = {s : Str} ; 
+    AdA = {s : Str} ; 
+    AdN = {s : Str} ; 
+    IAdv = {s : Str} ; 
+    CAdv = {s,p : Str} ; 
+    PConj = {s : Str} ; 
+    Interj = {s : Str} ; 
 
     Temp  = {s : Str ; t : R.Tense ; a : R.Anteriority} ;
     Tense = {s : Str ; t : R.Tense} ;
diff --git a/lib/src/danish/IrregDan.gf b/lib/src/danish/IrregDan.gf
--- a/lib/src/danish/IrregDan.gf
+++ b/lib/src/danish/IrregDan.gf
@@ -33,8 +33,8 @@
   gnide_V = irregV "gnide" "gned" "gnidd" ;--
   gøre_V = irregV "gøre" "gjorde" "gjort" ;
   have_V =  mkV "have" "har" "havde" "haft" "havd" "hav" ;
+  hede_V = mkV "hede" "hed" "hedes" "hedde" "hett" "hed" ; ----
   hente_V = irregV "hente" "hentet" "hendt" ;--
---  hete_V = irregV "hete" (variants {"het" ;-- "hette"}) "hett" ;--
 --  hjelpe_V = irregV "hjelpe" "hjalp" "hjulpet" ;--
   holde_V = irregV "holde" "holdt" "holdt" ;--
   komme_V = irregV "komme" "kom" "kommet" ;
@@ -65,7 +65,7 @@
 --  treffe_V = irregV "treffe" "traff" "truffet" ;--
 --  trives_V = irregV "trives" "trivdes" (variants {"trives" ;-- "trivs"}) ;--
   tælle_V = irregV "tælle" "talte" "talt" ;
-  vide_V = irregV "vide" "vidste" "vidst" ;
+  vide_V = mkV "vide" "ved" "vedes" "vidste" "vidst" "ved" ; ----
 
 }
 
diff --git a/lib/src/danish/IrregDanAbs.gf b/lib/src/danish/IrregDanAbs.gf
--- a/lib/src/danish/IrregDanAbs.gf
+++ b/lib/src/danish/IrregDanAbs.gf
@@ -29,7 +29,7 @@
   gøre_V : V ; 
   have_V : V ; 
   hente_V : V ; 
---  hete_V : V ; 
+  hede_V : V ; 
 --  hjelpe_V : V ; 
   holde_V : V ; 
   komme_V : V ; 
diff --git a/lib/src/danish/LexiconDan.gf b/lib/src/danish/LexiconDan.gf
--- a/lib/src/danish/LexiconDan.gf
+++ b/lib/src/danish/LexiconDan.gf
@@ -103,7 +103,9 @@
   iron_N = mk2N "jern" "jernet" ;
   john_PN = mkPN "John" utrum ;
   king_N = mk2N "konge" "kongen" ;
-  know_V2 = dirV2 vide_V ;
+  know_V2 = dirV2 (mkV "kende" "kendte") ;
+  know_VQ = mkVQ vide_V ;
+  know_VS = mkVS vide_V ;
   lake_N = mk2N "sø" "søen" ;
   lamp_N = mk2N "lampe" "lampen" ;
   learn_V2 = dirV2 (mk2V "lære" "lærte") ;
diff --git a/lib/src/danish/ParadigmsDan.gf b/lib/src/danish/ParadigmsDan.gf
--- a/lib/src/danish/ParadigmsDan.gf
+++ b/lib/src/danish/ParadigmsDan.gf
@@ -40,26 +40,26 @@
 oper
   Gender : Type ; 
 
-  utrum   : Gender ;
-  neutrum : Gender ;
+  utrum   : Gender ;  -- "en" gender
+  neutrum : Gender ;  -- "et" gender
 
 -- To abstract over number names, we define the following.
 
-  Number : Type ; 
+  Number : Type ; --%
 
-  singular : Number ;
-  plural   : Number ;
+  singular : Number ; --%
+  plural   : Number ; --%
 
 -- To abstract over case names, we define the following.
 
-  Case : Type ;
+  Case : Type ; --%
 
-  nominative : Case ;
-  genitive   : Case ;
+  nominative : Case ; --%
+  genitive   : Case ; --%
 
 -- Prepositions used in many-argument functions are just strings.
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ;  -- e.g. "til"
   noPrep : Prep ;         -- empty string
 
 --2 Nouns
@@ -71,26 +71,26 @@
 -- The heuristic is that all nouns are $utrum$ with the
 -- plural ending "er" or "r".
 
-    mkN : (bil : Str) -> N ;
+    mkN : (bil : Str) -> N ; -- regular noun: "en" gender with plural "-er" or "-r"
 
 -- Giving gender manually makes the heuristic more reliable.
 
-    mkN : (hus : Str) -> Gender -> N ;
+    mkN : (hus : Str) -> Gender -> N ; -- regular possibly of "et" gender --%
 
 -- This function takes the singular indefinite and definite forms; the
 -- gender is computed from the definite form.
 
-    mkN : (bil,bilen : Str) -> N ;
+    mkN : (bil,bilen : Str) -> N ; -- better prediction from both singular and plural
 
 -- This function takes the singular indefinite and definite and the plural
 -- indefinite
 
-    mkN : (bil,bilen,biler : Str) -> N ;
+    mkN : (bil,bilen,biler : Str) -> N ; --%
 
 -- Worst case: give all four forms. The gender is computed from the
 -- last letter of the second form (if "n", then $utrum$, otherwise $neutrum$).
 
-    mkN : (dreng,drengen,drenge,drengene : Str) -> N ;
+    mkN : (dreng,drengen,drenge,drengene : Str) -> N ; -- worst case
   } ;
 
 
@@ -106,12 +106,12 @@
 -- 
 -- Relational nouns ("datter til x") need a preposition. 
 
-  mkN2 : N -> Prep -> N2 ;
+  mkN2 : N -> Prep -> N2 ; -- e.g. datter + til
 
 -- The most common preposition is "af", and the following is a
 -- shortcut for regular relational nouns with "af".
 
-  regN2 : Str -> Gender -> N2 ;
+  regN2 : Str -> Gender -> N2 ; --%
 
 -- Use the function $mkPrep$ or see the section on prepositions below to  
 -- form other prepositions.
@@ -119,7 +119,7 @@
 -- Three-place relational nouns ("forbindelse fra x til y") 
 -- need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. forbindelse + fra + til
 
 
 --3 Relational common noun phrases
@@ -135,9 +135,9 @@
 -- Proper names, with a regular genitive, are formed as follows
 
   mkPN : overload {
-    mkPN : Str -> PN ;       -- utrum
-    mkPN : Str -> Gender -> PN ;  
-    mkPN : N -> PN ;
+    mkPN : Str -> PN ;           -- utrum gender
+    mkPN : Str -> Gender -> PN ; -- other gender
+    mkPN : N -> PN ; --%
     } ;
 
 
@@ -147,22 +147,22 @@
 -- with "ig". Two, five, or at worst five forms are sometimes needed.
 
   mkA : overload {
-    mkA : (fin : Str) -> A ;
-    mkA : (fin,fint : Str) -> A ;
-    mkA : (galen,galet,galne : Str) -> A ;
-    mkA : (stor,stort,store,storre,storst : Str) -> A ;
+    mkA : (fin : Str) -> A ;  -- regular adjective
+    mkA : (fin,fint : Str) -> A ;  -- deviant neuter
+    mkA : (galen,galet,galne : Str) -> A ; -- also deviant plural
+    mkA : (stor,stort,store,storre,storst : Str) -> A ; -- worst case
 
 -- If comparison is formed by "mer", "mest", as in general for
 -- long adjective, the following pattern is used:
 
-    mkA : A -> A ; -- -/mer/mest norsk
+    mkA : A -> A ; -- force comparison with mer/mest 
   } ;
 
 --3 Two-place adjectives
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. gift + med
 
 
 
@@ -172,12 +172,12 @@
 -- after the verb. Some can be close to the verb like the negation
 -- "ikke" (e.g. "altid").
 
-  mkAdv : Str -> Adv ;
-  mkAdV : Str -> AdV ;
+  mkAdv : Str -> Adv ;  -- after verb, e.g. "idag"
+  mkAdV : Str -> AdV ;  -- close to verb, e.g. "altid"
 
 -- Adverbs modifying adjectives and sentences can also be formed.
 
-  mkAdA : Str -> AdA ;
+  mkAdA : Str -> AdA ; -- modify adjective, e.g. "meget"
 
 
 --2 Verbs
@@ -187,27 +187,27 @@
 
 -- The 'regular verb' function is the first conjugation.
 
-    mkV : (snakke : Str) -> V ;
+    mkV : (snakke : Str) -> V ; -- regular verb
 
 -- The almost regular verb function needs the infinitive and the preteritum.
 
-    mkV : (leve,levde : Str) -> V ;
+    mkV : (leve,levde : Str) -> V ; -- also give past tense
 
 -- There is an extensive list of irregular verbs in the module $IrregDan$.
 -- In practice, it is enough to give three forms, as in school books.
 
-    mkV : (drikke, drakk, drukket  : Str) -> V ;
+    mkV : (drikke, drakk, drukket  : Str) -> V ; -- theme of irregular verb
 
 -- The worst case needs six forms.
 
-    mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ;
+    mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; -- worst case
 
 
 --3 Verbs with a particle.
 --
 -- The particle, such as in "lukke op", is given as a string.
 
-    mkV : V -> Str -> V ;
+    mkV : V -> Str -> V ; -- particle verb, e.g. lukke + op
   } ;
 
 
@@ -216,7 +216,7 @@
 --
 -- By default, the auxiliary is "have". This function changes it to "være".
 
-  vaereV : V -> V ;
+  vaereV : V -> V ; -- force auxiliary "være"
 
 
 
@@ -226,8 +226,8 @@
 -- Some words are used in passive forms only, e.g. "undres", some as
 -- reflexive e.g. "forestille sig".
 
-  depV  : V -> V ;
-  reflV : V -> V ;
+  depV  : V -> V ; -- deponent, e.g. "undres"
+  reflV : V -> V ; -- reflexive, e.g. "forestille sig"
 
 
 --3 Two-place verbs
@@ -236,9 +236,9 @@
 -- (transitive verbs). Notice that, if a particle is needed, it comes from the $V$.
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;
-    mkV2 : V -> Prep -> V2 ;
+    mkV2 : Str -> V2 ; --%
+    mkV2 : V -> V2 ;  -- direct object
+    mkV2 : V -> Prep -> V2 ; -- prepositional object
   } ;
 
 
@@ -256,7 +256,7 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;
@@ -266,17 +266,17 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given as an adverb..
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 --.
 
@@ -340,7 +340,7 @@
 
   makeNP : Str -> Str -> Number -> Gender -> NP ; 
   makeNP x y n g = 
-    {s = table {NPPoss _ => x ; _ => y} ; a = agrP3 g n ;
+    {s = table {NPPoss _ _ => x ; _ => y} ; a = agrP3 g n ;
      lock_NP = <>} ;
 
   mk3A = mk3ADeg ;
diff --git a/lib/src/danish/StructuralDan.gf b/lib/src/danish/StructuralDan.gf
--- a/lib/src/danish/StructuralDan.gf
+++ b/lib/src/danish/StructuralDan.gf
@@ -100,7 +100,7 @@
   whatPl_IP = {s = \\_ => "hvilke" ; g = Utr ; n = Pl} ; ---- infl
   when_IAdv = ss "hvornår" ;
   when_Subj = ss "når" ;
-  where_IAdv = ss "hver" ;
+  where_IAdv = ss "hvor" ;
   which_IQuant = {
     s = table {
       Sg => genderForms "hvilken" "hvilket" ;
@@ -116,8 +116,8 @@
   yes_Utt = ss ["ja"] ;
   youSg_Pron = 
     MorphoDan.mkNP "du" "dig" "din" "dit" "dine" Utr Sg P2 ; ----
-  youPl_Pron = MorphoDan.mkNP "i" "jer" "jeres" "jeres" "jeres"  Utr Pl P2 ;
-  youPol_Pron = MorphoDan.mkNP "Dere" "Dere" "Deres" "Deres" "Deres"  Utr Sg P2 ; --- wrong in refl
+  youPl_Pron = MorphoDan.mkNP "I" "jer" "jeres" "jeres" "jeres"  Utr Pl P2 ;
+  youPol_Pron = MorphoDan.mkNP "De" "Dem" "Deres" "Deres" "Deres"  Utr Sg P2 ; --- wrong in refl
   have_V2 = dirV2 have_V ;
 
 -- Auxiliaries that are used repeatedly.
diff --git a/lib/src/demo/DemoEng.gf b/lib/src/demo/DemoEng.gf
--- a/lib/src/demo/DemoEng.gf
+++ b/lib/src/demo/DemoEng.gf
@@ -1,6 +1,26 @@
 --# -path=.:alltenses
 
-concrete DemoEng of Demo = LangEng ** 
+concrete DemoEng of Demo = LangEng - [
+          PredetNP, PPartNP, AdvNP, RelNP, DetNP, DetQuantOrd,
+            NumDigits, AdNum, OrdDigits, OrdNumeral, OrdSuperl, MassNP,
+            ComplN2, ComplN3, UseN2, Use2N3, Use3N3, AdjCN, RelCN,
+          AdvCN, SentCN, ApposCN,
+          PassV2, CompAdv, 
+            -- CompNP,
+            SlashV2V, SlashV2VNP, ---
+          ComparA, ComplA2, ReflA2, UseA2, UseComparA, CAdvAP, AdjOrd, SentAP, AdAP,
+          PredSCVP, AdvSlash, SlashPrep, SlashVS, 
+            EmbedS, EmbedQS, EmbedVP, UseSlash, AdvS, RelS, 
+          CompIP,
+          PConjConj, VocNP, UttVP,
+          FunRP,
+          nothing_NP, nobody_NP, please_Voc, otherwise_PConj, therefore_PConj, but_PConj,
+            language_title_Utt, whatPl_IP, whoPl_IP, if_then_Conj, either7or_DConj,
+            both7and_DConj, much_Det, that_Subj, no_Quant,
+          ImpersCl, GenericCl, CleftNP, CleftAdv, ProgrVP, ImpPl1, ImpP3,
+            -- ExistNP, ---
+          ConsNP, ConsAdv, ConsS, ConsRS, ConsAP
+  ] ** 
   open LangEng in {
 
   lin 
diff --git a/lib/src/demo/DemoGer.gf b/lib/src/demo/DemoGer.gf
--- a/lib/src/demo/DemoGer.gf
+++ b/lib/src/demo/DemoGer.gf
@@ -1,6 +1,26 @@
 --# -path=.:alltenses
 
-concrete DemoGer of Demo = LangGer ** 
+concrete DemoGer of Demo = LangGer - [
+          PredetNP, PPartNP, AdvNP, RelNP, DetNP, DetQuantOrd,
+            NumDigits, AdNum, OrdDigits, OrdNumeral, OrdSuperl, MassNP,
+            ComplN2, ComplN3, UseN2, Use2N3, Use3N3, AdjCN, RelCN,
+          AdvCN, SentCN, ApposCN,
+          PassV2, CompAdv, 
+            -- CompNP,
+            SlashV2V, SlashV2VNP, ---
+          ComparA, ComplA2, ReflA2, UseA2, UseComparA, CAdvAP, AdjOrd, SentAP, AdAP,
+          PredSCVP, AdvSlash, SlashPrep, SlashVS, 
+            EmbedS, EmbedQS, EmbedVP, UseSlash, AdvS, RelS, 
+          CompIP,
+          PConjConj, VocNP, UttVP,
+          FunRP,
+          nothing_NP, nobody_NP, please_Voc, otherwise_PConj, therefore_PConj, but_PConj,
+            language_title_Utt, whatPl_IP, whoPl_IP, if_then_Conj, either7or_DConj,
+            both7and_DConj, much_Det, that_Subj, no_Quant,
+          ImpersCl, GenericCl, CleftNP, CleftAdv, ProgrVP, ImpPl1, ImpP3,
+            -- ExistNP, ---
+          ConsNP, ConsAdv, ConsS, ConsRS, ConsAP
+  ] ** 
   open LangGer in {
 
   lin 
diff --git a/lib/src/demo/DemoSpa.gf b/lib/src/demo/DemoSpa.gf
--- a/lib/src/demo/DemoSpa.gf
+++ b/lib/src/demo/DemoSpa.gf
@@ -1,6 +1,26 @@
 --# -path=.:alltenses
 
-concrete DemoSpa of Demo = LangSpa ** 
+concrete DemoSpa of Demo = LangSpa  - [
+          PredetNP, PPartNP, AdvNP, RelNP, DetNP, DetQuantOrd,
+            NumDigits, AdNum, OrdDigits, OrdNumeral, OrdSuperl, MassNP,
+            ComplN2, ComplN3, UseN2, Use2N3, Use3N3, AdjCN, RelCN,
+          AdvCN, SentCN, ApposCN,
+          PassV2, CompAdv, 
+            -- CompNP,
+            SlashV2V, SlashV2VNP, ---
+          ComparA, ComplA2, ReflA2, UseA2, UseComparA, CAdvAP, AdjOrd, SentAP, AdAP,
+          PredSCVP, AdvSlash, SlashPrep, SlashVS, 
+            EmbedS, EmbedQS, EmbedVP, UseSlash, AdvS, RelS, 
+          CompIP,
+          PConjConj, VocNP, UttVP,
+          FunRP,
+          nothing_NP, nobody_NP, please_Voc, otherwise_PConj, therefore_PConj, but_PConj,
+            language_title_Utt, whatPl_IP, whoPl_IP, if_then_Conj, either7or_DConj,
+            both7and_DConj, much_Det, that_Subj, no_Quant,
+          ImpersCl, GenericCl, CleftNP, CleftAdv, ProgrVP, ImpPl1, ImpP3,
+            -- ExistNP, ---
+          ConsNP, ConsAdv, ConsS, ConsRS, ConsAP
+  ] ** 
   open LangSpa in {
 
   lin 
diff --git a/lib/src/demo/DemoSwe.gf b/lib/src/demo/DemoSwe.gf
--- a/lib/src/demo/DemoSwe.gf
+++ b/lib/src/demo/DemoSwe.gf
@@ -1,6 +1,26 @@
 --# -path=.:alltenses
 
-concrete DemoSwe of Demo = LangSwe ** 
+concrete DemoSwe of Demo = LangSwe - [
+          PredetNP, PPartNP, AdvNP, RelNP, DetNP, DetQuantOrd,
+            NumDigits, AdNum, OrdDigits, OrdNumeral, OrdSuperl, MassNP,
+            ComplN2, ComplN3, UseN2, Use2N3, Use3N3, AdjCN, RelCN,
+          AdvCN, SentCN, ApposCN,
+          PassV2, CompAdv, 
+            -- CompNP,
+            SlashV2V, SlashV2VNP, ---
+          ComparA, ComplA2, ReflA2, UseA2, UseComparA, CAdvAP, AdjOrd, SentAP, AdAP,
+          PredSCVP, AdvSlash, SlashPrep, SlashVS, 
+            EmbedS, EmbedQS, EmbedVP, UseSlash, AdvS, RelS, 
+          CompIP,
+          PConjConj, VocNP, UttVP,
+          FunRP,
+          nothing_NP, nobody_NP, please_Voc, otherwise_PConj, therefore_PConj, but_PConj,
+            language_title_Utt, whatPl_IP, whoPl_IP, if_then_Conj, either7or_DConj,
+            both7and_DConj, much_Det, that_Subj, no_Quant,
+          ImpersCl, GenericCl, CleftNP, CleftAdv, ProgrVP, ImpPl1, ImpP3,
+            -- ExistNP, ---
+          ConsNP, ConsAdv, ConsS, ConsRS, ConsAP
+  ] ** 
   open LangSwe in {
 
   lin 
diff --git a/lib/src/dutch/AdverbDut.gf b/lib/src/dutch/AdverbDut.gf
--- a/lib/src/dutch/AdverbDut.gf
+++ b/lib/src/dutch/AdverbDut.gf
@@ -15,6 +15,8 @@
 
     AdAdv = cc2 ;
 
+    PositAdAAdj a = {s = a.s ! Posit ! APred} ;
+
     SubjS subj s = {s = subj.s ++ s.s ! Sub} ;
 
     AdnCAdv cadv = {s = cadv.s ++ conjThan} ;
diff --git a/lib/src/dutch/CatDut.gf b/lib/src/dutch/CatDut.gf
--- a/lib/src/dutch/CatDut.gf
+++ b/lib/src/dutch/CatDut.gf
@@ -44,7 +44,7 @@
 -- Noun
 
     CN = {s : Adjf => NForm => Str ; g : Gender} ;
-    NP = {s : NPCase => Str ; a : Agr} ;
+    NP = {s : NPCase => Str ; a : Agr ; isPron : Bool} ;
     Pron = Pronoun ;
 
     Det = {s,sp : Gender => Str ; n : Number ; a : Adjf} ;
diff --git a/lib/src/dutch/ConjunctionDut.gf b/lib/src/dutch/ConjunctionDut.gf
--- a/lib/src/dutch/ConjunctionDut.gf
+++ b/lib/src/dutch/ConjunctionDut.gf
@@ -9,9 +9,9 @@
 
     ConjAdv conj ss = conjunctDistrSS conj ss ;
 
-    ConjNP conj ss = conjunctDistrTable NPCase conj ss ** {
+    ConjNP conj ss = heavyNP (conjunctDistrTable NPCase conj ss ** {
       a = {g = Utr ; n = conjNumber conj.n ss.a.n ; p = ss.a.p}
-      } ;
+      }) ;
 
     ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
       isPre = ss.isPre
diff --git a/lib/src/dutch/ExtraDut.gf b/lib/src/dutch/ExtraDut.gf
--- a/lib/src/dutch/ExtraDut.gf
+++ b/lib/src/dutch/ExtraDut.gf
@@ -35,4 +35,10 @@
 --
 --} 
 
+
+lin
+    ICompAP ap = {s = \\_ => "hoe" ++ ap.s ! APred} ; 
+
+    IAdvAdv adv = {s = "hoe" ++ adv.s} ;
+
 }
diff --git a/lib/src/dutch/ExtraDutAbs.gf b/lib/src/dutch/ExtraDutAbs.gf
--- a/lib/src/dutch/ExtraDutAbs.gf
+++ b/lib/src/dutch/ExtraDutAbs.gf
@@ -1,6 +1,6 @@
 abstract ExtraDutAbs = Extra [
   VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,
-  VV,VP,Conj] ** 
+  VV,VP,Conj,IComp,ICompAP,IAdvAdv,Adv,AP,IAdv] ** 
 {
 --{
 --
diff --git a/lib/src/dutch/LexiconDut.gf b/lib/src/dutch/LexiconDut.gf
--- a/lib/src/dutch/LexiconDut.gf
+++ b/lib/src/dutch/LexiconDut.gf
@@ -39,6 +39,7 @@
   go_V = zijnV gaan_V ;
   hope_VS = mkVS (mkV "hopen") ;
   house_N = mkN "huis" neuter ;
+  know_VQ = mkVQ weten_V ;
   know_VS = mkVS weten_V ;
   married_A2 = mkA2 (mkA "getrouwd") (mkPrep "met") ;
   mother_N2 = mkN2 (mkN "moeder") ;
@@ -49,7 +50,7 @@
   say_VS = mkVS zeggen_V ;
   see_V2 = mkV2 zien_V ;
   sell_V3 = mkV3 (mkV "verkopen" "verkocht" "verkocht") ;
-  send_V3 = mkV3 (mkV "sturen") ;
+  send_V3 = mkV3 (mkV "sturen") (mkPrep "naar") ;
   sleep_V = slapen_V ;
   small_A = mkA "klein" ;
   talk_V3 = mkV3 (mkV "praten") (mkPrep "met") (mkPrep "over") ;
diff --git a/lib/src/dutch/NounDut.gf b/lib/src/dutch/NounDut.gf
--- a/lib/src/dutch/NounDut.gf
+++ b/lib/src/dutch/NounDut.gf
@@ -19,21 +19,22 @@
 
     UsePron pron = {
       s = table {NPNom => pron.unstressed.nom ; NPAcc => pron.unstressed.acc} ;
-      a = pron.a
+      a = pron.a ;
+      isPron = True
       } ;
 
-    PredetNP pred np = {
+    PredetNP pred np = heavyNP {
       s = \\c => 
         pred.s ! np.a.n ! np.a.g ++ np.s ! c ; ---- g
       a = np.a
       } ;
 
-    PPartNP np v2 = {
+    PPartNP np v2 = heavyNP {
       s = \\c => np.s ! c ++ v2.s ! VPerf ; -- invar part
       a = np.a
       } ;
 
-    AdvNP np adv = {
+    AdvNP np adv = heavyNP {
       s = \\c => np.s ! c ++ adv.s ;
       a = np.a
       } ;
diff --git a/lib/src/dutch/NumeralDut.gf b/lib/src/dutch/NumeralDut.gf
--- a/lib/src/dutch/NumeralDut.gf
+++ b/lib/src/dutch/NumeralDut.gf
@@ -3,47 +3,50 @@
 flags optimize = all_subs ;
 
 lincat 
-  Digit = {s : DForm => CardOrd => Str} ;
-  Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
+  Digit = {s : DForm => CardOrd => Str ; en : Str} ;
+  Sub10 = {s : DForm => CardOrd => Str ; n : Number ; en : Str ; attr : Str} ;
   Sub100, Sub1000, Sub1000000 = 
-          {s :          CardOrd => Str ; n : Number} ;
+          {s :          CardOrd => Str ; n : Number ; attr : Str} ;
 
 lin 
   num x = x ;
 
   n2 = mkDigit  "twee"  "twaalf"  "twintig"  "tweede" ;
   n3 = mkDigit  "drie"  "dertien" "dertig"  "derde" ;
-  n4 = mkDigit  "vier" "veertien" "veertig" "vierde" ;
-  n5 = mkDigit  "vijf" "vijftien" "vijftig" "vijfde" ;
-  n6 = mkDigit  "zes" "zestien" "zestig" "zesde" ;
+  n4 = mkDigit  "vier"  "veertien" "veertig" "vierde" ;
+  n5 = mkDigit  "vijf"  "vijftien" "vijftig" "vijfde" ;
+  n6 = mkDigit  "zes"   "zestien" "zestig" "zesde" ;
   n7 = mkDigit  "zeven" "zeventien" "zeventig" "zevende" ;
-  n8 = mkDigit  "acht" "achttien"   "tachtig"  "achtste" ;
+  n8 = mkDigit  "acht"  "achttien"   "tachtig"  "achtste" ;
   n9 = mkDigit  "negen" "negentien" "negentig" "negende" ;
 
   pot01 = {
     s = \\f => table {
-          NCard g _ => "één" ;
+          NCard g _ => "een" ; ---- "één" ;
           NOrd af => (regAdjective "eerst").s ! Posit ! af
           } ; 
-    n = Sg
+    n = Sg ;
+    attr = [] ;
+    en = "en"
     } ;
-  pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ;
-  pot110 = {s = cardOrd "tien" "tiende" ; n = Pl} ;
-  pot111 = {s = cardOrd "elf" "elfde" ; n = Pl} ;
-  pot1to19 d = {s = d.s ! DTeen; n = Pl} ;
-  pot0as1 n = {s = n.s ! DUnit; n = n.n } ;
-  pot1 d = {s = d.s ! DTen; n = Pl} ;
-  pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "en" ++ d.s ! DTen ! g; n = Pl} ;
+  pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl ; en = d.en ; attr = d.s ! DUnit ! invNum ++ BIND} ;
+  pot110 = {s = cardOrd "tien" "tiende" ; n = Pl ; attr = "tien" ++ BIND} ;
+  pot111 = {s = cardOrd "elf" "elfde" ; n = Pl ; attr = "elf" ++ BIND} ;
+  pot1to19 d = addAttr {s = d.s ! DTeen ; n = Pl} ;
+  pot0as1 n = {s = n.s ! DUnit; n = n.n ; attr = n.attr} ;
+  pot1 d = addAttr {s = d.s ! DTen ; n = Pl} ;
+  pot1plus d e = addAttr {s = \\g => 
+    e.s ! DUnit ! invNum ++ BIND ++ e.en ++ BIND ++ d.s ! DTen ! g ; n = Pl} ;
   pot1as2 n = n ;
   pot2 d = 
-    {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "honderd" "honderdste" ! g ; n = Pl} ;
+    addAttr {s = \\g => d.attr ++ cardOrd "honderd" "honderdste" ! g ; n = Pl} ;
   pot2plus d e = 
-    {s = \\g => d.s ! DUnit ! invNum ++ "duizend" ++ e.s ! g ; n = Pl} ;
+    addAttr {s = \\g => d.attr ++ "honderd" ++ BIND ++ e.s ! g ; n = Pl} ;
   pot2as3 n = n ;
   pot3 n = 
-    {s = \\g => n.s ! invNum ++ cardOrd "duizend" "duizendste" ! g ; n = Pl} ; 
+    addAttr {s = \\g => n.attr ++ cardOrd "duizend" "duizendste" ! g ; n = Pl} ; 
   pot3plus n m = 
-    {s = \\g => n.s ! invNum ++ "duizend" ++ m.s ! g ; n = Pl} ;
+    addAttr {s = \\g => n.attr ++ "duizend" ++ m.s ! g ; n = Pl} ;
 
 
   lincat 
@@ -82,7 +85,7 @@
       s : CardOrd => Str
     } ;
 
-  LinDigit = {s : DForm => CardOrd => Str} ;
+  LinDigit = {s : DForm => CardOrd => Str ; en : Str} ;
 
   cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte ->
     let dritt = init dritte in
@@ -97,8 +100,12 @@
            DUnit => cardOrd drei dritte ;
            DTeen => cardOrd dreizehn (dreizehn + "de") ;
            DTen  => cardOrd dreissig (dreissig + "ste")
-           }
+           } ;
+     en = case drei of {_ + "e" => "ën" ; _ => "en"}
      } ;
   invNum : CardOrd = NCard Utr Nom ;
+
+  addAttr : {s : CardOrd => Str ; n : Number} -> 
+    {s : CardOrd => Str ; n : Number ; attr : Str} = \n -> n ** {attr = n.s ! invNum ++ BIND} ;
 
 }
diff --git a/lib/src/dutch/ParadigmsDut.gf b/lib/src/dutch/ParadigmsDut.gf
--- a/lib/src/dutch/ParadigmsDut.gf
+++ b/lib/src/dutch/ParadigmsDut.gf
@@ -32,43 +32,31 @@
 -- To abstract over gender names, we define the following identifiers.
 
 oper
-  masculine : Gender ;
-  feminine  : Gender ;
-  neuter    : Gender ;
-  utrum     : Gender ;
+  masculine : Gender ; --%
+  feminine  : Gender ; --%
+  neuter    : Gender ; --%
+  utrum     : Gender ; --%
 
-  de,het : Gender ;
+  de  : Gender ; -- non-neutrum
+  het : Gender ; -- neutrum
 
-  masculine = Utr ;
-  feminine  = Utr ;
-  het,neuter = Neutr ;
-  de,utrum = Utr ;
 
   
 --2 Nouns
 
   mkN : overload {
-    mkN : (muis : Str) -> N ;
-    mkN : (bit : Str) -> Gender -> N ;
-    mkN : (gat,gaten : Str) -> Gender -> N ;
-  } ;
-  mkN = overload {
-    mkN : (muis : Str) -> N = \a -> lin N (regNoun a) ;
-    mkN : (bit : Str) -> Gender -> N = \a,b -> lin N (regNounG a b) ;
-    mkN : (gat,gaten : Str) -> Gender -> N = \a,b,c -> lin N (mkNoun a b c) ;
+    mkN : (muis : Str) -> N ;   -- de muis-muisen, with some predictable exceptions
+    mkN : (bit : Str) -> Gender -> N ; -- if gender is not predictable
+    mkN : (gat,gaten : Str) -> Gender -> N ; -- worst-case for nouns
   } ;
 
 -- Relational nouns need a preposition. The most common is "van".
 
   mkN2 : overload {
-    mkN2 : N -> N2 ; 
-    mkN2 : N -> Prep -> N2
+    mkN2 : N -> N2 ;        -- relational noun with preposition van
+    mkN2 : N -> Prep -> N2  -- other preposition than van
     } ;   
 
-  mkN2 = overload {
-    mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = "van"}) ; 
-    mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p.s}) ; 
-    } ;   
 
 ---- Use the function $mkPrep$ or see the section on prepositions below to  
 ---- form other prepositions.
@@ -76,40 +64,31 @@
 ----
 ---- Three-place relational nouns ("die Verbindung von x nach y") need two prepositions.
 --
-  mkN3 : N -> Prep -> Prep -> N3 ;
-  mkN3 n p q = lin N3 (n ** {c2 = p.s ; c3 = q.s}) ; 
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. afstand + van + naar
 
 --3 Proper names and noun phrases
 
   mkPN : overload {
-    mkPN : Str -> PN ;
-    } ;
-
-  mkPN = overload {
-    mkPN : Str -> PN = \s -> lin PN {s = \\_ => s} ;
+    mkPN : Str -> PN ; -- proper name
     } ;
 
 
 --2 Adjectives
 
   mkA : overload {
-    mkA : (vers : Str) -> A ;
-    mkA : (goed,goede,goeds,beter,best : Str) -> A ;
+    mkA : (vers : Str) -> A ; -- regular adjective
+    mkA : (goed,goede,goeds,beter,best : Str) -> A ; -- irregular adjective
     } ;
 
-  mkA = overload {
-    mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;
-    mkA : (goed,goede,goeds,beter,best : Str) -> A = \a,b,c,d,e -> lin A (mkAdjective a b c d e) ;
-    } ;
 
 -- Invariable adjective are a special case. 
 
-  invarA : Str -> A ;            -- prima
+  invarA : Str -> A ;            -- adjective with just one form
 
 
 ---- Two-place adjectives are formed by adding a preposition to an adjective.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ;  -- e.g. getrouwd + met
 
 --2 Adverbs
 
@@ -124,62 +103,31 @@
 -- A preposition is formed from a string.
 
   mkPrep : Str -> Prep ;
-  mkPrep s = lin Prep (ss s) ;
+
   
 ---- A couple of common prepositions (always with the dative).
 --
   van_Prep : Prep ;
-  van_Prep = mkPrep "van" ;
   te_Prep  : Prep ;
-  te_Prep = mkPrep "te" ;
+
+
 --
 --2 Verbs
 
   mkV : overload {
-    mkV : (aaien : Str) -> V ;
-    mkV : (breken,brak,gebroken : Str) -> V ;
-    mkV : (breken,brak,braken,gebroken : Str) -> V ;
-    mkV : (aai,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V ;
+    mkV : (aaien : Str) -> V ;  -- regular verb
+    mkV : (breken,brak,gebroken : Str) -> V ; -- theme of irregular verb
+    mkV : (breken,brak,braken,gebroken : Str) -> V ; -- also past plural irregular
+    mkV : (aai,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V ; -- worst-case verb
 
 -- To add a movable suffix e.g. "auf(fassen)".
 
-    mkV : Str -> V -> V
-    } ;
-
-  mkV = overload {
-    mkV : (aaien : Str) -> V = 
-      \s -> lin V (v2vv (regVerb s)) ;
-    mkV : (breken,brak,gebroken : Str) -> V = 
-      \a,b,c -> lin V (v2vv (irregVerb a b c)) ;
-    mkV : (breken,brak,braken,gebroken : Str) -> V = 
-      \a,b,c,d -> lin V (v2vv (irregVerb2 a b c d)) ;
-    mkV : (aai,aait,aaien,aaide,aaiden,geaaid : Str) -> V =
-      \a,b,c,d,f,g -> lin V (v2vv (mkVerb a b c d d f g)) ;
-    mkV : Str -> V -> V = \v,s ->lin V (prefixV v s) ;
+    mkV : Str -> V -> V -- add movable suffix, e.g. af + stappen
     } ;
 
-  zijnV  : V -> V ;
-  zijnV v = lin V (v2vvAux v VZijn) ;
-
-  reflV  : V -> V ;
-  reflV v = lin V {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = VRefl} ;
-
-  zijn_V : V = lin V ResDut.zijn_V ;
-  hebben_V : V = lin V ResDut.hebben_V ;
-
---3 Two-place verbs
-
-  mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;
-    mkV2 : V -> Prep -> V2 ;
-    } ;
+  zijnV  : V -> V ; -- force zijn as auxiliary (default hebben)
 
-  mkV2 = overload {
-    mkV2 : Str -> V2 = \s -> lin V2 (v2vv (regVerb s) ** {c2 = []}) ;
-    mkV2 : V -> V2 = \s -> lin V2 (s ** {c2 = []}) ;
-    mkV2 : V -> Prep -> V2  = \s,p -> lin V2 (s ** {c2 = p.s}) ;
-    } ;
+  reflV  : V -> V ; -- reflexive verb e.g. zich afvragen
 
 
 --
@@ -190,24 +138,18 @@
 -- the first one or both can be absent.
 
   mkV3 : overload {
-    mkV3 : V -> V3 ;                  -- give,accusative,dative
-    mkV3 : V -> Prep -> V3 ;          -- senden,(accusative),nach
-    mkV3 : V -> Prep -> Prep -> V3 ;  -- sprechen, mit, über
+    mkV3 : V -> V3 ;                  -- geven,(accusative),(dative)
+    mkV3 : V -> Prep -> V3 ;          -- sturen,(accusative),naar
+    mkV3 : V -> Prep -> Prep -> V3 ;  -- praten, met, over
     } ;
 
-  mkV3 = overload {
-    mkV3 : V -> Prep -> Prep -> V3 = mkmaxV3 ;
-    mkV3 : V -> Prep -> V3 = \v,p -> mkmaxV3 v (mkPrep []) p ; 
-    mkV3 : V -> V3 = \v -> mkmaxV3 v (mkPrep []) (mkPrep []) ; 
-    } ;
-  mkmaxV3 : V -> Prep -> Prep -> V3 = \v,c,d -> lin V3 (v ** {c2 = c.s ; c3 = d.s}) ;
 
 ----3 Other complement patterns
 ----
 ---- Verbs and adjectives can take complements such as sentences,
 ---- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;
@@ -231,9 +173,88 @@
 --
 --
 
+
+--.
+
   mkOrd : A -> Ord = \a -> lin Ord {s = a.s ! Posit} ;
 
-----.
+  mkN = overload {
+    mkN : (muis : Str) -> N 
+    = \a -> lin N (regNoun a) ;
+    mkN : (bit : Str) -> Gender -> N 
+    = \a,b -> lin N (regNounG a b) ;
+    mkN : (gat,gaten : Str) -> Gender -> N 
+    = \a,b,c -> lin N (mkNoun a b c) ;
+  } ;
+
+  mkN2 = overload {
+    mkN2 : N -> N2 
+    = \n -> lin N2 (n ** {c2 = "van"}) ; 
+    mkN2 : N -> Prep -> N2 
+    = \n,p -> lin N2 (n ** {c2 = p.s}) ; 
+    } ;   
+  mkN3 n p q = lin N3 (n ** {c2 = p.s ; c3 = q.s}) ; 
+
+  mkPN = overload {
+    mkPN : Str -> PN = \s -> lin PN {s = \\_ => s} ;
+    } ;
+
+  masculine = Utr ;
+  feminine  = Utr ;
+  het,neuter = Neutr ;
+  de,utrum = Utr ;
+
+  mkA = overload {
+    mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;
+    mkA : (goed,goede,goeds,beter,best : Str) -> A = \a,b,c,d,e -> lin A (mkAdjective a b c d e) ;
+    } ;
+
+  mkPrep s = lin Prep (ss s) ;
+  van_Prep = mkPrep "van" ;
+  te_Prep = mkPrep "te" ;
+
+  mkV = overload {
+    mkV : (aaien : Str) -> V = 
+      \s -> lin V (v2vv (regVerb s)) ;
+    mkV : (breken,brak,gebroken : Str) -> V = 
+      \a,b,c -> lin V (v2vv (irregVerb a b c)) ;
+    mkV : (breken,brak,braken,gebroken : Str) -> V = 
+      \a,b,c,d -> lin V (v2vv (irregVerb2 a b c d)) ;
+    mkV : (aai,aait,aaien,aaide,aaiden,geaaid : Str) -> V =
+      \a,b,c,d,f,g -> lin V (v2vv (mkVerb a b c d d f g)) ;
+    mkV : Str -> V -> V = \v,s ->lin V (prefixV v s) ;
+    } ;
+  zijnV v = lin V (v2vvAux v VZijn) ;
+  reflV v = lin V {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = VRefl} ;
+
+  zijn_V : V = lin V ResDut.zijn_V ;
+  hebben_V : V = lin V ResDut.hebben_V ;
+
+  mkV2 = overload {
+    mkV2 : Str -> V2 = \s -> lin V2 (v2vv (regVerb s) ** {c2 = []}) ;
+    mkV2 : V -> V2 = \s -> lin V2 (s ** {c2 = []}) ;
+    mkV2 : V -> Prep -> V2  = \s,p -> lin V2 (s ** {c2 = p.s}) ;
+    } ;
+
+
+--3 Two-place verbs
+
+  mkV2 : overload {
+    mkV2 : Str -> V2 ;
+    mkV2 : V -> V2 ;
+    mkV2 : V -> Prep -> V2 ;
+    } ;
+  mkV3 = overload {
+    mkV3 : V -> Prep -> Prep -> V3 = mkmaxV3 ;
+    mkV3 : V -> Prep -> V3 = \v,p -> mkmaxV3 v (mkPrep []) p ; 
+    mkV3 : V -> V3 = \v -> mkmaxV3 v (mkPrep []) (mkPrep []) ; 
+    } ;
+  mkmaxV3 : V -> Prep -> Prep -> V3 = \v,c,d -> lin V3 (v ** {c2 = c.s ; c3 = d.s}) ;
+
+
+
+
+
 ----2 Definitions of paradigms
 ----
 ---- The definitions should not bother the user of the API. So they are
diff --git a/lib/src/dutch/QuestionDut.gf b/lib/src/dutch/QuestionDut.gf
--- a/lib/src/dutch/QuestionDut.gf
+++ b/lib/src/dutch/QuestionDut.gf
@@ -93,6 +93,8 @@
       s = \\g => idet.s ! n ! g ++ num.s  ; 
       n = n
       } ;
+
+    AdvIAdv i a = {s = i.s ++ a.s} ;
  
     CompIAdv a = {s = \\_ => a.s} ;
 
diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf
--- a/lib/src/dutch/ResDut.gf
+++ b/lib/src/dutch/ResDut.gf
@@ -53,7 +53,7 @@
     shortVoc : Str -> Str -> Str = \v,s -> init v + endCons s ;
 
     endCons : Str -> Str = \s -> case s of {
-      _ + ("ts" |"rs") => s ;
+      _ + ("ts" |"rs" | "ls" | "ds" | "ns" | "ms") => s ;
       b + "s" => b + "z" ;
       b + "f" => b + "v" ;
       _ => s
@@ -82,6 +82,7 @@
     regAdjective : Str -> Adjective = \s ->  ----
       let 
         se : Str = case s of {
+          _ + "er"      => s + "e" ; ---- 
           _ + ("i"|"u") => endCons s + "e" ;
           b + v@("aa"|"ee"|"oo"|"uu") + c@?             => b + shortVoc v c + "e" ;
           b + ("ei"|"eu"|"oe"|"ou"|"ie"|"ij"|"ui") + ?  => endCons s + "e" ;
@@ -105,6 +106,7 @@
      | VPresSg1  -- ben 
      | VPresSg2  -- bent
      | VPresSg3  -- is
+     | VPresPl   -- zijn
      | VPastSg   -- was  --# notpresent
      | VPastPl   -- waren --# notpresent
      | VImp2     -- wees
@@ -121,7 +123,7 @@
   mkVerb : (_,_,_,_,_,_,_ : Str) -> 
     	Verb = \aai, aait, aaien, aaide, _, aaiden, geaaid -> {
     	s = table {
-    		VInf | VImpPl    => aaien; -- hij/zij/het/wij aaien
+    		VInf | VImpPl | VPresPl   => aaien; -- hij/zij/het/wij aaien
     		VPresSg1 | VImp2 => aai; -- ik aai
     		VPresSg2 | VPresSg3 | VImp3 => aait; -- jij aait
     		VPastSg => aaide; -- ik aaide  --# notpresent
@@ -278,6 +280,7 @@
        VPresSg1  => "ben" ; 
        VPresSg2  => "bent" ;
        VPresSg3  => "is" ;
+       VPresPl   => "zijn" ;
        VPastSg   => "was" ; --# notpresent
        VPastPl   => "waren" ; --# notpresent
        VImp2     => "wees" ;
@@ -296,6 +299,7 @@
        VPresSg1  => "heb" ; 
        VPresSg2  => "hebt" ;
        VPresSg3  => "heeft" ;
+       VPresPl   => "hebben" ;
        VPastSg   => "had" ; --# notpresent
        VPastPl   => "hadden" ; --# notpresent
        VImp2     => "heb" ;
@@ -314,6 +318,7 @@
        VPresSg1  => "zal" ; 
        VPresSg2  => "zult" ;
        VPresSg3  => "zal" ;
+       VPresPl   => "zullen" ;
        VPastSg   => "zou" ; --# notpresent
        VPastPl   => "zouden" ; --# notpresent
        VImp2     => "zoud" ;  ---- not used
@@ -332,6 +337,7 @@
        VPresSg1  => "kan" ; 
        VPresSg2  => "kunt" ;
        VPresSg3  => "kan" ; ---- kun je
+       VPresPl   => "kunnen" ;
        VPastSg   => "kon" ; --# notpresent
        VPastPl   => "konden" ; --# notpresent
        VImp2     => "kan" ;  ---- not used
@@ -393,11 +399,11 @@
     Order = Main | Inv | Sub ;
 
   oper
-    vForm : Tense -> Number -> Person -> Order -> VForm = \t,n,p,o -> case <t,n,p> of {
+    vForm : Tense -> Gender -> Number -> Person -> Order -> VForm = \t,g,n,p,o -> case <t,n,p> of {
       <Pres
         |Fut --# notpresent
-       ,Sg,P2> => case o of {
-        Inv => VPresSg1 ;
+       ,Sg,P2> => case <o,g> of {
+        <Inv,Neutr> => VPresSg1 ;   --- Neutr is a hack for familiar you, "je", in StructuralDut
         _   => VPresSg2
         } ;
       <Pres
@@ -408,7 +414,7 @@
        ,Sg,P3> => VPresSg3 ;
       <Pres 
        |Fut --# notpresent
-       ,Pl,_ > => VInf 
+       ,Pl,_ > => VPresPl
       ; --# notpresent
 
       <Past|Cond,Sg,_> => VPastSg ;   -- Fut and Cond affect zullen --# notpresent
@@ -447,8 +453,9 @@
   oper VP : Type = {
       s  : VVerb ;
       a1 : Polarity => Str ; -- niet
-      n2 : Agr => Str ;      -- dich
-      a2 : Str ;             -- heute
+      n0 : Agr => Str ;      -- je
+      n2 : Agr => Str ;      -- je vrouw
+      a2 : Str ;             -- vandaag
       isAux : Bool ;         -- is a double infinitive
       inf : Str * Bool ;     -- sagen (True = non-empty)
       ext : Str              -- dass sie kommt
@@ -460,10 +467,11 @@
   predVGen : Bool -> VVerb -> VP = \isAux, verb -> {
     s = verb ;
     a1  : Polarity => Str = negation ;
-    n2  : Agr => Str = \\a => case verb.vtype of {
+    n0  : Agr => Str = \\a => case verb.vtype of {
       VAct  => [] ;
       VRefl => reflPron ! a
       } ;
+    n2  : Agr => Str = \\a => [] ;
     a2  : Str = [] ;
     isAux = isAux ; ----
     inf : Str * Bool = <[],False> ;
@@ -477,10 +485,13 @@
 
 -- Extending a verb phrase with new constituents.
 
-  insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
+  insertObj : (Agr => Str) -> VP -> VP = insertObjNP False ;
+
+  insertObjNP : Bool -> (Agr => Str) -> VP -> VP = \isPron, obj,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
-    n2 = \\a => obj ! a ++ vp.n2 ! a ;
+    n0 = \\a => case isPron of {True  => obj ! a ; _ => []} ++ vp.n0 ! a ;
+    n2 = \\a => case isPron of {False => obj ! a ; _ => []} ++ vp.n2 ! a ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
     inf = vp.inf ;
@@ -490,6 +501,7 @@
   insertAdV : Str -> VP -> VP = \adv,vp -> {
     s = vp.s ;
     a1 = \\a => adv ++ vp.a1 ! a ; -- immer nicht
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
@@ -500,6 +512,7 @@
   insertAdv : Str -> VP -> VP = \adv,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ++ adv ;
     isAux = vp.isAux ;
@@ -510,6 +523,7 @@
   insertExtrapos : Str -> VP -> VP = \ext,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
@@ -520,6 +534,7 @@
   insertInf : Str -> VP -> VP = \inf,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ; ----
@@ -540,7 +555,7 @@
             Sub => True ;  -- glue prefix to verb
             _ => False
             } ;
-          vform = vForm t agr.n agr.p o ;
+          vform = vForm t agr.g agr.n agr.p o ;
           auxv = (auxVerb vp.s.aux).s ;
           vperf = vp.s.s ! VPerf ;
           verb : Str * Str = case <t,a> of {
@@ -551,8 +566,9 @@
             } ;
           fin   = verb.p1 ;
           neg   = vp.a1 ! b ;
+          obj0  = vp.n0 ! agr ;
           obj   = vp.n2 ! agr ;
-          compl = obj ++ neg ++ vp.a2 ++ vp.s.prefix ;
+          compl = obj0 ++ neg ++ obj ++ vp.a2 ++ vp.s.prefix ;
           inf   = 
             case <vp.isAux, vp.inf.p2, a> of {                  --# notpresent
               <True,True,Anter> => vp.s.s ! VInf ++ vp.inf.p1 ; --# notpresent
@@ -639,11 +655,16 @@
       s  = \\n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze}
       } ;
 
-  mkNP : Str -> Gender -> Number -> {s : NPCase => Str ; a : Agr} = \s,g,n -> {
-    s = \\_ => s ;
-    a = agrgP3 g n ;
-    } ;
+  mkNP : Str -> Gender -> Number -> {s : NPCase => Str ; a : Agr ; isPron : Bool} = 
+    \s,g,n -> heavyNP {
+      s = \\_ => s ;
+      a = agrgP3 g n ;
+      } ;
 
   auxVV : VVerb -> VVerb ** {isAux : Bool} = \v -> v ** {isAux = True} ;
+
+  heavyNP : 
+    {s : NPCase => Str ; a : Agr} -> {s : NPCase => Str ; a : Agr ; isPron : Bool} = \np ->
+    np ** {isPron = False} ;
 
 }
diff --git a/lib/src/dutch/StructuralDut.gf b/lib/src/dutch/StructuralDut.gf
--- a/lib/src/dutch/StructuralDut.gf
+++ b/lib/src/dutch/StructuralDut.gf
@@ -42,7 +42,7 @@
   how8many_IDet = mkDet "hoeveel" "hoeveel" Pl ;
   if_Subj = ss "als" ;
   in8front_Prep = mkPrep "voor" ;
-  i_Pron = mkPronoun "ik" "me" "m'n" "ik" "mij" "mijn" "mijne" Utr Sg P1 ;
+  i_Pron = mkPronoun "ik" "me" "mijn" "ik" "mij" "mijn" "mijne" Utr Sg P1 ;
   in_Prep = ss "in" ;
   it_Pron = mkPronoun "het" "het" "zijn" "het" "het" "zijn" "zijne" Neutr Sg P3 ;
 
@@ -103,9 +103,9 @@
   why_IAdv = ss "waarom" ;
   without_Prep = mkPrep "zonder" ;
   with_Prep = mkPrep "met" ;
-  youSg_Pron = mkPronoun "je" "je" "je" "jij" "jou" "je" "jouwe" Utr Sg P2 ;
+  youSg_Pron = mkPronoun "je" "je" "je" "jij" "jou" "je" "jouwe" Neutr Sg P2 ;  --- Neutr as hack for familiarity
   youPl_Pron = mkPronoun "jullie" "jullie" "je" "jullie" "jullie" "jullie" "uwe" Utr Pl P2 ;
-  youPol_Pron = mkPronoun "u" "u" "uw" "u" "u" "uw" "uwe" Utr Sg P3 ;
+  youPol_Pron = mkPronoun "u" "u" "uw" "u" "u" "uw" "uwe" Utr Sg P2 ;
   yes_Utt = ss "ja" ;
 
   not_Predet = mkPredet "niet" "niet" ;
diff --git a/lib/src/dutch/VerbDut.gf b/lib/src/dutch/VerbDut.gf
--- a/lib/src/dutch/VerbDut.gf
+++ b/lib/src/dutch/VerbDut.gf
@@ -42,7 +42,7 @@
     SlashV2A v ap = 
       insertObj (\\_ => ap.s ! APred) (predVv v) ** {c2 = v.c2} ;
 
-    ComplSlash vp np = insertObj (\\_ => appPrep vp.c2 np.s) vp ;
+    ComplSlash vp np = insertObjNP np.isPron (\\_ => appPrep vp.c2 np.s) vp ;
 
     SlashVV v vp = 
       let 
@@ -63,7 +63,8 @@
             insertObj (\\_ => appPrep v.c2 np.s) (
               predVv v)))) ** {c2 = v.c2} ;
 
-    UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV zijn_V) ; -- agr not used
+    UseComp comp = insertObj comp.s (predV zijn_V) ; -- agr not used
+    CompCN cn = {s = \\a => cn.s ! Strong ! NF a.n Nom} ;
     CompAP ap = {s = \\_ => ap.s ! APred} ;
     CompNP np = {s = \\_ => np.s ! NPNom} ;
     CompAdv a = {s = \\_ => a.s} ;
diff --git a/lib/src/english/AdjectiveEng.gf b/lib/src/english/AdjectiveEng.gf
--- a/lib/src/english/AdjectiveEng.gf
+++ b/lib/src/english/AdjectiveEng.gf
@@ -50,4 +50,6 @@
       isPre = True
       } ;
 
+    AdvAP ap adv = {s = \\a => ap.s ! a ++ adv.s ; isPre = False} ;
+
 }
diff --git a/lib/src/english/AdverbEng.gf b/lib/src/english/AdverbEng.gf
--- a/lib/src/english/AdverbEng.gf
+++ b/lib/src/english/AdverbEng.gf
@@ -12,6 +12,7 @@
     PrepNP prep np = {s = prep.s ++ np.s ! Acc} ;
 
     AdAdv = cc2 ;
+    PositAdAAdj a = {s = a.s ! AAdv} ;
 
     SubjS = cc2 ;
 
diff --git a/lib/src/english/CatEng.gf b/lib/src/english/CatEng.gf
--- a/lib/src/english/CatEng.gf
+++ b/lib/src/english/CatEng.gf
@@ -51,7 +51,7 @@
     CN = {s : Number => Case => Str ; g : Gender} ;
     NP = {s : Case => Str ; a : Agr} ;
     Pron = {s : Case => Str ; sp : Case => Str ; a : Agr} ;
-    Det = {s : Str ; sp : Case => Str ; n : Number} ;
+    Det = {s : Str ; sp : Case => Str ; n : Number ; hasNum : Bool} ;
     Predet = {s : Str} ;
     Ord = { s : Case => Str } ;
     Num  = {s : Case => Str ; n : Number ; hasCard : Bool} ;
@@ -76,8 +76,8 @@
     V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
     V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
     V3 = Verb ** {c2, c3 : Str} ;
-    VV = {s : VVForm => Str ; isAux : Bool} ;
-    V2V = Verb ** {c2 : Str ; isAux : Bool} ;
+    VV = {s : VVForm => Str ; typ : VVType} ;
+    V2V = Verb ** {c2 : Str ; typ : VVType} ;
 
     A = {s : AForm => Str} ;
     A2 = {s : AForm => Str ; c2 : Str} ;
diff --git a/lib/src/english/ConjunctionEng.gf b/lib/src/english/ConjunctionEng.gf
--- a/lib/src/english/ConjunctionEng.gf
+++ b/lib/src/english/ConjunctionEng.gf
@@ -21,6 +21,10 @@
       c = ss.c
       } ;
 
+    ConjIAdv = conjunctDistrSS ;   
+
+    ConjCN co ns = conjunctDistrTable2 Number Case co ns ** {g = Neutr} ; --- gender?
+
 -- These fun's are generated from the list cat's.
 
     BaseS = twoSS ;
@@ -33,12 +37,18 @@
     ConsAP xs x = consrTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
     BaseRS x y = twoTable Agr x y ** {c = y.c} ;
     ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ;
+    BaseIAdv = twoSS ;
+    ConsIAdv = consrSS comma ;
+    BaseCN = twoTable2 Number Case ;
+    ConsCN = consrTable2 Number Case comma ;
 
   lincat
     [S] = {s1,s2 : Str} ;
     [Adv] = {s1,s2 : Str} ;
+    [IAdv] = {s1,s2 : Str} ;
     [NP] = {s1,s2 : Case => Str ; a : Agr} ;
     [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ;
     [RS] = {s1,s2 : Agr => Str ; c : Case} ;
+    [CN] = {s1,s2 : Number => Case => Str} ;
 
 }
diff --git a/lib/src/english/DictEng.gf b/lib/src/english/DictEng.gf
# file too large to diff: lib/src/english/DictEng.gf
diff --git a/lib/src/english/DictEngAbs.gf b/lib/src/english/DictEngAbs.gf
--- a/lib/src/english/DictEngAbs.gf
+++ b/lib/src/english/DictEngAbs.gf
@@ -84,43658 +84,41673 @@
 fun abingdon_PN : PN;
 fun abject_A : A;
 fun abjection_N : N;
-fun abjectly_Adv : Adv;
-fun abjuration_N : N;
-fun abjure_V2 : V2;
-fun ablative_A : A;
-fun ablative_N : N;
-fun ablaut_N : N;
-fun ablaze_A : A;
-fun ablaze_Adv : Adv;
-fun able_A : A;
-fun able_bodied_A : A;
-fun ablution_N : N;
-fun ably_Adv : Adv;
-fun abnegation_N : N;
-fun abnormal_A : A;
-fun abnormality_N : N;
-fun abnormally_Adv : Adv;
-fun abo_N : N;
-fun aboard_Adv : Adv;
-fun abode_N : N;
-fun abolish_V2 : V2;
-fun abolition_N : N;
-fun abolitionist_N : N;
-fun abominable_A : A;
-fun abominably_Adv : Adv;
-fun abominate_V2 : V2;
-fun abomination_N : N;
-fun aboriginal_A : A;
-fun aboriginal_N : N;
-fun aborigine_N : N;
-fun abort_V : V;
-fun abort_V2 : V2;
-fun abortion_N : N;
-fun abortionist_N : N;
-fun abortive_A : A;
-fun abortively_Adv : Adv;
-fun abound_V : V;
-fun about_Adv : Adv;
-fun about_face_N : N;
-fun about_face_V : V;
-fun above_Adv : Adv;
-fun above_board_A : A;
-fun above_board_Adv : Adv;
-fun above_mentioned_A : A;
-fun above_named_A : A;
-fun abracadabra_N : N;
-fun abrade_V2 : V2;
-fun abraham_PN : PN;
-fun abrasion_N : N;
-fun abrasive_A : A;
-fun abrasive_N : N;
-fun abreast_Adv : Adv;
-fun abridge_V2 : V2;
-fun abridgement_N : N;
-fun abridgment_N : N;
-fun abroad_Adv : Adv;
-fun abrogate_V2 : V2;
-fun abrogation_N : N;
-fun abrupt_A : A;
-fun abruptly_Adv : Adv;
-fun abruptness_N : N;
-fun abscess_N : N;
-fun abscond_V : V;
-fun absence_N : N;
-fun absent_A : A;
-fun absent_V2 : V2;
-fun absent_minded_A : A;
-fun absent_mindedly_Adv : Adv;
-fun absent_mindedness_N : N;
-fun absentee_N : N;
-fun absenteeism_N : N;
-fun absently_Adv : Adv;
-fun absinth_N : N;
-fun absinthe_N : N;
-fun absolute_A : A;
-fun absolutely_Adv : Adv;
-fun absolution_N : N;
-fun absolutism_N : N;
-fun absolve_V2 : V2;
-fun absorb_V2 : V2;
-fun absorbent_A : A;
-fun absorbent_N : N;
-fun absorption_N : N;
-fun abstain_V : V;
-fun abstainer_N : N;
-fun abstemious_A : A;
-fun abstemiously_Adv : Adv;
-fun abstemiousness_N : N;
-fun abstention_N : N;
-fun abstinence_N : N;
-fun abstract_A : A;
-fun abstract_N : N;
-fun abstract_V2 : V2;
-fun abstracted_A : A;
-fun abstractedly_Adv : Adv;
-fun abstraction_N : N;
-fun abstruse_A : A;
-fun abstrusely_Adv : Adv;
-fun abstruseness_N : N;
-fun absurd_A : A;
-fun absurdity_N : N;
-fun absurdly_Adv : Adv;
-fun abundance_N : N;
-fun abundant_A : A;
-fun abundantly_Adv : Adv;
-fun abuse_N : N;
-fun abuse_V2 : V2;
-fun abusive_A : A;
-fun abusively_Adv : Adv;
-fun abut_V : V;
-fun abutment_N : N;
-fun abysm_N : N;
-fun abysmal_A : A;
-fun abysmally_Adv : Adv;
-fun abyss_N : N;
-fun acacia_N : N;
-fun academic_A : A;
-fun academic_N : N;
-fun academically_Adv : Adv;
-fun academician_N : N;
-fun academy_N : N;
-fun accede_V : V;
-fun accelerando_A : A;
-fun accelerando_Adv : Adv;
-fun accelerando_N : N;
-fun accelerate_V : V;
-fun accelerate_V2 : V2;
-fun acceleration_N : N;
-fun accelerator_N : N;
-fun accent_N : N;
-fun accent_V2 : V2;
-fun accentuate_V2 : V2;
-fun accentuation_N : N;
-fun accept_V : V;
-fun accept_V2 : V2;
-fun acceptability_N : N;
-fun acceptable_A : A;
-fun acceptably_Adv : Adv;
-fun acceptance_N : N;
-fun acceptation_N : N;
-fun access_N : N;
-fun accessary_N : N;
-fun accessibility_N : N;
-fun accessible_A : A;
-fun accession_N : N;
-fun accessory_N : N;
-fun accidence_N : N;
-fun accident_N : N;
-fun accident_prone_A : A;
-fun accidental_A : A;
-fun accidentally_Adv : Adv;
-fun acclaim_N : N;
-fun acclaim_V2 : V2;
-fun acclamation_N : N;
-fun acclimate_V : V;
-fun acclimate_V2 : V2;
-fun acclimation_N : N;
-fun acclimatization_N : N;
-fun acclimatize_V : V;
-fun acclimatize_V2 : V2;
-fun acclivity_N : N;
-fun accolade_N : N;
-fun accommodate_V2 : V2;
-fun accommodating_A : A;
-fun accommodation_N : N;
-fun accompaniment_N : N;
-fun accompanist_N : N;
-fun accompany_V2 : V2;
-fun accomplice_N : N;
-fun accomplish_V2 : V2;
-fun accomplished_A : A;
-fun accomplishment_N : N;
-fun accord_N : N;
-fun accord_V : V;
-fun accord_V2 : V2;
-fun accordance_N : N;
-fun accordingly_Adv : Adv;
-fun accordion_N : N;
-fun accost_V2 : V2;
-fun accouchement_N : N;
-fun account_N : N;
-fun account_V : V;
-fun account_V2 : V2;
-fun accountable_A : A;
-fun accountancy_N : N;
-fun accountant_N : N;
-fun accra_PN : PN;
-fun accredit_V2 : V2;
-fun accredited_A : A;
-fun accretion_N : N;
-fun accrington_PN : PN;
-fun accrue_V : V;
-fun accumulate_V : V;
-fun accumulate_V2 : V2;
-fun accumulation_N : N;
-fun accumulative_A : A;
-fun accumulator_N : N;
-fun accuracy_N : N;
-fun accurate_A : A;
-fun accurately_Adv : Adv;
-fun accursed_A : A;
-fun accurst_A : A;
-fun accusation_N : N;
-fun accusative_A : A;
-fun accusative_N : N;
-fun accuse_V2 : V2;
-fun accuser_N : N;
-fun accusingly_Adv : Adv;
-fun accustom_V2 : V2;
-fun accustomed_A : A;
-fun ace_N : N;
-fun acerbity_N : N;
-fun acetate_N : N;
-fun acetic_A : A;
-fun acetylene_N : N;
-fun ache_N : N;
-fun ache_V : V;
-fun achievable_A : A;
-fun achieve_V2 : V2;
-fun achievement_N : N;
-fun achilles_PN : PN;
-fun acid_A : A;
-fun acid_N : N;
-fun acidic_A : A;
-fun acidify_V : V;
-fun acidify_V2 : V2;
-fun acidity_N : N;
-fun acidulated_A : A;
-fun acidulous_A : A;
-fun ack_ack_N : N;
-fun acknowledge_V2 : V2;
-fun acknowledgement_N : N;
-fun acme_N : N;
-fun acne_N : N;
-fun acolyte_N : N;
-fun aconite_N : N;
-fun acorn_N : N;
-fun acorn_cup_N : N;
-fun acoustic_A : A;
-fun acoustic_N : N;
-fun acoustics_N : N;
-fun acquaint_V2 : V2;
-fun acquaintance_N : N;
-fun acquaintanceship_N : N;
-fun acquiesce_V : V;
-fun acquiescence_N : N;
-fun acquiescent_A : A;
-fun acquire_V2 : V2;
-fun acquirement_N : N;
-fun acquisition_N : N;
-fun acquisitive_A : A;
-fun acquit_V2 : V2;
-fun acquittal_N : N;
-fun acre_N : N;
-fun acreage_N : N;
-fun acrid_A : A;
-fun acrimonious_A : A;
-fun acrimony_N : N;
-fun acrobat_N : N;
-fun acrobatic_A : A;
-fun acrobatics_N : N;
-fun acronym_N : N;
-fun acropolis_N : N;
-fun across_Adv : Adv;
-fun acrostic_N : N;
-fun acrylic_N : N;
-fun act_N : N;
-fun act_V : V;
-fun act_V2 : V2;
-fun acting_A : A;
-fun acting_N : N;
-fun actinic_A : A;
-fun actinism_N : N;
-fun action_N : N;
-fun actionable_A : A;
-fun activate_V2 : V2;
-fun activation_N : N;
-fun active_A : A;
-fun actively_Adv : Adv;
-fun activist_N : N;
-fun activity_N : N;
-fun actor_N : N;
-fun actress_N : N;
-fun actual_A : A;
-fun actuality_N : N;
-fun actually_Adv : Adv;
-fun actuarial_A : A;
-fun actuary_N : N;
-fun actuate_V2 : V2;
-fun acuity_N : N;
-fun acumen_N : N;
-fun acupuncture_N : N;
-fun acute_A : A;
-fun acutely_Adv : Adv;
-fun acuteness_N : N;
-fun ad_N : N;
-fun ad_PN : PN;
-fun ad_hoc_A : A;
-fun ad_hoc_Adv : Adv;
-fun ad_infinitum_Adv : Adv;
-fun ad_interim_Adv : Adv;
-fun ad_lib_A : A;
-fun ad_lib_Adv : Adv;
-fun ad_lib_V : V;
-fun ad_libitum_Adv : Adv;
-fun ad_man_N : N;
-fun ad_nauseam_Adv : Adv;
-fun ad_valorem_Adv : Adv;
-fun ada_PN : PN;
-fun adage_N : N;
-fun adagio_A : A;
-fun adagio_Adv : Adv;
-fun adagio_N : N;
-fun adam_PN : PN;
-fun adamant_A : A;
-fun adamant_N : N;
-fun adamantine_A : A;
-fun adapt_V2 : V2;
-fun adaptability_N : N;
-fun adaptable_A : A;
-fun adaptation_N : N;
-fun adapter_N : N;
-fun adaptor_N : N;
-fun add_V : V;
-fun add_V2 : V2;
-fun addendum_N : N;
-fun adder_N : N;
-fun addict_N : N;
-fun addict_V2 : V2;
-fun addiction_N : N;
-fun addictive_A : A;
-fun adding_machine_N : N;
-fun addis_ababa_PN : PN;
-fun addition_N : N;
-fun additional_A : A;
-fun additionally_Adv : Adv;
-fun additive_N : N;
-fun addle_A : A;
-fun addle_V : V;
-fun addle_V2 : V2;
-fun addle_brained_A : A;
-fun addle_head_N : N;
-fun addle_pated_A : A;
-fun address_N : N;
-fun address_V2 : V2;
-fun addressee_N : N;
-fun addressograph_N : N;
-fun adduce_V2 : V2;
-fun adelaide_PN : PN;
-fun adenoidal_A : A;
-fun adept_A : A;
-fun adept_N : N;
-fun adequacy_N : N;
-fun adequate_A : A;
-fun adequately_Adv : Adv;
-fun adhere_V : V;
-fun adherence_N : N;
-fun adherent_N : N;
-fun adhesion_N : N;
-fun adhesive_A : A;
-fun adhesive_N : N;
-fun adieu_N : N;
-fun adipose_A : A;
-fun adjacent_A : A;
-fun adjectival_A : A;
-fun adjective_N : N;
-fun adjoin_V : V;
-fun adjoin_V2 : V2;
-fun adjoining_A : A;
-fun adjourn_V : V;
-fun adjourn_V2 : V2;
-fun adjournment_N : N;
-fun adjudge_V2 : V2;
-fun adjudicate_V : V;
-fun adjudicate_V2 : V2;
-fun adjudication_N : N;
-fun adjudicator_N : N;
-fun adjunct_N : N;
-fun adjuration_N : N;
-fun adjure_V2 : V2;
-fun adjust_V2 : V2;
-fun adjustable_A : A;
-fun adjuster_N : N;
-fun adjustment_N : N;
-fun adjutant_N : N;
-fun admass_N : N;
-fun administer_V : V;
-fun administer_V2 : V2;
-fun administration_N : N;
-fun administrative_A : A;
-fun administratively_Adv : Adv;
-fun administrator_N : N;
-fun admirable_A : A;
-fun admirably_Adv : Adv;
-fun admiral_N : N;
-fun admiralty_N : N;
-fun admiration_N : N;
-fun admire_V2 : V2;
-fun admirer_N : N;
-fun admiring_A : A;
-fun admiringly_Adv : Adv;
-fun admissibility_N : N;
-fun admissible_A : A;
-fun admission_N : N;
-fun admit_V : V;
-fun admit_V2 : V2;
-fun admittance_N : N;
-fun admittedly_Adv : Adv;
-fun admix_V : V;
-fun admix_V2 : V2;
-fun admixture_N : N;
-fun admonish_V2 : V2;
-fun admonition_N : N;
-fun admonitory_A : A;
-fun ado_N : N;
-fun adobe_N : N;
-fun adolescence_N : N;
-fun adolescent_A : A;
-fun adolescent_N : N;
-fun adopt_V2 : V2;
-fun adoption_N : N;
-fun adoptive_A : A;
-fun adorable_A : A;
-fun adorably_Adv : Adv;
-fun adoration_N : N;
-fun adore_V2 : V2;
-fun adorer_N : N;
-fun adoring_A : A;
-fun adoringly_Adv : Adv;
-fun adorn_V2 : V2;
-fun adornment_N : N;
-fun adrenal_A : A;
-fun adrenalin_N : N;
-fun adrian_PN : PN;
-fun adrift_A : A;
-fun adrift_Adv : Adv;
-fun adroit_A : A;
-fun adroitly_Adv : Adv;
-fun adroitness_N : N;
-fun adulation_N : N;
-fun adult_A : A;
-fun adult_N : N;
-fun adulterant_N : N;
-fun adulterate_V2 : V2;
-fun adulteration_N : N;
-fun adulterer_N : N;
-fun adulteress_N : N;
-fun adulterous_A : A;
-fun adultery_N : N;
-fun adulthood_N : N;
-fun adumbrate_V2 : V2;
-fun advance_N : N;
-fun advance_V : V;
-fun advance_V2 : V2;
-fun advanced_A : A;
-fun advancement_N : N;
-fun advantage_N : N;
-fun advantage_V2 : V2;
-fun advantageous_A : A;
-fun advantageously_Adv : Adv;
-fun advent_N : N;
-fun adventist_N : N;
-fun adventitious_A : A;
-fun adventure_N : N;
-fun adventure_V2 : V2;
-fun adventurer_N : N;
-fun adventuresome_A : A;
-fun adventuress_N : N;
-fun adventurous_A : A;
-fun adverb_N : N;
-fun adverbial_A : A;
-fun adverbially_Adv : Adv;
-fun adversary_N : N;
-fun adverse_A : A;
-fun adversely_Adv : Adv;
-fun adversity_N : N;
-fun advert_N : N;
-fun advert_V : V;
-fun advertise_V : V;
-fun advertise_V2 : V2;
-fun advertisement_N : N;
-fun advertiser_N : N;
-fun advice_N : N;
-fun advisability_N : N;
-fun advisable_A : A;
-fun advise_V : V;
-fun advise_V2 : V2;
-fun advised_A : A;
-fun advisedly_Adv : Adv;
-fun adviser_N : N;
-fun advisory_A : A;
-fun advocacy_N : N;
-fun advocate_N : N;
-fun advocate_V2 : V2;
-fun advowson_N : N;
-fun adz_N : N;
-fun adze_N : N;
-fun aegis_N : N;
-fun aeon_N : N;
-fun aerate_V2 : V2;
-fun aeration_N : N;
-fun aerial_A : A;
-fun aerial_N : N;
-fun aerie_N : N;
-fun aerobatics_N : N;
-fun aerodrome_N : N;
-fun aerodynamic_A : A;
-fun aerodynamics_N : N;
-fun aeronaut_N : N;
-fun aeronautics_N : N;
-fun aeroplane_N : N;
-fun aerosol_N : N;
-fun aerospace_N : N;
-fun aertex_N : N;
-fun aery_N : N;
-fun aesthete_N : N;
-fun aesthetic_A : A;
-fun aesthetic_N : N;
-fun aesthetical_A : A;
-fun aesthetically_Adv : Adv;
-fun aesthetics_N : N;
-fun aether_N : N;
-fun aetiology_N : N;
-fun afar_Adv : Adv;
-fun affability_N : N;
-fun affable_A : A;
-fun affably_Adv : Adv;
-fun affair_N : N;
-fun affect_V2 : V2;
-fun affectation_N : N;
-fun affected_A : A;
-fun affecting_A : A;
-fun affectingly_Adv : Adv;
-fun affection_N : N;
-fun affectionate_A : A;
-fun affectionately_Adv : Adv;
-fun affiance_V2 : V2;
-fun affidavit_N : N;
-fun affiliate_V : V;
-fun affiliate_V2 : V2;
-fun affiliation_N : N;
-fun affinity_N : N;
-fun affirm_V : V;
-fun affirm_V2 : V2;
-fun affirmation_N : N;
-fun affirmative_A : A;
-fun affirmative_N : N;
-fun affix_N : N;
-fun affix_V2 : V2;
-fun afflatus_N : N;
-fun afflict_V2 : V2;
-fun affliction_N : N;
-fun affluence_N : N;
-fun affluent_A : A;
-fun affluent_N : N;
-fun afford_V2 : V2;
-fun afforest_V2 : V2;
-fun afforestation_N : N;
-fun affranchise_V2 : V2;
-fun affray_N : N;
-fun affront_N : N;
-fun affront_V2 : V2;
-fun afghan_A : A;
-fun afghan_N : N;
-fun afghanistan_PN : PN;
-fun afghanistani_A : A;
-fun afghanistani_N : N;
-fun afield_Adv : Adv;
-fun afire_A : A;
-fun aflame_A : A;
-fun afloat_A : A;
-fun afoot_A : A;
-fun afore_Adv : Adv;
-fun aforesaid_A : A;
-fun aforethought_Adv : Adv;
-fun afoul_Adv : Adv;
-fun afraid_A : A;
-fun afresh_Adv : Adv;
-fun africa_PN : PN;
-fun african_A : A;
-fun african_N : N;
-fun afrikaans_N : N;
-fun afrikaner_A : A;
-fun afrikaner_N : N;
-fun afro_american_N : N;
-fun afro_asian_A : A;
-fun afro_wig_N : N;
-fun aft_Adv : Adv;
-fun after_A : A;
-fun after_Adv : Adv;
-fun aftercare_N : N;
-fun afterdamp_N : N;
-fun aftereffect_N : N;
-fun afterglow_N : N;
-fun aftermath_N : N;
-fun afternoon_N : N;
-fun afterthought_N : N;
-fun afterwards_Adv : Adv;
-fun again_Adv : Adv;
-fun agape_A : A;
-fun agar_agar_N : N;
-fun agate_N : N;
-fun agatha_PN : PN;
-fun agave_N : N;
-fun age_N : N;
-fun age_V : V;
-fun age_V2 : V2;
-fun age_bracket_N : N;
-fun age_group_N : N;
-fun age_long_A : A;
-fun age_old_A : A;
-fun aged_A : A;
-fun ageing_N : N;
-fun ageless_A : A;
-fun agency_N : N;
-fun agenda_N : N;
-fun agent_N : N;
-fun agent_provocateur_N : N;
-fun aggie_PN : PN;
-fun agglomerate_A : A;
-fun agglomerate_V : V;
-fun agglomerate_V2 : V2;
-fun agglomeration_N : N;
-fun agglutinate_V2 : V2;
-fun agglutinative_A : A;
-fun aggrandize_V2 : V2;
-fun aggrandizement_N : N;
-fun aggravate_V2 : V2;
-fun aggravation_N : N;
-fun aggregate_N : N;
-fun aggregate_V : V;
-fun aggregate_V2 : V2;
-fun aggregation_N : N;
-fun aggression_N : N;
-fun aggressive_A : A;
-fun aggressively_Adv : Adv;
-fun aggressiveness_N : N;
-fun aggressor_N : N;
-fun aggrieve_V2 : V2;
-fun aggro_N : N;
-fun aghast_A : A;
-fun agile_A : A;
-fun agilely_Adv : Adv;
-fun agility_N : N;
-fun aging_N : N;
-fun agitate_V : V;
-fun agitate_V2 : V2;
-fun agitated_A : A;
-fun agitating_A : A;
-fun agitation_N : N;
-fun agitator_N : N;
-fun aglow_A : A;
-fun agm_N : N;
-fun agnail_N : N;
-fun agnes_PN : PN;
-fun agnostic_A : A;
-fun agnostic_N : N;
-fun agnosticism_N : N;
-fun ago_Adv : Adv;
-fun agog_A : A;
-fun agonized_A : A;
-fun agonizing_A : A;
-fun agonizingly_Adv : Adv;
-fun agony_N : N;
-fun agora_N : N;
-fun agoraphobia_N : N;
-fun agra_PN : PN;
-fun agrarian_A : A;
-fun agree_V : V;
-fun agree_V2 : V2;
-fun agreeable_A : A;
-fun agreeably_Adv : Adv;
-fun agreement_N : N;
-fun agricultural_A : A;
-fun agriculture_N : N;
-fun aground_A : A;
-fun aground_Adv : Adv;
-fun ague_N : N;
-fun ahead_Adv : Adv;
-fun ahmedabad_PN : PN;
-fun aid_N : N;
-fun aid_V2 : V2;
-fun aide_de_camp_N : N;
-fun aide_memoire_N : N;
-fun aids_N : N;
-fun aigret_N : N;
-fun aigrette_N : N;
-fun ail_V : V;
-fun ail_V2 : V2;
-fun aileron_N : N;
-fun ailment_N : N;
-fun aim_N : N;
-fun aim_V : V;
-fun aim_V2 : V2;
-fun aimless_A : A;
-fun aimlessly_Adv : Adv;
-fun air_N : N;
-fun air_V2 : V2;
-fun air_bladder_N : N;
-fun air_conditioned_A : A;
-fun air_conditioning_N : N;
-fun air_cooled_A : A;
-fun air_minded_A : A;
-fun air_pump_N : N;
-fun air_raid_N : N;
-fun air_shaft_N : N;
-fun air_sick_A : A;
-fun air_sickness_N : N;
-fun air_to_air_A : A;
-fun air_to_ground_A : A;
-fun airbed_N : N;
-fun airborne_A : A;
-fun airbrake_N : N;
-fun aircraft_N : N;
-fun aircraftman_N : N;
-fun aircrew_N : N;
-fun airdrie_PN : PN;
-fun airdrome_N : N;
-fun aireborough_PN : PN;
-fun airedale_N : N;
-fun airfield_N : N;
-fun airflow_N : N;
-fun airframe_N : N;
-fun airily_Adv : Adv;
-fun airing_N : N;
-fun airing_cupboard_N : N;
-fun airless_A : A;
-fun airline_N : N;
-fun airliner_N : N;
-fun airmail_N : N;
-fun airman_N : N;
-fun airplane_N : N;
-fun airport_N : N;
-fun airscrew_N : N;
-fun airship_N : N;
-fun airstrip_N : N;
-fun airtight_A : A;
-fun airway_N : N;
-fun airwoman_N : N;
-fun airworthiness_N : N;
-fun airworthy_A : A;
-fun airy_A : A;
-fun aisle_N : N;
-fun aitch_N : N;
-fun aitch_bone_N : N;
-fun ajar_A : A;
-fun akimbo_Adv : Adv;
-fun akin_A : A;
-fun akron_PN : PN;
-fun al_PN : PN;
-fun alabama_PN : PN;
-fun alabaster_A : A;
-fun alabaster_N : N;
-fun alacrity_N : N;
-fun alan_PN : PN;
-fun alarm_N : N;
-fun alarm_V2 : V2;
-fun alarm_clock_N : N;
-fun alarming_A : A;
-fun alarmingly_Adv : Adv;
-fun alarmist_N : N;
-fun alaska_PN : PN;
-fun alb_N : N;
-fun albania_PN : PN;
-fun albanian_A : A;
-fun albanian_N : N;
-fun albatross_N : N;
-fun albert_PN : PN;
-fun alberta_PN : PN;
-fun albino_N : N;
-fun album_N : N;
-fun albumen_N : N;
-fun alchemist_N : N;
-fun alchemy_N : N;
-fun alcohol_N : N;
-fun alcoholic_A : A;
-fun alcoholic_N : N;
-fun alcoholism_N : N;
-fun alcove_N : N;
-fun alder_N : N;
-fun alderman_N : N;
-fun aldermanic_A : A;
-fun aldershot_PN : PN;
-fun ale_N : N;
-fun ale_house_N : N;
-fun alee_A : A;
-fun alee_Adv : Adv;
-fun aleppo_PN : PN;
-fun alert_A : A;
-fun alert_N : N;
-fun alert_V2 : V2;
-fun alertly_Adv : Adv;
-fun alertness_N : N;
-fun alessandria_PN : PN;
-fun alex_PN : PN;
-fun alexander_PN : PN;
-fun alexandra_PN : PN;
-fun alexandria_PN : PN;
-fun alexandrine_N : N;
-fun alexia_N : N;
-fun alexic_A : A;
-fun alexic_N : N;
-fun alf_PN : PN;
-fun alfalfa_N : N;
-fun alfred_PN : PN;
-fun alfresco_A : A;
-fun alfresco_Adv : Adv;
-fun alfreton_PN : PN;
-fun alga_N : N;
-fun algebra_N : N;
-fun algebraic_A : A;
-fun algebraical_A : A;
-fun algebraically_Adv : Adv;
-fun alger_PN : PN;
-fun algeria_PN : PN;
-fun algerian_A : A;
-fun algerian_N : N;
-fun ali_PN : PN;
-fun alias_Adv : Adv;
-fun alias_N : N;
-fun alibi_N : N;
-fun alicante_PN : PN;
-fun alice_PN : PN;
-fun alien_A : A;
-fun alien_N : N;
-fun alienate_V2 : V2;
-fun alienation_N : N;
-fun alienist_N : N;
-fun alight_A : A;
-fun alight_V : V;
-fun align_V : V;
-fun align_V2 : V2;
-fun alignment_N : N;
-fun alike_A : A;
-fun alike_Adv : Adv;
-fun alimentary_A : A;
-fun alimony_N : N;
-fun alison_PN : PN;
-fun alive_A : A;
-fun alkali_N : N;
-fun alkaline_A : A;
-fun all_mains_A : A;
-fun all_round_A : A;
-fun all_rounder_N : N;
-fun allah_PN : PN;
-fun allahabad_PN : PN;
-fun allan_PN : PN;
-fun allay_V2 : V2;
-fun allegation_N : N;
-fun allege_V2 : V2;
-fun allegedly_Adv : Adv;
-fun allegiance_N : N;
-fun allegoric_A : A;
-fun allegorical_A : A;
-fun allegory_N : N;
-fun allegretto_A : A;
-fun allegretto_Adv : Adv;
-fun allegretto_N : N;
-fun allegro_A : A;
-fun allegro_Adv : Adv;
-fun allegro_N : N;
-fun allen_PN : PN;
-fun allergen_N : N;
-fun allergic_A : A;
-fun allergy_N : N;
-fun alleviate_V2 : V2;
-fun alleviation_N : N;
-fun alley_N : N;
-fun alleyway_N : N;
-fun alliance_N : N;
-fun alligator_N : N;
-fun alliteration_N : N;
-fun alliterative_A : A;
-fun alliteratively_Adv : Adv;
-fun alloa_PN : PN;
-fun allocate_V2 : V2;
-fun allocation_N : N;
-fun allot_V2 : V2;
-fun allotment_N : N;
-fun allow_V : V;
-fun allow_V2 : V2;
-fun allowable_A : A;
-fun allowance_N : N;
-fun alloy_N : N;
-fun alloy_V2 : V2;
-fun allspice_N : N;
-fun allude_V : V;
-fun allure_N : N;
-fun allure_V2 : V2;
-fun allurement_N : N;
-fun alluring_A : A;
-fun allusion_N : N;
-fun allusive_A : A;
-fun alluvial_A : A;
-fun ally_N : N;
-fun ally_V2 : V2;
-fun alma_ata_PN : PN;
-fun alma_mater_N : N;
-fun almanac_N : N;
-fun almeria_PN : PN;
-fun almighty_A : A;
-fun almighty_N : N;
-fun almond_N : N;
-fun almond_eyed_A : A;
-fun almoner_N : N;
-fun almost_Adv : Adv;
-fun alms_box_N : N;
-fun alms_giving_N : N;
-fun alms_house_N : N;
-fun alnwick_PN : PN;
-fun aloe_N : N;
-fun aloft_Adv : Adv;
-fun alone_A : A;
-fun alone_Adv : Adv;
-fun along_Adv : Adv;
-fun alongside_Adv : Adv;
-fun aloof_A : A;
-fun aloof_Adv : Adv;
-fun aloofness_N : N;
-fun aloud_Adv : Adv;
-fun alp_N : N;
-fun alpaca_N : N;
-fun alpenstock_N : N;
-fun alpha_N : N;
-fun alphabet_N : N;
-fun alphabetical_A : A;
-fun alphabetically_Adv : Adv;
-fun alpine_A : A;
-fun alpinist_N : N;
-fun already_Adv : Adv;
-fun alright_A : A;
-fun alright_Adv : Adv;
-fun alsatian_N : N;
-fun also_Adv : Adv;
-fun also_ran_N : N;
-fun altar_N : N;
-fun altar_piece_N : N;
-fun alter_V : V;
-fun alter_V2 : V2;
-fun alter_ego_N : N;
-fun alterable_A : A;
-fun alteration_N : N;
-fun altercation_N : N;
-fun alternate_A : A;
-fun alternate_V : V;
-fun alternate_V2 : V2;
-fun alternately_Adv : Adv;
-fun alternation_N : N;
-fun alternative_A : A;
-fun alternative_N : N;
-fun alternatively_Adv : Adv;
-fun altimeter_N : N;
-fun altitude_N : N;
-fun alto_N : N;
-fun altogether_Adv : Adv;
-fun alton_PN : PN;
-fun altrincham_PN : PN;
-fun altruism_N : N;
-fun altruist_N : N;
-fun altruistic_A : A;
-fun altruistically_Adv : Adv;
-fun alum_N : N;
-fun aluminium_N : N;
-fun alumna_N : N;
-fun alumnus_N : N;
-fun alvechurch_PN : PN;
-fun alveolar_A : A;
-fun alveolar_N : N;
-fun always_Adv : Adv;
-fun amah_N : N;
-fun amain_Adv : Adv;
-fun amalgam_N : N;
-fun amalgamate_V : V;
-fun amalgamate_V2 : V2;
-fun amalgamation_N : N;
-fun amanda_PN : PN;
-fun amanuensis_N : N;
-fun amaryllis_N : N;
-fun amass_V2 : V2;
-fun amateur_N : N;
-fun amateurish_A : A;
-fun amateurism_N : N;
-fun amatory_A : A;
-fun amaze_V2 : V2;
-fun amazement_N : N;
-fun amazing_A : A;
-fun amazingly_Adv : Adv;
-fun amazon_N : N;
-fun ambassador_N : N;
-fun ambassadorial_A : A;
-fun ambassadress_N : N;
-fun amber_N : N;
-fun ambergris_N : N;
-fun ambidextrous_A : A;
-fun ambience_N : N;
-fun ambient_A : A;
-fun ambiguity_N : N;
-fun ambiguous_A : A;
-fun ambiguously_Adv : Adv;
-fun ambit_N : N;
-fun ambition_N : N;
-fun ambitious_A : A;
-fun ambitiously_Adv : Adv;
-fun ambivalence_N : N;
-fun ambivalent_A : A;
-fun amble_N : N;
-fun amble_V : V;
-fun ambrosia_N : N;
-fun ambulance_N : N;
-fun ambuscade_N : N;
-fun ambuscade_V2 : V2;
-fun ambush_N : N;
-fun ambush_V2 : V2;
-fun ameba_N : N;
-fun ameer_N : N;
-fun ameliorate_V : V;
-fun ameliorate_V2 : V2;
-fun amelioration_N : N;
-fun amenable_A : A;
-fun amend_V : V;
-fun amend_V2 : V2;
-fun amendable_A : A;
-fun amendment_N : N;
-fun amenity_N : N;
-fun america_PN : PN;
-fun american_A : A;
-fun american_N : N;
-fun americanism_N : N;
-fun amesbury_PN : PN;
-fun amethyst_N : N;
-fun amharic_N : N;
-fun amiability_N : N;
-fun amiable_A : A;
-fun amiably_Adv : Adv;
-fun amicability_N : N;
-fun amicable_A : A;
-fun amicably_Adv : Adv;
-fun amidships_Adv : Adv;
-fun amiens_PN : PN;
-fun amir_N : N;
-fun amiss_A : A;
-fun amiss_Adv : Adv;
-fun amity_N : N;
-fun ammanford_PN : PN;
-fun ammeter_N : N;
-fun ammonia_N : N;
-fun ammoniated_A : A;
-fun ammonite_N : N;
-fun ammunition_N : N;
-fun amnesia_N : N;
-fun amnesty_N : N;
-fun amoeba_N : N;
-fun amoebic_A : A;
-fun amok_Adv : Adv;
-fun amoral_A : A;
-fun amorous_A : A;
-fun amorously_Adv : Adv;
-fun amorphous_A : A;
-fun amortization_N : N;
-fun amortize_V2 : V2;
-fun amount_N : N;
-fun amount_V : V;
-fun amour_N : N;
-fun amour_propre_N : N;
-fun amp_N : N;
-fun ampere_N : N;
-fun amphetamine_N : N;
-fun amphibian_N : N;
-fun amphibious_A : A;
-fun amphitheatre_N : N;
-fun amphora_N : N;
-fun ample_A : A;
-fun amplification_N : N;
-fun amplifier_N : N;
-fun amplify_V2 : V2;
-fun amplitude_N : N;
-fun amply_Adv : Adv;
-fun ampoule_N : N;
-fun amputate_V2 : V2;
-fun amputation_N : N;
-fun amsterdam_PN : PN;
-fun amuck_Adv : Adv;
-fun amulet_N : N;
-fun amuse_V2 : V2;
-fun amusement_N : N;
-fun amusing_A : A;
-fun amusingly_Adv : Adv;
-fun amy_PN : PN;
-fun anachronism_N : N;
-fun anachronistic_A : A;
-fun anaconda_N : N;
-fun anaemia_N : N;
-fun anaemic_A : A;
-fun anaesthesia_N : N;
-fun anaesthetic_A : A;
-fun anaesthetic_N : N;
-fun anaesthetist_N : N;
-fun anaesthetize_V2 : V2;
-fun anagram_N : N;
-fun anal_A : A;
-fun analgesia_N : N;
-fun analgesic_N : N;
-fun analog_N : N;
-fun analogous_A : A;
-fun analogously_Adv : Adv;
-fun analogue_N : N;
-fun analogy_N : N;
-fun analyse_V2 : V2;
-fun analysis_N : N;
-fun analyst_N : N;
-fun analytic_A : A;
-fun analytical_A : A;
-fun analytically_Adv : Adv;
-fun analyze_V2 : V2;
-fun anapaest_N : N;
-fun anapaestic_A : A;
-fun anarchic_A : A;
-fun anarchically_Adv : Adv;
-fun anarchism_N : N;
-fun anarchist_N : N;
-fun anarchy_N : N;
-fun anathema_N : N;
-fun anathematize_V : V;
-fun anathematize_V2 : V2;
-fun anatomical_A : A;
-fun anatomically_Adv : Adv;
-fun anatomist_N : N;
-fun anatomy_N : N;
-fun ancestor_N : N;
-fun ancestral_A : A;
-fun ancestress_N : N;
-fun ancestry_N : N;
-fun anchor_N : N;
-fun anchor_V : V;
-fun anchor_V2 : V2;
-fun anchorage_N : N;
-fun anchorite_N : N;
-fun anchorman_N : N;
-fun anchovy_N : N;
-fun ancient_A : A;
-fun ancillary_A : A;
-fun ancona_PN : PN;
-fun andante_A : A;
-fun andante_Adv : Adv;
-fun andante_N : N;
-fun andiron_N : N;
-fun andorra_PN : PN;
-fun andorran_A : A;
-fun andorran_N : N;
-fun andover_PN : PN;
-fun andrew_PN : PN;
-fun andy_PN : PN;
-fun anecdotal_A : A;
-fun anecdote_N : N;
-fun anemometer_N : N;
-fun anemone_N : N;
-fun aneroid_A : A;
-fun aneroid_N : N;
-fun anesthetic_A : A;
-fun anesthetic_N : N;
-fun anesthetist_N : N;
-fun anesthetize_V2 : V2;
-fun anew_Adv : Adv;
-fun angel_N : N;
-fun angela_PN : PN;
-fun angelic_A : A;
-fun angelica_N : N;
-fun angelically_Adv : Adv;
-fun angelus_N : N;
-fun anger_N : N;
-fun anger_V2 : V2;
-fun angers_PN : PN;
-fun angie_PN : PN;
-fun angina_N : N;
-fun angle_N : N;
-fun angle_V : V;
-fun angle_V2 : V2;
-fun angle_dozer_N : N;
-fun angle_iron_N : N;
-fun angle_park_V : V;
-fun angle_park_V2 : V2;
-fun angler_N : N;
-fun anglican_A : A;
-fun anglican_N : N;
-fun anglicism_N : N;
-fun anglicize_V2 : V2;
-fun angling_N : N;
-fun anglo_catholic_A : A;
-fun anglo_catholic_N : N;
-fun anglo_indian_A : A;
-fun anglo_indian_N : N;
-fun anglo_saxon_A : A;
-fun anglo_saxon_N : N;
-fun anglomania_N : N;
-fun anglophil_N : N;
-fun anglophile_N : N;
-fun anglophobe_N : N;
-fun anglophobia_N : N;
-fun angola_PN : PN;
-fun angolan_A : A;
-fun angolan_N : N;
-fun angora_N : N;
-fun angostura_N : N;
-fun angrily_Adv : Adv;
-fun angry_A : A;
-fun angst_N : N;
-fun anguilla_PN : PN;
-fun anguillan_A : A;
-fun anguillan_N : N;
-fun anguish_N : N;
-fun anguished_A : A;
-fun angular_A : A;
-fun angularity_N : N;
-fun angus_PN : PN;
-fun aniline_N : N;
-fun animadversion_N : N;
-fun animadvert_V : V;
-fun animal_N : N;
-fun animalcule_N : N;
-fun animate_A : A;
-fun animate_V2 : V2;
-fun animatedly_A : A;
-fun animation_N : N;
-fun animism_N : N;
-fun animosity_N : N;
-fun animus_N : N;
-fun anise_N : N;
-fun aniseed_N : N;
-fun anita_PN : PN;
-fun ankara_PN : PN;
-fun ankle_N : N;
-fun anklet_N : N;
-fun ann_PN : PN;
-fun anna_N : N;
-fun annabel_PN : PN;
-fun annalist_N : N;
-fun annan_PN : PN;
-fun anne_PN : PN;
-fun anneal_V2 : V2;
-fun annex_N : N;
-fun annex_V2 : V2;
-fun annexation_N : N;
-fun annexe_N : N;
-fun annfield_PN : PN;
-fun annfield_plain_PN : PN;
-fun annie_PN : PN;
-fun annihilate_V2 : V2;
-fun annihilation_N : N;
-fun anniversary_N : N;
-fun annotate_V2 : V2;
-fun annotation_N : N;
-fun announce_V2 : V2;
-fun announcement_N : N;
-fun announcer_N : N;
-fun annoy_V2 : V2;
-fun annoyance_N : N;
-fun annoying_A : A;
-fun annual_A : A;
-fun annual_N : N;
-fun annually_Adv : Adv;
-fun annuitant_N : N;
-fun annuity_N : N;
-fun annul_V2 : V2;
-fun annular_A : A;
-fun annulment_N : N;
-fun annunciate_V2 : V2;
-fun annunciation_N : N;
-fun anode_N : N;
-fun anodyne_A : A;
-fun anodyne_N : N;
-fun anoint_V2 : V2;
-fun anointment_N : N;
-fun anomalous_A : A;
-fun anomalously_Adv : Adv;
-fun anomaly_N : N;
-fun anon_Adv : Adv;
-fun anon_PN : PN;
-fun anonymity_N : N;
-fun anonymous_A : A;
-fun anonymously_Adv : Adv;
-fun anopheles_N : N;
-fun anorak_N : N;
-fun another_A : A;
-fun anshan_PN : PN;
-fun answer_N : N;
-fun answer_V : V;
-fun answer_V2 : V2;
-fun answerable_A : A;
-fun ant_N : N;
-fun ant_eater_N : N;
-fun ant_hill_N : N;
-fun antagonism_N : N;
-fun antagonist_N : N;
-fun antagonistic_A : A;
-fun antagonistically_Adv : Adv;
-fun antagonize_V2 : V2;
-fun antarctic_A : A;
-fun ante_N : N;
-fun ante_meridiem_Adv : Adv;
-fun antecedence_N : N;
-fun antecedent_A : A;
-fun antecedent_N : N;
-fun antechamber_N : N;
-fun antedate_V2 : V2;
-fun antediluvian_A : A;
-fun antediluvian_N : N;
-fun antelope_N : N;
-fun antenatal_A : A;
-fun antenna_N : N;
-fun antenuptial_A : A;
-fun antepenultimate_A : A;
-fun anterior_A : A;
-fun anteroom_N : N;
-fun anthea_PN : PN;
-fun anthem_N : N;
-fun anther_N : N;
-fun anthology_N : N;
-fun anthony_PN : PN;
-fun anthracite_N : N;
-fun anthrax_N : N;
-fun anthropoid_A : A;
-fun anthropoid_N : N;
-fun anthropological_A : A;
-fun anthropologist_N : N;
-fun anthropology_N : N;
-fun anti_aircraft_A : A;
-fun anti_hero_N : N;
-fun anti_personnel_A : A;
-fun anti_semite_A : A;
-fun anti_semite_N : N;
-fun anti_semitic_A : A;
-fun anti_semitism_N : N;
-fun antibiotic_A : A;
-fun antibiotic_N : N;
-fun antibody_N : N;
-fun antic_N : N;
-fun anticipate_V2 : V2;
-fun anticipation_N : N;
-fun anticipatory_A : A;
-fun anticlimax_N : N;
-fun anticlockwise_Adv : Adv;
-fun anticyclone_N : N;
-fun antidote_N : N;
-fun antifreeze_N : N;
-fun antigua_PN : PN;
-fun antiguan_A : A;
-fun antiguan_N : N;
-fun antiknock_N : N;
-fun antilogarithm_N : N;
-fun antimacassar_N : N;
-fun antimony_N : N;
-fun antipathetic_A : A;
-fun antipathy_N : N;
-fun antiquarian_A : A;
-fun antiquarian_N : N;
-fun antiquary_N : N;
-fun antiquated_A : A;
-fun antique_A : A;
-fun antique_N : N;
-fun antiquity_N : N;
-fun antirrhinum_N : N;
-fun antiseptic_A : A;
-fun antiseptic_N : N;
-fun antisocial_A : A;
-fun antitank_A : A;
-fun antithesis_N : N;
-fun antithetic_A : A;
-fun antithetical_A : A;
-fun antithetically_Adv : Adv;
-fun antitoxin_N : N;
-fun antitrade_A : A;
-fun antitrade_N : N;
-fun antler_N : N;
-fun antony_PN : PN;
-fun antonym_N : N;
-fun antrim_PN : PN;
-fun antwerp_PN : PN;
-fun anus_N : N;
-fun anvil_N : N;
-fun anxiety_N : N;
-fun anxious_A : A;
-fun anxiously_Adv : Adv;
-fun any_A : A;
-fun any_Adv : Adv;
-fun anybody_N : N;
-fun anyhow_Adv : Adv;
-fun anyone_N : N;
-fun anyplace_Adv : Adv;
-fun anything_N : N;
-fun anyway_Adv : Adv;
-fun anywhere_Adv : Adv;
-fun aorta_N : N;
-fun apace_Adv : Adv;
-fun apache_N : N;
-fun apanage_N : N;
-fun apart_Adv : Adv;
-fun apartheid_N : N;
-fun apartment_N : N;
-fun apathetic_A : A;
-fun apathetically_Adv : Adv;
-fun apathy_N : N;
-fun ape_N : N;
-fun ape_V2 : V2;
-fun apeldoorn_PN : PN;
-fun aperient_A : A;
-fun aperient_N : N;
-fun aperitif_N : N;
-fun aperture_N : N;
-fun apex_N : N;
-fun aphasia_N : N;
-fun aphid_N : N;
-fun aphis_N : N;
-fun aphorism_N : N;
-fun aphrodisiac_A : A;
-fun aphrodisiac_N : N;
-fun apiarist_N : N;
-fun apiary_N : N;
-fun apiculture_N : N;
-fun apiece_Adv : Adv;
-fun apish_A : A;
-fun aplomb_N : N;
-fun apocalypse_N : N;
-fun apocalyptic_A : A;
-fun apocrypha_N : N;
-fun apocryphal_A : A;
-fun apogee_N : N;
-fun apologetic_A : A;
-fun apologetically_Adv : Adv;
-fun apologetics_N : N;
-fun apologist_N : N;
-fun apologize_V : V;
-fun apology_N : N;
-fun apophthegm_N : N;
-fun apoplectic_A : A;
-fun apoplexy_N : N;
-fun apostasy_N : N;
-fun apostate_A : A;
-fun apostate_N : N;
-fun apostle_N : N;
-fun apostolic_A : A;
-fun apostrophe_N : N;
-fun apostrophize_V2 : V2;
-fun apothecary_N : N;
-fun apothegm_N : N;
-fun apotheosis_N : N;
-fun appal_V2 : V2;
-fun appalling_A : A;
-fun appallingly_Adv : Adv;
-fun appanage_N : N;
-fun apparatus_N : N;
-fun apparel_N : N;
-fun apparel_V2 : V2;
-fun apparent_A : A;
-fun apparently_Adv : Adv;
-fun apparition_N : N;
-fun appeal_N : N;
-fun appeal_V : V;
-fun appealing_A : A;
-fun appealingly_Adv : Adv;
-fun appear_V : V;
-fun appearance_N : N;
-fun appease_V2 : V2;
-fun appeasement_N : N;
-fun appellant_A : A;
-fun appellant_N : N;
-fun appellation_N : N;
-fun append_V2 : V2;
-fun appendage_N : N;
-fun appendectomy_N : N;
-fun appendicitis_N : N;
-fun appendix_N : N;
-fun appertain_V : V;
-fun appetite_N : N;
-fun appetizer_N : N;
-fun appetizing_A : A;
-fun applaud_V : V;
-fun applaud_V2 : V2;
-fun applause_N : N;
-fun apple_N : N;
-fun applejack_N : N;
-fun appliance_N : N;
-fun applicability_N : N;
-fun applicable_A : A;
-fun applicant_N : N;
-fun application_N : N;
-fun applied_A : A;
-fun applique_N : N;
-fun applique_V2 : V2;
-fun apply_V : V;
-fun apply_V2 : V2;
-fun appoint_V2 : V2;
-fun appointee_N : N;
-fun appointment_N : N;
-fun apportion_V2 : V2;
-fun apportionment_N : N;
-fun apposite_A : A;
-fun appositely_Adv : Adv;
-fun apposition_N : N;
-fun appraisal_N : N;
-fun appraise_V2 : V2;
-fun appreciable_A : A;
-fun appreciably_Adv : Adv;
-fun appreciate_V : V;
-fun appreciate_V2 : V2;
-fun appreciation_N : N;
-fun appreciative_A : A;
-fun appreciatively_Adv : Adv;
-fun apprehend_V2 : V2;
-fun apprehensible_A : A;
-fun apprehension_N : N;
-fun apprehensive_A : A;
-fun apprentice_N : N;
-fun apprentice_V2 : V2;
-fun apprenticeship_N : N;
-fun apprise_V2 : V2;
-fun appro_N : N;
-fun approach_N : N;
-fun approach_V : V;
-fun approach_V2 : V2;
-fun approachable_A : A;
-fun approbation_N : N;
-fun appropriate_A : A;
-fun appropriate_V2 : V2;
-fun appropriately_Adv : Adv;
-fun appropriation_N : N;
-fun approval_N : N;
-fun approve_V : V;
-fun approve_V2 : V2;
-fun approvingly_Adv : Adv;
-fun approx_PN : PN;
-fun approximate_A : A;
-fun approximate_V : V;
-fun approximate_V2 : V2;
-fun approximately_Adv : Adv;
-fun approximation_N : N;
-fun appurtenance_N : N;
-fun apr_PN : PN;
-fun apricot_N : N;
-fun april_N : N;
-fun april_PN : PN;
-fun apron_N : N;
-fun apropos_A : A;
-fun apropos_Adv : Adv;
-fun apres_ski_A : A;
-fun apse_N : N;
-fun apt_A : A;
-fun aptitude_N : N;
-fun aptly_Adv : Adv;
-fun aptness_N : N;
-fun aqualung_N : N;
-fun aquamarine_N : N;
-fun aquanaut_N : N;
-fun aquaplane_N : N;
-fun aquaplane_V : V;
-fun aquarium_N : N;
-fun aquarius_PN : PN;
-fun aquatic_A : A;
-fun aquatint_N : N;
-fun aquavit_N : N;
-fun aqueduct_N : N;
-fun aqueous_A : A;
-fun aquiline_A : A;
-fun arab_N : N;
-fun arabesque_N : N;
-fun arabian_A : A;
-fun arabian_N : N;
-fun arabic_A : A;
-fun arabic_N : N;
-fun arabist_N : N;
-fun arable_A : A;
-fun arachnid_N : N;
-fun arbiter_N : N;
-fun arbitrament_N : N;
-fun arbitrarily_Adv : Adv;
-fun arbitrary_A : A;
-fun arbitrate_V : V;
-fun arbitrate_V2 : V2;
-fun arbitration_N : N;
-fun arbitrator_N : N;
-fun arboreal_A : A;
-fun arbour_N : N;
-fun arbroath_PN : PN;
-fun arc_N : N;
-fun arc_lamp_N : N;
-fun arc_light_N : N;
-fun arcade_N : N;
-fun arcadian_A : A;
-fun arcadian_N : N;
-fun arcane_A : A;
-fun arch_A : A;
-fun arch_N : N;
-fun arch_V : V;
-fun arch_V2 : V2;
-fun archaeological_A : A;
-fun archaeologist_N : N;
-fun archaeology_N : N;
-fun archaic_A : A;
-fun archaism_N : N;
-fun archangel_N : N;
-fun archbishop_N : N;
-fun archbishopric_N : N;
-fun archdeacon_N : N;
-fun archdeaconry_N : N;
-fun archdiocese_N : N;
-fun archduke_N : N;
-fun archeology_N : N;
-fun archer_N : N;
-fun archery_N : N;
-fun archetypal_A : A;
-fun archetype_N : N;
-fun archimandrite_N : N;
-fun archipelago_N : N;
-fun architect_N : N;
-fun architectural_A : A;
-fun architecturally_Adv : Adv;
-fun architecture_N : N;
-fun archivist_N : N;
-fun archly_Adv : Adv;
-fun archway_N : N;
-fun arctic_A : A;
-fun ardent_A : A;
-fun ardently_Adv : Adv;
-fun ardour_N : N;
-fun ardrossan_PN : PN;
-fun arduous_A : A;
-fun arduously_Adv : Adv;
-fun are_N : N;
-fun area_N : N;
-fun areca_N : N;
-fun arena_N : N;
-fun argent_A : A;
-fun argent_N : N;
-fun argentina_PN : PN;
-fun argentine_PN : PN;
-fun argentinian_A : A;
-fun argentinian_N : N;
-fun argon_N : N;
-fun argonaut_N : N;
-fun argosy_N : N;
-fun argot_N : N;
-fun arguable_A : A;
-fun arguably_Adv : Adv;
-fun argue_V : V;
-fun argue_V2 : V2;
-fun argument_N : N;
-fun argumentation_N : N;
-fun argumentative_A : A;
-fun argus_N : N;
-fun argus_eyed_A : A;
-fun aria_N : N;
-fun arid_A : A;
-fun aridity_N : N;
-fun aries_PN : PN;
-fun aright_Adv : Adv;
-fun arise_V : V;
-fun aristocracy_N : N;
-fun aristocrat_N : N;
-fun aristocratic_A : A;
-fun aristocratically_Adv : Adv;
-fun arithmetic_N : N;
-fun arithmetical_A : A;
-fun arithmetically_Adv : Adv;
-fun arithmetician_N : N;
-fun arizona_PN : PN;
-fun ark_N : N;
-fun arkansas_PN : PN;
-fun arm_N : N;
-fun arm_V : V;
-fun arm_V2 : V2;
-fun arm_hole_N : N;
-fun armada_N : N;
-fun armadale_PN : PN;
-fun armadillo_N : N;
-fun armageddon_PN : PN;
-fun armagh_PN : PN;
-fun armament_N : N;
-fun armature_N : N;
-fun armband_N : N;
-fun armchair_N : N;
-fun armful_N : N;
-fun armistice_N : N;
-fun armlet_N : N;
-fun armoire_N : N;
-fun armorial_A : A;
-fun armour_N : N;
-fun armour_plate_N : N;
-fun armoured_A : A;
-fun armourer_N : N;
-fun armoury_N : N;
-fun armpit_N : N;
-fun arms_race_N : N;
-fun arms_runner_N : N;
-fun army_N : N;
-fun arnhem_PN : PN;
-fun arnica_N : N;
-fun arnold_PN : PN;
-fun aroma_N : N;
-fun aromatic_A : A;
-fun around_Adv : Adv;
-fun arouse_V2 : V2;
-fun arpeggio_N : N;
-fun arquebus_N : N;
-fun arr_PN : PN;
-fun arrack_N : N;
-fun arraign_V2 : V2;
-fun arraignment_N : N;
-fun arrange_V : V;
-fun arrange_V2 : V2;
-fun arrangement_N : N;
-fun arrant_A : A;
-fun arras_N : N;
-fun array_N : N;
-fun array_V2 : V2;
-fun arrest_N : N;
-fun arrest_V2 : V2;
-fun arrester_N : N;
-fun arresting_A : A;
-fun arrival_N : N;
-fun arrive_V : V;
-fun arriere_pensee_N : N;
-fun arrogance_N : N;
-fun arrogant_A : A;
-fun arrogantly_Adv : Adv;
-fun arrogate_V2 : V2;
-fun arrow_N : N;
-fun arrowhead_N : N;
-fun arrowroot_N : N;
-fun arse_N : N;
-fun arsehole_N : N;
-fun arsenal_N : N;
-fun arsenic_N : N;
-fun arson_N : N;
-fun art_N : N;
-fun art_PN : PN;
-fun artefact_N : N;
-fun arterial_A : A;
-fun arteriosclerosis_N : N;
-fun artery_N : N;
-fun artesian_A : A;
-fun artful_A : A;
-fun artfully_Adv : Adv;
-fun artfulness_N : N;
-fun arthritic_A : A;
-fun arthritis_N : N;
-fun arthur_PN : PN;
-fun artichoke_N : N;
-fun article_N : N;
-fun article_V2 : V2;
-fun articulate_A : A;
-fun articulate_V : V;
-fun articulate_V2 : V2;
-fun articulately_Adv : Adv;
-fun articulation_N : N;
-fun artie_PN : PN;
-fun artifact_N : N;
-fun artifice_N : N;
-fun artificer_N : N;
-fun artificial_A : A;
-fun artificially_Adv : Adv;
-fun artillery_N : N;
-fun artisan_N : N;
-fun artist_N : N;
-fun artiste_N : N;
-fun artistic_A : A;
-fun artistically_Adv : Adv;
-fun artistry_N : N;
-fun artless_A : A;
-fun artlessly_Adv : Adv;
-fun artlessness_N : N;
-fun arty_A : A;
-fun arty_crafty_A : A;
-fun arum_N : N;
-fun aryan_A : A;
-fun aryan_N : N;
-fun arete_N : N;
-fun asap_PN : PN;
-fun asbestos_N : N;
-fun ascend_V : V;
-fun ascend_V2 : V2;
-fun ascendancy_N : N;
-fun ascendant_N : N;
-fun ascendency_N : N;
-fun ascendent_N : N;
-fun ascension_N : N;
-fun ascent_N : N;
-fun ascertain_V2 : V2;
-fun ascertainable_A : A;
-fun ascetic_A : A;
-fun ascetic_N : N;
-fun ascetically_Adv : Adv;
-fun asceticism_N : N;
-fun ascorbic_A : A;
-fun ascot_PN : PN;
-fun ascribable_A : A;
-fun ascribe_V2 : V2;
-fun ascription_N : N;
-fun asdic_N : N;
-fun asepsis_N : N;
-fun aseptic_A : A;
-fun asexual_A : A;
-fun asexuality_N : N;
-fun ash_N : N;
-fun ash_bin_N : N;
-fun ash_can_N : N;
-fun ash_key_N : N;
-fun ash_pan_N : N;
-fun ashamed_A : A;
-fun ashamedly_Adv : Adv;
-fun ashbourne_PN : PN;
-fun ashby_PN : PN;
-fun ashby_de_la_zouch_PN : PN;
-fun ashby_woulds_PN : PN;
-fun ashen_A : A;
-fun ashford_PN : PN;
-fun ashington_PN : PN;
-fun ashore_Adv : Adv;
-fun ashton_in_makerfield_PN : PN;
-fun ashton_under_lyne_PN : PN;
-fun ashtray_N : N;
-fun ashy_A : A;
-fun asian_A : A;
-fun asian_N : N;
-fun asiatic_A : A;
-fun asiatic_N : N;
-fun aside_Adv : Adv;
-fun aside_N : N;
-fun asinine_A : A;
-fun ask_V : V;
-fun ask_V2 : V2;
-fun askance_Adv : Adv;
-fun askern_PN : PN;
-fun askew_A : A;
-fun askew_Adv : Adv;
-fun asking_N : N;
-fun aslant_Adv : Adv;
-fun asleep_A : A;
-fun asleep_Adv : Adv;
-fun asp_N : N;
-fun asparagus_N : N;
-fun aspect_N : N;
-fun aspectual_A : A;
-fun aspen_N : N;
-fun asperity_N : N;
-fun asperse_V2 : V2;
-fun aspersion_N : N;
-fun asphalt_N : N;
-fun asphalt_V2 : V2;
-fun asphodel_N : N;
-fun asphyxia_N : N;
-fun asphyxiate_V2 : V2;
-fun asphyxiation_N : N;
-fun aspic_N : N;
-fun aspidistra_N : N;
-fun aspirant_N : N;
-fun aspirate_N : N;
-fun aspirate_V2 : V2;
-fun aspiration_N : N;
-fun aspire_V : V;
-fun aspirin_N : N;
-fun aspull_PN : PN;
-fun ass_N : N;
-fun assagai_N : N;
-fun assail_V2 : V2;
-fun assailable_A : A;
-fun assailant_N : N;
-fun assassin_N : N;
-fun assassinate_V2 : V2;
-fun assassination_N : N;
-fun assault_N : N;
-fun assault_V2 : V2;
-fun assay_N : N;
-fun assay_V2 : V2;
-fun assegai_N : N;
-fun assemblage_N : N;
-fun assemble_V : V;
-fun assemble_V2 : V2;
-fun assembly_N : N;
-fun assent_N : N;
-fun assent_V : V;
-fun assert_V2 : V2;
-fun assertion_N : N;
-fun assertive_A : A;
-fun assertively_Adv : Adv;
-fun assess_V2 : V2;
-fun assessment_N : N;
-fun assessor_N : N;
-fun asset_N : N;
-fun asseverate_V2 : V2;
-fun asseveration_N : N;
-fun asshole_N : N;
-fun assiduity_N : N;
-fun assiduous_A : A;
-fun assiduously_Adv : Adv;
-fun assign_V2 : V2;
-fun assignable_A : A;
-fun assignation_N : N;
-fun assignment_N : N;
-fun assimilate_V : V;
-fun assimilate_V2 : V2;
-fun assimilation_N : N;
-fun assist_V : V;
-fun assist_V2 : V2;
-fun assistance_N : N;
-fun assistant_N : N;
-fun assize_N : N;
-fun assoc_N : N;
-fun associate_A : A;
-fun associate_N : N;
-fun associate_V : V;
-fun associate_V2 : V2;
-fun association_N : N;
-fun assonance_N : N;
-fun assorted_A : A;
-fun assortment_N : N;
-fun asst_N : N;
-fun assuage_V2 : V2;
-fun assume_V2 : V2;
-fun assumption_N : N;
-fun assurance_N : N;
-fun assure_V2 : V2;
-fun assured_A : A;
-fun assuredly_Adv : Adv;
-fun assuredness_N : N;
-fun aster_N : N;
-fun asterisk_N : N;
-fun astern_Adv : Adv;
-fun asteroid_N : N;
-fun asthma_N : N;
-fun asthmatic_A : A;
-fun astigmatic_A : A;
-fun astigmatism_N : N;
-fun astir_A : A;
-fun astir_Adv : Adv;
-fun aston_PN : PN;
-fun astonish_V2 : V2;
-fun astonishing_A : A;
-fun astonishingly_Adv : Adv;
-fun astonishment_N : N;
-fun astound_V2 : V2;
-fun astrakhan_N : N;
-fun astral_A : A;
-fun astray_A : A;
-fun astray_Adv : Adv;
-fun astride_A : A;
-fun astride_Adv : Adv;
-fun astringency_N : N;
-fun astringent_A : A;
-fun astringent_N : N;
-fun astrodome_N : N;
-fun astrolabe_N : N;
-fun astrologer_N : N;
-fun astrological_A : A;
-fun astrology_N : N;
-fun astronaut_N : N;
-fun astronautics_N : N;
-fun astronomer_N : N;
-fun astronomical_A : A;
-fun astronomically_Adv : Adv;
-fun astronomy_N : N;
-fun astrophysics_N : N;
-fun astute_A : A;
-fun astutely_Adv : Adv;
-fun astuteness_N : N;
-fun asunder_Adv : Adv;
-fun asylum_N : N;
-fun asymmetric_A : A;
-fun asymmetrical_A : A;
-fun asymmetrically_Adv : Adv;
-fun asymmetry_N : N;
-fun asymptote_N : N;
-fun asymptotic_A : A;
-fun asymptotically_Adv : Adv;
-fun at_home_N : N;
-fun atabrine_N : N;
-fun atavism_N : N;
-fun atavistic_A : A;
-fun atelier_N : N;
-fun atheism_N : N;
-fun atheist_N : N;
-fun atheistic_A : A;
-fun athenian_A : A;
-fun athenian_N : N;
-fun athens_PN : PN;
-fun atherstone_PN : PN;
-fun athirst_A : A;
-fun athlete_N : N;
-fun athletic_A : A;
-fun athletics_N : N;
-fun athlone_PN : PN;
-fun athwart_Adv : Adv;
-fun atlanta_PN : PN;
-fun atlantic_PN : PN;
-fun atlas_N : N;
-fun atmosphere_N : N;
-fun atmospheric_A : A;
-fun atmospherics_N : N;
-fun atoll_N : N;
-fun atom_N : N;
-fun atomic_A : A;
-fun atomize_V2 : V2;
-fun atomizer_N : N;
-fun atonal_A : A;
-fun atonality_N : N;
-fun atone_V : V;
-fun atonement_N : N;
-fun atop_Adv : Adv;
-fun atrabilious_A : A;
-fun atrocious_A : A;
-fun atrociously_Adv : Adv;
-fun atrocity_N : N;
-fun atrophy_N : N;
-fun atrophy_V : V;
-fun atrophy_V2 : V2;
-fun attach_V : V;
-fun attach_V2 : V2;
-fun attachment_N : N;
-fun attache_N : N;
-fun attack_N : N;
-fun attack_V2 : V2;
-fun attacker_N : N;
-fun attain_V : V;
-fun attain_V2 : V2;
-fun attainable_A : A;
-fun attainder_N : N;
-fun attainment_N : N;
-fun attar_N : N;
-fun attempt_N : N;
-fun attempt_V2 : V2;
-fun attend_V : V;
-fun attend_V2 : V2;
-fun attendance_N : N;
-fun attendant_A : A;
-fun attendant_N : N;
-fun attention_N : N;
-fun attentive_A : A;
-fun attentively_Adv : Adv;
-fun attentiveness_N : N;
-fun attenuate_V2 : V2;
-fun attenuation_N : N;
-fun attest_V : V;
-fun attest_V2 : V2;
-fun attic_A : A;
-fun attic_N : N;
-fun attire_N : N;
-fun attire_V2 : V2;
-fun attitude_N : N;
-fun attitudinize_V : V;
-fun attorney_N : N;
-fun attract_V2 : V2;
-fun attraction_N : N;
-fun attractive_A : A;
-fun attractively_Adv : Adv;
-fun attributable_A : A;
-fun attribute_N : N;
-fun attribute_V2 : V2;
-fun attribution_N : N;
-fun attributive_A : A;
-fun attributively_Adv : Adv;
-fun attrition_N : N;
-fun attune_V2 : V2;
-fun atypical_A : A;
-fun atypically_Adv : Adv;
-fun au_fait_A : A;
-fun au_fond_Adv : Adv;
-fun au_pair_N : N;
-fun aubergine_N : N;
-fun aubrietia_N : N;
-fun auburn_A : A;
-fun auckland_PN : PN;
-fun auction_N : N;
-fun auction_V2 : V2;
-fun auctioneer_N : N;
-fun audacious_A : A;
-fun audaciously_Adv : Adv;
-fun audacity_N : N;
-fun audibility_N : N;
-fun audible_A : A;
-fun audibly_Adv : Adv;
-fun audience_N : N;
-fun audio_lingual_A : A;
-fun audit_N : N;
-fun audit_V2 : V2;
-fun audition_N : N;
-fun audition_V2 : V2;
-fun auditor_N : N;
-fun auditorium_N : N;
-fun auditory_A : A;
-fun audley_PN : PN;
-fun audrey_PN : PN;
-fun aug_PN : PN;
-fun auger_N : N;
-fun aught_N : N;
-fun augment_V : V;
-fun augment_V2 : V2;
-fun augmentation_N : N;
-fun augsburg_PN : PN;
-fun augur_N : N;
-fun augur_V : V;
-fun augur_V2 : V2;
-fun augury_N : N;
-fun august_A : A;
-fun august_N : N;
-fun august_PN : PN;
-fun augustan_A : A;
-fun auk_N : N;
-fun auld_lang_syne_N : N;
-fun aunt_N : N;
-fun auntie_N : N;
-fun aunty_N : N;
-fun aura_N : N;
-fun aural_A : A;
-fun aureole_N : N;
-fun auricle_N : N;
-fun auricular_A : A;
-fun auriferous_A : A;
-fun aurora_N : N;
-fun auspicious_A : A;
-fun auspiciously_Adv : Adv;
-fun aussie_N : N;
-fun austere_A : A;
-fun austerely_Adv : Adv;
-fun austerity_N : N;
-fun australia_PN : PN;
-fun australian_A : A;
-fun australian_N : N;
-fun austria_PN : PN;
-fun austrian_A : A;
-fun austrian_N : N;
-fun autarchy_N : N;
-fun autarky_N : N;
-fun authentic_A : A;
-fun authentically_Adv : Adv;
-fun authenticate_V2 : V2;
-fun authentication_N : N;
-fun authenticity_N : N;
-fun author_N : N;
-fun authoress_N : N;
-fun authoritarian_A : A;
-fun authoritarian_N : N;
-fun authoritarianism_N : N;
-fun authoritative_A : A;
-fun authoritatively_Adv : Adv;
-fun authority_N : N;
-fun authorization_N : N;
-fun authorize_V2 : V2;
-fun authorship_N : N;
-fun autism_N : N;
-fun autistic_A : A;
-fun auto_N : N;
-fun auto_changer_N : N;
-fun auto_da_fe_N : N;
-fun autobahn_N : N;
-fun autobiographic_A : A;
-fun autobiographical_A : A;
-fun autobiography_N : N;
-fun autocracy_N : N;
-fun autocrat_N : N;
-fun autocratic_A : A;
-fun autocratically_Adv : Adv;
-fun autogiro_N : N;
-fun autograph_N : N;
-fun autograph_V2 : V2;
-fun autogyro_N : N;
-fun automat_N : N;
-fun automate_V2 : V2;
-fun automatic_A : A;
-fun automatic_N : N;
-fun automatically_Adv : Adv;
-fun automation_N : N;
-fun automaton_N : N;
-fun automobile_N : N;
-fun autonomous_A : A;
-fun autonomy_N : N;
-fun autopsy_N : N;
-fun autostrada_N : N;
-fun autumn_N : N;
-fun autumnal_A : A;
-fun auxiliary_A : A;
-fun auxiliary_N : N;
-fun avail_N : N;
-fun avail_V : V;
-fun avail_V2 : V2;
-fun availability_N : N;
-fun available_A : A;
-fun avalanche_N : N;
-fun avant_garde_N : N;
-fun avarice_N : N;
-fun avaricious_A : A;
-fun avariciously_Adv : Adv;
-fun avatar_N : N;
-fun ave_PN : PN;
-fun aveley_PN : PN;
-fun avenge_V2 : V2;
-fun avenger_N : N;
-fun avenue_N : N;
-fun aver_V2 : V2;
-fun average_A : A;
-fun average_N : N;
-fun average_V : V;
-fun average_V2 : V2;
-fun averse_A : A;
-fun aversion_N : N;
-fun avert_V2 : V2;
-fun aviary_N : N;
-fun aviation_N : N;
-fun aviator_N : N;
-fun avid_A : A;
-fun avidity_N : N;
-fun avidly_Adv : Adv;
-fun avignon_PN : PN;
-fun avocado_N : N;
-fun avocation_N : N;
-fun avoid_V2 : V2;
-fun avoidable_A : A;
-fun avoidance_N : N;
-fun avoirdupois_N : N;
-fun avon_PN : PN;
-fun avouch_V : V;
-fun avouch_V2 : V2;
-fun avow_V2 : V2;
-fun avowal_N : N;
-fun avowedly_Adv : Adv;
-fun avuncular_A : A;
-fun await_V2 : V2;
-fun awake_A : A;
-fun awake_V : V;
-fun awaken_V2 : V2;
-fun awakening_N : N;
-fun award_N : N;
-fun award_V2 : V2;
-fun aware_A : A;
-fun awareness_N : N;
-fun awash_A : A;
-fun away_A : A;
-fun away_Adv : Adv;
-fun awe_N : N;
-fun awe_V2 : V2;
-fun awe_inspiring_A : A;
-fun awe_stricken_A : A;
-fun awe_struck_A : A;
-fun aweigh_Adv : Adv;
-fun awesome_A : A;
-fun awful_A : A;
-fun awfully_Adv : Adv;
-fun awhile_Adv : Adv;
-fun awkward_A : A;
-fun awkwardly_Adv : Adv;
-fun awkwardness_N : N;
-fun awl_N : N;
-fun awning_N : N;
-fun awol_PN : PN;
-fun awry_A : A;
-fun awry_Adv : Adv;
-fun ax_N : N;
-fun ax_V2 : V2;
-fun axe_N : N;
-fun axe_V2 : V2;
-fun axiom_N : N;
-fun axiomatic_A : A;
-fun axiomatically_Adv : Adv;
-fun axis_N : N;
-fun axle_N : N;
-fun ay_Adv : Adv;
-fun ayah_N : N;
-fun aycliffe_PN : PN;
-fun aye_Adv : Adv;
-fun aylesbury_PN : PN;
-fun aylesford_PN : PN;
-fun ayr_PN : PN;
-fun azalea_N : N;
-fun azimuth_N : N;
-fun azure_A : A;
-fun azure_N : N;
-fun b_ed_N : N;
-fun ba_N : N;
-fun baa_N : N;
-fun baa_V : V;
-fun baa_lamb_N : N;
-fun baas_N : N;
-fun babble_N : N;
-fun babble_V : V;
-fun babble_V2 : V2;
-fun babbler_N : N;
-fun babe_N : N;
-fun babel_N : N;
-fun baboo_N : N;
-fun baboon_N : N;
-fun babs_PN : PN;
-fun babu_N : N;
-fun baby_N : N;
-fun baby_V2 : V2;
-fun baby_faced_A : A;
-fun baby_farmer_N : N;
-fun baby_minder_N : N;
-fun baby_talk_N : N;
-fun babyhood_N : N;
-fun babyish_A : A;
-fun babysit_V : V;
-fun babysitter_N : N;
-fun babysitting_N : N;
-fun baccalaureate_N : N;
-fun baccarat_N : N;
-fun bacchanal_A : A;
-fun bacchanal_N : N;
-fun bacchanalian_A : A;
-fun baccy_N : N;
-fun bachelor_N : N;
-fun bacillus_N : N;
-fun back_Adv : Adv;
-fun back_N : N;
-fun back_V : V;
-fun back_V2 : V2;
-fun back_breaking_A : A;
-fun back_down_N : N;
-fun back_formation_N : N;
-fun back_up_N : N;
-fun backache_N : N;
-fun backband_N : N;
-fun backbench_N : N;
-fun backbencher_N : N;
-fun backbite_V : V;
-fun backbite_V2 : V2;
-fun backbiter_N : N;
-fun backboard_N : N;
-fun backbone_N : N;
-fun backchat_N : N;
-fun backcloth_N : N;
-fun backdate_V2 : V2;
-fun backdoor_N : N;
-fun backdrop_N : N;
-fun backer_N : N;
-fun backfire_N : N;
-fun backfire_V : V;
-fun backgammon_N : N;
-fun background_N : N;
-fun backhand_A : A;
-fun backhanded_A : A;
-fun backing_N : N;
-fun backlash_N : N;
-fun backless_A : A;
-fun backlog_N : N;
-fun backmost_A : A;
-fun backpedal_V : V;
-fun backroom_N : N;
-fun backscratcher_N : N;
-fun backseat_N : N;
-fun backsheesh_N : N;
-fun backside_N : N;
-fun backslide_V : V;
-fun backspace_V : V;
-fun backstage_Adv : Adv;
-fun backstair_A : A;
-fun backstroke_N : N;
-fun backsword_N : N;
-fun backtalk_N : N;
-fun backward_A : A;
-fun backward_Adv : Adv;
-fun backwards_A : A;
-fun backwards_Adv : Adv;
-fun backwash_N : N;
-fun backwater_N : N;
-fun backwoodsman_N : N;
-fun backworth_PN : PN;
-fun bacon_N : N;
-fun bacterial_A : A;
-fun bacteriologist_N : N;
-fun bacteriology_N : N;
-fun bacterium_N : N;
-fun bacup_PN : PN;
-fun bad_A : A;
-fun bad_N : N;
-fun badajoz_PN : PN;
-fun badalona_PN : PN;
-fun badge_N : N;
-fun badger_N : N;
-fun badger_V2 : V2;
-fun badinage_N : N;
-fun badly_Adv : Adv;
-fun badly_behaved_A : A;
-fun badminton_N : N;
-fun badness_N : N;
-fun baffle_N : N;
-fun baffle_V2 : V2;
-fun bag_N : N;
-fun bag_V : V;
-fun bag_V2 : V2;
-fun bagatelle_N : N;
-fun baggage_N : N;
-fun baggy_A : A;
-fun baghdad_PN : PN;
-fun bagnio_N : N;
-fun bagpipe_N : N;
-fun bahamas_PN : PN;
-fun bahamian_A : A;
-fun bahamian_N : N;
-fun bahasa_N : N;
-fun bahrain_PN : PN;
-fun bahraini_A : A;
-fun bahraini_N : N;
-fun bail_N : N;
-fun bail_V : V;
-fun bail_V2 : V2;
-fun bailee_N : N;
-fun bailey_N : N;
-fun bailey_PN : PN;
-fun bailiff_N : N;
-fun bailment_N : N;
-fun bailor_N : N;
-fun bairn_N : N;
-fun bait_N : N;
-fun bait_V : V;
-fun bait_V2 : V2;
-fun baize_N : N;
-fun bake_V : V;
-fun bake_V2 : V2;
-fun bakelite_N : N;
-fun baker_N : N;
-fun bakery_N : N;
-fun baking_hot_A : A;
-fun baking_powder_N : N;
-fun baksheesh_N : N;
-fun baku_PN : PN;
-fun balaclava_N : N;
-fun balalaika_N : N;
-fun balance_N : N;
-fun balance_V : V;
-fun balance_V2 : V2;
-fun balance_sheet_N : N;
-fun balance_wheel_N : N;
-fun balconied_A : A;
-fun balcony_N : N;
-fun bald_A : A;
-fun bald_head_N : N;
-fun bald_pate_N : N;
-fun balderdash_N : N;
-fun baldly_Adv : Adv;
-fun baldness_N : N;
-fun baldock_PN : PN;
-fun baldric_N : N;
-fun bale_N : N;
-fun bale_V2 : V2;
-fun baleful_A : A;
-fun balefully_Adv : Adv;
-fun balk_N : N;
-fun balk_V : V;
-fun balk_V2 : V2;
-fun ball_N : N;
-fun ball_V : V;
-fun ball_V2 : V2;
-fun ball_cartridge_N : N;
-fun ball_dress_N : N;
-fun ballad_N : N;
-fun ballade_N : N;
-fun ballast_N : N;
-fun ballast_V2 : V2;
-fun ballbearing_N : N;
-fun ballcock_N : N;
-fun ballerina_N : N;
-fun ballet_N : N;
-fun ballet_dancer_N : N;
-fun ballet_skirt_N : N;
-fun ballistic_A : A;
-fun ballistics_N : N;
-fun ballock_N : N;
-fun balloon_N : N;
-fun balloon_V : V;
-fun balloonist_N : N;
-fun ballot_N : N;
-fun ballot_V : V;
-fun ballot_box_N : N;
-fun ballpen_N : N;
-fun ballpoint_N : N;
-fun ballpoint_pen_N : N;
-fun ballroom_N : N;
-fun balls_up_N : N;
-fun bally_A : A;
-fun bally_Adv : Adv;
-fun ballyhoo_N : N;
-fun balm_N : N;
-fun balmy_A : A;
-fun baloney_N : N;
-fun balsa_N : N;
-fun balsam_N : N;
-fun baltimore_PN : PN;
-fun baluster_N : N;
-fun balustrade_N : N;
-fun bambino_N : N;
-fun bamboo_N : N;
-fun bamboozle_V2 : V2;
-fun ban_N : N;
-fun ban_V2 : V2;
-fun banal_A : A;
-fun banality_N : N;
-fun banana_N : N;
-fun banbury_PN : PN;
-fun band_N : N;
-fun band_V : V;
-fun band_V2 : V2;
-fun band_saw_N : N;
-fun bandage_N : N;
-fun bandage_V2 : V2;
-fun bandanna_N : N;
-fun bandbox_N : N;
-fun bandeau_N : N;
-fun bandit_N : N;
-fun banditry_N : N;
-fun bandleader_N : N;
-fun bandmaster_N : N;
-fun bandoleer_N : N;
-fun bandolier_N : N;
-fun bandsman_N : N;
-fun bandstand_N : N;
-fun bandung_PN : PN;
-fun bandwagon_N : N;
-fun bandy_A : A;
-fun bandy_V2 : V2;
-fun bandy_legged_A : A;
-fun bane_N : N;
-fun baneful_A : A;
-fun banefully_Adv : Adv;
-fun bang_Adv : Adv;
-fun bang_N : N;
-fun bang_V : V;
-fun bang_V2 : V2;
-fun bangalore_PN : PN;
-fun banger_N : N;
-fun bangkok_PN : PN;
-fun bangladesh_PN : PN;
-fun bangladeshi_A : A;
-fun bangladeshi_N : N;
-fun bangle_N : N;
-fun bangor_PN : PN;
-fun banian_N : N;
-fun banian_tree_N : N;
-fun banish_V2 : V2;
-fun banishment_N : N;
-fun banister_N : N;
-fun banjo_N : N;
-fun bank_N : N;
-fun bank_V : V;
-fun bank_V2 : V2;
-fun bank_bill_N : N;
-fun bank_book_N : N;
-fun bank_draft_N : N;
-fun bank_rate_N : N;
-fun banker_N : N;
-fun banking_N : N;
-fun banknote_N : N;
-fun bankroll_N : N;
-fun bankrupt_A : A;
-fun bankrupt_N : N;
-fun bankrupt_V2 : V2;
-fun bankruptcy_N : N;
-fun banner_N : N;
-fun banning_order_N : N;
-fun bannister_N : N;
-fun bannock_N : N;
-fun bannockburn_PN : PN;
-fun banquet_N : N;
-fun banquet_V : V;
-fun banquet_V2 : V2;
-fun banshee_N : N;
-fun bant_V : V;
-fun bantam_N : N;
-fun banter_N : N;
-fun banter_V : V;
-fun banter_V2 : V2;
-fun bantering_A : A;
-fun banteringly_Adv : Adv;
-fun banting_N : N;
-fun bantry_PN : PN;
-fun bantu_A : A;
-fun bantu_N : N;
-fun banyan_N : N;
-fun baobab_N : N;
-fun baptism_N : N;
-fun baptismal_A : A;
-fun baptist_A : A;
-fun baptist_N : N;
-fun baptize_V2 : V2;
-fun bar_N : N;
-fun bar_V2 : V2;
-fun baracaldo_PN : PN;
-fun barb_N : N;
-fun barbadian_A : A;
-fun barbadian_N : N;
-fun barbados_PN : PN;
-fun barbara_PN : PN;
-fun barbarian_A : A;
-fun barbarian_N : N;
-fun barbaric_A : A;
-fun barbarism_N : N;
-fun barbarity_N : N;
-fun barbarize_V2 : V2;
-fun barbarous_A : A;
-fun barbarously_Adv : Adv;
-fun barbecue_N : N;
-fun barbecue_V2 : V2;
-fun barbed_A : A;
-fun barbel_N : N;
-fun barber_N : N;
-fun barbican_N : N;
-fun barbitone_N : N;
-fun barbiturate_N : N;
-fun barcarole_N : N;
-fun barcarolle_N : N;
-fun barcelona_PN : PN;
-fun bard_N : N;
-fun bardic_A : A;
-fun bardolatry_N : N;
-fun bare_A : A;
-fun bare_V2 : V2;
-fun bareback_Adv : Adv;
-fun barebacked_A : A;
-fun barebacked_Adv : Adv;
-fun barefaced_A : A;
-fun barefacedly_Adv : Adv;
-fun barefoot_Adv : Adv;
-fun barefooted_A : A;
-fun barefooted_Adv : Adv;
-fun bareheaded_A : A;
-fun barelegged_A : A;
-fun barely_Adv : Adv;
-fun bareness_N : N;
-fun bargain_N : N;
-fun bargain_V : V;
-fun bargain_V2 : V2;
-fun barge_N : N;
-fun barge_V : V;
-fun bargee_N : N;
-fun bargepole_N : N;
-fun bargoed_PN : PN;
-fun bari_PN : PN;
-fun baritone_N : N;
-fun barium_N : N;
-fun bark_N : N;
-fun bark_V : V;
-fun bark_V2 : V2;
-fun barker_N : N;
-fun barking_PN : PN;
-fun barley_N : N;
-fun barley_sugar_N : N;
-fun barley_water_N : N;
-fun barleycorn_N : N;
-fun barm_N : N;
-fun barmaid_N : N;
-fun barman_N : N;
-fun barmy_A : A;
-fun barn_N : N;
-fun barn_door_N : N;
-fun barnacle_N : N;
-fun barnard_castle_PN : PN;
-fun barnet_PN : PN;
-fun barnoldswick_PN : PN;
-fun barnsley_PN : PN;
-fun barnstaple_PN : PN;
-fun barnstorm_V : V;
-fun barnstormer_N : N;
-fun barnyard_N : N;
-fun barometer_N : N;
-fun barometric_A : A;
-fun baron_N : N;
-fun baronage_N : N;
-fun baroness_N : N;
-fun baronet_N : N;
-fun baronetcy_N : N;
-fun baronial_A : A;
-fun barony_N : N;
-fun baroque_A : A;
-fun baroque_N : N;
-fun barouche_N : N;
-fun barque_N : N;
-fun barrack_N : N;
-fun barrack_V : V;
-fun barrack_V2 : V2;
-fun barracking_N : N;
-fun barracuda_N : N;
-fun barrage_N : N;
-fun barranquilla_PN : PN;
-fun barrel_N : N;
-fun barrel_V2 : V2;
-fun barrelled_A : A;
-fun barren_A : A;
-fun barrenness_N : N;
-fun barrhead_PN : PN;
-fun barricade_N : N;
-fun barricade_V2 : V2;
-fun barrier_N : N;
-fun barrister_N : N;
-fun barrow_N : N;
-fun barrow_boy_N : N;
-fun barrow_in_furness_PN : PN;
-fun barrow_man_N : N;
-fun barry_PN : PN;
-fun bart_PN : PN;
-fun bartender_N : N;
-fun barter_N : N;
-fun barter_V : V;
-fun barter_V2 : V2;
-fun barterer_N : N;
-fun bartholomew_PN : PN;
-fun barton_upon_humber_PN : PN;
-fun bas_relief_N : N;
-fun basal_A : A;
-fun basalt_N : N;
-fun bascule_N : N;
-fun base_A : A;
-fun base_N : N;
-fun base_V2 : V2;
-fun baseball_N : N;
-fun baseboard_N : N;
-fun basel_PN : PN;
-fun baseless_A : A;
-fun basement_N : N;
-fun bash_N : N;
-fun bash_V2 : V2;
-fun bashful_A : A;
-fun bashfully_Adv : Adv;
-fun basic_A : A;
-fun basically_Adv : Adv;
-fun basil_N : N;
-fun basil_PN : PN;
-fun basildon_PN : PN;
-fun basilica_N : N;
-fun basilisk_N : N;
-fun basin_N : N;
-fun basingstoke_PN : PN;
-fun basis_N : N;
-fun bask_V : V;
-fun basket_N : N;
-fun basketball_N : N;
-fun basketry_N : N;
-fun bass_A : A;
-fun bass_N : N;
-fun bassinet_N : N;
-fun bassoon_N : N;
-fun bast_N : N;
-fun bastard_N : N;
-fun bastardize_V2 : V2;
-fun bastardy_N : N;
-fun baste_V2 : V2;
-fun bastinado_N : N;
-fun bastinado_V2 : V2;
-fun bastion_N : N;
-fun bat_N : N;
-fun bat_V : V;
-fun bat_V2 : V2;
-fun batch_N : N;
-fun bate_V2 : V2;
-fun bath_N : N;
-fun bath_PN : PN;
-fun bath_V : V;
-fun bath_V2 : V2;
-fun bath_chair_N : N;
-fun bathe_N : N;
-fun bathe_V : V;
-fun bathe_V2 : V2;
-fun bather_N : N;
-fun bathgate_PN : PN;
-fun bathing_N : N;
-fun bathing_cap_N : N;
-fun bathing_costume_N : N;
-fun bathing_machine_N : N;
-fun bathing_suit_N : N;
-fun bathos_N : N;
-fun bathrobe_N : N;
-fun bathroom_N : N;
-fun bathtub_N : N;
-fun bathysphere_N : N;
-fun batik_N : N;
-fun batiste_N : N;
-fun batley_PN : PN;
-fun batman_N : N;
-fun baton_N : N;
-fun bats_A : A;
-fun batsman_N : N;
-fun battalion_N : N;
-fun batten_N : N;
-fun batten_V : V;
-fun batten_V2 : V2;
-fun batter_N : N;
-fun batter_V : V;
-fun batter_V2 : V2;
-fun battery_N : N;
-fun batting_N : N;
-fun battle_N : N;
-fun battle_V : V;
-fun battle_axe_N : N;
-fun battle_cruiser_N : N;
-fun battledore_N : N;
-fun battledress_N : N;
-fun battlefield_N : N;
-fun battleground_N : N;
-fun battleship_N : N;
-fun battue_N : N;
-fun batty_A : A;
-fun bauble_N : N;
-fun baulk_N : N;
-fun baulk_V : V;
-fun baulk_V2 : V2;
-fun bauxite_N : N;
-fun bawbee_N : N;
-fun bawd_N : N;
-fun bawdily_Adv : Adv;
-fun bawdy_A : A;
-fun bawdy_N : N;
-fun bawl_V : V;
-fun bawl_V2 : V2;
-fun bay_A : A;
-fun bay_N : N;
-fun bay_V : V;
-fun bay_wreath_N : N;
-fun bayonet_N : N;
-fun bayonet_V2 : V2;
-fun bayou_N : N;
-fun bazaar_N : N;
-fun bazooka_N : N;
-fun bbc_PN : PN;
-fun beach_N : N;
-fun beach_V2 : V2;
-fun beachcomber_N : N;
-fun beachhead_N : N;
-fun beachwear_N : N;
-fun beacon_N : N;
-fun beacon_fire_N : N;
-fun beacon_light_N : N;
-fun beaconsfield_PN : PN;
-fun bead_N : N;
-fun beading_N : N;
-fun beadle_N : N;
-fun beady_A : A;
-fun beagle_N : N;
-fun beagling_N : N;
-fun beak_N : N;
-fun beaker_N : N;
-fun beam_N : N;
-fun beam_V : V;
-fun beam_V2 : V2;
-fun bean_N : N;
-fun beanfeast_N : N;
-fun beano_N : N;
-fun beanstalk_N : N;
-fun bear_N : N;
-fun bear_V : V;
-fun bear_V2 : V2;
-fun bearable_A : A;
-fun beard_N : N;
-fun beard_V2 : V2;
-fun bearded_A : A;
-fun beardless_A : A;
-fun bearer_N : N;
-fun bearing_N : N;
-fun bearish_A : A;
-fun bearsden_PN : PN;
-fun bearskin_N : N;
-fun beast_N : N;
-fun beastliness_N : N;
-fun beastly_A : A;
-fun beastly_Adv : Adv;
-fun beat_A : A;
-fun beat_N : N;
-fun beat_V : V;
-fun beat_V2 : V2;
-fun beaten_A : A;
-fun beater_N : N;
-fun beatific_A : A;
-fun beatification_N : N;
-fun beatify_V2 : V2;
-fun beating_N : N;
-fun beatitude_N : N;
-fun beatnik_N : N;
-fun beatrice_PN : PN;
-fun beau_N : N;
-fun beaujolais_N : N;
-fun beaumaris_PN : PN;
-fun beauteous_A : A;
-fun beautician_N : N;
-fun beautiful_A : A;
-fun beautifully_Adv : Adv;
-fun beautify_V2 : V2;
-fun beauty_N : N;
-fun beauty_parlour_N : N;
-fun beauty_salon_N : N;
-fun beauty_sleep_N : N;
-fun beauty_spot_N : N;
-fun beaver_N : N;
-fun beaver_V : V;
-fun bebington_PN : PN;
-fun becalmed_A : A;
-fun beccles_PN : PN;
-fun beck_N : N;
-fun beckon_V : V;
-fun beckon_V2 : V2;
-fun become_V : V;
-fun become_V2 : V2;
-fun becoming_A : A;
-fun becomingly_Adv : Adv;
-fun bed_N : N;
-fun bed_V2 : V2;
-fun bedaubed_A : A;
-fun bedbug_N : N;
-fun beddau_PN : PN;
-fun bedded_A : A;
-fun bedding_N : N;
-fun bedecked_A : A;
-fun bedevil_V2 : V2;
-fun bedevilment_N : N;
-fun bedewed_A : A;
-fun bedfellow_N : N;
-fun bedford_PN : PN;
-fun bedfordshire_PN : PN;
-fun bedimmed_A : A;
-fun bedlam_N : N;
-fun bedlington_PN : PN;
-fun bedouin_N : N;
-fun bedpan_N : N;
-fun bedpost_N : N;
-fun bedraggled_A : A;
-fun bedridden_A : A;
-fun bedrock_N : N;
-fun bedroll_N : N;
-fun bedroom_N : N;
-fun bedroomed_A : A;
-fun bedside_N : N;
-fun bedsit_N : N;
-fun bedsitter_N : N;
-fun bedsitting_room_N : N;
-fun bedsore_N : N;
-fun bedspread_N : N;
-fun bedstead_N : N;
-fun bedtime_N : N;
-fun beduin_N : N;
-fun bedwas_PN : PN;
-fun bee_N : N;
-fun beech_N : N;
-fun beef_N : N;
-fun beef_V : V;
-fun beefeater_N : N;
-fun beefsteak_N : N;
-fun beefy_A : A;
-fun beehive_N : N;
-fun beep_N : N;
-fun beer_N : N;
-fun beery_A : A;
-fun beeswax_N : N;
-fun beeswax_V2 : V2;
-fun beet_N : N;
-fun beetle_N : N;
-fun beetle_V : V;
-fun beetle_browed_A : A;
-fun beetroot_N : N;
-fun befall_V : V;
-fun befall_V2 : V2;
-fun befit_V2 : V2;
-fun befitting_A : A;
-fun befittingly_Adv : Adv;
-fun befogged_A : A;
-fun before_Adv : Adv;
-fun beforehand_A : A;
-fun beforehand_Adv : Adv;
-fun befoul_V2 : V2;
-fun befriend_V2 : V2;
-fun beg_V : V;
-fun beg_V2 : V2;
-fun beget_V2 : V2;
-fun begetter_N : N;
-fun beggar_N : N;
-fun beggar_V2 : V2;
-fun beggarly_A : A;
-fun beggarman_N : N;
-fun beggarwoman_N : N;
-fun beggary_N : N;
-fun begin_V : V;
-fun begin_V2 : V2;
-fun beginner_N : N;
-fun beginning_N : N;
-fun begonia_N : N;
-fun begrimed_A : A;
-fun begrudge_V2 : V2;
-fun beguile_V2 : V2;
-fun begum_N : N;
-fun behalf_N : N;
-fun behave_V : V;
-fun behaved_A : A;
-fun behaviour_N : N;
-fun behaviourism_N : N;
-fun behaviourist_N : N;
-fun behead_V2 : V2;
-fun behest_N : N;
-fun behind_Adv : Adv;
-fun behind_N : N;
-fun behindhand_A : A;
-fun behold_V2 : V2;
-fun beholden_A : A;
-fun beholder_N : N;
-fun behove_V2 : V2;
-fun beige_N : N;
-fun being_N : N;
-fun beirut_PN : PN;
-fun beith_PN : PN;
-fun bejewelled_A : A;
-fun belabour_V2 : V2;
-fun belated_A : A;
-fun belatedly_Adv : Adv;
-fun belay_N : N;
-fun belay_V2 : V2;
-fun belaying_pin_N : N;
-fun belch_N : N;
-fun belch_V : V;
-fun belch_V2 : V2;
-fun beldam_N : N;
-fun beldame_N : N;
-fun beleaguer_V2 : V2;
-fun belem_PN : PN;
-fun belfast_PN : PN;
-fun belfry_N : N;
-fun belgian_A : A;
-fun belgian_N : N;
-fun belgium_PN : PN;
-fun belgrade_PN : PN;
-fun belie_V2 : V2;
-fun belief_N : N;
-fun believable_A : A;
-fun believe_V : V;
-fun believe_V2 : V2;
-fun believer_N : N;
-fun believing_N : N;
-fun belike_Adv : Adv;
-fun belinda_PN : PN;
-fun belittle_V2 : V2;
-fun bell_N : N;
-fun bell_V2 : V2;
-fun bell_bottomed_A : A;
-fun bell_buoy_N : N;
-fun bell_flower_N : N;
-fun bell_founder_N : N;
-fun bell_foundry_N : N;
-fun bell_metal_N : N;
-fun bell_push_N : N;
-fun bell_ringer_N : N;
-fun bell_tent_N : N;
-fun bella_PN : PN;
-fun belladonna_N : N;
-fun bellboy_N : N;
-fun belle_N : N;
-fun belle_PN : PN;
-fun bellhop_N : N;
-fun bellicose_A : A;
-fun bellied_A : A;
-fun belligerency_N : N;
-fun belligerent_A : A;
-fun belligerent_N : N;
-fun belligerently_Adv : Adv;
-fun bellow_V : V;
-fun bellow_V2 : V2;
-fun bellshill_PN : PN;
-fun bellwether_N : N;
-fun belly_N : N;
-fun belly_V : V;
-fun belly_V2 : V2;
-fun bellyache_N : N;
-fun bellyache_V : V;
-fun bellyflop_N : N;
-fun bellyful_N : N;
-fun bellyland_V : V;
-fun bellylaugh_N : N;
-fun bellylaugh_V : V;
-fun belo_horizonte_PN : PN;
-fun belong_V : V;
-fun beloved_A : A;
-fun beloved_N : N;
-fun below_Adv : Adv;
-fun belper_PN : PN;
-fun belt_N : N;
-fun belt_V2 : V2;
-fun belting_N : N;
-fun bemoan_V2 : V2;
-fun bemused_A : A;
-fun ben_N : N;
-fun ben_PN : PN;
-fun bench_N : N;
-fun bend_N : N;
-fun bend_V : V;
-fun bend_V2 : V2;
-fun beneath_Adv : Adv;
-fun benedick_N : N;
-fun benedictine_A : A;
-fun benedictine_N : N;
-fun benediction_N : N;
-fun benefaction_N : N;
-fun benefactor_N : N;
-fun benefactress_N : N;
-fun benefice_N : N;
-fun beneficed_A : A;
-fun beneficence_N : N;
-fun beneficent_A : A;
-fun beneficial_A : A;
-fun beneficially_Adv : Adv;
-fun beneficiary_N : N;
-fun benefit_N : N;
-fun benefit_V : V;
-fun benefit_V2 : V2;
-fun benevolence_N : N;
-fun benevolent_A : A;
-fun benevolently_Adv : Adv;
-fun bengali_A : A;
-fun bengali_N : N;
-fun benighted_A : A;
-fun benign_A : A;
-fun benignant_A : A;
-fun benignantly_Adv : Adv;
-fun benignity_N : N;
-fun benignly_Adv : Adv;
-fun benin_PN : PN;
-fun beninese_A : A;
-fun beninese_N : N;
-fun benison_N : N;
-fun benjamin_PN : PN;
-fun benny_PN : PN;
-fun bent_A : A;
-fun bent_N : N;
-fun benumbed_A : A;
-fun benzedrine_N : N;
-fun benzene_N : N;
-fun benzine_N : N;
-fun benzol_N : N;
-fun beograd_PN : PN;
-fun bequeath_V2 : V2;
-fun bequest_N : N;
-fun berate_V2 : V2;
-fun bereave_V2 : V2;
-fun bereavement_N : N;
-fun beret_N : N;
-fun berg_N : N;
-fun bergamo_PN : PN;
-fun bergen_PN : PN;
-fun beri_beri_N : N;
-fun berkhamsted_PN : PN;
-fun berkshire_PN : PN;
-fun berlin_PN : PN;
-fun bermuda_PN : PN;
-fun bermudan_A : A;
-fun bermudan_N : N;
-fun bern_PN : PN;
-fun bernard_PN : PN;
-fun bernie_PN : PN;
-fun berry_N : N;
-fun berserk_A : A;
-fun bert_PN : PN;
-fun berth_N : N;
-fun berth_V : V;
-fun berth_V2 : V2;
-fun bertha_PN : PN;
-fun bertie_PN : PN;
-fun berwick_upon_tweed_PN : PN;
-fun beryl_N : N;
-fun beryl_PN : PN;
-fun beseech_V2 : V2;
-fun beseeching_A : A;
-fun beseechingly_Adv : Adv;
-fun beseem_V2 : V2;
-fun beset_V2 : V2;
-fun beshrew_V2 : V2;
-fun besides_Adv : Adv;
-fun besiege_V2 : V2;
-fun besieger_N : N;
-fun besmear_V2 : V2;
-fun besmirch_V2 : V2;
-fun besom_N : N;
-fun besotted_A : A;
-fun bespangled_A : A;
-fun bespattered_A : A;
-fun bespeak_V2 : V2;
-fun bespectacled_A : A;
-fun bess_PN : PN;
-fun bessie_PN : PN;
-fun best_Adv : Adv;
-fun best_V2 : V2;
-fun best_seller_N : N;
-fun bestial_A : A;
-fun bestiality_N : N;
-fun bestially_Adv : Adv;
-fun bestiary_N : N;
-fun bestir_V2 : V2;
-fun bestow_V2 : V2;
-fun bestowal_N : N;
-fun bestrew_V2 : V2;
-fun bestride_V2 : V2;
-fun bet_N : N;
-fun bet_V : V;
-fun bet_V2 : V2;
-fun beta_N : N;
-fun betake_V2 : V2;
-fun betel_N : N;
-fun betel_nut_N : N;
-fun bethel_N : N;
-fun bethink_V2 : V2;
-fun bethune_PN : PN;
-fun betide_V2 : V2;
-fun betimes_Adv : Adv;
-fun betoken_V2 : V2;
-fun betray_V2 : V2;
-fun betrayal_N : N;
-fun betrayer_N : N;
-fun betroth_V2 : V2;
-fun betrothal_N : N;
-fun betrothed_N : N;
-fun betsy_PN : PN;
-fun better_Adv : Adv;
-fun better_N : N;
-fun better_V2 : V2;
-fun betterment_N : N;
-fun bettor_N : N;
-fun betty_PN : PN;
-fun between_Adv : Adv;
-fun betwixt_Adv : Adv;
-fun bevel_N : N;
-fun bevel_V2 : V2;
-fun beverage_N : N;
-fun beverley_PN : PN;
-fun bevy_N : N;
-fun bewail_V2 : V2;
-fun beware_V : V;
-fun beware_V2 : V2;
-fun bewdley_PN : PN;
-fun bewilder_V2 : V2;
-fun bewildering_A : A;
-fun bewilderment_N : N;
-fun bewitch_V2 : V2;
-fun bewitching_A : A;
-fun bewitchingly_Adv : Adv;
-fun bexhill_PN : PN;
-fun bexley_PN : PN;
-fun bey_N : N;
-fun beyond_Adv : Adv;
-fun bezique_N : N;
-fun bhang_N : N;
-fun bhutan_PN : PN;
-fun bhutani_A : A;
-fun bhutani_N : N;
-fun bias_N : N;
-fun bias_V2 : V2;
-fun bib_N : N;
-fun bib_V : V;
-fun bible_N : N;
-fun biblical_A : A;
-fun bibliographer_N : N;
-fun bibliography_N : N;
-fun bibliophile_N : N;
-fun bibulous_A : A;
-fun bicameral_A : A;
-fun bicarbonate_N : N;
-fun bicentenary_N : N;
-fun bicentennial_A : A;
-fun bicentennial_N : N;
-fun biceps_N : N;
-fun bicester_PN : PN;
-fun bicker_V : V;
-fun bicycle_N : N;
-fun bicycle_V : V;
-fun bid_N : N;
-fun bid_V : V;
-fun bid_V2 : V2;
-fun biddable_A : A;
-fun bidder_N : N;
-fun bidding_N : N;
-fun biddulph_PN : PN;
-fun bide_V2 : V2;
-fun bideford_PN : PN;
-fun bidet_N : N;
-fun bielefeld_PN : PN;
-fun biennial_A : A;
-fun biennial_N : N;
-fun biennially_Adv : Adv;
-fun bier_N : N;
-fun biff_N : N;
-fun biff_V2 : V2;
-fun bifocal_A : A;
-fun bifurcate_A : A;
-fun bifurcate_V : V;
-fun bifurcate_V2 : V2;
-fun bifurcated_A : A;
-fun bifurcation_N : N;
-fun big_A : A;
-fun big_boned_A : A;
-fun bigamist_N : N;
-fun bigamous_A : A;
-fun bigamy_N : N;
-fun biggleswade_PN : PN;
-fun bight_N : N;
-fun bigot_N : N;
-fun bigoted_A : A;
-fun bigotry_N : N;
-fun bigwig_N : N;
-fun bijou_A : A;
-fun bijou_N : N;
-fun bike_N : N;
-fun bike_V : V;
-fun bikini_N : N;
-fun bilabial_A : A;
-fun bilabial_N : N;
-fun bilateral_A : A;
-fun bilateralism_N : N;
-fun bilaterally_Adv : Adv;
-fun bilbao_PN : PN;
-fun bilberry_N : N;
-fun bile_N : N;
-fun bile_duct_N : N;
-fun bilge_N : N;
-fun bilge_water_N : N;
-fun bilharzia_N : N;
-fun bilingual_A : A;
-fun bilingual_N : N;
-fun bilious_A : A;
-fun biliousness_N : N;
-fun bilk_V2 : V2;
-fun bill_N : N;
-fun bill_PN : PN;
-fun bill_V : V;
-fun bill_V2 : V2;
-fun bill_poster_N : N;
-fun bill_sticker_N : N;
-fun billboard_N : N;
-fun billericay_PN : PN;
-fun billet_N : N;
-fun billet_V2 : V2;
-fun billet_doux_N : N;
-fun billfold_N : N;
-fun billhook_N : N;
-fun billiard_marker_N : N;
-fun billiard_player_N : N;
-fun billiard_room_N : N;
-fun billiard_table_N : N;
-fun billiards_N : N;
-fun billingsgate_N : N;
-fun billington_PN : PN;
-fun billion_A : A;
-fun billion_N : N;
-fun billionth_A : A;
-fun billionth_N : N;
-fun billow_N : N;
-fun billow_V : V;
-fun billowy_A : A;
-fun billy_N : N;
-fun billy_PN : PN;
-fun billy_goat_N : N;
-fun billy_ho_N : N;
-fun billy_o_N : N;
-fun biltong_N : N;
-fun bimetallic_A : A;
-fun bimetallism_N : N;
-fun bin_N : N;
-fun binary_A : A;
-fun bind_N : N;
-fun bind_V : V;
-fun bind_V2 : V2;
-fun binder_N : N;
-fun bindery_N : N;
-fun binding_A : A;
-fun bindweed_N : N;
-fun bine_N : N;
-fun binge_N : N;
-fun bingley_PN : PN;
-fun bingo_N : N;
-fun binnacle_N : N;
-fun binomial_A : A;
-fun biochemistry_N : N;
-fun biodegradable_A : A;
-fun biograph_N : N;
-fun biographer_N : N;
-fun biographic_A : A;
-fun biographical_A : A;
-fun biography_N : N;
-fun biological_A : A;
-fun biologically_Adv : Adv;
-fun biologist_N : N;
-fun biology_N : N;
-fun bioscope_N : N;
-fun bipartisan_A : A;
-fun biped_N : N;
-fun biplane_N : N;
-fun birch_N : N;
-fun birch_V2 : V2;
-fun birch_rod_N : N;
-fun bird's_eye_A : A;
-fun bird_N : N;
-fun bird_fancier_N : N;
-fun birdcage_N : N;
-fun birdlime_N : N;
-fun birdnesting_N : N;
-fun birdwatcher_N : N;
-fun biretta_N : N;
-fun birkenhead_PN : PN;
-fun biro_N : N;
-fun birstall_PN : PN;
-fun birth_N : N;
-fun birth_control_N : N;
-fun birthday_N : N;
-fun birthmark_N : N;
-fun birthplace_N : N;
-fun birthrate_N : N;
-fun birthright_N : N;
-fun birtley_PN : PN;
-fun biscuit_N : N;
-fun bisect_V2 : V2;
-fun bisection_N : N;
-fun bisexual_A : A;
-fun bisexual_N : N;
-fun bisexuality_N : N;
-fun bishop's_cleeve_PN : PN;
-fun bishop's_stortford_PN : PN;
-fun bishop_N : N;
-fun bishop_auckland_PN : PN;
-fun bishopbriggs_PN : PN;
-fun bishopric_N : N;
-fun bismuth_N : N;
-fun bison_N : N;
-fun bistro_N : N;
-fun bit_N : N;
-fun bitch_N : N;
-fun bitch_V : V;
-fun bitchy_A : A;
-fun bite_N : N;
-fun bite_V : V;
-fun bite_V2 : V2;
-fun biting_A : A;
-fun bitingly_Adv : Adv;
-fun bitter_A : A;
-fun bitter_N : N;
-fun bitter_sweet_A : A;
-fun bitterly_Adv : Adv;
-fun bittern_N : N;
-fun bitterness_N : N;
-fun bitumen_N : N;
-fun bituminous_A : A;
-fun bivalve_N : N;
-fun bivouac_N : N;
-fun bivouac_V : V;
-fun biz_N : N;
-fun bizarre_A : A;
-fun bizonal_A : A;
-fun blab_V : V;
-fun blab_V2 : V2;
-fun blabber_V : V;
-fun blabber_V2 : V2;
-fun blabbermouth_N : N;
-fun black_A : A;
-fun black_N : N;
-fun black_V2 : V2;
-fun black_beetle_N : N;
-fun black_lead_N : N;
-fun black_lead_V2 : V2;
-fun blackamoor_N : N;
-fun blackball_V2 : V2;
-fun blackberry_N : N;
-fun blackbird_N : N;
-fun blackboard_N : N;
-fun blackburn_PN : PN;
-fun blackcurrant_N : N;
-fun blacken_V : V;
-fun blacken_V2 : V2;
-fun blackguard_N : N;
-fun blackguard_V2 : V2;
-fun blackguardly_A : A;
-fun blackhall_PN : PN;
-fun blackhead_N : N;
-fun blacking_N : N;
-fun blackish_A : A;
-fun blackleg_N : N;
-fun blackleg_V : V;
-fun blackleg_V2 : V2;
-fun blacklist_N : N;
-fun blacklist_V2 : V2;
-fun blackmail_N : N;
-fun blackmail_V2 : V2;
-fun blackmailer_N : N;
-fun blackness_N : N;
-fun blackout_N : N;
-fun blackpool_PN : PN;
-fun blackshirt_N : N;
-fun blacksmith_N : N;
-fun blackthorn_N : N;
-fun blackwater_A : A;
-fun blackwood_PN : PN;
-fun bladder_N : N;
-fun blade_N : N;
-fun blaeberry_N : N;
-fun blaenau_ffestiniog_PN : PN;
-fun blaenavon_PN : PN;
-fun blaengwrach_PN : PN;
-fun blah_N : N;
-fun blaina_PN : PN;
-fun blairgowrie_PN : PN;
-fun blame_N : N;
-fun blame_V2 : V2;
-fun blameless_A : A;
-fun blamelessly_Adv : Adv;
-fun blameworthy_A : A;
-fun blanch_V : V;
-fun blanch_V2 : V2;
-fun blancmange_N : N;
-fun bland_A : A;
-fun blandishment_N : N;
-fun blandly_Adv : Adv;
-fun blandness_N : N;
-fun blank_A : A;
-fun blank_N : N;
-fun blanket_N : N;
-fun blanket_V2 : V2;
-fun blankly_Adv : Adv;
-fun blantyre_PN : PN;
-fun blare_N : N;
-fun blare_V : V;
-fun blare_V2 : V2;
-fun blarney_N : N;
-fun blaspheme_V : V;
-fun blaspheme_V2 : V2;
-fun blasphemer_N : N;
-fun blasphemous_A : A;
-fun blasphemously_Adv : Adv;
-fun blasphemy_N : N;
-fun blast_N : N;
-fun blast_V2 : V2;
-fun blast_furnace_N : N;
-fun blast_off_N : N;
-fun blasted_A : A;
-fun blase_A : A;
-fun blatant_A : A;
-fun blatantly_Adv : Adv;
-fun blather_N : N;
-fun blather_V : V;
-fun blaze_N : N;
-fun blaze_V : V;
-fun blaze_V2 : V2;
-fun blazer_N : N;
-fun blazing_A : A;
-fun blazon_N : N;
-fun blazon_V2 : V2;
-fun blazonry_N : N;
-fun bldg_PN : PN;
-fun bldgs_PN : PN;
-fun bleach_N : N;
-fun bleach_V : V;
-fun bleach_V2 : V2;
-fun bleaching_powder_N : N;
-fun bleak_A : A;
-fun bleakly_Adv : Adv;
-fun bleary_A : A;
-fun bleary_eyed_A : A;
-fun bleat_N : N;
-fun bleat_V : V;
-fun bleat_V2 : V2;
-fun bleed_V : V;
-fun bleed_V2 : V2;
-fun bleep_N : N;
-fun bleep_V : V;
-fun blemish_N : N;
-fun blemish_V2 : V2;
-fun blench_V : V;
-fun blend_N : N;
-fun blend_V : V;
-fun blend_V2 : V2;
-fun bless_V2 : V2;
-fun blessed_A : A;
-fun blessedness_N : N;
-fun blessing_N : N;
-fun bletchley_PN : PN;
-fun blether_N : N;
-fun blether_V : V;
-fun blidworth_PN : PN;
-fun blight_N : N;
-fun blight_V2 : V2;
-fun blighter_N : N;
-fun blighty_N : N;
-fun blimp_N : N;
-fun blind_A : A;
-fun blind_N : N;
-fun blind_V2 : V2;
-fun blindfold_A : A;
-fun blindfold_N : N;
-fun blindfold_V2 : V2;
-fun blindly_Adv : Adv;
-fun blindman's_buff_N : N;
-fun blindness_N : N;
-fun blink_N : N;
-fun blink_V : V;
-fun blink_V2 : V2;
-fun blinking_A : A;
-fun blip_N : N;
-fun bliss_N : N;
-fun blissful_A : A;
-fun blissfully_Adv : Adv;
-fun blister_N : N;
-fun blister_V : V;
-fun blister_V2 : V2;
-fun blithe_A : A;
-fun blithely_Adv : Adv;
-fun blithering_A : A;
-fun blithesome_A : A;
-fun blitz_N : N;
-fun blitz_V2 : V2;
-fun blizzard_N : N;
-fun bloated_A : A;
-fun bloater_N : N;
-fun blob_N : N;
-fun bloc_N : N;
-fun block_N : N;
-fun block_V2 : V2;
-fun blockade_N : N;
-fun blockade_V2 : V2;
-fun blockade_runner_N : N;
-fun blockage_N : N;
-fun blockbuster_N : N;
-fun blockhead_N : N;
-fun blockhouse_N : N;
-fun bloke_N : N;
-fun blond_A : A;
-fun blond_N : N;
-fun blonde_A : A;
-fun blonde_N : N;
-fun blood_N : N;
-fun blood_V2 : V2;
-fun blood_bath_N : N;
-fun blood_donor_N : N;
-fun blood_group_N : N;
-fun blood_heat_N : N;
-fun blood_letting_N : N;
-fun blood_money_N : N;
-fun blood_poisoning_N : N;
-fun blood_pressure_N : N;
-fun blood_relation_N : N;
-fun blood_transfusion_N : N;
-fun blood_type_N : N;
-fun blood_vessel_N : N;
-fun bloodcurdling_A : A;
-fun bloodhound_N : N;
-fun bloodless_A : A;
-fun bloodlessly_Adv : Adv;
-fun bloodlust_N : N;
-fun bloodshed_N : N;
-fun bloodshot_A : A;
-fun bloodstain_N : N;
-fun bloodstained_A : A;
-fun bloodstock_N : N;
-fun bloodsucker_N : N;
-fun bloodthirstiness_N : N;
-fun bloodthirsty_A : A;
-fun bloody_A : A;
-fun bloody_Adv : Adv;
-fun bloody_minded_A : A;
-fun bloom_N : N;
-fun bloom_V : V;
-fun bloomer_N : N;
-fun blooming_A : A;
-fun blossom_N : N;
-fun blossom_V : V;
-fun blot_N : N;
-fun blot_V2 : V2;
-fun blotch_N : N;
-fun blotter_N : N;
-fun blotting_paper_N : N;
-fun blotto_A : A;
-fun blouse_N : N;
-fun blow_N : N;
-fun blow_V : V;
-fun blow_V2 : V2;
-fun blow_dry_V2 : V2;
-fun blow_up_N : N;
-fun blowback_N : N;
-fun blower_N : N;
-fun blowfly_N : N;
-fun blowhole_N : N;
-fun blowing_up_N : N;
-fun blowlamp_N : N;
-fun blowout_N : N;
-fun blowpipe_N : N;
-fun blowtorch_N : N;
-fun blowzy_A : A;
-fun blubber_N : N;
-fun blubber_V : V;
-fun blubber_V2 : V2;
-fun bludgeon_N : N;
-fun bludgeon_V2 : V2;
-fun blue_A : A;
-fun blue_N : N;
-fun blue_V2 : V2;
-fun blue_collar_A : A;
-fun blue_jacket_N : N;
-fun blue_pencil_V2 : V2;
-fun bluebell_N : N;
-fun bluebottle_N : N;
-fun blueprint_N : N;
-fun bluestocking_N : N;
-fun bluff_A : A;
-fun bluff_N : N;
-fun bluff_V : V;
-fun bluff_V2 : V2;
-fun bluffer_N : N;
-fun bluffly_Adv : Adv;
-fun bluffness_N : N;
-fun bluish_A : A;
-fun blunder_N : N;
-fun blunder_V : V;
-fun blunder_V2 : V2;
-fun blunderbuss_N : N;
-fun blunderer_N : N;
-fun blunt_A : A;
-fun blunt_V2 : V2;
-fun bluntly_Adv : Adv;
-fun bluntness_N : N;
-fun blur_N : N;
-fun blur_V : V;
-fun blur_V2 : V2;
-fun blurb_N : N;
-fun blurt_V2 : V2;
-fun blush_N : N;
-fun blush_V : V;
-fun blushing_A : A;
-fun blushingly_Adv : Adv;
-fun bluster_N : N;
-fun bluster_V : V;
-fun bluster_V2 : V2;
-fun blustery_A : A;
-fun blvd_N : N;
-fun blyth_PN : PN;
-fun bma_N : N;
-fun bmus_N : N;
-fun bo'ness_PN : PN;
-fun bo'sn_N : N;
-fun bo'sun_N : N;
-fun boa_N : N;
-fun boa_constrictor_N : N;
-fun boar_N : N;
-fun board_N : N;
-fun board_V : V;
-fun board_V2 : V2;
-fun boarder_N : N;
-fun boarding_N : N;
-fun boarding_card_N : N;
-fun boarding_house_N : N;
-fun boarding_school_N : N;
-fun boardroom_N : N;
-fun boardwalk_N : N;
-fun boast_N : N;
-fun boast_V : V;
-fun boast_V2 : V2;
-fun boaster_N : N;
-fun boastful_A : A;
-fun boastfully_Adv : Adv;
-fun boat_N : N;
-fun boat_V : V;
-fun boat_hook_N : N;
-fun boat_house_N : N;
-fun boat_race_N : N;
-fun boat_train_N : N;
-fun boater_N : N;
-fun boatman_N : N;
-fun boatswain_N : N;
-fun bob_N : N;
-fun bob_PN : PN;
-fun bob_V : V;
-fun bob_V2 : V2;
-fun bobbin_N : N;
-fun bobby_N : N;
-fun bobby_PN : PN;
-fun bobby_soxer_N : N;
-fun bobolink_N : N;
-fun bobsled_N : N;
-fun bobsleigh_N : N;
-fun bobtail_N : N;
-fun boche_A : A;
-fun bochum_PN : PN;
-fun bode_V : V;
-fun bode_V2 : V2;
-fun bodice_N : N;
-fun bodied_A : A;
-fun bodily_A : A;
-fun bodily_Adv : Adv;
-fun boding_N : N;
-fun bodkin_N : N;
-fun bodmin_PN : PN;
-fun body_N : N;
-fun body_servant_N : N;
-fun body_snatcher_N : N;
-fun bodyguard_N : N;
-fun bodywork_N : N;
-fun boer_A : A;
-fun boer_N : N;
-fun boffin_N : N;
-fun bog_N : N;
-fun bog_V : V;
-fun bog_V2 : V2;
-fun bogey_N : N;
-fun bogeyman_N : N;
-fun boggle_V : V;
-fun boggy_A : A;
-fun bogie_N : N;
-fun bognor_PN : PN;
-fun bognor_regis_PN : PN;
-fun bogota_PN : PN;
-fun bogus_A : A;
-fun bogy_N : N;
-fun bohemian_A : A;
-fun bohemian_N : N;
-fun boil_N : N;
-fun boil_V : V;
-fun boil_V2 : V2;
-fun boiler_N : N;
-fun boilersuit_N : N;
-fun boiling_point_N : N;
-fun boisterous_A : A;
-fun boisterously_Adv : Adv;
-fun boisterousness_N : N;
-fun bold_A : A;
-fun boldly_Adv : Adv;
-fun boldness_N : N;
-fun boldon_PN : PN;
-fun bole_N : N;
-fun bolero_N : N;
-fun bolivia_PN : PN;
-fun bolivian_A : A;
-fun bolivian_N : N;
-fun boll_N : N;
-fun bollard_N : N;
-fun bollington_PN : PN;
-fun bollock_N : N;
-fun bologna_PN : PN;
-fun boloney_N : N;
-fun bolshevik_N : N;
-fun bolshy_A : A;
-fun bolsover_PN : PN;
-fun bolster_N : N;
-fun bolster_V2 : V2;
-fun bolt_Adv : Adv;
-fun bolt_N : N;
-fun bolt_V : V;
-fun bolt_V2 : V2;
-fun bolt_hole_N : N;
-fun bolton_PN : PN;
-fun bolton_le_sands_PN : PN;
-fun bolzano_PN : PN;
-fun bomb_N : N;
-fun bomb_V : V;
-fun bomb_V2 : V2;
-fun bomb_proof_A : A;
-fun bomb_sight_N : N;
-fun bomb_site_N : N;
-fun bombard_V2 : V2;
-fun bombardier_N : N;
-fun bombardment_N : N;
-fun bombast_N : N;
-fun bombastic_A : A;
-fun bombastically_Adv : Adv;
-fun bombay_PN : PN;
-fun bomber_N : N;
-fun bombshell_N : N;
-fun bon_mot_N : N;
-fun bona_fide_A : A;
-fun bona_fide_Adv : Adv;
-fun bonanza_N : N;
-fun bonbon_N : N;
-fun bond_N : N;
-fun bond_V2 : V2;
-fun bond_holder_N : N;
-fun bondage_N : N;
-fun bone_N : N;
-fun bone_V2 : V2;
-fun bone_dry_A : A;
-fun bone_head_N : N;
-fun bone_idle_A : A;
-fun bone_lazy_A : A;
-fun bone_setter_N : N;
-fun boneless_A : A;
-fun bonemeal_N : N;
-fun boner_N : N;
-fun boneshaker_N : N;
-fun bonfire_N : N;
-fun bongo_N : N;
-fun bonhomie_N : N;
-fun bonito_N : N;
-fun bonkers_A : A;
-fun bonn_PN : PN;
-fun bonnet_N : N;
-fun bonnily_Adv : Adv;
-fun bonny_A : A;
-fun bonnybridge_PN : PN;
-fun bonnyrigg_PN : PN;
-fun bonus_N : N;
-fun bony_A : A;
-fun boo_N : N;
-fun boo_V : V;
-fun boo_V2 : V2;
-fun boob_N : N;
-fun boob_V : V;
-fun booby_N : N;
-fun booby_trap_N : N;
-fun boogie_N : N;
-fun boogie_woogie_N : N;
-fun book_N : N;
-fun book_V2 : V2;
-fun book_end_N : N;
-fun book_keeper_N : N;
-fun bookable_A : A;
-fun bookcase_N : N;
-fun bookclub_N : N;
-fun bookie_N : N;
-fun booking_N : N;
-fun bookish_A : A;
-fun bookishness_N : N;
-fun bookkeeper_N : N;
-fun bookkeeping_N : N;
-fun booklet_N : N;
-fun bookmaker_N : N;
-fun bookmark_N : N;
-fun bookmarker_N : N;
-fun bookmobile_N : N;
-fun bookseller_N : N;
-fun bookshop_N : N;
-fun bookstall_N : N;
-fun bookworm_N : N;
-fun boom_N : N;
-fun boom_V : V;
-fun boom_V2 : V2;
-fun boomerang_N : N;
-fun boon_A : A;
-fun boon_N : N;
-fun boor_N : N;
-fun boorish_A : A;
-fun boorishly_Adv : Adv;
-fun boorishness_N : N;
-fun boost_N : N;
-fun boost_V2 : V2;
-fun booster_N : N;
-fun boot_N : N;
-fun boot_V2 : V2;
-fun booted_A : A;
-fun bootee_N : N;
-fun booth_N : N;
-fun bootlace_N : N;
-fun bootle_PN : PN;
-fun bootleg_V2 : V2;
-fun bootlegger_N : N;
-fun bootless_A : A;
-fun booty_N : N;
-fun booze_N : N;
-fun booze_V : V;
-fun booze_up_N : N;
-fun boozer_N : N;
-fun boozy_A : A;
-fun bopeep_N : N;
-fun boracic_A : A;
-fun borage_N : N;
-fun borax_N : N;
-fun bordeaux_N : N;
-fun bordeaux_PN : PN;
-fun border_N : N;
-fun border_V : V;
-fun border_V2 : V2;
-fun borderer_N : N;
-fun borderland_N : N;
-fun borderline_N : N;
-fun borders_PN : PN;
-fun bordon_PN : PN;
-fun bore_N : N;
-fun bore_V : V;
-fun bore_V2 : V2;
-fun bore_hole_N : N;
-fun boredom_N : N;
-fun borer_N : N;
-fun boric_A : A;
-fun boring_A : A;
-fun boris_PN : PN;
-fun boron_N : N;
-fun borough_N : N;
-fun borrow_V2 : V2;
-fun borrower_N : N;
-fun borsch_N : N;
-fun borstal_N : N;
-fun bortsch_N : N;
-fun borzoi_N : N;
-fun bosh_N : N;
-fun bosky_A : A;
-fun bosom_N : N;
-fun boss_N : N;
-fun boss_V2 : V2;
-fun boss_eyed_A : A;
-fun bossy_A : A;
-fun boston_PN : PN;
-fun botanical_A : A;
-fun botanist_N : N;
-fun botanize_V : V;
-fun botany_N : N;
-fun botch_N : N;
-fun botch_V2 : V2;
-fun botcher_N : N;
-fun both_A : A;
-fun both_Adv : Adv;
-fun bother_N : N;
-fun bother_V : V;
-fun bother_V2 : V2;
-fun bothersome_A : A;
-fun botswana_PN : PN;
-fun bottle_N : N;
-fun bottle_V2 : V2;
-fun bottle_fed_A : A;
-fun bottle_green_A : A;
-fun bottleneck_N : N;
-fun bottom_N : N;
-fun bottom_V : V;
-fun bottomless_A : A;
-fun bottrop_PN : PN;
-fun botulism_N : N;
-fun boudoir_N : N;
-fun bougainvillea_N : N;
-fun bough_N : N;
-fun bouillon_N : N;
-fun boulder_N : N;
-fun boulevard_N : N;
-fun bounce_N : N;
-fun bounce_V : V;
-fun bounce_V2 : V2;
-fun bouncing_A : A;
-fun bouncy_A : A;
-fun bound_A : A;
-fun bound_N : N;
-fun bound_V : V;
-fun bound_V2 : V2;
-fun boundary_N : N;
-fun bounden_A : A;
-fun bounder_N : N;
-fun boundless_A : A;
-fun boundlessly_Adv : Adv;
-fun bounteous_A : A;
-fun bounteously_Adv : Adv;
-fun bountiful_A : A;
-fun bountifully_Adv : Adv;
-fun bounty_N : N;
-fun bouquet_N : N;
-fun bourbon_N : N;
-fun bourgeois_A : A;
-fun bourgeois_N : N;
-fun bourgeoisie_N : N;
-fun bourn_N : N;
-fun bourne_N : N;
-fun bourne_PN : PN;
-fun bournemouth_PN : PN;
-fun bourse_N : N;
-fun bout_N : N;
-fun boutique_N : N;
-fun bovine_A : A;
-fun bovril_N : N;
-fun bow_N : N;
-fun bow_V : V;
-fun bow_V2 : V2;
-fun bow_wow_N : N;
-fun bowburn_PN : PN;
-fun bowdlerize_V2 : V2;
-fun bowel_N : N;
-fun bower_N : N;
-fun bowie_knife_N : N;
-fun bowing_N : N;
-fun bowl_N : N;
-fun bowl_V : V;
-fun bowl_V2 : V2;
-fun bowler_N : N;
-fun bowline_N : N;
-fun bowling_green_N : N;
-fun bowls_N : N;
-fun bowman_N : N;
-fun bowsprit_N : N;
-fun box_N : N;
-fun box_V : V;
-fun box_V2 : V2;
-fun box_kite_N : N;
-fun box_number_N : N;
-fun box_office_N : N;
-fun boxer_N : N;
-fun boxful_N : N;
-fun boxing_N : N;
-fun boxing_day_N : N;
-fun boxing_day_PN : PN;
-fun boxing_glove_N : N;
-fun boxing_match_N : N;
-fun boxwood_N : N;
-fun boy_N : N;
-fun boycott_N : N;
-fun boycott_V2 : V2;
-fun boyfriend_N : N;
-fun boyhood_N : N;
-fun boyish_A : A;
-fun boyishly_Adv : Adv;
-fun bra_N : N;
-fun brace_N : N;
-fun brace_V : V;
-fun brace_V2 : V2;
-fun bracelet_N : N;
-fun bracken_N : N;
-fun bracket_N : N;
-fun bracket_V2 : V2;
-fun brackish_A : A;
-fun bracknell_PN : PN;
-fun bract_N : N;
-fun brad_N : N;
-fun bradawl_N : N;
-fun bradford_PN : PN;
-fun bradford_on_avon_PN : PN;
-fun brae_N : N;
-fun brag_V : V;
-fun braggart_N : N;
-fun bragging_N : N;
-fun brahmin_N : N;
-fun braid_N : N;
-fun braid_V2 : V2;
-fun braille_N : N;
-fun brain_N : N;
-fun brain_V2 : V2;
-fun brain_fag_N : N;
-fun brain_teaser_N : N;
-fun brainchild_N : N;
-fun brainless_A : A;
-fun brainstorm_N : N;
-fun braintree_PN : PN;
-fun brainwash_V2 : V2;
-fun brainwashed_A : A;
-fun brainwashing_N : N;
-fun brainwave_N : N;
-fun brainy_A : A;
-fun braise_V2 : V2;
-fun brake_N : N;
-fun brake_V : V;
-fun brake_V2 : V2;
-fun brakeman_N : N;
-fun bramble_N : N;
-fun bran_N : N;
-fun bran_new_A : A;
-fun branch_N : N;
-fun branch_V : V;
-fun branchy_A : A;
-fun brand_N : N;
-fun brand_V2 : V2;
-fun brand_new_A : A;
-fun branderburgh_PN : PN;
-fun branding_iron_N : N;
-fun brandish_V2 : V2;
-fun brandy_N : N;
-fun brandy_ball_N : N;
-fun brandy_snap_N : N;
-fun brash_A : A;
-fun brasilia_PN : PN;
-fun brass_N : N;
-fun brassard_N : N;
-fun brasserie_N : N;
-fun brassiere_1_N : N;
-fun brassiere_2_N : N;
-fun brassy_A : A;
-fun brat_N : N;
-fun bratislava_PN : PN;
-fun braunschweig_PN : PN;
-fun braunton_PN : PN;
-fun bravado_N : N;
-fun brave_A : A;
-fun brave_N : N;
-fun brave_V2 : V2;
-fun bravely_Adv : Adv;
-fun bravery_N : N;
-fun bravo_N : N;
-fun brawl_N : N;
-fun brawl_V : V;
-fun brawler_N : N;
-fun brawn_N : N;
-fun brawny_A : A;
-fun bray_N : N;
-fun bray_V2 : V2;
-fun braze_V2 : V2;
-fun brazen_A : A;
-fun brazen_V2 : V2;
-fun brazen_faced_A : A;
-fun brazier_N : N;
-fun brazil_PN : PN;
-fun brazilian_A : A;
-fun brazilian_N : N;
-fun breach_N : N;
-fun breach_V2 : V2;
-fun bread_N : N;
-fun breadcrumb_N : N;
-fun breadfruit_N : N;
-fun breadline_N : N;
-fun breadth_N : N;
-fun breadthways_Adv : Adv;
-fun breadthwise_Adv : Adv;
-fun breadwinner_N : N;
-fun break_N : N;
-fun break_V : V;
-fun break_V2 : V2;
-fun break_in_N : N;
-fun break_up_N : N;
-fun breakable_A : A;
-fun breakage_N : N;
-fun breakaway_N : N;
-fun breakaways_N : N;
-fun breakdown_N : N;
-fun breaker_N : N;
-fun breakfast_N : N;
-fun breakfast_V : V;
-fun breakneck_A : A;
-fun breakthrough_N : N;
-fun breakwater_N : N;
-fun bream_N : N;
-fun breast_N : N;
-fun breast_V2 : V2;
-fun breast_deep_Adv : Adv;
-fun breast_fed_A : A;
-fun breast_high_Adv : Adv;
-fun breast_plate_N : N;
-fun breastfeed_V : V;
-fun breastfeed_V2 : V2;
-fun breaston_PN : PN;
-fun breaststroke_N : N;
-fun breastwork_N : N;
-fun breath_N : N;
-fun breathalyser_N : N;
-fun breathe_V : V;
-fun breathe_V2 : V2;
-fun breather_N : N;
-fun breathing_N : N;
-fun breathing_space_N : N;
-fun breathless_A : A;
-fun breathlessly_Adv : Adv;
-fun breathtaking_A : A;
-fun brecknock_PN : PN;
-fun breda_PN : PN;
-fun breech_N : N;
-fun breech_block_N : N;
-fun breeches_buoy_N : N;
-fun breed_N : N;
-fun breed_V : V;
-fun breed_V2 : V2;
-fun breeder_N : N;
-fun breeding_N : N;
-fun breedsall_PN : PN;
-fun breeze_N : N;
-fun breeze_V : V;
-fun breezily_Adv : Adv;
-fun breeziness_N : N;
-fun breezy_A : A;
-fun bremen_PN : PN;
-fun bremerhaven_PN : PN;
-fun bren_N : N;
-fun bren_gun_N : N;
-fun brenda_PN : PN;
-fun brent_PN : PN;
-fun brentwood_PN : PN;
-fun brescia_PN : PN;
-fun brest_PN : PN;
-fun breve_N : N;
-fun brevet_N : N;
-fun breviary_N : N;
-fun brevity_N : N;
-fun brew_N : N;
-fun brew_V : V;
-fun brew_V2 : V2;
-fun brewer_N : N;
-fun brewery_N : N;
-fun brian_PN : PN;
-fun briar_N : N;
-fun bribable_A : A;
-fun bribe_N : N;
-fun bribe_V2 : V2;
-fun bribery_N : N;
-fun bric_a_brac_N : N;
-fun brick_N : N;
-fun brick_V2 : V2;
-fun brick_field_N : N;
-fun brickbat_N : N;
-fun bricket_wood_PN : PN;
-fun brickkiln_N : N;
-fun bricklayer_N : N;
-fun brickwork_N : N;
-fun bridal_A : A;
-fun bridal_N : N;
-fun bride_N : N;
-fun bridecake_N : N;
-fun bridegroom_N : N;
-fun bridesmaid_N : N;
-fun bridge_N : N;
-fun bridge_V2 : V2;
-fun bridgehead_N : N;
-fun bridgend_PN : PN;
-fun bridget_PN : PN;
-fun bridgnorth_PN : PN;
-fun bridgwater_PN : PN;
-fun bridle_N : N;
-fun bridle_V : V;
-fun bridle_V2 : V2;
-fun bridle_path_N : N;
-fun bridle_road_N : N;
-fun bridlington_PN : PN;
-fun bridport_PN : PN;
-fun brief_A : A;
-fun brief_N : N;
-fun brief_V2 : V2;
-fun briefcase_N : N;
-fun briefing_N : N;
-fun briefly_Adv : Adv;
-fun brier_N : N;
-fun brig_N : N;
-fun brig_PN : PN;
-fun brigade_N : N;
-fun brigadier_N : N;
-fun brigand_N : N;
-fun brigantine_N : N;
-fun brighouse_PN : PN;
-fun bright_A : A;
-fun bright_Adv : Adv;
-fun brighten_V : V;
-fun brighten_V2 : V2;
-fun brightlingsea_PN : PN;
-fun brightly_Adv : Adv;
-fun brightness_N : N;
-fun brighton_PN : PN;
-fun brill_N : N;
-fun brilliance_N : N;
-fun brilliancy_N : N;
-fun brilliant_A : A;
-fun brilliantine_N : N;
-fun brilliantly_Adv : Adv;
-fun brim_N : N;
-fun brim_V : V;
-fun brimful_A : A;
-fun brimfull_A : A;
-fun brimstone_N : N;
-fun brindled_A : A;
-fun brine_N : N;
-fun bring_V2 : V2;
-fun brink_N : N;
-fun brinkmanship_N : N;
-fun briny_A : A;
-fun brioche_N : N;
-fun briquet_N : N;
-fun briquette_N : N;
-fun brisbane_PN : PN;
-fun brisk_A : A;
-fun brisket_N : N;
-fun briskly_Adv : Adv;
-fun bristle_N : N;
-fun bristle_V : V;
-fun bristly_A : A;
-fun bristol_PN : PN;
-fun brit_N : N;
-fun britain_PN : PN;
-fun britannic_A : A;
-fun british_A : A;
-fun britisher_N : N;
-fun briton_A : A;
-fun briton_N : N;
-fun brittle_A : A;
-fun brixham_PN : PN;
-fun brno_PN : PN;
-fun broach_V : V;
-fun broach_V2 : V2;
-fun broad_A : A;
-fun broad_N : N;
-fun broad_minded_A : A;
-fun broad_mindedness_N : N;
-fun broadcast_Adv : Adv;
-fun broadcast_N : N;
-fun broadcast_V : V;
-fun broadcast_V2 : V2;
-fun broadcasting_A : A;
-fun broadcasting_N : N;
-fun broadcloth_N : N;
-fun broaden_V : V;
-fun broaden_V2 : V2;
-fun broadly_Adv : Adv;
-fun broadness_N : N;
-fun broadsheet_N : N;
-fun broadside_N : N;
-fun broadways_Adv : Adv;
-fun broadwise_Adv : Adv;
-fun brocade_N : N;
-fun brocade_V2 : V2;
-fun broccoli_N : N;
-fun brochure_N : N;
-fun brogue_N : N;
-fun broil_V : V;
-fun broil_V2 : V2;
-fun broiler_N : N;
-fun broke_A : A;
-fun broken_hearted_A : A;
-fun broker_N : N;
-fun brokerage_N : N;
-fun brolly_N : N;
-fun bromide_N : N;
-fun bromine_N : N;
-fun bromley_PN : PN;
-fun bromsgrove_PN : PN;
-fun bronchial_A : A;
-fun bronchitic_A : A;
-fun bronchitis_N : N;
-fun bronchus_N : N;
-fun bronco_N : N;
-fun bronze_N : N;
-fun bronze_V : V;
-fun bronze_V2 : V2;
-fun brooch_N : N;
-fun brood_N : N;
-fun brood_V : V;
-fun brood_hen_N : N;
-fun brood_mare_N : N;
-fun broody_A : A;
-fun brook_N : N;
-fun brook_V2 : V2;
-fun broom_N : N;
-fun broomstick_N : N;
-fun bros_PN : PN;
-fun broth_N : N;
-fun brothel_N : N;
-fun brother_N : N;
-fun brother_in_law_N : N;
-fun brotherhood_N : N;
-fun brotherly_A : A;
-fun brougham_N : N;
-fun broughton_PN : PN;
-fun brouhaha_N : N;
-fun brow_N : N;
-fun browbeat_V2 : V2;
-fun brown_A : A;
-fun brown_V : V;
-fun brown_V2 : V2;
-fun brownie_N : N;
-fun brownish_A : A;
-fun brownstone_N : N;
-fun browse_N : N;
-fun browse_V : V;
-fun broxburn_PN : PN;
-fun bruce_PN : PN;
-fun bruges_PN : PN;
-fun bruin_N : N;
-fun bruise_N : N;
-fun bruise_V : V;
-fun bruise_V2 : V2;
-fun bruiser_N : N;
-fun bruit_V2 : V2;
-fun brunch_N : N;
-fun brunei_PN : PN;
-fun bruneian_A : A;
-fun bruneian_N : N;
-fun brunette_N : N;
-fun brunswick_PN : PN;
-fun brunt_N : N;
-fun brush_N : N;
-fun brush_V : V;
-fun brush_V2 : V2;
-fun brush_off_N : N;
-fun brush_up_N : N;
-fun brushwood_N : N;
-fun brushwork_N : N;
-fun brusque_A : A;
-fun brusquely_Adv : Adv;
-fun brusqueness_N : N;
-fun brussels_PN : PN;
-fun brutal_A : A;
-fun brutality_N : N;
-fun brutalize_V2 : V2;
-fun brutally_Adv : Adv;
-fun brute_N : N;
-fun brutish_A : A;
-fun brutishly_Adv : Adv;
-fun bryan_PN : PN;
-fun bsc_N : N;
-fun bst_PN : PN;
-fun bt_PN : PN;
-fun bubble_N : N;
-fun bubble_V : V;
-fun bubbly_A : A;
-fun bubbly_N : N;
-fun bubonic_A : A;
-fun bucarest_PN : PN;
-fun buccaneer_N : N;
-fun buck_N : N;
-fun buck_V : V;
-fun buck_V2 : V2;
-fun bucket_N : N;
-fun bucket_V : V;
-fun bucketful_N : N;
-fun buckhaven_PN : PN;
-fun buckie_PN : PN;
-fun buckingham_PN : PN;
-fun buckinghamshire_PN : PN;
-fun buckle_N : N;
-fun buckle_V : V;
-fun buckle_V2 : V2;
-fun buckler_N : N;
-fun buckley_PN : PN;
-fun buckram_N : N;
-fun bucksburn_PN : PN;
-fun buckshot_N : N;
-fun buckskin_N : N;
-fun bucktooth_N : N;
-fun buckwheat_N : N;
-fun bucolic_A : A;
-fun bucolics_N : N;
-fun bud_N : N;
-fun bud_V : V;
-fun budapest_PN : PN;
-fun buddhism_N : N;
-fun buddhist_N : N;
-fun budding_A : A;
-fun buddy_N : N;
-fun budge_V : V;
-fun budge_V2 : V2;
-fun budgerigar_N : N;
-fun budget_N : N;
-fun budget_V : V;
-fun budgetary_A : A;
-fun budgie_N : N;
-fun buenos_aires_PN : PN;
-fun buff_N : N;
-fun buff_V2 : V2;
-fun buffalo_N : N;
-fun buffalo_PN : PN;
-fun buffer_N : N;
-fun buffet_N : N;
-fun buffet_V : V;
-fun buffet_V2 : V2;
-fun buffoon_N : N;
-fun buffoonery_N : N;
-fun bug_N : N;
-fun bug_V2 : V2;
-fun bug_hunter_N : N;
-fun bugaboo_N : N;
-fun bugbear_N : N;
-fun bugger_N : N;
-fun bugger_V : V;
-fun bugger_V2 : V2;
-fun bugger_all_N : N;
-fun buggery_N : N;
-fun buggy_N : N;
-fun bugle_N : N;
-fun bugler_N : N;
-fun buhl_N : N;
-fun build_N : N;
-fun build_V : V;
-fun build_V2 : V2;
-fun build_up_N : N;
-fun builder_N : N;
-fun building_N : N;
-fun building_society_N : N;
-fun built_in_A : A;
-fun built_up_A : A;
-fun bulb_N : N;
-fun bulbous_A : A;
-fun bulbul_N : N;
-fun bulgaria_PN : PN;
-fun bulgarian_A : A;
-fun bulgarian_N : N;
-fun bulge_N : N;
-fun bulge_V : V;
-fun bulge_V2 : V2;
-fun bulk_N : N;
-fun bulk_V : V;
-fun bulkhead_N : N;
-fun bulkington_PN : PN;
-fun bulky_A : A;
-fun bull's_eye_N : N;
-fun bull_N : N;
-fun bull_headed_A : A;
-fun bull_neck_N : N;
-fun bull_terrier_N : N;
-fun bulldog_N : N;
-fun bulldoze_V2 : V2;
-fun bulldozer_N : N;
-fun bullet_N : N;
-fun bullet_headed_A : A;
-fun bulletin_N : N;
-fun bulletproof_A : A;
-fun bullfight_N : N;
-fun bullfighter_N : N;
-fun bullfinch_N : N;
-fun bullfrog_N : N;
-fun bullion_N : N;
-fun bullock_N : N;
-fun bullring_N : N;
-fun bullshit_N : N;
-fun bullshit_V : V;
-fun bully_A : A;
-fun bully_N : N;
-fun bully_V : V;
-fun bully_V2 : V2;
-fun bulrush_N : N;
-fun bulwark_N : N;
-fun bum_A : A;
-fun bum_N : N;
-fun bum_V : V;
-fun bum_V2 : V2;
-fun bumblebee_N : N;
-fun bumboat_N : N;
-fun bump_Adv : Adv;
-fun bump_N : N;
-fun bump_V : V;
-fun bump_V2 : V2;
-fun bumper_N : N;
-fun bumpkin_N : N;
-fun bumptious_A : A;
-fun bumptiously_Adv : Adv;
-fun bumptiousness_N : N;
-fun bumpy_A : A;
-fun bun_N : N;
-fun buna_N : N;
-fun bunch_N : N;
-fun bunch_V : V;
-fun bunch_V2 : V2;
-fun bundle_N : N;
-fun bundle_V : V;
-fun bundle_V2 : V2;
-fun bung_N : N;
-fun bung_V2 : V2;
-fun bung_hole_N : N;
-fun bungaloid_A : A;
-fun bungalow_N : N;
-fun bungle_N : N;
-fun bungle_V : V;
-fun bungle_V2 : V2;
-fun bungler_N : N;
-fun bunion_N : N;
-fun bunk_N : N;
-fun bunk_V : V;
-fun bunker_N : N;
-fun bunker_V : V;
-fun bunker_V2 : V2;
-fun bunkum_N : N;
-fun bunny_N : N;
-fun bunsen_N : N;
-fun bunting_N : N;
-fun buoy_N : N;
-fun buoy_V : V;
-fun buoyancy_N : N;
-fun buoyant_A : A;
-fun buoyantly_Adv : Adv;
-fun bur_N : N;
-fun burberry_N : N;
-fun burble_V : V;
-fun burden_N : N;
-fun burden_V2 : V2;
-fun burdensome_A : A;
-fun burdock_N : N;
-fun bureau_N : N;
-fun bureaucracy_N : N;
-fun bureaucrat_N : N;
-fun bureaucratic_A : A;
-fun bureaucratically_Adv : Adv;
-fun burette_N : N;
-fun burg_N : N;
-fun burgeon_V : V;
-fun burgess_N : N;
-fun burgess_PN : PN;
-fun burgh_N : N;
-fun burgher_N : N;
-fun burglar_N : N;
-fun burglar_alarm_N : N;
-fun burglar_proof_A : A;
-fun burglarious_A : A;
-fun burglary_N : N;
-fun burgle_V : V;
-fun burgle_V2 : V2;
-fun burgomaster_N : N;
-fun burgos_PN : PN;
-fun burgundy_N : N;
-fun burial_N : N;
-fun burial_ground_N : N;
-fun burke_V2 : V2;
-fun burlap_N : N;
-fun burlesque_N : N;
-fun burlesque_V2 : V2;
-fun burley_PN : PN;
-fun burly_A : A;
-fun burma_PN : PN;
-fun burmese_A : A;
-fun burmese_N : N;
-fun burn_N : N;
-fun burn_V : V;
-fun burn_V2 : V2;
-fun burn_up_N : N;
-fun burner_N : N;
-fun burnham_on_sea_PN : PN;
-fun burning_A : A;
-fun burnish_V : V;
-fun burnish_V2 : V2;
-fun burnley_PN : PN;
-fun burnouse_N : N;
-fun burntisland_PN : PN;
-fun burntwood_PN : PN;
-fun burp_N : N;
-fun burp_V : V;
-fun burp_V2 : V2;
-fun burr_N : N;
-fun burr_drill_N : N;
-fun burrow_N : N;
-fun burrow_V : V;
-fun burrow_V2 : V2;
-fun burry_port_PN : PN;
-fun bursar_N : N;
-fun bursary_N : N;
-fun burscough_PN : PN;
-fun burst_N : N;
-fun burst_V : V;
-fun burst_V2 : V2;
-fun burthen_N : N;
-fun burthen_V2 : V2;
-fun burton_N : N;
-fun burton_upon_trent_PN : PN;
-fun burundi_PN : PN;
-fun burundian_A : A;
-fun burundian_N : N;
-fun bury_PN : PN;
-fun bury_V2 : V2;
-fun bury_st__edmunds_PN : PN;
-fun burying_ground_N : N;
-fun bus_N : N;
-fun bus_V : V;
-fun bus_V2 : V2;
-fun busby_N : N;
-fun bush_N : N;
-fun bushel_N : N;
-fun bushman_N : N;
-fun bushy_A : A;
-fun busily_Adv : Adv;
-fun business_N : N;
-fun businesslike_A : A;
-fun businessman_N : N;
-fun busker_N : N;
-fun busman_N : N;
-fun bust_N : N;
-fun bust_V : V;
-fun bust_V2 : V2;
-fun bust_up_N : N;
-fun bustard_N : N;
-fun buster_N : N;
-fun bustle_N : N;
-fun bustle_V : V;
-fun bustle_V2 : V2;
-fun busy_A : A;
-fun busy_V2 : V2;
-fun busybody_N : N;
-fun but_Adv : Adv;
-fun butane_N : N;
-fun butch_A : A;
-fun butcher_N : N;
-fun butcher_V2 : V2;
-fun butchery_N : N;
-fun butler_N : N;
-fun butt_N : N;
-fun butt_V : V;
-fun butt_V2 : V2;
-fun butter_N : N;
-fun butter_V2 : V2;
-fun butterbean_N : N;
-fun buttercup_N : N;
-fun butterfingers_N : N;
-fun butterfly_N : N;
-fun buttermilk_N : N;
-fun butterscotch_N : N;
-fun buttery_N : N;
-fun buttock_N : N;
-fun button_N : N;
-fun button_V : V;
-fun button_V2 : V2;
-fun buttoned_up_A : A;
-fun buttonhole_N : N;
-fun buttonhole_V2 : V2;
-fun buttonhook_N : N;
-fun buttonwood_N : N;
-fun buttress_N : N;
-fun buttress_V2 : V2;
-fun buxom_A : A;
-fun buxton_PN : PN;
-fun buy_N : N;
-fun buy_V : V;
-fun buy_V2 : V2;
-fun buyer_N : N;
-fun buzz_N : N;
-fun buzz_V : V;
-fun buzz_V2 : V2;
-fun buzzard_N : N;
-fun buzzer_N : N;
-fun bvm_N : N;
-fun by_Adv : Adv;
-fun by_election_N : N;
-fun bye_N : N;
-fun bye_bye_N : N;
-fun bye_law_N : N;
-fun bygone_A : A;
-fun bylaw_N : N;
-fun bypass_N : N;
-fun bypass_V2 : V2;
-fun bypath_N : N;
-fun byplay_N : N;
-fun byproduct_N : N;
-fun byroad_N : N;
-fun bystander_N : N;
-fun byway_N : N;
-fun byword_N : N;
-fun bete_noire_N : N;
-fun c_in_c_PN : PN;
-fun c_of_e_N : N;
-fun ca'canny_N : N;
-fun cab_N : N;
-fun cab_rank_N : N;
-fun cabal_N : N;
-fun cabaret_N : N;
-fun cabbage_N : N;
-fun cabby_N : N;
-fun caber_N : N;
-fun cabin_N : N;
-fun cabinet_N : N;
-fun cabinet_maker_N : N;
-fun cable's_length_N : N;
-fun cable_N : N;
-fun cable_V : V;
-fun cable_V2 : V2;
-fun cable_car_N : N;
-fun cable_length_N : N;
-fun cable_railway_N : N;
-fun cablegram_N : N;
-fun cabman_N : N;
-fun caboodle_N : N;
-fun caboose_N : N;
-fun cabstand_N : N;
-fun cacao_N : N;
-fun cacao_bean_N : N;
-fun cacao_tree_N : N;
-fun cache_N : N;
-fun cache_V2 : V2;
-fun cachet_N : N;
-fun cachou_N : N;
-fun cackle_N : N;
-fun cackle_V : V;
-fun cackler_N : N;
-fun cacophonous_A : A;
-fun cacophony_N : N;
-fun cactus_N : N;
-fun cad_N : N;
-fun cadaver_N : N;
-fun cadaverous_A : A;
-fun caddie_N : N;
-fun caddish_A : A;
-fun caddy_N : N;
-fun cadence_N : N;
-fun cadenza_N : N;
-fun cadet_N : N;
-fun cadge_V : V;
-fun cadge_V2 : V2;
-fun cadger_N : N;
-fun cadiz_PN : PN;
-fun cadmium_N : N;
-fun cadre_N : N;
-fun caen_PN : PN;
-fun caerleon_PN : PN;
-fun caernarfon_PN : PN;
-fun caerphilly_PN : PN;
-fun caesar_N : N;
-fun caesarian_A : A;
-fun caesura_N : N;
-fun cafe_au_lait_N : N;
-fun cafeteria_N : N;
-fun caff_N : N;
-fun caffeine_N : N;
-fun caftan_N : N;
-fun cafe_N : N;
-fun cage_N : N;
-fun cage_V2 : V2;
-fun cagey_A : A;
-fun cagily_Adv : Adv;
-fun cagliari_PN : PN;
-fun cagoule_N : N;
-fun caiman_N : N;
-fun cairn_N : N;
-fun cairo_PN : PN;
-fun caisson_N : N;
-fun caitiff_N : N;
-fun cajole_V2 : V2;
-fun cajolery_N : N;
-fun cake_N : N;
-fun cake_V : V;
-fun cake_V2 : V2;
-fun calabash_N : N;
-fun calamitous_A : A;
-fun calamity_N : N;
-fun calcify_V : V;
-fun calcify_V2 : V2;
-fun calcination_N : N;
-fun calcine_V : V;
-fun calcine_V2 : V2;
-fun calcium_N : N;
-fun calculable_A : A;
-fun calculate_V : V;
-fun calculate_V2 : V2;
-fun calculating_A : A;
-fun calculation_N : N;
-fun calculator_N : N;
-fun calculus_N : N;
-fun calcutta_PN : PN;
-fun caldicot_PN : PN;
-fun caldron_N : N;
-fun calendar_N : N;
-fun calender_N : N;
-fun calender_V2 : V2;
-fun calf_N : N;
-fun calf_love_N : N;
-fun cali_PN : PN;
-fun calibrate_V2 : V2;
-fun calibration_N : N;
-fun calibre_N : N;
-fun calico_N : N;
-fun calif_N : N;
-fun california_PN : PN;
-fun californian_A : A;
-fun californian_N : N;
-fun caliph_N : N;
-fun caliphate_N : N;
-fun calisthenics_N : N;
-fun calk_N : N;
-fun calk_V2 : V2;
-fun call_N : N;
-fun call_V : V;
-fun call_V2 : V2;
-fun call_box_N : N;
-fun call_girl_N : N;
-fun call_over_N : N;
-fun call_up_N : N;
-fun caller_N : N;
-fun calligraphy_N : N;
-fun calling_N : N;
-fun calliope_N : N;
-fun callisthenics_N : N;
-fun callosity_N : N;
-fun callous_A : A;
-fun callousness_N : N;
-fun callow_A : A;
-fun callowness_N : N;
-fun callus_N : N;
-fun calm_A : A;
-fun calm_N : N;
-fun calm_V : V;
-fun calm_V2 : V2;
-fun calmly_Adv : Adv;
-fun calmness_N : N;
-fun calne_PN : PN;
-fun calomel_N : N;
-fun calor_PN : PN;
-fun calorie_N : N;
-fun calorific_A : A;
-fun calumniate_V2 : V2;
-fun calumny_N : N;
-fun calvary_N : N;
-fun calve_V : V;
-fun calverton_PN : PN;
-fun calvinism_N : N;
-fun calvinist_N : N;
-fun calypso_N : N;
-fun calyx_N : N;
-fun cam_N : N;
-fun camaraderie_N : N;
-fun camber_N : N;
-fun camber_V : V;
-fun camber_V2 : V2;
-fun cambodia_PN : PN;
-fun cambodian_A : A;
-fun cambodian_N : N;
-fun cambourne_PN : PN;
-fun cambric_N : N;
-fun cambridge_PN : PN;
-fun cambridgeshire_PN : PN;
-fun cambuslang_PN : PN;
-fun camden_PN : PN;
-fun camel_N : N;
-fun camel_hair_N : N;
-fun camellia_N : N;
-fun camembert_N : N;
-fun cameo_N : N;
-fun camera_N : N;
-fun cameraman_N : N;
-fun cameroon_PN : PN;
-fun cameroonian_A : A;
-fun cameroonian_N : N;
-fun camion_N : N;
-fun camomile_N : N;
-fun camouflage_N : N;
-fun camouflage_V2 : V2;
-fun camp_A : A;
-fun camp_N : N;
-fun camp_V : V;
-fun camp_V2 : V2;
-fun camp_bed_N : N;
-fun camp_chair_N : N;
-fun camp_fire_N : N;
-fun camp_follower_N : N;
-fun camp_stool_N : N;
-fun campaign_N : N;
-fun campaign_V : V;
-fun campaigner_N : N;
-fun campanile_N : N;
-fun campanula_N : N;
-fun campbeltown_PN : PN;
-fun camper_N : N;
-fun camphor_N : N;
-fun camphorated_A : A;
-fun camping_N : N;
-fun campion_N : N;
-fun campus_N : N;
-fun camshaft_N : N;
-fun can_N : N;
-fun can_V2 : V2;
-fun canada_PN : PN;
-fun canadian_A : A;
-fun canadian_N : N;
-fun canal_N : N;
-fun canalization_N : N;
-fun canalize_V2 : V2;
-fun canape_N : N;
-fun canard_N : N;
-fun canary_N : N;
-fun canary_bird_N : N;
-fun canary_wine_N : N;
-fun canasta_N : N;
-fun canberra_PN : PN;
-fun cancan_N : N;
-fun cancel_V : V;
-fun cancel_V2 : V2;
-fun cancellation_N : N;
-fun cancer_N : N;
-fun cancer_PN : PN;
-fun cancerous_A : A;
-fun candelabrum_N : N;
-fun candid_A : A;
-fun candidate_N : N;
-fun candidature_N : N;
-fun candidly_Adv : Adv;
-fun candied_A : A;
-fun candle_N : N;
-fun candle_power_N : N;
-fun candlelight_N : N;
-fun candlestick_N : N;
-fun candlewick_N : N;
-fun candour_N : N;
-fun candy_N : N;
-fun candy_V : V;
-fun candy_V2 : V2;
-fun candy_floss_N : N;
-fun candytuft_N : N;
-fun cane_N : N;
-fun cane_V2 : V2;
-fun canine_A : A;
-fun canister_N : N;
-fun canker_N : N;
-fun canker_V2 : V2;
-fun cankerous_A : A;
-fun canna_N : N;
-fun cannabis_N : N;
-fun canned_A : A;
-fun cannery_N : N;
-fun cannes_PN : PN;
-fun cannibal_N : N;
-fun cannibalism_N : N;
-fun cannibalistic_A : A;
-fun cannibalize_V2 : V2;
-fun cannily_Adv : Adv;
-fun cannock_PN : PN;
-fun cannon_N : N;
-fun cannon_fodder_N : N;
-fun cannonade_N : N;
-fun canny_A : A;
-fun canoe_N : N;
-fun canoe_V2 : V2;
-fun canoeist_N : N;
-fun canon_1_N : N;
-fun canonical_A : A;
-fun canonization_N : N;
-fun canonize_V2 : V2;
-fun canopied_A : A;
-fun canopy_N : N;
-fun cant_N : N;
-fun cant_V : V;
-fun cant_V2 : V2;
-fun cantab_PN : PN;
-fun cantaloup_N : N;
-fun cantaloupe_N : N;
-fun cantankerous_A : A;
-fun cantankerously_Adv : Adv;
-fun cantata_N : N;
-fun canteen_N : N;
-fun canter_N : N;
-fun canter_V : V;
-fun canter_V2 : V2;
-fun canterbury_PN : PN;
-fun canticle_N : N;
-fun cantilever_N : N;
-fun canto_N : N;
-fun canton_N : N;
-fun canton_PN : PN;
-fun cantonment_N : N;
-fun cantor_N : N;
-fun canuck_N : N;
-fun canvas_N : N;
-fun canvass_N : N;
-fun canvass_V : V;
-fun canvass_V2 : V2;
-fun canvey_PN : PN;
-fun canvey_island_PN : PN;
-fun canyon_N : N;
-fun cap_N : N;
-fun cap_V2 : V2;
-fun cap_a_pie_Adv : Adv;
-fun capability_N : N;
-fun capable_A : A;
-fun capably_Adv : Adv;
-fun capacious_A : A;
-fun capacity_N : N;
-fun caparison_N : N;
-fun caparison_V2 : V2;
-fun cape_N : N;
-fun cape_town_PN : PN;
-fun caper_N : N;
-fun caper_V : V;
-fun capillary_N : N;
-fun capital_A : A;
-fun capital_N : N;
-fun capitalism_A : A;
-fun capitalism_N : N;
-fun capitalist_N : N;
-fun capitalistic_A : A;
-fun capitalization_N : N;
-fun capitalize_V : V;
-fun capitalize_V2 : V2;
-fun capitation_N : N;
-fun capitol_N : N;
-fun capitulate_V2 : V2;
-fun capitulation_N : N;
-fun capon_N : N;
-fun caprice_N : N;
-fun capricious_A : A;
-fun capriciously_Adv : Adv;
-fun capriciousness_N : N;
-fun capricorn_PN : PN;
-fun capsicum_N : N;
-fun capsize_V : V;
-fun capsize_V2 : V2;
-fun capstan_N : N;
-fun capsule_N : N;
-fun capt_PN : PN;
-fun captain_N : N;
-fun captain_V2 : V2;
-fun caption_N : N;
-fun captious_A : A;
-fun captiously_Adv : Adv;
-fun captivate_V2 : V2;
-fun captive_A : A;
-fun captive_N : N;
-fun captivity_N : N;
-fun captor_N : N;
-fun capture_N : N;
-fun capture_V2 : V2;
-fun car_N : N;
-fun car_ferry_N : N;
-fun caracas_PN : PN;
-fun carafe_N : N;
-fun caramel_N : N;
-fun carapace_N : N;
-fun carat_N : N;
-fun caravan_N : N;
-fun caravanning_N : N;
-fun caravansary_N : N;
-fun caravanserai_N : N;
-fun caraway_N : N;
-fun carbide_N : N;
-fun carbine_N : N;
-fun carbohydrate_N : N;
-fun carbolic_A : A;
-fun carbon_N : N;
-fun carbon_paper_N : N;
-fun carbonated_A : A;
-fun carbonic_A : A;
-fun carboniferous_A : A;
-fun carbonization_N : N;
-fun carbonize_V2 : V2;
-fun carborundum_N : N;
-fun carboy_N : N;
-fun carbuncle_N : N;
-fun carburettor_N : N;
-fun carcase_N : N;
-fun carcass_N : N;
-fun card_N : N;
-fun card_V2 : V2;
-fun card_sharper_N : N;
-fun cardamom_N : N;
-fun cardboard_N : N;
-fun cardenden_PN : PN;
-fun cardiac_A : A;
-fun cardiff_PN : PN;
-fun cardigan_N : N;
-fun cardigan_PN : PN;
-fun cardinal_A : A;
-fun cardinal_N : N;
-fun care_N : N;
-fun care_V : V;
-fun careen_V : V;
-fun careen_V2 : V2;
-fun career_N : N;
-fun career_V : V;
-fun careerist_N : N;
-fun carefree_A : A;
-fun careful_A : A;
-fun carefully_Adv : Adv;
-fun carefulness_N : N;
-fun careladen_A : A;
-fun careless_A : A;
-fun carelessly_Adv : Adv;
-fun carelessness_N : N;
-fun caress_N : N;
-fun caress_V2 : V2;
-fun caressing_A : A;
-fun caressingly_Adv : Adv;
-fun caret_N : N;
-fun caretaker_N : N;
-fun careworn_A : A;
-fun cargo_N : N;
-fun caribou_N : N;
-fun caricature_N : N;
-fun caricature_V2 : V2;
-fun caricaturist_N : N;
-fun caries_N : N;
-fun carillon_N : N;
-fun carious_A : A;
-fun carl_PN : PN;
-fun carlisle_PN : PN;
-fun carlow_PN : PN;
-fun carluke_PN : PN;
-fun carmarthen_PN : PN;
-fun carmelite_A : A;
-fun carmelite_N : N;
-fun carmine_A : A;
-fun carmine_N : N;
-fun carnage_N : N;
-fun carnal_A : A;
-fun carnally_Adv : Adv;
-fun carnation_N : N;
-fun carnforth_PN : PN;
-fun carnival_N : N;
-fun carnivore_N : N;
-fun carnivorous_A : A;
-fun carnoustie_PN : PN;
-fun carol_N : N;
-fun carol_PN : PN;
-fun carol_V2 : V2;
-fun carole_PN : PN;
-fun carolina_PN : PN;
-fun caroline_PN : PN;
-fun caroller_N : N;
-fun carolyn_PN : PN;
-fun carousal_N : N;
-fun carouse_V2 : V2;
-fun carousel_N : N;
-fun carp_N : N;
-fun carp_V2 : V2;
-fun carpal_A : A;
-fun carpal_N : N;
-fun carpenter_N : N;
-fun carpentry_N : N;
-fun carpet_N : N;
-fun carpet_V2 : V2;
-fun carpet_beater_N : N;
-fun carpet_knight_N : N;
-fun carpet_sweeper_N : N;
-fun carpetbag_N : N;
-fun carpetbagger_N : N;
-fun carport_N : N;
-fun carriage_N : N;
-fun carriageway_N : N;
-fun carrie_PN : PN;
-fun carrier_N : N;
-fun carrier_bag_N : N;
-fun carrier_pigeon_N : N;
-fun carrion_N : N;
-fun carrion_crow_N : N;
-fun carron_PN : PN;
-fun carrot_N : N;
-fun carroty_A : A;
-fun carry_N : N;
-fun carry_V : V;
-fun carry_V2 : V2;
-fun carrycot_N : N;
-fun carsick_A : A;
-fun carsickness_N : N;
-fun cart_N : N;
-fun cart_V2 : V2;
-fun cart_track_N : N;
-fun cartage_N : N;
-fun cartagena_PN : PN;
-fun carte_blanche_N : N;
-fun cartel_N : N;
-fun carter_N : N;
-fun carthorse_N : N;
-fun cartilage_N : N;
-fun cartilaginous_A : A;
-fun cartload_N : N;
-fun cartographer_N : N;
-fun cartography_N : N;
-fun carton_N : N;
-fun cartoon_N : N;
-fun cartoon_V2 : V2;
-fun cartoonist_N : N;
-fun cartridge_N : N;
-fun cartridge_belt_N : N;
-fun cartridge_paper_N : N;
-fun cartroad_N : N;
-fun cartwheel_N : N;
-fun carve_V : V;
-fun carve_V2 : V2;
-fun carver_N : N;
-fun carving_N : N;
-fun carving_fork_N : N;
-fun carving_knife_N : N;
-fun caryatid_N : N;
-fun casablanca_PN : PN;
-fun cascade_N : N;
-fun cascade_V : V;
-fun case_N : N;
-fun case_V2 : V2;
-fun case_hardened_A : A;
-fun case_history_N : N;
-fun case_law_N : N;
-fun casebook_N : N;
-fun casein_N : N;
-fun casement_N : N;
-fun casework_N : N;
-fun cash_N : N;
-fun cash_V : V;
-fun cash_V2 : V2;
-fun cashable_A : A;
-fun cashew_N : N;
-fun cashier_N : N;
-fun cashier_V2 : V2;
-fun cashmere_N : N;
-fun casing_N : N;
-fun casino_N : N;
-fun cask_N : N;
-fun casket_N : N;
-fun cassava_N : N;
-fun casserole_N : N;
-fun cassette_N : N;
-fun cassock_N : N;
-fun cassowary_N : N;
-fun cast_N : N;
-fun cast_V : V;
-fun cast_V2 : V2;
-fun cast_iron_A : A;
-fun cast_off_A : A;
-fun castaway_N : N;
-fun caste_N : N;
-fun castellated_A : A;
-fun caster_N : N;
-fun castigate_V2 : V2;
-fun castigation_N : N;
-fun casting_N : N;
-fun castle_N : N;
-fun castle_V : V;
-fun castleford_PN : PN;
-fun castor_N : N;
-fun castor_oil_N : N;
-fun castrate_V2 : V2;
-fun castration_N : N;
-fun casual_A : A;
-fun casually_Adv : Adv;
-fun casualty_N : N;
-fun casuist_N : N;
-fun casuistic_A : A;
-fun casuistical_A : A;
-fun casuistry_N : N;
-fun casus_belli_N : N;
-fun cat_N : N;
-fun cat_nap_N : N;
-fun cat_o'_nine_tails_N : N;
-fun cat_sleep_N : N;
-fun cataclysm_N : N;
-fun cataclysmic_A : A;
-fun catafalque_N : N;
-fun catalan_A : A;
-fun catalan_N : N;
-fun catalepsy_N : N;
-fun cataleptic_A : A;
-fun cataleptic_N : N;
-fun catalogue_N : N;
-fun catalogue_V2 : V2;
-fun catalpa_N : N;
-fun catalysis_N : N;
-fun catalyst_N : N;
-fun catalytic_A : A;
-fun catamaran_N : N;
-fun catania_PN : PN;
-fun catapult_N : N;
-fun catapult_V2 : V2;
-fun cataract_N : N;
-fun catarrh_N : N;
-fun catastrophe_N : N;
-fun catastrophic_A : A;
-fun catastrophically_Adv : Adv;
-fun catcall_N : N;
-fun catcall_V : V;
-fun catch_N : N;
-fun catch_V : V;
-fun catch_V2 : V2;
-fun catch_crop_N : N;
-fun catcher_N : N;
-fun catching_A : A;
-fun catchment_N : N;
-fun catchment_area_N : N;
-fun catchment_basin_N : N;
-fun catchpenny_A : A;
-fun catchup_N : N;
-fun catchword_N : N;
-fun catchy_A : A;
-fun catechism_N : N;
-fun catechize_V2 : V2;
-fun categorical_A : A;
-fun categorically_Adv : Adv;
-fun categorize_V2 : V2;
-fun category_N : N;
-fun cater_V : V;
-fun caterer_N : N;
-fun caterpillar_N : N;
-fun caterwaul_N : N;
-fun caterwaul_V : V;
-fun catfish_N : N;
-fun catgut_N : N;
-fun cath_PN : PN;
-fun catharsis_N : N;
-fun cathartic_N : N;
-fun cathedral_N : N;
-fun catherine_PN : PN;
-fun cathode_N : N;
-fun catholic_A : A;
-fun catholic_N : N;
-fun catholicism_N : N;
-fun catholicity_N : N;
-fun cathy_PN : PN;
-fun catkin_N : N;
-fun catsup_N : N;
-fun cattiness_N : N;
-fun cattish_A : A;
-fun cattle_cake_N : N;
-fun cattleman_N : N;
-fun catty_A : A;
-fun catwalk_N : N;
-fun caucasian_A : A;
-fun caucasian_N : N;
-fun caucus_N : N;
-fun caul_N : N;
-fun cauldron_N : N;
-fun cauliflower_N : N;
-fun caulk_V2 : V2;
-fun causal_A : A;
-fun causality_N : N;
-fun causation_N : N;
-fun causative_A : A;
-fun cause_N : N;
-fun cause_V2 : V2;
-fun causeless_A : A;
-fun causerie_N : N;
-fun causeway_N : N;
-fun caustic_A : A;
-fun caustically_Adv : Adv;
-fun cauterize_V2 : V2;
-fun caution_N : N;
-fun caution_V2 : V2;
-fun cautionary_A : A;
-fun cautious_A : A;
-fun cautiously_Adv : Adv;
-fun cavalcade_N : N;
-fun cavalier_A : A;
-fun cavalier_N : N;
-fun cavalierly_Adv : Adv;
-fun cavalry_N : N;
-fun cavalryman_N : N;
-fun cavan_PN : PN;
-fun cave_N : N;
-fun cave_V : V;
-fun cave_V2 : V2;
-fun cave_dweller_N : N;
-fun cave_in_N : N;
-fun caveat_N : N;
-fun caveman_N : N;
-fun cavern_N : N;
-fun cavernous_A : A;
-fun caviar_N : N;
-fun caviare_N : N;
-fun cavil_V : V;
-fun cavity_N : N;
-fun cavort_V : V;
-fun caw_N : N;
-fun caw_V : V;
-fun caw_V2 : V2;
-fun cayenne_N : N;
-fun cayenne_pepper_N : N;
-fun cayman_N : N;
-fun canon_2_N : N;
-fun cbi_N : N;
-fun cc_N : N;
-fun cd_N : N;
-fun cdr_PN : PN;
-fun cdre_PN : PN;
-fun cease_N : N;
-fun cease_V : V;
-fun cease_V2 : V2;
-fun cease_fire_N : N;
-fun ceaseless_A : A;
-fun ceaselessly_Adv : Adv;
-fun cecil_PN : PN;
-fun cecilia_PN : PN;
-fun cecily_PN : PN;
-fun cedar_N : N;
-fun cede_V2 : V2;
-fun cedilla_N : N;
-fun cedric_PN : PN;
-fun cefn_mawr_PN : PN;
-fun ceiling_N : N;
-fun celandine_N : N;
-fun celebrant_N : N;
-fun celebrate_V2 : V2;
-fun celebrated_A : A;
-fun celebration_N : N;
-fun celebrity_N : N;
-fun celerity_N : N;
-fun celery_N : N;
-fun celestial_A : A;
-fun celia_PN : PN;
-fun celibacy_N : N;
-fun celibate_N : N;
-fun cell_N : N;
-fun cellar_N : N;
-fun cellarage_N : N;
-fun cellist_N : N;
-fun cello_N : N;
-fun cellophane_N : N;
-fun cellular_A : A;
-fun celluloid_N : N;
-fun cellulose_N : N;
-fun celt_N : N;
-fun celtic_A : A;
-fun celtic_N : N;
-fun cement_N : N;
-fun cement_V2 : V2;
-fun cement_mixer_N : N;
-fun cemetery_N : N;
-fun cenotaph_N : N;
-fun censer_N : N;
-fun censor_N : N;
-fun censor_V2 : V2;
-fun censorious_A : A;
-fun censorship_N : N;
-fun censure_N : N;
-fun censure_V2 : V2;
-fun census_N : N;
-fun cent_N : N;
-fun centaur_N : N;
-fun centenarian_A : A;
-fun centenarian_N : N;
-fun centenary_A : A;
-fun centenary_N : N;
-fun centennial_A : A;
-fun centennial_N : N;
-fun centennially_Adv : Adv;
-fun centigrade_A : A;
-fun centime_N : N;
-fun centimetre_N : N;
-fun centipede_N : N;
-fun central_A : A;
-fun central_N : N;
-fun centralization_N : N;
-fun centralize_V : V;
-fun centralize_V2 : V2;
-fun centrally_Adv : Adv;
-fun centre_N : N;
-fun centre_V : V;
-fun centre_V2 : V2;
-fun centre_bit_N : N;
-fun centre_board_N : N;
-fun centrepiece_N : N;
-fun centrifugal_A : A;
-fun centrifuge_N : N;
-fun centripetal_A : A;
-fun centurion_N : N;
-fun century_N : N;
-fun ceramic_A : A;
-fun ceramics_N : N;
-fun cereal_N : N;
-fun cerebral_A : A;
-fun cerebration_N : N;
-fun ceremonial_A : A;
-fun ceremonial_N : N;
-fun ceremonially_Adv : Adv;
-fun ceremonious_A : A;
-fun ceremoniously_Adv : Adv;
-fun ceremony_N : N;
-fun cerise_A : A;
-fun cerise_N : N;
-fun cert_N : N;
-fun certain_A : A;
-fun certainly_Adv : Adv;
-fun certainty_N : N;
-fun certifiable_A : A;
-fun certificate_N : N;
-fun certificate_V2 : V2;
-fun certificated_A : A;
-fun certification_N : N;
-fun certify_V : V;
-fun certify_V2 : V2;
-fun certitude_N : N;
-fun cerulean_A : A;
-fun cervical_A : A;
-fun cervix_N : N;
-fun cesarean_A : A;
-fun cessation_N : N;
-fun cession_N : N;
-fun cesspit_N : N;
-fun cesspool_N : N;
-fun ceylon_PN : PN;
-fun cf_PN : PN;
-fun chad_PN : PN;
-fun chadian_A : A;
-fun chadian_N : N;
-fun chafe_N : N;
-fun chafe_V : V;
-fun chafe_V2 : V2;
-fun chaff_N : N;
-fun chaff_V2 : V2;
-fun chaffinch_N : N;
-fun chafing_dish_N : N;
-fun chagrin_N : N;
-fun chagrin_V2 : V2;
-fun chain_N : N;
-fun chain_V2 : V2;
-fun chain_armour_N : N;
-fun chain_gang_N : N;
-fun chain_letter_N : N;
-fun chain_mail_N : N;
-fun chain_smoker_N : N;
-fun chain_stitch_N : N;
-fun chain_store_N : N;
-fun chair_N : N;
-fun chair_V2 : V2;
-fun chair_lift_N : N;
-fun chairman_N : N;
-fun chairmanship_N : N;
-fun chaise_N : N;
-fun chaise_longue_N : N;
-fun chalet_N : N;
-fun chalfont_PN : PN;
-fun chalfont_st_giles_PN : PN;
-fun chalfont_st_peter_PN : PN;
-fun chalice_N : N;
-fun chalk_N : N;
-fun chalk_V2 : V2;
-fun chalkpit_N : N;
-fun chalky_A : A;
-fun challenge_N : N;
-fun challenge_V2 : V2;
-fun challenger_N : N;
-fun chamber_N : N;
-fun chamberlain_N : N;
-fun chambermaid_N : N;
-fun chamberpot_N : N;
-fun chameleon_N : N;
-fun chammy_leather_N : N;
-fun chamois_N : N;
-fun chamois_leather_N : N;
-fun champ_N : N;
-fun champ_V : V;
-fun champ_V2 : V2;
-fun champagne_N : N;
-fun champion_A : A;
-fun champion_Adv : Adv;
-fun champion_N : N;
-fun champion_V2 : V2;
-fun championship_N : N;
-fun chance_N : N;
-fun chance_V : V;
-fun chance_V2 : V2;
-fun chancel_N : N;
-fun chancellery_N : N;
-fun chancellor_N : N;
-fun chancery_N : N;
-fun chancy_A : A;
-fun chandelier_N : N;
-fun chandler_N : N;
-fun changchun_PN : PN;
-fun change_N : N;
-fun change_V : V;
-fun change_V2 : V2;
-fun changeable_A : A;
-fun changeableness_N : N;
-fun changeful_A : A;
-fun changeless_A : A;
-fun changeling_N : N;
-fun changeover_N : N;
-fun changsha_PN : PN;
-fun channel_N : N;
-fun channel_V2 : V2;
-fun chant_N : N;
-fun chant_V : V;
-fun chant_V2 : V2;
-fun chaos_N : N;
-fun chaotic_A : A;
-fun chaotically_Adv : Adv;
-fun chap_N : N;
-fun chap_V : V;
-fun chap_V2 : V2;
-fun chapel_N : N;
-fun chapelgoer_N : N;
-fun chaperon_N : N;
-fun chaperon_V2 : V2;
-fun chapfallen_A : A;
-fun chaplain_N : N;
-fun chaplaincy_N : N;
-fun chaplet_N : N;
-fun chapman_N : N;
-fun chapter_N : N;
-fun chapterhouse_N : N;
-fun char_N : N;
-fun char_V : V;
-fun char_V2 : V2;
-fun charabanc_1_N : N;
-fun character_N : N;
-fun characteristic_A : A;
-fun characteristic_N : N;
-fun characteristically_Adv : Adv;
-fun characterization_N : N;
-fun characterize_V2 : V2;
-fun characterless_A : A;
-fun charade_N : N;
-fun charcoal_N : N;
-fun charcoal_burner_N : N;
-fun chard_N : N;
-fun chard_PN : PN;
-fun charge_N : N;
-fun charge_V : V;
-fun charge_V2 : V2;
-fun charge_account_N : N;
-fun charge_sheet_N : N;
-fun chargeable_A : A;
-fun charger_N : N;
-fun charge_d'affaires_N : N;
-fun charily_Adv : Adv;
-fun chariot_N : N;
-fun charioteer_N : N;
-fun charisma_N : N;
-fun charismatic_A : A;
-fun charitable_A : A;
-fun charitably_Adv : Adv;
-fun charity_N : N;
-fun charivari_N : N;
-fun charlady_N : N;
-fun charlatan_N : N;
-fun charles_PN : PN;
-fun charleston_N : N;
-fun charlie_PN : PN;
-fun charlock_N : N;
-fun charlotte_PN : PN;
-fun charm_N : N;
-fun charm_V : V;
-fun charm_V2 : V2;
-fun charmer_N : N;
-fun charming_A : A;
-fun charmingly_Adv : Adv;
-fun charnel_house_N : N;
-fun chart_N : N;
-fun chart_V2 : V2;
-fun charter_N : N;
-fun charter_V2 : V2;
-fun charter_party_N : N;
-fun chartism_N : N;
-fun chartist_N : N;
-fun chartreuse_N : N;
-fun charwoman_N : N;
-fun chary_A : A;
-fun charybdis_PN : PN;
-fun charabanc_2_N : N;
-fun chas_PN : PN;
-fun chase_N : N;
-fun chase_V : V;
-fun chase_V2 : V2;
-fun chaser_N : N;
-fun chasm_N : N;
-fun chassis_N : N;
-fun chaste_A : A;
-fun chastely_Adv : Adv;
-fun chasten_V2 : V2;
-fun chastise_V2 : V2;
-fun chastisement_N : N;
-fun chastity_N : N;
-fun chasuble_N : N;
-fun chat_N : N;
-fun chat_V : V;
-fun chat_V2 : V2;
-fun chatelaine_N : N;
-fun chatham_PN : PN;
-fun chattel_N : N;
-fun chatter_N : N;
-fun chatter_V : V;
-fun chatterbox_N : N;
-fun chattily_Adv : Adv;
-fun chatty_A : A;
-fun chauffeur_N : N;
-fun chauffeuse_N : N;
-fun chauvinism_N : N;
-fun chauvinist_N : N;
-fun chauvinistic_A : A;
-fun chaw_N : N;
-fun chaw_V2 : V2;
-fun chaw_bacon_N : N;
-fun cheadle_PN : PN;
-fun cheap_A : A;
-fun cheapen_V : V;
-fun cheapen_V2 : V2;
-fun cheapjack_A : A;
-fun cheaply_Adv : Adv;
-fun cheapness_N : N;
-fun cheat_N : N;
-fun cheat_V : V;
-fun cheat_V2 : V2;
-fun check_N : N;
-fun check_V : V;
-fun check_V2 : V2;
-fun checkbook_N : N;
-fun checked_A : A;
-fun checker_N : N;
-fun checker_V2 : V2;
-fun checkers_N : N;
-fun checklist_N : N;
-fun checkmate_N : N;
-fun checkmate_V2 : V2;
-fun checkout_N : N;
-fun checkpoint_N : N;
-fun checkroom_N : N;
-fun checkup_N : N;
-fun cheddar_N : N;
-fun cheek_N : N;
-fun cheek_V2 : V2;
-fun cheekbone_N : N;
-fun cheeked_A : A;
-fun cheekily_Adv : Adv;
-fun cheeky_A : A;
-fun cheep_N : N;
-fun cheep_V : V;
-fun cheer_N : N;
-fun cheer_V : V;
-fun cheer_V2 : V2;
-fun cheerful_A : A;
-fun cheerfully_Adv : Adv;
-fun cheerfulness_N : N;
-fun cheerily_Adv : Adv;
-fun cheering_A : A;
-fun cheering_N : N;
-fun cheerleader_N : N;
-fun cheerless_A : A;
-fun cheerlessly_Adv : Adv;
-fun cheerlessness_N : N;
-fun cheery_A : A;
-fun cheese_N : N;
-fun cheesecake_N : N;
-fun cheesecloth_N : N;
-fun cheeseparing_A : A;
-fun cheetah_N : N;
-fun chef_N : N;
-fun chef_d'oeuvre_N : N;
-fun chelmsford_PN : PN;
-fun chelsea_PN : PN;
-fun cheltenham_PN : PN;
-fun chelyabinsk_PN : PN;
-fun chemical_A : A;
-fun chemical_N : N;
-fun chemically_Adv : Adv;
-fun chemise_N : N;
-fun chemist_N : N;
-fun chemistry_N : N;
-fun chemotherapy_N : N;
-fun chengchow_PN : PN;
-fun chengtu_PN : PN;
-fun chenille_N : N;
-fun chepstow_PN : PN;
-fun cheque_N : N;
-fun chequebook_N : N;
-fun chequer_V2 : V2;
-fun cherish_V2 : V2;
-fun cheroot_N : N;
-fun cherry_A : A;
-fun cherry_N : N;
-fun cherub_N : N;
-fun cherubic_A : A;
-fun chervil_N : N;
-fun chesham_PN : PN;
-fun cheshire_PN : PN;
-fun chess_N : N;
-fun chessboard_N : N;
-fun chessman_N : N;
-fun chest_N : N;
-fun chester_PN : PN;
-fun chester_le_street_PN : PN;
-fun chesterfield_N : N;
-fun chesterfield_PN : PN;
-fun chestnut_N : N;
-fun cheval_glass_N : N;
-fun chevron_N : N;
-fun chew_N : N;
-fun chew_V : V;
-fun chew_V2 : V2;
-fun chewing_gum_N : N;
-fun chianti_N : N;
-fun chiaroscuro_N : N;
-fun chic_A : A;
-fun chic_N : N;
-fun chicago_PN : PN;
-fun chicanery_N : N;
-fun chichester_PN : PN;
-fun chichi_A : A;
-fun chick_N : N;
-fun chicken_N : N;
-fun chicken_hearted_A : A;
-fun chicken_run_N : N;
-fun chickenfeed_N : N;
-fun chickenpox_N : N;
-fun chickpea_N : N;
-fun chickweed_N : N;
-fun chicle_N : N;
-fun chicory_N : N;
-fun chide_V : V;
-fun chide_V2 : V2;
-fun chief_A : A;
-fun chief_N : N;
-fun chiefly_Adv : Adv;
-fun chieftain_N : N;
-fun chieftaincy_N : N;
-fun chiffon_N : N;
-fun chiffonier_N : N;
-fun chignon_N : N;
-fun chilblain_N : N;
-fun chilblained_A : A;
-fun child's_play_N : N;
-fun child_N : N;
-fun child_bearing_N : N;
-fun childbirth_N : N;
-fun childhood_N : N;
-fun childish_A : A;
-fun childishly_Adv : Adv;
-fun childless_A : A;
-fun childlike_A : A;
-fun chile_PN : PN;
-fun chilean_A : A;
-fun chilean_N : N;
-fun chill_A : A;
-fun chill_N : N;
-fun chill_V : V;
-fun chill_V2 : V2;
-fun chilli_N : N;
-fun chilly_A : A;
-fun chilly_N : N;
-fun chimaera_N : N;
-fun chime_N : N;
-fun chime_V : V;
-fun chime_V2 : V2;
-fun chimera_N : N;
-fun chimerical_A : A;
-fun chimney_N : N;
-fun chimney_sweep_N : N;
-fun chimneybreast_N : N;
-fun chimneypiece_N : N;
-fun chimneypot_N : N;
-fun chimneystack_N : N;
-fun chimneysweep_N : N;
-fun chimneysweeper_N : N;
-fun chimp_N : N;
-fun chimpanzee_N : N;
-fun chin_N : N;
-fun chin_strap_N : N;
-fun chin_wagging_N : N;
-fun china_N : N;
-fun china_PN : PN;
-fun china_closet_N : N;
-fun chinaware_N : N;
-fun chinchilla_N : N;
-fun chinchow_PN : PN;
-fun chine_N : N;
-fun chinese_A : A;
-fun chinese_N : N;
-fun chink_N : N;
-fun chink_V : V;
-fun chink_V2 : V2;
-fun chintz_N : N;
-fun chip_N : N;
-fun chip_V : V;
-fun chip_V2 : V2;
-fun chipboard_N : N;
-fun chipmunk_N : N;
-fun chippendale_N : N;
-fun chippenham_PN : PN;
-fun chiropodist_N : N;
-fun chiropody_N : N;
-fun chiropractor_N : N;
-fun chirp_N : N;
-fun chirp_V : V;
-fun chirp_V2 : V2;
-fun chirpily_Adv : Adv;
-fun chirpiness_N : N;
-fun chirpy_A : A;
-fun chirrup_N : N;
-fun chirrup_V : V;
-fun chirrup_V2 : V2;
-fun chisel_N : N;
-fun chisel_V2 : V2;
-fun chiseller_N : N;
-fun chit_N : N;
-fun chit_chat_N : N;
-fun chivalrous_A : A;
-fun chivalrously_Adv : Adv;
-fun chivalry_N : N;
-fun chive_N : N;
-fun chivvy_V2 : V2;
-fun chivy_V2 : V2;
-fun chloe_PN : PN;
-fun chloride_N : N;
-fun chlorinate_V2 : V2;
-fun chlorination_N : N;
-fun chlorine_N : N;
-fun chloroform_N : N;
-fun chlorophyll_N : N;
-fun choc_N : N;
-fun choc_ice_N : N;
-fun chock_N : N;
-fun chock_V2 : V2;
-fun chock_a_block_A : A;
-fun chock_a_block_Adv : Adv;
-fun chock_full_A : A;
-fun chocolate_N : N;
-fun choice_A : A;
-fun choice_N : N;
-fun choir_N : N;
-fun choir_school_N : N;
-fun choirboy_N : N;
-fun choke_N : N;
-fun choke_V : V;
-fun choke_V2 : V2;
-fun choke_damp_N : N;
-fun choker_N : N;
-fun chokey_N : N;
-fun choky_N : N;
-fun choler_N : N;
-fun cholera_N : N;
-fun choleric_A : A;
-fun choose_V : V;
-fun choose_V2 : V2;
-fun choosey_A : A;
-fun choosy_A : A;
-fun chop_N : N;
-fun chop_V : V;
-fun chop_V2 : V2;
-fun chop_chop_Adv : Adv;
-fun chop_house_N : N;
-fun chop_suey_N : N;
-fun chopper_N : N;
-fun choppy_A : A;
-fun chopwell_PN : PN;
-fun choral_A : A;
-fun chorale_N : N;
-fun chord_N : N;
-fun chore_N : N;
-fun choreographer_N : N;
-fun choreography_N : N;
-fun chorister_N : N;
-fun chorley_PN : PN;
-fun chortle_N : N;
-fun chortle_V : V;
-fun chorus_N : N;
-fun chorus_V2 : V2;
-fun chorus_girl_N : N;
-fun chow_N : N;
-fun chowder_N : N;
-fun chris_PN : PN;
-fun chrissie_PN : PN;
-fun chrissy_PN : PN;
-fun christ_PN : PN;
-fun christchurch_PN : PN;
-fun christen_V2 : V2;
-fun christendom_N : N;
-fun christening_N : N;
-fun christian_A : A;
-fun christian_N : N;
-fun christian_PN : PN;
-fun christianity_N : N;
-fun christina_PN : PN;
-fun christine_PN : PN;
-fun christlike_A : A;
-fun christmas_N : N;
-fun christmas_PN : PN;
-fun christmas_box_N : N;
-fun christmas_tree_N : N;
-fun christmastide_N : N;
-fun christmastime_N : N;
-fun christopher_PN : PN;
-fun chromatic_A : A;
-fun chrome_N : N;
-fun chromium_N : N;
-fun chromosome_N : N;
-fun chronic_A : A;
-fun chronically_Adv : Adv;
-fun chronicle_N : N;
-fun chronicle_V2 : V2;
-fun chronicler_N : N;
-fun chronological_A : A;
-fun chronologically_Adv : Adv;
-fun chronology_N : N;
-fun chronometer_N : N;
-fun chrysalis_N : N;
-fun chrysanthemum_N : N;
-fun chubby_A : A;
-fun chuck_N : N;
-fun chuck_V2 : V2;
-fun chucker_out_N : N;
-fun chuckle_N : N;
-fun chuckle_V : V;
-fun chug_N : N;
-fun chug_V : V;
-fun chukker_N : N;
-fun chum_N : N;
-fun chum_V : V;
-fun chummy_A : A;
-fun chump_N : N;
-fun chungking_PN : PN;
-fun chunk_N : N;
-fun chunky_A : A;
-fun church_N : N;
-fun churchgoer_N : N;
-fun churchman_N : N;
-fun churchwarden_N : N;
-fun churchyard_N : N;
-fun churl_N : N;
-fun churlish_A : A;
-fun churlishly_Adv : Adv;
-fun churn_N : N;
-fun churn_V : V;
-fun churn_V2 : V2;
-fun chute_N : N;
-fun chutney_N : N;
-fun chateau_N : N;
-fun cia_N : N;
-fun cicada_N : N;
-fun cicala_N : N;
-fun cicatrice_N : N;
-fun cicatrix_N : N;
-fun cicerone_N : N;
-fun cid_N : N;
-fun cider_N : N;
-fun ciderpress_N : N;
-fun cif_PN : PN;
-fun cigar_N : N;
-fun cigar_shaped_A : A;
-fun cigarette_N : N;
-fun cigarette_case_N : N;
-fun cigarette_holder_N : N;
-fun cigarette_paper_N : N;
-fun cinch_N : N;
-fun cinchona_N : N;
-fun cincinnati_PN : PN;
-fun cincture_N : N;
-fun cinder_N : N;
-fun cinder_track_N : N;
-fun cinderella_N : N;
-fun cinderford_PN : PN;
-fun cine_camera_N : N;
-fun cine_film_N : N;
-fun cine_projector_N : N;
-fun cinema_N : N;
-fun cinematic_A : A;
-fun cinematography_N : N;
-fun cinnamon_N : N;
-fun cinquefoil_N : N;
-fun cipher_N : N;
-fun cipher_V : V;
-fun cipher_V2 : V2;
-fun circle_N : N;
-fun circle_V : V;
-fun circle_V2 : V2;
-fun circlet_N : N;
-fun circuit_N : N;
-fun circuitous_A : A;
-fun circular_A : A;
-fun circular_N : N;
-fun circularity_N : N;
-fun circularize_V2 : V2;
-fun circulate_V : V;
-fun circulate_V2 : V2;
-fun circulation_N : N;
-fun circumcise_V2 : V2;
-fun circumcision_N : N;
-fun circumference_N : N;
-fun circumflex_N : N;
-fun circumlocution_N : N;
-fun circumnavigate_V2 : V2;
-fun circumnavigation_N : N;
-fun circumscribe_V2 : V2;
-fun circumscription_N : N;
-fun circumspect_A : A;
-fun circumspection_N : N;
-fun circumspectly_Adv : Adv;
-fun circumstance_N : N;
-fun circumstantial_A : A;
-fun circumstantially_Adv : Adv;
-fun circumvent_V2 : V2;
-fun circumvention_N : N;
-fun circus_N : N;
-fun cirencester_PN : PN;
-fun cirrhosis_N : N;
-fun cirrus_N : N;
-fun cissy_A : A;
-fun cissy_N : N;
-fun cistern_N : N;
-fun citadel_N : N;
-fun citation_N : N;
-fun cite_V2 : V2;
-fun citizen_N : N;
-fun citizenship_N : N;
-fun citric_A : A;
-fun citron_N : N;
-fun citrous_A : A;
-fun citrus_N : N;
-fun city_N : N;
-fun civet_N : N;
-fun civet_cat_N : N;
-fun civic_A : A;
-fun civics_N : N;
-fun civil_A : A;
-fun civilian_A : A;
-fun civilian_N : N;
-fun civility_N : N;
-fun civilization_N : N;
-fun civilize_V2 : V2;
-fun civilly_Adv : Adv;
-fun civvy_street_PN : PN;
-fun clack_N : N;
-fun clack_V : V;
-fun clackmannon_PN : PN;
-fun clacton_PN : PN;
-fun claim_N : N;
-fun claim_V : V;
-fun claim_V2 : V2;
-fun claimant_N : N;
-fun clairvoyance_N : N;
-fun clairvoyant_N : N;
-fun clam_N : N;
-fun clam_V : V;
-fun clambake_N : N;
-fun clamber_N : N;
-fun clamber_V : V;
-fun clammily_Adv : Adv;
-fun clammy_A : A;
-fun clamorous_A : A;
-fun clamour_N : N;
-fun clamour_V : V;
-fun clamour_V2 : V2;
-fun clamp_N : N;
-fun clamp_V : V;
-fun clamp_V2 : V2;
-fun clamp_down_N : N;
-fun clan_N : N;
-fun clandestine_A : A;
-fun clang_N : N;
-fun clang_V : V;
-fun clang_V2 : V2;
-fun clanger_N : N;
-fun clangorous_A : A;
-fun clangour_N : N;
-fun clank_N : N;
-fun clank_V : V;
-fun clank_V2 : V2;
-fun clannish_A : A;
-fun clannishly_Adv : Adv;
-fun clansman_N : N;
-fun clap_N : N;
-fun clap_V : V;
-fun clap_V2 : V2;
-fun clapboard_N : N;
-fun clapper_N : N;
-fun clapperboard_N : N;
-fun claptrap_N : N;
-fun claque_N : N;
-fun clare_PN : PN;
-fun claret_N : N;
-fun clarification_N : N;
-fun clarify_V : V;
-fun clarify_V2 : V2;
-fun clarinet_N : N;
-fun clarinetist_N : N;
-fun clarinettist_N : N;
-fun clarion_N : N;
-fun clarity_N : N;
-fun clarkston_PN : PN;
-fun clarrie_PN : PN;
-fun clash_N : N;
-fun clash_V : V;
-fun clash_V2 : V2;
-fun clasp_N : N;
-fun clasp_V : V;
-fun clasp_V2 : V2;
-fun clasp_knife_N : N;
-fun class_N : N;
-fun class_V2 : V2;
-fun class_conscious_A : A;
-fun class_feeling_N : N;
-fun class_fellow_N : N;
-fun class_list_N : N;
-fun class_warfare_N : N;
-fun classic_A : A;
-fun classic_N : N;
-fun classical_A : A;
-fun classically_Adv : Adv;
-fun classicism_N : N;
-fun classicist_N : N;
-fun classics_N : N;
-fun classifiable_A : A;
-fun classification_N : N;
-fun classified_A : A;
-fun classify_V2 : V2;
-fun classless_A : A;
-fun classmate_N : N;
-fun classroom_N : N;
-fun classy_A : A;
-fun clatter_N : N;
-fun clatter_V : V;
-fun clatter_V2 : V2;
-fun claud_PN : PN;
-fun claude_PN : PN;
-fun clause_N : N;
-fun claustrophobia_N : N;
-fun claustrophobic_A : A;
-fun clavichord_N : N;
-fun clavicle_N : N;
-fun claw_N : N;
-fun claw_V2 : V2;
-fun clawback_N : N;
-fun clawhammer_N : N;
-fun clay_N : N;
-fun clay_cross_PN : PN;
-fun clayey_A : A;
-fun clean_A : A;
-fun clean_Adv : Adv;
-fun clean_N : N;
-fun clean_V : V;
-fun clean_V2 : V2;
-fun clean_bowled_A : A;
-fun clean_cut_A : A;
-fun clean_limbed_A : A;
-fun clean_living_A : A;
-fun clean_shaven_A : A;
-fun clean_up_N : N;
-fun cleaner_N : N;
-fun cleanliness_N : N;
-fun cleanly_A : A;
-fun cleanly_Adv : Adv;
-fun cleanse_V2 : V2;
-fun cleanser_N : N;
-fun clear_A : A;
-fun clear_Adv : Adv;
-fun clear_N : N;
-fun clear_V : V;
-fun clear_V2 : V2;
-fun clear_cut_Adv : Adv;
-fun clear_headed_A : A;
-fun clear_sighted_A : A;
-fun clearance_N : N;
-fun clearing_N : N;
-fun clearing_house_N : N;
-fun clearly_Adv : Adv;
-fun clearness_N : N;
-fun clearway_N : N;
-fun cleat_N : N;
-fun cleator_moor_PN : PN;
-fun cleavage_N : N;
-fun cleave_V : V;
-fun cleave_V2 : V2;
-fun cleaver_N : N;
-fun cleethorpes_PN : PN;
-fun clef_N : N;
-fun cleft_N : N;
-fun clem_PN : PN;
-fun clematis_N : N;
-fun clemency_N : N;
-fun clement_A : A;
-fun clement_PN : PN;
-fun clench_V2 : V2;
-fun clerestory_N : N;
-fun clergy_N : N;
-fun clergyman_N : N;
-fun cleric_N : N;
-fun clerical_A : A;
-fun clerihew_N : N;
-fun clerk_N : N;
-fun clerk_V : V;
-fun clermont_ferrand_PN : PN;
-fun clevedon_PN : PN;
-fun cleveland_PN : PN;
-fun clever_A : A;
-fun cleverly_Adv : Adv;
-fun cleverness_N : N;
-fun clew_N : N;
-fun clew_V2 : V2;
-fun cliche_N : N;
-fun click_N : N;
-fun click_V : V;
-fun client_N : N;
-fun clientele_N : N;
-fun cliff_N : N;
-fun cliff_PN : PN;
-fun cliff_hanger_N : N;
-fun clifford_PN : PN;
-fun climacteric_N : N;
-fun climactic_A : A;
-fun climate_N : N;
-fun climatic_A : A;
-fun climatically_Adv : Adv;
-fun climatology_N : N;
-fun climax_N : N;
-fun climax_V : V;
-fun climax_V2 : V2;
-fun climb_N : N;
-fun climb_V : V;
-fun climb_V2 : V2;
-fun climb_down_N : N;
-fun climber_N : N;
-fun clime_N : N;
-fun clinch_N : N;
-fun clinch_V : V;
-fun clinch_V2 : V2;
-fun clincher_N : N;
-fun cling_V : V;
-fun clinic_N : N;
-fun clinical_A : A;
-fun clinically_Adv : Adv;
-fun clink_N : N;
-fun clink_V : V;
-fun clink_V2 : V2;
-fun clinker_N : N;
-fun clinker_built_A : A;
-fun clip_N : N;
-fun clip_V2 : V2;
-fun clip_joint_N : N;
-fun clip_on_A : A;
-fun clipper_N : N;
-fun clipping_N : N;
-fun clique_N : N;
-fun cliquish_A : A;
-fun clitheroe_PN : PN;
-fun clitoris_N : N;
-fun clive_PN : PN;
-fun cloak_N : N;
-fun cloak_V2 : V2;
-fun cloakroom_N : N;
-fun clobber_N : N;
-fun clobber_V2 : V2;
-fun cloche_N : N;
-fun clock_N : N;
-fun clock_V : V;
-fun clock_V2 : V2;
-fun clock_dial_N : N;
-fun clock_face_N : N;
-fun clock_golf_N : N;
-fun clock_tower_N : N;
-fun clock_watching_N : N;
-fun clockwise_Adv : Adv;
-fun clockwork_N : N;
-fun clod_N : N;
-fun clodhopper_N : N;
-fun clog_N : N;
-fun clog_V : V;
-fun clog_V2 : V2;
-fun clog_dance_N : N;
-fun cloggy_A : A;
-fun cloisonne_N : N;
-fun cloister_N : N;
-fun cloister_V2 : V2;
-fun clone_N : N;
-fun close_A : A;
-fun close_Adv : Adv;
-fun close_N : N;
-fun close_V : V;
-fun close_V2 : V2;
-fun close_cropped_A : A;
-fun close_cut_A : A;
-fun close_down_N : N;
-fun close_fisted_A : A;
-fun close_fitting_A : A;
-fun close_grained_A : A;
-fun close_hauled_A : A;
-fun close_set_A : A;
-fun close_up_N : N;
-fun closely_Adv : Adv;
-fun closeness_N : N;
-fun closet_A : A;
-fun closet_N : N;
-fun closet_V2 : V2;
-fun closure_N : N;
-fun clot_N : N;
-fun clot_V : V;
-fun clot_V2 : V2;
-fun cloth_N : N;
-fun clothe_V2 : V2;
-fun clothes_basket_N : N;
-fun clothes_hanger_N : N;
-fun clothes_moth_N : N;
-fun clothes_peg_N : N;
-fun clothes_pin_N : N;
-fun clotheshorse_N : N;
-fun clothesline_N : N;
-fun clothier_N : N;
-fun clothing_N : N;
-fun cloud_N : N;
-fun cloud_V : V;
-fun cloud_V2 : V2;
-fun cloud_bank_N : N;
-fun cloud_capped_A : A;
-fun cloud_cuckoo_land_N : N;
-fun cloudburst_N : N;
-fun cloudless_A : A;
-fun cloudy_A : A;
-fun clout_N : N;
-fun clout_V2 : V2;
-fun clove_N : N;
-fun clove_hitch_N : N;
-fun clover_N : N;
-fun cloverleaf_N : N;
-fun clown_N : N;
-fun clown_V : V;
-fun clowne_PN : PN;
-fun clownish_A : A;
-fun cloy_V : V;
-fun cloy_V2 : V2;
-fun club_N : N;
-fun club_V : V;
-fun club_V2 : V2;
-fun club_footed_A : A;
-fun clubbable_A : A;
-fun clubfoot_N : N;
-fun clubhouse_N : N;
-fun cluck_N : N;
-fun cluck_V : V;
-fun clue_N : N;
-fun clump_N : N;
-fun clump_V : V;
-fun clump_V2 : V2;
-fun clumsily_Adv : Adv;
-fun clumsiness_N : N;
-fun clumsy_A : A;
-fun clunk_N : N;
-fun clunk_V : V;
-fun cluster_N : N;
-fun cluster_V : V;
-fun clutch_N : N;
-fun clutch_V : V;
-fun clutch_V2 : V2;
-fun clutter_N : N;
-fun clutter_V2 : V2;
-fun clwyd_PN : PN;
-fun clydach_PN : PN;
-fun clydebank_PN : PN;
-fun cm_N : N;
-fun co_N : N;
-fun co_ed_N : N;
-fun co_op_N : N;
-fun co_opt_V2 : V2;
-fun co_respondent_N : N;
-fun co_star_N : N;
-fun co_star_V : V;
-fun co_star_V2 : V2;
-fun coach_N : N;
-fun coach_V : V;
-fun coach_V2 : V2;
-fun coach_builder_N : N;
-fun coachman_N : N;
-fun coagulate_V : V;
-fun coagulate_V2 : V2;
-fun coagulation_N : N;
-fun coal_N : N;
-fun coal_V : V;
-fun coal_V2 : V2;
-fun coal_gas_N : N;
-fun coal_hole_N : N;
-fun coal_house_N : N;
-fun coal_scuttle_N : N;
-fun coal_seam_N : N;
-fun coal_tar_N : N;
-fun coalesce_V : V;
-fun coalescence_N : N;
-fun coalface_N : N;
-fun coalfield_N : N;
-fun coaling_station_N : N;
-fun coalition_N : N;
-fun coalman_N : N;
-fun coalmine_N : N;
-fun coalpit_N : N;
-fun coalville_PN : PN;
-fun coaming_N : N;
-fun coarse_A : A;
-fun coarsely_Adv : Adv;
-fun coarsen_V : V;
-fun coarsen_V2 : V2;
-fun coarseness_N : N;
-fun coast_N : N;
-fun coast_V : V;
-fun coast_V2 : V2;
-fun coastal_A : A;
-fun coaster_N : N;
-fun coastguard_N : N;
-fun coastline_N : N;
-fun coastwise_A : A;
-fun coastwise_Adv : Adv;
-fun coat_N : N;
-fun coat_V2 : V2;
-fun coat_hanger_N : N;
-fun coatbridge_PN : PN;
-fun coatee_N : N;
-fun coating_N : N;
-fun coax_V : V;
-fun coax_V2 : V2;
-fun coaxing_N : N;
-fun coaxingly_Adv : Adv;
-fun cob_N : N;
-fun cob_nut_N : N;
-fun cobalt_N : N;
-fun cobber_N : N;
-fun cobble_N : N;
-fun cobble_V2 : V2;
-fun cobbler_N : N;
-fun cobblestone_N : N;
-fun cobham_PN : PN;
-fun cobra_N : N;
-fun cobweb_N : N;
-fun coca_cola_N : N;
-fun cocaine_N : N;
-fun cochineal_N : N;
-fun cochlea_N : N;
-fun cock_N : N;
-fun cock_V2 : V2;
-fun cock_a_doodle_doo_N : N;
-fun cock_a_hoop_A : A;
-fun cock_a_hoop_Adv : Adv;
-fun cock_crow_N : N;
-fun cockade_N : N;
-fun cockatoo_N : N;
-fun cockchafer_N : N;
-fun cocker_N : N;
-fun cockerel_N : N;
-fun cockermouth_PN : PN;
-fun cockeyed_A : A;
-fun cockfighting_N : N;
-fun cockhorse_N : N;
-fun cockle_N : N;
-fun cockleshell_N : N;
-fun cockney_A : A;
-fun cockney_N : N;
-fun cockpit_N : N;
-fun cockroach_N : N;
-fun cockscomb_N : N;
-fun cocksure_A : A;
-fun cocktail_N : N;
-fun cockup_N : N;
-fun cocky_A : A;
-fun coco_N : N;
-fun cocoa_N : N;
-fun coconut_N : N;
-fun cocoon_N : N;
-fun cocoon_V2 : V2;
-fun cocotte_N : N;
-fun cod_N : N;
-fun cod_PN : PN;
-fun cod_V : V;
-fun cod_V2 : V2;
-fun cod_liver_oil_N : N;
-fun coda_N : N;
-fun coddle_V2 : V2;
-fun code_N : N;
-fun code_V2 : V2;
-fun codeine_N : N;
-fun codex_N : N;
-fun codfish_N : N;
-fun codger_N : N;
-fun codicil_N : N;
-fun codification_N : N;
-fun codify_V2 : V2;
-fun codling_N : N;
-fun codpiece_N : N;
-fun codsall_PN : PN;
-fun coeducation_N : N;
-fun coeducational_A : A;
-fun coefficient_N : N;
-fun coerce_V2 : V2;
-fun coercion_N : N;
-fun coercive_A : A;
-fun coeval_A : A;
-fun coeval_N : N;
-fun coexist_V : V;
-fun coexistence_N : N;
-fun coffee_N : N;
-fun coffee_house_N : N;
-fun coffee_mill_N : N;
-fun coffee_stall_N : N;
-fun coffer_N : N;
-fun coffer_dam_N : N;
-fun coffin_N : N;
-fun cog_N : N;
-fun cogency_N : N;
-fun cogent_A : A;
-fun cogitate_V : V;
-fun cogitate_V2 : V2;
-fun cogitation_N : N;
-fun cognac_N : N;
-fun cognate_A : A;
-fun cognate_N : N;
-fun cognition_N : N;
-fun cognizance_N : N;
-fun cognizant_A : A;
-fun cognomen_N : N;
-fun cogwheel_N : N;
-fun cohabit_V : V;
-fun cohabitation_N : N;
-fun cohere_V : V;
-fun coherence_N : N;
-fun coherency_N : N;
-fun coherent_A : A;
-fun coherently_Adv : Adv;
-fun cohesion_N : N;
-fun cohesive_A : A;
-fun cohort_N : N;
-fun coif_N : N;
-fun coiffeur_N : N;
-fun coiffure_N : N;
-fun coign_N : N;
-fun coil_N : N;
-fun coil_V : V;
-fun coil_V2 : V2;
-fun coimbatore_PN : PN;
-fun coin_N : N;
-fun coin_V2 : V2;
-fun coinage_N : N;
-fun coincide_V : V;
-fun coincidence_N : N;
-fun coincident_A : A;
-fun coincidental_A : A;
-fun coiner_N : N;
-fun coir_N : N;
-fun coition_N : N;
-fun coitus_N : N;
-fun coke_N : N;
-fun coke_V2 : V2;
-fun col_N : N;
-fun col_PN : PN;
-fun cola_N : N;
-fun colander_N : N;
-fun colchester_PN : PN;
-fun cold_A : A;
-fun cold_N : N;
-fun cold_blooded_A : A;
-fun cold_hearted_A : A;
-fun cold_shoulder_V2 : V2;
-fun coldly_Adv : Adv;
-fun coldness_N : N;
-fun coleshill_PN : PN;
-fun coleslaw_N : N;
-fun colic_N : N;
-fun colin_PN : PN;
-fun colitis_N : N;
-fun coll_PN : PN;
-fun collaborate_V : V;
-fun collaboration_N : N;
-fun collaborationist_N : N;
-fun collaborator_N : N;
-fun collage_N : N;
-fun collapsable_A : A;
-fun collapse_N : N;
-fun collapse_V : V;
-fun collapsible_A : A;
-fun collar_N : N;
-fun collar_V2 : V2;
-fun collarbone_N : N;
-fun collate_V2 : V2;
-fun collateral_A : A;
-fun collateral_N : N;
-fun collation_N : N;
-fun colleague_N : N;
-fun collect_A : A;
-fun collect_Adv : Adv;
-fun collect_N : N;
-fun collect_V : V;
-fun collect_V2 : V2;
-fun collected_A : A;
-fun collectedly_Adv : Adv;
-fun collection_N : N;
-fun collective_A : A;
-fun collectivization_N : N;
-fun collectivize_V2 : V2;
-fun collector_N : N;
-fun colleen_N : N;
-fun college_N : N;
-fun collegiate_A : A;
-fun collide_V : V;
-fun collie_N : N;
-fun collier_N : N;
-fun colliery_N : N;
-fun collision_N : N;
-fun collocate_V : V;
-fun collocation_N : N;
-fun colloquial_A : A;
-fun colloquialism_N : N;
-fun colloquially_Adv : Adv;
-fun colloquy_N : N;
-fun collusion_N : N;
-fun collusive_A : A;
-fun colne_PN : PN;
-fun cologne_PN : PN;
-fun colombia_PN : PN;
-fun colombian_A : A;
-fun colombian_N : N;
-fun colombo_PN : PN;
-fun colon_N : N;
-fun colonel_N : N;
-fun colonial_A : A;
-fun colonial_N : N;
-fun colonialism_N : N;
-fun colonialist_N : N;
-fun colonist_N : N;
-fun colonization_N : N;
-fun colonize_V2 : V2;
-fun colonizer_N : N;
-fun colonnade_N : N;
-fun colonnaded_A : A;
-fun colony_N : N;
-fun colorado_PN : PN;
-fun coloratura_N : N;
-fun colossal_A : A;
-fun colossus_N : N;
-fun colour_N : N;
-fun colour_V : V;
-fun colour_V2 : V2;
-fun colour_bar_N : N;
-fun colour_blind_A : A;
-fun colour_wash_N : N;
-fun coloured_A : A;
-fun colourful_A : A;
-fun colouring_N : N;
-fun colourless_A : A;
-fun colt_N : N;
-fun coltish_A : A;
-fun columbia_PN : PN;
-fun columbine_N : N;
-fun columbus_PN : PN;
-fun column_N : N;
-fun columnist_N : N;
-fun colwyn_bay_PN : PN;
-fun coma_N : N;
-fun comatose_A : A;
-fun comb_N : N;
-fun comb_V : V;
-fun comb_V2 : V2;
-fun comb_out_N : N;
-fun combat_N : N;
-fun combat_V : V;
-fun combat_V2 : V2;
-fun combatant_A : A;
-fun combatant_N : N;
-fun combative_A : A;
-fun combatively_Adv : Adv;
-fun combination_N : N;
-fun combination_lock_N : N;
-fun combine_N : N;
-fun combine_V : V;
-fun combine_V2 : V2;
-fun combustible_A : A;
-fun combustible_N : N;
-fun combustion_N : N;
-fun come_V : V;
-fun come_at_able_A : A;
-fun come_on_N : N;
-fun comeback_N : N;
-fun comedian_N : N;
-fun comedienne_N : N;
-fun comedown_N : N;
-fun comedy_N : N;
-fun comeliness_N : N;
-fun comely_A : A;
-fun comer_N : N;
-fun comestible_N : N;
-fun comet_N : N;
-fun comfit_N : N;
-fun comfort_N : N;
-fun comfort_V2 : V2;
-fun comfortable_A : A;
-fun comfortably_Adv : Adv;
-fun comforter_N : N;
-fun comfortingly_Adv : Adv;
-fun comfortless_A : A;
-fun comfrey_N : N;
-fun comfy_A : A;
-fun comic_A : A;
-fun comic_N : N;
-fun comical_A : A;
-fun comically_Adv : Adv;
-fun coming_A : A;
-fun coming_N : N;
-fun comity_N : N;
-fun comma_N : N;
-fun command_N : N;
-fun command_V : V;
-fun command_V2 : V2;
-fun commandant_N : N;
-fun commandeer_V2 : V2;
-fun commander_N : N;
-fun commanding_A : A;
-fun commandment_N : N;
-fun commando_N : N;
-fun commemorate_V2 : V2;
-fun commemoration_N : N;
-fun commemorative_A : A;
-fun commence_V : V;
-fun commence_V2 : V2;
-fun commencement_N : N;
-fun commend_V2 : V2;
-fun commendable_A : A;
-fun commendation_N : N;
-fun commensurable_A : A;
-fun commensurate_A : A;
-fun comment_N : N;
-fun comment_V : V;
-fun commentary_N : N;
-fun commentate_V : V;
-fun commentator_N : N;
-fun commerce_N : N;
-fun commercial_A : A;
-fun commercial_N : N;
-fun commercialism_N : N;
-fun commercialize_V2 : V2;
-fun commercially_Adv : Adv;
-fun commination_N : N;
-fun comminatory_A : A;
-fun commingle_V : V;
-fun commingle_V2 : V2;
-fun commiserate_V : V;
-fun commiseration_N : N;
-fun commissar_N : N;
-fun commissariat_N : N;
-fun commissary_N : N;
-fun commission_N : N;
-fun commission_V2 : V2;
-fun commissionaire_N : N;
-fun commissioned_A : A;
-fun commissioner_N : N;
-fun commit_V2 : V2;
-fun commital_N : N;
-fun commitment_N : N;
-fun committee_N : N;
-fun commode_N : N;
-fun commodious_A : A;
-fun commodity_N : N;
-fun commodore_N : N;
-fun common_A : A;
-fun common_N : N;
-fun common_room_N : N;
-fun commonalty_N : N;
-fun commoner_N : N;
-fun commonly_Adv : Adv;
-fun commonplace_A : A;
-fun commonplace_N : N;
-fun commonwealth_N : N;
-fun commotion_N : N;
-fun communal_A : A;
-fun communally_Adv : Adv;
-fun commune_N : N;
-fun commune_V : V;
-fun communicable_A : A;
-fun communicant_N : N;
-fun communicate_V : V;
-fun communicate_V2 : V2;
-fun communication_N : N;
-fun communicative_A : A;
-fun communion_N : N;
-fun communique_N : N;
-fun communism_N : N;
-fun communist_A : A;
-fun communist_N : N;
-fun community_N : N;
-fun commutable_A : A;
-fun commutation_N : N;
-fun commutator_N : N;
-fun commute_V : V;
-fun commute_V2 : V2;
-fun commuter_N : N;
-fun compact_A : A;
-fun compact_N : N;
-fun compact_V2 : V2;
-fun compactly_Adv : Adv;
-fun compactness_N : N;
-fun companion_N : N;
-fun companionable_A : A;
-fun companionship_N : N;
-fun companionway_N : N;
-fun company_N : N;
-fun comparability_N : N;
-fun comparable_A : A;
-fun comparative_A : A;
-fun comparative_N : N;
-fun comparatively_Adv : Adv;
-fun compare_N : N;
-fun compare_V : V;
-fun compare_V2 : V2;
-fun comparison_N : N;
-fun compartment_N : N;
-fun compartmentalize_V2 : V2;
-fun compass_N : N;
-fun compass_V2 : V2;
-fun compassion_N : N;
-fun compassionate_A : A;
-fun compassionately_Adv : Adv;
-fun compatibility_N : N;
-fun compatible_A : A;
-fun compatibly_Adv : Adv;
-fun compatriot_N : N;
-fun compeer_N : N;
-fun compel_V2 : V2;
-fun compendious_A : A;
-fun compendium_N : N;
-fun compensate_V : V;
-fun compensate_V2 : V2;
-fun compensation_N : N;
-fun compensatory_A : A;
-fun compete_V : V;
-fun competence_N : N;
-fun competent_A : A;
-fun competently_Adv : Adv;
-fun competition_N : N;
-fun competitive_A : A;
-fun competitiveness_N : N;
-fun competitor_N : N;
-fun compilation_N : N;
-fun compile_V2 : V2;
-fun compiler_N : N;
-fun complacence_N : N;
-fun complacency_N : N;
-fun complacent_A : A;
-fun complacently_Adv : Adv;
-fun complain_V : V;
-fun complainant_N : N;
-fun complainingly_Adv : Adv;
-fun complaint_N : N;
-fun complaisance_N : N;
-fun complaisant_A : A;
-fun complement_N : N;
-fun complement_V2 : V2;
-fun complementary_A : A;
-fun complete_A : A;
-fun complete_V2 : V2;
-fun completely_Adv : Adv;
-fun completeness_N : N;
-fun completion_N : N;
-fun complex_A : A;
-fun complex_N : N;
-fun complexion_N : N;
-fun complexity_N : N;
-fun compliance_N : N;
-fun compliant_A : A;
-fun complicate_V2 : V2;
-fun complicated_A : A;
-fun complication_N : N;
-fun complicity_N : N;
-fun compliment_N : N;
-fun compliment_V2 : V2;
-fun complimentary_A : A;
-fun complin_N : N;
-fun compline_N : N;
-fun comply_V2 : V2;
-fun component_A : A;
-fun component_N : N;
-fun comport_V : V;
-fun comport_V2 : V2;
-fun comportment_N : N;
-fun compos_mentis_A : A;
-fun compose_V : V;
-fun compose_V2 : V2;
-fun composed_A : A;
-fun composedly_Adv : Adv;
-fun composer_N : N;
-fun composite_A : A;
-fun composition_N : N;
-fun compositor_N : N;
-fun compost_N : N;
-fun compost_V2 : V2;
-fun composure_N : N;
-fun compote_N : N;
-fun compound_A : A;
-fun compound_N : N;
-fun compound_V : V;
-fun compound_V2 : V2;
-fun comprehend_V2 : V2;
-fun comprehensibility_N : N;
-fun comprehensible_A : A;
-fun comprehension_N : N;
-fun comprehensive_A : A;
-fun comprehensively_Adv : Adv;
-fun comprehensiveness_N : N;
-fun compress_N : N;
-fun compress_V2 : V2;
-fun compression_N : N;
-fun compressor_N : N;
-fun comprise_V2 : V2;
-fun compromise_N : N;
-fun compromise_V : V;
-fun compromise_V2 : V2;
-fun comptroller_N : N;
-fun compulsion_N : N;
-fun compulsive_A : A;
-fun compulsively_Adv : Adv;
-fun compulsorily_Adv : Adv;
-fun compulsory_A : A;
-fun compunction_N : N;
-fun computation_N : N;
-fun computational_A : A;
-fun computationally_Adv : Adv;
-fun compute_V : V;
-fun compute_V2 : V2;
-fun computer_N : N;
-fun computerize_V2 : V2;
-fun compere_N : N;
-fun compere_V2 : V2;
-fun comrade_N : N;
-fun comradely_Adv : Adv;
-fun comradeship_N : N;
-fun con_Adv : Adv;
-fun con_N : N;
-fun con_V2 : V2;
-fun con_man_N : N;
-fun concatenation_N : N;
-fun concave_A : A;
-fun concavity_N : N;
-fun conceal_V2 : V2;
-fun concealment_N : N;
-fun concede_V2 : V2;
-fun conceit_N : N;
-fun conceited_A : A;
-fun conceitedly_Adv : Adv;
-fun conceivable_A : A;
-fun conceivably_Adv : Adv;
-fun conceive_V : V;
-fun conceive_V2 : V2;
-fun concentrate_N : N;
-fun concentrate_V : V;
-fun concentrate_V2 : V2;
-fun concentrated_A : A;
-fun concentration_N : N;
-fun concentric_A : A;
-fun concept_N : N;
-fun conception_N : N;
-fun conceptual_A : A;
-fun conceptually_Adv : Adv;
-fun concern_N : N;
-fun concern_V2 : V2;
-fun concerned_A : A;
-fun concernedly_Adv : Adv;
-fun concert_N : N;
-fun concert_V2 : V2;
-fun concert_hall_N : N;
-fun concerted_A : A;
-fun concertina_N : N;
-fun concerto_N : N;
-fun concession_N : N;
-fun concessionaire_N : N;
-fun concessive_A : A;
-fun conch_N : N;
-fun conchology_N : N;
-fun concierge_N : N;
-fun conciliate_V2 : V2;
-fun conciliation_N : N;
-fun conciliatory_A : A;
-fun concise_A : A;
-fun concisely_Adv : Adv;
-fun conciseness_N : N;
-fun conclave_N : N;
-fun conclude_V : V;
-fun conclude_V2 : V2;
-fun conclusion_N : N;
-fun conclusive_A : A;
-fun conclusively_Adv : Adv;
-fun concoct_V2 : V2;
-fun concoction_N : N;
-fun concomitant_A : A;
-fun concomitant_N : N;
-fun concord_N : N;
-fun concordance_N : N;
-fun concordant_A : A;
-fun concordat_N : N;
-fun concourse_N : N;
-fun concrete_A : A;
-fun concrete_N : N;
-fun concrete_V : V;
-fun concrete_V2 : V2;
-fun concretely_Adv : Adv;
-fun concretion_N : N;
-fun concubine_N : N;
-fun concupiscence_N : N;
-fun concur_V : V;
-fun concurrence_N : N;
-fun concurrent_A : A;
-fun concurrently_Adv : Adv;
-fun concuss_V2 : V2;
-fun concussion_N : N;
-fun condemn_V2 : V2;
-fun condemnation_N : N;
-fun condensation_N : N;
-fun condense_V : V;
-fun condense_V2 : V2;
-fun condenser_N : N;
-fun condescend_V : V;
-fun condescending_A : A;
-fun condescendingly_Adv : Adv;
-fun condescension_N : N;
-fun condign_A : A;
-fun condiment_N : N;
-fun condition_N : N;
-fun condition_V2 : V2;
-fun conditional_A : A;
-fun conditionally_Adv : Adv;
-fun conditioned_A : A;
-fun conditioner_N : N;
-fun condole_V : V;
-fun condolence_N : N;
-fun condominium_N : N;
-fun condonation_N : N;
-fun condone_V2 : V2;
-fun condor_N : N;
-fun conduce_V : V;
-fun conducive_A : A;
-fun conduct_N : N;
-fun conduct_V : V;
-fun conduct_V2 : V2;
-fun conduction_N : N;
-fun conductive_A : A;
-fun conductivity_N : N;
-fun conductor_N : N;
-fun conductress_N : N;
-fun conduit_N : N;
-fun cone_N : N;
-fun cone_V2 : V2;
-fun coney_N : N;
-fun confab_N : N;
-fun confab_V : V;
-fun confabulate_V : V;
-fun confabulation_N : N;
-fun confection_N : N;
-fun confectioner_N : N;
-fun confectionery_N : N;
-fun confederacy_N : N;
-fun confederate_A : A;
-fun confederate_N : N;
-fun confederate_V : V;
-fun confederate_V2 : V2;
-fun confederation_N : N;
-fun confer_V : V;
-fun confer_V2 : V2;
-fun conference_N : N;
-fun conferment_N : N;
-fun confess_V : V;
-fun confess_V2 : V2;
-fun confessedly_Adv : Adv;
-fun confession_N : N;
-fun confessional_N : N;
-fun confessor_N : N;
-fun confetti_N : N;
-fun confidant_N : N;
-fun confide_V : V;
-fun confide_V2 : V2;
-fun confidence_N : N;
-fun confident_A : A;
-fun confidential_A : A;
-fun confidentiality_N : N;
-fun confidentially_Adv : Adv;
-fun confidently_Adv : Adv;
-fun confiding_A : A;
-fun confidingly_Adv : Adv;
-fun configuration_N : N;
-fun configure_V2 : V2;
-fun configured_A : A;
-fun confine_V2 : V2;
-fun confined_A : A;
-fun confinement_N : N;
-fun confirm_V2 : V2;
-fun confirmation_N : N;
-fun confirmed_A : A;
-fun confiscate_V2 : V2;
-fun confiscation_N : N;
-fun conflagration_N : N;
-fun conflict_N : N;
-fun conflict_V : V;
-fun conflicting_A : A;
-fun confluence_N : N;
-fun confluent_A : A;
-fun conform_V : V;
-fun conform_V2 : V2;
-fun conformable_A : A;
-fun conformation_N : N;
-fun conformist_N : N;
-fun conformity_N : N;
-fun confound_V2 : V2;
-fun confounded_A : A;
-fun confoundedly_Adv : Adv;
-fun confront_V2 : V2;
-fun confrontation_N : N;
-fun confrere_N : N;
-fun confucian_A : A;
-fun confucian_N : N;
-fun confuse_V2 : V2;
-fun confusedly_Adv : Adv;
-fun confusion_N : N;
-fun confutation_N : N;
-fun confute_V2 : V2;
-fun congeal_V : V;
-fun congeal_V2 : V2;
-fun congenial_A : A;
-fun congenially_Adv : Adv;
-fun congenital_A : A;
-fun conger_N : N;
-fun conger_eel_N : N;
-fun congested_A : A;
-fun congestion_N : N;
-fun congleton_PN : PN;
-fun conglomerate_A : A;
-fun conglomerate_N : N;
-fun conglomerate_V : V;
-fun conglomerate_V2 : V2;
-fun conglomeration_N : N;
-fun congo_PN : PN;
-fun congolese_A : A;
-fun congolese_N : N;
-fun congratulate_V2 : V2;
-fun congratulation_N : N;
-fun congratulatory_A : A;
-fun congregate_V : V;
-fun congregate_V2 : V2;
-fun congregation_N : N;
-fun congregational_A : A;
-fun congress_N : N;
-fun congressional_A : A;
-fun congressman_N : N;
-fun congresswoman_N : N;
-fun congruent_A : A;
-fun congruous_A : A;
-fun conge_N : N;
-fun conic_A : A;
-fun conical_A : A;
-fun conifer_N : N;
-fun coniferous_A : A;
-fun conjectural_A : A;
-fun conjecture_N : N;
-fun conjecture_V : V;
-fun conjecture_V2 : V2;
-fun conjoin_V : V;
-fun conjoin_V2 : V2;
-fun conjoint_A : A;
-fun conjointly_Adv : Adv;
-fun conjugal_A : A;
-fun conjugally_Adv : Adv;
-fun conjugate_V : V;
-fun conjugate_V2 : V2;
-fun conjugation_N : N;
-fun conjunction_N : N;
-fun conjunctive_A : A;
-fun conjunctive_N : N;
-fun conjuncture_N : N;
-fun conjuration_N : N;
-fun conjure_V : V;
-fun conjure_V2 : V2;
-fun conjurer_N : N;
-fun conjuror_N : N;
-fun conk_N : N;
-fun conk_V : V;
-fun conker_N : N;
-fun connah's_quay_PN : PN;
-fun connaught_PN : PN;
-fun connect_V : V;
-fun connect_V2 : V2;
-fun connecticut_PN : PN;
-fun connection_N : N;
-fun connective_A : A;
-fun connective_N : N;
-fun connexion_N : N;
-fun connie_PN : PN;
-fun conning_A : A;
-fun connivance_N : N;
-fun connive_V : V;
-fun connoisseur_N : N;
-fun connotation_N : N;
-fun connote_V2 : V2;
-fun connubial_A : A;
-fun conquer_V2 : V2;
-fun conqueror_N : N;
-fun conquest_N : N;
-fun conquistador_N : N;
-fun cons_PN : PN;
-fun consanguinity_N : N;
-fun conscience_N : N;
-fun conscience_smitten_A : A;
-fun conscientious_A : A;
-fun conscientiously_Adv : Adv;
-fun conscientiousness_N : N;
-fun conscious_A : A;
-fun consciously_Adv : Adv;
-fun consciousness_N : N;
-fun conscript_N : N;
-fun conscript_V2 : V2;
-fun conscription_N : N;
-fun consecrate_V2 : V2;
-fun consecration_N : N;
-fun consecutive_A : A;
-fun consecutively_Adv : Adv;
-fun consensus_N : N;
-fun consent_N : N;
-fun consent_V : V;
-fun consequence_N : N;
-fun consequent_A : A;
-fun consequential_A : A;
-fun consequentially_Adv : Adv;
-fun consequently_Adv : Adv;
-fun conservancy_N : N;
-fun conservation_N : N;
-fun conservatism_N : N;
-fun conservative_A : A;
-fun conservative_N : N;
-fun conservatively_Adv : Adv;
-fun conservatoire_N : N;
-fun conservatory_N : N;
-fun conserve_N : N;
-fun conserve_V2 : V2;
-fun consett_PN : PN;
-fun consider_V2 : V2;
-fun considerable_A : A;
-fun considerably_Adv : Adv;
-fun considerate_A : A;
-fun considerately_Adv : Adv;
-fun considerateness_N : N;
-fun consideration_N : N;
-fun consign_V2 : V2;
-fun consignee_N : N;
-fun consigner_N : N;
-fun consignment_N : N;
-fun consignor_N : N;
-fun consist_V : V;
-fun consistence_N : N;
-fun consistency_N : N;
-fun consistent_A : A;
-fun consistently_Adv : Adv;
-fun consistory_N : N;
-fun consolable_A : A;
-fun consolation_N : N;
-fun consolatory_A : A;
-fun console_N : N;
-fun console_V2 : V2;
-fun consolidate_V : V;
-fun consolidate_V2 : V2;
-fun consolidation_N : N;
-fun consomme_N : N;
-fun consonance_N : N;
-fun consonant_A : A;
-fun consonant_N : N;
-fun consort_N : N;
-fun consort_V : V;
-fun consortium_N : N;
-fun conspectus_N : N;
-fun conspicuous_A : A;
-fun conspicuously_Adv : Adv;
-fun conspicuousness_N : N;
-fun conspiracy_N : N;
-fun conspirator_N : N;
-fun conspiratorial_A : A;
-fun conspire_V : V;
-fun conspire_V2 : V2;
-fun constable_N : N;
-fun constabulary_N : N;
-fun constance_PN : PN;
-fun constancy_N : N;
-fun constant_A : A;
-fun constant_N : N;
-fun constantly_Adv : Adv;
-fun constellation_N : N;
-fun consternation_N : N;
-fun constipate_V2 : V2;
-fun constipated_A : A;
-fun constipation_N : N;
-fun constituency_N : N;
-fun constituent_A : A;
-fun constituent_N : N;
-fun constitute_V2 : V2;
-fun constitution_N : N;
-fun constitutional_A : A;
-fun constitutional_N : N;
-fun constitutionalism_N : N;
-fun constitutionalist_N : N;
-fun constitutionalize_V2 : V2;
-fun constitutionally_Adv : Adv;
-fun constitutive_A : A;
-fun constrain_V2 : V2;
-fun constrained_A : A;
-fun constrainedly_Adv : Adv;
-fun constraint_N : N;
-fun constrict_V2 : V2;
-fun constriction_N : N;
-fun construct_V2 : V2;
-fun construction_N : N;
-fun constructional_A : A;
-fun constructive_A : A;
-fun constructively_Adv : Adv;
-fun constructor_N : N;
-fun construe_V : V;
-fun construe_V2 : V2;
-fun consubstantiation_N : N;
-fun consul_N : N;
-fun consular_A : A;
-fun consulate_N : N;
-fun consulship_N : N;
-fun consult_V : V;
-fun consult_V2 : V2;
-fun consultant_N : N;
-fun consultation_N : N;
-fun consultative_A : A;
-fun consume_V : V;
-fun consume_V2 : V2;
-fun consumer_N : N;
-fun consuming_A : A;
-fun consummate_A : A;
-fun consummate_V2 : V2;
-fun consummation_N : N;
-fun consumption_N : N;
-fun consumptive_A : A;
-fun consumptive_N : N;
-fun cont_PN : PN;
-fun contact_N : N;
-fun contact_V2 : V2;
-fun contagion_N : N;
-fun contagious_A : A;
-fun contagiously_Adv : Adv;
-fun contain_V2 : V2;
-fun container_N : N;
-fun containment_N : N;
-fun contaminant_N : N;
-fun contaminate_V2 : V2;
-fun contamination_N : N;
-fun contemn_V2 : V2;
-fun contemplate_V : V;
-fun contemplate_V2 : V2;
-fun contemplation_N : N;
-fun contemplative_A : A;
-fun contemporaneous_A : A;
-fun contemporaneously_Adv : Adv;
-fun contemporary_A : A;
-fun contemporary_N : N;
-fun contempt_N : N;
-fun contemptible_A : A;
-fun contemptuous_A : A;
-fun contemptuously_Adv : Adv;
-fun contend_V : V;
-fun contend_V2 : V2;
-fun contender_N : N;
-fun content_A : A;
-fun content_N : N;
-fun content_V2 : V2;
-fun contented_A : A;
-fun contentedly_Adv : Adv;
-fun contention_N : N;
-fun contentious_A : A;
-fun contentment_N : N;
-fun conterminous_A : A;
-fun contest_N : N;
-fun contest_V : V;
-fun contest_V2 : V2;
-fun contestant_N : N;
-fun context_N : N;
-fun contextual_A : A;
-fun contiguity_N : N;
-fun contiguous_A : A;
-fun contiguously_Adv : Adv;
-fun continence_N : N;
-fun continent_A : A;
-fun continent_N : N;
-fun continental_A : A;
-fun contingency_N : N;
-fun contingent_A : A;
-fun contingent_N : N;
-fun continual_A : A;
-fun continually_Adv : Adv;
-fun continuance_N : N;
-fun continuation_N : N;
-fun continue_V : V;
-fun continue_V2 : V2;
-fun continuity_N : N;
-fun continuous_A : A;
-fun continuously_Adv : Adv;
-fun contort_V2 : V2;
-fun contortion_N : N;
-fun contortionist_N : N;
-fun contour_N : N;
-fun contour_V2 : V2;
-fun contraband_N : N;
-fun contrabass_N : N;
-fun contraception_N : N;
-fun contraceptive_A : A;
-fun contraceptive_N : N;
-fun contract_N : N;
-fun contract_V : V;
-fun contract_V2 : V2;
-fun contractible_A : A;
-fun contractile_A : A;
-fun contraction_N : N;
-fun contractor_N : N;
-fun contractual_A : A;
-fun contradict_V2 : V2;
-fun contradiction_N : N;
-fun contradictory_A : A;
-fun contradistinction_N : N;
-fun contradistinguish_V2 : V2;
-fun contralto_N : N;
-fun contraption_N : N;
-fun contrapuntal_A : A;
-fun contrariety_N : N;
-fun contrarily_Adv : Adv;
-fun contrariness_N : N;
-fun contrariwise_Adv : Adv;
-fun contrary_A : A;
-fun contrary_N : N;
-fun contrast_N : N;
-fun contrast_V : V;
-fun contrast_V2 : V2;
-fun contrastingly_Adv : Adv;
-fun contravene_V2 : V2;
-fun contravention_N : N;
-fun contretemps_N : N;
-fun contribute_V : V;
-fun contribute_V2 : V2;
-fun contribution_N : N;
-fun contributor_N : N;
-fun contributory_A : A;
-fun contrite_A : A;
-fun contritely_Adv : Adv;
-fun contrition_N : N;
-fun contrivance_N : N;
-fun contrive_V : V;
-fun contrive_V2 : V2;
-fun contriver_N : N;
-fun control_N : N;
-fun control_V2 : V2;
-fun controllable_A : A;
-fun controller_N : N;
-fun controversial_A : A;
-fun controversialist_N : N;
-fun controversially_Adv : Adv;
-fun controversy_N : N;
-fun controvert_V2 : V2;
-fun contumacious_A : A;
-fun contumaciously_Adv : Adv;
-fun contumacy_N : N;
-fun contumelious_A : A;
-fun contumeliously_Adv : Adv;
-fun contumely_N : N;
-fun contuse_V2 : V2;
-fun contusion_N : N;
-fun conundrum_N : N;
-fun conurbation_N : N;
-fun convalesce_V : V;
-fun convalescence_N : N;
-fun convalescent_A : A;
-fun convalescent_N : N;
-fun convection_N : N;
-fun convector_N : N;
-fun convene_V : V;
-fun convene_V2 : V2;
-fun convener_N : N;
-fun convenience_N : N;
-fun convenient_A : A;
-fun conveniently_Adv : Adv;
-fun convent_N : N;
-fun conventicle_N : N;
-fun convention_N : N;
-fun conventional_A : A;
-fun conventionality_N : N;
-fun conventionally_Adv : Adv;
-fun converge_V : V;
-fun convergence_N : N;
-fun convergent_A : A;
-fun conversant_A : A;
-fun conversation_N : N;
-fun conversational_A : A;
-fun conversationalist_N : N;
-fun conversationally_Adv : Adv;
-fun converse_A : A;
-fun converse_N : N;
-fun converse_V : V;
-fun conversely_Adv : Adv;
-fun conversion_N : N;
-fun convert_N : N;
-fun convert_V2 : V2;
-fun converted_A : A;
-fun converter_N : N;
-fun convertibility_N : N;
-fun convertible_A : A;
-fun convertible_N : N;
-fun convex_A : A;
-fun convexity_N : N;
-fun convexly_Adv : Adv;
-fun convey_V2 : V2;
-fun conveyance_N : N;
-fun conveyancer_N : N;
-fun conveyer_N : N;
-fun conveyer_belt_N : N;
-fun conveyor_N : N;
-fun convict_N : N;
-fun convict_V2 : V2;
-fun conviction_N : N;
-fun convince_V2 : V2;
-fun convincible_A : A;
-fun convincing_A : A;
-fun convincingly_Adv : Adv;
-fun convivial_A : A;
-fun conviviality_N : N;
-fun convivially_Adv : Adv;
-fun convocation_N : N;
-fun convoke_V2 : V2;
-fun convoluted_A : A;
-fun convolution_N : N;
-fun convolvulus_N : N;
-fun convoy_N : N;
-fun convoy_V2 : V2;
-fun convulse_V2 : V2;
-fun convulsion_N : N;
-fun convulsive_A : A;
-fun convulsively_Adv : Adv;
-fun conwy_PN : PN;
-fun cony_N : N;
-fun coo_N : N;
-fun coo_V : V;
-fun coo_V2 : V2;
-fun cook_N : N;
-fun cook_V : V;
-fun cook_V2 : V2;
-fun cookbook_N : N;
-fun cooker_N : N;
-fun cookery_N : N;
-fun cookery_book_N : N;
-fun cookham_PN : PN;
-fun cookhouse_N : N;
-fun cookie_N : N;
-fun cooking_N : N;
-fun cooky_N : N;
-fun cool_A : A;
-fun cool_N : N;
-fun cool_V : V;
-fun cool_V2 : V2;
-fun cool_headed_A : A;
-fun coolant_N : N;
-fun cooler_N : N;
-fun coolie_N : N;
-fun cooling_tower_N : N;
-fun coolly_Adv : Adv;
-fun coolness_N : N;
-fun coon_N : N;
-fun coop_N : N;
-fun coop_V2 : V2;
-fun cooper_N : N;
-fun cooperate_V : V;
-fun cooperation_N : N;
-fun cooperative_A : A;
-fun cooperative_N : N;
-fun cooperator_N : N;
-fun coordinate_A : A;
-fun coordinate_N : N;
-fun coordinate_V2 : V2;
-fun coordinately_Adv : Adv;
-fun coordination_N : N;
-fun coordinator_N : N;
-fun coot_N : N;
-fun cop_N : N;
-fun cop_V : V;
-fun cop_V2 : V2;
-fun cop_out_N : N;
-fun copartner_N : N;
-fun copartnership_N : N;
-fun cope_N : N;
-fun cope_V : V;
-fun copeck_N : N;
-fun copenhagen_PN : PN;
-fun copernican_A : A;
-fun coping_N : N;
-fun coping_stone_N : N;
-fun copious_A : A;
-fun copiously_Adv : Adv;
-fun copper_N : N;
-fun copper_V2 : V2;
-fun copper_bottom_V2 : V2;
-fun copper_bottomed_A : A;
-fun copperhead_N : N;
-fun copperplate_N : N;
-fun coppersmith_N : N;
-fun coppice_N : N;
-fun coppull_PN : PN;
-fun copra_N : N;
-fun copse_N : N;
-fun copt_A : A;
-fun copt_N : N;
-fun coptic_N : N;
-fun copula_N : N;
-fun copulate_V : V;
-fun copulation_N : N;
-fun copulative_A : A;
-fun copulative_N : N;
-fun copy_N : N;
-fun copy_V : V;
-fun copy_V2 : V2;
-fun copybook_N : N;
-fun copycat_N : N;
-fun copyhold_N : N;
-fun copyholder_N : N;
-fun copyist_N : N;
-fun copyright_N : N;
-fun copyright_V2 : V2;
-fun copywriter_N : N;
-fun coquetry_N : N;
-fun coquette_N : N;
-fun coquettish_A : A;
-fun coquettishly_Adv : Adv;
-fun cor_anglais_N : N;
-fun coracle_N : N;
-fun coral_A : A;
-fun coral_N : N;
-fun coral_reef_N : N;
-fun corbel_N : N;
-fun corby_PN : PN;
-fun cord_N : N;
-fun cord_V2 : V2;
-fun cordage_N : N;
-fun cordial_A : A;
-fun cordial_N : N;
-fun cordiality_N : N;
-fun cordially_Adv : Adv;
-fun cordite_N : N;
-fun cordoba_PN : PN;
-fun cordon_N : N;
-fun cordon_V2 : V2;
-fun cordon_bleu_A : A;
-fun corduroy_N : N;
-fun core_N : N;
-fun core_V2 : V2;
-fun coreligionist_N : N;
-fun corgi_N : N;
-fun corinthian_A : A;
-fun corinthian_N : N;
-fun cork_N : N;
-fun cork_PN : PN;
-fun cork_V2 : V2;
-fun corkage_N : N;
-fun corked_A : A;
-fun corker_N : N;
-fun corkscrew_N : N;
-fun corm_N : N;
-fun cormorant_N : N;
-fun corn_N : N;
-fun corn_V2 : V2;
-fun corn_exchange_N : N;
-fun corncob_N : N;
-fun corncrake_N : N;
-fun cornea_N : N;
-fun cornelian_N : N;
-fun corner_N : N;
-fun corner_V : V;
-fun corner_V2 : V2;
-fun corner_kick_N : N;
-fun cornered_A : A;
-fun cornerstone_N : N;
-fun cornet_N : N;
-fun cornflake_N : N;
-fun cornflour_N : N;
-fun cornflower_N : N;
-fun cornice_N : N;
-fun cornpone_N : N;
-fun cornstarch_N : N;
-fun cornucopia_N : N;
-fun cornwall_PN : PN;
-fun corny_A : A;
-fun corolla_N : N;
-fun corollary_N : N;
-fun corona_N : N;
-fun coronary_A : A;
-fun coronary_N : N;
-fun coronation_N : N;
-fun coroner_N : N;
-fun coronet_N : N;
-fun corp_PN : PN;
-fun corporal_A : A;
-fun corporal_N : N;
-fun corporate_A : A;
-fun corporation_N : N;
-fun corporeal_A : A;
-fun corps_N : N;
-fun corps_de_ballet_N : N;
-fun corps_diplomatique_N : N;
-fun corpse_N : N;
-fun corpulence_N : N;
-fun corpulent_A : A;
-fun corpus_N : N;
-fun corpuscle_N : N;
-fun corral_N : N;
-fun corral_V2 : V2;
-fun correct_A : A;
-fun correct_V2 : V2;
-fun correction_N : N;
-fun correctitude_N : N;
-fun corrective_A : A;
-fun corrective_N : N;
-fun correctly_Adv : Adv;
-fun correctness_N : N;
-fun correlate_V : V;
-fun correlate_V2 : V2;
-fun correlation_N : N;
-fun correlative_A : A;
-fun correlative_N : N;
-fun correspond_V : V;
-fun correspondence_N : N;
-fun correspondent_N : N;
-fun corresponding_A : A;
-fun correspondingly_Adv : Adv;
-fun corridor_N : N;
-fun corrie_N : N;
-fun corrigendum_N : N;
-fun corrigible_A : A;
-fun corroborate_V2 : V2;
-fun corroboration_N : N;
-fun corroborative_A : A;
-fun corrode_V : V;
-fun corrode_V2 : V2;
-fun corrosion_N : N;
-fun corrosive_A : A;
-fun corrosive_N : N;
-fun corrugate_V : V;
-fun corrugate_V2 : V2;
-fun corrugation_N : N;
-fun corrupt_A : A;
-fun corrupt_V : V;
-fun corrupt_V2 : V2;
-fun corruptibility_N : N;
-fun corruptible_A : A;
-fun corruption_N : N;
-fun corruptly_Adv : Adv;
-fun corruptness_N : N;
-fun corsage_N : N;
-fun corsair_N : N;
-fun corse_N : N;
-fun corselet_N : N;
-fun corset_N : N;
-fun corsham_PN : PN;
-fun corslet_N : N;
-fun cortege_1_N : N;
-fun cortex_N : N;
-fun cortical_A : A;
-fun cortisone_N : N;
-fun cortege_2_N : N;
-fun corundum_N : N;
-fun corunna_PN : PN;
-fun coruscate_V : V;
-fun coruscation_N : N;
-fun corvette_N : N;
-fun corvee_N : N;
-fun cos_N : N;
-fun cosenza_PN : PN;
-fun cosh_N : N;
-fun cosh_V2 : V2;
-fun cosher_A : A;
-fun cosignatory_A : A;
-fun cosignatory_N : N;
-fun cosily_Adv : Adv;
-fun cosine_N : N;
-fun cosiness_N : N;
-fun cosmetic_A : A;
-fun cosmetic_N : N;
-fun cosmetician_N : N;
-fun cosmic_A : A;
-fun cosmogony_N : N;
-fun cosmonaut_N : N;
-fun cosmopolitan_A : A;
-fun cosmopolitan_N : N;
-fun cosmos_N : N;
-fun cosset_V2 : V2;
-fun cost_N : N;
-fun cost_V : V;
-fun cost_V2 : V2;
-fun costa_rica_PN : PN;
-fun costa_rican_A : A;
-fun costa_rican_N : N;
-fun costermonger_N : N;
-fun costing_N : N;
-fun costive_A : A;
-fun costliness_N : N;
-fun costly_A : A;
-fun costume_N : N;
-fun costumier_N : N;
-fun cosy_A : A;
-fun cosy_N : N;
-fun cot_N : N;
-fun cote_N : N;
-fun cotenant_N : N;
-fun coterie_N : N;
-fun coterminous_A : A;
-fun cotilion_N : N;
-fun cotillion_N : N;
-fun cottage_N : N;
-fun cottar_N : N;
-fun cotter_N : N;
-fun cotton_N : N;
-fun cotton_V : V;
-fun cotton_cake_N : N;
-fun cotton_plant_N : N;
-fun cotton_wool_N : N;
-fun cottontail_N : N;
-fun cotyledon_N : N;
-fun couch_N : N;
-fun couch_V : V;
-fun couch_V2 : V2;
-fun couch_grass_N : N;
-fun couchant_A : A;
-fun couchette_N : N;
-fun cougar_N : N;
-fun cough_N : N;
-fun cough_V : V;
-fun cough_V2 : V2;
-fun coulter_N : N;
-fun council_N : N;
-fun council_board_N : N;
-fun council_chamber_N : N;
-fun councillor_N : N;
-fun counsel_N : N;
-fun counsel_V2 : V2;
-fun counsellor_N : N;
-fun count_N : N;
-fun count_V : V;
-fun count_V2 : V2;
-fun countable_A : A;
-fun countdown_N : N;
-fun countenance_N : N;
-fun countenance_V2 : V2;
-fun counter_Adv : Adv;
-fun counter_N : N;
-fun counter_V : V;
-fun counter_V2 : V2;
-fun counter_example_N : N;
-fun counter_revolution_N : N;
-fun counter_revolutionary_A : A;
-fun counter_revolutionary_N : N;
-fun counteract_V2 : V2;
-fun counteraction_N : N;
-fun counterattack_N : N;
-fun counterattack_V : V;
-fun counterattack_V2 : V2;
-fun counterattraction_N : N;
-fun counterbalance_N : N;
-fun counterbalance_V2 : V2;
-fun counterblast_N : N;
-fun counterclaim_N : N;
-fun counterclockwise_Adv : Adv;
-fun counterespionage_N : N;
-fun counterfeit_A : A;
-fun counterfeit_N : N;
-fun counterfeit_V2 : V2;
-fun counterfeiter_N : N;
-fun counterfoil_N : N;
-fun counterintelligence_N : N;
-fun counterirritant_N : N;
-fun countermand_V2 : V2;
-fun countermine_N : N;
-fun countermine_V : V;
-fun countermine_V2 : V2;
-fun counteroffer_N : N;
-fun counterpane_N : N;
-fun counterpart_N : N;
-fun counterplot_N : N;
-fun counterplot_V : V;
-fun counterplot_V2 : V2;
-fun counterpoint_N : N;
-fun counterpoise_N : N;
-fun counterpoise_V2 : V2;
-fun countersign_N : N;
-fun countersign_V2 : V2;
-fun countersink_V2 : V2;
-fun countertenor_N : N;
-fun countervail_V : V;
-fun countervail_V2 : V2;
-fun countess_N : N;
-fun counting_house_N : N;
-fun countless_A : A;
-fun countrified_A : A;
-fun country_N : N;
-fun country_house_N : N;
-fun country_seat_N : N;
-fun countryman_N : N;
-fun countryside_N : N;
-fun countrywoman_N : N;
-fun county_N : N;
-fun coup_N : N;
-fun coup_d'etat_N : N;
-fun coup_de_grace_N : N;
-fun couple_N : N;
-fun couple_V : V;
-fun couple_V2 : V2;
-fun couplet_N : N;
-fun coupling_N : N;
-fun coupon_N : N;
-fun coupe_N : N;
-fun courage_N : N;
-fun courageous_A : A;
-fun courageously_Adv : Adv;
-fun courgette_N : N;
-fun courier_N : N;
-fun course_N : N;
-fun course_V : V;
-fun course_V2 : V2;
-fun courser_N : N;
-fun coursing_N : N;
-fun court_N : N;
-fun court_V : V;
-fun court_V2 : V2;
-fun court_card_N : N;
-fun court_martial_N : N;
-fun court_martial_V2 : V2;
-fun courteous_A : A;
-fun courteously_Adv : Adv;
-fun courtesan_N : N;
-fun courtesy_N : N;
-fun courtier_N : N;
-fun courtliness_N : N;
-fun courtly_A : A;
-fun courtroom_N : N;
-fun courtship_N : N;
-fun courtyard_N : N;
-fun cousin_N : N;
-fun cousinly_A : A;
-fun cove_N : N;
-fun coven_N : N;
-fun covenant_N : N;
-fun covenant_V : V;
-fun covenant_V2 : V2;
-fun coventry_PN : PN;
-fun cover_N : N;
-fun cover_V2 : V2;
-fun cover_up_N : N;
-fun coverage_N : N;
-fun covering_A : A;
-fun covering_N : N;
-fun coverlet_N : N;
-fun covert_A : A;
-fun covert_N : N;
-fun covertly_Adv : Adv;
-fun covet_V2 : V2;
-fun covetous_A : A;
-fun covetously_Adv : Adv;
-fun covetousness_N : N;
-fun covey_N : N;
-fun cow_N : N;
-fun cow_V2 : V2;
-fun coward_N : N;
-fun cowardice_N : N;
-fun cowardly_A : A;
-fun cowbell_N : N;
-fun cowboy_N : N;
-fun cowcatcher_N : N;
-fun cowdenbeath_PN : PN;
-fun cower_V : V;
-fun cowes_PN : PN;
-fun cowhand_N : N;
-fun cowherd_N : N;
-fun cowhide_N : N;
-fun cowhouse_N : N;
-fun cowl_N : N;
-fun cowling_N : N;
-fun cowman_N : N;
-fun cowpox_N : N;
-fun cowrie_N : N;
-fun cowshed_N : N;
-fun cowskin_N : N;
-fun cowslip_N : N;
-fun cox_N : N;
-fun cox_V : V;
-fun cox_V2 : V2;
-fun coxcomb_N : N;
-fun coxswain_N : N;
-fun coy_A : A;
-fun coyly_Adv : Adv;
-fun coyness_N : N;
-fun coyote_N : N;
-fun coypu_N : N;
-fun cozen_V2 : V2;
-fun cozy_A : A;
-fun cp_PN : PN;
-fun cpl_PN : PN;
-fun crab_N : N;
-fun crab_V : V;
-fun crab_V2 : V2;
-fun crab_apple_N : N;
-fun crabbed_A : A;
-fun crack_N : N;
-fun crack_V : V;
-fun crack_V2 : V2;
-fun crack_down_N : N;
-fun crack_up_N : N;
-fun cracker_N : N;
-fun crackers_A : A;
-fun crackle_N : N;
-fun crackle_V : V;
-fun crackle_china_N : N;
-fun crackleware_N : N;
-fun crackling_N : N;
-fun crackpot_N : N;
-fun cracksman_N : N;
-fun cradle_N : N;
-fun cradle_V2 : V2;
-fun craft_N : N;
-fun craftily_Adv : Adv;
-fun craftiness_N : N;
-fun craftsman_N : N;
-fun craftsmanship_N : N;
-fun crafty_A : A;
-fun crag_N : N;
-fun cragged_A : A;
-fun craggy_A : A;
-fun cragsman_N : N;
-fun crake_N : N;
-fun cram_V : V;
-fun cram_V2 : V2;
-fun cram_full_A : A;
-fun cram_full_Adv : Adv;
-fun cramlington_PN : PN;
-fun crammer_N : N;
-fun cramp_N : N;
-fun cramp_V2 : V2;
-fun cramp_iron_N : N;
-fun cramped_A : A;
-fun crampon_N : N;
-fun cranberry_N : N;
-fun crane_N : N;
-fun crane_V : V;
-fun crane_V2 : V2;
-fun crane_fly_N : N;
-fun cranial_A : A;
-fun cranium_N : N;
-fun crank_N : N;
-fun crank_V2 : V2;
-fun crankshaft_N : N;
-fun cranky_A : A;
-fun crannied_A : A;
-fun cranny_N : N;
-fun crap_N : N;
-fun crap_V : V;
-fun crap_shooting_N : N;
-fun crape_N : N;
-fun craps_N : N;
-fun crash_Adv : Adv;
-fun crash_N : N;
-fun crash_V : V;
-fun crash_V2 : V2;
-fun crash_dive_N : N;
-fun crash_dive_V : V;
-fun crash_helmet_N : N;
-fun crash_land_V : V;
-fun crash_land_V2 : V2;
-fun crash_landing_N : N;
-fun crass_A : A;
-fun crate_N : N;
-fun crate_V2 : V2;
-fun crater_N : N;
-fun cravat_N : N;
-fun crave_V : V;
-fun crave_V2 : V2;
-fun craven_A : A;
-fun craven_N : N;
-fun craving_N : N;
-fun crawfish_N : N;
-fun crawl_N : N;
-fun crawl_V : V;
-fun crawler_N : N;
-fun crawley_PN : PN;
-fun crayfish_N : N;
-fun crayon_N : N;
-fun crayon_V2 : V2;
-fun craze_N : N;
-fun crazed_A : A;
-fun crazily_Adv : Adv;
-fun craziness_N : N;
-fun crazy_A : A;
-fun creak_N : N;
-fun creak_V : V;
-fun creakily_Adv : Adv;
-fun creaky_A : A;
-fun cream_N : N;
-fun cream_V2 : V2;
-fun creamery_N : N;
-fun creamy_A : A;
-fun crease_N : N;
-fun crease_V : V;
-fun crease_V2 : V2;
-fun create_V2 : V2;
-fun creation_N : N;
-fun creative_A : A;
-fun creatively_Adv : Adv;
-fun creativeness_N : N;
-fun creator_N : N;
-fun creature_N : N;
-fun credence_N : N;
-fun credibility_N : N;
-fun credible_A : A;
-fun credibly_Adv : Adv;
-fun credit_N : N;
-fun credit_V2 : V2;
-fun credit_side_N : N;
-fun credit_worthiness_N : N;
-fun credit_worthy_A : A;
-fun creditable_A : A;
-fun creditably_Adv : Adv;
-fun creditor_N : N;
-fun credo_N : N;
-fun credulity_N : N;
-fun credulous_A : A;
-fun credulously_Adv : Adv;
-fun creed_N : N;
-fun creek_N : N;
-fun creel_N : N;
-fun creep_N : N;
-fun creep_V : V;
-fun creeper_N : N;
-fun creepy_A : A;
-fun cremate_V2 : V2;
-fun cremation_N : N;
-fun crematorium_N : N;
-fun crematory_N : N;
-fun crenellated_A : A;
-fun creole_A : A;
-fun creole_N : N;
-fun creosote_N : N;
-fun crepe_1_N : N;
-fun crepitate_V : V;
-fun crepitation_N : N;
-fun crepuscular_A : A;
-fun cres_PN : PN;
-fun crescendo_N : N;
-fun crescent_N : N;
-fun cress_N : N;
-fun crest_N : N;
-fun crest_V : V;
-fun crest_V2 : V2;
-fun crested_A : A;
-fun crestfallen_A : A;
-fun creswell_PN : PN;
-fun cretaceous_A : A;
-fun cretin_N : N;
-fun cretinous_A : A;
-fun cretonne_N : N;
-fun crevasse_N : N;
-fun crevice_N : N;
-fun crew_N : N;
-fun crew_V : V;
-fun crew_cut_N : N;
-fun crew_neck_N : N;
-fun crewe_PN : PN;
-fun crib_N : N;
-fun crib_V : V;
-fun crib_V2 : V2;
-fun cribbage_N : N;
-fun cribbage_board_N : N;
-fun crick_N : N;
-fun crick_V2 : V2;
-fun cricket_N : N;
-fun cricketer_N : N;
-fun crieff_PN : PN;
-fun crier_N : N;
-fun crime_N : N;
-fun crime_V2 : V2;
-fun criminal_A : A;
-fun criminal_N : N;
-fun criminally_Adv : Adv;
-fun criminology_N : N;
-fun crimp_V2 : V2;
-fun crimson_A : A;
-fun crimson_N : N;
-fun crimson_V : V;
-fun crimson_V2 : V2;
-fun cringe_V : V;
-fun crinkle_N : N;
-fun crinkle_V : V;
-fun crinkle_V2 : V2;
-fun crinkly_A : A;
-fun crinoline_N : N;
-fun cripple_N : N;
-fun cripple_V2 : V2;
-fun crisis_N : N;
-fun crisp_A : A;
-fun crisp_N : N;
-fun crisp_V : V;
-fun crisp_V2 : V2;
-fun crisply_Adv : Adv;
-fun crispness_N : N;
-fun crisscross_A : A;
-fun crisscross_Adv : Adv;
-fun crisscross_V : V;
-fun crisscross_V2 : V2;
-fun criterion_N : N;
-fun critic_N : N;
-fun critical_A : A;
-fun critically_Adv : Adv;
-fun criticism_N : N;
-fun criticize_V : V;
-fun criticize_V2 : V2;
-fun critique_N : N;
-fun croak_N : N;
-fun croak_V : V;
-fun croak_V2 : V2;
-fun crochet_N : N;
-fun crochet_V : V;
-fun crochet_V2 : V2;
-fun crochet_hook_N : N;
-fun crock_N : N;
-fun crock_V : V;
-fun crock_V2 : V2;
-fun crockery_N : N;
-fun crocodile_N : N;
-fun crocus_N : N;
-fun croesus_PN : PN;
-fun croft_N : N;
-fun crofter_N : N;
-fun cromer_PN : PN;
-fun cromlech_N : N;
-fun crone_N : N;
-fun crony_N : N;
-fun crook_N : N;
-fun crook_PN : PN;
-fun crook_V : V;
-fun crook_V2 : V2;
-fun crook_back_A : A;
-fun crook_backed_A : A;
-fun crooked_A : A;
-fun crookedly_Adv : Adv;
-fun crookedness_N : N;
-fun croon_V : V;
-fun croon_V2 : V2;
-fun crooner_N : N;
-fun crop_N : N;
-fun crop_V : V;
-fun crop_V2 : V2;
-fun crop_dusting_N : N;
-fun cropper_N : N;
-fun croquet_N : N;
-fun croquette_N : N;
-fun crore_N : N;
-fun crosby_PN : PN;
-fun crosier_N : N;
-fun cross_A : A;
-fun cross_N : N;
-fun cross_V : V;
-fun cross_V2 : V2;
-fun cross_bench_N : N;
-fun cross_bencher_N : N;
-fun cross_division_N : N;
-fun cross_examination_N : N;
-fun cross_examine_V2 : V2;
-fun cross_examiner_N : N;
-fun cross_fertilization_N : N;
-fun cross_fertilize_V2 : V2;
-fun cross_grained_A : A;
-fun cross_heading_N : N;
-fun cross_index_N : N;
-fun cross_index_V2 : V2;
-fun cross_legged_Adv : Adv;
-fun cross_question_V2 : V2;
-fun cross_reference_N : N;
-fun cross_section_N : N;
-fun cross_stitch_N : N;
-fun crossbar_N : N;
-fun crossbeam_N : N;
-fun crossbow_N : N;
-fun crossbred_A : A;
-fun crossbreed_N : N;
-fun crossbreed_V2 : V2;
-fun crosscheck_N : N;
-fun crosscheck_V : V;
-fun crosscheck_V2 : V2;
-fun crosscountry_A : A;
-fun crosscountry_Adv : Adv;
-fun crosscurrent_N : N;
-fun crosscut_A : A;
-fun crosscut_N : N;
-fun crosse_N : N;
-fun crosseyed_A : A;
-fun crossfire_N : N;
-fun crossing_N : N;
-fun crossly_Adv : Adv;
-fun crossness_N : N;
-fun crosspatch_N : N;
-fun crosspiece_N : N;
-fun crossroad_N : N;
-fun crosstalk_N : N;
-fun crosswalk_N : N;
-fun crosswind_N : N;
-fun crosswise_Adv : Adv;
-fun crossword_N : N;
-fun crotch_N : N;
-fun crotchet_N : N;
-fun crotchety_A : A;
-fun crouch_N : N;
-fun crouch_V : V;
-fun croup_N : N;
-fun croupier_N : N;
-fun crow's_nest_N : N;
-fun crow_N : N;
-fun crow_V : V;
-fun crowbar_N : N;
-fun crowborough_PN : PN;
-fun crowd_N : N;
-fun crowd_V : V;
-fun crowd_V2 : V2;
-fun crowded_A : A;
-fun crown_N : N;
-fun crown_V2 : V2;
-fun crown_land_N : N;
-fun crowning_A : A;
-fun crowthorne_PN : PN;
-fun croydon_PN : PN;
-fun crozier_N : N;
-fun crucial_A : A;
-fun crucially_Adv : Adv;
-fun crucible_N : N;
-fun crucifix_N : N;
-fun crucifixion_N : N;
-fun cruciform_A : A;
-fun crucify_V2 : V2;
-fun crude_A : A;
-fun crudely_Adv : Adv;
-fun crudeness_N : N;
-fun crudity_N : N;
-fun cruel_A : A;
-fun cruelly_Adv : Adv;
-fun cruelty_N : N;
-fun cruet_N : N;
-fun cruet_stand_N : N;
-fun cruise_N : N;
-fun cruise_V : V;
-fun cruiser_N : N;
-fun crumb_N : N;
-fun crumble_V : V;
-fun crumble_V2 : V2;
-fun crumbly_A : A;
-fun crumpet_N : N;
-fun crumple_V : V;
-fun crumple_V2 : V2;
-fun crunch_N : N;
-fun crunch_V : V;
-fun crunch_V2 : V2;
-fun crupper_N : N;
-fun crusade_N : N;
-fun crusade_V : V;
-fun crusader_N : N;
-fun cruse_N : N;
-fun crush_N : N;
-fun crush_V : V;
-fun crush_V2 : V2;
-fun crushing_A : A;
-fun crushingly_Adv : Adv;
-fun crust_N : N;
-fun crust_V : V;
-fun crust_V2 : V2;
-fun crustacean_N : N;
-fun crusted_A : A;
-fun crusty_A : A;
-fun crutch_N : N;
-fun crux_N : N;
-fun cruzeiro_N : N;
-fun cry_N : N;
-fun cry_V : V;
-fun cry_V2 : V2;
-fun crybaby_N : N;
-fun crying_A : A;
-fun crypt_N : N;
-fun cryptic_A : A;
-fun cryptically_Adv : Adv;
-fun cryptogram_N : N;
-fun crystal_N : N;
-fun crystal_gazing_N : N;
-fun crystalline_A : A;
-fun crystallization_N : N;
-fun crystallize_V : V;
-fun crystallize_V2 : V2;
-fun crystallography_N : N;
-fun creche_N : N;
-fun creme_de_menthe_N : N;
-fun crepe_2_N : N;
-fun cub_N : N;
-fun cuba_PN : PN;
-fun cuban_A : A;
-fun cuban_N : N;
-fun cubbyhole_N : N;
-fun cube_N : N;
-fun cube_V2 : V2;
-fun cubic_A : A;
-fun cubical_A : A;
-fun cubicle_N : N;
-fun cubism_N : N;
-fun cubist_N : N;
-fun cubit_N : N;
-fun cuckold_N : N;
-fun cuckold_V2 : V2;
-fun cuckoo_N : N;
-fun cuckoo_clock_N : N;
-fun cucumber_N : N;
-fun cud_N : N;
-fun cuddle_N : N;
-fun cuddle_V : V;
-fun cuddle_V2 : V2;
-fun cuddlesome_A : A;
-fun cuddly_A : A;
-fun cudgel_N : N;
-fun cudgel_V2 : V2;
-fun cudworth_PN : PN;
-fun cue_N : N;
-fun cuff_N : N;
-fun cuff_V2 : V2;
-fun cuffley_PN : PN;
-fun cuirass_N : N;
-fun cuirassier_N : N;
-fun cuisine_N : N;
-fun cul_de_sac_N : N;
-fun culcheth_PN : PN;
-fun culinary_A : A;
-fun cull_N : N;
-fun cull_V2 : V2;
-fun cullender_N : N;
-fun culminate_V2 : V2;
-fun culmination_N : N;
-fun culpability_N : N;
-fun culpable_A : A;
-fun culpably_Adv : Adv;
-fun culprit_N : N;
-fun cult_N : N;
-fun cultivable_A : A;
-fun cultivate_V2 : V2;
-fun cultivated_A : A;
-fun cultivation_N : N;
-fun cultivator_N : N;
-fun cultural_A : A;
-fun culture_N : N;
-fun cultured_A : A;
-fun culvert_N : N;
-fun cumber_V2 : V2;
-fun cumberland_PN : PN;
-fun cumbernauld_PN : PN;
-fun cumbersome_A : A;
-fun cumbria_PN : PN;
-fun cumbrous_A : A;
-fun cummerbund_N : N;
-fun cumnock_PN : PN;
-fun cumulative_A : A;
-fun cumulatively_Adv : Adv;
-fun cumulus_N : N;
-fun cuneiform_A : A;
-fun cunning_A : A;
-fun cunning_N : N;
-fun cunningly_Adv : Adv;
-fun cunt_N : N;
-fun cup_N : N;
-fun cup_V2 : V2;
-fun cup_bearer_N : N;
-fun cup_final_N : N;
-fun cup_tie_N : N;
-fun cupar_PN : PN;
-fun cupboard_N : N;
-fun cupboard_love_N : N;
-fun cupful_N : N;
-fun cupid_PN : PN;
-fun cupidity_N : N;
-fun cupola_N : N;
-fun cuppa_N : N;
-fun cupping_N : N;
-fun cupric_A : A;
-fun cupro_nickel_N : N;
-fun cur_N : N;
-fun curability_N : N;
-fun curable_A : A;
-fun curacy_N : N;
-fun curate_N : N;
-fun curative_A : A;
-fun curator_N : N;
-fun curacao_N : N;
-fun curacoa_N : N;
-fun curb_N : N;
-fun curb_V2 : V2;
-fun curd_N : N;
-fun curdle_V : V;
-fun curdle_V2 : V2;
-fun cure_1_N : N;
-fun cure_V : V;
-fun cure_V2 : V2;
-fun cure_all_N : N;
-fun curfew_N : N;
-fun curio_N : N;
-fun curiosity_N : N;
-fun curious_A : A;
-fun curiously_Adv : Adv;
-fun curitiba_PN : PN;
-fun curl_N : N;
-fun curl_V : V;
-fun curl_V2 : V2;
-fun curler_N : N;
-fun curlew_N : N;
-fun curling_N : N;
-fun curly_A : A;
-fun curmudgeon_N : N;
-fun currant_N : N;
-fun currency_N : N;
-fun current_A : A;
-fun current_N : N;
-fun currently_Adv : Adv;
-fun curriculum_N : N;
-fun curriculum_vitae_N : N;
-fun currie_PN : PN;
-fun currish_A : A;
-fun currishly_Adv : Adv;
-fun curry_N : N;
-fun curry_V2 : V2;
-fun curry_powder_N : N;
-fun curse_N : N;
-fun curse_V : V;
-fun curse_V2 : V2;
-fun cursed_A : A;
-fun cursedly_Adv : Adv;
-fun cursive_A : A;
-fun cursorily_Adv : Adv;
-fun cursory_A : A;
-fun curst_A : A;
-fun curt_A : A;
-fun curtail_V2 : V2;
-fun curtailment_N : N;
-fun curtain_N : N;
-fun curtain_V2 : V2;
-fun curtain_call_N : N;
-fun curtain_lecture_N : N;
-fun curtain_raiser_N : N;
-fun curtly_Adv : Adv;
-fun curtness_N : N;
-fun curtsey_N : N;
-fun curtsey_V : V;
-fun curtsy_N : N;
-fun curtsy_V : V;
-fun curvature_N : N;
-fun curve_N : N;
-fun curve_V : V;
-fun curve_V2 : V2;
-fun cure_2_N : N;
-fun cushion_N : N;
-fun cushion_V2 : V2;
-fun cushy_A : A;
-fun cusp_N : N;
-fun cuspidor_N : N;
-fun cuss_N : N;
-fun cussed_A : A;
-fun cussedly_Adv : Adv;
-fun cussedness_N : N;
-fun custard_N : N;
-fun custodial_A : A;
-fun custodian_N : N;
-fun custody_N : N;
-fun custom_N : N;
-fun custom_built_A : A;
-fun custom_made_A : A;
-fun customarily_Adv : Adv;
-fun customary_A : A;
-fun customer_N : N;
-fun cut_N : N;
-fun cut_V : V;
-fun cut_V2 : V2;
-fun cut_out_N : N;
-fun cut_price_A : A;
-fun cut_rate_A : A;
-fun cut_throat_A : A;
-fun cut_throat_N : N;
-fun cutback_N : N;
-fun cute_A : A;
-fun cutely_Adv : Adv;
-fun cuteness_N : N;
-fun cuticle_N : N;
-fun cutlass_N : N;
-fun cutler_N : N;
-fun cutlery_N : N;
-fun cutlet_N : N;
-fun cutpurse_N : N;
-fun cutter_N : N;
-fun cutting_A : A;
-fun cutting_N : N;
-fun cutting_room_N : N;
-fun cuttlefish_N : N;
-fun cutworm_N : N;
-fun cwmbran_PN : PN;
-fun cwt_N : N;
-fun cyanide_N : N;
-fun cybernetic_A : A;
-fun cybernetics_N : N;
-fun cyclamen_N : N;
-fun cycle_N : N;
-fun cycle_V : V;
-fun cyclic_A : A;
-fun cyclical_A : A;
-fun cyclist_N : N;
-fun cyclone_N : N;
-fun cyclonic_A : A;
-fun cyclopaedia_N : N;
-fun cyclopean_A : A;
-fun cyclostyle_N : N;
-fun cyclostyle_V2 : V2;
-fun cyclotron_N : N;
-fun cyder_N : N;
-fun cygnet_N : N;
-fun cylinder_N : N;
-fun cylindrical_A : A;
-fun cymbal_N : N;
-fun cynic_N : N;
-fun cynical_A : A;
-fun cynically_Adv : Adv;
-fun cynicism_N : N;
-fun cynosure_N : N;
-fun cynthia_PN : PN;
-fun cypher_N : N;
-fun cypher_V : V;
-fun cypher_V2 : V2;
-fun cypress_N : N;
-fun cyprian_A : A;
-fun cypriot_A : A;
-fun cypriot_N : N;
-fun cyprus_PN : PN;
-fun cyril_PN : PN;
-fun cyrillic_A : A;
-fun cyst_N : N;
-fun czar_N : N;
-fun czarina_N : N;
-fun czech_A : A;
-fun czech_N : N;
-fun czechoslovak_A : A;
-fun czechoslovak_N : N;
-fun czechoslovakia_PN : PN;
-fun czechoslovakian_A : A;
-fun czechoslovakian_N : N;
-fun d_day_PN : PN;
-fun dab_N : N;
-fun dab_V : V;
-fun dab_V2 : V2;
-fun dabble_V : V;
-fun dabble_V2 : V2;
-fun dabbler_N : N;
-fun dacca_PN : PN;
-fun dace_N : N;
-fun dacha_N : N;
-fun dachshund_N : N;
-fun dacoit_N : N;
-fun dacoity_N : N;
-fun dactyl_N : N;
-fun dactylic_A : A;
-fun dad_N : N;
-fun daddy_N : N;
-fun daddy_longlegs_N : N;
-fun dado_N : N;
-fun daemon_N : N;
-fun daffodil_N : N;
-fun daft_A : A;
-fun daftly_Adv : Adv;
-fun dagger_N : N;
-fun dago_N : N;
-fun daguerreotype_N : N;
-fun dahlia_N : N;
-fun dail_eireann_N : N;
-fun daily_A : A;
-fun daily_Adv : Adv;
-fun daily_N : N;
-fun daintily_Adv : Adv;
-fun daintiness_N : N;
-fun dainty_A : A;
-fun dainty_N : N;
-fun dairy_N : N;
-fun dairy_farm_N : N;
-fun dairy_farming_N : N;
-fun dairying_N : N;
-fun dairymaid_N : N;
-fun dairyman_N : N;
-fun dais_N : N;
-fun daisy_N : N;
-fun daisy_PN : PN;
-fun dakar_PN : PN;
-fun dakota_PN : PN;
-fun dale_N : N;
-fun dalesman_N : N;
-fun dalkeith_PN : PN;
-fun dallas_PN : PN;
-fun dalliance_N : N;
-fun dally_V : V;
-fun dalmatian_N : N;
-fun dalry_PN : PN;
-fun dalton_PN : PN;
-fun dam_N : N;
-fun dam_V2 : V2;
-fun damage_N : N;
-fun damage_V2 : V2;
-fun damascene_A : A;
-fun damascene_V2 : V2;
-fun damascus_PN : PN;
-fun damask_N : N;
-fun dame_N : N;
-fun damn_A : A;
-fun damn_Adv : Adv;
-fun damn_N : N;
-fun damn_V2 : V2;
-fun damnable_A : A;
-fun damnably_Adv : Adv;
-fun damnation_N : N;
-fun damned_A : A;
-fun damned_Adv : Adv;
-fun damocles_PN : PN;
-fun damp_A : A;
-fun damp_N : N;
-fun damp_V : V;
-fun damp_V2 : V2;
-fun dampen_V : V;
-fun dampen_V2 : V2;
-fun damper_N : N;
-fun dampish_A : A;
-fun damply_Adv : Adv;
-fun dampness_N : N;
-fun damsel_N : N;
-fun damson_N : N;
-fun dan_PN : PN;
-fun dance_N : N;
-fun dance_V : V;
-fun dance_V2 : V2;
-fun dance_band_N : N;
-fun dance_hall_N : N;
-fun dance_orchestra_N : N;
-fun dancer_N : N;
-fun dancing_A : A;
-fun dancing_N : N;
-fun dandelion_N : N;
-fun dander_N : N;
-fun dandified_A : A;
-fun dandle_V2 : V2;
-fun dandruff_N : N;
-fun dandy_A : A;
-fun dandy_N : N;
-fun dane_N : N;
-fun danger_N : N;
-fun dangerous_A : A;
-fun dangerously_Adv : Adv;
-fun dangle_V : V;
-fun dangle_V2 : V2;
-fun daniel_N : N;
-fun daniel_PN : PN;
-fun danish_A : A;
-fun danish_N : N;
-fun dank_A : A;
-fun danny_PN : PN;
-fun danse_macabre_N : N;
-fun daphne_N : N;
-fun daphne_PN : PN;
-fun dapper_A : A;
-fun dapple_V2 : V2;
-fun dapple_grey_A : A;
-fun dapple_grey_N : N;
-fun darby_PN : PN;
-fun dare_N : N;
-fun dare_V : V;
-fun dare_V2 : V2;
-fun daredevil_N : N;
-fun darenth_PN : PN;
-fun darfield_PN : PN;
-fun daring_A : A;
-fun daring_N : N;
-fun daringly_Adv : Adv;
-fun dark_A : A;
-fun dark_N : N;
-fun darken_V : V;
-fun darken_V2 : V2;
-fun darkey_N : N;
-fun darkie_N : N;
-fun darkly_Adv : Adv;
-fun darkness_N : N;
-fun darkroom_N : N;
-fun darky_N : N;
-fun darling_N : N;
-fun darlington_PN : PN;
-fun darmstadt_PN : PN;
-fun darn_N : N;
-fun darn_V : V;
-fun darn_V2 : V2;
-fun darning_N : N;
-fun darning_needle_N : N;
-fun dart_N : N;
-fun dart_V : V;
-fun dart_V2 : V2;
-fun dartford_PN : PN;
-fun dartmouth_PN : PN;
-fun darwen_PN : PN;
-fun dash_N : N;
-fun dash_V : V;
-fun dash_V2 : V2;
-fun dashboard_N : N;
-fun dashing_A : A;
-fun dashingly_Adv : Adv;
-fun dastard_N : N;
-fun dastardly_A : A;
-fun data_N : N;
-fun datable_A : A;
-fun date_N : N;
-fun date_V : V;
-fun date_V2 : V2;
-fun dated_A : A;
-fun dateless_A : A;
-fun dateline_N : N;
-fun dative_A : A;
-fun dative_N : N;
-fun datum_N : N;
-fun daub_N : N;
-fun daub_V : V;
-fun daub_V2 : V2;
-fun dauber_N : N;
-fun daughter_N : N;
-fun daughter_in_law_N : N;
-fun daughterly_A : A;
-fun daunt_V2 : V2;
-fun dauntless_A : A;
-fun dauntlessly_Adv : Adv;
-fun dauphin_N : N;
-fun dave_PN : PN;
-fun davenport_N : N;
-fun daventry_PN : PN;
-fun davey_PN : PN;
-fun david_PN : PN;
-fun davit_N : N;
-fun daw_N : N;
-fun dawdle_V : V;
-fun dawdle_V2 : V2;
-fun dawdler_N : N;
-fun dawley_PN : PN;
-fun dawlish_PN : PN;
-fun dawn_N : N;
-fun dawn_PN : PN;
-fun dawn_V : V;
-fun day_N : N;
-fun day_boarder_N : N;
-fun day_labourer_N : N;
-fun day_return_N : N;
-fun day_school_N : N;
-fun daybook_N : N;
-fun dayboy_N : N;
-fun daybreak_N : N;
-fun daydream_N : N;
-fun daydream_V : V;
-fun daygirl_N : N;
-fun daylight_N : N;
-fun daylight_saving_A : A;
-fun daylight_saving_N : N;
-fun daylong_A : A;
-fun daylong_Adv : Adv;
-fun dayspring_N : N;
-fun daytime_N : N;
-fun dayton_PN : PN;
-fun daze_N : N;
-fun daze_V2 : V2;
-fun dazedly_Adv : Adv;
-fun dazzle_N : N;
-fun dazzle_V2 : V2;
-fun ddt_N : N;
-fun de_escalate_V2 : V2;
-fun de_escalation_N : N;
-fun de_facto_A : A;
-fun de_facto_Adv : Adv;
-fun de_ice_V2 : V2;
-fun de_jure_A : A;
-fun de_jure_Adv : Adv;
-fun de_luxe_A : A;
-fun de_rigeur_A : A;
-fun de_trop_A : A;
-fun deacon_N : N;
-fun deaconess_N : N;
-fun dead_A : A;
-fun dead_Adv : Adv;
-fun deaden_V2 : V2;
-fun deadline_N : N;
-fun deadlock_N : N;
-fun deadlocked_A : A;
-fun deadly_A : A;
-fun deadly_Adv : Adv;
-fun deadpan_A : A;
-fun deaf_A : A;
-fun deaf_aid_N : N;
-fun deaf_mute_N : N;
-fun deafen_V2 : V2;
-fun deafness_N : N;
-fun deal_Adv : Adv;
-fun deal_N : N;
-fun deal_PN : PN;
-fun deal_V : V;
-fun deal_V2 : V2;
-fun dealer_N : N;
-fun dealing_N : N;
-fun dean_N : N;
-fun dean_PN : PN;
-fun deanery_N : N;
-fun dear_A : A;
-fun dear_Adv : Adv;
-fun dear_N : N;
-fun dearest_N : N;
-fun dearie_N : N;
-fun dearly_Adv : Adv;
-fun dearness_N : N;
-fun dearth_N : N;
-fun deary_N : N;
-fun death_N : N;
-fun death_mask_N : N;
-fun death_rate_N : N;
-fun death_roll_N : N;
-fun death_warrant_N : N;
-fun deathbed_N : N;
-fun deathblow_N : N;
-fun deathless_A : A;
-fun deathlike_A : A;
-fun deathly_A : A;
-fun deathly_Adv : Adv;
-fun deathtrap_N : N;
-fun deb_N : N;
-fun debag_V2 : V2;
-fun debar_V2 : V2;
-fun debark_V : V;
-fun debark_V2 : V2;
-fun debarkation_N : N;
-fun debase_V2 : V2;
-fun debasement_N : N;
-fun debatable_A : A;
-fun debate_N : N;
-fun debate_V : V;
-fun debate_V2 : V2;
-fun debater_N : N;
-fun debauch_N : N;
-fun debauch_V2 : V2;
-fun debauchee_N : N;
-fun debauchery_N : N;
-fun debbie_PN : PN;
-fun debby_PN : PN;
-fun debenture_N : N;
-fun debilitate_V2 : V2;
-fun debility_N : N;
-fun debit_N : N;
-fun debit_V2 : V2;
-fun debit_side_N : N;
-fun debonair_A : A;
-fun deborah_PN : PN;
-fun debouch_V : V;
-fun debouch_V2 : V2;
-fun debrief_V2 : V2;
-fun debris_1_N : N;
-fun debt_N : N;
-fun debtor_N : N;
-fun debug_V2 : V2;
-fun debunk_V2 : V2;
-fun debut_1_N : N;
-fun debutante_1_N : N;
-fun dec_PN : PN;
-fun decade_N : N;
-fun decadence_N : N;
-fun decadent_A : A;
-fun decadent_N : N;
-fun decalogue_N : N;
-fun decamp_V : V;
-fun decant_V2 : V2;
-fun decanter_N : N;
-fun decapitate_V2 : V2;
-fun decapitation_N : N;
-fun decarbonize_V2 : V2;
-fun decasyllabic_A : A;
-fun decasyllable_N : N;
-fun decay_N : N;
-fun decay_V : V;
-fun decease_N : N;
-fun decease_V : V;
-fun deceit_N : N;
-fun deceitful_A : A;
-fun deceitfully_Adv : Adv;
-fun deceitfulness_N : N;
-fun deceive_V2 : V2;
-fun deceiver_N : N;
-fun deceivingly_Adv : Adv;
-fun decelerate_V : V;
-fun decelerate_V2 : V2;
-fun december_N : N;
-fun december_PN : PN;
-fun decency_N : N;
-fun decent_A : A;
-fun decently_Adv : Adv;
-fun decentralization_N : N;
-fun decentralize_V2 : V2;
-fun deception_N : N;
-fun deceptive_A : A;
-fun deceptively_Adv : Adv;
-fun decibel_N : N;
-fun decide_V : V;
-fun decide_V2 : V2;
-fun decided_A : A;
-fun decidedly_Adv : Adv;
-fun deciduous_A : A;
-fun decimal_A : A;
-fun decimalization_N : N;
-fun decimalize_V2 : V2;
-fun decimate_V2 : V2;
-fun decipher_V2 : V2;
-fun decipherable_A : A;
-fun decision_N : N;
-fun decisive_A : A;
-fun decisively_Adv : Adv;
-fun deck_N : N;
-fun deck_V2 : V2;
-fun decker_N : N;
-fun deckle_edged_A : A;
-fun declaim_V : V;
-fun declaim_V2 : V2;
-fun declamation_N : N;
-fun declamatory_A : A;
-fun declarable_A : A;
-fun declaration_N : N;
-fun declare_V : V;
-fun declare_V2 : V2;
-fun declassification_N : N;
-fun declassify_V2 : V2;
-fun declension_N : N;
-fun declination_N : N;
-fun decline_N : N;
-fun decline_V : V;
-fun decline_V2 : V2;
-fun declivity_N : N;
-fun declutch_V : V;
-fun decode_V2 : V2;
-fun decoder_N : N;
-fun decoke_V2 : V2;
-fun decolonization_N : N;
-fun decolonize_V2 : V2;
-fun decompose_V : V;
-fun decompose_V2 : V2;
-fun decomposition_N : N;
-fun decompress_V2 : V2;
-fun decompression_N : N;
-fun decontaminate_V2 : V2;
-fun decontamination_N : N;
-fun decontrol_V2 : V2;
-fun decorate_V2 : V2;
-fun decoration_N : N;
-fun decorative_A : A;
-fun decorator_N : N;
-fun decorous_A : A;
-fun decorously_Adv : Adv;
-fun decorum_N : N;
-fun decoy_N : N;
-fun decoy_V2 : V2;
-fun decrease_N : N;
-fun decrease_V : V;
-fun decrease_V2 : V2;
-fun decree_N : N;
-fun decree_V2 : V2;
-fun decree_nisi_N : N;
-fun decrepit_A : A;
-fun decrepitude_N : N;
-fun decry_V2 : V2;
-fun dedicate_V2 : V2;
-fun dedication_N : N;
-fun deduce_V2 : V2;
-fun deduct_V2 : V2;
-fun deductible_A : A;
-fun deduction_N : N;
-fun deductive_A : A;
-fun deed_N : N;
-fun deed_box_N : N;
-fun deedpoll_N : N;
-fun deem_V2 : V2;
-fun deep_A : A;
-fun deep_Adv : Adv;
-fun deep_N : N;
-fun deep_freeze_N : N;
-fun deep_freeze_V2 : V2;
-fun deep_laid_A : A;
-fun deep_mined_A : A;
-fun deep_rooted_A : A;
-fun deep_sea_A : A;
-fun deep_seated_A : A;
-fun deep_water_A : A;
-fun deepen_V : V;
-fun deepen_V2 : V2;
-fun deeply_Adv : Adv;
-fun deepness_N : N;
-fun deer_N : N;
-fun deerskin_N : N;
-fun deerstalker_N : N;
-fun deerstalking_N : N;
-fun deface_V2 : V2;
-fun defacement_N : N;
-fun defalcation_N : N;
-fun defamation_N : N;
-fun defamatory_A : A;
-fun defame_V2 : V2;
-fun default_N : N;
-fun default_V : V;
-fun defaulter_N : N;
-fun defeat_N : N;
-fun defeat_V2 : V2;
-fun defeatism_N : N;
-fun defeatist_N : N;
-fun defecate_V : V;
-fun defecation_N : N;
-fun defect_N : N;
-fun defect_V : V;
-fun defection_N : N;
-fun defective_A : A;
-fun defectively_Adv : Adv;
-fun defectiveness_N : N;
-fun defector_N : N;
-fun defence_N : N;
-fun defenceless_A : A;
-fun defencelessly_Adv : Adv;
-fun defencelessness_N : N;
-fun defend_V2 : V2;
-fun defendant_N : N;
-fun defender_N : N;
-fun defensible_A : A;
-fun defensive_A : A;
-fun defensive_N : N;
-fun defensively_Adv : Adv;
-fun defer_V : V;
-fun defer_V2 : V2;
-fun deference_N : N;
-fun deferential_A : A;
-fun deferentially_Adv : Adv;
-fun deferment_N : N;
-fun defiance_N : N;
-fun defiant_A : A;
-fun defiantly_Adv : Adv;
-fun deficiency_N : N;
-fun deficient_A : A;
-fun deficit_N : N;
-fun defile_N : N;
-fun defile_V : V;
-fun defile_V2 : V2;
-fun defilement_N : N;
-fun definable_A : A;
-fun define_V2 : V2;
-fun definite_A : A;
-fun definitely_Adv : Adv;
-fun definition_N : N;
-fun definitive_A : A;
-fun deflate_V2 : V2;
-fun deflation_N : N;
-fun deflationary_A : A;
-fun deflect_V : V;
-fun deflect_V2 : V2;
-fun deflection_N : N;
-fun deflower_V2 : V2;
-fun defoliant_N : N;
-fun defoliate_V2 : V2;
-fun defoliation_N : N;
-fun deforest_V2 : V2;
-fun deform_V2 : V2;
-fun deformed_A : A;
-fun deformity_N : N;
-fun defraud_V2 : V2;
-fun defray_V2 : V2;
-fun defrayal_N : N;
-fun defrayment_N : N;
-fun defrock_V2 : V2;
-fun defrost_V2 : V2;
-fun defroster_N : N;
-fun deft_A : A;
-fun deftly_Adv : Adv;
-fun deftness_N : N;
-fun defunct_A : A;
-fun defuse_V2 : V2;
-fun defy_V2 : V2;
-fun degauss_V2 : V2;
-fun degeneracy_N : N;
-fun degenerate_A : A;
-fun degenerate_N : N;
-fun degenerate_V : V;
-fun degeneration_N : N;
-fun degradation_N : N;
-fun degrade_V2 : V2;
-fun degree_N : N;
-fun dehorn_V2 : V2;
-fun dehumanize_V2 : V2;
-fun dehydrate_V2 : V2;
-fun deification_N : N;
-fun deify_V2 : V2;
-fun deign_V : V;
-fun deirdre_PN : PN;
-fun deism_N : N;
-fun deist_N : N;
-fun deity_N : N;
-fun deject_V2 : V2;
-fun dejectedly_Adv : Adv;
-fun dejection_N : N;
-fun dekko_N : N;
-fun delaware_PN : PN;
-fun delay_N : N;
-fun delay_V : V;
-fun delay_V2 : V2;
-fun delayed_action_A : A;
-fun delayed_action_N : N;
-fun delectable_A : A;
-fun delectation_N : N;
-fun delegacy_N : N;
-fun delegate_N : N;
-fun delegate_V2 : V2;
-fun delegation_N : N;
-fun delete_V2 : V2;
-fun deleterious_A : A;
-fun deletion_N : N;
-fun delf_N : N;
-fun delft_N : N;
-fun delhi_PN : PN;
-fun deliberate_A : A;
-fun deliberate_V : V;
-fun deliberate_V2 : V2;
-fun deliberately_Adv : Adv;
-fun deliberation_N : N;
-fun deliberative_A : A;
-fun delicacy_N : N;
-fun delicate_A : A;
-fun delicately_Adv : Adv;
-fun delicatessen_N : N;
-fun delicious_A : A;
-fun deliciously_Adv : Adv;
-fun delight_N : N;
-fun delight_V : V;
-fun delight_V2 : V2;
-fun delightedly_Adv : Adv;
-fun delightful_A : A;
-fun delightfully_Adv : Adv;
-fun delimit_V2 : V2;
-fun delimitate_V2 : V2;
-fun delimitation_N : N;
-fun delineate_V2 : V2;
-fun delineation_N : N;
-fun delinquency_N : N;
-fun delinquent_A : A;
-fun delinquent_N : N;
-fun deliquescent_A : A;
-fun delirious_A : A;
-fun deliriously_Adv : Adv;
-fun delirium_N : N;
-fun delirium_tremens_N : N;
-fun deliver_V2 : V2;
-fun deliverance_N : N;
-fun deliverer_N : N;
-fun delivery_N : N;
-fun dell_N : N;
-fun delouse_V2 : V2;
-fun delphic_A : A;
-fun delphinium_N : N;
-fun delta_N : N;
-fun delude_V2 : V2;
-fun deluge_N : N;
-fun deluge_V2 : V2;
-fun delusion_N : N;
-fun delusive_A : A;
-fun delusively_Adv : Adv;
-fun delve_V : V;
-fun delve_V2 : V2;
-fun demagnetization_N : N;
-fun demagnetize_V2 : V2;
-fun demagogic_A : A;
-fun demagogue_N : N;
-fun demagogy_N : N;
-fun demand_N : N;
-fun demand_V2 : V2;
-fun demarcate_V2 : V2;
-fun demarcation_N : N;
-fun demean_V2 : V2;
-fun demeanour_N : N;
-fun demented_A : A;
-fun dementedly_Adv : Adv;
-fun demerara_N : N;
-fun demerit_N : N;
-fun demesne_N : N;
-fun demigod_N : N;
-fun demijohn_N : N;
-fun demilitarize_V2 : V2;
-fun demimondaine_N : N;
-fun demimonde_N : N;
-fun demise_N : N;
-fun demist_V2 : V2;
-fun demister_N : N;
-fun demo_N : N;
-fun demob_V2 : V2;
-fun demobilization_N : N;
-fun demobilize_V2 : V2;
-fun democracy_N : N;
-fun democrat_N : N;
-fun democratic_A : A;
-fun democratically_Adv : Adv;
-fun democratization_N : N;
-fun democratize_V2 : V2;
-fun demographic_A : A;
-fun demography_N : N;
-fun demolish_V2 : V2;
-fun demolition_N : N;
-fun demon_N : N;
-fun demonetization_N : N;
-fun demonetize_V2 : V2;
-fun demoniac_A : A;
-fun demoniac_N : N;
-fun demoniacal_A : A;
-fun demoniacally_Adv : Adv;
-fun demonic_A : A;
-fun demonstrability_N : N;
-fun demonstrable_A : A;
-fun demonstrably_Adv : Adv;
-fun demonstrate_V : V;
-fun demonstrate_V2 : V2;
-fun demonstration_N : N;
-fun demonstrative_A : A;
-fun demonstratively_Adv : Adv;
-fun demonstrator_N : N;
-fun demoralization_N : N;
-fun demoralize_V2 : V2;
-fun demote_V2 : V2;
-fun demotic_A : A;
-fun demotion_N : N;
-fun demur_N : N;
-fun demur_V : V;
-fun demure_A : A;
-fun demurely_Adv : Adv;
-fun demureness_N : N;
-fun den_N : N;
-fun denain_PN : PN;
-fun denary_A : A;
-fun denationalization_N : N;
-fun denationalize_V2 : V2;
-fun denatured_A : A;
-fun denbigh_PN : PN;
-fun deniable_A : A;
-fun denial_N : N;
-fun denier_N : N;
-fun denigrate_V2 : V2;
-fun denigration_N : N;
-fun denim_N : N;
-fun denis_PN : PN;
-fun denise_PN : PN;
-fun denizen_N : N;
-fun denmark_PN : PN;
-fun dennis_PN : PN;
-fun denny_PN : PN;
-fun denominate_V2 : V2;
-fun denomination_N : N;
-fun denominational_A : A;
-fun denominator_N : N;
-fun denote_V2 : V2;
-fun denounce_V2 : V2;
-fun dense_A : A;
-fun densely_Adv : Adv;
-fun denseness_N : N;
-fun density_N : N;
-fun dent_N : N;
-fun dent_V : V;
-fun dent_V2 : V2;
-fun dental_A : A;
-fun dentifrice_N : N;
-fun dentist_N : N;
-fun dentistry_N : N;
-fun denture_N : N;
-fun denudation_N : N;
-fun denude_V2 : V2;
-fun denunciation_N : N;
-fun denver_PN : PN;
-fun deny_V2 : V2;
-fun deodar_N : N;
-fun deodorant_N : N;
-fun deodorize_V2 : V2;
-fun dep_PN : PN;
-fun depart_V : V;
-fun departed_A : A;
-fun departed_N : N;
-fun department_N : N;
-fun departmental_A : A;
-fun departure_N : N;
-fun depend_V : V;
-fun dependable_A : A;
-fun dependant_N : N;
-fun dependence_N : N;
-fun dependency_N : N;
-fun dependent_A : A;
-fun dependent_N : N;
-fun depict_V2 : V2;
-fun depiction_N : N;
-fun depilatory_A : A;
-fun depilatory_N : N;
-fun deplane_V : V;
-fun deplete_V2 : V2;
-fun depletion_N : N;
-fun deplorable_A : A;
-fun deplorably_Adv : Adv;
-fun deplore_V2 : V2;
-fun deploy_V : V;
-fun deploy_V2 : V2;
-fun deployment_N : N;
-fun deponent_N : N;
-fun depopulate_V2 : V2;
-fun depopulation_N : N;
-fun deport_V2 : V2;
-fun deportation_N : N;
-fun deportee_N : N;
-fun deportment_N : N;
-fun depose_V : V;
-fun depose_V2 : V2;
-fun deposit_N : N;
-fun deposit_V2 : V2;
-fun deposition_N : N;
-fun depositor_N : N;
-fun depository_N : N;
-fun depot_N : N;
-fun deprave_V2 : V2;
-fun depravity_N : N;
-fun deprecate_V2 : V2;
-fun deprecation_N : N;
-fun depreciate_V : V;
-fun depreciate_V2 : V2;
-fun depreciation_N : N;
-fun depreciatory_A : A;
-fun depredation_N : N;
-fun depress_V2 : V2;
-fun depression_N : N;
-fun depressive_A : A;
-fun depressive_N : N;
-fun deprivation_N : N;
-fun deprive_V2 : V2;
-fun deprived_A : A;
-fun dept_PN : PN;
-fun depth_N : N;
-fun depth_bomb_N : N;
-fun depth_charge_N : N;
-fun deputation_N : N;
-fun depute_V2 : V2;
-fun deputize_V : V;
-fun deputy_N : N;
-fun derail_V2 : V2;
-fun derailment_N : N;
-fun derange_V2 : V2;
-fun derangement_N : N;
-fun derate_V2 : V2;
-fun derby_N : N;
-fun derby_PN : PN;
-fun derbyshire_PN : PN;
-fun dereham_PN : PN;
-fun derek_PN : PN;
-fun derelict_A : A;
-fun dereliction_N : N;
-fun derequisition_V2 : V2;
-fun derestrict_V2 : V2;
-fun deride_V2 : V2;
-fun derision_N : N;
-fun derisive_A : A;
-fun derisively_Adv : Adv;
-fun derisory_A : A;
-fun derivation_N : N;
-fun derivative_A : A;
-fun derivative_N : N;
-fun derive_V : V;
-fun derive_V2 : V2;
-fun dermatitis_N : N;
-fun dermatologist_N : N;
-fun dermatology_N : N;
-fun derogate_V : V;
-fun derogation_N : N;
-fun derogatory_A : A;
-fun derrick_N : N;
-fun derring_do_N : N;
-fun derv_N : N;
-fun dervish_N : N;
-fun des_N : N;
-fun des_PN : PN;
-fun desalinate_V2 : V2;
-fun desalination_N : N;
-fun desalinization_N : N;
-fun desalinize_V2 : V2;
-fun desalt_V2 : V2;
-fun descale_V2 : V2;
-fun descant_N : N;
-fun descant_V : V;
-fun descend_V : V;
-fun descend_V2 : V2;
-fun descendant_N : N;
-fun descent_N : N;
-fun describe_V2 : V2;
-fun description_N : N;
-fun descriptive_A : A;
-fun descriptively_Adv : Adv;
-fun descry_V2 : V2;
-fun desecrate_V2 : V2;
-fun desecration_N : N;
-fun desegregate_V2 : V2;
-fun desegregation_N : N;
-fun desensitization_N : N;
-fun desensitize_V2 : V2;
-fun desert_A : A;
-fun desert_N : N;
-fun desert_V : V;
-fun desert_V2 : V2;
-fun deserter_N : N;
-fun desertion_N : N;
-fun deserve_V : V;
-fun deserve_V2 : V2;
-fun deserved_A : A;
-fun deservedly_Adv : Adv;
-fun deserving_A : A;
-fun desiccant_N : N;
-fun desiccate_V2 : V2;
-fun desideratum_N : N;
-fun design_N : N;
-fun design_V : V;
-fun design_V2 : V2;
-fun designate_A : A;
-fun designate_V2 : V2;
-fun designation_N : N;
-fun designedly_Adv : Adv;
-fun designer_N : N;
-fun designing_A : A;
-fun designing_N : N;
-fun desirability_N : N;
-fun desirable_A : A;
-fun desire_N : N;
-fun desire_V2 : V2;
-fun desirous_A : A;
-fun desist_V : V;
-fun desk_N : N;
-fun desmond_PN : PN;
-fun desolate_A : A;
-fun desolate_V2 : V2;
-fun desolately_Adv : Adv;
-fun desolation_N : N;
-fun despair_N : N;
-fun despair_V : V;
-fun despairingly_Adv : Adv;
-fun despatch_N : N;
-fun despatch_V2 : V2;
-fun desperado_N : N;
-fun desperate_A : A;
-fun desperately_Adv : Adv;
-fun desperation_N : N;
-fun despicable_A : A;
-fun despicably_Adv : Adv;
-fun despise_V2 : V2;
-fun despite_N : N;
-fun despiteful_A : A;
-fun despitefully_Adv : Adv;
-fun despoil_V2 : V2;
-fun despondency_N : N;
-fun despondent_A : A;
-fun despondently_Adv : Adv;
-fun despot_N : N;
-fun despotic_A : A;
-fun despotism_N : N;
-fun dessau_PN : PN;
-fun dessert_N : N;
-fun dessertspoon_N : N;
-fun dessertspoonful_N : N;
-fun destination_N : N;
-fun destine_V2 : V2;
-fun destiny_N : N;
-fun destitute_A : A;
-fun destitution_N : N;
-fun destroy_V2 : V2;
-fun destroyer_N : N;
-fun destructibility_N : N;
-fun destructible_A : A;
-fun destruction_N : N;
-fun destructive_A : A;
-fun destructively_Adv : Adv;
-fun destructiveness_N : N;
-fun desuetude_N : N;
-fun desultory_A : A;
-fun detach_V2 : V2;
-fun detachable_A : A;
-fun detached_A : A;
-fun detachment_N : N;
-fun detail_N : N;
-fun detail_V2 : V2;
-fun detain_V2 : V2;
-fun detainee_N : N;
-fun detect_V2 : V2;
-fun detectable_A : A;
-fun detection_N : N;
-fun detective_N : N;
-fun detector_N : N;
-fun detention_N : N;
-fun deter_V2 : V2;
-fun detergent_A : A;
-fun detergent_N : N;
-fun deteriorate_V : V;
-fun deteriorate_V2 : V2;
-fun deterioration_N : N;
-fun determinable_A : A;
-fun determinant_A : A;
-fun determinant_N : N;
-fun determinate_A : A;
-fun determination_N : N;
-fun determinative_A : A;
-fun determinative_N : N;
-fun determine_V : V;
-fun determine_V2 : V2;
-fun determinedly_Adv : Adv;
-fun determiner_N : N;
-fun deterrent_A : A;
-fun deterrent_N : N;
-fun detest_V2 : V2;
-fun detestable_A : A;
-fun detestably_Adv : Adv;
-fun detestation_N : N;
-fun dethrone_V2 : V2;
-fun dethronement_N : N;
-fun detonate_V : V;
-fun detonate_V2 : V2;
-fun detonation_N : N;
-fun detonator_N : N;
-fun detour_N : N;
-fun detour_V2 : V2;
-fun detract_V : V;
-fun detraction_N : N;
-fun detractor_N : N;
-fun detrain_V : V;
-fun detrain_V2 : V2;
-fun detribalization_N : N;
-fun detribalize_V2 : V2;
-fun detriment_N : N;
-fun detrimental_A : A;
-fun detrimentally_Adv : Adv;
-fun detritus_N : N;
-fun detroit_PN : PN;
-fun deuce_N : N;
-fun deuced_A : A;
-fun deucedly_Adv : Adv;
-fun deutschmark_N : N;
-fun devaluate_V2 : V2;
-fun devaluation_N : N;
-fun devalue_V2 : V2;
-fun devastate_V2 : V2;
-fun devastation_N : N;
-fun develop_V : V;
-fun develop_V2 : V2;
-fun developer_N : N;
-fun development_N : N;
-fun deviant_A : A;
-fun deviant_N : N;
-fun deviate_V : V;
-fun deviation_N : N;
-fun deviationism_N : N;
-fun deviationist_N : N;
-fun device_N : N;
-fun devil_N : N;
-fun devil_V : V;
-fun devil_V2 : V2;
-fun devil_may_care_A : A;
-fun devilish_A : A;
-fun devilish_Adv : Adv;
-fun devilishly_Adv : Adv;
-fun devilment_N : N;
-fun devilry_N : N;
-fun devious_A : A;
-fun deviously_Adv : Adv;
-fun deviousness_N : N;
-fun devise_V2 : V2;
-fun devitalization_N : N;
-fun devitalize_V2 : V2;
-fun devizes_PN : PN;
-fun devoid_A : A;
-fun devolution_N : N;
-fun devolve_V : V;
-fun devolve_V2 : V2;
-fun devon_PN : PN;
-fun devote_V2 : V2;
-fun devoted_A : A;
-fun devotedly_Adv : Adv;
-fun devotee_N : N;
-fun devotion_N : N;
-fun devotional_A : A;
-fun devour_V2 : V2;
-fun devout_A : A;
-fun devoutly_Adv : Adv;
-fun devoutness_N : N;
-fun dew_N : N;
-fun dewlap_N : N;
-fun dewsbury_PN : PN;
-fun dewy_A : A;
-fun dexterity_N : N;
-fun dexterous_A : A;
-fun dexterously_Adv : Adv;
-fun dextrose_N : N;
-fun dextrous_A : A;
-fun dg_PN : PN;
-fun dhoti_N : N;
-fun dhow_N : N;
-fun di_PN : PN;
-fun diabetes_N : N;
-fun diabetic_A : A;
-fun diabetic_N : N;
-fun diabolic_A : A;
-fun diabolical_A : A;
-fun diabolically_Adv : Adv;
-fun diacritic_A : A;
-fun diacritic_N : N;
-fun diacritical_A : A;
-fun diadem_N : N;
-fun diaeresis_N : N;
-fun diagnose_V2 : V2;
-fun diagnosis_N : N;
-fun diagnostic_A : A;
-fun diagonal_A : A;
-fun diagonal_N : N;
-fun diagonally_Adv : Adv;
-fun diagram_N : N;
-fun diagrammatic_A : A;
-fun diagrammatical_A : A;
-fun diagrammatically_Adv : Adv;
-fun dial_N : N;
-fun dial_V2 : V2;
-fun dialect_N : N;
-fun dialectal_A : A;
-fun dialectic_N : N;
-fun dialectical_A : A;
-fun dialectician_N : N;
-fun dialogue_N : N;
-fun diameter_N : N;
-fun diametrically_Adv : Adv;
-fun diamond_N : N;
-fun diana_PN : PN;
-fun diaper_N : N;
-fun diaphanous_A : A;
-fun diaphragm_N : N;
-fun diarchy_N : N;
-fun diarist_N : N;
-fun diarrhea_N : N;
-fun diarrhoea_N : N;
-fun diary_N : N;
-fun diaspora_N : N;
-fun diatonic_A : A;
-fun diatribe_N : N;
-fun dibber_N : N;
-fun dibble_N : N;
-fun dibble_V2 : V2;
-fun dice_N : N;
-fun dice_V : V;
-fun dice_V2 : V2;
-fun dice_box_N : N;
-fun dicey_A : A;
-fun dichotomy_N : N;
-fun dick_PN : PN;
-fun dickens_N : N;
-fun dicker_V : V;
-fun dickey_N : N;
-fun dicky_A : A;
-fun dicky_N : N;
-fun dicky_PN : PN;
-fun dicky_seat_N : N;
-fun dickybird_N : N;
-fun dictaphone_N : N;
-fun dictate_N : N;
-fun dictate_V : V;
-fun dictate_V2 : V2;
-fun dictation_N : N;
-fun dictator_N : N;
-fun dictatorial_A : A;
-fun dictatorially_Adv : Adv;
-fun dictatorship_N : N;
-fun diction_N : N;
-fun dictionary_N : N;
-fun dictum_N : N;
-fun didactic_A : A;
-fun didactically_Adv : Adv;
-fun didcot_PN : PN;
-fun diddle_V2 : V2;
-fun die_N : N;
-fun die_V : V;
-fun die_cast_A : A;
-fun die_hard_N : N;
-fun dieresis_N : N;
-fun diesel_N : N;
-fun diet_N : N;
-fun diet_V : V;
-fun diet_V2 : V2;
-fun dietary_A : A;
-fun dietetics_N : N;
-fun dietician_N : N;
-fun dietitian_N : N;
-fun differ_V : V;
-fun difference_N : N;
-fun different_A : A;
-fun differential_A : A;
-fun differential_N : N;
-fun differentially_Adv : Adv;
-fun differentiate_V2 : V2;
-fun differentiation_N : N;
-fun differently_Adv : Adv;
-fun difficult_A : A;
-fun difficulty_N : N;
-fun diffidence_N : N;
-fun diffident_A : A;
-fun diffidently_Adv : Adv;
-fun diffract_V2 : V2;
-fun diffraction_N : N;
-fun diffuse_A : A;
-fun diffuse_V : V;
-fun diffuse_V2 : V2;
-fun diffusely_Adv : Adv;
-fun diffuseness_N : N;
-fun diffusion_N : N;
-fun dig_N : N;
-fun dig_V : V;
-fun dig_V2 : V2;
-fun digest_N : N;
-fun digest_V : V;
-fun digest_V2 : V2;
-fun digestibility_N : N;
-fun digestible_A : A;
-fun digestion_N : N;
-fun digestive_A : A;
-fun digger_N : N;
-fun digging_N : N;
-fun digit_N : N;
-fun digital_A : A;
-fun digitally_Adv : Adv;
-fun dignified_A : A;
-fun dignify_V2 : V2;
-fun dignitary_N : N;
-fun dignity_N : N;
-fun digraph_N : N;
-fun digress_V : V;
-fun digression_N : N;
-fun dijon_PN : PN;
-fun dike_N : N;
-fun dike_V : V;
-fun dike_V2 : V2;
-fun dilapidated_A : A;
-fun dilapidation_N : N;
-fun dilate_V : V;
-fun dilate_V2 : V2;
-fun dilation_N : N;
-fun dilatory_A : A;
-fun dilemma_N : N;
-fun dilettante_N : N;
-fun diligence_N : N;
-fun diligent_A : A;
-fun diligently_Adv : Adv;
-fun dill_N : N;
-fun dilly_dally_V : V;
-fun dilute_A : A;
-fun dilute_V2 : V2;
-fun dilution_N : N;
-fun dim_A : A;
-fun dim_V : V;
-fun dim_V2 : V2;
-fun dime_N : N;
-fun dimension_N : N;
-fun dimensional_A : A;
-fun diminish_V : V;
-fun diminish_V2 : V2;
-fun diminuendo_N : N;
-fun diminution_N : N;
-fun diminutive_A : A;
-fun diminutive_N : N;
-fun dimity_N : N;
-fun dimly_Adv : Adv;
-fun dimness_N : N;
-fun dimple_N : N;
-fun dimple_V : V;
-fun dimple_V2 : V2;
-fun din_N : N;
-fun din_V : V;
-fun din_V2 : V2;
-fun dinar_N : N;
-fun dine_V : V;
-fun dine_V2 : V2;
-fun diner_N : N;
-fun ding_dong_Adv : Adv;
-fun ding_dong_N : N;
-fun dinghy_N : N;
-fun dingily_Adv : Adv;
-fun dinginess_N : N;
-fun dingle_N : N;
-fun dingle_PN : PN;
-fun dingy_A : A;
-fun dining_car_N : N;
-fun dining_room_N : N;
-fun dining_table_N : N;
-fun dinky_A : A;
-fun dinner_N : N;
-fun dinner_jacket_N : N;
-fun dinner_party_N : N;
-fun dinner_service_N : N;
-fun dinner_set_N : N;
-fun dinnington_PN : PN;
-fun dinosaur_N : N;
-fun dint_N : N;
-fun diocesan_A : A;
-fun diocesan_N : N;
-fun diocese_N : N;
-fun dioxide_N : N;
-fun dip_N : N;
-fun dip_V : V;
-fun dip_V2 : V2;
-fun dip_ed_N : N;
-fun diphtheria_N : N;
-fun diphthong_N : N;
-fun diploma_N : N;
-fun diplomacy_N : N;
-fun diplomat_N : N;
-fun diplomatic_A : A;
-fun diplomatically_Adv : Adv;
-fun diplomatist_N : N;
-fun dipper_N : N;
-fun dipsomania_N : N;
-fun dipsomaniac_N : N;
-fun dipstick_N : N;
-fun diptych_N : N;
-fun dir_N : N;
-fun dire_A : A;
-fun direct_A : A;
-fun direct_Adv : Adv;
-fun direct_V : V;
-fun direct_V2 : V2;
-fun direction_N : N;
-fun direction_finder_N : N;
-fun directional_A : A;
-fun directive_N : N;
-fun directly_Adv : Adv;
-fun directness_N : N;
-fun director_N : N;
-fun directorate_N : N;
-fun directorship_N : N;
-fun directory_N : N;
-fun direful_A : A;
-fun direfully_Adv : Adv;
-fun dirge_N : N;
-fun dirigible_N : N;
-fun dirk_N : N;
-fun dirndl_N : N;
-fun dirt_N : N;
-fun dirt_cheap_A : A;
-fun dirt_track_N : N;
-fun dirtily_Adv : Adv;
-fun dirty_A : A;
-fun dirty_V : V;
-fun dirty_V2 : V2;
-fun disability_N : N;
-fun disable_V2 : V2;
-fun disablement_N : N;
-fun disabuse_V2 : V2;
-fun disadvantage_N : N;
-fun disadvantageous_A : A;
-fun disadvantageously_Adv : Adv;
-fun disaffected_A : A;
-fun disaffection_N : N;
-fun disafforest_V2 : V2;
-fun disagree_V2 : V2;
-fun disagreeable_A : A;
-fun disagreeableness_N : N;
-fun disagreeably_Adv : Adv;
-fun disagreement_N : N;
-fun disallow_V2 : V2;
-fun disappear_V : V;
-fun disappearance_N : N;
-fun disappoint_V2 : V2;
-fun disappointed_A : A;
-fun disappointedly_Adv : Adv;
-fun disappointing_A : A;
-fun disappointingly_Adv : Adv;
-fun disappointment_N : N;
-fun disapprobation_N : N;
-fun disapproval_N : N;
-fun disapprove_V : V;
-fun disapprove_V2 : V2;
-fun disapprovingly_Adv : Adv;
-fun disarm_V : V;
-fun disarm_V2 : V2;
-fun disarmament_N : N;
-fun disarrange_V2 : V2;
-fun disarrangement_N : N;
-fun disarray_N : N;
-fun disarray_V2 : V2;
-fun disassociate_V2 : V2;
-fun disaster_N : N;
-fun disastrous_A : A;
-fun disastrously_Adv : Adv;
-fun disavow_V2 : V2;
-fun disavowal_N : N;
-fun disband_V : V;
-fun disband_V2 : V2;
-fun disbandment_N : N;
-fun disbelief_N : N;
-fun disbelieve_V : V;
-fun disbelieve_V2 : V2;
-fun disbelievingly_Adv : Adv;
-fun disbud_V2 : V2;
-fun disburden_V2 : V2;
-fun disburse_V : V;
-fun disburse_V2 : V2;
-fun disbursement_N : N;
-fun disc_N : N;
-fun discard_N : N;
-fun discard_V2 : V2;
-fun discern_V2 : V2;
-fun discernible_A : A;
-fun discerning_A : A;
-fun discernment_N : N;
-fun discharge_N : N;
-fun discharge_V : V;
-fun discharge_V2 : V2;
-fun disciple_N : N;
-fun disciplinarian_N : N;
-fun disciplinary_A : A;
-fun discipline_N : N;
-fun discipline_V2 : V2;
-fun disclaim_V2 : V2;
-fun disclaimer_N : N;
-fun disclose_V2 : V2;
-fun disclosure_N : N;
-fun disco_N : N;
-fun discolour_V : V;
-fun discolour_V2 : V2;
-fun discolouration_N : N;
-fun discomfit_V2 : V2;
-fun discomfiture_N : N;
-fun discomfort_N : N;
-fun discommode_V2 : V2;
-fun discompose_V2 : V2;
-fun discomposure_N : N;
-fun disconcert_V2 : V2;
-fun disconcertingly_Adv : Adv;
-fun disconnect_V2 : V2;
-fun disconnected_A : A;
-fun disconsolate_A : A;
-fun disconsolately_Adv : Adv;
-fun discontent_N : N;
-fun discontent_V2 : V2;
-fun discontentedly_Adv : Adv;
-fun discontinuance_N : N;
-fun discontinue_V : V;
-fun discontinue_V2 : V2;
-fun discontinuity_N : N;
-fun discontinuous_A : A;
-fun discord_N : N;
-fun discordance_N : N;
-fun discordant_A : A;
-fun discordantly_Adv : Adv;
-fun discotheque_N : N;
-fun discount_N : N;
-fun discount_V2 : V2;
-fun discountenance_V2 : V2;
-fun discourage_V2 : V2;
-fun discouragement_N : N;
-fun discourse_N : N;
-fun discourse_V : V;
-fun discourteous_A : A;
-fun discourteously_Adv : Adv;
-fun discourtesy_N : N;
-fun discover_V2 : V2;
-fun discoverer_N : N;
-fun discovery_N : N;
-fun discredit_N : N;
-fun discredit_V2 : V2;
-fun discreditable_A : A;
-fun discreditably_Adv : Adv;
-fun discreet_A : A;
-fun discreetly_Adv : Adv;
-fun discrepancy_N : N;
-fun discrete_A : A;
-fun discreteness_N : N;
-fun discretion_N : N;
-fun discretionary_A : A;
-fun discriminate_V : V;
-fun discriminate_V2 : V2;
-fun discriminating_A : A;
-fun discrimination_N : N;
-fun discriminatory_A : A;
-fun discursive_A : A;
-fun discursively_Adv : Adv;
-fun discursiveness_N : N;
-fun discus_N : N;
-fun discuss_V2 : V2;
-fun discussion_N : N;
-fun disdain_N : N;
-fun disdain_V2 : V2;
-fun disdainful_A : A;
-fun disdainfully_Adv : Adv;
-fun disease_N : N;
-fun diseased_A : A;
-fun disembark_V : V;
-fun disembark_V2 : V2;
-fun disembarkation_N : N;
-fun disembarrass_V2 : V2;
-fun disembarrassment_N : N;
-fun disembody_V2 : V2;
-fun disembowel_V2 : V2;
-fun disenchant_V2 : V2;
-fun disenchantment_N : N;
-fun disencumber_V2 : V2;
-fun disenfranchise_V2 : V2;
-fun disengage_V : V;
-fun disengage_V2 : V2;
-fun disengagement_N : N;
-fun disentangle_V : V;
-fun disentangle_V2 : V2;
-fun disentanglement_N : N;
-fun disequilibrium_N : N;
-fun disestablish_V2 : V2;
-fun disestablishment_N : N;
-fun disfavour_N : N;
-fun disfavour_V2 : V2;
-fun disfigure_V2 : V2;
-fun disfigurement_N : N;
-fun disforest_V2 : V2;
-fun disfranchise_V2 : V2;
-fun disfranchisement_N : N;
-fun disgorge_V2 : V2;
-fun disgrace_N : N;
-fun disgrace_V2 : V2;
-fun disgraceful_A : A;
-fun disgracefully_Adv : Adv;
-fun disgruntled_A : A;
-fun disguise_N : N;
-fun disguise_V2 : V2;
-fun disgust_N : N;
-fun disgust_V2 : V2;
-fun disgustedly_Adv : Adv;
-fun disgusting_A : A;
-fun disgustingly_Adv : Adv;
-fun dish_N : N;
-fun dish_V2 : V2;
-fun dishabille_N : N;
-fun disharmonious_A : A;
-fun disharmony_N : N;
-fun dishcloth_N : N;
-fun dishearten_V2 : V2;
-fun dishevelled_A : A;
-fun dishful_N : N;
-fun dishonest_A : A;
-fun dishonestly_Adv : Adv;
-fun dishonesty_N : N;
-fun dishonour_N : N;
-fun dishonour_V2 : V2;
-fun dishonourable_A : A;
-fun dishonourably_Adv : Adv;
-fun dishwasher_N : N;
-fun dishwater_N : N;
-fun dishy_A : A;
-fun disillusion_N : N;
-fun disillusion_V2 : V2;
-fun disillusionment_N : N;
-fun disincentive_N : N;
-fun disinclination_N : N;
-fun disincline_V2 : V2;
-fun disinfect_V2 : V2;
-fun disinfectant_A : A;
-fun disinfectant_N : N;
-fun disinfection_N : N;
-fun disinfest_V2 : V2;
-fun disinfestation_N : N;
-fun disinflation_N : N;
-fun disingenuous_A : A;
-fun disingenuously_Adv : Adv;
-fun disingenuousness_N : N;
-fun disinherit_V2 : V2;
-fun disinheritance_N : N;
-fun disintegrate_V : V;
-fun disintegrate_V2 : V2;
-fun disintegration_N : N;
-fun disinter_V2 : V2;
-fun disinterested_A : A;
-fun disinterestedly_Adv : Adv;
-fun disinterestedness_N : N;
-fun disinterment_N : N;
-fun disjoint_V2 : V2;
-fun disjointed_A : A;
-fun disjointedly_Adv : Adv;
-fun disjointedness_N : N;
-fun disjunctive_A : A;
-fun disk_N : N;
-fun dislike_N : N;
-fun dislike_V2 : V2;
-fun dislocate_V2 : V2;
-fun dislocation_N : N;
-fun dislodge_V2 : V2;
-fun dislodgement_N : N;
-fun disloyal_A : A;
-fun disloyally_Adv : Adv;
-fun disloyalty_N : N;
-fun dismal_A : A;
-fun dismally_Adv : Adv;
-fun dismantle_V2 : V2;
-fun dismantlement_N : N;
-fun dismay_N : N;
-fun dismay_V2 : V2;
-fun dismember_V2 : V2;
-fun dismemberment_N : N;
-fun dismiss_V2 : V2;
-fun dismissal_N : N;
-fun dismount_V : V;
-fun dismount_V2 : V2;
-fun dismounted_A : A;
-fun disobedience_N : N;
-fun disobedient_A : A;
-fun disobediently_Adv : Adv;
-fun disobey_V2 : V2;
-fun disoblige_V2 : V2;
-fun disorder_N : N;
-fun disorder_V2 : V2;
-fun disorderly_A : A;
-fun disorganization_N : N;
-fun disorganize_V2 : V2;
-fun disorient_V2 : V2;
-fun disorientate_V2 : V2;
-fun disown_V2 : V2;
-fun disparage_V2 : V2;
-fun disparagement_N : N;
-fun disparagingly_Adv : Adv;
-fun disparate_A : A;
-fun disparity_N : N;
-fun dispassionate_A : A;
-fun dispassionately_Adv : Adv;
-fun dispassionateness_N : N;
-fun dispatch_N : N;
-fun dispatch_V2 : V2;
-fun dispatch_box_N : N;
-fun dispatch_rider_N : N;
-fun dispel_V2 : V2;
-fun dispensable_A : A;
-fun dispensary_N : N;
-fun dispensation_N : N;
-fun dispense_V : V;
-fun dispense_V2 : V2;
-fun dispenser_N : N;
-fun dispersal_N : N;
-fun disperse_V : V;
-fun disperse_V2 : V2;
-fun dispersion_N : N;
-fun dispirit_V2 : V2;
-fun dispiritedly_Adv : Adv;
-fun displace_V2 : V2;
-fun displacement_N : N;
-fun display_N : N;
-fun display_V2 : V2;
-fun displease_V2 : V2;
-fun displeasing_A : A;
-fun displeasingly_Adv : Adv;
-fun displeasure_N : N;
-fun disport_V2 : V2;
-fun disposable_A : A;
-fun disposal_N : N;
-fun dispose_V : V;
-fun dispose_V2 : V2;
-fun disposition_N : N;
-fun dispossess_V2 : V2;
-fun dispossession_N : N;
-fun disproof_N : N;
-fun disproportion_N : N;
-fun disproportionate_A : A;
-fun disproportionately_Adv : Adv;
-fun disprove_V2 : V2;
-fun disputable_A : A;
-fun disputant_N : N;
-fun disputation_N : N;
-fun disputatious_A : A;
-fun disputatiously_Adv : Adv;
-fun dispute_N : N;
-fun dispute_V : V;
-fun dispute_V2 : V2;
-fun disqualification_N : N;
-fun disqualify_V2 : V2;
-fun disquiet_N : N;
-fun disquiet_V2 : V2;
-fun disquieting_A : A;
-fun disquietingly_Adv : Adv;
-fun disquietude_N : N;
-fun disquisition_N : N;
-fun disregard_N : N;
-fun disregard_V2 : V2;
-fun disrepair_N : N;
-fun disreputable_A : A;
-fun disreputably_Adv : Adv;
-fun disrepute_N : N;
-fun disrespect_N : N;
-fun disrespectful_A : A;
-fun disrespectfully_Adv : Adv;
-fun disrobe_V : V;
-fun disrobe_V2 : V2;
-fun disrupt_V2 : V2;
-fun disruption_N : N;
-fun disruptive_A : A;
-fun dissatisfaction_N : N;
-fun dissatisfy_V2 : V2;
-fun dissect_V2 : V2;
-fun dissection_N : N;
-fun dissemble_V : V;
-fun dissemble_V2 : V2;
-fun dissembler_N : N;
-fun disseminate_V2 : V2;
-fun dissemination_N : N;
-fun dissension_N : N;
-fun dissent_N : N;
-fun dissent_V : V;
-fun dissenter_N : N;
-fun dissertation_N : N;
-fun disservice_N : N;
-fun dissever_V2 : V2;
-fun dissidence_N : N;
-fun dissident_A : A;
-fun dissident_N : N;
-fun dissimilar_A : A;
-fun dissimilarity_N : N;
-fun dissimilitude_N : N;
-fun dissimulate_V : V;
-fun dissimulate_V2 : V2;
-fun dissimulation_N : N;
-fun dissipate_V : V;
-fun dissipate_V2 : V2;
-fun dissipated_A : A;
-fun dissipation_N : N;
-fun dissociate_V2 : V2;
-fun dissociation_N : N;
-fun dissolubility_N : N;
-fun dissoluble_A : A;
-fun dissolute_A : A;
-fun dissolutely_Adv : Adv;
-fun dissolution_N : N;
-fun dissolve_V : V;
-fun dissolve_V2 : V2;
-fun dissonance_N : N;
-fun dissonant_A : A;
-fun dissuade_V2 : V2;
-fun dissuasion_N : N;
-fun dissyllable_N : N;
-fun distaff_N : N;
-fun distance_N : N;
-fun distance_V2 : V2;
-fun distant_A : A;
-fun distantly_Adv : Adv;
-fun distaste_N : N;
-fun distasteful_A : A;
-fun distastefully_Adv : Adv;
-fun distastefulness_N : N;
-fun distemper_N : N;
-fun distemper_V2 : V2;
-fun distend_V : V;
-fun distend_V2 : V2;
-fun distension_N : N;
-fun distil_V : V;
-fun distil_V2 : V2;
-fun distillation_N : N;
-fun distiller_N : N;
-fun distillery_N : N;
-fun distinct_A : A;
-fun distinction_N : N;
-fun distinctive_A : A;
-fun distinctively_Adv : Adv;
-fun distinctiveness_N : N;
-fun distinctly_Adv : Adv;
-fun distinctness_N : N;
-fun distinguish_V : V;
-fun distinguish_V2 : V2;
-fun distinguishable_A : A;
-fun distinguished_A : A;
-fun distort_V2 : V2;
-fun distortion_N : N;
-fun distract_V2 : V2;
-fun distracted_A : A;
-fun distractedly_Adv : Adv;
-fun distraction_N : N;
-fun distrain_V : V;
-fun distraint_N : N;
-fun distrait_A : A;
-fun distraught_A : A;
-fun distress_N : N;
-fun distress_V2 : V2;
-fun distressful_A : A;
-fun distressfully_Adv : Adv;
-fun distressing_A : A;
-fun distressingly_Adv : Adv;
-fun distribute_V2 : V2;
-fun distribution_N : N;
-fun distributive_A : A;
-fun distributively_Adv : Adv;
-fun distributor_N : N;
-fun district_N : N;
-fun distrust_N : N;
-fun distrust_V2 : V2;
-fun distrustful_A : A;
-fun distrustfully_Adv : Adv;
-fun distrustfulness_N : N;
-fun disturb_V2 : V2;
-fun disturbance_N : N;
-fun disturbingly_Adv : Adv;
-fun disunion_N : N;
-fun disunite_V : V;
-fun disunite_V2 : V2;
-fun disunity_N : N;
-fun disuse_N : N;
-fun disused_A : A;
-fun disyllabic_A : A;
-fun disyllable_N : N;
-fun ditch_N : N;
-fun ditch_V : V;
-fun ditch_V2 : V2;
-fun dither_N : N;
-fun dither_V : V;
-fun ditto_N : N;
-fun ditty_N : N;
-fun diurnal_A : A;
-fun divagate_V : V;
-fun divagation_N : N;
-fun divan_N : N;
-fun divan_bed_N : N;
-fun dive_N : N;
-fun dive_V : V;
-fun dive_bomb_V : V;
-fun dive_bomb_V2 : V2;
-fun dive_bomber_N : N;
-fun diver_N : N;
-fun diverge_V : V;
-fun divergence_N : N;
-fun divergency_N : N;
-fun divergent_A : A;
-fun divers_A : A;
-fun diverse_A : A;
-fun diversely_Adv : Adv;
-fun diversification_N : N;
-fun diversify_V2 : V2;
-fun diversion_N : N;
-fun diversionary_A : A;
-fun diversionist_N : N;
-fun diversity_N : N;
-fun divert_V2 : V2;
-fun diverting_A : A;
-fun divertingly_Adv : Adv;
-fun dives_PN : PN;
-fun divest_V2 : V2;
-fun divide_N : N;
-fun divide_V : V;
-fun divide_V2 : V2;
-fun dividend_N : N;
-fun dividend_warrant_N : N;
-fun divination_N : N;
-fun divine_A : A;
-fun divine_N : N;
-fun divine_V : V;
-fun divine_V2 : V2;
-fun divinely_Adv : Adv;
-fun diviner_N : N;
-fun diving_bell_N : N;
-fun diving_board_N : N;
-fun diving_dress_N : N;
-fun diving_suit_N : N;
-fun divinity_N : N;
-fun divisible_A : A;
-fun division_N : N;
-fun divisional_A : A;
-fun divisor_N : N;
-fun divorce_N : N;
-fun divorce_V2 : V2;
-fun divorcee_N : N;
-fun divot_N : N;
-fun divulge_V2 : V2;
-fun divulgence_N : N;
-fun divvy_N : N;
-fun dixie_N : N;
-fun diy_N : N;
-fun dizzily_Adv : Adv;
-fun dizziness_N : N;
-fun dizzy_A : A;
-fun dizzy_V2 : V2;
-fun dj_N : N;
-fun djibouti_PN : PN;
-fun djiboutian_A : A;
-fun djiboutian_N : N;
-fun djinn_N : N;
-fun djs_N : N;
-fun dlitt_N : N;
-fun dm_N : N;
-fun dna_N : N;
-fun dnepropetrovsk_PN : PN;
-fun do_N : N;
-fun do_V : V;
-fun do_V2 : V2;
-fun do_gooder_N : N;
-fun dobbin_N : N;
-fun docile_A : A;
-fun docility_N : N;
-fun dock_N : N;
-fun dock_V : V;
-fun dock_V2 : V2;
-fun docker_N : N;
-fun docket_N : N;
-fun docket_V2 : V2;
-fun dockyard_N : N;
-fun doctor_N : N;
-fun doctor_V2 : V2;
-fun doctorate_N : N;
-fun doctrinaire_A : A;
-fun doctrinaire_N : N;
-fun doctrinal_A : A;
-fun doctrine_N : N;
-fun document_N : N;
-fun document_V2 : V2;
-fun documentary_A : A;
-fun documentation_N : N;
-fun dodder_V : V;
-fun dodderer_N : N;
-fun doddering_A : A;
-fun doddery_A : A;
-fun dodge_N : N;
-fun dodge_V : V;
-fun dodge_V2 : V2;
-fun dodgem_N : N;
-fun dodger_N : N;
-fun dodgy_A : A;
-fun dodo_N : N;
-fun doe_N : N;
-fun doer_N : N;
-fun doff_V2 : V2;
-fun dog's_tooth_N : N;
-fun dog_N : N;
-fun dog_V2 : V2;
-fun dog_biscuit_N : N;
-fun dog_cart_N : N;
-fun dog_collar_N : N;
-fun dog_eared_A : A;
-fun dog_like_A : A;
-fun doge_N : N;
-fun dogfish_N : N;
-fun dogged_A : A;
-fun doggedly_Adv : Adv;
-fun doggedness_N : N;
-fun doggerel_N : N;
-fun doggie_N : N;
-fun doggo_Adv : Adv;
-fun doggy_N : N;
-fun doghouse_N : N;
-fun dogma_N : N;
-fun dogmatic_A : A;
-fun dogmatically_Adv : Adv;
-fun dogmatism_N : N;
-fun dogmatize_V : V;
-fun dogmatize_V2 : V2;
-fun dogsbody_N : N;
-fun dogtooth_N : N;
-fun dogtrot_N : N;
-fun dogwatch_N : N;
-fun dogwood_N : N;
-fun doh_N : N;
-fun doily_N : N;
-fun dole_N : N;
-fun dole_V2 : V2;
-fun doleful_A : A;
-fun dolefully_Adv : Adv;
-fun doll_N : N;
-fun doll_V : V;
-fun doll_V2 : V2;
-fun dollar_N : N;
-fun dollop_N : N;
-fun dolly_N : N;
-fun dolly_PN : PN;
-fun dolmen_N : N;
-fun dolour_N : N;
-fun dolourous_A : A;
-fun dolphin_N : N;
-fun dolt_N : N;
-fun doltish_A : A;
-fun domain_N : N;
-fun dome_N : N;
-fun domed_A : A;
-fun domesday_PN : PN;
-fun domestic_A : A;
-fun domestically_Adv : Adv;
-fun domesticate_V2 : V2;
-fun domestication_N : N;
-fun domesticity_N : N;
-fun domicile_N : N;
-fun domiciliary_A : A;
-fun dominance_N : N;
-fun dominant_A : A;
-fun dominantly_Adv : Adv;
-fun dominate_V : V;
-fun dominate_V2 : V2;
-fun domination_N : N;
-fun domineer_V : V;
-fun domineering_A : A;
-fun domineeringly_Adv : Adv;
-fun dominic_PN : PN;
-fun dominica_PN : PN;
-fun dominican_A : A;
-fun dominican_N : N;
-fun dominie_N : N;
-fun dominion_N : N;
-fun domino_N : N;
-fun don't_know_N : N;
-fun don_N : N;
-fun don_PN : PN;
-fun don_V2 : V2;
-fun donald_PN : PN;
-fun donate_V2 : V2;
-fun donation_N : N;
-fun doncaster_PN : PN;
-fun donegal_PN : PN;
-fun donetsk_PN : PN;
-fun donjon_N : N;
-fun donkey_N : N;
-fun donkey_jacket_N : N;
-fun donkey_work_N : N;
-fun donnish_A : A;
-fun donor_N : N;
-fun doodle_V : V;
-fun doodlebug_N : N;
-fun doom_N : N;
-fun doom_V2 : V2;
-fun doomsday_PN : PN;
-fun door_N : N;
-fun door_to_door_A : A;
-fun doorbell_N : N;
-fun doorcase_N : N;
-fun doorframe_N : N;
-fun doorhandle_N : N;
-fun doorkeeper_N : N;
-fun doorknob_N : N;
-fun doorknocker_N : N;
-fun doorman_N : N;
-fun doormat_N : N;
-fun doornail_N : N;
-fun doorplate_N : N;
-fun doorpost_N : N;
-fun doorstep_N : N;
-fun doorstopper_N : N;
-fun doorway_N : N;
-fun dope_N : N;
-fun dope_V2 : V2;
-fun dopey_A : A;
-fun dora_PN : PN;
-fun dorchester_PN : PN;
-fun dordrecht_PN : PN;
-fun doreen_PN : PN;
-fun doric_A : A;
-fun doris_PN : PN;
-fun dorking_PN : PN;
-fun dormant_A : A;
-fun dormer_N : N;
-fun dormer_window_N : N;
-fun dormitory_N : N;
-fun dormouse_N : N;
-fun dorothy_PN : PN;
-fun dorsal_A : A;
-fun dorset_PN : PN;
-fun dortmund_PN : PN;
-fun dory_N : N;
-fun dosage_N : N;
-fun dose_N : N;
-fun dose_V2 : V2;
-fun doss_V : V;
-fun doss_house_N : N;
-fun dosser_N : N;
-fun dossier_N : N;
-fun dot_N : N;
-fun dot_V2 : V2;
-fun dotage_N : N;
-fun dotard_N : N;
-fun dote_V : V;
-fun dottle_N : N;
-fun dotty_A : A;
-fun douai_PN : PN;
-fun double_A : A;
-fun double_Adv : Adv;
-fun double_N : N;
-fun double_V : V;
-fun double_V2 : V2;
-fun double_barrelled_A : A;
-fun double_bass_N : N;
-fun double_bedded_A : A;
-fun double_breasted_A : A;
-fun double_check_V2 : V2;
-fun double_cross_N : N;
-fun double_cross_V2 : V2;
-fun double_dealer_N : N;
-fun double_dealing_A : A;
-fun double_dealing_N : N;
-fun double_decker_N : N;
-fun double_dutch_N : N;
-fun double_dyed_A : A;
-fun double_edged_A : A;
-fun double_entry_N : N;
-fun double_faced_A : A;
-fun double_first_N : N;
-fun double_jointed_A : A;
-fun double_park_V : V;
-fun double_park_V2 : V2;
-fun double_quick_A : A;
-fun double_quick_Adv : Adv;
-fun double_spacing_N : N;
-fun double_talk_N : N;
-fun double_think_N : N;
-fun doublet_N : N;
-fun doubloon_N : N;
-fun doubly_Adv : Adv;
-fun doubt_N : N;
-fun doubt_V2 : V2;
-fun doubtful_A : A;
-fun doubtfully_Adv : Adv;
-fun doubtless_Adv : Adv;
-fun douche_N : N;
-fun doug_PN : PN;
-fun dough_N : N;
-fun doughnut_N : N;
-fun doughty_A : A;
-fun doughy_A : A;
-fun douglas_PN : PN;
-fun dour_A : A;
-fun dourly_Adv : Adv;
-fun douse_V2 : V2;
-fun dove_N : N;
-fun dovecote_N : N;
-fun dover_PN : PN;
-fun dovetail_N : N;
-fun dovetail_V : V;
-fun dovetail_V2 : V2;
-fun dowager_N : N;
-fun dowdily_Adv : Adv;
-fun dowdiness_N : N;
-fun dowdy_A : A;
-fun dowel_N : N;
-fun dower_N : N;
-fun dower_V2 : V2;
-fun down_Adv : Adv;
-fun down_N : N;
-fun down_PN : PN;
-fun down_V2 : V2;
-fun down_and_out_N : N;
-fun down_market_A : A;
-fun down_to_earth_A : A;
-fun downbeat_N : N;
-fun downcast_A : A;
-fun downfall_N : N;
-fun downgrade_V2 : V2;
-fun downhearted_A : A;
-fun downhill_Adv : Adv;
-fun downing_street_PN : PN;
-fun downpour_N : N;
-fun downright_A : A;
-fun downright_Adv : Adv;
-fun downrightness_N : N;
-fun downstair_A : A;
-fun downstairs_A : A;
-fun downstairs_Adv : Adv;
-fun downstream_A : A;
-fun downstream_Adv : Adv;
-fun downtown_Adv : Adv;
-fun downtrodden_A : A;
-fun downward_A : A;
-fun downward_Adv : Adv;
-fun downwards_Adv : Adv;
-fun downy_A : A;
-fun dowry_N : N;
-fun dowse_V2 : V2;
-fun dowser_N : N;
-fun dowsing_N : N;
-fun doxology_N : N;
-fun doyen_N : N;
-fun doyley_N : N;
-fun doyly_N : N;
-fun doz_N : N;
-fun doze_N : N;
-fun doze_V : V;
-fun dozen_N : N;
-fun dphil_N : N;
-fun dr_PN : PN;
-fun drab_A : A;
-fun drably_Adv : Adv;
-fun drabness_N : N;
-fun drachm_N : N;
-fun drachma_N : N;
-fun draconian_A : A;
-fun draft_N : N;
-fun draft_V2 : V2;
-fun draftee_N : N;
-fun drafting_N : N;
-fun draftsman_N : N;
-fun drag_N : N;
-fun drag_V : V;
-fun drag_V2 : V2;
-fun draggled_A : A;
-fun dragnet_N : N;
-fun dragoman_N : N;
-fun dragon_N : N;
-fun dragonfly_N : N;
-fun dragoon_N : N;
-fun dragoon_V2 : V2;
-fun drain_N : N;
-fun drain_V : V;
-fun drain_V2 : V2;
-fun drainage_N : N;
-fun drainage_basin_N : N;
-fun draining_board_N : N;
-fun drainpipe_N : N;
-fun drake_N : N;
-fun dram_N : N;
-fun drama_N : N;
-fun dramatic_A : A;
-fun dramatically_Adv : Adv;
-fun dramatics_N : N;
-fun dramatist_N : N;
-fun dramatization_N : N;
-fun dramatize_V2 : V2;
-fun drape_N : N;
-fun drape_V2 : V2;
-fun draper_N : N;
-fun drapery_N : N;
-fun drastic_A : A;
-fun drastically_Adv : Adv;
-fun drat_V2 : V2;
-fun draught_N : N;
-fun draught_V2 : V2;
-fun draught_horse_N : N;
-fun draughts_N : N;
-fun draughtsman_N : N;
-fun draughty_A : A;
-fun draw_N : N;
-fun draw_V : V;
-fun draw_V2 : V2;
-fun drawback_N : N;
-fun drawbridge_N : N;
-fun drawer_N : N;
-fun drawing_N : N;
-fun drawing_board_N : N;
-fun drawing_pin_N : N;
-fun drawing_room_N : N;
-fun drawl_N : N;
-fun drawl_V : V;
-fun drawl_V2 : V2;
-fun dray_N : N;
-fun drayton_PN : PN;
-fun dread_N : N;
-fun dread_V : V;
-fun dread_V2 : V2;
-fun dreaded_A : A;
-fun dreadful_A : A;
-fun dreadfully_Adv : Adv;
-fun dreadfulness_N : N;
-fun dreadnought_N : N;
-fun dream_N : N;
-fun dream_V : V;
-fun dream_V2 : V2;
-fun dreamer_N : N;
-fun dreamily_Adv : Adv;
-fun dreamland_N : N;
-fun dreamless_A : A;
-fun dreamlike_A : A;
-fun dreamworld_N : N;
-fun dreamy_A : A;
-fun drear_A : A;
-fun drearily_Adv : Adv;
-fun dreariness_N : N;
-fun dreary_A : A;
-fun dredge_N : N;
-fun dredge_V : V;
-fun dredge_V2 : V2;
-fun dredger_N : N;
-fun drench_V2 : V2;
-fun drenching_N : N;
-fun dresden_PN : PN;
-fun dress_N : N;
-fun dress_V : V;
-fun dress_V2 : V2;
-fun dress_hanger_N : N;
-fun dressage_N : N;
-fun dresser_N : N;
-fun dressing_N : N;
-fun dressing_case_N : N;
-fun dressing_down_N : N;
-fun dressing_gown_N : N;
-fun dressing_table_N : N;
-fun dressmaker_N : N;
-fun dressmaking_N : N;
-fun dressy_A : A;
-fun dribble_V : V;
-fun dribble_V2 : V2;
-fun dribbler_N : N;
-fun driblet_N : N;
-fun drier_N : N;
-fun driffield_PN : PN;
-fun drift_N : N;
-fun drift_V : V;
-fun drift_V2 : V2;
-fun drift_ice_N : N;
-fun drift_net_N : N;
-fun drift_wood_N : N;
-fun driftage_N : N;
-fun drifter_N : N;
-fun drill_N : N;
-fun drill_V : V;
-fun drill_V2 : V2;
-fun drily_Adv : Adv;
-fun drink_N : N;
-fun drink_V : V;
-fun drink_V2 : V2;
-fun drinkable_A : A;
-fun drinker_N : N;
-fun drinking_N : N;
-fun drinking_bout_N : N;
-fun drinking_fountain_N : N;
-fun drinking_song_N : N;
-fun drinking_water_N : N;
-fun drip_N : N;
-fun drip_V : V;
-fun drip_V2 : V2;
-fun drip_dry_A : A;
-fun drip_dry_V2 : V2;
-fun dripping_N : N;
-fun dripping_pan_N : N;
-fun drive_N : N;
-fun drive_V : V;
-fun drive_V2 : V2;
-fun drive_in_N : N;
-fun drivel_N : N;
-fun drivel_V : V;
-fun driveller_N : N;
-fun driver_N : N;
-fun driveway_N : N;
-fun driving_belt_N : N;
-fun driving_wheel_N : N;
-fun drizzle_N : N;
-fun drizzle_V : V;
-fun drizzly_A : A;
-fun drogheda_PN : PN;
-fun drogue_N : N;
-fun droitwich_PN : PN;
-fun droll_A : A;
-fun drollery_N : N;
-fun dromedary_N : N;
-fun drone_N : N;
-fun drone_V : V;
-fun drone_V2 : V2;
-fun dronfield_PN : PN;
-fun drool_V : V;
-fun droop_N : N;
-fun droop_V : V;
-fun droop_V2 : V2;
-fun droopingly_Adv : Adv;
-fun drop_N : N;
-fun drop_V : V;
-fun drop_V2 : V2;
-fun drop_curtain_N : N;
-fun drop_kick_N : N;
-fun dropout_N : N;
-fun dropping_zone_N : N;
-fun dropsical_A : A;
-fun dropsy_N : N;
-fun droshky_N : N;
-fun dross_N : N;
-fun drought_N : N;
-fun drove_N : N;
-fun drover_N : N;
-fun drown_V : V;
-fun drown_V2 : V2;
-fun drowse_N : N;
-fun drowse_V : V;
-fun drowse_V2 : V2;
-fun drowsily_Adv : Adv;
-fun drowsiness_N : N;
-fun drowsy_A : A;
-fun drub_V2 : V2;
-fun drubbing_N : N;
-fun drudge_N : N;
-fun drudge_V : V;
-fun drudgery_N : N;
-fun drug_N : N;
-fun drug_V2 : V2;
-fun drugget_N : N;
-fun druggist_N : N;
-fun drugstore_N : N;
-fun druid_N : N;
-fun drum_N : N;
-fun drum_V : V;
-fun drum_V2 : V2;
-fun drum_major_N : N;
-fun drum_majorette_N : N;
-fun drumfire_N : N;
-fun drumhead_A : A;
-fun drummer_N : N;
-fun drumstick_N : N;
-fun drunk_A : A;
-fun drunk_N : N;
-fun drunkard_N : N;
-fun drunken_A : A;
-fun drunkenly_Adv : Adv;
-fun drunkenness_N : N;
-fun drupe_N : N;
-fun dry_A : A;
-fun dry_V : V;
-fun dry_V2 : V2;
-fun dry_clean_V2 : V2;
-fun dry_cleaner_N : N;
-fun dry_cleaning_N : N;
-fun dry_shod_A : A;
-fun dry_walling_N : N;
-fun dryad_N : N;
-fun dryer_N : N;
-fun dryness_N : N;
-fun dsc_N : N;
-fun dss_N : N;
-fun dti_N : N;
-fun dts_N : N;
-fun dual_A : A;
-fun dub_V2 : V2;
-fun dubbin_N : N;
-fun dubiety_N : N;
-fun dubious_A : A;
-fun dubiously_Adv : Adv;
-fun dubiousness_N : N;
-fun dublin_PN : PN;
-fun dubliner_N : N;
-fun ducal_A : A;
-fun ducat_N : N;
-fun duce_N : N;
-fun duchess_N : N;
-fun duchy_N : N;
-fun duck_N : N;
-fun duck_V : V;
-fun duck_V2 : V2;
-fun duckbilled_A : A;
-fun ducking_N : N;
-fun ducking_stool_N : N;
-fun duckling_N : N;
-fun duckweed_N : N;
-fun ducky_N : N;
-fun duct_N : N;
-fun ductile_A : A;
-fun ductility_N : N;
-fun dud_A : A;
-fun dud_N : N;
-fun dude_N : N;
-fun dudgeon_N : N;
-fun dudley_PN : PN;
-fun due_A : A;
-fun due_Adv : Adv;
-fun due_N : N;
-fun duel_N : N;
-fun duel_V : V;
-fun duelist_N : N;
-fun duellist_N : N;
-fun duenna_N : N;
-fun duet_N : N;
-fun duffel_N : N;
-fun duffer_N : N;
-fun duffle_N : N;
-fun dug_N : N;
-fun dugong_N : N;
-fun dugout_N : N;
-fun duisburg_PN : PN;
-fun duke_N : N;
-fun dukedom_N : N;
-fun dukinfield_PN : PN;
-fun dulcet_A : A;
-fun dulcimer_N : N;
-fun dull_A : A;
-fun dull_V : V;
-fun dull_V2 : V2;
-fun dullard_N : N;
-fun dullness_N : N;
-fun dully_Adv : Adv;
-fun duly_Adv : Adv;
-fun dumb_A : A;
-fun dumbarton_PN : PN;
-fun dumbbell_N : N;
-fun dumbfound_V2 : V2;
-fun dumbly_Adv : Adv;
-fun dumbness_N : N;
-fun dumbwaiter_N : N;
-fun dumdum_N : N;
-fun dumfries_PN : PN;
-fun dummy_N : N;
-fun dump_N : N;
-fun dump_V2 : V2;
-fun dumper_N : N;
-fun dumpling_N : N;
-fun dumpy_A : A;
-fun dun_A : A;
-fun dun_N : N;
-fun dun_V2 : V2;
-fun dun_laoghaire_PN : PN;
-fun duncan_PN : PN;
-fun dunce_N : N;
-fun dundalk_PN : PN;
-fun dundee_PN : PN;
-fun dunderhead_N : N;
-fun dune_N : N;
-fun dunfermline_PN : PN;
-fun dung_N : N;
-fun dungeon_N : N;
-fun dunghill_N : N;
-fun dunk_V2 : V2;
-fun dunkirk_PN : PN;
-fun dunoon_PN : PN;
-fun dunstable_PN : PN;
-fun duodecimal_A : A;
-fun duodenal_A : A;
-fun duodenum_N : N;
-fun duologue_N : N;
-fun dupe_N : N;
-fun dupe_V2 : V2;
-fun dupl_PN : PN;
-fun duplex_A : A;
-fun duplicate_A : A;
-fun duplicate_N : N;
-fun duplicate_V2 : V2;
-fun duplication_N : N;
-fun duplicator_N : N;
-fun duplicity_N : N;
-fun durability_N : N;
-fun durable_A : A;
-fun durable_N : N;
-fun durance_N : N;
-fun duration_N : N;
-fun durban_PN : PN;
-fun durbar_N : N;
-fun duress_N : N;
-fun durham_PN : PN;
-fun durrington_PN : PN;
-fun dursley_PN : PN;
-fun dusk_N : N;
-fun dusky_A : A;
-fun dusseldorf_PN : PN;
-fun dust_N : N;
-fun dust_V2 : V2;
-fun dust_bowl_N : N;
-fun dust_coat_N : N;
-fun dust_jacket_N : N;
-fun dust_sheet_N : N;
-fun dust_up_N : N;
-fun dust_wrapper_N : N;
-fun dustbin_N : N;
-fun dustcart_N : N;
-fun duster_N : N;
-fun dustman_N : N;
-fun dustpan_N : N;
-fun dusty_A : A;
-fun dutch_A : A;
-fun dutch_N : N;
-fun dutchman_N : N;
-fun duteous_A : A;
-fun dutiable_A : A;
-fun dutiful_A : A;
-fun dutifully_Adv : Adv;
-fun duty_N : N;
-fun duty_free_A : A;
-fun duvet_N : N;
-fun dwarf_N : N;
-fun dwarf_V2 : V2;
-fun dwarfish_A : A;
-fun dwell_V : V;
-fun dweller_N : N;
-fun dwelling_N : N;
-fun dwelling_house_N : N;
-fun dwindle_V : V;
-fun dyarchy_N : N;
-fun dye_N : N;
-fun dye_V : V;
-fun dye_V2 : V2;
-fun dye_works_N : N;
-fun dyed_in_the_wool_A : A;
-fun dyer_N : N;
-fun dyestuff_N : N;
-fun dyfed_PN : PN;
-fun dyke_N : N;
-fun dyke_V : V;
-fun dyke_V2 : V2;
-fun dynamic_A : A;
-fun dynamic_N : N;
-fun dynamically_Adv : Adv;
-fun dynamism_N : N;
-fun dynamite_N : N;
-fun dynamite_V2 : V2;
-fun dynamo_N : N;
-fun dynast_N : N;
-fun dynastic_A : A;
-fun dynasty_N : N;
-fun dyne_N : N;
-fun dysentery_N : N;
-fun dyslexia_N : N;
-fun dyslexic_A : A;
-fun dyspepsia_N : N;
-fun dyspeptic_A : A;
-fun dyspeptic_N : N;
-fun debris_2_N : N;
-fun debut_2_N : N;
-fun debutante_2_N : N;
-fun debacle_N : N;
-fun decollete_A : A;
-fun decor_N : N;
-fun demarche_N : N;
-fun demode_A : A;
-fun denouement_N : N;
-fun deshabille_N : N;
-fun detente_N : N;
-fun e'en_Adv : Adv;
-fun e'er_Adv : Adv;
-fun each_A : A;
-fun eager_A : A;
-fun eagerly_Adv : Adv;
-fun eagerness_N : N;
-fun eagle_N : N;
-fun eagle_eyed_A : A;
-fun eaglescliffe_PN : PN;
-fun eaglet_N : N;
-fun ealing_PN : PN;
-fun ear_N : N;
-fun ear_trumpet_N : N;
-fun earache_N : N;
-fun eardrop_N : N;
-fun eardrum_N : N;
-fun earful_N : N;
-fun earl_N : N;
-fun earl_shilton_PN : PN;
-fun earldom_N : N;
-fun early_A : A;
-fun early_Adv : Adv;
-fun early_warning_A : A;
-fun earmark_N : N;
-fun earmark_V2 : V2;
-fun earn_V2 : V2;
-fun earnest_A : A;
-fun earnest_N : N;
-fun earnest_money_N : N;
-fun earnestly_Adv : Adv;
-fun earnestness_N : N;
-fun earphone_N : N;
-fun earpiece_N : N;
-fun earring_N : N;
-fun earshot_N : N;
-fun earth_N : N;
-fun earth_V2 : V2;
-fun earth_closet_N : N;
-fun earthen_A : A;
-fun earthenware_N : N;
-fun earthly_A : A;
-fun earthnut_N : N;
-fun earthquake_N : N;
-fun earthwork_N : N;
-fun earthworm_N : N;
-fun earthy_A : A;
-fun earwax_N : N;
-fun earwig_N : N;
-fun ease_N : N;
-fun ease_V : V;
-fun ease_V2 : V2;
-fun easel_N : N;
-fun easily_Adv : Adv;
-fun easington_PN : PN;
-fun east_Adv : Adv;
-fun east_N : N;
-fun east_dereham_PN : PN;
-fun east_grinstead_PN : PN;
-fun east_kilbride_PN : PN;
-fun east_retford_PN : PN;
-fun eastbourne_PN : PN;
-fun easter_N : N;
-fun easter_PN : PN;
-fun easterly_A : A;
-fun easterly_Adv : Adv;
-fun eastern_A : A;
-fun easternmost_A : A;
-fun eastleigh_PN : PN;
-fun eastward_A : A;
-fun eastward_Adv : Adv;
-fun eastwards_Adv : Adv;
-fun easy_A : A;
-fun easy_Adv : Adv;
-fun easygoing_A : A;
-fun eat_V : V;
-fun eat_V2 : V2;
-fun eatable_A : A;
-fun eatable_N : N;
-fun eater_N : N;
-fun eating_apple_N : N;
-fun eating_house_N : N;
-fun eau_de_cologne_N : N;
-fun eau_de_vie_N : N;
-fun eavesdrop_V : V;
-fun eavesdropper_N : N;
-fun ebb_N : N;
-fun ebb_V : V;
-fun ebbtide_N : N;
-fun ebbw_vale_PN : PN;
-fun ebonite_N : N;
-fun ebony_A : A;
-fun ebony_N : N;
-fun ebullience_N : N;
-fun ebullient_A : A;
-fun ebulliently_Adv : Adv;
-fun ec_N : N;
-fun eccentric_A : A;
-fun eccentric_N : N;
-fun eccentricity_N : N;
-fun eccles_PN : PN;
-fun ecclesiastic_N : N;
-fun ecclesiastical_A : A;
-fun ecclesiastically_Adv : Adv;
-fun echelon_N : N;
-fun echo_N : N;
-fun echo_V : V;
-fun echo_V2 : V2;
-fun echo_sounder_N : N;
-fun echo_sounding_N : N;
-fun eclectic_A : A;
-fun eclecticism_N : N;
-fun eclipse_N : N;
-fun eclipse_V2 : V2;
-fun ecliptic_N : N;
-fun ecological_A : A;
-fun ecologically_Adv : Adv;
-fun ecologist_N : N;
-fun ecology_N : N;
-fun economic_A : A;
-fun economical_A : A;
-fun economically_Adv : Adv;
-fun economics_N : N;
-fun economist_N : N;
-fun economize_V : V;
-fun economize_V2 : V2;
-fun economy_N : N;
-fun ecosystem_N : N;
-fun ecstasy_N : N;
-fun ecstatic_A : A;
-fun ecstatically_Adv : Adv;
-fun ectoplasm_N : N;
-fun ecuador_PN : PN;
-fun ecuadorian_A : A;
-fun ecuadorian_N : N;
-fun ecumenical_A : A;
-fun eczema_N : N;
-fun ed_PN : PN;
-fun eddie_PN : PN;
-fun eddy_N : N;
-fun eddy_PN : PN;
-fun eddy_V : V;
-fun edelweiss_N : N;
-fun eden_PN : PN;
-fun edenbridge_PN : PN;
-fun edgar_PN : PN;
-fun edge_N : N;
-fun edge_V : V;
-fun edge_V2 : V2;
-fun edgeways_Adv : Adv;
-fun edgewise_Adv : Adv;
-fun edging_N : N;
-fun edgy_A : A;
-fun edibility_N : N;
-fun edible_A : A;
-fun edible_N : N;
-fun edict_N : N;
-fun edification_N : N;
-fun edifice_N : N;
-fun edify_V2 : V2;
-fun edinburgh_PN : PN;
-fun edit_V2 : V2;
-fun edith_PN : PN;
-fun edition_N : N;
-fun editor_N : N;
-fun editorial_A : A;
-fun editorial_N : N;
-fun edmund_PN : PN;
-fun edp_N : N;
-fun educate_V2 : V2;
-fun education_N : N;
-fun educational_A : A;
-fun educationalist_N : N;
-fun educationally_Adv : Adv;
-fun educationist_N : N;
-fun educator_N : N;
-fun educe_V2 : V2;
-fun edward_PN : PN;
-fun edwardian_A : A;
-fun edwardian_N : N;
-fun eec_N : N;
-fun eeg_N : N;
-fun eel_N : N;
-fun eerie_A : A;
-fun eerily_Adv : Adv;
-fun eeriness_N : N;
-fun eery_A : A;
-fun eff_V : V;
-fun efface_V2 : V2;
-fun effacement_N : N;
-fun effect_N : N;
-fun effect_V2 : V2;
-fun effective_A : A;
-fun effectively_Adv : Adv;
-fun effectiveness_N : N;
-fun effectual_A : A;
-fun effectuality_N : N;
-fun effectually_Adv : Adv;
-fun effectualness_N : N;
-fun effeminacy_N : N;
-fun effeminate_A : A;
-fun effendi_N : N;
-fun effervesce_V : V;
-fun effervescence_N : N;
-fun effervescent_A : A;
-fun effete_A : A;
-fun effeteness_N : N;
-fun efficacious_A : A;
-fun efficaciously_Adv : Adv;
-fun efficacy_N : N;
-fun efficiency_N : N;
-fun efficient_A : A;
-fun efficiently_Adv : Adv;
-fun effigy_N : N;
-fun efflorescence_N : N;
-fun efflorescent_A : A;
-fun effluent_N : N;
-fun efflux_N : N;
-fun effort_N : N;
-fun effortless_A : A;
-fun effortlessly_Adv : Adv;
-fun effrontery_N : N;
-fun effulgence_N : N;
-fun effulgent_A : A;
-fun effusion_N : N;
-fun effusive_A : A;
-fun effusively_Adv : Adv;
-fun effusiveness_N : N;
-fun eft_N : N;
-fun efta_N : N;
-fun eg_PN : PN;
-fun egalitarian_A : A;
-fun egalitarian_N : N;
-fun egalitarianism_N : N;
-fun egg_N : N;
-fun egg_V2 : V2;
-fun egg_beater_N : N;
-fun egg_cup_N : N;
-fun egg_whisk_N : N;
-fun egghead_N : N;
-fun eggplant_N : N;
-fun eggshake_N : N;
-fun eggshell_N : N;
-fun eglantine_N : N;
-fun ego_N : N;
-fun egocentric_A : A;
-fun egoism_N : N;
-fun egoist_N : N;
-fun egoistic_A : A;
-fun egoistical_A : A;
-fun egotism_N : N;
-fun egotist_N : N;
-fun egotistic_A : A;
-fun egotistically_Adv : Adv;
-fun egotrip_N : N;
-fun egotrip_V : V;
-fun egregious_A : A;
-fun egremont_PN : PN;
-fun egress_N : N;
-fun egret_N : N;
-fun egypt_PN : PN;
-fun egyptian_A : A;
-fun egyptian_N : N;
-fun eiche_PN : PN;
-fun eiderdown_N : N;
-fun eightpence_N : N;
-fun eightpenny_A : A;
-fun eightsome_N : N;
-fun eileen_PN : PN;
-fun eindhoven_PN : PN;
-fun eisteddfod_N : N;
-fun either_A : A;
-fun either_Adv : Adv;
-fun ejaculate_V2 : V2;
-fun ejaculation_N : N;
-fun eject_V : V;
-fun eject_V2 : V2;
-fun ejection_N : N;
-fun ejector_N : N;
-fun ejector_seat_N : N;
-fun eke_V2 : V2;
-fun el_dorado_N : N;
-fun el_salvador_PN : PN;
-fun elaborate_A : A;
-fun elaborate_V2 : V2;
-fun elaborately_Adv : Adv;
-fun elaborateness_N : N;
-fun elaboration_N : N;
-fun elaine_PN : PN;
-fun eland_N : N;
-fun elapse_V : V;
-fun elastic_A : A;
-fun elastic_N : N;
-fun elasticity_N : N;
-fun elasticized_A : A;
-fun elastoplast_N : N;
-fun elate_V2 : V2;
-fun elation_N : N;
-fun elbow_N : N;
-fun elbow_V2 : V2;
-fun elder_N : N;
-fun elderly_A : A;
-fun elderslie_PN : PN;
-fun eleanor_PN : PN;
-fun elect_A : A;
-fun elect_V2 : V2;
-fun election_N : N;
-fun electioneering_N : N;
-fun elective_A : A;
-fun elector_N : N;
-fun electoral_A : A;
-fun electorate_N : N;
-fun electric_A : A;
-fun electrical_A : A;
-fun electrically_Adv : Adv;
-fun electrician_N : N;
-fun electricity_N : N;
-fun electrification_N : N;
-fun electrify_V2 : V2;
-fun electrocardiogram_N : N;
-fun electrocardiograph_N : N;
-fun electrochemistry_N : N;
-fun electrocute_V2 : V2;
-fun electrocution_N : N;
-fun electrode_N : N;
-fun electrolysis_N : N;
-fun electrolyte_N : N;
-fun electromagnet_N : N;
-fun electromagnetic_A : A;
-fun electromagnetism_N : N;
-fun electron_N : N;
-fun electronic_A : A;
-fun electronically_Adv : Adv;
-fun electronics_N : N;
-fun electroplate_N : N;
-fun electroplate_V2 : V2;
-fun electrostatic_A : A;
-fun eleemosynary_A : A;
-fun elegance_N : N;
-fun elegant_A : A;
-fun elegantly_Adv : Adv;
-fun elegiac_A : A;
-fun elegy_N : N;
-fun element_N : N;
-fun elemental_A : A;
-fun elementarily_Adv : Adv;
-fun elementary_A : A;
-fun elephant_N : N;
-fun elephantiasis_N : N;
-fun elephantine_A : A;
-fun elevate_V2 : V2;
-fun elevation_N : N;
-fun elevator_N : N;
-fun elf_N : N;
-fun elfin_A : A;
-fun elfish_A : A;
-fun elgin_PN : PN;
-fun elicit_V2 : V2;
-fun elicitation_N : N;
-fun elide_V2 : V2;
-fun eligibility_N : N;
-fun eligible_A : A;
-fun eliminate_V2 : V2;
-fun elimination_N : N;
-fun elision_N : N;
-fun elitism_N : N;
-fun elitist_N : N;
-fun elixir_N : N;
-fun eliza_PN : PN;
-fun elizabeth_PN : PN;
-fun elizabethan_A : A;
-fun elizabethan_N : N;
-fun elk_N : N;
-fun elland_PN : PN;
-fun ellen_PN : PN;
-fun ellesmere_PN : PN;
-fun ellesmere_port_PN : PN;
-fun ellie_PN : PN;
-fun ellipse_N : N;
-fun ellipsis_N : N;
-fun elliptic_A : A;
-fun elliptical_A : A;
-fun elloughton_PN : PN;
-fun elm_N : N;
-fun elocution_N : N;
-fun elocutionary_A : A;
-fun elocutionist_N : N;
-fun elongate_V : V;
-fun elongate_V2 : V2;
-fun elongation_N : N;
-fun elope_V : V;
-fun elopement_N : N;
-fun eloquence_N : N;
-fun eloquent_A : A;
-fun eloquently_Adv : Adv;
-fun else_Adv : Adv;
-fun elsewhere_Adv : Adv;
-fun elsie_PN : PN;
-fun elstree_PN : PN;
-fun elucidate_V2 : V2;
-fun elucidation_N : N;
-fun elude_V2 : V2;
-fun elusive_A : A;
-fun elver_N : N;
-fun elvish_A : A;
-fun ely_PN : PN;
-fun elysian_A : A;
-fun elysium_PN : PN;
-fun emaciate_V2 : V2;
-fun emaciation_N : N;
-fun emanate_V : V;
-fun emanation_N : N;
-fun emancipate_V2 : V2;
-fun emancipation_N : N;
-fun emasculate_V2 : V2;
-fun emasculation_N : N;
-fun embalm_V2 : V2;
-fun embalmment_N : N;
-fun embankment_N : N;
-fun embargo_N : N;
-fun embargo_V2 : V2;
-fun embark_V : V;
-fun embark_V2 : V2;
-fun embarkation_N : N;
-fun embarrass_V2 : V2;
-fun embarrassing_A : A;
-fun embarrassingly_Adv : Adv;
-fun embarrassment_N : N;
-fun embassy_N : N;
-fun embattled_A : A;
-fun embed_V2 : V2;
-fun embellish_V2 : V2;
-fun embellishment_N : N;
-fun ember_N : N;
-fun embezzle_V2 : V2;
-fun embezzlement_N : N;
-fun embitter_V2 : V2;
-fun embitterment_N : N;
-fun emblazon_V2 : V2;
-fun emblem_N : N;
-fun emblematic_A : A;
-fun embodiment_N : N;
-fun embody_V2 : V2;
-fun embolden_V2 : V2;
-fun embonpoint_A : A;
-fun embonpoint_N : N;
-fun emboss_V2 : V2;
-fun embrace_N : N;
-fun embrace_V : V;
-fun embrace_V2 : V2;
-fun embrasure_N : N;
-fun embrocation_N : N;
-fun embroider_V : V;
-fun embroider_V2 : V2;
-fun embroidery_N : N;
-fun embroil_V2 : V2;
-fun embryo_N : N;
-fun embryonic_A : A;
-fun emeer_N : N;
-fun emend_V2 : V2;
-fun emendation_N : N;
-fun emerald_N : N;
-fun emerge_V : V;
-fun emergence_N : N;
-fun emergency_N : N;
-fun emergent_A : A;
-fun emeritus_A : A;
-fun emery_N : N;
-fun emetic_N : N;
-fun emigrant_N : N;
-fun emigrate_V : V;
-fun emigration_N : N;
-fun emily_PN : PN;
-fun eminence_N : N;
-fun eminent_A : A;
-fun eminently_Adv : Adv;
-fun emir_N : N;
-fun emirate_N : N;
-fun emissary_N : N;
-fun emission_N : N;
-fun emit_V2 : V2;
-fun emma_PN : PN;
-fun emolument_N : N;
-fun emotion_N : N;
-fun emotional_A : A;
-fun emotionally_Adv : Adv;
-fun emotionless_A : A;
-fun emotive_A : A;
-fun empale_V2 : V2;
-fun empanel_V2 : V2;
-fun empathy_N : N;
-fun emperor_N : N;
-fun emphasis_N : N;
-fun emphasize_V2 : V2;
-fun emphatic_A : A;
-fun emphatically_Adv : Adv;
-fun empire_N : N;
-fun empiric_A : A;
-fun empirical_A : A;
-fun empirically_Adv : Adv;
-fun empiricism_N : N;
-fun empiricist_N : N;
-fun emplacement_N : N;
-fun emplane_V : V;
-fun emplane_V2 : V2;
-fun employ_N : N;
-fun employ_V2 : V2;
-fun employable_A : A;
-fun employee_N : N;
-fun employer_N : N;
-fun employment_N : N;
-fun emporium_N : N;
-fun empower_V2 : V2;
-fun empress_N : N;
-fun emptiness_N : N;
-fun empty_A : A;
-fun empty_N : N;
-fun empty_V : V;
-fun empty_V2 : V2;
-fun empty_handed_A : A;
-fun empty_headed_A : A;
-fun empurpled_A : A;
-fun empyrean_A : A;
-fun empyrean_N : N;
-fun emsworth_PN : PN;
-fun emu_N : N;
-fun emulate_V2 : V2;
-fun emulation_N : N;
-fun emulous_A : A;
-fun emulously_Adv : Adv;
-fun emulsify_V2 : V2;
-fun emulsion_N : N;
-fun en_clair_Adv : Adv;
-fun en_famille_Adv : Adv;
-fun en_masse_Adv : Adv;
-fun en_route_Adv : Adv;
-fun enable_V2 : V2;
-fun enabling_A : A;
-fun enact_V2 : V2;
-fun enactment_N : N;
-fun enamel_N : N;
-fun enamel_V2 : V2;
-fun enamour_V2 : V2;
-fun enc_PN : PN;
-fun encamp_V : V;
-fun encamp_V2 : V2;
-fun encampment_N : N;
-fun encase_V2 : V2;
-fun encaustic_A : A;
-fun encephalitis_N : N;
-fun enchain_V2 : V2;
-fun enchant_V2 : V2;
-fun enchanter_N : N;
-fun enchantingly_Adv : Adv;
-fun enchantment_N : N;
-fun enchantress_N : N;
-fun encircle_V2 : V2;
-fun encirclement_N : N;
-fun enclave_N : N;
-fun enclose_V2 : V2;
-fun enclosure_N : N;
-fun encode_V2 : V2;
-fun encomium_N : N;
-fun encompass_V2 : V2;
-fun encore_N : N;
-fun encore_V2 : V2;
-fun encounter_N : N;
-fun encounter_V2 : V2;
-fun encourage_V2 : V2;
-fun encouragement_N : N;
-fun encouragingly_Adv : Adv;
-fun encroach_V : V;
-fun encroachment_N : N;
-fun encrust_V : V;
-fun encrust_V2 : V2;
-fun encumber_V2 : V2;
-fun encumbrance_N : N;
-fun encyclical_A : A;
-fun encyclical_N : N;
-fun encyclopaedia_N : N;
-fun encyclopaedic_A : A;
-fun encyclopedia_N : N;
-fun encyclopedic_A : A;
-fun end_N : N;
-fun end_V : V;
-fun end_V2 : V2;
-fun end_all_N : N;
-fun endanger_V2 : V2;
-fun endear_V2 : V2;
-fun endearingly_Adv : Adv;
-fun endearment_N : N;
-fun endeavour_N : N;
-fun endeavour_V : V;
-fun endemic_A : A;
-fun endemic_N : N;
-fun ending_N : N;
-fun endive_N : N;
-fun endless_A : A;
-fun endlessly_Adv : Adv;
-fun endorse_V2 : V2;
-fun endorsement_N : N;
-fun endow_V2 : V2;
-fun endowment_N : N;
-fun endue_V2 : V2;
-fun endurable_A : A;
-fun endurance_N : N;
-fun endure_V : V;
-fun endure_V2 : V2;
-fun enduring_A : A;
-fun enduringly_Adv : Adv;
-fun endways_Adv : Adv;
-fun endwise_Adv : Adv;
-fun enema_N : N;
-fun enemy_N : N;
-fun energetic_A : A;
-fun energetically_Adv : Adv;
-fun energy_N : N;
-fun enervate_V2 : V2;
-fun enfant_terrible_N : N;
-fun enfeeble_V2 : V2;
-fun enfield_PN : PN;
-fun enfold_V2 : V2;
-fun enforce_V2 : V2;
-fun enforceable_A : A;
-fun enforcement_N : N;
-fun enfranchise_V2 : V2;
-fun enfranchisement_N : N;
-fun engage_V : V;
-fun engage_V2 : V2;
-fun engagement_N : N;
-fun engaging_A : A;
-fun engagingly_Adv : Adv;
-fun engender_V2 : V2;
-fun engine_N : N;
-fun engine_driver_N : N;
-fun engineer_N : N;
-fun engineer_V : V;
-fun engineer_V2 : V2;
-fun engineering_N : N;
-fun england_PN : PN;
-fun english_A : A;
-fun english_N : N;
-fun englishman_N : N;
-fun englishwoman_N : N;
-fun engraft_V2 : V2;
-fun engrave_V2 : V2;
-fun engraver_N : N;
-fun engraving_N : N;
-fun engross_V2 : V2;
-fun engulf_V2 : V2;
-fun enhance_V2 : V2;
-fun enhancement_N : N;
-fun enigma_N : N;
-fun enigmatic_A : A;
-fun enigmatically_Adv : Adv;
-fun enjoin_V2 : V2;
-fun enjoy_V2 : V2;
-fun enjoyable_A : A;
-fun enjoyably_Adv : Adv;
-fun enjoyment_N : N;
-fun enkindle_V2 : V2;
-fun enlarge_V : V;
-fun enlarge_V2 : V2;
-fun enlargement_N : N;
-fun enlighten_V2 : V2;
-fun enlightened_A : A;
-fun enlightenment_N : N;
-fun enlist_V : V;
-fun enlist_V2 : V2;
-fun enlistment_N : N;
-fun enliven_V2 : V2;
-fun enmesh_V2 : V2;
-fun enmity_N : N;
-fun ennoble_V2 : V2;
-fun ennoblement_N : N;
-fun ennui_N : N;
-fun enoch_PN : PN;
-fun enormity_N : N;
-fun enormous_A : A;
-fun enormously_Adv : Adv;
-fun enormousness_N : N;
-fun enough_A : A;
-fun enough_Adv : Adv;
-fun enough_N : N;
-fun enplane_V : V;
-fun enplane_V2 : V2;
-fun enquire_V : V;
-fun enquire_V2 : V2;
-fun enquirer_N : N;
-fun enquiringly_Adv : Adv;
-fun enquiry_N : N;
-fun enrage_V2 : V2;
-fun enrapture_V2 : V2;
-fun enrich_V2 : V2;
-fun enrichment_N : N;
-fun enrol_V : V;
-fun enrol_V2 : V2;
-fun enroll_V : V;
-fun enroll_V2 : V2;
-fun enrolment_N : N;
-fun enschede_PN : PN;
-fun ensconce_V2 : V2;
-fun ensemble_N : N;
-fun enshrine_V2 : V2;
-fun enshroud_V2 : V2;
-fun ensign_N : N;
-fun ensilage_N : N;
-fun enslave_V2 : V2;
-fun enslavement_N : N;
-fun ensnare_V2 : V2;
-fun ensue_V : V;
-fun ensure_V : V;
-fun ensure_V2 : V2;
-fun entail_N : N;
-fun entail_V2 : V2;
-fun entangle_V2 : V2;
-fun entanglement_N : N;
-fun entente_N : N;
-fun entente_cordiale_N : N;
-fun enter_V : V;
-fun enter_V2 : V2;
-fun enteric_A : A;
-fun enteritis_N : N;
-fun enterprise_N : N;
-fun enterprising_A : A;
-fun enterprisingly_Adv : Adv;
-fun entertain_V2 : V2;
-fun entertainer_N : N;
-fun entertaining_A : A;
-fun entertainingly_Adv : Adv;
-fun entertainment_N : N;
-fun enthral_V2 : V2;
-fun enthrall_V2 : V2;
-fun enthrone_V2 : V2;
-fun enthronement_N : N;
-fun enthuse_V : V;
-fun enthusiasm_N : N;
-fun enthusiast_N : N;
-fun enthusiastic_A : A;
-fun enthusiastically_Adv : Adv;
-fun entice_V2 : V2;
-fun enticement_N : N;
-fun entire_A : A;
-fun entirely_Adv : Adv;
-fun entirety_N : N;
-fun entitle_V2 : V2;
-fun entitlement_N : N;
-fun entity_N : N;
-fun entomb_V2 : V2;
-fun entomological_A : A;
-fun entomologist_N : N;
-fun entomology_N : N;
-fun entourage_N : N;
-fun entr'acte_N : N;
-fun entrain_V : V;
-fun entrain_V2 : V2;
-fun entrance_N : N;
-fun entrance_V2 : V2;
-fun entrance_fee_N : N;
-fun entrance_money_N : N;
-fun entrant_N : N;
-fun entrap_V2 : V2;
-fun entreat_V2 : V2;
-fun entreatingly_Adv : Adv;
-fun entreaty_N : N;
-fun entrench_V2 : V2;
-fun entrenchment_N : N;
-fun entrepot_N : N;
-fun entrepreneur_N : N;
-fun entrepreneurial_A : A;
-fun entrust_V2 : V2;
-fun entry_N : N;
-fun entree_N : N;
-fun entwine_V2 : V2;
-fun enumerate_V2 : V2;
-fun enumeration_N : N;
-fun enunciate_V : V;
-fun enunciate_V2 : V2;
-fun enunciation_N : N;
-fun envelop_V2 : V2;
-fun envelope_N : N;
-fun envelopment_N : N;
-fun envenom_V2 : V2;
-fun enviable_A : A;
-fun envious_A : A;
-fun enviously_Adv : Adv;
-fun environ_V2 : V2;
-fun environment_N : N;
-fun environmental_A : A;
-fun environmentally_Adv : Adv;
-fun envisage_V2 : V2;
-fun envoi_N : N;
-fun envoy_N : N;
-fun envy_N : N;
-fun envy_V2 : V2;
-fun enwrap_V2 : V2;
-fun enzyme_N : N;
-fun eon_N : N;
-fun epaulet_N : N;
-fun epaulette_N : N;
-fun ephemeral_A : A;
-fun epic_A : A;
-fun epic_N : N;
-fun epicentre_N : N;
-fun epicure_N : N;
-fun epicurean_A : A;
-fun epicurean_N : N;
-fun epidemic_A : A;
-fun epidemic_N : N;
-fun epidemiologist_N : N;
-fun epidemiology_N : N;
-fun epidermis_N : N;
-fun epidiascope_N : N;
-fun epiglottis_N : N;
-fun epigram_N : N;
-fun epigrammatic_A : A;
-fun epilepsy_N : N;
-fun epileptic_A : A;
-fun epileptic_N : N;
-fun epilogue_N : N;
-fun epiphany_PN : PN;
-fun episcopal_A : A;
-fun episcopalian_A : A;
-fun episcopalian_N : N;
-fun episode_N : N;
-fun episodic_A : A;
-fun epistle_N : N;
-fun epistolary_A : A;
-fun epitaph_N : N;
-fun epithet_N : N;
-fun epitome_N : N;
-fun epitomize_V2 : V2;
-fun epoch_N : N;
-fun epoch_making_A : A;
-fun epping_PN : PN;
-fun epsom_PN : PN;
-fun equable_A : A;
-fun equably_Adv : Adv;
-fun equal_A : A;
-fun equal_N : N;
-fun equal_V2 : V2;
-fun equalitarian_N : N;
-fun equality_N : N;
-fun equalization_N : N;
-fun equalize_V2 : V2;
-fun equalizer_N : N;
-fun equally_Adv : Adv;
-fun equanimity_N : N;
-fun equate_V2 : V2;
-fun equation_N : N;
-fun equator_N : N;
-fun equatorial_A : A;
-fun equerry_N : N;
-fun equestrian_A : A;
-fun equestrian_N : N;
-fun equidistant_A : A;
-fun equilateral_A : A;
-fun equilibrium_N : N;
-fun equine_A : A;
-fun equinoctial_A : A;
-fun equinox_N : N;
-fun equip_V2 : V2;
-fun equipage_N : N;
-fun equipment_N : N;
-fun equipoise_N : N;
-fun equitable_A : A;
-fun equitably_Adv : Adv;
-fun equity_N : N;
-fun equivalence_N : N;
-fun equivalent_A : A;
-fun equivalent_N : N;
-fun equivocal_A : A;
-fun equivocation_N : N;
-fun era_N : N;
-fun eradicate_V2 : V2;
-fun eradication_N : N;
-fun erase_V2 : V2;
-fun eraser_N : N;
-fun erasure_N : N;
-fun ere_Adv : Adv;
-fun erect_A : A;
-fun erect_V2 : V2;
-fun erectile_A : A;
-fun erection_N : N;
-fun erectly_Adv : Adv;
-fun erectness_N : N;
-fun eremite_N : N;
-fun erfurt_PN : PN;
-fun erg_N : N;
-fun ergo_Adv : Adv;
-fun ergonomics_N : N;
-fun eric_PN : PN;
-fun erica_PN : PN;
-fun erin_PN : PN;
-fun eritrea_PN : PN;
-fun eritrean_A : A;
-fun eritrean_N : N;
-fun erlangen_PN : PN;
-fun ermine_N : N;
-fun ernest_PN : PN;
-fun ernie_PN : PN;
-fun erode_V2 : V2;
-fun erogenous_A : A;
-fun erosion_N : N;
-fun erosive_A : A;
-fun erotic_A : A;
-fun eroticism_N : N;
-fun err_V : V;
-fun errand_N : N;
-fun errant_A : A;
-fun erratic_A : A;
-fun erratically_Adv : Adv;
-fun erratum_N : N;
-fun erroneous_A : A;
-fun erroneously_Adv : Adv;
-fun error_N : N;
-fun erse_N : N;
-fun eructation_N : N;
-fun erudite_A : A;
-fun eruditely_Adv : Adv;
-fun erudition_N : N;
-fun erupt_V : V;
-fun eruption_N : N;
-fun erysipelas_N : N;
-fun escalate_V : V;
-fun escalate_V2 : V2;
-fun escalation_N : N;
-fun escalator_N : N;
-fun escalope_N : N;
-fun escapade_N : N;
-fun escape_N : N;
-fun escape_V : V;
-fun escape_V2 : V2;
-fun escapee_N : N;
-fun escapement_N : N;
-fun escapism_N : N;
-fun escapist_N : N;
-fun escapologist_N : N;
-fun escarpment_N : N;
-fun eschatology_N : N;
-fun eschew_V2 : V2;
-fun escort_N : N;
-fun escort_V2 : V2;
-fun escritoire_N : N;
-fun escudo_N : N;
-fun escutcheon_N : N;
-fun esfahan_PN : PN;
-fun eskimo_N : N;
-fun esophagus_N : N;
-fun esoteric_A : A;
-fun esp_N : N;
-fun espalier_N : N;
-fun especial_A : A;
-fun especially_Adv : Adv;
-fun esperanto_N : N;
-fun espionage_N : N;
-fun esplanade_N : N;
-fun espousal_N : N;
-fun espouse_V2 : V2;
-fun espresso_N : N;
-fun esprit_N : N;
-fun esprit_de_corps_N : N;
-fun espy_V2 : V2;
-fun esq_PN : PN;
-fun esquire_N : N;
-fun essay_N : N;
-fun essay_V : V;
-fun essay_V2 : V2;
-fun essayist_N : N;
-fun essen_PN : PN;
-fun essence_N : N;
-fun essential_A : A;
-fun essential_N : N;
-fun essentially_Adv : Adv;
-fun essex_PN : PN;
-fun establish_V2 : V2;
-fun establishment_N : N;
-fun estaminet_N : N;
-fun estate_N : N;
-fun esteem_N : N;
-fun esteem_V2 : V2;
-fun esther_PN : PN;
-fun esthete_N : N;
-fun esthetic_A : A;
-fun esthetic_N : N;
-fun esthetical_A : A;
-fun esthetics_N : N;
-fun estimable_A : A;
-fun estimate_N : N;
-fun estimate_V : V;
-fun estimate_V2 : V2;
-fun estimation_N : N;
-fun estrange_V2 : V2;
-fun estrangement_N : N;
-fun estuary_N : N;
-fun et_al_PN : PN;
-fun et_seq_PN : PN;
-fun eta_N : N;
-fun etc_PN : PN;
-fun etch_V : V;
-fun etch_V2 : V2;
-fun etcher_N : N;
-fun etching_N : N;
-fun etd_N : N;
-fun eternal_A : A;
-fun eternally_Adv : Adv;
-fun eternity_N : N;
-fun ethel_PN : PN;
-fun ether_N : N;
-fun ethereal_A : A;
-fun ethic_N : N;
-fun ethical_A : A;
-fun ethically_Adv : Adv;
-fun ethics_N : N;
-fun ethiopia_PN : PN;
-fun ethiopian_A : A;
-fun ethiopian_N : N;
-fun ethnic_A : A;
-fun ethnically_Adv : Adv;
-fun ethnographer_N : N;
-fun ethnographic_A : A;
-fun ethnography_N : N;
-fun ethnological_A : A;
-fun ethnologist_N : N;
-fun ethnology_N : N;
-fun ethos_N : N;
-fun ethyl_N : N;
-fun etiology_N : N;
-fun etiquette_N : N;
-fun etymological_A : A;
-fun etymologist_N : N;
-fun etymology_N : N;
-fun eucalyptus_N : N;
-fun eucharist_N : N;
-fun euclidean_A : A;
-fun eugene_PN : PN;
-fun eugenics_N : N;
-fun eulogist_N : N;
-fun eulogistic_A : A;
-fun eulogize_V2 : V2;
-fun eulogy_N : N;
-fun eunice_PN : PN;
-fun eunuch_N : N;
-fun euphemism_N : N;
-fun euphemistic_A : A;
-fun euphemistically_Adv : Adv;
-fun euphonium_N : N;
-fun euphony_N : N;
-fun euphoria_N : N;
-fun euphoric_A : A;
-fun euphuism_N : N;
-fun eurasia_PN : PN;
-fun eurasian_A : A;
-fun eurasian_N : N;
-fun eurhythmics_N : N;
-fun eurodollar_N : N;
-fun europe_PN : PN;
-fun european_A : A;
-fun european_N : N;
-fun eurovision_PN : PN;
-fun eurythmics_N : N;
-fun eustachian_A : A;
-fun euthanasia_N : N;
-fun eva_PN : PN;
-fun evacuate_V2 : V2;
-fun evacuation_N : N;
-fun evacuee_N : N;
-fun evade_V2 : V2;
-fun evaluate_V2 : V2;
-fun evaluation_N : N;
-fun evaluative_A : A;
-fun evanescence_N : N;
-fun evanescent_A : A;
-fun evangelical_A : A;
-fun evangelicalism_N : N;
-fun evangelism_N : N;
-fun evangelist_N : N;
-fun evangelistic_A : A;
-fun evaporate_V : V;
-fun evaporate_V2 : V2;
-fun evaporation_N : N;
-fun evasion_N : N;
-fun evasive_A : A;
-fun evasively_Adv : Adv;
-fun evasiveness_N : N;
-fun eve_N : N;
-fun eve_PN : PN;
-fun evelyn_PN : PN;
-fun even_A : A;
-fun even_Adv : Adv;
-fun even_N : N;
-fun even_V2 : V2;
-fun even_handed_A : A;
-fun evening_N : N;
-fun evenly_Adv : Adv;
-fun evenness_N : N;
-fun evensong_N : N;
-fun event_N : N;
-fun eventful_A : A;
-fun eventide_N : N;
-fun eventual_A : A;
-fun eventuality_N : N;
-fun eventually_Adv : Adv;
-fun ever_Adv : Adv;
-fun evergreen_A : A;
-fun evergreen_N : N;
-fun everlasting_A : A;
-fun evermore_Adv : Adv;
-fun everyday_A : A;
-fun everyplace_Adv : Adv;
-fun evesham_PN : PN;
-fun evict_V2 : V2;
-fun eviction_N : N;
-fun evidence_N : N;
-fun evidence_V2 : V2;
-fun evident_A : A;
-fun evidently_Adv : Adv;
-fun evil_A : A;
-fun evil_N : N;
-fun evil_doer_N : N;
-fun evil_minded_A : A;
-fun evilly_Adv : Adv;
-fun evince_V2 : V2;
-fun eviscerate_V2 : V2;
-fun evocation_N : N;
-fun evocative_A : A;
-fun evoke_V2 : V2;
-fun evolution_N : N;
-fun evolutionary_A : A;
-fun evolve_V : V;
-fun evolve_V2 : V2;
-fun ewe_N : N;
-fun ewell_PN : PN;
-fun ewer_N : N;
-fun ex_directory_A : A;
-fun ex_gratia_A : A;
-fun ex_officio_A : A;
-fun ex_officio_Adv : Adv;
-fun ex_service_A : A;
-fun ex_serviceman_N : N;
-fun exacerbate_V2 : V2;
-fun exacerbation_N : N;
-fun exact_A : A;
-fun exact_V2 : V2;
-fun exacting_A : A;
-fun exaction_N : N;
-fun exactitude_N : N;
-fun exactly_Adv : Adv;
-fun exactness_N : N;
-fun exaggerate_V : V;
-fun exaggerate_V2 : V2;
-fun exaggeration_N : N;
-fun exalt_V2 : V2;
-fun exaltation_N : N;
-fun exalted_A : A;
-fun exam_N : N;
-fun examination_N : N;
-fun examine_V2 : V2;
-fun examiner_N : N;
-fun example_N : N;
-fun exasperate_V2 : V2;
-fun exasperation_N : N;
-fun excavate_V2 : V2;
-fun excavation_N : N;
-fun excavator_N : N;
-fun exceed_V2 : V2;
-fun exceedingly_Adv : Adv;
-fun excel_V : V;
-fun excel_V2 : V2;
-fun excellence_N : N;
-fun excellency_N : N;
-fun excellent_A : A;
-fun excellently_Adv : Adv;
-fun excelsior_N : N;
-fun except_V2 : V2;
-fun exception_N : N;
-fun exceptionable_A : A;
-fun exceptional_A : A;
-fun exceptionally_Adv : Adv;
-fun excerpt_N : N;
-fun excess_A : A;
-fun excess_N : N;
-fun excessive_A : A;
-fun excessively_Adv : Adv;
-fun exchange_N : N;
-fun exchange_V2 : V2;
-fun exchangeable_A : A;
-fun exchanger_N : N;
-fun exchequer_N : N;
-fun excise_N : N;
-fun excise_V2 : V2;
-fun exciseman_N : N;
-fun excision_N : N;
-fun excitability_N : N;
-fun excitable_A : A;
-fun excite_V2 : V2;
-fun excitedly_Adv : Adv;
-fun excitement_N : N;
-fun excitingly_Adv : Adv;
-fun excl_PN : PN;
-fun exclaim_V : V;
-fun exclaim_V2 : V2;
-fun exclamation_N : N;
-fun exclamatory_A : A;
-fun exclude_V2 : V2;
-fun exclusion_N : N;
-fun exclusive_A : A;
-fun exclusively_Adv : Adv;
-fun excogitate_V2 : V2;
-fun excogitation_N : N;
-fun excommunicate_V2 : V2;
-fun excommunication_N : N;
-fun excoriate_V2 : V2;
-fun excoriation_N : N;
-fun excrement_N : N;
-fun excrescence_N : N;
-fun excrete_V2 : V2;
-fun excretion_N : N;
-fun excruciating_A : A;
-fun excruciatingly_Adv : Adv;
-fun exculpate_V2 : V2;
-fun excursion_N : N;
-fun excursionist_N : N;
-fun excusable_A : A;
-fun excusably_Adv : Adv;
-fun excuse_N : N;
-fun excuse_V2 : V2;
-fun execrable_A : A;
-fun execrate_V2 : V2;
-fun execration_N : N;
-fun executant_N : N;
-fun execute_V2 : V2;
-fun execution_N : N;
-fun executioner_N : N;
-fun executive_A : A;
-fun executive_N : N;
-fun executor_N : N;
-fun executrix_N : N;
-fun exegesis_N : N;
-fun exemplary_A : A;
-fun exemplification_N : N;
-fun exemplify_V2 : V2;
-fun exempt_A : A;
-fun exempt_V2 : V2;
-fun exemption_N : N;
-fun exercise_N : N;
-fun exercise_V : V;
-fun exercise_V2 : V2;
-fun exert_V2 : V2;
-fun exertion_N : N;
-fun exeter_PN : PN;
-fun exhalation_N : N;
-fun exhale_V : V;
-fun exhale_V2 : V2;
-fun exhaust_N : N;
-fun exhaust_V2 : V2;
-fun exhaust_pipe_N : N;
-fun exhaustion_N : N;
-fun exhaustive_A : A;
-fun exhaustively_Adv : Adv;
-fun exhibit_N : N;
-fun exhibit_V2 : V2;
-fun exhibition_N : N;
-fun exhibitioner_N : N;
-fun exhibitionism_N : N;
-fun exhibitionist_N : N;
-fun exhibitor_N : N;
-fun exhilarate_V2 : V2;
-fun exhilaration_N : N;
-fun exhort_V2 : V2;
-fun exhortation_N : N;
-fun exhumation_N : N;
-fun exhume_V2 : V2;
-fun exigency_N : N;
-fun exigent_A : A;
-fun exiguous_A : A;
-fun exile_N : N;
-fun exile_V2 : V2;
-fun exist_V : V;
-fun existence_N : N;
-fun existent_A : A;
-fun existentialism_N : N;
-fun existentialist_N : N;
-fun exit_N : N;
-fun exit_V : V;
-fun exmouth_PN : PN;
-fun exodus_N : N;
-fun exonerate_V2 : V2;
-fun exoneration_N : N;
-fun exorbitance_N : N;
-fun exorbitant_A : A;
-fun exorbitantly_Adv : Adv;
-fun exorcize_V2 : V2;
-fun exotic_A : A;
-fun expand_V : V;
-fun expand_V2 : V2;
-fun expanse_N : N;
-fun expansion_N : N;
-fun expansive_A : A;
-fun expansively_Adv : Adv;
-fun expansiveness_N : N;
-fun expatiate_V : V;
-fun expatriate_N : N;
-fun expatriate_V2 : V2;
-fun expect_V2 : V2;
-fun expectancy_N : N;
-fun expectant_A : A;
-fun expectantly_Adv : Adv;
-fun expectation_N : N;
-fun expected_A : A;
-fun expectorant_N : N;
-fun expectorate_V : V;
-fun expectorate_V2 : V2;
-fun expedience_N : N;
-fun expediency_N : N;
-fun expedient_A : A;
-fun expedient_N : N;
-fun expediently_Adv : Adv;
-fun expedite_V2 : V2;
-fun expedition_N : N;
-fun expeditionary_A : A;
-fun expeditious_A : A;
-fun expeditiously_Adv : Adv;
-fun expel_V2 : V2;
-fun expend_V2 : V2;
-fun expendable_A : A;
-fun expenditure_N : N;
-fun expense_N : N;
-fun expensive_A : A;
-fun expensively_Adv : Adv;
-fun experience_N : N;
-fun experience_V2 : V2;
-fun experienced_A : A;
-fun experiment_N : N;
-fun experiment_V : V;
-fun experimental_A : A;
-fun experimentally_Adv : Adv;
-fun experimentation_N : N;
-fun experimenter_N : N;
-fun expert_A : A;
-fun expert_N : N;
-fun expertise_N : N;
-fun expertly_Adv : Adv;
-fun expertness_N : N;
-fun expiate_V2 : V2;
-fun expiation_N : N;
-fun expiration_N : N;
-fun expire_V : V;
-fun expiry_N : N;
-fun explain_V2 : V2;
-fun explanation_N : N;
-fun explanatory_A : A;
-fun expletive_N : N;
-fun explicable_A : A;
-fun explicate_V2 : V2;
-fun explicit_A : A;
-fun explicitly_Adv : Adv;
-fun explicitness_N : N;
-fun explode_V : V;
-fun explode_V2 : V2;
-fun exploit_N : N;
-fun exploit_V2 : V2;
-fun exploitation_N : N;
-fun exploration_N : N;
-fun exploratory_A : A;
-fun explore_V2 : V2;
-fun explorer_N : N;
-fun explosion_N : N;
-fun explosive_A : A;
-fun explosive_N : N;
-fun explosively_Adv : Adv;
-fun expo_N : N;
-fun exponent_N : N;
-fun exponential_A : A;
-fun exponential_N : N;
-fun exponentially_Adv : Adv;
-fun export_N : N;
-fun export_V2 : V2;
-fun exportable_A : A;
-fun exportation_N : N;
-fun exporter_N : N;
-fun expose_V2 : V2;
-fun exposition_N : N;
-fun expostulate_V : V;
-fun expostulation_N : N;
-fun exposure_N : N;
-fun expose_N : N;
-fun expound_V2 : V2;
-fun express_A : A;
-fun express_Adv : Adv;
-fun express_N : N;
-fun express_V2 : V2;
-fun expression_N : N;
-fun expressionism_N : N;
-fun expressionist_N : N;
-fun expressionless_A : A;
-fun expressive_A : A;
-fun expressively_Adv : Adv;
-fun expressly_Adv : Adv;
-fun expressway_N : N;
-fun expropriate_V2 : V2;
-fun expropriation_N : N;
-fun expulsion_N : N;
-fun expunge_V2 : V2;
-fun expurgate_V2 : V2;
-fun expurgation_N : N;
-fun exquisite_A : A;
-fun exquisitely_Adv : Adv;
-fun exquisiteness_N : N;
-fun extant_A : A;
-fun extemporaneous_A : A;
-fun extemporaneously_Adv : Adv;
-fun extemporarily_Adv : Adv;
-fun extemporary_A : A;
-fun extempore_A : A;
-fun extempore_Adv : Adv;
-fun extemporize_V : V;
-fun extemporize_V2 : V2;
-fun extend_V : V;
-fun extend_V2 : V2;
-fun extension_N : N;
-fun extensive_A : A;
-fun extensively_Adv : Adv;
-fun extent_N : N;
-fun extenuate_V2 : V2;
-fun extenuation_N : N;
-fun exterior_A : A;
-fun exterior_N : N;
-fun exteriorize_V2 : V2;
-fun exterminate_V2 : V2;
-fun extermination_N : N;
-fun external_A : A;
-fun external_N : N;
-fun externalize_V2 : V2;
-fun externally_Adv : Adv;
-fun exterritorial_A : A;
-fun extinct_A : A;
-fun extinction_N : N;
-fun extinguish_V2 : V2;
-fun extinguisher_N : N;
-fun extirpate_V2 : V2;
-fun extirpation_N : N;
-fun extol_V2 : V2;
-fun extort_V2 : V2;
-fun extortion_N : N;
-fun extortionate_A : A;
-fun extortionately_Adv : Adv;
-fun extra_A : A;
-fun extra_Adv : Adv;
-fun extra_N : N;
-fun extract_N : N;
-fun extract_V2 : V2;
-fun extraction_N : N;
-fun extracurricular_A : A;
-fun extradite_V2 : V2;
-fun extradition_N : N;
-fun extrajudicial_A : A;
-fun extramarital_A : A;
-fun extramural_A : A;
-fun extraneous_A : A;
-fun extraordinarily_Adv : Adv;
-fun extraordinary_A : A;
-fun extrapolate_V : V;
-fun extrapolate_V2 : V2;
-fun extrapolation_N : N;
-fun extrasensory_A : A;
-fun extraterritorial_A : A;
-fun extravagance_N : N;
-fun extravagant_A : A;
-fun extravagantly_Adv : Adv;
-fun extravaganza_N : N;
-fun extreme_A : A;
-fun extreme_N : N;
-fun extremely_Adv : Adv;
-fun extremist_N : N;
-fun extremity_N : N;
-fun extricable_A : A;
-fun extricate_V2 : V2;
-fun extrication_N : N;
-fun extrinsic_A : A;
-fun extroversion_N : N;
-fun extrovert_N : N;
-fun extrude_V2 : V2;
-fun extrusion_N : N;
-fun exuberance_N : N;
-fun exuberant_A : A;
-fun exuberantly_Adv : Adv;
-fun exude_V : V;
-fun exude_V2 : V2;
-fun exult_V : V;
-fun exultant_A : A;
-fun exultantly_Adv : Adv;
-fun exultation_N : N;
-fun eye_N : N;
-fun eye_V2 : V2;
-fun eye_catching_A : A;
-fun eye_opener_N : N;
-fun eye_shadow_N : N;
-fun eyeball_N : N;
-fun eyebath_N : N;
-fun eyebrow_N : N;
-fun eyecatching_A : A;
-fun eyecup_N : N;
-fun eyed_A : A;
-fun eyeful_N : N;
-fun eyeglass_N : N;
-fun eyelash_N : N;
-fun eyeless_A : A;
-fun eyelet_N : N;
-fun eyelid_N : N;
-fun eyepiece_N : N;
-fun eyeshot_N : N;
-fun eyesight_N : N;
-fun eyesore_N : N;
-fun eyestrain_N : N;
-fun eyetooth_N : N;
-fun eyewash_N : N;
-fun eyewitness_N : N;
-fun eyrie_N : N;
-fun eyry_N : N;
-fun fa_N : N;
-fun fab_A : A;
-fun fabian_A : A;
-fun fabian_N : N;
-fun fable_N : N;
-fun fabled_A : A;
-fun fabric_N : N;
-fun fabricate_V2 : V2;
-fun fabrication_N : N;
-fun fabulous_A : A;
-fun fabulously_Adv : Adv;
-fun face_N : N;
-fun face_V : V;
-fun face_V2 : V2;
-fun face_ache_N : N;
-fun face_card_N : N;
-fun face_cloth_N : N;
-fun face_cream_N : N;
-fun face_lift_N : N;
-fun face_lifting_N : N;
-fun face_pack_N : N;
-fun face_powder_N : N;
-fun face_saver_N : N;
-fun face_saving_A : A;
-fun face_saving_N : N;
-fun faceless_A : A;
-fun facer_N : N;
-fun facet_N : N;
-fun facetious_A : A;
-fun facetiously_Adv : Adv;
-fun facetiousness_N : N;
-fun facia_N : N;
-fun facial_A : A;
-fun facial_N : N;
-fun facile_A : A;
-fun facilitate_V2 : V2;
-fun facility_N : N;
-fun facing_N : N;
-fun facsimile_N : N;
-fun fact_N : N;
-fun fact_finding_A : A;
-fun faction_N : N;
-fun factious_A : A;
-fun factitious_A : A;
-fun factor_N : N;
-fun factorize_V2 : V2;
-fun factory_N : N;
-fun factotum_N : N;
-fun factual_A : A;
-fun factually_Adv : Adv;
-fun faculty_N : N;
-fun fad_N : N;
-fun faddily_Adv : Adv;
-fun faddy_A : A;
-fun fade_V : V;
-fun fade_V2 : V2;
-fun faerie_N : N;
-fun faery_N : N;
-fun fag_N : N;
-fun fag_V : V;
-fun fag_V2 : V2;
-fun fag_end_N : N;
-fun faggot_N : N;
-fun faience_N : N;
-fun fail_N : N;
-fun fail_V : V;
-fun fail_V2 : V2;
-fun fail_safe_A : A;
-fun failing_N : N;
-fun failure_N : N;
-fun fain_Adv : Adv;
-fun faint_A : A;
-fun faint_N : N;
-fun faint_V : V;
-fun faint_hearted_A : A;
-fun faintly_Adv : Adv;
-fun faintness_N : N;
-fun fair_A : A;
-fun fair_Adv : Adv;
-fun fair_N : N;
-fun fair_minded_A : A;
-fun fairground_N : N;
-fun fairish_A : A;
-fun fairly_Adv : Adv;
-fun fairness_N : N;
-fun fairway_N : N;
-fun fairy_N : N;
-fun fairyland_N : N;
-fun fairytale_N : N;
-fun fait_accompli_N : N;
-fun faith_N : N;
-fun faith_healing_N : N;
-fun faithful_A : A;
-fun faithfully_Adv : Adv;
-fun faithfulness_N : N;
-fun faithless_A : A;
-fun faithlessly_Adv : Adv;
-fun faithlessness_N : N;
-fun fake_N : N;
-fun fake_V2 : V2;
-fun fakir_N : N;
-fun falcon_N : N;
-fun falconry_N : N;
-fun falkirk_PN : PN;
-fun fall_N : N;
-fun fall_V : V;
-fun fallacious_A : A;
-fun fallacy_N : N;
-fun fallibility_N : N;
-fun fallible_A : A;
-fun fallopian_A : A;
-fun fallout_N : N;
-fun fallow_A : A;
-fun fallow_N : N;
-fun fallow_deer_N : N;
-fun falmouth_PN : PN;
-fun false_A : A;
-fun false_Adv : Adv;
-fun falsehood_N : N;
-fun falsely_Adv : Adv;
-fun falseness_N : N;
-fun falsetto_A : A;
-fun falsetto_N : N;
-fun falsification_N : N;
-fun falsify_V2 : V2;
-fun falsity_N : N;
-fun falter_V : V;
-fun falter_V2 : V2;
-fun falteringly_Adv : Adv;
-fun fame_N : N;
-fun famed_A : A;
-fun familiar_A : A;
-fun familiar_N : N;
-fun familiarity_N : N;
-fun familiarize_V2 : V2;
-fun familiarly_Adv : Adv;
-fun family_N : N;
-fun famine_N : N;
-fun famish_V : V;
-fun famish_V2 : V2;
-fun famous_A : A;
-fun famously_Adv : Adv;
-fun fan_N : N;
-fun fan_V : V;
-fun fan_V2 : V2;
-fun fan_belt_N : N;
-fun fanatic_A : A;
-fun fanatic_N : N;
-fun fanatical_A : A;
-fun fanatically_Adv : Adv;
-fun fanaticism_N : N;
-fun fancier_N : N;
-fun fanciful_A : A;
-fun fancifully_Adv : Adv;
-fun fancy_A : A;
-fun fancy_N : N;
-fun fancy_V2 : V2;
-fun fancy_free_A : A;
-fun fandango_N : N;
-fun fanfare_N : N;
-fun fang_N : N;
-fun fanlight_N : N;
-fun fanny_N : N;
-fun fanny_PN : PN;
-fun fantan_N : N;
-fun fantasia_N : N;
-fun fantastic_A : A;
-fun fantastically_Adv : Adv;
-fun fantasy_N : N;
-fun fao_N : N;
-fun far_A : A;
-fun far_Adv : Adv;
-fun far_famed_A : A;
-fun far_fetched_A : A;
-fun far_flung_A : A;
-fun far_off_A : A;
-fun far_reaching_A : A;
-fun far_seeing_A : A;
-fun far_sighted_A : A;
-fun faraway_A : A;
-fun farce_N : N;
-fun farcical_A : A;
-fun farcically_Adv : Adv;
-fun fare_N : N;
-fun fare_V : V;
-fun fare_stage_N : N;
-fun farewell_N : N;
-fun farinaceous_A : A;
-fun farm_N : N;
-fun farm_V : V;
-fun farm_V2 : V2;
-fun farmer_N : N;
-fun farmhand_N : N;
-fun farmhouse_N : N;
-fun farmstead_N : N;
-fun farmyard_N : N;
-fun farnham_PN : PN;
-fun farnworth_PN : PN;
-fun farrago_N : N;
-fun farrier_N : N;
-fun farrow_N : N;
-fun farrow_V : V;
-fun farsi_N : N;
-fun fart_N : N;
-fun fart_V : V;
-fun farther_Adv : Adv;
-fun farthest_Adv : Adv;
-fun farthing_N : N;
-fun fascia_N : N;
-fun fascinate_V2 : V2;
-fun fascinating_A : A;
-fun fascinatingly_Adv : Adv;
-fun fascination_N : N;
-fun fascism_N : N;
-fun fascist_A : A;
-fun fascist_N : N;
-fun fashion_N : N;
-fun fashion_V2 : V2;
-fun fashionable_A : A;
-fun fashionably_Adv : Adv;
-fun fast_A : A;
-fun fast_Adv : Adv;
-fun fast_N : N;
-fun fast_V : V;
-fun fasten_V : V;
-fun fasten_V2 : V2;
-fun fastener_N : N;
-fun fastening_N : N;
-fun fastidious_A : A;
-fun fastidiously_Adv : Adv;
-fun fastidiousness_N : N;
-fun fastness_N : N;
-fun fat_A : A;
-fun fat_N : N;
-fun fat_V2 : V2;
-fun fatal_A : A;
-fun fatalism_N : N;
-fun fatalist_N : N;
-fun fatalistic_A : A;
-fun fatality_N : N;
-fun fate_N : N;
-fun fate_V2 : V2;
-fun fateful_A : A;
-fun fatefully_Adv : Adv;
-fun fathead_N : N;
-fun father_N : N;
-fun father_V2 : V2;
-fun father_in_law_N : N;
-fun fatherhood_N : N;
-fun fatherland_N : N;
-fun fatherless_A : A;
-fun fatherly_A : A;
-fun fathom_N : N;
-fun fathom_V2 : V2;
-fun fathomless_A : A;
-fun fatigue_N : N;
-fun fatigue_V2 : V2;
-fun fatigue_party_N : N;
-fun fatless_A : A;
-fun fatness_N : N;
-fun fatten_V : V;
-fun fatten_V2 : V2;
-fun fattish_A : A;
-fun fatty_A : A;
-fun fatuity_N : N;
-fun fatuous_A : A;
-fun fatuously_Adv : Adv;
-fun fatuousness_N : N;
-fun faucet_N : N;
-fun fauldhouse_PN : PN;
-fun fault_N : N;
-fun fault_V2 : V2;
-fun fault_finder_N : N;
-fun fault_finding_N : N;
-fun faultily_Adv : Adv;
-fun faultless_A : A;
-fun faultlessly_Adv : Adv;
-fun faulty_A : A;
-fun faun_N : N;
-fun faux_pas_N : N;
-fun faversham_PN : PN;
-fun favour_N : N;
-fun favour_V2 : V2;
-fun favourable_A : A;
-fun favourably_Adv : Adv;
-fun favourite_A : A;
-fun favourite_N : N;
-fun favouritism_N : N;
-fun fawley_PN : PN;
-fun fawn_N : N;
-fun fawn_V : V;
-fun facade_N : N;
-fun fbi_PN : PN;
-fun fealty_N : N;
-fun fear_N : N;
-fun fear_V : V;
-fun fear_V2 : V2;
-fun fearful_A : A;
-fun fearfully_Adv : Adv;
-fun fearfulness_N : N;
-fun fearless_A : A;
-fun fearlessly_Adv : Adv;
-fun fearlessness_N : N;
-fun fearsome_A : A;
-fun fearsomely_Adv : Adv;
-fun feasibility_N : N;
-fun feasible_A : A;
-fun feast_N : N;
-fun feast_V : V;
-fun feast_V2 : V2;
-fun feast_day_N : N;
-fun feat_N : N;
-fun feather_N : N;
-fun feather_V2 : V2;
-fun feather_boa_N : N;
-fun featherbed_N : N;
-fun featherbed_V2 : V2;
-fun featherbrained_A : A;
-fun featherstone_PN : PN;
-fun featherweight_N : N;
-fun feathery_A : A;
-fun feature_N : N;
-fun feature_V2 : V2;
-fun featureless_A : A;
-fun feb_PN : PN;
-fun febrile_A : A;
-fun february_N : N;
-fun february_PN : PN;
-fun feckless_A : A;
-fun fecklessly_Adv : Adv;
-fun fecklessness_N : N;
-fun fecund_A : A;
-fun fecundity_N : N;
-fun fed_N : N;
-fun federal_A : A;
-fun federalism_N : N;
-fun federalist_N : N;
-fun federate_V : V;
-fun federate_V2 : V2;
-fun federation_N : N;
-fun fee_N : N;
-fun fee_V2 : V2;
-fun feeble_A : A;
-fun feeble_minded_A : A;
-fun feebleness_N : N;
-fun feebly_Adv : Adv;
-fun feed_N : N;
-fun feed_V : V;
-fun feed_V2 : V2;
-fun feedback_N : N;
-fun feeder_N : N;
-fun feeding_bottle_N : N;
-fun feel_N : N;
-fun feel_V : V;
-fun feel_V2 : V2;
-fun feeler_N : N;
-fun feeling_A : A;
-fun feeling_N : N;
-fun feelingly_Adv : Adv;
-fun feign_V2 : V2;
-fun feint_N : N;
-fun feint_V : V;
-fun feldspar_N : N;
-fun felicitate_V2 : V2;
-fun felicitation_N : N;
-fun felicitous_A : A;
-fun felicitously_Adv : Adv;
-fun felicity_N : N;
-fun felicity_PN : PN;
-fun feline_A : A;
-fun felix_PN : PN;
-fun felixstowe_PN : PN;
-fun fell_A : A;
-fun fell_V2 : V2;
-fun fellah_N : N;
-fun fellow_N : N;
-fun fellow_feeling_N : N;
-fun fellow_traveller_N : N;
-fun fellowship_N : N;
-fun felon_N : N;
-fun felonious_A : A;
-fun felony_N : N;
-fun felspar_N : N;
-fun felt_N : N;
-fun felucca_N : N;
-fun fem_PN : PN;
-fun female_A : A;
-fun female_N : N;
-fun feminine_A : A;
-fun femininity_N : N;
-fun feminism_N : N;
-fun feminist_N : N;
-fun femur_N : N;
-fun fen_N : N;
-fun fence_N : N;
-fun fence_V2 : V2;
-fun fencer_N : N;
-fun fencing_N : N;
-fun fend_V : V;
-fun fend_V2 : V2;
-fun fender_N : N;
-fun fennel_N : N;
-fun feoff_N : N;
-fun feral_A : A;
-fun fermanagh_PN : PN;
-fun ferment_N : N;
-fun ferment_V : V;
-fun ferment_V2 : V2;
-fun fermentation_N : N;
-fun fern_N : N;
-fun ferny_A : A;
-fun ferocious_A : A;
-fun ferociously_Adv : Adv;
-fun ferocity_N : N;
-fun ferrara_PN : PN;
-fun ferret_N : N;
-fun ferret_V : V;
-fun ferret_V2 : V2;
-fun ferroconcrete_N : N;
-fun ferrous_A : A;
-fun ferrule_N : N;
-fun ferry_N : N;
-fun ferry_V : V;
-fun ferry_V2 : V2;
-fun ferryboat_N : N;
-fun ferryhill_PN : PN;
-fun ferryman_N : N;
-fun fertile_A : A;
-fun fertility_N : N;
-fun fertilization_N : N;
-fun fertilize_V2 : V2;
-fun fertilizer_N : N;
-fun ferule_N : N;
-fun fervency_N : N;
-fun fervent_A : A;
-fun fervently_Adv : Adv;
-fun fervid_A : A;
-fun fervidly_Adv : Adv;
-fun fervour_N : N;
-fun festal_A : A;
-fun fester_V : V;
-fun festival_N : N;
-fun festive_A : A;
-fun festivity_N : N;
-fun festoon_N : N;
-fun festoon_V2 : V2;
-fun fetal_A : A;
-fun fetch_V : V;
-fun fetch_V2 : V2;
-fun fetching_A : A;
-fun fete_day_N : N;
-fun fetid_A : A;
-fun fetish_N : N;
-fun fetlock_N : N;
-fun fetter_N : N;
-fun fetter_V2 : V2;
-fun fettle_N : N;
-fun feud_N : N;
-fun feudal_A : A;
-fun feudalism_N : N;
-fun feudatory_A : A;
-fun feudatory_N : N;
-fun fever_N : N;
-fun fevered_A : A;
-fun feverish_A : A;
-fun feverishly_Adv : Adv;
-fun fewness_N : N;
-fun fey_A : A;
-fun fez_N : N;
-fun fiance_N : N;
-fun fiancee_N : N;
-fun fiasco_N : N;
-fun fiat_N : N;
-fun fib_N : N;
-fun fib_V : V;
-fun fibber_N : N;
-fun fibbing_N : N;
-fun fibre_N : N;
-fun fibreboard_N : N;
-fun fibreglass_N : N;
-fun fibrositis_N : N;
-fun fibrous_A : A;
-fun fibula_N : N;
-fun fickle_A : A;
-fun fickleness_N : N;
-fun fiction_N : N;
-fun fictional_A : A;
-fun fictitious_A : A;
-fun fiddle_N : N;
-fun fiddle_V2 : V2;
-fun fiddler_N : N;
-fun fiddlestick_N : N;
-fun fiddling_A : A;
-fun fidelity_N : N;
-fun fidget_N : N;
-fun fidget_V : V;
-fun fidget_V2 : V2;
-fun fidgety_A : A;
-fun fief_N : N;
-fun field_N : N;
-fun field_V : V;
-fun field_V2 : V2;
-fun field_hospital_N : N;
-fun field_officer_N : N;
-fun fielder_N : N;
-fun fieldsman_N : N;
-fun fieldwork_N : N;
-fun fiend_N : N;
-fun fiendish_A : A;
-fun fiendishly_Adv : Adv;
-fun fierce_A : A;
-fun fiercely_Adv : Adv;
-fun fierceness_N : N;
-fun fierily_Adv : Adv;
-fun fieriness_N : N;
-fun fiery_A : A;
-fun fiesta_N : N;
-fun fife_N : N;
-fun fife_PN : PN;
-fun fig_N : N;
-fun fig_leaf_N : N;
-fun fight_N : N;
-fun fight_V : V;
-fun fight_V2 : V2;
-fun fighter_N : N;
-fun fighting_N : N;
-fun figment_N : N;
-fun figurative_A : A;
-fun figuratively_Adv : Adv;
-fun figure_N : N;
-fun figure_V : V;
-fun figure_V2 : V2;
-fun figured_A : A;
-fun figurehead_N : N;
-fun fiji_PN : PN;
-fun fijian_A : A;
-fun fijian_N : N;
-fun filament_N : N;
-fun filature_N : N;
-fun filbert_N : N;
-fun filch_V2 : V2;
-fun file_N : N;
-fun file_V : V;
-fun file_V2 : V2;
-fun filial_A : A;
-fun filibuster_N : N;
-fun filibuster_V : V;
-fun filigree_N : N;
-fun filipino_A : A;
-fun filipino_N : N;
-fun fill_N : N;
-fun fill_V : V;
-fun fill_V2 : V2;
-fun fillet_N : N;
-fun fillet_V2 : V2;
-fun filling_N : N;
-fun fillip_N : N;
-fun filly_N : N;
-fun film_N : N;
-fun film_V : V;
-fun film_V2 : V2;
-fun film_star_N : N;
-fun filmable_A : A;
-fun filmy_A : A;
-fun filter_N : N;
-fun filter_V : V;
-fun filter_V2 : V2;
-fun filtertipped_A : A;
-fun filth_N : N;
-fun filthily_Adv : Adv;
-fun filthiness_N : N;
-fun filthy_A : A;
-fun filtrate_N : N;
-fun filtrate_V : V;
-fun filtrate_V2 : V2;
-fun filtration_N : N;
-fun fin_N : N;
-fun finable_A : A;
-fun final_A : A;
-fun final_N : N;
-fun finale_N : N;
-fun finalist_N : N;
-fun finality_N : N;
-fun finalize_V2 : V2;
-fun finally_Adv : Adv;
-fun finance_N : N;
-fun finance_V2 : V2;
-fun financial_A : A;
-fun financially_Adv : Adv;
-fun financier_N : N;
-fun finch_N : N;
-fun find_N : N;
-fun find_V2 : V2;
-fun finder_N : N;
-fun finding_N : N;
-fun fine_A : A;
-fun fine_Adv : Adv;
-fun fine_N : N;
-fun fine_V2 : V2;
-fun fine_tooth_A : A;
-fun fineable_A : A;
-fun finely_Adv : Adv;
-fun fineness_N : N;
-fun finery_N : N;
-fun finesse_N : N;
-fun finger_N : N;
-fun finger_V2 : V2;
-fun finger_alphabet_N : N;
-fun finger_bowl_N : N;
-fun finger_plate_N : N;
-fun finger_post_N : N;
-fun fingerboard_N : N;
-fun fingermark_N : N;
-fun fingernail_N : N;
-fun fingerprint_N : N;
-fun fingerstall_N : N;
-fun fingertip_N : N;
-fun finical_A : A;
-fun finicky_A : A;
-fun finis_N : N;
-fun finish_N : N;
-fun finish_V : V;
-fun finish_V2 : V2;
-fun finite_A : A;
-fun finland_PN : PN;
-fun finn_N : N;
-fun finnan_N : N;
-fun finnan_haddie_N : N;
-fun finnan_haddock_N : N;
-fun finnish_A : A;
-fun finnish_N : N;
-fun fiona_PN : PN;
-fun fiord_N : N;
-fun fir_N : N;
-fun fir_cone_N : N;
-fun fire_N : N;
-fun fire_V : V;
-fun fire_V2 : V2;
-fun fire_alarm_N : N;
-fun fire_brigade_N : N;
-fun fire_control_N : N;
-fun fire_eater_N : N;
-fun fire_engine_N : N;
-fun fire_escape_N : N;
-fun fire_extinguisher_N : N;
-fun fire_fighter_N : N;
-fun fire_hose_N : N;
-fun fire_power_N : N;
-fun fire_raising_N : N;
-fun fire_walker_N : N;
-fun fire_walking_N : N;
-fun fire_watcher_N : N;
-fun fire_watching_N : N;
-fun firearm_N : N;
-fun fireball_N : N;
-fun firebird_N : N;
-fun firebomb_N : N;
-fun firebox_N : N;
-fun firebrand_N : N;
-fun firebreak_N : N;
-fun firebrick_N : N;
-fun firebug_N : N;
-fun fireclay_N : N;
-fun firecracker_N : N;
-fun firedamp_N : N;
-fun firedog_N : N;
-fun firefly_N : N;
-fun fireguard_N : N;
-fun firelight_N : N;
-fun firelighter_N : N;
-fun fireman_N : N;
-fun firenze_PN : PN;
-fun fireplace_N : N;
-fun fireproof_A : A;
-fun fireside_N : N;
-fun firestone_N : N;
-fun firewater_N : N;
-fun firewood_N : N;
-fun firework_N : N;
-fun firing_line_N : N;
-fun firing_party_N : N;
-fun firing_squad_N : N;
-fun firkin_N : N;
-fun firm_A : A;
-fun firm_Adv : Adv;
-fun firm_N : N;
-fun firm_V : V;
-fun firm_V2 : V2;
-fun firmament_N : N;
-fun firmly_Adv : Adv;
-fun firmness_N : N;
-fun first_class_A : A;
-fun first_class_Adv : Adv;
-fun first_hand_A : A;
-fun first_hand_Adv : Adv;
-fun first_nighter_N : N;
-fun first_rate_A : A;
-fun first_rate_Adv : Adv;
-fun firstborn_A : A;
-fun firstborn_N : N;
-fun firstly_Adv : Adv;
-fun firth_N : N;
-fun fiscal_A : A;
-fun fish_N : N;
-fun fish_V : V;
-fun fish_V2 : V2;
-fun fish_hook_N : N;
-fun fish_knife_N : N;
-fun fish_slice_N : N;
-fun fishball_N : N;
-fun fishbone_N : N;
-fun fishcake_N : N;
-fun fisher_N : N;
-fun fisherman_N : N;
-fun fishery_N : N;
-fun fishing_N : N;
-fun fishing_line_N : N;
-fun fishing_rod_N : N;
-fun fishing_tackle_N : N;
-fun fishmonger_N : N;
-fun fishpaste_N : N;
-fun fishplate_N : N;
-fun fishwife_N : N;
-fun fishy_A : A;
-fun fissile_A : A;
-fun fission_N : N;
-fun fissionable_A : A;
-fun fissiparous_A : A;
-fun fissure_N : N;
-fun fist_N : N;
-fun fistula_N : N;
-fun fit_A : A;
-fun fit_N : N;
-fun fit_V : V;
-fun fit_V2 : V2;
-fun fitful_A : A;
-fun fitfully_Adv : Adv;
-fun fitly_Adv : Adv;
-fun fitment_N : N;
-fun fitness_N : N;
-fun fitter_N : N;
-fun fitting_A : A;
-fun fitting_N : N;
-fun fivefold_A : A;
-fun fivepence_N : N;
-fun fivepenny_A : A;
-fun fiver_N : N;
-fun fives_N : N;
-fun fix_N : N;
-fun fix_V : V;
-fun fix_V2 : V2;
-fun fixate_V2 : V2;
-fun fixation_N : N;
-fun fixative_N : N;
-fun fixed_A : A;
-fun fixedly_Adv : Adv;
-fun fixture_N : N;
-fun fizz_N : N;
-fun fizz_V : V;
-fun fizzle_V : V;
-fun fizzy_A : A;
-fun fjord_N : N;
-fun flabbergast_V2 : V2;
-fun flabbily_Adv : Adv;
-fun flabbiness_N : N;
-fun flabby_A : A;
-fun flaccid_A : A;
-fun flaccidity_N : N;
-fun flag_N : N;
-fun flag_V : V;
-fun flag_V2 : V2;
-fun flag_captain_N : N;
-fun flag_day_N : N;
-fun flagellant_N : N;
-fun flagellate_V2 : V2;
-fun flagellation_N : N;
-fun flageolet_N : N;
-fun flagon_N : N;
-fun flagpole_N : N;
-fun flagrant_A : A;
-fun flagrantly_Adv : Adv;
-fun flagship_N : N;
-fun flagstaff_N : N;
-fun flagstone_N : N;
-fun flail_N : N;
-fun flail_V2 : V2;
-fun flair_N : N;
-fun flak_N : N;
-fun flake_N : N;
-fun flake_V : V;
-fun flakiness_N : N;
-fun flaky_A : A;
-fun flambeau_N : N;
-fun flamboyance_N : N;
-fun flamboyant_A : A;
-fun flamboyantly_Adv : Adv;
-fun flame_N : N;
-fun flame_V : V;
-fun flamethrower_N : N;
-fun flaming_A : A;
-fun flamingo_N : N;
-fun flammable_A : A;
-fun flan_N : N;
-fun flange_N : N;
-fun flank_N : N;
-fun flank_V2 : V2;
-fun flannel_N : N;
-fun flannelette_N : N;
-fun flap_N : N;
-fun flap_V : V;
-fun flap_V2 : V2;
-fun flapjack_N : N;
-fun flapper_N : N;
-fun flare_N : N;
-fun flare_V : V;
-fun flare_V2 : V2;
-fun flare_path_N : N;
-fun flare_up_N : N;
-fun flash_N : N;
-fun flash_V : V;
-fun flash_V2 : V2;
-fun flashback_N : N;
-fun flashbulb_N : N;
-fun flashgun_N : N;
-fun flashily_Adv : Adv;
-fun flashlight_N : N;
-fun flashpoint_N : N;
-fun flashy_A : A;
-fun flask_N : N;
-fun flat_A : A;
-fun flat_Adv : Adv;
-fun flat_N : N;
-fun flat_bottomed_A : A;
-fun flat_car_N : N;
-fun flat_footed_A : A;
-fun flat_iron_N : N;
-fun flatfish_N : N;
-fun flatlet_N : N;
-fun flatly_Adv : Adv;
-fun flatness_N : N;
-fun flatten_V : V;
-fun flatten_V2 : V2;
-fun flatter_V2 : V2;
-fun flatterer_N : N;
-fun flattery_N : N;
-fun flattop_N : N;
-fun flatulence_N : N;
-fun flaunt_V : V;
-fun flaunt_V2 : V2;
-fun flautist_N : N;
-fun flavour_N : N;
-fun flavour_V2 : V2;
-fun flavouring_N : N;
-fun flavourless_A : A;
-fun flaw_N : N;
-fun flawed_A : A;
-fun flawless_A : A;
-fun flawlessly_Adv : Adv;
-fun flax_N : N;
-fun flaxen_A : A;
-fun flay_V2 : V2;
-fun flea_N : N;
-fun flea_bite_N : N;
-fun flea_bitten_A : A;
-fun fleapit_N : N;
-fun fleck_N : N;
-fun fleck_V2 : V2;
-fun fledged_A : A;
-fun fledgeling_N : N;
-fun fledgling_N : N;
-fun flee_V : V;
-fun flee_V2 : V2;
-fun fleece_N : N;
-fun fleece_V2 : V2;
-fun fleecy_A : A;
-fun fleet_A : A;
-fun fleet_N : N;
-fun fleet_PN : PN;
-fun fleet_street_PN : PN;
-fun fleeting_A : A;
-fun fleetly_Adv : Adv;
-fun fleetness_N : N;
-fun fleetwood_PN : PN;
-fun flemish_A : A;
-fun flemish_N : N;
-fun flesh_N : N;
-fun flesh_wound_N : N;
-fun fleshly_A : A;
-fun fleshy_A : A;
-fun fleur_de_lis_N : N;
-fun fleur_de_lys_N : N;
-fun flex_N : N;
-fun flex_V2 : V2;
-fun flexibility_N : N;
-fun flexible_A : A;
-fun flexibly_Adv : Adv;
-fun flibbertigibbet_N : N;
-fun flick_N : N;
-fun flick_V2 : V2;
-fun flick_knife_N : N;
-fun flicker_N : N;
-fun flicker_V : V;
-fun flier_N : N;
-fun flight_N : N;
-fun flight_V2 : V2;
-fun flightless_A : A;
-fun flighty_A : A;
-fun flimsily_Adv : Adv;
-fun flimsiness_N : N;
-fun flimsy_A : A;
-fun flimsy_N : N;
-fun flinch_V : V;
-fun fling_N : N;
-fun fling_V : V;
-fun fling_V2 : V2;
-fun flint_N : N;
-fun flint_PN : PN;
-fun flintstone_N : N;
-fun flinty_A : A;
-fun flip_A : A;
-fun flip_N : N;
-fun flip_V : V;
-fun flip_V2 : V2;
-fun flippancy_N : N;
-fun flippant_A : A;
-fun flippantly_Adv : Adv;
-fun flipper_N : N;
-fun flirt_N : N;
-fun flirt_V : V;
-fun flirtation_N : N;
-fun flirtatious_A : A;
-fun flit_N : N;
-fun flit_V : V;
-fun float_N : N;
-fun float_V : V;
-fun float_V2 : V2;
-fun floatation_N : N;
-fun floating_A : A;
-fun flock_N : N;
-fun flock_V : V;
-fun floe_N : N;
-fun flog_V2 : V2;
-fun flogging_N : N;
-fun flood_N : N;
-fun flood_V : V;
-fun flood_V2 : V2;
-fun flood_tide_N : N;
-fun floodgate_N : N;
-fun floodlight_V2 : V2;
-fun floor_N : N;
-fun floor_V2 : V2;
-fun floor_walker_N : N;
-fun floorboard_N : N;
-fun flooring_N : N;
-fun floozie_N : N;
-fun floozy_N : N;
-fun flop_Adv : Adv;
-fun flop_N : N;
-fun flop_V : V;
-fun flop_V2 : V2;
-fun floppy_A : A;
-fun flora_PN : PN;
-fun floral_A : A;
-fun florence_PN : PN;
-fun floriculture_N : N;
-fun florid_A : A;
-fun florida_PN : PN;
-fun floridly_Adv : Adv;
-fun florin_N : N;
-fun florist_N : N;
-fun florrie_PN : PN;
-fun floss_N : N;
-fun flotation_N : N;
-fun flotilla_N : N;
-fun flotsam_N : N;
-fun flounce_N : N;
-fun flounce_V : V;
-fun flounce_V2 : V2;
-fun flounder_N : N;
-fun flounder_V : V;
-fun flour_N : N;
-fun flour_V2 : V2;
-fun flourish_N : N;
-fun flourish_V : V;
-fun flourish_V2 : V2;
-fun floury_A : A;
-fun flout_V2 : V2;
-fun flow_N : N;
-fun flow_V : V;
-fun flower_N : N;
-fun flower_V : V;
-fun flower_girl_N : N;
-fun flowerbed_N : N;
-fun flowered_A : A;
-fun flowerless_A : A;
-fun flowerpot_N : N;
-fun flowery_A : A;
-fun flu_N : N;
-fun fluctuate_V : V;
-fun fluctuation_N : N;
-fun flue_N : N;
-fun fluency_N : N;
-fun fluent_A : A;
-fun fluently_Adv : Adv;
-fun fluff_N : N;
-fun fluff_V2 : V2;
-fun fluffy_A : A;
-fun fluid_A : A;
-fun fluid_N : N;
-fun fluidity_N : N;
-fun fluke_N : N;
-fun flume_N : N;
-fun flummox_V2 : V2;
-fun flunk_V : V;
-fun flunk_V2 : V2;
-fun flunkey_N : N;
-fun flunky_N : N;
-fun fluorescence_N : N;
-fun fluorescent_A : A;
-fun fluoridate_V2 : V2;
-fun fluoridation_N : N;
-fun fluoride_N : N;
-fun fluoridization_N : N;
-fun fluoridize_V2 : V2;
-fun fluorine_N : N;
-fun flurry_N : N;
-fun flurry_V2 : V2;
-fun flush_A : A;
-fun flush_N : N;
-fun flush_V : V;
-fun flush_V2 : V2;
-fun fluster_N : N;
-fun fluster_V2 : V2;
-fun flute_N : N;
-fun flute_V : V;
-fun flute_V2 : V2;
-fun fluting_N : N;
-fun flutist_N : N;
-fun flutter_N : N;
-fun flutter_V : V;
-fun flutter_V2 : V2;
-fun fluvial_A : A;
-fun flux_N : N;
-fun fly_A : A;
-fun fly_N : N;
-fun fly_V : V;
-fun fly_V2 : V2;
-fun fly_fish_V : V;
-fun fly_fishing_N : N;
-fun fly_swat_N : N;
-fun fly_swatter_N : N;
-fun flyblown_A : A;
-fun flycatcher_N : N;
-fun flyer_N : N;
-fun flying_A : A;
-fun flying_bomb_N : N;
-fun flying_fish_N : N;
-fun flying_fox_N : N;
-fun flying_squad_N : N;
-fun flyleaf_N : N;
-fun flyover_N : N;
-fun flypaper_N : N;
-fun flypast_N : N;
-fun flytrap_N : N;
-fun flyweight_N : N;
-fun flywheel_N : N;
-fun fm_N : N;
-fun fo'c'sle_N : N;
-fun fo_N : N;
-fun foal_N : N;
-fun foal_V : V;
-fun foam_N : N;
-fun foam_V : V;
-fun foam_rubber_N : N;
-fun foamy_A : A;
-fun fob_V2 : V2;
-fun focal_A : A;
-fun focus_N : N;
-fun focus_V : V;
-fun focus_V2 : V2;
-fun fodder_N : N;
-fun foe_N : N;
-fun foetal_A : A;
-fun foetus_N : N;
-fun fog_N : N;
-fun fog_V2 : V2;
-fun fogbank_N : N;
-fun fogbound_A : A;
-fun fogey_N : N;
-fun foggia_PN : PN;
-fun foggy_A : A;
-fun foghorn_N : N;
-fun foglamp_N : N;
-fun fogsignal_N : N;
-fun foible_N : N;
-fun foil_N : N;
-fun foil_V2 : V2;
-fun foist_V2 : V2;
-fun fold_N : N;
-fun fold_V : V;
-fun fold_V2 : V2;
-fun folder_N : N;
-fun foliage_N : N;
-fun folio_N : N;
-fun folk_N : N;
-fun folk_dance_N : N;
-fun folkestone_PN : PN;
-fun folklore_N : N;
-fun folksong_N : N;
-fun folksy_A : A;
-fun folktale_N : N;
-fun follow_V : V;
-fun follow_V2 : V2;
-fun follow_on_N : N;
-fun follow_through_N : N;
-fun follow_up_N : N;
-fun follower_N : N;
-fun following_A : A;
-fun following_N : N;
-fun folly_N : N;
-fun foment_V2 : V2;
-fun fomentation_N : N;
-fun fond_A : A;
-fun fondant_N : N;
-fun fondle_V2 : V2;
-fun fondly_Adv : Adv;
-fun fondness_N : N;
-fun font_N : N;
-fun foochow_PN : PN;
-fun food_N : N;
-fun foodless_A : A;
-fun foodstuff_N : N;
-fun fool_N : N;
-fun fool_V : V;
-fun fool_V2 : V2;
-fun foolery_N : N;
-fun foolhardiness_N : N;
-fun foolhardy_A : A;
-fun foolish_A : A;
-fun foolishly_Adv : Adv;
-fun foolishness_N : N;
-fun foolproof_A : A;
-fun foolscap_N : N;
-fun foot_N : N;
-fun foot_V : V;
-fun foot_V2 : V2;
-fun foot_and_mouth_A : A;
-fun foot_and_mouth_N : N;
-fun foot_bath_N : N;
-fun foot_pound_N : N;
-fun foot_race_N : N;
-fun foot_rot_N : N;
-fun footage_N : N;
-fun football_N : N;
-fun footballer_N : N;
-fun footboard_N : N;
-fun footbridge_N : N;
-fun footed_A : A;
-fun footer_N : N;
-fun footfall_N : N;
-fun footfault_N : N;
-fun foothold_N : N;
-fun footing_N : N;
-fun footle_V : V;
-fun footle_V2 : V2;
-fun footling_A : A;
-fun footloose_A : A;
-fun footman_N : N;
-fun footmark_N : N;
-fun footnote_N : N;
-fun footpath_N : N;
-fun footplate_N : N;
-fun footprint_N : N;
-fun footslog_V : V;
-fun footslogger_N : N;
-fun footsore_A : A;
-fun footstep_N : N;
-fun footstool_N : N;
-fun footsure_A : A;
-fun footwear_N : N;
-fun footwork_N : N;
-fun fop_N : N;
-fun foppish_A : A;
-fun forage_N : N;
-fun forage_V : V;
-fun foray_N : N;
-fun foray_V : V;
-fun forbear_N : N;
-fun forbear_V : V;
-fun forbear_V2 : V2;
-fun forbearance_N : N;
-fun forbid_V2 : V2;
-fun forbidding_A : A;
-fun forbiddingly_Adv : Adv;
-fun force_N : N;
-fun force_V2 : V2;
-fun force_feed_V2 : V2;
-fun force_land_V : V;
-fun force_land_V2 : V2;
-fun force_majeure_N : N;
-fun forceful_A : A;
-fun forcefully_Adv : Adv;
-fun forcefulness_N : N;
-fun forcemeat_N : N;
-fun forcible_A : A;
-fun forcibly_Adv : Adv;
-fun ford_N : N;
-fun ford_V2 : V2;
-fun fordable_A : A;
-fun fore_A : A;
-fun fore_Adv : Adv;
-fun fore_N : N;
-fun forearm_N : N;
-fun forearm_V2 : V2;
-fun forebode_V2 : V2;
-fun foreboding_N : N;
-fun forecast_N : N;
-fun forecast_V2 : V2;
-fun forecaster_N : N;
-fun forecastle_N : N;
-fun foreclose_V : V;
-fun foreclose_V2 : V2;
-fun foreclosure_N : N;
-fun forecourt_N : N;
-fun foredoom_V2 : V2;
-fun forefather_N : N;
-fun forefinger_N : N;
-fun forefoot_N : N;
-fun forefront_N : N;
-fun foregather_V : V;
-fun forego_V : V;
-fun forego_V2 : V2;
-fun foregoing_A : A;
-fun foregone_A : A;
-fun foreground_N : N;
-fun forehand_A : A;
-fun forehead_N : N;
-fun foreign_A : A;
-fun foreigner_N : N;
-fun foreknow_V : V;
-fun foreknow_V2 : V2;
-fun foreknowledge_N : N;
-fun foreland_N : N;
-fun foreleg_N : N;
-fun forelock_N : N;
-fun foreman_N : N;
-fun foremast_N : N;
-fun foremost_A : A;
-fun foremost_Adv : Adv;
-fun forename_N : N;
-fun forenoon_N : N;
-fun forensic_A : A;
-fun foreordain_V2 : V2;
-fun forerunner_N : N;
-fun foresail_N : N;
-fun foresee_V2 : V2;
-fun foreseeable_A : A;
-fun foreshadow_V2 : V2;
-fun foreshore_N : N;
-fun foreshorten_V2 : V2;
-fun foresight_N : N;
-fun foreskin_N : N;
-fun forest_N : N;
-fun forestall_V2 : V2;
-fun forester_N : N;
-fun forestry_N : N;
-fun foreswear_V2 : V2;
-fun foretaste_N : N;
-fun foretell_V2 : V2;
-fun forethought_N : N;
-fun foretop_N : N;
-fun forever_Adv : Adv;
-fun forewarn_V2 : V2;
-fun forewoman_N : N;
-fun foreword_N : N;
-fun forfar_PN : PN;
-fun forfeit_N : N;
-fun forfeit_V2 : V2;
-fun forfeiture_N : N;
-fun forgather_V : V;
-fun forge_N : N;
-fun forge_V : V;
-fun forge_V2 : V2;
-fun forger_N : N;
-fun forgery_N : N;
-fun forget_V : V;
-fun forget_V2 : V2;
-fun forget_me_not_N : N;
-fun forgetful_A : A;
-fun forgetfully_Adv : Adv;
-fun forgetfulness_N : N;
-fun forging_N : N;
-fun forgivable_A : A;
-fun forgivably_Adv : Adv;
-fun forgive_V : V;
-fun forgive_V2 : V2;
-fun forgiveness_N : N;
-fun forgiving_A : A;
-fun forgivingly_Adv : Adv;
-fun forgo_V2 : V2;
-fun fork_N : N;
-fun fork_V : V;
-fun fork_V2 : V2;
-fun forked_A : A;
-fun forli_PN : PN;
-fun forlorn_A : A;
-fun forlornly_Adv : Adv;
-fun forlornness_N : N;
-fun form_N : N;
-fun form_V : V;
-fun form_V2 : V2;
-fun formal_A : A;
-fun formaldehyde_N : N;
-fun formalin_N : N;
-fun formalism_N : N;
-fun formality_N : N;
-fun formalize_V2 : V2;
-fun formally_Adv : Adv;
-fun format_N : N;
-fun formation_N : N;
-fun formative_A : A;
-fun formby_PN : PN;
-fun former_A : A;
-fun formerly_Adv : Adv;
-fun formic_A : A;
-fun formica_N : N;
-fun formidable_A : A;
-fun formidably_Adv : Adv;
-fun formless_A : A;
-fun formlessly_Adv : Adv;
-fun formosa_PN : PN;
-fun formula_N : N;
-fun formulate_V2 : V2;
-fun formulation_N : N;
-fun fornicate_V : V;
-fun fornication_N : N;
-fun forrader_Adv : Adv;
-fun forsake_V2 : V2;
-fun forsooth_Adv : Adv;
-fun forswear_V2 : V2;
-fun forsythia_N : N;
-fun fort_N : N;
-fun fort_lauderdale_PN : PN;
-fun fort_william_PN : PN;
-fun fort_worth_PN : PN;
-fun fortaleza_PN : PN;
-fun forte_A : A;
-fun forte_Adv : Adv;
-fun forte_N : N;
-fun forth_Adv : Adv;
-fun forthcoming_A : A;
-fun forthright_A : A;
-fun forthwith_Adv : Adv;
-fun fortieth_A : A;
-fun fortieth_N : N;
-fun fortification_N : N;
-fun fortify_V2 : V2;
-fun fortissimo_A : A;
-fun fortissimo_Adv : Adv;
-fun fortitude_N : N;
-fun fortnight_N : N;
-fun fortnightly_A : A;
-fun fortnightly_Adv : Adv;
-fun fortress_N : N;
-fun fortuitous_A : A;
-fun fortuitously_Adv : Adv;
-fun fortunate_A : A;
-fun fortunately_Adv : Adv;
-fun fortune_N : N;
-fun forty_A : A;
-fun forty_N : N;
-fun fortyish_A : A;
-fun forum_N : N;
-fun forward_A : A;
-fun forward_Adv : Adv;
-fun forward_N : N;
-fun forward_V2 : V2;
-fun forwardness_N : N;
-fun forwards_Adv : Adv;
-fun fosse_N : N;
-fun fossil_N : N;
-fun fossilization_N : N;
-fun fossilize_V : V;
-fun fossilize_V2 : V2;
-fun foster_V2 : V2;
-fun foster_brother_N : N;
-fun foster_child_N : N;
-fun foster_father_N : N;
-fun foster_mother_N : N;
-fun foster_parent_N : N;
-fun foster_sister_N : N;
-fun foul_A : A;
-fun foul_N : N;
-fun foul_V : V;
-fun foul_V2 : V2;
-fun foul_mouthed_A : A;
-fun foul_spoken_A : A;
-fun foully_Adv : Adv;
-fun foulness_N : N;
-fun found_V2 : V2;
-fun foundation_N : N;
-fun foundation_stone_N : N;
-fun founder_N : N;
-fun founder_V : V;
-fun founder_V2 : V2;
-fun foundling_N : N;
-fun foundress_N : N;
-fun foundry_N : N;
-fun fount_N : N;
-fun fountain_N : N;
-fun fountain_head_N : N;
-fun fountain_pen_N : N;
-fun four_in_hand_N : N;
-fun four_part_A : A;
-fun four_ply_A : A;
-fun four_poster_N : N;
-fun four_pounder_N : N;
-fun four_wheeler_N : N;
-fun fourfold_A : A;
-fun fourfold_Adv : Adv;
-fun fourpence_N : N;
-fun fourpenny_A : A;
-fun fourscore_A : A;
-fun fourscore_N : N;
-fun foursome_N : N;
-fun foursquare_A : A;
-fun fowey_PN : PN;
-fun fowl_N : N;
-fun fowl_V : V;
-fun fowl_run_N : N;
-fun fowler_N : N;
-fun fowlingpiece_N : N;
-fun fowlpest_N : N;
-fun fox_N : N;
-fun fox_V2 : V2;
-fun fox_terrier_N : N;
-fun foxglove_N : N;
-fun foxhole_N : N;
-fun foxhound_N : N;
-fun foxhunt_N : N;
-fun foxhunt_V : V;
-fun foxhunter_N : N;
-fun foxtrot_N : N;
-fun foxy_A : A;
-fun foyer_N : N;
-fun fr_PN : PN;
-fun fracas_N : N;
-fun fraction_N : N;
-fun fractional_A : A;
-fun fractious_A : A;
-fun fractiously_Adv : Adv;
-fun fractiousness_N : N;
-fun fracture_N : N;
-fun fracture_V : V;
-fun fracture_V2 : V2;
-fun fragile_A : A;
-fun fragility_N : N;
-fun fragment_N : N;
-fun fragment_V : V;
-fun fragmentary_A : A;
-fun fragmentation_N : N;
-fun fragrance_N : N;
-fun fragrant_A : A;
-fun frail_A : A;
-fun frailty_N : N;
-fun frame_N : N;
-fun frame_V : V;
-fun frame_V2 : V2;
-fun frame_up_N : N;
-fun framework_N : N;
-fun frampton_cotterell_PN : PN;
-fun fran_PN : PN;
-fun franc_N : N;
-fun france_PN : PN;
-fun frances_PN : PN;
-fun franchise_N : N;
-fun francis_PN : PN;
-fun franciscan_A : A;
-fun franciscan_N : N;
-fun frank_A : A;
-fun frank_N : N;
-fun frank_PN : PN;
-fun frank_V2 : V2;
-fun frankfurt_PN : PN;
-fun frankfurter_N : N;
-fun frankie_PN : PN;
-fun frankincense_N : N;
-fun franking_machine_N : N;
-fun franklin_N : N;
-fun frankly_Adv : Adv;
-fun frankness_N : N;
-fun frantic_A : A;
-fun frantically_Adv : Adv;
-fun fraserburgh_PN : PN;
-fun fraternal_A : A;
-fun fraternally_Adv : Adv;
-fun fraternity_N : N;
-fun fraternization_N : N;
-fun fraternize_V : V;
-fun fratricide_N : N;
-fun frau_N : N;
-fun fraud_N : N;
-fun fraudulent_A : A;
-fun fraudulently_Adv : Adv;
-fun fraught_A : A;
-fun fray_N : N;
-fun fray_V : V;
-fun fray_V2 : V2;
-fun frazzle_N : N;
-fun freak_N : N;
-fun freak_V : V;
-fun freak_V2 : V2;
-fun freak_out_N : N;
-fun freakish_A : A;
-fun freakishly_Adv : Adv;
-fun freakishness_N : N;
-fun freaky_A : A;
-fun freckle_N : N;
-fun freckle_V : V;
-fun freckle_V2 : V2;
-fun freckleton_PN : PN;
-fun fred_PN : PN;
-fun freda_PN : PN;
-fun freddie_PN : PN;
-fun freddy_PN : PN;
-fun frederick_PN : PN;
-fun frederiksberg_PN : PN;
-fun free_A : A;
-fun free_V2 : V2;
-fun free_and_easy_A : A;
-fun free_for_all_N : N;
-fun free_handed_A : A;
-fun free_list_N : N;
-fun free_liver_N : N;
-fun free_living_N : N;
-fun free_range_A : A;
-fun free_spoken_A : A;
-fun free_standing_A : A;
-fun free_thinker_N : N;
-fun free_thinking_A : A;
-fun free_thought_N : N;
-fun free_trader_N : N;
-fun freebooter_N : N;
-fun freeborn_A : A;
-fun freedman_N : N;
-fun freedom_N : N;
-fun freehand_A : A;
-fun freehold_N : N;
-fun freeholder_N : N;
-fun freelance_N : N;
-fun freelance_V : V;
-fun freely_Adv : Adv;
-fun freeman_N : N;
-fun freemason_N : N;
-fun freemasonry_N : N;
-fun freesia_N : N;
-fun freestone_N : N;
-fun freestyle_N : N;
-fun freeway_N : N;
-fun freewheel_V : V;
-fun freewill_A : A;
-fun freeze_N : N;
-fun freeze_V : V;
-fun freeze_V2 : V2;
-fun freezer_N : N;
-fun freezing_mixture_N : N;
-fun freezing_point_N : N;
-fun freiburg_PN : PN;
-fun freight_N : N;
-fun freight_V2 : V2;
-fun freight_train_N : N;
-fun freighter_N : N;
-fun freightliner_N : N;
-fun french_A : A;
-fun french_N : N;
-fun frenchman_N : N;
-fun frenchwoman_N : N;
-fun frenetic_A : A;
-fun frenzied_A : A;
-fun frenziedly_Adv : Adv;
-fun frenzy_N : N;
-fun frequency_N : N;
-fun frequent_A : A;
-fun frequent_V2 : V2;
-fun frequently_Adv : Adv;
-fun fresco_N : N;
-fun fresco_V2 : V2;
-fun fresh_A : A;
-fun fresh_Adv : Adv;
-fun freshen_V : V;
-fun freshen_V2 : V2;
-fun fresher_N : N;
-fun freshly_Adv : Adv;
-fun freshman_N : N;
-fun freshness_N : N;
-fun freshwater_A : A;
-fun freshwater_PN : PN;
-fun fret_N : N;
-fun fret_V : V;
-fun fret_V2 : V2;
-fun fretful_A : A;
-fun fretfully_Adv : Adv;
-fun fretsaw_N : N;
-fun fretwork_N : N;
-fun freudian_A : A;
-fun fri_PN : PN;
-fun friability_N : N;
-fun friable_A : A;
-fun friar_N : N;
-fun fricassee_N : N;
-fun fricassee_V2 : V2;
-fun fricative_A : A;
-fun fricative_N : N;
-fun friction_N : N;
-fun friday_N : N;
-fun friday_PN : PN;
-fun fridge_N : N;
-fun friend_N : N;
-fun friendless_A : A;
-fun friendlessness_N : N;
-fun friendliness_N : N;
-fun friendly_A : A;
-fun friendship_N : N;
-fun frier_N : N;
-fun frieze_N : N;
-fun frigate_N : N;
-fun fright_N : N;
-fun fright_V2 : V2;
-fun frighten_V2 : V2;
-fun frightened_A : A;
-fun frightening_A : A;
-fun frighteningly_Adv : Adv;
-fun frightful_A : A;
-fun frightfully_Adv : Adv;
-fun frightfulness_N : N;
-fun frigid_A : A;
-fun frigidity_N : N;
-fun frigidly_Adv : Adv;
-fun frill_N : N;
-fun frilled_A : A;
-fun frilly_A : A;
-fun fringe_N : N;
-fun fringe_V2 : V2;
-fun frinton_PN : PN;
-fun frippery_N : N;
-fun frisk_V : V;
-fun frisk_V2 : V2;
-fun friskily_Adv : Adv;
-fun frisky_A : A;
-fun frisson_N : N;
-fun fritter_N : N;
-fun fritter_V2 : V2;
-fun frivol_V : V;
-fun frivol_V2 : V2;
-fun frivolity_N : N;
-fun frivolous_A : A;
-fun frivolously_Adv : Adv;
-fun frizz_V2 : V2;
-fun frizzle_V : V;
-fun frizzle_V2 : V2;
-fun frizzy_A : A;
-fun fro_Adv : Adv;
-fun frock_N : N;
-fun frock_coat_N : N;
-fun frodsham_PN : PN;
-fun frog_N : N;
-fun frogman_N : N;
-fun frogmarch_V2 : V2;
-fun frolic_N : N;
-fun frolic_V : V;
-fun frolicsome_A : A;
-fun frome_PN : PN;
-fun frond_N : N;
-fun front_N : N;
-fun front_V : V;
-fun front_V2 : V2;
-fun front_bench_N : N;
-fun front_bencher_N : N;
-fun frontage_N : N;
-fun frontal_A : A;
-fun frontier_N : N;
-fun frontiersman_N : N;
-fun frontispiece_N : N;
-fun frost_N : N;
-fun frost_V : V;
-fun frost_V2 : V2;
-fun frost_bound_A : A;
-fun frostbite_N : N;
-fun frostbitten_A : A;
-fun frostily_Adv : Adv;
-fun frostiness_N : N;
-fun frosting_N : N;
-fun frosty_A : A;
-fun froth_N : N;
-fun froth_V : V;
-fun frothily_Adv : Adv;
-fun frothiness_N : N;
-fun frothy_A : A;
-fun froward_A : A;
-fun frown_N : N;
-fun frown_V : V;
-fun frowningly_Adv : Adv;
-fun frowsty_A : A;
-fun frowzy_A : A;
-fun frs_N : N;
-fun fructification_N : N;
-fun fructify_V : V;
-fun fructify_V2 : V2;
-fun frugal_A : A;
-fun frugality_N : N;
-fun frugally_Adv : Adv;
-fun fruit_N : N;
-fun fruit_V : V;
-fun fruit_fly_N : N;
-fun fruitcake_N : N;
-fun fruiterer_N : N;
-fun fruitful_A : A;
-fun fruitfully_Adv : Adv;
-fun fruitfulness_N : N;
-fun fruition_N : N;
-fun fruitless_A : A;
-fun fruitlessly_Adv : Adv;
-fun fruitlessness_N : N;
-fun fruity_A : A;
-fun frump_N : N;
-fun frumpish_A : A;
-fun frumpy_A : A;
-fun frustrate_V2 : V2;
-fun frustration_N : N;
-fun fry_N : N;
-fun fry_V : V;
-fun fry_V2 : V2;
-fun fry_pan_N : N;
-fun fryer_N : N;
-fun frying_pan_N : N;
-fun fraulein_N : N;
-fun ft_PN : PN;
-fun fuchsia_N : N;
-fun fuck_V : V;
-fun fuck_V2 : V2;
-fun fuck_all_N : N;
-fun fucker_N : N;
-fun fucking_A : A;
-fun fuddle_V2 : V2;
-fun fuddy_duddy_N : N;
-fun fudge_N : N;
-fun fuel_N : N;
-fun fuel_V : V;
-fun fuel_V2 : V2;
-fun fug_N : N;
-fun fuggy_A : A;
-fun fugitive_A : A;
-fun fugitive_N : N;
-fun fugue_N : N;
-fun fulcrum_N : N;
-fun fulfil_V2 : V2;
-fun fulfilment_N : N;
-fun full_A : A;
-fun full_blooded_A : A;
-fun full_blown_A : A;
-fun full_dress_A : A;
-fun full_fashioned_A : A;
-fun full_fledged_A : A;
-fun full_grown_A : A;
-fun full_length_A : A;
-fun full_page_A : A;
-fun full_scale_A : A;
-fun full_time_A : A;
-fun full_time_Adv : Adv;
-fun fullback_N : N;
-fun fuller_N : N;
-fun fullness_N : N;
-fun fully_Adv : Adv;
-fun fully_fashioned_A : A;
-fun fully_fledged_A : A;
-fun fully_grown_A : A;
-fun fulmar_N : N;
-fun fulminate_V : V;
-fun fulmination_N : N;
-fun fulsome_A : A;
-fun fulsomely_Adv : Adv;
-fun fulsomeness_N : N;
-fun fumble_V : V;
-fun fumble_V2 : V2;
-fun fumbler_N : N;
-fun fume_N : N;
-fun fume_V : V;
-fun fume_V2 : V2;
-fun fumigate_V2 : V2;
-fun fumigation_N : N;
-fun fun_N : N;
-fun function_N : N;
-fun function_V : V;
-fun functional_A : A;
-fun functionalism_N : N;
-fun functionalist_N : N;
-fun functionally_Adv : Adv;
-fun functionary_N : N;
-fun fund_N : N;
-fun fund_V2 : V2;
-fun fundamental_A : A;
-fun fundamental_N : N;
-fun fundamentalism_N : N;
-fun fundamentalist_N : N;
-fun fundamentally_Adv : Adv;
-fun funeral_N : N;
-fun funereal_A : A;
-fun funfair_N : N;
-fun fungicide_N : N;
-fun fungoid_A : A;
-fun fungous_A : A;
-fun fungus_N : N;
-fun funicular_N : N;
-fun funk_N : N;
-fun funk_V : V;
-fun funk_V2 : V2;
-fun funky_A : A;
-fun funnel_N : N;
-fun funnel_V : V;
-fun funnel_V2 : V2;
-fun funnily_Adv : Adv;
-fun funniness_N : N;
-fun funny_A : A;
-fun funny_bone_N : N;
-fun fur_N : N;
-fun furbelow_N : N;
-fun furbish_V2 : V2;
-fun furious_A : A;
-fun furiously_Adv : Adv;
-fun furl_V : V;
-fun furl_V2 : V2;
-fun furlong_N : N;
-fun furlough_N : N;
-fun furnace_N : N;
-fun furnish_V2 : V2;
-fun furniture_N : N;
-fun furore_N : N;
-fun furrier_N : N;
-fun furrow_N : N;
-fun furrow_V2 : V2;
-fun furry_A : A;
-fun furth_PN : PN;
-fun further_Adv : Adv;
-fun further_V2 : V2;
-fun furtherance_N : N;
-fun furthermore_Adv : Adv;
-fun furthermost_A : A;
-fun furthest_A : A;
-fun furthest_Adv : Adv;
-fun furtive_A : A;
-fun furtively_Adv : Adv;
-fun furtiveness_N : N;
-fun fury_N : N;
-fun furze_N : N;
-fun fuse_N : N;
-fun fuse_V : V;
-fun fuse_V2 : V2;
-fun fuselage_N : N;
-fun fushun_PN : PN;
-fun fusilier_N : N;
-fun fusillade_N : N;
-fun fusion_N : N;
-fun fuss_N : N;
-fun fuss_V : V;
-fun fuss_V2 : V2;
-fun fussily_Adv : Adv;
-fun fussiness_N : N;
-fun fusspot_N : N;
-fun fussy_A : A;
-fun fustian_N : N;
-fun fusty_A : A;
-fun futile_A : A;
-fun futility_N : N;
-fun future_A : A;
-fun future_N : N;
-fun futureless_A : A;
-fun futurism_N : N;
-fun futurist_N : N;
-fun futurity_N : N;
-fun fuze_N : N;
-fun fuzz_N : N;
-fun fuzzy_A : A;
-fun fwd_PN : PN;
-fun fete_N : N;
-fun fete_V2 : V2;
-fun fuhrer_N : N;
-fun g_man_N : N;
-fun gab_N : N;
-fun gabardine_N : N;
-fun gabble_N : N;
-fun gabble_V : V;
-fun gabble_V2 : V2;
-fun gaberdine_N : N;
-fun gable_N : N;
-fun gabled_A : A;
-fun gabon_PN : PN;
-fun gabonese_A : A;
-fun gabonese_N : N;
-fun gad_V : V;
-fun gadabout_N : N;
-fun gadfly_N : N;
-fun gadget_N : N;
-fun gadgetry_N : N;
-fun gael_N : N;
-fun gaelic_A : A;
-fun gaelic_N : N;
-fun gaff_N : N;
-fun gaffe_N : N;
-fun gaffer_N : N;
-fun gag_N : N;
-fun gag_V : V;
-fun gag_V2 : V2;
-fun gaga_A : A;
-fun gage_N : N;
-fun gage_V2 : V2;
-fun gaggle_N : N;
-fun gaiety_N : N;
-fun gaily_Adv : Adv;
-fun gain_N : N;
-fun gain_V : V;
-fun gain_V2 : V2;
-fun gainful_A : A;
-fun gainfully_Adv : Adv;
-fun gainsay_V2 : V2;
-fun gainsborough_N : N;
-fun gainsborough_PN : PN;
-fun gait_N : N;
-fun gaiter_N : N;
-fun gal_N : N;
-fun gala_N : N;
-fun galactic_A : A;
-fun galantine_N : N;
-fun galashiels_PN : PN;
-fun galaxy_N : N;
-fun gale_N : N;
-fun gall_N : N;
-fun gall_V2 : V2;
-fun gallant_A : A;
-fun gallant_N : N;
-fun gallantly_Adv : Adv;
-fun gallantry_N : N;
-fun galleon_N : N;
-fun gallery_N : N;
-fun galley_N : N;
-fun galley_proof_N : N;
-fun galley_slave_N : N;
-fun gallic_A : A;
-fun gallicism_N : N;
-fun gallivant_V : V;
-fun gallon_N : N;
-fun gallop_N : N;
-fun gallop_V : V;
-fun gallop_V2 : V2;
-fun galloway_PN : PN;
-fun gallows_bird_N : N;
-fun gallstone_N : N;
-fun gallup_PN : PN;
-fun galore_Adv : Adv;
-fun galosh_N : N;
-fun galumph_V : V;
-fun galvanic_A : A;
-fun galvanism_N : N;
-fun galvanize_V2 : V2;
-fun galway_PN : PN;
-fun gambia_PN : PN;
-fun gambian_A : A;
-fun gambian_N : N;
-fun gambit_N : N;
-fun gamble_N : N;
-fun gamble_V : V;
-fun gamble_V2 : V2;
-fun gambler_N : N;
-fun gambling_N : N;
-fun gambling_den_N : N;
-fun gamboge_N : N;
-fun gambol_N : N;
-fun gambol_V : V;
-fun game_A : A;
-fun game_N : N;
-fun game_V : V;
-fun game_V2 : V2;
-fun game_bag_N : N;
-fun game_bird_N : N;
-fun game_licence_N : N;
-fun gamecock_N : N;
-fun gamekeeper_N : N;
-fun gamely_Adv : Adv;
-fun games_master_N : N;
-fun games_mistress_N : N;
-fun gamesmanship_N : N;
-fun gaming_house_N : N;
-fun gaming_table_N : N;
-fun gamma_N : N;
-fun gammon_N : N;
-fun gammy_A : A;
-fun gamp_N : N;
-fun gamut_N : N;
-fun gamy_A : A;
-fun gander_N : N;
-fun gang_N : N;
-fun gang_V : V;
-fun ganger_N : N;
-fun gangling_A : A;
-fun ganglion_N : N;
-fun gangplank_N : N;
-fun gangrene_N : N;
-fun gangrene_V : V;
-fun gangrene_V2 : V2;
-fun gangrenous_A : A;
-fun gangster_N : N;
-fun gangway_N : N;
-fun gannet_N : N;
-fun gantry_N : N;
-fun gaol_N : N;
-fun gaol_V2 : V2;
-fun gaolbird_N : N;
-fun gaolbreak_N : N;
-fun gaoler_N : N;
-fun gap_N : N;
-fun gap_toothed_A : A;
-fun gape_N : N;
-fun gape_V : V;
-fun garage_N : N;
-fun garage_V2 : V2;
-fun garb_N : N;
-fun garb_V2 : V2;
-fun garbage_N : N;
-fun garbage_can_N : N;
-fun garble_V2 : V2;
-fun garden_N : N;
-fun garden_V : V;
-fun garden_truck_N : N;
-fun gardener_N : N;
-fun gardenia_N : N;
-fun gardening_N : N;
-fun gareth_PN : PN;
-fun garforth_PN : PN;
-fun gargantuan_A : A;
-fun gargle_N : N;
-fun gargle_V : V;
-fun gargle_V2 : V2;
-fun gargoyle_N : N;
-fun garish_A : A;
-fun garishly_Adv : Adv;
-fun garland_N : N;
-fun garland_V2 : V2;
-fun garlic_N : N;
-fun garment_N : N;
-fun garner_N : N;
-fun garner_V2 : V2;
-fun garnet_N : N;
-fun garnish_N : N;
-fun garnish_V2 : V2;
-fun garotte_N : N;
-fun garotte_V2 : V2;
-fun garret_N : N;
-fun garrison_N : N;
-fun garrison_V2 : V2;
-fun garrotte_N : N;
-fun garrotte_V2 : V2;
-fun garrowhill_PN : PN;
-fun garrulity_N : N;
-fun garrulous_A : A;
-fun garter_N : N;
-fun gary_PN : PN;
-fun gas_N : N;
-fun gas_V : V;
-fun gas_V2 : V2;
-fun gas_bracket_N : N;
-fun gas_cooker_N : N;
-fun gas_engine_N : N;
-fun gas_fitter_N : N;
-fun gas_helmet_N : N;
-fun gas_holder_N : N;
-fun gas_mask_N : N;
-fun gas_meter_N : N;
-fun gas_oven_N : N;
-fun gas_ring_N : N;
-fun gas_station_N : N;
-fun gas_stove_N : N;
-fun gasbag_N : N;
-fun gaseous_A : A;
-fun gash_N : N;
-fun gash_V2 : V2;
-fun gasification_N : N;
-fun gasify_V : V;
-fun gasify_V2 : V2;
-fun gasket_N : N;
-fun gaslight_N : N;
-fun gasmask_N : N;
-fun gasolene_N : N;
-fun gasoline_N : N;
-fun gasometer_N : N;
-fun gasp_N : N;
-fun gasp_V : V;
-fun gasp_V2 : V2;
-fun gassy_A : A;
-fun gastric_A : A;
-fun gastritis_N : N;
-fun gastronomic_A : A;
-fun gastronomy_N : N;
-fun gasworks_N : N;
-fun gate_N : N;
-fun gate_V2 : V2;
-fun gatecrash_V2 : V2;
-fun gatecrasher_N : N;
-fun gatehouse_N : N;
-fun gatepost_N : N;
-fun gateshead_PN : PN;
-fun gateway_N : N;
-fun gather_V : V;
-fun gather_V2 : V2;
-fun gatherer_N : N;
-fun gathering_N : N;
-fun gatt_N : N;
-fun gauche_A : A;
-fun gaucherie_N : N;
-fun gaucho_N : N;
-fun gaud_N : N;
-fun gaudily_Adv : Adv;
-fun gaudy_A : A;
-fun gaudy_N : N;
-fun gauge_N : N;
-fun gauge_V2 : V2;
-fun gaul_N : N;
-fun gaunt_A : A;
-fun gauntlet_N : N;
-fun gauntness_N : N;
-fun gauze_N : N;
-fun gauzy_A : A;
-fun gavel_N : N;
-fun gavin_PN : PN;
-fun gavotte_N : N;
-fun gawk_N : N;
-fun gawkiness_N : N;
-fun gawky_A : A;
-fun gawp_V : V;
-fun gay_A : A;
-fun gay_N : N;
-fun gayness_N : N;
-fun gaze_N : N;
-fun gaze_V : V;
-fun gazelle_N : N;
-fun gazette_N : N;
-fun gazette_V2 : V2;
-fun gazetteer_N : N;
-fun gazump_V : V;
-fun gazump_V2 : V2;
-fun gb_PN : PN;
-fun gcse_N : N;
-fun gcses_N : N;
-fun gdansk_PN : PN;
-fun gdn_PN : PN;
-fun gdns_PN : PN;
-fun gear_N : N;
-fun gear_V : V;
-fun gear_V2 : V2;
-fun gear_case_N : N;
-fun gearbox_N : N;
-fun gearshift_N : N;
-fun gecko_N : N;
-fun gee_gee_N : N;
-fun geezer_N : N;
-fun geiger_N : N;
-fun geisha_N : N;
-fun gel_N : N;
-fun gel_V : V;
-fun gelatin_N : N;
-fun gelatine_N : N;
-fun gelatinous_A : A;
-fun geld_V2 : V2;
-fun gelding_N : N;
-fun gelignite_N : N;
-fun gelligaer_PN : PN;
-fun gelsenkirchen_PN : PN;
-fun gem_N : N;
-fun gemini_PN : PN;
-fun gemmed_A : A;
-fun gen_N : N;
-fun gen_PN : PN;
-fun gen_V2 : V2;
-fun gendarme_N : N;
-fun gendarmerie_N : N;
-fun gender_N : N;
-fun gene_N : N;
-fun gene_PN : PN;
-fun genealogical_A : A;
-fun genealogically_Adv : Adv;
-fun genealogist_N : N;
-fun genealogy_N : N;
-fun general_A : A;
-fun general_N : N;
-fun generalissimo_N : N;
-fun generality_N : N;
-fun generalization_N : N;
-fun generalize_V : V;
-fun generalize_V2 : V2;
-fun generally_Adv : Adv;
-fun generate_V2 : V2;
-fun generation_N : N;
-fun generative_A : A;
-fun generator_N : N;
-fun generic_A : A;
-fun generically_Adv : Adv;
-fun generosity_N : N;
-fun generous_A : A;
-fun generously_Adv : Adv;
-fun genesis_N : N;
-fun genetic_A : A;
-fun genetically_Adv : Adv;
-fun geneticist_N : N;
-fun genetics_N : N;
-fun geneva_PN : PN;
-fun genial_A : A;
-fun geniality_N : N;
-fun genially_Adv : Adv;
-fun genie_N : N;
-fun genital_A : A;
-fun genitive_A : A;
-fun genius_N : N;
-fun genius_loci_N : N;
-fun genoa_PN : PN;
-fun genocide_N : N;
-fun genova_PN : PN;
-fun genre_N : N;
-fun genre_painting_N : N;
-fun gent_N : N;
-fun genteel_A : A;
-fun genteelly_Adv : Adv;
-fun gentian_N : N;
-fun gentile_A : A;
-fun gentile_N : N;
-fun gentility_N : N;
-fun gentle_A : A;
-fun gentleman_N : N;
-fun gentleman_at_arms_N : N;
-fun gentlemanly_A : A;
-fun gentleness_N : N;
-fun gentlewoman_N : N;
-fun gently_Adv : Adv;
-fun gentry_N : N;
-fun genuflect_V : V;
-fun genuflection_N : N;
-fun genuflexion_N : N;
-fun genuine_A : A;
-fun genuinely_Adv : Adv;
-fun genuineness_N : N;
-fun genus_N : N;
-fun geocentric_A : A;
-fun geoff_PN : PN;
-fun geoffrey_PN : PN;
-fun geographer_N : N;
-fun geographical_A : A;
-fun geographically_Adv : Adv;
-fun geography_N : N;
-fun geological_A : A;
-fun geologically_Adv : Adv;
-fun geologist_N : N;
-fun geology_N : N;
-fun geometric_A : A;
-fun geometrical_A : A;
-fun geometrically_Adv : Adv;
-fun geometry_N : N;
-fun geophysical_A : A;
-fun geophysics_N : N;
-fun geopolitics_N : N;
-fun george_PN : PN;
-fun georgette_N : N;
-fun georgia_PN : PN;
-fun georgian_A : A;
-fun georgian_N : N;
-fun georgie_PN : PN;
-fun gerald_PN : PN;
-fun geraldine_PN : PN;
-fun geranium_N : N;
-fun gerard_PN : PN;
-fun geriatric_A : A;
-fun geriatrician_N : N;
-fun geriatrics_N : N;
-fun germ_N : N;
-fun german_A : A;
-fun german_N : N;
-fun germane_A : A;
-fun germanic_A : A;
-fun germany_PN : PN;
-fun germicide_N : N;
-fun germinate_V : V;
-fun germinate_V2 : V2;
-fun germination_N : N;
-fun gerontology_N : N;
-fun gerry_PN : PN;
-fun gerrymander_N : N;
-fun gerrymander_V2 : V2;
-fun gertie_PN : PN;
-fun gertrude_PN : PN;
-fun gerund_N : N;
-fun gestapo_N : N;
-fun gestation_N : N;
-fun gesticulate_V : V;
-fun gesticulation_N : N;
-fun gesture_N : N;
-fun gesture_V : V;
-fun get_V : V;
-fun get_V2 : V2;
-fun get_at_able_A : A;
-fun get_together_N : N;
-fun get_up_N : N;
-fun getaway_N : N;
-fun geum_N : N;
-fun geyser_N : N;
-fun ghana_PN : PN;
-fun ghanaian_A : A;
-fun ghanaian_N : N;
-fun gharry_N : N;
-fun ghastly_A : A;
-fun ghat_N : N;
-fun ghee_N : N;
-fun ghent_PN : PN;
-fun gherkin_N : N;
-fun ghetto_N : N;
-fun ghost_N : N;
-fun ghost_V : V;
-fun ghost_V2 : V2;
-fun ghost_writer_N : N;
-fun ghostliness_N : N;
-fun ghostly_A : A;
-fun ghoul_N : N;
-fun ghoulish_A : A;
-fun ghq_PN : PN;
-fun gi_N : N;
-fun giant_N : N;
-fun giantess_N : N;
-fun gibber_V : V;
-fun gibberish_N : N;
-fun gibbet_N : N;
-fun gibbet_V2 : V2;
-fun gibbon_N : N;
-fun gibbous_A : A;
-fun gibe_N : N;
-fun gibe_V : V;
-fun gibingly_Adv : Adv;
-fun gibraltar_PN : PN;
-fun gibraltarian_A : A;
-fun gibraltarian_N : N;
-fun giddily_Adv : Adv;
-fun giddiness_N : N;
-fun giddy_A : A;
-fun giffnock_PN : PN;
-fun gift_N : N;
-fun gift_V2 : V2;
-fun gifted_A : A;
-fun gig_N : N;
-fun gigantic_A : A;
-fun giggle_N : N;
-fun giggle_V : V;
-fun gigolo_N : N;
-fun gilbert_PN : PN;
-fun gilbertian_A : A;
-fun gild_N : N;
-fun gild_V2 : V2;
-fun gilder_N : N;
-fun gilding_N : N;
-fun giles_PN : PN;
-fun gilfach_goch_PN : PN;
-fun gill_N : N;
-fun gill_PN : PN;
-fun gillian_PN : PN;
-fun gillie_N : N;
-fun gillingham_PN : PN;
-fun gilt_N : N;
-fun gilt_edged_A : A;
-fun gimcrack_A : A;
-fun gimlet_N : N;
-fun gimmick_N : N;
-fun gin_N : N;
-fun gin_V2 : V2;
-fun gina_PN : PN;
-fun ginger_N : N;
-fun ginger_V2 : V2;
-fun gingerbread_N : N;
-fun gingerly_A : A;
-fun gingerly_Adv : Adv;
-fun gingham_N : N;
-fun gingko_N : N;
-fun ginseng_N : N;
-fun gipsy_N : N;
-fun giraffe_N : N;
-fun gird_V2 : V2;
-fun girder_N : N;
-fun girdle_N : N;
-fun girdle_V2 : V2;
-fun girl_N : N;
-fun girlfriend_N : N;
-fun girlhood_N : N;
-fun girlish_A : A;
-fun girlishly_Adv : Adv;
-fun girlishness_N : N;
-fun giro_N : N;
-fun girth_N : N;
-fun girvan_PN : PN;
-fun gis_N : N;
-fun gist_N : N;
-fun give_N : N;
-fun give_V : V;
-fun give_V2 : V2;
-fun giveaway_N : N;
-fun giver_N : N;
-fun gizzard_N : N;
-fun glacial_A : A;
-fun glacier_N : N;
-fun glace_A : A;
-fun glad_A : A;
-fun gladden_V2 : V2;
-fun glade_N : N;
-fun gladiator_N : N;
-fun gladiatorial_A : A;
-fun gladiolus_N : N;
-fun gladly_Adv : Adv;
-fun gladness_N : N;
-fun gladsome_A : A;
-fun gladys_PN : PN;
-fun glamorgan_PN : PN;
-fun glamorization_N : N;
-fun glamorize_V2 : V2;
-fun glamorous_A : A;
-fun glamour_N : N;
-fun glance_N : N;
-fun glance_V : V;
-fun glance_V2 : V2;
-fun gland_N : N;
-fun glanders_N : N;
-fun glandular_A : A;
-fun glare_N : N;
-fun glare_V : V;
-fun glare_V2 : V2;
-fun glaring_A : A;
-fun glasgow_PN : PN;
-fun glass_N : N;
-fun glass_V2 : V2;
-fun glass_blower_N : N;
-fun glass_cutter_N : N;
-fun glass_wool_N : N;
-fun glassful_N : N;
-fun glasshouse_N : N;
-fun glassware_N : N;
-fun glassworks_N : N;
-fun glassy_A : A;
-fun glastonbury_PN : PN;
-fun glaswegian_A : A;
-fun glaswegian_N : N;
-fun glaucoma_N : N;
-fun glaucous_A : A;
-fun glaze_N : N;
-fun glaze_V : V;
-fun glaze_V2 : V2;
-fun glazier_N : N;
-fun gleam_N : N;
-fun gleam_V : V;
-fun glean_V : V;
-fun glean_V2 : V2;
-fun gleaner_N : N;
-fun glebe_N : N;
-fun glee_N : N;
-fun gleeful_A : A;
-fun gleefully_Adv : Adv;
-fun glen_N : N;
-fun glen_PN : PN;
-fun glengarry_N : N;
-fun glenrothes_PN : PN;
-fun glib_A : A;
-fun glibly_Adv : Adv;
-fun glibness_N : N;
-fun glide_N : N;
-fun glide_V : V;
-fun glider_N : N;
-fun gliding_N : N;
-fun glimmer_N : N;
-fun glimmer_V : V;
-fun glimpse_N : N;
-fun glimpse_V2 : V2;
-fun glint_N : N;
-fun glint_V : V;
-fun glissade_N : N;
-fun glissade_V : V;
-fun glissando_A : A;
-fun glissando_Adv : Adv;
-fun glisten_V : V;
-fun glister_N : N;
-fun glister_V : V;
-fun glitter_N : N;
-fun glitter_V : V;
-fun glittering_A : A;
-fun gloaming_N : N;
-fun gloat_V : V;
-fun gloatingly_Adv : Adv;
-fun global_A : A;
-fun globe_N : N;
-fun globetrot_V : V;
-fun globetrotter_N : N;
-fun globular_A : A;
-fun globule_N : N;
-fun glockenspiel_N : N;
-fun gloom_N : N;
-fun gloomily_Adv : Adv;
-fun gloomy_A : A;
-fun gloria_PN : PN;
-fun glorification_N : N;
-fun glorify_V2 : V2;
-fun glorious_A : A;
-fun gloriously_Adv : Adv;
-fun glory_N : N;
-fun glory_V : V;
-fun glory_hole_N : N;
-fun gloss_N : N;
-fun gloss_V2 : V2;
-fun glossary_N : N;
-fun glossily_Adv : Adv;
-fun glossiness_N : N;
-fun glossop_PN : PN;
-fun glossy_A : A;
-fun glottal_A : A;
-fun glottis_N : N;
-fun gloucester_PN : PN;
-fun gloucestershire_PN : PN;
-fun glove_N : N;
-fun glove_compartment_N : N;
-fun gloved_A : A;
-fun glow_N : N;
-fun glow_V : V;
-fun glow_worm_N : N;
-fun glower_V : V;
-fun gloweringly_Adv : Adv;
-fun glowing_A : A;
-fun glowingly_Adv : Adv;
-fun glucose_N : N;
-fun glue_N : N;
-fun glue_V2 : V2;
-fun gluey_A : A;
-fun glum_A : A;
-fun glumly_Adv : Adv;
-fun glumness_N : N;
-fun glusburn_PN : PN;
-fun glut_N : N;
-fun glut_V2 : V2;
-fun gluten_N : N;
-fun glutinous_A : A;
-fun glutton_N : N;
-fun gluttonous_A : A;
-fun gluttonously_Adv : Adv;
-fun gluttony_N : N;
-fun glycerine_N : N;
-fun gmt_PN : PN;
-fun gnarled_A : A;
-fun gnash_V : V;
-fun gnash_V2 : V2;
-fun gnat_N : N;
-fun gnaw_V : V;
-fun gnaw_V2 : V2;
-fun gnome_N : N;
-fun gnp_N : N;
-fun gnu_N : N;
-fun go_N : N;
-fun go_V : V;
-fun go_ahead_N : N;
-fun go_as_you_please_A : A;
-fun go_between_N : N;
-fun go_by_N : N;
-fun go_cart_N : N;
-fun go_getter_N : N;
-fun go_kart_N : N;
-fun go_slow_N : N;
-fun go_to_meeting_A : A;
-fun goad_N : N;
-fun goad_V2 : V2;
-fun goal_N : N;
-fun goal_kick_N : N;
-fun goal_line_N : N;
-fun goalie_N : N;
-fun goalkeeper_N : N;
-fun goalless_A : A;
-fun goalmouth_N : N;
-fun goat_N : N;
-fun goatee_N : N;
-fun goatherd_N : N;
-fun goatskin_N : N;
-fun gob_N : N;
-fun gobbet_N : N;
-fun gobble_N : N;
-fun gobble_V : V;
-fun gobble_V2 : V2;
-fun gobbledygook_N : N;
-fun gobbler_N : N;
-fun goblet_N : N;
-fun goblin_N : N;
-fun god_N : N;
-fun god_PN : PN;
-fun god_damn_A : A;
-fun god_damned_A : A;
-fun godalming_PN : PN;
-fun godchild_N : N;
-fun goddam_A : A;
-fun goddam_Adv : Adv;
-fun goddaughter_N : N;
-fun goddess_N : N;
-fun godfather_N : N;
-fun godfearing_A : A;
-fun godforsaken_A : A;
-fun godfrey_PN : PN;
-fun godhead_N : N;
-fun godless_A : A;
-fun godlessness_N : N;
-fun godlike_A : A;
-fun godliness_N : N;
-fun godly_A : A;
-fun godmanchester_PN : PN;
-fun godmother_N : N;
-fun godown_N : N;
-fun godparent_N : N;
-fun godsend_N : N;
-fun godson_N : N;
-fun godspeed_N : N;
-fun goffs_oak_PN : PN;
-fun goggle_V : V;
-fun goggle_box_N : N;
-fun goggle_eyed_A : A;
-fun going_A : A;
-fun going_N : N;
-fun going_over_N : N;
-fun goitre_N : N;
-fun golbourne_PN : PN;
-fun gold_N : N;
-fun gold_beater_N : N;
-fun gold_digger_N : N;
-fun gold_dust_N : N;
-fun gold_foil_N : N;
-fun gold_leaf_N : N;
-fun gold_plate_N : N;
-fun gold_rush_N : N;
-fun golden_A : A;
-fun goldfield_N : N;
-fun goldfinch_N : N;
-fun goldfish_N : N;
-fun goldmine_N : N;
-fun goldsmith_N : N;
-fun golf_N : N;
-fun golf_V : V;
-fun golf_ball_N : N;
-fun golf_club_N : N;
-fun golf_course_N : N;
-fun golf_links_N : N;
-fun golfer_N : N;
-fun goliath_N : N;
-fun golliwog_N : N;
-fun golosh_N : N;
-fun gondola_N : N;
-fun gondolier_N : N;
-fun goner_N : N;
-fun gong_N : N;
-fun gong_V2 : V2;
-fun gonorrhea_N : N;
-fun gonorrhoea_N : N;
-fun goo_N : N;
-fun good_A : A;
-fun good_N : N;
-fun good_fellowship_N : N;
-fun good_for_naught_A : A;
-fun good_for_naught_N : N;
-fun good_for_nothing_A : A;
-fun good_for_nothing_N : N;
-fun good_humoured_A : A;
-fun good_looking_A : A;
-fun good_natured_A : A;
-fun good_neighbourliness_N : N;
-fun good_tempered_A : A;
-fun good_time_A : A;
-fun goodbye_N : N;
-fun goodish_A : A;
-fun goodly_A : A;
-fun goodness_N : N;
-fun goodwill_N : N;
-fun goody_N : N;
-fun goody_goody_A : A;
-fun goody_goody_N : N;
-fun gooey_A : A;
-fun goof_N : N;
-fun goof_V : V;
-fun goof_V2 : V2;
-fun goofy_A : A;
-fun googly_N : N;
-fun goole_PN : PN;
-fun goon_N : N;
-fun goose_N : N;
-fun goose_flesh_N : N;
-fun goose_step_N : N;
-fun gooseberry_N : N;
-fun gopher_N : N;
-fun gordian_A : A;
-fun gordon_PN : PN;
-fun gore_N : N;
-fun gore_V2 : V2;
-fun gorge_N : N;
-fun gorge_V : V;
-fun gorge_V2 : V2;
-fun gorgeous_A : A;
-fun gorgeously_Adv : Adv;
-fun gorgon_N : N;
-fun gorgonzola_N : N;
-fun gorilla_N : N;
-fun gorky_PN : PN;
-fun gormandize_V : V;
-fun gormless_A : A;
-fun gorse_N : N;
-fun gorseinon_PN : PN;
-fun gory_A : A;
-fun gosling_N : N;
-fun gospel_N : N;
-fun gosport_PN : PN;
-fun gossamer_N : N;
-fun gossip_N : N;
-fun gossip_V : V;
-fun goteborg_PN : PN;
-fun goth_N : N;
-fun gothenburg_PN : PN;
-fun gothic_A : A;
-fun gothic_N : N;
-fun gottingen_PN : PN;
-fun gouache_N : N;
-fun gouge_N : N;
-fun gouge_V2 : V2;
-fun goulash_N : N;
-fun gourd_N : N;
-fun gourmand_N : N;
-fun gourmet_N : N;
-fun gourock_PN : PN;
-fun gout_N : N;
-fun gouty_A : A;
-fun gov_PN : PN;
-fun govern_V : V;
-fun govern_V2 : V2;
-fun governance_N : N;
-fun governess_N : N;
-fun governing_A : A;
-fun government_N : N;
-fun governmental_A : A;
-fun governor_N : N;
-fun governor_general_N : N;
-fun govt_N : N;
-fun gown_N : N;
-fun gown_V2 : V2;
-fun gp's_N : N;
-fun gp_N : N;
-fun grab_N : N;
-fun grab_V : V;
-fun grab_V2 : V2;
-fun grabber_N : N;
-fun grace_N : N;
-fun grace_V2 : V2;
-fun graceful_A : A;
-fun gracefully_Adv : Adv;
-fun graceless_A : A;
-fun gracelessly_Adv : Adv;
-fun gracious_A : A;
-fun graciously_Adv : Adv;
-fun graciousness_N : N;
-fun gradation_N : N;
-fun grade_N : N;
-fun grade_V2 : V2;
-fun gradient_N : N;
-fun gradual_A : A;
-fun gradually_Adv : Adv;
-fun gradualness_N : N;
-fun graduate_N : N;
-fun graduate_V : V;
-fun graduate_V2 : V2;
-fun graduation_N : N;
-fun graffito_N : N;
-fun graft_N : N;
-fun graft_V : V;
-fun graft_V2 : V2;
-fun grail_N : N;
-fun grain_N : N;
-fun grained_A : A;
-fun gram_N : N;
-fun grammar_N : N;
-fun grammarian_N : N;
-fun grammatical_A : A;
-fun grammatically_Adv : Adv;
-fun gramme_N : N;
-fun gramophone_N : N;
-fun grampian_PN : PN;
-fun grampus_N : N;
-fun granada_PN : PN;
-fun granary_N : N;
-fun grand_A : A;
-fun grand_prix_N : N;
-fun grandad_N : N;
-fun grandaunt_N : N;
-fun grandchild_N : N;
-fun granddad_N : N;
-fun granddaughter_N : N;
-fun grandee_N : N;
-fun grandeur_N : N;
-fun grandfather_N : N;
-fun grandiloquence_N : N;
-fun grandiloquent_A : A;
-fun grandiose_A : A;
-fun grandly_Adv : Adv;
-fun grandma_N : N;
-fun grandmother_N : N;
-fun grandnephew_N : N;
-fun grandniece_N : N;
-fun grandpa_N : N;
-fun grandparent_N : N;
-fun grandson_N : N;
-fun grandstand_N : N;
-fun granduncle_N : N;
-fun grange_N : N;
-fun grangemouth_PN : PN;
-fun granite_N : N;
-fun grannie_N : N;
-fun granny_N : N;
-fun grant_N : N;
-fun grant_V2 : V2;
-fun grantham_PN : PN;
-fun granular_A : A;
-fun granularity_N : N;
-fun granulate_V : V;
-fun granulate_V2 : V2;
-fun granule_N : N;
-fun grape_N : N;
-fun grape_sugar_N : N;
-fun grapefruit_N : N;
-fun grapeshot_N : N;
-fun grapevine_N : N;
-fun graph_N : N;
-fun graphic_A : A;
-fun graphical_A : A;
-fun graphically_Adv : Adv;
-fun graphics_N : N;
-fun graphite_N : N;
-fun grapnel_N : N;
-fun grapple_V : V;
-fun grappling_iron_N : N;
-fun grasp_N : N;
-fun grasp_V : V;
-fun grasp_V2 : V2;
-fun grasping_A : A;
-fun grass_N : N;
-fun grass_V : V;
-fun grass_V2 : V2;
-fun grasshopper_N : N;
-fun grassland_N : N;
-fun grassy_A : A;
-fun grate_N : N;
-fun grate_V : V;
-fun grate_V2 : V2;
-fun grateful_A : A;
-fun gratefully_Adv : Adv;
-fun gratefulness_N : N;
-fun grater_N : N;
-fun gratification_N : N;
-fun gratify_V2 : V2;
-fun gratifying_A : A;
-fun grating_N : N;
-fun gratingly_Adv : Adv;
-fun gratis_A : A;
-fun gratis_Adv : Adv;
-fun gratitude_N : N;
-fun gratuitous_A : A;
-fun gratuitously_Adv : Adv;
-fun gratuity_N : N;
-fun grave_A : A;
-fun grave_N : N;
-fun grave_V2 : V2;
-fun gravel_N : N;
-fun gravel_V2 : V2;
-fun gravelly_A : A;
-fun gravely_Adv : Adv;
-fun graven_A : A;
-fun gravenhage_PN : PN;
-fun gravesend_PN : PN;
-fun gravestone_N : N;
-fun graveyard_N : N;
-fun graving_dock_N : N;
-fun gravitate_V : V;
-fun gravitation_N : N;
-fun gravity_N : N;
-fun gravure_N : N;
-fun gravy_N : N;
-fun gravy_boat_N : N;
-fun gray_A : A;
-fun gray_N : N;
-fun gray_V : V;
-fun gray_V2 : V2;
-fun graz_PN : PN;
-fun graze_N : N;
-fun graze_V : V;
-fun graze_V2 : V2;
-fun grazier_N : N;
-fun grazing_land_N : N;
-fun grease_N : N;
-fun grease_V2 : V2;
-fun grease_gun_N : N;
-fun greasepaint_N : N;
-fun greaseproof_A : A;
-fun greaser_N : N;
-fun greasily_Adv : Adv;
-fun greasiness_N : N;
-fun greasy_A : A;
-fun great_A : A;
-fun great_harwood_PN : PN;
-fun great_malvern_PN : PN;
-fun great_shelford_PN : PN;
-fun great_yarmouth_PN : PN;
-fun greatcoat_N : N;
-fun greatly_Adv : Adv;
-fun greatness_N : N;
-fun grebe_N : N;
-fun grecian_A : A;
-fun greece_PN : PN;
-fun greed_N : N;
-fun greedily_Adv : Adv;
-fun greediness_N : N;
-fun greedy_A : A;
-fun greek_A : A;
-fun greek_N : N;
-fun green_A : A;
-fun green_N : N;
-fun greenback_N : N;
-fun greenery_N : N;
-fun greeneyed_A : A;
-fun greenfly_N : N;
-fun greengage_N : N;
-fun greengrocer_N : N;
-fun greengrocery_N : N;
-fun greenhorn_N : N;
-fun greenhouse_N : N;
-fun greenish_A : A;
-fun greenishness_N : N;
-fun greenock_PN : PN;
-fun greensward_N : N;
-fun greenwich_PN : PN;
-fun greenwood_N : N;
-fun greet_V2 : V2;
-fun greeting_N : N;
-fun greg_PN : PN;
-fun gregarious_A : A;
-fun gregariously_Adv : Adv;
-fun gregariousness_N : N;
-fun gregorian_A : A;
-fun gregory_PN : PN;
-fun gremlin_N : N;
-fun grenada_PN : PN;
-fun grenade_N : N;
-fun grenadian_A : A;
-fun grenadian_N : N;
-fun grenadier_N : N;
-fun grey_A : A;
-fun grey_N : N;
-fun grey_V : V;
-fun grey_V2 : V2;
-fun grey_headed_A : A;
-fun greybeard_N : N;
-fun greyhound_N : N;
-fun greyish_A : A;
-fun greyly_Adv : Adv;
-fun grid_N : N;
-fun griddle_N : N;
-fun gridiron_N : N;
-fun grief_N : N;
-fun grievance_N : N;
-fun grieve_V : V;
-fun grieve_V2 : V2;
-fun grievous_A : A;
-fun grievously_Adv : Adv;
-fun griffin_N : N;
-fun griffon_N : N;
-fun grill_N : N;
-fun grill_V : V;
-fun grill_V2 : V2;
-fun grille_N : N;
-fun grillroom_N : N;
-fun grim_A : A;
-fun grimace_N : N;
-fun grimace_V : V;
-fun grime_N : N;
-fun grime_V2 : V2;
-fun grimethorpe_PN : PN;
-fun grimly_Adv : Adv;
-fun grimness_N : N;
-fun grimsby_PN : PN;
-fun grimy_A : A;
-fun grin_N : N;
-fun grin_V : V;
-fun grin_V2 : V2;
-fun grind_N : N;
-fun grind_V : V;
-fun grind_V2 : V2;
-fun grinder_N : N;
-fun grindstone_N : N;
-fun grinstead_PN : PN;
-fun grip_N : N;
-fun grip_V : V;
-fun grip_V2 : V2;
-fun grippe_N : N;
-fun gripsack_N : N;
-fun grisly_A : A;
-fun grist_N : N;
-fun gristle_N : N;
-fun grit_N : N;
-fun grit_V2 : V2;
-fun grits_N : N;
-fun gritty_A : A;
-fun grizzle_V : V;
-fun grizzled_A : A;
-fun grizzly_N : N;
-fun groan_N : N;
-fun groan_V : V;
-fun groan_V2 : V2;
-fun groat_N : N;
-fun grocer_N : N;
-fun grocery_N : N;
-fun grog_N : N;
-fun groggy_A : A;
-fun groin_N : N;
-fun groin_V2 : V2;
-fun groningen_PN : PN;
-fun groom_N : N;
-fun groom_V2 : V2;
-fun groove_N : N;
-fun groove_V2 : V2;
-fun groover_N : N;
-fun groovy_A : A;
-fun grope_V : V;
-fun grope_V2 : V2;
-fun gropingly_Adv : Adv;
-fun gross_A : A;
-fun gross_N : N;
-fun gross_V2 : V2;
-fun grossly_Adv : Adv;
-fun grossness_N : N;
-fun grot_N : N;
-fun grotesque_A : A;
-fun grotesque_N : N;
-fun grotesquely_Adv : Adv;
-fun grotesqueness_N : N;
-fun grotto_N : N;
-fun grotty_A : A;
-fun grouch_N : N;
-fun grouch_V : V;
-fun grouchy_A : A;
-fun ground_N : N;
-fun ground_V : V;
-fun ground_V2 : V2;
-fun ground_bait_N : N;
-fun ground_fish_N : N;
-fun ground_plan_N : N;
-fun ground_rent_N : N;
-fun grounding_N : N;
-fun groundless_A : A;
-fun groundnut_N : N;
-fun groundsel_N : N;
-fun groundsheet_N : N;
-fun groundsman_N : N;
-fun groundwork_N : N;
-fun group_N : N;
-fun group_V : V;
-fun group_V2 : V2;
-fun grouping_N : N;
-fun grouse_N : N;
-fun grouse_V : V;
-fun grove_N : N;
-fun grovel_V : V;
-fun groveller_N : N;
-fun grow_V : V;
-fun grow_V2 : V2;
-fun grower_N : N;
-fun growl_N : N;
-fun growl_V : V;
-fun growl_V2 : V2;
-fun growler_N : N;
-fun growlingly_Adv : Adv;
-fun grown_up_A : A;
-fun grown_up_N : N;
-fun growth_N : N;
-fun groyne_N : N;
-fun grub_N : N;
-fun grub_V : V;
-fun grub_V2 : V2;
-fun grubbiness_N : N;
-fun grubby_A : A;
-fun grudge_N : N;
-fun grudge_V2 : V2;
-fun grudgingly_Adv : Adv;
-fun gruel_N : N;
-fun gruelling_A : A;
-fun gruesome_A : A;
-fun gruesomely_Adv : Adv;
-fun gruesomeness_N : N;
-fun gruff_A : A;
-fun gruffly_Adv : Adv;
-fun gruffness_N : N;
-fun grumble_N : N;
-fun grumble_V : V;
-fun grumble_V2 : V2;
-fun grumbler_N : N;
-fun grumpily_Adv : Adv;
-fun grumpiness_N : N;
-fun grumpy_A : A;
-fun grundyism_N : N;
-fun grunt_N : N;
-fun grunt_V : V;
-fun grunt_V2 : V2;
-fun gryphon_N : N;
-fun guadalajara_PN : PN;
-fun guano_N : N;
-fun guarantee_N : N;
-fun guarantee_V2 : V2;
-fun guarantor_N : N;
-fun guaranty_N : N;
-fun guard_N : N;
-fun guard_V : V;
-fun guard_V2 : V2;
-fun guard_boat_N : N;
-fun guarded_A : A;
-fun guardedly_Adv : Adv;
-fun guardhouse_N : N;
-fun guardian_N : N;
-fun guardianship_N : N;
-fun guardrail_N : N;
-fun guardroom_N : N;
-fun guardship_N : N;
-fun guardsman_N : N;
-fun guatemala_PN : PN;
-fun guatemala_city_PN : PN;
-fun guatemalan_A : A;
-fun guatemalan_N : N;
-fun guava_N : N;
-fun guayaquil_PN : PN;
-fun gudgeon_N : N;
-fun guelder_rose_N : N;
-fun guerilla_N : N;
-fun guerrilla_N : N;
-fun guess_N : N;
-fun guess_V : V;
-fun guess_V2 : V2;
-fun guesstimate_N : N;
-fun guesswork_N : N;
-fun guest_N : N;
-fun guest_night_N : N;
-fun guesthouse_N : N;
-fun guestroom_N : N;
-fun guffaw_N : N;
-fun guffaw_V : V;
-fun guidance_N : N;
-fun guide_N : N;
-fun guide_V2 : V2;
-fun guidebook_N : N;
-fun guideline_N : N;
-fun guild_N : N;
-fun guild_hall_N : N;
-fun guilder_N : N;
-fun guildford_PN : PN;
-fun guildhall_N : N;
-fun guile_N : N;
-fun guileful_A : A;
-fun guileless_A : A;
-fun guillemot_N : N;
-fun guillotine_N : N;
-fun guillotine_V2 : V2;
-fun guilt_N : N;
-fun guiltily_Adv : Adv;
-fun guiltiness_N : N;
-fun guiltless_A : A;
-fun guilty_A : A;
-fun guinea_N : N;
-fun guinea_PN : PN;
-fun guinea_fowl_N : N;
-fun guinea_pig_N : N;
-fun guinean_A : A;
-fun guinean_N : N;
-fun guinness_N : N;
-fun guisborough_PN : PN;
-fun guise_N : N;
-fun guitar_N : N;
-fun guitarist_N : N;
-fun gulch_N : N;
-fun gulden_N : N;
-fun gulf_N : N;
-fun gull_N : N;
-fun gull_V2 : V2;
-fun gullet_N : N;
-fun gullibility_N : N;
-fun gullible_A : A;
-fun gully_N : N;
-fun gulp_N : N;
-fun gulp_V : V;
-fun gulp_V2 : V2;
-fun gum_N : N;
-fun gum_V2 : V2;
-fun gumbo_N : N;
-fun gumboil_N : N;
-fun gumboot_N : N;
-fun gummy_A : A;
-fun gumption_N : N;
-fun gumshoe_N : N;
-fun gun_N : N;
-fun gun_V2 : V2;
-fun gun_carriage_N : N;
-fun gunboat_N : N;
-fun guncotton_N : N;
-fun gundog_N : N;
-fun gunfire_N : N;
-fun gunman_N : N;
-fun gunmetal_N : N;
-fun gunner_N : N;
-fun gunnery_N : N;
-fun gunny_N : N;
-fun gunplay_N : N;
-fun gunpoint_N : N;
-fun gunpowder_N : N;
-fun gunroom_N : N;
-fun gunrunner_N : N;
-fun gunrunning_N : N;
-fun gunshot_N : N;
-fun gunsmith_N : N;
-fun gunwale_N : N;
-fun gurgle_N : N;
-fun gurgle_V : V;
-fun gurkha_N : N;
-fun guru_N : N;
-fun gush_N : N;
-fun gush_V : V;
-fun gusher_N : N;
-fun gushing_A : A;
-fun gushingly_Adv : Adv;
-fun gusset_N : N;
-fun gusseted_A : A;
-fun gust_N : N;
-fun gustation_N : N;
-fun gusto_N : N;
-fun gusty_A : A;
-fun gut_N : N;
-fun gut_V2 : V2;
-fun gutless_A : A;
-fun gutta_percha_N : N;
-fun gutter_N : N;
-fun gutter_V : V;
-fun guttersnipe_N : N;
-fun guttural_A : A;
-fun guttural_N : N;
-fun gutturally_Adv : Adv;
-fun guvnor_N : N;
-fun guy's_PN : PN;
-fun guy_N : N;
-fun guy_PN : PN;
-fun guy_V2 : V2;
-fun guyana_PN : PN;
-fun guyanese_A : A;
-fun guyanese_N : N;
-fun guzzle_V : V;
-fun guzzle_V2 : V2;
-fun guzzler_N : N;
-fun gwen_PN : PN;
-fun gwendoline_PN : PN;
-fun gwent_PN : PN;
-fun gwersyllt_PN : PN;
-fun gwynedd_PN : PN;
-fun gybe_V : V;
-fun gybe_V2 : V2;
-fun gym_N : N;
-fun gymkhana_N : N;
-fun gymnasium_N : N;
-fun gymnast_N : N;
-fun gymnastic_A : A;
-fun gymnastics_N : N;
-fun gymslip_N : N;
-fun gynaecological_A : A;
-fun gynaecologist_N : N;
-fun gynaecology_N : N;
-fun gynecological_A : A;
-fun gynecologist_N : N;
-fun gyp_N : N;
-fun gyp_V2 : V2;
-fun gypsum_N : N;
-fun gypsy_N : N;
-fun gyrate_V : V;
-fun gyration_N : N;
-fun gyro_N : N;
-fun gyroscope_N : N;
-fun gyroscopic_A : A;
-fun gateau_N : N;
-fun h'm_V : V;
-fun h_bomb_N : N;
-fun ha'p'orth_N : N;
-fun ha'penny_N : N;
-fun haarlem_PN : PN;
-fun habeas_corpus_N : N;
-fun haberdasher_N : N;
-fun haberdashery_N : N;
-fun habit_N : N;
-fun habitable_A : A;
-fun habitat_N : N;
-fun habitation_N : N;
-fun habitual_A : A;
-fun habitually_Adv : Adv;
-fun habituate_V2 : V2;
-fun habituation_N : N;
-fun habitude_N : N;
-fun habitue_N : N;
-fun hacienda_N : N;
-fun hack_N : N;
-fun hack_V : V;
-fun hack_V2 : V2;
-fun hackney_N : N;
-fun hackney_PN : PN;
-fun hackneyed_A : A;
-fun hacksaw_N : N;
-fun haddington_PN : PN;
-fun haddock_N : N;
-fun hades_PN : PN;
-fun hadji_N : N;
-fun haematite_N : N;
-fun haemoglobin_N : N;
-fun haemophilia_N : N;
-fun haemophiliac_N : N;
-fun haemorrhage_N : N;
-fun haft_N : N;
-fun hag_N : N;
-fun hag_ridden_A : A;
-fun hagen_PN : PN;
-fun haggard_A : A;
-fun haggis_N : N;
-fun haggle_V : V;
-fun hagiology_N : N;
-fun hagley_PN : PN;
-fun haha_N : N;
-fun hail_N : N;
-fun hail_V : V;
-fun hail_V2 : V2;
-fun hailsham_PN : PN;
-fun hailstone_N : N;
-fun hailstorm_N : N;
-fun haiphong_PN : PN;
-fun hair's_breadth_N : N;
-fun hair_N : N;
-fun hair_breadth_N : N;
-fun hair_dye_N : N;
-fun hair_oil_N : N;
-fun hair_raising_A : A;
-fun hair_shirt_N : N;
-fun hair_slide_N : N;
-fun hair_trigger_N : N;
-fun hairbrush_N : N;
-fun haircloth_N : N;
-fun haircut_N : N;
-fun hairdo_N : N;
-fun hairdresser_N : N;
-fun hairdressing_N : N;
-fun hairiness_N : N;
-fun hairless_A : A;
-fun hairlike_A : A;
-fun hairline_N : N;
-fun hairnet_N : N;
-fun hairpiece_N : N;
-fun hairpin_N : N;
-fun hairsplitting_A : A;
-fun hairsplitting_N : N;
-fun hairspring_N : N;
-fun hairstyle_N : N;
-fun hairstylist_N : N;
-fun hairy_A : A;
-fun haiti_PN : PN;
-fun haitian_A : A;
-fun haitian_N : N;
-fun hake_N : N;
-fun hal_PN : PN;
-fun halberd_N : N;
-fun halberdier_N : N;
-fun halcyon_A : A;
-fun hale_A : A;
-fun halesowen_PN : PN;
-fun half_N : N;
-fun half_baked_A : A;
-fun half_blood_N : N;
-fun half_breed_N : N;
-fun half_brother_N : N;
-fun half_caste_N : N;
-fun half_crazed_A : A;
-fun half_crown_N : N;
-fun half_hardy_A : A;
-fun half_hearted_A : A;
-fun half_heartedly_Adv : Adv;
-fun half_holiday_N : N;
-fun half_hour_N : N;
-fun half_hourly_A : A;
-fun half_hourly_Adv : Adv;
-fun half_length_A : A;
-fun half_pay_N : N;
-fun half_price_Adv : Adv;
-fun half_seas_over_A : A;
-fun half_sister_N : N;
-fun half_size_A : A;
-fun half_timbered_A : A;
-fun half_time_N : N;
-fun half_track_N : N;
-fun half_tracked_A : A;
-fun half_truth_N : N;
-fun half_volley_N : N;
-fun half_yearly_A : A;
-fun half_yearly_Adv : Adv;
-fun halfback_N : N;
-fun halfpenny_N : N;
-fun halfpennyworth_N : N;
-fun halftone_N : N;
-fun halfway_A : A;
-fun halfway_Adv : Adv;
-fun halfwit_N : N;
-fun halfwitted_A : A;
-fun halibut_N : N;
-fun halifax_PN : PN;
-fun halitosis_N : N;
-fun hall_N : N;
-fun hall_stand_N : N;
-fun halle_PN : PN;
-fun hallelujah_N : N;
-fun halliard_N : N;
-fun hallmark_N : N;
-fun halloo_N : N;
-fun halloo_V : V;
-fun hallow_N : N;
-fun hallow_V2 : V2;
-fun hallowe'en_N : N;
-fun hallowe'en_PN : PN;
-fun hallucination_N : N;
-fun hallucinatory_A : A;
-fun hallucinogenic_A : A;
-fun halma_N : N;
-fun halo_N : N;
-fun halstead_PN : PN;
-fun halt_A : A;
-fun halt_N : N;
-fun halt_V : V;
-fun halt_V2 : V2;
-fun halter_N : N;
-fun haltingly_Adv : Adv;
-fun halve_V2 : V2;
-fun halyard_N : N;
-fun ham_N : N;
-fun ham_V : V;
-fun ham_V2 : V2;
-fun ham_fisted_A : A;
-fun ham_handed_A : A;
-fun hamadryad_N : N;
-fun hamburg_PN : PN;
-fun hamburger_N : N;
-fun hamhung_PN : PN;
-fun hamilton_PN : PN;
-fun hamlet_N : N;
-fun hammer_N : N;
-fun hammer_V : V;
-fun hammer_V2 : V2;
-fun hammersmith_PN : PN;
-fun hammock_N : N;
-fun hamper_N : N;
-fun hamper_V2 : V2;
-fun hampreston_PN : PN;
-fun hampshire_PN : PN;
-fun hamster_N : N;
-fun hamstring_N : N;
-fun hamstring_V2 : V2;
-fun hand_N : N;
-fun hand_V2 : V2;
-fun hand_barrow_N : N;
-fun hand_grenade_N : N;
-fun hand_luggage_N : N;
-fun hand_me_down_N : N;
-fun hand_organ_N : N;
-fun hand_out_N : N;
-fun hand_picked_A : A;
-fun handbag_N : N;
-fun handbill_N : N;
-fun handbook_N : N;
-fun handbrake_N : N;
-fun handcart_N : N;
-fun handclap_N : N;
-fun handcuff_N : N;
-fun handcuff_V2 : V2;
-fun handful_N : N;
-fun handhold_N : N;
-fun handicap_N : N;
-fun handicap_V2 : V2;
-fun handicraft_N : N;
-fun handily_Adv : Adv;
-fun handiness_N : N;
-fun handiwork_N : N;
-fun handkerchief_N : N;
-fun handle_N : N;
-fun handle_V2 : V2;
-fun handlebar_N : N;
-fun handler_N : N;
-fun handmade_A : A;
-fun handmaid_N : N;
-fun handover_N : N;
-fun handrail_N : N;
-fun handsaw_N : N;
-fun handshake_N : N;
-fun handshaking_N : N;
-fun handsome_A : A;
-fun handsomely_Adv : Adv;
-fun handstand_N : N;
-fun handwork_N : N;
-fun handwriting_N : N;
-fun handy_A : A;
-fun handyman_N : N;
-fun hang_N : N;
-fun hang_V : V;
-fun hang_V2 : V2;
-fun hang_up_N : N;
-fun hangar_N : N;
-fun hangchon_PN : PN;
-fun hangdog_A : A;
-fun hanger_N : N;
-fun hanger_on_N : N;
-fun hanging_N : N;
-fun hangman_N : N;
-fun hangnail_N : N;
-fun hangover_N : N;
-fun hank_N : N;
-fun hanker_V : V;
-fun hankering_N : N;
-fun hanky_N : N;
-fun hanky_panky_N : N;
-fun hanoi_PN : PN;
-fun hanover_PN : PN;
-fun hansard_N : N;
-fun hansom_N : N;
-fun hap_N : N;
-fun hap_V : V;
-fun haphazard_A : A;
-fun haphazard_Adv : Adv;
-fun haphazardly_Adv : Adv;
-fun hapless_A : A;
-fun haply_Adv : Adv;
-fun happen_V : V;
-fun happening_N : N;
-fun happily_Adv : Adv;
-fun happiness_N : N;
-fun happy_A : A;
-fun happy_go_lucky_A : A;
-fun hara_kiri_N : N;
-fun harangue_N : N;
-fun harangue_V : V;
-fun harangue_V2 : V2;
-fun harass_V2 : V2;
-fun harassment_N : N;
-fun harbin_PN : PN;
-fun harbinger_N : N;
-fun harbour_N : N;
-fun harbour_V : V;
-fun harbour_V2 : V2;
-fun harbourage_N : N;
-fun hard_A : A;
-fun hard_Adv : Adv;
-fun hard_baked_A : A;
-fun hard_bitten_A : A;
-fun hard_boiled_A : A;
-fun hard_headed_A : A;
-fun hardback_N : N;
-fun hardbacked_A : A;
-fun hardboard_N : N;
-fun hardbound_A : A;
-fun hardcover_N : N;
-fun hardcovered_A : A;
-fun harden_V : V;
-fun harden_V2 : V2;
-fun hardhearted_A : A;
-fun hardhitting_A : A;
-fun hardihood_N : N;
-fun hardiness_N : N;
-fun hardliner_N : N;
-fun hardly_Adv : Adv;
-fun hardness_N : N;
-fun hardship_N : N;
-fun hardtop_N : N;
-fun hardware_N : N;
-fun hardwood_N : N;
-fun hardworking_A : A;
-fun hardy_A : A;
-fun hare_N : N;
-fun hare_V : V;
-fun harebell_N : N;
-fun harebrained_A : A;
-fun harelip_N : N;
-fun harem_N : N;
-fun haricot_N : N;
-fun haringey_PN : PN;
-fun hark_V : V;
-fun harlequin_N : N;
-fun harlequinade_N : N;
-fun harley_street_PN : PN;
-fun harlot_N : N;
-fun harlow_PN : PN;
-fun harm_N : N;
-fun harm_V2 : V2;
-fun harmattan_N : N;
-fun harmful_A : A;
-fun harmfully_Adv : Adv;
-fun harmless_A : A;
-fun harmlessly_Adv : Adv;
-fun harmonic_N : N;
-fun harmonica_N : N;
-fun harmonious_A : A;
-fun harmoniously_Adv : Adv;
-fun harmonium_N : N;
-fun harmonization_N : N;
-fun harmonize_V : V;
-fun harmonize_V2 : V2;
-fun harmony_N : N;
-fun harness_N : N;
-fun harness_V2 : V2;
-fun harold_PN : PN;
-fun harp_N : N;
-fun harp_V : V;
-fun harpenden_PN : PN;
-fun harper_N : N;
-fun harpist_N : N;
-fun harpoon_N : N;
-fun harpoon_V2 : V2;
-fun harpsichord_N : N;
-fun harpsichordist_N : N;
-fun harpy_N : N;
-fun harridan_N : N;
-fun harrier_N : N;
-fun harriet_PN : PN;
-fun harrogate_PN : PN;
-fun harrow_N : N;
-fun harrow_PN : PN;
-fun harrow_V2 : V2;
-fun harry_PN : PN;
-fun harry_V2 : V2;
-fun harsh_A : A;
-fun harshly_Adv : Adv;
-fun harshness_N : N;
-fun hart_N : N;
-fun hartlepool_PN : PN;
-fun hartley_PN : PN;
-fun harum_scarum_A : A;
-fun harum_scarum_N : N;
-fun harvest_N : N;
-fun harvest_V2 : V2;
-fun harvester_N : N;
-fun harvey_PN : PN;
-fun harwich_PN : PN;
-fun harwood_PN : PN;
-fun harworth_PN : PN;
-fun has_been_N : N;
-fun hash_N : N;
-fun hash_V2 : V2;
-fun hashish_N : N;
-fun haslemere_PN : PN;
-fun haslingden_PN : PN;
-fun hasp_N : N;
-fun hassle_N : N;
-fun hassle_V : V;
-fun hassle_V2 : V2;
-fun hassock_N : N;
-fun haste_N : N;
-fun hasten_V : V;
-fun hasten_V2 : V2;
-fun hastily_Adv : Adv;
-fun hastiness_N : N;
-fun hastings_PN : PN;
-fun hasty_A : A;
-fun hat_N : N;
-fun hatband_N : N;
-fun hatch_N : N;
-fun hatch_V : V;
-fun hatch_V2 : V2;
-fun hatchery_N : N;
-fun hatchet_N : N;
-fun hatching_N : N;
-fun hatchway_N : N;
-fun hate_N : N;
-fun hate_V2 : V2;
-fun hateful_A : A;
-fun hatefully_Adv : Adv;
-fun hatfield_PN : PN;
-fun hatful_N : N;
-fun hatless_A : A;
-fun hatpin_N : N;
-fun hatred_N : N;
-fun hatter_N : N;
-fun hauberk_N : N;
-fun haughtily_Adv : Adv;
-fun haughtiness_N : N;
-fun haughty_A : A;
-fun haul_N : N;
-fun haul_V : V;
-fun haul_V2 : V2;
-fun haulage_N : N;
-fun haulier_N : N;
-fun haulm_N : N;
-fun haunch_N : N;
-fun haunt_N : N;
-fun haunt_V2 : V2;
-fun hautboy_N : N;
-fun hauteur_N : N;
-fun havana_N : N;
-fun havana_PN : PN;
-fun haven_N : N;
-fun haverfordwest_PN : PN;
-fun haverhill_PN : PN;
-fun havering_PN : PN;
-fun haversack_N : N;
-fun havoc_N : N;
-fun haw_N : N;
-fun haw_V : V;
-fun haw_haw_N : N;
-fun hawaii_PN : PN;
-fun hawick_PN : PN;
-fun hawk_N : N;
-fun hawk_V2 : V2;
-fun hawk_eyed_A : A;
-fun hawke's_bay_PN : PN;
-fun hawker_N : N;
-fun hawser_N : N;
-fun hawthorn_N : N;
-fun hay_N : N;
-fun haycock_N : N;
-fun hayfork_N : N;
-fun hayling_PN : PN;
-fun haymaker_N : N;
-fun haymaking_N : N;
-fun hayrick_N : N;
-fun haystack_N : N;
-fun haywards_heath_PN : PN;
-fun haywire_A : A;
-fun haywire_N : N;
-fun hazard_N : N;
-fun hazard_V2 : V2;
-fun hazardous_A : A;
-fun haze_N : N;
-fun haze_V2 : V2;
-fun hazel_N : N;
-fun hazel_PN : PN;
-fun hazily_Adv : Adv;
-fun haziness_N : N;
-fun hazy_A : A;
-fun he_goat_N : N;
-fun he_man_N : N;
-fun head_N : N;
-fun head_V : V;
-fun head_V2 : V2;
-fun head_hunter_N : N;
-fun head_on_A : A;
-fun head_on_Adv : Adv;
-fun headache_N : N;
-fun headband_N : N;
-fun headdress_N : N;
-fun headed_A : A;
-fun header_N : N;
-fun headgear_N : N;
-fun heading_N : N;
-fun headlamp_N : N;
-fun headland_N : N;
-fun headless_A : A;
-fun headlight_N : N;
-fun headline_N : N;
-fun headlong_A : A;
-fun headlong_Adv : Adv;
-fun headman_N : N;
-fun headmaster_N : N;
-fun headmistress_N : N;
-fun headpiece_N : N;
-fun headrest_N : N;
-fun headroom_N : N;
-fun headset_N : N;
-fun headship_N : N;
-fun headstall_N : N;
-fun headstone_N : N;
-fun headstrong_A : A;
-fun headway_N : N;
-fun headwind_N : N;
-fun headword_N : N;
-fun heady_A : A;
-fun heal_V : V;
-fun heal_V2 : V2;
-fun healer_N : N;
-fun healing_A : A;
-fun health_N : N;
-fun healthful_A : A;
-fun healthily_Adv : Adv;
-fun healthy_A : A;
-fun heanor_PN : PN;
-fun heap_N : N;
-fun heap_V2 : V2;
-fun heaps_Adv : Adv;
-fun hear_V : V;
-fun hear_V2 : V2;
-fun hearer_N : N;
-fun hearing_N : N;
-fun hearing_aid_N : N;
-fun hearken_V : V;
-fun hearsay_N : N;
-fun hearse_N : N;
-fun heart's_ease_N : N;
-fun heart_N : N;
-fun heart_disease_N : N;
-fun heart_failure_N : N;
-fun heart_rending_A : A;
-fun heartache_N : N;
-fun heartbeat_N : N;
-fun heartbreak_N : N;
-fun heartbreaking_A : A;
-fun heartbroken_A : A;
-fun heartburn_N : N;
-fun heartburning_N : N;
-fun hearted_A : A;
-fun hearten_V2 : V2;
-fun heartfelt_A : A;
-fun hearth_N : N;
-fun hearthrug_N : N;
-fun heartily_Adv : Adv;
-fun heartless_A : A;
-fun heartlessly_Adv : Adv;
-fun heartlessness_N : N;
-fun heartsick_A : A;
-fun hearty_A : A;
-fun heat_N : N;
-fun heat_V : V;
-fun heat_V2 : V2;
-fun heat_flash_N : N;
-fun heated_A : A;
-fun heatedly_Adv : Adv;
-fun heater_N : N;
-fun heath_N : N;
-fun heathen_N : N;
-fun heathenish_A : A;
-fun heather_N : N;
-fun heather_PN : PN;
-fun heather_mixture_N : N;
-fun heating_N : N;
-fun heatspot_N : N;
-fun heatstroke_N : N;
-fun heatwave_N : N;
-fun heave_N : N;
-fun heave_V : V;
-fun heave_V2 : V2;
-fun heaven_N : N;
-fun heavenly_A : A;
-fun heavensent_A : A;
-fun heavenward_A : A;
-fun heavenward_Adv : Adv;
-fun heavenwards_A : A;
-fun heavenwards_Adv : Adv;
-fun heavily_Adv : Adv;
-fun heaviness_N : N;
-fun heaviside_PN : PN;
-fun heavy_A : A;
-fun heavy_Adv : Adv;
-fun heavy_handed_A : A;
-fun heavy_hearted_A : A;
-fun heavy_laden_A : A;
-fun heavyweight_N : N;
-fun hebden_royal_PN : PN;
-fun hebdomadal_A : A;
-fun hebraic_A : A;
-fun hebrew_A : A;
-fun hebrew_N : N;
-fun hecatomb_N : N;
-fun heck_N : N;
-fun heckle_V2 : V2;
-fun heckler_N : N;
-fun hectare_N : N;
-fun hectic_A : A;
-fun hector_V : V;
-fun hector_V2 : V2;
-fun hedge_N : N;
-fun hedge_V : V;
-fun hedge_V2 : V2;
-fun hedge_end_PN : PN;
-fun hedge_sparrow_N : N;
-fun hedgehog_N : N;
-fun hedgehop_V : V;
-fun hedgerow_N : N;
-fun hedonism_N : N;
-fun hedonist_N : N;
-fun hedonistic_A : A;
-fun heed_N : N;
-fun heed_V2 : V2;
-fun heedful_A : A;
-fun heedless_A : A;
-fun heehaw_N : N;
-fun heel_N : N;
-fun heel_V : V;
-fun heel_V2 : V2;
-fun hefty_A : A;
-fun hegemony_N : N;
-fun hegira_N : N;
-fun heidelburg_PN : PN;
-fun heifer_N : N;
-fun height_N : N;
-fun heighten_V : V;
-fun heighten_V2 : V2;
-fun heinous_A : A;
-fun heinously_Adv : Adv;
-fun heinousness_N : N;
-fun heir_N : N;
-fun heiress_N : N;
-fun heirloom_N : N;
-fun hejira_N : N;
-fun helen_PN : PN;
-fun helensburgh_PN : PN;
-fun helicopter_N : N;
-fun heliograph_N : N;
-fun heliograph_V2 : V2;
-fun heliotrope_N : N;
-fun heliport_N : N;
-fun helium_N : N;
-fun hell_N : N;
-fun hellcat_N : N;
-fun hellene_N : N;
-fun hellenic_A : A;
-fun hellish_A : A;
-fun helm_N : N;
-fun helmet_N : N;
-fun helmeted_A : A;
-fun helmsman_N : N;
-fun helot_N : N;
-fun help_N : N;
-fun help_V : V;
-fun help_V2 : V2;
-fun helper_N : N;
-fun helpful_A : A;
-fun helpfully_Adv : Adv;
-fun helpfulness_N : N;
-fun helping_N : N;
-fun helpless_A : A;
-fun helplessly_Adv : Adv;
-fun helplessness_N : N;
-fun helpmate_N : N;
-fun helpmeet_N : N;
-fun helsinki_PN : PN;
-fun helston_PN : PN;
-fun helter_skelter_Adv : Adv;
-fun helter_skelter_N : N;
-fun helve_N : N;
-fun hem_N : N;
-fun hem_V : V;
-fun hem_V2 : V2;
-fun hematite_N : N;
-fun hemel_hempstead_PN : PN;
-fun hemisphere_N : N;
-fun hemline_N : N;
-fun hemlock_N : N;
-fun hemming_stitch_N : N;
-fun hemoglobin_N : N;
-fun hemophilia_N : N;
-fun hemophiliac_N : N;
-fun hemorrhage_N : N;
-fun hemp_N : N;
-fun hempen_A : A;
-fun hemstitch_N : N;
-fun hemstitch_V2 : V2;
-fun hemsworth_PN : PN;
-fun hen_N : N;
-fun hen_party_N : N;
-fun henbane_N : N;
-fun hence_Adv : Adv;
-fun henceforth_Adv : Adv;
-fun henceforward_Adv : Adv;
-fun henchman_N : N;
-fun hencoop_N : N;
-fun henhouse_N : N;
-fun henley_on_thames_PN : PN;
-fun henna_N : N;
-fun hennaed_A : A;
-fun henpecked_A : A;
-fun henroost_N : N;
-fun henry_PN : PN;
-fun hep_A : A;
-fun hepatitis_N : N;
-fun heptagon_N : N;
-fun herald_N : N;
-fun herald_V2 : V2;
-fun heraldic_A : A;
-fun heraldry_N : N;
-fun herb_N : N;
-fun herb_PN : PN;
-fun herbaceous_A : A;
-fun herbage_N : N;
-fun herbal_A : A;
-fun herbalist_N : N;
-fun herbert_PN : PN;
-fun herbivorous_A : A;
-fun herculean_A : A;
-fun herd_N : N;
-fun herd_V : V;
-fun herd_V2 : V2;
-fun herdsman_N : N;
-fun hereabouts_Adv : Adv;
-fun hereafter_Adv : Adv;
-fun hereafter_N : N;
-fun hereby_Adv : Adv;
-fun hereditament_N : N;
-fun hereditary_A : A;
-fun heredity_N : N;
-fun hereford_PN : PN;
-fun herein_Adv : Adv;
-fun hereinafter_Adv : Adv;
-fun hereinbefore_Adv : Adv;
-fun hereof_Adv : Adv;
-fun heresy_N : N;
-fun heretic_N : N;
-fun heretical_A : A;
-fun hereto_Adv : Adv;
-fun heretofore_Adv : Adv;
-fun hereupon_Adv : Adv;
-fun herewith_Adv : Adv;
-fun heritable_A : A;
-fun heritage_N : N;
-fun hermaphrodite_N : N;
-fun hermetic_A : A;
-fun hermetically_Adv : Adv;
-fun hermit_N : N;
-fun hermitage_N : N;
-fun herne_PN : PN;
-fun herne_bay_PN : PN;
-fun hernia_N : N;
-fun hero_N : N;
-fun heroic_A : A;
-fun heroically_Adv : Adv;
-fun heroics_N : N;
-fun heroin_N : N;
-fun heroine_N : N;
-fun heroism_N : N;
-fun heron_N : N;
-fun heronry_N : N;
-fun herr_N : N;
-fun herring_N : N;
-fun herringbone_N : N;
-fun hertford_PN : PN;
-fun hertfordshire_PN : PN;
-fun hertz_N : N;
-fun hertzian_A : A;
-fun hesitance_N : N;
-fun hesitancy_N : N;
-fun hesitant_A : A;
-fun hesitantly_Adv : Adv;
-fun hesitate_V : V;
-fun hesitatingly_Adv : Adv;
-fun hesitation_N : N;
-fun hessian_N : N;
-fun het_up_A : A;
-fun heterodox_A : A;
-fun heterodoxy_N : N;
-fun heterogeneous_A : A;
-fun heterosexual_A : A;
-fun heterosexual_N : N;
-fun heterosexuality_N : N;
-fun hetton_PN : PN;
-fun heuristic_A : A;
-fun heuristics_N : N;
-fun hew_V : V;
-fun hew_V2 : V2;
-fun hewer_N : N;
-fun hexagon_N : N;
-fun hexagonal_A : A;
-fun hexameter_N : N;
-fun hexham_PN : PN;
-fun heyday_N : N;
-fun heysham_PN : PN;
-fun heywood_PN : PN;
-fun hi_fi_A : A;
-fun hi_fi_N : N;
-fun hiatus_N : N;
-fun hibernate_V : V;
-fun hibernation_N : N;
-fun hibiscus_N : N;
-fun hiccough_N : N;
-fun hiccough_V : V;
-fun hiccup_N : N;
-fun hiccup_V : V;
-fun hick_A : A;
-fun hick_N : N;
-fun hickory_N : N;
-fun hide_N : N;
-fun hide_V : V;
-fun hide_V2 : V2;
-fun hide_and_seek_N : N;
-fun hide_out_N : N;
-fun hideaway_N : N;
-fun hidebound_A : A;
-fun hideous_A : A;
-fun hideously_Adv : Adv;
-fun hiding_N : N;
-fun hiding_place_N : N;
-fun hie_V : V;
-fun hierarchic_A : A;
-fun hierarchical_A : A;
-fun hierarchy_N : N;
-fun hieroglyph_N : N;
-fun hieroglyphic_A : A;
-fun hieroglyphics_N : N;
-fun higgledy_piggledy_A : A;
-fun higgledy_piggledy_Adv : Adv;
-fun high_A : A;
-fun high_Adv : Adv;
-fun high_class_A : A;
-fun high_falutin_A : A;
-fun high_fidelity_A : A;
-fun high_fidelity_N : N;
-fun high_frequency_N : N;
-fun high_grade_A : A;
-fun high_handed_A : A;
-fun high_handedly_Adv : Adv;
-fun high_keyed_A : A;
-fun high_level_A : A;
-fun high_minded_A : A;
-fun high_mindedly_Adv : Adv;
-fun high_mindedness_N : N;
-fun high_necked_A : A;
-fun high_octane_A : A;
-fun high_pitched_A : A;
-fun high_powered_A : A;
-fun high_pressure_N : N;
-fun high_priced_A : A;
-fun high_principled_A : A;
-fun high_ranking_A : A;
-fun high_rise_A : A;
-fun high_sounding_A : A;
-fun high_speed_A : A;
-fun high_spen_PN : PN;
-fun high_spirited_A : A;
-fun high_tension_A : A;
-fun high_toned_A : A;
-fun high_up_N : N;
-fun high_wycombe_PN : PN;
-fun highball_N : N;
-fun highborn_A : A;
-fun highboy_N : N;
-fun highbrow_A : A;
-fun highbrow_N : N;
-fun highflier_N : N;
-fun highflown_A : A;
-fun highflyer_N : N;
-fun highflying_A : A;
-fun highjack_N : N;
-fun highjack_V2 : V2;
-fun highland_N : N;
-fun highland_PN : PN;
-fun highlander_N : N;
-fun highlight_N : N;
-fun highlight_V2 : V2;
-fun highly_Adv : Adv;
-fun highness_N : N;
-fun highroad_N : N;
-fun highway_N : N;
-fun highwayman_N : N;
-fun hijack_N : N;
-fun hijack_V2 : V2;
-fun hijacker_N : N;
-fun hike_N : N;
-fun hike_V : V;
-fun hiker_N : N;
-fun hilarious_A : A;
-fun hilariously_Adv : Adv;
-fun hilarity_N : N;
-fun hilary_PN : PN;
-fun hilda_PN : PN;
-fun hill_N : N;
-fun hill_billy_N : N;
-fun hillingdon_PN : PN;
-fun hillock_N : N;
-fun hillside_N : N;
-fun hilly_A : A;
-fun hilt_N : N;
-fun hinckley_PN : PN;
-fun hind_A : A;
-fun hind_N : N;
-fun hinder_V2 : V2;
-fun hindi_A : A;
-fun hindi_N : N;
-fun hindmost_A : A;
-fun hindrance_N : N;
-fun hindsight_N : N;
-fun hindu_A : A;
-fun hindu_N : N;
-fun hinduism_N : N;
-fun hindustani_A : A;
-fun hindustani_N : N;
-fun hinge_N : N;
-fun hinge_V : V;
-fun hinge_V2 : V2;
-fun hint_N : N;
-fun hint_V : V;
-fun hint_V2 : V2;
-fun hinterland_N : N;
-fun hip_A : A;
-fun hip_N : N;
-fun hip_bath_N : N;
-fun hip_flask_N : N;
-fun hip_pocket_N : N;
-fun hippie_N : N;
-fun hippo_N : N;
-fun hippocratic_A : A;
-fun hippodrome_N : N;
-fun hippopotamus_N : N;
-fun hippy_N : N;
-fun hire_N : N;
-fun hire_V2 : V2;
-fun hireling_N : N;
-fun hiroshima_PN : PN;
-fun hirsute_A : A;
-fun hiss_N : N;
-fun hiss_V : V;
-fun hiss_V2 : V2;
-fun histogram_N : N;
-fun historian_N : N;
-fun historic_A : A;
-fun historical_A : A;
-fun historically_Adv : Adv;
-fun history_N : N;
-fun histrionic_A : A;
-fun histrionics_N : N;
-fun hit_N : N;
-fun hit_V : V;
-fun hit_V2 : V2;
-fun hit_and_run_A : A;
-fun hitch_N : N;
-fun hitch_V : V;
-fun hitch_V2 : V2;
-fun hitchhike_V : V;
-fun hitchhiker_N : N;
-fun hitchin_PN : PN;
-fun hither_Adv : Adv;
-fun hitherto_Adv : Adv;
-fun hive_N : N;
-fun hive_V : V;
-fun hive_V2 : V2;
-fun hm_PN : PN;
-fun hmso_PN : PN;
-fun hoar_A : A;
-fun hoard_N : N;
-fun hoard_V : V;
-fun hoard_V2 : V2;
-fun hoarder_N : N;
-fun hoarding_N : N;
-fun hoarfrost_N : N;
-fun hoariness_N : N;
-fun hoarse_A : A;
-fun hoarsely_Adv : Adv;
-fun hoarseness_N : N;
-fun hoary_A : A;
-fun hoax_N : N;
-fun hoax_V2 : V2;
-fun hoaxer_N : N;
-fun hob_N : N;
-fun hobble_N : N;
-fun hobble_V : V;
-fun hobble_V2 : V2;
-fun hobble_skirt_N : N;
-fun hobbledehoy_N : N;
-fun hobby_N : N;
-fun hobbyhorse_N : N;
-fun hobgoblin_N : N;
-fun hobnail_N : N;
-fun hobnailed_A : A;
-fun hobnob_V : V;
-fun hobo_N : N;
-fun hobson_PN : PN;
-fun hock_N : N;
-fun hock_V2 : V2;
-fun hockey_N : N;
-fun hockley_PN : PN;
-fun hocus_pocus_N : N;
-fun hod_N : N;
-fun hoddesdon_PN : PN;
-fun hodgepodge_N : N;
-fun hoe_N : N;
-fun hoe_V : V;
-fun hoe_V2 : V2;
-fun hofei_PN : PN;
-fun hog_N : N;
-fun hog_V2 : V2;
-fun hoggish_A : A;
-fun hogmanay_N : N;
-fun hogmanay_PN : PN;
-fun hogshead_N : N;
-fun hogwash_N : N;
-fun hoist_N : N;
-fun hoist_V2 : V2;
-fun hoity_toity_A : A;
-fun hold_N : N;
-fun hold_V : V;
-fun hold_V2 : V2;
-fun hold_up_N : N;
-fun holdall_N : N;
-fun holder_N : N;
-fun holding_N : N;
-fun holdup_N : N;
-fun hole_N : N;
-fun hole_V : V;
-fun hole_V2 : V2;
-fun hole_and_corner_A : A;
-fun holiday_N : N;
-fun holiday_V : V;
-fun holiday_maker_N : N;
-fun holiness_N : N;
-fun holland_PN : PN;
-fun hollander_A : A;
-fun hollander_N : N;
-fun holler_V : V;
-fun holler_V2 : V2;
-fun holloa_N : N;
-fun hollow_A : A;
-fun hollow_N : N;
-fun hollow_V2 : V2;
-fun holly_N : N;
-fun hollyhock_N : N;
-fun hollywood_PN : PN;
-fun holm_oak_N : N;
-fun holmfirth_PN : PN;
-fun holocaust_N : N;
-fun holograph_N : N;
-fun holster_N : N;
-fun holy_A : A;
-fun holy_N : N;
-fun holyhead_PN : PN;
-fun holystone_N : N;
-fun holystone_V2 : V2;
-fun homage_N : N;
-fun home_Adv : Adv;
-fun home_N : N;
-fun home_baked_A : A;
-fun home_brewed_A : A;
-fun home_cured_A : A;
-fun home_farm_N : N;
-fun home_grown_A : A;
-fun home_made_A : A;
-fun homecoming_N : N;
-fun homeland_N : N;
-fun homeless_A : A;
-fun homelike_A : A;
-fun homeliness_N : N;
-fun homely_A : A;
-fun homeopath_N : N;
-fun homeopathic_A : A;
-fun homeric_A : A;
-fun homesick_A : A;
-fun homesickness_N : N;
-fun homespun_A : A;
-fun homespun_N : N;
-fun homestead_N : N;
-fun homeward_A : A;
-fun homeward_Adv : Adv;
-fun homewards_Adv : Adv;
-fun homework_N : N;
-fun homey_A : A;
-fun homicidal_A : A;
-fun homicide_N : N;
-fun homiletic_A : A;
-fun homiletics_N : N;
-fun homily_N : N;
-fun homing_A : A;
-fun hominy_N : N;
-fun homo_N : N;
-fun homo_sapiens_N : N;
-fun homoeopath_N : N;
-fun homoeopathy_N : N;
-fun homogeneity_N : N;
-fun homogeneous_A : A;
-fun homogenize_V2 : V2;
-fun homograph_N : N;
-fun homonym_N : N;
-fun homophone_N : N;
-fun homosexual_A : A;
-fun homosexual_N : N;
-fun homosexuality_N : N;
-fun hon_PN : PN;
-fun honduran_A : A;
-fun honduran_N : N;
-fun honduras_PN : PN;
-fun hone_N : N;
-fun hone_V2 : V2;
-fun honest_A : A;
-fun honestly_Adv : Adv;
-fun honesty_N : N;
-fun honey_N : N;
-fun honeybee_N : N;
-fun honeycomb_N : N;
-fun honeycomb_V2 : V2;
-fun honeydew_N : N;
-fun honeyed_A : A;
-fun honeymoon_N : N;
-fun honeymoon_V : V;
-fun honeysuckle_N : N;
-fun hong_kong_PN : PN;
-fun honiton_PN : PN;
-fun honk_N : N;
-fun honk_V : V;
-fun honorarium_N : N;
-fun honorary_A : A;
-fun honorific_A : A;
-fun honorific_N : N;
-fun honour_N : N;
-fun honour_V2 : V2;
-fun honourable_A : A;
-fun honourably_Adv : Adv;
-fun hoo_PN : PN;
-fun hooch_N : N;
-fun hood_N : N;
-fun hood_V2 : V2;
-fun hoodlum_N : N;
-fun hoodoo_N : N;
-fun hoodoo_V2 : V2;
-fun hoodwink_V2 : V2;
-fun hooey_N : N;
-fun hoof_N : N;
-fun hook_N : N;
-fun hook_V : V;
-fun hook_V2 : V2;
-fun hook_nosed_A : A;
-fun hook_up_N : N;
-fun hookah_N : N;
-fun hooked_A : A;
-fun hooker_N : N;
-fun hookworm_N : N;
-fun hooky_N : N;
-fun hooligan_N : N;
-fun hooliganism_N : N;
-fun hoop_N : N;
-fun hoop_V2 : V2;
-fun hoop_la_N : N;
-fun hoot_N : N;
-fun hoot_V : V;
-fun hoot_V2 : V2;
-fun hooter_N : N;
-fun hoover_N : N;
-fun hoover_V2 : V2;
-fun hop_N : N;
-fun hop_V : V;
-fun hop_V2 : V2;
-fun hop_field_N : N;
-fun hop_garden_N : N;
-fun hop_picker_N : N;
-fun hop_pole_N : N;
-fun hope_N : N;
-fun hope_PN : PN;
-fun hope_V : V;
-fun hope_V2 : V2;
-fun hopeful_A : A;
-fun hopefully_Adv : Adv;
-fun hopefulness_N : N;
-fun hopeless_A : A;
-fun hopelessly_Adv : Adv;
-fun hopelessness_N : N;
-fun hopped_up_A : A;
-fun hopper_N : N;
-fun hopscotch_N : N;
-fun horace_PN : PN;
-fun horde_N : N;
-fun horizon_N : N;
-fun horizontal_A : A;
-fun horizontally_Adv : Adv;
-fun horley_PN : PN;
-fun hormone_N : N;
-fun horn_N : N;
-fun horn_V : V;
-fun horn_rimmed_A : A;
-fun hornbeam_N : N;
-fun hornbill_N : N;
-fun horned_A : A;
-fun hornet_N : N;
-fun hornless_A : A;
-fun hornlike_A : A;
-fun hornpipe_N : N;
-fun hornsea_PN : PN;
-fun horny_A : A;
-fun horology_N : N;
-fun horoscope_N : N;
-fun horrible_A : A;
-fun horribly_Adv : Adv;
-fun horrid_A : A;
-fun horridly_Adv : Adv;
-fun horridness_N : N;
-fun horrific_A : A;
-fun horrify_V2 : V2;
-fun horrifyingly_Adv : Adv;
-fun horror_N : N;
-fun horror_stricken_A : A;
-fun horror_struck_A : A;
-fun hors_de_combat_A : A;
-fun horse_N : N;
-fun horse_chestnut_N : N;
-fun horse_laugh_N : N;
-fun horse_pond_N : N;
-fun horse_sense_N : N;
-fun horseback_N : N;
-fun horsebox_N : N;
-fun horseflesh_N : N;
-fun horsefly_N : N;
-fun horsehair_N : N;
-fun horseman_N : N;
-fun horsemanship_N : N;
-fun horsemeat_N : N;
-fun horseplay_N : N;
-fun horsepower_N : N;
-fun horserace_N : N;
-fun horseracing_N : N;
-fun horseradish_N : N;
-fun horseshoe_N : N;
-fun horsewhip_N : N;
-fun horsewhip_V2 : V2;
-fun horsewoman_N : N;
-fun horsham_PN : PN;
-fun horsley_PN : PN;
-fun horsy_A : A;
-fun hortative_A : A;
-fun horticultural_A : A;
-fun horticulture_N : N;
-fun horticulturist_N : N;
-fun horwich_PN : PN;
-fun hosanna_N : N;
-fun hose_N : N;
-fun hose_V2 : V2;
-fun hosepipe_N : N;
-fun hosier_N : N;
-fun hosiery_N : N;
-fun hosp_PN : PN;
-fun hospice_N : N;
-fun hospitable_A : A;
-fun hospitably_Adv : Adv;
-fun hospital_N : N;
-fun hospitality_N : N;
-fun hospitalization_N : N;
-fun hospitalize_V2 : V2;
-fun host_N : N;
-fun host_V2 : V2;
-fun hostage_N : N;
-fun hostel_N : N;
-fun hosteller_N : N;
-fun hostelry_N : N;
-fun hostess_N : N;
-fun hostile_A : A;
-fun hostilely_Adv : Adv;
-fun hostility_N : N;
-fun hot_A : A;
-fun hot_V : V;
-fun hot_V2 : V2;
-fun hot_blooded_A : A;
-fun hot_headed_A : A;
-fun hot_tempered_A : A;
-fun hot_water_bottle_N : N;
-fun hotbed_N : N;
-fun hotchpotch_N : N;
-fun hotel_N : N;
-fun hotelier_N : N;
-fun hotfoot_Adv : Adv;
-fun hotfoot_V : V;
-fun hothead_N : N;
-fun hothouse_N : N;
-fun hotly_Adv : Adv;
-fun hotplate_N : N;
-fun houghton_PN : PN;
-fun hound_N : N;
-fun hound_V2 : V2;
-fun hounslow_PN : PN;
-fun hour_N : N;
-fun hourglass_N : N;
-fun houri_N : N;
-fun hourly_A : A;
-fun hourly_Adv : Adv;
-fun house_N : N;
-fun house_V2 : V2;
-fun house_party_N : N;
-fun house_warming_N : N;
-fun houseboat_N : N;
-fun housebound_A : A;
-fun housebreaker_N : N;
-fun housecoat_N : N;
-fun housecraft_N : N;
-fun housedog_N : N;
-fun housefather_N : N;
-fun housefly_N : N;
-fun houseful_N : N;
-fun household_N : N;
-fun householder_N : N;
-fun housekeeper_N : N;
-fun housemaid_N : N;
-fun houseman_N : N;
-fun housemaster_N : N;
-fun housemother_N : N;
-fun houseproud_A : A;
-fun houseroom_N : N;
-fun housetop_N : N;
-fun housetrained_A : A;
-fun housewife_N : N;
-fun housewifely_A : A;
-fun housewifery_N : N;
-fun housework_N : N;
-fun housewrecker_N : N;
-fun housing_N : N;
-fun houston_PN : PN;
-fun hove_PN : PN;
-fun hovel_N : N;
-fun hover_V : V;
-fun hovercraft_N : N;
-fun how_Adv : Adv;
-fun how_d'ye_do_N : N;
-fun howard_PN : PN;
-fun howdah_N : N;
-fun however_Adv : Adv;
-fun howitzer_N : N;
-fun howl_N : N;
-fun howl_V : V;
-fun howl_V2 : V2;
-fun howler_N : N;
-fun howling_A : A;
-fun hoyden_N : N;
-fun hoydenish_A : A;
-fun hoylake_PN : PN;
-fun hoyland_nether_PN : PN;
-fun hp_N : N;
-fun hq_PN : PN;
-fun hrh_PN : PN;
-fun hub_N : N;
-fun hubble_bubble_N : N;
-fun hubbub_N : N;
-fun hubby_N : N;
-fun hubert_PN : PN;
-fun hubris_N : N;
-fun huckaback_N : N;
-fun huckleberry_N : N;
-fun hucknall_PN : PN;
-fun huckster_N : N;
-fun huddersfield_PN : PN;
-fun huddle_N : N;
-fun huddle_V : V;
-fun huddle_V2 : V2;
-fun hue_N : N;
-fun hued_A : A;
-fun huff_N : N;
-fun huff_V : V;
-fun huffily_Adv : Adv;
-fun huffish_A : A;
-fun huffy_A : A;
-fun hug_N : N;
-fun hug_V2 : V2;
-fun huge_A : A;
-fun hugely_Adv : Adv;
-fun hugger_mugger_A : A;
-fun hugger_mugger_Adv : Adv;
-fun hugger_mugger_N : N;
-fun hugh_PN : PN;
-fun hughie_PN : PN;
-fun huguenot_N : N;
-fun huhehot_PN : PN;
-fun hula_N : N;
-fun hulk_N : N;
-fun hulking_A : A;
-fun hull_N : N;
-fun hull_V2 : V2;
-fun hullabaloo_N : N;
-fun hum_N : N;
-fun hum_V : V;
-fun hum_V2 : V2;
-fun human_A : A;
-fun human_N : N;
-fun humane_A : A;
-fun humanely_Adv : Adv;
-fun humanism_N : N;
-fun humanist_N : N;
-fun humanitarian_A : A;
-fun humanitarian_N : N;
-fun humanitarianism_N : N;
-fun humanity_N : N;
-fun humanize_V : V;
-fun humanize_V2 : V2;
-fun humankind_N : N;
-fun humanly_Adv : Adv;
-fun humberside_PN : PN;
-fun humberston_PN : PN;
-fun humble_A : A;
-fun humble_V2 : V2;
-fun humbly_Adv : Adv;
-fun humbug_N : N;
-fun humbug_V2 : V2;
-fun humdinger_N : N;
-fun humdrum_A : A;
-fun humerus_N : N;
-fun humid_A : A;
-fun humidify_V2 : V2;
-fun humidity_N : N;
-fun humiliate_V2 : V2;
-fun humiliation_N : N;
-fun humility_N : N;
-fun humming_top_N : N;
-fun hummingbird_N : N;
-fun hummock_N : N;
-fun humorist_N : N;
-fun humorous_A : A;
-fun humorously_Adv : Adv;
-fun humour_N : N;
-fun humour_V2 : V2;
-fun humourist_N : N;
-fun humourless_A : A;
-fun hump_N : N;
-fun hump_V2 : V2;
-fun humpback_N : N;
-fun humpbacked_A : A;
-fun humphrey_PN : PN;
-fun humus_N : N;
-fun hun_N : N;
-fun hunch_N : N;
-fun hunch_V2 : V2;
-fun hunchback_A : A;
-fun hunchback_N : N;
-fun hunchbacked_A : A;
-fun hundredfold_Adv : Adv;
-fun hundredweight_N : N;
-fun hungarian_A : A;
-fun hungarian_N : N;
-fun hungary_PN : PN;
-fun hunger_N : N;
-fun hunger_V : V;
-fun hunger_march_N : N;
-fun hunger_marcher_N : N;
-fun hungrily_Adv : Adv;
-fun hungry_A : A;
-fun hunk_N : N;
-fun hunt_N : N;
-fun hunt_V : V;
-fun hunt_V2 : V2;
-fun hunter_N : N;
-fun hunting_N : N;
-fun hunting_crop_N : N;
-fun huntingdon_PN : PN;
-fun huntress_N : N;
-fun huntsman_N : N;
-fun hurdle_N : N;
-fun hurdle_V : V;
-fun hurdle_V2 : V2;
-fun hurdler_N : N;
-fun hurdy_gurdy_N : N;
-fun hurl_N : N;
-fun hurl_V2 : V2;
-fun hurling_N : N;
-fun hurly_burly_N : N;
-fun hurrah_V : V;
-fun hurricane_N : N;
-fun hurried_A : A;
-fun hurriedly_Adv : Adv;
-fun hurry_N : N;
-fun hurry_V : V;
-fun hurry_V2 : V2;
-fun hurstpierpoint_PN : PN;
-fun hurt_N : N;
-fun hurt_V : V;
-fun hurt_V2 : V2;
-fun hurtful_A : A;
-fun hurtle_V : V;
-fun husband_N : N;
-fun husband_V2 : V2;
-fun husbandman_N : N;
-fun husbandry_N : N;
-fun hush_N : N;
-fun hush_V : V;
-fun hush_V2 : V2;
-fun hush_hush_A : A;
-fun hush_money_N : N;
-fun husk_N : N;
-fun husk_V2 : V2;
-fun huskily_Adv : Adv;
-fun huskiness_N : N;
-fun husky_A : A;
-fun husky_N : N;
-fun hussar_N : N;
-fun hussy_N : N;
-fun hustle_N : N;
-fun hustle_V : V;
-fun hustle_V2 : V2;
-fun hustler_N : N;
-fun hut_N : N;
-fun hutch_N : N;
-fun hutment_N : N;
-fun hutted_A : A;
-fun hwainan_PN : PN;
-fun hyacinth_N : N;
-fun hyaena_N : N;
-fun hybrid_A : A;
-fun hybrid_N : N;
-fun hybridize_V : V;
-fun hybridize_V2 : V2;
-fun hyde_PN : PN;
-fun hyderabad_PN : PN;
-fun hydra_N : N;
-fun hydrangea_N : N;
-fun hydrant_N : N;
-fun hydrate_N : N;
-fun hydrate_V : V;
-fun hydrate_V2 : V2;
-fun hydraulic_A : A;
-fun hydraulicly_Adv : Adv;
-fun hydraulics_N : N;
-fun hydrocarbon_N : N;
-fun hydrochloric_A : A;
-fun hydroelectric_A : A;
-fun hydrofoil_N : N;
-fun hydrogen_N : N;
-fun hydropathic_A : A;
-fun hydropathy_N : N;
-fun hydrophobia_N : N;
-fun hydroplane_N : N;
-fun hydroponics_N : N;
-fun hyena_N : N;
-fun hygiene_N : N;
-fun hygienic_A : A;
-fun hygienically_Adv : Adv;
-fun hymen_N : N;
-fun hymn_N : N;
-fun hymn_V2 : V2;
-fun hymnal_N : N;
-fun hyperbola_N : N;
-fun hyperbole_N : N;
-fun hyperbolic_A : A;
-fun hypercritical_A : A;
-fun hypermarket_N : N;
-fun hypersensitive_A : A;
-fun hyphen_N : N;
-fun hyphen_V2 : V2;
-fun hyphenate_V2 : V2;
-fun hypnosis_N : N;
-fun hypnotic_A : A;
-fun hypnotism_N : N;
-fun hypnotist_N : N;
-fun hypnotize_V2 : V2;
-fun hypo_N : N;
-fun hypochondria_N : N;
-fun hypochondriac_A : A;
-fun hypochondriac_N : N;
-fun hypochondriacal_A : A;
-fun hypocrisy_N : N;
-fun hypocrite_N : N;
-fun hypocritical_A : A;
-fun hypocritically_Adv : Adv;
-fun hypodermic_A : A;
-fun hypodermic_N : N;
-fun hypotenuse_N : N;
-fun hypothecate_V2 : V2;
-fun hypothesis_N : N;
-fun hypothetical_A : A;
-fun hyssop_N : N;
-fun hysteria_N : N;
-fun hysterical_A : A;
-fun hysterically_Adv : Adv;
-fun hysterics_N : N;
-fun hythe_PN : PN;
-fun iamb_N : N;
-fun iambic_A : A;
-fun iambics_N : N;
-fun iambus_N : N;
-fun ian_PN : PN;
-fun iba_N : N;
-fun ibadan_PN : PN;
-fun ibex_N : N;
-fun ibid_PN : PN;
-fun ibidem_Adv : Adv;
-fun ibis_N : N;
-fun icbm_N : N;
-fun ice_N : N;
-fun ice_V : V;
-fun ice_V2 : V2;
-fun ice_axe_N : N;
-fun ice_cream_N : N;
-fun ice_lolly_N : N;
-fun ice_show_N : N;
-fun ice_skate_N : N;
-fun ice_skate_V : V;
-fun ice_skating_N : N;
-fun ice_tray_N : N;
-fun iceberg_N : N;
-fun iceboat_N : N;
-fun icebound_A : A;
-fun icebox_N : N;
-fun icebreaker_N : N;
-fun icecap_N : N;
-fun icecube_N : N;
-fun icefall_N : N;
-fun icefield_N : N;
-fun icefloe_N : N;
-fun icefree_A : A;
-fun icehouse_N : N;
-fun iceland_PN : PN;
-fun icelander_A : A;
-fun icelander_N : N;
-fun icelandic_A : A;
-fun icelandic_N : N;
-fun iceman_N : N;
-fun icepack_N : N;
-fun icepick_N : N;
-fun icerink_N : N;
-fun ichneumon_N : N;
-fun ichneumon_fly_N : N;
-fun icicle_N : N;
-fun icily_Adv : Adv;
-fun icing_N : N;
-fun icon_N : N;
-fun iconoclast_N : N;
-fun icy_A : A;
-fun id_N : N;
-fun ida_PN : PN;
-fun idaho_PN : PN;
-fun idea_N : N;
-fun ideal_A : A;
-fun ideal_N : N;
-fun idealism_N : N;
-fun idealist_N : N;
-fun idealistic_A : A;
-fun idealization_N : N;
-fun idealize_V2 : V2;
-fun ideally_Adv : Adv;
-fun idem_PN : PN;
-fun identical_A : A;
-fun identically_Adv : Adv;
-fun identifiable_A : A;
-fun identifiably_Adv : Adv;
-fun identification_N : N;
-fun identify_V2 : V2;
-fun identikit_N : N;
-fun identity_N : N;
-fun ideogram_N : N;
-fun ideograph_N : N;
-fun ideographic_A : A;
-fun ideological_A : A;
-fun ideologically_Adv : Adv;
-fun ideology_N : N;
-fun idiocy_N : N;
-fun idiolect_N : N;
-fun idiom_N : N;
-fun idiomatic_A : A;
-fun idiomatically_Adv : Adv;
-fun idiosyncrasy_N : N;
-fun idiosyncratic_A : A;
-fun idiot_N : N;
-fun idiotic_A : A;
-fun idiotically_Adv : Adv;
-fun idle_A : A;
-fun idle_V : V;
-fun idle_V2 : V2;
-fun idleness_N : N;
-fun idler_N : N;
-fun idly_Adv : Adv;
-fun idol_N : N;
-fun idolater_N : N;
-fun idolatress_N : N;
-fun idolatrous_A : A;
-fun idolatrously_Adv : Adv;
-fun idolatry_N : N;
-fun idolization_N : N;
-fun idolize_V2 : V2;
-fun idyll_N : N;
-fun idyllic_A : A;
-fun ie_PN : PN;
-fun igloo_N : N;
-fun igneous_A : A;
-fun ignis_fatuus_N : N;
-fun ignite_V : V;
-fun ignite_V2 : V2;
-fun ignition_N : N;
-fun ignoble_A : A;
-fun ignobly_Adv : Adv;
-fun ignominious_A : A;
-fun ignominiously_Adv : Adv;
-fun ignominy_N : N;
-fun ignoramus_N : N;
-fun ignorance_N : N;
-fun ignorant_A : A;
-fun ignorantly_Adv : Adv;
-fun ignore_V2 : V2;
-fun iguana_N : N;
-fun ikon_N : N;
-fun ilex_N : N;
-fun ilfracombe_PN : PN;
-fun ilk_N : N;
-fun ilkeston_PN : PN;
-fun ilkley_PN : PN;
-fun ill_A : A;
-fun ill_Adv : Adv;
-fun ill_N : N;
-fun ill_advised_A : A;
-fun ill_affected_A : A;
-fun ill_bred_A : A;
-fun ill_breeding_N : N;
-fun ill_disposed_A : A;
-fun ill_fated_A : A;
-fun ill_favoured_A : A;
-fun ill_gotten_A : A;
-fun ill_judged_A : A;
-fun ill_mannered_A : A;
-fun ill_natured_A : A;
-fun ill_omened_A : A;
-fun ill_starred_A : A;
-fun ill_timed_A : A;
-fun ill_treat_V2 : V2;
-fun ill_treatment_N : N;
-fun ill_usage_N : N;
-fun ill_use_V2 : V2;
-fun illegal_A : A;
-fun illegality_N : N;
-fun illegally_Adv : Adv;
-fun illegibility_N : N;
-fun illegible_A : A;
-fun illegibly_Adv : Adv;
-fun illegitimacy_N : N;
-fun illegitimate_A : A;
-fun illegitimate_N : N;
-fun illegitimately_Adv : Adv;
-fun illiberal_A : A;
-fun illiberality_N : N;
-fun illiberally_Adv : Adv;
-fun illicit_A : A;
-fun illicitly_Adv : Adv;
-fun illimitable_A : A;
-fun illinois_PN : PN;
-fun illiteracy_N : N;
-fun illiterate_A : A;
-fun illiterate_N : N;
-fun illness_N : N;
-fun illogical_A : A;
-fun illogicality_N : N;
-fun illogically_Adv : Adv;
-fun illogicalness_N : N;
-fun illume_V2 : V2;
-fun illuminate_V2 : V2;
-fun illumination_N : N;
-fun illumine_V2 : V2;
-fun illusion_N : N;
-fun illusionist_N : N;
-fun illusive_A : A;
-fun illusory_A : A;
-fun illustrate_V2 : V2;
-fun illustration_N : N;
-fun illustrative_A : A;
-fun illustrator_N : N;
-fun illustrious_A : A;
-fun illustriously_Adv : Adv;
-fun ilo_N : N;
-fun image_N : N;
-fun image_V2 : V2;
-fun imagery_N : N;
-fun imaginable_A : A;
-fun imaginary_A : A;
-fun imagination_N : N;
-fun imaginative_A : A;
-fun imaginatively_Adv : Adv;
-fun imagine_V2 : V2;
-fun imam_N : N;
-fun imbalance_N : N;
-fun imbecile_A : A;
-fun imbecile_N : N;
-fun imbecility_N : N;
-fun imbed_V2 : V2;
-fun imbibe_V2 : V2;
-fun imbroglio_N : N;
-fun imbue_V2 : V2;
-fun imf_N : N;
-fun imitate_V2 : V2;
-fun imitation_N : N;
-fun imitative_A : A;
-fun imitator_N : N;
-fun immaculate_A : A;
-fun immaculately_Adv : Adv;
-fun immanence_N : N;
-fun immanent_A : A;
-fun immaterial_A : A;
-fun immature_A : A;
-fun immaturity_N : N;
-fun immeasurable_A : A;
-fun immeasurably_Adv : Adv;
-fun immediacy_N : N;
-fun immediate_A : A;
-fun immediately_Adv : Adv;
-fun immemorial_A : A;
-fun immense_A : A;
-fun immensely_Adv : Adv;
-fun immensity_N : N;
-fun immerse_V2 : V2;
-fun immersion_N : N;
-fun immigrant_N : N;
-fun immigrate_V : V;
-fun immigration_N : N;
-fun imminence_N : N;
-fun imminent_A : A;
-fun imminently_Adv : Adv;
-fun immingham_PN : PN;
-fun immobile_A : A;
-fun immobility_N : N;
-fun immobilization_N : N;
-fun immobilize_V2 : V2;
-fun immoderate_A : A;
-fun immoderately_Adv : Adv;
-fun immodest_A : A;
-fun immodestly_Adv : Adv;
-fun immodesty_N : N;
-fun immolate_V2 : V2;
-fun immolation_N : N;
-fun immoral_A : A;
-fun immorality_N : N;
-fun immorally_Adv : Adv;
-fun immortal_A : A;
-fun immortal_N : N;
-fun immortality_N : N;
-fun immortalize_V2 : V2;
-fun immovable_A : A;
-fun immovably_Adv : Adv;
-fun immune_A : A;
-fun immunity_N : N;
-fun immunization_N : N;
-fun immunize_V2 : V2;
-fun immunology_N : N;
-fun immure_V2 : V2;
-fun immutability_N : N;
-fun immutable_A : A;
-fun immutably_Adv : Adv;
-fun imp_N : N;
-fun impact_N : N;
-fun impact_V2 : V2;
-fun impair_V2 : V2;
-fun impairment_N : N;
-fun impala_N : N;
-fun impale_V2 : V2;
-fun impalement_N : N;
-fun impalpable_A : A;
-fun impanel_V2 : V2;
-fun impart_V2 : V2;
-fun impartial_A : A;
-fun impartiality_N : N;
-fun impartially_Adv : Adv;
-fun impassable_A : A;
-fun impasse_N : N;
-fun impassioned_A : A;
-fun impassive_A : A;
-fun impassively_Adv : Adv;
-fun impassiveness_N : N;
-fun impassivity_N : N;
-fun impatience_N : N;
-fun impatient_A : A;
-fun impatiently_Adv : Adv;
-fun impeach_V2 : V2;
-fun impeachment_N : N;
-fun impeccable_A : A;
-fun impeccably_Adv : Adv;
-fun impecunious_A : A;
-fun impede_V2 : V2;
-fun impediment_N : N;
-fun impel_V2 : V2;
-fun impeller_N : N;
-fun impend_V : V;
-fun impenetrable_A : A;
-fun impenitence_N : N;
-fun impenitent_A : A;
-fun impenitently_Adv : Adv;
-fun imperative_A : A;
-fun imperatively_Adv : Adv;
-fun imperceptible_A : A;
-fun imperceptibly_Adv : Adv;
-fun imperfect_A : A;
-fun imperfect_N : N;
-fun imperfection_N : N;
-fun imperfectly_Adv : Adv;
-fun imperial_A : A;
-fun imperial_N : N;
-fun imperialism_N : N;
-fun imperialist_N : N;
-fun imperialistic_A : A;
-fun imperially_Adv : Adv;
-fun imperil_V2 : V2;
-fun imperious_A : A;
-fun imperiously_Adv : Adv;
-fun imperiousness_N : N;
-fun imperishable_A : A;
-fun impermanence_N : N;
-fun impermanent_A : A;
-fun impermeable_A : A;
-fun impersonal_A : A;
-fun impersonally_Adv : Adv;
-fun impersonate_V2 : V2;
-fun impersonation_N : N;
-fun impersonator_N : N;
-fun impertinence_N : N;
-fun impertinent_A : A;
-fun impertinently_Adv : Adv;
-fun imperturbability_N : N;
-fun imperturbable_A : A;
-fun impervious_A : A;
-fun impetigo_N : N;
-fun impetuosity_N : N;
-fun impetuous_A : A;
-fun impetuously_Adv : Adv;
-fun impetus_N : N;
-fun impiety_N : N;
-fun impinge_V : V;
-fun impingement_N : N;
-fun impious_A : A;
-fun impiously_Adv : Adv;
-fun impish_A : A;
-fun impishly_Adv : Adv;
-fun impishness_N : N;
-fun implacable_A : A;
-fun implant_V2 : V2;
-fun implausibility_N : N;
-fun implausible_A : A;
-fun implausibly_Adv : Adv;
-fun implement_N : N;
-fun implement_V2 : V2;
-fun implementation_N : N;
-fun implicate_V2 : V2;
-fun implication_N : N;
-fun implicit_A : A;
-fun implicitly_Adv : Adv;
-fun implore_V2 : V2;
-fun imploringly_Adv : Adv;
-fun implosion_N : N;
-fun imply_V2 : V2;
-fun impolite_A : A;
-fun impolitely_Adv : Adv;
-fun impoliteness_N : N;
-fun impolitic_A : A;
-fun imponderable_A : A;
-fun imponderable_N : N;
-fun import_N : N;
-fun import_V2 : V2;
-fun importance_N : N;
-fun important_A : A;
-fun importantly_Adv : Adv;
-fun importation_N : N;
-fun importer_N : N;
-fun importunate_A : A;
-fun importunately_Adv : Adv;
-fun importune_V2 : V2;
-fun importunity_N : N;
-fun impose_V : V;
-fun impose_V2 : V2;
-fun imposing_A : A;
-fun imposingly_Adv : Adv;
-fun imposition_N : N;
-fun impossibility_N : N;
-fun impossible_A : A;
-fun impossibly_Adv : Adv;
-fun impostor_N : N;
-fun imposture_N : N;
-fun impotence_N : N;
-fun impotent_A : A;
-fun impotently_Adv : Adv;
-fun impound_V2 : V2;
-fun impoverish_V2 : V2;
-fun impoverishment_N : N;
-fun impracticability_N : N;
-fun impracticable_A : A;
-fun impracticableness_N : N;
-fun impracticably_Adv : Adv;
-fun impractical_A : A;
-fun imprecate_V2 : V2;
-fun imprecation_N : N;
-fun imprecise_A : A;
-fun imprecisely_Adv : Adv;
-fun imprecision_N : N;
-fun impregnability_N : N;
-fun impregnable_A : A;
-fun impregnably_Adv : Adv;
-fun impregnate_V2 : V2;
-fun impresario_N : N;
-fun impress_N : N;
-fun impress_V2 : V2;
-fun impression_N : N;
-fun impressionable_A : A;
-fun impressionism_N : N;
-fun impressionist_N : N;
-fun impressionistic_A : A;
-fun impressive_A : A;
-fun impressively_Adv : Adv;
-fun impressiveness_N : N;
-fun imprimatur_N : N;
-fun imprint_N : N;
-fun imprint_V2 : V2;
-fun imprison_V2 : V2;
-fun imprisonment_N : N;
-fun improbability_N : N;
-fun improbable_A : A;
-fun improbably_Adv : Adv;
-fun impromptu_A : A;
-fun impromptu_Adv : Adv;
-fun impromptu_N : N;
-fun improper_A : A;
-fun improperly_Adv : Adv;
-fun impropriety_N : N;
-fun improve_V : V;
-fun improve_V2 : V2;
-fun improvement_N : N;
-fun improver_N : N;
-fun improvidence_N : N;
-fun improvident_A : A;
-fun improvidently_Adv : Adv;
-fun improvisation_N : N;
-fun improvise_V : V;
-fun improvise_V2 : V2;
-fun imprudence_N : N;
-fun imprudent_A : A;
-fun imprudently_Adv : Adv;
-fun impudence_N : N;
-fun impudent_A : A;
-fun impudently_Adv : Adv;
-fun impugn_V2 : V2;
-fun impulse_N : N;
-fun impulse_buy_V : V;
-fun impulse_buy_V2 : V2;
-fun impulsion_N : N;
-fun impulsive_A : A;
-fun impulsively_Adv : Adv;
-fun impulsiveness_N : N;
-fun impunity_N : N;
-fun impure_A : A;
-fun impurity_N : N;
-fun imputation_N : N;
-fun impute_V2 : V2;
-fun in_Adv : Adv;
-fun in_N : N;
-fun in_chief_A : A;
-fun in_fighting_N : N;
-fun in_loco_parentis_Adv : Adv;
-fun in_patient_N : N;
-fun in_service_A : A;
-fun in_situ_Adv : Adv;
-fun in_toto_Adv : Adv;
-fun in_tray_N : N;
-fun inability_N : N;
-fun inaccessibility_N : N;
-fun inaccessible_A : A;
-fun inaccuracy_N : N;
-fun inaccurate_A : A;
-fun inaccurately_Adv : Adv;
-fun inaction_N : N;
-fun inactivate_V2 : V2;
-fun inactive_A : A;
-fun inactivity_N : N;
-fun inadequacy_N : N;
-fun inadequate_A : A;
-fun inadequately_Adv : Adv;
-fun inadmissible_A : A;
-fun inadvertence_N : N;
-fun inadvertent_A : A;
-fun inadvertently_Adv : Adv;
-fun inadvisability_N : N;
-fun inadvisable_A : A;
-fun inadvisably_Adv : Adv;
-fun inalienable_A : A;
-fun inane_A : A;
-fun inanely_Adv : Adv;
-fun inanimate_A : A;
-fun inanition_N : N;
-fun inanity_N : N;
-fun inapplicable_A : A;
-fun inappreciable_A : A;
-fun inappropriate_A : A;
-fun inappropriately_Adv : Adv;
-fun inappropriateness_N : N;
-fun inapt_A : A;
-fun inaptitude_N : N;
-fun inarticulate_A : A;
-fun inasmuch_as_Adv : Adv;
-fun inattention_N : N;
-fun inattentive_A : A;
-fun inaudibility_N : N;
-fun inaudible_A : A;
-fun inaugural_A : A;
-fun inaugural_N : N;
-fun inaugurate_V2 : V2;
-fun inauguration_N : N;
-fun inauspicious_A : A;
-fun inauspiciously_Adv : Adv;
-fun inboard_A : A;
-fun inborn_A : A;
-fun inbound_A : A;
-fun inbred_A : A;
-fun inbreeding_N : N;
-fun inbuilt_A : A;
-fun inc_PN : PN;
-fun incalculable_A : A;
-fun incandescence_N : N;
-fun incandescent_A : A;
-fun incantation_N : N;
-fun incapability_N : N;
-fun incapable_A : A;
-fun incapacitate_V2 : V2;
-fun incapacity_N : N;
-fun incarcerate_V2 : V2;
-fun incarceration_N : N;
-fun incarnate_A : A;
-fun incarnate_V2 : V2;
-fun incarnation_N : N;
-fun incautious_A : A;
-fun incautiously_Adv : Adv;
-fun incendiarism_N : N;
-fun incendiary_N : N;
-fun incense_N : N;
-fun incense_V2 : V2;
-fun incentive_N : N;
-fun inception_N : N;
-fun incertitude_N : N;
-fun incessant_A : A;
-fun incessantly_Adv : Adv;
-fun incest_N : N;
-fun incestuous_A : A;
-fun inch_N : N;
-fun inch_V : V;
-fun inch_V2 : V2;
-fun inchoate_A : A;
-fun inchoative_A : A;
-fun inchon_PN : PN;
-fun incidence_N : N;
-fun incident_A : A;
-fun incident_N : N;
-fun incidental_A : A;
-fun incidentally_Adv : Adv;
-fun incinerate_V2 : V2;
-fun incineration_N : N;
-fun incinerator_N : N;
-fun incipient_A : A;
-fun incise_V2 : V2;
-fun incision_N : N;
-fun incisive_A : A;
-fun incisively_Adv : Adv;
-fun incisor_N : N;
-fun incite_V2 : V2;
-fun incitement_N : N;
-fun incivility_N : N;
-fun incl_PN : PN;
-fun inclemency_N : N;
-fun inclement_A : A;
-fun inclination_N : N;
-fun incline_N : N;
-fun incline_V : V;
-fun incline_V2 : V2;
-fun inclose_V2 : V2;
-fun inclosure_N : N;
-fun include_V2 : V2;
-fun inclusion_N : N;
-fun inclusive_A : A;
-fun inclusively_Adv : Adv;
-fun incognito_A : A;
-fun incognito_Adv : Adv;
-fun incoherence_N : N;
-fun incoherent_A : A;
-fun incoherently_Adv : Adv;
-fun incombustible_A : A;
-fun income_N : N;
-fun income_tax_N : N;
-fun incoming_A : A;
-fun incommensurable_A : A;
-fun incommensurate_A : A;
-fun incommode_V2 : V2;
-fun incommunicado_A : A;
-fun incomparable_A : A;
-fun incomparably_Adv : Adv;
-fun incompatibility_N : N;
-fun incompatible_A : A;
-fun incompetence_N : N;
-fun incompetency_N : N;
-fun incompetent_A : A;
-fun incompetently_Adv : Adv;
-fun incomplete_A : A;
-fun incompletely_Adv : Adv;
-fun incomprehensibility_N : N;
-fun incomprehensible_A : A;
-fun incomprehension_N : N;
-fun incompressible_A : A;
-fun inconceivable_A : A;
-fun inconclusive_A : A;
-fun inconclusively_Adv : Adv;
-fun incongruity_N : N;
-fun incongruous_A : A;
-fun incongruously_Adv : Adv;
-fun inconsequent_A : A;
-fun inconsequential_A : A;
-fun inconsequentially_Adv : Adv;
-fun inconsequently_Adv : Adv;
-fun inconsiderable_A : A;
-fun inconsiderate_A : A;
-fun inconsiderately_Adv : Adv;
-fun inconsistency_N : N;
-fun inconsistent_A : A;
-fun inconsistently_Adv : Adv;
-fun inconsolable_A : A;
-fun inconspicuous_A : A;
-fun inconspicuously_Adv : Adv;
-fun inconstancy_N : N;
-fun inconstant_A : A;
-fun incontestable_A : A;
-fun incontinence_N : N;
-fun incontinent_A : A;
-fun incontrovertible_A : A;
-fun inconvenience_N : N;
-fun inconvenience_V2 : V2;
-fun inconvenient_A : A;
-fun inconveniently_Adv : Adv;
-fun inconvertibility_N : N;
-fun inconvertible_A : A;
-fun incorporate_A : A;
-fun incorporate_V : V;
-fun incorporate_V2 : V2;
-fun incorporation_N : N;
-fun incorporeal_A : A;
-fun incorrect_A : A;
-fun incorrectly_Adv : Adv;
-fun incorrectness_N : N;
-fun incorrigible_A : A;
-fun incorruptibility_N : N;
-fun incorruptible_A : A;
-fun increase_N : N;
-fun increase_V : V;
-fun increase_V2 : V2;
-fun increasingly_Adv : Adv;
-fun incredibility_N : N;
-fun incredible_A : A;
-fun incredibly_Adv : Adv;
-fun incredulity_N : N;
-fun incredulous_A : A;
-fun incredulously_Adv : Adv;
-fun increment_N : N;
-fun incremental_A : A;
-fun incriminate_V2 : V2;
-fun incrustation_N : N;
-fun incubate_V : V;
-fun incubate_V2 : V2;
-fun incubation_N : N;
-fun incubator_N : N;
-fun incubus_N : N;
-fun inculcate_V2 : V2;
-fun inculpate_V2 : V2;
-fun incumbency_N : N;
-fun incumbent_A : A;
-fun incumbent_N : N;
-fun incur_V2 : V2;
-fun incurable_A : A;
-fun incurable_N : N;
-fun incurably_Adv : Adv;
-fun incurious_A : A;
-fun incursion_N : N;
-fun incurved_A : A;
-fun indebted_A : A;
-fun indebtedness_N : N;
-fun indecency_N : N;
-fun indecent_A : A;
-fun indecently_Adv : Adv;
-fun indecipherable_A : A;
-fun indecision_N : N;
-fun indecisive_A : A;
-fun indecisively_Adv : Adv;
-fun indecorous_A : A;
-fun indecorously_Adv : Adv;
-fun indecorum_N : N;
-fun indeed_Adv : Adv;
-fun indefatigable_A : A;
-fun indefeasible_A : A;
-fun indefensible_A : A;
-fun indefinable_A : A;
-fun indefinite_A : A;
-fun indefinitely_Adv : Adv;
-fun indelible_A : A;
-fun indelibly_Adv : Adv;
-fun indelicacy_N : N;
-fun indelicate_A : A;
-fun indemnification_N : N;
-fun indemnify_V2 : V2;
-fun indemnity_N : N;
-fun indent_N : N;
-fun indent_V : V;
-fun indent_V2 : V2;
-fun indentation_N : N;
-fun indenture_N : N;
-fun indenture_V2 : V2;
-fun independence_N : N;
-fun independent_A : A;
-fun independent_N : N;
-fun independently_Adv : Adv;
-fun indescribable_A : A;
-fun indescribably_Adv : Adv;
-fun indestructibility_N : N;
-fun indestructible_A : A;
-fun indeterminable_A : A;
-fun indeterminably_Adv : Adv;
-fun indeterminacy_N : N;
-fun indeterminate_A : A;
-fun index_N : N;
-fun index_V2 : V2;
-fun indexer_N : N;
-fun india_PN : PN;
-fun india_rubber_N : N;
-fun indiaman_N : N;
-fun indian_A : A;
-fun indian_N : N;
-fun indiana_PN : PN;
-fun indianapolis_PN : PN;
-fun indicate_V2 : V2;
-fun indication_N : N;
-fun indicative_A : A;
-fun indicator_N : N;
-fun indict_V2 : V2;
-fun indictable_A : A;
-fun indictment_N : N;
-fun indies_PN : PN;
-fun indifference_N : N;
-fun indifferent_A : A;
-fun indifferently_Adv : Adv;
-fun indigence_N : N;
-fun indigenous_A : A;
-fun indigent_A : A;
-fun indigestible_A : A;
-fun indigestion_N : N;
-fun indignant_A : A;
-fun indignantly_Adv : Adv;
-fun indignation_N : N;
-fun indignity_N : N;
-fun indigo_N : N;
-fun indirect_A : A;
-fun indirectly_Adv : Adv;
-fun indirectness_N : N;
-fun indiscernible_A : A;
-fun indiscipline_N : N;
-fun indiscreet_A : A;
-fun indiscreetly_Adv : Adv;
-fun indiscrete_A : A;
-fun indiscretion_N : N;
-fun indiscriminate_A : A;
-fun indiscriminately_Adv : Adv;
-fun indispensability_N : N;
-fun indispensable_A : A;
-fun indisposed_A : A;
-fun indisposition_N : N;
-fun indisputable_A : A;
-fun indissoluble_A : A;
-fun indistinct_A : A;
-fun indistinctly_Adv : Adv;
-fun indistinctness_N : N;
-fun indistinguishable_A : A;
-fun indite_V2 : V2;
-fun individual_A : A;
-fun individual_N : N;
-fun individualism_N : N;
-fun individualist_N : N;
-fun individualistic_A : A;
-fun individuality_N : N;
-fun individualize_V2 : V2;
-fun individually_Adv : Adv;
-fun indivisible_A : A;
-fun indo_european_A : A;
-fun indoctrinate_V2 : V2;
-fun indoctrination_N : N;
-fun indolence_N : N;
-fun indolent_A : A;
-fun indolently_Adv : Adv;
-fun indomitable_A : A;
-fun indonesia_PN : PN;
-fun indonesian_A : A;
-fun indonesian_N : N;
-fun indoor_A : A;
-fun indoors_Adv : Adv;
-fun indore_PN : PN;
-fun indorse_V2 : V2;
-fun indrawn_A : A;
-fun indubitable_A : A;
-fun indubitably_Adv : Adv;
-fun induce_V2 : V2;
-fun inducement_N : N;
-fun induct_V2 : V2;
-fun induction_N : N;
-fun inductive_A : A;
-fun indue_V2 : V2;
-fun indulge_V : V;
-fun indulge_V2 : V2;
-fun indulgence_N : N;
-fun indulgent_A : A;
-fun indulgently_Adv : Adv;
-fun industrial_A : A;
-fun industrialism_N : N;
-fun industrialist_N : N;
-fun industrialization_N : N;
-fun industrialized_A : A;
-fun industrious_A : A;
-fun industriously_Adv : Adv;
-fun industry_N : N;
-fun indwelling_A : A;
-fun inebriate_A : A;
-fun inebriate_N : N;
-fun inebriate_V2 : V2;
-fun inebriation_N : N;
-fun inebriety_N : N;
-fun inedible_A : A;
-fun ineffable_A : A;
-fun ineffably_Adv : Adv;
-fun ineffective_A : A;
-fun ineffectively_Adv : Adv;
-fun ineffectiveness_N : N;
-fun ineffectual_A : A;
-fun ineffectuality_N : N;
-fun ineffectually_Adv : Adv;
-fun inefficiency_N : N;
-fun inefficient_A : A;
-fun inefficiently_Adv : Adv;
-fun inelastic_A : A;
-fun inelegance_N : N;
-fun inelegant_A : A;
-fun inelegantly_Adv : Adv;
-fun ineligibility_N : N;
-fun ineligible_A : A;
-fun ineluctable_A : A;
-fun inept_A : A;
-fun ineptitude_N : N;
-fun ineptly_Adv : Adv;
-fun inequality_N : N;
-fun inequitable_A : A;
-fun inequity_N : N;
-fun ineradicable_A : A;
-fun inert_A : A;
-fun inertia_N : N;
-fun inescapable_A : A;
-fun inescapably_Adv : Adv;
-fun inessential_A : A;
-fun inessential_N : N;
-fun inestimable_A : A;
-fun inevitability_N : N;
-fun inevitable_A : A;
-fun inevitably_Adv : Adv;
-fun inexact_A : A;
-fun inexactitude_N : N;
-fun inexcusable_A : A;
-fun inexhaustible_A : A;
-fun inexorable_A : A;
-fun inexorably_Adv : Adv;
-fun inexpediency_N : N;
-fun inexpedient_A : A;
-fun inexpensive_A : A;
-fun inexpensively_Adv : Adv;
-fun inexperience_N : N;
-fun inexperienced_A : A;
-fun inexpert_A : A;
-fun inexpertly_Adv : Adv;
-fun inexpiable_A : A;
-fun inexplicable_A : A;
-fun inexpressible_A : A;
-fun inextinguishable_A : A;
-fun inextricable_A : A;
-fun inextricably_Adv : Adv;
-fun infallibility_N : N;
-fun infallible_A : A;
-fun infamous_A : A;
-fun infamy_N : N;
-fun infancy_N : N;
-fun infant_N : N;
-fun infanticide_N : N;
-fun infantile_A : A;
-fun infantilism_N : N;
-fun infantry_N : N;
-fun infantryman_N : N;
-fun infatuate_V2 : V2;
-fun infatuation_N : N;
-fun infect_V2 : V2;
-fun infection_N : N;
-fun infectious_A : A;
-fun infer_V2 : V2;
-fun inference_N : N;
-fun inferential_A : A;
-fun inferior_A : A;
-fun inferior_N : N;
-fun inferiority_N : N;
-fun infernal_A : A;
-fun infernally_Adv : Adv;
-fun inferno_N : N;
-fun infertile_A : A;
-fun infertility_N : N;
-fun infest_V2 : V2;
-fun infestation_N : N;
-fun infidel_N : N;
-fun infidelity_N : N;
-fun infield_N : N;
-fun infiltrate_V : V;
-fun infiltrate_V2 : V2;
-fun infiltration_N : N;
-fun infinite_A : A;
-fun infinitely_Adv : Adv;
-fun infinitesimal_A : A;
-fun infinitive_A : A;
-fun infinitive_N : N;
-fun infinitude_N : N;
-fun infinity_N : N;
-fun infirm_A : A;
-fun infirmary_N : N;
-fun infirmity_N : N;
-fun inflame_V : V;
-fun inflame_V2 : V2;
-fun inflammable_A : A;
-fun inflammation_N : N;
-fun inflammatory_A : A;
-fun inflatable_A : A;
-fun inflate_V2 : V2;
-fun inflation_N : N;
-fun inflationary_A : A;
-fun inflect_V2 : V2;
-fun inflection_N : N;
-fun inflectional_A : A;
-fun inflexibility_N : N;
-fun inflexible_A : A;
-fun inflexibly_Adv : Adv;
-fun inflexion_N : N;
-fun inflict_V2 : V2;
-fun infliction_N : N;
-fun inflorescence_N : N;
-fun inflow_N : N;
-fun influence_N : N;
-fun influence_V2 : V2;
-fun influential_A : A;
-fun influentially_Adv : Adv;
-fun influenza_N : N;
-fun influx_N : N;
-fun info_N : N;
-fun inform_V : V;
-fun inform_V2 : V2;
-fun informal_A : A;
-fun informality_N : N;
-fun informally_Adv : Adv;
-fun informant_N : N;
-fun information_N : N;
-fun informative_A : A;
-fun informatively_Adv : Adv;
-fun informer_N : N;
-fun infra_Adv : Adv;
-fun infra_dig_A : A;
-fun infra_red_A : A;
-fun infraction_N : N;
-fun infrastructure_N : N;
-fun infrequency_N : N;
-fun infrequent_A : A;
-fun infrequently_Adv : Adv;
-fun infringe_V : V;
-fun infringe_V2 : V2;
-fun infringement_N : N;
-fun infuriate_V2 : V2;
-fun infuse_V : V;
-fun infuse_V2 : V2;
-fun infusion_N : N;
-fun ingatestone_PN : PN;
-fun ingathering_N : N;
-fun ingenious_A : A;
-fun ingeniously_Adv : Adv;
-fun ingenuity_N : N;
-fun ingenuous_A : A;
-fun ingenuously_Adv : Adv;
-fun ingenuousness_N : N;
-fun ingest_V2 : V2;
-fun ingle_nook_N : N;
-fun inglorious_A : A;
-fun ingloriously_Adv : Adv;
-fun ingoing_A : A;
-fun ingot_N : N;
-fun ingraft_V2 : V2;
-fun ingrained_A : A;
-fun ingratiate_V2 : V2;
-fun ingratiatingly_Adv : Adv;
-fun ingratitude_N : N;
-fun ingredient_N : N;
-fun ingress_N : N;
-fun ingrid_PN : PN;
-fun ingrowing_A : A;
-fun ingenue_N : N;
-fun inhabit_V2 : V2;
-fun inhabitable_A : A;
-fun inhabitant_N : N;
-fun inhalation_N : N;
-fun inhale_V : V;
-fun inhale_V2 : V2;
-fun inhaler_N : N;
-fun inharmonious_A : A;
-fun inherent_A : A;
-fun inherently_Adv : Adv;
-fun inherit_V : V;
-fun inherit_V2 : V2;
-fun inheritance_N : N;
-fun inheritor_N : N;
-fun inhibit_V2 : V2;
-fun inhibition_N : N;
-fun inhibitor_N : N;
-fun inhibitory_A : A;
-fun inhospitable_A : A;
-fun inhuman_A : A;
-fun inhumane_A : A;
-fun inhumanely_Adv : Adv;
-fun inhumanity_N : N;
-fun inimical_A : A;
-fun inimitable_A : A;
-fun inimitably_Adv : Adv;
-fun iniquitous_A : A;
-fun iniquitously_Adv : Adv;
-fun iniquity_N : N;
-fun initial_A : A;
-fun initial_N : N;
-fun initial_V2 : V2;
-fun initially_Adv : Adv;
-fun initiate_A : A;
-fun initiate_N : N;
-fun initiate_V2 : V2;
-fun initiation_N : N;
-fun initiative_N : N;
-fun inject_V2 : V2;
-fun injection_N : N;
-fun injudicious_A : A;
-fun injudiciously_Adv : Adv;
-fun injunction_N : N;
-fun injure_V2 : V2;
-fun injured_A : A;
-fun injurious_A : A;
-fun injury_N : N;
-fun injustice_N : N;
-fun ink_N : N;
-fun ink_V2 : V2;
-fun ink_bottle_N : N;
-fun ink_pad_N : N;
-fun ink_pot_N : N;
-fun inkling_N : N;
-fun inkstand_N : N;
-fun inkwell_N : N;
-fun inky_A : A;
-fun inland_A : A;
-fun inland_Adv : Adv;
-fun inlay_N : N;
-fun inlay_V2 : V2;
-fun inlet_N : N;
-fun inmate_N : N;
-fun inmost_A : A;
-fun inn_N : N;
-fun innate_A : A;
-fun innately_Adv : Adv;
-fun inner_A : A;
-fun innermost_A : A;
-fun inning_N : N;
-fun innings_N : N;
-fun innkeeper_N : N;
-fun innocence_N : N;
-fun innocent_A : A;
-fun innocent_N : N;
-fun innocently_Adv : Adv;
-fun innocuous_A : A;
-fun innovate_V : V;
-fun innovation_N : N;
-fun innovator_N : N;
-fun innsbruck_PN : PN;
-fun innuendo_N : N;
-fun innumerable_A : A;
-fun inoculate_V2 : V2;
-fun inoculation_N : N;
-fun inoffensive_A : A;
-fun inoffensively_Adv : Adv;
-fun inoperable_A : A;
-fun inoperative_A : A;
-fun inopportune_A : A;
-fun inopportunely_Adv : Adv;
-fun inordinate_A : A;
-fun inordinately_Adv : Adv;
-fun inorganic_A : A;
-fun inorganically_Adv : Adv;
-fun inpouring_A : A;
-fun inpouring_N : N;
-fun input_N : N;
-fun inquest_N : N;
-fun inquietude_N : N;
-fun inquire_V : V;
-fun inquire_V2 : V2;
-fun inquirer_N : N;
-fun inquiring_A : A;
-fun inquiringly_Adv : Adv;
-fun inquiry_N : N;
-fun inquisition_N : N;
-fun inquisitive_A : A;
-fun inquisitively_Adv : Adv;
-fun inquisitiveness_N : N;
-fun inquisitor_N : N;
-fun inquisitorial_A : A;
-fun inroad_N : N;
-fun inrush_N : N;
-fun ins_N : N;
-fun insane_A : A;
-fun insanely_Adv : Adv;
-fun insanitary_A : A;
-fun insanity_N : N;
-fun insatiable_A : A;
-fun insatiably_Adv : Adv;
-fun insatiate_A : A;
-fun inscribe_V2 : V2;
-fun inscription_N : N;
-fun inscrutable_A : A;
-fun insect_N : N;
-fun insect_powder_N : N;
-fun insecticide_N : N;
-fun insectivorous_A : A;
-fun insecure_A : A;
-fun insecurely_Adv : Adv;
-fun insecurity_N : N;
-fun inseminate_V2 : V2;
-fun insemination_N : N;
-fun insensate_A : A;
-fun insensibility_N : N;
-fun insensible_A : A;
-fun insensibly_Adv : Adv;
-fun insensitive_A : A;
-fun insensitively_Adv : Adv;
-fun insensitivity_N : N;
-fun insentient_A : A;
-fun inseparable_A : A;
-fun insert_N : N;
-fun insert_V2 : V2;
-fun insertion_N : N;
-fun inset_N : N;
-fun inset_V2 : V2;
-fun inshore_A : A;
-fun inshore_Adv : Adv;
-fun inside_A : A;
-fun inside_Adv : Adv;
-fun inside_N : N;
-fun insider_N : N;
-fun insidious_A : A;
-fun insidiously_Adv : Adv;
-fun insidiousness_N : N;
-fun insight_N : N;
-fun insignificance_N : N;
-fun insignificant_A : A;
-fun insignificantly_Adv : Adv;
-fun insincere_A : A;
-fun insincerely_Adv : Adv;
-fun insincerity_N : N;
-fun insinuate_V2 : V2;
-fun insinuatingly_Adv : Adv;
-fun insinuation_N : N;
-fun insipid_A : A;
-fun insipidity_N : N;
-fun insipidly_Adv : Adv;
-fun insipidness_N : N;
-fun insist_V : V;
-fun insist_V2 : V2;
-fun insistence_N : N;
-fun insistent_A : A;
-fun insofar_Adv : Adv;
-fun insole_N : N;
-fun insolence_N : N;
-fun insolent_A : A;
-fun insolently_Adv : Adv;
-fun insoluble_A : A;
-fun insolvency_N : N;
-fun insolvent_A : A;
-fun insolvent_N : N;
-fun insomnia_N : N;
-fun insomniac_N : N;
-fun insomuch_Adv : Adv;
-fun insouciance_N : N;
-fun insouciant_A : A;
-fun inspan_V2 : V2;
-fun inspect_V2 : V2;
-fun inspection_N : N;
-fun inspector_N : N;
-fun inspectorate_N : N;
-fun inspiration_N : N;
-fun inspirational_A : A;
-fun inspirationally_Adv : Adv;
-fun inspire_V2 : V2;
-fun inspired_A : A;
-fun inst_PN : PN;
-fun instability_N : N;
-fun install_V2 : V2;
-fun installation_N : N;
-fun instalment_N : N;
-fun instance_N : N;
-fun instance_V2 : V2;
-fun instant_A : A;
-fun instant_N : N;
-fun instantaneous_A : A;
-fun instantaneously_Adv : Adv;
-fun instantly_Adv : Adv;
-fun instead_Adv : Adv;
-fun instep_N : N;
-fun instigate_V2 : V2;
-fun instigation_N : N;
-fun instigator_N : N;
-fun instil_V2 : V2;
-fun instillation_N : N;
-fun instinct_A : A;
-fun instinct_N : N;
-fun instinctive_A : A;
-fun instinctively_Adv : Adv;
-fun institute_N : N;
-fun institute_V2 : V2;
-fun institution_N : N;
-fun institutional_A : A;
-fun institutionalize_V2 : V2;
-fun institutionally_Adv : Adv;
-fun instruct_V2 : V2;
-fun instruction_N : N;
-fun instructional_A : A;
-fun instructive_A : A;
-fun instructively_Adv : Adv;
-fun instructor_N : N;
-fun instructress_N : N;
-fun instrument_N : N;
-fun instrumental_A : A;
-fun instrumentalist_N : N;
-fun instrumentality_N : N;
-fun instrumentation_N : N;
-fun insubordinate_A : A;
-fun insubordination_N : N;
-fun insubstantial_A : A;
-fun insubstantially_Adv : Adv;
-fun insufferable_A : A;
-fun insufficiency_N : N;
-fun insufficient_A : A;
-fun insufficiently_Adv : Adv;
-fun insular_A : A;
-fun insularism_N : N;
-fun insularity_N : N;
-fun insulate_V2 : V2;
-fun insulation_N : N;
-fun insulator_N : N;
-fun insulin_N : N;
-fun insult_N : N;
-fun insult_V2 : V2;
-fun insulting_A : A;
-fun insultingly_Adv : Adv;
-fun insuperable_A : A;
-fun insuperably_Adv : Adv;
-fun insupportable_A : A;
-fun insurance_N : N;
-fun insure_V2 : V2;
-fun insurgent_A : A;
-fun insurgent_N : N;
-fun insurmountable_A : A;
-fun insurrection_N : N;
-fun intact_A : A;
-fun intaglio_N : N;
-fun intake_N : N;
-fun intangibility_N : N;
-fun intangible_A : A;
-fun intangibles_N : N;
-fun integer_N : N;
-fun integral_A : A;
-fun integrally_Adv : Adv;
-fun integrate_V2 : V2;
-fun integration_N : N;
-fun integrity_N : N;
-fun integument_N : N;
-fun intellect_N : N;
-fun intellectual_A : A;
-fun intellectual_N : N;
-fun intellectually_Adv : Adv;
-fun intelligence_N : N;
-fun intelligent_A : A;
-fun intelligently_Adv : Adv;
-fun intelligentsia_N : N;
-fun intelligibility_N : N;
-fun intelligible_A : A;
-fun intelligibly_Adv : Adv;
-fun intemperance_N : N;
-fun intemperate_A : A;
-fun intemperately_Adv : Adv;
-fun intend_V2 : V2;
-fun intense_A : A;
-fun intensely_Adv : Adv;
-fun intensification_N : N;
-fun intensify_V : V;
-fun intensify_V2 : V2;
-fun intensity_N : N;
-fun intensive_A : A;
-fun intensively_Adv : Adv;
-fun intent_A : A;
-fun intent_N : N;
-fun intention_N : N;
-fun intentional_A : A;
-fun intentionally_Adv : Adv;
-fun intently_Adv : Adv;
-fun intentness_N : N;
-fun inter_V2 : V2;
-fun inter_alia_Adv : Adv;
-fun interact_V : V;
-fun interaction_N : N;
-fun interactive_A : A;
-fun interbreed_V : V;
-fun interbreed_V2 : V2;
-fun intercalary_A : A;
-fun intercede_V : V;
-fun intercept_V2 : V2;
-fun interception_N : N;
-fun interceptor_N : N;
-fun intercession_N : N;
-fun interchange_N : N;
-fun interchange_V2 : V2;
-fun interchangeable_A : A;
-fun interchangeably_Adv : Adv;
-fun intercollegiate_A : A;
-fun intercom_N : N;
-fun intercommunicate_V : V;
-fun intercommunication_N : N;
-fun intercommunion_N : N;
-fun interconnect_V : V;
-fun interconnect_V2 : V2;
-fun interconnectedness_N : N;
-fun interconnection_N : N;
-fun intercontinental_A : A;
-fun intercourse_N : N;
-fun interdenominational_A : A;
-fun interdepartmental_A : A;
-fun interdepartmentally_Adv : Adv;
-fun interdependence_N : N;
-fun interdependent_A : A;
-fun interdict_N : N;
-fun interdict_V2 : V2;
-fun interdiction_N : N;
-fun interdisciplinary_A : A;
-fun interest_N : N;
-fun interest_V2 : V2;
-fun interested_A : A;
-fun interesting_A : A;
-fun interestingly_Adv : Adv;
-fun interface_N : N;
-fun interfere_V : V;
-fun interference_N : N;
-fun interim_N : N;
-fun interior_A : A;
-fun interior_N : N;
-fun interject_V2 : V2;
-fun interjection_N : N;
-fun interlace_V : V;
-fun interlace_V2 : V2;
-fun interlard_V2 : V2;
-fun interleave_V2 : V2;
-fun interlink_V : V;
-fun interlink_V2 : V2;
-fun interlock_V : V;
-fun interlock_V2 : V2;
-fun interlocutor_N : N;
-fun interloper_N : N;
-fun interlude_N : N;
-fun intermarriage_N : N;
-fun intermarry_V : V;
-fun intermediary_N : N;
-fun intermediate_A : A;
-fun intermediate_N : N;
-fun intermediately_Adv : Adv;
-fun interment_N : N;
-fun intermezzo_N : N;
-fun interminable_A : A;
-fun interminably_Adv : Adv;
-fun intermingle_V : V;
-fun intermingle_V2 : V2;
-fun intermission_N : N;
-fun intermittent_A : A;
-fun intermittently_Adv : Adv;
-fun intermix_V : V;
-fun intermix_V2 : V2;
-fun intermixture_N : N;
-fun intern_N : N;
-fun intern_V2 : V2;
-fun internal_A : A;
-fun internalize_V2 : V2;
-fun internally_Adv : Adv;
-fun international_A : A;
-fun international_N : N;
-fun internationale_N : N;
-fun internationalism_N : N;
-fun internationalist_N : N;
-fun internationalization_N : N;
-fun internationalize_V2 : V2;
-fun internationally_Adv : Adv;
-fun interne_N : N;
-fun internecine_A : A;
-fun internee_N : N;
-fun internment_N : N;
-fun interpellate_V2 : V2;
-fun interpellation_N : N;
-fun interphone_N : N;
-fun interplanetary_A : A;
-fun interplay_N : N;
-fun interpol_PN : PN;
-fun interpolate_V2 : V2;
-fun interpolation_N : N;
-fun interpose_V : V;
-fun interpose_V2 : V2;
-fun interposition_N : N;
-fun interpret_V : V;
-fun interpret_V2 : V2;
-fun interpretation_N : N;
-fun interpretative_A : A;
-fun interpreter_N : N;
-fun interracial_A : A;
-fun interregnum_N : N;
-fun interrelate_V : V;
-fun interrelate_V2 : V2;
-fun interrelation_N : N;
-fun interrelationship_N : N;
-fun interrogate_V2 : V2;
-fun interrogation_N : N;
-fun interrogative_A : A;
-fun interrogative_N : N;
-fun interrogatively_Adv : Adv;
-fun interrogator_N : N;
-fun interrogatory_A : A;
-fun interrupt_V : V;
-fun interrupt_V2 : V2;
-fun interrupter_N : N;
-fun interruption_N : N;
-fun intersect_V : V;
-fun intersect_V2 : V2;
-fun intersection_N : N;
-fun intersperse_V2 : V2;
-fun interstate_A : A;
-fun interstellar_A : A;
-fun interstice_N : N;
-fun intertribal_A : A;
-fun intertwine_V : V;
-fun intertwine_V2 : V2;
-fun interval_N : N;
-fun intervene_V : V;
-fun intervention_N : N;
-fun interview_N : N;
-fun interview_V2 : V2;
-fun interviewer_N : N;
-fun interweave_V2 : V2;
-fun intestate_A : A;
-fun intestinal_A : A;
-fun intestine_N : N;
-fun intimacy_N : N;
-fun intimate_A : A;
-fun intimate_N : N;
-fun intimate_V2 : V2;
-fun intimately_Adv : Adv;
-fun intimation_N : N;
-fun intimidate_V2 : V2;
-fun intimidation_N : N;
-fun intolerable_A : A;
-fun intolerably_Adv : Adv;
-fun intolerance_N : N;
-fun intolerant_A : A;
-fun intolerantly_Adv : Adv;
-fun intonation_N : N;
-fun intone_V : V;
-fun intone_V2 : V2;
-fun intoxicant_A : A;
-fun intoxicant_N : N;
-fun intoxicate_V2 : V2;
-fun intoxication_N : N;
-fun intra_uterine_A : A;
-fun intractability_N : N;
-fun intractable_A : A;
-fun intramural_A : A;
-fun intransigence_N : N;
-fun intransigent_A : A;
-fun intransitive_A : A;
-fun intransitively_Adv : Adv;
-fun intravenous_A : A;
-fun intravenously_Adv : Adv;
-fun intrench_V2 : V2;
-fun intrepid_A : A;
-fun intrepidity_N : N;
-fun intrepidly_Adv : Adv;
-fun intricacy_N : N;
-fun intricate_A : A;
-fun intricately_Adv : Adv;
-fun intrigue_N : N;
-fun intrigue_V : V;
-fun intrigue_V2 : V2;
-fun intrinsic_A : A;
-fun intrinsically_Adv : Adv;
-fun intro_N : N;
-fun introduce_V2 : V2;
-fun introduction_N : N;
-fun introductory_A : A;
-fun introspect_V : V;
-fun introspection_N : N;
-fun introspective_A : A;
-fun introversion_N : N;
-fun introvert_N : N;
-fun introvert_V2 : V2;
-fun intrude_V : V;
-fun intrude_V2 : V2;
-fun intruder_N : N;
-fun intrusion_N : N;
-fun intrusive_A : A;
-fun intrust_V2 : V2;
-fun intuit_V : V;
-fun intuit_V2 : V2;
-fun intuition_N : N;
-fun intuitive_A : A;
-fun intuitively_Adv : Adv;
-fun intumescence_N : N;
-fun inundate_V2 : V2;
-fun inundation_N : N;
-fun inure_V2 : V2;
-fun invade_V2 : V2;
-fun invader_N : N;
-fun invalid_A : A;
-fun invalid_N : N;
-fun invalid_V2 : V2;
-fun invalidate_V2 : V2;
-fun invalidation_N : N;
-fun invalidism_N : N;
-fun invalidity_N : N;
-fun invaluable_A : A;
-fun invariable_A : A;
-fun invariably_Adv : Adv;
-fun invasion_N : N;
-fun invasive_A : A;
-fun invective_N : N;
-fun inveigh_V : V;
-fun inveigle_V2 : V2;
-fun invent_V2 : V2;
-fun invention_N : N;
-fun inventive_A : A;
-fun inventively_Adv : Adv;
-fun inventor_N : N;
-fun inventory_N : N;
-fun inverkeithing_PN : PN;
-fun inverness_PN : PN;
-fun inverse_A : A;
-fun inverse_N : N;
-fun inversely_Adv : Adv;
-fun inversion_N : N;
-fun invert_V2 : V2;
-fun invertebrate_A : A;
-fun invertebrate_N : N;
-fun inverurie_PN : PN;
-fun invest_V : V;
-fun invest_V2 : V2;
-fun investigate_V2 : V2;
-fun investigation_N : N;
-fun investigator_N : N;
-fun investiture_N : N;
-fun investment_N : N;
-fun investor_N : N;
-fun inveterate_A : A;
-fun invidious_A : A;
-fun invidiously_Adv : Adv;
-fun invigilate_V : V;
-fun invigilation_N : N;
-fun invigilator_N : N;
-fun invigorate_V2 : V2;
-fun invincibility_N : N;
-fun invincible_A : A;
-fun invincibly_Adv : Adv;
-fun inviolable_A : A;
-fun inviolate_A : A;
-fun invisibility_N : N;
-fun invisible_A : A;
-fun invisibly_Adv : Adv;
-fun invitation_N : N;
-fun invite_N : N;
-fun invite_V2 : V2;
-fun inviting_A : A;
-fun invitingly_Adv : Adv;
-fun invocation_N : N;
-fun invoice_N : N;
-fun invoice_V2 : V2;
-fun invoke_V2 : V2;
-fun involuntarily_Adv : Adv;
-fun involuntary_A : A;
-fun involute_A : A;
-fun involution_N : N;
-fun involve_V2 : V2;
-fun involved_A : A;
-fun involvement_N : N;
-fun invulnerable_A : A;
-fun inward_A : A;
-fun inward_Adv : Adv;
-fun inwardly_Adv : Adv;
-fun inwardness_N : N;
-fun inwards_Adv : Adv;
-fun inwrought_A : A;
-fun iodine_N : N;
-fun ion_N : N;
-fun ionic_A : A;
-fun ionization_N : N;
-fun ionize_V : V;
-fun ionize_V2 : V2;
-fun ionosphere_N : N;
-fun iota_N : N;
-fun iou_N : N;
-fun ious_N : N;
-fun iowa_PN : PN;
-fun ipse_dixit_N : N;
-fun ipso_facto_Adv : Adv;
-fun ipswich_PN : PN;
-fun iq_N : N;
-fun ira_N : N;
-fun iran_PN : PN;
-fun iranian_A : A;
-fun iranian_N : N;
-fun iraq_PN : PN;
-fun iraqi_A : A;
-fun iraqi_N : N;
-fun irascibility_N : N;
-fun irascible_A : A;
-fun irate_A : A;
-fun irately_Adv : Adv;
-fun ire_N : N;
-fun ireful_A : A;
-fun ireland_PN : PN;
-fun irene_PN : PN;
-fun iridescence_N : N;
-fun iridescent_A : A;
-fun iridium_N : N;
-fun iris_N : N;
-fun iris_PN : PN;
-fun irish_A : A;
-fun irish_N : N;
-fun irishman_N : N;
-fun irishwoman_N : N;
-fun irk_V2 : V2;
-fun irksome_A : A;
-fun iron_N : N;
-fun iron_V : V;
-fun iron_V2 : V2;
-fun iron_foundry_N : N;
-fun iron_grey_A : A;
-fun iron_grey_N : N;
-fun ironclad_A : A;
-fun ironic_A : A;
-fun ironical_A : A;
-fun ironically_Adv : Adv;
-fun ironing_board_N : N;
-fun ironmonger_N : N;
-fun ironmongery_N : N;
-fun ironmould_N : N;
-fun ironside_N : N;
-fun ironware_N : N;
-fun ironwork_N : N;
-fun ironworks_N : N;
-fun irony_N : N;
-fun irradiate_V2 : V2;
-fun irrational_A : A;
-fun irrationally_Adv : Adv;
-fun irreconcilable_A : A;
-fun irrecoverable_A : A;
-fun irredeemable_A : A;
-fun irredentist_N : N;
-fun irreducible_A : A;
-fun irrefutable_A : A;
-fun irregular_A : A;
-fun irregular_N : N;
-fun irregularity_N : N;
-fun irregularly_Adv : Adv;
-fun irrelevance_N : N;
-fun irrelevancy_N : N;
-fun irrelevant_A : A;
-fun irrelevantly_Adv : Adv;
-fun irreligious_A : A;
-fun irremediable_A : A;
-fun irremovable_A : A;
-fun irreparable_A : A;
-fun irreplaceable_A : A;
-fun irrepressible_A : A;
-fun irreproachable_A : A;
-fun irresistible_A : A;
-fun irresolute_A : A;
-fun irresolution_N : N;
-fun irrespective_A : A;
-fun irresponsibility_N : N;
-fun irresponsible_A : A;
-fun irretrievable_A : A;
-fun irretrievably_Adv : Adv;
-fun irreverence_N : N;
-fun irreverent_A : A;
-fun irreverently_Adv : Adv;
-fun irreversibility_N : N;
-fun irreversible_A : A;
-fun irreversibly_Adv : Adv;
-fun irrevocable_A : A;
-fun irridentism_N : N;
-fun irrigate_V2 : V2;
-fun irrigation_N : N;
-fun irritability_N : N;
-fun irritable_A : A;
-fun irritably_Adv : Adv;
-fun irritant_A : A;
-fun irritant_N : N;
-fun irritate_V2 : V2;
-fun irritation_N : N;
-fun irruption_N : N;
-fun irthlingborough_PN : PN;
-fun irvine_PN : PN;
-fun isaac_PN : PN;
-fun isabel_PN : PN;
-fun isabella_PN : PN;
-fun isinglass_N : N;
-fun islam_N : N;
-fun islamic_A : A;
-fun island_N : N;
-fun islander_N : N;
-fun isle_N : N;
-fun islet_N : N;
-fun islington_PN : PN;
-fun ism_N : N;
-fun isobar_N : N;
-fun isobel_PN : PN;
-fun isolate_V2 : V2;
-fun isolation_N : N;
-fun isolationism_N : N;
-fun isolationist_N : N;
-fun isosceles_A : A;
-fun isotherm_N : N;
-fun isotope_N : N;
-fun israel_PN : PN;
-fun israeli_A : A;
-fun israeli_N : N;
-fun issue_N : N;
-fun issue_V : V;
-fun issue_V2 : V2;
-fun istanbul_PN : PN;
-fun isthmus_N : N;
-fun italian_A : A;
-fun italian_N : N;
-fun italic_A : A;
-fun italicize_V2 : V2;
-fun italy_PN : PN;
-fun itch_N : N;
-fun itch_V : V;
-fun itchy_A : A;
-fun item_Adv : Adv;
-fun item_N : N;
-fun itemize_V2 : V2;
-fun iterate_V2 : V2;
-fun iteration_N : N;
-fun itinerant_A : A;
-fun itinerary_N : N;
-fun itv_N : N;
-fun iud_N : N;
-fun ivan_PN : PN;
-fun iver_PN : PN;
-fun ivied_A : A;
-fun ivor_PN : PN;
-fun ivory_N : N;
-fun ivy_N : N;
-fun ivy_PN : PN;
-fun izmir_PN : PN;
-fun jab_N : N;
-fun jab_V : V;
-fun jab_V2 : V2;
-fun jabalpur_PN : PN;
-fun jabber_N : N;
-fun jabber_V : V;
-fun jabber_V2 : V2;
-fun jabberer_N : N;
-fun jabot_N : N;
-fun jack_N : N;
-fun jack_PN : PN;
-fun jack_V2 : V2;
-fun jack_in_the_box_N : N;
-fun jack_knife_N : N;
-fun jack_knife_V : V;
-fun jack_o'_lantern_N : N;
-fun jack_plane_N : N;
-fun jackal_N : N;
-fun jackanapes_N : N;
-fun jackass_N : N;
-fun jackboot_N : N;
-fun jackdaw_N : N;
-fun jacket_N : N;
-fun jackie_PN : PN;
-fun jackpot_N : N;
-fun jacksonville_PN : PN;
-fun jacob_PN : PN;
-fun jacobean_A : A;
-fun jacobin_A : A;
-fun jacobin_N : N;
-fun jacobinism_N : N;
-fun jacobite_N : N;
-fun jacqueline_PN : PN;
-fun jade_N : N;
-fun jaded_A : A;
-fun jag_N : N;
-fun jag_V2 : V2;
-fun jagged_A : A;
-fun jaggy_A : A;
-fun jaguar_N : N;
-fun jail_N : N;
-fun jail_V2 : V2;
-fun jailer_N : N;
-fun jailor_N : N;
-fun jaipur_PN : PN;
-fun jakarta_PN : PN;
-fun jake_PN : PN;
-fun jakes_N : N;
-fun jalopy_N : N;
-fun jam_N : N;
-fun jam_V : V;
-fun jam_V2 : V2;
-fun jamaica_PN : PN;
-fun jamaican_A : A;
-fun jamaican_N : N;
-fun jamb_N : N;
-fun jamboree_N : N;
-fun james_PN : PN;
-fun jamjar_N : N;
-fun jampack_V2 : V2;
-fun jampot_N : N;
-fun jan_PN : PN;
-fun jane_PN : PN;
-fun janet_PN : PN;
-fun jangle_N : N;
-fun jangle_V : V;
-fun jangle_V2 : V2;
-fun janice_PN : PN;
-fun janie_PN : PN;
-fun janitor_N : N;
-fun january_N : N;
-fun january_PN : PN;
-fun janus_PN : PN;
-fun japan_PN : PN;
-fun japan_V2 : V2;
-fun japanese_A : A;
-fun japanese_N : N;
-fun jape_N : N;
-fun japonica_N : N;
-fun jar_N : N;
-fun jar_V : V;
-fun jar_V2 : V2;
-fun jarful_N : N;
-fun jargon_N : N;
-fun jarring_A : A;
-fun jarringly_Adv : Adv;
-fun jarrow_PN : PN;
-fun jasmine_N : N;
-fun jason_PN : PN;
-fun jasper_N : N;
-fun jaundice_N : N;
-fun jaundice_V2 : V2;
-fun jaunt_N : N;
-fun jaunt_V : V;
-fun jauntily_Adv : Adv;
-fun jauntiness_N : N;
-fun jaunting_car_N : N;
-fun jaunty_A : A;
-fun java_PN : PN;
-fun javanese_A : A;
-fun javanese_N : N;
-fun javelin_N : N;
-fun jaw_N : N;
-fun jaw_V : V;
-fun jawbone_N : N;
-fun jawbreaker_N : N;
-fun jay_N : N;
-fun jaywalk_V : V;
-fun jaywalker_N : N;
-fun jazz_N : N;
-fun jazz_V2 : V2;
-fun jazzy_A : A;
-fun jc_PN : PN;
-fun jealous_A : A;
-fun jealously_Adv : Adv;
-fun jealousy_N : N;
-fun jean_N : N;
-fun jean_PN : PN;
-fun jeanie_PN : PN;
-fun jedburgh_PN : PN;
-fun jeep_N : N;
-fun jeer_N : N;
-fun jeer_V : V;
-fun jeer_V2 : V2;
-fun jeeringly_Adv : Adv;
-fun jeff_PN : PN;
-fun jeffrey_PN : PN;
-fun jehovah_PN : PN;
-fun jejune_A : A;
-fun jejunely_Adv : Adv;
-fun jejuneness_N : N;
-fun jekyll_and_hyde_PN : PN;
-fun jell_V : V;
-fun jell_V2 : V2;
-fun jellaba_N : N;
-fun jellied_A : A;
-fun jelly_N : N;
-fun jelly_V : V;
-fun jelly_V2 : V2;
-fun jellyfish_N : N;
-fun jemmy_N : N;
-fun jennifer_PN : PN;
-fun jenny_N : N;
-fun jenny_PN : PN;
-fun jeopardize_V2 : V2;
-fun jeopardy_N : N;
-fun jerboa_N : N;
-fun jeremiad_N : N;
-fun jeremy_PN : PN;
-fun jerk_N : N;
-fun jerk_V : V;
-fun jerk_V2 : V2;
-fun jerkily_Adv : Adv;
-fun jerkin_N : N;
-fun jerkiness_N : N;
-fun jerky_A : A;
-fun jerome_PN : PN;
-fun jerry_N : N;
-fun jerry_PN : PN;
-fun jerry_builder_N : N;
-fun jerry_building_N : N;
-fun jerry_built_A : A;
-fun jersey_N : N;
-fun jersey_PN : PN;
-fun jess_PN : PN;
-fun jessica_PN : PN;
-fun jessie_PN : PN;
-fun jest_N : N;
-fun jest_V : V;
-fun jester_N : N;
-fun jesting_A : A;
-fun jestingly_Adv : Adv;
-fun jesuit_N : N;
-fun jesuitical_A : A;
-fun jesus_PN : PN;
-fun jet_N : N;
-fun jet_V : V;
-fun jet_V2 : V2;
-fun jet_black_A : A;
-fun jet_propelled_A : A;
-fun jetsam_N : N;
-fun jettison_V2 : V2;
-fun jetty_N : N;
-fun jew_N : N;
-fun jewel_N : N;
-fun jewel_V2 : V2;
-fun jeweller_N : N;
-fun jewellery_N : N;
-fun jewelry_N : N;
-fun jewess_N : N;
-fun jewish_A : A;
-fun jezebel_N : N;
-fun jib_N : N;
-fun jib_V : V;
-fun jib_boom_N : N;
-fun jibe_N : N;
-fun jibe_V : V;
-fun jiffy_N : N;
-fun jig_N : N;
-fun jig_V : V;
-fun jig_V2 : V2;
-fun jigger_N : N;
-fun jiggered_A : A;
-fun jiggery_pokery_N : N;
-fun jiggle_N : N;
-fun jiggle_V : V;
-fun jiggle_V2 : V2;
-fun jigsaw_N : N;
-fun jihad_N : N;
-fun jill_PN : PN;
-fun jilt_N : N;
-fun jilt_V2 : V2;
-fun jim_PN : PN;
-fun jim_crow_N : N;
-fun jimmy_N : N;
-fun jimmy_PN : PN;
-fun jingle_N : N;
-fun jingle_V : V;
-fun jingle_V2 : V2;
-fun jingo_N : N;
-fun jingoism_N : N;
-fun jingoist_N : N;
-fun jingoistic_A : A;
-fun jinks_N : N;
-fun jinn_N : N;
-fun jinx_N : N;
-fun jitney_N : N;
-fun jitterbug_N : N;
-fun jittery_A : A;
-fun jive_N : N;
-fun jive_V : V;
-fun jnr_PN : PN;
-fun jo_PN : PN;
-fun joan_PN : PN;
-fun joanie_PN : PN;
-fun joann_PN : PN;
-fun joanna_PN : PN;
-fun joanne_PN : PN;
-fun job_N : N;
-fun job_PN : PN;
-fun job_V : V;
-fun job_V2 : V2;
-fun jobber_N : N;
-fun jobbery_N : N;
-fun jocelyn_PN : PN;
-fun jockey_N : N;
-fun jockey_V : V;
-fun jockey_V2 : V2;
-fun jocose_A : A;
-fun jocosely_Adv : Adv;
-fun jocoseness_N : N;
-fun jocosity_N : N;
-fun jocular_A : A;
-fun jocularity_N : N;
-fun jocularly_Adv : Adv;
-fun jocund_A : A;
-fun jocundity_N : N;
-fun joe_PN : PN;
-fun joey_PN : PN;
-fun jog_N : N;
-fun jog_V : V;
-fun jog_V2 : V2;
-fun jog_trot_N : N;
-fun jogger_N : N;
-fun jogging_N : N;
-fun joggle_N : N;
-fun joggle_V : V;
-fun joggle_V2 : V2;
-fun johannesburg_PN : PN;
-fun john_N : N;
-fun john_PN : PN;
-fun john_bull_N : N;
-fun johnny_PN : PN;
-fun johnstone_PN : PN;
-fun joie_de_vivre_N : N;
-fun join_N : N;
-fun join_V : V;
-fun join_V2 : V2;
-fun joiner_N : N;
-fun joinery_N : N;
-fun joint_A : A;
-fun joint_N : N;
-fun joint_V2 : V2;
-fun jointly_Adv : Adv;
-fun jointure_N : N;
-fun joist_N : N;
-fun joke_N : N;
-fun joke_V : V;
-fun joker_N : N;
-fun jokingly_Adv : Adv;
-fun jollification_N : N;
-fun jollity_N : N;
-fun jolly_A : A;
-fun jolly_Adv : Adv;
-fun jolly_V2 : V2;
-fun jollyboat_N : N;
-fun jolt_N : N;
-fun jolt_V : V;
-fun jolt_V2 : V2;
-fun jolty_A : A;
-fun jonah_PN : PN;
-fun jonathan_PN : PN;
-fun jonquil_N : N;
-fun jordan_PN : PN;
-fun jordanian_A : A;
-fun jordanian_N : N;
-fun joseph_PN : PN;
-fun josephine_PN : PN;
-fun josh_PN : PN;
-fun joshua_PN : PN;
-fun joss_N : N;
-fun joss_house_N : N;
-fun joss_stick_N : N;
-fun jostle_V : V;
-fun jostle_V2 : V2;
-fun jot_N : N;
-fun jot_V2 : V2;
-fun jotter_N : N;
-fun joule_N : N;
-fun journal_N : N;
-fun journalese_N : N;
-fun journalism_N : N;
-fun journalist_N : N;
-fun journalistic_A : A;
-fun journalistically_Adv : Adv;
-fun journey_N : N;
-fun journey_V : V;
-fun journeyman_N : N;
-fun joust_N : N;
-fun joust_V : V;
-fun jove_PN : PN;
-fun jovial_A : A;
-fun joviality_N : N;
-fun jovially_Adv : Adv;
-fun jowl_N : N;
-fun jowly_A : A;
-fun joy_N : N;
-fun joy_PN : PN;
-fun joy_V : V;
-fun joy_ride_N : N;
-fun joy_stick_N : N;
-fun joyce_PN : PN;
-fun joyful_A : A;
-fun joyfully_Adv : Adv;
-fun joyfulness_N : N;
-fun joyless_A : A;
-fun joylessly_Adv : Adv;
-fun joylessness_N : N;
-fun joyous_A : A;
-fun joyously_Adv : Adv;
-fun joyousness_N : N;
-fun jp_N : N;
-fun ju_jitsu_N : N;
-fun jubilant_A : A;
-fun jubilantly_Adv : Adv;
-fun jubilation_N : N;
-fun jubilee_N : N;
-fun judaic_A : A;
-fun judaism_N : N;
-fun judas_N : N;
-fun judas_PN : PN;
-fun judder_V : V;
-fun judge_N : N;
-fun judge_V : V;
-fun judge_V2 : V2;
-fun judgement_N : N;
-fun judicature_N : N;
-fun judicial_A : A;
-fun judiciary_N : N;
-fun judicious_A : A;
-fun judiciously_Adv : Adv;
-fun judiciousness_N : N;
-fun judith_PN : PN;
-fun judo_N : N;
-fun judy_PN : PN;
-fun jug_N : N;
-fun jug_V2 : V2;
-fun jugful_N : N;
-fun juggernaut_N : N;
-fun juggle_V : V;
-fun juggle_V2 : V2;
-fun juggler_N : N;
-fun jugular_A : A;
-fun juice_N : N;
-fun juiciness_N : N;
-fun juicy_A : A;
-fun juju_N : N;
-fun jujube_N : N;
-fun jukebox_N : N;
-fun jul_PN : PN;
-fun julep_N : N;
-fun julia_PN : PN;
-fun julian_A : A;
-fun julian_PN : PN;
-fun julie_PN : PN;
-fun juliet_PN : PN;
-fun july_N : N;
-fun jumble_N : N;
-fun jumble_V : V;
-fun jumble_V2 : V2;
-fun jumble_sale_N : N;
-fun jumbo_A : A;
-fun jump_N : N;
-fun jump_V : V;
-fun jump_V2 : V2;
-fun jumped_up_A : A;
-fun jumper_N : N;
-fun jumpiness_N : N;
-fun jumpy_A : A;
-fun jun_PN : PN;
-fun junction_N : N;
-fun juncture_N : N;
-fun june_N : N;
-fun june_PN : PN;
-fun jungle_N : N;
-fun jungly_A : A;
-fun junior_A : A;
-fun junior_N : N;
-fun juniper_N : N;
-fun junk_N : N;
-fun junk_shop_N : N;
-fun junket_N : N;
-fun junket_V : V;
-fun junketing_N : N;
-fun junkie_N : N;
-fun junky_N : N;
-fun junoesque_A : A;
-fun junta_N : N;
-fun jupiter_PN : PN;
-fun juridical_A : A;
-fun jurisdiction_N : N;
-fun jurisprudence_N : N;
-fun jurist_N : N;
-fun juror_N : N;
-fun jury_N : N;
-fun jury_box_N : N;
-fun jury_mast_N : N;
-fun juryman_N : N;
-fun just_A : A;
-fun just_Adv : Adv;
-fun justice_N : N;
-fun justiciary_N : N;
-fun justifiable_A : A;
-fun justifiably_Adv : Adv;
-fun justification_N : N;
-fun justify_V2 : V2;
-fun justin_PN : PN;
-fun justly_Adv : Adv;
-fun justness_N : N;
-fun jut_V : V;
-fun jute_N : N;
-fun juvenile_A : A;
-fun juvenile_N : N;
-fun juxtapose_V2 : V2;
-fun juxtaposition_N : N;
-fun kaffir_N : N;
-fun kail_N : N;
-fun kaiser_N : N;
-fun kakemono_N : N;
-fun kale_N : N;
-fun kaleidoscope_N : N;
-fun kaleidoscopic_A : A;
-fun kalgan_PN : PN;
-fun kampong_N : N;
-fun kampuchea_PN : PN;
-fun kampuchean_A : A;
-fun kampuchean_N : N;
-fun kangaroo_N : N;
-fun kanpur_PN : PN;
-fun kansas_PN : PN;
-fun kansas_city_PN : PN;
-fun kaohsiung_PN : PN;
-fun kaolin_N : N;
-fun kapok_N : N;
-fun kaput_A : A;
-fun karachi_PN : PN;
-fun karaganda_PN : PN;
-fun karat_N : N;
-fun karate_N : N;
-fun karen_PN : PN;
-fun karlsruhe_PN : PN;
-fun karma_N : N;
-fun kashmir_PN : PN;
-fun kashmiri_A : A;
-fun kashmiri_N : N;
-fun kassel_PN : PN;
-fun kate_PN : PN;
-fun kath_PN : PN;
-fun katherine_PN : PN;
-fun kathy_PN : PN;
-fun katie_PN : PN;
-fun katowice_PN : PN;
-fun kava_N : N;
-fun kay_PN : PN;
-fun kayak_N : N;
-fun kazan_PN : PN;
-fun kebab_N : N;
-fun kedgeree_N : N;
-fun keel_N : N;
-fun keel_V : V;
-fun keel_V2 : V2;
-fun keen_A : A;
-fun keen_N : N;
-fun keen_V : V;
-fun keen_V2 : V2;
-fun keenly_Adv : Adv;
-fun keenness_N : N;
-fun keep_N : N;
-fun keep_V : V;
-fun keep_V2 : V2;
-fun keeper_N : N;
-fun keeping_N : N;
-fun keepsake_N : N;
-fun keg_N : N;
-fun keighley_PN : PN;
-fun keith_PN : PN;
-fun kelp_N : N;
-fun kelso_PN : PN;
-fun kelt_N : N;
-fun kelty_PN : PN;
-fun kemsing_PN : PN;
-fun ken_N : N;
-fun ken_PN : PN;
-fun ken_V2 : V2;
-fun kendal_PN : PN;
-fun kenilworth_PN : PN;
-fun kennel_N : N;
-fun kennel_V : V;
-fun kennel_V2 : V2;
-fun kenneth_PN : PN;
-fun kenny_PN : PN;
-fun kensington_PN : PN;
-fun kent_PN : PN;
-fun kentucky_PN : PN;
-fun kenya_PN : PN;
-fun kenyan_A : A;
-fun kenyan_N : N;
-fun kepi_N : N;
-fun kerb_N : N;
-fun kerbstone_N : N;
-fun kerchief_N : N;
-fun kernel_N : N;
-fun kerosene_N : N;
-fun kerry_PN : PN;
-fun kestrel_N : N;
-fun ketch_N : N;
-fun ketchup_N : N;
-fun kettering_PN : PN;
-fun kettle_N : N;
-fun kettledrum_N : N;
-fun kevin_PN : PN;
-fun key_N : N;
-fun key_V2 : V2;
-fun keyboard_N : N;
-fun keyhole_N : N;
-fun keyless_A : A;
-fun keynote_N : N;
-fun keynsham_PN : PN;
-fun keyring_N : N;
-fun keystone_N : N;
-fun keyword_N : N;
-fun keyworth_PN : PN;
-fun kg_N : N;
-fun kgb_N : N;
-fun khaki_A : A;
-fun khaki_N : N;
-fun khalka_N : N;
-fun khan_N : N;
-fun kharkov_PN : PN;
-fun khartoum_PN : PN;
-fun khmer_N : N;
-fun kibbutz_N : N;
-fun kibbutznik_N : N;
-fun kick_N : N;
-fun kick_V : V;
-fun kick_V2 : V2;
-fun kick_start_N : N;
-fun kick_starter_N : N;
-fun kickback_N : N;
-fun kickoff_N : N;
-fun kid_N : N;
-fun kid_V : V;
-fun kid_V2 : V2;
-fun kidderminster_PN : PN;
-fun kiddy_N : N;
-fun kidlington_PN : PN;
-fun kidnap_V2 : V2;
-fun kidnapper_N : N;
-fun kidney_N : N;
-fun kidney_bean_N : N;
-fun kidsgrove_PN : PN;
-fun kiev_PN : PN;
-fun kilbirnie_PN : PN;
-fun kildare_PN : PN;
-fun kilkenny_PN : PN;
-fun kill_N : N;
-fun kill_V : V;
-fun kill_V2 : V2;
-fun killarney_PN : PN;
-fun killer_N : N;
-fun killing_A : A;
-fun killing_N : N;
-fun killingly_Adv : Adv;
-fun killjoy_N : N;
-fun kilmarnock_PN : PN;
-fun kiln_N : N;
-fun kilo_N : N;
-fun kilocycle_N : N;
-fun kilogram_N : N;
-fun kilolitre_N : N;
-fun kilometre_N : N;
-fun kilowatt_N : N;
-fun kilsyth_PN : PN;
-fun kilt_N : N;
-fun kilwinning_PN : PN;
-fun kimberley_PN : PN;
-fun kimono_N : N;
-fun kind_A : A;
-fun kind_N : N;
-fun kind_hearted_A : A;
-fun kinda_Adv : Adv;
-fun kindergarten_N : N;
-fun kindle_V : V;
-fun kindle_V2 : V2;
-fun kindling_N : N;
-fun kindly_A : A;
-fun kindly_Adv : Adv;
-fun kindness_N : N;
-fun kindred_A : A;
-fun kindred_N : N;
-fun kinetic_A : A;
-fun kinetics_N : N;
-fun king's_lynn_PN : PN;
-fun king_N : N;
-fun king_size_A : A;
-fun king_sized_A : A;
-fun kingcup_N : N;
-fun kingdom_N : N;
-fun kingfisher_N : N;
-fun kinglike_A : A;
-fun kingly_A : A;
-fun kingpin_N : N;
-fun kingsbury_PN : PN;
-fun kingship_N : N;
-fun kingsteignton_PN : PN;
-fun kingston_PN : PN;
-fun kingston_upon_hull_PN : PN;
-fun kingston_upon_thames_PN : PN;
-fun kink_N : N;
-fun kink_V : V;
-fun kink_V2 : V2;
-fun kinky_A : A;
-fun kinshasa_PN : PN;
-fun kinship_N : N;
-fun kinsman_N : N;
-fun kinswoman_N : N;
-fun kiosk_N : N;
-fun kip_N : N;
-fun kip_V : V;
-fun kippax_PN : PN;
-fun kipper_N : N;
-fun kirin_PN : PN;
-fun kirk_N : N;
-fun kirkby_PN : PN;
-fun kirkby_in_ashfield_PN : PN;
-fun kirkcaldy_PN : PN;
-fun kirkham_PN : PN;
-fun kirkintilloch_PN : PN;
-fun kirkwall_PN : PN;
-fun kirsch_N : N;
-fun kirtle_N : N;
-fun kismet_N : N;
-fun kiss_N : N;
-fun kiss_V : V;
-fun kiss_V2 : V2;
-fun kisser_N : N;
-fun kit_N : N;
-fun kit_V2 : V2;
-fun kitakyushu_PN : PN;
-fun kitbag_N : N;
-fun kitchen_N : N;
-fun kitchenette_N : N;
-fun kite_N : N;
-fun kite_balloon_N : N;
-fun kitsch_A : A;
-fun kitten_N : N;
-fun kittenish_A : A;
-fun kitty_N : N;
-fun kitty_PN : PN;
-fun kiwi_N : N;
-fun klaxon_N : N;
-fun kleenex_N : N;
-fun kleptomania_N : N;
-fun kleptomaniac_N : N;
-fun km_N : N;
-fun knack_N : N;
-fun knacker_N : N;
-fun knap_V2 : V2;
-fun knapsack_N : N;
-fun knaresborough_PN : PN;
-fun knave_N : N;
-fun knavery_N : N;
-fun knavish_A : A;
-fun knavishly_Adv : Adv;
-fun knead_V2 : V2;
-fun knee_N : N;
-fun knee_deep_A : A;
-fun knee_deep_Adv : Adv;
-fun knee_high_A : A;
-fun knee_high_Adv : Adv;
-fun kneecap_N : N;
-fun kneel_V : V;
-fun knell_N : N;
-fun knesset_N : N;
-fun knick_knack_N : N;
-fun knife_N : N;
-fun knife_V2 : V2;
-fun knife_edge_N : N;
-fun knight_N : N;
-fun knight_V2 : V2;
-fun knight_errant_N : N;
-fun knighthood_N : N;
-fun knightly_A : A;
-fun knit_V : V;
-fun knit_V2 : V2;
-fun knitter_N : N;
-fun knitting_N : N;
-fun knitting_machine_N : N;
-fun knitting_needle_N : N;
-fun knitwear_N : N;
-fun knob_N : N;
-fun knobble_N : N;
-fun knobbly_A : A;
-fun knobkerrie_N : N;
-fun knock_N : N;
-fun knock_V : V;
-fun knock_V2 : V2;
-fun knock_kneed_A : A;
-fun knock_on_N : N;
-fun knockabout_A : A;
-fun knockdown_A : A;
-fun knocker_N : N;
-fun knockout_A : A;
-fun knockout_N : N;
-fun knoll_N : N;
-fun knot_N : N;
-fun knot_V : V;
-fun knot_V2 : V2;
-fun knothole_N : N;
-fun knottingley_PN : PN;
-fun knotty_A : A;
-fun knout_N : N;
-fun know_N : N;
-fun know_V : V;
-fun know_V2 : V2;
-fun know_all_N : N;
-fun know_how_N : N;
-fun knowing_A : A;
-fun knowingly_Adv : Adv;
-fun knowledge_N : N;
-fun knowledgeable_A : A;
-fun knuckle_N : N;
-fun knuckle_V : V;
-fun knutsford_PN : PN;
-fun ko_N : N;
-fun koala_N : N;
-fun kobe_PN : PN;
-fun koblenz_PN : PN;
-fun kobo_N : N;
-fun kohl_N : N;
-fun kohlrabi_N : N;
-fun kola_N : N;
-fun kola_nut_N : N;
-fun koln_PN : PN;
-fun kookaburra_N : N;
-fun kopeck_N : N;
-fun kopje_N : N;
-fun koppie_N : N;
-fun koran_N : N;
-fun koranic_A : A;
-fun korea_PN : PN;
-fun korean_A : A;
-fun korean_N : N;
-fun kosher_A : A;
-fun kosher_N : N;
-fun kotow_N : N;
-fun kotow_V : V;
-fun koumiss_N : N;
-fun kowtow_N : N;
-fun kowtow_V : V;
-fun kraal_N : N;
-fun krakow_PN : PN;
-fun krasnoyarsk_PN : PN;
-fun krefeld_PN : PN;
-fun kremlin_N : N;
-fun krivoi_rog_PN : PN;
-fun krona_N : N;
-fun krone_N : N;
-fun kudos_N : N;
-fun kumis_N : N;
-fun kung_fu_N : N;
-fun kunming_PN : PN;
-fun kuwait_PN : PN;
-fun kuwait_city_PN : PN;
-fun kuwaiti_A : A;
-fun kuwaiti_N : N;
-fun kuybyshev_PN : PN;
-fun kvass_N : N;
-fun kw_N : N;
-fun kwacha_N : N;
-fun kweiyang_PN : PN;
-fun kwela_N : N;
-fun kyoto_PN : PN;
-fun kummel_N : N;
-fun l_plate_N : N;
-fun la_N : N;
-fun la_PN : PN;
-fun la_di_da_A : A;
-fun la_habana_PN : PN;
-fun la_paz_PN : PN;
-fun la_plata_PN : PN;
-fun la_spezia_PN : PN;
-fun laager_N : N;
-fun lab_N : N;
-fun lab_PN : PN;
-fun label_N : N;
-fun label_V2 : V2;
-fun labial_A : A;
-fun laboratory_N : N;
-fun laborious_A : A;
-fun laboriously_Adv : Adv;
-fun labour_N : N;
-fun labour_V : V;
-fun labour_V2 : V2;
-fun labour_saving_A : A;
-fun laboured_A : A;
-fun labourer_N : N;
-fun labourite_N : N;
-fun labrador_PN : PN;
-fun laburnum_N : N;
-fun labyrinth_N : N;
-fun labyrinthine_A : A;
-fun lace_N : N;
-fun lace_V : V;
-fun lace_V2 : V2;
-fun lacerate_V2 : V2;
-fun laceration_N : N;
-fun lachrymal_A : A;
-fun lachrymose_A : A;
-fun lack_N : N;
-fun lack_V : V;
-fun lack_V2 : V2;
-fun lack_lustre_A : A;
-fun lackadaisical_A : A;
-fun lackadaisically_Adv : Adv;
-fun lackey_N : N;
-fun laconic_A : A;
-fun laconically_Adv : Adv;
-fun laconicism_N : N;
-fun laconism_N : N;
-fun lacquer_N : N;
-fun lacquer_V2 : V2;
-fun lacrosse_N : N;
-fun lactic_A : A;
-fun lacuna_N : N;
-fun lacy_A : A;
-fun lad_N : N;
-fun ladder_N : N;
-fun ladder_V : V;
-fun ladder_proof_A : A;
-fun laddie_N : N;
-fun lade_V2 : V2;
-fun laden_A : A;
-fun lading_N : N;
-fun ladle_N : N;
-fun ladle_V2 : V2;
-fun lady's_maid_N : N;
-fun lady_N : N;
-fun lady_chapel_N : N;
-fun lady_in_waiting_N : N;
-fun lady_killer_N : N;
-fun ladybird_N : N;
-fun ladylike_A : A;
-fun ladyship_N : N;
-fun lag_N : N;
-fun lag_V : V;
-fun lag_V2 : V2;
-fun lager_N : N;
-fun laggard_N : N;
-fun lagging_N : N;
-fun lagoon_N : N;
-fun lagos_PN : PN;
-fun lahore_PN : PN;
-fun laic_A : A;
-fun laicize_V2 : V2;
-fun lair_N : N;
-fun laird_N : N;
-fun laissez_faire_N : N;
-fun laity_N : N;
-fun lake_N : N;
-fun lakenheath_PN : PN;
-fun lakh_N : N;
-fun lam_V : V;
-fun lam_V2 : V2;
-fun lama_N : N;
-fun lamasery_N : N;
-fun lamb_N : N;
-fun lamb_V : V;
-fun lambaste_V2 : V2;
-fun lambency_N : N;
-fun lambent_A : A;
-fun lambeth_PN : PN;
-fun lambkin_N : N;
-fun lambskin_N : N;
-fun lame_A : A;
-fun lame_V2 : V2;
-fun lamely_Adv : Adv;
-fun lameness_N : N;
-fun lament_N : N;
-fun lament_V : V;
-fun lament_V2 : V2;
-fun lamentable_A : A;
-fun lamentably_Adv : Adv;
-fun lamentation_N : N;
-fun laminate_V : V;
-fun laminate_V2 : V2;
-fun lammas_N : N;
-fun lammas_PN : PN;
-fun lamp_N : N;
-fun lamp_black_N : N;
-fun lamplight_N : N;
-fun lamplighter_N : N;
-fun lamplit_A : A;
-fun lampoon_N : N;
-fun lampoon_V2 : V2;
-fun lamppost_N : N;
-fun lamprey_N : N;
-fun lampshade_N : N;
-fun lame_N : N;
-fun lanark_PN : PN;
-fun lancashire_PN : PN;
-fun lancaster_PN : PN;
-fun lancastrian_A : A;
-fun lancastrian_N : N;
-fun lance_N : N;
-fun lance_V2 : V2;
-fun lance_corporal_N : N;
-fun lancer_N : N;
-fun lancet_N : N;
-fun lanchow_PN : PN;
-fun lancing_PN : PN;
-fun land_N : N;
-fun land_V : V;
-fun land_V2 : V2;
-fun land_agent_N : N;
-fun landau_N : N;
-fun landed_A : A;
-fun landfall_N : N;
-fun landgrave_N : N;
-fun landholder_N : N;
-fun landing_N : N;
-fun landing_craft_N : N;
-fun landing_field_N : N;
-fun landing_gear_N : N;
-fun landing_net_N : N;
-fun landing_party_N : N;
-fun landing_place_N : N;
-fun landing_stage_N : N;
-fun landing_strip_N : N;
-fun landlady_N : N;
-fun landless_A : A;
-fun landlocked_A : A;
-fun landlord_N : N;
-fun landlubber_N : N;
-fun landmark_N : N;
-fun landmine_N : N;
-fun landowner_N : N;
-fun landrover_N : N;
-fun landscape_N : N;
-fun landscape_V2 : V2;
-fun landslide_N : N;
-fun landslip_N : N;
-fun landsman_N : N;
-fun landward_Adv : Adv;
-fun lane_N : N;
-fun langsyne_Adv : Adv;
-fun langsyne_N : N;
-fun language_N : N;
-fun languid_A : A;
-fun languidly_Adv : Adv;
-fun languish_V : V;
-fun languor_N : N;
-fun languorous_A : A;
-fun languorously_Adv : Adv;
-fun langur_N : N;
-fun lank_A : A;
-fun lanky_A : A;
-fun lanolin_N : N;
-fun lantern_N : N;
-fun lantern_jawed_A : A;
-fun lanyard_N : N;
-fun lao_N : N;
-fun laos_PN : PN;
-fun laotian_A : A;
-fun laotian_N : N;
-fun lap_N : N;
-fun lap_V : V;
-fun lap_V2 : V2;
-fun lap_dog_N : N;
-fun lapel_N : N;
-fun lapidary_A : A;
-fun lapidary_N : N;
-fun lapis_lazuli_N : N;
-fun lapse_N : N;
-fun lapse_V : V;
-fun lapwing_N : N;
-fun larboard_A : A;
-fun larboard_N : N;
-fun larceny_N : N;
-fun larch_N : N;
-fun lard_N : N;
-fun lard_V2 : V2;
-fun larder_N : N;
-fun large_A : A;
-fun large_Adv : Adv;
-fun large_N : N;
-fun large_scale_A : A;
-fun largely_Adv : Adv;
-fun largeness_N : N;
-fun largesse_N : N;
-fun largish_A : A;
-fun largo_N : N;
-fun largs_PN : PN;
-fun lariat_N : N;
-fun lark_N : N;
-fun lark_V : V;
-fun larkhall_PN : PN;
-fun larkspur_N : N;
-fun larn_V : V;
-fun larn_V2 : V2;
-fun larne_PN : PN;
-fun larry_PN : PN;
-fun larva_N : N;
-fun larval_A : A;
-fun laryngitis_N : N;
-fun larynx_N : N;
-fun las_palmas_PN : PN;
-fun lascar_N : N;
-fun lascivious_A : A;
-fun lasciviously_Adv : Adv;
-fun lasciviousness_N : N;
-fun laser_N : N;
-fun lash_N : N;
-fun lash_V : V;
-fun lash_V2 : V2;
-fun lash_up_N : N;
-fun lashing_N : N;
-fun lass_N : N;
-fun lassie_N : N;
-fun lassitude_N : N;
-fun lasso_N : N;
-fun lasso_V2 : V2;
-fun last_A : A;
-fun last_Adv : Adv;
-fun last_N : N;
-fun last_V : V;
-fun lasting_A : A;
-fun lastly_Adv : Adv;
-fun lat_N : N;
-fun latch_N : N;
-fun latch_V : V;
-fun latch_V2 : V2;
-fun latchkey_N : N;
-fun late_A : A;
-fun late_Adv : Adv;
-fun lateen_A : A;
-fun lately_Adv : Adv;
-fun latent_A : A;
-fun lateral_A : A;
-fun laterally_Adv : Adv;
-fun laterite_N : N;
-fun latex_N : N;
-fun lath_N : N;
-fun lathe_N : N;
-fun lather_N : N;
-fun lather_V : V;
-fun lather_V2 : V2;
-fun lathi_N : N;
-fun latin_A : A;
-fun latin_N : N;
-fun latinist_N : N;
-fun latinize_V2 : V2;
-fun latish_A : A;
-fun latitude_N : N;
-fun latitudes_N : N;
-fun latitudinal_A : A;
-fun latitudinarian_A : A;
-fun latitudinarian_N : N;
-fun latrine_N : N;
-fun latter_A : A;
-fun latter_day_A : A;
-fun latterly_Adv : Adv;
-fun lattice_N : N;
-fun latticed_A : A;
-fun laud_V2 : V2;
-fun laudable_A : A;
-fun laudably_Adv : Adv;
-fun laudanum_N : N;
-fun laudatory_A : A;
-fun laugh_N : N;
-fun laugh_V : V;
-fun laugh_V2 : V2;
-fun laughable_A : A;
-fun laughably_Adv : Adv;
-fun laughing_A : A;
-fun laughing_gas_N : N;
-fun laughing_stock_N : N;
-fun laughingly_Adv : Adv;
-fun laughter_N : N;
-fun launch_N : N;
-fun launch_V : V;
-fun launch_V2 : V2;
-fun launcher_N : N;
-fun launching_pad_N : N;
-fun launching_site_N : N;
-fun launder_V : V;
-fun launder_V2 : V2;
-fun launderette_N : N;
-fun laundress_N : N;
-fun laundry_N : N;
-fun laundryman_N : N;
-fun laundrywoman_N : N;
-fun laura_PN : PN;
-fun laureate_A : A;
-fun laureate_N : N;
-fun laurel_N : N;
-fun laurelled_A : A;
-fun laurence_PN : PN;
-fun lausanne_PN : PN;
-fun lav_N : N;
-fun lava_N : N;
-fun lavatory_N : N;
-fun lave_V2 : V2;
-fun lavender_N : N;
-fun lavish_A : A;
-fun lavish_V2 : V2;
-fun lavishly_Adv : Adv;
-fun law_N : N;
-fun law_abiding_A : A;
-fun law_officer_N : N;
-fun lawbreaker_N : N;
-fun lawful_A : A;
-fun lawfully_Adv : Adv;
-fun lawgiver_N : N;
-fun lawless_A : A;
-fun lawlessly_Adv : Adv;
-fun lawlessness_N : N;
-fun lawmaker_N : N;
-fun lawmaking_N : N;
-fun lawn_N : N;
-fun lawn_mower_N : N;
-fun lawrence_PN : PN;
-fun lawyer_N : N;
-fun lax_A : A;
-fun laxative_A : A;
-fun laxative_N : N;
-fun laxity_N : N;
-fun laxly_Adv : Adv;
-fun lay_A : A;
-fun lay_N : N;
-fun lay_V : V;
-fun lay_V2 : V2;
-fun lay_figure_N : N;
-fun lay_off_N : N;
-fun lay_out_N : N;
-fun layabout_N : N;
-fun layby_N : N;
-fun layer_N : N;
-fun layer_V2 : V2;
-fun layer_cake_N : N;
-fun layette_N : N;
-fun layman_N : N;
-fun layover_N : N;
-fun lazar_N : N;
-fun lazaret_N : N;
-fun lazarette_N : N;
-fun lazaretto_N : N;
-fun lazarus_N : N;
-fun lazarus_PN : PN;
-fun laze_V : V;
-fun laze_V2 : V2;
-fun lazily_Adv : Adv;
-fun laziness_N : N;
-fun lazy_A : A;
-fun lazybones_N : N;
-fun lb_N : N;
-fun lbs_N : N;
-fun lbw_PN : PN;
-fun le_havre_PN : PN;
-fun le_mans_PN : PN;
-fun lea_N : N;
-fun leach_V2 : V2;
-fun lead_N : N;
-fun lead_V : V;
-fun lead_V2 : V2;
-fun lead_in_N : N;
-fun lead_ore_N : N;
-fun leaded_A : A;
-fun leaden_A : A;
-fun leader_N : N;
-fun leaderless_A : A;
-fun leadership_N : N;
-fun leading_A : A;
-fun leading_N : N;
-fun leading_rein_N : N;
-fun leaf_N : N;
-fun leaf_V : V;
-fun leaf_bud_N : N;
-fun leaf_mould_N : N;
-fun leafless_A : A;
-fun leaflet_N : N;
-fun leafy_A : A;
-fun league_N : N;
-fun league_V : V;
-fun league_V2 : V2;
-fun leak_N : N;
-fun leak_V : V;
-fun leak_V2 : V2;
-fun leakage_N : N;
-fun leaky_A : A;
-fun leal_A : A;
-fun leamington_spa_PN : PN;
-fun lean_A : A;
-fun lean_N : N;
-fun lean_V : V;
-fun lean_V2 : V2;
-fun lean_to_N : N;
-fun leaning_N : N;
-fun leanness_N : N;
-fun leap_N : N;
-fun leap_V : V;
-fun leap_V2 : V2;
-fun leap_year_N : N;
-fun leapfrog_N : N;
-fun leapfrog_V2 : V2;
-fun learn_V : V;
-fun learn_V2 : V2;
-fun learned_A : A;
-fun learnedly_Adv : Adv;
-fun learner_N : N;
-fun learning_N : N;
-fun lease_N : N;
-fun lease_V2 : V2;
-fun lease_lend_N : N;
-fun leasehold_A : A;
-fun leasehold_N : N;
-fun leaseholder_N : N;
-fun leash_N : N;
-fun least_A : A;
-fun least_Adv : Adv;
-fun least_N : N;
-fun leastways_Adv : Adv;
-fun leastwise_Adv : Adv;
-fun leather_N : N;
-fun leather_jacket_N : N;
-fun leatherette_N : N;
-fun leatherhead_PN : PN;
-fun leatherneck_N : N;
-fun leatherwork_N : N;
-fun leathery_A : A;
-fun leave_N : N;
-fun leave_V : V;
-fun leave_V2 : V2;
-fun leave_taking_N : N;
-fun leaven_N : N;
-fun leaven_V2 : V2;
-fun lebanese_A : A;
-fun lebanese_N : N;
-fun lebanon_PN : PN;
-fun lecher_N : N;
-fun lecherous_A : A;
-fun lechery_N : N;
-fun lectern_N : N;
-fun lecture_N : N;
-fun lecture_V : V;
-fun lecture_V2 : V2;
-fun lecturer_N : N;
-fun lectureship_N : N;
-fun ledge_N : N;
-fun ledger_N : N;
-fun lee_N : N;
-fun leech_N : N;
-fun leeds_PN : PN;
-fun leek_N : N;
-fun leek_PN : PN;
-fun leer_N : N;
-fun leer_V : V;
-fun leeward_A : A;
-fun leeward_Adv : Adv;
-fun leeway_N : N;
-fun left_A : A;
-fun left_Adv : Adv;
-fun left_N : N;
-fun left_hand_A : A;
-fun left_handed_A : A;
-fun left_wing_N : N;
-fun left_winger_N : N;
-fun leftist_N : N;
-fun leg_N : N;
-fun leg_pull_N : N;
-fun leg_pulling_N : N;
-fun legacy_N : N;
-fun legal_A : A;
-fun legalism_N : N;
-fun legalistic_A : A;
-fun legality_N : N;
-fun legalization_N : N;
-fun legalize_V2 : V2;
-fun legally_Adv : Adv;
-fun legate_N : N;
-fun legatee_N : N;
-fun legation_N : N;
-fun legato_A : A;
-fun legato_Adv : Adv;
-fun legend_N : N;
-fun legendary_A : A;
-fun leger_line_N : N;
-fun legerdemain_N : N;
-fun legged_A : A;
-fun legging_N : N;
-fun leggy_A : A;
-fun leghorn_N : N;
-fun legibility_N : N;
-fun legible_A : A;
-fun legibly_Adv : Adv;
-fun legion_N : N;
-fun legionary_N : N;
-fun legislate_V : V;
-fun legislation_N : N;
-fun legislative_A : A;
-fun legislator_N : N;
-fun legislature_N : N;
-fun legitimacy_N : N;
-fun legitimate_A : A;
-fun legitimately_Adv : Adv;
-fun legitimatize_V2 : V2;
-fun legless_A : A;
-fun leguminous_A : A;
-fun lei_N : N;
-fun leicester_PN : PN;
-fun leicestershire_PN : PN;
-fun leiden_PN : PN;
-fun leigh_PN : PN;
-fun leighton_linslade_PN : PN;
-fun leinster_PN : PN;
-fun leipzig_PN : PN;
-fun leisure_N : N;
-fun leisured_A : A;
-fun leisurely_A : A;
-fun leisurely_Adv : Adv;
-fun leitrim_PN : PN;
-fun leix_PN : PN;
-fun lemming_N : N;
-fun lemon_N : N;
-fun lemonade_N : N;
-fun lemur_N : N;
-fun len_PN : PN;
-fun lend_V2 : V2;
-fun lender_N : N;
-fun lending_library_N : N;
-fun length_N : N;
-fun lengthen_V : V;
-fun lengthen_V2 : V2;
-fun lengthily_Adv : Adv;
-fun lengthways_A : A;
-fun lengthways_Adv : Adv;
-fun lengthwise_Adv : Adv;
-fun lengthy_A : A;
-fun lenience_N : N;
-fun leniency_N : N;
-fun lenient_A : A;
-fun leniently_Adv : Adv;
-fun leningrad_PN : PN;
-fun lenity_N : N;
-fun lenny_PN : PN;
-fun lens_N : N;
-fun lens_PN : PN;
-fun lent_N : N;
-fun lent_PN : PN;
-fun lenten_A : A;
-fun lentil_N : N;
-fun lento_A : A;
-fun lento_Adv : Adv;
-fun leo_PN : PN;
-fun leominster_PN : PN;
-fun leon_PN : PN;
-fun leonard_PN : PN;
-fun leonine_A : A;
-fun leopard_N : N;
-fun leopardess_N : N;
-fun leper_N : N;
-fun leprechaun_N : N;
-fun leprosy_N : N;
-fun leprous_A : A;
-fun lerwick_PN : PN;
-fun les_PN : PN;
-fun lesbian_N : N;
-fun lesbianism_N : N;
-fun lese_majesty_N : N;
-fun lesion_N : N;
-fun lesley_PN : PN;
-fun leslie_PN : PN;
-fun lesotho_PN : PN;
-fun less_A : A;
-fun less_Adv : Adv;
-fun less_N : N;
-fun lessee_N : N;
-fun lessen_V : V;
-fun lessen_V2 : V2;
-fun lesser_A : A;
-fun lesson_N : N;
-fun lessor_N : N;
-fun let_N : N;
-fun let_V : V;
-fun let_V2 : V2;
-fun let_down_N : N;
-fun let_up_N : N;
-fun letchworth_PN : PN;
-fun lethal_A : A;
-fun lethargic_A : A;
-fun lethargically_Adv : Adv;
-fun lethargy_N : N;
-fun lethe_PN : PN;
-fun letter_N : N;
-fun letter_box_N : N;
-fun letter_card_N : N;
-fun letter_case_N : N;
-fun lettered_A : A;
-fun letterhead_N : N;
-fun lettering_N : N;
-fun letterpress_N : N;
-fun letting_N : N;
-fun lettuce_N : N;
-fun leucocyte_N : N;
-fun leukaemia_N : N;
-fun levant_PN : PN;
-fun levant_V : V;
-fun levantine_A : A;
-fun levantine_N : N;
-fun levee_N : N;
-fun level_A : A;
-fun level_N : N;
-fun level_V : V;
-fun level_V2 : V2;
-fun level_headed_A : A;
-fun leveller_N : N;
-fun leven_PN : PN;
-fun lever_N : N;
-fun lever_V2 : V2;
-fun leverage_N : N;
-fun leveret_N : N;
-fun leverkusen_PN : PN;
-fun leviathan_N : N;
-fun levitate_V : V;
-fun levitate_V2 : V2;
-fun levitation_N : N;
-fun levity_N : N;
-fun levy_N : N;
-fun levy_V : V;
-fun levy_V2 : V2;
-fun lewd_A : A;
-fun lewdly_Adv : Adv;
-fun lewdness_N : N;
-fun lewes_PN : PN;
-fun lewis_PN : PN;
-fun lewisham_PN : PN;
-fun lexical_A : A;
-fun lexically_Adv : Adv;
-fun lexicographer_N : N;
-fun lexicography_N : N;
-fun lexicon_N : N;
-fun lexis_N : N;
-fun ley_N : N;
-fun leyland_PN : PN;
-fun liability_N : N;
-fun liable_A : A;
-fun liaise_V : V;
-fun liaison_N : N;
-fun liana_N : N;
-fun liar_N : N;
-fun lib_N : N;
-fun lib_PN : PN;
-fun libation_N : N;
-fun libel_N : N;
-fun libel_V2 : V2;
-fun libellous_A : A;
-fun liberal_A : A;
-fun liberal_N : N;
-fun liberalism_N : N;
-fun liberality_N : N;
-fun liberalization_N : N;
-fun liberalize_V2 : V2;
-fun liberally_Adv : Adv;
-fun liberate_V2 : V2;
-fun liberation_N : N;
-fun liberator_N : N;
-fun liberia_PN : PN;
-fun liberian_A : A;
-fun liberian_N : N;
-fun libertine_N : N;
-fun liberty_N : N;
-fun libidinous_A : A;
-fun libido_N : N;
-fun libra_PN : PN;
-fun librarian_N : N;
-fun librarianship_N : N;
-fun library_N : N;
-fun librettist_N : N;
-fun libretto_N : N;
-fun libya_PN : PN;
-fun libyan_A : A;
-fun libyan_N : N;
-fun licence_N : N;
-fun licence_V2 : V2;
-fun license_V2 : V2;
-fun licensee_N : N;
-fun licentiate_N : N;
-fun licentious_A : A;
-fun licentiously_Adv : Adv;
-fun licentiousness_N : N;
-fun lichee_N : N;
-fun lichen_N : N;
-fun lichfield_PN : PN;
-fun lichgate_N : N;
-fun lichi_N : N;
-fun licit_A : A;
-fun lick_N : N;
-fun lick_V : V;
-fun lick_V2 : V2;
-fun licking_N : N;
-fun lid_N : N;
-fun lidless_A : A;
-fun lido_N : N;
-fun lie_N : N;
-fun lie_V : V;
-fun lie_abed_N : N;
-fun lie_detector_N : N;
-fun lie_in_N : N;
-fun liechtenstein_PN : PN;
-fun liechtensteiner_A : A;
-fun liechtensteiner_N : N;
-fun lied_N : N;
-fun lieder_singer_N : N;
-fun lief_Adv : Adv;
-fun liege_A : A;
-fun liege_N : N;
-fun liege_PN : PN;
-fun liegeman_N : N;
-fun lien_N : N;
-fun lieu_N : N;
-fun lieutenancy_N : N;
-fun lieutenant_N : N;
-fun life_N : N;
-fun life_buoy_N : N;
-fun life_giving_A : A;
-fun life_jacket_N : N;
-fun life_office_N : N;
-fun life_preserver_N : N;
-fun life_raft_N : N;
-fun life_saver_N : N;
-fun life_size_A : A;
-fun life_sized_A : A;
-fun life_span_N : N;
-fun life_work_N : N;
-fun lifebelt_N : N;
-fun lifeblood_N : N;
-fun lifeboat_N : N;
-fun lifebuoy_N : N;
-fun lifeguard_N : N;
-fun lifeless_A : A;
-fun lifelessly_Adv : Adv;
-fun lifelike_A : A;
-fun lifeline_N : N;
-fun lifelong_A : A;
-fun lifer_N : N;
-fun lifetime_N : N;
-fun lift_N : N;
-fun lift_V : V;
-fun lift_V2 : V2;
-fun lift_off_N : N;
-fun liftman_N : N;
-fun ligament_N : N;
-fun ligature_N : N;
-fun light_A : A;
-fun light_Adv : Adv;
-fun light_N : N;
-fun light_V : V;
-fun light_V2 : V2;
-fun light_armed_A : A;
-fun light_coloured_A : A;
-fun light_fingered_A : A;
-fun light_handed_A : A;
-fun light_handedly_Adv : Adv;
-fun light_headed_A : A;
-fun light_headedly_Adv : Adv;
-fun light_headedness_N : N;
-fun light_hearted_A : A;
-fun light_heartedly_Adv : Adv;
-fun light_heartedness_N : N;
-fun light_heavyweight_N : N;
-fun light_minded_A : A;
-fun light_mindedness_N : N;
-fun light_o'_love_N : N;
-fun lighten_V : V;
-fun lighten_V2 : V2;
-fun lighter_N : N;
-fun lighter_V2 : V2;
-fun lighterage_N : N;
-fun lighthouse_N : N;
-fun lighting_up_A : A;
-fun lightly_Adv : Adv;
-fun lightness_N : N;
-fun lightning_N : N;
-fun lightning_conductor_N : N;
-fun lightning_rod_N : N;
-fun lightship_N : N;
-fun lightsome_A : A;
-fun lightsomely_Adv : Adv;
-fun lightsomeness_N : N;
-fun lightweight_A : A;
-fun lightweight_N : N;
-fun ligneous_A : A;
-fun lignite_N : N;
-fun likable_A : A;
-fun like_A : A;
-fun like_Adv : Adv;
-fun like_N : N;
-fun like_V2 : V2;
-fun like_minded_A : A;
-fun likeable_A : A;
-fun likelihood_N : N;
-fun likely_A : A;
-fun likely_Adv : Adv;
-fun liken_V2 : V2;
-fun likeness_N : N;
-fun likewise_Adv : Adv;
-fun liking_N : N;
-fun lilac_N : N;
-fun lilian_PN : PN;
-fun lille_PN : PN;
-fun lilliputian_A : A;
-fun lilliputian_N : N;
-fun lilt_N : N;
-fun lilt_V : V;
-fun lilt_V2 : V2;
-fun lily_N : N;
-fun lily_PN : PN;
-fun lily_livered_A : A;
-fun lily_white_A : A;
-fun lima_PN : PN;
-fun limb_N : N;
-fun limbed_A : A;
-fun limber_A : A;
-fun limber_V : V;
-fun limber_V2 : V2;
-fun limbless_A : A;
-fun limbo_N : N;
-fun lime_N : N;
-fun lime_V2 : V2;
-fun lime_tree_N : N;
-fun limejuice_N : N;
-fun limekiln_N : N;
-fun limelight_N : N;
-fun limerick_N : N;
-fun limerick_PN : PN;
-fun limestone_N : N;
-fun limey_N : N;
-fun limit_N : N;
-fun limit_V2 : V2;
-fun limitation_N : N;
-fun limitless_A : A;
-fun limn_V2 : V2;
-fun limoges_PN : PN;
-fun limousine_N : N;
-fun limp_A : A;
-fun limp_N : N;
-fun limp_V : V;
-fun limpet_N : N;
-fun limpid_A : A;
-fun limpidity_N : N;
-fun limpidly_Adv : Adv;
-fun limply_Adv : Adv;
-fun limpness_N : N;
-fun linchpin_N : N;
-fun lincoln_PN : PN;
-fun lincolnshire_PN : PN;
-fun linda_PN : PN;
-fun linden_N : N;
-fun linden_tree_N : N;
-fun line_N : N;
-fun line_V : V;
-fun line_V2 : V2;
-fun line_shooter_N : N;
-fun line_shooting_N : N;
-fun line_up_N : N;
-fun lineage_N : N;
-fun lineal_A : A;
-fun lineally_Adv : Adv;
-fun lineament_N : N;
-fun linear_A : A;
-fun linearly_Adv : Adv;
-fun lineman_N : N;
-fun linen_N : N;
-fun linen_draper_N : N;
-fun liner_N : N;
-fun liner_train_N : N;
-fun linesman_N : N;
-fun ling_N : N;
-fun lingam_N : N;
-fun linger_V : V;
-fun lingerer_N : N;
-fun lingerie_N : N;
-fun lingering_A : A;
-fun lingeringly_Adv : Adv;
-fun lingo_N : N;
-fun lingua_franca_N : N;
-fun lingual_A : A;
-fun linguist_N : N;
-fun linguistic_A : A;
-fun linguistically_Adv : Adv;
-fun linguistics_N : N;
-fun liniment_N : N;
-fun lining_N : N;
-fun link_N : N;
-fun link_V : V;
-fun link_V2 : V2;
-fun link_up_N : N;
-fun linkage_N : N;
-fun linkboy_N : N;
-fun linkman_N : N;
-fun links_N : N;
-fun linlithgow_PN : PN;
-fun linnet_N : N;
-fun lino_N : N;
-fun linocut_N : N;
-fun linoleum_N : N;
-fun linotype_N : N;
-fun linseed_N : N;
-fun linsey_woolsey_N : N;
-fun lint_N : N;
-fun lintel_N : N;
-fun linwood_PN : PN;
-fun linz_PN : PN;
-fun lion_N : N;
-fun lion_hearted_A : A;
-fun lion_hunter_N : N;
-fun lionel_PN : PN;
-fun lioness_N : N;
-fun lionize_V2 : V2;
-fun lip_N : N;
-fun lip_read_V2 : V2;
-fun lip_reading_N : N;
-fun lipped_A : A;
-fun lipstick_N : N;
-fun liquefaction_N : N;
-fun liquefy_V : V;
-fun liquefy_V2 : V2;
-fun liquescent_A : A;
-fun liqueur_N : N;
-fun liquid_A : A;
-fun liquid_N : N;
-fun liquidate_V : V;
-fun liquidate_V2 : V2;
-fun liquidation_N : N;
-fun liquidator_N : N;
-fun liquidity_N : N;
-fun liquidize_V2 : V2;
-fun liquidizer_N : N;
-fun liquor_N : N;
-fun liquorice_N : N;
-fun lira_N : N;
-fun lisa_PN : PN;
-fun lisbon_PN : PN;
-fun liskeard_PN : PN;
-fun lisle_N : N;
-fun lisp_N : N;
-fun lisp_V : V;
-fun lisp_V2 : V2;
-fun lispingly_Adv : Adv;
-fun lissom_A : A;
-fun lissome_A : A;
-fun lissomness_N : N;
-fun list_N : N;
-fun list_V : V;
-fun list_V2 : V2;
-fun list_price_N : N;
-fun listen_V : V;
-fun listener_N : N;
-fun listing_N : N;
-fun listless_A : A;
-fun listlessly_Adv : Adv;
-fun listlessness_N : N;
-fun litany_N : N;
-fun litchee_N : N;
-fun litchi_N : N;
-fun literacy_N : N;
-fun literal_A : A;
-fun literal_N : N;
-fun literally_Adv : Adv;
-fun literary_A : A;
-fun literate_A : A;
-fun literate_N : N;
-fun literature_N : N;
-fun lithe_A : A;
-fun lithograph_N : N;
-fun lithograph_V : V;
-fun lithograph_V2 : V2;
-fun lithographic_A : A;
-fun lithography_N : N;
-fun litigant_N : N;
-fun litigate_V : V;
-fun litigate_V2 : V2;
-fun litigation_N : N;
-fun litigious_A : A;
-fun litmus_N : N;
-fun litmus_paper_N : N;
-fun litotes_N : N;
-fun litre_N : N;
-fun litter_N : N;
-fun litter_V : V;
-fun litter_V2 : V2;
-fun litter_basket_N : N;
-fun litter_lout_N : N;
-fun litterbin_N : N;
-fun little_A : A;
-fun little_Adv : Adv;
-fun little_N : N;
-fun littlehampton_PN : PN;
-fun littleness_N : N;
-fun littoral_A : A;
-fun littoral_N : N;
-fun liturgical_A : A;
-fun liturgy_N : N;
-fun livable_A : A;
-fun live_A : A;
-fun live_Adv : Adv;
-fun live_V : V;
-fun live_V2 : V2;
-fun live_birth_N : N;
-fun liveable_A : A;
-fun livelihood_N : N;
-fun liveliness_N : N;
-fun livelong_A : A;
-fun lively_A : A;
-fun liven_V : V;
-fun liven_V2 : V2;
-fun liver_N : N;
-fun liveried_A : A;
-fun liverish_A : A;
-fun liverpool_PN : PN;
-fun liverpudlian_A : A;
-fun liverpudlian_N : N;
-fun liverwurst_N : N;
-fun livery_A : A;
-fun livery_N : N;
-fun liveryman_N : N;
-fun livestock_N : N;
-fun livid_A : A;
-fun lividly_Adv : Adv;
-fun living_A : A;
-fun living_N : N;
-fun living_room_N : N;
-fun living_space_N : N;
-fun livingston_PN : PN;
-fun livorno_PN : PN;
-fun liz_PN : PN;
-fun liza_PN : PN;
-fun lizard_N : N;
-fun lizzy_PN : PN;
-fun ljubljana_PN : PN;
-fun ll_N : N;
-fun llama_N : N;
-fun llandudno_PN : PN;
-fun llanelli_PN : PN;
-fun llangollen_PN : PN;
-fun llantrisant_PN : PN;
-fun llantwit_major_PN : PN;
-fun llb_N : N;
-fun lloyd's_PN : PN;
-fun load_N : N;
-fun load_V : V;
-fun load_V2 : V2;
-fun load_line_N : N;
-fun load_shedding_N : N;
-fun loaded_A : A;
-fun loader_N : N;
-fun loading_N : N;
-fun loadstar_N : N;
-fun loadstone_N : N;
-fun loaf_N : N;
-fun loaf_V : V;
-fun loaf_V2 : V2;
-fun loaf_sugar_N : N;
-fun loafer_N : N;
-fun loam_N : N;
-fun loamy_A : A;
-fun loan_N : N;
-fun loan_V2 : V2;
-fun loan_collection_N : N;
-fun loan_office_N : N;
-fun loanhead_PN : PN;
-fun loanword_N : N;
-fun loath_A : A;
-fun loathe_V2 : V2;
-fun loathing_N : N;
-fun loathly_A : A;
-fun loathsome_A : A;
-fun lob_N : N;
-fun lob_V : V;
-fun lob_V2 : V2;
-fun lobby_N : N;
-fun lobby_V : V;
-fun lobby_V2 : V2;
-fun lobbyist_N : N;
-fun lobe_N : N;
-fun lobed_A : A;
-fun lobster_N : N;
-fun lobster_pot_N : N;
-fun loc_cit_PN : PN;
-fun local_A : A;
-fun local_N : N;
-fun locale_N : N;
-fun localism_N : N;
-fun locality_N : N;
-fun localization_N : N;
-fun localize_V2 : V2;
-fun locally_Adv : Adv;
-fun locate_V2 : V2;
-fun location_N : N;
-fun loch_N : N;
-fun lochgelly_PN : PN;
-fun lock_N : N;
-fun lock_V : V;
-fun lock_V2 : V2;
-fun lock_gate_N : N;
-fun lock_keeper_N : N;
-fun locker_N : N;
-fun locket_N : N;
-fun lockjaw_N : N;
-fun locknut_N : N;
-fun lockout_N : N;
-fun locksmith_N : N;
-fun lockstitch_N : N;
-fun lockup_A : A;
-fun lockup_N : N;
-fun loco_A : A;
-fun locomotion_N : N;
-fun locomotive_A : A;
-fun locomotive_N : N;
-fun locum_N : N;
-fun locum_tenens_N : N;
-fun locus_N : N;
-fun locus_classicus_N : N;
-fun locust_N : N;
-fun locust_tree_N : N;
-fun locution_N : N;
-fun lode_N : N;
-fun lodestar_N : N;
-fun lodestone_N : N;
-fun lodge_N : N;
-fun lodge_V : V;
-fun lodge_V2 : V2;
-fun lodgement_N : N;
-fun lodger_N : N;
-fun lodging_N : N;
-fun lodging_house_N : N;
-fun lodgment_N : N;
-fun lodz_PN : PN;
-fun loess_N : N;
-fun loft_N : N;
-fun loft_V2 : V2;
-fun loftily_Adv : Adv;
-fun loftiness_N : N;
-fun loftus_PN : PN;
-fun lofty_A : A;
-fun log_N : N;
-fun log_V2 : V2;
-fun log_cabin_N : N;
-fun log_jam_N : N;
-fun log_rolling_N : N;
-fun loganberry_N : N;
-fun logarithm_N : N;
-fun logarithmic_A : A;
-fun logarithmically_Adv : Adv;
-fun logbook_N : N;
-fun loggerheads_N : N;
-fun loggia_N : N;
-fun logging_N : N;
-fun logic_N : N;
-fun logical_A : A;
-fun logicality_N : N;
-fun logically_Adv : Adv;
-fun logician_N : N;
-fun logistics_N : N;
-fun loin_N : N;
-fun loincloth_N : N;
-fun lois_PN : PN;
-fun loiter_V : V;
-fun loiter_V2 : V2;
-fun loiterer_N : N;
-fun loll_V : V;
-fun loll_V2 : V2;
-fun lollipop_N : N;
-fun lolly_N : N;
-fun london_PN : PN;
-fun londonderry_PN : PN;
-fun londoner_N : N;
-fun lone_A : A;
-fun loneliness_N : N;
-fun lonely_A : A;
-fun lonesome_A : A;
-fun long_A : A;
-fun long_Adv : Adv;
-fun long_N : N;
-fun long_V : V;
-fun long_distance_A : A;
-fun long_drawn_out_A : A;
-fun long_eaton_PN : PN;
-fun long_haired_A : A;
-fun long_headed_A : A;
-fun long_lived_A : A;
-fun long_play_A : A;
-fun long_playing_A : A;
-fun long_range_A : A;
-fun long_sighted_A : A;
-fun long_standing_A : A;
-fun long_suffering_A : A;
-fun long_term_A : A;
-fun long_time_A : A;
-fun long_winded_A : A;
-fun long_windedness_N : N;
-fun longboat_N : N;
-fun longbow_N : N;
-fun longer_Adv : Adv;
-fun longest_Adv : Adv;
-fun longevity_N : N;
-fun longhand_N : N;
-fun longing_A : A;
-fun longing_N : N;
-fun longingly_Adv : Adv;
-fun longish_A : A;
-fun longitude_N : N;
-fun longitudinal_A : A;
-fun longitudinally_Adv : Adv;
-fun longridge_PN : PN;
-fun longshoreman_N : N;
-fun longton_PN : PN;
-fun longways_Adv : Adv;
-fun longwise_Adv : Adv;
-fun loo_N : N;
-fun loofa_N : N;
-fun loofah_N : N;
-fun look_N : N;
-fun look_V : V;
-fun look_V2 : V2;
-fun look_over_N : N;
-fun looker_N : N;
-fun looker_on_N : N;
-fun looking_glass_N : N;
-fun lookout_N : N;
-fun loom_N : N;
-fun loom_V : V;
-fun loon_N : N;
-fun loony_A : A;
-fun loony_N : N;
-fun loonybin_N : N;
-fun loop_N : N;
-fun loop_V : V;
-fun loop_V2 : V2;
-fun loop_line_N : N;
-fun loophole_N : N;
-fun loopy_A : A;
-fun loose_A : A;
-fun loose_V2 : V2;
-fun loose_leaf_A : A;
-fun loosely_Adv : Adv;
-fun loosen_V : V;
-fun loosen_V2 : V2;
-fun loot_N : N;
-fun loot_V : V;
-fun loot_V2 : V2;
-fun looter_N : N;
-fun lop_V : V;
-fun lop_V2 : V2;
-fun lop_eared_A : A;
-fun lope_N : N;
-fun lope_V : V;
-fun lopsided_A : A;
-fun loquacious_A : A;
-fun loquaciously_Adv : Adv;
-fun loquaciousness_N : N;
-fun loquacity_N : N;
-fun loquat_N : N;
-fun lord_N : N;
-fun lord_V2 : V2;
-fun lordless_A : A;
-fun lordliness_N : N;
-fun lordly_A : A;
-fun lordship_N : N;
-fun lore_N : N;
-fun lorgnette_N : N;
-fun lorn_A : A;
-fun lorna_PN : PN;
-fun lorry_N : N;
-fun los_angeles_PN : PN;
-fun lose_V : V;
-fun lose_V2 : V2;
-fun loser_N : N;
-fun loss_N : N;
-fun loss_leader_N : N;
-fun lossiemouth_PN : PN;
-fun lot_N : N;
-fun loth_A : A;
-fun lothian_PN : PN;
-fun lotion_N : N;
-fun lottery_N : N;
-fun lotto_N : N;
-fun lotus_N : N;
-fun lotus_eater_N : N;
-fun loud_A : A;
-fun loud_Adv : Adv;
-fun loud_hailer_N : N;
-fun loudly_Adv : Adv;
-fun loudness_N : N;
-fun loudspeaker_N : N;
-fun lough_N : N;
-fun loughborough_PN : PN;
-fun louis_PN : PN;
-fun louise_PN : PN;
-fun louisiana_PN : PN;
-fun louisville_PN : PN;
-fun lounge_N : N;
-fun lounge_V : V;
-fun lounge_chair_N : N;
-fun lounge_lizard_N : N;
-fun lounge_suit_N : N;
-fun lounger_N : N;
-fun lour_V : V;
-fun louringly_Adv : Adv;
-fun louse_N : N;
-fun lousy_A : A;
-fun lout_N : N;
-fun louth_PN : PN;
-fun loutish_A : A;
-fun louvered_A : A;
-fun louvre_N : N;
-fun lovable_A : A;
-fun love_N : N;
-fun love_V2 : V2;
-fun love_affair_N : N;
-fun love_child_N : N;
-fun love_feast_N : N;
-fun love_knot_N : N;
-fun love_letter_N : N;
-fun love_match_N : N;
-fun love_philtre_N : N;
-fun love_potion_N : N;
-fun love_seat_N : N;
-fun love_song_N : N;
-fun love_story_N : N;
-fun love_token_N : N;
-fun lovebird_N : N;
-fun loveless_A : A;
-fun loveliness_N : N;
-fun lovelorn_A : A;
-fun lovely_A : A;
-fun lovemaking_N : N;
-fun lover_N : N;
-fun loverlike_A : A;
-fun lovesick_A : A;
-fun loving_A : A;
-fun loving_cup_N : N;
-fun loving_kindness_N : N;
-fun lovingly_Adv : Adv;
-fun low_A : A;
-fun low_Adv : Adv;
-fun low_N : N;
-fun low_V : V;
-fun low_down_A : A;
-fun low_keyed_A : A;
-fun low_pitched_A : A;
-fun low_relief_N : N;
-fun low_spirited_A : A;
-fun lowborn_A : A;
-fun lowbred_A : A;
-fun lowbrow_A : A;
-fun lowbrow_N : N;
-fun lower_Adv : Adv;
-fun lower_V : V;
-fun lower_V2 : V2;
-fun lowermost_A : A;
-fun lowest_Adv : Adv;
-fun lowestoft_PN : PN;
-fun lowlander_N : N;
-fun lowliness_N : N;
-fun lowly_A : A;
-fun lowness_N : N;
-fun loyal_A : A;
-fun loyalist_N : N;
-fun loyally_Adv : Adv;
-fun loyalty_N : N;
-fun loyang_PN : PN;
-fun lozenge_N : N;
-fun lp_N : N;
-fun lps_N : N;
-fun lsd_N : N;
-fun lt_PN : PN;
-fun ltd_PN : PN;
-fun lubber_N : N;
-fun lubberly_A : A;
-fun lubeck_PN : PN;
-fun lubricant_N : N;
-fun lubricate_V2 : V2;
-fun lubrication_N : N;
-fun lucent_A : A;
-fun lucerne_N : N;
-fun lucid_A : A;
-fun lucidity_N : N;
-fun lucidly_Adv : Adv;
-fun lucifer_N : N;
-fun luck_N : N;
-fun luckily_Adv : Adv;
-fun luckless_A : A;
-fun lucknow_PN : PN;
-fun lucky_A : A;
-fun lucrative_A : A;
-fun lucre_N : N;
-fun lucy_PN : PN;
-fun luddite_N : N;
-fun ludicrous_A : A;
-fun ludicrously_Adv : Adv;
-fun ludlow_PN : PN;
-fun ludo_N : N;
-fun ludwigshafen_PN : PN;
-fun luff_V : V;
-fun luff_V2 : V2;
-fun lug_N : N;
-fun lug_V2 : V2;
-fun luge_N : N;
-fun luggage_N : N;
-fun luggage_carrier_N : N;
-fun luggage_rack_N : N;
-fun luggage_van_N : N;
-fun lugger_N : N;
-fun lugsail_N : N;
-fun lugubrious_A : A;
-fun lugubriously_Adv : Adv;
-fun lugubriousness_N : N;
-fun luke_PN : PN;
-fun lukewarm_A : A;
-fun lukewarmly_Adv : Adv;
-fun lukewarmness_N : N;
-fun lull_N : N;
-fun lull_V : V;
-fun lull_V2 : V2;
-fun lullaby_N : N;
-fun lumbago_N : N;
-fun lumbar_A : A;
-fun lumber_N : N;
-fun lumber_V : V;
-fun lumber_V2 : V2;
-fun lumber_mill_N : N;
-fun lumberjack_N : N;
-fun lumberman_N : N;
-fun lumberroom_N : N;
-fun lumberyard_N : N;
-fun luminary_N : N;
-fun luminosity_N : N;
-fun luminous_A : A;
-fun lump_N : N;
-fun lump_V2 : V2;
-fun lumpish_A : A;
-fun lumpy_A : A;
-fun lunacy_N : N;
-fun lunar_A : A;
-fun lunatic_N : N;
-fun lunch_N : N;
-fun lunch_V : V;
-fun lunch_V2 : V2;
-fun luncheon_N : N;
-fun lunchtime_N : N;
-fun lung_N : N;
-fun lung_power_N : N;
-fun lunge_N : N;
-fun lunge_V : V;
-fun lupin_N : N;
-fun lurch_N : N;
-fun lurch_V : V;
-fun lurcher_N : N;
-fun lure_N : N;
-fun lure_V2 : V2;
-fun lurid_A : A;
-fun luridly_Adv : Adv;
-fun luridness_N : N;
-fun lurk_V : V;
-fun lurking_place_N : N;
-fun luscious_A : A;
-fun lusciously_Adv : Adv;
-fun lusciousness_N : N;
-fun lush_A : A;
-fun lush_N : N;
-fun lust_N : N;
-fun lust_V : V;
-fun lustful_A : A;
-fun lustfully_Adv : Adv;
-fun lustily_Adv : Adv;
-fun lustre_N : N;
-fun lustrous_A : A;
-fun lusty_A : A;
-fun luta_PN : PN;
-fun lutanist_N : N;
-fun lute_N : N;
-fun lutenist_N : N;
-fun lutheran_A : A;
-fun lutheran_N : N;
-fun luton_PN : PN;
-fun luxe_A : A;
-fun luxembourg_PN : PN;
-fun luxemburg_PN : PN;
-fun luxemburger_A : A;
-fun luxemburger_N : N;
-fun luxuriance_N : N;
-fun luxuriant_A : A;
-fun luxuriantly_Adv : Adv;
-fun luxuriate_V : V;
-fun luxurious_A : A;
-fun luxuriously_Adv : Adv;
-fun luxury_N : N;
-fun lvov_PN : PN;
-fun lyallpur_PN : PN;
-fun lyceum_N : N;
-fun lychee_N : N;
-fun lychgate_N : N;
-fun lycee_N : N;
-fun lydia_PN : PN;
-fun lydney_PN : PN;
-fun lye_N : N;
-fun lying_in_A : A;
-fun lymington_PN : PN;
-fun lymm_PN : PN;
-fun lymph_N : N;
-fun lymphatic_A : A;
-fun lynch_N : N;
-fun lynch_V2 : V2;
-fun lynchpin_N : N;
-fun lynn_PN : PN;
-fun lynne_PN : PN;
-fun lynx_N : N;
-fun lynx_eyed_A : A;
-fun lyons_PN : PN;
-fun lyre_N : N;
-fun lyre_bird_N : N;
-fun lyric_A : A;
-fun lyric_N : N;
-fun lyrical_A : A;
-fun lyrically_Adv : Adv;
-fun lyricism_N : N;
-fun lyricist_N : N;
-fun lysol_N : N;
-fun lytham_PN : PN;
-fun lytham_st_annes_PN : PN;
-fun ma'am_N : N;
-fun ma_N : N;
-fun maastricht_PN : PN;
-fun mabel_PN : PN;
-fun mac_N : N;
-fun macabre_A : A;
-fun macadam_N : N;
-fun macadamize_V2 : V2;
-fun macaroni_N : N;
-fun macaroon_N : N;
-fun macaw_N : N;
-fun macclesfield_PN : PN;
-fun mace_N : N;
-fun mace_bearer_N : N;
-fun macedonian_A : A;
-fun macedonian_N : N;
-fun macerate_V : V;
-fun macerate_V2 : V2;
-fun mach_PN : PN;
-fun machete_N : N;
-fun machiavellian_A : A;
-fun machination_N : N;
-fun machine_N : N;
-fun machine_V2 : V2;
-fun machine_gun_N : N;
-fun machine_made_A : A;
-fun machinery_N : N;
-fun machinist_N : N;
-fun machismo_N : N;
-fun mackerel_N : N;
-fun mackintosh_N : N;
-fun macrobiotic_A : A;
-fun macrocosm_N : N;
-fun mad_A : A;
-fun madagascan_A : A;
-fun madagascan_N : N;
-fun madagascar_PN : PN;
-fun madam_N : N;
-fun madame_N : N;
-fun madcap_N : N;
-fun madden_V2 : V2;
-fun madder_N : N;
-fun maddy_PN : PN;
-fun madeira_N : N;
-fun madeleine_PN : PN;
-fun mademoiselle_N : N;
-fun madge_PN : PN;
-fun madhouse_N : N;
-fun madly_Adv : Adv;
-fun madman_N : N;
-fun madness_N : N;
-fun madonna_N : N;
-fun madras_PN : PN;
-fun madrid_PN : PN;
-fun madrigal_N : N;
-fun madurai_PN : PN;
-fun madwoman_N : N;
-fun maecenas_PN : PN;
-fun maelstrom_N : N;
-fun maenad_N : N;
-fun maesteg_PN : PN;
-fun maestro_N : N;
-fun maffick_V : V;
-fun mafia_N : N;
-fun mag_N : N;
-fun magazine_N : N;
-fun magdeburg_PN : PN;
-fun magenta_A : A;
-fun magenta_N : N;
-fun maggie_PN : PN;
-fun maggot_N : N;
-fun maggoty_A : A;
-fun maghull_PN : PN;
-fun magic_A : A;
-fun magic_N : N;
-fun magical_A : A;
-fun magically_Adv : Adv;
-fun magician_N : N;
-fun magisterial_A : A;
-fun magisterially_Adv : Adv;
-fun magistracy_N : N;
-fun magistrate_N : N;
-fun magnanimity_N : N;
-fun magnanimous_A : A;
-fun magnanimously_Adv : Adv;
-fun magnate_N : N;
-fun magnesia_N : N;
-fun magnesium_N : N;
-fun magnet_N : N;
-fun magnetic_A : A;
-fun magnetically_Adv : Adv;
-fun magnetism_N : N;
-fun magnetization_N : N;
-fun magnetize_V2 : V2;
-fun magneto_N : N;
-fun magnificat_N : N;
-fun magnification_N : N;
-fun magnificence_N : N;
-fun magnificent_A : A;
-fun magnificently_Adv : Adv;
-fun magnifier_N : N;
-fun magnify_V2 : V2;
-fun magniloquence_N : N;
-fun magniloquent_A : A;
-fun magniloquently_Adv : Adv;
-fun magnitude_N : N;
-fun magnolia_N : N;
-fun magnum_N : N;
-fun magnum_opus_N : N;
-fun magpie_N : N;
-fun magyar_A : A;
-fun magyar_N : N;
-fun maharaja_N : N;
-fun maharajah_N : N;
-fun maharanee_N : N;
-fun mahatma_N : N;
-fun mahjong_N : N;
-fun mahogany_N : N;
-fun mahout_N : N;
-fun maid_N : N;
-fun maiden_A : A;
-fun maiden_N : N;
-fun maidenhair_N : N;
-fun maidenhead_N : N;
-fun maidenhead_PN : PN;
-fun maidenhood_N : N;
-fun maidenlike_A : A;
-fun maidenly_A : A;
-fun maidservant_N : N;
-fun maidstone_PN : PN;
-fun mail_N : N;
-fun mail_V2 : V2;
-fun mail_train_N : N;
-fun mailbag_N : N;
-fun mailboat_N : N;
-fun mailbox_N : N;
-fun mailed_A : A;
-fun mailing_card_N : N;
-fun mailing_list_N : N;
-fun mailman_N : N;
-fun maim_V2 : V2;
-fun main_A : A;
-fun main_N : N;
-fun maine_PN : PN;
-fun mainland_N : N;
-fun mainly_Adv : Adv;
-fun mainmast_N : N;
-fun mainspring_N : N;
-fun mainstay_N : N;
-fun mainstream_N : N;
-fun maintain_V2 : V2;
-fun maintainable_A : A;
-fun maintenance_N : N;
-fun mainz_PN : PN;
-fun maisonnette_N : N;
-fun maize_N : N;
-fun maj_PN : PN;
-fun majestic_A : A;
-fun majestically_Adv : Adv;
-fun majesty_N : N;
-fun majolica_N : N;
-fun major_A : A;
-fun major_N : N;
-fun major_V : V;
-fun major_domo_N : N;
-fun major_general_N : N;
-fun majority_N : N;
-fun make_N : N;
-fun make_V : V;
-fun make_V2 : V2;
-fun make_believe_N : N;
-fun make_up_N : N;
-fun maker_N : N;
-fun makeshift_N : N;
-fun makeweight_N : N;
-fun making_N : N;
-fun malacca_N : N;
-fun malachite_N : N;
-fun maladjusted_A : A;
-fun maladjustment_N : N;
-fun maladroit_A : A;
-fun maladroitly_Adv : Adv;
-fun maladroitness_N : N;
-fun malady_N : N;
-fun malaga_PN : PN;
-fun malaise_N : N;
-fun malapropism_N : N;
-fun malapropos_A : A;
-fun malapropos_Adv : Adv;
-fun malaria_N : N;
-fun malarial_A : A;
-fun malawi_PN : PN;
-fun malawian_A : A;
-fun malawian_N : N;
-fun malay_A : A;
-fun malay_N : N;
-fun malaya_PN : PN;
-fun malayan_A : A;
-fun malayan_N : N;
-fun malaysia_PN : PN;
-fun malaysian_A : A;
-fun malaysian_N : N;
-fun malcolm_PN : PN;
-fun malcontent_A : A;
-fun malcontent_N : N;
-fun maldon_PN : PN;
-fun male_A : A;
-fun male_N : N;
-fun malediction_N : N;
-fun malefactor_N : N;
-fun maleficent_A : A;
-fun malevolence_N : N;
-fun malevolent_A : A;
-fun malevolently_Adv : Adv;
-fun malfeasance_N : N;
-fun malformation_N : N;
-fun malformed_A : A;
-fun malfunction_N : N;
-fun malfunction_V : V;
-fun mali_PN : PN;
-fun malian_A : A;
-fun malian_N : N;
-fun malice_N : N;
-fun malicious_A : A;
-fun maliciously_Adv : Adv;
-fun malign_A : A;
-fun malign_V2 : V2;
-fun malignancy_N : N;
-fun malignant_A : A;
-fun malignantly_Adv : Adv;
-fun malignity_N : N;
-fun malinger_V : V;
-fun malingerer_N : N;
-fun mallard_N : N;
-fun malleability_N : N;
-fun malleable_A : A;
-fun mallet_N : N;
-fun mallow_N : N;
-fun mallow_PN : PN;
-fun malmo_PN : PN;
-fun malmsey_N : N;
-fun malnutrition_N : N;
-fun malodorous_A : A;
-fun malpractice_N : N;
-fun malt_N : N;
-fun malt_V : V;
-fun malt_V2 : V2;
-fun malta_PN : PN;
-fun maltby_PN : PN;
-fun maltese_A : A;
-fun maltese_N : N;
-fun malthusian_A : A;
-fun maltreat_V2 : V2;
-fun maltreatment_N : N;
-fun maltster_N : N;
-fun malvern_PN : PN;
-fun malversation_N : N;
-fun mama_N : N;
-fun mamba_N : N;
-fun mamie_PN : PN;
-fun mamma_N : N;
-fun mammal_N : N;
-fun mammon_N : N;
-fun mammoth_N : N;
-fun mammy_N : N;
-fun man_N : N;
-fun man_V2 : V2;
-fun man_at_arms_N : N;
-fun man_eater_N : N;
-fun man_hour_N : N;
-fun man_of_war_N : N;
-fun man_sized_A : A;
-fun manacle_N : N;
-fun manacle_V2 : V2;
-fun manage_V : V;
-fun manage_V2 : V2;
-fun manageability_N : N;
-fun manageable_A : A;
-fun manageably_Adv : Adv;
-fun management_N : N;
-fun manager_N : N;
-fun manageress_N : N;
-fun managerial_A : A;
-fun manatee_N : N;
-fun manchester_PN : PN;
-fun mancunian_A : A;
-fun mancunian_N : N;
-fun mandarin_N : N;
-fun mandatary_N : N;
-fun mandate_N : N;
-fun mandate_V2 : V2;
-fun mandatory_A : A;
-fun mandatory_N : N;
-fun mandible_N : N;
-fun mandolin_N : N;
-fun mandragora_N : N;
-fun mandrake_N : N;
-fun mandrill_N : N;
-fun mandy_PN : PN;
-fun mane_N : N;
-fun manful_A : A;
-fun manfully_Adv : Adv;
-fun manganese_N : N;
-fun mange_N : N;
-fun mangel_wurzel_N : N;
-fun manger_N : N;
-fun mangily_Adv : Adv;
-fun mangle_N : N;
-fun mangle_V2 : V2;
-fun mango_N : N;
-fun mangosteen_N : N;
-fun mangrove_N : N;
-fun mangy_A : A;
-fun manhandle_V2 : V2;
-fun manhattan_N : N;
-fun manhole_N : N;
-fun manhood_N : N;
-fun mania_N : N;
-fun maniac_N : N;
-fun maniacal_A : A;
-fun maniacally_Adv : Adv;
-fun manic_depressive_A : A;
-fun manic_depressive_N : N;
-fun manicure_N : N;
-fun manicure_V2 : V2;
-fun manicurist_N : N;
-fun manifest_A : A;
-fun manifest_N : N;
-fun manifest_V2 : V2;
-fun manifestation_N : N;
-fun manifestly_Adv : Adv;
-fun manifesto_N : N;
-fun manifold_A : A;
-fun manifold_N : N;
-fun manifold_V2 : V2;
-fun manikin_N : N;
-fun manila_PN : PN;
-fun manilla_N : N;
-fun manipulate_V2 : V2;
-fun manipulation_N : N;
-fun manipulative_A : A;
-fun manitoba_PN : PN;
-fun mankind_N : N;
-fun manlike_A : A;
-fun manliness_N : N;
-fun manly_A : A;
-fun manna_N : N;
-fun mannequin_N : N;
-fun manner_N : N;
-fun mannered_A : A;
-fun mannerism_N : N;
-fun mannerly_A : A;
-fun mannheim_PN : PN;
-fun mannish_A : A;
-fun manoeuvrability_N : N;
-fun manoeuvrable_A : A;
-fun manoeuvre_N : N;
-fun manoeuvre_V : V;
-fun manoeuvre_V2 : V2;
-fun manoeuvrer_N : N;
-fun manor_N : N;
-fun manor_house_N : N;
-fun manorial_A : A;
-fun manpower_N : N;
-fun mansard_N : N;
-fun manse_N : N;
-fun manservant_N : N;
-fun mansfield_PN : PN;
-fun mansion_N : N;
-fun manslaughter_N : N;
-fun mantel_N : N;
-fun mantelpiece_N : N;
-fun mantilla_N : N;
-fun mantis_N : N;
-fun mantle_N : N;
-fun mantle_V : V;
-fun mantle_V2 : V2;
-fun mantrap_N : N;
-fun manual_A : A;
-fun manual_N : N;
-fun manually_Adv : Adv;
-fun manufacture_N : N;
-fun manufacture_V2 : V2;
-fun manufacturer_N : N;
-fun manumission_N : N;
-fun manumit_V2 : V2;
-fun manure_N : N;
-fun manure_V2 : V2;
-fun manuscript_N : N;
-fun manx_A : A;
-fun manx_N : N;
-fun many_sided_A : A;
-fun maoism_N : N;
-fun maoist_N : N;
-fun maori_N : N;
-fun map_N : N;
-fun map_V2 : V2;
-fun map_reader_N : N;
-fun maple_N : N;
-fun maple_leaf_N : N;
-fun maquis_N : N;
-fun mar_PN : PN;
-fun mar_V2 : V2;
-fun marabou_N : N;
-fun maracaibo_PN : PN;
-fun maraschino_N : N;
-fun marathon_N : N;
-fun maraud_V : V;
-fun marauder_N : N;
-fun marble_N : N;
-fun marbled_A : A;
-fun marbling_N : N;
-fun march_N : N;
-fun march_PN : PN;
-fun march_V : V;
-fun march_V2 : V2;
-fun marcher_N : N;
-fun marchioness_N : N;
-fun mardi_gras_N : N;
-fun mare_N : N;
-fun margaret_PN : PN;
-fun margarine_N : N;
-fun margate_PN : PN;
-fun marge_N : N;
-fun marge_PN : PN;
-fun margery_PN : PN;
-fun margie_PN : PN;
-fun margin_N : N;
-fun marginal_A : A;
-fun marginally_Adv : Adv;
-fun margrave_N : N;
-fun marguerite_N : N;
-fun maria_PN : PN;
-fun marian_PN : PN;
-fun marie_PN : PN;
-fun marigold_N : N;
-fun marihuana_N : N;
-fun marijuana_N : N;
-fun marilyn_PN : PN;
-fun marimba_N : N;
-fun marina_N : N;
-fun marinade_N : N;
-fun marinade_V2 : V2;
-fun marinate_V2 : V2;
-fun marine_A : A;
-fun marine_N : N;
-fun mariner_N : N;
-fun marion_PN : PN;
-fun marionette_N : N;
-fun marital_A : A;
-fun maritime_A : A;
-fun marjoram_N : N;
-fun marjorie_PN : PN;
-fun mark_N : N;
-fun mark_PN : PN;
-fun mark_V2 : V2;
-fun mark_up_N : N;
-fun marked_A : A;
-fun markedly_Adv : Adv;
-fun marker_N : N;
-fun market_N : N;
-fun market_V : V;
-fun market_V2 : V2;
-fun market_cross_N : N;
-fun market_day_N : N;
-fun market_drayton_PN : PN;
-fun market_garden_N : N;
-fun market_gardening_N : N;
-fun market_harborough_PN : PN;
-fun market_square_N : N;
-fun market_town_N : N;
-fun marketable_A : A;
-fun marketing_N : N;
-fun marketplace_N : N;
-fun marking_N : N;
-fun marking_ink_N : N;
-fun marking_inks_N : N;
-fun marksman_N : N;
-fun marksmanship_N : N;
-fun marl_N : N;
-fun marlborough_PN : PN;
-fun marlene_PN : PN;
-fun marlinespike_N : N;
-fun marlow_PN : PN;
-fun marmalade_N : N;
-fun marmoreal_A : A;
-fun marmoset_N : N;
-fun marmot_N : N;
-fun marocain_N : N;
-fun maroon_A : A;
-fun maroon_N : N;
-fun maroon_V2 : V2;
-fun marple_PN : PN;
-fun marque_N : N;
-fun marquee_N : N;
-fun marquess_N : N;
-fun marquetry_N : N;
-fun marquis_N : N;
-fun marriage_N : N;
-fun marriageability_N : N;
-fun marriageable_A : A;
-fun married_A : A;
-fun marrow_N : N;
-fun marrowbone_N : N;
-fun marry_V : V;
-fun marry_V2 : V2;
-fun mars_PN : PN;
-fun marsala_N : N;
-fun marseillaise_N : N;
-fun marseilles_PN : PN;
-fun marsh_N : N;
-fun marshal_N : N;
-fun marshal_V2 : V2;
-fun marshalling_yard_N : N;
-fun marshmallow_N : N;
-fun marshy_A : A;
-fun marske_PN : PN;
-fun marsupial_A : A;
-fun marsupial_N : N;
-fun mart_N : N;
-fun marten_N : N;
-fun martha_PN : PN;
-fun martial_A : A;
-fun martially_Adv : Adv;
-fun martian_A : A;
-fun martian_N : N;
-fun martin_N : N;
-fun martin_PN : PN;
-fun martinet_N : N;
-fun martini_N : N;
-fun martyr_N : N;
-fun martyr_V2 : V2;
-fun martyrdom_N : N;
-fun marvel_N : N;
-fun marvel_V : V;
-fun marvellous_A : A;
-fun marvellously_Adv : Adv;
-fun marvelous_A : A;
-fun marvelously_Adv : Adv;
-fun marxism_N : N;
-fun marxist_N : N;
-fun mary_PN : PN;
-fun maryland_PN : PN;
-fun maryport_PN : PN;
-fun marzipan_N : N;
-fun masc_PN : PN;
-fun mascara_N : N;
-fun mascot_N : N;
-fun masculine_A : A;
-fun masculinity_N : N;
-fun maser_N : N;
-fun mash_N : N;
-fun mash_V2 : V2;
-fun masher_N : N;
-fun mask_N : N;
-fun mask_V2 : V2;
-fun masochism_N : N;
-fun masochist_N : N;
-fun masochistic_A : A;
-fun masochistically_Adv : Adv;
-fun mason_N : N;
-fun mason_dixon_PN : PN;
-fun masonic_A : A;
-fun masonry_N : N;
-fun masque_N : N;
-fun masquerade_N : N;
-fun masquerade_V : V;
-fun mass_N : N;
-fun mass_V : V;
-fun mass_V2 : V2;
-fun mass_produce_V2 : V2;
-fun massachusetts_PN : PN;
-fun massacre_N : N;
-fun massacre_V2 : V2;
-fun massage_N : N;
-fun massage_V2 : V2;
-fun masseur_N : N;
-fun masseuse_N : N;
-fun massif_N : N;
-fun massive_A : A;
-fun massively_Adv : Adv;
-fun massiveness_N : N;
-fun massy_A : A;
-fun mast_N : N;
-fun master_N : N;
-fun master_V2 : V2;
-fun master_at_arms_N : N;
-fun master_key_N : N;
-fun masterful_A : A;
-fun masterfully_Adv : Adv;
-fun masterless_A : A;
-fun masterly_A : A;
-fun mastermind_N : N;
-fun mastermind_V2 : V2;
-fun masterpiece_N : N;
-fun mastership_N : N;
-fun masterstroke_N : N;
-fun mastery_N : N;
-fun masthead_N : N;
-fun masticate_V2 : V2;
-fun mastication_N : N;
-fun mastiff_N : N;
-fun mastodon_N : N;
-fun mastoid_N : N;
-fun mastoiditis_N : N;
-fun masturbate_V : V;
-fun masturbate_V2 : V2;
-fun masturbation_N : N;
-fun mat_A : A;
-fun mat_N : N;
-fun mat_V : V;
-fun mat_V2 : V2;
-fun matador_N : N;
-fun match_N : N;
-fun match_V : V;
-fun match_V2 : V2;
-fun match_point_N : N;
-fun matchbox_N : N;
-fun matchet_N : N;
-fun matchless_A : A;
-fun matchlock_N : N;
-fun matchmaker_N : N;
-fun matchwood_N : N;
-fun mate_1_N : N;
-fun mate_V : V;
-fun mate_V2 : V2;
-fun material_A : A;
-fun material_N : N;
-fun materialism_N : N;
-fun materialist_N : N;
-fun materialistic_A : A;
-fun materialistically_Adv : Adv;
-fun materialization_N : N;
-fun materialize_V : V;
-fun materially_Adv : Adv;
-fun maternal_A : A;
-fun maternally_Adv : Adv;
-fun maternity_N : N;
-fun matey_A : A;
-fun mathematical_A : A;
-fun mathematically_Adv : Adv;
-fun mathematician_N : N;
-fun mathematics_N : N;
-fun maths_N : N;
-fun matinee_N : N;
-fun matlock_PN : PN;
-fun matriarch_N : N;
-fun matriarchal_A : A;
-fun matriarchy_N : N;
-fun matric_N : N;
-fun matricide_N : N;
-fun matriculate_V : V;
-fun matriculate_V2 : V2;
-fun matriculation_N : N;
-fun matrimonial_A : A;
-fun matrimony_N : N;
-fun matrix_N : N;
-fun matron_N : N;
-fun matronly_A : A;
-fun matt_A : A;
-fun matt_PN : PN;
-fun matted_A : A;
-fun matter_N : N;
-fun matter_V : V;
-fun matter_of_course_A : A;
-fun matter_of_fact_A : A;
-fun matthew_PN : PN;
-fun matting_N : N;
-fun mattock_N : N;
-fun mattress_N : N;
-fun maturate_V : V;
-fun maturation_N : N;
-fun mature_A : A;
-fun mature_V : V;
-fun mature_V2 : V2;
-fun maturely_Adv : Adv;
-fun maturity_N : N;
-fun matutinal_A : A;
-fun mate_2_N : N;
-fun maud_PN : PN;
-fun maudie_PN : PN;
-fun maudlin_A : A;
-fun maul_V2 : V2;
-fun maulstick_N : N;
-fun maunder_V : V;
-fun maundy_thursday_N : N;
-fun maundy_thursday_PN : PN;
-fun maureen_PN : PN;
-fun maurice_PN : PN;
-fun mauritania_PN : PN;
-fun mauritanian_A : A;
-fun mauritanian_N : N;
-fun mauritian_A : A;
-fun mauritian_N : N;
-fun mauritius_PN : PN;
-fun mausoleum_N : N;
-fun mauve_A : A;
-fun mauve_N : N;
-fun maverick_N : N;
-fun mavis_N : N;
-fun mavis_PN : PN;
-fun maw_N : N;
-fun mawkish_A : A;
-fun mawkishly_Adv : Adv;
-fun mawkishness_N : N;
-fun max_N : N;
-fun max_PN : PN;
-fun maxim_N : N;
-fun maximal_A : A;
-fun maximally_Adv : Adv;
-fun maximization_N : N;
-fun maximize_V2 : V2;
-fun maximum_A : A;
-fun maximum_N : N;
-fun maxine_PN : PN;
-fun may_N : N;
-fun may_PN : PN;
-fun may_beetle_N : N;
-fun may_bug_N : N;
-fun maybe_Adv : Adv;
-fun mayday_N : N;
-fun mayfair_PN : PN;
-fun mayfield_PN : PN;
-fun mayfly_N : N;
-fun mayhem_N : N;
-fun mayo_PN : PN;
-fun mayonnaise_N : N;
-fun mayor_N : N;
-fun mayoral_A : A;
-fun mayoralty_N : N;
-fun mayoress_N : N;
-fun maypole_N : N;
-fun maze_N : N;
-fun mazed_A : A;
-fun mazurka_N : N;
-fun mb_N : N;
-fun mc_N : N;
-fun mcc_N : N;
-fun mccarthyism_N : N;
-fun md_N : N;
-fun mead_N : N;
-fun meadow_N : N;
-fun meagre_A : A;
-fun meagrely_Adv : Adv;
-fun meagreness_N : N;
-fun meal_N : N;
-fun mealie_N : N;
-fun mealtime_N : N;
-fun mealy_A : A;
-fun mealy_bug_N : N;
-fun mealy_mouthed_A : A;
-fun mean_A : A;
-fun mean_N : N;
-fun mean_V2 : V2;
-fun meander_V : V;
-fun meanderingly_Adv : Adv;
-fun meanie_N : N;
-fun meaning_A : A;
-fun meaning_N : N;
-fun meaningful_A : A;
-fun meaningfully_Adv : Adv;
-fun meaningless_A : A;
-fun meaningly_Adv : Adv;
-fun meanly_Adv : Adv;
-fun meanness_N : N;
-fun meantime_Adv : Adv;
-fun meantime_N : N;
-fun meanwhile_Adv : Adv;
-fun meany_N : N;
-fun measles_N : N;
-fun measly_A : A;
-fun measurable_A : A;
-fun measurably_Adv : Adv;
-fun measure_N : N;
-fun measure_V : V;
-fun measure_V2 : V2;
-fun measured_A : A;
-fun measureless_A : A;
-fun measurement_N : N;
-fun meat_N : N;
-fun meat_safe_N : N;
-fun meatball_N : N;
-fun meath_PN : PN;
-fun meatless_A : A;
-fun meaty_A : A;
-fun mecca_PN : PN;
-fun mechanic_N : N;
-fun mechanical_A : A;
-fun mechanically_Adv : Adv;
-fun mechanics_N : N;
-fun mechanism_N : N;
-fun mechanistic_A : A;
-fun mechanistically_Adv : Adv;
-fun mechanization_N : N;
-fun mechanize_V2 : V2;
-fun med_N : N;
-fun medal_N : N;
-fun medalist_N : N;
-fun medallion_N : N;
-fun medallist_N : N;
-fun medan_PN : PN;
-fun meddle_V : V;
-fun meddler_N : N;
-fun meddlesome_A : A;
-fun medellin_PN : PN;
-fun mediaeval_A : A;
-fun medial_A : A;
-fun medially_Adv : Adv;
-fun median_A : A;
-fun median_N : N;
-fun mediate_V : V;
-fun mediate_V2 : V2;
-fun mediation_N : N;
-fun mediator_N : N;
-fun medic_N : N;
-fun medical_A : A;
-fun medical_N : N;
-fun medically_Adv : Adv;
-fun medicament_N : N;
-fun medicare_N : N;
-fun medicate_V2 : V2;
-fun medication_N : N;
-fun medicinal_A : A;
-fun medicine_N : N;
-fun medicine_ball_N : N;
-fun medicine_chest_N : N;
-fun medicine_man_N : N;
-fun medico_N : N;
-fun medieval_A : A;
-fun mediocre_A : A;
-fun mediocrity_N : N;
-fun meditate_V : V;
-fun meditate_V2 : V2;
-fun meditation_N : N;
-fun meditative_A : A;
-fun meditatively_Adv : Adv;
-fun mediterranean_A : A;
-fun medium_A : A;
-fun medium_N : N;
-fun medlar_N : N;
-fun medley_N : N;
-fun meed_N : N;
-fun meek_A : A;
-fun meekly_Adv : Adv;
-fun meekness_N : N;
-fun meerschaum_N : N;
-fun meet_A : A;
-fun meet_N : N;
-fun meet_V : V;
-fun meet_V2 : V2;
-fun meeting_N : N;
-fun meeting_house_N : N;
-fun meeting_place_N : N;
-fun meg_PN : PN;
-fun megacycle_N : N;
-fun megadeath_N : N;
-fun megalith_N : N;
-fun megalithic_A : A;
-fun megalomania_N : N;
-fun megalomaniac_N : N;
-fun megaphone_N : N;
-fun megaton_N : N;
-fun megrim_N : N;
-fun meiosis_N : N;
-fun melancholia_N : N;
-fun melancholic_A : A;
-fun melancholy_A : A;
-fun melancholy_N : N;
-fun melbourne_PN : PN;
-fun melcombe_PN : PN;
-fun melcombe_regis_PN : PN;
-fun meliorate_V : V;
-fun meliorate_V2 : V2;
-fun melioration_N : N;
-fun meliorism_N : N;
-fun melksham_PN : PN;
-fun mellifluous_A : A;
-fun mellow_A : A;
-fun mellow_V : V;
-fun mellow_V2 : V2;
-fun mellowly_Adv : Adv;
-fun mellowness_N : N;
-fun melodic_A : A;
-fun melodious_A : A;
-fun melodiously_Adv : Adv;
-fun melodiousness_N : N;
-fun melodrama_N : N;
-fun melodramatic_A : A;
-fun melodramatically_Adv : Adv;
-fun melody_N : N;
-fun melon_N : N;
-fun melt_V : V;
-fun melt_V2 : V2;
-fun meltham_PN : PN;
-fun melting_A : A;
-fun melting_point_N : N;
-fun melting_pot_N : N;
-fun melton_mowbray_PN : PN;
-fun member_N : N;
-fun membership_N : N;
-fun membrane_N : N;
-fun membranous_A : A;
-fun memento_N : N;
-fun memo_N : N;
-fun memoir_N : N;
-fun memorable_A : A;
-fun memorably_Adv : Adv;
-fun memorandum_N : N;
-fun memorial_N : N;
-fun memorialize_V2 : V2;
-fun memorize_V2 : V2;
-fun memory_N : N;
-fun memphis_PN : PN;
-fun memsahib_N : N;
-fun menace_N : N;
-fun menace_V2 : V2;
-fun menacingly_Adv : Adv;
-fun menagerie_N : N;
-fun mend_N : N;
-fun mend_V : V;
-fun mend_V2 : V2;
-fun mendacious_A : A;
-fun mendaciously_Adv : Adv;
-fun mendacity_N : N;
-fun mendelian_A : A;
-fun mender_N : N;
-fun mendicant_A : A;
-fun mendicant_N : N;
-fun mending_N : N;
-fun menial_A : A;
-fun menial_N : N;
-fun menially_Adv : Adv;
-fun meningitis_N : N;
-fun menopause_N : N;
-fun menstrual_A : A;
-fun menstruate_V : V;
-fun menstruation_N : N;
-fun mensurable_A : A;
-fun mensuration_N : N;
-fun mental_A : A;
-fun mentality_N : N;
-fun mentally_Adv : Adv;
-fun menthol_N : N;
-fun mentholated_A : A;
-fun mention_N : N;
-fun mention_V2 : V2;
-fun mentioned_A : A;
-fun mentor_N : N;
-fun menu_N : N;
-fun meopham_PN : PN;
-fun mephistophelian_A : A;
-fun mercantile_A : A;
-fun mercator_PN : PN;
-fun mercenary_A : A;
-fun mercenary_N : N;
-fun mercer_N : N;
-fun mercerize_V2 : V2;
-fun merchandise_N : N;
-fun merchant_N : N;
-fun merchantman_N : N;
-fun merciful_A : A;
-fun mercifully_Adv : Adv;
-fun merciless_A : A;
-fun mercilessly_Adv : Adv;
-fun mercurial_A : A;
-fun mercury_N : N;
-fun mercury_PN : PN;
-fun mercy_N : N;
-fun mere_A : A;
-fun mere_N : N;
-fun merely_Adv : Adv;
-fun meretricious_A : A;
-fun meretriciously_Adv : Adv;
-fun meretriciousness_N : N;
-fun merge_V : V;
-fun merge_V2 : V2;
-fun merger_N : N;
-fun meridian_N : N;
-fun meridional_A : A;
-fun meringue_N : N;
-fun merino_N : N;
-fun merino_sheep_N : N;
-fun merit_N : N;
-fun merit_V2 : V2;
-fun meritocracy_N : N;
-fun meritocratic_A : A;
-fun meritorious_A : A;
-fun meritoriously_Adv : Adv;
-fun mermaid_N : N;
-fun merman_N : N;
-fun merrily_Adv : Adv;
-fun merriment_N : N;
-fun merry_A : A;
-fun merry_go_round_N : N;
-fun merrymaker_N : N;
-fun merrymaking_N : N;
-fun merthyr_tydfil_PN : PN;
-fun merton_PN : PN;
-fun mescal_N : N;
-fun mescaline_N : N;
-fun meseems_Adv : Adv;
-fun mesh_N : N;
-fun mesh_V : V;
-fun mesh_V2 : V2;
-fun mesmeric_A : A;
-fun mesmerism_N : N;
-fun mesmerist_N : N;
-fun mesmerize_V2 : V2;
-fun meson_N : N;
-fun mess_N : N;
-fun mess_V : V;
-fun mess_V2 : V2;
-fun mess_jacket_N : N;
-fun mess_up_N : N;
-fun message_N : N;
-fun messenger_N : N;
-fun messiah_N : N;
-fun messianic_A : A;
-fun messily_Adv : Adv;
-fun messina_PN : PN;
-fun messiness_N : N;
-fun messmate_N : N;
-fun messuage_N : N;
-fun messy_A : A;
-fun met_PN : PN;
-fun metabolic_A : A;
-fun metabolism_N : N;
-fun metacarpal_A : A;
-fun metacarpal_N : N;
-fun metal_N : N;
-fun metal_V2 : V2;
-fun metallic_A : A;
-fun metallurgical_A : A;
-fun metallurgist_N : N;
-fun metallurgy_N : N;
-fun metalwork_N : N;
-fun metalworker_N : N;
-fun metamorphose_V : V;
-fun metamorphose_V2 : V2;
-fun metamorphosis_N : N;
-fun metaphor_N : N;
-fun metaphorical_A : A;
-fun metaphorically_Adv : Adv;
-fun metaphysical_A : A;
-fun metaphysically_Adv : Adv;
-fun metaphysics_N : N;
-fun metatarsal_A : A;
-fun metatarsal_N : N;
-fun mete_V2 : V2;
-fun meteor_N : N;
-fun meteoric_A : A;
-fun meteorite_N : N;
-fun meteorological_A : A;
-fun meteorologist_N : N;
-fun meteorology_N : N;
-fun meter_N : N;
-fun methane_N : N;
-fun methinks_Adv : Adv;
-fun method_N : N;
-fun methodical_A : A;
-fun methodically_Adv : Adv;
-fun methodism_N : N;
-fun methodist_A : A;
-fun methodist_N : N;
-fun methodological_A : A;
-fun methodologically_Adv : Adv;
-fun methodology_N : N;
-fun methought_Adv : Adv;
-fun methuselah_PN : PN;
-fun methyl_N : N;
-fun methylated_A : A;
-fun meticulous_A : A;
-fun meticulously_Adv : Adv;
-fun meticulousness_N : N;
-fun metre_N : N;
-fun metric_A : A;
-fun metrical_A : A;
-fun metrically_Adv : Adv;
-fun metrication_N : N;
-fun metricize_V2 : V2;
-fun metro_N : N;
-fun metronome_N : N;
-fun metropolis_N : N;
-fun metropolitan_A : A;
-fun metropolitan_N : N;
-fun mettle_N : N;
-fun mettlesome_A : A;
-fun metz_PN : PN;
-fun mew_N : N;
-fun mew_V : V;
-fun mews_N : N;
-fun mexican_A : A;
-fun mexican_N : N;
-fun mexico_PN : PN;
-fun mexico_city_PN : PN;
-fun mezzanine_A : A;
-fun mezzanine_N : N;
-fun mezzo_Adv : Adv;
-fun mezzo_soprano_N : N;
-fun mezzotint_N : N;
-fun mg_N : N;
-fun mgr_PN : PN;
-fun mi5_PN : PN;
-fun mi6_PN : PN;
-fun mi_N : N;
-fun miami_PN : PN;
-fun miaou_N : N;
-fun miaou_V : V;
-fun miaow_N : N;
-fun miaow_V : V;
-fun miasma_N : N;
-fun mica_N : N;
-fun michael_PN : PN;
-fun michaelmas_N : N;
-fun michaelmas_PN : PN;
-fun michelle_PN : PN;
-fun michigan_PN : PN;
-fun mick_PN : PN;
-fun mickey_N : N;
-fun mickey_PN : PN;
-fun mickle_N : N;
-fun micro_organism_N : N;
-fun microbe_N : N;
-fun microbiology_N : N;
-fun microcosm_N : N;
-fun microdot_N : N;
-fun microelectronics_N : N;
-fun microfiche_N : N;
-fun microfilm_N : N;
-fun microfilm_V2 : V2;
-fun micrometer_N : N;
-fun micron_N : N;
-fun microphone_N : N;
-fun microscope_N : N;
-fun microscopic_A : A;
-fun microscopical_A : A;
-fun microscopically_Adv : Adv;
-fun microscopy_N : N;
-fun microwave_N : N;
-fun mid_A : A;
-fun mid_off_N : N;
-fun mid_on_N : N;
-fun midday_N : N;
-fun midden_N : N;
-fun middle_N : N;
-fun middle_aged_A : A;
-fun middle_class_A : A;
-fun middle_distance_A : A;
-fun middle_of_the_road_A : A;
-fun middleman_N : N;
-fun middlesex_PN : PN;
-fun middleton_PN : PN;
-fun middleweight_A : A;
-fun middleweight_N : N;
-fun middlewich_PN : PN;
-fun middling_A : A;
-fun middling_Adv : Adv;
-fun middling_N : N;
-fun middy_N : N;
-fun midfield_N : N;
-fun midge_N : N;
-fun midget_N : N;
-fun midinette_N : N;
-fun midland_N : N;
-fun midlands_PN : PN;
-fun midmost_A : A;
-fun midmost_Adv : Adv;
-fun midnight_N : N;
-fun midriff_N : N;
-fun midshipman_N : N;
-fun midships_Adv : Adv;
-fun midst_N : N;
-fun midstream_N : N;
-fun midsummer_N : N;
-fun midway_A : A;
-fun midway_Adv : Adv;
-fun midweek_A : A;
-fun midweek_Adv : Adv;
-fun midwest_PN : PN;
-fun midwestern_A : A;
-fun midwife_N : N;
-fun midwifery_N : N;
-fun mien_N : N;
-fun might_N : N;
-fun might_have_been_N : N;
-fun mightily_Adv : Adv;
-fun mighty_A : A;
-fun mighty_Adv : Adv;
-fun mignonette_N : N;
-fun migraine_N : N;
-fun migrant_N : N;
-fun migrate_V : V;
-fun migration_N : N;
-fun migratory_A : A;
-fun mikado_N : N;
-fun mike_N : N;
-fun mike_PN : PN;
-fun milady_N : N;
-fun milage_N : N;
-fun milan_PN : PN;
-fun milano_PN : PN;
-fun milch_A : A;
-fun mild_A : A;
-fun mildenhall_PN : PN;
-fun mildew_N : N;
-fun mildew_V : V;
-fun mildew_V2 : V2;
-fun mildly_Adv : Adv;
-fun mildness_N : N;
-fun mildred_PN : PN;
-fun mile_N : N;
-fun mileage_N : N;
-fun mileometer_N : N;
-fun miler_N : N;
-fun miles_PN : PN;
-fun milestone_N : N;
-fun milford_PN : PN;
-fun milford_haven_PN : PN;
-fun milieu_N : N;
-fun militancy_N : N;
-fun militant_A : A;
-fun militant_N : N;
-fun militarily_Adv : Adv;
-fun militarism_N : N;
-fun militarist_N : N;
-fun militaristic_A : A;
-fun military_A : A;
-fun military_N : N;
-fun militate_V : V;
-fun militia_N : N;
-fun militiaman_N : N;
-fun milk_N : N;
-fun milk_V : V;
-fun milk_V2 : V2;
-fun milk_churn_N : N;
-fun milk_powder_N : N;
-fun milk_shake_N : N;
-fun milk_tooth_N : N;
-fun milk_white_A : A;
-fun milkbar_N : N;
-fun milking_machine_N : N;
-fun milkmaid_N : N;
-fun milkman_N : N;
-fun milkshake_N : N;
-fun milksop_N : N;
-fun milkweed_N : N;
-fun milky_A : A;
-fun mill_N : N;
-fun mill_V : V;
-fun mill_V2 : V2;
-fun mill_dam_N : N;
-fun mill_girl_N : N;
-fun mill_hand_N : N;
-fun millboard_N : N;
-fun millenarian_N : N;
-fun millennial_A : A;
-fun millennium_N : N;
-fun millepede_N : N;
-fun miller_N : N;
-fun millet_N : N;
-fun milliard_N : N;
-fun millibar_N : N;
-fun millicent_PN : PN;
-fun millie_PN : PN;
-fun milligram_N : N;
-fun millimetre_N : N;
-fun milliner_N : N;
-fun millinery_N : N;
-fun millionaire_N : N;
-fun millionairess_N : N;
-fun millionfold_Adv : Adv;
-fun millionth_A : A;
-fun millionth_N : N;
-fun millipede_N : N;
-fun millom_PN : PN;
-fun millpond_N : N;
-fun millrace_N : N;
-fun millstone_N : N;
-fun millwheel_N : N;
-fun millwright_N : N;
-fun milly_PN : PN;
-fun milngavie_PN : PN;
-fun milnrow_PN : PN;
-fun milometer_N : N;
-fun milord_N : N;
-fun milt_N : N;
-fun milton_keynes_PN : PN;
-fun milwaukee_PN : PN;
-fun mime_N : N;
-fun mime_V : V;
-fun mime_V2 : V2;
-fun mimeograph_N : N;
-fun mimeograph_V2 : V2;
-fun mimetic_A : A;
-fun mimic_A : A;
-fun mimic_N : N;
-fun mimic_V2 : V2;
-fun mimicry_N : N;
-fun mimosa_N : N;
-fun min_N : N;
-fun minaret_N : N;
-fun minatory_A : A;
-fun mince_N : N;
-fun mince_V : V;
-fun mince_V2 : V2;
-fun mince_pie_N : N;
-fun mincemeat_N : N;
-fun mincer_N : N;
-fun mincing_A : A;
-fun mincingly_Adv : Adv;
-fun mind_N : N;
-fun mind_V : V;
-fun mind_V2 : V2;
-fun mind_bending_A : A;
-fun mind_blowing_A : A;
-fun mind_boggling_A : A;
-fun mind_reader_N : N;
-fun minded_A : A;
-fun minder_N : N;
-fun mindful_A : A;
-fun mindfully_Adv : Adv;
-fun mindfulness_N : N;
-fun mindless_A : A;
-fun mindlessly_Adv : Adv;
-fun mindlessness_N : N;
-fun mine_A : A;
-fun mine_N : N;
-fun mine_V : V;
-fun mine_V2 : V2;
-fun mine_detector_N : N;
-fun mine_disposal_N : N;
-fun minefield_N : N;
-fun minehead_PN : PN;
-fun minelayer_N : N;
-fun minelaying_N : N;
-fun miner_N : N;
-fun mineral_A : A;
-fun mineral_N : N;
-fun mineralogist_N : N;
-fun mineralogy_N : N;
-fun minestrone_N : N;
-fun minesweeper_N : N;
-fun minesweeping_N : N;
-fun mineworker_N : N;
-fun mingle_V : V;
-fun mingle_V2 : V2;
-fun mingy_A : A;
-fun miniature_N : N;
-fun miniaturist_N : N;
-fun miniaturization_N : N;
-fun miniaturize_V2 : V2;
-fun minim_N : N;
-fun minimal_A : A;
-fun minimally_Adv : Adv;
-fun minimize_V2 : V2;
-fun minimum_A : A;
-fun minimum_N : N;
-fun mining_N : N;
-fun minion_N : N;
-fun minister_N : N;
-fun minister_V : V;
-fun ministerial_A : A;
-fun ministerially_Adv : Adv;
-fun ministrant_A : A;
-fun ministrant_N : N;
-fun ministration_N : N;
-fun ministry_N : N;
-fun miniver_N : N;
-fun mink_N : N;
-fun minneapolis_PN : PN;
-fun minnesota_PN : PN;
-fun minnow_N : N;
-fun minor_A : A;
-fun minor_N : N;
-fun minority_N : N;
-fun minotaur_N : N;
-fun minsk_PN : PN;
-fun minster_N : N;
-fun minster_in_sheppey_PN : PN;
-fun minstrel_N : N;
-fun minstrelsy_N : N;
-fun mint_N : N;
-fun mint_V2 : V2;
-fun minuet_N : N;
-fun minus_A : A;
-fun minus_N : N;
-fun minuscule_A : A;
-fun minute_A : A;
-fun minute_N : N;
-fun minute_V2 : V2;
-fun minute_book_N : N;
-fun minute_gun_N : N;
-fun minute_hand_N : N;
-fun minutely_Adv : Adv;
-fun minuteman_N : N;
-fun minuteness_N : N;
-fun minx_N : N;
-fun miracle_N : N;
-fun miraculous_A : A;
-fun miraculously_Adv : Adv;
-fun mirage_N : N;
-fun miranda_PN : PN;
-fun mire_N : N;
-fun mire_V : V;
-fun mire_V2 : V2;
-fun miriam_PN : PN;
-fun mirror_N : N;
-fun mirror_V2 : V2;
-fun mirth_N : N;
-fun mirthful_A : A;
-fun mirthfully_Adv : Adv;
-fun mirthless_A : A;
-fun miry_A : A;
-fun misadventure_N : N;
-fun misadvise_V2 : V2;
-fun misalliance_N : N;
-fun misanthrope_N : N;
-fun misanthropic_A : A;
-fun misanthropy_N : N;
-fun misapplication_N : N;
-fun misapply_V2 : V2;
-fun misapprehend_V2 : V2;
-fun misapprehension_N : N;
-fun misappropriate_V2 : V2;
-fun misappropriation_N : N;
-fun misbegotten_A : A;
-fun misbehave_V : V;
-fun misbehave_V2 : V2;
-fun misbehaviour_N : N;
-fun misc_PN : PN;
-fun miscalculate_V : V;
-fun miscalculate_V2 : V2;
-fun miscalculation_N : N;
-fun miscall_V2 : V2;
-fun miscarriage_N : N;
-fun miscarry_V2 : V2;
-fun miscast_V2 : V2;
-fun miscegenation_N : N;
-fun miscellaneous_A : A;
-fun miscellany_N : N;
-fun mischance_N : N;
-fun mischief_N : N;
-fun mischief_maker_N : N;
-fun mischief_making_N : N;
-fun mischievous_A : A;
-fun mischievously_Adv : Adv;
-fun mischievousness_N : N;
-fun misconceive_V : V;
-fun misconceive_V2 : V2;
-fun misconception_N : N;
-fun misconduct_N : N;
-fun misconduct_V2 : V2;
-fun misconstruction_N : N;
-fun misconstrue_V2 : V2;
-fun miscount_N : N;
-fun miscount_V : V;
-fun miscount_V2 : V2;
-fun miscreant_N : N;
-fun misdate_V2 : V2;
-fun misdeal_N : N;
-fun misdeal_V : V;
-fun misdeal_V2 : V2;
-fun misdeed_N : N;
-fun misdemeanour_N : N;
-fun misdirect_V2 : V2;
-fun misdirection_N : N;
-fun misdoing_N : N;
-fun mise_en_scene_N : N;
-fun miser_N : N;
-fun miserable_A : A;
-fun miserably_Adv : Adv;
-fun miserliness_N : N;
-fun miserly_A : A;
-fun misery_N : N;
-fun misfire_N : N;
-fun misfire_V : V;
-fun misfit_N : N;
-fun misfortune_N : N;
-fun misgive_V2 : V2;
-fun misgiving_N : N;
-fun misgovern_V2 : V2;
-fun misgovernment_N : N;
-fun misguide_V2 : V2;
-fun misguided_A : A;
-fun mishandle_V2 : V2;
-fun mishap_N : N;
-fun mishmash_N : N;
-fun misinform_V2 : V2;
-fun misinformation_N : N;
-fun misinterpret_V2 : V2;
-fun misinterpretation_N : N;
-fun misjudge_V : V;
-fun misjudge_V2 : V2;
-fun mislay_V2 : V2;
-fun mislead_V2 : V2;
-fun mismanage_V2 : V2;
-fun mismanagement_N : N;
-fun misname_V2 : V2;
-fun misnomer_N : N;
-fun misogynist_N : N;
-fun misplace_V2 : V2;
-fun misprint_N : N;
-fun misprint_V2 : V2;
-fun mispronounce_V2 : V2;
-fun mispronunciation_N : N;
-fun misquotation_N : N;
-fun misquote_V2 : V2;
-fun misread_V2 : V2;
-fun misrepresent_V2 : V2;
-fun misrepresentation_N : N;
-fun misrule_N : N;
-fun miss_N : N;
-fun miss_V : V;
-fun miss_V2 : V2;
-fun missal_N : N;
-fun misshapen_A : A;
-fun missile_N : N;
-fun missing_A : A;
-fun mission_N : N;
-fun missionary_N : N;
-fun missis_N : N;
-fun mississippi_PN : PN;
-fun missive_N : N;
-fun missouri_PN : PN;
-fun misspell_V2 : V2;
-fun misspelling_N : N;
-fun misspend_V2 : V2;
-fun misstate_V2 : V2;
-fun misstatement_N : N;
-fun missus_N : N;
-fun missy_N : N;
-fun mist_N : N;
-fun mist_V : V;
-fun mist_V2 : V2;
-fun mistake_N : N;
-fun mistake_V : V;
-fun mistake_V2 : V2;
-fun mistaken_A : A;
-fun mistakenly_Adv : Adv;
-fun mister_N : N;
-fun mistily_Adv : Adv;
-fun mistime_V2 : V2;
-fun mistiness_N : N;
-fun mistletoe_N : N;
-fun mistral_N : N;
-fun mistranslate_V2 : V2;
-fun mistranslation_N : N;
-fun mistress_N : N;
-fun mistrial_N : N;
-fun mistrust_N : N;
-fun mistrust_V2 : V2;
-fun mistrustful_A : A;
-fun mistrustfully_Adv : Adv;
-fun misty_A : A;
-fun misunderstand_V2 : V2;
-fun misunderstanding_N : N;
-fun misuse_N : N;
-fun misuse_V2 : V2;
-fun mite_N : N;
-fun mitigate_V2 : V2;
-fun mitigation_N : N;
-fun mitre_N : N;
-fun mitre_joint_N : N;
-fun mitt_N : N;
-fun mitten_N : N;
-fun mix_N : N;
-fun mix_V : V;
-fun mix_V2 : V2;
-fun mix_up_N : N;
-fun mixed_A : A;
-fun mixed_up_A : A;
-fun mixer_N : N;
-fun mixture_N : N;
-fun mizen_N : N;
-fun mizzen_N : N;
-fun mizzen_mast_N : N;
-fun mizzle_V : V;
-fun ml_N : N;
-fun mlle_PN : PN;
-fun mm_N : N;
-fun mme_PN : PN;
-fun mnemonic_A : A;
-fun mnemonics_N : N;
-fun mo_N : N;
-fun mo_PN : PN;
-fun moan_N : N;
-fun moan_V : V;
-fun moan_V2 : V2;
-fun moat_N : N;
-fun moated_A : A;
-fun mob_N : N;
-fun mob_V2 : V2;
-fun mobcap_N : N;
-fun mobile_A : A;
-fun mobile_N : N;
-fun mobility_N : N;
-fun mobilization_N : N;
-fun mobilize_V : V;
-fun mobilize_V2 : V2;
-fun mobster_N : N;
-fun moccasin_N : N;
-fun mocha_N : N;
-fun mock_A : A;
-fun mock_N : N;
-fun mock_V : V;
-fun mock_V2 : V2;
-fun mock_up_N : N;
-fun mocker_N : N;
-fun mockery_N : N;
-fun mockingly_Adv : Adv;
-fun mod_A : A;
-fun mod_N : N;
-fun mod_cons_N : N;
-fun modal_A : A;
-fun modality_N : N;
-fun mode_N : N;
-fun model_N : N;
-fun model_V : V;
-fun model_V2 : V2;
-fun modeler_N : N;
-fun modeller_N : N;
-fun modelling_N : N;
-fun modena_PN : PN;
-fun moderate_A : A;
-fun moderate_N : N;
-fun moderate_V : V;
-fun moderate_V2 : V2;
-fun moderately_Adv : Adv;
-fun moderation_N : N;
-fun moderator_N : N;
-fun modern_A : A;
-fun modern_N : N;
-fun modernism_N : N;
-fun modernist_N : N;
-fun modernistic_A : A;
-fun modernity_N : N;
-fun modernization_N : N;
-fun modernize_V2 : V2;
-fun modest_A : A;
-fun modestly_Adv : Adv;
-fun modesty_N : N;
-fun modicum_N : N;
-fun modification_N : N;
-fun modifier_N : N;
-fun modify_V2 : V2;
-fun modish_A : A;
-fun modishly_Adv : Adv;
-fun modiste_N : N;
-fun modular_A : A;
-fun modulate_V : V;
-fun modulate_V2 : V2;
-fun modulation_N : N;
-fun module_N : N;
-fun modus_operandi_N : N;
-fun modus_vivendi_N : N;
-fun mogul_N : N;
-fun mohair_N : N;
-fun mohammedan_N : N;
-fun moiety_N : N;
-fun moil_V : V;
-fun moira_PN : PN;
-fun moist_A : A;
-fun moisten_V : V;
-fun moisten_V2 : V2;
-fun moistly_Adv : Adv;
-fun moisture_N : N;
-fun moke_N : N;
-fun molar_A : A;
-fun molar_N : N;
-fun molasses_N : N;
-fun mold_PN : PN;
-fun moldy_A : A;
-fun mole_N : N;
-fun molecular_A : A;
-fun molecule_N : N;
-fun molehill_N : N;
-fun moleskin_N : N;
-fun molest_V2 : V2;
-fun molestation_N : N;
-fun moll_N : N;
-fun mollification_N : N;
-fun mollify_V2 : V2;
-fun mollusc_N : N;
-fun molly_PN : PN;
-fun mollycoddle_N : N;
-fun mollycoddle_V2 : V2;
-fun moloch_PN : PN;
-fun molto_Adv : Adv;
-fun molybdenum_N : N;
-fun moment_N : N;
-fun momentarily_Adv : Adv;
-fun momentary_A : A;
-fun momentous_A : A;
-fun momentously_Adv : Adv;
-fun momentousness_N : N;
-fun momentum_N : N;
-fun mon_PN : PN;
-fun monaco_PN : PN;
-fun monaghan_PN : PN;
-fun monarch_N : N;
-fun monarchic_A : A;
-fun monarchism_N : N;
-fun monarchist_N : N;
-fun monarchy_N : N;
-fun monastery_N : N;
-fun monastic_A : A;
-fun monasticism_N : N;
-fun monaural_A : A;
-fun monchengladbach_PN : PN;
-fun monday_N : N;
-fun monday_PN : PN;
-fun monegasque_A : A;
-fun monegasque_N : N;
-fun monetary_A : A;
-fun monetize_V2 : V2;
-fun money_N : N;
-fun money_grubber_N : N;
-fun money_order_N : N;
-fun money_spinner_N : N;
-fun moneybox_N : N;
-fun moneychanger_N : N;
-fun moneyed_A : A;
-fun moneylender_N : N;
-fun moneyless_A : A;
-fun monger_N : N;
-fun mongol_A : A;
-fun mongol_N : N;
-fun mongolia_PN : PN;
-fun mongolian_A : A;
-fun mongolian_N : N;
-fun mongolism_N : N;
-fun mongoose_N : N;
-fun mongrel_A : A;
-fun mongrel_N : N;
-fun monica_PN : PN;
-fun monifieth_PN : PN;
-fun monitor_N : N;
-fun monitor_V : V;
-fun monitor_V2 : V2;
-fun monk_N : N;
-fun monkey_N : N;
-fun monkey_V : V;
-fun monkey_jacket_N : N;
-fun monkey_nut_N : N;
-fun monkey_puzzle_N : N;
-fun monkey_wrench_N : N;
-fun monkish_A : A;
-fun monmouth_PN : PN;
-fun mono_A : A;
-fun monochrome_A : A;
-fun monochrome_N : N;
-fun monocle_N : N;
-fun monocled_A : A;
-fun monogamist_N : N;
-fun monogamous_A : A;
-fun monogamy_N : N;
-fun monogram_N : N;
-fun monograph_N : N;
-fun monolith_N : N;
-fun monolithic_A : A;
-fun monologue_N : N;
-fun monomania_N : N;
-fun monomaniac_N : N;
-fun monoplane_N : N;
-fun monopolist_N : N;
-fun monopolistic_A : A;
-fun monopolization_N : N;
-fun monopolize_V2 : V2;
-fun monopoly_N : N;
-fun monorail_N : N;
-fun monosyllabic_A : A;
-fun monosyllable_N : N;
-fun monotheism_N : N;
-fun monotheist_N : N;
-fun monotheistic_A : A;
-fun monotone_N : N;
-fun monotonous_A : A;
-fun monotonously_Adv : Adv;
-fun monotony_N : N;
-fun monotype_N : N;
-fun monoxide_N : N;
-fun monsieur_N : N;
-fun monsignor_N : N;
-fun monsoon_N : N;
-fun monster_N : N;
-fun monstrance_N : N;
-fun monstrosity_N : N;
-fun monstrous_A : A;
-fun monstrously_Adv : Adv;
-fun montage_N : N;
-fun montana_PN : PN;
-fun monterrey_PN : PN;
-fun montevideo_PN : PN;
-fun month_N : N;
-fun monthly_A : A;
-fun monthly_Adv : Adv;
-fun monthly_N : N;
-fun montreal_PN : PN;
-fun montrose_PN : PN;
-fun montserrat_PN : PN;
-fun montserratian_A : A;
-fun montserratian_N : N;
-fun monument_N : N;
-fun monumental_A : A;
-fun monza_PN : PN;
-fun moo_N : N;
-fun moo_V : V;
-fun moo_cow_N : N;
-fun mooch_V : V;
-fun mood_N : N;
-fun moodily_Adv : Adv;
-fun moodiness_N : N;
-fun moody_A : A;
-fun moon_N : N;
-fun moon_V : V;
-fun moon_V2 : V2;
-fun moonbeam_N : N;
-fun moonflower_N : N;
-fun moonless_A : A;
-fun moonlight_N : N;
-fun moonlit_A : A;
-fun moonshine_N : N;
-fun moonstone_N : N;
-fun moonstruck_A : A;
-fun moony_A : A;
-fun moor_N : N;
-fun moor_V2 : V2;
-fun moorcock_N : N;
-fun moorfowl_N : N;
-fun moorgame_N : N;
-fun moorhen_N : N;
-fun mooring_mast_N : N;
-fun moorish_A : A;
-fun moorland_N : N;
-fun moose_N : N;
-fun moot_A : A;
-fun moot_V2 : V2;
-fun mop_N : N;
-fun mop_V : V;
-fun mop_V2 : V2;
-fun mope_N : N;
-fun mope_V : V;
-fun moped_N : N;
-fun moquette_N : N;
-fun moraine_N : N;
-fun moral_A : A;
-fun moral_N : N;
-fun morale_N : N;
-fun moralist_N : N;
-fun moralistic_A : A;
-fun morality_N : N;
-fun moralize_V : V;
-fun moralize_V2 : V2;
-fun morally_Adv : Adv;
-fun morass_N : N;
-fun moratorium_N : N;
-fun morbid_A : A;
-fun morbidity_N : N;
-fun morbidly_Adv : Adv;
-fun morbidness_N : N;
-fun mordant_A : A;
-fun more_Adv : Adv;
-fun more_N : N;
-fun morecambe_PN : PN;
-fun morello_N : N;
-fun moreover_Adv : Adv;
-fun moresque_A : A;
-fun morganatic_A : A;
-fun morgue_N : N;
-fun moribund_A : A;
-fun morley_PN : PN;
-fun mormon_A : A;
-fun mormon_N : N;
-fun mormonism_N : N;
-fun morn_N : N;
-fun morning_N : N;
-fun morning_glory_N : N;
-fun morning_room_N : N;
-fun moroccan_A : A;
-fun moroccan_N : N;
-fun morocco_N : N;
-fun morocco_PN : PN;
-fun moron_N : N;
-fun moronic_A : A;
-fun morose_A : A;
-fun morosely_Adv : Adv;
-fun moroseness_N : N;
-fun morpeth_PN : PN;
-fun morpheme_N : N;
-fun morphemic_A : A;
-fun morpheus_PN : PN;
-fun morphia_N : N;
-fun morphine_N : N;
-fun morphological_A : A;
-fun morphologically_Adv : Adv;
-fun morphology_N : N;
-fun morris_dance_N : N;
-fun morrow_N : N;
-fun morse_N : N;
-fun morsel_N : N;
-fun mortal_A : A;
-fun mortal_N : N;
-fun mortality_N : N;
-fun mortally_Adv : Adv;
-fun mortar_N : N;
-fun mortar_V2 : V2;
-fun mortarboard_N : N;
-fun mortgage_N : N;
-fun mortgage_V2 : V2;
-fun mortgagee_N : N;
-fun mortgagor_N : N;
-fun mortice_N : N;
-fun mortice_V2 : V2;
-fun mortician_N : N;
-fun mortification_N : N;
-fun mortify_V : V;
-fun mortify_V2 : V2;
-fun mortise_N : N;
-fun mortise_V2 : V2;
-fun mortuary_N : N;
-fun mosaic_A : A;
-fun mosaic_N : N;
-fun moscow_PN : PN;
-fun moselle_N : N;
-fun mosey_V : V;
-fun moslem_A : A;
-fun moslem_N : N;
-fun mosque_N : N;
-fun mosquito_N : N;
-fun mosquito_craft_N : N;
-fun mosquito_net_N : N;
-fun moss_N : N;
-fun moss_grown_A : A;
-fun mossley_PN : PN;
-fun mossy_A : A;
-fun mostly_Adv : Adv;
-fun mote_N : N;
-fun motel_N : N;
-fun moth_N : N;
-fun moth_eaten_A : A;
-fun mothball_N : N;
-fun mother_N : N;
-fun mother_V2 : V2;
-fun mother_in_law_N : N;
-fun mother_of_pearl_N : N;
-fun motherhood_N : N;
-fun motherland_N : N;
-fun motherless_A : A;
-fun motherlike_A : A;
-fun motherliness_N : N;
-fun motherly_A : A;
-fun motherwell_PN : PN;
-fun mothproof_A : A;
-fun mothproof_V2 : V2;
-fun motif_N : N;
-fun motion_N : N;
-fun motion_V : V;
-fun motion_V2 : V2;
-fun motionless_A : A;
-fun motionlessly_Adv : Adv;
-fun motivate_V2 : V2;
-fun motivation_N : N;
-fun motive_A : A;
-fun motive_N : N;
-fun motiveless_A : A;
-fun motley_A : A;
-fun motley_N : N;
-fun motor_N : N;
-fun motor_V : V;
-fun motor_assisted_A : A;
-fun motorbike_N : N;
-fun motorboat_N : N;
-fun motorcade_N : N;
-fun motorcar_N : N;
-fun motorcoach_N : N;
-fun motorcycle_N : N;
-fun motorist_N : N;
-fun motorize_V2 : V2;
-fun motorman_N : N;
-fun motorway_N : N;
-fun mottle_V2 : V2;
-fun motto_N : N;
-fun moujik_N : N;
-fun mould_N : N;
-fun mould_V : V;
-fun mould_V2 : V2;
-fun moulder_V : V;
-fun moulding_N : N;
-fun mouldy_A : A;
-fun moult_N : N;
-fun moult_V : V;
-fun moult_V2 : V2;
-fun mound_N : N;
-fun mount_N : N;
-fun mount_V : V;
-fun mount_V2 : V2;
-fun mountain_N : N;
-fun mountain_ash_PN : PN;
-fun mountaineer_N : N;
-fun mountaineering_N : N;
-fun mountainous_A : A;
-fun mountebank_N : N;
-fun mountie_N : N;
-fun mourn_V : V;
-fun mourn_V2 : V2;
-fun mourner_N : N;
-fun mournful_A : A;
-fun mournfully_Adv : Adv;
-fun mourning_N : N;
-fun mourning_band_N : N;
-fun mourning_ring_N : N;
-fun mouse_N : N;
-fun mouse_V : V;
-fun mouser_N : N;
-fun mousetrap_N : N;
-fun mousse_N : N;
-fun moustache_N : N;
-fun mousy_A : A;
-fun mouth_N : N;
-fun mouth_V : V;
-fun mouth_V2 : V2;
-fun mouth_organ_N : N;
-fun mouth_watering_A : A;
-fun mouthful_N : N;
-fun mouthpiece_N : N;
-fun movable_A : A;
-fun move_N : N;
-fun move_V : V;
-fun move_V2 : V2;
-fun movement_N : N;
-fun mover_N : N;
-fun movie_N : N;
-fun mow_N : N;
-fun mow_V : V;
-fun mow_V2 : V2;
-fun mower_N : N;
-fun mozambican_A : A;
-fun mozambican_N : N;
-fun mozambique_PN : PN;
-fun mp's_N : N;
-fun mp_N : N;
-fun mpg_N : N;
-fun mph_N : N;
-fun mr_PN : PN;
-fun mrs_PN : PN;
-fun ms_N : N;
-fun ms_PN : PN;
-fun msc_N : N;
-fun mt_PN : PN;
-fun much_A : A;
-fun much_Adv : Adv;
-fun much_N : N;
-fun muchness_N : N;
-fun mucilage_N : N;
-fun muck_N : N;
-fun muck_V : V;
-fun muck_V2 : V2;
-fun muck_heap_N : N;
-fun muckle_N : N;
-fun muckraker_N : N;
-fun muckraking_N : N;
-fun mucky_A : A;
-fun mucous_A : A;
-fun mucus_N : N;
-fun mud_N : N;
-fun mud_V2 : V2;
-fun mud_bath_N : N;
-fun muddle_N : N;
-fun muddle_V : V;
-fun muddle_V2 : V2;
-fun muddle_headed_A : A;
-fun muddy_A : A;
-fun muddy_V2 : V2;
-fun mudguard_N : N;
-fun mudslinger_N : N;
-fun muesli_N : N;
-fun muezzin_N : N;
-fun muff_N : N;
-fun muff_V2 : V2;
-fun muffin_N : N;
-fun muffin_man_N : N;
-fun muffle_V2 : V2;
-fun muffler_N : N;
-fun mufti_N : N;
-fun mug_N : N;
-fun mug_V2 : V2;
-fun mugger_N : N;
-fun mugginess_N : N;
-fun mugging_N : N;
-fun muggins_N : N;
-fun muggy_A : A;
-fun mugwump_N : N;
-fun muhammad_PN : PN;
-fun muhammadan_A : A;
-fun muhammadan_N : N;
-fun muhammadanism_N : N;
-fun mukden_PN : PN;
-fun mulatto_N : N;
-fun mulberry_N : N;
-fun mulch_N : N;
-fun mulch_V2 : V2;
-fun mulct_V2 : V2;
-fun mule_N : N;
-fun muleteer_N : N;
-fun mulheim_PN : PN;
-fun mulhouse_PN : PN;
-fun mulish_A : A;
-fun mulishly_Adv : Adv;
-fun mulishness_N : N;
-fun mull_N : N;
-fun mull_V2 : V2;
-fun mullah_N : N;
-fun mullein_N : N;
-fun mullet_N : N;
-fun mulligatawny_N : N;
-fun mullion_N : N;
-fun mullioned_A : A;
-fun multan_PN : PN;
-fun multi_lingual_A : A;
-fun multifarious_A : A;
-fun multifariously_Adv : Adv;
-fun multiform_A : A;
-fun multilateral_A : A;
-fun multiple_A : A;
-fun multiple_N : N;
-fun multiplex_A : A;
-fun multiplication_N : N;
-fun multiplicity_N : N;
-fun multiply_V : V;
-fun multiply_V2 : V2;
-fun multitude_N : N;
-fun multitudinous_A : A;
-fun multum_in_parvo_N : N;
-fun mum_A : A;
-fun mum_N : N;
-fun mumble_V : V;
-fun mumble_V2 : V2;
-fun mumbo_jumbo_N : N;
-fun mummer_N : N;
-fun mummery_N : N;
-fun mummification_N : N;
-fun mummify_V2 : V2;
-fun mummy_N : N;
-fun mumps_N : N;
-fun munch_V : V;
-fun munch_V2 : V2;
-fun mundane_A : A;
-fun mundanely_Adv : Adv;
-fun munich_PN : PN;
-fun municipal_A : A;
-fun municipality_N : N;
-fun municipally_Adv : Adv;
-fun munificence_N : N;
-fun munificent_A : A;
-fun munificently_Adv : Adv;
-fun munition_N : N;
-fun munition_V2 : V2;
-fun munster_PN : PN;
-fun mural_A : A;
-fun mural_N : N;
-fun murder_N : N;
-fun murder_V2 : V2;
-fun murderer_N : N;
-fun murderess_N : N;
-fun murderous_A : A;
-fun murderously_Adv : Adv;
-fun muriel_PN : PN;
-fun murk_N : N;
-fun murkily_Adv : Adv;
-fun murky_A : A;
-fun murmur_N : N;
-fun murmur_V : V;
-fun murmur_V2 : V2;
-fun murphy_N : N;
-fun murrain_N : N;
-fun murton_PN : PN;
-fun muscatel_N : N;
-fun muscle_N : N;
-fun muscle_V : V;
-fun muscle_bound_A : A;
-fun muscleman_N : N;
-fun muscovite_A : A;
-fun muscovite_N : N;
-fun muscovy_N : N;
-fun muscular_A : A;
-fun muse_N : N;
-fun muse_V : V;
-fun museum_N : N;
-fun mush_N : N;
-fun mushroom_N : N;
-fun mushroom_V : V;
-fun mushy_A : A;
-fun music_N : N;
-fun music_box_N : N;
-fun music_hall_N : N;
-fun music_stand_N : N;
-fun music_stool_N : N;
-fun musical_A : A;
-fun musical_N : N;
-fun musical_box_N : N;
-fun musically_Adv : Adv;
-fun musician_N : N;
-fun musicianship_N : N;
-fun musingly_Adv : Adv;
-fun musk_N : N;
-fun musk_deer_N : N;
-fun musk_rose_N : N;
-fun musket_N : N;
-fun musketeer_N : N;
-fun musketry_N : N;
-fun muskrat_N : N;
-fun musky_A : A;
-fun muslim_N : N;
-fun muslin_N : N;
-fun musquash_N : N;
-fun muss_N : N;
-fun muss_V2 : V2;
-fun mussel_N : N;
-fun musselburgh_PN : PN;
-fun must_N : N;
-fun mustachio_N : N;
-fun mustang_N : N;
-fun mustard_N : N;
-fun muster_N : N;
-fun muster_V : V;
-fun muster_V2 : V2;
-fun mustiness_N : N;
-fun musty_A : A;
-fun mutability_N : N;
-fun mutable_A : A;
-fun mutation_N : N;
-fun mutatis_mutandis_Adv : Adv;
-fun mute_A : A;
-fun mute_N : N;
-fun mute_V2 : V2;
-fun mutely_Adv : Adv;
-fun mutilate_V2 : V2;
-fun mutilation_N : N;
-fun mutineer_N : N;
-fun mutinous_A : A;
-fun mutiny_N : N;
-fun mutiny_V : V;
-fun mutt_N : N;
-fun mutter_N : N;
-fun mutter_V : V;
-fun mutter_V2 : V2;
-fun mutterer_N : N;
-fun mutton_N : N;
-fun mutton_head_N : N;
-fun mutual_A : A;
-fun mutually_Adv : Adv;
-fun muzzle_N : N;
-fun muzzle_V2 : V2;
-fun muzzle_velocity_N : N;
-fun muzzy_A : A;
-fun mycology_N : N;
-fun myelitis_N : N;
-fun myna_N : N;
-fun mynah_N : N;
-fun myopia_N : N;
-fun myopic_A : A;
-fun myra_PN : PN;
-fun myriad_A : A;
-fun myriad_N : N;
-fun myrmidon_N : N;
-fun myrrh_N : N;
-fun myrtle_N : N;
-fun mysterious_A : A;
-fun mysteriously_Adv : Adv;
-fun mystery_N : N;
-fun mystic_A : A;
-fun mystic_N : N;
-fun mystical_A : A;
-fun mysticism_N : N;
-fun mystification_N : N;
-fun mystify_V2 : V2;
-fun mystique_N : N;
-fun myth_N : N;
-fun mythical_A : A;
-fun mythological_A : A;
-fun mythologist_N : N;
-fun mythology_N : N;
-fun myxomatosis_N : N;
-fun melange_N : N;
-fun menage_N : N;
-fun mesalliance_N : N;
-fun metier_N : N;
-fun melee_N : N;
-fun naafi_N : N;
-fun nab_V2 : V2;
-fun nabob_N : N;
-fun nacelle_N : N;
-fun nacre_N : N;
-fun nadir_N : N;
-fun nag_N : N;
-fun nag_V : V;
-fun nag_V2 : V2;
-fun nagger_N : N;
-fun nagoya_PN : PN;
-fun nagpur_PN : PN;
-fun naiad_N : N;
-fun nail_N : N;
-fun nail_V2 : V2;
-fun nail_polish_N : N;
-fun nail_varnish_N : N;
-fun nailbrush_N : N;
-fun nailfile_N : N;
-fun nailsea_PN : PN;
-fun nainsook_N : N;
-fun naira_N : N;
-fun nairn_PN : PN;
-fun nairobi_PN : PN;
-fun naive_1_A : A;
-fun naively_Adv : Adv;
-fun naivety_N : N;
-fun naivete_N : N;
-fun naked_A : A;
-fun nakedly_Adv : Adv;
-fun nakedness_N : N;
-fun namby_pamby_A : A;
-fun namby_pamby_N : N;
-fun name_N : N;
-fun name_V2 : V2;
-fun name_day_N : N;
-fun name_drop_V : V;
-fun name_dropping_N : N;
-fun name_part_N : N;
-fun nameless_A : A;
-fun namely_Adv : Adv;
-fun nameplate_N : N;
-fun namesake_N : N;
-fun namibia_PN : PN;
-fun namibian_A : A;
-fun namibian_N : N;
-fun nanchang_PN : PN;
-fun nancy_PN : PN;
-fun nankeen_N : N;
-fun nanking_PN : PN;
-fun nanning_PN : PN;
-fun nanny_N : N;
-fun nanny_goat_N : N;
-fun nantwich_PN : PN;
-fun naomi_PN : PN;
-fun nap_N : N;
-fun nap_V : V;
-fun napalm_N : N;
-fun nape_N : N;
-fun napery_N : N;
-fun naphtha_N : N;
-fun naphthalene_N : N;
-fun napkin_N : N;
-fun napkin_ring_N : N;
-fun naples_PN : PN;
-fun napoleonic_A : A;
-fun napoli_PN : PN;
-fun nappy_N : N;
-fun narborough_PN : PN;
-fun narcissism_N : N;
-fun narcissus_N : N;
-fun narcotic_A : A;
-fun narcotic_N : N;
-fun nark_N : N;
-fun nark_V2 : V2;
-fun narrate_V2 : V2;
-fun narration_N : N;
-fun narrative_N : N;
-fun narrator_N : N;
-fun narrow_A : A;
-fun narrow_N : N;
-fun narrow_V : V;
-fun narrow_V2 : V2;
-fun narrow_minded_A : A;
-fun narrow_mindedly_Adv : Adv;
-fun narrow_mindedness_N : N;
-fun narrowly_Adv : Adv;
-fun narrowness_N : N;
-fun narwhal_N : N;
-fun nasa_PN : PN;
-fun nasal_A : A;
-fun nasal_N : N;
-fun nasalize_V2 : V2;
-fun nascent_A : A;
-fun nastily_Adv : Adv;
-fun nastiness_N : N;
-fun nasturtium_N : N;
-fun nasty_A : A;
-fun nat_PN : PN;
-fun natal_A : A;
-fun natalie_PN : PN;
-fun nathaniel_PN : PN;
-fun nation_N : N;
-fun national_A : A;
-fun national_N : N;
-fun nationalism_N : N;
-fun nationalist_A : A;
-fun nationalist_N : N;
-fun nationalistic_A : A;
-fun nationality_N : N;
-fun nationalization_N : N;
-fun nationalize_V2 : V2;
-fun nationally_Adv : Adv;
-fun nationwide_A : A;
-fun nationwide_Adv : Adv;
-fun native_A : A;
-fun native_N : N;
-fun nativity_N : N;
-fun nato_PN : PN;
-fun natter_V : V;
-fun nattily_Adv : Adv;
-fun natty_A : A;
-fun natural_A : A;
-fun natural_N : N;
-fun naturalism_N : N;
-fun naturalist_N : N;
-fun naturalistic_A : A;
-fun naturalization_N : N;
-fun naturalize_V : V;
-fun naturalize_V2 : V2;
-fun naturally_Adv : Adv;
-fun naturalness_N : N;
-fun nature_N : N;
-fun naturism_N : N;
-fun naturist_N : N;
-fun naught_N : N;
-fun naughtily_Adv : Adv;
-fun naughtiness_N : N;
-fun naughty_A : A;
-fun nauru_PN : PN;
-fun nauruan_A : A;
-fun nauruan_N : N;
-fun nausea_N : N;
-fun nauseate_V2 : V2;
-fun nauseous_A : A;
-fun nautch_N : N;
-fun nautch_girl_N : N;
-fun nautical_A : A;
-fun nautilus_N : N;
-fun naval_A : A;
-fun nave_N : N;
-fun navel_N : N;
-fun navigability_N : N;
-fun navigable_A : A;
-fun navigate_V : V;
-fun navigate_V2 : V2;
-fun navigation_N : N;
-fun navigator_N : N;
-fun navvy_N : N;
-fun navy_N : N;
-fun nay_Adv : Adv;
-fun nazi_A : A;
-fun nazi_N : N;
-fun nazism_N : N;
-fun naive_2_A : A;
-fun nb_PN : PN;
-fun nco_N : N;
-fun ne'er_Adv : Adv;
-fun ne'er_do_well_N : N;
-fun ne_plus_ultra_N : N;
-fun neanderthal_A : A;
-fun neap_N : N;
-fun neap_tide_N : N;
-fun neapolitan_A : A;
-fun neapolitan_N : N;
-fun near_A : A;
-fun near_Adv : Adv;
-fun near_V : V;
-fun near_V2 : V2;
-fun near_sighted_A : A;
-fun nearby_A : A;
-fun nearer_Adv : Adv;
-fun nearest_Adv : Adv;
-fun nearly_Adv : Adv;
-fun nearness_N : N;
-fun nearside_N : N;
-fun neat_A : A;
-fun neath_PN : PN;
-fun neatly_Adv : Adv;
-fun neatness_N : N;
-fun nebraska_PN : PN;
-fun nebula_N : N;
-fun nebular_A : A;
-fun nebulous_A : A;
-fun necessarily_Adv : Adv;
-fun necessary_A : A;
-fun necessary_N : N;
-fun necessitate_V2 : V2;
-fun necessitous_A : A;
-fun necessity_N : N;
-fun neck_N : N;
-fun neck_V : V;
-fun neckband_N : N;
-fun neckcloth_N : N;
-fun neckerchief_N : N;
-fun necklace_N : N;
-fun necklet_N : N;
-fun neckline_N : N;
-fun necktie_N : N;
-fun neckwear_N : N;
-fun necromancer_N : N;
-fun necromancy_N : N;
-fun necropolis_N : N;
-fun nectar_N : N;
-fun nectarine_N : N;
-fun ned_PN : PN;
-fun neddy_PN : PN;
-fun need_N : N;
-fun need_V2 : V2;
-fun needful_A : A;
-fun needfully_Adv : Adv;
-fun needle_N : N;
-fun needle_V2 : V2;
-fun needlecraft_N : N;
-fun needless_A : A;
-fun needlessly_Adv : Adv;
-fun needlewoman_N : N;
-fun needlework_N : N;
-fun needs_Adv : Adv;
-fun needy_A : A;
-fun nefarious_A : A;
-fun nefariously_Adv : Adv;
-fun nefariousness_N : N;
-fun negate_V2 : V2;
-fun negation_N : N;
-fun negative_A : A;
-fun negative_N : N;
-fun negative_V2 : V2;
-fun negatively_Adv : Adv;
-fun neglect_N : N;
-fun neglect_V2 : V2;
-fun neglectful_A : A;
-fun neglectfully_Adv : Adv;
-fun neglectfulness_N : N;
-fun negligee_N : N;
-fun negligence_N : N;
-fun negligent_A : A;
-fun negligently_Adv : Adv;
-fun negligible_A : A;
-fun negotiable_A : A;
-fun negotiate_V : V;
-fun negotiate_V2 : V2;
-fun negotiation_N : N;
-fun negotiator_N : N;
-fun negress_N : N;
-fun negro_N : N;
-fun negroid_A : A;
-fun negroid_N : N;
-fun negus_N : N;
-fun neigh_N : N;
-fun neigh_V : V;
-fun neighbour_N : N;
-fun neighbour_V : V;
-fun neighbour_V2 : V2;
-fun neighbourhood_N : N;
-fun neighbourliness_N : N;
-fun neighbourly_A : A;
-fun neil_PN : PN;
-fun neither_A : A;
-fun neither_Adv : Adv;
-fun nell_PN : PN;
-fun nelly_N : N;
-fun nelly_PN : PN;
-fun nelson_PN : PN;
-fun nem_con_Adv : Adv;
-fun nemesis_N : N;
-fun neocolonialism_N : N;
-fun neolithic_A : A;
-fun neologism_N : N;
-fun neon_N : N;
-fun neophyte_N : N;
-fun neoplasm_N : N;
-fun nepal_PN : PN;
-fun nepalese_A : A;
-fun nepalese_N : N;
-fun nepali_A : A;
-fun nepali_N : N;
-fun nephew_N : N;
-fun nephritis_N : N;
-fun nepotism_N : N;
-fun neptune_PN : PN;
-fun nereid_N : N;
-fun nerve_N : N;
-fun nerve_V2 : V2;
-fun nerve_cell_N : N;
-fun nerve_centre_N : N;
-fun nerve_racking_A : A;
-fun nerveless_A : A;
-fun nervelessly_Adv : Adv;
-fun nervous_A : A;
-fun nervously_Adv : Adv;
-fun nervousness_N : N;
-fun nervy_A : A;
-fun nescience_N : N;
-fun nescient_A : A;
-fun ness_N : N;
-fun nest_N : N;
-fun nest_V : V;
-fun nest_egg_N : N;
-fun nestle_V : V;
-fun nestle_V2 : V2;
-fun nestling_N : N;
-fun neston_PN : PN;
-fun nestor_PN : PN;
-fun net_A : A;
-fun net_N : N;
-fun net_V2 : V2;
-fun netball_N : N;
-fun nether_A : A;
-fun netherlander_N : N;
-fun netherlands_PN : PN;
-fun nethermost_A : A;
-fun netley_PN : PN;
-fun nett_A : A;
-fun nett_V2 : V2;
-fun netting_N : N;
-fun nettle_N : N;
-fun nettle_V2 : V2;
-fun nettlerash_N : N;
-fun network_N : N;
-fun neural_A : A;
-fun neuralgia_N : N;
-fun neuralgic_A : A;
-fun neurasthenia_N : N;
-fun neurasthenic_A : A;
-fun neurasthenic_N : N;
-fun neuritis_N : N;
-fun neurologist_N : N;
-fun neurology_N : N;
-fun neurosis_N : N;
-fun neurotic_A : A;
-fun neurotic_N : N;
-fun neurotically_Adv : Adv;
-fun neuss_PN : PN;
-fun neuter_A : A;
-fun neuter_N : N;
-fun neuter_V2 : V2;
-fun neutral_A : A;
-fun neutral_N : N;
-fun neutrality_N : N;
-fun neutralization_N : N;
-fun neutralize_V2 : V2;
-fun neutron_N : N;
-fun nevada_PN : PN;
-fun never_Adv : Adv;
-fun nevermore_Adv : Adv;
-fun nevertheless_Adv : Adv;
-fun neville_PN : PN;
-fun new_A : A;
-fun new_Adv : Adv;
-fun new_cumnock_PN : PN;
-fun new_mills_PN : PN;
-fun new_orleans_PN : PN;
-fun new_tredegar_PN : PN;
-fun new_windsor_PN : PN;
-fun new_york_PN : PN;
-fun newark_PN : PN;
-fun newarthill_PN : PN;
-fun newbiggin_PN : PN;
-fun newbury_PN : PN;
-fun newcastle_PN : PN;
-fun newcastle_under_lyme_PN : PN;
-fun newcastle_upon_tyne_PN : PN;
-fun newcomer_N : N;
-fun newel_N : N;
-fun newfangled_A : A;
-fun newfoundland_PN : PN;
-fun newham_PN : PN;
-fun newhaven_PN : PN;
-fun newly_Adv : Adv;
-fun newlywed_N : N;
-fun newmains_PN : PN;
-fun newmarket_N : N;
-fun newmarket_PN : PN;
-fun newness_N : N;
-fun newport_PN : PN;
-fun newport_pagnell_PN : PN;
-fun newquay_PN : PN;
-fun newry_PN : PN;
-fun news_N : N;
-fun newsagent_N : N;
-fun newsboy_N : N;
-fun newscast_N : N;
-fun newscaster_N : N;
-fun newsdealer_N : N;
-fun newsflash_N : N;
-fun newsless_A : A;
-fun newsletter_N : N;
-fun newsmonger_N : N;
-fun newspaper_N : N;
-fun newspaperman_N : N;
-fun newsprint_N : N;
-fun newsreel_N : N;
-fun newsroom_N : N;
-fun newssheet_N : N;
-fun newsstand_N : N;
-fun newsvendor_N : N;
-fun newsworthy_A : A;
-fun newsy_A : A;
-fun newt_N : N;
-fun newton_abbot_PN : PN;
-fun newton_aycliffe_PN : PN;
-fun newton_le_willows_PN : PN;
-fun newton_mearns_PN : PN;
-fun newtonian_A : A;
-fun newtonian_N : N;
-fun newtown_PN : PN;
-fun next_A : A;
-fun next_Adv : Adv;
-fun next_N : N;
-fun nexus_N : N;
-fun nhs_N : N;
-fun nib_N : N;
-fun nibble_N : N;
-fun nibble_V : V;
-fun nibble_V2 : V2;
-fun nicaragua_PN : PN;
-fun nicaraguan_A : A;
-fun nicaraguan_N : N;
-fun nice_A : A;
-fun nice_PN : PN;
-fun nicely_Adv : Adv;
-fun niceness_N : N;
-fun nicety_N : N;
-fun niche_N : N;
-fun nicholas_PN : PN;
-fun nick_N : N;
-fun nick_PN : PN;
-fun nick_V2 : V2;
-fun nickel_N : N;
-fun nickel_V2 : V2;
-fun nicknack_N : N;
-fun nickname_N : N;
-fun nickname_V2 : V2;
-fun nicola_PN : PN;
-fun nicole_PN : PN;
-fun nicotine_N : N;
-fun niece_N : N;
-fun niff_N : N;
-fun niffy_A : A;
-fun nifty_A : A;
-fun nigel_PN : PN;
-fun niger_PN : PN;
-fun nigeria_PN : PN;
-fun nigerian_A : A;
-fun nigerian_N : N;
-fun nigerien_A : A;
-fun nigerien_N : N;
-fun niggard_N : N;
-fun niggardliness_N : N;
-fun niggardly_A : A;
-fun nigger_N : N;
-fun niggle_V : V;
-fun niggling_A : A;
-fun nigh_Adv : Adv;
-fun nigher_Adv : Adv;
-fun nighest_Adv : Adv;
-fun night_N : N;
-fun night_bell_N : N;
-fun night_bird_N : N;
-fun night_light_N : N;
-fun night_line_N : N;
-fun night_porter_N : N;
-fun night_soil_N : N;
-fun night_stop_N : N;
-fun night_time_N : N;
-fun night_watch_N : N;
-fun night_watchman_N : N;
-fun nightcap_N : N;
-fun nightclub_N : N;
-fun nightdress_N : N;
-fun nightfall_N : N;
-fun nightgown_N : N;
-fun nightie_N : N;
-fun nightingale_N : N;
-fun nightjar_N : N;
-fun nightlong_A : A;
-fun nightly_A : A;
-fun nightly_Adv : Adv;
-fun nightmare_N : N;
-fun nightmarish_A : A;
-fun nightshade_N : N;
-fun nightshirt_N : N;
-fun nightwork_N : N;
-fun nihilism_N : N;
-fun nihilist_N : N;
-fun nihilistic_A : A;
-fun nijmegen_PN : PN;
-fun nil_N : N;
-fun nilotic_A : A;
-fun nimble_A : A;
-fun nimbleness_N : N;
-fun nimbly_Adv : Adv;
-fun nimbus_N : N;
-fun niminy_piminy_A : A;
-fun nimrod_PN : PN;
-fun nincompoop_N : N;
-fun ninefold_A : A;
-fun ninefold_Adv : Adv;
-fun ninepence_N : N;
-fun ninepenny_A : A;
-fun ninepins_N : N;
-fun ninny_N : N;
-fun ninth_A : A;
-fun ninth_N : N;
-fun niobe_PN : PN;
-fun nip_N : N;
-fun nip_V : V;
-fun nip_V2 : V2;
-fun nipper_N : N;
-fun nipping_A : A;
-fun nipple_N : N;
-fun nipponese_A : A;
-fun nippy_A : A;
-fun nirvana_N : N;
-fun nisi_A : A;
-fun nissen_PN : PN;
-fun nit_N : N;
-fun nitrate_N : N;
-fun nitre_N : N;
-fun nitric_A : A;
-fun nitrochalk_N : N;
-fun nitrogen_N : N;
-fun nitroglycerin_N : N;
-fun nitroglycerine_N : N;
-fun nitrous_A : A;
-fun nitty_gritty_N : N;
-fun nitwit_N : N;
-fun nitwitted_A : A;
-fun nix_N : N;
-fun no_ball_N : N;
-fun no_go_A : A;
-fun no_man's_land_N : N;
-fun noah_PN : PN;
-fun nob_N : N;
-fun nobble_V2 : V2;
-fun nobel_PN : PN;
-fun nobility_N : N;
-fun noble_A : A;
-fun noble_N : N;
-fun noble_mindedness_N : N;
-fun nobleman_N : N;
-fun noblesse_N : N;
-fun noblesse_oblige_N : N;
-fun nobly_Adv : Adv;
-fun noctambulist_N : N;
-fun nocturnal_A : A;
-fun nocturne_N : N;
-fun nod_N : N;
-fun nod_V : V;
-fun nod_V2 : V2;
-fun noddle_N : N;
-fun node_N : N;
-fun nodular_A : A;
-fun nodulated_A : A;
-fun nodule_N : N;
-fun noel_N : N;
-fun noel_PN : PN;
-fun noggin_N : N;
-fun nohow_Adv : Adv;
-fun noise_N : N;
-fun noise_V2 : V2;
-fun noiseless_A : A;
-fun noiselessly_Adv : Adv;
-fun noiselessness_N : N;
-fun noisily_Adv : Adv;
-fun noisiness_N : N;
-fun noisome_A : A;
-fun noisy_A : A;
-fun nom_de_plume_N : N;
-fun nomad_N : N;
-fun nomadic_A : A;
-fun nomenclature_N : N;
-fun nominal_A : A;
-fun nominally_Adv : Adv;
-fun nominate_V2 : V2;
-fun nomination_N : N;
-fun nominative_A : A;
-fun nominative_N : N;
-fun nominee_N : N;
-fun non_compliance_N : N;
-fun non_compos_mentis_A : A;
-fun non_contentious_A : A;
-fun non_interference_N : N;
-fun non_sequitur_N : N;
-fun non_skid_A : A;
-fun non_u_A : A;
-fun nonage_N : N;
-fun nonagenarian_A : A;
-fun nonagenarian_N : N;
-fun nonaggression_N : N;
-fun nonalignment_N : N;
-fun nonce_N : N;
-fun nonce_word_N : N;
-fun nonchalance_N : N;
-fun nonchalant_A : A;
-fun nonchalantly_Adv : Adv;
-fun noncombatant_N : N;
-fun noncommissioned_A : A;
-fun noncommittal_A : A;
-fun nonconductor_N : N;
-fun nonconformist_N : N;
-fun nonconformity_N : N;
-fun nondescript_A : A;
-fun nondescript_N : N;
-fun none_Adv : Adv;
-fun nonentity_N : N;
-fun nonesuch_N : N;
-fun nonevent_N : N;
-fun nonfiction_N : N;
-fun nonflammable_A : A;
-fun nonintervention_N : N;
-fun nonmoral_A : A;
-fun nonobservance_N : N;
-fun nonpareil_A : A;
-fun nonpareil_N : N;
-fun nonpayment_N : N;
-fun nonplus_V2 : V2;
-fun nonresident_A : A;
-fun nonsense_N : N;
-fun nonsensical_A : A;
-fun nonsmoker_N : N;
-fun nonstarter_N : N;
-fun nonstick_A : A;
-fun nonstop_A : A;
-fun nonstop_Adv : Adv;
-fun nonsuch_N : N;
-fun nonunion_A : A;
-fun nonviolence_N : N;
-fun noodle_N : N;
-fun nook_N : N;
-fun noon_N : N;
-fun noonday_A : A;
-fun noontide_N : N;
-fun noose_N : N;
-fun noose_V2 : V2;
-fun nor'_east_Adv : Adv;
-fun nor'_east_N : N;
-fun nor'_nor'_east_Adv : Adv;
-fun nor'_nor'_east_N : N;
-fun nor'_nor'_west_Adv : Adv;
-fun nor'_nor'_west_N : N;
-fun nor'_west_Adv : Adv;
-fun nor'_west_N : N;
-fun nora_PN : PN;
-fun nordic_A : A;
-fun nordic_N : N;
-fun norfolk_PN : PN;
-fun norm_N : N;
-fun normal_A : A;
-fun normal_N : N;
-fun normalcy_N : N;
-fun normality_N : N;
-fun normalization_N : N;
-fun normalize_V2 : V2;
-fun normally_Adv : Adv;
-fun norman_A : A;
-fun norman_N : N;
-fun norman_PN : PN;
-fun normanton_PN : PN;
-fun normantown_PN : PN;
-fun normative_A : A;
-fun norse_A : A;
-fun norse_N : N;
-fun north_Adv : Adv;
-fun north_N : N;
-fun north_northeast_Adv : Adv;
-fun north_northeast_N : N;
-fun north_northwest_Adv : Adv;
-fun north_northwest_N : N;
-fun north_walsham_PN : PN;
-fun northallerton_PN : PN;
-fun northam_PN : PN;
-fun northampton_PN : PN;
-fun northamptonshire_PN : PN;
-fun northeast_Adv : Adv;
-fun northeast_N : N;
-fun northeaster_N : N;
-fun northeasterly_A : A;
-fun northeastern_A : A;
-fun northerly_A : A;
-fun northerly_Adv : Adv;
-fun northern_A : A;
-fun northerner_N : N;
-fun northernmost_A : A;
-fun northman_N : N;
-fun northumberland_PN : PN;
-fun northwards_Adv : Adv;
-fun northwest_Adv : Adv;
-fun northwest_N : N;
-fun northwester_N : N;
-fun northwesterly_A : A;
-fun northwestern_A : A;
-fun northwich_PN : PN;
-fun norton_PN : PN;
-fun norway_PN : PN;
-fun norwegian_A : A;
-fun norwegian_N : N;
-fun norwich_PN : PN;
-fun nos_N : N;
-fun nose_N : N;
-fun nose_V : V;
-fun nose_V2 : V2;
-fun nose_flute_N : N;
-fun nose_wheel_N : N;
-fun nosebag_N : N;
-fun nosebleed_N : N;
-fun nosecone_N : N;
-fun nosed_A : A;
-fun nosedive_N : N;
-fun nosedive_V : V;
-fun nosegay_N : N;
-fun nosering_N : N;
-fun nosey_A : A;
-fun nosh_N : N;
-fun nosh_V : V;
-fun nosh_up_N : N;
-fun nostalgia_N : N;
-fun nostalgic_A : A;
-fun nostalgically_Adv : Adv;
-fun nostril_N : N;
-fun nostrum_N : N;
-fun nosy_A : A;
-fun not_Adv : Adv;
-fun notability_N : N;
-fun notable_A : A;
-fun notable_N : N;
-fun notably_Adv : Adv;
-fun notary_N : N;
-fun notation_N : N;
-fun notch_N : N;
-fun notch_V2 : V2;
-fun note_N : N;
-fun note_V2 : V2;
-fun notebook_N : N;
-fun notecase_N : N;
-fun noted_A : A;
-fun notepaper_N : N;
-fun noteworthy_A : A;
-fun nothing_Adv : Adv;
-fun nothingness_N : N;
-fun notice_N : N;
-fun notice_V : V;
-fun notice_V2 : V2;
-fun notice_board_N : N;
-fun noticeable_A : A;
-fun noticeably_Adv : Adv;
-fun notifiable_A : A;
-fun notification_N : N;
-fun notify_V2 : V2;
-fun notion_N : N;
-fun notional_A : A;
-fun notoriety_N : N;
-fun notorious_A : A;
-fun notoriously_Adv : Adv;
-fun nottingham_PN : PN;
-fun nottinghamshire_PN : PN;
-fun notwithstanding_Adv : Adv;
-fun nougat_N : N;
-fun nought_N : N;
-fun noun_N : N;
-fun nourish_V2 : V2;
-fun nourishment_N : N;
-fun nous_N : N;
-fun nouveau_riche_N : N;
-fun nov_PN : PN;
-fun nova_N : N;
-fun nova_scotia_PN : PN;
-fun novara_PN : PN;
-fun novel_A : A;
-fun novel_N : N;
-fun novelette_N : N;
-fun novelist_N : N;
-fun novelty_N : N;
-fun november_N : N;
-fun november_PN : PN;
-fun novice_N : N;
-fun noviciate_N : N;
-fun novitiate_N : N;
-fun novokuznetsk_PN : PN;
-fun novosibirsk_PN : PN;
-fun now_Adv : Adv;
-fun nowadays_Adv : Adv;
-fun nowhere_Adv : Adv;
-fun nowise_Adv : Adv;
-fun noxious_A : A;
-fun noxiously_Adv : Adv;
-fun noxiousness_N : N;
-fun nozzle_N : N;
-fun nr_PN : PN;
-fun nspcc_N : N;
-fun nt_N : N;
-fun nuance_N : N;
-fun nub_N : N;
-fun nubile_A : A;
-fun nuclear_A : A;
-fun nucleic_A : A;
-fun nucleus_N : N;
-fun nude_A : A;
-fun nude_N : N;
-fun nudge_N : N;
-fun nudge_V2 : V2;
-fun nudism_N : N;
-fun nudist_N : N;
-fun nudity_N : N;
-fun nugatory_A : A;
-fun nugget_N : N;
-fun nuisance_N : N;
-fun null_A : A;
-fun nullification_N : N;
-fun nullify_V2 : V2;
-fun nullity_N : N;
-fun numb_A : A;
-fun numb_V2 : V2;
-fun number_N : N;
-fun number_V2 : V2;
-fun numberless_A : A;
-fun numberplate_N : N;
-fun numbly_Adv : Adv;
-fun numbness_N : N;
-fun numerable_A : A;
-fun numeracy_N : N;
-fun numeral_A : A;
-fun numeral_N : N;
-fun numerate_A : A;
-fun numeration_N : N;
-fun numerator_N : N;
-fun numeric_A : A;
-fun numerical_A : A;
-fun numerically_Adv : Adv;
-fun numerous_A : A;
-fun numinous_A : A;
-fun numismatics_N : N;
-fun numismatist_N : N;
-fun numskull_N : N;
-fun nun_N : N;
-fun nuncio_N : N;
-fun nuneaton_PN : PN;
-fun nunnery_N : N;
-fun nuptial_A : A;
-fun nurenburg_PN : PN;
-fun nurse_N : N;
-fun nurse_V2 : V2;
-fun nurseling_N : N;
-fun nursemaid_N : N;
-fun nursery_N : N;
-fun nurseryman_N : N;
-fun nursing_home_N : N;
-fun nursling_N : N;
-fun nurture_N : N;
-fun nurture_V2 : V2;
-fun nut_N : N;
-fun nut_V : V;
-fun nut_brown_A : A;
-fun nut_butter_N : N;
-fun nuthouse_N : N;
-fun nutmeg_N : N;
-fun nutria_N : N;
-fun nutrient_A : A;
-fun nutrient_N : N;
-fun nutriment_N : N;
-fun nutrition_N : N;
-fun nutritional_A : A;
-fun nutritionally_Adv : Adv;
-fun nutritious_A : A;
-fun nutritive_A : A;
-fun nuts_A : A;
-fun nutshell_N : N;
-fun nutty_A : A;
-fun nuzzle_V : V;
-fun nuzzle_V2 : V2;
-fun nylon_N : N;
-fun nymph_N : N;
-fun nymphet_N : N;
-fun nympho_N : N;
-fun nymphomania_N : N;
-fun nymphomaniac_A : A;
-fun nymphomaniac_N : N;
-fun nee_A : A;
-fun neglige_N : N;
-fun o'er_Adv : Adv;
-fun o_level_N : N;
-fun oaf_N : N;
-fun oafish_A : A;
-fun oak_N : N;
-fun oak_apple_N : N;
-fun oaken_A : A;
-fun oakengates_PN : PN;
-fun oakum_N : N;
-fun oap's_N : N;
-fun oap_N : N;
-fun oar_N : N;
-fun oarsman_N : N;
-fun oarsmanship_N : N;
-fun oarswoman_N : N;
-fun oasis_N : N;
-fun oast_N : N;
-fun oasthouse_N : N;
-fun oat_N : N;
-fun oatcake_N : N;
-fun oath_N : N;
-fun oatmeal_N : N;
-fun oau_N : N;
-fun ob_PN : PN;
-fun oban_PN : PN;
-fun obbligato_N : N;
-fun obduracy_N : N;
-fun obdurate_A : A;
-fun obdurately_Adv : Adv;
-fun obedience_N : N;
-fun obedient_A : A;
-fun obediently_Adv : Adv;
-fun obeisance_N : N;
-fun obelisk_N : N;
-fun oberhausen_PN : PN;
-fun obese_A : A;
-fun obesity_N : N;
-fun obey_V : V;
-fun obey_V2 : V2;
-fun obfuscate_V2 : V2;
-fun obi_N : N;
-fun obiter_dictum_N : N;
-fun obituary_N : N;
-fun object_N : N;
-fun object_V : V;
-fun object_V2 : V2;
-fun objection_N : N;
-fun objectionable_A : A;
-fun objectionably_Adv : Adv;
-fun objective_A : A;
-fun objective_N : N;
-fun objectively_Adv : Adv;
-fun objectivity_N : N;
-fun objector_N : N;
-fun objurgate_V2 : V2;
-fun objurgation_N : N;
-fun oblate_A : A;
-fun oblation_N : N;
-fun obligate_V2 : V2;
-fun obligation_N : N;
-fun obligatory_A : A;
-fun oblige_V2 : V2;
-fun obliging_A : A;
-fun obligingly_Adv : Adv;
-fun oblique_A : A;
-fun obliquely_Adv : Adv;
-fun obliquity_N : N;
-fun obliterate_V2 : V2;
-fun obliteration_N : N;
-fun oblivion_N : N;
-fun oblivious_A : A;
-fun oblong_A : A;
-fun oblong_N : N;
-fun obloquy_N : N;
-fun obnoxious_A : A;
-fun obnoxiously_Adv : Adv;
-fun obnoxiousness_N : N;
-fun oboe_N : N;
-fun oboist_N : N;
-fun obscene_A : A;
-fun obscenely_Adv : Adv;
-fun obscenity_N : N;
-fun obscurantism_N : N;
-fun obscurantist_N : N;
-fun obscure_A : A;
-fun obscure_V2 : V2;
-fun obscurely_Adv : Adv;
-fun obscurity_N : N;
-fun obsequious_A : A;
-fun obsequiously_Adv : Adv;
-fun obsequiousness_N : N;
-fun observable_A : A;
-fun observably_Adv : Adv;
-fun observance_N : N;
-fun observant_A : A;
-fun observantly_Adv : Adv;
-fun observation_N : N;
-fun observatory_N : N;
-fun observe_V : V;
-fun observe_V2 : V2;
-fun observer_N : N;
-fun observing_A : A;
-fun observingly_Adv : Adv;
-fun obsess_V2 : V2;
-fun obsession_N : N;
-fun obsessional_A : A;
-fun obsessionally_Adv : Adv;
-fun obsessive_A : A;
-fun obsessively_Adv : Adv;
-fun obsidian_N : N;
-fun obsolescence_N : N;
-fun obsolescent_A : A;
-fun obsolete_A : A;
-fun obstacle_N : N;
-fun obstetric_A : A;
-fun obstetrical_A : A;
-fun obstetrician_N : N;
-fun obstetrics_N : N;
-fun obstinacy_N : N;
-fun obstinate_A : A;
-fun obstinately_Adv : Adv;
-fun obstreperous_A : A;
-fun obstreperously_Adv : Adv;
-fun obstreperousness_N : N;
-fun obstruct_V2 : V2;
-fun obstruction_N : N;
-fun obstructionism_N : N;
-fun obstructionist_N : N;
-fun obstructive_A : A;
-fun obstructively_Adv : Adv;
-fun obtain_V : V;
-fun obtain_V2 : V2;
-fun obtainable_A : A;
-fun obtrude_V : V;
-fun obtrude_V2 : V2;
-fun obtrusive_A : A;
-fun obtrusively_Adv : Adv;
-fun obtuse_A : A;
-fun obtusely_Adv : Adv;
-fun obtuseness_N : N;
-fun obverse_N : N;
-fun obviate_V2 : V2;
-fun obvious_A : A;
-fun obviously_Adv : Adv;
-fun obviousness_N : N;
-fun ocarina_N : N;
-fun occasion_N : N;
-fun occasion_V2 : V2;
-fun occasional_A : A;
-fun occasionally_Adv : Adv;
-fun occident_PN : PN;
-fun occidental_A : A;
-fun occidental_N : N;
-fun occult_A : A;
-fun occult_N : N;
-fun occupancy_N : N;
-fun occupant_N : N;
-fun occupation_N : N;
-fun occupational_A : A;
-fun occupier_N : N;
-fun occupy_V2 : V2;
-fun occur_V : V;
-fun occurrence_N : N;
-fun ocean_N : N;
-fun oceanic_A : A;
-fun ochre_N : N;
-fun ockbrook_PN : PN;
-fun ockendon_PN : PN;
-fun oct_PN : PN;
-fun octagon_N : N;
-fun octagonal_A : A;
-fun octane_N : N;
-fun octave_N : N;
-fun octavo_N : N;
-fun octet_N : N;
-fun octette_N : N;
-fun october_N : N;
-fun october_PN : PN;
-fun octogenarian_A : A;
-fun octogenarian_N : N;
-fun octopus_N : N;
-fun octroi_N : N;
-fun ocular_A : A;
-fun oculist_N : N;
-fun odalisque_N : N;
-fun odd_A : A;
-fun odd_job_A : A;
-fun oddity_N : N;
-fun oddly_Adv : Adv;
-fun oddment_N : N;
-fun odds_on_A : A;
-fun odds_on_Adv : Adv;
-fun ode_N : N;
-fun odessa_PN : PN;
-fun odious_A : A;
-fun odiously_Adv : Adv;
-fun odium_N : N;
-fun odoriferous_A : A;
-fun odorous_A : A;
-fun odour_N : N;
-fun odourless_A : A;
-fun odyssey_N : N;
-fun oecd_N : N;
-fun oecumenical_A : A;
-fun oed_N : N;
-fun oedipus_PN : PN;
-fun oesophagus_N : N;
-fun off_A : A;
-fun off_Adv : Adv;
-fun off_day_N : N;
-fun off_licence_N : N;
-fun off_peak_A : A;
-fun off_putting_A : A;
-fun off_street_A : A;
-fun off_white_A : A;
-fun offal_N : N;
-fun offaly_PN : PN;
-fun offbeat_A : A;
-fun offenbach_PN : PN;
-fun offence_N : N;
-fun offenceless_A : A;
-fun offend_V : V;
-fun offend_V2 : V2;
-fun offender_N : N;
-fun offensive_A : A;
-fun offensive_N : N;
-fun offensively_Adv : Adv;
-fun offensiveness_N : N;
-fun offer_N : N;
-fun offer_V : V;
-fun offer_V2 : V2;
-fun offering_N : N;
-fun offertory_N : N;
-fun offhand_A : A;
-fun offhand_Adv : Adv;
-fun offhanded_A : A;
-fun offhanded_Adv : Adv;
-fun offhandedly_A : A;
-fun offhandedly_Adv : Adv;
-fun office_N : N;
-fun office_bearer_N : N;
-fun office_block_N : N;
-fun office_boy_N : N;
-fun office_holder_N : N;
-fun officer_N : N;
-fun official_A : A;
-fun official_N : N;
-fun officialdom_N : N;
-fun officialese_N : N;
-fun officially_Adv : Adv;
-fun officiate_V : V;
-fun officious_A : A;
-fun officiously_Adv : Adv;
-fun officiousness_N : N;
-fun offing_N : N;
-fun offish_A : A;
-fun offprint_N : N;
-fun offset_N : N;
-fun offset_V2 : V2;
-fun offshoot_N : N;
-fun offshore_A : A;
-fun offside_A : A;
-fun offside_Adv : Adv;
-fun offspring_N : N;
-fun offstage_A : A;
-fun offstage_Adv : Adv;
-fun oft_Adv : Adv;
-fun oft_times_Adv : Adv;
-fun often_Adv : Adv;
-fun oftener_Adv : Adv;
-fun ogle_V : V;
-fun ogle_V2 : V2;
-fun ogmore_valley_PN : PN;
-fun ogre_N : N;
-fun ogreish_A : A;
-fun ogress_N : N;
-fun ohio_PN : PN;
-fun ohm_N : N;
-fun oil_N : N;
-fun oil_V2 : V2;
-fun oil_bearing_A : A;
-fun oil_burner_N : N;
-fun oil_cake_N : N;
-fun oil_painting_N : N;
-fun oil_palm_N : N;
-fun oil_paper_N : N;
-fun oil_rig_N : N;
-fun oil_silk_N : N;
-fun oil_slick_N : N;
-fun oil_tanker_N : N;
-fun oil_well_N : N;
-fun oilcan_N : N;
-fun oilcloth_N : N;
-fun oiled_A : A;
-fun oiler_N : N;
-fun oilfield_N : N;
-fun oilfired_A : A;
-fun oiliness_N : N;
-fun oilskin_N : N;
-fun oily_A : A;
-fun ointment_N : N;
-fun okapi_N : N;
-fun okay_A : A;
-fun okay_Adv : Adv;
-fun okay_N : N;
-fun okay_V2 : V2;
-fun oklahoma_PN : PN;
-fun oklahoma_city_PN : PN;
-fun okra_N : N;
-fun old_A : A;
-fun old_N : N;
-fun old_fashioned_A : A;
-fun old_maidish_A : A;
-fun old_time_A : A;
-fun old_timer_N : N;
-fun old_windsor_PN : PN;
-fun old_womanish_A : A;
-fun old_world_A : A;
-fun olden_A : A;
-fun oldenburg_PN : PN;
-fun oldham_PN : PN;
-fun oldish_A : A;
-fun oldland_PN : PN;
-fun oldster_N : N;
-fun oleaginous_A : A;
-fun oleander_N : N;
-fun olfactory_A : A;
-fun oligarch_N : N;
-fun oligarchy_N : N;
-fun olive_A : A;
-fun olive_N : N;
-fun olive_PN : PN;
-fun olive_tree_N : N;
-fun oliver_PN : PN;
-fun olivia_PN : PN;
-fun ollerton_PN : PN;
-fun ollie_PN : PN;
-fun olympiad_N : N;
-fun olympian_A : A;
-fun olympian_N : N;
-fun olympic_A : A;
-fun olympics_PN : PN;
-fun oman_PN : PN;
-fun omani_A : A;
-fun omani_N : N;
-fun ombudsman_N : N;
-fun omega_N : N;
-fun omelet_N : N;
-fun omelette_N : N;
-fun omen_N : N;
-fun omen_V2 : V2;
-fun ominous_A : A;
-fun ominously_Adv : Adv;
-fun omission_N : N;
-fun omit_V2 : V2;
-fun omnibus_N : N;
-fun omnipotence_N : N;
-fun omnipotent_A : A;
-fun omniscience_N : N;
-fun omniscient_A : A;
-fun omnivorous_A : A;
-fun omsk_PN : PN;
-fun on_Adv : Adv;
-fun on_licence_N : N;
-fun once_Adv : Adv;
-fun oncoming_A : A;
-fun oncoming_N : N;
-fun one_armed_A : A;
-fun one_eyed_A : A;
-fun one_horse_A : A;
-fun one_idea'd_A : A;
-fun one_sided_A : A;
-fun one_step_N : N;
-fun one_time_A : A;
-fun one_upmanship_N : N;
-fun oneness_N : N;
-fun onerous_A : A;
-fun onerously_Adv : Adv;
-fun ongar_PN : PN;
-fun ongoing_A : A;
-fun onion_N : N;
-fun onlooker_N : N;
-fun only_A : A;
-fun only_Adv : Adv;
-fun onomatopoeia_N : N;
-fun onrush_N : N;
-fun onset_N : N;
-fun onshore_A : A;
-fun onshore_Adv : Adv;
-fun onslaught_N : N;
-fun ontario_PN : PN;
-fun ontology_N : N;
-fun onus_N : N;
-fun onward_A : A;
-fun onward_Adv : Adv;
-fun onwards_Adv : Adv;
-fun onyx_N : N;
-fun oomph_N : N;
-fun ooze_N : N;
-fun ooze_V : V;
-fun ooze_V2 : V2;
-fun oozy_A : A;
-fun op_PN : PN;
-fun op_art_N : N;
-fun op_cit_PN : PN;
-fun opacity_N : N;
-fun opal_N : N;
-fun opalescent_A : A;
-fun opaque_A : A;
-fun opaquely_Adv : Adv;
-fun opaqueness_N : N;
-fun opec_PN : PN;
-fun open_A : A;
-fun open_N : N;
-fun open_V : V;
-fun open_V2 : V2;
-fun open_air_A : A;
-fun open_ended_A : A;
-fun open_eyed_A : A;
-fun open_handed_A : A;
-fun open_hearted_A : A;
-fun open_minded_A : A;
-fun open_mouthed_A : A;
-fun opencast_A : A;
-fun opener_N : N;
-fun opening_A : A;
-fun opening_N : N;
-fun openly_Adv : Adv;
-fun openness_N : N;
-fun openwork_N : N;
-fun opera_N : N;
-fun opera_cloak_N : N;
-fun opera_hat_N : N;
-fun opera_house_N : N;
-fun operable_A : A;
-fun operate_V : V;
-fun operate_V2 : V2;
-fun operatic_A : A;
-fun operating_table_N : N;
-fun operating_theatre_N : N;
-fun operation_N : N;
-fun operational_A : A;
-fun operative_A : A;
-fun operative_N : N;
-fun operator_N : N;
-fun operetta_N : N;
-fun ophthalmia_N : N;
-fun ophthalmic_A : A;
-fun ophthalmoscope_N : N;
-fun opiate_N : N;
-fun opine_V2 : V2;
-fun opinion_N : N;
-fun opinionated_A : A;
-fun opinionative_A : A;
-fun opium_N : N;
-fun opium_den_N : N;
-fun opossum_N : N;
-fun opp_PN : PN;
-fun opponent_N : N;
-fun opportune_A : A;
-fun opportunely_Adv : Adv;
-fun opportunism_N : N;
-fun opportunist_N : N;
-fun opportunity_N : N;
-fun oppose_V2 : V2;
-fun opposite_A : A;
-fun opposite_N : N;
-fun opposition_N : N;
-fun oppress_V2 : V2;
-fun oppression_N : N;
-fun oppressive_A : A;
-fun oppressively_Adv : Adv;
-fun oppressor_N : N;
-fun opprobrious_A : A;
-fun opprobriously_Adv : Adv;
-fun opprobrium_N : N;
-fun oppugn_V2 : V2;
-fun opt_V : V;
-fun optative_A : A;
-fun optative_N : N;
-fun optic_A : A;
-fun optical_A : A;
-fun optically_Adv : Adv;
-fun optician_N : N;
-fun optics_N : N;
-fun optimal_A : A;
-fun optimally_Adv : Adv;
-fun optimism_N : N;
-fun optimist_N : N;
-fun optimistic_A : A;
-fun optimistically_Adv : Adv;
-fun optimum_N : N;
-fun option_N : N;
-fun optional_A : A;
-fun optionally_Adv : Adv;
-fun opulence_N : N;
-fun opulent_A : A;
-fun opulently_Adv : Adv;
-fun opus_N : N;
-fun oracle_N : N;
-fun oracular_A : A;
-fun oral_A : A;
-fun oral_N : N;
-fun orally_Adv : Adv;
-fun orang_outan_N : N;
-fun orang_outang_N : N;
-fun orang_utan_N : N;
-fun orange_A : A;
-fun orange_N : N;
-fun orangeade_N : N;
-fun orangeman_N : N;
-fun orate_V : V;
-fun oration_N : N;
-fun orator_N : N;
-fun oratorical_A : A;
-fun oratorio_N : N;
-fun oratory_N : N;
-fun orb_N : N;
-fun orbit_N : N;
-fun orbit_V : V;
-fun orbit_V2 : V2;
-fun orbital_A : A;
-fun orchard_N : N;
-fun orchestra_N : N;
-fun orchestral_A : A;
-fun orchestrate_V2 : V2;
-fun orchestration_N : N;
-fun orchid_N : N;
-fun orchis_N : N;
-fun ordain_V2 : V2;
-fun ordeal_N : N;
-fun order_N : N;
-fun order_V2 : V2;
-fun order_book_N : N;
-fun order_form_N : N;
-fun order_paper_N : N;
-fun ordering_N : N;
-fun orderliness_N : N;
-fun orderly_A : A;
-fun orderly_N : N;
-fun ordinal_A : A;
-fun ordinal_N : N;
-fun ordinance_N : N;
-fun ordinand_N : N;
-fun ordinarily_Adv : Adv;
-fun ordinary_A : A;
-fun ordination_N : N;
-fun ordnance_N : N;
-fun ordure_N : N;
-fun ore_N : N;
-fun oregon_PN : PN;
-fun organ_N : N;
-fun organ_blower_N : N;
-fun organ_grinder_N : N;
-fun organ_loft_N : N;
-fun organdie_N : N;
-fun organic_A : A;
-fun organically_Adv : Adv;
-fun organism_N : N;
-fun organist_N : N;
-fun organization_N : N;
-fun organizational_A : A;
-fun organizationally_Adv : Adv;
-fun organize_V2 : V2;
-fun organized_A : A;
-fun organizer_N : N;
-fun orgasm_N : N;
-fun orgiastic_A : A;
-fun orgy_N : N;
-fun oriel_N : N;
-fun orient_A : A;
-fun orient_N : N;
-fun orient_V2 : V2;
-fun oriental_A : A;
-fun oriental_N : N;
-fun orientalist_N : N;
-fun orientate_V2 : V2;
-fun orientation_N : N;
-fun orifice_N : N;
-fun origin_N : N;
-fun original_A : A;
-fun original_N : N;
-fun originality_N : N;
-fun originally_Adv : Adv;
-fun originate_V : V;
-fun originate_V2 : V2;
-fun originator_N : N;
-fun oriole_N : N;
-fun orison_N : N;
-fun orkney_PN : PN;
-fun orleans_PN : PN;
-fun orlop_N : N;
-fun ormolu_N : N;
-fun ormskirk_PN : PN;
-fun ornament_N : N;
-fun ornament_V2 : V2;
-fun ornamental_A : A;
-fun ornamentation_N : N;
-fun ornate_A : A;
-fun ornately_Adv : Adv;
-fun ornateness_N : N;
-fun ornery_A : A;
-fun ornithological_A : A;
-fun ornithologist_N : N;
-fun ornithology_N : N;
-fun orotund_A : A;
-fun orphan_N : N;
-fun orphan_V2 : V2;
-fun orphanage_N : N;
-fun orrisroot_N : N;
-fun orthodontic_A : A;
-fun orthodontics_N : N;
-fun orthodontist_N : N;
-fun orthodox_A : A;
-fun orthodoxy_N : N;
-fun orthogonal_A : A;
-fun orthogonally_Adv : Adv;
-fun orthographic_A : A;
-fun orthography_N : N;
-fun orthopaedic_A : A;
-fun orthopaedics_N : N;
-fun orthopedic_A : A;
-fun orthopedics_N : N;
-fun ortolan_N : N;
-fun oryx_N : N;
-fun osaka_PN : PN;
-fun oscar_N : N;
-fun oscar_PN : PN;
-fun oscillate_V : V;
-fun oscillate_V2 : V2;
-fun oscillation_N : N;
-fun oscillator_N : N;
-fun oscillograph_N : N;
-fun oscilloscope_N : N;
-fun osier_N : N;
-fun oslo_PN : PN;
-fun osnabruck_PN : PN;
-fun osprey_N : N;
-fun osseous_A : A;
-fun ossett_PN : PN;
-fun ossification_N : N;
-fun ossify_V : V;
-fun ossify_V2 : V2;
-fun ostensible_A : A;
-fun ostensibly_Adv : Adv;
-fun ostentation_N : N;
-fun ostentatious_A : A;
-fun ostentatiously_Adv : Adv;
-fun osteopath_N : N;
-fun osteopathy_N : N;
-fun ostler_N : N;
-fun ostracism_N : N;
-fun ostracize_V2 : V2;
-fun ostrich_N : N;
-fun oswald_PN : PN;
-fun oswestry_PN : PN;
-fun ot_N : N;
-fun otago_PN : PN;
-fun other_A : A;
-fun other_Adv : Adv;
-fun other_N : N;
-fun otherwise_Adv : Adv;
-fun otherworldly_A : A;
-fun otiose_A : A;
-fun otley_PN : PN;
-fun ottawa_PN : PN;
-fun otter_N : N;
-fun ottoman_N : N;
-fun oubliette_N : N;
-fun ouija_N : N;
-fun ouija_board_N : N;
-fun ounce_N : N;
-fun oust_V2 : V2;
-fun out_Adv : Adv;
-fun out_V2 : V2;
-fun out_herod_V2 : V2;
-fun out_of_date_A : A;
-fun out_of_door_A : A;
-fun out_of_doors_Adv : Adv;
-fun out_of_the_way_A : A;
-fun out_of_the_way_Adv : Adv;
-fun out_of_work_A : A;
-fun out_tray_N : N;
-fun outback_A : A;
-fun outback_N : N;
-fun outbalance_V2 : V2;
-fun outbid_V2 : V2;
-fun outboard_A : A;
-fun outbound_A : A;
-fun outbrave_V2 : V2;
-fun outbreak_N : N;
-fun outbuilding_N : N;
-fun outburst_N : N;
-fun outcast_A : A;
-fun outcast_N : N;
-fun outcaste_A : A;
-fun outcaste_N : N;
-fun outclass_V2 : V2;
-fun outcome_N : N;
-fun outcrop_N : N;
-fun outcry_N : N;
-fun outdated_A : A;
-fun outdistance_V2 : V2;
-fun outdo_V2 : V2;
-fun outdoor_A : A;
-fun outdoors_Adv : Adv;
-fun outer_A : A;
-fun outermost_A : A;
-fun outface_V2 : V2;
-fun outfall_N : N;
-fun outfield_N : N;
-fun outfielder_N : N;
-fun outfight_V2 : V2;
-fun outfit_N : N;
-fun outfit_V2 : V2;
-fun outfitter_N : N;
-fun outflank_V2 : V2;
-fun outflow_N : N;
-fun outfox_V2 : V2;
-fun outgo_N : N;
-fun outgo_V : V;
-fun outgoing_A : A;
-fun outgrow_V2 : V2;
-fun outgrowth_N : N;
-fun outhouse_N : N;
-fun outing_N : N;
-fun outlandish_A : A;
-fun outlandishly_Adv : Adv;
-fun outlandishness_N : N;
-fun outlast_V2 : V2;
-fun outlaw_N : N;
-fun outlaw_V2 : V2;
-fun outlawry_N : N;
-fun outlay_N : N;
-fun outlet_N : N;
-fun outlier_N : N;
-fun outline_N : N;
-fun outline_V2 : V2;
-fun outlive_V2 : V2;
-fun outlook_N : N;
-fun outlying_A : A;
-fun outmanoeuvre_V2 : V2;
-fun outmarch_V2 : V2;
-fun outmatch_V2 : V2;
-fun outmoded_A : A;
-fun outmost_A : A;
-fun outnumber_V2 : V2;
-fun outpatient_N : N;
-fun outplay_V2 : V2;
-fun outpoint_V2 : V2;
-fun outport_N : N;
-fun outpost_N : N;
-fun outpouring_N : N;
-fun output_N : N;
-fun outrage_N : N;
-fun outrage_V2 : V2;
-fun outrageous_A : A;
-fun outrageously_Adv : Adv;
-fun outrange_V2 : V2;
-fun outrank_V2 : V2;
-fun outride_V2 : V2;
-fun outrider_N : N;
-fun outrigged_A : A;
-fun outrigger_N : N;
-fun outright_A : A;
-fun outright_Adv : Adv;
-fun outrival_V2 : V2;
-fun outrun_V2 : V2;
-fun outre_A : A;
-fun outsail_V2 : V2;
-fun outset_N : N;
-fun outshine_V2 : V2;
-fun outside_A : A;
-fun outside_Adv : Adv;
-fun outside_N : N;
-fun outsider_N : N;
-fun outsize_A : A;
-fun outsmart_V2 : V2;
-fun outspan_V : V;
-fun outspan_V2 : V2;
-fun outspoken_A : A;
-fun outspokenly_Adv : Adv;
-fun outspokenness_N : N;
-fun outspread_A : A;
-fun outstanding_A : A;
-fun outstandingly_Adv : Adv;
-fun outstation_N : N;
-fun outstay_V2 : V2;
-fun outstretched_A : A;
-fun outstrip_V2 : V2;
-fun outvie_V2 : V2;
-fun outvote_V2 : V2;
-fun outward_A : A;
-fun outward_Adv : Adv;
-fun outwardly_Adv : Adv;
-fun outwards_Adv : Adv;
-fun outwear_V2 : V2;
-fun outweigh_V2 : V2;
-fun outwit_V2 : V2;
-fun outwork_N : N;
-fun ouzel_N : N;
-fun ouzo_N : N;
-fun oval_A : A;
-fun oval_N : N;
-fun ovary_N : N;
-fun ovation_N : N;
-fun oven_N : N;
-fun ovenware_N : N;
-fun over_Adv : Adv;
-fun over_N : N;
-fun over_abundance_N : N;
-fun over_ripe_A : A;
-fun overabundant_A : A;
-fun overact_V : V;
-fun overact_V2 : V2;
-fun overactive_A : A;
-fun overall_A : A;
-fun overall_N : N;
-fun overambitious_A : A;
-fun overanxiety_N : N;
-fun overanxious_A : A;
-fun overarch_V : V;
-fun overarch_V2 : V2;
-fun overarm_A : A;
-fun overarm_Adv : Adv;
-fun overawe_V2 : V2;
-fun overbalance_V : V;
-fun overbalance_V2 : V2;
-fun overbear_V2 : V2;
-fun overbearing_A : A;
-fun overbearingly_Adv : Adv;
-fun overbid_N : N;
-fun overbid_V : V;
-fun overbid_V2 : V2;
-fun overblown_A : A;
-fun overboard_Adv : Adv;
-fun overbold_A : A;
-fun overburden_N : N;
-fun overburden_V2 : V2;
-fun overbusy_A : A;
-fun overcall_V : V;
-fun overcall_V2 : V2;
-fun overcapitalization_N : N;
-fun overcapitalize_V2 : V2;
-fun overcareful_A : A;
-fun overcast_A : A;
-fun overcast_N : N;
-fun overcautious_A : A;
-fun overcharge_N : N;
-fun overcharge_V : V;
-fun overcharge_V2 : V2;
-fun overclothe_V2 : V2;
-fun overcloud_V : V;
-fun overcloud_V2 : V2;
-fun overcoat_N : N;
-fun overcome_V2 : V2;
-fun overconfidence_N : N;
-fun overconfident_A : A;
-fun overcook_V2 : V2;
-fun overcredulity_N : N;
-fun overcredulous_A : A;
-fun overcritical_A : A;
-fun overcrop_V2 : V2;
-fun overcrowd_V2 : V2;
-fun overcurious_A : A;
-fun overdelicate_A : A;
-fun overdo_V2 : V2;
-fun overdraft_N : N;
-fun overdraw_V : V;
-fun overdraw_V2 : V2;
-fun overdress_V : V;
-fun overdress_V2 : V2;
-fun overdrive_N : N;
-fun overdue_A : A;
-fun overeager_A : A;
-fun overeat_V : V;
-fun overemotional_A : A;
-fun overemphasis_N : N;
-fun overemphasize_V2 : V2;
-fun overenthusiastic_A : A;
-fun overestimate_V2 : V2;
-fun overexcited_A : A;
-fun overexert_V2 : V2;
-fun overexertion_N : N;
-fun overexpose_V2 : V2;
-fun overexposure_N : N;
-fun overfamiliar_A : A;
-fun overfeed_V : V;
-fun overfeed_V2 : V2;
-fun overfeeding_N : N;
-fun overflow_N : N;
-fun overflow_V : V;
-fun overflow_V2 : V2;
-fun overfly_V2 : V2;
-fun overfond_A : A;
-fun overfull_A : A;
-fun overgenerous_A : A;
-fun overgreedy_A : A;
-fun overgrown_A : A;
-fun overgrowth_N : N;
-fun overhand_A : A;
-fun overhang_N : N;
-fun overhang_V : V;
-fun overhang_V2 : V2;
-fun overhasty_A : A;
-fun overhaul_N : N;
-fun overhaul_V2 : V2;
-fun overhead_A : A;
-fun overhead_Adv : Adv;
-fun overhear_V2 : V2;
-fun overheat_V2 : V2;
-fun overindulge_V : V;
-fun overindulge_V2 : V2;
-fun overindulgence_N : N;
-fun overjealous_A : A;
-fun overjoyed_A : A;
-fun overkill_N : N;
-fun overladen_A : A;
-fun overland_A : A;
-fun overlap_N : N;
-fun overlap_V : V;
-fun overlap_V2 : V2;
-fun overlarge_A : A;
-fun overlay_N : N;
-fun overlay_V2 : V2;
-fun overleaf_Adv : Adv;
-fun overleap_V2 : V2;
-fun overlie_V : V;
-fun overload_V2 : V2;
-fun overlook_V2 : V2;
-fun overlord_N : N;
-fun overly_Adv : Adv;
-fun overmantel_N : N;
-fun overmaster_V2 : V2;
-fun overmodest_A : A;
-fun overmuch_A : A;
-fun overmuch_Adv : Adv;
-fun overnervous_A : A;
-fun overnight_A : A;
-fun overnight_Adv : Adv;
-fun overpass_N : N;
-fun overpay_V2 : V2;
-fun overpayment_N : N;
-fun overplay_V2 : V2;
-fun overplus_N : N;
-fun overpopulation_N : N;
-fun overpower_V2 : V2;
-fun overpowering_A : A;
-fun overpraise_V2 : V2;
-fun overprint_N : N;
-fun overprint_V2 : V2;
-fun overproduce_V : V;
-fun overproduce_V2 : V2;
-fun overproduction_N : N;
-fun overproud_A : A;
-fun overrate_V2 : V2;
-fun overreach_V2 : V2;
-fun override_V2 : V2;
-fun overripe_A : A;
-fun overrule_V2 : V2;
-fun overrun_V2 : V2;
-fun oversea_A : A;
-fun oversea_Adv : Adv;
-fun overseas_A : A;
-fun overseas_Adv : Adv;
-fun oversee_V2 : V2;
-fun overseer_N : N;
-fun oversensitive_A : A;
-fun overserious_A : A;
-fun oversew_V2 : V2;
-fun oversewn_A : A;
-fun oversexed_A : A;
-fun overshadow_V2 : V2;
-fun overshoe_N : N;
-fun overshoot_V2 : V2;
-fun overshot_A : A;
-fun overside_Adv : Adv;
-fun oversight_N : N;
-fun oversimplify_V2 : V2;
-fun oversize_A : A;
-fun overskirt_N : N;
-fun oversleep_V : V;
-fun overspend_V : V;
-fun overspend_V2 : V2;
-fun overspill_N : N;
-fun overstate_V2 : V2;
-fun overstatement_N : N;
-fun overstay_V2 : V2;
-fun overstep_V2 : V2;
-fun overstock_V2 : V2;
-fun overstrain_N : N;
-fun overstrain_V2 : V2;
-fun overstrung_A : A;
-fun overstuffed_A : A;
-fun oversubscribed_A : A;
-fun oversuspicious_A : A;
-fun overt_A : A;
-fun overtake_V2 : V2;
-fun overtax_V2 : V2;
-fun overthrow_N : N;
-fun overthrow_V2 : V2;
-fun overtime_Adv : Adv;
-fun overtime_N : N;
-fun overtly_Adv : Adv;
-fun overtolerance_N : N;
-fun overtone_N : N;
-fun overtop_V2 : V2;
-fun overtrump_V2 : V2;
-fun overture_N : N;
-fun overturn_V : V;
-fun overturn_V2 : V2;
-fun overvalue_V2 : V2;
-fun overweening_A : A;
-fun overweight_A : A;
-fun overweight_N : N;
-fun overweighted_A : A;
-fun overwhelm_V2 : V2;
-fun overwhelmingly_Adv : Adv;
-fun overwork_N : N;
-fun overwork_V : V;
-fun overwork_V2 : V2;
-fun overwrought_A : A;
-fun overzealous_A : A;
-fun oviduct_N : N;
-fun oviedo_PN : PN;
-fun oviparous_A : A;
-fun ovoid_A : A;
-fun ovoid_N : N;
-fun ovum_N : N;
-fun owe_V : V;
-fun owe_V2 : V2;
-fun owing_A : A;
-fun owl_N : N;
-fun owlet_N : N;
-fun owlish_A : A;
-fun owlishly_Adv : Adv;
-fun own_A : A;
-fun own_V : V;
-fun own_V2 : V2;
-fun owner_N : N;
-fun owner_driven_A : A;
-fun owner_driver_N : N;
-fun owner_occupied_A : A;
-fun owner_occupier_N : N;
-fun ownerless_A : A;
-fun ownership_N : N;
-fun ox_N : N;
-fun oxbridge_PN : PN;
-fun oxeye_N : N;
-fun oxeyed_A : A;
-fun oxford_PN : PN;
-fun oxfordshire_PN : PN;
-fun oxidation_N : N;
-fun oxide_N : N;
-fun oxidization_N : N;
-fun oxidize_V : V;
-fun oxidize_V2 : V2;
-fun oxon_PN : PN;
-fun oxonian_A : A;
-fun oxonian_N : N;
-fun oxtail_N : N;
-fun oxted_PN : PN;
-fun oxyacetylene_A : A;
-fun oxyacetylene_N : N;
-fun oxygen_N : N;
-fun oxygenate_V2 : V2;
-fun oxygenize_V2 : V2;
-fun oyster_N : N;
-fun oyster_bank_N : N;
-fun oyster_bar_N : N;
-fun oyster_bed_N : N;
-fun oyster_catcher_N : N;
-fun oz_N : N;
-fun ozone_N : N;
-fun ozzie_PN : PN;
-fun pa_N : N;
-fun pabulum_N : N;
-fun pace_N : N;
-fun pace_V : V;
-fun pace_V2 : V2;
-fun pacemaker_N : N;
-fun pacesetter_N : N;
-fun pachyderm_N : N;
-fun pacific_A : A;
-fun pacific_PN : PN;
-fun pacifically_Adv : Adv;
-fun pacification_N : N;
-fun pacifism_N : N;
-fun pacifist_N : N;
-fun pacify_V2 : V2;
-fun pack_N : N;
-fun pack_V : V;
-fun pack_V2 : V2;
-fun pack_animal_N : N;
-fun pack_saddle_N : N;
-fun pack_thread_N : N;
-fun package_N : N;
-fun package_V2 : V2;
-fun packer_N : N;
-fun packet_N : N;
-fun packet_boat_N : N;
-fun packhorse_N : N;
-fun packing_N : N;
-fun packing_case_N : N;
-fun packing_needle_N : N;
-fun pact_N : N;
-fun pad_N : N;
-fun pad_V : V;
-fun pad_V2 : V2;
-fun padding_N : N;
-fun paddle_N : N;
-fun paddle_V : V;
-fun paddle_V2 : V2;
-fun paddle_box_N : N;
-fun paddle_steamer_N : N;
-fun paddle_wheel_N : N;
-fun paddock_N : N;
-fun paddy_N : N;
-fun paddy_PN : PN;
-fun paddy_field_N : N;
-fun paddy_wagon_N : N;
-fun padlock_N : N;
-fun padlock_V2 : V2;
-fun padova_PN : PN;
-fun padre_N : N;
-fun padua_PN : PN;
-fun paean_N : N;
-fun paederasty_N : N;
-fun paediatrics_N : N;
-fun paeony_N : N;
-fun pagan_A : A;
-fun pagan_N : N;
-fun paganism_N : N;
-fun page_N : N;
-fun page_V2 : V2;
-fun pageant_N : N;
-fun pageantry_N : N;
-fun pagination_N : N;
-fun pagoda_N : N;
-fun pail_N : N;
-fun pailful_N : N;
-fun paillasse_N : N;
-fun pailliasse_N : N;
-fun pain_N : N;
-fun pain_V2 : V2;
-fun pained_A : A;
-fun painful_A : A;
-fun painfully_Adv : Adv;
-fun painkiller_N : N;
-fun painless_A : A;
-fun painlessly_Adv : Adv;
-fun painstaking_A : A;
-fun painstakingly_Adv : Adv;
-fun paint_N : N;
-fun paint_V : V;
-fun paint_V2 : V2;
-fun paintbox_N : N;
-fun paintbrush_N : N;
-fun painter_N : N;
-fun painting_N : N;
-fun pair_N : N;
-fun pair_V : V;
-fun pair_V2 : V2;
-fun paisley_N : N;
-fun paisley_PN : PN;
-fun pakistan_PN : PN;
-fun pakistani_A : A;
-fun pakistani_N : N;
-fun pal_N : N;
-fun pal_V : V;
-fun palace_N : N;
-fun paladin_N : N;
-fun palaeolithic_A : A;
-fun palaeontologist_N : N;
-fun palaeontology_N : N;
-fun palankeen_N : N;
-fun palanquin_N : N;
-fun palatable_A : A;
-fun palatably_Adv : Adv;
-fun palatal_A : A;
-fun palatal_N : N;
-fun palate_N : N;
-fun palatial_A : A;
-fun palatinate_N : N;
-fun palaver_N : N;
-fun palaver_V : V;
-fun pale_A : A;
-fun pale_N : N;
-fun pale_V : V;
-fun paleface_N : N;
-fun palely_Adv : Adv;
-fun palembang_PN : PN;
-fun paleness_N : N;
-fun paleolithic_A : A;
-fun paleontologist_N : N;
-fun paleontology_N : N;
-fun palermo_PN : PN;
-fun palestine_PN : PN;
-fun palestinian_A : A;
-fun palestinian_N : N;
-fun palette_N : N;
-fun palette_knife_N : N;
-fun palfrey_N : N;
-fun palimpsest_N : N;
-fun palindrome_N : N;
-fun paling_N : N;
-fun palisade_N : N;
-fun palisade_V2 : V2;
-fun palish_A : A;
-fun pall_N : N;
-fun pall_V : V;
-fun pallbearer_N : N;
-fun pallet_N : N;
-fun palliasse_N : N;
-fun palliate_V2 : V2;
-fun palliation_N : N;
-fun palliative_A : A;
-fun palliative_N : N;
-fun pallid_A : A;
-fun pallidly_Adv : Adv;
-fun pallidness_N : N;
-fun pallor_N : N;
-fun pally_A : A;
-fun palm_N : N;
-fun palm_V2 : V2;
-fun palm_oil_N : N;
-fun palmer_N : N;
-fun palmetto_N : N;
-fun palmist_N : N;
-fun palmistry_N : N;
-fun palmy_A : A;
-fun palpable_A : A;
-fun palpably_Adv : Adv;
-fun palpitate_V : V;
-fun palpitation_N : N;
-fun palsy_N : N;
-fun palsy_V2 : V2;
-fun palter_V : V;
-fun paltry_A : A;
-fun pam_PN : PN;
-fun pamela_PN : PN;
-fun pampas_grass_N : N;
-fun pamper_V2 : V2;
-fun pamphlet_N : N;
-fun pamphleteer_N : N;
-fun pamplona_PN : PN;
-fun pan_N : N;
-fun pan_V : V;
-fun pan_V2 : V2;
-fun panacea_N : N;
-fun panache_N : N;
-fun panama_N : N;
-fun panama_PN : PN;
-fun panamanian_A : A;
-fun panamanian_N : N;
-fun panatella_N : N;
-fun pancake_N : N;
-fun panchromatic_A : A;
-fun pancreas_N : N;
-fun pancreatic_A : A;
-fun panda_N : N;
-fun pandemic_A : A;
-fun pandemic_N : N;
-fun pandemonium_N : N;
-fun pander_N : N;
-fun pander_V : V;
-fun pane_N : N;
-fun panegyric_N : N;
-fun panel_N : N;
-fun panel_V2 : V2;
-fun panelling_N : N;
-fun pang_N : N;
-fun panga_N : N;
-fun panhandle_N : N;
-fun panhandle_V : V;
-fun panic_N : N;
-fun panic_V : V;
-fun panic_stricken_A : A;
-fun panicky_A : A;
-fun panjandrum_N : N;
-fun pannier_N : N;
-fun pannikin_N : N;
-fun panoplied_A : A;
-fun panoply_N : N;
-fun panoptic_A : A;
-fun panorama_N : N;
-fun panoramic_A : A;
-fun pansy_N : N;
-fun pant_N : N;
-fun pant_V : V;
-fun pant_V2 : V2;
-fun pantaloon_N : N;
-fun pantechnicon_N : N;
-fun pantheism_N : N;
-fun pantheist_N : N;
-fun pantheistic_A : A;
-fun pantheon_N : N;
-fun panther_N : N;
-fun pantile_N : N;
-fun pantingly_Adv : Adv;
-fun panto_N : N;
-fun pantograph_N : N;
-fun pantomime_N : N;
-fun pantry_N : N;
-fun pantryman_N : N;
-fun panty_hose_N : N;
-fun panzer_A : A;
-fun paotow_PN : PN;
-fun pap_N : N;
-fun papa_N : N;
-fun papacy_N : N;
-fun papal_A : A;
-fun papaw_N : N;
-fun papaya_N : N;
-fun paper_N : N;
-fun paper_V2 : V2;
-fun paper_chase_N : N;
-fun paperback_N : N;
-fun paperbacked_A : A;
-fun paperclip_N : N;
-fun paperhanger_N : N;
-fun paperknife_N : N;
-fun paperless_A : A;
-fun papermill_N : N;
-fun paperweight_N : N;
-fun paperwork_N : N;
-fun papier_mache_N : N;
-fun papist_A : A;
-fun papist_N : N;
-fun papoose_N : N;
-fun paprika_N : N;
-fun papua_PN : PN;
-fun papuan_A : A;
-fun papuan_N : N;
-fun papyrus_N : N;
-fun par_N : N;
-fun par_excellence_Adv : Adv;
-fun para_N : N;
-fun parable_N : N;
-fun parabola_N : N;
-fun parabolic_A : A;
-fun parabolical_A : A;
-fun parachute_N : N;
-fun parachute_V : V;
-fun parachute_V2 : V2;
-fun parachutist_N : N;
-fun parade_N : N;
-fun parade_V : V;
-fun parade_V2 : V2;
-fun parade_ground_N : N;
-fun paradigm_N : N;
-fun paradise_N : N;
-fun paradisiac_A : A;
-fun paradisiacal_A : A;
-fun paradox_N : N;
-fun paradoxical_A : A;
-fun paradoxically_Adv : Adv;
-fun paraffin_N : N;
-fun paragon_N : N;
-fun paragraph_N : N;
-fun paragraph_V2 : V2;
-fun paraguay_PN : PN;
-fun paraguayan_A : A;
-fun paraguayan_N : N;
-fun parakeet_N : N;
-fun parallel_A : A;
-fun parallel_N : N;
-fun parallel_V2 : V2;
-fun parallelism_N : N;
-fun parallelogram_N : N;
-fun paralyse_V2 : V2;
-fun paralysis_N : N;
-fun paralytic_A : A;
-fun paralytic_N : N;
-fun paralyze_V2 : V2;
-fun parameter_N : N;
-fun paramilitary_A : A;
-fun paramount_A : A;
-fun paramountcy_N : N;
-fun paramour_N : N;
-fun paranoia_N : N;
-fun paranoiac_N : N;
-fun paranoid_A : A;
-fun paranoid_N : N;
-fun parapet_N : N;
-fun paraphernalia_N : N;
-fun paraphrase_V2 : V2;
-fun paraplegia_N : N;
-fun paraplegic_A : A;
-fun paraplegic_N : N;
-fun parasite_N : N;
-fun parasitic_A : A;
-fun parasitical_A : A;
-fun parasol_N : N;
-fun paratrooper_N : N;
-fun paratyphoid_N : N;
-fun parboil_V2 : V2;
-fun parcel_N : N;
-fun parcel_V2 : V2;
-fun parch_V2 : V2;
-fun parchment_N : N;
-fun pardon_N : N;
-fun pardon_V2 : V2;
-fun pardonable_A : A;
-fun pardonably_Adv : Adv;
-fun pardoner_N : N;
-fun pare_V2 : V2;
-fun paregoric_N : N;
-fun parent_N : N;
-fun parentage_N : N;
-fun parental_A : A;
-fun parentally_Adv : Adv;
-fun parenthesis_N : N;
-fun parenthetic_A : A;
-fun parenthetical_A : A;
-fun parenthetically_Adv : Adv;
-fun pari_mutuel_N : N;
-fun pari_passu_Adv : Adv;
-fun pariah_N : N;
-fun pariah_dog_N : N;
-fun paris_PN : PN;
-fun parish_N : N;
-fun parishioner_N : N;
-fun parisian_A : A;
-fun parisian_N : N;
-fun parity_N : N;
-fun park_N : N;
-fun park_V : V;
-fun park_V2 : V2;
-fun parka_N : N;
-fun parking_N : N;
-fun parkinson's_A : A;
-fun parky_A : A;
-fun parlance_N : N;
-fun parley_N : N;
-fun parley_V : V;
-fun parliament_N : N;
-fun parliamentarian_N : N;
-fun parliamentary_A : A;
-fun parlour_N : N;
-fun parlour_car_N : N;
-fun parlous_A : A;
-fun parma_PN : PN;
-fun parmesan_N : N;
-fun parochial_A : A;
-fun parochialism_N : N;
-fun parochially_Adv : Adv;
-fun parodist_N : N;
-fun parody_N : N;
-fun parody_V2 : V2;
-fun parole_N : N;
-fun parole_V2 : V2;
-fun paroquet_N : N;
-fun paroxysm_N : N;
-fun parquet_N : N;
-fun parr_N : N;
-fun parricide_N : N;
-fun parrot_N : N;
-fun parry_N : N;
-fun parry_V2 : V2;
-fun parse_V2 : V2;
-fun parsee_N : N;
-fun parsimonious_A : A;
-fun parsimony_N : N;
-fun parsley_N : N;
-fun parsnip_N : N;
-fun parson_N : N;
-fun parsonage_N : N;
-fun part_Adv : Adv;
-fun part_N : N;
-fun part_V : V;
-fun part_V2 : V2;
-fun part_owner_N : N;
-fun part_singing_N : N;
-fun part_song_N : N;
-fun part_time_A : A;
-fun part_time_Adv : Adv;
-fun part_timer_N : N;
-fun partake_V : V;
-fun partake_V2 : V2;
-fun parterre_N : N;
-fun parthenogenesis_N : N;
-fun parthian_A : A;
-fun parti_coloured_A : A;
-fun partial_A : A;
-fun partiality_N : N;
-fun partially_Adv : Adv;
-fun participant_N : N;
-fun participate_V : V;
-fun participation_N : N;
-fun participial_A : A;
-fun participle_N : N;
-fun particle_N : N;
-fun particular_A : A;
-fun particular_N : N;
-fun particularity_N : N;
-fun particularize_V : V;
-fun particularize_V2 : V2;
-fun particularly_Adv : Adv;
-fun parting_N : N;
-fun partisan_A : A;
-fun partisan_N : N;
-fun partisanship_N : N;
-fun partition_N : N;
-fun partition_V2 : V2;
-fun partitive_A : A;
-fun partitive_N : N;
-fun partly_Adv : Adv;
-fun partner_N : N;
-fun partner_V2 : V2;
-fun partnership_N : N;
-fun partridge_N : N;
-fun parturition_N : N;
-fun party_N : N;
-fun party_spirit_N : N;
-fun party_spirited_A : A;
-fun party_wall_N : N;
-fun parvenu_N : N;
-fun paschal_A : A;
-fun pasha_N : N;
-fun pashto_N : N;
-fun pass_N : N;
-fun pass_V : V;
-fun pass_V2 : V2;
-fun passable_A : A;
-fun passably_Adv : Adv;
-fun passage_N : N;
-fun passageway_N : N;
-fun passbook_N : N;
-fun passenger_N : N;
-fun passepartout_N : N;
-fun passer_by_N : N;
-fun passim_Adv : Adv;
-fun passing_A : A;
-fun passing_Adv : Adv;
-fun passing_N : N;
-fun passing_out_A : A;
-fun passion_N : N;
-fun passion_flower_N : N;
-fun passionate_A : A;
-fun passionately_Adv : Adv;
-fun passionless_A : A;
-fun passive_A : A;
-fun passive_N : N;
-fun passively_Adv : Adv;
-fun passiveness_N : N;
-fun passivity_N : N;
-fun passkey_N : N;
-fun passover_N : N;
-fun passport_N : N;
-fun password_N : N;
-fun passe_A : A;
-fun passee_A : A;
-fun past_A : A;
-fun past_Adv : Adv;
-fun past_N : N;
-fun pasta_N : N;
-fun paste_N : N;
-fun paste_V2 : V2;
-fun paste_up_N : N;
-fun pasteboard_N : N;
-fun pastel_N : N;
-fun pastern_N : N;
-fun pasteurization_N : N;
-fun pasteurize_V2 : V2;
-fun pastiche_N : N;
-fun pastille_N : N;
-fun pastime_N : N;
-fun pasting_N : N;
-fun pastor_N : N;
-fun pastoral_A : A;
-fun pastoral_N : N;
-fun pastorate_N : N;
-fun pastry_N : N;
-fun pastry_cook_N : N;
-fun pasturage_N : N;
-fun pasture_N : N;
-fun pasture_V : V;
-fun pasture_V2 : V2;
-fun pasty_A : A;
-fun pasty_N : N;
-fun pat_Adv : Adv;
-fun pat_N : N;
-fun pat_PN : PN;
-fun pat_V : V;
-fun pat_V2 : V2;
-fun patch_N : N;
-fun patch_V2 : V2;
-fun patch_pocket_N : N;
-fun patchily_Adv : Adv;
-fun patchiness_N : N;
-fun patchouli_N : N;
-fun patchwork_N : N;
-fun patchy_A : A;
-fun pate_1_N : N;
-fun pate_de_foie_gras_N : N;
-fun patella_N : N;
-fun patent_A : A;
-fun patent_N : N;
-fun patent_V2 : V2;
-fun patentee_N : N;
-fun patently_Adv : Adv;
-fun paterfamilias_N : N;
-fun paternal_A : A;
-fun paternalism_N : N;
-fun paternally_Adv : Adv;
-fun paternity_N : N;
-fun paternoster_N : N;
-fun path_N : N;
-fun path_finder_N : N;
-fun pathetic_A : A;
-fun pathetically_Adv : Adv;
-fun pathless_A : A;
-fun pathogen_N : N;
-fun pathological_A : A;
-fun pathologically_Adv : Adv;
-fun pathologist_N : N;
-fun pathology_N : N;
-fun pathos_N : N;
-fun pathway_N : N;
-fun patience_N : N;
-fun patience_PN : PN;
-fun patient_A : A;
-fun patient_N : N;
-fun patiently_Adv : Adv;
-fun patina_N : N;
-fun patio_N : N;
-fun patisserie_N : N;
-fun patois_N : N;
-fun patrai_PN : PN;
-fun patrial_N : N;
-fun patriarch_N : N;
-fun patriarchal_A : A;
-fun patriarchate_N : N;
-fun patriarchy_N : N;
-fun patricia_PN : PN;
-fun patrician_A : A;
-fun patrician_N : N;
-fun patricide_N : N;
-fun patrick_PN : PN;
-fun patrimonial_A : A;
-fun patrimony_N : N;
-fun patriot_N : N;
-fun patriotic_A : A;
-fun patriotically_Adv : Adv;
-fun patriotism_N : N;
-fun patrol_N : N;
-fun patrol_V : V;
-fun patrol_V2 : V2;
-fun patrolman_N : N;
-fun patron_N : N;
-fun patronage_N : N;
-fun patroness_N : N;
-fun patronize_V2 : V2;
-fun patronizing_A : A;
-fun patronizingly_Adv : Adv;
-fun patronymic_A : A;
-fun patronymic_N : N;
-fun patten_N : N;
-fun patter_N : N;
-fun patter_V : V;
-fun patter_V2 : V2;
-fun pattern_N : N;
-fun pattern_V2 : V2;
-fun patty_N : N;
-fun patty_PN : PN;
-fun patty_pan_N : N;
-fun paucity_N : N;
-fun paul_PN : PN;
-fun paula_PN : PN;
-fun pauline_PN : PN;
-fun paunch_N : N;
-fun paunchiness_N : N;
-fun paunchy_A : A;
-fun pauper_N : N;
-fun pauperism_N : N;
-fun pauperization_N : N;
-fun pauperize_V2 : V2;
-fun pause_N : N;
-fun pause_V : V;
-fun pave_V2 : V2;
-fun pavement_N : N;
-fun pavilion_N : N;
-fun paving_stone_N : N;
-fun paw_N : N;
-fun paw_V2 : V2;
-fun pawkily_Adv : Adv;
-fun pawky_A : A;
-fun pawl_N : N;
-fun pawn_N : N;
-fun pawn_V2 : V2;
-fun pawn_ticket_N : N;
-fun pawnbroker_N : N;
-fun pawnshop_N : N;
-fun pawpaw_N : N;
-fun pax_N : N;
-fun pax_romana_N : N;
-fun pay_N : N;
-fun pay_V : V;
-fun pay_V2 : V2;
-fun pay_as_you_earn_N : N;
-fun pay_claim_N : N;
-fun pay_packet_N : N;
-fun pay_station_N : N;
-fun payable_A : A;
-fun payday_N : N;
-fun paydirt_N : N;
-fun paye_PN : PN;
-fun payee_N : N;
-fun payer_N : N;
-fun payload_N : N;
-fun paymaster_N : N;
-fun payment_N : N;
-fun paynim_N : N;
-fun payoff_N : N;
-fun payphone_N : N;
-fun payroll_N : N;
-fun paysheet_N : N;
-fun payslip_N : N;
-fun pc_PN : PN;
-fun pdsa_N : N;
-fun pe_N : N;
-fun pea_N : N;
-fun pea_chick_N : N;
-fun pea_flour_N : N;
-fun pea_green_A : A;
-fun pea_green_N : N;
-fun pea_jacket_N : N;
-fun pea_soup_N : N;
-fun peace_N : N;
-fun peace_offering_N : N;
-fun peaceable_A : A;
-fun peaceably_Adv : Adv;
-fun peaceful_A : A;
-fun peacefully_Adv : Adv;
-fun peacefulness_N : N;
-fun peacehaven_PN : PN;
-fun peacemaker_N : N;
-fun peacetime_N : N;
-fun peach_N : N;
-fun peach_V : V;
-fun peach_V2 : V2;
-fun peacock_N : N;
-fun peacock_blue_A : A;
-fun peacock_blue_N : N;
-fun peafowl_N : N;
-fun peahen_N : N;
-fun peak_N : N;
-fun peak_V : V;
-fun peaked_A : A;
-fun peaky_A : A;
-fun peal_N : N;
-fun peal_V : V;
-fun peal_V2 : V2;
-fun peanut_N : N;
-fun pear_N : N;
-fun pearl_N : N;
-fun pearl_PN : PN;
-fun pearl_V : V;
-fun pearl_barley_N : N;
-fun pearl_diver_N : N;
-fun pearl_fishery_N : N;
-fun pearl_oyster_N : N;
-fun pearl_sago_N : N;
-fun pearly_A : A;
-fun pearmain_N : N;
-fun peasant_N : N;
-fun peasantry_N : N;
-fun pease_N : N;
-fun pease_pudding_N : N;
-fun peashooter_N : N;
-fun peasouper_N : N;
-fun peat_N : N;
-fun peaty_A : A;
-fun pebble_N : N;
-fun pebbly_A : A;
-fun pecan_N : N;
-fun peccable_A : A;
-fun peccadillo_N : N;
-fun peccary_N : N;
-fun peck_N : N;
-fun peck_V : V;
-fun peck_V2 : V2;
-fun pecker_N : N;
-fun peckish_A : A;
-fun pectic_A : A;
-fun pectin_N : N;
-fun pectoral_A : A;
-fun peculate_V : V;
-fun peculate_V2 : V2;
-fun peculation_N : N;
-fun peculiar_A : A;
-fun peculiarity_N : N;
-fun peculiarly_Adv : Adv;
-fun pecuniary_A : A;
-fun pedagogic_A : A;
-fun pedagogical_A : A;
-fun pedagogue_N : N;
-fun pedagogy_N : N;
-fun pedal_A : A;
-fun pedal_N : N;
-fun pedal_V : V;
-fun pedal_V2 : V2;
-fun pedant_N : N;
-fun pedantic_A : A;
-fun pedantically_Adv : Adv;
-fun pedantry_N : N;
-fun peddle_V : V;
-fun peddle_V2 : V2;
-fun peddler_N : N;
-fun peddling_A : A;
-fun pederast_N : N;
-fun pederasty_N : N;
-fun pedestal_N : N;
-fun pedestrian_A : A;
-fun pedestrian_N : N;
-fun pediatrician_N : N;
-fun pediatrics_N : N;
-fun pedicab_N : N;
-fun pedicure_N : N;
-fun pedigree_N : N;
-fun pediment_N : N;
-fun pedlar_N : N;
-fun pedometer_N : N;
-fun pee_N : N;
-fun pee_V : V;
-fun peebles_PN : PN;
-fun peek_N : N;
-fun peek_V : V;
-fun peek_a_boo_N : N;
-fun peel_N : N;
-fun peel_V : V;
-fun peel_V2 : V2;
-fun peeler_N : N;
-fun peep_N : N;
-fun peep_V : V;
-fun peeper_N : N;
-fun peephole_N : N;
-fun peepshow_N : N;
-fun peepul_N : N;
-fun peer_N : N;
-fun peer_V : V;
-fun peerage_N : N;
-fun peeress_N : N;
-fun peerless_A : A;
-fun peeve_V2 : V2;
-fun peeved_A : A;
-fun peevish_A : A;
-fun peevishly_Adv : Adv;
-fun peevishness_N : N;
-fun peewit_N : N;
-fun peg_N : N;
-fun peg_PN : PN;
-fun peg_V : V;
-fun peg_V2 : V2;
-fun peggy_PN : PN;
-fun peignoir_N : N;
-fun pejorative_A : A;
-fun pejoratively_Adv : Adv;
-fun peke_N : N;
-fun pekinese_N : N;
-fun peking_PN : PN;
-fun pekoe_N : N;
-fun pelf_N : N;
-fun pelican_N : N;
-fun pelisse_N : N;
-fun pell_mell_Adv : Adv;
-fun pellet_N : N;
-fun pellucid_A : A;
-fun pellucidly_Adv : Adv;
-fun pelmet_N : N;
-fun pelota_N : N;
-fun pelt_N : N;
-fun pelt_V : V;
-fun pelt_V2 : V2;
-fun pelton_PN : PN;
-fun pelvic_A : A;
-fun pelvis_N : N;
-fun pembroke_PN : PN;
-fun pemmican_N : N;
-fun pen_N : N;
-fun pen_V2 : V2;
-fun pen_and_ink_N : N;
-fun pen_friend_N : N;
-fun pen_name_N : N;
-fun pen_pusher_N : N;
-fun penal_A : A;
-fun penalization_N : N;
-fun penalize_V2 : V2;
-fun penally_Adv : Adv;
-fun penalty_N : N;
-fun penance_N : N;
-fun penarth_PN : PN;
-fun penchant_N : N;
-fun pencil_N : N;
-fun pencil_V2 : V2;
-fun pendant_N : N;
-fun pendent_A : A;
-fun pending_A : A;
-fun pendlebury_PN : PN;
-fun pendulous_A : A;
-fun pendulum_N : N;
-fun penelope_PN : PN;
-fun penetrability_N : N;
-fun penetrable_A : A;
-fun penetrate_V : V;
-fun penetrate_V2 : V2;
-fun penetrating_A : A;
-fun penetratingly_Adv : Adv;
-fun penetration_N : N;
-fun penetrative_A : A;
-fun penguin_N : N;
-fun penicillin_N : N;
-fun penicuik_PN : PN;
-fun peninsula_N : N;
-fun peninsular_A : A;
-fun penis_N : N;
-fun penitence_N : N;
-fun penitent_A : A;
-fun penitent_N : N;
-fun penitential_A : A;
-fun penitentially_Adv : Adv;
-fun penitentiary_A : A;
-fun penitentiary_N : N;
-fun penitently_Adv : Adv;
-fun penki_PN : PN;
-fun penknife_N : N;
-fun penmanship_N : N;
-fun penn'orth_N : N;
-fun pennant_N : N;
-fun penniless_A : A;
-fun pennon_N : N;
-fun pennsylvania_PN : PN;
-fun penny_N : N;
-fun penny_PN : PN;
-fun pennyweight_N : N;
-fun pennyworth_N : N;
-fun penology_N : N;
-fun penrhyn_PN : PN;
-fun penrith_PN : PN;
-fun penryn_PN : PN;
-fun pension_N : N;
-fun pension_V2 : V2;
-fun pensionable_A : A;
-fun pensioner_N : N;
-fun pensive_A : A;
-fun pensively_Adv : Adv;
-fun pensiveness_N : N;
-fun penstock_N : N;
-fun pent_up_A : A;
-fun pentagon_N : N;
-fun pentagonal_A : A;
-fun pentameter_N : N;
-fun pentateuch_N : N;
-fun pentathlon_N : N;
-fun pentecost_N : N;
-fun pentecostal_A : A;
-fun penthouse_N : N;
-fun penultimate_A : A;
-fun penultimate_N : N;
-fun penumbra_N : N;
-fun penurious_A : A;
-fun penuriously_Adv : Adv;
-fun penuriousness_N : N;
-fun penury_N : N;
-fun penzance_PN : PN;
-fun peon_N : N;
-fun peonage_N : N;
-fun peony_N : N;
-fun people_N : N;
-fun people_V2 : V2;
-fun pep_N : N;
-fun pep_V2 : V2;
-fun pepper_N : N;
-fun pepper_V2 : V2;
-fun pepper_and_salt_N : N;
-fun pepper_mill_N : N;
-fun pepper_pot_N : N;
-fun peppercorn_N : N;
-fun peppermint_N : N;
-fun peppery_A : A;
-fun pepsin_N : N;
-fun peptic_A : A;
-fun peradventure_Adv : Adv;
-fun perambulate_V : V;
-fun perambulate_V2 : V2;
-fun perambulation_N : N;
-fun perambulator_N : N;
-fun perceivable_A : A;
-fun perceive_V2 : V2;
-fun perceiver_N : N;
-fun percent_N : N;
-fun percentage_N : N;
-fun perceptibility_N : N;
-fun perceptible_A : A;
-fun perceptibly_Adv : Adv;
-fun perception_N : N;
-fun perceptive_A : A;
-fun perceptively_Adv : Adv;
-fun perceptual_A : A;
-fun perceptually_Adv : Adv;
-fun perch_N : N;
-fun perch_V : V;
-fun perch_V2 : V2;
-fun perchance_Adv : Adv;
-fun percipient_A : A;
-fun percolate_V : V;
-fun percolate_V2 : V2;
-fun percolator_N : N;
-fun percussion_N : N;
-fun percussionist_N : N;
-fun percy_PN : PN;
-fun perdition_N : N;
-fun peregrination_N : N;
-fun peremptorily_Adv : Adv;
-fun peremptory_A : A;
-fun perennial_A : A;
-fun perennial_N : N;
-fun perennially_Adv : Adv;
-fun perfect_A : A;
-fun perfect_V2 : V2;
-fun perfectibility_N : N;
-fun perfectible_A : A;
-fun perfection_N : N;
-fun perfectionist_N : N;
-fun perfectly_Adv : Adv;
-fun perfervid_A : A;
-fun perfidious_A : A;
-fun perfidiously_Adv : Adv;
-fun perfidiousness_N : N;
-fun perfidy_N : N;
-fun perforate_V2 : V2;
-fun perforation_N : N;
-fun perforce_Adv : Adv;
-fun perform_V : V;
-fun perform_V2 : V2;
-fun performance_N : N;
-fun performer_N : N;
-fun perfume_N : N;
-fun perfume_V2 : V2;
-fun perfumer_N : N;
-fun perfunctorily_Adv : Adv;
-fun perfunctory_A : A;
-fun pergola_N : N;
-fun perhaps_Adv : Adv;
-fun peri_N : N;
-fun perigee_N : N;
-fun perihelion_N : N;
-fun peril_N : N;
-fun peril_V2 : V2;
-fun perilous_A : A;
-fun perilously_Adv : Adv;
-fun perimeter_N : N;
-fun period_N : N;
-fun periodic_A : A;
-fun periodical_A : A;
-fun periodical_N : N;
-fun periodically_Adv : Adv;
-fun peripatetic_A : A;
-fun peripheral_A : A;
-fun periphery_N : N;
-fun periphrasis_N : N;
-fun periphrastic_A : A;
-fun periscope_N : N;
-fun perish_V : V;
-fun perish_V2 : V2;
-fun perishable_A : A;
-fun perisher_N : N;
-fun peristyle_N : N;
-fun peritonitis_N : N;
-fun periwig_N : N;
-fun periwinkle_N : N;
-fun perjure_V2 : V2;
-fun perjurer_N : N;
-fun perjury_N : N;
-fun perk_N : N;
-fun perk_V : V;
-fun perk_V2 : V2;
-fun perkily_Adv : Adv;
-fun perkiness_N : N;
-fun perky_A : A;
-fun perm_N : N;
-fun perm_PN : PN;
-fun perm_V2 : V2;
-fun permafrost_N : N;
-fun permanence_N : N;
-fun permanency_N : N;
-fun permanent_A : A;
-fun permanently_Adv : Adv;
-fun permanganate_N : N;
-fun permeability_N : N;
-fun permeable_A : A;
-fun permeate_V : V;
-fun permeate_V2 : V2;
-fun permeation_N : N;
-fun permissible_A : A;
-fun permissibly_Adv : Adv;
-fun permission_N : N;
-fun permissive_A : A;
-fun permissiveness_N : N;
-fun permit_N : N;
-fun permit_V : V;
-fun permit_V2 : V2;
-fun permutation_N : N;
-fun permute_V2 : V2;
-fun pernicious_A : A;
-fun perniciously_Adv : Adv;
-fun perniciousness_N : N;
-fun pernickety_A : A;
-fun peroration_N : N;
-fun peroxide_N : N;
-fun perpendicular_A : A;
-fun perpendicular_N : N;
-fun perpendicularly_Adv : Adv;
-fun perpetrate_V2 : V2;
-fun perpetration_N : N;
-fun perpetrator_N : N;
-fun perpetual_A : A;
-fun perpetually_Adv : Adv;
-fun perpetuate_V2 : V2;
-fun perpetuation_N : N;
-fun perpetuity_N : N;
-fun perplex_V2 : V2;
-fun perplexed_A : A;
-fun perplexedly_Adv : Adv;
-fun perplexity_N : N;
-fun perquisite_N : N;
-fun perry_N : N;
-fun persecute_V2 : V2;
-fun persecution_N : N;
-fun persecutor_N : N;
-fun perseverance_N : N;
-fun persevere_V : V;
-fun persevering_A : A;
-fun perseveringly_Adv : Adv;
-fun pershore_PN : PN;
-fun persia_PN : PN;
-fun persian_A : A;
-fun persian_N : N;
-fun persiflage_N : N;
-fun persimmon_N : N;
-fun persist_V : V;
-fun persistence_N : N;
-fun persistent_A : A;
-fun persistently_Adv : Adv;
-fun person_N : N;
-fun persona_N : N;
-fun persona_grata_N : N;
-fun persona_non_grata_N : N;
-fun personable_A : A;
-fun personage_N : N;
-fun personal_A : A;
-fun personal_N : N;
-fun personality_N : N;
-fun personalize_V2 : V2;
-fun personally_Adv : Adv;
-fun personalty_N : N;
-fun personate_V2 : V2;
-fun personation_N : N;
-fun personification_N : N;
-fun personify_V2 : V2;
-fun perspective_N : N;
-fun perspex_N : N;
-fun perspicacious_A : A;
-fun perspicacity_N : N;
-fun perspicuity_N : N;
-fun perspicuous_A : A;
-fun perspicuously_Adv : Adv;
-fun perspicuousness_N : N;
-fun perspiration_N : N;
-fun perspire_V : V;
-fun persuadable_A : A;
-fun persuade_V2 : V2;
-fun persuasion_N : N;
-fun persuasive_A : A;
-fun persuasively_Adv : Adv;
-fun persuasiveness_N : N;
-fun pert_A : A;
-fun pertain_V : V;
-fun perth_PN : PN;
-fun pertinacious_A : A;
-fun pertinaciously_Adv : Adv;
-fun pertinacity_N : N;
-fun pertinence_N : N;
-fun pertinent_A : A;
-fun pertinently_Adv : Adv;
-fun pertly_Adv : Adv;
-fun pertness_N : N;
-fun perturb_V2 : V2;
-fun perturbation_N : N;
-fun peru_PN : PN;
-fun perugia_PN : PN;
-fun peruke_N : N;
-fun perusal_N : N;
-fun peruse_V2 : V2;
-fun peruvian_A : A;
-fun peruvian_N : N;
-fun pervade_V2 : V2;
-fun pervasion_N : N;
-fun pervasive_A : A;
-fun pervasively_Adv : Adv;
-fun pervasiveness_N : N;
-fun perverse_A : A;
-fun perversely_Adv : Adv;
-fun perverseness_N : N;
-fun perversion_N : N;
-fun perversity_N : N;
-fun pervert_N : N;
-fun pervert_V2 : V2;
-fun pescara_PN : PN;
-fun peseta_N : N;
-fun pesky_A : A;
-fun peso_N : N;
-fun pessary_N : N;
-fun pessimism_N : N;
-fun pessimist_N : N;
-fun pessimistic_A : A;
-fun pessimistically_Adv : Adv;
-fun pest_N : N;
-fun pester_V2 : V2;
-fun pesticide_N : N;
-fun pestiferous_A : A;
-fun pestilence_N : N;
-fun pestilent_A : A;
-fun pestilential_A : A;
-fun pestle_N : N;
-fun pestle_V2 : V2;
-fun pet_N : N;
-fun pet_V2 : V2;
-fun petal_N : N;
-fun petaled_A : A;
-fun petalled_A : A;
-fun petard_N : N;
-fun pete_PN : PN;
-fun peter_PN : PN;
-fun peter_V : V;
-fun peterborough_PN : PN;
-fun peterhead_PN : PN;
-fun peterlee_PN : PN;
-fun petersfield_PN : PN;
-fun petit_bourgeois_N : N;
-fun petite_A : A;
-fun petition_N : N;
-fun petition_V : V;
-fun petition_V2 : V2;
-fun petitioner_N : N;
-fun petrel_N : N;
-fun petrifaction_N : N;
-fun petrify_V : V;
-fun petrify_V2 : V2;
-fun petro_chemical_N : N;
-fun petrol_N : N;
-fun petroleum_N : N;
-fun petrology_N : N;
-fun petticoat_N : N;
-fun pettifogging_A : A;
-fun pettily_Adv : Adv;
-fun pettiness_N : N;
-fun pettish_A : A;
-fun pettishly_Adv : Adv;
-fun pettishness_N : N;
-fun petty_A : A;
-fun petulance_N : N;
-fun petulant_A : A;
-fun petulantly_Adv : Adv;
-fun petunia_N : N;
-fun pew_N : N;
-fun pew_opener_N : N;
-fun pewit_N : N;
-fun pewter_N : N;
-fun peyote_N : N;
-fun pfennig_N : N;
-fun phaeton_N : N;
-fun phagocyte_N : N;
-fun phalanx_N : N;
-fun phallic_A : A;
-fun phallus_N : N;
-fun phantasm_N : N;
-fun phantasmagoria_N : N;
-fun phantasmal_A : A;
-fun phantasy_N : N;
-fun phantom_N : N;
-fun pharaoh_N : N;
-fun pharisaic_A : A;
-fun pharisaical_A : A;
-fun pharisee_N : N;
-fun pharmaceutical_A : A;
-fun pharmacist_N : N;
-fun pharmacological_A : A;
-fun pharmacologically_Adv : Adv;
-fun pharmacologist_N : N;
-fun pharmacology_N : N;
-fun pharmacopoeia_N : N;
-fun pharmacy_N : N;
-fun pharos_N : N;
-fun pharyngitis_N : N;
-fun pharynx_N : N;
-fun phase_N : N;
-fun phase_V2 : V2;
-fun phd_N : N;
-fun pheasant_N : N;
-fun phenobarbitone_N : N;
-fun phenol_N : N;
-fun phenomenal_A : A;
-fun phenomenally_Adv : Adv;
-fun phenomenon_N : N;
-fun phial_N : N;
-fun phil_PN : PN;
-fun philadelphia_PN : PN;
-fun philander_V : V;
-fun philanderer_N : N;
-fun philanthropic_A : A;
-fun philanthropically_Adv : Adv;
-fun philanthropist_N : N;
-fun philanthropy_N : N;
-fun philatelic_A : A;
-fun philatelist_N : N;
-fun philately_N : N;
-fun philharmonic_A : A;
-fun philhellene_A : A;
-fun philhellene_N : N;
-fun philhellenic_A : A;
-fun philip_PN : PN;
-fun philippa_PN : PN;
-fun philippine_A : A;
-fun philippine_N : N;
-fun philippines_PN : PN;
-fun philistine_N : N;
-fun philistinism_N : N;
-fun philological_A : A;
-fun philologist_N : N;
-fun philology_N : N;
-fun philosopher_N : N;
-fun philosophic_A : A;
-fun philosophical_A : A;
-fun philosophically_Adv : Adv;
-fun philosophize_V : V;
-fun philosophy_N : N;
-fun philtre_N : N;
-fun phlebitis_N : N;
-fun phlegm_N : N;
-fun phlegmatic_A : A;
-fun phlegmatically_Adv : Adv;
-fun phlox_N : N;
-fun phnom_penh_PN : PN;
-fun phobia_N : N;
-fun phoebe_PN : PN;
-fun phoenix_N : N;
-fun phoenix_PN : PN;
-fun phone_N : N;
-fun phone_V : V;
-fun phone_V2 : V2;
-fun phone_in_N : N;
-fun phonebooth_N : N;
-fun phonecall_N : N;
-fun phoneme_N : N;
-fun phonemic_A : A;
-fun phonemics_N : N;
-fun phonetic_A : A;
-fun phonetically_Adv : Adv;
-fun phonetician_N : N;
-fun phonetics_N : N;
-fun phoney_A : A;
-fun phoney_N : N;
-fun phonic_A : A;
-fun phonics_N : N;
-fun phonograph_N : N;
-fun phonological_A : A;
-fun phonology_N : N;
-fun phony_A : A;
-fun phony_N : N;
-fun phosgene_N : N;
-fun phosphate_N : N;
-fun phosphorescence_N : N;
-fun phosphorescent_A : A;
-fun phosphoric_A : A;
-fun phosphorous_A : A;
-fun phosphorus_N : N;
-fun photo_N : N;
-fun photocopier_N : N;
-fun photocopy_N : N;
-fun photocopy_V2 : V2;
-fun photoelectric_A : A;
-fun photoflash_N : N;
-fun photogenic_A : A;
-fun photograph_N : N;
-fun photograph_V2 : V2;
-fun photographer_N : N;
-fun photographic_A : A;
-fun photographically_Adv : Adv;
-fun photography_N : N;
-fun photogravure_N : N;
-fun photolithography_N : N;
-fun photometer_N : N;
-fun photon_N : N;
-fun photosensitize_V2 : V2;
-fun photostat_N : N;
-fun photostat_V2 : V2;
-fun photosynthesis_N : N;
-fun phrasal_A : A;
-fun phrase_N : N;
-fun phrase_V2 : V2;
-fun phrase_book_N : N;
-fun phraseology_N : N;
-fun phrenetic_A : A;
-fun phrenologist_N : N;
-fun phrenology_N : N;
-fun phthisis_N : N;
-fun phut_Adv : Adv;
-fun phyllis_PN : PN;
-fun phylum_N : N;
-fun physic_N : N;
-fun physical_A : A;
-fun physically_Adv : Adv;
-fun physician_N : N;
-fun physicist_N : N;
-fun physics_N : N;
-fun physiognomy_N : N;
-fun physiological_A : A;
-fun physiologist_N : N;
-fun physiology_N : N;
-fun physiotherapist_N : N;
-fun physiotherapy_N : N;
-fun physique_N : N;
-fun pi_N : N;
-fun piacenza_PN : PN;
-fun pianissimo_A : A;
-fun pianissimo_Adv : Adv;
-fun pianist_N : N;
-fun piano_A : A;
-fun piano_Adv : Adv;
-fun piano_N : N;
-fun pianoforte_N : N;
-fun pianola_N : N;
-fun piastre_N : N;
-fun piazza_N : N;
-fun pibroch_N : N;
-fun pica_N : N;
-fun picador_N : N;
-fun picaresque_A : A;
-fun piccalilli_N : N;
-fun piccaninny_N : N;
-fun piccolo_N : N;
-fun pick_N : N;
-fun pick_V : V;
-fun pick_V2 : V2;
-fun pick_me_up_N : N;
-fun pick_up_N : N;
-fun pickaback_Adv : Adv;
-fun pickaxe_N : N;
-fun picker_N : N;
-fun pickerel_N : N;
-fun picket_N : N;
-fun picket_V : V;
-fun picket_V2 : V2;
-fun picking_N : N;
-fun pickle_N : N;
-fun pickle_V2 : V2;
-fun pickpocket_N : N;
-fun picnic_N : N;
-fun picnic_V : V;
-fun picnicker_N : N;
-fun picric_A : A;
-fun pictorial_A : A;
-fun pictorial_N : N;
-fun picture_N : N;
-fun picture_V2 : V2;
-fun picture_book_N : N;
-fun picture_card_N : N;
-fun picture_gallery_N : N;
-fun picturesque_A : A;
-fun picturesquely_Adv : Adv;
-fun picturesqueness_N : N;
-fun piddle_N : N;
-fun piddle_V : V;
-fun piddling_A : A;
-fun pidgin_N : N;
-fun pie_N : N;
-fun pie_crust_N : N;
-fun piebald_A : A;
-fun piece_N : N;
-fun piece_V2 : V2;
-fun piecemeal_A : A;
-fun piecemeal_Adv : Adv;
-fun piecework_N : N;
-fun pied_A : A;
-fun pied_a_terre_N : N;
-fun pier_N : N;
-fun pier_glass_N : N;
-fun pierce_V : V;
-fun pierce_V2 : V2;
-fun piercing_A : A;
-fun piercingly_Adv : Adv;
-fun pierrot_N : N;
-fun piety_N : N;
-fun pieta_N : N;
-fun piffle_N : N;
-fun piffle_V : V;
-fun piffling_A : A;
-fun pig_N : N;
-fun pig_V : V;
-fun pig_headed_A : A;
-fun pig_headedly_Adv : Adv;
-fun pig_headedness_N : N;
-fun pig_iron_N : N;
-fun pig_sticking_N : N;
-fun pigboat_N : N;
-fun pigeon_N : N;
-fun pigeon_breasted_A : A;
-fun pigeon_toed_A : A;
-fun pigeonhole_N : N;
-fun pigeonhole_V2 : V2;
-fun piggery_N : N;
-fun piggish_A : A;
-fun piggishly_Adv : Adv;
-fun piggishness_N : N;
-fun piggy_A : A;
-fun piggy_N : N;
-fun piggyback_N : N;
-fun piglet_N : N;
-fun pigment_N : N;
-fun pigmentation_N : N;
-fun pigmy_N : N;
-fun pigskin_N : N;
-fun pigsty_N : N;
-fun pigswill_N : N;
-fun pigtail_N : N;
-fun pigwash_N : N;
-fun pike_N : N;
-fun pikestaff_N : N;
-fun pilaf_N : N;
-fun pilaff_N : N;
-fun pilaster_N : N;
-fun pilau_N : N;
-fun pilchard_N : N;
-fun pile_N : N;
-fun pile_V : V;
-fun pile_V2 : V2;
-fun pile_driver_N : N;
-fun pile_dwelling_N : N;
-fun pile_up_N : N;
-fun piles_N : N;
-fun pilfer_V : V;
-fun pilfer_V2 : V2;
-fun pilferage_N : N;
-fun pilferer_N : N;
-fun pilgrim_N : N;
-fun pilgrimage_N : N;
-fun pill_N : N;
-fun pill_PN : PN;
-fun pillage_N : N;
-fun pillage_V2 : V2;
-fun pillager_N : N;
-fun pillar_N : N;
-fun pillar_box_N : N;
-fun pillared_A : A;
-fun pillbox_N : N;
-fun pillion_N : N;
-fun pillory_N : N;
-fun pillow_N : N;
-fun pillow_V2 : V2;
-fun pillow_fight_N : N;
-fun pillowcase_N : N;
-fun pillowslip_N : N;
-fun pilot_N : N;
-fun pilot_V2 : V2;
-fun pilot_boat_N : N;
-fun pilot_burner_N : N;
-fun pilot_cloth_N : N;
-fun pilot_engine_N : N;
-fun pilot_fish_N : N;
-fun pilot_light_N : N;
-fun pimento_N : N;
-fun pimp_N : N;
-fun pimp_V : V;
-fun pimpernel_N : N;
-fun pimple_N : N;
-fun pimpled_A : A;
-fun pimply_A : A;
-fun pin_N : N;
-fun pin_V2 : V2;
-fun pin_money_N : N;
-fun pin_table_N : N;
-fun pin_up_N : N;
-fun pinafore_N : N;
-fun pinball_N : N;
-fun pince_nez_N : N;
-fun pincer_N : N;
-fun pinch_N : N;
-fun pinch_V : V;
-fun pinch_V2 : V2;
-fun pinchbeck_A : A;
-fun pinchbeck_N : N;
-fun pincushion_N : N;
-fun pine_N : N;
-fun pine_V : V;
-fun pineal_A : A;
-fun pineapple_N : N;
-fun ping_N : N;
-fun ping_V : V;
-fun pingpong_N : N;
-fun pinhead_N : N;
-fun pinion_N : N;
-fun pinion_V2 : V2;
-fun pink_A : A;
-fun pink_N : N;
-fun pink_V : V;
-fun pink_V2 : V2;
-fun pinkish_A : A;
-fun pinnace_N : N;
-fun pinnacle_N : N;
-fun pinnacle_V2 : V2;
-fun pinnate_A : A;
-fun pinny_N : N;
-fun pinpoint_N : N;
-fun pinpoint_V2 : V2;
-fun pinprick_N : N;
-fun pinstripe_A : A;
-fun pint_N : N;
-fun pioneer_N : N;
-fun pioneer_V : V;
-fun pioneer_V2 : V2;
-fun pious_A : A;
-fun piously_Adv : Adv;
-fun pip_N : N;
-fun pip_V2 : V2;
-fun pipal_N : N;
-fun pipe_N : N;
-fun pipe_V : V;
-fun pipe_V2 : V2;
-fun pipe_organ_N : N;
-fun pipe_rack_N : N;
-fun pipeclay_N : N;
-fun pipedream_N : N;
-fun pipeful_N : N;
-fun pipeline_N : N;
-fun piper_N : N;
-fun pipette_N : N;
-fun pipework_N : N;
-fun piping_A : A;
-fun piping_Adv : Adv;
-fun piping_N : N;
-fun pippin_N : N;
-fun pipsqueak_N : N;
-fun piquancy_N : N;
-fun piquant_A : A;
-fun piquantly_Adv : Adv;
-fun pique_N : N;
-fun pique_V2 : V2;
-fun piquet_N : N;
-fun piracy_N : N;
-fun piraeus_PN : PN;
-fun piranha_N : N;
-fun pirate_N : N;
-fun pirate_V2 : V2;
-fun piratical_A : A;
-fun piratically_Adv : Adv;
-fun pirouette_N : N;
-fun pirouette_V : V;
-fun pis_aller_N : N;
-fun pisa_PN : PN;
-fun piscatorial_A : A;
-fun pisces_PN : PN;
-fun piss_N : N;
-fun piss_V : V;
-fun piss_V2 : V2;
-fun pissed_A : A;
-fun pistachio_N : N;
-fun pistil_N : N;
-fun pistol_N : N;
-fun piston_N : N;
-fun pit_N : N;
-fun pit_V2 : V2;
-fun pit_a_pat_Adv : Adv;
-fun pit_prop_N : N;
-fun pitch_N : N;
-fun pitch_V : V;
-fun pitch_V2 : V2;
-fun pitch_black_A : A;
-fun pitch_dark_A : A;
-fun pitchblende_N : N;
-fun pitcher_N : N;
-fun pitchfork_N : N;
-fun pitchfork_V2 : V2;
-fun piteous_A : A;
-fun piteously_Adv : Adv;
-fun pitfall_N : N;
-fun pith_N : N;
-fun pithead_N : N;
-fun pithily_Adv : Adv;
-fun pithy_A : A;
-fun pitiable_A : A;
-fun pitiably_Adv : Adv;
-fun pitiful_A : A;
-fun pitifully_Adv : Adv;
-fun pitiless_A : A;
-fun pitilessly_Adv : Adv;
-fun pitman_N : N;
-fun piton_N : N;
-fun pitsaw_N : N;
-fun pittance_N : N;
-fun pitter_patter_N : N;
-fun pittsburgh_PN : PN;
-fun pituitary_A : A;
-fun pituitary_N : N;
-fun pity_N : N;
-fun pity_V2 : V2;
-fun pitying_A : A;
-fun pityingly_Adv : Adv;
-fun pivot_N : N;
-fun pivot_V : V;
-fun pivot_V2 : V2;
-fun pivotal_A : A;
-fun pixie_N : N;
-fun pixilated_A : A;
-fun pixy_N : N;
-fun pizza_N : N;
-fun pizzicato_A : A;
-fun pizzicato_Adv : Adv;
-fun placard_N : N;
-fun placard_V2 : V2;
-fun placate_V2 : V2;
-fun placatingly_Adv : Adv;
-fun place_N : N;
-fun place_V2 : V2;
-fun place_bet_N : N;
-fun place_name_N : N;
-fun placebo_N : N;
-fun placeman_N : N;
-fun placement_N : N;
-fun placenta_N : N;
-fun placeseeker_N : N;
-fun placid_A : A;
-fun placidity_N : N;
-fun placidly_Adv : Adv;
-fun placing_N : N;
-fun placket_N : N;
-fun plage_N : N;
-fun plagiarism_N : N;
-fun plagiarist_N : N;
-fun plagiarize_V2 : V2;
-fun plague_N : N;
-fun plague_V2 : V2;
-fun plague_spot_N : N;
-fun plaguily_Adv : Adv;
-fun plaguy_A : A;
-fun plaice_N : N;
-fun plaid_N : N;
-fun plain_A : A;
-fun plain_Adv : Adv;
-fun plain_N : N;
-fun plain_V : V;
-fun plain_V2 : V2;
-fun plain_spoken_A : A;
-fun plainly_Adv : Adv;
-fun plainness_N : N;
-fun plainsman_N : N;
-fun plaint_N : N;
-fun plaintiff_N : N;
-fun plaintive_A : A;
-fun plaintively_Adv : Adv;
-fun plaintiveness_N : N;
-fun plait_N : N;
-fun plait_V2 : V2;
-fun plan_N : N;
-fun plan_V2 : V2;
-fun planchette_N : N;
-fun plane_N : N;
-fun plane_V : V;
-fun plane_V2 : V2;
-fun plane_tree_N : N;
-fun planet_N : N;
-fun planetarium_N : N;
-fun planetary_A : A;
-fun plangent_A : A;
-fun plank_N : N;
-fun plank_V2 : V2;
-fun plank_bed_N : N;
-fun planking_N : N;
-fun plankton_N : N;
-fun planless_A : A;
-fun planner_N : N;
-fun plant_N : N;
-fun plant_V2 : V2;
-fun plant_louse_N : N;
-fun plantain_N : N;
-fun plantation_N : N;
-fun planter_N : N;
-fun plaque_N : N;
-fun plash_N : N;
-fun plash_V : V;
-fun plash_V2 : V2;
-fun plasm_N : N;
-fun plasma_N : N;
-fun plaster_N : N;
-fun plaster_V2 : V2;
-fun plasterboard_N : N;
-fun plastered_A : A;
-fun plasterer_N : N;
-fun plastic_A : A;
-fun plastic_N : N;
-fun plastic_bomb_N : N;
-fun plasticine_N : N;
-fun plasticity_N : N;
-fun plastics_N : N;
-fun plate_N : N;
-fun plate_V2 : V2;
-fun plate_glass_N : N;
-fun plate_powder_N : N;
-fun plate_rack_N : N;
-fun plateau_N : N;
-fun plateful_N : N;
-fun platelayer_N : N;
-fun platform_N : N;
-fun plating_N : N;
-fun platinum_N : N;
-fun platitude_N : N;
-fun platitudinous_A : A;
-fun platonic_A : A;
-fun platoon_N : N;
-fun platter_N : N;
-fun platypus_N : N;
-fun plaudit_N : N;
-fun plausibility_N : N;
-fun plausible_A : A;
-fun plausibly_Adv : Adv;
-fun play_N : N;
-fun play_V : V;
-fun play_V2 : V2;
-fun play_acting_N : N;
-fun play_actor_N : N;
-fun play_box_N : N;
-fun play_off_N : N;
-fun play_reading_N : N;
-fun playback_N : N;
-fun playbill_N : N;
-fun playboy_N : N;
-fun player_N : N;
-fun player_piano_N : N;
-fun playfellow_N : N;
-fun playful_A : A;
-fun playfully_Adv : Adv;
-fun playfulness_N : N;
-fun playgoer_N : N;
-fun playground_N : N;
-fun playgroup_N : N;
-fun playhouse_N : N;
-fun playing_N : N;
-fun playing_card_N : N;
-fun playing_field_N : N;
-fun playlet_N : N;
-fun playmate_N : N;
-fun playpen_N : N;
-fun playroom_N : N;
-fun playschool_N : N;
-fun playsuit_N : N;
-fun plaything_N : N;
-fun playtime_N : N;
-fun playwright_N : N;
-fun plaza_N : N;
-fun plc_PN : PN;
-fun plea_N : N;
-fun pleach_V2 : V2;
-fun plead_V : V;
-fun plead_V2 : V2;
-fun pleadingly_Adv : Adv;
-fun pleasance_N : N;
-fun pleasant_A : A;
-fun pleasantly_Adv : Adv;
-fun pleasantness_N : N;
-fun pleasantry_N : N;
-fun please_V : V;
-fun please_V2 : V2;
-fun pleased_A : A;
-fun pleasing_A : A;
-fun pleasingly_Adv : Adv;
-fun pleasurable_A : A;
-fun pleasurably_Adv : Adv;
-fun pleasure_N : N;
-fun pleasure_boat_N : N;
-fun pleasure_craft_N : N;
-fun pleasure_ground_N : N;
-fun pleat_N : N;
-fun pleat_V2 : V2;
-fun pleb_N : N;
-fun plebeian_A : A;
-fun plebeian_N : N;
-fun plebiscite_N : N;
-fun plectrum_N : N;
-fun pledge_N : N;
-fun pledge_V2 : V2;
-fun plenarily_Adv : Adv;
-fun plenary_A : A;
-fun plenipotentiary_N : N;
-fun plenitude_N : N;
-fun plenteous_A : A;
-fun plenteously_Adv : Adv;
-fun plentiful_A : A;
-fun plentifully_Adv : Adv;
-fun plenty_Adv : Adv;
-fun plenty_N : N;
-fun pleonasm_N : N;
-fun plethora_N : N;
-fun pleurisy_N : N;
-fun plexus_N : N;
-fun pliability_N : N;
-fun pliable_A : A;
-fun pliancy_N : N;
-fun pliant_A : A;
-fun pliantly_Adv : Adv;
-fun plight_N : N;
-fun plight_V2 : V2;
-fun plimsoll_N : N;
-fun plinth_N : N;
-fun plod_V : V;
-fun plod_V2 : V2;
-fun plodder_N : N;
-fun plodding_A : A;
-fun ploddingly_Adv : Adv;
-fun plonk_Adv : Adv;
-fun plonk_N : N;
-fun plonk_V : V;
-fun plop_Adv : Adv;
-fun plop_N : N;
-fun plop_V : V;
-fun plosive_A : A;
-fun plosive_N : N;
-fun plot_N : N;
-fun plot_V : V;
-fun plot_V2 : V2;
-fun plotter_N : N;
-fun plough_N : N;
-fun plough_V : V;
-fun plough_V2 : V2;
-fun ploughboy_N : N;
-fun ploughman_N : N;
-fun ploughshare_N : N;
-fun plover_N : N;
-fun ploy_N : N;
-fun pluck_N : N;
-fun pluck_V : V;
-fun pluck_V2 : V2;
-fun pluckily_Adv : Adv;
-fun plucky_A : A;
-fun plug_N : N;
-fun plug_V : V;
-fun plug_V2 : V2;
-fun plughole_N : N;
-fun plum_N : N;
-fun plum_pudding_N : N;
-fun plumage_N : N;
-fun plumb_Adv : Adv;
-fun plumb_N : N;
-fun plumb_V2 : V2;
-fun plumbago_N : N;
-fun plumber_N : N;
-fun plumbing_N : N;
-fun plume_N : N;
-fun plume_V2 : V2;
-fun plummet_N : N;
-fun plummet_V : V;
-fun plummy_A : A;
-fun plump_A : A;
-fun plump_Adv : Adv;
-fun plump_N : N;
-fun plump_V : V;
-fun plump_V2 : V2;
-fun plunder_N : N;
-fun plunder_V : V;
-fun plunder_V2 : V2;
-fun plunderer_N : N;
-fun plunge_N : N;
-fun plunge_V : V;
-fun plunge_V2 : V2;
-fun plunger_N : N;
-fun plunk_N : N;
-fun pluperfect_A : A;
-fun pluperfect_N : N;
-fun plural_A : A;
-fun plural_N : N;
-fun pluralism_N : N;
-fun pluralist_N : N;
-fun plurality_N : N;
-fun plus_A : A;
-fun plus_N : N;
-fun plush_A : A;
-fun plush_N : N;
-fun plushy_A : A;
-fun pluto_PN : PN;
-fun plutocracy_N : N;
-fun plutocrat_N : N;
-fun plutocratic_A : A;
-fun plutonium_N : N;
-fun ply_N : N;
-fun ply_V : V;
-fun ply_V2 : V2;
-fun plymouth_PN : PN;
-fun plywood_N : N;
-fun pneumatic_A : A;
-fun pneumatically_Adv : Adv;
-fun pneumonia_N : N;
-fun po_N : N;
-fun poach_V : V;
-fun poach_V2 : V2;
-fun poacher_N : N;
-fun pock_N : N;
-fun pocked_A : A;
-fun pocket_N : N;
-fun pocket_V2 : V2;
-fun pocket_book_N : N;
-fun pocket_handkerchief_N : N;
-fun pocket_knife_N : N;
-fun pocket_money_N : N;
-fun pocketful_N : N;
-fun pockmarked_A : A;
-fun pod_N : N;
-fun pod_V : V;
-fun pod_V2 : V2;
-fun podgy_A : A;
-fun podiatry_N : N;
-fun podium_N : N;
-fun poem_N : N;
-fun poesy_N : N;
-fun poet_N : N;
-fun poetess_N : N;
-fun poetic_A : A;
-fun poetical_A : A;
-fun poetically_Adv : Adv;
-fun poetry_N : N;
-fun pogrom_N : N;
-fun poignancy_N : N;
-fun poignant_A : A;
-fun poignantly_Adv : Adv;
-fun poinsettia_N : N;
-fun point_N : N;
-fun point_V : V;
-fun point_V2 : V2;
-fun point_blank_A : A;
-fun point_blank_Adv : Adv;
-fun point_duty_N : N;
-fun pointed_A : A;
-fun pointedly_Adv : Adv;
-fun pointer_N : N;
-fun pointless_A : A;
-fun pointlessly_Adv : Adv;
-fun pointsman_N : N;
-fun poise_N : N;
-fun poise_V : V;
-fun poise_V2 : V2;
-fun poison_N : N;
-fun poison_V2 : V2;
-fun poison_gas_N : N;
-fun poison_ivy_N : N;
-fun poisoner_N : N;
-fun poisonous_A : A;
-fun poisonously_Adv : Adv;
-fun poke_N : N;
-fun poke_V : V;
-fun poke_V2 : V2;
-fun poke_bonnet_N : N;
-fun poker_N : N;
-fun poker_face_N : N;
-fun poky_A : A;
-fun poland_PN : PN;
-fun polar_A : A;
-fun polaris_N : N;
-fun polarity_N : N;
-fun polarization_N : N;
-fun polarize_V2 : V2;
-fun polaroid_N : N;
-fun pole_N : N;
-fun pole_jumping_N : N;
-fun pole_star_N : N;
-fun pole_vault_N : N;
-fun poleax_N : N;
-fun poleax_V2 : V2;
-fun poleaxe_N : N;
-fun poleaxe_V2 : V2;
-fun polecat_N : N;
-fun polemic_A : A;
-fun polemic_N : N;
-fun polemically_Adv : Adv;
-fun police_V2 : V2;
-fun police_office_N : N;
-fun police_officer_N : N;
-fun police_station_N : N;
-fun policeman_N : N;
-fun policewoman_N : N;
-fun policy_N : N;
-fun polio_N : N;
-fun poliomyelitis_N : N;
-fun polish_A : A;
-fun polish_N : N;
-fun polish_V : V;
-fun polish_V2 : V2;
-fun polisher_N : N;
-fun politburo_N : N;
-fun polite_A : A;
-fun politely_Adv : Adv;
-fun politeness_N : N;
-fun politic_A : A;
-fun political_A : A;
-fun politically_Adv : Adv;
-fun politician_N : N;
-fun politicize_V : V;
-fun politicize_V2 : V2;
-fun politick_V : V;
-fun politics_N : N;
-fun polity_N : N;
-fun polka_N : N;
-fun poll_N : N;
-fun poll_V : V;
-fun poll_V2 : V2;
-fun poll_tax_N : N;
-fun pollard_N : N;
-fun pollard_V2 : V2;
-fun pollen_N : N;
-fun pollinate_V2 : V2;
-fun pollination_N : N;
-fun polling_booth_N : N;
-fun polling_day_N : N;
-fun polling_station_N : N;
-fun pollster_N : N;
-fun pollutant_N : N;
-fun pollute_V2 : V2;
-fun pollution_N : N;
-fun polly_PN : PN;
-fun polo_N : N;
-fun polo_neck_A : A;
-fun polonaise_N : N;
-fun polony_N : N;
-fun poltergeist_N : N;
-fun poltroon_N : N;
-fun poltroonery_N : N;
-fun poly_N : N;
-fun polyandrous_A : A;
-fun polyandry_N : N;
-fun polyanthus_N : N;
-fun polygamist_N : N;
-fun polygamous_A : A;
-fun polygamy_N : N;
-fun polyglot_A : A;
-fun polyglot_N : N;
-fun polygon_N : N;
-fun polygonal_A : A;
-fun polymorphic_A : A;
-fun polymorphous_A : A;
-fun polynomial_A : A;
-fun polynomial_N : N;
-fun polyp_N : N;
-fun polyphonic_A : A;
-fun polyphony_N : N;
-fun polypus_N : N;
-fun polysyllabic_A : A;
-fun polysyllable_N : N;
-fun polytechnic_N : N;
-fun polytheism_N : N;
-fun polytheistic_A : A;
-fun polythene_N : N;
-fun pom_N : N;
-fun pomade_N : N;
-fun pomade_V2 : V2;
-fun pomegranate_N : N;
-fun pomelo_N : N;
-fun pommel_N : N;
-fun pommel_V2 : V2;
-fun pommy_N : N;
-fun pomp_N : N;
-fun pompon_N : N;
-fun pomposity_N : N;
-fun pompous_A : A;
-fun pompously_Adv : Adv;
-fun ponce_N : N;
-fun poncho_N : N;
-fun pond_N : N;
-fun ponder_V : V;
-fun ponder_V2 : V2;
-fun ponderable_A : A;
-fun ponderous_A : A;
-fun ponderously_Adv : Adv;
-fun pone_N : N;
-fun pongee_N : N;
-fun poniard_N : N;
-fun poniard_V2 : V2;
-fun pont_llan_fraith_PN : PN;
-fun pontardawe_PN : PN;
-fun pontardulais_PN : PN;
-fun pontefract_PN : PN;
-fun pontiff_N : N;
-fun pontifical_A : A;
-fun pontificate_N : N;
-fun pontificate_V : V;
-fun pontoon_N : N;
-fun pontycymmer_PN : PN;
-fun pontypool_PN : PN;
-fun pony_N : N;
-fun pony_trekking_N : N;
-fun ponytail_N : N;
-fun poodle_N : N;
-fun poof_N : N;
-fun pooh_pooh_V2 : V2;
-fun pool_N : N;
-fun pool_V2 : V2;
-fun poole_PN : PN;
-fun poolroom_N : N;
-fun poona_PN : PN;
-fun poop_N : N;
-fun poor_A : A;
-fun poor_box_N : N;
-fun poor_rate_N : N;
-fun poor_spirited_A : A;
-fun poorhouse_N : N;
-fun poorly_A : A;
-fun poorly_Adv : Adv;
-fun poorness_N : N;
-fun pop_A : A;
-fun pop_Adv : Adv;
-fun pop_N : N;
-fun pop_V : V;
-fun pop_V2 : V2;
-fun popcorn_N : N;
-fun pope_N : N;
-fun popery_N : N;
-fun popeyed_A : A;
-fun popgun_N : N;
-fun popinjay_N : N;
-fun popish_A : A;
-fun popishly_Adv : Adv;
-fun poplar_N : N;
-fun poplin_N : N;
-fun poppa_N : N;
-fun poppet_N : N;
-fun poppy_N : N;
-fun poppycock_N : N;
-fun populace_N : N;
-fun popular_A : A;
-fun popularity_N : N;
-fun popularization_N : N;
-fun popularize_V2 : V2;
-fun popularly_Adv : Adv;
-fun populate_V2 : V2;
-fun population_N : N;
-fun populism_N : N;
-fun populist_N : N;
-fun populous_A : A;
-fun porcelain_N : N;
-fun porch_N : N;
-fun porcine_A : A;
-fun porcupine_N : N;
-fun pore_N : N;
-fun pore_V : V;
-fun pork_N : N;
-fun pork_barrel_N : N;
-fun pork_butcher_N : N;
-fun porker_N : N;
-fun porn_N : N;
-fun pornographer_N : N;
-fun pornographic_A : A;
-fun pornography_N : N;
-fun porosity_N : N;
-fun porous_A : A;
-fun porousness_N : N;
-fun porphyry_N : N;
-fun porpoise_N : N;
-fun porridge_N : N;
-fun porringer_N : N;
-fun port_N : N;
-fun port_V2 : V2;
-fun port_glasgow_PN : PN;
-fun port_talbot_PN : PN;
-fun portability_N : N;
-fun portable_A : A;
-fun portage_N : N;
-fun portal_N : N;
-fun portcullis_N : N;
-fun porte_cochere_N : N;
-fun portend_V2 : V2;
-fun portent_N : N;
-fun portentous_A : A;
-fun portentously_Adv : Adv;
-fun porter_N : N;
-fun porterage_N : N;
-fun porterhouse_N : N;
-fun portfolio_N : N;
-fun porthcawl_PN : PN;
-fun porthmadog_PN : PN;
-fun porthole_N : N;
-fun portico_N : N;
-fun portion_N : N;
-fun portion_V2 : V2;
-fun portishead_PN : PN;
-fun portiere_N : N;
-fun portland_PN : PN;
-fun portly_A : A;
-fun portmanteau_N : N;
-fun porto_alegre_PN : PN;
-fun portrait_N : N;
-fun portraitist_N : N;
-fun portraiture_N : N;
-fun portray_V2 : V2;
-fun portrayal_N : N;
-fun portsmouth_PN : PN;
-fun portugal_PN : PN;
-fun portuguese_A : A;
-fun portuguese_N : N;
-fun pose_N : N;
-fun pose_V : V;
-fun pose_V2 : V2;
-fun poser_N : N;
-fun poseur_N : N;
-fun poseuse_N : N;
-fun posh_A : A;
-fun posh_V2 : V2;
-fun posit_V2 : V2;
-fun position_N : N;
-fun position_V2 : V2;
-fun positive_A : A;
-fun positive_N : N;
-fun positively_Adv : Adv;
-fun positiveness_N : N;
-fun positivism_N : N;
-fun positivist_N : N;
-fun posse_N : N;
-fun possess_V2 : V2;
-fun possession_N : N;
-fun possessive_A : A;
-fun possessively_Adv : Adv;
-fun possessiveness_N : N;
-fun possessor_N : N;
-fun posset_N : N;
-fun possibility_N : N;
-fun possible_A : A;
-fun possible_N : N;
-fun possibly_Adv : Adv;
-fun possum_N : N;
-fun post_N : N;
-fun post_V : V;
-fun post_V2 : V2;
-fun post_chaise_N : N;
-fun post_free_A : A;
-fun post_free_Adv : Adv;
-fun post_haste_Adv : Adv;
-fun post_horse_N : N;
-fun post_meridiem_Adv : Adv;
-fun post_mortem_A : A;
-fun post_mortem_N : N;
-fun post_paid_A : A;
-fun post_paid_Adv : Adv;
-fun postage_N : N;
-fun postage_stamp_N : N;
-fun postal_A : A;
-fun postbag_N : N;
-fun postbox_N : N;
-fun postcard_N : N;
-fun postcode_N : N;
-fun postdate_V2 : V2;
-fun poste_restante_N : N;
-fun poster_N : N;
-fun posterior_A : A;
-fun posterior_N : N;
-fun posterity_N : N;
-fun postern_N : N;
-fun postgraduate_A : A;
-fun postgraduate_N : N;
-fun posthumous_A : A;
-fun posthumously_Adv : Adv;
-fun postilion_N : N;
-fun postillion_N : N;
-fun postman_N : N;
-fun postmark_N : N;
-fun postmark_V2 : V2;
-fun postmaster_N : N;
-fun postmistress_N : N;
-fun postpone_V2 : V2;
-fun postponement_N : N;
-fun postprandial_A : A;
-fun postscript_N : N;
-fun postulant_N : N;
-fun postulate_N : N;
-fun postulate_V2 : V2;
-fun postural_A : A;
-fun posture_N : N;
-fun posture_V : V;
-fun posture_V2 : V2;
-fun posturing_N : N;
-fun posy_N : N;
-fun pot_N : N;
-fun pot_V : V;
-fun pot_V2 : V2;
-fun pot_shot_N : N;
-fun pot_trained_A : A;
-fun potable_A : A;
-fun potash_N : N;
-fun potassium_N : N;
-fun potation_N : N;
-fun potato_N : N;
-fun potbellied_A : A;
-fun potbelly_N : N;
-fun potboiler_N : N;
-fun potbound_A : A;
-fun potboy_N : N;
-fun poteen_N : N;
-fun potency_N : N;
-fun potent_A : A;
-fun potentate_N : N;
-fun potential_A : A;
-fun potential_N : N;
-fun potentiality_N : N;
-fun potentially_Adv : Adv;
-fun potently_Adv : Adv;
-fun pothead_N : N;
-fun pother_N : N;
-fun potherb_N : N;
-fun pothole_N : N;
-fun potholer_N : N;
-fun pothook_N : N;
-fun pothouse_N : N;
-fun pothunter_N : N;
-fun potion_N : N;
-fun potman_N : N;
-fun potpourri_N : N;
-fun potsdam_PN : PN;
-fun potsherd_N : N;
-fun pottage_N : N;
-fun potted_A : A;
-fun potter_N : N;
-fun potter_V : V;
-fun potterer_N : N;
-fun potters_bar_PN : PN;
-fun pottery_N : N;
-fun potty_A : A;
-fun potty_N : N;
-fun pouch_N : N;
-fun pouch_V2 : V2;
-fun pouf_N : N;
-fun pouffe_N : N;
-fun poulterer_N : N;
-fun poultice_N : N;
-fun poultice_V2 : V2;
-fun pounce_N : N;
-fun pounce_V : V;
-fun pound_N : N;
-fun pound_V : V;
-fun pound_V2 : V2;
-fun poundage_N : N;
-fun pounder_N : N;
-fun pour_V : V;
-fun pour_V2 : V2;
-fun pout_N : N;
-fun pout_V : V;
-fun pout_V2 : V2;
-fun poutingly_Adv : Adv;
-fun poverty_N : N;
-fun poverty_stricken_A : A;
-fun pow_N : N;
-fun powder_N : N;
-fun powder_V : V;
-fun powder_V2 : V2;
-fun powder_flask_N : N;
-fun powder_horn_N : N;
-fun powder_magazine_N : N;
-fun powder_puff_N : N;
-fun powder_room_N : N;
-fun powdered_A : A;
-fun powdery_A : A;
-fun power_N : N;
-fun power_V2 : V2;
-fun power_dive_N : N;
-fun power_dive_V2 : V2;
-fun power_point_N : N;
-fun power_station_N : N;
-fun powerboat_N : N;
-fun powered_A : A;
-fun powerful_A : A;
-fun powerfully_Adv : Adv;
-fun powerhouse_N : N;
-fun powerless_A : A;
-fun powerlessly_Adv : Adv;
-fun powwow_N : N;
-fun powwow_V : V;
-fun powys_PN : PN;
-fun pox_N : N;
-fun poynton_PN : PN;
-fun poznan_PN : PN;
-fun pp_N : N;
-fun pr_N : N;
-fun practicability_N : N;
-fun practicable_A : A;
-fun practicably_Adv : Adv;
-fun practical_A : A;
-fun practicality_N : N;
-fun practically_Adv : Adv;
-fun practice_N : N;
-fun practician_N : N;
-fun practise_V : V;
-fun practise_V2 : V2;
-fun practised_A : A;
-fun practitioner_N : N;
-fun praesidium_N : N;
-fun praetor_N : N;
-fun praetorian_A : A;
-fun pragmatic_A : A;
-fun pragmatically_Adv : Adv;
-fun pragmatism_N : N;
-fun pragmatist_N : N;
-fun prague_PN : PN;
-fun prairie_N : N;
-fun praise_N : N;
-fun praise_V2 : V2;
-fun praiseworthily_Adv : Adv;
-fun praiseworthiness_N : N;
-fun praiseworthy_A : A;
-fun pram_N : N;
-fun prance_N : N;
-fun prance_V : V;
-fun prank_N : N;
-fun prate_V : V;
-fun prato_PN : PN;
-fun prattle_N : N;
-fun prattle_V : V;
-fun prattler_N : N;
-fun prawn_N : N;
-fun prawn_V : V;
-fun pray_V : V;
-fun pray_V2 : V2;
-fun prayer_N : N;
-fun prayer_book_N : N;
-fun prayer_mat_N : N;
-fun prayer_meeting_N : N;
-fun prayer_rug_N : N;
-fun prayer_wheel_N : N;
-fun pre_eminence_N : N;
-fun pre_eminent_A : A;
-fun pre_eminently_Adv : Adv;
-fun pre_empt_V2 : V2;
-fun pre_emption_N : N;
-fun pre_emptive_A : A;
-fun pre_exist_V : V;
-fun pre_existence_N : N;
-fun pre_existent_A : A;
-fun pre_packaged_A : A;
-fun pre_raphaelite_A : A;
-fun pre_raphaelite_N : N;
-fun preach_V : V;
-fun preach_V2 : V2;
-fun preacher_N : N;
-fun preachify_V : V;
-fun preamble_N : N;
-fun prearrange_V2 : V2;
-fun prearrangement_N : N;
-fun prebend_N : N;
-fun prebendary_N : N;
-fun precarious_A : A;
-fun precariously_Adv : Adv;
-fun precariousness_N : N;
-fun precast_A : A;
-fun precaution_N : N;
-fun precautionary_A : A;
-fun precede_V : V;
-fun precede_V2 : V2;
-fun precedence_N : N;
-fun precedent_N : N;
-fun precedented_A : A;
-fun preceding_A : A;
-fun precentor_N : N;
-fun precept_N : N;
-fun preceptor_N : N;
-fun precession_N : N;
-fun precinct_N : N;
-fun preciosity_N : N;
-fun precious_A : A;
-fun precious_Adv : Adv;
-fun preciously_Adv : Adv;
-fun preciousness_N : N;
-fun precipice_N : N;
-fun precipitate_A : A;
-fun precipitate_N : N;
-fun precipitate_V2 : V2;
-fun precipitately_Adv : Adv;
-fun precipitation_N : N;
-fun precipitous_A : A;
-fun precipitously_Adv : Adv;
-fun precise_A : A;
-fun precisely_Adv : Adv;
-fun preciseness_N : N;
-fun precision_N : N;
-fun preclude_V2 : V2;
-fun preclusion_N : N;
-fun precocious_A : A;
-fun precociously_Adv : Adv;
-fun precociousness_N : N;
-fun precocity_N : N;
-fun precognition_N : N;
-fun preconceive_V2 : V2;
-fun preconception_N : N;
-fun preconcerted_A : A;
-fun precondition_N : N;
-fun preconditioned_A : A;
-fun precursor_N : N;
-fun precursory_A : A;
-fun predator_N : N;
-fun predatory_A : A;
-fun predecease_V2 : V2;
-fun predecessor_N : N;
-fun predestinate_A : A;
-fun predestinate_V2 : V2;
-fun predestination_N : N;
-fun predestine_V2 : V2;
-fun predetermination_N : N;
-fun predetermine_V2 : V2;
-fun predicament_N : N;
-fun predicate_N : N;
-fun predicate_V2 : V2;
-fun predicative_A : A;
-fun predict_V2 : V2;
-fun predictability_N : N;
-fun predictable_A : A;
-fun predictably_Adv : Adv;
-fun prediction_N : N;
-fun predictor_N : N;
-fun predigest_V2 : V2;
-fun predilection_N : N;
-fun predispose_V2 : V2;
-fun predisposition_N : N;
-fun predominance_N : N;
-fun predominant_A : A;
-fun predominantly_Adv : Adv;
-fun predominate_V : V;
-fun preen_V2 : V2;
-fun prefab_N : N;
-fun prefabricate_V2 : V2;
-fun prefabrication_N : N;
-fun preface_N : N;
-fun preface_V2 : V2;
-fun prefatory_A : A;
-fun prefect_N : N;
-fun prefectural_A : A;
-fun prefecture_N : N;
-fun prefer_V2 : V2;
-fun preferable_A : A;
-fun preferably_Adv : Adv;
-fun preference_N : N;
-fun preferential_A : A;
-fun preferment_N : N;
-fun prefigure_V2 : V2;
-fun prefix_N : N;
-fun prefix_V2 : V2;
-fun pregnancy_N : N;
-fun pregnant_A : A;
-fun preheat_V2 : V2;
-fun prehensile_A : A;
-fun prehistoric_A : A;
-fun prehistorical_A : A;
-fun prehistory_N : N;
-fun prejudge_V2 : V2;
-fun prejudgement_N : N;
-fun prejudice_N : N;
-fun prejudice_V2 : V2;
-fun prejudicial_A : A;
-fun prelacy_N : N;
-fun prelate_N : N;
-fun prelim_N : N;
-fun preliminary_A : A;
-fun preliminary_N : N;
-fun prelude_N : N;
-fun prelude_V2 : V2;
-fun premarital_A : A;
-fun premature_A : A;
-fun prematurely_Adv : Adv;
-fun premeditate_V2 : V2;
-fun premeditation_N : N;
-fun premier_A : A;
-fun premier_N : N;
-fun premiership_N : N;
-fun premise_N : N;
-fun premise_V2 : V2;
-fun premiss_N : N;
-fun premiss_V2 : V2;
-fun premium_N : N;
-fun premiere_N : N;
-fun premonition_N : N;
-fun premonitory_A : A;
-fun prenatal_A : A;
-fun prentice_N : N;
-fun preoccupation_N : N;
-fun preoccupy_V2 : V2;
-fun preordain_V2 : V2;
-fun prep_N : N;
-fun prepacked_A : A;
-fun preparation_N : N;
-fun preparatory_A : A;
-fun prepare_V : V;
-fun prepare_V2 : V2;
-fun preparedness_N : N;
-fun prepay_V2 : V2;
-fun preponderance_N : N;
-fun preponderant_A : A;
-fun preponderantly_Adv : Adv;
-fun preponderate_V : V;
-fun preposition_N : N;
-fun prepositional_A : A;
-fun prepossess_V2 : V2;
-fun prepossessing_A : A;
-fun prepossession_N : N;
-fun preposterous_A : A;
-fun preposterously_Adv : Adv;
-fun prepuce_N : N;
-fun prerecord_V2 : V2;
-fun prerequisite_A : A;
-fun prerequisite_N : N;
-fun prerogative_N : N;
-fun pres_N : N;
-fun presage_N : N;
-fun presage_V2 : V2;
-fun presbyter_N : N;
-fun presbyterian_A : A;
-fun presbyterian_N : N;
-fun presbyterianism_N : N;
-fun presbytery_N : N;
-fun prescience_N : N;
-fun prescient_A : A;
-fun presciently_Adv : Adv;
-fun prescot_PN : PN;
-fun prescribe_V : V;
-fun prescribe_V2 : V2;
-fun prescript_N : N;
-fun prescription_N : N;
-fun prescriptive_A : A;
-fun presence_N : N;
-fun present_A : A;
-fun present_N : N;
-fun present_V2 : V2;
-fun present_day_A : A;
-fun presentable_A : A;
-fun presentably_Adv : Adv;
-fun presentation_N : N;
-fun presentiment_N : N;
-fun presently_Adv : Adv;
-fun preservable_A : A;
-fun preservation_N : N;
-fun preservative_A : A;
-fun preservative_N : N;
-fun preserve_N : N;
-fun preserve_V2 : V2;
-fun preserver_N : N;
-fun preside_V : V;
-fun presidency_N : N;
-fun president_N : N;
-fun presidential_A : A;
-fun presidium_N : N;
-fun press_N : N;
-fun press_V : V;
-fun press_V2 : V2;
-fun press_agency_N : N;
-fun press_agent_N : N;
-fun press_box_N : N;
-fun press_clipping_N : N;
-fun press_cutting_N : N;
-fun press_gallery_N : N;
-fun press_gang_N : N;
-fun press_lord_N : N;
-fun press_photographer_N : N;
-fun press_stud_N : N;
-fun press_up_N : N;
-fun pressing_A : A;
-fun pressing_N : N;
-fun pressingly_Adv : Adv;
-fun pressman_N : N;
-fun pressmark_N : N;
-fun pressure_N : N;
-fun pressure_cooker_N : N;
-fun pressure_gauge_N : N;
-fun pressurized_A : A;
-fun prestatyn_PN : PN;
-fun prestidigitation_N : N;
-fun prestidigitator_N : N;
-fun prestige_N : N;
-fun prestigious_A : A;
-fun prestissimo_A : A;
-fun prestissimo_Adv : Adv;
-fun presto_A : A;
-fun presto_Adv : Adv;
-fun preston_PN : PN;
-fun prestonpans_PN : PN;
-fun prestressed_A : A;
-fun prestwich_PN : PN;
-fun prestwick_PN : PN;
-fun presumable_A : A;
-fun presumably_Adv : Adv;
-fun presume_V : V;
-fun presume_V2 : V2;
-fun presuming_A : A;
-fun presumption_N : N;
-fun presumptive_A : A;
-fun presumptively_Adv : Adv;
-fun presumptuous_A : A;
-fun presumptuously_Adv : Adv;
-fun presuppose_V2 : V2;
-fun presupposition_N : N;
-fun pretence_N : N;
-fun pretend_V : V;
-fun pretend_V2 : V2;
-fun pretendedly_Adv : Adv;
-fun pretender_N : N;
-fun pretension_N : N;
-fun pretentious_A : A;
-fun pretentiously_Adv : Adv;
-fun pretentiousness_N : N;
-fun preterit_A : A;
-fun preterit_N : N;
-fun preterite_A : A;
-fun preterite_N : N;
-fun preternatural_A : A;
-fun preternaturally_Adv : Adv;
-fun pretext_N : N;
-fun pretor_N : N;
-fun pretoria_PN : PN;
-fun prettify_V2 : V2;
-fun prettily_Adv : Adv;
-fun prettiness_N : N;
-fun pretty_A : A;
-fun pretty_Adv : Adv;
-fun pretty_N : N;
-fun pretty_pretty_A : A;
-fun pretzel_N : N;
-fun prevail_V : V;
-fun prevailing_A : A;
-fun prevalence_N : N;
-fun prevalent_A : A;
-fun prevaricate_V : V;
-fun prevarication_N : N;
-fun prevent_V2 : V2;
-fun preventable_A : A;
-fun preventative_N : N;
-fun prevention_N : N;
-fun preventive_A : A;
-fun preview_N : N;
-fun preview_V2 : V2;
-fun previous_A : A;
-fun previously_Adv : Adv;
-fun prevision_N : N;
-fun prey_N : N;
-fun prey_V : V;
-fun price_N : N;
-fun price_V2 : V2;
-fun price_control_N : N;
-fun price_controlled_A : A;
-fun priceless_A : A;
-fun pricelist_N : N;
-fun pricey_A : A;
-fun prick_N : N;
-fun prick_V : V;
-fun prick_V2 : V2;
-fun pricker_N : N;
-fun pricking_N : N;
-fun prickle_N : N;
-fun prickle_V : V;
-fun prickle_V2 : V2;
-fun prickly_A : A;
-fun pride_N : N;
-fun pride_V2 : V2;
-fun prie_dieu_N : N;
-fun priest_N : N;
-fun priest_ridden_A : A;
-fun priestcraft_N : N;
-fun priestess_N : N;
-fun priesthood_N : N;
-fun priestlike_A : A;
-fun priestly_A : A;
-fun prig_N : N;
-fun priggish_A : A;
-fun priggishly_Adv : Adv;
-fun priggishness_N : N;
-fun prim_A : A;
-fun prim_V2 : V2;
-fun prima_A : A;
-fun prima_ballerina_N : N;
-fun prima_donna_N : N;
-fun prima_facie_A : A;
-fun prima_facie_Adv : Adv;
-fun primacy_N : N;
-fun primaeval_A : A;
-fun primal_A : A;
-fun primarily_Adv : Adv;
-fun primary_A : A;
-fun primary_N : N;
-fun primate_N : N;
-fun prime_A : A;
-fun prime_N : N;
-fun prime_V2 : V2;
-fun primer_N : N;
-fun primeval_A : A;
-fun priming_N : N;
-fun primitive_A : A;
-fun primitive_N : N;
-fun primitively_Adv : Adv;
-fun primitiveness_N : N;
-fun primly_Adv : Adv;
-fun primness_N : N;
-fun primogeniture_N : N;
-fun primordial_A : A;
-fun primp_V2 : V2;
-fun primrose_N : N;
-fun primula_N : N;
-fun primus_N : N;
-fun prince_N : N;
-fun princedom_N : N;
-fun princely_A : A;
-fun princes_risborough_PN : PN;
-fun princess_N : N;
-fun principal_A : A;
-fun principal_N : N;
-fun principality_N : N;
-fun principally_Adv : Adv;
-fun principle_N : N;
-fun principled_A : A;
-fun prink_V2 : V2;
-fun print_N : N;
-fun print_V : V;
-fun print_V2 : V2;
-fun print_seller_N : N;
-fun print_shop_N : N;
-fun printable_A : A;
-fun printer_N : N;
-fun printing_N : N;
-fun printing_ink_N : N;
-fun printing_press_N : N;
-fun printout_N : N;
-fun prior_A : A;
-fun prior_N : N;
-fun prioress_N : N;
-fun priority_N : N;
-fun priory_N : N;
-fun priscilla_PN : PN;
-fun prise_V2 : V2;
-fun prism_N : N;
-fun prismatic_A : A;
-fun prison_N : N;
-fun prison_breaking_N : N;
-fun prisoner_N : N;
-fun pristine_A : A;
-fun privacy_N : N;
-fun private_A : A;
-fun private_N : N;
-fun privateer_N : N;
-fun privately_Adv : Adv;
-fun privation_N : N;
-fun privet_N : N;
-fun privilege_N : N;
-fun privileged_A : A;
-fun privily_Adv : Adv;
-fun privy_A : A;
-fun privy_N : N;
-fun prize_N : N;
-fun prize_V2 : V2;
-fun prize_fight_N : N;
-fun prize_money_N : N;
-fun prize_ring_N : N;
-fun pro_Adv : Adv;
-fun pro_N : N;
-fun pro_forma_A : A;
-fun pro_forma_Adv : Adv;
-fun pro_rata_Adv : Adv;
-fun pro_tem_Adv : Adv;
-fun pro_tempore_Adv : Adv;
-fun probabilistic_A : A;
-fun probabilistically_Adv : Adv;
-fun probability_N : N;
-fun probable_A : A;
-fun probable_N : N;
-fun probably_Adv : Adv;
-fun probate_N : N;
-fun probate_V2 : V2;
-fun probation_N : N;
-fun probationary_A : A;
-fun probationer_N : N;
-fun probe_N : N;
-fun probe_V2 : V2;
-fun probity_N : N;
-fun problem_N : N;
-fun problematic_A : A;
-fun problematically_Adv : Adv;
-fun proboscis_N : N;
-fun procedural_A : A;
-fun procedure_N : N;
-fun proceed_V : V;
-fun proceeding_N : N;
-fun process_N : N;
-fun process_V : V;
-fun process_V2 : V2;
-fun process_server_N : N;
-fun procession_N : N;
-fun processional_A : A;
-fun processor_N : N;
-fun proclaim_V2 : V2;
-fun proclamation_N : N;
-fun proclivity_N : N;
-fun proconsul_N : N;
-fun proconsular_A : A;
-fun proconsulate_N : N;
-fun procrastinate_V : V;
-fun procrastination_N : N;
-fun procreate_V2 : V2;
-fun procreation_N : N;
-fun proctor_N : N;
-fun procurable_A : A;
-fun procurator_N : N;
-fun procure_V2 : V2;
-fun procurement_N : N;
-fun procurer_N : N;
-fun procuress_N : N;
-fun prod_N : N;
-fun prod_V : V;
-fun prod_V2 : V2;
-fun prodigal_A : A;
-fun prodigal_N : N;
-fun prodigality_N : N;
-fun prodigally_Adv : Adv;
-fun prodigious_A : A;
-fun prodigiously_Adv : Adv;
-fun prodigy_N : N;
-fun produce_N : N;
-fun produce_V : V;
-fun produce_V2 : V2;
-fun producer_N : N;
-fun product_N : N;
-fun production_N : N;
-fun productive_A : A;
-fun productively_Adv : Adv;
-fun productivity_N : N;
-fun prof_PN : PN;
-fun profanation_N : N;
-fun profane_A : A;
-fun profane_V2 : V2;
-fun profanely_Adv : Adv;
-fun profaneness_N : N;
-fun profanity_N : N;
-fun profess_V : V;
-fun profess_V2 : V2;
-fun professed_A : A;
-fun professedly_Adv : Adv;
-fun profession_N : N;
-fun professional_A : A;
-fun professional_N : N;
-fun professionalism_N : N;
-fun professionally_Adv : Adv;
-fun professor_N : N;
-fun professorial_A : A;
-fun professorship_N : N;
-fun proffer_N : N;
-fun proffer_V2 : V2;
-fun proficiency_N : N;
-fun proficient_A : A;
-fun proficiently_Adv : Adv;
-fun profile_N : N;
-fun profile_V2 : V2;
-fun profit_N : N;
-fun profit_V : V;
-fun profit_V2 : V2;
-fun profit_margin_N : N;
-fun profit_sharing_N : N;
-fun profitable_A : A;
-fun profitably_Adv : Adv;
-fun profiteer_N : N;
-fun profiteer_V : V;
-fun profitless_A : A;
-fun profitlessly_Adv : Adv;
-fun profligacy_N : N;
-fun profligate_A : A;
-fun profligate_N : N;
-fun profound_A : A;
-fun profoundly_Adv : Adv;
-fun profundity_N : N;
-fun profuse_A : A;
-fun profusely_Adv : Adv;
-fun profuseness_N : N;
-fun profusion_N : N;
-fun progenitor_N : N;
-fun prognosis_N : N;
-fun prognostic_A : A;
-fun prognostic_N : N;
-fun prognosticate_V2 : V2;
-fun prognostication_N : N;
-fun program_N : N;
-fun program_V2 : V2;
-fun programme_N : N;
-fun programme_V2 : V2;
-fun programmer_N : N;
-fun progress_N : N;
-fun progress_V : V;
-fun progression_N : N;
-fun progressive_A : A;
-fun progressive_N : N;
-fun progressively_Adv : Adv;
-fun progressiveness_N : N;
-fun prohibit_V2 : V2;
-fun prohibition_N : N;
-fun prohibitionist_N : N;
-fun prohibitive_A : A;
-fun prohibitively_Adv : Adv;
-fun prohibitory_A : A;
-fun project_N : N;
-fun project_V : V;
-fun project_V2 : V2;
-fun projectile_A : A;
-fun projectile_N : N;
-fun projection_N : N;
-fun projectionist_N : N;
-fun projector_N : N;
-fun prolapse_N : N;
-fun prolapse_V : V;
-fun prole_N : N;
-fun proletarian_A : A;
-fun proletarian_N : N;
-fun proletariat_N : N;
-fun proliferate_V : V;
-fun proliferate_V2 : V2;
-fun proliferation_N : N;
-fun prolific_A : A;
-fun prolix_A : A;
-fun prolixity_N : N;
-fun prologue_N : N;
-fun prolong_V2 : V2;
-fun prolongation_N : N;
-fun prolonged_A : A;
-fun prom_N : N;
-fun promenade_N : N;
-fun promenade_V : V;
-fun promenade_V2 : V2;
-fun prominence_N : N;
-fun prominent_A : A;
-fun prominently_Adv : Adv;
-fun promiscuity_N : N;
-fun promiscuous_A : A;
-fun promiscuously_Adv : Adv;
-fun promise_N : N;
-fun promise_V : V;
-fun promise_V2 : V2;
-fun promising_A : A;
-fun promisingly_Adv : Adv;
-fun promissory_A : A;
-fun promontory_N : N;
-fun promote_V2 : V2;
-fun promoter_N : N;
-fun promotion_N : N;
-fun promotional_A : A;
-fun prompt_A : A;
-fun prompt_N : N;
-fun prompt_V2 : V2;
-fun prompt_box_N : N;
-fun prompt_copy_N : N;
-fun prompter_N : N;
-fun prompting_N : N;
-fun promptitude_N : N;
-fun promptly_Adv : Adv;
-fun promptness_N : N;
-fun promulgate_V2 : V2;
-fun promulgation_N : N;
-fun prone_A : A;
-fun proneness_N : N;
-fun prong_N : N;
-fun pronged_A : A;
-fun pronominal_A : A;
-fun pronoun_N : N;
-fun pronounce_V : V;
-fun pronounce_V2 : V2;
-fun pronounceable_A : A;
-fun pronounced_A : A;
-fun pronouncement_N : N;
-fun pronto_Adv : Adv;
-fun pronunciamento_N : N;
-fun pronunciation_N : N;
-fun proof_A : A;
-fun proof_N : N;
-fun proof_V2 : V2;
-fun proofread_V : V;
-fun proofread_V2 : V2;
-fun proofreader_N : N;
-fun prop_N : N;
-fun prop_V2 : V2;
-fun propaganda_N : N;
-fun propagandist_N : N;
-fun propagandize_V : V;
-fun propagate_V : V;
-fun propagate_V2 : V2;
-fun propagation_N : N;
-fun propagator_N : N;
-fun propane_N : N;
-fun propel_V2 : V2;
-fun propellant_A : A;
-fun propellant_N : N;
-fun propellent_A : A;
-fun propellent_N : N;
-fun propeller_N : N;
-fun propensity_N : N;
-fun proper_A : A;
-fun properly_Adv : Adv;
-fun propertied_A : A;
-fun property_N : N;
-fun property_man_N : N;
-fun property_master_N : N;
-fun prophecy_N : N;
-fun prophesy_V : V;
-fun prophesy_V2 : V2;
-fun prophet_N : N;
-fun prophetess_N : N;
-fun prophetic_A : A;
-fun prophetical_A : A;
-fun prophetically_Adv : Adv;
-fun prophylactic_A : A;
-fun prophylactic_N : N;
-fun prophylaxis_N : N;
-fun propinquity_N : N;
-fun propitiate_V2 : V2;
-fun propitiation_N : N;
-fun propitiatory_A : A;
-fun propitious_A : A;
-fun propitiously_Adv : Adv;
-fun proponent_N : N;
-fun proportion_N : N;
-fun proportion_V2 : V2;
-fun proportionable_A : A;
-fun proportional_A : A;
-fun proportionality_N : N;
-fun proportionally_Adv : Adv;
-fun proportionate_A : A;
-fun proportionately_Adv : Adv;
-fun proposal_N : N;
-fun propose_V : V;
-fun propose_V2 : V2;
-fun proposer_N : N;
-fun proposition_N : N;
-fun proposition_V2 : V2;
-fun propound_V2 : V2;
-fun proprietary_A : A;
-fun proprietor_N : N;
-fun proprietress_N : N;
-fun propriety_N : N;
-fun propulsion_N : N;
-fun propulsive_A : A;
-fun prorogation_N : N;
-fun prorogue_V2 : V2;
-fun prosaic_A : A;
-fun prosaically_Adv : Adv;
-fun proscenium_N : N;
-fun proscribe_V2 : V2;
-fun proscription_N : N;
-fun prose_N : N;
-fun prosecute_V2 : V2;
-fun prosecution_N : N;
-fun prosecutor_N : N;
-fun proselyte_N : N;
-fun proselytize_V : V;
-fun proselytize_V2 : V2;
-fun prosily_Adv : Adv;
-fun prosiness_N : N;
-fun prosody_N : N;
-fun prospect_N : N;
-fun prospect_V : V;
-fun prospective_A : A;
-fun prospector_N : N;
-fun prospectus_N : N;
-fun prosper_V : V;
-fun prosper_V2 : V2;
-fun prosperity_N : N;
-fun prosperous_A : A;
-fun prosperously_Adv : Adv;
-fun prostate_N : N;
-fun prostitute_N : N;
-fun prostitute_V2 : V2;
-fun prostitution_N : N;
-fun prostrate_A : A;
-fun prostrate_V2 : V2;
-fun prostration_N : N;
-fun prosy_A : A;
-fun protagonist_N : N;
-fun protean_A : A;
-fun protect_V2 : V2;
-fun protection_N : N;
-fun protectionism_N : N;
-fun protectionist_N : N;
-fun protective_A : A;
-fun protectively_Adv : Adv;
-fun protector_N : N;
-fun protectorate_N : N;
-fun protein_N : N;
-fun protest_N : N;
-fun protest_V : V;
-fun protest_V2 : V2;
-fun protestant_A : A;
-fun protestant_N : N;
-fun protestantism_N : N;
-fun protestation_N : N;
-fun protester_N : N;
-fun protestingly_Adv : Adv;
-fun protocol_N : N;
-fun proton_N : N;
-fun protoplasm_N : N;
-fun prototype_N : N;
-fun protract_V2 : V2;
-fun protraction_N : N;
-fun protractor_N : N;
-fun protrude_V : V;
-fun protrude_V2 : V2;
-fun protrusion_N : N;
-fun protrusive_A : A;
-fun protuberance_N : N;
-fun protuberant_A : A;
-fun protege_N : N;
-fun protegee_N : N;
-fun proud_A : A;
-fun proudly_Adv : Adv;
-fun provable_A : A;
-fun prove_V : V;
-fun prove_V2 : V2;
-fun provenance_N : N;
-fun provender_N : N;
-fun proverb_N : N;
-fun proverbial_A : A;
-fun proverbially_Adv : Adv;
-fun provide_V : V;
-fun provide_V2 : V2;
-fun providence_N : N;
-fun providence_PN : PN;
-fun provident_A : A;
-fun providential_A : A;
-fun providentially_Adv : Adv;
-fun providently_Adv : Adv;
-fun provider_N : N;
-fun province_N : N;
-fun provincial_A : A;
-fun provincial_N : N;
-fun provincialism_N : N;
-fun provincially_Adv : Adv;
-fun provision_N : N;
-fun provision_V2 : V2;
-fun provisional_A : A;
-fun provisionally_Adv : Adv;
-fun proviso_N : N;
-fun provisory_A : A;
-fun provocation_N : N;
-fun provocative_A : A;
-fun provocatively_Adv : Adv;
-fun provoke_V2 : V2;
-fun provoking_A : A;
-fun provokingly_Adv : Adv;
-fun provost_N : N;
-fun prow_N : N;
-fun prowess_N : N;
-fun prowl_N : N;
-fun prowl_V : V;
-fun prowl_V2 : V2;
-fun prowler_N : N;
-fun prox_Adv : Adv;
-fun proximate_A : A;
-fun proximity_N : N;
-fun proximo_A : A;
-fun proxy_N : N;
-fun pru_PN : PN;
-fun prude_N : N;
-fun prudence_N : N;
-fun prudence_PN : PN;
-fun prudent_A : A;
-fun prudential_A : A;
-fun prudently_Adv : Adv;
-fun prudery_N : N;
-fun prudhoe_PN : PN;
-fun prudish_A : A;
-fun prudishly_Adv : Adv;
-fun prune_N : N;
-fun prune_V2 : V2;
-fun pruning_N : N;
-fun pruning_hook_N : N;
-fun pruning_knife_N : N;
-fun pruning_saw_N : N;
-fun prurience_N : N;
-fun pruriency_N : N;
-fun prurient_A : A;
-fun pruriently_Adv : Adv;
-fun prussian_A : A;
-fun prussian_N : N;
-fun prussic_A : A;
-fun pry_V : V;
-fun pry_V2 : V2;
-fun pryingly_Adv : Adv;
-fun precis_N : N;
-fun precis_V2 : V2;
-fun psalm_N : N;
-fun psalmist_N : N;
-fun psalmody_N : N;
-fun psalter_N : N;
-fun psaltery_N : N;
-fun psephologist_N : N;
-fun psephology_N : N;
-fun pseud_N : N;
-fun pseudo_A : A;
-fun pseudo_N : N;
-fun pseudonym_N : N;
-fun pseudonymous_A : A;
-fun psittacosis_N : N;
-fun psyche_N : N;
-fun psychedelic_A : A;
-fun psychiatric_A : A;
-fun psychiatrist_N : N;
-fun psychiatry_N : N;
-fun psychic_A : A;
-fun psychic_N : N;
-fun psychical_A : A;
-fun psychoanalyse_V2 : V2;
-fun psychoanalysis_N : N;
-fun psychoanalyst_N : N;
-fun psychoanalytic_A : A;
-fun psychoanalytical_A : A;
-fun psychoanalyze_V2 : V2;
-fun psychological_A : A;
-fun psychologically_Adv : Adv;
-fun psychologist_N : N;
-fun psychology_N : N;
-fun psychopath_N : N;
-fun psychopathic_A : A;
-fun psychosis_N : N;
-fun psychosomatic_A : A;
-fun psychotherapy_N : N;
-fun psychotic_N : N;
-fun pt_N : N;
-fun pta_N : N;
-fun ptarmigan_N : N;
-fun pte_PN : PN;
-fun pterodactyl_N : N;
-fun pto_PN : PN;
-fun ptomaine_N : N;
-fun pty_PN : PN;
-fun pub_N : N;
-fun pub_crawl_N : N;
-fun pub_crawl_V : V;
-fun puberty_N : N;
-fun pubic_A : A;
-fun public_A : A;
-fun public_N : N;
-fun public_spirited_A : A;
-fun publican_N : N;
-fun publication_N : N;
-fun publicist_N : N;
-fun publicity_N : N;
-fun publicize_V2 : V2;
-fun publicly_Adv : Adv;
-fun publish_V2 : V2;
-fun publisher_N : N;
-fun puce_N : N;
-fun puck_N : N;
-fun pucker_N : N;
-fun pucker_V : V;
-fun pucker_V2 : V2;
-fun puckish_A : A;
-fun puckishly_Adv : Adv;
-fun pud_N : N;
-fun pudden_N : N;
-fun pudden_head_N : N;
-fun pudding_N : N;
-fun pudding_face_N : N;
-fun puddle_N : N;
-fun puddle_V2 : V2;
-fun puddler_N : N;
-fun pudgy_A : A;
-fun pudsey_PN : PN;
-fun pueblo_N : N;
-fun puerile_A : A;
-fun puerility_N : N;
-fun puerperal_A : A;
-fun puff_N : N;
-fun puff_V : V;
-fun puff_V2 : V2;
-fun puffball_N : N;
-fun puffin_N : N;
-fun puffiness_N : N;
-fun puffy_A : A;
-fun pug_N : N;
-fun pug_dog_N : N;
-fun pug_nose_A : A;
-fun pug_nose_N : N;
-fun pug_nosed_A : A;
-fun pugilism_N : N;
-fun pugilist_N : N;
-fun pugilistic_A : A;
-fun pugnacious_A : A;
-fun pugnaciously_Adv : Adv;
-fun pugnacity_N : N;
-fun puissance_N : N;
-fun puissant_A : A;
-fun puke_N : N;
-fun puke_V : V;
-fun puke_V2 : V2;
-fun pukka_A : A;
-fun pulchritude_N : N;
-fun pulchritudinous_A : A;
-fun pule_V : V;
-fun pull_N : N;
-fun pull_V : V;
-fun pull_V2 : V2;
-fun pull_in_N : N;
-fun pull_off_N : N;
-fun pull_out_N : N;
-fun pull_through_N : N;
-fun pull_up_N : N;
-fun pullet_N : N;
-fun pulley_N : N;
-fun pulley_block_N : N;
-fun pullman_N : N;
-fun pullover_N : N;
-fun pullulate_V : V;
-fun pulmonary_A : A;
-fun pulp_N : N;
-fun pulp_V : V;
-fun pulp_V2 : V2;
-fun pulpit_N : N;
-fun pulpy_A : A;
-fun pulque_N : N;
-fun pulsar_N : N;
-fun pulsate_V : V;
-fun pulsate_V2 : V2;
-fun pulsation_N : N;
-fun pulse_N : N;
-fun pulse_V : V;
-fun pulverize_V : V;
-fun pulverize_V2 : V2;
-fun puma_N : N;
-fun pumice_N : N;
-fun pumice_stone_N : N;
-fun pummel_V2 : V2;
-fun pump_N : N;
-fun pump_V : V;
-fun pump_V2 : V2;
-fun pump_room_N : N;
-fun pumpernickel_N : N;
-fun pumpkin_N : N;
-fun pun_N : N;
-fun pun_V : V;
-fun punch_N : N;
-fun punch_V2 : V2;
-fun punch_drunk_A : A;
-fun punch_up_N : N;
-fun punchball_N : N;
-fun punchbowl_N : N;
-fun punching_ball_N : N;
-fun punctilio_N : N;
-fun punctilious_A : A;
-fun punctiliously_Adv : Adv;
-fun punctiliousness_N : N;
-fun punctual_A : A;
-fun punctuality_N : N;
-fun punctually_Adv : Adv;
-fun punctuate_V2 : V2;
-fun punctuation_N : N;
-fun puncture_N : N;
-fun puncture_V : V;
-fun puncture_V2 : V2;
-fun pundit_N : N;
-fun pungency_N : N;
-fun pungent_A : A;
-fun pungently_Adv : Adv;
-fun punic_A : A;
-fun punily_Adv : Adv;
-fun punish_V2 : V2;
-fun punishable_A : A;
-fun punishment_N : N;
-fun punitive_A : A;
-fun punk_N : N;
-fun punkah_N : N;
-fun punnet_N : N;
-fun punster_N : N;
-fun punt_N : N;
-fun punt_V : V;
-fun punt_V2 : V2;
-fun punter_N : N;
-fun puny_A : A;
-fun pup_N : N;
-fun pupa_N : N;
-fun pupil_N : N;
-fun puppet_N : N;
-fun puppeteer_N : N;
-fun puppy_N : N;
-fun purblind_A : A;
-fun purchasable_A : A;
-fun purchase_N : N;
-fun purchase_V2 : V2;
-fun purchaser_N : N;
-fun purdah_N : N;
-fun pure_A : A;
-fun purely_Adv : Adv;
-fun pureness_N : N;
-fun purgation_N : N;
-fun purgative_A : A;
-fun purgative_N : N;
-fun purgatorial_A : A;
-fun purgatory_N : N;
-fun purge_N : N;
-fun purge_V2 : V2;
-fun purification_N : N;
-fun purifier_N : N;
-fun purify_V2 : V2;
-fun purist_N : N;
-fun puritan_A : A;
-fun puritan_N : N;
-fun puritanical_A : A;
-fun puritanically_Adv : Adv;
-fun puritanism_N : N;
-fun purity_N : N;
-fun purl_N : N;
-fun purl_V : V;
-fun purl_V2 : V2;
-fun purloin_V2 : V2;
-fun purple_A : A;
-fun purple_N : N;
-fun purplish_A : A;
-fun purport_N : N;
-fun purport_V2 : V2;
-fun purpose_N : N;
-fun purpose_V2 : V2;
-fun purpose_built_A : A;
-fun purposeful_A : A;
-fun purposefully_Adv : Adv;
-fun purposeless_A : A;
-fun purposelessly_Adv : Adv;
-fun purposely_Adv : Adv;
-fun purposive_A : A;
-fun purr_N : N;
-fun purr_V : V;
-fun purr_V2 : V2;
-fun purse_N : N;
-fun purse_V2 : V2;
-fun purse_proud_A : A;
-fun purser_N : N;
-fun pursuance_N : N;
-fun pursuant_A : A;
-fun pursue_V2 : V2;
-fun pursuer_N : N;
-fun pursuit_N : N;
-fun pursy_A : A;
-fun purulence_N : N;
-fun purulent_A : A;
-fun purvey_V : V;
-fun purvey_V2 : V2;
-fun purveyance_N : N;
-fun purveyor_N : N;
-fun purview_N : N;
-fun puree_N : N;
-fun pus_N : N;
-fun pusan_PN : PN;
-fun push_N : N;
-fun push_V : V;
-fun push_V2 : V2;
-fun push_bike_N : N;
-fun pushcart_N : N;
-fun pushchair_N : N;
-fun pusher_N : N;
-fun pushful_A : A;
-fun pushing_A : A;
-fun pushover_N : N;
-fun pusillanimity_N : N;
-fun pusillanimous_A : A;
-fun puss_N : N;
-fun pussy_N : N;
-fun pussycat_N : N;
-fun pussyfoot_V : V;
-fun pustule_N : N;
-fun put_N : N;
-fun put_V : V;
-fun put_V2 : V2;
-fun put_down_N : N;
-fun put_on_N : N;
-fun putative_A : A;
-fun putrefaction_N : N;
-fun putrefy_V : V;
-fun putrefy_V2 : V2;
-fun putrescence_N : N;
-fun putrescent_A : A;
-fun putrid_A : A;
-fun putridity_N : N;
-fun putsch_N : N;
-fun putt_N : N;
-fun putt_V : V;
-fun putt_V2 : V2;
-fun puttee_N : N;
-fun putter_V : V;
-fun putter_V2 : V2;
-fun putting_green_N : N;
-fun putting_iron_N : N;
-fun putty_N : N;
-fun putty_V2 : V2;
-fun puzzle_N : N;
-fun puzzle_V : V;
-fun puzzle_V2 : V2;
-fun puzzlement_N : N;
-fun puzzler_N : N;
-fun pwllheli_PN : PN;
-fun pygmy_N : N;
-fun pyjama_A : A;
-fun pyle_PN : PN;
-fun pylon_N : N;
-fun pyongyang_PN : PN;
-fun pyorrhoea_N : N;
-fun pyramid_N : N;
-fun pyre_N : N;
-fun pyrites_N : N;
-fun pyrotechnic_A : A;
-fun pyrrhic_A : A;
-fun python_N : N;
-fun pyx_N : N;
-fun pate_2_N : N;
-fun qatar_PN : PN;
-fun qatari_A : A;
-fun qatari_N : N;
-fun qc_N : N;
-fun qed_PN : PN;
-fun qt_N : N;
-fun quack_N : N;
-fun quack_V : V;
-fun quack_quack_N : N;
-fun quackery_N : N;
-fun quad_N : N;
-fun quadrangle_N : N;
-fun quadrangular_A : A;
-fun quadrant_N : N;
-fun quadratic_A : A;
-fun quadrilateral_A : A;
-fun quadrilateral_N : N;
-fun quadrille_N : N;
-fun quadrillion_N : N;
-fun quadrophonic_A : A;
-fun quadrophony_N : N;
-fun quadruped_N : N;
-fun quadruple_A : A;
-fun quadruple_N : N;
-fun quadruple_V : V;
-fun quadruple_V2 : V2;
-fun quadruplet_N : N;
-fun quadruplicate_A : A;
-fun quadruplicate_N : N;
-fun quadruplicate_V2 : V2;
-fun quaff_V : V;
-fun quaff_V2 : V2;
-fun quagga_N : N;
-fun quagmire_N : N;
-fun quai_d'orsay_N : N;
-fun quail_N : N;
-fun quail_V : V;
-fun quaint_A : A;
-fun quaintly_Adv : Adv;
-fun quaintness_N : N;
-fun quake_N : N;
-fun quake_V : V;
-fun quaker_N : N;
-fun qualification_N : N;
-fun qualified_A : A;
-fun qualifier_N : N;
-fun qualify_V : V;
-fun qualify_V2 : V2;
-fun qualitative_A : A;
-fun qualitatively_Adv : Adv;
-fun quality_N : N;
-fun qualm_N : N;
-fun quandary_N : N;
-fun quango_N : N;
-fun quantify_V2 : V2;
-fun quantitative_A : A;
-fun quantitatively_Adv : Adv;
-fun quantity_N : N;
-fun quantum_N : N;
-fun quarantine_N : N;
-fun quarantine_V2 : V2;
-fun quark_N : N;
-fun quarrel_N : N;
-fun quarrel_V : V;
-fun quarrelsome_A : A;
-fun quarry_N : N;
-fun quarry_V : V;
-fun quarry_V2 : V2;
-fun quarryman_N : N;
-fun quart_N : N;
-fun quarter_N : N;
-fun quarter_V2 : V2;
-fun quarter_day_N : N;
-fun quarter_deck_N : N;
-fun quarter_plate_N : N;
-fun quarterfinal_N : N;
-fun quartering_N : N;
-fun quarterlight_N : N;
-fun quarterly_A : A;
-fun quarterly_Adv : Adv;
-fun quarterly_N : N;
-fun quartermaster_N : N;
-fun quartermaster_general_N : N;
-fun quarterstaff_N : N;
-fun quartet_N : N;
-fun quarto_N : N;
-fun quartz_N : N;
-fun quasar_N : N;
-fun quash_V2 : V2;
-fun quassia_N : N;
-fun quatercentenary_N : N;
-fun quatrain_N : N;
-fun quattrocento_N : N;
-fun quaver_N : N;
-fun quaver_V : V;
-fun quaver_V2 : V2;
-fun quay_N : N;
-fun queasily_Adv : Adv;
-fun queasiness_N : N;
-fun queasy_A : A;
-fun quebec_PN : PN;
-fun queen_N : N;
-fun queen_V2 : V2;
-fun queenborough_in_sheppey_PN : PN;
-fun queenly_A : A;
-fun queensbury_PN : PN;
-fun queensferry_PN : PN;
-fun queensland_PN : PN;
-fun queer_A : A;
-fun queer_N : N;
-fun queer_V2 : V2;
-fun queerly_Adv : Adv;
-fun queerness_N : N;
-fun quell_V2 : V2;
-fun quench_V2 : V2;
-fun quenchless_A : A;
-fun quentin_PN : PN;
-fun quern_N : N;
-fun querulous_A : A;
-fun querulously_Adv : Adv;
-fun querulousness_N : N;
-fun query_N : N;
-fun query_V2 : V2;
-fun quest_N : N;
-fun quest_V : V;
-fun question_N : N;
-fun question_V2 : V2;
-fun question_mark_N : N;
-fun question_master_N : N;
-fun questionable_A : A;
-fun questionably_Adv : Adv;
-fun questioner_N : N;
-fun questioningly_Adv : Adv;
-fun questionnaire_N : N;
-fun quetzal_N : N;
-fun queue_N : N;
-fun queue_V : V;
-fun qui_vive_N : N;
-fun quibble_N : N;
-fun quibble_V : V;
-fun quibbler_N : N;
-fun quibbling_A : A;
-fun quiche_N : N;
-fun quick_A : A;
-fun quick_Adv : Adv;
-fun quick_N : N;
-fun quick_change_A : A;
-fun quick_eared_A : A;
-fun quick_eyed_A : A;
-fun quick_freeze_V2 : V2;
-fun quick_sighted_A : A;
-fun quick_tempered_A : A;
-fun quick_witted_A : A;
-fun quicken_V : V;
-fun quicken_V2 : V2;
-fun quicker_Adv : Adv;
-fun quickest_Adv : Adv;
-fun quickie_N : N;
-fun quicklime_N : N;
-fun quickly_Adv : Adv;
-fun quickness_N : N;
-fun quicksand_N : N;
-fun quickset_A : A;
-fun quicksilver_N : N;
-fun quickstep_N : N;
-fun quid_N : N;
-fun quid_pro_quo_N : N;
-fun quiescence_N : N;
-fun quiescent_A : A;
-fun quiescently_Adv : Adv;
-fun quiet_A : A;
-fun quiet_N : N;
-fun quiet_V : V;
-fun quiet_V2 : V2;
-fun quieten_V : V;
-fun quieten_V2 : V2;
-fun quietism_N : N;
-fun quietist_N : N;
-fun quietly_Adv : Adv;
-fun quietness_N : N;
-fun quietude_N : N;
-fun quietus_N : N;
-fun quiff_N : N;
-fun quill_N : N;
-fun quill_feather_N : N;
-fun quilt_N : N;
-fun quilt_V2 : V2;
-fun quin_N : N;
-fun quince_N : N;
-fun quincentenary_A : A;
-fun quincentenary_N : N;
-fun quinine_N : N;
-fun quinquagesima_N : N;
-fun quinquagesima_PN : PN;
-fun quinsy_N : N;
-fun quintal_N : N;
-fun quintessence_N : N;
-fun quintet_N : N;
-fun quintuplet_N : N;
-fun quip_N : N;
-fun quip_V : V;
-fun quire_N : N;
-fun quirk_N : N;
-fun quisling_N : N;
-fun quit_A : A;
-fun quit_V2 : V2;
-fun quito_PN : PN;
-fun quits_A : A;
-fun quittance_N : N;
-fun quitter_N : N;
-fun quiver_N : N;
-fun quiver_V : V;
-fun quiver_V2 : V2;
-fun quixotic_A : A;
-fun quixotically_Adv : Adv;
-fun quiz_N : N;
-fun quiz_V2 : V2;
-fun quizmaster_N : N;
-fun quizzical_A : A;
-fun quizzically_Adv : Adv;
-fun quoin_N : N;
-fun quoit_N : N;
-fun quonset_N : N;
-fun quorum_N : N;
-fun quota_N : N;
-fun quotability_N : N;
-fun quotable_A : A;
-fun quotation_N : N;
-fun quote_N : N;
-fun quote_V2 : V2;
-fun quotidian_A : A;
-fun quotient_N : N;
-fun qv_PN : PN;
-fun ra_N : N;
-fun rabbi_N : N;
-fun rabbinical_A : A;
-fun rabbit_N : N;
-fun rabbit_V : V;
-fun rabbit_burrow_N : N;
-fun rabbit_hole_N : N;
-fun rabbit_hutch_N : N;
-fun rabbit_punch_N : N;
-fun rabbit_warren_N : N;
-fun rabble_N : N;
-fun rabble_rousing_A : A;
-fun rabelaisian_A : A;
-fun rabid_A : A;
-fun rabies_N : N;
-fun raccoon_N : N;
-fun race_N : N;
-fun race_V : V;
-fun race_V2 : V2;
-fun race_meeting_N : N;
-fun racecard_N : N;
-fun racecourse_N : N;
-fun racehorse_N : N;
-fun raceme_N : N;
-fun racer_N : N;
-fun rachel_PN : PN;
-fun racial_A : A;
-fun racialism_N : N;
-fun racialist_N : N;
-fun racially_Adv : Adv;
-fun racily_Adv : Adv;
-fun raciness_N : N;
-fun racing_N : N;
-fun racism_N : N;
-fun racist_N : N;
-fun rack_N : N;
-fun rack_V2 : V2;
-fun rack_railway_N : N;
-fun rack_rent_N : N;
-fun racket_N : N;
-fun racket_V : V;
-fun racketeer_N : N;
-fun racketeering_N : N;
-fun raconteur_N : N;
-fun racoon_N : N;
-fun racquet_N : N;
-fun racy_A : A;
-fun rada_PN : PN;
-fun radar_N : N;
-fun radcliffe_PN : PN;
-fun radcliffe_on_trent_PN : PN;
-fun raddled_A : A;
-fun radial_A : A;
-fun radial_N : N;
-fun radially_Adv : Adv;
-fun radiance_N : N;
-fun radiant_A : A;
-fun radiantly_Adv : Adv;
-fun radiate_V : V;
-fun radiate_V2 : V2;
-fun radiation_N : N;
-fun radiator_N : N;
-fun radical_A : A;
-fun radical_N : N;
-fun radicalism_N : N;
-fun radically_Adv : Adv;
-fun radicle_N : N;
-fun radio_N : N;
-fun radio_gramophone_N : N;
-fun radio_location_N : N;
-fun radio_set_N : N;
-fun radio_telescope_N : N;
-fun radioactive_A : A;
-fun radioactivity_N : N;
-fun radiogram_N : N;
-fun radiograph_N : N;
-fun radiographer_N : N;
-fun radiography_N : N;
-fun radioisotope_N : N;
-fun radiologist_N : N;
-fun radiology_N : N;
-fun radiotherapist_N : N;
-fun radiotherapy_N : N;
-fun radish_N : N;
-fun radium_N : N;
-fun radius_N : N;
-fun radlett_PN : PN;
-fun radstock_PN : PN;
-fun raf_N : N;
-fun raffia_N : N;
-fun raffish_A : A;
-fun raffishly_Adv : Adv;
-fun raffle_N : N;
-fun raffle_V2 : V2;
-fun raft_N : N;
-fun raft_V : V;
-fun raft_V2 : V2;
-fun rafter_N : N;
-fun raftered_A : A;
-fun raftsman_N : N;
-fun rag_N : N;
-fun rag_V2 : V2;
-fun rag_day_N : N;
-fun ragamuffin_N : N;
-fun ragbag_N : N;
-fun rage_N : N;
-fun rage_V : V;
-fun ragged_A : A;
-fun raggedly_Adv : Adv;
-fun raggedness_N : N;
-fun raglan_N : N;
-fun ragout_N : N;
-fun ragtag_N : N;
-fun ragtime_N : N;
-fun raid_N : N;
-fun raid_V : V;
-fun raid_V2 : V2;
-fun raider_N : N;
-fun rail_N : N;
-fun rail_V : V;
-fun rail_V2 : V2;
-fun railcar_N : N;
-fun railhead_N : N;
-fun railing_N : N;
-fun raillery_N : N;
-fun railroad_N : N;
-fun railroad_V2 : V2;
-fun railway_N : N;
-fun railwayman_N : N;
-fun raiment_N : N;
-fun rain_N : N;
-fun rain_V : V;
-fun rain_V2 : V2;
-fun rain_gauge_N : N;
-fun rainbow_N : N;
-fun raincoat_N : N;
-fun raindrop_N : N;
-fun rainfall_N : N;
-fun rainford_PN : PN;
-fun rainproof_A : A;
-fun rainwater_N : N;
-fun rainy_A : A;
-fun raise_N : N;
-fun raise_V2 : V2;
-fun raiser_N : N;
-fun raisin_N : N;
-fun raison_d'etre_N : N;
-fun raj_N : N;
-fun rajah_N : N;
-fun rake_N : N;
-fun rake_V : V;
-fun rake_V2 : V2;
-fun rake_off_N : N;
-fun rakish_A : A;
-fun rakishly_Adv : Adv;
-fun rakishness_N : N;
-fun rallentando_A : A;
-fun rallentando_Adv : Adv;
-fun rally_N : N;
-fun rally_V : V;
-fun rally_V2 : V2;
-fun ralph_PN : PN;
-fun ram_N : N;
-fun ram_V2 : V2;
-fun ramadan_N : N;
-fun ramadan_PN : PN;
-fun ramble_N : N;
-fun ramble_V : V;
-fun rambler_N : N;
-fun rambling_A : A;
-fun rambunctious_A : A;
-fun ramification_N : N;
-fun ramify_V : V;
-fun ramify_V2 : V2;
-fun ramjet_N : N;
-fun ramp_N : N;
-fun ramp_V2 : V2;
-fun rampage_N : N;
-fun rampage_V : V;
-fun rampageous_A : A;
-fun rampant_A : A;
-fun rampantly_Adv : Adv;
-fun rampart_N : N;
-fun ramrod_N : N;
-fun ramsbottom_PN : PN;
-fun ramsgate_PN : PN;
-fun ramshackle_A : A;
-fun ranch_N : N;
-fun rancher_N : N;
-fun rancid_A : A;
-fun rancorous_A : A;
-fun rancour_N : N;
-fun rand_N : N;
-fun randolph_PN : PN;
-fun random_N : N;
-fun randomly_Adv : Adv;
-fun randomness_N : N;
-fun randy_A : A;
-fun ranee_N : N;
-fun range_N : N;
-fun range_V : V;
-fun range_V2 : V2;
-fun rangefinder_N : N;
-fun ranger_N : N;
-fun rangoon_PN : PN;
-fun rani_N : N;
-fun rank_A : A;
-fun rank_N : N;
-fun rank_V : V;
-fun rank_V2 : V2;
-fun ranker_N : N;
-fun ranking_N : N;
-fun rankle_V : V;
-fun rankly_Adv : Adv;
-fun rankness_N : N;
-fun ransack_V2 : V2;
-fun ransom_N : N;
-fun ransom_V2 : V2;
-fun rant_N : N;
-fun rant_V : V;
-fun rant_V2 : V2;
-fun ranter_N : N;
-fun rap_N : N;
-fun rap_V : V;
-fun rap_V2 : V2;
-fun rapacious_A : A;
-fun rapaciously_Adv : Adv;
-fun rapacity_N : N;
-fun rape_N : N;
-fun rape_V2 : V2;
-fun rapid_A : A;
-fun rapid_N : N;
-fun rapidity_N : N;
-fun rapidly_Adv : Adv;
-fun rapier_N : N;
-fun rapier_thrust_N : N;
-fun rapine_N : N;
-fun rapist_N : N;
-fun rapport_N : N;
-fun rapprochement_N : N;
-fun rapscallion_N : N;
-fun rapt_A : A;
-fun rapture_N : N;
-fun rapturous_A : A;
-fun rapturously_Adv : Adv;
-fun rare_A : A;
-fun rarebit_N : N;
-fun rarefaction_N : N;
-fun rarefy_V : V;
-fun rarefy_V2 : V2;
-fun rarely_Adv : Adv;
-fun rareness_N : N;
-fun raring_A : A;
-fun rarity_N : N;
-fun rascal_N : N;
-fun rascally_A : A;
-fun rase_V2 : V2;
-fun rash_A : A;
-fun rash_N : N;
-fun rasher_N : N;
-fun rashly_Adv : Adv;
-fun rashness_N : N;
-fun rasp_N : N;
-fun rasp_V : V;
-fun rasp_V2 : V2;
-fun raspberry_N : N;
-fun raspingly_Adv : Adv;
-fun rat_N : N;
-fun rat_V2 : V2;
-fun rat_a_tat_tat_N : N;
-fun rat_tat_N : N;
-fun ratability_N : N;
-fun ratable_A : A;
-fun ratan_N : N;
-fun ratch_N : N;
-fun ratchet_N : N;
-fun rate_N : N;
-fun rate_V : V;
-fun rate_V2 : V2;
-fun rateability_N : N;
-fun rateable_A : A;
-fun ratepayer_N : N;
-fun rather_Adv : Adv;
-fun ratification_N : N;
-fun ratify_V2 : V2;
-fun rating_N : N;
-fun ratio_N : N;
-fun ratiocination_N : N;
-fun ration_N : N;
-fun ration_V2 : V2;
-fun rational_A : A;
-fun rationale_N : N;
-fun rationalism_N : N;
-fun rationalist_N : N;
-fun rationalistic_A : A;
-fun rationality_N : N;
-fun rationalization_N : N;
-fun rationalize_V2 : V2;
-fun rationally_Adv : Adv;
-fun ratlin_N : N;
-fun ratline_N : N;
-fun rattan_N : N;
-fun ratter_N : N;
-fun rattle_N : N;
-fun rattle_V : V;
-fun rattle_V2 : V2;
-fun rattlebrained_A : A;
-fun rattlepated_A : A;
-fun rattler_N : N;
-fun rattlesnake_N : N;
-fun rattling_A : A;
-fun rattling_Adv : Adv;
-fun ratty_A : A;
-fun raucous_A : A;
-fun raucously_Adv : Adv;
-fun ravage_N : N;
-fun ravage_V : V;
-fun ravage_V2 : V2;
-fun rave_N : N;
-fun rave_V : V;
-fun rave_up_N : N;
-fun ravel_V : V;
-fun ravel_V2 : V2;
-fun raven_N : N;
-fun ravening_A : A;
-fun ravenna_PN : PN;
-fun ravenous_A : A;
-fun ravenously_Adv : Adv;
-fun raver_N : N;
-fun ravine_N : N;
-fun raving_A : A;
-fun raving_Adv : Adv;
-fun ravioli_N : N;
-fun ravish_V2 : V2;
-fun ravishingly_Adv : Adv;
-fun ravishment_N : N;
-fun raw_A : A;
-fun raw_N : N;
-fun rawboned_A : A;
-fun rawhide_A : A;
-fun rawtenstall_PN : PN;
-fun ray_N : N;
-fun ray_PN : PN;
-fun ray_V : V;
-fun ray_V2 : V2;
-fun raymond_PN : PN;
-fun rayon_N : N;
-fun raze_V2 : V2;
-fun razor_N : N;
-fun razor_V2 : V2;
-fun razor_edge_N : N;
-fun razorback_N : N;
-fun razorbacked_A : A;
-fun razorblade_N : N;
-fun razzle_N : N;
-fun razzle_dazzle_N : N;
-fun rc_PN : PN;
-fun rd_PN : PN;
-fun re_N : N;
-fun re_address_V2 : V2;
-fun re_afforest_V2 : V2;
-fun re_afforestation_N : N;
-fun re_count_N : N;
-fun re_count_V2 : V2;
-fun re_cover_V2 : V2;
-fun re_echo_N : N;
-fun re_echo_V : V;
-fun re_entry_N : N;
-fun re_form_V : V;
-fun re_form_V2 : V2;
-fun re_formation_N : N;
-fun re_join_V2 : V2;
-fun reach_N : N;
-fun reach_V : V;
-fun reach_V2 : V2;
-fun react_V : V;
-fun reaction_N : N;
-fun reactionary_N : N;
-fun reactor_N : N;
-fun read_N : N;
-fun read_V : V;
-fun read_V2 : V2;
-fun readability_N : N;
-fun readable_A : A;
-fun reader_N : N;
-fun readership_N : N;
-fun readily_Adv : Adv;
-fun readiness_N : N;
-fun reading_N : N;
-fun reading_PN : PN;
-fun reading_lamp_N : N;
-fun reading_room_N : N;
-fun readjust_V2 : V2;
-fun readjustment_N : N;
-fun readmission_N : N;
-fun readmit_V2 : V2;
-fun ready_A : A;
-fun ready_N : N;
-fun ready_made_A : A;
-fun reaffiliation_N : N;
-fun reaffirm_V2 : V2;
-fun reagent_N : N;
-fun real_A : A;
-fun real_N : N;
-fun realism_N : N;
-fun realist_N : N;
-fun realistic_A : A;
-fun realistically_Adv : Adv;
-fun reality_N : N;
-fun realizable_A : A;
-fun realization_N : N;
-fun realize_V2 : V2;
-fun reallocation_N : N;
-fun really_Adv : Adv;
-fun realm_N : N;
-fun realtor_N : N;
-fun realty_N : N;
-fun ream_N : N;
-fun reanimate_V2 : V2;
-fun reap_V : V;
-fun reap_V2 : V2;
-fun reaper_N : N;
-fun reaping_hook_N : N;
-fun reappear_V : V;
-fun reappearance_N : N;
-fun reappraisal_N : N;
-fun rear_N : N;
-fun rear_V : V;
-fun rear_V2 : V2;
-fun rear_admiral_N : N;
-fun rearguard_N : N;
-fun rearm_V : V;
-fun rearm_V2 : V2;
-fun rearmament_N : N;
-fun rearmost_A : A;
-fun rearrange_V2 : V2;
-fun rearrangement_N : N;
-fun rearward_N : N;
-fun rearwards_Adv : Adv;
-fun reason_N : N;
-fun reason_V : V;
-fun reason_V2 : V2;
-fun reasonable_A : A;
-fun reasonableness_N : N;
-fun reasonably_Adv : Adv;
-fun reasoning_N : N;
-fun reasonless_A : A;
-fun reassemble_V : V;
-fun reassemble_V2 : V2;
-fun reassess_V2 : V2;
-fun reassessment_N : N;
-fun reassurance_N : N;
-fun reassure_V2 : V2;
-fun reassuring_A : A;
-fun reassuringly_Adv : Adv;
-fun reattribute_V2 : V2;
-fun rebarbative_A : A;
-fun rebate_N : N;
-fun rebecca_PN : PN;
-fun rebel_N : N;
-fun rebel_V : V;
-fun rebellion_N : N;
-fun rebellious_A : A;
-fun rebelliously_Adv : Adv;
-fun rebelliousness_N : N;
-fun rebind_V2 : V2;
-fun rebirth_N : N;
-fun reborn_A : A;
-fun rebound_N : N;
-fun rebound_V : V;
-fun rebuff_N : N;
-fun rebuff_V2 : V2;
-fun rebuild_V2 : V2;
-fun rebuke_N : N;
-fun rebuke_V2 : V2;
-fun rebukingly_Adv : Adv;
-fun rebus_N : N;
-fun rebut_V2 : V2;
-fun rebuttal_N : N;
-fun rec_PN : PN;
-fun recalcitrance_N : N;
-fun recalcitrancy_N : N;
-fun recalcitrant_A : A;
-fun recall_N : N;
-fun recall_V2 : V2;
-fun recant_V : V;
-fun recant_V2 : V2;
-fun recantation_N : N;
-fun recap_N : N;
-fun recap_V : V;
-fun recap_V2 : V2;
-fun recapitulate_V : V;
-fun recapitulate_V2 : V2;
-fun recapitulation_N : N;
-fun recapture_V2 : V2;
-fun recast_V2 : V2;
-fun recce_N : N;
-fun recd_PN : PN;
-fun recede_V : V;
-fun receipt_N : N;
-fun receipt_V2 : V2;
-fun receivable_A : A;
-fun receive_V : V;
-fun receive_V2 : V2;
-fun received_A : A;
-fun receiver_N : N;
-fun receivership_N : N;
-fun receiving_set_N : N;
-fun recent_A : A;
-fun recently_Adv : Adv;
-fun receptacle_N : N;
-fun reception_N : N;
-fun reception_desk_N : N;
-fun receptionist_N : N;
-fun receptive_A : A;
-fun receptively_Adv : Adv;
-fun receptiveness_N : N;
-fun receptivity_N : N;
-fun recess_N : N;
-fun recess_V2 : V2;
-fun recession_N : N;
-fun recessional_A : A;
-fun recessional_N : N;
-fun recessive_A : A;
-fun recherche_A : A;
-fun recidivism_N : N;
-fun recidivist_N : N;
-fun recife_PN : PN;
-fun recipe_N : N;
-fun recipient_N : N;
-fun reciprocal_A : A;
-fun reciprocal_N : N;
-fun reciprocally_Adv : Adv;
-fun reciprocate_V : V;
-fun reciprocate_V2 : V2;
-fun reciprocation_N : N;
-fun reciprocity_N : N;
-fun recital_N : N;
-fun recitalist_N : N;
-fun recitation_N : N;
-fun recitative_N : N;
-fun recite_V : V;
-fun recite_V2 : V2;
-fun reckless_A : A;
-fun recklessly_Adv : Adv;
-fun recklessness_N : N;
-fun recklinghausen_PN : PN;
-fun reckon_V : V;
-fun reckon_V2 : V2;
-fun reckoner_N : N;
-fun reckoning_N : N;
-fun reclaim_V2 : V2;
-fun reclamation_N : N;
-fun recline_V : V;
-fun recline_V2 : V2;
-fun recluse_N : N;
-fun recognition_N : N;
-fun recognizable_A : A;
-fun recognizably_Adv : Adv;
-fun recognizance_N : N;
-fun recognize_V2 : V2;
-fun recoil_N : N;
-fun recoil_V : V;
-fun recollect_V : V;
-fun recollect_V2 : V2;
-fun recollection_N : N;
-fun recommend_V2 : V2;
-fun recommendation_N : N;
-fun recommit_V2 : V2;
-fun recompense_N : N;
-fun recompense_V2 : V2;
-fun reconcilable_A : A;
-fun reconcile_V2 : V2;
-fun reconciliation_N : N;
-fun recondite_A : A;
-fun recondition_V2 : V2;
-fun reconnaissance_N : N;
-fun reconnoitre_V : V;
-fun reconnoitre_V2 : V2;
-fun reconsecrate_V2 : V2;
-fun reconsider_V2 : V2;
-fun reconstruct_V2 : V2;
-fun reconstruction_N : N;
-fun reconvict_V2 : V2;
-fun record_N : N;
-fun record_V2 : V2;
-fun record_breaking_A : A;
-fun record_player_N : N;
-fun recorder_N : N;
-fun recording_N : N;
-fun recount_V2 : V2;
-fun recoup_V2 : V2;
-fun recourse_N : N;
-fun recover_V : V;
-fun recover_V2 : V2;
-fun recoverable_A : A;
-fun recovery_N : N;
-fun recreant_A : A;
-fun recreant_N : N;
-fun recreate_V2 : V2;
-fun recreation_N : N;
-fun recreational_A : A;
-fun recriminate_V : V;
-fun recrimination_N : N;
-fun recriminatory_A : A;
-fun recrudescence_N : N;
-fun recruit_N : N;
-fun recruit_V : V;
-fun recruit_V2 : V2;
-fun recruitment_N : N;
-fun rectal_A : A;
-fun rectangle_N : N;
-fun rectangular_A : A;
-fun rectification_N : N;
-fun rectifier_N : N;
-fun rectify_V2 : V2;
-fun rectilinear_A : A;
-fun rectitude_N : N;
-fun recto_N : N;
-fun rector_N : N;
-fun rectory_N : N;
-fun rectum_N : N;
-fun recumbent_A : A;
-fun recuperate_V : V;
-fun recuperate_V2 : V2;
-fun recuperation_N : N;
-fun recuperative_A : A;
-fun recur_V : V;
-fun recurrence_N : N;
-fun recurrent_A : A;
-fun recurve_V : V;
-fun recurve_V2 : V2;
-fun recusancy_N : N;
-fun recusant_A : A;
-fun recusant_N : N;
-fun recycle_V2 : V2;
-fun red_A : A;
-fun red_N : N;
-fun red_hot_A : A;
-fun red_rimmed_A : A;
-fun redact_V2 : V2;
-fun redaction_N : N;
-fun redbreast_N : N;
-fun redbrick_A : A;
-fun redbridge_PN : PN;
-fun redcap_N : N;
-fun redcoat_N : N;
-fun redden_V : V;
-fun redden_V2 : V2;
-fun reddish_A : A;
-fun redditch_PN : PN;
-fun redecorate_V2 : V2;
-fun redeem_V2 : V2;
-fun redeemable_A : A;
-fun redeemer_N : N;
-fun redefine_V2 : V2;
-fun redemption_N : N;
-fun redemptive_A : A;
-fun redeploy_V2 : V2;
-fun redeployment_N : N;
-fun redesign_V2 : V2;
-fun redevelop_V2 : V2;
-fun redevelopment_N : N;
-fun redhead_N : N;
-fun rediffusion_N : N;
-fun rediscover_V2 : V2;
-fun rediscovery_N : N;
-fun redisposition_N : N;
-fun redistribute_V2 : V2;
-fun redistribution_N : N;
-fun redness_N : N;
-fun redo_V2 : V2;
-fun redolence_N : N;
-fun redolent_A : A;
-fun redouble_V : V;
-fun redouble_V2 : V2;
-fun redoubt_N : N;
-fun redoubtable_A : A;
-fun redound_V : V;
-fun redress_N : N;
-fun redress_V2 : V2;
-fun redruth_PN : PN;
-fun redskin_N : N;
-fun reduce_V : V;
-fun reduce_V2 : V2;
-fun reducible_A : A;
-fun reductio_ad_absurdum_N : N;
-fun reduction_N : N;
-fun redundance_N : N;
-fun redundancy_N : N;
-fun redundant_A : A;
-fun reduplicate_V2 : V2;
-fun reduplication_N : N;
-fun redwing_N : N;
-fun redwood_N : N;
-fun reed_N : N;
-fun reedy_A : A;
-fun reef_N : N;
-fun reef_V2 : V2;
-fun reef_knot_N : N;
-fun reefer_N : N;
-fun reek_N : N;
-fun reek_V : V;
-fun reel_N : N;
-fun reel_V : V;
-fun reel_V2 : V2;
-fun reeve_N : N;
-fun ref_N : N;
-fun reface_V2 : V2;
-fun refashion_N : N;
-fun refashion_V2 : V2;
-fun refection_N : N;
-fun refectory_N : N;
-fun refer_V : V;
-fun refer_V2 : V2;
-fun referable_A : A;
-fun referee_N : N;
-fun referee_V : V;
-fun referee_V2 : V2;
-fun reference_N : N;
-fun referendum_N : N;
-fun referential_A : A;
-fun refill_N : N;
-fun refill_V2 : V2;
-fun refine_V : V;
-fun refine_V2 : V2;
-fun refinement_N : N;
-fun refiner_N : N;
-fun refinery_N : N;
-fun refit_N : N;
-fun refit_V : V;
-fun refit_V2 : V2;
-fun reflate_V2 : V2;
-fun reflation_N : N;
-fun reflect_V : V;
-fun reflect_V2 : V2;
-fun reflection_N : N;
-fun reflective_A : A;
-fun reflectively_Adv : Adv;
-fun reflector_N : N;
-fun reflex_A : A;
-fun reflex_N : N;
-fun reflexion_N : N;
-fun reflexive_A : A;
-fun reflexive_N : N;
-fun refloat_V : V;
-fun refloat_V2 : V2;
-fun reflux_N : N;
-fun reforest_V2 : V2;
-fun reforestation_N : N;
-fun reform_N : N;
-fun reform_V : V;
-fun reform_V2 : V2;
-fun reformation_N : N;
-fun reformatory_A : A;
-fun reformatory_N : N;
-fun reformer_N : N;
-fun refract_V2 : V2;
-fun refraction_N : N;
-fun refractory_A : A;
-fun refrain_N : N;
-fun refrain_V : V;
-fun refresh_V2 : V2;
-fun refresher_N : N;
-fun refreshing_A : A;
-fun refreshingly_Adv : Adv;
-fun refreshment_N : N;
-fun refrigerant_A : A;
-fun refrigerant_N : N;
-fun refrigerate_V2 : V2;
-fun refrigeration_N : N;
-fun refrigerator_N : N;
-fun refuel_V : V;
-fun refuel_V2 : V2;
-fun refuge_N : N;
-fun refugee_N : N;
-fun refulgence_N : N;
-fun refulgent_A : A;
-fun refund_N : N;
-fun refund_V2 : V2;
-fun refurbish_V2 : V2;
-fun refurnish_V2 : V2;
-fun refusal_N : N;
-fun refuse_N : N;
-fun refuse_V : V;
-fun refuse_V2 : V2;
-fun refuse_collector_N : N;
-fun refutable_A : A;
-fun refutation_N : N;
-fun refute_V2 : V2;
-fun reg_PN : PN;
-fun regain_V2 : V2;
-fun regal_A : A;
-fun regale_V2 : V2;
-fun regally_Adv : Adv;
-fun regard_N : N;
-fun regard_V2 : V2;
-fun regardful_A : A;
-fun regardless_A : A;
-fun regatta_N : N;
-fun regency_N : N;
-fun regenerate_A : A;
-fun regenerate_V : V;
-fun regenerate_V2 : V2;
-fun regeneration_N : N;
-fun regensburg_PN : PN;
-fun regent_A : A;
-fun regent_N : N;
-fun reggae_N : N;
-fun regicide_N : N;
-fun regime_1_N : N;
-fun regimen_N : N;
-fun regiment_N : N;
-fun regiment_V2 : V2;
-fun regimental_A : A;
-fun regimentation_N : N;
-fun regina_PN : PN;
-fun reginald_PN : PN;
-fun region_N : N;
-fun regional_A : A;
-fun regionally_Adv : Adv;
-fun register_N : N;
-fun register_V : V;
-fun register_V2 : V2;
-fun registrar_N : N;
-fun registration_N : N;
-fun registry_N : N;
-fun regnant_A : A;
-fun regress_V : V;
-fun regression_N : N;
-fun regressive_A : A;
-fun regret_N : N;
-fun regret_V2 : V2;
-fun regretful_A : A;
-fun regretfully_Adv : Adv;
-fun regrettable_A : A;
-fun regrettably_Adv : Adv;
-fun regroup_V : V;
-fun regroup_V2 : V2;
-fun regular_A : A;
-fun regular_N : N;
-fun regularity_N : N;
-fun regularization_N : N;
-fun regularize_V2 : V2;
-fun regularly_Adv : Adv;
-fun regulate_V2 : V2;
-fun regulation_N : N;
-fun regulator_N : N;
-fun regurgitate_V : V;
-fun regurgitate_V2 : V2;
-fun rehabilitate_V2 : V2;
-fun rehabilitation_N : N;
-fun rehash_N : N;
-fun rehash_V2 : V2;
-fun rehear_V2 : V2;
-fun rehearing_N : N;
-fun rehearsal_N : N;
-fun rehearse_V : V;
-fun rehearse_V2 : V2;
-fun rehouse_V2 : V2;
-fun reich_N : N;
-fun reigate_PN : PN;
-fun reign_N : N;
-fun reign_V : V;
-fun reimburse_V2 : V2;
-fun reimbursement_N : N;
-fun reimposition_N : N;
-fun rein_N : N;
-fun rein_V2 : V2;
-fun reincarnate_A : A;
-fun reincarnate_V2 : V2;
-fun reincarnation_N : N;
-fun reindeer_N : N;
-fun reinforce_V2 : V2;
-fun reinforcement_N : N;
-fun reinstate_V2 : V2;
-fun reinstatement_N : N;
-fun reinsurance_N : N;
-fun reinsure_V2 : V2;
-fun reintegrate_V2 : V2;
-fun reinterpret_V2 : V2;
-fun reinterpretation_N : N;
-fun reissue_N : N;
-fun reissue_V2 : V2;
-fun reiterate_V2 : V2;
-fun reiteration_N : N;
-fun reject_N : N;
-fun reject_V2 : V2;
-fun rejection_N : N;
-fun rejig_V2 : V2;
-fun rejoice_V : V;
-fun rejoice_V2 : V2;
-fun rejoicing_N : N;
-fun rejoin_V : V;
-fun rejoin_V2 : V2;
-fun rejoinder_N : N;
-fun rejuvenate_V : V;
-fun rejuvenate_V2 : V2;
-fun rejuvenation_N : N;
-fun rekindle_V : V;
-fun rekindle_V2 : V2;
-fun relapse_N : N;
-fun relapse_V : V;
-fun relate_V : V;
-fun relate_V2 : V2;
-fun relation_N : N;
-fun relationship_N : N;
-fun relative_A : A;
-fun relative_N : N;
-fun relatively_Adv : Adv;
-fun relativity_N : N;
-fun relax_V : V;
-fun relax_V2 : V2;
-fun relaxation_N : N;
-fun relay_N : N;
-fun relay_V2 : V2;
-fun release_N : N;
-fun release_V2 : V2;
-fun relegate_V2 : V2;
-fun relegation_N : N;
-fun relent_V : V;
-fun relentless_A : A;
-fun relentlessly_Adv : Adv;
-fun relevance_N : N;
-fun relevancy_N : N;
-fun relevant_A : A;
-fun relevantly_Adv : Adv;
-fun reliability_N : N;
-fun reliable_A : A;
-fun reliably_Adv : Adv;
-fun reliance_N : N;
-fun reliant_A : A;
-fun relic_N : N;
-fun relict_N : N;
-fun relief_N : N;
-fun relieve_V2 : V2;
-fun religion_N : N;
-fun religious_A : A;
-fun religious_N : N;
-fun religiously_Adv : Adv;
-fun reline_V2 : V2;
-fun relinquish_V2 : V2;
-fun reliquary_N : N;
-fun relish_N : N;
-fun relish_V2 : V2;
-fun relive_V2 : V2;
-fun relocate_V : V;
-fun relocate_V2 : V2;
-fun relocation_N : N;
-fun reluctance_N : N;
-fun reluctant_A : A;
-fun reluctantly_Adv : Adv;
-fun rely_V : V;
-fun remain_V : V;
-fun remainder_N : N;
-fun remake_N : N;
-fun remake_V2 : V2;
-fun remand_N : N;
-fun remand_V2 : V2;
-fun remark_N : N;
-fun remark_V : V;
-fun remark_V2 : V2;
-fun remarkable_A : A;
-fun remarkably_Adv : Adv;
-fun remarriage_N : N;
-fun remarry_V : V;
-fun remarry_V2 : V2;
-fun remediable_A : A;
-fun remedial_A : A;
-fun remedy_N : N;
-fun remedy_V2 : V2;
-fun remember_V : V;
-fun remember_V2 : V2;
-fun remembrance_N : N;
-fun remilitarization_N : N;
-fun remilitarize_V2 : V2;
-fun remind_V2 : V2;
-fun reminder_N : N;
-fun reminisce_V : V;
-fun reminiscence_N : N;
-fun reminiscent_A : A;
-fun reminiscently_Adv : Adv;
-fun remiss_A : A;
-fun remission_N : N;
-fun remissness_N : N;
-fun remit_V : V;
-fun remit_V2 : V2;
-fun remittance_N : N;
-fun remittent_A : A;
-fun remnant_N : N;
-fun remodel_V2 : V2;
-fun remonstrance_N : N;
-fun remonstrate_V : V;
-fun remorse_N : N;
-fun remorseful_A : A;
-fun remorsefully_Adv : Adv;
-fun remorseless_A : A;
-fun remorselessly_Adv : Adv;
-fun remote_A : A;
-fun remotely_Adv : Adv;
-fun remoteness_N : N;
-fun remould_V2 : V2;
-fun remount_N : N;
-fun remount_V : V;
-fun remount_V2 : V2;
-fun removable_A : A;
-fun removal_N : N;
-fun remove_N : N;
-fun remove_V : V;
-fun remove_V2 : V2;
-fun removed_A : A;
-fun remover_N : N;
-fun remscheid_PN : PN;
-fun remunerate_V2 : V2;
-fun remuneration_N : N;
-fun remunerative_A : A;
-fun renaissance_N : N;
-fun renal_A : A;
-fun rename_V2 : V2;
-fun renascence_N : N;
-fun renascent_A : A;
-fun rend_V2 : V2;
-fun render_V2 : V2;
-fun rendering_N : N;
-fun rendezvous_N : N;
-fun rendezvous_V : V;
-fun rendition_N : N;
-fun renegade_N : N;
-fun renegade_V : V;
-fun renege_V : V;
-fun renegue_V : V;
-fun renew_V2 : V2;
-fun renewable_A : A;
-fun renewal_N : N;
-fun renfrew_PN : PN;
-fun rennes_PN : PN;
-fun rennet_N : N;
-fun renounce_V2 : V2;
-fun renovate_V2 : V2;
-fun renovation_N : N;
-fun renovator_N : N;
-fun renown_N : N;
-fun renowned_A : A;
-fun rent_N : N;
-fun rent_V : V;
-fun rent_V2 : V2;
-fun rent_collector_N : N;
-fun rent_free_A : A;
-fun rent_free_Adv : Adv;
-fun rent_rebate_N : N;
-fun rent_roll_N : N;
-fun rentable_A : A;
-fun rental_N : N;
-fun rentier_N : N;
-fun renunciation_N : N;
-fun reopen_V : V;
-fun reopen_V2 : V2;
-fun reorganization_N : N;
-fun reorganize_V : V;
-fun reorganize_V2 : V2;
-fun reorient_V : V;
-fun reorient_V2 : V2;
-fun reorientate_V : V;
-fun reorientate_V2 : V2;
-fun reorientation_N : N;
-fun rep_N : N;
-fun repaint_V2 : V2;
-fun repair_N : N;
-fun repair_V : V;
-fun repair_V2 : V2;
-fun repairable_A : A;
-fun repairer_N : N;
-fun reparable_A : A;
-fun reparation_N : N;
-fun repartee_N : N;
-fun repast_N : N;
-fun repatriate_N : N;
-fun repatriate_V2 : V2;
-fun repatriation_N : N;
-fun repay_V : V;
-fun repay_V2 : V2;
-fun repayable_A : A;
-fun repayment_N : N;
-fun repeal_N : N;
-fun repeal_V2 : V2;
-fun repeat_N : N;
-fun repeat_V : V;
-fun repeat_V2 : V2;
-fun repeatable_A : A;
-fun repeated_A : A;
-fun repeatedly_Adv : Adv;
-fun repeater_N : N;
-fun repel_V2 : V2;
-fun repellent_A : A;
-fun repellent_N : N;
-fun repent_V : V;
-fun repent_V2 : V2;
-fun repentance_N : N;
-fun repentant_A : A;
-fun repentantly_Adv : Adv;
-fun repercussion_N : N;
-fun repertoire_N : N;
-fun repertory_N : N;
-fun repetition_N : N;
-fun repetitious_A : A;
-fun repetitive_A : A;
-fun repetitively_Adv : Adv;
-fun repine_V : V;
-fun replace_V2 : V2;
-fun replaceable_A : A;
-fun replacement_N : N;
-fun replant_V2 : V2;
-fun replay_N : N;
-fun replay_V2 : V2;
-fun replenish_V2 : V2;
-fun replenishment_N : N;
-fun replete_A : A;
-fun repletion_N : N;
-fun replica_N : N;
-fun reply_N : N;
-fun reply_V : V;
-fun reply_V2 : V2;
-fun reply_paid_A : A;
-fun repoint_V2 : V2;
-fun report_N : N;
-fun report_V : V;
-fun report_V2 : V2;
-fun reportable_A : A;
-fun reportage_N : N;
-fun reportedly_Adv : Adv;
-fun reporter_N : N;
-fun repose_N : N;
-fun repose_V : V;
-fun repose_V2 : V2;
-fun reposeful_A : A;
-fun repository_N : N;
-fun repot_V2 : V2;
-fun repp_N : N;
-fun reprehend_V2 : V2;
-fun reprehensible_A : A;
-fun reprehensibly_Adv : Adv;
-fun represent_V2 : V2;
-fun representation_N : N;
-fun representative_A : A;
-fun representative_N : N;
-fun repress_V2 : V2;
-fun repressed_A : A;
-fun repression_N : N;
-fun repressive_A : A;
-fun reprieve_N : N;
-fun reprieve_V2 : V2;
-fun reprimand_N : N;
-fun reprimand_V2 : V2;
-fun reprint_N : N;
-fun reprint_V2 : V2;
-fun reprisal_N : N;
-fun reproach_N : N;
-fun reproach_V2 : V2;
-fun reproachful_A : A;
-fun reproachfully_Adv : Adv;
-fun reprobate_N : N;
-fun reprobate_V2 : V2;
-fun reprobation_N : N;
-fun reproduce_V : V;
-fun reproduce_V2 : V2;
-fun reproducer_N : N;
-fun reproducible_A : A;
-fun reproduction_N : N;
-fun reproductive_A : A;
-fun reproof_N : N;
-fun reproof_V2 : V2;
-fun reprove_V2 : V2;
-fun reprovingly_Adv : Adv;
-fun reps_N : N;
-fun reptile_N : N;
-fun reptilian_A : A;
-fun reptilian_N : N;
-fun republic_N : N;
-fun republican_A : A;
-fun republican_N : N;
-fun republicanism_N : N;
-fun repudiate_V2 : V2;
-fun repudiation_N : N;
-fun repugnance_N : N;
-fun repugnant_A : A;
-fun repulse_N : N;
-fun repulse_V2 : V2;
-fun repulsion_N : N;
-fun repulsive_A : A;
-fun repulsively_Adv : Adv;
-fun reputable_A : A;
-fun reputably_Adv : Adv;
-fun reputation_N : N;
-fun repute_N : N;
-fun repute_V2 : V2;
-fun reputed_A : A;
-fun reputedly_Adv : Adv;
-fun request_N : N;
-fun request_V2 : V2;
-fun requiem_N : N;
-fun require_V2 : V2;
-fun requirement_N : N;
-fun requisite_A : A;
-fun requisite_N : N;
-fun requisition_N : N;
-fun requisition_V2 : V2;
-fun requital_N : N;
-fun requite_V2 : V2;
-fun reread_V2 : V2;
-fun reredos_N : N;
-fun rerun_N : N;
-fun rerun_V2 : V2;
-fun res_N : N;
-fun rescind_V2 : V2;
-fun rescript_N : N;
-fun rescue_N : N;
-fun rescue_V2 : V2;
-fun rescuer_N : N;
-fun research_N : N;
-fun research_V : V;
-fun researcher_N : N;
-fun reseat_V2 : V2;
-fun reseed_V2 : V2;
-fun resell_V2 : V2;
-fun resemblance_N : N;
-fun resemble_V2 : V2;
-fun resent_V2 : V2;
-fun resentful_A : A;
-fun resentfully_Adv : Adv;
-fun resentment_N : N;
-fun reservation_N : N;
-fun reserve_N : N;
-fun reserve_V2 : V2;
-fun reserved_A : A;
-fun reservedly_Adv : Adv;
-fun reservist_N : N;
-fun reservoir_N : N;
-fun reset_V2 : V2;
-fun resettle_V : V;
-fun resettle_V2 : V2;
-fun resettlement_N : N;
-fun reshape_V2 : V2;
-fun reshuffle_N : N;
-fun reshuffle_V2 : V2;
-fun reside_V : V;
-fun residence_N : N;
-fun residency_N : N;
-fun resident_A : A;
-fun resident_N : N;
-fun residential_A : A;
-fun residual_A : A;
-fun residuary_A : A;
-fun residue_N : N;
-fun resign_V : V;
-fun resign_V2 : V2;
-fun resignation_N : N;
-fun resigned_A : A;
-fun resignedly_Adv : Adv;
-fun resilience_N : N;
-fun resiliency_N : N;
-fun resilient_A : A;
-fun resin_N : N;
-fun resinated_A : A;
-fun resinous_A : A;
-fun resist_V : V;
-fun resist_V2 : V2;
-fun resistance_N : N;
-fun resistant_A : A;
-fun resister_N : N;
-fun resistive_A : A;
-fun resistivity_N : N;
-fun resistless_A : A;
-fun resistor_N : N;
-fun resole_V2 : V2;
-fun resolute_A : A;
-fun resolutely_Adv : Adv;
-fun resoluteness_N : N;
-fun resolution_N : N;
-fun resolvable_A : A;
-fun resolve_N : N;
-fun resolve_V : V;
-fun resolve_V2 : V2;
-fun resonance_N : N;
-fun resonant_A : A;
-fun resonate_V : V;
-fun resonate_V2 : V2;
-fun resonator_N : N;
-fun resort_N : N;
-fun resort_V : V;
-fun resound_V : V;
-fun resound_V2 : V2;
-fun resoundingly_Adv : Adv;
-fun resource_N : N;
-fun resourceful_A : A;
-fun resourcefully_Adv : Adv;
-fun resourceless_A : A;
-fun respect_N : N;
-fun respect_V2 : V2;
-fun respectability_N : N;
-fun respectable_A : A;
-fun respectably_Adv : Adv;
-fun respecter_N : N;
-fun respectful_A : A;
-fun respectfully_Adv : Adv;
-fun respective_A : A;
-fun respectively_Adv : Adv;
-fun respiration_N : N;
-fun respirator_N : N;
-fun respiratory_A : A;
-fun respire_V : V;
-fun respite_N : N;
-fun respite_V2 : V2;
-fun resplendence_N : N;
-fun resplendency_N : N;
-fun resplendent_A : A;
-fun resplendently_Adv : Adv;
-fun respond_V : V;
-fun respondent_N : N;
-fun response_N : N;
-fun responsibility_N : N;
-fun responsible_A : A;
-fun responsibly_Adv : Adv;
-fun responsive_A : A;
-fun responsiveness_N : N;
-fun rest_N : N;
-fun rest_V : V;
-fun rest_V2 : V2;
-fun rest_cure_N : N;
-fun rest_day_N : N;
-fun rest_home_N : N;
-fun rest_house_N : N;
-fun restart_V : V;
-fun restart_V2 : V2;
-fun restate_V2 : V2;
-fun restatement_N : N;
-fun restaurant_N : N;
-fun restauranteur_N : N;
-fun restaurateur_N : N;
-fun restful_A : A;
-fun restfully_Adv : Adv;
-fun restfulness_N : N;
-fun restitution_N : N;
-fun restive_A : A;
-fun restively_Adv : Adv;
-fun restiveness_N : N;
-fun restless_A : A;
-fun restlessly_Adv : Adv;
-fun restlessness_N : N;
-fun restock_V2 : V2;
-fun restoration_N : N;
-fun restorative_A : A;
-fun restorative_N : N;
-fun restore_V2 : V2;
-fun restorer_N : N;
-fun restrain_V2 : V2;
-fun restrained_A : A;
-fun restraint_N : N;
-fun restrict_V2 : V2;
-fun restriction_N : N;
-fun restrictive_A : A;
-fun restrictively_Adv : Adv;
-fun restrictiveness_N : N;
-fun restructure_V2 : V2;
-fun result_N : N;
-fun result_V : V;
-fun resultant_A : A;
-fun resume_V2 : V2;
-fun resumption_N : N;
-fun resurface_V : V;
-fun resurface_V2 : V2;
-fun resurgence_N : N;
-fun resurgent_A : A;
-fun resurrect_V : V;
-fun resurrect_V2 : V2;
-fun resurrection_N : N;
-fun resuscitate_V : V;
-fun resuscitate_V2 : V2;
-fun resuscitation_N : N;
-fun ret_PN : PN;
-fun ret_V2 : V2;
-fun retail_Adv : Adv;
-fun retail_N : N;
-fun retail_V : V;
-fun retail_V2 : V2;
-fun retailer_N : N;
-fun retain_V2 : V2;
-fun retainer_N : N;
-fun retake_N : N;
-fun retake_V2 : V2;
-fun retaliate_V : V;
-fun retaliation_N : N;
-fun retaliative_A : A;
-fun retaliatory_A : A;
-fun retard_V2 : V2;
-fun retardation_N : N;
-fun retch_V : V;
-fun retd_PN : PN;
-fun retell_V2 : V2;
-fun retention_N : N;
-fun retentive_A : A;
-fun retentively_Adv : Adv;
-fun retentiveness_N : N;
-fun retford_PN : PN;
-fun rethink_N : N;
-fun rethink_V : V;
-fun rethink_V2 : V2;
-fun reticence_N : N;
-fun reticent_A : A;
-fun reticently_Adv : Adv;
-fun reticulate_A : A;
-fun reticulate_V : V;
-fun reticulate_V2 : V2;
-fun reticulation_N : N;
-fun reticule_N : N;
-fun retina_N : N;
-fun retinal_A : A;
-fun retinue_N : N;
-fun retire_N : N;
-fun retire_V : V;
-fun retire_V2 : V2;
-fun retired_A : A;
-fun retirement_N : N;
-fun retiring_A : A;
-fun retool_V2 : V2;
-fun retort_N : N;
-fun retort_V : V;
-fun retort_V2 : V2;
-fun retouch_V2 : V2;
-fun retrace_V2 : V2;
-fun retract_V : V;
-fun retract_V2 : V2;
-fun retractable_A : A;
-fun retractile_A : A;
-fun retraction_N : N;
-fun retransmit_V2 : V2;
-fun retread_N : N;
-fun retread_V2 : V2;
-fun retreat_N : N;
-fun retreat_V : V;
-fun retrench_V : V;
-fun retrench_V2 : V2;
-fun retrenchment_N : N;
-fun retrial_N : N;
-fun retribution_N : N;
-fun retributive_A : A;
-fun retrievable_A : A;
-fun retrieval_N : N;
-fun retrieve_V : V;
-fun retrieve_V2 : V2;
-fun retriever_N : N;
-fun retroactive_A : A;
-fun retroactively_Adv : Adv;
-fun retrograde_A : A;
-fun retrograde_V : V;
-fun retrogress_V : V;
-fun retrogression_N : N;
-fun retrogressive_A : A;
-fun retrorocket_N : N;
-fun retrospect_N : N;
-fun retrospection_N : N;
-fun retrospective_A : A;
-fun retrospectively_Adv : Adv;
-fun retrousse_A : A;
-fun retroversion_N : N;
-fun retsina_N : N;
-fun return_N : N;
-fun return_V : V;
-fun return_V2 : V2;
-fun returnable_A : A;
-fun reunification_N : N;
-fun reunion_N : N;
-fun reunite_V : V;
-fun reunite_V2 : V2;
-fun rev_N : N;
-fun rev_PN : PN;
-fun rev_V : V;
-fun rev_V2 : V2;
-fun revaluation_N : N;
-fun revalue_V2 : V2;
-fun revamp_V2 : V2;
-fun revd_PN : PN;
-fun reveal_V2 : V2;
-fun reveille_N : N;
-fun revel_N : N;
-fun revel_V : V;
-fun revelation_N : N;
-fun reveller_N : N;
-fun revelry_N : N;
-fun revenge_N : N;
-fun revenge_V2 : V2;
-fun revengeful_A : A;
-fun revengefully_Adv : Adv;
-fun revenue_N : N;
-fun reverberant_A : A;
-fun reverberate_V : V;
-fun reverberate_V2 : V2;
-fun reverberation_N : N;
-fun revere_V2 : V2;
-fun reverence_N : N;
-fun reverence_V2 : V2;
-fun reverend_A : A;
-fun reverend_N : N;
-fun reverent_A : A;
-fun reverential_A : A;
-fun reverentially_Adv : Adv;
-fun reverently_Adv : Adv;
-fun reverie_N : N;
-fun revers_N : N;
-fun reversal_N : N;
-fun reverse_A : A;
-fun reverse_N : N;
-fun reverse_V : V;
-fun reverse_V2 : V2;
-fun reversely_Adv : Adv;
-fun reversibility_N : N;
-fun reversible_A : A;
-fun reversion_N : N;
-fun reversionary_A : A;
-fun revert_V : V;
-fun revertible_A : A;
-fun revetment_N : N;
-fun review_N : N;
-fun review_V : V;
-fun review_V2 : V2;
-fun reviewer_N : N;
-fun revile_V : V;
-fun revile_V2 : V2;
-fun revise_N : N;
-fun revise_V2 : V2;
-fun reviser_N : N;
-fun revision_N : N;
-fun revisionism_N : N;
-fun revisionist_N : N;
-fun revisit_V2 : V2;
-fun revitalization_N : N;
-fun revitalize_V2 : V2;
-fun revival_N : N;
-fun revivalist_N : N;
-fun revive_V : V;
-fun revive_V2 : V2;
-fun revivify_V2 : V2;
-fun revocable_A : A;
-fun revocation_N : N;
-fun revoke_N : N;
-fun revoke_V : V;
-fun revoke_V2 : V2;
-fun revolt_N : N;
-fun revolt_V : V;
-fun revolt_V2 : V2;
-fun revolting_A : A;
-fun revoltingly_Adv : Adv;
-fun revolution_N : N;
-fun revolutionary_A : A;
-fun revolutionary_N : N;
-fun revolutionize_V2 : V2;
-fun revolve_V : V;
-fun revolve_V2 : V2;
-fun revolver_N : N;
-fun revue_N : N;
-fun revulsion_N : N;
-fun reward_N : N;
-fun reward_V2 : V2;
-fun rewire_V2 : V2;
-fun reword_V2 : V2;
-fun rewrite_N : N;
-fun rewrite_V2 : V2;
-fun rex_PN : PN;
-fun reykjavik_PN : PN;
-fun rhapsodize_V : V;
-fun rhapsody_N : N;
-fun rhea_N : N;
-fun rheims_PN : PN;
-fun rhenish_A : A;
-fun rheostat_N : N;
-fun rhesus_N : N;
-fun rhetoric_N : N;
-fun rhetorical_A : A;
-fun rhetorically_Adv : Adv;
-fun rhetorician_N : N;
-fun rheum_N : N;
-fun rheumatic_A : A;
-fun rheumatic_N : N;
-fun rheumatism_N : N;
-fun rheumatoid_A : A;
-fun rheydt_PN : PN;
-fun rhinal_A : A;
-fun rhine_PN : PN;
-fun rhinestone_N : N;
-fun rhino_N : N;
-fun rhinoceros_N : N;
-fun rhizome_N : N;
-fun rhode_PN : PN;
-fun rhododendron_N : N;
-fun rhomb_N : N;
-fun rhomboid_A : A;
-fun rhomboid_N : N;
-fun rhombus_N : N;
-fun rhondda_PN : PN;
-fun rhosllanerchrugog_PN : PN;
-fun rhubarb_N : N;
-fun rhyl_PN : PN;
-fun rhyme_N : N;
-fun rhyme_V : V;
-fun rhyme_V2 : V2;
-fun rhymed_A : A;
-fun rhymester_N : N;
-fun rhymney_PN : PN;
-fun rhythm_N : N;
-fun rhythmic_A : A;
-fun rhythmical_A : A;
-fun rhythmically_Adv : Adv;
-fun rib_N : N;
-fun rib_V2 : V2;
-fun ribald_A : A;
-fun ribald_N : N;
-fun ribaldry_N : N;
-fun riband_N : N;
-fun ribbon_N : N;
-fun riboflavin_N : N;
-fun rice_N : N;
-fun rice_paper_N : N;
-fun rich_A : A;
-fun richard_PN : PN;
-fun richly_Adv : Adv;
-fun richmond_PN : PN;
-fun richmond_upon_thames_PN : PN;
-fun richness_N : N;
-fun rick_N : N;
-fun rick_PN : PN;
-fun rick_V2 : V2;
-fun rickets_N : N;
-fun rickety_A : A;
-fun rickmansworth_PN : PN;
-fun rickshaw_N : N;
-fun ricky_PN : PN;
-fun ricochet_N : N;
-fun ricochet_V : V;
-fun ricochet_V2 : V2;
-fun rid_V2 : V2;
-fun riddance_N : N;
-fun riddle_N : N;
-fun riddle_V2 : V2;
-fun ride_N : N;
-fun ride_V : V;
-fun ride_V2 : V2;
-fun rider_N : N;
-fun riderless_A : A;
-fun ridge_N : N;
-fun ridge_V2 : V2;
-fun ridge_tile_N : N;
-fun ridgepole_N : N;
-fun ridicule_N : N;
-fun ridicule_V2 : V2;
-fun ridiculous_A : A;
-fun ridiculously_Adv : Adv;
-fun riding_N : N;
-fun riding_habit_N : N;
-fun riding_lamp_N : N;
-fun riding_light_N : N;
-fun riding_master_N : N;
-fun riding_school_N : N;
-fun riesling_N : N;
-fun rife_A : A;
-fun riff_N : N;
-fun riff_raff_N : N;
-fun riffle_V : V;
-fun riffle_V2 : V2;
-fun rifle_N : N;
-fun rifle_V2 : V2;
-fun rifle_range_N : N;
-fun rifle_shot_N : N;
-fun rifleman_N : N;
-fun rift_N : N;
-fun rift_valley_N : N;
-fun rig_N : N;
-fun rig_V : V;
-fun rig_V2 : V2;
-fun riga_PN : PN;
-fun rigger_N : N;
-fun rigging_N : N;
-fun right_A : A;
-fun right_Adv : Adv;
-fun right_N : N;
-fun right_V2 : V2;
-fun right_angled_A : A;
-fun right_down_A : A;
-fun right_down_Adv : Adv;
-fun right_hand_A : A;
-fun right_handed_A : A;
-fun right_hander_N : N;
-fun right_minded_A : A;
-fun right_turn_N : N;
-fun right_wing_N : N;
-fun right_winger_N : N;
-fun righteous_A : A;
-fun righteously_Adv : Adv;
-fun righteousness_N : N;
-fun rightful_A : A;
-fun rightfully_Adv : Adv;
-fun rightfulness_N : N;
-fun rightist_A : A;
-fun rightist_N : N;
-fun rightly_Adv : Adv;
-fun rightness_N : N;
-fun rigid_A : A;
-fun rigidity_N : N;
-fun rigidly_Adv : Adv;
-fun rigmarole_N : N;
-fun rigor_mortis_N : N;
-fun rigorous_A : A;
-fun rigorously_Adv : Adv;
-fun rigour_N : N;
-fun rigout_N : N;
-fun rijeka_PN : PN;
-fun rile_V2 : V2;
-fun rill_N : N;
-fun rim_N : N;
-fun rim_V2 : V2;
-fun rime_N : N;
-fun rime_V2 : V2;
-fun rimini_PN : PN;
-fun rind_N : N;
-fun rinderpest_N : N;
-fun ring_N : N;
-fun ring_V : V;
-fun ring_V2 : V2;
-fun ring_armour_N : N;
-fun ring_finger_N : N;
-fun ring_mail_N : N;
-fun ring_road_N : N;
-fun ringer_N : N;
-fun ringleader_N : N;
-fun ringlet_N : N;
-fun ringmaster_N : N;
-fun ringside_N : N;
-fun ringwood_PN : PN;
-fun ringworm_N : N;
-fun rink_N : N;
-fun rinse_N : N;
-fun rinse_V2 : V2;
-fun rio_de_janeiro_PN : PN;
-fun riot_N : N;
-fun riot_V : V;
-fun rioter_N : N;
-fun riotous_A : A;
-fun riotously_Adv : Adv;
-fun rip_N : N;
-fun rip_PN : PN;
-fun rip_V : V;
-fun rip_V2 : V2;
-fun rip_off_N : N;
-fun rip_roaring_A : A;
-fun riparian_A : A;
-fun ripcord_N : N;
-fun ripe_A : A;
-fun ripely_Adv : Adv;
-fun ripen_V : V;
-fun ripen_V2 : V2;
-fun ripeness_N : N;
-fun ripley_PN : PN;
-fun ripon_PN : PN;
-fun riposte_N : N;
-fun riposte_V : V;
-fun ripple_N : N;
-fun ripple_V : V;
-fun ripple_V2 : V2;
-fun ripsaw_N : N;
-fun riptide_N : N;
-fun risborough_PN : PN;
-fun risca_PN : PN;
-fun rise_N : N;
-fun rise_V : V;
-fun riser_N : N;
-fun rishton_PN : PN;
-fun risibility_N : N;
-fun risible_A : A;
-fun rising_N : N;
-fun risk_N : N;
-fun risk_V2 : V2;
-fun riskily_Adv : Adv;
-fun riskiness_N : N;
-fun risky_A : A;
-fun risotto_N : N;
-fun risque_A : A;
-fun rissole_N : N;
-fun rita_PN : PN;
-fun rite_N : N;
-fun ritual_A : A;
-fun ritual_N : N;
-fun ritualism_N : N;
-fun ritualist_N : N;
-fun ritualistic_A : A;
-fun ritzy_A : A;
-fun rival_N : N;
-fun rival_V2 : V2;
-fun rivalry_N : N;
-fun rive_V : V;
-fun rive_V2 : V2;
-fun river_N : N;
-fun river_basin_N : N;
-fun river_bed_N : N;
-fun riverside_N : N;
-fun rivet_N : N;
-fun rivet_V2 : V2;
-fun riveter_N : N;
-fun riviera_PN : PN;
-fun rivulet_N : N;
-fun rly_N : N;
-fun rm_N : N;
-fun rn_N : N;
-fun roach_N : N;
-fun road_N : N;
-fun road_book_N : N;
-fun road_hog_N : N;
-fun road_metal_N : N;
-fun road_sense_N : N;
-fun roadbed_N : N;
-fun roadblock_N : N;
-fun roadhouse_N : N;
-fun roadless_A : A;
-fun roadman_N : N;
-fun roadmender_N : N;
-fun roadside_N : N;
-fun roadstead_N : N;
-fun roadster_N : N;
-fun roadway_N : N;
-fun roadworthy_A : A;
-fun roam_V : V;
-fun roam_V2 : V2;
-fun roan_A : A;
-fun roan_N : N;
-fun roar_N : N;
-fun roar_V : V;
-fun roar_V2 : V2;
-fun roaring_A : A;
-fun roaring_Adv : Adv;
-fun roast_A : A;
-fun roast_N : N;
-fun roast_V : V;
-fun roast_V2 : V2;
-fun roaster_N : N;
-fun roasting_N : N;
-fun rob_PN : PN;
-fun rob_V2 : V2;
-fun robber_N : N;
-fun robbery_N : N;
-fun robe_N : N;
-fun robe_V : V;
-fun robe_V2 : V2;
-fun robert_PN : PN;
-fun robin_N : N;
-fun robin_PN : PN;
-fun robot_N : N;
-fun robust_A : A;
-fun robustly_Adv : Adv;
-fun robustness_N : N;
-fun roc_N : N;
-fun rochdale_PN : PN;
-fun rochester_PN : PN;
-fun rock_'n_roll_N : N;
-fun rock_N : N;
-fun rock_V : V;
-fun rock_V2 : V2;
-fun rock_bottom_N : N;
-fun rock_cake_N : N;
-fun rock_climbing_N : N;
-fun rock_crystal_N : N;
-fun rock_garden_N : N;
-fun rock_plant_N : N;
-fun rock_salmon_N : N;
-fun rock_salt_N : N;
-fun rocker_N : N;
-fun rockery_N : N;
-fun rocket_N : N;
-fun rocket_V : V;
-fun rocket_base_N : N;
-fun rocket_range_N : N;
-fun rocketry_N : N;
-fun rocking_chair_N : N;
-fun rocking_horse_N : N;
-fun rocky_A : A;
-fun rococo_A : A;
-fun rod_N : N;
-fun rod_PN : PN;
-fun rodent_N : N;
-fun rodeo_N : N;
-fun rodney_PN : PN;
-fun rodomontade_N : N;
-fun roe_N : N;
-fun roebuck_N : N;
-fun roentgen_N : N;
-fun rogation_N : N;
-fun roger_PN : PN;
-fun rogue_N : N;
-fun rogue_elephant_N : N;
-fun roguery_N : N;
-fun roguish_A : A;
-fun roguishly_Adv : Adv;
-fun roguishness_N : N;
-fun roisterer_N : N;
-fun role_1_N : N;
-fun roll_N : N;
-fun roll_V : V;
-fun roll_V2 : V2;
-fun roll_call_N : N;
-fun roll_on_N : N;
-fun roller_N : N;
-fun roller_skate_N : N;
-fun rollicking_A : A;
-fun rolling_N : N;
-fun rolling_mill_N : N;
-fun rolling_pin_N : N;
-fun rolling_stock_N : N;
-fun roly_poly_N : N;
-fun romaic_A : A;
-fun romaic_N : N;
-fun roman_A : A;
-fun roman_N : N;
-fun romance_A : A;
-fun romance_N : N;
-fun romance_V : V;
-fun romanesque_N : N;
-fun romania_PN : PN;
-fun romanian_A : A;
-fun romanian_N : N;
-fun romantic_A : A;
-fun romantic_N : N;
-fun romantically_Adv : Adv;
-fun romanticism_N : N;
-fun romanticist_N : N;
-fun romanticize_V : V;
-fun romanticize_V2 : V2;
-fun romany_A : A;
-fun romany_N : N;
-fun rome_PN : PN;
-fun romish_A : A;
-fun romp_N : N;
-fun romp_V : V;
-fun romper_N : N;
-fun romsey_PN : PN;
-fun ron_PN : PN;
-fun ronald_PN : PN;
-fun rondeau_N : N;
-fun rondel_N : N;
-fun rondo_N : N;
-fun roneo_N : N;
-fun roneo_V2 : V2;
-fun ronnie_PN : PN;
-fun rood_N : N;
-fun rood_tree_N : N;
-fun roof_N : N;
-fun roof_V2 : V2;
-fun roof_garden_N : N;
-fun roof_tree_N : N;
-fun roofing_N : N;
-fun roofless_A : A;
-fun rook_N : N;
-fun rook_V2 : V2;
-fun rookery_N : N;
-fun rookie_N : N;
-fun room_N : N;
-fun room_V : V;
-fun room_mate_N : N;
-fun roomed_A : A;
-fun roomer_N : N;
-fun roomful_N : N;
-fun roomily_Adv : Adv;
-fun roomy_A : A;
-fun roost_N : N;
-fun roost_V : V;
-fun rooster_N : N;
-fun root_N : N;
-fun root_V : V;
-fun root_V2 : V2;
-fun rootle_V : V;
-fun rootless_A : A;
-fun rope_N : N;
-fun rope_V2 : V2;
-fun rope_dancer_N : N;
-fun rope_ladder_N : N;
-fun rope_yard_N : N;
-fun rope_yarn_N : N;
-fun ropewalk_N : N;
-fun ropewalker_N : N;
-fun ropeway_N : N;
-fun ropey_A : A;
-fun roquefort_N : N;
-fun rosalie_PN : PN;
-fun rosalind_PN : PN;
-fun rosamund_PN : PN;
-fun rosario_PN : PN;
-fun rosary_N : N;
-fun roscommon_PN : PN;
-fun rose_N : N;
-fun rose_PN : PN;
-fun rose_bed_N : N;
-fun rose_leaf_N : N;
-fun rose_red_A : A;
-fun rose_water_N : N;
-fun roseate_A : A;
-fun rosebud_N : N;
-fun rosemary_N : N;
-fun rosemary_PN : PN;
-fun rosette_N : N;
-fun rosewood_N : N;
-fun rosie_PN : PN;
-fun rosin_N : N;
-fun rosin_V2 : V2;
-fun roslyn_PN : PN;
-fun ross_on_wye_PN : PN;
-fun rossington_PN : PN;
-fun rosslare_PN : PN;
-fun roster_N : N;
-fun rostock_PN : PN;
-fun rostov_na_donu_PN : PN;
-fun rostrum_N : N;
-fun rosy_A : A;
-fun rot_N : N;
-fun rot_V : V;
-fun rot_V2 : V2;
-fun rota_N : N;
-fun rotarian_N : N;
-fun rotary_A : A;
-fun rotary_N : N;
-fun rotate_V : V;
-fun rotate_V2 : V2;
-fun rotation_N : N;
-fun rotational_A : A;
-fun rotationally_Adv : Adv;
-fun rotatory_A : A;
-fun rote_N : N;
-fun rotgut_N : N;
-fun rotherham_PN : PN;
-fun rothesay_PN : PN;
-fun rothwell_PN : PN;
-fun rotisserie_N : N;
-fun rotogravure_N : N;
-fun rotor_N : N;
-fun rotten_A : A;
-fun rottenly_Adv : Adv;
-fun rottenness_N : N;
-fun rotter_N : N;
-fun rotterdam_PN : PN;
-fun rotund_A : A;
-fun rotunda_N : N;
-fun rotundity_N : N;
-fun rotundly_Adv : Adv;
-fun roubaix_PN : PN;
-fun rouble_N : N;
-fun rouen_PN : PN;
-fun rouge_N : N;
-fun rouge_V : V;
-fun rouge_V2 : V2;
-fun rough_A : A;
-fun rough_Adv : Adv;
-fun rough_N : N;
-fun rough_V2 : V2;
-fun rough_and_tumble_A : A;
-fun rough_and_tumble_N : N;
-fun rough_dry_V2 : V2;
-fun rough_hewn_A : A;
-fun rough_house_V : V;
-fun rough_house_V2 : V2;
-fun rough_spoken_A : A;
-fun roughage_N : N;
-fun roughcast_N : N;
-fun roughcast_V2 : V2;
-fun roughen_V : V;
-fun roughen_V2 : V2;
-fun roughish_A : A;
-fun roughly_Adv : Adv;
-fun roughneck_N : N;
-fun roughness_N : N;
-fun roughrider_N : N;
-fun roughshod_A : A;
-fun roulette_N : N;
-fun round_A : A;
-fun round_Adv : Adv;
-fun round_N : N;
-fun round_V : V;
-fun round_V2 : V2;
-fun round_arm_A : A;
-fun round_arm_Adv : Adv;
-fun round_backed_A : A;
-fun round_eyed_A : A;
-fun round_hand_N : N;
-fun round_shot_N : N;
-fun round_shouldered_A : A;
-fun round_the_clock_A : A;
-fun round_the_clock_Adv : Adv;
-fun roundabout_A : A;
-fun roundabout_N : N;
-fun roundel_N : N;
-fun roundelay_N : N;
-fun roundhead_N : N;
-fun roundhouse_N : N;
-fun roundish_A : A;
-fun roundly_Adv : Adv;
-fun roundness_N : N;
-fun roundsman_N : N;
-fun roundup_N : N;
-fun rouse_V : V;
-fun rouse_V2 : V2;
-fun rout_N : N;
-fun rout_V2 : V2;
-fun route_N : N;
-fun route_V2 : V2;
-fun routemarch_N : N;
-fun routine_A : A;
-fun routine_N : N;
-fun roue_N : N;
-fun rove_V : V;
-fun rove_V2 : V2;
-fun rover_N : N;
-fun row_N : N;
-fun row_V : V;
-fun row_V2 : V2;
-fun rowan_N : N;
-fun rowan_berry_N : N;
-fun rowan_tree_N : N;
-fun rowboat_N : N;
-fun rowdily_Adv : Adv;
-fun rowdiness_N : N;
-fun rowdy_A : A;
-fun rowdy_N : N;
-fun rowdyism_N : N;
-fun rowel_N : N;
-fun rower_N : N;
-fun rowing_N : N;
-fun rowing_boat_N : N;
-fun rowing_club_N : N;
-fun rowlands_gill_PN : PN;
-fun rowlock_N : N;
-fun roy_PN : PN;
-fun royal_A : A;
-fun royalist_N : N;
-fun royally_Adv : Adv;
-fun royalty_N : N;
-fun royston_PN : PN;
-fun rpm_N : N;
-fun rspca_N : N;
-fun rsvp_PN : PN;
-fun rt_hon_PN : PN;
-fun rub_N : N;
-fun rub_V : V;
-fun rub_V2 : V2;
-fun rub_a_dub_N : N;
-fun rub_down_N : N;
-fun rub_up_N : N;
-fun rubber_N : N;
-fun rubber_V2 : V2;
-fun rubber_stamp_V2 : V2;
-fun rubberize_V2 : V2;
-fun rubberneck_N : N;
-fun rubberneck_V : V;
-fun rubbery_A : A;
-fun rubbing_N : N;
-fun rubbish_N : N;
-fun rubbish_V2 : V2;
-fun rubbishing_N : N;
-fun rubbishy_A : A;
-fun rubble_N : N;
-fun rubicon_N : N;
-fun rubicund_A : A;
-fun rubric_N : N;
-fun ruby_A : A;
-fun ruby_N : N;
-fun ruck_N : N;
-fun ruck_V : V;
-fun ruck_V2 : V2;
-fun rucksack_N : N;
-fun ruckus_N : N;
-fun rudder_N : N;
-fun rudderless_A : A;
-fun ruddiness_N : N;
-fun ruddington_PN : PN;
-fun ruddle_N : N;
-fun ruddle_V2 : V2;
-fun ruddy_A : A;
-fun rude_A : A;
-fun rudely_Adv : Adv;
-fun rudeness_N : N;
-fun rudiment_N : N;
-fun rudimentary_A : A;
-fun rudolf_PN : PN;
-fun rudy_PN : PN;
-fun rue_N : N;
-fun rue_V2 : V2;
-fun rueful_A : A;
-fun ruefully_Adv : Adv;
-fun ruff_N : N;
-fun ruff_V : V;
-fun ruff_V2 : V2;
-fun ruffian_N : N;
-fun ruffianism_N : N;
-fun ruffianly_A : A;
-fun ruffle_N : N;
-fun ruffle_V : V;
-fun ruffle_V2 : V2;
-fun rug_N : N;
-fun rugby_N : N;
-fun rugby_PN : PN;
-fun rugeley_PN : PN;
-fun rugged_A : A;
-fun ruggedly_Adv : Adv;
-fun ruggedness_N : N;
-fun rugger_N : N;
-fun ruin_N : N;
-fun ruin_V2 : V2;
-fun ruination_N : N;
-fun ruinous_A : A;
-fun ruinously_Adv : Adv;
-fun rule_N : N;
-fun rule_V : V;
-fun rule_V2 : V2;
-fun ruler_N : N;
-fun ruling_A : A;
-fun ruling_N : N;
-fun rum_N : N;
-fun rum_runner_N : N;
-fun rumba_N : N;
-fun rumble_N : N;
-fun rumble_V : V;
-fun rumble_V2 : V2;
-fun rumbling_N : N;
-fun rumbustious_A : A;
-fun ruminant_A : A;
-fun ruminant_N : N;
-fun ruminate_V : V;
-fun rumination_N : N;
-fun ruminative_A : A;
-fun rummage_N : N;
-fun rummage_V : V;
-fun rummage_V2 : V2;
-fun rummy_A : A;
-fun rummy_N : N;
-fun rumour_N : N;
-fun rumour_V2 : V2;
-fun rumour_monger_N : N;
-fun rump_N : N;
-fun rump_steak_N : N;
-fun rumple_V2 : V2;
-fun rumpus_N : N;
-fun run_N : N;
-fun run_V : V;
-fun run_V2 : V2;
-fun run_of_the_mill_A : A;
-fun run_off_N : N;
-fun run_through_N : N;
-fun run_up_N : N;
-fun runaway_A : A;
-fun runaway_N : N;
-fun runcorn_PN : PN;
-fun rundown_A : A;
-fun rundown_N : N;
-fun rune_N : N;
-fun rung_N : N;
-fun runic_A : A;
-fun runnel_N : N;
-fun runner_N : N;
-fun runner_up_N : N;
-fun running_A : A;
-fun running_N : N;
-fun running_board_N : N;
-fun runny_A : A;
-fun runt_N : N;
-fun runway_N : N;
-fun rupee_N : N;
-fun rupert_PN : PN;
-fun rupiah_N : N;
-fun rupture_N : N;
-fun rupture_V : V;
-fun rupture_V2 : V2;
-fun rural_A : A;
-fun ruritanian_A : A;
-fun ruse_N : N;
-fun rush_N : N;
-fun rush_V : V;
-fun rush_V2 : V2;
-fun rushlight_N : N;
-fun rushy_A : A;
-fun rusk_N : N;
-fun russet_A : A;
-fun russet_N : N;
-fun russia_PN : PN;
-fun russian_A : A;
-fun russian_N : N;
-fun rust_N : N;
-fun rust_V : V;
-fun rust_V2 : V2;
-fun rustic_A : A;
-fun rustic_N : N;
-fun rusticate_V : V;
-fun rusticate_V2 : V2;
-fun rusticity_N : N;
-fun rustiness_N : N;
-fun rustle_N : N;
-fun rustle_V : V;
-fun rustle_V2 : V2;
-fun rustler_N : N;
-fun rustless_A : A;
-fun rustling_N : N;
-fun rusty_A : A;
-fun rut_N : N;
-fun rut_V2 : V2;
-fun ruth_PN : PN;
-fun rutherglen_PN : PN;
-fun ruthless_A : A;
-fun ruthlessly_Adv : Adv;
-fun ruthlessness_N : N;
-fun rutland_PN : PN;
-fun rwanda_PN : PN;
-fun rwandan_A : A;
-fun rwandan_N : N;
-fun ryde_PN : PN;
-fun rye_N : N;
-fun rye_bread_N : N;
-fun ryehill_PN : PN;
-fun rechauffe_N : N;
-fun regime_2_N : N;
-fun resume_N : N;
-fun role_2_N : N;
-fun rontgen_N : N;
-fun saarbrucken_PN : PN;
-fun sabadeli_PN : PN;
-fun sabah_PN : PN;
-fun sabahan_A : A;
-fun sabahan_N : N;
-fun sabbatarian_A : A;
-fun sabbatarian_N : N;
-fun sabbath_N : N;
-fun sabbatical_A : A;
-fun sabbatical_N : N;
-fun sable_A : A;
-fun sable_N : N;
-fun sabot_N : N;
-fun sabotage_N : N;
-fun sabotage_V2 : V2;
-fun saboteur_N : N;
-fun sabre_N : N;
-fun sabre_V2 : V2;
-fun sabre_rattling_N : N;
-fun sabre_toothed_A : A;
-fun sac_N : N;
-fun saccharin_N : N;
-fun saccharine_A : A;
-fun sacerdotal_A : A;
-fun sacerdotalism_N : N;
-fun sachet_N : N;
-fun sack_N : N;
-fun sack_V2 : V2;
-fun sack_race_N : N;
-fun sackbut_N : N;
-fun sackcloth_N : N;
-fun sacking_N : N;
-fun sacrament_N : N;
-fun sacramental_A : A;
-fun sacramento_PN : PN;
-fun sacred_A : A;
-fun sacredly_Adv : Adv;
-fun sacredness_N : N;
-fun sacrifice_N : N;
-fun sacrifice_V : V;
-fun sacrifice_V2 : V2;
-fun sacrificial_A : A;
-fun sacrilege_N : N;
-fun sacrilegious_A : A;
-fun sacristan_N : N;
-fun sacristy_N : N;
-fun sacrosanct_A : A;
-fun sad_A : A;
-fun sadden_V : V;
-fun sadden_V2 : V2;
-fun saddle_N : N;
-fun saddle_V2 : V2;
-fun saddle_sore_A : A;
-fun saddlebag_N : N;
-fun saddler_N : N;
-fun saddlery_N : N;
-fun sadhu_N : N;
-fun sadism_N : N;
-fun sadist_N : N;
-fun sadistic_A : A;
-fun sadly_Adv : Adv;
-fun sadness_N : N;
-fun sado_masochist_N : N;
-fun sadomasochism_N : N;
-fun sae_N : N;
-fun safari_N : N;
-fun safe_A : A;
-fun safe_N : N;
-fun safe_conduct_N : N;
-fun safe_deposit_A : A;
-fun safe_deposit_N : N;
-fun safecracker_N : N;
-fun safeguard_N : N;
-fun safeguard_V2 : V2;
-fun safekeeping_N : N;
-fun safely_Adv : Adv;
-fun safeness_N : N;
-fun safety_N : N;
-fun safety_belt_N : N;
-fun safety_bolt_N : N;
-fun safety_catch_N : N;
-fun safety_curtain_N : N;
-fun safety_factor_N : N;
-fun safety_lamp_N : N;
-fun safety_lock_N : N;
-fun safety_match_N : N;
-fun safety_pin_N : N;
-fun safety_razor_N : N;
-fun safety_valve_N : N;
-fun saffron_N : N;
-fun saffron_walden_PN : PN;
-fun sag_N : N;
-fun sag_V : V;
-fun saga_N : N;
-fun sagacious_A : A;
-fun sagaciously_Adv : Adv;
-fun sagacity_N : N;
-fun sage_A : A;
-fun sage_N : N;
-fun sage_green_A : A;
-fun sage_green_N : N;
-fun sagely_Adv : Adv;
-fun sagittarius_PN : PN;
-fun sago_N : N;
-fun sahib_N : N;
-fun said_A : A;
-fun saigon_PN : PN;
-fun sail_N : N;
-fun sail_V : V;
-fun sail_V2 : V2;
-fun sailcloth_N : N;
-fun sailing_N : N;
-fun sailing_boat_N : N;
-fun sailing_master_N : N;
-fun sailing_ship_N : N;
-fun sailing_vessel_N : N;
-fun sailor_N : N;
-fun saint's_day_N : N;
-fun saint_N : N;
-fun sainted_A : A;
-fun sainthood_N : N;
-fun saintlike_A : A;
-fun saintliness_N : N;
-fun saintly_A : A;
-fun sake_1_N : N;
-fun sake_2_N : N;
-fun sal_volatile_N : N;
-fun salaam_N : N;
-fun salaam_V : V;
-fun salable_A : A;
-fun salacious_A : A;
-fun salaciously_Adv : Adv;
-fun salaciousness_N : N;
-fun salacity_N : N;
-fun salad_N : N;
-fun salad_dressing_N : N;
-fun salad_oil_N : N;
-fun salamanca_PN : PN;
-fun salamander_N : N;
-fun salami_N : N;
-fun salaried_A : A;
-fun salary_N : N;
-fun sale_N : N;
-fun sale_PN : PN;
-fun saleable_A : A;
-fun salerno_PN : PN;
-fun saleroom_N : N;
-fun salesman_N : N;
-fun salesmanship_N : N;
-fun saleswoman_N : N;
-fun salford_PN : PN;
-fun salience_N : N;
-fun salient_A : A;
-fun salient_N : N;
-fun saline_A : A;
-fun saline_N : N;
-fun salinity_N : N;
-fun salisbury_PN : PN;
-fun saliva_N : N;
-fun salivary_A : A;
-fun salivate_V : V;
-fun sallow_A : A;
-fun sallow_V : V;
-fun sallow_V2 : V2;
-fun sally_N : N;
-fun sally_PN : PN;
-fun sally_V : V;
-fun salmon_N : N;
-fun salon_N : N;
-fun saloon_N : N;
-fun salsify_N : N;
-fun salt_A : A;
-fun salt_N : N;
-fun salt_PN : PN;
-fun salt_V2 : V2;
-fun salt_cellar_N : N;
-fun salt_lick_N : N;
-fun saltash_PN : PN;
-fun saltburn_PN : PN;
-fun saltcoats_PN : PN;
-fun saltiness_N : N;
-fun saltpan_N : N;
-fun saltpetre_N : N;
-fun saltwater_N : N;
-fun saltworks_N : N;
-fun salty_A : A;
-fun salubrious_A : A;
-fun salubrity_N : N;
-fun salutary_A : A;
-fun salutation_N : N;
-fun salute_N : N;
-fun salute_V : V;
-fun salute_V2 : V2;
-fun salvador_PN : PN;
-fun salvadorean_A : A;
-fun salvadorean_N : N;
-fun salvage_N : N;
-fun salvage_V2 : V2;
-fun salvation_N : N;
-fun salve_N : N;
-fun salve_V2 : V2;
-fun salver_N : N;
-fun salvia_N : N;
-fun salvo_N : N;
-fun salzburg_PN : PN;
-fun sam_PN : PN;
-fun samantha_PN : PN;
-fun samaritan_N : N;
-fun samba_N : N;
-fun same_A : A;
-fun same_Adv : Adv;
-fun sameness_N : N;
-fun sammy_PN : PN;
-fun samoa_PN : PN;
-fun samoan_A : A;
-fun samoan_N : N;
-fun samovar_N : N;
-fun sampan_N : N;
-fun sample_N : N;
-fun sample_V2 : V2;
-fun sampler_N : N;
-fun samuel_PN : PN;
-fun samurai_N : N;
-fun san_antonio_PN : PN;
-fun san_bernardino_PN : PN;
-fun san_diego_PN : PN;
-fun san_francisco_PN : PN;
-fun san_jose_PN : PN;
-fun san_juan_PN : PN;
-fun san_marinese_A : A;
-fun san_marinese_N : N;
-fun san_marino_PN : PN;
-fun san_sebastian_PN : PN;
-fun sanatorium_N : N;
-fun sanctification_N : N;
-fun sanctify_V2 : V2;
-fun sanctimonious_A : A;
-fun sanctimoniously_Adv : Adv;
-fun sanction_N : N;
-fun sanction_V2 : V2;
-fun sanctity_N : N;
-fun sanctuary_N : N;
-fun sanctum_N : N;
-fun sand_N : N;
-fun sand_V2 : V2;
-fun sand_bar_N : N;
-fun sandal_N : N;
-fun sandalled_A : A;
-fun sandalwood_N : N;
-fun sandbach_PN : PN;
-fun sandbag_N : N;
-fun sandbank_N : N;
-fun sandblast_V2 : V2;
-fun sandboy_N : N;
-fun sandfly_N : N;
-fun sandglass_N : N;
-fun sandiness_N : N;
-fun sandown_PN : PN;
-fun sandpaper_N : N;
-fun sandpaper_V2 : V2;
-fun sandpiper_N : N;
-fun sandpit_N : N;
-fun sandra_PN : PN;
-fun sandstone_N : N;
-fun sandstorm_N : N;
-fun sandwich_N : N;
-fun sandwich_V2 : V2;
-fun sandwich_board_N : N;
-fun sandwichman_N : N;
-fun sandy_A : A;
-fun sandy_PN : PN;
-fun sane_A : A;
-fun sanely_Adv : Adv;
-fun sang_froid_N : N;
-fun sango_N : N;
-fun sanguinary_A : A;
-fun sanguine_A : A;
-fun sanitary_A : A;
-fun sanitation_N : N;
-fun sanity_N : N;
-fun sanskrit_N : N;
-fun santa_claus_N : N;
-fun santa_claus_PN : PN;
-fun santander_PN : PN;
-fun santiago_PN : PN;
-fun santo_domingo_PN : PN;
-fun santos_PN : PN;
-fun sao_paolo_PN : PN;
-fun sap_N : N;
-fun sap_V : V;
-fun sap_V2 : V2;
-fun saphead_N : N;
-fun sapience_N : N;
-fun sapient_A : A;
-fun sapiently_Adv : Adv;
-fun sapless_A : A;
-fun sapling_N : N;
-fun sapper_N : N;
-fun sapphic_A : A;
-fun sapphire_N : N;
-fun sapporo_PN : PN;
-fun sappy_A : A;
-fun sapwood_N : N;
-fun sara_PN : PN;
-fun saraband_N : N;
-fun saracen_N : N;
-fun sarah_PN : PN;
-fun sarajevo_PN : PN;
-fun saratov_PN : PN;
-fun sarawak_PN : PN;
-fun sarawakian_A : A;
-fun sarawakian_N : N;
-fun sarcasm_N : N;
-fun sarcastic_A : A;
-fun sarcastically_Adv : Adv;
-fun sarcophagus_N : N;
-fun sardine_N : N;
-fun sardonic_A : A;
-fun sardonically_Adv : Adv;
-fun sari_N : N;
-fun sarisbury_PN : PN;
-fun sarong_N : N;
-fun sarsaparilla_N : N;
-fun sartorial_A : A;
-fun sash_N : N;
-fun sash_cord_N : N;
-fun sash_line_N : N;
-fun saskatchewan_PN : PN;
-fun sassari_PN : PN;
-fun sassenach_N : N;
-fun sat_PN : PN;
-fun satan_N : N;
-fun satanic_A : A;
-fun satchel_N : N;
-fun sate_V2 : V2;
-fun sateen_N : N;
-fun satellite_N : N;
-fun satiable_A : A;
-fun satiate_V2 : V2;
-fun satiety_N : N;
-fun satin_A : A;
-fun satin_N : N;
-fun satinwood_N : N;
-fun satire_N : N;
-fun satirical_A : A;
-fun satirically_Adv : Adv;
-fun satirist_N : N;
-fun satirize_V2 : V2;
-fun satisfaction_N : N;
-fun satisfactorily_Adv : Adv;
-fun satisfactory_A : A;
-fun satisfy_V : V;
-fun satisfy_V2 : V2;
-fun satisfying_A : A;
-fun satisfyingly_Adv : Adv;
-fun satrap_N : N;
-fun satsuma_N : N;
-fun saturate_V2 : V2;
-fun saturation_N : N;
-fun saturday_N : N;
-fun saturday_PN : PN;
-fun saturn_PN : PN;
-fun saturnalia_N : N;
-fun saturnine_A : A;
-fun satyr_N : N;
-fun satyric_A : A;
-fun sauce_N : N;
-fun sauce_V2 : V2;
-fun sauce_boat_N : N;
-fun saucepan_N : N;
-fun saucer_N : N;
-fun saucer_eyed_A : A;
-fun sauchie_PN : PN;
-fun saucily_Adv : Adv;
-fun sauciness_N : N;
-fun saucy_A : A;
-fun saudi_arabia_PN : PN;
-fun saudi_arabian_A : A;
-fun saudi_arabian_N : N;
-fun sauerkraut_N : N;
-fun sauna_N : N;
-fun saunter_N : N;
-fun saunter_V : V;
-fun saunterer_N : N;
-fun saurian_A : A;
-fun saurian_N : N;
-fun sausage_N : N;
-fun sausage_dog_N : N;
-fun sausage_meat_N : N;
-fun sausage_roll_N : N;
-fun saute_A : A;
-fun saute_V2 : V2;
-fun savage_A : A;
-fun savage_N : N;
-fun savage_V2 : V2;
-fun savagely_Adv : Adv;
-fun savageness_N : N;
-fun savagery_N : N;
-fun savanna_N : N;
-fun savannah_N : N;
-fun savant_N : N;
-fun save_N : N;
-fun save_V : V;
-fun save_V2 : V2;
-fun saveloy_N : N;
-fun saver_N : N;
-fun saving_A : A;
-fun saving_N : N;
-fun savings_bank_N : N;
-fun saviour_N : N;
-fun savoir_faire_N : N;
-fun savory_N : N;
-fun savour_N : N;
-fun savour_V : V;
-fun savour_V2 : V2;
-fun savoury_A : A;
-fun savoury_N : N;
-fun savoy_N : N;
-fun savvy_N : N;
-fun savvy_V : V;
-fun saw_N : N;
-fun saw_V : V;
-fun saw_V2 : V2;
-fun saw_pit_N : N;
-fun sawbridgeworth_PN : PN;
-fun sawdust_N : N;
-fun sawhorse_N : N;
-fun sawmill_N : N;
-fun sawyer_N : N;
-fun sax_N : N;
-fun saxhorn_N : N;
-fun saxifrage_N : N;
-fun saxon_A : A;
-fun saxon_N : N;
-fun saxophone_N : N;
-fun saxophonist_N : N;
-fun say_N : N;
-fun say_V : V;
-fun say_V2 : V2;
-fun saying_N : N;
-fun scab_N : N;
-fun scabbard_N : N;
-fun scabby_A : A;
-fun scabies_N : N;
-fun scabious_N : N;
-fun scabrous_A : A;
-fun scaffold_N : N;
-fun scaffolding_N : N;
-fun scalawag_N : N;
-fun scald_N : N;
-fun scald_V2 : V2;
-fun scale_N : N;
-fun scale_V : V;
-fun scale_V2 : V2;
-fun scaling_ladder_N : N;
-fun scallop_N : N;
-fun scallop_V2 : V2;
-fun scallop_shell_N : N;
-fun scallywag_N : N;
-fun scalp_N : N;
-fun scalp_V2 : V2;
-fun scalpel_N : N;
-fun scaly_A : A;
-fun scamp_N : N;
-fun scamp_V2 : V2;
-fun scamper_N : N;
-fun scamper_V : V;
-fun scan_V : V;
-fun scan_V2 : V2;
-fun scandal_N : N;
-fun scandalize_V2 : V2;
-fun scandalmonger_N : N;
-fun scandalmongering_N : N;
-fun scandalous_A : A;
-fun scandalously_Adv : Adv;
-fun scandinavian_A : A;
-fun scandinavian_N : N;
-fun scanner_N : N;
-fun scansion_N : N;
-fun scant_A : A;
-fun scant_V2 : V2;
-fun scantily_Adv : Adv;
-fun scantiness_N : N;
-fun scantling_N : N;
-fun scanty_A : A;
-fun scapegoat_N : N;
-fun scapegrace_N : N;
-fun scapula_N : N;
-fun scar_N : N;
-fun scar_V : V;
-fun scar_V2 : V2;
-fun scarab_N : N;
-fun scarborough_PN : PN;
-fun scarce_A : A;
-fun scarcely_Adv : Adv;
-fun scarcity_N : N;
-fun scare_N : N;
-fun scare_V : V;
-fun scare_V2 : V2;
-fun scarecrow_N : N;
-fun scaremonger_N : N;
-fun scarf_N : N;
-fun scarf_pin_N : N;
-fun scarify_V2 : V2;
-fun scarlet_A : A;
-fun scarlet_N : N;
-fun scarp_N : N;
-fun scarper_V : V;
-fun scary_A : A;
-fun scathing_A : A;
-fun scathingly_Adv : Adv;
-fun scatter_N : N;
-fun scatter_V : V;
-fun scatter_V2 : V2;
-fun scatterbrain_N : N;
-fun scatterbrained_A : A;
-fun scattered_A : A;
-fun scatty_A : A;
-fun scavenge_V : V;
-fun scavenger_N : N;
-fun scenario_N : N;
-fun scenarist_N : N;
-fun scene_N : N;
-fun scene_painter_N : N;
-fun scene_shifter_N : N;
-fun scenery_N : N;
-fun scenic_A : A;
-fun scenically_Adv : Adv;
-fun scent_N : N;
-fun scent_V2 : V2;
-fun scentless_A : A;
-fun sceptered_A : A;
-fun sceptic_N : N;
-fun sceptical_A : A;
-fun sceptically_Adv : Adv;
-fun scepticism_N : N;
-fun sceptre_N : N;
-fun sceptred_A : A;
-fun schedule_N : N;
-fun schedule_V2 : V2;
-fun schema_N : N;
-fun schematic_A : A;
-fun schematically_Adv : Adv;
-fun scheme_N : N;
-fun scheme_V : V;
-fun scheme_V2 : V2;
-fun schemer_N : N;
-fun scherzo_N : N;
-fun schism_N : N;
-fun schismatic_A : A;
-fun schist_N : N;
-fun schizoid_A : A;
-fun schizophrenia_N : N;
-fun schizophrenic_A : A;
-fun schizophrenic_N : N;
-fun schmaltz_N : N;
-fun schmaltzy_A : A;
-fun schmalz_N : N;
-fun schmalzy_A : A;
-fun schnapps_N : N;
-fun schnitzel_N : N;
-fun schnorkel_N : N;
-fun scholar_N : N;
-fun scholarly_A : A;
-fun scholarship_N : N;
-fun scholastic_A : A;
-fun scholasticism_N : N;
-fun school_N : N;
-fun school_V2 : V2;
-fun school_board_N : N;
-fun schoolbook_N : N;
-fun schoolboy_N : N;
-fun schoolchild_N : N;
-fun schoolfellow_N : N;
-fun schoolfriend_N : N;
-fun schoolgirl_N : N;
-fun schoolhouse_N : N;
-fun schooling_N : N;
-fun schoolman_N : N;
-fun schoolmaster_N : N;
-fun schoolmate_N : N;
-fun schoolmistress_N : N;
-fun schoolroom_N : N;
-fun schoolteacher_N : N;
-fun schooltime_N : N;
-fun schooner_N : N;
-fun schottische_N : N;
-fun schwa_N : N;
-fun schwerin_PN : PN;
-fun sci_fi_N : N;
-fun sciatic_A : A;
-fun sciatica_N : N;
-fun science_N : N;
-fun scientific_A : A;
-fun scientifically_Adv : Adv;
-fun scientist_N : N;
-fun scimitar_N : N;
-fun scintilla_N : N;
-fun scintillate_V : V;
-fun scintillation_N : N;
-fun scion_N : N;
-fun sclerosis_N : N;
-fun scoff_N : N;
-fun scoff_V : V;
-fun scoff_V2 : V2;
-fun scoffer_N : N;
-fun scoffingly_Adv : Adv;
-fun scold_N : N;
-fun scold_V : V;
-fun scold_V2 : V2;
-fun scolding_N : N;
-fun scollop_N : N;
-fun scollop_V2 : V2;
-fun sconce_N : N;
-fun scone_N : N;
-fun scoop_N : N;
-fun scoop_V2 : V2;
-fun scoopful_N : N;
-fun scoot_V : V;
-fun scooter_N : N;
-fun scope_N : N;
-fun scorbutic_A : A;
-fun scorch_N : N;
-fun scorch_V : V;
-fun scorch_V2 : V2;
-fun scorcher_N : N;
-fun scorching_A : A;
-fun scorching_Adv : Adv;
-fun score_N : N;
-fun score_V : V;
-fun score_V2 : V2;
-fun scoreboard_N : N;
-fun scorebook_N : N;
-fun scorecard_N : N;
-fun scorer_N : N;
-fun scorn_N : N;
-fun scorn_V2 : V2;
-fun scornful_A : A;
-fun scornfully_Adv : Adv;
-fun scorpio_PN : PN;
-fun scorpion_N : N;
-fun scot_N : N;
-fun scot_free_Adv : Adv;
-fun scotch_A : A;
-fun scotch_N : N;
-fun scotch_V2 : V2;
-fun scotchman_N : N;
-fun scotchwoman_N : N;
-fun scotland_PN : PN;
-fun scotland_yard_PN : PN;
-fun scots_A : A;
-fun scotsman_N : N;
-fun scotswoman_N : N;
-fun scottish_A : A;
-fun scoundrel_N : N;
-fun scoundrelly_A : A;
-fun scour_N : N;
-fun scour_V : V;
-fun scour_V2 : V2;
-fun scourer_N : N;
-fun scourge_N : N;
-fun scourge_V2 : V2;
-fun scout_N : N;
-fun scout_V : V;
-fun scout_V2 : V2;
-fun scoutmaster_N : N;
-fun scow_N : N;
-fun scowl_N : N;
-fun scowl_V : V;
-fun scrabble_N : N;
-fun scrabble_V : V;
-fun scrag_N : N;
-fun scrag_V2 : V2;
-fun scrag_end_N : N;
-fun scraggy_A : A;
-fun scram_V : V;
-fun scramble_N : N;
-fun scramble_V : V;
-fun scramble_V2 : V2;
-fun scrambler_N : N;
-fun scrap_N : N;
-fun scrap_V2 : V2;
-fun scrap_iron_N : N;
-fun scrapbook_N : N;
-fun scrape_N : N;
-fun scrape_V : V;
-fun scrape_V2 : V2;
-fun scraper_N : N;
-fun scrapheap_N : N;
-fun scraping_N : N;
-fun scrappily_Adv : Adv;
-fun scrappiness_N : N;
-fun scrappy_A : A;
-fun scratch_N : N;
-fun scratch_V : V;
-fun scratch_V2 : V2;
-fun scratch_pad_N : N;
-fun scratch_race_N : N;
-fun scratchy_A : A;
-fun scrawl_N : N;
-fun scrawl_V : V;
-fun scrawl_V2 : V2;
-fun scrawny_A : A;
-fun scream_N : N;
-fun scream_V : V;
-fun scream_V2 : V2;
-fun screamingly_Adv : Adv;
-fun scree_N : N;
-fun screech_N : N;
-fun screech_V : V;
-fun screech_V2 : V2;
-fun screech_owl_N : N;
-fun screed_N : N;
-fun screen_N : N;
-fun screen_V : V;
-fun screen_V2 : V2;
-fun screw_N : N;
-fun screw_V : V;
-fun screw_V2 : V2;
-fun screw_topped_A : A;
-fun screwball_A : A;
-fun screwball_N : N;
-fun screwdriver_N : N;
-fun screwy_A : A;
-fun scribble_N : N;
-fun scribble_V : V;
-fun scribble_V2 : V2;
-fun scribbler_N : N;
-fun scribbling_block_N : N;
-fun scribe_N : N;
-fun scrimmage_N : N;
-fun scrimmage_V : V;
-fun scrimmage_V2 : V2;
-fun scrimp_V : V;
-fun scrimp_V2 : V2;
-fun scrimshank_V : V;
-fun scrimshanker_N : N;
-fun scrip_N : N;
-fun script_N : N;
-fun scripted_A : A;
-fun scriptural_A : A;
-fun scripture_N : N;
-fun scriptwriter_N : N;
-fun scrivener_N : N;
-fun scrofula_N : N;
-fun scrofulous_A : A;
-fun scroll_N : N;
-fun scrooge_N : N;
-fun scrotum_N : N;
-fun scrounge_V : V;
-fun scrounge_V2 : V2;
-fun scrounger_N : N;
-fun scrub_N : N;
-fun scrub_V : V;
-fun scrub_V2 : V2;
-fun scrubbing_brush_N : N;
-fun scrubby_A : A;
-fun scruff_N : N;
-fun scruffy_A : A;
-fun scrum_N : N;
-fun scrummage_N : N;
-fun scrumptious_A : A;
-fun scrunch_N : N;
-fun scrunch_V2 : V2;
-fun scruple_N : N;
-fun scruple_V : V;
-fun scrupulous_A : A;
-fun scrupulously_Adv : Adv;
-fun scrutineer_N : N;
-fun scrutinize_V2 : V2;
-fun scrutiny_N : N;
-fun scud_N : N;
-fun scud_V : V;
-fun scuff_V : V;
-fun scuff_V2 : V2;
-fun scuffle_V : V;
-fun scull_N : N;
-fun scull_V : V;
-fun scull_V2 : V2;
-fun sculler_N : N;
-fun scullery_N : N;
-fun scullion_N : N;
-fun sculpt_V : V;
-fun sculpt_V2 : V2;
-fun sculptor_N : N;
-fun sculptress_N : N;
-fun sculptural_A : A;
-fun sculpture_N : N;
-fun sculpture_V : V;
-fun sculpture_V2 : V2;
-fun scum_N : N;
-fun scummy_A : A;
-fun scunthorpe_PN : PN;
-fun scupper_N : N;
-fun scupper_V2 : V2;
-fun scurf_N : N;
-fun scurfy_A : A;
-fun scurrility_N : N;
-fun scurrilous_A : A;
-fun scurrilously_Adv : Adv;
-fun scurry_N : N;
-fun scurry_V : V;
-fun scurvily_Adv : Adv;
-fun scurvy_A : A;
-fun scurvy_N : N;
-fun scut_N : N;
-fun scutcheon_N : N;
-fun scuttle_N : N;
-fun scuttle_V : V;
-fun scuttle_V2 : V2;
-fun scylla_N : N;
-fun scythe_N : N;
-fun scythe_V2 : V2;
-fun sea_N : N;
-fun sea_anemone_N : N;
-fun sea_animal_N : N;
-fun sea_bathing_N : N;
-fun sea_boat_N : N;
-fun sea_bream_N : N;
-fun sea_breeze_N : N;
-fun sea_coal_N : N;
-fun sea_cow_N : N;
-fun sea_dog_N : N;
-fun sea_fish_N : N;
-fun sea_girt_A : A;
-fun sea_god_N : N;
-fun sea_green_A : A;
-fun sea_green_N : N;
-fun sea_horse_N : N;
-fun sea_level_N : N;
-fun sea_lion_N : N;
-fun sea_power_N : N;
-fun sea_rover_N : N;
-fun sea_snake_N : N;
-fun sea_urchin_N : N;
-fun sea_wall_N : N;
-fun sea_water_N : N;
-fun seabed_N : N;
-fun seabird_N : N;
-fun seaboard_N : N;
-fun seaborne_A : A;
-fun seafarer_N : N;
-fun seafaring_A : A;
-fun seafood_N : N;
-fun seaford_PN : PN;
-fun seafront_N : N;
-fun seagoing_A : A;
-fun seagull_N : N;
-fun seaham_PN : PN;
-fun seakale_N : N;
-fun seal_N : N;
-fun seal_V : V;
-fun seal_V2 : V2;
-fun seal_ring_N : N;
-fun sealer_N : N;
-fun sealing_wax_N : N;
-fun sealskin_N : N;
-fun sealyham_N : N;
-fun seam_N : N;
-fun seam_V2 : V2;
-fun seaman_N : N;
-fun seamanlike_A : A;
-fun seamanship_N : N;
-fun seamless_A : A;
-fun seamstress_N : N;
-fun seamus_PN : PN;
-fun seamy_A : A;
-fun sean_PN : PN;
-fun seaplane_N : N;
-fun seaport_N : N;
-fun sear_A : A;
-fun sear_V2 : V2;
-fun search_N : N;
-fun search_V : V;
-fun search_V2 : V2;
-fun search_party_N : N;
-fun search_warrant_N : N;
-fun searcher_N : N;
-fun searching_A : A;
-fun searchingly_Adv : Adv;
-fun searchlight_N : N;
-fun searing_iron_N : N;
-fun seascape_N : N;
-fun seashell_N : N;
-fun seashore_N : N;
-fun seasick_A : A;
-fun seasickness_N : N;
-fun seaside_N : N;
-fun season_N : N;
-fun season_V : V;
-fun season_V2 : V2;
-fun season_ticket_N : N;
-fun seasonable_A : A;
-fun seasonal_A : A;
-fun seasonally_Adv : Adv;
-fun seasoning_N : N;
-fun seat_N : N;
-fun seat_V2 : V2;
-fun seat_belt_N : N;
-fun seating_room_N : N;
-fun seaton_burn_PN : PN;
-fun seaton_delaval_PN : PN;
-fun seattle_PN : PN;
-fun seaward_A : A;
-fun seawards_Adv : Adv;
-fun seaway_N : N;
-fun seaweed_N : N;
-fun seaworthiness_N : N;
-fun seaworthy_A : A;
-fun sec_N : N;
-fun secede_V : V;
-fun secession_N : N;
-fun secessionist_N : N;
-fun seclude_V2 : V2;
-fun secluded_A : A;
-fun seclusion_N : N;
-fun second_N : N;
-fun second_V2 : V2;
-fun second_best_A : A;
-fun second_best_Adv : Adv;
-fun second_best_N : N;
-fun second_class_A : A;
-fun second_class_Adv : Adv;
-fun second_class_N : N;
-fun second_hand_A : A;
-fun second_hand_N : N;
-fun second_rate_A : A;
-fun second_rater_N : N;
-fun second_sighted_A : A;
-fun secondarily_Adv : Adv;
-fun secondary_A : A;
-fun seconder_N : N;
-fun secondly_Adv : Adv;
-fun secondment_N : N;
-fun secrecy_N : N;
-fun secret_A : A;
-fun secret_N : N;
-fun secretarial_A : A;
-fun secretariat_N : N;
-fun secretary_N : N;
-fun secretary_general_N : N;
-fun secrete_V2 : V2;
-fun secretion_N : N;
-fun secretive_A : A;
-fun secretively_Adv : Adv;
-fun secretiveness_N : N;
-fun secretly_Adv : Adv;
-fun sect_N : N;
-fun sectarian_A : A;
-fun sectarian_N : N;
-fun sectarianism_N : N;
-fun section_N : N;
-fun sectional_A : A;
-fun sectionalism_N : N;
-fun sector_N : N;
-fun secular_A : A;
-fun secularism_N : N;
-fun secularist_N : N;
-fun secularize_V2 : V2;
-fun secure_A : A;
-fun secure_V2 : V2;
-fun securely_Adv : Adv;
-fun securicor_PN : PN;
-fun security_N : N;
-fun sedan_N : N;
-fun sedan_chair_N : N;
-fun sedate_A : A;
-fun sedate_V2 : V2;
-fun sedately_Adv : Adv;
-fun sedateness_N : N;
-fun sedation_N : N;
-fun sedative_A : A;
-fun sedative_N : N;
-fun sedentary_A : A;
-fun sedge_N : N;
-fun sedgy_A : A;
-fun sediment_N : N;
-fun sedimentary_A : A;
-fun sedition_N : N;
-fun seditious_A : A;
-fun seduce_V2 : V2;
-fun seducer_N : N;
-fun seduction_N : N;
-fun seductive_A : A;
-fun seductively_Adv : Adv;
-fun sedulous_A : A;
-fun sedulously_Adv : Adv;
-fun see_N : N;
-fun see_V : V;
-fun see_V2 : V2;
-fun see_through_A : A;
-fun seed_N : N;
-fun seed_V : V;
-fun seed_V2 : V2;
-fun seed_corn_N : N;
-fun seedbed_N : N;
-fun seedcake_N : N;
-fun seedily_Adv : Adv;
-fun seediness_N : N;
-fun seedless_A : A;
-fun seedling_N : N;
-fun seedsman_N : N;
-fun seedtime_N : N;
-fun seedy_A : A;
-fun seek_V2 : V2;
-fun seeker_N : N;
-fun seem_V : V;
-fun seeming_A : A;
-fun seemingly_Adv : Adv;
-fun seemliness_N : N;
-fun seemly_A : A;
-fun seep_V : V;
-fun seepage_N : N;
-fun seer_N : N;
-fun seersucker_N : N;
-fun seesaw_N : N;
-fun seesaw_V : V;
-fun seethe_V : V;
-fun seethe_V2 : V2;
-fun segment_N : N;
-fun segment_V : V;
-fun segment_V2 : V2;
-fun segmentation_N : N;
-fun segregate_V2 : V2;
-fun segregation_N : N;
-fun seignior_N : N;
-fun seine_N : N;
-fun seine_V : V;
-fun seine_V2 : V2;
-fun seismic_A : A;
-fun seismograph_N : N;
-fun seismologist_N : N;
-fun seismology_N : N;
-fun seize_V : V;
-fun seize_V2 : V2;
-fun seizure_N : N;
-fun selby_PN : PN;
-fun seldom_Adv : Adv;
-fun select_A : A;
-fun select_V2 : V2;
-fun selection_N : N;
-fun selective_A : A;
-fun selectively_Adv : Adv;
-fun selectivity_N : N;
-fun selector_N : N;
-fun selenium_N : N;
-fun self_N : N;
-fun self_abasement_N : N;
-fun self_abnegation_N : N;
-fun self_absorbed_A : A;
-fun self_acting_A : A;
-fun self_activating_A : A;
-fun self_addressed_A : A;
-fun self_appointed_A : A;
-fun self_assertion_N : N;
-fun self_assertive_A : A;
-fun self_assurance_N : N;
-fun self_assured_A : A;
-fun self_centred_A : A;
-fun self_collected_A : A;
-fun self_coloured_A : A;
-fun self_command_N : N;
-fun self_communion_N : N;
-fun self_complacency_N : N;
-fun self_confessed_A : A;
-fun self_confidence_N : N;
-fun self_confident_A : A;
-fun self_conscious_A : A;
-fun self_consciousness_N : N;
-fun self_contained_A : A;
-fun self_control_N : N;
-fun self_defence_N : N;
-fun self_denial_N : N;
-fun self_denying_A : A;
-fun self_determination_N : N;
-fun self_educated_A : A;
-fun self_effacing_A : A;
-fun self_employed_A : A;
-fun self_esteem_N : N;
-fun self_evident_A : A;
-fun self_examination_N : N;
-fun self_explanatory_A : A;
-fun self_help_N : N;
-fun self_importance_N : N;
-fun self_important_A : A;
-fun self_imposed_A : A;
-fun self_indulgence_N : N;
-fun self_indulgent_A : A;
-fun self_interest_N : N;
-fun self_locking_A : A;
-fun self_made_A : A;
-fun self_opinionated_A : A;
-fun self_pity_N : N;
-fun self_possessed_A : A;
-fun self_possession_N : N;
-fun self_preservation_N : N;
-fun self_raising_A : A;
-fun self_reliance_N : N;
-fun self_reliant_A : A;
-fun self_respect_N : N;
-fun self_respecting_A : A;
-fun self_righteous_A : A;
-fun self_rule_N : N;
-fun self_sacrifice_N : N;
-fun self_sacrificing_A : A;
-fun self_same_A : A;
-fun self_sealing_A : A;
-fun self_seeker_N : N;
-fun self_seeking_A : A;
-fun self_seeking_N : N;
-fun self_service_N : N;
-fun self_sown_A : A;
-fun self_starter_N : N;
-fun self_styled_A : A;
-fun self_sufficiency_N : N;
-fun self_sufficient_A : A;
-fun self_sufficing_A : A;
-fun self_supporting_A : A;
-fun self_will_N : N;
-fun self_willed_A : A;
-fun self_winding_A : A;
-fun selfconsciously_Adv : Adv;
-fun selfish_A : A;
-fun selfishly_Adv : Adv;
-fun selfishness_N : N;
-fun selkirk_PN : PN;
-fun sell_N : N;
-fun sell_V : V;
-fun sell_V2 : V2;
-fun seller_N : N;
-fun selling_N : N;
-fun sellout_N : N;
-fun selsey_PN : PN;
-fun selston_PN : PN;
-fun selvage_N : N;
-fun selvedge_N : N;
-fun semantic_A : A;
-fun semantics_N : N;
-fun semaphore_N : N;
-fun semaphore_V : V;
-fun semaphore_V2 : V2;
-fun semarang_PN : PN;
-fun semblance_N : N;
-fun semen_N : N;
-fun semester_N : N;
-fun semibreve_N : N;
-fun semicircle_N : N;
-fun semicircular_A : A;
-fun semicolon_N : N;
-fun semiconducting_A : A;
-fun semiconductor_N : N;
-fun semiconscious_A : A;
-fun semidetached_A : A;
-fun semifinal_N : N;
-fun semifinalist_N : N;
-fun seminal_A : A;
-fun seminar_N : N;
-fun seminarist_N : N;
-fun seminary_N : N;
-fun semiofficial_A : A;
-fun semiquaver_N : N;
-fun semirigid_A : A;
-fun semite_A : A;
-fun semite_N : N;
-fun semitic_A : A;
-fun semitone_N : N;
-fun semitropical_A : A;
-fun semivowel_N : N;
-fun semolina_N : N;
-fun sempstress_N : N;
-fun senate_N : N;
-fun senator_N : N;
-fun senatorial_A : A;
-fun send_V : V;
-fun send_V2 : V2;
-fun send_up_N : N;
-fun sender_N : N;
-fun sendoff_N : N;
-fun senegal_PN : PN;
-fun senegalese_A : A;
-fun senegalese_N : N;
-fun senescence_N : N;
-fun senescent_A : A;
-fun seneschal_N : N;
-fun senile_A : A;
-fun senility_N : N;
-fun senior_A : A;
-fun senior_N : N;
-fun seniority_N : N;
-fun senna_N : N;
-fun senora_N : N;
-fun senorita_N : N;
-fun sensation_N : N;
-fun sensational_A : A;
-fun sensationalism_N : N;
-fun sensationalist_N : N;
-fun sensationally_Adv : Adv;
-fun sense_N : N;
-fun sense_V2 : V2;
-fun sense_organ_N : N;
-fun senseless_A : A;
-fun senselessly_Adv : Adv;
-fun senselessness_N : N;
-fun sensibility_N : N;
-fun sensible_A : A;
-fun sensibly_Adv : Adv;
-fun sensitive_A : A;
-fun sensitively_Adv : Adv;
-fun sensitivity_N : N;
-fun sensitization_N : N;
-fun sensitize_V2 : V2;
-fun sensory_A : A;
-fun sensual_A : A;
-fun sensualism_N : N;
-fun sensualist_N : N;
-fun sensuality_N : N;
-fun sensuous_A : A;
-fun sensuously_Adv : Adv;
-fun sensuousness_N : N;
-fun sentence_N : N;
-fun sentence_V2 : V2;
-fun sententious_A : A;
-fun sententiously_Adv : Adv;
-fun sentient_A : A;
-fun sentiment_N : N;
-fun sentimental_A : A;
-fun sentimentalist_N : N;
-fun sentimentality_N : N;
-fun sentimentalize_V : V;
-fun sentimentalize_V2 : V2;
-fun sentimentally_Adv : Adv;
-fun sentinel_N : N;
-fun sentry_N : N;
-fun sentry_box_N : N;
-fun sentry_go_N : N;
-fun seoul_PN : PN;
-fun sepal_N : N;
-fun separability_N : N;
-fun separable_A : A;
-fun separably_Adv : Adv;
-fun separate_A : A;
-fun separate_N : N;
-fun separate_V : V;
-fun separate_V2 : V2;
-fun separately_Adv : Adv;
-fun separation_N : N;
-fun separatist_N : N;
-fun separator_N : N;
-fun sepia_N : N;
-fun sepsis_N : N;
-fun sept_PN : PN;
-fun september_N : N;
-fun september_PN : PN;
-fun septet_N : N;
-fun septic_A : A;
-fun septicaemia_N : N;
-fun septicemia_N : N;
-fun septuagenarian_N : N;
-fun septuagint_N : N;
-fun sepulchral_A : A;
-fun sepulchre_N : N;
-fun sepulture_N : N;
-fun sequel_N : N;
-fun sequence_N : N;
-fun sequent_A : A;
-fun sequential_A : A;
-fun sequentially_Adv : Adv;
-fun sequester_V2 : V2;
-fun sequestered_A : A;
-fun sequestrate_V2 : V2;
-fun sequestration_N : N;
-fun sequin_N : N;
-fun sequoia_N : N;
-fun seraglio_N : N;
-fun seraph_N : N;
-fun seraphic_A : A;
-fun serbo_croat_N : N;
-fun sere_A : A;
-fun serenade_N : N;
-fun serenade_V2 : V2;
-fun serendipity_N : N;
-fun serene_A : A;
-fun serenely_Adv : Adv;
-fun serenity_N : N;
-fun serf_N : N;
-fun serfdom_N : N;
-fun serge_N : N;
-fun sergeant_N : N;
-fun sergeant_major_N : N;
-fun serial_A : A;
-fun serial_N : N;
-fun serialize_V2 : V2;
-fun serially_Adv : Adv;
-fun seriatim_Adv : Adv;
-fun sericultural_A : A;
-fun sericulture_N : N;
-fun sericulturist_N : N;
-fun series_N : N;
-fun seriocomic_A : A;
-fun serious_A : A;
-fun seriously_Adv : Adv;
-fun seriousness_N : N;
-fun serjeant_N : N;
-fun serjeant_at_arms_N : N;
-fun sermon_N : N;
-fun sermonize_V : V;
-fun sermonize_V2 : V2;
-fun serous_A : A;
-fun serpent_N : N;
-fun serpentine_A : A;
-fun serrated_A : A;
-fun serried_A : A;
-fun serum_N : N;
-fun servant_N : N;
-fun serve_N : N;
-fun serve_V : V;
-fun serve_V2 : V2;
-fun server_N : N;
-fun service_N : N;
-fun service_V2 : V2;
-fun serviceable_A : A;
-fun serviceman_N : N;
-fun serviette_N : N;
-fun servile_A : A;
-fun servilely_Adv : Adv;
-fun servility_N : N;
-fun serving_N : N;
-fun servitor_N : N;
-fun servitude_N : N;
-fun sesame_N : N;
-fun sesotho_N : N;
-fun sesquipedalian_A : A;
-fun session_N : N;
-fun set_N : N;
-fun set_V : V;
-fun set_V2 : V2;
-fun set_square_N : N;
-fun set_to_N : N;
-fun set_up_N : N;
-fun setback_N : N;
-fun setswana_N : N;
-fun sett_N : N;
-fun settee_N : N;
-fun setter_N : N;
-fun setting_N : N;
-fun settle_N : N;
-fun settle_V : V;
-fun settle_V2 : V2;
-fun settled_A : A;
-fun settlement_N : N;
-fun settler_N : N;
-fun seven_sisters_PN : PN;
-fun sevenfold_A : A;
-fun sevenfold_Adv : Adv;
-fun sevenoaks_PN : PN;
-fun sever_V : V;
-fun sever_V2 : V2;
-fun several_A : A;
-fun severally_Adv : Adv;
-fun severance_N : N;
-fun severe_A : A;
-fun severely_Adv : Adv;
-fun severity_N : N;
-fun sevilla_PN : PN;
-fun seville_PN : PN;
-fun sew_V : V;
-fun sew_V2 : V2;
-fun sewage_N : N;
-fun sewage_farm_N : N;
-fun sewage_works_N : N;
-fun sewer_N : N;
-fun sewer_gas_N : N;
-fun sewer_rat_N : N;
-fun sewerage_N : N;
-fun sewing_N : N;
-fun sewing_machine_N : N;
-fun sex_N : N;
-fun sex_V2 : V2;
-fun sex_starved_A : A;
-fun sexagenarian_A : A;
-fun sexagenarian_N : N;
-fun sexed_A : A;
-fun sexism_N : N;
-fun sexist_A : A;
-fun sexist_N : N;
-fun sexless_A : A;
-fun sextant_N : N;
-fun sextet_N : N;
-fun sextette_N : N;
-fun sexton_N : N;
-fun sexual_A : A;
-fun sexuality_N : N;
-fun sexually_Adv : Adv;
-fun sexy_A : A;
-fun seychelles_PN : PN;
-fun seychellois_A : A;
-fun seychellois_N : N;
-fun senor_N : N;
-fun sgd_PN : PN;
-fun sgt_PN : PN;
-fun shabbily_Adv : Adv;
-fun shabbiness_N : N;
-fun shabby_A : A;
-fun shabby_genteel_A : A;
-fun shack_N : N;
-fun shack_V : V;
-fun shackle_N : N;
-fun shackle_V2 : V2;
-fun shad_N : N;
-fun shaddock_N : N;
-fun shade_N : N;
-fun shade_V : V;
-fun shade_V2 : V2;
-fun shade_tree_N : N;
-fun shading_N : N;
-fun shadow_N : N;
-fun shadow_V2 : V2;
-fun shadow_boxing_N : N;
-fun shadowy_A : A;
-fun shady_A : A;
-fun shaft_N : N;
-fun shag_N : N;
-fun shag_V : V;
-fun shag_V2 : V2;
-fun shaggily_Adv : Adv;
-fun shagginess_N : N;
-fun shagging_N : N;
-fun shaggy_A : A;
-fun shah_N : N;
-fun shake_N : N;
-fun shake_V : V;
-fun shake_V2 : V2;
-fun shake_up_N : N;
-fun shakedown_N : N;
-fun shakeout_N : N;
-fun shaker_N : N;
-fun shakespearian_A : A;
-fun shakily_Adv : Adv;
-fun shakiness_N : N;
-fun shaking_N : N;
-fun shaky_A : A;
-fun shale_N : N;
-fun shale_oil_N : N;
-fun shallot_N : N;
-fun shallow_A : A;
-fun shallow_N : N;
-fun shallow_V : V;
-fun sham_A : A;
-fun sham_N : N;
-fun sham_V : V;
-fun sham_V2 : V2;
-fun shamble_N : N;
-fun shamble_V : V;
-fun shambles_N : N;
-fun shame_N : N;
-fun shame_V2 : V2;
-fun shame_making_A : A;
-fun shamefaced_A : A;
-fun shamefacedly_Adv : Adv;
-fun shameful_A : A;
-fun shamefully_Adv : Adv;
-fun shameless_A : A;
-fun shamelessly_Adv : Adv;
-fun shamelessness_N : N;
-fun shammy_N : N;
-fun shampoo_N : N;
-fun shampoo_V2 : V2;
-fun shamrock_N : N;
-fun shandy_N : N;
-fun shanghai_PN : PN;
-fun shanghai_V2 : V2;
-fun shank_N : N;
-fun shanklin_PN : PN;
-fun shantung_N : N;
-fun shanty_N : N;
-fun shantytown_N : N;
-fun shape_N : N;
-fun shape_V : V;
-fun shape_V2 : V2;
-fun shapeless_A : A;
-fun shapelessly_Adv : Adv;
-fun shapelessness_N : N;
-fun shapely_A : A;
-fun shard_N : N;
-fun share_N : N;
-fun share_V : V;
-fun share_V2 : V2;
-fun share_out_N : N;
-fun sharecropper_N : N;
-fun shareholder_N : N;
-fun shareholding_N : N;
-fun shark_N : N;
-fun sharkskin_N : N;
-fun sharon_PN : PN;
-fun sharp_A : A;
-fun sharp_Adv : Adv;
-fun sharp_N : N;
-fun sharp_eyed_A : A;
-fun sharp_set_A : A;
-fun sharp_sighted_A : A;
-fun sharp_witted_A : A;
-fun sharpen_V : V;
-fun sharpen_V2 : V2;
-fun sharpener_N : N;
-fun sharper_N : N;
-fun sharply_Adv : Adv;
-fun sharpness_N : N;
-fun sharpshooter_N : N;
-fun shatter_V : V;
-fun shatter_V2 : V2;
-fun shatterproof_A : A;
-fun shave_N : N;
-fun shave_V : V;
-fun shave_V2 : V2;
-fun shaver_N : N;
-fun shavian_A : A;
-fun shavian_N : N;
-fun shaving_brush_N : N;
-fun shawl_N : N;
-fun she_goat_N : N;
-fun sheaf_N : N;
-fun shear_V2 : V2;
-fun sheath_N : N;
-fun sheath_knife_N : N;
-fun sheathe_V2 : V2;
-fun sheathing_N : N;
-fun shebang_N : N;
-fun shebeen_N : N;
-fun shed_N : N;
-fun shed_V2 : V2;
-fun sheen_N : N;
-fun sheep_N : N;
-fun sheepdog_N : N;
-fun sheepfold_N : N;
-fun sheepish_A : A;
-fun sheepishly_Adv : Adv;
-fun sheepishness_N : N;
-fun sheeprun_N : N;
-fun sheepskin_N : N;
-fun sheer_A : A;
-fun sheer_Adv : Adv;
-fun sheer_V : V;
-fun sheerness_PN : PN;
-fun sheet_N : N;
-fun sheet_anchor_N : N;
-fun sheet_lightning_N : N;
-fun sheeting_N : N;
-fun sheffield_PN : PN;
-fun sheik_N : N;
-fun sheikdom_N : N;
-fun sheikh_N : N;
-fun sheikhdom_N : N;
-fun sheila_PN : PN;
-fun shekel_N : N;
-fun sheldrake_N : N;
-fun shelf_N : N;
-fun shelford_PN : PN;
-fun shell_N : N;
-fun shell_V : V;
-fun shell_V2 : V2;
-fun shell_shock_N : N;
-fun shellac_N : N;
-fun shellac_V2 : V2;
-fun shellfire_N : N;
-fun shellfish_N : N;
-fun shellproof_A : A;
-fun shelter_N : N;
-fun shelter_V : V;
-fun shelter_V2 : V2;
-fun shelve_V : V;
-fun shelve_V2 : V2;
-fun shepherd_N : N;
-fun shepherd_V2 : V2;
-fun shepherdess_N : N;
-fun shepshed_PN : PN;
-fun shepton_mallet_PN : PN;
-fun sheraton_N : N;
-fun sherbet_N : N;
-fun sherbourne_PN : PN;
-fun sheriff_N : N;
-fun sheringham_PN : PN;
-fun sherry_N : N;
-fun shetland_PN : PN;
-fun shevington_PN : PN;
-fun shew_V : V;
-fun shew_V2 : V2;
-fun shibboleth_N : N;
-fun shield_N : N;
-fun shield_V2 : V2;
-fun shift_N : N;
-fun shift_V : V;
-fun shift_V2 : V2;
-fun shiftily_Adv : Adv;
-fun shiftiness_N : N;
-fun shiftless_A : A;
-fun shifty_A : A;
-fun shihkiachwang_PN : PN;
-fun shildon_PN : PN;
-fun shillelagh_N : N;
-fun shilling_N : N;
-fun shillyshally_N : N;
-fun shillyshally_V : V;
-fun shimmer_N : N;
-fun shimmer_V : V;
-fun shin_N : N;
-fun shin_V : V;
-fun shinbone_N : N;
-fun shindig_N : N;
-fun shindy_N : N;
-fun shine_N : N;
-fun shine_V : V;
-fun shine_V2 : V2;
-fun shingle_N : N;
-fun shingle_V2 : V2;
-fun shingles_N : N;
-fun shingly_A : A;
-fun shinguard_N : N;
-fun shiny_A : A;
-fun ship's_chandler_N : N;
-fun ship_N : N;
-fun ship_V : V;
-fun ship_V2 : V2;
-fun ship_breaker_N : N;
-fun ship_canal_N : N;
-fun shipboard_A : A;
-fun shipbroker_N : N;
-fun shipbuilder_N : N;
-fun shipbuilding_N : N;
-fun shipload_N : N;
-fun shipmate_N : N;
-fun shipment_N : N;
-fun shipowner_N : N;
-fun shipper_N : N;
-fun shipping_N : N;
-fun shipping_agent_N : N;
-fun shipping_office_N : N;
-fun shipshape_A : A;
-fun shipshape_Adv : Adv;
-fun shipway_N : N;
-fun shipwreck_N : N;
-fun shipwreck_V : V;
-fun shipwright_N : N;
-fun shipyard_N : N;
-fun shire_N : N;
-fun shirebrook_PN : PN;
-fun shiremoor_PN : PN;
-fun shirk_V : V;
-fun shirk_V2 : V2;
-fun shirker_N : N;
-fun shirley_PN : PN;
-fun shirt_N : N;
-fun shirt_front_N : N;
-fun shirting_N : N;
-fun shirtwaist_N : N;
-fun shirtwaister_N : N;
-fun shirty_A : A;
-fun shish_kebab_N : N;
-fun shit_N : N;
-fun shit_V : V;
-fun shiver_N : N;
-fun shiver_V : V;
-fun shiver_V2 : V2;
-fun shivery_A : A;
-fun shoal_N : N;
-fun shoal_V : V;
-fun shock_Adv : Adv;
-fun shock_N : N;
-fun shock_V2 : V2;
-fun shock_brigade_N : N;
-fun shock_headed_A : A;
-fun shock_worker_N : N;
-fun shockable_A : A;
-fun shocker_N : N;
-fun shocking_A : A;
-fun shockingly_Adv : Adv;
-fun shoddiness_N : N;
-fun shoddy_A : A;
-fun shoddy_N : N;
-fun shoe_N : N;
-fun shoe_V2 : V2;
-fun shoe_leather_N : N;
-fun shoeblack_N : N;
-fun shoehorn_N : N;
-fun shoelace_N : N;
-fun shoemaker_N : N;
-fun shoemaking_N : N;
-fun shoestring_N : N;
-fun shoetree_N : N;
-fun shogun_N : N;
-fun shoo_V : V;
-fun shoo_V2 : V2;
-fun shoot_N : N;
-fun shoot_V : V;
-fun shoot_V2 : V2;
-fun shooter_N : N;
-fun shooting_N : N;
-fun shooting_box_N : N;
-fun shooting_brake_N : N;
-fun shooting_gallery_N : N;
-fun shooting_range_N : N;
-fun shooting_stick_N : N;
-fun shop_N : N;
-fun shop_V : V;
-fun shop_assistant_N : N;
-fun shop_bell_N : N;
-fun shop_boy_N : N;
-fun shop_front_N : N;
-fun shop_girl_N : N;
-fun shop_steward_N : N;
-fun shopkeeper_N : N;
-fun shoplift_V : V;
-fun shoplift_V2 : V2;
-fun shoplifter_N : N;
-fun shoplifting_N : N;
-fun shopper_N : N;
-fun shopping_N : N;
-fun shopsoiled_A : A;
-fun shopwalker_N : N;
-fun shopwindow_N : N;
-fun shopworn_A : A;
-fun shore_N : N;
-fun shore_V2 : V2;
-fun short_A : A;
-fun short_Adv : Adv;
-fun short_N : N;
-fun short_V : V;
-fun short_V2 : V2;
-fun short_change_V2 : V2;
-fun short_circuit_N : N;
-fun short_circuit_V : V;
-fun short_circuit_V2 : V2;
-fun short_dated_A : A;
-fun short_handed_A : A;
-fun short_lived_A : A;
-fun short_range_A : A;
-fun short_sighted_A : A;
-fun short_tempered_A : A;
-fun short_term_A : A;
-fun short_winded_A : A;
-fun shortage_N : N;
-fun shortbread_N : N;
-fun shortcake_N : N;
-fun shortcoming_N : N;
-fun shorten_V : V;
-fun shorten_V2 : V2;
-fun shortening_N : N;
-fun shortfall_N : N;
-fun shorthand_N : N;
-fun shorthorn_N : N;
-fun shortish_A : A;
-fun shortlist_N : N;
-fun shortlist_V2 : V2;
-fun shortly_Adv : Adv;
-fun shortness_N : N;
-fun shot_N : N;
-fun shot_put_N : N;
-fun shot_tower_N : N;
-fun shotgun_N : N;
-fun shotton_PN : PN;
-fun shotts_PN : PN;
-fun shoulder_N : N;
-fun shoulder_V2 : V2;
-fun shoulder_blade_N : N;
-fun shoulder_flash_N : N;
-fun shoulder_strap_N : N;
-fun shout_N : N;
-fun shout_V : V;
-fun shout_V2 : V2;
-fun shouting_N : N;
-fun shove_N : N;
-fun shove_V : V;
-fun shove_V2 : V2;
-fun shove_ha'penny_N : N;
-fun shovel_N : N;
-fun shovel_V2 : V2;
-fun shovel_board_N : N;
-fun shovelful_N : N;
-fun show_N : N;
-fun show_V : V;
-fun show_V2 : V2;
-fun show_business_N : N;
-fun show_off_N : N;
-fun show_window_N : N;
-fun showbiz_N : N;
-fun showboat_N : N;
-fun showcase_N : N;
-fun showdown_N : N;
-fun shower_N : N;
-fun shower_V : V;
-fun shower_V2 : V2;
-fun shower_bath_N : N;
-fun showery_A : A;
-fun showgirl_N : N;
-fun showily_Adv : Adv;
-fun showiness_N : N;
-fun showing_N : N;
-fun showjumping_N : N;
-fun showman_N : N;
-fun showmanship_N : N;
-fun showplace_N : N;
-fun showroom_N : N;
-fun showy_A : A;
-fun shrapnel_N : N;
-fun shred_N : N;
-fun shred_V2 : V2;
-fun shrew_N : N;
-fun shrew_mouse_N : N;
-fun shrewd_A : A;
-fun shrewdly_Adv : Adv;
-fun shrewdness_N : N;
-fun shrewish_A : A;
-fun shrewishly_Adv : Adv;
-fun shrewishness_N : N;
-fun shrewsbury_PN : PN;
-fun shriek_N : N;
-fun shriek_V : V;
-fun shriek_V2 : V2;
-fun shrift_N : N;
-fun shrike_N : N;
-fun shrill_A : A;
-fun shrill_V : V;
-fun shrill_V2 : V2;
-fun shrillness_N : N;
-fun shrilly_Adv : Adv;
-fun shrimp_N : N;
-fun shrimp_V : V;
-fun shrine_N : N;
-fun shrine_V2 : V2;
-fun shrink_N : N;
-fun shrink_V : V;
-fun shrink_V2 : V2;
-fun shrinkable_A : A;
-fun shrinkage_N : N;
-fun shrive_V2 : V2;
-fun shrivel_V : V;
-fun shrivel_V2 : V2;
-fun shropshire_PN : PN;
-fun shroud_N : N;
-fun shroud_V2 : V2;
-fun shrove_tuesday_N : N;
-fun shrove_tuesday_PN : PN;
-fun shrub_N : N;
-fun shrubbery_N : N;
-fun shrug_N : N;
-fun shrug_V2 : V2;
-fun shuck_N : N;
-fun shuck_V2 : V2;
-fun shudder_N : N;
-fun shudder_V : V;
-fun shudderingly_Adv : Adv;
-fun shuffle_N : N;
-fun shuffle_V : V;
-fun shuffle_V2 : V2;
-fun shuffler_N : N;
-fun shun_V2 : V2;
-fun shunt_V : V;
-fun shunt_V2 : V2;
-fun shunter_N : N;
-fun shush_V : V;
-fun shush_V2 : V2;
-fun shut_V : V;
-fun shut_V2 : V2;
-fun shutdown_N : N;
-fun shuteye_N : N;
-fun shutter_N : N;
-fun shutter_V2 : V2;
-fun shuttle_N : N;
-fun shuttle_V : V;
-fun shuttle_V2 : V2;
-fun shuttlecock_N : N;
-fun shy_A : A;
-fun shy_N : N;
-fun shy_V : V;
-fun shy_V2 : V2;
-fun shyly_Adv : Adv;
-fun shyness_N : N;
-fun shyster_N : N;
-fun siam_PN : PN;
-fun siamese_A : A;
-fun siamese_N : N;
-fun sian_PN : PN;
-fun siberian_A : A;
-fun sibilant_A : A;
-fun sibilant_N : N;
-fun sibling_N : N;
-fun sibyl_N : N;
-fun sibylline_A : A;
-fun sic_Adv : Adv;
-fun sicilian_A : A;
-fun sicilian_N : N;
-fun sick_A : A;
-fun sick_V2 : V2;
-fun sick_benefit_N : N;
-fun sick_berth_N : N;
-fun sick_headache_N : N;
-fun sick_leave_N : N;
-fun sick_list_N : N;
-fun sick_parade_N : N;
-fun sick_pay_N : N;
-fun sick_room_N : N;
-fun sickbay_N : N;
-fun sickbed_N : N;
-fun sicken_V : V;
-fun sicken_V2 : V2;
-fun sickening_A : A;
-fun sickeningly_Adv : Adv;
-fun sickish_A : A;
-fun sickle_N : N;
-fun sickly_A : A;
-fun sickness_N : N;
-fun sid_PN : PN;
-fun side_N : N;
-fun side_V : V;
-fun side_chapel_N : N;
-fun side_dish_N : N;
-fun side_drum_N : N;
-fun side_face_Adv : Adv;
-fun side_glance_N : N;
-fun side_road_N : N;
-fun side_saddle_Adv : Adv;
-fun side_saddle_N : N;
-fun side_slip_N : N;
-fun side_slip_V : V;
-fun side_splitting_A : A;
-fun side_stroke_N : N;
-fun side_view_N : N;
-fun sideboard_N : N;
-fun sidecar_N : N;
-fun sided_A : A;
-fun sidelight_N : N;
-fun sideline_N : N;
-fun sidelong_A : A;
-fun sidelong_Adv : Adv;
-fun sidereal_A : A;
-fun sideshow_N : N;
-fun sidesman_N : N;
-fun sidestep_N : N;
-fun sidestep_V : V;
-fun sidestep_V2 : V2;
-fun sidetrack_N : N;
-fun sidetrack_V2 : V2;
-fun sidewalk_N : N;
-fun sidewards_Adv : Adv;
-fun sideways_Adv : Adv;
-fun siding_N : N;
-fun sidle_V : V;
-fun sidmouth_PN : PN;
-fun sidney_PN : PN;
-fun siege_N : N;
-fun sienna_N : N;
-fun sierra_N : N;
-fun sierra_leone_PN : PN;
-fun sierra_leonian_A : A;
-fun sierra_leonian_N : N;
-fun siesta_N : N;
-fun sieve_N : N;
-fun sieve_V2 : V2;
-fun sift_V : V;
-fun sift_V2 : V2;
-fun sifter_N : N;
-fun sigh_N : N;
-fun sigh_V : V;
-fun sigh_V2 : V2;
-fun sight_N : N;
-fun sight_V2 : V2;
-fun sighted_A : A;
-fun sighting_N : N;
-fun sightless_A : A;
-fun sightseeing_N : N;
-fun sightseer_N : N;
-fun sign_N : N;
-fun sign_V : V;
-fun sign_V2 : V2;
-fun sign_painter_N : N;
-fun signal_A : A;
-fun signal_N : N;
-fun signal_V : V;
-fun signal_V2 : V2;
-fun signal_box_N : N;
-fun signalize_V2 : V2;
-fun signaller_N : N;
-fun signally_Adv : Adv;
-fun signalman_N : N;
-fun signatory_N : N;
-fun signature_N : N;
-fun signet_N : N;
-fun signet_ring_N : N;
-fun significance_N : N;
-fun significant_A : A;
-fun significantly_Adv : Adv;
-fun signification_N : N;
-fun significative_A : A;
-fun signify_V : V;
-fun signify_V2 : V2;
-fun signor_N : N;
-fun signora_N : N;
-fun signorina_N : N;
-fun signpost_N : N;
-fun signpost_V2 : V2;
-fun sikh_N : N;
-fun silage_N : N;
-fun sileby_PN : PN;
-fun silence_N : N;
-fun silence_V2 : V2;
-fun silencer_N : N;
-fun silent_A : A;
-fun silently_Adv : Adv;
-fun silhouette_N : N;
-fun silhouette_V2 : V2;
-fun silica_N : N;
-fun silicate_N : N;
-fun silicon_N : N;
-fun silicone_N : N;
-fun silicosis_N : N;
-fun silk_N : N;
-fun silken_A : A;
-fun silkily_Adv : Adv;
-fun silkiness_N : N;
-fun silkworm_N : N;
-fun silky_A : A;
-fun sill_N : N;
-fun sillabub_N : N;
-fun silliness_N : N;
-fun silly_A : A;
-fun silly_N : N;
-fun silo_N : N;
-fun silsden_PN : PN;
-fun silt_N : N;
-fun silt_V : V;
-fun silt_V2 : V2;
-fun silvan_A : A;
-fun silver_N : N;
-fun silver_V : V;
-fun silver_V2 : V2;
-fun silver_fish_N : N;
-fun silvern_A : A;
-fun silverside_N : N;
-fun silversmith_N : N;
-fun silvery_A : A;
-fun silvia_PN : PN;
-fun simian_A : A;
-fun simian_N : N;
-fun similar_A : A;
-fun similarity_N : N;
-fun similarly_Adv : Adv;
-fun simile_N : N;
-fun similitude_N : N;
-fun simmer_N : N;
-fun simmer_V : V;
-fun simmer_V2 : V2;
-fun simon_PN : PN;
-fun simony_N : N;
-fun simoom_N : N;
-fun simoon_N : N;
-fun simper_V : V;
-fun simperingly_Adv : Adv;
-fun simple_A : A;
-fun simple_N : N;
-fun simple_hearted_A : A;
-fun simple_minded_A : A;
-fun simpleton_N : N;
-fun simplicity_N : N;
-fun simplification_N : N;
-fun simplify_V2 : V2;
-fun simply_Adv : Adv;
-fun simulacrum_N : N;
-fun simulate_V2 : V2;
-fun simulation_N : N;
-fun simulator_N : N;
-fun simultaneity_N : N;
-fun simultaneous_A : A;
-fun simultaneously_Adv : Adv;
-fun simultaneousness_N : N;
-fun sin_N : N;
-fun sin_V : V;
-fun since_Adv : Adv;
-fun sincere_A : A;
-fun sincerely_Adv : Adv;
-fun sincerity_N : N;
-fun sine_N : N;
-fun sine_die_Adv : Adv;
-fun sine_qua_non_N : N;
-fun sinecure_N : N;
-fun sinew_N : N;
-fun sinewy_A : A;
-fun sinful_A : A;
-fun sinfulness_N : N;
-fun sing_V : V;
-fun sing_V2 : V2;
-fun singable_A : A;
-fun singapore_PN : PN;
-fun singaporean_A : A;
-fun singaporean_N : N;
-fun singe_N : N;
-fun singe_V : V;
-fun singe_V2 : V2;
-fun singer_N : N;
-fun singhalese_A : A;
-fun singing_N : N;
-fun single_A : A;
-fun single_N : N;
-fun single_V2 : V2;
-fun single_breasted_A : A;
-fun single_handed_A : A;
-fun single_handed_Adv : Adv;
-fun single_minded_A : A;
-fun single_spacing_N : N;
-fun singleness_N : N;
-fun singlestick_N : N;
-fun singlet_N : N;
-fun singleton_N : N;
-fun singly_Adv : Adv;
-fun singsong_N : N;
-fun singular_A : A;
-fun singular_N : N;
-fun singularity_N : N;
-fun singularize_V2 : V2;
-fun singularly_Adv : Adv;
-fun sinhala_N : N;
-fun sinhalese_A : A;
-fun sinhalese_N : N;
-fun sining_PN : PN;
-fun sinister_A : A;
-fun sink_N : N;
-fun sink_V : V;
-fun sink_V2 : V2;
-fun sinkable_A : A;
-fun sinker_N : N;
-fun sinking_N : N;
-fun sinking_fund_N : N;
-fun sinless_A : A;
-fun sinlessness_N : N;
-fun sinn_fein_PN : PN;
-fun sinner_N : N;
-fun sinologist_N : N;
-fun sinology_N : N;
-fun sinuosity_N : N;
-fun sinuous_A : A;
-fun sinus_N : N;
-fun sinusitis_N : N;
-fun sioux_N : N;
-fun sip_N : N;
-fun sip_V : V;
-fun sip_V2 : V2;
-fun siphon_N : N;
-fun siphon_V : V;
-fun siphon_V2 : V2;
-fun sir_N : N;
-fun sir_roger_de_coverley_N : N;
-fun siracusa_PN : PN;
-fun sirdar_N : N;
-fun sire_N : N;
-fun sire_V2 : V2;
-fun siren_N : N;
-fun sirloin_N : N;
-fun sirocco_N : N;
-fun sirrah_N : N;
-fun sirup_N : N;
-fun sisal_N : N;
-fun sissified_A : A;
-fun sissy_N : N;
-fun sister_N : N;
-fun sister_in_law_N : N;
-fun sisterhood_N : N;
-fun sisterly_A : A;
-fun siswati_N : N;
-fun sit_V : V;
-fun sit_V2 : V2;
-fun sit_in_N : N;
-fun sitar_N : N;
-fun site_N : N;
-fun site_V : V;
-fun sitter_N : N;
-fun sitting_N : N;
-fun sitting_room_N : N;
-fun sittingbourne_PN : PN;
-fun situated_A : A;
-fun situation_N : N;
-fun six_footer_N : N;
-fun six_shooter_N : N;
-fun sixfold_A : A;
-fun sixfold_Adv : Adv;
-fun sixpence_N : N;
-fun sixpenny_A : A;
-fun sixth_former_N : N;
-fun sizable_A : A;
-fun size_N : N;
-fun size_V2 : V2;
-fun sizeable_A : A;
-fun sized_A : A;
-fun sizzle_V : V;
-fun skate_N : N;
-fun skate_V : V;
-fun skateboard_N : N;
-fun skateboarder_N : N;
-fun skateboarding_N : N;
-fun skater_N : N;
-fun skating_N : N;
-fun skating_rink_N : N;
-fun skedaddle_V : V;
-fun skeet_N : N;
-fun skegness_PN : PN;
-fun skein_N : N;
-fun skeleton_N : N;
-fun skelmanthorpe_PN : PN;
-fun skelmersdale_PN : PN;
-fun skep_N : N;
-fun skeptical_A : A;
-fun skeptically_Adv : Adv;
-fun skepticism_N : N;
-fun sketch_N : N;
-fun sketch_V : V;
-fun sketch_V2 : V2;
-fun sketch_block_N : N;
-fun sketch_book_N : N;
-fun sketch_map_N : N;
-fun sketcher_N : N;
-fun sketchily_Adv : Adv;
-fun sketchiness_N : N;
-fun sketchy_A : A;
-fun skew_A : A;
-fun skew_eyed_A : A;
-fun skewen_PN : PN;
-fun skewer_N : N;
-fun skewer_V2 : V2;
-fun ski_N : N;
-fun ski_V : V;
-fun ski_bob_N : N;
-fun ski_jump_N : N;
-fun ski_lift_N : N;
-fun ski_plane_N : N;
-fun skid_N : N;
-fun skid_V : V;
-fun skidpan_N : N;
-fun skier_N : N;
-fun skiff_N : N;
-fun skiffle_N : N;
-fun skiffle_group_N : N;
-fun skilful_A : A;
-fun skilfully_Adv : Adv;
-fun skill_N : N;
-fun skilled_A : A;
-fun skillet_N : N;
-fun skilly_N : N;
-fun skim_V : V;
-fun skim_V2 : V2;
-fun skimmed_milk_N : N;
-fun skimmer_N : N;
-fun skimp_V : V;
-fun skimp_V2 : V2;
-fun skimpily_Adv : Adv;
-fun skimpy_A : A;
-fun skin_N : N;
-fun skin_V : V;
-fun skin_V2 : V2;
-fun skin_deep_A : A;
-fun skin_diving_N : N;
-fun skin_graft_N : N;
-fun skin_tight_A : A;
-fun skinflint_N : N;
-fun skinhead_N : N;
-fun skinny_A : A;
-fun skint_A : A;
-fun skip_N : N;
-fun skip_V : V;
-fun skip_V2 : V2;
-fun skipper_N : N;
-fun skipper_V2 : V2;
-fun skipping_rope_N : N;
-fun skipton_PN : PN;
-fun skirl_N : N;
-fun skirmish_N : N;
-fun skirmish_V : V;
-fun skirmisher_N : N;
-fun skirt_N : N;
-fun skirt_V : V;
-fun skirt_V2 : V2;
-fun skirting_board_N : N;
-fun skit_N : N;
-fun skitter_V : V;
-fun skittish_A : A;
-fun skittishly_Adv : Adv;
-fun skittishness_N : N;
-fun skittle_N : N;
-fun skittle_V2 : V2;
-fun skittle_pin_N : N;
-fun skittles_N : N;
-fun skivvy_N : N;
-fun skopje_PN : PN;
-fun skua_N : N;
-fun skulk_V : V;
-fun skulker_N : N;
-fun skull_N : N;
-fun skullcap_N : N;
-fun skullduggery_N : N;
-fun skulled_A : A;
-fun skunk_N : N;
-fun sky_N : N;
-fun sky_V2 : V2;
-fun sky_blue_A : A;
-fun sky_blue_N : N;
-fun sky_high_Adv : Adv;
-fun skylark_N : N;
-fun skylark_V : V;
-fun skylight_N : N;
-fun skyline_N : N;
-fun skyrocket_V : V;
-fun skyscraper_N : N;
-fun skyward_A : A;
-fun skyward_Adv : Adv;
-fun skywards_A : A;
-fun skywards_Adv : Adv;
-fun skywriting_N : N;
-fun slab_N : N;
-fun slack_A : A;
-fun slack_N : N;
-fun slack_V : V;
-fun slacken_V : V;
-fun slacken_V2 : V2;
-fun slacker_N : N;
-fun slackly_Adv : Adv;
-fun slackness_N : N;
-fun slag_N : N;
-fun slag_heap_N : N;
-fun slake_V2 : V2;
-fun slalom_N : N;
-fun slam_N : N;
-fun slam_V : V;
-fun slam_V2 : V2;
-fun slander_N : N;
-fun slander_V2 : V2;
-fun slanderer_N : N;
-fun slanderous_A : A;
-fun slang_N : N;
-fun slang_V2 : V2;
-fun slangily_Adv : Adv;
-fun slanginess_N : N;
-fun slangy_A : A;
-fun slant_N : N;
-fun slant_V : V;
-fun slant_V2 : V2;
-fun slantingly_Adv : Adv;
-fun slantwise_Adv : Adv;
-fun slap_Adv : Adv;
-fun slap_N : N;
-fun slap_V2 : V2;
-fun slap_bang_Adv : Adv;
-fun slap_happy_A : A;
-fun slap_up_A : A;
-fun slapdash_A : A;
-fun slapdash_Adv : Adv;
-fun slapstick_N : N;
-fun slash_N : N;
-fun slash_V : V;
-fun slash_V2 : V2;
-fun slat_N : N;
-fun slate_N : N;
-fun slate_V2 : V2;
-fun slate_club_N : N;
-fun slate_pencil_N : N;
-fun slating_N : N;
-fun slatted_A : A;
-fun slattern_N : N;
-fun slatternliness_N : N;
-fun slatternly_A : A;
-fun slaty_A : A;
-fun slaughter_N : N;
-fun slaughter_V2 : V2;
-fun slaughterer_N : N;
-fun slaughterhouse_N : N;
-fun slav_A : A;
-fun slav_N : N;
-fun slave_N : N;
-fun slave_V : V;
-fun slave_driver_N : N;
-fun slave_trade_N : N;
-fun slave_traffic_N : N;
-fun slaver_N : N;
-fun slaver_V : V;
-fun slavery_N : N;
-fun slavey_N : N;
-fun slavish_A : A;
-fun slavishly_Adv : Adv;
-fun slavonic_A : A;
-fun slaw_N : N;
-fun slay_V2 : V2;
-fun slayer_N : N;
-fun sleaford_PN : PN;
-fun sleazy_A : A;
-fun sled_N : N;
-fun sledge_N : N;
-fun sledge_V : V;
-fun sledge_V2 : V2;
-fun sledgehammer_N : N;
-fun sleek_A : A;
-fun sleek_V2 : V2;
-fun sleekly_Adv : Adv;
-fun sleekness_N : N;
-fun sleep_N : N;
-fun sleep_V : V;
-fun sleep_V2 : V2;
-fun sleeper_N : N;
-fun sleepily_Adv : Adv;
-fun sleepiness_N : N;
-fun sleeping_N : N;
-fun sleeping_bag_N : N;
-fun sleeping_car_N : N;
-fun sleeping_draught_N : N;
-fun sleeping_pill_N : N;
-fun sleeping_sickness_N : N;
-fun sleepless_A : A;
-fun sleeplessly_Adv : Adv;
-fun sleeplessness_N : N;
-fun sleepwalker_N : N;
-fun sleepy_A : A;
-fun sleepy_head_N : N;
-fun sleet_N : N;
-fun sleet_V : V;
-fun sleety_A : A;
-fun sleeve_N : N;
-fun sleeved_A : A;
-fun sleeveless_A : A;
-fun sleigh_N : N;
-fun sleigh_V : V;
-fun sleigh_V2 : V2;
-fun sleigh_bell_N : N;
-fun sleight_N : N;
-fun slender_A : A;
-fun slenderize_V : V;
-fun slenderize_V2 : V2;
-fun slenderly_Adv : Adv;
-fun slenderness_N : N;
-fun sleuth_N : N;
-fun sleuth_hound_N : N;
-fun slew_V : V;
-fun slew_V2 : V2;
-fun slice_N : N;
-fun slice_V : V;
-fun slice_V2 : V2;
-fun slick_A : A;
-fun slick_Adv : Adv;
-fun slick_N : N;
-fun slicker_N : N;
-fun slide_N : N;
-fun slide_V : V;
-fun slide_V2 : V2;
-fun slide_rule_N : N;
-fun slight_A : A;
-fun slight_N : N;
-fun slight_V2 : V2;
-fun slightingly_Adv : Adv;
-fun slightly_Adv : Adv;
-fun slightness_N : N;
-fun sligo_PN : PN;
-fun slim_A : A;
-fun slim_V : V;
-fun slime_N : N;
-fun sliminess_N : N;
-fun slimly_Adv : Adv;
-fun slimness_N : N;
-fun slimy_A : A;
-fun sling_N : N;
-fun sling_V : V;
-fun sling_V2 : V2;
-fun slinger_N : N;
-fun slink_V : V;
-fun slip_N : N;
-fun slip_V : V;
-fun slip_V2 : V2;
-fun slip_carriage_N : N;
-fun slip_coach_N : N;
-fun slip_road_N : N;
-fun slip_up_N : N;
-fun slipcover_N : N;
-fun slipknot_N : N;
-fun slipon_N : N;
-fun slipover_N : N;
-fun slipper_N : N;
-fun slippered_A : A;
-fun slipperiness_N : N;
-fun slippery_A : A;
-fun slippy_A : A;
-fun slipshod_A : A;
-fun slipstream_N : N;
-fun slipway_N : N;
-fun slit_N : N;
-fun slit_V2 : V2;
-fun slither_V : V;
-fun slithery_A : A;
-fun sliver_N : N;
-fun sliver_V : V;
-fun sliver_V2 : V2;
-fun slob_N : N;
-fun slobber_N : N;
-fun slobber_V : V;
-fun slobber_V2 : V2;
-fun sloe_N : N;
-fun sloe_gin_N : N;
-fun slog_V : V;
-fun slog_V2 : V2;
-fun slogan_N : N;
-fun slogger_N : N;
-fun sloop_N : N;
-fun slop_N : N;
-fun slop_V : V;
-fun slop_V2 : V2;
-fun slop_basin_N : N;
-fun slop_pail_N : N;
-fun slop_shop_N : N;
-fun slope_N : N;
-fun slope_V : V;
-fun slope_V2 : V2;
-fun slopingly_Adv : Adv;
-fun sloppily_Adv : Adv;
-fun sloppiness_N : N;
-fun sloppy_A : A;
-fun slosh_V : V;
-fun slosh_V2 : V2;
-fun sloshed_A : A;
-fun slot_N : N;
-fun slot_V2 : V2;
-fun slot_machine_N : N;
-fun sloth_N : N;
-fun slothful_A : A;
-fun slouch_N : N;
-fun slouch_V : V;
-fun slouch_hat_N : N;
-fun slouchingly_Adv : Adv;
-fun slough_N : N;
-fun slough_PN : PN;
-fun slough_V : V;
-fun slough_V2 : V2;
-fun slovak_N : N;
-fun sloven_N : N;
-fun slovenian_A : A;
-fun slovenian_N : N;
-fun slovenliness_N : N;
-fun slovenly_A : A;
-fun slow_A : A;
-fun slow_Adv : Adv;
-fun slow_V : V;
-fun slow_V2 : V2;
-fun slow_worm_N : N;
-fun slowcoach_N : N;
-fun slowdown_N : N;
-fun slower_Adv : Adv;
-fun slowest_Adv : Adv;
-fun slowly_Adv : Adv;
-fun slowness_N : N;
-fun sludge_N : N;
-fun slug_N : N;
-fun slug_V : V;
-fun slug_V2 : V2;
-fun sluggard_N : N;
-fun sluggish_A : A;
-fun sluggishly_Adv : Adv;
-fun sluggishness_N : N;
-fun sluice_N : N;
-fun sluice_V : V;
-fun sluice_V2 : V2;
-fun sluice_valve_N : N;
-fun sluicegate_N : N;
-fun slum_N : N;
-fun slum_V : V;
-fun slumber_N : N;
-fun slumber_V : V;
-fun slumber_V2 : V2;
-fun slumberer_N : N;
-fun slumberous_A : A;
-fun slummy_A : A;
-fun slump_N : N;
-fun slump_V : V;
-fun slur_N : N;
-fun slur_V : V;
-fun slur_V2 : V2;
-fun slurry_N : N;
-fun slush_N : N;
-fun slushy_A : A;
-fun slut_N : N;
-fun sluttish_A : A;
-fun sly_A : A;
-fun slyly_Adv : Adv;
-fun slyness_N : N;
-fun smack_Adv : Adv;
-fun smack_N : N;
-fun smack_V : V;
-fun smack_V2 : V2;
-fun smacker_N : N;
-fun smacking_N : N;
-fun small_A : A;
-fun small_Adv : Adv;
-fun small_N : N;
-fun small_minded_A : A;
-fun smallholder_N : N;
-fun smallholding_N : N;
-fun smallness_N : N;
-fun smallpox_N : N;
-fun smalltime_A : A;
-fun smarmy_A : A;
-fun smart_A : A;
-fun smart_N : N;
-fun smart_V : V;
-fun smarten_V : V;
-fun smarten_V2 : V2;
-fun smartly_Adv : Adv;
-fun smartness_N : N;
-fun smash_Adv : Adv;
-fun smash_N : N;
-fun smash_V : V;
-fun smash_V2 : V2;
-fun smash_up_N : N;
-fun smasher_N : N;
-fun smashing_A : A;
-fun smattering_N : N;
-fun smear_N : N;
-fun smear_V : V;
-fun smear_V2 : V2;
-fun smear_word_N : N;
-fun smell_N : N;
-fun smell_V : V;
-fun smell_V2 : V2;
-fun smelling_bottle_N : N;
-fun smelly_A : A;
-fun smelt_N : N;
-fun smelt_V2 : V2;
-fun smilax_N : N;
-fun smile_N : N;
-fun smile_V : V;
-fun smile_V2 : V2;
-fun smilingly_Adv : Adv;
-fun smirch_N : N;
-fun smirch_V2 : V2;
-fun smirk_N : N;
-fun smirk_V : V;
-fun smite_V : V;
-fun smite_V2 : V2;
-fun smith_N : N;
-fun smithy_N : N;
-fun smock_N : N;
-fun smocking_N : N;
-fun smog_N : N;
-fun smoke_N : N;
-fun smoke_V : V;
-fun smoke_V2 : V2;
-fun smoke_bomb_N : N;
-fun smoke_cured_A : A;
-fun smoke_dried_A : A;
-fun smoke_screen_N : N;
-fun smokeless_A : A;
-fun smoker_N : N;
-fun smokestack_N : N;
-fun smoking_N : N;
-fun smoking_car_N : N;
-fun smoking_carriage_N : N;
-fun smoking_compartment_N : N;
-fun smoking_mixture_N : N;
-fun smoking_room_N : N;
-fun smoky_A : A;
-fun smooth_A : A;
-fun smooth_N : N;
-fun smooth_V : V;
-fun smooth_V2 : V2;
-fun smooth_bore_A : A;
-fun smooth_faced_A : A;
-fun smooth_spoken_A : A;
-fun smooth_tongued_A : A;
-fun smoothing_iron_N : N;
-fun smoothing_plane_N : N;
-fun smoothly_Adv : Adv;
-fun smoothness_N : N;
-fun smorgasbord_N : N;
-fun smother_N : N;
-fun smother_V2 : V2;
-fun smoulder_N : N;
-fun smoulder_V : V;
-fun smudge_N : N;
-fun smudge_V : V;
-fun smudge_V2 : V2;
-fun smudgy_A : A;
-fun smug_A : A;
-fun smuggle_V2 : V2;
-fun smuggler_N : N;
-fun smugly_Adv : Adv;
-fun smugness_N : N;
-fun smut_N : N;
-fun smut_V2 : V2;
-fun smuttily_Adv : Adv;
-fun smuttiness_N : N;
-fun smutty_A : A;
-fun snack_N : N;
-fun snack_bar_N : N;
-fun snack_counter_N : N;
-fun snaffle_N : N;
-fun snaffle_V2 : V2;
-fun snaffle_bit_N : N;
-fun snag_N : N;
-fun snag_V2 : V2;
-fun snail_N : N;
-fun snake_N : N;
-fun snake_V : V;
-fun snake_charmer_N : N;
-fun snaky_A : A;
-fun snap_N : N;
-fun snap_V : V;
-fun snap_V2 : V2;
-fun snap_fastener_N : N;
-fun snapdragon_N : N;
-fun snappish_A : A;
-fun snappishly_Adv : Adv;
-fun snappishness_N : N;
-fun snappy_A : A;
-fun snapshot_N : N;
-fun snare_N : N;
-fun snare_V2 : V2;
-fun snare_drum_N : N;
-fun snarl_N : N;
-fun snarl_V : V;
-fun snarl_V2 : V2;
-fun snarl_up_N : N;
-fun snatch_N : N;
-fun snatch_V : V;
-fun snatch_V2 : V2;
-fun snatcher_N : N;
-fun snazzy_A : A;
-fun sneak_N : N;
-fun sneak_V : V;
-fun sneak_V2 : V2;
-fun sneak_thief_N : N;
-fun sneaking_A : A;
-fun sneakingly_Adv : Adv;
-fun sneaky_A : A;
-fun sneer_N : N;
-fun sneer_V : V;
-fun sneeringly_Adv : Adv;
-fun sneeze_N : N;
-fun sneeze_V : V;
-fun snick_N : N;
-fun snick_V : V;
-fun snick_V2 : V2;
-fun snicker_N : N;
-fun snicker_V : V;
-fun snide_A : A;
-fun sniff_N : N;
-fun sniff_V : V;
-fun sniff_V2 : V2;
-fun sniffle_V : V;
-fun sniffy_A : A;
-fun snifter_N : N;
-fun snigger_N : N;
-fun snigger_V : V;
-fun snip_N : N;
-fun snip_V : V;
-fun snip_V2 : V2;
-fun snipe_N : N;
-fun snipe_V : V;
-fun snipe_V2 : V2;
-fun sniper_N : N;
-fun snippet_N : N;
-fun snipping_N : N;
-fun snitch_V : V;
-fun snitch_V2 : V2;
-fun snivel_V : V;
-fun sniveller_N : N;
-fun snob_N : N;
-fun snobbery_N : N;
-fun snobbish_A : A;
-fun snobbishly_Adv : Adv;
-fun snobbishness_N : N;
-fun snog_V : V;
-fun snogging_N : N;
-fun snood_N : N;
-fun snook_N : N;
-fun snooker_N : N;
-fun snoop_V : V;
-fun snooper_N : N;
-fun snootily_Adv : Adv;
-fun snooty_A : A;
-fun snooze_N : N;
-fun snooze_V : V;
-fun snore_N : N;
-fun snore_V : V;
-fun snorer_N : N;
-fun snorkel_N : N;
-fun snort_N : N;
-fun snort_V : V;
-fun snort_V2 : V2;
-fun snorter_N : N;
-fun snorty_A : A;
-fun snot_N : N;
-fun snot_nosed_A : A;
-fun snotty_A : A;
-fun snout_N : N;
-fun snow_N : N;
-fun snow_V : V;
-fun snow_V2 : V2;
-fun snow_clad_A : A;
-fun snow_covered_A : A;
-fun snow_line_N : N;
-fun snow_white_A : A;
-fun snowball_N : N;
-fun snowball_V : V;
-fun snowball_V2 : V2;
-fun snowberry_N : N;
-fun snowblind_A : A;
-fun snowblindness_N : N;
-fun snowbound_A : A;
-fun snowcapped_A : A;
-fun snowdrift_N : N;
-fun snowdrop_N : N;
-fun snowfall_N : N;
-fun snowfield_N : N;
-fun snowflake_N : N;
-fun snowman_N : N;
-fun snowplough_N : N;
-fun snowstorm_N : N;
-fun snowy_A : A;
-fun snr_PN : PN;
-fun snub_A : A;
-fun snub_N : N;
-fun snub_V2 : V2;
-fun snub_nosed_A : A;
-fun snuff_N : N;
-fun snuff_V : V;
-fun snuff_V2 : V2;
-fun snuff_colour_A : A;
-fun snuff_colour_N : N;
-fun snuff_coloured_A : A;
-fun snuffbox_N : N;
-fun snuffle_N : N;
-fun snuffle_V : V;
-fun snug_A : A;
-fun snug_N : N;
-fun snuggery_N : N;
-fun snuggle_V : V;
-fun snuggle_V2 : V2;
-fun snugly_Adv : Adv;
-fun snugness_N : N;
-fun so_Adv : Adv;
-fun so_N : N;
-fun so_and_so_N : N;
-fun so_called_A : A;
-fun so_so_A : A;
-fun so_so_Adv : Adv;
-fun soak_N : N;
-fun soak_V : V;
-fun soak_V2 : V2;
-fun soaker_N : N;
-fun soap_N : N;
-fun soap_V2 : V2;
-fun soap_bubble_N : N;
-fun soap_opera_N : N;
-fun soapbox_N : N;
-fun soapy_A : A;
-fun soar_V : V;
-fun sob_N : N;
-fun sob_V : V;
-fun sob_V2 : V2;
-fun sob_stuff_N : N;
-fun sobbingly_Adv : Adv;
-fun sober_A : A;
-fun sober_V : V;
-fun sober_V2 : V2;
-fun sober_sides_N : N;
-fun soberly_Adv : Adv;
-fun sobriety_N : N;
-fun sobriquet_N : N;
-fun soc_N : N;
-fun soccer_N : N;
-fun sociability_N : N;
-fun sociable_A : A;
-fun sociably_Adv : Adv;
-fun social_A : A;
-fun social_N : N;
-fun social_work_N : N;
-fun socialism_N : N;
-fun socialist_A : A;
-fun socialist_N : N;
-fun socialite_N : N;
-fun socialization_N : N;
-fun socialize_V2 : V2;
-fun socially_Adv : Adv;
-fun society_N : N;
-fun sociological_A : A;
-fun sociologically_Adv : Adv;
-fun sociologist_N : N;
-fun sociology_N : N;
-fun sock_Adv : Adv;
-fun sock_N : N;
-fun sock_V2 : V2;
-fun socket_N : N;
-fun socratic_A : A;
-fun sod_N : N;
-fun sod_V : V;
-fun soda_N : N;
-fun soda_biscuit_N : N;
-fun soda_cracker_N : N;
-fun soda_fountain_N : N;
-fun soda_water_N : N;
-fun sodden_A : A;
-fun sodding_A : A;
-fun sodium_N : N;
-fun sodomite_N : N;
-fun sodomy_N : N;
-fun sofa_N : N;
-fun sofia_PN : PN;
-fun soft_A : A;
-fun soft_boiled_A : A;
-fun soft_footed_A : A;
-fun soft_headed_A : A;
-fun soft_hearted_A : A;
-fun soft_pedal_V : V;
-fun soft_pedal_V2 : V2;
-fun soft_soap_V2 : V2;
-fun soft_solder_N : N;
-fun soft_solder_V2 : V2;
-fun soft_spoken_A : A;
-fun soft_witted_A : A;
-fun soften_V : V;
-fun soften_V2 : V2;
-fun softener_N : N;
-fun softie_N : N;
-fun softish_A : A;
-fun softland_V : V;
-fun softly_Adv : Adv;
-fun softness_N : N;
-fun software_N : N;
-fun softwood_N : N;
-fun softy_N : N;
-fun sogginess_N : N;
-fun soggy_A : A;
-fun soh_N : N;
-fun soho_PN : PN;
-fun soignee_A : A;
-fun soigne_A : A;
-fun soil_N : N;
-fun soil_V : V;
-fun soil_V2 : V2;
-fun soil_pipe_N : N;
-fun soiree_N : N;
-fun sojourn_N : N;
-fun sojourn_V : V;
-fun sojourner_N : N;
-fun sol_PN : PN;
-fun sol_fa_N : N;
-fun solace_N : N;
-fun solace_V2 : V2;
-fun solar_A : A;
-fun solar_plexus_N : N;
-fun solarium_N : N;
-fun solder_N : N;
-fun solder_V2 : V2;
-fun soldering_iron_N : N;
-fun soldier_N : N;
-fun soldier_V : V;
-fun soldiery_N : N;
-fun sole_A : A;
-fun sole_N : N;
-fun sole_V2 : V2;
-fun solecism_N : N;
-fun soled_A : A;
-fun solely_Adv : Adv;
-fun solemn_A : A;
-fun solemnity_N : N;
-fun solemnization_N : N;
-fun solemnize_V2 : V2;
-fun solemnly_Adv : Adv;
-fun solemnness_N : N;
-fun solicit_V : V;
-fun solicit_V2 : V2;
-fun solicitation_N : N;
-fun solicitor_N : N;
-fun solicitor_general_N : N;
-fun solicitous_A : A;
-fun solicitously_Adv : Adv;
-fun solicitude_N : N;
-fun solid_A : A;
-fun solid_N : N;
-fun solid_state_A : A;
-fun solidarity_N : N;
-fun solidification_N : N;
-fun solidify_V : V;
-fun solidify_V2 : V2;
-fun solidity_N : N;
-fun solidly_Adv : Adv;
-fun solidness_N : N;
-fun solihull_PN : PN;
-fun soliloquize_V : V;
-fun soliloquy_N : N;
-fun solingen_PN : PN;
-fun solipsism_N : N;
-fun solitaire_N : N;
-fun solitarily_Adv : Adv;
-fun solitary_A : A;
-fun solitude_N : N;
-fun solo_N : N;
-fun soloist_N : N;
-fun solon_PN : PN;
-fun solstice_N : N;
-fun solubility_N : N;
-fun soluble_A : A;
-fun solution_N : N;
-fun solvable_A : A;
-fun solve_V2 : V2;
-fun solvency_N : N;
-fun solvent_A : A;
-fun solvent_N : N;
-fun somali_A : A;
-fun somali_N : N;
-fun somalia_PN : PN;
-fun somalian_A : A;
-fun somalian_N : N;
-fun somatic_A : A;
-fun sombre_A : A;
-fun sombrely_Adv : Adv;
-fun sombreness_N : N;
-fun sombrero_N : N;
-fun someday_Adv : Adv;
-fun somehow_Adv : Adv;
-fun someone_N : N;
-fun someplace_Adv : Adv;
-fun somercotes_PN : PN;
-fun somersault_N : N;
-fun somersault_V : V;
-fun somerset_PN : PN;
-fun something_Adv : Adv;
-fun sometime_Adv : Adv;
-fun sometimes_Adv : Adv;
-fun someway_Adv : Adv;
-fun somewhat_Adv : Adv;
-fun somnambulism_N : N;
-fun somnambulist_N : N;
-fun somnolence_N : N;
-fun somnolent_A : A;
-fun somnolently_Adv : Adv;
-fun son_N : N;
-fun son_in_law_N : N;
-fun sonar_N : N;
-fun sonata_N : N;
-fun song_N : N;
-fun songbird_N : N;
-fun songbook_N : N;
-fun songster_N : N;
-fun songstress_N : N;
-fun sonia_PN : PN;
-fun sonic_A : A;
-fun sonnet_N : N;
-fun sonneteer_N : N;
-fun sonny_N : N;
-fun sonority_N : N;
-fun sonorous_A : A;
-fun sonorously_Adv : Adv;
-fun sonsy_A : A;
-fun soochow_PN : PN;
-fun soon_Adv : Adv;
-fun sooner_Adv : Adv;
-fun soonest_Adv : Adv;
-fun soot_N : N;
-fun soot_V2 : V2;
-fun sooth_N : N;
-fun soothe_V2 : V2;
-fun soothingly_Adv : Adv;
-fun soothsayer_N : N;
-fun sooty_A : A;
-fun sop_N : N;
-fun sop_V2 : V2;
-fun sophia_PN : PN;
-fun sophie_PN : PN;
-fun sophism_N : N;
-fun sophist_N : N;
-fun sophisticated_A : A;
-fun sophistication_N : N;
-fun sophistry_N : N;
-fun sophomore_N : N;
-fun soporific_A : A;
-fun soporific_N : N;
-fun sopping_A : A;
-fun sopping_Adv : Adv;
-fun soppy_A : A;
-fun soprano_N : N;
-fun sorbet_N : N;
-fun sorcerer_N : N;
-fun sorceress_N : N;
-fun sorcery_N : N;
-fun sordid_A : A;
-fun sordidly_Adv : Adv;
-fun sordidness_N : N;
-fun sore_A : A;
-fun sore_N : N;
-fun sorely_Adv : Adv;
-fun soreness_N : N;
-fun sorghum_N : N;
-fun sorority_N : N;
-fun sorrel_A : A;
-fun sorrel_N : N;
-fun sorrow_N : N;
-fun sorrow_V : V;
-fun sorrowful_A : A;
-fun sorrowfully_Adv : Adv;
-fun sorry_A : A;
-fun sort_N : N;
-fun sort_V : V;
-fun sort_V2 : V2;
-fun sorter_N : N;
-fun sortie_N : N;
-fun sos_N : N;
-fun soss_N : N;
-fun sot_N : N;
-fun sotho_A : A;
-fun sotho_N : N;
-fun sottish_A : A;
-fun sottishly_Adv : Adv;
-fun sottishness_N : N;
-fun sotto_voce_Adv : Adv;
-fun sou'_east_Adv : Adv;
-fun sou'_east_N : N;
-fun sou'_sou'_east_Adv : Adv;
-fun sou'_sou'_east_N : N;
-fun sou'_sou'_west_Adv : Adv;
-fun sou'_sou'_west_N : N;
-fun sou'_west_Adv : Adv;
-fun sou'_west_N : N;
-fun sou'_wester_N : N;
-fun sou_N : N;
-fun soubrette_N : N;
-fun soubriquet_N : N;
-fun souffle_N : N;
-fun sough_V : V;
-fun soul_N : N;
-fun soul_destroying_A : A;
-fun soul_stirring_A : A;
-fun soulful_A : A;
-fun soulfully_Adv : Adv;
-fun soulless_A : A;
-fun soullessly_Adv : Adv;
-fun sound_A : A;
-fun sound_Adv : Adv;
-fun sound_N : N;
-fun sound_V : V;
-fun sound_V2 : V2;
-fun sound_film_N : N;
-fun sound_recording_N : N;
-fun sound_wave_N : N;
-fun soundbox_N : N;
-fun sounding_board_N : N;
-fun soundless_A : A;
-fun soundlessly_Adv : Adv;
-fun soundly_Adv : Adv;
-fun soundness_N : N;
-fun soundproof_A : A;
-fun soundproof_V2 : V2;
-fun soundtrack_N : N;
-fun soup_N : N;
-fun soup_V2 : V2;
-fun soup_kitchen_N : N;
-fun soupcon_N : N;
-fun sour_A : A;
-fun sour_V : V;
-fun sour_V2 : V2;
-fun source_N : N;
-fun sourly_Adv : Adv;
-fun sourness_N : N;
-fun souse_V2 : V2;
-fun soused_A : A;
-fun soutane_N : N;
-fun south_Adv : Adv;
-fun south_N : N;
-fun south_kirkby_PN : PN;
-fun south_normantown_PN : PN;
-fun south_ockendon_PN : PN;
-fun south_shields_PN : PN;
-fun south_southeast_Adv : Adv;
-fun south_southeast_N : N;
-fun south_southwest_Adv : Adv;
-fun south_southwest_N : N;
-fun southampton_PN : PN;
-fun southeast_Adv : Adv;
-fun southeast_N : N;
-fun southeaster_N : N;
-fun southeasterly_A : A;
-fun southeastern_A : A;
-fun southend_on_sea_PN : PN;
-fun southerly_A : A;
-fun southerly_Adv : Adv;
-fun southern_A : A;
-fun southerner_N : N;
-fun southernmost_A : A;
-fun southpaw_N : N;
-fun southport_PN : PN;
-fun southward_Adv : Adv;
-fun southwards_Adv : Adv;
-fun southwark_PN : PN;
-fun southwest_Adv : Adv;
-fun southwest_N : N;
-fun southwester_N : N;
-fun southwesterly_A : A;
-fun southwestern_A : A;
-fun souvenir_N : N;
-fun sovereign_A : A;
-fun sovereign_N : N;
-fun sovereignty_N : N;
-fun soviet_A : A;
-fun soviet_N : N;
-fun sovietize_V2 : V2;
-fun sow_N : N;
-fun sow_V : V;
-fun sow_V2 : V2;
-fun sower_N : N;
-fun soy_N : N;
-fun soya_N : N;
-fun sozzled_A : A;
-fun spa_N : N;
-fun space_N : N;
-fun space_V2 : V2;
-fun space_bar_N : N;
-fun space_capsule_N : N;
-fun space_heater_N : N;
-fun space_helmet_N : N;
-fun space_rocket_N : N;
-fun space_time_N : N;
-fun space_vehicle_N : N;
-fun spacecraft_N : N;
-fun spaceship_N : N;
-fun spacesuit_N : N;
-fun spacing_N : N;
-fun spacious_A : A;
-fun spaciously_Adv : Adv;
-fun spaciousness_N : N;
-fun spade_N : N;
-fun spade_V2 : V2;
-fun spadeful_N : N;
-fun spadework_N : N;
-fun spaghetti_N : N;
-fun spain_PN : PN;
-fun spalding_PN : PN;
-fun spam_N : N;
-fun span_N : N;
-fun span_V2 : V2;
-fun spangle_N : N;
-fun spangle_V2 : V2;
-fun spaniard_N : N;
-fun spaniel_N : N;
-fun spanish_A : A;
-fun spanish_N : N;
-fun spank_V : V;
-fun spank_V2 : V2;
-fun spanking_A : A;
-fun spanking_N : N;
-fun spanner_N : N;
-fun spar_N : N;
-fun spar_V : V;
-fun spare_A : A;
-fun spare_N : N;
-fun spare_V : V;
-fun spare_V2 : V2;
-fun spare_rib_N : N;
-fun sparely_Adv : Adv;
-fun spareness_N : N;
-fun sparing_A : A;
-fun sparingly_Adv : Adv;
-fun spark_N : N;
-fun spark_V : V;
-fun spark_V2 : V2;
-fun spark_plug_N : N;
-fun sparking_plug_N : N;
-fun sparkle_N : N;
-fun sparkle_V : V;
-fun sparkler_N : N;
-fun sparkling_A : A;
-fun sparring_match_N : N;
-fun sparring_partner_N : N;
-fun sparrow_N : N;
-fun sparse_A : A;
-fun sparsely_Adv : Adv;
-fun sparseness_N : N;
-fun sparsity_N : N;
-fun spartan_A : A;
-fun spartan_N : N;
-fun spasm_N : N;
-fun spasmodic_A : A;
-fun spasmodically_Adv : Adv;
-fun spastic_A : A;
-fun spastic_N : N;
-fun spat_N : N;
-fun spat_V : V;
-fun spat_V2 : V2;
-fun spatchcock_N : N;
-fun spatchcock_V2 : V2;
-fun spate_N : N;
-fun spatial_A : A;
-fun spatially_Adv : Adv;
-fun spatter_N : N;
-fun spatter_V : V;
-fun spatter_V2 : V2;
-fun spatula_N : N;
-fun spavin_N : N;
-fun spavined_A : A;
-fun spawn_N : N;
-fun spawn_V : V;
-fun spawn_V2 : V2;
-fun spay_V2 : V2;
-fun speak_V : V;
-fun speak_V2 : V2;
-fun speaker_N : N;
-fun speakership_N : N;
-fun speaking_trumpet_N : N;
-fun speaking_tube_N : N;
-fun spear_N : N;
-fun spear_V2 : V2;
-fun spearhead_N : N;
-fun spearmint_N : N;
-fun spec_N : N;
-fun special_A : A;
-fun special_N : N;
-fun specialism_N : N;
-fun specialist_N : N;
-fun speciality_N : N;
-fun specialization_N : N;
-fun specialize_V : V;
-fun specialize_V2 : V2;
-fun specially_Adv : Adv;
-fun specialty_N : N;
-fun specie_N : N;
-fun species_N : N;
-fun specifiable_A : A;
-fun specific_A : A;
-fun specific_N : N;
-fun specifically_Adv : Adv;
-fun specification_N : N;
-fun specificity_N : N;
-fun specify_V2 : V2;
-fun specimen_N : N;
-fun specious_A : A;
-fun speciously_Adv : Adv;
-fun speciousness_N : N;
-fun speck_N : N;
-fun specked_A : A;
-fun speckle_N : N;
-fun speckled_A : A;
-fun speckless_A : A;
-fun spectacle_N : N;
-fun spectacled_A : A;
-fun spectacular_A : A;
-fun spectacular_N : N;
-fun spectacularly_Adv : Adv;
-fun spectator_N : N;
-fun spectral_A : A;
-fun spectre_N : N;
-fun spectroscope_N : N;
-fun spectroscopic_A : A;
-fun spectrum_N : N;
-fun speculate_V : V;
-fun speculation_N : N;
-fun speculative_A : A;
-fun speculatively_Adv : Adv;
-fun speculator_N : N;
-fun speech_N : N;
-fun speech_day_N : N;
-fun speechify_V : V;
-fun speechless_A : A;
-fun speechlessly_Adv : Adv;
-fun speed_N : N;
-fun speed_V : V;
-fun speed_V2 : V2;
-fun speed_cop_N : N;
-fun speed_indicator_N : N;
-fun speed_limit_N : N;
-fun speed_up_N : N;
-fun speedboat_N : N;
-fun speedily_Adv : Adv;
-fun speeding_N : N;
-fun speedometer_N : N;
-fun speedway_N : N;
-fun speedwell_N : N;
-fun speedy_A : A;
-fun spelaeologist_N : N;
-fun spelaeology_N : N;
-fun speleologist_N : N;
-fun speleology_N : N;
-fun spell_N : N;
-fun spell_V : V;
-fun spell_V2 : V2;
-fun spellbinder_N : N;
-fun spellbound_A : A;
-fun speller_N : N;
-fun spelling_N : N;
-fun spelt_N : N;
-fun spenborough_PN : PN;
-fun spend_V : V;
-fun spend_V2 : V2;
-fun spender_N : N;
-fun spendthrift_N : N;
-fun spennymoor_PN : PN;
-fun spent_A : A;
-fun sperm_N : N;
-fun sperm_whale_N : N;
-fun spermaceti_N : N;
-fun spermatozoon_N : N;
-fun spermicide_N : N;
-fun spew_V : V;
-fun spew_V2 : V2;
-fun sphagnum_N : N;
-fun sphere_N : N;
-fun spherical_A : A;
-fun spheroid_N : N;
-fun sphinx_N : N;
-fun spice_N : N;
-fun spice_V2 : V2;
-fun spicily_Adv : Adv;
-fun spiciness_N : N;
-fun spick_A : A;
-fun spicy_A : A;
-fun spider_N : N;
-fun spidery_A : A;
-fun spiel_N : N;
-fun spiel_V : V;
-fun spiel_V2 : V2;
-fun spigot_N : N;
-fun spike_N : N;
-fun spike_V2 : V2;
-fun spikenard_N : N;
-fun spiky_A : A;
-fun spill_N : N;
-fun spill_V : V;
-fun spill_V2 : V2;
-fun spillage_N : N;
-fun spillover_N : N;
-fun spillway_N : N;
-fun spin_N : N;
-fun spin_V : V;
-fun spin_V2 : V2;
-fun spin_drier_N : N;
-fun spin_dry_V2 : V2;
-fun spin_off_N : N;
-fun spinach_N : N;
-fun spinal_A : A;
-fun spindle_N : N;
-fun spindle_berry_N : N;
-fun spindle_legged_A : A;
-fun spindle_shanked_A : A;
-fun spindle_shanks_N : N;
-fun spindle_tree_N : N;
-fun spindly_A : A;
-fun spindrift_N : N;
-fun spine_N : N;
-fun spineless_A : A;
-fun spinet_N : N;
-fun spinnaker_N : N;
-fun spinney_N : N;
-fun spinning_wheel_N : N;
-fun spinster_N : N;
-fun spinsterhood_N : N;
-fun spiny_A : A;
-fun spiral_A : A;
-fun spiral_N : N;
-fun spiral_V : V;
-fun spirally_Adv : Adv;
-fun spire_N : N;
-fun spirit_N : N;
-fun spirit_V2 : V2;
-fun spirit_lamp_N : N;
-fun spirit_level_N : N;
-fun spirit_rapper_N : N;
-fun spirit_stove_N : N;
-fun spirited_A : A;
-fun spiritless_A : A;
-fun spiritual_A : A;
-fun spiritual_N : N;
-fun spiritualism_N : N;
-fun spiritualist_N : N;
-fun spiritualistic_A : A;
-fun spirituality_N : N;
-fun spiritualization_N : N;
-fun spiritualize_V2 : V2;
-fun spiritually_Adv : Adv;
-fun spirituous_A : A;
-fun spirt_N : N;
-fun spirt_V : V;
-fun spit_N : N;
-fun spit_V : V;
-fun spit_V2 : V2;
-fun spite_N : N;
-fun spite_V2 : V2;
-fun spiteful_A : A;
-fun spitefully_Adv : Adv;
-fun spitefulness_N : N;
-fun spitfire_N : N;
-fun spitting_N : N;
-fun spittle_N : N;
-fun spittoon_N : N;
-fun spiv_N : N;
-fun splash_N : N;
-fun splash_V : V;
-fun splash_V2 : V2;
-fun splashdown_N : N;
-fun splay_A : A;
-fun splay_N : N;
-fun splay_V : V;
-fun splay_V2 : V2;
-fun splayfoot_N : N;
-fun splayfooted_A : A;
-fun spleen_N : N;
-fun splendid_A : A;
-fun splendidly_Adv : Adv;
-fun splendiferous_A : A;
-fun splendour_N : N;
-fun splenetic_A : A;
-fun splice_N : N;
-fun splice_V2 : V2;
-fun splicer_N : N;
-fun splint_N : N;
-fun splinter_N : N;
-fun splinter_V : V;
-fun splinter_V2 : V2;
-fun splinter_proof_A : A;
-fun splintery_A : A;
-fun split_N : N;
-fun split_PN : PN;
-fun split_V : V;
-fun split_V2 : V2;
-fun splodge_N : N;
-fun splosh_V2 : V2;
-fun splotch_N : N;
-fun splurge_N : N;
-fun splurge_V : V;
-fun splutter_N : N;
-fun splutter_V : V;
-fun splutter_V2 : V2;
-fun spode_N : N;
-fun spoil_N : N;
-fun spoil_V : V;
-fun spoil_V2 : V2;
-fun spoilsport_N : N;
-fun spoke_N : N;
-fun spokesman_N : N;
-fun spoliation_N : N;
-fun spondaic_A : A;
-fun spondee_N : N;
-fun sponge_N : N;
-fun sponge_V : V;
-fun sponge_V2 : V2;
-fun sponge_cake_N : N;
-fun sponger_N : N;
-fun sponginess_N : N;
-fun spongy_A : A;
-fun sponsor_N : N;
-fun sponsor_V2 : V2;
-fun sponsorship_N : N;
-fun spontaneity_N : N;
-fun spontaneous_A : A;
-fun spontaneously_Adv : Adv;
-fun spontaneousness_N : N;
-fun spoof_N : N;
-fun spoof_V2 : V2;
-fun spook_N : N;
-fun spooky_A : A;
-fun spool_N : N;
-fun spoon_N : N;
-fun spoon_V : V;
-fun spoon_V2 : V2;
-fun spoonerism_N : N;
-fun spoonfeed_V2 : V2;
-fun spoonfeeding_N : N;
-fun spoonful_N : N;
-fun spoor_N : N;
-fun sporadic_A : A;
-fun sporadically_Adv : Adv;
-fun spore_N : N;
-fun sporran_N : N;
-fun sport_N : N;
-fun sport_V : V;
-fun sport_V2 : V2;
-fun sporting_A : A;
-fun sportingly_Adv : Adv;
-fun sportive_A : A;
-fun sportively_Adv : Adv;
-fun sportiveness_N : N;
-fun sports_car_N : N;
-fun sports_coat_N : N;
-fun sports_editor_N : N;
-fun sports_jacket_N : N;
-fun sportsman_N : N;
-fun sportsmanlike_A : A;
-fun sportsmanship_N : N;
-fun spot_N : N;
-fun spot_V : V;
-fun spot_V2 : V2;
-fun spotless_A : A;
-fun spotlessly_Adv : Adv;
-fun spotlight_N : N;
-fun spotlight_V2 : V2;
-fun spotted_A : A;
-fun spotter_N : N;
-fun spotty_A : A;
-fun spouse_N : N;
-fun spout_N : N;
-fun spout_V : V;
-fun spout_V2 : V2;
-fun sprain_N : N;
-fun sprain_V2 : V2;
-fun sprat_N : N;
-fun sprawl_N : N;
-fun sprawl_V : V;
-fun spray_N : N;
-fun spray_V2 : V2;
-fun spray_gun_N : N;
-fun sprayer_N : N;
-fun spread_N : N;
-fun spread_V : V;
-fun spread_V2 : V2;
-fun spread_over_N : N;
-fun spreadeagle_N : N;
-fun spreadeagle_V2 : V2;
-fun spreader_N : N;
-fun spree_N : N;
-fun sprig_N : N;
-fun sprigged_A : A;
-fun sprightliness_N : N;
-fun sprightly_A : A;
-fun spring_N : N;
-fun spring_V : V;
-fun spring_V2 : V2;
-fun spring_balance_N : N;
-fun spring_clean_N : N;
-fun spring_clean_V2 : V2;
-fun spring_cleaning_N : N;
-fun spring_gun_N : N;
-fun spring_mattress_N : N;
-fun springboard_N : N;
-fun springbok_N : N;
-fun springfield_PN : PN;
-fun springless_A : A;
-fun springlike_A : A;
-fun springtide_N : N;
-fun springtime_N : N;
-fun springy_A : A;
-fun sprinkle_V2 : V2;
-fun sprinkler_N : N;
-fun sprinkling_N : N;
-fun sprint_N : N;
-fun sprint_V : V;
-fun sprinter_N : N;
-fun sprit_N : N;
-fun sprite_N : N;
-fun spritsail_N : N;
-fun sprocket_N : N;
-fun sprocket_wheel_N : N;
-fun sprout_N : N;
-fun sprout_V : V;
-fun sprout_V2 : V2;
-fun spruce_A : A;
-fun spruce_N : N;
-fun spruce_V : V;
-fun spruce_V2 : V2;
-fun sprucely_Adv : Adv;
-fun spruceness_N : N;
-fun spry_A : A;
-fun spud_N : N;
-fun spue_V : V;
-fun spue_V2 : V2;
-fun spume_N : N;
-fun spunk_N : N;
-fun spunky_A : A;
-fun spur_N : N;
-fun spur_V : V;
-fun spur_V2 : V2;
-fun spurious_A : A;
-fun spuriously_Adv : Adv;
-fun spuriousness_N : N;
-fun spurn_V2 : V2;
-fun spurt_N : N;
-fun spurt_V : V;
-fun sputnik_N : N;
-fun sputter_V : V;
-fun sputter_V2 : V2;
-fun sputum_N : N;
-fun spy_N : N;
-fun spy_V : V;
-fun spy_V2 : V2;
-fun spy_hole_N : N;
-fun spyglass_N : N;
-fun sq_PN : PN;
-fun squab_N : N;
-fun squabble_N : N;
-fun squabble_V : V;
-fun squad_N : N;
-fun squadron_N : N;
-fun squalid_A : A;
-fun squalidly_Adv : Adv;
-fun squall_N : N;
-fun squall_V : V;
-fun squally_A : A;
-fun squalor_N : N;
-fun squander_V2 : V2;
-fun squandermania_N : N;
-fun square_A : A;
-fun square_Adv : Adv;
-fun square_N : N;
-fun square_V : V;
-fun square_V2 : V2;
-fun square_bashing_N : N;
-fun square_built_A : A;
-fun square_rigged_A : A;
-fun square_shouldered_A : A;
-fun square_toed_A : A;
-fun square_toes_N : N;
-fun squarely_Adv : Adv;
-fun squareness_N : N;
-fun squash_N : N;
-fun squash_V : V;
-fun squash_V2 : V2;
-fun squashy_A : A;
-fun squat_A : A;
-fun squat_V : V;
-fun squatter_N : N;
-fun squaw_N : N;
-fun squawk_N : N;
-fun squawk_V : V;
-fun squawker_N : N;
-fun squeak_N : N;
-fun squeak_V : V;
-fun squeak_V2 : V2;
-fun squeaker_N : N;
-fun squeaky_A : A;
-fun squeal_N : N;
-fun squeal_V : V;
-fun squeal_V2 : V2;
-fun squealer_N : N;
-fun squeamish_A : A;
-fun squeamishly_Adv : Adv;
-fun squeamishness_N : N;
-fun squeegee_N : N;
-fun squeegee_V2 : V2;
-fun squeeze_N : N;
-fun squeeze_V : V;
-fun squeeze_V2 : V2;
-fun squeezer_N : N;
-fun squelch_N : N;
-fun squelch_V : V;
-fun squelch_V2 : V2;
-fun squib_N : N;
-fun squid_N : N;
-fun squiffy_A : A;
-fun squiggle_N : N;
-fun squiggly_A : A;
-fun squint_N : N;
-fun squint_V : V;
-fun squint_eyed_A : A;
-fun squire_N : N;
-fun squire_V2 : V2;
-fun squirearchy_N : N;
-fun squirm_N : N;
-fun squirm_V : V;
-fun squirrel_N : N;
-fun squirt_N : N;
-fun squirt_V : V;
-fun squirt_V2 : V2;
-fun sr_PN : PN;
-fun sri_lanka_PN : PN;
-fun sri_lankan_A : A;
-fun sri_lankan_N : N;
-fun srn_N : N;
-fun ss_N : N;
-fun st_PN : PN;
-fun st_albans_PN : PN;
-fun st_andrews_PN : PN;
-fun st_andrews_major_PN : PN;
-fun st_austell_PN : PN;
-fun st_blazey_PN : PN;
-fun st_helens_PN : PN;
-fun st_ives_PN : PN;
-fun st_louis_PN : PN;
-fun st_neots_PN : PN;
-fun st_paul_PN : PN;
-fun st_petersburg_PN : PN;
-fun st_stephen_PN : PN;
-fun sta_PN : PN;
-fun stab_N : N;
-fun stab_V : V;
-fun stab_V2 : V2;
-fun stabber_N : N;
-fun stability_N : N;
-fun stabilization_N : N;
-fun stabilize_V2 : V2;
-fun stabilizer_N : N;
-fun stable_A : A;
-fun stable_N : N;
-fun stable_V2 : V2;
-fun stable_companion_N : N;
-fun stableboy_N : N;
-fun stableman_N : N;
-fun stablemate_N : N;
-fun stabling_N : N;
-fun staccato_A : A;
-fun staccato_Adv : Adv;
-fun stack_N : N;
-fun stack_V2 : V2;
-fun stadium_N : N;
-fun staff_N : N;
-fun staff_V2 : V2;
-fun staff_office_N : N;
-fun stafford_PN : PN;
-fun staffordshire_PN : PN;
-fun stag_N : N;
-fun stag_party_N : N;
-fun stage_N : N;
-fun stage_V : V;
-fun stage_V2 : V2;
-fun stage_struck_A : A;
-fun stage_whisper_N : N;
-fun stagecoach_N : N;
-fun stagecraft_N : N;
-fun stager_N : N;
-fun stagflation_N : N;
-fun stagger_N : N;
-fun stagger_V : V;
-fun stagger_V2 : V2;
-fun staggerer_N : N;
-fun staggeringly_Adv : Adv;
-fun stagily_Adv : Adv;
-fun staginess_N : N;
-fun staging_N : N;
-fun stagnancy_N : N;
-fun stagnant_A : A;
-fun stagnate_V : V;
-fun stagnation_N : N;
-fun stagy_A : A;
-fun staid_A : A;
-fun staidly_Adv : Adv;
-fun staidness_N : N;
-fun stain_N : N;
-fun stain_V : V;
-fun stain_V2 : V2;
-fun stainless_A : A;
-fun stair_N : N;
-fun stair_carpet_N : N;
-fun stair_rod_N : N;
-fun staircase_N : N;
-fun stairway_N : N;
-fun stake_N : N;
-fun stake_V2 : V2;
-fun stake_holder_N : N;
-fun stakeford_PN : PN;
-fun stalactite_N : N;
-fun stalagmite_N : N;
-fun stale_A : A;
-fun stale_V : V;
-fun stalemate_N : N;
-fun stalemate_V2 : V2;
-fun staleness_N : N;
-fun stalk_N : N;
-fun stalk_V : V;
-fun stalk_V2 : V2;
-fun stalker_N : N;
-fun stalking_horse_N : N;
-fun stall_N : N;
-fun stall_V : V;
-fun stall_V2 : V2;
-fun stall_fed_A : A;
-fun stallion_N : N;
-fun stalwart_A : A;
-fun stalwart_N : N;
-fun stalybridge_PN : PN;
-fun stamen_N : N;
-fun stamford_PN : PN;
-fun stamina_N : N;
-fun stammer_N : N;
-fun stammer_V : V;
-fun stammer_V2 : V2;
-fun stammerer_N : N;
-fun stammeringly_Adv : Adv;
-fun stamp_N : N;
-fun stamp_V : V;
-fun stamp_V2 : V2;
-fun stamp_album_N : N;
-fun stamp_collector_N : N;
-fun stamp_dealer_N : N;
-fun stamp_duty_N : N;
-fun stampede_N : N;
-fun stampede_V : V;
-fun stampede_V2 : V2;
-fun stamping_ground_N : N;
-fun stan_PN : PN;
-fun stance_N : N;
-fun stanchion_N : N;
-fun stand_N : N;
-fun stand_V : V;
-fun stand_V2 : V2;
-fun stand_in_N : N;
-fun stand_to_N : N;
-fun stand_up_A : A;
-fun standard_A : A;
-fun standard_N : N;
-fun standard_bearer_N : N;
-fun standardization_N : N;
-fun standardize_V2 : V2;
-fun standby_N : N;
-fun standing_A : A;
-fun standing_N : N;
-fun standoffish_A : A;
-fun standoffishly_Adv : Adv;
-fun standoffishness_N : N;
-fun standpipe_N : N;
-fun standpoint_N : N;
-fun standstill_N : N;
-fun stanford_PN : PN;
-fun stanley_PN : PN;
-fun stanza_N : N;
-fun staple_N : N;
-fun staple_V2 : V2;
-fun stapler_N : N;
-fun stapling_machine_N : N;
-fun star_N : N;
-fun star_V : V;
-fun star_V2 : V2;
-fun starboard_N : N;
-fun starboard_V2 : V2;
-fun starch_N : N;
-fun starch_V2 : V2;
-fun starchy_A : A;
-fun stardom_N : N;
-fun stardust_N : N;
-fun stare_N : N;
-fun stare_V : V;
-fun stare_V2 : V2;
-fun starfish_N : N;
-fun stargazer_N : N;
-fun staring_A : A;
-fun staring_Adv : Adv;
-fun stark_A : A;
-fun stark_Adv : Adv;
-fun starkers_A : A;
-fun starkly_Adv : Adv;
-fun starless_A : A;
-fun starlet_N : N;
-fun starlight_N : N;
-fun starling_N : N;
-fun starlit_A : A;
-fun starry_A : A;
-fun starry_eyed_A : A;
-fun start_N : N;
-fun start_V : V;
-fun start_V2 : V2;
-fun starter_N : N;
-fun starting_gate_N : N;
-fun starting_point_N : N;
-fun starting_post_N : N;
-fun startle_V2 : V2;
-fun startlingly_Adv : Adv;
-fun starvation_N : N;
-fun starve_V : V;
-fun starve_V2 : V2;
-fun starveling_N : N;
-fun stash_V2 : V2;
-fun state_N : N;
-fun state_V2 : V2;
-fun statecraft_N : N;
-fun stated_A : A;
-fun statehouse_N : N;
-fun stateless_A : A;
-fun stateliness_N : N;
-fun stately_A : A;
-fun statement_N : N;
-fun statesman_N : N;
-fun statesmanlike_A : A;
-fun statesmanship_N : N;
-fun static_A : A;
-fun statically_Adv : Adv;
-fun statics_N : N;
-fun station_N : N;
-fun station_V2 : V2;
-fun station_waggon_N : N;
-fun stationary_A : A;
-fun stationer_N : N;
-fun stationery_N : N;
-fun stationmaster_N : N;
-fun statistic_N : N;
-fun statistical_A : A;
-fun statistically_Adv : Adv;
-fun statistician_N : N;
-fun statistics_N : N;
-fun statuary_A : A;
-fun statuary_N : N;
-fun statue_N : N;
-fun statuesque_A : A;
-fun statuette_N : N;
-fun stature_N : N;
-fun status_N : N;
-fun status_quo_N : N;
-fun statute_N : N;
-fun statute_book_N : N;
-fun statutorily_Adv : Adv;
-fun statutory_A : A;
-fun staunch_A : A;
-fun staunch_V2 : V2;
-fun staunchly_Adv : Adv;
-fun staunchness_N : N;
-fun stave_N : N;
-fun stave_V : V;
-fun stave_V2 : V2;
-fun stay_N : N;
-fun stay_V : V;
-fun stay_V2 : V2;
-fun stay_at_home_N : N;
-fun stayer_N : N;
-fun std_PN : PN;
-fun stead_N : N;
-fun steadfast_A : A;
-fun steadfastly_Adv : Adv;
-fun steadfastness_N : N;
-fun steadily_Adv : Adv;
-fun steadiness_N : N;
-fun steady_A : A;
-fun steady_Adv : Adv;
-fun steady_N : N;
-fun steady_V : V;
-fun steady_V2 : V2;
-fun steak_N : N;
-fun steal_V : V;
-fun steal_V2 : V2;
-fun stealth_N : N;
-fun stealthily_Adv : Adv;
-fun stealthy_A : A;
-fun steam_N : N;
-fun steam_V : V;
-fun steam_V2 : V2;
-fun steam_boiler_N : N;
-fun steam_coal_N : N;
-fun steam_engine_N : N;
-fun steam_heat_N : N;
-fun steam_heat_V2 : V2;
-fun steamboat_N : N;
-fun steamer_N : N;
-fun steamroller_N : N;
-fun steamroller_V2 : V2;
-fun steamship_N : N;
-fun steamy_A : A;
-fun steed_N : N;
-fun steel_N : N;
-fun steel_V2 : V2;
-fun steel_clad_A : A;
-fun steel_plated_A : A;
-fun steelworks_N : N;
-fun steely_A : A;
-fun steelyard_N : N;
-fun steenbok_N : N;
-fun steep_A : A;
-fun steep_V : V;
-fun steep_V2 : V2;
-fun steepen_V : V;
-fun steepen_V2 : V2;
-fun steepish_A : A;
-fun steeple_N : N;
-fun steeplechase_N : N;
-fun steeplechaser_N : N;
-fun steeplejack_N : N;
-fun steeply_Adv : Adv;
-fun steepness_N : N;
-fun steer_N : N;
-fun steer_V : V;
-fun steer_V2 : V2;
-fun steerage_N : N;
-fun steerageway_N : N;
-fun steering_gear_N : N;
-fun steering_wheel_N : N;
-fun steersman_N : N;
-fun stele_N : N;
-fun stella_PN : PN;
-fun stellar_A : A;
-fun stem_N : N;
-fun stem_V : V;
-fun stem_V2 : V2;
-fun stemmed_A : A;
-fun sten_PN : PN;
-fun stench_N : N;
-fun stencil_N : N;
-fun stencil_V2 : V2;
-fun stenographer_N : N;
-fun stenography_N : N;
-fun stentorian_A : A;
-fun step_N : N;
-fun step_V : V;
-fun step_V2 : V2;
-fun stepbrother_N : N;
-fun stepchild_N : N;
-fun stepdaughter_N : N;
-fun stepfather_N : N;
-fun stephanie_PN : PN;
-fun stephen_PN : PN;
-fun stepladder_N : N;
-fun stepmother_N : N;
-fun stepparent_N : N;
-fun steppe_N : N;
-fun stepping_stone_N : N;
-fun stepsister_N : N;
-fun stepson_N : N;
-fun stereo_N : N;
-fun stereophonic_A : A;
-fun stereoscope_N : N;
-fun stereoscopic_A : A;
-fun stereotype_N : N;
-fun stereotype_V2 : V2;
-fun sterile_A : A;
-fun sterility_N : N;
-fun sterilization_N : N;
-fun sterilize_V2 : V2;
-fun sterling_A : A;
-fun sterling_N : N;
-fun stern_A : A;
-fun stern_N : N;
-fun sternly_Adv : Adv;
-fun sternness_N : N;
-fun sternum_N : N;
-fun sternwheeler_N : N;
-fun stertorous_A : A;
-fun stertorously_Adv : Adv;
-fun stethoscope_N : N;
-fun stetson_N : N;
-fun steve_PN : PN;
-fun stevedore_N : N;
-fun steven_PN : PN;
-fun stevenage_PN : PN;
-fun stevenston_PN : PN;
-fun stew_N : N;
-fun stew_V : V;
-fun stew_V2 : V2;
-fun steward_N : N;
-fun stewardess_N : N;
-fun stewardship_N : N;
-fun stewart_PN : PN;
-fun stewed_A : A;
-fun steyning_PN : PN;
-fun stick_N : N;
-fun stick_V : V;
-fun stick_V2 : V2;
-fun stick_in_the_mud_A : A;
-fun stick_in_the_mud_N : N;
-fun stick_on_A : A;
-fun stick_up_N : N;
-fun sticker_N : N;
-fun stickily_Adv : Adv;
-fun stickiness_N : N;
-fun sticking_plaster_N : N;
-fun stickler_N : N;
-fun sticky_A : A;
-fun stiff_A : A;
-fun stiff_Adv : Adv;
-fun stiff_N : N;
-fun stiff_necked_A : A;
-fun stiffen_V : V;
-fun stiffen_V2 : V2;
-fun stiffener_N : N;
-fun stiffening_N : N;
-fun stiffly_Adv : Adv;
-fun stiffness_N : N;
-fun stifle_V : V;
-fun stifle_V2 : V2;
-fun stigma_N : N;
-fun stigmatize_V2 : V2;
-fun stile_N : N;
-fun stiletto_N : N;
-fun still_A : A;
-fun still_Adv : Adv;
-fun still_N : N;
-fun still_V2 : V2;
-fun still_life_N : N;
-fun still_room_N : N;
-fun stillbirth_N : N;
-fun stillborn_A : A;
-fun stillness_N : N;
-fun stilly_A : A;
-fun stilt_N : N;
-fun stilted_A : A;
-fun stiltedly_Adv : Adv;
-fun stilton_N : N;
-fun stimulant_N : N;
-fun stimulate_V2 : V2;
-fun stimulating_A : A;
-fun stimulation_N : N;
-fun stimulus_N : N;
-fun sting_N : N;
-fun sting_V : V;
-fun sting_V2 : V2;
-fun stinger_N : N;
-fun stingily_Adv : Adv;
-fun stinginess_N : N;
-fun stingless_A : A;
-fun stingray_N : N;
-fun stingy_A : A;
-fun stink_N : N;
-fun stink_V : V;
-fun stink_V2 : V2;
-fun stinker_N : N;
-fun stint_N : N;
-fun stint_V : V;
-fun stint_V2 : V2;
-fun stipend_N : N;
-fun stipendiary_A : A;
-fun stipendiary_N : N;
-fun stipple_V2 : V2;
-fun stipulate_V : V;
-fun stipulate_V2 : V2;
-fun stipulation_N : N;
-fun stir_N : N;
-fun stir_V : V;
-fun stir_V2 : V2;
-fun stirling_PN : PN;
-fun stirring_A : A;
-fun stirringly_Adv : Adv;
-fun stirrup_N : N;
-fun stirrup_cup_N : N;
-fun stitch_N : N;
-fun stitch_V : V;
-fun stitch_V2 : V2;
-fun stoat_N : N;
-fun stochastic_A : A;
-fun stochastically_Adv : Adv;
-fun stock_N : N;
-fun stock_V2 : V2;
-fun stock_cube_N : N;
-fun stock_farmer_N : N;
-fun stock_in_trade_N : N;
-fun stock_list_N : N;
-fun stock_still_Adv : Adv;
-fun stockade_N : N;
-fun stockade_V2 : V2;
-fun stockbreeder_N : N;
-fun stockbroker_N : N;
-fun stockcar_N : N;
-fun stockfish_N : N;
-fun stockholder_N : N;
-fun stockholding_N : N;
-fun stockholm_PN : PN;
-fun stockily_Adv : Adv;
-fun stockinette_N : N;
-fun stocking_N : N;
-fun stockinged_A : A;
-fun stockist_N : N;
-fun stockjobber_N : N;
-fun stockpile_N : N;
-fun stockpiling_N : N;
-fun stockport_PN : PN;
-fun stockpot_N : N;
-fun stockroom_N : N;
-fun stocksbridge_PN : PN;
-fun stocktaking_N : N;
-fun stocky_A : A;
-fun stockyard_N : N;
-fun stodge_N : N;
-fun stodginess_N : N;
-fun stodgy_A : A;
-fun stoep_N : N;
-fun stoic_N : N;
-fun stoical_A : A;
-fun stoically_Adv : Adv;
-fun stoicism_N : N;
-fun stoke_V : V;
-fun stoke_V2 : V2;
-fun stoke_on_trent_PN : PN;
-fun stokehold_N : N;
-fun stokehole_N : N;
-fun stoker_N : N;
-fun stole_N : N;
-fun stolen_A : A;
-fun stolid_A : A;
-fun stolidity_N : N;
-fun stolidly_Adv : Adv;
-fun stolidness_N : N;
-fun stomach_N : N;
-fun stomach_V2 : V2;
-fun stomach_ache_N : N;
-fun stomach_pump_N : N;
-fun stomp_N : N;
-fun stomp_V : V;
-fun stone_N : N;
-fun stone_PN : PN;
-fun stone_V2 : V2;
-fun stone_blind_A : A;
-fun stone_cold_A : A;
-fun stone_dead_A : A;
-fun stone_deaf_A : A;
-fun stone_fruit_N : N;
-fun stone_pit_N : N;
-fun stone_sober_A : A;
-fun stonebreaker_N : N;
-fun stoned_A : A;
-fun stonehouse_PN : PN;
-fun stoneless_A : A;
-fun stonemason_N : N;
-fun stonewall_V2 : V2;
-fun stonewaller_N : N;
-fun stonewalling_N : N;
-fun stoneware_N : N;
-fun stonework_N : N;
-fun stonily_Adv : Adv;
-fun stony_A : A;
-fun stony_broke_A : A;
-fun stooge_N : N;
-fun stooge_V : V;
-fun stool_N : N;
-fun stoop_N : N;
-fun stoop_V : V;
-fun stoop_V2 : V2;
-fun stop_N : N;
-fun stop_V : V;
-fun stop_V2 : V2;
-fun stopcock_N : N;
-fun stopgap_N : N;
-fun stopover_N : N;
-fun stoppage_N : N;
-fun stopper_N : N;
-fun stopping_N : N;
-fun stopwatch_N : N;
-fun storage_N : N;
-fun store_N : N;
-fun store_V2 : V2;
-fun storehouse_N : N;
-fun storeroom_N : N;
-fun storey_N : N;
-fun storeyed_A : A;
-fun storied_A : A;
-fun stork_N : N;
-fun storm_N : N;
-fun storm_V : V;
-fun storm_V2 : V2;
-fun storm_beaten_A : A;
-fun storm_bound_A : A;
-fun storm_centre_N : N;
-fun storm_cloud_N : N;
-fun storm_cone_N : N;
-fun storm_lantern_N : N;
-fun storm_signal_N : N;
-fun storm_tossed_A : A;
-fun storm_trooper_N : N;
-fun stormily_Adv : Adv;
-fun stormproof_A : A;
-fun stormy_A : A;
-fun stornoway_PN : PN;
-fun story_N : N;
-fun storyteller_N : N;
-fun stotfold_PN : PN;
-fun stoup_N : N;
-fun stourbridge_PN : PN;
-fun stourport_on_severn_PN : PN;
-fun stout_A : A;
-fun stout_N : N;
-fun stouthearted_A : A;
-fun stoutly_Adv : Adv;
-fun stoutness_N : N;
-fun stove_N : N;
-fun stovepipe_N : N;
-fun stow_V2 : V2;
-fun stowaway_N : N;
-fun stowmarket_PN : PN;
-fun straddle_V : V;
-fun straddle_V2 : V2;
-fun strafe_V2 : V2;
-fun straggle_V : V;
-fun straggler_N : N;
-fun straggly_A : A;
-fun straight_A : A;
-fun straight_Adv : Adv;
-fun straight_N : N;
-fun straighten_V : V;
-fun straighten_V2 : V2;
-fun straightforward_A : A;
-fun straightforwardly_Adv : Adv;
-fun straightness_N : N;
-fun straightway_Adv : Adv;
-fun strain_N : N;
-fun strain_V : V;
-fun strain_V2 : V2;
-fun strained_A : A;
-fun strainer_N : N;
-fun strait_A : A;
-fun strait_N : N;
-fun strait_laced_A : A;
-fun straiten_V2 : V2;
-fun straitjacket_N : N;
-fun strand_N : N;
-fun strand_V : V;
-fun strand_V2 : V2;
-fun strange_A : A;
-fun strangely_Adv : Adv;
-fun strangeness_N : N;
-fun stranger_N : N;
-fun strangle_V2 : V2;
-fun stranglehold_N : N;
-fun strangulation_N : N;
-fun stranraer_PN : PN;
-fun strap_N : N;
-fun strap_V2 : V2;
-fun straphanger_N : N;
-fun strapping_A : A;
-fun strapping_N : N;
-fun strasbourg_PN : PN;
-fun stratagem_N : N;
-fun strategic_A : A;
-fun strategical_A : A;
-fun strategically_Adv : Adv;
-fun strategics_N : N;
-fun strategist_N : N;
-fun strategy_N : N;
-fun stratford_on_avon_PN : PN;
-fun strathaven_PN : PN;
-fun strathclyde_PN : PN;
-fun stratification_N : N;
-fun stratify_V : V;
-fun stratify_V2 : V2;
-fun stratosphere_N : N;
-fun stratum_N : N;
-fun straw_N : N;
-fun straw_V2 : V2;
-fun straw_coloured_A : A;
-fun strawberry_N : N;
-fun strawboard_N : N;
-fun stray_N : N;
-fun stray_V : V;
-fun streak_N : N;
-fun streak_V : V;
-fun streak_V2 : V2;
-fun streaky_A : A;
-fun stream_N : N;
-fun stream_V : V;
-fun streamer_N : N;
-fun streamlet_N : N;
-fun streamline_V2 : V2;
-fun streamlined_A : A;
-fun street_N : N;
-fun street_PN : PN;
-fun street_girl_N : N;
-fun street_urchin_N : N;
-fun streetcar_N : N;
-fun streetwalker_N : N;
-fun strength_N : N;
-fun strengthen_V : V;
-fun strengthen_V2 : V2;
-fun strenuous_A : A;
-fun strenuously_Adv : Adv;
-fun strenuousness_N : N;
-fun streptococcus_N : N;
-fun streptomycin_N : N;
-fun stress_N : N;
-fun stress_V2 : V2;
-fun stress_mark_N : N;
-fun stretch_N : N;
-fun stretch_V : V;
-fun stretch_V2 : V2;
-fun stretcher_N : N;
-fun stretcher_bearer_N : N;
-fun stretcher_party_N : N;
-fun stretford_PN : PN;
-fun strew_V2 : V2;
-fun striated_A : A;
-fun stricken_A : A;
-fun strict_A : A;
-fun strictly_Adv : Adv;
-fun strictness_N : N;
-fun stricture_N : N;
-fun stride_N : N;
-fun stride_V : V;
-fun stride_V2 : V2;
-fun strident_A : A;
-fun stridently_Adv : Adv;
-fun stridulate_V : V;
-fun stridulation_N : N;
-fun strife_N : N;
-fun strike_N : N;
-fun strike_V : V;
-fun strike_V2 : V2;
-fun strike_leader_N : N;
-fun strike_pay_N : N;
-fun strikebound_A : A;
-fun strikebreaker_N : N;
-fun striker_N : N;
-fun striking_A : A;
-fun strikingly_Adv : Adv;
-fun string_N : N;
-fun string_V : V;
-fun string_V2 : V2;
-fun stringency_N : N;
-fun stringent_A : A;
-fun stringently_Adv : Adv;
-fun stringy_A : A;
-fun strip_N : N;
-fun strip_V : V;
-fun strip_V2 : V2;
-fun strip_lighting_N : N;
-fun strip_poker_N : N;
-fun strip_show_N : N;
-fun stripe_N : N;
-fun striped_A : A;
-fun stripling_N : N;
-fun stripper_N : N;
-fun striptease_N : N;
-fun stripy_A : A;
-fun strive_V : V;
-fun striver_N : N;
-fun stroboscope_N : N;
-fun stroke_N : N;
-fun stroke_V2 : V2;
-fun stroll_N : N;
-fun stroll_V : V;
-fun stroller_N : N;
-fun strong_A : A;
-fun strong_arm_A : A;
-fun strong_boned_A : A;
-fun strong_minded_A : A;
-fun strongbox_N : N;
-fun stronghold_N : N;
-fun strongly_Adv : Adv;
-fun strongroom_N : N;
-fun strontium_N : N;
-fun strop_N : N;
-fun strop_V2 : V2;
-fun strophe_N : N;
-fun stroppy_A : A;
-fun stroud_PN : PN;
-fun struck_A : A;
-fun structural_A : A;
-fun structurally_Adv : Adv;
-fun structure_N : N;
-fun structured_A : A;
-fun strudel_N : N;
-fun struggle_N : N;
-fun struggle_V : V;
-fun strum_N : N;
-fun strum_V : V;
-fun strum_V2 : V2;
-fun strumpet_N : N;
-fun strut_N : N;
-fun strut_V : V;
-fun strychnine_N : N;
-fun stuart_PN : PN;
-fun stub_N : N;
-fun stub_V2 : V2;
-fun stubble_N : N;
-fun stubbly_A : A;
-fun stubborn_A : A;
-fun stubbornly_Adv : Adv;
-fun stubbornness_N : N;
-fun stubby_A : A;
-fun stucco_N : N;
-fun stucco_V2 : V2;
-fun stuck_up_A : A;
-fun stud_N : N;
-fun stud_V2 : V2;
-fun stud_farm_N : N;
-fun stud_mare_N : N;
-fun studbook_N : N;
-fun student_N : N;
-fun studied_A : A;
-fun studio_N : N;
-fun studious_A : A;
-fun studiously_Adv : Adv;
-fun studiousness_N : N;
-fun studley_PN : PN;
-fun study_N : N;
-fun study_V : V;
-fun study_V2 : V2;
-fun stuff_N : N;
-fun stuff_V2 : V2;
-fun stuffily_Adv : Adv;
-fun stuffiness_N : N;
-fun stuffing_N : N;
-fun stuffy_A : A;
-fun stultification_N : N;
-fun stultify_V2 : V2;
-fun stumble_N : N;
-fun stumble_V : V;
-fun stumbling_block_N : N;
-fun stump_N : N;
-fun stump_V : V;
-fun stump_V2 : V2;
-fun stumper_N : N;
-fun stumpy_A : A;
-fun stun_V2 : V2;
-fun stunner_N : N;
-fun stunning_A : A;
-fun stunningly_Adv : Adv;
-fun stunt_N : N;
-fun stunt_V2 : V2;
-fun stupefaction_N : N;
-fun stupefy_V2 : V2;
-fun stupendous_A : A;
-fun stupendously_Adv : Adv;
-fun stupid_A : A;
-fun stupid_N : N;
-fun stupidity_N : N;
-fun stupidly_Adv : Adv;
-fun stupify_V2 : V2;
-fun stupifying_A : A;
-fun stupor_N : N;
-fun sturdily_Adv : Adv;
-fun sturdiness_N : N;
-fun sturdy_A : A;
-fun sturgeon_N : N;
-fun stutter_N : N;
-fun stutter_V : V;
-fun stutter_V2 : V2;
-fun stutterer_N : N;
-fun stutteringly_Adv : Adv;
-fun stuttgart_PN : PN;
-fun sty_N : N;
-fun stye_N : N;
-fun stygian_A : A;
-fun style_N : N;
-fun style_V2 : V2;
-fun stylish_A : A;
-fun stylishly_Adv : Adv;
-fun stylishness_N : N;
-fun stylist_N : N;
-fun stylistic_A : A;
-fun stylistically_Adv : Adv;
-fun stylization_N : N;
-fun stylize_V2 : V2;
-fun stylus_N : N;
-fun stymie_N : N;
-fun stymie_V2 : V2;
-fun styptic_A : A;
-fun styptic_N : N;
-fun styx_PN : PN;
-fun suasion_N : N;
-fun suave_A : A;
-fun suavely_Adv : Adv;
-fun suavity_N : N;
-fun sub_N : N;
-fun sub_V : V;
-fun sub_V2 : V2;
-fun sub_judice_A : A;
-fun sub_rosa_Adv : Adv;
-fun subaltern_N : N;
-fun subatomic_A : A;
-fun subcommittee_N : N;
-fun subconscious_A : A;
-fun subconscious_N : N;
-fun subconsciously_Adv : Adv;
-fun subconsciousness_N : N;
-fun subcontinent_N : N;
-fun subcontract_N : N;
-fun subcontract_V : V;
-fun subcontract_V2 : V2;
-fun subcontractor_N : N;
-fun subcutaneous_A : A;
-fun subdivide_V : V;
-fun subdivide_V2 : V2;
-fun subdivision_N : N;
-fun subdue_V2 : V2;
-fun subedit_V2 : V2;
-fun subeditor_N : N;
-fun subfusc_A : A;
-fun subgroup_N : N;
-fun subheading_N : N;
-fun subhuman_A : A;
-fun subject_A : A;
-fun subject_N : N;
-fun subject_V2 : V2;
-fun subjection_N : N;
-fun subjective_A : A;
-fun subjectively_Adv : Adv;
-fun subjectivity_N : N;
-fun subjoin_V2 : V2;
-fun subjugate_V2 : V2;
-fun subjugation_N : N;
-fun subjunctive_A : A;
-fun subjunctive_N : N;
-fun sublease_N : N;
-fun sublease_V : V;
-fun sublease_V2 : V2;
-fun sublet_V : V;
-fun sublet_V2 : V2;
-fun sublieutenant_N : N;
-fun sublimate_A : A;
-fun sublimate_N : N;
-fun sublimate_V2 : V2;
-fun sublimation_N : N;
-fun sublime_A : A;
-fun sublime_N : N;
-fun sublimely_Adv : Adv;
-fun subliminal_A : A;
-fun sublimity_N : N;
-fun submarine_A : A;
-fun submarine_N : N;
-fun submariner_N : N;
-fun submerge_V : V;
-fun submerge_V2 : V2;
-fun submerged_A : A;
-fun submergence_N : N;
-fun submersible_A : A;
-fun submersion_N : N;
-fun submission_N : N;
-fun submissive_A : A;
-fun submissively_Adv : Adv;
-fun submissiveness_N : N;
-fun submit_V : V;
-fun submit_V2 : V2;
-fun subnormal_A : A;
-fun subnormal_N : N;
-fun suborbital_A : A;
-fun subordinate_A : A;
-fun subordinate_N : N;
-fun subordinate_V2 : V2;
-fun subordination_N : N;
-fun subordinative_A : A;
-fun suborn_V2 : V2;
-fun subornation_N : N;
-fun subpoena_N : N;
-fun subpoena_V2 : V2;
-fun subscribe_V : V;
-fun subscribe_V2 : V2;
-fun subscriber_N : N;
-fun subscript_N : N;
-fun subscription_N : N;
-fun subsection_N : N;
-fun subsequent_A : A;
-fun subsequently_Adv : Adv;
-fun subserve_V2 : V2;
-fun subservience_N : N;
-fun subservient_A : A;
-fun subserviently_Adv : Adv;
-fun subside_V : V;
-fun subsidence_N : N;
-fun subsidiary_A : A;
-fun subsidiary_N : N;
-fun subsidization_N : N;
-fun subsidize_V2 : V2;
-fun subsidy_N : N;
-fun subsist_V : V;
-fun subsistence_N : N;
-fun subsoil_N : N;
-fun subsonic_A : A;
-fun substance_N : N;
-fun substandard_A : A;
-fun substantial_A : A;
-fun substantially_Adv : Adv;
-fun substantiate_V2 : V2;
-fun substantiation_N : N;
-fun substantival_A : A;
-fun substantive_A : A;
-fun substantive_N : N;
-fun substation_N : N;
-fun substitute_N : N;
-fun substitute_V : V;
-fun substitute_V2 : V2;
-fun substitution_N : N;
-fun substrate_N : N;
-fun substratum_N : N;
-fun substructure_N : N;
-fun subsume_V2 : V2;
-fun subtend_V2 : V2;
-fun subterfuge_N : N;
-fun subterranean_A : A;
-fun subtitle_N : N;
-fun subtle_A : A;
-fun subtlety_N : N;
-fun subtly_Adv : Adv;
-fun subtopia_N : N;
-fun subtract_V2 : V2;
-fun subtraction_N : N;
-fun subtropical_A : A;
-fun suburb_N : N;
-fun suburban_A : A;
-fun suburbia_N : N;
-fun subvention_N : N;
-fun subversion_N : N;
-fun subversive_A : A;
-fun subversive_N : N;
-fun subvert_V2 : V2;
-fun subway_N : N;
-fun succeed_V : V;
-fun succeed_V2 : V2;
-fun success_N : N;
-fun successful_A : A;
-fun successfully_Adv : Adv;
-fun succession_N : N;
-fun successive_A : A;
-fun successively_Adv : Adv;
-fun successor_N : N;
-fun succinct_A : A;
-fun succinctly_Adv : Adv;
-fun succinctness_N : N;
-fun succour_N : N;
-fun succour_V2 : V2;
-fun succubus_N : N;
-fun succulence_N : N;
-fun succulent_A : A;
-fun succulent_N : N;
-fun succumb_V : V;
-fun such_A : A;
-fun suchlike_A : A;
-fun suchow_PN : PN;
-fun suck_N : N;
-fun suck_V : V;
-fun suck_V2 : V2;
-fun sucker_N : N;
-fun sucking_pig_N : N;
-fun suckle_V2 : V2;
-fun suckling_N : N;
-fun suction_N : N;
-fun sudan_PN : PN;
-fun sudanese_A : A;
-fun sudanese_N : N;
-fun sudbury_PN : PN;
-fun sudden_A : A;
-fun sudden_N : N;
-fun suddenly_Adv : Adv;
-fun suddenness_N : N;
-fun sue_PN : PN;
-fun sue_V : V;
-fun sue_V2 : V2;
-fun suede_N : N;
-fun suet_N : N;
-fun suety_A : A;
-fun suffer_V : V;
-fun suffer_V2 : V2;
-fun sufferable_A : A;
-fun sufferance_N : N;
-fun sufferer_N : N;
-fun suffering_N : N;
-fun suffice_V : V;
-fun suffice_V2 : V2;
-fun sufficiency_N : N;
-fun sufficient_A : A;
-fun sufficiently_Adv : Adv;
-fun suffix_N : N;
-fun suffocate_V : V;
-fun suffocate_V2 : V2;
-fun suffocation_N : N;
-fun suffolk_PN : PN;
-fun suffragan_N : N;
-fun suffrage_N : N;
-fun suffragette_N : N;
-fun suffuse_V2 : V2;
-fun suffusion_N : N;
-fun sugar_N : N;
-fun sugar_V2 : V2;
-fun sugar_beet_N : N;
-fun sugar_candy_N : N;
-fun sugar_cane_N : N;
-fun sugar_coated_A : A;
-fun sugar_daddy_N : N;
-fun sugar_loaf_N : N;
-fun sugar_refinery_N : N;
-fun sugarlump_N : N;
-fun sugary_A : A;
-fun suggest_V2 : V2;
-fun suggestibility_N : N;
-fun suggestible_A : A;
-fun suggestion_N : N;
-fun suggestive_A : A;
-fun suggestively_Adv : Adv;
-fun suicidal_A : A;
-fun suicide_N : N;
-fun suit_N : N;
-fun suit_V : V;
-fun suit_V2 : V2;
-fun suitability_N : N;
-fun suitable_A : A;
-fun suitableness_N : N;
-fun suitably_Adv : Adv;
-fun suitcase_N : N;
-fun suite_N : N;
-fun suiting_N : N;
-fun suitor_N : N;
-fun sulk_N : N;
-fun sulk_V : V;
-fun sulkily_Adv : Adv;
-fun sulkiness_N : N;
-fun sulky_A : A;
-fun sulky_N : N;
-fun sullen_A : A;
-fun sullenly_Adv : Adv;
-fun sullenness_N : N;
-fun sully_V2 : V2;
-fun sulpha_N : N;
-fun sulphate_N : N;
-fun sulphide_N : N;
-fun sulphur_N : N;
-fun sulphuretted_A : A;
-fun sulphuric_A : A;
-fun sulphurous_A : A;
-fun sultan_N : N;
-fun sultana_N : N;
-fun sultanate_N : N;
-fun sultrily_Adv : Adv;
-fun sultriness_N : N;
-fun sultry_A : A;
-fun sum_N : N;
-fun sum_V : V;
-fun sum_V2 : V2;
-fun sumac_N : N;
-fun sumach_N : N;
-fun sumatra_PN : PN;
-fun sumatran_A : A;
-fun sumatran_N : N;
-fun summarily_Adv : Adv;
-fun summarize_V2 : V2;
-fun summary_A : A;
-fun summary_N : N;
-fun summation_N : N;
-fun summer_N : N;
-fun summer_V : V;
-fun summerhouse_N : N;
-fun summertime_N : N;
-fun summery_A : A;
-fun summing_up_N : N;
-fun summit_N : N;
-fun summon_V2 : V2;
-fun summons_N : N;
-fun summons_V2 : V2;
-fun sump_N : N;
-fun sumpter_N : N;
-fun sumptuary_A : A;
-fun sumptuous_A : A;
-fun sumptuously_Adv : Adv;
-fun sumptuousness_N : N;
-fun sun_N : N;
-fun sun_PN : PN;
-fun sun_V2 : V2;
-fun sun_drenched_A : A;
-fun sun_dried_A : A;
-fun sun_god_N : N;
-fun sun_helmet_N : N;
-fun sun_lounge_N : N;
-fun sun_parlour_N : N;
-fun sun_porch_N : N;
-fun sun_up_N : N;
-fun sun_visor_N : N;
-fun sun_worship_N : N;
-fun sunbaked_A : A;
-fun sunbathe_N : N;
-fun sunbathe_V : V;
-fun sunbeam_N : N;
-fun sunblind_N : N;
-fun sunbonnet_N : N;
-fun sunburn_N : N;
-fun sunburned_A : A;
-fun sunburnt_A : A;
-fun sunburst_N : N;
-fun sundae_N : N;
-fun sunday_N : N;
-fun sunday_PN : PN;
-fun sunder_N : N;
-fun sunder_V2 : V2;
-fun sunderland_PN : PN;
-fun sundial_N : N;
-fun sundown_N : N;
-fun sundowner_N : N;
-fun sundry_A : A;
-fun sunfish_N : N;
-fun sunflower_N : N;
-fun sunhat_N : N;
-fun sunlamp_N : N;
-fun sunless_A : A;
-fun sunlight_N : N;
-fun sunlit_A : A;
-fun sunnily_Adv : Adv;
-fun sunny_A : A;
-fun sunray_A : A;
-fun sunrise_N : N;
-fun sunroof_N : N;
-fun sunset_N : N;
-fun sunshade_N : N;
-fun sunshine_N : N;
-fun sunshine_roof_N : N;
-fun sunspot_N : N;
-fun sunstroke_N : N;
-fun suntan_N : N;
-fun suntrap_N : N;
-fun sup_N : N;
-fun sup_V : V;
-fun sup_V2 : V2;
-fun super_A : A;
-fun super_N : N;
-fun superabundance_N : N;
-fun superabundant_A : A;
-fun superannuate_V2 : V2;
-fun superannuated_A : A;
-fun superannuation_N : N;
-fun superb_A : A;
-fun superbly_Adv : Adv;
-fun supercargo_N : N;
-fun supercharged_A : A;
-fun supercharger_N : N;
-fun supercilious_A : A;
-fun superciliously_Adv : Adv;
-fun superciliousness_N : N;
-fun superego_N : N;
-fun supererogation_N : N;
-fun superfatted_A : A;
-fun superficial_A : A;
-fun superficiality_N : N;
-fun superficially_Adv : Adv;
-fun superficies_N : N;
-fun superfine_A : A;
-fun superfluity_N : N;
-fun superfluous_A : A;
-fun superfluously_Adv : Adv;
-fun superhuman_A : A;
-fun superimpose_V2 : V2;
-fun superintend_V : V;
-fun superintend_V2 : V2;
-fun superintendence_N : N;
-fun superintendent_N : N;
-fun superior_A : A;
-fun superior_N : N;
-fun superiority_N : N;
-fun superlative_A : A;
-fun superlative_N : N;
-fun superman_N : N;
-fun supermarket_N : N;
-fun supernal_A : A;
-fun supernatural_A : A;
-fun supernaturally_Adv : Adv;
-fun supernormal_A : A;
-fun supernumerary_N : N;
-fun superscription_N : N;
-fun supersede_V2 : V2;
-fun supersession_N : N;
-fun supersonic_A : A;
-fun superstition_N : N;
-fun superstitious_A : A;
-fun superstitiously_Adv : Adv;
-fun superstructure_N : N;
-fun supertax_N : N;
-fun supervene_V : V;
-fun supervise_V : V;
-fun supervise_V2 : V2;
-fun supervision_N : N;
-fun supervisor_N : N;
-fun supervisory_A : A;
-fun supine_A : A;
-fun supinely_Adv : Adv;
-fun supper_N : N;
-fun supperless_A : A;
-fun supplant_V2 : V2;
-fun supplanter_N : N;
-fun supple_A : A;
-fun supplement_N : N;
-fun supplement_V2 : V2;
-fun supplementary_A : A;
-fun suppleness_N : N;
-fun suppliant_A : A;
-fun suppliant_N : N;
-fun supplicant_N : N;
-fun supplicate_V : V;
-fun supplicate_V2 : V2;
-fun supplication_N : N;
-fun supplier_N : N;
-fun supply_N : N;
-fun supply_V2 : V2;
-fun support_N : N;
-fun support_V2 : V2;
-fun supportable_A : A;
-fun supporter_N : N;
-fun suppose_V2 : V2;
-fun supposed_A : A;
-fun supposedly_Adv : Adv;
-fun supposition_N : N;
-fun suppository_N : N;
-fun suppress_V2 : V2;
-fun suppression_N : N;
-fun suppressive_A : A;
-fun suppressor_N : N;
-fun suppurate_V : V;
-fun suppuration_N : N;
-fun supra_Adv : Adv;
-fun supranational_A : A;
-fun supremacy_N : N;
-fun supreme_A : A;
-fun supremely_Adv : Adv;
-fun supt_PN : PN;
-fun surabaja_PN : PN;
-fun surcharge_N : N;
-fun surcharge_V2 : V2;
-fun surd_N : N;
-fun sure_A : A;
-fun sure_Adv : Adv;
-fun sure_footed_A : A;
-fun surely_Adv : Adv;
-fun sureness_N : N;
-fun surety_N : N;
-fun surf_N : N;
-fun surface_N : N;
-fun surface_V : V;
-fun surface_V2 : V2;
-fun surface_to_air_A : A;
-fun surfboard_N : N;
-fun surfboat_N : N;
-fun surfeit_N : N;
-fun surfeit_V2 : V2;
-fun surfing_N : N;
-fun surfriding_N : N;
-fun surge_N : N;
-fun surge_V : V;
-fun surgeon_N : N;
-fun surgery_N : N;
-fun surgical_A : A;
-fun surgically_Adv : Adv;
-fun surlily_Adv : Adv;
-fun surliness_N : N;
-fun surly_A : A;
-fun surmise_N : N;
-fun surmise_V : V;
-fun surmise_V2 : V2;
-fun surmount_V2 : V2;
-fun surmountable_A : A;
-fun surname_N : N;
-fun surpass_V2 : V2;
-fun surpassing_A : A;
-fun surpassingly_Adv : Adv;
-fun surplice_N : N;
-fun surpliced_A : A;
-fun surplus_N : N;
-fun surprise_N : N;
-fun surprise_V2 : V2;
-fun surprised_A : A;
-fun surprisedly_Adv : Adv;
-fun surprising_A : A;
-fun surprisingly_Adv : Adv;
-fun surrealism_N : N;
-fun surrealist_N : N;
-fun surrealistic_A : A;
-fun surrender_N : N;
-fun surrender_V : V;
-fun surrender_V2 : V2;
-fun surreptitious_A : A;
-fun surreptitiously_Adv : Adv;
-fun surrey_PN : PN;
-fun surrogate_A : A;
-fun surrogate_N : N;
-fun surround_N : N;
-fun surround_V2 : V2;
-fun surrounding_A : A;
-fun surtax_N : N;
-fun surtax_V2 : V2;
-fun surveillance_N : N;
-fun survey_N : N;
-fun survey_V2 : V2;
-fun surveying_N : N;
-fun surveyor_N : N;
-fun survival_N : N;
-fun survive_V : V;
-fun survive_V2 : V2;
-fun survivor_N : N;
-fun susan_PN : PN;
-fun susanna_PN : PN;
-fun susceptibility_N : N;
-fun susceptible_A : A;
-fun susie_PN : PN;
-fun suspect_A : A;
-fun suspect_N : N;
-fun suspect_V2 : V2;
-fun suspend_V2 : V2;
-fun suspender_N : N;
-fun suspense_N : N;
-fun suspension_N : N;
-fun suspicion_N : N;
-fun suspicious_A : A;
-fun suspiciously_Adv : Adv;
-fun suss_V2 : V2;
-fun sussex_PN : PN;
-fun sustain_V2 : V2;
-fun sustenance_N : N;
-fun suttee_N : N;
-fun sutton_PN : PN;
-fun sutton_at_hone_PN : PN;
-fun sutton_coldfield_PN : PN;
-fun sutton_in_ashfield_PN : PN;
-fun suture_N : N;
-fun suzanne_PN : PN;
-fun suzerain_N : N;
-fun suzerainty_N : N;
-fun svelte_A : A;
-fun sverdlovsk_PN : PN;
-fun swab_N : N;
-fun swab_V2 : V2;
-fun swaddle_V2 : V2;
-fun swadlincote_PN : PN;
-fun swag_N : N;
-fun swagger_A : A;
-fun swagger_N : N;
-fun swagger_V : V;
-fun swaggerer_N : N;
-fun swahili_N : N;
-fun swain_N : N;
-fun swallow_N : N;
-fun swallow_V : V;
-fun swallow_V2 : V2;
-fun swallow_tailed_A : A;
-fun swami_N : N;
-fun swamp_N : N;
-fun swamp_V2 : V2;
-fun swampy_A : A;
-fun swan's_down_N : N;
-fun swan_N : N;
-fun swan_V : V;
-fun swan_song_N : N;
-fun swanage_PN : PN;
-fun swank_N : N;
-fun swank_V : V;
-fun swanky_A : A;
-fun swanley_PN : PN;
-fun swansea_PN : PN;
-fun swap_N : N;
-fun swap_V : V;
-fun swap_V2 : V2;
-fun sward_N : N;
-fun swarm_N : N;
-fun swarm_V : V;
-fun swarm_V2 : V2;
-fun swarthy_A : A;
-fun swashbuckler_N : N;
-fun swashbuckling_A : A;
-fun swashbuckling_N : N;
-fun swastika_N : N;
-fun swat_N : N;
-fun swat_V2 : V2;
-fun swath_N : N;
-fun swathe_N : N;
-fun swathe_V2 : V2;
-fun sway_N : N;
-fun sway_V : V;
-fun sway_V2 : V2;
-fun swazi_A : A;
-fun swazi_N : N;
-fun swaziland_PN : PN;
-fun swear_V : V;
-fun swear_V2 : V2;
-fun swearer_N : N;
-fun swearing_N : N;
-fun swearword_N : N;
-fun sweat_N : N;
-fun sweat_V : V;
-fun sweat_V2 : V2;
-fun sweatband_N : N;
-fun sweater_N : N;
-fun sweatshop_N : N;
-fun sweaty_A : A;
-fun swede_A : A;
-fun swede_N : N;
-fun sweden_PN : PN;
-fun swedish_A : A;
-fun swedish_N : N;
-fun sweep_N : N;
-fun sweep_V : V;
-fun sweep_V2 : V2;
-fun sweeper_N : N;
-fun sweeping_A : A;
-fun sweeping_N : N;
-fun sweepingly_Adv : Adv;
-fun sweet_A : A;
-fun sweet_N : N;
-fun sweet_scented_A : A;
-fun sweetbread_N : N;
-fun sweetbriar_N : N;
-fun sweetbrier_N : N;
-fun sweeten_V : V;
-fun sweeten_V2 : V2;
-fun sweetening_N : N;
-fun sweetheart_N : N;
-fun sweetie_N : N;
-fun sweetish_A : A;
-fun sweetly_Adv : Adv;
-fun sweetmeat_N : N;
-fun sweetness_N : N;
-fun swell_A : A;
-fun swell_N : N;
-fun swell_V : V;
-fun swell_V2 : V2;
-fun swelling_N : N;
-fun swelter_V : V;
-fun sweptback_A : A;
-fun swerve_N : N;
-fun swerve_V : V;
-fun swerve_V2 : V2;
-fun swift_A : A;
-fun swift_N : N;
-fun swiftly_Adv : Adv;
-fun swiftness_N : N;
-fun swig_N : N;
-fun swig_V : V;
-fun swig_V2 : V2;
-fun swill_N : N;
-fun swill_V : V;
-fun swill_V2 : V2;
-fun swim_N : N;
-fun swim_V : V;
-fun swim_V2 : V2;
-fun swimmer_N : N;
-fun swimming_N : N;
-fun swimming_bath_N : N;
-fun swimming_costume_N : N;
-fun swimming_pool_N : N;
-fun swimmingly_Adv : Adv;
-fun swimsuit_N : N;
-fun swindle_N : N;
-fun swindle_V : V;
-fun swindle_V2 : V2;
-fun swindler_N : N;
-fun swindon_PN : PN;
-fun swine_N : N;
-fun swineherd_N : N;
-fun swing_N : N;
-fun swing_V : V;
-fun swing_V2 : V2;
-fun swinge_V2 : V2;
-fun swingeing_A : A;
-fun swinging_A : A;
-fun swinish_A : A;
-fun swinton_PN : PN;
-fun swipe_N : N;
-fun swipe_V2 : V2;
-fun swirl_N : N;
-fun swirl_V : V;
-fun swirl_V2 : V2;
-fun swish_A : A;
-fun swish_N : N;
-fun swish_V : V;
-fun swish_V2 : V2;
-fun swiss_A : A;
-fun swiss_N : N;
-fun switch_N : N;
-fun switch_V : V;
-fun switch_V2 : V2;
-fun switchboard_N : N;
-fun switchman_N : N;
-fun switzerland_PN : PN;
-fun swivel_N : N;
-fun swivel_V : V;
-fun swivel_V2 : V2;
-fun swiz_N : N;
-fun swizzle_N : N;
-fun swizzle_stick_N : N;
-fun swob_N : N;
-fun swob_V2 : V2;
-fun swollen_headed_A : A;
-fun swoon_N : N;
-fun swoon_V : V;
-fun swoop_N : N;
-fun swoop_V : V;
-fun swoop_V2 : V2;
-fun swop_N : N;
-fun swop_V : V;
-fun swop_V2 : V2;
-fun sword_N : N;
-fun sword_cane_N : N;
-fun sword_cut_N : N;
-fun sword_dance_N : N;
-fun swordfish_N : N;
-fun swordplay_N : N;
-fun swordsman_N : N;
-fun swordsmanship_N : N;
-fun swordstick_N : N;
-fun sworn_A : A;
-fun swot_N : N;
-fun swot_V : V;
-fun swot_V2 : V2;
-fun sybarite_N : N;
-fun sybaritic_A : A;
-fun sycamore_N : N;
-fun sycophancy_N : N;
-fun sycophant_N : N;
-fun sycophantic_A : A;
-fun sydney_PN : PN;
-fun syllabary_N : N;
-fun syllabic_A : A;
-fun syllabicate_V2 : V2;
-fun syllabication_N : N;
-fun syllabification_N : N;
-fun syllabify_V2 : V2;
-fun syllabize_V2 : V2;
-fun syllable_N : N;
-fun syllabled_A : A;
-fun syllabus_N : N;
-fun syllogism_N : N;
-fun syllogistic_A : A;
-fun sylph_N : N;
-fun sylph_like_A : A;
-fun sylvan_A : A;
-fun sylvia_PN : PN;
-fun symbiosis_N : N;
-fun symbol_N : N;
-fun symbolic_A : A;
-fun symbolical_A : A;
-fun symbolically_Adv : Adv;
-fun symbolism_N : N;
-fun symbolization_N : N;
-fun symbolize_V2 : V2;
-fun symmetric_A : A;
-fun symmetrical_A : A;
-fun symmetrically_Adv : Adv;
-fun symmetry_N : N;
-fun sympathetic_A : A;
-fun sympathetically_Adv : Adv;
-fun sympathize_V : V;
-fun sympathizer_N : N;
-fun sympathy_N : N;
-fun symphonic_A : A;
-fun symphony_N : N;
-fun symposium_N : N;
-fun symptom_N : N;
-fun symptomatic_A : A;
-fun symptomatically_Adv : Adv;
-fun symptomless_A : A;
-fun synagogue_N : N;
-fun synchroflash_N : N;
-fun synchromesh_N : N;
-fun synchronization_N : N;
-fun synchronize_V : V;
-fun synchronize_V2 : V2;
-fun synchronous_A : A;
-fun synchronously_Adv : Adv;
-fun synchrony_N : N;
-fun synchrotron_N : N;
-fun syncopate_V2 : V2;
-fun syncopation_N : N;
-fun syncope_N : N;
-fun syndic_N : N;
-fun syndicalism_N : N;
-fun syndicalist_N : N;
-fun syndicate_N : N;
-fun syndicate_V2 : V2;
-fun syndication_N : N;
-fun syndrome_N : N;
-fun synod_N : N;
-fun synonym_N : N;
-fun synonymous_A : A;
-fun synopsis_N : N;
-fun synoptic_A : A;
-fun synoptically_Adv : Adv;
-fun syntactic_A : A;
-fun syntactically_Adv : Adv;
-fun syntax_N : N;
-fun synthesis_N : N;
-fun synthesize_V2 : V2;
-fun synthetic_A : A;
-fun synthetic_N : N;
-fun synthetically_Adv : Adv;
-fun syphilis_N : N;
-fun syphilitic_A : A;
-fun syphilitic_N : N;
-fun syphon_N : N;
-fun syphon_V : V;
-fun syphon_V2 : V2;
-fun syracuse_PN : PN;
-fun syria_PN : PN;
-fun syrian_A : A;
-fun syrian_N : N;
-fun syringa_N : N;
-fun syringe_N : N;
-fun syringe_V2 : V2;
-fun syrup_N : N;
-fun syrupy_A : A;
-fun system_N : N;
-fun systematic_A : A;
-fun systematically_Adv : Adv;
-fun systematization_N : N;
-fun systematize_V2 : V2;
-fun syston_PN : PN;
-fun seance_N : N;
-fun t_junction_N : N;
-fun t_shirt_N : N;
-fun t_square_N : N;
-fun tab_N : N;
-fun tabard_N : N;
-fun tabby_A : A;
-fun tabby_N : N;
-fun tabby_cat_N : N;
-fun tabernacle_N : N;
-fun table_N : N;
-fun table_V2 : V2;
-fun table_d'hote_A : A;
-fun table_d'hote_Adv : Adv;
-fun table_knife_N : N;
-fun table_lifting_N : N;
-fun table_linen_N : N;
-fun table_rapping_N : N;
-fun table_talk_N : N;
-fun table_turning_N : N;
-fun tableau_N : N;
-fun tableau_vivant_N : N;
-fun tablecloth_N : N;
-fun tablemat_N : N;
-fun tablespoon_N : N;
-fun tablespoonful_N : N;
-fun tablet_N : N;
-fun tableware_N : N;
-fun tabloid_N : N;
-fun taboo_A : A;
-fun taboo_N : N;
-fun taboo_V2 : V2;
-fun tabor_N : N;
-fun tabular_A : A;
-fun tabulate_V2 : V2;
-fun tabulation_N : N;
-fun tabulator_N : N;
-fun tachograph_N : N;
-fun tacit_A : A;
-fun tacitly_Adv : Adv;
-fun taciturn_A : A;
-fun taciturnity_N : N;
-fun taciturnly_Adv : Adv;
-fun tack_N : N;
-fun tack_V : V;
-fun tack_V2 : V2;
-fun tackle_N : N;
-fun tackle_V : V;
-fun tackle_V2 : V2;
-fun tacky_A : A;
-fun tact_N : N;
-fun tactful_A : A;
-fun tactfully_Adv : Adv;
-fun tactic_N : N;
-fun tactical_A : A;
-fun tactically_Adv : Adv;
-fun tactician_N : N;
-fun tactile_A : A;
-fun tactless_A : A;
-fun tactlessly_Adv : Adv;
-fun tactlessness_N : N;
-fun tactual_A : A;
-fun tadley_PN : PN;
-fun tadpole_N : N;
-fun taegu_PN : PN;
-fun taffeta_N : N;
-fun taffrail_N : N;
-fun taffy_N : N;
-fun tag_N : N;
-fun tag_V : V;
-fun tag_V2 : V2;
-fun tahiti_PN : PN;
-fun tahitian_A : A;
-fun tahitian_N : N;
-fun tail_N : N;
-fun tail_V : V;
-fun tail_V2 : V2;
-fun tail_coat_N : N;
-fun tail_end_N : N;
-fun tail_light_N : N;
-fun tailboard_N : N;
-fun tailed_A : A;
-fun tailgate_N : N;
-fun tailless_A : A;
-fun tailor_N : N;
-fun tailor_V2 : V2;
-fun tailor_made_A : A;
-fun tailpiece_N : N;
-fun tailplane_N : N;
-fun tailspin_N : N;
-fun taint_N : N;
-fun taint_V : V;
-fun taint_V2 : V2;
-fun taintless_A : A;
-fun taipei_PN : PN;
-fun taiwan_PN : PN;
-fun taiwanese_A : A;
-fun taiwanese_N : N;
-fun taiyuan_PN : PN;
-fun take_N : N;
-fun take_V : V;
-fun take_V2 : V2;
-fun take_home_A : A;
-fun take_off_N : N;
-fun take_up_N : N;
-fun takeaway_A : A;
-fun takeover_N : N;
-fun taker_N : N;
-fun taking_A : A;
-fun talc_N : N;
-fun talcum_N : N;
-fun tale_N : N;
-fun tale_bearer_N : N;
-fun tale_teller_N : N;
-fun talent_N : N;
-fun talented_A : A;
-fun talisman_N : N;
-fun talk_N : N;
-fun talk_V : V;
-fun talk_V2 : V2;
-fun talkative_A : A;
-fun talker_N : N;
-fun talkie_N : N;
-fun talking_point_N : N;
-fun talking_to_N : N;
-fun tall_A : A;
-fun tallboy_N : N;
-fun tallish_A : A;
-fun tallow_N : N;
-fun tally_N : N;
-fun tally_V : V;
-fun tally_clerk_N : N;
-fun tallyman_N : N;
-fun talmud_N : N;
-fun talon_N : N;
-fun talus_N : N;
-fun tam_o'_shanter_N : N;
-fun tamable_A : A;
-fun tamale_N : N;
-fun tamarind_N : N;
-fun tamarisk_N : N;
-fun tambour_N : N;
-fun tambourine_N : N;
-fun tame_A : A;
-fun tame_V2 : V2;
-fun tamely_Adv : Adv;
-fun tameness_N : N;
-fun tamer_N : N;
-fun tamil_A : A;
-fun tamil_N : N;
-fun tammany_N : N;
-fun tammy_N : N;
-fun tamp_V2 : V2;
-fun tamper_V : V;
-fun tampere_PN : PN;
-fun tamworth_PN : PN;
-fun tan_A : A;
-fun tan_N : N;
-fun tan_V : V;
-fun tan_V2 : V2;
-fun tandem_Adv : Adv;
-fun tandem_N : N;
-fun tang_N : N;
-fun tangent_N : N;
-fun tangerine_A : A;
-fun tangerine_N : N;
-fun tangibility_N : N;
-fun tangible_A : A;
-fun tangibly_Adv : Adv;
-fun tangle_N : N;
-fun tangle_V : V;
-fun tangle_V2 : V2;
-fun tango_N : N;
-fun tangshan_PN : PN;
-fun tangy_A : A;
-fun tank_N : N;
-fun tank_V : V;
-fun tank_car_N : N;
-fun tankard_N : N;
-fun tanker_N : N;
-fun tanner_N : N;
-fun tannery_N : N;
-fun tannic_A : A;
-fun tannin_N : N;
-fun tannoy_N : N;
-fun tansy_N : N;
-fun tantalize_V2 : V2;
-fun tantamount_A : A;
-fun tantrum_N : N;
-fun tanzania_PN : PN;
-fun tanzanian_A : A;
-fun tanzanian_N : N;
-fun tap_N : N;
-fun tap_V : V;
-fun tap_V2 : V2;
-fun tap_dancing_N : N;
-fun tape_N : N;
-fun tape_V2 : V2;
-fun tape_measure_N : N;
-fun tape_recorder_N : N;
-fun taper_N : N;
-fun taper_V : V;
-fun taper_V2 : V2;
-fun tapestried_A : A;
-fun tapestry_N : N;
-fun tapeworm_N : N;
-fun tapioca_N : N;
-fun tapir_N : N;
-fun taproom_N : N;
-fun taproot_N : N;
-fun tapster_N : N;
-fun tar_N : N;
-fun tar_V2 : V2;
-fun tar_macadam_N : N;
-fun taradiddle_N : N;
-fun taranaki_PN : PN;
-fun tarantella_N : N;
-fun tarantelle_N : N;
-fun taranto_PN : PN;
-fun tarantula_N : N;
-fun tarboosh_N : N;
-fun tardily_Adv : Adv;
-fun tardiness_N : N;
-fun tardy_A : A;
-fun tare_N : N;
-fun target_N : N;
-fun tariff_N : N;
-fun tarmac_N : N;
-fun tarmac_V2 : V2;
-fun tarn_N : N;
-fun tarnish_N : N;
-fun tarnish_V : V;
-fun tarnish_V2 : V2;
-fun taro_N : N;
-fun tarpaulin_N : N;
-fun tarpon_N : N;
-fun tarradiddle_N : N;
-fun tarragon_N : N;
-fun tarrasa_PN : PN;
-fun tarry_A : A;
-fun tarry_V : V;
-fun tarsal_A : A;
-fun tarsal_N : N;
-fun tarsus_N : N;
-fun tart_A : A;
-fun tart_N : N;
-fun tart_V2 : V2;
-fun tartan_N : N;
-fun tartar_N : N;
-fun tartaric_A : A;
-fun tartly_Adv : Adv;
-fun tartness_N : N;
-fun tashkent_PN : PN;
-fun task_N : N;
-fun task_V2 : V2;
-fun task_force_N : N;
-fun taskmaster_N : N;
-fun tasmania_PN : PN;
-fun tassel_N : N;
-fun tasseled_A : A;
-fun tasselled_A : A;
-fun taste_N : N;
-fun taste_V : V;
-fun taste_V2 : V2;
-fun tasteful_A : A;
-fun tastefully_Adv : Adv;
-fun tasteless_A : A;
-fun tastelessly_Adv : Adv;
-fun taster_N : N;
-fun tastily_Adv : Adv;
-fun tasty_A : A;
-fun tat_N : N;
-fun tat_V : V;
-fun tat_V2 : V2;
-fun tatter_N : N;
-fun tatterdemalion_N : N;
-fun tattered_A : A;
-fun tattily_Adv : Adv;
-fun tatting_N : N;
-fun tattle_N : N;
-fun tattle_V : V;
-fun tattle_V2 : V2;
-fun tattler_N : N;
-fun tattoo_N : N;
-fun tattoo_V2 : V2;
-fun tatty_A : A;
-fun taunt_N : N;
-fun taunt_V2 : V2;
-fun tauntingly_Adv : Adv;
-fun taunton_PN : PN;
-fun taurus_PN : PN;
-fun taut_A : A;
-fun tautly_Adv : Adv;
-fun tautness_N : N;
-fun tautological_A : A;
-fun tautology_N : N;
-fun taverham_PN : PN;
-fun tavern_N : N;
-fun tavistock_PN : PN;
-fun tawdrily_Adv : Adv;
-fun tawdriness_N : N;
-fun tawdry_A : A;
-fun tawny_A : A;
-fun tawse_N : N;
-fun tax_N : N;
-fun tax_V2 : V2;
-fun tax_collector_N : N;
-fun tax_free_A : A;
-fun taxability_N : N;
-fun taxable_A : A;
-fun taxation_N : N;
-fun taxi_N : N;
-fun taxi_V : V;
-fun taxi_V2 : V2;
-fun taxicab_N : N;
-fun taxidermist_N : N;
-fun taxidermy_N : N;
-fun taximeter_N : N;
-fun taxonomy_N : N;
-fun taxpayer_N : N;
-fun tayside_PN : PN;
-fun tb_N : N;
-fun tbilisi_PN : PN;
-fun te_deum_N : N;
-fun tea_N : N;
-fun tea_bag_N : N;
-fun tea_break_N : N;
-fun tea_caddy_N : N;
-fun tea_chest_N : N;
-fun tea_cloth_N : N;
-fun tea_cosy_N : N;
-fun tea_garden_N : N;
-fun tea_kettle_N : N;
-fun tea_leaf_N : N;
-fun tea_party_N : N;
-fun tea_service_N : N;
-fun tea_set_N : N;
-fun tea_strainer_N : N;
-fun tea_table_N : N;
-fun tea_time_N : N;
-fun tea_towel_N : N;
-fun tea_tray_N : N;
-fun tea_trolley_N : N;
-fun tea_urn_N : N;
-fun tea_wagon_N : N;
-fun teacake_N : N;
-fun teach_V : V;
-fun teach_V2 : V2;
-fun teach_in_N : N;
-fun teachable_A : A;
-fun teacher_N : N;
-fun teaching_N : N;
-fun teacup_N : N;
-fun teahouse_N : N;
-fun teak_N : N;
-fun teal_N : N;
-fun team_N : N;
-fun team_V : V;
-fun teamster_N : N;
-fun teamwork_N : N;
-fun teapot_N : N;
-fun tear_N : N;
-fun tear_V : V;
-fun tear_V2 : V2;
-fun tear_drop_N : N;
-fun tear_gas_N : N;
-fun tearaway_A : A;
-fun tearaway_N : N;
-fun tearful_A : A;
-fun tearfully_Adv : Adv;
-fun tearing_A : A;
-fun tearing_N : N;
-fun tearless_A : A;
-fun tearoom_N : N;
-fun tease_N : N;
-fun tease_V2 : V2;
-fun teasel_N : N;
-fun teaser_N : N;
-fun teashop_N : N;
-fun teasingly_Adv : Adv;
-fun teaspoon_N : N;
-fun teaspoonful_N : N;
-fun teat_N : N;
-fun teazel_N : N;
-fun teazle_N : N;
-fun tec_N : N;
-fun tech_N : N;
-fun technical_A : A;
-fun technicality_N : N;
-fun technically_Adv : Adv;
-fun technician_N : N;
-fun technicolor_N : N;
-fun technique_N : N;
-fun technocracy_N : N;
-fun technocrat_N : N;
-fun technological_A : A;
-fun technologist_N : N;
-fun technology_N : N;
-fun techy_A : A;
-fun ted_N : N;
-fun ted_PN : PN;
-fun teddy_N : N;
-fun teddy_PN : PN;
-fun teddy_boy_N : N;
-fun tedious_A : A;
-fun tediously_Adv : Adv;
-fun tediousness_N : N;
-fun tedium_N : N;
-fun tee_N : N;
-fun tee_V : V;
-fun tee_V2 : V2;
-fun tee_shirt_N : N;
-fun teem_V : V;
-fun teenage_A : A;
-fun teenager_N : N;
-fun teeny_A : A;
-fun teesside_PN : PN;
-fun teeter_V : V;
-fun teethe_V : V;
-fun teetotal_A : A;
-fun teetotaller_N : N;
-fun teetotum_N : N;
-fun teg_N : N;
-fun tegument_N : N;
-fun teheran_PN : PN;
-fun teignmouth_PN : PN;
-fun tel_PN : PN;
-fun tel_aviv_PN : PN;
-fun telecast_N : N;
-fun telecast_V2 : V2;
-fun telecommunication_N : N;
-fun telegram_N : N;
-fun telegraph_N : N;
-fun telegraph_V : V;
-fun telegraph_V2 : V2;
-fun telegraph_line_N : N;
-fun telegraph_pole_N : N;
-fun telegraph_post_N : N;
-fun telegraph_wire_N : N;
-fun telegrapher_N : N;
-fun telegraphese_N : N;
-fun telegraphic_A : A;
-fun telegraphically_Adv : Adv;
-fun telegraphist_N : N;
-fun telegraphy_N : N;
-fun telemetry_N : N;
-fun teleological_A : A;
-fun teleologist_N : N;
-fun teleology_N : N;
-fun telepathic_A : A;
-fun telepathist_N : N;
-fun telepathy_N : N;
-fun telephone_N : N;
-fun telephone_V : V;
-fun telephone_V2 : V2;
-fun telephonic_A : A;
-fun telephonist_N : N;
-fun telephony_N : N;
-fun telephoto_N : N;
-fun telephotograph_N : N;
-fun telephotography_N : N;
-fun teleprinter_N : N;
-fun teleprompter_N : N;
-fun telescope_N : N;
-fun telescope_V : V;
-fun telescope_V2 : V2;
-fun telescopic_A : A;
-fun telescopically_Adv : Adv;
-fun teletypewriter_N : N;
-fun televise_V2 : V2;
-fun television_N : N;
-fun telex_N : N;
-fun telfer_N : N;
-fun telford_PN : PN;
-fun tell_V : V;
-fun tell_V2 : V2;
-fun teller_N : N;
-fun telling_A : A;
-fun tellingly_Adv : Adv;
-fun telltale_N : N;
-fun telly_N : N;
-fun telpher_N : N;
-fun telstar_PN : PN;
-fun temerity_N : N;
-fun temp_N : N;
-fun temper_N : N;
-fun temper_V : V;
-fun temper_V2 : V2;
-fun tempera_N : N;
-fun temperament_N : N;
-fun temperamental_A : A;
-fun temperamentally_Adv : Adv;
-fun temperance_N : N;
-fun temperate_A : A;
-fun temperately_Adv : Adv;
-fun temperateness_N : N;
-fun temperature_N : N;
-fun tempered_A : A;
-fun tempest_N : N;
-fun tempest_swept_A : A;
-fun tempest_tossed_A : A;
-fun tempestuous_A : A;
-fun template_N : N;
-fun temple_N : N;
-fun templet_N : N;
-fun tempo_N : N;
-fun temporal_A : A;
-fun temporality_N : N;
-fun temporalty_N : N;
-fun temporarily_Adv : Adv;
-fun temporariness_N : N;
-fun temporary_A : A;
-fun temporize_V : V;
-fun tempt_V2 : V2;
-fun temptation_N : N;
-fun tempter_N : N;
-fun temptingly_Adv : Adv;
-fun temptress_N : N;
-fun tenability_N : N;
-fun tenable_A : A;
-fun tenacious_A : A;
-fun tenaciously_Adv : Adv;
-fun tenaciousness_N : N;
-fun tenacity_N : N;
-fun tenancy_N : N;
-fun tenant_N : N;
-fun tenant_V2 : V2;
-fun tenantry_N : N;
-fun tenby_PN : PN;
-fun tench_N : N;
-fun tend_V : V;
-fun tend_V2 : V2;
-fun tendency_N : N;
-fun tendentious_A : A;
-fun tendentiously_Adv : Adv;
-fun tendentiousness_N : N;
-fun tender_A : A;
-fun tender_N : N;
-fun tender_V : V;
-fun tender_V2 : V2;
-fun tenderfoot_N : N;
-fun tenderhearted_A : A;
-fun tenderloin_N : N;
-fun tenderly_Adv : Adv;
-fun tenderness_N : N;
-fun tendon_N : N;
-fun tendril_N : N;
-fun tenement_N : N;
-fun tenement_house_N : N;
-fun tenet_N : N;
-fun tenfold_Adv : Adv;
-fun tenner_N : N;
-fun tennessee_PN : PN;
-fun tennis_N : N;
-fun tennis_court_N : N;
-fun tennis_elbow_N : N;
-fun tenon_N : N;
-fun tenor_N : N;
-fun tenpence_N : N;
-fun tenpin_N : N;
-fun tense_A : A;
-fun tense_N : N;
-fun tense_V : V;
-fun tense_V2 : V2;
-fun tensely_Adv : Adv;
-fun tenseness_N : N;
-fun tensile_A : A;
-fun tension_N : N;
-fun tensity_N : N;
-fun tent_N : N;
-fun tent_peg_N : N;
-fun tentacle_N : N;
-fun tentative_A : A;
-fun tentatively_Adv : Adv;
-fun tenterden_PN : PN;
-fun tenth_A : A;
-fun tenth_N : N;
-fun tenthly_Adv : Adv;
-fun tenuity_N : N;
-fun tenuous_A : A;
-fun tenuously_Adv : Adv;
-fun tenure_N : N;
-fun tepee_N : N;
-fun tepid_A : A;
-fun tepidity_N : N;
-fun tepidly_Adv : Adv;
-fun tepidness_N : N;
-fun tercentenary_N : N;
-fun tercentennial_N : N;
-fun terence_PN : PN;
-fun teresa_PN : PN;
-fun tergiversate_V : V;
-fun tergiversation_N : N;
-fun term_N : N;
-fun term_V2 : V2;
-fun termagant_N : N;
-fun termi_PN : PN;
-fun terminable_A : A;
-fun terminal_A : A;
-fun terminal_N : N;
-fun terminally_Adv : Adv;
-fun terminate_V : V;
-fun terminate_V2 : V2;
-fun termination_N : N;
-fun terminological_A : A;
-fun terminology_N : N;
-fun terminus_N : N;
-fun termite_N : N;
-fun tern_N : N;
-fun terpsichorean_A : A;
-fun terr_PN : PN;
-fun terra_cotta_N : N;
-fun terra_firma_N : N;
-fun terra_incognita_N : N;
-fun terrace_N : N;
-fun terrace_V2 : V2;
-fun terrain_N : N;
-fun terrapin_N : N;
-fun terrestrial_A : A;
-fun terrible_A : A;
-fun terribly_Adv : Adv;
-fun terrier_N : N;
-fun terrific_A : A;
-fun terrifically_Adv : Adv;
-fun terrify_V2 : V2;
-fun territorial_A : A;
-fun territorial_N : N;
-fun territory_N : N;
-fun terror_N : N;
-fun terror_stricken_A : A;
-fun terror_struck_A : A;
-fun terrorism_N : N;
-fun terrorist_N : N;
-fun terrorize_V2 : V2;
-fun terry_PN : PN;
-fun terse_A : A;
-fun tersely_Adv : Adv;
-fun terseness_N : N;
-fun tertian_A : A;
-fun tertiary_A : A;
-fun terylene_N : N;
-fun tess_PN : PN;
-fun tessa_PN : PN;
-fun tessellated_A : A;
-fun test_N : N;
-fun test_V2 : V2;
-fun test_drive_N : N;
-fun test_drive_V2 : V2;
-fun test_tube_N : N;
-fun testament_N : N;
-fun testamentary_A : A;
-fun testate_A : A;
-fun testate_N : N;
-fun testator_N : N;
-fun testatrix_N : N;
-fun testbed_N : N;
-fun testicle_N : N;
-fun testify_V : V;
-fun testify_V2 : V2;
-fun testily_Adv : Adv;
-fun testimonial_N : N;
-fun testimony_N : N;
-fun testiness_N : N;
-fun testis_N : N;
-fun testy_A : A;
-fun tetanus_N : N;
-fun tetchily_Adv : Adv;
-fun tetchiness_N : N;
-fun tetchy_A : A;
-fun tether_N : N;
-fun tether_V2 : V2;
-fun teuton_N : N;
-fun teutonic_A : A;
-fun tewkesbury_PN : PN;
-fun texan_A : A;
-fun texan_N : N;
-fun texas_PN : PN;
-fun text_N : N;
-fun textbook_N : N;
-fun textile_A : A;
-fun textile_N : N;
-fun textual_A : A;
-fun texture_N : N;
-fun textured_A : A;
-fun thai_A : A;
-fun thai_N : N;
-fun thailand_PN : PN;
-fun thalidomide_N : N;
-fun thame_PN : PN;
-fun thane_N : N;
-fun thank_V2 : V2;
-fun thank_offering_N : N;
-fun thankful_A : A;
-fun thankfully_Adv : Adv;
-fun thankfulness_N : N;
-fun thankless_A : A;
-fun thanksgiving_N : N;
-fun thatch_N : N;
-fun thatch_V2 : V2;
-fun thatcham_PN : PN;
-fun thatcher_N : N;
-fun thaw_N : N;
-fun thaw_V : V;
-fun thaw_V2 : V2;
-fun theatre_N : N;
-fun theatregoer_N : N;
-fun theatrical_A : A;
-fun theatrical_N : N;
-fun theatrically_Adv : Adv;
-fun theft_N : N;
-fun theism_N : N;
-fun theist_N : N;
-fun theistic_A : A;
-fun theistical_A : A;
-fun thematic_A : A;
-fun theme_N : N;
-fun then_Adv : Adv;
-fun thence_Adv : Adv;
-fun thenceforth_Adv : Adv;
-fun thenceforward_Adv : Adv;
-fun theo_PN : PN;
-fun theocracy_N : N;
-fun theocratic_A : A;
-fun theodolite_N : N;
-fun theodore_PN : PN;
-fun theologian_N : N;
-fun theological_A : A;
-fun theologically_Adv : Adv;
-fun theology_N : N;
-fun theorem_N : N;
-fun theoretic_A : A;
-fun theoretical_A : A;
-fun theoretically_Adv : Adv;
-fun theoretician_N : N;
-fun theorist_N : N;
-fun theorize_V : V;
-fun theory_N : N;
-fun theosophical_A : A;
-fun theosophist_N : N;
-fun theosophy_N : N;
-fun therapeutic_A : A;
-fun therapeutical_A : A;
-fun therapeutics_N : N;
-fun therapist_N : N;
-fun therapy_N : N;
-fun thereabout_Adv : Adv;
-fun thereabouts_Adv : Adv;
-fun thereafter_Adv : Adv;
-fun thereby_Adv : Adv;
-fun therefore_Adv : Adv;
-fun therefrom_Adv : Adv;
-fun therein_Adv : Adv;
-fun thereinafter_Adv : Adv;
-fun thereof_Adv : Adv;
-fun thereon_Adv : Adv;
-fun theresa_PN : PN;
-fun thereto_Adv : Adv;
-fun thereunder_Adv : Adv;
-fun thereupon_Adv : Adv;
-fun therewith_Adv : Adv;
-fun therewithal_Adv : Adv;
-fun therm_N : N;
-fun thermal_A : A;
-fun thermal_N : N;
-fun thermally_Adv : Adv;
-fun thermionic_A : A;
-fun thermodynamics_N : N;
-fun thermometer_N : N;
-fun thermonuclear_A : A;
-fun thermoplastic_A : A;
-fun thermoplastic_N : N;
-fun thermos_N : N;
-fun thermosetting_A : A;
-fun thermostat_N : N;
-fun thermostatic_A : A;
-fun thermostatically_Adv : Adv;
-fun thesaurus_N : N;
-fun thesis_N : N;
-fun thespian_A : A;
-fun thespian_N : N;
-fun thessaloniki_PN : PN;
-fun thetford_PN : PN;
-fun thick_A : A;
-fun thick_Adv : Adv;
-fun thick_N : N;
-fun thick_headed_A : A;
-fun thick_set_A : A;
-fun thick_skinned_A : A;
-fun thicken_V : V;
-fun thicken_V2 : V2;
-fun thickening_N : N;
-fun thicket_N : N;
-fun thickly_Adv : Adv;
-fun thickness_N : N;
-fun thief_N : N;
-fun thieve_V : V;
-fun thieve_V2 : V2;
-fun thievery_N : N;
-fun thievish_A : A;
-fun thievishly_Adv : Adv;
-fun thigh_N : N;
-fun thighbone_N : N;
-fun thimble_N : N;
-fun thimbleful_N : N;
-fun thin_A : A;
-fun thin_Adv : Adv;
-fun thin_V : V;
-fun thin_V2 : V2;
-fun thin_skinned_A : A;
-fun thine_A : A;
-fun thing_N : N;
-fun thingmabob_N : N;
-fun thingmajig_N : N;
-fun thingumabob_N : N;
-fun thingumajig_N : N;
-fun thingummy_N : N;
-fun think_N : N;
-fun think_V : V;
-fun think_V2 : V2;
-fun think_tank_N : N;
-fun thinkable_A : A;
-fun thinker_N : N;
-fun thinking_A : A;
-fun thinking_N : N;
-fun thinly_Adv : Adv;
-fun thinness_N : N;
-fun thionville_PN : PN;
-fun third_rate_A : A;
-fun third_rater_N : N;
-fun thirdly_Adv : Adv;
-fun thirsk_PN : PN;
-fun thirst_N : N;
-fun thirst_V2 : V2;
-fun thirstily_Adv : Adv;
-fun thirsty_A : A;
-fun thistle_N : N;
-fun thistledown_N : N;
-fun thither_Adv : Adv;
-fun tho'_Adv : Adv;
-fun thole_N : N;
-fun tholepin_N : N;
-fun thomas_PN : PN;
-fun thong_N : N;
-fun thorax_N : N;
-fun thorn_N : N;
-fun thornbury_PN : PN;
-fun thorne_PN : PN;
-fun thorny_A : A;
-fun thorough_A : A;
-fun thoroughbred_A : A;
-fun thoroughbred_N : N;
-fun thoroughfare_N : N;
-fun thoroughgoing_A : A;
-fun thoroughly_Adv : Adv;
-fun thoroughness_N : N;
-fun though_Adv : Adv;
-fun thought_N : N;
-fun thought_reader_N : N;
-fun thoughtful_A : A;
-fun thoughtfully_Adv : Adv;
-fun thoughtfulness_N : N;
-fun thoughtless_A : A;
-fun thoughtlessly_Adv : Adv;
-fun thoughtlessness_N : N;
-fun thousandfold_A : A;
-fun thousandfold_Adv : Adv;
-fun thousandth_A : A;
-fun thousandth_N : N;
-fun thraldom_N : N;
-fun thrall_N : N;
-fun thrash_V : V;
-fun thrash_V2 : V2;
-fun thrashing_N : N;
-fun thread_N : N;
-fun thread_V2 : V2;
-fun threadbare_A : A;
-fun threadlike_A : A;
-fun threat_N : N;
-fun threaten_V : V;
-fun threaten_V2 : V2;
-fun threateningly_Adv : Adv;
-fun three_cornered_A : A;
-fun three_d_A : A;
-fun three_d_N : N;
-fun three_decker_N : N;
-fun three_dimensional_A : A;
-fun three_figure_A : A;
-fun three_funnelled_A : A;
-fun three_lane_A : A;
-fun three_legged_A : A;
-fun three_piece_A : A;
-fun three_ply_A : A;
-fun three_quarter_A : A;
-fun three_quarter_N : N;
-fun three_score_A : A;
-fun three_score_N : N;
-fun three_storey_A : A;
-fun three_storeyed_A : A;
-fun three_wheeled_A : A;
-fun threefold_A : A;
-fun threefold_Adv : Adv;
-fun threepence_N : N;
-fun threepenny_A : A;
-fun threesome_N : N;
-fun threnody_N : N;
-fun thresh_V : V;
-fun thresh_V2 : V2;
-fun thresher_N : N;
-fun threshing_floor_N : N;
-fun threshing_machine_N : N;
-fun threshold_N : N;
-fun thrice_Adv : Adv;
-fun thrift_N : N;
-fun thriftily_Adv : Adv;
-fun thriftless_A : A;
-fun thriftlessly_Adv : Adv;
-fun thriftlessness_N : N;
-fun thrifty_A : A;
-fun thrill_N : N;
-fun thrill_V : V;
-fun thrill_V2 : V2;
-fun thriller_N : N;
-fun thrive_V : V;
-fun throat_N : N;
-fun throated_A : A;
-fun throaty_A : A;
-fun throb_N : N;
-fun throb_V : V;
-fun throbbing_A : A;
-fun throe_N : N;
-fun thrombosis_N : N;
-fun throne_N : N;
-fun throng_N : N;
-fun throng_V : V;
-fun throng_V2 : V2;
-fun throstle_N : N;
-fun throttle_N : N;
-fun throttle_V : V;
-fun throttle_V2 : V2;
-fun throttle_valve_N : N;
-fun through_Adv : Adv;
-fun throughout_Adv : Adv;
-fun throughput_N : N;
-fun throughway_N : N;
-fun throw_N : N;
-fun throw_V : V;
-fun throw_V2 : V2;
-fun throw_in_N : N;
-fun throwaway_N : N;
-fun throwback_N : N;
-fun thrum_V : V;
-fun thrum_V2 : V2;
-fun thrush_N : N;
-fun thrust_N : N;
-fun thrust_V : V;
-fun thrust_V2 : V2;
-fun thruster_N : N;
-fun thud_N : N;
-fun thud_V : V;
-fun thug_N : N;
-fun thuggery_N : N;
-fun thumb_N : N;
-fun thumb_V2 : V2;
-fun thumbnut_N : N;
-fun thumbscrew_N : N;
-fun thumbstall_N : N;
-fun thumbtack_N : N;
-fun thump_N : N;
-fun thump_V : V;
-fun thump_V2 : V2;
-fun thumping_A : A;
-fun thunder_N : N;
-fun thunder_V : V;
-fun thunder_V2 : V2;
-fun thunderbolt_N : N;
-fun thunderclap_N : N;
-fun thunderous_A : A;
-fun thunderstorm_N : N;
-fun thunderstruck_A : A;
-fun thundery_A : A;
-fun thurcroft_PN : PN;
-fun thurible_N : N;
-fun thurmaston_PN : PN;
-fun thurrock_PN : PN;
-fun thurs_PN : PN;
-fun thursday_N : N;
-fun thursday_PN : PN;
-fun thurso_PN : PN;
-fun thus_Adv : Adv;
-fun thwack_N : N;
-fun thwack_V2 : V2;
-fun thwart_N : N;
-fun thwart_V2 : V2;
-fun thy_A : A;
-fun thyme_N : N;
-fun thyroid_N : N;
-fun ti_N : N;
-fun tiara_N : N;
-fun tibet_PN : PN;
-fun tibetan_A : A;
-fun tibetan_N : N;
-fun tibia_N : N;
-fun tic_N : N;
-fun tick_N : N;
-fun tick_V : V;
-fun tick_V2 : V2;
-fun tick_tock_N : N;
-fun ticker_N : N;
-fun ticker_tape_N : N;
-fun ticket_N : N;
-fun ticket_V2 : V2;
-fun ticket_collector_N : N;
-fun ticking_N : N;
-fun tickle_V : V;
-fun tickle_V2 : V2;
-fun tickler_N : N;
-fun ticklish_A : A;
-fun tidal_A : A;
-fun tidbit_N : N;
-fun tiddler_N : N;
-fun tiddley_A : A;
-fun tiddlywinks_N : N;
-fun tide_N : N;
-fun tide_V2 : V2;
-fun tidemark_N : N;
-fun tideway_N : N;
-fun tidily_Adv : Adv;
-fun tidiness_N : N;
-fun tidworth_PN : PN;
-fun tidy_A : A;
-fun tidy_N : N;
-fun tidy_V : V;
-fun tidy_V2 : V2;
-fun tie_N : N;
-fun tie_V : V;
-fun tie_V2 : V2;
-fun tie_on_A : A;
-fun tie_up_N : N;
-fun tientsin_PN : PN;
-fun tier_N : N;
-fun tiff_N : N;
-fun tiger_N : N;
-fun tiger_lily_N : N;
-fun tigerish_A : A;
-fun tight_A : A;
-fun tight_Adv : Adv;
-fun tight_laced_A : A;
-fun tight_lipped_A : A;
-fun tight_wad_N : N;
-fun tighten_V : V;
-fun tighten_V2 : V2;
-fun tightly_Adv : Adv;
-fun tightness_N : N;
-fun tightrope_N : N;
-fun tigress_N : N;
-fun tike_N : N;
-fun tilburg_PN : PN;
-fun tilbury_PN : PN;
-fun tilde_N : N;
-fun tile_N : N;
-fun tile_V2 : V2;
-fun till_N : N;
-fun till_V2 : V2;
-fun tillage_N : N;
-fun tiller_N : N;
-fun tilt_N : N;
-fun tilt_V : V;
-fun tilt_V2 : V2;
-fun tilth_N : N;
-fun tiltyard_N : N;
-fun tim_PN : PN;
-fun timber_N : N;
-fun timbered_A : A;
-fun timbre_N : N;
-fun timbrel_N : N;
-fun time_N : N;
-fun time_V2 : V2;
-fun time_ball_N : N;
-fun time_bomb_N : N;
-fun time_expired_A : A;
-fun time_exposure_N : N;
-fun time_fuse_N : N;
-fun time_honoured_A : A;
-fun time_lag_N : N;
-fun time_limit_N : N;
-fun time_sheet_N : N;
-fun time_signal_N : N;
-fun time_switch_N : N;
-fun timecard_N : N;
-fun timekeeper_N : N;
-fun timekeeping_N : N;
-fun timeless_A : A;
-fun timeliness_N : N;
-fun timely_A : A;
-fun timepiece_N : N;
-fun timesaving_A : A;
-fun timeserver_N : N;
-fun timeserving_A : A;
-fun timetable_N : N;
-fun timework_N : N;
-fun timid_A : A;
-fun timidity_N : N;
-fun timidly_Adv : Adv;
-fun timidness_N : N;
-fun timing_N : N;
-fun timmy_PN : PN;
-fun timorous_A : A;
-fun timorously_Adv : Adv;
-fun timothy_N : N;
-fun timothy_PN : PN;
-fun timpanist_N : N;
-fun tin_N : N;
-fun tin_V2 : V2;
-fun tin_opener_N : N;
-fun tin_pan_alley_N : N;
-fun tin_plate_N : N;
-fun tina_PN : PN;
-fun tincture_N : N;
-fun tincture_V2 : V2;
-fun tinder_N : N;
-fun tinderbox_N : N;
-fun tine_N : N;
-fun tined_A : A;
-fun tinfoil_N : N;
-fun ting_N : N;
-fun ting_V : V;
-fun ting_V2 : V2;
-fun tinge_N : N;
-fun tinge_V2 : V2;
-fun tingle_N : N;
-fun tingle_V : V;
-fun tinker_N : N;
-fun tinker_V : V;
-fun tinkle_N : N;
-fun tinkle_V : V;
-fun tinkle_V2 : V2;
-fun tinny_A : A;
-fun tinsel_N : N;
-fun tinsel_V2 : V2;
-fun tinselly_A : A;
-fun tinsmith_N : N;
-fun tint_N : N;
-fun tint_V2 : V2;
-fun tintack_N : N;
-fun tintinnabulation_N : N;
-fun tiny_A : A;
-fun tip_N : N;
-fun tip_V : V;
-fun tip_V2 : V2;
-fun tip_and_run_A : A;
-fun tip_off_N : N;
-fun tip_top_A : A;
-fun tip_top_Adv : Adv;
-fun tip_up_A : A;
-fun tipperary_PN : PN;
-fun tippet_N : N;
-fun tipple_N : N;
-fun tipple_V : V;
-fun tipple_V2 : V2;
-fun tippler_N : N;
-fun tipstaff_N : N;
-fun tipster_N : N;
-fun tipsy_A : A;
-fun tiptoe_Adv : Adv;
-fun tiptoe_V : V;
-fun tirade_N : N;
-fun tire_N : N;
-fun tire_V : V;
-fun tire_V2 : V2;
-fun tired_A : A;
-fun tiredness_N : N;
-fun tireless_A : A;
-fun tirelessly_Adv : Adv;
-fun tiresome_A : A;
-fun tiresomely_Adv : Adv;
-fun tiring_Adv : Adv;
-fun tiro_N : N;
-fun tissue_N : N;
-fun tit_N : N;
-fun titan_N : N;
-fun titanic_A : A;
-fun titbit_N : N;
-fun tithe_N : N;
-fun tithe_barn_N : N;
-fun titillate_V2 : V2;
-fun titillation_N : N;
-fun titivate_V : V;
-fun titivate_V2 : V2;
-fun titlark_N : N;
-fun title_N : N;
-fun title_deed_N : N;
-fun title_page_N : N;
-fun title_role_N : N;
-fun titled_A : A;
-fun titmouse_N : N;
-fun titter_V : V;
-fun tittivate_V : V;
-fun tittivate_V2 : V2;
-fun tittle_N : N;
-fun tittle_tattle_N : N;
-fun tittle_tattle_V : V;
-fun titular_A : A;
-fun tiverton_PN : PN;
-fun tizzy_N : N;
-fun tnt_N : N;
-fun to_Adv : Adv;
-fun to_do_N : N;
-fun toad_N : N;
-fun toad_in_the_hole_N : N;
-fun toadstool_N : N;
-fun toady_N : N;
-fun toady_V : V;
-fun toast_N : N;
-fun toast_V : V;
-fun toast_V2 : V2;
-fun toaster_N : N;
-fun toasting_fork_N : N;
-fun toastmaster_N : N;
-fun toastrack_N : N;
-fun tobacco_N : N;
-fun tobacconist_N : N;
-fun tobago_PN : PN;
-fun tobagonian_A : A;
-fun tobagonian_N : N;
-fun toboggan_N : N;
-fun toboggan_V : V;
-fun toby_PN : PN;
-fun toby_jug_N : N;
-fun toccata_N : N;
-fun tocsin_N : N;
-fun today_Adv : Adv;
-fun today_N : N;
-fun toddle_V : V;
-fun toddler_N : N;
-fun toddy_N : N;
-fun todmorden_PN : PN;
-fun toe_N : N;
-fun toe_V2 : V2;
-fun toecap_N : N;
-fun toehold_N : N;
-fun toenail_N : N;
-fun toff_N : N;
-fun toffee_N : N;
-fun tog_V2 : V2;
-fun toga_N : N;
-fun together_Adv : Adv;
-fun togetherness_N : N;
-fun toggle_N : N;
-fun togo_PN : PN;
-fun togolese_A : A;
-fun togolese_N : N;
-fun toil_N : N;
-fun toil_V : V;
-fun toiler_N : N;
-fun toilet_N : N;
-fun toilet_paper_N : N;
-fun toilet_powder_N : N;
-fun toilet_roll_N : N;
-fun toilet_table_N : N;
-fun toilsome_A : A;
-fun tokay_N : N;
-fun token_N : N;
-fun tokyo_PN : PN;
-fun tolerable_A : A;
-fun tolerably_Adv : Adv;
-fun tolerance_N : N;
-fun tolerant_A : A;
-fun tolerantly_Adv : Adv;
-fun tolerate_V2 : V2;
-fun toleration_N : N;
-fun toll_N : N;
-fun toll_V : V;
-fun toll_V2 : V2;
-fun tollbar_N : N;
-fun tollbooth_N : N;
-fun tollgate_N : N;
-fun tollhouse_N : N;
-fun tom_PN : PN;
-fun tomahawk_N : N;
-fun tomahawk_V2 : V2;
-fun tomato_N : N;
-fun tomb_N : N;
-fun tombola_N : N;
-fun tomboy_N : N;
-fun tombstone_N : N;
-fun tomcat_N : N;
-fun tome_N : N;
-fun tomfool_N : N;
-fun tomfoolery_N : N;
-fun tommy_PN : PN;
-fun tommy_gun_N : N;
-fun tommy_rot_N : N;
-fun tomorrow_Adv : Adv;
-fun tomorrow_N : N;
-fun tomtit_N : N;
-fun tomtom_N : N;
-fun ton_N : N;
-fun ton_V : V;
-fun tonal_A : A;
-fun tonality_N : N;
-fun tonbridge_PN : PN;
-fun tone_N : N;
-fun tone_V : V;
-fun tone_V2 : V2;
-fun tone_deaf_A : A;
-fun tone_poem_N : N;
-fun toned_A : A;
-fun toneless_A : A;
-fun tonelessly_Adv : Adv;
-fun tonga_PN : PN;
-fun tongan_A : A;
-fun tongan_N : N;
-fun tongue_N : N;
-fun tongue_in_cheek_A : A;
-fun tongue_in_cheek_Adv : Adv;
-fun tongue_tied_A : A;
-fun tongue_twister_N : N;
-fun tongued_A : A;
-fun tonic_A : A;
-fun tonic_N : N;
-fun tonic_sol_fa_N : N;
-fun tonight_Adv : Adv;
-fun tonight_N : N;
-fun tonnage_N : N;
-fun tonne_N : N;
-fun tonsil_N : N;
-fun tonsillitis_N : N;
-fun tonsorial_A : A;
-fun tonsure_N : N;
-fun tonsure_V2 : V2;
-fun tontine_N : N;
-fun tony_PN : PN;
-fun tonyrefail_PN : PN;
-fun too_Adv : Adv;
-fun tool_N : N;
-fun tool_V2 : V2;
-fun toot_N : N;
-fun toot_V : V;
-fun toot_V2 : V2;
-fun tooth_N : N;
-fun toothache_N : N;
-fun toothbrush_N : N;
-fun toothed_A : A;
-fun toothless_A : A;
-fun toothpaste_N : N;
-fun toothpick_N : N;
-fun toothpowder_N : N;
-fun toothsome_A : A;
-fun tootle_N : N;
-fun tootle_V : V;
-fun top_N : N;
-fun top_V2 : V2;
-fun top_boot_N : N;
-fun top_dress_V2 : V2;
-fun top_dressing_N : N;
-fun top_flight_A : A;
-fun top_heavy_A : A;
-fun top_hole_A : A;
-fun top_ranking_A : A;
-fun topaz_N : N;
-fun topcoat_N : N;
-fun tope_V : V;
-fun tope_V2 : V2;
-fun toper_N : N;
-fun topgallant_A : A;
-fun topgallant_N : N;
-fun topi_N : N;
-fun topiary_N : N;
-fun topic_N : N;
-fun topical_A : A;
-fun topically_Adv : Adv;
-fun topknot_N : N;
-fun topless_A : A;
-fun topmast_N : N;
-fun topmost_A : A;
-fun topnotch_A : A;
-fun topographical_A : A;
-fun topographically_Adv : Adv;
-fun topography_N : N;
-fun topper_N : N;
-fun topping_A : A;
-fun toppingly_Adv : Adv;
-fun topple_V : V;
-fun topple_V2 : V2;
-fun topsail_N : N;
-fun topsy_turvy_A : A;
-fun topsy_turvy_Adv : Adv;
-fun topsy_turvydom_N : N;
-fun toque_N : N;
-fun tor_N : N;
-fun torbay_PN : PN;
-fun torch_N : N;
-fun torch_race_N : N;
-fun torch_singer_N : N;
-fun torchlight_N : N;
-fun toreador_N : N;
-fun torino_PN : PN;
-fun torment_N : N;
-fun torment_V2 : V2;
-fun tormentor_N : N;
-fun tornado_N : N;
-fun toronto_PN : PN;
-fun torpedo_N : N;
-fun torpedo_V2 : V2;
-fun torpedo_boat_N : N;
-fun torpedo_tube_N : N;
-fun torpid_A : A;
-fun torpidity_N : N;
-fun torpidly_Adv : Adv;
-fun torpidness_N : N;
-fun torpor_N : N;
-fun torque_N : N;
-fun torrent_N : N;
-fun torrential_A : A;
-fun torrid_A : A;
-fun torridity_N : N;
-fun torsion_N : N;
-fun torso_N : N;
-fun tort_N : N;
-fun tortilla_N : N;
-fun tortoise_N : N;
-fun tortoiseshell_N : N;
-fun tortuous_A : A;
-fun tortuously_Adv : Adv;
-fun torture_N : N;
-fun torture_V2 : V2;
-fun torturer_N : N;
-fun tory_N : N;
-fun tosh_N : N;
-fun toss_N : N;
-fun toss_V : V;
-fun toss_V2 : V2;
-fun toss_up_N : N;
-fun tot_N : N;
-fun tot_V : V;
-fun tot_V2 : V2;
-fun total_A : A;
-fun total_N : N;
-fun total_V : V;
-fun total_V2 : V2;
-fun totalitarian_A : A;
-fun totalitarianism_N : N;
-fun totality_N : N;
-fun totalizator_N : N;
-fun totally_Adv : Adv;
-fun tote_N : N;
-fun tote_V2 : V2;
-fun totem_N : N;
-fun totem_pole_N : N;
-fun totnes_PN : PN;
-fun totter_V : V;
-fun tottery_A : A;
-fun toucan_N : N;
-fun touch_N : N;
-fun touch_V : V;
-fun touch_V2 : V2;
-fun touch_and_go_A : A;
-fun touch_type_V : V;
-fun touchable_A : A;
-fun touchdown_N : N;
-fun touched_A : A;
-fun touchily_Adv : Adv;
-fun touchiness_N : N;
-fun touching_A : A;
-fun touchingly_Adv : Adv;
-fun touchline_N : N;
-fun touchstone_N : N;
-fun touchy_A : A;
-fun tough_A : A;
-fun tough_N : N;
-fun toughen_V : V;
-fun toughen_V2 : V2;
-fun toughie_N : N;
-fun toughly_Adv : Adv;
-fun toughness_N : N;
-fun toulon_PN : PN;
-fun toulouse_PN : PN;
-fun toupee_N : N;
-fun tour_N : N;
-fun tour_V : V;
-fun tour_V2 : V2;
-fun tour_de_force_N : N;
-fun touring_A : A;
-fun touring_N : N;
-fun tourism_N : N;
-fun tourist_N : N;
-fun tournament_N : N;
-fun tourney_N : N;
-fun tourniquet_N : N;
-fun tours_PN : PN;
-fun tousle_V2 : V2;
-fun tout_N : N;
-fun tout_V : V;
-fun tout_ensemble_Adv : Adv;
-fun tout_ensemble_N : N;
-fun tow_N : N;
-fun tow_V2 : V2;
-fun towel_N : N;
-fun towel_V2 : V2;
-fun towel_horse_N : N;
-fun towel_rack_N : N;
-fun towel_rail_N : N;
-fun towelling_N : N;
-fun tower_N : N;
-fun tower_V : V;
-fun tower_block_N : N;
-fun tower_hamlets_PN : PN;
-fun towering_A : A;
-fun towing_line_N : N;
-fun towing_path_N : N;
-fun towing_rope_N : N;
-fun towline_N : N;
-fun town_N : N;
-fun town_crier_N : N;
-fun town_gas_N : N;
-fun townee_N : N;
-fun township_N : N;
-fun townsman_N : N;
-fun towpath_N : N;
-fun towrope_N : N;
-fun toxaemia_N : N;
-fun toxic_A : A;
-fun toxicity_N : N;
-fun toxicologist_N : N;
-fun toxicology_N : N;
-fun toxin_N : N;
-fun toy_N : N;
-fun toy_V : V;
-fun toyshop_N : N;
-fun trace_N : N;
-fun trace_V : V;
-fun trace_V2 : V2;
-fun traceable_A : A;
-fun tracer_N : N;
-fun tracery_N : N;
-fun trachea_N : N;
-fun trachoma_N : N;
-fun tracing_N : N;
-fun tracing_paper_N : N;
-fun track_N : N;
-fun track_V2 : V2;
-fun tracked_A : A;
-fun tracker_N : N;
-fun trackless_A : A;
-fun tract_N : N;
-fun tractability_N : N;
-fun tractable_A : A;
-fun traction_N : N;
-fun traction_engine_N : N;
-fun tractor_N : N;
-fun tracy_PN : PN;
-fun trad_N : N;
-fun trade_N : N;
-fun trade_V : V;
-fun trade_V2 : V2;
-fun trade_in_N : N;
-fun trade_union_N : N;
-fun trade_unionism_N : N;
-fun trade_unionist_N : N;
-fun trade_wind_N : N;
-fun trademark_N : N;
-fun trader_N : N;
-fun trades_union_N : N;
-fun tradesman_N : N;
-fun tradition_N : N;
-fun traditional_A : A;
-fun traditionalism_N : N;
-fun traditionalist_N : N;
-fun traditionally_Adv : Adv;
-fun traduce_V2 : V2;
-fun traducer_N : N;
-fun traffic_N : N;
-fun traffic_V : V;
-fun trafficator_N : N;
-fun trafficker_N : N;
-fun tragedian_N : N;
-fun tragedienne_N : N;
-fun tragedy_N : N;
-fun tragic_A : A;
-fun tragically_Adv : Adv;
-fun tragicomedy_N : N;
-fun tragicomic_A : A;
-fun trail_N : N;
-fun trail_V : V;
-fun trail_V2 : V2;
-fun trailer_N : N;
-fun train_N : N;
-fun train_V : V;
-fun train_V2 : V2;
-fun trainbearer_N : N;
-fun trainee_N : N;
-fun trainer_N : N;
-fun training_N : N;
-fun training_college_N : N;
-fun training_ship_N : N;
-fun trainload_N : N;
-fun trainman_N : N;
-fun traipse_V : V;
-fun trait_N : N;
-fun traitor_N : N;
-fun traitorous_A : A;
-fun traitorously_Adv : Adv;
-fun traitress_N : N;
-fun trajectory_N : N;
-fun tralee_PN : PN;
-fun tram_N : N;
-fun tram_car_N : N;
-fun tramline_N : N;
-fun trammel_V2 : V2;
-fun tramp_N : N;
-fun tramp_V : V;
-fun tramp_V2 : V2;
-fun tramp_steamer_N : N;
-fun trample_N : N;
-fun trample_V : V;
-fun trample_V2 : V2;
-fun trampoline_N : N;
-fun tramway_N : N;
-fun trance_N : N;
-fun tranent_PN : PN;
-fun tranquil_A : A;
-fun tranquility_N : N;
-fun tranquilize_V2 : V2;
-fun tranquillity_N : N;
-fun tranquillize_V2 : V2;
-fun tranquillizer_N : N;
-fun tranquilly_Adv : Adv;
-fun trans_PN : PN;
-fun transact_V2 : V2;
-fun transaction_N : N;
-fun transalpine_A : A;
-fun transalpine_N : N;
-fun transatlantic_A : A;
-fun transcend_V2 : V2;
-fun transcendence_N : N;
-fun transcendency_N : N;
-fun transcendent_A : A;
-fun transcendental_A : A;
-fun transcendentalism_N : N;
-fun transcendentalist_N : N;
-fun transcendentally_Adv : Adv;
-fun transcontinental_A : A;
-fun transcribe_V2 : V2;
-fun transcript_N : N;
-fun transcription_N : N;
-fun transept_N : N;
-fun transfer_N : N;
-fun transfer_V : V;
-fun transfer_V2 : V2;
-fun transferability_N : N;
-fun transferable_A : A;
-fun transference_N : N;
-fun transfiguration_N : N;
-fun transfigure_V2 : V2;
-fun transfix_V2 : V2;
-fun transform_V2 : V2;
-fun transformable_A : A;
-fun transformation_N : N;
-fun transformer_N : N;
-fun transfuse_V2 : V2;
-fun transfusion_N : N;
-fun transgress_V : V;
-fun transgress_V2 : V2;
-fun transgression_N : N;
-fun transgressor_N : N;
-fun transience_N : N;
-fun transiency_N : N;
-fun transient_A : A;
-fun transient_N : N;
-fun transiently_Adv : Adv;
-fun transistor_N : N;
-fun transistorized_A : A;
-fun transit_N : N;
-fun transition_N : N;
-fun transitional_A : A;
-fun transitionally_Adv : Adv;
-fun transitive_A : A;
-fun transitively_Adv : Adv;
-fun transitory_A : A;
-fun translatable_A : A;
-fun translate_V2 : V2;
-fun translation_N : N;
-fun translator_N : N;
-fun transliterate_V2 : V2;
-fun transliteration_N : N;
-fun translucence_N : N;
-fun translucency_N : N;
-fun translucent_A : A;
-fun transmigration_N : N;
-fun transmission_N : N;
-fun transmit_V2 : V2;
-fun transmitter_N : N;
-fun transmogrification_N : N;
-fun transmogrify_V2 : V2;
-fun transmutable_A : A;
-fun transmutation_N : N;
-fun transmute_V2 : V2;
-fun transoceanic_A : A;
-fun transom_N : N;
-fun transom_window_N : N;
-fun transparence_N : N;
-fun transparency_N : N;
-fun transparent_A : A;
-fun transparently_Adv : Adv;
-fun transpiration_N : N;
-fun transpire_V : V;
-fun transpire_V2 : V2;
-fun transplant_N : N;
-fun transplant_V : V;
-fun transplant_V2 : V2;
-fun transplantation_N : N;
-fun transpolar_A : A;
-fun transport_N : N;
-fun transport_V2 : V2;
-fun transportable_A : A;
-fun transportation_N : N;
-fun transporter_N : N;
-fun transpose_V2 : V2;
-fun transposition_N : N;
-fun transsexual_N : N;
-fun transship_V2 : V2;
-fun transshipment_N : N;
-fun transubstantiation_N : N;
-fun transverse_A : A;
-fun transversely_Adv : Adv;
-fun transvestism_N : N;
-fun transvestite_N : N;
-fun trap_N : N;
-fun trap_V2 : V2;
-fun trap_door_N : N;
-fun trap_shooting_N : N;
-fun trapeze_N : N;
-fun trapezium_N : N;
-fun trapezoid_N : N;
-fun trapper_N : N;
-fun trappist_N : N;
-fun trash_N : N;
-fun trashy_A : A;
-fun trauma_N : N;
-fun traumatic_A : A;
-fun travail_N : N;
-fun travel_N : N;
-fun travel_V : V;
-fun travel_V2 : V2;
-fun travel_soiled_A : A;
-fun travel_stained_A : A;
-fun travel_worn_A : A;
-fun traveled_A : A;
-fun travelled_A : A;
-fun traveller_N : N;
-fun travelling_N : N;
-fun travelogue_N : N;
-fun traverse_N : N;
-fun traverse_V2 : V2;
-fun travesty_N : N;
-fun travesty_V2 : V2;
-fun trawl_N : N;
-fun trawl_V : V;
-fun trawl_V2 : V2;
-fun trawl_net_N : N;
-fun trawler_N : N;
-fun tray_N : N;
-fun tray_cloth_N : N;
-fun treacherous_A : A;
-fun treacherously_Adv : Adv;
-fun treachery_N : N;
-fun treacle_N : N;
-fun treacly_A : A;
-fun tread_N : N;
-fun tread_V : V;
-fun tread_V2 : V2;
-fun treadle_N : N;
-fun treadle_V : V;
-fun treadmill_N : N;
-fun treas_N : N;
-fun treason_N : N;
-fun treasonable_A : A;
-fun treasonably_Adv : Adv;
-fun treasonous_A : A;
-fun treasure_N : N;
-fun treasure_V2 : V2;
-fun treasure_house_N : N;
-fun treasure_trove_N : N;
-fun treasurer_N : N;
-fun treasury_N : N;
-fun treat_N : N;
-fun treat_V : V;
-fun treat_V2 : V2;
-fun treatise_N : N;
-fun treatment_N : N;
-fun treaty_N : N;
-fun treble_A : A;
-fun treble_N : N;
-fun treble_V : V;
-fun treble_V2 : V2;
-fun tredegar_PN : PN;
-fun tree_N : N;
-fun tree_V2 : V2;
-fun tree_fern_N : N;
-fun treeless_A : A;
-fun trefoil_N : N;
-fun trek_N : N;
-fun trek_V : V;
-fun trellis_N : N;
-fun trellis_V2 : V2;
-fun tremble_N : N;
-fun tremble_V : V;
-fun tremendous_A : A;
-fun tremendously_Adv : Adv;
-fun tremolo_N : N;
-fun tremor_N : N;
-fun tremulous_A : A;
-fun tremulously_Adv : Adv;
-fun trench_N : N;
-fun trench_V2 : V2;
-fun trenchancy_N : N;
-fun trenchant_A : A;
-fun trenchantly_Adv : Adv;
-fun trencher_N : N;
-fun trencherman_N : N;
-fun trend_N : N;
-fun trend_V : V;
-fun trend_setter_N : N;
-fun trend_setting_N : N;
-fun trendy_A : A;
-fun trepan_V2 : V2;
-fun trephine_N : N;
-fun trephine_V2 : V2;
-fun trepidation_N : N;
-fun trespass_N : N;
-fun trespass_V : V;
-fun trespasser_N : N;
-fun tress_N : N;
-fun trestle_N : N;
-fun trestle_bridge_N : N;
-fun trestle_table_N : N;
-fun trevor_PN : PN;
-fun triad_N : N;
-fun trial_N : N;
-fun triangle_N : N;
-fun triangular_A : A;
-fun tribal_A : A;
-fun tribalism_N : N;
-fun tribe_N : N;
-fun tribesman_N : N;
-fun tribulation_N : N;
-fun tribunal_N : N;
-fun tribune_N : N;
-fun tributary_A : A;
-fun tributary_N : N;
-fun tribute_N : N;
-fun trice_N : N;
-fun trice_V2 : V2;
-fun trick_N : N;
-fun trick_V2 : V2;
-fun trickery_N : N;
-fun trickiness_N : N;
-fun trickle_N : N;
-fun trickle_V : V;
-fun trickle_V2 : V2;
-fun trickster_N : N;
-fun tricksy_A : A;
-fun tricky_A : A;
-fun tricolour_N : N;
-fun tricycle_N : N;
-fun trident_N : N;
-fun tried_A : A;
-fun triennial_A : A;
-fun triennial_N : N;
-fun trier_N : N;
-fun trieste_PN : PN;
-fun trifle_N : N;
-fun trifle_V : V;
-fun trifle_V2 : V2;
-fun trifler_N : N;
-fun trifling_A : A;
-fun trigger_N : N;
-fun trigger_V2 : V2;
-fun trigger_happy_A : A;
-fun trigonometry_N : N;
-fun trilateral_A : A;
-fun trilby_N : N;
-fun trill_N : N;
-fun trill_V : V;
-fun trill_V2 : V2;
-fun trillion_A : A;
-fun trillion_N : N;
-fun trillionth_A : A;
-fun trillionth_N : N;
-fun trilogy_N : N;
-fun trim_A : A;
-fun trim_N : N;
-fun trim_V : V;
-fun trim_V2 : V2;
-fun trimaran_N : N;
-fun trimly_Adv : Adv;
-fun trimmer_N : N;
-fun trimming_N : N;
-fun tring_PN : PN;
-fun trinidad_PN : PN;
-fun trinidadian_A : A;
-fun trinidadian_N : N;
-fun trinitrotoluene_N : N;
-fun trinity_N : N;
-fun trinket_N : N;
-fun trio_N : N;
-fun trip_N : N;
-fun trip_V : V;
-fun trip_V2 : V2;
-fun tripartite_A : A;
-fun tripe_N : N;
-fun triple_A : A;
-fun triple_V : V;
-fun triple_V2 : V2;
-fun triplet_N : N;
-fun triplex_A : A;
-fun triplicate_A : A;
-fun triplicate_N : N;
-fun triplicate_V2 : V2;
-fun tripod_N : N;
-fun tripos_N : N;
-fun tripper_N : N;
-fun tripping_A : A;
-fun trippingly_Adv : Adv;
-fun triptych_N : N;
-fun trireme_N : N;
-fun trisect_V2 : V2;
-fun trite_A : A;
-fun tritely_Adv : Adv;
-fun triteness_N : N;
-fun triumph_N : N;
-fun triumph_V : V;
-fun triumphal_A : A;
-fun triumphant_A : A;
-fun triumphantly_Adv : Adv;
-fun triumvir_N : N;
-fun triumvirate_N : N;
-fun triune_A : A;
-fun trivet_N : N;
-fun trivial_A : A;
-fun triviality_N : N;
-fun trivialize_V2 : V2;
-fun trivially_Adv : Adv;
-fun trochaic_A : A;
-fun trochee_N : N;
-fun troglodyte_N : N;
-fun troika_N : N;
-fun trojan_A : A;
-fun trojan_N : N;
-fun troll_N : N;
-fun troll_V : V;
-fun troll_V2 : V2;
-fun trolley_N : N;
-fun trolley_car_N : N;
-fun trollop_N : N;
-fun trombone_N : N;
-fun trombonist_N : N;
-fun troon_PN : PN;
-fun troop_N : N;
-fun troop_V : V;
-fun troop_V2 : V2;
-fun troop_carrier_N : N;
-fun trooper_N : N;
-fun troopship_N : N;
-fun trope_N : N;
-fun trophy_N : N;
-fun tropic_N : N;
-fun tropical_A : A;
-fun tropically_Adv : Adv;
-fun trot_N : N;
-fun trot_V : V;
-fun trot_V2 : V2;
-fun troth_N : N;
-fun trotter_N : N;
-fun troubadour_N : N;
-fun trouble_N : N;
-fun trouble_V : V;
-fun trouble_V2 : V2;
-fun troublemaker_N : N;
-fun troubleshooter_N : N;
-fun troublesome_A : A;
-fun troublous_A : A;
-fun trough_N : N;
-fun trounce_V2 : V2;
-fun trouncing_N : N;
-fun troupe_N : N;
-fun trouper_N : N;
-fun trouser_N : N;
-fun trousseau_N : N;
-fun trout_N : N;
-fun trove_N : N;
-fun trowbridge_PN : PN;
-fun trowel_N : N;
-fun troy_N : N;
-fun truancy_N : N;
-fun truant_N : N;
-fun truce_N : N;
-fun truck_N : N;
-fun truckle_N : N;
-fun truckle_V : V;
-fun truckle_bed_N : N;
-fun truculence_N : N;
-fun truculency_N : N;
-fun truculent_A : A;
-fun truculently_Adv : Adv;
-fun trudge_N : N;
-fun trudge_V : V;
-fun true_A : A;
-fun true_Adv : Adv;
-fun true_N : N;
-fun true_V2 : V2;
-fun true_blue_A : A;
-fun true_blue_N : N;
-fun true_hearted_A : A;
-fun truelove_N : N;
-fun truffle_N : N;
-fun truism_N : N;
-fun truly_Adv : Adv;
-fun trump_N : N;
-fun trump_V : V;
-fun trump_V2 : V2;
-fun trumpery_A : A;
-fun trumpet_N : N;
-fun trumpet_V : V;
-fun trumpet_V2 : V2;
-fun trumpeter_N : N;
-fun truncate_V2 : V2;
-fun truncheon_N : N;
-fun trundle_V : V;
-fun trundle_V2 : V2;
-fun trunk_N : N;
-fun trunk_call_N : N;
-fun trunk_line_N : N;
-fun trunk_road_N : N;
-fun trunking_N : N;
-fun truro_PN : PN;
-fun truss_N : N;
-fun truss_V2 : V2;
-fun trust_N : N;
-fun trust_V : V;
-fun trust_V2 : V2;
-fun trustee_N : N;
-fun trusteeship_N : N;
-fun trustful_A : A;
-fun trustfully_Adv : Adv;
-fun trusting_A : A;
-fun trustingly_Adv : Adv;
-fun trustworthiness_N : N;
-fun trustworthy_A : A;
-fun trusty_A : A;
-fun truth_N : N;
-fun truthful_A : A;
-fun truthfully_Adv : Adv;
-fun truthfulness_N : N;
-fun try_N : N;
-fun try_V : V;
-fun try_V2 : V2;
-fun try_on_N : N;
-fun try_out_N : N;
-fun trying_A : A;
-fun tryst_N : N;
-fun tsar_N : N;
-fun tsarina_N : N;
-fun tsetse_N : N;
-fun tsetse_fly_N : N;
-fun tsinan_PN : PN;
-fun tsingtao_PN : PN;
-fun tsitsihar_PN : PN;
-fun tswana_A : A;
-fun tswana_N : N;
-fun tub_N : N;
-fun tub_thumper_N : N;
-fun tuba_N : N;
-fun tubby_A : A;
-fun tube_N : N;
-fun tube_well_N : N;
-fun tubeless_A : A;
-fun tuber_N : N;
-fun tubercular_A : A;
-fun tuberculosis_N : N;
-fun tuberculous_A : A;
-fun tubful_N : N;
-fun tubing_N : N;
-fun tubular_A : A;
-fun tuc_N : N;
-fun tuck_N : N;
-fun tuck_V : V;
-fun tuck_V2 : V2;
-fun tuck_in_N : N;
-fun tuck_shop_N : N;
-fun tucker_N : N;
-fun tues_PN : PN;
-fun tuesday_N : N;
-fun tuesday_PN : PN;
-fun tuft_N : N;
-fun tufted_A : A;
-fun tug_N : N;
-fun tug_V : V;
-fun tug_V2 : V2;
-fun tugboat_N : N;
-fun tuition_N : N;
-fun tulip_N : N;
-fun tulle_N : N;
-fun tullibody_PN : PN;
-fun tumble_N : N;
-fun tumble_V : V;
-fun tumble_V2 : V2;
-fun tumble_down_A : A;
-fun tumbler_N : N;
-fun tumbleweed_N : N;
-fun tumbrel_N : N;
-fun tumbril_N : N;
-fun tumescence_N : N;
-fun tumescent_A : A;
-fun tumid_A : A;
-fun tumidity_N : N;
-fun tummy_N : N;
-fun tumour_N : N;
-fun tumult_N : N;
-fun tumultuous_A : A;
-fun tumultuously_Adv : Adv;
-fun tumulus_N : N;
-fun tun_N : N;
-fun tuna_N : N;
-fun tunbridge_wells_PN : PN;
-fun tundra_N : N;
-fun tune_N : N;
-fun tune_V : V;
-fun tune_V2 : V2;
-fun tuneful_A : A;
-fun tunefully_Adv : Adv;
-fun tunefulness_N : N;
-fun tuner_N : N;
-fun tung_oil_N : N;
-fun tungsten_N : N;
-fun tunic_N : N;
-fun tuning_fork_N : N;
-fun tunis_PN : PN;
-fun tunisia_PN : PN;
-fun tunisian_A : A;
-fun tunisian_N : N;
-fun tunnel_N : N;
-fun tunnel_V : V;
-fun tunnel_V2 : V2;
-fun tunny_N : N;
-fun tup_N : N;
-fun tuppence_N : N;
-fun tuppenny_A : A;
-fun turban_N : N;
-fun turbaned_A : A;
-fun turbid_A : A;
-fun turbidity_N : N;
-fun turbidness_N : N;
-fun turbine_N : N;
-fun turbojet_N : N;
-fun turboprop_N : N;
-fun turbot_N : N;
-fun turbulence_N : N;
-fun turbulent_A : A;
-fun turbulently_Adv : Adv;
-fun turd_N : N;
-fun tureen_N : N;
-fun turf_N : N;
-fun turf_V2 : V2;
-fun turgid_A : A;
-fun turgidity_N : N;
-fun turgidly_Adv : Adv;
-fun turin_PN : PN;
-fun turk_N : N;
-fun turkey_N : N;
-fun turkey_PN : PN;
-fun turkish_A : A;
-fun turkish_N : N;
-fun turku_PN : PN;
-fun turmeric_N : N;
-fun turmoil_N : N;
-fun turn_N : N;
-fun turn_V : V;
-fun turn_V2 : V2;
-fun turn_off_N : N;
-fun turn_on_N : N;
-fun turn_out_N : N;
-fun turn_round_N : N;
-fun turn_up_N : N;
-fun turncoat_N : N;
-fun turncock_N : N;
-fun turner_N : N;
-fun turning_N : N;
-fun turning_point_N : N;
-fun turnip_N : N;
-fun turnkey_N : N;
-fun turnover_N : N;
-fun turnpike_N : N;
-fun turnspit_N : N;
-fun turnstile_N : N;
-fun turntable_N : N;
-fun turpentine_N : N;
-fun turpitude_N : N;
-fun turps_N : N;
-fun turquoise_N : N;
-fun turret_N : N;
-fun turtle_N : N;
-fun turtledove_N : N;
-fun turtleneck_A : A;
-fun turtlenecked_A : A;
-fun tusk_N : N;
-fun tussle_N : N;
-fun tussle_V : V;
-fun tussock_N : N;
-fun tut_V2 : V2;
-fun tutelage_N : N;
-fun tutelary_A : A;
-fun tutor_N : N;
-fun tutor_V2 : V2;
-fun tutorial_A : A;
-fun tutorial_N : N;
-fun tutorially_Adv : Adv;
-fun tutorship_N : N;
-fun tutti_frutti_N : N;
-fun tutu_N : N;
-fun tuxedo_N : N;
-fun tv_N : N;
-fun tvs_N : N;
-fun twaddle_N : N;
-fun twaddle_V : V;
-fun twain_N : N;
-fun twang_N : N;
-fun twang_V : V;
-fun twang_V2 : V2;
-fun tweak_N : N;
-fun tweak_V2 : V2;
-fun twee_A : A;
-fun tweed_N : N;
-fun tween_Adv : Adv;
-fun tween_decks_Adv : Adv;
-fun tweet_N : N;
-fun tweet_V : V;
-fun tweeter_N : N;
-fun twelfth_night_N : N;
-fun twelfth_night_PN : PN;
-fun twelvemonth_N : N;
-fun twerp_N : N;
-fun twice_Adv : Adv;
-fun twiddle_N : N;
-fun twiddle_V : V;
-fun twiddle_V2 : V2;
-fun twiddly_A : A;
-fun twig_N : N;
-fun twig_V : V;
-fun twig_V2 : V2;
-fun twiggy_A : A;
-fun twilight_N : N;
-fun twilit_A : A;
-fun twill_N : N;
-fun twilled_A : A;
-fun twin_N : N;
-fun twin_V2 : V2;
-fun twine_N : N;
-fun twine_V : V;
-fun twine_V2 : V2;
-fun twinge_N : N;
-fun twinkle_N : N;
-fun twinkle_V : V;
-fun twinkling_N : N;
-fun twinned_A : A;
-fun twirl_N : N;
-fun twirl_V : V;
-fun twirl_V2 : V2;
-fun twist_N : N;
-fun twist_V : V;
-fun twist_V2 : V2;
-fun twister_N : N;
-fun twisty_A : A;
-fun twit_N : N;
-fun twit_V2 : V2;
-fun twitch_N : N;
-fun twitch_V : V;
-fun twitch_V2 : V2;
-fun twitter_N : N;
-fun twitter_V : V;
-fun two_a_penny_A : A;
-fun two_edged_A : A;
-fun two_faced_A : A;
-fun two_funnelled_A : A;
-fun two_handed_A : A;
-fun two_piece_N : N;
-fun two_ply_A : A;
-fun two_seater_N : N;
-fun two_step_N : N;
-fun two_timing_A : A;
-fun two_way_A : A;
-fun twofold_A : A;
-fun twofold_Adv : Adv;
-fun twopence_N : N;
-fun twopenny_A : A;
-fun twopenny_halfpenny_A : A;
-fun tycoon_N : N;
-fun tyke_N : N;
-fun tympanum_N : N;
-fun tyne_PN : PN;
-fun tynemouth_PN : PN;
-fun type_N : N;
-fun type_V : V;
-fun type_V2 : V2;
-fun typecast_V2 : V2;
-fun typeface_N : N;
-fun typescript_N : N;
-fun typesetter_N : N;
-fun typewriter_N : N;
-fun typewritten_A : A;
-fun typhoid_N : N;
-fun typhoon_N : N;
-fun typhus_N : N;
-fun typical_A : A;
-fun typically_Adv : Adv;
-fun typify_V2 : V2;
-fun typist_N : N;
-fun typographer_N : N;
-fun typographic_A : A;
-fun typographically_Adv : Adv;
-fun typography_N : N;
-fun tyrannical_A : A;
-fun tyrannize_V : V;
-fun tyrannize_V2 : V2;
-fun tyrannous_A : A;
-fun tyranny_N : N;
-fun tyrant_N : N;
-fun tyre_N : N;
-fun tyro_N : N;
-fun tyrone_PN : PN;
-fun tzar_N : N;
-fun tzarina_N : N;
-fun tzupo_PN : PN;
-fun tete_a_tete_Adv : Adv;
-fun tete_a_tete_N : N;
-fun u_boat_N : N;
-fun u_turn_N : N;
-fun ubiquitous_A : A;
-fun ubiquity_N : N;
-fun udder_N : N;
-fun uddingston_PN : PN;
-fun udi_PN : PN;
-fun udine_PN : PN;
-fun ufa_PN : PN;
-fun ufo's_N : N;
-fun ufo_N : N;
-fun uganda_PN : PN;
-fun ugandan_A : A;
-fun ugandan_N : N;
-fun uglify_V2 : V2;
-fun ugliness_N : N;
-fun ugly_A : A;
-fun uk_PN : PN;
-fun ukase_N : N;
-fun ukulele_N : N;
-fun ulcer_N : N;
-fun ulcerate_V : V;
-fun ulcerate_V2 : V2;
-fun ulceration_N : N;
-fun ulcerous_A : A;
-fun ulna_N : N;
-fun ulster_N : N;
-fun ulster_PN : PN;
-fun ulterior_A : A;
-fun ultimate_A : A;
-fun ultimately_Adv : Adv;
-fun ultimatum_N : N;
-fun ultimo_A : A;
-fun ultra_vires_A : A;
-fun ultra_vires_Adv : Adv;
-fun ultramarine_A : A;
-fun ultramarine_N : N;
-fun ultramontane_A : A;
-fun ultrasonic_A : A;
-fun ultraviolet_A : A;
-fun ululate_V : V;
-fun ululation_N : N;
-fun ulverston_PN : PN;
-fun umber_A : A;
-fun umber_N : N;
-fun umbilical_A : A;
-fun umbrage_N : N;
-fun umbrella_N : N;
-fun umlaut_N : N;
-fun umpire_N : N;
-fun umpire_V : V;
-fun umpire_V2 : V2;
-fun umpteen_A : A;
-fun umpteenth_A : A;
-fun un_N : N;
-fun un_come_at_able_A : A;
-fun un_get_at_able_A : A;
-fun unabashed_A : A;
-fun unabated_A : A;
-fun unable_A : A;
-fun unabridged_A : A;
-fun unacceptable_A : A;
-fun unacceptably_Adv : Adv;
-fun unaccommodating_A : A;
-fun unaccompanied_A : A;
-fun unaccountable_A : A;
-fun unaccountably_Adv : Adv;
-fun unaccounted_A : A;
-fun unaccustomed_A : A;
-fun unacknowledged_A : A;
-fun unacquainted_A : A;
-fun unadorned_A : A;
-fun unadulterated_A : A;
-fun unadventurous_A : A;
-fun unadvised_A : A;
-fun unadvisedly_Adv : Adv;
-fun unaffected_A : A;
-fun unafraid_A : A;
-fun unaided_A : A;
-fun unalienable_A : A;
-fun unaligned_A : A;
-fun unalloyed_A : A;
-fun unalterable_A : A;
-fun unalterably_Adv : Adv;
-fun unaltered_A : A;
-fun unambiguous_A : A;
-fun unambiguously_Adv : Adv;
-fun unamended_A : A;
-fun unanimity_N : N;
-fun unanimous_A : A;
-fun unanimously_Adv : Adv;
-fun unannounced_A : A;
-fun unanswerable_A : A;
-fun unanswered_A : A;
-fun unanticipated_A : A;
-fun unappealing_A : A;
-fun unappetizing_A : A;
-fun unappreciated_A : A;
-fun unappreciative_A : A;
-fun unapproachable_A : A;
-fun unarguable_A : A;
-fun unarguably_Adv : Adv;
-fun unarmed_A : A;
-fun unarticulated_A : A;
-fun unashamed_A : A;
-fun unashamedly_Adv : Adv;
-fun unasked_A : A;
-fun unassailable_A : A;
-fun unassailably_Adv : Adv;
-fun unassisted_A : A;
-fun unassuming_A : A;
-fun unassumingly_Adv : Adv;
-fun unattached_A : A;
-fun unattainable_A : A;
-fun unattainably_Adv : Adv;
-fun unattended_A : A;
-fun unattractive_A : A;
-fun unattractively_Adv : Adv;
-fun unauthorized_A : A;
-fun unavailable_A : A;
-fun unavailing_A : A;
-fun unavoidable_A : A;
-fun unavoidably_Adv : Adv;
-fun unawakened_A : A;
-fun unaware_A : A;
-fun unawares_Adv : Adv;
-fun unbacked_A : A;
-fun unbalance_V2 : V2;
-fun unbalanced_A : A;
-fun unbar_V2 : V2;
-fun unbearable_A : A;
-fun unbearably_Adv : Adv;
-fun unbeatable_A : A;
-fun unbeaten_A : A;
-fun unbecoming_A : A;
-fun unbecomingly_Adv : Adv;
-fun unbeknown_A : A;
-fun unbeknown_Adv : Adv;
-fun unbeknownst_A : A;
-fun unbeknownst_Adv : Adv;
-fun unbelief_N : N;
-fun unbelievable_A : A;
-fun unbelievably_Adv : Adv;
-fun unbeliever_N : N;
-fun unbelieving_A : A;
-fun unbelievingly_Adv : Adv;
-fun unbeloved_A : A;
-fun unbend_V : V;
-fun unbend_V2 : V2;
-fun unbending_A : A;
-fun unbiased_A : A;
-fun unbiassed_A : A;
-fun unbidden_A : A;
-fun unbind_V2 : V2;
-fun unblock_V2 : V2;
-fun unblushing_A : A;
-fun unblushingly_Adv : Adv;
-fun unbolt_V : V;
-fun unbolt_V2 : V2;
-fun unborn_A : A;
-fun unbosom_V2 : V2;
-fun unbounded_A : A;
-fun unbowed_A : A;
-fun unbreakable_A : A;
-fun unbridled_A : A;
-fun unbroken_A : A;
-fun unbuckle_V2 : V2;
-fun unburden_V2 : V2;
-fun unburied_A : A;
-fun unbutton_V2 : V2;
-fun unbuttoned_A : A;
-fun uncalled_for_A : A;
-fun uncannily_Adv : Adv;
-fun uncanny_A : A;
-fun uncared_for_A : A;
-fun uncarpeted_A : A;
-fun unceasing_A : A;
-fun unceasingly_Adv : Adv;
-fun uncensored_A : A;
-fun unceremonious_A : A;
-fun unceremoniously_Adv : Adv;
-fun unceremoniousness_N : N;
-fun uncertain_A : A;
-fun uncertainly_Adv : Adv;
-fun uncertainty_N : N;
-fun unchain_V2 : V2;
-fun unchallengeable_A : A;
-fun unchallenged_A : A;
-fun unchanged_A : A;
-fun unchanging_A : A;
-fun uncharacteristic_A : A;
-fun uncharacteristically_Adv : Adv;
-fun uncharitable_A : A;
-fun uncharted_A : A;
-fun unchecked_A : A;
-fun unchivalrously_Adv : Adv;
-fun unchristian_A : A;
-fun uncivil_A : A;
-fun uncivilized_A : A;
-fun unclaimed_A : A;
-fun unclassified_A : A;
-fun uncle_N : N;
-fun unclean_A : A;
-fun unclear_A : A;
-fun unclouded_A : A;
-fun uncluttered_A : A;
-fun unco_A : A;
-fun unco_Adv : Adv;
-fun unco_operative_A : A;
-fun unco_ordinated_A : A;
-fun uncoloured_A : A;
-fun uncomfortable_A : A;
-fun uncomfortably_Adv : Adv;
-fun uncommercialized_A : A;
-fun uncommitted_A : A;
-fun uncommon_A : A;
-fun uncommonly_Adv : Adv;
-fun uncommunicative_A : A;
-fun uncompetitive_A : A;
-fun uncomplaining_A : A;
-fun uncomplainingly_Adv : Adv;
-fun uncompleted_A : A;
-fun uncomplicated_A : A;
-fun uncomplimentary_A : A;
-fun uncomprehending_A : A;
-fun uncompromising_A : A;
-fun unconcealed_A : A;
-fun unconcern_N : N;
-fun unconcerned_A : A;
-fun unconcernedly_Adv : Adv;
-fun unconditional_A : A;
-fun unconditionally_Adv : Adv;
-fun unconditioned_A : A;
-fun unconfined_A : A;
-fun unconfirmed_A : A;
-fun unconformable_A : A;
-fun uncongenial_A : A;
-fun unconnected_A : A;
-fun unconquered_A : A;
-fun unconscionable_A : A;
-fun unconscious_A : A;
-fun unconscious_N : N;
-fun unconsciously_Adv : Adv;
-fun unconsciousness_N : N;
-fun unconsidered_A : A;
-fun unconstitutional_A : A;
-fun unconstitutionally_Adv : Adv;
-fun unconstrained_A : A;
-fun unconstructive_A : A;
-fun unconsummated_A : A;
-fun uncontaminated_A : A;
-fun uncontrollable_A : A;
-fun uncontrollably_Adv : Adv;
-fun uncontrolled_A : A;
-fun uncontroversial_A : A;
-fun unconventional_A : A;
-fun unconventionality_N : N;
-fun unconverted_A : A;
-fun unconvinced_A : A;
-fun unconvincing_A : A;
-fun uncooked_A : A;
-fun uncork_V2 : V2;
-fun uncorrected_A : A;
-fun uncorrelated_A : A;
-fun uncorroborated_A : A;
-fun uncouple_V2 : V2;
-fun uncouth_A : A;
-fun uncouthly_Adv : Adv;
-fun uncouthness_N : N;
-fun uncover_V2 : V2;
-fun uncritical_A : A;
-fun uncritically_Adv : Adv;
-fun uncross_V2 : V2;
-fun uncrossed_A : A;
-fun uncrowned_A : A;
-fun unction_N : N;
-fun unctuous_A : A;
-fun unctuously_Adv : Adv;
-fun uncultivated_A : A;
-fun uncultured_A : A;
-fun uncurl_V : V;
-fun uncurl_V2 : V2;
-fun uncut_A : A;
-fun undamaged_A : A;
-fun undated_A : A;
-fun undaunted_A : A;
-fun undeceive_V2 : V2;
-fun undecided_A : A;
-fun undeclared_A : A;
-fun undefeated_A : A;
-fun undefended_A : A;
-fun undeferential_A : A;
-fun undefinable_A : A;
-fun undefined_A : A;
-fun undemanding_A : A;
-fun undemocratic_A : A;
-fun undemocratically_Adv : Adv;
-fun undemonstrative_A : A;
-fun undeniable_A : A;
-fun undeniably_Adv : Adv;
-fun undenominational_A : A;
-fun under_Adv : Adv;
-fun under_the_counter_A : A;
-fun underact_V : V;
-fun underact_V2 : V2;
-fun underarm_A : A;
-fun underarm_Adv : Adv;
-fun underbelly_N : N;
-fun underbid_V2 : V2;
-fun underbred_A : A;
-fun underbrush_N : N;
-fun undercarriage_N : N;
-fun undercharge_N : N;
-fun undercharge_V2 : V2;
-fun underclothing_N : N;
-fun undercoat_N : N;
-fun undercover_A : A;
-fun undercurrent_N : N;
-fun undercut_N : N;
-fun undercut_V2 : V2;
-fun underdeveloped_A : A;
-fun underdevelopment_N : N;
-fun underdog_N : N;
-fun underdone_A : A;
-fun underemployed_A : A;
-fun underestimate_N : N;
-fun underestimate_V2 : V2;
-fun underestimation_N : N;
-fun underexpose_V2 : V2;
-fun underexposure_N : N;
-fun underfed_A : A;
-fun underfelt_N : N;
-fun underfloor_A : A;
-fun underfoot_Adv : Adv;
-fun undergarment_N : N;
-fun undergo_V2 : V2;
-fun undergraduate_N : N;
-fun underground_A : A;
-fun underground_Adv : Adv;
-fun underground_N : N;
-fun undergrowth_N : N;
-fun underhand_A : A;
-fun underhand_Adv : Adv;
-fun underhanded_A : A;
-fun underhung_A : A;
-fun underlay_N : N;
-fun underlie_V2 : V2;
-fun underline_N : N;
-fun underline_V2 : V2;
-fun underling_N : N;
-fun undermanned_A : A;
-fun undermentioned_A : A;
-fun undermine_V2 : V2;
-fun underneath_Adv : Adv;
-fun undernourished_A : A;
-fun undernourishment_N : N;
-fun underpass_N : N;
-fun underpay_V2 : V2;
-fun underpayment_N : N;
-fun underpin_V2 : V2;
-fun underpopulated_A : A;
-fun underprivileged_A : A;
-fun underproduction_N : N;
-fun underquote_V2 : V2;
-fun underrate_V2 : V2;
-fun underscore_V2 : V2;
-fun undersea_A : A;
-fun underseal_N : N;
-fun undersealed_A : A;
-fun undersecretary_N : N;
-fun undersell_V2 : V2;
-fun undersexed_A : A;
-fun undershoot_V2 : V2;
-fun underside_N : N;
-fun undersign_V2 : V2;
-fun undersized_A : A;
-fun underskirt_N : N;
-fun underslung_A : A;
-fun underspend_V : V;
-fun underspend_V2 : V2;
-fun underspent_A : A;
-fun understaffed_A : A;
-fun understand_V : V;
-fun understand_V2 : V2;
-fun understandable_A : A;
-fun understandably_Adv : Adv;
-fun understanding_A : A;
-fun understanding_N : N;
-fun understate_V2 : V2;
-fun understatement_N : N;
-fun understock_V2 : V2;
-fun understudy_N : N;
-fun understudy_V2 : V2;
-fun undersurface_N : N;
-fun undertake_V2 : V2;
-fun undertaker_N : N;
-fun undertaking_N : N;
-fun undertone_N : N;
-fun undertow_N : N;
-fun undervaluation_N : N;
-fun undervalue_V2 : V2;
-fun underwater_A : A;
-fun underwear_N : N;
-fun underweight_A : A;
-fun underworld_N : N;
-fun underwrite_V2 : V2;
-fun underwriter_N : N;
-fun undeserved_A : A;
-fun undeserving_A : A;
-fun undesigned_A : A;
-fun undesirable_A : A;
-fun undesirable_N : N;
-fun undetected_A : A;
-fun undetermined_A : A;
-fun undeterred_A : A;
-fun undeveloped_A : A;
-fun undiagnosed_A : A;
-fun undifferentiated_A : A;
-fun undigested_A : A;
-fun undignified_A : A;
-fun undiluted_A : A;
-fun undiminished_A : A;
-fun undimmed_A : A;
-fun undiplomatic_A : A;
-fun undiplomatically_Adv : Adv;
-fun undischarged_A : A;
-fun undisciplined_A : A;
-fun undisclosed_A : A;
-fun undiscovered_A : A;
-fun undiscriminating_A : A;
-fun undisguised_A : A;
-fun undismayed_A : A;
-fun undisputed_A : A;
-fun undisputedly_Adv : Adv;
-fun undissolved_A : A;
-fun undistinguishable_A : A;
-fun undistinguished_A : A;
-fun undistributed_A : A;
-fun undisturbed_A : A;
-fun undivided_A : A;
-fun undo_V2 : V2;
-fun undock_V : V;
-fun undock_V2 : V2;
-fun undocumented_A : A;
-fun undogmatic_A : A;
-fun undoing_N : N;
-fun undomesticated_A : A;
-fun undone_A : A;
-fun undoubted_A : A;
-fun undoubtedly_Adv : Adv;
-fun undramatic_A : A;
-fun undramatically_Adv : Adv;
-fun undreamed_A : A;
-fun undreamed_of_A : A;
-fun undreamt_A : A;
-fun undress_N : N;
-fun undress_V : V;
-fun undress_V2 : V2;
-fun undrinkable_A : A;
-fun undue_A : A;
-fun undulate_V : V;
-fun undulation_N : N;
-fun unduly_Adv : Adv;
-fun undying_A : A;
-fun unearned_A : A;
-fun unearth_V2 : V2;
-fun unearthly_A : A;
-fun unease_N : N;
-fun uneasily_Adv : Adv;
-fun uneasiness_N : N;
-fun uneasy_A : A;
-fun uneatable_A : A;
-fun uneaten_A : A;
-fun uneconomic_A : A;
-fun uneconomical_A : A;
-fun unedifying_A : A;
-fun unedited_A : A;
-fun uneducated_A : A;
-fun uneffective_A : A;
-fun unelaborated_A : A;
-fun unemotional_A : A;
-fun unemotionally_Adv : Adv;
-fun unemployable_A : A;
-fun unemployed_A : A;
-fun unemployment_N : N;
-fun unending_A : A;
-fun unendingly_Adv : Adv;
-fun unendurable_A : A;
-fun unenlightened_A : A;
-fun unenterprising_A : A;
-fun unenthusiastic_A : A;
-fun unenthusiastically_Adv : Adv;
-fun unenviable_A : A;
-fun unequal_A : A;
-fun unequalled_A : A;
-fun unequally_Adv : Adv;
-fun unequipped_A : A;
-fun unequivocal_A : A;
-fun unequivocally_Adv : Adv;
-fun unerring_A : A;
-fun unerringly_Adv : Adv;
-fun unesco_PN : PN;
-fun unethical_A : A;
-fun unethically_Adv : Adv;
-fun uneven_A : A;
-fun unevenly_Adv : Adv;
-fun uneventful_A : A;
-fun uneventfully_Adv : Adv;
-fun unexampled_A : A;
-fun unexceeded_A : A;
-fun unexceptionable_A : A;
-fun unexceptional_A : A;
-fun unexciting_A : A;
-fun unexpected_A : A;
-fun unexpectedly_Adv : Adv;
-fun unexpectedness_N : N;
-fun unexpired_A : A;
-fun unexplained_A : A;
-fun unexplored_A : A;
-fun unexposed_A : A;
-fun unexpressed_A : A;
-fun unexpurgated_A : A;
-fun unfailing_A : A;
-fun unfailingly_Adv : Adv;
-fun unfair_A : A;
-fun unfairly_Adv : Adv;
-fun unfairness_N : N;
-fun unfaithful_A : A;
-fun unfaithfully_Adv : Adv;
-fun unfaithfulness_N : N;
-fun unfaltering_A : A;
-fun unfalteringly_Adv : Adv;
-fun unfamiliar_A : A;
-fun unfamiliarity_N : N;
-fun unfashionable_A : A;
-fun unfashionably_Adv : Adv;
-fun unfasten_V : V;
-fun unfasten_V2 : V2;
-fun unfathomable_A : A;
-fun unfathomed_A : A;
-fun unfavourable_A : A;
-fun unfavourably_Adv : Adv;
-fun unfed_A : A;
-fun unfeeling_A : A;
-fun unfeelingly_Adv : Adv;
-fun unfeigned_A : A;
-fun unfeignedly_Adv : Adv;
-fun unfermented_A : A;
-fun unfertilized_A : A;
-fun unfettered_A : A;
-fun unfinished_A : A;
-fun unfit_A : A;
-fun unfit_V2 : V2;
-fun unflagging_A : A;
-fun unflappable_A : A;
-fun unfledged_A : A;
-fun unflinching_A : A;
-fun unflurried_A : A;
-fun unfold_V : V;
-fun unfold_V2 : V2;
-fun unforeseeable_A : A;
-fun unforeseen_A : A;
-fun unforgettable_A : A;
-fun unforgettably_Adv : Adv;
-fun unforgivable_A : A;
-fun unforgivably_Adv : Adv;
-fun unforgiving_A : A;
-fun unformed_A : A;
-fun unforthcoming_A : A;
-fun unfortunate_A : A;
-fun unfortunate_N : N;
-fun unfortunately_Adv : Adv;
-fun unfounded_A : A;
-fun unframed_A : A;
-fun unfrequented_A : A;
-fun unfriendliness_N : N;
-fun unfriendly_A : A;
-fun unfrock_V2 : V2;
-fun unfruitful_A : A;
-fun unfulfilled_A : A;
-fun unfurl_V : V;
-fun unfurl_V2 : V2;
-fun unfurnished_A : A;
-fun ungainly_A : A;
-fun ungenerous_A : A;
-fun ungentle_A : A;
-fun ungentlemanly_A : A;
-fun unglazed_A : A;
-fun ungodly_A : A;
-fun ungovernable_A : A;
-fun ungraceful_A : A;
-fun ungracious_A : A;
-fun ungraciously_Adv : Adv;
-fun ungrammatical_A : A;
-fun ungrammatically_Adv : Adv;
-fun ungrateful_A : A;
-fun ungratefully_Adv : Adv;
-fun ungratefulness_N : N;
-fun ungrudging_A : A;
-fun ungrudgingly_Adv : Adv;
-fun unguarded_A : A;
-fun unguent_N : N;
-fun unhallowed_A : A;
-fun unhampered_A : A;
-fun unhand_V2 : V2;
-fun unhappily_Adv : Adv;
-fun unhappiness_N : N;
-fun unhappy_A : A;
-fun unharmed_A : A;
-fun unhealed_A : A;
-fun unhealthy_A : A;
-fun unheard_A : A;
-fun unheard_of_A : A;
-fun unhearing_A : A;
-fun unheated_A : A;
-fun unheeded_A : A;
-fun unhelpful_A : A;
-fun unhelpfully_Adv : Adv;
-fun unheralded_A : A;
-fun unhesitating_A : A;
-fun unhesitatingly_Adv : Adv;
-fun unhindered_A : A;
-fun unhinge_V2 : V2;
-fun unhitch_V : V;
-fun unhitch_V2 : V2;
-fun unholy_A : A;
-fun unhook_V2 : V2;
-fun unhoped_for_A : A;
-fun unhorse_V2 : V2;
-fun unhurried_A : A;
-fun unhurriedly_Adv : Adv;
-fun unhurt_A : A;
-fun unhygienic_A : A;
-fun unhygienically_Adv : Adv;
-fun unicef_PN : PN;
-fun unicorn_N : N;
-fun unidentifiable_A : A;
-fun unidentified_A : A;
-fun unification_N : N;
-fun uniform_A : A;
-fun uniform_N : N;
-fun uniformed_A : A;
-fun uniformity_N : N;
-fun uniformly_Adv : Adv;
-fun unify_V2 : V2;
-fun unilateral_A : A;
-fun unilateralism_N : N;
-fun unilateralist_A : A;
-fun unilateralist_N : N;
-fun unilaterally_Adv : Adv;
-fun unimaginable_A : A;
-fun unimaginably_Adv : Adv;
-fun unimaginative_A : A;
-fun unimaginatively_Adv : Adv;
-fun unimpaired_A : A;
-fun unimpeachable_A : A;
-fun unimpeded_A : A;
-fun unimportant_A : A;
-fun unimpressed_A : A;
-fun unimpressive_A : A;
-fun unimpressively_Adv : Adv;
-fun uninfluenced_A : A;
-fun uninformative_A : A;
-fun uninformed_A : A;
-fun uninhabitable_A : A;
-fun uninhabited_A : A;
-fun uninhibited_A : A;
-fun uninitiated_A : A;
-fun uninjured_A : A;
-fun uninspired_A : A;
-fun uninspiring_A : A;
-fun uninsured_A : A;
-fun unintelligent_A : A;
-fun unintelligently_Adv : Adv;
-fun unintelligible_A : A;
-fun unintelligibly_Adv : Adv;
-fun unintended_A : A;
-fun unintentional_A : A;
-fun unintentionally_Adv : Adv;
-fun uninterested_A : A;
-fun uninteresting_A : A;
-fun uninterestingly_Adv : Adv;
-fun uninterrupted_A : A;
-fun uninterruptedly_Adv : Adv;
-fun uninvited_A : A;
-fun uninviting_A : A;
-fun union_N : N;
-fun unionist_N : N;
-fun unique_A : A;
-fun uniquely_Adv : Adv;
-fun uniqueness_N : N;
-fun unisex_A : A;
-fun unison_N : N;
-fun unit_N : N;
-fun unitarian_A : A;
-fun unitarian_N : N;
-fun unitarianism_N : N;
-fun unitary_A : A;
-fun unite_V : V;
-fun unite_V2 : V2;
-fun united_A : A;
-fun unitedly_Adv : Adv;
-fun unity_N : N;
-fun univ_PN : PN;
-fun universal_A : A;
-fun universality_N : N;
-fun universally_Adv : Adv;
-fun universe_N : N;
-fun university_N : N;
-fun unjust_A : A;
-fun unjustifiable_A : A;
-fun unjustifiably_Adv : Adv;
-fun unjustified_A : A;
-fun unjustly_Adv : Adv;
-fun unkempt_A : A;
-fun unkind_A : A;
-fun unkindly_Adv : Adv;
-fun unkissed_A : A;
-fun unknowable_A : A;
-fun unknowing_A : A;
-fun unknowingly_Adv : Adv;
-fun unknown_A : A;
-fun unknown_N : N;
-fun unlabelled_A : A;
-fun unladylike_A : A;
-fun unlamented_A : A;
-fun unlatched_A : A;
-fun unlawful_A : A;
-fun unlawfully_Adv : Adv;
-fun unlearn_V2 : V2;
-fun unleash_V2 : V2;
-fun unleavened_A : A;
-fun unlettered_A : A;
-fun unlicensed_A : A;
-fun unlighted_A : A;
-fun unlikable_A : A;
-fun unlike_A : A;
-fun unlikely_A : A;
-fun unlimited_A : A;
-fun unlined_A : A;
-fun unlisted_A : A;
-fun unlit_A : A;
-fun unliterary_A : A;
-fun unload_V : V;
-fun unload_V2 : V2;
-fun unlocated_A : A;
-fun unlock_V : V;
-fun unlock_V2 : V2;
-fun unlooked_for_A : A;
-fun unloose_V2 : V2;
-fun unlovable_A : A;
-fun unloved_A : A;
-fun unlovely_A : A;
-fun unluckily_Adv : Adv;
-fun unlucky_A : A;
-fun unmade_A : A;
-fun unman_V2 : V2;
-fun unmanageable_A : A;
-fun unmanageably_Adv : Adv;
-fun unmanly_A : A;
-fun unmanned_A : A;
-fun unmannered_A : A;
-fun unmannerly_A : A;
-fun unmarked_A : A;
-fun unmarried_A : A;
-fun unmask_V : V;
-fun unmask_V2 : V2;
-fun unmatchable_A : A;
-fun unmatched_A : A;
-fun unmechanized_A : A;
-fun unmemorable_A : A;
-fun unmemorably_Adv : Adv;
-fun unmentionable_A : A;
-fun unmerciful_A : A;
-fun unmercifully_Adv : Adv;
-fun unmerited_A : A;
-fun unmindful_A : A;
-fun unmingled_A : A;
-fun unmistakable_A : A;
-fun unmistakably_Adv : Adv;
-fun unmitigated_A : A;
-fun unmixed_A : A;
-fun unmodernized_A : A;
-fun unmodified_A : A;
-fun unmolested_A : A;
-fun unmourned_A : A;
-fun unmovable_A : A;
-fun unmoved_A : A;
-fun unmoving_A : A;
-fun unmusical_A : A;
-fun unmusically_Adv : Adv;
-fun unnamed_A : A;
-fun unnatural_A : A;
-fun unnaturally_Adv : Adv;
-fun unnecessarily_Adv : Adv;
-fun unnecessary_A : A;
-fun unnerve_V2 : V2;
-fun unnoticeable_A : A;
-fun unnoticed_A : A;
-fun unnumbered_A : A;
-fun unobjectionable_A : A;
-fun unobservant_A : A;
-fun unobserved_A : A;
-fun unobtainable_A : A;
-fun unobtrusive_A : A;
-fun unobtrusively_Adv : Adv;
-fun unobvious_A : A;
-fun unoccupied_A : A;
-fun unofficial_A : A;
-fun unofficially_Adv : Adv;
-fun unopen_A : A;
-fun unopened_A : A;
-fun unopposed_A : A;
-fun unoriginal_A : A;
-fun unorthodox_A : A;
-fun unpack_V : V;
-fun unpack_V2 : V2;
-fun unpaid_A : A;
-fun unpainted_A : A;
-fun unpalatable_A : A;
-fun unpalatably_Adv : Adv;
-fun unparalleled_A : A;
-fun unpardonable_A : A;
-fun unpardonably_Adv : Adv;
-fun unparliamentary_A : A;
-fun unpatriotic_A : A;
-fun unpatriotically_Adv : Adv;
-fun unpaved_A : A;
-fun unpersuaded_A : A;
-fun unperturbed_A : A;
-fun unpick_V : V;
-fun unpick_V2 : V2;
-fun unplaced_A : A;
-fun unplanned_A : A;
-fun unplayable_A : A;
-fun unpleasant_A : A;
-fun unpleasantly_Adv : Adv;
-fun unpleasantness_N : N;
-fun unplug_V : V;
-fun unplug_V2 : V2;
-fun unplumbed_A : A;
-fun unpolluted_A : A;
-fun unpompous_A : A;
-fun unpopular_A : A;
-fun unpopularity_N : N;
-fun unpractised_A : A;
-fun unprecedented_A : A;
-fun unprecedentedly_Adv : Adv;
-fun unpredictability_N : N;
-fun unpredictable_A : A;
-fun unpredictably_Adv : Adv;
-fun unpredicted_A : A;
-fun unprejudiced_A : A;
-fun unpremeditated_A : A;
-fun unprepared_A : A;
-fun unprepossessing_A : A;
-fun unpretentious_A : A;
-fun unprincipled_A : A;
-fun unprintable_A : A;
-fun unproductive_A : A;
-fun unproductively_Adv : Adv;
-fun unprofessional_A : A;
-fun unprofitable_A : A;
-fun unprofitably_Adv : Adv;
-fun unpromising_A : A;
-fun unprompted_A : A;
-fun unpronounceable_A : A;
-fun unpropitious_A : A;
-fun unprotected_A : A;
-fun unproved_A : A;
-fun unproven_A : A;
-fun unprovided_A : A;
-fun unprovoked_A : A;
-fun unpublished_A : A;
-fun unpunished_A : A;
-fun unputdownable_A : A;
-fun unqualified_A : A;
-fun unquestionable_A : A;
-fun unquestionably_Adv : Adv;
-fun unquestioned_A : A;
-fun unquestioning_A : A;
-fun unquiet_A : A;
-fun unquotable_A : A;
-fun unquote_Adv : Adv;
-fun unravel_V : V;
-fun unravel_V2 : V2;
-fun unreached_A : A;
-fun unread_A : A;
-fun unreadable_A : A;
-fun unready_A : A;
-fun unreal_A : A;
-fun unrealistic_A : A;
-fun unrealistically_Adv : Adv;
-fun unreality_N : N;
-fun unrealized_A : A;
-fun unreasonable_A : A;
-fun unreasonably_Adv : Adv;
-fun unreasoning_A : A;
-fun unreceptive_A : A;
-fun unreciprocated_A : A;
-fun unrecognizable_A : A;
-fun unrecognizably_Adv : Adv;
-fun unrecognized_A : A;
-fun unreconciled_A : A;
-fun unrecorded_A : A;
-fun unredeemable_A : A;
-fun unrefined_A : A;
-fun unreflective_A : A;
-fun unregenerate_A : A;
-fun unregistered_A : A;
-fun unrehearsed_A : A;
-fun unrelated_A : A;
-fun unrelaxed_A : A;
-fun unrelenting_A : A;
-fun unreliable_A : A;
-fun unreliably_Adv : Adv;
-fun unrelieved_A : A;
-fun unremarkable_A : A;
-fun unremarkably_Adv : Adv;
-fun unremitting_A : A;
-fun unrepeatable_A : A;
-fun unrepentant_A : A;
-fun unrepresentative_A : A;
-fun unrequested_A : A;
-fun unrequited_A : A;
-fun unreserved_A : A;
-fun unreservedly_Adv : Adv;
-fun unresisting_A : A;
-fun unresolved_A : A;
-fun unrest_N : N;
-fun unrestrained_A : A;
-fun unrestricted_A : A;
-fun unrevised_A : A;
-fun unrewarded_A : A;
-fun unrewarding_A : A;
-fun unrhythmical_A : A;
-fun unrighteous_A : A;
-fun unrighteously_Adv : Adv;
-fun unripe_A : A;
-fun unripened_A : A;
-fun unrivalled_A : A;
-fun unroll_V : V;
-fun unroll_V2 : V2;
-fun unromantic_A : A;
-fun unromantically_Adv : Adv;
-fun unruffled_A : A;
-fun unruly_A : A;
-fun unsaddle_V2 : V2;
-fun unsaddled_A : A;
-fun unsafe_A : A;
-fun unsaid_A : A;
-fun unsaleable_A : A;
-fun unsalted_A : A;
-fun unsatisfactorily_Adv : Adv;
-fun unsatisfactory_A : A;
-fun unsatisfied_A : A;
-fun unsatisfying_A : A;
-fun unsaturated_A : A;
-fun unsavoury_A : A;
-fun unsay_V2 : V2;
-fun unscathed_A : A;
-fun unscheduled_A : A;
-fun unscientific_A : A;
-fun unscientifically_Adv : Adv;
-fun unscramble_V2 : V2;
-fun unscrew_V : V;
-fun unscrew_V2 : V2;
-fun unscripted_A : A;
-fun unscrupulous_A : A;
-fun unscrupulously_Adv : Adv;
-fun unsealed_A : A;
-fun unseasonable_A : A;
-fun unseasonably_Adv : Adv;
-fun unseasoned_A : A;
-fun unseat_V2 : V2;
-fun unseaworthy_A : A;
-fun unsecured_A : A;
-fun unseeded_A : A;
-fun unseeing_A : A;
-fun unseemly_A : A;
-fun unseen_A : A;
-fun unseen_N : N;
-fun unselected_A : A;
-fun unselective_A : A;
-fun unselfconscious_A : A;
-fun unselfconsciously_Adv : Adv;
-fun unselfish_A : A;
-fun unselfishly_Adv : Adv;
-fun unselfishness_N : N;
-fun unsettle_V2 : V2;
-fun unsex_V2 : V2;
-fun unsexed_A : A;
-fun unshakable_A : A;
-fun unshakably_Adv : Adv;
-fun unshaved_A : A;
-fun unshaven_A : A;
-fun unsheathe_V2 : V2;
-fun unshielded_A : A;
-fun unshrinkable_A : A;
-fun unshrinking_A : A;
-fun unshuttered_A : A;
-fun unsighted_A : A;
-fun unsightliness_N : N;
-fun unsightly_A : A;
-fun unsigned_A : A;
-fun unsilenced_A : A;
-fun unsinkable_A : A;
-fun unskilled_A : A;
-fun unsmiling_A : A;
-fun unsociable_A : A;
-fun unsociably_Adv : Adv;
-fun unsocial_A : A;
-fun unsold_A : A;
-fun unsolicited_A : A;
-fun unsolved_A : A;
-fun unsophisticated_A : A;
-fun unsound_A : A;
-fun unsparing_A : A;
-fun unsparingly_Adv : Adv;
-fun unspeakable_A : A;
-fun unspeakably_Adv : Adv;
-fun unspecialized_A : A;
-fun unspecific_A : A;
-fun unspecifically_Adv : Adv;
-fun unspecified_A : A;
-fun unspectacular_A : A;
-fun unspoiled_A : A;
-fun unspoilt_A : A;
-fun unspoken_A : A;
-fun unsporting_A : A;
-fun unsportingly_Adv : Adv;
-fun unsportsmanlike_A : A;
-fun unspotted_A : A;
-fun unstable_A : A;
-fun unstartling_A : A;
-fun unstated_A : A;
-fun unstatesmanlike_A : A;
-fun unsteadily_Adv : Adv;
-fun unsteady_A : A;
-fun unstoppable_A : A;
-fun unstrained_A : A;
-fun unstressed_A : A;
-fun unstructured_A : A;
-fun unstrung_A : A;
-fun unstuck_A : A;
-fun unstudied_A : A;
-fun unsubtle_A : A;
-fun unsuccessful_A : A;
-fun unsuccessfully_Adv : Adv;
-fun unsuitability_N : N;
-fun unsuitable_A : A;
-fun unsuitably_Adv : Adv;
-fun unsuited_A : A;
-fun unsullied_A : A;
-fun unsung_A : A;
-fun unsupervised_A : A;
-fun unsupported_A : A;
-fun unsure_A : A;
-fun unsurpassed_A : A;
-fun unsuspected_A : A;
-fun unsuspecting_A : A;
-fun unsuspectingly_Adv : Adv;
-fun unsuspicious_A : A;
-fun unswayed_A : A;
-fun unsweetened_A : A;
-fun unswept_A : A;
-fun unswerving_A : A;
-fun unswervingly_Adv : Adv;
-fun unsyllabic_A : A;
-fun unsympathetic_A : A;
-fun unsympathetically_Adv : Adv;
-fun unsystematic_A : A;
-fun unsystematically_Adv : Adv;
-fun untainted_A : A;
-fun untamed_A : A;
-fun untapped_A : A;
-fun untarnished_A : A;
-fun untaxed_A : A;
-fun untenable_A : A;
-fun untenanted_A : A;
-fun untended_A : A;
-fun untested_A : A;
-fun untethered_A : A;
-fun unthinkable_A : A;
-fun unthinking_A : A;
-fun unthinkingly_Adv : Adv;
-fun unthought_of_A : A;
-fun untidily_Adv : Adv;
-fun untidiness_N : N;
-fun untidy_A : A;
-fun untie_V : V;
-fun untie_V2 : V2;
-fun untimely_A : A;
-fun untiring_A : A;
-fun untitled_A : A;
-fun untold_A : A;
-fun untouchable_A : A;
-fun untouchable_N : N;
-fun untouched_A : A;
-fun untoward_A : A;
-fun untrained_A : A;
-fun untrammelled_A : A;
-fun untranslatable_A : A;
-fun untreated_A : A;
-fun untried_A : A;
-fun untroubled_A : A;
-fun untrue_A : A;
-fun untruly_Adv : Adv;
-fun untrustworthy_A : A;
-fun untruth_N : N;
-fun untruthful_A : A;
-fun untruthfully_Adv : Adv;
-fun untucked_A : A;
-fun unturned_A : A;
-fun untutored_A : A;
-fun untwisted_A : A;
-fun untypical_A : A;
-fun untypically_Adv : Adv;
-fun unused_A : A;
-fun unusual_A : A;
-fun unusually_Adv : Adv;
-fun unutterable_A : A;
-fun unutterably_Adv : Adv;
-fun unvaried_A : A;
-fun unvarnished_A : A;
-fun unvarying_A : A;
-fun unveil_V : V;
-fun unveil_V2 : V2;
-fun unverified_A : A;
-fun unversed_A : A;
-fun unvigilant_A : A;
-fun unvoiced_A : A;
-fun unwanted_A : A;
-fun unwarily_Adv : Adv;
-fun unwarrantably_Adv : Adv;
-fun unwarranted_A : A;
-fun unwary_A : A;
-fun unwashed_A : A;
-fun unwavering_A : A;
-fun unwaveringly_Adv : Adv;
-fun unweaned_A : A;
-fun unwearied_A : A;
-fun unwed_A : A;
-fun unwelcome_A : A;
-fun unwell_A : A;
-fun unwholesome_A : A;
-fun unwieldiness_N : N;
-fun unwieldy_A : A;
-fun unwilling_A : A;
-fun unwillingly_Adv : Adv;
-fun unwillingness_N : N;
-fun unwind_V : V;
-fun unwind_V2 : V2;
-fun unwise_A : A;
-fun unwisely_Adv : Adv;
-fun unwitnessed_A : A;
-fun unwitting_A : A;
-fun unwittingly_Adv : Adv;
-fun unwonted_A : A;
-fun unwontedly_Adv : Adv;
-fun unworkable_A : A;
-fun unworkmanlike_A : A;
-fun unworldly_A : A;
-fun unworn_A : A;
-fun unworried_A : A;
-fun unworthily_Adv : Adv;
-fun unworthiness_N : N;
-fun unworthy_A : A;
-fun unwrap_V : V;
-fun unwrap_V2 : V2;
-fun unwritten_A : A;
-fun unyielding_A : A;
-fun unzip_V2 : V2;
-fun up_Adv : Adv;
-fun up_V : V;
-fun up_V2 : V2;
-fun up_and_coming_A : A;
-fun up_beat_N : N;
-fun up_holland_PN : PN;
-fun up_market_A : A;
-fun up_to_date_A : A;
-fun up_to_the_minute_A : A;
-fun upbraid_V2 : V2;
-fun upbraiding_N : N;
-fun upbringing_N : N;
-fun upcountry_A : A;
-fun upcountry_Adv : Adv;
-fun update_V2 : V2;
-fun upgrade_N : N;
-fun upgrade_V2 : V2;
-fun upheaval_N : N;
-fun uphill_A : A;
-fun uphill_Adv : Adv;
-fun uphold_V2 : V2;
-fun upholster_V2 : V2;
-fun upholsterer_N : N;
-fun upholstery_N : N;
-fun upkeep_N : N;
-fun upland_N : N;
-fun uplift_N : N;
-fun uplift_V2 : V2;
-fun upmost_A : A;
-fun upper_A : A;
-fun upper_N : N;
-fun uppercut_N : N;
-fun uppermost_A : A;
-fun uppermost_Adv : Adv;
-fun uppish_A : A;
-fun uppishly_Adv : Adv;
-fun uppishness_N : N;
-fun uppity_A : A;
-fun upright_A : A;
-fun upright_N : N;
-fun uprightly_Adv : Adv;
-fun uprightness_N : N;
-fun uprising_N : N;
-fun uproar_N : N;
-fun uproarious_A : A;
-fun uproariously_Adv : Adv;
-fun uproot_V2 : V2;
-fun upset_N : N;
-fun upset_V : V;
-fun upset_V2 : V2;
-fun upshot_N : N;
-fun upside_down_Adv : Adv;
-fun upstage_A : A;
-fun upstage_Adv : Adv;
-fun upstage_V2 : V2;
-fun upstairs_A : A;
-fun upstairs_Adv : Adv;
-fun upstanding_A : A;
-fun upstart_A : A;
-fun upstart_N : N;
-fun upstream_Adv : Adv;
-fun upsurge_N : N;
-fun uptake_N : N;
-fun uptight_A : A;
-fun upton_PN : PN;
-fun uptown_A : A;
-fun uptown_Adv : Adv;
-fun upturn_N : N;
-fun upturned_A : A;
-fun upward_A : A;
-fun upward_Adv : Adv;
-fun upwards_Adv : Adv;
-fun uranium_N : N;
-fun uranus_PN : PN;
-fun urban_A : A;
-fun urbane_A : A;
-fun urbanely_Adv : Adv;
-fun urbanity_N : N;
-fun urbanization_N : N;
-fun urbanize_V2 : V2;
-fun urchin_N : N;
-fun urdu_A : A;
-fun urdu_N : N;
-fun urge_N : N;
-fun urge_V2 : V2;
-fun urgency_N : N;
-fun urgent_A : A;
-fun urgently_Adv : Adv;
-fun urging_N : N;
-fun uric_A : A;
-fun urinal_N : N;
-fun urinary_A : A;
-fun urinate_V : V;
-fun urine_N : N;
-fun urn_N : N;
-fun ursula_PN : PN;
-fun uruguay_PN : PN;
-fun uruguayan_A : A;
-fun uruguayan_N : N;
-fun urumchi_PN : PN;
-fun us_PN : PN;
-fun usa_PN : PN;
-fun usable_A : A;
-fun usaf_N : N;
-fun usage_N : N;
-fun use_N : N;
-fun use_V2 : V2;
-fun used_A : A;
-fun useful_A : A;
-fun usefully_Adv : Adv;
-fun usefulness_N : N;
-fun useless_A : A;
-fun uselessly_Adv : Adv;
-fun uselessness_N : N;
-fun user_N : N;
-fun ushaw_moor_PN : PN;
-fun usher_N : N;
-fun usher_V2 : V2;
-fun usherette_N : N;
-fun usn_N : N;
-fun uss_N : N;
-fun ussr_N : N;
-fun usual_A : A;
-fun usually_Adv : Adv;
-fun usurer_N : N;
-fun usurious_A : A;
-fun usurp_V2 : V2;
-fun usurpation_N : N;
-fun usurper_N : N;
-fun usury_N : N;
-fun utah_PN : PN;
-fun utensil_N : N;
-fun uterine_A : A;
-fun uterus_N : N;
-fun utilitarian_A : A;
-fun utilitarian_N : N;
-fun utilitarianism_N : N;
-fun utility_N : N;
-fun utilizable_A : A;
-fun utilization_N : N;
-fun utilize_V2 : V2;
-fun utmost_A : A;
-fun utmost_N : N;
-fun utopia_N : N;
-fun utopian_A : A;
-fun utrecht_PN : PN;
-fun utter_A : A;
-fun utter_V2 : V2;
-fun utterance_N : N;
-fun utterly_Adv : Adv;
-fun uttermost_A : A;
-fun uttermost_N : N;
-fun uttoxeter_PN : PN;
-fun uvula_N : N;
-fun uvular_A : A;
-fun uxorious_A : A;
-fun uxoriously_Adv : Adv;
-fun uxoriousness_N : N;
-fun v_and_a_N : N;
-fun vac_N : N;
-fun vacancy_N : N;
-fun vacant_A : A;
-fun vacantly_Adv : Adv;
-fun vacate_V2 : V2;
-fun vacation_N : N;
-fun vacation_V : V;
-fun vacationist_N : N;
-fun vaccinate_V2 : V2;
-fun vaccination_N : N;
-fun vaccine_N : N;
-fun vacillate_V : V;
-fun vacillation_N : N;
-fun vacuity_N : N;
-fun vacuous_A : A;
-fun vacuously_Adv : Adv;
-fun vacuum_N : N;
-fun vade_mecum_N : N;
-fun vagabond_A : A;
-fun vagabond_N : N;
-fun vagary_N : N;
-fun vagina_N : N;
-fun vaginal_A : A;
-fun vagrancy_N : N;
-fun vagrant_A : A;
-fun vagrant_N : N;
-fun vague_A : A;
-fun vaguely_Adv : Adv;
-fun vagueness_N : N;
-fun vain_A : A;
-fun vainglorious_A : A;
-fun vainglory_N : N;
-fun vainly_Adv : Adv;
-fun valance_N : N;
-fun vale_N : N;
-fun valediction_N : N;
-fun valedictory_A : A;
-fun valence_N : N;
-fun valencia_PN : PN;
-fun valenciennes_PN : PN;
-fun valency_N : N;
-fun valentine_N : N;
-fun valerian_N : N;
-fun valet_N : N;
-fun valet_V2 : V2;
-fun valetudinarian_A : A;
-fun valetudinarian_N : N;
-fun valiant_A : A;
-fun valiantly_Adv : Adv;
-fun valid_A : A;
-fun validate_V2 : V2;
-fun validity_N : N;
-fun validly_Adv : Adv;
-fun valise_N : N;
-fun valladolid_PN : PN;
-fun valley_N : N;
-fun valorous_A : A;
-fun valour_N : N;
-fun valuable_A : A;
-fun valuable_N : N;
-fun valuation_N : N;
-fun value_N : N;
-fun value_V2 : V2;
-fun value_added_A : A;
-fun valueless_A : A;
-fun valuer_N : N;
-fun valve_N : N;
-fun valvular_A : A;
-fun vamoose_V : V;
-fun vamp_N : N;
-fun vamp_V : V;
-fun vamp_V2 : V2;
-fun vampire_N : N;
-fun van_N : N;
-fun vancouver_PN : PN;
-fun vandal_N : N;
-fun vandalism_N : N;
-fun vane_N : N;
-fun vanessa_PN : PN;
-fun vanguard_N : N;
-fun vanilla_N : N;
-fun vanish_V : V;
-fun vanity_N : N;
-fun vanquish_V2 : V2;
-fun vantage_N : N;
-fun vantage_point_N : N;
-fun vapid_A : A;
-fun vapidity_N : N;
-fun vapidly_Adv : Adv;
-fun vapidness_N : N;
-fun vaporization_N : N;
-fun vaporize_V : V;
-fun vaporize_V2 : V2;
-fun vaporous_A : A;
-fun vapour_N : N;
-fun vapour_bath_N : N;
-fun varanasi_PN : PN;
-fun variability_N : N;
-fun variable_A : A;
-fun variable_N : N;
-fun variableness_N : N;
-fun variably_Adv : Adv;
-fun variance_N : N;
-fun variant_A : A;
-fun variant_N : N;
-fun variation_N : N;
-fun varicoloured_A : A;
-fun varicose_A : A;
-fun varied_A : A;
-fun variegated_A : A;
-fun variegation_N : N;
-fun variety_N : N;
-fun variform_A : A;
-fun variorum_A : A;
-fun various_A : A;
-fun variously_Adv : Adv;
-fun varlet_N : N;
-fun varnish_N : N;
-fun varnish_V2 : V2;
-fun varsity_N : N;
-fun vary_V : V;
-fun vary_V2 : V2;
-fun vascular_A : A;
-fun vase_N : N;
-fun vasectomy_N : N;
-fun vaseline_N : N;
-fun vassal_N : N;
-fun vassalage_N : N;
-fun vast_A : A;
-fun vasteras_PN : PN;
-fun vastly_Adv : Adv;
-fun vastness_N : N;
-fun vat_N : N;
-fun vatican_N : N;
-fun vaudeville_N : N;
-fun vault_N : N;
-fun vault_V : V;
-fun vault_V2 : V2;
-fun vaulted_A : A;
-fun vaulter_N : N;
-fun vaulting_horse_N : N;
-fun vaunt_N : N;
-fun vaunt_V : V;
-fun vaunt_V2 : V2;
-fun vaunter_N : N;
-fun vauntingly_Adv : Adv;
-fun vc_N : N;
-fun vd_N : N;
-fun veal_N : N;
-fun vector_N : N;
-fun veer_V : V;
-fun vegetable_A : A;
-fun vegetable_N : N;
-fun vegetarian_N : N;
-fun vegetate_V : V;
-fun vegetation_N : N;
-fun vehemence_N : N;
-fun vehement_A : A;
-fun vehemently_Adv : Adv;
-fun vehicle_N : N;
-fun vehicular_A : A;
-fun veil_N : N;
-fun veil_V2 : V2;
-fun veiling_N : N;
-fun vein_N : N;
-fun veined_A : A;
-fun veld_N : N;
-fun vellum_N : N;
-fun velocipede_N : N;
-fun velocity_N : N;
-fun velour_N : N;
-fun velvet_N : N;
-fun velveteen_N : N;
-fun velvety_A : A;
-fun venal_A : A;
-fun venality_N : N;
-fun venally_Adv : Adv;
-fun vend_V2 : V2;
-fun vendee_N : N;
-fun vender_N : N;
-fun vendetta_N : N;
-fun vendor_N : N;
-fun veneer_N : N;
-fun veneer_V2 : V2;
-fun venerable_A : A;
-fun venerate_V2 : V2;
-fun veneration_N : N;
-fun venereal_A : A;
-fun venetian_A : A;
-fun venezia_PN : PN;
-fun venezuela_PN : PN;
-fun venezuelan_A : A;
-fun venezuelan_N : N;
-fun vengeance_N : N;
-fun vengeful_A : A;
-fun venial_A : A;
-fun venice_PN : PN;
-fun venison_N : N;
-fun venom_N : N;
-fun venomed_A : A;
-fun venomous_A : A;
-fun venomously_Adv : Adv;
-fun venous_A : A;
-fun vent_N : N;
-fun vent_V2 : V2;
-fun vent_hole_N : N;
-fun ventilate_V2 : V2;
-fun ventilation_N : N;
-fun ventilator_N : N;
-fun ventnor_PN : PN;
-fun ventral_A : A;
-fun ventricle_N : N;
-fun ventricular_A : A;
-fun ventriloquism_N : N;
-fun ventriloquist_N : N;
-fun venture_N : N;
-fun venture_V : V;
-fun venture_V2 : V2;
-fun venturesome_A : A;
-fun venturous_A : A;
-fun venue_N : N;
-fun venus_PN : PN;
-fun vera_PN : PN;
-fun veracious_A : A;
-fun veraciously_Adv : Adv;
-fun veracity_N : N;
-fun veranda_N : N;
-fun verandah_N : N;
-fun verb_N : N;
-fun verbal_A : A;
-fun verbalize_V2 : V2;
-fun verbally_Adv : Adv;
-fun verbatim_A : A;
-fun verbatim_Adv : Adv;
-fun verbena_N : N;
-fun verbiage_N : N;
-fun verbose_A : A;
-fun verbosely_Adv : Adv;
-fun verboseness_N : N;
-fun verbosity_N : N;
-fun verdancy_N : N;
-fun verdant_A : A;
-fun verdict_N : N;
-fun verdigris_N : N;
-fun verdure_N : N;
-fun verey_A : A;
-fun verge_N : N;
-fun verge_V : V;
-fun verger_N : N;
-fun verifiable_A : A;
-fun verification_N : N;
-fun verify_V2 : V2;
-fun verily_Adv : Adv;
-fun verisimilitude_N : N;
-fun veritable_A : A;
-fun verity_N : N;
-fun vermicelli_N : N;
-fun vermiform_A : A;
-fun vermilion_A : A;
-fun vermilion_N : N;
-fun vermin_N : N;
-fun verminous_A : A;
-fun vermont_PN : PN;
-fun vermouth_N : N;
-fun vernacular_A : A;
-fun vernacular_N : N;
-fun vernal_A : A;
-fun vernon_PN : PN;
-fun verona_PN : PN;
-fun veronica_N : N;
-fun veronica_PN : PN;
-fun verruca_N : N;
-fun versatile_A : A;
-fun versatility_N : N;
-fun verse_N : N;
-fun versed_A : A;
-fun versification_N : N;
-fun versifier_N : N;
-fun versify_V : V;
-fun versify_V2 : V2;
-fun version_N : N;
-fun verso_N : N;
-fun vertebra_N : N;
-fun vertebrate_A : A;
-fun vertebrate_N : N;
-fun vertex_N : N;
-fun vertical_A : A;
-fun vertical_N : N;
-fun vertically_Adv : Adv;
-fun vertiginous_A : A;
-fun vertigo_N : N;
-fun verve_N : N;
-fun very_A : A;
-fun very_Adv : Adv;
-fun vesicle_N : N;
-fun vesicular_A : A;
-fun vessel_N : N;
-fun vest_N : N;
-fun vest_V : V;
-fun vest_V2 : V2;
-fun vestal_A : A;
-fun vestal_N : N;
-fun vestibule_N : N;
-fun vestige_N : N;
-fun vestigial_A : A;
-fun vestment_N : N;
-fun vestry_N : N;
-fun vestryman_N : N;
-fun vesture_N : N;
-fun vesture_V2 : V2;
-fun vet_N : N;
-fun vet_V2 : V2;
-fun vetch_N : N;
-fun veteran_N : N;
-fun veterinary_A : A;
-fun veto_N : N;
-fun veto_V2 : V2;
-fun vex_V2 : V2;
-fun vexation_N : N;
-fun vexatious_A : A;
-fun vhf_PN : PN;
-fun via_media_N : N;
-fun viability_N : N;
-fun viable_A : A;
-fun viaduct_N : N;
-fun vial_N : N;
-fun vibrant_A : A;
-fun vibraphone_N : N;
-fun vibrate_V : V;
-fun vibrate_V2 : V2;
-fun vibration_N : N;
-fun vibrato_N : N;
-fun vibrator_N : N;
-fun vic_PN : PN;
-fun vicar_N : N;
-fun vicarage_N : N;
-fun vicarious_A : A;
-fun vicariously_Adv : Adv;
-fun vice_N : N;
-fun vice_versa_Adv : Adv;
-fun vicenza_PN : PN;
-fun viceregal_A : A;
-fun vicereine_N : N;
-fun viceroy_N : N;
-fun vicinity_N : N;
-fun vicious_A : A;
-fun viciously_Adv : Adv;
-fun viciousness_N : N;
-fun vicissitude_N : N;
-fun vicky_PN : PN;
-fun victim_N : N;
-fun victimization_N : N;
-fun victimize_V2 : V2;
-fun victor_N : N;
-fun victor_PN : PN;
-fun victoria_N : N;
-fun victoria_PN : PN;
-fun victorian_A : A;
-fun victorian_N : N;
-fun victoriana_N : N;
-fun victorious_A : A;
-fun victoriously_Adv : Adv;
-fun victory_N : N;
-fun victual_N : N;
-fun victual_V : V;
-fun victual_V2 : V2;
-fun victualler_N : N;
-fun vicuna_N : N;
-fun videlicet_Adv : Adv;
-fun video_N : N;
-fun videotape_N : N;
-fun videotape_V2 : V2;
-fun vie_V : V;
-fun vienna_PN : PN;
-fun vietnam_PN : PN;
-fun vietnamese_A : A;
-fun vietnamese_N : N;
-fun view_N : N;
-fun view_V2 : V2;
-fun viewer_N : N;
-fun viewfinder_N : N;
-fun viewless_A : A;
-fun viewpark_PN : PN;
-fun viewpoint_N : N;
-fun vigil_N : N;
-fun vigilance_N : N;
-fun vigilant_A : A;
-fun vigilante_N : N;
-fun vigilantly_Adv : Adv;
-fun vignette_N : N;
-fun vigo_PN : PN;
-fun vigorous_A : A;
-fun vigorously_Adv : Adv;
-fun vigour_N : N;
-fun viking_N : N;
-fun vile_A : A;
-fun vilely_Adv : Adv;
-fun vileness_N : N;
-fun vilification_N : N;
-fun vilify_V2 : V2;
-fun villa_N : N;
-fun village_N : N;
-fun villager_N : N;
-fun villain_N : N;
-fun villainess_N : N;
-fun villainous_A : A;
-fun villainy_N : N;
-fun villein_N : N;
-fun villeinage_N : N;
-fun vim_N : N;
-fun vinaigrette_N : N;
-fun vince_PN : PN;
-fun vincent_PN : PN;
-fun vindicate_V2 : V2;
-fun vindication_N : N;
-fun vindictive_A : A;
-fun vindictively_Adv : Adv;
-fun vindictiveness_N : N;
-fun vine_N : N;
-fun vinegar_N : N;
-fun vinegary_A : A;
-fun vinery_N : N;
-fun vineyard_N : N;
-fun vino_N : N;
-fun vinous_A : A;
-fun vintage_N : N;
-fun vintner_N : N;
-fun vinyl_N : N;
-fun viol_N : N;
-fun viola_N : N;
-fun viola_PN : PN;
-fun violate_V2 : V2;
-fun violation_N : N;
-fun violence_N : N;
-fun violent_A : A;
-fun violently_Adv : Adv;
-fun violet_N : N;
-fun violet_PN : PN;
-fun violin_N : N;
-fun violinist_N : N;
-fun vip_N : N;
-fun viper_N : N;
-fun vips_N : N;
-fun virago_N : N;
-fun virgin_A : A;
-fun virgin_N : N;
-fun virginal_A : A;
-fun virginal_N : N;
-fun virginia_N : N;
-fun virginia_PN : PN;
-fun virginia_water_PN : PN;
-fun virginity_N : N;
-fun virgo_PN : PN;
-fun virgule_N : N;
-fun virile_A : A;
-fun virility_N : N;
-fun virology_N : N;
-fun virtu_N : N;
-fun virtual_A : A;
-fun virtually_Adv : Adv;
-fun virtue_N : N;
-fun virtuosity_N : N;
-fun virtuoso_N : N;
-fun virtuous_A : A;
-fun virtuously_Adv : Adv;
-fun virulence_N : N;
-fun virulent_A : A;
-fun virulently_Adv : Adv;
-fun virus_N : N;
-fun vis_a_vis_Adv : Adv;
-fun visa_N : N;
-fun visa_V2 : V2;
-fun visage_N : N;
-fun visaged_A : A;
-fun visceral_A : A;
-fun viscid_A : A;
-fun viscosity_N : N;
-fun viscount_N : N;
-fun viscountcy_N : N;
-fun viscountess_N : N;
-fun viscous_A : A;
-fun visibility_N : N;
-fun visible_A : A;
-fun visibly_Adv : Adv;
-fun vision_N : N;
-fun visionary_A : A;
-fun visionary_N : N;
-fun visit_N : N;
-fun visit_V : V;
-fun visit_V2 : V2;
-fun visitant_N : N;
-fun visitation_N : N;
-fun visiting_N : N;
-fun visitor_N : N;
-fun visor_N : N;
-fun vista_N : N;
-fun visual_A : A;
-fun visualization_N : N;
-fun visualize_V2 : V2;
-fun visually_Adv : Adv;
-fun vital_A : A;
-fun vitalism_N : N;
-fun vitalist_N : N;
-fun vitality_N : N;
-fun vitalize_V2 : V2;
-fun vitally_Adv : Adv;
-fun vitamin_N : N;
-fun vitiate_V2 : V2;
-fun vitoria_PN : PN;
-fun vitreous_A : A;
-fun vitrify_V : V;
-fun vitrify_V2 : V2;
-fun vitriol_N : N;
-fun vitriolic_A : A;
-fun vituperate_V2 : V2;
-fun vituperation_N : N;
-fun vituperative_A : A;
-fun viv_PN : PN;
-fun viva_N : N;
-fun viva_voce_A : A;
-fun viva_voce_Adv : Adv;
-fun viva_voce_N : N;
-fun vivace_Adv : Adv;
-fun vivacious_A : A;
-fun vivaciously_Adv : Adv;
-fun vivacity_N : N;
-fun vivian_PN : PN;
-fun vivid_A : A;
-fun vividly_Adv : Adv;
-fun vividness_N : N;
-fun vivien_PN : PN;
-fun vivienne_PN : PN;
-fun viviparous_A : A;
-fun vivisect_V2 : V2;
-fun vivisection_N : N;
-fun vivisectionist_N : N;
-fun vixen_N : N;
-fun vixenish_A : A;
-fun viz_PN : PN;
-fun vizier_N : N;
-fun vocabulary_N : N;
-fun vocal_A : A;
-fun vocalist_N : N;
-fun vocalize_V2 : V2;
-fun vocally_Adv : Adv;
-fun vocation_N : N;
-fun vocational_A : A;
-fun vocative_A : A;
-fun vocative_N : N;
-fun vociferate_V : V;
-fun vociferate_V2 : V2;
-fun vociferation_N : N;
-fun vociferous_A : A;
-fun vodka_N : N;
-fun vogue_N : N;
-fun voice_N : N;
-fun voice_V2 : V2;
-fun voiced_A : A;
-fun voiceless_A : A;
-fun void_A : A;
-fun void_N : N;
-fun void_V2 : V2;
-fun voile_N : N;
-fun vol_N : N;
-fun volatile_A : A;
-fun volatility_N : N;
-fun volcanic_A : A;
-fun volcano_N : N;
-fun vole_N : N;
-fun volgograd_PN : PN;
-fun volition_N : N;
-fun volitional_A : A;
-fun volley_N : N;
-fun volley_V : V;
-fun volley_V2 : V2;
-fun volleyball_N : N;
-fun vols_N : N;
-fun volt_N : N;
-fun voltage_N : N;
-fun volte_face_N : N;
-fun volubility_N : N;
-fun voluble_A : A;
-fun volubly_Adv : Adv;
-fun volume_N : N;
-fun voluminous_A : A;
-fun voluntarily_Adv : Adv;
-fun voluntary_A : A;
-fun voluntary_N : N;
-fun volunteer_N : N;
-fun volunteer_V : V;
-fun volunteer_V2 : V2;
-fun voluptuary_N : N;
-fun voluptuous_A : A;
-fun voluptuously_Adv : Adv;
-fun voluptuousness_N : N;
-fun volute_N : N;
-fun voluted_A : A;
-fun vomit_N : N;
-fun vomit_V : V;
-fun vomit_V2 : V2;
-fun voodoo_N : N;
-fun voodooism_N : N;
-fun voracious_A : A;
-fun voraciously_Adv : Adv;
-fun voracity_N : N;
-fun voronezh_PN : PN;
-fun vortex_N : N;
-fun votary_N : N;
-fun vote_N : N;
-fun vote_V : V;
-fun vote_V2 : V2;
-fun voteless_A : A;
-fun voter_N : N;
-fun votive_A : A;
-fun vouch_V : V;
-fun voucher_N : N;
-fun vouchsafe_V2 : V2;
-fun vow_N : N;
-fun vow_V2 : V2;
-fun vowel_N : N;
-fun vox_N : N;
-fun vox_populi_N : N;
-fun voyage_N : N;
-fun voyage_V : V;
-fun voyager_N : N;
-fun voyeur_N : N;
-fun voyeurism_N : N;
-fun voyeuristic_A : A;
-fun voyeuristically_Adv : Adv;
-fun vp_N : N;
-fun vs_PN : PN;
-fun vso_PN : PN;
-fun vulcanite_N : N;
-fun vulcanization_N : N;
-fun vulcanize_V2 : V2;
-fun vulgar_A : A;
-fun vulgarian_N : N;
-fun vulgarism_N : N;
-fun vulgarity_N : N;
-fun vulgarization_N : N;
-fun vulgarize_V2 : V2;
-fun vulgarly_Adv : Adv;
-fun vulgate_N : N;
-fun vulnerability_N : N;
-fun vulnerable_A : A;
-fun vulpine_A : A;
-fun vulture_N : N;
-fun vulva_N : N;
-fun wad_N : N;
-fun wad_V2 : V2;
-fun wadding_N : N;
-fun waddle_N : N;
-fun waddle_V : V;
-fun wade_V : V;
-fun wade_V2 : V2;
-fun wader_N : N;
-fun wadi_N : N;
-fun wafer_N : N;
-fun waffle_N : N;
-fun waffle_V : V;
-fun waft_N : N;
-fun waft_V2 : V2;
-fun wag_N : N;
-fun wag_V : V;
-fun wag_V2 : V2;
-fun wage_N : N;
-fun wage_V2 : V2;
-fun wage_claim_N : N;
-fun wage_earner_N : N;
-fun wage_freeze_N : N;
-fun wager_N : N;
-fun wager_V : V;
-fun wager_V2 : V2;
-fun waggery_N : N;
-fun waggish_A : A;
-fun waggishly_Adv : Adv;
-fun waggishness_N : N;
-fun waggle_V : V;
-fun waggle_V2 : V2;
-fun waggon_N : N;
-fun waggoner_N : N;
-fun wagon_lit_N : N;
-fun wagtail_N : N;
-fun waif_N : N;
-fun wail_N : N;
-fun wail_V : V;
-fun wail_V2 : V2;
-fun wain_N : N;
-fun wainscot_N : N;
-fun wainscoted_A : A;
-fun waist_N : N;
-fun waist_deep_A : A;
-fun waist_deep_Adv : Adv;
-fun waist_high_A : A;
-fun waist_high_Adv : Adv;
-fun waistband_N : N;
-fun waistcoat_N : N;
-fun waistline_N : N;
-fun wait_N : N;
-fun wait_V : V;
-fun wait_V2 : V2;
-fun waiter_N : N;
-fun waiting_list_N : N;
-fun waiting_room_N : N;
-fun waitress_N : N;
-fun waive_V2 : V2;
-fun waiver_N : N;
-fun wake_N : N;
-fun wake_V : V;
-fun wake_V2 : V2;
-fun wakefield_PN : PN;
-fun wakeful_A : A;
-fun wakefulness_N : N;
-fun waken_V : V;
-fun waken_V2 : V2;
-fun waking_A : A;
-fun wale_N : N;
-fun wales_PN : PN;
-fun walk_N : N;
-fun walk_V : V;
-fun walk_V2 : V2;
-fun walkabout_N : N;
-fun walkaway_N : N;
-fun walker_N : N;
-fun walkie_talkie_N : N;
-fun walking_N : N;
-fun walkout_N : N;
-fun walkover_N : N;
-fun wall_N : N;
-fun wall_V2 : V2;
-fun wall_eyed_A : A;
-fun wall_painting_N : N;
-fun wall_street_PN : PN;
-fun wallaby_N : N;
-fun wallace_PN : PN;
-fun wallah_N : N;
-fun wallasey_PN : PN;
-fun wallet_N : N;
-fun wallflower_N : N;
-fun wallingford_PN : PN;
-fun wallop_N : N;
-fun wallop_V2 : V2;
-fun walloping_A : A;
-fun wallow_N : N;
-fun wallow_V : V;
-fun wallpaper_N : N;
-fun wallsend_PN : PN;
-fun wally_PN : PN;
-fun walnut_N : N;
-fun walrus_N : N;
-fun walsall_PN : PN;
-fun walsham_PN : PN;
-fun walter_PN : PN;
-fun waltham_forest_PN : PN;
-fun walton_PN : PN;
-fun waltz_N : N;
-fun waltz_V : V;
-fun waltz_V2 : V2;
-fun wampum_N : N;
-fun wan_A : A;
-fun wand_N : N;
-fun wander_V : V;
-fun wander_V2 : V2;
-fun wanderer_N : N;
-fun wanderlust_N : N;
-fun wandsworth_PN : PN;
-fun wane_N : N;
-fun wane_V : V;
-fun wangle_N : N;
-fun wangle_V2 : V2;
-fun wank_N : N;
-fun wank_V : V;
-fun wanly_Adv : Adv;
-fun wanness_N : N;
-fun want_N : N;
-fun want_V : V;
-fun want_V2 : V2;
-fun want_ad_N : N;
-fun wantage_PN : PN;
-fun wanton_A : A;
-fun wanton_N : N;
-fun wanton_V : V;
-fun wantonly_Adv : Adv;
-fun wantonness_N : N;
-fun war_N : N;
-fun war_V : V;
-fun war_baby_N : N;
-fun war_bride_N : N;
-fun war_cloud_N : N;
-fun war_cry_N : N;
-fun war_dance_N : N;
-fun war_god_N : N;
-fun war_torn_A : A;
-fun war_widow_N : N;
-fun warble_N : N;
-fun warble_V : V;
-fun warble_V2 : V2;
-fun warbler_N : N;
-fun ward_N : N;
-fun ward_V2 : V2;
-fun warden_N : N;
-fun warder_N : N;
-fun wardress_N : N;
-fun wardrobe_N : N;
-fun wardroom_N : N;
-fun ware_N : N;
-fun ware_PN : PN;
-fun ware_V2 : V2;
-fun warehouse_N : N;
-fun warehousing_N : N;
-fun warfare_N : N;
-fun warhead_N : N;
-fun warhorse_N : N;
-fun warily_Adv : Adv;
-fun wariness_N : N;
-fun warley_PN : PN;
-fun warlike_A : A;
-fun warlord_N : N;
-fun warm_A : A;
-fun warm_V : V;
-fun warm_V2 : V2;
-fun warm_blooded_A : A;
-fun warm_hearted_A : A;
-fun warmer_N : N;
-fun warming_pan_N : N;
-fun warminster_PN : PN;
-fun warmly_Adv : Adv;
-fun warmonger_N : N;
-fun warmth_N : N;
-fun warn_V2 : V2;
-fun warning_A : A;
-fun warning_N : N;
-fun warp_N : N;
-fun warp_V : V;
-fun warp_V2 : V2;
-fun warpaint_N : N;
-fun warpath_N : N;
-fun warrant_N : N;
-fun warrant_V2 : V2;
-fun warrantee_N : N;
-fun warrantor_N : N;
-fun warranty_N : N;
-fun warren_N : N;
-fun warrington_PN : PN;
-fun warrior_N : N;
-fun warsaw_PN : PN;
-fun warship_N : N;
-fun warsop_PN : PN;
-fun wart_N : N;
-fun warthog_N : N;
-fun wartime_N : N;
-fun warwick_PN : PN;
-fun warwickshire_PN : PN;
-fun wary_A : A;
-fun wash_N : N;
-fun wash_V : V;
-fun wash_V2 : V2;
-fun wash_drawing_N : N;
-fun wash_hand_basin_N : N;
-fun wash_hand_stand_N : N;
-fun wash_house_N : N;
-fun wash_leather_N : N;
-fun washable_A : A;
-fun washbasin_N : N;
-fun washboard_N : N;
-fun washbowl_N : N;
-fun washcloth_N : N;
-fun washday_N : N;
-fun washer_N : N;
-fun washerwoman_N : N;
-fun washing_N : N;
-fun washing_day_N : N;
-fun washing_machine_N : N;
-fun washing_up_N : N;
-fun washington_PN : PN;
-fun washington_dc_PN : PN;
-fun washout_N : N;
-fun washroom_N : N;
-fun washstand_N : N;
-fun washtub_N : N;
-fun washy_A : A;
-fun wasp_N : N;
-fun wasp_waisted_A : A;
-fun waspish_A : A;
-fun wassail_N : N;
-fun wastage_N : N;
-fun waste_A : A;
-fun waste_N : N;
-fun waste_V : V;
-fun waste_V2 : V2;
-fun waste_paper_basket_N : N;
-fun waste_pipe_N : N;
-fun wastebasket_N : N;
-fun wastebin_N : N;
-fun wasteful_A : A;
-fun wastefully_Adv : Adv;
-fun wasteland_N : N;
-fun waster_N : N;
-fun wastrel_N : N;
-fun watch_N : N;
-fun watch_V : V;
-fun watch_V2 : V2;
-fun watch_chain_N : N;
-fun watch_glass_N : N;
-fun watch_guard_N : N;
-fun watch_key_N : N;
-fun watchdog_N : N;
-fun watcher_N : N;
-fun watchful_A : A;
-fun watchfully_Adv : Adv;
-fun watchfulness_N : N;
-fun watchmaker_N : N;
-fun watchman_N : N;
-fun watchtower_N : N;
-fun watchword_N : N;
-fun water_N : N;
-fun water_V : V;
-fun water_V2 : V2;
-fun water_biscuit_N : N;
-fun water_blister_N : N;
-fun water_bottle_N : N;
-fun water_buffalo_N : N;
-fun water_butt_N : N;
-fun water_cart_N : N;
-fun water_closet_N : N;
-fun water_finder_N : N;
-fun water_glass_N : N;
-fun water_hole_N : N;
-fun water_ice_N : N;
-fun water_jacket_N : N;
-fun water_level_N : N;
-fun water_lily_N : N;
-fun water_line_N : N;
-fun water_main_N : N;
-fun water_nymph_N : N;
-fun water_polo_N : N;
-fun water_power_N : N;
-fun water_rat_N : N;
-fun water_rate_N : N;
-fun water_skiing_N : N;
-fun water_skin_N : N;
-fun water_softener_N : N;
-fun water_spaniel_N : N;
-fun water_supply_N : N;
-fun water_tower_N : N;
-fun water_vole_N : N;
-fun water_waggon_N : N;
-fun water_wagon_N : N;
-fun water_wheel_N : N;
-fun water_worn_A : A;
-fun waterbird_N : N;
-fun waterborne_A : A;
-fun watercannon_N : N;
-fun waterchute_N : N;
-fun watercolour_N : N;
-fun watercolourist_N : N;
-fun watercourse_N : N;
-fun watercress_N : N;
-fun waterfall_N : N;
-fun waterford_PN : PN;
-fun waterfowl_N : N;
-fun waterfront_N : N;
-fun waterhen_N : N;
-fun waterhyacinth_N : N;
-fun watering_can_N : N;
-fun watering_cart_N : N;
-fun waterless_A : A;
-fun waterlogged_A : A;
-fun waterloo_PN : PN;
-fun waterman_N : N;
-fun watermark_N : N;
-fun watermelon_N : N;
-fun watermill_N : N;
-fun waterproof_A : A;
-fun waterproof_N : N;
-fun waterproof_V2 : V2;
-fun watershed_N : N;
-fun waterside_N : N;
-fun waterspout_N : N;
-fun watertable_N : N;
-fun watertight_A : A;
-fun waterway_N : N;
-fun waterworks_N : N;
-fun watery_A : A;
-fun watford_PN : PN;
-fun watt_N : N;
-fun wattage_N : N;
-fun wattle_N : N;
-fun wave_N : N;
-fun wave_V : V;
-fun wave_V2 : V2;
-fun wavelength_N : N;
-fun waver_V : V;
-fun waverer_N : N;
-fun wavy_A : A;
-fun wax_N : N;
-fun wax_V : V;
-fun wax_V2 : V2;
-fun wax_chandler_N : N;
-fun wax_paper_N : N;
-fun waxen_A : A;
-fun waxwork_N : N;
-fun waxy_A : A;
-fun way_Adv : Adv;
-fun way_N : N;
-fun way_out_A : A;
-fun waybill_N : N;
-fun wayfarer_N : N;
-fun wayfaring_A : A;
-fun waylay_V2 : V2;
-fun wayne_PN : PN;
-fun wayside_N : N;
-fun wayward_A : A;
-fun wc_N : N;
-fun wcs_N : N;
-fun weak_A : A;
-fun weak_kneed_A : A;
-fun weaken_V : V;
-fun weaken_V2 : V2;
-fun weakling_N : N;
-fun weakly_A : A;
-fun weakly_Adv : Adv;
-fun weakness_N : N;
-fun weal_N : N;
-fun weald_N : N;
-fun wealth_N : N;
-fun wealthily_Adv : Adv;
-fun wealthy_A : A;
-fun wean_V2 : V2;
-fun weapon_N : N;
-fun weaponless_A : A;
-fun wear_N : N;
-fun wear_PN : PN;
-fun wear_V : V;
-fun wear_V2 : V2;
-fun wearable_A : A;
-fun wearer_N : N;
-fun wearily_Adv : Adv;
-fun weariness_N : N;
-fun wearing_A : A;
-fun wearisome_A : A;
-fun weary_A : A;
-fun weary_V : V;
-fun weary_V2 : V2;
-fun weasel_N : N;
-fun weather_N : N;
-fun weather_V : V;
-fun weather_V2 : V2;
-fun weather_beaten_A : A;
-fun weather_bound_A : A;
-fun weather_bureau_N : N;
-fun weather_chart_N : N;
-fun weather_glass_N : N;
-fun weather_map_N : N;
-fun weather_ship_N : N;
-fun weather_station_N : N;
-fun weather_vane_N : N;
-fun weatherboarding_N : N;
-fun weathercock_N : N;
-fun weatherman_N : N;
-fun weatherproof_A : A;
-fun weave_N : N;
-fun weave_V : V;
-fun weave_V2 : V2;
-fun weaver_N : N;
-fun weaverbird_N : N;
-fun web_N : N;
-fun web_footed_A : A;
-fun web_toed_A : A;
-fun webbed_A : A;
-fun webbing_N : N;
-fun wed_PN : PN;
-fun wed_V : V;
-fun wed_V2 : V2;
-fun wedding_N : N;
-fun wedding_cake_N : N;
-fun wedding_ring_N : N;
-fun wedge_N : N;
-fun wedge_V2 : V2;
-fun wedlock_N : N;
-fun wednesday_N : N;
-fun wednesday_PN : PN;
-fun wee_A : A;
-fun wee_N : N;
-fun wee_V : V;
-fun wee_wee_N : N;
-fun weed_N : N;
-fun weed_V : V;
-fun weed_V2 : V2;
-fun weedkiller_N : N;
-fun weedy_A : A;
-fun week_N : N;
-fun weekday_N : N;
-fun weekend_N : N;
-fun weekend_V : V;
-fun weekender_N : N;
-fun weekly_A : A;
-fun weekly_Adv : Adv;
-fun weekly_N : N;
-fun weeny_A : A;
-fun weep_V : V;
-fun weep_V2 : V2;
-fun weeping_A : A;
-fun weevil_N : N;
-fun weft_N : N;
-fun weigh_V : V;
-fun weigh_V2 : V2;
-fun weighbridge_N : N;
-fun weighing_machine_N : N;
-fun weight_N : N;
-fun weight_V2 : V2;
-fun weightily_Adv : Adv;
-fun weightiness_N : N;
-fun weightless_A : A;
-fun weightlessness_N : N;
-fun weightlifting_N : N;
-fun weighty_A : A;
-fun weir_N : N;
-fun weird_A : A;
-fun weirdie_N : N;
-fun weirdly_Adv : Adv;
-fun weirdness_N : N;
-fun welcome_A : A;
-fun welcome_N : N;
-fun welcome_V2 : V2;
-fun weld_N : N;
-fun weld_V : V;
-fun weld_V2 : V2;
-fun welder_N : N;
-fun welfare_N : N;
-fun welkin_N : N;
-fun well_A : A;
-fun well_Adv : Adv;
-fun well_N : N;
-fun well_V : V;
-fun well_adjusted_A : A;
-fun well_advised_A : A;
-fun well_appointed_A : A;
-fun well_balanced_A : A;
-fun well_behaved_A : A;
-fun well_being_N : N;
-fun well_born_A : A;
-fun well_bred_A : A;
-fun well_conducted_A : A;
-fun well_connected_A : A;
-fun well_disposed_A : A;
-fun well_doer_N : N;
-fun well_doing_N : N;
-fun well_favoured_A : A;
-fun well_found_A : A;
-fun well_founded_A : A;
-fun well_groomed_A : A;
-fun well_grounded_A : A;
-fun well_heeled_A : A;
-fun well_informed_A : A;
-fun well_intentioned_A : A;
-fun well_knit_A : A;
-fun well_known_A : A;
-fun well_lined_A : A;
-fun well_marked_A : A;
-fun well_meaning_A : A;
-fun well_meant_A : A;
-fun well_nigh_Adv : Adv;
-fun well_read_A : A;
-fun well_rounded_A : A;
-fun well_set_A : A;
-fun well_shaven_A : A;
-fun well_spoken_A : A;
-fun well_timed_A : A;
-fun well_to_do_A : A;
-fun well_tried_A : A;
-fun well_turned_A : A;
-fun well_water_N : N;
-fun well_wisher_N : N;
-fun well_worn_A : A;
-fun wellhead_N : N;
-fun wellingborough_PN : PN;
-fun wellington_N : N;
-fun wellington_PN : PN;
-fun wells_PN : PN;
-fun welsh_A : A;
-fun welsh_N : N;
-fun welsh_V : V;
-fun welsher_N : N;
-fun welshman_N : N;
-fun welshpool_PN : PN;
-fun welt_N : N;
-fun welter_A : A;
-fun welter_N : N;
-fun welter_V : V;
-fun welterweight_N : N;
-fun welwyn_PN : PN;
-fun welwyn_garden_city_PN : PN;
-fun wen_N : N;
-fun wench_N : N;
-fun wench_V : V;
-fun wend_V2 : V2;
-fun wendover_PN : PN;
-fun wendy_PN : PN;
-fun werewolf_N : N;
-fun wesleyan_A : A;
-fun wesleyan_N : N;
-fun west_Adv : Adv;
-fun west_N : N;
-fun west_bromwich_PN : PN;
-fun west_country_A : A;
-fun west_end_A : A;
-fun westbury_PN : PN;
-fun westerly_A : A;
-fun westerly_Adv : Adv;
-fun western_A : A;
-fun western_N : N;
-fun westerner_N : N;
-fun westernization_N : N;
-fun westernize_V2 : V2;
-fun westernmost_A : A;
-fun westhoughton_PN : PN;
-fun westmeath_PN : PN;
-fun westminster_PN : PN;
-fun westmoreland_PN : PN;
-fun weston_super_mare_PN : PN;
-fun westward_A : A;
-fun westward_Adv : Adv;
-fun westwards_Adv : Adv;
-fun wet_A : A;
-fun wet_N : N;
-fun wet_V2 : V2;
-fun wet_nurse_N : N;
-fun wether_N : N;
-fun wetherby_PN : PN;
-fun wetting_N : N;
-fun wexford_PN : PN;
-fun weymouth_PN : PN;
-fun whack_N : N;
-fun whack_V2 : V2;
-fun whacked_A : A;
-fun whacker_N : N;
-fun whacking_A : A;
-fun whacking_Adv : Adv;
-fun whacking_N : N;
-fun whale_N : N;
-fun whale_V : V;
-fun whalebone_N : N;
-fun whaler_N : N;
-fun whaley_bridge_PN : PN;
-fun whaling_gun_N : N;
-fun whang_Adv : Adv;
-fun whang_N : N;
-fun whang_V2 : V2;
-fun wharf_N : N;
-fun wharfage_N : N;
-fun what_A : A;
-fun what_for_N : N;
-fun whate'er_A : A;
-fun whatever_A : A;
-fun whatnot_N : N;
-fun whatsoe'er_A : A;
-fun whatsoever_A : A;
-fun wheat_N : N;
-fun wheaten_A : A;
-fun wheatley_hill_PN : PN;
-fun wheedle_V2 : V2;
-fun wheel_N : N;
-fun wheel_V : V;
-fun wheel_V2 : V2;
-fun wheelbarrow_N : N;
-fun wheelbase_N : N;
-fun wheelchair_N : N;
-fun wheelhouse_N : N;
-fun wheelwright_N : N;
-fun wheeze_N : N;
-fun wheeze_V : V;
-fun wheeze_V2 : V2;
-fun wheezily_Adv : Adv;
-fun wheeziness_N : N;
-fun wheezy_A : A;
-fun whelk_N : N;
-fun whelp_N : N;
-fun whelp_V : V;
-fun when_Adv : Adv;
-fun whence_Adv : Adv;
-fun whencesoever_A : A;
-fun whenever_Adv : Adv;
-fun where_Adv : Adv;
-fun whereabouts_Adv : Adv;
-fun whereat_Adv : Adv;
-fun whereby_Adv : Adv;
-fun wherefore_Adv : Adv;
-fun wherein_Adv : Adv;
-fun whereof_Adv : Adv;
-fun whereon_Adv : Adv;
-fun wheresoever_Adv : Adv;
-fun whereto_Adv : Adv;
-fun whereunto_Adv : Adv;
-fun whereupon_Adv : Adv;
-fun wherever_Adv : Adv;
-fun wherewith_Adv : Adv;
-fun wherewithal_Adv : Adv;
-fun wherewithal_N : N;
-fun wherry_N : N;
-fun whet_V2 : V2;
-fun whetstone_N : N;
-fun whey_N : N;
-fun which_A : A;
-fun whichever_A : A;
-fun whichsoever_A : A;
-fun whiff_N : N;
-fun whig_N : N;
-fun while_N : N;
-fun while_V2 : V2;
-fun whim_N : N;
-fun whimper_N : N;
-fun whimper_V : V;
-fun whimper_V2 : V2;
-fun whimsey_N : N;
-fun whimsical_A : A;
-fun whimsicality_N : N;
-fun whimsically_Adv : Adv;
-fun whimsy_N : N;
-fun whin_N : N;
-fun whine_N : N;
-fun whine_V : V;
-fun whine_V2 : V2;
-fun whiner_N : N;
-fun whinny_N : N;
-fun whinny_V : V;
-fun whip_N : N;
-fun whip_V : V;
-fun whip_V2 : V2;
-fun whip_round_N : N;
-fun whipcord_N : N;
-fun whipper_in_N : N;
-fun whippersnapper_N : N;
-fun whippet_N : N;
-fun whipping_N : N;
-fun whipping_boy_N : N;
-fun whipping_post_N : N;
-fun whipping_top_N : N;
-fun whippoorwill_N : N;
-fun whippy_A : A;
-fun whir_N : N;
-fun whir_V : V;
-fun whirl_N : N;
-fun whirl_V : V;
-fun whirl_V2 : V2;
-fun whirligig_N : N;
-fun whirlpool_N : N;
-fun whirlwind_N : N;
-fun whirr_N : N;
-fun whirr_V : V;
-fun whisk_N : N;
-fun whisk_V : V;
-fun whisk_V2 : V2;
-fun whisker_N : N;
-fun whiskered_A : A;
-fun whiskey_N : N;
-fun whisky_N : N;
-fun whisper_N : N;
-fun whisper_V : V;
-fun whisper_V2 : V2;
-fun whisperer_N : N;
-fun whispering_N : N;
-fun whispering_gallery_N : N;
-fun whist_N : N;
-fun whist_drive_N : N;
-fun whistle_N : N;
-fun whistle_V : V;
-fun whistle_V2 : V2;
-fun whistle_stop_N : N;
-fun whit_N : N;
-fun whitburn_PN : PN;
-fun whitby_PN : PN;
-fun whitchurch_PN : PN;
-fun white_A : A;
-fun white_N : N;
-fun white_collar_A : A;
-fun white_hot_A : A;
-fun white_lipped_A : A;
-fun white_livered_A : A;
-fun whitebait_N : N;
-fun whitehall_PN : PN;
-fun whitehaven_PN : PN;
-fun whiten_V : V;
-fun whiten_V2 : V2;
-fun whiteness_N : N;
-fun whitening_N : N;
-fun whitethorn_N : N;
-fun whitewash_N : N;
-fun whitewash_V2 : V2;
-fun whither_Adv : Adv;
-fun whithersoever_Adv : Adv;
-fun whiting_N : N;
-fun whitish_A : A;
-fun whitley_bay_PN : PN;
-fun whitlow_N : N;
-fun whitstable_PN : PN;
-fun whitsun_N : N;
-fun whitsun_PN : PN;
-fun whitsuntide_N : N;
-fun whitsuntide_PN : PN;
-fun whittle_V : V;
-fun whittle_V2 : V2;
-fun whittle_le_woods_PN : PN;
-fun whittlesey_PN : PN;
-fun whitworth_PN : PN;
-fun whiz_N : N;
-fun whiz_V : V;
-fun whizz_kid_N : N;
-fun who_N : N;
-fun whodunit_N : N;
-fun whole_A : A;
-fun whole_N : N;
-fun whole_wheat_N : N;
-fun wholehearted_A : A;
-fun wholeheartedly_Adv : Adv;
-fun wholeheartedness_N : N;
-fun wholemeal_N : N;
-fun wholesale_A : A;
-fun wholesale_Adv : Adv;
-fun wholesale_N : N;
-fun wholesaler_N : N;
-fun wholesome_A : A;
-fun wholesomely_Adv : Adv;
-fun wholly_Adv : Adv;
-fun whoop_N : N;
-fun whoop_V : V;
-fun whoop_V2 : V2;
-fun whoopee_N : N;
-fun whooping_cough_N : N;
-fun whop_V2 : V2;
-fun whopper_N : N;
-fun whopping_A : A;
-fun whopping_Adv : Adv;
-fun whore_N : N;
-fun whoremonger_N : N;
-fun whorl_N : N;
-fun whorled_A : A;
-fun why_Adv : Adv;
-fun why_N : N;
-fun wi_N : N;
-fun wick_N : N;
-fun wick_PN : PN;
-fun wicked_A : A;
-fun wickedly_Adv : Adv;
-fun wickedness_N : N;
-fun wicker_N : N;
-fun wickerwork_N : N;
-fun wicket_N : N;
-fun wicket_door_N : N;
-fun wicket_gate_N : N;
-fun wicket_keeper_N : N;
-fun wickford_PN : PN;
-fun wicklow_PN : PN;
-fun wide_A : A;
-fun wide_Adv : Adv;
-fun wide_awake_A : A;
-fun widely_Adv : Adv;
-fun widen_V : V;
-fun widen_V2 : V2;
-fun widespread_A : A;
-fun widgeon_N : N;
-fun widnes_PN : PN;
-fun widow_N : N;
-fun widowed_A : A;
-fun widower_N : N;
-fun widowhood_N : N;
-fun width_N : N;
-fun wield_V2 : V2;
-fun wiesbaden_PN : PN;
-fun wife_N : N;
-fun wifelike_A : A;
-fun wifely_A : A;
-fun wig_N : N;
-fun wigan_PN : PN;
-fun wigged_A : A;
-fun wigging_N : N;
-fun wiggle_N : N;
-fun wiggle_V : V;
-fun wiggle_V2 : V2;
-fun wight_N : N;
-fun wight_PN : PN;
-fun wigwam_N : N;
-fun wild_A : A;
-fun wild_Adv : Adv;
-fun wildcat_A : A;
-fun wildebeest_N : N;
-fun wilderness_N : N;
-fun wildfire_N : N;
-fun wildly_Adv : Adv;
-fun wildness_N : N;
-fun wile_N : N;
-fun wilf_PN : PN;
-fun wilfrid_PN : PN;
-fun wilful_A : A;
-fun wilfully_Adv : Adv;
-fun wilfulness_N : N;
-fun wilhelmshaven_PN : PN;
-fun will_N : N;
-fun will_PN : PN;
-fun will_V : V;
-fun will_V2 : V2;
-fun will_o'_the_wisp_N : N;
-fun willed_A : A;
-fun willful_A : A;
-fun william_PN : PN;
-fun willie_PN : PN;
-fun willing_A : A;
-fun willingly_Adv : Adv;
-fun willingness_N : N;
-fun willington_PN : PN;
-fun willow_N : N;
-fun willow_pattern_N : N;
-fun willow_tree_N : N;
-fun willowy_A : A;
-fun willpower_N : N;
-fun willy_PN : PN;
-fun willy_nilly_Adv : Adv;
-fun wilmslow_PN : PN;
-fun wilt_V : V;
-fun wilt_V2 : V2;
-fun wilton_N : N;
-fun wiltshire_PN : PN;
-fun wily_A : A;
-fun wimbourne_PN : PN;
-fun wimbourne_minster_PN : PN;
-fun wimple_N : N;
-fun win_N : N;
-fun win_V : V;
-fun win_V2 : V2;
-fun wince_N : N;
-fun wince_V2 : V2;
-fun winceyette_N : N;
-fun winch_N : N;
-fun winch_V2 : V2;
-fun winchester_PN : PN;
-fun wind_N : N;
-fun wind_V : V;
-fun wind_V2 : V2;
-fun wind_gauge_N : N;
-fun wind_tunnel_N : N;
-fun windbag_N : N;
-fun windblown_A : A;
-fun windbreak_N : N;
-fun windbreaker_N : N;
-fun windcheater_N : N;
-fun windermere_PN : PN;
-fun windfall_N : N;
-fun windflower_N : N;
-fun windily_Adv : Adv;
-fun windiness_N : N;
-fun winding_sheet_N : N;
-fun windjammer_N : N;
-fun windlass_N : N;
-fun windless_A : A;
-fun windmill_N : N;
-fun window_N : N;
-fun window_box_N : N;
-fun window_dressing_N : N;
-fun windowpane_N : N;
-fun windowsill_N : N;
-fun windpipe_N : N;
-fun windscreen_N : N;
-fun windscreen_wiper_N : N;
-fun windshield_N : N;
-fun windsock_N : N;
-fun windsor_PN : PN;
-fun windswept_A : A;
-fun windward_A : A;
-fun windward_N : N;
-fun windy_A : A;
-fun wine_N : N;
-fun wine_V2 : V2;
-fun wineglass_N : N;
-fun winepress_N : N;
-fun wineskin_N : N;
-fun wing_N : N;
-fun wing_V : V;
-fun wing_V2 : V2;
-fun wing_commander_N : N;
-fun wing_nut_N : N;
-fun wing_screw_N : N;
-fun wingate_PN : PN;
-fun winged_A : A;
-fun winger_N : N;
-fun wingless_A : A;
-fun wingspan_N : N;
-fun wingspread_N : N;
-fun winifred_PN : PN;
-fun wink_N : N;
-fun wink_V : V;
-fun wink_V2 : V2;
-fun winkle_N : N;
-fun winkle_V2 : V2;
-fun winner_N : N;
-fun winnie_PN : PN;
-fun winning_post_N : N;
-fun winnipeg_PN : PN;
-fun winnow_V2 : V2;
-fun winsford_PN : PN;
-fun winsome_A : A;
-fun winsomely_Adv : Adv;
-fun winsomeness_N : N;
-fun winter_N : N;
-fun winter_V : V;
-fun wintery_A : A;
-fun wintry_A : A;
-fun wipe_N : N;
-fun wipe_V : V;
-fun wipe_V2 : V2;
-fun wiper_N : N;
-fun wire_N : N;
-fun wire_V : V;
-fun wire_V2 : V2;
-fun wire_haired_A : A;
-fun wireless_A : A;
-fun wireless_N : N;
-fun wirepuller_N : N;
-fun wireworm_N : N;
-fun wiring_N : N;
-fun wiry_A : A;
-fun wisbech_PN : PN;
-fun wisconsin_PN : PN;
-fun wisdom_N : N;
-fun wisdom_tooth_N : N;
-fun wise_A : A;
-fun wise_N : N;
-fun wiseacre_N : N;
-fun wisecrack_N : N;
-fun wisecrack_V : V;
-fun wisely_Adv : Adv;
-fun wish_N : N;
-fun wish_V : V;
-fun wish_V2 : V2;
-fun wishbone_N : N;
-fun wishful_A : A;
-fun wishfully_Adv : Adv;
-fun wishing_cap_N : N;
-fun wishy_washy_A : A;
-fun wisp_N : N;
-fun wispy_A : A;
-fun wisteria_N : N;
-fun wistful_A : A;
-fun wistfully_Adv : Adv;
-fun wit_N : N;
-fun witch_N : N;
-fun witch_doctor_N : N;
-fun witch_elm_N : N;
-fun witch_hazel_N : N;
-fun witch_hunt_N : N;
-fun witchcraft_N : N;
-fun witchery_N : N;
-fun witching_A : A;
-fun withal_Adv : Adv;
-fun witham_PN : PN;
-fun withdraw_V : V;
-fun withdraw_V2 : V2;
-fun withdrawal_N : N;
-fun withe_N : N;
-fun wither_V : V;
-fun wither_V2 : V2;
-fun witheringly_Adv : Adv;
-fun withernsea_PN : PN;
-fun withhold_V2 : V2;
-fun within_Adv : Adv;
-fun without_Adv : Adv;
-fun withstand_V2 : V2;
-fun withy_N : N;
-fun witless_A : A;
-fun witness_N : N;
-fun witness_V : V;
-fun witness_V2 : V2;
-fun witness_box_N : N;
-fun witness_stand_N : N;
-fun witney_PN : PN;
-fun witticism_N : N;
-fun wittily_Adv : Adv;
-fun wittingly_Adv : Adv;
-fun witty_A : A;
-fun wive_V : V;
-fun wive_V2 : V2;
-fun wizard_A : A;
-fun wizard_N : N;
-fun wizardry_N : N;
-fun wizened_A : A;
-fun wk_N : N;
-fun woad_N : N;
-fun wobble_V : V;
-fun wobble_V2 : V2;
-fun wobbler_N : N;
-fun wobbly_A : A;
-fun woburn_PN : PN;
-fun woe_N : N;
-fun woebegone_A : A;
-fun woeful_A : A;
-fun woefully_Adv : Adv;
-fun wokingham_PN : PN;
-fun wold_N : N;
-fun wolf's_bane_N : N;
-fun wolf_N : N;
-fun wolf_V2 : V2;
-fun wolf_cub_N : N;
-fun wolfhound_N : N;
-fun wolfish_A : A;
-fun wolfram_N : N;
-fun wolverhampton_PN : PN;
-fun wolverton_PN : PN;
-fun woman_N : N;
-fun womanhood_N : N;
-fun womanish_A : A;
-fun womanize_V : V;
-fun womanizer_N : N;
-fun womankind_N : N;
-fun womanlike_A : A;
-fun womanly_A : A;
-fun womb_N : N;
-fun wombat_N : N;
-fun wombourne_PN : PN;
-fun wonder_N : N;
-fun wonder_V : V;
-fun wonder_V2 : V2;
-fun wonder_struck_A : A;
-fun wonderful_A : A;
-fun wonderfully_Adv : Adv;
-fun wonderingly_Adv : Adv;
-fun wonderland_N : N;
-fun wonderment_N : N;
-fun wondrous_A : A;
-fun wondrous_Adv : Adv;
-fun wonky_A : A;
-fun wont_A : A;
-fun wont_N : N;
-fun wonted_A : A;
-fun woo_V2 : V2;
-fun wood_N : N;
-fun wood_block_N : N;
-fun wood_pulp_N : N;
-fun woodbine_N : N;
-fun woodbridge_PN : PN;
-fun woodcock_N : N;
-fun woodcraft_N : N;
-fun woodcut_N : N;
-fun woodcutter_N : N;
-fun wooded_A : A;
-fun wooden_A : A;
-fun woodenheaded_A : A;
-fun woodland_N : N;
-fun woodlouse_N : N;
-fun woodman_N : N;
-fun woodpecker_N : N;
-fun woodpile_N : N;
-fun woodshed_N : N;
-fun woodsman_N : N;
-fun woodwind_N : N;
-fun woodwork_N : N;
-fun woodworm_N : N;
-fun woody_A : A;
-fun wooer_N : N;
-fun woof_N : N;
-fun woofer_N : N;
-fun wool_N : N;
-fun woolen_A : A;
-fun woolgathering_A : A;
-fun woolgathering_N : N;
-fun woollen_A : A;
-fun woolly_A : A;
-fun wooly_A : A;
-fun wooly_N : N;
-fun wootton_bassett_PN : PN;
-fun worcester_PN : PN;
-fun word_N : N;
-fun word_V2 : V2;
-fun word_division_N : N;
-fun word_painter_N : N;
-fun word_perfect_A : A;
-fun word_picture_N : N;
-fun word_splitting_N : N;
-fun wordbook_N : N;
-fun wordily_Adv : Adv;
-fun wordiness_N : N;
-fun wording_N : N;
-fun wordless_A : A;
-fun wordy_A : A;
-fun work_N : N;
-fun work_V : V;
-fun work_V2 : V2;
-fun work_in_N : N;
-fun work_out_N : N;
-fun work_study_N : N;
-fun workable_A : A;
-fun workaday_A : A;
-fun workbag_N : N;
-fun workbasket_N : N;
-fun workbench_N : N;
-fun workbook_N : N;
-fun workbox_N : N;
-fun workday_N : N;
-fun worker_N : N;
-fun workhouse_N : N;
-fun working_A : A;
-fun working_N : N;
-fun working_class_A : A;
-fun working_out_N : N;
-fun workington_PN : PN;
-fun workman_N : N;
-fun workmanlike_A : A;
-fun workmanship_N : N;
-fun workmate_N : N;
-fun workroom_N : N;
-fun workshop_N : N;
-fun workshy_A : A;
-fun worksop_PN : PN;
-fun worktable_N : N;
-fun world_N : N;
-fun world_weary_A : A;
-fun worldliness_N : N;
-fun worldly_A : A;
-fun worldwide_A : A;
-fun worm_N : N;
-fun worm_V2 : V2;
-fun worm_eaten_A : A;
-fun worm_gear_N : N;
-fun wormcast_N : N;
-fun wormhole_N : N;
-fun wormwood_N : N;
-fun wormy_A : A;
-fun worried_A : A;
-fun worrisome_A : A;
-fun worry_N : N;
-fun worry_V : V;
-fun worry_V2 : V2;
-fun worrying_A : A;
-fun worryingly_Adv : Adv;
-fun worse_Adv : Adv;
-fun worse_N : N;
-fun worsen_V : V;
-fun worsen_V2 : V2;
-fun worship_N : N;
-fun worship_V : V;
-fun worship_V2 : V2;
-fun worshipful_A : A;
-fun worshipper_N : N;
-fun worst_Adv : Adv;
-fun worst_N : N;
-fun worst_V2 : V2;
-fun worsted_N : N;
-fun worth_A : A;
-fun worth_N : N;
-fun worthily_Adv : Adv;
-fun worthiness_N : N;
-fun worthing_PN : PN;
-fun worthless_A : A;
-fun worthlessly_Adv : Adv;
-fun worthlessness_N : N;
-fun worthwhile_A : A;
-fun worthy_A : A;
-fun worthy_N : N;
-fun would_be_A : A;
-fun wound_N : N;
-fun wound_V2 : V2;
-fun wow_N : N;
-fun wpb_N : N;
-fun wpm_N : N;
-fun wrac_N : N;
-fun wrack_N : N;
-fun wraf_N : N;
-fun wraith_N : N;
-fun wrangle_N : N;
-fun wrangle_V : V;
-fun wrap_N : N;
-fun wrap_V : V;
-fun wrap_V2 : V2;
-fun wrapper_N : N;
-fun wrapping_N : N;
-fun wrath_N : N;
-fun wrathful_A : A;
-fun wrathfully_Adv : Adv;
-fun wreak_V2 : V2;
-fun wreath_N : N;
-fun wreathe_V : V;
-fun wreathe_V2 : V2;
-fun wreck_N : N;
-fun wreck_V2 : V2;
-fun wreckage_N : N;
-fun wrecker_N : N;
-fun wren_N : N;
-fun wrench_N : N;
-fun wrench_V2 : V2;
-fun wrest_V2 : V2;
-fun wrestle_N : N;
-fun wrestle_V : V;
-fun wrestler_N : N;
-fun wretch_N : N;
-fun wretched_A : A;
-fun wretchedly_Adv : Adv;
-fun wretchedness_N : N;
-fun wrexham_PN : PN;
-fun wrick_N : N;
-fun wrick_V2 : V2;
-fun wriggle_N : N;
-fun wriggle_V : V;
-fun wriggle_V2 : V2;
-fun wriggler_N : N;
-fun wright_N : N;
-fun wring_N : N;
-fun wring_V2 : V2;
-fun wringer_N : N;
-fun wrinkle_N : N;
-fun wrinkle_V : V;
-fun wrinkle_V2 : V2;
-fun wrinkly_A : A;
-fun wrist_N : N;
-fun wristband_N : N;
-fun wristlet_N : N;
-fun wristwatch_N : N;
-fun writ_N : N;
-fun writ_large_A : A;
-fun write_V : V;
-fun write_V2 : V2;
-fun write_off_N : N;
-fun write_up_N : N;
-fun writer_N : N;
-fun writhe_V : V;
-fun writing_N : N;
-fun writing_desk_N : N;
-fun writing_ink_N : N;
-fun writing_paper_N : N;
-fun writtle_PN : PN;
-fun wrns_N : N;
-fun wroclaw_PN : PN;
-fun wrong_A : A;
-fun wrong_Adv : Adv;
-fun wrong_N : N;
-fun wrong_V2 : V2;
-fun wrong_headed_A : A;
-fun wrong_headedly_Adv : Adv;
-fun wrongdoer_N : N;
-fun wrongdoing_N : N;
-fun wrongful_A : A;
-fun wrongfully_Adv : Adv;
-fun wrongly_Adv : Adv;
-fun wroth_A : A;
-fun wroughton_PN : PN;
-fun wry_A : A;
-fun wryly_Adv : Adv;
-fun wt_N : N;
-fun wuhan_PN : PN;
-fun wuppertal_PN : PN;
-fun wurzburg_PN : PN;
-fun wusih_PN : PN;
-fun wycombe_PN : PN;
-fun wymondham_PN : PN;
-fun wyoming_PN : PN;
-fun wythall_PN : PN;
-fun x_ray_N : N;
-fun x_ray_V2 : V2;
-fun xenophobia_N : N;
-fun xerox_N : N;
-fun xerox_V2 : V2;
-fun xmas_N : N;
-fun xmas_PN : PN;
-fun xylophone_N : N;
-fun yacht_N : N;
-fun yacht_V : V;
-fun yacht_club_N : N;
-fun yachting_N : N;
-fun yachtsman_N : N;
-fun yahoo_N : N;
-fun yak_N : N;
-fun yam_N : N;
-fun yammer_V : V;
-fun yank_N : N;
-fun yank_V2 : V2;
-fun yankee_N : N;
-fun yap_N : N;
-fun yap_V : V;
-fun yard_N : N;
-fun yard_measure_N : N;
-fun yardarm_N : N;
-fun yardstick_N : N;
-fun yarmouth_PN : PN;
-fun yarn_N : N;
-fun yarn_V : V;
-fun yaroslavi_PN : PN;
-fun yarrow_N : N;
-fun yashmak_N : N;
-fun yate_PN : PN;
-fun yateley_PN : PN;
-fun yaw_N : N;
-fun yaw_V : V;
-fun yawl_N : N;
-fun yawn_N : N;
-fun yawn_V : V;
-fun yea_Adv : Adv;
-fun yea_N : N;
-fun yeah_Adv : Adv;
-fun year_N : N;
-fun yearbook_N : N;
-fun yearling_N : N;
-fun yearlong_A : A;
-fun yearly_A : A;
-fun yearly_Adv : Adv;
-fun yearn_V : V;
-fun yearning_N : N;
-fun yearningly_Adv : Adv;
-fun yeast_N : N;
-fun yeasty_A : A;
-fun yell_N : N;
-fun yell_V : V;
-fun yell_V2 : V2;
-fun yellow_A : A;
-fun yellow_N : N;
-fun yellow_V : V;
-fun yellow_V2 : V2;
-fun yellow_bellied_A : A;
-fun yellow_flag_N : N;
-fun yellowish_A : A;
-fun yellowness_N : N;
-fun yelp_V : V;
-fun yemen_PN : PN;
-fun yemeni_A : A;
-fun yemeni_N : N;
-fun yen_N : N;
-fun yen_V : V;
-fun yeoman_N : N;
-fun yeomanry_N : N;
-fun yeovil_PN : PN;
-fun yerevan_PN : PN;
-fun yes_N : N;
-fun yesterday_Adv : Adv;
-fun yesterday_N : N;
-fun yet_Adv : Adv;
-fun yeti_N : N;
-fun yew_N : N;
-fun yew_tree_N : N;
-fun yha_N : N;
-fun yiddish_N : N;
-fun yield_N : N;
-fun yield_V : V;
-fun yield_V2 : V2;
-fun yielding_A : A;
-fun yieldingly_Adv : Adv;
-fun ymca_N : N;
-fun yo_yo_N : N;
-fun yob_N : N;
-fun yobo_N : N;
-fun yodel_N : N;
-fun yodel_V : V;
-fun yodel_V2 : V2;
-fun yodeller_N : N;
-fun yoga_N : N;
-fun yoghourt_N : N;
-fun yoghurt_N : N;
-fun yogi_N : N;
-fun yogurt_N : N;
-fun yoke_N : N;
-fun yoke_V : V;
-fun yoke_V2 : V2;
-fun yokel_N : N;
-fun yokohama_PN : PN;
-fun yolk_N : N;
-fun yon_A : A;
-fun yon_Adv : Adv;
-fun yonder_A : A;
-fun yonder_Adv : Adv;
-fun yore_N : N;
-fun york_PN : PN;
-fun yorkley_PN : PN;
-fun yorkshire_PN : PN;
-fun young_A : A;
-fun young_N : N;
-fun youngish_A : A;
-fun youngster_N : N;
-fun youth_N : N;
-fun youthful_A : A;
-fun youthfully_Adv : Adv;
-fun youthfulness_N : N;
-fun yowl_V : V;
-fun yr_N : N;
-fun ystradgynlais_PN : PN;
-fun yugoslav_A : A;
-fun yugoslav_N : N;
-fun yugoslavia_PN : PN;
-fun yugoslavian_A : A;
-fun yugoslavian_N : N;
-fun yukon_PN : PN;
-fun yule_N : N;
-fun yule_log_N : N;
-fun yuletide_N : N;
-fun yvonne_PN : PN;
-fun ywca_N : N;
-fun zagreb_PN : PN;
-fun zaire_PN : PN;
-fun zairean_A : A;
-fun zairean_N : N;
-fun zambia_PN : PN;
-fun zambian_A : A;
-fun zambian_N : N;
-fun zany_A : A;
-fun zany_N : N;
-fun zap_V2 : V2;
-fun zaporozhye_PN : PN;
-fun zaragoza_PN : PN;
-fun zeal_N : N;
-fun zealand_PN : PN;
-fun zealander_A : A;
-fun zealander_N : N;
-fun zealot_N : N;
-fun zealotry_N : N;
-fun zealous_A : A;
-fun zealously_Adv : Adv;
-fun zebra_N : N;
-fun zebu_N : N;
-fun zee_N : N;
-fun zen_N : N;
-fun zenith_N : N;
-fun zenithal_A : A;
-fun zephyr_N : N;
-fun zeppelin_N : N;
-fun zero_N : N;
-fun zero_V : V;
-fun zest_N : N;
-fun zestful_A : A;
-fun zestfully_Adv : Adv;
+fun abjuration_N : N;
+fun abjure_V2 : V2;
+fun ablative_A : A;
+fun ablative_N : N;
+fun ablaut_N : N;
+fun ablaze_A : A;
+fun ablaze_Adv : Adv;
+fun able_A : A;
+fun able_bodied_A : A;
+fun ablution_N : N;
+fun ably_Adv : Adv;
+fun abnegation_N : N;
+fun abnormal_A : A;
+fun abnormality_N : N;
+fun abo_N : N;
+fun aboard_Adv : Adv;
+fun abode_N : N;
+fun abolish_V2 : V2;
+fun abolition_N : N;
+fun abolitionist_N : N;
+fun abominable_A : A;
+fun abominate_V2 : V2;
+fun abomination_N : N;
+fun aboriginal_A : A;
+fun aboriginal_N : N;
+fun aborigine_N : N;
+fun abort_V : V;
+fun abort_V2 : V2;
+fun abortion_N : N;
+fun abortionist_N : N;
+fun abortive_A : A;
+fun abound_V : V;
+fun about_Adv : Adv;
+fun about_face_N : N;
+fun about_face_V : V;
+fun above_Adv : Adv;
+fun above_board_A : A;
+fun above_board_Adv : Adv;
+fun above_mentioned_A : A;
+fun above_named_A : A;
+fun abracadabra_N : N;
+fun abrade_V2 : V2;
+fun abraham_PN : PN;
+fun abrasion_N : N;
+fun abrasive_A : A;
+fun abrasive_N : N;
+fun abreast_Adv : Adv;
+fun abridge_V2 : V2;
+fun abridgement_N : N;
+fun abridgment_N : N;
+fun abroad_Adv : Adv;
+fun abrogate_V2 : V2;
+fun abrogation_N : N;
+fun abrupt_A : A;
+fun abruptness_N : N;
+fun abscess_N : N;
+fun abscond_V : V;
+fun absence_N : N;
+fun absent_A : A;
+fun absent_V2 : V2;
+fun absent_minded_A : A;
+fun absent_mindedness_N : N;
+fun absentee_N : N;
+fun absenteeism_N : N;
+fun absinth_N : N;
+fun absinthe_N : N;
+fun absolute_A : A;
+fun absolution_N : N;
+fun absolutism_N : N;
+fun absolve_V2 : V2;
+fun absorb_V2 : V2;
+fun absorbent_A : A;
+fun absorbent_N : N;
+fun absorption_N : N;
+fun abstain_V : V;
+fun abstainer_N : N;
+fun abstemious_A : A;
+fun abstemiousness_N : N;
+fun abstention_N : N;
+fun abstinence_N : N;
+fun abstract_A : A;
+fun abstract_N : N;
+fun abstract_V2 : V2;
+fun abstracted_A : A;
+fun abstraction_N : N;
+fun abstruse_A : A;
+fun abstruseness_N : N;
+fun absurd_A : A;
+fun absurdity_N : N;
+fun abundance_N : N;
+fun abundant_A : A;
+fun abuse_N : N;
+fun abuse_V2 : V2;
+fun abusive_A : A;
+fun abut_V : V;
+fun abutment_N : N;
+fun abysm_N : N;
+fun abysmal_A : A;
+fun abyss_N : N;
+fun acacia_N : N;
+fun academic_A : A;
+fun academic_N : N;
+fun academically_Adv : Adv;
+fun academician_N : N;
+fun academy_N : N;
+fun accede_V : V;
+fun accelerando_A : A;
+fun accelerando_Adv : Adv;
+fun accelerando_N : N;
+fun accelerate_V : V;
+fun accelerate_V2 : V2;
+fun acceleration_N : N;
+fun accelerator_N : N;
+fun accent_N : N;
+fun accent_V2 : V2;
+fun accentuate_V2 : V2;
+fun accentuation_N : N;
+fun accept_V : V;
+fun accept_V2 : V2;
+fun acceptability_N : N;
+fun acceptable_A : A;
+fun acceptance_N : N;
+fun acceptation_N : N;
+fun access_N : N;
+fun accessary_N : N;
+fun accessibility_N : N;
+fun accessible_A : A;
+fun accession_N : N;
+fun accessory_N : N;
+fun accidence_N : N;
+fun accident_N : N;
+fun accident_prone_A : A;
+fun accidental_A : A;
+fun acclaim_N : N;
+fun acclaim_V2 : V2;
+fun acclamation_N : N;
+fun acclimate_V : V;
+fun acclimate_V2 : V2;
+fun acclimation_N : N;
+fun acclimatization_N : N;
+fun acclimatize_V : V;
+fun acclimatize_V2 : V2;
+fun acclivity_N : N;
+fun accolade_N : N;
+fun accommodate_V2 : V2;
+fun accommodating_A : A;
+fun accommodation_N : N;
+fun accompaniment_N : N;
+fun accompanist_N : N;
+fun accompany_V2 : V2;
+fun accomplice_N : N;
+fun accomplish_V2 : V2;
+fun accomplished_A : A;
+fun accomplishment_N : N;
+fun accord_N : N;
+fun accord_V : V;
+fun accord_V2 : V2;
+fun accordance_N : N;
+fun accordingly_Adv : Adv;
+fun accordion_N : N;
+fun accost_V2 : V2;
+fun accouchement_N : N;
+fun account_N : N;
+fun account_V : V;
+fun account_V2 : V2;
+fun accountable_A : A;
+fun accountancy_N : N;
+fun accountant_N : N;
+fun accra_PN : PN;
+fun accredit_V2 : V2;
+fun accredited_A : A;
+fun accretion_N : N;
+fun accrington_PN : PN;
+fun accrue_V : V;
+fun accumulate_V : V;
+fun accumulate_V2 : V2;
+fun accumulation_N : N;
+fun accumulative_A : A;
+fun accumulator_N : N;
+fun accuracy_N : N;
+fun accurate_A : A;
+fun accursed_A : A;
+fun accurst_A : A;
+fun accusation_N : N;
+fun accusative_A : A;
+fun accusative_N : N;
+fun accuse_V2 : V2;
+fun accuser_N : N;
+fun accusingly_Adv : Adv;
+fun accustom_V2 : V2;
+fun accustomed_A : A;
+fun ace_N : N;
+fun acerbity_N : N;
+fun acetate_N : N;
+fun acetic_A : A;
+fun acetylene_N : N;
+fun ache_N : N;
+fun ache_V : V;
+fun achievable_A : A;
+fun achieve_V2 : V2;
+fun achievement_N : N;
+fun achilles_PN : PN;
+fun acid_A : A;
+fun acid_N : N;
+fun acidic_A : A;
+fun acidify_V : V;
+fun acidify_V2 : V2;
+fun acidity_N : N;
+fun acidulated_A : A;
+fun acidulous_A : A;
+fun ack_ack_N : N;
+fun acknowledge_V2 : V2;
+fun acknowledgement_N : N;
+fun acme_N : N;
+fun acne_N : N;
+fun acolyte_N : N;
+fun aconite_N : N;
+fun acorn_N : N;
+fun acorn_cup_N : N;
+fun acoustic_A : A;
+fun acoustic_N : N;
+fun acoustics_N : N;
+fun acquaint_V2 : V2;
+fun acquaintance_N : N;
+fun acquaintanceship_N : N;
+fun acquiesce_V : V;
+fun acquiescence_N : N;
+fun acquiescent_A : A;
+fun acquire_V2 : V2;
+fun acquirement_N : N;
+fun acquisition_N : N;
+fun acquisitive_A : A;
+fun acquit_V2 : V2;
+fun acquittal_N : N;
+fun acre_N : N;
+fun acreage_N : N;
+fun acrid_A : A;
+fun acrimonious_A : A;
+fun acrimony_N : N;
+fun acrobat_N : N;
+fun acrobatic_A : A;
+fun acrobatics_N : N;
+fun acronym_N : N;
+fun acropolis_N : N;
+fun across_Adv : Adv;
+fun acrostic_N : N;
+fun acrylic_N : N;
+fun act_N : N;
+fun act_V : V;
+fun act_V2 : V2;
+fun acting_A : A;
+fun acting_N : N;
+fun actinic_A : A;
+fun actinism_N : N;
+fun action_N : N;
+fun actionable_A : A;
+fun activate_V2 : V2;
+fun activation_N : N;
+fun active_A : A;
+fun activist_N : N;
+fun activity_N : N;
+fun actor_N : N;
+fun actress_N : N;
+fun actual_A : A;
+fun actuality_N : N;
+fun actuarial_A : A;
+fun actuary_N : N;
+fun actuate_V2 : V2;
+fun acuity_N : N;
+fun acumen_N : N;
+fun acupuncture_N : N;
+fun acute_A : A;
+fun acuteness_N : N;
+fun ad_N : N;
+fun ad_PN : PN;
+fun ad_hoc_A : A;
+fun ad_hoc_Adv : Adv;
+fun ad_infinitum_Adv : Adv;
+fun ad_interim_Adv : Adv;
+fun ad_lib_A : A;
+fun ad_lib_Adv : Adv;
+fun ad_lib_V : V;
+fun ad_libitum_Adv : Adv;
+fun ad_man_N : N;
+fun ad_nauseam_Adv : Adv;
+fun ad_valorem_Adv : Adv;
+fun ada_PN : PN;
+fun adage_N : N;
+fun adagio_A : A;
+fun adagio_Adv : Adv;
+fun adagio_N : N;
+fun adam_PN : PN;
+fun adamant_A : A;
+fun adamant_N : N;
+fun adamantine_A : A;
+fun adapt_V2 : V2;
+fun adaptability_N : N;
+fun adaptable_A : A;
+fun adaptation_N : N;
+fun adapter_N : N;
+fun adaptor_N : N;
+fun add_V : V;
+fun add_V2 : V2;
+fun addendum_N : N;
+fun adder_N : N;
+fun addict_N : N;
+fun addict_V2 : V2;
+fun addiction_N : N;
+fun addictive_A : A;
+fun adding_machine_N : N;
+fun addis_ababa_PN : PN;
+fun addition_N : N;
+fun additional_A : A;
+fun additive_N : N;
+fun addle_A : A;
+fun addle_V : V;
+fun addle_V2 : V2;
+fun addle_brained_A : A;
+fun addle_head_N : N;
+fun addle_pated_A : A;
+fun address_N : N;
+fun address_V2 : V2;
+fun addressee_N : N;
+fun addressograph_N : N;
+fun adduce_V2 : V2;
+fun adelaide_PN : PN;
+fun adenoidal_A : A;
+fun adept_A : A;
+fun adept_N : N;
+fun adequacy_N : N;
+fun adequate_A : A;
+fun adhere_V : V;
+fun adherence_N : N;
+fun adherent_N : N;
+fun adhesion_N : N;
+fun adhesive_A : A;
+fun adhesive_N : N;
+fun adieu_N : N;
+fun adipose_A : A;
+fun adjacent_A : A;
+fun adjectival_A : A;
+fun adjective_N : N;
+fun adjoin_V : V;
+fun adjoin_V2 : V2;
+fun adjoining_A : A;
+fun adjourn_V : V;
+fun adjourn_V2 : V2;
+fun adjournment_N : N;
+fun adjudge_V2 : V2;
+fun adjudicate_V : V;
+fun adjudicate_V2 : V2;
+fun adjudication_N : N;
+fun adjudicator_N : N;
+fun adjunct_N : N;
+fun adjuration_N : N;
+fun adjure_V2 : V2;
+fun adjust_V2 : V2;
+fun adjustable_A : A;
+fun adjuster_N : N;
+fun adjustment_N : N;
+fun adjutant_N : N;
+fun admass_N : N;
+fun administer_V : V;
+fun administer_V2 : V2;
+fun administration_N : N;
+fun administrative_A : A;
+fun administrator_N : N;
+fun admirable_A : A;
+fun admiral_N : N;
+fun admiralty_N : N;
+fun admiration_N : N;
+fun admire_V2 : V2;
+fun admirer_N : N;
+fun admiring_A : A;
+fun admissibility_N : N;
+fun admissible_A : A;
+fun admission_N : N;
+fun admit_V : V;
+fun admit_V2 : V2;
+fun admittance_N : N;
+fun admittedly_Adv : Adv;
+fun admix_V : V;
+fun admix_V2 : V2;
+fun admixture_N : N;
+fun admonish_V2 : V2;
+fun admonition_N : N;
+fun admonitory_A : A;
+fun ado_N : N;
+fun adobe_N : N;
+fun adolescence_N : N;
+fun adolescent_A : A;
+fun adolescent_N : N;
+fun adopt_V2 : V2;
+fun adoption_N : N;
+fun adoptive_A : A;
+fun adorable_A : A;
+fun adoration_N : N;
+fun adore_V2 : V2;
+fun adorer_N : N;
+fun adoring_A : A;
+fun adorn_V2 : V2;
+fun adornment_N : N;
+fun adrenal_A : A;
+fun adrenalin_N : N;
+fun adrian_PN : PN;
+fun adrift_A : A;
+fun adrift_Adv : Adv;
+fun adroit_A : A;
+fun adroitness_N : N;
+fun adulation_N : N;
+fun adult_A : A;
+fun adult_N : N;
+fun adulterant_N : N;
+fun adulterate_V2 : V2;
+fun adulteration_N : N;
+fun adulterer_N : N;
+fun adulteress_N : N;
+fun adulterous_A : A;
+fun adultery_N : N;
+fun adulthood_N : N;
+fun adumbrate_V2 : V2;
+fun advance_N : N;
+fun advance_V : V;
+fun advance_V2 : V2;
+fun advanced_A : A;
+fun advancement_N : N;
+fun advantage_N : N;
+fun advantage_V2 : V2;
+fun advantageous_A : A;
+fun advent_N : N;
+fun adventist_N : N;
+fun adventitious_A : A;
+fun adventure_N : N;
+fun adventure_V2 : V2;
+fun adventurer_N : N;
+fun adventuresome_A : A;
+fun adventuress_N : N;
+fun adventurous_A : A;
+fun adverb_N : N;
+fun adverbial_A : A;
+fun adversary_N : N;
+fun adverse_A : A;
+fun adversity_N : N;
+fun advert_N : N;
+fun advert_V : V;
+fun advertise_V : V;
+fun advertise_V2 : V2;
+fun advertisement_N : N;
+fun advertiser_N : N;
+fun advice_N : N;
+fun advisability_N : N;
+fun advisable_A : A;
+fun advise_V : V;
+fun advise_V2 : V2;
+fun advised_A : A;
+fun adviser_N : N;
+fun advisory_A : A;
+fun advocacy_N : N;
+fun advocate_N : N;
+fun advocate_V2 : V2;
+fun advowson_N : N;
+fun adz_N : N;
+fun adze_N : N;
+fun aegis_N : N;
+fun aeon_N : N;
+fun aerate_V2 : V2;
+fun aeration_N : N;
+fun aerial_A : A;
+fun aerial_N : N;
+fun aerie_N : N;
+fun aerobatics_N : N;
+fun aerodrome_N : N;
+fun aerodynamic_A : A;
+fun aerodynamics_N : N;
+fun aeronaut_N : N;
+fun aeronautics_N : N;
+fun aeroplane_N : N;
+fun aerosol_N : N;
+fun aerospace_N : N;
+fun aertex_N : N;
+fun aery_N : N;
+fun aesthete_N : N;
+fun aesthetic_A : A;
+fun aesthetic_N : N;
+fun aesthetical_A : A;
+fun aesthetics_N : N;
+fun aether_N : N;
+fun aetiology_N : N;
+fun afar_Adv : Adv;
+fun affability_N : N;
+fun affable_A : A;
+fun affair_N : N;
+fun affect_V2 : V2;
+fun affectation_N : N;
+fun affected_A : A;
+fun affecting_A : A;
+fun affection_N : N;
+fun affectionate_A : A;
+fun affiance_V2 : V2;
+fun affidavit_N : N;
+fun affiliate_V : V;
+fun affiliate_V2 : V2;
+fun affiliation_N : N;
+fun affinity_N : N;
+fun affirm_V : V;
+fun affirm_V2 : V2;
+fun affirmation_N : N;
+fun affirmative_A : A;
+fun affirmative_N : N;
+fun affix_N : N;
+fun affix_V2 : V2;
+fun afflatus_N : N;
+fun afflict_V2 : V2;
+fun affliction_N : N;
+fun affluence_N : N;
+fun affluent_A : A;
+fun affluent_N : N;
+fun afford_V2 : V2;
+fun afforest_V2 : V2;
+fun afforestation_N : N;
+fun affranchise_V2 : V2;
+fun affray_N : N;
+fun affront_N : N;
+fun affront_V2 : V2;
+fun afghan_A : A;
+fun afghan_N : N;
+fun afghanistan_PN : PN;
+fun afghanistani_A : A;
+fun afghanistani_N : N;
+fun afield_Adv : Adv;
+fun afire_A : A;
+fun aflame_A : A;
+fun afloat_A : A;
+fun afoot_A : A;
+fun afore_Adv : Adv;
+fun aforesaid_A : A;
+fun aforethought_Adv : Adv;
+fun afoul_Adv : Adv;
+fun afraid_A : A;
+fun afresh_Adv : Adv;
+fun africa_PN : PN;
+fun african_A : A;
+fun african_N : N;
+fun afrikaans_N : N;
+fun afrikaner_A : A;
+fun afrikaner_N : N;
+fun afro_american_N : N;
+fun afro_asian_A : A;
+fun afro_wig_N : N;
+fun aft_Adv : Adv;
+fun after_A : A;
+fun after_Adv : Adv;
+fun aftercare_N : N;
+fun afterdamp_N : N;
+fun aftereffect_N : N;
+fun afterglow_N : N;
+fun aftermath_N : N;
+fun afternoon_N : N;
+fun afterthought_N : N;
+fun afterwards_Adv : Adv;
+fun again_Adv : Adv;
+fun agape_A : A;
+fun agar_agar_N : N;
+fun agate_N : N;
+fun agatha_PN : PN;
+fun agave_N : N;
+fun age_N : N;
+fun age_V : V;
+fun age_V2 : V2;
+fun age_bracket_N : N;
+fun age_group_N : N;
+fun age_long_A : A;
+fun age_old_A : A;
+fun aged_A : A;
+fun ageing_N : N;
+fun ageless_A : A;
+fun agency_N : N;
+fun agenda_N : N;
+fun agent_N : N;
+fun agent_provocateur_N : N;
+fun aggie_PN : PN;
+fun agglomerate_A : A;
+fun agglomerate_V : V;
+fun agglomerate_V2 : V2;
+fun agglomeration_N : N;
+fun agglutinate_V2 : V2;
+fun agglutinative_A : A;
+fun aggrandize_V2 : V2;
+fun aggrandizement_N : N;
+fun aggravate_V2 : V2;
+fun aggravation_N : N;
+fun aggregate_N : N;
+fun aggregate_V : V;
+fun aggregate_V2 : V2;
+fun aggregation_N : N;
+fun aggression_N : N;
+fun aggressive_A : A;
+fun aggressiveness_N : N;
+fun aggressor_N : N;
+fun aggrieve_V2 : V2;
+fun aggro_N : N;
+fun aghast_A : A;
+fun agile_A : A;
+fun agility_N : N;
+fun aging_N : N;
+fun agitate_V : V;
+fun agitate_V2 : V2;
+fun agitated_A : A;
+fun agitating_A : A;
+fun agitation_N : N;
+fun agitator_N : N;
+fun aglow_A : A;
+fun agm_N : N;
+fun agnail_N : N;
+fun agnes_PN : PN;
+fun agnostic_A : A;
+fun agnostic_N : N;
+fun agnosticism_N : N;
+fun ago_Adv : Adv;
+fun agog_A : A;
+fun agonized_A : A;
+fun agonizing_A : A;
+fun agony_N : N;
+fun agora_N : N;
+fun agoraphobia_N : N;
+fun agra_PN : PN;
+fun agrarian_A : A;
+fun agree_V : V;
+fun agree_V2 : V2;
+fun agreeable_A : A;
+fun agreement_N : N;
+fun agricultural_A : A;
+fun agriculture_N : N;
+fun aground_A : A;
+fun aground_Adv : Adv;
+fun ague_N : N;
+fun ahead_Adv : Adv;
+fun ahmedabad_PN : PN;
+fun aid_N : N;
+fun aid_V2 : V2;
+fun aide_de_camp_N : N;
+fun aide_memoire_N : N;
+fun aids_N : N;
+fun aigret_N : N;
+fun aigrette_N : N;
+fun ail_V : V;
+fun ail_V2 : V2;
+fun aileron_N : N;
+fun ailment_N : N;
+fun aim_N : N;
+fun aim_V : V;
+fun aim_V2 : V2;
+fun aimless_A : A;
+fun air_N : N;
+fun air_V2 : V2;
+fun air_bladder_N : N;
+fun air_conditioned_A : A;
+fun air_conditioning_N : N;
+fun air_cooled_A : A;
+fun air_minded_A : A;
+fun air_pump_N : N;
+fun air_raid_N : N;
+fun air_shaft_N : N;
+fun air_sick_A : A;
+fun air_sickness_N : N;
+fun air_to_air_A : A;
+fun air_to_ground_A : A;
+fun airbed_N : N;
+fun airborne_A : A;
+fun airbrake_N : N;
+fun aircraft_N : N;
+fun aircraftman_N : N;
+fun aircrew_N : N;
+fun airdrie_PN : PN;
+fun airdrome_N : N;
+fun aireborough_PN : PN;
+fun airedale_N : N;
+fun airfield_N : N;
+fun airflow_N : N;
+fun airframe_N : N;
+fun airing_N : N;
+fun airing_cupboard_N : N;
+fun airless_A : A;
+fun airline_N : N;
+fun airliner_N : N;
+fun airmail_N : N;
+fun airman_N : N;
+fun airplane_N : N;
+fun airport_N : N;
+fun airscrew_N : N;
+fun airship_N : N;
+fun airstrip_N : N;
+fun airtight_A : A;
+fun airway_N : N;
+fun airwoman_N : N;
+fun airworthiness_N : N;
+fun airworthy_A : A;
+fun airy_A : A;
+fun aisle_N : N;
+fun aitch_N : N;
+fun aitch_bone_N : N;
+fun ajar_A : A;
+fun akimbo_Adv : Adv;
+fun akin_A : A;
+fun akron_PN : PN;
+fun al_PN : PN;
+fun alabama_PN : PN;
+fun alabaster_A : A;
+fun alabaster_N : N;
+fun alacrity_N : N;
+fun alan_PN : PN;
+fun alarm_N : N;
+fun alarm_V2 : V2;
+fun alarm_clock_N : N;
+fun alarming_A : A;
+fun alarmist_N : N;
+fun alaska_PN : PN;
+fun alb_N : N;
+fun albania_PN : PN;
+fun albanian_A : A;
+fun albanian_N : N;
+fun albatross_N : N;
+fun albert_PN : PN;
+fun alberta_PN : PN;
+fun albino_N : N;
+fun album_N : N;
+fun albumen_N : N;
+fun alchemist_N : N;
+fun alchemy_N : N;
+fun alcohol_N : N;
+fun alcoholic_A : A;
+fun alcoholic_N : N;
+fun alcoholism_N : N;
+fun alcove_N : N;
+fun alder_N : N;
+fun alderman_N : N;
+fun aldermanic_A : A;
+fun aldershot_PN : PN;
+fun ale_N : N;
+fun ale_house_N : N;
+fun alee_A : A;
+fun alee_Adv : Adv;
+fun aleppo_PN : PN;
+fun alert_A : A;
+fun alert_N : N;
+fun alert_V2 : V2;
+fun alertness_N : N;
+fun alessandria_PN : PN;
+fun alex_PN : PN;
+fun alexander_PN : PN;
+fun alexandra_PN : PN;
+fun alexandria_PN : PN;
+fun alexandrine_N : N;
+fun alexia_N : N;
+fun alexic_A : A;
+fun alexic_N : N;
+fun alf_PN : PN;
+fun alfalfa_N : N;
+fun alfred_PN : PN;
+fun alfresco_A : A;
+fun alfresco_Adv : Adv;
+fun alfreton_PN : PN;
+fun alga_N : N;
+fun algebra_N : N;
+fun algebraic_A : A;
+fun algebraical_A : A;
+fun alger_PN : PN;
+fun algeria_PN : PN;
+fun algerian_A : A;
+fun algerian_N : N;
+fun ali_PN : PN;
+fun alias_Adv : Adv;
+fun alias_N : N;
+fun alibi_N : N;
+fun alicante_PN : PN;
+fun alice_PN : PN;
+fun alien_A : A;
+fun alien_N : N;
+fun alienate_V2 : V2;
+fun alienation_N : N;
+fun alienist_N : N;
+fun alight_A : A;
+fun alight_V : V;
+fun align_V : V;
+fun align_V2 : V2;
+fun alignment_N : N;
+fun alike_A : A;
+fun alike_Adv : Adv;
+fun alimentary_A : A;
+fun alimony_N : N;
+fun alison_PN : PN;
+fun alive_A : A;
+fun alkali_N : N;
+fun alkaline_A : A;
+fun all_mains_A : A;
+fun all_round_A : A;
+fun all_rounder_N : N;
+fun allah_PN : PN;
+fun allahabad_PN : PN;
+fun allan_PN : PN;
+fun allay_V2 : V2;
+fun allegation_N : N;
+fun allege_V2 : V2;
+fun allegedly_Adv : Adv;
+fun allegiance_N : N;
+fun allegoric_A : A;
+fun allegorical_A : A;
+fun allegory_N : N;
+fun allegretto_A : A;
+fun allegretto_Adv : Adv;
+fun allegretto_N : N;
+fun allegro_A : A;
+fun allegro_Adv : Adv;
+fun allegro_N : N;
+fun allen_PN : PN;
+fun allergen_N : N;
+fun allergic_A : A;
+fun allergy_N : N;
+fun alleviate_V2 : V2;
+fun alleviation_N : N;
+fun alley_N : N;
+fun alleyway_N : N;
+fun alliance_N : N;
+fun alligator_N : N;
+fun alliteration_N : N;
+fun alliterative_A : A;
+fun alloa_PN : PN;
+fun allocate_V2 : V2;
+fun allocation_N : N;
+fun allot_V2 : V2;
+fun allotment_N : N;
+fun allow_V : V;
+fun allow_V2 : V2;
+fun allowable_A : A;
+fun allowance_N : N;
+fun alloy_N : N;
+fun alloy_V2 : V2;
+fun allspice_N : N;
+fun allude_V : V;
+fun allure_N : N;
+fun allure_V2 : V2;
+fun allurement_N : N;
+fun alluring_A : A;
+fun allusion_N : N;
+fun allusive_A : A;
+fun alluvial_A : A;
+fun ally_N : N;
+fun ally_V2 : V2;
+fun alma_ata_PN : PN;
+fun alma_mater_N : N;
+fun almanac_N : N;
+fun almeria_PN : PN;
+fun almighty_A : A;
+fun almighty_N : N;
+fun almond_N : N;
+fun almond_eyed_A : A;
+fun almoner_N : N;
+fun almost_Adv : Adv;
+fun alms_box_N : N;
+fun alms_giving_N : N;
+fun alms_house_N : N;
+fun alnwick_PN : PN;
+fun aloe_N : N;
+fun aloft_Adv : Adv;
+fun alone_A : A;
+fun alone_Adv : Adv;
+fun along_Adv : Adv;
+fun alongside_Adv : Adv;
+fun aloof_A : A;
+fun aloof_Adv : Adv;
+fun aloofness_N : N;
+fun aloud_Adv : Adv;
+fun alp_N : N;
+fun alpaca_N : N;
+fun alpenstock_N : N;
+fun alpha_N : N;
+fun alphabet_N : N;
+fun alphabetical_A : A;
+fun alpine_A : A;
+fun alpinist_N : N;
+fun already_Adv : Adv;
+fun alright_A : A;
+fun alright_Adv : Adv;
+fun alsatian_N : N;
+fun also_Adv : Adv;
+fun also_ran_N : N;
+fun altar_N : N;
+fun altar_piece_N : N;
+fun alter_V : V;
+fun alter_V2 : V2;
+fun alter_ego_N : N;
+fun alterable_A : A;
+fun alteration_N : N;
+fun altercation_N : N;
+fun alternate_A : A;
+fun alternate_V : V;
+fun alternate_V2 : V2;
+fun alternation_N : N;
+fun alternative_A : A;
+fun alternative_N : N;
+fun altimeter_N : N;
+fun altitude_N : N;
+fun alto_N : N;
+fun altogether_Adv : Adv;
+fun alton_PN : PN;
+fun altrincham_PN : PN;
+fun altruism_N : N;
+fun altruist_N : N;
+fun altruistic_A : A;
+fun altruistically_Adv : Adv;
+fun alum_N : N;
+fun aluminium_N : N;
+fun alumna_N : N;
+fun alumnus_N : N;
+fun alvechurch_PN : PN;
+fun alveolar_A : A;
+fun alveolar_N : N;
+fun always_Adv : Adv;
+fun amah_N : N;
+fun amain_Adv : Adv;
+fun amalgam_N : N;
+fun amalgamate_V : V;
+fun amalgamate_V2 : V2;
+fun amalgamation_N : N;
+fun amanda_PN : PN;
+fun amanuensis_N : N;
+fun amaryllis_N : N;
+fun amass_V2 : V2;
+fun amateur_N : N;
+fun amateurish_A : A;
+fun amateurism_N : N;
+fun amatory_A : A;
+fun amaze_V2 : V2;
+fun amazement_N : N;
+fun amazing_A : A;
+fun amazon_N : N;
+fun ambassador_N : N;
+fun ambassadorial_A : A;
+fun ambassadress_N : N;
+fun amber_N : N;
+fun ambergris_N : N;
+fun ambidextrous_A : A;
+fun ambience_N : N;
+fun ambient_A : A;
+fun ambiguity_N : N;
+fun ambiguous_A : A;
+fun ambit_N : N;
+fun ambition_N : N;
+fun ambitious_A : A;
+fun ambivalence_N : N;
+fun ambivalent_A : A;
+fun amble_N : N;
+fun amble_V : V;
+fun ambrosia_N : N;
+fun ambulance_N : N;
+fun ambuscade_N : N;
+fun ambuscade_V2 : V2;
+fun ambush_N : N;
+fun ambush_V2 : V2;
+fun ameba_N : N;
+fun ameer_N : N;
+fun ameliorate_V : V;
+fun ameliorate_V2 : V2;
+fun amelioration_N : N;
+fun amenable_A : A;
+fun amend_V : V;
+fun amend_V2 : V2;
+fun amendable_A : A;
+fun amendment_N : N;
+fun amenity_N : N;
+fun america_PN : PN;
+fun american_A : A;
+fun american_N : N;
+fun americanism_N : N;
+fun amesbury_PN : PN;
+fun amethyst_N : N;
+fun amharic_N : N;
+fun amiability_N : N;
+fun amiable_A : A;
+fun amicability_N : N;
+fun amicable_A : A;
+fun amidships_Adv : Adv;
+fun amiens_PN : PN;
+fun amir_N : N;
+fun amiss_A : A;
+fun amiss_Adv : Adv;
+fun amity_N : N;
+fun ammanford_PN : PN;
+fun ammeter_N : N;
+fun ammonia_N : N;
+fun ammoniated_A : A;
+fun ammonite_N : N;
+fun ammunition_N : N;
+fun amnesia_N : N;
+fun amnesty_N : N;
+fun amoeba_N : N;
+fun amoebic_A : A;
+fun amok_Adv : Adv;
+fun amoral_A : A;
+fun amorous_A : A;
+fun amorphous_A : A;
+fun amortization_N : N;
+fun amortize_V2 : V2;
+fun amount_N : N;
+fun amount_V : V;
+fun amour_N : N;
+fun amour_propre_N : N;
+fun amp_N : N;
+fun ampere_N : N;
+fun amphetamine_N : N;
+fun amphibian_N : N;
+fun amphibious_A : A;
+fun amphitheatre_N : N;
+fun amphora_N : N;
+fun ample_A : A;
+fun amplification_N : N;
+fun amplifier_N : N;
+fun amplify_V2 : V2;
+fun amplitude_N : N;
+fun ampoule_N : N;
+fun amputate_V2 : V2;
+fun amputation_N : N;
+fun amsterdam_PN : PN;
+fun amuck_Adv : Adv;
+fun amulet_N : N;
+fun amuse_V2 : V2;
+fun amusement_N : N;
+fun amusing_A : A;
+fun amy_PN : PN;
+fun anachronism_N : N;
+fun anachronistic_A : A;
+fun anaconda_N : N;
+fun anaemia_N : N;
+fun anaemic_A : A;
+fun anaesthesia_N : N;
+fun anaesthetic_A : A;
+fun anaesthetic_N : N;
+fun anaesthetist_N : N;
+fun anaesthetize_V2 : V2;
+fun anagram_N : N;
+fun anal_A : A;
+fun analgesia_N : N;
+fun analgesic_N : N;
+fun analog_N : N;
+fun analogous_A : A;
+fun analogue_N : N;
+fun analogy_N : N;
+fun analyse_V2 : V2;
+fun analysis_N : N;
+fun analyst_N : N;
+fun analytic_A : A;
+fun analytical_A : A;
+fun analyze_V2 : V2;
+fun anapaest_N : N;
+fun anapaestic_A : A;
+fun anarchic_A : A;
+fun anarchically_Adv : Adv;
+fun anarchism_N : N;
+fun anarchist_N : N;
+fun anarchy_N : N;
+fun anathema_N : N;
+fun anathematize_V : V;
+fun anathematize_V2 : V2;
+fun anatomical_A : A;
+fun anatomist_N : N;
+fun anatomy_N : N;
+fun ancestor_N : N;
+fun ancestral_A : A;
+fun ancestress_N : N;
+fun ancestry_N : N;
+fun anchor_N : N;
+fun anchor_V : V;
+fun anchor_V2 : V2;
+fun anchorage_N : N;
+fun anchorite_N : N;
+fun anchorman_N : N;
+fun anchovy_N : N;
+fun ancient_A : A;
+fun ancillary_A : A;
+fun ancona_PN : PN;
+fun andante_A : A;
+fun andante_Adv : Adv;
+fun andante_N : N;
+fun andiron_N : N;
+fun andorra_PN : PN;
+fun andorran_A : A;
+fun andorran_N : N;
+fun andover_PN : PN;
+fun andrew_PN : PN;
+fun andy_PN : PN;
+fun anecdotal_A : A;
+fun anecdote_N : N;
+fun anemometer_N : N;
+fun anemone_N : N;
+fun aneroid_A : A;
+fun aneroid_N : N;
+fun anesthetic_A : A;
+fun anesthetic_N : N;
+fun anesthetist_N : N;
+fun anesthetize_V2 : V2;
+fun anew_Adv : Adv;
+fun angel_N : N;
+fun angela_PN : PN;
+fun angelic_A : A;
+fun angelica_N : N;
+fun angelically_Adv : Adv;
+fun angelus_N : N;
+fun anger_N : N;
+fun anger_V2 : V2;
+fun angers_PN : PN;
+fun angie_PN : PN;
+fun angina_N : N;
+fun angle_N : N;
+fun angle_V : V;
+fun angle_V2 : V2;
+fun angle_dozer_N : N;
+fun angle_iron_N : N;
+fun angle_park_V : V;
+fun angle_park_V2 : V2;
+fun angler_N : N;
+fun anglican_A : A;
+fun anglican_N : N;
+fun anglicism_N : N;
+fun anglicize_V2 : V2;
+fun angling_N : N;
+fun anglo_catholic_A : A;
+fun anglo_catholic_N : N;
+fun anglo_indian_A : A;
+fun anglo_indian_N : N;
+fun anglo_saxon_A : A;
+fun anglo_saxon_N : N;
+fun anglomania_N : N;
+fun anglophil_N : N;
+fun anglophile_N : N;
+fun anglophobe_N : N;
+fun anglophobia_N : N;
+fun angola_PN : PN;
+fun angolan_A : A;
+fun angolan_N : N;
+fun angora_N : N;
+fun angostura_N : N;
+fun angry_A : A;
+fun angst_N : N;
+fun anguilla_PN : PN;
+fun anguillan_A : A;
+fun anguillan_N : N;
+fun anguish_N : N;
+fun anguished_A : A;
+fun angular_A : A;
+fun angularity_N : N;
+fun angus_PN : PN;
+fun aniline_N : N;
+fun animadversion_N : N;
+fun animadvert_V : V;
+fun animal_N : N;
+fun animalcule_N : N;
+fun animate_A : A;
+fun animate_V2 : V2;
+fun animatedly_A : A;
+fun animation_N : N;
+fun animism_N : N;
+fun animosity_N : N;
+fun animus_N : N;
+fun anise_N : N;
+fun aniseed_N : N;
+fun anita_PN : PN;
+fun ankara_PN : PN;
+fun ankle_N : N;
+fun anklet_N : N;
+fun ann_PN : PN;
+fun anna_N : N;
+fun annabel_PN : PN;
+fun annalist_N : N;
+fun annan_PN : PN;
+fun anne_PN : PN;
+fun anneal_V2 : V2;
+fun annex_N : N;
+fun annex_V2 : V2;
+fun annexation_N : N;
+fun annexe_N : N;
+fun annfield_PN : PN;
+fun annfield_plain_PN : PN;
+fun annie_PN : PN;
+fun annihilate_V2 : V2;
+fun annihilation_N : N;
+fun anniversary_N : N;
+fun annotate_V2 : V2;
+fun annotation_N : N;
+fun announce_V2 : V2;
+fun announcement_N : N;
+fun announcer_N : N;
+fun annoy_V2 : V2;
+fun annoyance_N : N;
+fun annoying_A : A;
+fun annual_A : A;
+fun annual_N : N;
+fun annuitant_N : N;
+fun annuity_N : N;
+fun annul_V2 : V2;
+fun annular_A : A;
+fun annulment_N : N;
+fun annunciate_V2 : V2;
+fun annunciation_N : N;
+fun anode_N : N;
+fun anodyne_A : A;
+fun anodyne_N : N;
+fun anoint_V2 : V2;
+fun anointment_N : N;
+fun anomalous_A : A;
+fun anomaly_N : N;
+fun anon_Adv : Adv;
+fun anon_PN : PN;
+fun anonymity_N : N;
+fun anonymous_A : A;
+fun anopheles_N : N;
+fun anorak_N : N;
+fun another_A : A;
+fun anshan_PN : PN;
+fun answer_N : N;
+fun answer_V : V;
+fun answer_V2 : V2;
+fun answerable_A : A;
+fun ant_N : N;
+fun ant_eater_N : N;
+fun ant_hill_N : N;
+fun antagonism_N : N;
+fun antagonist_N : N;
+fun antagonistic_A : A;
+fun antagonistically_Adv : Adv;
+fun antagonize_V2 : V2;
+fun antarctic_A : A;
+fun ante_N : N;
+fun ante_meridiem_Adv : Adv;
+fun antecedence_N : N;
+fun antecedent_A : A;
+fun antecedent_N : N;
+fun antechamber_N : N;
+fun antedate_V2 : V2;
+fun antediluvian_A : A;
+fun antediluvian_N : N;
+fun antelope_N : N;
+fun antenatal_A : A;
+fun antenna_N : N;
+fun antenuptial_A : A;
+fun antepenultimate_A : A;
+fun anterior_A : A;
+fun anteroom_N : N;
+fun anthea_PN : PN;
+fun anthem_N : N;
+fun anther_N : N;
+fun anthology_N : N;
+fun anthony_PN : PN;
+fun anthracite_N : N;
+fun anthrax_N : N;
+fun anthropoid_A : A;
+fun anthropoid_N : N;
+fun anthropological_A : A;
+fun anthropologist_N : N;
+fun anthropology_N : N;
+fun anti_aircraft_A : A;
+fun anti_hero_N : N;
+fun anti_personnel_A : A;
+fun anti_semite_A : A;
+fun anti_semite_N : N;
+fun anti_semitic_A : A;
+fun anti_semitism_N : N;
+fun antibiotic_A : A;
+fun antibiotic_N : N;
+fun antibody_N : N;
+fun antic_N : N;
+fun anticipate_V2 : V2;
+fun anticipation_N : N;
+fun anticipatory_A : A;
+fun anticlimax_N : N;
+fun anticlockwise_Adv : Adv;
+fun anticyclone_N : N;
+fun antidote_N : N;
+fun antifreeze_N : N;
+fun antigua_PN : PN;
+fun antiguan_A : A;
+fun antiguan_N : N;
+fun antiknock_N : N;
+fun antilogarithm_N : N;
+fun antimacassar_N : N;
+fun antimony_N : N;
+fun antipathetic_A : A;
+fun antipathy_N : N;
+fun antiquarian_A : A;
+fun antiquarian_N : N;
+fun antiquary_N : N;
+fun antiquated_A : A;
+fun antique_A : A;
+fun antique_N : N;
+fun antiquity_N : N;
+fun antirrhinum_N : N;
+fun antiseptic_A : A;
+fun antiseptic_N : N;
+fun antisocial_A : A;
+fun antitank_A : A;
+fun antithesis_N : N;
+fun antithetic_A : A;
+fun antithetical_A : A;
+fun antitoxin_N : N;
+fun antitrade_A : A;
+fun antitrade_N : N;
+fun antler_N : N;
+fun antony_PN : PN;
+fun antonym_N : N;
+fun antrim_PN : PN;
+fun antwerp_PN : PN;
+fun anus_N : N;
+fun anvil_N : N;
+fun anxiety_N : N;
+fun anxious_A : A;
+fun any_A : A;
+fun any_Adv : Adv;
+fun anybody_N : N;
+fun anyhow_Adv : Adv;
+fun anyone_N : N;
+fun anyplace_Adv : Adv;
+fun anything_N : N;
+fun anyway_Adv : Adv;
+fun anywhere_Adv : Adv;
+fun aorta_N : N;
+fun apace_Adv : Adv;
+fun apache_N : N;
+fun apanage_N : N;
+fun apart_Adv : Adv;
+fun apartheid_N : N;
+fun apartment_N : N;
+fun apathetic_A : A;
+fun apathetically_Adv : Adv;
+fun apathy_N : N;
+fun ape_N : N;
+fun ape_V2 : V2;
+fun apeldoorn_PN : PN;
+fun aperient_A : A;
+fun aperient_N : N;
+fun aperitif_N : N;
+fun aperture_N : N;
+fun apex_N : N;
+fun aphasia_N : N;
+fun aphid_N : N;
+fun aphis_N : N;
+fun aphorism_N : N;
+fun aphrodisiac_A : A;
+fun aphrodisiac_N : N;
+fun apiarist_N : N;
+fun apiary_N : N;
+fun apiculture_N : N;
+fun apiece_Adv : Adv;
+fun apish_A : A;
+fun aplomb_N : N;
+fun apocalypse_N : N;
+fun apocalyptic_A : A;
+fun apocrypha_N : N;
+fun apocryphal_A : A;
+fun apogee_N : N;
+fun apologetic_A : A;
+fun apologetically_Adv : Adv;
+fun apologetics_N : N;
+fun apologist_N : N;
+fun apologize_V : V;
+fun apology_N : N;
+fun apophthegm_N : N;
+fun apoplectic_A : A;
+fun apoplexy_N : N;
+fun apostasy_N : N;
+fun apostate_A : A;
+fun apostate_N : N;
+fun apostle_N : N;
+fun apostolic_A : A;
+fun apostrophe_N : N;
+fun apostrophize_V2 : V2;
+fun apothecary_N : N;
+fun apothegm_N : N;
+fun apotheosis_N : N;
+fun appal_V2 : V2;
+fun appalling_A : A;
+fun appanage_N : N;
+fun apparatus_N : N;
+fun apparel_N : N;
+fun apparel_V2 : V2;
+fun apparent_A : A;
+fun apparition_N : N;
+fun appeal_N : N;
+fun appeal_V : V;
+fun appealing_A : A;
+fun appear_V : V;
+fun appearance_N : N;
+fun appease_V2 : V2;
+fun appeasement_N : N;
+fun appellant_A : A;
+fun appellant_N : N;
+fun appellation_N : N;
+fun append_V2 : V2;
+fun appendage_N : N;
+fun appendectomy_N : N;
+fun appendicitis_N : N;
+fun appendix_N : N;
+fun appertain_V : V;
+fun appetite_N : N;
+fun appetizer_N : N;
+fun appetizing_A : A;
+fun applaud_V : V;
+fun applaud_V2 : V2;
+fun applause_N : N;
+fun apple_N : N;
+fun applejack_N : N;
+fun appliance_N : N;
+fun applicability_N : N;
+fun applicable_A : A;
+fun applicant_N : N;
+fun application_N : N;
+fun applied_A : A;
+fun applique_N : N;
+fun applique_V2 : V2;
+fun apply_V : V;
+fun apply_V2 : V2;
+fun appoint_V2 : V2;
+fun appointee_N : N;
+fun appointment_N : N;
+fun apportion_V2 : V2;
+fun apportionment_N : N;
+fun apposite_A : A;
+fun apposition_N : N;
+fun appraisal_N : N;
+fun appraise_V2 : V2;
+fun appreciable_A : A;
+fun appreciate_V : V;
+fun appreciate_V2 : V2;
+fun appreciation_N : N;
+fun appreciative_A : A;
+fun apprehend_V2 : V2;
+fun apprehensible_A : A;
+fun apprehension_N : N;
+fun apprehensive_A : A;
+fun apprentice_N : N;
+fun apprentice_V2 : V2;
+fun apprenticeship_N : N;
+fun apprise_V2 : V2;
+fun appro_N : N;
+fun approach_N : N;
+fun approach_V : V;
+fun approach_V2 : V2;
+fun approachable_A : A;
+fun approbation_N : N;
+fun appropriate_A : A;
+fun appropriate_V2 : V2;
+fun appropriation_N : N;
+fun approval_N : N;
+fun approve_V : V;
+fun approve_V2 : V2;
+fun approvingly_Adv : Adv;
+fun approx_PN : PN;
+fun approximate_A : A;
+fun approximate_V : V;
+fun approximate_V2 : V2;
+fun approximation_N : N;
+fun appurtenance_N : N;
+fun apr_PN : PN;
+fun apricot_N : N;
+fun april_N : N;
+fun april_PN : PN;
+fun apron_N : N;
+fun apropos_A : A;
+fun apropos_Adv : Adv;
+fun apres_ski_A : A;
+fun apse_N : N;
+fun apt_A : A;
+fun aptitude_N : N;
+fun aptness_N : N;
+fun aqualung_N : N;
+fun aquamarine_N : N;
+fun aquanaut_N : N;
+fun aquaplane_N : N;
+fun aquaplane_V : V;
+fun aquarium_N : N;
+fun aquarius_PN : PN;
+fun aquatic_A : A;
+fun aquatint_N : N;
+fun aquavit_N : N;
+fun aqueduct_N : N;
+fun aqueous_A : A;
+fun aquiline_A : A;
+fun arab_N : N;
+fun arabesque_N : N;
+fun arabian_A : A;
+fun arabian_N : N;
+fun arabic_A : A;
+fun arabic_N : N;
+fun arabist_N : N;
+fun arable_A : A;
+fun arachnid_N : N;
+fun arbiter_N : N;
+fun arbitrament_N : N;
+fun arbitrary_A : A;
+fun arbitrate_V : V;
+fun arbitrate_V2 : V2;
+fun arbitration_N : N;
+fun arbitrator_N : N;
+fun arboreal_A : A;
+fun arbour_N : N;
+fun arbroath_PN : PN;
+fun arc_N : N;
+fun arc_lamp_N : N;
+fun arc_light_N : N;
+fun arcade_N : N;
+fun arcadian_A : A;
+fun arcadian_N : N;
+fun arcane_A : A;
+fun arch_A : A;
+fun arch_N : N;
+fun arch_V : V;
+fun arch_V2 : V2;
+fun archaeological_A : A;
+fun archaeologist_N : N;
+fun archaeology_N : N;
+fun archaic_A : A;
+fun archaism_N : N;
+fun archangel_N : N;
+fun archbishop_N : N;
+fun archbishopric_N : N;
+fun archdeacon_N : N;
+fun archdeaconry_N : N;
+fun archdiocese_N : N;
+fun archduke_N : N;
+fun archeology_N : N;
+fun archer_N : N;
+fun archery_N : N;
+fun archetypal_A : A;
+fun archetype_N : N;
+fun archimandrite_N : N;
+fun archipelago_N : N;
+fun architect_N : N;
+fun architectural_A : A;
+fun architecture_N : N;
+fun archivist_N : N;
+fun archway_N : N;
+fun arctic_A : A;
+fun ardent_A : A;
+fun ardour_N : N;
+fun ardrossan_PN : PN;
+fun arduous_A : A;
+fun are_N : N;
+fun area_N : N;
+fun areca_N : N;
+fun arena_N : N;
+fun argent_A : A;
+fun argent_N : N;
+fun argentina_PN : PN;
+fun argentine_PN : PN;
+fun argentinian_A : A;
+fun argentinian_N : N;
+fun argon_N : N;
+fun argonaut_N : N;
+fun argosy_N : N;
+fun argot_N : N;
+fun arguable_A : A;
+fun argue_V : V;
+fun argue_V2 : V2;
+fun argument_N : N;
+fun argumentation_N : N;
+fun argumentative_A : A;
+fun argus_N : N;
+fun argus_eyed_A : A;
+fun aria_N : N;
+fun arid_A : A;
+fun aridity_N : N;
+fun aries_PN : PN;
+fun aright_Adv : Adv;
+fun arise_V : V;
+fun aristocracy_N : N;
+fun aristocrat_N : N;
+fun aristocratic_A : A;
+fun aristocratically_Adv : Adv;
+fun arithmetic_N : N;
+fun arithmetical_A : A;
+fun arithmetician_N : N;
+fun arizona_PN : PN;
+fun ark_N : N;
+fun arkansas_PN : PN;
+fun arm_N : N;
+fun arm_V : V;
+fun arm_V2 : V2;
+fun arm_hole_N : N;
+fun armada_N : N;
+fun armadale_PN : PN;
+fun armadillo_N : N;
+fun armageddon_PN : PN;
+fun armagh_PN : PN;
+fun armament_N : N;
+fun armature_N : N;
+fun armband_N : N;
+fun armchair_N : N;
+fun armful_N : N;
+fun armistice_N : N;
+fun armlet_N : N;
+fun armoire_N : N;
+fun armorial_A : A;
+fun armour_N : N;
+fun armour_plate_N : N;
+fun armoured_A : A;
+fun armourer_N : N;
+fun armoury_N : N;
+fun armpit_N : N;
+fun arms_race_N : N;
+fun arms_runner_N : N;
+fun army_N : N;
+fun arnhem_PN : PN;
+fun arnica_N : N;
+fun arnold_PN : PN;
+fun aroma_N : N;
+fun aromatic_A : A;
+fun around_Adv : Adv;
+fun arouse_V2 : V2;
+fun arpeggio_N : N;
+fun arquebus_N : N;
+fun arr_PN : PN;
+fun arrack_N : N;
+fun arraign_V2 : V2;
+fun arraignment_N : N;
+fun arrange_V : V;
+fun arrange_V2 : V2;
+fun arrangement_N : N;
+fun arrant_A : A;
+fun arras_N : N;
+fun array_N : N;
+fun array_V2 : V2;
+fun arrest_N : N;
+fun arrest_V2 : V2;
+fun arrester_N : N;
+fun arresting_A : A;
+fun arrival_N : N;
+fun arrive_V : V;
+fun arriere_pensee_N : N;
+fun arrogance_N : N;
+fun arrogant_A : A;
+fun arrogate_V2 : V2;
+fun arrow_N : N;
+fun arrowhead_N : N;
+fun arrowroot_N : N;
+fun arse_N : N;
+fun arsehole_N : N;
+fun arsenal_N : N;
+fun arsenic_N : N;
+fun arson_N : N;
+fun art_N : N;
+fun art_PN : PN;
+fun artefact_N : N;
+fun arterial_A : A;
+fun arteriosclerosis_N : N;
+fun artery_N : N;
+fun artesian_A : A;
+fun artful_A : A;
+fun artfulness_N : N;
+fun arthritic_A : A;
+fun arthritis_N : N;
+fun arthur_PN : PN;
+fun artichoke_N : N;
+fun article_N : N;
+fun article_V2 : V2;
+fun articulate_A : A;
+fun articulate_V : V;
+fun articulate_V2 : V2;
+fun articulation_N : N;
+fun artie_PN : PN;
+fun artifact_N : N;
+fun artifice_N : N;
+fun artificer_N : N;
+fun artificial_A : A;
+fun artillery_N : N;
+fun artisan_N : N;
+fun artist_N : N;
+fun artiste_N : N;
+fun artistic_A : A;
+fun artistically_Adv : Adv;
+fun artistry_N : N;
+fun artless_A : A;
+fun artlessness_N : N;
+fun arty_A : A;
+fun arty_crafty_A : A;
+fun arum_N : N;
+fun aryan_A : A;
+fun aryan_N : N;
+fun arete_N : N;
+fun asap_PN : PN;
+fun asbestos_N : N;
+fun ascend_V : V;
+fun ascend_V2 : V2;
+fun ascendancy_N : N;
+fun ascendant_N : N;
+fun ascendency_N : N;
+fun ascendent_N : N;
+fun ascension_N : N;
+fun ascent_N : N;
+fun ascertain_V2 : V2;
+fun ascertainable_A : A;
+fun ascetic_A : A;
+fun ascetic_N : N;
+fun ascetically_Adv : Adv;
+fun asceticism_N : N;
+fun ascorbic_A : A;
+fun ascot_PN : PN;
+fun ascribable_A : A;
+fun ascribe_V2 : V2;
+fun ascription_N : N;
+fun asdic_N : N;
+fun asepsis_N : N;
+fun aseptic_A : A;
+fun asexual_A : A;
+fun asexuality_N : N;
+fun ash_N : N;
+fun ash_bin_N : N;
+fun ash_can_N : N;
+fun ash_key_N : N;
+fun ash_pan_N : N;
+fun ashamed_A : A;
+fun ashbourne_PN : PN;
+fun ashby_PN : PN;
+fun ashby_de_la_zouch_PN : PN;
+fun ashby_woulds_PN : PN;
+fun ashen_A : A;
+fun ashford_PN : PN;
+fun ashington_PN : PN;
+fun ashore_Adv : Adv;
+fun ashton_in_makerfield_PN : PN;
+fun ashton_under_lyne_PN : PN;
+fun ashtray_N : N;
+fun ashy_A : A;
+fun asian_A : A;
+fun asian_N : N;
+fun asiatic_A : A;
+fun asiatic_N : N;
+fun aside_Adv : Adv;
+fun aside_N : N;
+fun asinine_A : A;
+fun ask_V : V;
+fun ask_V2 : V2;
+fun askance_Adv : Adv;
+fun askern_PN : PN;
+fun askew_A : A;
+fun askew_Adv : Adv;
+fun asking_N : N;
+fun aslant_Adv : Adv;
+fun asleep_A : A;
+fun asleep_Adv : Adv;
+fun asp_N : N;
+fun asparagus_N : N;
+fun aspect_N : N;
+fun aspectual_A : A;
+fun aspen_N : N;
+fun asperity_N : N;
+fun asperse_V2 : V2;
+fun aspersion_N : N;
+fun asphalt_N : N;
+fun asphalt_V2 : V2;
+fun asphodel_N : N;
+fun asphyxia_N : N;
+fun asphyxiate_V2 : V2;
+fun asphyxiation_N : N;
+fun aspic_N : N;
+fun aspidistra_N : N;
+fun aspirant_N : N;
+fun aspirate_N : N;
+fun aspirate_V2 : V2;
+fun aspiration_N : N;
+fun aspire_V : V;
+fun aspirin_N : N;
+fun aspull_PN : PN;
+fun ass_N : N;
+fun assagai_N : N;
+fun assail_V2 : V2;
+fun assailable_A : A;
+fun assailant_N : N;
+fun assassin_N : N;
+fun assassinate_V2 : V2;
+fun assassination_N : N;
+fun assault_N : N;
+fun assault_V2 : V2;
+fun assay_N : N;
+fun assay_V2 : V2;
+fun assegai_N : N;
+fun assemblage_N : N;
+fun assemble_V : V;
+fun assemble_V2 : V2;
+fun assembly_N : N;
+fun assent_N : N;
+fun assent_V : V;
+fun assert_V2 : V2;
+fun assertion_N : N;
+fun assertive_A : A;
+fun assess_V2 : V2;
+fun assessment_N : N;
+fun assessor_N : N;
+fun asset_N : N;
+fun asseverate_V2 : V2;
+fun asseveration_N : N;
+fun asshole_N : N;
+fun assiduity_N : N;
+fun assiduous_A : A;
+fun assign_V2 : V2;
+fun assignable_A : A;
+fun assignation_N : N;
+fun assignment_N : N;
+fun assimilate_V : V;
+fun assimilate_V2 : V2;
+fun assimilation_N : N;
+fun assist_V : V;
+fun assist_V2 : V2;
+fun assistance_N : N;
+fun assistant_N : N;
+fun assize_N : N;
+fun assoc_N : N;
+fun associate_A : A;
+fun associate_N : N;
+fun associate_V : V;
+fun associate_V2 : V2;
+fun association_N : N;
+fun assonance_N : N;
+fun assorted_A : A;
+fun assortment_N : N;
+fun asst_N : N;
+fun assuage_V2 : V2;
+fun assume_V2 : V2;
+fun assumption_N : N;
+fun assurance_N : N;
+fun assure_V2 : V2;
+fun assured_A : A;
+fun assuredness_N : N;
+fun aster_N : N;
+fun asterisk_N : N;
+fun astern_Adv : Adv;
+fun asteroid_N : N;
+fun asthma_N : N;
+fun asthmatic_A : A;
+fun astigmatic_A : A;
+fun astigmatism_N : N;
+fun astir_A : A;
+fun astir_Adv : Adv;
+fun aston_PN : PN;
+fun astonish_V2 : V2;
+fun astonishing_A : A;
+fun astonishment_N : N;
+fun astound_V2 : V2;
+fun astrakhan_N : N;
+fun astral_A : A;
+fun astray_A : A;
+fun astray_Adv : Adv;
+fun astride_A : A;
+fun astride_Adv : Adv;
+fun astringency_N : N;
+fun astringent_A : A;
+fun astringent_N : N;
+fun astrodome_N : N;
+fun astrolabe_N : N;
+fun astrologer_N : N;
+fun astrological_A : A;
+fun astrology_N : N;
+fun astronaut_N : N;
+fun astronautics_N : N;
+fun astronomer_N : N;
+fun astronomical_A : A;
+fun astronomy_N : N;
+fun astrophysics_N : N;
+fun astute_A : A;
+fun astuteness_N : N;
+fun asunder_Adv : Adv;
+fun asylum_N : N;
+fun asymmetric_A : A;
+fun asymmetrical_A : A;
+fun asymmetry_N : N;
+fun asymptote_N : N;
+fun asymptotic_A : A;
+fun asymptotically_Adv : Adv;
+fun at_home_N : N;
+fun atabrine_N : N;
+fun atavism_N : N;
+fun atavistic_A : A;
+fun atelier_N : N;
+fun atheism_N : N;
+fun atheist_N : N;
+fun atheistic_A : A;
+fun athenian_A : A;
+fun athenian_N : N;
+fun athens_PN : PN;
+fun atherstone_PN : PN;
+fun athirst_A : A;
+fun athlete_N : N;
+fun athletic_A : A;
+fun athletics_N : N;
+fun athlone_PN : PN;
+fun athwart_Adv : Adv;
+fun atlanta_PN : PN;
+fun atlantic_PN : PN;
+fun atlas_N : N;
+fun atmosphere_N : N;
+fun atmospheric_A : A;
+fun atmospherics_N : N;
+fun atoll_N : N;
+fun atom_N : N;
+fun atomic_A : A;
+fun atomize_V2 : V2;
+fun atomizer_N : N;
+fun atonal_A : A;
+fun atonality_N : N;
+fun atone_V : V;
+fun atonement_N : N;
+fun atop_Adv : Adv;
+fun atrabilious_A : A;
+fun atrocious_A : A;
+fun atrocity_N : N;
+fun atrophy_N : N;
+fun atrophy_V : V;
+fun atrophy_V2 : V2;
+fun attach_V : V;
+fun attach_V2 : V2;
+fun attachment_N : N;
+fun attache_N : N;
+fun attack_N : N;
+fun attack_V2 : V2;
+fun attacker_N : N;
+fun attain_V : V;
+fun attain_V2 : V2;
+fun attainable_A : A;
+fun attainder_N : N;
+fun attainment_N : N;
+fun attar_N : N;
+fun attempt_N : N;
+fun attempt_V2 : V2;
+fun attend_V : V;
+fun attend_V2 : V2;
+fun attendance_N : N;
+fun attendant_A : A;
+fun attendant_N : N;
+fun attention_N : N;
+fun attentive_A : A;
+fun attentiveness_N : N;
+fun attenuate_V2 : V2;
+fun attenuation_N : N;
+fun attest_V : V;
+fun attest_V2 : V2;
+fun attic_A : A;
+fun attic_N : N;
+fun attire_N : N;
+fun attire_V2 : V2;
+fun attitude_N : N;
+fun attitudinize_V : V;
+fun attorney_N : N;
+fun attract_V2 : V2;
+fun attraction_N : N;
+fun attractive_A : A;
+fun attributable_A : A;
+fun attribute_N : N;
+fun attribute_V2 : V2;
+fun attribution_N : N;
+fun attributive_A : A;
+fun attrition_N : N;
+fun attune_V2 : V2;
+fun atypical_A : A;
+fun au_fait_A : A;
+fun au_fond_Adv : Adv;
+fun au_pair_N : N;
+fun aubergine_N : N;
+fun aubrietia_N : N;
+fun auburn_A : A;
+fun auckland_PN : PN;
+fun auction_N : N;
+fun auction_V2 : V2;
+fun auctioneer_N : N;
+fun audacious_A : A;
+fun audacity_N : N;
+fun audibility_N : N;
+fun audible_A : A;
+fun audience_N : N;
+fun audio_lingual_A : A;
+fun audit_N : N;
+fun audit_V2 : V2;
+fun audition_N : N;
+fun audition_V2 : V2;
+fun auditor_N : N;
+fun auditorium_N : N;
+fun auditory_A : A;
+fun audley_PN : PN;
+fun audrey_PN : PN;
+fun aug_PN : PN;
+fun auger_N : N;
+fun aught_N : N;
+fun augment_V : V;
+fun augment_V2 : V2;
+fun augmentation_N : N;
+fun augsburg_PN : PN;
+fun augur_N : N;
+fun augur_V : V;
+fun augur_V2 : V2;
+fun augury_N : N;
+fun august_A : A;
+fun august_N : N;
+fun august_PN : PN;
+fun augustan_A : A;
+fun auk_N : N;
+fun auld_lang_syne_N : N;
+fun aunt_N : N;
+fun auntie_N : N;
+fun aunty_N : N;
+fun aura_N : N;
+fun aural_A : A;
+fun aureole_N : N;
+fun auricle_N : N;
+fun auricular_A : A;
+fun auriferous_A : A;
+fun aurora_N : N;
+fun auspicious_A : A;
+fun aussie_N : N;
+fun austere_A : A;
+fun austerity_N : N;
+fun australia_PN : PN;
+fun australian_A : A;
+fun australian_N : N;
+fun austria_PN : PN;
+fun austrian_A : A;
+fun austrian_N : N;
+fun autarchy_N : N;
+fun autarky_N : N;
+fun authentic_A : A;
+fun authentically_Adv : Adv;
+fun authenticate_V2 : V2;
+fun authentication_N : N;
+fun authenticity_N : N;
+fun author_N : N;
+fun authoress_N : N;
+fun authoritarian_A : A;
+fun authoritarian_N : N;
+fun authoritarianism_N : N;
+fun authoritative_A : A;
+fun authority_N : N;
+fun authorization_N : N;
+fun authorize_V2 : V2;
+fun authorship_N : N;
+fun autism_N : N;
+fun autistic_A : A;
+fun auto_N : N;
+fun auto_changer_N : N;
+fun auto_da_fe_N : N;
+fun autobahn_N : N;
+fun autobiographic_A : A;
+fun autobiographical_A : A;
+fun autobiography_N : N;
+fun autocracy_N : N;
+fun autocrat_N : N;
+fun autocratic_A : A;
+fun autocratically_Adv : Adv;
+fun autogiro_N : N;
+fun autograph_N : N;
+fun autograph_V2 : V2;
+fun autogyro_N : N;
+fun automat_N : N;
+fun automate_V2 : V2;
+fun automatic_A : A;
+fun automatic_N : N;
+fun automatically_Adv : Adv;
+fun automation_N : N;
+fun automaton_N : N;
+fun automobile_N : N;
+fun autonomous_A : A;
+fun autonomy_N : N;
+fun autopsy_N : N;
+fun autostrada_N : N;
+fun autumn_N : N;
+fun autumnal_A : A;
+fun auxiliary_A : A;
+fun auxiliary_N : N;
+fun avail_N : N;
+fun avail_V : V;
+fun avail_V2 : V2;
+fun availability_N : N;
+fun available_A : A;
+fun avalanche_N : N;
+fun avant_garde_N : N;
+fun avarice_N : N;
+fun avaricious_A : A;
+fun avatar_N : N;
+fun ave_PN : PN;
+fun aveley_PN : PN;
+fun avenge_V2 : V2;
+fun avenger_N : N;
+fun avenue_N : N;
+fun aver_V2 : V2;
+fun average_A : A;
+fun average_N : N;
+fun average_V : V;
+fun average_V2 : V2;
+fun averse_A : A;
+fun aversion_N : N;
+fun avert_V2 : V2;
+fun aviary_N : N;
+fun aviation_N : N;
+fun aviator_N : N;
+fun avid_A : A;
+fun avidity_N : N;
+fun avignon_PN : PN;
+fun avocado_N : N;
+fun avocation_N : N;
+fun avoid_V2 : V2;
+fun avoidable_A : A;
+fun avoidance_N : N;
+fun avoirdupois_N : N;
+fun avon_PN : PN;
+fun avouch_V : V;
+fun avouch_V2 : V2;
+fun avow_V2 : V2;
+fun avowal_N : N;
+fun avowedly_Adv : Adv;
+fun avuncular_A : A;
+fun await_V2 : V2;
+fun awake_A : A;
+fun awake_V : V;
+fun awaken_V2 : V2;
+fun awakening_N : N;
+fun award_N : N;
+fun award_V2 : V2;
+fun aware_A : A;
+fun awareness_N : N;
+fun awash_A : A;
+fun away_A : A;
+fun away_Adv : Adv;
+fun awe_N : N;
+fun awe_V2 : V2;
+fun awe_inspiring_A : A;
+fun awe_stricken_A : A;
+fun awe_struck_A : A;
+fun aweigh_Adv : Adv;
+fun awesome_A : A;
+fun awful_A : A;
+fun awhile_Adv : Adv;
+fun awkward_A : A;
+fun awkwardness_N : N;
+fun awl_N : N;
+fun awning_N : N;
+fun awol_PN : PN;
+fun awry_A : A;
+fun awry_Adv : Adv;
+fun ax_N : N;
+fun ax_V2 : V2;
+fun axe_N : N;
+fun axe_V2 : V2;
+fun axiom_N : N;
+fun axiomatic_A : A;
+fun axiomatically_Adv : Adv;
+fun axis_N : N;
+fun axle_N : N;
+fun ay_Adv : Adv;
+fun ayah_N : N;
+fun aycliffe_PN : PN;
+fun aye_Adv : Adv;
+fun aylesbury_PN : PN;
+fun aylesford_PN : PN;
+fun ayr_PN : PN;
+fun azalea_N : N;
+fun azimuth_N : N;
+fun azure_A : A;
+fun azure_N : N;
+fun b_ed_N : N;
+fun ba_N : N;
+fun baa_N : N;
+fun baa_V : V;
+fun baa_lamb_N : N;
+fun baas_N : N;
+fun babble_N : N;
+fun babble_V : V;
+fun babble_V2 : V2;
+fun babbler_N : N;
+fun babe_N : N;
+fun babel_N : N;
+fun baboo_N : N;
+fun baboon_N : N;
+fun babs_PN : PN;
+fun babu_N : N;
+fun baby_N : N;
+fun baby_V2 : V2;
+fun baby_faced_A : A;
+fun baby_farmer_N : N;
+fun baby_minder_N : N;
+fun baby_talk_N : N;
+fun babyhood_N : N;
+fun babyish_A : A;
+fun babysit_V : V;
+fun babysitter_N : N;
+fun babysitting_N : N;
+fun baccalaureate_N : N;
+fun baccarat_N : N;
+fun bacchanal_A : A;
+fun bacchanal_N : N;
+fun bacchanalian_A : A;
+fun baccy_N : N;
+fun bachelor_N : N;
+fun bacillus_N : N;
+fun back_Adv : Adv;
+fun back_N : N;
+fun back_V : V;
+fun back_V2 : V2;
+fun back_breaking_A : A;
+fun back_down_N : N;
+fun back_formation_N : N;
+fun back_up_N : N;
+fun backache_N : N;
+fun backband_N : N;
+fun backbench_N : N;
+fun backbencher_N : N;
+fun backbite_V : V;
+fun backbite_V2 : V2;
+fun backbiter_N : N;
+fun backboard_N : N;
+fun backbone_N : N;
+fun backchat_N : N;
+fun backcloth_N : N;
+fun backdate_V2 : V2;
+fun backdoor_N : N;
+fun backdrop_N : N;
+fun backer_N : N;
+fun backfire_N : N;
+fun backfire_V : V;
+fun backgammon_N : N;
+fun background_N : N;
+fun backhand_A : A;
+fun backhanded_A : A;
+fun backing_N : N;
+fun backlash_N : N;
+fun backless_A : A;
+fun backlog_N : N;
+fun backmost_A : A;
+fun backpedal_V : V;
+fun backroom_N : N;
+fun backscratcher_N : N;
+fun backseat_N : N;
+fun backsheesh_N : N;
+fun backside_N : N;
+fun backslide_V : V;
+fun backspace_V : V;
+fun backstage_Adv : Adv;
+fun backstair_A : A;
+fun backstroke_N : N;
+fun backsword_N : N;
+fun backtalk_N : N;
+fun backward_A : A;
+fun backward_Adv : Adv;
+fun backwards_A : A;
+fun backwards_Adv : Adv;
+fun backwash_N : N;
+fun backwater_N : N;
+fun backwoodsman_N : N;
+fun backworth_PN : PN;
+fun bacon_N : N;
+fun bacterial_A : A;
+fun bacteriologist_N : N;
+fun bacteriology_N : N;
+fun bacterium_N : N;
+fun bacup_PN : PN;
+fun bad_A : A;
+fun bad_N : N;
+fun badajoz_PN : PN;
+fun badalona_PN : PN;
+fun badge_N : N;
+fun badger_N : N;
+fun badger_V2 : V2;
+fun badinage_N : N;
+fun badly_behaved_A : A;
+fun badminton_N : N;
+fun badness_N : N;
+fun baffle_N : N;
+fun baffle_V2 : V2;
+fun bag_N : N;
+fun bag_V : V;
+fun bag_V2 : V2;
+fun bagatelle_N : N;
+fun baggage_N : N;
+fun baggy_A : A;
+fun baghdad_PN : PN;
+fun bagnio_N : N;
+fun bagpipe_N : N;
+fun bahamas_PN : PN;
+fun bahamian_A : A;
+fun bahamian_N : N;
+fun bahasa_N : N;
+fun bahrain_PN : PN;
+fun bahraini_A : A;
+fun bahraini_N : N;
+fun bail_N : N;
+fun bail_V : V;
+fun bail_V2 : V2;
+fun bailee_N : N;
+fun bailey_N : N;
+fun bailey_PN : PN;
+fun bailiff_N : N;
+fun bailment_N : N;
+fun bailor_N : N;
+fun bairn_N : N;
+fun bait_N : N;
+fun bait_V : V;
+fun bait_V2 : V2;
+fun baize_N : N;
+fun bake_V : V;
+fun bake_V2 : V2;
+fun bakelite_N : N;
+fun baker_N : N;
+fun bakery_N : N;
+fun baking_hot_A : A;
+fun baking_powder_N : N;
+fun baksheesh_N : N;
+fun baku_PN : PN;
+fun balaclava_N : N;
+fun balalaika_N : N;
+fun balance_N : N;
+fun balance_V : V;
+fun balance_V2 : V2;
+fun balance_sheet_N : N;
+fun balance_wheel_N : N;
+fun balconied_A : A;
+fun balcony_N : N;
+fun bald_A : A;
+fun bald_head_N : N;
+fun bald_pate_N : N;
+fun balderdash_N : N;
+fun baldness_N : N;
+fun baldock_PN : PN;
+fun baldric_N : N;
+fun bale_N : N;
+fun bale_V2 : V2;
+fun baleful_A : A;
+fun balk_N : N;
+fun balk_V : V;
+fun balk_V2 : V2;
+fun ball_N : N;
+fun ball_V : V;
+fun ball_V2 : V2;
+fun ball_cartridge_N : N;
+fun ball_dress_N : N;
+fun ballad_N : N;
+fun ballade_N : N;
+fun ballast_N : N;
+fun ballast_V2 : V2;
+fun ballbearing_N : N;
+fun ballcock_N : N;
+fun ballerina_N : N;
+fun ballet_N : N;
+fun ballet_dancer_N : N;
+fun ballet_skirt_N : N;
+fun ballistic_A : A;
+fun ballistics_N : N;
+fun ballock_N : N;
+fun balloon_N : N;
+fun balloon_V : V;
+fun balloonist_N : N;
+fun ballot_N : N;
+fun ballot_V : V;
+fun ballot_box_N : N;
+fun ballpen_N : N;
+fun ballpoint_N : N;
+fun ballpoint_pen_N : N;
+fun ballroom_N : N;
+fun balls_up_N : N;
+fun bally_A : A;
+fun bally_Adv : Adv;
+fun ballyhoo_N : N;
+fun balm_N : N;
+fun balmy_A : A;
+fun baloney_N : N;
+fun balsa_N : N;
+fun balsam_N : N;
+fun baltimore_PN : PN;
+fun baluster_N : N;
+fun balustrade_N : N;
+fun bambino_N : N;
+fun bamboo_N : N;
+fun bamboozle_V2 : V2;
+fun ban_N : N;
+fun ban_V2 : V2;
+fun banal_A : A;
+fun banality_N : N;
+fun banana_N : N;
+fun banbury_PN : PN;
+fun band_N : N;
+fun band_V : V;
+fun band_V2 : V2;
+fun band_saw_N : N;
+fun bandage_N : N;
+fun bandage_V2 : V2;
+fun bandanna_N : N;
+fun bandbox_N : N;
+fun bandeau_N : N;
+fun bandit_N : N;
+fun banditry_N : N;
+fun bandleader_N : N;
+fun bandmaster_N : N;
+fun bandoleer_N : N;
+fun bandolier_N : N;
+fun bandsman_N : N;
+fun bandstand_N : N;
+fun bandung_PN : PN;
+fun bandwagon_N : N;
+fun bandy_A : A;
+fun bandy_V2 : V2;
+fun bandy_legged_A : A;
+fun bane_N : N;
+fun baneful_A : A;
+fun bang_Adv : Adv;
+fun bang_N : N;
+fun bang_V : V;
+fun bang_V2 : V2;
+fun bangalore_PN : PN;
+fun banger_N : N;
+fun bangkok_PN : PN;
+fun bangladesh_PN : PN;
+fun bangladeshi_A : A;
+fun bangladeshi_N : N;
+fun bangle_N : N;
+fun bangor_PN : PN;
+fun banian_N : N;
+fun banian_tree_N : N;
+fun banish_V2 : V2;
+fun banishment_N : N;
+fun banister_N : N;
+fun banjo_N : N;
+fun bank_N : N;
+fun bank_V : V;
+fun bank_V2 : V2;
+fun bank_bill_N : N;
+fun bank_book_N : N;
+fun bank_draft_N : N;
+fun bank_rate_N : N;
+fun banker_N : N;
+fun banking_N : N;
+fun banknote_N : N;
+fun bankroll_N : N;
+fun bankrupt_A : A;
+fun bankrupt_N : N;
+fun bankrupt_V2 : V2;
+fun bankruptcy_N : N;
+fun banner_N : N;
+fun banning_order_N : N;
+fun bannister_N : N;
+fun bannock_N : N;
+fun bannockburn_PN : PN;
+fun banquet_N : N;
+fun banquet_V : V;
+fun banquet_V2 : V2;
+fun banshee_N : N;
+fun bant_V : V;
+fun bantam_N : N;
+fun banter_N : N;
+fun banter_V : V;
+fun banter_V2 : V2;
+fun bantering_A : A;
+fun banting_N : N;
+fun bantry_PN : PN;
+fun bantu_A : A;
+fun bantu_N : N;
+fun banyan_N : N;
+fun baobab_N : N;
+fun baptism_N : N;
+fun baptismal_A : A;
+fun baptist_A : A;
+fun baptist_N : N;
+fun baptize_V2 : V2;
+fun bar_N : N;
+fun bar_V2 : V2;
+fun baracaldo_PN : PN;
+fun barb_N : N;
+fun barbadian_A : A;
+fun barbadian_N : N;
+fun barbados_PN : PN;
+fun barbara_PN : PN;
+fun barbarian_A : A;
+fun barbarian_N : N;
+fun barbaric_A : A;
+fun barbarism_N : N;
+fun barbarity_N : N;
+fun barbarize_V2 : V2;
+fun barbarous_A : A;
+fun barbecue_N : N;
+fun barbecue_V2 : V2;
+fun barbed_A : A;
+fun barbel_N : N;
+fun barber_N : N;
+fun barbican_N : N;
+fun barbitone_N : N;
+fun barbiturate_N : N;
+fun barcarole_N : N;
+fun barcarolle_N : N;
+fun barcelona_PN : PN;
+fun bard_N : N;
+fun bardic_A : A;
+fun bardolatry_N : N;
+fun bare_A : A;
+fun bare_V2 : V2;
+fun bareback_Adv : Adv;
+fun barebacked_A : A;
+fun barebacked_Adv : Adv;
+fun barefaced_A : A;
+fun barefoot_Adv : Adv;
+fun barefooted_A : A;
+fun barefooted_Adv : Adv;
+fun bareheaded_A : A;
+fun barelegged_A : A;
+fun bareness_N : N;
+fun bargain_N : N;
+fun bargain_V : V;
+fun bargain_V2 : V2;
+fun barge_N : N;
+fun barge_V : V;
+fun bargee_N : N;
+fun bargepole_N : N;
+fun bargoed_PN : PN;
+fun bari_PN : PN;
+fun baritone_N : N;
+fun barium_N : N;
+fun bark_N : N;
+fun bark_V : V;
+fun bark_V2 : V2;
+fun barker_N : N;
+fun barking_PN : PN;
+fun barley_N : N;
+fun barley_sugar_N : N;
+fun barley_water_N : N;
+fun barleycorn_N : N;
+fun barm_N : N;
+fun barmaid_N : N;
+fun barman_N : N;
+fun barmy_A : A;
+fun barn_N : N;
+fun barn_door_N : N;
+fun barnacle_N : N;
+fun barnard_castle_PN : PN;
+fun barnet_PN : PN;
+fun barnoldswick_PN : PN;
+fun barnsley_PN : PN;
+fun barnstaple_PN : PN;
+fun barnstorm_V : V;
+fun barnstormer_N : N;
+fun barnyard_N : N;
+fun barometer_N : N;
+fun barometric_A : A;
+fun baron_N : N;
+fun baronage_N : N;
+fun baroness_N : N;
+fun baronet_N : N;
+fun baronetcy_N : N;
+fun baronial_A : A;
+fun barony_N : N;
+fun baroque_A : A;
+fun baroque_N : N;
+fun barouche_N : N;
+fun barque_N : N;
+fun barrack_N : N;
+fun barrack_V : V;
+fun barrack_V2 : V2;
+fun barracking_N : N;
+fun barracuda_N : N;
+fun barrage_N : N;
+fun barranquilla_PN : PN;
+fun barrel_N : N;
+fun barrel_V2 : V2;
+fun barrelled_A : A;
+fun barren_A : A;
+fun barrenness_N : N;
+fun barrhead_PN : PN;
+fun barricade_N : N;
+fun barricade_V2 : V2;
+fun barrier_N : N;
+fun barrister_N : N;
+fun barrow_N : N;
+fun barrow_boy_N : N;
+fun barrow_in_furness_PN : PN;
+fun barrow_man_N : N;
+fun barry_PN : PN;
+fun bart_PN : PN;
+fun bartender_N : N;
+fun barter_N : N;
+fun barter_V : V;
+fun barter_V2 : V2;
+fun barterer_N : N;
+fun bartholomew_PN : PN;
+fun barton_upon_humber_PN : PN;
+fun bas_relief_N : N;
+fun basal_A : A;
+fun basalt_N : N;
+fun bascule_N : N;
+fun base_A : A;
+fun base_N : N;
+fun base_V2 : V2;
+fun baseball_N : N;
+fun baseboard_N : N;
+fun basel_PN : PN;
+fun baseless_A : A;
+fun basement_N : N;
+fun bash_N : N;
+fun bash_V2 : V2;
+fun bashful_A : A;
+fun basic_A : A;
+fun basically_Adv : Adv;
+fun basil_N : N;
+fun basil_PN : PN;
+fun basildon_PN : PN;
+fun basilica_N : N;
+fun basilisk_N : N;
+fun basin_N : N;
+fun basingstoke_PN : PN;
+fun basis_N : N;
+fun bask_V : V;
+fun basket_N : N;
+fun basketball_N : N;
+fun basketry_N : N;
+fun bass_A : A;
+fun bass_N : N;
+fun bassinet_N : N;
+fun bassoon_N : N;
+fun bast_N : N;
+fun bastard_N : N;
+fun bastardize_V2 : V2;
+fun bastardy_N : N;
+fun baste_V2 : V2;
+fun bastinado_N : N;
+fun bastinado_V2 : V2;
+fun bastion_N : N;
+fun bat_N : N;
+fun bat_V : V;
+fun bat_V2 : V2;
+fun batch_N : N;
+fun bate_V2 : V2;
+fun bath_N : N;
+fun bath_PN : PN;
+fun bath_V : V;
+fun bath_V2 : V2;
+fun bath_chair_N : N;
+fun bathe_N : N;
+fun bathe_V : V;
+fun bathe_V2 : V2;
+fun bather_N : N;
+fun bathgate_PN : PN;
+fun bathing_N : N;
+fun bathing_cap_N : N;
+fun bathing_costume_N : N;
+fun bathing_machine_N : N;
+fun bathing_suit_N : N;
+fun bathos_N : N;
+fun bathrobe_N : N;
+fun bathroom_N : N;
+fun bathtub_N : N;
+fun bathysphere_N : N;
+fun batik_N : N;
+fun batiste_N : N;
+fun batley_PN : PN;
+fun batman_N : N;
+fun baton_N : N;
+fun bats_A : A;
+fun batsman_N : N;
+fun battalion_N : N;
+fun batten_N : N;
+fun batten_V : V;
+fun batten_V2 : V2;
+fun batter_N : N;
+fun batter_V : V;
+fun batter_V2 : V2;
+fun battery_N : N;
+fun batting_N : N;
+fun battle_N : N;
+fun battle_V : V;
+fun battle_axe_N : N;
+fun battle_cruiser_N : N;
+fun battledore_N : N;
+fun battledress_N : N;
+fun battlefield_N : N;
+fun battleground_N : N;
+fun battleship_N : N;
+fun battue_N : N;
+fun batty_A : A;
+fun bauble_N : N;
+fun baulk_N : N;
+fun baulk_V : V;
+fun baulk_V2 : V2;
+fun bauxite_N : N;
+fun bawbee_N : N;
+fun bawd_N : N;
+fun bawdily_Adv : Adv;
+fun bawdy_A : A;
+fun bawdy_N : N;
+fun bawl_V : V;
+fun bawl_V2 : V2;
+fun bay_A : A;
+fun bay_N : N;
+fun bay_V : V;
+fun bay_wreath_N : N;
+fun bayonet_N : N;
+fun bayonet_V2 : V2;
+fun bayou_N : N;
+fun bazaar_N : N;
+fun bazooka_N : N;
+fun bbc_PN : PN;
+fun beach_N : N;
+fun beach_V2 : V2;
+fun beachcomber_N : N;
+fun beachhead_N : N;
+fun beachwear_N : N;
+fun beacon_N : N;
+fun beacon_fire_N : N;
+fun beacon_light_N : N;
+fun beaconsfield_PN : PN;
+fun bead_N : N;
+fun beading_N : N;
+fun beadle_N : N;
+fun beady_A : A;
+fun beagle_N : N;
+fun beagling_N : N;
+fun beak_N : N;
+fun beaker_N : N;
+fun beam_N : N;
+fun beam_V : V;
+fun beam_V2 : V2;
+fun bean_N : N;
+fun beanfeast_N : N;
+fun beano_N : N;
+fun beanstalk_N : N;
+fun bear_N : N;
+fun bear_V : V;
+fun bear_V2 : V2;
+fun bearable_A : A;
+fun beard_N : N;
+fun beard_V2 : V2;
+fun bearded_A : A;
+fun beardless_A : A;
+fun bearer_N : N;
+fun bearing_N : N;
+fun bearish_A : A;
+fun bearsden_PN : PN;
+fun bearskin_N : N;
+fun beast_N : N;
+fun beastliness_N : N;
+fun beastly_A : A;
+fun beastly_Adv : Adv;
+fun beat_A : A;
+fun beat_N : N;
+fun beat_V : V;
+fun beat_V2 : V2;
+fun beaten_A : A;
+fun beater_N : N;
+fun beatific_A : A;
+fun beatification_N : N;
+fun beatify_V2 : V2;
+fun beating_N : N;
+fun beatitude_N : N;
+fun beatnik_N : N;
+fun beatrice_PN : PN;
+fun beau_N : N;
+fun beaujolais_N : N;
+fun beaumaris_PN : PN;
+fun beauteous_A : A;
+fun beautician_N : N;
+fun beautiful_A : A;
+fun beautify_V2 : V2;
+fun beauty_N : N;
+fun beauty_parlour_N : N;
+fun beauty_salon_N : N;
+fun beauty_sleep_N : N;
+fun beauty_spot_N : N;
+fun beaver_N : N;
+fun beaver_V : V;
+fun bebington_PN : PN;
+fun becalmed_A : A;
+fun beccles_PN : PN;
+fun beck_N : N;
+fun beckon_V : V;
+fun beckon_V2 : V2;
+fun become_V : V;
+fun become_V2 : V2;
+fun becoming_A : A;
+fun bed_N : N;
+fun bed_V2 : V2;
+fun bedaubed_A : A;
+fun bedbug_N : N;
+fun beddau_PN : PN;
+fun bedded_A : A;
+fun bedding_N : N;
+fun bedecked_A : A;
+fun bedevil_V2 : V2;
+fun bedevilment_N : N;
+fun bedewed_A : A;
+fun bedfellow_N : N;
+fun bedford_PN : PN;
+fun bedfordshire_PN : PN;
+fun bedimmed_A : A;
+fun bedlam_N : N;
+fun bedlington_PN : PN;
+fun bedouin_N : N;
+fun bedpan_N : N;
+fun bedpost_N : N;
+fun bedraggled_A : A;
+fun bedridden_A : A;
+fun bedrock_N : N;
+fun bedroll_N : N;
+fun bedroom_N : N;
+fun bedroomed_A : A;
+fun bedside_N : N;
+fun bedsit_N : N;
+fun bedsitter_N : N;
+fun bedsitting_room_N : N;
+fun bedsore_N : N;
+fun bedspread_N : N;
+fun bedstead_N : N;
+fun bedtime_N : N;
+fun beduin_N : N;
+fun bedwas_PN : PN;
+fun bee_N : N;
+fun beech_N : N;
+fun beef_N : N;
+fun beef_V : V;
+fun beefeater_N : N;
+fun beefsteak_N : N;
+fun beefy_A : A;
+fun beehive_N : N;
+fun beep_N : N;
+fun beer_N : N;
+fun beery_A : A;
+fun beeswax_N : N;
+fun beeswax_V2 : V2;
+fun beet_N : N;
+fun beetle_N : N;
+fun beetle_V : V;
+fun beetle_browed_A : A;
+fun beetroot_N : N;
+fun befall_V : V;
+fun befall_V2 : V2;
+fun befit_V2 : V2;
+fun befitting_A : A;
+fun befogged_A : A;
+fun before_Adv : Adv;
+fun beforehand_A : A;
+fun beforehand_Adv : Adv;
+fun befoul_V2 : V2;
+fun befriend_V2 : V2;
+fun beg_V : V;
+fun beg_V2 : V2;
+fun beget_V2 : V2;
+fun begetter_N : N;
+fun beggar_N : N;
+fun beggar_V2 : V2;
+fun beggarly_A : A;
+fun beggarman_N : N;
+fun beggarwoman_N : N;
+fun beggary_N : N;
+fun begin_V : V;
+fun begin_V2 : V2;
+fun beginner_N : N;
+fun beginning_N : N;
+fun begonia_N : N;
+fun begrimed_A : A;
+fun begrudge_V2 : V2;
+fun beguile_V2 : V2;
+fun begum_N : N;
+fun behalf_N : N;
+fun behave_V : V;
+fun behaved_A : A;
+fun behaviour_N : N;
+fun behaviourism_N : N;
+fun behaviourist_N : N;
+fun behead_V2 : V2;
+fun behest_N : N;
+fun behind_Adv : Adv;
+fun behind_N : N;
+fun behindhand_A : A;
+fun behold_V2 : V2;
+fun beholden_A : A;
+fun beholder_N : N;
+fun behove_V2 : V2;
+fun beige_N : N;
+fun being_N : N;
+fun beirut_PN : PN;
+fun beith_PN : PN;
+fun bejewelled_A : A;
+fun belabour_V2 : V2;
+fun belated_A : A;
+fun belay_N : N;
+fun belay_V2 : V2;
+fun belaying_pin_N : N;
+fun belch_N : N;
+fun belch_V : V;
+fun belch_V2 : V2;
+fun beldam_N : N;
+fun beldame_N : N;
+fun beleaguer_V2 : V2;
+fun belem_PN : PN;
+fun belfast_PN : PN;
+fun belfry_N : N;
+fun belgian_A : A;
+fun belgian_N : N;
+fun belgium_PN : PN;
+fun belgrade_PN : PN;
+fun belie_V2 : V2;
+fun belief_N : N;
+fun believable_A : A;
+fun believe_V : V;
+fun believe_V2 : V2;
+fun believer_N : N;
+fun believing_N : N;
+fun belike_Adv : Adv;
+fun belinda_PN : PN;
+fun belittle_V2 : V2;
+fun bell_N : N;
+fun bell_V2 : V2;
+fun bell_bottomed_A : A;
+fun bell_buoy_N : N;
+fun bell_flower_N : N;
+fun bell_founder_N : N;
+fun bell_foundry_N : N;
+fun bell_metal_N : N;
+fun bell_push_N : N;
+fun bell_ringer_N : N;
+fun bell_tent_N : N;
+fun bella_PN : PN;
+fun belladonna_N : N;
+fun bellboy_N : N;
+fun belle_N : N;
+fun belle_PN : PN;
+fun bellhop_N : N;
+fun bellicose_A : A;
+fun bellied_A : A;
+fun belligerency_N : N;
+fun belligerent_A : A;
+fun belligerent_N : N;
+fun bellow_V : V;
+fun bellow_V2 : V2;
+fun bellshill_PN : PN;
+fun bellwether_N : N;
+fun belly_N : N;
+fun belly_V : V;
+fun belly_V2 : V2;
+fun bellyache_N : N;
+fun bellyache_V : V;
+fun bellyflop_N : N;
+fun bellyful_N : N;
+fun bellyland_V : V;
+fun bellylaugh_N : N;
+fun bellylaugh_V : V;
+fun belo_horizonte_PN : PN;
+fun belong_V : V;
+fun beloved_A : A;
+fun beloved_N : N;
+fun below_Adv : Adv;
+fun belper_PN : PN;
+fun belt_N : N;
+fun belt_V2 : V2;
+fun belting_N : N;
+fun bemoan_V2 : V2;
+fun bemused_A : A;
+fun ben_N : N;
+fun ben_PN : PN;
+fun bench_N : N;
+fun bend_N : N;
+fun bend_V : V;
+fun bend_V2 : V2;
+fun beneath_Adv : Adv;
+fun benedick_N : N;
+fun benedictine_A : A;
+fun benedictine_N : N;
+fun benediction_N : N;
+fun benefaction_N : N;
+fun benefactor_N : N;
+fun benefactress_N : N;
+fun benefice_N : N;
+fun beneficed_A : A;
+fun beneficence_N : N;
+fun beneficent_A : A;
+fun beneficial_A : A;
+fun beneficiary_N : N;
+fun benefit_N : N;
+fun benefit_V : V;
+fun benefit_V2 : V2;
+fun benevolence_N : N;
+fun benevolent_A : A;
+fun bengali_A : A;
+fun bengali_N : N;
+fun benighted_A : A;
+fun benign_A : A;
+fun benignant_A : A;
+fun benignity_N : N;
+fun benin_PN : PN;
+fun beninese_A : A;
+fun beninese_N : N;
+fun benison_N : N;
+fun benjamin_PN : PN;
+fun benny_PN : PN;
+fun bent_A : A;
+fun bent_N : N;
+fun benumbed_A : A;
+fun benzedrine_N : N;
+fun benzene_N : N;
+fun benzine_N : N;
+fun benzol_N : N;
+fun beograd_PN : PN;
+fun bequeath_V2 : V2;
+fun bequest_N : N;
+fun berate_V2 : V2;
+fun bereave_V2 : V2;
+fun bereavement_N : N;
+fun beret_N : N;
+fun berg_N : N;
+fun bergamo_PN : PN;
+fun bergen_PN : PN;
+fun beri_beri_N : N;
+fun berkhamsted_PN : PN;
+fun berkshire_PN : PN;
+fun berlin_PN : PN;
+fun bermuda_PN : PN;
+fun bermudan_A : A;
+fun bermudan_N : N;
+fun bern_PN : PN;
+fun bernard_PN : PN;
+fun bernie_PN : PN;
+fun berry_N : N;
+fun berserk_A : A;
+fun bert_PN : PN;
+fun berth_N : N;
+fun berth_V : V;
+fun berth_V2 : V2;
+fun bertha_PN : PN;
+fun bertie_PN : PN;
+fun berwick_upon_tweed_PN : PN;
+fun beryl_N : N;
+fun beryl_PN : PN;
+fun beseech_V2 : V2;
+fun beseeching_A : A;
+fun beseem_V2 : V2;
+fun beset_V2 : V2;
+fun beshrew_V2 : V2;
+fun besides_Adv : Adv;
+fun besiege_V2 : V2;
+fun besieger_N : N;
+fun besmear_V2 : V2;
+fun besmirch_V2 : V2;
+fun besom_N : N;
+fun besotted_A : A;
+fun bespangled_A : A;
+fun bespattered_A : A;
+fun bespeak_V2 : V2;
+fun bespectacled_A : A;
+fun bess_PN : PN;
+fun bessie_PN : PN;
+fun best_Adv : Adv;
+fun best_V2 : V2;
+fun best_seller_N : N;
+fun bestial_A : A;
+fun bestiality_N : N;
+fun bestiary_N : N;
+fun bestir_V2 : V2;
+fun bestow_V2 : V2;
+fun bestowal_N : N;
+fun bestrew_V2 : V2;
+fun bestride_V2 : V2;
+fun bet_N : N;
+fun bet_V : V;
+fun bet_V2 : V2;
+fun beta_N : N;
+fun betake_V2 : V2;
+fun betel_N : N;
+fun betel_nut_N : N;
+fun bethel_N : N;
+fun bethink_V2 : V2;
+fun bethune_PN : PN;
+fun betide_V2 : V2;
+fun betimes_Adv : Adv;
+fun betoken_V2 : V2;
+fun betray_V2 : V2;
+fun betrayal_N : N;
+fun betrayer_N : N;
+fun betroth_V2 : V2;
+fun betrothal_N : N;
+fun betrothed_N : N;
+fun betsy_PN : PN;
+fun better_Adv : Adv;
+fun better_N : N;
+fun better_V2 : V2;
+fun betterment_N : N;
+fun bettor_N : N;
+fun betty_PN : PN;
+fun between_Adv : Adv;
+fun betwixt_Adv : Adv;
+fun bevel_N : N;
+fun bevel_V2 : V2;
+fun beverage_N : N;
+fun beverley_PN : PN;
+fun bevy_N : N;
+fun bewail_V2 : V2;
+fun beware_V : V;
+fun beware_V2 : V2;
+fun bewdley_PN : PN;
+fun bewilder_V2 : V2;
+fun bewildering_A : A;
+fun bewilderment_N : N;
+fun bewitch_V2 : V2;
+fun bewitching_A : A;
+fun bexhill_PN : PN;
+fun bexley_PN : PN;
+fun bey_N : N;
+fun beyond_Adv : Adv;
+fun bezique_N : N;
+fun bhang_N : N;
+fun bhutan_PN : PN;
+fun bhutani_A : A;
+fun bhutani_N : N;
+fun bias_N : N;
+fun bias_V2 : V2;
+fun bib_N : N;
+fun bib_V : V;
+fun bible_N : N;
+fun biblical_A : A;
+fun bibliographer_N : N;
+fun bibliography_N : N;
+fun bibliophile_N : N;
+fun bibulous_A : A;
+fun bicameral_A : A;
+fun bicarbonate_N : N;
+fun bicentenary_N : N;
+fun bicentennial_A : A;
+fun bicentennial_N : N;
+fun biceps_N : N;
+fun bicester_PN : PN;
+fun bicker_V : V;
+fun bicycle_N : N;
+fun bicycle_V : V;
+fun bid_N : N;
+fun bid_V : V;
+fun bid_V2 : V2;
+fun biddable_A : A;
+fun bidder_N : N;
+fun bidding_N : N;
+fun biddulph_PN : PN;
+fun bide_V2 : V2;
+fun bideford_PN : PN;
+fun bidet_N : N;
+fun bielefeld_PN : PN;
+fun biennial_A : A;
+fun biennial_N : N;
+fun bier_N : N;
+fun biff_N : N;
+fun biff_V2 : V2;
+fun bifocal_A : A;
+fun bifurcate_A : A;
+fun bifurcate_V : V;
+fun bifurcate_V2 : V2;
+fun bifurcated_A : A;
+fun bifurcation_N : N;
+fun big_A : A;
+fun big_boned_A : A;
+fun bigamist_N : N;
+fun bigamous_A : A;
+fun bigamy_N : N;
+fun biggleswade_PN : PN;
+fun bight_N : N;
+fun bigot_N : N;
+fun bigoted_A : A;
+fun bigotry_N : N;
+fun bigwig_N : N;
+fun bijou_A : A;
+fun bijou_N : N;
+fun bike_N : N;
+fun bike_V : V;
+fun bikini_N : N;
+fun bilabial_A : A;
+fun bilabial_N : N;
+fun bilateral_A : A;
+fun bilateralism_N : N;
+fun bilbao_PN : PN;
+fun bilberry_N : N;
+fun bile_N : N;
+fun bile_duct_N : N;
+fun bilge_N : N;
+fun bilge_water_N : N;
+fun bilharzia_N : N;
+fun bilingual_A : A;
+fun bilingual_N : N;
+fun bilious_A : A;
+fun biliousness_N : N;
+fun bilk_V2 : V2;
+fun bill_N : N;
+fun bill_PN : PN;
+fun bill_V : V;
+fun bill_V2 : V2;
+fun bill_poster_N : N;
+fun bill_sticker_N : N;
+fun billboard_N : N;
+fun billericay_PN : PN;
+fun billet_N : N;
+fun billet_V2 : V2;
+fun billet_doux_N : N;
+fun billfold_N : N;
+fun billhook_N : N;
+fun billiard_marker_N : N;
+fun billiard_player_N : N;
+fun billiard_room_N : N;
+fun billiard_table_N : N;
+fun billiards_N : N;
+fun billingsgate_N : N;
+fun billington_PN : PN;
+fun billion_A : A;
+fun billion_N : N;
+fun billionth_A : A;
+fun billionth_N : N;
+fun billow_N : N;
+fun billow_V : V;
+fun billowy_A : A;
+fun billy_N : N;
+fun billy_PN : PN;
+fun billy_goat_N : N;
+fun billy_ho_N : N;
+fun billy_o_N : N;
+fun biltong_N : N;
+fun bimetallic_A : A;
+fun bimetallism_N : N;
+fun bin_N : N;
+fun binary_A : A;
+fun bind_N : N;
+fun bind_V : V;
+fun bind_V2 : V2;
+fun binder_N : N;
+fun bindery_N : N;
+fun binding_A : A;
+fun bindweed_N : N;
+fun bine_N : N;
+fun binge_N : N;
+fun bingley_PN : PN;
+fun bingo_N : N;
+fun binnacle_N : N;
+fun binomial_A : A;
+fun biochemistry_N : N;
+fun biodegradable_A : A;
+fun biograph_N : N;
+fun biographer_N : N;
+fun biographic_A : A;
+fun biographical_A : A;
+fun biography_N : N;
+fun biological_A : A;
+fun biologist_N : N;
+fun biology_N : N;
+fun bioscope_N : N;
+fun bipartisan_A : A;
+fun biped_N : N;
+fun biplane_N : N;
+fun birch_N : N;
+fun birch_V2 : V2;
+fun birch_rod_N : N;
+fun bird's_eye_A : A;
+fun bird_N : N;
+fun bird_fancier_N : N;
+fun birdcage_N : N;
+fun birdlime_N : N;
+fun birdnesting_N : N;
+fun birdwatcher_N : N;
+fun biretta_N : N;
+fun birkenhead_PN : PN;
+fun biro_N : N;
+fun birstall_PN : PN;
+fun birth_N : N;
+fun birth_control_N : N;
+fun birthday_N : N;
+fun birthmark_N : N;
+fun birthplace_N : N;
+fun birthrate_N : N;
+fun birthright_N : N;
+fun birtley_PN : PN;
+fun biscuit_N : N;
+fun bisect_V2 : V2;
+fun bisection_N : N;
+fun bisexual_A : A;
+fun bisexual_N : N;
+fun bisexuality_N : N;
+fun bishop's_cleeve_PN : PN;
+fun bishop's_stortford_PN : PN;
+fun bishop_N : N;
+fun bishop_auckland_PN : PN;
+fun bishopbriggs_PN : PN;
+fun bishopric_N : N;
+fun bismuth_N : N;
+fun bison_N : N;
+fun bistro_N : N;
+fun bit_N : N;
+fun bitch_N : N;
+fun bitch_V : V;
+fun bitchy_A : A;
+fun bite_N : N;
+fun bite_V : V;
+fun bite_V2 : V2;
+fun biting_A : A;
+fun bitter_A : A;
+fun bitter_N : N;
+fun bitter_sweet_A : A;
+fun bittern_N : N;
+fun bitterness_N : N;
+fun bitumen_N : N;
+fun bituminous_A : A;
+fun bivalve_N : N;
+fun bivouac_N : N;
+fun bivouac_V : V;
+fun biz_N : N;
+fun bizarre_A : A;
+fun bizonal_A : A;
+fun blab_V : V;
+fun blab_V2 : V2;
+fun blabber_V : V;
+fun blabber_V2 : V2;
+fun blabbermouth_N : N;
+fun black_A : A;
+fun black_N : N;
+fun black_V2 : V2;
+fun black_beetle_N : N;
+fun black_lead_N : N;
+fun black_lead_V2 : V2;
+fun blackamoor_N : N;
+fun blackball_V2 : V2;
+fun blackberry_N : N;
+fun blackbird_N : N;
+fun blackboard_N : N;
+fun blackburn_PN : PN;
+fun blackcurrant_N : N;
+fun blacken_V : V;
+fun blacken_V2 : V2;
+fun blackguard_N : N;
+fun blackguard_V2 : V2;
+fun blackguardly_A : A;
+fun blackhall_PN : PN;
+fun blackhead_N : N;
+fun blacking_N : N;
+fun blackish_A : A;
+fun blackleg_N : N;
+fun blackleg_V : V;
+fun blackleg_V2 : V2;
+fun blacklist_N : N;
+fun blacklist_V2 : V2;
+fun blackmail_N : N;
+fun blackmail_V2 : V2;
+fun blackmailer_N : N;
+fun blackness_N : N;
+fun blackout_N : N;
+fun blackpool_PN : PN;
+fun blackshirt_N : N;
+fun blacksmith_N : N;
+fun blackthorn_N : N;
+fun blackwater_A : A;
+fun blackwood_PN : PN;
+fun bladder_N : N;
+fun blade_N : N;
+fun blaeberry_N : N;
+fun blaenau_ffestiniog_PN : PN;
+fun blaenavon_PN : PN;
+fun blaengwrach_PN : PN;
+fun blah_N : N;
+fun blaina_PN : PN;
+fun blairgowrie_PN : PN;
+fun blame_N : N;
+fun blame_V2 : V2;
+fun blameless_A : A;
+fun blameworthy_A : A;
+fun blanch_V : V;
+fun blanch_V2 : V2;
+fun blancmange_N : N;
+fun bland_A : A;
+fun blandishment_N : N;
+fun blandness_N : N;
+fun blank_A : A;
+fun blank_N : N;
+fun blanket_N : N;
+fun blanket_V2 : V2;
+fun blantyre_PN : PN;
+fun blare_N : N;
+fun blare_V : V;
+fun blare_V2 : V2;
+fun blarney_N : N;
+fun blaspheme_V : V;
+fun blaspheme_V2 : V2;
+fun blasphemer_N : N;
+fun blasphemous_A : A;
+fun blasphemy_N : N;
+fun blast_N : N;
+fun blast_V2 : V2;
+fun blast_furnace_N : N;
+fun blast_off_N : N;
+fun blasted_A : A;
+fun blase_A : A;
+fun blatant_A : A;
+fun blather_N : N;
+fun blather_V : V;
+fun blaze_N : N;
+fun blaze_V : V;
+fun blaze_V2 : V2;
+fun blazer_N : N;
+fun blazing_A : A;
+fun blazon_N : N;
+fun blazon_V2 : V2;
+fun blazonry_N : N;
+fun bldg_PN : PN;
+fun bldgs_PN : PN;
+fun bleach_N : N;
+fun bleach_V : V;
+fun bleach_V2 : V2;
+fun bleaching_powder_N : N;
+fun bleak_A : A;
+fun bleary_A : A;
+fun bleary_eyed_A : A;
+fun bleat_N : N;
+fun bleat_V : V;
+fun bleat_V2 : V2;
+fun bleed_V : V;
+fun bleed_V2 : V2;
+fun bleep_N : N;
+fun bleep_V : V;
+fun blemish_N : N;
+fun blemish_V2 : V2;
+fun blench_V : V;
+fun blend_N : N;
+fun blend_V : V;
+fun blend_V2 : V2;
+fun bless_V2 : V2;
+fun blessed_A : A;
+fun blessedness_N : N;
+fun blessing_N : N;
+fun bletchley_PN : PN;
+fun blether_N : N;
+fun blether_V : V;
+fun blidworth_PN : PN;
+fun blight_N : N;
+fun blight_V2 : V2;
+fun blighter_N : N;
+fun blighty_N : N;
+fun blimp_N : N;
+fun blind_A : A;
+fun blind_N : N;
+fun blind_V2 : V2;
+fun blindfold_A : A;
+fun blindfold_N : N;
+fun blindfold_V2 : V2;
+fun blindman's_buff_N : N;
+fun blindness_N : N;
+fun blink_N : N;
+fun blink_V : V;
+fun blink_V2 : V2;
+fun blinking_A : A;
+fun blip_N : N;
+fun bliss_N : N;
+fun blissful_A : A;
+fun blister_N : N;
+fun blister_V : V;
+fun blister_V2 : V2;
+fun blithe_A : A;
+fun blithering_A : A;
+fun blithesome_A : A;
+fun blitz_N : N;
+fun blitz_V2 : V2;
+fun blizzard_N : N;
+fun bloated_A : A;
+fun bloater_N : N;
+fun blob_N : N;
+fun bloc_N : N;
+fun block_N : N;
+fun block_V2 : V2;
+fun blockade_N : N;
+fun blockade_V2 : V2;
+fun blockade_runner_N : N;
+fun blockage_N : N;
+fun blockbuster_N : N;
+fun blockhead_N : N;
+fun blockhouse_N : N;
+fun bloke_N : N;
+fun blond_A : A;
+fun blond_N : N;
+fun blonde_A : A;
+fun blonde_N : N;
+fun blood_N : N;
+fun blood_V2 : V2;
+fun blood_bath_N : N;
+fun blood_donor_N : N;
+fun blood_group_N : N;
+fun blood_heat_N : N;
+fun blood_letting_N : N;
+fun blood_money_N : N;
+fun blood_poisoning_N : N;
+fun blood_pressure_N : N;
+fun blood_relation_N : N;
+fun blood_transfusion_N : N;
+fun blood_type_N : N;
+fun blood_vessel_N : N;
+fun bloodcurdling_A : A;
+fun bloodhound_N : N;
+fun bloodless_A : A;
+fun bloodlust_N : N;
+fun bloodshed_N : N;
+fun bloodshot_A : A;
+fun bloodstain_N : N;
+fun bloodstained_A : A;
+fun bloodstock_N : N;
+fun bloodsucker_N : N;
+fun bloodthirstiness_N : N;
+fun bloodthirsty_A : A;
+fun bloody_A : A;
+fun bloody_Adv : Adv;
+fun bloody_minded_A : A;
+fun bloom_N : N;
+fun bloom_V : V;
+fun bloomer_N : N;
+fun blooming_A : A;
+fun blossom_N : N;
+fun blossom_V : V;
+fun blot_N : N;
+fun blot_V2 : V2;
+fun blotch_N : N;
+fun blotter_N : N;
+fun blotting_paper_N : N;
+fun blotto_A : A;
+fun blouse_N : N;
+fun blow_N : N;
+fun blow_V : V;
+fun blow_V2 : V2;
+fun blow_dry_V2 : V2;
+fun blow_up_N : N;
+fun blowback_N : N;
+fun blower_N : N;
+fun blowfly_N : N;
+fun blowhole_N : N;
+fun blowing_up_N : N;
+fun blowlamp_N : N;
+fun blowout_N : N;
+fun blowpipe_N : N;
+fun blowtorch_N : N;
+fun blowzy_A : A;
+fun blubber_N : N;
+fun blubber_V : V;
+fun blubber_V2 : V2;
+fun bludgeon_N : N;
+fun bludgeon_V2 : V2;
+fun blue_A : A;
+fun blue_N : N;
+fun blue_V2 : V2;
+fun blue_collar_A : A;
+fun blue_jacket_N : N;
+fun blue_pencil_V2 : V2;
+fun bluebell_N : N;
+fun bluebottle_N : N;
+fun blueprint_N : N;
+fun bluestocking_N : N;
+fun bluff_A : A;
+fun bluff_N : N;
+fun bluff_V : V;
+fun bluff_V2 : V2;
+fun bluffer_N : N;
+fun bluffness_N : N;
+fun bluish_A : A;
+fun blunder_N : N;
+fun blunder_V : V;
+fun blunder_V2 : V2;
+fun blunderbuss_N : N;
+fun blunderer_N : N;
+fun blunt_A : A;
+fun blunt_V2 : V2;
+fun bluntness_N : N;
+fun blur_N : N;
+fun blur_V : V;
+fun blur_V2 : V2;
+fun blurb_N : N;
+fun blurt_V2 : V2;
+fun blush_N : N;
+fun blush_V : V;
+fun blushing_A : A;
+fun bluster_N : N;
+fun bluster_V : V;
+fun bluster_V2 : V2;
+fun blustery_A : A;
+fun blvd_N : N;
+fun blyth_PN : PN;
+fun bma_N : N;
+fun bmus_N : N;
+fun bo'ness_PN : PN;
+fun bo'sn_N : N;
+fun bo'sun_N : N;
+fun boa_N : N;
+fun boa_constrictor_N : N;
+fun boar_N : N;
+fun board_N : N;
+fun board_V : V;
+fun board_V2 : V2;
+fun boarder_N : N;
+fun boarding_N : N;
+fun boarding_card_N : N;
+fun boarding_house_N : N;
+fun boarding_school_N : N;
+fun boardroom_N : N;
+fun boardwalk_N : N;
+fun boast_N : N;
+fun boast_V : V;
+fun boast_V2 : V2;
+fun boaster_N : N;
+fun boastful_A : A;
+fun boat_N : N;
+fun boat_V : V;
+fun boat_hook_N : N;
+fun boat_house_N : N;
+fun boat_race_N : N;
+fun boat_train_N : N;
+fun boater_N : N;
+fun boatman_N : N;
+fun boatswain_N : N;
+fun bob_N : N;
+fun bob_PN : PN;
+fun bob_V : V;
+fun bob_V2 : V2;
+fun bobbin_N : N;
+fun bobby_N : N;
+fun bobby_PN : PN;
+fun bobby_soxer_N : N;
+fun bobolink_N : N;
+fun bobsled_N : N;
+fun bobsleigh_N : N;
+fun bobtail_N : N;
+fun boche_A : A;
+fun bochum_PN : PN;
+fun bode_V : V;
+fun bode_V2 : V2;
+fun bodice_N : N;
+fun bodied_A : A;
+fun bodily_A : A;
+fun bodily_Adv : Adv;
+fun boding_N : N;
+fun bodkin_N : N;
+fun bodmin_PN : PN;
+fun body_N : N;
+fun body_servant_N : N;
+fun body_snatcher_N : N;
+fun bodyguard_N : N;
+fun bodywork_N : N;
+fun boer_A : A;
+fun boer_N : N;
+fun boffin_N : N;
+fun bog_N : N;
+fun bog_V : V;
+fun bog_V2 : V2;
+fun bogey_N : N;
+fun bogeyman_N : N;
+fun boggle_V : V;
+fun boggy_A : A;
+fun bogie_N : N;
+fun bognor_PN : PN;
+fun bognor_regis_PN : PN;
+fun bogota_PN : PN;
+fun bogus_A : A;
+fun bogy_N : N;
+fun bohemian_A : A;
+fun bohemian_N : N;
+fun boil_N : N;
+fun boil_V : V;
+fun boil_V2 : V2;
+fun boiler_N : N;
+fun boilersuit_N : N;
+fun boiling_point_N : N;
+fun boisterous_A : A;
+fun boisterousness_N : N;
+fun bold_A : A;
+fun boldness_N : N;
+fun boldon_PN : PN;
+fun bole_N : N;
+fun bolero_N : N;
+fun bolivia_PN : PN;
+fun bolivian_A : A;
+fun bolivian_N : N;
+fun boll_N : N;
+fun bollard_N : N;
+fun bollington_PN : PN;
+fun bollock_N : N;
+fun bologna_PN : PN;
+fun boloney_N : N;
+fun bolshevik_N : N;
+fun bolshy_A : A;
+fun bolsover_PN : PN;
+fun bolster_N : N;
+fun bolster_V2 : V2;
+fun bolt_Adv : Adv;
+fun bolt_N : N;
+fun bolt_V : V;
+fun bolt_V2 : V2;
+fun bolt_hole_N : N;
+fun bolton_PN : PN;
+fun bolton_le_sands_PN : PN;
+fun bolzano_PN : PN;
+fun bomb_N : N;
+fun bomb_V : V;
+fun bomb_V2 : V2;
+fun bomb_proof_A : A;
+fun bomb_sight_N : N;
+fun bomb_site_N : N;
+fun bombard_V2 : V2;
+fun bombardier_N : N;
+fun bombardment_N : N;
+fun bombast_N : N;
+fun bombastic_A : A;
+fun bombastically_Adv : Adv;
+fun bombay_PN : PN;
+fun bomber_N : N;
+fun bombshell_N : N;
+fun bon_mot_N : N;
+fun bona_fide_A : A;
+fun bona_fide_Adv : Adv;
+fun bonanza_N : N;
+fun bonbon_N : N;
+fun bond_N : N;
+fun bond_V2 : V2;
+fun bond_holder_N : N;
+fun bondage_N : N;
+fun bone_N : N;
+fun bone_V2 : V2;
+fun bone_dry_A : A;
+fun bone_head_N : N;
+fun bone_idle_A : A;
+fun bone_lazy_A : A;
+fun bone_setter_N : N;
+fun boneless_A : A;
+fun bonemeal_N : N;
+fun boner_N : N;
+fun boneshaker_N : N;
+fun bonfire_N : N;
+fun bongo_N : N;
+fun bonhomie_N : N;
+fun bonito_N : N;
+fun bonkers_A : A;
+fun bonn_PN : PN;
+fun bonnet_N : N;
+fun bonnily_Adv : Adv;
+fun bonny_A : A;
+fun bonnybridge_PN : PN;
+fun bonnyrigg_PN : PN;
+fun bonus_N : N;
+fun bony_A : A;
+fun boo_N : N;
+fun boo_V : V;
+fun boo_V2 : V2;
+fun boob_N : N;
+fun boob_V : V;
+fun booby_N : N;
+fun booby_trap_N : N;
+fun boogie_N : N;
+fun boogie_woogie_N : N;
+fun book_N : N;
+fun book_V2 : V2;
+fun book_end_N : N;
+fun book_keeper_N : N;
+fun bookable_A : A;
+fun bookcase_N : N;
+fun bookclub_N : N;
+fun bookie_N : N;
+fun booking_N : N;
+fun bookish_A : A;
+fun bookishness_N : N;
+fun bookkeeper_N : N;
+fun bookkeeping_N : N;
+fun booklet_N : N;
+fun bookmaker_N : N;
+fun bookmark_N : N;
+fun bookmarker_N : N;
+fun bookmobile_N : N;
+fun bookseller_N : N;
+fun bookshop_N : N;
+fun bookstall_N : N;
+fun bookworm_N : N;
+fun boom_N : N;
+fun boom_V : V;
+fun boom_V2 : V2;
+fun boomerang_N : N;
+fun boon_A : A;
+fun boon_N : N;
+fun boor_N : N;
+fun boorish_A : A;
+fun boorishness_N : N;
+fun boost_N : N;
+fun boost_V2 : V2;
+fun booster_N : N;
+fun boot_N : N;
+fun boot_V2 : V2;
+fun booted_A : A;
+fun bootee_N : N;
+fun booth_N : N;
+fun bootlace_N : N;
+fun bootle_PN : PN;
+fun bootleg_V2 : V2;
+fun bootlegger_N : N;
+fun bootless_A : A;
+fun booty_N : N;
+fun booze_N : N;
+fun booze_V : V;
+fun booze_up_N : N;
+fun boozer_N : N;
+fun boozy_A : A;
+fun bopeep_N : N;
+fun boracic_A : A;
+fun borage_N : N;
+fun borax_N : N;
+fun bordeaux_N : N;
+fun bordeaux_PN : PN;
+fun border_N : N;
+fun border_V : V;
+fun border_V2 : V2;
+fun borderer_N : N;
+fun borderland_N : N;
+fun borderline_N : N;
+fun borders_PN : PN;
+fun bordon_PN : PN;
+fun bore_N : N;
+fun bore_V : V;
+fun bore_V2 : V2;
+fun bore_hole_N : N;
+fun boredom_N : N;
+fun borer_N : N;
+fun boric_A : A;
+fun boring_A : A;
+fun boris_PN : PN;
+fun boron_N : N;
+fun borough_N : N;
+fun borrow_V2 : V2;
+fun borrower_N : N;
+fun borsch_N : N;
+fun borstal_N : N;
+fun bortsch_N : N;
+fun borzoi_N : N;
+fun bosh_N : N;
+fun bosky_A : A;
+fun bosom_N : N;
+fun boss_N : N;
+fun boss_V2 : V2;
+fun boss_eyed_A : A;
+fun bossy_A : A;
+fun boston_PN : PN;
+fun botanical_A : A;
+fun botanist_N : N;
+fun botanize_V : V;
+fun botany_N : N;
+fun botch_N : N;
+fun botch_V2 : V2;
+fun botcher_N : N;
+fun both_A : A;
+fun both_Adv : Adv;
+fun bother_N : N;
+fun bother_V : V;
+fun bother_V2 : V2;
+fun bothersome_A : A;
+fun botswana_PN : PN;
+fun bottle_N : N;
+fun bottle_V2 : V2;
+fun bottle_fed_A : A;
+fun bottle_green_A : A;
+fun bottleneck_N : N;
+fun bottom_N : N;
+fun bottom_V : V;
+fun bottomless_A : A;
+fun bottrop_PN : PN;
+fun botulism_N : N;
+fun boudoir_N : N;
+fun bougainvillea_N : N;
+fun bough_N : N;
+fun bouillon_N : N;
+fun boulder_N : N;
+fun boulevard_N : N;
+fun bounce_N : N;
+fun bounce_V : V;
+fun bounce_V2 : V2;
+fun bouncing_A : A;
+fun bouncy_A : A;
+fun bound_A : A;
+fun bound_N : N;
+fun bound_V : V;
+fun bound_V2 : V2;
+fun boundary_N : N;
+fun bounden_A : A;
+fun bounder_N : N;
+fun boundless_A : A;
+fun bounteous_A : A;
+fun bountiful_A : A;
+fun bounty_N : N;
+fun bouquet_N : N;
+fun bourbon_N : N;
+fun bourgeois_A : A;
+fun bourgeois_N : N;
+fun bourgeoisie_N : N;
+fun bourn_N : N;
+fun bourne_N : N;
+fun bourne_PN : PN;
+fun bournemouth_PN : PN;
+fun bourse_N : N;
+fun bout_N : N;
+fun boutique_N : N;
+fun bovine_A : A;
+fun bovril_N : N;
+fun bow_N : N;
+fun bow_V : V;
+fun bow_V2 : V2;
+fun bow_wow_N : N;
+fun bowburn_PN : PN;
+fun bowdlerize_V2 : V2;
+fun bowel_N : N;
+fun bower_N : N;
+fun bowie_knife_N : N;
+fun bowing_N : N;
+fun bowl_N : N;
+fun bowl_V : V;
+fun bowl_V2 : V2;
+fun bowler_N : N;
+fun bowline_N : N;
+fun bowling_green_N : N;
+fun bowls_N : N;
+fun bowman_N : N;
+fun bowsprit_N : N;
+fun box_N : N;
+fun box_V : V;
+fun box_V2 : V2;
+fun box_kite_N : N;
+fun box_number_N : N;
+fun box_office_N : N;
+fun boxer_N : N;
+fun boxful_N : N;
+fun boxing_N : N;
+fun boxing_day_N : N;
+fun boxing_day_PN : PN;
+fun boxing_glove_N : N;
+fun boxing_match_N : N;
+fun boxwood_N : N;
+fun boy_N : N;
+fun boycott_N : N;
+fun boycott_V2 : V2;
+fun boyfriend_N : N;
+fun boyhood_N : N;
+fun boyish_A : A;
+fun bra_N : N;
+fun brace_N : N;
+fun brace_V : V;
+fun brace_V2 : V2;
+fun bracelet_N : N;
+fun bracken_N : N;
+fun bracket_N : N;
+fun bracket_V2 : V2;
+fun brackish_A : A;
+fun bracknell_PN : PN;
+fun bract_N : N;
+fun brad_N : N;
+fun bradawl_N : N;
+fun bradford_PN : PN;
+fun bradford_on_avon_PN : PN;
+fun brae_N : N;
+fun brag_V : V;
+fun braggart_N : N;
+fun bragging_N : N;
+fun brahmin_N : N;
+fun braid_N : N;
+fun braid_V2 : V2;
+fun braille_N : N;
+fun brain_N : N;
+fun brain_V2 : V2;
+fun brain_fag_N : N;
+fun brain_teaser_N : N;
+fun brainchild_N : N;
+fun brainless_A : A;
+fun brainstorm_N : N;
+fun braintree_PN : PN;
+fun brainwash_V2 : V2;
+fun brainwashed_A : A;
+fun brainwashing_N : N;
+fun brainwave_N : N;
+fun brainy_A : A;
+fun braise_V2 : V2;
+fun brake_N : N;
+fun brake_V : V;
+fun brake_V2 : V2;
+fun brakeman_N : N;
+fun bramble_N : N;
+fun bran_N : N;
+fun bran_new_A : A;
+fun branch_N : N;
+fun branch_V : V;
+fun branchy_A : A;
+fun brand_N : N;
+fun brand_V2 : V2;
+fun brand_new_A : A;
+fun branderburgh_PN : PN;
+fun branding_iron_N : N;
+fun brandish_V2 : V2;
+fun brandy_N : N;
+fun brandy_ball_N : N;
+fun brandy_snap_N : N;
+fun brash_A : A;
+fun brasilia_PN : PN;
+fun brass_N : N;
+fun brassard_N : N;
+fun brasserie_N : N;
+fun brassiere_1_N : N;
+fun brassiere_2_N : N;
+fun brassy_A : A;
+fun brat_N : N;
+fun bratislava_PN : PN;
+fun braunschweig_PN : PN;
+fun braunton_PN : PN;
+fun bravado_N : N;
+fun brave_A : A;
+fun brave_N : N;
+fun brave_V2 : V2;
+fun bravery_N : N;
+fun bravo_N : N;
+fun brawl_N : N;
+fun brawl_V : V;
+fun brawler_N : N;
+fun brawn_N : N;
+fun brawny_A : A;
+fun bray_N : N;
+fun bray_V2 : V2;
+fun braze_V2 : V2;
+fun brazen_A : A;
+fun brazen_V2 : V2;
+fun brazen_faced_A : A;
+fun brazier_N : N;
+fun brazil_PN : PN;
+fun brazilian_A : A;
+fun brazilian_N : N;
+fun breach_N : N;
+fun breach_V2 : V2;
+fun bread_N : N;
+fun breadcrumb_N : N;
+fun breadfruit_N : N;
+fun breadline_N : N;
+fun breadth_N : N;
+fun breadthways_Adv : Adv;
+fun breadthwise_Adv : Adv;
+fun breadwinner_N : N;
+fun break_N : N;
+fun break_V : V;
+fun break_V2 : V2;
+fun break_in_N : N;
+fun break_up_N : N;
+fun breakable_A : A;
+fun breakage_N : N;
+fun breakaway_N : N;
+fun breakaways_N : N;
+fun breakdown_N : N;
+fun breaker_N : N;
+fun breakfast_N : N;
+fun breakfast_V : V;
+fun breakneck_A : A;
+fun breakthrough_N : N;
+fun breakwater_N : N;
+fun bream_N : N;
+fun breast_N : N;
+fun breast_V2 : V2;
+fun breast_deep_Adv : Adv;
+fun breast_fed_A : A;
+fun breast_high_Adv : Adv;
+fun breast_plate_N : N;
+fun breastfeed_V : V;
+fun breastfeed_V2 : V2;
+fun breaston_PN : PN;
+fun breaststroke_N : N;
+fun breastwork_N : N;
+fun breath_N : N;
+fun breathalyser_N : N;
+fun breathe_V : V;
+fun breathe_V2 : V2;
+fun breather_N : N;
+fun breathing_N : N;
+fun breathing_space_N : N;
+fun breathless_A : A;
+fun breathtaking_A : A;
+fun brecknock_PN : PN;
+fun breda_PN : PN;
+fun breech_N : N;
+fun breech_block_N : N;
+fun breeches_buoy_N : N;
+fun breed_N : N;
+fun breed_V : V;
+fun breed_V2 : V2;
+fun breeder_N : N;
+fun breeding_N : N;
+fun breedsall_PN : PN;
+fun breeze_N : N;
+fun breeze_V : V;
+fun breezily_Adv : Adv;
+fun breeziness_N : N;
+fun breezy_A : A;
+fun bremen_PN : PN;
+fun bremerhaven_PN : PN;
+fun bren_N : N;
+fun bren_gun_N : N;
+fun brenda_PN : PN;
+fun brent_PN : PN;
+fun brentwood_PN : PN;
+fun brescia_PN : PN;
+fun brest_PN : PN;
+fun breve_N : N;
+fun brevet_N : N;
+fun breviary_N : N;
+fun brevity_N : N;
+fun brew_N : N;
+fun brew_V : V;
+fun brew_V2 : V2;
+fun brewer_N : N;
+fun brewery_N : N;
+fun brian_PN : PN;
+fun briar_N : N;
+fun bribable_A : A;
+fun bribe_N : N;
+fun bribe_V2 : V2;
+fun bribery_N : N;
+fun bric_a_brac_N : N;
+fun brick_N : N;
+fun brick_V2 : V2;
+fun brick_field_N : N;
+fun brickbat_N : N;
+fun bricket_wood_PN : PN;
+fun brickkiln_N : N;
+fun bricklayer_N : N;
+fun brickwork_N : N;
+fun bridal_A : A;
+fun bridal_N : N;
+fun bride_N : N;
+fun bridecake_N : N;
+fun bridegroom_N : N;
+fun bridesmaid_N : N;
+fun bridge_N : N;
+fun bridge_V2 : V2;
+fun bridgehead_N : N;
+fun bridgend_PN : PN;
+fun bridget_PN : PN;
+fun bridgnorth_PN : PN;
+fun bridgwater_PN : PN;
+fun bridle_N : N;
+fun bridle_V : V;
+fun bridle_V2 : V2;
+fun bridle_path_N : N;
+fun bridle_road_N : N;
+fun bridlington_PN : PN;
+fun bridport_PN : PN;
+fun brief_A : A;
+fun brief_N : N;
+fun brief_V2 : V2;
+fun briefcase_N : N;
+fun briefing_N : N;
+fun brier_N : N;
+fun brig_N : N;
+fun brig_PN : PN;
+fun brigade_N : N;
+fun brigadier_N : N;
+fun brigand_N : N;
+fun brigantine_N : N;
+fun brighouse_PN : PN;
+fun bright_A : A;
+fun bright_Adv : Adv;
+fun brighten_V : V;
+fun brighten_V2 : V2;
+fun brightlingsea_PN : PN;
+fun brightness_N : N;
+fun brighton_PN : PN;
+fun brill_N : N;
+fun brilliance_N : N;
+fun brilliancy_N : N;
+fun brilliant_A : A;
+fun brilliantine_N : N;
+fun brim_N : N;
+fun brim_V : V;
+fun brimful_A : A;
+fun brimfull_A : A;
+fun brimstone_N : N;
+fun brindled_A : A;
+fun brine_N : N;
+fun bring_V2 : V2;
+fun brink_N : N;
+fun brinkmanship_N : N;
+fun briny_A : A;
+fun brioche_N : N;
+fun briquet_N : N;
+fun briquette_N : N;
+fun brisbane_PN : PN;
+fun brisk_A : A;
+fun brisket_N : N;
+fun bristle_N : N;
+fun bristle_V : V;
+fun bristly_A : A;
+fun bristol_PN : PN;
+fun brit_N : N;
+fun britain_PN : PN;
+fun britannic_A : A;
+fun british_A : A;
+fun britisher_N : N;
+fun briton_A : A;
+fun briton_N : N;
+fun brittle_A : A;
+fun brixham_PN : PN;
+fun brno_PN : PN;
+fun broach_V : V;
+fun broach_V2 : V2;
+fun broad_A : A;
+fun broad_N : N;
+fun broad_minded_A : A;
+fun broad_mindedness_N : N;
+fun broadcast_Adv : Adv;
+fun broadcast_N : N;
+fun broadcast_V : V;
+fun broadcast_V2 : V2;
+fun broadcasting_A : A;
+fun broadcasting_N : N;
+fun broadcloth_N : N;
+fun broaden_V : V;
+fun broaden_V2 : V2;
+fun broadness_N : N;
+fun broadsheet_N : N;
+fun broadside_N : N;
+fun broadways_Adv : Adv;
+fun broadwise_Adv : Adv;
+fun brocade_N : N;
+fun brocade_V2 : V2;
+fun broccoli_N : N;
+fun brochure_N : N;
+fun brogue_N : N;
+fun broil_V : V;
+fun broil_V2 : V2;
+fun broiler_N : N;
+fun broke_A : A;
+fun broken_hearted_A : A;
+fun broker_N : N;
+fun brokerage_N : N;
+fun brolly_N : N;
+fun bromide_N : N;
+fun bromine_N : N;
+fun bromley_PN : PN;
+fun bromsgrove_PN : PN;
+fun bronchial_A : A;
+fun bronchitic_A : A;
+fun bronchitis_N : N;
+fun bronchus_N : N;
+fun bronco_N : N;
+fun bronze_N : N;
+fun bronze_V : V;
+fun bronze_V2 : V2;
+fun brooch_N : N;
+fun brood_N : N;
+fun brood_V : V;
+fun brood_hen_N : N;
+fun brood_mare_N : N;
+fun broody_A : A;
+fun brook_N : N;
+fun brook_V2 : V2;
+fun broom_N : N;
+fun broomstick_N : N;
+fun bros_PN : PN;
+fun broth_N : N;
+fun brothel_N : N;
+fun brother_N : N;
+fun brother_in_law_N : N;
+fun brotherhood_N : N;
+fun brotherly_A : A;
+fun brougham_N : N;
+fun broughton_PN : PN;
+fun brouhaha_N : N;
+fun brow_N : N;
+fun browbeat_V2 : V2;
+fun brown_A : A;
+fun brown_V : V;
+fun brown_V2 : V2;
+fun brownie_N : N;
+fun brownish_A : A;
+fun brownstone_N : N;
+fun browse_N : N;
+fun browse_V : V;
+fun broxburn_PN : PN;
+fun bruce_PN : PN;
+fun bruges_PN : PN;
+fun bruin_N : N;
+fun bruise_N : N;
+fun bruise_V : V;
+fun bruise_V2 : V2;
+fun bruiser_N : N;
+fun bruit_V2 : V2;
+fun brunch_N : N;
+fun brunei_PN : PN;
+fun bruneian_A : A;
+fun bruneian_N : N;
+fun brunette_N : N;
+fun brunswick_PN : PN;
+fun brunt_N : N;
+fun brush_N : N;
+fun brush_V : V;
+fun brush_V2 : V2;
+fun brush_off_N : N;
+fun brush_up_N : N;
+fun brushwood_N : N;
+fun brushwork_N : N;
+fun brusque_A : A;
+fun brusqueness_N : N;
+fun brussels_PN : PN;
+fun brutal_A : A;
+fun brutality_N : N;
+fun brutalize_V2 : V2;
+fun brute_N : N;
+fun brutish_A : A;
+fun bryan_PN : PN;
+fun bsc_N : N;
+fun bst_PN : PN;
+fun bt_PN : PN;
+fun bubble_N : N;
+fun bubble_V : V;
+fun bubbly_A : A;
+fun bubbly_N : N;
+fun bubonic_A : A;
+fun bucarest_PN : PN;
+fun buccaneer_N : N;
+fun buck_N : N;
+fun buck_V : V;
+fun buck_V2 : V2;
+fun bucket_N : N;
+fun bucket_V : V;
+fun bucketful_N : N;
+fun buckhaven_PN : PN;
+fun buckie_PN : PN;
+fun buckingham_PN : PN;
+fun buckinghamshire_PN : PN;
+fun buckle_N : N;
+fun buckle_V : V;
+fun buckle_V2 : V2;
+fun buckler_N : N;
+fun buckley_PN : PN;
+fun buckram_N : N;
+fun bucksburn_PN : PN;
+fun buckshot_N : N;
+fun buckskin_N : N;
+fun bucktooth_N : N;
+fun buckwheat_N : N;
+fun bucolic_A : A;
+fun bucolics_N : N;
+fun bud_N : N;
+fun bud_V : V;
+fun budapest_PN : PN;
+fun buddhism_N : N;
+fun buddhist_N : N;
+fun budding_A : A;
+fun buddy_N : N;
+fun budge_V : V;
+fun budge_V2 : V2;
+fun budgerigar_N : N;
+fun budget_N : N;
+fun budget_V : V;
+fun budgetary_A : A;
+fun budgie_N : N;
+fun buenos_aires_PN : PN;
+fun buff_N : N;
+fun buff_V2 : V2;
+fun buffalo_N : N;
+fun buffalo_PN : PN;
+fun buffer_N : N;
+fun buffet_N : N;
+fun buffet_V : V;
+fun buffet_V2 : V2;
+fun buffoon_N : N;
+fun buffoonery_N : N;
+fun bug_N : N;
+fun bug_V2 : V2;
+fun bug_hunter_N : N;
+fun bugaboo_N : N;
+fun bugbear_N : N;
+fun bugger_N : N;
+fun bugger_V : V;
+fun bugger_V2 : V2;
+fun bugger_all_N : N;
+fun buggery_N : N;
+fun buggy_N : N;
+fun bugle_N : N;
+fun bugler_N : N;
+fun buhl_N : N;
+fun build_N : N;
+fun build_V : V;
+fun build_V2 : V2;
+fun build_up_N : N;
+fun builder_N : N;
+fun building_N : N;
+fun building_society_N : N;
+fun built_in_A : A;
+fun built_up_A : A;
+fun bulb_N : N;
+fun bulbous_A : A;
+fun bulbul_N : N;
+fun bulgaria_PN : PN;
+fun bulgarian_A : A;
+fun bulgarian_N : N;
+fun bulge_N : N;
+fun bulge_V : V;
+fun bulge_V2 : V2;
+fun bulk_N : N;
+fun bulk_V : V;
+fun bulkhead_N : N;
+fun bulkington_PN : PN;
+fun bulky_A : A;
+fun bull's_eye_N : N;
+fun bull_N : N;
+fun bull_headed_A : A;
+fun bull_neck_N : N;
+fun bull_terrier_N : N;
+fun bulldog_N : N;
+fun bulldoze_V2 : V2;
+fun bulldozer_N : N;
+fun bullet_N : N;
+fun bullet_headed_A : A;
+fun bulletin_N : N;
+fun bulletproof_A : A;
+fun bullfight_N : N;
+fun bullfighter_N : N;
+fun bullfinch_N : N;
+fun bullfrog_N : N;
+fun bullion_N : N;
+fun bullock_N : N;
+fun bullring_N : N;
+fun bullshit_N : N;
+fun bullshit_V : V;
+fun bully_A : A;
+fun bully_N : N;
+fun bully_V : V;
+fun bully_V2 : V2;
+fun bulrush_N : N;
+fun bulwark_N : N;
+fun bum_A : A;
+fun bum_N : N;
+fun bum_V : V;
+fun bum_V2 : V2;
+fun bumblebee_N : N;
+fun bumboat_N : N;
+fun bump_Adv : Adv;
+fun bump_N : N;
+fun bump_V : V;
+fun bump_V2 : V2;
+fun bumper_N : N;
+fun bumpkin_N : N;
+fun bumptious_A : A;
+fun bumptiousness_N : N;
+fun bumpy_A : A;
+fun bun_N : N;
+fun buna_N : N;
+fun bunch_N : N;
+fun bunch_V : V;
+fun bunch_V2 : V2;
+fun bundle_N : N;
+fun bundle_V : V;
+fun bundle_V2 : V2;
+fun bung_N : N;
+fun bung_V2 : V2;
+fun bung_hole_N : N;
+fun bungaloid_A : A;
+fun bungalow_N : N;
+fun bungle_N : N;
+fun bungle_V : V;
+fun bungle_V2 : V2;
+fun bungler_N : N;
+fun bunion_N : N;
+fun bunk_N : N;
+fun bunk_V : V;
+fun bunker_N : N;
+fun bunker_V : V;
+fun bunker_V2 : V2;
+fun bunkum_N : N;
+fun bunny_N : N;
+fun bunsen_N : N;
+fun bunting_N : N;
+fun buoy_N : N;
+fun buoy_V : V;
+fun buoyancy_N : N;
+fun buoyant_A : A;
+fun bur_N : N;
+fun burberry_N : N;
+fun burble_V : V;
+fun burden_N : N;
+fun burden_V2 : V2;
+fun burdensome_A : A;
+fun burdock_N : N;
+fun bureau_N : N;
+fun bureaucracy_N : N;
+fun bureaucrat_N : N;
+fun bureaucratic_A : A;
+fun bureaucratically_Adv : Adv;
+fun burette_N : N;
+fun burg_N : N;
+fun burgeon_V : V;
+fun burgess_N : N;
+fun burgess_PN : PN;
+fun burgh_N : N;
+fun burgher_N : N;
+fun burglar_N : N;
+fun burglar_alarm_N : N;
+fun burglar_proof_A : A;
+fun burglarious_A : A;
+fun burglary_N : N;
+fun burgle_V : V;
+fun burgle_V2 : V2;
+fun burgomaster_N : N;
+fun burgos_PN : PN;
+fun burgundy_N : N;
+fun burial_N : N;
+fun burial_ground_N : N;
+fun burke_V2 : V2;
+fun burlap_N : N;
+fun burlesque_N : N;
+fun burlesque_V2 : V2;
+fun burley_PN : PN;
+fun burly_A : A;
+fun burma_PN : PN;
+fun burmese_A : A;
+fun burmese_N : N;
+fun burn_N : N;
+fun burn_V : V;
+fun burn_V2 : V2;
+fun burn_up_N : N;
+fun burner_N : N;
+fun burnham_on_sea_PN : PN;
+fun burning_A : A;
+fun burnish_V : V;
+fun burnish_V2 : V2;
+fun burnley_PN : PN;
+fun burnouse_N : N;
+fun burntisland_PN : PN;
+fun burntwood_PN : PN;
+fun burp_N : N;
+fun burp_V : V;
+fun burp_V2 : V2;
+fun burr_N : N;
+fun burr_drill_N : N;
+fun burrow_N : N;
+fun burrow_V : V;
+fun burrow_V2 : V2;
+fun burry_port_PN : PN;
+fun bursar_N : N;
+fun bursary_N : N;
+fun burscough_PN : PN;
+fun burst_N : N;
+fun burst_V : V;
+fun burst_V2 : V2;
+fun burthen_N : N;
+fun burthen_V2 : V2;
+fun burton_N : N;
+fun burton_upon_trent_PN : PN;
+fun burundi_PN : PN;
+fun burundian_A : A;
+fun burundian_N : N;
+fun bury_PN : PN;
+fun bury_V2 : V2;
+fun bury_st__edmunds_PN : PN;
+fun burying_ground_N : N;
+fun bus_N : N;
+fun bus_V : V;
+fun bus_V2 : V2;
+fun busby_N : N;
+fun bush_N : N;
+fun bushel_N : N;
+fun bushman_N : N;
+fun bushy_A : A;
+fun busily_Adv : Adv;
+fun business_N : N;
+fun businesslike_A : A;
+fun businessman_N : N;
+fun busker_N : N;
+fun busman_N : N;
+fun bust_N : N;
+fun bust_V : V;
+fun bust_V2 : V2;
+fun bust_up_N : N;
+fun bustard_N : N;
+fun buster_N : N;
+fun bustle_N : N;
+fun bustle_V : V;
+fun bustle_V2 : V2;
+fun busy_A : A;
+fun busy_V2 : V2;
+fun busybody_N : N;
+fun but_Adv : Adv;
+fun butane_N : N;
+fun butch_A : A;
+fun butcher_N : N;
+fun butcher_V2 : V2;
+fun butchery_N : N;
+fun butler_N : N;
+fun butt_N : N;
+fun butt_V : V;
+fun butt_V2 : V2;
+fun butter_N : N;
+fun butter_V2 : V2;
+fun butterbean_N : N;
+fun buttercup_N : N;
+fun butterfingers_N : N;
+fun butterfly_N : N;
+fun buttermilk_N : N;
+fun butterscotch_N : N;
+fun buttery_N : N;
+fun buttock_N : N;
+fun button_N : N;
+fun button_V : V;
+fun button_V2 : V2;
+fun buttoned_up_A : A;
+fun buttonhole_N : N;
+fun buttonhole_V2 : V2;
+fun buttonhook_N : N;
+fun buttonwood_N : N;
+fun buttress_N : N;
+fun buttress_V2 : V2;
+fun buxom_A : A;
+fun buxton_PN : PN;
+fun buy_N : N;
+fun buy_V : V;
+fun buy_V2 : V2;
+fun buyer_N : N;
+fun buzz_N : N;
+fun buzz_V : V;
+fun buzz_V2 : V2;
+fun buzzard_N : N;
+fun buzzer_N : N;
+fun bvm_N : N;
+fun by_Adv : Adv;
+fun by_election_N : N;
+fun bye_N : N;
+fun bye_bye_N : N;
+fun bye_law_N : N;
+fun bygone_A : A;
+fun bylaw_N : N;
+fun bypass_N : N;
+fun bypass_V2 : V2;
+fun bypath_N : N;
+fun byplay_N : N;
+fun byproduct_N : N;
+fun byroad_N : N;
+fun bystander_N : N;
+fun byway_N : N;
+fun byword_N : N;
+fun bete_noire_N : N;
+fun c_in_c_PN : PN;
+fun c_of_e_N : N;
+fun ca'canny_N : N;
+fun cab_N : N;
+fun cab_rank_N : N;
+fun cabal_N : N;
+fun cabaret_N : N;
+fun cabbage_N : N;
+fun cabby_N : N;
+fun caber_N : N;
+fun cabin_N : N;
+fun cabinet_N : N;
+fun cabinet_maker_N : N;
+fun cable's_length_N : N;
+fun cable_N : N;
+fun cable_V : V;
+fun cable_V2 : V2;
+fun cable_car_N : N;
+fun cable_length_N : N;
+fun cable_railway_N : N;
+fun cablegram_N : N;
+fun cabman_N : N;
+fun caboodle_N : N;
+fun caboose_N : N;
+fun cabstand_N : N;
+fun cacao_N : N;
+fun cacao_bean_N : N;
+fun cacao_tree_N : N;
+fun cache_N : N;
+fun cache_V2 : V2;
+fun cachet_N : N;
+fun cachou_N : N;
+fun cackle_N : N;
+fun cackle_V : V;
+fun cackler_N : N;
+fun cacophonous_A : A;
+fun cacophony_N : N;
+fun cactus_N : N;
+fun cad_N : N;
+fun cadaver_N : N;
+fun cadaverous_A : A;
+fun caddie_N : N;
+fun caddish_A : A;
+fun caddy_N : N;
+fun cadence_N : N;
+fun cadenza_N : N;
+fun cadet_N : N;
+fun cadge_V : V;
+fun cadge_V2 : V2;
+fun cadger_N : N;
+fun cadiz_PN : PN;
+fun cadmium_N : N;
+fun cadre_N : N;
+fun caen_PN : PN;
+fun caerleon_PN : PN;
+fun caernarfon_PN : PN;
+fun caerphilly_PN : PN;
+fun caesar_N : N;
+fun caesarian_A : A;
+fun caesura_N : N;
+fun cafe_au_lait_N : N;
+fun cafeteria_N : N;
+fun caff_N : N;
+fun caffeine_N : N;
+fun caftan_N : N;
+fun cafe_N : N;
+fun cage_N : N;
+fun cage_V2 : V2;
+fun cagey_A : A;
+fun cagily_Adv : Adv;
+fun cagliari_PN : PN;
+fun cagoule_N : N;
+fun caiman_N : N;
+fun cairn_N : N;
+fun cairo_PN : PN;
+fun caisson_N : N;
+fun caitiff_N : N;
+fun cajole_V2 : V2;
+fun cajolery_N : N;
+fun cake_N : N;
+fun cake_V : V;
+fun cake_V2 : V2;
+fun calabash_N : N;
+fun calamitous_A : A;
+fun calamity_N : N;
+fun calcify_V : V;
+fun calcify_V2 : V2;
+fun calcination_N : N;
+fun calcine_V : V;
+fun calcine_V2 : V2;
+fun calcium_N : N;
+fun calculable_A : A;
+fun calculate_V : V;
+fun calculate_V2 : V2;
+fun calculating_A : A;
+fun calculation_N : N;
+fun calculator_N : N;
+fun calculus_N : N;
+fun calcutta_PN : PN;
+fun caldicot_PN : PN;
+fun caldron_N : N;
+fun calendar_N : N;
+fun calender_N : N;
+fun calender_V2 : V2;
+fun calf_N : N;
+fun calf_love_N : N;
+fun cali_PN : PN;
+fun calibrate_V2 : V2;
+fun calibration_N : N;
+fun calibre_N : N;
+fun calico_N : N;
+fun calif_N : N;
+fun california_PN : PN;
+fun californian_A : A;
+fun californian_N : N;
+fun caliph_N : N;
+fun caliphate_N : N;
+fun calisthenics_N : N;
+fun calk_N : N;
+fun calk_V2 : V2;
+fun call_N : N;
+fun call_V : V;
+fun call_V2 : V2;
+fun call_box_N : N;
+fun call_girl_N : N;
+fun call_over_N : N;
+fun call_up_N : N;
+fun caller_N : N;
+fun calligraphy_N : N;
+fun calling_N : N;
+fun calliope_N : N;
+fun callisthenics_N : N;
+fun callosity_N : N;
+fun callous_A : A;
+fun callousness_N : N;
+fun callow_A : A;
+fun callowness_N : N;
+fun callus_N : N;
+fun calm_A : A;
+fun calm_N : N;
+fun calm_V : V;
+fun calm_V2 : V2;
+fun calmness_N : N;
+fun calne_PN : PN;
+fun calomel_N : N;
+fun calor_PN : PN;
+fun calorie_N : N;
+fun calorific_A : A;
+fun calumniate_V2 : V2;
+fun calumny_N : N;
+fun calvary_N : N;
+fun calve_V : V;
+fun calverton_PN : PN;
+fun calvinism_N : N;
+fun calvinist_N : N;
+fun calypso_N : N;
+fun calyx_N : N;
+fun cam_N : N;
+fun camaraderie_N : N;
+fun camber_N : N;
+fun camber_V : V;
+fun camber_V2 : V2;
+fun cambodia_PN : PN;
+fun cambodian_A : A;
+fun cambodian_N : N;
+fun cambourne_PN : PN;
+fun cambric_N : N;
+fun cambridge_PN : PN;
+fun cambridgeshire_PN : PN;
+fun cambuslang_PN : PN;
+fun camden_PN : PN;
+fun camel_N : N;
+fun camel_hair_N : N;
+fun camellia_N : N;
+fun camembert_N : N;
+fun cameo_N : N;
+fun camera_N : N;
+fun cameraman_N : N;
+fun cameroon_PN : PN;
+fun cameroonian_A : A;
+fun cameroonian_N : N;
+fun camion_N : N;
+fun camomile_N : N;
+fun camouflage_N : N;
+fun camouflage_V2 : V2;
+fun camp_A : A;
+fun camp_N : N;
+fun camp_V : V;
+fun camp_V2 : V2;
+fun camp_bed_N : N;
+fun camp_chair_N : N;
+fun camp_fire_N : N;
+fun camp_follower_N : N;
+fun camp_stool_N : N;
+fun campaign_N : N;
+fun campaign_V : V;
+fun campaigner_N : N;
+fun campanile_N : N;
+fun campanula_N : N;
+fun campbeltown_PN : PN;
+fun camper_N : N;
+fun camphor_N : N;
+fun camphorated_A : A;
+fun camping_N : N;
+fun campion_N : N;
+fun campus_N : N;
+fun camshaft_N : N;
+fun can_N : N;
+fun can_V2 : V2;
+fun canada_PN : PN;
+fun canadian_A : A;
+fun canadian_N : N;
+fun canal_N : N;
+fun canalization_N : N;
+fun canalize_V2 : V2;
+fun canape_N : N;
+fun canard_N : N;
+fun canary_N : N;
+fun canary_bird_N : N;
+fun canary_wine_N : N;
+fun canasta_N : N;
+fun canberra_PN : PN;
+fun cancan_N : N;
+fun cancel_V : V;
+fun cancel_V2 : V2;
+fun cancellation_N : N;
+fun cancer_N : N;
+fun cancer_PN : PN;
+fun cancerous_A : A;
+fun candelabrum_N : N;
+fun candid_A : A;
+fun candidate_N : N;
+fun candidature_N : N;
+fun candied_A : A;
+fun candle_N : N;
+fun candle_power_N : N;
+fun candlelight_N : N;
+fun candlestick_N : N;
+fun candlewick_N : N;
+fun candour_N : N;
+fun candy_N : N;
+fun candy_V : V;
+fun candy_V2 : V2;
+fun candy_floss_N : N;
+fun candytuft_N : N;
+fun cane_N : N;
+fun cane_V2 : V2;
+fun canine_A : A;
+fun canister_N : N;
+fun canker_N : N;
+fun canker_V2 : V2;
+fun cankerous_A : A;
+fun canna_N : N;
+fun cannabis_N : N;
+fun canned_A : A;
+fun cannery_N : N;
+fun cannes_PN : PN;
+fun cannibal_N : N;
+fun cannibalism_N : N;
+fun cannibalistic_A : A;
+fun cannibalize_V2 : V2;
+fun cannily_Adv : Adv;
+fun cannock_PN : PN;
+fun cannon_N : N;
+fun cannon_fodder_N : N;
+fun cannonade_N : N;
+fun canny_A : A;
+fun canoe_N : N;
+fun canoe_V2 : V2;
+fun canoeist_N : N;
+fun canon_1_N : N;
+fun canonical_A : A;
+fun canonization_N : N;
+fun canonize_V2 : V2;
+fun canopied_A : A;
+fun canopy_N : N;
+fun cant_N : N;
+fun cant_V : V;
+fun cant_V2 : V2;
+fun cantab_PN : PN;
+fun cantaloup_N : N;
+fun cantaloupe_N : N;
+fun cantankerous_A : A;
+fun cantata_N : N;
+fun canteen_N : N;
+fun canter_N : N;
+fun canter_V : V;
+fun canter_V2 : V2;
+fun canterbury_PN : PN;
+fun canticle_N : N;
+fun cantilever_N : N;
+fun canto_N : N;
+fun canton_N : N;
+fun canton_PN : PN;
+fun cantonment_N : N;
+fun cantor_N : N;
+fun canuck_N : N;
+fun canvas_N : N;
+fun canvass_N : N;
+fun canvass_V : V;
+fun canvass_V2 : V2;
+fun canvey_PN : PN;
+fun canvey_island_PN : PN;
+fun canyon_N : N;
+fun cap_N : N;
+fun cap_V2 : V2;
+fun cap_a_pie_Adv : Adv;
+fun capability_N : N;
+fun capable_A : A;
+fun capacious_A : A;
+fun capacity_N : N;
+fun caparison_N : N;
+fun caparison_V2 : V2;
+fun cape_N : N;
+fun cape_town_PN : PN;
+fun caper_N : N;
+fun caper_V : V;
+fun capillary_N : N;
+fun capital_A : A;
+fun capital_N : N;
+fun capitalism_A : A;
+fun capitalism_N : N;
+fun capitalist_N : N;
+fun capitalistic_A : A;
+fun capitalization_N : N;
+fun capitalize_V : V;
+fun capitalize_V2 : V2;
+fun capitation_N : N;
+fun capitol_N : N;
+fun capitulate_V2 : V2;
+fun capitulation_N : N;
+fun capon_N : N;
+fun caprice_N : N;
+fun capricious_A : A;
+fun capriciousness_N : N;
+fun capricorn_PN : PN;
+fun capsicum_N : N;
+fun capsize_V : V;
+fun capsize_V2 : V2;
+fun capstan_N : N;
+fun capsule_N : N;
+fun capt_PN : PN;
+fun captain_N : N;
+fun captain_V2 : V2;
+fun caption_N : N;
+fun captious_A : A;
+fun captivate_V2 : V2;
+fun captive_A : A;
+fun captive_N : N;
+fun captivity_N : N;
+fun captor_N : N;
+fun capture_N : N;
+fun capture_V2 : V2;
+fun car_N : N;
+fun car_ferry_N : N;
+fun caracas_PN : PN;
+fun carafe_N : N;
+fun caramel_N : N;
+fun carapace_N : N;
+fun carat_N : N;
+fun caravan_N : N;
+fun caravanning_N : N;
+fun caravansary_N : N;
+fun caravanserai_N : N;
+fun caraway_N : N;
+fun carbide_N : N;
+fun carbine_N : N;
+fun carbohydrate_N : N;
+fun carbolic_A : A;
+fun carbon_N : N;
+fun carbon_paper_N : N;
+fun carbonated_A : A;
+fun carbonic_A : A;
+fun carboniferous_A : A;
+fun carbonization_N : N;
+fun carbonize_V2 : V2;
+fun carborundum_N : N;
+fun carboy_N : N;
+fun carbuncle_N : N;
+fun carburettor_N : N;
+fun carcase_N : N;
+fun carcass_N : N;
+fun card_N : N;
+fun card_V2 : V2;
+fun card_sharper_N : N;
+fun cardamom_N : N;
+fun cardboard_N : N;
+fun cardenden_PN : PN;
+fun cardiac_A : A;
+fun cardiff_PN : PN;
+fun cardigan_N : N;
+fun cardigan_PN : PN;
+fun cardinal_A : A;
+fun cardinal_N : N;
+fun care_N : N;
+fun care_V : V;
+fun careen_V : V;
+fun careen_V2 : V2;
+fun career_N : N;
+fun career_V : V;
+fun careerist_N : N;
+fun carefree_A : A;
+fun careful_A : A;
+fun carefulness_N : N;
+fun careladen_A : A;
+fun careless_A : A;
+fun carelessness_N : N;
+fun caress_N : N;
+fun caress_V2 : V2;
+fun caressing_A : A;
+fun caret_N : N;
+fun caretaker_N : N;
+fun careworn_A : A;
+fun cargo_N : N;
+fun caribou_N : N;
+fun caricature_N : N;
+fun caricature_V2 : V2;
+fun caricaturist_N : N;
+fun caries_N : N;
+fun carillon_N : N;
+fun carious_A : A;
+fun carl_PN : PN;
+fun carlisle_PN : PN;
+fun carlow_PN : PN;
+fun carluke_PN : PN;
+fun carmarthen_PN : PN;
+fun carmelite_A : A;
+fun carmelite_N : N;
+fun carmine_A : A;
+fun carmine_N : N;
+fun carnage_N : N;
+fun carnal_A : A;
+fun carnation_N : N;
+fun carnforth_PN : PN;
+fun carnival_N : N;
+fun carnivore_N : N;
+fun carnivorous_A : A;
+fun carnoustie_PN : PN;
+fun carol_N : N;
+fun carol_PN : PN;
+fun carol_V2 : V2;
+fun carole_PN : PN;
+fun carolina_PN : PN;
+fun caroline_PN : PN;
+fun caroller_N : N;
+fun carolyn_PN : PN;
+fun carousal_N : N;
+fun carouse_V2 : V2;
+fun carousel_N : N;
+fun carp_N : N;
+fun carp_V2 : V2;
+fun carpal_A : A;
+fun carpal_N : N;
+fun carpenter_N : N;
+fun carpentry_N : N;
+fun carpet_N : N;
+fun carpet_V2 : V2;
+fun carpet_beater_N : N;
+fun carpet_knight_N : N;
+fun carpet_sweeper_N : N;
+fun carpetbag_N : N;
+fun carpetbagger_N : N;
+fun carport_N : N;
+fun carriage_N : N;
+fun carriageway_N : N;
+fun carrie_PN : PN;
+fun carrier_N : N;
+fun carrier_bag_N : N;
+fun carrier_pigeon_N : N;
+fun carrion_N : N;
+fun carrion_crow_N : N;
+fun carron_PN : PN;
+fun carrot_N : N;
+fun carroty_A : A;
+fun carry_N : N;
+fun carry_V : V;
+fun carry_V2 : V2;
+fun carrycot_N : N;
+fun carsick_A : A;
+fun carsickness_N : N;
+fun cart_N : N;
+fun cart_V2 : V2;
+fun cart_track_N : N;
+fun cartage_N : N;
+fun cartagena_PN : PN;
+fun carte_blanche_N : N;
+fun cartel_N : N;
+fun carter_N : N;
+fun carthorse_N : N;
+fun cartilage_N : N;
+fun cartilaginous_A : A;
+fun cartload_N : N;
+fun cartographer_N : N;
+fun cartography_N : N;
+fun carton_N : N;
+fun cartoon_N : N;
+fun cartoon_V2 : V2;
+fun cartoonist_N : N;
+fun cartridge_N : N;
+fun cartridge_belt_N : N;
+fun cartridge_paper_N : N;
+fun cartroad_N : N;
+fun cartwheel_N : N;
+fun carve_V : V;
+fun carve_V2 : V2;
+fun carver_N : N;
+fun carving_N : N;
+fun carving_fork_N : N;
+fun carving_knife_N : N;
+fun caryatid_N : N;
+fun casablanca_PN : PN;
+fun cascade_N : N;
+fun cascade_V : V;
+fun case_N : N;
+fun case_V2 : V2;
+fun case_hardened_A : A;
+fun case_history_N : N;
+fun case_law_N : N;
+fun casebook_N : N;
+fun casein_N : N;
+fun casement_N : N;
+fun casework_N : N;
+fun cash_N : N;
+fun cash_V : V;
+fun cash_V2 : V2;
+fun cashable_A : A;
+fun cashew_N : N;
+fun cashier_N : N;
+fun cashier_V2 : V2;
+fun cashmere_N : N;
+fun casing_N : N;
+fun casino_N : N;
+fun cask_N : N;
+fun casket_N : N;
+fun cassava_N : N;
+fun casserole_N : N;
+fun cassette_N : N;
+fun cassock_N : N;
+fun cassowary_N : N;
+fun cast_N : N;
+fun cast_V : V;
+fun cast_V2 : V2;
+fun cast_iron_A : A;
+fun cast_off_A : A;
+fun castaway_N : N;
+fun caste_N : N;
+fun castellated_A : A;
+fun caster_N : N;
+fun castigate_V2 : V2;
+fun castigation_N : N;
+fun casting_N : N;
+fun castle_N : N;
+fun castle_V : V;
+fun castleford_PN : PN;
+fun castor_N : N;
+fun castor_oil_N : N;
+fun castrate_V2 : V2;
+fun castration_N : N;
+fun casual_A : A;
+fun casualty_N : N;
+fun casuist_N : N;
+fun casuistic_A : A;
+fun casuistical_A : A;
+fun casuistry_N : N;
+fun casus_belli_N : N;
+fun cat_N : N;
+fun cat_nap_N : N;
+fun cat_o'_nine_tails_N : N;
+fun cat_sleep_N : N;
+fun cataclysm_N : N;
+fun cataclysmic_A : A;
+fun catafalque_N : N;
+fun catalan_A : A;
+fun catalan_N : N;
+fun catalepsy_N : N;
+fun cataleptic_A : A;
+fun cataleptic_N : N;
+fun catalogue_N : N;
+fun catalogue_V2 : V2;
+fun catalpa_N : N;
+fun catalysis_N : N;
+fun catalyst_N : N;
+fun catalytic_A : A;
+fun catamaran_N : N;
+fun catania_PN : PN;
+fun catapult_N : N;
+fun catapult_V2 : V2;
+fun cataract_N : N;
+fun catarrh_N : N;
+fun catastrophe_N : N;
+fun catastrophic_A : A;
+fun catastrophically_Adv : Adv;
+fun catcall_N : N;
+fun catcall_V : V;
+fun catch_N : N;
+fun catch_V : V;
+fun catch_V2 : V2;
+fun catch_crop_N : N;
+fun catcher_N : N;
+fun catching_A : A;
+fun catchment_N : N;
+fun catchment_area_N : N;
+fun catchment_basin_N : N;
+fun catchpenny_A : A;
+fun catchup_N : N;
+fun catchword_N : N;
+fun catchy_A : A;
+fun catechism_N : N;
+fun catechize_V2 : V2;
+fun categorical_A : A;
+fun categorize_V2 : V2;
+fun category_N : N;
+fun cater_V : V;
+fun caterer_N : N;
+fun caterpillar_N : N;
+fun caterwaul_N : N;
+fun caterwaul_V : V;
+fun catfish_N : N;
+fun catgut_N : N;
+fun cath_PN : PN;
+fun catharsis_N : N;
+fun cathartic_N : N;
+fun cathedral_N : N;
+fun catherine_PN : PN;
+fun cathode_N : N;
+fun catholic_A : A;
+fun catholic_N : N;
+fun catholicism_N : N;
+fun catholicity_N : N;
+fun cathy_PN : PN;
+fun catkin_N : N;
+fun catsup_N : N;
+fun cattiness_N : N;
+fun cattish_A : A;
+fun cattle_cake_N : N;
+fun cattleman_N : N;
+fun catty_A : A;
+fun catwalk_N : N;
+fun caucasian_A : A;
+fun caucasian_N : N;
+fun caucus_N : N;
+fun caul_N : N;
+fun cauldron_N : N;
+fun cauliflower_N : N;
+fun caulk_V2 : V2;
+fun causal_A : A;
+fun causality_N : N;
+fun causation_N : N;
+fun causative_A : A;
+fun cause_N : N;
+fun cause_V2 : V2;
+fun causeless_A : A;
+fun causerie_N : N;
+fun causeway_N : N;
+fun caustic_A : A;
+fun caustically_Adv : Adv;
+fun cauterize_V2 : V2;
+fun caution_N : N;
+fun caution_V2 : V2;
+fun cautionary_A : A;
+fun cautious_A : A;
+fun cavalcade_N : N;
+fun cavalier_A : A;
+fun cavalier_N : N;
+fun cavalry_N : N;
+fun cavalryman_N : N;
+fun cavan_PN : PN;
+fun cave_N : N;
+fun cave_V : V;
+fun cave_V2 : V2;
+fun cave_dweller_N : N;
+fun cave_in_N : N;
+fun caveat_N : N;
+fun caveman_N : N;
+fun cavern_N : N;
+fun cavernous_A : A;
+fun caviar_N : N;
+fun caviare_N : N;
+fun cavil_V : V;
+fun cavity_N : N;
+fun cavort_V : V;
+fun caw_N : N;
+fun caw_V : V;
+fun caw_V2 : V2;
+fun cayenne_N : N;
+fun cayenne_pepper_N : N;
+fun cayman_N : N;
+fun canon_2_N : N;
+fun cbi_N : N;
+fun cc_N : N;
+fun cd_N : N;
+fun cdr_PN : PN;
+fun cdre_PN : PN;
+fun cease_N : N;
+fun cease_V : V;
+fun cease_V2 : V2;
+fun cease_fire_N : N;
+fun ceaseless_A : A;
+fun cecil_PN : PN;
+fun cecilia_PN : PN;
+fun cecily_PN : PN;
+fun cedar_N : N;
+fun cede_V2 : V2;
+fun cedilla_N : N;
+fun cedric_PN : PN;
+fun cefn_mawr_PN : PN;
+fun ceiling_N : N;
+fun celandine_N : N;
+fun celebrant_N : N;
+fun celebrate_V2 : V2;
+fun celebrated_A : A;
+fun celebration_N : N;
+fun celebrity_N : N;
+fun celerity_N : N;
+fun celery_N : N;
+fun celestial_A : A;
+fun celia_PN : PN;
+fun celibacy_N : N;
+fun celibate_N : N;
+fun cell_N : N;
+fun cellar_N : N;
+fun cellarage_N : N;
+fun cellist_N : N;
+fun cello_N : N;
+fun cellophane_N : N;
+fun cellular_A : A;
+fun celluloid_N : N;
+fun cellulose_N : N;
+fun celt_N : N;
+fun celtic_A : A;
+fun celtic_N : N;
+fun cement_N : N;
+fun cement_V2 : V2;
+fun cement_mixer_N : N;
+fun cemetery_N : N;
+fun cenotaph_N : N;
+fun censer_N : N;
+fun censor_N : N;
+fun censor_V2 : V2;
+fun censorious_A : A;
+fun censorship_N : N;
+fun censure_N : N;
+fun censure_V2 : V2;
+fun census_N : N;
+fun cent_N : N;
+fun centaur_N : N;
+fun centenarian_A : A;
+fun centenarian_N : N;
+fun centenary_A : A;
+fun centenary_N : N;
+fun centennial_A : A;
+fun centennial_N : N;
+fun centigrade_A : A;
+fun centime_N : N;
+fun centimetre_N : N;
+fun centipede_N : N;
+fun central_A : A;
+fun central_N : N;
+fun centralization_N : N;
+fun centralize_V : V;
+fun centralize_V2 : V2;
+fun centre_N : N;
+fun centre_V : V;
+fun centre_V2 : V2;
+fun centre_bit_N : N;
+fun centre_board_N : N;
+fun centrepiece_N : N;
+fun centrifugal_A : A;
+fun centrifuge_N : N;
+fun centripetal_A : A;
+fun centurion_N : N;
+fun century_N : N;
+fun ceramic_A : A;
+fun ceramics_N : N;
+fun cereal_N : N;
+fun cerebral_A : A;
+fun cerebration_N : N;
+fun ceremonial_A : A;
+fun ceremonial_N : N;
+fun ceremonious_A : A;
+fun ceremony_N : N;
+fun cerise_A : A;
+fun cerise_N : N;
+fun cert_N : N;
+fun certain_A : A;
+fun certainty_N : N;
+fun certifiable_A : A;
+fun certificate_N : N;
+fun certificate_V2 : V2;
+fun certificated_A : A;
+fun certification_N : N;
+fun certify_V : V;
+fun certify_V2 : V2;
+fun certitude_N : N;
+fun cerulean_A : A;
+fun cervical_A : A;
+fun cervix_N : N;
+fun cesarean_A : A;
+fun cessation_N : N;
+fun cession_N : N;
+fun cesspit_N : N;
+fun cesspool_N : N;
+fun ceylon_PN : PN;
+fun cf_PN : PN;
+fun chad_PN : PN;
+fun chadian_A : A;
+fun chadian_N : N;
+fun chafe_N : N;
+fun chafe_V : V;
+fun chafe_V2 : V2;
+fun chaff_N : N;
+fun chaff_V2 : V2;
+fun chaffinch_N : N;
+fun chafing_dish_N : N;
+fun chagrin_N : N;
+fun chagrin_V2 : V2;
+fun chain_N : N;
+fun chain_V2 : V2;
+fun chain_armour_N : N;
+fun chain_gang_N : N;
+fun chain_letter_N : N;
+fun chain_mail_N : N;
+fun chain_smoker_N : N;
+fun chain_stitch_N : N;
+fun chain_store_N : N;
+fun chair_N : N;
+fun chair_V2 : V2;
+fun chair_lift_N : N;
+fun chairman_N : N;
+fun chairmanship_N : N;
+fun chaise_N : N;
+fun chaise_longue_N : N;
+fun chalet_N : N;
+fun chalfont_PN : PN;
+fun chalfont_st_giles_PN : PN;
+fun chalfont_st_peter_PN : PN;
+fun chalice_N : N;
+fun chalk_N : N;
+fun chalk_V2 : V2;
+fun chalkpit_N : N;
+fun chalky_A : A;
+fun challenge_N : N;
+fun challenge_V2 : V2;
+fun challenger_N : N;
+fun chamber_N : N;
+fun chamberlain_N : N;
+fun chambermaid_N : N;
+fun chamberpot_N : N;
+fun chameleon_N : N;
+fun chammy_leather_N : N;
+fun chamois_N : N;
+fun chamois_leather_N : N;
+fun champ_N : N;
+fun champ_V : V;
+fun champ_V2 : V2;
+fun champagne_N : N;
+fun champion_A : A;
+fun champion_Adv : Adv;
+fun champion_N : N;
+fun champion_V2 : V2;
+fun championship_N : N;
+fun chance_N : N;
+fun chance_V : V;
+fun chance_V2 : V2;
+fun chancel_N : N;
+fun chancellery_N : N;
+fun chancellor_N : N;
+fun chancery_N : N;
+fun chancy_A : A;
+fun chandelier_N : N;
+fun chandler_N : N;
+fun changchun_PN : PN;
+fun change_N : N;
+fun change_V : V;
+fun change_V2 : V2;
+fun changeable_A : A;
+fun changeableness_N : N;
+fun changeful_A : A;
+fun changeless_A : A;
+fun changeling_N : N;
+fun changeover_N : N;
+fun changsha_PN : PN;
+fun channel_N : N;
+fun channel_V2 : V2;
+fun chant_N : N;
+fun chant_V : V;
+fun chant_V2 : V2;
+fun chaos_N : N;
+fun chaotic_A : A;
+fun chaotically_Adv : Adv;
+fun chap_N : N;
+fun chap_V : V;
+fun chap_V2 : V2;
+fun chapel_N : N;
+fun chapelgoer_N : N;
+fun chaperon_N : N;
+fun chaperon_V2 : V2;
+fun chapfallen_A : A;
+fun chaplain_N : N;
+fun chaplaincy_N : N;
+fun chaplet_N : N;
+fun chapman_N : N;
+fun chapter_N : N;
+fun chapterhouse_N : N;
+fun char_N : N;
+fun char_V : V;
+fun char_V2 : V2;
+fun charabanc_1_N : N;
+fun character_N : N;
+fun characteristic_A : A;
+fun characteristic_N : N;
+fun characteristically_Adv : Adv;
+fun characterization_N : N;
+fun characterize_V2 : V2;
+fun characterless_A : A;
+fun charade_N : N;
+fun charcoal_N : N;
+fun charcoal_burner_N : N;
+fun chard_N : N;
+fun chard_PN : PN;
+fun charge_N : N;
+fun charge_V : V;
+fun charge_V2 : V2;
+fun charge_account_N : N;
+fun charge_sheet_N : N;
+fun chargeable_A : A;
+fun charger_N : N;
+fun charge_d'affaires_N : N;
+fun chariot_N : N;
+fun charioteer_N : N;
+fun charisma_N : N;
+fun charismatic_A : A;
+fun charitable_A : A;
+fun charity_N : N;
+fun charivari_N : N;
+fun charlady_N : N;
+fun charlatan_N : N;
+fun charles_PN : PN;
+fun charleston_N : N;
+fun charlie_PN : PN;
+fun charlock_N : N;
+fun charlotte_PN : PN;
+fun charm_N : N;
+fun charm_V : V;
+fun charm_V2 : V2;
+fun charmer_N : N;
+fun charming_A : A;
+fun charnel_house_N : N;
+fun chart_N : N;
+fun chart_V2 : V2;
+fun charter_N : N;
+fun charter_V2 : V2;
+fun charter_party_N : N;
+fun chartism_N : N;
+fun chartist_N : N;
+fun chartreuse_N : N;
+fun charwoman_N : N;
+fun chary_A : A;
+fun charybdis_PN : PN;
+fun charabanc_2_N : N;
+fun chas_PN : PN;
+fun chase_N : N;
+fun chase_V : V;
+fun chase_V2 : V2;
+fun chaser_N : N;
+fun chasm_N : N;
+fun chassis_N : N;
+fun chaste_A : A;
+fun chasten_V2 : V2;
+fun chastise_V2 : V2;
+fun chastisement_N : N;
+fun chastity_N : N;
+fun chasuble_N : N;
+fun chat_N : N;
+fun chat_V : V;
+fun chat_V2 : V2;
+fun chatelaine_N : N;
+fun chatham_PN : PN;
+fun chattel_N : N;
+fun chatter_N : N;
+fun chatter_V : V;
+fun chatterbox_N : N;
+fun chattily_Adv : Adv;
+fun chatty_A : A;
+fun chauffeur_N : N;
+fun chauffeuse_N : N;
+fun chauvinism_N : N;
+fun chauvinist_N : N;
+fun chauvinistic_A : A;
+fun chaw_N : N;
+fun chaw_V2 : V2;
+fun chaw_bacon_N : N;
+fun cheadle_PN : PN;
+fun cheap_A : A;
+fun cheapen_V : V;
+fun cheapen_V2 : V2;
+fun cheapjack_A : A;
+fun cheapness_N : N;
+fun cheat_N : N;
+fun cheat_V : V;
+fun cheat_V2 : V2;
+fun check_N : N;
+fun check_V : V;
+fun check_V2 : V2;
+fun checkbook_N : N;
+fun checked_A : A;
+fun checker_N : N;
+fun checker_V2 : V2;
+fun checkers_N : N;
+fun checklist_N : N;
+fun checkmate_N : N;
+fun checkmate_V2 : V2;
+fun checkout_N : N;
+fun checkpoint_N : N;
+fun checkroom_N : N;
+fun checkup_N : N;
+fun cheddar_N : N;
+fun cheek_N : N;
+fun cheek_V2 : V2;
+fun cheekbone_N : N;
+fun cheeked_A : A;
+fun cheekily_Adv : Adv;
+fun cheeky_A : A;
+fun cheep_N : N;
+fun cheep_V : V;
+fun cheer_N : N;
+fun cheer_V : V;
+fun cheer_V2 : V2;
+fun cheerful_A : A;
+fun cheerfulness_N : N;
+fun cheering_A : A;
+fun cheering_N : N;
+fun cheerleader_N : N;
+fun cheerless_A : A;
+fun cheerlessness_N : N;
+fun cheery_A : A;
+fun cheese_N : N;
+fun cheesecake_N : N;
+fun cheesecloth_N : N;
+fun cheeseparing_A : A;
+fun cheetah_N : N;
+fun chef_N : N;
+fun chef_d'oeuvre_N : N;
+fun chelmsford_PN : PN;
+fun chelsea_PN : PN;
+fun cheltenham_PN : PN;
+fun chelyabinsk_PN : PN;
+fun chemical_A : A;
+fun chemical_N : N;
+fun chemise_N : N;
+fun chemist_N : N;
+fun chemistry_N : N;
+fun chemotherapy_N : N;
+fun chengchow_PN : PN;
+fun chengtu_PN : PN;
+fun chenille_N : N;
+fun chepstow_PN : PN;
+fun cheque_N : N;
+fun chequebook_N : N;
+fun chequer_V2 : V2;
+fun cherish_V2 : V2;
+fun cheroot_N : N;
+fun cherry_A : A;
+fun cherry_N : N;
+fun cherub_N : N;
+fun cherubic_A : A;
+fun chervil_N : N;
+fun chesham_PN : PN;
+fun cheshire_PN : PN;
+fun chess_N : N;
+fun chessboard_N : N;
+fun chessman_N : N;
+fun chest_N : N;
+fun chester_PN : PN;
+fun chester_le_street_PN : PN;
+fun chesterfield_N : N;
+fun chesterfield_PN : PN;
+fun chestnut_N : N;
+fun cheval_glass_N : N;
+fun chevron_N : N;
+fun chew_N : N;
+fun chew_V : V;
+fun chew_V2 : V2;
+fun chewing_gum_N : N;
+fun chianti_N : N;
+fun chiaroscuro_N : N;
+fun chic_A : A;
+fun chic_N : N;
+fun chicago_PN : PN;
+fun chicanery_N : N;
+fun chichester_PN : PN;
+fun chichi_A : A;
+fun chick_N : N;
+fun chicken_N : N;
+fun chicken_hearted_A : A;
+fun chicken_run_N : N;
+fun chickenfeed_N : N;
+fun chickenpox_N : N;
+fun chickpea_N : N;
+fun chickweed_N : N;
+fun chicle_N : N;
+fun chicory_N : N;
+fun chide_V : V;
+fun chide_V2 : V2;
+fun chief_A : A;
+fun chief_N : N;
+fun chieftain_N : N;
+fun chieftaincy_N : N;
+fun chiffon_N : N;
+fun chiffonier_N : N;
+fun chignon_N : N;
+fun chilblain_N : N;
+fun chilblained_A : A;
+fun child's_play_N : N;
+fun child_N : N;
+fun child_bearing_N : N;
+fun childbirth_N : N;
+fun childhood_N : N;
+fun childish_A : A;
+fun childless_A : A;
+fun childlike_A : A;
+fun chile_PN : PN;
+fun chilean_A : A;
+fun chilean_N : N;
+fun chill_A : A;
+fun chill_N : N;
+fun chill_V : V;
+fun chill_V2 : V2;
+fun chilli_N : N;
+fun chilly_A : A;
+fun chilly_N : N;
+fun chimaera_N : N;
+fun chime_N : N;
+fun chime_V : V;
+fun chime_V2 : V2;
+fun chimera_N : N;
+fun chimerical_A : A;
+fun chimney_N : N;
+fun chimney_sweep_N : N;
+fun chimneybreast_N : N;
+fun chimneypiece_N : N;
+fun chimneypot_N : N;
+fun chimneystack_N : N;
+fun chimneysweep_N : N;
+fun chimneysweeper_N : N;
+fun chimp_N : N;
+fun chimpanzee_N : N;
+fun chin_N : N;
+fun chin_strap_N : N;
+fun chin_wagging_N : N;
+fun china_N : N;
+fun china_PN : PN;
+fun china_closet_N : N;
+fun chinaware_N : N;
+fun chinchilla_N : N;
+fun chinchow_PN : PN;
+fun chine_N : N;
+fun chinese_A : A;
+fun chinese_N : N;
+fun chink_N : N;
+fun chink_V : V;
+fun chink_V2 : V2;
+fun chintz_N : N;
+fun chip_N : N;
+fun chip_V : V;
+fun chip_V2 : V2;
+fun chipboard_N : N;
+fun chipmunk_N : N;
+fun chippendale_N : N;
+fun chippenham_PN : PN;
+fun chiropodist_N : N;
+fun chiropody_N : N;
+fun chiropractor_N : N;
+fun chirp_N : N;
+fun chirp_V : V;
+fun chirp_V2 : V2;
+fun chirpiness_N : N;
+fun chirpy_A : A;
+fun chirrup_N : N;
+fun chirrup_V : V;
+fun chirrup_V2 : V2;
+fun chisel_N : N;
+fun chisel_V2 : V2;
+fun chiseller_N : N;
+fun chit_N : N;
+fun chit_chat_N : N;
+fun chivalrous_A : A;
+fun chivalry_N : N;
+fun chive_N : N;
+fun chivvy_V2 : V2;
+fun chivy_V2 : V2;
+fun chloe_PN : PN;
+fun chloride_N : N;
+fun chlorinate_V2 : V2;
+fun chlorination_N : N;
+fun chlorine_N : N;
+fun chloroform_N : N;
+fun chlorophyll_N : N;
+fun choc_N : N;
+fun choc_ice_N : N;
+fun chock_N : N;
+fun chock_V2 : V2;
+fun chock_a_block_A : A;
+fun chock_a_block_Adv : Adv;
+fun chock_full_A : A;
+fun chocolate_N : N;
+fun choice_A : A;
+fun choice_N : N;
+fun choir_N : N;
+fun choir_school_N : N;
+fun choirboy_N : N;
+fun choke_N : N;
+fun choke_V : V;
+fun choke_V2 : V2;
+fun choke_damp_N : N;
+fun choker_N : N;
+fun chokey_N : N;
+fun choky_N : N;
+fun choler_N : N;
+fun cholera_N : N;
+fun choleric_A : A;
+fun choose_V : V;
+fun choose_V2 : V2;
+fun choosey_A : A;
+fun choosy_A : A;
+fun chop_N : N;
+fun chop_V : V;
+fun chop_V2 : V2;
+fun chop_chop_Adv : Adv;
+fun chop_house_N : N;
+fun chop_suey_N : N;
+fun chopper_N : N;
+fun choppy_A : A;
+fun chopwell_PN : PN;
+fun choral_A : A;
+fun chorale_N : N;
+fun chord_N : N;
+fun chore_N : N;
+fun choreographer_N : N;
+fun choreography_N : N;
+fun chorister_N : N;
+fun chorley_PN : PN;
+fun chortle_N : N;
+fun chortle_V : V;
+fun chorus_N : N;
+fun chorus_V2 : V2;
+fun chorus_girl_N : N;
+fun chow_N : N;
+fun chowder_N : N;
+fun chris_PN : PN;
+fun chrissie_PN : PN;
+fun chrissy_PN : PN;
+fun christ_PN : PN;
+fun christchurch_PN : PN;
+fun christen_V2 : V2;
+fun christendom_N : N;
+fun christening_N : N;
+fun christian_A : A;
+fun christian_N : N;
+fun christian_PN : PN;
+fun christianity_N : N;
+fun christina_PN : PN;
+fun christine_PN : PN;
+fun christlike_A : A;
+fun christmas_N : N;
+fun christmas_PN : PN;
+fun christmas_box_N : N;
+fun christmas_tree_N : N;
+fun christmastide_N : N;
+fun christmastime_N : N;
+fun christopher_PN : PN;
+fun chromatic_A : A;
+fun chrome_N : N;
+fun chromium_N : N;
+fun chromosome_N : N;
+fun chronic_A : A;
+fun chronically_Adv : Adv;
+fun chronicle_N : N;
+fun chronicle_V2 : V2;
+fun chronicler_N : N;
+fun chronological_A : A;
+fun chronology_N : N;
+fun chronometer_N : N;
+fun chrysalis_N : N;
+fun chrysanthemum_N : N;
+fun chubby_A : A;
+fun chuck_N : N;
+fun chuck_V2 : V2;
+fun chucker_out_N : N;
+fun chuckle_N : N;
+fun chuckle_V : V;
+fun chug_N : N;
+fun chug_V : V;
+fun chukker_N : N;
+fun chum_N : N;
+fun chum_V : V;
+fun chummy_A : A;
+fun chump_N : N;
+fun chungking_PN : PN;
+fun chunk_N : N;
+fun chunky_A : A;
+fun church_N : N;
+fun churchgoer_N : N;
+fun churchman_N : N;
+fun churchwarden_N : N;
+fun churchyard_N : N;
+fun churl_N : N;
+fun churlish_A : A;
+fun churn_N : N;
+fun churn_V : V;
+fun churn_V2 : V2;
+fun chute_N : N;
+fun chutney_N : N;
+fun chateau_N : N;
+fun cia_N : N;
+fun cicada_N : N;
+fun cicala_N : N;
+fun cicatrice_N : N;
+fun cicatrix_N : N;
+fun cicerone_N : N;
+fun cid_N : N;
+fun cider_N : N;
+fun ciderpress_N : N;
+fun cif_PN : PN;
+fun cigar_N : N;
+fun cigar_shaped_A : A;
+fun cigarette_N : N;
+fun cigarette_case_N : N;
+fun cigarette_holder_N : N;
+fun cigarette_paper_N : N;
+fun cinch_N : N;
+fun cinchona_N : N;
+fun cincinnati_PN : PN;
+fun cincture_N : N;
+fun cinder_N : N;
+fun cinder_track_N : N;
+fun cinderella_N : N;
+fun cinderford_PN : PN;
+fun cine_camera_N : N;
+fun cine_film_N : N;
+fun cine_projector_N : N;
+fun cinema_N : N;
+fun cinematic_A : A;
+fun cinematography_N : N;
+fun cinnamon_N : N;
+fun cinquefoil_N : N;
+fun cipher_N : N;
+fun cipher_V : V;
+fun cipher_V2 : V2;
+fun circle_N : N;
+fun circle_V : V;
+fun circle_V2 : V2;
+fun circlet_N : N;
+fun circuit_N : N;
+fun circuitous_A : A;
+fun circular_A : A;
+fun circular_N : N;
+fun circularity_N : N;
+fun circularize_V2 : V2;
+fun circulate_V : V;
+fun circulate_V2 : V2;
+fun circulation_N : N;
+fun circumcise_V2 : V2;
+fun circumcision_N : N;
+fun circumference_N : N;
+fun circumflex_N : N;
+fun circumlocution_N : N;
+fun circumnavigate_V2 : V2;
+fun circumnavigation_N : N;
+fun circumscribe_V2 : V2;
+fun circumscription_N : N;
+fun circumspect_A : A;
+fun circumspection_N : N;
+fun circumstance_N : N;
+fun circumstantial_A : A;
+fun circumvent_V2 : V2;
+fun circumvention_N : N;
+fun circus_N : N;
+fun cirencester_PN : PN;
+fun cirrhosis_N : N;
+fun cirrus_N : N;
+fun cissy_A : A;
+fun cissy_N : N;
+fun cistern_N : N;
+fun citadel_N : N;
+fun citation_N : N;
+fun cite_V2 : V2;
+fun citizen_N : N;
+fun citizenship_N : N;
+fun citric_A : A;
+fun citron_N : N;
+fun citrous_A : A;
+fun citrus_N : N;
+fun city_N : N;
+fun civet_N : N;
+fun civet_cat_N : N;
+fun civic_A : A;
+fun civics_N : N;
+fun civil_A : A;
+fun civilian_A : A;
+fun civilian_N : N;
+fun civility_N : N;
+fun civilization_N : N;
+fun civilize_V2 : V2;
+fun civvy_street_PN : PN;
+fun clack_N : N;
+fun clack_V : V;
+fun clackmannon_PN : PN;
+fun clacton_PN : PN;
+fun claim_N : N;
+fun claim_V : V;
+fun claim_V2 : V2;
+fun claimant_N : N;
+fun clairvoyance_N : N;
+fun clairvoyant_N : N;
+fun clam_N : N;
+fun clam_V : V;
+fun clambake_N : N;
+fun clamber_N : N;
+fun clamber_V : V;
+fun clammily_Adv : Adv;
+fun clammy_A : A;
+fun clamorous_A : A;
+fun clamour_N : N;
+fun clamour_V : V;
+fun clamour_V2 : V2;
+fun clamp_N : N;
+fun clamp_V : V;
+fun clamp_V2 : V2;
+fun clamp_down_N : N;
+fun clan_N : N;
+fun clandestine_A : A;
+fun clang_N : N;
+fun clang_V : V;
+fun clang_V2 : V2;
+fun clanger_N : N;
+fun clangorous_A : A;
+fun clangour_N : N;
+fun clank_N : N;
+fun clank_V : V;
+fun clank_V2 : V2;
+fun clannish_A : A;
+fun clansman_N : N;
+fun clap_N : N;
+fun clap_V : V;
+fun clap_V2 : V2;
+fun clapboard_N : N;
+fun clapper_N : N;
+fun clapperboard_N : N;
+fun claptrap_N : N;
+fun claque_N : N;
+fun clare_PN : PN;
+fun claret_N : N;
+fun clarification_N : N;
+fun clarify_V : V;
+fun clarify_V2 : V2;
+fun clarinet_N : N;
+fun clarinetist_N : N;
+fun clarinettist_N : N;
+fun clarion_N : N;
+fun clarity_N : N;
+fun clarkston_PN : PN;
+fun clarrie_PN : PN;
+fun clash_N : N;
+fun clash_V : V;
+fun clash_V2 : V2;
+fun clasp_N : N;
+fun clasp_V : V;
+fun clasp_V2 : V2;
+fun clasp_knife_N : N;
+fun class_N : N;
+fun class_V2 : V2;
+fun class_conscious_A : A;
+fun class_feeling_N : N;
+fun class_fellow_N : N;
+fun class_list_N : N;
+fun class_warfare_N : N;
+fun classic_A : A;
+fun classic_N : N;
+fun classical_A : A;
+fun classicism_N : N;
+fun classicist_N : N;
+fun classics_N : N;
+fun classifiable_A : A;
+fun classification_N : N;
+fun classified_A : A;
+fun classify_V2 : V2;
+fun classless_A : A;
+fun classmate_N : N;
+fun classroom_N : N;
+fun classy_A : A;
+fun clatter_N : N;
+fun clatter_V : V;
+fun clatter_V2 : V2;
+fun claud_PN : PN;
+fun claude_PN : PN;
+fun clause_N : N;
+fun claustrophobia_N : N;
+fun claustrophobic_A : A;
+fun clavichord_N : N;
+fun clavicle_N : N;
+fun claw_N : N;
+fun claw_V2 : V2;
+fun clawback_N : N;
+fun clawhammer_N : N;
+fun clay_N : N;
+fun clay_cross_PN : PN;
+fun clayey_A : A;
+fun clean_A : A;
+fun clean_Adv : Adv;
+fun clean_N : N;
+fun clean_V : V;
+fun clean_V2 : V2;
+fun clean_bowled_A : A;
+fun clean_cut_A : A;
+fun clean_limbed_A : A;
+fun clean_living_A : A;
+fun clean_shaven_A : A;
+fun clean_up_N : N;
+fun cleaner_N : N;
+fun cleanliness_N : N;
+fun cleanly_A : A;
+fun cleanse_V2 : V2;
+fun cleanser_N : N;
+fun clear_A : A;
+fun clear_Adv : Adv;
+fun clear_N : N;
+fun clear_V : V;
+fun clear_V2 : V2;
+fun clear_cut_Adv : Adv;
+fun clear_headed_A : A;
+fun clear_sighted_A : A;
+fun clearance_N : N;
+fun clearing_N : N;
+fun clearing_house_N : N;
+fun clearness_N : N;
+fun clearway_N : N;
+fun cleat_N : N;
+fun cleator_moor_PN : PN;
+fun cleavage_N : N;
+fun cleave_V : V;
+fun cleave_V2 : V2;
+fun cleaver_N : N;
+fun cleethorpes_PN : PN;
+fun clef_N : N;
+fun cleft_N : N;
+fun clem_PN : PN;
+fun clematis_N : N;
+fun clemency_N : N;
+fun clement_A : A;
+fun clement_PN : PN;
+fun clench_V2 : V2;
+fun clerestory_N : N;
+fun clergy_N : N;
+fun clergyman_N : N;
+fun cleric_N : N;
+fun clerical_A : A;
+fun clerihew_N : N;
+fun clerk_N : N;
+fun clerk_V : V;
+fun clermont_ferrand_PN : PN;
+fun clevedon_PN : PN;
+fun cleveland_PN : PN;
+fun clever_A : A;
+fun cleverness_N : N;
+fun clew_N : N;
+fun clew_V2 : V2;
+fun cliche_N : N;
+fun click_N : N;
+fun click_V : V;
+fun client_N : N;
+fun clientele_N : N;
+fun cliff_N : N;
+fun cliff_PN : PN;
+fun cliff_hanger_N : N;
+fun clifford_PN : PN;
+fun climacteric_N : N;
+fun climactic_A : A;
+fun climate_N : N;
+fun climatic_A : A;
+fun climatically_Adv : Adv;
+fun climatology_N : N;
+fun climax_N : N;
+fun climax_V : V;
+fun climax_V2 : V2;
+fun climb_N : N;
+fun climb_V : V;
+fun climb_V2 : V2;
+fun climb_down_N : N;
+fun climber_N : N;
+fun clime_N : N;
+fun clinch_N : N;
+fun clinch_V : V;
+fun clinch_V2 : V2;
+fun clincher_N : N;
+fun cling_V : V;
+fun clinic_N : N;
+fun clinical_A : A;
+fun clink_N : N;
+fun clink_V : V;
+fun clink_V2 : V2;
+fun clinker_N : N;
+fun clinker_built_A : A;
+fun clip_N : N;
+fun clip_V2 : V2;
+fun clip_joint_N : N;
+fun clip_on_A : A;
+fun clipper_N : N;
+fun clipping_N : N;
+fun clique_N : N;
+fun cliquish_A : A;
+fun clitheroe_PN : PN;
+fun clitoris_N : N;
+fun clive_PN : PN;
+fun cloak_N : N;
+fun cloak_V2 : V2;
+fun cloakroom_N : N;
+fun clobber_N : N;
+fun clobber_V2 : V2;
+fun cloche_N : N;
+fun clock_N : N;
+fun clock_V : V;
+fun clock_V2 : V2;
+fun clock_dial_N : N;
+fun clock_face_N : N;
+fun clock_golf_N : N;
+fun clock_tower_N : N;
+fun clock_watching_N : N;
+fun clockwise_Adv : Adv;
+fun clockwork_N : N;
+fun clod_N : N;
+fun clodhopper_N : N;
+fun clog_N : N;
+fun clog_V : V;
+fun clog_V2 : V2;
+fun clog_dance_N : N;
+fun cloggy_A : A;
+fun cloisonne_N : N;
+fun cloister_N : N;
+fun cloister_V2 : V2;
+fun clone_N : N;
+fun close_A : A;
+fun close_Adv : Adv;
+fun close_N : N;
+fun close_V : V;
+fun close_V2 : V2;
+fun close_cropped_A : A;
+fun close_cut_A : A;
+fun close_down_N : N;
+fun close_fisted_A : A;
+fun close_fitting_A : A;
+fun close_grained_A : A;
+fun close_hauled_A : A;
+fun close_set_A : A;
+fun close_up_N : N;
+fun closeness_N : N;
+fun closet_A : A;
+fun closet_N : N;
+fun closet_V2 : V2;
+fun closure_N : N;
+fun clot_N : N;
+fun clot_V : V;
+fun clot_V2 : V2;
+fun cloth_N : N;
+fun clothe_V2 : V2;
+fun clothes_basket_N : N;
+fun clothes_hanger_N : N;
+fun clothes_moth_N : N;
+fun clothes_peg_N : N;
+fun clothes_pin_N : N;
+fun clotheshorse_N : N;
+fun clothesline_N : N;
+fun clothier_N : N;
+fun clothing_N : N;
+fun cloud_N : N;
+fun cloud_V : V;
+fun cloud_V2 : V2;
+fun cloud_bank_N : N;
+fun cloud_capped_A : A;
+fun cloud_cuckoo_land_N : N;
+fun cloudburst_N : N;
+fun cloudless_A : A;
+fun cloudy_A : A;
+fun clout_N : N;
+fun clout_V2 : V2;
+fun clove_N : N;
+fun clove_hitch_N : N;
+fun clover_N : N;
+fun cloverleaf_N : N;
+fun clown_N : N;
+fun clown_V : V;
+fun clowne_PN : PN;
+fun clownish_A : A;
+fun cloy_V : V;
+fun cloy_V2 : V2;
+fun club_N : N;
+fun club_V : V;
+fun club_V2 : V2;
+fun club_footed_A : A;
+fun clubbable_A : A;
+fun clubfoot_N : N;
+fun clubhouse_N : N;
+fun cluck_N : N;
+fun cluck_V : V;
+fun clue_N : N;
+fun clump_N : N;
+fun clump_V : V;
+fun clump_V2 : V2;
+fun clumsily_Adv : Adv;
+fun clumsiness_N : N;
+fun clumsy_A : A;
+fun clunk_N : N;
+fun clunk_V : V;
+fun cluster_N : N;
+fun cluster_V : V;
+fun clutch_N : N;
+fun clutch_V : V;
+fun clutch_V2 : V2;
+fun clutter_N : N;
+fun clutter_V2 : V2;
+fun clwyd_PN : PN;
+fun clydach_PN : PN;
+fun clydebank_PN : PN;
+fun cm_N : N;
+fun co_N : N;
+fun co_ed_N : N;
+fun co_op_N : N;
+fun co_opt_V2 : V2;
+fun co_respondent_N : N;
+fun co_star_N : N;
+fun co_star_V : V;
+fun co_star_V2 : V2;
+fun coach_N : N;
+fun coach_V : V;
+fun coach_V2 : V2;
+fun coach_builder_N : N;
+fun coachman_N : N;
+fun coagulate_V : V;
+fun coagulate_V2 : V2;
+fun coagulation_N : N;
+fun coal_N : N;
+fun coal_V : V;
+fun coal_V2 : V2;
+fun coal_gas_N : N;
+fun coal_hole_N : N;
+fun coal_house_N : N;
+fun coal_scuttle_N : N;
+fun coal_seam_N : N;
+fun coal_tar_N : N;
+fun coalesce_V : V;
+fun coalescence_N : N;
+fun coalface_N : N;
+fun coalfield_N : N;
+fun coaling_station_N : N;
+fun coalition_N : N;
+fun coalman_N : N;
+fun coalmine_N : N;
+fun coalpit_N : N;
+fun coalville_PN : PN;
+fun coaming_N : N;
+fun coarse_A : A;
+fun coarsen_V : V;
+fun coarsen_V2 : V2;
+fun coarseness_N : N;
+fun coast_N : N;
+fun coast_V : V;
+fun coast_V2 : V2;
+fun coastal_A : A;
+fun coaster_N : N;
+fun coastguard_N : N;
+fun coastline_N : N;
+fun coastwise_A : A;
+fun coastwise_Adv : Adv;
+fun coat_N : N;
+fun coat_V2 : V2;
+fun coat_hanger_N : N;
+fun coatbridge_PN : PN;
+fun coatee_N : N;
+fun coating_N : N;
+fun coax_V : V;
+fun coax_V2 : V2;
+fun coaxing_N : N;
+fun coaxingly_Adv : Adv;
+fun cob_N : N;
+fun cob_nut_N : N;
+fun cobalt_N : N;
+fun cobber_N : N;
+fun cobble_N : N;
+fun cobble_V2 : V2;
+fun cobbler_N : N;
+fun cobblestone_N : N;
+fun cobham_PN : PN;
+fun cobra_N : N;
+fun cobweb_N : N;
+fun coca_cola_N : N;
+fun cocaine_N : N;
+fun cochineal_N : N;
+fun cochlea_N : N;
+fun cock_N : N;
+fun cock_V2 : V2;
+fun cock_a_doodle_doo_N : N;
+fun cock_a_hoop_A : A;
+fun cock_a_hoop_Adv : Adv;
+fun cock_crow_N : N;
+fun cockade_N : N;
+fun cockatoo_N : N;
+fun cockchafer_N : N;
+fun cocker_N : N;
+fun cockerel_N : N;
+fun cockermouth_PN : PN;
+fun cockeyed_A : A;
+fun cockfighting_N : N;
+fun cockhorse_N : N;
+fun cockle_N : N;
+fun cockleshell_N : N;
+fun cockney_A : A;
+fun cockney_N : N;
+fun cockpit_N : N;
+fun cockroach_N : N;
+fun cockscomb_N : N;
+fun cocksure_A : A;
+fun cocktail_N : N;
+fun cockup_N : N;
+fun cocky_A : A;
+fun coco_N : N;
+fun cocoa_N : N;
+fun coconut_N : N;
+fun cocoon_N : N;
+fun cocoon_V2 : V2;
+fun cocotte_N : N;
+fun cod_N : N;
+fun cod_PN : PN;
+fun cod_V : V;
+fun cod_V2 : V2;
+fun cod_liver_oil_N : N;
+fun coda_N : N;
+fun coddle_V2 : V2;
+fun code_N : N;
+fun code_V2 : V2;
+fun codeine_N : N;
+fun codex_N : N;
+fun codfish_N : N;
+fun codger_N : N;
+fun codicil_N : N;
+fun codification_N : N;
+fun codify_V2 : V2;
+fun codling_N : N;
+fun codpiece_N : N;
+fun codsall_PN : PN;
+fun coeducation_N : N;
+fun coeducational_A : A;
+fun coefficient_N : N;
+fun coerce_V2 : V2;
+fun coercion_N : N;
+fun coercive_A : A;
+fun coeval_A : A;
+fun coeval_N : N;
+fun coexist_V : V;
+fun coexistence_N : N;
+fun coffee_N : N;
+fun coffee_house_N : N;
+fun coffee_mill_N : N;
+fun coffee_stall_N : N;
+fun coffer_N : N;
+fun coffer_dam_N : N;
+fun coffin_N : N;
+fun cog_N : N;
+fun cogency_N : N;
+fun cogent_A : A;
+fun cogitate_V : V;
+fun cogitate_V2 : V2;
+fun cogitation_N : N;
+fun cognac_N : N;
+fun cognate_A : A;
+fun cognate_N : N;
+fun cognition_N : N;
+fun cognizance_N : N;
+fun cognizant_A : A;
+fun cognomen_N : N;
+fun cogwheel_N : N;
+fun cohabit_V : V;
+fun cohabitation_N : N;
+fun cohere_V : V;
+fun coherence_N : N;
+fun coherency_N : N;
+fun coherent_A : A;
+fun cohesion_N : N;
+fun cohesive_A : A;
+fun cohort_N : N;
+fun coif_N : N;
+fun coiffeur_N : N;
+fun coiffure_N : N;
+fun coign_N : N;
+fun coil_N : N;
+fun coil_V : V;
+fun coil_V2 : V2;
+fun coimbatore_PN : PN;
+fun coin_N : N;
+fun coin_V2 : V2;
+fun coinage_N : N;
+fun coincide_V : V;
+fun coincidence_N : N;
+fun coincident_A : A;
+fun coincidental_A : A;
+fun coiner_N : N;
+fun coir_N : N;
+fun coition_N : N;
+fun coitus_N : N;
+fun coke_N : N;
+fun coke_V2 : V2;
+fun col_N : N;
+fun col_PN : PN;
+fun cola_N : N;
+fun colander_N : N;
+fun colchester_PN : PN;
+fun cold_A : A;
+fun cold_N : N;
+fun cold_blooded_A : A;
+fun cold_hearted_A : A;
+fun cold_shoulder_V2 : V2;
+fun coldness_N : N;
+fun coleshill_PN : PN;
+fun coleslaw_N : N;
+fun colic_N : N;
+fun colin_PN : PN;
+fun colitis_N : N;
+fun coll_PN : PN;
+fun collaborate_V : V;
+fun collaboration_N : N;
+fun collaborationist_N : N;
+fun collaborator_N : N;
+fun collage_N : N;
+fun collapsable_A : A;
+fun collapse_N : N;
+fun collapse_V : V;
+fun collapsible_A : A;
+fun collar_N : N;
+fun collar_V2 : V2;
+fun collarbone_N : N;
+fun collate_V2 : V2;
+fun collateral_A : A;
+fun collateral_N : N;
+fun collation_N : N;
+fun colleague_N : N;
+fun collect_A : A;
+fun collect_Adv : Adv;
+fun collect_N : N;
+fun collect_V : V;
+fun collect_V2 : V2;
+fun collected_A : A;
+fun collection_N : N;
+fun collective_A : A;
+fun collectivization_N : N;
+fun collectivize_V2 : V2;
+fun collector_N : N;
+fun colleen_N : N;
+fun college_N : N;
+fun collegiate_A : A;
+fun collide_V : V;
+fun collie_N : N;
+fun collier_N : N;
+fun colliery_N : N;
+fun collision_N : N;
+fun collocate_V : V;
+fun collocation_N : N;
+fun colloquial_A : A;
+fun colloquialism_N : N;
+fun colloquy_N : N;
+fun collusion_N : N;
+fun collusive_A : A;
+fun colne_PN : PN;
+fun cologne_PN : PN;
+fun colombia_PN : PN;
+fun colombian_A : A;
+fun colombian_N : N;
+fun colombo_PN : PN;
+fun colon_N : N;
+fun colonel_N : N;
+fun colonial_A : A;
+fun colonial_N : N;
+fun colonialism_N : N;
+fun colonialist_N : N;
+fun colonist_N : N;
+fun colonization_N : N;
+fun colonize_V2 : V2;
+fun colonizer_N : N;
+fun colonnade_N : N;
+fun colonnaded_A : A;
+fun colony_N : N;
+fun colorado_PN : PN;
+fun coloratura_N : N;
+fun colossal_A : A;
+fun colossus_N : N;
+fun colour_N : N;
+fun colour_V : V;
+fun colour_V2 : V2;
+fun colour_bar_N : N;
+fun colour_blind_A : A;
+fun colour_wash_N : N;
+fun coloured_A : A;
+fun colourful_A : A;
+fun colouring_N : N;
+fun colourless_A : A;
+fun colt_N : N;
+fun coltish_A : A;
+fun columbia_PN : PN;
+fun columbine_N : N;
+fun columbus_PN : PN;
+fun column_N : N;
+fun columnist_N : N;
+fun colwyn_bay_PN : PN;
+fun coma_N : N;
+fun comatose_A : A;
+fun comb_N : N;
+fun comb_V : V;
+fun comb_V2 : V2;
+fun comb_out_N : N;
+fun combat_N : N;
+fun combat_V : V;
+fun combat_V2 : V2;
+fun combatant_A : A;
+fun combatant_N : N;
+fun combative_A : A;
+fun combination_N : N;
+fun combination_lock_N : N;
+fun combine_N : N;
+fun combine_V : V;
+fun combine_V2 : V2;
+fun combustible_A : A;
+fun combustible_N : N;
+fun combustion_N : N;
+fun come_V : V;
+fun come_at_able_A : A;
+fun come_on_N : N;
+fun comeback_N : N;
+fun comedian_N : N;
+fun comedienne_N : N;
+fun comedown_N : N;
+fun comedy_N : N;
+fun comeliness_N : N;
+fun comely_A : A;
+fun comer_N : N;
+fun comestible_N : N;
+fun comet_N : N;
+fun comfit_N : N;
+fun comfort_N : N;
+fun comfort_V2 : V2;
+fun comfortable_A : A;
+fun comforter_N : N;
+fun comfortingly_Adv : Adv;
+fun comfortless_A : A;
+fun comfrey_N : N;
+fun comfy_A : A;
+fun comic_A : A;
+fun comic_N : N;
+fun comical_A : A;
+fun coming_A : A;
+fun coming_N : N;
+fun comity_N : N;
+fun comma_N : N;
+fun command_N : N;
+fun command_V : V;
+fun command_V2 : V2;
+fun commandant_N : N;
+fun commandeer_V2 : V2;
+fun commander_N : N;
+fun commanding_A : A;
+fun commandment_N : N;
+fun commando_N : N;
+fun commemorate_V2 : V2;
+fun commemoration_N : N;
+fun commemorative_A : A;
+fun commence_V : V;
+fun commence_V2 : V2;
+fun commencement_N : N;
+fun commend_V2 : V2;
+fun commendable_A : A;
+fun commendation_N : N;
+fun commensurable_A : A;
+fun commensurate_A : A;
+fun comment_N : N;
+fun comment_V : V;
+fun commentary_N : N;
+fun commentate_V : V;
+fun commentator_N : N;
+fun commerce_N : N;
+fun commercial_A : A;
+fun commercial_N : N;
+fun commercialism_N : N;
+fun commercialize_V2 : V2;
+fun commination_N : N;
+fun comminatory_A : A;
+fun commingle_V : V;
+fun commingle_V2 : V2;
+fun commiserate_V : V;
+fun commiseration_N : N;
+fun commissar_N : N;
+fun commissariat_N : N;
+fun commissary_N : N;
+fun commission_N : N;
+fun commission_V2 : V2;
+fun commissionaire_N : N;
+fun commissioned_A : A;
+fun commissioner_N : N;
+fun commit_V2 : V2;
+fun commital_N : N;
+fun commitment_N : N;
+fun committee_N : N;
+fun commode_N : N;
+fun commodious_A : A;
+fun commodity_N : N;
+fun commodore_N : N;
+fun common_A : A;
+fun common_N : N;
+fun common_room_N : N;
+fun commonalty_N : N;
+fun commoner_N : N;
+fun commonplace_A : A;
+fun commonplace_N : N;
+fun commonwealth_N : N;
+fun commotion_N : N;
+fun communal_A : A;
+fun commune_N : N;
+fun commune_V : V;
+fun communicable_A : A;
+fun communicant_N : N;
+fun communicate_V : V;
+fun communicate_V2 : V2;
+fun communication_N : N;
+fun communicative_A : A;
+fun communion_N : N;
+fun communique_N : N;
+fun communism_N : N;
+fun communist_A : A;
+fun communist_N : N;
+fun community_N : N;
+fun commutable_A : A;
+fun commutation_N : N;
+fun commutator_N : N;
+fun commute_V : V;
+fun commute_V2 : V2;
+fun commuter_N : N;
+fun compact_A : A;
+fun compact_N : N;
+fun compact_V2 : V2;
+fun compactness_N : N;
+fun companion_N : N;
+fun companionable_A : A;
+fun companionship_N : N;
+fun companionway_N : N;
+fun company_N : N;
+fun comparability_N : N;
+fun comparable_A : A;
+fun comparative_A : A;
+fun comparative_N : N;
+fun compare_N : N;
+fun compare_V : V;
+fun compare_V2 : V2;
+fun comparison_N : N;
+fun compartment_N : N;
+fun compartmentalize_V2 : V2;
+fun compass_N : N;
+fun compass_V2 : V2;
+fun compassion_N : N;
+fun compassionate_A : A;
+fun compatibility_N : N;
+fun compatible_A : A;
+fun compatriot_N : N;
+fun compeer_N : N;
+fun compel_V2 : V2;
+fun compendious_A : A;
+fun compendium_N : N;
+fun compensate_V : V;
+fun compensate_V2 : V2;
+fun compensation_N : N;
+fun compensatory_A : A;
+fun compete_V : V;
+fun competence_N : N;
+fun competent_A : A;
+fun competition_N : N;
+fun competitive_A : A;
+fun competitiveness_N : N;
+fun competitor_N : N;
+fun compilation_N : N;
+fun compile_V2 : V2;
+fun compiler_N : N;
+fun complacence_N : N;
+fun complacency_N : N;
+fun complacent_A : A;
+fun complain_V : V;
+fun complainant_N : N;
+fun complainingly_Adv : Adv;
+fun complaint_N : N;
+fun complaisance_N : N;
+fun complaisant_A : A;
+fun complement_N : N;
+fun complement_V2 : V2;
+fun complementary_A : A;
+fun complete_A : A;
+fun complete_V2 : V2;
+fun completeness_N : N;
+fun completion_N : N;
+fun complex_A : A;
+fun complex_N : N;
+fun complexion_N : N;
+fun complexity_N : N;
+fun compliance_N : N;
+fun compliant_A : A;
+fun complicate_V2 : V2;
+fun complicated_A : A;
+fun complication_N : N;
+fun complicity_N : N;
+fun compliment_N : N;
+fun compliment_V2 : V2;
+fun complimentary_A : A;
+fun complin_N : N;
+fun compline_N : N;
+fun comply_V2 : V2;
+fun component_A : A;
+fun component_N : N;
+fun comport_V : V;
+fun comport_V2 : V2;
+fun comportment_N : N;
+fun compos_mentis_A : A;
+fun compose_V : V;
+fun compose_V2 : V2;
+fun composed_A : A;
+fun composer_N : N;
+fun composite_A : A;
+fun composition_N : N;
+fun compositor_N : N;
+fun compost_N : N;
+fun compost_V2 : V2;
+fun composure_N : N;
+fun compote_N : N;
+fun compound_A : A;
+fun compound_N : N;
+fun compound_V : V;
+fun compound_V2 : V2;
+fun comprehend_V2 : V2;
+fun comprehensibility_N : N;
+fun comprehensible_A : A;
+fun comprehension_N : N;
+fun comprehensive_A : A;
+fun comprehensiveness_N : N;
+fun compress_N : N;
+fun compress_V2 : V2;
+fun compression_N : N;
+fun compressor_N : N;
+fun comprise_V2 : V2;
+fun compromise_N : N;
+fun compromise_V : V;
+fun compromise_V2 : V2;
+fun comptroller_N : N;
+fun compulsion_N : N;
+fun compulsive_A : A;
+fun compulsory_A : A;
+fun compunction_N : N;
+fun computation_N : N;
+fun computational_A : A;
+fun compute_V : V;
+fun compute_V2 : V2;
+fun computer_N : N;
+fun computerize_V2 : V2;
+fun compere_N : N;
+fun compere_V2 : V2;
+fun comrade_N : N;
+fun comradely_Adv : Adv;
+fun comradeship_N : N;
+fun con_Adv : Adv;
+fun con_N : N;
+fun con_V2 : V2;
+fun con_man_N : N;
+fun concatenation_N : N;
+fun concave_A : A;
+fun concavity_N : N;
+fun conceal_V2 : V2;
+fun concealment_N : N;
+fun concede_V2 : V2;
+fun conceit_N : N;
+fun conceited_A : A;
+fun conceivable_A : A;
+fun conceive_V : V;
+fun conceive_V2 : V2;
+fun concentrate_N : N;
+fun concentrate_V : V;
+fun concentrate_V2 : V2;
+fun concentrated_A : A;
+fun concentration_N : N;
+fun concentric_A : A;
+fun concept_N : N;
+fun conception_N : N;
+fun conceptual_A : A;
+fun concern_N : N;
+fun concern_V2 : V2;
+fun concerned_A : A;
+fun concert_N : N;
+fun concert_V2 : V2;
+fun concert_hall_N : N;
+fun concerted_A : A;
+fun concertina_N : N;
+fun concerto_N : N;
+fun concession_N : N;
+fun concessionaire_N : N;
+fun concessive_A : A;
+fun conch_N : N;
+fun conchology_N : N;
+fun concierge_N : N;
+fun conciliate_V2 : V2;
+fun conciliation_N : N;
+fun conciliatory_A : A;
+fun concise_A : A;
+fun conciseness_N : N;
+fun conclave_N : N;
+fun conclude_V : V;
+fun conclude_V2 : V2;
+fun conclusion_N : N;
+fun conclusive_A : A;
+fun concoct_V2 : V2;
+fun concoction_N : N;
+fun concomitant_A : A;
+fun concomitant_N : N;
+fun concord_N : N;
+fun concordance_N : N;
+fun concordant_A : A;
+fun concordat_N : N;
+fun concourse_N : N;
+fun concrete_A : A;
+fun concrete_N : N;
+fun concrete_V : V;
+fun concrete_V2 : V2;
+fun concretion_N : N;
+fun concubine_N : N;
+fun concupiscence_N : N;
+fun concur_V : V;
+fun concurrence_N : N;
+fun concurrent_A : A;
+fun concuss_V2 : V2;
+fun concussion_N : N;
+fun condemn_V2 : V2;
+fun condemnation_N : N;
+fun condensation_N : N;
+fun condense_V : V;
+fun condense_V2 : V2;
+fun condenser_N : N;
+fun condescend_V : V;
+fun condescending_A : A;
+fun condescension_N : N;
+fun condign_A : A;
+fun condiment_N : N;
+fun condition_N : N;
+fun condition_V2 : V2;
+fun conditional_A : A;
+fun conditioned_A : A;
+fun conditioner_N : N;
+fun condole_V : V;
+fun condolence_N : N;
+fun condominium_N : N;
+fun condonation_N : N;
+fun condone_V2 : V2;
+fun condor_N : N;
+fun conduce_V : V;
+fun conducive_A : A;
+fun conduct_N : N;
+fun conduct_V : V;
+fun conduct_V2 : V2;
+fun conduction_N : N;
+fun conductive_A : A;
+fun conductivity_N : N;
+fun conductor_N : N;
+fun conductress_N : N;
+fun conduit_N : N;
+fun cone_N : N;
+fun cone_V2 : V2;
+fun coney_N : N;
+fun confab_N : N;
+fun confab_V : V;
+fun confabulate_V : V;
+fun confabulation_N : N;
+fun confection_N : N;
+fun confectioner_N : N;
+fun confectionery_N : N;
+fun confederacy_N : N;
+fun confederate_A : A;
+fun confederate_N : N;
+fun confederate_V : V;
+fun confederate_V2 : V2;
+fun confederation_N : N;
+fun confer_V : V;
+fun confer_V2 : V2;
+fun conference_N : N;
+fun conferment_N : N;
+fun confess_V : V;
+fun confess_V2 : V2;
+fun confessedly_Adv : Adv;
+fun confession_N : N;
+fun confessional_N : N;
+fun confessor_N : N;
+fun confetti_N : N;
+fun confidant_N : N;
+fun confide_V : V;
+fun confide_V2 : V2;
+fun confidence_N : N;
+fun confident_A : A;
+fun confidential_A : A;
+fun confidentiality_N : N;
+fun confiding_A : A;
+fun configuration_N : N;
+fun configure_V2 : V2;
+fun configured_A : A;
+fun confine_V2 : V2;
+fun confined_A : A;
+fun confinement_N : N;
+fun confirm_V2 : V2;
+fun confirmation_N : N;
+fun confirmed_A : A;
+fun confiscate_V2 : V2;
+fun confiscation_N : N;
+fun conflagration_N : N;
+fun conflict_N : N;
+fun conflict_V : V;
+fun conflicting_A : A;
+fun confluence_N : N;
+fun confluent_A : A;
+fun conform_V : V;
+fun conform_V2 : V2;
+fun conformable_A : A;
+fun conformation_N : N;
+fun conformist_N : N;
+fun conformity_N : N;
+fun confound_V2 : V2;
+fun confounded_A : A;
+fun confront_V2 : V2;
+fun confrontation_N : N;
+fun confrere_N : N;
+fun confucian_A : A;
+fun confucian_N : N;
+fun confuse_V2 : V2;
+fun confusedly_Adv : Adv;
+fun confusion_N : N;
+fun confutation_N : N;
+fun confute_V2 : V2;
+fun congeal_V : V;
+fun congeal_V2 : V2;
+fun congenial_A : A;
+fun congenital_A : A;
+fun conger_N : N;
+fun conger_eel_N : N;
+fun congested_A : A;
+fun congestion_N : N;
+fun congleton_PN : PN;
+fun conglomerate_A : A;
+fun conglomerate_N : N;
+fun conglomerate_V : V;
+fun conglomerate_V2 : V2;
+fun conglomeration_N : N;
+fun congo_PN : PN;
+fun congolese_A : A;
+fun congolese_N : N;
+fun congratulate_V2 : V2;
+fun congratulation_N : N;
+fun congratulatory_A : A;
+fun congregate_V : V;
+fun congregate_V2 : V2;
+fun congregation_N : N;
+fun congregational_A : A;
+fun congress_N : N;
+fun congressional_A : A;
+fun congressman_N : N;
+fun congresswoman_N : N;
+fun congruent_A : A;
+fun congruous_A : A;
+fun conge_N : N;
+fun conic_A : A;
+fun conical_A : A;
+fun conifer_N : N;
+fun coniferous_A : A;
+fun conjectural_A : A;
+fun conjecture_N : N;
+fun conjecture_V : V;
+fun conjecture_V2 : V2;
+fun conjoin_V : V;
+fun conjoin_V2 : V2;
+fun conjoint_A : A;
+fun conjugal_A : A;
+fun conjugate_V : V;
+fun conjugate_V2 : V2;
+fun conjugation_N : N;
+fun conjunction_N : N;
+fun conjunctive_A : A;
+fun conjunctive_N : N;
+fun conjuncture_N : N;
+fun conjuration_N : N;
+fun conjure_V : V;
+fun conjure_V2 : V2;
+fun conjurer_N : N;
+fun conjuror_N : N;
+fun conk_N : N;
+fun conk_V : V;
+fun conker_N : N;
+fun connah's_quay_PN : PN;
+fun connaught_PN : PN;
+fun connect_V : V;
+fun connect_V2 : V2;
+fun connecticut_PN : PN;
+fun connection_N : N;
+fun connective_A : A;
+fun connective_N : N;
+fun connexion_N : N;
+fun connie_PN : PN;
+fun conning_A : A;
+fun connivance_N : N;
+fun connive_V : V;
+fun connoisseur_N : N;
+fun connotation_N : N;
+fun connote_V2 : V2;
+fun connubial_A : A;
+fun conquer_V2 : V2;
+fun conqueror_N : N;
+fun conquest_N : N;
+fun conquistador_N : N;
+fun cons_PN : PN;
+fun consanguinity_N : N;
+fun conscience_N : N;
+fun conscience_smitten_A : A;
+fun conscientious_A : A;
+fun conscientiousness_N : N;
+fun conscious_A : A;
+fun consciousness_N : N;
+fun conscript_N : N;
+fun conscript_V2 : V2;
+fun conscription_N : N;
+fun consecrate_V2 : V2;
+fun consecration_N : N;
+fun consecutive_A : A;
+fun consensus_N : N;
+fun consent_N : N;
+fun consent_V : V;
+fun consequence_N : N;
+fun consequent_A : A;
+fun consequential_A : A;
+fun conservancy_N : N;
+fun conservation_N : N;
+fun conservatism_N : N;
+fun conservative_A : A;
+fun conservative_N : N;
+fun conservatoire_N : N;
+fun conservatory_N : N;
+fun conserve_N : N;
+fun conserve_V2 : V2;
+fun consett_PN : PN;
+fun consider_V2 : V2;
+fun considerable_A : A;
+fun considerate_A : A;
+fun considerateness_N : N;
+fun consideration_N : N;
+fun consign_V2 : V2;
+fun consignee_N : N;
+fun consigner_N : N;
+fun consignment_N : N;
+fun consignor_N : N;
+fun consist_V : V;
+fun consistence_N : N;
+fun consistency_N : N;
+fun consistent_A : A;
+fun consistory_N : N;
+fun consolable_A : A;
+fun consolation_N : N;
+fun consolatory_A : A;
+fun console_N : N;
+fun console_V2 : V2;
+fun consolidate_V : V;
+fun consolidate_V2 : V2;
+fun consolidation_N : N;
+fun consomme_N : N;
+fun consonance_N : N;
+fun consonant_A : A;
+fun consonant_N : N;
+fun consort_N : N;
+fun consort_V : V;
+fun consortium_N : N;
+fun conspectus_N : N;
+fun conspicuous_A : A;
+fun conspicuousness_N : N;
+fun conspiracy_N : N;
+fun conspirator_N : N;
+fun conspiratorial_A : A;
+fun conspire_V : V;
+fun conspire_V2 : V2;
+fun constable_N : N;
+fun constabulary_N : N;
+fun constance_PN : PN;
+fun constancy_N : N;
+fun constant_A : A;
+fun constant_N : N;
+fun constellation_N : N;
+fun consternation_N : N;
+fun constipate_V2 : V2;
+fun constipated_A : A;
+fun constipation_N : N;
+fun constituency_N : N;
+fun constituent_A : A;
+fun constituent_N : N;
+fun constitute_V2 : V2;
+fun constitution_N : N;
+fun constitutional_A : A;
+fun constitutional_N : N;
+fun constitutionalism_N : N;
+fun constitutionalist_N : N;
+fun constitutionalize_V2 : V2;
+fun constitutive_A : A;
+fun constrain_V2 : V2;
+fun constrained_A : A;
+fun constraint_N : N;
+fun constrict_V2 : V2;
+fun constriction_N : N;
+fun construct_V2 : V2;
+fun construction_N : N;
+fun constructional_A : A;
+fun constructive_A : A;
+fun constructor_N : N;
+fun construe_V : V;
+fun construe_V2 : V2;
+fun consubstantiation_N : N;
+fun consul_N : N;
+fun consular_A : A;
+fun consulate_N : N;
+fun consulship_N : N;
+fun consult_V : V;
+fun consult_V2 : V2;
+fun consultant_N : N;
+fun consultation_N : N;
+fun consultative_A : A;
+fun consume_V : V;
+fun consume_V2 : V2;
+fun consumer_N : N;
+fun consuming_A : A;
+fun consummate_A : A;
+fun consummate_V2 : V2;
+fun consummation_N : N;
+fun consumption_N : N;
+fun consumptive_A : A;
+fun consumptive_N : N;
+fun cont_PN : PN;
+fun contact_N : N;
+fun contact_V2 : V2;
+fun contagion_N : N;
+fun contagious_A : A;
+fun contain_V2 : V2;
+fun container_N : N;
+fun containment_N : N;
+fun contaminant_N : N;
+fun contaminate_V2 : V2;
+fun contamination_N : N;
+fun contemn_V2 : V2;
+fun contemplate_V : V;
+fun contemplate_V2 : V2;
+fun contemplation_N : N;
+fun contemplative_A : A;
+fun contemporaneous_A : A;
+fun contemporary_A : A;
+fun contemporary_N : N;
+fun contempt_N : N;
+fun contemptible_A : A;
+fun contemptuous_A : A;
+fun contend_V : V;
+fun contend_V2 : V2;
+fun contender_N : N;
+fun content_A : A;
+fun content_N : N;
+fun content_V2 : V2;
+fun contented_A : A;
+fun contention_N : N;
+fun contentious_A : A;
+fun contentment_N : N;
+fun conterminous_A : A;
+fun contest_N : N;
+fun contest_V : V;
+fun contest_V2 : V2;
+fun contestant_N : N;
+fun context_N : N;
+fun contextual_A : A;
+fun contiguity_N : N;
+fun contiguous_A : A;
+fun continence_N : N;
+fun continent_A : A;
+fun continent_N : N;
+fun continental_A : A;
+fun contingency_N : N;
+fun contingent_A : A;
+fun contingent_N : N;
+fun continual_A : A;
+fun continuance_N : N;
+fun continuation_N : N;
+fun continue_V : V;
+fun continue_V2 : V2;
+fun continuity_N : N;
+fun continuous_A : A;
+fun contort_V2 : V2;
+fun contortion_N : N;
+fun contortionist_N : N;
+fun contour_N : N;
+fun contour_V2 : V2;
+fun contraband_N : N;
+fun contrabass_N : N;
+fun contraception_N : N;
+fun contraceptive_A : A;
+fun contraceptive_N : N;
+fun contract_N : N;
+fun contract_V : V;
+fun contract_V2 : V2;
+fun contractible_A : A;
+fun contractile_A : A;
+fun contraction_N : N;
+fun contractor_N : N;
+fun contractual_A : A;
+fun contradict_V2 : V2;
+fun contradiction_N : N;
+fun contradictory_A : A;
+fun contradistinction_N : N;
+fun contradistinguish_V2 : V2;
+fun contralto_N : N;
+fun contraption_N : N;
+fun contrapuntal_A : A;
+fun contrariety_N : N;
+fun contrariness_N : N;
+fun contrariwise_Adv : Adv;
+fun contrary_A : A;
+fun contrary_N : N;
+fun contrast_N : N;
+fun contrast_V : V;
+fun contrast_V2 : V2;
+fun contrastingly_Adv : Adv;
+fun contravene_V2 : V2;
+fun contravention_N : N;
+fun contretemps_N : N;
+fun contribute_V : V;
+fun contribute_V2 : V2;
+fun contribution_N : N;
+fun contributor_N : N;
+fun contributory_A : A;
+fun contrite_A : A;
+fun contrition_N : N;
+fun contrivance_N : N;
+fun contrive_V : V;
+fun contrive_V2 : V2;
+fun contriver_N : N;
+fun control_N : N;
+fun control_V2 : V2;
+fun controllable_A : A;
+fun controller_N : N;
+fun controversial_A : A;
+fun controversialist_N : N;
+fun controversy_N : N;
+fun controvert_V2 : V2;
+fun contumacious_A : A;
+fun contumacy_N : N;
+fun contumelious_A : A;
+fun contumely_N : N;
+fun contuse_V2 : V2;
+fun contusion_N : N;
+fun conundrum_N : N;
+fun conurbation_N : N;
+fun convalesce_V : V;
+fun convalescence_N : N;
+fun convalescent_A : A;
+fun convalescent_N : N;
+fun convection_N : N;
+fun convector_N : N;
+fun convene_V : V;
+fun convene_V2 : V2;
+fun convener_N : N;
+fun convenience_N : N;
+fun convenient_A : A;
+fun convent_N : N;
+fun conventicle_N : N;
+fun convention_N : N;
+fun conventional_A : A;
+fun conventionality_N : N;
+fun converge_V : V;
+fun convergence_N : N;
+fun convergent_A : A;
+fun conversant_A : A;
+fun conversation_N : N;
+fun conversational_A : A;
+fun conversationalist_N : N;
+fun converse_A : A;
+fun converse_N : N;
+fun converse_V : V;
+fun conversion_N : N;
+fun convert_N : N;
+fun convert_V2 : V2;
+fun converted_A : A;
+fun converter_N : N;
+fun convertibility_N : N;
+fun convertible_A : A;
+fun convertible_N : N;
+fun convex_A : A;
+fun convexity_N : N;
+fun convey_V2 : V2;
+fun conveyance_N : N;
+fun conveyancer_N : N;
+fun conveyer_N : N;
+fun conveyer_belt_N : N;
+fun conveyor_N : N;
+fun convict_N : N;
+fun convict_V2 : V2;
+fun conviction_N : N;
+fun convince_V2 : V2;
+fun convincible_A : A;
+fun convincing_A : A;
+fun convivial_A : A;
+fun conviviality_N : N;
+fun convocation_N : N;
+fun convoke_V2 : V2;
+fun convoluted_A : A;
+fun convolution_N : N;
+fun convolvulus_N : N;
+fun convoy_N : N;
+fun convoy_V2 : V2;
+fun convulse_V2 : V2;
+fun convulsion_N : N;
+fun convulsive_A : A;
+fun conwy_PN : PN;
+fun cony_N : N;
+fun coo_N : N;
+fun coo_V : V;
+fun coo_V2 : V2;
+fun cook_N : N;
+fun cook_V : V;
+fun cook_V2 : V2;
+fun cookbook_N : N;
+fun cooker_N : N;
+fun cookery_N : N;
+fun cookery_book_N : N;
+fun cookham_PN : PN;
+fun cookhouse_N : N;
+fun cookie_N : N;
+fun cooking_N : N;
+fun cooky_N : N;
+fun cool_A : A;
+fun cool_N : N;
+fun cool_V : V;
+fun cool_V2 : V2;
+fun cool_headed_A : A;
+fun coolant_N : N;
+fun cooler_N : N;
+fun coolie_N : N;
+fun cooling_tower_N : N;
+fun coolness_N : N;
+fun coon_N : N;
+fun coop_N : N;
+fun coop_V2 : V2;
+fun cooper_N : N;
+fun cooperate_V : V;
+fun cooperation_N : N;
+fun cooperative_A : A;
+fun cooperative_N : N;
+fun cooperator_N : N;
+fun coordinate_A : A;
+fun coordinate_N : N;
+fun coordinate_V2 : V2;
+fun coordination_N : N;
+fun coordinator_N : N;
+fun coot_N : N;
+fun cop_N : N;
+fun cop_V : V;
+fun cop_V2 : V2;
+fun cop_out_N : N;
+fun copartner_N : N;
+fun copartnership_N : N;
+fun cope_N : N;
+fun cope_V : V;
+fun copeck_N : N;
+fun copenhagen_PN : PN;
+fun copernican_A : A;
+fun coping_N : N;
+fun coping_stone_N : N;
+fun copious_A : A;
+fun copper_N : N;
+fun copper_V2 : V2;
+fun copper_bottom_V2 : V2;
+fun copper_bottomed_A : A;
+fun copperhead_N : N;
+fun copperplate_N : N;
+fun coppersmith_N : N;
+fun coppice_N : N;
+fun coppull_PN : PN;
+fun copra_N : N;
+fun copse_N : N;
+fun copt_A : A;
+fun copt_N : N;
+fun coptic_N : N;
+fun copula_N : N;
+fun copulate_V : V;
+fun copulation_N : N;
+fun copulative_A : A;
+fun copulative_N : N;
+fun copy_N : N;
+fun copy_V : V;
+fun copy_V2 : V2;
+fun copybook_N : N;
+fun copycat_N : N;
+fun copyhold_N : N;
+fun copyholder_N : N;
+fun copyist_N : N;
+fun copyright_N : N;
+fun copyright_V2 : V2;
+fun copywriter_N : N;
+fun coquetry_N : N;
+fun coquette_N : N;
+fun coquettish_A : A;
+fun cor_anglais_N : N;
+fun coracle_N : N;
+fun coral_A : A;
+fun coral_N : N;
+fun coral_reef_N : N;
+fun corbel_N : N;
+fun corby_PN : PN;
+fun cord_N : N;
+fun cord_V2 : V2;
+fun cordage_N : N;
+fun cordial_A : A;
+fun cordial_N : N;
+fun cordiality_N : N;
+fun cordite_N : N;
+fun cordoba_PN : PN;
+fun cordon_N : N;
+fun cordon_V2 : V2;
+fun cordon_bleu_A : A;
+fun corduroy_N : N;
+fun core_N : N;
+fun core_V2 : V2;
+fun coreligionist_N : N;
+fun corgi_N : N;
+fun corinthian_A : A;
+fun corinthian_N : N;
+fun cork_N : N;
+fun cork_PN : PN;
+fun cork_V2 : V2;
+fun corkage_N : N;
+fun corked_A : A;
+fun corker_N : N;
+fun corkscrew_N : N;
+fun corm_N : N;
+fun cormorant_N : N;
+fun corn_N : N;
+fun corn_V2 : V2;
+fun corn_exchange_N : N;
+fun corncob_N : N;
+fun corncrake_N : N;
+fun cornea_N : N;
+fun cornelian_N : N;
+fun corner_N : N;
+fun corner_V : V;
+fun corner_V2 : V2;
+fun corner_kick_N : N;
+fun cornered_A : A;
+fun cornerstone_N : N;
+fun cornet_N : N;
+fun cornflake_N : N;
+fun cornflour_N : N;
+fun cornflower_N : N;
+fun cornice_N : N;
+fun cornpone_N : N;
+fun cornstarch_N : N;
+fun cornucopia_N : N;
+fun cornwall_PN : PN;
+fun corny_A : A;
+fun corolla_N : N;
+fun corollary_N : N;
+fun corona_N : N;
+fun coronary_A : A;
+fun coronary_N : N;
+fun coronation_N : N;
+fun coroner_N : N;
+fun coronet_N : N;
+fun corp_PN : PN;
+fun corporal_A : A;
+fun corporal_N : N;
+fun corporate_A : A;
+fun corporation_N : N;
+fun corporeal_A : A;
+fun corps_N : N;
+fun corps_de_ballet_N : N;
+fun corps_diplomatique_N : N;
+fun corpse_N : N;
+fun corpulence_N : N;
+fun corpulent_A : A;
+fun corpus_N : N;
+fun corpuscle_N : N;
+fun corral_N : N;
+fun corral_V2 : V2;
+fun correct_A : A;
+fun correct_V2 : V2;
+fun correction_N : N;
+fun correctitude_N : N;
+fun corrective_A : A;
+fun corrective_N : N;
+fun correctness_N : N;
+fun correlate_V : V;
+fun correlate_V2 : V2;
+fun correlation_N : N;
+fun correlative_A : A;
+fun correlative_N : N;
+fun correspond_V : V;
+fun correspondence_N : N;
+fun correspondent_N : N;
+fun corresponding_A : A;
+fun corridor_N : N;
+fun corrie_N : N;
+fun corrigendum_N : N;
+fun corrigible_A : A;
+fun corroborate_V2 : V2;
+fun corroboration_N : N;
+fun corroborative_A : A;
+fun corrode_V : V;
+fun corrode_V2 : V2;
+fun corrosion_N : N;
+fun corrosive_A : A;
+fun corrosive_N : N;
+fun corrugate_V : V;
+fun corrugate_V2 : V2;
+fun corrugation_N : N;
+fun corrupt_A : A;
+fun corrupt_V : V;
+fun corrupt_V2 : V2;
+fun corruptibility_N : N;
+fun corruptible_A : A;
+fun corruption_N : N;
+fun corruptness_N : N;
+fun corsage_N : N;
+fun corsair_N : N;
+fun corse_N : N;
+fun corselet_N : N;
+fun corset_N : N;
+fun corsham_PN : PN;
+fun corslet_N : N;
+fun cortege_1_N : N;
+fun cortex_N : N;
+fun cortical_A : A;
+fun cortisone_N : N;
+fun cortege_2_N : N;
+fun corundum_N : N;
+fun corunna_PN : PN;
+fun coruscate_V : V;
+fun coruscation_N : N;
+fun corvette_N : N;
+fun corvee_N : N;
+fun cos_N : N;
+fun cosenza_PN : PN;
+fun cosh_N : N;
+fun cosh_V2 : V2;
+fun cosher_A : A;
+fun cosignatory_A : A;
+fun cosignatory_N : N;
+fun cosily_Adv : Adv;
+fun cosine_N : N;
+fun cosiness_N : N;
+fun cosmetic_A : A;
+fun cosmetic_N : N;
+fun cosmetician_N : N;
+fun cosmic_A : A;
+fun cosmogony_N : N;
+fun cosmonaut_N : N;
+fun cosmopolitan_A : A;
+fun cosmopolitan_N : N;
+fun cosmos_N : N;
+fun cosset_V2 : V2;
+fun cost_N : N;
+fun cost_V : V;
+fun cost_V2 : V2;
+fun costa_rica_PN : PN;
+fun costa_rican_A : A;
+fun costa_rican_N : N;
+fun costermonger_N : N;
+fun costing_N : N;
+fun costive_A : A;
+fun costliness_N : N;
+fun costly_A : A;
+fun costume_N : N;
+fun costumier_N : N;
+fun cosy_A : A;
+fun cosy_N : N;
+fun cot_N : N;
+fun cote_N : N;
+fun cotenant_N : N;
+fun coterie_N : N;
+fun coterminous_A : A;
+fun cotilion_N : N;
+fun cotillion_N : N;
+fun cottage_N : N;
+fun cottar_N : N;
+fun cotter_N : N;
+fun cotton_N : N;
+fun cotton_V : V;
+fun cotton_cake_N : N;
+fun cotton_plant_N : N;
+fun cotton_wool_N : N;
+fun cottontail_N : N;
+fun cotyledon_N : N;
+fun couch_N : N;
+fun couch_V : V;
+fun couch_V2 : V2;
+fun couch_grass_N : N;
+fun couchant_A : A;
+fun couchette_N : N;
+fun cougar_N : N;
+fun cough_N : N;
+fun cough_V : V;
+fun cough_V2 : V2;
+fun coulter_N : N;
+fun council_N : N;
+fun council_board_N : N;
+fun council_chamber_N : N;
+fun councillor_N : N;
+fun counsel_N : N;
+fun counsel_V2 : V2;
+fun counsellor_N : N;
+fun count_N : N;
+fun count_V : V;
+fun count_V2 : V2;
+fun countable_A : A;
+fun countdown_N : N;
+fun countenance_N : N;
+fun countenance_V2 : V2;
+fun counter_Adv : Adv;
+fun counter_N : N;
+fun counter_V : V;
+fun counter_V2 : V2;
+fun counter_example_N : N;
+fun counter_revolution_N : N;
+fun counter_revolutionary_A : A;
+fun counter_revolutionary_N : N;
+fun counteract_V2 : V2;
+fun counteraction_N : N;
+fun counterattack_N : N;
+fun counterattack_V : V;
+fun counterattack_V2 : V2;
+fun counterattraction_N : N;
+fun counterbalance_N : N;
+fun counterbalance_V2 : V2;
+fun counterblast_N : N;
+fun counterclaim_N : N;
+fun counterclockwise_Adv : Adv;
+fun counterespionage_N : N;
+fun counterfeit_A : A;
+fun counterfeit_N : N;
+fun counterfeit_V2 : V2;
+fun counterfeiter_N : N;
+fun counterfoil_N : N;
+fun counterintelligence_N : N;
+fun counterirritant_N : N;
+fun countermand_V2 : V2;
+fun countermine_N : N;
+fun countermine_V : V;
+fun countermine_V2 : V2;
+fun counteroffer_N : N;
+fun counterpane_N : N;
+fun counterpart_N : N;
+fun counterplot_N : N;
+fun counterplot_V : V;
+fun counterplot_V2 : V2;
+fun counterpoint_N : N;
+fun counterpoise_N : N;
+fun counterpoise_V2 : V2;
+fun countersign_N : N;
+fun countersign_V2 : V2;
+fun countersink_V2 : V2;
+fun countertenor_N : N;
+fun countervail_V : V;
+fun countervail_V2 : V2;
+fun countess_N : N;
+fun counting_house_N : N;
+fun countless_A : A;
+fun countrified_A : A;
+fun country_N : N;
+fun country_house_N : N;
+fun country_seat_N : N;
+fun countryman_N : N;
+fun countryside_N : N;
+fun countrywoman_N : N;
+fun county_N : N;
+fun coup_N : N;
+fun coup_d'etat_N : N;
+fun coup_de_grace_N : N;
+fun couple_N : N;
+fun couple_V : V;
+fun couple_V2 : V2;
+fun couplet_N : N;
+fun coupling_N : N;
+fun coupon_N : N;
+fun coupe_N : N;
+fun courage_N : N;
+fun courageous_A : A;
+fun courgette_N : N;
+fun courier_N : N;
+fun course_N : N;
+fun course_V : V;
+fun course_V2 : V2;
+fun courser_N : N;
+fun coursing_N : N;
+fun court_N : N;
+fun court_V : V;
+fun court_V2 : V2;
+fun court_card_N : N;
+fun court_martial_N : N;
+fun court_martial_V2 : V2;
+fun courteous_A : A;
+fun courtesan_N : N;
+fun courtesy_N : N;
+fun courtier_N : N;
+fun courtliness_N : N;
+fun courtly_A : A;
+fun courtroom_N : N;
+fun courtship_N : N;
+fun courtyard_N : N;
+fun cousin_N : N;
+fun cousinly_A : A;
+fun cove_N : N;
+fun coven_N : N;
+fun covenant_N : N;
+fun covenant_V : V;
+fun covenant_V2 : V2;
+fun coventry_PN : PN;
+fun cover_N : N;
+fun cover_V2 : V2;
+fun cover_up_N : N;
+fun coverage_N : N;
+fun covering_A : A;
+fun covering_N : N;
+fun coverlet_N : N;
+fun covert_A : A;
+fun covert_N : N;
+fun covet_V2 : V2;
+fun covetous_A : A;
+fun covetousness_N : N;
+fun covey_N : N;
+fun cow_N : N;
+fun cow_V2 : V2;
+fun coward_N : N;
+fun cowardice_N : N;
+fun cowardly_A : A;
+fun cowbell_N : N;
+fun cowboy_N : N;
+fun cowcatcher_N : N;
+fun cowdenbeath_PN : PN;
+fun cower_V : V;
+fun cowes_PN : PN;
+fun cowhand_N : N;
+fun cowherd_N : N;
+fun cowhide_N : N;
+fun cowhouse_N : N;
+fun cowl_N : N;
+fun cowling_N : N;
+fun cowman_N : N;
+fun cowpox_N : N;
+fun cowrie_N : N;
+fun cowshed_N : N;
+fun cowskin_N : N;
+fun cowslip_N : N;
+fun cox_N : N;
+fun cox_V : V;
+fun cox_V2 : V2;
+fun coxcomb_N : N;
+fun coxswain_N : N;
+fun coy_A : A;
+fun coyness_N : N;
+fun coyote_N : N;
+fun coypu_N : N;
+fun cozen_V2 : V2;
+fun cozy_A : A;
+fun cp_PN : PN;
+fun cpl_PN : PN;
+fun crab_N : N;
+fun crab_V : V;
+fun crab_V2 : V2;
+fun crab_apple_N : N;
+fun crabbed_A : A;
+fun crack_N : N;
+fun crack_V : V;
+fun crack_V2 : V2;
+fun crack_down_N : N;
+fun crack_up_N : N;
+fun cracker_N : N;
+fun crackers_A : A;
+fun crackle_N : N;
+fun crackle_V : V;
+fun crackle_china_N : N;
+fun crackleware_N : N;
+fun crackling_N : N;
+fun crackpot_N : N;
+fun cracksman_N : N;
+fun cradle_N : N;
+fun cradle_V2 : V2;
+fun craft_N : N;
+fun craftily_Adv : Adv;
+fun craftiness_N : N;
+fun craftsman_N : N;
+fun craftsmanship_N : N;
+fun crafty_A : A;
+fun crag_N : N;
+fun cragged_A : A;
+fun craggy_A : A;
+fun cragsman_N : N;
+fun crake_N : N;
+fun cram_V : V;
+fun cram_V2 : V2;
+fun cram_full_A : A;
+fun cram_full_Adv : Adv;
+fun cramlington_PN : PN;
+fun crammer_N : N;
+fun cramp_N : N;
+fun cramp_V2 : V2;
+fun cramp_iron_N : N;
+fun cramped_A : A;
+fun crampon_N : N;
+fun cranberry_N : N;
+fun crane_N : N;
+fun crane_V : V;
+fun crane_V2 : V2;
+fun crane_fly_N : N;
+fun cranial_A : A;
+fun cranium_N : N;
+fun crank_N : N;
+fun crank_V2 : V2;
+fun crankshaft_N : N;
+fun cranky_A : A;
+fun crannied_A : A;
+fun cranny_N : N;
+fun crap_N : N;
+fun crap_V : V;
+fun crap_shooting_N : N;
+fun crape_N : N;
+fun craps_N : N;
+fun crash_Adv : Adv;
+fun crash_N : N;
+fun crash_V : V;
+fun crash_V2 : V2;
+fun crash_dive_N : N;
+fun crash_dive_V : V;
+fun crash_helmet_N : N;
+fun crash_land_V : V;
+fun crash_land_V2 : V2;
+fun crash_landing_N : N;
+fun crass_A : A;
+fun crate_N : N;
+fun crate_V2 : V2;
+fun crater_N : N;
+fun cravat_N : N;
+fun crave_V : V;
+fun crave_V2 : V2;
+fun craven_A : A;
+fun craven_N : N;
+fun craving_N : N;
+fun crawfish_N : N;
+fun crawl_N : N;
+fun crawl_V : V;
+fun crawler_N : N;
+fun crawley_PN : PN;
+fun crayfish_N : N;
+fun crayon_N : N;
+fun crayon_V2 : V2;
+fun craze_N : N;
+fun crazed_A : A;
+fun crazily_Adv : Adv;
+fun craziness_N : N;
+fun crazy_A : A;
+fun creak_N : N;
+fun creak_V : V;
+fun creakily_Adv : Adv;
+fun creaky_A : A;
+fun cream_N : N;
+fun cream_V2 : V2;
+fun creamery_N : N;
+fun creamy_A : A;
+fun crease_N : N;
+fun crease_V : V;
+fun crease_V2 : V2;
+fun create_V2 : V2;
+fun creation_N : N;
+fun creative_A : A;
+fun creativeness_N : N;
+fun creator_N : N;
+fun creature_N : N;
+fun credence_N : N;
+fun credibility_N : N;
+fun credible_A : A;
+fun credit_N : N;
+fun credit_V2 : V2;
+fun credit_side_N : N;
+fun credit_worthiness_N : N;
+fun credit_worthy_A : A;
+fun creditable_A : A;
+fun creditor_N : N;
+fun credo_N : N;
+fun credulity_N : N;
+fun credulous_A : A;
+fun creed_N : N;
+fun creek_N : N;
+fun creel_N : N;
+fun creep_N : N;
+fun creep_V : V;
+fun creeper_N : N;
+fun creepy_A : A;
+fun cremate_V2 : V2;
+fun cremation_N : N;
+fun crematorium_N : N;
+fun crematory_N : N;
+fun crenellated_A : A;
+fun creole_A : A;
+fun creole_N : N;
+fun creosote_N : N;
+fun crepe_1_N : N;
+fun crepitate_V : V;
+fun crepitation_N : N;
+fun crepuscular_A : A;
+fun cres_PN : PN;
+fun crescendo_N : N;
+fun crescent_N : N;
+fun cress_N : N;
+fun crest_N : N;
+fun crest_V : V;
+fun crest_V2 : V2;
+fun crested_A : A;
+fun crestfallen_A : A;
+fun creswell_PN : PN;
+fun cretaceous_A : A;
+fun cretin_N : N;
+fun cretinous_A : A;
+fun cretonne_N : N;
+fun crevasse_N : N;
+fun crevice_N : N;
+fun crew_N : N;
+fun crew_V : V;
+fun crew_cut_N : N;
+fun crew_neck_N : N;
+fun crewe_PN : PN;
+fun crib_N : N;
+fun crib_V : V;
+fun crib_V2 : V2;
+fun cribbage_N : N;
+fun cribbage_board_N : N;
+fun crick_N : N;
+fun crick_V2 : V2;
+fun cricket_N : N;
+fun cricketer_N : N;
+fun crieff_PN : PN;
+fun crier_N : N;
+fun crime_N : N;
+fun crime_V2 : V2;
+fun criminal_A : A;
+fun criminal_N : N;
+fun criminology_N : N;
+fun crimp_V2 : V2;
+fun crimson_A : A;
+fun crimson_N : N;
+fun crimson_V : V;
+fun crimson_V2 : V2;
+fun cringe_V : V;
+fun crinkle_N : N;
+fun crinkle_V : V;
+fun crinkle_V2 : V2;
+fun crinkly_A : A;
+fun crinoline_N : N;
+fun cripple_N : N;
+fun cripple_V2 : V2;
+fun crisis_N : N;
+fun crisp_A : A;
+fun crisp_N : N;
+fun crisp_V : V;
+fun crisp_V2 : V2;
+fun crispness_N : N;
+fun crisscross_A : A;
+fun crisscross_Adv : Adv;
+fun crisscross_V : V;
+fun crisscross_V2 : V2;
+fun criterion_N : N;
+fun critic_N : N;
+fun critical_A : A;
+fun criticism_N : N;
+fun criticize_V : V;
+fun criticize_V2 : V2;
+fun critique_N : N;
+fun croak_N : N;
+fun croak_V : V;
+fun croak_V2 : V2;
+fun crochet_N : N;
+fun crochet_V : V;
+fun crochet_V2 : V2;
+fun crochet_hook_N : N;
+fun crock_N : N;
+fun crock_V : V;
+fun crock_V2 : V2;
+fun crockery_N : N;
+fun crocodile_N : N;
+fun crocus_N : N;
+fun croesus_PN : PN;
+fun croft_N : N;
+fun crofter_N : N;
+fun cromer_PN : PN;
+fun cromlech_N : N;
+fun crone_N : N;
+fun crony_N : N;
+fun crook_N : N;
+fun crook_PN : PN;
+fun crook_V : V;
+fun crook_V2 : V2;
+fun crook_back_A : A;
+fun crook_backed_A : A;
+fun crooked_A : A;
+fun crookedness_N : N;
+fun croon_V : V;
+fun croon_V2 : V2;
+fun crooner_N : N;
+fun crop_N : N;
+fun crop_V : V;
+fun crop_V2 : V2;
+fun crop_dusting_N : N;
+fun cropper_N : N;
+fun croquet_N : N;
+fun croquette_N : N;
+fun crore_N : N;
+fun crosby_PN : PN;
+fun crosier_N : N;
+fun cross_A : A;
+fun cross_N : N;
+fun cross_V : V;
+fun cross_V2 : V2;
+fun cross_bench_N : N;
+fun cross_bencher_N : N;
+fun cross_division_N : N;
+fun cross_examination_N : N;
+fun cross_examine_V2 : V2;
+fun cross_examiner_N : N;
+fun cross_fertilization_N : N;
+fun cross_fertilize_V2 : V2;
+fun cross_grained_A : A;
+fun cross_heading_N : N;
+fun cross_index_N : N;
+fun cross_index_V2 : V2;
+fun cross_legged_Adv : Adv;
+fun cross_question_V2 : V2;
+fun cross_reference_N : N;
+fun cross_section_N : N;
+fun cross_stitch_N : N;
+fun crossbar_N : N;
+fun crossbeam_N : N;
+fun crossbow_N : N;
+fun crossbred_A : A;
+fun crossbreed_N : N;
+fun crossbreed_V2 : V2;
+fun crosscheck_N : N;
+fun crosscheck_V : V;
+fun crosscheck_V2 : V2;
+fun crosscountry_A : A;
+fun crosscountry_Adv : Adv;
+fun crosscurrent_N : N;
+fun crosscut_A : A;
+fun crosscut_N : N;
+fun crosse_N : N;
+fun crosseyed_A : A;
+fun crossfire_N : N;
+fun crossing_N : N;
+fun crossness_N : N;
+fun crosspatch_N : N;
+fun crosspiece_N : N;
+fun crossroad_N : N;
+fun crosstalk_N : N;
+fun crosswalk_N : N;
+fun crosswind_N : N;
+fun crosswise_Adv : Adv;
+fun crossword_N : N;
+fun crotch_N : N;
+fun crotchet_N : N;
+fun crotchety_A : A;
+fun crouch_N : N;
+fun crouch_V : V;
+fun croup_N : N;
+fun croupier_N : N;
+fun crow's_nest_N : N;
+fun crow_N : N;
+fun crow_V : V;
+fun crowbar_N : N;
+fun crowborough_PN : PN;
+fun crowd_N : N;
+fun crowd_V : V;
+fun crowd_V2 : V2;
+fun crowded_A : A;
+fun crown_N : N;
+fun crown_V2 : V2;
+fun crown_land_N : N;
+fun crowning_A : A;
+fun crowthorne_PN : PN;
+fun croydon_PN : PN;
+fun crozier_N : N;
+fun crucial_A : A;
+fun crucible_N : N;
+fun crucifix_N : N;
+fun crucifixion_N : N;
+fun cruciform_A : A;
+fun crucify_V2 : V2;
+fun crude_A : A;
+fun crudeness_N : N;
+fun crudity_N : N;
+fun cruel_A : A;
+fun cruelty_N : N;
+fun cruet_N : N;
+fun cruet_stand_N : N;
+fun cruise_N : N;
+fun cruise_V : V;
+fun cruiser_N : N;
+fun crumb_N : N;
+fun crumble_V : V;
+fun crumble_V2 : V2;
+fun crumbly_A : A;
+fun crumpet_N : N;
+fun crumple_V : V;
+fun crumple_V2 : V2;
+fun crunch_N : N;
+fun crunch_V : V;
+fun crunch_V2 : V2;
+fun crupper_N : N;
+fun crusade_N : N;
+fun crusade_V : V;
+fun crusader_N : N;
+fun cruse_N : N;
+fun crush_N : N;
+fun crush_V : V;
+fun crush_V2 : V2;
+fun crushing_A : A;
+fun crust_N : N;
+fun crust_V : V;
+fun crust_V2 : V2;
+fun crustacean_N : N;
+fun crusted_A : A;
+fun crusty_A : A;
+fun crutch_N : N;
+fun crux_N : N;
+fun cruzeiro_N : N;
+fun cry_N : N;
+fun cry_V : V;
+fun cry_V2 : V2;
+fun crybaby_N : N;
+fun crying_A : A;
+fun crypt_N : N;
+fun cryptic_A : A;
+fun cryptically_Adv : Adv;
+fun cryptogram_N : N;
+fun crystal_N : N;
+fun crystal_gazing_N : N;
+fun crystalline_A : A;
+fun crystallization_N : N;
+fun crystallize_V : V;
+fun crystallize_V2 : V2;
+fun crystallography_N : N;
+fun creche_N : N;
+fun creme_de_menthe_N : N;
+fun crepe_2_N : N;
+fun cub_N : N;
+fun cuba_PN : PN;
+fun cuban_A : A;
+fun cuban_N : N;
+fun cubbyhole_N : N;
+fun cube_N : N;
+fun cube_V2 : V2;
+fun cubic_A : A;
+fun cubical_A : A;
+fun cubicle_N : N;
+fun cubism_N : N;
+fun cubist_N : N;
+fun cubit_N : N;
+fun cuckold_N : N;
+fun cuckold_V2 : V2;
+fun cuckoo_N : N;
+fun cuckoo_clock_N : N;
+fun cucumber_N : N;
+fun cud_N : N;
+fun cuddle_N : N;
+fun cuddle_V : V;
+fun cuddle_V2 : V2;
+fun cuddlesome_A : A;
+fun cuddly_A : A;
+fun cudgel_N : N;
+fun cudgel_V2 : V2;
+fun cudworth_PN : PN;
+fun cue_N : N;
+fun cuff_N : N;
+fun cuff_V2 : V2;
+fun cuffley_PN : PN;
+fun cuirass_N : N;
+fun cuirassier_N : N;
+fun cuisine_N : N;
+fun cul_de_sac_N : N;
+fun culcheth_PN : PN;
+fun culinary_A : A;
+fun cull_N : N;
+fun cull_V2 : V2;
+fun cullender_N : N;
+fun culminate_V2 : V2;
+fun culmination_N : N;
+fun culpability_N : N;
+fun culpable_A : A;
+fun culprit_N : N;
+fun cult_N : N;
+fun cultivable_A : A;
+fun cultivate_V2 : V2;
+fun cultivated_A : A;
+fun cultivation_N : N;
+fun cultivator_N : N;
+fun cultural_A : A;
+fun culture_N : N;
+fun cultured_A : A;
+fun culvert_N : N;
+fun cumber_V2 : V2;
+fun cumberland_PN : PN;
+fun cumbernauld_PN : PN;
+fun cumbersome_A : A;
+fun cumbria_PN : PN;
+fun cumbrous_A : A;
+fun cummerbund_N : N;
+fun cumnock_PN : PN;
+fun cumulative_A : A;
+fun cumulus_N : N;
+fun cuneiform_A : A;
+fun cunning_A : A;
+fun cunning_N : N;
+fun cunt_N : N;
+fun cup_N : N;
+fun cup_V2 : V2;
+fun cup_bearer_N : N;
+fun cup_final_N : N;
+fun cup_tie_N : N;
+fun cupar_PN : PN;
+fun cupboard_N : N;
+fun cupboard_love_N : N;
+fun cupful_N : N;
+fun cupid_PN : PN;
+fun cupidity_N : N;
+fun cupola_N : N;
+fun cuppa_N : N;
+fun cupping_N : N;
+fun cupric_A : A;
+fun cupro_nickel_N : N;
+fun cur_N : N;
+fun curability_N : N;
+fun curable_A : A;
+fun curacy_N : N;
+fun curate_N : N;
+fun curative_A : A;
+fun curator_N : N;
+fun curacao_N : N;
+fun curacoa_N : N;
+fun curb_N : N;
+fun curb_V2 : V2;
+fun curd_N : N;
+fun curdle_V : V;
+fun curdle_V2 : V2;
+fun cure_1_N : N;
+fun cure_V : V;
+fun cure_V2 : V2;
+fun cure_all_N : N;
+fun curfew_N : N;
+fun curio_N : N;
+fun curiosity_N : N;
+fun curious_A : A;
+fun curitiba_PN : PN;
+fun curl_N : N;
+fun curl_V : V;
+fun curl_V2 : V2;
+fun curler_N : N;
+fun curlew_N : N;
+fun curling_N : N;
+fun curly_A : A;
+fun curmudgeon_N : N;
+fun currant_N : N;
+fun currency_N : N;
+fun current_A : A;
+fun current_N : N;
+fun curriculum_N : N;
+fun curriculum_vitae_N : N;
+fun currie_PN : PN;
+fun currish_A : A;
+fun curry_N : N;
+fun curry_V2 : V2;
+fun curry_powder_N : N;
+fun curse_N : N;
+fun curse_V : V;
+fun curse_V2 : V2;
+fun cursed_A : A;
+fun cursive_A : A;
+fun cursory_A : A;
+fun curst_A : A;
+fun curt_A : A;
+fun curtail_V2 : V2;
+fun curtailment_N : N;
+fun curtain_N : N;
+fun curtain_V2 : V2;
+fun curtain_call_N : N;
+fun curtain_lecture_N : N;
+fun curtain_raiser_N : N;
+fun curtness_N : N;
+fun curtsey_N : N;
+fun curtsey_V : V;
+fun curtsy_N : N;
+fun curtsy_V : V;
+fun curvature_N : N;
+fun curve_N : N;
+fun curve_V : V;
+fun curve_V2 : V2;
+fun cure_2_N : N;
+fun cushion_N : N;
+fun cushion_V2 : V2;
+fun cushy_A : A;
+fun cusp_N : N;
+fun cuspidor_N : N;
+fun cuss_N : N;
+fun cussed_A : A;
+fun cussedness_N : N;
+fun custard_N : N;
+fun custodial_A : A;
+fun custodian_N : N;
+fun custody_N : N;
+fun custom_N : N;
+fun custom_built_A : A;
+fun custom_made_A : A;
+fun customary_A : A;
+fun customer_N : N;
+fun cut_N : N;
+fun cut_V : V;
+fun cut_V2 : V2;
+fun cut_out_N : N;
+fun cut_price_A : A;
+fun cut_rate_A : A;
+fun cut_throat_A : A;
+fun cut_throat_N : N;
+fun cutback_N : N;
+fun cute_A : A;
+fun cuteness_N : N;
+fun cuticle_N : N;
+fun cutlass_N : N;
+fun cutler_N : N;
+fun cutlery_N : N;
+fun cutlet_N : N;
+fun cutpurse_N : N;
+fun cutter_N : N;
+fun cutting_A : A;
+fun cutting_N : N;
+fun cutting_room_N : N;
+fun cuttlefish_N : N;
+fun cutworm_N : N;
+fun cwmbran_PN : PN;
+fun cwt_N : N;
+fun cyanide_N : N;
+fun cybernetic_A : A;
+fun cybernetics_N : N;
+fun cyclamen_N : N;
+fun cycle_N : N;
+fun cycle_V : V;
+fun cyclic_A : A;
+fun cyclical_A : A;
+fun cyclist_N : N;
+fun cyclone_N : N;
+fun cyclonic_A : A;
+fun cyclopaedia_N : N;
+fun cyclopean_A : A;
+fun cyclostyle_N : N;
+fun cyclostyle_V2 : V2;
+fun cyclotron_N : N;
+fun cyder_N : N;
+fun cygnet_N : N;
+fun cylinder_N : N;
+fun cylindrical_A : A;
+fun cymbal_N : N;
+fun cynic_N : N;
+fun cynical_A : A;
+fun cynicism_N : N;
+fun cynosure_N : N;
+fun cynthia_PN : PN;
+fun cypher_N : N;
+fun cypher_V : V;
+fun cypher_V2 : V2;
+fun cypress_N : N;
+fun cyprian_A : A;
+fun cypriot_A : A;
+fun cypriot_N : N;
+fun cyprus_PN : PN;
+fun cyril_PN : PN;
+fun cyrillic_A : A;
+fun cyst_N : N;
+fun czar_N : N;
+fun czarina_N : N;
+fun czech_A : A;
+fun czech_N : N;
+fun czechoslovak_A : A;
+fun czechoslovak_N : N;
+fun czechoslovakia_PN : PN;
+fun czechoslovakian_A : A;
+fun czechoslovakian_N : N;
+fun d_day_PN : PN;
+fun dab_N : N;
+fun dab_V : V;
+fun dab_V2 : V2;
+fun dabble_V : V;
+fun dabble_V2 : V2;
+fun dabbler_N : N;
+fun dacca_PN : PN;
+fun dace_N : N;
+fun dacha_N : N;
+fun dachshund_N : N;
+fun dacoit_N : N;
+fun dacoity_N : N;
+fun dactyl_N : N;
+fun dactylic_A : A;
+fun dad_N : N;
+fun daddy_N : N;
+fun daddy_longlegs_N : N;
+fun dado_N : N;
+fun daemon_N : N;
+fun daffodil_N : N;
+fun daft_A : A;
+fun dagger_N : N;
+fun dago_N : N;
+fun daguerreotype_N : N;
+fun dahlia_N : N;
+fun dail_eireann_N : N;
+fun daily_A : A;
+fun daily_Adv : Adv;
+fun daily_N : N;
+fun daintily_Adv : Adv;
+fun daintiness_N : N;
+fun dainty_A : A;
+fun dainty_N : N;
+fun dairy_N : N;
+fun dairy_farm_N : N;
+fun dairy_farming_N : N;
+fun dairying_N : N;
+fun dairymaid_N : N;
+fun dairyman_N : N;
+fun dais_N : N;
+fun daisy_N : N;
+fun daisy_PN : PN;
+fun dakar_PN : PN;
+fun dakota_PN : PN;
+fun dale_N : N;
+fun dalesman_N : N;
+fun dalkeith_PN : PN;
+fun dallas_PN : PN;
+fun dalliance_N : N;
+fun dally_V : V;
+fun dalmatian_N : N;
+fun dalry_PN : PN;
+fun dalton_PN : PN;
+fun dam_N : N;
+fun dam_V2 : V2;
+fun damage_N : N;
+fun damage_V2 : V2;
+fun damascene_A : A;
+fun damascene_V2 : V2;
+fun damascus_PN : PN;
+fun damask_N : N;
+fun dame_N : N;
+fun damn_A : A;
+fun damn_Adv : Adv;
+fun damn_N : N;
+fun damn_V2 : V2;
+fun damnable_A : A;
+fun damnation_N : N;
+fun damned_A : A;
+fun damned_Adv : Adv;
+fun damocles_PN : PN;
+fun damp_A : A;
+fun damp_N : N;
+fun damp_V : V;
+fun damp_V2 : V2;
+fun dampen_V : V;
+fun dampen_V2 : V2;
+fun damper_N : N;
+fun dampish_A : A;
+fun dampness_N : N;
+fun damsel_N : N;
+fun damson_N : N;
+fun dan_PN : PN;
+fun dance_N : N;
+fun dance_V : V;
+fun dance_V2 : V2;
+fun dance_band_N : N;
+fun dance_hall_N : N;
+fun dance_orchestra_N : N;
+fun dancer_N : N;
+fun dancing_A : A;
+fun dancing_N : N;
+fun dandelion_N : N;
+fun dander_N : N;
+fun dandified_A : A;
+fun dandle_V2 : V2;
+fun dandruff_N : N;
+fun dandy_A : A;
+fun dandy_N : N;
+fun dane_N : N;
+fun danger_N : N;
+fun dangerous_A : A;
+fun dangle_V : V;
+fun dangle_V2 : V2;
+fun daniel_N : N;
+fun daniel_PN : PN;
+fun danish_A : A;
+fun danish_N : N;
+fun dank_A : A;
+fun danny_PN : PN;
+fun danse_macabre_N : N;
+fun daphne_N : N;
+fun daphne_PN : PN;
+fun dapper_A : A;
+fun dapple_V2 : V2;
+fun dapple_grey_A : A;
+fun dapple_grey_N : N;
+fun darby_PN : PN;
+fun dare_N : N;
+fun dare_V : V;
+fun dare_V2 : V2;
+fun daredevil_N : N;
+fun darenth_PN : PN;
+fun darfield_PN : PN;
+fun daring_A : A;
+fun daring_N : N;
+fun dark_A : A;
+fun dark_N : N;
+fun darken_V : V;
+fun darken_V2 : V2;
+fun darkey_N : N;
+fun darkie_N : N;
+fun darkness_N : N;
+fun darkroom_N : N;
+fun darky_N : N;
+fun darling_N : N;
+fun darlington_PN : PN;
+fun darmstadt_PN : PN;
+fun darn_N : N;
+fun darn_V : V;
+fun darn_V2 : V2;
+fun darning_N : N;
+fun darning_needle_N : N;
+fun dart_N : N;
+fun dart_V : V;
+fun dart_V2 : V2;
+fun dartford_PN : PN;
+fun dartmouth_PN : PN;
+fun darwen_PN : PN;
+fun dash_N : N;
+fun dash_V : V;
+fun dash_V2 : V2;
+fun dashboard_N : N;
+fun dashing_A : A;
+fun dastard_N : N;
+fun dastardly_A : A;
+fun data_N : N;
+fun datable_A : A;
+fun date_N : N;
+fun date_V : V;
+fun date_V2 : V2;
+fun dated_A : A;
+fun dateless_A : A;
+fun dateline_N : N;
+fun dative_A : A;
+fun dative_N : N;
+fun datum_N : N;
+fun daub_N : N;
+fun daub_V : V;
+fun daub_V2 : V2;
+fun dauber_N : N;
+fun daughter_N : N;
+fun daughter_in_law_N : N;
+fun daughterly_A : A;
+fun daunt_V2 : V2;
+fun dauntless_A : A;
+fun dauphin_N : N;
+fun dave_PN : PN;
+fun davenport_N : N;
+fun daventry_PN : PN;
+fun davey_PN : PN;
+fun david_PN : PN;
+fun davit_N : N;
+fun daw_N : N;
+fun dawdle_V : V;
+fun dawdle_V2 : V2;
+fun dawdler_N : N;
+fun dawley_PN : PN;
+fun dawlish_PN : PN;
+fun dawn_N : N;
+fun dawn_PN : PN;
+fun dawn_V : V;
+fun day_N : N;
+fun day_boarder_N : N;
+fun day_labourer_N : N;
+fun day_return_N : N;
+fun day_school_N : N;
+fun daybook_N : N;
+fun dayboy_N : N;
+fun daybreak_N : N;
+fun daydream_N : N;
+fun daydream_V : V;
+fun daygirl_N : N;
+fun daylight_N : N;
+fun daylight_saving_A : A;
+fun daylight_saving_N : N;
+fun daylong_A : A;
+fun daylong_Adv : Adv;
+fun dayspring_N : N;
+fun daytime_N : N;
+fun dayton_PN : PN;
+fun daze_N : N;
+fun daze_V2 : V2;
+fun dazedly_Adv : Adv;
+fun dazzle_N : N;
+fun dazzle_V2 : V2;
+fun ddt_N : N;
+fun de_escalate_V2 : V2;
+fun de_escalation_N : N;
+fun de_facto_A : A;
+fun de_facto_Adv : Adv;
+fun de_ice_V2 : V2;
+fun de_jure_A : A;
+fun de_jure_Adv : Adv;
+fun de_luxe_A : A;
+fun de_rigeur_A : A;
+fun de_trop_A : A;
+fun deacon_N : N;
+fun deaconess_N : N;
+fun dead_A : A;
+fun dead_Adv : Adv;
+fun deaden_V2 : V2;
+fun deadline_N : N;
+fun deadlock_N : N;
+fun deadlocked_A : A;
+fun deadly_A : A;
+fun deadpan_A : A;
+fun deaf_A : A;
+fun deaf_aid_N : N;
+fun deaf_mute_N : N;
+fun deafen_V2 : V2;
+fun deafness_N : N;
+fun deal_Adv : Adv;
+fun deal_N : N;
+fun deal_PN : PN;
+fun deal_V : V;
+fun deal_V2 : V2;
+fun dealer_N : N;
+fun dealing_N : N;
+fun dean_N : N;
+fun dean_PN : PN;
+fun deanery_N : N;
+fun dear_A : A;
+fun dear_Adv : Adv;
+fun dear_N : N;
+fun dearest_N : N;
+fun dearie_N : N;
+fun dearness_N : N;
+fun dearth_N : N;
+fun deary_N : N;
+fun death_N : N;
+fun death_mask_N : N;
+fun death_rate_N : N;
+fun death_roll_N : N;
+fun death_warrant_N : N;
+fun deathbed_N : N;
+fun deathblow_N : N;
+fun deathless_A : A;
+fun deathlike_A : A;
+fun deathly_A : A;
+fun deathly_Adv : Adv;
+fun deathtrap_N : N;
+fun deb_N : N;
+fun debag_V2 : V2;
+fun debar_V2 : V2;
+fun debark_V : V;
+fun debark_V2 : V2;
+fun debarkation_N : N;
+fun debase_V2 : V2;
+fun debasement_N : N;
+fun debatable_A : A;
+fun debate_N : N;
+fun debate_V : V;
+fun debate_V2 : V2;
+fun debater_N : N;
+fun debauch_N : N;
+fun debauch_V2 : V2;
+fun debauchee_N : N;
+fun debauchery_N : N;
+fun debbie_PN : PN;
+fun debby_PN : PN;
+fun debenture_N : N;
+fun debilitate_V2 : V2;
+fun debility_N : N;
+fun debit_N : N;
+fun debit_V2 : V2;
+fun debit_side_N : N;
+fun debonair_A : A;
+fun deborah_PN : PN;
+fun debouch_V : V;
+fun debouch_V2 : V2;
+fun debrief_V2 : V2;
+fun debris_1_N : N;
+fun debt_N : N;
+fun debtor_N : N;
+fun debug_V2 : V2;
+fun debunk_V2 : V2;
+fun debut_1_N : N;
+fun debutante_1_N : N;
+fun dec_PN : PN;
+fun decade_N : N;
+fun decadence_N : N;
+fun decadent_A : A;
+fun decadent_N : N;
+fun decalogue_N : N;
+fun decamp_V : V;
+fun decant_V2 : V2;
+fun decanter_N : N;
+fun decapitate_V2 : V2;
+fun decapitation_N : N;
+fun decarbonize_V2 : V2;
+fun decasyllabic_A : A;
+fun decasyllable_N : N;
+fun decay_N : N;
+fun decay_V : V;
+fun decease_N : N;
+fun decease_V : V;
+fun deceit_N : N;
+fun deceitful_A : A;
+fun deceitfulness_N : N;
+fun deceive_V2 : V2;
+fun deceiver_N : N;
+fun deceivingly_Adv : Adv;
+fun decelerate_V : V;
+fun decelerate_V2 : V2;
+fun december_N : N;
+fun december_PN : PN;
+fun decency_N : N;
+fun decent_A : A;
+fun decentralization_N : N;
+fun decentralize_V2 : V2;
+fun deception_N : N;
+fun deceptive_A : A;
+fun decibel_N : N;
+fun decide_V : V;
+fun decide_V2 : V2;
+fun decided_A : A;
+fun deciduous_A : A;
+fun decimal_A : A;
+fun decimalization_N : N;
+fun decimalize_V2 : V2;
+fun decimate_V2 : V2;
+fun decipher_V2 : V2;
+fun decipherable_A : A;
+fun decision_N : N;
+fun decisive_A : A;
+fun deck_N : N;
+fun deck_V2 : V2;
+fun decker_N : N;
+fun deckle_edged_A : A;
+fun declaim_V : V;
+fun declaim_V2 : V2;
+fun declamation_N : N;
+fun declamatory_A : A;
+fun declarable_A : A;
+fun declaration_N : N;
+fun declare_V : V;
+fun declare_V2 : V2;
+fun declassification_N : N;
+fun declassify_V2 : V2;
+fun declension_N : N;
+fun declination_N : N;
+fun decline_N : N;
+fun decline_V : V;
+fun decline_V2 : V2;
+fun declivity_N : N;
+fun declutch_V : V;
+fun decode_V2 : V2;
+fun decoder_N : N;
+fun decoke_V2 : V2;
+fun decolonization_N : N;
+fun decolonize_V2 : V2;
+fun decompose_V : V;
+fun decompose_V2 : V2;
+fun decomposition_N : N;
+fun decompress_V2 : V2;
+fun decompression_N : N;
+fun decontaminate_V2 : V2;
+fun decontamination_N : N;
+fun decontrol_V2 : V2;
+fun decorate_V2 : V2;
+fun decoration_N : N;
+fun decorative_A : A;
+fun decorator_N : N;
+fun decorous_A : A;
+fun decorum_N : N;
+fun decoy_N : N;
+fun decoy_V2 : V2;
+fun decrease_N : N;
+fun decrease_V : V;
+fun decrease_V2 : V2;
+fun decree_N : N;
+fun decree_V2 : V2;
+fun decree_nisi_N : N;
+fun decrepit_A : A;
+fun decrepitude_N : N;
+fun decry_V2 : V2;
+fun dedicate_V2 : V2;
+fun dedication_N : N;
+fun deduce_V2 : V2;
+fun deduct_V2 : V2;
+fun deductible_A : A;
+fun deduction_N : N;
+fun deductive_A : A;
+fun deed_N : N;
+fun deed_box_N : N;
+fun deedpoll_N : N;
+fun deem_V2 : V2;
+fun deep_A : A;
+fun deep_Adv : Adv;
+fun deep_N : N;
+fun deep_freeze_N : N;
+fun deep_freeze_V2 : V2;
+fun deep_laid_A : A;
+fun deep_mined_A : A;
+fun deep_rooted_A : A;
+fun deep_sea_A : A;
+fun deep_seated_A : A;
+fun deep_water_A : A;
+fun deepen_V : V;
+fun deepen_V2 : V2;
+fun deepness_N : N;
+fun deer_N : N;
+fun deerskin_N : N;
+fun deerstalker_N : N;
+fun deerstalking_N : N;
+fun deface_V2 : V2;
+fun defacement_N : N;
+fun defalcation_N : N;
+fun defamation_N : N;
+fun defamatory_A : A;
+fun defame_V2 : V2;
+fun default_N : N;
+fun default_V : V;
+fun defaulter_N : N;
+fun defeat_N : N;
+fun defeat_V2 : V2;
+fun defeatism_N : N;
+fun defeatist_N : N;
+fun defecate_V : V;
+fun defecation_N : N;
+fun defect_N : N;
+fun defect_V : V;
+fun defection_N : N;
+fun defective_A : A;
+fun defectiveness_N : N;
+fun defector_N : N;
+fun defence_N : N;
+fun defenceless_A : A;
+fun defencelessness_N : N;
+fun defend_V2 : V2;
+fun defendant_N : N;
+fun defender_N : N;
+fun defensible_A : A;
+fun defensive_A : A;
+fun defensive_N : N;
+fun defer_V : V;
+fun defer_V2 : V2;
+fun deference_N : N;
+fun deferential_A : A;
+fun deferment_N : N;
+fun defiance_N : N;
+fun defiant_A : A;
+fun deficiency_N : N;
+fun deficient_A : A;
+fun deficit_N : N;
+fun defile_N : N;
+fun defile_V : V;
+fun defile_V2 : V2;
+fun defilement_N : N;
+fun definable_A : A;
+fun define_V2 : V2;
+fun definite_A : A;
+fun definition_N : N;
+fun definitive_A : A;
+fun deflate_V2 : V2;
+fun deflation_N : N;
+fun deflationary_A : A;
+fun deflect_V : V;
+fun deflect_V2 : V2;
+fun deflection_N : N;
+fun deflower_V2 : V2;
+fun defoliant_N : N;
+fun defoliate_V2 : V2;
+fun defoliation_N : N;
+fun deforest_V2 : V2;
+fun deform_V2 : V2;
+fun deformed_A : A;
+fun deformity_N : N;
+fun defraud_V2 : V2;
+fun defray_V2 : V2;
+fun defrayal_N : N;
+fun defrayment_N : N;
+fun defrock_V2 : V2;
+fun defrost_V2 : V2;
+fun defroster_N : N;
+fun deft_A : A;
+fun deftness_N : N;
+fun defunct_A : A;
+fun defuse_V2 : V2;
+fun defy_V2 : V2;
+fun degauss_V2 : V2;
+fun degeneracy_N : N;
+fun degenerate_A : A;
+fun degenerate_N : N;
+fun degenerate_V : V;
+fun degeneration_N : N;
+fun degradation_N : N;
+fun degrade_V2 : V2;
+fun degree_N : N;
+fun dehorn_V2 : V2;
+fun dehumanize_V2 : V2;
+fun dehydrate_V2 : V2;
+fun deification_N : N;
+fun deify_V2 : V2;
+fun deign_V : V;
+fun deirdre_PN : PN;
+fun deism_N : N;
+fun deist_N : N;
+fun deity_N : N;
+fun deject_V2 : V2;
+fun dejectedly_Adv : Adv;
+fun dejection_N : N;
+fun dekko_N : N;
+fun delaware_PN : PN;
+fun delay_N : N;
+fun delay_V : V;
+fun delay_V2 : V2;
+fun delayed_action_A : A;
+fun delayed_action_N : N;
+fun delectable_A : A;
+fun delectation_N : N;
+fun delegacy_N : N;
+fun delegate_N : N;
+fun delegate_V2 : V2;
+fun delegation_N : N;
+fun delete_V2 : V2;
+fun deleterious_A : A;
+fun deletion_N : N;
+fun delf_N : N;
+fun delft_N : N;
+fun delhi_PN : PN;
+fun deliberate_A : A;
+fun deliberate_V : V;
+fun deliberate_V2 : V2;
+fun deliberation_N : N;
+fun deliberative_A : A;
+fun delicacy_N : N;
+fun delicate_A : A;
+fun delicatessen_N : N;
+fun delicious_A : A;
+fun delight_N : N;
+fun delight_V : V;
+fun delight_V2 : V2;
+fun delightedly_Adv : Adv;
+fun delightful_A : A;
+fun delimit_V2 : V2;
+fun delimitate_V2 : V2;
+fun delimitation_N : N;
+fun delineate_V2 : V2;
+fun delineation_N : N;
+fun delinquency_N : N;
+fun delinquent_A : A;
+fun delinquent_N : N;
+fun deliquescent_A : A;
+fun delirious_A : A;
+fun delirium_N : N;
+fun delirium_tremens_N : N;
+fun deliver_V2 : V2;
+fun deliverance_N : N;
+fun deliverer_N : N;
+fun delivery_N : N;
+fun dell_N : N;
+fun delouse_V2 : V2;
+fun delphic_A : A;
+fun delphinium_N : N;
+fun delta_N : N;
+fun delude_V2 : V2;
+fun deluge_N : N;
+fun deluge_V2 : V2;
+fun delusion_N : N;
+fun delusive_A : A;
+fun delve_V : V;
+fun delve_V2 : V2;
+fun demagnetization_N : N;
+fun demagnetize_V2 : V2;
+fun demagogic_A : A;
+fun demagogue_N : N;
+fun demagogy_N : N;
+fun demand_N : N;
+fun demand_V2 : V2;
+fun demarcate_V2 : V2;
+fun demarcation_N : N;
+fun demean_V2 : V2;
+fun demeanour_N : N;
+fun demented_A : A;
+fun demerara_N : N;
+fun demerit_N : N;
+fun demesne_N : N;
+fun demigod_N : N;
+fun demijohn_N : N;
+fun demilitarize_V2 : V2;
+fun demimondaine_N : N;
+fun demimonde_N : N;
+fun demise_N : N;
+fun demist_V2 : V2;
+fun demister_N : N;
+fun demo_N : N;
+fun demob_V2 : V2;
+fun demobilization_N : N;
+fun demobilize_V2 : V2;
+fun democracy_N : N;
+fun democrat_N : N;
+fun democratic_A : A;
+fun democratically_Adv : Adv;
+fun democratization_N : N;
+fun democratize_V2 : V2;
+fun demographic_A : A;
+fun demography_N : N;
+fun demolish_V2 : V2;
+fun demolition_N : N;
+fun demon_N : N;
+fun demonetization_N : N;
+fun demonetize_V2 : V2;
+fun demoniac_A : A;
+fun demoniac_N : N;
+fun demoniacal_A : A;
+fun demonic_A : A;
+fun demonstrability_N : N;
+fun demonstrable_A : A;
+fun demonstrate_V : V;
+fun demonstrate_V2 : V2;
+fun demonstration_N : N;
+fun demonstrative_A : A;
+fun demonstrator_N : N;
+fun demoralization_N : N;
+fun demoralize_V2 : V2;
+fun demote_V2 : V2;
+fun demotic_A : A;
+fun demotion_N : N;
+fun demur_N : N;
+fun demur_V : V;
+fun demure_A : A;
+fun demureness_N : N;
+fun den_N : N;
+fun denain_PN : PN;
+fun denary_A : A;
+fun denationalization_N : N;
+fun denationalize_V2 : V2;
+fun denatured_A : A;
+fun denbigh_PN : PN;
+fun deniable_A : A;
+fun denial_N : N;
+fun denier_N : N;
+fun denigrate_V2 : V2;
+fun denigration_N : N;
+fun denim_N : N;
+fun denis_PN : PN;
+fun denise_PN : PN;
+fun denizen_N : N;
+fun denmark_PN : PN;
+fun dennis_PN : PN;
+fun denny_PN : PN;
+fun denominate_V2 : V2;
+fun denomination_N : N;
+fun denominational_A : A;
+fun denominator_N : N;
+fun denote_V2 : V2;
+fun denounce_V2 : V2;
+fun dense_A : A;
+fun denseness_N : N;
+fun density_N : N;
+fun dent_N : N;
+fun dent_V : V;
+fun dent_V2 : V2;
+fun dental_A : A;
+fun dentifrice_N : N;
+fun dentist_N : N;
+fun dentistry_N : N;
+fun denture_N : N;
+fun denudation_N : N;
+fun denude_V2 : V2;
+fun denunciation_N : N;
+fun denver_PN : PN;
+fun deny_V2 : V2;
+fun deodar_N : N;
+fun deodorant_N : N;
+fun deodorize_V2 : V2;
+fun dep_PN : PN;
+fun depart_V : V;
+fun departed_A : A;
+fun departed_N : N;
+fun department_N : N;
+fun departmental_A : A;
+fun departure_N : N;
+fun depend_V : V;
+fun dependable_A : A;
+fun dependant_N : N;
+fun dependence_N : N;
+fun dependency_N : N;
+fun dependent_A : A;
+fun dependent_N : N;
+fun depict_V2 : V2;
+fun depiction_N : N;
+fun depilatory_A : A;
+fun depilatory_N : N;
+fun deplane_V : V;
+fun deplete_V2 : V2;
+fun depletion_N : N;
+fun deplorable_A : A;
+fun deplore_V2 : V2;
+fun deploy_V : V;
+fun deploy_V2 : V2;
+fun deployment_N : N;
+fun deponent_N : N;
+fun depopulate_V2 : V2;
+fun depopulation_N : N;
+fun deport_V2 : V2;
+fun deportation_N : N;
+fun deportee_N : N;
+fun deportment_N : N;
+fun depose_V : V;
+fun depose_V2 : V2;
+fun deposit_N : N;
+fun deposit_V2 : V2;
+fun deposition_N : N;
+fun depositor_N : N;
+fun depository_N : N;
+fun depot_N : N;
+fun deprave_V2 : V2;
+fun depravity_N : N;
+fun deprecate_V2 : V2;
+fun deprecation_N : N;
+fun depreciate_V : V;
+fun depreciate_V2 : V2;
+fun depreciation_N : N;
+fun depreciatory_A : A;
+fun depredation_N : N;
+fun depress_V2 : V2;
+fun depression_N : N;
+fun depressive_A : A;
+fun depressive_N : N;
+fun deprivation_N : N;
+fun deprive_V2 : V2;
+fun deprived_A : A;
+fun dept_PN : PN;
+fun depth_N : N;
+fun depth_bomb_N : N;
+fun depth_charge_N : N;
+fun deputation_N : N;
+fun depute_V2 : V2;
+fun deputize_V : V;
+fun deputy_N : N;
+fun derail_V2 : V2;
+fun derailment_N : N;
+fun derange_V2 : V2;
+fun derangement_N : N;
+fun derate_V2 : V2;
+fun derby_N : N;
+fun derby_PN : PN;
+fun derbyshire_PN : PN;
+fun dereham_PN : PN;
+fun derek_PN : PN;
+fun derelict_A : A;
+fun dereliction_N : N;
+fun derequisition_V2 : V2;
+fun derestrict_V2 : V2;
+fun deride_V2 : V2;
+fun derision_N : N;
+fun derisive_A : A;
+fun derisory_A : A;
+fun derivation_N : N;
+fun derivative_A : A;
+fun derivative_N : N;
+fun derive_V : V;
+fun derive_V2 : V2;
+fun dermatitis_N : N;
+fun dermatologist_N : N;
+fun dermatology_N : N;
+fun derogate_V : V;
+fun derogation_N : N;
+fun derogatory_A : A;
+fun derrick_N : N;
+fun derring_do_N : N;
+fun derv_N : N;
+fun dervish_N : N;
+fun des_N : N;
+fun des_PN : PN;
+fun desalinate_V2 : V2;
+fun desalination_N : N;
+fun desalinization_N : N;
+fun desalinize_V2 : V2;
+fun desalt_V2 : V2;
+fun descale_V2 : V2;
+fun descant_N : N;
+fun descant_V : V;
+fun descend_V : V;
+fun descend_V2 : V2;
+fun descendant_N : N;
+fun descent_N : N;
+fun describe_V2 : V2;
+fun description_N : N;
+fun descriptive_A : A;
+fun descry_V2 : V2;
+fun desecrate_V2 : V2;
+fun desecration_N : N;
+fun desegregate_V2 : V2;
+fun desegregation_N : N;
+fun desensitization_N : N;
+fun desensitize_V2 : V2;
+fun desert_A : A;
+fun desert_N : N;
+fun desert_V : V;
+fun desert_V2 : V2;
+fun deserter_N : N;
+fun desertion_N : N;
+fun deserve_V : V;
+fun deserve_V2 : V2;
+fun deserved_A : A;
+fun deserving_A : A;
+fun desiccant_N : N;
+fun desiccate_V2 : V2;
+fun desideratum_N : N;
+fun design_N : N;
+fun design_V : V;
+fun design_V2 : V2;
+fun designate_A : A;
+fun designate_V2 : V2;
+fun designation_N : N;
+fun designedly_Adv : Adv;
+fun designer_N : N;
+fun designing_A : A;
+fun designing_N : N;
+fun desirability_N : N;
+fun desirable_A : A;
+fun desire_N : N;
+fun desire_V2 : V2;
+fun desirous_A : A;
+fun desist_V : V;
+fun desk_N : N;
+fun desmond_PN : PN;
+fun desolate_A : A;
+fun desolate_V2 : V2;
+fun desolation_N : N;
+fun despair_N : N;
+fun despair_V : V;
+fun despairingly_Adv : Adv;
+fun despatch_N : N;
+fun despatch_V2 : V2;
+fun desperado_N : N;
+fun desperate_A : A;
+fun desperation_N : N;
+fun despicable_A : A;
+fun despise_V2 : V2;
+fun despite_N : N;
+fun despiteful_A : A;
+fun despoil_V2 : V2;
+fun despondency_N : N;
+fun despondent_A : A;
+fun despot_N : N;
+fun despotic_A : A;
+fun despotism_N : N;
+fun dessau_PN : PN;
+fun dessert_N : N;
+fun dessertspoon_N : N;
+fun dessertspoonful_N : N;
+fun destination_N : N;
+fun destine_V2 : V2;
+fun destiny_N : N;
+fun destitute_A : A;
+fun destitution_N : N;
+fun destroy_V2 : V2;
+fun destroyer_N : N;
+fun destructibility_N : N;
+fun destructible_A : A;
+fun destruction_N : N;
+fun destructive_A : A;
+fun destructiveness_N : N;
+fun desuetude_N : N;
+fun desultory_A : A;
+fun detach_V2 : V2;
+fun detachable_A : A;
+fun detached_A : A;
+fun detachment_N : N;
+fun detail_N : N;
+fun detail_V2 : V2;
+fun detain_V2 : V2;
+fun detainee_N : N;
+fun detect_V2 : V2;
+fun detectable_A : A;
+fun detection_N : N;
+fun detective_N : N;
+fun detector_N : N;
+fun detention_N : N;
+fun deter_V2 : V2;
+fun detergent_A : A;
+fun detergent_N : N;
+fun deteriorate_V : V;
+fun deteriorate_V2 : V2;
+fun deterioration_N : N;
+fun determinable_A : A;
+fun determinant_A : A;
+fun determinant_N : N;
+fun determinate_A : A;
+fun determination_N : N;
+fun determinative_A : A;
+fun determinative_N : N;
+fun determine_V : V;
+fun determine_V2 : V2;
+fun determinedly_Adv : Adv;
+fun determiner_N : N;
+fun deterrent_A : A;
+fun deterrent_N : N;
+fun detest_V2 : V2;
+fun detestable_A : A;
+fun detestation_N : N;
+fun dethrone_V2 : V2;
+fun dethronement_N : N;
+fun detonate_V : V;
+fun detonate_V2 : V2;
+fun detonation_N : N;
+fun detonator_N : N;
+fun detour_N : N;
+fun detour_V2 : V2;
+fun detract_V : V;
+fun detraction_N : N;
+fun detractor_N : N;
+fun detrain_V : V;
+fun detrain_V2 : V2;
+fun detribalization_N : N;
+fun detribalize_V2 : V2;
+fun detriment_N : N;
+fun detrimental_A : A;
+fun detritus_N : N;
+fun detroit_PN : PN;
+fun deuce_N : N;
+fun deuced_A : A;
+fun deutschmark_N : N;
+fun devaluate_V2 : V2;
+fun devaluation_N : N;
+fun devalue_V2 : V2;
+fun devastate_V2 : V2;
+fun devastation_N : N;
+fun develop_V : V;
+fun develop_V2 : V2;
+fun developer_N : N;
+fun development_N : N;
+fun deviant_A : A;
+fun deviant_N : N;
+fun deviate_V : V;
+fun deviation_N : N;
+fun deviationism_N : N;
+fun deviationist_N : N;
+fun device_N : N;
+fun devil_N : N;
+fun devil_V : V;
+fun devil_V2 : V2;
+fun devil_may_care_A : A;
+fun devilish_A : A;
+fun devilish_Adv : Adv;
+fun devilment_N : N;
+fun devilry_N : N;
+fun devious_A : A;
+fun deviousness_N : N;
+fun devise_V2 : V2;
+fun devitalization_N : N;
+fun devitalize_V2 : V2;
+fun devizes_PN : PN;
+fun devoid_A : A;
+fun devolution_N : N;
+fun devolve_V : V;
+fun devolve_V2 : V2;
+fun devon_PN : PN;
+fun devote_V2 : V2;
+fun devoted_A : A;
+fun devotee_N : N;
+fun devotion_N : N;
+fun devotional_A : A;
+fun devour_V2 : V2;
+fun devout_A : A;
+fun devoutness_N : N;
+fun dew_N : N;
+fun dewlap_N : N;
+fun dewsbury_PN : PN;
+fun dewy_A : A;
+fun dexterity_N : N;
+fun dexterous_A : A;
+fun dextrose_N : N;
+fun dextrous_A : A;
+fun dg_PN : PN;
+fun dhoti_N : N;
+fun dhow_N : N;
+fun di_PN : PN;
+fun diabetes_N : N;
+fun diabetic_A : A;
+fun diabetic_N : N;
+fun diabolic_A : A;
+fun diabolical_A : A;
+fun diacritic_A : A;
+fun diacritic_N : N;
+fun diacritical_A : A;
+fun diadem_N : N;
+fun diaeresis_N : N;
+fun diagnose_V2 : V2;
+fun diagnosis_N : N;
+fun diagnostic_A : A;
+fun diagonal_A : A;
+fun diagonal_N : N;
+fun diagram_N : N;
+fun diagrammatic_A : A;
+fun diagrammatical_A : A;
+fun dial_N : N;
+fun dial_V2 : V2;
+fun dialect_N : N;
+fun dialectal_A : A;
+fun dialectic_N : N;
+fun dialectical_A : A;
+fun dialectician_N : N;
+fun dialogue_N : N;
+fun diameter_N : N;
+fun diametrically_Adv : Adv;
+fun diamond_N : N;
+fun diana_PN : PN;
+fun diaper_N : N;
+fun diaphanous_A : A;
+fun diaphragm_N : N;
+fun diarchy_N : N;
+fun diarist_N : N;
+fun diarrhea_N : N;
+fun diarrhoea_N : N;
+fun diary_N : N;
+fun diaspora_N : N;
+fun diatonic_A : A;
+fun diatribe_N : N;
+fun dibber_N : N;
+fun dibble_N : N;
+fun dibble_V2 : V2;
+fun dice_N : N;
+fun dice_V : V;
+fun dice_V2 : V2;
+fun dice_box_N : N;
+fun dicey_A : A;
+fun dichotomy_N : N;
+fun dick_PN : PN;
+fun dickens_N : N;
+fun dicker_V : V;
+fun dickey_N : N;
+fun dicky_A : A;
+fun dicky_N : N;
+fun dicky_PN : PN;
+fun dicky_seat_N : N;
+fun dickybird_N : N;
+fun dictaphone_N : N;
+fun dictate_N : N;
+fun dictate_V : V;
+fun dictate_V2 : V2;
+fun dictation_N : N;
+fun dictator_N : N;
+fun dictatorial_A : A;
+fun dictatorship_N : N;
+fun diction_N : N;
+fun dictionary_N : N;
+fun dictum_N : N;
+fun didactic_A : A;
+fun didactically_Adv : Adv;
+fun didcot_PN : PN;
+fun diddle_V2 : V2;
+fun die_N : N;
+fun die_V : V;
+fun die_cast_A : A;
+fun die_hard_N : N;
+fun dieresis_N : N;
+fun diesel_N : N;
+fun diet_N : N;
+fun diet_V : V;
+fun diet_V2 : V2;
+fun dietary_A : A;
+fun dietetics_N : N;
+fun dietician_N : N;
+fun dietitian_N : N;
+fun differ_V : V;
+fun difference_N : N;
+fun different_A : A;
+fun differential_A : A;
+fun differential_N : N;
+fun differentiate_V2 : V2;
+fun differentiation_N : N;
+fun difficult_A : A;
+fun difficulty_N : N;
+fun diffidence_N : N;
+fun diffident_A : A;
+fun diffract_V2 : V2;
+fun diffraction_N : N;
+fun diffuse_A : A;
+fun diffuse_V : V;
+fun diffuse_V2 : V2;
+fun diffuseness_N : N;
+fun diffusion_N : N;
+fun dig_N : N;
+fun dig_V : V;
+fun dig_V2 : V2;
+fun digest_N : N;
+fun digest_V : V;
+fun digest_V2 : V2;
+fun digestibility_N : N;
+fun digestible_A : A;
+fun digestion_N : N;
+fun digestive_A : A;
+fun digger_N : N;
+fun digging_N : N;
+fun digit_N : N;
+fun digital_A : A;
+fun dignified_A : A;
+fun dignify_V2 : V2;
+fun dignitary_N : N;
+fun dignity_N : N;
+fun digraph_N : N;
+fun digress_V : V;
+fun digression_N : N;
+fun dijon_PN : PN;
+fun dike_N : N;
+fun dike_V : V;
+fun dike_V2 : V2;
+fun dilapidated_A : A;
+fun dilapidation_N : N;
+fun dilate_V : V;
+fun dilate_V2 : V2;
+fun dilation_N : N;
+fun dilatory_A : A;
+fun dilemma_N : N;
+fun dilettante_N : N;
+fun diligence_N : N;
+fun diligent_A : A;
+fun dill_N : N;
+fun dilly_dally_V : V;
+fun dilute_A : A;
+fun dilute_V2 : V2;
+fun dilution_N : N;
+fun dim_A : A;
+fun dim_V : V;
+fun dim_V2 : V2;
+fun dime_N : N;
+fun dimension_N : N;
+fun dimensional_A : A;
+fun diminish_V : V;
+fun diminish_V2 : V2;
+fun diminuendo_N : N;
+fun diminution_N : N;
+fun diminutive_A : A;
+fun diminutive_N : N;
+fun dimity_N : N;
+fun dimness_N : N;
+fun dimple_N : N;
+fun dimple_V : V;
+fun dimple_V2 : V2;
+fun din_N : N;
+fun din_V : V;
+fun din_V2 : V2;
+fun dinar_N : N;
+fun dine_V : V;
+fun dine_V2 : V2;
+fun diner_N : N;
+fun ding_dong_Adv : Adv;
+fun ding_dong_N : N;
+fun dinghy_N : N;
+fun dingily_Adv : Adv;
+fun dinginess_N : N;
+fun dingle_N : N;
+fun dingle_PN : PN;
+fun dingy_A : A;
+fun dining_car_N : N;
+fun dining_room_N : N;
+fun dining_table_N : N;
+fun dinky_A : A;
+fun dinner_N : N;
+fun dinner_jacket_N : N;
+fun dinner_party_N : N;
+fun dinner_service_N : N;
+fun dinner_set_N : N;
+fun dinnington_PN : PN;
+fun dinosaur_N : N;
+fun dint_N : N;
+fun diocesan_A : A;
+fun diocesan_N : N;
+fun diocese_N : N;
+fun dioxide_N : N;
+fun dip_N : N;
+fun dip_V : V;
+fun dip_V2 : V2;
+fun dip_ed_N : N;
+fun diphtheria_N : N;
+fun diphthong_N : N;
+fun diploma_N : N;
+fun diplomacy_N : N;
+fun diplomat_N : N;
+fun diplomatic_A : A;
+fun diplomatically_Adv : Adv;
+fun diplomatist_N : N;
+fun dipper_N : N;
+fun dipsomania_N : N;
+fun dipsomaniac_N : N;
+fun dipstick_N : N;
+fun diptych_N : N;
+fun dir_N : N;
+fun dire_A : A;
+fun direct_A : A;
+fun direct_Adv : Adv;
+fun direct_V : V;
+fun direct_V2 : V2;
+fun direction_N : N;
+fun direction_finder_N : N;
+fun directional_A : A;
+fun directive_N : N;
+fun directness_N : N;
+fun director_N : N;
+fun directorate_N : N;
+fun directorship_N : N;
+fun directory_N : N;
+fun direful_A : A;
+fun dirge_N : N;
+fun dirigible_N : N;
+fun dirk_N : N;
+fun dirndl_N : N;
+fun dirt_N : N;
+fun dirt_cheap_A : A;
+fun dirt_track_N : N;
+fun dirtily_Adv : Adv;
+fun dirty_A : A;
+fun dirty_V : V;
+fun dirty_V2 : V2;
+fun disability_N : N;
+fun disable_V2 : V2;
+fun disablement_N : N;
+fun disabuse_V2 : V2;
+fun disadvantage_N : N;
+fun disadvantageous_A : A;
+fun disaffected_A : A;
+fun disaffection_N : N;
+fun disafforest_V2 : V2;
+fun disagree_V2 : V2;
+fun disagreeable_A : A;
+fun disagreeableness_N : N;
+fun disagreement_N : N;
+fun disallow_V2 : V2;
+fun disappear_V : V;
+fun disappearance_N : N;
+fun disappoint_V2 : V2;
+fun disappointed_A : A;
+fun disappointing_A : A;
+fun disappointment_N : N;
+fun disapprobation_N : N;
+fun disapproval_N : N;
+fun disapprove_V : V;
+fun disapprove_V2 : V2;
+fun disapprovingly_Adv : Adv;
+fun disarm_V : V;
+fun disarm_V2 : V2;
+fun disarmament_N : N;
+fun disarrange_V2 : V2;
+fun disarrangement_N : N;
+fun disarray_N : N;
+fun disarray_V2 : V2;
+fun disassociate_V2 : V2;
+fun disaster_N : N;
+fun disastrous_A : A;
+fun disavow_V2 : V2;
+fun disavowal_N : N;
+fun disband_V : V;
+fun disband_V2 : V2;
+fun disbandment_N : N;
+fun disbelief_N : N;
+fun disbelieve_V : V;
+fun disbelieve_V2 : V2;
+fun disbelievingly_Adv : Adv;
+fun disbud_V2 : V2;
+fun disburden_V2 : V2;
+fun disburse_V : V;
+fun disburse_V2 : V2;
+fun disbursement_N : N;
+fun disc_N : N;
+fun discard_N : N;
+fun discard_V2 : V2;
+fun discern_V2 : V2;
+fun discernible_A : A;
+fun discerning_A : A;
+fun discernment_N : N;
+fun discharge_N : N;
+fun discharge_V : V;
+fun discharge_V2 : V2;
+fun disciple_N : N;
+fun disciplinarian_N : N;
+fun disciplinary_A : A;
+fun discipline_N : N;
+fun discipline_V2 : V2;
+fun disclaim_V2 : V2;
+fun disclaimer_N : N;
+fun disclose_V2 : V2;
+fun disclosure_N : N;
+fun disco_N : N;
+fun discolour_V : V;
+fun discolour_V2 : V2;
+fun discolouration_N : N;
+fun discomfit_V2 : V2;
+fun discomfiture_N : N;
+fun discomfort_N : N;
+fun discommode_V2 : V2;
+fun discompose_V2 : V2;
+fun discomposure_N : N;
+fun disconcert_V2 : V2;
+fun disconcertingly_Adv : Adv;
+fun disconnect_V2 : V2;
+fun disconnected_A : A;
+fun disconsolate_A : A;
+fun discontent_N : N;
+fun discontent_V2 : V2;
+fun discontentedly_Adv : Adv;
+fun discontinuance_N : N;
+fun discontinue_V : V;
+fun discontinue_V2 : V2;
+fun discontinuity_N : N;
+fun discontinuous_A : A;
+fun discord_N : N;
+fun discordance_N : N;
+fun discordant_A : A;
+fun discotheque_N : N;
+fun discount_N : N;
+fun discount_V2 : V2;
+fun discountenance_V2 : V2;
+fun discourage_V2 : V2;
+fun discouragement_N : N;
+fun discourse_N : N;
+fun discourse_V : V;
+fun discourteous_A : A;
+fun discourtesy_N : N;
+fun discover_V2 : V2;
+fun discoverer_N : N;
+fun discovery_N : N;
+fun discredit_N : N;
+fun discredit_V2 : V2;
+fun discreditable_A : A;
+fun discreet_A : A;
+fun discrepancy_N : N;
+fun discrete_A : A;
+fun discreteness_N : N;
+fun discretion_N : N;
+fun discretionary_A : A;
+fun discriminate_V : V;
+fun discriminate_V2 : V2;
+fun discriminating_A : A;
+fun discrimination_N : N;
+fun discriminatory_A : A;
+fun discursive_A : A;
+fun discursiveness_N : N;
+fun discus_N : N;
+fun discuss_V2 : V2;
+fun discussion_N : N;
+fun disdain_N : N;
+fun disdain_V2 : V2;
+fun disdainful_A : A;
+fun disease_N : N;
+fun diseased_A : A;
+fun disembark_V : V;
+fun disembark_V2 : V2;
+fun disembarkation_N : N;
+fun disembarrass_V2 : V2;
+fun disembarrassment_N : N;
+fun disembody_V2 : V2;
+fun disembowel_V2 : V2;
+fun disenchant_V2 : V2;
+fun disenchantment_N : N;
+fun disencumber_V2 : V2;
+fun disenfranchise_V2 : V2;
+fun disengage_V : V;
+fun disengage_V2 : V2;
+fun disengagement_N : N;
+fun disentangle_V : V;
+fun disentangle_V2 : V2;
+fun disentanglement_N : N;
+fun disequilibrium_N : N;
+fun disestablish_V2 : V2;
+fun disestablishment_N : N;
+fun disfavour_N : N;
+fun disfavour_V2 : V2;
+fun disfigure_V2 : V2;
+fun disfigurement_N : N;
+fun disforest_V2 : V2;
+fun disfranchise_V2 : V2;
+fun disfranchisement_N : N;
+fun disgorge_V2 : V2;
+fun disgrace_N : N;
+fun disgrace_V2 : V2;
+fun disgraceful_A : A;
+fun disgruntled_A : A;
+fun disguise_N : N;
+fun disguise_V2 : V2;
+fun disgust_N : N;
+fun disgust_V2 : V2;
+fun disgustedly_Adv : Adv;
+fun disgusting_A : A;
+fun dish_N : N;
+fun dish_V2 : V2;
+fun dishabille_N : N;
+fun disharmonious_A : A;
+fun disharmony_N : N;
+fun dishcloth_N : N;
+fun dishearten_V2 : V2;
+fun dishevelled_A : A;
+fun dishful_N : N;
+fun dishonest_A : A;
+fun dishonesty_N : N;
+fun dishonour_N : N;
+fun dishonour_V2 : V2;
+fun dishonourable_A : A;
+fun dishwasher_N : N;
+fun dishwater_N : N;
+fun dishy_A : A;
+fun disillusion_N : N;
+fun disillusion_V2 : V2;
+fun disillusionment_N : N;
+fun disincentive_N : N;
+fun disinclination_N : N;
+fun disincline_V2 : V2;
+fun disinfect_V2 : V2;
+fun disinfectant_A : A;
+fun disinfectant_N : N;
+fun disinfection_N : N;
+fun disinfest_V2 : V2;
+fun disinfestation_N : N;
+fun disinflation_N : N;
+fun disingenuous_A : A;
+fun disingenuousness_N : N;
+fun disinherit_V2 : V2;
+fun disinheritance_N : N;
+fun disintegrate_V : V;
+fun disintegrate_V2 : V2;
+fun disintegration_N : N;
+fun disinter_V2 : V2;
+fun disinterested_A : A;
+fun disinterestedness_N : N;
+fun disinterment_N : N;
+fun disjoint_V2 : V2;
+fun disjointed_A : A;
+fun disjointedness_N : N;
+fun disjunctive_A : A;
+fun disk_N : N;
+fun dislike_N : N;
+fun dislike_V2 : V2;
+fun dislocate_V2 : V2;
+fun dislocation_N : N;
+fun dislodge_V2 : V2;
+fun dislodgement_N : N;
+fun disloyal_A : A;
+fun disloyalty_N : N;
+fun dismal_A : A;
+fun dismantle_V2 : V2;
+fun dismantlement_N : N;
+fun dismay_N : N;
+fun dismay_V2 : V2;
+fun dismember_V2 : V2;
+fun dismemberment_N : N;
+fun dismiss_V2 : V2;
+fun dismissal_N : N;
+fun dismount_V : V;
+fun dismount_V2 : V2;
+fun dismounted_A : A;
+fun disobedience_N : N;
+fun disobedient_A : A;
+fun disobey_V2 : V2;
+fun disoblige_V2 : V2;
+fun disorder_N : N;
+fun disorder_V2 : V2;
+fun disorderly_A : A;
+fun disorganization_N : N;
+fun disorganize_V2 : V2;
+fun disorient_V2 : V2;
+fun disorientate_V2 : V2;
+fun disown_V2 : V2;
+fun disparage_V2 : V2;
+fun disparagement_N : N;
+fun disparagingly_Adv : Adv;
+fun disparate_A : A;
+fun disparity_N : N;
+fun dispassionate_A : A;
+fun dispassionateness_N : N;
+fun dispatch_N : N;
+fun dispatch_V2 : V2;
+fun dispatch_box_N : N;
+fun dispatch_rider_N : N;
+fun dispel_V2 : V2;
+fun dispensable_A : A;
+fun dispensary_N : N;
+fun dispensation_N : N;
+fun dispense_V : V;
+fun dispense_V2 : V2;
+fun dispenser_N : N;
+fun dispersal_N : N;
+fun disperse_V : V;
+fun disperse_V2 : V2;
+fun dispersion_N : N;
+fun dispirit_V2 : V2;
+fun dispiritedly_Adv : Adv;
+fun displace_V2 : V2;
+fun displacement_N : N;
+fun display_N : N;
+fun display_V2 : V2;
+fun displease_V2 : V2;
+fun displeasing_A : A;
+fun displeasure_N : N;
+fun disport_V2 : V2;
+fun disposable_A : A;
+fun disposal_N : N;
+fun dispose_V : V;
+fun dispose_V2 : V2;
+fun disposition_N : N;
+fun dispossess_V2 : V2;
+fun dispossession_N : N;
+fun disproof_N : N;
+fun disproportion_N : N;
+fun disproportionate_A : A;
+fun disprove_V2 : V2;
+fun disputable_A : A;
+fun disputant_N : N;
+fun disputation_N : N;
+fun disputatious_A : A;
+fun dispute_N : N;
+fun dispute_V : V;
+fun dispute_V2 : V2;
+fun disqualification_N : N;
+fun disqualify_V2 : V2;
+fun disquiet_N : N;
+fun disquiet_V2 : V2;
+fun disquieting_A : A;
+fun disquietude_N : N;
+fun disquisition_N : N;
+fun disregard_N : N;
+fun disregard_V2 : V2;
+fun disrepair_N : N;
+fun disreputable_A : A;
+fun disrepute_N : N;
+fun disrespect_N : N;
+fun disrespectful_A : A;
+fun disrobe_V : V;
+fun disrobe_V2 : V2;
+fun disrupt_V2 : V2;
+fun disruption_N : N;
+fun disruptive_A : A;
+fun dissatisfaction_N : N;
+fun dissatisfy_V2 : V2;
+fun dissect_V2 : V2;
+fun dissection_N : N;
+fun dissemble_V : V;
+fun dissemble_V2 : V2;
+fun dissembler_N : N;
+fun disseminate_V2 : V2;
+fun dissemination_N : N;
+fun dissension_N : N;
+fun dissent_N : N;
+fun dissent_V : V;
+fun dissenter_N : N;
+fun dissertation_N : N;
+fun disservice_N : N;
+fun dissever_V2 : V2;
+fun dissidence_N : N;
+fun dissident_A : A;
+fun dissident_N : N;
+fun dissimilar_A : A;
+fun dissimilarity_N : N;
+fun dissimilitude_N : N;
+fun dissimulate_V : V;
+fun dissimulate_V2 : V2;
+fun dissimulation_N : N;
+fun dissipate_V : V;
+fun dissipate_V2 : V2;
+fun dissipated_A : A;
+fun dissipation_N : N;
+fun dissociate_V2 : V2;
+fun dissociation_N : N;
+fun dissolubility_N : N;
+fun dissoluble_A : A;
+fun dissolute_A : A;
+fun dissolution_N : N;
+fun dissolve_V : V;
+fun dissolve_V2 : V2;
+fun dissonance_N : N;
+fun dissonant_A : A;
+fun dissuade_V2 : V2;
+fun dissuasion_N : N;
+fun dissyllable_N : N;
+fun distaff_N : N;
+fun distance_N : N;
+fun distance_V2 : V2;
+fun distant_A : A;
+fun distaste_N : N;
+fun distasteful_A : A;
+fun distastefulness_N : N;
+fun distemper_N : N;
+fun distemper_V2 : V2;
+fun distend_V : V;
+fun distend_V2 : V2;
+fun distension_N : N;
+fun distil_V : V;
+fun distil_V2 : V2;
+fun distillation_N : N;
+fun distiller_N : N;
+fun distillery_N : N;
+fun distinct_A : A;
+fun distinction_N : N;
+fun distinctive_A : A;
+fun distinctiveness_N : N;
+fun distinctness_N : N;
+fun distinguish_V : V;
+fun distinguish_V2 : V2;
+fun distinguishable_A : A;
+fun distinguished_A : A;
+fun distort_V2 : V2;
+fun distortion_N : N;
+fun distract_V2 : V2;
+fun distracted_A : A;
+fun distraction_N : N;
+fun distrain_V : V;
+fun distraint_N : N;
+fun distrait_A : A;
+fun distraught_A : A;
+fun distress_N : N;
+fun distress_V2 : V2;
+fun distressful_A : A;
+fun distressing_A : A;
+fun distribute_V2 : V2;
+fun distribution_N : N;
+fun distributive_A : A;
+fun distributor_N : N;
+fun district_N : N;
+fun distrust_N : N;
+fun distrust_V2 : V2;
+fun distrustful_A : A;
+fun distrustfulness_N : N;
+fun disturb_V2 : V2;
+fun disturbance_N : N;
+fun disturbingly_Adv : Adv;
+fun disunion_N : N;
+fun disunite_V : V;
+fun disunite_V2 : V2;
+fun disunity_N : N;
+fun disuse_N : N;
+fun disused_A : A;
+fun disyllabic_A : A;
+fun disyllable_N : N;
+fun ditch_N : N;
+fun ditch_V : V;
+fun ditch_V2 : V2;
+fun dither_N : N;
+fun dither_V : V;
+fun ditto_N : N;
+fun ditty_N : N;
+fun diurnal_A : A;
+fun divagate_V : V;
+fun divagation_N : N;
+fun divan_N : N;
+fun divan_bed_N : N;
+fun dive_N : N;
+fun dive_V : V;
+fun dive_bomb_V : V;
+fun dive_bomb_V2 : V2;
+fun dive_bomber_N : N;
+fun diver_N : N;
+fun diverge_V : V;
+fun divergence_N : N;
+fun divergency_N : N;
+fun divergent_A : A;
+fun divers_A : A;
+fun diverse_A : A;
+fun diversification_N : N;
+fun diversify_V2 : V2;
+fun diversion_N : N;
+fun diversionary_A : A;
+fun diversionist_N : N;
+fun diversity_N : N;
+fun divert_V2 : V2;
+fun diverting_A : A;
+fun dives_PN : PN;
+fun divest_V2 : V2;
+fun divide_N : N;
+fun divide_V : V;
+fun divide_V2 : V2;
+fun dividend_N : N;
+fun dividend_warrant_N : N;
+fun divination_N : N;
+fun divine_A : A;
+fun divine_N : N;
+fun divine_V : V;
+fun divine_V2 : V2;
+fun diviner_N : N;
+fun diving_bell_N : N;
+fun diving_board_N : N;
+fun diving_dress_N : N;
+fun diving_suit_N : N;
+fun divinity_N : N;
+fun divisible_A : A;
+fun division_N : N;
+fun divisional_A : A;
+fun divisor_N : N;
+fun divorce_N : N;
+fun divorce_V2 : V2;
+fun divorcee_N : N;
+fun divot_N : N;
+fun divulge_V2 : V2;
+fun divulgence_N : N;
+fun divvy_N : N;
+fun dixie_N : N;
+fun diy_N : N;
+fun dizzily_Adv : Adv;
+fun dizziness_N : N;
+fun dizzy_A : A;
+fun dizzy_V2 : V2;
+fun dj_N : N;
+fun djibouti_PN : PN;
+fun djiboutian_A : A;
+fun djiboutian_N : N;
+fun djinn_N : N;
+fun djs_N : N;
+fun dlitt_N : N;
+fun dm_N : N;
+fun dna_N : N;
+fun dnepropetrovsk_PN : PN;
+fun do_N : N;
+fun do_V : V;
+fun do_V2 : V2;
+fun do_gooder_N : N;
+fun dobbin_N : N;
+fun docile_A : A;
+fun docility_N : N;
+fun dock_N : N;
+fun dock_V : V;
+fun dock_V2 : V2;
+fun docker_N : N;
+fun docket_N : N;
+fun docket_V2 : V2;
+fun dockyard_N : N;
+fun doctor_N : N;
+fun doctor_V2 : V2;
+fun doctorate_N : N;
+fun doctrinaire_A : A;
+fun doctrinaire_N : N;
+fun doctrinal_A : A;
+fun doctrine_N : N;
+fun document_N : N;
+fun document_V2 : V2;
+fun documentary_A : A;
+fun documentation_N : N;
+fun dodder_V : V;
+fun dodderer_N : N;
+fun doddering_A : A;
+fun doddery_A : A;
+fun dodge_N : N;
+fun dodge_V : V;
+fun dodge_V2 : V2;
+fun dodgem_N : N;
+fun dodger_N : N;
+fun dodgy_A : A;
+fun dodo_N : N;
+fun doe_N : N;
+fun doer_N : N;
+fun doff_V2 : V2;
+fun dog's_tooth_N : N;
+fun dog_N : N;
+fun dog_V2 : V2;
+fun dog_biscuit_N : N;
+fun dog_cart_N : N;
+fun dog_collar_N : N;
+fun dog_eared_A : A;
+fun dog_like_A : A;
+fun doge_N : N;
+fun dogfish_N : N;
+fun dogged_A : A;
+fun doggedness_N : N;
+fun doggerel_N : N;
+fun doggie_N : N;
+fun doggo_Adv : Adv;
+fun doggy_N : N;
+fun doghouse_N : N;
+fun dogma_N : N;
+fun dogmatic_A : A;
+fun dogmatically_Adv : Adv;
+fun dogmatism_N : N;
+fun dogmatize_V : V;
+fun dogmatize_V2 : V2;
+fun dogsbody_N : N;
+fun dogtooth_N : N;
+fun dogtrot_N : N;
+fun dogwatch_N : N;
+fun dogwood_N : N;
+fun doh_N : N;
+fun doily_N : N;
+fun dole_N : N;
+fun dole_V2 : V2;
+fun doleful_A : A;
+fun doll_N : N;
+fun doll_V : V;
+fun doll_V2 : V2;
+fun dollar_N : N;
+fun dollop_N : N;
+fun dolly_N : N;
+fun dolly_PN : PN;
+fun dolmen_N : N;
+fun dolour_N : N;
+fun dolourous_A : A;
+fun dolphin_N : N;
+fun dolt_N : N;
+fun doltish_A : A;
+fun domain_N : N;
+fun dome_N : N;
+fun domed_A : A;
+fun domesday_PN : PN;
+fun domestic_A : A;
+fun domestically_Adv : Adv;
+fun domesticate_V2 : V2;
+fun domestication_N : N;
+fun domesticity_N : N;
+fun domicile_N : N;
+fun domiciliary_A : A;
+fun dominance_N : N;
+fun dominant_A : A;
+fun dominate_V : V;
+fun dominate_V2 : V2;
+fun domination_N : N;
+fun domineer_V : V;
+fun domineering_A : A;
+fun dominic_PN : PN;
+fun dominica_PN : PN;
+fun dominican_A : A;
+fun dominican_N : N;
+fun dominie_N : N;
+fun dominion_N : N;
+fun domino_N : N;
+fun don't_know_N : N;
+fun don_N : N;
+fun don_PN : PN;
+fun don_V2 : V2;
+fun donald_PN : PN;
+fun donate_V2 : V2;
+fun donation_N : N;
+fun doncaster_PN : PN;
+fun donegal_PN : PN;
+fun donetsk_PN : PN;
+fun donjon_N : N;
+fun donkey_N : N;
+fun donkey_jacket_N : N;
+fun donkey_work_N : N;
+fun donnish_A : A;
+fun donor_N : N;
+fun doodle_V : V;
+fun doodlebug_N : N;
+fun doom_N : N;
+fun doom_V2 : V2;
+fun doomsday_PN : PN;
+fun door_N : N;
+fun door_to_door_A : A;
+fun doorbell_N : N;
+fun doorcase_N : N;
+fun doorframe_N : N;
+fun doorhandle_N : N;
+fun doorkeeper_N : N;
+fun doorknob_N : N;
+fun doorknocker_N : N;
+fun doorman_N : N;
+fun doormat_N : N;
+fun doornail_N : N;
+fun doorplate_N : N;
+fun doorpost_N : N;
+fun doorstep_N : N;
+fun doorstopper_N : N;
+fun doorway_N : N;
+fun dope_N : N;
+fun dope_V2 : V2;
+fun dopey_A : A;
+fun dora_PN : PN;
+fun dorchester_PN : PN;
+fun dordrecht_PN : PN;
+fun doreen_PN : PN;
+fun doric_A : A;
+fun doris_PN : PN;
+fun dorking_PN : PN;
+fun dormant_A : A;
+fun dormer_N : N;
+fun dormer_window_N : N;
+fun dormitory_N : N;
+fun dormouse_N : N;
+fun dorothy_PN : PN;
+fun dorsal_A : A;
+fun dorset_PN : PN;
+fun dortmund_PN : PN;
+fun dory_N : N;
+fun dosage_N : N;
+fun dose_N : N;
+fun dose_V2 : V2;
+fun doss_V : V;
+fun doss_house_N : N;
+fun dosser_N : N;
+fun dossier_N : N;
+fun dot_N : N;
+fun dot_V2 : V2;
+fun dotage_N : N;
+fun dotard_N : N;
+fun dote_V : V;
+fun dottle_N : N;
+fun dotty_A : A;
+fun douai_PN : PN;
+fun double_A : A;
+fun double_Adv : Adv;
+fun double_N : N;
+fun double_V : V;
+fun double_V2 : V2;
+fun double_barrelled_A : A;
+fun double_bass_N : N;
+fun double_bedded_A : A;
+fun double_breasted_A : A;
+fun double_check_V2 : V2;
+fun double_cross_N : N;
+fun double_cross_V2 : V2;
+fun double_dealer_N : N;
+fun double_dealing_A : A;
+fun double_dealing_N : N;
+fun double_decker_N : N;
+fun double_dutch_N : N;
+fun double_dyed_A : A;
+fun double_edged_A : A;
+fun double_entry_N : N;
+fun double_faced_A : A;
+fun double_first_N : N;
+fun double_jointed_A : A;
+fun double_park_V : V;
+fun double_park_V2 : V2;
+fun double_quick_A : A;
+fun double_quick_Adv : Adv;
+fun double_spacing_N : N;
+fun double_talk_N : N;
+fun double_think_N : N;
+fun doublet_N : N;
+fun doubloon_N : N;
+fun doubt_N : N;
+fun doubt_V2 : V2;
+fun doubtful_A : A;
+fun doubtless_Adv : Adv;
+fun douche_N : N;
+fun doug_PN : PN;
+fun dough_N : N;
+fun doughnut_N : N;
+fun doughty_A : A;
+fun doughy_A : A;
+fun douglas_PN : PN;
+fun dour_A : A;
+fun douse_V2 : V2;
+fun dove_N : N;
+fun dovecote_N : N;
+fun dover_PN : PN;
+fun dovetail_N : N;
+fun dovetail_V : V;
+fun dovetail_V2 : V2;
+fun dowager_N : N;
+fun dowdily_Adv : Adv;
+fun dowdiness_N : N;
+fun dowdy_A : A;
+fun dowel_N : N;
+fun dower_N : N;
+fun dower_V2 : V2;
+fun down_Adv : Adv;
+fun down_N : N;
+fun down_PN : PN;
+fun down_V2 : V2;
+fun down_and_out_N : N;
+fun down_market_A : A;
+fun down_to_earth_A : A;
+fun downbeat_N : N;
+fun downcast_A : A;
+fun downfall_N : N;
+fun downgrade_V2 : V2;
+fun downhearted_A : A;
+fun downhill_Adv : Adv;
+fun downing_street_PN : PN;
+fun downpour_N : N;
+fun downright_A : A;
+fun downright_Adv : Adv;
+fun downrightness_N : N;
+fun downstair_A : A;
+fun downstairs_A : A;
+fun downstairs_Adv : Adv;
+fun downstream_A : A;
+fun downstream_Adv : Adv;
+fun downtown_Adv : Adv;
+fun downtrodden_A : A;
+fun downward_A : A;
+fun downward_Adv : Adv;
+fun downwards_Adv : Adv;
+fun downy_A : A;
+fun dowry_N : N;
+fun dowse_V2 : V2;
+fun dowser_N : N;
+fun dowsing_N : N;
+fun doxology_N : N;
+fun doyen_N : N;
+fun doyley_N : N;
+fun doyly_N : N;
+fun doz_N : N;
+fun doze_N : N;
+fun doze_V : V;
+fun dozen_N : N;
+fun dphil_N : N;
+fun dr_PN : PN;
+fun drab_A : A;
+fun drabness_N : N;
+fun drachm_N : N;
+fun drachma_N : N;
+fun draconian_A : A;
+fun draft_N : N;
+fun draft_V2 : V2;
+fun draftee_N : N;
+fun drafting_N : N;
+fun draftsman_N : N;
+fun drag_N : N;
+fun drag_V : V;
+fun drag_V2 : V2;
+fun draggled_A : A;
+fun dragnet_N : N;
+fun dragoman_N : N;
+fun dragon_N : N;
+fun dragonfly_N : N;
+fun dragoon_N : N;
+fun dragoon_V2 : V2;
+fun drain_N : N;
+fun drain_V : V;
+fun drain_V2 : V2;
+fun drainage_N : N;
+fun drainage_basin_N : N;
+fun draining_board_N : N;
+fun drainpipe_N : N;
+fun drake_N : N;
+fun dram_N : N;
+fun drama_N : N;
+fun dramatic_A : A;
+fun dramatically_Adv : Adv;
+fun dramatics_N : N;
+fun dramatist_N : N;
+fun dramatization_N : N;
+fun dramatize_V2 : V2;
+fun drape_N : N;
+fun drape_V2 : V2;
+fun draper_N : N;
+fun drapery_N : N;
+fun drastic_A : A;
+fun drastically_Adv : Adv;
+fun drat_V2 : V2;
+fun draught_N : N;
+fun draught_V2 : V2;
+fun draught_horse_N : N;
+fun draughts_N : N;
+fun draughtsman_N : N;
+fun draughty_A : A;
+fun draw_N : N;
+fun draw_V : V;
+fun draw_V2 : V2;
+fun drawback_N : N;
+fun drawbridge_N : N;
+fun drawer_N : N;
+fun drawing_N : N;
+fun drawing_board_N : N;
+fun drawing_pin_N : N;
+fun drawing_room_N : N;
+fun drawl_N : N;
+fun drawl_V : V;
+fun drawl_V2 : V2;
+fun dray_N : N;
+fun drayton_PN : PN;
+fun dread_N : N;
+fun dread_V : V;
+fun dread_V2 : V2;
+fun dreaded_A : A;
+fun dreadful_A : A;
+fun dreadfulness_N : N;
+fun dreadnought_N : N;
+fun dream_N : N;
+fun dream_V : V;
+fun dream_V2 : V2;
+fun dreamer_N : N;
+fun dreamily_Adv : Adv;
+fun dreamland_N : N;
+fun dreamless_A : A;
+fun dreamlike_A : A;
+fun dreamworld_N : N;
+fun dreamy_A : A;
+fun drear_A : A;
+fun drearily_Adv : Adv;
+fun dreariness_N : N;
+fun dreary_A : A;
+fun dredge_N : N;
+fun dredge_V : V;
+fun dredge_V2 : V2;
+fun dredger_N : N;
+fun drench_V2 : V2;
+fun drenching_N : N;
+fun dresden_PN : PN;
+fun dress_N : N;
+fun dress_V : V;
+fun dress_V2 : V2;
+fun dress_hanger_N : N;
+fun dressage_N : N;
+fun dresser_N : N;
+fun dressing_N : N;
+fun dressing_case_N : N;
+fun dressing_down_N : N;
+fun dressing_gown_N : N;
+fun dressing_table_N : N;
+fun dressmaker_N : N;
+fun dressmaking_N : N;
+fun dressy_A : A;
+fun dribble_V : V;
+fun dribble_V2 : V2;
+fun dribbler_N : N;
+fun driblet_N : N;
+fun drier_N : N;
+fun driffield_PN : PN;
+fun drift_N : N;
+fun drift_V : V;
+fun drift_V2 : V2;
+fun drift_ice_N : N;
+fun drift_net_N : N;
+fun drift_wood_N : N;
+fun driftage_N : N;
+fun drifter_N : N;
+fun drill_N : N;
+fun drill_V : V;
+fun drill_V2 : V2;
+fun drily_Adv : Adv;
+fun drink_N : N;
+fun drink_V : V;
+fun drink_V2 : V2;
+fun drinkable_A : A;
+fun drinker_N : N;
+fun drinking_N : N;
+fun drinking_bout_N : N;
+fun drinking_fountain_N : N;
+fun drinking_song_N : N;
+fun drinking_water_N : N;
+fun drip_N : N;
+fun drip_V : V;
+fun drip_V2 : V2;
+fun drip_dry_A : A;
+fun drip_dry_V2 : V2;
+fun dripping_N : N;
+fun dripping_pan_N : N;
+fun drive_N : N;
+fun drive_V : V;
+fun drive_V2 : V2;
+fun drive_in_N : N;
+fun drivel_N : N;
+fun drivel_V : V;
+fun driveller_N : N;
+fun driver_N : N;
+fun driveway_N : N;
+fun driving_belt_N : N;
+fun driving_wheel_N : N;
+fun drizzle_N : N;
+fun drizzle_V : V;
+fun drizzly_A : A;
+fun drogheda_PN : PN;
+fun drogue_N : N;
+fun droitwich_PN : PN;
+fun droll_A : A;
+fun drollery_N : N;
+fun dromedary_N : N;
+fun drone_N : N;
+fun drone_V : V;
+fun drone_V2 : V2;
+fun dronfield_PN : PN;
+fun drool_V : V;
+fun droop_N : N;
+fun droop_V : V;
+fun droop_V2 : V2;
+fun droopingly_Adv : Adv;
+fun drop_N : N;
+fun drop_V : V;
+fun drop_V2 : V2;
+fun drop_curtain_N : N;
+fun drop_kick_N : N;
+fun dropout_N : N;
+fun dropping_zone_N : N;
+fun dropsical_A : A;
+fun dropsy_N : N;
+fun droshky_N : N;
+fun dross_N : N;
+fun drought_N : N;
+fun drove_N : N;
+fun drover_N : N;
+fun drown_V : V;
+fun drown_V2 : V2;
+fun drowse_N : N;
+fun drowse_V : V;
+fun drowse_V2 : V2;
+fun drowsily_Adv : Adv;
+fun drowsiness_N : N;
+fun drowsy_A : A;
+fun drub_V2 : V2;
+fun drubbing_N : N;
+fun drudge_N : N;
+fun drudge_V : V;
+fun drudgery_N : N;
+fun drug_N : N;
+fun drug_V2 : V2;
+fun drugget_N : N;
+fun druggist_N : N;
+fun drugstore_N : N;
+fun druid_N : N;
+fun drum_N : N;
+fun drum_V : V;
+fun drum_V2 : V2;
+fun drum_major_N : N;
+fun drum_majorette_N : N;
+fun drumfire_N : N;
+fun drumhead_A : A;
+fun drummer_N : N;
+fun drumstick_N : N;
+fun drunk_A : A;
+fun drunk_N : N;
+fun drunkard_N : N;
+fun drunken_A : A;
+fun drunkenness_N : N;
+fun drupe_N : N;
+fun dry_A : A;
+fun dry_V : V;
+fun dry_V2 : V2;
+fun dry_clean_V2 : V2;
+fun dry_cleaner_N : N;
+fun dry_cleaning_N : N;
+fun dry_shod_A : A;
+fun dry_walling_N : N;
+fun dryad_N : N;
+fun dryer_N : N;
+fun dryness_N : N;
+fun dsc_N : N;
+fun dss_N : N;
+fun dti_N : N;
+fun dts_N : N;
+fun dual_A : A;
+fun dub_V2 : V2;
+fun dubbin_N : N;
+fun dubiety_N : N;
+fun dubious_A : A;
+fun dubiousness_N : N;
+fun dublin_PN : PN;
+fun dubliner_N : N;
+fun ducal_A : A;
+fun ducat_N : N;
+fun duce_N : N;
+fun duchess_N : N;
+fun duchy_N : N;
+fun duck_N : N;
+fun duck_V : V;
+fun duck_V2 : V2;
+fun duckbilled_A : A;
+fun ducking_N : N;
+fun ducking_stool_N : N;
+fun duckling_N : N;
+fun duckweed_N : N;
+fun ducky_N : N;
+fun duct_N : N;
+fun ductile_A : A;
+fun ductility_N : N;
+fun dud_A : A;
+fun dud_N : N;
+fun dude_N : N;
+fun dudgeon_N : N;
+fun dudley_PN : PN;
+fun due_A : A;
+fun due_Adv : Adv;
+fun due_N : N;
+fun duel_N : N;
+fun duel_V : V;
+fun duelist_N : N;
+fun duellist_N : N;
+fun duenna_N : N;
+fun duet_N : N;
+fun duffel_N : N;
+fun duffer_N : N;
+fun duffle_N : N;
+fun dug_N : N;
+fun dugong_N : N;
+fun dugout_N : N;
+fun duisburg_PN : PN;
+fun duke_N : N;
+fun dukedom_N : N;
+fun dukinfield_PN : PN;
+fun dulcet_A : A;
+fun dulcimer_N : N;
+fun dull_A : A;
+fun dull_V : V;
+fun dull_V2 : V2;
+fun dullard_N : N;
+fun dullness_N : N;
+fun dully_Adv : Adv;
+fun duly_Adv : Adv;
+fun dumb_A : A;
+fun dumbarton_PN : PN;
+fun dumbbell_N : N;
+fun dumbfound_V2 : V2;
+fun dumbness_N : N;
+fun dumbwaiter_N : N;
+fun dumdum_N : N;
+fun dumfries_PN : PN;
+fun dummy_N : N;
+fun dump_N : N;
+fun dump_V2 : V2;
+fun dumper_N : N;
+fun dumpling_N : N;
+fun dumpy_A : A;
+fun dun_A : A;
+fun dun_N : N;
+fun dun_V2 : V2;
+fun dun_laoghaire_PN : PN;
+fun duncan_PN : PN;
+fun dunce_N : N;
+fun dundalk_PN : PN;
+fun dundee_PN : PN;
+fun dunderhead_N : N;
+fun dune_N : N;
+fun dunfermline_PN : PN;
+fun dung_N : N;
+fun dungeon_N : N;
+fun dunghill_N : N;
+fun dunk_V2 : V2;
+fun dunkirk_PN : PN;
+fun dunoon_PN : PN;
+fun dunstable_PN : PN;
+fun duodecimal_A : A;
+fun duodenal_A : A;
+fun duodenum_N : N;
+fun duologue_N : N;
+fun dupe_N : N;
+fun dupe_V2 : V2;
+fun dupl_PN : PN;
+fun duplex_A : A;
+fun duplicate_A : A;
+fun duplicate_N : N;
+fun duplicate_V2 : V2;
+fun duplication_N : N;
+fun duplicator_N : N;
+fun duplicity_N : N;
+fun durability_N : N;
+fun durable_A : A;
+fun durable_N : N;
+fun durance_N : N;
+fun duration_N : N;
+fun durban_PN : PN;
+fun durbar_N : N;
+fun duress_N : N;
+fun durham_PN : PN;
+fun durrington_PN : PN;
+fun dursley_PN : PN;
+fun dusk_N : N;
+fun dusky_A : A;
+fun dusseldorf_PN : PN;
+fun dust_N : N;
+fun dust_V2 : V2;
+fun dust_bowl_N : N;
+fun dust_coat_N : N;
+fun dust_jacket_N : N;
+fun dust_sheet_N : N;
+fun dust_up_N : N;
+fun dust_wrapper_N : N;
+fun dustbin_N : N;
+fun dustcart_N : N;
+fun duster_N : N;
+fun dustman_N : N;
+fun dustpan_N : N;
+fun dusty_A : A;
+fun dutch_A : A;
+fun dutch_N : N;
+fun dutchman_N : N;
+fun duteous_A : A;
+fun dutiable_A : A;
+fun dutiful_A : A;
+fun duty_N : N;
+fun duty_free_A : A;
+fun duvet_N : N;
+fun dwarf_N : N;
+fun dwarf_V2 : V2;
+fun dwarfish_A : A;
+fun dwell_V : V;
+fun dweller_N : N;
+fun dwelling_N : N;
+fun dwelling_house_N : N;
+fun dwindle_V : V;
+fun dyarchy_N : N;
+fun dye_N : N;
+fun dye_V : V;
+fun dye_V2 : V2;
+fun dye_works_N : N;
+fun dyed_in_the_wool_A : A;
+fun dyer_N : N;
+fun dyestuff_N : N;
+fun dyfed_PN : PN;
+fun dyke_N : N;
+fun dyke_V : V;
+fun dyke_V2 : V2;
+fun dynamic_A : A;
+fun dynamic_N : N;
+fun dynamically_Adv : Adv;
+fun dynamism_N : N;
+fun dynamite_N : N;
+fun dynamite_V2 : V2;
+fun dynamo_N : N;
+fun dynast_N : N;
+fun dynastic_A : A;
+fun dynasty_N : N;
+fun dyne_N : N;
+fun dysentery_N : N;
+fun dyslexia_N : N;
+fun dyslexic_A : A;
+fun dyspepsia_N : N;
+fun dyspeptic_A : A;
+fun dyspeptic_N : N;
+fun debris_2_N : N;
+fun debut_2_N : N;
+fun debutante_2_N : N;
+fun debacle_N : N;
+fun decollete_A : A;
+fun decor_N : N;
+fun demarche_N : N;
+fun demode_A : A;
+fun denouement_N : N;
+fun deshabille_N : N;
+fun detente_N : N;
+fun e'en_Adv : Adv;
+fun e'er_Adv : Adv;
+fun each_A : A;
+fun eager_A : A;
+fun eagerness_N : N;
+fun eagle_N : N;
+fun eagle_eyed_A : A;
+fun eaglescliffe_PN : PN;
+fun eaglet_N : N;
+fun ealing_PN : PN;
+fun ear_N : N;
+fun ear_trumpet_N : N;
+fun earache_N : N;
+fun eardrop_N : N;
+fun eardrum_N : N;
+fun earful_N : N;
+fun earl_N : N;
+fun earl_shilton_PN : PN;
+fun earldom_N : N;
+fun early_A : A;
+fun early_Adv : Adv;
+fun early_warning_A : A;
+fun earmark_N : N;
+fun earmark_V2 : V2;
+fun earn_V2 : V2;
+fun earnest_A : A;
+fun earnest_N : N;
+fun earnest_money_N : N;
+fun earnestness_N : N;
+fun earphone_N : N;
+fun earpiece_N : N;
+fun earring_N : N;
+fun earshot_N : N;
+fun earth_N : N;
+fun earth_V2 : V2;
+fun earth_closet_N : N;
+fun earthen_A : A;
+fun earthenware_N : N;
+fun earthly_A : A;
+fun earthnut_N : N;
+fun earthquake_N : N;
+fun earthwork_N : N;
+fun earthworm_N : N;
+fun earthy_A : A;
+fun earwax_N : N;
+fun earwig_N : N;
+fun ease_N : N;
+fun ease_V : V;
+fun ease_V2 : V2;
+fun easel_N : N;
+fun easily_Adv : Adv;
+fun easington_PN : PN;
+fun east_A : A;
+fun east_Adv : Adv;
+fun east_N : N;
+fun east_dereham_PN : PN;
+fun east_grinstead_PN : PN;
+fun east_kilbride_PN : PN;
+fun east_retford_PN : PN;
+fun eastbourne_PN : PN;
+fun easter_N : N;
+fun easter_PN : PN;
+fun easterly_A : A;
+fun easterly_Adv : Adv;
+fun eastern_A : A;
+fun easternmost_A : A;
+fun eastleigh_PN : PN;
+fun eastward_A : A;
+fun eastward_Adv : Adv;
+fun eastwards_Adv : Adv;
+fun easy_A : A;
+fun easy_Adv : Adv;
+fun easygoing_A : A;
+fun eat_V : V;
+fun eat_V2 : V2;
+fun eatable_A : A;
+fun eatable_N : N;
+fun eater_N : N;
+fun eating_apple_N : N;
+fun eating_house_N : N;
+fun eau_de_cologne_N : N;
+fun eau_de_vie_N : N;
+fun eavesdrop_V : V;
+fun eavesdropper_N : N;
+fun ebb_N : N;
+fun ebb_V : V;
+fun ebbtide_N : N;
+fun ebbw_vale_PN : PN;
+fun ebonite_N : N;
+fun ebony_A : A;
+fun ebony_N : N;
+fun ebullience_N : N;
+fun ebullient_A : A;
+fun ec_N : N;
+fun eccentric_A : A;
+fun eccentric_N : N;
+fun eccentricity_N : N;
+fun eccles_PN : PN;
+fun ecclesiastic_N : N;
+fun ecclesiastical_A : A;
+fun echelon_N : N;
+fun echo_N : N;
+fun echo_V : V;
+fun echo_V2 : V2;
+fun echo_sounder_N : N;
+fun echo_sounding_N : N;
+fun eclectic_A : A;
+fun eclecticism_N : N;
+fun eclipse_N : N;
+fun eclipse_V2 : V2;
+fun ecliptic_N : N;
+fun ecological_A : A;
+fun ecologist_N : N;
+fun ecology_N : N;
+fun economic_A : A;
+fun economical_A : A;
+fun economics_N : N;
+fun economist_N : N;
+fun economize_V : V;
+fun economize_V2 : V2;
+fun economy_N : N;
+fun ecosystem_N : N;
+fun ecstasy_N : N;
+fun ecstatic_A : A;
+fun ecstatically_Adv : Adv;
+fun ectoplasm_N : N;
+fun ecuador_PN : PN;
+fun ecuadorian_A : A;
+fun ecuadorian_N : N;
+fun ecumenical_A : A;
+fun eczema_N : N;
+fun ed_PN : PN;
+fun eddie_PN : PN;
+fun eddy_N : N;
+fun eddy_PN : PN;
+fun eddy_V : V;
+fun edelweiss_N : N;
+fun eden_PN : PN;
+fun edenbridge_PN : PN;
+fun edgar_PN : PN;
+fun edge_N : N;
+fun edge_V : V;
+fun edge_V2 : V2;
+fun edgeways_Adv : Adv;
+fun edgewise_Adv : Adv;
+fun edging_N : N;
+fun edgy_A : A;
+fun edibility_N : N;
+fun edible_A : A;
+fun edible_N : N;
+fun edict_N : N;
+fun edification_N : N;
+fun edifice_N : N;
+fun edify_V2 : V2;
+fun edinburgh_PN : PN;
+fun edit_V2 : V2;
+fun edith_PN : PN;
+fun edition_N : N;
+fun editor_N : N;
+fun editorial_A : A;
+fun editorial_N : N;
+fun edmund_PN : PN;
+fun edp_N : N;
+fun educate_V2 : V2;
+fun education_N : N;
+fun educational_A : A;
+fun educationalist_N : N;
+fun educationist_N : N;
+fun educator_N : N;
+fun educe_V2 : V2;
+fun edward_PN : PN;
+fun edwardian_A : A;
+fun edwardian_N : N;
+fun eec_N : N;
+fun eeg_N : N;
+fun eel_N : N;
+fun eerie_A : A;
+fun eerily_Adv : Adv;
+fun eeriness_N : N;
+fun eery_A : A;
+fun eff_V : V;
+fun efface_V2 : V2;
+fun effacement_N : N;
+fun effect_N : N;
+fun effect_V2 : V2;
+fun effective_A : A;
+fun effectiveness_N : N;
+fun effectual_A : A;
+fun effectuality_N : N;
+fun effectualness_N : N;
+fun effeminacy_N : N;
+fun effeminate_A : A;
+fun effendi_N : N;
+fun effervesce_V : V;
+fun effervescence_N : N;
+fun effervescent_A : A;
+fun effete_A : A;
+fun effeteness_N : N;
+fun efficacious_A : A;
+fun efficacy_N : N;
+fun efficiency_N : N;
+fun efficient_A : A;
+fun effigy_N : N;
+fun efflorescence_N : N;
+fun efflorescent_A : A;
+fun effluent_N : N;
+fun efflux_N : N;
+fun effort_N : N;
+fun effortless_A : A;
+fun effrontery_N : N;
+fun effulgence_N : N;
+fun effulgent_A : A;
+fun effusion_N : N;
+fun effusive_A : A;
+fun effusiveness_N : N;
+fun eft_N : N;
+fun efta_N : N;
+fun eg_PN : PN;
+fun egalitarian_A : A;
+fun egalitarian_N : N;
+fun egalitarianism_N : N;
+fun egg_N : N;
+fun egg_V2 : V2;
+fun egg_beater_N : N;
+fun egg_cup_N : N;
+fun egg_whisk_N : N;
+fun egghead_N : N;
+fun eggplant_N : N;
+fun eggshake_N : N;
+fun eggshell_N : N;
+fun eglantine_N : N;
+fun ego_N : N;
+fun egocentric_A : A;
+fun egoism_N : N;
+fun egoist_N : N;
+fun egoistic_A : A;
+fun egoistical_A : A;
+fun egotism_N : N;
+fun egotist_N : N;
+fun egotistic_A : A;
+fun egotistically_Adv : Adv;
+fun egotrip_N : N;
+fun egotrip_V : V;
+fun egregious_A : A;
+fun egremont_PN : PN;
+fun egress_N : N;
+fun egret_N : N;
+fun egypt_PN : PN;
+fun egyptian_A : A;
+fun egyptian_N : N;
+fun eiche_PN : PN;
+fun eiderdown_N : N;
+fun eightpence_N : N;
+fun eightpenny_A : A;
+fun eightsome_N : N;
+fun eileen_PN : PN;
+fun eindhoven_PN : PN;
+fun eisteddfod_N : N;
+fun either_A : A;
+fun either_Adv : Adv;
+fun ejaculate_V2 : V2;
+fun ejaculation_N : N;
+fun eject_V : V;
+fun eject_V2 : V2;
+fun ejection_N : N;
+fun ejector_N : N;
+fun ejector_seat_N : N;
+fun eke_V2 : V2;
+fun el_dorado_N : N;
+fun el_salvador_PN : PN;
+fun elaborate_A : A;
+fun elaborate_V2 : V2;
+fun elaborateness_N : N;
+fun elaboration_N : N;
+fun elaine_PN : PN;
+fun eland_N : N;
+fun elapse_V : V;
+fun elastic_A : A;
+fun elastic_N : N;
+fun elasticity_N : N;
+fun elasticized_A : A;
+fun elastoplast_N : N;
+fun elate_V2 : V2;
+fun elation_N : N;
+fun elbow_N : N;
+fun elbow_V2 : V2;
+fun elder_N : N;
+fun elderly_A : A;
+fun elderslie_PN : PN;
+fun eleanor_PN : PN;
+fun elect_A : A;
+fun elect_V2 : V2;
+fun election_N : N;
+fun electioneering_N : N;
+fun elective_A : A;
+fun elector_N : N;
+fun electoral_A : A;
+fun electorate_N : N;
+fun electric_A : A;
+fun electrical_A : A;
+fun electrician_N : N;
+fun electricity_N : N;
+fun electrification_N : N;
+fun electrify_V2 : V2;
+fun electrocardiogram_N : N;
+fun electrocardiograph_N : N;
+fun electrochemistry_N : N;
+fun electrocute_V2 : V2;
+fun electrocution_N : N;
+fun electrode_N : N;
+fun electrolysis_N : N;
+fun electrolyte_N : N;
+fun electromagnet_N : N;
+fun electromagnetic_A : A;
+fun electromagnetism_N : N;
+fun electron_N : N;
+fun electronic_A : A;
+fun electronically_Adv : Adv;
+fun electronics_N : N;
+fun electroplate_N : N;
+fun electroplate_V2 : V2;
+fun electrostatic_A : A;
+fun eleemosynary_A : A;
+fun elegance_N : N;
+fun elegant_A : A;
+fun elegiac_A : A;
+fun elegy_N : N;
+fun element_N : N;
+fun elemental_A : A;
+fun elementary_A : A;
+fun elephant_N : N;
+fun elephantiasis_N : N;
+fun elephantine_A : A;
+fun elevate_V2 : V2;
+fun elevation_N : N;
+fun elevator_N : N;
+fun elf_N : N;
+fun elfin_A : A;
+fun elfish_A : A;
+fun elgin_PN : PN;
+fun elicit_V2 : V2;
+fun elicitation_N : N;
+fun elide_V2 : V2;
+fun eligibility_N : N;
+fun eligible_A : A;
+fun eliminate_V2 : V2;
+fun elimination_N : N;
+fun elision_N : N;
+fun elitism_N : N;
+fun elitist_N : N;
+fun elixir_N : N;
+fun eliza_PN : PN;
+fun elizabeth_PN : PN;
+fun elizabethan_A : A;
+fun elizabethan_N : N;
+fun elk_N : N;
+fun elland_PN : PN;
+fun ellen_PN : PN;
+fun ellesmere_PN : PN;
+fun ellesmere_port_PN : PN;
+fun ellie_PN : PN;
+fun ellipse_N : N;
+fun ellipsis_N : N;
+fun elliptic_A : A;
+fun elliptical_A : A;
+fun elloughton_PN : PN;
+fun elm_N : N;
+fun elocution_N : N;
+fun elocutionary_A : A;
+fun elocutionist_N : N;
+fun elongate_V : V;
+fun elongate_V2 : V2;
+fun elongation_N : N;
+fun elope_V : V;
+fun elopement_N : N;
+fun eloquence_N : N;
+fun eloquent_A : A;
+fun else_Adv : Adv;
+fun elsewhere_Adv : Adv;
+fun elsie_PN : PN;
+fun elstree_PN : PN;
+fun elucidate_V2 : V2;
+fun elucidation_N : N;
+fun elude_V2 : V2;
+fun elusive_A : A;
+fun elver_N : N;
+fun elvish_A : A;
+fun ely_PN : PN;
+fun elysian_A : A;
+fun elysium_PN : PN;
+fun emaciate_V2 : V2;
+fun emaciation_N : N;
+fun emanate_V : V;
+fun emanation_N : N;
+fun emancipate_V2 : V2;
+fun emancipation_N : N;
+fun emasculate_V2 : V2;
+fun emasculation_N : N;
+fun embalm_V2 : V2;
+fun embalmment_N : N;
+fun embankment_N : N;
+fun embargo_N : N;
+fun embargo_V2 : V2;
+fun embark_V : V;
+fun embark_V2 : V2;
+fun embarkation_N : N;
+fun embarrass_V2 : V2;
+fun embarrassing_A : A;
+fun embarrassment_N : N;
+fun embassy_N : N;
+fun embattled_A : A;
+fun embed_V2 : V2;
+fun embellish_V2 : V2;
+fun embellishment_N : N;
+fun ember_N : N;
+fun embezzle_V2 : V2;
+fun embezzlement_N : N;
+fun embitter_V2 : V2;
+fun embitterment_N : N;
+fun emblazon_V2 : V2;
+fun emblem_N : N;
+fun emblematic_A : A;
+fun embodiment_N : N;
+fun embody_V2 : V2;
+fun embolden_V2 : V2;
+fun embonpoint_A : A;
+fun embonpoint_N : N;
+fun emboss_V2 : V2;
+fun embrace_N : N;
+fun embrace_V : V;
+fun embrace_V2 : V2;
+fun embrasure_N : N;
+fun embrocation_N : N;
+fun embroider_V : V;
+fun embroider_V2 : V2;
+fun embroidery_N : N;
+fun embroil_V2 : V2;
+fun embryo_N : N;
+fun embryonic_A : A;
+fun emeer_N : N;
+fun emend_V2 : V2;
+fun emendation_N : N;
+fun emerald_N : N;
+fun emerge_V : V;
+fun emergence_N : N;
+fun emergency_N : N;
+fun emergent_A : A;
+fun emeritus_A : A;
+fun emery_N : N;
+fun emetic_N : N;
+fun emigrant_N : N;
+fun emigrate_V : V;
+fun emigration_N : N;
+fun emily_PN : PN;
+fun eminence_N : N;
+fun eminent_A : A;
+fun emir_N : N;
+fun emirate_N : N;
+fun emissary_N : N;
+fun emission_N : N;
+fun emit_V2 : V2;
+fun emma_PN : PN;
+fun emolument_N : N;
+fun emotion_N : N;
+fun emotional_A : A;
+fun emotionless_A : A;
+fun emotive_A : A;
+fun empale_V2 : V2;
+fun empanel_V2 : V2;
+fun empathy_N : N;
+fun emperor_N : N;
+fun emphasis_N : N;
+fun emphasize_V2 : V2;
+fun emphatic_A : A;
+fun emphatically_Adv : Adv;
+fun empire_N : N;
+fun empiric_A : A;
+fun empirical_A : A;
+fun empiricism_N : N;
+fun empiricist_N : N;
+fun emplacement_N : N;
+fun emplane_V : V;
+fun emplane_V2 : V2;
+fun employ_N : N;
+fun employ_V2 : V2;
+fun employable_A : A;
+fun employee_N : N;
+fun employer_N : N;
+fun employment_N : N;
+fun emporium_N : N;
+fun empower_V2 : V2;
+fun empress_N : N;
+fun emptiness_N : N;
+fun empty_A : A;
+fun empty_N : N;
+fun empty_V : V;
+fun empty_V2 : V2;
+fun empty_handed_A : A;
+fun empty_headed_A : A;
+fun empurpled_A : A;
+fun empyrean_A : A;
+fun empyrean_N : N;
+fun emsworth_PN : PN;
+fun emu_N : N;
+fun emulate_V2 : V2;
+fun emulation_N : N;
+fun emulous_A : A;
+fun emulsify_V2 : V2;
+fun emulsion_N : N;
+fun en_clair_Adv : Adv;
+fun en_famille_Adv : Adv;
+fun en_masse_Adv : Adv;
+fun en_route_Adv : Adv;
+fun enable_V2 : V2;
+fun enabling_A : A;
+fun enact_V2 : V2;
+fun enactment_N : N;
+fun enamel_N : N;
+fun enamel_V2 : V2;
+fun enamour_V2 : V2;
+fun enc_PN : PN;
+fun encamp_V : V;
+fun encamp_V2 : V2;
+fun encampment_N : N;
+fun encase_V2 : V2;
+fun encaustic_A : A;
+fun encephalitis_N : N;
+fun enchain_V2 : V2;
+fun enchant_V2 : V2;
+fun enchanter_N : N;
+fun enchantingly_Adv : Adv;
+fun enchantment_N : N;
+fun enchantress_N : N;
+fun encircle_V2 : V2;
+fun encirclement_N : N;
+fun enclave_N : N;
+fun enclose_V2 : V2;
+fun enclosure_N : N;
+fun encode_V2 : V2;
+fun encomium_N : N;
+fun encompass_V2 : V2;
+fun encore_N : N;
+fun encore_V2 : V2;
+fun encounter_N : N;
+fun encounter_V2 : V2;
+fun encourage_V2 : V2;
+fun encouragement_N : N;
+fun encouragingly_Adv : Adv;
+fun encroach_V : V;
+fun encroachment_N : N;
+fun encrust_V : V;
+fun encrust_V2 : V2;
+fun encumber_V2 : V2;
+fun encumbrance_N : N;
+fun encyclical_A : A;
+fun encyclical_N : N;
+fun encyclopaedia_N : N;
+fun encyclopaedic_A : A;
+fun encyclopedia_N : N;
+fun encyclopedic_A : A;
+fun end_N : N;
+fun end_V : V;
+fun end_V2 : V2;
+fun end_all_N : N;
+fun endanger_V2 : V2;
+fun endear_V2 : V2;
+fun endearingly_Adv : Adv;
+fun endearment_N : N;
+fun endeavour_N : N;
+fun endeavour_V : V;
+fun endemic_A : A;
+fun endemic_N : N;
+fun ending_N : N;
+fun endive_N : N;
+fun endless_A : A;
+fun endorse_V2 : V2;
+fun endorsement_N : N;
+fun endow_V2 : V2;
+fun endowment_N : N;
+fun endue_V2 : V2;
+fun endurable_A : A;
+fun endurance_N : N;
+fun endure_V : V;
+fun endure_V2 : V2;
+fun enduring_A : A;
+fun endways_Adv : Adv;
+fun endwise_Adv : Adv;
+fun enema_N : N;
+fun enemy_N : N;
+fun energetic_A : A;
+fun energetically_Adv : Adv;
+fun energy_N : N;
+fun enervate_V2 : V2;
+fun enfant_terrible_N : N;
+fun enfeeble_V2 : V2;
+fun enfield_PN : PN;
+fun enfold_V2 : V2;
+fun enforce_V2 : V2;
+fun enforceable_A : A;
+fun enforcement_N : N;
+fun enfranchise_V2 : V2;
+fun enfranchisement_N : N;
+fun engage_V : V;
+fun engage_V2 : V2;
+fun engagement_N : N;
+fun engaging_A : A;
+fun engender_V2 : V2;
+fun engine_N : N;
+fun engine_driver_N : N;
+fun engineer_N : N;
+fun engineer_V : V;
+fun engineer_V2 : V2;
+fun engineering_N : N;
+fun england_PN : PN;
+fun english_A : A;
+fun english_N : N;
+fun englishman_N : N;
+fun englishwoman_N : N;
+fun engraft_V2 : V2;
+fun engrave_V2 : V2;
+fun engraver_N : N;
+fun engraving_N : N;
+fun engross_V2 : V2;
+fun engulf_V2 : V2;
+fun enhance_V2 : V2;
+fun enhancement_N : N;
+fun enigma_N : N;
+fun enigmatic_A : A;
+fun enigmatically_Adv : Adv;
+fun enjoin_V2 : V2;
+fun enjoy_V2 : V2;
+fun enjoyable_A : A;
+fun enjoyment_N : N;
+fun enkindle_V2 : V2;
+fun enlarge_V : V;
+fun enlarge_V2 : V2;
+fun enlargement_N : N;
+fun enlighten_V2 : V2;
+fun enlightened_A : A;
+fun enlightenment_N : N;
+fun enlist_V : V;
+fun enlist_V2 : V2;
+fun enlistment_N : N;
+fun enliven_V2 : V2;
+fun enmesh_V2 : V2;
+fun enmity_N : N;
+fun ennoble_V2 : V2;
+fun ennoblement_N : N;
+fun ennui_N : N;
+fun enoch_PN : PN;
+fun enormity_N : N;
+fun enormous_A : A;
+fun enormousness_N : N;
+fun enough_A : A;
+fun enough_Adv : Adv;
+fun enough_N : N;
+fun enplane_V : V;
+fun enplane_V2 : V2;
+fun enquire_V : V;
+fun enquire_V2 : V2;
+fun enquirer_N : N;
+fun enquiringly_Adv : Adv;
+fun enquiry_N : N;
+fun enrage_V2 : V2;
+fun enrapture_V2 : V2;
+fun enrich_V2 : V2;
+fun enrichment_N : N;
+fun enrol_V : V;
+fun enrol_V2 : V2;
+fun enroll_V : V;
+fun enroll_V2 : V2;
+fun enrolment_N : N;
+fun enschede_PN : PN;
+fun ensconce_V2 : V2;
+fun ensemble_N : N;
+fun enshrine_V2 : V2;
+fun enshroud_V2 : V2;
+fun ensign_N : N;
+fun ensilage_N : N;
+fun enslave_V2 : V2;
+fun enslavement_N : N;
+fun ensnare_V2 : V2;
+fun ensue_V : V;
+fun ensure_V : V;
+fun ensure_V2 : V2;
+fun entail_N : N;
+fun entail_V2 : V2;
+fun entangle_V2 : V2;
+fun entanglement_N : N;
+fun entente_N : N;
+fun entente_cordiale_N : N;
+fun enter_V : V;
+fun enter_V2 : V2;
+fun enteric_A : A;
+fun enteritis_N : N;
+fun enterprise_N : N;
+fun enterprising_A : A;
+fun entertain_V2 : V2;
+fun entertainer_N : N;
+fun entertaining_A : A;
+fun entertainment_N : N;
+fun enthral_V2 : V2;
+fun enthrall_V2 : V2;
+fun enthrone_V2 : V2;
+fun enthronement_N : N;
+fun enthuse_V : V;
+fun enthusiasm_N : N;
+fun enthusiast_N : N;
+fun enthusiastic_A : A;
+fun enthusiastically_Adv : Adv;
+fun entice_V2 : V2;
+fun enticement_N : N;
+fun entire_A : A;
+fun entirety_N : N;
+fun entitle_V2 : V2;
+fun entitlement_N : N;
+fun entity_N : N;
+fun entomb_V2 : V2;
+fun entomological_A : A;
+fun entomologist_N : N;
+fun entomology_N : N;
+fun entourage_N : N;
+fun entr'acte_N : N;
+fun entrain_V : V;
+fun entrain_V2 : V2;
+fun entrance_N : N;
+fun entrance_V2 : V2;
+fun entrance_fee_N : N;
+fun entrance_money_N : N;
+fun entrant_N : N;
+fun entrap_V2 : V2;
+fun entreat_V2 : V2;
+fun entreatingly_Adv : Adv;
+fun entreaty_N : N;
+fun entrench_V2 : V2;
+fun entrenchment_N : N;
+fun entrepot_N : N;
+fun entrepreneur_N : N;
+fun entrepreneurial_A : A;
+fun entrust_V2 : V2;
+fun entry_N : N;
+fun entree_N : N;
+fun entwine_V2 : V2;
+fun enumerate_V2 : V2;
+fun enumeration_N : N;
+fun enunciate_V : V;
+fun enunciate_V2 : V2;
+fun enunciation_N : N;
+fun envelop_V2 : V2;
+fun envelope_N : N;
+fun envelopment_N : N;
+fun envenom_V2 : V2;
+fun enviable_A : A;
+fun envious_A : A;
+fun environ_V2 : V2;
+fun environment_N : N;
+fun environmental_A : A;
+fun envisage_V2 : V2;
+fun envoi_N : N;
+fun envoy_N : N;
+fun envy_N : N;
+fun envy_V2 : V2;
+fun enwrap_V2 : V2;
+fun enzyme_N : N;
+fun eon_N : N;
+fun epaulet_N : N;
+fun epaulette_N : N;
+fun ephemeral_A : A;
+fun epic_A : A;
+fun epic_N : N;
+fun epicentre_N : N;
+fun epicure_N : N;
+fun epicurean_A : A;
+fun epicurean_N : N;
+fun epidemic_A : A;
+fun epidemic_N : N;
+fun epidemiologist_N : N;
+fun epidemiology_N : N;
+fun epidermis_N : N;
+fun epidiascope_N : N;
+fun epiglottis_N : N;
+fun epigram_N : N;
+fun epigrammatic_A : A;
+fun epilepsy_N : N;
+fun epileptic_A : A;
+fun epileptic_N : N;
+fun epilogue_N : N;
+fun epiphany_PN : PN;
+fun episcopal_A : A;
+fun episcopalian_A : A;
+fun episcopalian_N : N;
+fun episode_N : N;
+fun episodic_A : A;
+fun epistle_N : N;
+fun epistolary_A : A;
+fun epitaph_N : N;
+fun epithet_N : N;
+fun epitome_N : N;
+fun epitomize_V2 : V2;
+fun epoch_N : N;
+fun epoch_making_A : A;
+fun epping_PN : PN;
+fun epsom_PN : PN;
+fun equable_A : A;
+fun equal_A : A;
+fun equal_N : N;
+fun equal_V2 : V2;
+fun equalitarian_N : N;
+fun equality_N : N;
+fun equalization_N : N;
+fun equalize_V2 : V2;
+fun equalizer_N : N;
+fun equanimity_N : N;
+fun equate_V2 : V2;
+fun equation_N : N;
+fun equator_N : N;
+fun equatorial_A : A;
+fun equerry_N : N;
+fun equestrian_A : A;
+fun equestrian_N : N;
+fun equidistant_A : A;
+fun equilateral_A : A;
+fun equilibrium_N : N;
+fun equine_A : A;
+fun equinoctial_A : A;
+fun equinox_N : N;
+fun equip_V2 : V2;
+fun equipage_N : N;
+fun equipment_N : N;
+fun equipoise_N : N;
+fun equitable_A : A;
+fun equity_N : N;
+fun equivalence_N : N;
+fun equivalent_A : A;
+fun equivalent_N : N;
+fun equivocal_A : A;
+fun equivocation_N : N;
+fun era_N : N;
+fun eradicate_V2 : V2;
+fun eradication_N : N;
+fun erase_V2 : V2;
+fun eraser_N : N;
+fun erasure_N : N;
+fun ere_Adv : Adv;
+fun erect_A : A;
+fun erect_V2 : V2;
+fun erectile_A : A;
+fun erection_N : N;
+fun erectness_N : N;
+fun eremite_N : N;
+fun erfurt_PN : PN;
+fun erg_N : N;
+fun ergo_Adv : Adv;
+fun ergonomics_N : N;
+fun eric_PN : PN;
+fun erica_PN : PN;
+fun erin_PN : PN;
+fun eritrea_PN : PN;
+fun eritrean_A : A;
+fun eritrean_N : N;
+fun erlangen_PN : PN;
+fun ermine_N : N;
+fun ernest_PN : PN;
+fun ernie_PN : PN;
+fun erode_V2 : V2;
+fun erogenous_A : A;
+fun erosion_N : N;
+fun erosive_A : A;
+fun erotic_A : A;
+fun eroticism_N : N;
+fun err_V : V;
+fun errand_N : N;
+fun errant_A : A;
+fun erratic_A : A;
+fun erratically_Adv : Adv;
+fun erratum_N : N;
+fun erroneous_A : A;
+fun error_N : N;
+fun erse_N : N;
+fun eructation_N : N;
+fun erudite_A : A;
+fun erudition_N : N;
+fun erupt_V : V;
+fun eruption_N : N;
+fun erysipelas_N : N;
+fun escalate_V : V;
+fun escalate_V2 : V2;
+fun escalation_N : N;
+fun escalator_N : N;
+fun escalope_N : N;
+fun escapade_N : N;
+fun escape_N : N;
+fun escape_V : V;
+fun escape_V2 : V2;
+fun escapee_N : N;
+fun escapement_N : N;
+fun escapism_N : N;
+fun escapist_N : N;
+fun escapologist_N : N;
+fun escarpment_N : N;
+fun eschatology_N : N;
+fun eschew_V2 : V2;
+fun escort_N : N;
+fun escort_V2 : V2;
+fun escritoire_N : N;
+fun escudo_N : N;
+fun escutcheon_N : N;
+fun esfahan_PN : PN;
+fun eskimo_N : N;
+fun esophagus_N : N;
+fun esoteric_A : A;
+fun esp_N : N;
+fun espalier_N : N;
+fun especial_A : A;
+fun esperanto_N : N;
+fun espionage_N : N;
+fun esplanade_N : N;
+fun espousal_N : N;
+fun espouse_V2 : V2;
+fun espresso_N : N;
+fun esprit_N : N;
+fun esprit_de_corps_N : N;
+fun espy_V2 : V2;
+fun esq_PN : PN;
+fun esquire_N : N;
+fun essay_N : N;
+fun essay_V : V;
+fun essay_V2 : V2;
+fun essayist_N : N;
+fun essen_PN : PN;
+fun essence_N : N;
+fun essential_A : A;
+fun essential_N : N;
+fun essex_PN : PN;
+fun establish_V2 : V2;
+fun establishment_N : N;
+fun estaminet_N : N;
+fun estate_N : N;
+fun esteem_N : N;
+fun esteem_V2 : V2;
+fun esther_PN : PN;
+fun esthete_N : N;
+fun esthetic_A : A;
+fun esthetic_N : N;
+fun esthetical_A : A;
+fun esthetics_N : N;
+fun estimable_A : A;
+fun estimate_N : N;
+fun estimate_V : V;
+fun estimate_V2 : V2;
+fun estimation_N : N;
+fun estrange_V2 : V2;
+fun estrangement_N : N;
+fun estuary_N : N;
+fun et_al_PN : PN;
+fun et_seq_PN : PN;
+fun eta_N : N;
+fun etc_PN : PN;
+fun etch_V : V;
+fun etch_V2 : V2;
+fun etcher_N : N;
+fun etching_N : N;
+fun etd_N : N;
+fun eternal_A : A;
+fun eternity_N : N;
+fun ethel_PN : PN;
+fun ether_N : N;
+fun ethereal_A : A;
+fun ethic_N : N;
+fun ethical_A : A;
+fun ethics_N : N;
+fun ethiopia_PN : PN;
+fun ethiopian_A : A;
+fun ethiopian_N : N;
+fun ethnic_A : A;
+fun ethnically_Adv : Adv;
+fun ethnographer_N : N;
+fun ethnographic_A : A;
+fun ethnography_N : N;
+fun ethnological_A : A;
+fun ethnologist_N : N;
+fun ethnology_N : N;
+fun ethos_N : N;
+fun ethyl_N : N;
+fun etiology_N : N;
+fun etiquette_N : N;
+fun etymological_A : A;
+fun etymologist_N : N;
+fun etymology_N : N;
+fun eucalyptus_N : N;
+fun eucharist_N : N;
+fun euclidean_A : A;
+fun eugene_PN : PN;
+fun eugenics_N : N;
+fun eulogist_N : N;
+fun eulogistic_A : A;
+fun eulogize_V2 : V2;
+fun eulogy_N : N;
+fun eunice_PN : PN;
+fun eunuch_N : N;
+fun euphemism_N : N;
+fun euphemistic_A : A;
+fun euphemistically_Adv : Adv;
+fun euphonium_N : N;
+fun euphony_N : N;
+fun euphoria_N : N;
+fun euphoric_A : A;
+fun euphuism_N : N;
+fun eurasia_PN : PN;
+fun eurasian_A : A;
+fun eurasian_N : N;
+fun eurhythmics_N : N;
+fun eurodollar_N : N;
+fun europe_PN : PN;
+fun european_A : A;
+fun european_N : N;
+fun eurovision_PN : PN;
+fun eurythmics_N : N;
+fun eustachian_A : A;
+fun euthanasia_N : N;
+fun eva_PN : PN;
+fun evacuate_V2 : V2;
+fun evacuation_N : N;
+fun evacuee_N : N;
+fun evade_V2 : V2;
+fun evaluate_V2 : V2;
+fun evaluation_N : N;
+fun evaluative_A : A;
+fun evanescence_N : N;
+fun evanescent_A : A;
+fun evangelical_A : A;
+fun evangelicalism_N : N;
+fun evangelism_N : N;
+fun evangelist_N : N;
+fun evangelistic_A : A;
+fun evaporate_V : V;
+fun evaporate_V2 : V2;
+fun evaporation_N : N;
+fun evasion_N : N;
+fun evasive_A : A;
+fun evasiveness_N : N;
+fun eve_N : N;
+fun eve_PN : PN;
+fun evelyn_PN : PN;
+fun even_A : A;
+fun even_Adv : Adv;
+fun even_N : N;
+fun even_V2 : V2;
+fun even_handed_A : A;
+fun evening_N : N;
+fun evenness_N : N;
+fun evensong_N : N;
+fun event_N : N;
+fun eventful_A : A;
+fun eventide_N : N;
+fun eventual_A : A;
+fun eventuality_N : N;
+fun ever_Adv : Adv;
+fun evergreen_A : A;
+fun evergreen_N : N;
+fun everlasting_A : A;
+fun evermore_Adv : Adv;
+fun everyday_A : A;
+fun everyplace_Adv : Adv;
+fun evesham_PN : PN;
+fun evict_V2 : V2;
+fun eviction_N : N;
+fun evidence_N : N;
+fun evidence_V2 : V2;
+fun evident_A : A;
+fun evil_A : A;
+fun evil_N : N;
+fun evil_doer_N : N;
+fun evil_minded_A : A;
+fun evince_V2 : V2;
+fun eviscerate_V2 : V2;
+fun evocation_N : N;
+fun evocative_A : A;
+fun evoke_V2 : V2;
+fun evolution_N : N;
+fun evolutionary_A : A;
+fun evolve_V : V;
+fun evolve_V2 : V2;
+fun ewe_N : N;
+fun ewell_PN : PN;
+fun ewer_N : N;
+fun ex_directory_A : A;
+fun ex_gratia_A : A;
+fun ex_officio_A : A;
+fun ex_officio_Adv : Adv;
+fun ex_service_A : A;
+fun ex_serviceman_N : N;
+fun exacerbate_V2 : V2;
+fun exacerbation_N : N;
+fun exact_A : A;
+fun exact_V2 : V2;
+fun exacting_A : A;
+fun exaction_N : N;
+fun exactitude_N : N;
+fun exactness_N : N;
+fun exaggerate_V : V;
+fun exaggerate_V2 : V2;
+fun exaggeration_N : N;
+fun exalt_V2 : V2;
+fun exaltation_N : N;
+fun exalted_A : A;
+fun exam_N : N;
+fun examination_N : N;
+fun examine_V2 : V2;
+fun examiner_N : N;
+fun example_N : N;
+fun exasperate_V2 : V2;
+fun exasperation_N : N;
+fun excavate_V2 : V2;
+fun excavation_N : N;
+fun excavator_N : N;
+fun exceed_V2 : V2;
+fun exceedingly_Adv : Adv;
+fun excel_V : V;
+fun excel_V2 : V2;
+fun excellence_N : N;
+fun excellency_N : N;
+fun excellent_A : A;
+fun excelsior_N : N;
+fun except_V2 : V2;
+fun exception_N : N;
+fun exceptionable_A : A;
+fun exceptional_A : A;
+fun excerpt_N : N;
+fun excess_A : A;
+fun excess_N : N;
+fun excessive_A : A;
+fun exchange_N : N;
+fun exchange_V2 : V2;
+fun exchangeable_A : A;
+fun exchanger_N : N;
+fun exchequer_N : N;
+fun excise_N : N;
+fun excise_V2 : V2;
+fun exciseman_N : N;
+fun excision_N : N;
+fun excitability_N : N;
+fun excitable_A : A;
+fun excite_V2 : V2;
+fun excitedly_Adv : Adv;
+fun excitement_N : N;
+fun excitingly_Adv : Adv;
+fun excl_PN : PN;
+fun exclaim_V : V;
+fun exclaim_V2 : V2;
+fun exclamation_N : N;
+fun exclamatory_A : A;
+fun exclude_V2 : V2;
+fun exclusion_N : N;
+fun exclusive_A : A;
+fun excogitate_V2 : V2;
+fun excogitation_N : N;
+fun excommunicate_V2 : V2;
+fun excommunication_N : N;
+fun excoriate_V2 : V2;
+fun excoriation_N : N;
+fun excrement_N : N;
+fun excrescence_N : N;
+fun excrete_V2 : V2;
+fun excretion_N : N;
+fun excruciating_A : A;
+fun exculpate_V2 : V2;
+fun excursion_N : N;
+fun excursionist_N : N;
+fun excusable_A : A;
+fun excuse_N : N;
+fun excuse_V2 : V2;
+fun execrable_A : A;
+fun execrate_V2 : V2;
+fun execration_N : N;
+fun executant_N : N;
+fun execute_V2 : V2;
+fun execution_N : N;
+fun executioner_N : N;
+fun executive_A : A;
+fun executive_N : N;
+fun executor_N : N;
+fun executrix_N : N;
+fun exegesis_N : N;
+fun exemplary_A : A;
+fun exemplification_N : N;
+fun exemplify_V2 : V2;
+fun exempt_A : A;
+fun exempt_V2 : V2;
+fun exemption_N : N;
+fun exercise_N : N;
+fun exercise_V : V;
+fun exercise_V2 : V2;
+fun exert_V2 : V2;
+fun exertion_N : N;
+fun exeter_PN : PN;
+fun exhalation_N : N;
+fun exhale_V : V;
+fun exhale_V2 : V2;
+fun exhaust_N : N;
+fun exhaust_V2 : V2;
+fun exhaust_pipe_N : N;
+fun exhaustion_N : N;
+fun exhaustive_A : A;
+fun exhibit_N : N;
+fun exhibit_V2 : V2;
+fun exhibition_N : N;
+fun exhibitioner_N : N;
+fun exhibitionism_N : N;
+fun exhibitionist_N : N;
+fun exhibitor_N : N;
+fun exhilarate_V2 : V2;
+fun exhilaration_N : N;
+fun exhort_V2 : V2;
+fun exhortation_N : N;
+fun exhumation_N : N;
+fun exhume_V2 : V2;
+fun exigency_N : N;
+fun exigent_A : A;
+fun exiguous_A : A;
+fun exile_N : N;
+fun exile_V2 : V2;
+fun exist_V : V;
+fun existence_N : N;
+fun existent_A : A;
+fun existentialism_N : N;
+fun existentialist_N : N;
+fun exit_N : N;
+fun exit_V : V;
+fun exmouth_PN : PN;
+fun exodus_N : N;
+fun exonerate_V2 : V2;
+fun exoneration_N : N;
+fun exorbitance_N : N;
+fun exorbitant_A : A;
+fun exorcize_V2 : V2;
+fun exotic_A : A;
+fun expand_V : V;
+fun expand_V2 : V2;
+fun expanse_N : N;
+fun expansion_N : N;
+fun expansive_A : A;
+fun expansiveness_N : N;
+fun expatiate_V : V;
+fun expatriate_N : N;
+fun expatriate_V2 : V2;
+fun expect_V2 : V2;
+fun expectancy_N : N;
+fun expectant_A : A;
+fun expectation_N : N;
+fun expected_A : A;
+fun expectorant_N : N;
+fun expectorate_V : V;
+fun expectorate_V2 : V2;
+fun expedience_N : N;
+fun expediency_N : N;
+fun expedient_A : A;
+fun expedient_N : N;
+fun expedite_V2 : V2;
+fun expedition_N : N;
+fun expeditionary_A : A;
+fun expeditious_A : A;
+fun expel_V2 : V2;
+fun expend_V2 : V2;
+fun expendable_A : A;
+fun expenditure_N : N;
+fun expense_N : N;
+fun expensive_A : A;
+fun experience_N : N;
+fun experience_V2 : V2;
+fun experienced_A : A;
+fun experiment_N : N;
+fun experiment_V : V;
+fun experimental_A : A;
+fun experimentation_N : N;
+fun experimenter_N : N;
+fun expert_A : A;
+fun expert_N : N;
+fun expertise_N : N;
+fun expertness_N : N;
+fun expiate_V2 : V2;
+fun expiation_N : N;
+fun expiration_N : N;
+fun expire_V : V;
+fun expiry_N : N;
+fun explain_V2 : V2;
+fun explanation_N : N;
+fun explanatory_A : A;
+fun expletive_N : N;
+fun explicable_A : A;
+fun explicate_V2 : V2;
+fun explicit_A : A;
+fun explicitness_N : N;
+fun explode_V : V;
+fun explode_V2 : V2;
+fun exploit_N : N;
+fun exploit_V2 : V2;
+fun exploitation_N : N;
+fun exploration_N : N;
+fun exploratory_A : A;
+fun explore_V2 : V2;
+fun explorer_N : N;
+fun explosion_N : N;
+fun explosive_A : A;
+fun explosive_N : N;
+fun expo_N : N;
+fun exponent_N : N;
+fun exponential_A : A;
+fun exponential_N : N;
+fun export_N : N;
+fun export_V2 : V2;
+fun exportable_A : A;
+fun exportation_N : N;
+fun exporter_N : N;
+fun expose_V2 : V2;
+fun exposition_N : N;
+fun expostulate_V : V;
+fun expostulation_N : N;
+fun exposure_N : N;
+fun expose_N : N;
+fun expound_V2 : V2;
+fun express_A : A;
+fun express_Adv : Adv;
+fun express_N : N;
+fun express_V2 : V2;
+fun expression_N : N;
+fun expressionism_N : N;
+fun expressionist_N : N;
+fun expressionless_A : A;
+fun expressive_A : A;
+fun expressway_N : N;
+fun expropriate_V2 : V2;
+fun expropriation_N : N;
+fun expulsion_N : N;
+fun expunge_V2 : V2;
+fun expurgate_V2 : V2;
+fun expurgation_N : N;
+fun exquisite_A : A;
+fun exquisiteness_N : N;
+fun extant_A : A;
+fun extemporaneous_A : A;
+fun extemporary_A : A;
+fun extempore_A : A;
+fun extempore_Adv : Adv;
+fun extemporize_V : V;
+fun extemporize_V2 : V2;
+fun extend_V : V;
+fun extend_V2 : V2;
+fun extension_N : N;
+fun extensive_A : A;
+fun extent_N : N;
+fun extenuate_V2 : V2;
+fun extenuation_N : N;
+fun exterior_A : A;
+fun exterior_N : N;
+fun exteriorize_V2 : V2;
+fun exterminate_V2 : V2;
+fun extermination_N : N;
+fun external_A : A;
+fun external_N : N;
+fun externalize_V2 : V2;
+fun exterritorial_A : A;
+fun extinct_A : A;
+fun extinction_N : N;
+fun extinguish_V2 : V2;
+fun extinguisher_N : N;
+fun extirpate_V2 : V2;
+fun extirpation_N : N;
+fun extol_V2 : V2;
+fun extort_V2 : V2;
+fun extortion_N : N;
+fun extortionate_A : A;
+fun extra_A : A;
+fun extra_Adv : Adv;
+fun extra_N : N;
+fun extract_N : N;
+fun extract_V2 : V2;
+fun extraction_N : N;
+fun extracurricular_A : A;
+fun extradite_V2 : V2;
+fun extradition_N : N;
+fun extrajudicial_A : A;
+fun extramarital_A : A;
+fun extramural_A : A;
+fun extraneous_A : A;
+fun extraordinary_A : A;
+fun extrapolate_V : V;
+fun extrapolate_V2 : V2;
+fun extrapolation_N : N;
+fun extrasensory_A : A;
+fun extraterritorial_A : A;
+fun extravagance_N : N;
+fun extravagant_A : A;
+fun extravaganza_N : N;
+fun extreme_A : A;
+fun extreme_N : N;
+fun extremist_N : N;
+fun extremity_N : N;
+fun extricable_A : A;
+fun extricate_V2 : V2;
+fun extrication_N : N;
+fun extrinsic_A : A;
+fun extroversion_N : N;
+fun extrovert_N : N;
+fun extrude_V2 : V2;
+fun extrusion_N : N;
+fun exuberance_N : N;
+fun exuberant_A : A;
+fun exude_V : V;
+fun exude_V2 : V2;
+fun exult_V : V;
+fun exultant_A : A;
+fun exultation_N : N;
+fun eye_N : N;
+fun eye_V2 : V2;
+fun eye_catching_A : A;
+fun eye_opener_N : N;
+fun eye_shadow_N : N;
+fun eyeball_N : N;
+fun eyebath_N : N;
+fun eyebrow_N : N;
+fun eyecatching_A : A;
+fun eyecup_N : N;
+fun eyed_A : A;
+fun eyeful_N : N;
+fun eyeglass_N : N;
+fun eyelash_N : N;
+fun eyeless_A : A;
+fun eyelet_N : N;
+fun eyelid_N : N;
+fun eyepiece_N : N;
+fun eyeshot_N : N;
+fun eyesight_N : N;
+fun eyesore_N : N;
+fun eyestrain_N : N;
+fun eyetooth_N : N;
+fun eyewash_N : N;
+fun eyewitness_N : N;
+fun eyrie_N : N;
+fun eyry_N : N;
+fun fa_N : N;
+fun fab_A : A;
+fun fabian_A : A;
+fun fabian_N : N;
+fun fable_N : N;
+fun fabled_A : A;
+fun fabric_N : N;
+fun fabricate_V2 : V2;
+fun fabrication_N : N;
+fun fabulous_A : A;
+fun face_N : N;
+fun face_V : V;
+fun face_V2 : V2;
+fun face_ache_N : N;
+fun face_card_N : N;
+fun face_cloth_N : N;
+fun face_cream_N : N;
+fun face_lift_N : N;
+fun face_lifting_N : N;
+fun face_pack_N : N;
+fun face_powder_N : N;
+fun face_saver_N : N;
+fun face_saving_A : A;
+fun face_saving_N : N;
+fun faceless_A : A;
+fun facer_N : N;
+fun facet_N : N;
+fun facetious_A : A;
+fun facetiousness_N : N;
+fun facia_N : N;
+fun facial_A : A;
+fun facial_N : N;
+fun facile_A : A;
+fun facilitate_V2 : V2;
+fun facility_N : N;
+fun facing_N : N;
+fun facsimile_N : N;
+fun fact_N : N;
+fun fact_finding_A : A;
+fun faction_N : N;
+fun factious_A : A;
+fun factitious_A : A;
+fun factor_N : N;
+fun factorize_V2 : V2;
+fun factory_N : N;
+fun factotum_N : N;
+fun factual_A : A;
+fun faculty_N : N;
+fun fad_N : N;
+fun faddily_Adv : Adv;
+fun faddy_A : A;
+fun fade_V : V;
+fun fade_V2 : V2;
+fun faerie_N : N;
+fun faery_N : N;
+fun fag_N : N;
+fun fag_V : V;
+fun fag_V2 : V2;
+fun fag_end_N : N;
+fun faggot_N : N;
+fun faience_N : N;
+fun fail_N : N;
+fun fail_V : V;
+fun fail_V2 : V2;
+fun fail_safe_A : A;
+fun failing_N : N;
+fun failure_N : N;
+fun fain_Adv : Adv;
+fun faint_A : A;
+fun faint_N : N;
+fun faint_V : V;
+fun faint_hearted_A : A;
+fun faintness_N : N;
+fun fair_A : A;
+fun fair_Adv : Adv;
+fun fair_N : N;
+fun fair_minded_A : A;
+fun fairground_N : N;
+fun fairish_A : A;
+fun fairness_N : N;
+fun fairway_N : N;
+fun fairy_N : N;
+fun fairyland_N : N;
+fun fairytale_N : N;
+fun fait_accompli_N : N;
+fun faith_N : N;
+fun faith_healing_N : N;
+fun faithful_A : A;
+fun faithfulness_N : N;
+fun faithless_A : A;
+fun faithlessness_N : N;
+fun fake_N : N;
+fun fake_V2 : V2;
+fun fakir_N : N;
+fun falcon_N : N;
+fun falconry_N : N;
+fun falkirk_PN : PN;
+fun fall_N : N;
+fun fall_V : V;
+fun fallacious_A : A;
+fun fallacy_N : N;
+fun fallibility_N : N;
+fun fallible_A : A;
+fun fallopian_A : A;
+fun fallout_N : N;
+fun fallow_A : A;
+fun fallow_N : N;
+fun fallow_deer_N : N;
+fun falmouth_PN : PN;
+fun false_A : A;
+fun false_Adv : Adv;
+fun falsehood_N : N;
+fun falseness_N : N;
+fun falsetto_A : A;
+fun falsetto_N : N;
+fun falsification_N : N;
+fun falsify_V2 : V2;
+fun falsity_N : N;
+fun falter_V : V;
+fun falter_V2 : V2;
+fun falteringly_Adv : Adv;
+fun fame_N : N;
+fun famed_A : A;
+fun familiar_A : A;
+fun familiar_N : N;
+fun familiarity_N : N;
+fun familiarize_V2 : V2;
+fun family_N : N;
+fun famine_N : N;
+fun famish_V : V;
+fun famish_V2 : V2;
+fun famous_A : A;
+fun fan_N : N;
+fun fan_V : V;
+fun fan_V2 : V2;
+fun fan_belt_N : N;
+fun fanatic_A : A;
+fun fanatic_N : N;
+fun fanatical_A : A;
+fun fanaticism_N : N;
+fun fancier_N : N;
+fun fanciful_A : A;
+fun fancy_A : A;
+fun fancy_N : N;
+fun fancy_V2 : V2;
+fun fancy_free_A : A;
+fun fandango_N : N;
+fun fanfare_N : N;
+fun fang_N : N;
+fun fanlight_N : N;
+fun fanny_N : N;
+fun fanny_PN : PN;
+fun fantan_N : N;
+fun fantasia_N : N;
+fun fantastic_A : A;
+fun fantastically_Adv : Adv;
+fun fantasy_N : N;
+fun fao_N : N;
+fun far_A : A;
+fun far_Adv : Adv;
+fun far_famed_A : A;
+fun far_fetched_A : A;
+fun far_flung_A : A;
+fun far_off_A : A;
+fun far_reaching_A : A;
+fun far_seeing_A : A;
+fun far_sighted_A : A;
+fun faraway_A : A;
+fun farce_N : N;
+fun farcical_A : A;
+fun fare_N : N;
+fun fare_V : V;
+fun fare_stage_N : N;
+fun farewell_N : N;
+fun farinaceous_A : A;
+fun farm_N : N;
+fun farm_V : V;
+fun farm_V2 : V2;
+fun farmer_N : N;
+fun farmhand_N : N;
+fun farmhouse_N : N;
+fun farmstead_N : N;
+fun farmyard_N : N;
+fun farnham_PN : PN;
+fun farnworth_PN : PN;
+fun farrago_N : N;
+fun farrier_N : N;
+fun farrow_N : N;
+fun farrow_V : V;
+fun farsi_N : N;
+fun fart_N : N;
+fun fart_V : V;
+fun farther_Adv : Adv;
+fun farthest_Adv : Adv;
+fun farthing_N : N;
+fun fascia_N : N;
+fun fascinate_V2 : V2;
+fun fascinating_A : A;
+fun fascination_N : N;
+fun fascism_N : N;
+fun fascist_A : A;
+fun fascist_N : N;
+fun fashion_N : N;
+fun fashion_V2 : V2;
+fun fashionable_A : A;
+fun fast_A : A;
+fun fast_Adv : Adv;
+fun fast_N : N;
+fun fast_V : V;
+fun fasten_V : V;
+fun fasten_V2 : V2;
+fun fastener_N : N;
+fun fastening_N : N;
+fun fastidious_A : A;
+fun fastidiousness_N : N;
+fun fastness_N : N;
+fun fat_A : A;
+fun fat_N : N;
+fun fat_V2 : V2;
+fun fatal_A : A;
+fun fatalism_N : N;
+fun fatalist_N : N;
+fun fatalistic_A : A;
+fun fatality_N : N;
+fun fate_N : N;
+fun fate_V2 : V2;
+fun fateful_A : A;
+fun fathead_N : N;
+fun father_N : N;
+fun father_V2 : V2;
+fun father_in_law_N : N;
+fun fatherhood_N : N;
+fun fatherland_N : N;
+fun fatherless_A : A;
+fun fatherly_A : A;
+fun fathom_N : N;
+fun fathom_V2 : V2;
+fun fathomless_A : A;
+fun fatigue_N : N;
+fun fatigue_V2 : V2;
+fun fatigue_party_N : N;
+fun fatless_A : A;
+fun fatness_N : N;
+fun fatten_V : V;
+fun fatten_V2 : V2;
+fun fattish_A : A;
+fun fatty_A : A;
+fun fatuity_N : N;
+fun fatuous_A : A;
+fun fatuousness_N : N;
+fun faucet_N : N;
+fun fauldhouse_PN : PN;
+fun fault_N : N;
+fun fault_V2 : V2;
+fun fault_finder_N : N;
+fun fault_finding_N : N;
+fun faultily_Adv : Adv;
+fun faultless_A : A;
+fun faulty_A : A;
+fun faun_N : N;
+fun faux_pas_N : N;
+fun faversham_PN : PN;
+fun favour_N : N;
+fun favour_V2 : V2;
+fun favourable_A : A;
+fun favourite_A : A;
+fun favourite_N : N;
+fun favouritism_N : N;
+fun fawley_PN : PN;
+fun fawn_N : N;
+fun fawn_V : V;
+fun facade_N : N;
+fun fbi_PN : PN;
+fun fealty_N : N;
+fun fear_N : N;
+fun fear_V : V;
+fun fear_V2 : V2;
+fun fearful_A : A;
+fun fearfulness_N : N;
+fun fearless_A : A;
+fun fearlessness_N : N;
+fun fearsome_A : A;
+fun feasibility_N : N;
+fun feasible_A : A;
+fun feast_N : N;
+fun feast_V : V;
+fun feast_V2 : V2;
+fun feast_day_N : N;
+fun feat_N : N;
+fun feather_N : N;
+fun feather_V2 : V2;
+fun feather_boa_N : N;
+fun featherbed_N : N;
+fun featherbed_V2 : V2;
+fun featherbrained_A : A;
+fun featherstone_PN : PN;
+fun featherweight_N : N;
+fun feathery_A : A;
+fun feature_N : N;
+fun feature_V2 : V2;
+fun featureless_A : A;
+fun feb_PN : PN;
+fun febrile_A : A;
+fun february_N : N;
+fun february_PN : PN;
+fun feckless_A : A;
+fun fecklessness_N : N;
+fun fecund_A : A;
+fun fecundity_N : N;
+fun fed_N : N;
+fun federal_A : A;
+fun federalism_N : N;
+fun federalist_N : N;
+fun federate_V : V;
+fun federate_V2 : V2;
+fun federation_N : N;
+fun fee_N : N;
+fun fee_V2 : V2;
+fun feeble_A : A;
+fun feeble_minded_A : A;
+fun feebleness_N : N;
+fun feebly_Adv : Adv;
+fun feed_N : N;
+fun feed_V : V;
+fun feed_V2 : V2;
+fun feedback_N : N;
+fun feeder_N : N;
+fun feeding_bottle_N : N;
+fun feel_N : N;
+fun feel_V : V;
+fun feel_V2 : V2;
+fun feeler_N : N;
+fun feeling_A : A;
+fun feeling_N : N;
+fun feign_V2 : V2;
+fun feint_N : N;
+fun feint_V : V;
+fun feldspar_N : N;
+fun felicitate_V2 : V2;
+fun felicitation_N : N;
+fun felicitous_A : A;
+fun felicity_N : N;
+fun felicity_PN : PN;
+fun feline_A : A;
+fun felix_PN : PN;
+fun felixstowe_PN : PN;
+fun fell_A : A;
+fun fell_V2 : V2;
+fun fellah_N : N;
+fun fellow_N : N;
+fun fellow_feeling_N : N;
+fun fellow_traveller_N : N;
+fun fellowship_N : N;
+fun felon_N : N;
+fun felonious_A : A;
+fun felony_N : N;
+fun felspar_N : N;
+fun felt_N : N;
+fun felucca_N : N;
+fun fem_PN : PN;
+fun female_A : A;
+fun female_N : N;
+fun feminine_A : A;
+fun femininity_N : N;
+fun feminism_N : N;
+fun feminist_N : N;
+fun femur_N : N;
+fun fen_N : N;
+fun fence_N : N;
+fun fence_V2 : V2;
+fun fencer_N : N;
+fun fencing_N : N;
+fun fend_V : V;
+fun fend_V2 : V2;
+fun fender_N : N;
+fun fennel_N : N;
+fun feoff_N : N;
+fun feral_A : A;
+fun fermanagh_PN : PN;
+fun ferment_N : N;
+fun ferment_V : V;
+fun ferment_V2 : V2;
+fun fermentation_N : N;
+fun fern_N : N;
+fun ferny_A : A;
+fun ferocious_A : A;
+fun ferocity_N : N;
+fun ferrara_PN : PN;
+fun ferret_N : N;
+fun ferret_V : V;
+fun ferret_V2 : V2;
+fun ferroconcrete_N : N;
+fun ferrous_A : A;
+fun ferrule_N : N;
+fun ferry_N : N;
+fun ferry_V : V;
+fun ferry_V2 : V2;
+fun ferryboat_N : N;
+fun ferryhill_PN : PN;
+fun ferryman_N : N;
+fun fertile_A : A;
+fun fertility_N : N;
+fun fertilization_N : N;
+fun fertilize_V2 : V2;
+fun fertilizer_N : N;
+fun ferule_N : N;
+fun fervency_N : N;
+fun fervent_A : A;
+fun fervid_A : A;
+fun fervour_N : N;
+fun festal_A : A;
+fun fester_V : V;
+fun festival_N : N;
+fun festive_A : A;
+fun festivity_N : N;
+fun festoon_N : N;
+fun festoon_V2 : V2;
+fun fetal_A : A;
+fun fetch_V : V;
+fun fetch_V2 : V2;
+fun fetching_A : A;
+fun fete_day_N : N;
+fun fetid_A : A;
+fun fetish_N : N;
+fun fetlock_N : N;
+fun fetter_N : N;
+fun fetter_V2 : V2;
+fun fettle_N : N;
+fun feud_N : N;
+fun feudal_A : A;
+fun feudalism_N : N;
+fun feudatory_A : A;
+fun feudatory_N : N;
+fun fever_N : N;
+fun fevered_A : A;
+fun feverish_A : A;
+fun fewness_N : N;
+fun fey_A : A;
+fun fez_N : N;
+fun fiance_N : N;
+fun fiancee_N : N;
+fun fiasco_N : N;
+fun fiat_N : N;
+fun fib_N : N;
+fun fib_V : V;
+fun fibber_N : N;
+fun fibbing_N : N;
+fun fibre_N : N;
+fun fibreboard_N : N;
+fun fibreglass_N : N;
+fun fibrositis_N : N;
+fun fibrous_A : A;
+fun fibula_N : N;
+fun fickle_A : A;
+fun fickleness_N : N;
+fun fiction_N : N;
+fun fictional_A : A;
+fun fictitious_A : A;
+fun fiddle_N : N;
+fun fiddle_V2 : V2;
+fun fiddler_N : N;
+fun fiddlestick_N : N;
+fun fiddling_A : A;
+fun fidelity_N : N;
+fun fidget_N : N;
+fun fidget_V : V;
+fun fidget_V2 : V2;
+fun fidgety_A : A;
+fun fief_N : N;
+fun field_N : N;
+fun field_V : V;
+fun field_V2 : V2;
+fun field_hospital_N : N;
+fun field_officer_N : N;
+fun fielder_N : N;
+fun fieldsman_N : N;
+fun fieldwork_N : N;
+fun fiend_N : N;
+fun fiendish_A : A;
+fun fierce_A : A;
+fun fierceness_N : N;
+fun fieriness_N : N;
+fun fiery_A : A;
+fun fiesta_N : N;
+fun fife_N : N;
+fun fife_PN : PN;
+fun fig_N : N;
+fun fig_leaf_N : N;
+fun fight_N : N;
+fun fight_V : V;
+fun fight_V2 : V2;
+fun fighter_N : N;
+fun fighting_N : N;
+fun figment_N : N;
+fun figurative_A : A;
+fun figure_N : N;
+fun figure_V : V;
+fun figure_V2 : V2;
+fun figured_A : A;
+fun figurehead_N : N;
+fun fiji_PN : PN;
+fun fijian_A : A;
+fun fijian_N : N;
+fun filament_N : N;
+fun filature_N : N;
+fun filbert_N : N;
+fun filch_V2 : V2;
+fun file_N : N;
+fun file_V : V;
+fun file_V2 : V2;
+fun filial_A : A;
+fun filibuster_N : N;
+fun filibuster_V : V;
+fun filigree_N : N;
+fun filipino_A : A;
+fun filipino_N : N;
+fun fill_N : N;
+fun fill_V : V;
+fun fill_V2 : V2;
+fun fillet_N : N;
+fun fillet_V2 : V2;
+fun filling_N : N;
+fun fillip_N : N;
+fun filly_N : N;
+fun film_N : N;
+fun film_V : V;
+fun film_V2 : V2;
+fun film_star_N : N;
+fun filmable_A : A;
+fun filmy_A : A;
+fun filter_N : N;
+fun filter_V : V;
+fun filter_V2 : V2;
+fun filtertipped_A : A;
+fun filth_N : N;
+fun filthily_Adv : Adv;
+fun filthiness_N : N;
+fun filthy_A : A;
+fun filtrate_N : N;
+fun filtrate_V : V;
+fun filtrate_V2 : V2;
+fun filtration_N : N;
+fun fin_N : N;
+fun finable_A : A;
+fun final_A : A;
+fun final_N : N;
+fun finale_N : N;
+fun finalist_N : N;
+fun finality_N : N;
+fun finalize_V2 : V2;
+fun finance_N : N;
+fun finance_V2 : V2;
+fun financial_A : A;
+fun financier_N : N;
+fun finch_N : N;
+fun find_N : N;
+fun find_V2 : V2;
+fun finder_N : N;
+fun finding_N : N;
+fun fine_A : A;
+fun fine_Adv : Adv;
+fun fine_N : N;
+fun fine_V2 : V2;
+fun fine_tooth_A : A;
+fun fineable_A : A;
+fun fineness_N : N;
+fun finery_N : N;
+fun finesse_N : N;
+fun finger_N : N;
+fun finger_V2 : V2;
+fun finger_alphabet_N : N;
+fun finger_bowl_N : N;
+fun finger_plate_N : N;
+fun finger_post_N : N;
+fun fingerboard_N : N;
+fun fingermark_N : N;
+fun fingernail_N : N;
+fun fingerprint_N : N;
+fun fingerstall_N : N;
+fun fingertip_N : N;
+fun finical_A : A;
+fun finicky_A : A;
+fun finis_N : N;
+fun finish_N : N;
+fun finish_V : V;
+fun finish_V2 : V2;
+fun finite_A : A;
+fun finland_PN : PN;
+fun finn_N : N;
+fun finnan_N : N;
+fun finnan_haddie_N : N;
+fun finnan_haddock_N : N;
+fun finnish_A : A;
+fun finnish_N : N;
+fun fiona_PN : PN;
+fun fiord_N : N;
+fun fir_N : N;
+fun fir_cone_N : N;
+fun fire_N : N;
+fun fire_V : V;
+fun fire_V2 : V2;
+fun fire_alarm_N : N;
+fun fire_brigade_N : N;
+fun fire_control_N : N;
+fun fire_eater_N : N;
+fun fire_engine_N : N;
+fun fire_escape_N : N;
+fun fire_extinguisher_N : N;
+fun fire_fighter_N : N;
+fun fire_hose_N : N;
+fun fire_power_N : N;
+fun fire_raising_N : N;
+fun fire_walker_N : N;
+fun fire_walking_N : N;
+fun fire_watcher_N : N;
+fun fire_watching_N : N;
+fun firearm_N : N;
+fun fireball_N : N;
+fun firebird_N : N;
+fun firebomb_N : N;
+fun firebox_N : N;
+fun firebrand_N : N;
+fun firebreak_N : N;
+fun firebrick_N : N;
+fun firebug_N : N;
+fun fireclay_N : N;
+fun firecracker_N : N;
+fun firedamp_N : N;
+fun firedog_N : N;
+fun firefly_N : N;
+fun fireguard_N : N;
+fun firelight_N : N;
+fun firelighter_N : N;
+fun fireman_N : N;
+fun firenze_PN : PN;
+fun fireplace_N : N;
+fun fireproof_A : A;
+fun fireside_N : N;
+fun firestone_N : N;
+fun firewater_N : N;
+fun firewood_N : N;
+fun firework_N : N;
+fun firing_line_N : N;
+fun firing_party_N : N;
+fun firing_squad_N : N;
+fun firkin_N : N;
+fun firm_A : A;
+fun firm_Adv : Adv;
+fun firm_N : N;
+fun firm_V : V;
+fun firm_V2 : V2;
+fun firmament_N : N;
+fun firmness_N : N;
+fun first_class_A : A;
+fun first_class_Adv : Adv;
+fun first_hand_A : A;
+fun first_hand_Adv : Adv;
+fun first_nighter_N : N;
+fun first_rate_A : A;
+fun first_rate_Adv : Adv;
+fun firstborn_A : A;
+fun firstborn_N : N;
+fun firth_N : N;
+fun fiscal_A : A;
+fun fish_N : N;
+fun fish_V : V;
+fun fish_V2 : V2;
+fun fish_hook_N : N;
+fun fish_knife_N : N;
+fun fish_slice_N : N;
+fun fishball_N : N;
+fun fishbone_N : N;
+fun fishcake_N : N;
+fun fisher_N : N;
+fun fisherman_N : N;
+fun fishery_N : N;
+fun fishing_N : N;
+fun fishing_line_N : N;
+fun fishing_rod_N : N;
+fun fishing_tackle_N : N;
+fun fishmonger_N : N;
+fun fishpaste_N : N;
+fun fishplate_N : N;
+fun fishwife_N : N;
+fun fishy_A : A;
+fun fissile_A : A;
+fun fission_N : N;
+fun fissionable_A : A;
+fun fissiparous_A : A;
+fun fissure_N : N;
+fun fist_N : N;
+fun fistula_N : N;
+fun fit_A : A;
+fun fit_N : N;
+fun fit_V : V;
+fun fit_V2 : V2;
+fun fitful_A : A;
+fun fitment_N : N;
+fun fitness_N : N;
+fun fitter_N : N;
+fun fitting_A : A;
+fun fitting_N : N;
+fun fivefold_A : A;
+fun fivepence_N : N;
+fun fivepenny_A : A;
+fun fiver_N : N;
+fun fives_N : N;
+fun fix_N : N;
+fun fix_V : V;
+fun fix_V2 : V2;
+fun fixate_V2 : V2;
+fun fixation_N : N;
+fun fixative_N : N;
+fun fixed_A : A;
+fun fixture_N : N;
+fun fizz_N : N;
+fun fizz_V : V;
+fun fizzle_V : V;
+fun fizzy_A : A;
+fun fjord_N : N;
+fun flabbergast_V2 : V2;
+fun flabbily_Adv : Adv;
+fun flabbiness_N : N;
+fun flabby_A : A;
+fun flaccid_A : A;
+fun flaccidity_N : N;
+fun flag_N : N;
+fun flag_V : V;
+fun flag_V2 : V2;
+fun flag_captain_N : N;
+fun flag_day_N : N;
+fun flagellant_N : N;
+fun flagellate_V2 : V2;
+fun flagellation_N : N;
+fun flageolet_N : N;
+fun flagon_N : N;
+fun flagpole_N : N;
+fun flagrant_A : A;
+fun flagship_N : N;
+fun flagstaff_N : N;
+fun flagstone_N : N;
+fun flail_N : N;
+fun flail_V2 : V2;
+fun flair_N : N;
+fun flak_N : N;
+fun flake_N : N;
+fun flake_V : V;
+fun flakiness_N : N;
+fun flaky_A : A;
+fun flambeau_N : N;
+fun flamboyance_N : N;
+fun flamboyant_A : A;
+fun flame_N : N;
+fun flame_V : V;
+fun flamethrower_N : N;
+fun flaming_A : A;
+fun flamingo_N : N;
+fun flammable_A : A;
+fun flan_N : N;
+fun flange_N : N;
+fun flank_N : N;
+fun flank_V2 : V2;
+fun flannel_N : N;
+fun flannelette_N : N;
+fun flap_N : N;
+fun flap_V : V;
+fun flap_V2 : V2;
+fun flapjack_N : N;
+fun flapper_N : N;
+fun flare_N : N;
+fun flare_V : V;
+fun flare_V2 : V2;
+fun flare_path_N : N;
+fun flare_up_N : N;
+fun flash_N : N;
+fun flash_V : V;
+fun flash_V2 : V2;
+fun flashback_N : N;
+fun flashbulb_N : N;
+fun flashgun_N : N;
+fun flashily_Adv : Adv;
+fun flashlight_N : N;
+fun flashpoint_N : N;
+fun flashy_A : A;
+fun flask_N : N;
+fun flat_A : A;
+fun flat_Adv : Adv;
+fun flat_N : N;
+fun flat_bottomed_A : A;
+fun flat_car_N : N;
+fun flat_footed_A : A;
+fun flat_iron_N : N;
+fun flatfish_N : N;
+fun flatlet_N : N;
+fun flatness_N : N;
+fun flatten_V : V;
+fun flatten_V2 : V2;
+fun flatter_V2 : V2;
+fun flatterer_N : N;
+fun flattery_N : N;
+fun flattop_N : N;
+fun flatulence_N : N;
+fun flaunt_V : V;
+fun flaunt_V2 : V2;
+fun flautist_N : N;
+fun flavour_N : N;
+fun flavour_V2 : V2;
+fun flavouring_N : N;
+fun flavourless_A : A;
+fun flaw_N : N;
+fun flawed_A : A;
+fun flawless_A : A;
+fun flax_N : N;
+fun flaxen_A : A;
+fun flay_V2 : V2;
+fun flea_N : N;
+fun flea_bite_N : N;
+fun flea_bitten_A : A;
+fun fleapit_N : N;
+fun fleck_N : N;
+fun fleck_V2 : V2;
+fun fledged_A : A;
+fun fledgeling_N : N;
+fun fledgling_N : N;
+fun flee_V : V;
+fun flee_V2 : V2;
+fun fleece_N : N;
+fun fleece_V2 : V2;
+fun fleecy_A : A;
+fun fleet_A : A;
+fun fleet_N : N;
+fun fleet_PN : PN;
+fun fleet_street_PN : PN;
+fun fleeting_A : A;
+fun fleetness_N : N;
+fun fleetwood_PN : PN;
+fun flemish_A : A;
+fun flemish_N : N;
+fun flesh_N : N;
+fun flesh_wound_N : N;
+fun fleshly_A : A;
+fun fleshy_A : A;
+fun fleur_de_lis_N : N;
+fun fleur_de_lys_N : N;
+fun flex_N : N;
+fun flex_V2 : V2;
+fun flexibility_N : N;
+fun flexible_A : A;
+fun flibbertigibbet_N : N;
+fun flick_N : N;
+fun flick_V2 : V2;
+fun flick_knife_N : N;
+fun flicker_N : N;
+fun flicker_V : V;
+fun flier_N : N;
+fun flight_N : N;
+fun flight_V2 : V2;
+fun flightless_A : A;
+fun flighty_A : A;
+fun flimsily_Adv : Adv;
+fun flimsiness_N : N;
+fun flimsy_A : A;
+fun flimsy_N : N;
+fun flinch_V : V;
+fun fling_N : N;
+fun fling_V : V;
+fun fling_V2 : V2;
+fun flint_N : N;
+fun flint_PN : PN;
+fun flintstone_N : N;
+fun flinty_A : A;
+fun flip_A : A;
+fun flip_N : N;
+fun flip_V : V;
+fun flip_V2 : V2;
+fun flippancy_N : N;
+fun flippant_A : A;
+fun flipper_N : N;
+fun flirt_N : N;
+fun flirt_V : V;
+fun flirtation_N : N;
+fun flirtatious_A : A;
+fun flit_N : N;
+fun flit_V : V;
+fun float_N : N;
+fun float_V : V;
+fun float_V2 : V2;
+fun floatation_N : N;
+fun floating_A : A;
+fun flock_N : N;
+fun flock_V : V;
+fun floe_N : N;
+fun flog_V2 : V2;
+fun flogging_N : N;
+fun flood_N : N;
+fun flood_V : V;
+fun flood_V2 : V2;
+fun flood_tide_N : N;
+fun floodgate_N : N;
+fun floodlight_V2 : V2;
+fun floor_N : N;
+fun floor_V2 : V2;
+fun floor_walker_N : N;
+fun floorboard_N : N;
+fun flooring_N : N;
+fun floozie_N : N;
+fun floozy_N : N;
+fun flop_Adv : Adv;
+fun flop_N : N;
+fun flop_V : V;
+fun flop_V2 : V2;
+fun floppy_A : A;
+fun flora_PN : PN;
+fun floral_A : A;
+fun florence_PN : PN;
+fun floriculture_N : N;
+fun florid_A : A;
+fun florida_PN : PN;
+fun florin_N : N;
+fun florist_N : N;
+fun florrie_PN : PN;
+fun floss_N : N;
+fun flotation_N : N;
+fun flotilla_N : N;
+fun flotsam_N : N;
+fun flounce_N : N;
+fun flounce_V : V;
+fun flounce_V2 : V2;
+fun flounder_N : N;
+fun flounder_V : V;
+fun flour_N : N;
+fun flour_V2 : V2;
+fun flourish_N : N;
+fun flourish_V : V;
+fun flourish_V2 : V2;
+fun floury_A : A;
+fun flout_V2 : V2;
+fun flow_N : N;
+fun flow_V : V;
+fun flower_N : N;
+fun flower_V : V;
+fun flower_girl_N : N;
+fun flowerbed_N : N;
+fun flowered_A : A;
+fun flowerless_A : A;
+fun flowerpot_N : N;
+fun flowery_A : A;
+fun flu_N : N;
+fun fluctuate_V : V;
+fun fluctuation_N : N;
+fun flue_N : N;
+fun fluency_N : N;
+fun fluent_A : A;
+fun fluff_N : N;
+fun fluff_V2 : V2;
+fun fluffy_A : A;
+fun fluid_A : A;
+fun fluid_N : N;
+fun fluidity_N : N;
+fun fluke_N : N;
+fun flume_N : N;
+fun flummox_V2 : V2;
+fun flunk_V : V;
+fun flunk_V2 : V2;
+fun flunkey_N : N;
+fun flunky_N : N;
+fun fluorescence_N : N;
+fun fluorescent_A : A;
+fun fluoridate_V2 : V2;
+fun fluoridation_N : N;
+fun fluoride_N : N;
+fun fluoridization_N : N;
+fun fluoridize_V2 : V2;
+fun fluorine_N : N;
+fun flurry_N : N;
+fun flurry_V2 : V2;
+fun flush_A : A;
+fun flush_N : N;
+fun flush_V : V;
+fun flush_V2 : V2;
+fun fluster_N : N;
+fun fluster_V2 : V2;
+fun flute_N : N;
+fun flute_V : V;
+fun flute_V2 : V2;
+fun fluting_N : N;
+fun flutist_N : N;
+fun flutter_N : N;
+fun flutter_V : V;
+fun flutter_V2 : V2;
+fun fluvial_A : A;
+fun flux_N : N;
+fun fly_A : A;
+fun fly_N : N;
+fun fly_V : V;
+fun fly_V2 : V2;
+fun fly_fish_V : V;
+fun fly_fishing_N : N;
+fun fly_swat_N : N;
+fun fly_swatter_N : N;
+fun flyblown_A : A;
+fun flycatcher_N : N;
+fun flyer_N : N;
+fun flying_A : A;
+fun flying_bomb_N : N;
+fun flying_fish_N : N;
+fun flying_fox_N : N;
+fun flying_squad_N : N;
+fun flyleaf_N : N;
+fun flyover_N : N;
+fun flypaper_N : N;
+fun flypast_N : N;
+fun flytrap_N : N;
+fun flyweight_N : N;
+fun flywheel_N : N;
+fun fm_N : N;
+fun fo'c'sle_N : N;
+fun fo_N : N;
+fun foal_N : N;
+fun foal_V : V;
+fun foam_N : N;
+fun foam_V : V;
+fun foam_rubber_N : N;
+fun foamy_A : A;
+fun fob_V2 : V2;
+fun focal_A : A;
+fun focus_N : N;
+fun focus_V : V;
+fun focus_V2 : V2;
+fun fodder_N : N;
+fun foe_N : N;
+fun foetal_A : A;
+fun foetus_N : N;
+fun fog_N : N;
+fun fog_V2 : V2;
+fun fogbank_N : N;
+fun fogbound_A : A;
+fun fogey_N : N;
+fun foggia_PN : PN;
+fun foggy_A : A;
+fun foghorn_N : N;
+fun foglamp_N : N;
+fun fogsignal_N : N;
+fun foible_N : N;
+fun foil_N : N;
+fun foil_V2 : V2;
+fun foist_V2 : V2;
+fun fold_N : N;
+fun fold_V : V;
+fun fold_V2 : V2;
+fun folder_N : N;
+fun foliage_N : N;
+fun folio_N : N;
+fun folk_N : N;
+fun folk_dance_N : N;
+fun folkestone_PN : PN;
+fun folklore_N : N;
+fun folksong_N : N;
+fun folksy_A : A;
+fun folktale_N : N;
+fun follow_V : V;
+fun follow_V2 : V2;
+fun follow_on_N : N;
+fun follow_through_N : N;
+fun follow_up_N : N;
+fun follower_N : N;
+fun following_A : A;
+fun following_N : N;
+fun folly_N : N;
+fun foment_V2 : V2;
+fun fomentation_N : N;
+fun fond_A : A;
+fun fondant_N : N;
+fun fondle_V2 : V2;
+fun fondness_N : N;
+fun font_N : N;
+fun foochow_PN : PN;
+fun food_N : N;
+fun foodless_A : A;
+fun foodstuff_N : N;
+fun fool_N : N;
+fun fool_V : V;
+fun fool_V2 : V2;
+fun foolery_N : N;
+fun foolhardiness_N : N;
+fun foolhardy_A : A;
+fun foolish_A : A;
+fun foolishness_N : N;
+fun foolproof_A : A;
+fun foolscap_N : N;
+fun foot_N : N;
+fun foot_V : V;
+fun foot_V2 : V2;
+fun foot_and_mouth_A : A;
+fun foot_and_mouth_N : N;
+fun foot_bath_N : N;
+fun foot_pound_N : N;
+fun foot_race_N : N;
+fun foot_rot_N : N;
+fun footage_N : N;
+fun football_N : N;
+fun footballer_N : N;
+fun footboard_N : N;
+fun footbridge_N : N;
+fun footed_A : A;
+fun footer_N : N;
+fun footfall_N : N;
+fun footfault_N : N;
+fun foothold_N : N;
+fun footing_N : N;
+fun footle_V : V;
+fun footle_V2 : V2;
+fun footling_A : A;
+fun footloose_A : A;
+fun footman_N : N;
+fun footmark_N : N;
+fun footnote_N : N;
+fun footpath_N : N;
+fun footplate_N : N;
+fun footprint_N : N;
+fun footslog_V : V;
+fun footslogger_N : N;
+fun footsore_A : A;
+fun footstep_N : N;
+fun footstool_N : N;
+fun footsure_A : A;
+fun footwear_N : N;
+fun footwork_N : N;
+fun fop_N : N;
+fun foppish_A : A;
+fun forage_N : N;
+fun forage_V : V;
+fun foray_N : N;
+fun foray_V : V;
+fun forbear_N : N;
+fun forbear_V : V;
+fun forbear_V2 : V2;
+fun forbearance_N : N;
+fun forbid_V2 : V2;
+fun forbidding_A : A;
+fun force_N : N;
+fun force_V2 : V2;
+fun force_feed_V2 : V2;
+fun force_land_V : V;
+fun force_land_V2 : V2;
+fun force_majeure_N : N;
+fun forceful_A : A;
+fun forcefulness_N : N;
+fun forcemeat_N : N;
+fun forcible_A : A;
+fun ford_N : N;
+fun ford_V2 : V2;
+fun fordable_A : A;
+fun fore_A : A;
+fun fore_Adv : Adv;
+fun fore_N : N;
+fun forearm_N : N;
+fun forearm_V2 : V2;
+fun forebode_V2 : V2;
+fun foreboding_N : N;
+fun forecast_N : N;
+fun forecast_V2 : V2;
+fun forecaster_N : N;
+fun forecastle_N : N;
+fun foreclose_V : V;
+fun foreclose_V2 : V2;
+fun foreclosure_N : N;
+fun forecourt_N : N;
+fun foredoom_V2 : V2;
+fun forefather_N : N;
+fun forefinger_N : N;
+fun forefoot_N : N;
+fun forefront_N : N;
+fun foregather_V : V;
+fun forego_V : V;
+fun forego_V2 : V2;
+fun foregoing_A : A;
+fun foregone_A : A;
+fun foreground_N : N;
+fun forehand_A : A;
+fun forehead_N : N;
+fun foreign_A : A;
+fun foreigner_N : N;
+fun foreknow_V : V;
+fun foreknow_V2 : V2;
+fun foreknowledge_N : N;
+fun foreland_N : N;
+fun foreleg_N : N;
+fun forelock_N : N;
+fun foreman_N : N;
+fun foremast_N : N;
+fun foremost_A : A;
+fun foremost_Adv : Adv;
+fun forename_N : N;
+fun forenoon_N : N;
+fun forensic_A : A;
+fun foreordain_V2 : V2;
+fun forerunner_N : N;
+fun foresail_N : N;
+fun foresee_V2 : V2;
+fun foreseeable_A : A;
+fun foreshadow_V2 : V2;
+fun foreshore_N : N;
+fun foreshorten_V2 : V2;
+fun foresight_N : N;
+fun foreskin_N : N;
+fun forest_N : N;
+fun forestall_V2 : V2;
+fun forester_N : N;
+fun forestry_N : N;
+fun foreswear_V2 : V2;
+fun foretaste_N : N;
+fun foretell_V2 : V2;
+fun forethought_N : N;
+fun foretop_N : N;
+fun forever_Adv : Adv;
+fun forewarn_V2 : V2;
+fun forewoman_N : N;
+fun foreword_N : N;
+fun forfar_PN : PN;
+fun forfeit_N : N;
+fun forfeit_V2 : V2;
+fun forfeiture_N : N;
+fun forgather_V : V;
+fun forge_N : N;
+fun forge_V : V;
+fun forge_V2 : V2;
+fun forger_N : N;
+fun forgery_N : N;
+fun forget_V : V;
+fun forget_V2 : V2;
+fun forget_me_not_N : N;
+fun forgetful_A : A;
+fun forgetfulness_N : N;
+fun forging_N : N;
+fun forgivable_A : A;
+fun forgive_V : V;
+fun forgive_V2 : V2;
+fun forgiveness_N : N;
+fun forgiving_A : A;
+fun forgo_V2 : V2;
+fun fork_N : N;
+fun fork_V : V;
+fun fork_V2 : V2;
+fun forked_A : A;
+fun forli_PN : PN;
+fun forlorn_A : A;
+fun forlornness_N : N;
+fun form_N : N;
+fun form_V : V;
+fun form_V2 : V2;
+fun formal_A : A;
+fun formaldehyde_N : N;
+fun formalin_N : N;
+fun formalism_N : N;
+fun formality_N : N;
+fun formalize_V2 : V2;
+fun format_N : N;
+fun formation_N : N;
+fun formative_A : A;
+fun formby_PN : PN;
+fun former_A : A;
+fun formic_A : A;
+fun formica_N : N;
+fun formidable_A : A;
+fun formless_A : A;
+fun formosa_PN : PN;
+fun formula_N : N;
+fun formulate_V2 : V2;
+fun formulation_N : N;
+fun fornicate_V : V;
+fun fornication_N : N;
+fun forrader_Adv : Adv;
+fun forsake_V2 : V2;
+fun forsooth_Adv : Adv;
+fun forswear_V2 : V2;
+fun forsythia_N : N;
+fun fort_N : N;
+fun fort_lauderdale_PN : PN;
+fun fort_william_PN : PN;
+fun fort_worth_PN : PN;
+fun fortaleza_PN : PN;
+fun forte_A : A;
+fun forte_Adv : Adv;
+fun forte_N : N;
+fun forth_Adv : Adv;
+fun forthcoming_A : A;
+fun forthright_A : A;
+fun forthwith_Adv : Adv;
+fun fortieth_A : A;
+fun fortieth_N : N;
+fun fortification_N : N;
+fun fortify_V2 : V2;
+fun fortissimo_A : A;
+fun fortissimo_Adv : Adv;
+fun fortitude_N : N;
+fun fortnight_N : N;
+fun fortnightly_A : A;
+fun fortnightly_Adv : Adv;
+fun fortress_N : N;
+fun fortuitous_A : A;
+fun fortunate_A : A;
+fun fortune_N : N;
+fun forty_A : A;
+fun forty_N : N;
+fun fortyish_A : A;
+fun forum_N : N;
+fun forward_A : A;
+fun forward_Adv : Adv;
+fun forward_N : N;
+fun forward_V2 : V2;
+fun forwardness_N : N;
+fun forwards_Adv : Adv;
+fun fosse_N : N;
+fun fossil_N : N;
+fun fossilization_N : N;
+fun fossilize_V : V;
+fun fossilize_V2 : V2;
+fun foster_V2 : V2;
+fun foster_brother_N : N;
+fun foster_child_N : N;
+fun foster_father_N : N;
+fun foster_mother_N : N;
+fun foster_parent_N : N;
+fun foster_sister_N : N;
+fun foul_A : A;
+fun foul_N : N;
+fun foul_V : V;
+fun foul_V2 : V2;
+fun foul_mouthed_A : A;
+fun foul_spoken_A : A;
+fun foulness_N : N;
+fun found_V2 : V2;
+fun foundation_N : N;
+fun foundation_stone_N : N;
+fun founder_N : N;
+fun founder_V : V;
+fun founder_V2 : V2;
+fun foundling_N : N;
+fun foundress_N : N;
+fun foundry_N : N;
+fun fount_N : N;
+fun fountain_N : N;
+fun fountain_head_N : N;
+fun fountain_pen_N : N;
+fun four_in_hand_N : N;
+fun four_part_A : A;
+fun four_ply_A : A;
+fun four_poster_N : N;
+fun four_pounder_N : N;
+fun four_wheeler_N : N;
+fun fourfold_A : A;
+fun fourfold_Adv : Adv;
+fun fourpence_N : N;
+fun fourpenny_A : A;
+fun fourscore_A : A;
+fun fourscore_N : N;
+fun foursome_N : N;
+fun foursquare_A : A;
+fun fowey_PN : PN;
+fun fowl_N : N;
+fun fowl_V : V;
+fun fowl_run_N : N;
+fun fowler_N : N;
+fun fowlingpiece_N : N;
+fun fowlpest_N : N;
+fun fox_N : N;
+fun fox_V2 : V2;
+fun fox_terrier_N : N;
+fun foxglove_N : N;
+fun foxhole_N : N;
+fun foxhound_N : N;
+fun foxhunt_N : N;
+fun foxhunt_V : V;
+fun foxhunter_N : N;
+fun foxtrot_N : N;
+fun foxy_A : A;
+fun foyer_N : N;
+fun fr_PN : PN;
+fun fracas_N : N;
+fun fraction_N : N;
+fun fractional_A : A;
+fun fractious_A : A;
+fun fractiousness_N : N;
+fun fracture_N : N;
+fun fracture_V : V;
+fun fracture_V2 : V2;
+fun fragile_A : A;
+fun fragility_N : N;
+fun fragment_N : N;
+fun fragment_V : V;
+fun fragmentary_A : A;
+fun fragmentation_N : N;
+fun fragrance_N : N;
+fun fragrant_A : A;
+fun frail_A : A;
+fun frailty_N : N;
+fun frame_N : N;
+fun frame_V : V;
+fun frame_V2 : V2;
+fun frame_up_N : N;
+fun framework_N : N;
+fun frampton_cotterell_PN : PN;
+fun fran_PN : PN;
+fun franc_N : N;
+fun france_PN : PN;
+fun frances_PN : PN;
+fun franchise_N : N;
+fun francis_PN : PN;
+fun franciscan_A : A;
+fun franciscan_N : N;
+fun frank_A : A;
+fun frank_N : N;
+fun frank_PN : PN;
+fun frank_V2 : V2;
+fun frankfurt_PN : PN;
+fun frankfurter_N : N;
+fun frankie_PN : PN;
+fun frankincense_N : N;
+fun franking_machine_N : N;
+fun franklin_N : N;
+fun frankness_N : N;
+fun frantic_A : A;
+fun frantically_Adv : Adv;
+fun fraserburgh_PN : PN;
+fun fraternal_A : A;
+fun fraternity_N : N;
+fun fraternization_N : N;
+fun fraternize_V : V;
+fun fratricide_N : N;
+fun frau_N : N;
+fun fraud_N : N;
+fun fraudulent_A : A;
+fun fraught_A : A;
+fun fray_N : N;
+fun fray_V : V;
+fun fray_V2 : V2;
+fun frazzle_N : N;
+fun freak_N : N;
+fun freak_V : V;
+fun freak_V2 : V2;
+fun freak_out_N : N;
+fun freakish_A : A;
+fun freakishness_N : N;
+fun freaky_A : A;
+fun freckle_N : N;
+fun freckle_V : V;
+fun freckle_V2 : V2;
+fun freckleton_PN : PN;
+fun fred_PN : PN;
+fun freda_PN : PN;
+fun freddie_PN : PN;
+fun freddy_PN : PN;
+fun frederick_PN : PN;
+fun frederiksberg_PN : PN;
+fun free_A : A;
+fun free_V2 : V2;
+fun free_and_easy_A : A;
+fun free_for_all_N : N;
+fun free_handed_A : A;
+fun free_list_N : N;
+fun free_liver_N : N;
+fun free_living_N : N;
+fun free_range_A : A;
+fun free_spoken_A : A;
+fun free_standing_A : A;
+fun free_thinker_N : N;
+fun free_thinking_A : A;
+fun free_thought_N : N;
+fun free_trader_N : N;
+fun freebooter_N : N;
+fun freeborn_A : A;
+fun freedman_N : N;
+fun freedom_N : N;
+fun freehand_A : A;
+fun freehold_N : N;
+fun freeholder_N : N;
+fun freelance_N : N;
+fun freelance_V : V;
+fun freeman_N : N;
+fun freemason_N : N;
+fun freemasonry_N : N;
+fun freesia_N : N;
+fun freestone_N : N;
+fun freestyle_N : N;
+fun freeway_N : N;
+fun freewheel_V : V;
+fun freewill_A : A;
+fun freeze_N : N;
+fun freeze_V : V;
+fun freeze_V2 : V2;
+fun freezer_N : N;
+fun freezing_mixture_N : N;
+fun freezing_point_N : N;
+fun freiburg_PN : PN;
+fun freight_N : N;
+fun freight_V2 : V2;
+fun freight_train_N : N;
+fun freighter_N : N;
+fun freightliner_N : N;
+fun french_A : A;
+fun french_N : N;
+fun frenchman_N : N;
+fun frenchwoman_N : N;
+fun frenetic_A : A;
+fun frenzied_A : A;
+fun frenzy_N : N;
+fun frequency_N : N;
+fun frequent_A : A;
+fun frequent_V2 : V2;
+fun fresco_N : N;
+fun fresco_V2 : V2;
+fun fresh_A : A;
+fun fresh_Adv : Adv;
+fun freshen_V : V;
+fun freshen_V2 : V2;
+fun fresher_N : N;
+fun freshman_N : N;
+fun freshness_N : N;
+fun freshwater_A : A;
+fun freshwater_PN : PN;
+fun fret_N : N;
+fun fret_V : V;
+fun fret_V2 : V2;
+fun fretful_A : A;
+fun fretsaw_N : N;
+fun fretwork_N : N;
+fun freudian_A : A;
+fun fri_PN : PN;
+fun friability_N : N;
+fun friable_A : A;
+fun friar_N : N;
+fun fricassee_N : N;
+fun fricassee_V2 : V2;
+fun fricative_A : A;
+fun fricative_N : N;
+fun friction_N : N;
+fun friday_N : N;
+fun friday_PN : PN;
+fun fridge_N : N;
+fun friend_N : N;
+fun friendless_A : A;
+fun friendlessness_N : N;
+fun friendliness_N : N;
+fun friendly_A : A;
+fun friendship_N : N;
+fun frier_N : N;
+fun frieze_N : N;
+fun frigate_N : N;
+fun fright_N : N;
+fun fright_V2 : V2;
+fun frighten_V2 : V2;
+fun frightened_A : A;
+fun frightening_A : A;
+fun frightful_A : A;
+fun frightfulness_N : N;
+fun frigid_A : A;
+fun frigidity_N : N;
+fun frill_N : N;
+fun frilled_A : A;
+fun frilly_A : A;
+fun fringe_N : N;
+fun fringe_V2 : V2;
+fun frinton_PN : PN;
+fun frippery_N : N;
+fun frisk_V : V;
+fun frisk_V2 : V2;
+fun friskily_Adv : Adv;
+fun frisky_A : A;
+fun frisson_N : N;
+fun fritter_N : N;
+fun fritter_V2 : V2;
+fun frivol_V : V;
+fun frivol_V2 : V2;
+fun frivolity_N : N;
+fun frivolous_A : A;
+fun frizz_V2 : V2;
+fun frizzle_V : V;
+fun frizzle_V2 : V2;
+fun frizzy_A : A;
+fun fro_Adv : Adv;
+fun frock_N : N;
+fun frock_coat_N : N;
+fun frodsham_PN : PN;
+fun frog_N : N;
+fun frogman_N : N;
+fun frogmarch_V2 : V2;
+fun frolic_N : N;
+fun frolic_V : V;
+fun frolicsome_A : A;
+fun frome_PN : PN;
+fun frond_N : N;
+fun front_N : N;
+fun front_V : V;
+fun front_V2 : V2;
+fun front_bench_N : N;
+fun front_bencher_N : N;
+fun frontage_N : N;
+fun frontal_A : A;
+fun frontier_N : N;
+fun frontiersman_N : N;
+fun frontispiece_N : N;
+fun frost_N : N;
+fun frost_V : V;
+fun frost_V2 : V2;
+fun frost_bound_A : A;
+fun frostbite_N : N;
+fun frostbitten_A : A;
+fun frostily_Adv : Adv;
+fun frostiness_N : N;
+fun frosting_N : N;
+fun frosty_A : A;
+fun froth_N : N;
+fun froth_V : V;
+fun frothily_Adv : Adv;
+fun frothiness_N : N;
+fun frothy_A : A;
+fun froward_A : A;
+fun frown_N : N;
+fun frown_V : V;
+fun frowningly_Adv : Adv;
+fun frowsty_A : A;
+fun frowzy_A : A;
+fun frs_N : N;
+fun fructification_N : N;
+fun fructify_V : V;
+fun fructify_V2 : V2;
+fun frugal_A : A;
+fun frugality_N : N;
+fun fruit_N : N;
+fun fruit_V : V;
+fun fruit_fly_N : N;
+fun fruitcake_N : N;
+fun fruiterer_N : N;
+fun fruitful_A : A;
+fun fruitfulness_N : N;
+fun fruition_N : N;
+fun fruitless_A : A;
+fun fruitlessness_N : N;
+fun fruity_A : A;
+fun frump_N : N;
+fun frumpish_A : A;
+fun frumpy_A : A;
+fun frustrate_V2 : V2;
+fun frustration_N : N;
+fun fry_N : N;
+fun fry_V : V;
+fun fry_V2 : V2;
+fun fry_pan_N : N;
+fun fryer_N : N;
+fun frying_pan_N : N;
+fun fraulein_N : N;
+fun ft_PN : PN;
+fun fuchsia_N : N;
+fun fuck_V : V;
+fun fuck_V2 : V2;
+fun fuck_all_N : N;
+fun fucker_N : N;
+fun fucking_A : A;
+fun fuddle_V2 : V2;
+fun fuddy_duddy_N : N;
+fun fudge_N : N;
+fun fuel_N : N;
+fun fuel_V : V;
+fun fuel_V2 : V2;
+fun fug_N : N;
+fun fuggy_A : A;
+fun fugitive_A : A;
+fun fugitive_N : N;
+fun fugue_N : N;
+fun fulcrum_N : N;
+fun fulfil_V2 : V2;
+fun fulfilment_N : N;
+fun full_A : A;
+fun full_blooded_A : A;
+fun full_blown_A : A;
+fun full_dress_A : A;
+fun full_fashioned_A : A;
+fun full_fledged_A : A;
+fun full_grown_A : A;
+fun full_length_A : A;
+fun full_page_A : A;
+fun full_scale_A : A;
+fun full_time_A : A;
+fun full_time_Adv : Adv;
+fun fullback_N : N;
+fun fuller_N : N;
+fun fullness_N : N;
+fun fully_Adv : Adv;
+fun fully_fashioned_A : A;
+fun fully_fledged_A : A;
+fun fully_grown_A : A;
+fun fulmar_N : N;
+fun fulminate_V : V;
+fun fulmination_N : N;
+fun fulsome_A : A;
+fun fulsomeness_N : N;
+fun fumble_V : V;
+fun fumble_V2 : V2;
+fun fumbler_N : N;
+fun fume_N : N;
+fun fume_V : V;
+fun fume_V2 : V2;
+fun fumigate_V2 : V2;
+fun fumigation_N : N;
+fun fun_N : N;
+fun function_N : N;
+fun function_V : V;
+fun functional_A : A;
+fun functionalism_N : N;
+fun functionalist_N : N;
+fun functionary_N : N;
+fun fund_N : N;
+fun fund_V2 : V2;
+fun fundamental_A : A;
+fun fundamental_N : N;
+fun fundamentalism_N : N;
+fun fundamentalist_N : N;
+fun funeral_N : N;
+fun funereal_A : A;
+fun funfair_N : N;
+fun fungicide_N : N;
+fun fungoid_A : A;
+fun fungous_A : A;
+fun fungus_N : N;
+fun funicular_N : N;
+fun funk_N : N;
+fun funk_V : V;
+fun funk_V2 : V2;
+fun funky_A : A;
+fun funnel_N : N;
+fun funnel_V : V;
+fun funnel_V2 : V2;
+fun funnily_Adv : Adv;
+fun funniness_N : N;
+fun funny_A : A;
+fun funny_bone_N : N;
+fun fur_N : N;
+fun furbelow_N : N;
+fun furbish_V2 : V2;
+fun furious_A : A;
+fun furl_V : V;
+fun furl_V2 : V2;
+fun furlong_N : N;
+fun furlough_N : N;
+fun furnace_N : N;
+fun furnish_V2 : V2;
+fun furniture_N : N;
+fun furore_N : N;
+fun furrier_N : N;
+fun furrow_N : N;
+fun furrow_V2 : V2;
+fun furry_A : A;
+fun furth_PN : PN;
+fun further_Adv : Adv;
+fun further_V2 : V2;
+fun furtherance_N : N;
+fun furthermore_Adv : Adv;
+fun furthermost_A : A;
+fun furthest_A : A;
+fun furthest_Adv : Adv;
+fun furtive_A : A;
+fun furtiveness_N : N;
+fun fury_N : N;
+fun furze_N : N;
+fun fuse_N : N;
+fun fuse_V : V;
+fun fuse_V2 : V2;
+fun fuselage_N : N;
+fun fushun_PN : PN;
+fun fusilier_N : N;
+fun fusillade_N : N;
+fun fusion_N : N;
+fun fuss_N : N;
+fun fuss_V : V;
+fun fuss_V2 : V2;
+fun fussily_Adv : Adv;
+fun fussiness_N : N;
+fun fusspot_N : N;
+fun fussy_A : A;
+fun fustian_N : N;
+fun fusty_A : A;
+fun futile_A : A;
+fun futility_N : N;
+fun future_A : A;
+fun future_N : N;
+fun futureless_A : A;
+fun futurism_N : N;
+fun futurist_N : N;
+fun futurity_N : N;
+fun fuze_N : N;
+fun fuzz_N : N;
+fun fuzzy_A : A;
+fun fwd_PN : PN;
+fun fete_N : N;
+fun fete_V2 : V2;
+fun fuhrer_N : N;
+fun g_man_N : N;
+fun gab_N : N;
+fun gabardine_N : N;
+fun gabble_N : N;
+fun gabble_V : V;
+fun gabble_V2 : V2;
+fun gaberdine_N : N;
+fun gable_N : N;
+fun gabled_A : A;
+fun gabon_PN : PN;
+fun gabonese_A : A;
+fun gabonese_N : N;
+fun gad_V : V;
+fun gadabout_N : N;
+fun gadfly_N : N;
+fun gadget_N : N;
+fun gadgetry_N : N;
+fun gael_N : N;
+fun gaelic_A : A;
+fun gaelic_N : N;
+fun gaff_N : N;
+fun gaffe_N : N;
+fun gaffer_N : N;
+fun gag_N : N;
+fun gag_V : V;
+fun gag_V2 : V2;
+fun gaga_A : A;
+fun gage_N : N;
+fun gage_V2 : V2;
+fun gaggle_N : N;
+fun gaiety_N : N;
+fun gaily_Adv : Adv;
+fun gain_N : N;
+fun gain_V : V;
+fun gain_V2 : V2;
+fun gainful_A : A;
+fun gainsay_V2 : V2;
+fun gainsborough_N : N;
+fun gainsborough_PN : PN;
+fun gait_N : N;
+fun gaiter_N : N;
+fun gal_N : N;
+fun gala_N : N;
+fun galactic_A : A;
+fun galantine_N : N;
+fun galashiels_PN : PN;
+fun galaxy_N : N;
+fun gale_N : N;
+fun gall_N : N;
+fun gall_V2 : V2;
+fun gallant_A : A;
+fun gallant_N : N;
+fun gallantry_N : N;
+fun galleon_N : N;
+fun gallery_N : N;
+fun galley_N : N;
+fun galley_proof_N : N;
+fun galley_slave_N : N;
+fun gallic_A : A;
+fun gallicism_N : N;
+fun gallivant_V : V;
+fun gallon_N : N;
+fun gallop_N : N;
+fun gallop_V : V;
+fun gallop_V2 : V2;
+fun galloway_PN : PN;
+fun gallows_bird_N : N;
+fun gallstone_N : N;
+fun gallup_PN : PN;
+fun galore_Adv : Adv;
+fun galosh_N : N;
+fun galumph_V : V;
+fun galvanic_A : A;
+fun galvanism_N : N;
+fun galvanize_V2 : V2;
+fun galway_PN : PN;
+fun gambia_PN : PN;
+fun gambian_A : A;
+fun gambian_N : N;
+fun gambit_N : N;
+fun gamble_N : N;
+fun gamble_V : V;
+fun gamble_V2 : V2;
+fun gambler_N : N;
+fun gambling_N : N;
+fun gambling_den_N : N;
+fun gamboge_N : N;
+fun gambol_N : N;
+fun gambol_V : V;
+fun game_A : A;
+fun game_N : N;
+fun game_V : V;
+fun game_V2 : V2;
+fun game_bag_N : N;
+fun game_bird_N : N;
+fun game_licence_N : N;
+fun gamecock_N : N;
+fun gamekeeper_N : N;
+fun games_master_N : N;
+fun games_mistress_N : N;
+fun gamesmanship_N : N;
+fun gaming_house_N : N;
+fun gaming_table_N : N;
+fun gamma_N : N;
+fun gammon_N : N;
+fun gammy_A : A;
+fun gamp_N : N;
+fun gamut_N : N;
+fun gamy_A : A;
+fun gander_N : N;
+fun gang_N : N;
+fun gang_V : V;
+fun ganger_N : N;
+fun gangling_A : A;
+fun ganglion_N : N;
+fun gangplank_N : N;
+fun gangrene_N : N;
+fun gangrene_V : V;
+fun gangrene_V2 : V2;
+fun gangrenous_A : A;
+fun gangster_N : N;
+fun gangway_N : N;
+fun gannet_N : N;
+fun gantry_N : N;
+fun gaol_N : N;
+fun gaol_V2 : V2;
+fun gaolbird_N : N;
+fun gaolbreak_N : N;
+fun gaoler_N : N;
+fun gap_N : N;
+fun gap_toothed_A : A;
+fun gape_N : N;
+fun gape_V : V;
+fun garage_N : N;
+fun garage_V2 : V2;
+fun garb_N : N;
+fun garb_V2 : V2;
+fun garbage_N : N;
+fun garbage_can_N : N;
+fun garble_V2 : V2;
+fun garden_N : N;
+fun garden_V : V;
+fun garden_truck_N : N;
+fun gardener_N : N;
+fun gardenia_N : N;
+fun gardening_N : N;
+fun gareth_PN : PN;
+fun garforth_PN : PN;
+fun gargantuan_A : A;
+fun gargle_N : N;
+fun gargle_V : V;
+fun gargle_V2 : V2;
+fun gargoyle_N : N;
+fun garish_A : A;
+fun garland_N : N;
+fun garland_V2 : V2;
+fun garlic_N : N;
+fun garment_N : N;
+fun garner_N : N;
+fun garner_V2 : V2;
+fun garnet_N : N;
+fun garnish_N : N;
+fun garnish_V2 : V2;
+fun garotte_N : N;
+fun garotte_V2 : V2;
+fun garret_N : N;
+fun garrison_N : N;
+fun garrison_V2 : V2;
+fun garrotte_N : N;
+fun garrotte_V2 : V2;
+fun garrowhill_PN : PN;
+fun garrulity_N : N;
+fun garrulous_A : A;
+fun garter_N : N;
+fun gary_PN : PN;
+fun gas_N : N;
+fun gas_V : V;
+fun gas_V2 : V2;
+fun gas_bracket_N : N;
+fun gas_cooker_N : N;
+fun gas_engine_N : N;
+fun gas_fitter_N : N;
+fun gas_helmet_N : N;
+fun gas_holder_N : N;
+fun gas_mask_N : N;
+fun gas_meter_N : N;
+fun gas_oven_N : N;
+fun gas_ring_N : N;
+fun gas_station_N : N;
+fun gas_stove_N : N;
+fun gasbag_N : N;
+fun gaseous_A : A;
+fun gash_N : N;
+fun gash_V2 : V2;
+fun gasification_N : N;
+fun gasify_V : V;
+fun gasify_V2 : V2;
+fun gasket_N : N;
+fun gaslight_N : N;
+fun gasmask_N : N;
+fun gasolene_N : N;
+fun gasoline_N : N;
+fun gasometer_N : N;
+fun gasp_N : N;
+fun gasp_V : V;
+fun gasp_V2 : V2;
+fun gassy_A : A;
+fun gastric_A : A;
+fun gastritis_N : N;
+fun gastronomic_A : A;
+fun gastronomy_N : N;
+fun gasworks_N : N;
+fun gate_N : N;
+fun gate_V2 : V2;
+fun gatecrash_V2 : V2;
+fun gatecrasher_N : N;
+fun gatehouse_N : N;
+fun gatepost_N : N;
+fun gateshead_PN : PN;
+fun gateway_N : N;
+fun gather_V : V;
+fun gather_V2 : V2;
+fun gatherer_N : N;
+fun gathering_N : N;
+fun gatt_N : N;
+fun gauche_A : A;
+fun gaucherie_N : N;
+fun gaucho_N : N;
+fun gaud_N : N;
+fun gaudily_Adv : Adv;
+fun gaudy_A : A;
+fun gaudy_N : N;
+fun gauge_N : N;
+fun gauge_V2 : V2;
+fun gaul_N : N;
+fun gaunt_A : A;
+fun gauntlet_N : N;
+fun gauntness_N : N;
+fun gauze_N : N;
+fun gauzy_A : A;
+fun gavel_N : N;
+fun gavin_PN : PN;
+fun gavotte_N : N;
+fun gawk_N : N;
+fun gawkiness_N : N;
+fun gawky_A : A;
+fun gawp_V : V;
+fun gay_A : A;
+fun gay_N : N;
+fun gayness_N : N;
+fun gaze_N : N;
+fun gaze_V : V;
+fun gazelle_N : N;
+fun gazette_N : N;
+fun gazette_V2 : V2;
+fun gazetteer_N : N;
+fun gazump_V : V;
+fun gazump_V2 : V2;
+fun gb_PN : PN;
+fun gcse_N : N;
+fun gcses_N : N;
+fun gdansk_PN : PN;
+fun gdn_PN : PN;
+fun gdns_PN : PN;
+fun gear_N : N;
+fun gear_V : V;
+fun gear_V2 : V2;
+fun gear_case_N : N;
+fun gearbox_N : N;
+fun gearshift_N : N;
+fun gecko_N : N;
+fun gee_gee_N : N;
+fun geezer_N : N;
+fun geiger_N : N;
+fun geisha_N : N;
+fun gel_N : N;
+fun gel_V : V;
+fun gelatin_N : N;
+fun gelatine_N : N;
+fun gelatinous_A : A;
+fun geld_V2 : V2;
+fun gelding_N : N;
+fun gelignite_N : N;
+fun gelligaer_PN : PN;
+fun gelsenkirchen_PN : PN;
+fun gem_N : N;
+fun gemini_PN : PN;
+fun gemmed_A : A;
+fun gen_N : N;
+fun gen_PN : PN;
+fun gen_V2 : V2;
+fun gendarme_N : N;
+fun gendarmerie_N : N;
+fun gender_N : N;
+fun gene_N : N;
+fun gene_PN : PN;
+fun genealogical_A : A;
+fun genealogist_N : N;
+fun genealogy_N : N;
+fun general_A : A;
+fun general_N : N;
+fun generalissimo_N : N;
+fun generality_N : N;
+fun generalization_N : N;
+fun generalize_V : V;
+fun generalize_V2 : V2;
+fun generate_V2 : V2;
+fun generation_N : N;
+fun generative_A : A;
+fun generator_N : N;
+fun generic_A : A;
+fun generically_Adv : Adv;
+fun generosity_N : N;
+fun generous_A : A;
+fun genesis_N : N;
+fun genetic_A : A;
+fun genetically_Adv : Adv;
+fun geneticist_N : N;
+fun genetics_N : N;
+fun geneva_PN : PN;
+fun genial_A : A;
+fun geniality_N : N;
+fun genie_N : N;
+fun genital_A : A;
+fun genitive_A : A;
+fun genius_N : N;
+fun genius_loci_N : N;
+fun genoa_PN : PN;
+fun genocide_N : N;
+fun genova_PN : PN;
+fun genre_N : N;
+fun genre_painting_N : N;
+fun gent_N : N;
+fun genteel_A : A;
+fun gentian_N : N;
+fun gentile_A : A;
+fun gentile_N : N;
+fun gentility_N : N;
+fun gentle_A : A;
+fun gentleman_N : N;
+fun gentleman_at_arms_N : N;
+fun gentlemanly_A : A;
+fun gentleness_N : N;
+fun gentlewoman_N : N;
+fun gently_Adv : Adv;
+fun gentry_N : N;
+fun genuflect_V : V;
+fun genuflection_N : N;
+fun genuflexion_N : N;
+fun genuine_A : A;
+fun genuineness_N : N;
+fun genus_N : N;
+fun geocentric_A : A;
+fun geoff_PN : PN;
+fun geoffrey_PN : PN;
+fun geographer_N : N;
+fun geographical_A : A;
+fun geography_N : N;
+fun geological_A : A;
+fun geologist_N : N;
+fun geology_N : N;
+fun geometric_A : A;
+fun geometrical_A : A;
+fun geometry_N : N;
+fun geophysical_A : A;
+fun geophysics_N : N;
+fun geopolitics_N : N;
+fun george_PN : PN;
+fun georgette_N : N;
+fun georgia_PN : PN;
+fun georgian_A : A;
+fun georgian_N : N;
+fun georgie_PN : PN;
+fun gerald_PN : PN;
+fun geraldine_PN : PN;
+fun geranium_N : N;
+fun gerard_PN : PN;
+fun geriatric_A : A;
+fun geriatrician_N : N;
+fun geriatrics_N : N;
+fun germ_N : N;
+fun german_A : A;
+fun german_N : N;
+fun germane_A : A;
+fun germanic_A : A;
+fun germany_PN : PN;
+fun germicide_N : N;
+fun germinate_V : V;
+fun germinate_V2 : V2;
+fun germination_N : N;
+fun gerontology_N : N;
+fun gerry_PN : PN;
+fun gerrymander_N : N;
+fun gerrymander_V2 : V2;
+fun gertie_PN : PN;
+fun gertrude_PN : PN;
+fun gerund_N : N;
+fun gestapo_N : N;
+fun gestation_N : N;
+fun gesticulate_V : V;
+fun gesticulation_N : N;
+fun gesture_N : N;
+fun gesture_V : V;
+fun get_V : V;
+fun get_V2 : V2;
+fun get_at_able_A : A;
+fun get_together_N : N;
+fun get_up_N : N;
+fun getaway_N : N;
+fun geum_N : N;
+fun geyser_N : N;
+fun ghana_PN : PN;
+fun ghanaian_A : A;
+fun ghanaian_N : N;
+fun gharry_N : N;
+fun ghastly_A : A;
+fun ghat_N : N;
+fun ghee_N : N;
+fun ghent_PN : PN;
+fun gherkin_N : N;
+fun ghetto_N : N;
+fun ghost_N : N;
+fun ghost_V : V;
+fun ghost_V2 : V2;
+fun ghost_writer_N : N;
+fun ghostliness_N : N;
+fun ghostly_A : A;
+fun ghoul_N : N;
+fun ghoulish_A : A;
+fun ghq_PN : PN;
+fun gi_N : N;
+fun giant_N : N;
+fun giantess_N : N;
+fun gibber_V : V;
+fun gibberish_N : N;
+fun gibbet_N : N;
+fun gibbet_V2 : V2;
+fun gibbon_N : N;
+fun gibbous_A : A;
+fun gibe_N : N;
+fun gibe_V : V;
+fun gibingly_Adv : Adv;
+fun gibraltar_PN : PN;
+fun gibraltarian_A : A;
+fun gibraltarian_N : N;
+fun giddily_Adv : Adv;
+fun giddiness_N : N;
+fun giddy_A : A;
+fun giffnock_PN : PN;
+fun gift_N : N;
+fun gift_V2 : V2;
+fun gifted_A : A;
+fun gig_N : N;
+fun gigantic_A : A;
+fun giggle_N : N;
+fun giggle_V : V;
+fun gigolo_N : N;
+fun gilbert_PN : PN;
+fun gilbertian_A : A;
+fun gild_N : N;
+fun gild_V2 : V2;
+fun gilder_N : N;
+fun gilding_N : N;
+fun giles_PN : PN;
+fun gilfach_goch_PN : PN;
+fun gill_N : N;
+fun gill_PN : PN;
+fun gillian_PN : PN;
+fun gillie_N : N;
+fun gillingham_PN : PN;
+fun gilt_N : N;
+fun gilt_edged_A : A;
+fun gimcrack_A : A;
+fun gimlet_N : N;
+fun gimmick_N : N;
+fun gin_N : N;
+fun gin_V2 : V2;
+fun gina_PN : PN;
+fun ginger_N : N;
+fun ginger_V2 : V2;
+fun gingerbread_N : N;
+fun gingerly_A : A;
+fun gingerly_Adv : Adv;
+fun gingham_N : N;
+fun gingko_N : N;
+fun ginseng_N : N;
+fun gipsy_N : N;
+fun giraffe_N : N;
+fun gird_V2 : V2;
+fun girder_N : N;
+fun girdle_N : N;
+fun girdle_V2 : V2;
+fun girl_N : N;
+fun girlfriend_N : N;
+fun girlhood_N : N;
+fun girlish_A : A;
+fun girlishness_N : N;
+fun giro_N : N;
+fun girth_N : N;
+fun girvan_PN : PN;
+fun gis_N : N;
+fun gist_N : N;
+fun give_N : N;
+fun give_V : V;
+fun give_V2 : V2;
+fun giveaway_N : N;
+fun giver_N : N;
+fun gizzard_N : N;
+fun glacial_A : A;
+fun glacier_N : N;
+fun glace_A : A;
+fun glad_A : A;
+fun gladden_V2 : V2;
+fun glade_N : N;
+fun gladiator_N : N;
+fun gladiatorial_A : A;
+fun gladiolus_N : N;
+fun gladness_N : N;
+fun gladsome_A : A;
+fun gladys_PN : PN;
+fun glamorgan_PN : PN;
+fun glamorization_N : N;
+fun glamorize_V2 : V2;
+fun glamorous_A : A;
+fun glamour_N : N;
+fun glance_N : N;
+fun glance_V : V;
+fun glance_V2 : V2;
+fun gland_N : N;
+fun glanders_N : N;
+fun glandular_A : A;
+fun glare_N : N;
+fun glare_V : V;
+fun glare_V2 : V2;
+fun glaring_A : A;
+fun glasgow_PN : PN;
+fun glass_N : N;
+fun glass_V2 : V2;
+fun glass_blower_N : N;
+fun glass_cutter_N : N;
+fun glass_wool_N : N;
+fun glassful_N : N;
+fun glasshouse_N : N;
+fun glassware_N : N;
+fun glassworks_N : N;
+fun glassy_A : A;
+fun glastonbury_PN : PN;
+fun glaswegian_A : A;
+fun glaswegian_N : N;
+fun glaucoma_N : N;
+fun glaucous_A : A;
+fun glaze_N : N;
+fun glaze_V : V;
+fun glaze_V2 : V2;
+fun glazier_N : N;
+fun gleam_N : N;
+fun gleam_V : V;
+fun glean_V : V;
+fun glean_V2 : V2;
+fun gleaner_N : N;
+fun glebe_N : N;
+fun glee_N : N;
+fun gleeful_A : A;
+fun glen_N : N;
+fun glen_PN : PN;
+fun glengarry_N : N;
+fun glenrothes_PN : PN;
+fun glib_A : A;
+fun glibness_N : N;
+fun glide_N : N;
+fun glide_V : V;
+fun glider_N : N;
+fun gliding_N : N;
+fun glimmer_N : N;
+fun glimmer_V : V;
+fun glimpse_N : N;
+fun glimpse_V2 : V2;
+fun glint_N : N;
+fun glint_V : V;
+fun glissade_N : N;
+fun glissade_V : V;
+fun glissando_A : A;
+fun glissando_Adv : Adv;
+fun glisten_V : V;
+fun glister_N : N;
+fun glister_V : V;
+fun glitter_N : N;
+fun glitter_V : V;
+fun glittering_A : A;
+fun gloaming_N : N;
+fun gloat_V : V;
+fun gloatingly_Adv : Adv;
+fun global_A : A;
+fun globe_N : N;
+fun globetrot_V : V;
+fun globetrotter_N : N;
+fun globular_A : A;
+fun globule_N : N;
+fun glockenspiel_N : N;
+fun gloom_N : N;
+fun gloomily_Adv : Adv;
+fun gloomy_A : A;
+fun gloria_PN : PN;
+fun glorification_N : N;
+fun glorify_V2 : V2;
+fun glorious_A : A;
+fun glory_N : N;
+fun glory_V : V;
+fun glory_hole_N : N;
+fun gloss_N : N;
+fun gloss_V2 : V2;
+fun glossary_N : N;
+fun glossily_Adv : Adv;
+fun glossiness_N : N;
+fun glossop_PN : PN;
+fun glossy_A : A;
+fun glottal_A : A;
+fun glottis_N : N;
+fun gloucester_PN : PN;
+fun gloucestershire_PN : PN;
+fun glove_N : N;
+fun glove_compartment_N : N;
+fun gloved_A : A;
+fun glow_N : N;
+fun glow_V : V;
+fun glow_worm_N : N;
+fun glower_V : V;
+fun gloweringly_Adv : Adv;
+fun glowing_A : A;
+fun glucose_N : N;
+fun glue_N : N;
+fun glue_V2 : V2;
+fun gluey_A : A;
+fun glum_A : A;
+fun glumness_N : N;
+fun glusburn_PN : PN;
+fun glut_N : N;
+fun glut_V2 : V2;
+fun gluten_N : N;
+fun glutinous_A : A;
+fun glutton_N : N;
+fun gluttonous_A : A;
+fun gluttony_N : N;
+fun glycerine_N : N;
+fun gmt_PN : PN;
+fun gnarled_A : A;
+fun gnash_V : V;
+fun gnash_V2 : V2;
+fun gnat_N : N;
+fun gnaw_V : V;
+fun gnaw_V2 : V2;
+fun gnome_N : N;
+fun gnp_N : N;
+fun gnu_N : N;
+fun go_N : N;
+fun go_V : V;
+fun go_ahead_N : N;
+fun go_as_you_please_A : A;
+fun go_between_N : N;
+fun go_by_N : N;
+fun go_cart_N : N;
+fun go_getter_N : N;
+fun go_kart_N : N;
+fun go_slow_N : N;
+fun go_to_meeting_A : A;
+fun goad_N : N;
+fun goad_V2 : V2;
+fun goal_N : N;
+fun goal_kick_N : N;
+fun goal_line_N : N;
+fun goalie_N : N;
+fun goalkeeper_N : N;
+fun goalless_A : A;
+fun goalmouth_N : N;
+fun goat_N : N;
+fun goatee_N : N;
+fun goatherd_N : N;
+fun goatskin_N : N;
+fun gob_N : N;
+fun gobbet_N : N;
+fun gobble_N : N;
+fun gobble_V : V;
+fun gobble_V2 : V2;
+fun gobbledygook_N : N;
+fun gobbler_N : N;
+fun goblet_N : N;
+fun goblin_N : N;
+fun god_N : N;
+fun god_PN : PN;
+fun god_damn_A : A;
+fun god_damned_A : A;
+fun godalming_PN : PN;
+fun godchild_N : N;
+fun goddam_A : A;
+fun goddam_Adv : Adv;
+fun goddaughter_N : N;
+fun goddess_N : N;
+fun godfather_N : N;
+fun godfearing_A : A;
+fun godforsaken_A : A;
+fun godfrey_PN : PN;
+fun godhead_N : N;
+fun godless_A : A;
+fun godlessness_N : N;
+fun godlike_A : A;
+fun godliness_N : N;
+fun godly_A : A;
+fun godmanchester_PN : PN;
+fun godmother_N : N;
+fun godown_N : N;
+fun godparent_N : N;
+fun godsend_N : N;
+fun godson_N : N;
+fun godspeed_N : N;
+fun goffs_oak_PN : PN;
+fun goggle_V : V;
+fun goggle_box_N : N;
+fun goggle_eyed_A : A;
+fun going_A : A;
+fun going_N : N;
+fun going_over_N : N;
+fun goitre_N : N;
+fun golbourne_PN : PN;
+fun gold_N : N;
+fun gold_beater_N : N;
+fun gold_digger_N : N;
+fun gold_dust_N : N;
+fun gold_foil_N : N;
+fun gold_leaf_N : N;
+fun gold_plate_N : N;
+fun gold_rush_N : N;
+fun golden_A : A;
+fun goldfield_N : N;
+fun goldfinch_N : N;
+fun goldfish_N : N;
+fun goldmine_N : N;
+fun goldsmith_N : N;
+fun golf_N : N;
+fun golf_V : V;
+fun golf_ball_N : N;
+fun golf_club_N : N;
+fun golf_course_N : N;
+fun golf_links_N : N;
+fun golfer_N : N;
+fun goliath_N : N;
+fun golliwog_N : N;
+fun golosh_N : N;
+fun gondola_N : N;
+fun gondolier_N : N;
+fun goner_N : N;
+fun gong_N : N;
+fun gong_V2 : V2;
+fun gonorrhea_N : N;
+fun gonorrhoea_N : N;
+fun goo_N : N;
+fun good_A : A;
+fun good_N : N;
+fun good_fellowship_N : N;
+fun good_for_naught_A : A;
+fun good_for_naught_N : N;
+fun good_for_nothing_A : A;
+fun good_for_nothing_N : N;
+fun good_humoured_A : A;
+fun good_looking_A : A;
+fun good_natured_A : A;
+fun good_neighbourliness_N : N;
+fun good_tempered_A : A;
+fun good_time_A : A;
+fun goodbye_N : N;
+fun goodish_A : A;
+fun goodly_A : A;
+fun goodness_N : N;
+fun goodwill_N : N;
+fun goody_N : N;
+fun goody_goody_A : A;
+fun goody_goody_N : N;
+fun gooey_A : A;
+fun goof_N : N;
+fun goof_V : V;
+fun goof_V2 : V2;
+fun goofy_A : A;
+fun googly_N : N;
+fun goole_PN : PN;
+fun goon_N : N;
+fun goose_N : N;
+fun goose_flesh_N : N;
+fun goose_step_N : N;
+fun gooseberry_N : N;
+fun gopher_N : N;
+fun gordian_A : A;
+fun gordon_PN : PN;
+fun gore_N : N;
+fun gore_V2 : V2;
+fun gorge_N : N;
+fun gorge_V : V;
+fun gorge_V2 : V2;
+fun gorgeous_A : A;
+fun gorgon_N : N;
+fun gorgonzola_N : N;
+fun gorilla_N : N;
+fun gorky_PN : PN;
+fun gormandize_V : V;
+fun gormless_A : A;
+fun gorse_N : N;
+fun gorseinon_PN : PN;
+fun gory_A : A;
+fun gosling_N : N;
+fun gospel_N : N;
+fun gosport_PN : PN;
+fun gossamer_N : N;
+fun gossip_N : N;
+fun gossip_V : V;
+fun goteborg_PN : PN;
+fun goth_N : N;
+fun gothenburg_PN : PN;
+fun gothic_A : A;
+fun gothic_N : N;
+fun gottingen_PN : PN;
+fun gouache_N : N;
+fun gouge_N : N;
+fun gouge_V2 : V2;
+fun goulash_N : N;
+fun gourd_N : N;
+fun gourmand_N : N;
+fun gourmet_N : N;
+fun gourock_PN : PN;
+fun gout_N : N;
+fun gouty_A : A;
+fun gov_PN : PN;
+fun govern_V : V;
+fun govern_V2 : V2;
+fun governance_N : N;
+fun governess_N : N;
+fun governing_A : A;
+fun government_N : N;
+fun governmental_A : A;
+fun governor_N : N;
+fun governor_general_N : N;
+fun govt_N : N;
+fun gown_N : N;
+fun gown_V2 : V2;
+fun gp's_N : N;
+fun gp_N : N;
+fun grab_N : N;
+fun grab_V : V;
+fun grab_V2 : V2;
+fun grabber_N : N;
+fun grace_N : N;
+fun grace_V2 : V2;
+fun graceful_A : A;
+fun graceless_A : A;
+fun gracious_A : A;
+fun graciousness_N : N;
+fun gradation_N : N;
+fun grade_N : N;
+fun grade_V2 : V2;
+fun gradient_N : N;
+fun gradual_A : A;
+fun gradualness_N : N;
+fun graduate_N : N;
+fun graduate_V : V;
+fun graduate_V2 : V2;
+fun graduation_N : N;
+fun graffito_N : N;
+fun graft_N : N;
+fun graft_V : V;
+fun graft_V2 : V2;
+fun grail_N : N;
+fun grain_N : N;
+fun grained_A : A;
+fun gram_N : N;
+fun grammar_N : N;
+fun grammarian_N : N;
+fun grammatical_A : A;
+fun gramme_N : N;
+fun gramophone_N : N;
+fun grampian_PN : PN;
+fun grampus_N : N;
+fun granada_PN : PN;
+fun granary_N : N;
+fun grand_A : A;
+fun grand_prix_N : N;
+fun grandad_N : N;
+fun grandaunt_N : N;
+fun grandchild_N : N;
+fun granddad_N : N;
+fun granddaughter_N : N;
+fun grandee_N : N;
+fun grandeur_N : N;
+fun grandfather_N : N;
+fun grandiloquence_N : N;
+fun grandiloquent_A : A;
+fun grandiose_A : A;
+fun grandma_N : N;
+fun grandmother_N : N;
+fun grandnephew_N : N;
+fun grandniece_N : N;
+fun grandpa_N : N;
+fun grandparent_N : N;
+fun grandson_N : N;
+fun grandstand_N : N;
+fun granduncle_N : N;
+fun grange_N : N;
+fun grangemouth_PN : PN;
+fun granite_N : N;
+fun grannie_N : N;
+fun granny_N : N;
+fun grant_N : N;
+fun grant_V2 : V2;
+fun grantham_PN : PN;
+fun granular_A : A;
+fun granularity_N : N;
+fun granulate_V : V;
+fun granulate_V2 : V2;
+fun granule_N : N;
+fun grape_N : N;
+fun grape_sugar_N : N;
+fun grapefruit_N : N;
+fun grapeshot_N : N;
+fun grapevine_N : N;
+fun graph_N : N;
+fun graphic_A : A;
+fun graphical_A : A;
+fun graphics_N : N;
+fun graphite_N : N;
+fun grapnel_N : N;
+fun grapple_V : V;
+fun grappling_iron_N : N;
+fun grasp_N : N;
+fun grasp_V : V;
+fun grasp_V2 : V2;
+fun grasping_A : A;
+fun grass_N : N;
+fun grass_V : V;
+fun grass_V2 : V2;
+fun grasshopper_N : N;
+fun grassland_N : N;
+fun grassy_A : A;
+fun grate_N : N;
+fun grate_V : V;
+fun grate_V2 : V2;
+fun grateful_A : A;
+fun gratefulness_N : N;
+fun grater_N : N;
+fun gratification_N : N;
+fun gratify_V2 : V2;
+fun gratifying_A : A;
+fun grating_N : N;
+fun gratingly_Adv : Adv;
+fun gratis_A : A;
+fun gratis_Adv : Adv;
+fun gratitude_N : N;
+fun gratuitous_A : A;
+fun gratuity_N : N;
+fun grave_A : A;
+fun grave_N : N;
+fun grave_V2 : V2;
+fun gravel_N : N;
+fun gravel_V2 : V2;
+fun gravelly_A : A;
+fun graven_A : A;
+fun gravenhage_PN : PN;
+fun gravesend_PN : PN;
+fun gravestone_N : N;
+fun graveyard_N : N;
+fun graving_dock_N : N;
+fun gravitate_V : V;
+fun gravitation_N : N;
+fun gravity_N : N;
+fun gravure_N : N;
+fun gravy_N : N;
+fun gravy_boat_N : N;
+fun gray_A : A;
+fun gray_N : N;
+fun gray_V : V;
+fun gray_V2 : V2;
+fun graz_PN : PN;
+fun graze_N : N;
+fun graze_V : V;
+fun graze_V2 : V2;
+fun grazier_N : N;
+fun grazing_land_N : N;
+fun grease_N : N;
+fun grease_V2 : V2;
+fun grease_gun_N : N;
+fun greasepaint_N : N;
+fun greaseproof_A : A;
+fun greaser_N : N;
+fun greasily_Adv : Adv;
+fun greasiness_N : N;
+fun greasy_A : A;
+fun great_A : A;
+fun great_harwood_PN : PN;
+fun great_malvern_PN : PN;
+fun great_shelford_PN : PN;
+fun great_yarmouth_PN : PN;
+fun greatcoat_N : N;
+fun greatness_N : N;
+fun grebe_N : N;
+fun grecian_A : A;
+fun greece_PN : PN;
+fun greed_N : N;
+fun greedily_Adv : Adv;
+fun greediness_N : N;
+fun greedy_A : A;
+fun greek_A : A;
+fun greek_N : N;
+fun green_A : A;
+fun green_N : N;
+fun greenback_N : N;
+fun greenery_N : N;
+fun greeneyed_A : A;
+fun greenfly_N : N;
+fun greengage_N : N;
+fun greengrocer_N : N;
+fun greengrocery_N : N;
+fun greenhorn_N : N;
+fun greenhouse_N : N;
+fun greenish_A : A;
+fun greenishness_N : N;
+fun greenock_PN : PN;
+fun greensward_N : N;
+fun greenwich_PN : PN;
+fun greenwood_N : N;
+fun greet_V2 : V2;
+fun greeting_N : N;
+fun greg_PN : PN;
+fun gregarious_A : A;
+fun gregariousness_N : N;
+fun gregorian_A : A;
+fun gregory_PN : PN;
+fun gremlin_N : N;
+fun grenada_PN : PN;
+fun grenade_N : N;
+fun grenadian_A : A;
+fun grenadian_N : N;
+fun grenadier_N : N;
+fun grey_A : A;
+fun grey_N : N;
+fun grey_V : V;
+fun grey_V2 : V2;
+fun grey_headed_A : A;
+fun greybeard_N : N;
+fun greyhound_N : N;
+fun greyish_A : A;
+fun grid_N : N;
+fun griddle_N : N;
+fun gridiron_N : N;
+fun grief_N : N;
+fun grievance_N : N;
+fun grieve_V : V;
+fun grieve_V2 : V2;
+fun grievous_A : A;
+fun griffin_N : N;
+fun griffon_N : N;
+fun grill_N : N;
+fun grill_V : V;
+fun grill_V2 : V2;
+fun grille_N : N;
+fun grillroom_N : N;
+fun grim_A : A;
+fun grimace_N : N;
+fun grimace_V : V;
+fun grime_N : N;
+fun grime_V2 : V2;
+fun grimethorpe_PN : PN;
+fun grimness_N : N;
+fun grimsby_PN : PN;
+fun grimy_A : A;
+fun grin_N : N;
+fun grin_V : V;
+fun grin_V2 : V2;
+fun grind_N : N;
+fun grind_V : V;
+fun grind_V2 : V2;
+fun grinder_N : N;
+fun grindstone_N : N;
+fun grinstead_PN : PN;
+fun grip_N : N;
+fun grip_V : V;
+fun grip_V2 : V2;
+fun grippe_N : N;
+fun gripsack_N : N;
+fun grisly_A : A;
+fun grist_N : N;
+fun gristle_N : N;
+fun grit_N : N;
+fun grit_V2 : V2;
+fun grits_N : N;
+fun gritty_A : A;
+fun grizzle_V : V;
+fun grizzled_A : A;
+fun grizzly_N : N;
+fun groan_N : N;
+fun groan_V : V;
+fun groan_V2 : V2;
+fun groat_N : N;
+fun grocer_N : N;
+fun grocery_N : N;
+fun grog_N : N;
+fun groggy_A : A;
+fun groin_N : N;
+fun groin_V2 : V2;
+fun groningen_PN : PN;
+fun groom_N : N;
+fun groom_V2 : V2;
+fun groove_N : N;
+fun groove_V2 : V2;
+fun groover_N : N;
+fun groovy_A : A;
+fun grope_V : V;
+fun grope_V2 : V2;
+fun gropingly_Adv : Adv;
+fun gross_A : A;
+fun gross_N : N;
+fun gross_V2 : V2;
+fun grossness_N : N;
+fun grot_N : N;
+fun grotesque_A : A;
+fun grotesque_N : N;
+fun grotesqueness_N : N;
+fun grotto_N : N;
+fun grotty_A : A;
+fun grouch_N : N;
+fun grouch_V : V;
+fun grouchy_A : A;
+fun ground_N : N;
+fun ground_V : V;
+fun ground_V2 : V2;
+fun ground_bait_N : N;
+fun ground_fish_N : N;
+fun ground_plan_N : N;
+fun ground_rent_N : N;
+fun grounding_N : N;
+fun groundless_A : A;
+fun groundnut_N : N;
+fun groundsel_N : N;
+fun groundsheet_N : N;
+fun groundsman_N : N;
+fun groundwork_N : N;
+fun group_N : N;
+fun group_V : V;
+fun group_V2 : V2;
+fun grouping_N : N;
+fun grouse_N : N;
+fun grouse_V : V;
+fun grove_N : N;
+fun grovel_V : V;
+fun groveller_N : N;
+fun grow_V : V;
+fun grow_V2 : V2;
+fun grower_N : N;
+fun growl_N : N;
+fun growl_V : V;
+fun growl_V2 : V2;
+fun growler_N : N;
+fun growlingly_Adv : Adv;
+fun grown_up_A : A;
+fun grown_up_N : N;
+fun growth_N : N;
+fun groyne_N : N;
+fun grub_N : N;
+fun grub_V : V;
+fun grub_V2 : V2;
+fun grubbiness_N : N;
+fun grubby_A : A;
+fun grudge_N : N;
+fun grudge_V2 : V2;
+fun grudgingly_Adv : Adv;
+fun gruel_N : N;
+fun gruelling_A : A;
+fun gruesome_A : A;
+fun gruesomeness_N : N;
+fun gruff_A : A;
+fun gruffness_N : N;
+fun grumble_N : N;
+fun grumble_V : V;
+fun grumble_V2 : V2;
+fun grumbler_N : N;
+fun grumpily_Adv : Adv;
+fun grumpiness_N : N;
+fun grumpy_A : A;
+fun grundyism_N : N;
+fun grunt_N : N;
+fun grunt_V : V;
+fun grunt_V2 : V2;
+fun gryphon_N : N;
+fun guadalajara_PN : PN;
+fun guano_N : N;
+fun guarantee_N : N;
+fun guarantee_V2 : V2;
+fun guarantor_N : N;
+fun guaranty_N : N;
+fun guard_N : N;
+fun guard_V : V;
+fun guard_V2 : V2;
+fun guard_boat_N : N;
+fun guarded_A : A;
+fun guardhouse_N : N;
+fun guardian_N : N;
+fun guardianship_N : N;
+fun guardrail_N : N;
+fun guardroom_N : N;
+fun guardship_N : N;
+fun guardsman_N : N;
+fun guatemala_PN : PN;
+fun guatemala_city_PN : PN;
+fun guatemalan_A : A;
+fun guatemalan_N : N;
+fun guava_N : N;
+fun guayaquil_PN : PN;
+fun gudgeon_N : N;
+fun guelder_rose_N : N;
+fun guerilla_N : N;
+fun guerrilla_N : N;
+fun guess_N : N;
+fun guess_V : V;
+fun guess_V2 : V2;
+fun guesstimate_N : N;
+fun guesswork_N : N;
+fun guest_N : N;
+fun guest_night_N : N;
+fun guesthouse_N : N;
+fun guestroom_N : N;
+fun guffaw_N : N;
+fun guffaw_V : V;
+fun guidance_N : N;
+fun guide_N : N;
+fun guide_V2 : V2;
+fun guidebook_N : N;
+fun guideline_N : N;
+fun guild_N : N;
+fun guild_hall_N : N;
+fun guilder_N : N;
+fun guildford_PN : PN;
+fun guildhall_N : N;
+fun guile_N : N;
+fun guileful_A : A;
+fun guileless_A : A;
+fun guillemot_N : N;
+fun guillotine_N : N;
+fun guillotine_V2 : V2;
+fun guilt_N : N;
+fun guiltily_Adv : Adv;
+fun guiltiness_N : N;
+fun guiltless_A : A;
+fun guilty_A : A;
+fun guinea_N : N;
+fun guinea_PN : PN;
+fun guinea_fowl_N : N;
+fun guinea_pig_N : N;
+fun guinean_A : A;
+fun guinean_N : N;
+fun guinness_N : N;
+fun guisborough_PN : PN;
+fun guise_N : N;
+fun guitar_N : N;
+fun guitarist_N : N;
+fun gulch_N : N;
+fun gulden_N : N;
+fun gulf_N : N;
+fun gull_N : N;
+fun gull_V2 : V2;
+fun gullet_N : N;
+fun gullibility_N : N;
+fun gullible_A : A;
+fun gully_N : N;
+fun gulp_N : N;
+fun gulp_V : V;
+fun gulp_V2 : V2;
+fun gum_N : N;
+fun gum_V2 : V2;
+fun gumbo_N : N;
+fun gumboil_N : N;
+fun gumboot_N : N;
+fun gummy_A : A;
+fun gumption_N : N;
+fun gumshoe_N : N;
+fun gun_N : N;
+fun gun_V2 : V2;
+fun gun_carriage_N : N;
+fun gunboat_N : N;
+fun guncotton_N : N;
+fun gundog_N : N;
+fun gunfire_N : N;
+fun gunman_N : N;
+fun gunmetal_N : N;
+fun gunner_N : N;
+fun gunnery_N : N;
+fun gunny_N : N;
+fun gunplay_N : N;
+fun gunpoint_N : N;
+fun gunpowder_N : N;
+fun gunroom_N : N;
+fun gunrunner_N : N;
+fun gunrunning_N : N;
+fun gunshot_N : N;
+fun gunsmith_N : N;
+fun gunwale_N : N;
+fun gurgle_N : N;
+fun gurgle_V : V;
+fun gurkha_N : N;
+fun guru_N : N;
+fun gush_N : N;
+fun gush_V : V;
+fun gusher_N : N;
+fun gushing_A : A;
+fun gusset_N : N;
+fun gusseted_A : A;
+fun gust_N : N;
+fun gustation_N : N;
+fun gusto_N : N;
+fun gusty_A : A;
+fun gut_N : N;
+fun gut_V2 : V2;
+fun gutless_A : A;
+fun gutta_percha_N : N;
+fun gutter_N : N;
+fun gutter_V : V;
+fun guttersnipe_N : N;
+fun guttural_A : A;
+fun guttural_N : N;
+fun guvnor_N : N;
+fun guy's_PN : PN;
+fun guy_N : N;
+fun guy_PN : PN;
+fun guy_V2 : V2;
+fun guyana_PN : PN;
+fun guyanese_A : A;
+fun guyanese_N : N;
+fun guzzle_V : V;
+fun guzzle_V2 : V2;
+fun guzzler_N : N;
+fun gwen_PN : PN;
+fun gwendoline_PN : PN;
+fun gwent_PN : PN;
+fun gwersyllt_PN : PN;
+fun gwynedd_PN : PN;
+fun gybe_V : V;
+fun gybe_V2 : V2;
+fun gym_N : N;
+fun gymkhana_N : N;
+fun gymnasium_N : N;
+fun gymnast_N : N;
+fun gymnastic_A : A;
+fun gymnastics_N : N;
+fun gymslip_N : N;
+fun gynaecological_A : A;
+fun gynaecologist_N : N;
+fun gynaecology_N : N;
+fun gynecological_A : A;
+fun gynecologist_N : N;
+fun gyp_N : N;
+fun gyp_V2 : V2;
+fun gypsum_N : N;
+fun gypsy_N : N;
+fun gyrate_V : V;
+fun gyration_N : N;
+fun gyro_N : N;
+fun gyroscope_N : N;
+fun gyroscopic_A : A;
+fun gateau_N : N;
+fun h'm_V : V;
+fun h_bomb_N : N;
+fun ha'p'orth_N : N;
+fun ha'penny_N : N;
+fun haarlem_PN : PN;
+fun habeas_corpus_N : N;
+fun haberdasher_N : N;
+fun haberdashery_N : N;
+fun habit_N : N;
+fun habitable_A : A;
+fun habitat_N : N;
+fun habitation_N : N;
+fun habitual_A : A;
+fun habituate_V2 : V2;
+fun habituation_N : N;
+fun habitude_N : N;
+fun habitue_N : N;
+fun hacienda_N : N;
+fun hack_N : N;
+fun hack_V : V;
+fun hack_V2 : V2;
+fun hackney_N : N;
+fun hackney_PN : PN;
+fun hackneyed_A : A;
+fun hacksaw_N : N;
+fun haddington_PN : PN;
+fun haddock_N : N;
+fun hades_PN : PN;
+fun hadji_N : N;
+fun haematite_N : N;
+fun haemoglobin_N : N;
+fun haemophilia_N : N;
+fun haemophiliac_N : N;
+fun haemorrhage_N : N;
+fun haft_N : N;
+fun hag_N : N;
+fun hag_ridden_A : A;
+fun hagen_PN : PN;
+fun haggard_A : A;
+fun haggis_N : N;
+fun haggle_V : V;
+fun hagiology_N : N;
+fun hagley_PN : PN;
+fun haha_N : N;
+fun hail_N : N;
+fun hail_V : V;
+fun hail_V2 : V2;
+fun hailsham_PN : PN;
+fun hailstone_N : N;
+fun hailstorm_N : N;
+fun haiphong_PN : PN;
+fun hair's_breadth_N : N;
+fun hair_N : N;
+fun hair_breadth_N : N;
+fun hair_dye_N : N;
+fun hair_oil_N : N;
+fun hair_raising_A : A;
+fun hair_shirt_N : N;
+fun hair_slide_N : N;
+fun hair_trigger_N : N;
+fun hairbrush_N : N;
+fun haircloth_N : N;
+fun haircut_N : N;
+fun hairdo_N : N;
+fun hairdresser_N : N;
+fun hairdressing_N : N;
+fun hairiness_N : N;
+fun hairless_A : A;
+fun hairlike_A : A;
+fun hairline_N : N;
+fun hairnet_N : N;
+fun hairpiece_N : N;
+fun hairpin_N : N;
+fun hairsplitting_A : A;
+fun hairsplitting_N : N;
+fun hairspring_N : N;
+fun hairstyle_N : N;
+fun hairstylist_N : N;
+fun hairy_A : A;
+fun haiti_PN : PN;
+fun haitian_A : A;
+fun haitian_N : N;
+fun hake_N : N;
+fun hal_PN : PN;
+fun halberd_N : N;
+fun halberdier_N : N;
+fun halcyon_A : A;
+fun hale_A : A;
+fun halesowen_PN : PN;
+fun half_N : N;
+fun half_baked_A : A;
+fun half_blood_N : N;
+fun half_breed_N : N;
+fun half_brother_N : N;
+fun half_caste_N : N;
+fun half_crazed_A : A;
+fun half_crown_N : N;
+fun half_hardy_A : A;
+fun half_hearted_A : A;
+fun half_holiday_N : N;
+fun half_hour_N : N;
+fun half_hourly_A : A;
+fun half_hourly_Adv : Adv;
+fun half_length_A : A;
+fun half_pay_N : N;
+fun half_price_Adv : Adv;
+fun half_seas_over_A : A;
+fun half_sister_N : N;
+fun half_size_A : A;
+fun half_timbered_A : A;
+fun half_time_N : N;
+fun half_track_N : N;
+fun half_tracked_A : A;
+fun half_truth_N : N;
+fun half_volley_N : N;
+fun half_yearly_A : A;
+fun half_yearly_Adv : Adv;
+fun halfback_N : N;
+fun halfpenny_N : N;
+fun halfpennyworth_N : N;
+fun halftone_N : N;
+fun halfway_A : A;
+fun halfway_Adv : Adv;
+fun halfwit_N : N;
+fun halfwitted_A : A;
+fun halibut_N : N;
+fun halifax_PN : PN;
+fun halitosis_N : N;
+fun hall_N : N;
+fun hall_stand_N : N;
+fun halle_PN : PN;
+fun hallelujah_N : N;
+fun halliard_N : N;
+fun hallmark_N : N;
+fun halloo_N : N;
+fun halloo_V : V;
+fun hallow_N : N;
+fun hallow_V2 : V2;
+fun hallowe'en_N : N;
+fun hallowe'en_PN : PN;
+fun hallucination_N : N;
+fun hallucinatory_A : A;
+fun hallucinogenic_A : A;
+fun halma_N : N;
+fun halo_N : N;
+fun halstead_PN : PN;
+fun halt_A : A;
+fun halt_N : N;
+fun halt_V : V;
+fun halt_V2 : V2;
+fun halter_N : N;
+fun haltingly_Adv : Adv;
+fun halve_V2 : V2;
+fun halyard_N : N;
+fun ham_N : N;
+fun ham_V : V;
+fun ham_V2 : V2;
+fun ham_fisted_A : A;
+fun ham_handed_A : A;
+fun hamadryad_N : N;
+fun hamburg_PN : PN;
+fun hamburger_N : N;
+fun hamhung_PN : PN;
+fun hamilton_PN : PN;
+fun hamlet_N : N;
+fun hammer_N : N;
+fun hammer_V : V;
+fun hammer_V2 : V2;
+fun hammersmith_PN : PN;
+fun hammock_N : N;
+fun hamper_N : N;
+fun hamper_V2 : V2;
+fun hampreston_PN : PN;
+fun hampshire_PN : PN;
+fun hamster_N : N;
+fun hamstring_N : N;
+fun hamstring_V2 : V2;
+fun hand_N : N;
+fun hand_V2 : V2;
+fun hand_barrow_N : N;
+fun hand_grenade_N : N;
+fun hand_luggage_N : N;
+fun hand_me_down_N : N;
+fun hand_organ_N : N;
+fun hand_out_N : N;
+fun hand_picked_A : A;
+fun handbag_N : N;
+fun handbill_N : N;
+fun handbook_N : N;
+fun handbrake_N : N;
+fun handcart_N : N;
+fun handclap_N : N;
+fun handcuff_N : N;
+fun handcuff_V2 : V2;
+fun handful_N : N;
+fun handhold_N : N;
+fun handicap_N : N;
+fun handicap_V2 : V2;
+fun handicraft_N : N;
+fun handily_Adv : Adv;
+fun handiness_N : N;
+fun handiwork_N : N;
+fun handkerchief_N : N;
+fun handle_N : N;
+fun handle_V2 : V2;
+fun handlebar_N : N;
+fun handler_N : N;
+fun handmade_A : A;
+fun handmaid_N : N;
+fun handover_N : N;
+fun handrail_N : N;
+fun handsaw_N : N;
+fun handshake_N : N;
+fun handshaking_N : N;
+fun handsome_A : A;
+fun handstand_N : N;
+fun handwork_N : N;
+fun handwriting_N : N;
+fun handy_A : A;
+fun handyman_N : N;
+fun hang_N : N;
+fun hang_V : V;
+fun hang_V2 : V2;
+fun hang_up_N : N;
+fun hangar_N : N;
+fun hangchon_PN : PN;
+fun hangdog_A : A;
+fun hanger_N : N;
+fun hanger_on_N : N;
+fun hanging_N : N;
+fun hangman_N : N;
+fun hangnail_N : N;
+fun hangover_N : N;
+fun hank_N : N;
+fun hanker_V : V;
+fun hankering_N : N;
+fun hanky_N : N;
+fun hanky_panky_N : N;
+fun hanoi_PN : PN;
+fun hanover_PN : PN;
+fun hansard_N : N;
+fun hansom_N : N;
+fun hap_N : N;
+fun hap_V : V;
+fun haphazard_A : A;
+fun haphazard_Adv : Adv;
+fun hapless_A : A;
+fun haply_Adv : Adv;
+fun happen_V : V;
+fun happening_N : N;
+fun happily_Adv : Adv;
+fun happiness_N : N;
+fun happy_A : A;
+fun happy_go_lucky_A : A;
+fun hara_kiri_N : N;
+fun harangue_N : N;
+fun harangue_V : V;
+fun harangue_V2 : V2;
+fun harass_V2 : V2;
+fun harassment_N : N;
+fun harbin_PN : PN;
+fun harbinger_N : N;
+fun harbour_N : N;
+fun harbour_V : V;
+fun harbour_V2 : V2;
+fun harbourage_N : N;
+fun hard_A : A;
+fun hard_Adv : Adv;
+fun hard_baked_A : A;
+fun hard_bitten_A : A;
+fun hard_boiled_A : A;
+fun hard_headed_A : A;
+fun hardback_N : N;
+fun hardbacked_A : A;
+fun hardboard_N : N;
+fun hardbound_A : A;
+fun hardcover_N : N;
+fun hardcovered_A : A;
+fun harden_V : V;
+fun harden_V2 : V2;
+fun hardhearted_A : A;
+fun hardhitting_A : A;
+fun hardihood_N : N;
+fun hardiness_N : N;
+fun hardliner_N : N;
+fun hardness_N : N;
+fun hardship_N : N;
+fun hardtop_N : N;
+fun hardware_N : N;
+fun hardwood_N : N;
+fun hardworking_A : A;
+fun hardy_A : A;
+fun hare_N : N;
+fun hare_V : V;
+fun harebell_N : N;
+fun harebrained_A : A;
+fun harelip_N : N;
+fun harem_N : N;
+fun haricot_N : N;
+fun haringey_PN : PN;
+fun hark_V : V;
+fun harlequin_N : N;
+fun harlequinade_N : N;
+fun harley_street_PN : PN;
+fun harlot_N : N;
+fun harlow_PN : PN;
+fun harm_N : N;
+fun harm_V2 : V2;
+fun harmattan_N : N;
+fun harmful_A : A;
+fun harmless_A : A;
+fun harmonic_N : N;
+fun harmonica_N : N;
+fun harmonious_A : A;
+fun harmonium_N : N;
+fun harmonization_N : N;
+fun harmonize_V : V;
+fun harmonize_V2 : V2;
+fun harmony_N : N;
+fun harness_N : N;
+fun harness_V2 : V2;
+fun harold_PN : PN;
+fun harp_N : N;
+fun harp_V : V;
+fun harpenden_PN : PN;
+fun harper_N : N;
+fun harpist_N : N;
+fun harpoon_N : N;
+fun harpoon_V2 : V2;
+fun harpsichord_N : N;
+fun harpsichordist_N : N;
+fun harpy_N : N;
+fun harridan_N : N;
+fun harrier_N : N;
+fun harriet_PN : PN;
+fun harrogate_PN : PN;
+fun harrow_N : N;
+fun harrow_PN : PN;
+fun harrow_V2 : V2;
+fun harry_PN : PN;
+fun harry_V2 : V2;
+fun harsh_A : A;
+fun harshness_N : N;
+fun hart_N : N;
+fun hartlepool_PN : PN;
+fun hartley_PN : PN;
+fun harum_scarum_A : A;
+fun harum_scarum_N : N;
+fun harvest_N : N;
+fun harvest_V2 : V2;
+fun harvester_N : N;
+fun harvey_PN : PN;
+fun harwich_PN : PN;
+fun harwood_PN : PN;
+fun harworth_PN : PN;
+fun has_been_N : N;
+fun hash_N : N;
+fun hash_V2 : V2;
+fun hashish_N : N;
+fun haslemere_PN : PN;
+fun haslingden_PN : PN;
+fun hasp_N : N;
+fun hassle_N : N;
+fun hassle_V : V;
+fun hassle_V2 : V2;
+fun hassock_N : N;
+fun haste_N : N;
+fun hasten_V : V;
+fun hasten_V2 : V2;
+fun hastily_Adv : Adv;
+fun hastiness_N : N;
+fun hastings_PN : PN;
+fun hasty_A : A;
+fun hat_N : N;
+fun hatband_N : N;
+fun hatch_N : N;
+fun hatch_V : V;
+fun hatch_V2 : V2;
+fun hatchery_N : N;
+fun hatchet_N : N;
+fun hatching_N : N;
+fun hatchway_N : N;
+fun hate_N : N;
+fun hate_V2 : V2;
+fun hateful_A : A;
+fun hatfield_PN : PN;
+fun hatful_N : N;
+fun hatless_A : A;
+fun hatpin_N : N;
+fun hatred_N : N;
+fun hatter_N : N;
+fun hauberk_N : N;
+fun haughtily_Adv : Adv;
+fun haughtiness_N : N;
+fun haughty_A : A;
+fun haul_N : N;
+fun haul_V : V;
+fun haul_V2 : V2;
+fun haulage_N : N;
+fun haulier_N : N;
+fun haulm_N : N;
+fun haunch_N : N;
+fun haunt_N : N;
+fun haunt_V2 : V2;
+fun hautboy_N : N;
+fun hauteur_N : N;
+fun havana_N : N;
+fun havana_PN : PN;
+fun haven_N : N;
+fun haverfordwest_PN : PN;
+fun haverhill_PN : PN;
+fun havering_PN : PN;
+fun haversack_N : N;
+fun havoc_N : N;
+fun haw_N : N;
+fun haw_V : V;
+fun haw_haw_N : N;
+fun hawaii_PN : PN;
+fun hawick_PN : PN;
+fun hawk_N : N;
+fun hawk_V2 : V2;
+fun hawk_eyed_A : A;
+fun hawke's_bay_PN : PN;
+fun hawker_N : N;
+fun hawser_N : N;
+fun hawthorn_N : N;
+fun hay_N : N;
+fun haycock_N : N;
+fun hayfork_N : N;
+fun hayling_PN : PN;
+fun haymaker_N : N;
+fun haymaking_N : N;
+fun hayrick_N : N;
+fun haystack_N : N;
+fun haywards_heath_PN : PN;
+fun haywire_A : A;
+fun haywire_N : N;
+fun hazard_N : N;
+fun hazard_V2 : V2;
+fun hazardous_A : A;
+fun haze_N : N;
+fun haze_V2 : V2;
+fun hazel_N : N;
+fun hazel_PN : PN;
+fun hazily_Adv : Adv;
+fun haziness_N : N;
+fun hazy_A : A;
+fun he_goat_N : N;
+fun he_man_N : N;
+fun head_N : N;
+fun head_V : V;
+fun head_V2 : V2;
+fun head_hunter_N : N;
+fun head_on_A : A;
+fun head_on_Adv : Adv;
+fun headache_N : N;
+fun headband_N : N;
+fun headdress_N : N;
+fun headed_A : A;
+fun header_N : N;
+fun headgear_N : N;
+fun heading_N : N;
+fun headlamp_N : N;
+fun headland_N : N;
+fun headless_A : A;
+fun headlight_N : N;
+fun headline_N : N;
+fun headlong_A : A;
+fun headlong_Adv : Adv;
+fun headman_N : N;
+fun headmaster_N : N;
+fun headmistress_N : N;
+fun headpiece_N : N;
+fun headrest_N : N;
+fun headroom_N : N;
+fun headset_N : N;
+fun headship_N : N;
+fun headstall_N : N;
+fun headstone_N : N;
+fun headstrong_A : A;
+fun headway_N : N;
+fun headwind_N : N;
+fun headword_N : N;
+fun heady_A : A;
+fun heal_V : V;
+fun heal_V2 : V2;
+fun healer_N : N;
+fun healing_A : A;
+fun health_N : N;
+fun healthful_A : A;
+fun healthily_Adv : Adv;
+fun healthy_A : A;
+fun heanor_PN : PN;
+fun heap_N : N;
+fun heap_V2 : V2;
+fun heaps_Adv : Adv;
+fun hear_V : V;
+fun hear_V2 : V2;
+fun hearer_N : N;
+fun hearing_N : N;
+fun hearing_aid_N : N;
+fun hearken_V : V;
+fun hearsay_N : N;
+fun hearse_N : N;
+fun heart's_ease_N : N;
+fun heart_N : N;
+fun heart_disease_N : N;
+fun heart_failure_N : N;
+fun heart_rending_A : A;
+fun heartache_N : N;
+fun heartbeat_N : N;
+fun heartbreak_N : N;
+fun heartbreaking_A : A;
+fun heartbroken_A : A;
+fun heartburn_N : N;
+fun heartburning_N : N;
+fun hearted_A : A;
+fun hearten_V2 : V2;
+fun heartfelt_A : A;
+fun hearth_N : N;
+fun hearthrug_N : N;
+fun heartily_Adv : Adv;
+fun heartless_A : A;
+fun heartlessness_N : N;
+fun heartsick_A : A;
+fun hearty_A : A;
+fun heat_N : N;
+fun heat_V : V;
+fun heat_V2 : V2;
+fun heat_flash_N : N;
+fun heated_A : A;
+fun heater_N : N;
+fun heath_N : N;
+fun heathen_N : N;
+fun heathenish_A : A;
+fun heather_N : N;
+fun heather_PN : PN;
+fun heather_mixture_N : N;
+fun heating_N : N;
+fun heatspot_N : N;
+fun heatstroke_N : N;
+fun heatwave_N : N;
+fun heave_N : N;
+fun heave_V : V;
+fun heave_V2 : V2;
+fun heaven_N : N;
+fun heavenly_A : A;
+fun heavensent_A : A;
+fun heavenward_A : A;
+fun heavenward_Adv : Adv;
+fun heavenwards_A : A;
+fun heavenwards_Adv : Adv;
+fun heavily_Adv : Adv;
+fun heaviness_N : N;
+fun heaviside_PN : PN;
+fun heavy_A : A;
+fun heavy_Adv : Adv;
+fun heavy_handed_A : A;
+fun heavy_hearted_A : A;
+fun heavy_laden_A : A;
+fun heavyweight_N : N;
+fun hebden_royal_PN : PN;
+fun hebdomadal_A : A;
+fun hebraic_A : A;
+fun hebrew_A : A;
+fun hebrew_N : N;
+fun hecatomb_N : N;
+fun heck_N : N;
+fun heckle_V2 : V2;
+fun heckler_N : N;
+fun hectare_N : N;
+fun hectic_A : A;
+fun hector_V : V;
+fun hector_V2 : V2;
+fun hedge_N : N;
+fun hedge_V : V;
+fun hedge_V2 : V2;
+fun hedge_end_PN : PN;
+fun hedge_sparrow_N : N;
+fun hedgehog_N : N;
+fun hedgehop_V : V;
+fun hedgerow_N : N;
+fun hedonism_N : N;
+fun hedonist_N : N;
+fun hedonistic_A : A;
+fun heed_N : N;
+fun heed_V2 : V2;
+fun heedful_A : A;
+fun heedless_A : A;
+fun heehaw_N : N;
+fun heel_N : N;
+fun heel_V : V;
+fun heel_V2 : V2;
+fun hefty_A : A;
+fun hegemony_N : N;
+fun hegira_N : N;
+fun heidelburg_PN : PN;
+fun heifer_N : N;
+fun height_N : N;
+fun heighten_V : V;
+fun heighten_V2 : V2;
+fun heinous_A : A;
+fun heinousness_N : N;
+fun heir_N : N;
+fun heiress_N : N;
+fun heirloom_N : N;
+fun hejira_N : N;
+fun helen_PN : PN;
+fun helensburgh_PN : PN;
+fun helicopter_N : N;
+fun heliograph_N : N;
+fun heliograph_V2 : V2;
+fun heliotrope_N : N;
+fun heliport_N : N;
+fun helium_N : N;
+fun hell_N : N;
+fun hellcat_N : N;
+fun hellene_N : N;
+fun hellenic_A : A;
+fun hellish_A : A;
+fun helm_N : N;
+fun helmet_N : N;
+fun helmeted_A : A;
+fun helmsman_N : N;
+fun helot_N : N;
+fun help_N : N;
+fun help_V : V;
+fun help_V2 : V2;
+fun helper_N : N;
+fun helpful_A : A;
+fun helpfulness_N : N;
+fun helping_N : N;
+fun helpless_A : A;
+fun helplessness_N : N;
+fun helpmate_N : N;
+fun helpmeet_N : N;
+fun helsinki_PN : PN;
+fun helston_PN : PN;
+fun helter_skelter_Adv : Adv;
+fun helter_skelter_N : N;
+fun helve_N : N;
+fun hem_N : N;
+fun hem_V : V;
+fun hem_V2 : V2;
+fun hematite_N : N;
+fun hemel_hempstead_PN : PN;
+fun hemisphere_N : N;
+fun hemline_N : N;
+fun hemlock_N : N;
+fun hemming_stitch_N : N;
+fun hemoglobin_N : N;
+fun hemophilia_N : N;
+fun hemophiliac_N : N;
+fun hemorrhage_N : N;
+fun hemp_N : N;
+fun hempen_A : A;
+fun hemstitch_N : N;
+fun hemstitch_V2 : V2;
+fun hemsworth_PN : PN;
+fun hen_N : N;
+fun hen_party_N : N;
+fun henbane_N : N;
+fun hence_Adv : Adv;
+fun henceforth_Adv : Adv;
+fun henceforward_Adv : Adv;
+fun henchman_N : N;
+fun hencoop_N : N;
+fun henhouse_N : N;
+fun henley_on_thames_PN : PN;
+fun henna_N : N;
+fun hennaed_A : A;
+fun henpecked_A : A;
+fun henroost_N : N;
+fun henry_PN : PN;
+fun hep_A : A;
+fun hepatitis_N : N;
+fun heptagon_N : N;
+fun herald_N : N;
+fun herald_V2 : V2;
+fun heraldic_A : A;
+fun heraldry_N : N;
+fun herb_N : N;
+fun herb_PN : PN;
+fun herbaceous_A : A;
+fun herbage_N : N;
+fun herbal_A : A;
+fun herbalist_N : N;
+fun herbert_PN : PN;
+fun herbivorous_A : A;
+fun herculean_A : A;
+fun herd_N : N;
+fun herd_V : V;
+fun herd_V2 : V2;
+fun herdsman_N : N;
+fun hereabouts_Adv : Adv;
+fun hereafter_Adv : Adv;
+fun hereafter_N : N;
+fun hereby_Adv : Adv;
+fun hereditament_N : N;
+fun hereditary_A : A;
+fun heredity_N : N;
+fun hereford_PN : PN;
+fun herein_Adv : Adv;
+fun hereinafter_Adv : Adv;
+fun hereinbefore_Adv : Adv;
+fun hereof_Adv : Adv;
+fun heresy_N : N;
+fun heretic_N : N;
+fun heretical_A : A;
+fun hereto_Adv : Adv;
+fun heretofore_Adv : Adv;
+fun hereupon_Adv : Adv;
+fun herewith_Adv : Adv;
+fun heritable_A : A;
+fun heritage_N : N;
+fun hermaphrodite_N : N;
+fun hermetic_A : A;
+fun hermetically_Adv : Adv;
+fun hermit_N : N;
+fun hermitage_N : N;
+fun herne_PN : PN;
+fun herne_bay_PN : PN;
+fun hernia_N : N;
+fun hero_N : N;
+fun heroic_A : A;
+fun heroically_Adv : Adv;
+fun heroics_N : N;
+fun heroin_N : N;
+fun heroine_N : N;
+fun heroism_N : N;
+fun heron_N : N;
+fun heronry_N : N;
+fun herr_N : N;
+fun herring_N : N;
+fun herringbone_N : N;
+fun hertford_PN : PN;
+fun hertfordshire_PN : PN;
+fun hertz_N : N;
+fun hertzian_A : A;
+fun hesitance_N : N;
+fun hesitancy_N : N;
+fun hesitant_A : A;
+fun hesitate_V : V;
+fun hesitatingly_Adv : Adv;
+fun hesitation_N : N;
+fun hessian_N : N;
+fun het_up_A : A;
+fun heterodox_A : A;
+fun heterodoxy_N : N;
+fun heterogeneous_A : A;
+fun heterosexual_A : A;
+fun heterosexual_N : N;
+fun heterosexuality_N : N;
+fun hetton_PN : PN;
+fun heuristic_A : A;
+fun heuristics_N : N;
+fun hew_V : V;
+fun hew_V2 : V2;
+fun hewer_N : N;
+fun hexagon_N : N;
+fun hexagonal_A : A;
+fun hexameter_N : N;
+fun hexham_PN : PN;
+fun heyday_N : N;
+fun heysham_PN : PN;
+fun heywood_PN : PN;
+fun hi_fi_A : A;
+fun hi_fi_N : N;
+fun hiatus_N : N;
+fun hibernate_V : V;
+fun hibernation_N : N;
+fun hibiscus_N : N;
+fun hiccough_N : N;
+fun hiccough_V : V;
+fun hiccup_N : N;
+fun hiccup_V : V;
+fun hick_A : A;
+fun hick_N : N;
+fun hickory_N : N;
+fun hide_N : N;
+fun hide_V : V;
+fun hide_V2 : V2;
+fun hide_and_seek_N : N;
+fun hide_out_N : N;
+fun hideaway_N : N;
+fun hidebound_A : A;
+fun hideous_A : A;
+fun hiding_N : N;
+fun hiding_place_N : N;
+fun hie_V : V;
+fun hierarchic_A : A;
+fun hierarchical_A : A;
+fun hierarchy_N : N;
+fun hieroglyph_N : N;
+fun hieroglyphic_A : A;
+fun hieroglyphics_N : N;
+fun higgledy_piggledy_A : A;
+fun higgledy_piggledy_Adv : Adv;
+fun high_A : A;
+fun high_Adv : Adv;
+fun high_class_A : A;
+fun high_falutin_A : A;
+fun high_fidelity_A : A;
+fun high_fidelity_N : N;
+fun high_frequency_N : N;
+fun high_grade_A : A;
+fun high_handed_A : A;
+fun high_keyed_A : A;
+fun high_level_A : A;
+fun high_minded_A : A;
+fun high_mindedness_N : N;
+fun high_necked_A : A;
+fun high_octane_A : A;
+fun high_pitched_A : A;
+fun high_powered_A : A;
+fun high_pressure_N : N;
+fun high_priced_A : A;
+fun high_principled_A : A;
+fun high_ranking_A : A;
+fun high_rise_A : A;
+fun high_sounding_A : A;
+fun high_speed_A : A;
+fun high_spen_PN : PN;
+fun high_spirited_A : A;
+fun high_tension_A : A;
+fun high_toned_A : A;
+fun high_up_N : N;
+fun high_wycombe_PN : PN;
+fun highball_N : N;
+fun highborn_A : A;
+fun highboy_N : N;
+fun highbrow_A : A;
+fun highbrow_N : N;
+fun highflier_N : N;
+fun highflown_A : A;
+fun highflyer_N : N;
+fun highflying_A : A;
+fun highjack_N : N;
+fun highjack_V2 : V2;
+fun highland_N : N;
+fun highland_PN : PN;
+fun highlander_N : N;
+fun highlight_N : N;
+fun highlight_V2 : V2;
+fun highness_N : N;
+fun highroad_N : N;
+fun highway_N : N;
+fun highwayman_N : N;
+fun hijack_N : N;
+fun hijack_V2 : V2;
+fun hijacker_N : N;
+fun hike_N : N;
+fun hike_V : V;
+fun hiker_N : N;
+fun hilarious_A : A;
+fun hilarity_N : N;
+fun hilary_PN : PN;
+fun hilda_PN : PN;
+fun hill_N : N;
+fun hill_billy_N : N;
+fun hillingdon_PN : PN;
+fun hillock_N : N;
+fun hillside_N : N;
+fun hilly_A : A;
+fun hilt_N : N;
+fun hinckley_PN : PN;
+fun hind_A : A;
+fun hind_N : N;
+fun hinder_V2 : V2;
+fun hindi_A : A;
+fun hindi_N : N;
+fun hindmost_A : A;
+fun hindrance_N : N;
+fun hindsight_N : N;
+fun hindu_A : A;
+fun hindu_N : N;
+fun hinduism_N : N;
+fun hindustani_A : A;
+fun hindustani_N : N;
+fun hinge_N : N;
+fun hinge_V : V;
+fun hinge_V2 : V2;
+fun hint_N : N;
+fun hint_V : V;
+fun hint_V2 : V2;
+fun hinterland_N : N;
+fun hip_A : A;
+fun hip_N : N;
+fun hip_bath_N : N;
+fun hip_flask_N : N;
+fun hip_pocket_N : N;
+fun hippie_N : N;
+fun hippo_N : N;
+fun hippocratic_A : A;
+fun hippodrome_N : N;
+fun hippopotamus_N : N;
+fun hippy_N : N;
+fun hire_N : N;
+fun hire_V2 : V2;
+fun hireling_N : N;
+fun hiroshima_PN : PN;
+fun hirsute_A : A;
+fun hiss_N : N;
+fun hiss_V : V;
+fun hiss_V2 : V2;
+fun histogram_N : N;
+fun historian_N : N;
+fun historic_A : A;
+fun historical_A : A;
+fun history_N : N;
+fun histrionic_A : A;
+fun histrionics_N : N;
+fun hit_N : N;
+fun hit_V : V;
+fun hit_V2 : V2;
+fun hit_and_run_A : A;
+fun hitch_N : N;
+fun hitch_V : V;
+fun hitch_V2 : V2;
+fun hitchhike_V : V;
+fun hitchhiker_N : N;
+fun hitchin_PN : PN;
+fun hither_Adv : Adv;
+fun hitherto_Adv : Adv;
+fun hive_N : N;
+fun hive_V : V;
+fun hive_V2 : V2;
+fun hm_PN : PN;
+fun hmso_PN : PN;
+fun hoar_A : A;
+fun hoard_N : N;
+fun hoard_V : V;
+fun hoard_V2 : V2;
+fun hoarder_N : N;
+fun hoarding_N : N;
+fun hoarfrost_N : N;
+fun hoariness_N : N;
+fun hoarse_A : A;
+fun hoarseness_N : N;
+fun hoary_A : A;
+fun hoax_N : N;
+fun hoax_V2 : V2;
+fun hoaxer_N : N;
+fun hob_N : N;
+fun hobble_N : N;
+fun hobble_V : V;
+fun hobble_V2 : V2;
+fun hobble_skirt_N : N;
+fun hobbledehoy_N : N;
+fun hobby_N : N;
+fun hobbyhorse_N : N;
+fun hobgoblin_N : N;
+fun hobnail_N : N;
+fun hobnailed_A : A;
+fun hobnob_V : V;
+fun hobo_N : N;
+fun hobson_PN : PN;
+fun hock_N : N;
+fun hock_V2 : V2;
+fun hockey_N : N;
+fun hockley_PN : PN;
+fun hocus_pocus_N : N;
+fun hod_N : N;
+fun hoddesdon_PN : PN;
+fun hodgepodge_N : N;
+fun hoe_N : N;
+fun hoe_V : V;
+fun hoe_V2 : V2;
+fun hofei_PN : PN;
+fun hog_N : N;
+fun hog_V2 : V2;
+fun hoggish_A : A;
+fun hogmanay_N : N;
+fun hogmanay_PN : PN;
+fun hogshead_N : N;
+fun hogwash_N : N;
+fun hoist_N : N;
+fun hoist_V2 : V2;
+fun hoity_toity_A : A;
+fun hold_N : N;
+fun hold_V : V;
+fun hold_V2 : V2;
+fun hold_up_N : N;
+fun holdall_N : N;
+fun holder_N : N;
+fun holding_N : N;
+fun holdup_N : N;
+fun hole_N : N;
+fun hole_V : V;
+fun hole_V2 : V2;
+fun hole_and_corner_A : A;
+fun holiday_N : N;
+fun holiday_V : V;
+fun holiday_maker_N : N;
+fun holiness_N : N;
+fun holland_PN : PN;
+fun hollander_A : A;
+fun hollander_N : N;
+fun holler_V : V;
+fun holler_V2 : V2;
+fun holloa_N : N;
+fun hollow_A : A;
+fun hollow_N : N;
+fun hollow_V2 : V2;
+fun holly_N : N;
+fun hollyhock_N : N;
+fun hollywood_PN : PN;
+fun holm_oak_N : N;
+fun holmfirth_PN : PN;
+fun holocaust_N : N;
+fun holograph_N : N;
+fun holster_N : N;
+fun holy_A : A;
+fun holy_N : N;
+fun holyhead_PN : PN;
+fun holystone_N : N;
+fun holystone_V2 : V2;
+fun homage_N : N;
+fun home_Adv : Adv;
+fun home_N : N;
+fun home_baked_A : A;
+fun home_brewed_A : A;
+fun home_cured_A : A;
+fun home_farm_N : N;
+fun home_grown_A : A;
+fun home_made_A : A;
+fun homecoming_N : N;
+fun homeland_N : N;
+fun homeless_A : A;
+fun homelike_A : A;
+fun homeliness_N : N;
+fun homely_A : A;
+fun homeopath_N : N;
+fun homeopathic_A : A;
+fun homeric_A : A;
+fun homesick_A : A;
+fun homesickness_N : N;
+fun homespun_A : A;
+fun homespun_N : N;
+fun homestead_N : N;
+fun homeward_A : A;
+fun homeward_Adv : Adv;
+fun homewards_Adv : Adv;
+fun homework_N : N;
+fun homey_A : A;
+fun homicidal_A : A;
+fun homicide_N : N;
+fun homiletic_A : A;
+fun homiletics_N : N;
+fun homily_N : N;
+fun homing_A : A;
+fun hominy_N : N;
+fun homo_N : N;
+fun homo_sapiens_N : N;
+fun homoeopath_N : N;
+fun homoeopathy_N : N;
+fun homogeneity_N : N;
+fun homogeneous_A : A;
+fun homogenize_V2 : V2;
+fun homograph_N : N;
+fun homonym_N : N;
+fun homophone_N : N;
+fun homosexual_A : A;
+fun homosexual_N : N;
+fun homosexuality_N : N;
+fun hon_PN : PN;
+fun honduran_A : A;
+fun honduran_N : N;
+fun honduras_PN : PN;
+fun hone_N : N;
+fun hone_V2 : V2;
+fun honest_A : A;
+fun honesty_N : N;
+fun honey_N : N;
+fun honeybee_N : N;
+fun honeycomb_N : N;
+fun honeycomb_V2 : V2;
+fun honeydew_N : N;
+fun honeyed_A : A;
+fun honeymoon_N : N;
+fun honeymoon_V : V;
+fun honeysuckle_N : N;
+fun hong_kong_PN : PN;
+fun honiton_PN : PN;
+fun honk_N : N;
+fun honk_V : V;
+fun honorarium_N : N;
+fun honorary_A : A;
+fun honorific_A : A;
+fun honorific_N : N;
+fun honour_N : N;
+fun honour_V2 : V2;
+fun honourable_A : A;
+fun hoo_PN : PN;
+fun hooch_N : N;
+fun hood_N : N;
+fun hood_V2 : V2;
+fun hoodlum_N : N;
+fun hoodoo_N : N;
+fun hoodoo_V2 : V2;
+fun hoodwink_V2 : V2;
+fun hooey_N : N;
+fun hoof_N : N;
+fun hook_N : N;
+fun hook_V : V;
+fun hook_V2 : V2;
+fun hook_nosed_A : A;
+fun hook_up_N : N;
+fun hookah_N : N;
+fun hooked_A : A;
+fun hooker_N : N;
+fun hookworm_N : N;
+fun hooky_N : N;
+fun hooligan_N : N;
+fun hooliganism_N : N;
+fun hoop_N : N;
+fun hoop_V2 : V2;
+fun hoop_la_N : N;
+fun hoot_N : N;
+fun hoot_V : V;
+fun hoot_V2 : V2;
+fun hooter_N : N;
+fun hoover_N : N;
+fun hoover_V2 : V2;
+fun hop_N : N;
+fun hop_V : V;
+fun hop_V2 : V2;
+fun hop_field_N : N;
+fun hop_garden_N : N;
+fun hop_picker_N : N;
+fun hop_pole_N : N;
+fun hope_N : N;
+fun hope_PN : PN;
+fun hope_V : V;
+fun hope_V2 : V2;
+fun hopeful_A : A;
+fun hopefulness_N : N;
+fun hopeless_A : A;
+fun hopelessness_N : N;
+fun hopped_up_A : A;
+fun hopper_N : N;
+fun hopscotch_N : N;
+fun horace_PN : PN;
+fun horde_N : N;
+fun horizon_N : N;
+fun horizontal_A : A;
+fun horley_PN : PN;
+fun hormone_N : N;
+fun horn_N : N;
+fun horn_V : V;
+fun horn_rimmed_A : A;
+fun hornbeam_N : N;
+fun hornbill_N : N;
+fun horned_A : A;
+fun hornet_N : N;
+fun hornless_A : A;
+fun hornlike_A : A;
+fun hornpipe_N : N;
+fun hornsea_PN : PN;
+fun horny_A : A;
+fun horology_N : N;
+fun horoscope_N : N;
+fun horrible_A : A;
+fun horrid_A : A;
+fun horridness_N : N;
+fun horrific_A : A;
+fun horrify_V2 : V2;
+fun horrifyingly_Adv : Adv;
+fun horror_N : N;
+fun horror_stricken_A : A;
+fun horror_struck_A : A;
+fun hors_de_combat_A : A;
+fun horse_N : N;
+fun horse_chestnut_N : N;
+fun horse_laugh_N : N;
+fun horse_pond_N : N;
+fun horse_sense_N : N;
+fun horseback_N : N;
+fun horsebox_N : N;
+fun horseflesh_N : N;
+fun horsefly_N : N;
+fun horsehair_N : N;
+fun horseman_N : N;
+fun horsemanship_N : N;
+fun horsemeat_N : N;
+fun horseplay_N : N;
+fun horsepower_N : N;
+fun horserace_N : N;
+fun horseracing_N : N;
+fun horseradish_N : N;
+fun horseshoe_N : N;
+fun horsewhip_N : N;
+fun horsewhip_V2 : V2;
+fun horsewoman_N : N;
+fun horsham_PN : PN;
+fun horsley_PN : PN;
+fun horsy_A : A;
+fun hortative_A : A;
+fun horticultural_A : A;
+fun horticulture_N : N;
+fun horticulturist_N : N;
+fun horwich_PN : PN;
+fun hosanna_N : N;
+fun hose_N : N;
+fun hose_V2 : V2;
+fun hosepipe_N : N;
+fun hosier_N : N;
+fun hosiery_N : N;
+fun hosp_PN : PN;
+fun hospice_N : N;
+fun hospitable_A : A;
+fun hospital_N : N;
+fun hospitality_N : N;
+fun hospitalization_N : N;
+fun hospitalize_V2 : V2;
+fun host_N : N;
+fun host_V2 : V2;
+fun hostage_N : N;
+fun hostel_N : N;
+fun hosteller_N : N;
+fun hostelry_N : N;
+fun hostess_N : N;
+fun hostile_A : A;
+fun hostility_N : N;
+fun hot_A : A;
+fun hot_V : V;
+fun hot_V2 : V2;
+fun hot_blooded_A : A;
+fun hot_headed_A : A;
+fun hot_tempered_A : A;
+fun hot_water_bottle_N : N;
+fun hotbed_N : N;
+fun hotchpotch_N : N;
+fun hotel_N : N;
+fun hotelier_N : N;
+fun hotfoot_Adv : Adv;
+fun hotfoot_V : V;
+fun hothead_N : N;
+fun hothouse_N : N;
+fun hotplate_N : N;
+fun houghton_PN : PN;
+fun hound_N : N;
+fun hound_V2 : V2;
+fun hounslow_PN : PN;
+fun hour_N : N;
+fun hourglass_N : N;
+fun houri_N : N;
+fun hourly_A : A;
+fun hourly_Adv : Adv;
+fun house_N : N;
+fun house_V2 : V2;
+fun house_party_N : N;
+fun house_warming_N : N;
+fun houseboat_N : N;
+fun housebound_A : A;
+fun housebreaker_N : N;
+fun housecoat_N : N;
+fun housecraft_N : N;
+fun housedog_N : N;
+fun housefather_N : N;
+fun housefly_N : N;
+fun houseful_N : N;
+fun household_N : N;
+fun householder_N : N;
+fun housekeeper_N : N;
+fun housemaid_N : N;
+fun houseman_N : N;
+fun housemaster_N : N;
+fun housemother_N : N;
+fun houseproud_A : A;
+fun houseroom_N : N;
+fun housetop_N : N;
+fun housetrained_A : A;
+fun housewife_N : N;
+fun housewifely_A : A;
+fun housewifery_N : N;
+fun housework_N : N;
+fun housewrecker_N : N;
+fun housing_N : N;
+fun houston_PN : PN;
+fun hove_PN : PN;
+fun hovel_N : N;
+fun hover_V : V;
+fun hovercraft_N : N;
+fun how_Adv : Adv;
+fun how_d'ye_do_N : N;
+fun howard_PN : PN;
+fun howdah_N : N;
+fun however_Adv : Adv;
+fun howitzer_N : N;
+fun howl_N : N;
+fun howl_V : V;
+fun howl_V2 : V2;
+fun howler_N : N;
+fun howling_A : A;
+fun hoyden_N : N;
+fun hoydenish_A : A;
+fun hoylake_PN : PN;
+fun hoyland_nether_PN : PN;
+fun hp_N : N;
+fun hq_PN : PN;
+fun hrh_PN : PN;
+fun hub_N : N;
+fun hubble_bubble_N : N;
+fun hubbub_N : N;
+fun hubby_N : N;
+fun hubert_PN : PN;
+fun hubris_N : N;
+fun huckaback_N : N;
+fun huckleberry_N : N;
+fun hucknall_PN : PN;
+fun huckster_N : N;
+fun huddersfield_PN : PN;
+fun huddle_N : N;
+fun huddle_V : V;
+fun huddle_V2 : V2;
+fun hue_N : N;
+fun hued_A : A;
+fun huff_N : N;
+fun huff_V : V;
+fun huffily_Adv : Adv;
+fun huffish_A : A;
+fun huffy_A : A;
+fun hug_N : N;
+fun hug_V2 : V2;
+fun huge_A : A;
+fun hugger_mugger_A : A;
+fun hugger_mugger_Adv : Adv;
+fun hugger_mugger_N : N;
+fun hugh_PN : PN;
+fun hughie_PN : PN;
+fun huguenot_N : N;
+fun huhehot_PN : PN;
+fun hula_N : N;
+fun hulk_N : N;
+fun hulking_A : A;
+fun hull_N : N;
+fun hull_V2 : V2;
+fun hullabaloo_N : N;
+fun hum_N : N;
+fun hum_V : V;
+fun hum_V2 : V2;
+fun human_A : A;
+fun human_N : N;
+fun humane_A : A;
+fun humanism_N : N;
+fun humanist_N : N;
+fun humanitarian_A : A;
+fun humanitarian_N : N;
+fun humanitarianism_N : N;
+fun humanity_N : N;
+fun humanize_V : V;
+fun humanize_V2 : V2;
+fun humankind_N : N;
+fun humberside_PN : PN;
+fun humberston_PN : PN;
+fun humble_A : A;
+fun humble_V2 : V2;
+fun humbly_Adv : Adv;
+fun humbug_N : N;
+fun humbug_V2 : V2;
+fun humdinger_N : N;
+fun humdrum_A : A;
+fun humerus_N : N;
+fun humid_A : A;
+fun humidify_V2 : V2;
+fun humidity_N : N;
+fun humiliate_V2 : V2;
+fun humiliation_N : N;
+fun humility_N : N;
+fun humming_top_N : N;
+fun hummingbird_N : N;
+fun hummock_N : N;
+fun humorist_N : N;
+fun humorous_A : A;
+fun humour_N : N;
+fun humour_V2 : V2;
+fun humourist_N : N;
+fun humourless_A : A;
+fun hump_N : N;
+fun hump_V2 : V2;
+fun humpback_N : N;
+fun humpbacked_A : A;
+fun humphrey_PN : PN;
+fun humus_N : N;
+fun hun_N : N;
+fun hunch_N : N;
+fun hunch_V2 : V2;
+fun hunchback_A : A;
+fun hunchback_N : N;
+fun hunchbacked_A : A;
+fun hundredfold_Adv : Adv;
+fun hundredweight_N : N;
+fun hungarian_A : A;
+fun hungarian_N : N;
+fun hungary_PN : PN;
+fun hunger_N : N;
+fun hunger_V : V;
+fun hunger_march_N : N;
+fun hunger_marcher_N : N;
+fun hungrily_Adv : Adv;
+fun hungry_A : A;
+fun hunk_N : N;
+fun hunt_N : N;
+fun hunt_V : V;
+fun hunt_V2 : V2;
+fun hunter_N : N;
+fun hunting_N : N;
+fun hunting_crop_N : N;
+fun huntingdon_PN : PN;
+fun huntress_N : N;
+fun huntsman_N : N;
+fun hurdle_N : N;
+fun hurdle_V : V;
+fun hurdle_V2 : V2;
+fun hurdler_N : N;
+fun hurdy_gurdy_N : N;
+fun hurl_N : N;
+fun hurl_V2 : V2;
+fun hurling_N : N;
+fun hurly_burly_N : N;
+fun hurrah_V : V;
+fun hurricane_N : N;
+fun hurried_A : A;
+fun hurry_N : N;
+fun hurry_V : V;
+fun hurry_V2 : V2;
+fun hurstpierpoint_PN : PN;
+fun hurt_N : N;
+fun hurt_V : V;
+fun hurt_V2 : V2;
+fun hurtful_A : A;
+fun hurtle_V : V;
+fun husband_N : N;
+fun husband_V2 : V2;
+fun husbandman_N : N;
+fun husbandry_N : N;
+fun hush_N : N;
+fun hush_V : V;
+fun hush_V2 : V2;
+fun hush_hush_A : A;
+fun hush_money_N : N;
+fun husk_N : N;
+fun husk_V2 : V2;
+fun huskily_Adv : Adv;
+fun huskiness_N : N;
+fun husky_A : A;
+fun husky_N : N;
+fun hussar_N : N;
+fun hussy_N : N;
+fun hustle_N : N;
+fun hustle_V : V;
+fun hustle_V2 : V2;
+fun hustler_N : N;
+fun hut_N : N;
+fun hutch_N : N;
+fun hutment_N : N;
+fun hutted_A : A;
+fun hwainan_PN : PN;
+fun hyacinth_N : N;
+fun hyaena_N : N;
+fun hybrid_A : A;
+fun hybrid_N : N;
+fun hybridize_V : V;
+fun hybridize_V2 : V2;
+fun hyde_PN : PN;
+fun hyderabad_PN : PN;
+fun hydra_N : N;
+fun hydrangea_N : N;
+fun hydrant_N : N;
+fun hydrate_N : N;
+fun hydrate_V : V;
+fun hydrate_V2 : V2;
+fun hydraulic_A : A;
+fun hydraulics_N : N;
+fun hydrocarbon_N : N;
+fun hydrochloric_A : A;
+fun hydroelectric_A : A;
+fun hydrofoil_N : N;
+fun hydrogen_N : N;
+fun hydropathic_A : A;
+fun hydropathy_N : N;
+fun hydrophobia_N : N;
+fun hydroplane_N : N;
+fun hydroponics_N : N;
+fun hyena_N : N;
+fun hygiene_N : N;
+fun hygienic_A : A;
+fun hygienically_Adv : Adv;
+fun hymen_N : N;
+fun hymn_N : N;
+fun hymn_V2 : V2;
+fun hymnal_N : N;
+fun hyperbola_N : N;
+fun hyperbole_N : N;
+fun hyperbolic_A : A;
+fun hypercritical_A : A;
+fun hypermarket_N : N;
+fun hypersensitive_A : A;
+fun hyphen_N : N;
+fun hyphen_V2 : V2;
+fun hyphenate_V2 : V2;
+fun hypnosis_N : N;
+fun hypnotic_A : A;
+fun hypnotism_N : N;
+fun hypnotist_N : N;
+fun hypnotize_V2 : V2;
+fun hypo_N : N;
+fun hypochondria_N : N;
+fun hypochondriac_A : A;
+fun hypochondriac_N : N;
+fun hypochondriacal_A : A;
+fun hypocrisy_N : N;
+fun hypocrite_N : N;
+fun hypocritical_A : A;
+fun hypodermic_A : A;
+fun hypodermic_N : N;
+fun hypotenuse_N : N;
+fun hypothecate_V2 : V2;
+fun hypothesis_N : N;
+fun hypothetical_A : A;
+fun hyssop_N : N;
+fun hysteria_N : N;
+fun hysterical_A : A;
+fun hysterics_N : N;
+fun hythe_PN : PN;
+fun iamb_N : N;
+fun iambic_A : A;
+fun iambics_N : N;
+fun iambus_N : N;
+fun ian_PN : PN;
+fun iba_N : N;
+fun ibadan_PN : PN;
+fun ibex_N : N;
+fun ibid_PN : PN;
+fun ibidem_Adv : Adv;
+fun ibis_N : N;
+fun icbm_N : N;
+fun ice_N : N;
+fun ice_V : V;
+fun ice_V2 : V2;
+fun ice_axe_N : N;
+fun ice_cream_N : N;
+fun ice_lolly_N : N;
+fun ice_show_N : N;
+fun ice_skate_N : N;
+fun ice_skate_V : V;
+fun ice_skating_N : N;
+fun ice_tray_N : N;
+fun iceberg_N : N;
+fun iceboat_N : N;
+fun icebound_A : A;
+fun icebox_N : N;
+fun icebreaker_N : N;
+fun icecap_N : N;
+fun icecube_N : N;
+fun icefall_N : N;
+fun icefield_N : N;
+fun icefloe_N : N;
+fun icefree_A : A;
+fun icehouse_N : N;
+fun iceland_PN : PN;
+fun icelander_A : A;
+fun icelander_N : N;
+fun icelandic_A : A;
+fun icelandic_N : N;
+fun iceman_N : N;
+fun icepack_N : N;
+fun icepick_N : N;
+fun icerink_N : N;
+fun ichneumon_N : N;
+fun ichneumon_fly_N : N;
+fun icicle_N : N;
+fun icily_Adv : Adv;
+fun icing_N : N;
+fun icon_N : N;
+fun iconoclast_N : N;
+fun icy_A : A;
+fun id_N : N;
+fun ida_PN : PN;
+fun idaho_PN : PN;
+fun idea_N : N;
+fun ideal_A : A;
+fun ideal_N : N;
+fun idealism_N : N;
+fun idealist_N : N;
+fun idealistic_A : A;
+fun idealization_N : N;
+fun idealize_V2 : V2;
+fun idem_PN : PN;
+fun identical_A : A;
+fun identifiable_A : A;
+fun identification_N : N;
+fun identify_V2 : V2;
+fun identikit_N : N;
+fun identity_N : N;
+fun ideogram_N : N;
+fun ideograph_N : N;
+fun ideographic_A : A;
+fun ideological_A : A;
+fun ideology_N : N;
+fun idiocy_N : N;
+fun idiolect_N : N;
+fun idiom_N : N;
+fun idiomatic_A : A;
+fun idiomatically_Adv : Adv;
+fun idiosyncrasy_N : N;
+fun idiosyncratic_A : A;
+fun idiot_N : N;
+fun idiotic_A : A;
+fun idiotically_Adv : Adv;
+fun idle_A : A;
+fun idle_V : V;
+fun idle_V2 : V2;
+fun idleness_N : N;
+fun idler_N : N;
+fun idly_Adv : Adv;
+fun idol_N : N;
+fun idolater_N : N;
+fun idolatress_N : N;
+fun idolatrous_A : A;
+fun idolatry_N : N;
+fun idolization_N : N;
+fun idolize_V2 : V2;
+fun idyll_N : N;
+fun idyllic_A : A;
+fun ie_PN : PN;
+fun igloo_N : N;
+fun igneous_A : A;
+fun ignis_fatuus_N : N;
+fun ignite_V : V;
+fun ignite_V2 : V2;
+fun ignition_N : N;
+fun ignoble_A : A;
+fun ignominious_A : A;
+fun ignominy_N : N;
+fun ignoramus_N : N;
+fun ignorance_N : N;
+fun ignorant_A : A;
+fun ignore_V2 : V2;
+fun iguana_N : N;
+fun ikon_N : N;
+fun ilex_N : N;
+fun ilfracombe_PN : PN;
+fun ilk_N : N;
+fun ilkeston_PN : PN;
+fun ilkley_PN : PN;
+fun ill_A : A;
+fun ill_Adv : Adv;
+fun ill_N : N;
+fun ill_advised_A : A;
+fun ill_affected_A : A;
+fun ill_bred_A : A;
+fun ill_breeding_N : N;
+fun ill_disposed_A : A;
+fun ill_fated_A : A;
+fun ill_favoured_A : A;
+fun ill_gotten_A : A;
+fun ill_judged_A : A;
+fun ill_mannered_A : A;
+fun ill_natured_A : A;
+fun ill_omened_A : A;
+fun ill_starred_A : A;
+fun ill_timed_A : A;
+fun ill_treat_V2 : V2;
+fun ill_treatment_N : N;
+fun ill_usage_N : N;
+fun ill_use_V2 : V2;
+fun illegal_A : A;
+fun illegality_N : N;
+fun illegibility_N : N;
+fun illegible_A : A;
+fun illegitimacy_N : N;
+fun illegitimate_A : A;
+fun illegitimate_N : N;
+fun illiberal_A : A;
+fun illiberality_N : N;
+fun illicit_A : A;
+fun illimitable_A : A;
+fun illinois_PN : PN;
+fun illiteracy_N : N;
+fun illiterate_A : A;
+fun illiterate_N : N;
+fun illness_N : N;
+fun illogical_A : A;
+fun illogicality_N : N;
+fun illogicalness_N : N;
+fun illume_V2 : V2;
+fun illuminate_V2 : V2;
+fun illumination_N : N;
+fun illumine_V2 : V2;
+fun illusion_N : N;
+fun illusionist_N : N;
+fun illusive_A : A;
+fun illusory_A : A;
+fun illustrate_V2 : V2;
+fun illustration_N : N;
+fun illustrative_A : A;
+fun illustrator_N : N;
+fun illustrious_A : A;
+fun ilo_N : N;
+fun image_N : N;
+fun image_V2 : V2;
+fun imagery_N : N;
+fun imaginable_A : A;
+fun imaginary_A : A;
+fun imagination_N : N;
+fun imaginative_A : A;
+fun imagine_V2 : V2;
+fun imam_N : N;
+fun imbalance_N : N;
+fun imbecile_A : A;
+fun imbecile_N : N;
+fun imbecility_N : N;
+fun imbed_V2 : V2;
+fun imbibe_V2 : V2;
+fun imbroglio_N : N;
+fun imbue_V2 : V2;
+fun imf_N : N;
+fun imitate_V2 : V2;
+fun imitation_N : N;
+fun imitative_A : A;
+fun imitator_N : N;
+fun immaculate_A : A;
+fun immanence_N : N;
+fun immanent_A : A;
+fun immaterial_A : A;
+fun immature_A : A;
+fun immaturity_N : N;
+fun immeasurable_A : A;
+fun immediacy_N : N;
+fun immediate_A : A;
+fun immemorial_A : A;
+fun immense_A : A;
+fun immensity_N : N;
+fun immerse_V2 : V2;
+fun immersion_N : N;
+fun immigrant_N : N;
+fun immigrate_V : V;
+fun immigration_N : N;
+fun imminence_N : N;
+fun imminent_A : A;
+fun immingham_PN : PN;
+fun immobile_A : A;
+fun immobility_N : N;
+fun immobilization_N : N;
+fun immobilize_V2 : V2;
+fun immoderate_A : A;
+fun immodest_A : A;
+fun immodesty_N : N;
+fun immolate_V2 : V2;
+fun immolation_N : N;
+fun immoral_A : A;
+fun immorality_N : N;
+fun immortal_A : A;
+fun immortal_N : N;
+fun immortality_N : N;
+fun immortalize_V2 : V2;
+fun immovable_A : A;
+fun immune_A : A;
+fun immunity_N : N;
+fun immunization_N : N;
+fun immunize_V2 : V2;
+fun immunology_N : N;
+fun immure_V2 : V2;
+fun immutability_N : N;
+fun immutable_A : A;
+fun imp_N : N;
+fun impact_N : N;
+fun impact_V2 : V2;
+fun impair_V2 : V2;
+fun impairment_N : N;
+fun impala_N : N;
+fun impale_V2 : V2;
+fun impalement_N : N;
+fun impalpable_A : A;
+fun impanel_V2 : V2;
+fun impart_V2 : V2;
+fun impartial_A : A;
+fun impartiality_N : N;
+fun impassable_A : A;
+fun impasse_N : N;
+fun impassioned_A : A;
+fun impassive_A : A;
+fun impassiveness_N : N;
+fun impassivity_N : N;
+fun impatience_N : N;
+fun impatient_A : A;
+fun impeach_V2 : V2;
+fun impeachment_N : N;
+fun impeccable_A : A;
+fun impecunious_A : A;
+fun impede_V2 : V2;
+fun impediment_N : N;
+fun impel_V2 : V2;
+fun impeller_N : N;
+fun impend_V : V;
+fun impenetrable_A : A;
+fun impenitence_N : N;
+fun impenitent_A : A;
+fun imperative_A : A;
+fun imperceptible_A : A;
+fun imperfect_A : A;
+fun imperfect_N : N;
+fun imperfection_N : N;
+fun imperial_A : A;
+fun imperial_N : N;
+fun imperialism_N : N;
+fun imperialist_N : N;
+fun imperialistic_A : A;
+fun imperil_V2 : V2;
+fun imperious_A : A;
+fun imperiousness_N : N;
+fun imperishable_A : A;
+fun impermanence_N : N;
+fun impermanent_A : A;
+fun impermeable_A : A;
+fun impersonal_A : A;
+fun impersonate_V2 : V2;
+fun impersonation_N : N;
+fun impersonator_N : N;
+fun impertinence_N : N;
+fun impertinent_A : A;
+fun imperturbability_N : N;
+fun imperturbable_A : A;
+fun impervious_A : A;
+fun impetigo_N : N;
+fun impetuosity_N : N;
+fun impetuous_A : A;
+fun impetus_N : N;
+fun impiety_N : N;
+fun impinge_V : V;
+fun impingement_N : N;
+fun impious_A : A;
+fun impish_A : A;
+fun impishness_N : N;
+fun implacable_A : A;
+fun implant_V2 : V2;
+fun implausibility_N : N;
+fun implausible_A : A;
+fun implement_N : N;
+fun implement_V2 : V2;
+fun implementation_N : N;
+fun implicate_V2 : V2;
+fun implication_N : N;
+fun implicit_A : A;
+fun implore_V2 : V2;
+fun imploringly_Adv : Adv;
+fun implosion_N : N;
+fun imply_V2 : V2;
+fun impolite_A : A;
+fun impoliteness_N : N;
+fun impolitic_A : A;
+fun imponderable_A : A;
+fun imponderable_N : N;
+fun import_N : N;
+fun import_V2 : V2;
+fun importance_N : N;
+fun important_A : A;
+fun importation_N : N;
+fun importer_N : N;
+fun importunate_A : A;
+fun importune_V2 : V2;
+fun importunity_N : N;
+fun impose_V : V;
+fun impose_V2 : V2;
+fun imposing_A : A;
+fun imposition_N : N;
+fun impossibility_N : N;
+fun impossible_A : A;
+fun impostor_N : N;
+fun imposture_N : N;
+fun impotence_N : N;
+fun impotent_A : A;
+fun impound_V2 : V2;
+fun impoverish_V2 : V2;
+fun impoverishment_N : N;
+fun impracticability_N : N;
+fun impracticable_A : A;
+fun impracticableness_N : N;
+fun impractical_A : A;
+fun imprecate_V2 : V2;
+fun imprecation_N : N;
+fun imprecise_A : A;
+fun imprecision_N : N;
+fun impregnability_N : N;
+fun impregnable_A : A;
+fun impregnate_V2 : V2;
+fun impresario_N : N;
+fun impress_N : N;
+fun impress_V2 : V2;
+fun impression_N : N;
+fun impressionable_A : A;
+fun impressionism_N : N;
+fun impressionist_N : N;
+fun impressionistic_A : A;
+fun impressive_A : A;
+fun impressiveness_N : N;
+fun imprimatur_N : N;
+fun imprint_N : N;
+fun imprint_V2 : V2;
+fun imprison_V2 : V2;
+fun imprisonment_N : N;
+fun improbability_N : N;
+fun improbable_A : A;
+fun impromptu_A : A;
+fun impromptu_Adv : Adv;
+fun impromptu_N : N;
+fun improper_A : A;
+fun impropriety_N : N;
+fun improve_V : V;
+fun improve_V2 : V2;
+fun improvement_N : N;
+fun improver_N : N;
+fun improvidence_N : N;
+fun improvident_A : A;
+fun improvisation_N : N;
+fun improvise_V : V;
+fun improvise_V2 : V2;
+fun imprudence_N : N;
+fun imprudent_A : A;
+fun impudence_N : N;
+fun impudent_A : A;
+fun impugn_V2 : V2;
+fun impulse_N : N;
+fun impulse_buy_V : V;
+fun impulse_buy_V2 : V2;
+fun impulsion_N : N;
+fun impulsive_A : A;
+fun impulsiveness_N : N;
+fun impunity_N : N;
+fun impure_A : A;
+fun impurity_N : N;
+fun imputation_N : N;
+fun impute_V2 : V2;
+fun in_Adv : Adv;
+fun in_N : N;
+fun in_chief_A : A;
+fun in_fighting_N : N;
+fun in_loco_parentis_Adv : Adv;
+fun in_patient_N : N;
+fun in_service_A : A;
+fun in_situ_Adv : Adv;
+fun in_toto_Adv : Adv;
+fun in_tray_N : N;
+fun inability_N : N;
+fun inaccessibility_N : N;
+fun inaccessible_A : A;
+fun inaccuracy_N : N;
+fun inaccurate_A : A;
+fun inaction_N : N;
+fun inactivate_V2 : V2;
+fun inactive_A : A;
+fun inactivity_N : N;
+fun inadequacy_N : N;
+fun inadequate_A : A;
+fun inadmissible_A : A;
+fun inadvertence_N : N;
+fun inadvertent_A : A;
+fun inadvisability_N : N;
+fun inadvisable_A : A;
+fun inalienable_A : A;
+fun inane_A : A;
+fun inanimate_A : A;
+fun inanition_N : N;
+fun inanity_N : N;
+fun inapplicable_A : A;
+fun inappreciable_A : A;
+fun inappropriate_A : A;
+fun inappropriateness_N : N;
+fun inapt_A : A;
+fun inaptitude_N : N;
+fun inarticulate_A : A;
+fun inasmuch_as_Adv : Adv;
+fun inattention_N : N;
+fun inattentive_A : A;
+fun inaudibility_N : N;
+fun inaudible_A : A;
+fun inaugural_A : A;
+fun inaugural_N : N;
+fun inaugurate_V2 : V2;
+fun inauguration_N : N;
+fun inauspicious_A : A;
+fun inboard_A : A;
+fun inborn_A : A;
+fun inbound_A : A;
+fun inbred_A : A;
+fun inbreeding_N : N;
+fun inbuilt_A : A;
+fun inc_PN : PN;
+fun incalculable_A : A;
+fun incandescence_N : N;
+fun incandescent_A : A;
+fun incantation_N : N;
+fun incapability_N : N;
+fun incapable_A : A;
+fun incapacitate_V2 : V2;
+fun incapacity_N : N;
+fun incarcerate_V2 : V2;
+fun incarceration_N : N;
+fun incarnate_A : A;
+fun incarnate_V2 : V2;
+fun incarnation_N : N;
+fun incautious_A : A;
+fun incendiarism_N : N;
+fun incendiary_N : N;
+fun incense_N : N;
+fun incense_V2 : V2;
+fun incentive_N : N;
+fun inception_N : N;
+fun incertitude_N : N;
+fun incessant_A : A;
+fun incest_N : N;
+fun incestuous_A : A;
+fun inch_N : N;
+fun inch_V : V;
+fun inch_V2 : V2;
+fun inchoate_A : A;
+fun inchoative_A : A;
+fun inchon_PN : PN;
+fun incidence_N : N;
+fun incident_A : A;
+fun incident_N : N;
+fun incidental_A : A;
+fun incinerate_V2 : V2;
+fun incineration_N : N;
+fun incinerator_N : N;
+fun incipient_A : A;
+fun incise_V2 : V2;
+fun incision_N : N;
+fun incisive_A : A;
+fun incisor_N : N;
+fun incite_V2 : V2;
+fun incitement_N : N;
+fun incivility_N : N;
+fun incl_PN : PN;
+fun inclemency_N : N;
+fun inclement_A : A;
+fun inclination_N : N;
+fun incline_N : N;
+fun incline_V : V;
+fun incline_V2 : V2;
+fun inclose_V2 : V2;
+fun inclosure_N : N;
+fun include_V2 : V2;
+fun inclusion_N : N;
+fun inclusive_A : A;
+fun incognito_A : A;
+fun incognito_Adv : Adv;
+fun incoherence_N : N;
+fun incoherent_A : A;
+fun incombustible_A : A;
+fun income_N : N;
+fun income_tax_N : N;
+fun incoming_A : A;
+fun incommensurable_A : A;
+fun incommensurate_A : A;
+fun incommode_V2 : V2;
+fun incommunicado_A : A;
+fun incomparable_A : A;
+fun incompatibility_N : N;
+fun incompatible_A : A;
+fun incompetence_N : N;
+fun incompetency_N : N;
+fun incompetent_A : A;
+fun incomplete_A : A;
+fun incomprehensibility_N : N;
+fun incomprehensible_A : A;
+fun incomprehension_N : N;
+fun incompressible_A : A;
+fun inconceivable_A : A;
+fun inconclusive_A : A;
+fun incongruity_N : N;
+fun incongruous_A : A;
+fun inconsequent_A : A;
+fun inconsequential_A : A;
+fun inconsiderable_A : A;
+fun inconsiderate_A : A;
+fun inconsistency_N : N;
+fun inconsistent_A : A;
+fun inconsolable_A : A;
+fun inconspicuous_A : A;
+fun inconstancy_N : N;
+fun inconstant_A : A;
+fun incontestable_A : A;
+fun incontinence_N : N;
+fun incontinent_A : A;
+fun incontrovertible_A : A;
+fun inconvenience_N : N;
+fun inconvenience_V2 : V2;
+fun inconvenient_A : A;
+fun inconvertibility_N : N;
+fun inconvertible_A : A;
+fun incorporate_A : A;
+fun incorporate_V : V;
+fun incorporate_V2 : V2;
+fun incorporation_N : N;
+fun incorporeal_A : A;
+fun incorrect_A : A;
+fun incorrectness_N : N;
+fun incorrigible_A : A;
+fun incorruptibility_N : N;
+fun incorruptible_A : A;
+fun increase_N : N;
+fun increase_V : V;
+fun increase_V2 : V2;
+fun increasingly_Adv : Adv;
+fun incredibility_N : N;
+fun incredible_A : A;
+fun incredulity_N : N;
+fun incredulous_A : A;
+fun increment_N : N;
+fun incremental_A : A;
+fun incriminate_V2 : V2;
+fun incrustation_N : N;
+fun incubate_V : V;
+fun incubate_V2 : V2;
+fun incubation_N : N;
+fun incubator_N : N;
+fun incubus_N : N;
+fun inculcate_V2 : V2;
+fun inculpate_V2 : V2;
+fun incumbency_N : N;
+fun incumbent_A : A;
+fun incumbent_N : N;
+fun incur_V2 : V2;
+fun incurable_A : A;
+fun incurable_N : N;
+fun incurious_A : A;
+fun incursion_N : N;
+fun incurved_A : A;
+fun indebted_A : A;
+fun indebtedness_N : N;
+fun indecency_N : N;
+fun indecent_A : A;
+fun indecipherable_A : A;
+fun indecision_N : N;
+fun indecisive_A : A;
+fun indecorous_A : A;
+fun indecorum_N : N;
+fun indeed_Adv : Adv;
+fun indefatigable_A : A;
+fun indefeasible_A : A;
+fun indefensible_A : A;
+fun indefinable_A : A;
+fun indefinite_A : A;
+fun indelible_A : A;
+fun indelicacy_N : N;
+fun indelicate_A : A;
+fun indemnification_N : N;
+fun indemnify_V2 : V2;
+fun indemnity_N : N;
+fun indent_N : N;
+fun indent_V : V;
+fun indent_V2 : V2;
+fun indentation_N : N;
+fun indenture_N : N;
+fun indenture_V2 : V2;
+fun independence_N : N;
+fun independent_A : A;
+fun independent_N : N;
+fun indescribable_A : A;
+fun indestructibility_N : N;
+fun indestructible_A : A;
+fun indeterminable_A : A;
+fun indeterminacy_N : N;
+fun indeterminate_A : A;
+fun index_N : N;
+fun index_V2 : V2;
+fun indexer_N : N;
+fun india_PN : PN;
+fun india_rubber_N : N;
+fun indiaman_N : N;
+fun indian_A : A;
+fun indian_N : N;
+fun indiana_PN : PN;
+fun indianapolis_PN : PN;
+fun indicate_V2 : V2;
+fun indication_N : N;
+fun indicative_A : A;
+fun indicator_N : N;
+fun indict_V2 : V2;
+fun indictable_A : A;
+fun indictment_N : N;
+fun indies_PN : PN;
+fun indifference_N : N;
+fun indifferent_A : A;
+fun indigence_N : N;
+fun indigenous_A : A;
+fun indigent_A : A;
+fun indigestible_A : A;
+fun indigestion_N : N;
+fun indignant_A : A;
+fun indignation_N : N;
+fun indignity_N : N;
+fun indigo_N : N;
+fun indirect_A : A;
+fun indirectness_N : N;
+fun indiscernible_A : A;
+fun indiscipline_N : N;
+fun indiscreet_A : A;
+fun indiscrete_A : A;
+fun indiscretion_N : N;
+fun indiscriminate_A : A;
+fun indispensability_N : N;
+fun indispensable_A : A;
+fun indisposed_A : A;
+fun indisposition_N : N;
+fun indisputable_A : A;
+fun indissoluble_A : A;
+fun indistinct_A : A;
+fun indistinctness_N : N;
+fun indistinguishable_A : A;
+fun indite_V2 : V2;
+fun individual_A : A;
+fun individual_N : N;
+fun individualism_N : N;
+fun individualist_N : N;
+fun individualistic_A : A;
+fun individuality_N : N;
+fun individualize_V2 : V2;
+fun indivisible_A : A;
+fun indo_european_A : A;
+fun indoctrinate_V2 : V2;
+fun indoctrination_N : N;
+fun indolence_N : N;
+fun indolent_A : A;
+fun indomitable_A : A;
+fun indonesia_PN : PN;
+fun indonesian_A : A;
+fun indonesian_N : N;
+fun indoor_A : A;
+fun indoors_Adv : Adv;
+fun indore_PN : PN;
+fun indorse_V2 : V2;
+fun indrawn_A : A;
+fun indubitable_A : A;
+fun induce_V2 : V2;
+fun inducement_N : N;
+fun induct_V2 : V2;
+fun induction_N : N;
+fun inductive_A : A;
+fun indue_V2 : V2;
+fun indulge_V : V;
+fun indulge_V2 : V2;
+fun indulgence_N : N;
+fun indulgent_A : A;
+fun industrial_A : A;
+fun industrialism_N : N;
+fun industrialist_N : N;
+fun industrialization_N : N;
+fun industrialized_A : A;
+fun industrious_A : A;
+fun industry_N : N;
+fun indwelling_A : A;
+fun inebriate_A : A;
+fun inebriate_N : N;
+fun inebriate_V2 : V2;
+fun inebriation_N : N;
+fun inebriety_N : N;
+fun inedible_A : A;
+fun ineffable_A : A;
+fun ineffective_A : A;
+fun ineffectiveness_N : N;
+fun ineffectual_A : A;
+fun ineffectuality_N : N;
+fun inefficiency_N : N;
+fun inefficient_A : A;
+fun inelastic_A : A;
+fun inelegance_N : N;
+fun inelegant_A : A;
+fun ineligibility_N : N;
+fun ineligible_A : A;
+fun ineluctable_A : A;
+fun inept_A : A;
+fun ineptitude_N : N;
+fun inequality_N : N;
+fun inequitable_A : A;
+fun inequity_N : N;
+fun ineradicable_A : A;
+fun inert_A : A;
+fun inertia_N : N;
+fun inescapable_A : A;
+fun inessential_A : A;
+fun inessential_N : N;
+fun inestimable_A : A;
+fun inevitability_N : N;
+fun inevitable_A : A;
+fun inexact_A : A;
+fun inexactitude_N : N;
+fun inexcusable_A : A;
+fun inexhaustible_A : A;
+fun inexorable_A : A;
+fun inexpediency_N : N;
+fun inexpedient_A : A;
+fun inexpensive_A : A;
+fun inexperience_N : N;
+fun inexperienced_A : A;
+fun inexpert_A : A;
+fun inexpiable_A : A;
+fun inexplicable_A : A;
+fun inexpressible_A : A;
+fun inextinguishable_A : A;
+fun inextricable_A : A;
+fun infallibility_N : N;
+fun infallible_A : A;
+fun infamous_A : A;
+fun infamy_N : N;
+fun infancy_N : N;
+fun infant_N : N;
+fun infanticide_N : N;
+fun infantile_A : A;
+fun infantilism_N : N;
+fun infantry_N : N;
+fun infantryman_N : N;
+fun infatuate_V2 : V2;
+fun infatuation_N : N;
+fun infect_V2 : V2;
+fun infection_N : N;
+fun infectious_A : A;
+fun infer_V2 : V2;
+fun inference_N : N;
+fun inferential_A : A;
+fun inferior_A : A;
+fun inferior_N : N;
+fun inferiority_N : N;
+fun infernal_A : A;
+fun inferno_N : N;
+fun infertile_A : A;
+fun infertility_N : N;
+fun infest_V2 : V2;
+fun infestation_N : N;
+fun infidel_N : N;
+fun infidelity_N : N;
+fun infield_N : N;
+fun infiltrate_V : V;
+fun infiltrate_V2 : V2;
+fun infiltration_N : N;
+fun infinite_A : A;
+fun infinitesimal_A : A;
+fun infinitive_A : A;
+fun infinitive_N : N;
+fun infinitude_N : N;
+fun infinity_N : N;
+fun infirm_A : A;
+fun infirmary_N : N;
+fun infirmity_N : N;
+fun inflame_V : V;
+fun inflame_V2 : V2;
+fun inflammable_A : A;
+fun inflammation_N : N;
+fun inflammatory_A : A;
+fun inflatable_A : A;
+fun inflate_V2 : V2;
+fun inflation_N : N;
+fun inflationary_A : A;
+fun inflect_V2 : V2;
+fun inflection_N : N;
+fun inflectional_A : A;
+fun inflexibility_N : N;
+fun inflexible_A : A;
+fun inflexion_N : N;
+fun inflict_V2 : V2;
+fun infliction_N : N;
+fun inflorescence_N : N;
+fun inflow_N : N;
+fun influence_N : N;
+fun influence_V2 : V2;
+fun influential_A : A;
+fun influenza_N : N;
+fun influx_N : N;
+fun info_N : N;
+fun inform_V : V;
+fun inform_V2 : V2;
+fun informal_A : A;
+fun informality_N : N;
+fun informant_N : N;
+fun information_N : N;
+fun informative_A : A;
+fun informer_N : N;
+fun infra_Adv : Adv;
+fun infra_dig_A : A;
+fun infra_red_A : A;
+fun infraction_N : N;
+fun infrastructure_N : N;
+fun infrequency_N : N;
+fun infrequent_A : A;
+fun infringe_V : V;
+fun infringe_V2 : V2;
+fun infringement_N : N;
+fun infuriate_V2 : V2;
+fun infuse_V : V;
+fun infuse_V2 : V2;
+fun infusion_N : N;
+fun ingatestone_PN : PN;
+fun ingathering_N : N;
+fun ingenious_A : A;
+fun ingenuity_N : N;
+fun ingenuous_A : A;
+fun ingenuousness_N : N;
+fun ingest_V2 : V2;
+fun ingle_nook_N : N;
+fun inglorious_A : A;
+fun ingoing_A : A;
+fun ingot_N : N;
+fun ingraft_V2 : V2;
+fun ingrained_A : A;
+fun ingratiate_V2 : V2;
+fun ingratiatingly_Adv : Adv;
+fun ingratitude_N : N;
+fun ingredient_N : N;
+fun ingress_N : N;
+fun ingrid_PN : PN;
+fun ingrowing_A : A;
+fun ingenue_N : N;
+fun inhabit_V2 : V2;
+fun inhabitable_A : A;
+fun inhabitant_N : N;
+fun inhalation_N : N;
+fun inhale_V : V;
+fun inhale_V2 : V2;
+fun inhaler_N : N;
+fun inharmonious_A : A;
+fun inherent_A : A;
+fun inherit_V : V;
+fun inherit_V2 : V2;
+fun inheritance_N : N;
+fun inheritor_N : N;
+fun inhibit_V2 : V2;
+fun inhibition_N : N;
+fun inhibitor_N : N;
+fun inhibitory_A : A;
+fun inhospitable_A : A;
+fun inhuman_A : A;
+fun inhumane_A : A;
+fun inhumanity_N : N;
+fun inimical_A : A;
+fun inimitable_A : A;
+fun iniquitous_A : A;
+fun iniquity_N : N;
+fun initial_A : A;
+fun initial_N : N;
+fun initial_V2 : V2;
+fun initiate_A : A;
+fun initiate_N : N;
+fun initiate_V2 : V2;
+fun initiation_N : N;
+fun initiative_N : N;
+fun inject_V2 : V2;
+fun injection_N : N;
+fun injudicious_A : A;
+fun injunction_N : N;
+fun injure_V2 : V2;
+fun injured_A : A;
+fun injurious_A : A;
+fun injury_N : N;
+fun injustice_N : N;
+fun ink_N : N;
+fun ink_V2 : V2;
+fun ink_bottle_N : N;
+fun ink_pad_N : N;
+fun ink_pot_N : N;
+fun inkling_N : N;
+fun inkstand_N : N;
+fun inkwell_N : N;
+fun inky_A : A;
+fun inland_A : A;
+fun inland_Adv : Adv;
+fun inlay_N : N;
+fun inlay_V2 : V2;
+fun inlet_N : N;
+fun inmate_N : N;
+fun inmost_A : A;
+fun inn_N : N;
+fun innate_A : A;
+fun inner_A : A;
+fun innermost_A : A;
+fun inning_N : N;
+fun innings_N : N;
+fun innkeeper_N : N;
+fun innocence_N : N;
+fun innocent_A : A;
+fun innocent_N : N;
+fun innocuous_A : A;
+fun innovate_V : V;
+fun innovation_N : N;
+fun innovator_N : N;
+fun innsbruck_PN : PN;
+fun innuendo_N : N;
+fun innumerable_A : A;
+fun inoculate_V2 : V2;
+fun inoculation_N : N;
+fun inoffensive_A : A;
+fun inoperable_A : A;
+fun inoperative_A : A;
+fun inopportune_A : A;
+fun inordinate_A : A;
+fun inorganic_A : A;
+fun inorganically_Adv : Adv;
+fun inpouring_A : A;
+fun inpouring_N : N;
+fun input_N : N;
+fun inquest_N : N;
+fun inquietude_N : N;
+fun inquire_V : V;
+fun inquire_V2 : V2;
+fun inquirer_N : N;
+fun inquiring_A : A;
+fun inquiry_N : N;
+fun inquisition_N : N;
+fun inquisitive_A : A;
+fun inquisitiveness_N : N;
+fun inquisitor_N : N;
+fun inquisitorial_A : A;
+fun inroad_N : N;
+fun inrush_N : N;
+fun ins_N : N;
+fun insane_A : A;
+fun insanitary_A : A;
+fun insanity_N : N;
+fun insatiable_A : A;
+fun insatiate_A : A;
+fun inscribe_V2 : V2;
+fun inscription_N : N;
+fun inscrutable_A : A;
+fun insect_N : N;
+fun insect_powder_N : N;
+fun insecticide_N : N;
+fun insectivorous_A : A;
+fun insecure_A : A;
+fun insecurity_N : N;
+fun inseminate_V2 : V2;
+fun insemination_N : N;
+fun insensate_A : A;
+fun insensibility_N : N;
+fun insensible_A : A;
+fun insensitive_A : A;
+fun insensitivity_N : N;
+fun insentient_A : A;
+fun inseparable_A : A;
+fun insert_N : N;
+fun insert_V2 : V2;
+fun insertion_N : N;
+fun inset_N : N;
+fun inset_V2 : V2;
+fun inshore_A : A;
+fun inshore_Adv : Adv;
+fun inside_A : A;
+fun inside_Adv : Adv;
+fun inside_N : N;
+fun insider_N : N;
+fun insidious_A : A;
+fun insidiousness_N : N;
+fun insight_N : N;
+fun insignificance_N : N;
+fun insignificant_A : A;
+fun insincere_A : A;
+fun insincerity_N : N;
+fun insinuate_V2 : V2;
+fun insinuatingly_Adv : Adv;
+fun insinuation_N : N;
+fun insipid_A : A;
+fun insipidity_N : N;
+fun insipidness_N : N;
+fun insist_V : V;
+fun insist_V2 : V2;
+fun insistence_N : N;
+fun insistent_A : A;
+fun insofar_Adv : Adv;
+fun insole_N : N;
+fun insolence_N : N;
+fun insolent_A : A;
+fun insoluble_A : A;
+fun insolvency_N : N;
+fun insolvent_A : A;
+fun insolvent_N : N;
+fun insomnia_N : N;
+fun insomniac_N : N;
+fun insomuch_Adv : Adv;
+fun insouciance_N : N;
+fun insouciant_A : A;
+fun inspan_V2 : V2;
+fun inspect_V2 : V2;
+fun inspection_N : N;
+fun inspector_N : N;
+fun inspectorate_N : N;
+fun inspiration_N : N;
+fun inspirational_A : A;
+fun inspire_V2 : V2;
+fun inspired_A : A;
+fun inst_PN : PN;
+fun instability_N : N;
+fun install_V2 : V2;
+fun installation_N : N;
+fun instalment_N : N;
+fun instance_N : N;
+fun instance_V2 : V2;
+fun instant_A : A;
+fun instant_N : N;
+fun instantaneous_A : A;
+fun instead_Adv : Adv;
+fun instep_N : N;
+fun instigate_V2 : V2;
+fun instigation_N : N;
+fun instigator_N : N;
+fun instil_V2 : V2;
+fun instillation_N : N;
+fun instinct_A : A;
+fun instinct_N : N;
+fun instinctive_A : A;
+fun institute_N : N;
+fun institute_V2 : V2;
+fun institution_N : N;
+fun institutional_A : A;
+fun institutionalize_V2 : V2;
+fun instruct_V2 : V2;
+fun instruction_N : N;
+fun instructional_A : A;
+fun instructive_A : A;
+fun instructor_N : N;
+fun instructress_N : N;
+fun instrument_N : N;
+fun instrumental_A : A;
+fun instrumentalist_N : N;
+fun instrumentality_N : N;
+fun instrumentation_N : N;
+fun insubordinate_A : A;
+fun insubordination_N : N;
+fun insubstantial_A : A;
+fun insufferable_A : A;
+fun insufficiency_N : N;
+fun insufficient_A : A;
+fun insular_A : A;
+fun insularism_N : N;
+fun insularity_N : N;
+fun insulate_V2 : V2;
+fun insulation_N : N;
+fun insulator_N : N;
+fun insulin_N : N;
+fun insult_N : N;
+fun insult_V2 : V2;
+fun insulting_A : A;
+fun insuperable_A : A;
+fun insupportable_A : A;
+fun insurance_N : N;
+fun insure_V2 : V2;
+fun insurgent_A : A;
+fun insurgent_N : N;
+fun insurmountable_A : A;
+fun insurrection_N : N;
+fun intact_A : A;
+fun intaglio_N : N;
+fun intake_N : N;
+fun intangibility_N : N;
+fun intangible_A : A;
+fun intangibles_N : N;
+fun integer_N : N;
+fun integral_A : A;
+fun integrate_V2 : V2;
+fun integration_N : N;
+fun integrity_N : N;
+fun integument_N : N;
+fun intellect_N : N;
+fun intellectual_A : A;
+fun intellectual_N : N;
+fun intelligence_N : N;
+fun intelligent_A : A;
+fun intelligentsia_N : N;
+fun intelligibility_N : N;
+fun intelligible_A : A;
+fun intemperance_N : N;
+fun intemperate_A : A;
+fun intend_V2 : V2;
+fun intense_A : A;
+fun intensification_N : N;
+fun intensify_V : V;
+fun intensify_V2 : V2;
+fun intensity_N : N;
+fun intensive_A : A;
+fun intent_A : A;
+fun intent_N : N;
+fun intention_N : N;
+fun intentional_A : A;
+fun intentness_N : N;
+fun inter_V2 : V2;
+fun inter_alia_Adv : Adv;
+fun interact_V : V;
+fun interaction_N : N;
+fun interactive_A : A;
+fun interbreed_V : V;
+fun interbreed_V2 : V2;
+fun intercalary_A : A;
+fun intercede_V : V;
+fun intercept_V2 : V2;
+fun interception_N : N;
+fun interceptor_N : N;
+fun intercession_N : N;
+fun interchange_N : N;
+fun interchange_V2 : V2;
+fun interchangeable_A : A;
+fun intercollegiate_A : A;
+fun intercom_N : N;
+fun intercommunicate_V : V;
+fun intercommunication_N : N;
+fun intercommunion_N : N;
+fun interconnect_V : V;
+fun interconnect_V2 : V2;
+fun interconnectedness_N : N;
+fun interconnection_N : N;
+fun intercontinental_A : A;
+fun intercourse_N : N;
+fun interdenominational_A : A;
+fun interdepartmental_A : A;
+fun interdependence_N : N;
+fun interdependent_A : A;
+fun interdict_N : N;
+fun interdict_V2 : V2;
+fun interdiction_N : N;
+fun interdisciplinary_A : A;
+fun interest_N : N;
+fun interest_V2 : V2;
+fun interested_A : A;
+fun interesting_A : A;
+fun interface_N : N;
+fun interfere_V : V;
+fun interference_N : N;
+fun interim_N : N;
+fun interior_A : A;
+fun interior_N : N;
+fun interject_V2 : V2;
+fun interjection_N : N;
+fun interlace_V : V;
+fun interlace_V2 : V2;
+fun interlard_V2 : V2;
+fun interleave_V2 : V2;
+fun interlink_V : V;
+fun interlink_V2 : V2;
+fun interlock_V : V;
+fun interlock_V2 : V2;
+fun interlocutor_N : N;
+fun interloper_N : N;
+fun interlude_N : N;
+fun intermarriage_N : N;
+fun intermarry_V : V;
+fun intermediary_N : N;
+fun intermediate_A : A;
+fun intermediate_N : N;
+fun interment_N : N;
+fun intermezzo_N : N;
+fun interminable_A : A;
+fun intermingle_V : V;
+fun intermingle_V2 : V2;
+fun intermission_N : N;
+fun intermittent_A : A;
+fun intermix_V : V;
+fun intermix_V2 : V2;
+fun intermixture_N : N;
+fun intern_N : N;
+fun intern_V2 : V2;
+fun internal_A : A;
+fun internalize_V2 : V2;
+fun international_A : A;
+fun international_N : N;
+fun internationale_N : N;
+fun internationalism_N : N;
+fun internationalist_N : N;
+fun internationalization_N : N;
+fun internationalize_V2 : V2;
+fun interne_N : N;
+fun internecine_A : A;
+fun internee_N : N;
+fun internment_N : N;
+fun interpellate_V2 : V2;
+fun interpellation_N : N;
+fun interphone_N : N;
+fun interplanetary_A : A;
+fun interplay_N : N;
+fun interpol_PN : PN;
+fun interpolate_V2 : V2;
+fun interpolation_N : N;
+fun interpose_V : V;
+fun interpose_V2 : V2;
+fun interposition_N : N;
+fun interpret_V : V;
+fun interpret_V2 : V2;
+fun interpretation_N : N;
+fun interpretative_A : A;
+fun interpreter_N : N;
+fun interracial_A : A;
+fun interregnum_N : N;
+fun interrelate_V : V;
+fun interrelate_V2 : V2;
+fun interrelation_N : N;
+fun interrelationship_N : N;
+fun interrogate_V2 : V2;
+fun interrogation_N : N;
+fun interrogative_A : A;
+fun interrogative_N : N;
+fun interrogator_N : N;
+fun interrogatory_A : A;
+fun interrupt_V : V;
+fun interrupt_V2 : V2;
+fun interrupter_N : N;
+fun interruption_N : N;
+fun intersect_V : V;
+fun intersect_V2 : V2;
+fun intersection_N : N;
+fun intersperse_V2 : V2;
+fun interstate_A : A;
+fun interstellar_A : A;
+fun interstice_N : N;
+fun intertribal_A : A;
+fun intertwine_V : V;
+fun intertwine_V2 : V2;
+fun interval_N : N;
+fun intervene_V : V;
+fun intervention_N : N;
+fun interview_N : N;
+fun interview_V2 : V2;
+fun interviewer_N : N;
+fun interweave_V2 : V2;
+fun intestate_A : A;
+fun intestinal_A : A;
+fun intestine_N : N;
+fun intimacy_N : N;
+fun intimate_A : A;
+fun intimate_N : N;
+fun intimate_V2 : V2;
+fun intimation_N : N;
+fun intimidate_V2 : V2;
+fun intimidation_N : N;
+fun intolerable_A : A;
+fun intolerance_N : N;
+fun intolerant_A : A;
+fun intonation_N : N;
+fun intone_V : V;
+fun intone_V2 : V2;
+fun intoxicant_A : A;
+fun intoxicant_N : N;
+fun intoxicate_V2 : V2;
+fun intoxication_N : N;
+fun intra_uterine_A : A;
+fun intractability_N : N;
+fun intractable_A : A;
+fun intramural_A : A;
+fun intransigence_N : N;
+fun intransigent_A : A;
+fun intransitive_A : A;
+fun intravenous_A : A;
+fun intrench_V2 : V2;
+fun intrepid_A : A;
+fun intrepidity_N : N;
+fun intricacy_N : N;
+fun intricate_A : A;
+fun intrigue_N : N;
+fun intrigue_V : V;
+fun intrigue_V2 : V2;
+fun intrinsic_A : A;
+fun intrinsically_Adv : Adv;
+fun intro_N : N;
+fun introduce_V2 : V2;
+fun introduction_N : N;
+fun introductory_A : A;
+fun introspect_V : V;
+fun introspection_N : N;
+fun introspective_A : A;
+fun introversion_N : N;
+fun introvert_N : N;
+fun introvert_V2 : V2;
+fun intrude_V : V;
+fun intrude_V2 : V2;
+fun intruder_N : N;
+fun intrusion_N : N;
+fun intrusive_A : A;
+fun intrust_V2 : V2;
+fun intuit_V : V;
+fun intuit_V2 : V2;
+fun intuition_N : N;
+fun intuitive_A : A;
+fun intumescence_N : N;
+fun inundate_V2 : V2;
+fun inundation_N : N;
+fun inure_V2 : V2;
+fun invade_V2 : V2;
+fun invader_N : N;
+fun invalid_A : A;
+fun invalid_N : N;
+fun invalid_V2 : V2;
+fun invalidate_V2 : V2;
+fun invalidation_N : N;
+fun invalidism_N : N;
+fun invalidity_N : N;
+fun invaluable_A : A;
+fun invariable_A : A;
+fun invasion_N : N;
+fun invasive_A : A;
+fun invective_N : N;
+fun inveigh_V : V;
+fun inveigle_V2 : V2;
+fun invent_V2 : V2;
+fun invention_N : N;
+fun inventive_A : A;
+fun inventor_N : N;
+fun inventory_N : N;
+fun inverkeithing_PN : PN;
+fun inverness_PN : PN;
+fun inverse_A : A;
+fun inverse_N : N;
+fun inversion_N : N;
+fun invert_V2 : V2;
+fun invertebrate_A : A;
+fun invertebrate_N : N;
+fun inverurie_PN : PN;
+fun invest_V : V;
+fun invest_V2 : V2;
+fun investigate_V2 : V2;
+fun investigation_N : N;
+fun investigator_N : N;
+fun investiture_N : N;
+fun investment_N : N;
+fun investor_N : N;
+fun inveterate_A : A;
+fun invidious_A : A;
+fun invigilate_V : V;
+fun invigilation_N : N;
+fun invigilator_N : N;
+fun invigorate_V2 : V2;
+fun invincibility_N : N;
+fun invincible_A : A;
+fun inviolable_A : A;
+fun inviolate_A : A;
+fun invisibility_N : N;
+fun invisible_A : A;
+fun invitation_N : N;
+fun invite_N : N;
+fun invite_V2 : V2;
+fun inviting_A : A;
+fun invocation_N : N;
+fun invoice_N : N;
+fun invoice_V2 : V2;
+fun invoke_V2 : V2;
+fun involuntary_A : A;
+fun involute_A : A;
+fun involution_N : N;
+fun involve_V2 : V2;
+fun involved_A : A;
+fun involvement_N : N;
+fun invulnerable_A : A;
+fun inward_A : A;
+fun inward_Adv : Adv;
+fun inwardness_N : N;
+fun inwards_Adv : Adv;
+fun inwrought_A : A;
+fun iodine_N : N;
+fun ion_N : N;
+fun ionic_A : A;
+fun ionization_N : N;
+fun ionize_V : V;
+fun ionize_V2 : V2;
+fun ionosphere_N : N;
+fun iota_N : N;
+fun iou_N : N;
+fun ious_N : N;
+fun iowa_PN : PN;
+fun ipse_dixit_N : N;
+fun ipso_facto_Adv : Adv;
+fun ipswich_PN : PN;
+fun iq_N : N;
+fun ira_N : N;
+fun iran_PN : PN;
+fun iranian_A : A;
+fun iranian_N : N;
+fun iraq_PN : PN;
+fun iraqi_A : A;
+fun iraqi_N : N;
+fun irascibility_N : N;
+fun irascible_A : A;
+fun irate_A : A;
+fun ire_N : N;
+fun ireful_A : A;
+fun ireland_PN : PN;
+fun irene_PN : PN;
+fun iridescence_N : N;
+fun iridescent_A : A;
+fun iridium_N : N;
+fun iris_N : N;
+fun iris_PN : PN;
+fun irish_A : A;
+fun irish_N : N;
+fun irishman_N : N;
+fun irishwoman_N : N;
+fun irk_V2 : V2;
+fun irksome_A : A;
+fun iron_N : N;
+fun iron_V : V;
+fun iron_V2 : V2;
+fun iron_foundry_N : N;
+fun iron_grey_A : A;
+fun iron_grey_N : N;
+fun ironclad_A : A;
+fun ironic_A : A;
+fun ironical_A : A;
+fun ironing_board_N : N;
+fun ironmonger_N : N;
+fun ironmongery_N : N;
+fun ironmould_N : N;
+fun ironside_N : N;
+fun ironware_N : N;
+fun ironwork_N : N;
+fun ironworks_N : N;
+fun irony_N : N;
+fun irradiate_V2 : V2;
+fun irrational_A : A;
+fun irreconcilable_A : A;
+fun irrecoverable_A : A;
+fun irredeemable_A : A;
+fun irredentist_N : N;
+fun irreducible_A : A;
+fun irrefutable_A : A;
+fun irregular_A : A;
+fun irregular_N : N;
+fun irregularity_N : N;
+fun irrelevance_N : N;
+fun irrelevancy_N : N;
+fun irrelevant_A : A;
+fun irreligious_A : A;
+fun irremediable_A : A;
+fun irremovable_A : A;
+fun irreparable_A : A;
+fun irreplaceable_A : A;
+fun irrepressible_A : A;
+fun irreproachable_A : A;
+fun irresistible_A : A;
+fun irresolute_A : A;
+fun irresolution_N : N;
+fun irrespective_A : A;
+fun irresponsibility_N : N;
+fun irresponsible_A : A;
+fun irretrievable_A : A;
+fun irreverence_N : N;
+fun irreverent_A : A;
+fun irreversibility_N : N;
+fun irreversible_A : A;
+fun irrevocable_A : A;
+fun irridentism_N : N;
+fun irrigate_V2 : V2;
+fun irrigation_N : N;
+fun irritability_N : N;
+fun irritable_A : A;
+fun irritant_A : A;
+fun irritant_N : N;
+fun irritate_V2 : V2;
+fun irritation_N : N;
+fun irruption_N : N;
+fun irthlingborough_PN : PN;
+fun irvine_PN : PN;
+fun isaac_PN : PN;
+fun isabel_PN : PN;
+fun isabella_PN : PN;
+fun isinglass_N : N;
+fun islam_N : N;
+fun islamic_A : A;
+fun island_N : N;
+fun islander_N : N;
+fun isle_N : N;
+fun islet_N : N;
+fun islington_PN : PN;
+fun ism_N : N;
+fun isobar_N : N;
+fun isobel_PN : PN;
+fun isolate_V2 : V2;
+fun isolation_N : N;
+fun isolationism_N : N;
+fun isolationist_N : N;
+fun isosceles_A : A;
+fun isotherm_N : N;
+fun isotope_N : N;
+fun israel_PN : PN;
+fun israeli_A : A;
+fun israeli_N : N;
+fun issue_N : N;
+fun issue_V : V;
+fun issue_V2 : V2;
+fun istanbul_PN : PN;
+fun isthmus_N : N;
+fun italian_A : A;
+fun italian_N : N;
+fun italic_A : A;
+fun italicize_V2 : V2;
+fun italy_PN : PN;
+fun itch_N : N;
+fun itch_V : V;
+fun itchy_A : A;
+fun item_Adv : Adv;
+fun item_N : N;
+fun itemize_V2 : V2;
+fun iterate_V2 : V2;
+fun iteration_N : N;
+fun itinerant_A : A;
+fun itinerary_N : N;
+fun itv_N : N;
+fun iud_N : N;
+fun ivan_PN : PN;
+fun iver_PN : PN;
+fun ivied_A : A;
+fun ivor_PN : PN;
+fun ivory_N : N;
+fun ivy_N : N;
+fun ivy_PN : PN;
+fun izmir_PN : PN;
+fun jab_N : N;
+fun jab_V : V;
+fun jab_V2 : V2;
+fun jabalpur_PN : PN;
+fun jabber_N : N;
+fun jabber_V : V;
+fun jabber_V2 : V2;
+fun jabberer_N : N;
+fun jabot_N : N;
+fun jack_N : N;
+fun jack_PN : PN;
+fun jack_V2 : V2;
+fun jack_in_the_box_N : N;
+fun jack_knife_N : N;
+fun jack_knife_V : V;
+fun jack_o'_lantern_N : N;
+fun jack_plane_N : N;
+fun jackal_N : N;
+fun jackanapes_N : N;
+fun jackass_N : N;
+fun jackboot_N : N;
+fun jackdaw_N : N;
+fun jacket_N : N;
+fun jackie_PN : PN;
+fun jackpot_N : N;
+fun jacksonville_PN : PN;
+fun jacob_PN : PN;
+fun jacobean_A : A;
+fun jacobin_A : A;
+fun jacobin_N : N;
+fun jacobinism_N : N;
+fun jacobite_N : N;
+fun jacqueline_PN : PN;
+fun jade_N : N;
+fun jaded_A : A;
+fun jag_N : N;
+fun jag_V2 : V2;
+fun jagged_A : A;
+fun jaggy_A : A;
+fun jaguar_N : N;
+fun jail_N : N;
+fun jail_V2 : V2;
+fun jailer_N : N;
+fun jailor_N : N;
+fun jaipur_PN : PN;
+fun jakarta_PN : PN;
+fun jake_PN : PN;
+fun jakes_N : N;
+fun jalopy_N : N;
+fun jam_N : N;
+fun jam_V : V;
+fun jam_V2 : V2;
+fun jamaica_PN : PN;
+fun jamaican_A : A;
+fun jamaican_N : N;
+fun jamb_N : N;
+fun jamboree_N : N;
+fun james_PN : PN;
+fun jamjar_N : N;
+fun jampack_V2 : V2;
+fun jampot_N : N;
+fun jan_PN : PN;
+fun jane_PN : PN;
+fun janet_PN : PN;
+fun jangle_N : N;
+fun jangle_V : V;
+fun jangle_V2 : V2;
+fun janice_PN : PN;
+fun janie_PN : PN;
+fun janitor_N : N;
+fun january_N : N;
+fun january_PN : PN;
+fun janus_PN : PN;
+fun japan_PN : PN;
+fun japan_V2 : V2;
+fun japanese_A : A;
+fun japanese_N : N;
+fun jape_N : N;
+fun japonica_N : N;
+fun jar_N : N;
+fun jar_V : V;
+fun jar_V2 : V2;
+fun jarful_N : N;
+fun jargon_N : N;
+fun jarring_A : A;
+fun jarrow_PN : PN;
+fun jasmine_N : N;
+fun jason_PN : PN;
+fun jasper_N : N;
+fun jaundice_N : N;
+fun jaundice_V2 : V2;
+fun jaunt_N : N;
+fun jaunt_V : V;
+fun jauntily_Adv : Adv;
+fun jauntiness_N : N;
+fun jaunting_car_N : N;
+fun jaunty_A : A;
+fun java_PN : PN;
+fun javanese_A : A;
+fun javanese_N : N;
+fun javelin_N : N;
+fun jaw_N : N;
+fun jaw_V : V;
+fun jawbone_N : N;
+fun jawbreaker_N : N;
+fun jay_N : N;
+fun jaywalk_V : V;
+fun jaywalker_N : N;
+fun jazz_N : N;
+fun jazz_V2 : V2;
+fun jazzy_A : A;
+fun jc_PN : PN;
+fun jealous_A : A;
+fun jealousy_N : N;
+fun jean_N : N;
+fun jean_PN : PN;
+fun jeanie_PN : PN;
+fun jedburgh_PN : PN;
+fun jeep_N : N;
+fun jeer_N : N;
+fun jeer_V : V;
+fun jeer_V2 : V2;
+fun jeeringly_Adv : Adv;
+fun jeff_PN : PN;
+fun jeffrey_PN : PN;
+fun jehovah_PN : PN;
+fun jejune_A : A;
+fun jejuneness_N : N;
+fun jekyll_and_hyde_PN : PN;
+fun jell_V : V;
+fun jell_V2 : V2;
+fun jellaba_N : N;
+fun jellied_A : A;
+fun jelly_N : N;
+fun jelly_V : V;
+fun jelly_V2 : V2;
+fun jellyfish_N : N;
+fun jemmy_N : N;
+fun jennifer_PN : PN;
+fun jenny_N : N;
+fun jenny_PN : PN;
+fun jeopardize_V2 : V2;
+fun jeopardy_N : N;
+fun jerboa_N : N;
+fun jeremiad_N : N;
+fun jeremy_PN : PN;
+fun jerk_N : N;
+fun jerk_V : V;
+fun jerk_V2 : V2;
+fun jerkily_Adv : Adv;
+fun jerkin_N : N;
+fun jerkiness_N : N;
+fun jerky_A : A;
+fun jerome_PN : PN;
+fun jerry_N : N;
+fun jerry_PN : PN;
+fun jerry_builder_N : N;
+fun jerry_building_N : N;
+fun jerry_built_A : A;
+fun jersey_N : N;
+fun jersey_PN : PN;
+fun jess_PN : PN;
+fun jessica_PN : PN;
+fun jessie_PN : PN;
+fun jest_N : N;
+fun jest_V : V;
+fun jester_N : N;
+fun jesting_A : A;
+fun jesuit_N : N;
+fun jesuitical_A : A;
+fun jesus_PN : PN;
+fun jet_N : N;
+fun jet_V : V;
+fun jet_V2 : V2;
+fun jet_black_A : A;
+fun jet_propelled_A : A;
+fun jetsam_N : N;
+fun jettison_V2 : V2;
+fun jetty_N : N;
+fun jew_N : N;
+fun jewel_N : N;
+fun jewel_V2 : V2;
+fun jeweller_N : N;
+fun jewellery_N : N;
+fun jewelry_N : N;
+fun jewess_N : N;
+fun jewish_A : A;
+fun jezebel_N : N;
+fun jib_N : N;
+fun jib_V : V;
+fun jib_boom_N : N;
+fun jibe_N : N;
+fun jibe_V : V;
+fun jiffy_N : N;
+fun jig_N : N;
+fun jig_V : V;
+fun jig_V2 : V2;
+fun jigger_N : N;
+fun jiggered_A : A;
+fun jiggery_pokery_N : N;
+fun jiggle_N : N;
+fun jiggle_V : V;
+fun jiggle_V2 : V2;
+fun jigsaw_N : N;
+fun jihad_N : N;
+fun jill_PN : PN;
+fun jilt_N : N;
+fun jilt_V2 : V2;
+fun jim_PN : PN;
+fun jim_crow_N : N;
+fun jimmy_N : N;
+fun jimmy_PN : PN;
+fun jingle_N : N;
+fun jingle_V : V;
+fun jingle_V2 : V2;
+fun jingo_N : N;
+fun jingoism_N : N;
+fun jingoist_N : N;
+fun jingoistic_A : A;
+fun jinks_N : N;
+fun jinn_N : N;
+fun jinx_N : N;
+fun jitney_N : N;
+fun jitterbug_N : N;
+fun jittery_A : A;
+fun jive_N : N;
+fun jive_V : V;
+fun jnr_PN : PN;
+fun jo_PN : PN;
+fun joan_PN : PN;
+fun joanie_PN : PN;
+fun joann_PN : PN;
+fun joanna_PN : PN;
+fun joanne_PN : PN;
+fun job_N : N;
+fun job_PN : PN;
+fun job_V : V;
+fun job_V2 : V2;
+fun jobber_N : N;
+fun jobbery_N : N;
+fun jocelyn_PN : PN;
+fun jockey_N : N;
+fun jockey_V : V;
+fun jockey_V2 : V2;
+fun jocose_A : A;
+fun jocoseness_N : N;
+fun jocosity_N : N;
+fun jocular_A : A;
+fun jocularity_N : N;
+fun jocund_A : A;
+fun jocundity_N : N;
+fun joe_PN : PN;
+fun joey_PN : PN;
+fun jog_N : N;
+fun jog_V : V;
+fun jog_V2 : V2;
+fun jog_trot_N : N;
+fun jogger_N : N;
+fun jogging_N : N;
+fun joggle_N : N;
+fun joggle_V : V;
+fun joggle_V2 : V2;
+fun johannesburg_PN : PN;
+fun john_PN : PN;
+fun john_bull_N : N;
+fun johnny_PN : PN;
+fun johnstone_PN : PN;
+fun joie_de_vivre_N : N;
+fun join_N : N;
+fun join_V : V;
+fun join_V2 : V2;
+fun joiner_N : N;
+fun joinery_N : N;
+fun joint_A : A;
+fun joint_N : N;
+fun joint_V2 : V2;
+fun jointure_N : N;
+fun joist_N : N;
+fun joke_N : N;
+fun joke_V : V;
+fun joker_N : N;
+fun jokingly_Adv : Adv;
+fun jollification_N : N;
+fun jollity_N : N;
+fun jolly_A : A;
+fun jolly_Adv : Adv;
+fun jolly_V2 : V2;
+fun jollyboat_N : N;
+fun jolt_N : N;
+fun jolt_V : V;
+fun jolt_V2 : V2;
+fun jolty_A : A;
+fun jonah_PN : PN;
+fun jonathan_PN : PN;
+fun jonquil_N : N;
+fun jordan_PN : PN;
+fun jordanian_A : A;
+fun jordanian_N : N;
+fun joseph_PN : PN;
+fun josephine_PN : PN;
+fun josh_PN : PN;
+fun joshua_PN : PN;
+fun joss_N : N;
+fun joss_house_N : N;
+fun joss_stick_N : N;
+fun jostle_V : V;
+fun jostle_V2 : V2;
+fun jot_N : N;
+fun jot_V2 : V2;
+fun jotter_N : N;
+fun joule_N : N;
+fun journal_N : N;
+fun journalese_N : N;
+fun journalism_N : N;
+fun journalist_N : N;
+fun journalistic_A : A;
+fun journalistically_Adv : Adv;
+fun journey_N : N;
+fun journey_V : V;
+fun journeyman_N : N;
+fun joust_N : N;
+fun joust_V : V;
+fun jove_PN : PN;
+fun jovial_A : A;
+fun joviality_N : N;
+fun jowl_N : N;
+fun jowly_A : A;
+fun joy_N : N;
+fun joy_PN : PN;
+fun joy_V : V;
+fun joy_ride_N : N;
+fun joy_stick_N : N;
+fun joyce_PN : PN;
+fun joyful_A : A;
+fun joyfulness_N : N;
+fun joyless_A : A;
+fun joylessness_N : N;
+fun joyous_A : A;
+fun joyousness_N : N;
+fun jp_N : N;
+fun ju_jitsu_N : N;
+fun jubilant_A : A;
+fun jubilation_N : N;
+fun jubilee_N : N;
+fun judaic_A : A;
+fun judaism_N : N;
+fun judas_N : N;
+fun judas_PN : PN;
+fun judder_V : V;
+fun judge_N : N;
+fun judge_V : V;
+fun judge_V2 : V2;
+fun judgement_N : N;
+fun judicature_N : N;
+fun judicial_A : A;
+fun judiciary_N : N;
+fun judicious_A : A;
+fun judiciousness_N : N;
+fun judith_PN : PN;
+fun judo_N : N;
+fun judy_PN : PN;
+fun jug_N : N;
+fun jug_V2 : V2;
+fun jugful_N : N;
+fun juggernaut_N : N;
+fun juggle_V : V;
+fun juggle_V2 : V2;
+fun juggler_N : N;
+fun jugular_A : A;
+fun juice_N : N;
+fun juiciness_N : N;
+fun juicy_A : A;
+fun juju_N : N;
+fun jujube_N : N;
+fun jukebox_N : N;
+fun jul_PN : PN;
+fun julep_N : N;
+fun julia_PN : PN;
+fun julian_A : A;
+fun julian_PN : PN;
+fun julie_PN : PN;
+fun juliet_PN : PN;
+fun july_N : N;
+fun jumble_N : N;
+fun jumble_V : V;
+fun jumble_V2 : V2;
+fun jumble_sale_N : N;
+fun jumbo_A : A;
+fun jump_N : N;
+fun jump_V : V;
+fun jump_V2 : V2;
+fun jumped_up_A : A;
+fun jumper_N : N;
+fun jumpiness_N : N;
+fun jumpy_A : A;
+fun jun_PN : PN;
+fun junction_N : N;
+fun juncture_N : N;
+fun june_N : N;
+fun june_PN : PN;
+fun jungle_N : N;
+fun jungly_A : A;
+fun junior_A : A;
+fun junior_N : N;
+fun juniper_N : N;
+fun junk_N : N;
+fun junk_shop_N : N;
+fun junket_N : N;
+fun junket_V : V;
+fun junketing_N : N;
+fun junkie_N : N;
+fun junky_N : N;
+fun junoesque_A : A;
+fun junta_N : N;
+fun jupiter_PN : PN;
+fun juridical_A : A;
+fun jurisdiction_N : N;
+fun jurisprudence_N : N;
+fun jurist_N : N;
+fun juror_N : N;
+fun jury_N : N;
+fun jury_box_N : N;
+fun jury_mast_N : N;
+fun juryman_N : N;
+fun just_A : A;
+fun just_Adv : Adv;
+fun justice_N : N;
+fun justiciary_N : N;
+fun justifiable_A : A;
+fun justification_N : N;
+fun justify_V2 : V2;
+fun justin_PN : PN;
+fun justness_N : N;
+fun jut_V : V;
+fun jute_N : N;
+fun juvenile_A : A;
+fun juvenile_N : N;
+fun juxtapose_V2 : V2;
+fun juxtaposition_N : N;
+fun kaffir_N : N;
+fun kail_N : N;
+fun kaiser_N : N;
+fun kakemono_N : N;
+fun kale_N : N;
+fun kaleidoscope_N : N;
+fun kaleidoscopic_A : A;
+fun kalgan_PN : PN;
+fun kampong_N : N;
+fun kampuchea_PN : PN;
+fun kampuchean_A : A;
+fun kampuchean_N : N;
+fun kangaroo_N : N;
+fun kanpur_PN : PN;
+fun kansas_PN : PN;
+fun kansas_city_PN : PN;
+fun kaohsiung_PN : PN;
+fun kaolin_N : N;
+fun kapok_N : N;
+fun kaput_A : A;
+fun karachi_PN : PN;
+fun karaganda_PN : PN;
+fun karat_N : N;
+fun karate_N : N;
+fun karen_PN : PN;
+fun karlsruhe_PN : PN;
+fun karma_N : N;
+fun kashmir_PN : PN;
+fun kashmiri_A : A;
+fun kashmiri_N : N;
+fun kassel_PN : PN;
+fun kate_PN : PN;
+fun kath_PN : PN;
+fun katherine_PN : PN;
+fun kathy_PN : PN;
+fun katie_PN : PN;
+fun katowice_PN : PN;
+fun kava_N : N;
+fun kay_PN : PN;
+fun kayak_N : N;
+fun kazan_PN : PN;
+fun kebab_N : N;
+fun kedgeree_N : N;
+fun keel_N : N;
+fun keel_V : V;
+fun keel_V2 : V2;
+fun keen_A : A;
+fun keen_N : N;
+fun keen_V : V;
+fun keen_V2 : V2;
+fun keenness_N : N;
+fun keep_N : N;
+fun keep_V : V;
+fun keep_V2 : V2;
+fun keeper_N : N;
+fun keeping_N : N;
+fun keepsake_N : N;
+fun keg_N : N;
+fun keighley_PN : PN;
+fun keith_PN : PN;
+fun kelp_N : N;
+fun kelso_PN : PN;
+fun kelt_N : N;
+fun kelty_PN : PN;
+fun kemsing_PN : PN;
+fun ken_N : N;
+fun ken_PN : PN;
+fun ken_V2 : V2;
+fun kendal_PN : PN;
+fun kenilworth_PN : PN;
+fun kennel_N : N;
+fun kennel_V : V;
+fun kennel_V2 : V2;
+fun kenneth_PN : PN;
+fun kenny_PN : PN;
+fun kensington_PN : PN;
+fun kent_PN : PN;
+fun kentucky_PN : PN;
+fun kenya_PN : PN;
+fun kenyan_A : A;
+fun kenyan_N : N;
+fun kepi_N : N;
+fun kerb_N : N;
+fun kerbstone_N : N;
+fun kerchief_N : N;
+fun kernel_N : N;
+fun kerosene_N : N;
+fun kerry_PN : PN;
+fun kestrel_N : N;
+fun ketch_N : N;
+fun ketchup_N : N;
+fun kettering_PN : PN;
+fun kettle_N : N;
+fun kettledrum_N : N;
+fun kevin_PN : PN;
+fun key_N : N;
+fun key_V2 : V2;
+fun keyboard_N : N;
+fun keyhole_N : N;
+fun keyless_A : A;
+fun keynote_N : N;
+fun keynsham_PN : PN;
+fun keyring_N : N;
+fun keystone_N : N;
+fun keyword_N : N;
+fun keyworth_PN : PN;
+fun kg_N : N;
+fun kgb_N : N;
+fun khaki_A : A;
+fun khaki_N : N;
+fun khalka_N : N;
+fun khan_N : N;
+fun kharkov_PN : PN;
+fun khartoum_PN : PN;
+fun khmer_N : N;
+fun kibbutz_N : N;
+fun kibbutznik_N : N;
+fun kick_N : N;
+fun kick_V : V;
+fun kick_V2 : V2;
+fun kick_start_N : N;
+fun kick_starter_N : N;
+fun kickback_N : N;
+fun kickoff_N : N;
+fun kid_N : N;
+fun kid_V : V;
+fun kid_V2 : V2;
+fun kidderminster_PN : PN;
+fun kiddy_N : N;
+fun kidlington_PN : PN;
+fun kidnap_V2 : V2;
+fun kidnapper_N : N;
+fun kidney_N : N;
+fun kidney_bean_N : N;
+fun kidsgrove_PN : PN;
+fun kiev_PN : PN;
+fun kilbirnie_PN : PN;
+fun kildare_PN : PN;
+fun kilkenny_PN : PN;
+fun kill_N : N;
+fun kill_V : V;
+fun kill_V2 : V2;
+fun killarney_PN : PN;
+fun killer_N : N;
+fun killing_A : A;
+fun killing_N : N;
+fun killjoy_N : N;
+fun kilmarnock_PN : PN;
+fun kiln_N : N;
+fun kilo_N : N;
+fun kilocycle_N : N;
+fun kilogram_N : N;
+fun kilolitre_N : N;
+fun kilometre_N : N;
+fun kilowatt_N : N;
+fun kilsyth_PN : PN;
+fun kilt_N : N;
+fun kilwinning_PN : PN;
+fun kimberley_PN : PN;
+fun kimono_N : N;
+fun kind_A : A;
+fun kind_N : N;
+fun kind_hearted_A : A;
+fun kinda_Adv : Adv;
+fun kindergarten_N : N;
+fun kindle_V : V;
+fun kindle_V2 : V2;
+fun kindling_N : N;
+fun kindly_A : A;
+fun kindness_N : N;
+fun kindred_A : A;
+fun kindred_N : N;
+fun kinetic_A : A;
+fun kinetics_N : N;
+fun king's_lynn_PN : PN;
+fun king_N : N;
+fun king_size_A : A;
+fun king_sized_A : A;
+fun kingcup_N : N;
+fun kingdom_N : N;
+fun kingfisher_N : N;
+fun kinglike_A : A;
+fun kingly_A : A;
+fun kingpin_N : N;
+fun kingsbury_PN : PN;
+fun kingship_N : N;
+fun kingsteignton_PN : PN;
+fun kingston_PN : PN;
+fun kingston_upon_hull_PN : PN;
+fun kingston_upon_thames_PN : PN;
+fun kink_N : N;
+fun kink_V : V;
+fun kink_V2 : V2;
+fun kinky_A : A;
+fun kinshasa_PN : PN;
+fun kinship_N : N;
+fun kinsman_N : N;
+fun kinswoman_N : N;
+fun kiosk_N : N;
+fun kip_N : N;
+fun kip_V : V;
+fun kippax_PN : PN;
+fun kipper_N : N;
+fun kirin_PN : PN;
+fun kirk_N : N;
+fun kirkby_PN : PN;
+fun kirkby_in_ashfield_PN : PN;
+fun kirkcaldy_PN : PN;
+fun kirkham_PN : PN;
+fun kirkintilloch_PN : PN;
+fun kirkwall_PN : PN;
+fun kirsch_N : N;
+fun kirtle_N : N;
+fun kismet_N : N;
+fun kiss_N : N;
+fun kiss_V : V;
+fun kiss_V2 : V2;
+fun kisser_N : N;
+fun kit_N : N;
+fun kit_V2 : V2;
+fun kitakyushu_PN : PN;
+fun kitbag_N : N;
+fun kitchen_N : N;
+fun kitchenette_N : N;
+fun kite_N : N;
+fun kite_balloon_N : N;
+fun kitsch_A : A;
+fun kitten_N : N;
+fun kittenish_A : A;
+fun kitty_N : N;
+fun kitty_PN : PN;
+fun kiwi_N : N;
+fun klaxon_N : N;
+fun kleenex_N : N;
+fun kleptomania_N : N;
+fun kleptomaniac_N : N;
+fun km_N : N;
+fun knack_N : N;
+fun knacker_N : N;
+fun knap_V2 : V2;
+fun knapsack_N : N;
+fun knaresborough_PN : PN;
+fun knave_N : N;
+fun knavery_N : N;
+fun knavish_A : A;
+fun knead_V2 : V2;
+fun knee_N : N;
+fun knee_deep_A : A;
+fun knee_deep_Adv : Adv;
+fun knee_high_A : A;
+fun knee_high_Adv : Adv;
+fun kneecap_N : N;
+fun kneel_V : V;
+fun knell_N : N;
+fun knesset_N : N;
+fun knick_knack_N : N;
+fun knife_N : N;
+fun knife_V2 : V2;
+fun knife_edge_N : N;
+fun knight_N : N;
+fun knight_V2 : V2;
+fun knight_errant_N : N;
+fun knighthood_N : N;
+fun knightly_A : A;
+fun knit_V : V;
+fun knit_V2 : V2;
+fun knitter_N : N;
+fun knitting_N : N;
+fun knitting_machine_N : N;
+fun knitting_needle_N : N;
+fun knitwear_N : N;
+fun knob_N : N;
+fun knobble_N : N;
+fun knobbly_A : A;
+fun knobkerrie_N : N;
+fun knock_N : N;
+fun knock_V : V;
+fun knock_V2 : V2;
+fun knock_kneed_A : A;
+fun knock_on_N : N;
+fun knockabout_A : A;
+fun knockdown_A : A;
+fun knocker_N : N;
+fun knockout_A : A;
+fun knockout_N : N;
+fun knoll_N : N;
+fun knot_N : N;
+fun knot_V : V;
+fun knot_V2 : V2;
+fun knothole_N : N;
+fun knottingley_PN : PN;
+fun knotty_A : A;
+fun knout_N : N;
+fun know_N : N;
+fun know_V : V;
+fun know_V2 : V2;
+fun know_all_N : N;
+fun know_how_N : N;
+fun knowing_A : A;
+fun knowledge_N : N;
+fun knowledgeable_A : A;
+fun knuckle_N : N;
+fun knuckle_V : V;
+fun knutsford_PN : PN;
+fun ko_N : N;
+fun koala_N : N;
+fun kobe_PN : PN;
+fun koblenz_PN : PN;
+fun kobo_N : N;
+fun kohl_N : N;
+fun kohlrabi_N : N;
+fun kola_N : N;
+fun kola_nut_N : N;
+fun koln_PN : PN;
+fun kookaburra_N : N;
+fun kopeck_N : N;
+fun kopje_N : N;
+fun koppie_N : N;
+fun koran_N : N;
+fun koranic_A : A;
+fun korea_PN : PN;
+fun korean_A : A;
+fun korean_N : N;
+fun kosher_A : A;
+fun kosher_N : N;
+fun kotow_N : N;
+fun kotow_V : V;
+fun koumiss_N : N;
+fun kowtow_N : N;
+fun kowtow_V : V;
+fun kraal_N : N;
+fun krakow_PN : PN;
+fun krasnoyarsk_PN : PN;
+fun krefeld_PN : PN;
+fun kremlin_N : N;
+fun krivoi_rog_PN : PN;
+fun krona_N : N;
+fun krone_N : N;
+fun kudos_N : N;
+fun kumis_N : N;
+fun kung_fu_N : N;
+fun kunming_PN : PN;
+fun kuwait_PN : PN;
+fun kuwait_city_PN : PN;
+fun kuwaiti_A : A;
+fun kuwaiti_N : N;
+fun kuybyshev_PN : PN;
+fun kvass_N : N;
+fun kw_N : N;
+fun kwacha_N : N;
+fun kweiyang_PN : PN;
+fun kwela_N : N;
+fun kyoto_PN : PN;
+fun kummel_N : N;
+fun l_plate_N : N;
+fun la_N : N;
+fun la_PN : PN;
+fun la_di_da_A : A;
+fun la_habana_PN : PN;
+fun la_paz_PN : PN;
+fun la_plata_PN : PN;
+fun la_spezia_PN : PN;
+fun laager_N : N;
+fun lab_N : N;
+fun lab_PN : PN;
+fun label_N : N;
+fun label_V2 : V2;
+fun labial_A : A;
+fun laboratory_N : N;
+fun laborious_A : A;
+fun labour_N : N;
+fun labour_V : V;
+fun labour_V2 : V2;
+fun labour_saving_A : A;
+fun laboured_A : A;
+fun labourer_N : N;
+fun labourite_N : N;
+fun labrador_PN : PN;
+fun laburnum_N : N;
+fun labyrinth_N : N;
+fun labyrinthine_A : A;
+fun lace_N : N;
+fun lace_V : V;
+fun lace_V2 : V2;
+fun lacerate_V2 : V2;
+fun laceration_N : N;
+fun lachrymal_A : A;
+fun lachrymose_A : A;
+fun lack_N : N;
+fun lack_V : V;
+fun lack_V2 : V2;
+fun lack_lustre_A : A;
+fun lackadaisical_A : A;
+fun lackey_N : N;
+fun laconic_A : A;
+fun laconically_Adv : Adv;
+fun laconicism_N : N;
+fun laconism_N : N;
+fun lacquer_N : N;
+fun lacquer_V2 : V2;
+fun lacrosse_N : N;
+fun lactic_A : A;
+fun lacuna_N : N;
+fun lacy_A : A;
+fun lad_N : N;
+fun ladder_N : N;
+fun ladder_V : V;
+fun ladder_proof_A : A;
+fun laddie_N : N;
+fun lade_V2 : V2;
+fun laden_A : A;
+fun lading_N : N;
+fun ladle_N : N;
+fun ladle_V2 : V2;
+fun lady's_maid_N : N;
+fun lady_N : N;
+fun lady_chapel_N : N;
+fun lady_in_waiting_N : N;
+fun lady_killer_N : N;
+fun ladybird_N : N;
+fun ladylike_A : A;
+fun ladyship_N : N;
+fun lag_N : N;
+fun lag_V : V;
+fun lag_V2 : V2;
+fun lager_N : N;
+fun laggard_N : N;
+fun lagging_N : N;
+fun lagoon_N : N;
+fun lagos_PN : PN;
+fun lahore_PN : PN;
+fun laic_A : A;
+fun laicize_V2 : V2;
+fun lair_N : N;
+fun laird_N : N;
+fun laissez_faire_N : N;
+fun laity_N : N;
+fun lake_N : N;
+fun lakenheath_PN : PN;
+fun lakh_N : N;
+fun lam_V : V;
+fun lam_V2 : V2;
+fun lama_N : N;
+fun lamasery_N : N;
+fun lamb_N : N;
+fun lamb_V : V;
+fun lambaste_V2 : V2;
+fun lambency_N : N;
+fun lambent_A : A;
+fun lambeth_PN : PN;
+fun lambkin_N : N;
+fun lambskin_N : N;
+fun lame_A : A;
+fun lame_V2 : V2;
+fun lameness_N : N;
+fun lament_N : N;
+fun lament_V : V;
+fun lament_V2 : V2;
+fun lamentable_A : A;
+fun lamentation_N : N;
+fun laminate_V : V;
+fun laminate_V2 : V2;
+fun lammas_N : N;
+fun lammas_PN : PN;
+fun lamp_N : N;
+fun lamp_black_N : N;
+fun lamplight_N : N;
+fun lamplighter_N : N;
+fun lamplit_A : A;
+fun lampoon_N : N;
+fun lampoon_V2 : V2;
+fun lamppost_N : N;
+fun lamprey_N : N;
+fun lampshade_N : N;
+fun lame_N : N;
+fun lanark_PN : PN;
+fun lancashire_PN : PN;
+fun lancaster_PN : PN;
+fun lancastrian_A : A;
+fun lancastrian_N : N;
+fun lance_N : N;
+fun lance_V2 : V2;
+fun lance_corporal_N : N;
+fun lancer_N : N;
+fun lancet_N : N;
+fun lanchow_PN : PN;
+fun lancing_PN : PN;
+fun land_N : N;
+fun land_V : V;
+fun land_V2 : V2;
+fun land_agent_N : N;
+fun landau_N : N;
+fun landed_A : A;
+fun landfall_N : N;
+fun landgrave_N : N;
+fun landholder_N : N;
+fun landing_N : N;
+fun landing_craft_N : N;
+fun landing_field_N : N;
+fun landing_gear_N : N;
+fun landing_net_N : N;
+fun landing_party_N : N;
+fun landing_place_N : N;
+fun landing_stage_N : N;
+fun landing_strip_N : N;
+fun landlady_N : N;
+fun landless_A : A;
+fun landlocked_A : A;
+fun landlord_N : N;
+fun landlubber_N : N;
+fun landmark_N : N;
+fun landmine_N : N;
+fun landowner_N : N;
+fun landrover_N : N;
+fun landscape_N : N;
+fun landscape_V2 : V2;
+fun landslide_N : N;
+fun landslip_N : N;
+fun landsman_N : N;
+fun landward_Adv : Adv;
+fun lane_N : N;
+fun langsyne_Adv : Adv;
+fun langsyne_N : N;
+fun language_N : N;
+fun languid_A : A;
+fun languish_V : V;
+fun languor_N : N;
+fun languorous_A : A;
+fun langur_N : N;
+fun lank_A : A;
+fun lanky_A : A;
+fun lanolin_N : N;
+fun lantern_N : N;
+fun lantern_jawed_A : A;
+fun lanyard_N : N;
+fun lao_N : N;
+fun laos_PN : PN;
+fun laotian_A : A;
+fun laotian_N : N;
+fun lap_N : N;
+fun lap_V : V;
+fun lap_V2 : V2;
+fun lap_dog_N : N;
+fun lapel_N : N;
+fun lapidary_A : A;
+fun lapidary_N : N;
+fun lapis_lazuli_N : N;
+fun lapse_N : N;
+fun lapse_V : V;
+fun lapwing_N : N;
+fun larboard_A : A;
+fun larboard_N : N;
+fun larceny_N : N;
+fun larch_N : N;
+fun lard_N : N;
+fun lard_V2 : V2;
+fun larder_N : N;
+fun large_A : A;
+fun large_Adv : Adv;
+fun large_N : N;
+fun large_scale_A : A;
+fun largeness_N : N;
+fun largesse_N : N;
+fun largish_A : A;
+fun largo_N : N;
+fun largs_PN : PN;
+fun lariat_N : N;
+fun lark_N : N;
+fun lark_V : V;
+fun larkhall_PN : PN;
+fun larkspur_N : N;
+fun larn_V : V;
+fun larn_V2 : V2;
+fun larne_PN : PN;
+fun larry_PN : PN;
+fun larva_N : N;
+fun larval_A : A;
+fun laryngitis_N : N;
+fun larynx_N : N;
+fun las_palmas_PN : PN;
+fun lascar_N : N;
+fun lascivious_A : A;
+fun lasciviousness_N : N;
+fun laser_N : N;
+fun lash_N : N;
+fun lash_V : V;
+fun lash_V2 : V2;
+fun lash_up_N : N;
+fun lashing_N : N;
+fun lass_N : N;
+fun lassie_N : N;
+fun lassitude_N : N;
+fun lasso_N : N;
+fun lasso_V2 : V2;
+fun last_A : A;
+fun last_Adv : Adv;
+fun last_N : N;
+fun last_V : V;
+fun lasting_A : A;
+fun lat_N : N;
+fun latch_N : N;
+fun latch_V : V;
+fun latch_V2 : V2;
+fun latchkey_N : N;
+fun late_A : A;
+fun late_Adv : Adv;
+fun lateen_A : A;
+fun latent_A : A;
+fun lateral_A : A;
+fun laterite_N : N;
+fun latex_N : N;
+fun lath_N : N;
+fun lathe_N : N;
+fun lather_N : N;
+fun lather_V : V;
+fun lather_V2 : V2;
+fun lathi_N : N;
+fun latin_A : A;
+fun latin_N : N;
+fun latinist_N : N;
+fun latinize_V2 : V2;
+fun latish_A : A;
+fun latitude_N : N;
+fun latitudes_N : N;
+fun latitudinal_A : A;
+fun latitudinarian_A : A;
+fun latitudinarian_N : N;
+fun latrine_N : N;
+fun latter_A : A;
+fun latter_day_A : A;
+fun lattice_N : N;
+fun latticed_A : A;
+fun laud_V2 : V2;
+fun laudable_A : A;
+fun laudanum_N : N;
+fun laudatory_A : A;
+fun laugh_N : N;
+fun laugh_V : V;
+fun laugh_V2 : V2;
+fun laughable_A : A;
+fun laughing_A : A;
+fun laughing_gas_N : N;
+fun laughing_stock_N : N;
+fun laughter_N : N;
+fun launch_N : N;
+fun launch_V : V;
+fun launch_V2 : V2;
+fun launcher_N : N;
+fun launching_pad_N : N;
+fun launching_site_N : N;
+fun launder_V : V;
+fun launder_V2 : V2;
+fun launderette_N : N;
+fun laundress_N : N;
+fun laundry_N : N;
+fun laundryman_N : N;
+fun laundrywoman_N : N;
+fun laura_PN : PN;
+fun laureate_A : A;
+fun laureate_N : N;
+fun laurel_N : N;
+fun laurelled_A : A;
+fun laurence_PN : PN;
+fun lausanne_PN : PN;
+fun lav_N : N;
+fun lava_N : N;
+fun lavatory_N : N;
+fun lave_V2 : V2;
+fun lavender_N : N;
+fun lavish_A : A;
+fun lavish_V2 : V2;
+fun law_N : N;
+fun law_abiding_A : A;
+fun law_officer_N : N;
+fun lawbreaker_N : N;
+fun lawful_A : A;
+fun lawgiver_N : N;
+fun lawless_A : A;
+fun lawlessness_N : N;
+fun lawmaker_N : N;
+fun lawmaking_N : N;
+fun lawn_N : N;
+fun lawn_mower_N : N;
+fun lawrence_PN : PN;
+fun lawyer_N : N;
+fun lax_A : A;
+fun laxative_A : A;
+fun laxative_N : N;
+fun laxity_N : N;
+fun lay_A : A;
+fun lay_N : N;
+fun lay_V : V;
+fun lay_V2 : V2;
+fun lay_figure_N : N;
+fun lay_off_N : N;
+fun lay_out_N : N;
+fun layabout_N : N;
+fun layby_N : N;
+fun layer_N : N;
+fun layer_V2 : V2;
+fun layer_cake_N : N;
+fun layette_N : N;
+fun layman_N : N;
+fun layover_N : N;
+fun lazar_N : N;
+fun lazaret_N : N;
+fun lazarette_N : N;
+fun lazaretto_N : N;
+fun lazarus_N : N;
+fun lazarus_PN : PN;
+fun laze_V : V;
+fun laze_V2 : V2;
+fun lazily_Adv : Adv;
+fun laziness_N : N;
+fun lazy_A : A;
+fun lazybones_N : N;
+fun lb_N : N;
+fun lbs_N : N;
+fun lbw_PN : PN;
+fun le_havre_PN : PN;
+fun le_mans_PN : PN;
+fun lea_N : N;
+fun leach_V2 : V2;
+fun lead_N : N;
+fun lead_V : V;
+fun lead_V2 : V2;
+fun lead_in_N : N;
+fun lead_ore_N : N;
+fun leaded_A : A;
+fun leaden_A : A;
+fun leader_N : N;
+fun leaderless_A : A;
+fun leadership_N : N;
+fun leading_A : A;
+fun leading_N : N;
+fun leading_rein_N : N;
+fun leaf_N : N;
+fun leaf_V : V;
+fun leaf_bud_N : N;
+fun leaf_mould_N : N;
+fun leafless_A : A;
+fun leaflet_N : N;
+fun leafy_A : A;
+fun league_N : N;
+fun league_V : V;
+fun league_V2 : V2;
+fun leak_N : N;
+fun leak_V : V;
+fun leak_V2 : V2;
+fun leakage_N : N;
+fun leaky_A : A;
+fun leal_A : A;
+fun leamington_spa_PN : PN;
+fun lean_A : A;
+fun lean_N : N;
+fun lean_V : V;
+fun lean_V2 : V2;
+fun lean_to_N : N;
+fun leaning_N : N;
+fun leanness_N : N;
+fun leap_N : N;
+fun leap_V : V;
+fun leap_V2 : V2;
+fun leap_year_N : N;
+fun leapfrog_N : N;
+fun leapfrog_V2 : V2;
+fun learn_V : V;
+fun learn_V2 : V2;
+fun learned_A : A;
+fun learner_N : N;
+fun learning_N : N;
+fun lease_N : N;
+fun lease_V2 : V2;
+fun lease_lend_N : N;
+fun leasehold_A : A;
+fun leasehold_N : N;
+fun leaseholder_N : N;
+fun leash_N : N;
+fun least_A : A;
+fun least_Adv : Adv;
+fun least_N : N;
+fun leastways_Adv : Adv;
+fun leastwise_Adv : Adv;
+fun leather_N : N;
+fun leather_jacket_N : N;
+fun leatherette_N : N;
+fun leatherhead_PN : PN;
+fun leatherneck_N : N;
+fun leatherwork_N : N;
+fun leathery_A : A;
+fun leave_N : N;
+fun leave_V : V;
+fun leave_V2 : V2;
+fun leave_taking_N : N;
+fun leaven_N : N;
+fun leaven_V2 : V2;
+fun lebanese_A : A;
+fun lebanese_N : N;
+fun lebanon_PN : PN;
+fun lecher_N : N;
+fun lecherous_A : A;
+fun lechery_N : N;
+fun lectern_N : N;
+fun lecture_N : N;
+fun lecture_V : V;
+fun lecture_V2 : V2;
+fun lecturer_N : N;
+fun lectureship_N : N;
+fun ledge_N : N;
+fun ledger_N : N;
+fun lee_N : N;
+fun leech_N : N;
+fun leeds_PN : PN;
+fun leek_N : N;
+fun leek_PN : PN;
+fun leer_N : N;
+fun leer_V : V;
+fun leeward_A : A;
+fun leeward_Adv : Adv;
+fun leeway_N : N;
+fun left_A : A;
+fun left_Adv : Adv;
+fun left_N : N;
+fun left_hand_A : A;
+fun left_handed_A : A;
+fun left_wing_N : N;
+fun left_winger_N : N;
+fun leftist_N : N;
+fun leg_N : N;
+fun leg_pull_N : N;
+fun leg_pulling_N : N;
+fun legacy_N : N;
+fun legal_A : A;
+fun legalism_N : N;
+fun legalistic_A : A;
+fun legality_N : N;
+fun legalization_N : N;
+fun legalize_V2 : V2;
+fun legate_N : N;
+fun legatee_N : N;
+fun legation_N : N;
+fun legato_A : A;
+fun legato_Adv : Adv;
+fun legend_N : N;
+fun legendary_A : A;
+fun leger_line_N : N;
+fun legerdemain_N : N;
+fun legged_A : A;
+fun legging_N : N;
+fun leggy_A : A;
+fun leghorn_N : N;
+fun legibility_N : N;
+fun legible_A : A;
+fun legion_N : N;
+fun legionary_N : N;
+fun legislate_V : V;
+fun legislation_N : N;
+fun legislative_A : A;
+fun legislator_N : N;
+fun legislature_N : N;
+fun legitimacy_N : N;
+fun legitimate_A : A;
+fun legitimatize_V2 : V2;
+fun legless_A : A;
+fun leguminous_A : A;
+fun lei_N : N;
+fun leicester_PN : PN;
+fun leicestershire_PN : PN;
+fun leiden_PN : PN;
+fun leigh_PN : PN;
+fun leighton_linslade_PN : PN;
+fun leinster_PN : PN;
+fun leipzig_PN : PN;
+fun leisure_N : N;
+fun leisured_A : A;
+fun leisurely_A : A;
+fun leisurely_Adv : Adv;
+fun leitrim_PN : PN;
+fun leix_PN : PN;
+fun lemming_N : N;
+fun lemon_N : N;
+fun lemonade_N : N;
+fun lemur_N : N;
+fun len_PN : PN;
+fun lend_V2 : V2;
+fun lender_N : N;
+fun lending_library_N : N;
+fun length_N : N;
+fun lengthen_V : V;
+fun lengthen_V2 : V2;
+fun lengthily_Adv : Adv;
+fun lengthways_A : A;
+fun lengthways_Adv : Adv;
+fun lengthwise_Adv : Adv;
+fun lengthy_A : A;
+fun lenience_N : N;
+fun leniency_N : N;
+fun lenient_A : A;
+fun leningrad_PN : PN;
+fun lenity_N : N;
+fun lenny_PN : PN;
+fun lens_N : N;
+fun lens_PN : PN;
+fun lent_N : N;
+fun lent_PN : PN;
+fun lenten_A : A;
+fun lentil_N : N;
+fun lento_A : A;
+fun lento_Adv : Adv;
+fun leo_PN : PN;
+fun leominster_PN : PN;
+fun leon_PN : PN;
+fun leonard_PN : PN;
+fun leonine_A : A;
+fun leopard_N : N;
+fun leopardess_N : N;
+fun leper_N : N;
+fun leprechaun_N : N;
+fun leprosy_N : N;
+fun leprous_A : A;
+fun lerwick_PN : PN;
+fun les_PN : PN;
+fun lesbian_N : N;
+fun lesbianism_N : N;
+fun lese_majesty_N : N;
+fun lesion_N : N;
+fun lesley_PN : PN;
+fun leslie_PN : PN;
+fun lesotho_PN : PN;
+fun less_A : A;
+fun less_Adv : Adv;
+fun less_N : N;
+fun lessee_N : N;
+fun lessen_V : V;
+fun lessen_V2 : V2;
+fun lesser_A : A;
+fun lesson_N : N;
+fun lessor_N : N;
+fun let_N : N;
+fun let_V : V;
+fun let_V2 : V2;
+fun let_down_N : N;
+fun let_up_N : N;
+fun letchworth_PN : PN;
+fun lethal_A : A;
+fun lethargic_A : A;
+fun lethargically_Adv : Adv;
+fun lethargy_N : N;
+fun lethe_PN : PN;
+fun letter_N : N;
+fun letter_box_N : N;
+fun letter_card_N : N;
+fun letter_case_N : N;
+fun lettered_A : A;
+fun letterhead_N : N;
+fun lettering_N : N;
+fun letterpress_N : N;
+fun letting_N : N;
+fun lettuce_N : N;
+fun leucocyte_N : N;
+fun leukaemia_N : N;
+fun levant_PN : PN;
+fun levant_V : V;
+fun levantine_A : A;
+fun levantine_N : N;
+fun levee_N : N;
+fun level_A : A;
+fun level_N : N;
+fun level_V : V;
+fun level_V2 : V2;
+fun level_headed_A : A;
+fun leveller_N : N;
+fun leven_PN : PN;
+fun lever_N : N;
+fun lever_V2 : V2;
+fun leverage_N : N;
+fun leveret_N : N;
+fun leverkusen_PN : PN;
+fun leviathan_N : N;
+fun levitate_V : V;
+fun levitate_V2 : V2;
+fun levitation_N : N;
+fun levity_N : N;
+fun levy_N : N;
+fun levy_V : V;
+fun levy_V2 : V2;
+fun lewd_A : A;
+fun lewdness_N : N;
+fun lewes_PN : PN;
+fun lewis_PN : PN;
+fun lewisham_PN : PN;
+fun lexical_A : A;
+fun lexicographer_N : N;
+fun lexicography_N : N;
+fun lexicon_N : N;
+fun lexis_N : N;
+fun ley_N : N;
+fun leyland_PN : PN;
+fun liability_N : N;
+fun liable_A : A;
+fun liaise_V : V;
+fun liaison_N : N;
+fun liana_N : N;
+fun liar_N : N;
+fun lib_N : N;
+fun lib_PN : PN;
+fun libation_N : N;
+fun libel_N : N;
+fun libel_V2 : V2;
+fun libellous_A : A;
+fun liberal_A : A;
+fun liberal_N : N;
+fun liberalism_N : N;
+fun liberality_N : N;
+fun liberalization_N : N;
+fun liberalize_V2 : V2;
+fun liberate_V2 : V2;
+fun liberation_N : N;
+fun liberator_N : N;
+fun liberia_PN : PN;
+fun liberian_A : A;
+fun liberian_N : N;
+fun libertine_N : N;
+fun liberty_N : N;
+fun libidinous_A : A;
+fun libido_N : N;
+fun libra_PN : PN;
+fun librarian_N : N;
+fun librarianship_N : N;
+fun library_N : N;
+fun librettist_N : N;
+fun libretto_N : N;
+fun libya_PN : PN;
+fun libyan_A : A;
+fun libyan_N : N;
+fun licence_N : N;
+fun licence_V2 : V2;
+fun license_V2 : V2;
+fun licensee_N : N;
+fun licentiate_N : N;
+fun licentious_A : A;
+fun licentiousness_N : N;
+fun lichee_N : N;
+fun lichen_N : N;
+fun lichfield_PN : PN;
+fun lichgate_N : N;
+fun lichi_N : N;
+fun licit_A : A;
+fun lick_N : N;
+fun lick_V : V;
+fun lick_V2 : V2;
+fun licking_N : N;
+fun lid_N : N;
+fun lidless_A : A;
+fun lido_N : N;
+fun lie_N : N;
+fun lie_V : V;
+fun lie_abed_N : N;
+fun lie_detector_N : N;
+fun lie_in_N : N;
+fun liechtenstein_PN : PN;
+fun liechtensteiner_A : A;
+fun liechtensteiner_N : N;
+fun lied_N : N;
+fun lieder_singer_N : N;
+fun lief_Adv : Adv;
+fun liege_A : A;
+fun liege_N : N;
+fun liege_PN : PN;
+fun liegeman_N : N;
+fun lien_N : N;
+fun lieu_N : N;
+fun lieutenancy_N : N;
+fun lieutenant_N : N;
+fun life_N : N;
+fun life_buoy_N : N;
+fun life_giving_A : A;
+fun life_jacket_N : N;
+fun life_office_N : N;
+fun life_preserver_N : N;
+fun life_raft_N : N;
+fun life_saver_N : N;
+fun life_size_A : A;
+fun life_sized_A : A;
+fun life_span_N : N;
+fun life_work_N : N;
+fun lifebelt_N : N;
+fun lifeblood_N : N;
+fun lifeboat_N : N;
+fun lifebuoy_N : N;
+fun lifeguard_N : N;
+fun lifeless_A : A;
+fun lifelike_A : A;
+fun lifeline_N : N;
+fun lifelong_A : A;
+fun lifer_N : N;
+fun lifetime_N : N;
+fun lift_N : N;
+fun lift_V : V;
+fun lift_V2 : V2;
+fun lift_off_N : N;
+fun liftman_N : N;
+fun ligament_N : N;
+fun ligature_N : N;
+fun light_A : A;
+fun light_Adv : Adv;
+fun light_N : N;
+fun light_V : V;
+fun light_V2 : V2;
+fun light_armed_A : A;
+fun light_coloured_A : A;
+fun light_fingered_A : A;
+fun light_handed_A : A;
+fun light_headed_A : A;
+fun light_headedness_N : N;
+fun light_hearted_A : A;
+fun light_heartedness_N : N;
+fun light_heavyweight_N : N;
+fun light_minded_A : A;
+fun light_mindedness_N : N;
+fun light_o'_love_N : N;
+fun lighten_V : V;
+fun lighten_V2 : V2;
+fun lighter_N : N;
+fun lighter_V2 : V2;
+fun lighterage_N : N;
+fun lighthouse_N : N;
+fun lighting_up_A : A;
+fun lightness_N : N;
+fun lightning_N : N;
+fun lightning_conductor_N : N;
+fun lightning_rod_N : N;
+fun lightship_N : N;
+fun lightsome_A : A;
+fun lightsomeness_N : N;
+fun lightweight_A : A;
+fun lightweight_N : N;
+fun ligneous_A : A;
+fun lignite_N : N;
+fun likable_A : A;
+fun like_A : A;
+fun like_Adv : Adv;
+fun like_N : N;
+fun like_V2 : V2;
+fun like_minded_A : A;
+fun likeable_A : A;
+fun likelihood_N : N;
+fun likely_A : A;
+fun liken_V2 : V2;
+fun likeness_N : N;
+fun likewise_Adv : Adv;
+fun liking_N : N;
+fun lilac_N : N;
+fun lilian_PN : PN;
+fun lille_PN : PN;
+fun lilliputian_A : A;
+fun lilliputian_N : N;
+fun lilt_N : N;
+fun lilt_V : V;
+fun lilt_V2 : V2;
+fun lily_N : N;
+fun lily_PN : PN;
+fun lily_livered_A : A;
+fun lily_white_A : A;
+fun lima_PN : PN;
+fun limb_N : N;
+fun limbed_A : A;
+fun limber_A : A;
+fun limber_V : V;
+fun limber_V2 : V2;
+fun limbless_A : A;
+fun limbo_N : N;
+fun lime_N : N;
+fun lime_V2 : V2;
+fun lime_tree_N : N;
+fun limejuice_N : N;
+fun limekiln_N : N;
+fun limelight_N : N;
+fun limerick_N : N;
+fun limerick_PN : PN;
+fun limestone_N : N;
+fun limey_N : N;
+fun limit_N : N;
+fun limit_V2 : V2;
+fun limitation_N : N;
+fun limitless_A : A;
+fun limn_V2 : V2;
+fun limoges_PN : PN;
+fun limousine_N : N;
+fun limp_A : A;
+fun limp_N : N;
+fun limp_V : V;
+fun limpet_N : N;
+fun limpid_A : A;
+fun limpidity_N : N;
+fun limpness_N : N;
+fun linchpin_N : N;
+fun lincoln_PN : PN;
+fun lincolnshire_PN : PN;
+fun linda_PN : PN;
+fun linden_N : N;
+fun linden_tree_N : N;
+fun line_N : N;
+fun line_V : V;
+fun line_V2 : V2;
+fun line_shooter_N : N;
+fun line_shooting_N : N;
+fun line_up_N : N;
+fun lineage_N : N;
+fun lineal_A : A;
+fun lineament_N : N;
+fun linear_A : A;
+fun lineman_N : N;
+fun linen_N : N;
+fun linen_draper_N : N;
+fun liner_N : N;
+fun liner_train_N : N;
+fun linesman_N : N;
+fun ling_N : N;
+fun lingam_N : N;
+fun linger_V : V;
+fun lingerer_N : N;
+fun lingerie_N : N;
+fun lingering_A : A;
+fun lingo_N : N;
+fun lingua_franca_N : N;
+fun lingual_A : A;
+fun linguist_N : N;
+fun linguistic_A : A;
+fun linguistically_Adv : Adv;
+fun linguistics_N : N;
+fun liniment_N : N;
+fun lining_N : N;
+fun link_N : N;
+fun link_V : V;
+fun link_V2 : V2;
+fun link_up_N : N;
+fun linkage_N : N;
+fun linkboy_N : N;
+fun linkman_N : N;
+fun links_N : N;
+fun linlithgow_PN : PN;
+fun linnet_N : N;
+fun lino_N : N;
+fun linocut_N : N;
+fun linoleum_N : N;
+fun linotype_N : N;
+fun linseed_N : N;
+fun linsey_woolsey_N : N;
+fun lint_N : N;
+fun lintel_N : N;
+fun linwood_PN : PN;
+fun linz_PN : PN;
+fun lion_N : N;
+fun lion_hearted_A : A;
+fun lion_hunter_N : N;
+fun lionel_PN : PN;
+fun lioness_N : N;
+fun lionize_V2 : V2;
+fun lip_N : N;
+fun lip_read_V2 : V2;
+fun lip_reading_N : N;
+fun lipped_A : A;
+fun lipstick_N : N;
+fun liquefaction_N : N;
+fun liquefy_V : V;
+fun liquefy_V2 : V2;
+fun liquescent_A : A;
+fun liqueur_N : N;
+fun liquid_A : A;
+fun liquid_N : N;
+fun liquidate_V : V;
+fun liquidate_V2 : V2;
+fun liquidation_N : N;
+fun liquidator_N : N;
+fun liquidity_N : N;
+fun liquidize_V2 : V2;
+fun liquidizer_N : N;
+fun liquor_N : N;
+fun liquorice_N : N;
+fun lira_N : N;
+fun lisa_PN : PN;
+fun lisbon_PN : PN;
+fun liskeard_PN : PN;
+fun lisle_N : N;
+fun lisp_N : N;
+fun lisp_V : V;
+fun lisp_V2 : V2;
+fun lispingly_Adv : Adv;
+fun lissom_A : A;
+fun lissome_A : A;
+fun lissomness_N : N;
+fun list_N : N;
+fun list_V : V;
+fun list_V2 : V2;
+fun list_price_N : N;
+fun listen_V : V;
+fun listener_N : N;
+fun listing_N : N;
+fun listless_A : A;
+fun listlessness_N : N;
+fun litany_N : N;
+fun litchee_N : N;
+fun litchi_N : N;
+fun literacy_N : N;
+fun literal_A : A;
+fun literal_N : N;
+fun literary_A : A;
+fun literate_A : A;
+fun literate_N : N;
+fun literature_N : N;
+fun lithe_A : A;
+fun lithograph_N : N;
+fun lithograph_V : V;
+fun lithograph_V2 : V2;
+fun lithographic_A : A;
+fun lithography_N : N;
+fun litigant_N : N;
+fun litigate_V : V;
+fun litigate_V2 : V2;
+fun litigation_N : N;
+fun litigious_A : A;
+fun litmus_N : N;
+fun litmus_paper_N : N;
+fun litotes_N : N;
+fun litre_N : N;
+fun litter_N : N;
+fun litter_V : V;
+fun litter_V2 : V2;
+fun litter_basket_N : N;
+fun litter_lout_N : N;
+fun litterbin_N : N;
+fun little_A : A;
+fun little_Adv : Adv;
+fun little_N : N;
+fun littlehampton_PN : PN;
+fun littleness_N : N;
+fun littoral_A : A;
+fun littoral_N : N;
+fun liturgical_A : A;
+fun liturgy_N : N;
+fun livable_A : A;
+fun live_A : A;
+fun live_Adv : Adv;
+fun live_V : V;
+fun live_V2 : V2;
+fun live_birth_N : N;
+fun liveable_A : A;
+fun livelihood_N : N;
+fun liveliness_N : N;
+fun livelong_A : A;
+fun lively_A : A;
+fun liven_V : V;
+fun liven_V2 : V2;
+fun liver_N : N;
+fun liveried_A : A;
+fun liverish_A : A;
+fun liverpool_PN : PN;
+fun liverpudlian_A : A;
+fun liverpudlian_N : N;
+fun liverwurst_N : N;
+fun livery_A : A;
+fun livery_N : N;
+fun liveryman_N : N;
+fun livestock_N : N;
+fun livid_A : A;
+fun living_A : A;
+fun living_N : N;
+fun living_room_N : N;
+fun living_space_N : N;
+fun livingston_PN : PN;
+fun livorno_PN : PN;
+fun liz_PN : PN;
+fun liza_PN : PN;
+fun lizard_N : N;
+fun lizzy_PN : PN;
+fun ljubljana_PN : PN;
+fun ll_N : N;
+fun llama_N : N;
+fun llandudno_PN : PN;
+fun llanelli_PN : PN;
+fun llangollen_PN : PN;
+fun llantrisant_PN : PN;
+fun llantwit_major_PN : PN;
+fun llb_N : N;
+fun lloyd's_PN : PN;
+fun load_N : N;
+fun load_V : V;
+fun load_V2 : V2;
+fun load_line_N : N;
+fun load_shedding_N : N;
+fun loaded_A : A;
+fun loader_N : N;
+fun loading_N : N;
+fun loadstar_N : N;
+fun loadstone_N : N;
+fun loaf_N : N;
+fun loaf_V : V;
+fun loaf_V2 : V2;
+fun loaf_sugar_N : N;
+fun loafer_N : N;
+fun loam_N : N;
+fun loamy_A : A;
+fun loan_N : N;
+fun loan_V2 : V2;
+fun loan_collection_N : N;
+fun loan_office_N : N;
+fun loanhead_PN : PN;
+fun loanword_N : N;
+fun loath_A : A;
+fun loathe_V2 : V2;
+fun loathing_N : N;
+fun loathly_A : A;
+fun loathsome_A : A;
+fun lob_N : N;
+fun lob_V : V;
+fun lob_V2 : V2;
+fun lobby_N : N;
+fun lobby_V : V;
+fun lobby_V2 : V2;
+fun lobbyist_N : N;
+fun lobe_N : N;
+fun lobed_A : A;
+fun lobster_N : N;
+fun lobster_pot_N : N;
+fun loc_cit_PN : PN;
+fun local_A : A;
+fun local_N : N;
+fun locale_N : N;
+fun localism_N : N;
+fun locality_N : N;
+fun localization_N : N;
+fun localize_V2 : V2;
+fun locate_V2 : V2;
+fun location_N : N;
+fun loch_N : N;
+fun lochgelly_PN : PN;
+fun lock_N : N;
+fun lock_V : V;
+fun lock_V2 : V2;
+fun lock_gate_N : N;
+fun lock_keeper_N : N;
+fun locker_N : N;
+fun locket_N : N;
+fun lockjaw_N : N;
+fun locknut_N : N;
+fun lockout_N : N;
+fun locksmith_N : N;
+fun lockstitch_N : N;
+fun lockup_A : A;
+fun lockup_N : N;
+fun loco_A : A;
+fun locomotion_N : N;
+fun locomotive_A : A;
+fun locomotive_N : N;
+fun locum_N : N;
+fun locum_tenens_N : N;
+fun locus_N : N;
+fun locus_classicus_N : N;
+fun locust_N : N;
+fun locust_tree_N : N;
+fun locution_N : N;
+fun lode_N : N;
+fun lodestar_N : N;
+fun lodestone_N : N;
+fun lodge_N : N;
+fun lodge_V : V;
+fun lodge_V2 : V2;
+fun lodgement_N : N;
+fun lodger_N : N;
+fun lodging_N : N;
+fun lodging_house_N : N;
+fun lodgment_N : N;
+fun lodz_PN : PN;
+fun loess_N : N;
+fun loft_N : N;
+fun loft_V2 : V2;
+fun loftily_Adv : Adv;
+fun loftiness_N : N;
+fun loftus_PN : PN;
+fun lofty_A : A;
+fun log_N : N;
+fun log_V2 : V2;
+fun log_cabin_N : N;
+fun log_jam_N : N;
+fun log_rolling_N : N;
+fun loganberry_N : N;
+fun logarithm_N : N;
+fun logarithmic_A : A;
+fun logarithmically_Adv : Adv;
+fun logbook_N : N;
+fun loggerheads_N : N;
+fun loggia_N : N;
+fun logging_N : N;
+fun logic_N : N;
+fun logical_A : A;
+fun logicality_N : N;
+fun logician_N : N;
+fun logistics_N : N;
+fun loin_N : N;
+fun loincloth_N : N;
+fun lois_PN : PN;
+fun loiter_V : V;
+fun loiter_V2 : V2;
+fun loiterer_N : N;
+fun loll_V : V;
+fun loll_V2 : V2;
+fun lollipop_N : N;
+fun lolly_N : N;
+fun london_PN : PN;
+fun londonderry_PN : PN;
+fun londoner_N : N;
+fun lone_A : A;
+fun loneliness_N : N;
+fun lonely_A : A;
+fun lonesome_A : A;
+fun long_A : A;
+fun long_Adv : Adv;
+fun long_N : N;
+fun long_V : V;
+fun long_distance_A : A;
+fun long_drawn_out_A : A;
+fun long_eaton_PN : PN;
+fun long_haired_A : A;
+fun long_headed_A : A;
+fun long_lived_A : A;
+fun long_play_A : A;
+fun long_playing_A : A;
+fun long_range_A : A;
+fun long_sighted_A : A;
+fun long_standing_A : A;
+fun long_suffering_A : A;
+fun long_term_A : A;
+fun long_time_A : A;
+fun long_winded_A : A;
+fun long_windedness_N : N;
+fun longboat_N : N;
+fun longbow_N : N;
+fun longer_Adv : Adv;
+fun longest_Adv : Adv;
+fun longevity_N : N;
+fun longhand_N : N;
+fun longing_A : A;
+fun longing_N : N;
+fun longish_A : A;
+fun longitude_N : N;
+fun longitudinal_A : A;
+fun longridge_PN : PN;
+fun longshoreman_N : N;
+fun longton_PN : PN;
+fun longways_Adv : Adv;
+fun longwise_Adv : Adv;
+fun loo_N : N;
+fun loofa_N : N;
+fun loofah_N : N;
+fun look_N : N;
+fun look_V : V;
+fun look_V2 : V2;
+fun look_over_N : N;
+fun looker_N : N;
+fun looker_on_N : N;
+fun looking_glass_N : N;
+fun lookout_N : N;
+fun loom_N : N;
+fun loom_V : V;
+fun loon_N : N;
+fun loony_A : A;
+fun loony_N : N;
+fun loonybin_N : N;
+fun loop_N : N;
+fun loop_V : V;
+fun loop_V2 : V2;
+fun loop_line_N : N;
+fun loophole_N : N;
+fun loopy_A : A;
+fun loose_A : A;
+fun loose_V2 : V2;
+fun loose_leaf_A : A;
+fun loosen_V : V;
+fun loosen_V2 : V2;
+fun loot_N : N;
+fun loot_V : V;
+fun loot_V2 : V2;
+fun looter_N : N;
+fun lop_V : V;
+fun lop_V2 : V2;
+fun lop_eared_A : A;
+fun lope_N : N;
+fun lope_V : V;
+fun lopsided_A : A;
+fun loquacious_A : A;
+fun loquaciousness_N : N;
+fun loquacity_N : N;
+fun loquat_N : N;
+fun lord_N : N;
+fun lord_V2 : V2;
+fun lordless_A : A;
+fun lordliness_N : N;
+fun lordly_A : A;
+fun lordship_N : N;
+fun lore_N : N;
+fun lorgnette_N : N;
+fun lorn_A : A;
+fun lorna_PN : PN;
+fun lorry_N : N;
+fun los_angeles_PN : PN;
+fun lose_V : V;
+fun lose_V2 : V2;
+fun loser_N : N;
+fun loss_N : N;
+fun loss_leader_N : N;
+fun lossiemouth_PN : PN;
+fun lot_N : N;
+fun loth_A : A;
+fun lothian_PN : PN;
+fun lotion_N : N;
+fun lottery_N : N;
+fun lotto_N : N;
+fun lotus_N : N;
+fun lotus_eater_N : N;
+fun loud_A : A;
+fun loud_Adv : Adv;
+fun loud_hailer_N : N;
+fun loudness_N : N;
+fun loudspeaker_N : N;
+fun lough_N : N;
+fun loughborough_PN : PN;
+fun louis_PN : PN;
+fun louise_PN : PN;
+fun louisiana_PN : PN;
+fun louisville_PN : PN;
+fun lounge_N : N;
+fun lounge_V : V;
+fun lounge_chair_N : N;
+fun lounge_lizard_N : N;
+fun lounge_suit_N : N;
+fun lounger_N : N;
+fun lour_V : V;
+fun louringly_Adv : Adv;
+fun louse_N : N;
+fun lousy_A : A;
+fun lout_N : N;
+fun louth_PN : PN;
+fun loutish_A : A;
+fun louvered_A : A;
+fun louvre_N : N;
+fun lovable_A : A;
+fun love_N : N;
+fun love_V2 : V2;
+fun love_affair_N : N;
+fun love_child_N : N;
+fun love_feast_N : N;
+fun love_knot_N : N;
+fun love_letter_N : N;
+fun love_match_N : N;
+fun love_philtre_N : N;
+fun love_potion_N : N;
+fun love_seat_N : N;
+fun love_song_N : N;
+fun love_story_N : N;
+fun love_token_N : N;
+fun lovebird_N : N;
+fun loveless_A : A;
+fun loveliness_N : N;
+fun lovelorn_A : A;
+fun lovely_A : A;
+fun lovemaking_N : N;
+fun lover_N : N;
+fun loverlike_A : A;
+fun lovesick_A : A;
+fun loving_A : A;
+fun loving_cup_N : N;
+fun loving_kindness_N : N;
+fun low_A : A;
+fun low_Adv : Adv;
+fun low_N : N;
+fun low_V : V;
+fun low_down_A : A;
+fun low_keyed_A : A;
+fun low_pitched_A : A;
+fun low_relief_N : N;
+fun low_spirited_A : A;
+fun lowborn_A : A;
+fun lowbred_A : A;
+fun lowbrow_A : A;
+fun lowbrow_N : N;
+fun lower_Adv : Adv;
+fun lower_V : V;
+fun lower_V2 : V2;
+fun lowermost_A : A;
+fun lowest_Adv : Adv;
+fun lowestoft_PN : PN;
+fun lowlander_N : N;
+fun lowliness_N : N;
+fun lowly_A : A;
+fun lowness_N : N;
+fun loyal_A : A;
+fun loyalist_N : N;
+fun loyalty_N : N;
+fun loyang_PN : PN;
+fun lozenge_N : N;
+fun lp_N : N;
+fun lps_N : N;
+fun lsd_N : N;
+fun lt_PN : PN;
+fun ltd_PN : PN;
+fun lubber_N : N;
+fun lubberly_A : A;
+fun lubeck_PN : PN;
+fun lubricant_N : N;
+fun lubricate_V2 : V2;
+fun lubrication_N : N;
+fun lucent_A : A;
+fun lucerne_N : N;
+fun lucid_A : A;
+fun lucidity_N : N;
+fun lucifer_N : N;
+fun luck_N : N;
+fun luckily_Adv : Adv;
+fun luckless_A : A;
+fun lucknow_PN : PN;
+fun lucky_A : A;
+fun lucrative_A : A;
+fun lucre_N : N;
+fun lucy_PN : PN;
+fun luddite_N : N;
+fun ludicrous_A : A;
+fun ludlow_PN : PN;
+fun ludo_N : N;
+fun ludwigshafen_PN : PN;
+fun luff_V : V;
+fun luff_V2 : V2;
+fun lug_N : N;
+fun lug_V2 : V2;
+fun luge_N : N;
+fun luggage_N : N;
+fun luggage_carrier_N : N;
+fun luggage_rack_N : N;
+fun luggage_van_N : N;
+fun lugger_N : N;
+fun lugsail_N : N;
+fun lugubrious_A : A;
+fun lugubriousness_N : N;
+fun luke_PN : PN;
+fun lukewarm_A : A;
+fun lukewarmness_N : N;
+fun lull_N : N;
+fun lull_V : V;
+fun lull_V2 : V2;
+fun lullaby_N : N;
+fun lumbago_N : N;
+fun lumbar_A : A;
+fun lumber_N : N;
+fun lumber_V : V;
+fun lumber_V2 : V2;
+fun lumber_mill_N : N;
+fun lumberjack_N : N;
+fun lumberman_N : N;
+fun lumberroom_N : N;
+fun lumberyard_N : N;
+fun luminary_N : N;
+fun luminosity_N : N;
+fun luminous_A : A;
+fun lump_N : N;
+fun lump_V2 : V2;
+fun lumpish_A : A;
+fun lumpy_A : A;
+fun lunacy_N : N;
+fun lunar_A : A;
+fun lunatic_N : N;
+fun lunch_N : N;
+fun lunch_V : V;
+fun lunch_V2 : V2;
+fun luncheon_N : N;
+fun lunchtime_N : N;
+fun lung_N : N;
+fun lung_power_N : N;
+fun lunge_N : N;
+fun lunge_V : V;
+fun lupin_N : N;
+fun lurch_N : N;
+fun lurch_V : V;
+fun lurcher_N : N;
+fun lure_N : N;
+fun lure_V2 : V2;
+fun lurid_A : A;
+fun luridness_N : N;
+fun lurk_V : V;
+fun lurking_place_N : N;
+fun luscious_A : A;
+fun lusciousness_N : N;
+fun lush_A : A;
+fun lush_N : N;
+fun lust_N : N;
+fun lust_V : V;
+fun lustful_A : A;
+fun lustily_Adv : Adv;
+fun lustre_N : N;
+fun lustrous_A : A;
+fun lusty_A : A;
+fun luta_PN : PN;
+fun lutanist_N : N;
+fun lute_N : N;
+fun lutenist_N : N;
+fun lutheran_A : A;
+fun lutheran_N : N;
+fun luton_PN : PN;
+fun luxe_A : A;
+fun luxembourg_PN : PN;
+fun luxemburg_PN : PN;
+fun luxemburger_A : A;
+fun luxemburger_N : N;
+fun luxuriance_N : N;
+fun luxuriant_A : A;
+fun luxuriate_V : V;
+fun luxurious_A : A;
+fun luxury_N : N;
+fun lvov_PN : PN;
+fun lyallpur_PN : PN;
+fun lyceum_N : N;
+fun lychee_N : N;
+fun lychgate_N : N;
+fun lycee_N : N;
+fun lydia_PN : PN;
+fun lydney_PN : PN;
+fun lye_N : N;
+fun lying_in_A : A;
+fun lymington_PN : PN;
+fun lymm_PN : PN;
+fun lymph_N : N;
+fun lymphatic_A : A;
+fun lynch_N : N;
+fun lynch_V2 : V2;
+fun lynchpin_N : N;
+fun lynn_PN : PN;
+fun lynne_PN : PN;
+fun lynx_N : N;
+fun lynx_eyed_A : A;
+fun lyons_PN : PN;
+fun lyre_N : N;
+fun lyre_bird_N : N;
+fun lyric_A : A;
+fun lyric_N : N;
+fun lyrical_A : A;
+fun lyricism_N : N;
+fun lyricist_N : N;
+fun lysol_N : N;
+fun lytham_PN : PN;
+fun lytham_st_annes_PN : PN;
+fun ma'am_N : N;
+fun ma_N : N;
+fun maastricht_PN : PN;
+fun mabel_PN : PN;
+fun mac_N : N;
+fun macabre_A : A;
+fun macadam_N : N;
+fun macadamize_V2 : V2;
+fun macaroni_N : N;
+fun macaroon_N : N;
+fun macaw_N : N;
+fun macclesfield_PN : PN;
+fun mace_N : N;
+fun mace_bearer_N : N;
+fun macedonian_A : A;
+fun macedonian_N : N;
+fun macerate_V : V;
+fun macerate_V2 : V2;
+fun mach_PN : PN;
+fun machete_N : N;
+fun machiavellian_A : A;
+fun machination_N : N;
+fun machine_N : N;
+fun machine_V2 : V2;
+fun machine_gun_N : N;
+fun machine_made_A : A;
+fun machinery_N : N;
+fun machinist_N : N;
+fun machismo_N : N;
+fun mackerel_N : N;
+fun mackintosh_N : N;
+fun macrobiotic_A : A;
+fun macrocosm_N : N;
+fun mad_A : A;
+fun madagascan_A : A;
+fun madagascan_N : N;
+fun madagascar_PN : PN;
+fun madam_N : N;
+fun madame_N : N;
+fun madcap_N : N;
+fun madden_V2 : V2;
+fun madder_N : N;
+fun maddy_PN : PN;
+fun madeira_N : N;
+fun madeleine_PN : PN;
+fun mademoiselle_N : N;
+fun madge_PN : PN;
+fun madhouse_N : N;
+fun madman_N : N;
+fun madness_N : N;
+fun madonna_N : N;
+fun madras_PN : PN;
+fun madrid_PN : PN;
+fun madrigal_N : N;
+fun madurai_PN : PN;
+fun madwoman_N : N;
+fun maecenas_PN : PN;
+fun maelstrom_N : N;
+fun maenad_N : N;
+fun maesteg_PN : PN;
+fun maestro_N : N;
+fun maffick_V : V;
+fun mafia_N : N;
+fun mag_N : N;
+fun magazine_N : N;
+fun magdeburg_PN : PN;
+fun magenta_A : A;
+fun magenta_N : N;
+fun maggie_PN : PN;
+fun maggot_N : N;
+fun maggoty_A : A;
+fun maghull_PN : PN;
+fun magic_A : A;
+fun magic_N : N;
+fun magical_A : A;
+fun magician_N : N;
+fun magisterial_A : A;
+fun magistracy_N : N;
+fun magistrate_N : N;
+fun magnanimity_N : N;
+fun magnanimous_A : A;
+fun magnate_N : N;
+fun magnesia_N : N;
+fun magnesium_N : N;
+fun magnet_N : N;
+fun magnetic_A : A;
+fun magnetically_Adv : Adv;
+fun magnetism_N : N;
+fun magnetization_N : N;
+fun magnetize_V2 : V2;
+fun magneto_N : N;
+fun magnificat_N : N;
+fun magnification_N : N;
+fun magnificence_N : N;
+fun magnificent_A : A;
+fun magnifier_N : N;
+fun magnify_V2 : V2;
+fun magniloquence_N : N;
+fun magniloquent_A : A;
+fun magnitude_N : N;
+fun magnolia_N : N;
+fun magnum_N : N;
+fun magnum_opus_N : N;
+fun magpie_N : N;
+fun magyar_A : A;
+fun magyar_N : N;
+fun maharaja_N : N;
+fun maharajah_N : N;
+fun maharanee_N : N;
+fun mahatma_N : N;
+fun mahjong_N : N;
+fun mahogany_N : N;
+fun mahout_N : N;
+fun maid_N : N;
+fun maiden_A : A;
+fun maiden_N : N;
+fun maidenhair_N : N;
+fun maidenhead_N : N;
+fun maidenhead_PN : PN;
+fun maidenhood_N : N;
+fun maidenlike_A : A;
+fun maidenly_A : A;
+fun maidservant_N : N;
+fun maidstone_PN : PN;
+fun mail_N : N;
+fun mail_V2 : V2;
+fun mail_train_N : N;
+fun mailbag_N : N;
+fun mailboat_N : N;
+fun mailbox_N : N;
+fun mailed_A : A;
+fun mailing_card_N : N;
+fun mailing_list_N : N;
+fun mailman_N : N;
+fun maim_V2 : V2;
+fun main_A : A;
+fun main_N : N;
+fun maine_PN : PN;
+fun mainland_N : N;
+fun mainmast_N : N;
+fun mainspring_N : N;
+fun mainstay_N : N;
+fun mainstream_N : N;
+fun maintain_V2 : V2;
+fun maintainable_A : A;
+fun maintenance_N : N;
+fun mainz_PN : PN;
+fun maisonnette_N : N;
+fun maize_N : N;
+fun maj_PN : PN;
+fun majestic_A : A;
+fun majestically_Adv : Adv;
+fun majesty_N : N;
+fun majolica_N : N;
+fun major_A : A;
+fun major_N : N;
+fun major_V : V;
+fun major_domo_N : N;
+fun major_general_N : N;
+fun majority_N : N;
+fun make_N : N;
+fun make_V : V;
+fun make_V2 : V2;
+fun make_believe_N : N;
+fun make_up_N : N;
+fun maker_N : N;
+fun makeshift_N : N;
+fun makeweight_N : N;
+fun making_N : N;
+fun malacca_N : N;
+fun malachite_N : N;
+fun maladjusted_A : A;
+fun maladjustment_N : N;
+fun maladroit_A : A;
+fun maladroitness_N : N;
+fun malady_N : N;
+fun malaga_PN : PN;
+fun malaise_N : N;
+fun malapropism_N : N;
+fun malapropos_A : A;
+fun malapropos_Adv : Adv;
+fun malaria_N : N;
+fun malarial_A : A;
+fun malawi_PN : PN;
+fun malawian_A : A;
+fun malawian_N : N;
+fun malay_A : A;
+fun malay_N : N;
+fun malaya_PN : PN;
+fun malayan_A : A;
+fun malayan_N : N;
+fun malaysia_PN : PN;
+fun malaysian_A : A;
+fun malaysian_N : N;
+fun malcolm_PN : PN;
+fun malcontent_A : A;
+fun malcontent_N : N;
+fun maldon_PN : PN;
+fun male_A : A;
+fun male_N : N;
+fun malediction_N : N;
+fun malefactor_N : N;
+fun maleficent_A : A;
+fun malevolence_N : N;
+fun malevolent_A : A;
+fun malfeasance_N : N;
+fun malformation_N : N;
+fun malformed_A : A;
+fun malfunction_N : N;
+fun malfunction_V : V;
+fun mali_PN : PN;
+fun malian_A : A;
+fun malian_N : N;
+fun malice_N : N;
+fun malicious_A : A;
+fun malign_A : A;
+fun malign_V2 : V2;
+fun malignancy_N : N;
+fun malignant_A : A;
+fun malignity_N : N;
+fun malinger_V : V;
+fun malingerer_N : N;
+fun mallard_N : N;
+fun malleability_N : N;
+fun malleable_A : A;
+fun mallet_N : N;
+fun mallow_N : N;
+fun mallow_PN : PN;
+fun malmo_PN : PN;
+fun malmsey_N : N;
+fun malnutrition_N : N;
+fun malodorous_A : A;
+fun malpractice_N : N;
+fun malt_N : N;
+fun malt_V : V;
+fun malt_V2 : V2;
+fun malta_PN : PN;
+fun maltby_PN : PN;
+fun maltese_A : A;
+fun maltese_N : N;
+fun malthusian_A : A;
+fun maltreat_V2 : V2;
+fun maltreatment_N : N;
+fun maltster_N : N;
+fun malvern_PN : PN;
+fun malversation_N : N;
+fun mama_N : N;
+fun mamba_N : N;
+fun mamie_PN : PN;
+fun mamma_N : N;
+fun mammal_N : N;
+fun mammon_N : N;
+fun mammoth_N : N;
+fun mammy_N : N;
+fun man_N : N;
+fun man_V2 : V2;
+fun man_at_arms_N : N;
+fun man_eater_N : N;
+fun man_hour_N : N;
+fun man_of_war_N : N;
+fun man_sized_A : A;
+fun manacle_N : N;
+fun manacle_V2 : V2;
+fun manage_V : V;
+fun manage_V2 : V2;
+fun manageability_N : N;
+fun manageable_A : A;
+fun management_N : N;
+fun manager_N : N;
+fun manageress_N : N;
+fun managerial_A : A;
+fun manatee_N : N;
+fun manchester_PN : PN;
+fun mancunian_A : A;
+fun mancunian_N : N;
+fun mandarin_N : N;
+fun mandatary_N : N;
+fun mandate_N : N;
+fun mandate_V2 : V2;
+fun mandatory_A : A;
+fun mandatory_N : N;
+fun mandible_N : N;
+fun mandolin_N : N;
+fun mandragora_N : N;
+fun mandrake_N : N;
+fun mandrill_N : N;
+fun mandy_PN : PN;
+fun mane_N : N;
+fun manful_A : A;
+fun manganese_N : N;
+fun mange_N : N;
+fun mangel_wurzel_N : N;
+fun manger_N : N;
+fun mangily_Adv : Adv;
+fun mangle_N : N;
+fun mangle_V2 : V2;
+fun mango_N : N;
+fun mangosteen_N : N;
+fun mangrove_N : N;
+fun mangy_A : A;
+fun manhandle_V2 : V2;
+fun manhattan_N : N;
+fun manhole_N : N;
+fun manhood_N : N;
+fun mania_N : N;
+fun maniac_N : N;
+fun maniacal_A : A;
+fun manic_depressive_A : A;
+fun manic_depressive_N : N;
+fun manicure_N : N;
+fun manicure_V2 : V2;
+fun manicurist_N : N;
+fun manifest_A : A;
+fun manifest_N : N;
+fun manifest_V2 : V2;
+fun manifestation_N : N;
+fun manifesto_N : N;
+fun manifold_A : A;
+fun manifold_N : N;
+fun manifold_V2 : V2;
+fun manikin_N : N;
+fun manila_PN : PN;
+fun manilla_N : N;
+fun manipulate_V2 : V2;
+fun manipulation_N : N;
+fun manipulative_A : A;
+fun manitoba_PN : PN;
+fun mankind_N : N;
+fun manlike_A : A;
+fun manliness_N : N;
+fun manly_A : A;
+fun manna_N : N;
+fun mannequin_N : N;
+fun manner_N : N;
+fun mannered_A : A;
+fun mannerism_N : N;
+fun mannerly_A : A;
+fun mannheim_PN : PN;
+fun mannish_A : A;
+fun manoeuvrability_N : N;
+fun manoeuvrable_A : A;
+fun manoeuvre_N : N;
+fun manoeuvre_V : V;
+fun manoeuvre_V2 : V2;
+fun manoeuvrer_N : N;
+fun manor_N : N;
+fun manor_house_N : N;
+fun manorial_A : A;
+fun manpower_N : N;
+fun mansard_N : N;
+fun manse_N : N;
+fun manservant_N : N;
+fun mansfield_PN : PN;
+fun mansion_N : N;
+fun manslaughter_N : N;
+fun mantel_N : N;
+fun mantelpiece_N : N;
+fun mantilla_N : N;
+fun mantis_N : N;
+fun mantle_N : N;
+fun mantle_V : V;
+fun mantle_V2 : V2;
+fun mantrap_N : N;
+fun manual_A : A;
+fun manual_N : N;
+fun manufacture_N : N;
+fun manufacture_V2 : V2;
+fun manufacturer_N : N;
+fun manumission_N : N;
+fun manumit_V2 : V2;
+fun manure_N : N;
+fun manure_V2 : V2;
+fun manuscript_N : N;
+fun manx_A : A;
+fun manx_N : N;
+fun many_sided_A : A;
+fun maoism_N : N;
+fun maoist_N : N;
+fun maori_N : N;
+fun map_N : N;
+fun map_V2 : V2;
+fun map_reader_N : N;
+fun maple_N : N;
+fun maple_leaf_N : N;
+fun maquis_N : N;
+fun mar_PN : PN;
+fun mar_V2 : V2;
+fun marabou_N : N;
+fun maracaibo_PN : PN;
+fun maraschino_N : N;
+fun marathon_N : N;
+fun maraud_V : V;
+fun marauder_N : N;
+fun marble_N : N;
+fun marbled_A : A;
+fun marbling_N : N;
+fun march_N : N;
+fun march_PN : PN;
+fun march_V : V;
+fun march_V2 : V2;
+fun marcher_N : N;
+fun marchioness_N : N;
+fun mardi_gras_N : N;
+fun mare_N : N;
+fun margaret_PN : PN;
+fun margarine_N : N;
+fun margate_PN : PN;
+fun marge_N : N;
+fun marge_PN : PN;
+fun margery_PN : PN;
+fun margie_PN : PN;
+fun margin_N : N;
+fun marginal_A : A;
+fun margrave_N : N;
+fun marguerite_N : N;
+fun maria_PN : PN;
+fun marian_PN : PN;
+fun marie_PN : PN;
+fun marigold_N : N;
+fun marihuana_N : N;
+fun marijuana_N : N;
+fun marilyn_PN : PN;
+fun marimba_N : N;
+fun marina_N : N;
+fun marinade_N : N;
+fun marinade_V2 : V2;
+fun marinate_V2 : V2;
+fun marine_A : A;
+fun marine_N : N;
+fun mariner_N : N;
+fun marion_PN : PN;
+fun marionette_N : N;
+fun marital_A : A;
+fun maritime_A : A;
+fun marjoram_N : N;
+fun marjorie_PN : PN;
+fun mark_N : N;
+fun mark_PN : PN;
+fun mark_V2 : V2;
+fun mark_up_N : N;
+fun marked_A : A;
+fun marker_N : N;
+fun market_N : N;
+fun market_V : V;
+fun market_V2 : V2;
+fun market_cross_N : N;
+fun market_day_N : N;
+fun market_drayton_PN : PN;
+fun market_garden_N : N;
+fun market_gardening_N : N;
+fun market_harborough_PN : PN;
+fun market_square_N : N;
+fun market_town_N : N;
+fun marketable_A : A;
+fun marketing_N : N;
+fun marketplace_N : N;
+fun marking_N : N;
+fun marking_ink_N : N;
+fun marking_inks_N : N;
+fun marksman_N : N;
+fun marksmanship_N : N;
+fun marl_N : N;
+fun marlborough_PN : PN;
+fun marlene_PN : PN;
+fun marlinespike_N : N;
+fun marlow_PN : PN;
+fun marmalade_N : N;
+fun marmoreal_A : A;
+fun marmoset_N : N;
+fun marmot_N : N;
+fun marocain_N : N;
+fun maroon_A : A;
+fun maroon_N : N;
+fun maroon_V2 : V2;
+fun marple_PN : PN;
+fun marque_N : N;
+fun marquee_N : N;
+fun marquess_N : N;
+fun marquetry_N : N;
+fun marquis_N : N;
+fun marriage_N : N;
+fun marriageability_N : N;
+fun marriageable_A : A;
+fun married_A : A;
+fun marrow_N : N;
+fun marrowbone_N : N;
+fun marry_V : V;
+fun marry_V2 : V2;
+fun mars_PN : PN;
+fun marsala_N : N;
+fun marseillaise_N : N;
+fun marseilles_PN : PN;
+fun marsh_N : N;
+fun marshal_N : N;
+fun marshal_V2 : V2;
+fun marshalling_yard_N : N;
+fun marshmallow_N : N;
+fun marshy_A : A;
+fun marske_PN : PN;
+fun marsupial_A : A;
+fun marsupial_N : N;
+fun mart_N : N;
+fun marten_N : N;
+fun martha_PN : PN;
+fun martial_A : A;
+fun martian_A : A;
+fun martian_N : N;
+fun martin_N : N;
+fun martin_PN : PN;
+fun martinet_N : N;
+fun martini_N : N;
+fun martyr_N : N;
+fun martyr_V2 : V2;
+fun martyrdom_N : N;
+fun marvel_N : N;
+fun marvel_V : V;
+fun marvellous_A : A;
+fun marvelous_A : A;
+fun marxism_N : N;
+fun marxist_N : N;
+fun mary_PN : PN;
+fun maryland_PN : PN;
+fun maryport_PN : PN;
+fun marzipan_N : N;
+fun masc_PN : PN;
+fun mascara_N : N;
+fun mascot_N : N;
+fun masculine_A : A;
+fun masculinity_N : N;
+fun maser_N : N;
+fun mash_N : N;
+fun mash_V2 : V2;
+fun masher_N : N;
+fun mask_N : N;
+fun mask_V2 : V2;
+fun masochism_N : N;
+fun masochist_N : N;
+fun masochistic_A : A;
+fun masochistically_Adv : Adv;
+fun mason_N : N;
+fun mason_dixon_PN : PN;
+fun masonic_A : A;
+fun masonry_N : N;
+fun masque_N : N;
+fun masquerade_N : N;
+fun masquerade_V : V;
+fun mass_N : N;
+fun mass_V : V;
+fun mass_V2 : V2;
+fun mass_produce_V2 : V2;
+fun massachusetts_PN : PN;
+fun massacre_N : N;
+fun massacre_V2 : V2;
+fun massage_N : N;
+fun massage_V2 : V2;
+fun masseur_N : N;
+fun masseuse_N : N;
+fun massif_N : N;
+fun massive_A : A;
+fun massiveness_N : N;
+fun massy_A : A;
+fun mast_N : N;
+fun master_N : N;
+fun master_V2 : V2;
+fun master_at_arms_N : N;
+fun master_key_N : N;
+fun masterful_A : A;
+fun masterless_A : A;
+fun masterly_A : A;
+fun mastermind_N : N;
+fun mastermind_V2 : V2;
+fun masterpiece_N : N;
+fun mastership_N : N;
+fun masterstroke_N : N;
+fun mastery_N : N;
+fun masthead_N : N;
+fun masticate_V2 : V2;
+fun mastication_N : N;
+fun mastiff_N : N;
+fun mastodon_N : N;
+fun mastoid_N : N;
+fun mastoiditis_N : N;
+fun masturbate_V : V;
+fun masturbate_V2 : V2;
+fun masturbation_N : N;
+fun mat_A : A;
+fun mat_N : N;
+fun mat_V : V;
+fun mat_V2 : V2;
+fun matador_N : N;
+fun match_N : N;
+fun match_V : V;
+fun match_V2 : V2;
+fun match_point_N : N;
+fun matchbox_N : N;
+fun matchet_N : N;
+fun matchless_A : A;
+fun matchlock_N : N;
+fun matchmaker_N : N;
+fun matchwood_N : N;
+fun mate_1_N : N;
+fun mate_V : V;
+fun mate_V2 : V2;
+fun material_A : A;
+fun material_N : N;
+fun materialism_N : N;
+fun materialist_N : N;
+fun materialistic_A : A;
+fun materialistically_Adv : Adv;
+fun materialization_N : N;
+fun materialize_V : V;
+fun maternal_A : A;
+fun maternity_N : N;
+fun matey_A : A;
+fun mathematical_A : A;
+fun mathematician_N : N;
+fun mathematics_N : N;
+fun maths_N : N;
+fun matinee_N : N;
+fun matlock_PN : PN;
+fun matriarch_N : N;
+fun matriarchal_A : A;
+fun matriarchy_N : N;
+fun matric_N : N;
+fun matricide_N : N;
+fun matriculate_V : V;
+fun matriculate_V2 : V2;
+fun matriculation_N : N;
+fun matrimonial_A : A;
+fun matrimony_N : N;
+fun matrix_N : N;
+fun matron_N : N;
+fun matronly_A : A;
+fun matt_A : A;
+fun matt_PN : PN;
+fun matted_A : A;
+fun matter_N : N;
+fun matter_V : V;
+fun matter_of_course_A : A;
+fun matter_of_fact_A : A;
+fun matthew_PN : PN;
+fun matting_N : N;
+fun mattock_N : N;
+fun mattress_N : N;
+fun maturate_V : V;
+fun maturation_N : N;
+fun mature_A : A;
+fun mature_V : V;
+fun mature_V2 : V2;
+fun maturity_N : N;
+fun matutinal_A : A;
+fun mate_2_N : N;
+fun maud_PN : PN;
+fun maudie_PN : PN;
+fun maudlin_A : A;
+fun maul_V2 : V2;
+fun maulstick_N : N;
+fun maunder_V : V;
+fun maundy_thursday_N : N;
+fun maundy_thursday_PN : PN;
+fun maureen_PN : PN;
+fun maurice_PN : PN;
+fun mauritania_PN : PN;
+fun mauritanian_A : A;
+fun mauritanian_N : N;
+fun mauritian_A : A;
+fun mauritian_N : N;
+fun mauritius_PN : PN;
+fun mausoleum_N : N;
+fun mauve_A : A;
+fun mauve_N : N;
+fun maverick_N : N;
+fun mavis_N : N;
+fun mavis_PN : PN;
+fun maw_N : N;
+fun mawkish_A : A;
+fun mawkishness_N : N;
+fun max_N : N;
+fun max_PN : PN;
+fun maxim_N : N;
+fun maximal_A : A;
+fun maximization_N : N;
+fun maximize_V2 : V2;
+fun maximum_A : A;
+fun maximum_N : N;
+fun maxine_PN : PN;
+fun may_N : N;
+fun may_PN : PN;
+fun may_beetle_N : N;
+fun may_bug_N : N;
+fun maybe_Adv : Adv;
+fun mayday_N : N;
+fun mayfair_PN : PN;
+fun mayfield_PN : PN;
+fun mayfly_N : N;
+fun mayhem_N : N;
+fun mayo_PN : PN;
+fun mayonnaise_N : N;
+fun mayor_N : N;
+fun mayoral_A : A;
+fun mayoralty_N : N;
+fun mayoress_N : N;
+fun maypole_N : N;
+fun maze_N : N;
+fun mazed_A : A;
+fun mazurka_N : N;
+fun mb_N : N;
+fun mc_N : N;
+fun mcc_N : N;
+fun mccarthyism_N : N;
+fun md_N : N;
+fun mead_N : N;
+fun meadow_N : N;
+fun meagre_A : A;
+fun meagreness_N : N;
+fun meal_N : N;
+fun mealie_N : N;
+fun mealtime_N : N;
+fun mealy_A : A;
+fun mealy_bug_N : N;
+fun mealy_mouthed_A : A;
+fun mean_A : A;
+fun mean_N : N;
+fun mean_V2 : V2;
+fun meander_V : V;
+fun meanderingly_Adv : Adv;
+fun meanie_N : N;
+fun meaning_A : A;
+fun meaning_N : N;
+fun meaningful_A : A;
+fun meaningless_A : A;
+fun meanness_N : N;
+fun meantime_Adv : Adv;
+fun meantime_N : N;
+fun meanwhile_Adv : Adv;
+fun meany_N : N;
+fun measles_N : N;
+fun measly_A : A;
+fun measurable_A : A;
+fun measure_N : N;
+fun measure_V : V;
+fun measure_V2 : V2;
+fun measured_A : A;
+fun measureless_A : A;
+fun measurement_N : N;
+fun meat_N : N;
+fun meat_safe_N : N;
+fun meatball_N : N;
+fun meath_PN : PN;
+fun meatless_A : A;
+fun meaty_A : A;
+fun mecca_PN : PN;
+fun mechanic_N : N;
+fun mechanical_A : A;
+fun mechanics_N : N;
+fun mechanism_N : N;
+fun mechanistic_A : A;
+fun mechanistically_Adv : Adv;
+fun mechanization_N : N;
+fun mechanize_V2 : V2;
+fun med_N : N;
+fun medal_N : N;
+fun medalist_N : N;
+fun medallion_N : N;
+fun medallist_N : N;
+fun medan_PN : PN;
+fun meddle_V : V;
+fun meddler_N : N;
+fun meddlesome_A : A;
+fun medellin_PN : PN;
+fun mediaeval_A : A;
+fun medial_A : A;
+fun median_A : A;
+fun median_N : N;
+fun mediate_V : V;
+fun mediate_V2 : V2;
+fun mediation_N : N;
+fun mediator_N : N;
+fun medic_N : N;
+fun medical_A : A;
+fun medical_N : N;
+fun medicament_N : N;
+fun medicare_N : N;
+fun medicate_V2 : V2;
+fun medication_N : N;
+fun medicinal_A : A;
+fun medicine_N : N;
+fun medicine_ball_N : N;
+fun medicine_chest_N : N;
+fun medicine_man_N : N;
+fun medico_N : N;
+fun medieval_A : A;
+fun mediocre_A : A;
+fun mediocrity_N : N;
+fun meditate_V : V;
+fun meditate_V2 : V2;
+fun meditation_N : N;
+fun meditative_A : A;
+fun mediterranean_A : A;
+fun medium_A : A;
+fun medium_N : N;
+fun medlar_N : N;
+fun medley_N : N;
+fun meed_N : N;
+fun meek_A : A;
+fun meekness_N : N;
+fun meerschaum_N : N;
+fun meet_A : A;
+fun meet_N : N;
+fun meet_V : V;
+fun meet_V2 : V2;
+fun meeting_N : N;
+fun meeting_house_N : N;
+fun meeting_place_N : N;
+fun meg_PN : PN;
+fun megacycle_N : N;
+fun megadeath_N : N;
+fun megalith_N : N;
+fun megalithic_A : A;
+fun megalomania_N : N;
+fun megalomaniac_N : N;
+fun megaphone_N : N;
+fun megaton_N : N;
+fun megrim_N : N;
+fun meiosis_N : N;
+fun melancholia_N : N;
+fun melancholic_A : A;
+fun melancholy_A : A;
+fun melancholy_N : N;
+fun melbourne_PN : PN;
+fun melcombe_PN : PN;
+fun melcombe_regis_PN : PN;
+fun meliorate_V : V;
+fun meliorate_V2 : V2;
+fun melioration_N : N;
+fun meliorism_N : N;
+fun melksham_PN : PN;
+fun mellifluous_A : A;
+fun mellow_A : A;
+fun mellow_V : V;
+fun mellow_V2 : V2;
+fun mellowness_N : N;
+fun melodic_A : A;
+fun melodious_A : A;
+fun melodiousness_N : N;
+fun melodrama_N : N;
+fun melodramatic_A : A;
+fun melodramatically_Adv : Adv;
+fun melody_N : N;
+fun melon_N : N;
+fun melt_V : V;
+fun melt_V2 : V2;
+fun meltham_PN : PN;
+fun melting_A : A;
+fun melting_point_N : N;
+fun melting_pot_N : N;
+fun melton_mowbray_PN : PN;
+fun member_N : N;
+fun membership_N : N;
+fun membrane_N : N;
+fun membranous_A : A;
+fun memento_N : N;
+fun memo_N : N;
+fun memoir_N : N;
+fun memorable_A : A;
+fun memorandum_N : N;
+fun memorial_N : N;
+fun memorialize_V2 : V2;
+fun memorize_V2 : V2;
+fun memory_N : N;
+fun memphis_PN : PN;
+fun memsahib_N : N;
+fun menace_N : N;
+fun menace_V2 : V2;
+fun menacingly_Adv : Adv;
+fun menagerie_N : N;
+fun mend_N : N;
+fun mend_V : V;
+fun mend_V2 : V2;
+fun mendacious_A : A;
+fun mendacity_N : N;
+fun mendelian_A : A;
+fun mender_N : N;
+fun mendicant_A : A;
+fun mendicant_N : N;
+fun mending_N : N;
+fun menial_A : A;
+fun menial_N : N;
+fun meningitis_N : N;
+fun menopause_N : N;
+fun menstrual_A : A;
+fun menstruate_V : V;
+fun menstruation_N : N;
+fun mensurable_A : A;
+fun mensuration_N : N;
+fun mental_A : A;
+fun mentality_N : N;
+fun menthol_N : N;
+fun mentholated_A : A;
+fun mention_N : N;
+fun mention_V2 : V2;
+fun mentioned_A : A;
+fun mentor_N : N;
+fun menu_N : N;
+fun meopham_PN : PN;
+fun mephistophelian_A : A;
+fun mercantile_A : A;
+fun mercator_PN : PN;
+fun mercenary_A : A;
+fun mercenary_N : N;
+fun mercer_N : N;
+fun mercerize_V2 : V2;
+fun merchandise_N : N;
+fun merchant_N : N;
+fun merchantman_N : N;
+fun merciful_A : A;
+fun merciless_A : A;
+fun mercurial_A : A;
+fun mercury_N : N;
+fun mercury_PN : PN;
+fun mercy_N : N;
+fun mere_A : A;
+fun mere_N : N;
+fun meretricious_A : A;
+fun meretriciousness_N : N;
+fun merge_V : V;
+fun merge_V2 : V2;
+fun merger_N : N;
+fun meridian_N : N;
+fun meridional_A : A;
+fun meringue_N : N;
+fun merino_N : N;
+fun merino_sheep_N : N;
+fun merit_N : N;
+fun merit_V2 : V2;
+fun meritocracy_N : N;
+fun meritocratic_A : A;
+fun meritorious_A : A;
+fun mermaid_N : N;
+fun merman_N : N;
+fun merrily_Adv : Adv;
+fun merriment_N : N;
+fun merry_A : A;
+fun merry_go_round_N : N;
+fun merrymaker_N : N;
+fun merrymaking_N : N;
+fun merthyr_tydfil_PN : PN;
+fun merton_PN : PN;
+fun mescal_N : N;
+fun mescaline_N : N;
+fun meseems_Adv : Adv;
+fun mesh_N : N;
+fun mesh_V : V;
+fun mesh_V2 : V2;
+fun mesmeric_A : A;
+fun mesmerism_N : N;
+fun mesmerist_N : N;
+fun mesmerize_V2 : V2;
+fun meson_N : N;
+fun mess_N : N;
+fun mess_V : V;
+fun mess_V2 : V2;
+fun mess_jacket_N : N;
+fun mess_up_N : N;
+fun message_N : N;
+fun messenger_N : N;
+fun messiah_N : N;
+fun messianic_A : A;
+fun messily_Adv : Adv;
+fun messina_PN : PN;
+fun messiness_N : N;
+fun messmate_N : N;
+fun messuage_N : N;
+fun messy_A : A;
+fun met_PN : PN;
+fun metabolic_A : A;
+fun metabolism_N : N;
+fun metacarpal_A : A;
+fun metacarpal_N : N;
+fun metal_N : N;
+fun metal_V2 : V2;
+fun metallic_A : A;
+fun metallurgical_A : A;
+fun metallurgist_N : N;
+fun metallurgy_N : N;
+fun metalwork_N : N;
+fun metalworker_N : N;
+fun metamorphose_V : V;
+fun metamorphose_V2 : V2;
+fun metamorphosis_N : N;
+fun metaphor_N : N;
+fun metaphorical_A : A;
+fun metaphysical_A : A;
+fun metaphysics_N : N;
+fun metatarsal_A : A;
+fun metatarsal_N : N;
+fun mete_V2 : V2;
+fun meteor_N : N;
+fun meteoric_A : A;
+fun meteorite_N : N;
+fun meteorological_A : A;
+fun meteorologist_N : N;
+fun meteorology_N : N;
+fun meter_N : N;
+fun methane_N : N;
+fun methinks_Adv : Adv;
+fun method_N : N;
+fun methodical_A : A;
+fun methodism_N : N;
+fun methodist_A : A;
+fun methodist_N : N;
+fun methodological_A : A;
+fun methodology_N : N;
+fun methought_Adv : Adv;
+fun methuselah_PN : PN;
+fun methyl_N : N;
+fun methylated_A : A;
+fun meticulous_A : A;
+fun meticulousness_N : N;
+fun metre_N : N;
+fun metric_A : A;
+fun metrical_A : A;
+fun metrication_N : N;
+fun metricize_V2 : V2;
+fun metro_N : N;
+fun metronome_N : N;
+fun metropolis_N : N;
+fun metropolitan_A : A;
+fun metropolitan_N : N;
+fun mettle_N : N;
+fun mettlesome_A : A;
+fun metz_PN : PN;
+fun mew_N : N;
+fun mew_V : V;
+fun mews_N : N;
+fun mexican_A : A;
+fun mexican_N : N;
+fun mexico_PN : PN;
+fun mexico_city_PN : PN;
+fun mezzanine_A : A;
+fun mezzanine_N : N;
+fun mezzo_Adv : Adv;
+fun mezzo_soprano_N : N;
+fun mezzotint_N : N;
+fun mg_N : N;
+fun mgr_PN : PN;
+fun mi5_PN : PN;
+fun mi6_PN : PN;
+fun mi_N : N;
+fun miami_PN : PN;
+fun miaou_N : N;
+fun miaou_V : V;
+fun miaow_N : N;
+fun miaow_V : V;
+fun miasma_N : N;
+fun mica_N : N;
+fun michael_PN : PN;
+fun michaelmas_N : N;
+fun michaelmas_PN : PN;
+fun michelle_PN : PN;
+fun michigan_PN : PN;
+fun mick_PN : PN;
+fun mickey_N : N;
+fun mickey_PN : PN;
+fun mickle_N : N;
+fun micro_organism_N : N;
+fun microbe_N : N;
+fun microbiology_N : N;
+fun microcosm_N : N;
+fun microdot_N : N;
+fun microelectronics_N : N;
+fun microfiche_N : N;
+fun microfilm_N : N;
+fun microfilm_V2 : V2;
+fun micrometer_N : N;
+fun micron_N : N;
+fun microphone_N : N;
+fun microscope_N : N;
+fun microscopic_A : A;
+fun microscopical_A : A;
+fun microscopy_N : N;
+fun microwave_N : N;
+fun mid_A : A;
+fun mid_off_N : N;
+fun mid_on_N : N;
+fun midday_N : N;
+fun midden_N : N;
+fun middle_N : N;
+fun middle_aged_A : A;
+fun middle_class_A : A;
+fun middle_distance_A : A;
+fun middle_of_the_road_A : A;
+fun middleman_N : N;
+fun middlesex_PN : PN;
+fun middleton_PN : PN;
+fun middleweight_A : A;
+fun middleweight_N : N;
+fun middlewich_PN : PN;
+fun middling_A : A;
+fun middling_Adv : Adv;
+fun middling_N : N;
+fun middy_N : N;
+fun midfield_N : N;
+fun midge_N : N;
+fun midget_N : N;
+fun midinette_N : N;
+fun midland_N : N;
+fun midlands_PN : PN;
+fun midmost_A : A;
+fun midmost_Adv : Adv;
+fun midnight_N : N;
+fun midriff_N : N;
+fun midshipman_N : N;
+fun midships_Adv : Adv;
+fun midst_N : N;
+fun midstream_N : N;
+fun midsummer_N : N;
+fun midway_A : A;
+fun midway_Adv : Adv;
+fun midweek_A : A;
+fun midweek_Adv : Adv;
+fun midwest_PN : PN;
+fun midwestern_A : A;
+fun midwife_N : N;
+fun midwifery_N : N;
+fun mien_N : N;
+fun might_N : N;
+fun might_have_been_N : N;
+fun mightily_Adv : Adv;
+fun mighty_A : A;
+fun mighty_Adv : Adv;
+fun mignonette_N : N;
+fun migraine_N : N;
+fun migrant_N : N;
+fun migrate_V : V;
+fun migration_N : N;
+fun migratory_A : A;
+fun mikado_N : N;
+fun mike_N : N;
+fun mike_PN : PN;
+fun milady_N : N;
+fun milage_N : N;
+fun milan_PN : PN;
+fun milano_PN : PN;
+fun milch_A : A;
+fun mild_A : A;
+fun mildenhall_PN : PN;
+fun mildew_N : N;
+fun mildew_V : V;
+fun mildew_V2 : V2;
+fun mildness_N : N;
+fun mildred_PN : PN;
+fun mile_N : N;
+fun mileage_N : N;
+fun mileometer_N : N;
+fun miler_N : N;
+fun miles_PN : PN;
+fun milestone_N : N;
+fun milford_PN : PN;
+fun milford_haven_PN : PN;
+fun milieu_N : N;
+fun militancy_N : N;
+fun militant_A : A;
+fun militant_N : N;
+fun militarism_N : N;
+fun militarist_N : N;
+fun militaristic_A : A;
+fun military_A : A;
+fun military_N : N;
+fun militate_V : V;
+fun militia_N : N;
+fun militiaman_N : N;
+fun milk_N : N;
+fun milk_V : V;
+fun milk_V2 : V2;
+fun milk_churn_N : N;
+fun milk_powder_N : N;
+fun milk_shake_N : N;
+fun milk_tooth_N : N;
+fun milk_white_A : A;
+fun milkbar_N : N;
+fun milking_machine_N : N;
+fun milkmaid_N : N;
+fun milkman_N : N;
+fun milkshake_N : N;
+fun milksop_N : N;
+fun milkweed_N : N;
+fun milky_A : A;
+fun mill_N : N;
+fun mill_V : V;
+fun mill_V2 : V2;
+fun mill_dam_N : N;
+fun mill_girl_N : N;
+fun mill_hand_N : N;
+fun millboard_N : N;
+fun millenarian_N : N;
+fun millennial_A : A;
+fun millennium_N : N;
+fun millepede_N : N;
+fun miller_N : N;
+fun millet_N : N;
+fun milliard_N : N;
+fun millibar_N : N;
+fun millicent_PN : PN;
+fun millie_PN : PN;
+fun milligram_N : N;
+fun millimetre_N : N;
+fun milliner_N : N;
+fun millinery_N : N;
+fun millionaire_N : N;
+fun millionairess_N : N;
+fun millionfold_Adv : Adv;
+fun millionth_A : A;
+fun millionth_N : N;
+fun millipede_N : N;
+fun millom_PN : PN;
+fun millpond_N : N;
+fun millrace_N : N;
+fun millstone_N : N;
+fun millwheel_N : N;
+fun millwright_N : N;
+fun milly_PN : PN;
+fun milngavie_PN : PN;
+fun milnrow_PN : PN;
+fun milometer_N : N;
+fun milord_N : N;
+fun milt_N : N;
+fun milton_keynes_PN : PN;
+fun milwaukee_PN : PN;
+fun mime_N : N;
+fun mime_V : V;
+fun mime_V2 : V2;
+fun mimeograph_N : N;
+fun mimeograph_V2 : V2;
+fun mimetic_A : A;
+fun mimic_A : A;
+fun mimic_N : N;
+fun mimic_V2 : V2;
+fun mimicry_N : N;
+fun mimosa_N : N;
+fun min_N : N;
+fun minaret_N : N;
+fun minatory_A : A;
+fun mince_N : N;
+fun mince_V : V;
+fun mince_V2 : V2;
+fun mince_pie_N : N;
+fun mincemeat_N : N;
+fun mincer_N : N;
+fun mincing_A : A;
+fun mind_N : N;
+fun mind_V : V;
+fun mind_V2 : V2;
+fun mind_bending_A : A;
+fun mind_blowing_A : A;
+fun mind_boggling_A : A;
+fun mind_reader_N : N;
+fun minded_A : A;
+fun minder_N : N;
+fun mindful_A : A;
+fun mindfulness_N : N;
+fun mindless_A : A;
+fun mindlessness_N : N;
+fun mine_A : A;
+fun mine_N : N;
+fun mine_V : V;
+fun mine_V2 : V2;
+fun mine_detector_N : N;
+fun mine_disposal_N : N;
+fun minefield_N : N;
+fun minehead_PN : PN;
+fun minelayer_N : N;
+fun minelaying_N : N;
+fun miner_N : N;
+fun mineral_A : A;
+fun mineral_N : N;
+fun mineralogist_N : N;
+fun mineralogy_N : N;
+fun minestrone_N : N;
+fun minesweeper_N : N;
+fun minesweeping_N : N;
+fun mineworker_N : N;
+fun mingle_V : V;
+fun mingle_V2 : V2;
+fun mingy_A : A;
+fun miniature_N : N;
+fun miniaturist_N : N;
+fun miniaturization_N : N;
+fun miniaturize_V2 : V2;
+fun minim_N : N;
+fun minimal_A : A;
+fun minimize_V2 : V2;
+fun minimum_A : A;
+fun minimum_N : N;
+fun mining_N : N;
+fun minion_N : N;
+fun minister_N : N;
+fun minister_V : V;
+fun ministerial_A : A;
+fun ministrant_A : A;
+fun ministrant_N : N;
+fun ministration_N : N;
+fun ministry_N : N;
+fun miniver_N : N;
+fun mink_N : N;
+fun minneapolis_PN : PN;
+fun minnesota_PN : PN;
+fun minnow_N : N;
+fun minor_A : A;
+fun minor_N : N;
+fun minority_N : N;
+fun minotaur_N : N;
+fun minsk_PN : PN;
+fun minster_N : N;
+fun minster_in_sheppey_PN : PN;
+fun minstrel_N : N;
+fun minstrelsy_N : N;
+fun mint_N : N;
+fun mint_V2 : V2;
+fun minuet_N : N;
+fun minus_A : A;
+fun minus_N : N;
+fun minuscule_A : A;
+fun minute_A : A;
+fun minute_N : N;
+fun minute_V2 : V2;
+fun minute_book_N : N;
+fun minute_gun_N : N;
+fun minute_hand_N : N;
+fun minuteman_N : N;
+fun minuteness_N : N;
+fun minx_N : N;
+fun miracle_N : N;
+fun miraculous_A : A;
+fun mirage_N : N;
+fun miranda_PN : PN;
+fun mire_N : N;
+fun mire_V : V;
+fun mire_V2 : V2;
+fun miriam_PN : PN;
+fun mirror_N : N;
+fun mirror_V2 : V2;
+fun mirth_N : N;
+fun mirthful_A : A;
+fun mirthless_A : A;
+fun miry_A : A;
+fun misadventure_N : N;
+fun misadvise_V2 : V2;
+fun misalliance_N : N;
+fun misanthrope_N : N;
+fun misanthropic_A : A;
+fun misanthropy_N : N;
+fun misapplication_N : N;
+fun misapply_V2 : V2;
+fun misapprehend_V2 : V2;
+fun misapprehension_N : N;
+fun misappropriate_V2 : V2;
+fun misappropriation_N : N;
+fun misbegotten_A : A;
+fun misbehave_V : V;
+fun misbehave_V2 : V2;
+fun misbehaviour_N : N;
+fun misc_PN : PN;
+fun miscalculate_V : V;
+fun miscalculate_V2 : V2;
+fun miscalculation_N : N;
+fun miscall_V2 : V2;
+fun miscarriage_N : N;
+fun miscarry_V2 : V2;
+fun miscast_V2 : V2;
+fun miscegenation_N : N;
+fun miscellaneous_A : A;
+fun miscellany_N : N;
+fun mischance_N : N;
+fun mischief_N : N;
+fun mischief_maker_N : N;
+fun mischief_making_N : N;
+fun mischievous_A : A;
+fun mischievousness_N : N;
+fun misconceive_V : V;
+fun misconceive_V2 : V2;
+fun misconception_N : N;
+fun misconduct_N : N;
+fun misconduct_V2 : V2;
+fun misconstruction_N : N;
+fun misconstrue_V2 : V2;
+fun miscount_N : N;
+fun miscount_V : V;
+fun miscount_V2 : V2;
+fun miscreant_N : N;
+fun misdate_V2 : V2;
+fun misdeal_N : N;
+fun misdeal_V : V;
+fun misdeal_V2 : V2;
+fun misdeed_N : N;
+fun misdemeanour_N : N;
+fun misdirect_V2 : V2;
+fun misdirection_N : N;
+fun misdoing_N : N;
+fun mise_en_scene_N : N;
+fun miser_N : N;
+fun miserable_A : A;
+fun miserliness_N : N;
+fun miserly_A : A;
+fun misery_N : N;
+fun misfire_N : N;
+fun misfire_V : V;
+fun misfit_N : N;
+fun misfortune_N : N;
+fun misgive_V2 : V2;
+fun misgiving_N : N;
+fun misgovern_V2 : V2;
+fun misgovernment_N : N;
+fun misguide_V2 : V2;
+fun misguided_A : A;
+fun mishandle_V2 : V2;
+fun mishap_N : N;
+fun mishmash_N : N;
+fun misinform_V2 : V2;
+fun misinformation_N : N;
+fun misinterpret_V2 : V2;
+fun misinterpretation_N : N;
+fun misjudge_V : V;
+fun misjudge_V2 : V2;
+fun mislay_V2 : V2;
+fun mislead_V2 : V2;
+fun mismanage_V2 : V2;
+fun mismanagement_N : N;
+fun misname_V2 : V2;
+fun misnomer_N : N;
+fun misogynist_N : N;
+fun misplace_V2 : V2;
+fun misprint_N : N;
+fun misprint_V2 : V2;
+fun mispronounce_V2 : V2;
+fun mispronunciation_N : N;
+fun misquotation_N : N;
+fun misquote_V2 : V2;
+fun misread_V2 : V2;
+fun misrepresent_V2 : V2;
+fun misrepresentation_N : N;
+fun misrule_N : N;
+fun miss_N : N;
+fun miss_V : V;
+fun miss_V2 : V2;
+fun missal_N : N;
+fun misshapen_A : A;
+fun missile_N : N;
+fun missing_A : A;
+fun mission_N : N;
+fun missionary_N : N;
+fun missis_N : N;
+fun mississippi_PN : PN;
+fun missive_N : N;
+fun missouri_PN : PN;
+fun misspell_V2 : V2;
+fun misspelling_N : N;
+fun misspend_V2 : V2;
+fun misstate_V2 : V2;
+fun misstatement_N : N;
+fun missus_N : N;
+fun missy_N : N;
+fun mist_N : N;
+fun mist_V : V;
+fun mist_V2 : V2;
+fun mistake_N : N;
+fun mistake_V : V;
+fun mistake_V2 : V2;
+fun mistaken_A : A;
+fun mister_N : N;
+fun mistily_Adv : Adv;
+fun mistime_V2 : V2;
+fun mistiness_N : N;
+fun mistletoe_N : N;
+fun mistral_N : N;
+fun mistranslate_V2 : V2;
+fun mistranslation_N : N;
+fun mistress_N : N;
+fun mistrial_N : N;
+fun mistrust_N : N;
+fun mistrust_V2 : V2;
+fun mistrustful_A : A;
+fun misty_A : A;
+fun misunderstand_V2 : V2;
+fun misunderstanding_N : N;
+fun misuse_N : N;
+fun misuse_V2 : V2;
+fun mite_N : N;
+fun mitigate_V2 : V2;
+fun mitigation_N : N;
+fun mitre_N : N;
+fun mitre_joint_N : N;
+fun mitt_N : N;
+fun mitten_N : N;
+fun mix_N : N;
+fun mix_V : V;
+fun mix_V2 : V2;
+fun mix_up_N : N;
+fun mixed_A : A;
+fun mixed_up_A : A;
+fun mixer_N : N;
+fun mixture_N : N;
+fun mizen_N : N;
+fun mizzen_N : N;
+fun mizzen_mast_N : N;
+fun mizzle_V : V;
+fun ml_N : N;
+fun mlle_PN : PN;
+fun mm_N : N;
+fun mme_PN : PN;
+fun mnemonic_A : A;
+fun mnemonics_N : N;
+fun mo_N : N;
+fun mo_PN : PN;
+fun moan_N : N;
+fun moan_V : V;
+fun moan_V2 : V2;
+fun moat_N : N;
+fun moated_A : A;
+fun mob_N : N;
+fun mob_V2 : V2;
+fun mobcap_N : N;
+fun mobile_A : A;
+fun mobile_N : N;
+fun mobility_N : N;
+fun mobilization_N : N;
+fun mobilize_V : V;
+fun mobilize_V2 : V2;
+fun mobster_N : N;
+fun moccasin_N : N;
+fun mocha_N : N;
+fun mock_A : A;
+fun mock_N : N;
+fun mock_V : V;
+fun mock_V2 : V2;
+fun mock_up_N : N;
+fun mocker_N : N;
+fun mockery_N : N;
+fun mockingly_Adv : Adv;
+fun mod_A : A;
+fun mod_N : N;
+fun mod_cons_N : N;
+fun modal_A : A;
+fun modality_N : N;
+fun mode_N : N;
+fun model_N : N;
+fun model_V : V;
+fun model_V2 : V2;
+fun modeler_N : N;
+fun modeller_N : N;
+fun modelling_N : N;
+fun modena_PN : PN;
+fun moderate_A : A;
+fun moderate_N : N;
+fun moderate_V : V;
+fun moderate_V2 : V2;
+fun moderation_N : N;
+fun moderator_N : N;
+fun modern_A : A;
+fun modern_N : N;
+fun modernism_N : N;
+fun modernist_N : N;
+fun modernistic_A : A;
+fun modernity_N : N;
+fun modernization_N : N;
+fun modernize_V2 : V2;
+fun modest_A : A;
+fun modesty_N : N;
+fun modicum_N : N;
+fun modification_N : N;
+fun modifier_N : N;
+fun modify_V2 : V2;
+fun modish_A : A;
+fun modiste_N : N;
+fun modular_A : A;
+fun modulate_V : V;
+fun modulate_V2 : V2;
+fun modulation_N : N;
+fun module_N : N;
+fun modus_operandi_N : N;
+fun modus_vivendi_N : N;
+fun mogul_N : N;
+fun mohair_N : N;
+fun mohammedan_N : N;
+fun moiety_N : N;
+fun moil_V : V;
+fun moira_PN : PN;
+fun moist_A : A;
+fun moisten_V : V;
+fun moisten_V2 : V2;
+fun moisture_N : N;
+fun moke_N : N;
+fun molar_A : A;
+fun molar_N : N;
+fun molasses_N : N;
+fun mold_PN : PN;
+fun moldy_A : A;
+fun mole_N : N;
+fun molecular_A : A;
+fun molecule_N : N;
+fun molehill_N : N;
+fun moleskin_N : N;
+fun molest_V2 : V2;
+fun molestation_N : N;
+fun moll_N : N;
+fun mollification_N : N;
+fun mollify_V2 : V2;
+fun mollusc_N : N;
+fun molly_PN : PN;
+fun mollycoddle_N : N;
+fun mollycoddle_V2 : V2;
+fun moloch_PN : PN;
+fun molto_Adv : Adv;
+fun molybdenum_N : N;
+fun moment_N : N;
+fun momentary_A : A;
+fun momentous_A : A;
+fun momentousness_N : N;
+fun momentum_N : N;
+fun mon_PN : PN;
+fun monaco_PN : PN;
+fun monaghan_PN : PN;
+fun monarch_N : N;
+fun monarchic_A : A;
+fun monarchism_N : N;
+fun monarchist_N : N;
+fun monarchy_N : N;
+fun monastery_N : N;
+fun monastic_A : A;
+fun monasticism_N : N;
+fun monaural_A : A;
+fun monchengladbach_PN : PN;
+fun monday_N : N;
+fun monday_PN : PN;
+fun monegasque_A : A;
+fun monegasque_N : N;
+fun monetary_A : A;
+fun monetize_V2 : V2;
+fun money_N : N;
+fun money_grubber_N : N;
+fun money_order_N : N;
+fun money_spinner_N : N;
+fun moneybox_N : N;
+fun moneychanger_N : N;
+fun moneyed_A : A;
+fun moneylender_N : N;
+fun moneyless_A : A;
+fun monger_N : N;
+fun mongol_A : A;
+fun mongol_N : N;
+fun mongolia_PN : PN;
+fun mongolian_A : A;
+fun mongolian_N : N;
+fun mongolism_N : N;
+fun mongoose_N : N;
+fun mongrel_A : A;
+fun mongrel_N : N;
+fun monica_PN : PN;
+fun monifieth_PN : PN;
+fun monitor_N : N;
+fun monitor_V : V;
+fun monitor_V2 : V2;
+fun monk_N : N;
+fun monkey_N : N;
+fun monkey_V : V;
+fun monkey_jacket_N : N;
+fun monkey_nut_N : N;
+fun monkey_puzzle_N : N;
+fun monkey_wrench_N : N;
+fun monkish_A : A;
+fun monmouth_PN : PN;
+fun mono_A : A;
+fun monochrome_A : A;
+fun monochrome_N : N;
+fun monocle_N : N;
+fun monocled_A : A;
+fun monogamist_N : N;
+fun monogamous_A : A;
+fun monogamy_N : N;
+fun monogram_N : N;
+fun monograph_N : N;
+fun monolith_N : N;
+fun monolithic_A : A;
+fun monologue_N : N;
+fun monomania_N : N;
+fun monomaniac_N : N;
+fun monoplane_N : N;
+fun monopolist_N : N;
+fun monopolistic_A : A;
+fun monopolization_N : N;
+fun monopolize_V2 : V2;
+fun monopoly_N : N;
+fun monorail_N : N;
+fun monosyllabic_A : A;
+fun monosyllable_N : N;
+fun monotheism_N : N;
+fun monotheist_N : N;
+fun monotheistic_A : A;
+fun monotone_N : N;
+fun monotonous_A : A;
+fun monotony_N : N;
+fun monotype_N : N;
+fun monoxide_N : N;
+fun monsieur_N : N;
+fun monsignor_N : N;
+fun monsoon_N : N;
+fun monster_N : N;
+fun monstrance_N : N;
+fun monstrosity_N : N;
+fun monstrous_A : A;
+fun montage_N : N;
+fun montana_PN : PN;
+fun monterrey_PN : PN;
+fun montevideo_PN : PN;
+fun month_N : N;
+fun monthly_A : A;
+fun monthly_Adv : Adv;
+fun monthly_N : N;
+fun montreal_PN : PN;
+fun montrose_PN : PN;
+fun montserrat_PN : PN;
+fun montserratian_A : A;
+fun montserratian_N : N;
+fun monument_N : N;
+fun monumental_A : A;
+fun monza_PN : PN;
+fun moo_N : N;
+fun moo_V : V;
+fun moo_cow_N : N;
+fun mooch_V : V;
+fun mood_N : N;
+fun moodily_Adv : Adv;
+fun moodiness_N : N;
+fun moody_A : A;
+fun moon_N : N;
+fun moon_V : V;
+fun moon_V2 : V2;
+fun moonbeam_N : N;
+fun moonflower_N : N;
+fun moonless_A : A;
+fun moonlight_N : N;
+fun moonlit_A : A;
+fun moonshine_N : N;
+fun moonstone_N : N;
+fun moonstruck_A : A;
+fun moony_A : A;
+fun moor_N : N;
+fun moor_V2 : V2;
+fun moorcock_N : N;
+fun moorfowl_N : N;
+fun moorgame_N : N;
+fun moorhen_N : N;
+fun mooring_mast_N : N;
+fun moorish_A : A;
+fun moorland_N : N;
+fun moose_N : N;
+fun moot_A : A;
+fun moot_V2 : V2;
+fun mop_N : N;
+fun mop_V : V;
+fun mop_V2 : V2;
+fun mope_N : N;
+fun mope_V : V;
+fun moped_N : N;
+fun moquette_N : N;
+fun moraine_N : N;
+fun moral_A : A;
+fun moral_N : N;
+fun morale_N : N;
+fun moralist_N : N;
+fun moralistic_A : A;
+fun morality_N : N;
+fun moralize_V : V;
+fun moralize_V2 : V2;
+fun morass_N : N;
+fun moratorium_N : N;
+fun morbid_A : A;
+fun morbidity_N : N;
+fun morbidness_N : N;
+fun mordant_A : A;
+fun more_Adv : Adv;
+fun more_N : N;
+fun morecambe_PN : PN;
+fun morello_N : N;
+fun moreover_Adv : Adv;
+fun moresque_A : A;
+fun morganatic_A : A;
+fun morgue_N : N;
+fun moribund_A : A;
+fun morley_PN : PN;
+fun mormon_A : A;
+fun mormon_N : N;
+fun mormonism_N : N;
+fun morn_N : N;
+fun morning_N : N;
+fun morning_glory_N : N;
+fun morning_room_N : N;
+fun moroccan_A : A;
+fun moroccan_N : N;
+fun morocco_N : N;
+fun morocco_PN : PN;
+fun moron_N : N;
+fun moronic_A : A;
+fun morose_A : A;
+fun moroseness_N : N;
+fun morpeth_PN : PN;
+fun morpheme_N : N;
+fun morphemic_A : A;
+fun morpheus_PN : PN;
+fun morphia_N : N;
+fun morphine_N : N;
+fun morphological_A : A;
+fun morphology_N : N;
+fun morris_dance_N : N;
+fun morrow_N : N;
+fun morse_N : N;
+fun morsel_N : N;
+fun mortal_A : A;
+fun mortal_N : N;
+fun mortality_N : N;
+fun mortar_N : N;
+fun mortar_V2 : V2;
+fun mortarboard_N : N;
+fun mortgage_N : N;
+fun mortgage_V2 : V2;
+fun mortgagee_N : N;
+fun mortgagor_N : N;
+fun mortice_N : N;
+fun mortice_V2 : V2;
+fun mortician_N : N;
+fun mortification_N : N;
+fun mortify_V : V;
+fun mortify_V2 : V2;
+fun mortise_N : N;
+fun mortise_V2 : V2;
+fun mortuary_N : N;
+fun mosaic_A : A;
+fun mosaic_N : N;
+fun moscow_PN : PN;
+fun moselle_N : N;
+fun mosey_V : V;
+fun moslem_A : A;
+fun moslem_N : N;
+fun mosque_N : N;
+fun mosquito_N : N;
+fun mosquito_craft_N : N;
+fun mosquito_net_N : N;
+fun moss_N : N;
+fun moss_grown_A : A;
+fun mossley_PN : PN;
+fun mossy_A : A;
+fun mostly_Adv : Adv;
+fun mote_N : N;
+fun motel_N : N;
+fun moth_N : N;
+fun moth_eaten_A : A;
+fun mothball_N : N;
+fun mother_N : N;
+fun mother_V2 : V2;
+fun mother_in_law_N : N;
+fun mother_of_pearl_N : N;
+fun motherhood_N : N;
+fun motherland_N : N;
+fun motherless_A : A;
+fun motherlike_A : A;
+fun motherliness_N : N;
+fun motherly_A : A;
+fun motherwell_PN : PN;
+fun mothproof_A : A;
+fun mothproof_V2 : V2;
+fun motif_N : N;
+fun motion_N : N;
+fun motion_V : V;
+fun motion_V2 : V2;
+fun motionless_A : A;
+fun motivate_V2 : V2;
+fun motivation_N : N;
+fun motive_A : A;
+fun motive_N : N;
+fun motiveless_A : A;
+fun motley_A : A;
+fun motley_N : N;
+fun motor_N : N;
+fun motor_V : V;
+fun motor_assisted_A : A;
+fun motorbike_N : N;
+fun motorboat_N : N;
+fun motorcade_N : N;
+fun motorcar_N : N;
+fun motorcoach_N : N;
+fun motorcycle_N : N;
+fun motorist_N : N;
+fun motorize_V2 : V2;
+fun motorman_N : N;
+fun motorway_N : N;
+fun mottle_V2 : V2;
+fun motto_N : N;
+fun moujik_N : N;
+fun mould_N : N;
+fun mould_V : V;
+fun mould_V2 : V2;
+fun moulder_V : V;
+fun moulding_N : N;
+fun mouldy_A : A;
+fun moult_N : N;
+fun moult_V : V;
+fun moult_V2 : V2;
+fun mound_N : N;
+fun mount_N : N;
+fun mount_V : V;
+fun mount_V2 : V2;
+fun mountain_N : N;
+fun mountain_ash_PN : PN;
+fun mountaineer_N : N;
+fun mountaineering_N : N;
+fun mountainous_A : A;
+fun mountebank_N : N;
+fun mountie_N : N;
+fun mourn_V : V;
+fun mourn_V2 : V2;
+fun mourner_N : N;
+fun mournful_A : A;
+fun mourning_N : N;
+fun mourning_band_N : N;
+fun mourning_ring_N : N;
+fun mouse_N : N;
+fun mouse_V : V;
+fun mouser_N : N;
+fun mousetrap_N : N;
+fun mousse_N : N;
+fun moustache_N : N;
+fun mousy_A : A;
+fun mouth_N : N;
+fun mouth_V : V;
+fun mouth_V2 : V2;
+fun mouth_organ_N : N;
+fun mouth_watering_A : A;
+fun mouthful_N : N;
+fun mouthpiece_N : N;
+fun movable_A : A;
+fun move_N : N;
+fun move_V : V;
+fun move_V2 : V2;
+fun movement_N : N;
+fun mover_N : N;
+fun movie_N : N;
+fun mow_N : N;
+fun mow_V : V;
+fun mow_V2 : V2;
+fun mower_N : N;
+fun mozambican_A : A;
+fun mozambican_N : N;
+fun mozambique_PN : PN;
+fun mp's_N : N;
+fun mp_N : N;
+fun mpg_N : N;
+fun mph_N : N;
+fun mr_PN : PN;
+fun mrs_PN : PN;
+fun ms_N : N;
+fun ms_PN : PN;
+fun msc_N : N;
+fun mt_PN : PN;
+fun much_A : A;
+fun much_Adv : Adv;
+fun much_N : N;
+fun muchness_N : N;
+fun mucilage_N : N;
+fun muck_N : N;
+fun muck_V : V;
+fun muck_V2 : V2;
+fun muck_heap_N : N;
+fun muckle_N : N;
+fun muckraker_N : N;
+fun muckraking_N : N;
+fun mucky_A : A;
+fun mucous_A : A;
+fun mucus_N : N;
+fun mud_N : N;
+fun mud_V2 : V2;
+fun mud_bath_N : N;
+fun muddle_N : N;
+fun muddle_V : V;
+fun muddle_V2 : V2;
+fun muddle_headed_A : A;
+fun muddy_A : A;
+fun muddy_V2 : V2;
+fun mudguard_N : N;
+fun mudslinger_N : N;
+fun muesli_N : N;
+fun muezzin_N : N;
+fun muff_N : N;
+fun muff_V2 : V2;
+fun muffin_N : N;
+fun muffin_man_N : N;
+fun muffle_V2 : V2;
+fun muffler_N : N;
+fun mufti_N : N;
+fun mug_N : N;
+fun mug_V2 : V2;
+fun mugger_N : N;
+fun mugginess_N : N;
+fun mugging_N : N;
+fun muggins_N : N;
+fun muggy_A : A;
+fun mugwump_N : N;
+fun muhammad_PN : PN;
+fun muhammadan_A : A;
+fun muhammadan_N : N;
+fun muhammadanism_N : N;
+fun mukden_PN : PN;
+fun mulatto_N : N;
+fun mulberry_N : N;
+fun mulch_N : N;
+fun mulch_V2 : V2;
+fun mulct_V2 : V2;
+fun mule_N : N;
+fun muleteer_N : N;
+fun mulheim_PN : PN;
+fun mulhouse_PN : PN;
+fun mulish_A : A;
+fun mulishness_N : N;
+fun mull_N : N;
+fun mull_V2 : V2;
+fun mullah_N : N;
+fun mullein_N : N;
+fun mullet_N : N;
+fun mulligatawny_N : N;
+fun mullion_N : N;
+fun mullioned_A : A;
+fun multan_PN : PN;
+fun multi_lingual_A : A;
+fun multifarious_A : A;
+fun multiform_A : A;
+fun multilateral_A : A;
+fun multiple_A : A;
+fun multiple_N : N;
+fun multiplex_A : A;
+fun multiplication_N : N;
+fun multiplicity_N : N;
+fun multiply_V : V;
+fun multiply_V2 : V2;
+fun multitude_N : N;
+fun multitudinous_A : A;
+fun multum_in_parvo_N : N;
+fun mum_A : A;
+fun mum_N : N;
+fun mumble_V : V;
+fun mumble_V2 : V2;
+fun mumbo_jumbo_N : N;
+fun mummer_N : N;
+fun mummery_N : N;
+fun mummification_N : N;
+fun mummify_V2 : V2;
+fun mummy_N : N;
+fun mumps_N : N;
+fun munch_V : V;
+fun munch_V2 : V2;
+fun mundane_A : A;
+fun munich_PN : PN;
+fun municipal_A : A;
+fun municipality_N : N;
+fun munificence_N : N;
+fun munificent_A : A;
+fun munition_N : N;
+fun munition_V2 : V2;
+fun munster_PN : PN;
+fun mural_A : A;
+fun mural_N : N;
+fun murder_N : N;
+fun murder_V2 : V2;
+fun murderer_N : N;
+fun murderess_N : N;
+fun murderous_A : A;
+fun muriel_PN : PN;
+fun murk_N : N;
+fun murkily_Adv : Adv;
+fun murky_A : A;
+fun murmur_N : N;
+fun murmur_V : V;
+fun murmur_V2 : V2;
+fun murphy_N : N;
+fun murrain_N : N;
+fun murton_PN : PN;
+fun muscatel_N : N;
+fun muscle_N : N;
+fun muscle_V : V;
+fun muscle_bound_A : A;
+fun muscleman_N : N;
+fun muscovite_A : A;
+fun muscovite_N : N;
+fun muscovy_N : N;
+fun muscular_A : A;
+fun muse_N : N;
+fun muse_V : V;
+fun museum_N : N;
+fun mush_N : N;
+fun mushroom_N : N;
+fun mushroom_V : V;
+fun mushy_A : A;
+fun music_N : N;
+fun music_box_N : N;
+fun music_hall_N : N;
+fun music_stand_N : N;
+fun music_stool_N : N;
+fun musical_A : A;
+fun musical_N : N;
+fun musical_box_N : N;
+fun musician_N : N;
+fun musicianship_N : N;
+fun musingly_Adv : Adv;
+fun musk_N : N;
+fun musk_deer_N : N;
+fun musk_rose_N : N;
+fun musket_N : N;
+fun musketeer_N : N;
+fun musketry_N : N;
+fun muskrat_N : N;
+fun musky_A : A;
+fun muslim_N : N;
+fun muslin_N : N;
+fun musquash_N : N;
+fun muss_N : N;
+fun muss_V2 : V2;
+fun mussel_N : N;
+fun musselburgh_PN : PN;
+fun must_N : N;
+fun mustachio_N : N;
+fun mustang_N : N;
+fun mustard_N : N;
+fun muster_N : N;
+fun muster_V : V;
+fun muster_V2 : V2;
+fun mustiness_N : N;
+fun musty_A : A;
+fun mutability_N : N;
+fun mutable_A : A;
+fun mutation_N : N;
+fun mutatis_mutandis_Adv : Adv;
+fun mute_A : A;
+fun mute_N : N;
+fun mute_V2 : V2;
+fun mutilate_V2 : V2;
+fun mutilation_N : N;
+fun mutineer_N : N;
+fun mutinous_A : A;
+fun mutiny_N : N;
+fun mutiny_V : V;
+fun mutt_N : N;
+fun mutter_N : N;
+fun mutter_V : V;
+fun mutter_V2 : V2;
+fun mutterer_N : N;
+fun mutton_N : N;
+fun mutton_head_N : N;
+fun mutual_A : A;
+fun muzzle_N : N;
+fun muzzle_V2 : V2;
+fun muzzle_velocity_N : N;
+fun muzzy_A : A;
+fun mycology_N : N;
+fun myelitis_N : N;
+fun myna_N : N;
+fun mynah_N : N;
+fun myopia_N : N;
+fun myopic_A : A;
+fun myra_PN : PN;
+fun myriad_A : A;
+fun myriad_N : N;
+fun myrmidon_N : N;
+fun myrrh_N : N;
+fun myrtle_N : N;
+fun mysterious_A : A;
+fun mystery_N : N;
+fun mystic_A : A;
+fun mystic_N : N;
+fun mystical_A : A;
+fun mysticism_N : N;
+fun mystification_N : N;
+fun mystify_V2 : V2;
+fun mystique_N : N;
+fun myth_N : N;
+fun mythical_A : A;
+fun mythological_A : A;
+fun mythologist_N : N;
+fun mythology_N : N;
+fun myxomatosis_N : N;
+fun melange_N : N;
+fun menage_N : N;
+fun mesalliance_N : N;
+fun metier_N : N;
+fun melee_N : N;
+fun naafi_N : N;
+fun nab_V2 : V2;
+fun nabob_N : N;
+fun nacelle_N : N;
+fun nacre_N : N;
+fun nadir_N : N;
+fun nag_N : N;
+fun nag_V : V;
+fun nag_V2 : V2;
+fun nagger_N : N;
+fun nagoya_PN : PN;
+fun nagpur_PN : PN;
+fun naiad_N : N;
+fun nail_N : N;
+fun nail_V2 : V2;
+fun nail_polish_N : N;
+fun nail_varnish_N : N;
+fun nailbrush_N : N;
+fun nailfile_N : N;
+fun nailsea_PN : PN;
+fun nainsook_N : N;
+fun naira_N : N;
+fun nairn_PN : PN;
+fun nairobi_PN : PN;
+fun naive_1_A : A;
+fun naivety_N : N;
+fun naivete_N : N;
+fun naked_A : A;
+fun nakedness_N : N;
+fun namby_pamby_A : A;
+fun namby_pamby_N : N;
+fun name_N : N;
+fun name_V2 : V2;
+fun name_day_N : N;
+fun name_drop_V : V;
+fun name_dropping_N : N;
+fun name_part_N : N;
+fun nameless_A : A;
+fun namely_Adv : Adv;
+fun nameplate_N : N;
+fun namesake_N : N;
+fun namibia_PN : PN;
+fun namibian_A : A;
+fun namibian_N : N;
+fun nanchang_PN : PN;
+fun nancy_PN : PN;
+fun nankeen_N : N;
+fun nanking_PN : PN;
+fun nanning_PN : PN;
+fun nanny_N : N;
+fun nanny_goat_N : N;
+fun nantwich_PN : PN;
+fun naomi_PN : PN;
+fun nap_N : N;
+fun nap_V : V;
+fun napalm_N : N;
+fun nape_N : N;
+fun napery_N : N;
+fun naphtha_N : N;
+fun naphthalene_N : N;
+fun napkin_N : N;
+fun napkin_ring_N : N;
+fun naples_PN : PN;
+fun napoleonic_A : A;
+fun napoli_PN : PN;
+fun nappy_N : N;
+fun narborough_PN : PN;
+fun narcissism_N : N;
+fun narcissus_N : N;
+fun narcotic_A : A;
+fun narcotic_N : N;
+fun nark_N : N;
+fun nark_V2 : V2;
+fun narrate_V2 : V2;
+fun narration_N : N;
+fun narrative_N : N;
+fun narrator_N : N;
+fun narrow_A : A;
+fun narrow_N : N;
+fun narrow_V : V;
+fun narrow_V2 : V2;
+fun narrow_minded_A : A;
+fun narrow_mindedness_N : N;
+fun narrowness_N : N;
+fun narwhal_N : N;
+fun nasa_PN : PN;
+fun nasal_A : A;
+fun nasal_N : N;
+fun nasalize_V2 : V2;
+fun nascent_A : A;
+fun nastily_Adv : Adv;
+fun nastiness_N : N;
+fun nasturtium_N : N;
+fun nasty_A : A;
+fun nat_PN : PN;
+fun natal_A : A;
+fun natalie_PN : PN;
+fun nathaniel_PN : PN;
+fun nation_N : N;
+fun national_A : A;
+fun national_N : N;
+fun nationalism_N : N;
+fun nationalist_A : A;
+fun nationalist_N : N;
+fun nationalistic_A : A;
+fun nationality_N : N;
+fun nationalization_N : N;
+fun nationalize_V2 : V2;
+fun nationwide_A : A;
+fun nationwide_Adv : Adv;
+fun native_A : A;
+fun native_N : N;
+fun nativity_N : N;
+fun nato_PN : PN;
+fun natter_V : V;
+fun nattily_Adv : Adv;
+fun natty_A : A;
+fun natural_A : A;
+fun natural_N : N;
+fun naturalism_N : N;
+fun naturalist_N : N;
+fun naturalistic_A : A;
+fun naturalization_N : N;
+fun naturalize_V : V;
+fun naturalize_V2 : V2;
+fun naturalness_N : N;
+fun nature_N : N;
+fun naturism_N : N;
+fun naturist_N : N;
+fun naught_N : N;
+fun naughtily_Adv : Adv;
+fun naughtiness_N : N;
+fun naughty_A : A;
+fun nauru_PN : PN;
+fun nauruan_A : A;
+fun nauruan_N : N;
+fun nausea_N : N;
+fun nauseate_V2 : V2;
+fun nauseous_A : A;
+fun nautch_N : N;
+fun nautch_girl_N : N;
+fun nautical_A : A;
+fun nautilus_N : N;
+fun naval_A : A;
+fun nave_N : N;
+fun navel_N : N;
+fun navigability_N : N;
+fun navigable_A : A;
+fun navigate_V : V;
+fun navigate_V2 : V2;
+fun navigation_N : N;
+fun navigator_N : N;
+fun navvy_N : N;
+fun navy_N : N;
+fun nay_Adv : Adv;
+fun nazi_A : A;
+fun nazi_N : N;
+fun nazism_N : N;
+fun naive_2_A : A;
+fun nb_PN : PN;
+fun nco_N : N;
+fun ne'er_Adv : Adv;
+fun ne'er_do_well_N : N;
+fun ne_plus_ultra_N : N;
+fun neanderthal_A : A;
+fun neap_N : N;
+fun neap_tide_N : N;
+fun neapolitan_A : A;
+fun neapolitan_N : N;
+fun near_A : A;
+fun near_Adv : Adv;
+fun near_V : V;
+fun near_V2 : V2;
+fun near_sighted_A : A;
+fun nearby_A : A;
+fun nearer_Adv : Adv;
+fun nearest_Adv : Adv;
+fun nearness_N : N;
+fun nearside_N : N;
+fun neat_A : A;
+fun neath_PN : PN;
+fun neatness_N : N;
+fun nebraska_PN : PN;
+fun nebula_N : N;
+fun nebular_A : A;
+fun nebulous_A : A;
+fun necessary_A : A;
+fun necessary_N : N;
+fun necessitate_V2 : V2;
+fun necessitous_A : A;
+fun necessity_N : N;
+fun neck_N : N;
+fun neck_V : V;
+fun neckband_N : N;
+fun neckcloth_N : N;
+fun neckerchief_N : N;
+fun necklace_N : N;
+fun necklet_N : N;
+fun neckline_N : N;
+fun necktie_N : N;
+fun neckwear_N : N;
+fun necromancer_N : N;
+fun necromancy_N : N;
+fun necropolis_N : N;
+fun nectar_N : N;
+fun nectarine_N : N;
+fun ned_PN : PN;
+fun neddy_PN : PN;
+fun need_N : N;
+fun need_V2 : V2;
+fun needful_A : A;
+fun needle_N : N;
+fun needle_V2 : V2;
+fun needlecraft_N : N;
+fun needless_A : A;
+fun needlewoman_N : N;
+fun needlework_N : N;
+fun needs_Adv : Adv;
+fun needy_A : A;
+fun nefarious_A : A;
+fun nefariousness_N : N;
+fun negate_V2 : V2;
+fun negation_N : N;
+fun negative_A : A;
+fun negative_N : N;
+fun negative_V2 : V2;
+fun neglect_N : N;
+fun neglect_V2 : V2;
+fun neglectful_A : A;
+fun neglectfulness_N : N;
+fun negligee_N : N;
+fun negligence_N : N;
+fun negligent_A : A;
+fun negligible_A : A;
+fun negotiable_A : A;
+fun negotiate_V : V;
+fun negotiate_V2 : V2;
+fun negotiation_N : N;
+fun negotiator_N : N;
+fun negress_N : N;
+fun negro_N : N;
+fun negroid_A : A;
+fun negroid_N : N;
+fun negus_N : N;
+fun neigh_N : N;
+fun neigh_V : V;
+fun neighbour_N : N;
+fun neighbour_V : V;
+fun neighbour_V2 : V2;
+fun neighbourhood_N : N;
+fun neighbourliness_N : N;
+fun neighbourly_A : A;
+fun neil_PN : PN;
+fun neither_A : A;
+fun neither_Adv : Adv;
+fun nell_PN : PN;
+fun nelly_N : N;
+fun nelly_PN : PN;
+fun nelson_PN : PN;
+fun nem_con_Adv : Adv;
+fun nemesis_N : N;
+fun neocolonialism_N : N;
+fun neolithic_A : A;
+fun neologism_N : N;
+fun neon_N : N;
+fun neophyte_N : N;
+fun neoplasm_N : N;
+fun nepal_PN : PN;
+fun nepalese_A : A;
+fun nepalese_N : N;
+fun nepali_A : A;
+fun nepali_N : N;
+fun nephew_N : N;
+fun nephritis_N : N;
+fun nepotism_N : N;
+fun neptune_PN : PN;
+fun nereid_N : N;
+fun nerve_N : N;
+fun nerve_V2 : V2;
+fun nerve_cell_N : N;
+fun nerve_centre_N : N;
+fun nerve_racking_A : A;
+fun nerveless_A : A;
+fun nervous_A : A;
+fun nervousness_N : N;
+fun nervy_A : A;
+fun nescience_N : N;
+fun nescient_A : A;
+fun ness_N : N;
+fun nest_N : N;
+fun nest_V : V;
+fun nest_egg_N : N;
+fun nestle_V : V;
+fun nestle_V2 : V2;
+fun nestling_N : N;
+fun neston_PN : PN;
+fun nestor_PN : PN;
+fun net_A : A;
+fun net_N : N;
+fun net_V2 : V2;
+fun netball_N : N;
+fun nether_A : A;
+fun netherlander_N : N;
+fun netherlands_PN : PN;
+fun nethermost_A : A;
+fun netley_PN : PN;
+fun nett_A : A;
+fun nett_V2 : V2;
+fun netting_N : N;
+fun nettle_N : N;
+fun nettle_V2 : V2;
+fun nettlerash_N : N;
+fun network_N : N;
+fun neural_A : A;
+fun neuralgia_N : N;
+fun neuralgic_A : A;
+fun neurasthenia_N : N;
+fun neurasthenic_A : A;
+fun neurasthenic_N : N;
+fun neuritis_N : N;
+fun neurologist_N : N;
+fun neurology_N : N;
+fun neurosis_N : N;
+fun neurotic_A : A;
+fun neurotic_N : N;
+fun neurotically_Adv : Adv;
+fun neuss_PN : PN;
+fun neuter_A : A;
+fun neuter_N : N;
+fun neuter_V2 : V2;
+fun neutral_A : A;
+fun neutral_N : N;
+fun neutrality_N : N;
+fun neutralization_N : N;
+fun neutralize_V2 : V2;
+fun neutron_N : N;
+fun nevada_PN : PN;
+fun never_Adv : Adv;
+fun nevermore_Adv : Adv;
+fun nevertheless_Adv : Adv;
+fun neville_PN : PN;
+fun new_A : A;
+fun new_Adv : Adv;
+fun new_cumnock_PN : PN;
+fun new_mills_PN : PN;
+fun new_orleans_PN : PN;
+fun new_tredegar_PN : PN;
+fun new_windsor_PN : PN;
+fun new_york_PN : PN;
+fun newark_PN : PN;
+fun newarthill_PN : PN;
+fun newbiggin_PN : PN;
+fun newbury_PN : PN;
+fun newcastle_PN : PN;
+fun newcastle_under_lyme_PN : PN;
+fun newcastle_upon_tyne_PN : PN;
+fun newcomer_N : N;
+fun newel_N : N;
+fun newfangled_A : A;
+fun newfoundland_PN : PN;
+fun newham_PN : PN;
+fun newhaven_PN : PN;
+fun newlywed_N : N;
+fun newmains_PN : PN;
+fun newmarket_N : N;
+fun newmarket_PN : PN;
+fun newness_N : N;
+fun newport_PN : PN;
+fun newport_pagnell_PN : PN;
+fun newquay_PN : PN;
+fun newry_PN : PN;
+fun news_N : N;
+fun newsagent_N : N;
+fun newsboy_N : N;
+fun newscast_N : N;
+fun newscaster_N : N;
+fun newsdealer_N : N;
+fun newsflash_N : N;
+fun newsless_A : A;
+fun newsletter_N : N;
+fun newsmonger_N : N;
+fun newspaper_N : N;
+fun newspaperman_N : N;
+fun newsprint_N : N;
+fun newsreel_N : N;
+fun newsroom_N : N;
+fun newssheet_N : N;
+fun newsstand_N : N;
+fun newsvendor_N : N;
+fun newsworthy_A : A;
+fun newsy_A : A;
+fun newt_N : N;
+fun newton_abbot_PN : PN;
+fun newton_aycliffe_PN : PN;
+fun newton_le_willows_PN : PN;
+fun newton_mearns_PN : PN;
+fun newtonian_A : A;
+fun newtonian_N : N;
+fun newtown_PN : PN;
+fun next_A : A;
+fun next_Adv : Adv;
+fun next_N : N;
+fun nexus_N : N;
+fun nhs_N : N;
+fun nib_N : N;
+fun nibble_N : N;
+fun nibble_V : V;
+fun nibble_V2 : V2;
+fun nicaragua_PN : PN;
+fun nicaraguan_A : A;
+fun nicaraguan_N : N;
+fun nice_A : A;
+fun nice_PN : PN;
+fun niceness_N : N;
+fun nicety_N : N;
+fun niche_N : N;
+fun nicholas_PN : PN;
+fun nick_N : N;
+fun nick_PN : PN;
+fun nick_V2 : V2;
+fun nickel_N : N;
+fun nickel_V2 : V2;
+fun nicknack_N : N;
+fun nickname_N : N;
+fun nickname_V2 : V2;
+fun nicola_PN : PN;
+fun nicole_PN : PN;
+fun nicotine_N : N;
+fun niece_N : N;
+fun niff_N : N;
+fun niffy_A : A;
+fun nifty_A : A;
+fun nigel_PN : PN;
+fun niger_PN : PN;
+fun nigeria_PN : PN;
+fun nigerian_A : A;
+fun nigerian_N : N;
+fun nigerien_A : A;
+fun nigerien_N : N;
+fun niggard_N : N;
+fun niggardliness_N : N;
+fun niggardly_A : A;
+fun nigger_N : N;
+fun niggle_V : V;
+fun niggling_A : A;
+fun nigh_Adv : Adv;
+fun nigher_Adv : Adv;
+fun nighest_Adv : Adv;
+fun night_N : N;
+fun night_bell_N : N;
+fun night_bird_N : N;
+fun night_light_N : N;
+fun night_line_N : N;
+fun night_porter_N : N;
+fun night_soil_N : N;
+fun night_stop_N : N;
+fun night_time_N : N;
+fun night_watch_N : N;
+fun night_watchman_N : N;
+fun nightcap_N : N;
+fun nightclub_N : N;
+fun nightdress_N : N;
+fun nightfall_N : N;
+fun nightgown_N : N;
+fun nightie_N : N;
+fun nightingale_N : N;
+fun nightjar_N : N;
+fun nightlong_A : A;
+fun nightly_A : A;
+fun nightly_Adv : Adv;
+fun nightmare_N : N;
+fun nightmarish_A : A;
+fun nightshade_N : N;
+fun nightshirt_N : N;
+fun nightwork_N : N;
+fun nihilism_N : N;
+fun nihilist_N : N;
+fun nihilistic_A : A;
+fun nijmegen_PN : PN;
+fun nil_N : N;
+fun nilotic_A : A;
+fun nimble_A : A;
+fun nimbleness_N : N;
+fun nimbly_Adv : Adv;
+fun nimbus_N : N;
+fun niminy_piminy_A : A;
+fun nimrod_PN : PN;
+fun nincompoop_N : N;
+fun ninefold_A : A;
+fun ninefold_Adv : Adv;
+fun ninepence_N : N;
+fun ninepenny_A : A;
+fun ninepins_N : N;
+fun ninny_N : N;
+fun ninth_A : A;
+fun ninth_N : N;
+fun niobe_PN : PN;
+fun nip_N : N;
+fun nip_V : V;
+fun nip_V2 : V2;
+fun nipper_N : N;
+fun nipping_A : A;
+fun nipple_N : N;
+fun nipponese_A : A;
+fun nippy_A : A;
+fun nirvana_N : N;
+fun nisi_A : A;
+fun nissen_PN : PN;
+fun nit_N : N;
+fun nitrate_N : N;
+fun nitre_N : N;
+fun nitric_A : A;
+fun nitrochalk_N : N;
+fun nitrogen_N : N;
+fun nitroglycerin_N : N;
+fun nitroglycerine_N : N;
+fun nitrous_A : A;
+fun nitty_gritty_N : N;
+fun nitwit_N : N;
+fun nitwitted_A : A;
+fun nix_N : N;
+fun no_ball_N : N;
+fun no_go_A : A;
+fun no_man's_land_N : N;
+fun noah_PN : PN;
+fun nob_N : N;
+fun nobble_V2 : V2;
+fun nobel_PN : PN;
+fun nobility_N : N;
+fun noble_A : A;
+fun noble_N : N;
+fun noble_mindedness_N : N;
+fun nobleman_N : N;
+fun noblesse_N : N;
+fun noblesse_oblige_N : N;
+fun nobly_Adv : Adv;
+fun noctambulist_N : N;
+fun nocturnal_A : A;
+fun nocturne_N : N;
+fun nod_N : N;
+fun nod_V : V;
+fun nod_V2 : V2;
+fun noddle_N : N;
+fun node_N : N;
+fun nodular_A : A;
+fun nodulated_A : A;
+fun nodule_N : N;
+fun noel_N : N;
+fun noel_PN : PN;
+fun noggin_N : N;
+fun nohow_Adv : Adv;
+fun noise_N : N;
+fun noise_V2 : V2;
+fun noiseless_A : A;
+fun noiselessness_N : N;
+fun noisily_Adv : Adv;
+fun noisiness_N : N;
+fun noisome_A : A;
+fun noisy_A : A;
+fun nom_de_plume_N : N;
+fun nomad_N : N;
+fun nomadic_A : A;
+fun nomenclature_N : N;
+fun nominal_A : A;
+fun nominate_V2 : V2;
+fun nomination_N : N;
+fun nominative_A : A;
+fun nominative_N : N;
+fun nominee_N : N;
+fun non_compliance_N : N;
+fun non_compos_mentis_A : A;
+fun non_contentious_A : A;
+fun non_interference_N : N;
+fun non_sequitur_N : N;
+fun non_skid_A : A;
+fun non_u_A : A;
+fun nonage_N : N;
+fun nonagenarian_A : A;
+fun nonagenarian_N : N;
+fun nonaggression_N : N;
+fun nonalignment_N : N;
+fun nonce_N : N;
+fun nonce_word_N : N;
+fun nonchalance_N : N;
+fun nonchalant_A : A;
+fun noncombatant_N : N;
+fun noncommissioned_A : A;
+fun noncommittal_A : A;
+fun nonconductor_N : N;
+fun nonconformist_N : N;
+fun nonconformity_N : N;
+fun nondescript_A : A;
+fun nondescript_N : N;
+fun none_Adv : Adv;
+fun nonentity_N : N;
+fun nonesuch_N : N;
+fun nonevent_N : N;
+fun nonfiction_N : N;
+fun nonflammable_A : A;
+fun nonintervention_N : N;
+fun nonmoral_A : A;
+fun nonobservance_N : N;
+fun nonpareil_A : A;
+fun nonpareil_N : N;
+fun nonpayment_N : N;
+fun nonplus_V2 : V2;
+fun nonresident_A : A;
+fun nonsense_N : N;
+fun nonsensical_A : A;
+fun nonsmoker_N : N;
+fun nonstarter_N : N;
+fun nonstick_A : A;
+fun nonstop_A : A;
+fun nonstop_Adv : Adv;
+fun nonsuch_N : N;
+fun nonunion_A : A;
+fun nonviolence_N : N;
+fun noodle_N : N;
+fun nook_N : N;
+fun noon_N : N;
+fun noonday_A : A;
+fun noontide_N : N;
+fun noose_N : N;
+fun noose_V2 : V2;
+fun nor'_east_Adv : Adv;
+fun nor'_east_N : N;
+fun nor'_nor'_east_Adv : Adv;
+fun nor'_nor'_east_N : N;
+fun nor'_nor'_west_Adv : Adv;
+fun nor'_nor'_west_N : N;
+fun nor'_west_Adv : Adv;
+fun nor'_west_N : N;
+fun nora_PN : PN;
+fun nordic_A : A;
+fun nordic_N : N;
+fun norfolk_PN : PN;
+fun norm_N : N;
+fun normal_A : A;
+fun normal_N : N;
+fun normalcy_N : N;
+fun normality_N : N;
+fun normalization_N : N;
+fun normalize_V2 : V2;
+fun norman_A : A;
+fun norman_N : N;
+fun norman_PN : PN;
+fun normanton_PN : PN;
+fun normantown_PN : PN;
+fun normative_A : A;
+fun norse_A : A;
+fun norse_N : N;
+fun north_A : A;
+fun north_Adv : Adv;
+fun north_N : N;
+fun north_northeast_Adv : Adv;
+fun north_northeast_N : N;
+fun north_northwest_Adv : Adv;
+fun north_northwest_N : N;
+fun north_walsham_PN : PN;
+fun northallerton_PN : PN;
+fun northam_PN : PN;
+fun northampton_PN : PN;
+fun northamptonshire_PN : PN;
+fun northeast_Adv : Adv;
+fun northeast_N : N;
+fun northeaster_N : N;
+fun northeasterly_A : A;
+fun northeastern_A : A;
+fun northerly_A : A;
+fun northerly_Adv : Adv;
+fun northern_A : A;
+fun northerner_N : N;
+fun northernmost_A : A;
+fun northman_N : N;
+fun northumberland_PN : PN;
+fun northwards_Adv : Adv;
+fun northwest_Adv : Adv;
+fun northwest_N : N;
+fun northwester_N : N;
+fun northwesterly_A : A;
+fun northwestern_A : A;
+fun northwich_PN : PN;
+fun norton_PN : PN;
+fun norway_PN : PN;
+fun norwegian_A : A;
+fun norwegian_N : N;
+fun norwich_PN : PN;
+fun nos_N : N;
+fun nose_N : N;
+fun nose_V : V;
+fun nose_V2 : V2;
+fun nose_flute_N : N;
+fun nose_wheel_N : N;
+fun nosebag_N : N;
+fun nosebleed_N : N;
+fun nosecone_N : N;
+fun nosed_A : A;
+fun nosedive_N : N;
+fun nosedive_V : V;
+fun nosegay_N : N;
+fun nosering_N : N;
+fun nosey_A : A;
+fun nosh_N : N;
+fun nosh_V : V;
+fun nosh_up_N : N;
+fun nostalgia_N : N;
+fun nostalgic_A : A;
+fun nostalgically_Adv : Adv;
+fun nostril_N : N;
+fun nostrum_N : N;
+fun nosy_A : A;
+fun not_Adv : Adv;
+fun notability_N : N;
+fun notable_A : A;
+fun notable_N : N;
+fun notary_N : N;
+fun notation_N : N;
+fun notch_N : N;
+fun notch_V2 : V2;
+fun note_N : N;
+fun note_V2 : V2;
+fun notebook_N : N;
+fun notecase_N : N;
+fun noted_A : A;
+fun notepaper_N : N;
+fun noteworthy_A : A;
+fun nothing_Adv : Adv;
+fun nothingness_N : N;
+fun notice_N : N;
+fun notice_V : V;
+fun notice_V2 : V2;
+fun notice_board_N : N;
+fun noticeable_A : A;
+fun notifiable_A : A;
+fun notification_N : N;
+fun notify_V2 : V2;
+fun notion_N : N;
+fun notional_A : A;
+fun notoriety_N : N;
+fun notorious_A : A;
+fun nottingham_PN : PN;
+fun nottinghamshire_PN : PN;
+fun notwithstanding_Adv : Adv;
+fun nougat_N : N;
+fun nought_N : N;
+fun noun_N : N;
+fun nourish_V2 : V2;
+fun nourishment_N : N;
+fun nous_N : N;
+fun nouveau_riche_N : N;
+fun nov_PN : PN;
+fun nova_N : N;
+fun nova_scotia_PN : PN;
+fun novara_PN : PN;
+fun novel_A : A;
+fun novel_N : N;
+fun novelette_N : N;
+fun novelist_N : N;
+fun novelty_N : N;
+fun november_N : N;
+fun november_PN : PN;
+fun novice_N : N;
+fun noviciate_N : N;
+fun novitiate_N : N;
+fun novokuznetsk_PN : PN;
+fun novosibirsk_PN : PN;
+fun now_Adv : Adv;
+fun nowadays_Adv : Adv;
+fun nowhere_Adv : Adv;
+fun nowise_Adv : Adv;
+fun noxious_A : A;
+fun noxiousness_N : N;
+fun nozzle_N : N;
+fun nr_PN : PN;
+fun nspcc_N : N;
+fun nt_N : N;
+fun nuance_N : N;
+fun nub_N : N;
+fun nubile_A : A;
+fun nuclear_A : A;
+fun nucleic_A : A;
+fun nucleus_N : N;
+fun nude_A : A;
+fun nude_N : N;
+fun nudge_N : N;
+fun nudge_V2 : V2;
+fun nudism_N : N;
+fun nudist_N : N;
+fun nudity_N : N;
+fun nugatory_A : A;
+fun nugget_N : N;
+fun nuisance_N : N;
+fun null_A : A;
+fun nullification_N : N;
+fun nullify_V2 : V2;
+fun nullity_N : N;
+fun numb_A : A;
+fun numb_V2 : V2;
+fun number_N : N;
+fun number_V2 : V2;
+fun numberless_A : A;
+fun numberplate_N : N;
+fun numbness_N : N;
+fun numerable_A : A;
+fun numeracy_N : N;
+fun numeral_A : A;
+fun numeral_N : N;
+fun numerate_A : A;
+fun numeration_N : N;
+fun numerator_N : N;
+fun numeric_A : A;
+fun numerical_A : A;
+fun numerous_A : A;
+fun numinous_A : A;
+fun numismatics_N : N;
+fun numismatist_N : N;
+fun numskull_N : N;
+fun nun_N : N;
+fun nuncio_N : N;
+fun nuneaton_PN : PN;
+fun nunnery_N : N;
+fun nuptial_A : A;
+fun nurenburg_PN : PN;
+fun nurse_N : N;
+fun nurse_V2 : V2;
+fun nurseling_N : N;
+fun nursemaid_N : N;
+fun nursery_N : N;
+fun nurseryman_N : N;
+fun nursing_home_N : N;
+fun nursling_N : N;
+fun nurture_N : N;
+fun nurture_V2 : V2;
+fun nut_N : N;
+fun nut_V : V;
+fun nut_brown_A : A;
+fun nut_butter_N : N;
+fun nuthouse_N : N;
+fun nutmeg_N : N;
+fun nutria_N : N;
+fun nutrient_A : A;
+fun nutrient_N : N;
+fun nutriment_N : N;
+fun nutrition_N : N;
+fun nutritional_A : A;
+fun nutritious_A : A;
+fun nutritive_A : A;
+fun nuts_A : A;
+fun nutshell_N : N;
+fun nutty_A : A;
+fun nuzzle_V : V;
+fun nuzzle_V2 : V2;
+fun nylon_N : N;
+fun nymph_N : N;
+fun nymphet_N : N;
+fun nympho_N : N;
+fun nymphomania_N : N;
+fun nymphomaniac_A : A;
+fun nymphomaniac_N : N;
+fun nee_A : A;
+fun neglige_N : N;
+fun o'er_Adv : Adv;
+fun o_level_N : N;
+fun oaf_N : N;
+fun oafish_A : A;
+fun oak_N : N;
+fun oak_apple_N : N;
+fun oaken_A : A;
+fun oakengates_PN : PN;
+fun oakum_N : N;
+fun oap's_N : N;
+fun oap_N : N;
+fun oar_N : N;
+fun oarsman_N : N;
+fun oarsmanship_N : N;
+fun oarswoman_N : N;
+fun oasis_N : N;
+fun oast_N : N;
+fun oasthouse_N : N;
+fun oat_N : N;
+fun oatcake_N : N;
+fun oath_N : N;
+fun oatmeal_N : N;
+fun oau_N : N;
+fun ob_PN : PN;
+fun oban_PN : PN;
+fun obbligato_N : N;
+fun obduracy_N : N;
+fun obdurate_A : A;
+fun obedience_N : N;
+fun obedient_A : A;
+fun obeisance_N : N;
+fun obelisk_N : N;
+fun oberhausen_PN : PN;
+fun obese_A : A;
+fun obesity_N : N;
+fun obey_V : V;
+fun obey_V2 : V2;
+fun obfuscate_V2 : V2;
+fun obi_N : N;
+fun obiter_dictum_N : N;
+fun obituary_N : N;
+fun object_N : N;
+fun object_V : V;
+fun object_V2 : V2;
+fun objection_N : N;
+fun objectionable_A : A;
+fun objective_A : A;
+fun objective_N : N;
+fun objectivity_N : N;
+fun objector_N : N;
+fun objurgate_V2 : V2;
+fun objurgation_N : N;
+fun oblate_A : A;
+fun oblation_N : N;
+fun obligate_V2 : V2;
+fun obligation_N : N;
+fun obligatory_A : A;
+fun oblige_V2 : V2;
+fun obliging_A : A;
+fun oblique_A : A;
+fun obliquity_N : N;
+fun obliterate_V2 : V2;
+fun obliteration_N : N;
+fun oblivion_N : N;
+fun oblivious_A : A;
+fun oblong_A : A;
+fun oblong_N : N;
+fun obloquy_N : N;
+fun obnoxious_A : A;
+fun obnoxiousness_N : N;
+fun oboe_N : N;
+fun oboist_N : N;
+fun obscene_A : A;
+fun obscenity_N : N;
+fun obscurantism_N : N;
+fun obscurantist_N : N;
+fun obscure_A : A;
+fun obscure_V2 : V2;
+fun obscurity_N : N;
+fun obsequious_A : A;
+fun obsequiousness_N : N;
+fun observable_A : A;
+fun observance_N : N;
+fun observant_A : A;
+fun observation_N : N;
+fun observatory_N : N;
+fun observe_V : V;
+fun observe_V2 : V2;
+fun observer_N : N;
+fun observing_A : A;
+fun obsess_V2 : V2;
+fun obsession_N : N;
+fun obsessional_A : A;
+fun obsessive_A : A;
+fun obsidian_N : N;
+fun obsolescence_N : N;
+fun obsolescent_A : A;
+fun obsolete_A : A;
+fun obstacle_N : N;
+fun obstetric_A : A;
+fun obstetrical_A : A;
+fun obstetrician_N : N;
+fun obstetrics_N : N;
+fun obstinacy_N : N;
+fun obstinate_A : A;
+fun obstreperous_A : A;
+fun obstreperousness_N : N;
+fun obstruct_V2 : V2;
+fun obstruction_N : N;
+fun obstructionism_N : N;
+fun obstructionist_N : N;
+fun obstructive_A : A;
+fun obtain_V : V;
+fun obtain_V2 : V2;
+fun obtainable_A : A;
+fun obtrude_V : V;
+fun obtrude_V2 : V2;
+fun obtrusive_A : A;
+fun obtuse_A : A;
+fun obtuseness_N : N;
+fun obverse_N : N;
+fun obviate_V2 : V2;
+fun obvious_A : A;
+fun obviousness_N : N;
+fun ocarina_N : N;
+fun occasion_N : N;
+fun occasion_V2 : V2;
+fun occasional_A : A;
+fun occident_PN : PN;
+fun occidental_A : A;
+fun occidental_N : N;
+fun occult_A : A;
+fun occult_N : N;
+fun occupancy_N : N;
+fun occupant_N : N;
+fun occupation_N : N;
+fun occupational_A : A;
+fun occupier_N : N;
+fun occupy_V2 : V2;
+fun occur_V : V;
+fun occurrence_N : N;
+fun ocean_N : N;
+fun oceanic_A : A;
+fun ochre_N : N;
+fun ockbrook_PN : PN;
+fun ockendon_PN : PN;
+fun oct_PN : PN;
+fun octagon_N : N;
+fun octagonal_A : A;
+fun octane_N : N;
+fun octave_N : N;
+fun octavo_N : N;
+fun octet_N : N;
+fun octette_N : N;
+fun october_N : N;
+fun october_PN : PN;
+fun octogenarian_A : A;
+fun octogenarian_N : N;
+fun octopus_N : N;
+fun octroi_N : N;
+fun ocular_A : A;
+fun oculist_N : N;
+fun odalisque_N : N;
+fun odd_A : A;
+fun odd_job_A : A;
+fun oddity_N : N;
+fun oddment_N : N;
+fun odds_on_A : A;
+fun odds_on_Adv : Adv;
+fun ode_N : N;
+fun odessa_PN : PN;
+fun odious_A : A;
+fun odium_N : N;
+fun odoriferous_A : A;
+fun odorous_A : A;
+fun odour_N : N;
+fun odourless_A : A;
+fun odyssey_N : N;
+fun oecd_N : N;
+fun oecumenical_A : A;
+fun oed_N : N;
+fun oedipus_PN : PN;
+fun oesophagus_N : N;
+fun off_A : A;
+fun off_Adv : Adv;
+fun off_day_N : N;
+fun off_licence_N : N;
+fun off_peak_A : A;
+fun off_putting_A : A;
+fun off_street_A : A;
+fun off_white_A : A;
+fun offal_N : N;
+fun offaly_PN : PN;
+fun offbeat_A : A;
+fun offenbach_PN : PN;
+fun offence_N : N;
+fun offenceless_A : A;
+fun offend_V : V;
+fun offend_V2 : V2;
+fun offender_N : N;
+fun offensive_A : A;
+fun offensive_N : N;
+fun offensiveness_N : N;
+fun offer_N : N;
+fun offer_V : V;
+fun offer_V2 : V2;
+fun offering_N : N;
+fun offertory_N : N;
+fun offhand_A : A;
+fun offhand_Adv : Adv;
+fun offhanded_A : A;
+fun offhanded_Adv : Adv;
+fun offhandedly_A : A;
+fun office_N : N;
+fun office_bearer_N : N;
+fun office_block_N : N;
+fun office_boy_N : N;
+fun office_holder_N : N;
+fun officer_N : N;
+fun official_A : A;
+fun official_N : N;
+fun officialdom_N : N;
+fun officialese_N : N;
+fun officiate_V : V;
+fun officious_A : A;
+fun officiousness_N : N;
+fun offing_N : N;
+fun offish_A : A;
+fun offprint_N : N;
+fun offset_N : N;
+fun offset_V2 : V2;
+fun offshoot_N : N;
+fun offshore_A : A;
+fun offside_A : A;
+fun offside_Adv : Adv;
+fun offspring_N : N;
+fun offstage_A : A;
+fun offstage_Adv : Adv;
+fun oft_Adv : Adv;
+fun oft_times_Adv : Adv;
+fun often_Adv : Adv;
+fun oftener_Adv : Adv;
+fun ogle_V : V;
+fun ogle_V2 : V2;
+fun ogmore_valley_PN : PN;
+fun ogre_N : N;
+fun ogreish_A : A;
+fun ogress_N : N;
+fun ohio_PN : PN;
+fun ohm_N : N;
+fun oil_N : N;
+fun oil_V2 : V2;
+fun oil_bearing_A : A;
+fun oil_burner_N : N;
+fun oil_cake_N : N;
+fun oil_painting_N : N;
+fun oil_palm_N : N;
+fun oil_paper_N : N;
+fun oil_rig_N : N;
+fun oil_silk_N : N;
+fun oil_slick_N : N;
+fun oil_tanker_N : N;
+fun oil_well_N : N;
+fun oilcan_N : N;
+fun oilcloth_N : N;
+fun oiled_A : A;
+fun oiler_N : N;
+fun oilfield_N : N;
+fun oilfired_A : A;
+fun oiliness_N : N;
+fun oilskin_N : N;
+fun oily_A : A;
+fun ointment_N : N;
+fun okapi_N : N;
+fun okay_A : A;
+fun okay_Adv : Adv;
+fun okay_N : N;
+fun okay_V2 : V2;
+fun oklahoma_PN : PN;
+fun oklahoma_city_PN : PN;
+fun okra_N : N;
+fun old_A : A;
+fun old_N : N;
+fun old_fashioned_A : A;
+fun old_maidish_A : A;
+fun old_time_A : A;
+fun old_timer_N : N;
+fun old_windsor_PN : PN;
+fun old_womanish_A : A;
+fun old_world_A : A;
+fun olden_A : A;
+fun oldenburg_PN : PN;
+fun oldham_PN : PN;
+fun oldish_A : A;
+fun oldland_PN : PN;
+fun oldster_N : N;
+fun oleaginous_A : A;
+fun oleander_N : N;
+fun olfactory_A : A;
+fun oligarch_N : N;
+fun oligarchy_N : N;
+fun olive_A : A;
+fun olive_N : N;
+fun olive_PN : PN;
+fun olive_tree_N : N;
+fun oliver_PN : PN;
+fun olivia_PN : PN;
+fun ollerton_PN : PN;
+fun ollie_PN : PN;
+fun olympiad_N : N;
+fun olympian_A : A;
+fun olympian_N : N;
+fun olympic_A : A;
+fun olympics_PN : PN;
+fun oman_PN : PN;
+fun omani_A : A;
+fun omani_N : N;
+fun ombudsman_N : N;
+fun omega_N : N;
+fun omelet_N : N;
+fun omelette_N : N;
+fun omen_N : N;
+fun omen_V2 : V2;
+fun ominous_A : A;
+fun omission_N : N;
+fun omit_V2 : V2;
+fun omnibus_N : N;
+fun omnipotence_N : N;
+fun omnipotent_A : A;
+fun omniscience_N : N;
+fun omniscient_A : A;
+fun omnivorous_A : A;
+fun omsk_PN : PN;
+fun on_Adv : Adv;
+fun on_licence_N : N;
+fun once_Adv : Adv;
+fun oncoming_A : A;
+fun oncoming_N : N;
+fun one_armed_A : A;
+fun one_eyed_A : A;
+fun one_horse_A : A;
+fun one_idea'd_A : A;
+fun one_sided_A : A;
+fun one_step_N : N;
+fun one_time_A : A;
+fun one_upmanship_N : N;
+fun oneness_N : N;
+fun onerous_A : A;
+fun ongar_PN : PN;
+fun ongoing_A : A;
+fun onion_N : N;
+fun onlooker_N : N;
+fun only_A : A;
+fun only_Adv : Adv;
+fun onomatopoeia_N : N;
+fun onrush_N : N;
+fun onset_N : N;
+fun onshore_A : A;
+fun onshore_Adv : Adv;
+fun onslaught_N : N;
+fun ontario_PN : PN;
+fun ontology_N : N;
+fun onus_N : N;
+fun onward_A : A;
+fun onward_Adv : Adv;
+fun onwards_Adv : Adv;
+fun onyx_N : N;
+fun oomph_N : N;
+fun ooze_N : N;
+fun ooze_V : V;
+fun ooze_V2 : V2;
+fun oozy_A : A;
+fun op_PN : PN;
+fun op_art_N : N;
+fun op_cit_PN : PN;
+fun opacity_N : N;
+fun opal_N : N;
+fun opalescent_A : A;
+fun opaque_A : A;
+fun opaqueness_N : N;
+fun opec_PN : PN;
+fun open_A : A;
+fun open_N : N;
+fun open_V : V;
+fun open_V2 : V2;
+fun open_air_A : A;
+fun open_ended_A : A;
+fun open_eyed_A : A;
+fun open_handed_A : A;
+fun open_hearted_A : A;
+fun open_minded_A : A;
+fun open_mouthed_A : A;
+fun opencast_A : A;
+fun opener_N : N;
+fun opening_A : A;
+fun opening_N : N;
+fun openness_N : N;
+fun openwork_N : N;
+fun opera_N : N;
+fun opera_cloak_N : N;
+fun opera_hat_N : N;
+fun opera_house_N : N;
+fun operable_A : A;
+fun operate_V : V;
+fun operate_V2 : V2;
+fun operatic_A : A;
+fun operating_table_N : N;
+fun operating_theatre_N : N;
+fun operation_N : N;
+fun operational_A : A;
+fun operative_A : A;
+fun operative_N : N;
+fun operator_N : N;
+fun operetta_N : N;
+fun ophthalmia_N : N;
+fun ophthalmic_A : A;
+fun ophthalmoscope_N : N;
+fun opiate_N : N;
+fun opine_V2 : V2;
+fun opinion_N : N;
+fun opinionated_A : A;
+fun opinionative_A : A;
+fun opium_N : N;
+fun opium_den_N : N;
+fun opossum_N : N;
+fun opp_PN : PN;
+fun opponent_N : N;
+fun opportune_A : A;
+fun opportunism_N : N;
+fun opportunist_N : N;
+fun opportunity_N : N;
+fun oppose_V2 : V2;
+fun opposite_A : A;
+fun opposite_N : N;
+fun opposition_N : N;
+fun oppress_V2 : V2;
+fun oppression_N : N;
+fun oppressive_A : A;
+fun oppressor_N : N;
+fun opprobrious_A : A;
+fun opprobrium_N : N;
+fun oppugn_V2 : V2;
+fun opt_V : V;
+fun optative_A : A;
+fun optative_N : N;
+fun optic_A : A;
+fun optical_A : A;
+fun optician_N : N;
+fun optics_N : N;
+fun optimal_A : A;
+fun optimism_N : N;
+fun optimist_N : N;
+fun optimistic_A : A;
+fun optimistically_Adv : Adv;
+fun optimum_N : N;
+fun option_N : N;
+fun optional_A : A;
+fun opulence_N : N;
+fun opulent_A : A;
+fun opus_N : N;
+fun oracle_N : N;
+fun oracular_A : A;
+fun oral_A : A;
+fun oral_N : N;
+fun orang_outan_N : N;
+fun orang_outang_N : N;
+fun orang_utan_N : N;
+fun orange_A : A;
+fun orange_N : N;
+fun orangeade_N : N;
+fun orangeman_N : N;
+fun orate_V : V;
+fun oration_N : N;
+fun orator_N : N;
+fun oratorical_A : A;
+fun oratorio_N : N;
+fun oratory_N : N;
+fun orb_N : N;
+fun orbit_N : N;
+fun orbit_V : V;
+fun orbit_V2 : V2;
+fun orbital_A : A;
+fun orchard_N : N;
+fun orchestra_N : N;
+fun orchestral_A : A;
+fun orchestrate_V2 : V2;
+fun orchestration_N : N;
+fun orchid_N : N;
+fun orchis_N : N;
+fun ordain_V2 : V2;
+fun ordeal_N : N;
+fun order_N : N;
+fun order_V2 : V2;
+fun order_book_N : N;
+fun order_form_N : N;
+fun order_paper_N : N;
+fun ordering_N : N;
+fun orderliness_N : N;
+fun orderly_A : A;
+fun orderly_N : N;
+fun ordinal_A : A;
+fun ordinal_N : N;
+fun ordinance_N : N;
+fun ordinand_N : N;
+fun ordinary_A : A;
+fun ordination_N : N;
+fun ordnance_N : N;
+fun ordure_N : N;
+fun ore_N : N;
+fun oregon_PN : PN;
+fun organ_N : N;
+fun organ_blower_N : N;
+fun organ_grinder_N : N;
+fun organ_loft_N : N;
+fun organdie_N : N;
+fun organic_A : A;
+fun organically_Adv : Adv;
+fun organism_N : N;
+fun organist_N : N;
+fun organization_N : N;
+fun organizational_A : A;
+fun organize_V2 : V2;
+fun organized_A : A;
+fun organizer_N : N;
+fun orgasm_N : N;
+fun orgiastic_A : A;
+fun orgy_N : N;
+fun oriel_N : N;
+fun orient_A : A;
+fun orient_N : N;
+fun orient_V2 : V2;
+fun oriental_A : A;
+fun oriental_N : N;
+fun orientalist_N : N;
+fun orientate_V2 : V2;
+fun orientation_N : N;
+fun orifice_N : N;
+fun origin_N : N;
+fun original_A : A;
+fun original_N : N;
+fun originality_N : N;
+fun originate_V : V;
+fun originate_V2 : V2;
+fun originator_N : N;
+fun oriole_N : N;
+fun orison_N : N;
+fun orkney_PN : PN;
+fun orleans_PN : PN;
+fun orlop_N : N;
+fun ormolu_N : N;
+fun ormskirk_PN : PN;
+fun ornament_N : N;
+fun ornament_V2 : V2;
+fun ornamental_A : A;
+fun ornamentation_N : N;
+fun ornate_A : A;
+fun ornateness_N : N;
+fun ornery_A : A;
+fun ornithological_A : A;
+fun ornithologist_N : N;
+fun ornithology_N : N;
+fun orotund_A : A;
+fun orphan_N : N;
+fun orphan_V2 : V2;
+fun orphanage_N : N;
+fun orrisroot_N : N;
+fun orthodontic_A : A;
+fun orthodontics_N : N;
+fun orthodontist_N : N;
+fun orthodox_A : A;
+fun orthodoxy_N : N;
+fun orthogonal_A : A;
+fun orthographic_A : A;
+fun orthography_N : N;
+fun orthopaedic_A : A;
+fun orthopaedics_N : N;
+fun orthopedic_A : A;
+fun orthopedics_N : N;
+fun ortolan_N : N;
+fun oryx_N : N;
+fun osaka_PN : PN;
+fun oscar_N : N;
+fun oscar_PN : PN;
+fun oscillate_V : V;
+fun oscillate_V2 : V2;
+fun oscillation_N : N;
+fun oscillator_N : N;
+fun oscillograph_N : N;
+fun oscilloscope_N : N;
+fun osier_N : N;
+fun oslo_PN : PN;
+fun osnabruck_PN : PN;
+fun osprey_N : N;
+fun osseous_A : A;
+fun ossett_PN : PN;
+fun ossification_N : N;
+fun ossify_V : V;
+fun ossify_V2 : V2;
+fun ostensible_A : A;
+fun ostentation_N : N;
+fun ostentatious_A : A;
+fun osteopath_N : N;
+fun osteopathy_N : N;
+fun ostler_N : N;
+fun ostracism_N : N;
+fun ostracize_V2 : V2;
+fun ostrich_N : N;
+fun oswald_PN : PN;
+fun oswestry_PN : PN;
+fun ot_N : N;
+fun otago_PN : PN;
+fun other_A : A;
+fun other_Adv : Adv;
+fun other_N : N;
+fun otherwise_Adv : Adv;
+fun otherworldly_A : A;
+fun otiose_A : A;
+fun otley_PN : PN;
+fun ottawa_PN : PN;
+fun otter_N : N;
+fun ottoman_N : N;
+fun oubliette_N : N;
+fun ouija_N : N;
+fun ouija_board_N : N;
+fun ounce_N : N;
+fun oust_V2 : V2;
+fun out_Adv : Adv;
+fun out_V2 : V2;
+fun out_herod_V2 : V2;
+fun out_of_date_A : A;
+fun out_of_door_A : A;
+fun out_of_doors_Adv : Adv;
+fun out_of_the_way_A : A;
+fun out_of_the_way_Adv : Adv;
+fun out_of_work_A : A;
+fun out_tray_N : N;
+fun outback_A : A;
+fun outback_N : N;
+fun outbalance_V2 : V2;
+fun outbid_V2 : V2;
+fun outboard_A : A;
+fun outbound_A : A;
+fun outbrave_V2 : V2;
+fun outbreak_N : N;
+fun outbuilding_N : N;
+fun outburst_N : N;
+fun outcast_A : A;
+fun outcast_N : N;
+fun outcaste_A : A;
+fun outcaste_N : N;
+fun outclass_V2 : V2;
+fun outcome_N : N;
+fun outcrop_N : N;
+fun outcry_N : N;
+fun outdated_A : A;
+fun outdistance_V2 : V2;
+fun outdo_V2 : V2;
+fun outdoor_A : A;
+fun outdoors_Adv : Adv;
+fun outer_A : A;
+fun outermost_A : A;
+fun outface_V2 : V2;
+fun outfall_N : N;
+fun outfield_N : N;
+fun outfielder_N : N;
+fun outfight_V2 : V2;
+fun outfit_N : N;
+fun outfit_V2 : V2;
+fun outfitter_N : N;
+fun outflank_V2 : V2;
+fun outflow_N : N;
+fun outfox_V2 : V2;
+fun outgo_N : N;
+fun outgo_V : V;
+fun outgoing_A : A;
+fun outgrow_V2 : V2;
+fun outgrowth_N : N;
+fun outhouse_N : N;
+fun outing_N : N;
+fun outlandish_A : A;
+fun outlandishness_N : N;
+fun outlast_V2 : V2;
+fun outlaw_N : N;
+fun outlaw_V2 : V2;
+fun outlawry_N : N;
+fun outlay_N : N;
+fun outlet_N : N;
+fun outlier_N : N;
+fun outline_N : N;
+fun outline_V2 : V2;
+fun outlive_V2 : V2;
+fun outlook_N : N;
+fun outlying_A : A;
+fun outmanoeuvre_V2 : V2;
+fun outmarch_V2 : V2;
+fun outmatch_V2 : V2;
+fun outmoded_A : A;
+fun outmost_A : A;
+fun outnumber_V2 : V2;
+fun outpatient_N : N;
+fun outplay_V2 : V2;
+fun outpoint_V2 : V2;
+fun outport_N : N;
+fun outpost_N : N;
+fun outpouring_N : N;
+fun output_N : N;
+fun outrage_N : N;
+fun outrage_V2 : V2;
+fun outrageous_A : A;
+fun outrange_V2 : V2;
+fun outrank_V2 : V2;
+fun outride_V2 : V2;
+fun outrider_N : N;
+fun outrigged_A : A;
+fun outrigger_N : N;
+fun outright_A : A;
+fun outright_Adv : Adv;
+fun outrival_V2 : V2;
+fun outrun_V2 : V2;
+fun outre_A : A;
+fun outsail_V2 : V2;
+fun outset_N : N;
+fun outshine_V2 : V2;
+fun outside_A : A;
+fun outside_Adv : Adv;
+fun outside_N : N;
+fun outsider_N : N;
+fun outsize_A : A;
+fun outsmart_V2 : V2;
+fun outspan_V : V;
+fun outspan_V2 : V2;
+fun outspoken_A : A;
+fun outspokenness_N : N;
+fun outspread_A : A;
+fun outstanding_A : A;
+fun outstation_N : N;
+fun outstay_V2 : V2;
+fun outstretched_A : A;
+fun outstrip_V2 : V2;
+fun outvie_V2 : V2;
+fun outvote_V2 : V2;
+fun outward_A : A;
+fun outward_Adv : Adv;
+fun outwards_Adv : Adv;
+fun outwear_V2 : V2;
+fun outweigh_V2 : V2;
+fun outwit_V2 : V2;
+fun outwork_N : N;
+fun ouzel_N : N;
+fun ouzo_N : N;
+fun oval_A : A;
+fun oval_N : N;
+fun ovary_N : N;
+fun ovation_N : N;
+fun oven_N : N;
+fun ovenware_N : N;
+fun over_Adv : Adv;
+fun over_N : N;
+fun over_abundance_N : N;
+fun over_ripe_A : A;
+fun overabundant_A : A;
+fun overact_V : V;
+fun overact_V2 : V2;
+fun overactive_A : A;
+fun overall_A : A;
+fun overall_N : N;
+fun overambitious_A : A;
+fun overanxiety_N : N;
+fun overanxious_A : A;
+fun overarch_V : V;
+fun overarch_V2 : V2;
+fun overarm_A : A;
+fun overarm_Adv : Adv;
+fun overawe_V2 : V2;
+fun overbalance_V : V;
+fun overbalance_V2 : V2;
+fun overbear_V2 : V2;
+fun overbearing_A : A;
+fun overbid_N : N;
+fun overbid_V : V;
+fun overbid_V2 : V2;
+fun overblown_A : A;
+fun overboard_Adv : Adv;
+fun overbold_A : A;
+fun overburden_N : N;
+fun overburden_V2 : V2;
+fun overbusy_A : A;
+fun overcall_V : V;
+fun overcall_V2 : V2;
+fun overcapitalization_N : N;
+fun overcapitalize_V2 : V2;
+fun overcareful_A : A;
+fun overcast_A : A;
+fun overcast_N : N;
+fun overcautious_A : A;
+fun overcharge_N : N;
+fun overcharge_V : V;
+fun overcharge_V2 : V2;
+fun overclothe_V2 : V2;
+fun overcloud_V : V;
+fun overcloud_V2 : V2;
+fun overcoat_N : N;
+fun overcome_V2 : V2;
+fun overconfidence_N : N;
+fun overconfident_A : A;
+fun overcook_V2 : V2;
+fun overcredulity_N : N;
+fun overcredulous_A : A;
+fun overcritical_A : A;
+fun overcrop_V2 : V2;
+fun overcrowd_V2 : V2;
+fun overcurious_A : A;
+fun overdelicate_A : A;
+fun overdo_V2 : V2;
+fun overdraft_N : N;
+fun overdraw_V : V;
+fun overdraw_V2 : V2;
+fun overdress_V : V;
+fun overdress_V2 : V2;
+fun overdrive_N : N;
+fun overdue_A : A;
+fun overeager_A : A;
+fun overeat_V : V;
+fun overemotional_A : A;
+fun overemphasis_N : N;
+fun overemphasize_V2 : V2;
+fun overenthusiastic_A : A;
+fun overestimate_V2 : V2;
+fun overexcited_A : A;
+fun overexert_V2 : V2;
+fun overexertion_N : N;
+fun overexpose_V2 : V2;
+fun overexposure_N : N;
+fun overfamiliar_A : A;
+fun overfeed_V : V;
+fun overfeed_V2 : V2;
+fun overfeeding_N : N;
+fun overflow_N : N;
+fun overflow_V : V;
+fun overflow_V2 : V2;
+fun overfly_V2 : V2;
+fun overfond_A : A;
+fun overfull_A : A;
+fun overgenerous_A : A;
+fun overgreedy_A : A;
+fun overgrown_A : A;
+fun overgrowth_N : N;
+fun overhand_A : A;
+fun overhang_N : N;
+fun overhang_V : V;
+fun overhang_V2 : V2;
+fun overhasty_A : A;
+fun overhaul_N : N;
+fun overhaul_V2 : V2;
+fun overhead_A : A;
+fun overhead_Adv : Adv;
+fun overhear_V2 : V2;
+fun overheat_V2 : V2;
+fun overindulge_V : V;
+fun overindulge_V2 : V2;
+fun overindulgence_N : N;
+fun overjealous_A : A;
+fun overjoyed_A : A;
+fun overkill_N : N;
+fun overladen_A : A;
+fun overland_A : A;
+fun overlap_N : N;
+fun overlap_V : V;
+fun overlap_V2 : V2;
+fun overlarge_A : A;
+fun overlay_N : N;
+fun overlay_V2 : V2;
+fun overleaf_Adv : Adv;
+fun overleap_V2 : V2;
+fun overlie_V : V;
+fun overload_V2 : V2;
+fun overlook_V2 : V2;
+fun overlord_N : N;
+fun overly_Adv : Adv;
+fun overmantel_N : N;
+fun overmaster_V2 : V2;
+fun overmodest_A : A;
+fun overmuch_A : A;
+fun overmuch_Adv : Adv;
+fun overnervous_A : A;
+fun overnight_A : A;
+fun overnight_Adv : Adv;
+fun overpass_N : N;
+fun overpay_V2 : V2;
+fun overpayment_N : N;
+fun overplay_V2 : V2;
+fun overplus_N : N;
+fun overpopulation_N : N;
+fun overpower_V2 : V2;
+fun overpowering_A : A;
+fun overpraise_V2 : V2;
+fun overprint_N : N;
+fun overprint_V2 : V2;
+fun overproduce_V : V;
+fun overproduce_V2 : V2;
+fun overproduction_N : N;
+fun overproud_A : A;
+fun overrate_V2 : V2;
+fun overreach_V2 : V2;
+fun override_V2 : V2;
+fun overripe_A : A;
+fun overrule_V2 : V2;
+fun overrun_V2 : V2;
+fun oversea_A : A;
+fun oversea_Adv : Adv;
+fun overseas_A : A;
+fun overseas_Adv : Adv;
+fun oversee_V2 : V2;
+fun overseer_N : N;
+fun oversensitive_A : A;
+fun overserious_A : A;
+fun oversew_V2 : V2;
+fun oversewn_A : A;
+fun oversexed_A : A;
+fun overshadow_V2 : V2;
+fun overshoe_N : N;
+fun overshoot_V2 : V2;
+fun overshot_A : A;
+fun overside_Adv : Adv;
+fun oversight_N : N;
+fun oversimplify_V2 : V2;
+fun oversize_A : A;
+fun overskirt_N : N;
+fun oversleep_V : V;
+fun overspend_V : V;
+fun overspend_V2 : V2;
+fun overspill_N : N;
+fun overstate_V2 : V2;
+fun overstatement_N : N;
+fun overstay_V2 : V2;
+fun overstep_V2 : V2;
+fun overstock_V2 : V2;
+fun overstrain_N : N;
+fun overstrain_V2 : V2;
+fun overstrung_A : A;
+fun overstuffed_A : A;
+fun oversubscribed_A : A;
+fun oversuspicious_A : A;
+fun overt_A : A;
+fun overtake_V2 : V2;
+fun overtax_V2 : V2;
+fun overthrow_N : N;
+fun overthrow_V2 : V2;
+fun overtime_Adv : Adv;
+fun overtime_N : N;
+fun overtolerance_N : N;
+fun overtone_N : N;
+fun overtop_V2 : V2;
+fun overtrump_V2 : V2;
+fun overture_N : N;
+fun overturn_V : V;
+fun overturn_V2 : V2;
+fun overvalue_V2 : V2;
+fun overweening_A : A;
+fun overweight_A : A;
+fun overweight_N : N;
+fun overweighted_A : A;
+fun overwhelm_V2 : V2;
+fun overwhelmingly_Adv : Adv;
+fun overwork_N : N;
+fun overwork_V : V;
+fun overwork_V2 : V2;
+fun overwrought_A : A;
+fun overzealous_A : A;
+fun oviduct_N : N;
+fun oviedo_PN : PN;
+fun oviparous_A : A;
+fun ovoid_A : A;
+fun ovoid_N : N;
+fun ovum_N : N;
+fun owe_V : V;
+fun owe_V2 : V2;
+fun owing_A : A;
+fun owl_N : N;
+fun owlet_N : N;
+fun owlish_A : A;
+fun own_A : A;
+fun own_V : V;
+fun own_V2 : V2;
+fun owner_N : N;
+fun owner_driven_A : A;
+fun owner_driver_N : N;
+fun owner_occupied_A : A;
+fun owner_occupier_N : N;
+fun ownerless_A : A;
+fun ownership_N : N;
+fun ox_N : N;
+fun oxbridge_PN : PN;
+fun oxeye_N : N;
+fun oxeyed_A : A;
+fun oxford_PN : PN;
+fun oxfordshire_PN : PN;
+fun oxidation_N : N;
+fun oxide_N : N;
+fun oxidization_N : N;
+fun oxidize_V : V;
+fun oxidize_V2 : V2;
+fun oxon_PN : PN;
+fun oxonian_A : A;
+fun oxonian_N : N;
+fun oxtail_N : N;
+fun oxted_PN : PN;
+fun oxyacetylene_A : A;
+fun oxyacetylene_N : N;
+fun oxygen_N : N;
+fun oxygenate_V2 : V2;
+fun oxygenize_V2 : V2;
+fun oyster_N : N;
+fun oyster_bank_N : N;
+fun oyster_bar_N : N;
+fun oyster_bed_N : N;
+fun oyster_catcher_N : N;
+fun oz_N : N;
+fun ozone_N : N;
+fun ozzie_PN : PN;
+fun pa_N : N;
+fun pabulum_N : N;
+fun pace_N : N;
+fun pace_V : V;
+fun pace_V2 : V2;
+fun pacemaker_N : N;
+fun pacesetter_N : N;
+fun pachyderm_N : N;
+fun pacific_A : A;
+fun pacific_PN : PN;
+fun pacifically_Adv : Adv;
+fun pacification_N : N;
+fun pacifism_N : N;
+fun pacifist_N : N;
+fun pacify_V2 : V2;
+fun pack_N : N;
+fun pack_V : V;
+fun pack_V2 : V2;
+fun pack_animal_N : N;
+fun pack_saddle_N : N;
+fun pack_thread_N : N;
+fun package_N : N;
+fun package_V2 : V2;
+fun packer_N : N;
+fun packet_N : N;
+fun packet_boat_N : N;
+fun packhorse_N : N;
+fun packing_N : N;
+fun packing_case_N : N;
+fun packing_needle_N : N;
+fun pact_N : N;
+fun pad_N : N;
+fun pad_V : V;
+fun pad_V2 : V2;
+fun padding_N : N;
+fun paddle_N : N;
+fun paddle_V : V;
+fun paddle_V2 : V2;
+fun paddle_box_N : N;
+fun paddle_steamer_N : N;
+fun paddle_wheel_N : N;
+fun paddock_N : N;
+fun paddy_N : N;
+fun paddy_PN : PN;
+fun paddy_field_N : N;
+fun paddy_wagon_N : N;
+fun padlock_N : N;
+fun padlock_V2 : V2;
+fun padova_PN : PN;
+fun padre_N : N;
+fun padua_PN : PN;
+fun paean_N : N;
+fun paederasty_N : N;
+fun paediatrics_N : N;
+fun paeony_N : N;
+fun pagan_A : A;
+fun pagan_N : N;
+fun paganism_N : N;
+fun page_N : N;
+fun page_V2 : V2;
+fun pageant_N : N;
+fun pageantry_N : N;
+fun pagination_N : N;
+fun pagoda_N : N;
+fun pail_N : N;
+fun pailful_N : N;
+fun paillasse_N : N;
+fun pailliasse_N : N;
+fun pain_N : N;
+fun pain_V2 : V2;
+fun pained_A : A;
+fun painful_A : A;
+fun painkiller_N : N;
+fun painless_A : A;
+fun painstaking_A : A;
+fun paint_N : N;
+fun paint_V : V;
+fun paint_V2 : V2;
+fun paintbox_N : N;
+fun paintbrush_N : N;
+fun painter_N : N;
+fun painting_N : N;
+fun pair_N : N;
+fun pair_V : V;
+fun pair_V2 : V2;
+fun paisley_N : N;
+fun paisley_PN : PN;
+fun pakistan_PN : PN;
+fun pakistani_A : A;
+fun pakistani_N : N;
+fun pal_N : N;
+fun pal_V : V;
+fun palace_N : N;
+fun paladin_N : N;
+fun palaeolithic_A : A;
+fun palaeontologist_N : N;
+fun palaeontology_N : N;
+fun palankeen_N : N;
+fun palanquin_N : N;
+fun palatable_A : A;
+fun palatal_A : A;
+fun palatal_N : N;
+fun palate_N : N;
+fun palatial_A : A;
+fun palatinate_N : N;
+fun palaver_N : N;
+fun palaver_V : V;
+fun pale_A : A;
+fun pale_N : N;
+fun pale_V : V;
+fun paleface_N : N;
+fun palembang_PN : PN;
+fun paleness_N : N;
+fun paleolithic_A : A;
+fun paleontologist_N : N;
+fun paleontology_N : N;
+fun palermo_PN : PN;
+fun palestine_PN : PN;
+fun palestinian_A : A;
+fun palestinian_N : N;
+fun palette_N : N;
+fun palette_knife_N : N;
+fun palfrey_N : N;
+fun palimpsest_N : N;
+fun palindrome_N : N;
+fun paling_N : N;
+fun palisade_N : N;
+fun palisade_V2 : V2;
+fun palish_A : A;
+fun pall_N : N;
+fun pall_V : V;
+fun pallbearer_N : N;
+fun pallet_N : N;
+fun palliasse_N : N;
+fun palliate_V2 : V2;
+fun palliation_N : N;
+fun palliative_A : A;
+fun palliative_N : N;
+fun pallid_A : A;
+fun pallidness_N : N;
+fun pallor_N : N;
+fun pally_A : A;
+fun palm_N : N;
+fun palm_V2 : V2;
+fun palm_oil_N : N;
+fun palmer_N : N;
+fun palmetto_N : N;
+fun palmist_N : N;
+fun palmistry_N : N;
+fun palmy_A : A;
+fun palpable_A : A;
+fun palpitate_V : V;
+fun palpitation_N : N;
+fun palsy_N : N;
+fun palsy_V2 : V2;
+fun palter_V : V;
+fun paltry_A : A;
+fun pam_PN : PN;
+fun pamela_PN : PN;
+fun pampas_grass_N : N;
+fun pamper_V2 : V2;
+fun pamphlet_N : N;
+fun pamphleteer_N : N;
+fun pamplona_PN : PN;
+fun pan_N : N;
+fun pan_V : V;
+fun pan_V2 : V2;
+fun panacea_N : N;
+fun panache_N : N;
+fun panama_N : N;
+fun panama_PN : PN;
+fun panamanian_A : A;
+fun panamanian_N : N;
+fun panatella_N : N;
+fun pancake_N : N;
+fun panchromatic_A : A;
+fun pancreas_N : N;
+fun pancreatic_A : A;
+fun panda_N : N;
+fun pandemic_A : A;
+fun pandemic_N : N;
+fun pandemonium_N : N;
+fun pander_N : N;
+fun pander_V : V;
+fun pane_N : N;
+fun panegyric_N : N;
+fun panel_N : N;
+fun panel_V2 : V2;
+fun panelling_N : N;
+fun pang_N : N;
+fun panga_N : N;
+fun panhandle_N : N;
+fun panhandle_V : V;
+fun panic_N : N;
+fun panic_V : V;
+fun panic_stricken_A : A;
+fun panicky_A : A;
+fun panjandrum_N : N;
+fun pannier_N : N;
+fun pannikin_N : N;
+fun panoplied_A : A;
+fun panoply_N : N;
+fun panoptic_A : A;
+fun panorama_N : N;
+fun panoramic_A : A;
+fun pansy_N : N;
+fun pant_N : N;
+fun pant_V : V;
+fun pant_V2 : V2;
+fun pantaloon_N : N;
+fun pantechnicon_N : N;
+fun pantheism_N : N;
+fun pantheist_N : N;
+fun pantheistic_A : A;
+fun pantheon_N : N;
+fun panther_N : N;
+fun pantile_N : N;
+fun pantingly_Adv : Adv;
+fun panto_N : N;
+fun pantograph_N : N;
+fun pantomime_N : N;
+fun pantry_N : N;
+fun pantryman_N : N;
+fun panty_hose_N : N;
+fun panzer_A : A;
+fun paotow_PN : PN;
+fun pap_N : N;
+fun papa_N : N;
+fun papacy_N : N;
+fun papal_A : A;
+fun papaw_N : N;
+fun papaya_N : N;
+fun paper_N : N;
+fun paper_V2 : V2;
+fun paper_chase_N : N;
+fun paperback_N : N;
+fun paperbacked_A : A;
+fun paperclip_N : N;
+fun paperhanger_N : N;
+fun paperknife_N : N;
+fun paperless_A : A;
+fun papermill_N : N;
+fun paperweight_N : N;
+fun paperwork_N : N;
+fun papier_mache_N : N;
+fun papist_A : A;
+fun papist_N : N;
+fun papoose_N : N;
+fun paprika_N : N;
+fun papua_PN : PN;
+fun papuan_A : A;
+fun papuan_N : N;
+fun papyrus_N : N;
+fun par_N : N;
+fun par_excellence_Adv : Adv;
+fun para_N : N;
+fun parable_N : N;
+fun parabola_N : N;
+fun parabolic_A : A;
+fun parabolical_A : A;
+fun parachute_N : N;
+fun parachute_V : V;
+fun parachute_V2 : V2;
+fun parachutist_N : N;
+fun parade_N : N;
+fun parade_V : V;
+fun parade_V2 : V2;
+fun parade_ground_N : N;
+fun paradigm_N : N;
+fun paradise_N : N;
+fun paradisiac_A : A;
+fun paradisiacal_A : A;
+fun paradox_N : N;
+fun paradoxical_A : A;
+fun paraffin_N : N;
+fun paragon_N : N;
+fun paragraph_N : N;
+fun paragraph_V2 : V2;
+fun paraguay_PN : PN;
+fun paraguayan_A : A;
+fun paraguayan_N : N;
+fun parakeet_N : N;
+fun parallel_A : A;
+fun parallel_N : N;
+fun parallel_V2 : V2;
+fun parallelism_N : N;
+fun parallelogram_N : N;
+fun paralyse_V2 : V2;
+fun paralysis_N : N;
+fun paralytic_A : A;
+fun paralytic_N : N;
+fun paralyze_V2 : V2;
+fun parameter_N : N;
+fun paramilitary_A : A;
+fun paramount_A : A;
+fun paramountcy_N : N;
+fun paramour_N : N;
+fun paranoia_N : N;
+fun paranoiac_N : N;
+fun paranoid_A : A;
+fun paranoid_N : N;
+fun parapet_N : N;
+fun paraphernalia_N : N;
+fun paraphrase_V2 : V2;
+fun paraplegia_N : N;
+fun paraplegic_A : A;
+fun paraplegic_N : N;
+fun parasite_N : N;
+fun parasitic_A : A;
+fun parasitical_A : A;
+fun parasol_N : N;
+fun paratrooper_N : N;
+fun paratyphoid_N : N;
+fun parboil_V2 : V2;
+fun parcel_N : N;
+fun parcel_V2 : V2;
+fun parch_V2 : V2;
+fun parchment_N : N;
+fun pardon_N : N;
+fun pardon_V2 : V2;
+fun pardonable_A : A;
+fun pardoner_N : N;
+fun pare_V2 : V2;
+fun paregoric_N : N;
+fun parent_N : N;
+fun parentage_N : N;
+fun parental_A : A;
+fun parenthesis_N : N;
+fun parenthetic_A : A;
+fun parenthetical_A : A;
+fun pari_mutuel_N : N;
+fun pari_passu_Adv : Adv;
+fun pariah_N : N;
+fun pariah_dog_N : N;
+fun paris_PN : PN;
+fun parish_N : N;
+fun parishioner_N : N;
+fun parisian_A : A;
+fun parisian_N : N;
+fun parity_N : N;
+fun park_N : N;
+fun park_V : V;
+fun park_V2 : V2;
+fun parka_N : N;
+fun parking_N : N;
+fun parkinson's_A : A;
+fun parky_A : A;
+fun parlance_N : N;
+fun parley_N : N;
+fun parley_V : V;
+fun parliament_N : N;
+fun parliamentarian_N : N;
+fun parliamentary_A : A;
+fun parlour_N : N;
+fun parlour_car_N : N;
+fun parlous_A : A;
+fun parma_PN : PN;
+fun parmesan_N : N;
+fun parochial_A : A;
+fun parochialism_N : N;
+fun parodist_N : N;
+fun parody_N : N;
+fun parody_V2 : V2;
+fun parole_N : N;
+fun parole_V2 : V2;
+fun paroquet_N : N;
+fun paroxysm_N : N;
+fun parquet_N : N;
+fun parr_N : N;
+fun parricide_N : N;
+fun parrot_N : N;
+fun parry_N : N;
+fun parry_V2 : V2;
+fun parse_V2 : V2;
+fun parsee_N : N;
+fun parsimonious_A : A;
+fun parsimony_N : N;
+fun parsley_N : N;
+fun parsnip_N : N;
+fun parson_N : N;
+fun parsonage_N : N;
+fun part_Adv : Adv;
+fun part_N : N;
+fun part_V : V;
+fun part_V2 : V2;
+fun part_owner_N : N;
+fun part_singing_N : N;
+fun part_song_N : N;
+fun part_time_A : A;
+fun part_time_Adv : Adv;
+fun part_timer_N : N;
+fun partake_V : V;
+fun partake_V2 : V2;
+fun parterre_N : N;
+fun parthenogenesis_N : N;
+fun parthian_A : A;
+fun parti_coloured_A : A;
+fun partial_A : A;
+fun partiality_N : N;
+fun participant_N : N;
+fun participate_V : V;
+fun participation_N : N;
+fun participial_A : A;
+fun participle_N : N;
+fun particle_N : N;
+fun particular_A : A;
+fun particular_N : N;
+fun particularity_N : N;
+fun particularize_V : V;
+fun particularize_V2 : V2;
+fun parting_N : N;
+fun partisan_A : A;
+fun partisan_N : N;
+fun partisanship_N : N;
+fun partition_N : N;
+fun partition_V2 : V2;
+fun partitive_A : A;
+fun partitive_N : N;
+fun partly_Adv : Adv;
+fun partner_N : N;
+fun partner_V2 : V2;
+fun partnership_N : N;
+fun partridge_N : N;
+fun parturition_N : N;
+fun party_N : N;
+fun party_spirit_N : N;
+fun party_spirited_A : A;
+fun party_wall_N : N;
+fun parvenu_N : N;
+fun paschal_A : A;
+fun pasha_N : N;
+fun pashto_N : N;
+fun pass_N : N;
+fun pass_V : V;
+fun pass_V2 : V2;
+fun passable_A : A;
+fun passage_N : N;
+fun passageway_N : N;
+fun passbook_N : N;
+fun passenger_N : N;
+fun passepartout_N : N;
+fun passer_by_N : N;
+fun passim_Adv : Adv;
+fun passing_A : A;
+fun passing_Adv : Adv;
+fun passing_N : N;
+fun passing_out_A : A;
+fun passion_N : N;
+fun passion_flower_N : N;
+fun passionate_A : A;
+fun passionless_A : A;
+fun passive_A : A;
+fun passive_N : N;
+fun passiveness_N : N;
+fun passivity_N : N;
+fun passkey_N : N;
+fun passover_N : N;
+fun passport_N : N;
+fun password_N : N;
+fun passe_A : A;
+fun passee_A : A;
+fun past_A : A;
+fun past_Adv : Adv;
+fun past_N : N;
+fun pasta_N : N;
+fun paste_N : N;
+fun paste_V2 : V2;
+fun paste_up_N : N;
+fun pasteboard_N : N;
+fun pastel_N : N;
+fun pastern_N : N;
+fun pasteurization_N : N;
+fun pasteurize_V2 : V2;
+fun pastiche_N : N;
+fun pastille_N : N;
+fun pastime_N : N;
+fun pasting_N : N;
+fun pastor_N : N;
+fun pastoral_A : A;
+fun pastoral_N : N;
+fun pastorate_N : N;
+fun pastry_N : N;
+fun pastry_cook_N : N;
+fun pasturage_N : N;
+fun pasture_N : N;
+fun pasture_V : V;
+fun pasture_V2 : V2;
+fun pasty_A : A;
+fun pasty_N : N;
+fun pat_Adv : Adv;
+fun pat_N : N;
+fun pat_PN : PN;
+fun pat_V : V;
+fun pat_V2 : V2;
+fun patch_N : N;
+fun patch_V2 : V2;
+fun patch_pocket_N : N;
+fun patchily_Adv : Adv;
+fun patchiness_N : N;
+fun patchouli_N : N;
+fun patchwork_N : N;
+fun patchy_A : A;
+fun pate_1_N : N;
+fun pate_de_foie_gras_N : N;
+fun patella_N : N;
+fun patent_A : A;
+fun patent_N : N;
+fun patent_V2 : V2;
+fun patentee_N : N;
+fun paterfamilias_N : N;
+fun paternal_A : A;
+fun paternalism_N : N;
+fun paternity_N : N;
+fun paternoster_N : N;
+fun path_N : N;
+fun path_finder_N : N;
+fun pathetic_A : A;
+fun pathetically_Adv : Adv;
+fun pathless_A : A;
+fun pathogen_N : N;
+fun pathological_A : A;
+fun pathologist_N : N;
+fun pathology_N : N;
+fun pathos_N : N;
+fun pathway_N : N;
+fun patience_N : N;
+fun patience_PN : PN;
+fun patient_A : A;
+fun patient_N : N;
+fun patina_N : N;
+fun patio_N : N;
+fun patisserie_N : N;
+fun patois_N : N;
+fun patrai_PN : PN;
+fun patrial_N : N;
+fun patriarch_N : N;
+fun patriarchal_A : A;
+fun patriarchate_N : N;
+fun patriarchy_N : N;
+fun patricia_PN : PN;
+fun patrician_A : A;
+fun patrician_N : N;
+fun patricide_N : N;
+fun patrick_PN : PN;
+fun patrimonial_A : A;
+fun patrimony_N : N;
+fun patriot_N : N;
+fun patriotic_A : A;
+fun patriotically_Adv : Adv;
+fun patriotism_N : N;
+fun patrol_N : N;
+fun patrol_V : V;
+fun patrol_V2 : V2;
+fun patrolman_N : N;
+fun patron_N : N;
+fun patronage_N : N;
+fun patroness_N : N;
+fun patronize_V2 : V2;
+fun patronizing_A : A;
+fun patronymic_A : A;
+fun patronymic_N : N;
+fun patten_N : N;
+fun patter_N : N;
+fun patter_V : V;
+fun patter_V2 : V2;
+fun pattern_N : N;
+fun pattern_V2 : V2;
+fun patty_N : N;
+fun patty_PN : PN;
+fun patty_pan_N : N;
+fun paucity_N : N;
+fun paul_PN : PN;
+fun paula_PN : PN;
+fun pauline_PN : PN;
+fun paunch_N : N;
+fun paunchiness_N : N;
+fun paunchy_A : A;
+fun pauper_N : N;
+fun pauperism_N : N;
+fun pauperization_N : N;
+fun pauperize_V2 : V2;
+fun pause_N : N;
+fun pause_V : V;
+fun pave_V2 : V2;
+fun pavement_N : N;
+fun pavilion_N : N;
+fun paving_stone_N : N;
+fun paw_N : N;
+fun paw_V2 : V2;
+fun pawky_A : A;
+fun pawl_N : N;
+fun pawn_N : N;
+fun pawn_V2 : V2;
+fun pawn_ticket_N : N;
+fun pawnbroker_N : N;
+fun pawnshop_N : N;
+fun pawpaw_N : N;
+fun pax_N : N;
+fun pax_romana_N : N;
+fun pay_N : N;
+fun pay_V : V;
+fun pay_V2 : V2;
+fun pay_as_you_earn_N : N;
+fun pay_claim_N : N;
+fun pay_packet_N : N;
+fun pay_station_N : N;
+fun payable_A : A;
+fun payday_N : N;
+fun paydirt_N : N;
+fun paye_PN : PN;
+fun payee_N : N;
+fun payer_N : N;
+fun payload_N : N;
+fun paymaster_N : N;
+fun payment_N : N;
+fun paynim_N : N;
+fun payoff_N : N;
+fun payphone_N : N;
+fun payroll_N : N;
+fun paysheet_N : N;
+fun payslip_N : N;
+fun pc_PN : PN;
+fun pdsa_N : N;
+fun pe_N : N;
+fun pea_N : N;
+fun pea_chick_N : N;
+fun pea_flour_N : N;
+fun pea_green_A : A;
+fun pea_green_N : N;
+fun pea_jacket_N : N;
+fun pea_soup_N : N;
+fun peace_N : N;
+fun peace_offering_N : N;
+fun peaceable_A : A;
+fun peaceful_A : A;
+fun peacefulness_N : N;
+fun peacehaven_PN : PN;
+fun peacemaker_N : N;
+fun peacetime_N : N;
+fun peach_N : N;
+fun peach_V : V;
+fun peach_V2 : V2;
+fun peacock_N : N;
+fun peacock_blue_A : A;
+fun peacock_blue_N : N;
+fun peafowl_N : N;
+fun peahen_N : N;
+fun peak_N : N;
+fun peak_V : V;
+fun peaked_A : A;
+fun peaky_A : A;
+fun peal_N : N;
+fun peal_V : V;
+fun peal_V2 : V2;
+fun peanut_N : N;
+fun pear_N : N;
+fun pearl_N : N;
+fun pearl_PN : PN;
+fun pearl_V : V;
+fun pearl_barley_N : N;
+fun pearl_diver_N : N;
+fun pearl_fishery_N : N;
+fun pearl_oyster_N : N;
+fun pearl_sago_N : N;
+fun pearly_A : A;
+fun pearmain_N : N;
+fun peasant_N : N;
+fun peasantry_N : N;
+fun pease_N : N;
+fun pease_pudding_N : N;
+fun peashooter_N : N;
+fun peasouper_N : N;
+fun peat_N : N;
+fun peaty_A : A;
+fun pebble_N : N;
+fun pebbly_A : A;
+fun pecan_N : N;
+fun peccable_A : A;
+fun peccadillo_N : N;
+fun peccary_N : N;
+fun peck_N : N;
+fun peck_V : V;
+fun peck_V2 : V2;
+fun pecker_N : N;
+fun peckish_A : A;
+fun pectic_A : A;
+fun pectin_N : N;
+fun pectoral_A : A;
+fun peculate_V : V;
+fun peculate_V2 : V2;
+fun peculation_N : N;
+fun peculiar_A : A;
+fun peculiarity_N : N;
+fun pecuniary_A : A;
+fun pedagogic_A : A;
+fun pedagogical_A : A;
+fun pedagogue_N : N;
+fun pedagogy_N : N;
+fun pedal_A : A;
+fun pedal_N : N;
+fun pedal_V : V;
+fun pedal_V2 : V2;
+fun pedant_N : N;
+fun pedantic_A : A;
+fun pedantically_Adv : Adv;
+fun pedantry_N : N;
+fun peddle_V : V;
+fun peddle_V2 : V2;
+fun peddler_N : N;
+fun peddling_A : A;
+fun pederast_N : N;
+fun pederasty_N : N;
+fun pedestal_N : N;
+fun pedestrian_A : A;
+fun pedestrian_N : N;
+fun pediatrician_N : N;
+fun pediatrics_N : N;
+fun pedicab_N : N;
+fun pedicure_N : N;
+fun pedigree_N : N;
+fun pediment_N : N;
+fun pedlar_N : N;
+fun pedometer_N : N;
+fun pee_N : N;
+fun pee_V : V;
+fun peebles_PN : PN;
+fun peek_N : N;
+fun peek_V : V;
+fun peek_a_boo_N : N;
+fun peel_N : N;
+fun peel_V : V;
+fun peel_V2 : V2;
+fun peeler_N : N;
+fun peep_N : N;
+fun peep_V : V;
+fun peeper_N : N;
+fun peephole_N : N;
+fun peepshow_N : N;
+fun peepul_N : N;
+fun peer_N : N;
+fun peer_V : V;
+fun peerage_N : N;
+fun peeress_N : N;
+fun peerless_A : A;
+fun peeve_V2 : V2;
+fun peeved_A : A;
+fun peevish_A : A;
+fun peevishness_N : N;
+fun peewit_N : N;
+fun peg_N : N;
+fun peg_PN : PN;
+fun peg_V : V;
+fun peg_V2 : V2;
+fun peggy_PN : PN;
+fun peignoir_N : N;
+fun pejorative_A : A;
+fun peke_N : N;
+fun pekinese_N : N;
+fun peking_PN : PN;
+fun pekoe_N : N;
+fun pelf_N : N;
+fun pelican_N : N;
+fun pelisse_N : N;
+fun pell_mell_Adv : Adv;
+fun pellet_N : N;
+fun pellucid_A : A;
+fun pelmet_N : N;
+fun pelota_N : N;
+fun pelt_N : N;
+fun pelt_V : V;
+fun pelt_V2 : V2;
+fun pelton_PN : PN;
+fun pelvic_A : A;
+fun pelvis_N : N;
+fun pembroke_PN : PN;
+fun pemmican_N : N;
+fun pen_N : N;
+fun pen_V2 : V2;
+fun pen_and_ink_N : N;
+fun pen_friend_N : N;
+fun pen_name_N : N;
+fun pen_pusher_N : N;
+fun penal_A : A;
+fun penalization_N : N;
+fun penalize_V2 : V2;
+fun penalty_N : N;
+fun penance_N : N;
+fun penarth_PN : PN;
+fun penchant_N : N;
+fun pencil_N : N;
+fun pencil_V2 : V2;
+fun pendant_N : N;
+fun pendent_A : A;
+fun pending_A : A;
+fun pendlebury_PN : PN;
+fun pendulous_A : A;
+fun pendulum_N : N;
+fun penelope_PN : PN;
+fun penetrability_N : N;
+fun penetrable_A : A;
+fun penetrate_V : V;
+fun penetrate_V2 : V2;
+fun penetrating_A : A;
+fun penetration_N : N;
+fun penetrative_A : A;
+fun penguin_N : N;
+fun penicillin_N : N;
+fun penicuik_PN : PN;
+fun peninsula_N : N;
+fun peninsular_A : A;
+fun penis_N : N;
+fun penitence_N : N;
+fun penitent_A : A;
+fun penitent_N : N;
+fun penitential_A : A;
+fun penitentiary_A : A;
+fun penitentiary_N : N;
+fun penki_PN : PN;
+fun penknife_N : N;
+fun penmanship_N : N;
+fun penn'orth_N : N;
+fun pennant_N : N;
+fun penniless_A : A;
+fun pennon_N : N;
+fun pennsylvania_PN : PN;
+fun penny_N : N;
+fun penny_PN : PN;
+fun pennyweight_N : N;
+fun pennyworth_N : N;
+fun penology_N : N;
+fun penrhyn_PN : PN;
+fun penrith_PN : PN;
+fun penryn_PN : PN;
+fun pension_N : N;
+fun pension_V2 : V2;
+fun pensionable_A : A;
+fun pensioner_N : N;
+fun pensive_A : A;
+fun pensiveness_N : N;
+fun penstock_N : N;
+fun pent_up_A : A;
+fun pentagon_N : N;
+fun pentagonal_A : A;
+fun pentameter_N : N;
+fun pentateuch_N : N;
+fun pentathlon_N : N;
+fun pentecost_N : N;
+fun pentecostal_A : A;
+fun penthouse_N : N;
+fun penultimate_A : A;
+fun penultimate_N : N;
+fun penumbra_N : N;
+fun penurious_A : A;
+fun penuriousness_N : N;
+fun penury_N : N;
+fun penzance_PN : PN;
+fun peon_N : N;
+fun peonage_N : N;
+fun peony_N : N;
+fun people_N : N;
+fun people_V2 : V2;
+fun pep_N : N;
+fun pep_V2 : V2;
+fun pepper_N : N;
+fun pepper_V2 : V2;
+fun pepper_and_salt_N : N;
+fun pepper_mill_N : N;
+fun pepper_pot_N : N;
+fun peppercorn_N : N;
+fun peppermint_N : N;
+fun peppery_A : A;
+fun pepsin_N : N;
+fun peptic_A : A;
+fun peradventure_Adv : Adv;
+fun perambulate_V : V;
+fun perambulate_V2 : V2;
+fun perambulation_N : N;
+fun perambulator_N : N;
+fun perceivable_A : A;
+fun perceive_V2 : V2;
+fun perceiver_N : N;
+fun percent_N : N;
+fun percentage_N : N;
+fun perceptibility_N : N;
+fun perceptible_A : A;
+fun perception_N : N;
+fun perceptive_A : A;
+fun perceptual_A : A;
+fun perch_N : N;
+fun perch_V : V;
+fun perch_V2 : V2;
+fun perchance_Adv : Adv;
+fun percipient_A : A;
+fun percolate_V : V;
+fun percolate_V2 : V2;
+fun percolator_N : N;
+fun percussion_N : N;
+fun percussionist_N : N;
+fun percy_PN : PN;
+fun perdition_N : N;
+fun peregrination_N : N;
+fun peremptory_A : A;
+fun perennial_A : A;
+fun perennial_N : N;
+fun perfect_A : A;
+fun perfect_V2 : V2;
+fun perfectibility_N : N;
+fun perfectible_A : A;
+fun perfection_N : N;
+fun perfectionist_N : N;
+fun perfervid_A : A;
+fun perfidious_A : A;
+fun perfidiousness_N : N;
+fun perfidy_N : N;
+fun perforate_V2 : V2;
+fun perforation_N : N;
+fun perforce_Adv : Adv;
+fun perform_V : V;
+fun perform_V2 : V2;
+fun performance_N : N;
+fun performer_N : N;
+fun perfume_N : N;
+fun perfume_V2 : V2;
+fun perfumer_N : N;
+fun perfunctory_A : A;
+fun pergola_N : N;
+fun perhaps_Adv : Adv;
+fun peri_N : N;
+fun perigee_N : N;
+fun perihelion_N : N;
+fun peril_N : N;
+fun peril_V2 : V2;
+fun perilous_A : A;
+fun perimeter_N : N;
+fun period_N : N;
+fun periodic_A : A;
+fun periodical_A : A;
+fun periodical_N : N;
+fun peripatetic_A : A;
+fun peripheral_A : A;
+fun periphery_N : N;
+fun periphrasis_N : N;
+fun periphrastic_A : A;
+fun periscope_N : N;
+fun perish_V : V;
+fun perish_V2 : V2;
+fun perishable_A : A;
+fun perisher_N : N;
+fun peristyle_N : N;
+fun peritonitis_N : N;
+fun periwig_N : N;
+fun periwinkle_N : N;
+fun perjure_V2 : V2;
+fun perjurer_N : N;
+fun perjury_N : N;
+fun perk_N : N;
+fun perk_V : V;
+fun perk_V2 : V2;
+fun perkily_Adv : Adv;
+fun perkiness_N : N;
+fun perky_A : A;
+fun perm_N : N;
+fun perm_PN : PN;
+fun perm_V2 : V2;
+fun permafrost_N : N;
+fun permanence_N : N;
+fun permanency_N : N;
+fun permanent_A : A;
+fun permanganate_N : N;
+fun permeability_N : N;
+fun permeable_A : A;
+fun permeate_V : V;
+fun permeate_V2 : V2;
+fun permeation_N : N;
+fun permissible_A : A;
+fun permission_N : N;
+fun permissive_A : A;
+fun permissiveness_N : N;
+fun permit_N : N;
+fun permit_V : V;
+fun permit_V2 : V2;
+fun permutation_N : N;
+fun permute_V2 : V2;
+fun pernicious_A : A;
+fun perniciousness_N : N;
+fun pernickety_A : A;
+fun peroration_N : N;
+fun peroxide_N : N;
+fun perpendicular_A : A;
+fun perpendicular_N : N;
+fun perpetrate_V2 : V2;
+fun perpetration_N : N;
+fun perpetrator_N : N;
+fun perpetual_A : A;
+fun perpetuate_V2 : V2;
+fun perpetuation_N : N;
+fun perpetuity_N : N;
+fun perplex_V2 : V2;
+fun perplexed_A : A;
+fun perplexity_N : N;
+fun perquisite_N : N;
+fun perry_N : N;
+fun persecute_V2 : V2;
+fun persecution_N : N;
+fun persecutor_N : N;
+fun perseverance_N : N;
+fun persevere_V : V;
+fun persevering_A : A;
+fun pershore_PN : PN;
+fun persia_PN : PN;
+fun persian_A : A;
+fun persian_N : N;
+fun persiflage_N : N;
+fun persimmon_N : N;
+fun persist_V : V;
+fun persistence_N : N;
+fun persistent_A : A;
+fun person_N : N;
+fun persona_N : N;
+fun persona_grata_N : N;
+fun persona_non_grata_N : N;
+fun personable_A : A;
+fun personage_N : N;
+fun personal_A : A;
+fun personal_N : N;
+fun personality_N : N;
+fun personalize_V2 : V2;
+fun personalty_N : N;
+fun personate_V2 : V2;
+fun personation_N : N;
+fun personification_N : N;
+fun personify_V2 : V2;
+fun perspective_N : N;
+fun perspex_N : N;
+fun perspicacious_A : A;
+fun perspicacity_N : N;
+fun perspicuity_N : N;
+fun perspicuous_A : A;
+fun perspicuousness_N : N;
+fun perspiration_N : N;
+fun perspire_V : V;
+fun persuadable_A : A;
+fun persuade_V2 : V2;
+fun persuasion_N : N;
+fun persuasive_A : A;
+fun persuasiveness_N : N;
+fun pert_A : A;
+fun pertain_V : V;
+fun perth_PN : PN;
+fun pertinacious_A : A;
+fun pertinacity_N : N;
+fun pertinence_N : N;
+fun pertinent_A : A;
+fun pertness_N : N;
+fun perturb_V2 : V2;
+fun perturbation_N : N;
+fun peru_PN : PN;
+fun perugia_PN : PN;
+fun peruke_N : N;
+fun perusal_N : N;
+fun peruse_V2 : V2;
+fun peruvian_A : A;
+fun peruvian_N : N;
+fun pervade_V2 : V2;
+fun pervasion_N : N;
+fun pervasive_A : A;
+fun pervasiveness_N : N;
+fun perverse_A : A;
+fun perverseness_N : N;
+fun perversion_N : N;
+fun perversity_N : N;
+fun pervert_N : N;
+fun pervert_V2 : V2;
+fun pescara_PN : PN;
+fun peseta_N : N;
+fun pesky_A : A;
+fun peso_N : N;
+fun pessary_N : N;
+fun pessimism_N : N;
+fun pessimist_N : N;
+fun pessimistic_A : A;
+fun pessimistically_Adv : Adv;
+fun pest_N : N;
+fun pester_V2 : V2;
+fun pesticide_N : N;
+fun pestiferous_A : A;
+fun pestilence_N : N;
+fun pestilent_A : A;
+fun pestilential_A : A;
+fun pestle_N : N;
+fun pestle_V2 : V2;
+fun pet_N : N;
+fun pet_V2 : V2;
+fun petal_N : N;
+fun petaled_A : A;
+fun petalled_A : A;
+fun petard_N : N;
+fun pete_PN : PN;
+fun peter_PN : PN;
+fun peter_V : V;
+fun peterborough_PN : PN;
+fun peterhead_PN : PN;
+fun peterlee_PN : PN;
+fun petersfield_PN : PN;
+fun petit_bourgeois_N : N;
+fun petite_A : A;
+fun petition_N : N;
+fun petition_V : V;
+fun petition_V2 : V2;
+fun petitioner_N : N;
+fun petrel_N : N;
+fun petrifaction_N : N;
+fun petrify_V : V;
+fun petrify_V2 : V2;
+fun petro_chemical_N : N;
+fun petrol_N : N;
+fun petroleum_N : N;
+fun petrology_N : N;
+fun petticoat_N : N;
+fun pettifogging_A : A;
+fun pettily_Adv : Adv;
+fun pettiness_N : N;
+fun pettish_A : A;
+fun pettishness_N : N;
+fun petty_A : A;
+fun petulance_N : N;
+fun petulant_A : A;
+fun petunia_N : N;
+fun pew_N : N;
+fun pew_opener_N : N;
+fun pewit_N : N;
+fun pewter_N : N;
+fun peyote_N : N;
+fun pfennig_N : N;
+fun phaeton_N : N;
+fun phagocyte_N : N;
+fun phalanx_N : N;
+fun phallic_A : A;
+fun phallus_N : N;
+fun phantasm_N : N;
+fun phantasmagoria_N : N;
+fun phantasmal_A : A;
+fun phantasy_N : N;
+fun phantom_N : N;
+fun pharaoh_N : N;
+fun pharisaic_A : A;
+fun pharisaical_A : A;
+fun pharisee_N : N;
+fun pharmaceutical_A : A;
+fun pharmacist_N : N;
+fun pharmacological_A : A;
+fun pharmacologist_N : N;
+fun pharmacology_N : N;
+fun pharmacopoeia_N : N;
+fun pharmacy_N : N;
+fun pharos_N : N;
+fun pharyngitis_N : N;
+fun pharynx_N : N;
+fun phase_N : N;
+fun phase_V2 : V2;
+fun phd_N : N;
+fun pheasant_N : N;
+fun phenobarbitone_N : N;
+fun phenol_N : N;
+fun phenomenal_A : A;
+fun phenomenon_N : N;
+fun phial_N : N;
+fun phil_PN : PN;
+fun philadelphia_PN : PN;
+fun philander_V : V;
+fun philanderer_N : N;
+fun philanthropic_A : A;
+fun philanthropically_Adv : Adv;
+fun philanthropist_N : N;
+fun philanthropy_N : N;
+fun philatelic_A : A;
+fun philatelist_N : N;
+fun philately_N : N;
+fun philharmonic_A : A;
+fun philhellene_A : A;
+fun philhellene_N : N;
+fun philhellenic_A : A;
+fun philip_PN : PN;
+fun philippa_PN : PN;
+fun philippine_A : A;
+fun philippine_N : N;
+fun philippines_PN : PN;
+fun philistine_N : N;
+fun philistinism_N : N;
+fun philological_A : A;
+fun philologist_N : N;
+fun philology_N : N;
+fun philosopher_N : N;
+fun philosophic_A : A;
+fun philosophical_A : A;
+fun philosophize_V : V;
+fun philosophy_N : N;
+fun philtre_N : N;
+fun phlebitis_N : N;
+fun phlegm_N : N;
+fun phlegmatic_A : A;
+fun phlegmatically_Adv : Adv;
+fun phlox_N : N;
+fun phnom_penh_PN : PN;
+fun phobia_N : N;
+fun phoebe_PN : PN;
+fun phoenix_N : N;
+fun phoenix_PN : PN;
+fun phone_N : N;
+fun phone_V : V;
+fun phone_V2 : V2;
+fun phone_in_N : N;
+fun phonebooth_N : N;
+fun phonecall_N : N;
+fun phoneme_N : N;
+fun phonemic_A : A;
+fun phonemics_N : N;
+fun phonetic_A : A;
+fun phonetically_Adv : Adv;
+fun phonetician_N : N;
+fun phonetics_N : N;
+fun phoney_A : A;
+fun phoney_N : N;
+fun phonic_A : A;
+fun phonics_N : N;
+fun phonograph_N : N;
+fun phonological_A : A;
+fun phonology_N : N;
+fun phony_A : A;
+fun phony_N : N;
+fun phosgene_N : N;
+fun phosphate_N : N;
+fun phosphorescence_N : N;
+fun phosphorescent_A : A;
+fun phosphoric_A : A;
+fun phosphorous_A : A;
+fun phosphorus_N : N;
+fun photo_N : N;
+fun photocopier_N : N;
+fun photocopy_N : N;
+fun photocopy_V2 : V2;
+fun photoelectric_A : A;
+fun photoflash_N : N;
+fun photogenic_A : A;
+fun photograph_N : N;
+fun photograph_V2 : V2;
+fun photographer_N : N;
+fun photographic_A : A;
+fun photographically_Adv : Adv;
+fun photography_N : N;
+fun photogravure_N : N;
+fun photolithography_N : N;
+fun photometer_N : N;
+fun photon_N : N;
+fun photosensitize_V2 : V2;
+fun photostat_N : N;
+fun photostat_V2 : V2;
+fun photosynthesis_N : N;
+fun phrasal_A : A;
+fun phrase_N : N;
+fun phrase_V2 : V2;
+fun phrase_book_N : N;
+fun phraseology_N : N;
+fun phrenetic_A : A;
+fun phrenologist_N : N;
+fun phrenology_N : N;
+fun phthisis_N : N;
+fun phut_Adv : Adv;
+fun phyllis_PN : PN;
+fun phylum_N : N;
+fun physic_N : N;
+fun physical_A : A;
+fun physician_N : N;
+fun physicist_N : N;
+fun physics_N : N;
+fun physiognomy_N : N;
+fun physiological_A : A;
+fun physiologist_N : N;
+fun physiology_N : N;
+fun physiotherapist_N : N;
+fun physiotherapy_N : N;
+fun physique_N : N;
+fun pi_N : N;
+fun piacenza_PN : PN;
+fun pianissimo_A : A;
+fun pianissimo_Adv : Adv;
+fun pianist_N : N;
+fun piano_A : A;
+fun piano_Adv : Adv;
+fun piano_N : N;
+fun pianoforte_N : N;
+fun pianola_N : N;
+fun piastre_N : N;
+fun piazza_N : N;
+fun pibroch_N : N;
+fun pica_N : N;
+fun picador_N : N;
+fun picaresque_A : A;
+fun piccalilli_N : N;
+fun piccaninny_N : N;
+fun piccolo_N : N;
+fun pick_N : N;
+fun pick_V : V;
+fun pick_V2 : V2;
+fun pick_me_up_N : N;
+fun pick_up_N : N;
+fun pickaback_Adv : Adv;
+fun pickaxe_N : N;
+fun picker_N : N;
+fun pickerel_N : N;
+fun picket_N : N;
+fun picket_V : V;
+fun picket_V2 : V2;
+fun picking_N : N;
+fun pickle_N : N;
+fun pickle_V2 : V2;
+fun pickpocket_N : N;
+fun picnic_N : N;
+fun picnic_V : V;
+fun picnicker_N : N;
+fun picric_A : A;
+fun pictorial_A : A;
+fun pictorial_N : N;
+fun picture_N : N;
+fun picture_V2 : V2;
+fun picture_book_N : N;
+fun picture_card_N : N;
+fun picture_gallery_N : N;
+fun picturesque_A : A;
+fun picturesqueness_N : N;
+fun piddle_N : N;
+fun piddle_V : V;
+fun piddling_A : A;
+fun pidgin_N : N;
+fun pie_N : N;
+fun pie_crust_N : N;
+fun piebald_A : A;
+fun piece_N : N;
+fun piece_V2 : V2;
+fun piecemeal_A : A;
+fun piecemeal_Adv : Adv;
+fun piecework_N : N;
+fun pied_A : A;
+fun pied_a_terre_N : N;
+fun pier_N : N;
+fun pier_glass_N : N;
+fun pierce_V : V;
+fun pierce_V2 : V2;
+fun piercing_A : A;
+fun pierrot_N : N;
+fun piety_N : N;
+fun pieta_N : N;
+fun piffle_N : N;
+fun piffle_V : V;
+fun piffling_A : A;
+fun pig_N : N;
+fun pig_V : V;
+fun pig_headed_A : A;
+fun pig_headedness_N : N;
+fun pig_iron_N : N;
+fun pig_sticking_N : N;
+fun pigboat_N : N;
+fun pigeon_N : N;
+fun pigeon_breasted_A : A;
+fun pigeon_toed_A : A;
+fun pigeonhole_N : N;
+fun pigeonhole_V2 : V2;
+fun piggery_N : N;
+fun piggish_A : A;
+fun piggishness_N : N;
+fun piggy_A : A;
+fun piggy_N : N;
+fun piggyback_N : N;
+fun piglet_N : N;
+fun pigment_N : N;
+fun pigmentation_N : N;
+fun pigmy_N : N;
+fun pigskin_N : N;
+fun pigsty_N : N;
+fun pigswill_N : N;
+fun pigtail_N : N;
+fun pigwash_N : N;
+fun pike_N : N;
+fun pikestaff_N : N;
+fun pilaf_N : N;
+fun pilaff_N : N;
+fun pilaster_N : N;
+fun pilau_N : N;
+fun pilchard_N : N;
+fun pile_N : N;
+fun pile_V : V;
+fun pile_V2 : V2;
+fun pile_driver_N : N;
+fun pile_dwelling_N : N;
+fun pile_up_N : N;
+fun piles_N : N;
+fun pilfer_V : V;
+fun pilfer_V2 : V2;
+fun pilferage_N : N;
+fun pilferer_N : N;
+fun pilgrim_N : N;
+fun pilgrimage_N : N;
+fun pill_N : N;
+fun pill_PN : PN;
+fun pillage_N : N;
+fun pillage_V2 : V2;
+fun pillager_N : N;
+fun pillar_N : N;
+fun pillar_box_N : N;
+fun pillared_A : A;
+fun pillbox_N : N;
+fun pillion_N : N;
+fun pillory_N : N;
+fun pillow_N : N;
+fun pillow_V2 : V2;
+fun pillow_fight_N : N;
+fun pillowcase_N : N;
+fun pillowslip_N : N;
+fun pilot_N : N;
+fun pilot_V2 : V2;
+fun pilot_boat_N : N;
+fun pilot_burner_N : N;
+fun pilot_cloth_N : N;
+fun pilot_engine_N : N;
+fun pilot_fish_N : N;
+fun pilot_light_N : N;
+fun pimento_N : N;
+fun pimp_N : N;
+fun pimp_V : V;
+fun pimpernel_N : N;
+fun pimple_N : N;
+fun pimpled_A : A;
+fun pimply_A : A;
+fun pin_N : N;
+fun pin_V2 : V2;
+fun pin_money_N : N;
+fun pin_table_N : N;
+fun pin_up_N : N;
+fun pinafore_N : N;
+fun pinball_N : N;
+fun pince_nez_N : N;
+fun pincer_N : N;
+fun pinch_N : N;
+fun pinch_V : V;
+fun pinch_V2 : V2;
+fun pinchbeck_A : A;
+fun pinchbeck_N : N;
+fun pincushion_N : N;
+fun pine_N : N;
+fun pine_V : V;
+fun pineal_A : A;
+fun pineapple_N : N;
+fun ping_N : N;
+fun ping_V : V;
+fun pingpong_N : N;
+fun pinhead_N : N;
+fun pinion_N : N;
+fun pinion_V2 : V2;
+fun pink_A : A;
+fun pink_N : N;
+fun pink_V : V;
+fun pink_V2 : V2;
+fun pinkish_A : A;
+fun pinnace_N : N;
+fun pinnacle_N : N;
+fun pinnacle_V2 : V2;
+fun pinnate_A : A;
+fun pinny_N : N;
+fun pinpoint_N : N;
+fun pinpoint_V2 : V2;
+fun pinprick_N : N;
+fun pinstripe_A : A;
+fun pint_N : N;
+fun pioneer_N : N;
+fun pioneer_V : V;
+fun pioneer_V2 : V2;
+fun pious_A : A;
+fun pip_N : N;
+fun pip_V2 : V2;
+fun pipal_N : N;
+fun pipe_N : N;
+fun pipe_V : V;
+fun pipe_V2 : V2;
+fun pipe_organ_N : N;
+fun pipe_rack_N : N;
+fun pipeclay_N : N;
+fun pipedream_N : N;
+fun pipeful_N : N;
+fun pipeline_N : N;
+fun piper_N : N;
+fun pipette_N : N;
+fun pipework_N : N;
+fun piping_A : A;
+fun piping_Adv : Adv;
+fun piping_N : N;
+fun pippin_N : N;
+fun pipsqueak_N : N;
+fun piquancy_N : N;
+fun piquant_A : A;
+fun pique_N : N;
+fun pique_V2 : V2;
+fun piquet_N : N;
+fun piracy_N : N;
+fun piraeus_PN : PN;
+fun piranha_N : N;
+fun pirate_N : N;
+fun pirate_V2 : V2;
+fun piratical_A : A;
+fun pirouette_N : N;
+fun pirouette_V : V;
+fun pis_aller_N : N;
+fun pisa_PN : PN;
+fun piscatorial_A : A;
+fun pisces_PN : PN;
+fun piss_N : N;
+fun piss_V : V;
+fun piss_V2 : V2;
+fun pissed_A : A;
+fun pistachio_N : N;
+fun pistil_N : N;
+fun pistol_N : N;
+fun piston_N : N;
+fun pit_N : N;
+fun pit_V2 : V2;
+fun pit_a_pat_Adv : Adv;
+fun pit_prop_N : N;
+fun pitch_N : N;
+fun pitch_V : V;
+fun pitch_V2 : V2;
+fun pitch_black_A : A;
+fun pitch_dark_A : A;
+fun pitchblende_N : N;
+fun pitcher_N : N;
+fun pitchfork_N : N;
+fun pitchfork_V2 : V2;
+fun piteous_A : A;
+fun pitfall_N : N;
+fun pith_N : N;
+fun pithead_N : N;
+fun pithily_Adv : Adv;
+fun pithy_A : A;
+fun pitiable_A : A;
+fun pitiful_A : A;
+fun pitiless_A : A;
+fun pitman_N : N;
+fun piton_N : N;
+fun pitsaw_N : N;
+fun pittance_N : N;
+fun pitter_patter_N : N;
+fun pittsburgh_PN : PN;
+fun pituitary_A : A;
+fun pituitary_N : N;
+fun pity_N : N;
+fun pity_V2 : V2;
+fun pitying_A : A;
+fun pivot_N : N;
+fun pivot_V : V;
+fun pivot_V2 : V2;
+fun pivotal_A : A;
+fun pixie_N : N;
+fun pixilated_A : A;
+fun pixy_N : N;
+fun pizza_N : N;
+fun pizzicato_A : A;
+fun pizzicato_Adv : Adv;
+fun placard_N : N;
+fun placard_V2 : V2;
+fun placate_V2 : V2;
+fun placatingly_Adv : Adv;
+fun place_N : N;
+fun place_V2 : V2;
+fun place_bet_N : N;
+fun place_name_N : N;
+fun placebo_N : N;
+fun placeman_N : N;
+fun placement_N : N;
+fun placenta_N : N;
+fun placeseeker_N : N;
+fun placid_A : A;
+fun placidity_N : N;
+fun placing_N : N;
+fun placket_N : N;
+fun plage_N : N;
+fun plagiarism_N : N;
+fun plagiarist_N : N;
+fun plagiarize_V2 : V2;
+fun plague_N : N;
+fun plague_V2 : V2;
+fun plague_spot_N : N;
+fun plaguy_A : A;
+fun plaice_N : N;
+fun plaid_N : N;
+fun plain_A : A;
+fun plain_Adv : Adv;
+fun plain_N : N;
+fun plain_V : V;
+fun plain_V2 : V2;
+fun plain_spoken_A : A;
+fun plainness_N : N;
+fun plainsman_N : N;
+fun plaint_N : N;
+fun plaintiff_N : N;
+fun plaintive_A : A;
+fun plaintiveness_N : N;
+fun plait_N : N;
+fun plait_V2 : V2;
+fun plan_N : N;
+fun plan_V2 : V2;
+fun planchette_N : N;
+fun plane_N : N;
+fun plane_V : V;
+fun plane_V2 : V2;
+fun plane_tree_N : N;
+fun planet_N : N;
+fun planetarium_N : N;
+fun planetary_A : A;
+fun plangent_A : A;
+fun plank_N : N;
+fun plank_V2 : V2;
+fun plank_bed_N : N;
+fun planking_N : N;
+fun plankton_N : N;
+fun planless_A : A;
+fun planner_N : N;
+fun plant_N : N;
+fun plant_V2 : V2;
+fun plant_louse_N : N;
+fun plantain_N : N;
+fun plantation_N : N;
+fun planter_N : N;
+fun plaque_N : N;
+fun plash_N : N;
+fun plash_V : V;
+fun plash_V2 : V2;
+fun plasm_N : N;
+fun plasma_N : N;
+fun plaster_N : N;
+fun plaster_V2 : V2;
+fun plasterboard_N : N;
+fun plastered_A : A;
+fun plasterer_N : N;
+fun plastic_A : A;
+fun plastic_N : N;
+fun plastic_bomb_N : N;
+fun plasticine_N : N;
+fun plasticity_N : N;
+fun plastics_N : N;
+fun plate_N : N;
+fun plate_V2 : V2;
+fun plate_glass_N : N;
+fun plate_powder_N : N;
+fun plate_rack_N : N;
+fun plateau_N : N;
+fun plateful_N : N;
+fun platelayer_N : N;
+fun platform_N : N;
+fun plating_N : N;
+fun platinum_N : N;
+fun platitude_N : N;
+fun platitudinous_A : A;
+fun platonic_A : A;
+fun platoon_N : N;
+fun platter_N : N;
+fun platypus_N : N;
+fun plaudit_N : N;
+fun plausibility_N : N;
+fun plausible_A : A;
+fun play_N : N;
+fun play_V : V;
+fun play_V2 : V2;
+fun play_acting_N : N;
+fun play_actor_N : N;
+fun play_box_N : N;
+fun play_off_N : N;
+fun play_reading_N : N;
+fun playback_N : N;
+fun playbill_N : N;
+fun playboy_N : N;
+fun player_N : N;
+fun player_piano_N : N;
+fun playfellow_N : N;
+fun playful_A : A;
+fun playfulness_N : N;
+fun playgoer_N : N;
+fun playground_N : N;
+fun playgroup_N : N;
+fun playhouse_N : N;
+fun playing_N : N;
+fun playing_card_N : N;
+fun playing_field_N : N;
+fun playlet_N : N;
+fun playmate_N : N;
+fun playpen_N : N;
+fun playroom_N : N;
+fun playschool_N : N;
+fun playsuit_N : N;
+fun plaything_N : N;
+fun playtime_N : N;
+fun playwright_N : N;
+fun plaza_N : N;
+fun plc_PN : PN;
+fun plea_N : N;
+fun pleach_V2 : V2;
+fun plead_V : V;
+fun plead_V2 : V2;
+fun pleadingly_Adv : Adv;
+fun pleasance_N : N;
+fun pleasant_A : A;
+fun pleasantness_N : N;
+fun pleasantry_N : N;
+fun please_V : V;
+fun please_V2 : V2;
+fun pleased_A : A;
+fun pleasing_A : A;
+fun pleasurable_A : A;
+fun pleasure_N : N;
+fun pleasure_boat_N : N;
+fun pleasure_craft_N : N;
+fun pleasure_ground_N : N;
+fun pleat_N : N;
+fun pleat_V2 : V2;
+fun pleb_N : N;
+fun plebeian_A : A;
+fun plebeian_N : N;
+fun plebiscite_N : N;
+fun plectrum_N : N;
+fun pledge_N : N;
+fun pledge_V2 : V2;
+fun plenary_A : A;
+fun plenipotentiary_N : N;
+fun plenitude_N : N;
+fun plenteous_A : A;
+fun plentiful_A : A;
+fun plenty_Adv : Adv;
+fun plenty_N : N;
+fun pleonasm_N : N;
+fun plethora_N : N;
+fun pleurisy_N : N;
+fun plexus_N : N;
+fun pliability_N : N;
+fun pliable_A : A;
+fun pliancy_N : N;
+fun pliant_A : A;
+fun plight_N : N;
+fun plight_V2 : V2;
+fun plimsoll_N : N;
+fun plinth_N : N;
+fun plod_V : V;
+fun plod_V2 : V2;
+fun plodder_N : N;
+fun plodding_A : A;
+fun plonk_Adv : Adv;
+fun plonk_N : N;
+fun plonk_V : V;
+fun plop_Adv : Adv;
+fun plop_N : N;
+fun plop_V : V;
+fun plosive_A : A;
+fun plosive_N : N;
+fun plot_N : N;
+fun plot_V : V;
+fun plot_V2 : V2;
+fun plotter_N : N;
+fun plough_N : N;
+fun plough_V : V;
+fun plough_V2 : V2;
+fun ploughboy_N : N;
+fun ploughman_N : N;
+fun ploughshare_N : N;
+fun plover_N : N;
+fun ploy_N : N;
+fun pluck_N : N;
+fun pluck_V : V;
+fun pluck_V2 : V2;
+fun pluckily_Adv : Adv;
+fun plucky_A : A;
+fun plug_N : N;
+fun plug_V : V;
+fun plug_V2 : V2;
+fun plughole_N : N;
+fun plum_N : N;
+fun plum_pudding_N : N;
+fun plumage_N : N;
+fun plumb_Adv : Adv;
+fun plumb_N : N;
+fun plumb_V2 : V2;
+fun plumbago_N : N;
+fun plumber_N : N;
+fun plumbing_N : N;
+fun plume_N : N;
+fun plume_V2 : V2;
+fun plummet_N : N;
+fun plummet_V : V;
+fun plummy_A : A;
+fun plump_A : A;
+fun plump_Adv : Adv;
+fun plump_N : N;
+fun plump_V : V;
+fun plump_V2 : V2;
+fun plunder_N : N;
+fun plunder_V : V;
+fun plunder_V2 : V2;
+fun plunderer_N : N;
+fun plunge_N : N;
+fun plunge_V : V;
+fun plunge_V2 : V2;
+fun plunger_N : N;
+fun plunk_N : N;
+fun pluperfect_A : A;
+fun pluperfect_N : N;
+fun plural_A : A;
+fun plural_N : N;
+fun pluralism_N : N;
+fun pluralist_N : N;
+fun plurality_N : N;
+fun plus_A : A;
+fun plus_N : N;
+fun plush_A : A;
+fun plush_N : N;
+fun plushy_A : A;
+fun pluto_PN : PN;
+fun plutocracy_N : N;
+fun plutocrat_N : N;
+fun plutocratic_A : A;
+fun plutonium_N : N;
+fun ply_N : N;
+fun ply_V : V;
+fun ply_V2 : V2;
+fun plymouth_PN : PN;
+fun plywood_N : N;
+fun pneumatic_A : A;
+fun pneumatically_Adv : Adv;
+fun pneumonia_N : N;
+fun po_N : N;
+fun poach_V : V;
+fun poach_V2 : V2;
+fun poacher_N : N;
+fun pock_N : N;
+fun pocked_A : A;
+fun pocket_N : N;
+fun pocket_V2 : V2;
+fun pocket_book_N : N;
+fun pocket_handkerchief_N : N;
+fun pocket_knife_N : N;
+fun pocket_money_N : N;
+fun pocketful_N : N;
+fun pockmarked_A : A;
+fun pod_N : N;
+fun pod_V : V;
+fun pod_V2 : V2;
+fun podgy_A : A;
+fun podiatry_N : N;
+fun podium_N : N;
+fun poem_N : N;
+fun poesy_N : N;
+fun poet_N : N;
+fun poetess_N : N;
+fun poetic_A : A;
+fun poetical_A : A;
+fun poetry_N : N;
+fun pogrom_N : N;
+fun poignancy_N : N;
+fun poignant_A : A;
+fun poinsettia_N : N;
+fun point_N : N;
+fun point_V : V;
+fun point_V2 : V2;
+fun point_blank_A : A;
+fun point_blank_Adv : Adv;
+fun point_duty_N : N;
+fun pointed_A : A;
+fun pointer_N : N;
+fun pointless_A : A;
+fun pointsman_N : N;
+fun poise_N : N;
+fun poise_V : V;
+fun poise_V2 : V2;
+fun poison_N : N;
+fun poison_V2 : V2;
+fun poison_gas_N : N;
+fun poison_ivy_N : N;
+fun poisoner_N : N;
+fun poisonous_A : A;
+fun poke_N : N;
+fun poke_V : V;
+fun poke_V2 : V2;
+fun poke_bonnet_N : N;
+fun poker_N : N;
+fun poker_face_N : N;
+fun poky_A : A;
+fun poland_PN : PN;
+fun polar_A : A;
+fun polaris_N : N;
+fun polarity_N : N;
+fun polarization_N : N;
+fun polarize_V2 : V2;
+fun polaroid_N : N;
+fun pole_N : N;
+fun pole_jumping_N : N;
+fun pole_star_N : N;
+fun pole_vault_N : N;
+fun poleax_N : N;
+fun poleax_V2 : V2;
+fun poleaxe_N : N;
+fun poleaxe_V2 : V2;
+fun polecat_N : N;
+fun polemic_A : A;
+fun polemic_N : N;
+fun polemically_Adv : Adv;
+fun police_V2 : V2;
+fun police_office_N : N;
+fun police_officer_N : N;
+fun police_station_N : N;
+fun policeman_N : N;
+fun policewoman_N : N;
+fun policy_N : N;
+fun polio_N : N;
+fun poliomyelitis_N : N;
+fun polish_A : A;
+fun polish_N : N;
+fun polish_V : V;
+fun polish_V2 : V2;
+fun polisher_N : N;
+fun politburo_N : N;
+fun polite_A : A;
+fun politeness_N : N;
+fun politic_A : A;
+fun political_A : A;
+fun politician_N : N;
+fun politicize_V : V;
+fun politicize_V2 : V2;
+fun politick_V : V;
+fun politics_N : N;
+fun polity_N : N;
+fun polka_N : N;
+fun poll_N : N;
+fun poll_V : V;
+fun poll_V2 : V2;
+fun poll_tax_N : N;
+fun pollard_N : N;
+fun pollard_V2 : V2;
+fun pollen_N : N;
+fun pollinate_V2 : V2;
+fun pollination_N : N;
+fun polling_booth_N : N;
+fun polling_day_N : N;
+fun polling_station_N : N;
+fun pollster_N : N;
+fun pollutant_N : N;
+fun pollute_V2 : V2;
+fun pollution_N : N;
+fun polly_PN : PN;
+fun polo_N : N;
+fun polo_neck_A : A;
+fun polonaise_N : N;
+fun polony_N : N;
+fun poltergeist_N : N;
+fun poltroon_N : N;
+fun poltroonery_N : N;
+fun poly_N : N;
+fun polyandrous_A : A;
+fun polyandry_N : N;
+fun polyanthus_N : N;
+fun polygamist_N : N;
+fun polygamous_A : A;
+fun polygamy_N : N;
+fun polyglot_A : A;
+fun polyglot_N : N;
+fun polygon_N : N;
+fun polygonal_A : A;
+fun polymorphic_A : A;
+fun polymorphous_A : A;
+fun polynomial_A : A;
+fun polynomial_N : N;
+fun polyp_N : N;
+fun polyphonic_A : A;
+fun polyphony_N : N;
+fun polypus_N : N;
+fun polysyllabic_A : A;
+fun polysyllable_N : N;
+fun polytechnic_N : N;
+fun polytheism_N : N;
+fun polytheistic_A : A;
+fun polythene_N : N;
+fun pom_N : N;
+fun pomade_N : N;
+fun pomade_V2 : V2;
+fun pomegranate_N : N;
+fun pomelo_N : N;
+fun pommel_N : N;
+fun pommel_V2 : V2;
+fun pommy_N : N;
+fun pomp_N : N;
+fun pompon_N : N;
+fun pomposity_N : N;
+fun pompous_A : A;
+fun ponce_N : N;
+fun poncho_N : N;
+fun pond_N : N;
+fun ponder_V : V;
+fun ponder_V2 : V2;
+fun ponderable_A : A;
+fun ponderous_A : A;
+fun pone_N : N;
+fun pongee_N : N;
+fun poniard_N : N;
+fun poniard_V2 : V2;
+fun pont_llan_fraith_PN : PN;
+fun pontardawe_PN : PN;
+fun pontardulais_PN : PN;
+fun pontefract_PN : PN;
+fun pontiff_N : N;
+fun pontifical_A : A;
+fun pontificate_N : N;
+fun pontificate_V : V;
+fun pontoon_N : N;
+fun pontycymmer_PN : PN;
+fun pontypool_PN : PN;
+fun pony_N : N;
+fun pony_trekking_N : N;
+fun ponytail_N : N;
+fun poodle_N : N;
+fun poof_N : N;
+fun pooh_pooh_V2 : V2;
+fun pool_N : N;
+fun pool_V2 : V2;
+fun poole_PN : PN;
+fun poolroom_N : N;
+fun poona_PN : PN;
+fun poop_N : N;
+fun poor_A : A;
+fun poor_box_N : N;
+fun poor_rate_N : N;
+fun poor_spirited_A : A;
+fun poorhouse_N : N;
+fun poorly_A : A;
+fun poorness_N : N;
+fun pop_A : A;
+fun pop_Adv : Adv;
+fun pop_N : N;
+fun pop_V : V;
+fun pop_V2 : V2;
+fun popcorn_N : N;
+fun pope_N : N;
+fun popery_N : N;
+fun popeyed_A : A;
+fun popgun_N : N;
+fun popinjay_N : N;
+fun popish_A : A;
+fun poplar_N : N;
+fun poplin_N : N;
+fun poppa_N : N;
+fun poppet_N : N;
+fun poppy_N : N;
+fun poppycock_N : N;
+fun populace_N : N;
+fun popular_A : A;
+fun popularity_N : N;
+fun popularization_N : N;
+fun popularize_V2 : V2;
+fun populate_V2 : V2;
+fun population_N : N;
+fun populism_N : N;
+fun populist_N : N;
+fun populous_A : A;
+fun porcelain_N : N;
+fun porch_N : N;
+fun porcine_A : A;
+fun porcupine_N : N;
+fun pore_N : N;
+fun pore_V : V;
+fun pork_N : N;
+fun pork_barrel_N : N;
+fun pork_butcher_N : N;
+fun porker_N : N;
+fun porn_N : N;
+fun pornographer_N : N;
+fun pornographic_A : A;
+fun pornography_N : N;
+fun porosity_N : N;
+fun porous_A : A;
+fun porousness_N : N;
+fun porphyry_N : N;
+fun porpoise_N : N;
+fun porridge_N : N;
+fun porringer_N : N;
+fun port_N : N;
+fun port_V2 : V2;
+fun port_glasgow_PN : PN;
+fun port_talbot_PN : PN;
+fun portability_N : N;
+fun portable_A : A;
+fun portage_N : N;
+fun portal_N : N;
+fun portcullis_N : N;
+fun porte_cochere_N : N;
+fun portend_V2 : V2;
+fun portent_N : N;
+fun portentous_A : A;
+fun porter_N : N;
+fun porterage_N : N;
+fun porterhouse_N : N;
+fun portfolio_N : N;
+fun porthcawl_PN : PN;
+fun porthmadog_PN : PN;
+fun porthole_N : N;
+fun portico_N : N;
+fun portion_N : N;
+fun portion_V2 : V2;
+fun portishead_PN : PN;
+fun portiere_N : N;
+fun portland_PN : PN;
+fun portly_A : A;
+fun portmanteau_N : N;
+fun porto_alegre_PN : PN;
+fun portrait_N : N;
+fun portraitist_N : N;
+fun portraiture_N : N;
+fun portray_V2 : V2;
+fun portrayal_N : N;
+fun portsmouth_PN : PN;
+fun portugal_PN : PN;
+fun portuguese_A : A;
+fun portuguese_N : N;
+fun pose_N : N;
+fun pose_V : V;
+fun pose_V2 : V2;
+fun poser_N : N;
+fun poseur_N : N;
+fun poseuse_N : N;
+fun posh_A : A;
+fun posh_V2 : V2;
+fun posit_V2 : V2;
+fun position_N : N;
+fun position_V2 : V2;
+fun positive_A : A;
+fun positive_N : N;
+fun positiveness_N : N;
+fun positivism_N : N;
+fun positivist_N : N;
+fun posse_N : N;
+fun possess_V2 : V2;
+fun possession_N : N;
+fun possessive_A : A;
+fun possessiveness_N : N;
+fun possessor_N : N;
+fun posset_N : N;
+fun possibility_N : N;
+fun possible_A : A;
+fun possible_N : N;
+fun possum_N : N;
+fun post_N : N;
+fun post_V : V;
+fun post_V2 : V2;
+fun post_chaise_N : N;
+fun post_free_A : A;
+fun post_free_Adv : Adv;
+fun post_haste_Adv : Adv;
+fun post_horse_N : N;
+fun post_meridiem_Adv : Adv;
+fun post_mortem_A : A;
+fun post_mortem_N : N;
+fun post_paid_A : A;
+fun post_paid_Adv : Adv;
+fun postage_N : N;
+fun postage_stamp_N : N;
+fun postal_A : A;
+fun postbag_N : N;
+fun postbox_N : N;
+fun postcard_N : N;
+fun postcode_N : N;
+fun postdate_V2 : V2;
+fun poste_restante_N : N;
+fun poster_N : N;
+fun posterior_A : A;
+fun posterior_N : N;
+fun posterity_N : N;
+fun postern_N : N;
+fun postgraduate_A : A;
+fun postgraduate_N : N;
+fun posthumous_A : A;
+fun postilion_N : N;
+fun postillion_N : N;
+fun postman_N : N;
+fun postmark_N : N;
+fun postmark_V2 : V2;
+fun postmaster_N : N;
+fun postmistress_N : N;
+fun postpone_V2 : V2;
+fun postponement_N : N;
+fun postprandial_A : A;
+fun postscript_N : N;
+fun postulant_N : N;
+fun postulate_N : N;
+fun postulate_V2 : V2;
+fun postural_A : A;
+fun posture_N : N;
+fun posture_V : V;
+fun posture_V2 : V2;
+fun posturing_N : N;
+fun posy_N : N;
+fun pot_N : N;
+fun pot_V : V;
+fun pot_V2 : V2;
+fun pot_shot_N : N;
+fun pot_trained_A : A;
+fun potable_A : A;
+fun potash_N : N;
+fun potassium_N : N;
+fun potation_N : N;
+fun potato_N : N;
+fun potbellied_A : A;
+fun potbelly_N : N;
+fun potboiler_N : N;
+fun potbound_A : A;
+fun potboy_N : N;
+fun poteen_N : N;
+fun potency_N : N;
+fun potent_A : A;
+fun potentate_N : N;
+fun potential_A : A;
+fun potential_N : N;
+fun potentiality_N : N;
+fun pothead_N : N;
+fun pother_N : N;
+fun potherb_N : N;
+fun pothole_N : N;
+fun potholer_N : N;
+fun pothook_N : N;
+fun pothouse_N : N;
+fun pothunter_N : N;
+fun potion_N : N;
+fun potman_N : N;
+fun potpourri_N : N;
+fun potsdam_PN : PN;
+fun potsherd_N : N;
+fun pottage_N : N;
+fun potted_A : A;
+fun potter_N : N;
+fun potter_V : V;
+fun potterer_N : N;
+fun potters_bar_PN : PN;
+fun pottery_N : N;
+fun potty_A : A;
+fun potty_N : N;
+fun pouch_N : N;
+fun pouch_V2 : V2;
+fun pouf_N : N;
+fun pouffe_N : N;
+fun poulterer_N : N;
+fun poultice_N : N;
+fun poultice_V2 : V2;
+fun pounce_N : N;
+fun pounce_V : V;
+fun pound_N : N;
+fun pound_V : V;
+fun pound_V2 : V2;
+fun poundage_N : N;
+fun pounder_N : N;
+fun pour_V : V;
+fun pour_V2 : V2;
+fun pout_N : N;
+fun pout_V : V;
+fun pout_V2 : V2;
+fun poutingly_Adv : Adv;
+fun poverty_N : N;
+fun poverty_stricken_A : A;
+fun pow_N : N;
+fun powder_N : N;
+fun powder_V : V;
+fun powder_V2 : V2;
+fun powder_flask_N : N;
+fun powder_horn_N : N;
+fun powder_magazine_N : N;
+fun powder_puff_N : N;
+fun powder_room_N : N;
+fun powdered_A : A;
+fun powdery_A : A;
+fun power_N : N;
+fun power_V2 : V2;
+fun power_dive_N : N;
+fun power_dive_V2 : V2;
+fun power_point_N : N;
+fun power_station_N : N;
+fun powerboat_N : N;
+fun powered_A : A;
+fun powerful_A : A;
+fun powerhouse_N : N;
+fun powerless_A : A;
+fun powwow_N : N;
+fun powwow_V : V;
+fun powys_PN : PN;
+fun pox_N : N;
+fun poynton_PN : PN;
+fun poznan_PN : PN;
+fun pp_N : N;
+fun pr_N : N;
+fun practicability_N : N;
+fun practicable_A : A;
+fun practical_A : A;
+fun practicality_N : N;
+fun practice_N : N;
+fun practician_N : N;
+fun practise_V : V;
+fun practise_V2 : V2;
+fun practised_A : A;
+fun practitioner_N : N;
+fun praesidium_N : N;
+fun praetor_N : N;
+fun praetorian_A : A;
+fun pragmatic_A : A;
+fun pragmatically_Adv : Adv;
+fun pragmatism_N : N;
+fun pragmatist_N : N;
+fun prague_PN : PN;
+fun prairie_N : N;
+fun praise_N : N;
+fun praise_V2 : V2;
+fun praiseworthiness_N : N;
+fun praiseworthy_A : A;
+fun pram_N : N;
+fun prance_N : N;
+fun prance_V : V;
+fun prank_N : N;
+fun prate_V : V;
+fun prato_PN : PN;
+fun prattle_N : N;
+fun prattle_V : V;
+fun prattler_N : N;
+fun prawn_N : N;
+fun prawn_V : V;
+fun pray_V : V;
+fun pray_V2 : V2;
+fun prayer_N : N;
+fun prayer_book_N : N;
+fun prayer_mat_N : N;
+fun prayer_meeting_N : N;
+fun prayer_rug_N : N;
+fun prayer_wheel_N : N;
+fun pre_eminence_N : N;
+fun pre_eminent_A : A;
+fun pre_empt_V2 : V2;
+fun pre_emption_N : N;
+fun pre_emptive_A : A;
+fun pre_exist_V : V;
+fun pre_existence_N : N;
+fun pre_existent_A : A;
+fun pre_packaged_A : A;
+fun pre_raphaelite_A : A;
+fun pre_raphaelite_N : N;
+fun preach_V : V;
+fun preach_V2 : V2;
+fun preacher_N : N;
+fun preachify_V : V;
+fun preamble_N : N;
+fun prearrange_V2 : V2;
+fun prearrangement_N : N;
+fun prebend_N : N;
+fun prebendary_N : N;
+fun precarious_A : A;
+fun precariousness_N : N;
+fun precast_A : A;
+fun precaution_N : N;
+fun precautionary_A : A;
+fun precede_V : V;
+fun precede_V2 : V2;
+fun precedence_N : N;
+fun precedent_N : N;
+fun precedented_A : A;
+fun preceding_A : A;
+fun precentor_N : N;
+fun precept_N : N;
+fun preceptor_N : N;
+fun precession_N : N;
+fun precinct_N : N;
+fun preciosity_N : N;
+fun precious_A : A;
+fun precious_Adv : Adv;
+fun preciousness_N : N;
+fun precipice_N : N;
+fun precipitate_A : A;
+fun precipitate_N : N;
+fun precipitate_V2 : V2;
+fun precipitation_N : N;
+fun precipitous_A : A;
+fun precise_A : A;
+fun preciseness_N : N;
+fun precision_N : N;
+fun preclude_V2 : V2;
+fun preclusion_N : N;
+fun precocious_A : A;
+fun precociousness_N : N;
+fun precocity_N : N;
+fun precognition_N : N;
+fun preconceive_V2 : V2;
+fun preconception_N : N;
+fun preconcerted_A : A;
+fun precondition_N : N;
+fun preconditioned_A : A;
+fun precursor_N : N;
+fun precursory_A : A;
+fun predator_N : N;
+fun predatory_A : A;
+fun predecease_V2 : V2;
+fun predecessor_N : N;
+fun predestinate_A : A;
+fun predestinate_V2 : V2;
+fun predestination_N : N;
+fun predestine_V2 : V2;
+fun predetermination_N : N;
+fun predetermine_V2 : V2;
+fun predicament_N : N;
+fun predicate_N : N;
+fun predicate_V2 : V2;
+fun predicative_A : A;
+fun predict_V2 : V2;
+fun predictability_N : N;
+fun predictable_A : A;
+fun prediction_N : N;
+fun predictor_N : N;
+fun predigest_V2 : V2;
+fun predilection_N : N;
+fun predispose_V2 : V2;
+fun predisposition_N : N;
+fun predominance_N : N;
+fun predominant_A : A;
+fun predominate_V : V;
+fun preen_V2 : V2;
+fun prefab_N : N;
+fun prefabricate_V2 : V2;
+fun prefabrication_N : N;
+fun preface_N : N;
+fun preface_V2 : V2;
+fun prefatory_A : A;
+fun prefect_N : N;
+fun prefectural_A : A;
+fun prefecture_N : N;
+fun prefer_V2 : V2;
+fun preferable_A : A;
+fun preference_N : N;
+fun preferential_A : A;
+fun preferment_N : N;
+fun prefigure_V2 : V2;
+fun prefix_N : N;
+fun prefix_V2 : V2;
+fun pregnancy_N : N;
+fun pregnant_A : A;
+fun preheat_V2 : V2;
+fun prehensile_A : A;
+fun prehistoric_A : A;
+fun prehistorical_A : A;
+fun prehistory_N : N;
+fun prejudge_V2 : V2;
+fun prejudgement_N : N;
+fun prejudice_N : N;
+fun prejudice_V2 : V2;
+fun prejudicial_A : A;
+fun prelacy_N : N;
+fun prelate_N : N;
+fun prelim_N : N;
+fun preliminary_A : A;
+fun preliminary_N : N;
+fun prelude_N : N;
+fun prelude_V2 : V2;
+fun premarital_A : A;
+fun premature_A : A;
+fun premeditate_V2 : V2;
+fun premeditation_N : N;
+fun premier_A : A;
+fun premier_N : N;
+fun premiership_N : N;
+fun premise_N : N;
+fun premise_V2 : V2;
+fun premiss_N : N;
+fun premiss_V2 : V2;
+fun premium_N : N;
+fun premiere_N : N;
+fun premonition_N : N;
+fun premonitory_A : A;
+fun prenatal_A : A;
+fun prentice_N : N;
+fun preoccupation_N : N;
+fun preoccupy_V2 : V2;
+fun preordain_V2 : V2;
+fun prep_N : N;
+fun prepacked_A : A;
+fun preparation_N : N;
+fun preparatory_A : A;
+fun prepare_V : V;
+fun prepare_V2 : V2;
+fun preparedness_N : N;
+fun prepay_V2 : V2;
+fun preponderance_N : N;
+fun preponderant_A : A;
+fun preponderate_V : V;
+fun preposition_N : N;
+fun prepositional_A : A;
+fun prepossess_V2 : V2;
+fun prepossessing_A : A;
+fun prepossession_N : N;
+fun preposterous_A : A;
+fun prepuce_N : N;
+fun prerecord_V2 : V2;
+fun prerequisite_A : A;
+fun prerequisite_N : N;
+fun prerogative_N : N;
+fun pres_N : N;
+fun presage_N : N;
+fun presage_V2 : V2;
+fun presbyter_N : N;
+fun presbyterian_A : A;
+fun presbyterian_N : N;
+fun presbyterianism_N : N;
+fun presbytery_N : N;
+fun prescience_N : N;
+fun prescient_A : A;
+fun prescot_PN : PN;
+fun prescribe_V : V;
+fun prescribe_V2 : V2;
+fun prescript_N : N;
+fun prescription_N : N;
+fun prescriptive_A : A;
+fun presence_N : N;
+fun present_A : A;
+fun present_N : N;
+fun present_V2 : V2;
+fun present_day_A : A;
+fun presentable_A : A;
+fun presentation_N : N;
+fun presentiment_N : N;
+fun preservable_A : A;
+fun preservation_N : N;
+fun preservative_A : A;
+fun preservative_N : N;
+fun preserve_N : N;
+fun preserve_V2 : V2;
+fun preserver_N : N;
+fun preside_V : V;
+fun presidency_N : N;
+fun president_N : N;
+fun presidential_A : A;
+fun presidium_N : N;
+fun press_N : N;
+fun press_V : V;
+fun press_V2 : V2;
+fun press_agency_N : N;
+fun press_agent_N : N;
+fun press_box_N : N;
+fun press_clipping_N : N;
+fun press_cutting_N : N;
+fun press_gallery_N : N;
+fun press_gang_N : N;
+fun press_lord_N : N;
+fun press_photographer_N : N;
+fun press_stud_N : N;
+fun press_up_N : N;
+fun pressing_A : A;
+fun pressing_N : N;
+fun pressman_N : N;
+fun pressmark_N : N;
+fun pressure_N : N;
+fun pressure_cooker_N : N;
+fun pressure_gauge_N : N;
+fun pressurized_A : A;
+fun prestatyn_PN : PN;
+fun prestidigitation_N : N;
+fun prestidigitator_N : N;
+fun prestige_N : N;
+fun prestigious_A : A;
+fun prestissimo_A : A;
+fun prestissimo_Adv : Adv;
+fun presto_A : A;
+fun presto_Adv : Adv;
+fun preston_PN : PN;
+fun prestonpans_PN : PN;
+fun prestressed_A : A;
+fun prestwich_PN : PN;
+fun prestwick_PN : PN;
+fun presumable_A : A;
+fun presume_V : V;
+fun presume_V2 : V2;
+fun presuming_A : A;
+fun presumption_N : N;
+fun presumptive_A : A;
+fun presumptuous_A : A;
+fun presuppose_V2 : V2;
+fun presupposition_N : N;
+fun pretence_N : N;
+fun pretend_V : V;
+fun pretend_V2 : V2;
+fun pretendedly_Adv : Adv;
+fun pretender_N : N;
+fun pretension_N : N;
+fun pretentious_A : A;
+fun pretentiousness_N : N;
+fun preterit_A : A;
+fun preterit_N : N;
+fun preterite_A : A;
+fun preterite_N : N;
+fun preternatural_A : A;
+fun pretext_N : N;
+fun pretor_N : N;
+fun pretoria_PN : PN;
+fun prettify_V2 : V2;
+fun prettily_Adv : Adv;
+fun prettiness_N : N;
+fun pretty_A : A;
+fun pretty_Adv : Adv;
+fun pretty_N : N;
+fun pretty_pretty_A : A;
+fun pretzel_N : N;
+fun prevail_V : V;
+fun prevailing_A : A;
+fun prevalence_N : N;
+fun prevalent_A : A;
+fun prevaricate_V : V;
+fun prevarication_N : N;
+fun prevent_V2 : V2;
+fun preventable_A : A;
+fun preventative_N : N;
+fun prevention_N : N;
+fun preventive_A : A;
+fun preview_N : N;
+fun preview_V2 : V2;
+fun previous_A : A;
+fun prevision_N : N;
+fun prey_N : N;
+fun prey_V : V;
+fun price_N : N;
+fun price_V2 : V2;
+fun price_control_N : N;
+fun price_controlled_A : A;
+fun priceless_A : A;
+fun pricelist_N : N;
+fun pricey_A : A;
+fun prick_N : N;
+fun prick_V : V;
+fun prick_V2 : V2;
+fun pricker_N : N;
+fun pricking_N : N;
+fun prickle_N : N;
+fun prickle_V : V;
+fun prickle_V2 : V2;
+fun prickly_A : A;
+fun pride_N : N;
+fun pride_V2 : V2;
+fun prie_dieu_N : N;
+fun priest_N : N;
+fun priest_ridden_A : A;
+fun priestcraft_N : N;
+fun priestess_N : N;
+fun priesthood_N : N;
+fun priestlike_A : A;
+fun priestly_A : A;
+fun prig_N : N;
+fun priggish_A : A;
+fun priggishness_N : N;
+fun prim_A : A;
+fun prim_V2 : V2;
+fun prima_A : A;
+fun prima_ballerina_N : N;
+fun prima_donna_N : N;
+fun prima_facie_A : A;
+fun prima_facie_Adv : Adv;
+fun primacy_N : N;
+fun primaeval_A : A;
+fun primal_A : A;
+fun primary_A : A;
+fun primary_N : N;
+fun primate_N : N;
+fun prime_A : A;
+fun prime_N : N;
+fun prime_V2 : V2;
+fun primer_N : N;
+fun primeval_A : A;
+fun priming_N : N;
+fun primitive_A : A;
+fun primitive_N : N;
+fun primitiveness_N : N;
+fun primness_N : N;
+fun primogeniture_N : N;
+fun primordial_A : A;
+fun primp_V2 : V2;
+fun primrose_N : N;
+fun primula_N : N;
+fun primus_N : N;
+fun prince_N : N;
+fun princedom_N : N;
+fun princely_A : A;
+fun princes_risborough_PN : PN;
+fun princess_N : N;
+fun principal_A : A;
+fun principal_N : N;
+fun principality_N : N;
+fun principle_N : N;
+fun principled_A : A;
+fun prink_V2 : V2;
+fun print_N : N;
+fun print_V : V;
+fun print_V2 : V2;
+fun print_seller_N : N;
+fun print_shop_N : N;
+fun printable_A : A;
+fun printer_N : N;
+fun printing_N : N;
+fun printing_ink_N : N;
+fun printing_press_N : N;
+fun printout_N : N;
+fun prior_A : A;
+fun prior_N : N;
+fun prioress_N : N;
+fun priority_N : N;
+fun priory_N : N;
+fun priscilla_PN : PN;
+fun prise_V2 : V2;
+fun prism_N : N;
+fun prismatic_A : A;
+fun prison_N : N;
+fun prison_breaking_N : N;
+fun prisoner_N : N;
+fun pristine_A : A;
+fun privacy_N : N;
+fun private_A : A;
+fun private_N : N;
+fun privateer_N : N;
+fun privation_N : N;
+fun privet_N : N;
+fun privilege_N : N;
+fun privileged_A : A;
+fun privy_A : A;
+fun privy_N : N;
+fun prize_N : N;
+fun prize_V2 : V2;
+fun prize_fight_N : N;
+fun prize_money_N : N;
+fun prize_ring_N : N;
+fun pro_Adv : Adv;
+fun pro_N : N;
+fun pro_forma_A : A;
+fun pro_forma_Adv : Adv;
+fun pro_rata_Adv : Adv;
+fun pro_tem_Adv : Adv;
+fun pro_tempore_Adv : Adv;
+fun probabilistic_A : A;
+fun probabilistically_Adv : Adv;
+fun probability_N : N;
+fun probable_A : A;
+fun probable_N : N;
+fun probate_N : N;
+fun probate_V2 : V2;
+fun probation_N : N;
+fun probationary_A : A;
+fun probationer_N : N;
+fun probe_N : N;
+fun probe_V2 : V2;
+fun probity_N : N;
+fun problem_N : N;
+fun problematic_A : A;
+fun problematically_Adv : Adv;
+fun proboscis_N : N;
+fun procedural_A : A;
+fun procedure_N : N;
+fun proceed_V : V;
+fun proceeding_N : N;
+fun process_N : N;
+fun process_V : V;
+fun process_V2 : V2;
+fun process_server_N : N;
+fun procession_N : N;
+fun processional_A : A;
+fun processor_N : N;
+fun proclaim_V2 : V2;
+fun proclamation_N : N;
+fun proclivity_N : N;
+fun proconsul_N : N;
+fun proconsular_A : A;
+fun proconsulate_N : N;
+fun procrastinate_V : V;
+fun procrastination_N : N;
+fun procreate_V2 : V2;
+fun procreation_N : N;
+fun proctor_N : N;
+fun procurable_A : A;
+fun procurator_N : N;
+fun procure_V2 : V2;
+fun procurement_N : N;
+fun procurer_N : N;
+fun procuress_N : N;
+fun prod_N : N;
+fun prod_V : V;
+fun prod_V2 : V2;
+fun prodigal_A : A;
+fun prodigal_N : N;
+fun prodigality_N : N;
+fun prodigious_A : A;
+fun prodigy_N : N;
+fun produce_N : N;
+fun produce_V : V;
+fun produce_V2 : V2;
+fun producer_N : N;
+fun product_N : N;
+fun production_N : N;
+fun productive_A : A;
+fun productivity_N : N;
+fun prof_PN : PN;
+fun profanation_N : N;
+fun profane_A : A;
+fun profane_V2 : V2;
+fun profaneness_N : N;
+fun profanity_N : N;
+fun profess_V : V;
+fun profess_V2 : V2;
+fun professed_A : A;
+fun profession_N : N;
+fun professional_A : A;
+fun professional_N : N;
+fun professionalism_N : N;
+fun professor_N : N;
+fun professorial_A : A;
+fun professorship_N : N;
+fun proffer_N : N;
+fun proffer_V2 : V2;
+fun proficiency_N : N;
+fun proficient_A : A;
+fun profile_N : N;
+fun profile_V2 : V2;
+fun profit_N : N;
+fun profit_V : V;
+fun profit_V2 : V2;
+fun profit_margin_N : N;
+fun profit_sharing_N : N;
+fun profitable_A : A;
+fun profiteer_N : N;
+fun profiteer_V : V;
+fun profitless_A : A;
+fun profligacy_N : N;
+fun profligate_A : A;
+fun profligate_N : N;
+fun profound_A : A;
+fun profundity_N : N;
+fun profuse_A : A;
+fun profuseness_N : N;
+fun profusion_N : N;
+fun progenitor_N : N;
+fun prognosis_N : N;
+fun prognostic_A : A;
+fun prognostic_N : N;
+fun prognosticate_V2 : V2;
+fun prognostication_N : N;
+fun program_N : N;
+fun program_V2 : V2;
+fun programme_N : N;
+fun programme_V2 : V2;
+fun programmer_N : N;
+fun progress_N : N;
+fun progress_V : V;
+fun progression_N : N;
+fun progressive_A : A;
+fun progressive_N : N;
+fun progressiveness_N : N;
+fun prohibit_V2 : V2;
+fun prohibition_N : N;
+fun prohibitionist_N : N;
+fun prohibitive_A : A;
+fun prohibitory_A : A;
+fun project_N : N;
+fun project_V : V;
+fun project_V2 : V2;
+fun projectile_A : A;
+fun projectile_N : N;
+fun projection_N : N;
+fun projectionist_N : N;
+fun projector_N : N;
+fun prolapse_N : N;
+fun prolapse_V : V;
+fun prole_N : N;
+fun proletarian_A : A;
+fun proletarian_N : N;
+fun proletariat_N : N;
+fun proliferate_V : V;
+fun proliferate_V2 : V2;
+fun proliferation_N : N;
+fun prolific_A : A;
+fun prolix_A : A;
+fun prolixity_N : N;
+fun prologue_N : N;
+fun prolong_V2 : V2;
+fun prolongation_N : N;
+fun prolonged_A : A;
+fun prom_N : N;
+fun promenade_N : N;
+fun promenade_V : V;
+fun promenade_V2 : V2;
+fun prominence_N : N;
+fun prominent_A : A;
+fun promiscuity_N : N;
+fun promiscuous_A : A;
+fun promise_N : N;
+fun promise_V : V;
+fun promise_V2 : V2;
+fun promising_A : A;
+fun promissory_A : A;
+fun promontory_N : N;
+fun promote_V2 : V2;
+fun promoter_N : N;
+fun promotion_N : N;
+fun promotional_A : A;
+fun prompt_A : A;
+fun prompt_N : N;
+fun prompt_V2 : V2;
+fun prompt_box_N : N;
+fun prompt_copy_N : N;
+fun prompter_N : N;
+fun prompting_N : N;
+fun promptitude_N : N;
+fun promptness_N : N;
+fun promulgate_V2 : V2;
+fun promulgation_N : N;
+fun prone_A : A;
+fun proneness_N : N;
+fun prong_N : N;
+fun pronged_A : A;
+fun pronominal_A : A;
+fun pronoun_N : N;
+fun pronounce_V : V;
+fun pronounce_V2 : V2;
+fun pronounceable_A : A;
+fun pronounced_A : A;
+fun pronouncement_N : N;
+fun pronto_Adv : Adv;
+fun pronunciamento_N : N;
+fun pronunciation_N : N;
+fun proof_A : A;
+fun proof_N : N;
+fun proof_V2 : V2;
+fun proofread_V : V;
+fun proofread_V2 : V2;
+fun proofreader_N : N;
+fun prop_N : N;
+fun prop_V2 : V2;
+fun propaganda_N : N;
+fun propagandist_N : N;
+fun propagandize_V : V;
+fun propagate_V : V;
+fun propagate_V2 : V2;
+fun propagation_N : N;
+fun propagator_N : N;
+fun propane_N : N;
+fun propel_V2 : V2;
+fun propellant_A : A;
+fun propellant_N : N;
+fun propellent_A : A;
+fun propellent_N : N;
+fun propeller_N : N;
+fun propensity_N : N;
+fun proper_A : A;
+fun propertied_A : A;
+fun property_N : N;
+fun property_man_N : N;
+fun property_master_N : N;
+fun prophecy_N : N;
+fun prophesy_V : V;
+fun prophesy_V2 : V2;
+fun prophet_N : N;
+fun prophetess_N : N;
+fun prophetic_A : A;
+fun prophetical_A : A;
+fun prophylactic_A : A;
+fun prophylactic_N : N;
+fun prophylaxis_N : N;
+fun propinquity_N : N;
+fun propitiate_V2 : V2;
+fun propitiation_N : N;
+fun propitiatory_A : A;
+fun propitious_A : A;
+fun proponent_N : N;
+fun proportion_N : N;
+fun proportion_V2 : V2;
+fun proportionable_A : A;
+fun proportional_A : A;
+fun proportionality_N : N;
+fun proportionate_A : A;
+fun proposal_N : N;
+fun propose_V : V;
+fun propose_V2 : V2;
+fun proposer_N : N;
+fun proposition_N : N;
+fun proposition_V2 : V2;
+fun propound_V2 : V2;
+fun proprietary_A : A;
+fun proprietor_N : N;
+fun proprietress_N : N;
+fun propriety_N : N;
+fun propulsion_N : N;
+fun propulsive_A : A;
+fun prorogation_N : N;
+fun prorogue_V2 : V2;
+fun prosaic_A : A;
+fun prosaically_Adv : Adv;
+fun proscenium_N : N;
+fun proscribe_V2 : V2;
+fun proscription_N : N;
+fun prose_N : N;
+fun prosecute_V2 : V2;
+fun prosecution_N : N;
+fun prosecutor_N : N;
+fun proselyte_N : N;
+fun proselytize_V : V;
+fun proselytize_V2 : V2;
+fun prosily_Adv : Adv;
+fun prosiness_N : N;
+fun prosody_N : N;
+fun prospect_N : N;
+fun prospect_V : V;
+fun prospective_A : A;
+fun prospector_N : N;
+fun prospectus_N : N;
+fun prosper_V : V;
+fun prosper_V2 : V2;
+fun prosperity_N : N;
+fun prosperous_A : A;
+fun prostate_N : N;
+fun prostitute_N : N;
+fun prostitute_V2 : V2;
+fun prostitution_N : N;
+fun prostrate_A : A;
+fun prostrate_V2 : V2;
+fun prostration_N : N;
+fun prosy_A : A;
+fun protagonist_N : N;
+fun protean_A : A;
+fun protect_V2 : V2;
+fun protection_N : N;
+fun protectionism_N : N;
+fun protectionist_N : N;
+fun protective_A : A;
+fun protector_N : N;
+fun protectorate_N : N;
+fun protein_N : N;
+fun protest_N : N;
+fun protest_V : V;
+fun protest_V2 : V2;
+fun protestant_A : A;
+fun protestant_N : N;
+fun protestantism_N : N;
+fun protestation_N : N;
+fun protester_N : N;
+fun protestingly_Adv : Adv;
+fun protocol_N : N;
+fun proton_N : N;
+fun protoplasm_N : N;
+fun prototype_N : N;
+fun protract_V2 : V2;
+fun protraction_N : N;
+fun protractor_N : N;
+fun protrude_V : V;
+fun protrude_V2 : V2;
+fun protrusion_N : N;
+fun protrusive_A : A;
+fun protuberance_N : N;
+fun protuberant_A : A;
+fun protege_N : N;
+fun protegee_N : N;
+fun proud_A : A;
+fun provable_A : A;
+fun prove_V : V;
+fun prove_V2 : V2;
+fun provenance_N : N;
+fun provender_N : N;
+fun proverb_N : N;
+fun proverbial_A : A;
+fun provide_V : V;
+fun provide_V2 : V2;
+fun providence_N : N;
+fun providence_PN : PN;
+fun provident_A : A;
+fun providential_A : A;
+fun provider_N : N;
+fun province_N : N;
+fun provincial_A : A;
+fun provincial_N : N;
+fun provincialism_N : N;
+fun provision_N : N;
+fun provision_V2 : V2;
+fun provisional_A : A;
+fun proviso_N : N;
+fun provisory_A : A;
+fun provocation_N : N;
+fun provocative_A : A;
+fun provoke_V2 : V2;
+fun provoking_A : A;
+fun provost_N : N;
+fun prow_N : N;
+fun prowess_N : N;
+fun prowl_N : N;
+fun prowl_V : V;
+fun prowl_V2 : V2;
+fun prowler_N : N;
+fun prox_Adv : Adv;
+fun proximate_A : A;
+fun proximity_N : N;
+fun proximo_A : A;
+fun proxy_N : N;
+fun pru_PN : PN;
+fun prude_N : N;
+fun prudence_N : N;
+fun prudence_PN : PN;
+fun prudent_A : A;
+fun prudential_A : A;
+fun prudery_N : N;
+fun prudhoe_PN : PN;
+fun prudish_A : A;
+fun prune_N : N;
+fun prune_V2 : V2;
+fun pruning_N : N;
+fun pruning_hook_N : N;
+fun pruning_knife_N : N;
+fun pruning_saw_N : N;
+fun prurience_N : N;
+fun pruriency_N : N;
+fun prurient_A : A;
+fun prussian_A : A;
+fun prussian_N : N;
+fun prussic_A : A;
+fun pry_V : V;
+fun pry_V2 : V2;
+fun pryingly_Adv : Adv;
+fun precis_N : N;
+fun precis_V2 : V2;
+fun psalm_N : N;
+fun psalmist_N : N;
+fun psalmody_N : N;
+fun psalter_N : N;
+fun psaltery_N : N;
+fun psephologist_N : N;
+fun psephology_N : N;
+fun pseud_N : N;
+fun pseudo_A : A;
+fun pseudo_N : N;
+fun pseudonym_N : N;
+fun pseudonymous_A : A;
+fun psittacosis_N : N;
+fun psyche_N : N;
+fun psychedelic_A : A;
+fun psychiatric_A : A;
+fun psychiatrist_N : N;
+fun psychiatry_N : N;
+fun psychic_A : A;
+fun psychic_N : N;
+fun psychical_A : A;
+fun psychoanalyse_V2 : V2;
+fun psychoanalysis_N : N;
+fun psychoanalyst_N : N;
+fun psychoanalytic_A : A;
+fun psychoanalytical_A : A;
+fun psychoanalyze_V2 : V2;
+fun psychological_A : A;
+fun psychologist_N : N;
+fun psychology_N : N;
+fun psychopath_N : N;
+fun psychopathic_A : A;
+fun psychosis_N : N;
+fun psychosomatic_A : A;
+fun psychotherapy_N : N;
+fun psychotic_N : N;
+fun pt_N : N;
+fun pta_N : N;
+fun ptarmigan_N : N;
+fun pte_PN : PN;
+fun pterodactyl_N : N;
+fun pto_PN : PN;
+fun ptomaine_N : N;
+fun pty_PN : PN;
+fun pub_N : N;
+fun pub_crawl_N : N;
+fun pub_crawl_V : V;
+fun puberty_N : N;
+fun pubic_A : A;
+fun public_A : A;
+fun public_N : N;
+fun public_spirited_A : A;
+fun publican_N : N;
+fun publication_N : N;
+fun publicist_N : N;
+fun publicity_N : N;
+fun publicize_V2 : V2;
+fun publish_V2 : V2;
+fun publisher_N : N;
+fun puce_N : N;
+fun puck_N : N;
+fun pucker_N : N;
+fun pucker_V : V;
+fun pucker_V2 : V2;
+fun puckish_A : A;
+fun pud_N : N;
+fun pudden_N : N;
+fun pudden_head_N : N;
+fun pudding_N : N;
+fun pudding_face_N : N;
+fun puddle_N : N;
+fun puddle_V2 : V2;
+fun puddler_N : N;
+fun pudgy_A : A;
+fun pudsey_PN : PN;
+fun pueblo_N : N;
+fun puerile_A : A;
+fun puerility_N : N;
+fun puerperal_A : A;
+fun puff_N : N;
+fun puff_V : V;
+fun puff_V2 : V2;
+fun puffball_N : N;
+fun puffin_N : N;
+fun puffiness_N : N;
+fun puffy_A : A;
+fun pug_N : N;
+fun pug_dog_N : N;
+fun pug_nose_A : A;
+fun pug_nose_N : N;
+fun pug_nosed_A : A;
+fun pugilism_N : N;
+fun pugilist_N : N;
+fun pugilistic_A : A;
+fun pugnacious_A : A;
+fun pugnacity_N : N;
+fun puissance_N : N;
+fun puissant_A : A;
+fun puke_N : N;
+fun puke_V : V;
+fun puke_V2 : V2;
+fun pukka_A : A;
+fun pulchritude_N : N;
+fun pulchritudinous_A : A;
+fun pule_V : V;
+fun pull_N : N;
+fun pull_V : V;
+fun pull_V2 : V2;
+fun pull_in_N : N;
+fun pull_off_N : N;
+fun pull_out_N : N;
+fun pull_through_N : N;
+fun pull_up_N : N;
+fun pullet_N : N;
+fun pulley_N : N;
+fun pulley_block_N : N;
+fun pullman_N : N;
+fun pullover_N : N;
+fun pullulate_V : V;
+fun pulmonary_A : A;
+fun pulp_N : N;
+fun pulp_V : V;
+fun pulp_V2 : V2;
+fun pulpit_N : N;
+fun pulpy_A : A;
+fun pulque_N : N;
+fun pulsar_N : N;
+fun pulsate_V : V;
+fun pulsate_V2 : V2;
+fun pulsation_N : N;
+fun pulse_N : N;
+fun pulse_V : V;
+fun pulverize_V : V;
+fun pulverize_V2 : V2;
+fun puma_N : N;
+fun pumice_N : N;
+fun pumice_stone_N : N;
+fun pummel_V2 : V2;
+fun pump_N : N;
+fun pump_V : V;
+fun pump_V2 : V2;
+fun pump_room_N : N;
+fun pumpernickel_N : N;
+fun pumpkin_N : N;
+fun pun_N : N;
+fun pun_V : V;
+fun punch_N : N;
+fun punch_V2 : V2;
+fun punch_drunk_A : A;
+fun punch_up_N : N;
+fun punchball_N : N;
+fun punchbowl_N : N;
+fun punching_ball_N : N;
+fun punctilio_N : N;
+fun punctilious_A : A;
+fun punctiliousness_N : N;
+fun punctual_A : A;
+fun punctuality_N : N;
+fun punctuate_V2 : V2;
+fun punctuation_N : N;
+fun puncture_N : N;
+fun puncture_V : V;
+fun puncture_V2 : V2;
+fun pundit_N : N;
+fun pungency_N : N;
+fun pungent_A : A;
+fun punic_A : A;
+fun punily_Adv : Adv;
+fun punish_V2 : V2;
+fun punishable_A : A;
+fun punishment_N : N;
+fun punitive_A : A;
+fun punk_N : N;
+fun punkah_N : N;
+fun punnet_N : N;
+fun punster_N : N;
+fun punt_N : N;
+fun punt_V : V;
+fun punt_V2 : V2;
+fun punter_N : N;
+fun puny_A : A;
+fun pup_N : N;
+fun pupa_N : N;
+fun pupil_N : N;
+fun puppet_N : N;
+fun puppeteer_N : N;
+fun puppy_N : N;
+fun purblind_A : A;
+fun purchasable_A : A;
+fun purchase_N : N;
+fun purchase_V2 : V2;
+fun purchaser_N : N;
+fun purdah_N : N;
+fun pure_A : A;
+fun pureness_N : N;
+fun purgation_N : N;
+fun purgative_A : A;
+fun purgative_N : N;
+fun purgatorial_A : A;
+fun purgatory_N : N;
+fun purge_N : N;
+fun purge_V2 : V2;
+fun purification_N : N;
+fun purifier_N : N;
+fun purify_V2 : V2;
+fun purist_N : N;
+fun puritan_A : A;
+fun puritan_N : N;
+fun puritanical_A : A;
+fun puritanism_N : N;
+fun purity_N : N;
+fun purl_N : N;
+fun purl_V : V;
+fun purl_V2 : V2;
+fun purloin_V2 : V2;
+fun purple_A : A;
+fun purple_N : N;
+fun purplish_A : A;
+fun purport_N : N;
+fun purport_V2 : V2;
+fun purpose_N : N;
+fun purpose_V2 : V2;
+fun purpose_built_A : A;
+fun purposeful_A : A;
+fun purposeless_A : A;
+fun purposely_Adv : Adv;
+fun purposive_A : A;
+fun purr_N : N;
+fun purr_V : V;
+fun purr_V2 : V2;
+fun purse_N : N;
+fun purse_V2 : V2;
+fun purse_proud_A : A;
+fun purser_N : N;
+fun pursuance_N : N;
+fun pursuant_A : A;
+fun pursue_V2 : V2;
+fun pursuer_N : N;
+fun pursuit_N : N;
+fun pursy_A : A;
+fun purulence_N : N;
+fun purulent_A : A;
+fun purvey_V : V;
+fun purvey_V2 : V2;
+fun purveyance_N : N;
+fun purveyor_N : N;
+fun purview_N : N;
+fun puree_N : N;
+fun pus_N : N;
+fun pusan_PN : PN;
+fun push_N : N;
+fun push_V : V;
+fun push_V2 : V2;
+fun push_bike_N : N;
+fun pushcart_N : N;
+fun pushchair_N : N;
+fun pusher_N : N;
+fun pushful_A : A;
+fun pushing_A : A;
+fun pushover_N : N;
+fun pusillanimity_N : N;
+fun pusillanimous_A : A;
+fun puss_N : N;
+fun pussy_N : N;
+fun pussycat_N : N;
+fun pussyfoot_V : V;
+fun pustule_N : N;
+fun put_N : N;
+fun put_V : V;
+fun put_V2 : V2;
+fun put_down_N : N;
+fun put_on_N : N;
+fun putative_A : A;
+fun putrefaction_N : N;
+fun putrefy_V : V;
+fun putrefy_V2 : V2;
+fun putrescence_N : N;
+fun putrescent_A : A;
+fun putrid_A : A;
+fun putridity_N : N;
+fun putsch_N : N;
+fun putt_N : N;
+fun putt_V : V;
+fun putt_V2 : V2;
+fun puttee_N : N;
+fun putter_V : V;
+fun putter_V2 : V2;
+fun putting_green_N : N;
+fun putting_iron_N : N;
+fun putty_N : N;
+fun putty_V2 : V2;
+fun puzzle_N : N;
+fun puzzle_V : V;
+fun puzzle_V2 : V2;
+fun puzzlement_N : N;
+fun puzzler_N : N;
+fun pwllheli_PN : PN;
+fun pygmy_N : N;
+fun pyjama_A : A;
+fun pyle_PN : PN;
+fun pylon_N : N;
+fun pyongyang_PN : PN;
+fun pyorrhoea_N : N;
+fun pyramid_N : N;
+fun pyre_N : N;
+fun pyrites_N : N;
+fun pyrotechnic_A : A;
+fun pyrrhic_A : A;
+fun python_N : N;
+fun pyx_N : N;
+fun pate_2_N : N;
+fun qatar_PN : PN;
+fun qatari_A : A;
+fun qatari_N : N;
+fun qc_N : N;
+fun qed_PN : PN;
+fun qt_N : N;
+fun quack_N : N;
+fun quack_V : V;
+fun quack_quack_N : N;
+fun quackery_N : N;
+fun quad_N : N;
+fun quadrangle_N : N;
+fun quadrangular_A : A;
+fun quadrant_N : N;
+fun quadratic_A : A;
+fun quadrilateral_A : A;
+fun quadrilateral_N : N;
+fun quadrille_N : N;
+fun quadrillion_N : N;
+fun quadrophonic_A : A;
+fun quadrophony_N : N;
+fun quadruped_N : N;
+fun quadruple_A : A;
+fun quadruple_N : N;
+fun quadruple_V : V;
+fun quadruple_V2 : V2;
+fun quadruplet_N : N;
+fun quadruplicate_A : A;
+fun quadruplicate_N : N;
+fun quadruplicate_V2 : V2;
+fun quaff_V : V;
+fun quaff_V2 : V2;
+fun quagga_N : N;
+fun quagmire_N : N;
+fun quai_d'orsay_N : N;
+fun quail_N : N;
+fun quail_V : V;
+fun quaint_A : A;
+fun quaintness_N : N;
+fun quake_N : N;
+fun quake_V : V;
+fun quaker_N : N;
+fun qualification_N : N;
+fun qualified_A : A;
+fun qualifier_N : N;
+fun qualify_V : V;
+fun qualify_V2 : V2;
+fun qualitative_A : A;
+fun quality_N : N;
+fun qualm_N : N;
+fun quandary_N : N;
+fun quango_N : N;
+fun quantify_V2 : V2;
+fun quantitative_A : A;
+fun quantity_N : N;
+fun quantum_N : N;
+fun quarantine_N : N;
+fun quarantine_V2 : V2;
+fun quark_N : N;
+fun quarrel_N : N;
+fun quarrel_V : V;
+fun quarrelsome_A : A;
+fun quarry_N : N;
+fun quarry_V : V;
+fun quarry_V2 : V2;
+fun quarryman_N : N;
+fun quart_N : N;
+fun quarter_N : N;
+fun quarter_V2 : V2;
+fun quarter_day_N : N;
+fun quarter_deck_N : N;
+fun quarter_plate_N : N;
+fun quarterfinal_N : N;
+fun quartering_N : N;
+fun quarterlight_N : N;
+fun quarterly_A : A;
+fun quarterly_Adv : Adv;
+fun quarterly_N : N;
+fun quartermaster_N : N;
+fun quartermaster_general_N : N;
+fun quarterstaff_N : N;
+fun quartet_N : N;
+fun quarto_N : N;
+fun quartz_N : N;
+fun quasar_N : N;
+fun quash_V2 : V2;
+fun quassia_N : N;
+fun quatercentenary_N : N;
+fun quatrain_N : N;
+fun quattrocento_N : N;
+fun quaver_N : N;
+fun quaver_V : V;
+fun quaver_V2 : V2;
+fun quay_N : N;
+fun queasily_Adv : Adv;
+fun queasiness_N : N;
+fun queasy_A : A;
+fun quebec_PN : PN;
+fun queen_N : N;
+fun queen_V2 : V2;
+fun queenborough_in_sheppey_PN : PN;
+fun queenly_A : A;
+fun queensbury_PN : PN;
+fun queensferry_PN : PN;
+fun queensland_PN : PN;
+fun queer_A : A;
+fun queer_N : N;
+fun queer_V2 : V2;
+fun queerness_N : N;
+fun quell_V2 : V2;
+fun quench_V2 : V2;
+fun quenchless_A : A;
+fun quentin_PN : PN;
+fun quern_N : N;
+fun querulous_A : A;
+fun querulousness_N : N;
+fun query_N : N;
+fun query_V2 : V2;
+fun quest_N : N;
+fun quest_V : V;
+fun question_N : N;
+fun question_V2 : V2;
+fun question_mark_N : N;
+fun question_master_N : N;
+fun questionable_A : A;
+fun questioner_N : N;
+fun questioningly_Adv : Adv;
+fun questionnaire_N : N;
+fun quetzal_N : N;
+fun queue_N : N;
+fun queue_V : V;
+fun qui_vive_N : N;
+fun quibble_N : N;
+fun quibble_V : V;
+fun quibbler_N : N;
+fun quibbling_A : A;
+fun quiche_N : N;
+fun quick_A : A;
+fun quick_Adv : Adv;
+fun quick_N : N;
+fun quick_change_A : A;
+fun quick_eared_A : A;
+fun quick_eyed_A : A;
+fun quick_freeze_V2 : V2;
+fun quick_sighted_A : A;
+fun quick_tempered_A : A;
+fun quick_witted_A : A;
+fun quicken_V : V;
+fun quicken_V2 : V2;
+fun quicker_Adv : Adv;
+fun quickest_Adv : Adv;
+fun quickie_N : N;
+fun quicklime_N : N;
+fun quickness_N : N;
+fun quicksand_N : N;
+fun quickset_A : A;
+fun quicksilver_N : N;
+fun quickstep_N : N;
+fun quid_N : N;
+fun quid_pro_quo_N : N;
+fun quiescence_N : N;
+fun quiescent_A : A;
+fun quiet_A : A;
+fun quiet_N : N;
+fun quiet_V : V;
+fun quiet_V2 : V2;
+fun quieten_V : V;
+fun quieten_V2 : V2;
+fun quietism_N : N;
+fun quietist_N : N;
+fun quietness_N : N;
+fun quietude_N : N;
+fun quietus_N : N;
+fun quiff_N : N;
+fun quill_N : N;
+fun quill_feather_N : N;
+fun quilt_N : N;
+fun quilt_V2 : V2;
+fun quin_N : N;
+fun quince_N : N;
+fun quincentenary_A : A;
+fun quincentenary_N : N;
+fun quinine_N : N;
+fun quinquagesima_N : N;
+fun quinquagesima_PN : PN;
+fun quinsy_N : N;
+fun quintal_N : N;
+fun quintessence_N : N;
+fun quintet_N : N;
+fun quintuplet_N : N;
+fun quip_N : N;
+fun quip_V : V;
+fun quire_N : N;
+fun quirk_N : N;
+fun quisling_N : N;
+fun quit_A : A;
+fun quit_V2 : V2;
+fun quito_PN : PN;
+fun quits_A : A;
+fun quittance_N : N;
+fun quitter_N : N;
+fun quiver_N : N;
+fun quiver_V : V;
+fun quiver_V2 : V2;
+fun quixotic_A : A;
+fun quixotically_Adv : Adv;
+fun quiz_N : N;
+fun quiz_V2 : V2;
+fun quizmaster_N : N;
+fun quizzical_A : A;
+fun quoin_N : N;
+fun quoit_N : N;
+fun quonset_N : N;
+fun quorum_N : N;
+fun quota_N : N;
+fun quotability_N : N;
+fun quotable_A : A;
+fun quotation_N : N;
+fun quote_N : N;
+fun quote_V2 : V2;
+fun quotidian_A : A;
+fun quotient_N : N;
+fun qv_PN : PN;
+fun ra_N : N;
+fun rabbi_N : N;
+fun rabbinical_A : A;
+fun rabbit_N : N;
+fun rabbit_V : V;
+fun rabbit_burrow_N : N;
+fun rabbit_hole_N : N;
+fun rabbit_hutch_N : N;
+fun rabbit_punch_N : N;
+fun rabbit_warren_N : N;
+fun rabble_N : N;
+fun rabble_rousing_A : A;
+fun rabelaisian_A : A;
+fun rabid_A : A;
+fun rabies_N : N;
+fun raccoon_N : N;
+fun race_N : N;
+fun race_V : V;
+fun race_V2 : V2;
+fun race_meeting_N : N;
+fun racecard_N : N;
+fun racecourse_N : N;
+fun racehorse_N : N;
+fun raceme_N : N;
+fun racer_N : N;
+fun rachel_PN : PN;
+fun racial_A : A;
+fun racialism_N : N;
+fun racialist_N : N;
+fun racily_Adv : Adv;
+fun raciness_N : N;
+fun racing_N : N;
+fun racism_N : N;
+fun racist_N : N;
+fun rack_N : N;
+fun rack_V2 : V2;
+fun rack_railway_N : N;
+fun rack_rent_N : N;
+fun racket_N : N;
+fun racket_V : V;
+fun racketeer_N : N;
+fun racketeering_N : N;
+fun raconteur_N : N;
+fun racoon_N : N;
+fun racquet_N : N;
+fun racy_A : A;
+fun rada_PN : PN;
+fun radar_N : N;
+fun radcliffe_PN : PN;
+fun radcliffe_on_trent_PN : PN;
+fun raddled_A : A;
+fun radial_A : A;
+fun radial_N : N;
+fun radiance_N : N;
+fun radiant_A : A;
+fun radiate_V : V;
+fun radiate_V2 : V2;
+fun radiation_N : N;
+fun radiator_N : N;
+fun radical_A : A;
+fun radical_N : N;
+fun radicalism_N : N;
+fun radicle_N : N;
+fun radio_N : N;
+fun radio_gramophone_N : N;
+fun radio_location_N : N;
+fun radio_set_N : N;
+fun radio_telescope_N : N;
+fun radioactive_A : A;
+fun radioactivity_N : N;
+fun radiogram_N : N;
+fun radiograph_N : N;
+fun radiographer_N : N;
+fun radiography_N : N;
+fun radioisotope_N : N;
+fun radiologist_N : N;
+fun radiology_N : N;
+fun radiotherapist_N : N;
+fun radiotherapy_N : N;
+fun radish_N : N;
+fun radium_N : N;
+fun radius_N : N;
+fun radlett_PN : PN;
+fun radstock_PN : PN;
+fun raf_N : N;
+fun raffia_N : N;
+fun raffish_A : A;
+fun raffle_N : N;
+fun raffle_V2 : V2;
+fun raft_N : N;
+fun raft_V : V;
+fun raft_V2 : V2;
+fun rafter_N : N;
+fun raftered_A : A;
+fun raftsman_N : N;
+fun rag_N : N;
+fun rag_V2 : V2;
+fun rag_day_N : N;
+fun ragamuffin_N : N;
+fun ragbag_N : N;
+fun rage_N : N;
+fun rage_V : V;
+fun ragged_A : A;
+fun raggedness_N : N;
+fun raglan_N : N;
+fun ragout_N : N;
+fun ragtag_N : N;
+fun ragtime_N : N;
+fun raid_N : N;
+fun raid_V : V;
+fun raid_V2 : V2;
+fun raider_N : N;
+fun rail_N : N;
+fun rail_V : V;
+fun rail_V2 : V2;
+fun railcar_N : N;
+fun railhead_N : N;
+fun railing_N : N;
+fun raillery_N : N;
+fun railroad_N : N;
+fun railroad_V2 : V2;
+fun railway_N : N;
+fun railwayman_N : N;
+fun raiment_N : N;
+fun rain_N : N;
+fun rain_V : V;
+fun rain_V2 : V2;
+fun rain_gauge_N : N;
+fun rainbow_N : N;
+fun raincoat_N : N;
+fun raindrop_N : N;
+fun rainfall_N : N;
+fun rainford_PN : PN;
+fun rainproof_A : A;
+fun rainwater_N : N;
+fun rainy_A : A;
+fun raise_N : N;
+fun raise_V2 : V2;
+fun raiser_N : N;
+fun raisin_N : N;
+fun raison_d'etre_N : N;
+fun raj_N : N;
+fun rajah_N : N;
+fun rake_N : N;
+fun rake_V : V;
+fun rake_V2 : V2;
+fun rake_off_N : N;
+fun rakish_A : A;
+fun rakishness_N : N;
+fun rallentando_A : A;
+fun rallentando_Adv : Adv;
+fun rally_N : N;
+fun rally_V : V;
+fun rally_V2 : V2;
+fun ralph_PN : PN;
+fun ram_N : N;
+fun ram_V2 : V2;
+fun ramadan_N : N;
+fun ramadan_PN : PN;
+fun ramble_N : N;
+fun ramble_V : V;
+fun rambler_N : N;
+fun rambling_A : A;
+fun rambunctious_A : A;
+fun ramification_N : N;
+fun ramify_V : V;
+fun ramify_V2 : V2;
+fun ramjet_N : N;
+fun ramp_N : N;
+fun ramp_V2 : V2;
+fun rampage_N : N;
+fun rampage_V : V;
+fun rampageous_A : A;
+fun rampant_A : A;
+fun rampart_N : N;
+fun ramrod_N : N;
+fun ramsbottom_PN : PN;
+fun ramsgate_PN : PN;
+fun ramshackle_A : A;
+fun ranch_N : N;
+fun rancher_N : N;
+fun rancid_A : A;
+fun rancorous_A : A;
+fun rancour_N : N;
+fun rand_N : N;
+fun randolph_PN : PN;
+fun random_N : N;
+fun randomly_Adv : Adv;
+fun randomness_N : N;
+fun randy_A : A;
+fun ranee_N : N;
+fun range_N : N;
+fun range_V : V;
+fun range_V2 : V2;
+fun rangefinder_N : N;
+fun ranger_N : N;
+fun rangoon_PN : PN;
+fun rani_N : N;
+fun rank_A : A;
+fun rank_N : N;
+fun rank_V : V;
+fun rank_V2 : V2;
+fun ranker_N : N;
+fun ranking_N : N;
+fun rankle_V : V;
+fun rankness_N : N;
+fun ransack_V2 : V2;
+fun ransom_N : N;
+fun ransom_V2 : V2;
+fun rant_N : N;
+fun rant_V : V;
+fun rant_V2 : V2;
+fun ranter_N : N;
+fun rap_N : N;
+fun rap_V : V;
+fun rap_V2 : V2;
+fun rapacious_A : A;
+fun rapacity_N : N;
+fun rape_N : N;
+fun rape_V2 : V2;
+fun rapid_A : A;
+fun rapid_N : N;
+fun rapidity_N : N;
+fun rapier_N : N;
+fun rapier_thrust_N : N;
+fun rapine_N : N;
+fun rapist_N : N;
+fun rapport_N : N;
+fun rapprochement_N : N;
+fun rapscallion_N : N;
+fun rapt_A : A;
+fun rapture_N : N;
+fun rapturous_A : A;
+fun rare_A : A;
+fun rarebit_N : N;
+fun rarefaction_N : N;
+fun rarefy_V : V;
+fun rarefy_V2 : V2;
+fun rareness_N : N;
+fun raring_A : A;
+fun rarity_N : N;
+fun rascal_N : N;
+fun rascally_A : A;
+fun rase_V2 : V2;
+fun rash_A : A;
+fun rash_N : N;
+fun rasher_N : N;
+fun rashness_N : N;
+fun rasp_N : N;
+fun rasp_V : V;
+fun rasp_V2 : V2;
+fun raspberry_N : N;
+fun raspingly_Adv : Adv;
+fun rat_N : N;
+fun rat_V2 : V2;
+fun rat_a_tat_tat_N : N;
+fun rat_tat_N : N;
+fun ratability_N : N;
+fun ratable_A : A;
+fun ratan_N : N;
+fun ratch_N : N;
+fun ratchet_N : N;
+fun rate_N : N;
+fun rate_V : V;
+fun rate_V2 : V2;
+fun rateability_N : N;
+fun rateable_A : A;
+fun ratepayer_N : N;
+fun rather_Adv : Adv;
+fun ratification_N : N;
+fun ratify_V2 : V2;
+fun rating_N : N;
+fun ratio_N : N;
+fun ratiocination_N : N;
+fun ration_N : N;
+fun ration_V2 : V2;
+fun rational_A : A;
+fun rationale_N : N;
+fun rationalism_N : N;
+fun rationalist_N : N;
+fun rationalistic_A : A;
+fun rationality_N : N;
+fun rationalization_N : N;
+fun rationalize_V2 : V2;
+fun ratlin_N : N;
+fun ratline_N : N;
+fun rattan_N : N;
+fun ratter_N : N;
+fun rattle_N : N;
+fun rattle_V : V;
+fun rattle_V2 : V2;
+fun rattlebrained_A : A;
+fun rattlepated_A : A;
+fun rattler_N : N;
+fun rattlesnake_N : N;
+fun rattling_A : A;
+fun rattling_Adv : Adv;
+fun ratty_A : A;
+fun raucous_A : A;
+fun ravage_N : N;
+fun ravage_V : V;
+fun ravage_V2 : V2;
+fun rave_N : N;
+fun rave_V : V;
+fun rave_up_N : N;
+fun ravel_V : V;
+fun ravel_V2 : V2;
+fun raven_N : N;
+fun ravening_A : A;
+fun ravenna_PN : PN;
+fun ravenous_A : A;
+fun raver_N : N;
+fun ravine_N : N;
+fun raving_A : A;
+fun raving_Adv : Adv;
+fun ravioli_N : N;
+fun ravish_V2 : V2;
+fun ravishingly_Adv : Adv;
+fun ravishment_N : N;
+fun raw_A : A;
+fun raw_N : N;
+fun rawboned_A : A;
+fun rawhide_A : A;
+fun rawtenstall_PN : PN;
+fun ray_N : N;
+fun ray_PN : PN;
+fun ray_V : V;
+fun ray_V2 : V2;
+fun raymond_PN : PN;
+fun rayon_N : N;
+fun raze_V2 : V2;
+fun razor_N : N;
+fun razor_V2 : V2;
+fun razor_edge_N : N;
+fun razorback_N : N;
+fun razorbacked_A : A;
+fun razorblade_N : N;
+fun razzle_N : N;
+fun razzle_dazzle_N : N;
+fun rc_PN : PN;
+fun rd_PN : PN;
+fun re_N : N;
+fun re_address_V2 : V2;
+fun re_afforest_V2 : V2;
+fun re_afforestation_N : N;
+fun re_count_N : N;
+fun re_count_V2 : V2;
+fun re_cover_V2 : V2;
+fun re_echo_N : N;
+fun re_echo_V : V;
+fun re_entry_N : N;
+fun re_form_V : V;
+fun re_form_V2 : V2;
+fun re_formation_N : N;
+fun re_join_V2 : V2;
+fun reach_N : N;
+fun reach_V : V;
+fun reach_V2 : V2;
+fun react_V : V;
+fun reaction_N : N;
+fun reactionary_N : N;
+fun reactor_N : N;
+fun read_N : N;
+fun read_V : V;
+fun read_V2 : V2;
+fun readability_N : N;
+fun readable_A : A;
+fun reader_N : N;
+fun readership_N : N;
+fun readily_Adv : Adv;
+fun readiness_N : N;
+fun reading_N : N;
+fun reading_PN : PN;
+fun reading_lamp_N : N;
+fun reading_room_N : N;
+fun readjust_V2 : V2;
+fun readjustment_N : N;
+fun readmission_N : N;
+fun readmit_V2 : V2;
+fun ready_A : A;
+fun ready_N : N;
+fun ready_made_A : A;
+fun reaffiliation_N : N;
+fun reaffirm_V2 : V2;
+fun reagent_N : N;
+fun real_A : A;
+fun real_N : N;
+fun realism_N : N;
+fun realist_N : N;
+fun realistic_A : A;
+fun realistically_Adv : Adv;
+fun reality_N : N;
+fun realizable_A : A;
+fun realization_N : N;
+fun realize_V2 : V2;
+fun reallocation_N : N;
+fun realm_N : N;
+fun realtor_N : N;
+fun realty_N : N;
+fun ream_N : N;
+fun reanimate_V2 : V2;
+fun reap_V : V;
+fun reap_V2 : V2;
+fun reaper_N : N;
+fun reaping_hook_N : N;
+fun reappear_V : V;
+fun reappearance_N : N;
+fun reappraisal_N : N;
+fun rear_N : N;
+fun rear_V : V;
+fun rear_V2 : V2;
+fun rear_admiral_N : N;
+fun rearguard_N : N;
+fun rearm_V : V;
+fun rearm_V2 : V2;
+fun rearmament_N : N;
+fun rearmost_A : A;
+fun rearrange_V2 : V2;
+fun rearrangement_N : N;
+fun rearward_N : N;
+fun rearwards_Adv : Adv;
+fun reason_N : N;
+fun reason_V : V;
+fun reason_V2 : V2;
+fun reasonable_A : A;
+fun reasonableness_N : N;
+fun reasoning_N : N;
+fun reasonless_A : A;
+fun reassemble_V : V;
+fun reassemble_V2 : V2;
+fun reassess_V2 : V2;
+fun reassessment_N : N;
+fun reassurance_N : N;
+fun reassure_V2 : V2;
+fun reassuring_A : A;
+fun reattribute_V2 : V2;
+fun rebarbative_A : A;
+fun rebate_N : N;
+fun rebecca_PN : PN;
+fun rebel_N : N;
+fun rebel_V : V;
+fun rebellion_N : N;
+fun rebellious_A : A;
+fun rebelliousness_N : N;
+fun rebind_V2 : V2;
+fun rebirth_N : N;
+fun reborn_A : A;
+fun rebound_N : N;
+fun rebound_V : V;
+fun rebuff_N : N;
+fun rebuff_V2 : V2;
+fun rebuild_V2 : V2;
+fun rebuke_N : N;
+fun rebuke_V2 : V2;
+fun rebukingly_Adv : Adv;
+fun rebus_N : N;
+fun rebut_V2 : V2;
+fun rebuttal_N : N;
+fun rec_PN : PN;
+fun recalcitrance_N : N;
+fun recalcitrancy_N : N;
+fun recalcitrant_A : A;
+fun recall_N : N;
+fun recall_V2 : V2;
+fun recant_V : V;
+fun recant_V2 : V2;
+fun recantation_N : N;
+fun recap_N : N;
+fun recap_V : V;
+fun recap_V2 : V2;
+fun recapitulate_V : V;
+fun recapitulate_V2 : V2;
+fun recapitulation_N : N;
+fun recapture_V2 : V2;
+fun recast_V2 : V2;
+fun recce_N : N;
+fun recd_PN : PN;
+fun recede_V : V;
+fun receipt_N : N;
+fun receipt_V2 : V2;
+fun receivable_A : A;
+fun receive_V : V;
+fun receive_V2 : V2;
+fun received_A : A;
+fun receiver_N : N;
+fun receivership_N : N;
+fun receiving_set_N : N;
+fun recent_A : A;
+fun receptacle_N : N;
+fun reception_N : N;
+fun reception_desk_N : N;
+fun receptionist_N : N;
+fun receptive_A : A;
+fun receptiveness_N : N;
+fun receptivity_N : N;
+fun recess_N : N;
+fun recess_V2 : V2;
+fun recession_N : N;
+fun recessional_A : A;
+fun recessional_N : N;
+fun recessive_A : A;
+fun recherche_A : A;
+fun recidivism_N : N;
+fun recidivist_N : N;
+fun recife_PN : PN;
+fun recipe_N : N;
+fun recipient_N : N;
+fun reciprocal_A : A;
+fun reciprocal_N : N;
+fun reciprocate_V : V;
+fun reciprocate_V2 : V2;
+fun reciprocation_N : N;
+fun reciprocity_N : N;
+fun recital_N : N;
+fun recitalist_N : N;
+fun recitation_N : N;
+fun recitative_N : N;
+fun recite_V : V;
+fun recite_V2 : V2;
+fun reckless_A : A;
+fun recklessness_N : N;
+fun recklinghausen_PN : PN;
+fun reckon_V : V;
+fun reckon_V2 : V2;
+fun reckoner_N : N;
+fun reckoning_N : N;
+fun reclaim_V2 : V2;
+fun reclamation_N : N;
+fun recline_V : V;
+fun recline_V2 : V2;
+fun recluse_N : N;
+fun recognition_N : N;
+fun recognizable_A : A;
+fun recognizance_N : N;
+fun recognize_V2 : V2;
+fun recoil_N : N;
+fun recoil_V : V;
+fun recollect_V : V;
+fun recollect_V2 : V2;
+fun recollection_N : N;
+fun recommend_V2 : V2;
+fun recommendation_N : N;
+fun recommit_V2 : V2;
+fun recompense_N : N;
+fun recompense_V2 : V2;
+fun reconcilable_A : A;
+fun reconcile_V2 : V2;
+fun reconciliation_N : N;
+fun recondite_A : A;
+fun recondition_V2 : V2;
+fun reconnaissance_N : N;
+fun reconnoitre_V : V;
+fun reconnoitre_V2 : V2;
+fun reconsecrate_V2 : V2;
+fun reconsider_V2 : V2;
+fun reconstruct_V2 : V2;
+fun reconstruction_N : N;
+fun reconvict_V2 : V2;
+fun record_N : N;
+fun record_V2 : V2;
+fun record_breaking_A : A;
+fun record_player_N : N;
+fun recorder_N : N;
+fun recording_N : N;
+fun recount_V2 : V2;
+fun recoup_V2 : V2;
+fun recourse_N : N;
+fun recover_V : V;
+fun recover_V2 : V2;
+fun recoverable_A : A;
+fun recovery_N : N;
+fun recreant_A : A;
+fun recreant_N : N;
+fun recreate_V2 : V2;
+fun recreation_N : N;
+fun recreational_A : A;
+fun recriminate_V : V;
+fun recrimination_N : N;
+fun recriminatory_A : A;
+fun recrudescence_N : N;
+fun recruit_N : N;
+fun recruit_V : V;
+fun recruit_V2 : V2;
+fun recruitment_N : N;
+fun rectal_A : A;
+fun rectangle_N : N;
+fun rectangular_A : A;
+fun rectification_N : N;
+fun rectifier_N : N;
+fun rectify_V2 : V2;
+fun rectilinear_A : A;
+fun rectitude_N : N;
+fun recto_N : N;
+fun rector_N : N;
+fun rectory_N : N;
+fun rectum_N : N;
+fun recumbent_A : A;
+fun recuperate_V : V;
+fun recuperate_V2 : V2;
+fun recuperation_N : N;
+fun recuperative_A : A;
+fun recur_V : V;
+fun recurrence_N : N;
+fun recurrent_A : A;
+fun recurve_V : V;
+fun recurve_V2 : V2;
+fun recusancy_N : N;
+fun recusant_A : A;
+fun recusant_N : N;
+fun recycle_V2 : V2;
+fun red_A : A;
+fun red_N : N;
+fun red_hot_A : A;
+fun red_rimmed_A : A;
+fun redact_V2 : V2;
+fun redaction_N : N;
+fun redbreast_N : N;
+fun redbrick_A : A;
+fun redbridge_PN : PN;
+fun redcap_N : N;
+fun redcoat_N : N;
+fun redden_V : V;
+fun redden_V2 : V2;
+fun reddish_A : A;
+fun redditch_PN : PN;
+fun redecorate_V2 : V2;
+fun redeem_V2 : V2;
+fun redeemable_A : A;
+fun redeemer_N : N;
+fun redefine_V2 : V2;
+fun redemption_N : N;
+fun redemptive_A : A;
+fun redeploy_V2 : V2;
+fun redeployment_N : N;
+fun redesign_V2 : V2;
+fun redevelop_V2 : V2;
+fun redevelopment_N : N;
+fun redhead_N : N;
+fun rediffusion_N : N;
+fun rediscover_V2 : V2;
+fun rediscovery_N : N;
+fun redisposition_N : N;
+fun redistribute_V2 : V2;
+fun redistribution_N : N;
+fun redness_N : N;
+fun redo_V2 : V2;
+fun redolence_N : N;
+fun redolent_A : A;
+fun redouble_V : V;
+fun redouble_V2 : V2;
+fun redoubt_N : N;
+fun redoubtable_A : A;
+fun redound_V : V;
+fun redress_N : N;
+fun redress_V2 : V2;
+fun redruth_PN : PN;
+fun redskin_N : N;
+fun reduce_V : V;
+fun reduce_V2 : V2;
+fun reducible_A : A;
+fun reductio_ad_absurdum_N : N;
+fun reduction_N : N;
+fun redundance_N : N;
+fun redundancy_N : N;
+fun redundant_A : A;
+fun reduplicate_V2 : V2;
+fun reduplication_N : N;
+fun redwing_N : N;
+fun redwood_N : N;
+fun reed_N : N;
+fun reedy_A : A;
+fun reef_N : N;
+fun reef_V2 : V2;
+fun reef_knot_N : N;
+fun reefer_N : N;
+fun reek_N : N;
+fun reek_V : V;
+fun reel_N : N;
+fun reel_V : V;
+fun reel_V2 : V2;
+fun reeve_N : N;
+fun ref_N : N;
+fun reface_V2 : V2;
+fun refashion_N : N;
+fun refashion_V2 : V2;
+fun refection_N : N;
+fun refectory_N : N;
+fun refer_V : V;
+fun refer_V2 : V2;
+fun referable_A : A;
+fun referee_N : N;
+fun referee_V : V;
+fun referee_V2 : V2;
+fun reference_N : N;
+fun referendum_N : N;
+fun referential_A : A;
+fun refill_N : N;
+fun refill_V2 : V2;
+fun refine_V : V;
+fun refine_V2 : V2;
+fun refinement_N : N;
+fun refiner_N : N;
+fun refinery_N : N;
+fun refit_N : N;
+fun refit_V : V;
+fun refit_V2 : V2;
+fun reflate_V2 : V2;
+fun reflation_N : N;
+fun reflect_V : V;
+fun reflect_V2 : V2;
+fun reflection_N : N;
+fun reflective_A : A;
+fun reflector_N : N;
+fun reflex_A : A;
+fun reflex_N : N;
+fun reflexion_N : N;
+fun reflexive_A : A;
+fun reflexive_N : N;
+fun refloat_V : V;
+fun refloat_V2 : V2;
+fun reflux_N : N;
+fun reforest_V2 : V2;
+fun reforestation_N : N;
+fun reform_N : N;
+fun reform_V : V;
+fun reform_V2 : V2;
+fun reformation_N : N;
+fun reformatory_A : A;
+fun reformatory_N : N;
+fun reformer_N : N;
+fun refract_V2 : V2;
+fun refraction_N : N;
+fun refractory_A : A;
+fun refrain_N : N;
+fun refrain_V : V;
+fun refresh_V2 : V2;
+fun refresher_N : N;
+fun refreshing_A : A;
+fun refreshment_N : N;
+fun refrigerant_A : A;
+fun refrigerant_N : N;
+fun refrigerate_V2 : V2;
+fun refrigeration_N : N;
+fun refrigerator_N : N;
+fun refuel_V : V;
+fun refuel_V2 : V2;
+fun refuge_N : N;
+fun refugee_N : N;
+fun refulgence_N : N;
+fun refulgent_A : A;
+fun refund_N : N;
+fun refund_V2 : V2;
+fun refurbish_V2 : V2;
+fun refurnish_V2 : V2;
+fun refusal_N : N;
+fun refuse_N : N;
+fun refuse_V : V;
+fun refuse_V2 : V2;
+fun refuse_collector_N : N;
+fun refutable_A : A;
+fun refutation_N : N;
+fun refute_V2 : V2;
+fun reg_PN : PN;
+fun regain_V2 : V2;
+fun regal_A : A;
+fun regale_V2 : V2;
+fun regard_N : N;
+fun regard_V2 : V2;
+fun regardful_A : A;
+fun regardless_A : A;
+fun regatta_N : N;
+fun regency_N : N;
+fun regenerate_A : A;
+fun regenerate_V : V;
+fun regenerate_V2 : V2;
+fun regeneration_N : N;
+fun regensburg_PN : PN;
+fun regent_A : A;
+fun regent_N : N;
+fun reggae_N : N;
+fun regicide_N : N;
+fun regime_1_N : N;
+fun regimen_N : N;
+fun regiment_N : N;
+fun regiment_V2 : V2;
+fun regimental_A : A;
+fun regimentation_N : N;
+fun regina_PN : PN;
+fun reginald_PN : PN;
+fun region_N : N;
+fun regional_A : A;
+fun register_N : N;
+fun register_V : V;
+fun register_V2 : V2;
+fun registrar_N : N;
+fun registration_N : N;
+fun registry_N : N;
+fun regnant_A : A;
+fun regress_V : V;
+fun regression_N : N;
+fun regressive_A : A;
+fun regret_N : N;
+fun regret_V2 : V2;
+fun regretful_A : A;
+fun regrettable_A : A;
+fun regroup_V : V;
+fun regroup_V2 : V2;
+fun regular_A : A;
+fun regular_N : N;
+fun regularity_N : N;
+fun regularization_N : N;
+fun regularize_V2 : V2;
+fun regulate_V2 : V2;
+fun regulation_N : N;
+fun regulator_N : N;
+fun regurgitate_V : V;
+fun regurgitate_V2 : V2;
+fun rehabilitate_V2 : V2;
+fun rehabilitation_N : N;
+fun rehash_N : N;
+fun rehash_V2 : V2;
+fun rehear_V2 : V2;
+fun rehearing_N : N;
+fun rehearsal_N : N;
+fun rehearse_V : V;
+fun rehearse_V2 : V2;
+fun rehouse_V2 : V2;
+fun reich_N : N;
+fun reigate_PN : PN;
+fun reign_N : N;
+fun reign_V : V;
+fun reimburse_V2 : V2;
+fun reimbursement_N : N;
+fun reimposition_N : N;
+fun rein_N : N;
+fun rein_V2 : V2;
+fun reincarnate_A : A;
+fun reincarnate_V2 : V2;
+fun reincarnation_N : N;
+fun reindeer_N : N;
+fun reinforce_V2 : V2;
+fun reinforcement_N : N;
+fun reinstate_V2 : V2;
+fun reinstatement_N : N;
+fun reinsurance_N : N;
+fun reinsure_V2 : V2;
+fun reintegrate_V2 : V2;
+fun reinterpret_V2 : V2;
+fun reinterpretation_N : N;
+fun reissue_N : N;
+fun reissue_V2 : V2;
+fun reiterate_V2 : V2;
+fun reiteration_N : N;
+fun reject_N : N;
+fun reject_V2 : V2;
+fun rejection_N : N;
+fun rejig_V2 : V2;
+fun rejoice_V : V;
+fun rejoice_V2 : V2;
+fun rejoicing_N : N;
+fun rejoin_V : V;
+fun rejoin_V2 : V2;
+fun rejoinder_N : N;
+fun rejuvenate_V : V;
+fun rejuvenate_V2 : V2;
+fun rejuvenation_N : N;
+fun rekindle_V : V;
+fun rekindle_V2 : V2;
+fun relapse_N : N;
+fun relapse_V : V;
+fun relate_V : V;
+fun relate_V2 : V2;
+fun relation_N : N;
+fun relationship_N : N;
+fun relative_A : A;
+fun relative_N : N;
+fun relativity_N : N;
+fun relax_V : V;
+fun relax_V2 : V2;
+fun relaxation_N : N;
+fun relay_N : N;
+fun relay_V2 : V2;
+fun release_N : N;
+fun release_V2 : V2;
+fun relegate_V2 : V2;
+fun relegation_N : N;
+fun relent_V : V;
+fun relentless_A : A;
+fun relevance_N : N;
+fun relevancy_N : N;
+fun relevant_A : A;
+fun reliability_N : N;
+fun reliable_A : A;
+fun reliance_N : N;
+fun reliant_A : A;
+fun relic_N : N;
+fun relict_N : N;
+fun relief_N : N;
+fun relieve_V2 : V2;
+fun religion_N : N;
+fun religious_A : A;
+fun religious_N : N;
+fun reline_V2 : V2;
+fun relinquish_V2 : V2;
+fun reliquary_N : N;
+fun relish_N : N;
+fun relish_V2 : V2;
+fun relive_V2 : V2;
+fun relocate_V : V;
+fun relocate_V2 : V2;
+fun relocation_N : N;
+fun reluctance_N : N;
+fun reluctant_A : A;
+fun rely_V : V;
+fun remain_V : V;
+fun remainder_N : N;
+fun remake_N : N;
+fun remake_V2 : V2;
+fun remand_N : N;
+fun remand_V2 : V2;
+fun remark_N : N;
+fun remark_V : V;
+fun remark_V2 : V2;
+fun remarkable_A : A;
+fun remarriage_N : N;
+fun remarry_V : V;
+fun remarry_V2 : V2;
+fun remediable_A : A;
+fun remedial_A : A;
+fun remedy_N : N;
+fun remedy_V2 : V2;
+fun remember_V : V;
+fun remember_V2 : V2;
+fun remembrance_N : N;
+fun remilitarization_N : N;
+fun remilitarize_V2 : V2;
+fun remind_V2 : V2;
+fun reminder_N : N;
+fun reminisce_V : V;
+fun reminiscence_N : N;
+fun reminiscent_A : A;
+fun remiss_A : A;
+fun remission_N : N;
+fun remissness_N : N;
+fun remit_V : V;
+fun remit_V2 : V2;
+fun remittance_N : N;
+fun remittent_A : A;
+fun remnant_N : N;
+fun remodel_V2 : V2;
+fun remonstrance_N : N;
+fun remonstrate_V : V;
+fun remorse_N : N;
+fun remorseful_A : A;
+fun remorseless_A : A;
+fun remote_A : A;
+fun remoteness_N : N;
+fun remould_V2 : V2;
+fun remount_N : N;
+fun remount_V : V;
+fun remount_V2 : V2;
+fun removable_A : A;
+fun removal_N : N;
+fun remove_N : N;
+fun remove_V : V;
+fun remove_V2 : V2;
+fun removed_A : A;
+fun remover_N : N;
+fun remscheid_PN : PN;
+fun remunerate_V2 : V2;
+fun remuneration_N : N;
+fun remunerative_A : A;
+fun renaissance_N : N;
+fun renal_A : A;
+fun rename_V2 : V2;
+fun renascence_N : N;
+fun renascent_A : A;
+fun rend_V2 : V2;
+fun render_V2 : V2;
+fun rendering_N : N;
+fun rendezvous_N : N;
+fun rendezvous_V : V;
+fun rendition_N : N;
+fun renegade_N : N;
+fun renegade_V : V;
+fun renege_V : V;
+fun renegue_V : V;
+fun renew_V2 : V2;
+fun renewable_A : A;
+fun renewal_N : N;
+fun renfrew_PN : PN;
+fun rennes_PN : PN;
+fun rennet_N : N;
+fun renounce_V2 : V2;
+fun renovate_V2 : V2;
+fun renovation_N : N;
+fun renovator_N : N;
+fun renown_N : N;
+fun renowned_A : A;
+fun rent_N : N;
+fun rent_V : V;
+fun rent_V2 : V2;
+fun rent_collector_N : N;
+fun rent_free_A : A;
+fun rent_free_Adv : Adv;
+fun rent_rebate_N : N;
+fun rent_roll_N : N;
+fun rentable_A : A;
+fun rental_N : N;
+fun rentier_N : N;
+fun renunciation_N : N;
+fun reopen_V : V;
+fun reopen_V2 : V2;
+fun reorganization_N : N;
+fun reorganize_V : V;
+fun reorganize_V2 : V2;
+fun reorient_V : V;
+fun reorient_V2 : V2;
+fun reorientate_V : V;
+fun reorientate_V2 : V2;
+fun reorientation_N : N;
+fun rep_N : N;
+fun repaint_V2 : V2;
+fun repair_N : N;
+fun repair_V : V;
+fun repair_V2 : V2;
+fun repairable_A : A;
+fun repairer_N : N;
+fun reparable_A : A;
+fun reparation_N : N;
+fun repartee_N : N;
+fun repast_N : N;
+fun repatriate_N : N;
+fun repatriate_V2 : V2;
+fun repatriation_N : N;
+fun repay_V : V;
+fun repay_V2 : V2;
+fun repayable_A : A;
+fun repayment_N : N;
+fun repeal_N : N;
+fun repeal_V2 : V2;
+fun repeat_N : N;
+fun repeat_V : V;
+fun repeat_V2 : V2;
+fun repeatable_A : A;
+fun repeated_A : A;
+fun repeater_N : N;
+fun repel_V2 : V2;
+fun repellent_A : A;
+fun repellent_N : N;
+fun repent_V : V;
+fun repent_V2 : V2;
+fun repentance_N : N;
+fun repentant_A : A;
+fun repercussion_N : N;
+fun repertoire_N : N;
+fun repertory_N : N;
+fun repetition_N : N;
+fun repetitious_A : A;
+fun repetitive_A : A;
+fun repine_V : V;
+fun replace_V2 : V2;
+fun replaceable_A : A;
+fun replacement_N : N;
+fun replant_V2 : V2;
+fun replay_N : N;
+fun replay_V2 : V2;
+fun replenish_V2 : V2;
+fun replenishment_N : N;
+fun replete_A : A;
+fun repletion_N : N;
+fun replica_N : N;
+fun reply_N : N;
+fun reply_V : V;
+fun reply_V2 : V2;
+fun reply_paid_A : A;
+fun repoint_V2 : V2;
+fun report_N : N;
+fun report_V : V;
+fun report_V2 : V2;
+fun reportable_A : A;
+fun reportage_N : N;
+fun reportedly_Adv : Adv;
+fun reporter_N : N;
+fun repose_N : N;
+fun repose_V : V;
+fun repose_V2 : V2;
+fun reposeful_A : A;
+fun repository_N : N;
+fun repot_V2 : V2;
+fun repp_N : N;
+fun reprehend_V2 : V2;
+fun reprehensible_A : A;
+fun represent_V2 : V2;
+fun representation_N : N;
+fun representative_A : A;
+fun representative_N : N;
+fun repress_V2 : V2;
+fun repressed_A : A;
+fun repression_N : N;
+fun repressive_A : A;
+fun reprieve_N : N;
+fun reprieve_V2 : V2;
+fun reprimand_N : N;
+fun reprimand_V2 : V2;
+fun reprint_N : N;
+fun reprint_V2 : V2;
+fun reprisal_N : N;
+fun reproach_N : N;
+fun reproach_V2 : V2;
+fun reproachful_A : A;
+fun reprobate_N : N;
+fun reprobate_V2 : V2;
+fun reprobation_N : N;
+fun reproduce_V : V;
+fun reproduce_V2 : V2;
+fun reproducer_N : N;
+fun reproducible_A : A;
+fun reproduction_N : N;
+fun reproductive_A : A;
+fun reproof_N : N;
+fun reproof_V2 : V2;
+fun reprove_V2 : V2;
+fun reprovingly_Adv : Adv;
+fun reps_N : N;
+fun reptile_N : N;
+fun reptilian_A : A;
+fun reptilian_N : N;
+fun republic_N : N;
+fun republican_A : A;
+fun republican_N : N;
+fun republicanism_N : N;
+fun repudiate_V2 : V2;
+fun repudiation_N : N;
+fun repugnance_N : N;
+fun repugnant_A : A;
+fun repulse_N : N;
+fun repulse_V2 : V2;
+fun repulsion_N : N;
+fun repulsive_A : A;
+fun reputable_A : A;
+fun reputation_N : N;
+fun repute_N : N;
+fun repute_V2 : V2;
+fun reputed_A : A;
+fun request_N : N;
+fun request_V2 : V2;
+fun requiem_N : N;
+fun require_V2 : V2;
+fun requirement_N : N;
+fun requisite_A : A;
+fun requisite_N : N;
+fun requisition_N : N;
+fun requisition_V2 : V2;
+fun requital_N : N;
+fun requite_V2 : V2;
+fun reread_V2 : V2;
+fun reredos_N : N;
+fun rerun_N : N;
+fun rerun_V2 : V2;
+fun res_N : N;
+fun rescind_V2 : V2;
+fun rescript_N : N;
+fun rescue_N : N;
+fun rescue_V2 : V2;
+fun rescuer_N : N;
+fun research_N : N;
+fun research_V : V;
+fun researcher_N : N;
+fun reseat_V2 : V2;
+fun reseed_V2 : V2;
+fun resell_V2 : V2;
+fun resemblance_N : N;
+fun resemble_V2 : V2;
+fun resent_V2 : V2;
+fun resentful_A : A;
+fun resentment_N : N;
+fun reservation_N : N;
+fun reserve_N : N;
+fun reserve_V2 : V2;
+fun reserved_A : A;
+fun reservist_N : N;
+fun reservoir_N : N;
+fun reset_V2 : V2;
+fun resettle_V : V;
+fun resettle_V2 : V2;
+fun resettlement_N : N;
+fun reshape_V2 : V2;
+fun reshuffle_N : N;
+fun reshuffle_V2 : V2;
+fun reside_V : V;
+fun residence_N : N;
+fun residency_N : N;
+fun resident_A : A;
+fun resident_N : N;
+fun residential_A : A;
+fun residual_A : A;
+fun residuary_A : A;
+fun residue_N : N;
+fun resign_V : V;
+fun resign_V2 : V2;
+fun resignation_N : N;
+fun resigned_A : A;
+fun resilience_N : N;
+fun resiliency_N : N;
+fun resilient_A : A;
+fun resin_N : N;
+fun resinated_A : A;
+fun resinous_A : A;
+fun resist_V : V;
+fun resist_V2 : V2;
+fun resistance_N : N;
+fun resistant_A : A;
+fun resister_N : N;
+fun resistive_A : A;
+fun resistivity_N : N;
+fun resistless_A : A;
+fun resistor_N : N;
+fun resole_V2 : V2;
+fun resolute_A : A;
+fun resoluteness_N : N;
+fun resolution_N : N;
+fun resolvable_A : A;
+fun resolve_N : N;
+fun resolve_V : V;
+fun resolve_V2 : V2;
+fun resonance_N : N;
+fun resonant_A : A;
+fun resonate_V : V;
+fun resonate_V2 : V2;
+fun resonator_N : N;
+fun resort_N : N;
+fun resort_V : V;
+fun resound_V : V;
+fun resound_V2 : V2;
+fun resoundingly_Adv : Adv;
+fun resource_N : N;
+fun resourceful_A : A;
+fun resourceless_A : A;
+fun respect_N : N;
+fun respect_V2 : V2;
+fun respectability_N : N;
+fun respectable_A : A;
+fun respecter_N : N;
+fun respectful_A : A;
+fun respective_A : A;
+fun respiration_N : N;
+fun respirator_N : N;
+fun respiratory_A : A;
+fun respire_V : V;
+fun respite_N : N;
+fun respite_V2 : V2;
+fun resplendence_N : N;
+fun resplendency_N : N;
+fun resplendent_A : A;
+fun respond_V : V;
+fun respondent_N : N;
+fun response_N : N;
+fun responsibility_N : N;
+fun responsible_A : A;
+fun responsive_A : A;
+fun responsiveness_N : N;
+fun rest_N : N;
+fun rest_V : V;
+fun rest_V2 : V2;
+fun rest_cure_N : N;
+fun rest_day_N : N;
+fun rest_home_N : N;
+fun rest_house_N : N;
+fun restart_V : V;
+fun restart_V2 : V2;
+fun restate_V2 : V2;
+fun restatement_N : N;
+fun restaurant_N : N;
+fun restauranteur_N : N;
+fun restaurateur_N : N;
+fun restful_A : A;
+fun restfulness_N : N;
+fun restitution_N : N;
+fun restive_A : A;
+fun restiveness_N : N;
+fun restless_A : A;
+fun restlessness_N : N;
+fun restock_V2 : V2;
+fun restoration_N : N;
+fun restorative_A : A;
+fun restorative_N : N;
+fun restore_V2 : V2;
+fun restorer_N : N;
+fun restrain_V2 : V2;
+fun restrained_A : A;
+fun restraint_N : N;
+fun restrict_V2 : V2;
+fun restriction_N : N;
+fun restrictive_A : A;
+fun restrictiveness_N : N;
+fun restructure_V2 : V2;
+fun result_N : N;
+fun result_V : V;
+fun resultant_A : A;
+fun resume_V2 : V2;
+fun resumption_N : N;
+fun resurface_V : V;
+fun resurface_V2 : V2;
+fun resurgence_N : N;
+fun resurgent_A : A;
+fun resurrect_V : V;
+fun resurrect_V2 : V2;
+fun resurrection_N : N;
+fun resuscitate_V : V;
+fun resuscitate_V2 : V2;
+fun resuscitation_N : N;
+fun ret_PN : PN;
+fun ret_V2 : V2;
+fun retail_Adv : Adv;
+fun retail_N : N;
+fun retail_V : V;
+fun retail_V2 : V2;
+fun retailer_N : N;
+fun retain_V2 : V2;
+fun retainer_N : N;
+fun retake_N : N;
+fun retake_V2 : V2;
+fun retaliate_V : V;
+fun retaliation_N : N;
+fun retaliative_A : A;
+fun retaliatory_A : A;
+fun retard_V2 : V2;
+fun retardation_N : N;
+fun retch_V : V;
+fun retd_PN : PN;
+fun retell_V2 : V2;
+fun retention_N : N;
+fun retentive_A : A;
+fun retentiveness_N : N;
+fun retford_PN : PN;
+fun rethink_N : N;
+fun rethink_V : V;
+fun rethink_V2 : V2;
+fun reticence_N : N;
+fun reticent_A : A;
+fun reticulate_A : A;
+fun reticulate_V : V;
+fun reticulate_V2 : V2;
+fun reticulation_N : N;
+fun reticule_N : N;
+fun retina_N : N;
+fun retinal_A : A;
+fun retinue_N : N;
+fun retire_N : N;
+fun retire_V : V;
+fun retire_V2 : V2;
+fun retired_A : A;
+fun retirement_N : N;
+fun retiring_A : A;
+fun retool_V2 : V2;
+fun retort_N : N;
+fun retort_V : V;
+fun retort_V2 : V2;
+fun retouch_V2 : V2;
+fun retrace_V2 : V2;
+fun retract_V : V;
+fun retract_V2 : V2;
+fun retractable_A : A;
+fun retractile_A : A;
+fun retraction_N : N;
+fun retransmit_V2 : V2;
+fun retread_N : N;
+fun retread_V2 : V2;
+fun retreat_N : N;
+fun retreat_V : V;
+fun retrench_V : V;
+fun retrench_V2 : V2;
+fun retrenchment_N : N;
+fun retrial_N : N;
+fun retribution_N : N;
+fun retributive_A : A;
+fun retrievable_A : A;
+fun retrieval_N : N;
+fun retrieve_V : V;
+fun retrieve_V2 : V2;
+fun retriever_N : N;
+fun retroactive_A : A;
+fun retrograde_A : A;
+fun retrograde_V : V;
+fun retrogress_V : V;
+fun retrogression_N : N;
+fun retrogressive_A : A;
+fun retrorocket_N : N;
+fun retrospect_N : N;
+fun retrospection_N : N;
+fun retrospective_A : A;
+fun retrousse_A : A;
+fun retroversion_N : N;
+fun retsina_N : N;
+fun return_N : N;
+fun return_V : V;
+fun return_V2 : V2;
+fun returnable_A : A;
+fun reunification_N : N;
+fun reunion_N : N;
+fun reunite_V : V;
+fun reunite_V2 : V2;
+fun rev_N : N;
+fun rev_PN : PN;
+fun rev_V : V;
+fun rev_V2 : V2;
+fun revaluation_N : N;
+fun revalue_V2 : V2;
+fun revamp_V2 : V2;
+fun revd_PN : PN;
+fun reveal_V2 : V2;
+fun reveille_N : N;
+fun revel_N : N;
+fun revel_V : V;
+fun revelation_N : N;
+fun reveller_N : N;
+fun revelry_N : N;
+fun revenge_N : N;
+fun revenge_V2 : V2;
+fun revengeful_A : A;
+fun revenue_N : N;
+fun reverberant_A : A;
+fun reverberate_V : V;
+fun reverberate_V2 : V2;
+fun reverberation_N : N;
+fun revere_V2 : V2;
+fun reverence_N : N;
+fun reverence_V2 : V2;
+fun reverend_A : A;
+fun reverend_N : N;
+fun reverent_A : A;
+fun reverential_A : A;
+fun reverie_N : N;
+fun revers_N : N;
+fun reversal_N : N;
+fun reverse_A : A;
+fun reverse_N : N;
+fun reverse_V : V;
+fun reverse_V2 : V2;
+fun reversibility_N : N;
+fun reversible_A : A;
+fun reversion_N : N;
+fun reversionary_A : A;
+fun revert_V : V;
+fun revertible_A : A;
+fun revetment_N : N;
+fun review_N : N;
+fun review_V : V;
+fun review_V2 : V2;
+fun reviewer_N : N;
+fun revile_V : V;
+fun revile_V2 : V2;
+fun revise_N : N;
+fun revise_V2 : V2;
+fun reviser_N : N;
+fun revision_N : N;
+fun revisionism_N : N;
+fun revisionist_N : N;
+fun revisit_V2 : V2;
+fun revitalization_N : N;
+fun revitalize_V2 : V2;
+fun revival_N : N;
+fun revivalist_N : N;
+fun revive_V : V;
+fun revive_V2 : V2;
+fun revivify_V2 : V2;
+fun revocable_A : A;
+fun revocation_N : N;
+fun revoke_N : N;
+fun revoke_V : V;
+fun revoke_V2 : V2;
+fun revolt_N : N;
+fun revolt_V : V;
+fun revolt_V2 : V2;
+fun revolting_A : A;
+fun revolution_N : N;
+fun revolutionary_A : A;
+fun revolutionary_N : N;
+fun revolutionize_V2 : V2;
+fun revolve_V : V;
+fun revolve_V2 : V2;
+fun revolver_N : N;
+fun revue_N : N;
+fun revulsion_N : N;
+fun reward_N : N;
+fun reward_V2 : V2;
+fun rewire_V2 : V2;
+fun reword_V2 : V2;
+fun rewrite_N : N;
+fun rewrite_V2 : V2;
+fun rex_PN : PN;
+fun reykjavik_PN : PN;
+fun rhapsodize_V : V;
+fun rhapsody_N : N;
+fun rhea_N : N;
+fun rheims_PN : PN;
+fun rhenish_A : A;
+fun rheostat_N : N;
+fun rhesus_N : N;
+fun rhetoric_N : N;
+fun rhetorical_A : A;
+fun rhetorician_N : N;
+fun rheum_N : N;
+fun rheumatic_A : A;
+fun rheumatic_N : N;
+fun rheumatism_N : N;
+fun rheumatoid_A : A;
+fun rheydt_PN : PN;
+fun rhinal_A : A;
+fun rhine_PN : PN;
+fun rhinestone_N : N;
+fun rhino_N : N;
+fun rhinoceros_N : N;
+fun rhizome_N : N;
+fun rhode_PN : PN;
+fun rhododendron_N : N;
+fun rhomb_N : N;
+fun rhomboid_A : A;
+fun rhomboid_N : N;
+fun rhombus_N : N;
+fun rhondda_PN : PN;
+fun rhosllanerchrugog_PN : PN;
+fun rhubarb_N : N;
+fun rhyl_PN : PN;
+fun rhyme_N : N;
+fun rhyme_V : V;
+fun rhyme_V2 : V2;
+fun rhymed_A : A;
+fun rhymester_N : N;
+fun rhymney_PN : PN;
+fun rhythm_N : N;
+fun rhythmic_A : A;
+fun rhythmical_A : A;
+fun rib_N : N;
+fun rib_V2 : V2;
+fun ribald_A : A;
+fun ribald_N : N;
+fun ribaldry_N : N;
+fun riband_N : N;
+fun ribbon_N : N;
+fun riboflavin_N : N;
+fun rice_N : N;
+fun rice_paper_N : N;
+fun rich_A : A;
+fun richard_PN : PN;
+fun richmond_PN : PN;
+fun richmond_upon_thames_PN : PN;
+fun richness_N : N;
+fun rick_N : N;
+fun rick_PN : PN;
+fun rick_V2 : V2;
+fun rickets_N : N;
+fun rickety_A : A;
+fun rickmansworth_PN : PN;
+fun rickshaw_N : N;
+fun ricky_PN : PN;
+fun ricochet_N : N;
+fun ricochet_V : V;
+fun ricochet_V2 : V2;
+fun rid_V2 : V2;
+fun riddance_N : N;
+fun riddle_N : N;
+fun riddle_V2 : V2;
+fun ride_N : N;
+fun ride_V : V;
+fun ride_V2 : V2;
+fun rider_N : N;
+fun riderless_A : A;
+fun ridge_N : N;
+fun ridge_V2 : V2;
+fun ridge_tile_N : N;
+fun ridgepole_N : N;
+fun ridicule_N : N;
+fun ridicule_V2 : V2;
+fun ridiculous_A : A;
+fun riding_N : N;
+fun riding_habit_N : N;
+fun riding_lamp_N : N;
+fun riding_light_N : N;
+fun riding_master_N : N;
+fun riding_school_N : N;
+fun riesling_N : N;
+fun rife_A : A;
+fun riff_N : N;
+fun riff_raff_N : N;
+fun riffle_V : V;
+fun riffle_V2 : V2;
+fun rifle_N : N;
+fun rifle_V2 : V2;
+fun rifle_range_N : N;
+fun rifle_shot_N : N;
+fun rifleman_N : N;
+fun rift_N : N;
+fun rift_valley_N : N;
+fun rig_N : N;
+fun rig_V : V;
+fun rig_V2 : V2;
+fun riga_PN : PN;
+fun rigger_N : N;
+fun rigging_N : N;
+fun right_A : A;
+fun right_Adv : Adv;
+fun right_N : N;
+fun right_V2 : V2;
+fun right_angled_A : A;
+fun right_down_A : A;
+fun right_down_Adv : Adv;
+fun right_hand_A : A;
+fun right_handed_A : A;
+fun right_hander_N : N;
+fun right_minded_A : A;
+fun right_turn_N : N;
+fun right_wing_N : N;
+fun right_winger_N : N;
+fun righteous_A : A;
+fun righteousness_N : N;
+fun rightful_A : A;
+fun rightfulness_N : N;
+fun rightist_A : A;
+fun rightist_N : N;
+fun rightness_N : N;
+fun rigid_A : A;
+fun rigidity_N : N;
+fun rigmarole_N : N;
+fun rigor_mortis_N : N;
+fun rigorous_A : A;
+fun rigour_N : N;
+fun rigout_N : N;
+fun rijeka_PN : PN;
+fun rile_V2 : V2;
+fun rill_N : N;
+fun rim_N : N;
+fun rim_V2 : V2;
+fun rime_N : N;
+fun rime_V2 : V2;
+fun rimini_PN : PN;
+fun rind_N : N;
+fun rinderpest_N : N;
+fun ring_N : N;
+fun ring_V : V;
+fun ring_V2 : V2;
+fun ring_armour_N : N;
+fun ring_finger_N : N;
+fun ring_mail_N : N;
+fun ring_road_N : N;
+fun ringer_N : N;
+fun ringleader_N : N;
+fun ringlet_N : N;
+fun ringmaster_N : N;
+fun ringside_N : N;
+fun ringwood_PN : PN;
+fun ringworm_N : N;
+fun rink_N : N;
+fun rinse_N : N;
+fun rinse_V2 : V2;
+fun rio_de_janeiro_PN : PN;
+fun riot_N : N;
+fun riot_V : V;
+fun rioter_N : N;
+fun riotous_A : A;
+fun rip_N : N;
+fun rip_PN : PN;
+fun rip_V : V;
+fun rip_V2 : V2;
+fun rip_off_N : N;
+fun rip_roaring_A : A;
+fun riparian_A : A;
+fun ripcord_N : N;
+fun ripe_A : A;
+fun ripen_V : V;
+fun ripen_V2 : V2;
+fun ripeness_N : N;
+fun ripley_PN : PN;
+fun ripon_PN : PN;
+fun riposte_N : N;
+fun riposte_V : V;
+fun ripple_N : N;
+fun ripple_V : V;
+fun ripple_V2 : V2;
+fun ripsaw_N : N;
+fun riptide_N : N;
+fun risborough_PN : PN;
+fun risca_PN : PN;
+fun rise_N : N;
+fun rise_V : V;
+fun riser_N : N;
+fun rishton_PN : PN;
+fun risibility_N : N;
+fun risible_A : A;
+fun rising_N : N;
+fun risk_N : N;
+fun risk_V2 : V2;
+fun riskily_Adv : Adv;
+fun riskiness_N : N;
+fun risky_A : A;
+fun risotto_N : N;
+fun risque_A : A;
+fun rissole_N : N;
+fun rita_PN : PN;
+fun rite_N : N;
+fun ritual_A : A;
+fun ritual_N : N;
+fun ritualism_N : N;
+fun ritualist_N : N;
+fun ritualistic_A : A;
+fun ritzy_A : A;
+fun rival_N : N;
+fun rival_V2 : V2;
+fun rivalry_N : N;
+fun rive_V : V;
+fun rive_V2 : V2;
+fun river_N : N;
+fun river_basin_N : N;
+fun river_bed_N : N;
+fun riverside_N : N;
+fun rivet_N : N;
+fun rivet_V2 : V2;
+fun riveter_N : N;
+fun riviera_PN : PN;
+fun rivulet_N : N;
+fun rly_N : N;
+fun rm_N : N;
+fun rn_N : N;
+fun roach_N : N;
+fun road_N : N;
+fun road_book_N : N;
+fun road_hog_N : N;
+fun road_metal_N : N;
+fun road_sense_N : N;
+fun roadbed_N : N;
+fun roadblock_N : N;
+fun roadhouse_N : N;
+fun roadless_A : A;
+fun roadman_N : N;
+fun roadmender_N : N;
+fun roadside_N : N;
+fun roadstead_N : N;
+fun roadster_N : N;
+fun roadway_N : N;
+fun roadworthy_A : A;
+fun roam_V : V;
+fun roam_V2 : V2;
+fun roan_A : A;
+fun roan_N : N;
+fun roar_N : N;
+fun roar_V : V;
+fun roar_V2 : V2;
+fun roaring_A : A;
+fun roaring_Adv : Adv;
+fun roast_A : A;
+fun roast_N : N;
+fun roast_V : V;
+fun roast_V2 : V2;
+fun roaster_N : N;
+fun roasting_N : N;
+fun rob_PN : PN;
+fun rob_V2 : V2;
+fun robber_N : N;
+fun robbery_N : N;
+fun robe_N : N;
+fun robe_V : V;
+fun robe_V2 : V2;
+fun robert_PN : PN;
+fun robin_N : N;
+fun robin_PN : PN;
+fun robot_N : N;
+fun robust_A : A;
+fun robustness_N : N;
+fun roc_N : N;
+fun rochdale_PN : PN;
+fun rochester_PN : PN;
+fun rock_'n_roll_N : N;
+fun rock_N : N;
+fun rock_V : V;
+fun rock_V2 : V2;
+fun rock_bottom_N : N;
+fun rock_cake_N : N;
+fun rock_climbing_N : N;
+fun rock_crystal_N : N;
+fun rock_garden_N : N;
+fun rock_plant_N : N;
+fun rock_salmon_N : N;
+fun rock_salt_N : N;
+fun rocker_N : N;
+fun rockery_N : N;
+fun rocket_N : N;
+fun rocket_V : V;
+fun rocket_base_N : N;
+fun rocket_range_N : N;
+fun rocketry_N : N;
+fun rocking_chair_N : N;
+fun rocking_horse_N : N;
+fun rocky_A : A;
+fun rococo_A : A;
+fun rod_N : N;
+fun rod_PN : PN;
+fun rodent_N : N;
+fun rodeo_N : N;
+fun rodney_PN : PN;
+fun rodomontade_N : N;
+fun roe_N : N;
+fun roebuck_N : N;
+fun roentgen_N : N;
+fun rogation_N : N;
+fun roger_PN : PN;
+fun rogue_N : N;
+fun rogue_elephant_N : N;
+fun roguery_N : N;
+fun roguish_A : A;
+fun roguishness_N : N;
+fun roisterer_N : N;
+fun role_1_N : N;
+fun roll_N : N;
+fun roll_V : V;
+fun roll_V2 : V2;
+fun roll_call_N : N;
+fun roll_on_N : N;
+fun roller_N : N;
+fun roller_skate_N : N;
+fun rollicking_A : A;
+fun rolling_N : N;
+fun rolling_mill_N : N;
+fun rolling_pin_N : N;
+fun rolling_stock_N : N;
+fun roly_poly_N : N;
+fun romaic_A : A;
+fun romaic_N : N;
+fun roman_A : A;
+fun roman_N : N;
+fun romance_A : A;
+fun romance_N : N;
+fun romance_V : V;
+fun romanesque_N : N;
+fun romania_PN : PN;
+fun romanian_A : A;
+fun romanian_N : N;
+fun romantic_A : A;
+fun romantic_N : N;
+fun romantically_Adv : Adv;
+fun romanticism_N : N;
+fun romanticist_N : N;
+fun romanticize_V : V;
+fun romanticize_V2 : V2;
+fun romany_A : A;
+fun romany_N : N;
+fun rome_PN : PN;
+fun romish_A : A;
+fun romp_N : N;
+fun romp_V : V;
+fun romper_N : N;
+fun romsey_PN : PN;
+fun ron_PN : PN;
+fun ronald_PN : PN;
+fun rondeau_N : N;
+fun rondel_N : N;
+fun rondo_N : N;
+fun roneo_N : N;
+fun roneo_V2 : V2;
+fun ronnie_PN : PN;
+fun rood_N : N;
+fun rood_tree_N : N;
+fun roof_N : N;
+fun roof_V2 : V2;
+fun roof_garden_N : N;
+fun roof_tree_N : N;
+fun roofing_N : N;
+fun roofless_A : A;
+fun rook_N : N;
+fun rook_V2 : V2;
+fun rookery_N : N;
+fun rookie_N : N;
+fun room_N : N;
+fun room_V : V;
+fun room_mate_N : N;
+fun roomed_A : A;
+fun roomer_N : N;
+fun roomful_N : N;
+fun roomily_Adv : Adv;
+fun roomy_A : A;
+fun roost_N : N;
+fun roost_V : V;
+fun rooster_N : N;
+fun root_N : N;
+fun root_V : V;
+fun root_V2 : V2;
+fun rootle_V : V;
+fun rootless_A : A;
+fun rope_N : N;
+fun rope_V2 : V2;
+fun rope_dancer_N : N;
+fun rope_ladder_N : N;
+fun rope_yard_N : N;
+fun rope_yarn_N : N;
+fun ropewalk_N : N;
+fun ropewalker_N : N;
+fun ropeway_N : N;
+fun ropey_A : A;
+fun roquefort_N : N;
+fun rosalie_PN : PN;
+fun rosalind_PN : PN;
+fun rosamund_PN : PN;
+fun rosario_PN : PN;
+fun rosary_N : N;
+fun roscommon_PN : PN;
+fun rose_N : N;
+fun rose_PN : PN;
+fun rose_bed_N : N;
+fun rose_leaf_N : N;
+fun rose_red_A : A;
+fun rose_water_N : N;
+fun roseate_A : A;
+fun rosebud_N : N;
+fun rosemary_N : N;
+fun rosemary_PN : PN;
+fun rosette_N : N;
+fun rosewood_N : N;
+fun rosie_PN : PN;
+fun rosin_N : N;
+fun rosin_V2 : V2;
+fun roslyn_PN : PN;
+fun ross_on_wye_PN : PN;
+fun rossington_PN : PN;
+fun rosslare_PN : PN;
+fun roster_N : N;
+fun rostock_PN : PN;
+fun rostov_na_donu_PN : PN;
+fun rostrum_N : N;
+fun rosy_A : A;
+fun rot_N : N;
+fun rot_V : V;
+fun rot_V2 : V2;
+fun rota_N : N;
+fun rotarian_N : N;
+fun rotary_A : A;
+fun rotary_N : N;
+fun rotate_V : V;
+fun rotate_V2 : V2;
+fun rotation_N : N;
+fun rotational_A : A;
+fun rotatory_A : A;
+fun rote_N : N;
+fun rotgut_N : N;
+fun rotherham_PN : PN;
+fun rothesay_PN : PN;
+fun rothwell_PN : PN;
+fun rotisserie_N : N;
+fun rotogravure_N : N;
+fun rotor_N : N;
+fun rotten_A : A;
+fun rottenness_N : N;
+fun rotter_N : N;
+fun rotterdam_PN : PN;
+fun rotund_A : A;
+fun rotunda_N : N;
+fun rotundity_N : N;
+fun roubaix_PN : PN;
+fun rouble_N : N;
+fun rouen_PN : PN;
+fun rouge_N : N;
+fun rouge_V : V;
+fun rouge_V2 : V2;
+fun rough_A : A;
+fun rough_Adv : Adv;
+fun rough_N : N;
+fun rough_V2 : V2;
+fun rough_and_tumble_A : A;
+fun rough_and_tumble_N : N;
+fun rough_dry_V2 : V2;
+fun rough_hewn_A : A;
+fun rough_house_V : V;
+fun rough_house_V2 : V2;
+fun rough_spoken_A : A;
+fun roughage_N : N;
+fun roughcast_N : N;
+fun roughcast_V2 : V2;
+fun roughen_V : V;
+fun roughen_V2 : V2;
+fun roughish_A : A;
+fun roughneck_N : N;
+fun roughness_N : N;
+fun roughrider_N : N;
+fun roughshod_A : A;
+fun roulette_N : N;
+fun round_A : A;
+fun round_Adv : Adv;
+fun round_N : N;
+fun round_V : V;
+fun round_V2 : V2;
+fun round_arm_A : A;
+fun round_arm_Adv : Adv;
+fun round_backed_A : A;
+fun round_eyed_A : A;
+fun round_hand_N : N;
+fun round_shot_N : N;
+fun round_shouldered_A : A;
+fun round_the_clock_A : A;
+fun round_the_clock_Adv : Adv;
+fun roundabout_A : A;
+fun roundabout_N : N;
+fun roundel_N : N;
+fun roundelay_N : N;
+fun roundhead_N : N;
+fun roundhouse_N : N;
+fun roundish_A : A;
+fun roundness_N : N;
+fun roundsman_N : N;
+fun roundup_N : N;
+fun rouse_V : V;
+fun rouse_V2 : V2;
+fun rout_N : N;
+fun rout_V2 : V2;
+fun route_N : N;
+fun route_V2 : V2;
+fun routemarch_N : N;
+fun routine_A : A;
+fun routine_N : N;
+fun roue_N : N;
+fun rove_V : V;
+fun rove_V2 : V2;
+fun rover_N : N;
+fun row_N : N;
+fun row_V : V;
+fun row_V2 : V2;
+fun rowan_N : N;
+fun rowan_berry_N : N;
+fun rowan_tree_N : N;
+fun rowboat_N : N;
+fun rowdily_Adv : Adv;
+fun rowdiness_N : N;
+fun rowdy_A : A;
+fun rowdy_N : N;
+fun rowdyism_N : N;
+fun rowel_N : N;
+fun rower_N : N;
+fun rowing_N : N;
+fun rowing_boat_N : N;
+fun rowing_club_N : N;
+fun rowlands_gill_PN : PN;
+fun rowlock_N : N;
+fun roy_PN : PN;
+fun royal_A : A;
+fun royalist_N : N;
+fun royalty_N : N;
+fun royston_PN : PN;
+fun rpm_N : N;
+fun rspca_N : N;
+fun rsvp_PN : PN;
+fun rt_hon_PN : PN;
+fun rub_N : N;
+fun rub_V : V;
+fun rub_V2 : V2;
+fun rub_a_dub_N : N;
+fun rub_down_N : N;
+fun rub_up_N : N;
+fun rubber_N : N;
+fun rubber_V2 : V2;
+fun rubber_stamp_V2 : V2;
+fun rubberize_V2 : V2;
+fun rubberneck_N : N;
+fun rubberneck_V : V;
+fun rubbery_A : A;
+fun rubbing_N : N;
+fun rubbish_N : N;
+fun rubbish_V2 : V2;
+fun rubbishing_N : N;
+fun rubbishy_A : A;
+fun rubble_N : N;
+fun rubicon_N : N;
+fun rubicund_A : A;
+fun rubric_N : N;
+fun ruby_A : A;
+fun ruby_N : N;
+fun ruck_N : N;
+fun ruck_V : V;
+fun ruck_V2 : V2;
+fun rucksack_N : N;
+fun ruckus_N : N;
+fun rudder_N : N;
+fun rudderless_A : A;
+fun ruddiness_N : N;
+fun ruddington_PN : PN;
+fun ruddle_N : N;
+fun ruddle_V2 : V2;
+fun ruddy_A : A;
+fun rude_A : A;
+fun rudeness_N : N;
+fun rudiment_N : N;
+fun rudimentary_A : A;
+fun rudolf_PN : PN;
+fun rudy_PN : PN;
+fun rue_N : N;
+fun rue_V2 : V2;
+fun rueful_A : A;
+fun ruff_N : N;
+fun ruff_V : V;
+fun ruff_V2 : V2;
+fun ruffian_N : N;
+fun ruffianism_N : N;
+fun ruffianly_A : A;
+fun ruffle_N : N;
+fun ruffle_V : V;
+fun ruffle_V2 : V2;
+fun rug_N : N;
+fun rugby_N : N;
+fun rugby_PN : PN;
+fun rugeley_PN : PN;
+fun rugged_A : A;
+fun ruggedness_N : N;
+fun rugger_N : N;
+fun ruin_N : N;
+fun ruin_V2 : V2;
+fun ruination_N : N;
+fun ruinous_A : A;
+fun rule_N : N;
+fun rule_V : V;
+fun rule_V2 : V2;
+fun ruler_N : N;
+fun ruling_A : A;
+fun ruling_N : N;
+fun rum_N : N;
+fun rum_runner_N : N;
+fun rumba_N : N;
+fun rumble_N : N;
+fun rumble_V : V;
+fun rumble_V2 : V2;
+fun rumbling_N : N;
+fun rumbustious_A : A;
+fun ruminant_A : A;
+fun ruminant_N : N;
+fun ruminate_V : V;
+fun rumination_N : N;
+fun ruminative_A : A;
+fun rummage_N : N;
+fun rummage_V : V;
+fun rummage_V2 : V2;
+fun rummy_A : A;
+fun rummy_N : N;
+fun rumour_N : N;
+fun rumour_V2 : V2;
+fun rumour_monger_N : N;
+fun rump_N : N;
+fun rump_steak_N : N;
+fun rumple_V2 : V2;
+fun rumpus_N : N;
+fun run_N : N;
+fun run_V : V;
+fun run_V2 : V2;
+fun run_of_the_mill_A : A;
+fun run_off_N : N;
+fun run_through_N : N;
+fun run_up_N : N;
+fun runaway_A : A;
+fun runaway_N : N;
+fun runcorn_PN : PN;
+fun rundown_A : A;
+fun rundown_N : N;
+fun rune_N : N;
+fun rung_N : N;
+fun runic_A : A;
+fun runnel_N : N;
+fun runner_N : N;
+fun runner_up_N : N;
+fun running_A : A;
+fun running_N : N;
+fun running_board_N : N;
+fun runny_A : A;
+fun runt_N : N;
+fun runway_N : N;
+fun rupee_N : N;
+fun rupert_PN : PN;
+fun rupiah_N : N;
+fun rupture_N : N;
+fun rupture_V : V;
+fun rupture_V2 : V2;
+fun rural_A : A;
+fun ruritanian_A : A;
+fun ruse_N : N;
+fun rush_N : N;
+fun rush_V : V;
+fun rush_V2 : V2;
+fun rushlight_N : N;
+fun rushy_A : A;
+fun rusk_N : N;
+fun russet_A : A;
+fun russet_N : N;
+fun russia_PN : PN;
+fun russian_A : A;
+fun russian_N : N;
+fun rust_N : N;
+fun rust_V : V;
+fun rust_V2 : V2;
+fun rustic_A : A;
+fun rustic_N : N;
+fun rusticate_V : V;
+fun rusticate_V2 : V2;
+fun rusticity_N : N;
+fun rustiness_N : N;
+fun rustle_N : N;
+fun rustle_V : V;
+fun rustle_V2 : V2;
+fun rustler_N : N;
+fun rustless_A : A;
+fun rustling_N : N;
+fun rusty_A : A;
+fun rut_N : N;
+fun rut_V2 : V2;
+fun ruth_PN : PN;
+fun rutherglen_PN : PN;
+fun ruthless_A : A;
+fun ruthlessness_N : N;
+fun rutland_PN : PN;
+fun rwanda_PN : PN;
+fun rwandan_A : A;
+fun rwandan_N : N;
+fun ryde_PN : PN;
+fun rye_N : N;
+fun rye_bread_N : N;
+fun ryehill_PN : PN;
+fun rechauffe_N : N;
+fun regime_2_N : N;
+fun resume_N : N;
+fun role_2_N : N;
+fun rontgen_N : N;
+fun saarbrucken_PN : PN;
+fun sabadeli_PN : PN;
+fun sabah_PN : PN;
+fun sabahan_A : A;
+fun sabahan_N : N;
+fun sabbatarian_A : A;
+fun sabbatarian_N : N;
+fun sabbath_N : N;
+fun sabbatical_A : A;
+fun sabbatical_N : N;
+fun sable_A : A;
+fun sable_N : N;
+fun sabot_N : N;
+fun sabotage_N : N;
+fun sabotage_V2 : V2;
+fun saboteur_N : N;
+fun sabre_N : N;
+fun sabre_V2 : V2;
+fun sabre_rattling_N : N;
+fun sabre_toothed_A : A;
+fun sac_N : N;
+fun saccharin_N : N;
+fun saccharine_A : A;
+fun sacerdotal_A : A;
+fun sacerdotalism_N : N;
+fun sachet_N : N;
+fun sack_N : N;
+fun sack_V2 : V2;
+fun sack_race_N : N;
+fun sackbut_N : N;
+fun sackcloth_N : N;
+fun sacking_N : N;
+fun sacrament_N : N;
+fun sacramental_A : A;
+fun sacramento_PN : PN;
+fun sacred_A : A;
+fun sacredness_N : N;
+fun sacrifice_N : N;
+fun sacrifice_V : V;
+fun sacrifice_V2 : V2;
+fun sacrificial_A : A;
+fun sacrilege_N : N;
+fun sacrilegious_A : A;
+fun sacristan_N : N;
+fun sacristy_N : N;
+fun sacrosanct_A : A;
+fun sad_A : A;
+fun sadden_V : V;
+fun sadden_V2 : V2;
+fun saddle_N : N;
+fun saddle_V2 : V2;
+fun saddle_sore_A : A;
+fun saddlebag_N : N;
+fun saddler_N : N;
+fun saddlery_N : N;
+fun sadhu_N : N;
+fun sadism_N : N;
+fun sadist_N : N;
+fun sadistic_A : A;
+fun sadness_N : N;
+fun sado_masochist_N : N;
+fun sadomasochism_N : N;
+fun sae_N : N;
+fun safari_N : N;
+fun safe_A : A;
+fun safe_N : N;
+fun safe_conduct_N : N;
+fun safe_deposit_A : A;
+fun safe_deposit_N : N;
+fun safecracker_N : N;
+fun safeguard_N : N;
+fun safeguard_V2 : V2;
+fun safekeeping_N : N;
+fun safeness_N : N;
+fun safety_N : N;
+fun safety_belt_N : N;
+fun safety_bolt_N : N;
+fun safety_catch_N : N;
+fun safety_curtain_N : N;
+fun safety_factor_N : N;
+fun safety_lamp_N : N;
+fun safety_lock_N : N;
+fun safety_match_N : N;
+fun safety_pin_N : N;
+fun safety_razor_N : N;
+fun safety_valve_N : N;
+fun saffron_N : N;
+fun saffron_walden_PN : PN;
+fun sag_N : N;
+fun sag_V : V;
+fun saga_N : N;
+fun sagacious_A : A;
+fun sagacity_N : N;
+fun sage_A : A;
+fun sage_N : N;
+fun sage_green_A : A;
+fun sage_green_N : N;
+fun sagittarius_PN : PN;
+fun sago_N : N;
+fun sahib_N : N;
+fun said_A : A;
+fun saigon_PN : PN;
+fun sail_N : N;
+fun sail_V : V;
+fun sail_V2 : V2;
+fun sailcloth_N : N;
+fun sailing_N : N;
+fun sailing_boat_N : N;
+fun sailing_master_N : N;
+fun sailing_ship_N : N;
+fun sailing_vessel_N : N;
+fun sailor_N : N;
+fun saint's_day_N : N;
+fun saint_N : N;
+fun sainted_A : A;
+fun sainthood_N : N;
+fun saintlike_A : A;
+fun saintliness_N : N;
+fun saintly_A : A;
+fun sake_1_N : N;
+fun sake_2_N : N;
+fun sal_volatile_N : N;
+fun salaam_N : N;
+fun salaam_V : V;
+fun salable_A : A;
+fun salacious_A : A;
+fun salaciousness_N : N;
+fun salacity_N : N;
+fun salad_N : N;
+fun salad_dressing_N : N;
+fun salad_oil_N : N;
+fun salamanca_PN : PN;
+fun salamander_N : N;
+fun salami_N : N;
+fun salaried_A : A;
+fun salary_N : N;
+fun sale_N : N;
+fun sale_PN : PN;
+fun saleable_A : A;
+fun salerno_PN : PN;
+fun saleroom_N : N;
+fun salesman_N : N;
+fun salesmanship_N : N;
+fun saleswoman_N : N;
+fun salford_PN : PN;
+fun salience_N : N;
+fun salient_A : A;
+fun salient_N : N;
+fun saline_A : A;
+fun saline_N : N;
+fun salinity_N : N;
+fun salisbury_PN : PN;
+fun saliva_N : N;
+fun salivary_A : A;
+fun salivate_V : V;
+fun sallow_A : A;
+fun sallow_V : V;
+fun sallow_V2 : V2;
+fun sally_N : N;
+fun sally_PN : PN;
+fun sally_V : V;
+fun salmon_N : N;
+fun salon_N : N;
+fun saloon_N : N;
+fun salsify_N : N;
+fun salt_A : A;
+fun salt_N : N;
+fun salt_PN : PN;
+fun salt_V2 : V2;
+fun salt_cellar_N : N;
+fun salt_lick_N : N;
+fun saltash_PN : PN;
+fun saltburn_PN : PN;
+fun saltcoats_PN : PN;
+fun saltiness_N : N;
+fun saltpan_N : N;
+fun saltpetre_N : N;
+fun saltwater_N : N;
+fun saltworks_N : N;
+fun salty_A : A;
+fun salubrious_A : A;
+fun salubrity_N : N;
+fun salutary_A : A;
+fun salutation_N : N;
+fun salute_N : N;
+fun salute_V : V;
+fun salute_V2 : V2;
+fun salvador_PN : PN;
+fun salvadorean_A : A;
+fun salvadorean_N : N;
+fun salvage_N : N;
+fun salvage_V2 : V2;
+fun salvation_N : N;
+fun salve_N : N;
+fun salve_V2 : V2;
+fun salver_N : N;
+fun salvia_N : N;
+fun salvo_N : N;
+fun salzburg_PN : PN;
+fun sam_PN : PN;
+fun samantha_PN : PN;
+fun samaritan_N : N;
+fun samba_N : N;
+fun same_A : A;
+fun same_Adv : Adv;
+fun sameness_N : N;
+fun sammy_PN : PN;
+fun samoa_PN : PN;
+fun samoan_A : A;
+fun samoan_N : N;
+fun samovar_N : N;
+fun sampan_N : N;
+fun sample_N : N;
+fun sample_V2 : V2;
+fun sampler_N : N;
+fun samuel_PN : PN;
+fun samurai_N : N;
+fun san_antonio_PN : PN;
+fun san_bernardino_PN : PN;
+fun san_diego_PN : PN;
+fun san_francisco_PN : PN;
+fun san_jose_PN : PN;
+fun san_juan_PN : PN;
+fun san_marinese_A : A;
+fun san_marinese_N : N;
+fun san_marino_PN : PN;
+fun san_sebastian_PN : PN;
+fun sanatorium_N : N;
+fun sanctification_N : N;
+fun sanctify_V2 : V2;
+fun sanctimonious_A : A;
+fun sanction_N : N;
+fun sanction_V2 : V2;
+fun sanctity_N : N;
+fun sanctuary_N : N;
+fun sanctum_N : N;
+fun sand_N : N;
+fun sand_V2 : V2;
+fun sand_bar_N : N;
+fun sandal_N : N;
+fun sandalled_A : A;
+fun sandalwood_N : N;
+fun sandbach_PN : PN;
+fun sandbag_N : N;
+fun sandbank_N : N;
+fun sandblast_V2 : V2;
+fun sandboy_N : N;
+fun sandfly_N : N;
+fun sandglass_N : N;
+fun sandiness_N : N;
+fun sandown_PN : PN;
+fun sandpaper_N : N;
+fun sandpaper_V2 : V2;
+fun sandpiper_N : N;
+fun sandpit_N : N;
+fun sandra_PN : PN;
+fun sandstone_N : N;
+fun sandstorm_N : N;
+fun sandwich_N : N;
+fun sandwich_V2 : V2;
+fun sandwich_board_N : N;
+fun sandwichman_N : N;
+fun sandy_A : A;
+fun sandy_PN : PN;
+fun sane_A : A;
+fun sang_froid_N : N;
+fun sango_N : N;
+fun sanguinary_A : A;
+fun sanguine_A : A;
+fun sanitary_A : A;
+fun sanitation_N : N;
+fun sanity_N : N;
+fun sanskrit_N : N;
+fun santa_claus_N : N;
+fun santa_claus_PN : PN;
+fun santander_PN : PN;
+fun santiago_PN : PN;
+fun santo_domingo_PN : PN;
+fun santos_PN : PN;
+fun sao_paolo_PN : PN;
+fun sap_N : N;
+fun sap_V : V;
+fun sap_V2 : V2;
+fun saphead_N : N;
+fun sapience_N : N;
+fun sapient_A : A;
+fun sapless_A : A;
+fun sapling_N : N;
+fun sapper_N : N;
+fun sapphic_A : A;
+fun sapphire_N : N;
+fun sapporo_PN : PN;
+fun sappy_A : A;
+fun sapwood_N : N;
+fun sara_PN : PN;
+fun saraband_N : N;
+fun saracen_N : N;
+fun sarah_PN : PN;
+fun sarajevo_PN : PN;
+fun saratov_PN : PN;
+fun sarawak_PN : PN;
+fun sarawakian_A : A;
+fun sarawakian_N : N;
+fun sarcasm_N : N;
+fun sarcastic_A : A;
+fun sarcastically_Adv : Adv;
+fun sarcophagus_N : N;
+fun sardine_N : N;
+fun sardonic_A : A;
+fun sardonically_Adv : Adv;
+fun sari_N : N;
+fun sarisbury_PN : PN;
+fun sarong_N : N;
+fun sarsaparilla_N : N;
+fun sartorial_A : A;
+fun sash_N : N;
+fun sash_cord_N : N;
+fun sash_line_N : N;
+fun saskatchewan_PN : PN;
+fun sassari_PN : PN;
+fun sassenach_N : N;
+fun sat_PN : PN;
+fun satan_N : N;
+fun satanic_A : A;
+fun satchel_N : N;
+fun sate_V2 : V2;
+fun sateen_N : N;
+fun satellite_N : N;
+fun satiable_A : A;
+fun satiate_V2 : V2;
+fun satiety_N : N;
+fun satin_A : A;
+fun satin_N : N;
+fun satinwood_N : N;
+fun satire_N : N;
+fun satirical_A : A;
+fun satirist_N : N;
+fun satirize_V2 : V2;
+fun satisfaction_N : N;
+fun satisfactory_A : A;
+fun satisfy_V : V;
+fun satisfy_V2 : V2;
+fun satisfying_A : A;
+fun satrap_N : N;
+fun satsuma_N : N;
+fun saturate_V2 : V2;
+fun saturation_N : N;
+fun saturday_N : N;
+fun saturday_PN : PN;
+fun saturn_PN : PN;
+fun saturnalia_N : N;
+fun saturnine_A : A;
+fun satyr_N : N;
+fun satyric_A : A;
+fun sauce_N : N;
+fun sauce_V2 : V2;
+fun sauce_boat_N : N;
+fun saucepan_N : N;
+fun saucer_N : N;
+fun saucer_eyed_A : A;
+fun sauchie_PN : PN;
+fun saucily_Adv : Adv;
+fun sauciness_N : N;
+fun saucy_A : A;
+fun saudi_arabia_PN : PN;
+fun saudi_arabian_A : A;
+fun saudi_arabian_N : N;
+fun sauerkraut_N : N;
+fun sauna_N : N;
+fun saunter_N : N;
+fun saunter_V : V;
+fun saunterer_N : N;
+fun saurian_A : A;
+fun saurian_N : N;
+fun sausage_N : N;
+fun sausage_dog_N : N;
+fun sausage_meat_N : N;
+fun sausage_roll_N : N;
+fun saute_A : A;
+fun saute_V2 : V2;
+fun savage_A : A;
+fun savage_N : N;
+fun savage_V2 : V2;
+fun savageness_N : N;
+fun savagery_N : N;
+fun savanna_N : N;
+fun savannah_N : N;
+fun savant_N : N;
+fun save_N : N;
+fun save_V : V;
+fun save_V2 : V2;
+fun saveloy_N : N;
+fun saver_N : N;
+fun saving_A : A;
+fun saving_N : N;
+fun savings_bank_N : N;
+fun saviour_N : N;
+fun savoir_faire_N : N;
+fun savory_N : N;
+fun savour_N : N;
+fun savour_V : V;
+fun savour_V2 : V2;
+fun savoury_A : A;
+fun savoury_N : N;
+fun savoy_N : N;
+fun savvy_N : N;
+fun savvy_V : V;
+fun saw_N : N;
+fun saw_V : V;
+fun saw_V2 : V2;
+fun saw_pit_N : N;
+fun sawbridgeworth_PN : PN;
+fun sawdust_N : N;
+fun sawhorse_N : N;
+fun sawmill_N : N;
+fun sawyer_N : N;
+fun sax_N : N;
+fun saxhorn_N : N;
+fun saxifrage_N : N;
+fun saxon_A : A;
+fun saxon_N : N;
+fun saxophone_N : N;
+fun saxophonist_N : N;
+fun say_N : N;
+fun say_V : V;
+fun say_V2 : V2;
+fun saying_N : N;
+fun scab_N : N;
+fun scabbard_N : N;
+fun scabby_A : A;
+fun scabies_N : N;
+fun scabious_N : N;
+fun scabrous_A : A;
+fun scaffold_N : N;
+fun scaffolding_N : N;
+fun scalawag_N : N;
+fun scald_N : N;
+fun scald_V2 : V2;
+fun scale_N : N;
+fun scale_V : V;
+fun scale_V2 : V2;
+fun scaling_ladder_N : N;
+fun scallop_N : N;
+fun scallop_V2 : V2;
+fun scallop_shell_N : N;
+fun scallywag_N : N;
+fun scalp_N : N;
+fun scalp_V2 : V2;
+fun scalpel_N : N;
+fun scaly_A : A;
+fun scamp_N : N;
+fun scamp_V2 : V2;
+fun scamper_N : N;
+fun scamper_V : V;
+fun scan_V : V;
+fun scan_V2 : V2;
+fun scandal_N : N;
+fun scandalize_V2 : V2;
+fun scandalmonger_N : N;
+fun scandalmongering_N : N;
+fun scandalous_A : A;
+fun scandinavian_A : A;
+fun scandinavian_N : N;
+fun scanner_N : N;
+fun scansion_N : N;
+fun scant_A : A;
+fun scant_V2 : V2;
+fun scantily_Adv : Adv;
+fun scantiness_N : N;
+fun scantling_N : N;
+fun scanty_A : A;
+fun scapegoat_N : N;
+fun scapegrace_N : N;
+fun scapula_N : N;
+fun scar_N : N;
+fun scar_V : V;
+fun scar_V2 : V2;
+fun scarab_N : N;
+fun scarborough_PN : PN;
+fun scarce_A : A;
+fun scarcity_N : N;
+fun scare_N : N;
+fun scare_V : V;
+fun scare_V2 : V2;
+fun scarecrow_N : N;
+fun scaremonger_N : N;
+fun scarf_N : N;
+fun scarf_pin_N : N;
+fun scarify_V2 : V2;
+fun scarlet_A : A;
+fun scarlet_N : N;
+fun scarp_N : N;
+fun scarper_V : V;
+fun scary_A : A;
+fun scathing_A : A;
+fun scatter_N : N;
+fun scatter_V : V;
+fun scatter_V2 : V2;
+fun scatterbrain_N : N;
+fun scatterbrained_A : A;
+fun scattered_A : A;
+fun scatty_A : A;
+fun scavenge_V : V;
+fun scavenger_N : N;
+fun scenario_N : N;
+fun scenarist_N : N;
+fun scene_N : N;
+fun scene_painter_N : N;
+fun scene_shifter_N : N;
+fun scenery_N : N;
+fun scenic_A : A;
+fun scenically_Adv : Adv;
+fun scent_N : N;
+fun scent_V2 : V2;
+fun scentless_A : A;
+fun sceptered_A : A;
+fun sceptic_N : N;
+fun sceptical_A : A;
+fun scepticism_N : N;
+fun sceptre_N : N;
+fun sceptred_A : A;
+fun schedule_N : N;
+fun schedule_V2 : V2;
+fun schema_N : N;
+fun schematic_A : A;
+fun schematically_Adv : Adv;
+fun scheme_N : N;
+fun scheme_V : V;
+fun scheme_V2 : V2;
+fun schemer_N : N;
+fun scherzo_N : N;
+fun schism_N : N;
+fun schismatic_A : A;
+fun schist_N : N;
+fun schizoid_A : A;
+fun schizophrenia_N : N;
+fun schizophrenic_A : A;
+fun schizophrenic_N : N;
+fun schmaltz_N : N;
+fun schmaltzy_A : A;
+fun schmalz_N : N;
+fun schmalzy_A : A;
+fun schnapps_N : N;
+fun schnitzel_N : N;
+fun schnorkel_N : N;
+fun scholar_N : N;
+fun scholarly_A : A;
+fun scholarship_N : N;
+fun scholastic_A : A;
+fun scholasticism_N : N;
+fun school_N : N;
+fun school_V2 : V2;
+fun school_board_N : N;
+fun schoolbook_N : N;
+fun schoolboy_N : N;
+fun schoolchild_N : N;
+fun schoolfellow_N : N;
+fun schoolfriend_N : N;
+fun schoolgirl_N : N;
+fun schoolhouse_N : N;
+fun schooling_N : N;
+fun schoolman_N : N;
+fun schoolmaster_N : N;
+fun schoolmate_N : N;
+fun schoolmistress_N : N;
+fun schoolroom_N : N;
+fun schoolteacher_N : N;
+fun schooltime_N : N;
+fun schooner_N : N;
+fun schottische_N : N;
+fun schwa_N : N;
+fun schwerin_PN : PN;
+fun sci_fi_N : N;
+fun sciatic_A : A;
+fun sciatica_N : N;
+fun science_N : N;
+fun scientific_A : A;
+fun scientifically_Adv : Adv;
+fun scientist_N : N;
+fun scimitar_N : N;
+fun scintilla_N : N;
+fun scintillate_V : V;
+fun scintillation_N : N;
+fun scion_N : N;
+fun sclerosis_N : N;
+fun scoff_N : N;
+fun scoff_V : V;
+fun scoff_V2 : V2;
+fun scoffer_N : N;
+fun scoffingly_Adv : Adv;
+fun scold_N : N;
+fun scold_V : V;
+fun scold_V2 : V2;
+fun scolding_N : N;
+fun scollop_N : N;
+fun scollop_V2 : V2;
+fun sconce_N : N;
+fun scone_N : N;
+fun scoop_N : N;
+fun scoop_V2 : V2;
+fun scoopful_N : N;
+fun scoot_V : V;
+fun scooter_N : N;
+fun scope_N : N;
+fun scorbutic_A : A;
+fun scorch_N : N;
+fun scorch_V : V;
+fun scorch_V2 : V2;
+fun scorcher_N : N;
+fun scorching_A : A;
+fun scorching_Adv : Adv;
+fun score_N : N;
+fun score_V : V;
+fun score_V2 : V2;
+fun scoreboard_N : N;
+fun scorebook_N : N;
+fun scorecard_N : N;
+fun scorer_N : N;
+fun scorn_N : N;
+fun scorn_V2 : V2;
+fun scornful_A : A;
+fun scorpio_PN : PN;
+fun scorpion_N : N;
+fun scot_N : N;
+fun scot_free_Adv : Adv;
+fun scotch_A : A;
+fun scotch_N : N;
+fun scotch_V2 : V2;
+fun scotchman_N : N;
+fun scotchwoman_N : N;
+fun scotland_PN : PN;
+fun scotland_yard_PN : PN;
+fun scots_A : A;
+fun scotsman_N : N;
+fun scotswoman_N : N;
+fun scottish_A : A;
+fun scoundrel_N : N;
+fun scoundrelly_A : A;
+fun scour_N : N;
+fun scour_V : V;
+fun scour_V2 : V2;
+fun scourer_N : N;
+fun scourge_N : N;
+fun scourge_V2 : V2;
+fun scout_N : N;
+fun scout_V : V;
+fun scout_V2 : V2;
+fun scoutmaster_N : N;
+fun scow_N : N;
+fun scowl_N : N;
+fun scowl_V : V;
+fun scrabble_N : N;
+fun scrabble_V : V;
+fun scrag_N : N;
+fun scrag_V2 : V2;
+fun scrag_end_N : N;
+fun scraggy_A : A;
+fun scram_V : V;
+fun scramble_N : N;
+fun scramble_V : V;
+fun scramble_V2 : V2;
+fun scrambler_N : N;
+fun scrap_N : N;
+fun scrap_V2 : V2;
+fun scrap_iron_N : N;
+fun scrapbook_N : N;
+fun scrape_N : N;
+fun scrape_V : V;
+fun scrape_V2 : V2;
+fun scraper_N : N;
+fun scrapheap_N : N;
+fun scraping_N : N;
+fun scrappily_Adv : Adv;
+fun scrappiness_N : N;
+fun scrappy_A : A;
+fun scratch_N : N;
+fun scratch_V : V;
+fun scratch_V2 : V2;
+fun scratch_pad_N : N;
+fun scratch_race_N : N;
+fun scratchy_A : A;
+fun scrawl_N : N;
+fun scrawl_V : V;
+fun scrawl_V2 : V2;
+fun scrawny_A : A;
+fun scream_N : N;
+fun scream_V : V;
+fun scream_V2 : V2;
+fun screamingly_Adv : Adv;
+fun scree_N : N;
+fun screech_N : N;
+fun screech_V : V;
+fun screech_V2 : V2;
+fun screech_owl_N : N;
+fun screed_N : N;
+fun screen_N : N;
+fun screen_V : V;
+fun screen_V2 : V2;
+fun screw_N : N;
+fun screw_V : V;
+fun screw_V2 : V2;
+fun screw_topped_A : A;
+fun screwball_A : A;
+fun screwball_N : N;
+fun screwdriver_N : N;
+fun screwy_A : A;
+fun scribble_N : N;
+fun scribble_V : V;
+fun scribble_V2 : V2;
+fun scribbler_N : N;
+fun scribbling_block_N : N;
+fun scribe_N : N;
+fun scrimmage_N : N;
+fun scrimmage_V : V;
+fun scrimmage_V2 : V2;
+fun scrimp_V : V;
+fun scrimp_V2 : V2;
+fun scrimshank_V : V;
+fun scrimshanker_N : N;
+fun scrip_N : N;
+fun script_N : N;
+fun scripted_A : A;
+fun scriptural_A : A;
+fun scripture_N : N;
+fun scriptwriter_N : N;
+fun scrivener_N : N;
+fun scrofula_N : N;
+fun scrofulous_A : A;
+fun scroll_N : N;
+fun scrooge_N : N;
+fun scrotum_N : N;
+fun scrounge_V : V;
+fun scrounge_V2 : V2;
+fun scrounger_N : N;
+fun scrub_N : N;
+fun scrub_V : V;
+fun scrub_V2 : V2;
+fun scrubbing_brush_N : N;
+fun scrubby_A : A;
+fun scruff_N : N;
+fun scruffy_A : A;
+fun scrum_N : N;
+fun scrummage_N : N;
+fun scrumptious_A : A;
+fun scrunch_N : N;
+fun scrunch_V2 : V2;
+fun scruple_N : N;
+fun scruple_V : V;
+fun scrupulous_A : A;
+fun scrutineer_N : N;
+fun scrutinize_V2 : V2;
+fun scrutiny_N : N;
+fun scud_N : N;
+fun scud_V : V;
+fun scuff_V : V;
+fun scuff_V2 : V2;
+fun scuffle_V : V;
+fun scull_N : N;
+fun scull_V : V;
+fun scull_V2 : V2;
+fun sculler_N : N;
+fun scullery_N : N;
+fun scullion_N : N;
+fun sculpt_V : V;
+fun sculpt_V2 : V2;
+fun sculptor_N : N;
+fun sculptress_N : N;
+fun sculptural_A : A;
+fun sculpture_N : N;
+fun sculpture_V : V;
+fun sculpture_V2 : V2;
+fun scum_N : N;
+fun scummy_A : A;
+fun scunthorpe_PN : PN;
+fun scupper_N : N;
+fun scupper_V2 : V2;
+fun scurf_N : N;
+fun scurfy_A : A;
+fun scurrility_N : N;
+fun scurrilous_A : A;
+fun scurry_N : N;
+fun scurry_V : V;
+fun scurvy_A : A;
+fun scurvy_N : N;
+fun scut_N : N;
+fun scutcheon_N : N;
+fun scuttle_N : N;
+fun scuttle_V : V;
+fun scuttle_V2 : V2;
+fun scylla_N : N;
+fun scythe_N : N;
+fun scythe_V2 : V2;
+fun sea_N : N;
+fun sea_anemone_N : N;
+fun sea_animal_N : N;
+fun sea_bathing_N : N;
+fun sea_boat_N : N;
+fun sea_bream_N : N;
+fun sea_breeze_N : N;
+fun sea_coal_N : N;
+fun sea_cow_N : N;
+fun sea_dog_N : N;
+fun sea_fish_N : N;
+fun sea_girt_A : A;
+fun sea_god_N : N;
+fun sea_green_A : A;
+fun sea_green_N : N;
+fun sea_horse_N : N;
+fun sea_level_N : N;
+fun sea_lion_N : N;
+fun sea_power_N : N;
+fun sea_rover_N : N;
+fun sea_snake_N : N;
+fun sea_urchin_N : N;
+fun sea_wall_N : N;
+fun sea_water_N : N;
+fun seabed_N : N;
+fun seabird_N : N;
+fun seaboard_N : N;
+fun seaborne_A : A;
+fun seafarer_N : N;
+fun seafaring_A : A;
+fun seafood_N : N;
+fun seaford_PN : PN;
+fun seafront_N : N;
+fun seagoing_A : A;
+fun seagull_N : N;
+fun seaham_PN : PN;
+fun seakale_N : N;
+fun seal_N : N;
+fun seal_V : V;
+fun seal_V2 : V2;
+fun seal_ring_N : N;
+fun sealer_N : N;
+fun sealing_wax_N : N;
+fun sealskin_N : N;
+fun sealyham_N : N;
+fun seam_N : N;
+fun seam_V2 : V2;
+fun seaman_N : N;
+fun seamanlike_A : A;
+fun seamanship_N : N;
+fun seamless_A : A;
+fun seamstress_N : N;
+fun seamus_PN : PN;
+fun seamy_A : A;
+fun sean_PN : PN;
+fun seaplane_N : N;
+fun seaport_N : N;
+fun sear_A : A;
+fun sear_V2 : V2;
+fun search_N : N;
+fun search_V : V;
+fun search_V2 : V2;
+fun search_party_N : N;
+fun search_warrant_N : N;
+fun searcher_N : N;
+fun searching_A : A;
+fun searchlight_N : N;
+fun searing_iron_N : N;
+fun seascape_N : N;
+fun seashell_N : N;
+fun seashore_N : N;
+fun seasick_A : A;
+fun seasickness_N : N;
+fun seaside_N : N;
+fun season_N : N;
+fun season_V : V;
+fun season_V2 : V2;
+fun season_ticket_N : N;
+fun seasonable_A : A;
+fun seasonal_A : A;
+fun seasoning_N : N;
+fun seat_N : N;
+fun seat_V2 : V2;
+fun seat_belt_N : N;
+fun seating_room_N : N;
+fun seaton_burn_PN : PN;
+fun seaton_delaval_PN : PN;
+fun seattle_PN : PN;
+fun seaward_A : A;
+fun seawards_Adv : Adv;
+fun seaway_N : N;
+fun seaweed_N : N;
+fun seaworthiness_N : N;
+fun seaworthy_A : A;
+fun sec_N : N;
+fun secede_V : V;
+fun secession_N : N;
+fun secessionist_N : N;
+fun seclude_V2 : V2;
+fun secluded_A : A;
+fun seclusion_N : N;
+fun second_N : N;
+fun second_V2 : V2;
+fun second_best_A : A;
+fun second_best_Adv : Adv;
+fun second_best_N : N;
+fun second_class_A : A;
+fun second_class_Adv : Adv;
+fun second_class_N : N;
+fun second_hand_A : A;
+fun second_hand_N : N;
+fun second_rate_A : A;
+fun second_rater_N : N;
+fun second_sighted_A : A;
+fun secondary_A : A;
+fun seconder_N : N;
+fun secondment_N : N;
+fun secrecy_N : N;
+fun secret_A : A;
+fun secret_N : N;
+fun secretarial_A : A;
+fun secretariat_N : N;
+fun secretary_N : N;
+fun secretary_general_N : N;
+fun secrete_V2 : V2;
+fun secretion_N : N;
+fun secretive_A : A;
+fun secretiveness_N : N;
+fun sect_N : N;
+fun sectarian_A : A;
+fun sectarian_N : N;
+fun sectarianism_N : N;
+fun section_N : N;
+fun sectional_A : A;
+fun sectionalism_N : N;
+fun sector_N : N;
+fun secular_A : A;
+fun secularism_N : N;
+fun secularist_N : N;
+fun secularize_V2 : V2;
+fun secure_A : A;
+fun secure_V2 : V2;
+fun securicor_PN : PN;
+fun security_N : N;
+fun sedan_N : N;
+fun sedan_chair_N : N;
+fun sedate_A : A;
+fun sedate_V2 : V2;
+fun sedateness_N : N;
+fun sedation_N : N;
+fun sedative_A : A;
+fun sedative_N : N;
+fun sedentary_A : A;
+fun sedge_N : N;
+fun sedgy_A : A;
+fun sediment_N : N;
+fun sedimentary_A : A;
+fun sedition_N : N;
+fun seditious_A : A;
+fun seduce_V2 : V2;
+fun seducer_N : N;
+fun seduction_N : N;
+fun seductive_A : A;
+fun sedulous_A : A;
+fun see_N : N;
+fun see_V : V;
+fun see_V2 : V2;
+fun see_through_A : A;
+fun seed_N : N;
+fun seed_V : V;
+fun seed_V2 : V2;
+fun seed_corn_N : N;
+fun seedbed_N : N;
+fun seedcake_N : N;
+fun seedily_Adv : Adv;
+fun seediness_N : N;
+fun seedless_A : A;
+fun seedling_N : N;
+fun seedsman_N : N;
+fun seedtime_N : N;
+fun seedy_A : A;
+fun seek_V2 : V2;
+fun seeker_N : N;
+fun seem_V : V;
+fun seeming_A : A;
+fun seemliness_N : N;
+fun seemly_A : A;
+fun seep_V : V;
+fun seepage_N : N;
+fun seer_N : N;
+fun seersucker_N : N;
+fun seesaw_N : N;
+fun seesaw_V : V;
+fun seethe_V : V;
+fun seethe_V2 : V2;
+fun segment_N : N;
+fun segment_V : V;
+fun segment_V2 : V2;
+fun segmentation_N : N;
+fun segregate_V2 : V2;
+fun segregation_N : N;
+fun seignior_N : N;
+fun seine_N : N;
+fun seine_V : V;
+fun seine_V2 : V2;
+fun seismic_A : A;
+fun seismograph_N : N;
+fun seismologist_N : N;
+fun seismology_N : N;
+fun seize_V : V;
+fun seize_V2 : V2;
+fun seizure_N : N;
+fun selby_PN : PN;
+fun seldom_Adv : Adv;
+fun select_A : A;
+fun select_V2 : V2;
+fun selection_N : N;
+fun selective_A : A;
+fun selectivity_N : N;
+fun selector_N : N;
+fun selenium_N : N;
+fun self_N : N;
+fun self_abasement_N : N;
+fun self_abnegation_N : N;
+fun self_absorbed_A : A;
+fun self_acting_A : A;
+fun self_activating_A : A;
+fun self_addressed_A : A;
+fun self_appointed_A : A;
+fun self_assertion_N : N;
+fun self_assertive_A : A;
+fun self_assurance_N : N;
+fun self_assured_A : A;
+fun self_centred_A : A;
+fun self_collected_A : A;
+fun self_coloured_A : A;
+fun self_command_N : N;
+fun self_communion_N : N;
+fun self_complacency_N : N;
+fun self_confessed_A : A;
+fun self_confidence_N : N;
+fun self_confident_A : A;
+fun self_conscious_A : A;
+fun self_consciousness_N : N;
+fun self_contained_A : A;
+fun self_control_N : N;
+fun self_defence_N : N;
+fun self_denial_N : N;
+fun self_denying_A : A;
+fun self_determination_N : N;
+fun self_educated_A : A;
+fun self_effacing_A : A;
+fun self_employed_A : A;
+fun self_esteem_N : N;
+fun self_evident_A : A;
+fun self_examination_N : N;
+fun self_explanatory_A : A;
+fun self_help_N : N;
+fun self_importance_N : N;
+fun self_important_A : A;
+fun self_imposed_A : A;
+fun self_indulgence_N : N;
+fun self_indulgent_A : A;
+fun self_interest_N : N;
+fun self_locking_A : A;
+fun self_made_A : A;
+fun self_opinionated_A : A;
+fun self_pity_N : N;
+fun self_possessed_A : A;
+fun self_possession_N : N;
+fun self_preservation_N : N;
+fun self_raising_A : A;
+fun self_reliance_N : N;
+fun self_reliant_A : A;
+fun self_respect_N : N;
+fun self_respecting_A : A;
+fun self_righteous_A : A;
+fun self_rule_N : N;
+fun self_sacrifice_N : N;
+fun self_sacrificing_A : A;
+fun self_same_A : A;
+fun self_sealing_A : A;
+fun self_seeker_N : N;
+fun self_seeking_A : A;
+fun self_seeking_N : N;
+fun self_service_N : N;
+fun self_sown_A : A;
+fun self_starter_N : N;
+fun self_styled_A : A;
+fun self_sufficiency_N : N;
+fun self_sufficient_A : A;
+fun self_sufficing_A : A;
+fun self_supporting_A : A;
+fun self_will_N : N;
+fun self_willed_A : A;
+fun self_winding_A : A;
+fun selfconsciously_Adv : Adv;
+fun selfish_A : A;
+fun selfishness_N : N;
+fun selkirk_PN : PN;
+fun sell_N : N;
+fun sell_V : V;
+fun sell_V2 : V2;
+fun seller_N : N;
+fun selling_N : N;
+fun sellout_N : N;
+fun selsey_PN : PN;
+fun selston_PN : PN;
+fun selvage_N : N;
+fun selvedge_N : N;
+fun semantic_A : A;
+fun semantics_N : N;
+fun semaphore_N : N;
+fun semaphore_V : V;
+fun semaphore_V2 : V2;
+fun semarang_PN : PN;
+fun semblance_N : N;
+fun semen_N : N;
+fun semester_N : N;
+fun semibreve_N : N;
+fun semicircle_N : N;
+fun semicircular_A : A;
+fun semicolon_N : N;
+fun semiconducting_A : A;
+fun semiconductor_N : N;
+fun semiconscious_A : A;
+fun semidetached_A : A;
+fun semifinal_N : N;
+fun semifinalist_N : N;
+fun seminal_A : A;
+fun seminar_N : N;
+fun seminarist_N : N;
+fun seminary_N : N;
+fun semiofficial_A : A;
+fun semiquaver_N : N;
+fun semirigid_A : A;
+fun semite_A : A;
+fun semite_N : N;
+fun semitic_A : A;
+fun semitone_N : N;
+fun semitropical_A : A;
+fun semivowel_N : N;
+fun semolina_N : N;
+fun sempstress_N : N;
+fun senate_N : N;
+fun senator_N : N;
+fun senatorial_A : A;
+fun send_V : V;
+fun send_V2 : V2;
+fun send_up_N : N;
+fun sender_N : N;
+fun sendoff_N : N;
+fun senegal_PN : PN;
+fun senegalese_A : A;
+fun senegalese_N : N;
+fun senescence_N : N;
+fun senescent_A : A;
+fun seneschal_N : N;
+fun senile_A : A;
+fun senility_N : N;
+fun senior_A : A;
+fun senior_N : N;
+fun seniority_N : N;
+fun senna_N : N;
+fun senora_N : N;
+fun senorita_N : N;
+fun sensation_N : N;
+fun sensational_A : A;
+fun sensationalism_N : N;
+fun sensationalist_N : N;
+fun sense_N : N;
+fun sense_V2 : V2;
+fun sense_organ_N : N;
+fun senseless_A : A;
+fun senselessness_N : N;
+fun sensibility_N : N;
+fun sensible_A : A;
+fun sensitive_A : A;
+fun sensitivity_N : N;
+fun sensitization_N : N;
+fun sensitize_V2 : V2;
+fun sensory_A : A;
+fun sensual_A : A;
+fun sensualism_N : N;
+fun sensualist_N : N;
+fun sensuality_N : N;
+fun sensuous_A : A;
+fun sensuousness_N : N;
+fun sentence_N : N;
+fun sentence_V2 : V2;
+fun sententious_A : A;
+fun sentient_A : A;
+fun sentiment_N : N;
+fun sentimental_A : A;
+fun sentimentalist_N : N;
+fun sentimentality_N : N;
+fun sentimentalize_V : V;
+fun sentimentalize_V2 : V2;
+fun sentinel_N : N;
+fun sentry_N : N;
+fun sentry_box_N : N;
+fun sentry_go_N : N;
+fun seoul_PN : PN;
+fun sepal_N : N;
+fun separability_N : N;
+fun separable_A : A;
+fun separate_A : A;
+fun separate_N : N;
+fun separate_V : V;
+fun separate_V2 : V2;
+fun separation_N : N;
+fun separatist_N : N;
+fun separator_N : N;
+fun sepia_N : N;
+fun sepsis_N : N;
+fun sept_PN : PN;
+fun september_N : N;
+fun september_PN : PN;
+fun septet_N : N;
+fun septic_A : A;
+fun septicaemia_N : N;
+fun septicemia_N : N;
+fun septuagenarian_N : N;
+fun septuagint_N : N;
+fun sepulchral_A : A;
+fun sepulchre_N : N;
+fun sepulture_N : N;
+fun sequel_N : N;
+fun sequence_N : N;
+fun sequent_A : A;
+fun sequential_A : A;
+fun sequester_V2 : V2;
+fun sequestered_A : A;
+fun sequestrate_V2 : V2;
+fun sequestration_N : N;
+fun sequin_N : N;
+fun sequoia_N : N;
+fun seraglio_N : N;
+fun seraph_N : N;
+fun seraphic_A : A;
+fun serbo_croat_N : N;
+fun sere_A : A;
+fun serenade_N : N;
+fun serenade_V2 : V2;
+fun serendipity_N : N;
+fun serene_A : A;
+fun serenity_N : N;
+fun serf_N : N;
+fun serfdom_N : N;
+fun serge_N : N;
+fun sergeant_N : N;
+fun sergeant_major_N : N;
+fun serial_A : A;
+fun serial_N : N;
+fun serialize_V2 : V2;
+fun seriatim_Adv : Adv;
+fun sericultural_A : A;
+fun sericulture_N : N;
+fun sericulturist_N : N;
+fun series_N : N;
+fun seriocomic_A : A;
+fun serious_A : A;
+fun seriousness_N : N;
+fun serjeant_N : N;
+fun serjeant_at_arms_N : N;
+fun sermon_N : N;
+fun sermonize_V : V;
+fun sermonize_V2 : V2;
+fun serous_A : A;
+fun serpent_N : N;
+fun serpentine_A : A;
+fun serrated_A : A;
+fun serried_A : A;
+fun serum_N : N;
+fun servant_N : N;
+fun serve_N : N;
+fun serve_V : V;
+fun serve_V2 : V2;
+fun server_N : N;
+fun service_N : N;
+fun service_V2 : V2;
+fun serviceable_A : A;
+fun serviceman_N : N;
+fun serviette_N : N;
+fun servile_A : A;
+fun servility_N : N;
+fun serving_N : N;
+fun servitor_N : N;
+fun servitude_N : N;
+fun sesame_N : N;
+fun sesotho_N : N;
+fun sesquipedalian_A : A;
+fun session_N : N;
+fun set_N : N;
+fun set_V : V;
+fun set_V2 : V2;
+fun set_square_N : N;
+fun set_to_N : N;
+fun set_up_N : N;
+fun setback_N : N;
+fun setswana_N : N;
+fun sett_N : N;
+fun settee_N : N;
+fun setter_N : N;
+fun setting_N : N;
+fun settle_N : N;
+fun settle_V : V;
+fun settle_V2 : V2;
+fun settled_A : A;
+fun settlement_N : N;
+fun settler_N : N;
+fun seven_sisters_PN : PN;
+fun sevenfold_A : A;
+fun sevenfold_Adv : Adv;
+fun sevenoaks_PN : PN;
+fun sever_V : V;
+fun sever_V2 : V2;
+fun several_A : A;
+fun severally_Adv : Adv;
+fun severance_N : N;
+fun severe_A : A;
+fun severity_N : N;
+fun sevilla_PN : PN;
+fun seville_PN : PN;
+fun sew_V : V;
+fun sew_V2 : V2;
+fun sewage_N : N;
+fun sewage_farm_N : N;
+fun sewage_works_N : N;
+fun sewer_N : N;
+fun sewer_gas_N : N;
+fun sewer_rat_N : N;
+fun sewerage_N : N;
+fun sewing_N : N;
+fun sewing_machine_N : N;
+fun sex_N : N;
+fun sex_V2 : V2;
+fun sex_starved_A : A;
+fun sexagenarian_A : A;
+fun sexagenarian_N : N;
+fun sexed_A : A;
+fun sexism_N : N;
+fun sexist_A : A;
+fun sexist_N : N;
+fun sexless_A : A;
+fun sextant_N : N;
+fun sextet_N : N;
+fun sextette_N : N;
+fun sexton_N : N;
+fun sexual_A : A;
+fun sexuality_N : N;
+fun sexy_A : A;
+fun seychelles_PN : PN;
+fun seychellois_A : A;
+fun seychellois_N : N;
+fun senor_N : N;
+fun sgd_PN : PN;
+fun sgt_PN : PN;
+fun shabbily_Adv : Adv;
+fun shabbiness_N : N;
+fun shabby_A : A;
+fun shabby_genteel_A : A;
+fun shack_N : N;
+fun shack_V : V;
+fun shackle_N : N;
+fun shackle_V2 : V2;
+fun shad_N : N;
+fun shaddock_N : N;
+fun shade_N : N;
+fun shade_V : V;
+fun shade_V2 : V2;
+fun shade_tree_N : N;
+fun shading_N : N;
+fun shadow_N : N;
+fun shadow_V2 : V2;
+fun shadow_boxing_N : N;
+fun shadowy_A : A;
+fun shady_A : A;
+fun shaft_N : N;
+fun shag_N : N;
+fun shag_V : V;
+fun shag_V2 : V2;
+fun shaggily_Adv : Adv;
+fun shagginess_N : N;
+fun shagging_N : N;
+fun shaggy_A : A;
+fun shah_N : N;
+fun shake_N : N;
+fun shake_V : V;
+fun shake_V2 : V2;
+fun shake_up_N : N;
+fun shakedown_N : N;
+fun shakeout_N : N;
+fun shaker_N : N;
+fun shakespearian_A : A;
+fun shakily_Adv : Adv;
+fun shakiness_N : N;
+fun shaking_N : N;
+fun shaky_A : A;
+fun shale_N : N;
+fun shale_oil_N : N;
+fun shallot_N : N;
+fun shallow_A : A;
+fun shallow_N : N;
+fun shallow_V : V;
+fun sham_A : A;
+fun sham_N : N;
+fun sham_V : V;
+fun sham_V2 : V2;
+fun shamble_N : N;
+fun shamble_V : V;
+fun shambles_N : N;
+fun shame_N : N;
+fun shame_V2 : V2;
+fun shame_making_A : A;
+fun shamefaced_A : A;
+fun shameful_A : A;
+fun shameless_A : A;
+fun shamelessness_N : N;
+fun shammy_N : N;
+fun shampoo_N : N;
+fun shampoo_V2 : V2;
+fun shamrock_N : N;
+fun shandy_N : N;
+fun shanghai_PN : PN;
+fun shanghai_V2 : V2;
+fun shank_N : N;
+fun shanklin_PN : PN;
+fun shantung_N : N;
+fun shanty_N : N;
+fun shantytown_N : N;
+fun shape_N : N;
+fun shape_V : V;
+fun shape_V2 : V2;
+fun shapeless_A : A;
+fun shapelessness_N : N;
+fun shapely_A : A;
+fun shard_N : N;
+fun share_N : N;
+fun share_V : V;
+fun share_V2 : V2;
+fun share_out_N : N;
+fun sharecropper_N : N;
+fun shareholder_N : N;
+fun shareholding_N : N;
+fun shark_N : N;
+fun sharkskin_N : N;
+fun sharon_PN : PN;
+fun sharp_A : A;
+fun sharp_Adv : Adv;
+fun sharp_N : N;
+fun sharp_eyed_A : A;
+fun sharp_set_A : A;
+fun sharp_sighted_A : A;
+fun sharp_witted_A : A;
+fun sharpen_V : V;
+fun sharpen_V2 : V2;
+fun sharpener_N : N;
+fun sharper_N : N;
+fun sharpness_N : N;
+fun sharpshooter_N : N;
+fun shatter_V : V;
+fun shatter_V2 : V2;
+fun shatterproof_A : A;
+fun shave_N : N;
+fun shave_V : V;
+fun shave_V2 : V2;
+fun shaver_N : N;
+fun shavian_A : A;
+fun shavian_N : N;
+fun shaving_brush_N : N;
+fun shawl_N : N;
+fun she_goat_N : N;
+fun sheaf_N : N;
+fun shear_V2 : V2;
+fun sheath_N : N;
+fun sheath_knife_N : N;
+fun sheathe_V2 : V2;
+fun sheathing_N : N;
+fun shebang_N : N;
+fun shebeen_N : N;
+fun shed_N : N;
+fun shed_V2 : V2;
+fun sheen_N : N;
+fun sheep_N : N;
+fun sheepdog_N : N;
+fun sheepfold_N : N;
+fun sheepish_A : A;
+fun sheepishness_N : N;
+fun sheeprun_N : N;
+fun sheepskin_N : N;
+fun sheer_A : A;
+fun sheer_Adv : Adv;
+fun sheer_V : V;
+fun sheerness_PN : PN;
+fun sheet_N : N;
+fun sheet_anchor_N : N;
+fun sheet_lightning_N : N;
+fun sheeting_N : N;
+fun sheffield_PN : PN;
+fun sheik_N : N;
+fun sheikdom_N : N;
+fun sheikh_N : N;
+fun sheikhdom_N : N;
+fun sheila_PN : PN;
+fun shekel_N : N;
+fun sheldrake_N : N;
+fun shelf_N : N;
+fun shelford_PN : PN;
+fun shell_N : N;
+fun shell_V : V;
+fun shell_V2 : V2;
+fun shell_shock_N : N;
+fun shellac_N : N;
+fun shellac_V2 : V2;
+fun shellfire_N : N;
+fun shellfish_N : N;
+fun shellproof_A : A;
+fun shelter_N : N;
+fun shelter_V : V;
+fun shelter_V2 : V2;
+fun shelve_V : V;
+fun shelve_V2 : V2;
+fun shepherd_N : N;
+fun shepherd_V2 : V2;
+fun shepherdess_N : N;
+fun shepshed_PN : PN;
+fun shepton_mallet_PN : PN;
+fun sheraton_N : N;
+fun sherbet_N : N;
+fun sherbourne_PN : PN;
+fun sheriff_N : N;
+fun sheringham_PN : PN;
+fun sherry_N : N;
+fun shetland_PN : PN;
+fun shevington_PN : PN;
+fun shew_V : V;
+fun shew_V2 : V2;
+fun shibboleth_N : N;
+fun shield_N : N;
+fun shield_V2 : V2;
+fun shift_N : N;
+fun shift_V : V;
+fun shift_V2 : V2;
+fun shiftily_Adv : Adv;
+fun shiftiness_N : N;
+fun shiftless_A : A;
+fun shifty_A : A;
+fun shihkiachwang_PN : PN;
+fun shildon_PN : PN;
+fun shillelagh_N : N;
+fun shilling_N : N;
+fun shillyshally_N : N;
+fun shillyshally_V : V;
+fun shimmer_N : N;
+fun shimmer_V : V;
+fun shin_N : N;
+fun shin_V : V;
+fun shinbone_N : N;
+fun shindig_N : N;
+fun shindy_N : N;
+fun shine_N : N;
+fun shine_V : V;
+fun shine_V2 : V2;
+fun shingle_N : N;
+fun shingle_V2 : V2;
+fun shingles_N : N;
+fun shingly_A : A;
+fun shinguard_N : N;
+fun shiny_A : A;
+fun ship's_chandler_N : N;
+fun ship_N : N;
+fun ship_V : V;
+fun ship_V2 : V2;
+fun ship_breaker_N : N;
+fun ship_canal_N : N;
+fun shipboard_A : A;
+fun shipbroker_N : N;
+fun shipbuilder_N : N;
+fun shipbuilding_N : N;
+fun shipload_N : N;
+fun shipmate_N : N;
+fun shipment_N : N;
+fun shipowner_N : N;
+fun shipper_N : N;
+fun shipping_N : N;
+fun shipping_agent_N : N;
+fun shipping_office_N : N;
+fun shipshape_A : A;
+fun shipshape_Adv : Adv;
+fun shipway_N : N;
+fun shipwreck_N : N;
+fun shipwreck_V : V;
+fun shipwright_N : N;
+fun shipyard_N : N;
+fun shire_N : N;
+fun shirebrook_PN : PN;
+fun shiremoor_PN : PN;
+fun shirk_V : V;
+fun shirk_V2 : V2;
+fun shirker_N : N;
+fun shirley_PN : PN;
+fun shirt_N : N;
+fun shirt_front_N : N;
+fun shirting_N : N;
+fun shirtwaist_N : N;
+fun shirtwaister_N : N;
+fun shirty_A : A;
+fun shish_kebab_N : N;
+fun shit_N : N;
+fun shit_V : V;
+fun shiver_N : N;
+fun shiver_V : V;
+fun shiver_V2 : V2;
+fun shivery_A : A;
+fun shoal_N : N;
+fun shoal_V : V;
+fun shock_Adv : Adv;
+fun shock_N : N;
+fun shock_V2 : V2;
+fun shock_brigade_N : N;
+fun shock_headed_A : A;
+fun shock_worker_N : N;
+fun shockable_A : A;
+fun shocker_N : N;
+fun shocking_A : A;
+fun shoddiness_N : N;
+fun shoddy_A : A;
+fun shoddy_N : N;
+fun shoe_N : N;
+fun shoe_V2 : V2;
+fun shoe_leather_N : N;
+fun shoeblack_N : N;
+fun shoehorn_N : N;
+fun shoelace_N : N;
+fun shoemaker_N : N;
+fun shoemaking_N : N;
+fun shoestring_N : N;
+fun shoetree_N : N;
+fun shogun_N : N;
+fun shoo_V : V;
+fun shoo_V2 : V2;
+fun shoot_N : N;
+fun shoot_V : V;
+fun shoot_V2 : V2;
+fun shooter_N : N;
+fun shooting_N : N;
+fun shooting_box_N : N;
+fun shooting_brake_N : N;
+fun shooting_gallery_N : N;
+fun shooting_range_N : N;
+fun shooting_stick_N : N;
+fun shop_N : N;
+fun shop_V : V;
+fun shop_assistant_N : N;
+fun shop_bell_N : N;
+fun shop_boy_N : N;
+fun shop_front_N : N;
+fun shop_girl_N : N;
+fun shop_steward_N : N;
+fun shopkeeper_N : N;
+fun shoplift_V : V;
+fun shoplift_V2 : V2;
+fun shoplifter_N : N;
+fun shoplifting_N : N;
+fun shopper_N : N;
+fun shopping_N : N;
+fun shopsoiled_A : A;
+fun shopwalker_N : N;
+fun shopwindow_N : N;
+fun shopworn_A : A;
+fun shore_N : N;
+fun shore_V2 : V2;
+fun short_A : A;
+fun short_Adv : Adv;
+fun short_N : N;
+fun short_V : V;
+fun short_V2 : V2;
+fun short_change_V2 : V2;
+fun short_circuit_N : N;
+fun short_circuit_V : V;
+fun short_circuit_V2 : V2;
+fun short_dated_A : A;
+fun short_handed_A : A;
+fun short_lived_A : A;
+fun short_range_A : A;
+fun short_sighted_A : A;
+fun short_tempered_A : A;
+fun short_term_A : A;
+fun short_winded_A : A;
+fun shortage_N : N;
+fun shortbread_N : N;
+fun shortcake_N : N;
+fun shortcoming_N : N;
+fun shorten_V : V;
+fun shorten_V2 : V2;
+fun shortening_N : N;
+fun shortfall_N : N;
+fun shorthand_N : N;
+fun shorthorn_N : N;
+fun shortish_A : A;
+fun shortlist_N : N;
+fun shortlist_V2 : V2;
+fun shortness_N : N;
+fun shot_N : N;
+fun shot_put_N : N;
+fun shot_tower_N : N;
+fun shotgun_N : N;
+fun shotton_PN : PN;
+fun shotts_PN : PN;
+fun shoulder_N : N;
+fun shoulder_V2 : V2;
+fun shoulder_blade_N : N;
+fun shoulder_flash_N : N;
+fun shoulder_strap_N : N;
+fun shout_N : N;
+fun shout_V : V;
+fun shout_V2 : V2;
+fun shouting_N : N;
+fun shove_N : N;
+fun shove_V : V;
+fun shove_V2 : V2;
+fun shove_ha'penny_N : N;
+fun shovel_N : N;
+fun shovel_V2 : V2;
+fun shovel_board_N : N;
+fun shovelful_N : N;
+fun show_N : N;
+fun show_V : V;
+fun show_V2 : V2;
+fun show_business_N : N;
+fun show_off_N : N;
+fun show_window_N : N;
+fun showbiz_N : N;
+fun showboat_N : N;
+fun showcase_N : N;
+fun showdown_N : N;
+fun shower_N : N;
+fun shower_V : V;
+fun shower_V2 : V2;
+fun shower_bath_N : N;
+fun showery_A : A;
+fun showgirl_N : N;
+fun showily_Adv : Adv;
+fun showiness_N : N;
+fun showing_N : N;
+fun showjumping_N : N;
+fun showman_N : N;
+fun showmanship_N : N;
+fun showplace_N : N;
+fun showroom_N : N;
+fun showy_A : A;
+fun shrapnel_N : N;
+fun shred_N : N;
+fun shred_V2 : V2;
+fun shrew_N : N;
+fun shrew_mouse_N : N;
+fun shrewd_A : A;
+fun shrewdness_N : N;
+fun shrewish_A : A;
+fun shrewishness_N : N;
+fun shrewsbury_PN : PN;
+fun shriek_N : N;
+fun shriek_V : V;
+fun shriek_V2 : V2;
+fun shrift_N : N;
+fun shrike_N : N;
+fun shrill_A : A;
+fun shrill_V : V;
+fun shrill_V2 : V2;
+fun shrillness_N : N;
+fun shrilly_Adv : Adv;
+fun shrimp_N : N;
+fun shrimp_V : V;
+fun shrine_N : N;
+fun shrine_V2 : V2;
+fun shrink_N : N;
+fun shrink_V : V;
+fun shrink_V2 : V2;
+fun shrinkable_A : A;
+fun shrinkage_N : N;
+fun shrive_V2 : V2;
+fun shrivel_V : V;
+fun shrivel_V2 : V2;
+fun shropshire_PN : PN;
+fun shroud_N : N;
+fun shroud_V2 : V2;
+fun shrove_tuesday_N : N;
+fun shrove_tuesday_PN : PN;
+fun shrub_N : N;
+fun shrubbery_N : N;
+fun shrug_N : N;
+fun shrug_V2 : V2;
+fun shuck_N : N;
+fun shuck_V2 : V2;
+fun shudder_N : N;
+fun shudder_V : V;
+fun shudderingly_Adv : Adv;
+fun shuffle_N : N;
+fun shuffle_V : V;
+fun shuffle_V2 : V2;
+fun shuffler_N : N;
+fun shun_V2 : V2;
+fun shunt_V : V;
+fun shunt_V2 : V2;
+fun shunter_N : N;
+fun shush_V : V;
+fun shush_V2 : V2;
+fun shut_V : V;
+fun shut_V2 : V2;
+fun shutdown_N : N;
+fun shuteye_N : N;
+fun shutter_N : N;
+fun shutter_V2 : V2;
+fun shuttle_N : N;
+fun shuttle_V : V;
+fun shuttle_V2 : V2;
+fun shuttlecock_N : N;
+fun shy_A : A;
+fun shy_N : N;
+fun shy_V : V;
+fun shy_V2 : V2;
+fun shyness_N : N;
+fun shyster_N : N;
+fun siam_PN : PN;
+fun siamese_A : A;
+fun siamese_N : N;
+fun sian_PN : PN;
+fun siberian_A : A;
+fun sibilant_A : A;
+fun sibilant_N : N;
+fun sibling_N : N;
+fun sibyl_N : N;
+fun sibylline_A : A;
+fun sic_Adv : Adv;
+fun sicilian_A : A;
+fun sicilian_N : N;
+fun sick_A : A;
+fun sick_V2 : V2;
+fun sick_benefit_N : N;
+fun sick_berth_N : N;
+fun sick_headache_N : N;
+fun sick_leave_N : N;
+fun sick_list_N : N;
+fun sick_parade_N : N;
+fun sick_pay_N : N;
+fun sick_room_N : N;
+fun sickbay_N : N;
+fun sickbed_N : N;
+fun sicken_V : V;
+fun sicken_V2 : V2;
+fun sickening_A : A;
+fun sickish_A : A;
+fun sickle_N : N;
+fun sickly_A : A;
+fun sickness_N : N;
+fun sid_PN : PN;
+fun side_N : N;
+fun side_V : V;
+fun side_chapel_N : N;
+fun side_dish_N : N;
+fun side_drum_N : N;
+fun side_face_Adv : Adv;
+fun side_glance_N : N;
+fun side_road_N : N;
+fun side_saddle_Adv : Adv;
+fun side_saddle_N : N;
+fun side_slip_N : N;
+fun side_slip_V : V;
+fun side_splitting_A : A;
+fun side_stroke_N : N;
+fun side_view_N : N;
+fun sideboard_N : N;
+fun sidecar_N : N;
+fun sided_A : A;
+fun sidelight_N : N;
+fun sideline_N : N;
+fun sidelong_A : A;
+fun sidelong_Adv : Adv;
+fun sidereal_A : A;
+fun sideshow_N : N;
+fun sidesman_N : N;
+fun sidestep_N : N;
+fun sidestep_V : V;
+fun sidestep_V2 : V2;
+fun sidetrack_N : N;
+fun sidetrack_V2 : V2;
+fun sidewalk_N : N;
+fun sidewards_Adv : Adv;
+fun sideways_Adv : Adv;
+fun siding_N : N;
+fun sidle_V : V;
+fun sidmouth_PN : PN;
+fun sidney_PN : PN;
+fun siege_N : N;
+fun sienna_N : N;
+fun sierra_N : N;
+fun sierra_leone_PN : PN;
+fun sierra_leonian_A : A;
+fun sierra_leonian_N : N;
+fun siesta_N : N;
+fun sieve_N : N;
+fun sieve_V2 : V2;
+fun sift_V : V;
+fun sift_V2 : V2;
+fun sifter_N : N;
+fun sigh_N : N;
+fun sigh_V : V;
+fun sigh_V2 : V2;
+fun sight_N : N;
+fun sight_V2 : V2;
+fun sighted_A : A;
+fun sighting_N : N;
+fun sightless_A : A;
+fun sightseeing_N : N;
+fun sightseer_N : N;
+fun sign_N : N;
+fun sign_V : V;
+fun sign_V2 : V2;
+fun sign_painter_N : N;
+fun signal_A : A;
+fun signal_N : N;
+fun signal_V : V;
+fun signal_V2 : V2;
+fun signal_box_N : N;
+fun signalize_V2 : V2;
+fun signaller_N : N;
+fun signalman_N : N;
+fun signatory_N : N;
+fun signature_N : N;
+fun signet_N : N;
+fun signet_ring_N : N;
+fun significance_N : N;
+fun significant_A : A;
+fun signification_N : N;
+fun significative_A : A;
+fun signify_V : V;
+fun signify_V2 : V2;
+fun signor_N : N;
+fun signora_N : N;
+fun signorina_N : N;
+fun signpost_N : N;
+fun signpost_V2 : V2;
+fun sikh_N : N;
+fun silage_N : N;
+fun sileby_PN : PN;
+fun silence_N : N;
+fun silence_V2 : V2;
+fun silencer_N : N;
+fun silent_A : A;
+fun silhouette_N : N;
+fun silhouette_V2 : V2;
+fun silica_N : N;
+fun silicate_N : N;
+fun silicon_N : N;
+fun silicone_N : N;
+fun silicosis_N : N;
+fun silk_N : N;
+fun silken_A : A;
+fun silkily_Adv : Adv;
+fun silkiness_N : N;
+fun silkworm_N : N;
+fun silky_A : A;
+fun sill_N : N;
+fun sillabub_N : N;
+fun silliness_N : N;
+fun silly_A : A;
+fun silly_N : N;
+fun silo_N : N;
+fun silsden_PN : PN;
+fun silt_N : N;
+fun silt_V : V;
+fun silt_V2 : V2;
+fun silvan_A : A;
+fun silver_N : N;
+fun silver_V : V;
+fun silver_V2 : V2;
+fun silver_fish_N : N;
+fun silvern_A : A;
+fun silverside_N : N;
+fun silversmith_N : N;
+fun silvery_A : A;
+fun silvia_PN : PN;
+fun simian_A : A;
+fun simian_N : N;
+fun similar_A : A;
+fun similarity_N : N;
+fun simile_N : N;
+fun similitude_N : N;
+fun simmer_N : N;
+fun simmer_V : V;
+fun simmer_V2 : V2;
+fun simon_PN : PN;
+fun simony_N : N;
+fun simoom_N : N;
+fun simoon_N : N;
+fun simper_V : V;
+fun simperingly_Adv : Adv;
+fun simple_A : A;
+fun simple_N : N;
+fun simple_hearted_A : A;
+fun simple_minded_A : A;
+fun simpleton_N : N;
+fun simplicity_N : N;
+fun simplification_N : N;
+fun simplify_V2 : V2;
+fun simply_Adv : Adv;
+fun simulacrum_N : N;
+fun simulate_V2 : V2;
+fun simulation_N : N;
+fun simulator_N : N;
+fun simultaneity_N : N;
+fun simultaneous_A : A;
+fun simultaneousness_N : N;
+fun sin_N : N;
+fun sin_V : V;
+fun since_Adv : Adv;
+fun sincere_A : A;
+fun sincerity_N : N;
+fun sine_N : N;
+fun sine_die_Adv : Adv;
+fun sine_qua_non_N : N;
+fun sinecure_N : N;
+fun sinew_N : N;
+fun sinewy_A : A;
+fun sinful_A : A;
+fun sinfulness_N : N;
+fun sing_V : V;
+fun sing_V2 : V2;
+fun singable_A : A;
+fun singapore_PN : PN;
+fun singaporean_A : A;
+fun singaporean_N : N;
+fun singe_N : N;
+fun singe_V : V;
+fun singe_V2 : V2;
+fun singer_N : N;
+fun singhalese_A : A;
+fun singing_N : N;
+fun single_A : A;
+fun single_N : N;
+fun single_V2 : V2;
+fun single_breasted_A : A;
+fun single_handed_A : A;
+fun single_handed_Adv : Adv;
+fun single_minded_A : A;
+fun single_spacing_N : N;
+fun singleness_N : N;
+fun singlestick_N : N;
+fun singlet_N : N;
+fun singleton_N : N;
+fun singly_Adv : Adv;
+fun singsong_N : N;
+fun singular_A : A;
+fun singular_N : N;
+fun singularity_N : N;
+fun singularize_V2 : V2;
+fun sinhala_N : N;
+fun sinhalese_A : A;
+fun sinhalese_N : N;
+fun sining_PN : PN;
+fun sinister_A : A;
+fun sink_N : N;
+fun sink_V : V;
+fun sink_V2 : V2;
+fun sinkable_A : A;
+fun sinker_N : N;
+fun sinking_N : N;
+fun sinking_fund_N : N;
+fun sinless_A : A;
+fun sinlessness_N : N;
+fun sinn_fein_PN : PN;
+fun sinner_N : N;
+fun sinologist_N : N;
+fun sinology_N : N;
+fun sinuosity_N : N;
+fun sinuous_A : A;
+fun sinus_N : N;
+fun sinusitis_N : N;
+fun sioux_N : N;
+fun sip_N : N;
+fun sip_V : V;
+fun sip_V2 : V2;
+fun siphon_N : N;
+fun siphon_V : V;
+fun siphon_V2 : V2;
+fun sir_N : N;
+fun sir_roger_de_coverley_N : N;
+fun siracusa_PN : PN;
+fun sirdar_N : N;
+fun sire_N : N;
+fun sire_V2 : V2;
+fun siren_N : N;
+fun sirloin_N : N;
+fun sirocco_N : N;
+fun sirrah_N : N;
+fun sirup_N : N;
+fun sisal_N : N;
+fun sissified_A : A;
+fun sissy_N : N;
+fun sister_N : N;
+fun sister_in_law_N : N;
+fun sisterhood_N : N;
+fun sisterly_A : A;
+fun siswati_N : N;
+fun sit_V : V;
+fun sit_V2 : V2;
+fun sit_in_N : N;
+fun sitar_N : N;
+fun site_N : N;
+fun site_V : V;
+fun sitter_N : N;
+fun sitting_N : N;
+fun sitting_room_N : N;
+fun sittingbourne_PN : PN;
+fun situated_A : A;
+fun situation_N : N;
+fun six_footer_N : N;
+fun six_shooter_N : N;
+fun sixfold_A : A;
+fun sixfold_Adv : Adv;
+fun sixpence_N : N;
+fun sixpenny_A : A;
+fun sixth_former_N : N;
+fun sizable_A : A;
+fun size_N : N;
+fun size_V2 : V2;
+fun sizeable_A : A;
+fun sized_A : A;
+fun sizzle_V : V;
+fun skate_N : N;
+fun skate_V : V;
+fun skateboard_N : N;
+fun skateboarder_N : N;
+fun skateboarding_N : N;
+fun skater_N : N;
+fun skating_N : N;
+fun skating_rink_N : N;
+fun skedaddle_V : V;
+fun skeet_N : N;
+fun skegness_PN : PN;
+fun skein_N : N;
+fun skeleton_N : N;
+fun skelmanthorpe_PN : PN;
+fun skelmersdale_PN : PN;
+fun skep_N : N;
+fun skeptical_A : A;
+fun skepticism_N : N;
+fun sketch_N : N;
+fun sketch_V : V;
+fun sketch_V2 : V2;
+fun sketch_block_N : N;
+fun sketch_book_N : N;
+fun sketch_map_N : N;
+fun sketcher_N : N;
+fun sketchily_Adv : Adv;
+fun sketchiness_N : N;
+fun sketchy_A : A;
+fun skew_A : A;
+fun skew_eyed_A : A;
+fun skewen_PN : PN;
+fun skewer_N : N;
+fun skewer_V2 : V2;
+fun ski_N : N;
+fun ski_V : V;
+fun ski_bob_N : N;
+fun ski_jump_N : N;
+fun ski_lift_N : N;
+fun ski_plane_N : N;
+fun skid_N : N;
+fun skid_V : V;
+fun skidpan_N : N;
+fun skier_N : N;
+fun skiff_N : N;
+fun skiffle_N : N;
+fun skiffle_group_N : N;
+fun skilful_A : A;
+fun skill_N : N;
+fun skilled_A : A;
+fun skillet_N : N;
+fun skilly_N : N;
+fun skim_V : V;
+fun skim_V2 : V2;
+fun skimmed_milk_N : N;
+fun skimmer_N : N;
+fun skimp_V : V;
+fun skimp_V2 : V2;
+fun skimpily_Adv : Adv;
+fun skimpy_A : A;
+fun skin_N : N;
+fun skin_V : V;
+fun skin_V2 : V2;
+fun skin_deep_A : A;
+fun skin_diving_N : N;
+fun skin_graft_N : N;
+fun skin_tight_A : A;
+fun skinflint_N : N;
+fun skinhead_N : N;
+fun skinny_A : A;
+fun skint_A : A;
+fun skip_N : N;
+fun skip_V : V;
+fun skip_V2 : V2;
+fun skipper_N : N;
+fun skipper_V2 : V2;
+fun skipping_rope_N : N;
+fun skipton_PN : PN;
+fun skirl_N : N;
+fun skirmish_N : N;
+fun skirmish_V : V;
+fun skirmisher_N : N;
+fun skirt_N : N;
+fun skirt_V : V;
+fun skirt_V2 : V2;
+fun skirting_board_N : N;
+fun skit_N : N;
+fun skitter_V : V;
+fun skittish_A : A;
+fun skittishness_N : N;
+fun skittle_N : N;
+fun skittle_V2 : V2;
+fun skittle_pin_N : N;
+fun skittles_N : N;
+fun skivvy_N : N;
+fun skopje_PN : PN;
+fun skua_N : N;
+fun skulk_V : V;
+fun skulker_N : N;
+fun skull_N : N;
+fun skullcap_N : N;
+fun skullduggery_N : N;
+fun skulled_A : A;
+fun skunk_N : N;
+fun sky_N : N;
+fun sky_V2 : V2;
+fun sky_blue_A : A;
+fun sky_blue_N : N;
+fun sky_high_Adv : Adv;
+fun skylark_N : N;
+fun skylark_V : V;
+fun skylight_N : N;
+fun skyline_N : N;
+fun skyrocket_V : V;
+fun skyscraper_N : N;
+fun skyward_A : A;
+fun skyward_Adv : Adv;
+fun skywards_A : A;
+fun skywards_Adv : Adv;
+fun skywriting_N : N;
+fun slab_N : N;
+fun slack_A : A;
+fun slack_N : N;
+fun slack_V : V;
+fun slacken_V : V;
+fun slacken_V2 : V2;
+fun slacker_N : N;
+fun slackness_N : N;
+fun slag_N : N;
+fun slag_heap_N : N;
+fun slake_V2 : V2;
+fun slalom_N : N;
+fun slam_N : N;
+fun slam_V : V;
+fun slam_V2 : V2;
+fun slander_N : N;
+fun slander_V2 : V2;
+fun slanderer_N : N;
+fun slanderous_A : A;
+fun slang_N : N;
+fun slang_V2 : V2;
+fun slangily_Adv : Adv;
+fun slanginess_N : N;
+fun slangy_A : A;
+fun slant_N : N;
+fun slant_V : V;
+fun slant_V2 : V2;
+fun slantingly_Adv : Adv;
+fun slantwise_Adv : Adv;
+fun slap_Adv : Adv;
+fun slap_N : N;
+fun slap_V2 : V2;
+fun slap_bang_Adv : Adv;
+fun slap_happy_A : A;
+fun slap_up_A : A;
+fun slapdash_A : A;
+fun slapdash_Adv : Adv;
+fun slapstick_N : N;
+fun slash_N : N;
+fun slash_V : V;
+fun slash_V2 : V2;
+fun slat_N : N;
+fun slate_N : N;
+fun slate_V2 : V2;
+fun slate_club_N : N;
+fun slate_pencil_N : N;
+fun slating_N : N;
+fun slatted_A : A;
+fun slattern_N : N;
+fun slatternliness_N : N;
+fun slatternly_A : A;
+fun slaty_A : A;
+fun slaughter_N : N;
+fun slaughter_V2 : V2;
+fun slaughterer_N : N;
+fun slaughterhouse_N : N;
+fun slav_A : A;
+fun slav_N : N;
+fun slave_N : N;
+fun slave_V : V;
+fun slave_driver_N : N;
+fun slave_trade_N : N;
+fun slave_traffic_N : N;
+fun slaver_N : N;
+fun slaver_V : V;
+fun slavery_N : N;
+fun slavey_N : N;
+fun slavish_A : A;
+fun slavonic_A : A;
+fun slaw_N : N;
+fun slay_V2 : V2;
+fun slayer_N : N;
+fun sleaford_PN : PN;
+fun sleazy_A : A;
+fun sled_N : N;
+fun sledge_N : N;
+fun sledge_V : V;
+fun sledge_V2 : V2;
+fun sledgehammer_N : N;
+fun sleek_A : A;
+fun sleek_V2 : V2;
+fun sleekness_N : N;
+fun sleep_N : N;
+fun sleep_V : V;
+fun sleep_V2 : V2;
+fun sleeper_N : N;
+fun sleepily_Adv : Adv;
+fun sleepiness_N : N;
+fun sleeping_N : N;
+fun sleeping_bag_N : N;
+fun sleeping_car_N : N;
+fun sleeping_draught_N : N;
+fun sleeping_pill_N : N;
+fun sleeping_sickness_N : N;
+fun sleepless_A : A;
+fun sleeplessness_N : N;
+fun sleepwalker_N : N;
+fun sleepy_A : A;
+fun sleepy_head_N : N;
+fun sleet_N : N;
+fun sleet_V : V;
+fun sleety_A : A;
+fun sleeve_N : N;
+fun sleeved_A : A;
+fun sleeveless_A : A;
+fun sleigh_N : N;
+fun sleigh_V : V;
+fun sleigh_V2 : V2;
+fun sleigh_bell_N : N;
+fun sleight_N : N;
+fun slender_A : A;
+fun slenderize_V : V;
+fun slenderize_V2 : V2;
+fun slenderness_N : N;
+fun sleuth_N : N;
+fun sleuth_hound_N : N;
+fun slew_V : V;
+fun slew_V2 : V2;
+fun slice_N : N;
+fun slice_V : V;
+fun slice_V2 : V2;
+fun slick_A : A;
+fun slick_Adv : Adv;
+fun slick_N : N;
+fun slicker_N : N;
+fun slide_N : N;
+fun slide_V : V;
+fun slide_V2 : V2;
+fun slide_rule_N : N;
+fun slight_A : A;
+fun slight_N : N;
+fun slight_V2 : V2;
+fun slightingly_Adv : Adv;
+fun slightness_N : N;
+fun sligo_PN : PN;
+fun slim_A : A;
+fun slim_V : V;
+fun slime_N : N;
+fun sliminess_N : N;
+fun slimness_N : N;
+fun slimy_A : A;
+fun sling_N : N;
+fun sling_V : V;
+fun sling_V2 : V2;
+fun slinger_N : N;
+fun slink_V : V;
+fun slip_N : N;
+fun slip_V : V;
+fun slip_V2 : V2;
+fun slip_carriage_N : N;
+fun slip_coach_N : N;
+fun slip_road_N : N;
+fun slip_up_N : N;
+fun slipcover_N : N;
+fun slipknot_N : N;
+fun slipon_N : N;
+fun slipover_N : N;
+fun slipper_N : N;
+fun slippered_A : A;
+fun slipperiness_N : N;
+fun slippery_A : A;
+fun slippy_A : A;
+fun slipshod_A : A;
+fun slipstream_N : N;
+fun slipway_N : N;
+fun slit_N : N;
+fun slit_V2 : V2;
+fun slither_V : V;
+fun slithery_A : A;
+fun sliver_N : N;
+fun sliver_V : V;
+fun sliver_V2 : V2;
+fun slob_N : N;
+fun slobber_N : N;
+fun slobber_V : V;
+fun slobber_V2 : V2;
+fun sloe_N : N;
+fun sloe_gin_N : N;
+fun slog_V : V;
+fun slog_V2 : V2;
+fun slogan_N : N;
+fun slogger_N : N;
+fun sloop_N : N;
+fun slop_N : N;
+fun slop_V : V;
+fun slop_V2 : V2;
+fun slop_basin_N : N;
+fun slop_pail_N : N;
+fun slop_shop_N : N;
+fun slope_N : N;
+fun slope_V : V;
+fun slope_V2 : V2;
+fun slopingly_Adv : Adv;
+fun sloppily_Adv : Adv;
+fun sloppiness_N : N;
+fun sloppy_A : A;
+fun slosh_V : V;
+fun slosh_V2 : V2;
+fun sloshed_A : A;
+fun slot_N : N;
+fun slot_V2 : V2;
+fun slot_machine_N : N;
+fun sloth_N : N;
+fun slothful_A : A;
+fun slouch_N : N;
+fun slouch_V : V;
+fun slouch_hat_N : N;
+fun slouchingly_Adv : Adv;
+fun slough_N : N;
+fun slough_PN : PN;
+fun slough_V : V;
+fun slough_V2 : V2;
+fun slovak_N : N;
+fun sloven_N : N;
+fun slovenian_A : A;
+fun slovenian_N : N;
+fun slovenliness_N : N;
+fun slovenly_A : A;
+fun slow_A : A;
+fun slow_Adv : Adv;
+fun slow_V : V;
+fun slow_V2 : V2;
+fun slow_worm_N : N;
+fun slowcoach_N : N;
+fun slowdown_N : N;
+fun slower_Adv : Adv;
+fun slowest_Adv : Adv;
+fun slowness_N : N;
+fun sludge_N : N;
+fun slug_N : N;
+fun slug_V : V;
+fun slug_V2 : V2;
+fun sluggard_N : N;
+fun sluggish_A : A;
+fun sluggishness_N : N;
+fun sluice_N : N;
+fun sluice_V : V;
+fun sluice_V2 : V2;
+fun sluice_valve_N : N;
+fun sluicegate_N : N;
+fun slum_N : N;
+fun slum_V : V;
+fun slumber_N : N;
+fun slumber_V : V;
+fun slumber_V2 : V2;
+fun slumberer_N : N;
+fun slumberous_A : A;
+fun slummy_A : A;
+fun slump_N : N;
+fun slump_V : V;
+fun slur_N : N;
+fun slur_V : V;
+fun slur_V2 : V2;
+fun slurry_N : N;
+fun slush_N : N;
+fun slushy_A : A;
+fun slut_N : N;
+fun sluttish_A : A;
+fun sly_A : A;
+fun slyness_N : N;
+fun smack_Adv : Adv;
+fun smack_N : N;
+fun smack_V : V;
+fun smack_V2 : V2;
+fun smacker_N : N;
+fun smacking_N : N;
+fun small_A : A;
+fun small_Adv : Adv;
+fun small_N : N;
+fun small_minded_A : A;
+fun smallholder_N : N;
+fun smallholding_N : N;
+fun smallness_N : N;
+fun smallpox_N : N;
+fun smalltime_A : A;
+fun smarmy_A : A;
+fun smart_A : A;
+fun smart_N : N;
+fun smart_V : V;
+fun smarten_V : V;
+fun smarten_V2 : V2;
+fun smartness_N : N;
+fun smash_Adv : Adv;
+fun smash_N : N;
+fun smash_V : V;
+fun smash_V2 : V2;
+fun smash_up_N : N;
+fun smasher_N : N;
+fun smashing_A : A;
+fun smattering_N : N;
+fun smear_N : N;
+fun smear_V : V;
+fun smear_V2 : V2;
+fun smear_word_N : N;
+fun smell_N : N;
+fun smell_V : V;
+fun smell_V2 : V2;
+fun smelling_bottle_N : N;
+fun smelly_A : A;
+fun smelt_N : N;
+fun smelt_V2 : V2;
+fun smilax_N : N;
+fun smile_N : N;
+fun smile_V : V;
+fun smile_V2 : V2;
+fun smilingly_Adv : Adv;
+fun smirch_N : N;
+fun smirch_V2 : V2;
+fun smirk_N : N;
+fun smirk_V : V;
+fun smite_V : V;
+fun smite_V2 : V2;
+fun smith_N : N;
+fun smithy_N : N;
+fun smock_N : N;
+fun smocking_N : N;
+fun smog_N : N;
+fun smoke_N : N;
+fun smoke_V : V;
+fun smoke_V2 : V2;
+fun smoke_bomb_N : N;
+fun smoke_cured_A : A;
+fun smoke_dried_A : A;
+fun smoke_screen_N : N;
+fun smokeless_A : A;
+fun smoker_N : N;
+fun smokestack_N : N;
+fun smoking_N : N;
+fun smoking_car_N : N;
+fun smoking_carriage_N : N;
+fun smoking_compartment_N : N;
+fun smoking_mixture_N : N;
+fun smoking_room_N : N;
+fun smoky_A : A;
+fun smooth_A : A;
+fun smooth_N : N;
+fun smooth_V : V;
+fun smooth_V2 : V2;
+fun smooth_bore_A : A;
+fun smooth_faced_A : A;
+fun smooth_spoken_A : A;
+fun smooth_tongued_A : A;
+fun smoothing_iron_N : N;
+fun smoothing_plane_N : N;
+fun smoothness_N : N;
+fun smorgasbord_N : N;
+fun smother_N : N;
+fun smother_V2 : V2;
+fun smoulder_N : N;
+fun smoulder_V : V;
+fun smudge_N : N;
+fun smudge_V : V;
+fun smudge_V2 : V2;
+fun smudgy_A : A;
+fun smug_A : A;
+fun smuggle_V2 : V2;
+fun smuggler_N : N;
+fun smugness_N : N;
+fun smut_N : N;
+fun smut_V2 : V2;
+fun smuttily_Adv : Adv;
+fun smuttiness_N : N;
+fun smutty_A : A;
+fun snack_N : N;
+fun snack_bar_N : N;
+fun snack_counter_N : N;
+fun snaffle_N : N;
+fun snaffle_V2 : V2;
+fun snaffle_bit_N : N;
+fun snag_N : N;
+fun snag_V2 : V2;
+fun snail_N : N;
+fun snake_N : N;
+fun snake_V : V;
+fun snake_charmer_N : N;
+fun snaky_A : A;
+fun snap_N : N;
+fun snap_V : V;
+fun snap_V2 : V2;
+fun snap_fastener_N : N;
+fun snapdragon_N : N;
+fun snappish_A : A;
+fun snappishness_N : N;
+fun snappy_A : A;
+fun snapshot_N : N;
+fun snare_N : N;
+fun snare_V2 : V2;
+fun snare_drum_N : N;
+fun snarl_N : N;
+fun snarl_V : V;
+fun snarl_V2 : V2;
+fun snarl_up_N : N;
+fun snatch_N : N;
+fun snatch_V : V;
+fun snatch_V2 : V2;
+fun snatcher_N : N;
+fun snazzy_A : A;
+fun sneak_N : N;
+fun sneak_V : V;
+fun sneak_V2 : V2;
+fun sneak_thief_N : N;
+fun sneaking_A : A;
+fun sneaky_A : A;
+fun sneer_N : N;
+fun sneer_V : V;
+fun sneeringly_Adv : Adv;
+fun sneeze_N : N;
+fun sneeze_V : V;
+fun snick_N : N;
+fun snick_V : V;
+fun snick_V2 : V2;
+fun snicker_N : N;
+fun snicker_V : V;
+fun snide_A : A;
+fun sniff_N : N;
+fun sniff_V : V;
+fun sniff_V2 : V2;
+fun sniffle_V : V;
+fun sniffy_A : A;
+fun snifter_N : N;
+fun snigger_N : N;
+fun snigger_V : V;
+fun snip_N : N;
+fun snip_V : V;
+fun snip_V2 : V2;
+fun snipe_N : N;
+fun snipe_V : V;
+fun snipe_V2 : V2;
+fun sniper_N : N;
+fun snippet_N : N;
+fun snipping_N : N;
+fun snitch_V : V;
+fun snitch_V2 : V2;
+fun snivel_V : V;
+fun sniveller_N : N;
+fun snob_N : N;
+fun snobbery_N : N;
+fun snobbish_A : A;
+fun snobbishness_N : N;
+fun snog_V : V;
+fun snogging_N : N;
+fun snood_N : N;
+fun snook_N : N;
+fun snooker_N : N;
+fun snoop_V : V;
+fun snooper_N : N;
+fun snootily_Adv : Adv;
+fun snooty_A : A;
+fun snooze_N : N;
+fun snooze_V : V;
+fun snore_N : N;
+fun snore_V : V;
+fun snorer_N : N;
+fun snorkel_N : N;
+fun snort_N : N;
+fun snort_V : V;
+fun snort_V2 : V2;
+fun snorter_N : N;
+fun snorty_A : A;
+fun snot_N : N;
+fun snot_nosed_A : A;
+fun snotty_A : A;
+fun snout_N : N;
+fun snow_N : N;
+fun snow_V : V;
+fun snow_V2 : V2;
+fun snow_clad_A : A;
+fun snow_covered_A : A;
+fun snow_line_N : N;
+fun snow_white_A : A;
+fun snowball_N : N;
+fun snowball_V : V;
+fun snowball_V2 : V2;
+fun snowberry_N : N;
+fun snowblind_A : A;
+fun snowblindness_N : N;
+fun snowbound_A : A;
+fun snowcapped_A : A;
+fun snowdrift_N : N;
+fun snowdrop_N : N;
+fun snowfall_N : N;
+fun snowfield_N : N;
+fun snowflake_N : N;
+fun snowman_N : N;
+fun snowplough_N : N;
+fun snowstorm_N : N;
+fun snowy_A : A;
+fun snr_PN : PN;
+fun snub_A : A;
+fun snub_N : N;
+fun snub_V2 : V2;
+fun snub_nosed_A : A;
+fun snuff_N : N;
+fun snuff_V : V;
+fun snuff_V2 : V2;
+fun snuff_colour_A : A;
+fun snuff_colour_N : N;
+fun snuff_coloured_A : A;
+fun snuffbox_N : N;
+fun snuffle_N : N;
+fun snuffle_V : V;
+fun snug_A : A;
+fun snug_N : N;
+fun snuggery_N : N;
+fun snuggle_V : V;
+fun snuggle_V2 : V2;
+fun snugness_N : N;
+fun so_Adv : Adv;
+fun so_N : N;
+fun so_and_so_N : N;
+fun so_called_A : A;
+fun so_so_A : A;
+fun so_so_Adv : Adv;
+fun soak_N : N;
+fun soak_V : V;
+fun soak_V2 : V2;
+fun soaker_N : N;
+fun soap_N : N;
+fun soap_V2 : V2;
+fun soap_bubble_N : N;
+fun soap_opera_N : N;
+fun soapbox_N : N;
+fun soapy_A : A;
+fun soar_V : V;
+fun sob_N : N;
+fun sob_V : V;
+fun sob_V2 : V2;
+fun sob_stuff_N : N;
+fun sobbingly_Adv : Adv;
+fun sober_A : A;
+fun sober_V : V;
+fun sober_V2 : V2;
+fun sober_sides_N : N;
+fun sobriety_N : N;
+fun sobriquet_N : N;
+fun soc_N : N;
+fun soccer_N : N;
+fun sociability_N : N;
+fun sociable_A : A;
+fun social_A : A;
+fun social_N : N;
+fun social_work_N : N;
+fun socialism_N : N;
+fun socialist_A : A;
+fun socialist_N : N;
+fun socialite_N : N;
+fun socialization_N : N;
+fun socialize_V2 : V2;
+fun society_N : N;
+fun sociological_A : A;
+fun sociologist_N : N;
+fun sociology_N : N;
+fun sock_Adv : Adv;
+fun sock_N : N;
+fun sock_V2 : V2;
+fun socket_N : N;
+fun socratic_A : A;
+fun sod_N : N;
+fun sod_V : V;
+fun soda_N : N;
+fun soda_biscuit_N : N;
+fun soda_cracker_N : N;
+fun soda_fountain_N : N;
+fun soda_water_N : N;
+fun sodden_A : A;
+fun sodding_A : A;
+fun sodium_N : N;
+fun sodomite_N : N;
+fun sodomy_N : N;
+fun sofa_N : N;
+fun sofia_PN : PN;
+fun soft_A : A;
+fun soft_boiled_A : A;
+fun soft_footed_A : A;
+fun soft_headed_A : A;
+fun soft_hearted_A : A;
+fun soft_pedal_V : V;
+fun soft_pedal_V2 : V2;
+fun soft_soap_V2 : V2;
+fun soft_solder_N : N;
+fun soft_solder_V2 : V2;
+fun soft_spoken_A : A;
+fun soft_witted_A : A;
+fun soften_V : V;
+fun soften_V2 : V2;
+fun softener_N : N;
+fun softie_N : N;
+fun softish_A : A;
+fun softland_V : V;
+fun softness_N : N;
+fun software_N : N;
+fun softwood_N : N;
+fun softy_N : N;
+fun sogginess_N : N;
+fun soggy_A : A;
+fun soh_N : N;
+fun soho_PN : PN;
+fun soignee_A : A;
+fun soigne_A : A;
+fun soil_N : N;
+fun soil_V : V;
+fun soil_V2 : V2;
+fun soil_pipe_N : N;
+fun soiree_N : N;
+fun sojourn_N : N;
+fun sojourn_V : V;
+fun sojourner_N : N;
+fun sol_PN : PN;
+fun sol_fa_N : N;
+fun solace_N : N;
+fun solace_V2 : V2;
+fun solar_A : A;
+fun solar_plexus_N : N;
+fun solarium_N : N;
+fun solder_N : N;
+fun solder_V2 : V2;
+fun soldering_iron_N : N;
+fun soldier_N : N;
+fun soldier_V : V;
+fun soldiery_N : N;
+fun sole_A : A;
+fun sole_N : N;
+fun sole_V2 : V2;
+fun solecism_N : N;
+fun soled_A : A;
+fun solemn_A : A;
+fun solemnity_N : N;
+fun solemnization_N : N;
+fun solemnize_V2 : V2;
+fun solemnness_N : N;
+fun solicit_V : V;
+fun solicit_V2 : V2;
+fun solicitation_N : N;
+fun solicitor_N : N;
+fun solicitor_general_N : N;
+fun solicitous_A : A;
+fun solicitude_N : N;
+fun solid_A : A;
+fun solid_N : N;
+fun solid_state_A : A;
+fun solidarity_N : N;
+fun solidification_N : N;
+fun solidify_V : V;
+fun solidify_V2 : V2;
+fun solidity_N : N;
+fun solidness_N : N;
+fun solihull_PN : PN;
+fun soliloquize_V : V;
+fun soliloquy_N : N;
+fun solingen_PN : PN;
+fun solipsism_N : N;
+fun solitaire_N : N;
+fun solitary_A : A;
+fun solitude_N : N;
+fun solo_N : N;
+fun soloist_N : N;
+fun solon_PN : PN;
+fun solstice_N : N;
+fun solubility_N : N;
+fun soluble_A : A;
+fun solution_N : N;
+fun solvable_A : A;
+fun solve_V2 : V2;
+fun solvency_N : N;
+fun solvent_A : A;
+fun solvent_N : N;
+fun somali_A : A;
+fun somali_N : N;
+fun somalia_PN : PN;
+fun somalian_A : A;
+fun somalian_N : N;
+fun somatic_A : A;
+fun sombre_A : A;
+fun sombreness_N : N;
+fun sombrero_N : N;
+fun someday_Adv : Adv;
+fun somehow_Adv : Adv;
+fun someone_N : N;
+fun someplace_Adv : Adv;
+fun somercotes_PN : PN;
+fun somersault_N : N;
+fun somersault_V : V;
+fun somerset_PN : PN;
+fun something_Adv : Adv;
+fun sometime_Adv : Adv;
+fun sometimes_Adv : Adv;
+fun someway_Adv : Adv;
+fun somewhat_Adv : Adv;
+fun somnambulism_N : N;
+fun somnambulist_N : N;
+fun somnolence_N : N;
+fun somnolent_A : A;
+fun son_N : N;
+fun son_in_law_N : N;
+fun sonar_N : N;
+fun sonata_N : N;
+fun song_N : N;
+fun songbird_N : N;
+fun songbook_N : N;
+fun songster_N : N;
+fun songstress_N : N;
+fun sonia_PN : PN;
+fun sonic_A : A;
+fun sonnet_N : N;
+fun sonneteer_N : N;
+fun sonny_N : N;
+fun sonority_N : N;
+fun sonorous_A : A;
+fun sonsy_A : A;
+fun soochow_PN : PN;
+fun soon_Adv : Adv;
+fun sooner_Adv : Adv;
+fun soonest_Adv : Adv;
+fun soot_N : N;
+fun soot_V2 : V2;
+fun sooth_N : N;
+fun soothe_V2 : V2;
+fun soothingly_Adv : Adv;
+fun soothsayer_N : N;
+fun sooty_A : A;
+fun sop_N : N;
+fun sop_V2 : V2;
+fun sophia_PN : PN;
+fun sophie_PN : PN;
+fun sophism_N : N;
+fun sophist_N : N;
+fun sophisticated_A : A;
+fun sophistication_N : N;
+fun sophistry_N : N;
+fun sophomore_N : N;
+fun soporific_A : A;
+fun soporific_N : N;
+fun sopping_A : A;
+fun sopping_Adv : Adv;
+fun soppy_A : A;
+fun soprano_N : N;
+fun sorbet_N : N;
+fun sorcerer_N : N;
+fun sorceress_N : N;
+fun sorcery_N : N;
+fun sordid_A : A;
+fun sordidness_N : N;
+fun sore_A : A;
+fun sore_N : N;
+fun soreness_N : N;
+fun sorghum_N : N;
+fun sorority_N : N;
+fun sorrel_A : A;
+fun sorrel_N : N;
+fun sorrow_N : N;
+fun sorrow_V : V;
+fun sorrowful_A : A;
+fun sorry_A : A;
+fun sort_N : N;
+fun sort_V : V;
+fun sort_V2 : V2;
+fun sorter_N : N;
+fun sortie_N : N;
+fun sos_N : N;
+fun soss_N : N;
+fun sot_N : N;
+fun sotho_A : A;
+fun sotho_N : N;
+fun sottish_A : A;
+fun sottishness_N : N;
+fun sotto_voce_Adv : Adv;
+fun sou'_east_Adv : Adv;
+fun sou'_east_N : N;
+fun sou'_sou'_east_Adv : Adv;
+fun sou'_sou'_east_N : N;
+fun sou'_sou'_west_Adv : Adv;
+fun sou'_sou'_west_N : N;
+fun sou'_west_Adv : Adv;
+fun sou'_west_N : N;
+fun sou'_wester_N : N;
+fun sou_N : N;
+fun soubrette_N : N;
+fun soubriquet_N : N;
+fun souffle_N : N;
+fun sough_V : V;
+fun soul_N : N;
+fun soul_destroying_A : A;
+fun soul_stirring_A : A;
+fun soulful_A : A;
+fun soulless_A : A;
+fun sound_A : A;
+fun sound_Adv : Adv;
+fun sound_N : N;
+fun sound_V : V;
+fun sound_V2 : V2;
+fun sound_film_N : N;
+fun sound_recording_N : N;
+fun sound_wave_N : N;
+fun soundbox_N : N;
+fun sounding_board_N : N;
+fun soundless_A : A;
+fun soundness_N : N;
+fun soundproof_A : A;
+fun soundproof_V2 : V2;
+fun soundtrack_N : N;
+fun soup_N : N;
+fun soup_V2 : V2;
+fun soup_kitchen_N : N;
+fun soupcon_N : N;
+fun sour_A : A;
+fun sour_V : V;
+fun sour_V2 : V2;
+fun source_N : N;
+fun sourness_N : N;
+fun souse_V2 : V2;
+fun soused_A : A;
+fun soutane_N : N;
+fun south_A : A;
+fun south_Adv : Adv;
+fun south_N : N;
+fun south_kirkby_PN : PN;
+fun south_normantown_PN : PN;
+fun south_ockendon_PN : PN;
+fun south_shields_PN : PN;
+fun south_southeast_Adv : Adv;
+fun south_southeast_N : N;
+fun south_southwest_Adv : Adv;
+fun south_southwest_N : N;
+fun southampton_PN : PN;
+fun southeast_Adv : Adv;
+fun southeast_N : N;
+fun southeaster_N : N;
+fun southeasterly_A : A;
+fun southeastern_A : A;
+fun southend_on_sea_PN : PN;
+fun southerly_A : A;
+fun southerly_Adv : Adv;
+fun southern_A : A;
+fun southerner_N : N;
+fun southernmost_A : A;
+fun southpaw_N : N;
+fun southport_PN : PN;
+fun southward_Adv : Adv;
+fun southwards_Adv : Adv;
+fun southwark_PN : PN;
+fun southwest_Adv : Adv;
+fun southwest_N : N;
+fun southwester_N : N;
+fun southwesterly_A : A;
+fun southwestern_A : A;
+fun souvenir_N : N;
+fun sovereign_A : A;
+fun sovereign_N : N;
+fun sovereignty_N : N;
+fun soviet_A : A;
+fun soviet_N : N;
+fun sovietize_V2 : V2;
+fun sow_N : N;
+fun sow_V : V;
+fun sow_V2 : V2;
+fun sower_N : N;
+fun soy_N : N;
+fun soya_N : N;
+fun sozzled_A : A;
+fun spa_N : N;
+fun space_N : N;
+fun space_V2 : V2;
+fun space_bar_N : N;
+fun space_capsule_N : N;
+fun space_heater_N : N;
+fun space_helmet_N : N;
+fun space_rocket_N : N;
+fun space_time_N : N;
+fun space_vehicle_N : N;
+fun spacecraft_N : N;
+fun spaceship_N : N;
+fun spacesuit_N : N;
+fun spacing_N : N;
+fun spacious_A : A;
+fun spaciousness_N : N;
+fun spade_N : N;
+fun spade_V2 : V2;
+fun spadeful_N : N;
+fun spadework_N : N;
+fun spaghetti_N : N;
+fun spain_PN : PN;
+fun spalding_PN : PN;
+fun spam_N : N;
+fun span_N : N;
+fun span_V2 : V2;
+fun spangle_N : N;
+fun spangle_V2 : V2;
+fun spaniard_N : N;
+fun spaniel_N : N;
+fun spanish_A : A;
+fun spanish_N : N;
+fun spank_V : V;
+fun spank_V2 : V2;
+fun spanking_A : A;
+fun spanking_N : N;
+fun spanner_N : N;
+fun spar_N : N;
+fun spar_V : V;
+fun spare_A : A;
+fun spare_N : N;
+fun spare_V : V;
+fun spare_V2 : V2;
+fun spare_rib_N : N;
+fun spareness_N : N;
+fun sparing_A : A;
+fun spark_N : N;
+fun spark_V : V;
+fun spark_V2 : V2;
+fun spark_plug_N : N;
+fun sparking_plug_N : N;
+fun sparkle_N : N;
+fun sparkle_V : V;
+fun sparkler_N : N;
+fun sparkling_A : A;
+fun sparring_match_N : N;
+fun sparring_partner_N : N;
+fun sparrow_N : N;
+fun sparse_A : A;
+fun sparseness_N : N;
+fun sparsity_N : N;
+fun spartan_A : A;
+fun spartan_N : N;
+fun spasm_N : N;
+fun spasmodic_A : A;
+fun spasmodically_Adv : Adv;
+fun spastic_A : A;
+fun spastic_N : N;
+fun spat_N : N;
+fun spat_V : V;
+fun spat_V2 : V2;
+fun spatchcock_N : N;
+fun spatchcock_V2 : V2;
+fun spate_N : N;
+fun spatial_A : A;
+fun spatter_N : N;
+fun spatter_V : V;
+fun spatter_V2 : V2;
+fun spatula_N : N;
+fun spavin_N : N;
+fun spavined_A : A;
+fun spawn_N : N;
+fun spawn_V : V;
+fun spawn_V2 : V2;
+fun spay_V2 : V2;
+fun speak_V : V;
+fun speak_V2 : V2;
+fun speaker_N : N;
+fun speakership_N : N;
+fun speaking_trumpet_N : N;
+fun speaking_tube_N : N;
+fun spear_N : N;
+fun spear_V2 : V2;
+fun spearhead_N : N;
+fun spearmint_N : N;
+fun spec_N : N;
+fun special_A : A;
+fun special_N : N;
+fun specialism_N : N;
+fun specialist_N : N;
+fun speciality_N : N;
+fun specialization_N : N;
+fun specialize_V : V;
+fun specialize_V2 : V2;
+fun specialty_N : N;
+fun specie_N : N;
+fun species_N : N;
+fun specifiable_A : A;
+fun specific_A : A;
+fun specific_N : N;
+fun specifically_Adv : Adv;
+fun specification_N : N;
+fun specificity_N : N;
+fun specify_V2 : V2;
+fun specimen_N : N;
+fun specious_A : A;
+fun speciousness_N : N;
+fun speck_N : N;
+fun specked_A : A;
+fun speckle_N : N;
+fun speckled_A : A;
+fun speckless_A : A;
+fun spectacle_N : N;
+fun spectacled_A : A;
+fun spectacular_A : A;
+fun spectacular_N : N;
+fun spectator_N : N;
+fun spectral_A : A;
+fun spectre_N : N;
+fun spectroscope_N : N;
+fun spectroscopic_A : A;
+fun spectrum_N : N;
+fun speculate_V : V;
+fun speculation_N : N;
+fun speculative_A : A;
+fun speculator_N : N;
+fun speech_N : N;
+fun speech_day_N : N;
+fun speechify_V : V;
+fun speechless_A : A;
+fun speed_N : N;
+fun speed_V : V;
+fun speed_V2 : V2;
+fun speed_cop_N : N;
+fun speed_indicator_N : N;
+fun speed_limit_N : N;
+fun speed_up_N : N;
+fun speedboat_N : N;
+fun speedily_Adv : Adv;
+fun speeding_N : N;
+fun speedometer_N : N;
+fun speedway_N : N;
+fun speedwell_N : N;
+fun speedy_A : A;
+fun spelaeologist_N : N;
+fun spelaeology_N : N;
+fun speleologist_N : N;
+fun speleology_N : N;
+fun spell_N : N;
+fun spell_V : V;
+fun spell_V2 : V2;
+fun spellbinder_N : N;
+fun spellbound_A : A;
+fun speller_N : N;
+fun spelling_N : N;
+fun spelt_N : N;
+fun spenborough_PN : PN;
+fun spend_V : V;
+fun spend_V2 : V2;
+fun spender_N : N;
+fun spendthrift_N : N;
+fun spennymoor_PN : PN;
+fun spent_A : A;
+fun sperm_N : N;
+fun sperm_whale_N : N;
+fun spermaceti_N : N;
+fun spermatozoon_N : N;
+fun spermicide_N : N;
+fun spew_V : V;
+fun spew_V2 : V2;
+fun sphagnum_N : N;
+fun sphere_N : N;
+fun spherical_A : A;
+fun spheroid_N : N;
+fun sphinx_N : N;
+fun spice_N : N;
+fun spice_V2 : V2;
+fun spicily_Adv : Adv;
+fun spiciness_N : N;
+fun spick_A : A;
+fun spicy_A : A;
+fun spider_N : N;
+fun spidery_A : A;
+fun spiel_N : N;
+fun spiel_V : V;
+fun spiel_V2 : V2;
+fun spigot_N : N;
+fun spike_N : N;
+fun spike_V2 : V2;
+fun spikenard_N : N;
+fun spiky_A : A;
+fun spill_N : N;
+fun spill_V : V;
+fun spill_V2 : V2;
+fun spillage_N : N;
+fun spillover_N : N;
+fun spillway_N : N;
+fun spin_N : N;
+fun spin_V : V;
+fun spin_V2 : V2;
+fun spin_drier_N : N;
+fun spin_dry_V2 : V2;
+fun spin_off_N : N;
+fun spinach_N : N;
+fun spinal_A : A;
+fun spindle_N : N;
+fun spindle_berry_N : N;
+fun spindle_legged_A : A;
+fun spindle_shanked_A : A;
+fun spindle_shanks_N : N;
+fun spindle_tree_N : N;
+fun spindly_A : A;
+fun spindrift_N : N;
+fun spine_N : N;
+fun spineless_A : A;
+fun spinet_N : N;
+fun spinnaker_N : N;
+fun spinney_N : N;
+fun spinning_wheel_N : N;
+fun spinster_N : N;
+fun spinsterhood_N : N;
+fun spiny_A : A;
+fun spiral_A : A;
+fun spiral_N : N;
+fun spiral_V : V;
+fun spire_N : N;
+fun spirit_N : N;
+fun spirit_V2 : V2;
+fun spirit_lamp_N : N;
+fun spirit_level_N : N;
+fun spirit_rapper_N : N;
+fun spirit_stove_N : N;
+fun spirited_A : A;
+fun spiritless_A : A;
+fun spiritual_A : A;
+fun spiritual_N : N;
+fun spiritualism_N : N;
+fun spiritualist_N : N;
+fun spiritualistic_A : A;
+fun spirituality_N : N;
+fun spiritualization_N : N;
+fun spiritualize_V2 : V2;
+fun spirituous_A : A;
+fun spirt_N : N;
+fun spirt_V : V;
+fun spit_N : N;
+fun spit_V : V;
+fun spit_V2 : V2;
+fun spite_N : N;
+fun spite_V2 : V2;
+fun spiteful_A : A;
+fun spitefulness_N : N;
+fun spitfire_N : N;
+fun spitting_N : N;
+fun spittle_N : N;
+fun spittoon_N : N;
+fun spiv_N : N;
+fun splash_N : N;
+fun splash_V : V;
+fun splash_V2 : V2;
+fun splashdown_N : N;
+fun splay_A : A;
+fun splay_N : N;
+fun splay_V : V;
+fun splay_V2 : V2;
+fun splayfoot_N : N;
+fun splayfooted_A : A;
+fun spleen_N : N;
+fun splendid_A : A;
+fun splendiferous_A : A;
+fun splendour_N : N;
+fun splenetic_A : A;
+fun splice_N : N;
+fun splice_V2 : V2;
+fun splicer_N : N;
+fun splint_N : N;
+fun splinter_N : N;
+fun splinter_V : V;
+fun splinter_V2 : V2;
+fun splinter_proof_A : A;
+fun splintery_A : A;
+fun split_N : N;
+fun split_PN : PN;
+fun split_V : V;
+fun split_V2 : V2;
+fun splodge_N : N;
+fun splosh_V2 : V2;
+fun splotch_N : N;
+fun splurge_N : N;
+fun splurge_V : V;
+fun splutter_N : N;
+fun splutter_V : V;
+fun splutter_V2 : V2;
+fun spode_N : N;
+fun spoil_N : N;
+fun spoil_V : V;
+fun spoil_V2 : V2;
+fun spoilsport_N : N;
+fun spoke_N : N;
+fun spokesman_N : N;
+fun spoliation_N : N;
+fun spondaic_A : A;
+fun spondee_N : N;
+fun sponge_N : N;
+fun sponge_V : V;
+fun sponge_V2 : V2;
+fun sponge_cake_N : N;
+fun sponger_N : N;
+fun sponginess_N : N;
+fun spongy_A : A;
+fun sponsor_N : N;
+fun sponsor_V2 : V2;
+fun sponsorship_N : N;
+fun spontaneity_N : N;
+fun spontaneous_A : A;
+fun spontaneousness_N : N;
+fun spoof_N : N;
+fun spoof_V2 : V2;
+fun spook_N : N;
+fun spooky_A : A;
+fun spool_N : N;
+fun spoon_N : N;
+fun spoon_V : V;
+fun spoon_V2 : V2;
+fun spoonerism_N : N;
+fun spoonfeed_V2 : V2;
+fun spoonfeeding_N : N;
+fun spoonful_N : N;
+fun spoor_N : N;
+fun sporadic_A : A;
+fun sporadically_Adv : Adv;
+fun spore_N : N;
+fun sporran_N : N;
+fun sport_N : N;
+fun sport_V : V;
+fun sport_V2 : V2;
+fun sporting_A : A;
+fun sportive_A : A;
+fun sportiveness_N : N;
+fun sports_car_N : N;
+fun sports_coat_N : N;
+fun sports_editor_N : N;
+fun sports_jacket_N : N;
+fun sportsman_N : N;
+fun sportsmanlike_A : A;
+fun sportsmanship_N : N;
+fun spot_N : N;
+fun spot_V : V;
+fun spot_V2 : V2;
+fun spotless_A : A;
+fun spotlight_N : N;
+fun spotlight_V2 : V2;
+fun spotted_A : A;
+fun spotter_N : N;
+fun spotty_A : A;
+fun spouse_N : N;
+fun spout_N : N;
+fun spout_V : V;
+fun spout_V2 : V2;
+fun sprain_N : N;
+fun sprain_V2 : V2;
+fun sprat_N : N;
+fun sprawl_N : N;
+fun sprawl_V : V;
+fun spray_N : N;
+fun spray_V2 : V2;
+fun spray_gun_N : N;
+fun sprayer_N : N;
+fun spread_N : N;
+fun spread_V : V;
+fun spread_V2 : V2;
+fun spread_over_N : N;
+fun spreadeagle_N : N;
+fun spreadeagle_V2 : V2;
+fun spreader_N : N;
+fun spree_N : N;
+fun sprig_N : N;
+fun sprigged_A : A;
+fun sprightliness_N : N;
+fun sprightly_A : A;
+fun spring_N : N;
+fun spring_V : V;
+fun spring_V2 : V2;
+fun spring_balance_N : N;
+fun spring_clean_N : N;
+fun spring_clean_V2 : V2;
+fun spring_cleaning_N : N;
+fun spring_gun_N : N;
+fun spring_mattress_N : N;
+fun springboard_N : N;
+fun springbok_N : N;
+fun springfield_PN : PN;
+fun springless_A : A;
+fun springlike_A : A;
+fun springtide_N : N;
+fun springtime_N : N;
+fun springy_A : A;
+fun sprinkle_V2 : V2;
+fun sprinkler_N : N;
+fun sprinkling_N : N;
+fun sprint_N : N;
+fun sprint_V : V;
+fun sprinter_N : N;
+fun sprit_N : N;
+fun sprite_N : N;
+fun spritsail_N : N;
+fun sprocket_N : N;
+fun sprocket_wheel_N : N;
+fun sprout_N : N;
+fun sprout_V : V;
+fun sprout_V2 : V2;
+fun spruce_A : A;
+fun spruce_N : N;
+fun spruce_V : V;
+fun spruce_V2 : V2;
+fun spruceness_N : N;
+fun spry_A : A;
+fun spud_N : N;
+fun spue_V : V;
+fun spue_V2 : V2;
+fun spume_N : N;
+fun spunk_N : N;
+fun spunky_A : A;
+fun spur_N : N;
+fun spur_V : V;
+fun spur_V2 : V2;
+fun spurious_A : A;
+fun spuriousness_N : N;
+fun spurn_V2 : V2;
+fun spurt_N : N;
+fun spurt_V : V;
+fun sputnik_N : N;
+fun sputter_V : V;
+fun sputter_V2 : V2;
+fun sputum_N : N;
+fun spy_N : N;
+fun spy_V : V;
+fun spy_V2 : V2;
+fun spy_hole_N : N;
+fun spyglass_N : N;
+fun sq_PN : PN;
+fun squab_N : N;
+fun squabble_N : N;
+fun squabble_V : V;
+fun squad_N : N;
+fun squadron_N : N;
+fun squalid_A : A;
+fun squall_N : N;
+fun squall_V : V;
+fun squally_A : A;
+fun squalor_N : N;
+fun squander_V2 : V2;
+fun squandermania_N : N;
+fun square_A : A;
+fun square_Adv : Adv;
+fun square_N : N;
+fun square_V : V;
+fun square_V2 : V2;
+fun square_bashing_N : N;
+fun square_built_A : A;
+fun square_rigged_A : A;
+fun square_shouldered_A : A;
+fun square_toed_A : A;
+fun square_toes_N : N;
+fun squareness_N : N;
+fun squash_N : N;
+fun squash_V : V;
+fun squash_V2 : V2;
+fun squashy_A : A;
+fun squat_A : A;
+fun squat_V : V;
+fun squatter_N : N;
+fun squaw_N : N;
+fun squawk_N : N;
+fun squawk_V : V;
+fun squawker_N : N;
+fun squeak_N : N;
+fun squeak_V : V;
+fun squeak_V2 : V2;
+fun squeaker_N : N;
+fun squeaky_A : A;
+fun squeal_N : N;
+fun squeal_V : V;
+fun squeal_V2 : V2;
+fun squealer_N : N;
+fun squeamish_A : A;
+fun squeamishness_N : N;
+fun squeegee_N : N;
+fun squeegee_V2 : V2;
+fun squeeze_N : N;
+fun squeeze_V : V;
+fun squeeze_V2 : V2;
+fun squeezer_N : N;
+fun squelch_N : N;
+fun squelch_V : V;
+fun squelch_V2 : V2;
+fun squib_N : N;
+fun squid_N : N;
+fun squiffy_A : A;
+fun squiggle_N : N;
+fun squiggly_A : A;
+fun squint_N : N;
+fun squint_V : V;
+fun squint_eyed_A : A;
+fun squire_N : N;
+fun squire_V2 : V2;
+fun squirearchy_N : N;
+fun squirm_N : N;
+fun squirm_V : V;
+fun squirrel_N : N;
+fun squirt_N : N;
+fun squirt_V : V;
+fun squirt_V2 : V2;
+fun sr_PN : PN;
+fun sri_lanka_PN : PN;
+fun sri_lankan_A : A;
+fun sri_lankan_N : N;
+fun srn_N : N;
+fun ss_N : N;
+fun st_PN : PN;
+fun st_albans_PN : PN;
+fun st_andrews_PN : PN;
+fun st_andrews_major_PN : PN;
+fun st_austell_PN : PN;
+fun st_blazey_PN : PN;
+fun st_helens_PN : PN;
+fun st_ives_PN : PN;
+fun st_louis_PN : PN;
+fun st_neots_PN : PN;
+fun st_paul_PN : PN;
+fun st_petersburg_PN : PN;
+fun st_stephen_PN : PN;
+fun sta_PN : PN;
+fun stab_N : N;
+fun stab_V : V;
+fun stab_V2 : V2;
+fun stabber_N : N;
+fun stability_N : N;
+fun stabilization_N : N;
+fun stabilize_V2 : V2;
+fun stabilizer_N : N;
+fun stable_A : A;
+fun stable_N : N;
+fun stable_V2 : V2;
+fun stable_companion_N : N;
+fun stableboy_N : N;
+fun stableman_N : N;
+fun stablemate_N : N;
+fun stabling_N : N;
+fun staccato_A : A;
+fun staccato_Adv : Adv;
+fun stack_N : N;
+fun stack_V2 : V2;
+fun stadium_N : N;
+fun staff_N : N;
+fun staff_V2 : V2;
+fun staff_office_N : N;
+fun stafford_PN : PN;
+fun staffordshire_PN : PN;
+fun stag_N : N;
+fun stag_party_N : N;
+fun stage_N : N;
+fun stage_V : V;
+fun stage_V2 : V2;
+fun stage_struck_A : A;
+fun stage_whisper_N : N;
+fun stagecoach_N : N;
+fun stagecraft_N : N;
+fun stager_N : N;
+fun stagflation_N : N;
+fun stagger_N : N;
+fun stagger_V : V;
+fun stagger_V2 : V2;
+fun staggerer_N : N;
+fun staggeringly_Adv : Adv;
+fun staginess_N : N;
+fun staging_N : N;
+fun stagnancy_N : N;
+fun stagnant_A : A;
+fun stagnate_V : V;
+fun stagnation_N : N;
+fun stagy_A : A;
+fun staid_A : A;
+fun staidness_N : N;
+fun stain_N : N;
+fun stain_V : V;
+fun stain_V2 : V2;
+fun stainless_A : A;
+fun stair_N : N;
+fun stair_carpet_N : N;
+fun stair_rod_N : N;
+fun staircase_N : N;
+fun stairway_N : N;
+fun stake_N : N;
+fun stake_V2 : V2;
+fun stake_holder_N : N;
+fun stakeford_PN : PN;
+fun stalactite_N : N;
+fun stalagmite_N : N;
+fun stale_A : A;
+fun stale_V : V;
+fun stalemate_N : N;
+fun stalemate_V2 : V2;
+fun staleness_N : N;
+fun stalk_N : N;
+fun stalk_V : V;
+fun stalk_V2 : V2;
+fun stalker_N : N;
+fun stalking_horse_N : N;
+fun stall_N : N;
+fun stall_V : V;
+fun stall_V2 : V2;
+fun stall_fed_A : A;
+fun stallion_N : N;
+fun stalwart_A : A;
+fun stalwart_N : N;
+fun stalybridge_PN : PN;
+fun stamen_N : N;
+fun stamford_PN : PN;
+fun stamina_N : N;
+fun stammer_N : N;
+fun stammer_V : V;
+fun stammer_V2 : V2;
+fun stammerer_N : N;
+fun stammeringly_Adv : Adv;
+fun stamp_N : N;
+fun stamp_V : V;
+fun stamp_V2 : V2;
+fun stamp_album_N : N;
+fun stamp_collector_N : N;
+fun stamp_dealer_N : N;
+fun stamp_duty_N : N;
+fun stampede_N : N;
+fun stampede_V : V;
+fun stampede_V2 : V2;
+fun stamping_ground_N : N;
+fun stan_PN : PN;
+fun stance_N : N;
+fun stanchion_N : N;
+fun stand_N : N;
+fun stand_V : V;
+fun stand_V2 : V2;
+fun stand_in_N : N;
+fun stand_to_N : N;
+fun stand_up_A : A;
+fun standard_A : A;
+fun standard_N : N;
+fun standard_bearer_N : N;
+fun standardization_N : N;
+fun standardize_V2 : V2;
+fun standby_N : N;
+fun standing_A : A;
+fun standing_N : N;
+fun standoffish_A : A;
+fun standoffishness_N : N;
+fun standpipe_N : N;
+fun standpoint_N : N;
+fun standstill_N : N;
+fun stanford_PN : PN;
+fun stanley_PN : PN;
+fun stanza_N : N;
+fun staple_N : N;
+fun staple_V2 : V2;
+fun stapler_N : N;
+fun stapling_machine_N : N;
+fun star_N : N;
+fun star_V : V;
+fun star_V2 : V2;
+fun starboard_N : N;
+fun starboard_V2 : V2;
+fun starch_N : N;
+fun starch_V2 : V2;
+fun starchy_A : A;
+fun stardom_N : N;
+fun stardust_N : N;
+fun stare_N : N;
+fun stare_V : V;
+fun stare_V2 : V2;
+fun starfish_N : N;
+fun stargazer_N : N;
+fun staring_A : A;
+fun staring_Adv : Adv;
+fun stark_A : A;
+fun stark_Adv : Adv;
+fun starkers_A : A;
+fun starless_A : A;
+fun starlet_N : N;
+fun starlight_N : N;
+fun starling_N : N;
+fun starlit_A : A;
+fun starry_A : A;
+fun starry_eyed_A : A;
+fun start_N : N;
+fun start_V : V;
+fun start_V2 : V2;
+fun starter_N : N;
+fun starting_gate_N : N;
+fun starting_point_N : N;
+fun starting_post_N : N;
+fun startle_V2 : V2;
+fun startlingly_Adv : Adv;
+fun starvation_N : N;
+fun starve_V : V;
+fun starve_V2 : V2;
+fun starveling_N : N;
+fun stash_V2 : V2;
+fun state_N : N;
+fun state_V2 : V2;
+fun statecraft_N : N;
+fun stated_A : A;
+fun statehouse_N : N;
+fun stateless_A : A;
+fun stateliness_N : N;
+fun stately_A : A;
+fun statement_N : N;
+fun statesman_N : N;
+fun statesmanlike_A : A;
+fun statesmanship_N : N;
+fun static_A : A;
+fun statically_Adv : Adv;
+fun statics_N : N;
+fun station_N : N;
+fun station_V2 : V2;
+fun station_waggon_N : N;
+fun stationary_A : A;
+fun stationer_N : N;
+fun stationery_N : N;
+fun stationmaster_N : N;
+fun statistic_N : N;
+fun statistical_A : A;
+fun statistician_N : N;
+fun statistics_N : N;
+fun statuary_A : A;
+fun statuary_N : N;
+fun statue_N : N;
+fun statuesque_A : A;
+fun statuette_N : N;
+fun stature_N : N;
+fun status_N : N;
+fun status_quo_N : N;
+fun statute_N : N;
+fun statute_book_N : N;
+fun statutory_A : A;
+fun staunch_A : A;
+fun staunch_V2 : V2;
+fun staunchness_N : N;
+fun stave_N : N;
+fun stave_V : V;
+fun stave_V2 : V2;
+fun stay_N : N;
+fun stay_V : V;
+fun stay_V2 : V2;
+fun stay_at_home_N : N;
+fun stayer_N : N;
+fun std_PN : PN;
+fun stead_N : N;
+fun steadfast_A : A;
+fun steadfastness_N : N;
+fun steadily_Adv : Adv;
+fun steadiness_N : N;
+fun steady_A : A;
+fun steady_Adv : Adv;
+fun steady_N : N;
+fun steady_V : V;
+fun steady_V2 : V2;
+fun steak_N : N;
+fun steal_V : V;
+fun steal_V2 : V2;
+fun stealth_N : N;
+fun stealthily_Adv : Adv;
+fun stealthy_A : A;
+fun steam_N : N;
+fun steam_V : V;
+fun steam_V2 : V2;
+fun steam_boiler_N : N;
+fun steam_coal_N : N;
+fun steam_engine_N : N;
+fun steam_heat_N : N;
+fun steam_heat_V2 : V2;
+fun steamboat_N : N;
+fun steamer_N : N;
+fun steamroller_N : N;
+fun steamroller_V2 : V2;
+fun steamship_N : N;
+fun steamy_A : A;
+fun steed_N : N;
+fun steel_N : N;
+fun steel_V2 : V2;
+fun steel_clad_A : A;
+fun steel_plated_A : A;
+fun steelworks_N : N;
+fun steely_A : A;
+fun steelyard_N : N;
+fun steenbok_N : N;
+fun steep_A : A;
+fun steep_V : V;
+fun steep_V2 : V2;
+fun steepen_V : V;
+fun steepen_V2 : V2;
+fun steepish_A : A;
+fun steeple_N : N;
+fun steeplechase_N : N;
+fun steeplechaser_N : N;
+fun steeplejack_N : N;
+fun steepness_N : N;
+fun steer_N : N;
+fun steer_V : V;
+fun steer_V2 : V2;
+fun steerage_N : N;
+fun steerageway_N : N;
+fun steering_gear_N : N;
+fun steering_wheel_N : N;
+fun steersman_N : N;
+fun stele_N : N;
+fun stella_PN : PN;
+fun stellar_A : A;
+fun stem_N : N;
+fun stem_V : V;
+fun stem_V2 : V2;
+fun stemmed_A : A;
+fun sten_PN : PN;
+fun stench_N : N;
+fun stencil_N : N;
+fun stencil_V2 : V2;
+fun stenographer_N : N;
+fun stenography_N : N;
+fun stentorian_A : A;
+fun step_N : N;
+fun step_V : V;
+fun step_V2 : V2;
+fun stepbrother_N : N;
+fun stepchild_N : N;
+fun stepdaughter_N : N;
+fun stepfather_N : N;
+fun stephanie_PN : PN;
+fun stephen_PN : PN;
+fun stepladder_N : N;
+fun stepmother_N : N;
+fun stepparent_N : N;
+fun steppe_N : N;
+fun stepping_stone_N : N;
+fun stepsister_N : N;
+fun stepson_N : N;
+fun stereo_N : N;
+fun stereophonic_A : A;
+fun stereoscope_N : N;
+fun stereoscopic_A : A;
+fun stereotype_N : N;
+fun stereotype_V2 : V2;
+fun sterile_A : A;
+fun sterility_N : N;
+fun sterilization_N : N;
+fun sterilize_V2 : V2;
+fun sterling_A : A;
+fun sterling_N : N;
+fun stern_A : A;
+fun stern_N : N;
+fun sternness_N : N;
+fun sternum_N : N;
+fun sternwheeler_N : N;
+fun stertorous_A : A;
+fun stethoscope_N : N;
+fun stetson_N : N;
+fun steve_PN : PN;
+fun stevedore_N : N;
+fun steven_PN : PN;
+fun stevenage_PN : PN;
+fun stevenston_PN : PN;
+fun stew_N : N;
+fun stew_V : V;
+fun stew_V2 : V2;
+fun steward_N : N;
+fun stewardess_N : N;
+fun stewardship_N : N;
+fun stewart_PN : PN;
+fun stewed_A : A;
+fun steyning_PN : PN;
+fun stick_N : N;
+fun stick_V : V;
+fun stick_V2 : V2;
+fun stick_in_the_mud_A : A;
+fun stick_in_the_mud_N : N;
+fun stick_on_A : A;
+fun stick_up_N : N;
+fun sticker_N : N;
+fun stickily_Adv : Adv;
+fun stickiness_N : N;
+fun sticking_plaster_N : N;
+fun stickler_N : N;
+fun sticky_A : A;
+fun stiff_A : A;
+fun stiff_Adv : Adv;
+fun stiff_N : N;
+fun stiff_necked_A : A;
+fun stiffen_V : V;
+fun stiffen_V2 : V2;
+fun stiffener_N : N;
+fun stiffening_N : N;
+fun stiffness_N : N;
+fun stifle_V : V;
+fun stifle_V2 : V2;
+fun stigma_N : N;
+fun stigmatize_V2 : V2;
+fun stile_N : N;
+fun stiletto_N : N;
+fun still_A : A;
+fun still_Adv : Adv;
+fun still_N : N;
+fun still_V2 : V2;
+fun still_life_N : N;
+fun still_room_N : N;
+fun stillbirth_N : N;
+fun stillborn_A : A;
+fun stillness_N : N;
+fun stilly_A : A;
+fun stilt_N : N;
+fun stilted_A : A;
+fun stilton_N : N;
+fun stimulant_N : N;
+fun stimulate_V2 : V2;
+fun stimulating_A : A;
+fun stimulation_N : N;
+fun stimulus_N : N;
+fun sting_N : N;
+fun sting_V : V;
+fun sting_V2 : V2;
+fun stinger_N : N;
+fun stingily_Adv : Adv;
+fun stinginess_N : N;
+fun stingless_A : A;
+fun stingray_N : N;
+fun stingy_A : A;
+fun stink_N : N;
+fun stink_V : V;
+fun stink_V2 : V2;
+fun stinker_N : N;
+fun stint_N : N;
+fun stint_V : V;
+fun stint_V2 : V2;
+fun stipend_N : N;
+fun stipendiary_A : A;
+fun stipendiary_N : N;
+fun stipple_V2 : V2;
+fun stipulate_V : V;
+fun stipulate_V2 : V2;
+fun stipulation_N : N;
+fun stir_N : N;
+fun stir_V : V;
+fun stir_V2 : V2;
+fun stirling_PN : PN;
+fun stirring_A : A;
+fun stirrup_N : N;
+fun stirrup_cup_N : N;
+fun stitch_N : N;
+fun stitch_V : V;
+fun stitch_V2 : V2;
+fun stoat_N : N;
+fun stochastic_A : A;
+fun stochastically_Adv : Adv;
+fun stock_N : N;
+fun stock_V2 : V2;
+fun stock_cube_N : N;
+fun stock_farmer_N : N;
+fun stock_in_trade_N : N;
+fun stock_list_N : N;
+fun stock_still_Adv : Adv;
+fun stockade_N : N;
+fun stockade_V2 : V2;
+fun stockbreeder_N : N;
+fun stockbroker_N : N;
+fun stockcar_N : N;
+fun stockfish_N : N;
+fun stockholder_N : N;
+fun stockholding_N : N;
+fun stockholm_PN : PN;
+fun stockily_Adv : Adv;
+fun stockinette_N : N;
+fun stocking_N : N;
+fun stockinged_A : A;
+fun stockist_N : N;
+fun stockjobber_N : N;
+fun stockpile_N : N;
+fun stockpiling_N : N;
+fun stockport_PN : PN;
+fun stockpot_N : N;
+fun stockroom_N : N;
+fun stocksbridge_PN : PN;
+fun stocktaking_N : N;
+fun stocky_A : A;
+fun stockyard_N : N;
+fun stodge_N : N;
+fun stodginess_N : N;
+fun stodgy_A : A;
+fun stoep_N : N;
+fun stoic_N : N;
+fun stoical_A : A;
+fun stoicism_N : N;
+fun stoke_V : V;
+fun stoke_V2 : V2;
+fun stoke_on_trent_PN : PN;
+fun stokehold_N : N;
+fun stokehole_N : N;
+fun stoker_N : N;
+fun stole_N : N;
+fun stolen_A : A;
+fun stolid_A : A;
+fun stolidity_N : N;
+fun stolidness_N : N;
+fun stomach_N : N;
+fun stomach_V2 : V2;
+fun stomach_ache_N : N;
+fun stomach_pump_N : N;
+fun stomp_N : N;
+fun stomp_V : V;
+fun stone_N : N;
+fun stone_PN : PN;
+fun stone_V2 : V2;
+fun stone_blind_A : A;
+fun stone_cold_A : A;
+fun stone_dead_A : A;
+fun stone_deaf_A : A;
+fun stone_fruit_N : N;
+fun stone_pit_N : N;
+fun stone_sober_A : A;
+fun stonebreaker_N : N;
+fun stoned_A : A;
+fun stonehouse_PN : PN;
+fun stoneless_A : A;
+fun stonemason_N : N;
+fun stonewall_V2 : V2;
+fun stonewaller_N : N;
+fun stonewalling_N : N;
+fun stoneware_N : N;
+fun stonework_N : N;
+fun stonily_Adv : Adv;
+fun stony_A : A;
+fun stony_broke_A : A;
+fun stooge_N : N;
+fun stooge_V : V;
+fun stool_N : N;
+fun stoop_N : N;
+fun stoop_V : V;
+fun stoop_V2 : V2;
+fun stop_N : N;
+fun stop_V : V;
+fun stop_V2 : V2;
+fun stopcock_N : N;
+fun stopgap_N : N;
+fun stopover_N : N;
+fun stoppage_N : N;
+fun stopper_N : N;
+fun stopping_N : N;
+fun stopwatch_N : N;
+fun storage_N : N;
+fun store_N : N;
+fun store_V2 : V2;
+fun storehouse_N : N;
+fun storeroom_N : N;
+fun storey_N : N;
+fun storeyed_A : A;
+fun storied_A : A;
+fun stork_N : N;
+fun storm_N : N;
+fun storm_V : V;
+fun storm_V2 : V2;
+fun storm_beaten_A : A;
+fun storm_bound_A : A;
+fun storm_centre_N : N;
+fun storm_cloud_N : N;
+fun storm_cone_N : N;
+fun storm_lantern_N : N;
+fun storm_signal_N : N;
+fun storm_tossed_A : A;
+fun storm_trooper_N : N;
+fun stormily_Adv : Adv;
+fun stormproof_A : A;
+fun stormy_A : A;
+fun stornoway_PN : PN;
+fun story_N : N;
+fun storyteller_N : N;
+fun stotfold_PN : PN;
+fun stoup_N : N;
+fun stourbridge_PN : PN;
+fun stourport_on_severn_PN : PN;
+fun stout_A : A;
+fun stout_N : N;
+fun stouthearted_A : A;
+fun stoutness_N : N;
+fun stove_N : N;
+fun stovepipe_N : N;
+fun stow_V2 : V2;
+fun stowaway_N : N;
+fun stowmarket_PN : PN;
+fun straddle_V : V;
+fun straddle_V2 : V2;
+fun strafe_V2 : V2;
+fun straggle_V : V;
+fun straggler_N : N;
+fun straggly_A : A;
+fun straight_A : A;
+fun straight_Adv : Adv;
+fun straight_N : N;
+fun straighten_V : V;
+fun straighten_V2 : V2;
+fun straightforward_A : A;
+fun straightness_N : N;
+fun straightway_Adv : Adv;
+fun strain_N : N;
+fun strain_V : V;
+fun strain_V2 : V2;
+fun strained_A : A;
+fun strainer_N : N;
+fun strait_A : A;
+fun strait_N : N;
+fun strait_laced_A : A;
+fun straiten_V2 : V2;
+fun straitjacket_N : N;
+fun strand_N : N;
+fun strand_V : V;
+fun strand_V2 : V2;
+fun strange_A : A;
+fun strangeness_N : N;
+fun stranger_N : N;
+fun strangle_V2 : V2;
+fun stranglehold_N : N;
+fun strangulation_N : N;
+fun stranraer_PN : PN;
+fun strap_N : N;
+fun strap_V2 : V2;
+fun straphanger_N : N;
+fun strapping_A : A;
+fun strapping_N : N;
+fun strasbourg_PN : PN;
+fun stratagem_N : N;
+fun strategic_A : A;
+fun strategical_A : A;
+fun strategics_N : N;
+fun strategist_N : N;
+fun strategy_N : N;
+fun stratford_on_avon_PN : PN;
+fun strathaven_PN : PN;
+fun strathclyde_PN : PN;
+fun stratification_N : N;
+fun stratify_V : V;
+fun stratify_V2 : V2;
+fun stratosphere_N : N;
+fun stratum_N : N;
+fun straw_N : N;
+fun straw_V2 : V2;
+fun straw_coloured_A : A;
+fun strawberry_N : N;
+fun strawboard_N : N;
+fun stray_N : N;
+fun stray_V : V;
+fun streak_N : N;
+fun streak_V : V;
+fun streak_V2 : V2;
+fun streaky_A : A;
+fun stream_N : N;
+fun stream_V : V;
+fun streamer_N : N;
+fun streamlet_N : N;
+fun streamline_V2 : V2;
+fun streamlined_A : A;
+fun street_N : N;
+fun street_PN : PN;
+fun street_girl_N : N;
+fun street_urchin_N : N;
+fun streetcar_N : N;
+fun streetwalker_N : N;
+fun strength_N : N;
+fun strengthen_V : V;
+fun strengthen_V2 : V2;
+fun strenuous_A : A;
+fun strenuousness_N : N;
+fun streptococcus_N : N;
+fun streptomycin_N : N;
+fun stress_N : N;
+fun stress_V2 : V2;
+fun stress_mark_N : N;
+fun stretch_N : N;
+fun stretch_V : V;
+fun stretch_V2 : V2;
+fun stretcher_N : N;
+fun stretcher_bearer_N : N;
+fun stretcher_party_N : N;
+fun stretford_PN : PN;
+fun strew_V2 : V2;
+fun striated_A : A;
+fun stricken_A : A;
+fun strict_A : A;
+fun strictness_N : N;
+fun stricture_N : N;
+fun stride_N : N;
+fun stride_V : V;
+fun stride_V2 : V2;
+fun strident_A : A;
+fun stridulate_V : V;
+fun stridulation_N : N;
+fun strife_N : N;
+fun strike_N : N;
+fun strike_V : V;
+fun strike_V2 : V2;
+fun strike_leader_N : N;
+fun strike_pay_N : N;
+fun strikebound_A : A;
+fun strikebreaker_N : N;
+fun striker_N : N;
+fun striking_A : A;
+fun string_N : N;
+fun string_V : V;
+fun string_V2 : V2;
+fun stringency_N : N;
+fun stringent_A : A;
+fun stringy_A : A;
+fun strip_N : N;
+fun strip_V : V;
+fun strip_V2 : V2;
+fun strip_lighting_N : N;
+fun strip_poker_N : N;
+fun strip_show_N : N;
+fun stripe_N : N;
+fun striped_A : A;
+fun stripling_N : N;
+fun stripper_N : N;
+fun striptease_N : N;
+fun stripy_A : A;
+fun strive_V : V;
+fun striver_N : N;
+fun stroboscope_N : N;
+fun stroke_N : N;
+fun stroke_V2 : V2;
+fun stroll_N : N;
+fun stroll_V : V;
+fun stroller_N : N;
+fun strong_A : A;
+fun strong_arm_A : A;
+fun strong_boned_A : A;
+fun strong_minded_A : A;
+fun strongbox_N : N;
+fun stronghold_N : N;
+fun strongroom_N : N;
+fun strontium_N : N;
+fun strop_N : N;
+fun strop_V2 : V2;
+fun strophe_N : N;
+fun stroppy_A : A;
+fun stroud_PN : PN;
+fun struck_A : A;
+fun structural_A : A;
+fun structure_N : N;
+fun structured_A : A;
+fun strudel_N : N;
+fun struggle_N : N;
+fun struggle_V : V;
+fun strum_N : N;
+fun strum_V : V;
+fun strum_V2 : V2;
+fun strumpet_N : N;
+fun strut_N : N;
+fun strut_V : V;
+fun strychnine_N : N;
+fun stuart_PN : PN;
+fun stub_N : N;
+fun stub_V2 : V2;
+fun stubble_N : N;
+fun stubbly_A : A;
+fun stubborn_A : A;
+fun stubbornness_N : N;
+fun stubby_A : A;
+fun stucco_N : N;
+fun stucco_V2 : V2;
+fun stuck_up_A : A;
+fun stud_N : N;
+fun stud_V2 : V2;
+fun stud_farm_N : N;
+fun stud_mare_N : N;
+fun studbook_N : N;
+fun student_N : N;
+fun studied_A : A;
+fun studio_N : N;
+fun studious_A : A;
+fun studiousness_N : N;
+fun studley_PN : PN;
+fun study_N : N;
+fun study_V : V;
+fun study_V2 : V2;
+fun stuff_N : N;
+fun stuff_V2 : V2;
+fun stuffily_Adv : Adv;
+fun stuffiness_N : N;
+fun stuffing_N : N;
+fun stuffy_A : A;
+fun stultification_N : N;
+fun stultify_V2 : V2;
+fun stumble_N : N;
+fun stumble_V : V;
+fun stumbling_block_N : N;
+fun stump_N : N;
+fun stump_V : V;
+fun stump_V2 : V2;
+fun stumper_N : N;
+fun stumpy_A : A;
+fun stun_V2 : V2;
+fun stunner_N : N;
+fun stunning_A : A;
+fun stunt_N : N;
+fun stunt_V2 : V2;
+fun stupefaction_N : N;
+fun stupefy_V2 : V2;
+fun stupendous_A : A;
+fun stupid_A : A;
+fun stupid_N : N;
+fun stupidity_N : N;
+fun stupify_V2 : V2;
+fun stupifying_A : A;
+fun stupor_N : N;
+fun sturdily_Adv : Adv;
+fun sturdiness_N : N;
+fun sturdy_A : A;
+fun sturgeon_N : N;
+fun stutter_N : N;
+fun stutter_V : V;
+fun stutter_V2 : V2;
+fun stutterer_N : N;
+fun stutteringly_Adv : Adv;
+fun stuttgart_PN : PN;
+fun sty_N : N;
+fun stye_N : N;
+fun stygian_A : A;
+fun style_N : N;
+fun style_V2 : V2;
+fun stylish_A : A;
+fun stylishness_N : N;
+fun stylist_N : N;
+fun stylistic_A : A;
+fun stylistically_Adv : Adv;
+fun stylization_N : N;
+fun stylize_V2 : V2;
+fun stylus_N : N;
+fun stymie_N : N;
+fun stymie_V2 : V2;
+fun styptic_A : A;
+fun styptic_N : N;
+fun styx_PN : PN;
+fun suasion_N : N;
+fun suave_A : A;
+fun suavity_N : N;
+fun sub_N : N;
+fun sub_V : V;
+fun sub_V2 : V2;
+fun sub_judice_A : A;
+fun sub_rosa_Adv : Adv;
+fun subaltern_N : N;
+fun subatomic_A : A;
+fun subcommittee_N : N;
+fun subconscious_A : A;
+fun subconscious_N : N;
+fun subconsciousness_N : N;
+fun subcontinent_N : N;
+fun subcontract_N : N;
+fun subcontract_V : V;
+fun subcontract_V2 : V2;
+fun subcontractor_N : N;
+fun subcutaneous_A : A;
+fun subdivide_V : V;
+fun subdivide_V2 : V2;
+fun subdivision_N : N;
+fun subdue_V2 : V2;
+fun subedit_V2 : V2;
+fun subeditor_N : N;
+fun subfusc_A : A;
+fun subgroup_N : N;
+fun subheading_N : N;
+fun subhuman_A : A;
+fun subject_A : A;
+fun subject_N : N;
+fun subject_V2 : V2;
+fun subjection_N : N;
+fun subjective_A : A;
+fun subjectivity_N : N;
+fun subjoin_V2 : V2;
+fun subjugate_V2 : V2;
+fun subjugation_N : N;
+fun subjunctive_A : A;
+fun subjunctive_N : N;
+fun sublease_N : N;
+fun sublease_V : V;
+fun sublease_V2 : V2;
+fun sublet_V : V;
+fun sublet_V2 : V2;
+fun sublieutenant_N : N;
+fun sublimate_A : A;
+fun sublimate_N : N;
+fun sublimate_V2 : V2;
+fun sublimation_N : N;
+fun sublime_A : A;
+fun sublime_N : N;
+fun subliminal_A : A;
+fun sublimity_N : N;
+fun submarine_A : A;
+fun submarine_N : N;
+fun submariner_N : N;
+fun submerge_V : V;
+fun submerge_V2 : V2;
+fun submerged_A : A;
+fun submergence_N : N;
+fun submersible_A : A;
+fun submersion_N : N;
+fun submission_N : N;
+fun submissive_A : A;
+fun submissiveness_N : N;
+fun submit_V : V;
+fun submit_V2 : V2;
+fun subnormal_A : A;
+fun subnormal_N : N;
+fun suborbital_A : A;
+fun subordinate_A : A;
+fun subordinate_N : N;
+fun subordinate_V2 : V2;
+fun subordination_N : N;
+fun subordinative_A : A;
+fun suborn_V2 : V2;
+fun subornation_N : N;
+fun subpoena_N : N;
+fun subpoena_V2 : V2;
+fun subscribe_V : V;
+fun subscribe_V2 : V2;
+fun subscriber_N : N;
+fun subscript_N : N;
+fun subscription_N : N;
+fun subsection_N : N;
+fun subsequent_A : A;
+fun subserve_V2 : V2;
+fun subservience_N : N;
+fun subservient_A : A;
+fun subside_V : V;
+fun subsidence_N : N;
+fun subsidiary_A : A;
+fun subsidiary_N : N;
+fun subsidization_N : N;
+fun subsidize_V2 : V2;
+fun subsidy_N : N;
+fun subsist_V : V;
+fun subsistence_N : N;
+fun subsoil_N : N;
+fun subsonic_A : A;
+fun substance_N : N;
+fun substandard_A : A;
+fun substantial_A : A;
+fun substantiate_V2 : V2;
+fun substantiation_N : N;
+fun substantival_A : A;
+fun substantive_A : A;
+fun substantive_N : N;
+fun substation_N : N;
+fun substitute_N : N;
+fun substitute_V : V;
+fun substitute_V2 : V2;
+fun substitution_N : N;
+fun substrate_N : N;
+fun substratum_N : N;
+fun substructure_N : N;
+fun subsume_V2 : V2;
+fun subtend_V2 : V2;
+fun subterfuge_N : N;
+fun subterranean_A : A;
+fun subtitle_N : N;
+fun subtle_A : A;
+fun subtlety_N : N;
+fun subtly_Adv : Adv;
+fun subtopia_N : N;
+fun subtract_V2 : V2;
+fun subtraction_N : N;
+fun subtropical_A : A;
+fun suburb_N : N;
+fun suburban_A : A;
+fun suburbia_N : N;
+fun subvention_N : N;
+fun subversion_N : N;
+fun subversive_A : A;
+fun subversive_N : N;
+fun subvert_V2 : V2;
+fun subway_N : N;
+fun succeed_V : V;
+fun succeed_V2 : V2;
+fun success_N : N;
+fun successful_A : A;
+fun succession_N : N;
+fun successive_A : A;
+fun successor_N : N;
+fun succinct_A : A;
+fun succinctness_N : N;
+fun succour_N : N;
+fun succour_V2 : V2;
+fun succubus_N : N;
+fun succulence_N : N;
+fun succulent_A : A;
+fun succulent_N : N;
+fun succumb_V : V;
+fun such_A : A;
+fun suchlike_A : A;
+fun suchow_PN : PN;
+fun suck_N : N;
+fun suck_V : V;
+fun suck_V2 : V2;
+fun sucker_N : N;
+fun sucking_pig_N : N;
+fun suckle_V2 : V2;
+fun suckling_N : N;
+fun suction_N : N;
+fun sudan_PN : PN;
+fun sudanese_A : A;
+fun sudanese_N : N;
+fun sudbury_PN : PN;
+fun sudden_A : A;
+fun sudden_N : N;
+fun suddenness_N : N;
+fun sue_PN : PN;
+fun sue_V : V;
+fun sue_V2 : V2;
+fun suede_N : N;
+fun suet_N : N;
+fun suety_A : A;
+fun suffer_V : V;
+fun suffer_V2 : V2;
+fun sufferable_A : A;
+fun sufferance_N : N;
+fun sufferer_N : N;
+fun suffering_N : N;
+fun suffice_V : V;
+fun suffice_V2 : V2;
+fun sufficiency_N : N;
+fun sufficient_A : A;
+fun suffix_N : N;
+fun suffocate_V : V;
+fun suffocate_V2 : V2;
+fun suffocation_N : N;
+fun suffolk_PN : PN;
+fun suffragan_N : N;
+fun suffrage_N : N;
+fun suffragette_N : N;
+fun suffuse_V2 : V2;
+fun suffusion_N : N;
+fun sugar_N : N;
+fun sugar_V2 : V2;
+fun sugar_beet_N : N;
+fun sugar_candy_N : N;
+fun sugar_cane_N : N;
+fun sugar_coated_A : A;
+fun sugar_daddy_N : N;
+fun sugar_loaf_N : N;
+fun sugar_refinery_N : N;
+fun sugarlump_N : N;
+fun sugary_A : A;
+fun suggest_V2 : V2;
+fun suggestibility_N : N;
+fun suggestible_A : A;
+fun suggestion_N : N;
+fun suggestive_A : A;
+fun suicidal_A : A;
+fun suicide_N : N;
+fun suit_N : N;
+fun suit_V : V;
+fun suit_V2 : V2;
+fun suitability_N : N;
+fun suitable_A : A;
+fun suitableness_N : N;
+fun suitcase_N : N;
+fun suite_N : N;
+fun suiting_N : N;
+fun suitor_N : N;
+fun sulk_N : N;
+fun sulk_V : V;
+fun sulkily_Adv : Adv;
+fun sulkiness_N : N;
+fun sulky_A : A;
+fun sulky_N : N;
+fun sullen_A : A;
+fun sullenness_N : N;
+fun sully_V2 : V2;
+fun sulpha_N : N;
+fun sulphate_N : N;
+fun sulphide_N : N;
+fun sulphur_N : N;
+fun sulphuretted_A : A;
+fun sulphuric_A : A;
+fun sulphurous_A : A;
+fun sultan_N : N;
+fun sultana_N : N;
+fun sultanate_N : N;
+fun sultrily_Adv : Adv;
+fun sultriness_N : N;
+fun sultry_A : A;
+fun sum_N : N;
+fun sum_V : V;
+fun sum_V2 : V2;
+fun sumac_N : N;
+fun sumach_N : N;
+fun sumatra_PN : PN;
+fun sumatran_A : A;
+fun sumatran_N : N;
+fun summarize_V2 : V2;
+fun summary_A : A;
+fun summary_N : N;
+fun summation_N : N;
+fun summer_N : N;
+fun summer_V : V;
+fun summerhouse_N : N;
+fun summertime_N : N;
+fun summery_A : A;
+fun summing_up_N : N;
+fun summit_N : N;
+fun summon_V2 : V2;
+fun summons_N : N;
+fun summons_V2 : V2;
+fun sump_N : N;
+fun sumpter_N : N;
+fun sumptuary_A : A;
+fun sumptuous_A : A;
+fun sumptuousness_N : N;
+fun sun_N : N;
+fun sun_PN : PN;
+fun sun_V2 : V2;
+fun sun_drenched_A : A;
+fun sun_dried_A : A;
+fun sun_god_N : N;
+fun sun_helmet_N : N;
+fun sun_lounge_N : N;
+fun sun_parlour_N : N;
+fun sun_porch_N : N;
+fun sun_up_N : N;
+fun sun_visor_N : N;
+fun sun_worship_N : N;
+fun sunbaked_A : A;
+fun sunbathe_N : N;
+fun sunbathe_V : V;
+fun sunbeam_N : N;
+fun sunblind_N : N;
+fun sunbonnet_N : N;
+fun sunburn_N : N;
+fun sunburned_A : A;
+fun sunburnt_A : A;
+fun sunburst_N : N;
+fun sundae_N : N;
+fun sunday_N : N;
+fun sunday_PN : PN;
+fun sunder_N : N;
+fun sunder_V2 : V2;
+fun sunderland_PN : PN;
+fun sundial_N : N;
+fun sundown_N : N;
+fun sundowner_N : N;
+fun sundry_A : A;
+fun sunfish_N : N;
+fun sunflower_N : N;
+fun sunhat_N : N;
+fun sunlamp_N : N;
+fun sunless_A : A;
+fun sunlight_N : N;
+fun sunlit_A : A;
+fun sunnily_Adv : Adv;
+fun sunny_A : A;
+fun sunray_A : A;
+fun sunrise_N : N;
+fun sunroof_N : N;
+fun sunset_N : N;
+fun sunshade_N : N;
+fun sunshine_N : N;
+fun sunshine_roof_N : N;
+fun sunspot_N : N;
+fun sunstroke_N : N;
+fun suntan_N : N;
+fun suntrap_N : N;
+fun sup_N : N;
+fun sup_V : V;
+fun sup_V2 : V2;
+fun super_A : A;
+fun super_N : N;
+fun superabundance_N : N;
+fun superabundant_A : A;
+fun superannuate_V2 : V2;
+fun superannuated_A : A;
+fun superannuation_N : N;
+fun superb_A : A;
+fun supercargo_N : N;
+fun supercharged_A : A;
+fun supercharger_N : N;
+fun supercilious_A : A;
+fun superciliousness_N : N;
+fun superego_N : N;
+fun supererogation_N : N;
+fun superfatted_A : A;
+fun superficial_A : A;
+fun superficiality_N : N;
+fun superficies_N : N;
+fun superfine_A : A;
+fun superfluity_N : N;
+fun superfluous_A : A;
+fun superhuman_A : A;
+fun superimpose_V2 : V2;
+fun superintend_V : V;
+fun superintend_V2 : V2;
+fun superintendence_N : N;
+fun superintendent_N : N;
+fun superior_A : A;
+fun superior_N : N;
+fun superiority_N : N;
+fun superlative_A : A;
+fun superlative_N : N;
+fun superman_N : N;
+fun supermarket_N : N;
+fun supernal_A : A;
+fun supernatural_A : A;
+fun supernormal_A : A;
+fun supernumerary_N : N;
+fun superscription_N : N;
+fun supersede_V2 : V2;
+fun supersession_N : N;
+fun supersonic_A : A;
+fun superstition_N : N;
+fun superstitious_A : A;
+fun superstructure_N : N;
+fun supertax_N : N;
+fun supervene_V : V;
+fun supervise_V : V;
+fun supervise_V2 : V2;
+fun supervision_N : N;
+fun supervisor_N : N;
+fun supervisory_A : A;
+fun supine_A : A;
+fun supper_N : N;
+fun supperless_A : A;
+fun supplant_V2 : V2;
+fun supplanter_N : N;
+fun supple_A : A;
+fun supplement_N : N;
+fun supplement_V2 : V2;
+fun supplementary_A : A;
+fun suppleness_N : N;
+fun suppliant_A : A;
+fun suppliant_N : N;
+fun supplicant_N : N;
+fun supplicate_V : V;
+fun supplicate_V2 : V2;
+fun supplication_N : N;
+fun supplier_N : N;
+fun supply_N : N;
+fun supply_V2 : V2;
+fun support_N : N;
+fun support_V2 : V2;
+fun supportable_A : A;
+fun supporter_N : N;
+fun suppose_V2 : V2;
+fun supposed_A : A;
+fun supposition_N : N;
+fun suppository_N : N;
+fun suppress_V2 : V2;
+fun suppression_N : N;
+fun suppressive_A : A;
+fun suppressor_N : N;
+fun suppurate_V : V;
+fun suppuration_N : N;
+fun supra_Adv : Adv;
+fun supranational_A : A;
+fun supremacy_N : N;
+fun supreme_A : A;
+fun supt_PN : PN;
+fun surabaja_PN : PN;
+fun surcharge_N : N;
+fun surcharge_V2 : V2;
+fun surd_N : N;
+fun sure_A : A;
+fun sure_Adv : Adv;
+fun sure_footed_A : A;
+fun sureness_N : N;
+fun surety_N : N;
+fun surf_N : N;
+fun surface_N : N;
+fun surface_V : V;
+fun surface_V2 : V2;
+fun surface_to_air_A : A;
+fun surfboard_N : N;
+fun surfboat_N : N;
+fun surfeit_N : N;
+fun surfeit_V2 : V2;
+fun surfing_N : N;
+fun surfriding_N : N;
+fun surge_N : N;
+fun surge_V : V;
+fun surgeon_N : N;
+fun surgery_N : N;
+fun surgical_A : A;
+fun surlily_Adv : Adv;
+fun surliness_N : N;
+fun surly_A : A;
+fun surmise_N : N;
+fun surmise_V : V;
+fun surmise_V2 : V2;
+fun surmount_V2 : V2;
+fun surmountable_A : A;
+fun surname_N : N;
+fun surpass_V2 : V2;
+fun surpassing_A : A;
+fun surplice_N : N;
+fun surpliced_A : A;
+fun surplus_N : N;
+fun surprise_N : N;
+fun surprise_V2 : V2;
+fun surprised_A : A;
+fun surprising_A : A;
+fun surrealism_N : N;
+fun surrealist_N : N;
+fun surrealistic_A : A;
+fun surrender_N : N;
+fun surrender_V : V;
+fun surrender_V2 : V2;
+fun surreptitious_A : A;
+fun surrey_PN : PN;
+fun surrogate_A : A;
+fun surrogate_N : N;
+fun surround_N : N;
+fun surround_V2 : V2;
+fun surrounding_A : A;
+fun surtax_N : N;
+fun surtax_V2 : V2;
+fun surveillance_N : N;
+fun survey_N : N;
+fun survey_V2 : V2;
+fun surveying_N : N;
+fun surveyor_N : N;
+fun survival_N : N;
+fun survive_V : V;
+fun survive_V2 : V2;
+fun survivor_N : N;
+fun susan_PN : PN;
+fun susanna_PN : PN;
+fun susceptibility_N : N;
+fun susceptible_A : A;
+fun susie_PN : PN;
+fun suspect_A : A;
+fun suspect_N : N;
+fun suspect_V2 : V2;
+fun suspend_V2 : V2;
+fun suspender_N : N;
+fun suspense_N : N;
+fun suspension_N : N;
+fun suspicion_N : N;
+fun suspicious_A : A;
+fun suss_V2 : V2;
+fun sussex_PN : PN;
+fun sustain_V2 : V2;
+fun sustenance_N : N;
+fun suttee_N : N;
+fun sutton_PN : PN;
+fun sutton_at_hone_PN : PN;
+fun sutton_coldfield_PN : PN;
+fun sutton_in_ashfield_PN : PN;
+fun suture_N : N;
+fun suzanne_PN : PN;
+fun suzerain_N : N;
+fun suzerainty_N : N;
+fun svelte_A : A;
+fun sverdlovsk_PN : PN;
+fun swab_N : N;
+fun swab_V2 : V2;
+fun swaddle_V2 : V2;
+fun swadlincote_PN : PN;
+fun swag_N : N;
+fun swagger_A : A;
+fun swagger_N : N;
+fun swagger_V : V;
+fun swaggerer_N : N;
+fun swahili_N : N;
+fun swain_N : N;
+fun swallow_N : N;
+fun swallow_V : V;
+fun swallow_V2 : V2;
+fun swallow_tailed_A : A;
+fun swami_N : N;
+fun swamp_N : N;
+fun swamp_V2 : V2;
+fun swampy_A : A;
+fun swan's_down_N : N;
+fun swan_N : N;
+fun swan_V : V;
+fun swan_song_N : N;
+fun swanage_PN : PN;
+fun swank_N : N;
+fun swank_V : V;
+fun swanky_A : A;
+fun swanley_PN : PN;
+fun swansea_PN : PN;
+fun swap_N : N;
+fun swap_V : V;
+fun swap_V2 : V2;
+fun sward_N : N;
+fun swarm_N : N;
+fun swarm_V : V;
+fun swarm_V2 : V2;
+fun swarthy_A : A;
+fun swashbuckler_N : N;
+fun swashbuckling_A : A;
+fun swashbuckling_N : N;
+fun swastika_N : N;
+fun swat_N : N;
+fun swat_V2 : V2;
+fun swath_N : N;
+fun swathe_N : N;
+fun swathe_V2 : V2;
+fun sway_N : N;
+fun sway_V : V;
+fun sway_V2 : V2;
+fun swazi_A : A;
+fun swazi_N : N;
+fun swaziland_PN : PN;
+fun swear_V : V;
+fun swear_V2 : V2;
+fun swearer_N : N;
+fun swearing_N : N;
+fun swearword_N : N;
+fun sweat_N : N;
+fun sweat_V : V;
+fun sweat_V2 : V2;
+fun sweatband_N : N;
+fun sweater_N : N;
+fun sweatshop_N : N;
+fun sweaty_A : A;
+fun swede_A : A;
+fun swede_N : N;
+fun sweden_PN : PN;
+fun swedish_A : A;
+fun swedish_N : N;
+fun sweep_N : N;
+fun sweep_V : V;
+fun sweep_V2 : V2;
+fun sweeper_N : N;
+fun sweeping_A : A;
+fun sweeping_N : N;
+fun sweet_A : A;
+fun sweet_N : N;
+fun sweet_scented_A : A;
+fun sweetbread_N : N;
+fun sweetbriar_N : N;
+fun sweetbrier_N : N;
+fun sweeten_V : V;
+fun sweeten_V2 : V2;
+fun sweetening_N : N;
+fun sweetheart_N : N;
+fun sweetie_N : N;
+fun sweetish_A : A;
+fun sweetmeat_N : N;
+fun sweetness_N : N;
+fun swell_A : A;
+fun swell_N : N;
+fun swell_V : V;
+fun swell_V2 : V2;
+fun swelling_N : N;
+fun swelter_V : V;
+fun sweptback_A : A;
+fun swerve_N : N;
+fun swerve_V : V;
+fun swerve_V2 : V2;
+fun swift_A : A;
+fun swift_N : N;
+fun swiftness_N : N;
+fun swig_N : N;
+fun swig_V : V;
+fun swig_V2 : V2;
+fun swill_N : N;
+fun swill_V : V;
+fun swill_V2 : V2;
+fun swim_N : N;
+fun swim_V : V;
+fun swim_V2 : V2;
+fun swimmer_N : N;
+fun swimming_N : N;
+fun swimming_bath_N : N;
+fun swimming_costume_N : N;
+fun swimming_pool_N : N;
+fun swimmingly_Adv : Adv;
+fun swimsuit_N : N;
+fun swindle_N : N;
+fun swindle_V : V;
+fun swindle_V2 : V2;
+fun swindler_N : N;
+fun swindon_PN : PN;
+fun swine_N : N;
+fun swineherd_N : N;
+fun swing_N : N;
+fun swing_V : V;
+fun swing_V2 : V2;
+fun swinge_V2 : V2;
+fun swingeing_A : A;
+fun swinging_A : A;
+fun swinish_A : A;
+fun swinton_PN : PN;
+fun swipe_N : N;
+fun swipe_V2 : V2;
+fun swirl_N : N;
+fun swirl_V : V;
+fun swirl_V2 : V2;
+fun swish_A : A;
+fun swish_N : N;
+fun swish_V : V;
+fun swish_V2 : V2;
+fun swiss_A : A;
+fun swiss_N : N;
+fun switch_N : N;
+fun switch_V : V;
+fun switch_V2 : V2;
+fun switchboard_N : N;
+fun switchman_N : N;
+fun switzerland_PN : PN;
+fun swivel_N : N;
+fun swivel_V : V;
+fun swivel_V2 : V2;
+fun swiz_N : N;
+fun swizzle_N : N;
+fun swizzle_stick_N : N;
+fun swob_N : N;
+fun swob_V2 : V2;
+fun swollen_headed_A : A;
+fun swoon_N : N;
+fun swoon_V : V;
+fun swoop_N : N;
+fun swoop_V : V;
+fun swoop_V2 : V2;
+fun swop_N : N;
+fun swop_V : V;
+fun swop_V2 : V2;
+fun sword_N : N;
+fun sword_cane_N : N;
+fun sword_cut_N : N;
+fun sword_dance_N : N;
+fun swordfish_N : N;
+fun swordplay_N : N;
+fun swordsman_N : N;
+fun swordsmanship_N : N;
+fun swordstick_N : N;
+fun sworn_A : A;
+fun swot_N : N;
+fun swot_V : V;
+fun swot_V2 : V2;
+fun sybarite_N : N;
+fun sybaritic_A : A;
+fun sycamore_N : N;
+fun sycophancy_N : N;
+fun sycophant_N : N;
+fun sycophantic_A : A;
+fun sydney_PN : PN;
+fun syllabary_N : N;
+fun syllabic_A : A;
+fun syllabicate_V2 : V2;
+fun syllabication_N : N;
+fun syllabification_N : N;
+fun syllabify_V2 : V2;
+fun syllabize_V2 : V2;
+fun syllable_N : N;
+fun syllabled_A : A;
+fun syllabus_N : N;
+fun syllogism_N : N;
+fun syllogistic_A : A;
+fun sylph_N : N;
+fun sylph_like_A : A;
+fun sylvan_A : A;
+fun sylvia_PN : PN;
+fun symbiosis_N : N;
+fun symbol_N : N;
+fun symbolic_A : A;
+fun symbolical_A : A;
+fun symbolism_N : N;
+fun symbolization_N : N;
+fun symbolize_V2 : V2;
+fun symmetric_A : A;
+fun symmetrical_A : A;
+fun symmetry_N : N;
+fun sympathetic_A : A;
+fun sympathetically_Adv : Adv;
+fun sympathize_V : V;
+fun sympathizer_N : N;
+fun sympathy_N : N;
+fun symphonic_A : A;
+fun symphony_N : N;
+fun symposium_N : N;
+fun symptom_N : N;
+fun symptomatic_A : A;
+fun symptomatically_Adv : Adv;
+fun symptomless_A : A;
+fun synagogue_N : N;
+fun synchroflash_N : N;
+fun synchromesh_N : N;
+fun synchronization_N : N;
+fun synchronize_V : V;
+fun synchronize_V2 : V2;
+fun synchronous_A : A;
+fun synchrony_N : N;
+fun synchrotron_N : N;
+fun syncopate_V2 : V2;
+fun syncopation_N : N;
+fun syncope_N : N;
+fun syndic_N : N;
+fun syndicalism_N : N;
+fun syndicalist_N : N;
+fun syndicate_N : N;
+fun syndicate_V2 : V2;
+fun syndication_N : N;
+fun syndrome_N : N;
+fun synod_N : N;
+fun synonym_N : N;
+fun synonymous_A : A;
+fun synopsis_N : N;
+fun synoptic_A : A;
+fun synoptically_Adv : Adv;
+fun syntactic_A : A;
+fun syntactically_Adv : Adv;
+fun syntax_N : N;
+fun synthesis_N : N;
+fun synthesize_V2 : V2;
+fun synthetic_A : A;
+fun synthetic_N : N;
+fun synthetically_Adv : Adv;
+fun syphilis_N : N;
+fun syphilitic_A : A;
+fun syphilitic_N : N;
+fun syphon_N : N;
+fun syphon_V : V;
+fun syphon_V2 : V2;
+fun syracuse_PN : PN;
+fun syria_PN : PN;
+fun syrian_A : A;
+fun syrian_N : N;
+fun syringa_N : N;
+fun syringe_N : N;
+fun syringe_V2 : V2;
+fun syrup_N : N;
+fun syrupy_A : A;
+fun system_N : N;
+fun systematic_A : A;
+fun systematically_Adv : Adv;
+fun systematization_N : N;
+fun systematize_V2 : V2;
+fun syston_PN : PN;
+fun seance_N : N;
+fun t_junction_N : N;
+fun t_shirt_N : N;
+fun t_square_N : N;
+fun tab_N : N;
+fun tabard_N : N;
+fun tabby_A : A;
+fun tabby_N : N;
+fun tabby_cat_N : N;
+fun tabernacle_N : N;
+fun table_N : N;
+fun table_V2 : V2;
+fun table_d'hote_A : A;
+fun table_d'hote_Adv : Adv;
+fun table_knife_N : N;
+fun table_lifting_N : N;
+fun table_linen_N : N;
+fun table_rapping_N : N;
+fun table_talk_N : N;
+fun table_turning_N : N;
+fun tableau_N : N;
+fun tableau_vivant_N : N;
+fun tablecloth_N : N;
+fun tablemat_N : N;
+fun tablespoon_N : N;
+fun tablespoonful_N : N;
+fun tablet_N : N;
+fun tableware_N : N;
+fun tabloid_N : N;
+fun taboo_A : A;
+fun taboo_N : N;
+fun taboo_V2 : V2;
+fun tabor_N : N;
+fun tabular_A : A;
+fun tabulate_V2 : V2;
+fun tabulation_N : N;
+fun tabulator_N : N;
+fun tachograph_N : N;
+fun tacit_A : A;
+fun taciturn_A : A;
+fun taciturnity_N : N;
+fun tack_N : N;
+fun tack_V : V;
+fun tack_V2 : V2;
+fun tackle_N : N;
+fun tackle_V : V;
+fun tackle_V2 : V2;
+fun tacky_A : A;
+fun tact_N : N;
+fun tactful_A : A;
+fun tactic_N : N;
+fun tactical_A : A;
+fun tactician_N : N;
+fun tactile_A : A;
+fun tactless_A : A;
+fun tactlessness_N : N;
+fun tactual_A : A;
+fun tadley_PN : PN;
+fun tadpole_N : N;
+fun taegu_PN : PN;
+fun taffeta_N : N;
+fun taffrail_N : N;
+fun taffy_N : N;
+fun tag_N : N;
+fun tag_V : V;
+fun tag_V2 : V2;
+fun tahiti_PN : PN;
+fun tahitian_A : A;
+fun tahitian_N : N;
+fun tail_N : N;
+fun tail_V : V;
+fun tail_V2 : V2;
+fun tail_coat_N : N;
+fun tail_end_N : N;
+fun tail_light_N : N;
+fun tailboard_N : N;
+fun tailed_A : A;
+fun tailgate_N : N;
+fun tailless_A : A;
+fun tailor_N : N;
+fun tailor_V2 : V2;
+fun tailor_made_A : A;
+fun tailpiece_N : N;
+fun tailplane_N : N;
+fun tailspin_N : N;
+fun taint_N : N;
+fun taint_V : V;
+fun taint_V2 : V2;
+fun taintless_A : A;
+fun taipei_PN : PN;
+fun taiwan_PN : PN;
+fun taiwanese_A : A;
+fun taiwanese_N : N;
+fun taiyuan_PN : PN;
+fun take_N : N;
+fun take_V : V;
+fun take_V2 : V2;
+fun take_home_A : A;
+fun take_off_N : N;
+fun take_up_N : N;
+fun takeaway_A : A;
+fun takeover_N : N;
+fun taker_N : N;
+fun taking_A : A;
+fun talc_N : N;
+fun talcum_N : N;
+fun tale_N : N;
+fun tale_bearer_N : N;
+fun tale_teller_N : N;
+fun talent_N : N;
+fun talented_A : A;
+fun talisman_N : N;
+fun talk_N : N;
+fun talk_V : V;
+fun talk_V2 : V2;
+fun talkative_A : A;
+fun talker_N : N;
+fun talkie_N : N;
+fun talking_point_N : N;
+fun talking_to_N : N;
+fun tall_A : A;
+fun tallboy_N : N;
+fun tallish_A : A;
+fun tallow_N : N;
+fun tally_N : N;
+fun tally_V : V;
+fun tally_clerk_N : N;
+fun tallyman_N : N;
+fun talmud_N : N;
+fun talon_N : N;
+fun talus_N : N;
+fun tam_o'_shanter_N : N;
+fun tamable_A : A;
+fun tamale_N : N;
+fun tamarind_N : N;
+fun tamarisk_N : N;
+fun tambour_N : N;
+fun tambourine_N : N;
+fun tame_A : A;
+fun tame_V2 : V2;
+fun tameness_N : N;
+fun tamer_N : N;
+fun tamil_A : A;
+fun tamil_N : N;
+fun tammany_N : N;
+fun tammy_N : N;
+fun tamp_V2 : V2;
+fun tamper_V : V;
+fun tampere_PN : PN;
+fun tamworth_PN : PN;
+fun tan_A : A;
+fun tan_N : N;
+fun tan_V : V;
+fun tan_V2 : V2;
+fun tandem_Adv : Adv;
+fun tandem_N : N;
+fun tang_N : N;
+fun tangent_N : N;
+fun tangerine_A : A;
+fun tangerine_N : N;
+fun tangibility_N : N;
+fun tangible_A : A;
+fun tangle_N : N;
+fun tangle_V : V;
+fun tangle_V2 : V2;
+fun tango_N : N;
+fun tangshan_PN : PN;
+fun tangy_A : A;
+fun tank_N : N;
+fun tank_V : V;
+fun tank_car_N : N;
+fun tankard_N : N;
+fun tanker_N : N;
+fun tanner_N : N;
+fun tannery_N : N;
+fun tannic_A : A;
+fun tannin_N : N;
+fun tannoy_N : N;
+fun tansy_N : N;
+fun tantalize_V2 : V2;
+fun tantamount_A : A;
+fun tantrum_N : N;
+fun tanzania_PN : PN;
+fun tanzanian_A : A;
+fun tanzanian_N : N;
+fun tap_N : N;
+fun tap_V : V;
+fun tap_V2 : V2;
+fun tap_dancing_N : N;
+fun tape_N : N;
+fun tape_V2 : V2;
+fun tape_measure_N : N;
+fun tape_recorder_N : N;
+fun taper_N : N;
+fun taper_V : V;
+fun taper_V2 : V2;
+fun tapestried_A : A;
+fun tapestry_N : N;
+fun tapeworm_N : N;
+fun tapioca_N : N;
+fun tapir_N : N;
+fun taproom_N : N;
+fun taproot_N : N;
+fun tapster_N : N;
+fun tar_N : N;
+fun tar_V2 : V2;
+fun tar_macadam_N : N;
+fun taradiddle_N : N;
+fun taranaki_PN : PN;
+fun tarantella_N : N;
+fun tarantelle_N : N;
+fun taranto_PN : PN;
+fun tarantula_N : N;
+fun tarboosh_N : N;
+fun tardily_Adv : Adv;
+fun tardiness_N : N;
+fun tardy_A : A;
+fun tare_N : N;
+fun target_N : N;
+fun tariff_N : N;
+fun tarmac_N : N;
+fun tarmac_V2 : V2;
+fun tarn_N : N;
+fun tarnish_N : N;
+fun tarnish_V : V;
+fun tarnish_V2 : V2;
+fun taro_N : N;
+fun tarpaulin_N : N;
+fun tarpon_N : N;
+fun tarradiddle_N : N;
+fun tarragon_N : N;
+fun tarrasa_PN : PN;
+fun tarry_A : A;
+fun tarry_V : V;
+fun tarsal_A : A;
+fun tarsal_N : N;
+fun tarsus_N : N;
+fun tart_A : A;
+fun tart_N : N;
+fun tart_V2 : V2;
+fun tartan_N : N;
+fun tartar_N : N;
+fun tartaric_A : A;
+fun tartness_N : N;
+fun tashkent_PN : PN;
+fun task_N : N;
+fun task_V2 : V2;
+fun task_force_N : N;
+fun taskmaster_N : N;
+fun tasmania_PN : PN;
+fun tassel_N : N;
+fun tasseled_A : A;
+fun tasselled_A : A;
+fun taste_N : N;
+fun taste_V : V;
+fun taste_V2 : V2;
+fun tasteful_A : A;
+fun tasteless_A : A;
+fun taster_N : N;
+fun tastily_Adv : Adv;
+fun tasty_A : A;
+fun tat_N : N;
+fun tat_V : V;
+fun tat_V2 : V2;
+fun tatter_N : N;
+fun tatterdemalion_N : N;
+fun tattered_A : A;
+fun tattily_Adv : Adv;
+fun tatting_N : N;
+fun tattle_N : N;
+fun tattle_V : V;
+fun tattle_V2 : V2;
+fun tattler_N : N;
+fun tattoo_N : N;
+fun tattoo_V2 : V2;
+fun tatty_A : A;
+fun taunt_N : N;
+fun taunt_V2 : V2;
+fun tauntingly_Adv : Adv;
+fun taunton_PN : PN;
+fun taurus_PN : PN;
+fun taut_A : A;
+fun tautness_N : N;
+fun tautological_A : A;
+fun tautology_N : N;
+fun taverham_PN : PN;
+fun tavern_N : N;
+fun tavistock_PN : PN;
+fun tawdrily_Adv : Adv;
+fun tawdriness_N : N;
+fun tawdry_A : A;
+fun tawny_A : A;
+fun tawse_N : N;
+fun tax_N : N;
+fun tax_V2 : V2;
+fun tax_collector_N : N;
+fun tax_free_A : A;
+fun taxability_N : N;
+fun taxable_A : A;
+fun taxation_N : N;
+fun taxi_N : N;
+fun taxi_V : V;
+fun taxi_V2 : V2;
+fun taxicab_N : N;
+fun taxidermist_N : N;
+fun taxidermy_N : N;
+fun taximeter_N : N;
+fun taxonomy_N : N;
+fun taxpayer_N : N;
+fun tayside_PN : PN;
+fun tb_N : N;
+fun tbilisi_PN : PN;
+fun te_deum_N : N;
+fun tea_N : N;
+fun tea_bag_N : N;
+fun tea_break_N : N;
+fun tea_caddy_N : N;
+fun tea_chest_N : N;
+fun tea_cloth_N : N;
+fun tea_cosy_N : N;
+fun tea_garden_N : N;
+fun tea_kettle_N : N;
+fun tea_leaf_N : N;
+fun tea_party_N : N;
+fun tea_service_N : N;
+fun tea_set_N : N;
+fun tea_strainer_N : N;
+fun tea_table_N : N;
+fun tea_time_N : N;
+fun tea_towel_N : N;
+fun tea_tray_N : N;
+fun tea_trolley_N : N;
+fun tea_urn_N : N;
+fun tea_wagon_N : N;
+fun teacake_N : N;
+fun teach_V : V;
+fun teach_V2 : V2;
+fun teach_in_N : N;
+fun teachable_A : A;
+fun teacher_N : N;
+fun teaching_N : N;
+fun teacup_N : N;
+fun teahouse_N : N;
+fun teak_N : N;
+fun teal_N : N;
+fun team_N : N;
+fun team_V : V;
+fun teamster_N : N;
+fun teamwork_N : N;
+fun teapot_N : N;
+fun tear_N : N;
+fun tear_V : V;
+fun tear_V2 : V2;
+fun tear_drop_N : N;
+fun tear_gas_N : N;
+fun tearaway_A : A;
+fun tearaway_N : N;
+fun tearful_A : A;
+fun tearing_A : A;
+fun tearing_N : N;
+fun tearless_A : A;
+fun tearoom_N : N;
+fun tease_N : N;
+fun tease_V2 : V2;
+fun teasel_N : N;
+fun teaser_N : N;
+fun teashop_N : N;
+fun teasingly_Adv : Adv;
+fun teaspoon_N : N;
+fun teaspoonful_N : N;
+fun teat_N : N;
+fun teazel_N : N;
+fun teazle_N : N;
+fun tec_N : N;
+fun tech_N : N;
+fun technical_A : A;
+fun technicality_N : N;
+fun technician_N : N;
+fun technicolor_N : N;
+fun technique_N : N;
+fun technocracy_N : N;
+fun technocrat_N : N;
+fun technological_A : A;
+fun technologist_N : N;
+fun technology_N : N;
+fun techy_A : A;
+fun ted_N : N;
+fun ted_PN : PN;
+fun teddy_N : N;
+fun teddy_PN : PN;
+fun teddy_boy_N : N;
+fun tedious_A : A;
+fun tediousness_N : N;
+fun tedium_N : N;
+fun tee_N : N;
+fun tee_V : V;
+fun tee_V2 : V2;
+fun tee_shirt_N : N;
+fun teem_V : V;
+fun teenage_A : A;
+fun teenager_N : N;
+fun teeny_A : A;
+fun teesside_PN : PN;
+fun teeter_V : V;
+fun teethe_V : V;
+fun teetotal_A : A;
+fun teetotaller_N : N;
+fun teetotum_N : N;
+fun teg_N : N;
+fun tegument_N : N;
+fun teheran_PN : PN;
+fun teignmouth_PN : PN;
+fun tel_PN : PN;
+fun tel_aviv_PN : PN;
+fun telecast_N : N;
+fun telecast_V2 : V2;
+fun telecommunication_N : N;
+fun telegram_N : N;
+fun telegraph_N : N;
+fun telegraph_V : V;
+fun telegraph_V2 : V2;
+fun telegraph_line_N : N;
+fun telegraph_pole_N : N;
+fun telegraph_post_N : N;
+fun telegraph_wire_N : N;
+fun telegrapher_N : N;
+fun telegraphese_N : N;
+fun telegraphic_A : A;
+fun telegraphically_Adv : Adv;
+fun telegraphist_N : N;
+fun telegraphy_N : N;
+fun telemetry_N : N;
+fun teleological_A : A;
+fun teleologist_N : N;
+fun teleology_N : N;
+fun telepathic_A : A;
+fun telepathist_N : N;
+fun telepathy_N : N;
+fun telephone_N : N;
+fun telephone_V : V;
+fun telephone_V2 : V2;
+fun telephonic_A : A;
+fun telephonist_N : N;
+fun telephony_N : N;
+fun telephoto_N : N;
+fun telephotograph_N : N;
+fun telephotography_N : N;
+fun teleprinter_N : N;
+fun teleprompter_N : N;
+fun telescope_N : N;
+fun telescope_V : V;
+fun telescope_V2 : V2;
+fun telescopic_A : A;
+fun telescopically_Adv : Adv;
+fun teletypewriter_N : N;
+fun televise_V2 : V2;
+fun television_N : N;
+fun telex_N : N;
+fun telfer_N : N;
+fun telford_PN : PN;
+fun tell_V : V;
+fun tell_V2 : V2;
+fun teller_N : N;
+fun telling_A : A;
+fun telltale_N : N;
+fun telly_N : N;
+fun telpher_N : N;
+fun telstar_PN : PN;
+fun temerity_N : N;
+fun temp_N : N;
+fun temper_N : N;
+fun temper_V : V;
+fun temper_V2 : V2;
+fun tempera_N : N;
+fun temperament_N : N;
+fun temperamental_A : A;
+fun temperance_N : N;
+fun temperate_A : A;
+fun temperateness_N : N;
+fun temperature_N : N;
+fun tempered_A : A;
+fun tempest_N : N;
+fun tempest_swept_A : A;
+fun tempest_tossed_A : A;
+fun tempestuous_A : A;
+fun template_N : N;
+fun temple_N : N;
+fun templet_N : N;
+fun tempo_N : N;
+fun temporal_A : A;
+fun temporality_N : N;
+fun temporalty_N : N;
+fun temporariness_N : N;
+fun temporary_A : A;
+fun temporize_V : V;
+fun tempt_V2 : V2;
+fun temptation_N : N;
+fun tempter_N : N;
+fun temptingly_Adv : Adv;
+fun temptress_N : N;
+fun tenability_N : N;
+fun tenable_A : A;
+fun tenacious_A : A;
+fun tenaciousness_N : N;
+fun tenacity_N : N;
+fun tenancy_N : N;
+fun tenant_N : N;
+fun tenant_V2 : V2;
+fun tenantry_N : N;
+fun tenby_PN : PN;
+fun tench_N : N;
+fun tend_V : V;
+fun tend_V2 : V2;
+fun tendency_N : N;
+fun tendentious_A : A;
+fun tendentiousness_N : N;
+fun tender_A : A;
+fun tender_N : N;
+fun tender_V : V;
+fun tender_V2 : V2;
+fun tenderfoot_N : N;
+fun tenderhearted_A : A;
+fun tenderloin_N : N;
+fun tenderness_N : N;
+fun tendon_N : N;
+fun tendril_N : N;
+fun tenement_N : N;
+fun tenement_house_N : N;
+fun tenet_N : N;
+fun tenfold_Adv : Adv;
+fun tenner_N : N;
+fun tennessee_PN : PN;
+fun tennis_N : N;
+fun tennis_court_N : N;
+fun tennis_elbow_N : N;
+fun tenon_N : N;
+fun tenor_N : N;
+fun tenpence_N : N;
+fun tenpin_N : N;
+fun tense_A : A;
+fun tense_N : N;
+fun tense_V : V;
+fun tense_V2 : V2;
+fun tenseness_N : N;
+fun tensile_A : A;
+fun tension_N : N;
+fun tensity_N : N;
+fun tent_N : N;
+fun tent_peg_N : N;
+fun tentacle_N : N;
+fun tentative_A : A;
+fun tenterden_PN : PN;
+fun tenth_A : A;
+fun tenth_N : N;
+fun tenuity_N : N;
+fun tenuous_A : A;
+fun tenure_N : N;
+fun tepee_N : N;
+fun tepid_A : A;
+fun tepidity_N : N;
+fun tepidness_N : N;
+fun tercentenary_N : N;
+fun tercentennial_N : N;
+fun terence_PN : PN;
+fun teresa_PN : PN;
+fun tergiversate_V : V;
+fun tergiversation_N : N;
+fun term_N : N;
+fun term_V2 : V2;
+fun termagant_N : N;
+fun termi_PN : PN;
+fun terminable_A : A;
+fun terminal_A : A;
+fun terminal_N : N;
+fun terminate_V : V;
+fun terminate_V2 : V2;
+fun termination_N : N;
+fun terminological_A : A;
+fun terminology_N : N;
+fun terminus_N : N;
+fun termite_N : N;
+fun tern_N : N;
+fun terpsichorean_A : A;
+fun terr_PN : PN;
+fun terra_cotta_N : N;
+fun terra_firma_N : N;
+fun terra_incognita_N : N;
+fun terrace_N : N;
+fun terrace_V2 : V2;
+fun terrain_N : N;
+fun terrapin_N : N;
+fun terrestrial_A : A;
+fun terrible_A : A;
+fun terrier_N : N;
+fun terrific_A : A;
+fun terrifically_Adv : Adv;
+fun terrify_V2 : V2;
+fun territorial_A : A;
+fun territorial_N : N;
+fun territory_N : N;
+fun terror_N : N;
+fun terror_stricken_A : A;
+fun terror_struck_A : A;
+fun terrorism_N : N;
+fun terrorist_N : N;
+fun terrorize_V2 : V2;
+fun terry_PN : PN;
+fun terse_A : A;
+fun terseness_N : N;
+fun tertian_A : A;
+fun tertiary_A : A;
+fun terylene_N : N;
+fun tess_PN : PN;
+fun tessa_PN : PN;
+fun tessellated_A : A;
+fun test_N : N;
+fun test_V2 : V2;
+fun test_drive_N : N;
+fun test_drive_V2 : V2;
+fun test_tube_N : N;
+fun testament_N : N;
+fun testamentary_A : A;
+fun testate_A : A;
+fun testate_N : N;
+fun testator_N : N;
+fun testatrix_N : N;
+fun testbed_N : N;
+fun testicle_N : N;
+fun testify_V : V;
+fun testify_V2 : V2;
+fun testily_Adv : Adv;
+fun testimonial_N : N;
+fun testimony_N : N;
+fun testiness_N : N;
+fun testis_N : N;
+fun testy_A : A;
+fun tetanus_N : N;
+fun tetchily_Adv : Adv;
+fun tetchiness_N : N;
+fun tetchy_A : A;
+fun tether_N : N;
+fun tether_V2 : V2;
+fun teuton_N : N;
+fun teutonic_A : A;
+fun tewkesbury_PN : PN;
+fun texan_A : A;
+fun texan_N : N;
+fun texas_PN : PN;
+fun text_N : N;
+fun textbook_N : N;
+fun textile_A : A;
+fun textile_N : N;
+fun textual_A : A;
+fun texture_N : N;
+fun textured_A : A;
+fun thai_A : A;
+fun thai_N : N;
+fun thailand_PN : PN;
+fun thalidomide_N : N;
+fun thame_PN : PN;
+fun thane_N : N;
+fun thank_V2 : V2;
+fun thank_offering_N : N;
+fun thankful_A : A;
+fun thankfulness_N : N;
+fun thankless_A : A;
+fun thanksgiving_N : N;
+fun thatch_N : N;
+fun thatch_V2 : V2;
+fun thatcham_PN : PN;
+fun thatcher_N : N;
+fun thaw_N : N;
+fun thaw_V : V;
+fun thaw_V2 : V2;
+fun theatre_N : N;
+fun theatregoer_N : N;
+fun theatrical_A : A;
+fun theatrical_N : N;
+fun theft_N : N;
+fun theism_N : N;
+fun theist_N : N;
+fun theistic_A : A;
+fun theistical_A : A;
+fun thematic_A : A;
+fun theme_N : N;
+fun then_Adv : Adv;
+fun thence_Adv : Adv;
+fun thenceforth_Adv : Adv;
+fun thenceforward_Adv : Adv;
+fun theo_PN : PN;
+fun theocracy_N : N;
+fun theocratic_A : A;
+fun theodolite_N : N;
+fun theodore_PN : PN;
+fun theologian_N : N;
+fun theological_A : A;
+fun theology_N : N;
+fun theorem_N : N;
+fun theoretic_A : A;
+fun theoretical_A : A;
+fun theoretician_N : N;
+fun theorist_N : N;
+fun theorize_V : V;
+fun theory_N : N;
+fun theosophical_A : A;
+fun theosophist_N : N;
+fun theosophy_N : N;
+fun therapeutic_A : A;
+fun therapeutical_A : A;
+fun therapeutics_N : N;
+fun therapist_N : N;
+fun therapy_N : N;
+fun thereabout_Adv : Adv;
+fun thereabouts_Adv : Adv;
+fun thereafter_Adv : Adv;
+fun thereby_Adv : Adv;
+fun therefore_Adv : Adv;
+fun therefrom_Adv : Adv;
+fun therein_Adv : Adv;
+fun thereinafter_Adv : Adv;
+fun thereof_Adv : Adv;
+fun thereon_Adv : Adv;
+fun theresa_PN : PN;
+fun thereto_Adv : Adv;
+fun thereunder_Adv : Adv;
+fun thereupon_Adv : Adv;
+fun therewith_Adv : Adv;
+fun therewithal_Adv : Adv;
+fun therm_N : N;
+fun thermal_A : A;
+fun thermal_N : N;
+fun thermionic_A : A;
+fun thermodynamics_N : N;
+fun thermometer_N : N;
+fun thermonuclear_A : A;
+fun thermoplastic_A : A;
+fun thermoplastic_N : N;
+fun thermos_N : N;
+fun thermosetting_A : A;
+fun thermostat_N : N;
+fun thermostatic_A : A;
+fun thermostatically_Adv : Adv;
+fun thesaurus_N : N;
+fun thesis_N : N;
+fun thespian_A : A;
+fun thespian_N : N;
+fun thessaloniki_PN : PN;
+fun thetford_PN : PN;
+fun thick_A : A;
+fun thick_Adv : Adv;
+fun thick_N : N;
+fun thick_headed_A : A;
+fun thick_set_A : A;
+fun thick_skinned_A : A;
+fun thicken_V : V;
+fun thicken_V2 : V2;
+fun thickening_N : N;
+fun thicket_N : N;
+fun thickness_N : N;
+fun thief_N : N;
+fun thieve_V : V;
+fun thieve_V2 : V2;
+fun thievery_N : N;
+fun thievish_A : A;
+fun thigh_N : N;
+fun thighbone_N : N;
+fun thimble_N : N;
+fun thimbleful_N : N;
+fun thin_A : A;
+fun thin_Adv : Adv;
+fun thin_V : V;
+fun thin_V2 : V2;
+fun thin_skinned_A : A;
+fun thine_A : A;
+fun thing_N : N;
+fun thingmabob_N : N;
+fun thingmajig_N : N;
+fun thingumabob_N : N;
+fun thingumajig_N : N;
+fun thingummy_N : N;
+fun think_N : N;
+fun think_V : V;
+fun think_V2 : V2;
+fun think_tank_N : N;
+fun thinkable_A : A;
+fun thinker_N : N;
+fun thinking_A : A;
+fun thinking_N : N;
+fun thinness_N : N;
+fun thionville_PN : PN;
+fun third_rate_A : A;
+fun third_rater_N : N;
+fun thirsk_PN : PN;
+fun thirst_N : N;
+fun thirst_V2 : V2;
+fun thirstily_Adv : Adv;
+fun thirsty_A : A;
+fun thistle_N : N;
+fun thistledown_N : N;
+fun thither_Adv : Adv;
+fun tho'_Adv : Adv;
+fun thole_N : N;
+fun tholepin_N : N;
+fun thomas_PN : PN;
+fun thong_N : N;
+fun thorax_N : N;
+fun thorn_N : N;
+fun thornbury_PN : PN;
+fun thorne_PN : PN;
+fun thorny_A : A;
+fun thorough_A : A;
+fun thoroughbred_A : A;
+fun thoroughbred_N : N;
+fun thoroughfare_N : N;
+fun thoroughgoing_A : A;
+fun thoroughness_N : N;
+fun though_Adv : Adv;
+fun thought_N : N;
+fun thought_reader_N : N;
+fun thoughtful_A : A;
+fun thoughtfulness_N : N;
+fun thoughtless_A : A;
+fun thoughtlessness_N : N;
+fun thousandfold_A : A;
+fun thousandfold_Adv : Adv;
+fun thousandth_A : A;
+fun thousandth_N : N;
+fun thraldom_N : N;
+fun thrall_N : N;
+fun thrash_V : V;
+fun thrash_V2 : V2;
+fun thrashing_N : N;
+fun thread_N : N;
+fun thread_V2 : V2;
+fun threadbare_A : A;
+fun threadlike_A : A;
+fun threat_N : N;
+fun threaten_V : V;
+fun threaten_V2 : V2;
+fun threateningly_Adv : Adv;
+fun three_cornered_A : A;
+fun three_d_A : A;
+fun three_d_N : N;
+fun three_decker_N : N;
+fun three_dimensional_A : A;
+fun three_figure_A : A;
+fun three_funnelled_A : A;
+fun three_lane_A : A;
+fun three_legged_A : A;
+fun three_piece_A : A;
+fun three_ply_A : A;
+fun three_quarter_A : A;
+fun three_quarter_N : N;
+fun three_score_A : A;
+fun three_score_N : N;
+fun three_storey_A : A;
+fun three_storeyed_A : A;
+fun three_wheeled_A : A;
+fun threefold_A : A;
+fun threefold_Adv : Adv;
+fun threepence_N : N;
+fun threepenny_A : A;
+fun threesome_N : N;
+fun threnody_N : N;
+fun thresh_V : V;
+fun thresh_V2 : V2;
+fun thresher_N : N;
+fun threshing_floor_N : N;
+fun threshing_machine_N : N;
+fun threshold_N : N;
+fun thrice_Adv : Adv;
+fun thrift_N : N;
+fun thriftily_Adv : Adv;
+fun thriftless_A : A;
+fun thriftlessness_N : N;
+fun thrifty_A : A;
+fun thrill_N : N;
+fun thrill_V : V;
+fun thrill_V2 : V2;
+fun thriller_N : N;
+fun thrive_V : V;
+fun throat_N : N;
+fun throated_A : A;
+fun throaty_A : A;
+fun throb_N : N;
+fun throb_V : V;
+fun throbbing_A : A;
+fun throe_N : N;
+fun thrombosis_N : N;
+fun throne_N : N;
+fun throng_N : N;
+fun throng_V : V;
+fun throng_V2 : V2;
+fun throstle_N : N;
+fun throttle_N : N;
+fun throttle_V : V;
+fun throttle_V2 : V2;
+fun throttle_valve_N : N;
+fun through_Adv : Adv;
+fun throughout_Adv : Adv;
+fun throughput_N : N;
+fun throughway_N : N;
+fun throw_N : N;
+fun throw_V : V;
+fun throw_V2 : V2;
+fun throw_in_N : N;
+fun throwaway_N : N;
+fun throwback_N : N;
+fun thrum_V : V;
+fun thrum_V2 : V2;
+fun thrush_N : N;
+fun thrust_N : N;
+fun thrust_V : V;
+fun thrust_V2 : V2;
+fun thruster_N : N;
+fun thud_N : N;
+fun thud_V : V;
+fun thug_N : N;
+fun thuggery_N : N;
+fun thumb_N : N;
+fun thumb_V2 : V2;
+fun thumbnut_N : N;
+fun thumbscrew_N : N;
+fun thumbstall_N : N;
+fun thumbtack_N : N;
+fun thump_N : N;
+fun thump_V : V;
+fun thump_V2 : V2;
+fun thumping_A : A;
+fun thunder_N : N;
+fun thunder_V : V;
+fun thunder_V2 : V2;
+fun thunderbolt_N : N;
+fun thunderclap_N : N;
+fun thunderous_A : A;
+fun thunderstorm_N : N;
+fun thunderstruck_A : A;
+fun thundery_A : A;
+fun thurcroft_PN : PN;
+fun thurible_N : N;
+fun thurmaston_PN : PN;
+fun thurrock_PN : PN;
+fun thurs_PN : PN;
+fun thursday_N : N;
+fun thursday_PN : PN;
+fun thurso_PN : PN;
+fun thus_Adv : Adv;
+fun thwack_N : N;
+fun thwack_V2 : V2;
+fun thwart_N : N;
+fun thwart_V2 : V2;
+fun thy_A : A;
+fun thyme_N : N;
+fun thyroid_N : N;
+fun ti_N : N;
+fun tiara_N : N;
+fun tibet_PN : PN;
+fun tibetan_A : A;
+fun tibetan_N : N;
+fun tibia_N : N;
+fun tic_N : N;
+fun tick_N : N;
+fun tick_V : V;
+fun tick_V2 : V2;
+fun tick_tock_N : N;
+fun ticker_N : N;
+fun ticker_tape_N : N;
+fun ticket_N : N;
+fun ticket_V2 : V2;
+fun ticket_collector_N : N;
+fun ticking_N : N;
+fun tickle_V : V;
+fun tickle_V2 : V2;
+fun tickler_N : N;
+fun ticklish_A : A;
+fun tidal_A : A;
+fun tidbit_N : N;
+fun tiddler_N : N;
+fun tiddley_A : A;
+fun tiddlywinks_N : N;
+fun tide_N : N;
+fun tide_V2 : V2;
+fun tidemark_N : N;
+fun tideway_N : N;
+fun tidily_Adv : Adv;
+fun tidiness_N : N;
+fun tidworth_PN : PN;
+fun tidy_A : A;
+fun tidy_N : N;
+fun tidy_V : V;
+fun tidy_V2 : V2;
+fun tie_N : N;
+fun tie_V : V;
+fun tie_V2 : V2;
+fun tie_on_A : A;
+fun tie_up_N : N;
+fun tientsin_PN : PN;
+fun tier_N : N;
+fun tiff_N : N;
+fun tiger_N : N;
+fun tiger_lily_N : N;
+fun tigerish_A : A;
+fun tight_A : A;
+fun tight_Adv : Adv;
+fun tight_laced_A : A;
+fun tight_lipped_A : A;
+fun tight_wad_N : N;
+fun tighten_V : V;
+fun tighten_V2 : V2;
+fun tightness_N : N;
+fun tightrope_N : N;
+fun tigress_N : N;
+fun tike_N : N;
+fun tilburg_PN : PN;
+fun tilbury_PN : PN;
+fun tilde_N : N;
+fun tile_N : N;
+fun tile_V2 : V2;
+fun till_N : N;
+fun till_V2 : V2;
+fun tillage_N : N;
+fun tiller_N : N;
+fun tilt_N : N;
+fun tilt_V : V;
+fun tilt_V2 : V2;
+fun tilth_N : N;
+fun tiltyard_N : N;
+fun tim_PN : PN;
+fun timber_N : N;
+fun timbered_A : A;
+fun timbre_N : N;
+fun timbrel_N : N;
+fun time_N : N;
+fun time_V2 : V2;
+fun time_ball_N : N;
+fun time_bomb_N : N;
+fun time_expired_A : A;
+fun time_exposure_N : N;
+fun time_fuse_N : N;
+fun time_honoured_A : A;
+fun time_lag_N : N;
+fun time_limit_N : N;
+fun time_sheet_N : N;
+fun time_signal_N : N;
+fun time_switch_N : N;
+fun timecard_N : N;
+fun timekeeper_N : N;
+fun timekeeping_N : N;
+fun timeless_A : A;
+fun timeliness_N : N;
+fun timely_A : A;
+fun timepiece_N : N;
+fun timesaving_A : A;
+fun timeserver_N : N;
+fun timeserving_A : A;
+fun timetable_N : N;
+fun timework_N : N;
+fun timid_A : A;
+fun timidity_N : N;
+fun timidness_N : N;
+fun timing_N : N;
+fun timmy_PN : PN;
+fun timorous_A : A;
+fun timothy_N : N;
+fun timothy_PN : PN;
+fun timpanist_N : N;
+fun tin_N : N;
+fun tin_V2 : V2;
+fun tin_opener_N : N;
+fun tin_pan_alley_N : N;
+fun tin_plate_N : N;
+fun tina_PN : PN;
+fun tincture_N : N;
+fun tincture_V2 : V2;
+fun tinder_N : N;
+fun tinderbox_N : N;
+fun tine_N : N;
+fun tined_A : A;
+fun tinfoil_N : N;
+fun ting_N : N;
+fun ting_V : V;
+fun ting_V2 : V2;
+fun tinge_N : N;
+fun tinge_V2 : V2;
+fun tingle_N : N;
+fun tingle_V : V;
+fun tinker_N : N;
+fun tinker_V : V;
+fun tinkle_N : N;
+fun tinkle_V : V;
+fun tinkle_V2 : V2;
+fun tinny_A : A;
+fun tinsel_N : N;
+fun tinsel_V2 : V2;
+fun tinselly_A : A;
+fun tinsmith_N : N;
+fun tint_N : N;
+fun tint_V2 : V2;
+fun tintack_N : N;
+fun tintinnabulation_N : N;
+fun tiny_A : A;
+fun tip_N : N;
+fun tip_V : V;
+fun tip_V2 : V2;
+fun tip_and_run_A : A;
+fun tip_off_N : N;
+fun tip_top_A : A;
+fun tip_top_Adv : Adv;
+fun tip_up_A : A;
+fun tipperary_PN : PN;
+fun tippet_N : N;
+fun tipple_N : N;
+fun tipple_V : V;
+fun tipple_V2 : V2;
+fun tippler_N : N;
+fun tipstaff_N : N;
+fun tipster_N : N;
+fun tipsy_A : A;
+fun tiptoe_Adv : Adv;
+fun tiptoe_V : V;
+fun tirade_N : N;
+fun tire_N : N;
+fun tire_V : V;
+fun tire_V2 : V2;
+fun tired_A : A;
+fun tiredness_N : N;
+fun tireless_A : A;
+fun tiresome_A : A;
+fun tiring_Adv : Adv;
+fun tiro_N : N;
+fun tissue_N : N;
+fun tit_N : N;
+fun titan_N : N;
+fun titanic_A : A;
+fun titbit_N : N;
+fun tithe_N : N;
+fun tithe_barn_N : N;
+fun titillate_V2 : V2;
+fun titillation_N : N;
+fun titivate_V : V;
+fun titivate_V2 : V2;
+fun titlark_N : N;
+fun title_N : N;
+fun title_deed_N : N;
+fun title_page_N : N;
+fun title_role_N : N;
+fun titled_A : A;
+fun titmouse_N : N;
+fun titter_V : V;
+fun tittivate_V : V;
+fun tittivate_V2 : V2;
+fun tittle_N : N;
+fun tittle_tattle_N : N;
+fun tittle_tattle_V : V;
+fun titular_A : A;
+fun tiverton_PN : PN;
+fun tizzy_N : N;
+fun tnt_N : N;
+fun to_Adv : Adv;
+fun to_do_N : N;
+fun toad_N : N;
+fun toad_in_the_hole_N : N;
+fun toadstool_N : N;
+fun toady_N : N;
+fun toady_V : V;
+fun toast_N : N;
+fun toast_V : V;
+fun toast_V2 : V2;
+fun toaster_N : N;
+fun toasting_fork_N : N;
+fun toastmaster_N : N;
+fun toastrack_N : N;
+fun tobacco_N : N;
+fun tobacconist_N : N;
+fun tobago_PN : PN;
+fun tobagonian_A : A;
+fun tobagonian_N : N;
+fun toboggan_N : N;
+fun toboggan_V : V;
+fun toby_PN : PN;
+fun toby_jug_N : N;
+fun toccata_N : N;
+fun tocsin_N : N;
+fun today_Adv : Adv;
+fun today_N : N;
+fun toddle_V : V;
+fun toddler_N : N;
+fun toddy_N : N;
+fun todmorden_PN : PN;
+fun toe_N : N;
+fun toe_V2 : V2;
+fun toecap_N : N;
+fun toehold_N : N;
+fun toenail_N : N;
+fun toff_N : N;
+fun toffee_N : N;
+fun tog_V2 : V2;
+fun toga_N : N;
+fun together_Adv : Adv;
+fun togetherness_N : N;
+fun toggle_N : N;
+fun togo_PN : PN;
+fun togolese_A : A;
+fun togolese_N : N;
+fun toil_N : N;
+fun toil_V : V;
+fun toiler_N : N;
+fun toilet_N : N;
+fun toilet_paper_N : N;
+fun toilet_powder_N : N;
+fun toilet_roll_N : N;
+fun toilet_table_N : N;
+fun toilsome_A : A;
+fun tokay_N : N;
+fun token_N : N;
+fun tokyo_PN : PN;
+fun tolerable_A : A;
+fun tolerance_N : N;
+fun tolerant_A : A;
+fun tolerate_V2 : V2;
+fun toleration_N : N;
+fun toll_N : N;
+fun toll_V : V;
+fun toll_V2 : V2;
+fun tollbar_N : N;
+fun tollbooth_N : N;
+fun tollgate_N : N;
+fun tollhouse_N : N;
+fun tom_PN : PN;
+fun tomahawk_N : N;
+fun tomahawk_V2 : V2;
+fun tomato_N : N;
+fun tomb_N : N;
+fun tombola_N : N;
+fun tomboy_N : N;
+fun tombstone_N : N;
+fun tomcat_N : N;
+fun tome_N : N;
+fun tomfool_N : N;
+fun tomfoolery_N : N;
+fun tommy_PN : PN;
+fun tommy_gun_N : N;
+fun tommy_rot_N : N;
+fun tomorrow_Adv : Adv;
+fun tomorrow_N : N;
+fun tomtit_N : N;
+fun tomtom_N : N;
+fun ton_N : N;
+fun ton_V : V;
+fun tonal_A : A;
+fun tonality_N : N;
+fun tonbridge_PN : PN;
+fun tone_N : N;
+fun tone_V : V;
+fun tone_V2 : V2;
+fun tone_deaf_A : A;
+fun tone_poem_N : N;
+fun toned_A : A;
+fun toneless_A : A;
+fun tonga_PN : PN;
+fun tongan_A : A;
+fun tongan_N : N;
+fun tongue_N : N;
+fun tongue_in_cheek_A : A;
+fun tongue_in_cheek_Adv : Adv;
+fun tongue_tied_A : A;
+fun tongue_twister_N : N;
+fun tongued_A : A;
+fun tonic_A : A;
+fun tonic_N : N;
+fun tonic_sol_fa_N : N;
+fun tonight_Adv : Adv;
+fun tonight_N : N;
+fun tonnage_N : N;
+fun tonne_N : N;
+fun tonsil_N : N;
+fun tonsillitis_N : N;
+fun tonsorial_A : A;
+fun tonsure_N : N;
+fun tonsure_V2 : V2;
+fun tontine_N : N;
+fun tony_PN : PN;
+fun tonyrefail_PN : PN;
+fun too_Adv : Adv;
+fun tool_N : N;
+fun tool_V2 : V2;
+fun toot_N : N;
+fun toot_V : V;
+fun toot_V2 : V2;
+fun tooth_N : N;
+fun toothache_N : N;
+fun toothbrush_N : N;
+fun toothed_A : A;
+fun toothless_A : A;
+fun toothpaste_N : N;
+fun toothpick_N : N;
+fun toothpowder_N : N;
+fun toothsome_A : A;
+fun tootle_N : N;
+fun tootle_V : V;
+fun top_N : N;
+fun top_V2 : V2;
+fun top_boot_N : N;
+fun top_dress_V2 : V2;
+fun top_dressing_N : N;
+fun top_flight_A : A;
+fun top_heavy_A : A;
+fun top_hole_A : A;
+fun top_ranking_A : A;
+fun topaz_N : N;
+fun topcoat_N : N;
+fun tope_V : V;
+fun tope_V2 : V2;
+fun toper_N : N;
+fun topgallant_A : A;
+fun topgallant_N : N;
+fun topi_N : N;
+fun topiary_N : N;
+fun topic_N : N;
+fun topical_A : A;
+fun topknot_N : N;
+fun topless_A : A;
+fun topmast_N : N;
+fun topmost_A : A;
+fun topnotch_A : A;
+fun topographical_A : A;
+fun topography_N : N;
+fun topper_N : N;
+fun topping_A : A;
+fun topple_V : V;
+fun topple_V2 : V2;
+fun topsail_N : N;
+fun topsy_turvy_A : A;
+fun topsy_turvy_Adv : Adv;
+fun topsy_turvydom_N : N;
+fun toque_N : N;
+fun tor_N : N;
+fun torbay_PN : PN;
+fun torch_N : N;
+fun torch_race_N : N;
+fun torch_singer_N : N;
+fun torchlight_N : N;
+fun toreador_N : N;
+fun torino_PN : PN;
+fun torment_N : N;
+fun torment_V2 : V2;
+fun tormentor_N : N;
+fun tornado_N : N;
+fun toronto_PN : PN;
+fun torpedo_N : N;
+fun torpedo_V2 : V2;
+fun torpedo_boat_N : N;
+fun torpedo_tube_N : N;
+fun torpid_A : A;
+fun torpidity_N : N;
+fun torpidness_N : N;
+fun torpor_N : N;
+fun torque_N : N;
+fun torrent_N : N;
+fun torrential_A : A;
+fun torrid_A : A;
+fun torridity_N : N;
+fun torsion_N : N;
+fun torso_N : N;
+fun tort_N : N;
+fun tortilla_N : N;
+fun tortoise_N : N;
+fun tortoiseshell_N : N;
+fun tortuous_A : A;
+fun torture_N : N;
+fun torture_V2 : V2;
+fun torturer_N : N;
+fun tory_N : N;
+fun tosh_N : N;
+fun toss_N : N;
+fun toss_V : V;
+fun toss_V2 : V2;
+fun toss_up_N : N;
+fun tot_N : N;
+fun tot_V : V;
+fun tot_V2 : V2;
+fun total_A : A;
+fun total_N : N;
+fun total_V : V;
+fun total_V2 : V2;
+fun totalitarian_A : A;
+fun totalitarianism_N : N;
+fun totality_N : N;
+fun totalizator_N : N;
+fun tote_N : N;
+fun tote_V2 : V2;
+fun totem_N : N;
+fun totem_pole_N : N;
+fun totnes_PN : PN;
+fun totter_V : V;
+fun tottery_A : A;
+fun toucan_N : N;
+fun touch_N : N;
+fun touch_V : V;
+fun touch_V2 : V2;
+fun touch_and_go_A : A;
+fun touch_type_V : V;
+fun touchable_A : A;
+fun touchdown_N : N;
+fun touched_A : A;
+fun touchily_Adv : Adv;
+fun touchiness_N : N;
+fun touching_A : A;
+fun touchline_N : N;
+fun touchstone_N : N;
+fun touchy_A : A;
+fun tough_A : A;
+fun tough_N : N;
+fun toughen_V : V;
+fun toughen_V2 : V2;
+fun toughie_N : N;
+fun toughness_N : N;
+fun toulon_PN : PN;
+fun toulouse_PN : PN;
+fun toupee_N : N;
+fun tour_N : N;
+fun tour_V : V;
+fun tour_V2 : V2;
+fun tour_de_force_N : N;
+fun touring_A : A;
+fun touring_N : N;
+fun tourism_N : N;
+fun tourist_N : N;
+fun tournament_N : N;
+fun tourney_N : N;
+fun tourniquet_N : N;
+fun tours_PN : PN;
+fun tousle_V2 : V2;
+fun tout_N : N;
+fun tout_V : V;
+fun tout_ensemble_Adv : Adv;
+fun tout_ensemble_N : N;
+fun tow_N : N;
+fun tow_V2 : V2;
+fun towel_N : N;
+fun towel_V2 : V2;
+fun towel_horse_N : N;
+fun towel_rack_N : N;
+fun towel_rail_N : N;
+fun towelling_N : N;
+fun tower_N : N;
+fun tower_V : V;
+fun tower_block_N : N;
+fun tower_hamlets_PN : PN;
+fun towering_A : A;
+fun towing_line_N : N;
+fun towing_path_N : N;
+fun towing_rope_N : N;
+fun towline_N : N;
+fun town_N : N;
+fun town_crier_N : N;
+fun town_gas_N : N;
+fun townee_N : N;
+fun township_N : N;
+fun townsman_N : N;
+fun towpath_N : N;
+fun towrope_N : N;
+fun toxaemia_N : N;
+fun toxic_A : A;
+fun toxicity_N : N;
+fun toxicologist_N : N;
+fun toxicology_N : N;
+fun toxin_N : N;
+fun toy_N : N;
+fun toy_V : V;
+fun toyshop_N : N;
+fun trace_N : N;
+fun trace_V : V;
+fun trace_V2 : V2;
+fun traceable_A : A;
+fun tracer_N : N;
+fun tracery_N : N;
+fun trachea_N : N;
+fun trachoma_N : N;
+fun tracing_N : N;
+fun tracing_paper_N : N;
+fun track_N : N;
+fun track_V2 : V2;
+fun tracked_A : A;
+fun tracker_N : N;
+fun trackless_A : A;
+fun tract_N : N;
+fun tractability_N : N;
+fun tractable_A : A;
+fun traction_N : N;
+fun traction_engine_N : N;
+fun tractor_N : N;
+fun tracy_PN : PN;
+fun trad_N : N;
+fun trade_N : N;
+fun trade_V : V;
+fun trade_V2 : V2;
+fun trade_in_N : N;
+fun trade_union_N : N;
+fun trade_unionism_N : N;
+fun trade_unionist_N : N;
+fun trade_wind_N : N;
+fun trademark_N : N;
+fun trader_N : N;
+fun trades_union_N : N;
+fun tradesman_N : N;
+fun tradition_N : N;
+fun traditional_A : A;
+fun traditionalism_N : N;
+fun traditionalist_N : N;
+fun traduce_V2 : V2;
+fun traducer_N : N;
+fun traffic_N : N;
+fun traffic_V : V;
+fun trafficator_N : N;
+fun trafficker_N : N;
+fun tragedian_N : N;
+fun tragedienne_N : N;
+fun tragedy_N : N;
+fun tragic_A : A;
+fun tragically_Adv : Adv;
+fun tragicomedy_N : N;
+fun tragicomic_A : A;
+fun trail_N : N;
+fun trail_V : V;
+fun trail_V2 : V2;
+fun trailer_N : N;
+fun train_N : N;
+fun train_V : V;
+fun train_V2 : V2;
+fun trainbearer_N : N;
+fun trainee_N : N;
+fun trainer_N : N;
+fun training_N : N;
+fun training_college_N : N;
+fun training_ship_N : N;
+fun trainload_N : N;
+fun trainman_N : N;
+fun traipse_V : V;
+fun trait_N : N;
+fun traitor_N : N;
+fun traitorous_A : A;
+fun traitress_N : N;
+fun trajectory_N : N;
+fun tralee_PN : PN;
+fun tram_N : N;
+fun tram_car_N : N;
+fun tramline_N : N;
+fun trammel_V2 : V2;
+fun tramp_N : N;
+fun tramp_V : V;
+fun tramp_V2 : V2;
+fun tramp_steamer_N : N;
+fun trample_N : N;
+fun trample_V : V;
+fun trample_V2 : V2;
+fun trampoline_N : N;
+fun tramway_N : N;
+fun trance_N : N;
+fun tranent_PN : PN;
+fun tranquil_A : A;
+fun tranquility_N : N;
+fun tranquilize_V2 : V2;
+fun tranquillity_N : N;
+fun tranquillize_V2 : V2;
+fun tranquillizer_N : N;
+fun trans_PN : PN;
+fun transact_V2 : V2;
+fun transaction_N : N;
+fun transalpine_A : A;
+fun transalpine_N : N;
+fun transatlantic_A : A;
+fun transcend_V2 : V2;
+fun transcendence_N : N;
+fun transcendency_N : N;
+fun transcendent_A : A;
+fun transcendental_A : A;
+fun transcendentalism_N : N;
+fun transcendentalist_N : N;
+fun transcontinental_A : A;
+fun transcribe_V2 : V2;
+fun transcript_N : N;
+fun transcription_N : N;
+fun transept_N : N;
+fun transfer_N : N;
+fun transfer_V : V;
+fun transfer_V2 : V2;
+fun transferability_N : N;
+fun transferable_A : A;
+fun transference_N : N;
+fun transfiguration_N : N;
+fun transfigure_V2 : V2;
+fun transfix_V2 : V2;
+fun transform_V2 : V2;
+fun transformable_A : A;
+fun transformation_N : N;
+fun transformer_N : N;
+fun transfuse_V2 : V2;
+fun transfusion_N : N;
+fun transgress_V : V;
+fun transgress_V2 : V2;
+fun transgression_N : N;
+fun transgressor_N : N;
+fun transience_N : N;
+fun transiency_N : N;
+fun transient_A : A;
+fun transient_N : N;
+fun transistor_N : N;
+fun transistorized_A : A;
+fun transit_N : N;
+fun transition_N : N;
+fun transitional_A : A;
+fun transitive_A : A;
+fun transitory_A : A;
+fun translatable_A : A;
+fun translate_V2 : V2;
+fun translation_N : N;
+fun translator_N : N;
+fun transliterate_V2 : V2;
+fun transliteration_N : N;
+fun translucence_N : N;
+fun translucency_N : N;
+fun translucent_A : A;
+fun transmigration_N : N;
+fun transmission_N : N;
+fun transmit_V2 : V2;
+fun transmitter_N : N;
+fun transmogrification_N : N;
+fun transmogrify_V2 : V2;
+fun transmutable_A : A;
+fun transmutation_N : N;
+fun transmute_V2 : V2;
+fun transoceanic_A : A;
+fun transom_N : N;
+fun transom_window_N : N;
+fun transparence_N : N;
+fun transparency_N : N;
+fun transparent_A : A;
+fun transpiration_N : N;
+fun transpire_V : V;
+fun transpire_V2 : V2;
+fun transplant_N : N;
+fun transplant_V : V;
+fun transplant_V2 : V2;
+fun transplantation_N : N;
+fun transpolar_A : A;
+fun transport_N : N;
+fun transport_V2 : V2;
+fun transportable_A : A;
+fun transportation_N : N;
+fun transporter_N : N;
+fun transpose_V2 : V2;
+fun transposition_N : N;
+fun transsexual_N : N;
+fun transship_V2 : V2;
+fun transshipment_N : N;
+fun transubstantiation_N : N;
+fun transverse_A : A;
+fun transvestism_N : N;
+fun transvestite_N : N;
+fun trap_N : N;
+fun trap_V2 : V2;
+fun trap_door_N : N;
+fun trap_shooting_N : N;
+fun trapeze_N : N;
+fun trapezium_N : N;
+fun trapezoid_N : N;
+fun trapper_N : N;
+fun trappist_N : N;
+fun trash_N : N;
+fun trashy_A : A;
+fun trauma_N : N;
+fun traumatic_A : A;
+fun travail_N : N;
+fun travel_N : N;
+fun travel_V : V;
+fun travel_V2 : V2;
+fun travel_soiled_A : A;
+fun travel_stained_A : A;
+fun travel_worn_A : A;
+fun traveled_A : A;
+fun travelled_A : A;
+fun traveller_N : N;
+fun travelling_N : N;
+fun travelogue_N : N;
+fun traverse_N : N;
+fun traverse_V2 : V2;
+fun travesty_N : N;
+fun travesty_V2 : V2;
+fun trawl_N : N;
+fun trawl_V : V;
+fun trawl_V2 : V2;
+fun trawl_net_N : N;
+fun trawler_N : N;
+fun tray_N : N;
+fun tray_cloth_N : N;
+fun treacherous_A : A;
+fun treachery_N : N;
+fun treacle_N : N;
+fun treacly_A : A;
+fun tread_N : N;
+fun tread_V : V;
+fun tread_V2 : V2;
+fun treadle_N : N;
+fun treadle_V : V;
+fun treadmill_N : N;
+fun treas_N : N;
+fun treason_N : N;
+fun treasonable_A : A;
+fun treasonous_A : A;
+fun treasure_N : N;
+fun treasure_V2 : V2;
+fun treasure_house_N : N;
+fun treasure_trove_N : N;
+fun treasurer_N : N;
+fun treasury_N : N;
+fun treat_N : N;
+fun treat_V : V;
+fun treat_V2 : V2;
+fun treatise_N : N;
+fun treatment_N : N;
+fun treaty_N : N;
+fun treble_A : A;
+fun treble_N : N;
+fun treble_V : V;
+fun treble_V2 : V2;
+fun tredegar_PN : PN;
+fun tree_N : N;
+fun tree_V2 : V2;
+fun tree_fern_N : N;
+fun treeless_A : A;
+fun trefoil_N : N;
+fun trek_N : N;
+fun trek_V : V;
+fun trellis_N : N;
+fun trellis_V2 : V2;
+fun tremble_N : N;
+fun tremble_V : V;
+fun tremendous_A : A;
+fun tremolo_N : N;
+fun tremor_N : N;
+fun tremulous_A : A;
+fun trench_N : N;
+fun trench_V2 : V2;
+fun trenchancy_N : N;
+fun trenchant_A : A;
+fun trencher_N : N;
+fun trencherman_N : N;
+fun trend_N : N;
+fun trend_V : V;
+fun trend_setter_N : N;
+fun trend_setting_N : N;
+fun trendy_A : A;
+fun trepan_V2 : V2;
+fun trephine_N : N;
+fun trephine_V2 : V2;
+fun trepidation_N : N;
+fun trespass_N : N;
+fun trespass_V : V;
+fun trespasser_N : N;
+fun tress_N : N;
+fun trestle_N : N;
+fun trestle_bridge_N : N;
+fun trestle_table_N : N;
+fun trevor_PN : PN;
+fun triad_N : N;
+fun trial_N : N;
+fun triangle_N : N;
+fun triangular_A : A;
+fun tribal_A : A;
+fun tribalism_N : N;
+fun tribe_N : N;
+fun tribesman_N : N;
+fun tribulation_N : N;
+fun tribunal_N : N;
+fun tribune_N : N;
+fun tributary_A : A;
+fun tributary_N : N;
+fun tribute_N : N;
+fun trice_N : N;
+fun trice_V2 : V2;
+fun trick_N : N;
+fun trick_V2 : V2;
+fun trickery_N : N;
+fun trickiness_N : N;
+fun trickle_N : N;
+fun trickle_V : V;
+fun trickle_V2 : V2;
+fun trickster_N : N;
+fun tricksy_A : A;
+fun tricky_A : A;
+fun tricolour_N : N;
+fun tricycle_N : N;
+fun trident_N : N;
+fun tried_A : A;
+fun triennial_A : A;
+fun triennial_N : N;
+fun trier_N : N;
+fun trieste_PN : PN;
+fun trifle_N : N;
+fun trifle_V : V;
+fun trifle_V2 : V2;
+fun trifler_N : N;
+fun trifling_A : A;
+fun trigger_N : N;
+fun trigger_V2 : V2;
+fun trigger_happy_A : A;
+fun trigonometry_N : N;
+fun trilateral_A : A;
+fun trilby_N : N;
+fun trill_N : N;
+fun trill_V : V;
+fun trill_V2 : V2;
+fun trillion_A : A;
+fun trillion_N : N;
+fun trillionth_A : A;
+fun trillionth_N : N;
+fun trilogy_N : N;
+fun trim_A : A;
+fun trim_N : N;
+fun trim_V : V;
+fun trim_V2 : V2;
+fun trimaran_N : N;
+fun trimmer_N : N;
+fun trimming_N : N;
+fun tring_PN : PN;
+fun trinidad_PN : PN;
+fun trinidadian_A : A;
+fun trinidadian_N : N;
+fun trinitrotoluene_N : N;
+fun trinity_N : N;
+fun trinket_N : N;
+fun trio_N : N;
+fun trip_N : N;
+fun trip_V : V;
+fun trip_V2 : V2;
+fun tripartite_A : A;
+fun tripe_N : N;
+fun triple_A : A;
+fun triple_V : V;
+fun triple_V2 : V2;
+fun triplet_N : N;
+fun triplex_A : A;
+fun triplicate_A : A;
+fun triplicate_N : N;
+fun triplicate_V2 : V2;
+fun tripod_N : N;
+fun tripos_N : N;
+fun tripper_N : N;
+fun tripping_A : A;
+fun triptych_N : N;
+fun trireme_N : N;
+fun trisect_V2 : V2;
+fun trite_A : A;
+fun triteness_N : N;
+fun triumph_N : N;
+fun triumph_V : V;
+fun triumphal_A : A;
+fun triumphant_A : A;
+fun triumvir_N : N;
+fun triumvirate_N : N;
+fun triune_A : A;
+fun trivet_N : N;
+fun trivial_A : A;
+fun triviality_N : N;
+fun trivialize_V2 : V2;
+fun trochaic_A : A;
+fun trochee_N : N;
+fun troglodyte_N : N;
+fun troika_N : N;
+fun trojan_A : A;
+fun trojan_N : N;
+fun troll_N : N;
+fun troll_V : V;
+fun troll_V2 : V2;
+fun trolley_N : N;
+fun trolley_car_N : N;
+fun trollop_N : N;
+fun trombone_N : N;
+fun trombonist_N : N;
+fun troon_PN : PN;
+fun troop_N : N;
+fun troop_V : V;
+fun troop_V2 : V2;
+fun troop_carrier_N : N;
+fun trooper_N : N;
+fun troopship_N : N;
+fun trope_N : N;
+fun trophy_N : N;
+fun tropic_N : N;
+fun tropical_A : A;
+fun trot_N : N;
+fun trot_V : V;
+fun trot_V2 : V2;
+fun troth_N : N;
+fun trotter_N : N;
+fun troubadour_N : N;
+fun trouble_N : N;
+fun trouble_V : V;
+fun trouble_V2 : V2;
+fun troublemaker_N : N;
+fun troubleshooter_N : N;
+fun troublesome_A : A;
+fun troublous_A : A;
+fun trough_N : N;
+fun trounce_V2 : V2;
+fun trouncing_N : N;
+fun troupe_N : N;
+fun trouper_N : N;
+fun trouser_N : N;
+fun trousseau_N : N;
+fun trout_N : N;
+fun trove_N : N;
+fun trowbridge_PN : PN;
+fun trowel_N : N;
+fun troy_N : N;
+fun truancy_N : N;
+fun truant_N : N;
+fun truce_N : N;
+fun truck_N : N;
+fun truckle_N : N;
+fun truckle_V : V;
+fun truckle_bed_N : N;
+fun truculence_N : N;
+fun truculency_N : N;
+fun truculent_A : A;
+fun trudge_N : N;
+fun trudge_V : V;
+fun true_A : A;
+fun true_Adv : Adv;
+fun true_N : N;
+fun true_V2 : V2;
+fun true_blue_A : A;
+fun true_blue_N : N;
+fun true_hearted_A : A;
+fun truelove_N : N;
+fun truffle_N : N;
+fun truism_N : N;
+fun truly_Adv : Adv;
+fun trump_N : N;
+fun trump_V : V;
+fun trump_V2 : V2;
+fun trumpery_A : A;
+fun trumpet_N : N;
+fun trumpet_V : V;
+fun trumpet_V2 : V2;
+fun trumpeter_N : N;
+fun truncate_V2 : V2;
+fun truncheon_N : N;
+fun trundle_V : V;
+fun trundle_V2 : V2;
+fun trunk_N : N;
+fun trunk_call_N : N;
+fun trunk_line_N : N;
+fun trunk_road_N : N;
+fun trunking_N : N;
+fun truro_PN : PN;
+fun truss_N : N;
+fun truss_V2 : V2;
+fun trust_N : N;
+fun trust_V : V;
+fun trust_V2 : V2;
+fun trustee_N : N;
+fun trusteeship_N : N;
+fun trustful_A : A;
+fun trusting_A : A;
+fun trustworthiness_N : N;
+fun trustworthy_A : A;
+fun trusty_A : A;
+fun truth_N : N;
+fun truthful_A : A;
+fun truthfulness_N : N;
+fun try_N : N;
+fun try_V : V;
+fun try_V2 : V2;
+fun try_on_N : N;
+fun try_out_N : N;
+fun trying_A : A;
+fun tryst_N : N;
+fun tsar_N : N;
+fun tsarina_N : N;
+fun tsetse_N : N;
+fun tsetse_fly_N : N;
+fun tsinan_PN : PN;
+fun tsingtao_PN : PN;
+fun tsitsihar_PN : PN;
+fun tswana_A : A;
+fun tswana_N : N;
+fun tub_N : N;
+fun tub_thumper_N : N;
+fun tuba_N : N;
+fun tubby_A : A;
+fun tube_N : N;
+fun tube_well_N : N;
+fun tubeless_A : A;
+fun tuber_N : N;
+fun tubercular_A : A;
+fun tuberculosis_N : N;
+fun tuberculous_A : A;
+fun tubful_N : N;
+fun tubing_N : N;
+fun tubular_A : A;
+fun tuc_N : N;
+fun tuck_N : N;
+fun tuck_V : V;
+fun tuck_V2 : V2;
+fun tuck_in_N : N;
+fun tuck_shop_N : N;
+fun tucker_N : N;
+fun tues_PN : PN;
+fun tuesday_N : N;
+fun tuesday_PN : PN;
+fun tuft_N : N;
+fun tufted_A : A;
+fun tug_N : N;
+fun tug_V : V;
+fun tug_V2 : V2;
+fun tugboat_N : N;
+fun tuition_N : N;
+fun tulip_N : N;
+fun tulle_N : N;
+fun tullibody_PN : PN;
+fun tumble_N : N;
+fun tumble_V : V;
+fun tumble_V2 : V2;
+fun tumble_down_A : A;
+fun tumbler_N : N;
+fun tumbleweed_N : N;
+fun tumbrel_N : N;
+fun tumbril_N : N;
+fun tumescence_N : N;
+fun tumescent_A : A;
+fun tumid_A : A;
+fun tumidity_N : N;
+fun tummy_N : N;
+fun tumour_N : N;
+fun tumult_N : N;
+fun tumultuous_A : A;
+fun tumulus_N : N;
+fun tun_N : N;
+fun tuna_N : N;
+fun tunbridge_wells_PN : PN;
+fun tundra_N : N;
+fun tune_N : N;
+fun tune_V : V;
+fun tune_V2 : V2;
+fun tuneful_A : A;
+fun tunefulness_N : N;
+fun tuner_N : N;
+fun tung_oil_N : N;
+fun tungsten_N : N;
+fun tunic_N : N;
+fun tuning_fork_N : N;
+fun tunis_PN : PN;
+fun tunisia_PN : PN;
+fun tunisian_A : A;
+fun tunisian_N : N;
+fun tunnel_N : N;
+fun tunnel_V : V;
+fun tunnel_V2 : V2;
+fun tunny_N : N;
+fun tup_N : N;
+fun tuppence_N : N;
+fun tuppenny_A : A;
+fun turban_N : N;
+fun turbaned_A : A;
+fun turbid_A : A;
+fun turbidity_N : N;
+fun turbidness_N : N;
+fun turbine_N : N;
+fun turbojet_N : N;
+fun turboprop_N : N;
+fun turbot_N : N;
+fun turbulence_N : N;
+fun turbulent_A : A;
+fun turd_N : N;
+fun tureen_N : N;
+fun turf_N : N;
+fun turf_V2 : V2;
+fun turgid_A : A;
+fun turgidity_N : N;
+fun turin_PN : PN;
+fun turk_N : N;
+fun turkey_N : N;
+fun turkey_PN : PN;
+fun turkish_A : A;
+fun turkish_N : N;
+fun turku_PN : PN;
+fun turmeric_N : N;
+fun turmoil_N : N;
+fun turn_N : N;
+fun turn_V : V;
+fun turn_V2 : V2;
+fun turn_off_N : N;
+fun turn_on_N : N;
+fun turn_out_N : N;
+fun turn_round_N : N;
+fun turn_up_N : N;
+fun turncoat_N : N;
+fun turncock_N : N;
+fun turner_N : N;
+fun turning_N : N;
+fun turning_point_N : N;
+fun turnip_N : N;
+fun turnkey_N : N;
+fun turnover_N : N;
+fun turnpike_N : N;
+fun turnspit_N : N;
+fun turnstile_N : N;
+fun turntable_N : N;
+fun turpentine_N : N;
+fun turpitude_N : N;
+fun turps_N : N;
+fun turquoise_N : N;
+fun turret_N : N;
+fun turtle_N : N;
+fun turtledove_N : N;
+fun turtleneck_A : A;
+fun turtlenecked_A : A;
+fun tusk_N : N;
+fun tussle_N : N;
+fun tussle_V : V;
+fun tussock_N : N;
+fun tut_V2 : V2;
+fun tutelage_N : N;
+fun tutelary_A : A;
+fun tutor_N : N;
+fun tutor_V2 : V2;
+fun tutorial_A : A;
+fun tutorial_N : N;
+fun tutorship_N : N;
+fun tutti_frutti_N : N;
+fun tutu_N : N;
+fun tuxedo_N : N;
+fun tv_N : N;
+fun tvs_N : N;
+fun twaddle_N : N;
+fun twaddle_V : V;
+fun twain_N : N;
+fun twang_N : N;
+fun twang_V : V;
+fun twang_V2 : V2;
+fun tweak_N : N;
+fun tweak_V2 : V2;
+fun twee_A : A;
+fun tweed_N : N;
+fun tween_Adv : Adv;
+fun tween_decks_Adv : Adv;
+fun tweet_N : N;
+fun tweet_V : V;
+fun tweeter_N : N;
+fun twelfth_night_N : N;
+fun twelfth_night_PN : PN;
+fun twelvemonth_N : N;
+fun twerp_N : N;
+fun twice_Adv : Adv;
+fun twiddle_N : N;
+fun twiddle_V : V;
+fun twiddle_V2 : V2;
+fun twiddly_A : A;
+fun twig_N : N;
+fun twig_V : V;
+fun twig_V2 : V2;
+fun twiggy_A : A;
+fun twilight_N : N;
+fun twilit_A : A;
+fun twill_N : N;
+fun twilled_A : A;
+fun twin_N : N;
+fun twin_V2 : V2;
+fun twine_N : N;
+fun twine_V : V;
+fun twine_V2 : V2;
+fun twinge_N : N;
+fun twinkle_N : N;
+fun twinkle_V : V;
+fun twinkling_N : N;
+fun twinned_A : A;
+fun twirl_N : N;
+fun twirl_V : V;
+fun twirl_V2 : V2;
+fun twist_N : N;
+fun twist_V : V;
+fun twist_V2 : V2;
+fun twister_N : N;
+fun twisty_A : A;
+fun twit_N : N;
+fun twit_V2 : V2;
+fun twitch_N : N;
+fun twitch_V : V;
+fun twitch_V2 : V2;
+fun twitter_N : N;
+fun twitter_V : V;
+fun two_a_penny_A : A;
+fun two_edged_A : A;
+fun two_faced_A : A;
+fun two_funnelled_A : A;
+fun two_handed_A : A;
+fun two_piece_N : N;
+fun two_ply_A : A;
+fun two_seater_N : N;
+fun two_step_N : N;
+fun two_timing_A : A;
+fun two_way_A : A;
+fun twofold_A : A;
+fun twofold_Adv : Adv;
+fun twopence_N : N;
+fun twopenny_A : A;
+fun twopenny_halfpenny_A : A;
+fun tycoon_N : N;
+fun tyke_N : N;
+fun tympanum_N : N;
+fun tyne_PN : PN;
+fun tynemouth_PN : PN;
+fun type_N : N;
+fun type_V : V;
+fun type_V2 : V2;
+fun typecast_V2 : V2;
+fun typeface_N : N;
+fun typescript_N : N;
+fun typesetter_N : N;
+fun typewriter_N : N;
+fun typewritten_A : A;
+fun typhoid_N : N;
+fun typhoon_N : N;
+fun typhus_N : N;
+fun typical_A : A;
+fun typify_V2 : V2;
+fun typist_N : N;
+fun typographer_N : N;
+fun typographic_A : A;
+fun typographically_Adv : Adv;
+fun typography_N : N;
+fun tyrannical_A : A;
+fun tyrannize_V : V;
+fun tyrannize_V2 : V2;
+fun tyrannous_A : A;
+fun tyranny_N : N;
+fun tyrant_N : N;
+fun tyre_N : N;
+fun tyro_N : N;
+fun tyrone_PN : PN;
+fun tzar_N : N;
+fun tzarina_N : N;
+fun tzupo_PN : PN;
+fun tete_a_tete_Adv : Adv;
+fun tete_a_tete_N : N;
+fun u_boat_N : N;
+fun u_turn_N : N;
+fun ubiquitous_A : A;
+fun ubiquity_N : N;
+fun udder_N : N;
+fun uddingston_PN : PN;
+fun udi_PN : PN;
+fun udine_PN : PN;
+fun ufa_PN : PN;
+fun ufo's_N : N;
+fun ufo_N : N;
+fun uganda_PN : PN;
+fun ugandan_A : A;
+fun ugandan_N : N;
+fun uglify_V2 : V2;
+fun ugliness_N : N;
+fun ugly_A : A;
+fun uk_PN : PN;
+fun ukase_N : N;
+fun ukulele_N : N;
+fun ulcer_N : N;
+fun ulcerate_V : V;
+fun ulcerate_V2 : V2;
+fun ulceration_N : N;
+fun ulcerous_A : A;
+fun ulna_N : N;
+fun ulster_N : N;
+fun ulster_PN : PN;
+fun ulterior_A : A;
+fun ultimate_A : A;
+fun ultimatum_N : N;
+fun ultimo_A : A;
+fun ultra_vires_A : A;
+fun ultra_vires_Adv : Adv;
+fun ultramarine_A : A;
+fun ultramarine_N : N;
+fun ultramontane_A : A;
+fun ultrasonic_A : A;
+fun ultraviolet_A : A;
+fun ululate_V : V;
+fun ululation_N : N;
+fun ulverston_PN : PN;
+fun umber_A : A;
+fun umber_N : N;
+fun umbilical_A : A;
+fun umbrage_N : N;
+fun umbrella_N : N;
+fun umlaut_N : N;
+fun umpire_N : N;
+fun umpire_V : V;
+fun umpire_V2 : V2;
+fun umpteen_A : A;
+fun umpteenth_A : A;
+fun un_N : N;
+fun un_come_at_able_A : A;
+fun un_get_at_able_A : A;
+fun unabashed_A : A;
+fun unabated_A : A;
+fun unable_A : A;
+fun unabridged_A : A;
+fun unacceptable_A : A;
+fun unaccommodating_A : A;
+fun unaccompanied_A : A;
+fun unaccountable_A : A;
+fun unaccounted_A : A;
+fun unaccustomed_A : A;
+fun unacknowledged_A : A;
+fun unacquainted_A : A;
+fun unadorned_A : A;
+fun unadulterated_A : A;
+fun unadventurous_A : A;
+fun unadvised_A : A;
+fun unaffected_A : A;
+fun unafraid_A : A;
+fun unaided_A : A;
+fun unalienable_A : A;
+fun unaligned_A : A;
+fun unalloyed_A : A;
+fun unalterable_A : A;
+fun unaltered_A : A;
+fun unambiguous_A : A;
+fun unamended_A : A;
+fun unanimity_N : N;
+fun unanimous_A : A;
+fun unannounced_A : A;
+fun unanswerable_A : A;
+fun unanswered_A : A;
+fun unanticipated_A : A;
+fun unappealing_A : A;
+fun unappetizing_A : A;
+fun unappreciated_A : A;
+fun unappreciative_A : A;
+fun unapproachable_A : A;
+fun unarguable_A : A;
+fun unarmed_A : A;
+fun unarticulated_A : A;
+fun unashamed_A : A;
+fun unasked_A : A;
+fun unassailable_A : A;
+fun unassisted_A : A;
+fun unassuming_A : A;
+fun unattached_A : A;
+fun unattainable_A : A;
+fun unattended_A : A;
+fun unattractive_A : A;
+fun unauthorized_A : A;
+fun unavailable_A : A;
+fun unavailing_A : A;
+fun unavoidable_A : A;
+fun unawakened_A : A;
+fun unaware_A : A;
+fun unawares_Adv : Adv;
+fun unbacked_A : A;
+fun unbalance_V2 : V2;
+fun unbalanced_A : A;
+fun unbar_V2 : V2;
+fun unbearable_A : A;
+fun unbeatable_A : A;
+fun unbeaten_A : A;
+fun unbecoming_A : A;
+fun unbeknown_A : A;
+fun unbeknown_Adv : Adv;
+fun unbeknownst_A : A;
+fun unbeknownst_Adv : Adv;
+fun unbelief_N : N;
+fun unbelievable_A : A;
+fun unbeliever_N : N;
+fun unbelieving_A : A;
+fun unbeloved_A : A;
+fun unbend_V : V;
+fun unbend_V2 : V2;
+fun unbending_A : A;
+fun unbiased_A : A;
+fun unbiassed_A : A;
+fun unbidden_A : A;
+fun unbind_V2 : V2;
+fun unblock_V2 : V2;
+fun unblushing_A : A;
+fun unbolt_V : V;
+fun unbolt_V2 : V2;
+fun unborn_A : A;
+fun unbosom_V2 : V2;
+fun unbounded_A : A;
+fun unbowed_A : A;
+fun unbreakable_A : A;
+fun unbridled_A : A;
+fun unbroken_A : A;
+fun unbuckle_V2 : V2;
+fun unburden_V2 : V2;
+fun unburied_A : A;
+fun unbutton_V2 : V2;
+fun unbuttoned_A : A;
+fun uncalled_for_A : A;
+fun uncanny_A : A;
+fun uncared_for_A : A;
+fun uncarpeted_A : A;
+fun unceasing_A : A;
+fun uncensored_A : A;
+fun unceremonious_A : A;
+fun unceremoniousness_N : N;
+fun uncertain_A : A;
+fun uncertainty_N : N;
+fun unchain_V2 : V2;
+fun unchallengeable_A : A;
+fun unchallenged_A : A;
+fun unchanged_A : A;
+fun unchanging_A : A;
+fun uncharacteristic_A : A;
+fun uncharacteristically_Adv : Adv;
+fun uncharitable_A : A;
+fun uncharted_A : A;
+fun unchecked_A : A;
+fun unchivalrously_Adv : Adv;
+fun unchristian_A : A;
+fun uncivil_A : A;
+fun uncivilized_A : A;
+fun unclaimed_A : A;
+fun unclassified_A : A;
+fun uncle_N : N;
+fun unclean_A : A;
+fun unclear_A : A;
+fun unclouded_A : A;
+fun uncluttered_A : A;
+fun unco_A : A;
+fun unco_Adv : Adv;
+fun unco_operative_A : A;
+fun unco_ordinated_A : A;
+fun uncoloured_A : A;
+fun uncomfortable_A : A;
+fun uncommercialized_A : A;
+fun uncommitted_A : A;
+fun uncommon_A : A;
+fun uncommunicative_A : A;
+fun uncompetitive_A : A;
+fun uncomplaining_A : A;
+fun uncompleted_A : A;
+fun uncomplicated_A : A;
+fun uncomplimentary_A : A;
+fun uncomprehending_A : A;
+fun uncompromising_A : A;
+fun unconcealed_A : A;
+fun unconcern_N : N;
+fun unconcerned_A : A;
+fun unconditional_A : A;
+fun unconditioned_A : A;
+fun unconfined_A : A;
+fun unconfirmed_A : A;
+fun unconformable_A : A;
+fun uncongenial_A : A;
+fun unconnected_A : A;
+fun unconquered_A : A;
+fun unconscionable_A : A;
+fun unconscious_A : A;
+fun unconscious_N : N;
+fun unconsciousness_N : N;
+fun unconsidered_A : A;
+fun unconstitutional_A : A;
+fun unconstrained_A : A;
+fun unconstructive_A : A;
+fun unconsummated_A : A;
+fun uncontaminated_A : A;
+fun uncontrollable_A : A;
+fun uncontrolled_A : A;
+fun uncontroversial_A : A;
+fun unconventional_A : A;
+fun unconventionality_N : N;
+fun unconverted_A : A;
+fun unconvinced_A : A;
+fun unconvincing_A : A;
+fun uncooked_A : A;
+fun uncork_V2 : V2;
+fun uncorrected_A : A;
+fun uncorrelated_A : A;
+fun uncorroborated_A : A;
+fun uncouple_V2 : V2;
+fun uncouth_A : A;
+fun uncouthness_N : N;
+fun uncover_V2 : V2;
+fun uncritical_A : A;
+fun uncross_V2 : V2;
+fun uncrossed_A : A;
+fun uncrowned_A : A;
+fun unction_N : N;
+fun unctuous_A : A;
+fun uncultivated_A : A;
+fun uncultured_A : A;
+fun uncurl_V : V;
+fun uncurl_V2 : V2;
+fun uncut_A : A;
+fun undamaged_A : A;
+fun undated_A : A;
+fun undaunted_A : A;
+fun undeceive_V2 : V2;
+fun undecided_A : A;
+fun undeclared_A : A;
+fun undefeated_A : A;
+fun undefended_A : A;
+fun undeferential_A : A;
+fun undefinable_A : A;
+fun undefined_A : A;
+fun undemanding_A : A;
+fun undemocratic_A : A;
+fun undemocratically_Adv : Adv;
+fun undemonstrative_A : A;
+fun undeniable_A : A;
+fun undenominational_A : A;
+fun under_Adv : Adv;
+fun under_the_counter_A : A;
+fun underact_V : V;
+fun underact_V2 : V2;
+fun underarm_A : A;
+fun underarm_Adv : Adv;
+fun underbelly_N : N;
+fun underbid_V2 : V2;
+fun underbred_A : A;
+fun underbrush_N : N;
+fun undercarriage_N : N;
+fun undercharge_N : N;
+fun undercharge_V2 : V2;
+fun underclothing_N : N;
+fun undercoat_N : N;
+fun undercover_A : A;
+fun undercurrent_N : N;
+fun undercut_N : N;
+fun undercut_V2 : V2;
+fun underdeveloped_A : A;
+fun underdevelopment_N : N;
+fun underdog_N : N;
+fun underdone_A : A;
+fun underemployed_A : A;
+fun underestimate_N : N;
+fun underestimate_V2 : V2;
+fun underestimation_N : N;
+fun underexpose_V2 : V2;
+fun underexposure_N : N;
+fun underfed_A : A;
+fun underfelt_N : N;
+fun underfloor_A : A;
+fun underfoot_Adv : Adv;
+fun undergarment_N : N;
+fun undergo_V2 : V2;
+fun undergraduate_N : N;
+fun underground_A : A;
+fun underground_Adv : Adv;
+fun underground_N : N;
+fun undergrowth_N : N;
+fun underhand_A : A;
+fun underhand_Adv : Adv;
+fun underhanded_A : A;
+fun underhung_A : A;
+fun underlay_N : N;
+fun underlie_V2 : V2;
+fun underline_N : N;
+fun underline_V2 : V2;
+fun underling_N : N;
+fun undermanned_A : A;
+fun undermentioned_A : A;
+fun undermine_V2 : V2;
+fun underneath_Adv : Adv;
+fun undernourished_A : A;
+fun undernourishment_N : N;
+fun underpass_N : N;
+fun underpay_V2 : V2;
+fun underpayment_N : N;
+fun underpin_V2 : V2;
+fun underpopulated_A : A;
+fun underprivileged_A : A;
+fun underproduction_N : N;
+fun underquote_V2 : V2;
+fun underrate_V2 : V2;
+fun underscore_V2 : V2;
+fun undersea_A : A;
+fun underseal_N : N;
+fun undersealed_A : A;
+fun undersecretary_N : N;
+fun undersell_V2 : V2;
+fun undersexed_A : A;
+fun undershoot_V2 : V2;
+fun underside_N : N;
+fun undersign_V2 : V2;
+fun undersized_A : A;
+fun underskirt_N : N;
+fun underslung_A : A;
+fun underspend_V : V;
+fun underspend_V2 : V2;
+fun underspent_A : A;
+fun understaffed_A : A;
+fun understand_V : V;
+fun understand_V2 : V2;
+fun understandable_A : A;
+fun understanding_A : A;
+fun understanding_N : N;
+fun understate_V2 : V2;
+fun understatement_N : N;
+fun understock_V2 : V2;
+fun understudy_N : N;
+fun understudy_V2 : V2;
+fun undersurface_N : N;
+fun undertake_V2 : V2;
+fun undertaker_N : N;
+fun undertaking_N : N;
+fun undertone_N : N;
+fun undertow_N : N;
+fun undervaluation_N : N;
+fun undervalue_V2 : V2;
+fun underwater_A : A;
+fun underwear_N : N;
+fun underweight_A : A;
+fun underworld_N : N;
+fun underwrite_V2 : V2;
+fun underwriter_N : N;
+fun undeserved_A : A;
+fun undeserving_A : A;
+fun undesigned_A : A;
+fun undesirable_A : A;
+fun undesirable_N : N;
+fun undetected_A : A;
+fun undetermined_A : A;
+fun undeterred_A : A;
+fun undeveloped_A : A;
+fun undiagnosed_A : A;
+fun undifferentiated_A : A;
+fun undigested_A : A;
+fun undignified_A : A;
+fun undiluted_A : A;
+fun undiminished_A : A;
+fun undimmed_A : A;
+fun undiplomatic_A : A;
+fun undiplomatically_Adv : Adv;
+fun undischarged_A : A;
+fun undisciplined_A : A;
+fun undisclosed_A : A;
+fun undiscovered_A : A;
+fun undiscriminating_A : A;
+fun undisguised_A : A;
+fun undismayed_A : A;
+fun undisputed_A : A;
+fun undissolved_A : A;
+fun undistinguishable_A : A;
+fun undistinguished_A : A;
+fun undistributed_A : A;
+fun undisturbed_A : A;
+fun undivided_A : A;
+fun undo_V2 : V2;
+fun undock_V : V;
+fun undock_V2 : V2;
+fun undocumented_A : A;
+fun undogmatic_A : A;
+fun undoing_N : N;
+fun undomesticated_A : A;
+fun undone_A : A;
+fun undoubted_A : A;
+fun undramatic_A : A;
+fun undramatically_Adv : Adv;
+fun undreamed_A : A;
+fun undreamed_of_A : A;
+fun undreamt_A : A;
+fun undress_N : N;
+fun undress_V : V;
+fun undress_V2 : V2;
+fun undrinkable_A : A;
+fun undue_A : A;
+fun undulate_V : V;
+fun undulation_N : N;
+fun unduly_Adv : Adv;
+fun undying_A : A;
+fun unearned_A : A;
+fun unearth_V2 : V2;
+fun unearthly_A : A;
+fun unease_N : N;
+fun uneasiness_N : N;
+fun uneasy_A : A;
+fun uneatable_A : A;
+fun uneaten_A : A;
+fun uneconomic_A : A;
+fun uneconomical_A : A;
+fun unedifying_A : A;
+fun unedited_A : A;
+fun uneducated_A : A;
+fun uneffective_A : A;
+fun unelaborated_A : A;
+fun unemotional_A : A;
+fun unemployable_A : A;
+fun unemployed_A : A;
+fun unemployment_N : N;
+fun unending_A : A;
+fun unendurable_A : A;
+fun unenlightened_A : A;
+fun unenterprising_A : A;
+fun unenthusiastic_A : A;
+fun unenthusiastically_Adv : Adv;
+fun unenviable_A : A;
+fun unequal_A : A;
+fun unequalled_A : A;
+fun unequipped_A : A;
+fun unequivocal_A : A;
+fun unerring_A : A;
+fun unesco_PN : PN;
+fun unethical_A : A;
+fun uneven_A : A;
+fun uneventful_A : A;
+fun unexampled_A : A;
+fun unexceeded_A : A;
+fun unexceptionable_A : A;
+fun unexceptional_A : A;
+fun unexciting_A : A;
+fun unexpected_A : A;
+fun unexpectedness_N : N;
+fun unexpired_A : A;
+fun unexplained_A : A;
+fun unexplored_A : A;
+fun unexposed_A : A;
+fun unexpressed_A : A;
+fun unexpurgated_A : A;
+fun unfailing_A : A;
+fun unfair_A : A;
+fun unfairness_N : N;
+fun unfaithful_A : A;
+fun unfaithfulness_N : N;
+fun unfaltering_A : A;
+fun unfamiliar_A : A;
+fun unfamiliarity_N : N;
+fun unfashionable_A : A;
+fun unfasten_V : V;
+fun unfasten_V2 : V2;
+fun unfathomable_A : A;
+fun unfathomed_A : A;
+fun unfavourable_A : A;
+fun unfed_A : A;
+fun unfeeling_A : A;
+fun unfeigned_A : A;
+fun unfermented_A : A;
+fun unfertilized_A : A;
+fun unfettered_A : A;
+fun unfinished_A : A;
+fun unfit_A : A;
+fun unfit_V2 : V2;
+fun unflagging_A : A;
+fun unflappable_A : A;
+fun unfledged_A : A;
+fun unflinching_A : A;
+fun unflurried_A : A;
+fun unfold_V : V;
+fun unfold_V2 : V2;
+fun unforeseeable_A : A;
+fun unforeseen_A : A;
+fun unforgettable_A : A;
+fun unforgivable_A : A;
+fun unforgiving_A : A;
+fun unformed_A : A;
+fun unforthcoming_A : A;
+fun unfortunate_A : A;
+fun unfortunate_N : N;
+fun unfounded_A : A;
+fun unframed_A : A;
+fun unfrequented_A : A;
+fun unfriendliness_N : N;
+fun unfriendly_A : A;
+fun unfrock_V2 : V2;
+fun unfruitful_A : A;
+fun unfulfilled_A : A;
+fun unfurl_V : V;
+fun unfurl_V2 : V2;
+fun unfurnished_A : A;
+fun ungainly_A : A;
+fun ungenerous_A : A;
+fun ungentle_A : A;
+fun ungentlemanly_A : A;
+fun unglazed_A : A;
+fun ungodly_A : A;
+fun ungovernable_A : A;
+fun ungraceful_A : A;
+fun ungracious_A : A;
+fun ungrammatical_A : A;
+fun ungrateful_A : A;
+fun ungratefulness_N : N;
+fun ungrudging_A : A;
+fun unguarded_A : A;
+fun unguent_N : N;
+fun unhallowed_A : A;
+fun unhampered_A : A;
+fun unhand_V2 : V2;
+fun unhappily_Adv : Adv;
+fun unhappiness_N : N;
+fun unhappy_A : A;
+fun unharmed_A : A;
+fun unhealed_A : A;
+fun unhealthy_A : A;
+fun unheard_A : A;
+fun unheard_of_A : A;
+fun unhearing_A : A;
+fun unheated_A : A;
+fun unheeded_A : A;
+fun unhelpful_A : A;
+fun unheralded_A : A;
+fun unhesitating_A : A;
+fun unhindered_A : A;
+fun unhinge_V2 : V2;
+fun unhitch_V : V;
+fun unhitch_V2 : V2;
+fun unholy_A : A;
+fun unhook_V2 : V2;
+fun unhoped_for_A : A;
+fun unhorse_V2 : V2;
+fun unhurried_A : A;
+fun unhurt_A : A;
+fun unhygienic_A : A;
+fun unhygienically_Adv : Adv;
+fun unicef_PN : PN;
+fun unicorn_N : N;
+fun unidentifiable_A : A;
+fun unidentified_A : A;
+fun unification_N : N;
+fun uniform_A : A;
+fun uniform_N : N;
+fun uniformed_A : A;
+fun uniformity_N : N;
+fun unify_V2 : V2;
+fun unilateral_A : A;
+fun unilateralism_N : N;
+fun unilateralist_A : A;
+fun unilateralist_N : N;
+fun unimaginable_A : A;
+fun unimaginative_A : A;
+fun unimpaired_A : A;
+fun unimpeachable_A : A;
+fun unimpeded_A : A;
+fun unimportant_A : A;
+fun unimpressed_A : A;
+fun unimpressive_A : A;
+fun uninfluenced_A : A;
+fun uninformative_A : A;
+fun uninformed_A : A;
+fun uninhabitable_A : A;
+fun uninhabited_A : A;
+fun uninhibited_A : A;
+fun uninitiated_A : A;
+fun uninjured_A : A;
+fun uninspired_A : A;
+fun uninspiring_A : A;
+fun uninsured_A : A;
+fun unintelligent_A : A;
+fun unintelligible_A : A;
+fun unintended_A : A;
+fun unintentional_A : A;
+fun uninterested_A : A;
+fun uninteresting_A : A;
+fun uninterrupted_A : A;
+fun uninvited_A : A;
+fun uninviting_A : A;
+fun union_N : N;
+fun unionist_N : N;
+fun unique_A : A;
+fun uniqueness_N : N;
+fun unisex_A : A;
+fun unison_N : N;
+fun unit_N : N;
+fun unitarian_A : A;
+fun unitarian_N : N;
+fun unitarianism_N : N;
+fun unitary_A : A;
+fun unite_V : V;
+fun unite_V2 : V2;
+fun united_A : A;
+fun unity_N : N;
+fun univ_PN : PN;
+fun universal_A : A;
+fun universality_N : N;
+fun universe_N : N;
+fun university_N : N;
+fun unjust_A : A;
+fun unjustifiable_A : A;
+fun unjustified_A : A;
+fun unkempt_A : A;
+fun unkind_A : A;
+fun unkissed_A : A;
+fun unknowable_A : A;
+fun unknowing_A : A;
+fun unknown_A : A;
+fun unknown_N : N;
+fun unlabelled_A : A;
+fun unladylike_A : A;
+fun unlamented_A : A;
+fun unlatched_A : A;
+fun unlawful_A : A;
+fun unlearn_V2 : V2;
+fun unleash_V2 : V2;
+fun unleavened_A : A;
+fun unlettered_A : A;
+fun unlicensed_A : A;
+fun unlighted_A : A;
+fun unlikable_A : A;
+fun unlike_A : A;
+fun unlikely_A : A;
+fun unlimited_A : A;
+fun unlined_A : A;
+fun unlisted_A : A;
+fun unlit_A : A;
+fun unliterary_A : A;
+fun unload_V : V;
+fun unload_V2 : V2;
+fun unlocated_A : A;
+fun unlock_V : V;
+fun unlock_V2 : V2;
+fun unlooked_for_A : A;
+fun unloose_V2 : V2;
+fun unlovable_A : A;
+fun unloved_A : A;
+fun unlovely_A : A;
+fun unlucky_A : A;
+fun unmade_A : A;
+fun unman_V2 : V2;
+fun unmanageable_A : A;
+fun unmanly_A : A;
+fun unmanned_A : A;
+fun unmannered_A : A;
+fun unmannerly_A : A;
+fun unmarked_A : A;
+fun unmarried_A : A;
+fun unmask_V : V;
+fun unmask_V2 : V2;
+fun unmatchable_A : A;
+fun unmatched_A : A;
+fun unmechanized_A : A;
+fun unmemorable_A : A;
+fun unmentionable_A : A;
+fun unmerciful_A : A;
+fun unmerited_A : A;
+fun unmindful_A : A;
+fun unmingled_A : A;
+fun unmistakable_A : A;
+fun unmitigated_A : A;
+fun unmixed_A : A;
+fun unmodernized_A : A;
+fun unmodified_A : A;
+fun unmolested_A : A;
+fun unmourned_A : A;
+fun unmovable_A : A;
+fun unmoved_A : A;
+fun unmoving_A : A;
+fun unmusical_A : A;
+fun unnamed_A : A;
+fun unnatural_A : A;
+fun unnecessary_A : A;
+fun unnerve_V2 : V2;
+fun unnoticeable_A : A;
+fun unnoticed_A : A;
+fun unnumbered_A : A;
+fun unobjectionable_A : A;
+fun unobservant_A : A;
+fun unobserved_A : A;
+fun unobtainable_A : A;
+fun unobtrusive_A : A;
+fun unobvious_A : A;
+fun unoccupied_A : A;
+fun unofficial_A : A;
+fun unopen_A : A;
+fun unopened_A : A;
+fun unopposed_A : A;
+fun unoriginal_A : A;
+fun unorthodox_A : A;
+fun unpack_V : V;
+fun unpack_V2 : V2;
+fun unpaid_A : A;
+fun unpainted_A : A;
+fun unpalatable_A : A;
+fun unparalleled_A : A;
+fun unpardonable_A : A;
+fun unparliamentary_A : A;
+fun unpatriotic_A : A;
+fun unpatriotically_Adv : Adv;
+fun unpaved_A : A;
+fun unpersuaded_A : A;
+fun unperturbed_A : A;
+fun unpick_V : V;
+fun unpick_V2 : V2;
+fun unplaced_A : A;
+fun unplanned_A : A;
+fun unplayable_A : A;
+fun unpleasant_A : A;
+fun unpleasantness_N : N;
+fun unplug_V : V;
+fun unplug_V2 : V2;
+fun unplumbed_A : A;
+fun unpolluted_A : A;
+fun unpompous_A : A;
+fun unpopular_A : A;
+fun unpopularity_N : N;
+fun unpractised_A : A;
+fun unprecedented_A : A;
+fun unpredictability_N : N;
+fun unpredictable_A : A;
+fun unpredicted_A : A;
+fun unprejudiced_A : A;
+fun unpremeditated_A : A;
+fun unprepared_A : A;
+fun unprepossessing_A : A;
+fun unpretentious_A : A;
+fun unprincipled_A : A;
+fun unprintable_A : A;
+fun unproductive_A : A;
+fun unprofessional_A : A;
+fun unprofitable_A : A;
+fun unpromising_A : A;
+fun unprompted_A : A;
+fun unpronounceable_A : A;
+fun unpropitious_A : A;
+fun unprotected_A : A;
+fun unproved_A : A;
+fun unproven_A : A;
+fun unprovided_A : A;
+fun unprovoked_A : A;
+fun unpublished_A : A;
+fun unpunished_A : A;
+fun unputdownable_A : A;
+fun unqualified_A : A;
+fun unquestionable_A : A;
+fun unquestioned_A : A;
+fun unquestioning_A : A;
+fun unquiet_A : A;
+fun unquotable_A : A;
+fun unquote_Adv : Adv;
+fun unravel_V : V;
+fun unravel_V2 : V2;
+fun unreached_A : A;
+fun unread_A : A;
+fun unreadable_A : A;
+fun unready_A : A;
+fun unreal_A : A;
+fun unrealistic_A : A;
+fun unrealistically_Adv : Adv;
+fun unreality_N : N;
+fun unrealized_A : A;
+fun unreasonable_A : A;
+fun unreasoning_A : A;
+fun unreceptive_A : A;
+fun unreciprocated_A : A;
+fun unrecognizable_A : A;
+fun unrecognized_A : A;
+fun unreconciled_A : A;
+fun unrecorded_A : A;
+fun unredeemable_A : A;
+fun unrefined_A : A;
+fun unreflective_A : A;
+fun unregenerate_A : A;
+fun unregistered_A : A;
+fun unrehearsed_A : A;
+fun unrelated_A : A;
+fun unrelaxed_A : A;
+fun unrelenting_A : A;
+fun unreliable_A : A;
+fun unrelieved_A : A;
+fun unremarkable_A : A;
+fun unremitting_A : A;
+fun unrepeatable_A : A;
+fun unrepentant_A : A;
+fun unrepresentative_A : A;
+fun unrequested_A : A;
+fun unrequited_A : A;
+fun unreserved_A : A;
+fun unresisting_A : A;
+fun unresolved_A : A;
+fun unrest_N : N;
+fun unrestrained_A : A;
+fun unrestricted_A : A;
+fun unrevised_A : A;
+fun unrewarded_A : A;
+fun unrewarding_A : A;
+fun unrhythmical_A : A;
+fun unrighteous_A : A;
+fun unripe_A : A;
+fun unripened_A : A;
+fun unrivalled_A : A;
+fun unroll_V : V;
+fun unroll_V2 : V2;
+fun unromantic_A : A;
+fun unromantically_Adv : Adv;
+fun unruffled_A : A;
+fun unruly_A : A;
+fun unsaddle_V2 : V2;
+fun unsaddled_A : A;
+fun unsafe_A : A;
+fun unsaid_A : A;
+fun unsaleable_A : A;
+fun unsalted_A : A;
+fun unsatisfactory_A : A;
+fun unsatisfied_A : A;
+fun unsatisfying_A : A;
+fun unsaturated_A : A;
+fun unsavoury_A : A;
+fun unsay_V2 : V2;
+fun unscathed_A : A;
+fun unscheduled_A : A;
+fun unscientific_A : A;
+fun unscientifically_Adv : Adv;
+fun unscramble_V2 : V2;
+fun unscrew_V : V;
+fun unscrew_V2 : V2;
+fun unscripted_A : A;
+fun unscrupulous_A : A;
+fun unsealed_A : A;
+fun unseasonable_A : A;
+fun unseasoned_A : A;
+fun unseat_V2 : V2;
+fun unseaworthy_A : A;
+fun unsecured_A : A;
+fun unseeded_A : A;
+fun unseeing_A : A;
+fun unseemly_A : A;
+fun unseen_A : A;
+fun unseen_N : N;
+fun unselected_A : A;
+fun unselective_A : A;
+fun unselfconscious_A : A;
+fun unselfish_A : A;
+fun unselfishness_N : N;
+fun unsettle_V2 : V2;
+fun unsex_V2 : V2;
+fun unsexed_A : A;
+fun unshakable_A : A;
+fun unshaved_A : A;
+fun unshaven_A : A;
+fun unsheathe_V2 : V2;
+fun unshielded_A : A;
+fun unshrinkable_A : A;
+fun unshrinking_A : A;
+fun unshuttered_A : A;
+fun unsighted_A : A;
+fun unsightliness_N : N;
+fun unsightly_A : A;
+fun unsigned_A : A;
+fun unsilenced_A : A;
+fun unsinkable_A : A;
+fun unskilled_A : A;
+fun unsmiling_A : A;
+fun unsociable_A : A;
+fun unsocial_A : A;
+fun unsold_A : A;
+fun unsolicited_A : A;
+fun unsolved_A : A;
+fun unsophisticated_A : A;
+fun unsound_A : A;
+fun unsparing_A : A;
+fun unspeakable_A : A;
+fun unspecialized_A : A;
+fun unspecific_A : A;
+fun unspecifically_Adv : Adv;
+fun unspecified_A : A;
+fun unspectacular_A : A;
+fun unspoiled_A : A;
+fun unspoilt_A : A;
+fun unspoken_A : A;
+fun unsporting_A : A;
+fun unsportsmanlike_A : A;
+fun unspotted_A : A;
+fun unstable_A : A;
+fun unstartling_A : A;
+fun unstated_A : A;
+fun unstatesmanlike_A : A;
+fun unsteady_A : A;
+fun unstoppable_A : A;
+fun unstrained_A : A;
+fun unstressed_A : A;
+fun unstructured_A : A;
+fun unstrung_A : A;
+fun unstuck_A : A;
+fun unstudied_A : A;
+fun unsubtle_A : A;
+fun unsuccessful_A : A;
+fun unsuitability_N : N;
+fun unsuitable_A : A;
+fun unsuited_A : A;
+fun unsullied_A : A;
+fun unsung_A : A;
+fun unsupervised_A : A;
+fun unsupported_A : A;
+fun unsure_A : A;
+fun unsurpassed_A : A;
+fun unsuspected_A : A;
+fun unsuspecting_A : A;
+fun unsuspicious_A : A;
+fun unswayed_A : A;
+fun unsweetened_A : A;
+fun unswept_A : A;
+fun unswerving_A : A;
+fun unsyllabic_A : A;
+fun unsympathetic_A : A;
+fun unsympathetically_Adv : Adv;
+fun unsystematic_A : A;
+fun unsystematically_Adv : Adv;
+fun untainted_A : A;
+fun untamed_A : A;
+fun untapped_A : A;
+fun untarnished_A : A;
+fun untaxed_A : A;
+fun untenable_A : A;
+fun untenanted_A : A;
+fun untended_A : A;
+fun untested_A : A;
+fun untethered_A : A;
+fun unthinkable_A : A;
+fun unthinking_A : A;
+fun unthought_of_A : A;
+fun untidily_Adv : Adv;
+fun untidiness_N : N;
+fun untidy_A : A;
+fun untie_V : V;
+fun untie_V2 : V2;
+fun untimely_A : A;
+fun untiring_A : A;
+fun untitled_A : A;
+fun untold_A : A;
+fun untouchable_A : A;
+fun untouchable_N : N;
+fun untouched_A : A;
+fun untoward_A : A;
+fun untrained_A : A;
+fun untrammelled_A : A;
+fun untranslatable_A : A;
+fun untreated_A : A;
+fun untried_A : A;
+fun untroubled_A : A;
+fun untrue_A : A;
+fun untruly_Adv : Adv;
+fun untrustworthy_A : A;
+fun untruth_N : N;
+fun untruthful_A : A;
+fun untucked_A : A;
+fun unturned_A : A;
+fun untutored_A : A;
+fun untwisted_A : A;
+fun untypical_A : A;
+fun unused_A : A;
+fun unusual_A : A;
+fun unutterable_A : A;
+fun unvaried_A : A;
+fun unvarnished_A : A;
+fun unvarying_A : A;
+fun unveil_V : V;
+fun unveil_V2 : V2;
+fun unverified_A : A;
+fun unversed_A : A;
+fun unvigilant_A : A;
+fun unvoiced_A : A;
+fun unwanted_A : A;
+fun unwarrantably_Adv : Adv;
+fun unwarranted_A : A;
+fun unwary_A : A;
+fun unwashed_A : A;
+fun unwavering_A : A;
+fun unweaned_A : A;
+fun unwearied_A : A;
+fun unwed_A : A;
+fun unwelcome_A : A;
+fun unwell_A : A;
+fun unwholesome_A : A;
+fun unwieldiness_N : N;
+fun unwieldy_A : A;
+fun unwilling_A : A;
+fun unwillingness_N : N;
+fun unwind_V : V;
+fun unwind_V2 : V2;
+fun unwise_A : A;
+fun unwitnessed_A : A;
+fun unwitting_A : A;
+fun unwonted_A : A;
+fun unworkable_A : A;
+fun unworkmanlike_A : A;
+fun unworldly_A : A;
+fun unworn_A : A;
+fun unworried_A : A;
+fun unworthiness_N : N;
+fun unworthy_A : A;
+fun unwrap_V : V;
+fun unwrap_V2 : V2;
+fun unwritten_A : A;
+fun unyielding_A : A;
+fun unzip_V2 : V2;
+fun up_Adv : Adv;
+fun up_V : V;
+fun up_V2 : V2;
+fun up_and_coming_A : A;
+fun up_beat_N : N;
+fun up_holland_PN : PN;
+fun up_market_A : A;
+fun up_to_date_A : A;
+fun up_to_the_minute_A : A;
+fun upbraid_V2 : V2;
+fun upbraiding_N : N;
+fun upbringing_N : N;
+fun upcountry_A : A;
+fun upcountry_Adv : Adv;
+fun update_V2 : V2;
+fun upgrade_N : N;
+fun upgrade_V2 : V2;
+fun upheaval_N : N;
+fun uphill_A : A;
+fun uphill_Adv : Adv;
+fun uphold_V2 : V2;
+fun upholster_V2 : V2;
+fun upholsterer_N : N;
+fun upholstery_N : N;
+fun upkeep_N : N;
+fun upland_N : N;
+fun uplift_N : N;
+fun uplift_V2 : V2;
+fun upmost_A : A;
+fun upper_A : A;
+fun upper_N : N;
+fun uppercut_N : N;
+fun uppermost_A : A;
+fun uppermost_Adv : Adv;
+fun uppish_A : A;
+fun uppishness_N : N;
+fun uppity_A : A;
+fun upright_A : A;
+fun upright_N : N;
+fun uprightness_N : N;
+fun uprising_N : N;
+fun uproar_N : N;
+fun uproarious_A : A;
+fun uproot_V2 : V2;
+fun upset_N : N;
+fun upset_V : V;
+fun upset_V2 : V2;
+fun upshot_N : N;
+fun upside_down_Adv : Adv;
+fun upstage_A : A;
+fun upstage_Adv : Adv;
+fun upstage_V2 : V2;
+fun upstairs_A : A;
+fun upstairs_Adv : Adv;
+fun upstanding_A : A;
+fun upstart_A : A;
+fun upstart_N : N;
+fun upstream_Adv : Adv;
+fun upsurge_N : N;
+fun uptake_N : N;
+fun uptight_A : A;
+fun upton_PN : PN;
+fun uptown_A : A;
+fun uptown_Adv : Adv;
+fun upturn_N : N;
+fun upturned_A : A;
+fun upward_A : A;
+fun upward_Adv : Adv;
+fun upwards_Adv : Adv;
+fun uranium_N : N;
+fun uranus_PN : PN;
+fun urban_A : A;
+fun urbane_A : A;
+fun urbanity_N : N;
+fun urbanization_N : N;
+fun urbanize_V2 : V2;
+fun urchin_N : N;
+fun urdu_A : A;
+fun urdu_N : N;
+fun urge_N : N;
+fun urge_V2 : V2;
+fun urgency_N : N;
+fun urgent_A : A;
+fun urging_N : N;
+fun uric_A : A;
+fun urinal_N : N;
+fun urinary_A : A;
+fun urinate_V : V;
+fun urine_N : N;
+fun urn_N : N;
+fun ursula_PN : PN;
+fun uruguay_PN : PN;
+fun uruguayan_A : A;
+fun uruguayan_N : N;
+fun urumchi_PN : PN;
+fun us_PN : PN;
+fun usa_PN : PN;
+fun usable_A : A;
+fun usaf_N : N;
+fun usage_N : N;
+fun use_N : N;
+fun use_V2 : V2;
+fun used_A : A;
+fun useful_A : A;
+fun usefulness_N : N;
+fun useless_A : A;
+fun uselessness_N : N;
+fun user_N : N;
+fun ushaw_moor_PN : PN;
+fun usher_N : N;
+fun usher_V2 : V2;
+fun usherette_N : N;
+fun usn_N : N;
+fun uss_N : N;
+fun ussr_N : N;
+fun usual_A : A;
+fun usurer_N : N;
+fun usurious_A : A;
+fun usurp_V2 : V2;
+fun usurpation_N : N;
+fun usurper_N : N;
+fun usury_N : N;
+fun utah_PN : PN;
+fun utensil_N : N;
+fun uterine_A : A;
+fun uterus_N : N;
+fun utilitarian_A : A;
+fun utilitarian_N : N;
+fun utilitarianism_N : N;
+fun utility_N : N;
+fun utilizable_A : A;
+fun utilization_N : N;
+fun utilize_V2 : V2;
+fun utmost_A : A;
+fun utmost_N : N;
+fun utopia_N : N;
+fun utopian_A : A;
+fun utrecht_PN : PN;
+fun utter_A : A;
+fun utter_V2 : V2;
+fun utterance_N : N;
+fun uttermost_A : A;
+fun uttermost_N : N;
+fun uttoxeter_PN : PN;
+fun uvula_N : N;
+fun uvular_A : A;
+fun uxorious_A : A;
+fun uxoriousness_N : N;
+fun v_and_a_N : N;
+fun vac_N : N;
+fun vacancy_N : N;
+fun vacant_A : A;
+fun vacate_V2 : V2;
+fun vacation_N : N;
+fun vacation_V : V;
+fun vacationist_N : N;
+fun vaccinate_V2 : V2;
+fun vaccination_N : N;
+fun vaccine_N : N;
+fun vacillate_V : V;
+fun vacillation_N : N;
+fun vacuity_N : N;
+fun vacuous_A : A;
+fun vacuum_N : N;
+fun vade_mecum_N : N;
+fun vagabond_A : A;
+fun vagabond_N : N;
+fun vagary_N : N;
+fun vagina_N : N;
+fun vaginal_A : A;
+fun vagrancy_N : N;
+fun vagrant_A : A;
+fun vagrant_N : N;
+fun vague_A : A;
+fun vagueness_N : N;
+fun vain_A : A;
+fun vainglorious_A : A;
+fun vainglory_N : N;
+fun valance_N : N;
+fun vale_N : N;
+fun valediction_N : N;
+fun valedictory_A : A;
+fun valence_N : N;
+fun valencia_PN : PN;
+fun valenciennes_PN : PN;
+fun valency_N : N;
+fun valentine_N : N;
+fun valerian_N : N;
+fun valet_N : N;
+fun valet_V2 : V2;
+fun valetudinarian_A : A;
+fun valetudinarian_N : N;
+fun valiant_A : A;
+fun valid_A : A;
+fun validate_V2 : V2;
+fun validity_N : N;
+fun valise_N : N;
+fun valladolid_PN : PN;
+fun valley_N : N;
+fun valorous_A : A;
+fun valour_N : N;
+fun valuable_A : A;
+fun valuable_N : N;
+fun valuation_N : N;
+fun value_N : N;
+fun value_V2 : V2;
+fun value_added_A : A;
+fun valueless_A : A;
+fun valuer_N : N;
+fun valve_N : N;
+fun valvular_A : A;
+fun vamoose_V : V;
+fun vamp_N : N;
+fun vamp_V : V;
+fun vamp_V2 : V2;
+fun vampire_N : N;
+fun van_N : N;
+fun vancouver_PN : PN;
+fun vandal_N : N;
+fun vandalism_N : N;
+fun vane_N : N;
+fun vanessa_PN : PN;
+fun vanguard_N : N;
+fun vanilla_N : N;
+fun vanish_V : V;
+fun vanity_N : N;
+fun vanquish_V2 : V2;
+fun vantage_N : N;
+fun vantage_point_N : N;
+fun vapid_A : A;
+fun vapidity_N : N;
+fun vapidness_N : N;
+fun vaporization_N : N;
+fun vaporize_V : V;
+fun vaporize_V2 : V2;
+fun vaporous_A : A;
+fun vapour_N : N;
+fun vapour_bath_N : N;
+fun varanasi_PN : PN;
+fun variability_N : N;
+fun variable_A : A;
+fun variable_N : N;
+fun variableness_N : N;
+fun variance_N : N;
+fun variant_A : A;
+fun variant_N : N;
+fun variation_N : N;
+fun varicoloured_A : A;
+fun varicose_A : A;
+fun varied_A : A;
+fun variegated_A : A;
+fun variegation_N : N;
+fun variety_N : N;
+fun variform_A : A;
+fun variorum_A : A;
+fun various_A : A;
+fun varlet_N : N;
+fun varnish_N : N;
+fun varnish_V2 : V2;
+fun varsity_N : N;
+fun vary_V : V;
+fun vary_V2 : V2;
+fun vascular_A : A;
+fun vase_N : N;
+fun vasectomy_N : N;
+fun vaseline_N : N;
+fun vassal_N : N;
+fun vassalage_N : N;
+fun vast_A : A;
+fun vasteras_PN : PN;
+fun vastness_N : N;
+fun vat_N : N;
+fun vatican_N : N;
+fun vaudeville_N : N;
+fun vault_N : N;
+fun vault_V : V;
+fun vault_V2 : V2;
+fun vaulted_A : A;
+fun vaulter_N : N;
+fun vaulting_horse_N : N;
+fun vaunt_N : N;
+fun vaunt_V : V;
+fun vaunt_V2 : V2;
+fun vaunter_N : N;
+fun vauntingly_Adv : Adv;
+fun vc_N : N;
+fun vd_N : N;
+fun veal_N : N;
+fun vector_N : N;
+fun veer_V : V;
+fun vegetable_A : A;
+fun vegetable_N : N;
+fun vegetarian_N : N;
+fun vegetate_V : V;
+fun vegetation_N : N;
+fun vehemence_N : N;
+fun vehement_A : A;
+fun vehicle_N : N;
+fun vehicular_A : A;
+fun veil_N : N;
+fun veil_V2 : V2;
+fun veiling_N : N;
+fun vein_N : N;
+fun veined_A : A;
+fun veld_N : N;
+fun vellum_N : N;
+fun velocipede_N : N;
+fun velocity_N : N;
+fun velour_N : N;
+fun velvet_N : N;
+fun velveteen_N : N;
+fun velvety_A : A;
+fun venal_A : A;
+fun venality_N : N;
+fun vend_V2 : V2;
+fun vendee_N : N;
+fun vender_N : N;
+fun vendetta_N : N;
+fun vendor_N : N;
+fun veneer_N : N;
+fun veneer_V2 : V2;
+fun venerable_A : A;
+fun venerate_V2 : V2;
+fun veneration_N : N;
+fun venereal_A : A;
+fun venetian_A : A;
+fun venezia_PN : PN;
+fun venezuela_PN : PN;
+fun venezuelan_A : A;
+fun venezuelan_N : N;
+fun vengeance_N : N;
+fun vengeful_A : A;
+fun venial_A : A;
+fun venice_PN : PN;
+fun venison_N : N;
+fun venom_N : N;
+fun venomed_A : A;
+fun venomous_A : A;
+fun venous_A : A;
+fun vent_N : N;
+fun vent_V2 : V2;
+fun vent_hole_N : N;
+fun ventilate_V2 : V2;
+fun ventilation_N : N;
+fun ventilator_N : N;
+fun ventnor_PN : PN;
+fun ventral_A : A;
+fun ventricle_N : N;
+fun ventricular_A : A;
+fun ventriloquism_N : N;
+fun ventriloquist_N : N;
+fun venture_N : N;
+fun venture_V : V;
+fun venture_V2 : V2;
+fun venturesome_A : A;
+fun venturous_A : A;
+fun venue_N : N;
+fun venus_PN : PN;
+fun vera_PN : PN;
+fun veracious_A : A;
+fun veracity_N : N;
+fun veranda_N : N;
+fun verandah_N : N;
+fun verb_N : N;
+fun verbal_A : A;
+fun verbalize_V2 : V2;
+fun verbatim_A : A;
+fun verbatim_Adv : Adv;
+fun verbena_N : N;
+fun verbiage_N : N;
+fun verbose_A : A;
+fun verboseness_N : N;
+fun verbosity_N : N;
+fun verdancy_N : N;
+fun verdant_A : A;
+fun verdict_N : N;
+fun verdigris_N : N;
+fun verdure_N : N;
+fun verey_A : A;
+fun verge_N : N;
+fun verge_V : V;
+fun verger_N : N;
+fun verifiable_A : A;
+fun verification_N : N;
+fun verify_V2 : V2;
+fun verisimilitude_N : N;
+fun veritable_A : A;
+fun verity_N : N;
+fun vermicelli_N : N;
+fun vermiform_A : A;
+fun vermilion_A : A;
+fun vermilion_N : N;
+fun vermin_N : N;
+fun verminous_A : A;
+fun vermont_PN : PN;
+fun vermouth_N : N;
+fun vernacular_A : A;
+fun vernacular_N : N;
+fun vernal_A : A;
+fun vernon_PN : PN;
+fun verona_PN : PN;
+fun veronica_N : N;
+fun veronica_PN : PN;
+fun verruca_N : N;
+fun versatile_A : A;
+fun versatility_N : N;
+fun verse_N : N;
+fun versed_A : A;
+fun versification_N : N;
+fun versifier_N : N;
+fun versify_V : V;
+fun versify_V2 : V2;
+fun version_N : N;
+fun verso_N : N;
+fun vertebra_N : N;
+fun vertebrate_A : A;
+fun vertebrate_N : N;
+fun vertex_N : N;
+fun vertical_A : A;
+fun vertical_N : N;
+fun vertiginous_A : A;
+fun vertigo_N : N;
+fun verve_N : N;
+fun very_A : A;
+fun very_Adv : Adv;
+fun vesicle_N : N;
+fun vesicular_A : A;
+fun vessel_N : N;
+fun vest_N : N;
+fun vest_V : V;
+fun vest_V2 : V2;
+fun vestal_A : A;
+fun vestal_N : N;
+fun vestibule_N : N;
+fun vestige_N : N;
+fun vestigial_A : A;
+fun vestment_N : N;
+fun vestry_N : N;
+fun vestryman_N : N;
+fun vesture_N : N;
+fun vesture_V2 : V2;
+fun vet_N : N;
+fun vet_V2 : V2;
+fun vetch_N : N;
+fun veteran_N : N;
+fun veterinary_A : A;
+fun veto_N : N;
+fun veto_V2 : V2;
+fun vex_V2 : V2;
+fun vexation_N : N;
+fun vexatious_A : A;
+fun vhf_PN : PN;
+fun via_media_N : N;
+fun viability_N : N;
+fun viable_A : A;
+fun viaduct_N : N;
+fun vial_N : N;
+fun vibrant_A : A;
+fun vibraphone_N : N;
+fun vibrate_V : V;
+fun vibrate_V2 : V2;
+fun vibration_N : N;
+fun vibrato_N : N;
+fun vibrator_N : N;
+fun vic_PN : PN;
+fun vicar_N : N;
+fun vicarage_N : N;
+fun vicarious_A : A;
+fun vice_N : N;
+fun vice_versa_Adv : Adv;
+fun vicenza_PN : PN;
+fun viceregal_A : A;
+fun vicereine_N : N;
+fun viceroy_N : N;
+fun vicinity_N : N;
+fun vicious_A : A;
+fun viciousness_N : N;
+fun vicissitude_N : N;
+fun vicky_PN : PN;
+fun victim_N : N;
+fun victimization_N : N;
+fun victimize_V2 : V2;
+fun victor_N : N;
+fun victor_PN : PN;
+fun victoria_N : N;
+fun victoria_PN : PN;
+fun victorian_A : A;
+fun victorian_N : N;
+fun victoriana_N : N;
+fun victorious_A : A;
+fun victory_N : N;
+fun victual_N : N;
+fun victual_V : V;
+fun victual_V2 : V2;
+fun victualler_N : N;
+fun vicuna_N : N;
+fun videlicet_Adv : Adv;
+fun video_N : N;
+fun videotape_N : N;
+fun videotape_V2 : V2;
+fun vie_V : V;
+fun vienna_PN : PN;
+fun vietnam_PN : PN;
+fun vietnamese_A : A;
+fun vietnamese_N : N;
+fun view_N : N;
+fun view_V2 : V2;
+fun viewer_N : N;
+fun viewfinder_N : N;
+fun viewless_A : A;
+fun viewpark_PN : PN;
+fun viewpoint_N : N;
+fun vigil_N : N;
+fun vigilance_N : N;
+fun vigilant_A : A;
+fun vigilante_N : N;
+fun vignette_N : N;
+fun vigo_PN : PN;
+fun vigorous_A : A;
+fun vigour_N : N;
+fun viking_N : N;
+fun vile_A : A;
+fun vileness_N : N;
+fun vilification_N : N;
+fun vilify_V2 : V2;
+fun villa_N : N;
+fun village_N : N;
+fun villager_N : N;
+fun villain_N : N;
+fun villainess_N : N;
+fun villainous_A : A;
+fun villainy_N : N;
+fun villein_N : N;
+fun villeinage_N : N;
+fun vim_N : N;
+fun vinaigrette_N : N;
+fun vince_PN : PN;
+fun vincent_PN : PN;
+fun vindicate_V2 : V2;
+fun vindication_N : N;
+fun vindictive_A : A;
+fun vindictiveness_N : N;
+fun vine_N : N;
+fun vinegar_N : N;
+fun vinegary_A : A;
+fun vinery_N : N;
+fun vineyard_N : N;
+fun vino_N : N;
+fun vinous_A : A;
+fun vintage_N : N;
+fun vintner_N : N;
+fun vinyl_N : N;
+fun viol_N : N;
+fun viola_N : N;
+fun viola_PN : PN;
+fun violate_V2 : V2;
+fun violation_N : N;
+fun violence_N : N;
+fun violent_A : A;
+fun violet_N : N;
+fun violet_PN : PN;
+fun violin_N : N;
+fun violinist_N : N;
+fun vip_N : N;
+fun viper_N : N;
+fun vips_N : N;
+fun virago_N : N;
+fun virgin_A : A;
+fun virgin_N : N;
+fun virginal_A : A;
+fun virginal_N : N;
+fun virginia_N : N;
+fun virginia_PN : PN;
+fun virginia_water_PN : PN;
+fun virginity_N : N;
+fun virgo_PN : PN;
+fun virgule_N : N;
+fun virile_A : A;
+fun virility_N : N;
+fun virology_N : N;
+fun virtu_N : N;
+fun virtual_A : A;
+fun virtue_N : N;
+fun virtuosity_N : N;
+fun virtuoso_N : N;
+fun virtuous_A : A;
+fun virulence_N : N;
+fun virulent_A : A;
+fun virus_N : N;
+fun vis_a_vis_Adv : Adv;
+fun visa_N : N;
+fun visa_V2 : V2;
+fun visage_N : N;
+fun visaged_A : A;
+fun visceral_A : A;
+fun viscid_A : A;
+fun viscosity_N : N;
+fun viscount_N : N;
+fun viscountcy_N : N;
+fun viscountess_N : N;
+fun viscous_A : A;
+fun visibility_N : N;
+fun visible_A : A;
+fun vision_N : N;
+fun visionary_A : A;
+fun visionary_N : N;
+fun visit_N : N;
+fun visit_V : V;
+fun visit_V2 : V2;
+fun visitant_N : N;
+fun visitation_N : N;
+fun visiting_N : N;
+fun visitor_N : N;
+fun visor_N : N;
+fun vista_N : N;
+fun visual_A : A;
+fun visualization_N : N;
+fun visualize_V2 : V2;
+fun vital_A : A;
+fun vitalism_N : N;
+fun vitalist_N : N;
+fun vitality_N : N;
+fun vitalize_V2 : V2;
+fun vitamin_N : N;
+fun vitiate_V2 : V2;
+fun vitoria_PN : PN;
+fun vitreous_A : A;
+fun vitrify_V : V;
+fun vitrify_V2 : V2;
+fun vitriol_N : N;
+fun vitriolic_A : A;
+fun vituperate_V2 : V2;
+fun vituperation_N : N;
+fun vituperative_A : A;
+fun viv_PN : PN;
+fun viva_N : N;
+fun viva_voce_A : A;
+fun viva_voce_Adv : Adv;
+fun viva_voce_N : N;
+fun vivace_Adv : Adv;
+fun vivacious_A : A;
+fun vivacity_N : N;
+fun vivian_PN : PN;
+fun vivid_A : A;
+fun vividness_N : N;
+fun vivien_PN : PN;
+fun vivienne_PN : PN;
+fun viviparous_A : A;
+fun vivisect_V2 : V2;
+fun vivisection_N : N;
+fun vivisectionist_N : N;
+fun vixen_N : N;
+fun vixenish_A : A;
+fun viz_PN : PN;
+fun vizier_N : N;
+fun vocabulary_N : N;
+fun vocal_A : A;
+fun vocalist_N : N;
+fun vocalize_V2 : V2;
+fun vocation_N : N;
+fun vocational_A : A;
+fun vocative_A : A;
+fun vocative_N : N;
+fun vociferate_V : V;
+fun vociferate_V2 : V2;
+fun vociferation_N : N;
+fun vociferous_A : A;
+fun vodka_N : N;
+fun vogue_N : N;
+fun voice_N : N;
+fun voice_V2 : V2;
+fun voiced_A : A;
+fun voiceless_A : A;
+fun void_A : A;
+fun void_N : N;
+fun void_V2 : V2;
+fun voile_N : N;
+fun vol_N : N;
+fun volatile_A : A;
+fun volatility_N : N;
+fun volcanic_A : A;
+fun volcano_N : N;
+fun vole_N : N;
+fun volgograd_PN : PN;
+fun volition_N : N;
+fun volitional_A : A;
+fun volley_N : N;
+fun volley_V : V;
+fun volley_V2 : V2;
+fun volleyball_N : N;
+fun vols_N : N;
+fun volt_N : N;
+fun voltage_N : N;
+fun volte_face_N : N;
+fun volubility_N : N;
+fun voluble_A : A;
+fun volume_N : N;
+fun voluminous_A : A;
+fun voluntary_A : A;
+fun voluntary_N : N;
+fun volunteer_N : N;
+fun volunteer_V : V;
+fun volunteer_V2 : V2;
+fun voluptuary_N : N;
+fun voluptuous_A : A;
+fun voluptuousness_N : N;
+fun volute_N : N;
+fun voluted_A : A;
+fun vomit_N : N;
+fun vomit_V : V;
+fun vomit_V2 : V2;
+fun voodoo_N : N;
+fun voodooism_N : N;
+fun voracious_A : A;
+fun voracity_N : N;
+fun voronezh_PN : PN;
+fun vortex_N : N;
+fun votary_N : N;
+fun vote_N : N;
+fun vote_V : V;
+fun vote_V2 : V2;
+fun voteless_A : A;
+fun voter_N : N;
+fun votive_A : A;
+fun vouch_V : V;
+fun voucher_N : N;
+fun vouchsafe_V2 : V2;
+fun vow_N : N;
+fun vow_V2 : V2;
+fun vowel_N : N;
+fun vox_N : N;
+fun vox_populi_N : N;
+fun voyage_N : N;
+fun voyage_V : V;
+fun voyager_N : N;
+fun voyeur_N : N;
+fun voyeurism_N : N;
+fun voyeuristic_A : A;
+fun voyeuristically_Adv : Adv;
+fun vp_N : N;
+fun vs_PN : PN;
+fun vso_PN : PN;
+fun vulcanite_N : N;
+fun vulcanization_N : N;
+fun vulcanize_V2 : V2;
+fun vulgar_A : A;
+fun vulgarian_N : N;
+fun vulgarism_N : N;
+fun vulgarity_N : N;
+fun vulgarization_N : N;
+fun vulgarize_V2 : V2;
+fun vulgate_N : N;
+fun vulnerability_N : N;
+fun vulnerable_A : A;
+fun vulpine_A : A;
+fun vulture_N : N;
+fun vulva_N : N;
+fun wad_N : N;
+fun wad_V2 : V2;
+fun wadding_N : N;
+fun waddle_N : N;
+fun waddle_V : V;
+fun wade_V : V;
+fun wade_V2 : V2;
+fun wader_N : N;
+fun wadi_N : N;
+fun wafer_N : N;
+fun waffle_N : N;
+fun waffle_V : V;
+fun waft_N : N;
+fun waft_V2 : V2;
+fun wag_N : N;
+fun wag_V : V;
+fun wag_V2 : V2;
+fun wage_N : N;
+fun wage_V2 : V2;
+fun wage_claim_N : N;
+fun wage_earner_N : N;
+fun wage_freeze_N : N;
+fun wager_N : N;
+fun wager_V : V;
+fun wager_V2 : V2;
+fun waggery_N : N;
+fun waggish_A : A;
+fun waggishness_N : N;
+fun waggle_V : V;
+fun waggle_V2 : V2;
+fun waggon_N : N;
+fun waggoner_N : N;
+fun wagon_lit_N : N;
+fun wagtail_N : N;
+fun waif_N : N;
+fun wail_N : N;
+fun wail_V : V;
+fun wail_V2 : V2;
+fun wain_N : N;
+fun wainscot_N : N;
+fun wainscoted_A : A;
+fun waist_N : N;
+fun waist_deep_A : A;
+fun waist_deep_Adv : Adv;
+fun waist_high_A : A;
+fun waist_high_Adv : Adv;
+fun waistband_N : N;
+fun waistcoat_N : N;
+fun waistline_N : N;
+fun wait_N : N;
+fun wait_V : V;
+fun wait_V2 : V2;
+fun waiter_N : N;
+fun waiting_list_N : N;
+fun waiting_room_N : N;
+fun waitress_N : N;
+fun waive_V2 : V2;
+fun waiver_N : N;
+fun wake_N : N;
+fun wake_V : V;
+fun wake_V2 : V2;
+fun wakefield_PN : PN;
+fun wakeful_A : A;
+fun wakefulness_N : N;
+fun waken_V : V;
+fun waken_V2 : V2;
+fun waking_A : A;
+fun wale_N : N;
+fun wales_PN : PN;
+fun walk_N : N;
+fun walk_V : V;
+fun walk_V2 : V2;
+fun walkabout_N : N;
+fun walkaway_N : N;
+fun walker_N : N;
+fun walkie_talkie_N : N;
+fun walking_N : N;
+fun walkout_N : N;
+fun walkover_N : N;
+fun wall_N : N;
+fun wall_V2 : V2;
+fun wall_eyed_A : A;
+fun wall_painting_N : N;
+fun wall_street_PN : PN;
+fun wallaby_N : N;
+fun wallace_PN : PN;
+fun wallah_N : N;
+fun wallasey_PN : PN;
+fun wallet_N : N;
+fun wallflower_N : N;
+fun wallingford_PN : PN;
+fun wallop_N : N;
+fun wallop_V2 : V2;
+fun walloping_A : A;
+fun wallow_N : N;
+fun wallow_V : V;
+fun wallpaper_N : N;
+fun wallsend_PN : PN;
+fun wally_PN : PN;
+fun walnut_N : N;
+fun walrus_N : N;
+fun walsall_PN : PN;
+fun walsham_PN : PN;
+fun walter_PN : PN;
+fun waltham_forest_PN : PN;
+fun walton_PN : PN;
+fun waltz_N : N;
+fun waltz_V : V;
+fun waltz_V2 : V2;
+fun wampum_N : N;
+fun wan_A : A;
+fun wand_N : N;
+fun wander_V : V;
+fun wander_V2 : V2;
+fun wanderer_N : N;
+fun wanderlust_N : N;
+fun wandsworth_PN : PN;
+fun wane_N : N;
+fun wane_V : V;
+fun wangle_N : N;
+fun wangle_V2 : V2;
+fun wank_N : N;
+fun wank_V : V;
+fun wanness_N : N;
+fun want_N : N;
+fun want_V : V;
+fun want_V2 : V2;
+fun want_ad_N : N;
+fun wantage_PN : PN;
+fun wanton_A : A;
+fun wanton_N : N;
+fun wanton_V : V;
+fun wantonness_N : N;
+fun war_N : N;
+fun war_V : V;
+fun war_baby_N : N;
+fun war_bride_N : N;
+fun war_cloud_N : N;
+fun war_cry_N : N;
+fun war_dance_N : N;
+fun war_god_N : N;
+fun war_torn_A : A;
+fun war_widow_N : N;
+fun warble_N : N;
+fun warble_V : V;
+fun warble_V2 : V2;
+fun warbler_N : N;
+fun ward_N : N;
+fun ward_V2 : V2;
+fun warden_N : N;
+fun warder_N : N;
+fun wardress_N : N;
+fun wardrobe_N : N;
+fun wardroom_N : N;
+fun ware_N : N;
+fun ware_PN : PN;
+fun ware_V2 : V2;
+fun warehouse_N : N;
+fun warehousing_N : N;
+fun warfare_N : N;
+fun warhead_N : N;
+fun warhorse_N : N;
+fun warily_Adv : Adv;
+fun wariness_N : N;
+fun warley_PN : PN;
+fun warlike_A : A;
+fun warlord_N : N;
+fun warm_A : A;
+fun warm_V : V;
+fun warm_V2 : V2;
+fun warm_blooded_A : A;
+fun warm_hearted_A : A;
+fun warmer_N : N;
+fun warming_pan_N : N;
+fun warminster_PN : PN;
+fun warmonger_N : N;
+fun warmth_N : N;
+fun warn_V2 : V2;
+fun warning_A : A;
+fun warning_N : N;
+fun warp_N : N;
+fun warp_V : V;
+fun warp_V2 : V2;
+fun warpaint_N : N;
+fun warpath_N : N;
+fun warrant_N : N;
+fun warrant_V2 : V2;
+fun warrantee_N : N;
+fun warrantor_N : N;
+fun warranty_N : N;
+fun warren_N : N;
+fun warrington_PN : PN;
+fun warrior_N : N;
+fun warsaw_PN : PN;
+fun warship_N : N;
+fun warsop_PN : PN;
+fun wart_N : N;
+fun warthog_N : N;
+fun wartime_N : N;
+fun warwick_PN : PN;
+fun warwickshire_PN : PN;
+fun wary_A : A;
+fun wash_N : N;
+fun wash_V : V;
+fun wash_V2 : V2;
+fun wash_drawing_N : N;
+fun wash_hand_basin_N : N;
+fun wash_hand_stand_N : N;
+fun wash_house_N : N;
+fun wash_leather_N : N;
+fun washable_A : A;
+fun washbasin_N : N;
+fun washboard_N : N;
+fun washbowl_N : N;
+fun washcloth_N : N;
+fun washday_N : N;
+fun washer_N : N;
+fun washerwoman_N : N;
+fun washing_N : N;
+fun washing_day_N : N;
+fun washing_machine_N : N;
+fun washing_up_N : N;
+fun washington_PN : PN;
+fun washington_dc_PN : PN;
+fun washout_N : N;
+fun washroom_N : N;
+fun washstand_N : N;
+fun washtub_N : N;
+fun washy_A : A;
+fun wasp_N : N;
+fun wasp_waisted_A : A;
+fun waspish_A : A;
+fun wassail_N : N;
+fun wastage_N : N;
+fun waste_A : A;
+fun waste_N : N;
+fun waste_V : V;
+fun waste_V2 : V2;
+fun waste_paper_basket_N : N;
+fun waste_pipe_N : N;
+fun wastebasket_N : N;
+fun wastebin_N : N;
+fun wasteful_A : A;
+fun wasteland_N : N;
+fun waster_N : N;
+fun wastrel_N : N;
+fun watch_N : N;
+fun watch_V : V;
+fun watch_V2 : V2;
+fun watch_chain_N : N;
+fun watch_glass_N : N;
+fun watch_guard_N : N;
+fun watch_key_N : N;
+fun watchdog_N : N;
+fun watcher_N : N;
+fun watchful_A : A;
+fun watchfulness_N : N;
+fun watchmaker_N : N;
+fun watchman_N : N;
+fun watchtower_N : N;
+fun watchword_N : N;
+fun water_N : N;
+fun water_V : V;
+fun water_V2 : V2;
+fun water_biscuit_N : N;
+fun water_blister_N : N;
+fun water_bottle_N : N;
+fun water_buffalo_N : N;
+fun water_butt_N : N;
+fun water_cart_N : N;
+fun water_closet_N : N;
+fun water_finder_N : N;
+fun water_glass_N : N;
+fun water_hole_N : N;
+fun water_ice_N : N;
+fun water_jacket_N : N;
+fun water_level_N : N;
+fun water_lily_N : N;
+fun water_line_N : N;
+fun water_main_N : N;
+fun water_nymph_N : N;
+fun water_polo_N : N;
+fun water_power_N : N;
+fun water_rat_N : N;
+fun water_rate_N : N;
+fun water_skiing_N : N;
+fun water_skin_N : N;
+fun water_softener_N : N;
+fun water_spaniel_N : N;
+fun water_supply_N : N;
+fun water_tower_N : N;
+fun water_vole_N : N;
+fun water_waggon_N : N;
+fun water_wagon_N : N;
+fun water_wheel_N : N;
+fun water_worn_A : A;
+fun waterbird_N : N;
+fun waterborne_A : A;
+fun watercannon_N : N;
+fun waterchute_N : N;
+fun watercolour_N : N;
+fun watercolourist_N : N;
+fun watercourse_N : N;
+fun watercress_N : N;
+fun waterfall_N : N;
+fun waterford_PN : PN;
+fun waterfowl_N : N;
+fun waterfront_N : N;
+fun waterhen_N : N;
+fun waterhyacinth_N : N;
+fun watering_can_N : N;
+fun watering_cart_N : N;
+fun waterless_A : A;
+fun waterlogged_A : A;
+fun waterloo_PN : PN;
+fun waterman_N : N;
+fun watermark_N : N;
+fun watermelon_N : N;
+fun watermill_N : N;
+fun waterproof_A : A;
+fun waterproof_N : N;
+fun waterproof_V2 : V2;
+fun watershed_N : N;
+fun waterside_N : N;
+fun waterspout_N : N;
+fun watertable_N : N;
+fun watertight_A : A;
+fun waterway_N : N;
+fun waterworks_N : N;
+fun watery_A : A;
+fun watford_PN : PN;
+fun watt_N : N;
+fun wattage_N : N;
+fun wattle_N : N;
+fun wave_N : N;
+fun wave_V : V;
+fun wave_V2 : V2;
+fun wavelength_N : N;
+fun waver_V : V;
+fun waverer_N : N;
+fun wavy_A : A;
+fun wax_N : N;
+fun wax_V : V;
+fun wax_V2 : V2;
+fun wax_chandler_N : N;
+fun wax_paper_N : N;
+fun waxen_A : A;
+fun waxwork_N : N;
+fun waxy_A : A;
+fun way_Adv : Adv;
+fun way_N : N;
+fun way_out_A : A;
+fun waybill_N : N;
+fun wayfarer_N : N;
+fun wayfaring_A : A;
+fun waylay_V2 : V2;
+fun wayne_PN : PN;
+fun wayside_N : N;
+fun wayward_A : A;
+fun wc_N : N;
+fun wcs_N : N;
+fun weak_A : A;
+fun weak_kneed_A : A;
+fun weaken_V : V;
+fun weaken_V2 : V2;
+fun weakling_N : N;
+fun weakly_A : A;
+fun weakness_N : N;
+fun weal_N : N;
+fun weald_N : N;
+fun wealth_N : N;
+fun wealthily_Adv : Adv;
+fun wealthy_A : A;
+fun wean_V2 : V2;
+fun weapon_N : N;
+fun weaponless_A : A;
+fun wear_N : N;
+fun wear_PN : PN;
+fun wear_V : V;
+fun wear_V2 : V2;
+fun wearable_A : A;
+fun wearer_N : N;
+fun wearily_Adv : Adv;
+fun weariness_N : N;
+fun wearing_A : A;
+fun wearisome_A : A;
+fun weary_A : A;
+fun weary_V : V;
+fun weary_V2 : V2;
+fun weasel_N : N;
+fun weather_N : N;
+fun weather_V : V;
+fun weather_V2 : V2;
+fun weather_beaten_A : A;
+fun weather_bound_A : A;
+fun weather_bureau_N : N;
+fun weather_chart_N : N;
+fun weather_glass_N : N;
+fun weather_map_N : N;
+fun weather_ship_N : N;
+fun weather_station_N : N;
+fun weather_vane_N : N;
+fun weatherboarding_N : N;
+fun weathercock_N : N;
+fun weatherman_N : N;
+fun weatherproof_A : A;
+fun weave_N : N;
+fun weave_V : V;
+fun weave_V2 : V2;
+fun weaver_N : N;
+fun weaverbird_N : N;
+fun web_N : N;
+fun web_footed_A : A;
+fun web_toed_A : A;
+fun webbed_A : A;
+fun webbing_N : N;
+fun wed_PN : PN;
+fun wed_V : V;
+fun wed_V2 : V2;
+fun wedding_N : N;
+fun wedding_cake_N : N;
+fun wedding_ring_N : N;
+fun wedge_N : N;
+fun wedge_V2 : V2;
+fun wedlock_N : N;
+fun wednesday_N : N;
+fun wednesday_PN : PN;
+fun wee_A : A;
+fun wee_N : N;
+fun wee_V : V;
+fun wee_wee_N : N;
+fun weed_N : N;
+fun weed_V : V;
+fun weed_V2 : V2;
+fun weedkiller_N : N;
+fun weedy_A : A;
+fun week_N : N;
+fun weekday_N : N;
+fun weekend_N : N;
+fun weekend_V : V;
+fun weekender_N : N;
+fun weekly_A : A;
+fun weekly_Adv : Adv;
+fun weekly_N : N;
+fun weeny_A : A;
+fun weep_V : V;
+fun weep_V2 : V2;
+fun weeping_A : A;
+fun weevil_N : N;
+fun weft_N : N;
+fun weigh_V : V;
+fun weigh_V2 : V2;
+fun weighbridge_N : N;
+fun weighing_machine_N : N;
+fun weight_N : N;
+fun weight_V2 : V2;
+fun weightily_Adv : Adv;
+fun weightiness_N : N;
+fun weightless_A : A;
+fun weightlessness_N : N;
+fun weightlifting_N : N;
+fun weighty_A : A;
+fun weir_N : N;
+fun weird_A : A;
+fun weirdie_N : N;
+fun weirdness_N : N;
+fun welcome_A : A;
+fun welcome_N : N;
+fun welcome_V2 : V2;
+fun weld_N : N;
+fun weld_V : V;
+fun weld_V2 : V2;
+fun welder_N : N;
+fun welfare_N : N;
+fun welkin_N : N;
+fun well_A : A;
+fun well_Adv : Adv;
+fun well_N : N;
+fun well_V : V;
+fun well_adjusted_A : A;
+fun well_advised_A : A;
+fun well_appointed_A : A;
+fun well_balanced_A : A;
+fun well_behaved_A : A;
+fun well_being_N : N;
+fun well_born_A : A;
+fun well_bred_A : A;
+fun well_conducted_A : A;
+fun well_connected_A : A;
+fun well_disposed_A : A;
+fun well_doer_N : N;
+fun well_doing_N : N;
+fun well_favoured_A : A;
+fun well_found_A : A;
+fun well_founded_A : A;
+fun well_groomed_A : A;
+fun well_grounded_A : A;
+fun well_heeled_A : A;
+fun well_informed_A : A;
+fun well_intentioned_A : A;
+fun well_knit_A : A;
+fun well_known_A : A;
+fun well_lined_A : A;
+fun well_marked_A : A;
+fun well_meaning_A : A;
+fun well_meant_A : A;
+fun well_nigh_Adv : Adv;
+fun well_read_A : A;
+fun well_rounded_A : A;
+fun well_set_A : A;
+fun well_shaven_A : A;
+fun well_spoken_A : A;
+fun well_timed_A : A;
+fun well_to_do_A : A;
+fun well_tried_A : A;
+fun well_turned_A : A;
+fun well_water_N : N;
+fun well_wisher_N : N;
+fun well_worn_A : A;
+fun wellhead_N : N;
+fun wellingborough_PN : PN;
+fun wellington_N : N;
+fun wellington_PN : PN;
+fun wells_PN : PN;
+fun welsh_A : A;
+fun welsh_N : N;
+fun welsh_V : V;
+fun welsher_N : N;
+fun welshman_N : N;
+fun welshpool_PN : PN;
+fun welt_N : N;
+fun welter_A : A;
+fun welter_N : N;
+fun welter_V : V;
+fun welterweight_N : N;
+fun welwyn_PN : PN;
+fun welwyn_garden_city_PN : PN;
+fun wen_N : N;
+fun wench_N : N;
+fun wench_V : V;
+fun wend_V2 : V2;
+fun wendover_PN : PN;
+fun wendy_PN : PN;
+fun werewolf_N : N;
+fun wesleyan_A : A;
+fun wesleyan_N : N;
+fun west_A : A;
+fun west_Adv : Adv;
+fun west_N : N;
+fun west_bromwich_PN : PN;
+fun west_country_A : A;
+fun west_end_A : A;
+fun westbury_PN : PN;
+fun westerly_A : A;
+fun westerly_Adv : Adv;
+fun western_A : A;
+fun western_N : N;
+fun westerner_N : N;
+fun westernization_N : N;
+fun westernize_V2 : V2;
+fun westernmost_A : A;
+fun westhoughton_PN : PN;
+fun westmeath_PN : PN;
+fun westminster_PN : PN;
+fun westmoreland_PN : PN;
+fun weston_super_mare_PN : PN;
+fun westward_A : A;
+fun westward_Adv : Adv;
+fun westwards_Adv : Adv;
+fun wet_A : A;
+fun wet_N : N;
+fun wet_V2 : V2;
+fun wet_nurse_N : N;
+fun wether_N : N;
+fun wetherby_PN : PN;
+fun wetting_N : N;
+fun wexford_PN : PN;
+fun weymouth_PN : PN;
+fun whack_N : N;
+fun whack_V2 : V2;
+fun whacked_A : A;
+fun whacker_N : N;
+fun whacking_A : A;
+fun whacking_Adv : Adv;
+fun whacking_N : N;
+fun whale_N : N;
+fun whale_V : V;
+fun whalebone_N : N;
+fun whaler_N : N;
+fun whaley_bridge_PN : PN;
+fun whaling_gun_N : N;
+fun whang_Adv : Adv;
+fun whang_N : N;
+fun whang_V2 : V2;
+fun wharf_N : N;
+fun wharfage_N : N;
+fun what_A : A;
+fun what_for_N : N;
+fun whate'er_A : A;
+fun whatever_A : A;
+fun whatnot_N : N;
+fun whatsoe'er_A : A;
+fun whatsoever_A : A;
+fun wheat_N : N;
+fun wheaten_A : A;
+fun wheatley_hill_PN : PN;
+fun wheedle_V2 : V2;
+fun wheel_N : N;
+fun wheel_V : V;
+fun wheel_V2 : V2;
+fun wheelbarrow_N : N;
+fun wheelbase_N : N;
+fun wheelchair_N : N;
+fun wheelhouse_N : N;
+fun wheelwright_N : N;
+fun wheeze_N : N;
+fun wheeze_V : V;
+fun wheeze_V2 : V2;
+fun wheezily_Adv : Adv;
+fun wheeziness_N : N;
+fun wheezy_A : A;
+fun whelk_N : N;
+fun whelp_N : N;
+fun whelp_V : V;
+fun when_Adv : Adv;
+fun whence_Adv : Adv;
+fun whencesoever_A : A;
+fun whenever_Adv : Adv;
+fun where_Adv : Adv;
+fun whereabouts_Adv : Adv;
+fun whereat_Adv : Adv;
+fun whereby_Adv : Adv;
+fun wherefore_Adv : Adv;
+fun wherein_Adv : Adv;
+fun whereof_Adv : Adv;
+fun whereon_Adv : Adv;
+fun wheresoever_Adv : Adv;
+fun whereto_Adv : Adv;
+fun whereunto_Adv : Adv;
+fun whereupon_Adv : Adv;
+fun wherever_Adv : Adv;
+fun wherewith_Adv : Adv;
+fun wherewithal_Adv : Adv;
+fun wherewithal_N : N;
+fun wherry_N : N;
+fun whet_V2 : V2;
+fun whetstone_N : N;
+fun whey_N : N;
+fun which_A : A;
+fun whichever_A : A;
+fun whichsoever_A : A;
+fun whiff_N : N;
+fun whig_N : N;
+fun while_N : N;
+fun while_V2 : V2;
+fun whim_N : N;
+fun whimper_N : N;
+fun whimper_V : V;
+fun whimper_V2 : V2;
+fun whimsey_N : N;
+fun whimsical_A : A;
+fun whimsicality_N : N;
+fun whimsy_N : N;
+fun whin_N : N;
+fun whine_N : N;
+fun whine_V : V;
+fun whine_V2 : V2;
+fun whiner_N : N;
+fun whinny_N : N;
+fun whinny_V : V;
+fun whip_N : N;
+fun whip_V : V;
+fun whip_V2 : V2;
+fun whip_round_N : N;
+fun whipcord_N : N;
+fun whipper_in_N : N;
+fun whippersnapper_N : N;
+fun whippet_N : N;
+fun whipping_N : N;
+fun whipping_boy_N : N;
+fun whipping_post_N : N;
+fun whipping_top_N : N;
+fun whippoorwill_N : N;
+fun whippy_A : A;
+fun whir_N : N;
+fun whir_V : V;
+fun whirl_N : N;
+fun whirl_V : V;
+fun whirl_V2 : V2;
+fun whirligig_N : N;
+fun whirlpool_N : N;
+fun whirlwind_N : N;
+fun whirr_N : N;
+fun whirr_V : V;
+fun whisk_N : N;
+fun whisk_V : V;
+fun whisk_V2 : V2;
+fun whisker_N : N;
+fun whiskered_A : A;
+fun whiskey_N : N;
+fun whisky_N : N;
+fun whisper_N : N;
+fun whisper_V : V;
+fun whisper_V2 : V2;
+fun whisperer_N : N;
+fun whispering_N : N;
+fun whispering_gallery_N : N;
+fun whist_N : N;
+fun whist_drive_N : N;
+fun whistle_N : N;
+fun whistle_V : V;
+fun whistle_V2 : V2;
+fun whistle_stop_N : N;
+fun whit_N : N;
+fun whitburn_PN : PN;
+fun whitby_PN : PN;
+fun whitchurch_PN : PN;
+fun white_A : A;
+fun white_N : N;
+fun white_collar_A : A;
+fun white_hot_A : A;
+fun white_lipped_A : A;
+fun white_livered_A : A;
+fun whitebait_N : N;
+fun whitehall_PN : PN;
+fun whitehaven_PN : PN;
+fun whiten_V : V;
+fun whiten_V2 : V2;
+fun whiteness_N : N;
+fun whitening_N : N;
+fun whitethorn_N : N;
+fun whitewash_N : N;
+fun whitewash_V2 : V2;
+fun whither_Adv : Adv;
+fun whithersoever_Adv : Adv;
+fun whiting_N : N;
+fun whitish_A : A;
+fun whitley_bay_PN : PN;
+fun whitlow_N : N;
+fun whitstable_PN : PN;
+fun whitsun_N : N;
+fun whitsun_PN : PN;
+fun whitsuntide_N : N;
+fun whitsuntide_PN : PN;
+fun whittle_V : V;
+fun whittle_V2 : V2;
+fun whittle_le_woods_PN : PN;
+fun whittlesey_PN : PN;
+fun whitworth_PN : PN;
+fun whiz_N : N;
+fun whiz_V : V;
+fun whizz_kid_N : N;
+fun who_N : N;
+fun whodunit_N : N;
+fun whole_A : A;
+fun whole_N : N;
+fun whole_wheat_N : N;
+fun wholehearted_A : A;
+fun wholeheartedness_N : N;
+fun wholemeal_N : N;
+fun wholesale_A : A;
+fun wholesale_Adv : Adv;
+fun wholesale_N : N;
+fun wholesaler_N : N;
+fun wholesome_A : A;
+fun wholly_Adv : Adv;
+fun whoop_N : N;
+fun whoop_V : V;
+fun whoop_V2 : V2;
+fun whoopee_N : N;
+fun whooping_cough_N : N;
+fun whop_V2 : V2;
+fun whopper_N : N;
+fun whopping_A : A;
+fun whopping_Adv : Adv;
+fun whore_N : N;
+fun whoremonger_N : N;
+fun whorl_N : N;
+fun whorled_A : A;
+fun why_Adv : Adv;
+fun why_N : N;
+fun wi_N : N;
+fun wick_N : N;
+fun wick_PN : PN;
+fun wicked_A : A;
+fun wickedness_N : N;
+fun wicker_N : N;
+fun wickerwork_N : N;
+fun wicket_N : N;
+fun wicket_door_N : N;
+fun wicket_gate_N : N;
+fun wicket_keeper_N : N;
+fun wickford_PN : PN;
+fun wicklow_PN : PN;
+fun wide_A : A;
+fun wide_Adv : Adv;
+fun wide_awake_A : A;
+fun widen_V : V;
+fun widen_V2 : V2;
+fun widespread_A : A;
+fun widgeon_N : N;
+fun widnes_PN : PN;
+fun widow_N : N;
+fun widowed_A : A;
+fun widower_N : N;
+fun widowhood_N : N;
+fun width_N : N;
+fun wield_V2 : V2;
+fun wiesbaden_PN : PN;
+fun wife_N : N;
+fun wifelike_A : A;
+fun wifely_A : A;
+fun wig_N : N;
+fun wigan_PN : PN;
+fun wigged_A : A;
+fun wigging_N : N;
+fun wiggle_N : N;
+fun wiggle_V : V;
+fun wiggle_V2 : V2;
+fun wight_N : N;
+fun wight_PN : PN;
+fun wigwam_N : N;
+fun wild_A : A;
+fun wild_Adv : Adv;
+fun wildcat_A : A;
+fun wildebeest_N : N;
+fun wilderness_N : N;
+fun wildfire_N : N;
+fun wildness_N : N;
+fun wile_N : N;
+fun wilf_PN : PN;
+fun wilfrid_PN : PN;
+fun wilful_A : A;
+fun wilfulness_N : N;
+fun wilhelmshaven_PN : PN;
+fun will_N : N;
+fun will_PN : PN;
+fun will_V : V;
+fun will_V2 : V2;
+fun will_o'_the_wisp_N : N;
+fun willed_A : A;
+fun willful_A : A;
+fun william_PN : PN;
+fun willie_PN : PN;
+fun willing_A : A;
+fun willingness_N : N;
+fun willington_PN : PN;
+fun willow_N : N;
+fun willow_pattern_N : N;
+fun willow_tree_N : N;
+fun willowy_A : A;
+fun willpower_N : N;
+fun willy_PN : PN;
+fun willy_nilly_Adv : Adv;
+fun wilmslow_PN : PN;
+fun wilt_V : V;
+fun wilt_V2 : V2;
+fun wilton_N : N;
+fun wiltshire_PN : PN;
+fun wily_A : A;
+fun wimbourne_PN : PN;
+fun wimbourne_minster_PN : PN;
+fun wimple_N : N;
+fun win_N : N;
+fun win_V : V;
+fun win_V2 : V2;
+fun wince_N : N;
+fun wince_V2 : V2;
+fun winceyette_N : N;
+fun winch_N : N;
+fun winch_V2 : V2;
+fun winchester_PN : PN;
+fun wind_N : N;
+fun wind_V : V;
+fun wind_V2 : V2;
+fun wind_gauge_N : N;
+fun wind_tunnel_N : N;
+fun windbag_N : N;
+fun windblown_A : A;
+fun windbreak_N : N;
+fun windbreaker_N : N;
+fun windcheater_N : N;
+fun windermere_PN : PN;
+fun windfall_N : N;
+fun windflower_N : N;
+fun windily_Adv : Adv;
+fun windiness_N : N;
+fun winding_sheet_N : N;
+fun windjammer_N : N;
+fun windlass_N : N;
+fun windless_A : A;
+fun windmill_N : N;
+fun window_N : N;
+fun window_box_N : N;
+fun window_dressing_N : N;
+fun windowpane_N : N;
+fun windowsill_N : N;
+fun windpipe_N : N;
+fun windscreen_N : N;
+fun windscreen_wiper_N : N;
+fun windshield_N : N;
+fun windsock_N : N;
+fun windsor_PN : PN;
+fun windswept_A : A;
+fun windward_A : A;
+fun windward_N : N;
+fun windy_A : A;
+fun wine_N : N;
+fun wine_V2 : V2;
+fun wineglass_N : N;
+fun winepress_N : N;
+fun wineskin_N : N;
+fun wing_N : N;
+fun wing_V : V;
+fun wing_V2 : V2;
+fun wing_commander_N : N;
+fun wing_nut_N : N;
+fun wing_screw_N : N;
+fun wingate_PN : PN;
+fun winged_A : A;
+fun winger_N : N;
+fun wingless_A : A;
+fun wingspan_N : N;
+fun wingspread_N : N;
+fun winifred_PN : PN;
+fun wink_N : N;
+fun wink_V : V;
+fun wink_V2 : V2;
+fun winkle_N : N;
+fun winkle_V2 : V2;
+fun winner_N : N;
+fun winnie_PN : PN;
+fun winning_post_N : N;
+fun winnipeg_PN : PN;
+fun winnow_V2 : V2;
+fun winsford_PN : PN;
+fun winsome_A : A;
+fun winsomeness_N : N;
+fun winter_N : N;
+fun winter_V : V;
+fun wintery_A : A;
+fun wintry_A : A;
+fun wipe_N : N;
+fun wipe_V : V;
+fun wipe_V2 : V2;
+fun wiper_N : N;
+fun wire_N : N;
+fun wire_V : V;
+fun wire_V2 : V2;
+fun wire_haired_A : A;
+fun wireless_A : A;
+fun wireless_N : N;
+fun wirepuller_N : N;
+fun wireworm_N : N;
+fun wiring_N : N;
+fun wiry_A : A;
+fun wisbech_PN : PN;
+fun wisconsin_PN : PN;
+fun wisdom_N : N;
+fun wisdom_tooth_N : N;
+fun wise_A : A;
+fun wise_N : N;
+fun wiseacre_N : N;
+fun wisecrack_N : N;
+fun wisecrack_V : V;
+fun wish_N : N;
+fun wish_V : V;
+fun wish_V2 : V2;
+fun wishbone_N : N;
+fun wishful_A : A;
+fun wishing_cap_N : N;
+fun wishy_washy_A : A;
+fun wisp_N : N;
+fun wispy_A : A;
+fun wisteria_N : N;
+fun wistful_A : A;
+fun wit_N : N;
+fun witch_N : N;
+fun witch_doctor_N : N;
+fun witch_elm_N : N;
+fun witch_hazel_N : N;
+fun witch_hunt_N : N;
+fun witchcraft_N : N;
+fun witchery_N : N;
+fun witching_A : A;
+fun withal_Adv : Adv;
+fun witham_PN : PN;
+fun withdraw_V : V;
+fun withdraw_V2 : V2;
+fun withdrawal_N : N;
+fun withe_N : N;
+fun wither_V : V;
+fun wither_V2 : V2;
+fun witheringly_Adv : Adv;
+fun withernsea_PN : PN;
+fun withhold_V2 : V2;
+fun within_Prep : Prep;
+fun without_Prep : Prep;
+fun withstand_V2 : V2;
+fun withy_N : N;
+fun witless_A : A;
+fun witness_N : N;
+fun witness_V : V;
+fun witness_V2 : V2;
+fun witness_box_N : N;
+fun witness_stand_N : N;
+fun witney_PN : PN;
+fun witticism_N : N;
+fun wittily_Adv : Adv;
+fun wittingly_Adv : Adv;
+fun witty_A : A;
+fun wive_V : V;
+fun wive_V2 : V2;
+fun wizard_A : A;
+fun wizard_N : N;
+fun wizardry_N : N;
+fun wizened_A : A;
+fun wk_N : N;
+fun woad_N : N;
+fun wobble_V : V;
+fun wobble_V2 : V2;
+fun wobbler_N : N;
+fun wobbly_A : A;
+fun woburn_PN : PN;
+fun woe_N : N;
+fun woebegone_A : A;
+fun woeful_A : A;
+fun wokingham_PN : PN;
+fun wold_N : N;
+fun wolf's_bane_N : N;
+fun wolf_N : N;
+fun wolf_V2 : V2;
+fun wolf_cub_N : N;
+fun wolfhound_N : N;
+fun wolfish_A : A;
+fun wolfram_N : N;
+fun wolverhampton_PN : PN;
+fun wolverton_PN : PN;
+fun woman_N : N;
+fun womanhood_N : N;
+fun womanish_A : A;
+fun womanize_V : V;
+fun womanizer_N : N;
+fun womankind_N : N;
+fun womanlike_A : A;
+fun womanly_A : A;
+fun womb_N : N;
+fun wombat_N : N;
+fun wombourne_PN : PN;
+fun wonder_N : N;
+fun wonder_V : V;
+fun wonder_V2 : V2;
+fun wonder_struck_A : A;
+fun wonderful_A : A;
+fun wonderingly_Adv : Adv;
+fun wonderland_N : N;
+fun wonderment_N : N;
+fun wondrous_A : A;
+fun wondrous_Adv : Adv;
+fun wonky_A : A;
+fun wont_A : A;
+fun wont_N : N;
+fun wonted_A : A;
+fun woo_V2 : V2;
+fun wood_N : N;
+fun wood_block_N : N;
+fun wood_pulp_N : N;
+fun woodbine_N : N;
+fun woodbridge_PN : PN;
+fun woodcock_N : N;
+fun woodcraft_N : N;
+fun woodcut_N : N;
+fun woodcutter_N : N;
+fun wooded_A : A;
+fun wooden_A : A;
+fun woodenheaded_A : A;
+fun woodland_N : N;
+fun woodlouse_N : N;
+fun woodman_N : N;
+fun woodpecker_N : N;
+fun woodpile_N : N;
+fun woodshed_N : N;
+fun woodsman_N : N;
+fun woodwind_N : N;
+fun woodwork_N : N;
+fun woodworm_N : N;
+fun woody_A : A;
+fun wooer_N : N;
+fun woof_N : N;
+fun woofer_N : N;
+fun wool_N : N;
+fun woolen_A : A;
+fun woolgathering_A : A;
+fun woolgathering_N : N;
+fun woollen_A : A;
+fun woolly_A : A;
+fun wooly_A : A;
+fun wooly_N : N;
+fun wootton_bassett_PN : PN;
+fun worcester_PN : PN;
+fun word_N : N;
+fun word_V2 : V2;
+fun word_division_N : N;
+fun word_painter_N : N;
+fun word_perfect_A : A;
+fun word_picture_N : N;
+fun word_splitting_N : N;
+fun wordbook_N : N;
+fun wordily_Adv : Adv;
+fun wordiness_N : N;
+fun wording_N : N;
+fun wordless_A : A;
+fun wordy_A : A;
+fun work_N : N;
+fun work_V : V;
+fun work_V2 : V2;
+fun work_in_N : N;
+fun work_out_N : N;
+fun work_study_N : N;
+fun workable_A : A;
+fun workaday_A : A;
+fun workbag_N : N;
+fun workbasket_N : N;
+fun workbench_N : N;
+fun workbook_N : N;
+fun workbox_N : N;
+fun workday_N : N;
+fun worker_N : N;
+fun workhouse_N : N;
+fun working_A : A;
+fun working_N : N;
+fun working_class_A : A;
+fun working_out_N : N;
+fun workington_PN : PN;
+fun workman_N : N;
+fun workmanlike_A : A;
+fun workmanship_N : N;
+fun workmate_N : N;
+fun workroom_N : N;
+fun workshop_N : N;
+fun workshy_A : A;
+fun worksop_PN : PN;
+fun worktable_N : N;
+fun world_N : N;
+fun world_weary_A : A;
+fun worldliness_N : N;
+fun worldly_A : A;
+fun worldwide_A : A;
+fun worm_N : N;
+fun worm_V2 : V2;
+fun worm_eaten_A : A;
+fun worm_gear_N : N;
+fun wormcast_N : N;
+fun wormhole_N : N;
+fun wormwood_N : N;
+fun wormy_A : A;
+fun worried_A : A;
+fun worrisome_A : A;
+fun worry_N : N;
+fun worry_V : V;
+fun worry_V2 : V2;
+fun worrying_A : A;
+fun worse_Adv : Adv;
+fun worse_N : N;
+fun worsen_V : V;
+fun worsen_V2 : V2;
+fun worship_N : N;
+fun worship_V : V;
+fun worship_V2 : V2;
+fun worshipful_A : A;
+fun worshipper_N : N;
+fun worst_Adv : Adv;
+fun worst_N : N;
+fun worst_V2 : V2;
+fun worsted_N : N;
+fun worth_A : A;
+fun worth_N : N;
+fun worthily_Adv : Adv;
+fun worthiness_N : N;
+fun worthing_PN : PN;
+fun worthless_A : A;
+fun worthlessness_N : N;
+fun worthwhile_A : A;
+fun worthy_A : A;
+fun worthy_N : N;
+fun would_be_A : A;
+fun wound_N : N;
+fun wound_V2 : V2;
+fun wow_N : N;
+fun wpb_N : N;
+fun wpm_N : N;
+fun wrac_N : N;
+fun wrack_N : N;
+fun wraf_N : N;
+fun wraith_N : N;
+fun wrangle_N : N;
+fun wrangle_V : V;
+fun wrap_N : N;
+fun wrap_V : V;
+fun wrap_V2 : V2;
+fun wrapper_N : N;
+fun wrapping_N : N;
+fun wrath_N : N;
+fun wrathful_A : A;
+fun wreak_V2 : V2;
+fun wreath_N : N;
+fun wreathe_V : V;
+fun wreathe_V2 : V2;
+fun wreck_N : N;
+fun wreck_V2 : V2;
+fun wreckage_N : N;
+fun wrecker_N : N;
+fun wren_N : N;
+fun wrench_N : N;
+fun wrench_V2 : V2;
+fun wrest_V2 : V2;
+fun wrestle_N : N;
+fun wrestle_V : V;
+fun wrestler_N : N;
+fun wretch_N : N;
+fun wretched_A : A;
+fun wretchedness_N : N;
+fun wrexham_PN : PN;
+fun wrick_N : N;
+fun wrick_V2 : V2;
+fun wriggle_N : N;
+fun wriggle_V : V;
+fun wriggle_V2 : V2;
+fun wriggler_N : N;
+fun wright_N : N;
+fun wring_N : N;
+fun wring_V2 : V2;
+fun wringer_N : N;
+fun wrinkle_N : N;
+fun wrinkle_V : V;
+fun wrinkle_V2 : V2;
+fun wrinkly_A : A;
+fun wrist_N : N;
+fun wristband_N : N;
+fun wristlet_N : N;
+fun wristwatch_N : N;
+fun writ_N : N;
+fun writ_large_A : A;
+fun write_V : V;
+fun write_V2 : V2;
+fun write_off_N : N;
+fun write_up_N : N;
+fun writer_N : N;
+fun writhe_V : V;
+fun writing_N : N;
+fun writing_desk_N : N;
+fun writing_ink_N : N;
+fun writing_paper_N : N;
+fun writtle_PN : PN;
+fun wrns_N : N;
+fun wroclaw_PN : PN;
+fun wrong_A : A;
+fun wrong_Adv : Adv;
+fun wrong_N : N;
+fun wrong_V2 : V2;
+fun wrong_headed_A : A;
+fun wrongdoer_N : N;
+fun wrongdoing_N : N;
+fun wrongful_A : A;
+fun wroth_A : A;
+fun wroughton_PN : PN;
+fun wry_A : A;
+fun wt_N : N;
+fun wuhan_PN : PN;
+fun wuppertal_PN : PN;
+fun wurzburg_PN : PN;
+fun wusih_PN : PN;
+fun wycombe_PN : PN;
+fun wymondham_PN : PN;
+fun wyoming_PN : PN;
+fun wythall_PN : PN;
+fun x_ray_N : N;
+fun x_ray_V2 : V2;
+fun xenophobia_N : N;
+fun xerox_N : N;
+fun xerox_V2 : V2;
+fun xmas_N : N;
+fun xmas_PN : PN;
+fun xylophone_N : N;
+fun yacht_N : N;
+fun yacht_V : V;
+fun yacht_club_N : N;
+fun yachting_N : N;
+fun yachtsman_N : N;
+fun yahoo_N : N;
+fun yak_N : N;
+fun yam_N : N;
+fun yammer_V : V;
+fun yank_N : N;
+fun yank_V2 : V2;
+fun yankee_N : N;
+fun yap_N : N;
+fun yap_V : V;
+fun yard_N : N;
+fun yard_measure_N : N;
+fun yardarm_N : N;
+fun yardstick_N : N;
+fun yarmouth_PN : PN;
+fun yarn_N : N;
+fun yarn_V : V;
+fun yaroslavi_PN : PN;
+fun yarrow_N : N;
+fun yashmak_N : N;
+fun yate_PN : PN;
+fun yateley_PN : PN;
+fun yaw_N : N;
+fun yaw_V : V;
+fun yawl_N : N;
+fun yawn_N : N;
+fun yawn_V : V;
+fun yea_Adv : Adv;
+fun yea_N : N;
+fun yeah_Adv : Adv;
+fun year_N : N;
+fun yearbook_N : N;
+fun yearling_N : N;
+fun yearlong_A : A;
+fun yearly_A : A;
+fun yearly_Adv : Adv;
+fun yearn_V : V;
+fun yearning_N : N;
+fun yearningly_Adv : Adv;
+fun yeast_N : N;
+fun yeasty_A : A;
+fun yell_N : N;
+fun yell_V : V;
+fun yell_V2 : V2;
+fun yellow_A : A;
+fun yellow_N : N;
+fun yellow_V : V;
+fun yellow_V2 : V2;
+fun yellow_bellied_A : A;
+fun yellow_flag_N : N;
+fun yellowish_A : A;
+fun yellowness_N : N;
+fun yelp_V : V;
+fun yemen_PN : PN;
+fun yemeni_A : A;
+fun yemeni_N : N;
+fun yen_N : N;
+fun yen_V : V;
+fun yeoman_N : N;
+fun yeomanry_N : N;
+fun yeovil_PN : PN;
+fun yerevan_PN : PN;
+fun yes_N : N;
+fun yesterday_Adv : Adv;
+fun yesterday_N : N;
+fun yet_Adv : Adv;
+fun yeti_N : N;
+fun yew_N : N;
+fun yew_tree_N : N;
+fun yha_N : N;
+fun yiddish_N : N;
+fun yield_N : N;
+fun yield_V : V;
+fun yield_V2 : V2;
+fun yielding_A : A;
+fun ymca_N : N;
+fun yo_yo_N : N;
+fun yob_N : N;
+fun yobo_N : N;
+fun yodel_N : N;
+fun yodel_V : V;
+fun yodel_V2 : V2;
+fun yodeller_N : N;
+fun yoga_N : N;
+fun yoghourt_N : N;
+fun yoghurt_N : N;
+fun yogi_N : N;
+fun yogurt_N : N;
+fun yoke_N : N;
+fun yoke_V : V;
+fun yoke_V2 : V2;
+fun yokel_N : N;
+fun yokohama_PN : PN;
+fun yolk_N : N;
+fun yon_A : A;
+fun yon_Adv : Adv;
+fun yonder_A : A;
+fun yonder_Adv : Adv;
+fun yore_N : N;
+fun york_PN : PN;
+fun yorkley_PN : PN;
+fun yorkshire_PN : PN;
+fun young_A : A;
+fun young_N : N;
+fun youngish_A : A;
+fun youngster_N : N;
+fun youth_N : N;
+fun youthful_A : A;
+fun youthfulness_N : N;
+fun yowl_V : V;
+fun yr_N : N;
+fun ystradgynlais_PN : PN;
+fun yugoslav_A : A;
+fun yugoslav_N : N;
+fun yugoslavia_PN : PN;
+fun yugoslavian_A : A;
+fun yugoslavian_N : N;
+fun yukon_PN : PN;
+fun yule_N : N;
+fun yule_log_N : N;
+fun yuletide_N : N;
+fun yvonne_PN : PN;
+fun ywca_N : N;
+fun zagreb_PN : PN;
+fun zaire_PN : PN;
+fun zairean_A : A;
+fun zairean_N : N;
+fun zambia_PN : PN;
+fun zambian_A : A;
+fun zambian_N : N;
+fun zany_A : A;
+fun zany_N : N;
+fun zap_V2 : V2;
+fun zaporozhye_PN : PN;
+fun zaragoza_PN : PN;
+fun zeal_N : N;
+fun zealand_PN : PN;
+fun zealander_A : A;
+fun zealander_N : N;
+fun zealot_N : N;
+fun zealotry_N : N;
+fun zealous_A : A;
+fun zebra_N : N;
+fun zebu_N : N;
+fun zee_N : N;
+fun zen_N : N;
+fun zenith_N : N;
+fun zenithal_A : A;
+fun zephyr_N : N;
+fun zeppelin_N : N;
+fun zero_N : N;
+fun zero_V : V;
+fun zest_N : N;
+fun zestful_A : A;
 fun zigzag_Adv : Adv;
 fun zigzag_N : N;
 fun zigzag_V : V;
diff --git a/lib/src/english/ExtraEng.gf b/lib/src/english/ExtraEng.gf
--- a/lib/src/english/ExtraEng.gf
+++ b/lib/src/english/ExtraEng.gf
@@ -33,7 +33,9 @@
       } ;
     ConjVPI = conjunctDistrTable2 VPIForm Agr ;
     ComplVPIVV vv vpi = 
-      insertObj (\\a => (if_then_Str vv.isAux [] "to") ++ vpi.s ! VPIInf ! a) (predVV vv) ;
+----      insertObj (\\a => infVP vv.typ vpi a) (predVV vv) ;
+      let isAux = case vv.typ of {VVAux => True ; _ => False} in 
+      insertObj (\\a => (if_then_Str isAux [] "to") ++ vpi.s ! VPIInf ! a) (predVV vv) ;
 
     UncNegCl t p cl = {
       s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! unc p.p ! ODir
@@ -60,8 +62,9 @@
     { s = table {
         RC _ Gen    => "whose" ; 
         RC _ _      => "that" ;
-        RPrep Neutr => "which" ;
-        RPrep _     => "whom"
+        _           => "that"   ---- "in that" ?
+--        RPrep Neutr => "which" ;
+--        RPrep _     => "whom"
         } ;
       a = RNoAg
       } ;
@@ -97,4 +100,12 @@
 
     IAdvAdv adv = {s = "how" ++ adv.s} ;
 
+    PartVP vp = {
+      s = \\a => vp.ad ++ vp.prp ++ vp.s2 ! a ;
+      isPre = False ---- depends on whether there are complements
+      } ;
+
+    EmbedPresPart vp = {s = infVP VVPresPart vp (agrP3 Sg)} ; --- agr
+
+    UttVPShort vp = {s = infVP VVAux vp (agrP3 Sg)} ;
 } 
diff --git a/lib/src/english/ExtraEngAbs.gf b/lib/src/english/ExtraEngAbs.gf
--- a/lib/src/english/ExtraEngAbs.gf
+++ b/lib/src/english/ExtraEngAbs.gf
@@ -16,4 +16,9 @@
     that_RP : RP ; -- "that" as a relational pronoun (IdRP is "which" / "who")
 
     each_Det : Det ;
+
+-- infinitive without to
+
+    UttVPShort : VP -> Utt ;
+
 }
diff --git a/lib/src/english/IdiomEng.gf b/lib/src/english/IdiomEng.gf
--- a/lib/src/english/IdiomEng.gf
+++ b/lib/src/english/IdiomEng.gf
@@ -24,9 +24,9 @@
 
     ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
 
-    ImpPl1 vp = {s = "let's" ++ infVP True vp (AgP1 Pl)} ;
+    ImpPl1 vp = {s = "let's" ++ infVP VVAux vp (AgP1 Pl)} ;
 
-    ImpP3 np vp = {s = "let" ++ np.s ! Acc ++ infVP True vp np.a} ;
+    ImpP3 np vp = {s = "let" ++ np.s ! Acc ++ infVP VVAux vp np.a} ;
 
 }
 
diff --git a/lib/src/english/LexiconEng.gf b/lib/src/english/LexiconEng.gf
--- a/lib/src/english/LexiconEng.gf
+++ b/lib/src/english/LexiconEng.gf
@@ -8,6 +8,7 @@
 
 lin
   airplane_N = regN "airplane" ;
+  alas_Interj = ss "alas" ;
   answer_V2S = mkV2S (mkV "answer" "answered") toP ;
   apartment_N = regN "apartment" ;
   apple_N = regN "apple" ;
@@ -101,6 +102,7 @@
   iron_N = regN "iron" ;
   king_N = mkN masculine (regN "king") ;
   know_V2 = dirV2 (irregV "know" "knew" "known") ;
+  know_VQ = mkVQ (irregV "know" "knew" "known") ;
   know_VS = mkVS (irregV "know" "knew" "known") ;
   lake_N = regN "lake" ;
   lamp_N = regN "lamp" ;
diff --git a/lib/src/english/MakeStructuralEng.gf b/lib/src/english/MakeStructuralEng.gf
--- a/lib/src/english/MakeStructuralEng.gf
+++ b/lib/src/english/MakeStructuralEng.gf
@@ -9,5 +9,7 @@
     lin NP (regNP s n) ;
   mkIDet : Str -> ParadigmsEng.Number -> IDet = \s,n ->
     lin IDet {s = s ; n = n} ;
+  mkIQuant : Str -> Str -> IQuant = \s,n ->
+    lin IQuant {s = table {Sg => s ; Pl => n}} ;
 
 }
diff --git a/lib/src/english/MorphoEng.gf b/lib/src/english/MorphoEng.gf
--- a/lib/src/english/MorphoEng.gf
+++ b/lib/src/english/MorphoEng.gf
@@ -16,10 +16,13 @@
 
   oper 
 
-  mkDeterminer : Number -> Str -> {s : Str ; sp : Case => Str; n : Number} = \n,s ->
+  mkDeterminer : Number -> Str -> 
+    {s : Str ; sp : Case => Str; n : Number ; hasNum : Bool} = \n,s ->
     {s = s; 
      sp = regGenitiveS s ;
-     n = n} ;
+     n = n ;
+     hasNum = True ; -- doesn't matter since s = sp
+     } ;
 
 --2 Pronouns
 
diff --git a/lib/src/english/NounEng.gf b/lib/src/english/NounEng.gf
--- a/lib/src/english/NounEng.gf
+++ b/lib/src/english/NounEng.gf
@@ -37,17 +37,19 @@
                      False => quant.sp ! num.hasCard ! num.n ! c ++ num.s ! Nom ;
                      True  => quant.sp ! num.hasCard ! num.n ! Nom ++ num.s ! c
                   } ;
-      n  = num.n
+      n  = num.n ;
+      hasNum = num.hasCard
       } ;
 
     DetQuantOrd quant num ord = {
       s  = quant.s ! num.hasCard ! num.n ++ num.s ! Nom ++ ord.s ! Nom; 
       sp = \\c => quant.sp ! num.hasCard ! num.n ! Nom ++ num.s ! Nom ++ ord.s ! c ; 
-      n  = num.n
+      n  = num.n ;
+      hasNum = True
       } ;
 
     DetNP det = {
-      s = det.sp ;
+      s = case det.hasNum of {True => \\_ => det.s ; _ => det.sp} ;
       a = agrP3 det.n
       } ;
 
diff --git a/lib/src/english/NumeralEng.gf b/lib/src/english/NumeralEng.gf
--- a/lib/src/english/NumeralEng.gf
+++ b/lib/src/english/NumeralEng.gf
@@ -1,4 +1,4 @@
-concrete NumeralEng of Numeral = CatEng ** open ResEng in {
+concrete NumeralEng of Numeral = CatEng [Numeral,Digits] ** open ResEng in {
 
 lincat 
   Digit = {s : DForm => CardOrd => Case => Str} ;
diff --git a/lib/src/english/ParadigmsEng.gf b/lib/src/english/ParadigmsEng.gf
--- a/lib/src/english/ParadigmsEng.gf
+++ b/lib/src/english/ParadigmsEng.gf
@@ -40,28 +40,32 @@
 
   human     : Gender ;
   nonhuman  : Gender ;
-  masculine : Gender ;
-  feminine : Gender ;
+  masculine : Gender ; --%
+  feminine : Gender ; --%
 
 -- To abstract over number names, we define the following.
 
   Number : Type ; 
 
-  singular : Number ;
+  singular : Number ; 
   plural   : Number ;
 
 -- To abstract over case names, we define the following.
 
-  Case : Type ;
+  Case : Type ; --%
 
-  nominative : Case ;
-  genitive   : Case ;
+  nominative : Case ; --%
+  genitive   : Case ; --%
 
 -- Prepositions are used in many-argument functions for rection.
 -- The resource category $Prep$ is used.
 
+-- The number of a noun phrase can be extracted with the following
+-- function.
 
+  npNumber : NP -> Number ; -- exctract the number of a noun phrase
 
+
 --2 Nouns
 
 -- Nouns are constructed by the function $mkN$, which takes a varying
@@ -73,37 +77,37 @@
 -- "s","sh","x","z" or "y": "kiss - kisses", "flash - flashes"; 
 -- "fly - flies" (but "toy - toys"),
 
-    mkN : (flash : Str) -> N ;
+    mkN : (flash : Str) -> N ;  -- plural s, incl. flash-flashes, fly-flies 
 
 -- In practice the worst case is to give singular and plural nominative.
 
-    mkN : (man,men : Str) -> N ;
+    mkN : (man,men : Str) -> N ; -- irregular plural
 
 -- The theoretical worst case: give all four forms.
 
-    mkN : (man,men,man's,men's : Str) -> N ;
+    mkN : (man,men,man's,men's : Str) -> N ; -- irregular genitives
 
 -- Change gender from the default $nonhuman$.
 
-    mkN : Gender -> N -> N ;
+    mkN : Gender -> N -> N ;  -- default nonhuman
 
 --3 Compound nouns 
 --
 -- A compound noun is an uninflected string attached to an inflected noun,
 -- such as "baby boom", "chief executive officer".
 
-    mkN : Str -> N -> N
+    mkN : Str -> N -> N -- e.g. baby + boom
   } ;
 
 
 --3 Relational nouns 
 
   mkN2 : overload {
-    mkN2 : N -> Prep -> N2 ; -- access to
-    mkN2 : N -> Str -> N2 ; -- access to
-    mkN2 : Str -> Str -> N2 ; -- access to
-    mkN2 : N -> N2 ; -- wife of
-    mkN2 : Str -> N2 -- daughter of
+    mkN2 : Str -> N2 ; -- reg. noun, prep. "of" --% 
+    mkN2 : N -> N2 ; -- e.g. wife of (default prep. to)
+    mkN2 : N -> Str -> N2 ; -- access to --%
+    mkN2 : N -> Prep -> N2 ; -- e.g. access to
+    mkN2 : Str -> Str -> N2 ; -- access to (regular noun) --%
   } ;
 
 -- Use the function $mkPrep$ or see the section on prepositions below to  
@@ -111,7 +115,7 @@
 --
 -- Three-place relational nouns ("the connection from x to y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. connection from x to y
 
 
 
@@ -125,17 +129,17 @@
 
 -- Sometimes a common noun can be reused as a proper name, e.g. "Bank"
 
-    mkPN : N -> PN
+    mkPN : N -> PN --%
   } ;
 
 --3 Determiners and quantifiers
 
   mkQuant : overload {
-    mkQuant : (this, these : Str) -> Quant ;
-    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant ;
+    mkQuant : (this, these : Str) -> Quant ; --%
+    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant ; --%
   } ;
 
-  mkOrd : Str -> Ord ;
+  mkOrd : Str -> Ord ; --%
 
 --2 Adjectives
 
@@ -145,33 +149,33 @@
 -- even for cases with the variations "happy - happily - happier - happiest",
 -- "free - freely - freer - freest", and "rude - rudest".
 
-    mkA : (happy : Str) -> A ;
+    mkA : (happy : Str) -> A ; -- regular adj, incl. happy-happier, rude-ruder
 
 -- However, the duplication of the final consonant cannot be predicted,
 -- but a separate case is used to give the comparative
 
-    mkA : (fat,fatter : Str) -> A ;
+    mkA : (fat,fatter : Str) -> A ; -- irreg. comparative
 
 -- As many as four forms may be needed.
 
-    mkA : (good,better,best,well : Str) -> A 
+    mkA : (good,better,best,well : Str) -> A  -- completely irreg.
     } ;
 
 -- Regular comparison is formed by "more - most" for words with two vowels separated
 -- and terminated by some other letters. To force this or the opposite, 
 -- the following can be used:  
 
-    compoundA : A -> A ; -- -/more/most ditto
-    simpleA   : A -> A ; -- young,younger,youngest
-
+    compoundA : A -> A ; -- force comparison with more/most
+    simpleA   : A -> A ; -- force comparison with -er,-est
+    irregAdv  : A -> Str -> A ;  -- adverb irreg, e.g. "fast"
 
 --3 Two-place adjectives
 
   mkA2 : overload {
-    mkA2 : A -> Prep -> A2 ; -- absent from
-    mkA2 : A -> Str -> A2 ; -- absent from
-    mkA2 : Str -> Prep -> A2 ; -- absent from
-    mkA2 : Str -> Str -> A2 -- absent from
+    mkA2 : A -> Prep -> A2 ; -- absent from 
+    mkA2 : A -> Str -> A2 ; -- absent from --%
+    mkA2 : Str -> Prep -> A2 ; -- absent from --%
+    mkA2 : Str -> Str -> A2 -- absent from --%
 
   } ;
 
@@ -181,24 +185,24 @@
 -- Adverbs are not inflected. Most lexical ones have position
 -- after the verb. Some can be preverbal (e.g. "always").
 
-  mkAdv : Str -> Adv ;
-  mkAdV : Str -> AdV ;
+  mkAdv : Str -> Adv ; -- e.g. today
+  mkAdV : Str -> AdV ; -- e.g. always
 
 -- Adverbs modifying adjectives and sentences can also be formed.
 
-  mkAdA : Str -> AdA ;
+  mkAdA : Str -> AdA ; -- e.g. quite
 
 -- Adverbs modifying numerals
 
-  mkAdN : Str -> AdN ;
+  mkAdN : Str -> AdN ; -- e.g. approximately
 
 --2 Prepositions
 --
 -- A preposition as used for rection in the lexicon, as well as to
 -- build $PP$s in the resource API, just requires a string.
 
-  mkPrep : Str -> Prep ;
-  noPrep : Prep ;
+  mkPrep : Str -> Prep ; -- e.g. "in front of"
+  noPrep : Prep ;  -- no preposition
 
 -- (These two functions are synonyms.)
 
@@ -206,10 +210,10 @@
 --
 
   mkConj : overload {
-    mkConj : Str -> Conj ;                  -- and (plural agreement)
-    mkConj : Str -> Number -> Conj ;        -- or (agrement number given as argument)
-    mkConj : Str -> Str -> Conj ;           -- both ... and (plural)
-    mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
+    mkConj : Str -> Conj ;                  -- and (plural agreement) --%
+    mkConj : Str -> Number -> Conj ;        -- or (agrement number given as argument) --%
+    mkConj : Str -> Str -> Conj ;           -- both ... and (plural) --%
+    mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument) --%
   } ;
 
 --2 Verbs
@@ -225,45 +229,45 @@
 -- ("kiss-"kisses", "jazz-jazzes", "rush-rushes", "munch - munches", 
 -- "fix - fixes").
 
-    mkV : (cry : Str) -> V ;
+    mkV : (cry : Str) -> V ; -- regular, incl. cry-cries, kiss-kisses etc
 
 -- Give the present and past forms for regular verbs where
 -- the last letter is duplicated in some forms,
 -- e.g. "rip - ripped - ripping".
 
-    mkV : (stop, stopped : Str) -> V ;
+    mkV : (stop, stopped : Str) -> V ; -- reg. with consonant duplication
 
 -- There is an extensive list of irregular verbs in the module $IrregularEng$.
 -- In practice, it is enough to give three forms, 
 -- e.g. "drink - drank - drunk".
 
-    mkV : (drink, drank, drunk  : Str) -> V ;
+    mkV : (drink, drank, drunk  : Str) -> V ; -- ordinary irregular
 
 -- Irregular verbs with duplicated consonant in the present participle.
  
-    mkV : (run, ran, run, running  : Str) -> V ;
+    mkV : (run, ran, run, running  : Str) -> V ; -- irregular with duplication --%
 
 -- Except for "be", the worst case needs five forms: the infinitive and
 -- the third person singular present, the past indicative, and the
 -- past and present participles.
 
-    mkV : (go, goes, went, gone, going : Str) -> V ;
+    mkV : (go, goes, went, gone, going : Str) -> V ; -- totally irregular
 
 -- Adds a prefix to an exisiting verb. This is most useful to create
 -- prefix-variants of irregular verbs from $IrregEng$, e.g. "undertake".
 
-    mkV : Str -> V -> V ;
+    mkV : Str -> V -> V ;  -- fix compound, e.g. under+take
   };
 
 -- Verbs with a particle.
 -- The particle, such as in "switch on", is given as a string.
 
-  partV  : V -> Str -> V ;
+  partV  : V -> Str -> V ; -- with particle, e.g. switch + on
 
 -- Reflexive verbs.
 -- By default, verbs are not reflexive; this function makes them that.
 
-  reflV  : V -> V ;
+  reflV  : V -> V ;  -- reflexive e.g. behave oneself
 
 --3 Two-place verbs
 --
@@ -271,12 +275,12 @@
 -- (transitive verbs). Notice that a particle comes from the $V$.
 
   mkV2 : overload {
-    mkV2  : Str -> V2 ;       -- kill
-    mkV2  : V -> V2 ;         -- hit
-    mkV2  : V -> Prep -> V2 ; -- believe in
-    mkV2  : V -> Str -> V2 ;  -- believe in
-    mkV2  : Str -> Prep -> V2 ; -- believe in
-    mkV2  : Str -> Str -> V2  -- believe in
+    mkV2  : Str -> V2 ;       -- kill --%
+    mkV2  : V -> V2 ;         -- transitive, e.g. hit
+    mkV2  : V -> Prep -> V2 ; -- with preposiiton, e.g. believe in
+    mkV2  : V -> Str -> V2 ;  -- believe in --%
+    mkV2  : Str -> Prep -> V2 ; -- believe in --%
+    mkV2  : Str -> Str -> V2  -- believe in --%
   };
 
 --3 Three-place verbs
@@ -285,12 +289,12 @@
 -- the first one or both can be absent.
 
   mkV3 : overload {
-    mkV3  : V -> Prep -> Prep -> V3 ;   -- speak, with, about
-    mkV3  : V -> Prep -> V3 ;           -- give,_,to
-    mkV3  : V -> Str -> V3 ;            -- give,_,to
-    mkV3  : Str -> Str -> V3 ;          -- give,_,to
-    mkV3  : V -> V3 ;                   -- give,_,_
-    mkV3  : Str -> V3 ;                 -- give,_,_
+    mkV3  : V -> V3 ;                   -- ditransitive, e.g. give,_,_
+    mkV3  : V -> Prep -> Prep -> V3 ;   -- two prepositions, e.g. speak, with, about
+    mkV3  : V -> Prep -> V3 ;           -- give,_,to --%
+    mkV3  : V -> Str -> V3 ;            -- give,_,to --%
+    mkV3  : Str -> Str -> V3 ;          -- give,_,to --%
+    mkV3  : Str -> V3 ;                 -- give,_,_ --%
   };
 
 --3 Other complement patterns
@@ -298,30 +302,31 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
-  mkVS  : V -> VS ;
-  mkV2S : V -> Prep -> V2S ;
-  mkVV  : V -> VV ;
-  mkV2V : V -> Prep -> Prep -> V2V ;
-  mkVA  : V -> VA ;
-  mkV2A : V -> Prep -> V2A ;
-  mkVQ  : V -> VQ ;
-  mkV2Q : V -> Prep -> V2Q ;
+  mkV0  : V -> V0 ; --%
+  mkVS  : V -> VS ; -- sentence-compl e.g. say (that S)
+  mkV2S : V -> Prep -> V2S ; -- e.g. tell (NP) (that S)
+  mkVV  : V -> VV ; -- e.g. want (to VP)
+  ingVV : V -> VV ; -- e.g. start (VPing)
+  mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (NP) (to VP)
+  mkVA  : V -> VA ; -- e.g. become (AP)
+  mkV2A : V -> Prep -> V2A ; -- e.g. paint (NP) (AP)
+  mkVQ  : V -> VQ ; -- e.g. wonder (QS)
+  mkV2Q : V -> Prep -> V2Q ; -- e.g. ask (NP) (QS)
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
 -- $V0$ is just $V$; the second argument is treated as adverb.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 --2 Other categories
 
-mkSubj : Str -> Subj = \s -> lin Subj {s = s} ;
+mkSubj : Str -> Subj = \s -> lin Subj {s = s} ; --%
 
 --.
 --2 Definitions of paradigms
@@ -341,6 +346,8 @@
   nominative = Nom ;
   genitive = Gen ;
 
+  npNumber np = (fromAgr np.a).n ;
+
   Preposition : Type = Str ; -- obsolete
 
   regN = \ray -> 
@@ -449,17 +456,19 @@
         "e" => happy ;
         _   => duplFinal happy + "e"
         } ;
-      happily : Str = case happy of {
-        _ + "ble" => init happy + "y" ;
-        _ + "y" => happ + "ily" ;
-        _ + "ll" => happy + "y" ;
-        _   => happy + "ly"
-        } ;
-    in mkADeg happy (happie + "r") (happie + "st") happily ;
+    in mkADeg happy (happie + "r") (happie + "st") (adj2adv happy) ;
+    
+  adj2adv : Str -> Str = \happy ->
+    case happy of {
+      _ + "ble" => init happy + "y" ;
+      _ + "y"   => init happy + "ily" ;
+      _ + "ll"  => happy + "y" ;
+      _         => happy + "ly"
+      } ;
 
   duplADeg fat = 
     mkADeg fat 
-    (fat + last fat + "er") (fat + last fat + "est") (fat + "ly") ;
+    (fat + last fat + "er") (fat + last fat + "est") (adj2adv fat) ;
 
   compoundADeg a =
     let ad = (a.s ! AAdj Posit Nom) 
@@ -531,9 +540,12 @@
   mkVS  v = lin VS v ;
   mkVV  v = lin VV {
     s = table {VVF vf => v.s ! vf ; _ => v.s ! VInf} ;
-                                          --- variants {}} ; not used 
-    isAux = False
+    typ = VVInf
     } ;
+  ingVV  v = lin VV {
+    s = table {VVF vf => v.s ! vf ; _ => v.s ! VInf} ;
+    typ = VVPresPart
+    } ;
   mkVQ  v = lin VQ v ;
 
   V0 : Type = V ;
@@ -543,7 +555,7 @@
 
   mkV0  v = v ;
   mkV2S v p = lin V2S (prepV2 v p) ;
-  mkV2V v p t = lin V2V (prepV2 v p ** {isAux = False}) ;
+  mkV2V v p t = lin V2V (prepV2 v p ** {typ = VVInf}) ;
   mkVA  v = lin VA v ;
   mkV2A v p = lin V2A (prepV2 v p) ;
   mkV2Q v p = lin V2Q (prepV2 v p) ;
@@ -585,7 +597,7 @@
   mkA = overload {
     mkA : Str -> A = regA ;
     mkA : (fat,fatter : Str) -> A = \fat,fatter -> 
-      mkAdjective fat fatter (init fatter + "st") (fat + "ly") ;
+      mkAdjective fat fatter (init fatter + "st") (adj2adv fat) ;
     mkA : (good,better,best,well : Str) -> A = \a,b,c,d ->
       mkAdjective a b c d
     } ;
@@ -594,6 +606,8 @@
   simpleA a = 
     let ad = (a.s ! AAdj Posit Nom) 
     in regADeg ad ;
+    
+  irregAdv a adv = lin A {s = table {AAdv => adv; aform => a.s ! aform}} ;
 
   prepA2 : A -> Prep -> A2 ;
 
@@ -626,7 +640,7 @@
 
   prepV2 : V -> Prep -> V2 ;
   dirV2 : V -> V2 ;
-  prefixV : Str -> V -> V = \p,v -> v ** { s = p + v.s } ;
+  prefixV : Str -> V -> V = \p,v -> lin V { s = \\vform => p + v.s ! vform; isRefl = v.isRefl } ;
 
   mkV2 = overload {
     mkV2  : V -> V2 = dirV2 ;
diff --git a/lib/src/english/PhraseEng.gf b/lib/src/english/PhraseEng.gf
--- a/lib/src/english/PhraseEng.gf
+++ b/lib/src/english/PhraseEng.gf
@@ -12,11 +12,12 @@
     UttIP ip = {s = ip.s ! Nom} ; --- Acc also
     UttIAdv iadv = iadv ;
     UttNP np = {s = np.s ! Nom} ;
-    UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
+    UttVP vp = {s = infVP VVInf vp (agrP3 Sg)} ;
     UttAdv adv = adv ;
     UttCN n = {s = n.s ! Sg ! Nom} ;
     UttCard n = {s = n.s ! Nom} ;
     UttAP ap = {s = ap.s ! agrP3 Sg} ;
+    UttInterj i = i ;
 
     NoPConj = {s = []} ;
     PConjConj conj = {s = conj.s2} ; ---
diff --git a/lib/src/english/QuestionEng.gf b/lib/src/english/QuestionEng.gf
--- a/lib/src/english/QuestionEng.gf
+++ b/lib/src/english/QuestionEng.gf
@@ -49,7 +49,21 @@
       n = num.n
       } ;
 
+    AdvIAdv i a = ss (i.s ++ a.s) ;
+
     CompIAdv a = a ;
     CompIP p = ss (p.s ! Nom) ;
+
+  lincat 
+    QVP = ResEng.VP ;
+  lin
+    ComplSlashIP vp np = insertObjPre (\\_ => vp.c2 ++ np.s ! Acc) vp ;
+    AdvQVP vp adv = insertObj (\\_ => adv.s) vp ;
+    AddAdvQVP vp adv = insertObj (\\_ => adv.s) vp ;
+
+    QuestQVP qp vp = 
+      let cl = mkClause (qp.s ! Nom) (agrP3 qp.n) vp
+      in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;
+
 
 }
diff --git a/lib/src/english/ResEng.gf b/lib/src/english/ResEng.gf
--- a/lib/src/english/ResEng.gf
+++ b/lib/src/english/ResEng.gf
@@ -56,7 +56,10 @@
 
     Order = ODir | OQuest ;
 
+-- The type of complement of a VV
 
+    VVType = VVAux | VVInf | VVPresPart ; -- can do / try to do / start doing
+
 --2 For $Adjective$
 
     AForm = AAdj Degree Case | AAdv ;
@@ -178,6 +181,7 @@
       "eu" | "Eu" | "uni" | "up" => "a" ;
       "un" => "an" ; 
       "a" | "e" | "i" | "o" | "A" | "E" | "I" | "O" => "an" ;
+      "SMS" | "sms" => "an" ; ---
       _ => "a"
       } ;
 
@@ -331,11 +335,11 @@
 
 -- 
 
-  predVV : {s : VVForm => Str ; isAux : Bool} -> VP = \verb ->
+  predVV : {s : VVForm => Str ; typ : VVType} -> VP = \verb ->
     let verbs = verb.s
     in
-    case verb.isAux of {
-      True => predAux {
+    case verb.typ of {
+      VVAux => predAux {
         pres = table {
           Pos => \\_ => verbs ! VVF VPres ;
           Neg => \\_ => verbs ! VVPresNeg
@@ -354,10 +358,14 @@
   presVerb : {s : VForm => Str} -> Agr -> Str = \verb -> 
     agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
 
-  infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
+  infVP : VVType -> VP -> Agr -> Str = \typ,vp,a ->
     vp.ad ++ 
-    case isAux of {True => [] ; False => "to"} ++ 
-    vp.inf ++ vp.s2 ! a ;
+    case typ of {
+      VVAux => vp.inf ; 
+      VVInf => "to" ++ vp.inf ;
+      _ => vp.prp
+      } ++ 
+    vp.s2 ! a ;
 
   agrVerb : Str -> Str -> Agr -> Str = \has,have,agr -> 
     case agr of {
diff --git a/lib/src/english/SentenceEng.gf b/lib/src/english/SentenceEng.gf
--- a/lib/src/english/SentenceEng.gf
+++ b/lib/src/english/SentenceEng.gf
@@ -12,7 +12,7 @@
       s = \\pol,n => 
         let 
           agr   = AgP2 (numImp n) ;
-          verb  = infVP True vp agr ;
+          verb  = infVP VVAux vp agr ;
           dont  = case pol of {
             CNeg True => "don't" ;
             CNeg False => "do" ++ "not" ;
@@ -39,7 +39,7 @@
 
     EmbedS  s  = {s = conjThat ++ s.s} ;
     EmbedQS qs = {s = qs.s ! QIndir} ;
-    EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
+    EmbedVP vp = {s = infVP VVInf vp (agrP3 Sg)} ; --- agr
 
     UseCl  t p cl = {
       s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! ODir
diff --git a/lib/src/english/StructuralEng.gf b/lib/src/english/StructuralEng.gf
--- a/lib/src/english/StructuralEng.gf
+++ b/lib/src/english/StructuralEng.gf
@@ -31,7 +31,7 @@
       VVPastNeg => "couldn't" ;   --# notpresent
       VVPresNeg => "can't"
       } ;
-    isAux = True
+    typ = VVAux
     } ;
   during_Prep = mkPrep "during" ;
   either7or_DConj = mkConj "either" "or" singular ;
@@ -70,7 +70,7 @@
       VVPastNeg => ["hadn't to"] ;      --# notpresent
       VVPresNeg => "mustn't"
       } ;
-    isAux = True
+    typ = VVAux
     } ;
 ---b  no_Phr = ss "no" ;
   no_Utt = ss "no" ;
diff --git a/lib/src/english/VerbEng.gf b/lib/src/english/VerbEng.gf
--- a/lib/src/english/VerbEng.gf
+++ b/lib/src/english/VerbEng.gf
@@ -11,12 +11,12 @@
     Slash3V3 v np = 
       insertObjc (\\_ => v.c3 ++ np.s ! Acc) (predVc v) ; ----
 
-    ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV v) ;
+    ComplVV v vp = insertObj (\\a => infVP v.typ vp a) (predVV v) ;
     ComplVS v s  = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
     ComplVQ v q  = insertObj (\\_ => q.s ! QIndir) (predV v) ;
     ComplVA v ap = insertObj (ap.s) (predV v) ;
 
-    SlashV2V v vp = insertObjc (\\a => infVP v.isAux vp a) (predVc v) ;
+    SlashV2V v vp = insertObjc (\\a => infVP v.typ vp a) (predVc v) ;
     SlashV2S v s  = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
     SlashV2Q v q  = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
     SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
@@ -24,11 +24,11 @@
     ComplSlash vp np = insertObjPre (\\_ => vp.c2 ++ np.s ! Acc) vp ;
 
     SlashVV vv vp = 
-      insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
+      insertObj (\\a => infVP vv.typ vp a) (predVV vv) **
         {c2 = vp.c2} ;
     SlashV2VNP vv np vp = 
       insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
-        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
+        (insertObjc (\\a => infVP vv.typ vp a) (predVc vv)) **
           {c2 = vp.c2} ;
 
     UseComp comp = insertObj comp.s (predAux auxBe) ;
@@ -46,5 +46,12 @@
     CompAP ap = ap ;
     CompNP np = {s = \\_ => np.s ! Acc} ;
     CompAdv a = {s = \\_ => a.s} ;
+    CompCN cn = {s = \\a => case (fromAgr a).n of { 
+      Sg => artIndef ++ cn.s ! Sg ! Nom ;
+      Pl => cn.s ! Pl ! Nom
+      }
+    } ;
+
+    UseCopula = predAux auxBe ;
 
 }
diff --git a/lib/src/english/treebank.txt b/lib/src/english/treebank.txt
new file mode 100644
--- /dev/null
+++ b/lib/src/english/treebank.txt
@@ -0,0 +1,2038 @@
+an Italian became the world's greatest tenor
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant IndefArt NumSg) (UseN italian_N)) (ComplSlash (SlashV2a become_V2) (DetCN (DetQuantOrd (GenNP (DetCN (DetQuant DefArt NumSg) (UseN world_N))) NumSg (OrdSuperl great_A)) (UseN tenor_N)))))
+
+was there an Italian who became the world's greatest tenor
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumSg) (RelCN (UseN italian_N) (UseRCl (TTAnt TPast ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a become_V2) (DetCN (DetQuantOrd (GenNP (DetCN (DetQuant DefArt NumSg) (UseN world_N))) NumSg (OrdSuperl great_A)) (UseN tenor_N))))))))))
+
+every Italian man wants to be a great tenor
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA italian_A) (UseN man_N))) (ComplVV want_VV (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA great_A) (UseN tenor_N))))))))
+
+some Italian men are great tenors
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA italian_A) (UseN man_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (UseN tenor_N)))))))
+
+are there Italian men who want to be a great tenor
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA italian_A) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplVV want_VV (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA great_A) (UseN tenor_N))))))))))))))
+
+all Italian men want to be a great tenor
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (AdjCN (PositA italian_A) (UseN man_N))) (ComplVV want_VV (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA great_A) (UseN tenor_N))))))))
+
+some Italian men are great tenors
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA italian_A) (UseN man_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (UseN tenor_N)))))))
+
+are there Italian men who want to be a great tenor
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA italian_A) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplVV want_VV (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA great_A) (UseN tenor_N))))))))))))))
+
+each Italian tenor wants to be great
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN each_Det (AdjCN (PositA italian_A) (UseN tenor_N))) (ComplVV want_VV (UseComp (CompAP (PositA great_A))))))
+
+some Italian tenors are great
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA italian_A) (UseN tenor_N))) (UseComp (CompAP (PositA great_A)))))
+
+are there Italian tenors who want to be great
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (RelCN (AdjCN (PositA italian_A) (UseN tenor_N)) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplVV want_VV (UseComp (CompAP (PositA great_A)))))))))))
+
+the really ambitious tenors are Italian
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (AdjCN (AdAP (PositAdAAdj real_A) (PositA ambitious_A)) (UseN tenor_N))) (UseComp (CompAP (PositA italian_A)))))
+
+are there really ambitious tenors who are Italian
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (RelCN (AdjCN (AdAP (PositAdAAdj real_A) (PositA ambitious_A)) (UseN tenor_N)) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA italian_A))))))))))
+
+no really great tenors are modest
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant no_Quant NumPl) (AdjCN (AdAP (PositAdAAdj real_A) (PositA great_A)) (UseN tenor_N))) (UseComp (CompAP (PositA modest_A)))))
+
+are there really great tenors who are modest
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (RelCN (AdjCN (AdAP (PositAdAAdj real_A) (PositA great_A)) (UseN tenor_N)) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA modest_A))))))))))
+
+some great tenors are Swedish
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA great_A) (UseN tenor_N))) (UseComp (CompAP (PositA swedish_A)))))
+
+are there great tenors who are Swedish
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA swedish_A)))))))))))
+
+many great tenors are German
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN many_Det (AdjCN (PositA great_A) (UseN tenor_N))) (UseComp (CompAP (PositA german_A)))))
+
+are there great tenors who are German
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA german_A)))))))))))
+
+several great tenors are British
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN several_Det (AdjCN (PositA great_A) (UseN tenor_N))) (UseComp (CompAP (PositA british_A)))))
+
+are there great tenors who are British
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA british_A)))))))))))
+
+most great tenors are Italian
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN most_Det (AdjCN (PositA great_A) (UseN tenor_N))) (UseComp (CompAP (PositA italian_A)))))
+
+are there great tenors who are Italian
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA italian_A)))))))))))
+
+a few great tenors sing popular music
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN a8few_Det (AdjCN (PositA great_A) (UseN tenor_N))) (ComplSlash (SlashV2a sing_V2) (MassNP (AdjCN (PositA popular_A) (UseN music_N))))))
+
+some great tenors like popular music
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA great_A) (UseN tenor_N))) (ComplSlash (SlashV2a like_V2) (MassNP (AdjCN (PositA popular_A) (UseN music_N))))))
+
+are there great tenors who sing popular music
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a sing_V2) (MassNP (AdjCN (PositA popular_A) (UseN music_N))))))))))))
+
+few great tenors are poor
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN few_Det (AdjCN (PositA great_A) (UseN tenor_N))) (UseComp (CompAP (PositA poor_A)))))
+
+are there great tenors who are poor
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA great_A) (RelCN (UseN tenor_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA poor_A)))))))))))
+
+both leading tenors are excellent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN both_Det (VerbCN lead_V (UseN tenor_N))) (UseComp (CompAP (PositA excellent_A)))))
+
+leading tenors who are excellent are indispensable
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant IndefArt NumPl) (RelCN (VerbCN lead_V (UseN tenor_N)) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseComp (CompAP (PositA excellent_A))))))) (UseComp (CompAP (PositA indispensable_A)))))
+
+are both leading tenors indispensable
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN both_Det (AdjCN (PositA leading_A) (UseN tenor_N))) (UseComp (CompAP (PositA indispensable_A))))))
+
+neither leading tenor comes cheap
+
+one of the leading tenors is pavarotti
+
+is pavarotti a leading tenor who comes cheap
+
+at least three tenors will take part in the concert
+UttS (UseCl (TTAnt TFut ASimul) PPos (PredVP (DetCN (DetQuant IndefArt (NumCard (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))))))) (UseN tenor_N)) (ComplSlash (SlashV2a take_V2) (AdvNP (MassNP (UseN part_N)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (UseN concert_N)))))))
+
+are there tenors who will take part in the concert
+
+at most two tenors will contribute their fees to charity
+UttS (UseCl (TTAnt TFut ASimul) PPos (PredVP (DetCN (DetQuant IndefArt (NumCard (AdNum at_most_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (UseN tenor_N)) (AdvVP (ComplSlash (SlashV2a contribute_V2) (DetCN (DetQuant (PossPron they_Pron) NumPl) (UseN fee_N))) (PrepNP to_Prep (MassNP (UseN charity_N))))))
+
+*** are there tenors who will contribute their fees to charity
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (AdvNP (DetCN (DetQuant IndefArt NumPl) (RelCN (UseN tenor_N) (UseRCl (TTAnt TFut ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a contribute_V2) (DetCN (DetQuant (PossPron they_Pron) NumPl) (UseN fee_N))))))) (PrepNP to_Prep (MassNP (UseN charity_N)))))))
+
+an irishman won the nobel prize for literature
+
+did an irishman win a nobel prize
+
+every European has the right to live in Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdvCN (SentCN (UseN right_N) (EmbedVP (UseV live_V))) (PrepNP in_Prep (UsePN europe_PN)))))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+can every European travel freely within Europe
+
+all Europeans have the right to live in Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN european_N)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdvCN (SentCN (UseN right_N) (EmbedVP (UseV live_V))) (PrepNP in_Prep (UsePN europe_PN)))))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+can all Europeans travel freely within Europe
+
+each European has the right to live in Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN each_Det (UseN european_N)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdvCN (SentCN (UseN right_N) (EmbedVP (UseV live_V))) (PrepNP in_Prep (UsePN europe_PN)))))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+can each European travel freely within Europe
+
+the residents of member states have the right to live in Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (AdvCN (SentCN (UseN right_N) (EmbedVP (UseV live_V))) (PrepNP in_Prep (UsePN europe_PN)))))))
+
+all residents of member states are individuals
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN all_Det (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (UseN individual_N))))))
+
+every individual who has the right to live in Europe can travel freely within Europe
+
+can the residents of member states travel freely within Europe
+
+no delegate finished the report on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant no_Quant NumSg) (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did no delegate finish the report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant no_Quant NumSg) (UseN delegate_N)) (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))))))
+
+some delegates finished the survey on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN somePl_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did some delegates finish the survey
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN somePl_Det (UseN delegate_N)) (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))))))
+
+many delegates obtained interesting results from the survey
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN many_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N))))))
+
+did many delegates obtain results from the survey
+
+several delegates got the results published in major national newspapers
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN several_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N))))))))
+
+did several delegates get the results published
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN several_Det (UseN delegate_N)) (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)))))
+
+most Europeans are resident in Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN most_Det (UseN european_N)) (UseComp (CompAP (AdvAP (PositA resident_A) (PrepNP in_Prep (UsePN europe_PN)))))))
+
+all Europeans are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN european_N)) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are resident in Europe can travel freely within Europe
+
+can most Europeans travel freely within Europe
+
+a few committee members are from Sweden
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN a8few_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompAdv (PrepNP from_Prep (UsePN sweden_PN))))))
+
+all committee members are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are from Sweden are from Scandinavia
+
+are at least a few committee members from Scandinavia
+
+few committee members are from Portugal
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN few_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompAdv (PrepNP from_Prep (UsePN portugal_PN))))))
+
+all committee members are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are from Portugal are from southern Europe
+
+are there few committee members from southern Europe
+
+both commissioners used to be leading businessmen
+
+did both commissioners used to be businessmen
+
+neither commissioner spends a lot of time at home
+
+does neither commissioner spend time at home
+
+at least three commissioners spend a lot of time at home
+
+do at least three commissioners spend time at home
+
+at most ten commissioners spend a lot of time at home
+
+do at most ten commissioners spend time at home
+
+an irishman won a nobel prize
+
+did an irishman win the nobel prize for literature
+
+every European can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+does every European have the right to live in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN every_Det (UseN european_N)) (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (UseV live_V))))) (PrepNP in_Prep (UsePN europe_PN))))))
+
+all Europeans can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN european_N)) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+do all Europeans have the right to live in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN all_Det (UseN european_N)) (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (UseV live_V))))) (PrepNP in_Prep (UsePN europe_PN))))))
+
+each European can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN each_Det (UseN european_N)) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every European is a person
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN european_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))))
+
+every person who has the right to live in Europe can travel freely within Europe
+
+does each European have the right to live in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN each_Det (UseN european_N)) (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (UseV live_V))))) (PrepNP in_Prep (UsePN europe_PN))))))
+
+the residents of member states can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+all residents of member states are individuals
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN all_Det (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (UseN individual_N))))))
+
+every individual who has the right to live anywhere in Europe can travel freely within Europe
+
+do the residents of member states have the right to live anywhere in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (AdvVP (AdvVP (UseV live_V) anywhere_Adv) (PrepNP in_Prep (UsePN europe_PN)))))))))) 
+
+no delegate finished the report
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant no_Quant NumSg) (UseN delegate_N)) (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N)))))
+
+did any delegate finish the report on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (MassNP (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+some delegates finished the survey
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN somePl_Det (UseN delegate_N)) (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N)))))
+
+did some delegates finish the survey on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN somePl_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+many delegates obtained results from the survey
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN many_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (UseN result_N))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N))))))
+
+did many delegates obtain interesting results from the survey
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN many_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N)))))))
+
+several delegates got the results published
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN several_Det (UseN delegate_N)) (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2))))
+
+did several delegates get the results published in major national newspapers
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN several_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N)))))))))
+
+most Europeans can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN most_Det (UseN european_N)) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+all Europeans are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN european_N)) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are resident in Europe can travel freely within Europe
+
+are most Europeans resident in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN most_Det (UseN european_N)) (UseComp (CompAP (AdvAP (PositA resident_A) (PrepNP in_Prep (UsePN europe_PN))))))))
+
+a few committee members are from scandinavia
+
+all committee members are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are from Sweden are from scandinavia
+
+are at least a few committee members from Sweden
+
+few committee members are from southern Europe
+
+all committee members are people
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN committee_N) (UseN member_N))) (UseComp (CompNP (MassNP (UseN people_N))))))
+
+all people who are from Portugal are from southern Europe
+
+are there few committee members from Portugal
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (AdvNP (DetCN few_Det (CompoundCN (UseN committee_N) (UseN member_N))) (PrepNP from_Prep (UsePN portugal_PN))))))
+
+both commissioners used to be businessmen
+
+did both commissioners used to be leading businessmen
+
+neither commissioner spends time at home
+
+does either commissioner spend a lot of time at home
+
+at least three commissioners spend time at home
+
+do at least three commissioners spend a lot of time at home
+
+at most ten commissioners spend time at home
+
+do at most ten commissioners spend a lot of time at home
+
+a Swede won a nobel prize
+
+every Swede is a Scandinavian
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN swede_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN scandinavian_N))))))
+
+did a scandinavian win a nobel prize
+
+every Canadian resident can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can every resident of the north american continent travel freely within Europe
+
+all Canadian residents can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can all residents of the north american continent travel freely within Europe
+
+each Canadian resident can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN each_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can each resident of the north american continent travel freely within Europe
+
+the residents of major western countries can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA western_A) (UseN country_N)))))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+all residents of major western countries are residents of western countries
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN all_Det (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA western_A) (UseN country_N)))))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA western_A) (UseN country_N)))))))))
+
+do the residents of western countries have the right to live in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN member_N) (UseN state_N))))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (AdvVP (UseV live_V) (PrepNP in_Prep (UsePN europe_PN)))))))))) 
+
+no Scandinavian delegate finished the report on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant no_Quant NumSg) (AdjCN (PositA scandinavian_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did any delegate finish the report on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (MassNP (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+some irish delegates finished the survey on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN somePl_Det (AdjCN (PositA irish_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did any delegates finish the survey on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA any_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+many British delegates obtained interesting results from the survey
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN many_Det (AdjCN (PositA british_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N))))))
+
+did many delegates obtain interesting results from the survey
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN many_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N)))))))
+
+several Portuguese delegates got the results published in major national newspapers
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN several_Det (AdjCN (PositA portuguese_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N))))))))
+
+did several delegates get the results published in major national newspapers
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN several_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N)))))))))
+
+most Europeans who are resident in Europe can travel freely within europe
+
+can most Europeans travel freely within Europe
+
+a few female committee members are from scandinavia
+
+are at least a few committee members from scandinavia
+
+few female committee members are from southern Europe
+
+are few committee members from southern Europe
+
+both female commissioners used to be in business
+
+did both commissioners used to be in business
+
+neither female commissioner spends a lot of time at home
+
+does either commissioner spend a lot of time at home
+
+at least three female commissioners spend time at home
+
+do at least three commissioners spend time at home
+
+at most ten female commissioners spend time at home
+
+do at most ten commissioners spend time at home
+
+a Scandinavian won a nobel prize
+
+every Swede is a Scandinavian
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN swede_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN scandinavian_N))))))
+
+did a Swede win a nobel prize
+
+every resident of the north American continent can travel freely within Europe
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can every Canadian resident travel freely within Europe
+
+all residents of the north American continent can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (AdvCN (UseN resident_N) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can all Canadian residents travel freely within Europe
+
+each resident of the north American continent can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN each_Det (AdvCN (UseN resident_N) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+every Canadian resident is a resident of the north American continent
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (AdjCN (PositA canadian_A) (UseN resident_N))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (AdjCN (PositA north_A) (AdjCN (PositA american_A) (UseN continent_N))))))))))
+
+can each Canadian resident travel freely within Europe
+
+the residents of western countries can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA western_A) (UseN country_N))))) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+all residents of major western countries are residents of western countries
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN all_Det (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA western_A) (UseN country_N)))))) (UseComp (CompNP (AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA western_A) (UseN country_N)))))))))
+
+do the residents of major western countries have the right to live in Europe
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN resident_N)) (PrepNP of_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA western_A) (UseN country_N)))))) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (SentCN (UseN right_N) (EmbedVP (AdvVP (UseV live_V) (PrepNP in_Prep (UsePN europe_PN)))))))))) 
+
+no delegate finished the report on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant no_Quant NumSg) (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did any Scandinavian delegate finish the report on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (MassNP (AdjCN (PositA scandinavian_A) (UseN delegate_N)))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+some delegates finished the survey on time
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN somePl_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N))))))
+
+did any irish delegates finish the survey on time
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA irish_A) (UseN delegate_N)))) (AdvVP (ComplSlash (SlashV2a finish_V2) (DetCN (DetQuant DefArt NumSg) (UseN survey_N))) (PrepNP on_Prep (MassNP (UseN time_N)))))))
+
+many delegates obtained interesting results from the survey
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN many_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N))))))
+
+did many British delegates obtain interesting results from the survey
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN many_Det (AdjCN (PositA british_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a obtain_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA interesting_A) (UseN result_N)))) (PrepNP from_Prep (DetCN (DetQuant DefArt NumSg) (UseN survey_N)))))))
+
+several delegates got the results published in major national newspapers
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN several_Det (UseN delegate_N)) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N))))))))
+
+did several Portuguese delegates get the results published in major national newspapers
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN several_Det (AdjCN (PositA portuguese_A) (UseN delegate_N))) (AdvVP (ComplSlash (SlashV2a get_V2) (PPartNP (DetCN (DetQuant DefArt NumPl) (UseN result_N)) publish_V2)) (PrepNP in_Prep (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA major_A) (AdjCN (PositA national_A) (UseN newspaper_N)))))))))
+
+most Europeans can travel freely within Europe
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN most_Det (UseN european_N)) (AdvVP (AdvVP (ComplVV can_VV (UseV travel_V)) (PositAdvAdj free_A)) (PrepNP within_Prep (UsePN europe_PN)))))
+
+can most Europeans who are resident outside Europe travel freely within Europe
+
+a few committee members are from Scandinavia
+
+are at least a few female committee members from Scandinavia
+
+few committee members are from southern Europe
+
+are few female committee members from southern Europe
+
+both commissioners used to be in business
+
+did both female commissioners used to be in business
+
+neither commissioner spends a lot of time at home
+
+does either female commissioner spend a lot of time at home
+
+at least three commissioners spend time at home
+
+do at least three male commissioners spend time at home
+
+at most ten commissioners spend time at home
+
+do at most ten female commissioners spend time at home
+
+Smith, Jones and Anderson signed the contract
+
+did Jones sign the contract
+
+Smith, Jones and several lawyers signed the contract
+
+did Jones sign the contract
+
+either Smith, Jones or Anderson signed the contract
+
+did Jones sign the contract
+
+either Smith, Jones or Anderson signed the contract
+
+if Smith and Anderson did not sign the contract, did Jones sign the contract
+
+exactly two lawyers and three accountants signed the contract
+
+did six lawyers sign the contract
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n6)))))))) (UseN lawyer_N)) (ComplSlash (SlashV2a sign_V2) (DetCN (DetQuant DefArt NumSg) (UseN contract_N))))))
+
+exactly two lawyers and three accountants signed the contract
+
+did six accountants sign the contract
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n6)))))))) (UseN accountant_N)) (ComplSlash (SlashV2a sign_V2) (DetCN (DetQuant DefArt NumSg) (UseN contract_N))))))
+
+every representative and client was at the meeting
+
+was every representative at the meeting
+
+every representative and client was at the meeting
+
+was every representative at the meeting
+
+every representative or client was at the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN every_Det (ConjCN or_Conj (BaseCN (UseN representative_N) (UseN client_N)))) (UseComp (CompAdv (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))))
+
+was every representative and every client at the meeting
+
+the chairman read out the items on the agenda
+
+did the chairman read out every item on the agenda
+
+the people who were at the meeting voted for a new chairman
+
+did everyone at the meeting vote for a new chairman
+
+all the people who were at the meeting voted for a new chairman
+
+did everyone at the meeting vote for a new chairman
+
+the people who were at the meeting all voted for a new chairman
+
+did everyone at the meeting vote for a new chairman
+
+the inhabitants of Cambridge voted for a labour mp
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl) (UseN inhabitant_N)) (PrepNP of_Prep (UsePN cambridge_PN))) (AdvVP (UseV vote_V) (PrepNP for_Prep (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN labour_N) (UseN mp_N)))))))
+
+did every inhabitant of Cambridge vote for a labour mp
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (AdvNP (DetCN every_Det (UseN inhabitant_N)) (PrepNP of_Prep (UsePN cambridge_PN))) (AdvVP (UseV vote_V) (PrepNP for_Prep (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN labour_N) (UseN mp_N)))))))) 
+
+the ancient Greeks were noted philosophers
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA ancient_A) (UseN greek_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA noted_A) (UseN philosopher_N)))))))
+
+was every ancient Greek a noted philosopher
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN every_Det (AdjCN (PositA ancient_A) (UseN greek_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA noted_A) (UseN philosopher_N))))))))
+
+the ancient Greeks were all noted philosophers
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA ancient_A) (UseN greek_N))) (UseComp (CompNP (DetCN all_Det (AdjCN (PositA noted_A) (UseN philosopher_N)))))))
+
+was every ancient Greek a noted philosopher
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN every_Det (AdjCN (PositA ancient_A) (UseN greek_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA noted_A) (UseN philosopher_N))))))))
+
+software faults were blamed for the system failure
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN software_N) (UseN fault_N))) (AdvVP (PassV2 blame_V2) (PrepNP for_Prep (DetCN (DetQuant DefArt NumSg) (CompoundCN (UseN system_N) (UseN failure_N)))))))
+
+was the system failure blamed on one or more software faults
+
+software faults were blamed for the system failure
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN software_N) (UseN fault_N))) (AdvVP (PassV2 blame_V2) (PrepNP for_Prep (DetCN (DetQuant DefArt NumSg) (CompoundCN (UseN system_N) (UseN failure_N)))))))
+
+bug # 32-985 is a known software fault
+
+was bug # 32-985 blamed for the system failure
+
+clients at the demonstration were all impressed by the system's performance
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN client_N)) (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (UseN demonstration_N)))) (AdvVP (UseComp (CompNP (PPartNP (DetNP all_Det) impress_V2))) (PrepNP by8means_Prep (DetCN (DetQuant (GenNP (DetCN (DetQuant DefArt NumSg) (UseN system_N))) NumSg) (UseN performance_N))))))
+
+Smith was a client at the demonstration
+
+was smith impressed by the system's performance
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (PassV2 impress_V2) (PrepNP by8agent_Prep (DetCN (DetQuant (GenNP (DetCN (DetQuant DefArt NumSg) (UseN system_N))) NumSg) (UseN performance_N)))))))
+
+clients at the demonstration were impressed by the system's performance
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant IndefArt NumPl) (UseN client_N)) (PrepNP at_Prep (DetCN (DetQuant DefArt NumSg) (UseN demonstration_N)))) (AdvVP (PassV2 impress_V2) (PrepNP by8means_Prep (DetCN (DetQuant (GenNP (DetCN (DetQuant DefArt NumSg) (UseN system_N))) NumSg) (UseN performance_N))))))
+
+were most clients at the demonstration impressed by the system's performance
+
+university graduates make poor stock-market traders
+
+smith is a university graduate
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (MassNP (UseN smith_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN university_N) (UseN graduate_N)))))))
+
+is smith likely to make a poor stock market trader
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (MassNP (ApposCN (SentCN (AdvCN (UseN smith_N) (PositAdvAdj like_A)) (EmbedVP (ComplSlash (SlashV2a make_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA poor_A) (UseN stock_N)))))) (MassNP (UseN market_N)))) (UseComp (CompNP (MassNP (UseN trader_N)))))))
+
+university graduates make poor stock-market traders
+
+smith is a university graduate
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (MassNP (UseN smith_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN university_N) (UseN graduate_N)))))))
+
+will Smith make a poor stock market trader
+
+all apcom managers have company cars
+
+Jones is an apcom manager
+
+does Jones have a company car
+
+all apcom managers have company cars
+
+Jones is an apcom manager
+
+does Jones have more than one company car
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did no accountants attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant no_Quant NumPl) (UseN accountant_N)) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did no accountant attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant no_Quant NumSg) (UseN accountant_N)) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did any accountants attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (DetCN (DetQuant IndefArt NumPl) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did any accountant attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (PredetNP any_Predet (MassNP (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did some accountants attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN somePl_Det (UseN accountant_N)) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+just one accountant attended the meeting
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (PredetNP only_Predet (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN accountant_N))) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N)))))
+
+did some accountant attend the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN someSg_Det (UseN accountant_N)) (ComplSlash (SlashV2a attend_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+smith signed one contract
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a sign_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN contract_N)))))
+
+Jones signed another contract
+
+did Smith and Jones sign two contracts
+
+smith signed two contracts
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a sign_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (UseN contract_N)))))
+
+Jones signed two contracts
+
+did Smith and Jones sign two contracts
+
+smith signed two contracts
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a sign_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (UseN contract_N)))))
+
+Jones also signed them
+
+did Smith and Jones sign two contracts
+
+Mary used her workstation
+
+was Mary's workstation used
+
+Mary used her workstation
+
+does Mary have a workstation
+
+Mary used her workstation
+
+is Mary female
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mary_PN) (UseComp (CompAP (PositA female_A))))))
+
+every student used her workstation
+
+Mary is a student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mary_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN student_N))))))
+
+did Mary use her workstation
+
+every student used her workstation
+
+Mary is a student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mary_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN student_N))))))
+
+does Mary have a workstation
+
+no student used her workstation
+
+Mary is a student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mary_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN student_N))))))
+
+did Mary use a workstation
+
+Smith attended a meeting
+
+she chaired it
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron she_Pron) (ComplSlash (SlashV2a chair_V2) (UsePron it_Pron))))
+
+did smith chair a meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a chair_V2) (DetCN (DetQuant IndefArt NumSg) (UseN meeting_N))))))
+
+Smith delivered a report to Itel
+
+she also delivered them an invoice
+
+and she delivered them a project proposal
+
+did Smith deliver a report, an invoice and a project proposal to Itel
+
+every committee has a chairman
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN committee_N)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN chairman_N)))))
+
+he is appointed its members
+
+does every committee have a chairman appointed by members of the committee
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN every_Det (UseN committee_N)) (ComplSlash (SlashV2a have_V2) (AdvNP (PPartNP (DetCN (DetQuant IndefArt NumSg) (UseN chairman_N)) appoint_V2) (PrepNP by8agent_Prep (DetCN (DetQuant IndefArt NumPl) (AdvCN (UseN member_N) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (UseN committee_N)))))))))))
+
+Itel has sent most of the reports Smith needs
+
+they are on her desk
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron they_Pron) (UseComp (CompAdv (PrepNP on_Prep (DetCN (DetQuant (PossPron she_Pron) NumSg) (UseN desk_N)))))))
+
+are there some reports from Itel on Smith's desk
+
+two out of ten machines are missing
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetNP (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (PrepNP out_of_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 pot110)))))) (UseN machine_N)))) (ProgrVP (UseV miss_V))))
+
+they have been removed
+UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron they_Pron) (PassV2 remove_V2)))
+
+have two machines been removed
+UttQS (UseQCl (TTAnt TPres AAnter) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (UseN machine_N)) (PassV2 remove_V2))))
+
+two out of ten machines are missing
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetNP (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (PrepNP out_of_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 pot110)))))) (UseN machine_N)))) (ProgrVP (UseV miss_V))))
+
+they have been removed
+UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron they_Pron) (PassV2 remove_V2)))
+
+have eight machines been removed
+UttQS (UseQCl (TTAnt TPres AAnter) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))))))) (UseN machine_N)) (PassV2 remove_V2))))
+
+two out of ten machines are missing
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetNP (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (PrepNP out_of_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 pot110)))))) (UseN machine_N)))) (ProgrVP (UseV miss_V))))
+
+they were all here yesterday
+
+were ten machines here yesterday
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 pot110)))))) (UseN machine_N)) (AdvVP (UseComp (CompAdv here_Adv)) yesterday_Adv))))
+
+Smith took a machine on Tuesday , and Jones took a machine on Wednesday
+
+they put them in the lobby
+UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron they_Pron) (AdvVP (ComplSlash (SlashV2a put_V2) (UsePron they_Pron)) (PrepNP in_Prep (DetCN (DetQuant DefArt NumSg) (UseN lobby_N))))) 
+
+did Smith and Jones put two machines in the lobby
+
+John and his colleagues went to a meeting
+UseCl (TTAnt TPast ASimul) PPos (PredVP (ConjNP and_Conj (BaseNP (UsePN john_PN) (DetCN (DetQuant (PossPron he_Pron) NumPl) (UseN colleague_N)))) (AdvVP (UseV go_V) (PrepNP to_Prep (DetCN (DetQuant IndefArt NumSg) (UseN meeting_N)))))
+
+they hated it
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron they_Pron) (ComplSlash (SlashV2a hate_V2) (UsePron it_Pron))))
+
+did John's colleagues hate the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant (GenNP (UsePN john_PN)) NumPl) (UseN colleague_N)) (ComplSlash (SlashV2a hate_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+John and his colleagues went to a meeting
+UseCl (TTAnt TPast ASimul) PPos (PredVP (ConjNP and_Conj (BaseNP (UsePN john_PN) (DetCN (DetQuant (PossPron he_Pron) NumPl) (UseN colleague_N)))) (AdvVP (UseV go_V) (PrepNP to_Prep (DetCN (DetQuant IndefArt NumSg) (UseN meeting_N)))))
+
+they hated it
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron they_Pron) (ComplSlash (SlashV2a hate_V2) (UsePron it_Pron))))
+
+did John hate the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (ComplSlash (SlashV2a hate_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+John and his colleagues went to a meeting
+UseCl (TTAnt TPast ASimul) PPos (PredVP (ConjNP and_Conj (BaseNP (UsePN john_PN) (DetCN (DetQuant (PossPron he_Pron) NumPl) (UseN colleague_N)))) (AdvVP (UseV go_V) (PrepNP to_Prep (DetCN (DetQuant IndefArt NumSg) (UseN meeting_N)))))
+
+they hated it
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron they_Pron) (ComplSlash (SlashV2a hate_V2) (UsePron it_Pron))))
+
+did John hate the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (ComplSlash (SlashV2a hate_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+each department has a dedicated line
+
+they rent them from BT
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron they_Pron) (AdvVP (ComplSlash (SlashV2a rent_V2) (UsePron they_Pron)) (PrepNP from_Prep (UsePN bt_PN)))))
+
+does every department rent a line from BT
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN every_Det (UseN department_N)) (AdvVP (ComplSlash (SlashV2a rent_V2) (DetCN (DetQuant IndefArt NumSg) (UseN line_N))) (PrepNP from_Prep (UsePN bt_PN))))))
+
+each department has a dedicated line
+
+the sales department rents it from BT
+
+does the sales department rent a line from BT
+
+gfi owns several computers
+
+Itel maintains them
+
+does Itel maintain all the computers that gfi owns
+
+every customer who owns a computer has a service contract for it
+UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (RelCN (UseN customer_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN computer_N))))))) (ComplSlash (SlashV2a have_V2) (AdvNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN service_N) (UseN contract_N))) (PrepNP for_Prep (UsePron it_Pron)))))
+
+mfi is a customer that owns exactly one computer
+
+does mfi have a service contract for all its computers
+
+every customer who owns a computer has a service contract for it
+UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (RelCN (UseN customer_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN computer_N))))))) (ComplSlash (SlashV2a have_V2) (AdvNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN service_N) (UseN contract_N))) (PrepNP for_Prep (UsePron it_Pron)))))
+
+mfi is a customer that owns several computers
+
+does mfi have a service contract for all its computers
+
+every executive who had a laptop computer brought it to take notes at the meeting
+
+Smith is a executive who owns five different laptop computers
+
+did Smith take five laptop computers to the meeting
+
+there are 1 0 0 companies
+UseCl (TTAnt TPres ASimul) PPos (ExistNP (DetCN (DetQuant IndefArt (NumCard (NumDigits (IIDig D_1 (IIDig D_0 (IDig D_0)))))) (UseN company_N)))
+
+icm is one of the companies and owns 150 computers
+
+it does not have service contracts for any of its computers
+
+each of the other 99 companies owns one computer
+
+they have service contracts for them
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron they_Pron) (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN service_N) (UseN contract_N)))) (PrepNP for_Prep (UsePron they_Pron)))))
+
+*** do most companies that own a computer have a service contract for it
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN most_Det (RelCN (UseN company_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN computer_N))))))) (AdvVP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN service_N) (MassNP (UseN contract_N))))) (PrepNP for_Prep (UsePron it_Pron))))))
+
+every report has a cover page
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN every_Det (UseN report_N)) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN cover_N) (UseN page_N))))))
+
+r-95-103 is a report
+
+Smith signed the cover page
+
+did Smith sign the cover page of r-95-103
+
+a company director awarded himself a large payrise
+
+has a company director awarded and been awarded a payrise
+
+John said Bill had hurt himself
+
+did John say Bill had been hurt
+
+John said Bill had hurt himself
+
+did anyone say John had been hurt
+
+John spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+so did Bill
+
+did Bill speak to Mary
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+John spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+so did Bill
+
+John spoke to Mary at four o'clock
+
+did Bill speak to Mary at four o'clock
+
+John spoke to Mary at four o'clock
+
+so did Bill
+
+did Bill speak to Mary at four o'clock
+
+John spoke to Mary at four o'clock
+
+and Bill did at five o'clock
+
+did Bill speak to Mary at five o'clock
+
+John has spoken to Mary
+UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+Bill is going to
+
+will Bill speak to Mary
+
+John spoke to Mary on Monday
+
+Bill didn't
+
+did Bill speak to Mary on Monday
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))) (PrepNP on_Prep (UsePN monday_PN))))))
+
+has John spoken to Mary
+UttQS (UseQCl (TTAnt TPres AAnter) PPos (QuestCl (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+Bill has
+
+has Bill spoken to Mary
+UttQS (UseQCl (TTAnt TPres AAnter) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+John has spoken to Mary
+UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+the students have too
+
+have the students spoken to Mary
+UttQS (UseQCl (TTAnt TPres AAnter) PPos (QuestCl (PredVP (DetCN (DetQuant DefArt NumPl) (UseN student_N)) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+John went to Paris by car , and Bill by train
+
+did Bill go to Paris by train
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (AdvVP (UseV go_V) (PrepNP to_Prep (UsePN paris_PN))) (PrepNP by8means_Prep (MassNP (UseN train_N)))))))
+
+John went to Paris by car , and Bill by train to Berlin
+
+did Bill go to Berlin by train
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (AdvVP (UseV go_V) (PrepNP to_Prep (UsePN berlin_PN))) (PrepNP by8means_Prep (MassNP (UseN train_N)))))))
+
+John went to Paris by car , and Bill to Berlin
+
+did Bill go to Berlin by car
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (AdvVP (UseV go_V) (PrepNP to_Prep (UsePN berlin_PN))) (PrepNP by8means_Prep (MassNP (UseN car_N)))))))
+
+John is going to Paris by car , and the students by train
+
+are the students going to Paris by train
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant DefArt NumPl) (UseN student_N)) (AdvVP (AdvVP (ProgrVP (UseV go_V)) (PrepNP to_Prep (UsePN paris_PN))) (PrepNP by8means_Prep (MassNP (UseN train_N)))))))
+
+John went to Paris by car
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (AdvVP (UseV go_V) (PrepNP to_Prep (UsePN paris_PN))) (PrepNP by8means_Prep (MassNP (UseN car_N))))))
+
+Bill by train
+
+did Bill go to Paris by train
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (AdvVP (UseV go_V) (PrepNP to_Prep (UsePN paris_PN))) (PrepNP by8means_Prep (MassNP (UseN train_N)))))))
+
+John owns a car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN car_N)))))
+
+Bill owns one too
+
+does Bill own a car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN car_N))))))
+
+John owns a car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN car_N)))))
+
+Bill owns one too
+
+is there a car that John and Bill own
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt NumSg) (RelCN (UseN car_N) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash IdRP (SlashVP (ConjNP and_Conj (BaseNP (UsePN john_PN) (UsePN bill_PN))) (SlashV2a own_V2)))))))))
+
+John owns a red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N))))))
+
+Bill owns a blue one
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN blue_N) (DetNP (DetQuant IndefArt NumSg)))))))
+
+does Bill own a blue car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA blue_A) (UseN car_N)))))))
+
+John owns a red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N))))))
+
+Bill owns a blue one
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN blue_N) (DetNP (DetQuant IndefArt NumSg)))))))
+
+does Bill own a red car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N)))))))
+
+John owns a red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N))))))
+
+Bill owns a fast one
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN fast_N) (DetNP (DetQuant IndefArt NumSg)))))))
+
+does Bill own a fast car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA fast_A) (UseN car_N)))))))
+
+John owns a red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N))))))
+
+Bill owns a fast one
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN fast_N) (DetNP (DetQuant IndefArt NumSg)))))))
+
+does Bill own a fast red car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA fast_A) (AdjCN (PositA red_A) (UseN car_N))))))))
+
+John owns a red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA red_A) (UseN car_N))))))
+
+Bill owns a fast one
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (ApposCN (UseN fast_N) (DetNP (DetQuant IndefArt NumSg)))))))
+
+does Bill own a fast red car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA fast_A) (AdjCN (PositA red_A) (UseN car_N))))))))
+
+John owns a fast red car
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA fast_A) (AdjCN (PositA red_A) (UseN car_N)))))))
+
+Bill owns a slow one
+
+does Bill own a slow red car
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA slow_A) (AdjCN (PositA red_A) (UseN car_N))))))))
+
+John had his paper accepted
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a have_V2) (PPartNP (DetCN (DetQuant (PossPron he_Pron) NumSg) (UseN paper_N)) accept_V2))))
+
+Bill doesn't know why
+
+does Bill know why John had his paper accepted
+
+John spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+and to Sue
+
+did John speak to Sue
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN sue_PN))))))
+
+John spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+on Friday
+
+did John speak to Mary on Friday
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (AdvVP (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))) (PrepNP on_Prep (UsePN friday_PN))))))
+
+John spoke to Mary on Thursday
+
+and on Friday
+
+did John speak to Mary on Friday
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (AdvVP (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))) (PrepNP on_Prep (UsePN friday_PN))))))
+
+twenty men work in the sales department
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot1 n2))))))) (UseN man_N)) (AdvVP (UseV work_V) (PrepNP in_Prep (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN sale_N) (MassNP (UseN department_N))))))))
+
+but only one woman
+
+do two women work in the sales department
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (UseN woman_N)) (AdvVP (UseV work_V) (PrepNP in_Prep (DetCN (DetQuant DefArt NumPl) (ApposCN (UseN sale_N) (MassNP (UseN department_N)))))))))
+
+five men work part time
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5)))))))) (UseN man_N)) (ComplSlash (SlashV2a work_V2) (MassNP (CompoundCN (UseN part_N) (UseN time_N))))))
+
+and forty five women
+
+do forty five women work part time
+
+John found Mary before Bill
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (ComplSlash (SlashV2a find_V2) (UsePN mary_PN)) (PrepNP before_Prep (UsePN bill_PN)))))
+
+did John find Mary before Bill found Mary
+
+John found Mary before Bill
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (ComplSlash (SlashV2a find_V2) (UsePN mary_PN)) (PrepNP before_Prep (UsePN bill_PN)))))
+
+did John find Mary before John found Bill
+
+John wants to know how many men work part time
+
+and women
+
+does John want to know how many women work part time
+
+John wants to know how many men work part time, and which
+
+does John want to know which men work part time
+
+Bill spoke to everyone that John did
+
+John spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+did Bill speak to Mary
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+Bill spoke to everyone that John did
+
+Bill spoke to Mary
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN bill_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN)))))
+
+did John speak to Mary
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (AdvVP (UseV speak_V) (PrepNP to_Prep (UsePN mary_PN))))))
+
+John said Mary wrote a report, and Bill did too
+
+did Bill say Mary wrote a report
+
+John said Mary wrote a report, and Bill did too
+
+did John say Bill wrote a report
+
+John said that Mary wrote a report, and that Bill did too
+
+did Bill say Mary wrote a report
+
+John wrote a report, and Bill said peter did too
+
+did Bill say peter wrote a report
+
+if John wrote a report, then Bill did too
+
+John wrote a report
+UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N)))))
+
+did Bill write a report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N))))))
+
+John wanted to buy a car, and he did
+
+did John buy a car
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant IndefArt NumSg) (UseN car_N))))))
+
+John needed to buy a car, and Bill did
+
+did Bill buy a car
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (UsePN bill_PN) (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant IndefArt NumSg) (UseN car_N))))))
+
+Smith represents his company and so does Jones
+
+does Jones represent Jones' company
+
+Smith represents his company and so does Jones
+
+does Jones represent Smith's company
+
+Smith represents his company and so does Jones
+
+does Smith represent Jones' company
+
+Smith claimed he had costed his proposal and so did Jones
+
+did Jones claim he had costed his own proposal
+
+Smith claimed he had costed his proposal and so did Jones
+
+did Jones claim he had costed Smith's proposal
+
+Smith claimed he had costed his proposal and so did Jones
+
+did Jones claim Smith had costed Smith's proposal
+
+Smith claimed he had costed his proposal and so did Jones
+
+did Jones claim Smith had costed Jones' proposal
+
+John is a man and Mary is a woman
+
+John represents his company and so does Mary
+
+does Mary represent her own company
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mary_PN) (ComplSlash (SlashV2a represent_V2) (DetCN (DetQuant (PossPron she_Pron) NumSg) (AdjCN (PositA own_A) (UseN company_N)))))))
+
+John is a man and Mary is a woman
+
+John represents his company and so does Mary
+
+does Mary represent John's company
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mary_PN) (ComplSlash (SlashV2a represent_V2) (DetCN (DetQuant (GenNP (UsePN john_PN)) NumSg) (UseN company_N))))))
+
+Bill suggested to frank's boss that they should go to the meeting together, and carl to alan's wife
+
+if it was suggested that Bill and frank should go together, was it suggested that carl and alan should go together
+
+Bill suggested to frank's boss that they should go to the meeting together, and carl to alan's wife
+
+if it was suggested that Bill and frank should go together, was it suggested that carl and alan's wife should go together
+
+Bill suggested to frank's boss that they should go to the meeting together, and carl to alan's wife
+
+if it was suggested that Bill and frank's boss should go together, was it suggested that carl and alan's wife should go together
+
+Bill suggested to frank's boss that they should go to the meeting together, and carl to alan's wife
+
+if it was suggested that Bill and frank's boss should go together, was it suggested that carl and alan should go together
+
+Bill suggested to frank's boss that they should go to the meeting together, and carl to alan's wife
+
+if it was suggested that Bill, frank and frank's boss should go together, was it suggested that carl, alan and alan's wife should go together
+
+a lawyer signed every report, and so did an auditor
+
+that is, there was one lawyer who signed all the reports
+
+was there one auditor who signed all the reports
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (ExistNP (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (ApposCN (ApposCN (RelCN (UseN auditor_N) (UseRCl (TTAnt TPast ASimul) PPos (RelVP IdRP (UseV sign_V)))) (DetNP all_Det)) (DetCN (DetQuant DefArt NumPl) (UseN report_N)))))))
+
+John has a genuine diamond
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA genuine_A) (UseN diamond_N))))))
+
+does John have a diamond
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN diamond_N))))))
+
+John is a former university student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA former_A) (ApposCN (UseN university_N) (MassNP (UseN student_N)))))))))
+
+is John a university student
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN university_N) (UseN student_N))))))))
+
+John is a successful former university student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA successful_A) (AdjCN (PositA former_A) (ApposCN (UseN university_N) (MassNP (UseN student_N))))))))))
+
+is John successful
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (UseComp (CompAP (PositA successful_A))))))
+
+John is a former successful university student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA former_A) (AdjCN (PositA successful_A) (ApposCN (UseN university_N) (MassNP (UseN student_N))))))))))
+
+is John successful
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (UseComp (CompAP (PositA successful_A))))))
+
+John is a former successful university student
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA former_A) (AdjCN (PositA successful_A) (ApposCN (UseN university_N) (MassNP (UseN student_N))))))))))
+
+is John a university student
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (CompoundCN (UseN university_N) (UseN student_N))))))))
+
+every mammal is an animal
+
+is every four-legged mammal a four-legged animal
+
+dumbo is a four-legged animal
+
+is dumbo four-legged
+
+Mickey is a small animal
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA small_A) (UseN animal_N)))))))
+
+is Mickey a large animal
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA large_A) (UseN animal_N))))))))
+
+dumbo is a large animal
+
+is dumbo a small animal
+
+fido is not a small animal
+
+is fido a large animal
+
+fido is not a large animal
+
+is fido a small animal
+
+Mickey is a small animal
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA small_A) (UseN animal_N)))))))
+
+dumbo is a large animal
+
+is Mickey smaller than dumbo
+
+Mickey is a small animal
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA small_A) (UseN animal_N)))))))
+
+dumbo is a large animal
+
+is Mickey larger than dumbo
+
+all mice are small animals
+
+Mickey is a large mouse
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA large_A) (UseN mouse_N)))))))
+
+is Mickey a large animal
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA large_A) (UseN animal_N))))))))
+
+all elephants are large animals
+
+dumbo is a small elephant
+
+is dumbo a small animal
+
+all mice are small animals
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN mouse_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA small_A) (UseN animal_N)))))))
+
+all elephants are large animals
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN elephant_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA large_A) (UseN animal_N)))))))
+
+Mickey is a large mouse
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA large_A) (UseN mouse_N)))))))
+
+dumbo is a small elephant
+
+is dumbo larger than Mickey
+
+all mice are small animals
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (UseN mouse_N)) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA small_A) (UseN animal_N)))))))
+
+Mickey is a large mouse
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePN mickey_PN) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA large_A) (UseN mouse_N)))))))
+
+is Mickey small
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN mickey_PN) (UseComp (CompAP (PositA small_A))))))
+
+all legal authorities are law lecturers
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (AdjCN (PositA legal_A) (UseN authority_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN law_N) (UseN lecturer_N)))))))
+
+all law lecturers are legal authorities
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN law_N) (UseN lecturer_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA legal_A) (UseN authority_N)))))))
+
+are all fat legal authorities fat law lecturers
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN all_Det (AdjCN (PositA fat_A) (AdjCN (PositA legal_A) (UseN authority_N)))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA fat_A) (CompoundCN (UseN law_N) (UseN lecturer_N))))))))) 
+
+all legal authorities are law lecturers
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (AdjCN (PositA legal_A) (UseN authority_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (CompoundCN (UseN law_N) (UseN lecturer_N)))))))
+
+all law lecturers are legal authorities
+UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN all_Det (CompoundCN (UseN law_N) (UseN lecturer_N))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA legal_A) (UseN authority_N)))))))
+
+are all competent legal authorities competent law lecturers
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (DetCN all_Det (AdjCN (PositA competent_A) (AdjCN (PositA legal_A) (UseN authority_N)))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA competent_A) (CompoundCN (UseN law_N) (UseN lecturer_N))))))))) 
+
+John is a fatter politician than Bill
+
+is John fatter than Bill
+
+John is a cleverer politician than Bill
+
+is John cleverer than Bill
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (PredVP (UsePN john_PN) (UseComp (CompAP (ComparA clever_A (UsePN bill_PN)))))))
+
+kim is a clever person
+
+is kim clever
+
+kim is a clever politician
+
+is kim clever
+
+the pc-6082 is faster than the itel-xz
+
+the itel-xz is fast
+
+is the pc-6082 fast
+
+the pc-6082 is faster than the itel-xz
+
+is the pc-6082 fast
+
+the pc-6082 is faster than the itel-xz
+
+the pc-6082 is fast
+
+is the itel-xz fast
+
+the pc-6082 is faster than the itel-xz
+
+the pc-6082 is slow
+
+is the itel-xz fast
+
+the pc-6082 is as fast as the itel-xz
+
+the itel-xz is fast
+
+is the pc-6082 fast
+
+the pc-6082 is as fast as the itel-xz
+
+is the pc-6082 fast
+
+the pc-6082 is as fast as the itel-xz
+
+the pc-6082 is fast
+
+is the itel-xz fast
+
+the pc-6082 is as fast as the itel-xz
+
+the pc-6082 is slow
+
+is the itel-xz fast
+
+the pc-6082 is as fast as the itel-xz
+
+is the pc-6082 faster than the itel-xz
+
+the pc-6082 is as fast as the itel-xz
+
+is the pc-6082 slower than the itel-xz
+
+Itel won more orders than apcom did
+
+did Itel win some orders
+
+Itel won more orders than apcom did
+
+did apcom win some orders
+
+Itel won more orders than apcom did
+
+apcom won ten orders
+
+did Itel win at least eleven orders
+
+Itel won more orders than apcom
+
+did Itel win some orders
+
+Itel won more orders than apcom
+
+did apcom win some orders
+
+Itel won more orders than apcom
+
+apcom won ten orders
+
+did Itel win at least eleven orders
+
+Itel won more orders than the apcom contract
+
+did Itel win the apcom contract
+
+Itel won more orders than the apcom contract
+
+did Itel win more than one order
+
+Itel won twice as many orders than apcom
+
+apcom won ten orders
+
+did Itel win twenty orders
+
+Itel won more orders than apcom lost
+
+did Itel win some orders
+
+Itel won more orders than apcom lost
+
+did apcom lose some orders
+
+Itel won more orders than apcom lost
+
+apcom lost ten orders
+
+did Itel win at least eleven orders
+
+the pc-6082 is faster than 500 mips
+
+the Itel-zx is slower than 500 mips
+
+is the pc-6082 faster than the Itel-zx
+
+Itel sold 3000 more computers than apcom
+
+apcom sold exactly 2500 computers
+
+did Itel sell 5500 computers
+
+apcom has a more important customer than Itel
+
+does apcom have a more important customer than Itel is
+
+apcom has a more important customer than Itel
+
+does apcom has a more important customer than Itel has
+
+the pc-6082 is faster than every Itel computer
+
+the Itel-zx is an Itel computer
+
+is the pc-6082 faster than the Itel-zx
+
+the pc-6082 is faster than some Itel computer
+
+the Itel-zx is an Itel computer
+
+is the pc-6082 faster than the Itel-zx
+
+the pc-6082 is faster than any Itel computer
+
+the Itel-zx is an Itel computer
+
+is the pc-6082 faster than the Itel-zx
+
+the pc-6082 is faster than the Itel-zx and the Itel-zy
+
+is the pc-6082 faster than the Itel-zx
+
+the pc-6082 is faster than the Itel-zx or the Itel-zy
+
+is the pc-6082 faster than the Itel-zx
+
+Itel has a factory in birmingham
+
+does Itel currently have a factory in birmingham
+
+since 1992 Itel has been in birmingham
+
+it is now 1996
+
+was Itel in birmingham in 1993
+
+Itel has developed a new editor since 1992
+
+it is now 1996
+
+did Itel develop a new editor in 1993
+
+Itel has expanded since 1992
+
+it is now 1996
+
+did Itel expand in 1993
+
+since 1992 Itel has made a loss
+
+it is now 1996
+
+did Itel make a loss in 1993
+
+Itel has made a loss since 1992
+
+it is now 1996
+
+did Itel make a loss in 1993
+
+Itel has made a loss since 1992
+
+it is now 1996
+
+did Itel make a loss in 1993
+
+in march 1993 apcom founded Itel
+
+did Itel exist in 1992
+
+the conference started on july 4th, 1994
+
+it lasted 2 days
+
+was the conference over on july 8th, 1994
+
+yesterday apcom signed the contract
+
+today is saturday, july 14th
+
+did apcom sign the contract Friday , 13th
+
+Smith left before Jones left
+
+Jones left before anderson left
+
+did Smith leave before anderson left
+
+Smith left after Jones left
+
+Jones left after anderson left
+
+did Smith leave after anderson left
+
+Smith was present after Jones left
+
+Jones left after anderson was present
+
+was Smith present after anderson was present
+
+Smith left
+
+Jones left
+
+Smith left before Jones left
+
+did Jones leave after Smith left
+
+Smith left
+
+Jones left
+
+Smith left after Jones left
+
+did Jones leave before Smith left
+
+Smith left
+
+Jones left
+
+Jones left before Smith left
+
+did Smith leave after Jones left
+
+Jones revised the contract
+
+Smith revised the contract
+
+Jones revised the contract before Smith did
+
+did Smith revise the contract after Jones did
+
+Jones revised the contract
+
+Smith revised the contract
+
+Jones revised the contract after Smith did
+
+did Smith revise the contract before Jones did
+
+Smith swam
+
+Jones swam
+
+Smith swam before Jones swam
+
+did Jones swim after Smith swam
+
+Smith swam to the shore
+
+Jones swam to the shore
+
+Smith swam to the shore before Jones swam to the shore
+
+did Jones swim to the shore after Smith swam to the shore
+
+Smith was present
+
+Jones was present
+
+Smith was present after Jones was present
+
+was Jones present before Smith was present
+
+Smith was present
+
+Jones was present
+
+Smith was present before Jones was present
+
+was Jones present after Smith was present
+
+Smith was writing a report
+
+Jones was writing a report
+
+Smith was writing a report before Jones was writing a report
+
+was Jones writing a report after Smith was writing a report
+
+Smith was writing a report
+
+Jones was writing a report
+
+Smith was writing a report after Jones was writing a report
+
+was Jones writing a report before Smith was writing a report
+
+Smith left the meeting before he lost his temper
+
+did smith lose his temper
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a lose_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (UseN temper_N))))))
+
+Smith lived in birmingham in 1991
+
+did Smith live in birmingham in 1992
+
+Smith wrote his first novel in 1991
+
+did Smith write his first novel in 1992
+
+Smith wrote a novel in 1991
+
+did Smith write it in 1992
+
+Smith wrote a novel in 1991
+
+did Smith write a novel in 1992
+
+Smith was running a business in 1991
+
+was Smith running it in 1992
+
+Smith discovered a new species in 1991
+
+did Smith discover it in 1992
+
+Smith discovered a new species in 1991
+
+did Smith discover a new species in 1992
+
+Smith wrote a report in two hours
+
+Smith started writing the report at 8 am
+
+had Smith finished writing the report by 11 am
+
+Smith wrote a report in two hours
+
+did smith spend two hours writing the report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (AdjCN (PartVP (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N)))) (UseN hour_N)))))))
+
+Smith wrote a report in two hours
+
+did smith spend more than two hours writing the report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (AdNum (AdnCAdv more_CAdv) (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (AdjCN (PartVP (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant DefArt NumSg) (UseN report_N)))) (UseN hour_N)))))))
+
+Smith wrote a report in two hours
+
+did smith write a report in one hour
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N))) (PrepNP in_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))))) (UseN hour_N)))))))
+
+Smith wrote a report in two hours
+
+did smith write a report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N))))))
+
+Smith discovered a new species in two hours
+
+did smith spend two hours discovering the new species
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (AdjCN (PartVP (ComplSlash (SlashV2a discover_V2) (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA new_A) (UseN species_N))))) (UseN hour_N)))))))
+
+Smith discovered a new species in two hours
+
+did smith discover a new species
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a discover_V2) (DetCN (DetQuant IndefArt NumSg) (AdjCN (PositA new_A) (UseN species_N)))))))
+
+Smith discovered many new species in two hours
+
+did smith spend two hours discovering new species
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (AdjCN (PartVP (ComplSlash (SlashV2a discover_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA new_A) (UseN species_N))))) (UseN hour_N)))))))
+
+Smith was running his own business in two years
+
+did smith spend two years running his own business
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (AdjCN (PartVP (ComplSlash (SlashV2a run_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (AdjCN (PositA own_A) (UseN business_N))))) (UseN year_N)))))))
+
+Smith was running his own business in two years
+
+did smith spend more than two years running his own business
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a spend_V2) (DetCN (DetQuant IndefArt (NumCard (AdNum (AdnCAdv more_CAdv) (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (AdjCN (PartVP (ComplSlash (SlashV2a run_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (AdjCN (PositA own_A) (UseN business_N))))) (UseN year_N)))))))
+
+Smith was running his own business in two years
+
+did smith run his own business
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a run_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (AdjCN (PositA own_A) (UseN business_N)))))))
+
+in two years Smith owned a chain of businesses
+
+did smith own a chain of business for two years
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (AdvVP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN chain_N))) (PrepNP of_Prep (MassNP (UseN business_N)))) (PrepNP for_Prep (DetCN (DetQuant IndefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))))))) (UseN year_N)))))))
+
+in two years Smith owned a chain of businesses
+
+did smith own a chain of business for more than two years
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (AdvVP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN chain_N))) (PrepNP of_Prep (MassNP (UseN business_N)))) (PrepNP for_Prep (DetCN (DetQuant IndefArt (NumCard (AdNum (AdnCAdv more_CAdv) (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))))) (UseN year_N)))))))
+
+in two years Smith owned a chain of businesses
+
+did smith own a chain of business
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (ComplSlash (SlashV2a own_V2) (DetCN (DetQuant IndefArt NumSg) (UseN chain_N))) (PrepNP of_Prep (MassNP (UseN business_N)))))))
+
+Smith lived in birmingham for two years
+
+did Smith live in birmingham for a year
+
+Smith lived in birmingham for two years
+
+did Smith live in birmingham for exactly a year
+
+Smith lived in birmingham for two years
+
+did Smith live in birmingham
+
+Smith ran his own business for two years
+
+did smith run his own business for a year
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (ComplSlash (SlashV2a run_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (AdjCN (PositA own_A) (UseN business_N)))) (PrepNP for_Prep (DetCN (DetQuant IndefArt NumSg) (UseN year_N)))))))
+
+Smith ran his own business for two years
+
+did smith run his own business
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a run_V2) (DetCN (DetQuant (PossPron he_Pron) NumSg) (AdjCN (PositA own_A) (UseN business_N)))))))
+
+Smith wrote a report for two hours
+
+did smith write a report for an hour
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (AdvVP (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N))) (PrepNP for_Prep (DetCN (DetQuant IndefArt NumSg) (UseN hour_N)))))))
+
+Smith wrote a report for two hours
+
+did smith write a report
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a write_V2) (DetCN (DetQuant IndefArt NumSg) (UseN report_N))))))
+
+Smith discovered new species for two years
+
+did smith discover new species
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a discover_V2) (DetCN (DetQuant IndefArt NumPl) (AdjCN (PositA new_A) (UseN species_N)))))))
+
+in 1994 Itel sent a progress report every month
+
+did Itel send a progress report in july 1994
+
+Smith wrote to a representative every week
+
+is there a representative that smith wrote to every week
+UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestCl (ExistNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (RelCN (UseN representative_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (MassNP (UseN smith_N)) (SlashV2a write_V2)))))) (PrepNP to_Prep (DetCN every_Det (UseN week_N)))))))
+
+Smith had left the house at a quarter past five
+
+then she took a taxi to the station
+
+did smith leave the house before she took a taxi to the station
+
+Itel always delivers reports late
+
+in 1993 Itel delivered reports
+
+did Itel delivered reports late in 1993
+
+Itel never delivers reports late
+
+in 1993 Itel delivered reports
+
+did Itel delivered reports late in 1993
+
+Smith arrived in Paris on the 5th of May , 1995
+
+today is the 15th of May , 1995
+
+she is still in Paris
+
+was Smith in Paris on the 7th of may, 1995
+
+when Smith arrived in katmandu she had been travelling for three days
+
+had Smith been travelling the day before she arrived in katmandu
+
+Jones graduated in march and has been employed ever since
+
+Jones has been unemployed in the past
+
+was Jones unemployed at some time before he graduated
+
+every representative has read this report
+
+no two representatives have read it at the same time
+
+no representative took less than half a day to read the report
+
+there are sixteen representatives
+
+did it take the representatives more than a week to read the report
+
+while Jones was updating the program, Mary came in and told him about the board meeting
+
+she finished before he did
+
+did Mary's story last as long as Jones's updating the program
+
+before apcom bought its present office building, it had been paying mortgage interest on the previous one for 8 years
+
+since apcom bought its present office building it has been paying mortgage interest on it for more than 10 years
+
+has apcom been paying mortgage interest for a total of 15 years or more
+
+when Jones got his job at the cia, he knew that he would never be allowed to write his memoirs
+
+is it the case that Jones is not and will never be allowed to write his memoirs
+
+Smith has been to florence twice in the past
+
+Smith will go to florence twice in the coming year
+
+two years from now will Smith have been to florence at least four times
+
+last week i already knew that when, in a month's time, Smith would discover that she had been duped she would be furious
+
+will it be the case that in a few weeks Smith will discover that she has been duped; and will she be furious
+
+no one gambling seriously stops until he is broke
+
+no one can gamble when he is broke
+
+does everyone who starts gambling seriously stop the moment he is broke
+
+no one who starts gambling seriously stops until he is broke
+
+does everyone who starts gambling seriously continue until he is broke
+
+nobody who is asleep ever knows that he is asleep
+
+but some people know that they have been asleep after they have been asleep
+
+do some people discover that they have been asleep
+
+Itel built mtalk in 1993
+
+did Itel finish mtalk in 1993
+
+Itel was building mtalk in 1993
+
+did Itel finish mtalk in 1993
+
+Itel won the contract from apcom in 1993
+
+did Itel win a contract in 1993
+
+Itel was winning the contract from apcom in 1993
+
+did Itel win a contract in 1993
+
+Itel owned apcom from 1988 to 1992
+
+did Itel own apcom in 1990
+
+Smith and Jones left the meeting
+
+did smith leave the meeting
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (PredVP (MassNP (UseN smith_N)) (ComplSlash (SlashV2a leave_V2) (DetCN (DetQuant DefArt NumSg) (UseN meeting_N))))))
+
+Smith and Jones left the meeting
+
+did Jones leave the meeting
+
+Smith, Anderson and Jones met
+
+was there a group of people that met
+UttQS (UseQCl (TTAnt TPast ASimul) PPos (QuestCl (ExistNP (AdvNP (DetCN (DetQuant IndefArt NumSg) (UseN group_N)) (PrepNP of_Prep (MassNP (RelCN (UseN people_N) (UseRCl (TTAnt TPast ASimul) PPos (EmptyRelSlash (SlashVP (DetNP (DetQuant that_Quant NumSg)) (SlashV2a meet_V2))))))))))) 
+
+Smith knew that Itel had won the contract in 1992
+
+did Itel win the contract in 1992
+
+Smith believed that Itel had won the contract in 1992
+
+did Itel win the contract in 1992
+
+Itel managed to win the contract in 1992
+
+did Itel win the contract in 1992
+
+Itel tried to win the contract in 1992
+
+did Itel win the contract in 1992
+
+it is true that Itel won the contract in 1992
+
+did Itel win the contract in 1992
+
+it is false that Itel won the contract in 1992
+
+did Itel win the contract in 1992
+
+Smith saw Jones sign the contract
+
+if Jones signed the contract, his heart was beating
+
+did Smith see Jones' heart beat
+
+Smith saw Jones sign the contract
+
+when Jones signed the contract, his heart was beating
+
+did Smith see Jones' heart beat
+
+Smith saw Jones sign the contract
+
+did Jones sign the contract
+
+Smith saw Jones sign the contract
+
+Jones is the chairman of Itel
+
+did Smith see the chairman of Itel sign the contract
+
+Helen saw the chairman of the department answer the phone
+
+the chairman of the department is a person
+UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumSg) (UseN chairman_N)) (PrepNP of_Prep (DetCN (DetQuant DefArt NumSg) (UseN department_N)))) (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN person_N))))) 
+
+is there anyone whom Helen saw answer the phone
+
+Smith saw Jones sign the contract and his secretary make a copy
+
+did Smith see Jones sign the contract
+
+Smith saw Jones sign the contract or cross out the crucial clause
+
+did Smith either see Jones sign the contract or see Jones cross out the crucial clause
+
diff --git a/lib/src/finnish/AdverbFin.gf b/lib/src/finnish/AdverbFin.gf
--- a/lib/src/finnish/AdverbFin.gf
+++ b/lib/src/finnish/AdverbFin.gf
@@ -13,6 +13,8 @@
 
     AdAdv = cc2 ;
 
+    PositAdAAdj a = {s = a.s ! Posit ! AN (NCase Sg Gen)} ; -- älyttömän
+
     SubjS = cc2 ;
 ----b    AdvSC s = s ;
 
diff --git a/lib/src/finnish/ExtraFin.gf b/lib/src/finnish/ExtraFin.gf
--- a/lib/src/finnish/ExtraFin.gf
+++ b/lib/src/finnish/ExtraFin.gf
@@ -95,4 +95,12 @@
       a = p.a
       } ;
 
+    ProDropPoss p = {
+      s1 = \\_,_ => [] ;
+      sp = \\_,_ => p.s ! NPCase Gen ;
+      s2 = BIND ++ possSuffix p.a ;
+      isNum = False ;
+      isPoss = True ;
+      isDef = True  --- "minun kolme autoani ovat" ; thus "...on" is missing
+      } ;
 } 
diff --git a/lib/src/finnish/ExtraFinAbs.gf b/lib/src/finnish/ExtraFinAbs.gf
--- a/lib/src/finnish/ExtraFinAbs.gf
+++ b/lib/src/finnish/ExtraFinAbs.gf
@@ -13,8 +13,10 @@
 
     PartCN : CN -> NP ;                   -- olutta
 
-    vai_Conj : Conj ;                     -- minÃ¤ vai sinÃ¤? ("or" in question)
+    vai_Conj : Conj ;                     -- minä vai sinä? ("or" in question)
 
     CompPartAP : AP -> Comp ;             -- kahvi on valmista
+
+    ProDropPoss : Pron -> Quant ;         -- vaimoni
 
 }
diff --git a/lib/src/finnish/LexiconFin.gf b/lib/src/finnish/LexiconFin.gf
--- a/lib/src/finnish/LexiconFin.gf
+++ b/lib/src/finnish/LexiconFin.gf
@@ -105,6 +105,7 @@
   iron_N = mkN "rauta" ;
   king_N = mkN "kuningas" ;
   know_VS = mkVS (mkV "tietää" "tiesi") ;
+  know_VQ = mkVQ (mkV "tietää" "tiesi") ;
   know_V2 = mkV2 (mkV "tuntea" "tunsi") ;
   lake_N = mkN "järvi" "järviä" ;
   lamp_N = mkN "lamppu" ;
@@ -247,7 +248,7 @@
   dull_A = mkA (mkN "tylsä") "tylsempi" "tylsin" ;
   full_A = mkA (mk3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ;
   heavy_A = mkA "raskas" ;
-  near_A = mkA (mkN "läheinen") ;
+  near_A = mkA (mkN "läheinen") "läheisempi" "lähin" ;
   rotten_A = mkA "mätä" ;
   round_A = mkA "pyöreä" ;
   sharp_A = mkA "terävä" ;
diff --git a/lib/src/finnish/NounFin.gf b/lib/src/finnish/NounFin.gf
--- a/lib/src/finnish/NounFin.gf
+++ b/lib/src/finnish/NounFin.gf
@@ -82,8 +82,8 @@
       } ;
 
     DetQuantOrd quant num ord = {
-      s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase Pl c ; 
-      sp = \\c => quant.sp ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase Pl c ; 
+      s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase num.n c ; 
+      sp = \\c => quant.sp ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase num.n c ; 
       s2 = quant.s2 ;
       n = num.n ;
       isNum = num.isNum ;
diff --git a/lib/src/finnish/NumeralFin.gf b/lib/src/finnish/NumeralFin.gf
--- a/lib/src/finnish/NumeralFin.gf
+++ b/lib/src/finnish/NumeralFin.gf
@@ -1,4 +1,4 @@
-concrete NumeralFin of Numeral = CatFin **  open Prelude, ParadigmsFin, MorphoFin in {
+concrete NumeralFin of Numeral = CatFin [Numeral,Digits] **  open Prelude, ParadigmsFin, MorphoFin in {
 
 -- Notice: possessive forms are not used. They get wrong, since every
 -- part is made to agree in them.
@@ -61,16 +61,17 @@
     s = \\_,c => d.s ! c ++ BIND ++ kymmentaN.s ! c ++ BIND ++ e.s ! NumIndep ! c
     } ;
   pot1as2 n = n ;
-  pot2 d = {n = Pl ; s = \\_,c => d.s ! NumAttr ! c ++ BIND ++ sataaN.s ! d.n ! c} ; ----
+  pot2 d = {n = Pl ; s = \\_,c => d.s ! NumAttr ! c ++ nBIND d.n ++ sataaN.s ! d.n ! c} ; ----
   pot2plus d e = {
     n = Pl ; 
-    s = \\_,c => d.s ! NumAttr ! c ++ BIND ++ sataaN.s ! d.n ! c ++ e.s ! NumIndep ! c
+    s = \\_,c => d.s ! NumAttr ! c ++ nBIND d.n ++ sataaN.s ! d.n ! c ++ 
+                 BIND ++ e.s ! NumIndep ! c
     } ;
   pot2as3 n = {n = n.n  ; s = n.s ! NumIndep} ;
-  pot3 d = {n = Pl ; s = \\c => d.s ! NumAttr ! c ++ tuhattaN.s ! d.n ! c} ; ----
+  pot3 d = {n = Pl ; s = \\c => d.s ! NumAttr ! c ++ nBIND d.n ++ tuhattaN.s ! d.n ! c} ; ----
   pot3plus d e = {
     n = Pl ;
-    s = \\c => d.s ! NumAttr ! c ++ tuhattaN.s ! d.n ! c ++ e.s ! NumIndep ! c
+    s = \\c => d.s ! NumAttr ! c ++ nBIND d.n ++ tuhattaN.s ! d.n ! c ++ e.s ! NumIndep ! c
     } ;
 
 oper
@@ -81,6 +82,8 @@
       }
     } ;
 
+  nBIND : Number -> Str = \n -> case n of {Sg => [] ; _ => BIND} ; -- no BIND after silent 1
+
 -- Too much trouble to infer vowel, cf. "kuudes" vs. "viides".
 
   ordN : Str -> Str -> {s : NForm => Str} = \a,sadas -> 
@@ -88,9 +91,9 @@
       sada = init sadas
     in
     mkN 
-      sadas (sada + "nnen") (sada + "nten" + a) (sada + "tt" + a) (sada + "nteen")
-      (sada + "nsin" + a) (sada + "nsiss" + a) (sada + "nsien")
-      (sada + "nsi" + a) (sada + "nsiin") ;
+      sadas (sada + "nnen") (sada + "tt" + a) (sada + "nten" + a) (sada + "nteen")
+      (sada + "nsien") (sada + "nsi" + a) (sada + "nsin" + a)
+      (sada + "nsiss" + a) (sada + "nsiin") ;
 
 param 
   NumPlace = NumIndep | NumAttr  ;
diff --git a/lib/src/finnish/ParadigmsFin.gf b/lib/src/finnish/ParadigmsFin.gf
--- a/lib/src/finnish/ParadigmsFin.gf
+++ b/lib/src/finnish/ParadigmsFin.gf
@@ -44,28 +44,30 @@
   plural   : Number ;
 
   Case        : Type ;
-  nominative  : Case ; 
-  genitive    : Case ; 
-  partitive   : Case ; 
-  essive      : Case ; 
-  translative : Case ; 
-  inessive    : Case ; 
-  elative     : Case ; 
-  illative    : Case ; 
-  adessive    : Case ; 
-  ablative    : Case ; 
-  allative    : Case ;
+  nominative  : Case ; -- e.g. "talo"
+  genitive    : Case ; -- e.g. "talon"
+  partitive   : Case ;  -- e.g. "taloa"
+  essive      : Case ;  -- e.g. "talona"
+  translative : Case ;  -- e.g. "taloksi"
+  inessive    : Case ;  -- e.g. "talossa"
+  elative     : Case ;  -- e.g. "talosta"
+  illative    : Case ;  -- e.g. "taloon"
+  adessive    : Case ;  -- e.g. "talolla"
+  ablative    : Case ;  -- e.g. "talolta"
+  allative    : Case ; -- e.g. "talolle"
 
-  infFirst, infElat, infIllat : InfForm ;
+  infFirst : InfForm ; -- e.g. "tehdä"
+  infElat : InfForm ;  -- e.g. "tekemästä"
+  infIllat : InfForm ; -- e.g. "tekemään"
 
 -- The following type is used for defining *rection*, i.e. complements
 -- of many-place verbs and adjective. A complement can be defined by
 -- just a case, or a pre/postposition and a case.
 
-  prePrep     : Case -> Str -> Prep ;  -- ilman, partitive
-  postPrep    : Case -> Str -> Prep ;  -- takana, genitive
-  postGenPrep :         Str -> Prep ;  -- takana
-  casePrep    : Case ->        Prep ;  -- adessive
+  prePrep     : Case -> Str -> Prep ;  -- preposition, e.g. partitive "ilman"
+  postPrep    : Case -> Str -> Prep ;  -- postposition, e.g. genitive "takana"
+  postGenPrep :         Str -> Prep ;  -- genitive postposition, e.g. "takana"
+  casePrep    : Case ->        Prep ;  -- just case, e.g. adessive
 
 --2 Nouns
 
@@ -88,31 +90,31 @@
 -- "auto - audon".
 
   mkN : overload {
-    mkN : (talo : Str) -> N ;
-    mkN : (savi,savia : Str) -> N ;
-    mkN : (vesi,veden,vesiä : Str) -> N ;
-    mkN : (vesi,veden,vesiä,vettä : Str) -> N ;
-    mkN : (olo,olon,olona,oloa,oloon,olojen,oloja,oloina,oloissa,oloihin : Str) -> N ;
-    mkN : (pika : Str) -> (juna  : N) -> N ;
-    mkN : (oma : N)    -> (tunto : N) -> N ; 
+    mkN : (kukko : Str) -> N ;  -- predictable nouns, covers 82%
+    mkN : (savi,savia : Str) -> N ; -- different pl.part
+    mkN : (vesi,veden,vesiä : Str) -> N ; -- also different sg.gen
+    mkN : (vesi,veden,vesiä,vettä : Str) -> N ; -- also different sg.part
+    mkN : (olo,n,a,na,oon,jen,ja,ina,issa,ihin : Str) -> N ; -- worst case, 10 forms
+    mkN : (pika : Str) -> (juna  : N) -> N ; -- compound with invariable prefix
+    mkN : (oma : N)    -> (tunto : N) -> N ; -- compound with inflecting prefix
   } ;
 
 -- Nouns used as functions need a case, of which the default is
 -- the genitive.
 
   mkN2 : overload {
-    mkN2 : N -> N2 ;
-    mkN2 : N -> Prep -> N2
+    mkN2 : N -> N2 ;        -- relational noun with genitive
+    mkN2 : N -> Prep -> N2  -- relational noun another prep.
     } ;
 
-  mkN3  : N -> Prep -> Prep -> N3 ;
+  mkN3  : N -> Prep -> Prep -> N3 ; -- relation with two complements
 
 -- Proper names can be formed by using declensions for nouns.
 -- The plural forms are filtered away by the compiler.
 
   mkPN : overload {
-    mkPN : Str -> PN ;
-    mkPN : N -> PN
+    mkPN : Str -> PN ;  -- predictable noun made into name
+    mkPN : N -> PN      -- any noun made into name
     } ;
 
 --2 Adjectives
@@ -125,15 +127,16 @@
 -- enough (except for the superlative "paras" of "hyvä").
 
   mkA : overload {
-    mkA : Str -> A ;
-    mkA : N -> A ;
-    mkA : N -> (kivempaa,kivinta : Str) -> A ;
-    mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ;
+    mkA : Str -> A ;  -- regular noun made into adjective
+    mkA : N -> A ;    -- any noun made into adjective
+    mkA : N -> (kivempi,kivin : Str) -> A ; -- deviating comparison forms
+    mkA : (hyva,prmpi,pras : N) -> (hyvin,pmmin,prhten : Str) -> A ; -- worst case adj
   } ;
 
 -- Two-place adjectives need a case for the second argument.
 
-  mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p ; lock_A2 = <>};
+  mkA2 : A -> Prep -> A2  -- e.g. "jaollinen" casePrep adessive
+    = \a,p -> a ** {c2 = p ; lock_A2 = <>};
 
 
 
@@ -145,22 +148,20 @@
 -- The worst case needs twelve forms, as shown in the following.
 
   mkV : overload {
-    mkV : (huutaa : Str) -> V ;
-    mkV : (huutaa,huusi : Str) -> V ;
-    mkV : (huutaa,huudan,huusi : Str) -> V ;
-    mkV : (
-      huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
-      huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V ;
+    mkV : (huutaa : Str) -> V ;     -- predictable verbs, covers 90%
+    mkV : (huutaa,huusi : Str) -> V ; -- deviating past 3sg
+    mkV : (huutaa,huudan,huusi : Str) -> V ; -- also deviating pres. 1sg
+    mkV : (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V ; -- worst-case verb
   } ;
 
 -- All the patterns above have $nominative$ as subject case.
 -- If another case is wanted, use the following.
 
-  caseV : Case -> V -> V ;
+  caseV : Case -> V -> V ;  -- deviating subj. case, e.g. genitive "täytyä"
 
 -- The verbs "be" is special.
 
-  vOlla : V ;
+  vOlla : V ; -- the verb "be"
 
 
 --3 Two-place verbs
@@ -171,10 +172,10 @@
 -- accusative object.
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;
-    mkV2 : V -> Case -> V2 ;
-    mkV2 : V -> Prep -> V2 ;
+    mkV2 : Str -> V2 ;  -- predictable direct transitive
+    mkV2 : V -> V2 ;    -- direct transitive
+    mkV2 : V -> Case -> V2 ; -- complement just case
+    mkV2 : V -> Prep -> V2 ; -- complement pre/postposition
     } ;
 
 
@@ -183,7 +184,7 @@
 -- Three-place (ditransitive) verbs need two prepositions, of which
 -- the first one or both can be absent.
 
-  mkV3     : V -> Prep -> Prep -> V3 ;  -- puhua, allative, elative
+  mkV3     : V -> Prep -> Prep -> V3 ;  -- e.g. puhua, allative, elative
   dirV3    : V -> Case -> V3 ;          -- siirtää, (accusative), illative
   dirdirV3 : V         -> V3 ;          -- antaa, (accusative), (allative)
 
@@ -193,30 +194,30 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
-  mkV2S : V -> Prep -> V2S ;
-  mkVV  : V -> VV ;
-  mkVVf : V -> InfForm -> VV ;
-  mkV2V : V -> Prep -> V2V ;
-  mkV2Vf : V -> Prep -> InfForm -> V2V ;
-  mkVA  : V -> Prep -> VA ;
-  mkV2A : V -> Prep -> Prep -> V2A ;
-  mkVQ  : V -> VQ ;
-  mkV2Q : V -> Prep -> V2Q ;
+  mkV2S : V -> Prep -> V2S ; -- e.g. "sanoa" allative
+  mkVV  : V -> VV ;  -- e.g. "alkaa"
+  mkVVf : V -> InfForm -> VV ; -- e.g. "ruveta" infIllat
+  mkV2V : V -> Prep -> V2V ;  -- e.g. "käskeä" genitive
+  mkV2Vf : V -> Prep -> InfForm -> V2V ; -- e.g. "kieltää" partitive infElat  
+  mkVA  : V -> Prep -> VA ; -- e.g. "maistua" ablative
+  mkV2A : V -> Prep -> Prep -> V2A ; -- e.g. "maalata" accusative translative
+  mkVQ  : V -> VQ ; 
+  mkV2Q : V -> Prep -> V2Q ; -- e.g. "kysyä" ablative 
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given
 -- as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 --.
 -- The definitions should not bother the user of the API. So they are
diff --git a/lib/src/finnish/QuestionFin.gf b/lib/src/finnish/QuestionFin.gf
--- a/lib/src/finnish/QuestionFin.gf
+++ b/lib/src/finnish/QuestionFin.gf
@@ -90,6 +90,8 @@
       isNum = isn
       } ;
 
+    AdvIAdv i a = {s = i.s ++ a.s} ;
+
     CompIAdv a = {s = \\_ => a.s} ;
     CompIP ip = {s = \\_ => ip.s ! NPCase Nom} ;
 
diff --git a/lib/src/finnish/ResFin.gf b/lib/src/finnish/ResFin.gf
--- a/lib/src/finnish/ResFin.gf
+++ b/lib/src/finnish/ResFin.gf
@@ -142,12 +142,27 @@
 
   appCompl : Bool -> Polarity -> Compl -> NP -> Str = \isFin,b,co,np ->
     let
+      c = case co.c of {
+        NPAcc => case b of {
+          Neg => NPCase Part ; -- en näe taloa/sinua
+          Pos => case isFin of {
+               True => NPAcc ; -- näen/täytyy nähdä sinut
+               _ => case np.isPron of {
+                  False => NPCase Nom ;  -- täytyy nähdä talo
+                  _ => NPAcc
+                  }
+               }
+          } ;
+        _        => co.c
+        } ;
+{-
       c = case <isFin, b, co.c, np.isPron> of {
         <_,    Neg, NPAcc,_>      => NPCase Part ; -- en näe taloa/sinua
         <_,    Pos, NPAcc,True>   => NPAcc ;       -- näen/täytyy sinut
         <False,Pos, NPAcc,False>  => NPCase Nom ;  -- täytyy nähdä talo
         <_,_,coc,_>               => coc
         } ;
+-}
       nps = np.s ! c
     in
     preOrPost co.isPre co.s nps ;
@@ -239,6 +254,14 @@
     } ;
 
   insertObj : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> {
+    s = vp.s ;
+    s2 = \\fin,b,a => vp.s2 ! fin ! b ! a  ++ obj ! fin ! b ! a ;
+    ext = vp.ext ;
+    sc = vp.sc ; 
+    qp = vp.qp
+    } ;
+
+  insertObjPre : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> {
     s = vp.s ;
     s2 = \\fin,b,a => obj ! fin ! b ! a ++ vp.s2 ! fin ! b ! a ;
     ext = vp.ext ;
diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf
--- a/lib/src/finnish/VerbFin.gf
+++ b/lib/src/finnish/VerbFin.gf
@@ -50,7 +50,7 @@
           ap.s ! False ! (NCase Sg (npform2case Sg v.c3.c))) ----agr to obj
         (predV v) ** {c2 = v.c2} ;
 
-    ComplSlash vp np = insertObj (\\fin,b,_ => appCompl fin b vp.c2 np) vp ;
+    ComplSlash vp np = insertObjPre (\\fin,b,_ => appCompl fin b vp.c2 np) vp ;
 
     UseComp comp = 
       insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom ; qp = "ko"})) ;
@@ -68,15 +68,16 @@
          ) ** {c2 = vp.c2} ; ---- correct ??
 
     SlashV2VNP v np vp = 
-      insertObj 
-        (\\fin,b,a => appCompl fin b v.c2 np ++ infVP v.sc b a vp v.vi) 
+      insertObjPre 
+        (\\fin,b,a => appCompl True b v.c2 np ++ ---- fin -> stack overflow
+                      infVP v.sc b a vp v.vi) 
           (predV v) ** {c2 = vp.c2} ;
 
     AdvVP vp adv = insertObj (\\_,_,_ => adv.s) vp ;
 
     AdVVP adv vp = insertObj (\\_,_,_ => adv.s) vp ;
 
-    ReflVP v = insertObj (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
+    ReflVP v = insertObjPre (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
 
     PassV2 v = let vp = predV v in {
       s = \\_ => vp.s ! VIPass ;
@@ -97,6 +98,16 @@
               Pl => Part   -- me olemme isoja ; te olette isoja
               }            --- definiteness of NP ?
           in ap.s ! False ! (NCase n c)
+      } ;
+    CompCN cn = {
+      s = \\agr => 
+          let
+            n = complNumAgr agr ;
+            c = case n of {
+              Sg => Nom ;  -- minä olen iso ; te olette iso
+              Pl => Part   -- me olemme isoja ; te olette isoja
+              }            --- definiteness of NP ?
+          in cn.s ! (NCase n c)
       } ;
     CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
     CompAdv a = {s = \\_ => a.s} ;
diff --git a/lib/src/french/DiffFre.gf b/lib/src/french/DiffFre.gf
--- a/lib/src/french/DiffFre.gf
+++ b/lib/src/french/DiffFre.gf
@@ -123,7 +123,7 @@
         let 
           agr   = Ag g n p ;
           num   = if_then_else Number b Pl n ;
-          verb  = vp.s.s ! vImper n p ;
+          verb  = vp.s.s ! vImper num p ;
           neg   = vp.neg ! pol ;
           clpr  =  <vp.clit1 ++ vp.clit2, False> ;  ---- TODO: True if clit
           compl = vp.comp ! agr ++ vp.ext ! pol
diff --git a/lib/src/french/LexiconFre.gf b/lib/src/french/LexiconFre.gf
--- a/lib/src/french/LexiconFre.gf
+++ b/lib/src/french/LexiconFre.gf
@@ -103,6 +103,7 @@
   iron_N = regGenN "fer" masculine ;
   king_N = regGenN "roi" masculine ;
   know_V2 = connaître_V2 ; 
+  know_VQ = mkVQ (lin V savoir_V2) ;
   know_VS = mkVS (lin V savoir_V2) ;
   lake_N = regGenN "lac" masculine ;
   lamp_N = regGenN "lampe" feminine ;
diff --git a/lib/src/french/NumeralFre.gf b/lib/src/french/NumeralFre.gf
--- a/lib/src/french/NumeralFre.gf
+++ b/lib/src/french/NumeralFre.gf
@@ -1,4 +1,4 @@
-concrete NumeralFre of Numeral = CatFre ** 
+concrete NumeralFre of Numeral = CatFre [Numeral,Digits] ** 
   open CommonRomance, ResRomance, MorphoFre, Prelude in {
 
 -- originally written in 1998, automatically translated to current notation...
diff --git a/lib/src/french/ParadigmsFre.gf b/lib/src/french/ParadigmsFre.gf
--- a/lib/src/french/ParadigmsFre.gf
+++ b/lib/src/french/ParadigmsFre.gf
@@ -45,21 +45,21 @@
 
 -- To abstract over number names, we define the following.
 
-  Number : Type ; 
+  Number : Type ;  --%
 
-  singular : Number ;
-  plural   : Number ;
+  singular : Number ; --%
+  plural   : Number ; --%
 
 -- Prepositions used in many-argument functions are either strings
 -- (including the 'accusative' empty string) or strings that
 -- amalgamate with the following word (the 'genitive' "de" and the
 -- 'dative' "à").
 
-  accusative : Prep ;
-  genitive   : Prep ;
-  dative     : Prep ;
+  accusative : Prep ; -- direct object case
+  genitive   : Prep ; -- genitive, constructed with "de"
+  dative     : Prep ; -- dative, usually constructed with "à"
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ; -- preposition (other than "de" and "à")
 
 
 --2 Nouns
@@ -74,15 +74,15 @@
 -- The gender heuristic is less reliable: it treats as feminine all
 -- nouns ending with "e" and "ion", all others as masculine.
 
-    mkN : (cheval : Str) -> N ;
+    mkN : (cheval : Str) -> N ;  -- predictable, with variations like cheval-chevaux
 
 -- Adding gender information widens the scope of the regular pattern.
 
-    mkN : (foie : Str) -> Gender -> N ; 
+    mkN : (foie : Str) -> Gender -> N ; --%
 
 -- In the worst case, both singular and plural forms and the gender are needed. 
 
-    mkN : (oeil,yeux : Str) -> Gender -> N ;
+    mkN : (oeil,yeux : Str) -> Gender -> N ; -- worst-case noun
 
 --3 Compound nouns 
 --
@@ -91,7 +91,7 @@
 -- They could be formed in syntax, but we give a shortcut here since
 -- they are frequent in lexica.
 
-    mkN : N -> Str -> N
+    mkN : N -> Str -> N -- compound noun, e.g. numéro + de téléphone
   } ; 
 
 
@@ -101,17 +101,17 @@
 -- 
 -- Relational nouns ("fille de x") need a case and a preposition. 
 
-  mkN2 : N -> Prep -> N2 ;
+  mkN2 : N -> Prep -> N2 ; -- e.g. fille + genitive
 
 -- The most common cases are the genitive "de" and the dative "à", 
 -- with the empty preposition.
 
-  deN2 : N -> N2 ;
-  aN2  : N -> N2 ;
+  deN2 : N -> N2 ; --%
+  aN2  : N -> N2 ; --%
 
 -- Three-place relational nouns ("la connection de x à y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. connection + genitive + dative
 
 
 --3 Relational common noun phrases
@@ -128,8 +128,8 @@
 -- feminine is used for strings ending with "e", the masculine for other strings.
 
   mkPN  : overload {
-    mkPN : Str -> PN ;
-    mkPN : Str -> Gender -> PN
+    mkPN : Str -> PN ; -- feminine if ends with "e", otherwise masculine
+    mkPN : Str -> Gender -> PN -- gender deviant from the simple rule
     } ;
 
 
@@ -144,21 +144,21 @@
 -- "heureux-heureuse-heureux", "italien-italienne", "jeune-jeune",
 -- "amer-amère", "carré- - -carrément", "joli- - -joliment".
 
-    mkA : (cher : Str) -> A ;
+    mkA : (cher : Str) -> A ; -- predictable, e.g. cher-chère
 
 -- Often just the feminine singular is deviant.
 
-    mkA : (sec,seche : Str) -> A ;
+    mkA : (sec,seche : Str) -> A ; -- unpredictable feminine
 
 -- This is the worst-case paradigm for the positive forms.
 
-    mkA : (banal,banale,banaux,banalement : Str) -> A ;
+    mkA : (banal,banale,banaux,banalement : Str) -> A ; -- worst-case adjective
 
 -- If comparison forms are irregular (i.e. not formed by "plus", e.g.
 -- "bon-meilleur"), the positive and comparative can be given as separate
 -- adjectives.
 
-    mkA : A -> A -> A
+    mkA : A -> A -> A -- irregular comparison, e.g. bon-meilleur
   } ;
 
 -- The functions create by default postfix adjectives. To switch
@@ -166,14 +166,14 @@
 -- modification, as in "petite maison"), the following function is
 -- provided.
 
-  prefixA : A -> A ;
+  prefixA : A -> A ; -- adjective that comes before noun, e.g. petit
 
 
 --3 Two-place adjectives
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. supérieur + dative
 
 
 --2 Adverbs
@@ -181,15 +181,15 @@
 -- Adverbs are not inflected. Most lexical ones have position
 -- after the verb. 
 
-  mkAdv : Str -> Adv ;
+  mkAdv : Str -> Adv ; -- ordinary adverb
 
 -- Some appear next to the verb (e.g. "toujours").
 
-  mkAdV : Str -> AdV ;
+  mkAdV : Str -> AdV ; -- sentential adverb, e.g. toujours
 
 -- Adverbs modifying adjectives and sentences can also be formed.
 
-  mkAdA : Str -> AdA ;
+  mkAdA : Str -> AdA ; -- modify adjective, e.g. très
 
 
 --2 Verbs
@@ -210,23 +210,23 @@
 -- (("il") "jette", "jettera") as second argument.
 
   mkV : overload {
-    mkV : (finir : Str) -> V ;
-    mkV : (jeter,jette,jettera : Str) -> V ;
+    mkV : (finir : Str) -> V ; -- regular 1/2/3 conjugation
+    mkV : (jeter,jette,jettera : Str) -> V ; -- 1st conjugation variations
 
 -- The $IrregFre$ list gives some verbs as two-place. These verbs can be
 -- reused as one-place verbs.
 
-    mkV : V2 -> V
+    mkV : V2 -> V ; -- make 2-place to 1-place (e.g. from IrregFre)
   } ;
 
 -- The function $mkV$ gives the default compound auxiliary "avoir".
 -- To change it to "être", use the following function. 
 
-  etreV : V -> V ;
+  etreV : V -> V ; -- force auxiliary to be être (default avoir)
 
 -- This function turns a verb into reflexive, which implies the auxiliary "être".
 
-  reflV : V -> V ;
+  reflV : V -> V ; -- reflexive, implies auxiliary être, e.g. se demander
 
 
 --3 Two-place verbs
@@ -235,9 +235,12 @@
 -- (transitive verbs). 
 
   mkV2 = overload {
-    mkV2 : Str -> V2 = \s -> dirV2 (regV s) ;
-    mkV2 : V -> V2 = dirV2 ;  
-    mkV2 : V -> Prep -> V2 = mmkV2
+    mkV2 : Str -> V2  --%
+    = \s -> dirV2 (regV s) ;
+    mkV2 : V -> V2  -- direct transitive
+    = dirV2 ;  
+    mkV2 : V -> Prep -> V2 -- e.g. se fier + genitive
+    = mmkV2
   } ;
 
 
@@ -247,9 +250,9 @@
 -- the first one or both can be absent.
 
   mkV3 : overload {
-    mkV3 : V -> V3 ;                -- donner,_,_
-    mkV3 : V -> Prep -> V3 ;        -- placer,_,dans
-    mkV3 : V -> Prep -> Prep -> V3  -- parler, à, de
+    mkV3 : V -> V3 ;                -- donner (+ accusative + dative)    
+    mkV3 : V -> Prep -> V3 ;        -- placer (+ accusative) + dans
+    mkV3 : V -> Prep -> Prep -> V3  -- parler + dative + genitive
     } ;
 
 --3 Other complement patterns
@@ -257,7 +260,7 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ;  --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;  -- plain infinitive: "je veux parler"
@@ -269,17 +272,17 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> Prep -> AV ;
-  mkA2V : A -> Prep -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> Prep -> AV ; --%
+  mkA2V : A -> Prep -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$,
 -- and the second argument is given as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 --.
 --2 Definitions of the paradigms
diff --git a/lib/src/french/StructuralFre.gf b/lib/src/french/StructuralFre.gf
--- a/lib/src/french/StructuralFre.gf
+++ b/lib/src/french/StructuralFre.gf
@@ -103,7 +103,7 @@
       } ;
     sp = table {
       Sg => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g ;
-      Pl => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g
+      Pl => \\g,c => prepCase c ++ genForms "ceux-là" "celles-là" ! g
       } ;
     s2 = [] ---- "-là"
     } ;
@@ -126,7 +126,7 @@
       } ;
     sp = table {
       Sg => \\g,c => prepCase c ++ genForms "celui-ci" "celle-ci" ! g ;
-      Pl => \\g,c => prepCase c ++ genForms "celui-ci" "celle-ci" ! g
+      Pl => \\g,c => prepCase c ++ genForms "ceux-ci" "celles-ci" ! g
       } ;
     s2 = [] ---- "-ci"
     } ;
@@ -143,14 +143,14 @@
     mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
     Masc Pl P1 ;
   whatSg_IP = 
-    {s = \\c => prepCase c ++ "quoi" ; a = a}
+    {s = \\c => prepCase c ++ elisQue ; a = a}
     where {a = aagr Masc Sg} ;
   whatPl_IP = 
-    {s = \\c => prepCase c ++ "quoi" ; a = a}
+    {s = \\c => prepCase c ++ elisQue ; a = a}
     where {a = aagr Masc Pl} ;
   when_IAdv = ss "quand" ;
   when_Subj = ss "quand" ** {m = Indic} ;
-  where_IAdv = ss "où" ;
+  where_IAdv = ss "oÃ¹" ;
   which_IQuant = {
     s = \\n,g,c => 
         prepCase c ++ aagrForms "quel" "quelle" "quels" "quelles" ! aagr g n
diff --git a/lib/src/german/AdjectiveGer.gf b/lib/src/german/AdjectiveGer.gf
--- a/lib/src/german/AdjectiveGer.gf
+++ b/lib/src/german/AdjectiveGer.gf
@@ -9,11 +9,11 @@
       isPre = True
       } ;
     ComparA a np = {
-      s = \\af => a.s ! Compar ! af ++ conjThan ++ np.s ! Nom ;
+      s = \\af => a.s ! Compar ! af ++ conjThan ++ np.s ! NPC Nom ;
       isPre = True
       } ;
     CAdvAP ad ap np = {
-      s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! Nom ;
+      s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! NPC Nom ;
       isPre = False
       } ;
     UseComparA a = {
@@ -33,7 +33,8 @@
       } ;
 
     ReflA2 a = {
-      s = \\af => a.s ! Posit ! APred ++ appPrep a.c2 (reflPron ! agrP3 Sg) ; --- agr 
+      s = \\af => a.s ! Posit ! APred ++ 
+                  appPrep a.c2 (\\k => usePrepC k (\c -> reflPron ! agrP3 Sg ! c)) ; --- agr 
       isPre = True
       } ;
 
diff --git a/lib/src/german/AdverbGer.gf b/lib/src/german/AdverbGer.gf
--- a/lib/src/german/AdverbGer.gf
+++ b/lib/src/german/AdverbGer.gf
@@ -4,7 +4,7 @@
     PositAdvAdj a = {s = a.s ! Posit ! APred} ;
 
     ComparAdvAdj cadv a np = {
-      s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! Nom
+      s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! NPC Nom
       } ;
     ComparAdvAdjS cadv a s = {
       s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ s.s ! Sub
@@ -13,6 +13,8 @@
     PrepNP prep np = {s = appPrep prep np.s} ;
 
     AdAdv = cc2 ;
+
+    PositAdAAdj a = {s = a.s ! Posit ! APred} ;
 
     SubjS subj s = {s = subj.s ++ s.s ! Sub} ;
 
diff --git a/lib/src/german/CatGer.gf b/lib/src/german/CatGer.gf
--- a/lib/src/german/CatGer.gf
+++ b/lib/src/german/CatGer.gf
@@ -48,16 +48,16 @@
 -- Noun
 
     CN = {s : Adjf => Number => Case => Str ; g : Gender} ;
-    NP = {s : Case => Str ; a : Agr} ;
+    NP = {s : PCase => Str ; a : Agr ; isPron : Bool} ;
     Pron = {s : NPForm => Str ; a : Agr} ;
-    Det = {s,sp : Gender => Case => Str ; n : Number ; a : Adjf} ;
+    Det = {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf} ;
     Quant = {
-      s  : Bool => Number => Gender => Case => Str ; 
-      sp : Number => Gender => Case => Str ; 
+      s  : Bool => Number => Gender => PCase => Str ; 
+      sp : Number => Gender => PCase => Str ; 
       a  : Adjf
       } ;
     Predet = {
-      s : Number => Gender => Case => Str ; 
+      s : Number => Gender => PCase => Str ; 
       c : {p : Str ; k : PredetCase} ;
       a : PredetAgr -- if an agr is forced, e.g. jeder von uns ist ...
       } ;
@@ -74,7 +74,7 @@
 
     Conj = {s1,s2 : Str ; n : Number} ;
     Subj = {s : Str} ;
-    Prep = {s : Str ; c : Case} ;
+    Prep = {s : Str ; c : PCase} ;
 
 -- Open lexical classes, e.g. Lexicon
 
diff --git a/lib/src/german/ConjunctionGer.gf b/lib/src/german/ConjunctionGer.gf
--- a/lib/src/german/ConjunctionGer.gf
+++ b/lib/src/german/ConjunctionGer.gf
@@ -9,9 +9,9 @@
 
     ConjAdv conj ss = conjunctDistrSS conj ss ;
 
-    ConjNP conj ss = conjunctDistrTable Case conj ss ** {
+    ConjNP conj ss = heavyNP (conjunctDistrTable PCase conj ss ** {
       a = Ag Fem (conjNumber conj.n (numberAgr ss.a)) (personAgr ss.a)
-      } ;
+      }) ;
 
     ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
       isPre = ss.isPre
@@ -28,8 +28,8 @@
     ConsS = consrTable Order comma ;
     BaseAdv = twoSS ;
     ConsAdv = consrSS comma ;
-    BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
-    ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
+    BaseNP x y = twoTable PCase x y ** {a = conjAgr x.a y.a} ;
+    ConsNP xs x = consrTable PCase comma xs x ** {a = conjAgr xs.a x.a} ;
     BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
     ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
     BaseRS x y = twoTable GenNum x y ** {c = y.c} ;
@@ -38,7 +38,7 @@
   lincat
     [S] = {s1,s2 : Order => Str} ;
     [Adv] = {s1,s2 : Str} ;
-    [NP] = {s1,s2 : Case => Str ; a : Agr} ;
+    [NP] = {s1,s2 : PCase => Str ; a : Agr} ;
     [AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
     [RS] = {s1,s2 : GenNum => Str ; c : Case} ;
 
diff --git a/lib/src/german/IdiomGer.gf b/lib/src/german/IdiomGer.gf
--- a/lib/src/german/IdiomGer.gf
+++ b/lib/src/german/IdiomGer.gf
@@ -9,7 +9,7 @@
 
     CleftNP np rs = mkClause "es" (agrP3 Sg) 
       (insertExtrapos (rs.s ! gennum (genderAgr np.a) (numberAgr np.a)) ----
-        (insertObj (\\_ => np.s ! rs.c) (predV MorphoGer.sein_V))) ;
+        (insertObj (\\_ => np.s ! NPC rs.c) (predV MorphoGer.sein_V))) ;
 
     CleftAdv ad s = mkClause "es" (agrP3 Sg) 
       (insertExtrapos (conjThat ++ s.s ! Sub)
@@ -41,7 +41,7 @@
       } ;
 
     ImpP3 np vp = {
-      s = (mkClause (np.s ! Nom) np.a vp).s ! 
+      s = (mkClause (np.s ! NPC Nom) np.a vp).s ! 
                            MConjunct ! Pres ! Simul ! Pos ! Inv 
       } ;
 
diff --git a/lib/src/german/IrregGer.gf b/lib/src/german/IrregGer.gf
--- a/lib/src/german/IrregGer.gf
+++ b/lib/src/german/IrregGer.gf
@@ -212,7 +212,11 @@
   lin werfen_V =  irregV "werfen" "wirft" "warf" "würfe" "geworfen" ;
   lin wiegen_V =  irregV "wiegen" "wiegt" "wog" "wöge" "gewogen" ;
   lin winden_V =  irregV "winden" "windt" "wand" "wände" "gewunden" ;
-  lin wissen_V =  irregV "wissen" "weiß" "wußte" "wüßte" "gewußt" ;
+  lin wissen_V =  M.mkV 
+        "wissen" "weiß" "weißt" "weiß" "wisst" "wisse" 
+        "wusste" "wusstest" "wussten" "wusstet"
+        "wüsste" "gewusst" [] 
+        M.VHaben ** {lock_V = <>} ;
   lin wollen_V =  M.mkV 
         "wollen" "will" "willst" "will" "wollt" "woll" 
         "wollte" "wolltest" "wollten" "wolltet"
diff --git a/lib/src/german/LexiconGer.gf b/lib/src/german/LexiconGer.gf
--- a/lib/src/german/LexiconGer.gf
+++ b/lib/src/german/LexiconGer.gf
@@ -108,7 +108,8 @@
   jump_V = seinV (irregV "springen" "springt" "sprang" "spränge" "gesprungen") ;
   king_N = mkN "König" ;
   know_V2 = dirV2 (irregV "kennen" "kennt" "kannte" "kännte" "gekannt") ; ---- infl
-  know_VS = mkVS (irregV "wissen" "weiß" "wußte" "wüßte" "gewußt") ; ---- infl
+  know_VQ = mkVQ wissen_V ;
+  know_VS = mkVS wissen_V ;
   lake_N = reg2N "See" "Seen" masculine ; --- infl
   lamp_N = mkN "Lampe";
   learn_V2 = dirV2 (regV "lernen") ;
diff --git a/lib/src/german/MakeStructuralGer.gf b/lib/src/german/MakeStructuralGer.gf
--- a/lib/src/german/MakeStructuralGer.gf
+++ b/lib/src/german/MakeStructuralGer.gf
@@ -17,7 +17,7 @@
         c = noCase ;
         a = PAgNone
         } ;     
-    mkPredet : A -> Str -> Case -> Bool -> Number -> Predet = \a,p,c,b,n ->
+    mkPredet : A -> Str -> PCase -> Bool -> Number -> Predet = \a,p,c,b,n ->
       lin Predet {
         s = appAdj a ; 
         c = {p = p ; k = PredCase c} ; 
diff --git a/lib/src/german/MorphoGer.gf b/lib/src/german/MorphoGer.gf
--- a/lib/src/german/MorphoGer.gf
+++ b/lib/src/german/MorphoGer.gf
@@ -16,14 +16,16 @@
 
 -- For $StructuralGer$.
 
-  mkPrep : Str -> Case -> Preposition = \s,c -> 
+  mkPrep : Str -> PCase -> Preposition = \s,c -> 
     {s = s ; c = c} ;
 
-  nameNounPhrase : {s : Case => Str} ->  {s : Case => Str ; a : Agr} = \name ->
-    name ** {a = agrP3 Sg} ;
+  nameNounPhrase : {s : Case => Str} ->  {s : PCase => Str ; a : Agr ; isPron : Bool} = \name -> heavyNP {
+      s = \\c => usePrepC c (\k -> name.s ! k) ;
+      a = agrP3 Sg
+      } ;
 
   detLikeAdj : Number -> Str -> 
-    {s,sp : Gender => Case => Str ; n : Number ; a : Adjf} = \n,dies -> 
+    {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf} = \n,dies -> 
       {s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak} ;
 
   mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
diff --git a/lib/src/german/NounGer.gf b/lib/src/german/NounGer.gf
--- a/lib/src/german/NounGer.gf
+++ b/lib/src/german/NounGer.gf
@@ -4,7 +4,8 @@
 
   lin
     DetCN det cn = {
-      s = \\c => det.s ! cn.g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ;
+      s = \\c => det.s ! cn.g ! c ++ 
+                 (let k = (prepC c).c in cn.s ! adjfCase det.a k ! det.n ! k) ;
       a = agrgP3 cn.g det.n ;
       isPron = False
       } ;
@@ -15,27 +16,32 @@
       isPron = False
       } ;
 
-    UsePN pn = pn ** {a = agrP3 Sg} ;
+    UsePN pn = {
+      s = \\c => usePrepC c (\k -> pn.s ! k) ;
+      a = agrP3 Sg ;
+      isPron = True --- means: this is not a heavy NP, but comes before negation
+      } ;
 
     UsePron pron = {
-      s = \\c => pron.s ! NPCase c ;
-      a = pron.a
+      s = \\c => usePrepC c (\k -> pron.s ! NPCase k) ;
+      a = pron.a ;
+      isPron = True
       } ;
 
     PredetNP pred np = 
-      let ag = case pred.a of {PAg n => agrP3 n ; _ => np.a} in {
+      let ag = case pred.a of {PAg n => agrP3 n ; _ => np.a} in heavyNP {
         s = \\c0 => 
           let c = case pred.c.k of {NoCase => c0 ; PredCase k => k} in
           pred.s ! numberAgr ag ! genderAgr np.a ! c0 ++ pred.c.p ++ np.s ! c ; 
         a = ag
         } ;
 
-    PPartNP np v2 = {
+    PPartNP np v2 = heavyNP {
       s = \\c => np.s ! c ++ v2.s ! VPastPart APred ; --- invar part
       a = np.a
       } ;
 
-    AdvNP np adv = {
+    AdvNP np adv = heavyNP {
       s = \\c => np.s ! c ++ adv.s ;
       a = np.a
       } ;
@@ -45,10 +51,10 @@
         n = num.n ;
         a = quant.a
       in {
-        s  = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ 
-                      num.s!g!c ++ ord.s ! agrAdj g (adjfCase a c) n c ;
-        sp = \\g,c => quant.sp ! n ! g ! c ++ 
-                      num.s!g!c ++ ord.s ! agrAdj g (adjfCase a c) n c ;
+        s  = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
+                        num.s!g!k ++ ord.s ! agrAdj g (adjfCase a k) n k) ;
+        sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
+                        num.s!g!k ++ ord.s ! agrAdj g (adjfCase a k) n k) ;
         n = n ;
         a = a
         } ;
@@ -58,16 +64,18 @@
         n = num.n ;
         a = quant.a
       in {
-        s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ num.s!g!c ;
-        sp = \\g,c => quant.sp ! n ! g ! c ++ num.s!g!c ;
+        s  = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
+                        num.s!g!k) ;
+        sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
+                        num.s!g!k) ;
         n = n ;
         a = a
         } ;
 
 
     PossPron p = {
-      s  = \\_,n,g,c => p.s ! NPPoss (gennum g n) c ;
-      sp = \\n,g,c => p.s ! NPPoss (gennum g n) c ;
+      s  = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
+      sp = \\n,g,c   => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
       a = Strong --- need separately weak for Pl ?
       } ;
 
@@ -87,28 +95,28 @@
     OrdSuperl a = {s = a.s ! Superl} ;
 
     DefArt = {
-      s = \\_,n,g,c => artDef ! gennum g n ! c ; 
-      sp = \\n,g,c   => artDef ! gennum g n ! c ;  ---- deren, denem...
+      s = \\_,n,g,c => artDefContr (gennum g n) c ; 
+      sp = \\n,g,c  => artDefContr (gennum g n) c ;  ---- deren, denem...
       a = Weak
       } ;
 
     IndefArt = {
       s = table {
-        True => \\_,_,_ => [] ; 
+        True => \\_,_,c => usePrepC c (\k -> []) ;
         False => table {
-          Sg => \\g,c => "ein" + pronEnding ! GSg g ! c ;  
-          Pl =>  \\_,_ => []
+          Sg => \\g,c => usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ;  
+          Pl => \\_,c => usePrepC c (\k -> [])
           }
         } ; 
       sp = table {
-        Sg => \\g,c => "ein" + pronEnding ! GSg g ! c ;
-        Pl => \\_ => caselist "einige" "einige" "einigen" "einiger"
+        Sg => \\g,c => usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ;
+        Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
         } ;
       a = Strong
       } ;
 
     MassNP cn = {
-      s = \\c => cn.s ! adjfCase Strong c ! Sg ! c ;
+      s = \\c => usePrepC c (\k -> cn.s ! adjfCase Strong k ! Sg ! k) ;
       a = agrP3 Sg ;
       isPron = False
       } ;
@@ -175,7 +183,7 @@
       } ;
 
     ApposCN  cn np = let g = cn.g in {
-      s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! c ;
+      s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! NPC c ;
       g = g ;
       isMod = cn.isMod
       } ;
diff --git a/lib/src/german/NumeralGer.gf b/lib/src/german/NumeralGer.gf
--- a/lib/src/german/NumeralGer.gf
+++ b/lib/src/german/NumeralGer.gf
@@ -1,4 +1,4 @@
-concrete NumeralGer of Numeral = CatGer ** open MorphoGer in {
+concrete NumeralGer of Numeral = CatGer [Numeral,Digits] ** open MorphoGer, Prelude in {
 
 flags optimize = all_subs ;
 
@@ -33,18 +33,24 @@
   pot1to19 d = {s = d.s ! DTeen; n = Pl} ;
   pot0as1 n = {s = n.s ! DUnit; n = n.n } ;
   pot1 d = {s = d.s ! DTen; n = Pl} ;
-  pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "und" ++ d.s ! DTen ! g; n = Pl} ;
+  pot1plus d e = {s = \\g => 
+    e.s ! DUnit ! invNum ++ BIND ++ "und" ++ BIND ++ d.s ! DTen ! g; n = Pl} ;
   pot1as2 n = n ;
-  pot2 d = 
-    {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "hundert" "hunderte" ! g ; n = Pl} ;
-  pot2plus d e = 
-    {s = \\g => d.s ! DUnit ! invNum ++ "hundert" ++ e.s ! g ; n = Pl} ;
+  pot2 d = {s = \\g => 
+    multiple (d.s ! DUnit) d.n ++ cardOrd "hundert" "hunderte" ! g ; n = Pl} ;
+  pot2plus d e = {s = \\g => 
+    multiple (d.s ! DUnit) d.n ++ "hundert" ++ BIND ++ e.s ! g ; n = Pl} ;
   pot2as3 n = n ;
-  pot3 n = 
-    {s = \\g => n.s ! invNum ++ cardOrd "tausend" "tausendte" ! g ; n = Pl} ; ----
-  pot3plus n m = 
-    {s = \\g => n.s ! invNum ++ "tausend" ++ m.s ! g ; n = Pl} ;
+  pot3 n = {s = \\g => 
+    multiple n.s n.n ++ cardOrd "tausend" "tausendte" ! g ; n = Pl} ; ----
+  pot3plus n m = {s = \\g => 
+    multiple n.s n.n ++ "tausend" ++ m.s ! g ; n = Pl} ;
 
+oper
+  multiple : (CardOrd => Str) -> Number -> Str = \d,n -> 
+    case n of {Sg => [] ; _ => d ! invNum ++ BIND} ;
+
+--------------------
 
   lincat 
     Dig = TDigit ;
diff --git a/lib/src/german/ParadigmsGer.gf b/lib/src/german/ParadigmsGer.gf
--- a/lib/src/german/ParadigmsGer.gf
+++ b/lib/src/german/ParadigmsGer.gf
@@ -47,6 +47,11 @@
   dative     : Case ;
   genitive   : Case ;
 
+  anDat_Case : Case ; -- preposition "an" accusative with contraction "am" --%
+  inAcc_Case : Case ; -- preposition "in" accusative with contraction "ins" --%
+  inDat_Case : Case ; -- preposition "in" dative with contraction "am" --%
+  zuDat_Case : Case ; -- preposition "zu" dative with contractions "zum", "zur" --%
+
 -- To abstract over number names, we define the following.
 
   Number    : Type ; 
@@ -64,19 +69,18 @@
 -- feminine with plural ending "-n, -en", and the rest are masculines
 -- with the plural "-e" (without Umlaut).
 
-  mkN : (Stufe : Str) -> N ;
+  mkN : (Stufe : Str) -> N ;  -- die Stufe-Stufen, der Tisch-Tische
 
 -- The 'almost regular' case is much like the information given in an ordinary
 -- dictionary. It takes the singular and plural nominative and the
 -- gender, and infers the other forms from these.
 
-  mkN : (Bild,Bilder : Str) -> Gender -> N ;
+  mkN : (Bild,Bilder : Str) -> Gender -> N ; -- sg and pl nom, and gender
 
 -- Worst case: give all four singular forms, two plural forms (others + dative),
 -- and the gender.
 
-  mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N
-                       -- mann, mann, manne, mannes, männer, männern
+  mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N -- worst case: mann, mann, manne, mannes, männer, männern
   };
 
 
@@ -84,9 +88,9 @@
 -- the dative, and there is a special case for regular nouns.
 
   mkN2 : overload {
-    mkN2 : Str -> N2 ;
-    mkN2 : N ->   N2 ; 
-    mkN2 : N -> Prep -> N2
+    mkN2 : Str -> N2 ; --%
+    mkN2 : N ->   N2 ; -- noun + von
+    mkN2 : N -> Prep -> N2 -- noun + other preposition
     } ;   
 
 -- Use the function $mkPrep$ or see the section on prepositions below to  
@@ -95,7 +99,7 @@
 --
 -- Three-place relational nouns ("die Verbindung von x nach y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- noun + two prepositions
 
 
 --3 Proper names and noun phrases
@@ -105,15 +109,15 @@
 -- taken into account.
 
   mkPN : overload {
-    mkPN : Str -> PN ;
+    mkPN : Str -> PN ; -- regular name with genitive in "s"
 
 -- If only the genitive differs, two strings are needed.
 
-    mkPN : (nom,gen : Str) -> PN ;
+    mkPN : (nom,gen : Str) -> PN ;  -- name with other genitive
 
 -- In the worst case, all four forms are needed.
 
-    mkPN : (nom,acc,dat,gen : Str) -> PN
+    mkPN : (nom,acc,dat,gen : Str) -> PN -- name with all case forms
     } ;
 
 
@@ -125,49 +129,52 @@
 -- The regular adjective formation works for most cases, and includes
 -- variations such as "teuer - teurer", "böse - böser".
 
-    mkA : Str -> A ;
+    mkA : Str -> A ; -- regular adjective, works for most cases
 
 -- Irregular adjectives need three forms - one for each degree.
 
-    mkA : (gut,besser,beste : Str) -> A ;
+    mkA : (gut,besser,beste : Str) -> A ; -- irregular comparison
 
 -- Sometimes an extra form is needed for positive forms.
 
-    mkA : (gut,gute,besser,beste : Str) -> A
+    mkA : (gut,gute,besser,beste : Str) -> A -- irregular positive if ending added
 
     } ;
 
 -- Invariable adjective are a special case. 
 
-  invarA : Str -> A ;            -- prima
+  invarA : Str -> A ;            -- invariable, e.g. prima
 
 -- Two-place adjectives are formed by adding a preposition to an adjective.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. teilbar + durch
 
 --2 Adverbs
 
 -- Adverbs are formed from strings.
 
-  mkAdv : Str -> Adv ;
+  mkAdv : Str -> Adv ; -- adverbs have just one form anyway
 
 
 --2 Prepositions
 
 -- A preposition is formed from a string and a case.
 
-  mkPrep : Str -> Case -> Prep ;
+  mkPrep : Str -> Case -> Prep ; -- e.g. "durch" + accusative
   
 -- Often just a case with the empty string is enough.
 
-  accPrep : Prep ;
-  datPrep : Prep ;
-  genPrep : Prep ;
+  accPrep : Prep ; -- no string, just accusative case
+  datPrep : Prep ; -- no string, just dative case
+  genPrep : Prep ; -- no string, just genitive case
 
--- A couple of common prepositions (always with the dative).
+-- A couple of common prepositions (the first two always with the dative).
 
-  von_Prep : Prep ;
-  zu_Prep  : Prep ;
+  von_Prep : Prep ; -- von + dative
+  zu_Prep  : Prep ; -- zu + dative, with contractions zum, zur
+  anDat_Prep : Prep ; -- an + dative, with contraction am
+  inDat_Prep : Prep ; -- in + dative, with contraction ins
+  inAcc_Prep : Prep ; -- in + accusative, with contraction im
 
 --2 Verbs
 
@@ -175,11 +182,11 @@
 
 -- Regular verbs ("weak verbs") need just the infinitive form.
 
-  mkV : (führen : Str) -> V ;
+  mkV : (führen : Str) -> V ; -- regular verb
 
 -- Irregular verbs use Ablaut and, in the worst cases, also Umlaut.
 
-  mkV : (sehen,sieht,sah,sähe,gesehen : Str) -> V ;
+  mkV : (sehen,sieht,sah,sähe,gesehen : Str) -> V ; -- irregular verb theme
 
 -- The worst-case constructor needs six forms:
 -- - Infinitive, 
@@ -191,32 +198,32 @@
 --
 --
 
-  mkV : (geben, gibt, gib, gab, gäbe, gegeben : Str) -> V ; 
+  mkV : (geben, gibt, gib, gab, gäbe, gegeben : Str) -> V ;  -- worst-case verb
 
 -- To add a movable prefix e.g. "auf(fassen)".
 
-  mkV : Str -> V -> V
+  mkV : Str -> V -> V -- movable prefix, e.g. auf+fassen
 };
 
 
 -- To remove the past participle prefix "ge", e.g. for the verbs
 -- prefixed by "be-, ver-".
 
-  no_geV : V -> V ;
+  no_geV : V -> V ;  -- no participle "ge", e.g. "bedeuten"
 
 -- To add a fixed prefix such as "be-, ver-"; this implies $no_geV$.
 
-  fixprefixV : Str -> V -> V ;
+  fixprefixV : Str -> V -> V ; -- add prefix such as "be"; implies no_ge
 
 -- To change the auxiliary from "haben" (default) to "sein" and
 -- vice-versa.
 
-  seinV  : V -> V ;
-  habenV : V -> V ;
+  seinV  : V -> V ; -- force "sein" as auxiliary
+  habenV : V -> V ; -- force "haben" as auxiliary
 
 -- Reflexive verbs can take reflexive pronouns of different cases.
 
-  reflV  : V -> Case -> V ;
+  reflV  : V -> Case -> V ; -- reflexive, with case
 
 
 --3 Two-place verbs
@@ -225,19 +232,19 @@
 
 -- Two-place regular verbs with direct object (accusative, transitive verbs).
 
-  mkV2 : Str -> V2 ;
+  mkV2 : Str -> V2 ; --%
 
 -- Two-place verbs with direct object.
 
-  mkV2 : V -> V2 ;
+  mkV2 : V -> V2 ; -- direct object
 
 -- Two-place verbs with a preposition.
 
-  mkV2 : V -> Prep -> V2 ;
+  mkV2 : V -> Prep -> V2 ; -- preposition for complement
 
 -- Two-place verbs with object in the given case.
 
-  mkV2 : V -> Case -> V2
+  mkV2 : V -> Case -> V2 ; -- just case for complement
 };
 
 
@@ -246,16 +253,17 @@
 -- Three-place (ditransitive) verbs need two prepositions, of which
 -- the first one or both can be absent.
 
-  mkV3     : V -> Prep -> Prep -> V3 ;  -- sprechen, mit, über
-  dirV3    : V -> Prep -> V3 ;          -- senden,(accusative),nach
-  accdatV3 : V -> V3 ;                  -- give,accusative,dative
+  accdatV3 : V -> V3 ;                  -- geben + acc + dat
+  dirV3    : V -> Prep -> V3 ;          -- senden + acc + nach
+  mkV3     : V -> Prep -> Prep -> V3 ;  -- sprechen + mit + über
 
+
 --3 Other complement patterns
 --
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;
@@ -265,17 +273,17 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 
 --.
@@ -287,15 +295,20 @@
 
 
   Gender = MorphoGer.Gender ;
-  Case = MorphoGer.Case ;
+  Case = MorphoGer.PCase ;
   Number = MorphoGer.Number ;
   masculine = Masc ;
   feminine  = Fem ;
   neuter = Neutr ;
-  nominative = Nom ;
-  accusative = Acc ;
-  dative = Dat ;
-  genitive = Gen ;
+  nominative = NPC Nom ;
+  accusative = NPC Acc ;
+  dative = NPC Dat ;
+  genitive = NPC Gen ;
+  anDat_Case = NPP CAnDat ;
+  inAcc_Case = NPP CInAcc ;
+  inDat_Case = NPP CInDat ;
+  zuDat_Case = NPP CZuDat ;
+
   singular = Sg ;
   plural = Pl ;
 
@@ -361,7 +374,8 @@
 
   mk3A : (gut,besser,beste : Str) -> A = \a,b,c ->
     let aa : Str = case a of {
-      teu + "er" => teu + "r" ;
+      dunk + "el" => dunk + "l" ;
+      te + "uer" => te + "ur" ;
       mud + "e" => mud ;
       _ => a
     } in 
@@ -370,9 +384,11 @@
     MorphoGer.mkA a aa b (init c) ** {lock_A = <>} ;
 
   regA : Str -> A = \a -> case a of {
-    teu + "er" => mk3A a (teu + "rer") (teu + "reste") ;
+    dunk + "el" => mk3A a (dunk + "ler") (dunk + "leste") ;
+    te + "uer" => mk3A a (te + "urer") (te + "ureste") ;
     _ + "e"    => mk3A a (a + "r") (a + "ste") ;
-    _          => mk3A a (a + "er") (a + "este")
+     _ + ("t" | "d" | "s" | "sch" | "z") => mk3A a (a + "er") (a + "este") ;
+    _          => mk3A a (a + "er") (a + "ste")
     } ;
 
   invarA = \s -> {s = \\_,_ => s ; lock_A = <>} ; ---- comparison
@@ -386,8 +402,12 @@
   datPrep = mkPrep [] dative ;
   genPrep = mkPrep [] genitive ;
   von_Prep = mkPrep "von" dative ;
-  zu_Prep = mkPrep "zu" dative ;
+  zu_Prep = mkPrep [] zuDat_Case ;
+  anDat_Prep = mkPrep [] anDat_Case ;
+  inDat_Prep = mkPrep [] inDat_Case ; 
+  inAcc_Prep = mkPrep [] inAcc_Case ; 
 
+
   mk6V geben gibt gib gab gaebe gegeben = 
     let
       geb   = stemVerb geben ;
@@ -424,7 +444,7 @@
   seinV v = 
     {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VSein ; vtype = v.vtype} ;
   reflV v c = 
-    {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = VRefl c} ;
+    {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = VRefl (prepC c).c} ;
 
   no_geV v = let vs = v.s in {
     s = table {
diff --git a/lib/src/german/PhraseGer.gf b/lib/src/german/PhraseGer.gf
--- a/lib/src/german/PhraseGer.gf
+++ b/lib/src/german/PhraseGer.gf
@@ -13,7 +13,7 @@
 
     UttIP ip = {s = ip.s ! Nom} ; --- Acc also
     UttIAdv iadv = iadv ;
-    UttNP np = {s = np.s ! Nom} ;
+    UttNP np = {s = np.s ! NPC Nom} ;
     UttVP vp = {s = useInfVP True vp} ;  -- without zu
     UttAdv adv = adv ;
     UttCN n = {s = n.s ! Strong ! Sg ! Nom} ;
@@ -24,6 +24,6 @@
     PConjConj conj = ss (conj.s2) ;
 
     NoVoc = {s = []} ;
-    VocNP np = {s = "," ++ np.s ! Nom} ;
+    VocNP np = {s = "," ++ np.s ! NPC Nom} ;
 
 }
diff --git a/lib/src/german/QuestionGer.gf b/lib/src/german/QuestionGer.gf
--- a/lib/src/german/QuestionGer.gf
+++ b/lib/src/german/QuestionGer.gf
@@ -28,7 +28,7 @@
       s = \\m,t,a,p => 
             let 
               cls = slash.s ! m ! t ! a ! p ;
-              who = appPrep slash.c2 ip.s
+              who = appPrep slash.c2 (\\k => usePrepC k (\c -> ip.s ! c)) ;
             in table {
               QDir   => who ++ cls ! Inv ;
               QIndir => who ++ cls ! Sub
@@ -50,7 +50,7 @@
       s = \\m,t,a,p => 
             let 
               vp  = predV sein_V ;
-              cls = (mkClause (np.s ! Nom) np.a vp).s ! m ! t ! a ! p ;
+              cls = (mkClause (np.s ! NPC Nom) np.a vp).s ! m ! t ! a ! p ;
               why = icomp.s ! np.a
             in table {
               QDir   => why ++ cls ! Inv ;
@@ -59,7 +59,7 @@
       } ;
 
     PrepIP p ip = {
-      s = appPrep p ip.s
+      s = appPrep p (\\k => usePrepC k (\c -> ip.s ! c)) ;
       } ;
 
     AdvIP ip adv = {
@@ -92,6 +92,8 @@
       s = \\g,c => idet.s ! n ! g ! c ++ num.s!g!c  ; 
       n = n
       } ;
+
+    AdvIAdv i a = {s = i.s ++ a.s} ;
  
     CompIAdv a = {s = \\_ => a.s} ;
 
diff --git a/lib/src/german/RelativeGer.gf b/lib/src/german/RelativeGer.gf
--- a/lib/src/german/RelativeGer.gf
+++ b/lib/src/german/RelativeGer.gf
@@ -24,12 +24,13 @@
 
     RelSlash rp slash = {
       s = \\m,t,a,p,gn => 
-          appPrep slash.c2 (rp.s ! gn) ++ slash.s ! m ! t ! a ! p ! Sub ;
-      c = slash.c2.c
+          appPrep slash.c2 (\\k => usePrepC k (\c -> rp.s ! gn ! c)) ++ 
+          slash.s ! m ! t ! a ! p ! Sub ;
+      c = (prepC slash.c2.c).c
       } ;
 
     FunRP p np rp = {
-      s = \\gn,c => np.s ! c ++ appPrep p (rp.s ! gn) ;
+      s = \\gn,c => np.s ! NPC c ++ appPrep p (\\k => usePrepC k (\c -> rp.s ! gn ! c)) ;
       a = RAg (numberAgr np.a) (personAgr np.a)
       } ;
 
diff --git a/lib/src/german/ResGer.gf b/lib/src/german/ResGer.gf
--- a/lib/src/german/ResGer.gf
+++ b/lib/src/german/ResGer.gf
@@ -33,6 +33,24 @@
 
     Agr = Ag Gender Number Person ;
 
+-- Case of $NP$ extended to deal with contractions like "zur", "im".
+
+    PCase = NPC Case | NPP CPrep ;
+    CPrep = CAnDat | CInAcc | CInDat | CZuDat ;
+
+  oper 
+    NPNom : PCase = NPC Nom ;
+    prepC : PCase -> {s : Str ; c : Case} = \cp -> case cp of {
+      NPC c      => {s = []   ; c = c} ;
+      NPP CAnDat => {s = "an" ; c = Dat} ;
+      NPP CInAcc => {s = "in" ; c = Acc} ;
+      NPP CInDat => {s = "in" ; c = Dat} ;
+      NPP CZuDat => {s = "zu" ; c = Dat}
+      } ;
+
+    usePrepC : PCase -> (Case -> Str) -> Str = \c,fs -> 
+      let sc = prepC c in sc.s ++ fs sc.c ;
+
   oper
     mkAgr : {g : Gender ; n : Number ; p : Person} -> Agr = \r ->
       Ag r.g r.n r.p ;
@@ -50,7 +68,7 @@
 -- sometimes forced ("jeder von Mwnschen").
 
   param 
-    PredetCase = NoCase | PredCase Case ;
+    PredetCase = NoCase | PredCase PCase ;
     PredetAgr = PAg Number | PAgNone ;
   oper
     noCase : {p : Str ; k : PredetCase} = {p = [] ; k = NoCase} ;
@@ -302,7 +320,12 @@
     mkN wein wein wein weines weine weinen ;
 
   regA : Str -> Adjective = \blau ->
-    mkA blau blau (blau + "er") (blau + "est") ;
+   let blauest : Str = case blau of {
+     _ + ("t" | "d" | "s" | "sch" | "z") => blau + "est" ;
+     _ => blau + "st"
+   }
+   in
+   mkA blau blau (blau + "er") blauest ;
 
   regV : Str -> Verb = \legen ->
     let 
@@ -319,17 +342,17 @@
 
 -- Prepositions for complements indicate the complement case.
 
-  Preposition : Type = {s : Str ; c : Case} ;
+  Preposition : Type = {s : Str ; c : PCase} ;
 
 -- To apply a preposition to a complement.
 
-  appPrep : Preposition -> (Case => Str) -> Str = \prep,arg ->
+  appPrep : Preposition -> (PCase => Str) -> Str = \prep,arg ->
     prep.s ++ arg ! prep.c ;
 
 -- To build a preposition from just a case.
 
   noPreposition : Case -> Preposition = \c -> 
-    {s = [] ; c = c} ;
+    {s = [] ; c = NPC c} ;
 
 -- Pronouns and articles
 -- Here we define personal and relative pronouns.
@@ -349,28 +372,42 @@
   pronEnding : GenNum => Case => Str = table {
     GSg Masc => caselist ""  "en" "em" "es" ;
     GSg Fem  => caselist "e" "e"  "er" "er" ;
-    GSg Neut => caselist ""  ""   "em" "es" ;
+    GSg Neutr => caselist ""  ""   "em" "es" ;
     GPl      => caselist "e"  "e" "en" "er"
     } ;
 
   artDef : GenNum => Case => Str = table {
     GSg Masc => caselist "der" "den" "dem" "des" ;
     GSg Fem  => caselist "die" "die" "der" "der" ;
-    GSg Neut => caselist "das" "das" "dem" "des" ;
+    GSg Neutr => caselist "das" "das" "dem" "des" ;
     GPl      => caselist "die" "die" "den" "der"
     } ;
 
+  artDefContr : GenNum -> PCase -> Str = \gn,np -> case np of {
+    NPC c => artDef ! gn ! c ;
+    NPP p => case <p,gn> of {
+      <CAnDat, GSg (Masc | Neutr)> => "am" ;
+      <CInAcc, GSg Neutr>          => "ins" ;
+      <CInDat, GSg (Masc | Neutr)> => "im" ;
+      <CZuDat, GSg Masc>           => "zum" ;
+      <CZuDat, GSg Neutr>          => "zum" ;
+      <CZuDat, GSg Fem>            => "zur" ;
+      _ => let sp = prepC np in sp.s ++ artDef ! gn ! sp.c
+      }
+    } ;
+
+
 -- This is used when forming determiners that are like adjectives.
 
-  appAdj : Adjective -> Number => Gender => Case => Str = \adj ->
+  appAdj : Adjective -> Number => Gender => PCase => Str = \adj ->
     let
       ad : GenNum -> Case -> Str = \gn,c -> 
         adj.s ! Posit ! AMod gn c
     in
-    \\n,g,c => case n of {
-       Sg => ad (GSg g) c ;
-       _  => ad GPl c
-     } ;
+    \\n,g,c => usePrepC c (\k -> case n of {
+       Sg => ad (GSg g) k ;
+       _  => ad GPl k
+     }) ;
 
 -- This auxiliary gives the forms in each degree of adjectives. 
 
@@ -399,7 +436,8 @@
   VP : Type = {
       s  : Verb ;
       a1 : Polarity => Str ; -- nicht
-      n2 : Agr => Str ;      -- dich
+      n0 : Agr => Str ;      -- dich
+      n2 : Agr => Str ;      -- deine Frau
       a2 : Str ;             -- heute
       isAux : Bool ;         -- is a double infinitive
       inf : Str ;            -- sagen
@@ -472,10 +510,11 @@
      } ;
 
     a1  : Polarity => Str = negation ;
-    n2  : Agr => Str = case verb.vtype of {
+    n0  : Agr => Str = case verb.vtype of {
       VAct => \\_ => [] ;
       VRefl c => \\a => reflPron ! a ! c
       } ;
+    n2  : Agr => Str = \\_ => [] ;
     a2  : Str = [] ;
     isAux = isAux ; ----
     inf,ext : Str = []
@@ -539,10 +578,13 @@
 
 -- Extending a verb phrase with new constituents.
 
-  insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
+  insertObj : (Agr => Str) -> VP -> VP = insertObjNP False ;
+
+  insertObjNP : Bool -> (Agr => Str) -> VP -> VP = \isPron, obj,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
-    n2 = \\a => obj ! a ++ vp.n2 ! a ;
+    n0 = \\a => case isPron of {True  => obj ! a ; _ => []} ++ vp.n0 ! a ;
+    n2 = \\a => case isPron of {False => obj ! a ; _ => []} ++ vp.n2 ! a ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
     inf = vp.inf ;
@@ -552,6 +594,7 @@
   insertAdV : Str -> VP -> VP = \adv,vp -> {
     s = vp.s ;
     a1 = \\a => adv ++ vp.a1 ! a ; -- immer nicht
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
@@ -562,6 +605,7 @@
   insertAdv : Str -> VP -> VP = \adv,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ++ adv ;
     isAux = vp.isAux ;
@@ -572,6 +616,7 @@
   insertExtrapos : Str -> VP -> VP = \ext,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ;
@@ -582,6 +627,7 @@
   insertInf : Str -> VP -> VP = \inf,vp -> {
     s = vp.s ;
     a1 = vp.a1 ;
+    n0 = vp.n0 ;
     n2 = vp.n2 ;
     a2 = vp.a2 ;
     isAux = vp.isAux ; ----
@@ -604,8 +650,9 @@
             } ;
           verb  = vps.s  ! ord ! agr ! VPFinite m t a ;
           neg   = vp.a1 ! b ;
+          obj0  = vp.n0 ! agr ;
           obj   = vp.n2 ! agr ;
-          compl = obj ++ neg ++ vp.a2 ;
+          compl = obj0 ++ neg ++ obj ++ vp.a2 ;
           inf   = vp.inf ++ verb.inf ;
           extra = vp.ext ;
           inffin = 
@@ -624,7 +671,7 @@
 
   infVP : Bool -> VP -> ((Agr => Str) * Str * Str) = \isAux, vp -> let vps = useVP vp in
     <
-     \\agr => vp.n2 ! agr ++  vp.a2,
+     \\agr => vp.n0 ! agr ++ vp.n2 ! agr ++  vp.a2,
      vp.a1 ! Pos ++ (vps.s ! (notB isAux) ! agrP3 Sg ! VPInfinit Simul).inf,
      vp.inf ++ vp.ext
     > ;
@@ -656,5 +703,9 @@
 -- The infinitive particle "zu" is used if and only if $vv.isAux = False$.
  
   infPart : Bool -> Str = \b -> if_then_Str b [] "zu" ;
+
+  heavyNP : 
+    {s : PCase => Str ; a : Agr} -> {s : PCase => Str ; a : Agr ; isPron : Bool} = \np ->
+    np ** {isPron = False} ;
 
 }
diff --git a/lib/src/german/SentenceGer.gf b/lib/src/german/SentenceGer.gf
--- a/lib/src/german/SentenceGer.gf
+++ b/lib/src/german/SentenceGer.gf
@@ -4,7 +4,7 @@
 
   lin
 
-    PredVP np vp = mkClause (np.s ! Nom) np.a vp ;
+    PredVP np vp = mkClause (np.s ! NPC Nom) np.a vp ;
 
     PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
 
@@ -25,7 +25,7 @@
 
     SlashVP np vp = 
       mkClause 
-        (np.s ! Nom) np.a 
+        (np.s ! NPC Nom) np.a 
         vp **
       {c2 = vp.c2} ;
 
@@ -37,7 +37,7 @@
     SlashPrep cl prep = cl ** {c2 = prep} ;
 
     SlashVS np vs slash = 
-        mkClause (np.s ! Nom) np.a 
+        mkClause (np.s ! NPC Nom) np.a 
           (insertExtrapos (conjThat ++ slash.s ! Sub) (predV vs)) **
         {c2 = slash.c2} ;
 
diff --git a/lib/src/german/StructuralGer.gf b/lib/src/german/StructuralGer.gf
--- a/lib/src/german/StructuralGer.gf
+++ b/lib/src/german/StructuralGer.gf
@@ -7,28 +7,28 @@
 
   lin
 
-  above_Prep = mkPrep "über" Dat ;
-  after_Prep = mkPrep "nach" Dat ;
+  above_Prep = mkPrep "über" P.dative ;
+  after_Prep = mkPrep "nach" P.dative ;
   all_Predet = {s = appAdj (regA "all") ; c = noCase ; a = PAgNone} ;
   almost_AdA, almost_AdN = ss "fast" ;
   although_Subj = ss "obwohl" ;
   always_AdV = ss "immer" ;
   and_Conj = {s1 = [] ; s2 = "und" ; n = Pl} ;
   because_Subj = ss "weil" ;
-  before_Prep = mkPrep "vor" Dat ;
-  behind_Prep = mkPrep "hinter" Dat ;
-  between_Prep = mkPrep "zwischen" Dat ;
+  before_Prep = mkPrep "vor" P.dative ;
+  behind_Prep = mkPrep "hinter" P.dative ;
+  between_Prep = mkPrep "zwischen" P.dative ;
   both7and_DConj = sd2 "sowohl" ["als auch"] ** {n = Pl} ;
   but_PConj = ss "aber" ;
-  by8agent_Prep = mkPrep "durch" Acc ;
-  by8means_Prep = mkPrep "mit" Dat ;
+  by8agent_Prep = mkPrep "durch" P.accusative ;
+  by8means_Prep = mkPrep "mit" P.dative ;
   can8know_VV, can_VV = auxVV 
       (mkV 
         "können" "kann" "kannst" "kann" "könnt" "könn" 
         "konnte" "konntest" "konnten" "konntet"
         "könnte" "gekonnt" [] 
         VHaben) ;
-  during_Prep = mkPrep "während" Gen ;
+  during_Prep = mkPrep "während" P.genitive ;
   either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
   everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
   every_Det = detLikeAdj Sg "jed" ;
@@ -36,19 +36,19 @@
   everywhere_Adv = ss "überall" ;
   few_Det = detLikeAdj Pl "wenig" ;
 ----  first_Ord = {s = (regA "erst").s ! Posit} ;
-  for_Prep = mkPrep "für" Acc ;
-  from_Prep = mkPrep "aus" Dat ;
+  for_Prep = mkPrep "für" P.accusative ;
+  from_Prep = mkPrep "aus" P.dative ;
   he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein"  Masc Sg P3 ;
   here7to_Adv = ss ["hierher"] ;
   here7from_Adv = ss ["hieraus"] ;
   here_Adv = ss "hier" ;
   how_IAdv = ss "wie" ;
   how8much_IAdv = ss "wieviel" ;
-  how8many_IDet = detLikeAdj Pl "wieviel" ;
+  how8many_IDet = {s = \\g,c => (detLikeAdj Pl "wieviel").s ! g ! NPC c ; n = Pl} ;
   if_Subj = ss "wenn" ;
-  in8front_Prep = mkPrep "vor" Dat ;
+  in8front_Prep = mkPrep "vor" P.dative ;
   i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
-  in_Prep = mkPrep "in" Dat ;
+  in_Prep = mkPrep [] (NPP CInDat) ;
   it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein"  Neutr Sg P3 ;
   less_CAdv = X.mkCAdv "weniger" "als" ;
   many_Det = detLikeAdj Pl "viel" ;
@@ -65,26 +65,27 @@
   only_Predet = {s = \\_,_,_ => "nur" ; c = noCase ; a = PAgNone} ;
   no_Utt = ss "nein" ;
 ---b  no_Phr = ss "nein" ;
-  on_Prep = mkPrep "auf" Dat ;
+  on_Prep = mkPrep "auf" P.dative ;
   or_Conj = {s1 = [] ; s2 = "oder" ; n = Sg} ;
   otherwise_PConj = ss "sonst" ;
-  part_Prep = mkPrep "von" Dat ;
+  part_Prep = mkPrep "von" P.dative ;
   please_Voc = ss "bitte" ;
-  possess_Prep = mkPrep "von" Dat ;
+  possess_Prep = mkPrep "von" P.dative ;
   quite_Adv = ss "ziemlich" ;
   she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
   so_AdA = ss "so" ;
   somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
   somePl_Det = detLikeAdj Pl "einig" ;
   someSg_Det = {
-      s,sp = \\g,c => "ein" + pronEnding ! GSg g ! c ;  ---- einer,eines
+      s,sp = \\g,c => 
+             usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ;  ---- einer,eines
       n = Sg ;
       a = Strong
       } ;
   something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
   somewhere_Adv = ss "irgendwo" ;
   that_Quant = let 
-     jener : Number => Gender => Case => Str = \\n => (detLikeAdj n "jen").s in 
+     jener : Number => Gender => PCase => Str = \\n => (detLikeAdj n "jen").s in 
      {s = \\_ => jener ; sp = jener ; a = Weak} ;
 ---b  that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ----
   there_Adv = ss "da" ;
@@ -94,14 +95,14 @@
 ---b  these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
   they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
   this_Quant = let 
-     dieser : Number => Gender => Case => Str = \\n => (detLikeAdj n "dies").s in 
+     dieser : Number => Gender => PCase => Str = \\n => (detLikeAdj n "dies").s in 
      {s = \\_ => dieser ; sp = dieser ; a = Weak} ;
 ---b  this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
 ---b  those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
-  through_Prep = mkPrep "durch" Acc ;
+  through_Prep = mkPrep "durch" P.accusative ;
   too_AdA = ss "zu" ;
-  to_Prep = mkPrep "nach" Dat ;
-  under_Prep = mkPrep "unter" Dat ;
+  to_Prep = mkPrep "nach" P.dative ;
+  under_Prep = mkPrep "unter" P.dative ;
   very_AdA = ss "sehr" ;
   want_VV = auxVV 
       (mkV 
@@ -117,13 +118,13 @@
   when_IAdv = ss "wann" ;
   when_Subj = ss "wenn" ;
   where_IAdv = ss "wo" ;
-  which_IQuant = {s = \\n => (detLikeAdj n "welch").s} ;
+  which_IQuant = {s = \\n,g,c => (detLikeAdj n "welch").s ! g ! NPC c} ;
 
   whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
   whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Pl} ;
   why_IAdv = ss "warum" ;
-  without_Prep = mkPrep "ohne" Acc ;
-  with_Prep = mkPrep "mit" Dat ;
+  without_Prep = mkPrep "ohne" P.accusative ;
+  with_Prep = mkPrep "mit" P.dative ;
   youSg_Pron = mkPronPers "du" "dich" "dir" "deiner" "dein" Fem Sg P2 ;
   youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Fem Pl P2 ; ---- poss
   youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;
@@ -131,8 +132,8 @@
 
   not_Predet = {s = \\_,_,_ => "nicht" ; c = noCase ; a = PAgNone} ;
   no_Quant = let 
-     keiner : Number => Gender => Case => Str = table {
-       Sg => \\g,c => "kein" + pronEnding ! GSg g ! c ;
+     keiner : Number => Gender => PCase => Str = table {
+       Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
        Pl => (detLikeAdj Pl "kein").s
        }
      in 
@@ -144,7 +145,7 @@
     nameNounPhrase {s = \\_ => "nichts"} ;
   at_least_AdN = ss "wenigstens" ;
   at_most_AdN = ss "höchstens" ;
-  except_Prep = mkPrep "außer" Dat ;
+  except_Prep = mkPrep "außer" P.dative ;
 
   as_CAdv = X.mkCAdv "ebenso" "wie" ;
   have_V2 = P.dirV2 IrregGer.haben_V ;
diff --git a/lib/src/german/SymbolGer.gf b/lib/src/german/SymbolGer.gf
--- a/lib/src/german/SymbolGer.gf
+++ b/lib/src/german/SymbolGer.gf
@@ -14,12 +14,13 @@
     isPron = False
     } ;
   CNSymbNP det cn xs = let g = cn.g in {
-    s = \\c => det.s ! g ! c ++ cn.s !  adjfCase det.a c ! det.n ! c ++ xs.s ; 
+    s = \\c => det.s ! g ! c ++ 
+               (let k = (prepC c).c in cn.s !  adjfCase det.a k ! det.n ! k) ++ xs.s ; 
     a = agrP3 det.n ;
     isPron = False
     } ;
   CNNumNP cn i = {
-    s = \\c => artDef ! (GSg cn.g) ! c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! c ;
+    s = \\c => artDefContr (GSg cn.g) c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! (prepC c).c ;
     a = agrP3 Sg ;
     isPron = False
     } ;
diff --git a/lib/src/german/VerbGer.gf b/lib/src/german/VerbGer.gf
--- a/lib/src/german/VerbGer.gf
+++ b/lib/src/german/VerbGer.gf
@@ -42,7 +42,7 @@
     SlashV2A v ap = 
       insertObj (\\_ => ap.s ! APred) (predV v) ** {c2 = v.c2} ;
 
-    ComplSlash vp np = insertObj (\\_ => appPrep vp.c2 np.s) vp ;
+    ComplSlash vp np = insertObjNP np.isPron (\\_ => appPrep vp.c2 np.s) vp ;
 
     SlashVV v vp = 
       let 
@@ -63,20 +63,26 @@
             insertObj (\\_ => appPrep v.c2 np.s) (
               predV v)))) ** {c2 = v.c2} ;
 
-    UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV sein_V) ; -- agr not used
+    UseComp comp = insertObj comp.s (predV sein_V) ; -- agr not used
     -- we want to say "ich liebe sie nicht" but not "ich bin alt nicht"
 
     CompAP ap = {s = \\_ => ap.s ! APred} ;
-    CompNP np = {s = \\_ => np.s ! Nom} ;
+    CompNP np = {s = \\_ => np.s ! NPC Nom} ;
     CompAdv a = {s = \\_ => a.s} ;
 
+    CompCN cn = {s = \\a => case numberAgr a of {
+        Sg => "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ;
+        Pl => cn.s ! Strong ! Pl ! Nom
+        }
+      } ;
+
     AdvVP vp adv = insertAdv adv.s vp ;
     AdVVP adv vp = insertAdV adv.s vp ;
 
-    ReflVP vp = insertObj (\\a => appPrep vp.c2 (reflPron ! a)) vp ;
+    ReflVP vp = insertObj (\\a => appPrep vp.c2 
+      (\\k => usePrepC k (\c -> reflPron ! a ! c))) vp ;
 
     PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
 
----b    UseVS, UseVQ = \v -> v ** {c2 = noPreposition Acc} ;
 
 }
diff --git a/lib/src/hindi/AdjectiveHin.gf b/lib/src/hindi/AdjectiveHin.gf
--- a/lib/src/hindi/AdjectiveHin.gf
+++ b/lib/src/hindi/AdjectiveHin.gf
@@ -1,36 +1,2 @@
-concrete AdjectiveHin of Adjective = CatHin ** open ResHin, Prelude in {
-
-  lin
-
-    PositA a = a ;
-
---    ComparA a np = {
---      s = \\_ => a.s ! AAdj Compar ++ "than" ++ np.s ! Nom ; 
---      isPre = False
---      } ;
---
----- $SuperlA$ belongs to determiner syntax in $Noun$.
---
---    ComplA2 a np = {
---      s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ; 
---      isPre = False
---      } ;
---
---    ReflA2 a = {
---      s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ; 
---      isPre = False
---      } ;
---
---    SentAP ap sc = {
---      s = \\a => ap.s ! a ++ sc.s ; 
---      isPre = False
---      } ;
---
---    AdAP ada ap = {
---      s = \\a => ada.s ++ ap.s ! a ;
---      isPre = ap.isPre
---      } ;
---
---    UseA2 a = a ;
---
-}
+concrete AdjectiveHin of Adjective = CatHin ** AdjectiveHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/AdverbHin.gf b/lib/src/hindi/AdverbHin.gf
--- a/lib/src/hindi/AdverbHin.gf
+++ b/lib/src/hindi/AdverbHin.gf
@@ -1,20 +1,2 @@
-concrete AdverbHin of Adverb = CatHin ** open ResHin, Prelude in {
---
---  lin
---    PositAdvAdj a = {s = a.s ! AAdv} ;
---    ComparAdvAdj cadv a np = {
---      s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom
---      } ;
---    ComparAdvAdjS cadv a s = {
---      s = cadv.s ++ a.s ! AAdv ++ "than" ++ s.s
---      } ;
---
---    PrepNP prep np = {s = prep.s ++ np.s ! Acc} ;
---
---    AdAdv = cc2 ;
---
---    SubjS = cc2 ;
---
---    AdnCAdv cadv = {s = cadv.s ++ "than"} ;
---
-}
+concrete AdverbHin of Adverb = CatHin ** AdverbHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/AllHin.gf b/lib/src/hindi/AllHin.gf
--- a/lib/src/hindi/AllHin.gf
+++ b/lib/src/hindi/AllHin.gf
@@ -1,3 +1,6 @@
---# -path=.:../abstract:../common:prelude
+--# -path=.:../abstract:../common:../prelude:../hindustani
 
-concrete AllHin of AllHinAbs = LangHin ;
+concrete AllHin of AllHinAbs =
+  LangHin,
+  ExtraHin
+  ** {} ;
diff --git a/lib/src/hindi/AllHinAbs.gf b/lib/src/hindi/AllHinAbs.gf
--- a/lib/src/hindi/AllHinAbs.gf
+++ b/lib/src/hindi/AllHinAbs.gf
@@ -1,1 +1,4 @@
-abstract AllHinAbs = Lang ;
+abstract AllHinAbs =
+  Lang,
+  ExtraHinAbs
+  ** {} ;
diff --git a/lib/src/hindi/BackwardHin.gf b/lib/src/hindi/BackwardHin.gf
deleted file mode 100644
--- a/lib/src/hindi/BackwardHin.gf
+++ /dev/null
@@ -1,76 +0,0 @@
---concrete BackwardHin of Backward = CatHin ** open ResHin in {
---
---  flags optimize=all_subs ;
---
---  lin
---
----- A repository of obsolete constructs, needed for backward compatibility.
----- They create spurious ambiguities if used in combination with Lang.
---
----- from Verb 19/4/2008
---
---    ComplV2 v np = insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v) ;
---    ComplV3 v np np2 = 
---      insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ;
---    ComplV2V v np vp = 
---      insertObj (\\a => infVP v.isAux vp a)
---        (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
---    ComplV2S v np s = 
---      insertObj (\\_ => conjThat ++ s.s)
---        (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
---    ComplV2Q v np q = 
---      insertObj (\\_ => q.s ! QIndir) 
---        (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
---    ComplV2A v np ap = 
---      insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ;
---
---    ReflV2 v = insertObj (\\a => v.c2 ++ reflPron ! a) (predV v) ;
---
----- from Sentence 19/4/2008
---
---    SlashV2 np v2 = 
---      mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ;
---
---    SlashVVV2 np vv v2 = 
---      mkClause (np.s ! Nom) np.a 
---        (insertObj (\\a => infVP vv.isAux (predV v2) a) (predVV vv))  **
---        {c2 = v2.c2} ;
---
----- from Noun 19/4/2008
---
---    NumInt n = {s = n.s ; n = Pl} ; 
---    OrdInt n = {s = n.s ++ "th"} ; --- DEPRECATED
---
---    DetSg quant ord = {
---      s = quant.s ! Sg ++ ord.s ; 
---      n = Sg
---      } ;
---
---    DetPl quant num ord = {
---      s = quant.s ! num.n ++ num.s ++ ord.s ; 
---      n = num.n
---      } ;
---
---    NoNum = {s = []; n = Pl } ;
---
---    DefArt = {s = \\_ => artDef} ;
---
---    IndefArt = {
---      s = table {
---        Sg => artIndef ; 
---        Pl => []
---        }
---      } ;
---
---    MassDet = {s = \\_ => []} ;
---
---
---
----- from Structural 19/4/2008
---
---    that_NP = regNP "that" Sg ;
---    these_NP = regNP "these" Pl ;
---    this_NP = regNP "this" Sg ;
---    those_NP = regNP "those" Pl ;
---
---}
diff --git a/lib/src/hindi/CatHin.gf b/lib/src/hindi/CatHin.gf
--- a/lib/src/hindi/CatHin.gf
+++ b/lib/src/hindi/CatHin.gf
@@ -1,90 +1,2 @@
-concrete CatHin of Cat = CommonX ** open ResHin, Prelude in {
-
-  flags optimize=all_subs ;
-
-  lincat
---
----- Tensed/Untensed
---
---    S  = {s : Str} ;
---    QS = {s : QForm => Str} ;
---    RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
---    SSlash = {s : Str ; c2 : Str} ;
---
----- Sentence
---
-    Cl = ResHin.Clause ;
---    ClSlash = {
---      s : ResHin.Tense => Anteriority => CPolarity => Order => Str ;
---      c2 : Str
---      } ;
---    Imp = {s : CPolarity => ImpForm => Str} ;
---
----- Question
---
---    QCl = {s : ResHin.Tense => Anteriority => CPolarity => QForm => Str} ;
---    IP = {s : Case => Str ; n : Number} ;
---    IComp = {s : Str} ;    
---    IDet = {s : Str ; n : Number} ;
---    IQuant = {s : Number => Str} ;
---
----- Relative
---
---    RCl = {
---      s : ResHin.Tense => Anteriority => CPolarity => Agr => Str ; 
---      c : Case
---      } ;
---    RP = {s : RCase => Str ; a : RAgr} ;
---
----- Verb
---
-    VP = ResHin.VPH ;
-    VPSlash = ResHin.VPHSlash ;
---    Comp = {s : Agr => Str} ; 
---
----- Adjective
---
-    AP = ResHin.Adjective ;
---
----- Noun
---
-    CN = ResHin.Noun ;
-    NP = ResHin.NP ;
-    Pron = {s : PronCase => Str ; a : Agr} ;
-    Det = {s : Gender => Case => Str ; n : Number} ;
---    Predet, Ord = {s : Str} ;
-    Num  = {s : Str ; n : Number} ;
---    Card = {s : Str; n : Number} ;
-    Quant = {s : Number => Gender => Case => Str} ;
-    Art = {s : Str} ;
---
----- Numeral
---
---    Numeral = {s : CardOrd => Str ; n : Number} ;
---    Digits  = {s : CardOrd => Str ; n : Number ; tail : DTail} ;
---
----- Structural
---
---    Conj = {s1,s2 : Str ; n : Number} ;
------b    Conj = {s : Str ; n : Number} ;
------b    DConj = {s1,s2 : Str ; n : Number} ;
---    Subj = {s : Str} ;
---    Prep = {s : Str} ;
---
----- Open lexical classes, e.g. Lexicon
---
-    V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
-    V2, V2A, V2Q, V2S = Verb ** {c2 : Compl} ;
---    V3 = Verb ** {c2, c3 : Str} ;
---    VV = {s : VVForm => Str ; isAux : Bool} ;
---    V2V = Verb ** {c2 : Str ; isAux : Bool} ;
---
-    A = ResHin.Adjective ; --- {s : Gender => Number => Case => Str} ;
---    A2 = {s : AForm => Str ; c2 : Str} ;
---
-    N = {s : Number => Case => Str ; g : Gender} ;
---    N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str} ;
---    N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Str} ;
-    PN = {s : Case => Str ; g : Gender} ;
---
-}
+concrete CatHin of Cat = CommonX - [Adv,AdN] ** CatHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/ConjunctionHin.gf b/lib/src/hindi/ConjunctionHin.gf
--- a/lib/src/hindi/ConjunctionHin.gf
+++ b/lib/src/hindi/ConjunctionHin.gf
@@ -1,37 +1,2 @@
-concrete ConjunctionHin of Conjunction = 
-  CatHin ** open ResHin, Coordination, Prelude in {
---
---  flags optimize=all_subs ;
---
---  lin
---
---    ConjS = conjunctDistrSS ;
---
---    ConjAdv = conjunctDistrSS ;
---
---    ConjNP conj ss = conjunctDistrTable Case conj ss ** {
---      a = conjAgr (agrP3 conj.n) ss.a
---      } ;
---
---    ConjAP conj ss = conjunctDistrTable Agr conj ss ** {
---      isPre = ss.isPre
---      } ;
---
----- These fun's are generated from the list cat's.
---
---    BaseS = twoSS ;
---    ConsS = consrSS comma ;
---    BaseAdv = twoSS ;
---    ConsAdv = consrSS comma ;
---    BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
---    ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
---    BaseAP x y = twoTable Agr x y ** {isPre = andB x.isPre y.isPre} ;
---    ConsAP xs x = consrTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
---
---  lincat
---    [S] = {s1,s2 : Str} ;
---    [Adv] = {s1,s2 : Str} ;
---    [NP] = {s1,s2 : Case => Str ; a : Agr} ;
---    [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ;
---
-}
+concrete ConjunctionHin of Conjunction = CatHin ** ConjunctionHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/DiffHin.gf b/lib/src/hindi/DiffHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/DiffHin.gf
@@ -0,0 +1,133 @@
+instance DiffHin of DiffHindustani = open CommonHindustani, Prelude in {
+oper
+Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = [] ;inf = Prelude.glue ((vp.s !  VPTense VPFutr agr).inf ++ hw p n) ((vp.s !  VPTense VPFutr agr).fin) } ;
+                                                   _    => {fin = [] ; inf = Prelude.glue (vp.s !  VPTense VPFutr agr).inf (vp.s !  VPTense VPFutr agr).fin  }} ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPerf agr).inf  ++ hw p n) (copula CFuture n p g) } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n) (copula CFuture n p g )} ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "Xयद" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "Xयद" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "कय" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "न" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "नहयं" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => {fin = [] ; inf = Prelude.glue (vp.s !  VPTense VPFutr agr).inf ((vp.s !  VPTense VPFutr agr).fin) }  ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ cka g n ++ hw p n) (copula CFuture n p g) } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g ) } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xयद"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "कय" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "न" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "नहयं" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+
+{- Verb : Type = {s : VerbForm => Str} ;
+
+ 
+ predV v = {
+         s = \\vh => 
+	   case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = v.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =v.s ! VF Perf p n g} ;
+                 VPTense VPFutr (Ag g n p) =>  {fin = [] ; inf = Prelude.glue (v.s ! VF Subj p n g) (copula CFuture n p g)} ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  v.s ! Root};
+		 _ => {fin = [] ; inf = v.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = v.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;
+-}      
+ np2pronCase ppf npc a = case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg =>case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => Prelude.glue (ppf ! Obl) "नै" ; -- in hindi in case of pronouns nE is tagged to pron rather than a separate word
+	   _			     => Prelude.glue (ppf ! Dir) "नै"
+	   }
+      } ;
+  
+}
diff --git a/lib/src/hindi/GrammarHin.gf b/lib/src/hindi/GrammarHin.gf
--- a/lib/src/hindi/GrammarHin.gf
+++ b/lib/src/hindi/GrammarHin.gf
@@ -1,22 +1,24 @@
---# -path=.:../abstract:../common:prelude
-
-concrete GrammarHin of Grammar = 
-  NounHin, 
-  VerbHin, 
-  AdjectiveHin,
-  AdverbHin,
-  NumeralHin,
-  SentenceHin,
-  QuestionHin,
-  RelativeHin,
-  ConjunctionHin,
-  PhraseHin,
-  TextX,
-  StructuralHin,
-  IdiomHin,
-  TenseX
-  ** {
-
-flags startcat = Phr ; unlexer = text ; lexer = text ;
-
-}
+--# -path=.:../abstract:../common:../prelude:c:/gf_unicoded/hindustani
+
+ concrete GrammarHin of Grammar = 
+  NounHin, 
+  VerbHin, 
+  AdjectiveHin,
+  AdverbHin,
+  NumeralHin,
+  SentenceHin,
+  QuestionHin,
+  RelativeHin,
+  ConjunctionHin,
+  PhraseHin,
+  TextX - [Adv,AdN],
+  StructuralHin,
+  TenseX - [Adv,AdN],
+  IdiomHin
+  ** {
+
+flags startcat = Phr ; unlexer = text ; lexer = text ;
+
+}
+
+
diff --git a/lib/src/hindi/IdiomHin.gf b/lib/src/hindi/IdiomHin.gf
--- a/lib/src/hindi/IdiomHin.gf
+++ b/lib/src/hindi/IdiomHin.gf
@@ -1,30 +1,39 @@
-concrete IdiomHin of Idiom = CatHin ** open Prelude, ResHin in {
---
---  flags optimize=all_subs ;
---
---  lin
---    ImpersCl vp = mkClause "it" (agrP3 Sg) vp ;
---    GenericCl vp = mkClause "one" (agrP3 Sg) vp ;
---
---    CleftNP np rs = mkClause "it" (agrP3 Sg) 
---      (insertObj (\\_ => rs.s ! np.a)
---        (insertObj (\\_ => np.s ! rs.c) (predAux auxBe))) ;
---
---    CleftAdv ad s = mkClause "it" (agrP3 Sg) 
---      (insertObj (\\_ => optStr conjThat ++ s.s)
---        (insertObj (\\_ => ad.s) (predAux auxBe))) ;
---
---    ExistNP np = 
---      mkClause "there" (agrP3 (fromAgr np.a).n) 
---        (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
---
---    ExistIP ip = 
---      mkQuestion (ss (ip.s ! Nom)) 
---        (mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
---
---    ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
---
---    ImpPl1 vp = {s = "let's" ++ infVP True vp (AgP1 Pl)} ;
---
-}
-
+concrete IdiomHin of Idiom = CatHin ** open Prelude,Predef, ResHin,ParamX,CommonHindustani in {
+
+  flags optimize=all_subs ;
+  flags coding = utf8;
+
+  lin
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
+    GenericCl vp = mkSClause "कwय" (agrP3 Masc Sg) vp ;
+
+   CleftNP np rs = 
+	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
+	  in 
+	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
+	  
+--    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
+        
+--     ExistNP np = 
+--      mkSClause "wहं" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
+--        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
+
+   ExistIP ip = 
+     let cl = mkSClause ("wहं" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+      ProgrVP vp =  (predProg vp) ;
+
+
+    ImpPl1 vp = {s = "ाw" ++ infVP True vp (agrP1 Masc Pl)} ;
+	ImpP3 np vp = {s = np.s!NPC Dir ++ "कw" ++ (vp.s ! VPImp ).inf ++ "दw"};
+
+
+}
+
diff --git a/lib/src/hindi/IrregHin.gf b/lib/src/hindi/IrregHin.gf
deleted file mode 100644
--- a/lib/src/hindi/IrregHin.gf
+++ /dev/null
@@ -1,181 +0,0 @@
-----# -path=.:prelude:../abstract:../common
---
---concrete IrregHin of IrregHinAbs = CatHin ** open ParadigmsHin in {
---
---flags optimize=values ;
---
---  lin
---  awake_V = irregV "awake" "awoke" "awoken" ;
---  bear_V = irregV "bear" "bore" "born" ;
---  beat_V = irregV "beat" "beat" "beat" ;
---  become_V = irregV "become" "became" "become" ;
---  begin_V = irregV "begin" "began" "begun" ;
---  bend_V = irregV "bend" "bent" "bent" ;
---  beset_V = irregV "beset" "beset" "beset" ;
---  bet_V = irregDuplV "bet" "bet" "bet" ;
---  bid_V = irregDuplV "bid" (variants {"bid" ; "bade"}) (variants {"bid" ; "bidden"}) ;
---  bind_V = irregV "bind" "bound" "bound" ;
---  bite_V = irregV "bite" "bit" "bitten" ;
---  bleed_V = irregV "bleed" "bled" "bled" ;
---  blow_V = irregV "blow" "blew" "blown" ;
---  break_V = irregV "break" "broke" "broken" ;
---  breed_V = irregV "breed" "bred" "bred" ;
---  bring_V = irregV "bring" "brought" "brought" ;
---  broadcast_V = irregV "broadcast" "broadcast" "broadcast" ;
---  build_V = irregV "build" "built" "built" ;
---  burn_V = irregV "burn" (variants {"burned" ; "burnt"}) (variants {"burned" ; "burnt"}) ;
---  burst_V = irregV "burst" "burst" "burst" ;
---  buy_V = irregV "buy" "bought" "bought" ;
---  cast_V = irregV "cast" "cast" "cast" ;
---  catch_V = irregV "catch" "caught" "caught" ;
---  choose_V = irregV "choose" "chose" "chosen" ;
---  cling_V = irregV "cling" "clung" "clung" ;
---  come_V = irregV "come" "came" "come" ;
---  cost_V = irregV "cost" "cost" "cost" ;
---  creep_V = irregV "creep" "crept" "crept" ;
---  cut_V = irregDuplV "cut" "cut" "cut" ;
---  deal_V = irregV "deal" "dealt" "dealt" ;
---  dig_V = irregDuplV "dig" "dug" "dug" ;
---  dive_V = irregV "dive" (variants {"dived" ; "dove"}) "dived" ;
---  do_V = mk5V "do" "does" "did" "done" "doing" ;
---  draw_V = irregV "draw" "drew" "drawn" ;
---  dream_V = irregV "dream" (variants {"dreamed" ; "dreamt"}) (variants {"dreamed" ; "dreamt"}) ;
---  drive_V = irregV "drive" "drove" "driven" ;
---  drink_V = irregV "drink" "drank" "drunk" ;
---  eat_V = irregV "eat" "ate" "eaten" ;
---  fall_V = irregV "fall" "fell" "fallen" ;
---  feed_V = irregV "feed" "fed" "fed" ;
---  feel_V = irregV "feel" "felt" "felt" ;
---  fight_V = irregV "fight" "fought" "fought" ;
---  find_V = irregV "find" "found" "found" ;
---  fit_V = irregDuplV "fit" "fit" "fit" ;
---  flee_V = irregV "flee" "fled" "fled" ;
---  fling_V = irregV "fling" "flung" "flung" ;
---  fly_V = irregV "fly" "flew" "flown" ;
---  forbid_V = irregDuplV "forbid" "forbade" "forbidden" ;
---  forget_V = irregDuplV "forget" "forgot" "forgotten" ;
---  forgive_V = irregV "forgive" "forgave" "forgiven" ;
---  forsake_V = irregV "forsake" "forsook" "forsaken" ;
---  freeze_V = irregV "freeze" "froze" "frozen" ;
---  get_V = irregDuplV "get" "got" "gotten" ;
---  give_V = irregV "give" "gave" "given" ;
---  go_V = mk5V "go" "goes" "went" "gone" "going" ;
---  grind_V = irregV "grind" "ground" "ground" ;
---  grow_V = irregV "grow" "grew" "grown" ;
---  hang_V = irregV "hang" "hung" "hung" ;
---  have_V = mk5V "have" "has" "had" "had" "having" ;
---  hear_V = irregV "hear" "heard" "heard" ;
---  hide_V = irregV "hide" "hid" "hidden" ;
---  hit_V = irregDuplV "hit" "hit" "hit" ;
---  hold_V = irregV "hold" "held" "held" ;
---  hurt_V = irregV "hurt" "hurt" "hurt" ;
---  keep_V = irregV "keep" "kept" "kept" ;
---  kneel_V = irregV "kneel" "knelt" "knelt" ;
---  knit_V = irregDuplV "knit" "knit" "knit" ;
---  know_V = irregV "know" "knew" "know" ;
---  lay_V = irregV "lay" "laid" "laid" ;
---  lead_V = irregV "lead" "led" "led" ;
---  leap_V = irregV "leap" (variants {"leaped" ; "lept"}) (variants {"leaped" ; "lept"}) ;
---  learn_V = irregV "learn" (variants {"learned" ; "learnt"}) (variants {"learned" ; "learnt"}) ;
---  leave_V = irregV "leave" "left" "left" ;
---  lend_V = irregV "lend" "lent" "lent" ;
---  let_V = irregDuplV "let" "let" "let" ;
---  lie_V = irregV "lie" "lay" "lain" ;
---  light_V = irregV "light" (variants {"lighted" ; "lit"}) "lighted" ;
---  lose_V = irregV "lose" "lost" "lost" ;
---  make_V = irregV "make" "made" "made" ;
---  mean_V = irregV "mean" "meant" "meant" ;
---  meet_V = irregV "meet" "met" "met" ;
---  misspell_V = irregV "misspell" (variants {"misspelled" ; "misspelt"}) (variants {"misspelled" ; "misspelt"}) ;
---  mistake_V = irregV "mistake" "mistook" "mistaken" ;
---  mow_V = irregV "mow" "mowed" (variants {"mowed" ; "mown"}) ;
---  overcome_V = irregV "overcome" "overcame" "overcome" ;
---  overdo_V = mk5V "overdo" "overdoes" "overdid" "overdone" "overdoing" ;
---  overtake_V = irregV "overtake" "overtook" "overtaken" ;
---  overthrow_V = irregV "overthrow" "overthrew" "overthrown" ;
---  pay_V = irregV "pay" "paid" "paid" ;
---  plead_V = irregV "plead" "pled" "pled" ;
---  prove_V = irregV "prove" "proved" (variants {"proved" ; "proven"}) ;
---  put_V = irregDuplV "put" "put" "put" ;
---  quit_V = irregDuplV "quit" "quit" "quit" ;
---  read_V = irregV "read" "read" "read" ;
---  rid_V = irregDuplV "rid" "rid" "rid" ;
---  ride_V = irregV "ride" "rode" "ridden" ;
---  ring_V = irregV "ring" "rang" "rung" ;
---  rise_V = irregV "rise" "rose" "risen" ;
---  run_V = irregDuplV "run" "ran" "run" ;
---  saw_V = irregV "saw" "sawed" (variants {"sawed" ; "sawn"}) ;
---  say_V = irregV "say" "said" "said" ;
---  see_V = irregV "see" "saw" "seen" ;
---  seek_V = irregV "seek" "sought" "sought" ;
---  sell_V = irregV "sell" "sold" "sold" ;
---  send_V = irregV "send" "sent" "sent" ;
---  set_V = irregDuplV "set" "set" "set" ;
---  sew_V = irregV "sew" "sewed" (variants {"sewed" ; "sewn"}) ;
---  shake_V = irregV "shake" "shook" "shaken" ;
---  shave_V = irregV "shave" "shaved" (variants {"shaved" ; "shaven"}) ;
---  shear_V = irregV "shear" "shore" "shorn" ;
---  shed_V = irregDuplV "shed" "shed" "shed" ;
---  shine_V = irregV "shine" "shone" "shone" ;
---  shoe_V = irregV "shoe" "shoed" (variants {"shoed" ; "shod"}) ;
---  shoot_V = irregV "shoot" "shot" "shot" ;
---  show_V = irregV "show" "showed" (variants {"showed" ; "shown"}) ;
---  shrink_V = irregV "shrink" "shrank" "shrunk" ;
---  shut_V = irregDuplV "shut" "shut" "shut" ;
---  sing_V = irregV "sing" "sang" "sung" ;
---  sink_V = irregV "sink" "sank" "sunk" ;
---  sit_V = irregDuplV "sit" "sat" "sat" ;
---  sleep_V = irregV "sleep" "slept" "slept" ;
---  slay_V = irregV "slay" "slew" "slain" ;
---  slide_V = irregV "slide" "slid" "slid" ;
---  sling_V = irregV "sling" "slung" "slung" ;
---  slit_V = irregDuplV "slit" "slit" "slit" ;
---  smite_V = irregV "smite" "smote" "smitten" ;
---  sow_V = irregV "sow" "sowed" (variants {"sowed" ; "sown"}) ;
---  speak_V = irregV "speak" "spoke" "spoken" ;
---  speed_V = irregV "speed" "sped" "sped" ;
---  spend_V = irregV "spend" "spent" "spent" ;
---  spill_V = irregV "spill" (variants {"spilled" ; "spilt"}) (variants {"spilled" ; "spilt"}) ;
---  spin_V = irregDuplV "spin" "spun" "spun" ;
---  spit_V = irregDuplV "spit" (variants {"spit" ; "spat"}) "spit" ;
---  split_V = irregDuplV "split" "split" "split" ;
---  spread_V = irregV "spread" "spread" "spread" ;
---  spring_V = irregV "spring" (variants {"sprang" ; "sprung"}) "sprung" ;
---  stand_V = irregV "stand" "stood" "stood" ;
---  steal_V = irregV "steal" "stole" "stolen" ;
---  stick_V = irregV "stick" "stuck" "stuck" ;
---  sting_V = irregV "sting" "stung" "stung" ;
---  stink_V = irregV "stink" "stank" "stunk" ;
---  stride_V = irregV "stride" "strod" "stridden" ;
---  strike_V = irregV "strike" "struck" "struck" ;
---  string_V = irregV "string" "strung" "strung" ;
---  strive_V = irregV "strive" "strove" "striven" ;
---  swear_V = irregV "swear" "swore" "sworn" ;
---  sweep_V = irregV "sweep" "swept" "swept" ;
---  swell_V = irregV "swell" "swelled" (variants {"swelled" ; "swollen"}) ;
---  swim_V = irregDuplV "swim" "swam" "swum" ;
---  swing_V = irregV "swing" "swung" "swung" ;
---  take_V = irregV "take" "took" "taken" ;
---  teach_V = irregV "teach" "taught" "taught" ;
---  tear_V = irregV "tear" "tore" "torn" ;
---  tell_V = irregV "tell" "told" "told" ;
---  think_V = irregV "think" "thought" "thought" ;
---  thrive_V = irregV "thrive" (variants {"thrived" ; "throve"}) "thrived" ;
---  throw_V = irregV "throw" "threw" "thrown" ;
---  thrust_V = irregV "thrust" "thrust" "thrust" ;
---  tread_V = irregV "tread" "trod" "trodden" ;
---  understand_V = irregV "understand" "understood" "understood" ;
---  uphold_V = irregV "uphold" "upheld" "upheld" ;
---  upset_V = irregDuplV "upset" "upset" "upset" ;
---  wake_V = irregV "wake" "woke" "woken" ;
---  wear_V = irregV "wear" "wore" "worn" ;
---  weave_V = irregV "weave" (variants {"weaved" ; "wove"}) (variants {"weaved" ; "woven"}) ;
---  wed_V = irregDuplV "wed" "wed" "wed" ;
---  weep_V = irregV "weep" "wept" "wept" ;
---  wind_V = irregV "wind" "wound" "wound" ;
---  win_V = irregDuplV "win" "won" "won" ;
---  withhold_V = irregV "withhold" "withheld" "withheld" ;
---  withstand_V = irregV "withstand" "withstood" "withstood" ;
---  wring_V = irregV "wring" "wrung" "wrung" ;
---  write_V = irregV "write" "wrote" "written" ;
---}
diff --git a/lib/src/hindi/LangHin.gf b/lib/src/hindi/LangHin.gf
--- a/lib/src/hindi/LangHin.gf
+++ b/lib/src/hindi/LangHin.gf
@@ -1,10 +1,10 @@
---# -path=.:../abstract:../common:../prelude
-
-concrete LangHin of Lang = 
-  GrammarHin,
-  LexiconHin
-  ** {
-
-flags startcat = Phr ; unlexer=unwords ; lexer=words ;
-
-}
+--# -path=.:../abstract:../common:../hindustani
+
+concrete LangHin of Lang = 
+  GrammarHin,
+  LexiconHin
+  ** {
+
+flags startcat = Phr ; unlexer=unwords ; lexer=words ;
+
+}
diff --git a/lib/src/hindi/LexiconHin.gf b/lib/src/hindi/LexiconHin.gf
--- a/lib/src/hindi/LexiconHin.gf
+++ b/lib/src/hindi/LexiconHin.gf
@@ -1,375 +1,369 @@
---# -path=.:prelude
-
-concrete LexiconHin of Lexicon = CatHin ** 
-  open ParadigmsHin, Prelude in {
-
-  flags 
-    optimize=values ;
-
-  lin
---  airplane_N = regN "airplane" ;
---  answer_V2S = mkV2S (regV "answer") toP ;
---  apartment_N = regN "apartment" ;
-  apple_N = mkN "seb" ;
---  art_N = regN "art" ;
---  ask_V2Q = mkV2Q (regV "ask") noPrep ;
---  baby_N = regN "baby" ;
---  bad_A = mkADeg "bad" "worse" "worst" "badly" ;
---  bank_N = regN "bank" ;
---  beautiful_A = compoundADeg (regA "beautiful") ;
---  become_VA = mkVA (irregV "become" "became" "become") ;
---  beer_N = regN "beer" ;
---  beg_V2V = mkV2V (regDuplV "beg") noPrep toP ;
-  big_A = mkA "baRA" ;
---  bike_N = regN "bike" ;
---  bird_N = regN "bird" ;
---  black_A = regADeg "black" ;
---  blue_A = regADeg "blue" ;
---  boat_N = regN "boat" ;
---  book_N = regN "book" ;
---  boot_N = regN "boot" ;
---  boss_N = mkN human (regN "boss") ;
-  boy_N = mkN "lar.kA" ;
-  bread_N = mkN "rot.I" ;
---  break_V2 = dirV2 (irregV "break" "broke" "broken") ;
---  broad_A = regADeg "broad" ;
---  brother_N2 = mkN2 (mkN masculine (mkN "brother")) (mkPrep "of") ;
---  brown_A = regADeg "brown" ;
---  butter_N = regN "butter" ;
---  buy_V2 = dirV2 (irregV "buy" "bought" "bought") ;
---  camera_N = regN "camera" ;
---  cap_N = regN "cap" ;
---  car_N = regN "car" ;
---  carpet_N = regN "carpet" ;
---  cat_N = regN "cat" ;
---  ceiling_N = regN "ceiling" ;
---  chair_N = regN "chair" ;
---  cheese_N = regN "cheese" ;
---  child_N = mk2N "child" "children" ;
---  church_N = regN "church" ;
---  city_N = regN "city" ;
---  clean_A = regADeg "clean" ;
---  clever_A = regADeg "clever" ;
---  close_V2 = dirV2 (regV "close") ;
---  coat_N = regN "coat" ;
---  cold_A = regADeg "cold" ;
---  come_V = (irregV "come" "came" "come") ;
---  computer_N = regN "computer" ;
---  country_N = regN "country" ;
---  cousin_N = mkN human (regN "cousin") ;
---  cow_N = regN "cow" ;
---  die_V = (regV "die") ;
---  dirty_A = regADeg "dirty" ;
---  distance_N3 = mkN3 (regN "distance") fromP toP ;
---  doctor_N = mkN human (regN "doctor") ;
---  dog_N = regN "dog" ;
---  door_N = regN "door" ;
---  drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ;
---  easy_A2V = mkA2V (regA "easy") forP ;
-  eat_V2 = mkV2 "KA" ;
---  empty_A = regADeg "empty" ;
---  enemy_N = regN "enemy" ;
---  factory_N = regN "factory" ;
---  father_N2 = mkN2 (mkN masculine (mkN "father")) (mkPrep "of") ;
---  fear_VS = mkVS (regV "fear") ;
---  find_V2 = dirV2 (irregV "find" "found" "found") ;
---  fish_N = mk2N "fish" "fish" ;
---  floor_N = regN "floor" ;
---  forget_V2 = dirV2 (irregDuplV "forget" "forgot" "forgotten") ;
---  fridge_N = regN "fridge" ;
---  friend_N = mkN human (regN "friend") ;
---  fruit_N = regN "fruit" ;
---  fun_AV = mkAV (regA "fun") ;
---  garden_N = regN "garden" ;
-  girl_N = mkN "lar.kI" ;
---  glove_N = regN "glove" ;
---  gold_N = regN "gold" ;
-  good_A = mkA "a-cCA" ;
-  go_V = mkV "cal" ;
---  green_A = regADeg "green" ;
---  harbour_N = regN "harbour" ;
---  hate_V2 = dirV2 (regV "hate") ;
---  hat_N = regN "hat" ;
---  have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
---  hear_V2 = dirV2 (irregV "hear" "heard" "heard") ;
---  hill_N = regN "hill" ;
---  hope_VS = mkVS (regV "hope") ;
---  horse_N = regN "horse" ;
---  hot_A = duplADeg "hot" ;
---  house_N = regN "house" ;
---  important_A = compoundADeg (regA "important") ;
---  industry_N = regN "industry" ;
---  iron_N = regN "iron" ;
---  king_N = mkN masculine (regN "king") ;
---  know_V2 = dirV2 (irregV "know" "knew" "known") ;
---  lake_N = regN "lake" ;
---  lamp_N = regN "lamp" ;
---  learn_V2 = dirV2 (regV "learn") ;
---  leather_N = regN "leather" ;
---  leave_V2 = dirV2 (irregV "leave" "left" "left") ;
---  like_V2 = dirV2 (regV "like") ;
---  listen_V2 = prepV2 (regV "listen") toP ;
-  live_V = mkV "CU" ; ---- touch
---  long_A = regADeg "long" ;
---  lose_V2 = dirV2 (irregV "lose" "lost" "lost") ;
---  love_N = regN "love" ;
---  love_V2 = dirV2 (regV "love") ;
---  man_N = mkN masculine (mk2N "man" "men") ;
---  married_A2 = mkA2 (regA "married") toP ;
---  meat_N = regN "meat" ;
---  milk_N = regN "milk" ;
---  moon_N = regN "moon" ;
---  mother_N2 = mkN2 (mkN feminine (mkN "mother")) (mkPrep "of") ;
---  mountain_N = regN "mountain" ;
---  music_N = regN "music" ;
---  narrow_A = regADeg "narrow" ;
---  new_A = regADeg "new" ;
---  newspaper_N = regN "newspaper" ;
---  oil_N = regN "oil" ;
---  old_A = regADeg "old" ;
---  open_V2 = dirV2 (regV "open") ;
---  paint_V2A = mkV2A (regV "paint") noPrep ;
---  paper_N = regN "paper" ;
---  paris_PN = mkPN (mkN nonhuman (mkN "Paris")) ;
---  peace_N = regN "peace" ;
---  pen_N = regN "pen" ;
---  planet_N = regN "planet" ;
---  plastic_N = regN "plastic" ;
---  play_V2 = dirV2 (regV "play") ;
---  policeman_N = mkN masculine (mkN "policeman" "policemen") ;
---  priest_N = mkN human (regN "priest") ;
---  probable_AS = mkAS (regA "probable") ;
---  queen_N = mkN feminine (regN "queen") ;
---  radio_N = regN "radio" ;
---  rain_V0 = mkV0 (regV "rain") ;
---  read_V2 = dirV2 (irregV "read" "read" "read") ;
-  red_A = mkA "lAl" ;
---  religion_N = regN "religion" ;
---  restaurant_N = regN "restaurant" ;
---  river_N = regN "river" ;
---  rock_N = regN "rock" ;
---  roof_N = regN "roof" ;
---  rubber_N = regN "rubber" ;
---  run_V = (irregDuplV "run" "ran" "run") ;
---  say_VS = mkVS (irregV "say" "said" "said") ;
---  school_N = regN "school" ;
---  science_N = regN "science" ;
---  sea_N = regN "sea" ;
---  seek_V2 = dirV2 (irregV "seek" "sought" "sought") ;
---  see_V2 = dirV2 (irregV "see" "saw" "seen") ;
---  sell_V3 = dirV3 (irregV "sell" "sold" "sold") toP ;
---  send_V3 = dirV3 (irregV "send" "sent" "sent") toP ;
---  sheep_N = mk2N "sheep" "sheep" ;
---  ship_N = regN "ship" ;
---  shirt_N = regN "shirt" ;
---  shoe_N = regN "shoe" ;
---  shop_N = regN "shop" ;
---  short_A = regADeg "short" ;
---  silver_N = regN "silver" ;
---  sister_N = mkN2 (mkN feminine (mkN "sister")) (mkPrep "of") ;
---  sleep_V = (irregV "sleep" "slept" "slept") ;
---  small_A = regADeg "small" ;
---  snake_N = regN "snake" ;
---  sock_N = regN "sock" ;
---  speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ;
---  star_N = regN "star" ;
---  steel_N = regN "steel" ;
---  stone_N = regN "stone" ;
---  stove_N = regN "stove" ;
---  student_N = mkN human (regN "student") ;
---  stupid_A = regADeg "stupid" ;
---  sun_N = regN "sun" ;
---  switch8off_V2 = dirV2 (partV (regV "switch") "off") ;
---  switch8on_V2 = dirV2 (partV (regV "switch") "on") ;
---  table_N = regN "table" ;
---  talk_V3 = mkV3 (regV "talk") toP aboutP ;
---  teacher_N = mkN human (regN "teacher") ;
---  teach_V2 = dirV2 (irregV "teach" "taught" "taught") ;
---  television_N = regN "television" ;
---  thick_A = regADeg "thick" ;
---  thin_A = duplADeg "thin" ;
---  train_N = regN "train" ;
---  travel_V = (regDuplV "travel") ;
---  tree_N = regN "tree" ;
--- ---- trousers_N = regN "trousers" ;
---  ugly_A = regADeg "ugly" ;
---  understand_V2 = dirV2 (irregV "understand" "understood" "understood") ;
---  university_N = regN "university" ;
---  village_N = regN "village" ;
---  wait_V2 = prepV2 (regV "wait") forP ;
---  walk_V = (regV "walk") ;
---  warm_A = regADeg "warm" ;
---  war_N = regN "war" ;
---  watch_V2 = dirV2 (regV "watch") ;
---  water_N = regN "water" ;
---  white_A = regADeg "white" ;
---  window_N = regN "window" ;
---  wine_N = regN "wine" ;
---  win_V2 = dirV2 (irregDuplV "win" "won" "won") ;
---  woman_N = mkN feminine (mk2N "woman" "women") ;
---  wonder_VQ = mkVQ (regV "wonder") ;
---  wood_N = regN "wood" ;
---  write_V2 = dirV2 (irregV "write" "wrote" "written") ;
---  yellow_A = regADeg "yellow" ;
---  young_A = regADeg "young" ;
---
---  do_V2 = dirV2 (mk5V "do" "does" "did" "done" "doing") ;
---  now_Adv = mkAdv "now" ;
---  already_Adv = mkAdv "already" ;
---  song_N = regN "song" ;
---  add_V3 = dirV3 (regV "add") toP ;
---  number_N = regN "number" ;
---  put_V2 = prepV2 (irregDuplV "put" "put" "put") noPrep ;
---  stop_V = regDuplV "stop" ;
---  jump_V = regV "jump" ;
---
---  left_Ord = ss "left" ;
---  right_Ord = ss "right" ;
---  far_Adv = mkAdv "far" ;
---  correct_A = (regA "correct") ;
---  dry_A = regA "dry" ;
---  dull_A = regA "dull" ;
---  full_A = regA "full" ;
---  heavy_A = regA "heavy" ;
---  near_A = regA "near" ;
---  rotten_A = (regA "rotten") ;
---  round_A = regA "round" ;
---  sharp_A = regA "sharp" ;
---  smooth_A = regA "smooth" ;
---  straight_A = regA "straight" ;
---  wet_A = regA "wet" ; ----
---  wide_A = regA "wide" ;
---  animal_N = regN "animal" ;
---  ashes_N = regN "ash" ; -- FIXME: plural only?
---  back_N = regN "back" ;
---  bark_N = regN "bark" ;
---  belly_N = regN "belly" ;
---  blood_N = regN "blood" ;
---  bone_N = regN "bone" ;
---  breast_N = regN "breast" ;
---  cloud_N = regN "cloud" ;
---  day_N = regN "day" ;
---  dust_N = regN "dust" ;
---  ear_N = regN "ear" ;
---  earth_N = regN "earth" ;
---  egg_N = regN "egg" ;
---  eye_N = regN "eye" ;
---  fat_N = regN "fat" ;
---  feather_N = regN "feather" ;
---  fingernail_N = regN "fingernail" ;
---  fire_N = regN "fire" ;
---  flower_N = regN "flower" ;
---  fog_N = regN "fog" ;
---  foot_N = mk2N "foot" "feet" ;
---  forest_N = regN "forest" ;
---  grass_N = regN "grass" ;
---  guts_N = regN "gut" ; -- FIXME: no singular
---  hair_N = regN "hair" ;
---  hand_N = regN "hand" ;
---  head_N = regN "head" ;
---  heart_N = regN "heart" ;
---  horn_N = regN "horn" ;
---  husband_N = mkN masculine (regN "husband") ;
---  ice_N = regN "ice" ;
---  knee_N = regN "knee" ;
---  leaf_N = mk2N "leaf" "leaves" ;
---  leg_N = regN "leg" ;
---  liver_N = regN "liver" ;
---  louse_N = mk2N "louse" "lice" ;
---  mouth_N = regN "mouth" ;
---  name_N = regN "name" ;
---  neck_N = regN "neck" ;
---  night_N = regN "night" ;
---  nose_N = regN "nose" ;
---  person_N = mkN human (regN "person") ;
---  rain_N = regN "rain" ;
---  road_N = regN "road" ;
---  root_N = regN "root" ;
---  rope_N = regN "rope" ;
---  salt_N = regN "salt" ;
---  sand_N = regN "sand" ;
---  seed_N = regN "seed" ;
---  skin_N = regN "skin" ;
---  sky_N = regN "sky" ;
---  smoke_N = regN "smoke" ;
---  snow_N = regN "snow" ;
---  stick_N = regN "stick" ;
---  tail_N = regN "tail" ;
---  tongue_N = regN "tongue" ;
---  tooth_N = mk2N "tooth" "teeth" ;
---  wife_N = mkN feminine (mk2N "wife" "wives") ;
---  wind_N = regN "wind" ;
---  wing_N = regN "wing" ;
---  worm_N = regN "worm" ;
---  year_N = regN "year" ;
---  blow_V = IrregHin.blow_V ;
---  breathe_V = dirV2 (regV "breathe") ;
---  burn_V = IrregHin.burn_V ;
---  dig_V = IrregHin.dig_V ;
---  fall_V = IrregHin.fall_V ;
---  float_V = regV "float" ;
---  flow_V = regV "flow" ;
---  fly_V = IrregHin.fly_V ;
---  freeze_V = IrregHin.freeze_V ;
---  give_V3 = dirV3 give_V toP ;
---  laugh_V = regV "laugh" ;
---  lie_V = IrregHin.lie_V ;
---  play_V = regV "play" ;
-  sew_V = mkV "sI" ;
---  sing_V = IrregHin.sing_V ;
---  sit_V = IrregHin.sit_V ;
---  smell_V = regV "smell" ;
---  spit_V = IrregHin.spit_V ;
---  stand_V = IrregHin.stand_V ;
---  swell_V = IrregHin.swell_V ;
---  swim_V = IrregHin.swim_V ;
---  think_V = IrregHin.think_V ;
---  turn_V = regV "turn" ;
---  vomit_V = regV "vomit" ;
---
---  bite_V2 = dirV2 IrregHin.bite_V ;
---  count_V2 = dirV2 (regV "count") ;
---  cut_V2 = dirV2 IrregHin.cut_V ;
---  fear_V2 = dirV2 (regV "fear") ;
---  fight_V2 = dirV2 fight_V ;
-  hit_V2 = mkV2 (mkV "mAr") "ko" ;
---  hold_V2 = dirV2 hold_V ;
---  hunt_V2 = dirV2 (regV "hunt") ;
---  kill_V2 = dirV2 (regV "kill") ;
---  pull_V2 = dirV2 (regV "pull") ;
---  push_V2 = dirV2 (regV "push") ;
---  rub_V2 = dirV2 (regDuplV "rub") ;
---  scratch_V2 = dirV2 (regV "scratch") ;
---  split_V2 = dirV2 split_V ;
---  squeeze_V2 = dirV2 (regV "squeeze") ;
---  stab_V2 = dirV2 (regDuplV "stab") ;
---  suck_V2 = dirV2 (regV "suck") ;
---  throw_V2 = dirV2 throw_V ;
---  tie_V2 = dirV2 (regV "tie") ;
---  wash_V2 = dirV2 (regV "wash") ;
---  wipe_V2 = dirV2 (regV "wipe") ;
---
-----  other_A = regA "other" ;
---
---  grammar_N = regN "grammar" ;
---  language_N = regN "language" ;
---  rule_N = regN "rule" ;
---
----- added 4/6/2007
-    john_PN = mkPN "jon" ;
---    question_N = regN "question" ;
---    ready_A = regA "ready" ;
---    reason_N = regN "reason" ;
---    today_Adv = mkAdv "today" ;
---    uncertain_A = regA "uncertain" ;
---
---oper
---  aboutP = mkPrep "about" ;
---  atP = mkPrep "at" ;
---  forP = mkPrep "for" ;
---  fromP = mkPrep "from" ;
---  inP = mkPrep "in" ;
---  onP = mkPrep "on" ;
---  toP = mkPrep "to" ;
---
-}
+--# -path=.:prelude
+
+concrete LexiconHin of Lexicon = CatHin ** 
+--open ResHin, Prelude in {
+  open ParadigmsHin, Prelude in {
+
+  flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN "जHज" ;
+--  answer_V2S = mkV2  (compoundV "जwब" (mkV "दयन")) ;
+--  apartment_N = mkN "कमरह" ;
+  apple_N = mkN "सयब" ;
+--  art_N = mkN "fन" ;
+  ask_V2Q = mkV2 (mkV "पwचHन") ;
+--  baby_N = mkN "बचH" ;
+  bad_A = mkA "बर" ;
+  bank_N = mkN "बयनक" ;
+  beautiful_A = mkA "सनदर" ;
+  become_VA = mkV "बनन";
+  beer_N = mkN "बेेर" ;
+--  beg_V2V =  mkV2V (compoundV "लतज" (mkV "करन")) "सै" "कह" False;
+  big_A = mkA "बृ" ;
+--  bike_N = mkN "सयचल" feminine ;
+--  bird_N = mkN "परनदह" ;
+  black_A =  mkA "कल" ;
+  blue_A = mkA "नयल" ;
+  boat_N = mkN "नw" ;
+  book_N = mkN "कतब" feminine ;
+--  boot_N = mkN "जwत" ;
+  boss_N = mkN "मलक" ;
+  boy_N = mkN "लृक" ;
+  bread_N = mkN "रwतय" ;
+  break_V2 = mkV2 (mkV "तwृन") ;
+  broad_A = mkA "चwृ" ;
+  brother_N2 = mkN2 (mkN "बHय") (mkPrep "क" "क") "कै" ; --not correct
+  brown_A = mkA "बHwर" ;
+--  butter_N = mkN "मकh-न" ;
+  buy_V2 = mkV2 (mkV "खरयदन");
+  camera_N = mkN "कयमरH" ;
+  cap_N = mkN "तwपय" ;
+  car_N = mkN "कर" ;
+--  carpet_N = mkN "तपy^य" ;
+  cat_N = mkN "बलय" feminine;
+--  ceiling_N = mkN "चh-त" feminine ;
+  chair_N = mkN "करसय" ;
+--  cheese_N = mkN "पनयर" feminine ;
+  child_N = mkN "बचH"  ;
+  church_N = mkN "गरज" ;
+  city_N = mkN "XHर" ;
+  clean_A = mkA "सf" ;
+  clever_A = mkA "चतर" ;  
+  close_V2 =  mkV2 (compoundV "बनद" do_V2); 
+  coat_N = mkN "कwथ" ;
+  cold_A = mkA "सरद" ;
+  come_V = mkV "ान" ;
+  computer_N = mkN "कमपयwथर" ;
+  country_N = mkN "दयX" ;
+--  cousin_N = mkCmpdNoun "चच" (mkN "ज़द") ; -- a compund noun made of two nouns
+  cow_N = mkN "गै" feminine ;
+  die_V = mkV "मरन" ;
+  dirty_A = mkA "गनद" ;
+--  distance_N3 = mkN3 (mkN "fशलह") (mkPrep "क") "कै" "सै"  ;
+  doctor_N = mkN "दकतर" ;
+  dog_N = mkN "कत" ;
+  door_N = mkN "दरwज़" ;
+  drink_V2 = mkV2 (mkV "पयन");
+  easy_A2V = mkA "ासन" "" ; -- chek for A or a
+  eat_V2 = mkV2 (mkV "कHन") "" ;
+  empty_A = mkA "खलय" ;
+  enemy_N = mkN "दXमन" ;
+  factory_N = mkN "करखन" ;
+-- father_N2 = mkN2 (mkN "पत" irregular) (mkPrep "क") "कै"  ;
+  fear_VS = mkV "दृन";
+  find_V2 = mkV2 (mkV "दHwनद") ;
+  fish_N = mkN "मचHलय" ;
+  floor_N = mkN "fरX" ;
+  forget_V2 = mkV2 (mkV "बHwलन")  ;
+--  fridge_N = mkN "fरयग" ;
+  friend_N = mkN "दwसत" masculine ;
+  fruit_N = mkN "पHल" ;
+--  fun_AV = mkAV (regA "fुन") ;
+  garden_N = mkN "बघ" ; -- chek for G
+  girl_N = mkN "लृकय" ;
+  glove_N = mkN "दसतन" ;
+  gold_N = mkN "सwन" ;
+  good_A = mkA "चH" ;
+  go_V = mkV "जन" ;
+  green_A = mkA "Hर" ;
+--  harbour_N = mkCmpdNoun "बनदर" (mkN "गह") ;
+  hate_V2 = mkV2 (compoundV "नfरत" do_V2) ;
+  hat_N = mkN "थwपय" ;
+--  have_V2 = dirV2 (mk5V "हवे" "हस" "हद" "हद" "हविनग") ;
+  hear_V2 = mkV2 (mkV "सनन") ;
+--  hill_N = mkN "पहृय" ;
+--  hope_VS = (compoundV "मयद" do_V2);
+  horse_N = mkN "गHwृ" ;
+  hot_A = mkA "गरम" ;
+  house_N = mkN "गHर" ;
+  important_A = mkA "ज़रwरय" ;  -- check about z
+--  industry_N = mkN "शनेत" feminine ;
+  iron_N = mkN "लwH" ;
+  king_N = mkN "रज" ;
+  know_V2 = mkV2 (mkV "जनन") ;
+  know_VS = mkV "जनन";
+--  lake_N = mkN "जh-यल" feminine ;
+  lamp_N = mkN "दय" ;
+  learn_V2 = mkV2 (mkV "सयकHन") ;
+--  leather_N = mkN "चमृ" ;
+  leave_V2 = mkV2 (mkV "चलन") ;
+  like_V2 = mkV2 (compoundV "पसनद" do_V2);
+  listen_V2 = mkV2 (mkV "सनन") ;
+  live_V = mkV "रहन" ; ---- touch
+  long_A = mkA "लमब" ;
+  lose_V2 = mkV2 (compoundV "कHw" do_V2) ;
+  love_N = mkN "परयम" ;
+  love_V2 = mkV2 (compoundV "पयर" do_V2) "कw";
+  man_N = mkN "ादमय" ;
+--  married_A2 = mkA "Xदय " "सै" ;
+  meat_N = mkN "मस" ;
+  milk_N = mkN "दwदH" ;
+  moon_N = mkN "चनद" ;
+  mother_N2 = mkN2 (mkN "मत" feminine) (mkPrep "कय" "कय") "कै";   -- not covered need to be discussed
+--  mountain_N = mkN "पहृय" ;
+  music_N = mkN "सनगयत" ;
+--  narrow_A = mkA "बरयक" ;
+  new_A = mkA "नय" ;
+  newspaper_N = mkN "खबर" ;
+  oil_N = mkN "तयल" ;
+  old_A = mkA "बwृH" ;
+  open_V2 = mkV2 (mkV "कHwलन") ;
+--  paint_V2A = mkV2 (compoundV "रनग" do_V2) ;
+  paper_N = mkN "कघज़" ;
+  paris_PN = mkPN "पयरस" ;
+  peace_N = mkN "मन" ;
+  pen_N = mkN "qलम" ;
+--  planet_N = mkN "सयरह" ;
+--  plastic_N = mkN "पलसथक" ;
+  play_V2 = mkV2 (mkV "कHयलन") ;
+--  policeman_N = mkCmpdNoun "पwलयस" (mkN "wल") ; 
+--  priest_N = (mkN "पयघमबर") ;
+--  probable_AS = mkAS (regA "परॉबबले") ;
+--  queen_N = mkN "Xहज़दय" ;
+--  radio_N = mkN "रयधयw" ;
+  rain_V0 = compoundV "बरX" (mkV "Hwन" ) ;
+  read_V2 = mkV2 (mkV "पृHन");
+  red_A = mkA "लल" ;
+  religion_N = mkN "दHरम" ;
+--  restaurant_N = mkN "हwथल" ;
+  river_N = mkN "दरय" masculine ;
+  rock_N = mkN "चथन" ;
+  roof_N = mkN "चh-त" masculine ;
+--  rubber_N = mkN "रबृ" ;
+  run_V = mkV "दwृन" ;
+  say_VS = mkV "कHन" ;
+  school_N = mkN "मकतब" ;
+--  science_N = mkN "सनस" ; -- vgyan
+  sea_N = mkN "समनदर" ;
+--  seek_V2 = mkV2 (compoundV "तलX" do_V2) ;
+  see_V2 = mkV2 (mkV "दयकHन") ;
+  sell_V3 = mkV3 (mkV "बयचन") "कw" "";
+  send_V3 = mkV3 (mkV "बHयजन") "कw" "";
+  sheep_N = mkN "बHयृ" feminine ;
+  ship_N = mkN "जHज़" ;
+  shirt_N = mkN "करत" feminine;
+  shoe_N = mkN "जwत" ;
+  shop_N = mkN "दwकन" feminine ;
+  short_A = mkA "चHwथ" ;
+  silver_N = mkN "चनदय" ;
+  sister_N = mkN "बHन" feminine ;
+  sleep_V = mkV "सwन" ;
+  small_A = mkA "चHwथ" ;
+  snake_N = mkN "सनप" ;
+--  sock_N = mkN "जरब" feminine ;
+  speak_V2 = mkV2 (mkV "बwलन") ;
+  star_N = mkN "तर" ;
+--  steel_N = mkN "सतयल" ; -- something like ispat
+  stone_N = mkN "पतHर" ;
+--  stove_N = mkN "चwलह" ;
+--  student_N = mkCmpdNoun "t-लब" (mkN "ेलम") ; -- something vidrati
+  stupid_A = mkA "बैwqwf" ;
+--  sun_N = mkN "सwरज" ; -- swrya
+  switch8off_V2 =  mkV2 (compoundV "बनद" do_V2) ;
+  switch8on_V2 = mkV2 (mkV "चलन") ;
+  table_N = mkN "मयज़" feminine ;
+  talk_V3 = mkV3 (mkV "बwलन") "सै" "कै बरै में";
+--  teacher_N = mkN "िसतद" ; -- adyapak
+  teach_V2 = mkV2 (mkV "पृHन") ;
+  television_N = mkN "तयwय" ;
+  thick_A = mkA "मwथ" ;
+  thin_A = mkA "पतल" ;
+  train_N = mkN "रयल गृय" ;
+  travel_V = (compoundV "सfर" do_V2) ;
+--  tree_N = mkN "पयृ" masculine ;
+-- ---- trousers_N = mkN "तरॉुसेरस" ;
+  ugly_A = mkA "बदसwरत" ;
+  understand_V2 = mkV2 (mkV "समजHन") ;
+--  university_N = mkN "यwनयwरसथय" ;
+  village_N = mkN "गwं" ; -- check for n or N
+--  wait_V2 = mkV2 (compoundV "नतz-र" do_V2) "क" ; -- something prtkXa
+  walk_V = mkV "चलन" ;
+--  warm_A = mkA "गरम" ; something gngna
+--  war_N = mkN "जनग" ;
+  watch_V2 = mkV2 (mkV "दयकHन") ;
+--  water_N = mkN "पनय" masculine ; -- not covered masculine ending with y
+  white_A = mkA "सfयद" ;
+  window_N = mkN "रwXनदन" ;
+--  wine_N = mkN "Xरब" feminine ;
+  win_V2 = mkV2 (mkV "जयतन") ;
+  woman_N = mkN "ेwरत" feminine ;
+--  wonder_VQ = compoundV "Hेरन" (mkV "हwन") ;
+  wood_N = mkN "लकृय" ;
+  write_V2 = mkV2 (mkV "लकh-न") ;
+  yellow_A = mkA "पयल" ;
+  young_A = mkA "जwन" ;
+  do_V2 = mkV2 (mkV "करन")  ;
+--  now_Adv = mkAdv "ब" ;
+--  already_Adv = mkAdv "पहलै हय" ;
+  song_N = mkN "गयत" ;
+  add_V3 = mkV3 (compoundV "जमे" do_V2) "" "" ;
+--  number_N = mkN "हनदसह" ;
+--  put_V2 = mkV2 (mkV "धलन") ;
+  stop_V = mkV "रकन"  ;
+--  jump_V = compoundV "चHलनग" (mkV "लगन") feminine ;
+
+--  left_Ord = {s = "बयं" ; n = singular};
+--  right_Ord = {s= "दयं" ; n = singular};
+--  far_Adv = mkAdv "दwर" ;
+  correct_A = mkA "सयH" ;
+  dry_A = mkA "सwकH" ;
+--  dull_A = mkA "नलिक" ;
+--  full_A = mkA "मकमल" ;
+  heavy_A = mkA "बHरय" ;
+  near_A = mkA "पस" ;
+--  rotten_A = mkA "खरब" ;
+  round_A = mkA "गwल" ;
+  sharp_A = mkA "तयज़" ;
+  smooth_A = mkA "चकन" ;
+  straight_A = mkA "सयदH" ;
+  wet_A = mkA "गयल" ; ----
+  wide_A = mkA "चwृ" ;
+  animal_N = mkN "जनwर" ;
+  ashes_N = mkN "रकh-" feminine; -- FIXME: plural only?
+--  back_N = mkN "qमर" feminine ;
+--  bark_N = mkN "बरक" ;
+--  belly_N = mkN "दh-नय" ;
+--  blood_N = mkN "खwन" ;
+  bone_N = mkN "Hधय" feminine ;
+--  breast_N = mkN "चh-तय" ; --stan
+  cloud_N = mkN "बदल" ;
+  day_N = mkN "दन" ;
+  dust_N = mkN "दHwल" ;
+  ear_N = mkN "कन" ;
+--  earth_N = mkN "ज़मयन" feminine ;
+  egg_N = mkN "नधH" ;
+  eye_N = mkN "ानकH" feminine ;
+  fat_N = mkN "मwत" ;
+  feather_N = mkN "पनकH" ;
+--  fingernail_N = mkN "नखन" ;
+  fire_N = mkN "ाग" feminine ;
+  flower_N = mkN "पHwल" ;
+  fog_N = mkN "दHनद" feminine ;
+  foot_N = mkN "पwं" ; -- not properly covered need to be discussed
+  forest_N = mkN "जनगल" ;
+  grass_N = mkN "गHस" feminine ;
+--  guts_N = mkN "गुत" ; -- FIXME: no singular
+  hair_N = mkN "बल" ;
+  hand_N = mkN "HतH" ;
+  head_N = mkN "सर" ;
+  heart_N = mkN "दल" ;
+--  horn_N = mkN "गh-नतय" ;
+  husband_N = mkN "पतय" ;
+  ice_N = mkN "बरf" feminine ;
+  knee_N = mkN "गHतनH" ;
+  leaf_N = mkN "पतH" ;
+  leg_N = mkN "तनग" feminine ;
+  liver_N = mkN "कलयजH" ;
+--  louse_N = mkN "" ; -- jwN
+  mouth_N = mkN "मनH" ; 
+  name_N = mkN "नम" ;
+  neck_N = mkN "गरदन" feminine ;
+  night_N = mkN "रत" feminine ;
+  nose_N = mkN "नक" ;
+--  person_N = mkN "Xखश" ;
+  rain_N = mkN "बरX" feminine ;
+  road_N = mkN "सृक" ;
+  root_N = mkN "गृ" feminine ;
+  rope_N = mkN "रसय" ;
+  salt_N = mkN "नमक" feminine ;
+  sand_N = mkN "रयत" feminine ;
+  seed_N = mkN "बयज"  ;
+--  skin_N = mkN "जलद" feminine ; -- crm
+  sky_N = mkN "मबर" ;
+  smoke_N = mkN "दHwं"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN "बरf" feminine ;
+  stick_N = mkN "सॉथय" ;
+  tail_N = mkN "दम" ;
+--  tongue_N = mkN "ज़बन" feminine ;
+--  tooth_N = mkN "दनत" masculine;
+  wife_N = mkN "पतनय" ;
+  wind_N = mkN "Hw" ;
+--  wing_N = mkN "पर" ;
+  worm_N = mkN "कयृ" ;
+  year_N = mkN "सल" ;
+--  blow_V = mkV "चलन" ;
+  breathe_V = compoundV "सनस" (mkV "लयन" ) ;
+  burn_V = mkV "जलन" ;
+  dig_V = mkV "कHwदन" ;
+  fall_V = mkV "गरन" ;
+--  float_V = mkV "तयरन" ;
+  flow_V = mkV  "चलन" ;
+  fly_V = mkV "ृन" ;
+--  freeze_V = mkV "जमन";
+  give_V3 = mkV3 (mkV "दयन") "कw" "";
+  laugh_V = mkV "हनसन" ;
+--  lie_N = mkN "जh-wत" masculine ;
+  lie_V = compoundV "जHwत" (mkV "बwलन" );
+  play_V = mkV "कHयलन" ;
+  sew_V = mkV "सयन" ;
+  sing_V = mkV "गन" ;
+  sit_V = mkV "बयथHन" ;
+  smell_V = mkV "सwनगन" ;
+  spit_V = mkV "तHwकन" ;
+  stand_V = compoundV "कHृै" (mkV "हwन" ); -- a type of compound verb made of two verbs i.e 'kHRa' also inflects, rather than a string and verb should be fixed
+--  swell_V = mkV "सwजh-न" ;
+  swim_V = mkV "तयरन" ;
+  think_V = mkV "सwचन" ;
+  turn_V = mkV "मृन";
+--  vomit_V = compoundV "लतय" (mkV "करन") feminine ;
+  bite_V2 = mkV2 (mkV "कतन") ;
+  count_V2 = mkV2 (mkV "गनन") ;
+  cut_V2 = mkV2 (mkV "कतन") ;
+  fear_V2 = mkV2 (mkV "धरन") ;
+  fight_V2 = mkV2 (mkV "लृन") ;
+--  hit_V2 = mkV2 (compoundV "तh-wकर" (mkV "मरन" ));
+  hold_V2 = mkV2 (mkV "पकृन") ;
+--  hunt_V2 = mkV2 (compoundV "Xकर" do_V2);
+  kill_V2 =  mkV2 (compoundV "मर" (mkV "धलन" )) ;
+  pull_V2 = mkV2 (mkV "कHनचन");
+--  push_V2 = mkV2 (mkV "दh-कयलन") "कw" ;
+--  rub_V2 = mkV2 (mkV "रगृन") ;
+--  scratch_V2 = mkV2 (mkV "कh-रचन") "कw" ;
+--  split_V2 = mkV2 (mkV "बनत") "कw" ;
+--  squeeze_V2 = dirV2 (regV "सqुेेज़े") ;
+--  stab_V2 = dirV2 (regDuplV "सतब") ;
+--  suck_V2 = mkV2 (mkV "चwसन") ;
+  throw_V2 = mkV2 (mkV "पHयनकन") ;
+  tie_V2 = mkV2 (mkV "बनदHन") ;
+  wash_V2 = mkV2 (mkV "दHwन") ;
+  wipe_V2 = mkV2 (compoundV "शf" (mkV "करन" ));
+
+----  other_A = regA "ॉतहेर" ;
+
+--  grammar_N = mkN "गरदन" ;
+--  language_N = mkN "ज़बन" feminine ;
+--  rule_N = mkN "शwल" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "जॉन" ;
+--    question_N = mkN "सwल" ;
+--    ready_A = regA "रेदय" ;
+--    reason_N = mkN "wजह" feminine ;
+--    today_Adv = mkAdv "ाज" ;
+--    uncertain_A = mkA ["घयर यqयनय"] ;
+    
+ 
+}
diff --git a/lib/src/hindi/MorphoHin.gf b/lib/src/hindi/MorphoHin.gf
--- a/lib/src/hindi/MorphoHin.gf
+++ b/lib/src/hindi/MorphoHin.gf
@@ -1,196 +1,460 @@
---# -path=.:../../prelude
---
-----1 A Simple Hindi Resource Morphology
-----
----- Aarne Ranta 2002 -- 2005
-----
----- This resource morphology contains definitions needed in the resource
----- syntax. To build a lexicon, it is better to use $ParadigmsHin$, which
----- gives a higher-level access to this module.
---
-resource MorphoHin = ResHin ** open Prelude, (Predef=Predef) in {
---
---  flags optimize=all ;
---
-----2 Phonology
-----
----- To regulate the use of endings for both nouns, adjectives, and verbs:
---
---oper
---  y2ie : Str -> Str -> Str = \fly,s -> 
---    let y = last (init fly) in
---    case y of {
---      "a" => fly + s ;
---      "e" => fly + s ;
---      "o" => fly + s ;
---      "u" => fly + s ;
---    _   => init fly + "ie" + s
---    } ;
---
---
-----2 Nouns
-----
----- For conciseness and abstraction, we define a worst-case macro for
----- noun inflection. It is used for defining special case that
----- only need one string as argument.
---
---oper
---  CommonNoun : Type = {s : Number => Case => Str} ;
---
---  nounGen : Str -> CommonNoun = \dog -> case last dog of {
---    "y" => nounY "dog" ;
---    "s" => nounS (init "dog") ;
---    _   => nounReg "dog"
---    } ;
---
----- These are auxiliaries to $nounGen$.
---
---  nounReg : Str -> CommonNoun = \dog -> 
---    mkNoun dog (dog + "s") (dog + "'s") (dog + "s'");
---  nounS   : Str -> CommonNoun = \kiss -> 
---    mkNoun kiss (kiss + "es") (kiss + "'s") (kiss + "es'") ;
---  nounY   : Str -> CommonNoun = \fl -> 
---    mkNoun (fl + "y") (fl + "ies") (fl + "y's") (fl + "ies'") ;
---
---
-----3 Proper names
-----
----- Regular proper names are inflected with "'s" in the genitive.
---
---  nameReg : Str -> Gender -> {s : Case => Str} = \john,g -> 
---    {s = table {Gen => john + "'s" ; _ => john} ; g = g} ;
---
-----2 Determiners
---
---  mkDeterminer : Number -> Str -> {s : Str ; n : Number} = \n,s ->
---    {s = s ; n = n} ;
---
-----2 Pronouns
-----
----- Here we define personal pronouns. 
-----
----- We record the form "mine" and the gender for later use.
---
---  Pronoun : Type = 
---    {s : Case => Str ; a : Agr} ;
---
---  mkPronoun : (_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun = 
---   \I,me,my,mine,n,p,g -> 
---    {s = table {Nom => I ; Acc => me ; Gen => my} ; 
---     a = toAgr n p g
---    } ;
---
---  human : Gender = Masc ; --- doesn't matter
---
---  pronI = mkPronoun "I" "me" "my" "mine" Sg P1 human ;
---  pronYouSg = mkPronoun "you" "you" "your" "yours" Sg P2 human ; -- verb agr OK
---  pronHe = mkPronoun "he" "him" "his" "his" Sg P3 Masc ;
---  pronShe = mkPronoun "she" "her" "her" "hers" Sg P3 Fem ;
---  pronIt = mkPronoun "it" "it" "its" "it" Sg P3 Neutr ;
---
---  pronWe = mkPronoun "we" "us" "our" "ours" Pl P1 human ;
---  pronYouPl = mkPronoun "you" "you" "your" "yours" Pl P2 human ;
---  pronThey = mkPronoun "they" "them" "their" "theirs" Pl P3 human ; ---
---
---
-----2 Adjectives
-----
----- To form the adjectival and the adverbial forms, two strings are needed
----- in the worst case. (First without degrees.)
---
---  Adjective = {s : AForm => Str} ;
---
----- However, most adjectives can be inflected using the final character.
----- N.B. this is not correct for "shy", but $mkAdjective$ has to be used.
---
---  regAdjective : Str -> Adjective = \free -> 
---    let 
---      e   = last free ;
---      fre = init free ;
---      freely = case e of {
---        "y" => fre + "ily" ;
---        _   => free + "ly"
---        } ;
---      fre = case e of {
---        "e" => fre ;
---        "y" => fre + "i" ;
---        _   => free
---        }
---    in 
---    mkAdjective free (fre + "er") (fre + "est") freely ; 
---
----- Many adjectives are 'inflected' by adding a comparison word.
---
---  adjDegrLong : Str -> Adjective = \ridiculous ->
---    mkAdjective 
---      ridiculous 
---      ("more" ++ ridiculous) 
---      ("most" ++ ridiculous) 
---      ((regAdjective ridiculous).s ! AAdv) ;
---
---
-----3 Verbs
-----
----- The worst case needs five forms. (The verb "be" is treated separately.)
---
---  mkVerb4 : (_,_,_,_: Str) -> Verb = \go,goes,went,gone -> 
---    let going = case last go of {
---      "e" => init go + "ing" ;
---      _ => go + "ing"
---      }
---    in
---    mkVerb go goes went gone going ;
---
----- This is what we use to derive the irregular forms in almost all cases
---
---  mkVerbIrreg : (_,_,_ : Str) -> Verb = \bite,bit,bitten -> 
---    let bites = case last bite of {
---      "y" => y2ie bite "s" ;
---      "s" => init bite + "es" ;
---      _   => bite + "s"
---      } 
---    in mkVerb4 bite bites bit bitten ;
---
----- This is used to derive regular forms.
---
---  mkVerbReg : Str -> Verb = \soak -> 
---    let 
---      soaks = case last soak of {
---        "y" => y2ie soak "s" ;
---        "s" => init soak + "es" ;
---        _   => soak + "s"
---        } ;
---      soaked = case last soak of {
---        "e" => init soak + "s" ;
---        _   => soak + "ed"
---        }
---    in 
---    mkVerb4 soak soaks soaked soaked ;
---
---  verbGen : Str -> Verb = \kill -> case last kill of {
---    "y" => verbP3y (init kill) ;
---    "e" => verbP3e (init kill) ;
---    "s" => verbP3s (init kill) ;
---    _   => regVerbP3 kill
---    } ;
---
----- These are just auxiliary to $verbGen$.
---
---  regVerbP3 : Str -> Verb = \walk -> 
---    mkVerbIrreg walk (walk + "ed") (walk + "ed") ;
---  verbP3s   : Str -> Verb = \kiss -> 
---    mkVerb4 kiss (kiss + "es") (kiss + "ed") (kiss + "ed") ;
---  verbP3e   : Str -> Verb = \love -> 
---    mkVerb4 love (love + "s") (love + "d") (love + "d") ;
---  verbP3y   : Str -> Verb = \cr -> 
---    mkVerb4 (cr + "y") (cr + "ies") (cr + "ied") (cr + "ied") ;
---
------ The particle always appears right after the verb.
---
---  verbPart : Verb -> Str -> Verb = \v,p ->
---    {s = \\f => v.s ! f ++ p ; isRefl = v.isRefl} ;
---
---  verbNoPart : Verb -> Verb = \v -> verbPart v [] ;
---
---
-}
+--# -path=.:../../prelude:../abstract:../common:../../prelude
+--
+----1 A Simple Hinu Resource Morphology
+----
+----  Shafqat Virk, Aarne Ranta,2009
+----
+---- This resource morphology contains definitions needed in the resource
+---- syntax. To build a lexicon, it is better to use $ParadigmsHin$, which
+---- gives a higher-level access to this module.
+--
+resource MorphoHin = ResHin ** open Prelude,Predef,ParamX,CommonHindustani in {
+  flags optimize=all ;
+   coding = utf8;
+
+----2 Nouns
+oper
+    mkNoun : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun = 
+      \sd,so,sv,pd,po,pv,g -> {
+      s = table {
+      Sg => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv 
+	  } ;
+      Pl => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv 
+	  }
+      } ;
+
+      g = g
+      } ;
+
+    
+
+    regNoun : Str -> Noun ;
+    regNoun s = case s of {
+		     _ + "य" => mkN05 (s);
+                 _ + (""|"े"|"ह") =>  mkN01 (s);
+                 _ + "य" => mkN03 (s);
+                 _ + ("ं"|"wं") => mkN04 (s);
+                 _ + "w^" => mkN12 (s);
+             _			  => regNoun2 (s)				 
+                 };
+	regNoun2 : Str -> Noun;
+	regNoun2 s = let c = if_then_else Bool (eq (last s) "" ) True (if_then_else Bool (eq (last s) "ह") True (if_then_else Bool (eq (last s) "े") True False))
+     in case c of {
+      False => mkN02 (s);
+	  True => mkN01 (s)
+     };	  
+	  
+    reggNoun : Str -> Gender -> Noun ;
+    reggNoun s g = let c = if_then_else Bool (eq (last s) "" ) True (if_then_else Bool (eq (dp 2 s) "ं") True (if_then_else Bool (eq (dp 2 s) "wं") True False))
+	 in case <s,g,c> of {
+		         <_ + "त",Fem,_> => mkN10 (s);
+				 <_ + "त",Masc,_> => mkN02 (s);
+				 <_ + "w",Masc,_> => mkN11 (s);
+                 <_ + "w",Fem,_> 	=> mkN07 (s);
+				 <_ + "य",Fem,_> => mkN05 (s);
+                 <_ + "य",Masc,_> => mkN02 (s);
+                 <_,Fem,False>		=> mkN08 (s);
+                 <_,Fem,_>		=> mkN09 (s)
+                 				 
+                 };
+    
+-- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
+-- Arabic nouns ends with h. also taken as Masc
+
+     mkN01 : Str -> Noun ;
+     mkN01 lRka = let end = last (lRka) ;
+                 lRk = if_then_else Str (eq end "े") lRka (tk 1 lRka)
+             in mkNoun (lRka)     (lRk+"ै")  (lRk+"ै")
+                       (lRk+"ै")  (lRk+"wं") (lRk+"w")
+                       Masc ;
+
+-- masculine nouns does not end with a, h, e, an
+
+     mkN02 : Str -> Noun ;
+     mkN02 mrd = let mrdwN = mrd+"wं" ;
+              mrdw  = tk 1 mrdwN
+              in mkNoun mrd mrd   mrd
+                      mrd mrdwN mrdw
+                      Masc ;
+
+-- feminine Nouns end with y
+
+     mkN03 : Str -> Noun ;
+     mkN03 krsy = let krsyaN  = krsy+"ं" ;
+		 krsywN  = krsy+"wं" ;
+		 krsyw   = tk 1 krsywN
+             in mkNoun krsy   krsy   krsy
+                       krsyaN krsywN krsyw
+                       Fem ;
+
+-- feminine nouns end with a, aN, wN
+     mkN04 : Str -> Noun ;
+     mkN04 n = case last n of {
+     "" => let bla = n
+        in mkNoun bla          bla         bla
+                  (bla+"y^यं") (bla+"w^ं") (bla+"w^")
+                  Fem ;
+      _   => let maN = n ; -- ends with aN and wN
+            ma  = tk 1 maN
+        in mkNoun maN         maN        maN
+                  (ma+"y^यं") (ma+"w^ं") (ma+"w^ं")
+                  Fem 
+
+            };
+  --feminine nouns end with ya
+    
+      mkN05 : Str -> Noun ;
+      mkN05 gRya = let gRy = (tk 1 gRya)
+             in mkNoun gRya       gRya       gRya
+                       (gRya+"ं") (gRy+"wं") (gRy+"w")
+                       Fem ;
+
+-- feminine nouns end with w
+      
+      mkN07 : Str -> Noun ;
+      mkN07 khshbw =  mkNoun khshbw     khshbw         khshbw
+                            (khshbw + "y^यं") (khshbw + "w^ं") (khshbw + "w^")
+                            Fem ;
+
+-- Loan arabic feminine nouns end with t
+-- this is a noun that shows  state, condition 
+
+      mkN10 : Str -> Noun ;
+      mkN10 ndamt = mkNoun ndamt        ndamt        ndamt
+                     (ndamt+"यं") (ndamt+"wं") (ndamt+"w")
+                     Fem ;
+-- Worst case function
+      mkN : (_,_,_,_,_,_ : Str) -> Gender -> Noun ;
+      mkN sgNom sgObl sgVoc plNom plObl plVoc g = 
+      mkNoun sgNom sgObl sgVoc plNom plObl plVoc g ;
+
+      mkN06 : Str -> Noun ;
+      mkN06 rya = mkNoun rya          rya         rya 
+                   (rya+"y^यं") (rya+"w^ं") rya
+                   Fem ;
+
+-- feminine nouns that do not end with a, N, w, wN
+     
+      mkN08 : Str -> Noun ;
+      mkN08 ktab = mkNoun ktab ktab ktab
+                    (ktab+"यं") (ktab+"wं") (ktab+"w")
+                    Fem ;
+
+-- Loan arabic feminine nouns
+     
+      mkN09 : Str -> Noun ;
+      mkN09 ahsan = mkNoun ahsan        ahsan                             ahsan
+                     (ahsan+"त")  (ahsan+"त") (ahsan+"w") 
+                     Fem ;
+-- (variants{ahsan+"त";ahsan+"wं"})
+-- Loan persian maculine nouns end with w
+
+      mkN11 : Str -> Noun ;
+      mkN11 alw = mkNoun alw alw         alw
+                   alw (alw+"w^ं") (alw+"w^")
+                   Masc ;
+
+
+-- Loan persian maculine nouns end with w^
+
+      mkN12 : Str -> Noun ;
+      mkN12 bhao = mkNoun (bhao)      (bhao)     (bhao)
+                          (bhao)      (bhao)     (bhao)
+                    Masc ;
+----2 Determiners
+  IDeterminer = {s:Gender => Str ; n : Number};
+  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
+   s = table {
+      Sg => table {
+        Masc => s1 ;
+        Fem => s2 
+	  } ;
+      Pl => table {
+        Masc => s3 ;
+        Fem => s4 
+	  }
+      } ;
+
+      n = n
+	};	
+	
+  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
+   s = table {
+        Masc => s1;
+		Fem  => s2
+	 };
+	 n = n
+    };		
+    
+-- Proposition  
+ 
+  makePrep : Str -> Str -> Preposition = \s1,s2 -> {s = table { Masc => s1 ; Fem => s2 } } **  { lock_Prep = <>};
+   
+----2 Pronouns
+   PronForm = {s:Pronoun => Str};
+   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
+    \y1,y2,y3,y4,y5,y6 -> {
+	 s = table {
+         P Sg _ Dir _ => y1;
+         P Sg _ Obl _ => y2;
+         P Sg _ Voc _ => y3;
+         P Pl _ Dir _ => y4;
+         P Pl _ Obl _ => y5;
+         P Pl _ Voc _ => y6
+         };
+      };
+
+--   DemonPronForm = {s:DemPronForm => Str};
+  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12:Str) -> DemPronForm =
+  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12 -> {
+   s = table {
+	        Sg => table {
+				Masc => table {
+						     Dir => y1 ;
+                             Obl => y2 ;
+                             Voc => y3
+							 };
+				Fem => table {
+						     Dir => y4 ;
+                             Obl => y5 ;
+                             Voc => y6
+							 }
+						};
+			Pl => table {
+				Masc => table {
+						     Dir => y7 ;
+                             Obl => y8 ;
+                             Voc => y9
+							 };
+				Fem => table {
+						     Dir  => y10 ;
+                             Obl => y11 ;
+                             Voc => y12
+							 }
+					} 
+				}
+               };    
+   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
+   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "";	
+--   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
+   
+   PersPron = {s: PersPronForm => Str};
+   
+   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> PersPron = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
+     s = 
+	  table {
+	      PPF Sg Pers1 Dir => y1;
+          PPF Sg Pers1 Obl => y2;
+	      PPF Sg Pers1 Voc => y3;
+	      PPF Sg Pers2_Casual Dir => y4;
+	      PPF Sg Pers2_Casual Obl => y5;
+          PPF Sg Pers2_Casual Voc => y6;
+	      PPF Sg Pers2_Familiar Dir => y7;
+	      PPF Sg Pers2_Familiar Obl => y8;
+	      PPF Sg Pers2_Familiar Voc => y9;
+          PPF Sg Pers2_Respect Dir => y10;
+	      PPF Sg Pers2_Respect Obl => y11;
+	      PPF Sg Pers2_Respect Voc => y12;
+	      PPF Sg Pers3_Near Dir => y13;
+          PPF Sg Pers3_Near Obl => y14;
+	      PPF Sg Pers3_Near Voc => y15;
+	      PPF Sg Pers3_Distant Dir => y16;
+	      PPF Sg Pers3_Distant Obl => y17;
+          PPF Sg Pers3_Distant Voc => y18;
+	      PPF Pl Pers1 Dir => y19;
+          PPF Pl Pers1 Obl => y20;
+	      PPF Pl Pers1 Voc => y21;
+	      PPF Pl Pers2_Casual Dir => y22;
+	      PPF Pl Pers2_Casual Obl => y23;
+          PPF Pl Pers2_Casual Voc => y24;
+	      PPF Pl Pers2_Familiar Dir => y25;
+	      PPF Pl Pers2_Familiar Obl => y26;
+	      PPF Pl Pers2_Familiar Voc => y27;
+          PPF Pl Pers2_Respect Dir => y28;
+	      PPF Pl Pers2_Respect Obl => y29;
+	      PPF Pl Pers2_Respect Voc => y30;
+	      PPF Pl Pers3_Near Dir => y31;
+          PPF Pl Pers3_Near Obl => y32;
+	      PPF Pl Pers3_Near Voc => y33;
+	      PPF Pl Pers3_Distant Dir => y34;
+	      PPF Pl Pers3_Distant Obl => y35;
+          PPF Pl Pers3_Distant Voc => y36
+		 }; 
+      };
+	  
+   makePersPron : PersPron;
+   makePersPron     = mkPersPron	"m(a)यं"	"m(o)j'|ह"		""		"t(o)w "		"t(o)j|ह"		"t(o)w "		"t(o)म"		"t(o)म"		"t(o)म"		"ाप"		"ाप"		"ाप"		"y(i)ह"		"a(i)स"		""		"w(o)ह"		"a(o)स"		""
+									"h(a)म"		"h(a)म"			""		"t(o)म" 		"t(o)म"			"t(o)म"			"t(o)म"		"t(o)म"		"t(o)म"		"ाप"		"ाप"		"ाप"		"y(i)ह"		"a(i)न"		""		"w(o)ह"		"a(o)न"		"" ;
+						
+  mkPron : (x1,x2,x3:Str) -> {s:Case => Str} = 
+     \y1,y2,y3 -> { s =
+                      table {
+                        Dir => y1;
+                        Obl => y2;
+                        Voc => y3
+                        }
+                      };  
+                                   
+	------- PossPronForm yet to be implemented
+  
+-- IntPronForm = {s:InterrPronForm => Str};
+  IntPronForm = {s: Case => Str};
+  mkIntPronForm : (x1,x2,x3:Str) -> IntPronForm =
+  \y1,y2,y3 -> {
+   s = 
+    table {
+	            Dir => y1;
+	            Obl => y2;
+	            Voc => y3
+		 }
+	}; 
+
+----2 Adjectives
+-- defined in ResUrd
+
+----3 Verbs
+  CommonVF = {s : VTense => UPerson => Number => Gender => Str} ;
+ 
+   mkVerb : (x1: Str) -> Verb = \inf  ->
+     	 let root = (tk 2 inf); inf_obl = ((tk 1 inf) + "ै"); inf_fem = ((tk 1 inf) + "य")
+	in { s = table {
+          
+               VF tense person number gender => (mkCmnVF root tense person number gender).s  ;
+               Inf     => inf ;
+               Root    => root ;
+               Inf_Obl => inf_obl ;
+               Inf_Fem => inf_fem 
+          
+          
+       }
+     } ;
+   rem_y : Str -> Str;
+   rem_y str = let b = take 1 str; yth = drop 1 str; a1	= take 4 yth; a2 = take 1 yth; 	th= if_then_else Str (eq a1 "(a)य") (drop 5 str) (drop 2 str);	st = if_then_else Str (eq a1 "(a)य") (b ++ "(i)"++th) (if_then_else Str (eq a2 "य") (b ++ th)  str)
+              in rt st;
+	rt: Str -> Str;
+	rt r = r;
+   mkCmnVF : Str -> VTense -> UPerson -> Number -> Gender -> {s:Str} =
+    \root,t,p,n,g ->
+     {s = 
+      let form1 = case (last root) of {
+                  ""|"ा"|"w" => root + "w^ं" ;
+                  _           => root + "wं"
+                 };
+          form2 =  case (last root) of {
+                  ""|"ा"|"w" => root + "y^ं" ;
+                  _           => root + "यं"
+                 };
+	 in
+       case <t,p,n,g> of {
+        <Subj,Pers1,Sg,_> => form1 ;
+        <Subj,Pers1,Pl,_> => form2 ;
+        <Subj,_,_,_>      => (mkImpert root p n g).s ;
+        <Perf,_,_,_>      => case root of {
+		                      "हw" => (mkPastInd root p n g).s ;
+							  "ज" => (mkPastInd "गय" p n g).s ;
+							  "कर" => (mkPastInd "क" p n g).s ;
+							  "दै" => (mkPastInd "द" p n g).s ;
+							  "लै" => (mkPastInd "ल" p n g).s ;
+							  _    => (mkPastInd root p n g).s };
+        <Imperf,Pers2_Familiar,Sg,Masc>         => root + "तै";
+        <Imperf,Pers2_Familiar,Sg,Fem>         => root + "तय"; --variants{root+"तय" ; root+"तयं"};	
+        <Imperf,Pers2_Familiar,Pl,Masc>         => root + "तै";
+        <Imperf,Pers2_Familiar,Pl,Fem>         => root+"तयं";
+        <Imperf,Pers2_Respect,Sg,Masc>         => root + "तै";
+        <Imperf,Pers2_Respect,Sg,Fem>         => root + "तय"; --variants{root+"तय" ; root+"तयं"};	
+        <Imperf,Pers2_Respect,Pl,Masc>         => root + "तै";
+        <Imperf,Pers2_Respect,Pl,Fem>         => root+"तयं";
+		<Imperf,_,Sg,Masc>					  => root+"त";
+		<Imperf,_,Sg,Fem>					  => root+"तय";
+		<Imperf,_,Pl,Masc>					  => root+"ते";
+		<Imperf,_,Pl,Fem>					  => root+"तयं"
+        }
+       
+     } ;
+   
+   mkPastInd : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo = root ;
+             a = case (last root) of {
+                  ""|"ा"|"w"|"क" => "य" ;
+                  _           => ""
+                 } ;
+             y = case (last root) of {
+                  ""|"ा"|"w" => "y^य" ;
+                  _           => "य"
+                 } ;
+             e = case (last root) of {
+                  ""|"ा"|"w"|"क" => "y^ै" ;
+                  _           => "ै"
+                 } ;
+            yN = case (last root) of {
+                  ""|"ा"|"w" => "y^यं" ;
+                  _           => "यं"
+                 } ;
+
+     in 
+     case <p,n,g> of {
+       <Pers1,Sg,Masc> => roo+a ;
+       <Pers1,Sg,Fem>  => roo+y ;
+       <Pers1,Pl,Masc> => roo+e ;
+       <Pers1,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Casual,Sg,Masc> => roo+a ;
+       <Pers2_Casual,Sg,Fem>  => roo+y ;
+       <Pers2_Casual,Pl,Masc> => roo+e ;       
+       <Pers2_Casual,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Familiar,Sg,Masc> => roo+e ;
+       <Pers2_Familiar,Sg,Fem>  => roo+y; --variants{roo+y ; roo+yN} ;
+       <Pers2_Familiar,Pl,Masc> => roo+e ;
+       <Pers2_Familiar,Pl,Fem>  => roo+yN ;       
+       
+       <Pers2_Respect,Sg,Masc>  => roo+e ;
+       <Pers2_Respect,Sg,Fem>   => roo+yN; --variants{roo+yN ; roo+y} ;
+       <Pers2_Respect,Pl,Masc>  => roo+e ;
+       <Pers2_Respect,Pl,Fem>   => roo+yN ;
+       <_,Sg,Masc>              => roo + a; 
+       <_,Sg,Fem>              => roo+y ; 
+	   <_,Pl,Masc>              => roo + e; 
+       <_,Pl,Fem>              => roo+yN 
+       
+     } ;
+    } ;
+
+   mkImpert : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo =  root ;
+             w = case (last root) of {
+                  ""|"ा"|"w" => "w^" ;
+                  _           => "w"
+               } ;
+             yN = case (last root) of {
+                  ""|"ा"|"w" => "y^यं" ;
+                  _           => "यं" 
+               } ;
+             yE = case (last root) of {
+                  ""|"ा"|"w" => "y^यै" ;
+                  _           => "यै" 
+               } ;
+             e = case (last root) of {
+                  ""|"ा"|"w" => "y^ै" ;
+                  _           => "ै" 
+               } in
+      case <p,n,g> of {
+       <Pers1,_,_>          => ""; --nonExist ;
+       <Pers2_Casual,Sg,_>  => root ;
+       <Pers2_Casual,Pl,_>  => roo+w ;
+       <Pers2_Familiar,_,_> => roo+w ;
+       <Pers2_Respect,Sg,_> => roo+w; --variants{roo+w; roo+yN; roo+yE} ;
+       <Pers2_Respect,Pl,_> => roo+yN; --variants{roo+yN; roo+yE} ;
+       <_,Sg,_>              => roo+e ; 
+       <_,Pl,_>              => roo+yN 
+      }; 
+    };       
+
+}
diff --git a/lib/src/hindi/NounHin.gf b/lib/src/hindi/NounHin.gf
--- a/lib/src/hindi/NounHin.gf
+++ b/lib/src/hindi/NounHin.gf
@@ -1,121 +1,2 @@
-concrete NounHin of Noun = CatHin ** open ResHin, Prelude in {
-
-  flags optimize=all_subs ;
-
-  lin
-    DetCN det cn = {
-      s = \\c => det.s ! cn.g ! npcase2case c ++ toNP (cn.s ! det.n) c ;
-      a = agrP3 cn.g det.n
-      } ;
-
-    UsePN pn = {s = \\c => toNP pn.s c ; a = agrP3 pn.g Sg} ;
-    UsePron p = {s = \\c => p.s ! np2pronCase c ; a = p.a} ;
---
---    PredetNP pred np = {
---      s = \\c => pred.s ++ np.s ! c ;
---      a = np.a
---      } ;
---
---    PPartNP np v2 = {
---      s = \\c => np.s ! c ++ v2.s ! VPPart ;
---      a = np.a
---      } ;
---
---    RelNP np rs = {
---      s = \\c => np.s ! c ++ "," ++ rs.s ! np.a ;
---      a = np.a
---      } ;
---
---    AdvNP np adv = {
---      s = \\c => np.s ! c ++ adv.s ;
---      a = np.a
---      } ;
---
---    DetQuantOrd quant num ord = {
---      s = quant.s ! num.n ++ num.s ++ ord.s ; 
---      n = num.n
---      } ;
-
-    DetQuant quant num = {
-      s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ; 
-      n = num.n
-      } ;
-
---    DetNP det = {
---      s = \\c => det.s ; ---- case
---      a = agrP3 det.n
---      } ;
---
-    PossPron p = {s = \\_,_,_ => p.s ! PPoss} ;
-
-    NumSg = {s = []; n = Sg} ;
-    NumPl = {s = []; n = Pl} ;
-
---    NumCard n = n ** {hasCard = True} ;
---
---    NumDigits n = {s = n.s ! NCard ; n = n.n} ;
---    OrdDigits n = {s = n.s ! NOrd} ;
---
---    NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
---    OrdNumeral numeral = {s = numeral.s ! NOrd} ;
---
---    AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
---
---    OrdSuperl a = {s = a.s ! AAdj Superl} ;
---
---    DetArtOrd art num ord = {
---      s = art.s ! num.hasCard ! num.n ++ num.s ++ ord.s ;
---      n = num.n
---      } ;
---
---    DetArtCard art card = {
---      s = art.s ! True ! card.n ++ card.s ;
---      n = card.n
---      } ;
-
-      DefArt = {s = \\_,_,_ => []} ;
-      IndefArt = {s = \\_,_,_ => []} ;
-
---    MassNP cn = {
---      s = cn.s ! Sg ;
---      a = agrP3 Sg
---      } ;
-
-      UseN n = n ;
---    UseN2 n = n ;
---
---    Use2N3 f = {
---      s = \\n,c => f.s ! n ! Nom ;
---      g = f.g ;
---      c2 = f.c2
---      } ;
---
---    Use3N3 f = {
---      s = \\n,c => f.s ! n ! Nom ;
---      g = f.g ;
---      c2 = f.c3
---      } ;
---
---    ComplN2 f x = {s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ; g = f.g} ;
---    ComplN3 f x = {
---      s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ;
---      g = f.g ;
---      c2 = f.c3
---      } ;
-
-    AdjCN ap cn = {
-      s = \\n,c => ap.s ! cn.g ! n ! c ++ cn.s ! n ! c ;
-      g = cn.g
-      } ;
-
---    RelCN cn rs = {
---      s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ;
---      g = cn.g
---      } ;
---    AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
---
---    SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
---
---    ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! c ; g = cn.g} ;
---
-}
+concrete NounHin of Noun = CatHin ** NounHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/NumeralHin.gf b/lib/src/hindi/NumeralHin.gf
--- a/lib/src/hindi/NumeralHin.gf
+++ b/lib/src/hindi/NumeralHin.gf
@@ -1,107 +1,127 @@
-concrete NumeralHin of Numeral = CatHin ** open ResHin in {
--- By Harald Hammarström
--- flags coding=devanagari ;
---- still old Devanagari coding
-
-
-param DForm = unit | ten ;
-param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
-param Size = sing | less100 | more100 ; 
-
-oper LinDigit = {s : DForm => Str ; size : DSize} ;
-
---lincat Numeral =    { s : Str } ;
-lincat Digit = LinDigit ;
-lincat Sub10 = {s : DForm => Str ; size : DSize} ;
-lincat Sub100 = {s : Str ; size : Size} ;
-lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; 
-lincat Sub1000000 = { s : Str } ;
-
-lin num x0 =
-  {s = "/&" ++ x0.s ++ "&/"} ; -- the Devana:gari environment
-
-
--- H is for aspiration (h is a sepaarate letter)
--- M is anusvara
--- ~ is candrabindhu
--- c is is Eng. ch in e.g chop 
--- cH is chH
--- _: is length
--- T, D, R are the retroflexes
-
-oper mkNum : Str -> Str -> DSize -> LinDigit = 
-  \do -> \bis -> \sz ->  
-  {s = table {unit => do ; ten => bis } ; 
-   size = sz } ;
-
--- lin n1 mkNum "ek" "gya:rah" "das" 
-lin n2 = mkNum "do" "bi:s" r2 ;
-lin n3 = mkNum "ti:n" "ti:s" r3 ;
-lin n4 = mkNum "ca:r" "ca:li:s" r4 ;
-lin n5 = mkNum "pa:~nc" "paca:s" r5 ;
-lin n6 = mkNum (variants {"cHah" ; "cHa;" ; "cHai"}) "sa:TH" r6 ; 
-lin n7 = mkNum "sa:t" "sattar" r7; 
-lin n8 = mkNum "a:TH" "assi:" r8;
-lin n9 = mkNum "nau" (variants {"navve" ; "nabbe" }) r9 ;
-
-oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
-  sg => a1 + "ah" ;
-  r2 => a2 + "i:s" ;
-  r3 => a3 + "ti:s" ;
-  r4 => a4 + "a:li:s" ;
-  r5 => a5 + "an" ;
-  r6 => a6 + "saTH" ;
-  r7 => a7 + "hattar" ;
-  r8 => a8 + "a:si:" ;
-  r9 => a9 + "a:nave"
-} ;
-
-oper rows : DSize => DSize => Str = table {
-  sg => mkR "gya:r" "ikk" "ikat" "ekt" "ikya:v" "ik" "ik" "iky" "iky" ; 
-  r2 => mkR "ba:r" "ba:" "bat" "bay" "ba:v" "ba:" "ba" "bay" "b" ;
-  r3 => mkR "ter" "te" "taiM" "taiMt" "tirp" "tir" "ti" "tir" "tir" ;
-  r4 => mkR "caud" "caub" "cauM" "cav" "caup" "cauM" "cau" "caur" "caur" ;
-  r5 => mkR "paMdr" "pacc" "paiM" "paiMt" "pacp" "paiM" "pac" "pac" "pac" ;
-  r6 => mkR "sol" "cHabb" "cHat" "cHiy" "cHapp" "cHiya:" "cHi" "cHiy" "cHiy" ;
-  r7 => mkR (variants { "sattr" ; "satr"}) "satta:v" "saiM" "saiMt" "satta:" "sar" "sat" (variants {"satt" ; "sat" }) "satt" ;
-  r8 => mkR "aTHa:r" "aTTHa:" "aR" "aRt" "aTTHa:v" "aR" "aTH" (variants { "aTTH" ; "aTH" }) "aTTH" ; 
-  r9 => table {sg => "unni:s" ; r2 => "unati:s" ; r3 => "unata:li:s" ; 
-               r4 => "unaca:s" ; r5 => "unasaTH" ; r6 => "unahattar" ; 
-               r7 => (variants{"unna:si:" ; "unya:si:"}) ; 
-               r8 => "nava:si:" ; r9 => "ninya:nave" } 
-} ;
-
-oper ss : Str -> {s : Str} = \s -> {s = s} ;
-
-lin pot01 = {s = table {unit => "ek" ; _ => "dummy" } ; size = sg} ;
-lin pot0 d = d ; 
-lin pot110 = {s = "das" ; size = less100} ; 
-lin pot111 = {s = rows ! sg ! sg ; size = less100} ;
-lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100} ;
-lin pot0as1 n = {s = n.s ! unit ; size = table {sg => sing ; _ => less100} ! n.size } ;
-
-lin pot1 d = {s = d.s ! ten ; size = less100} ;
-lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100} ;
-
-lin pot1as2 n = {s = n.s ; s2 = "dummy" ; size = n.size } ;
-lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
-              s2 = d.s ! unit ++ "la:kH" ; size = more100} ;
-lin pot2plus d e = 
-  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
-   s2 = (d.s ! unit) ++ "la:kH" ++ (mkhazar e.s e.size) ; 
-   size = more100} ;
-
-lin pot2as3 n = {s = n.s } ;
-lin pot3 n = {s = table { sing => ekhazar ;
-                          less100 => n.s ++ "haza:r" ; 
-                          more100 => n.s2 } ! n.size} ;
-lin pot3plus n m = 
-  {s = table {sing => ekhazar ;
-              less100 => n.s ++ "haza:r" ; 
-              more100 => n.s2 } ! n.size ++ m.s} ;
-
-
-oper ekhazar : Str = variants {"haza:r" ; "ek" ++ "haza:r"} ; 
-oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {sing => ekhazar ; _ => s ++ "haza:r"} ! sz ;
-oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "sau" ; _ => s ++ "sau"} ! sz ;
-}
+concrete NumeralHin of Numeral = CatHin ** open ResHin,Prelude,ParamX in {
+-- By Harald Hammarström
+-- Modification for Hinu Shafqat Virk
+ flags coding=utf8 ;
+--- still old Devanagari coding
+
+
+param DForm = unit | ten ;
+param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
+param Size = singl | less100 | more100 ; 
+
+oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
+
+
+lincat Dig = { s:Str ; n : Number};
+lincat Digit = LinDigit ;
+lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
+lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
+lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
+lincat Sub1000000 = { s : Str ; n : Number } ;
+
+lin num x0 = 
+    {s = table {
+          NCard =>   x0.s ; 
+          NOrd =>  x0.s ++ "واں" -- need to use mkOrd which will make irregular ordinals but it gives path error
+          };
+       n = x0.n
+    } ;
+oper mkOrd : Str -> Str =
+ \s -> case s of {
+                    "عك"                  => "پہلا";
+                    "دo"                  => "دوسرا";
+                    "تi:ن"                => "تعسرا";
+                    "چa:ر"                => "چوتh-ا";
+                    ("چحاہ"|"چحا"|"چحاi") => "چh-ٹا";
+                    _                     =>  s ++ "واں"
+                  };
+--  {s = \\_ => x0.s ; n = x0.n} ; 
+
+
+oper mkNum : Str -> Str -> DSize -> LinDigit = 
+  \do -> \bis -> \sz ->  
+  {s = table {unit => do ; ten => bis } ; 
+   size = sz ; n = Pl} ;
+
+lin n2 = mkNum "دو" "بیس" r2 ;
+lin n3 = mkNum "تین" "تیس" r3 ;
+lin n4 = mkNum "چار" "چالیس" r4 ;
+lin n5 = mkNum "پانچ" "پچاس" r5 ;
+lin n6 = mkNum "چh-" "ساتh-" r6 ; 
+lin n7 = mkNum "سات" "ستر" r7; 
+lin n8 = mkNum "آتh-" "اسی" r8;
+lin n9 = mkNum "نو" "نوے" r9 ;
+
+oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
+  sg => a1 + "اہ" ;
+  r2 => a2 + "i:س" ;
+  r3 => a3 + "تi:س" ;
+  r4 => a4 + "a:لi:س" ;
+  r5 => a5 + "ان" ;
+  r6 => a6 + "ساٹح" ;
+  r7 => a7 + "ہاتتار" ;
+  r8 => a8 + "a:سi:" ;
+  r9 => a9 + "a:ناvع"
+} ;
+
+oper rows : DSize => DSize => Str = table {
+  sg => mkR "گیارہ" "iكك" "iكات" "عكت" "iكیاو" "iك" "iك" "iكی" "iكی" ; 
+  r2 => mkR "بارہ" "بای" "بات" "بای" "باو" "با" "با" "بای" "ب" ;
+  r3 => mkR "تیر" "تی" "تین" "تنت" "ترپ" "تری" "ت" "تر" "تر" ;
+  r4 => mkR "چود" "چوب" "چون" "چوا" "چوو" "چون" "چوہ" "چور" "چور" ;
+  r5 => mkR "پند" "پچی" "پین" "پنتا" "پچپ" "پین" "پہ" "پچ" "پچ" ;
+  r6 => mkR "سول" "چh-ب" "چh-ت" "چh-ی" "چh-پ" "چh-یا" "چh-" "چh-ی" "چh-ی" ;
+  r7 => mkR "ستر" "ستا" "سین" "سنت" "ستاو" "ستا" "سر" "ست" "ستا" ;
+  r8 => mkR "اتh-ار" "اتh-ای" "اڑ" "اڑت" "اتh-او" "اڑ" "اتh-" "اتh-" "اتh-" ; 
+  r9 => table {sg => "انیس" ; r2 => "انتیس" ; r3 => "انتالیس" ; 
+               r4 => "انچاس" ; r5 => "انستh-" ; r6 => "انہتر" ; 
+               r7 => "اناسی" ; 
+               r8 => "انانوے" ; r9 => "ننانوے" } 
+} ;
+
+oper ss : Str -> {s : Str} = \s -> {s = s} ;
+
+lin pot01 = {s = table {unit => "ایك" ; _ => "دuممی" } ; size = sg ; n = Sg} ;
+lin pot0 d = d ; 
+lin pot110 = {s = "داس" ; size = less100 ; n = Pl} ; 
+lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
+lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
+lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ;
+
+lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
+lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
+
+lin pot1as2 n = {s = n.s ; s2 = "دuممی" ; size = n.size ; n = n.n} ;
+lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
+              s2 = d.s ! unit ++ "لاكh-" ; size = more100 ; n = d.n} ;
+lin pot2plus d e = 
+  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
+   s2 = (d.s ! unit) ++ "لاكh-" ++ (mkhazar e.s e.size) ; 
+   size = more100 ; n = d.n} ;
+
+lin pot2as3 n = {s = n.s ; n = n.n} ;
+lin pot3 n = {s = table { singl => ekhazar ;
+                          less100 => n.s ++ "ہزار" ; 
+                          more100 => n.s2 } ! n.size ; n = n.n} ;
+lin pot3plus n m = 
+  {s = table {singl => ekhazar ;
+              less100 => n.s ++ "ہزار" ; 
+              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
+
+lin D_0 = { s = "0" ; n = Sg};
+lin D_1 = { s = "1" ; n = Sg};
+lin D_2 = { s = "2" ; n = Pl};
+lin D_3 = { s = "3" ; n = Pl};
+lin D_4 = { s = "4" ; n = Pl};
+lin D_5 = { s = "5" ; n = Pl};
+lin D_6 = { s = "6" ; n = Pl};
+lin D_7 = { s = "7" ; n = Pl};
+lin D_8 = { s = "8" ; n = Pl};
+lin D_9 = { s = "9" ; n = Pl};
+lin IDig d = { s = \\_ => d.s ; n = d.n} ;
+lin IIDig d dg = { s = \\df => Prelude.glue (dg.s ! df) d.s ; n = Pl }; 
+
+oper ekhazar : Str = variants {"ہزار" ; "ایك" ++ "ہزار"} ; 
+oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {singl => ekhazar ; _ => s ++ "ہزار"} ! sz ;
+oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "سو" ; _ => s ++ "سو"} ! sz ;
+}
diff --git a/lib/src/hindi/ParadigmsHin.gf b/lib/src/hindi/ParadigmsHin.gf
--- a/lib/src/hindi/ParadigmsHin.gf
+++ b/lib/src/hindi/ParadigmsHin.gf
@@ -1,556 +1,170 @@
---# -path=.:../abstract:../../prelude:../common
---
-----1 Hindi Lexical Paradigms
-
-resource ParadigmsHin = open 
-  (Predef=Predef), 
-  Prelude, 
-  MorphoHin,
-  CatHin
-  in {
-
---2 Parameters 
-
-oper
-  masculine : Gender ;
-  feminine : Gender ;
-
-  masculine = Masc ; feminine = Fem ; --i
-
-
---2 Nouns
-
-  mkN = overload {
-    mkN : Str -> N 
-      = \s -> regNoun s ** {lock_N = <>} ;
-    mkN : Str -> Gender -> N 
-      = \s,g -> reggNoun s g ** {lock_N = <>} ;
-    mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N 
-      = \sd,so,sv,pd,po,pv,g -> mkNoun sd so sv pd po pv g ** {lock_N = <>} ;
-    } ;
-
-  mkPN = overload {
-    mkPN : Str -> PN = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
-    mkPN : N -> Gender -> PN = \n,g -> {s = n.s ! Sg ; g = g ; lock_PN = <>} ;
-    } ;
-
---2 Adjectives
-
-  mkA = overload {
-    mkA : Str -> A 
-      = \s -> regAdjective s ** {lock_A = <>} ;
-    mkA : (x1,_,x3 : Str) -> A
-      = \msd,m,f -> mkAdjective msd m f ** {lock_A = <>} ;
-    } ;
-
---2 Verbs
-
-  mkV = overload {
-    mkV : Str -> V 
-      = \s -> regVerb s ** {lock_V = <>} ;
-    mkV : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,x15 : Str) -> V
-      = \inf,stem,ims,imp,ifs,ifp,pms,pmp,pfs,pfp,ss1,ss2,sp2,sp3,r -> 
-           mkVerb inf stem ims imp ifs ifp pms pmp pfs pfp ss1 ss2 sp2 sp3 r ** 
-             {lock_V = <>} ;
-    } ;
-
-
-  mkV2 = overload {
-    mkV2 : Str -> V2 
-      = \s -> regVerb s ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
-    mkV2 : V -> V2 
-      = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
-    mkV2 : V -> Str -> V2 
-      = \v,p -> v ** {c2 = {s = p ; c = VTransPost} ; lock_V2 = <>} ;
-    } ;
-
-
-----3 Compound nouns 
-----
----- A compound noun is an uninflected string attached to an inflected noun,
----- such as "baby boom", "chief executive officer".
---
---    mkN : Str -> N -> N
---  } ;
---
---
-----3 Relational nouns 
----- 
----- Relational nouns ("daughter of x") need a preposition. 
---
---  mkN2 : N -> Prep -> N2 ;
---
----- The most common preposition is "of", and the following is a
----- shortcut for regular relational nouns with "of".
---
---  regN2 : Str -> N2 ;
---
----- Use the function $mkPrep$ or see the section on prepositions below to  
----- form other prepositions.
-----
----- Three-place relational nouns ("the connection from x to y") need two prepositions.
---
---  mkN3 : N -> Prep -> Prep -> N3 ;
---
---
---
-----3 Proper names and noun phrases
-----
----- Proper names, with a regular genitive, are formed from strings.
---
---  mkPN : overload {
---
---    mkPN : Str -> PN ;
---
----- Sometimes a common noun can be reused as a proper name, e.g. "Bank"
---
---    mkPN : N -> PN
---  } ;
---
---
-----2 Adjectives
---
---  mkA : overload {
---
----- For regular adjectives, the adverbial and comparison forms are derived. This holds
----- even for cases with the variations "happy - happily - happier - happiest",
----- "free - freely - freer - freest", and "rude - rudest".
---
---    mkA : (happy : Str) -> A ;
---
----- However, the duplication of the final consonant cannot be predicted,
----- but a separate case is used to give the comparative
---
---    mkA : (fat,fatter : Str) -> A ;
---
----- As many as four forms may be needed.
---
---    mkA : (good,better,best,well : Str) -> A 
---    } ;
---
----- To force comparison to be formed by "more - most", 
----- the following function is used:
---
---    compoundA : A -> A ; -- -/more/most ridiculous
---
---
---
-----3 Two-place adjectives
-----
----- Two-place adjectives need a preposition for their second argument.
---
---  mkA2 : A -> Prep -> A2 ;
---
---
---
-----2 Adverbs
---
----- Adverbs are not inflected. Most lexical ones have position
----- after the verb. Some can be preverbal (e.g. "always").
---
---  mkAdv : Str -> Adv ;
---  mkAdV : Str -> AdV ;
---
----- Adverbs modifying adjectives and sentences can also be formed.
---
---  mkAdA : Str -> AdA ;
---
-----2 Prepositions
-----
----- A preposition as used for rection in the lexicon, as well as to
----- build $PP$s in the resource API, just requires a string.
---
---  mkPrep : Str -> Prep ;
---  noPrep : Prep ;
---
----- (These two functions are synonyms.)
---
-----2 Verbs
-----
---
----- Verbs are constructed by the function $mkV$, which takes a varying
----- number of arguments.
---
---  mkV : overload {
---
----- The regular verb function recognizes the special cases where the last
----- character is "y" ("cry-cries" but "buy-buys") or a sibilant
----- ("kiss-"kisses", "jazz-jazzes", "rush-rushes", "munch - munches", 
----- "fix - fixes").
---
---    mkV : (cry : Str) -> V ;
---
----- Give the present and past forms for regular verbs where
----- the last letter is duplicated in some forms,
----- e.g. "rip - ripped - ripping".
---
---    mkV : (stop, stopped : Str) -> V ;
---
----- There is an extensive list of irregular verbs in the module $IrregularHin$.
----- In practice, it is enough to give three forms, 
----- e.g. "drink - drank - drunk".
---
---    mkV : (drink, drank, drunk  : Str) -> V ;
---
----- Irregular verbs with duplicated consonant in the present participle.
--- 
---    mkV : (run, ran, run, running  : Str) -> V ;
---
----- Except for "be", the worst case needs five forms: the infinitive and
----- the third person singular present, the past indicative, and the
----- past and present participles.
---
---    mkV : (go, goes, went, gone, going : Str) -> V
---  };
---
----- Verbs with a particle.
----- The particle, such as in "switch on", is given as a string.
---
---  partV  : V -> Str -> V ;
---
----- Reflexive verbs.
----- By default, verbs are not reflexive; this function makes them that.
---
---  reflV  : V -> V ;
---
-----3 Two-place verbs
-----
----- Two-place verbs need a preposition, except the special case with direct object.
----- (transitive verbs). Notice that a particle comes from the $V$.
---
---  mkV2 : overload {
---    mkV2  : V -> Prep -> V2 ; -- believe in
---    mkV2  : V -> V2           -- kill
---  };
---
-----3 Three-place verbs
-----
----- Three-place (ditransitive) verbs need two prepositions, of which
----- the first one or both can be absent.
---
---  mkV3     : V -> Prep -> Prep -> V3 ;   -- speak, with, about
---  dirV3    : V -> Prep -> V3 ;           -- give,_,to
---  dirdirV3 : V -> V3 ;                   -- give,_,_
---
-----3 Other complement patterns
-----
----- Verbs and adjectives can take complements such as sentences,
----- questions, verb phrases, and adjectives.
---
---  mkV0  : V -> V0 ;
---  mkVS  : V -> VS ;
---  mkV2S : V -> Prep -> V2S ;
---  mkVV  : V -> VV ;
---  mkV2V : V -> Prep -> Prep -> V2V ;
---  mkVA  : V -> VA ;
---  mkV2A : V -> Prep -> V2A ;
---  mkVQ  : V -> VQ ;
---  mkV2Q : V -> Prep -> V2Q ;
---
---  mkAS  : A -> AS ;
---  mkA2S : A -> Prep -> A2S ;
---  mkAV  : A -> AV ;
---  mkA2V : A -> Prep -> A2V ;
---
----- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
----- $V0$ is just $V$; the second argument is treated as adverb.
---
---  V0 : Type ;
---  AS, A2S, AV, A2V : Type ;
---
-----.
-----2 Definitions of paradigms
-----
----- The definitions should not bother the user of the API. So they are
----- hidden from the document.
---
---  Gender = MorphoHin.Gender ; 
---  Number = MorphoHin.Number ;
---  Case = MorphoHin.Case ;
---  human = Masc ; 
---  nonhuman = Neutr ;
---  masculine = Masc ;
---  feminine = Fem ;
---  singular = Sg ;
---  plural = Pl ;
---  nominative = Nom ;
---  genitive = Gen ;
---
---  Preposition : Type = Str ; -- obsolete
---
---  regN = \ray -> 
---    let rays = add_s ray
---     in
---       mk2N ray rays ;
---
---
---  add_s : Str -> Str = \w -> case w of {
---    _ + ("io" | "oo")                         => w + "s" ;   -- radio, bamboo
---    _ + ("s" | "z" | "x" | "sh" | "ch" | "o") => w + "es" ;  -- bus, hero
---    _ + ("a" | "o" | "u" | "e") + "y"  => w + "s" ;   -- boy
---    x + "y"                            => x + "ies" ; -- fly
---    _                                  => w + "s"     -- car
---    } ;
---
---  mk2N = \man,men -> 
---    let mens = case last men of {
---      "s" => men + "'" ;
---      _   => men + "'s"
---      }
---    in
---    mk4N man men (man + "'s") mens ;
---
---  mk4N = \man,men,man's,men's -> 
---    mkNoun man man's men men's ** {g = Neutr ; lock_N = <>} ;
---
---  genderN g man = {s = man.s ; g = g ; lock_N = <>} ;
---
---  compoundN s n = {s = \\x,y => s ++ n.s ! x ! y ; g=n.g ; lock_N = <>} ;
---
---  mkPN = overload {
---    mkPN : Str -> PN = regPN ;
---    mkPN : N -> PN = nounPN
---  } ;
---
---
---  mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
---  regN2 n = mkN2 (regN n) (mkPrep "of") ;
---  mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
---
-----3 Relational common noun phrases
-----
----- In some cases, you may want to make a complex $CN$ into a
----- relational noun (e.g. "the old town hall of").
---
---  cnN2 : CN -> Prep -> N2 ;
---  cnN3 : CN -> Prep -> Prep -> N3 ;
---
----- This is obsolete.
---  cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
---  cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
---
---  regPN n = regGenPN n human ;
---  regGenPN n g = nameReg n g ** {g = g ; lock_PN = <>} ;
---  nounPN n = {s = n.s ! singular ; g = n.g ; lock_PN = <>} ;
---
---  mk2A a b = mkAdjective a a a b ** {lock_A = <>} ;
---  regA a = regADeg a ** {lock_A = <>} ;
---
---  mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ;
---
---  ADeg = A ; ----
---
---  mkADeg a b c d = mkAdjective a b c d ** {lock_A = <>} ;
---
---  regADeg happy = 
---    let
---      happ = init happy ;
---      y    = last happy ;
---      happie = case y of {
---        "y" => happ + "ie" ;
---        "e" => happy ;
---        _   => happy + "e"
---        } ;
---      happily : Str = case happy of {
---        _ + "y" => happ + "ily" ;
---        _ + "ll" => happy + "y" ;
---        _   => happy + "ly"
---        } ;
---    in mkADeg happy (happie + "r") (happie + "st") happily ;
---
---  duplADeg fat = 
---    mkADeg fat 
---    (fat + last fat + "er") (fat + last fat + "est") (fat + "ly") ;
---
---  compoundADeg a =
---    let ad = (a.s ! AAdj Posit) 
---    in mkADeg ad ("more" ++ ad) ("most" ++ ad) (a.s ! AAdv) ;
---
---  adegA a = a ;
---
---  mkAdv x = ss x ** {lock_Adv = <>} ;
---  mkAdV x = ss x ** {lock_AdV = <>} ;
---  mkAdA x = ss x ** {lock_AdA = <>} ;
---
---  mkPrep p = ss p ** {lock_Prep = <>} ;
---  noPrep = mkPrep [] ;
---
---  mk5V a b c d e = mkVerb a b c d e ** {s1 = [] ; lock_V = <>} ;
---
---  regV cry = 
---    let
---      cr = init cry ;
---      y  = last cry ;
---      cries = (regN cry).s ! Pl ! Nom ; -- !
---      crie  = init cries ;
---      cried = case last crie of {
---        "e" => crie + "d" ;
---        _   => crie + "ed"
---        } ;
---      crying = case y of {
---        "e" => case last cr of {
---           "e" => cry + "ing" ; 
---           _ => cr + "ing" 
---           } ;
---        _   => cry + "ing"
---        }
---    in mk5V cry cries cried cried crying ;
---
---  reg2V fit fitted =
---   let fitt = Predef.tk 2 fitted ;
---   in mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "ing") ;
---
---  regDuplV fit = 
---    case last fit of {
---      ("a" | "e" | "i" | "o" | "u" | "y") => 
---        Predef.error (["final duplication makes no sense for"] ++ fit) ;
---      t =>
---       let fitt = fit + t in
---       mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "ing")
---      } ;
---
---  irregV x y z = let reg = (regV x).s in
---    mk5V x (reg ! VPres) y z (reg ! VPresPart) ** {s1 = [] ; lock_V = <>} ;
---
---  irreg4V x y z w = let reg = (regV x).s in
---    mk5V x (reg ! VPres) y z w ** {s1 = [] ; lock_V = <>} ;
---
---  irregDuplV fit y z = 
---    let 
---      fitting = (regDuplV fit).s ! VPresPart
---    in
---    mk5V fit (fit + "s") y z fitting ;
---
---  partV v p = verbPart v p ** {lock_V = <>} ;
---  reflV v = {s = v.s ; part = v.part ; lock_V = v.lock_V ; isRefl = True} ;
---
---  prepV2 v p = v ** {s = v.s ; s1 = v.s1 ; c2 = p.s ; lock_V2 = <>} ;
---  dirV2 v = prepV2 v noPrep ;
---
---  mkV3 v p q = v ** {s = v.s ; s1 = v.s1 ; c2 = p.s ; c3 = q.s ; lock_V3 = <>} ;
---  dirV3 v p = mkV3 v noPrep p ;
---  dirdirV3 v = dirV3 v noPrep ;
---
---  mkVS  v = v ** {lock_VS = <>} ;
---  mkVV  v = {
---    s = table {VVF vf => v.s ! vf ; _ => variants {}} ; 
---    isAux = False ; lock_VV = <>
---    } ;
---  mkVQ  v = v ** {lock_VQ = <>} ;
---
---  V0 : Type = V ;
-----  V2S, V2V, V2Q : Type = V2 ;
---  AS, A2S, AV : Type = A ;
---  A2V : Type = A2 ;
---
---  mkV0  v = v ** {lock_V = <>} ;
---  mkV2S v p = prepV2 v p ** {lock_V2S = <>} ;
---  mkV2V v p t = prepV2 v p ** {isAux = False ; lock_V2V = <>} ;
---  mkVA  v = v ** {lock_VA = <>} ;
---  mkV2A v p = prepV2 v p ** {lock_V2A = <>} ;
---  mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ;
---
---  mkAS  v = v ** {lock_A = <>} ;
---  mkA2S v p = mkA2 v p ** {lock_A = <>} ;
---  mkAV  v = v ** {lock_A = <>} ;
---  mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
---
---
----- pre-overload API and overload definitions
---
---  mk4N : (man,men,man's,men's : Str) -> N ;
---  regN : Str -> N ;
---  mk2N : (man,men : Str) -> N ;
---  genderN : Gender -> N -> N ;
---  compoundN : Str -> N -> N ;
---
---  mkN = overload {
---    mkN : (man,men,man's,men's : Str) -> N = mk4N ;
---    mkN : Str -> N = regN ;
---    mkN : (man,men : Str) -> N = mk2N ;
---    mkN : Gender -> N -> N = genderN ;
---    mkN : Str -> N -> N = compoundN
---    } ;
---
---
---  mk2A : (free,freely : Str) -> A ;
---  regA : Str -> A ;
---
---  mkA = overload {
---    mkA : Str -> A = regA ;
---    mkA : (fat,fatter : Str) -> A = \fat,fatter -> 
---      mkAdjective fat fatter (init fatter + "st") (fat + "ly") ** {lock_A = <>} ;
---    mkA : (good,better,best,well : Str) -> A = \a,b,c,d ->
---      mkAdjective a b c d  ** {lock_A = <>}
---    } ;
---
---  compoundA = compoundADeg ;
---
---
---  mk5V : (go, goes, went, gone, going : Str) -> V ;
---  regV : (cry : Str) -> V ;
---  reg2V : (stop, stopped : Str) -> V;
---  irregV : (drink, drank, drunk  : Str) -> V ;
---  irreg4V : (run, ran, run, running  : Str) -> V ;
---
---  -- Use reg2V instead
---  regDuplV : Str -> V ;
---  -- Use irreg4V instead
---  irregDuplV : (get,   got,   gotten : Str) -> V ;
---
---  mkV = overload {
---    mkV : (cry : Str) -> V = regV ;
---    mkV : (stop, stopped : Str) -> V = reg2V ;
---    mkV : (drink, drank, drunk  : Str) -> V = irregV ;
---    mkV : (run, ran, run, running  : Str) -> V = irreg4V ;
---    mkV : (go, goes, went, gone, going : Str) -> V = mk5V
---  };
---
---  prepV2 : V -> Prep -> V2 ;
---  dirV2 : V -> V2 ;
---
---  mkV2 = overload {
---    mkV2  : V -> Prep -> V2 = prepV2;
---    mkV2  : V -> V2 = dirV2
---  }; 
---
---
------- obsolete
---
----- Comparison adjectives may two more forms. 
---
---  ADeg : Type ;
---
---  mkADeg : (good,better,best,well : Str) -> ADeg ;
---
----- The regular pattern recognizes two common variations: 
----- "-e" ("rude" - "ruder" - "rudest") and
----- "-y" ("happy - happier - happiest - happily")
---
---  regADeg : Str -> ADeg ;      -- long, longer, longest
---
----- However, the duplication of the final consonant is nor predicted,
----- but a separate pattern is used:
---
---  duplADeg : Str -> ADeg ;      -- fat, fatter, fattest
---
----- If comparison is formed by "more", "most", as in general for
----- long adjective, the following pattern is used:
---
---  compoundADeg : A -> ADeg ; -- -/more/most ridiculous
---
----- From a given $ADeg$, it is possible to get back to $A$.
---
---  adegA : ADeg -> A ;
---
---
---  regPN    : Str -> PN ;          
---  regGenPN : Str -> Gender -> PN ;     -- John, John's
---
----- Sometimes you can reuse a common noun as a proper name, e.g. "Bank".
---
---  nounPN : N -> PN ;
---
---
---
-}
+--# -path=.:../abstract:../../prelude:../common
+--
+----1 Hinu Lexical Paradigms
+
+resource ParadigmsHin = open 
+  Predef, 
+  Prelude, 
+  MorphoHin,
+  CatHin,
+  CommonHindustani,
+  ParamX
+  in {
+--2 Parameters 
+
+oper
+  masculine : Gender ;
+  feminine : Gender ;
+  singular : Number;
+  plural : Number;
+  
+  singular = Sg ; plural = Pl;
+
+  masculine = Masc ; feminine = Fem ; --i
+
+
+--2 Nouns
+
+  mkN = overload {
+    mkN : Str -> N 
+      = \s -> regNoun s ** {lock_N = <>} ;
+    mkN : Str -> Gender -> N 
+      = \s,g -> reggNoun s g ** {lock_N = <>} ;
+    mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N 
+      = \sd,so,sv,pd,po,pv,g -> mkNoun sd so sv pd po pv g ** {lock_N = <>} ;
+    } ;
+  mkN2 : N -> Prep -> Str -> N2;
+  mkN2 = \n,p,c -> n ** {lock_N2 = <> ; c2 = p.s ! n.g ; c3 = c } ; 
+  
+  mkN3 : N -> Prep -> Str -> Str-> N3 ;
+  mkN3 = \n,p,q,r -> n ** {lock_N3 = <> ; c2 = p.s ! n.g ; c3 = q ; c4 = r} ;
+  
+-- Compound Nouns  
+
+    mkCmpdNoun : Str -> N -> N
+     = \s,noun -> {s =\\n,c => s ++ noun.s ! n ! c ; g = noun.g ; lock_N = <>};
+ 
+
+-- Proper names     
+  mkPN : Str -> PN = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
+  personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
+  demoPN : Str -> Str -> Str -> Quant = \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
+  mkDet : Str -> Str -> Str -> Str -> Number -> Det = \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
+  mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP = \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ;  lock_IP = <>}; 
+
+-- AdN
+  mkAdN : Str -> AdN = \s -> { s = s ; p = False ; lock_AdN = <> } ; 
+--2 Adjectives
+
+  mkA = overload {
+    mkA : Str-> A 
+      = \s -> regAdjective s ** {lock_A = <>} ;
+	mkA : Str -> Str -> A2
+	  = \a,c -> let n = regAdjective a in {s = n.s; c2 = c} ** {lock_A2 = <>} ;
+    } ;
+
+--2 Verbs
+
+  mkV : Str -> V 
+      = \s -> mkVerb s ** {lock_V = <>} ;
+
+  mkV2 = overload {
+    mkV2 : Str -> V2 
+      = \s -> mkVerb s **  {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
+    mkV2 : V -> V2 
+      = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
+    mkV2 : V -> Str -> V2 
+      = \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
+    } ;
+  
+  mkV3 : V -> Str -> Str -> V3;
+    mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
+  mkV2V : V -> Str -> Str -> Bool -> V2V ;
+    mkV2V v s1 s2 b = v ** {isAux = b ; c1 = s1 ; c2 = s2 ; lock_V2V = <>} ;
+  
+-- compund verbs
+   compoundV = overload {
+   compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;     
+   compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
+   };
+ 
+
+----2 Adverbs
+  mkAdv : Str -> Adv = \str -> {s = \\_ => str ; lock_Adv = <>};
+
+----2 Prepositions
+
+  mkPrep : Str -> Str -> Prep ;
+    mkPrep s1 s2 = makePrep s1 s2 ** {lock_Prep = <>};
+    
+--3 Determiners and quantifiers
+
+--  mkQuant : overload {
+    mkQuant : Pron -> Quant ;
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant ;
+--  } ;
+  
+--  mkQuant = overload {
+    mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>};
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant = mkQuantifier;
+--  } ;
+
+--2 Conjunctions
+  mkConj : overload {
+    mkConj : Str -> Conj ;                  -- and (plural agreement)
+    mkConj : Str -> Number -> Conj ;        -- or (agrement number given as argument)
+    mkConj : Str -> Str -> Conj ;           -- both ... and (plural)
+    mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
+  } ;
+ mkConj = overload {
+    mkConj : Str -> Conj = \y -> mk2Conj [] y plural ;
+    mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
+    mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ;
+    mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
+  } ;
+
+  mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> 
+    lin Conj (sd2 x y ** {n = n}) ;  
+
+--  mkV0  : V -> V0 ;
+--  mkVS  : V -> VS ;
+--  mkV2S : V -> Prep -> V2S ;
+  mkVV  : V -> VV = \v ->  lin VV (v ** {isAux = False});
+    
+
+--  mkV2V : V -> Prep -> Prep -> V2V ;
+--  mkVA  : V -> VA ;
+--  mkV2A : V -> Prep -> V2A ;
+--  mkVQ  : V -> VQ ;
+--  mkV2Q : V -> Prep -> V2Q ;
+--
+--  mkAS  : A -> AS ;
+--  mkA2S : A -> Prep -> A2S ;
+--  mkAV  : A -> AV ;
+--  mkA2V : A -> Prep -> A2V ;
+--
+---- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
+---- $V0$ is just $V$; the second argument is treated as adverb.
+--
+--  V0 : Type ;
+--  AS, A2S, AV, A2V : Type ;
+--
+----.
+----2 Definitions of paradigms
+----
+---- The definitions should not bother the user of the API. So they are
+---- hidden from the document.
+--
+--  Gender = MorphoHin.Gender ; 
+--  Number = MorphoHin.Number ;
+--  Case = MorphoHin.Case ;
+--  human = Masc ; 
+--  nonhuman = Neutr ;
+--  masculine = Masc ;
+--  feminine = Fem ;
+--  singular = Sg ;
+--  plural = Pl ;
+--  nominative = Nom ;
+--  genitive = Gen ;
+  
+}
diff --git a/lib/src/hindi/PhraseHin.gf b/lib/src/hindi/PhraseHin.gf
--- a/lib/src/hindi/PhraseHin.gf
+++ b/lib/src/hindi/PhraseHin.gf
@@ -1,24 +1,2 @@
-concrete PhraseHin of Phrase = CatHin ** open Prelude, ResHin in {
---
---  lin
---    PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
---
---    UttS s = s ;
---    UttQS qs = {s = qs.s ! QDir} ;
---    UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ;
---    UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
---    UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
---
---    UttIP ip = {s = ip.s ! Nom} ; --- Acc also
---    UttIAdv iadv = iadv ;
---    UttNP np = {s = np.s ! Nom} ;
---    UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
---    UttAdv adv = adv ;
---
---    NoPConj = {s = []} ;
---    PConjConj conj = {s = conj.s2} ; ---
---
---    NoVoc = {s = []} ;
---    VocNP np = {s = "," ++ np.s ! Nom} ;
---
-}
+concrete PhraseHin of Phrase = CatHin ** PhraseHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/QuestionHin.gf b/lib/src/hindi/QuestionHin.gf
--- a/lib/src/hindi/QuestionHin.gf
+++ b/lib/src/hindi/QuestionHin.gf
@@ -1,55 +1,2 @@
-concrete QuestionHin of Question = CatHin ** open ResHin, Prelude in {
---
---  flags optimize=all_subs ;
---
---  lin
---
---    QuestCl cl = {
---      s = \\t,a,p => 
---            let cls = cl.s ! t ! a ! p 
---            in table {
---              QDir   => cls ! OQuest ;
---              QIndir => "if" ++ cls ! ODir
---              } ---- "whether" in ExtHin
---      } ;
---
---    QuestVP qp vp = 
---      let cl = mkClause (qp.s ! Nom) (agrP3 qp.n) vp
---      in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;
---
---    QuestSlash ip slash = 
---      mkQuestion (ss (slash.c2 ++ ip.s ! Acc)) slash ;
---      --- stranding in ExratHin 
---
---    QuestIAdv iadv cl = mkQuestion iadv cl ;
---
---    QuestIComp icomp np = 
---      mkQuestion icomp (mkClause (np.s ! Nom) np.a (predAux auxBe)) ;
---
---
---    PrepIP p ip = {s = p.s ++ ip.s ! Acc} ;
---
---    AdvIP ip adv = {
---      s = \\c => ip.s ! c ++ adv.s ;
---      n = ip.n
---      } ;
--- 
---    IdetCN idet cn = {
---      s = \\c => idet.s ++ cn.s ! idet.n ! c ; 
---      n = idet.n
---      } ;
---
---    IdetIP idet = {
---      s = \\c => idet.s ; 
---      n = idet.n
---      } ;
---
---    IdetQuant idet num = {
---      s = idet.s ! num.n ++ num.s ; 
---      n = num.n
---      } ;
---
---    CompIAdv a = a ;
---    CompIP p = ss (p.s ! Nom) ;
---
-}
+concrete QuestionHin of Question = CatHin ** QuestionHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/README b/lib/src/hindi/README
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/README
@@ -0,0 +1,10 @@
+Some of the sources are transliterated, in
+
+ ./src
+ ../hindustani
+
+Before compilation, do
+
+  gf -s <translit.gfs
+
+to get unicode.
diff --git a/lib/src/hindi/RelativeHin.gf b/lib/src/hindi/RelativeHin.gf
--- a/lib/src/hindi/RelativeHin.gf
+++ b/lib/src/hindi/RelativeHin.gf
@@ -1,54 +1,2 @@
-concrete RelativeHin of Relative = CatHin ** open ResHin in {
---
---  flags optimize=all_subs ;
---
---  lin
---
---    RelCl cl = {
---      s = \\t,a,p,_ => "such" ++ "that" ++ cl.s ! t ! a ! p ! ODir ; 
---      c = Nom
---      } ;
---
---    RelVP rp vp = {
---      s = \\t,ant,b,ag => 
---        let 
---          agr = case rp.a of {
---            RNoAg => ag ;
---            RAg a => a
---            } ;
---          cl = mkClause (rp.s ! RC (fromAgr agr).g Nom) agr vp
---        in
---        cl.s ! t ! ant ! b ! ODir ;
---      c = Nom
---      } ;
---
----- Pied piping: "at which we are looking". Stranding and empty
----- relative are defined in $ExtraHin.gf$ ("that we are looking at", 
----- "we are looking at").
---
---    RelSlash rp slash = {
---      s = \\t,a,p,agr => 
---          slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! ODir ;
---      c = Acc
---      } ;
---
---    FunRP p np rp = {
---      s = \\c => np.s ! Acc ++ p.s ++ rp.s ! RPrep (fromAgr np.a).g ;
---      a = RAg np.a
---      } ;
---
---    IdRP = 
---      let varr : Str -> Str = \x -> variants {x ; "that"} --- for bwc
---      in {
---      s = table {
---        RC _ Gen => "whose" ; 
---        RC Neutr _  => varr "which" ;
---        RC _ Acc    => varr "whom" ;
---        RC _ Nom    => varr "who" ;
---        RPrep Neutr => "which" ;
---        RPrep _     => "whom"
---        } ;
---      a = RNoAg
---      } ;
---
-}
+concrete RelativeHin of Relative = CatHin ** RelativeHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/ResHin.gf b/lib/src/hindi/ResHin.gf
--- a/lib/src/hindi/ResHin.gf
+++ b/lib/src/hindi/ResHin.gf
@@ -1,300 +1,2 @@
---# -path=.:../abstract:../common:../../prelude
---
---1 Hindi auxiliary operations.
---
--- This module contains operations that are needed to make the
--- resource syntax work. 
-
-resource ResHin = ParamX ** open Prelude in {
-
-  flags optimize=all ;
-
-  param 
-    Case = Dir | Obl | Voc ;
-    Gender = Masc | Fem ;
-
-  oper
-    Noun = {s : Number => Case => Str ; g : Gender} ;
-
-    mkNoun : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun = 
-      \sd,so,sv,pd,po,pv,g -> {
-      s = table Number [table Case [sd;so;sv] ; table Case [pd;po;pv]] ;
-      g = g
-      } ;
-
-    reggNoun : Str -> Gender -> Noun = \s,g -> case <s,g> of {
-      <-(_ + ("A" | "I")), Fem> => 
-           mkNoun s s s (s + "eM") (s + "oM") (s + "o") Fem ; 
-      _ => regNoun s ** {g = g}
-      } ; 
-
-    regNoun : Str -> Noun = \s -> case s of {
-      x + "iyA" => 
-        mkNoun s s       s   (x + "iyAM") (x + "iyoN") (x + "iyo") Fem ;
-      x + "A"   => 
-        mkNoun s (x + "e") (x + "e") (x + "e") (x + "oN") (x + "o") Masc ;
-      x + "I"   => 
-        mkNoun s s       s   (x + "iyAM") (x + "iyoN") (x + "iyo") Fem ;
-      _  => 
-        mkNoun s s       s   s             (s + "oN")   (s + "o")   Masc
-      } ; 
-
-
-    Adjective = {s : Gender => Number => Case => Str} ;
-
-    mkAdjective : (x1,x2,x3 : Str) -> Adjective = \smd,sm,f -> {
-      s = \\g,n,c => case <g,n,c> of {
-        <Masc,Sg,Dir> => smd ;
-        <Masc>        => sm ;
-        _             => f 
-        }
-      } ;
-
-    regAdjective : Str -> Adjective = \s -> case s of {
-      acch + "A" => mkAdjective s (acch + "e") (acch + "I") ;
-      _ => mkAdjective s s s
-      } ;
-
-  param 
-    VForm = 
-       VInf
-     | VStem
-     | VImpf Gender Number
-     | VPerf Gender Number
-     | VSubj Number Person
-     | VFut  Number Person Gender
-     | VAbs
-     | VReq
-     | VImp
-     | VReqFut
-     ;
-
-  oper
-    Verb = {s : VForm => Str} ;
-
-    mkVerb : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,x15 : Str) -> Verb = 
-      \inf,stem,ims,imp,ifs,ifp,pms,pmp,pfs,pfp,ss1,ss2,sp2,sp3,r -> {
-        s = 
-        let ga : Number -> Gender -> Str = \n,g -> 
-          (regAdjective "gA").s ! g ! n ! Dir 
-        in table {
-          VInf => inf ;
-          VStem => stem ;
-          VImpf Masc Sg => ims ;
-          VImpf Masc Pl => imp ;
-          VImpf Fem  Sg => ifs ;
-          VImpf Fem  Pl => ifp ;
-          VPerf Masc Sg => pms ;
-          VPerf Masc Pl => pmp ;
-          VPerf Fem  Sg => pfs ;
-          VPerf Fem  Pl => pfp ;
-          VSubj Sg   P1 => ss1 ; 
-          VSubj Sg   _  => ss2 ; 
-          VSubj Pl   P2 => sp2 ; 
-          VSubj Pl   _  => sp3 ;
-          VFut  Sg   P1 g => ss1 + ga Sg g ; 
-          VFut  Sg   _  g => ss2 + ga Sg g ; 
-          VFut  Pl   P2 g => sp2 + ga Pl g ; 
-          VFut  Pl   _  g => sp3 + ga Pl g ;
-          VAbs  => stem + "kar" ; --- ke
-          VReq  => r ;
-          VImp  => sp2 ;
-          VReqFut => stem + "ie-gA"
-          }
-        } ;
-
-    regVerb : Str -> Verb = \cal -> 
-      let caly : Str = case cal of {
-        _ + ("A" | "e") => cal + "y" ;
-        c + "U" => c + "uy" ;
-        c + "I" => c + "iy" ;
-        _ => cal
-        }
-      in
-      mkVerb
-        (cal + "nA") cal
-        (cal + "tA") (cal + "te") (cal + "tI") (cal + "tI")
-        (caly + "A")  (caly + "e")  (caly + "I")  (caly + "IN")
-        (caly + "UM") (caly + "e")  (caly + "o")   (caly + "eN") 
-        (caly + "ie-") ;
-
-  param
-    CTense = CPresent | CPast | CFuture ;
-  oper 
-    copula : CTense -> Number -> Person -> Gender -> Str = \t,n,p,g -> 
-      case <t,n,p,g> of {
-        <CPresent,Sg,P1,_   > => "hUM" ;
-        <CPresent,Sg,P2,_   > => "hE" ;
-        <CPresent,Sg,P3,_   > => "hE" ;
-        <CPresent,Pl,P1,_   > => "hEN" ;
-        <CPresent,Pl,P2,_   > => "ho" ;
-        <CPresent,Pl,P3,_   > => "hEN" ;
-        <CPast,   Sg,_ ,Masc> => "TA" ;
-        <CPast,   Sg,_ ,Fem > => "TI" ;
-        <CPast,   Pl,_ ,Masc> => "Te" ;
-        <CPast,   Pl,_ ,Fem > => "TIN" ;
-        <CFuture, Sg,P1,Masc> => "hUNgA" ;
-        <CFuture, Sg,P1,Fem > => "hUNgI" ;
-        <CFuture, Sg,_ ,Masc> => "hogA" ;
-        <CFuture, Sg,_ ,Fem > => "hogI" ;
-        <CFuture, Pl,P2,Masc> => "hoge" ;
-        <CFuture, Pl,_ ,Masc> => "hoNge" ;
-        <CFuture, Pl,P2,Fem > => "hogi:" ;
-        <CFuture, Pl,_ ,Fem > => "hoNgi:"
-        } ;
-
-  param
-    PronCase = PC Case | PObj | PPoss ;
-  oper
-    personalPronoun : Person -> Number -> {s : PronCase => Str} = \p,n -> 
-      case <p,n> of {
-        <P1,Sg> => {s = table PronCase ["mEN"  ; "muJ" ; "muJ"  ; "muJe"   ; "merA"]} ;
-        <P1,Pl> => {s = table PronCase ["ham"  ; "ham" ; "ham"  ; "hameN"  ; "hamArA"]} ;
-        <P2,Sg> => {s = table PronCase ["tU"   ; "tuJ" ; "tuJ"  ; "tuJe"   ; "terA"]} ;
-        <P2,Pl> => {s = table PronCase ["tum"  ; "tum" ; "tum"  ; "tum"    ; "tumhArA"]} ;
-        <P3,Sg> => {s = table PronCase ["vah"  ; "u-s" ; "u-s"  ; "u-se"    ; "u-skA"]} ;
-        <P3,Pl> => {s = table PronCase ["ve"   ; "u-n" ; "u-n"  ; "u-nheN" ; "u-nkA"]}
-        } ;  
-      ---- the third is the vocative - is it really this way?
-
-  -- the Hindi verb phrase
-
----    CTense = CPresent | CPast | CFuture ;
-
-      
-
-  param
-    VPHTense = 
-       VPGenPres  -- impf hum       nahim    "I go"
-     | VPImpPast  -- impf Ta        nahim    "I went"
-     | VPContPres -- stem raha hum  nahim    "I am going"
-     | VPContPast -- stem raha Ta   nahim    "I was going"
-     | VPPerf     -- perf           na/nahim "I went"
-     | VPPerfPres -- perf hum       na/nahim "I have gone"
-     | VPPerfPast -- perf Ta        na/nahim "I had gone"          
-     | VPSubj     -- subj           na       "I may go"
-     | VPFut      -- fut            na/nahim "I shall go"
-     ;
-
-    VPHForm = 
-       VPTense VPHTense Agr -- 9 * 12
-     | VPReq
-     | VPImp
-     | VPReqFut
-     | VPInf
-     | VPStem
-     ;
-
-    VType = VIntrans | VTrans | VTransPost ;
-
-  oper
-    objVType : VType -> NPCase = \vt -> case vt of {
-      VTrans => NPObj ;
-      _ => NPC Obl
-      } ;
-
-    VPH : Type = {
-      s    : Bool => VPHForm => {fin, inf, neg : Str} ;
-      obj  : {s : Str ; a : Agr} ; 
-      subj : VType ;
-      comp : Agr => Str
-      } ; 
-
-    predV : Verb -> VPH = \verb -> {
-      s = \\b,vh => 
-       let 
-         na = if_then_Str b [] "na" ;
-         nahim = if_then_Str b [] "nahIN" ;
-       in
-       case vh of {
-         VPTense VPGenPres (Ag g n p) => 
-           {fin = copula CPresent n p g ; inf = verb.s ! VImpf g n ; neg = nahim} ;
-         VPTense VPImpPast (Ag g n p) => 
-           {fin = copula CPast n p g ; inf = verb.s ! VImpf g n ; neg = nahim} ;
-         VPTense VPContPres (Ag g n p) => 
-           {fin = copula CPresent n p g ; 
-            inf = verb.s ! VStem ++ raha g n ; neg = nahim} ;
-         VPTense VPContPast (Ag g n p) => 
-           {fin = copula CPast n p g ; 
-            inf = verb.s ! VStem ++ raha g n ; neg = nahim} ;
-         VPTense VPPerf (Ag g n _) => 
-           {fin = verb.s ! VPerf g n ; inf = [] ; neg = nahim} ;
-         VPTense VPPerfPres (Ag g n p) => 
-           {fin = copula CPresent n p g ; inf = verb.s ! VPerf g n ; neg = nahim} ;
-         VPTense VPPerfPast (Ag g n p) => 
-           {fin = copula CPast n p g ; inf = verb.s ! VPerf g n ; neg = nahim} ;
-         VPTense VPSubj (Ag _ n p) => {fin = verb.s ! VSubj n p ; inf = [] ; neg = na} ;
-         VPTense VPFut (Ag g n p) => {fin = verb.s ! VFut n p g ; inf = [] ; neg = na} ;
-         VPInf => {fin = verb.s ! VStem ; inf = [] ; neg = na} ;
-         _ => {fin = verb.s ! VStem ; inf = [] ; neg = na} ----
-         } ;
-      obj = {s = [] ; a = defaultAgr} ;
-      subj = VIntrans ;
-      comp = \\_ => []
-      } ;
-
-    raha : Gender -> Number -> Str = \g,n -> 
-      (regAdjective "rahA").s ! g ! n ! Dir ;
-
-    VPHSlash = VPH ** {c2 : Compl} ;
-
-    Clause : Type = {s : VPHTense => Bool => Str} ;
-
-    Compl : Type = {s : Str ; c : VType} ;
-
-    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
-      s = vps.s ;
-      obj = {s = vps.obj.s ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
-      subj = vps.c2.c ;
-      comp = vps.comp 
-      } ;
-
-  param
-    Agr = Ag Gender Number Person ;
-    NPCase = NPC Case | NPObj | NPErg ;
-
-  oper
-    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n P3 ;
-
-    defaultAgr : Agr = agrP3 Masc Sg ;
-
-    npcase2case : NPCase -> Case = \npc -> case npc of {
-      NPC c => c ;
-      NPObj => Obl ;
-      NPErg => Obl
-      } ;
-
-    np2pronCase : NPCase -> PronCase = \np -> case np of {
-      NPC c => PC c ;
-      NPObj => PObj ;
-      NPErg => PC Obl
-      } ;
-
-    toNP : (Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
-      NPC c => pn ! c ;
-      NPObj => pn ! Obl ;
-      NPErg => pn ! Obl ++ "ne"
-      } ;
-
-    NP : Type = {s : NPCase => Str ; a : Agr} ;
-
-    mkClause : NP -> VPH -> Clause = \np,vp -> {
-      s = \\vt,b => 
-        let 
-          subjagr : NPCase * Agr = case vt of {
-            VPPerf => case vp.subj of {
-              VTrans     => <NPErg, vp.obj.a> ;
-              VTransPost => <NPErg, defaultAgr> ;
-              _ => <NPC Dir, np.a>
-              } ;
-            _ => <NPC Dir, np.a>
-            } ;
-          subj = subjagr.p1 ;
-          agr  = subjagr.p2 ;
-          vps  = vp.s ! b ! VPTense vt agr ;
-        in
-        np.s ! subj ++ vp.obj.s ++ vp.comp ! np.a ++ vps.neg ++ vps.inf ++ vps.fin
-      } ;
-
-
-}
+instance ResHin of ResHindustani = DiffHin ** open CommonHindustani, Prelude, Predef in {
+} ;
diff --git a/lib/src/hindi/SentenceHin.gf b/lib/src/hindi/SentenceHin.gf
--- a/lib/src/hindi/SentenceHin.gf
+++ b/lib/src/hindi/SentenceHin.gf
@@ -1,66 +1,2 @@
-concrete SentenceHin of Sentence = CatHin ** open Prelude, ResHin in {
-
-  flags optimize=all_subs ;
-
-  lin
-
-    PredVP np vp = mkClause np vp ;
-
---    PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
---
---    ImpVP vp = {
---      s = \\pol,n => 
---        let 
---          agr   = AgP2 (numImp n) ;
---          verb  = infVP True vp agr ;
---          dont  = case pol of {
---            CNeg True => "don't" ;
---            CNeg False => "do" ++ "not" ;
---            _ => []
---            }
---        in
---        dont ++ verb
---    } ;
---
---    SlashVP np vp = 
---      mkClause (np.s ! Nom) np.a vp ** {c2 = vp.c2} ;
---
---    AdvSlash slash adv = {
---      s  = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
---      c2 = slash.c2
---    } ;
---
---    SlashPrep cl prep = cl ** {c2 = prep.s} ;
---
---    SlashVS np vs slash = 
---      mkClause (np.s ! Nom) np.a 
---        (insertObj (\\_ => conjThat ++ slash.s) (predV vs))  **
---        {c2 = slash.c2} ;
---
---    EmbedS  s  = {s = conjThat ++ s.s} ;
---    EmbedQS qs = {s = qs.s ! QIndir} ;
---    EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
---
---    UseCl  t a p cl = {
---      s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! ODir
---    } ;
---    UseQCl t a p cl = {
---      s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! q
---    } ;
---    UseRCl t a p cl = {
---      s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! r ;
---      c = cl.c
---    } ;
---    UseSlash t a p cl = {
---      s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p  ! ODir ;
---      c2 = cl.c2
---    } ;
---
---    AdvS a s = {s = a.s ++ "," ++ s.s} ;
---
---    RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ;
---
---  oper
---    ctr = contrNeg True ;  -- contracted negations
---
-}
+concrete SentenceHin of Sentence = CatHin ** SentenceHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/StructuralHin.gf b/lib/src/hindi/StructuralHin.gf
--- a/lib/src/hindi/StructuralHin.gf
+++ b/lib/src/hindi/StructuralHin.gf
@@ -1,134 +1,129 @@
-concrete StructuralHin of Structural = CatHin ** 
-  open MorphoHin, (P = ParadigmsHin), Prelude in {
-
-  flags optimize=all ;
-
-  lin
---  above_Prep = ss "above" ;
---  after_Prep = ss "after" ;
---  all_Predet = ss "all" ;
---  almost_AdA, almost_AdN = ss "almost" ;
---  although_Subj = ss "although" ;
---  always_AdV = ss "always" ;
---  and_Conj = sd2 [] "and" ** {n = Pl} ;
------b  and_Conj = ss "and" ** {n = Pl} ;
---  because_Subj = ss "because" ;
---  before_Prep = ss "before" ;
---  behind_Prep = ss "behind" ;
---  between_Prep = ss "between" ;
---  both7and_DConj = sd2 "both" "and" ** {n = Pl} ;
---  but_PConj = ss "but" ;
---  by8agent_Prep = ss "by" ;
---  by8means_Prep = ss "by" ;
---  can8know_VV, can_VV = {
---    s = table { 
---      VVF VInf => ["be able to"] ;
---      VVF VPres => "can" ;
---      VVF VPPart => ["been able to"] ;
---      VVF VPresPart => ["being able to"] ;
---      VVF VPast => "could" ;      --# notpresent
---      VVPastNeg => "couldn't" ;   --# notpresent
---      VVPresNeg => "can't"
---      } ;
---    isAux = True
---    } ;
---  during_Prep = ss "during" ;
---  either7or_DConj = sd2 "either" "or" ** {n = Sg} ;
---  everybody_NP = regNP "everybody" Sg ;
---  every_Det = mkDeterminer Sg "every" ;
---  everything_NP = regNP "everything" Sg ;
---  everywhere_Adv = ss "everywhere" ;
---  few_Det = mkDeterminer Pl "few" ;
------  first_Ord = ss "first" ; DEPRECATED
---  for_Prep = ss "for" ;
---  from_Prep = ss "from" ;
-  he_Pron = personalPronoun P3 Sg ** {a = Ag Masc Sg P3} ;
---  here_Adv = ss "here" ;
---  here7to_Adv = ss ["to here"] ;
---  here7from_Adv = ss ["from here"] ;
---  how_IAdv = ss "how" ;
---  how8many_IDet = mkDeterminer Pl ["how many"] ;
---  if_Subj = ss "if" ;
---  in8front_Prep = ss ["in front of"] ;
-  i_Pron = personalPronoun P1 Sg ** {a = Ag Masc Sg P1} ;
-  in_Prep = ss "meN" ;
---  it_Pron  = mkNP "it" "it" "its" Sg P3 Neutr ;
---  less_CAdv = ss "less" ;
---  many_Det = mkDeterminer Pl "many" ;
---  more_CAdv = ss "more" ;
---  most_Predet = ss "most" ;
---  much_Det = mkDeterminer Sg "much" ;
---  must_VV = {
---    s = table {
---      VVF VInf => ["have to"] ;
---      VVF VPres => "must" ;
---      VVF VPPart => ["had to"] ;
---      VVF VPresPart => ["having to"] ;
---      VVF VPast => ["had to"] ;      --# notpresent
---      VVPastNeg => ["hadn't to"] ;      --# notpresent
---      VVPresNeg => "mustn't"
---      } ;
---    isAux = True
---    } ;
------b  no_Phr = ss "no" ;
---  no_Utt = ss "no" ;
---  on_Prep = ss "on" ;
-------  one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
---  only_Predet = ss "only" ;
---  or_Conj = sd2 [] "or" ** {n = Sg} ;
---  otherwise_PConj = ss "otherwise" ;
---  part_Prep = ss "of" ;
---  please_Voc = ss "please" ;
---  possess_Prep = ss "of" ;
---  quite_Adv = ss "quite" ;
---  she_Pron = mkNP "she" "her" "her" Sg P3 Fem ;
---  so_AdA = ss "so" ;
---  somebody_NP = regNP "somebody" Sg ;
---  someSg_Det = mkDeterminer Sg "some" ;
---  somePl_Det = mkDeterminer Pl "some" ;
---  something_NP = regNP "something" Sg ;
---  somewhere_Adv = ss "somewhere" ;
---  that_Quant = mkQuant "that" "those" ;
---  there_Adv = ss "there" ;
---  there7to_Adv = ss "there" ;
---  there7from_Adv = ss ["from there"] ;
---  therefore_PConj = ss "therefore" ;
---  they_Pron = mkNP "they" "them" "their" Pl P3 Masc ; ---- 
---  this_Quant = mkQuant "this" "these" ;
---  through_Prep = ss "through" ;
---  too_AdA = ss "too" ;
---  to_Prep = ss "to" ;
---  under_Prep = ss "under" ;
---  very_AdA = ss "very" ;
---  want_VV = P.mkVV (P.regV "want") ;
-  we_Pron = personalPronoun P1 Pl ** {a = Ag Masc Pl P1} ;
-
---  whatPl_IP = mkIP "what" "what" "what's" Sg ;
---  whatSg_IP = mkIP "what" "what" "what's" Sg ;
---  when_IAdv = ss "when" ;
---  when_Subj = ss "when" ;
---  where_IAdv = ss "where" ;
---  which_IQuant = {s = \\_ => "which"} ;
------b  whichPl_IDet = mkDeterminer Pl ["which"] ;
------b  whichSg_IDet = mkDeterminer Sg ["which"] ;
---  whoSg_IP = mkIP "who" "whom" "whose" Sg ;
---  whoPl_IP = mkIP "who" "whom" "whose" Pl ;
---  why_IAdv = ss "why" ;
---  without_Prep = ss "without" ;
---  with_Prep = ss "with" ;
------b  yes_Phr = ss "yes" ;
---  yes_Utt = ss "yes" ;
---  youSg_Pron = mkNP "you" "you" "your" Sg P2 Masc ;
---  youPl_Pron = mkNP "you" "you" "your" Pl P2 Masc ;
---  youPol_Pron = mkNP "you" "you" "your" Sg P2 Masc ;
---
---
---oper
---  mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> {
---    s = table Number [x ; y]
---    } ;
---
-
-
-}
---
+concrete StructuralHin of Structural = CatHin ** 
+  open MorphoHin, ParadigmsHin, Prelude, NounHin,ParamX,CommonHindustani in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  lin
+  above_Prep = mkPrep "wपर" "wपर" ;
+  after_Prep = mkPrep ["कै बेद"]  ["कै बेद"] ;
+  all_Predet = ss "तमम" ;
+  almost_AdA, almost_AdN = mkAdN "तqरयब" ;
+  although_Subj = ss "गरचh-" ;
+  always_AdV = ss "हमयXह" ;
+  and_Conj = sd2 [] "wर" ** {n = Pl} ;
+  because_Subj = ss "कयwनकh-" ;
+  before_Prep = mkPrep "पहलै" "पहलै" ;
+  behind_Prep = mkPrep "पयचh-ै" "पयचh-ै" ;
+  between_Prep = mkPrep "दरमयं" "दरमयं" ;
+  both7and_DConj = sd2 "दwनwं" "wर" ** {n = Pl} ;
+  but_PConj = ss "लयकन" ;
+  by8agent_Prep = mkPrep "" "" ;
+  by8means_Prep = mkPrep "" "" ;
+--  can8know_VV,can_VV = mkV "सकन" ** { isAux = True} ;
+  during_Prep = mkPrep ["कै दरमयं"] ["कै दरमयं"] ;
+  either7or_DConj = sd2 "कwय यक" "य" ** {n = Sg} ;
+  everybody_NP =  MassNP (UseN (ParadigmsHin.mkN "हर कwय" "हर कwय" "हर कwय" "हर कwय" "हर कwय" "हर कwय" Masc )); -- not a good way coz need to include NounHin
+--  every_Det = mkDet "हर" Sg;
+  everything_NP = MassNP (UseN (ParadigmsHin.mkN "हर चयज़" "हर चयज़" "हर चयज़w" "सब चयज़यं" "सब चयज़wं" "सब चयज़w" Masc ));
+  everywhere_Adv = mkAdv "हर जगह" ;
+--  few_Det = mkDet "चनद" Pl ;
+  first_Ord = {s = "पेहल" ; n = Sg} ; --DEPRECATED
+  for_Prep = mkPrep "कयलयै" "कयलयै" ;
+  from_Prep = mkPrep "सै" "सै" ;
+  he_Pron = personalPN "wह" "स" "" "स क"  Sg Masc Pers3_Distant ;
+  here_Adv = mkAdv "यहं" ;
+  here7to_Adv = mkAdv "यहं पर" ;
+  here7from_Adv = mkAdv "यहं सै" ;
+  how_IAdv = ss "कयसै" ;
+  how8many_IDet = makeIDet "कतनै" "कतनय" Pl ;
+  if_Subj = ss "गर" ;
+  in8front_Prep = mkPrep ["कै समनै"] ["कै समनै"] ;
+  i_Pron = personalPN "मयं" "मजh-" "" "मयर" Sg Masc Pers1;
+  in_Prep = mkPrep "में" "में" ;
+  it_Pron  = personalPN "यह" "यह" "यह" "स क" Sg Masc Pers3_Near;
+  less_CAdv = {s = "कम" ; p = ""} ;
+--  many_Det = mkDet "बहत ज़यदह" Pl ;
+  more_CAdv = {s = "ज़यदh-" ; p = "" } ;
+  most_Predet = ss "ज़यदह तर" ;
+  --much_Det = mkDet "बहत" Pl  ;
+--  must_VV = {
+--    s = table {
+--      VVF VInf => ["हवे तॉ"] ;
+--      VVF VPres => "मुसत" ;
+--      VVF VPPart => ["हद तॉ"] ;
+--      VVF VPresPart => ["हविनग तॉ"] ;
+--      VVF VPast => ["हद तॉ"] ;      --# notpresent
+--      VVPastNeg => ["हदn'त तॉ"] ;      --# notpresent
+--      VVPresNeg => "मुसतn'त"
+--      } ;
+--    isAux = True
+--    } ;
+-----b  no_Phr = ss "नॉ" ;
+  no_Utt = ss "नहयं" ;
+  on_Prep = mkPrep "पर" "पर" ;
+--  one_Quant = demoPN "यक" "यक" "यक" ; -- DEPRECATED
+  only_Predet = ss "सरf" ;
+  or_Conj = sd2 [] "य" ** {n = Sg} ;
+  otherwise_PConj = ss "य पh-र" ;
+  part_Prep = mkPrep "" "" ;
+  please_Voc = ss "महरबनि" ;
+  possess_Prep = mkPrep "क" "कय" ;
+  quite_Adv = ss "कहमॉसह" ;
+  she_Pron = personalPN "wह" "स" "wह" "स कय" Sg Fem Pers3_Distant ;
+  so_AdA = ss "सॉ" ;
+  somebody_NP = MassNP (UseN (ParadigmsHin.mkN "कwय" "कwय" "कwय" "कwय" "कwय" "कwय" Masc ));
+  --someSg_Det = mkDet "कचh-" Sg ;
+  --somePl_Det = mkDet "कचh-" Pl ;
+  something_NP = MassNP (UseN (ParadigmsHin.mkN "कwय चयज़" "कwय चयज़" "कwय चयज़" "कh- चयज़यं" "कh- चयज़wं" "कh- चयज़w" Masc ));
+  somewhere_Adv = mkAdv "कहिन पर" ;
+  that_Quant = demoPN "wह" "स" "न" ;
+  that_Subj = ss "कह";
+  there_Adv = mkAdv "wहं" ;
+  there7to_Adv = mkAdv "wहं पर" ;
+  there7from_Adv = mkAdv ["wहं सै"] ;
+  therefore_PConj = ss "स लयै" ;
+  they_Pron = personalPN "wह" "wह" "wह" "न क" Pl Masc Pers3_Distant ; ---- 
+  this_Quant = demoPN "यह" "स" "न";      
+  through_Prep = mkPrep ["मयं सै"] ["मयं सै"] ;
+  too_AdA = ss "बहत" ;
+  to_Prep = mkPrep "कw" "कw" ;
+  under_Prep = mkPrep "नयचै" "नयचै" ;
+  very_AdA = ss "बहत" ;
+--  want_VV = mkV "चहन" ** { isAux = False} ;
+  we_Pron = personalPN "हम" "हम" "हम" "हमर" Pl Masc Pers1 ;
+  whatSg_IP = mkIP "कय" "किस" "किस" Sg Masc ;
+  whatPl_IP = mkIP "कय" "किन" "किन" Pl Masc ;
+  when_IAdv = ss "कब" ;
+  when_Subj = ss "कब" ;
+  where_IAdv = ss "कहं" ;
+  which_IQuant = {s = \\_ => "कwन सय"} ;
+--  whichPl_IDet = makeDet "कwन स" "कwन सय" "कwन सै" "कwन सय" ;
+--  whichSg_IDet = makeDet "कwन स" "कwन सय" "कwन सै" "कwन सय" ;
+  whoSg_IP = mkIP "कwन" "किस" "किस" Sg Masc  ;
+  whoPl_IP = mkIP "कwन" "कन" "कनहwं" Pl Masc ;
+  why_IAdv = ss "कयwं" ;
+  without_Prep = mkPrep ["कै बघयर"] ["कै बघयर"] ;
+  with_Prep = mkPrep ["कै सतh-"] ["कै सतh-"] ;
+--  yes_Phr = ss "हं" ;
+  yes_Utt = ss "हं" ;
+  youSg_Pron = personalPN "तम" "तम" "तम" "तमh-र" Sg Masc Pers2_Casual ;
+  youPl_Pron = personalPN "तम" "तम" "तम" "तमh-र" Pl Masc Pers2_Casual ;
+  youPol_Pron = personalPN "ाप" "ाफ" "ाफ" "ाप क" Sg Masc Pers2_Respect  ;
+  no_Quant =  demoPN " कwय नहयं" "कwय नहयं" "कwय नहयं" ; 
+  not_Predet = {s="नहयं"} ;
+  if_then_Conj = sd2 "गर" "तw" ** {n = Sg} ; 
+  at_least_AdN = mkAdN ["कम ज़ कम"] ;
+  at_most_AdN = mkAdN ["ज़यदह सै ज़यदह"];
+  nothing_NP = MassNP (UseN (ParadigmsHin.mkN "कwय चयज़ नहयं" "कwय चयज़ नहयं" "कwय चयज़ नहयं" "कwय चयज़ नहयं" "कwय चयज़ नहयं" "कwय चयज़ नहयं" Masc )); 
+  except_Prep = mkPrep "सwै" "सwै" ;
+  nobody_NP = MassNP (UseN (ParadigmsHin.mkN "कwय नहयं" "कwय नहयं" "कwय नहयं" "कwय नहयं" "कwय नहयं" "कwय नहयं" Masc ));  
+
+  as_CAdv = {s = "ेतन" ; p = "जतन"} ;
+
+  have_V2 = mkV2 (mkV "रकh-न") "" ;
+
+ language_title_Utt = ss "रदw" ;
+
+}
+
diff --git a/lib/src/hindi/SymbolHin.gf b/lib/src/hindi/SymbolHin.gf
--- a/lib/src/hindi/SymbolHin.gf
+++ b/lib/src/hindi/SymbolHin.gf
@@ -1,41 +1,4 @@
---# -path=.:../abstract:../common
-
-concrete SymbolHin of Symbol = CatHin ** open Prelude, ResHin in {
-
-{- TODO!
-lin
-  SymbPN i = {s = addGenitiveS i.s ; g = Neutr} ;
-  IntPN i  = {s = addGenitiveS i.s ; g = Neutr} ;
-  FloatPN i = {s = addGenitiveS i.s ; g = Neutr} ;
-  NumPN i = {s = i.s ; g = Neutr} ;
-  CNIntNP cn i = {
-    s = \\c => cn.s ! Sg ! Nom ++ (addGenitiveS i.s) ! c ;
-    a = agrgP3 Sg cn.g
-    } ;
-  CNSymbNP det cn xs = {
-    s = \\c => det.s ++ cn.s ! det.n ! Nom ++ (addGenitiveS xs.s) ! c ; 
-    a = agrgP3 det.n cn.g
-    } ;
-  CNNumNP cn i = {
-    s = \\c => cn.s ! Sg ! Nom ++ i.s ! c ;
-    a = agrgP3 Sg cn.g
-    } ;
-
-  SymbS sy = sy ; 
-
-  SymbNum sy = { s = addGenitiveS sy.s ; n = Pl ; hasCard = True } ;
-  SymbOrd sy = { s = \\c => sy.s ++ (regGenitiveS "th")!c} ;
--}
-
-lincat 
-
-  Symb, [Symb] = SS ;
-
-lin
-  MkSymb s = s ;
-
---  BaseSymb = infixSS "and" ;
-  ConsSymb = infixSS "," ;
-
-
-}
+--# -path=.:../hindustani:../abstract:../common
+
+concrete SymbolHin of Symbol = CatHin ** SymbolHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/VerbHin.gf b/lib/src/hindi/VerbHin.gf
--- a/lib/src/hindi/VerbHin.gf
+++ b/lib/src/hindi/VerbHin.gf
@@ -1,50 +1,2 @@
-concrete VerbHin of Verb = CatHin ** open ResHin in {
-
-  flags optimize=all_subs ;
-
-  lin
-    UseV = predV ;
-
-    SlashV2a v = predV v ** {c2 = v.c2} ;
-
---    Slash2V3 v np = 
---      insertObjc (\\_ => v.c2 ++ np.s ! Acc) (predV v ** {c2 = v.c3}) ;
---    Slash3V3 v np = 
---      insertObjc (\\_ => v.c3 ++ np.s ! Acc) (predVc v) ; ----
---
---    ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV v) ;
---    ComplVS v s  = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
---    ComplVQ v q  = insertObj (\\_ => q.s ! QIndir) (predV v) ;
---    ComplVA v ap = insertObj (ap.s) (predV v) ;
---
---    SlashV2V v vp = insertObjc (\\a => infVP v.isAux vp a) (predVc v) ;
---    SlashV2S v s  = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
---    SlashV2Q v q  = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
---    SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
-
-    ComplSlash vp np = insertObject np vp ;
-
---    SlashVV vv vp = 
---      insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
---        {c2 = vp.c2} ;
---    SlashV2VNP vv np vp = 
---      insertObjPre (\\_ => vp.c2 ++ np.s ! Acc)
---        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
---          {c2 = vp.c2} ;
---
---    UseComp comp = insertComplement comp.s (predAux auxBe) ;
---
---    AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
---
---    AdVVP adv vp = insertAdV adv.s vp ;
---
---    ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
---
---    PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ;
---
---
---    CompAP ap = ap ;
---    CompNP np = {s = \\_ => np.s ! Acc} ;
---    CompAdv a = {s = \\_ => a.s} ;
---
-}
+concrete VerbHin of Verb = CatHin ** VerbHindustani with
+  (ResHindustani = ResHin) ;
diff --git a/lib/src/hindi/src/DiffHin.gf b/lib/src/hindi/src/DiffHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/DiffHin.gf
@@ -0,0 +1,133 @@
+instance DiffHin of DiffHindustani = open CommonHindustani, Prelude in {
+oper
+Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = [] ;inf = Prelude.glue ((vp.s !  VPTense VPFutr agr).inf ++ hw p n) ((vp.s !  VPTense VPFutr agr).fin) } ;
+                                                   _    => {fin = [] ; inf = Prelude.glue (vp.s !  VPTense VPFutr agr).inf (vp.s !  VPTense VPFutr agr).fin  }} ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPerf agr).inf  ++ hw p n) (copula CFuture n p g) } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n) (copula CFuture n p g )} ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "Xayd" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "Xayd" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => {fin = [] ; inf = Prelude.glue (vp.s !  VPTense VPFutr agr).inf ((vp.s !  VPTense VPFutr agr).fin) }  ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ cka g n ++ hw p n) (copula CFuture n p g) } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g ) } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xayd"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+
+{- Verb : Type = {s : VerbForm => Str} ;
+
+ 
+ predV v = {
+         s = \\vh => 
+	   case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = v.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =v.s ! VF Perf p n g} ;
+                 VPTense VPFutr (Ag g n p) =>  {fin = [] ; inf = Prelude.glue (v.s ! VF Subj p n g) (copula CFuture n p g)} ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  v.s ! Root};
+		 _ => {fin = [] ; inf = v.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = v.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;
+-}      
+ np2pronCase ppf npc a = case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg =>case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => Prelude.glue (ppf ! Obl) "nE" ; -- in hindi in case of pronouns nE is tagged to pron rather than a separate word
+	   _			     => Prelude.glue (ppf ! Dir) "nE"
+	   }
+      } ;
+  
+}
diff --git a/lib/src/hindi/src/ExtraHin.gf b/lib/src/hindi/src/ExtraHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/ExtraHin.gf
@@ -0,0 +1,25 @@
+--# -path=.:../abstract:../common:../prelude:/Users/virk/gf_1/lib/src/hindustani
+concrete ExtraHin of ExtraHinAbs = CatHin ** 
+  open ResHin, Coordination, Prelude, MorphoHin, ParadigmsHin in {
+
+  lin
+--    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ;
+
+--    each_Det = mkDet  "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ;
+    have_V = mkV "rakh-na";
+--    IAdvAdv adv = {s = "ktny" ++ adv.s} ;
+--    ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+--    CompoundCN cn1 cn2 = {s = \\n,c => cn1.s ! n ! c ++ cn2.s ! n ! c ; g = cn2.g } ;
+--    ImperfAP verb = {s = \\n,g,_,_ => verb.s ! VF Habitual Pers3_Distant n g ++ hwa n g } ;
+--    SlashVP vp = {
+--     s = vp.s ;
+--     obj = vp.obj ;
+--     inf = vp.inf ;
+--     subj = vp.subj ;
+--	 ad = vp.ad ;
+--     embComp = vp.embComp;
+--     comp = vp.comp  
+--    } ;
+
+-- for VP conjunction
+} 
diff --git a/lib/src/hindi/src/IdiomHin.gf b/lib/src/hindi/src/IdiomHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/IdiomHin.gf
@@ -0,0 +1,39 @@
+concrete IdiomHin of Idiom = CatHin ** open Prelude,Predef, ResHin,ParamX,CommonHindustani in {
+
+  flags optimize=all_subs ;
+  flags coding = utf8;
+
+  lin
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
+    GenericCl vp = mkSClause "kwy" (agrP3 Masc Sg) vp ;
+
+   CleftNP np rs = 
+	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
+	  in 
+	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
+	  
+--    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
+        
+--     ExistNP np = 
+--      mkSClause "whaN" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
+--        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
+
+   ExistIP ip = 
+     let cl = mkSClause ("whaN" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+      ProgrVP vp =  (predProg vp) ;
+
+
+    ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ;
+	ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPImp ).inf ++ "dw"};
+
+
+}
+
diff --git a/lib/src/hindi/src/LexiconHin.gf b/lib/src/hindi/src/LexiconHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/LexiconHin.gf
@@ -0,0 +1,369 @@
+--# -path=.:prelude
+
+concrete LexiconHin of Lexicon = CatHin ** 
+--open ResHin, Prelude in {
+  open ParadigmsHin, Prelude in {
+
+  flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN "jHaj" ;
+--  answer_V2S = mkV2  (compoundV "jwab" (mkV "dyna")) ;
+--  apartment_N = mkN "kmrh" ;
+  apple_N = mkN "syb" ;
+--  art_N = mkN "fn" ;
+  ask_V2Q = mkV2 (mkV "pwcHna") ;
+--  baby_N = mkN "bcH" ;
+  bad_A = mkA "bra" ;
+  bank_N = mkN "bynk" ;
+  beautiful_A = mkA "sndr" ;
+  become_VA = mkV "bnna";
+  beer_N = mkN "beer" ;
+--  beg_V2V =  mkV2V (compoundV "altja" (mkV "krna")) "sE" "kh" False;
+  big_A = mkA "bRa" ;
+--  bike_N = mkN "saycl" feminine ;
+--  bird_N = mkN "prndh" ;
+  black_A =  mkA "kala" ;
+  blue_A = mkA "nyla" ;
+  boat_N = mkN "naw" ;
+  book_N = mkN "ktab" feminine ;
+--  boot_N = mkN "jwta" ;
+  boss_N = mkN "malk" ;
+  boy_N = mkN "lRka" ;
+  bread_N = mkN "rwty" ;
+  break_V2 = mkV2 (mkV "twRna") ;
+  broad_A = mkA "cwRa" ;
+  brother_N2 = mkN2 (mkN "bHay") (mkPrep "ka" "ka") "kE" ; --not correct
+  brown_A = mkA "bHwra" ;
+--  butter_N = mkN "mkh-n" ;
+  buy_V2 = mkV2 (mkV "Krydna");
+  camera_N = mkN "kymrH" ;
+  cap_N = mkN "twpy" ;
+  car_N = mkN "kar" ;
+--  carpet_N = mkN "tpay^y" ;
+  cat_N = mkN "bly" feminine;
+--  ceiling_N = mkN "ch-t" feminine ;
+  chair_N = mkN "krsy" ;
+--  cheese_N = mkN "pnyr" feminine ;
+  child_N = mkN "bcH"  ;
+  church_N = mkN "grja" ;
+  city_N = mkN "XHr" ;
+  clean_A = mkA "saf" ;
+  clever_A = mkA "catr" ;  
+  close_V2 =  mkV2 (compoundV "bnd" do_V2); 
+  coat_N = mkN "kwT" ;
+  cold_A = mkA "srd" ;
+  come_V = mkV "Ana" ;
+  computer_N = mkN "kmpywTr" ;
+  country_N = mkN "dyX" ;
+--  cousin_N = mkCmpdNoun "cca" (mkN "zad") ; -- a compund noun made of two nouns
+  cow_N = mkN "gaE" feminine ;
+  die_V = mkV "mrna" ;
+  dirty_A = mkA "gnda" ;
+--  distance_N3 = mkN3 (mkN "faSlh") (mkPrep "ka") "kE" "sE"  ;
+  doctor_N = mkN "daktr" ;
+  dog_N = mkN "kta" ;
+  door_N = mkN "drwza" ;
+  drink_V2 = mkV2 (mkV "pyna");
+  easy_A2V = mkA "Asan" "" ; -- chek for A or a
+  eat_V2 = mkV2 (mkV "kHana") "" ;
+  empty_A = mkA "Kaly" ;
+  enemy_N = mkN "dXmn" ;
+  factory_N = mkN "karKana" ;
+-- father_N2 = mkN2 (mkN "pta" irregular) (mkPrep "ka") "kE"  ;
+  fear_VS = mkV "dRna";
+  find_V2 = mkV2 (mkV "dHwnda") ;
+  fish_N = mkN "mcHly" ;
+  floor_N = mkN "frX" ;
+  forget_V2 = mkV2 (mkV "bHwlna")  ;
+--  fridge_N = mkN "fryg" ;
+  friend_N = mkN "dwst" masculine ;
+  fruit_N = mkN "pHl" ;
+--  fun_AV = mkAV (regA "fun") ;
+  garden_N = mkN "baG" ; -- chek for G
+  girl_N = mkN "lRky" ;
+  glove_N = mkN "dstana" ;
+  gold_N = mkN "swna" ;
+  good_A = mkA "acHa" ;
+  go_V = mkV "jana" ;
+  green_A = mkA "Hra" ;
+--  harbour_N = mkCmpdNoun "bndr" (mkN "gah") ;
+  hate_V2 = mkV2 (compoundV "nfrt" do_V2) ;
+  hat_N = mkN "Twpy" ;
+--  have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
+  hear_V2 = mkV2 (mkV "snna") ;
+--  hill_N = mkN "phaRy" ;
+--  hope_VS = (compoundV "amyd" do_V2);
+  horse_N = mkN "gHwRa" ;
+  hot_A = mkA "grm" ;
+  house_N = mkN "gHr" ;
+  important_A = mkA "zrwry" ;  -- check about z
+--  industry_N = mkN "Snet" feminine ;
+  iron_N = mkN "lwHa" ;
+  king_N = mkN "raja" ;
+  know_V2 = mkV2 (mkV "janna") ;
+  know_VS = mkV "janna";
+--  lake_N = mkN "jh-yl" feminine ;
+  lamp_N = mkN "dya" ;
+  learn_V2 = mkV2 (mkV "sykHna") ;
+--  leather_N = mkN "cmRa" ;
+  leave_V2 = mkV2 (mkV "clna") ;
+  like_V2 = mkV2 (compoundV "psnd" do_V2);
+  listen_V2 = mkV2 (mkV "snna") ;
+  live_V = mkV "rhna" ; ---- touch
+  long_A = mkA "lmba" ;
+  lose_V2 = mkV2 (compoundV "kHw" do_V2) ;
+  love_N = mkN "prym" ;
+  love_V2 = mkV2 (compoundV "pyar" do_V2) "kw";
+  man_N = mkN "Admy" ;
+--  married_A2 = mkA "Xady " "sE" ;
+  meat_N = mkN "mas" ;
+  milk_N = mkN "dwdH" ;
+  moon_N = mkN "cand" ;
+  mother_N2 = mkN2 (mkN "mata" feminine) (mkPrep "ky" "ky") "kE";   -- not covered need to be discussed
+--  mountain_N = mkN "phaRy" ;
+  music_N = mkN "sngyt" ;
+--  narrow_A = mkA "baryk" ;
+  new_A = mkA "nya" ;
+  newspaper_N = mkN "aKbar" ;
+  oil_N = mkN "tyl" ;
+  old_A = mkA "bwRHa" ;
+  open_V2 = mkV2 (mkV "kHwlna") ;
+--  paint_V2A = mkV2 (compoundV "rng" do_V2) ;
+  paper_N = mkN "kaGz" ;
+  paris_PN = mkPN "pyrs" ;
+  peace_N = mkN "amn" ;
+  pen_N = mkN "qlm" ;
+--  planet_N = mkN "syarh" ;
+--  plastic_N = mkN "plasTk" ;
+  play_V2 = mkV2 (mkV "kHylna") ;
+--  policeman_N = mkCmpdNoun "pwlys" (mkN "wala") ; 
+--  priest_N = (mkN "pyGmbr") ;
+--  probable_AS = mkAS (regA "probable") ;
+--  queen_N = mkN "Xhzady" ;
+--  radio_N = mkN "ryDyw" ;
+  rain_V0 = compoundV "barX" (mkV "Hwna" ) ;
+  read_V2 = mkV2 (mkV "pRHna");
+  red_A = mkA "lal" ;
+  religion_N = mkN "dHrm" ;
+--  restaurant_N = mkN "hwTl" ;
+  river_N = mkN "drya" masculine ;
+  rock_N = mkN "cTan" ;
+  roof_N = mkN "ch-t" masculine ;
+--  rubber_N = mkN "rbR" ;
+  run_V = mkV "dwRna" ;
+  say_VS = mkV "kHna" ;
+  school_N = mkN "mktb" ;
+--  science_N = mkN "sans" ; -- vgyan
+  sea_N = mkN "smndr" ;
+--  seek_V2 = mkV2 (compoundV "tlaX" do_V2) ;
+  see_V2 = mkV2 (mkV "dykHna") ;
+  sell_V3 = mkV3 (mkV "bycna") "kw" "";
+  send_V3 = mkV3 (mkV "bHyjna") "kw" "";
+  sheep_N = mkN "bHyR" feminine ;
+  ship_N = mkN "jHaz" ;
+  shirt_N = mkN "krta" feminine;
+  shoe_N = mkN "jwta" ;
+  shop_N = mkN "dwkan" feminine ;
+  short_A = mkA "cHwTa" ;
+  silver_N = mkN "candy" ;
+  sister_N = mkN "bHn" feminine ;
+  sleep_V = mkV "swna" ;
+  small_A = mkA "cHwTa" ;
+  snake_N = mkN "sanp" ;
+--  sock_N = mkN "jrab" feminine ;
+  speak_V2 = mkV2 (mkV "bwlna") ;
+  star_N = mkN "tara" ;
+--  steel_N = mkN "styl" ; -- something like ispat
+  stone_N = mkN "ptHr" ;
+--  stove_N = mkN "cwlha" ;
+--  student_N = mkCmpdNoun "t-alb" (mkN "elm") ; -- something vidrati
+  stupid_A = mkA "bEwqwf" ;
+--  sun_N = mkN "swrj" ; -- swrya
+  switch8off_V2 =  mkV2 (compoundV "bnd" do_V2) ;
+  switch8on_V2 = mkV2 (mkV "clana") ;
+  table_N = mkN "myz" feminine ;
+  talk_V3 = mkV3 (mkV "bwlna") "sE" "kE barE meN";
+--  teacher_N = mkN "istad" ; -- adyapak
+  teach_V2 = mkV2 (mkV "pRHna") ;
+  television_N = mkN "tywy" ;
+  thick_A = mkA "mwTa" ;
+  thin_A = mkA "ptla" ;
+  train_N = mkN "ryl gaRy" ;
+  travel_V = (compoundV "sfr" do_V2) ;
+--  tree_N = mkN "pyR" masculine ;
+-- ---- trousers_N = mkN "trousers" ;
+  ugly_A = mkA "bdswrt" ;
+  understand_V2 = mkV2 (mkV "smjHna") ;
+--  university_N = mkN "ywnywrsTy" ;
+  village_N = mkN "gawN" ; -- check for n or N
+--  wait_V2 = mkV2 (compoundV "antz-ar" do_V2) "ka" ; -- something prtkXa
+  walk_V = mkV "clna" ;
+--  warm_A = mkA "grm" ; something gngna
+--  war_N = mkN "jng" ;
+  watch_V2 = mkV2 (mkV "dykHna") ;
+--  water_N = mkN "pany" masculine ; -- not covered masculine ending with y
+  white_A = mkA "sfyd" ;
+  window_N = mkN "rwXndan" ;
+--  wine_N = mkN "Xrab" feminine ;
+  win_V2 = mkV2 (mkV "jytna") ;
+  woman_N = mkN "ewrt" feminine ;
+--  wonder_VQ = compoundV "Heran" (mkV "hwna") ;
+  wood_N = mkN "lkRy" ;
+  write_V2 = mkV2 (mkV "lkh-na") ;
+  yellow_A = mkA "pyla" ;
+  young_A = mkA "jwan" ;
+  do_V2 = mkV2 (mkV "krna")  ;
+--  now_Adv = mkAdv "ab" ;
+--  already_Adv = mkAdv "phlE hy" ;
+  song_N = mkN "gyt" ;
+  add_V3 = mkV3 (compoundV "jme" do_V2) "" "" ;
+--  number_N = mkN "hndsh" ;
+--  put_V2 = mkV2 (mkV "Dalna") ;
+  stop_V = mkV "rkna"  ;
+--  jump_V = compoundV "cHlang" (mkV "lgana") feminine ;
+
+--  left_Ord = {s = "bayaN" ; n = singular};
+--  right_Ord = {s= "dayaN" ; n = singular};
+--  far_Adv = mkAdv "dwr" ;
+  correct_A = mkA "syH" ;
+  dry_A = mkA "swkHa" ;
+--  dull_A = mkA "nalik" ;
+--  full_A = mkA "mkml" ;
+  heavy_A = mkA "bHary" ;
+  near_A = mkA "pas" ;
+--  rotten_A = mkA "Krab" ;
+  round_A = mkA "gwl" ;
+  sharp_A = mkA "tyz" ;
+  smooth_A = mkA "ckna" ;
+  straight_A = mkA "sydHa" ;
+  wet_A = mkA "gyla" ; ----
+  wide_A = mkA "cwRa" ;
+  animal_N = mkN "janwr" ;
+  ashes_N = mkN "rakh-" feminine; -- FIXME: plural only?
+--  back_N = mkN "qmr" feminine ;
+--  bark_N = mkN "bark" ;
+--  belly_N = mkN "dh-ny" ;
+--  blood_N = mkN "Kwn" ;
+  bone_N = mkN "HDy" feminine ;
+--  breast_N = mkN "ch-aty" ; --stan
+  cloud_N = mkN "badl" ;
+  day_N = mkN "dn" ;
+  dust_N = mkN "dHwl" ;
+  ear_N = mkN "kan" ;
+--  earth_N = mkN "zmyn" feminine ;
+  egg_N = mkN "anDH" ;
+  eye_N = mkN "AnkH" feminine ;
+  fat_N = mkN "mwta" ;
+  feather_N = mkN "pnkH" ;
+--  fingernail_N = mkN "naKn" ;
+  fire_N = mkN "Ag" feminine ;
+  flower_N = mkN "pHwl" ;
+  fog_N = mkN "dHnd" feminine ;
+  foot_N = mkN "pawN" ; -- not properly covered need to be discussed
+  forest_N = mkN "jngl" ;
+  grass_N = mkN "gHs" feminine ;
+--  guts_N = mkN "gut" ; -- FIXME: no singular
+  hair_N = mkN "bal" ;
+  hand_N = mkN "HatH" ;
+  head_N = mkN "sr" ;
+  heart_N = mkN "dl" ;
+--  horn_N = mkN "gh-nty" ;
+  husband_N = mkN "pty" ;
+  ice_N = mkN "brf" feminine ;
+  knee_N = mkN "gHtnH" ;
+  leaf_N = mkN "ptH" ;
+  leg_N = mkN "tang" feminine ;
+  liver_N = mkN "klyjH" ;
+--  louse_N = mkN "" ; -- jwN
+  mouth_N = mkN "mnH" ; 
+  name_N = mkN "nam" ;
+  neck_N = mkN "grdn" feminine ;
+  night_N = mkN "rat" feminine ;
+  nose_N = mkN "nak" ;
+--  person_N = mkN "XKS" ;
+  rain_N = mkN "barX" feminine ;
+  road_N = mkN "sRk" ;
+  root_N = mkN "gR" feminine ;
+  rope_N = mkN "rsy" ;
+  salt_N = mkN "nmk" feminine ;
+  sand_N = mkN "ryt" feminine ;
+  seed_N = mkN "byj"  ;
+--  skin_N = mkN "jld" feminine ; -- crm
+  sky_N = mkN "ambr" ;
+  smoke_N = mkN "dHwaN"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN "brf" feminine ;
+  stick_N = mkN "soTy" ;
+  tail_N = mkN "dm" ;
+--  tongue_N = mkN "zban" feminine ;
+--  tooth_N = mkN "dant" masculine;
+  wife_N = mkN "ptny" ;
+  wind_N = mkN "Hwa" ;
+--  wing_N = mkN "pr" ;
+  worm_N = mkN "kyRa" ;
+  year_N = mkN "sal" ;
+--  blow_V = mkV "clna" ;
+  breathe_V = compoundV "sans" (mkV "lyna" ) ;
+  burn_V = mkV "jlana" ;
+  dig_V = mkV "kHwdna" ;
+  fall_V = mkV "grna" ;
+--  float_V = mkV "tyrna" ;
+  flow_V = mkV  "clna" ;
+  fly_V = mkV "aRna" ;
+--  freeze_V = mkV "jmna";
+  give_V3 = mkV3 (mkV "dyna") "kw" "";
+  laugh_V = mkV "hnsna" ;
+--  lie_N = mkN "jh-wt" masculine ;
+  lie_V = compoundV "jHwt" (mkV "bwlna" );
+  play_V = mkV "kHylna" ;
+  sew_V = mkV "syna" ;
+  sing_V = mkV "gana" ;
+  sit_V = mkV "byTHna" ;
+  smell_V = mkV "swngna" ;
+  spit_V = mkV "tHwkna" ;
+  stand_V = compoundV "kHRE" (mkV "hwna" ); -- a type of compound verb made of two verbs i.e 'kHRa' also inflects, rather than a string and verb should be fixed
+--  swell_V = mkV "swjh-na" ;
+  swim_V = mkV "tyrna" ;
+  think_V = mkV "swcna" ;
+  turn_V = mkV "mRna";
+--  vomit_V = compoundV "alty" (mkV "krna") feminine ;
+  bite_V2 = mkV2 (mkV "katna") ;
+  count_V2 = mkV2 (mkV "gnna") ;
+  cut_V2 = mkV2 (mkV "katna") ;
+  fear_V2 = mkV2 (mkV "Drna") ;
+  fight_V2 = mkV2 (mkV "lRna") ;
+--  hit_V2 = mkV2 (compoundV "th-wkr" (mkV "marna" ));
+  hold_V2 = mkV2 (mkV "pkRna") ;
+--  hunt_V2 = mkV2 (compoundV "Xkar" do_V2);
+  kill_V2 =  mkV2 (compoundV "mar" (mkV "Dalna" )) ;
+  pull_V2 = mkV2 (mkV "kHncna");
+--  push_V2 = mkV2 (mkV "dh-kylna") "kw" ;
+--  rub_V2 = mkV2 (mkV "rgRna") ;
+--  scratch_V2 = mkV2 (mkV "kh-rcna") "kw" ;
+--  split_V2 = mkV2 (mkV "banta") "kw" ;
+--  squeeze_V2 = dirV2 (regV "squeeze") ;
+--  stab_V2 = dirV2 (regDuplV "stab") ;
+--  suck_V2 = mkV2 (mkV "cwsna") ;
+  throw_V2 = mkV2 (mkV "pHynkna") ;
+  tie_V2 = mkV2 (mkV "bandHna") ;
+  wash_V2 = mkV2 (mkV "dHwna") ;
+  wipe_V2 = mkV2 (compoundV "Saf" (mkV "krna" ));
+
+----  other_A = regA "other" ;
+
+--  grammar_N = mkN "grdan" ;
+--  language_N = mkN "zban" feminine ;
+--  rule_N = mkN "aSwl" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "jon" ;
+--    question_N = mkN "swal" ;
+--    ready_A = regA "ready" ;
+--    reason_N = mkN "wjh" feminine ;
+--    today_Adv = mkAdv "Aj" ;
+--    uncertain_A = mkA ["Gyr yqyny"] ;
+    
+ 
+}
diff --git a/lib/src/hindi/src/MorphoHin.gf b/lib/src/hindi/src/MorphoHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/MorphoHin.gf
@@ -0,0 +1,460 @@
+--# -path=.:../../prelude:../abstract:../common:../../prelude
+--
+----1 A Simple Hinu Resource Morphology
+----
+----  Shafqat Virk, Aarne Ranta,2009
+----
+---- This resource morphology contains definitions needed in the resource
+---- syntax. To build a lexicon, it is better to use $ParadigmsHin$, which
+---- gives a higher-level access to this module.
+--
+resource MorphoHin = ResHin ** open Prelude,Predef,ParamX,CommonHindustani in {
+  flags optimize=all ;
+   coding = utf8;
+
+----2 Nouns
+oper
+    mkNoun : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun = 
+      \sd,so,sv,pd,po,pv,g -> {
+      s = table {
+      Sg => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv 
+	  } ;
+      Pl => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv 
+	  }
+      } ;
+
+      g = g
+      } ;
+
+    
+
+    regNoun : Str -> Noun ;
+    regNoun s = case s of {
+		     _ + "ya" => mkN05 (s);
+                 _ + ("a"|"e"|"h") =>  mkN01 (s);
+                 _ + "y" => mkN03 (s);
+                 _ + ("aN"|"wN") => mkN04 (s);
+                 _ + "w^" => mkN12 (s);
+             _			  => regNoun2 (s)				 
+                 };
+	regNoun2 : Str -> Noun;
+	regNoun2 s = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (last s) "h") True (if_then_else Bool (eq (last s) "e") True False))
+     in case c of {
+      False => mkN02 (s);
+	  True => mkN01 (s)
+     };	  
+	  
+    reggNoun : Str -> Gender -> Noun ;
+    reggNoun s g = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (dp 2 s) "aN") True (if_then_else Bool (eq (dp 2 s) "wN") True False))
+	 in case <s,g,c> of {
+		         <_ + "t",Fem,_> => mkN10 (s);
+				 <_ + "t",Masc,_> => mkN02 (s);
+				 <_ + "w",Masc,_> => mkN11 (s);
+                 <_ + "w",Fem,_> 	=> mkN07 (s);
+				 <_ + "ya",Fem,_> => mkN05 (s);
+                 <_ + "ya",Masc,_> => mkN02 (s);
+                 <_,Fem,False>		=> mkN08 (s);
+                 <_,Fem,_>		=> mkN09 (s)
+                 				 
+                 };
+    
+-- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
+-- Arabic nouns ends with h. also taken as Masc
+
+     mkN01 : Str -> Noun ;
+     mkN01 lRka = let end = last (lRka) ;
+                 lRk = if_then_else Str (eq end "e") lRka (tk 1 lRka)
+             in mkNoun (lRka)     (lRk+"E")  (lRk+"E")
+                       (lRk+"E")  (lRk+"wN") (lRk+"w")
+                       Masc ;
+
+-- masculine nouns does not end with a, h, e, an
+
+     mkN02 : Str -> Noun ;
+     mkN02 mrd = let mrdwN = mrd+"wN" ;
+              mrdw  = tk 1 mrdwN
+              in mkNoun mrd mrd   mrd
+                      mrd mrdwN mrdw
+                      Masc ;
+
+-- feminine Nouns end with y
+
+     mkN03 : Str -> Noun ;
+     mkN03 krsy = let krsyaN  = krsy+"aN" ;
+		 krsywN  = krsy+"wN" ;
+		 krsyw   = tk 1 krsywN
+             in mkNoun krsy   krsy   krsy
+                       krsyaN krsywN krsyw
+                       Fem ;
+
+-- feminine nouns end with a, aN, wN
+     mkN04 : Str -> Noun ;
+     mkN04 n = case last n of {
+     "a" => let bla = n
+        in mkNoun bla          bla         bla
+                  (bla+"y^yN") (bla+"w^N") (bla+"w^")
+                  Fem ;
+      _   => let maN = n ; -- ends with aN and wN
+            ma  = tk 1 maN
+        in mkNoun maN         maN        maN
+                  (ma+"y^yN") (ma+"w^N") (ma+"w^N")
+                  Fem 
+
+            };
+  --feminine nouns end with ya
+    
+      mkN05 : Str -> Noun ;
+      mkN05 gRya = let gRy = (tk 1 gRya)
+             in mkNoun gRya       gRya       gRya
+                       (gRya+"N") (gRy+"wN") (gRy+"w")
+                       Fem ;
+
+-- feminine nouns end with w
+      
+      mkN07 : Str -> Noun ;
+      mkN07 khshbw =  mkNoun khshbw     khshbw         khshbw
+                            (khshbw + "y^yN") (khshbw + "w^N") (khshbw + "w^")
+                            Fem ;
+
+-- Loan arabic feminine nouns end with t
+-- this is a noun that shows  state, condition 
+
+      mkN10 : Str -> Noun ;
+      mkN10 ndamt = mkNoun ndamt        ndamt        ndamt
+                     (ndamt+"yN") (ndamt+"wN") (ndamt+"w")
+                     Fem ;
+-- Worst case function
+      mkN : (_,_,_,_,_,_ : Str) -> Gender -> Noun ;
+      mkN sgNom sgObl sgVoc plNom plObl plVoc g = 
+      mkNoun sgNom sgObl sgVoc plNom plObl plVoc g ;
+
+      mkN06 : Str -> Noun ;
+      mkN06 rya = mkNoun rya          rya         rya 
+                   (rya+"y^yN") (rya+"w^N") rya
+                   Fem ;
+
+-- feminine nouns that do not end with a, N, w, wN
+     
+      mkN08 : Str -> Noun ;
+      mkN08 ktab = mkNoun ktab ktab ktab
+                    (ktab+"yN") (ktab+"wN") (ktab+"w")
+                    Fem ;
+
+-- Loan arabic feminine nouns
+     
+      mkN09 : Str -> Noun ;
+      mkN09 ahsan = mkNoun ahsan        ahsan                             ahsan
+                     (ahsan+"at")  (ahsan+"at") (ahsan+"w") 
+                     Fem ;
+-- (variants{ahsan+"at";ahsan+"wN"})
+-- Loan persian maculine nouns end with w
+
+      mkN11 : Str -> Noun ;
+      mkN11 alw = mkNoun alw alw         alw
+                   alw (alw+"w^N") (alw+"w^")
+                   Masc ;
+
+
+-- Loan persian maculine nouns end with w^
+
+      mkN12 : Str -> Noun ;
+      mkN12 bhao = mkNoun (bhao)      (bhao)     (bhao)
+                          (bhao)      (bhao)     (bhao)
+                    Masc ;
+----2 Determiners
+  IDeterminer = {s:Gender => Str ; n : Number};
+  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
+   s = table {
+      Sg => table {
+        Masc => s1 ;
+        Fem => s2 
+	  } ;
+      Pl => table {
+        Masc => s3 ;
+        Fem => s4 
+	  }
+      } ;
+
+      n = n
+	};	
+	
+  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
+   s = table {
+        Masc => s1;
+		Fem  => s2
+	 };
+	 n = n
+    };		
+    
+-- Proposition  
+ 
+  makePrep : Str -> Str -> Preposition = \s1,s2 -> {s = table { Masc => s1 ; Fem => s2 } } **  { lock_Prep = <>};
+   
+----2 Pronouns
+   PronForm = {s:Pronoun => Str};
+   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
+    \y1,y2,y3,y4,y5,y6 -> {
+	 s = table {
+         P Sg _ Dir _ => y1;
+         P Sg _ Obl _ => y2;
+         P Sg _ Voc _ => y3;
+         P Pl _ Dir _ => y4;
+         P Pl _ Obl _ => y5;
+         P Pl _ Voc _ => y6
+         };
+      };
+
+--   DemonPronForm = {s:DemPronForm => Str};
+  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12:Str) -> DemPronForm =
+  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12 -> {
+   s = table {
+	        Sg => table {
+				Masc => table {
+						     Dir => y1 ;
+                             Obl => y2 ;
+                             Voc => y3
+							 };
+				Fem => table {
+						     Dir => y4 ;
+                             Obl => y5 ;
+                             Voc => y6
+							 }
+						};
+			Pl => table {
+				Masc => table {
+						     Dir => y7 ;
+                             Obl => y8 ;
+                             Voc => y9
+							 };
+				Fem => table {
+						     Dir  => y10 ;
+                             Obl => y11 ;
+                             Voc => y12
+							 }
+					} 
+				}
+               };    
+   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
+   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "";	
+--   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
+   
+   PersPron = {s: PersPronForm => Str};
+   
+   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> PersPron = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
+     s = 
+	  table {
+	      PPF Sg Pers1 Dir => y1;
+          PPF Sg Pers1 Obl => y2;
+	      PPF Sg Pers1 Voc => y3;
+	      PPF Sg Pers2_Casual Dir => y4;
+	      PPF Sg Pers2_Casual Obl => y5;
+          PPF Sg Pers2_Casual Voc => y6;
+	      PPF Sg Pers2_Familiar Dir => y7;
+	      PPF Sg Pers2_Familiar Obl => y8;
+	      PPF Sg Pers2_Familiar Voc => y9;
+          PPF Sg Pers2_Respect Dir => y10;
+	      PPF Sg Pers2_Respect Obl => y11;
+	      PPF Sg Pers2_Respect Voc => y12;
+	      PPF Sg Pers3_Near Dir => y13;
+          PPF Sg Pers3_Near Obl => y14;
+	      PPF Sg Pers3_Near Voc => y15;
+	      PPF Sg Pers3_Distant Dir => y16;
+	      PPF Sg Pers3_Distant Obl => y17;
+          PPF Sg Pers3_Distant Voc => y18;
+	      PPF Pl Pers1 Dir => y19;
+          PPF Pl Pers1 Obl => y20;
+	      PPF Pl Pers1 Voc => y21;
+	      PPF Pl Pers2_Casual Dir => y22;
+	      PPF Pl Pers2_Casual Obl => y23;
+          PPF Pl Pers2_Casual Voc => y24;
+	      PPF Pl Pers2_Familiar Dir => y25;
+	      PPF Pl Pers2_Familiar Obl => y26;
+	      PPF Pl Pers2_Familiar Voc => y27;
+          PPF Pl Pers2_Respect Dir => y28;
+	      PPF Pl Pers2_Respect Obl => y29;
+	      PPF Pl Pers2_Respect Voc => y30;
+	      PPF Pl Pers3_Near Dir => y31;
+          PPF Pl Pers3_Near Obl => y32;
+	      PPF Pl Pers3_Near Voc => y33;
+	      PPF Pl Pers3_Distant Dir => y34;
+	      PPF Pl Pers3_Distant Obl => y35;
+          PPF Pl Pers3_Distant Voc => y36
+		 }; 
+      };
+	  
+   makePersPron : PersPron;
+   makePersPron     = mkPersPron	"m(a)yN"	"m(o)j'|h"		""		"t(o)w "		"t(o)j|h"		"t(o)w "		"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)s"		""		"w(o)h"		"a(o)s"		""
+									"h(a)m"		"h(a)m"			""		"t(o)m" 		"t(o)m"			"t(o)m"			"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)n"		""		"w(o)h"		"a(o)n"		"" ;
+						
+  mkPron : (x1,x2,x3:Str) -> {s:Case => Str} = 
+     \y1,y2,y3 -> { s =
+                      table {
+                        Dir => y1;
+                        Obl => y2;
+                        Voc => y3
+                        }
+                      };  
+                                   
+	------- PossPronForm yet to be implemented
+  
+-- IntPronForm = {s:InterrPronForm => Str};
+  IntPronForm = {s: Case => Str};
+  mkIntPronForm : (x1,x2,x3:Str) -> IntPronForm =
+  \y1,y2,y3 -> {
+   s = 
+    table {
+	            Dir => y1;
+	            Obl => y2;
+	            Voc => y3
+		 }
+	}; 
+
+----2 Adjectives
+-- defined in ResUrd
+
+----3 Verbs
+  CommonVF = {s : VTense => UPerson => Number => Gender => Str} ;
+ 
+   mkVerb : (x1: Str) -> Verb = \inf  ->
+     	 let root = (tk 2 inf); inf_obl = ((tk 1 inf) + "E"); inf_fem = ((tk 1 inf) + "y")
+	in { s = table {
+          
+               VF tense person number gender => (mkCmnVF root tense person number gender).s  ;
+               Inf     => inf ;
+               Root    => root ;
+               Inf_Obl => inf_obl ;
+               Inf_Fem => inf_fem 
+          
+          
+       }
+     } ;
+   rem_y : Str -> Str;
+   rem_y str = let b = take 1 str; yth = drop 1 str; a1	= take 4 yth; a2 = take 1 yth; 	th= if_then_else Str (eq a1 "(a)y") (drop 5 str) (drop 2 str);	st = if_then_else Str (eq a1 "(a)y") (b ++ "(i)"++th) (if_then_else Str (eq a2 "y") (b ++ th)  str)
+              in rt st;
+	rt: Str -> Str;
+	rt r = r;
+   mkCmnVF : Str -> VTense -> UPerson -> Number -> Gender -> {s:Str} =
+    \root,t,p,n,g ->
+     {s = 
+      let form1 = case (last root) of {
+                  "a"|"A"|"w" => root + "w^N" ;
+                  _           => root + "wN"
+                 };
+          form2 =  case (last root) of {
+                  "a"|"A"|"w" => root + "y^N" ;
+                  _           => root + "yN"
+                 };
+	 in
+       case <t,p,n,g> of {
+        <Subj,Pers1,Sg,_> => form1 ;
+        <Subj,Pers1,Pl,_> => form2 ;
+        <Subj,_,_,_>      => (mkImpert root p n g).s ;
+        <Perf,_,_,_>      => case root of {
+		                      "hw" => (mkPastInd root p n g).s ;
+							  "ja" => (mkPastInd "gy" p n g).s ;
+							  "kr" => (mkPastInd "k" p n g).s ;
+							  "dE" => (mkPastInd "d" p n g).s ;
+							  "lE" => (mkPastInd "l" p n g).s ;
+							  _    => (mkPastInd root p n g).s };
+        <Imperf,Pers2_Familiar,Sg,Masc>         => root + "tE";
+        <Imperf,Pers2_Familiar,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
+        <Imperf,Pers2_Familiar,Pl,Masc>         => root + "tE";
+        <Imperf,Pers2_Familiar,Pl,Fem>         => root+"tyN";
+        <Imperf,Pers2_Respect,Sg,Masc>         => root + "tE";
+        <Imperf,Pers2_Respect,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
+        <Imperf,Pers2_Respect,Pl,Masc>         => root + "tE";
+        <Imperf,Pers2_Respect,Pl,Fem>         => root+"tyN";
+		<Imperf,_,Sg,Masc>					  => root+"ta";
+		<Imperf,_,Sg,Fem>					  => root+"ty";
+		<Imperf,_,Pl,Masc>					  => root+"te";
+		<Imperf,_,Pl,Fem>					  => root+"tyN"
+        }
+       
+     } ;
+   
+   mkPastInd : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo = root ;
+             a = case (last root) of {
+                  "a"|"A"|"w"|"k" => "ya" ;
+                  _           => "a"
+                 } ;
+             y = case (last root) of {
+                  "a"|"A"|"w" => "y^y" ;
+                  _           => "y"
+                 } ;
+             e = case (last root) of {
+                  "a"|"A"|"w"|"k" => "y^E" ;
+                  _           => "E"
+                 } ;
+            yN = case (last root) of {
+                  "a"|"A"|"w" => "y^yN" ;
+                  _           => "yN"
+                 } ;
+
+     in 
+     case <p,n,g> of {
+       <Pers1,Sg,Masc> => roo+a ;
+       <Pers1,Sg,Fem>  => roo+y ;
+       <Pers1,Pl,Masc> => roo+e ;
+       <Pers1,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Casual,Sg,Masc> => roo+a ;
+       <Pers2_Casual,Sg,Fem>  => roo+y ;
+       <Pers2_Casual,Pl,Masc> => roo+e ;       
+       <Pers2_Casual,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Familiar,Sg,Masc> => roo+e ;
+       <Pers2_Familiar,Sg,Fem>  => roo+y; --variants{roo+y ; roo+yN} ;
+       <Pers2_Familiar,Pl,Masc> => roo+e ;
+       <Pers2_Familiar,Pl,Fem>  => roo+yN ;       
+       
+       <Pers2_Respect,Sg,Masc>  => roo+e ;
+       <Pers2_Respect,Sg,Fem>   => roo+yN; --variants{roo+yN ; roo+y} ;
+       <Pers2_Respect,Pl,Masc>  => roo+e ;
+       <Pers2_Respect,Pl,Fem>   => roo+yN ;
+       <_,Sg,Masc>              => roo + a; 
+       <_,Sg,Fem>              => roo+y ; 
+	   <_,Pl,Masc>              => roo + e; 
+       <_,Pl,Fem>              => roo+yN 
+       
+     } ;
+    } ;
+
+   mkImpert : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo =  root ;
+             w = case (last root) of {
+                  "a"|"A"|"w" => "w^" ;
+                  _           => "w"
+               } ;
+             yN = case (last root) of {
+                  "a"|"A"|"w" => "y^yN" ;
+                  _           => "yN" 
+               } ;
+             yE = case (last root) of {
+                  "a"|"A"|"w" => "y^yE" ;
+                  _           => "yE" 
+               } ;
+             e = case (last root) of {
+                  "a"|"A"|"w" => "y^E" ;
+                  _           => "E" 
+               } in
+      case <p,n,g> of {
+       <Pers1,_,_>          => ""; --nonExist ;
+       <Pers2_Casual,Sg,_>  => root ;
+       <Pers2_Casual,Pl,_>  => roo+w ;
+       <Pers2_Familiar,_,_> => roo+w ;
+       <Pers2_Respect,Sg,_> => roo+w; --variants{roo+w; roo+yN; roo+yE} ;
+       <Pers2_Respect,Pl,_> => roo+yN; --variants{roo+yN; roo+yE} ;
+       <_,Sg,_>              => roo+e ; 
+       <_,Pl,_>              => roo+yN 
+      }; 
+    };       
+
+}
diff --git a/lib/src/hindi/src/StructuralHin.gf b/lib/src/hindi/src/StructuralHin.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/src/StructuralHin.gf
@@ -0,0 +1,129 @@
+concrete StructuralHin of Structural = CatHin ** 
+  open MorphoHin, ParadigmsHin, Prelude, NounHin,ParamX,CommonHindustani in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  lin
+  above_Prep = mkPrep "awpr" "awpr" ;
+  after_Prep = mkPrep ["kE bed"]  ["kE bed"] ;
+  all_Predet = ss "tmam" ;
+  almost_AdA, almost_AdN = mkAdN "tqryba" ;
+  although_Subj = ss "agrch-" ;
+  always_AdV = ss "hmyXh" ;
+  and_Conj = sd2 [] "awr" ** {n = Pl} ;
+  because_Subj = ss "kywnkh-" ;
+  before_Prep = mkPrep "phlE" "phlE" ;
+  behind_Prep = mkPrep "pych-E" "pych-E" ;
+  between_Prep = mkPrep "drmyaN" "drmyaN" ;
+  both7and_DConj = sd2 "dwnwN" "awr" ** {n = Pl} ;
+  but_PConj = ss "lykn" ;
+  by8agent_Prep = mkPrep "" "" ;
+  by8means_Prep = mkPrep "" "" ;
+--  can8know_VV,can_VV = mkV "skna" ** { isAux = True} ;
+  during_Prep = mkPrep ["kE drmyaN"] ["kE drmyaN"] ;
+  either7or_DConj = sd2 "kwy ayk" "ya" ** {n = Sg} ;
+  everybody_NP =  MassNP (UseN (ParadigmsHin.mkN "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" Masc )); -- not a good way coz need to include NounHin
+--  every_Det = mkDet "hr" Sg;
+  everything_NP = MassNP (UseN (ParadigmsHin.mkN "hr cyz" "hr cyz" "hr cyzw" "sb cyzyN" "sb cyzwN" "sb cyzw" Masc ));
+  everywhere_Adv = mkAdv "hr jgh" ;
+--  few_Det = mkDet "cnd" Pl ;
+  first_Ord = {s = "pehla" ; n = Sg} ; --DEPRECATED
+  for_Prep = mkPrep "kylyE" "kylyE" ;
+  from_Prep = mkPrep "sE" "sE" ;
+  he_Pron = personalPN "wh" "as" "" "as ka"  Sg Masc Pers3_Distant ;
+  here_Adv = mkAdv "yhaN" ;
+  here7to_Adv = mkAdv "yhaN pr" ;
+  here7from_Adv = mkAdv "yhaN sE" ;
+  how_IAdv = ss "kysE" ;
+  how8many_IDet = makeIDet "ktnE" "ktny" Pl ;
+  if_Subj = ss "agr" ;
+  in8front_Prep = mkPrep ["kE samnE"] ["kE samnE"] ;
+  i_Pron = personalPN "myN" "mjh-" "" "myra" Sg Masc Pers1;
+  in_Prep = mkPrep "meN" "meN" ;
+  it_Pron  = personalPN "yh" "yh" "yh" "as ka" Sg Masc Pers3_Near;
+  less_CAdv = {s = "km" ; p = ""} ;
+--  many_Det = mkDet "bht zyadh" Pl ;
+  more_CAdv = {s = "zyadh-" ; p = "" } ;
+  most_Predet = ss "zyadh tr" ;
+  --much_Det = mkDet "bht" Pl  ;
+--  must_VV = {
+--    s = table {
+--      VVF VInf => ["have to"] ;
+--      VVF VPres => "must" ;
+--      VVF VPPart => ["had to"] ;
+--      VVF VPresPart => ["having to"] ;
+--      VVF VPast => ["had to"] ;      --# notpresent
+--      VVPastNeg => ["hadn't to"] ;      --# notpresent
+--      VVPresNeg => "mustn't"
+--      } ;
+--    isAux = True
+--    } ;
+-----b  no_Phr = ss "no" ;
+  no_Utt = ss "nhyN" ;
+  on_Prep = mkPrep "pr" "pr" ;
+--  one_Quant = demoPN "ayk" "ayk" "ayk" ; -- DEPRECATED
+  only_Predet = ss "srf" ;
+  or_Conj = sd2 [] "ya" ** {n = Sg} ;
+  otherwise_PConj = ss "ya ph-r" ;
+  part_Prep = mkPrep "" "" ;
+  please_Voc = ss "mhrbani" ;
+  possess_Prep = mkPrep "ka" "ky" ;
+  quite_Adv = ss "khamosh" ;
+  she_Pron = personalPN "wh" "as" "wh" "as ky" Sg Fem Pers3_Distant ;
+  so_AdA = ss "so" ;
+  somebody_NP = MassNP (UseN (ParadigmsHin.mkN "kwy" "kwy" "kwy" "kwy" "kwy" "kwy" Masc ));
+  --someSg_Det = mkDet "kch-" Sg ;
+  --somePl_Det = mkDet "kch-" Pl ;
+  something_NP = MassNP (UseN (ParadigmsHin.mkN "kwy cyz" "kwy cyz" "kwy cyz" "kh- cyzyN" "kh- cyzwN" "kh- cyzw" Masc ));
+  somewhere_Adv = mkAdv "khin pr" ;
+  that_Quant = demoPN "wh" "as" "an" ;
+  that_Subj = ss "kh";
+  there_Adv = mkAdv "whaN" ;
+  there7to_Adv = mkAdv "whaN pr" ;
+  there7from_Adv = mkAdv ["whaN sE"] ;
+  therefore_PConj = ss "as lyE" ;
+  they_Pron = personalPN "wh" "wh" "wh" "an ka" Pl Masc Pers3_Distant ; ---- 
+  this_Quant = demoPN "yh" "as" "an";      
+  through_Prep = mkPrep ["myN sE"] ["myN sE"] ;
+  too_AdA = ss "bht" ;
+  to_Prep = mkPrep "kw" "kw" ;
+  under_Prep = mkPrep "nycE" "nycE" ;
+  very_AdA = ss "bht" ;
+--  want_VV = mkV "cahna" ** { isAux = False} ;
+  we_Pron = personalPN "hm" "hm" "hm" "hmara" Pl Masc Pers1 ;
+  whatSg_IP = mkIP "kya" "kis" "kis" Sg Masc ;
+  whatPl_IP = mkIP "kya" "kin" "kin" Pl Masc ;
+  when_IAdv = ss "kb" ;
+  when_Subj = ss "kb" ;
+  where_IAdv = ss "khaN" ;
+  which_IQuant = {s = \\_ => "kwn sy"} ;
+--  whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+--  whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+  whoSg_IP = mkIP "kwn" "kis" "kis" Sg Masc  ;
+  whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
+  why_IAdv = ss "kywN" ;
+  without_Prep = mkPrep ["kE bGyr"] ["kE bGyr"] ;
+  with_Prep = mkPrep ["kE sath-"] ["kE sath-"] ;
+--  yes_Phr = ss "haN" ;
+  yes_Utt = ss "haN" ;
+  youSg_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Sg Masc Pers2_Casual ;
+  youPl_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Pl Masc Pers2_Casual ;
+  youPol_Pron = personalPN "Ap" "AP" "AP" "Ap ka" Sg Masc Pers2_Respect  ;
+  no_Quant =  demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ; 
+  not_Predet = {s="nhyN"} ;
+  if_then_Conj = sd2 "agr" "tw" ** {n = Sg} ; 
+  at_least_AdN = mkAdN ["km az km"] ;
+  at_most_AdN = mkAdN ["zyadh sE zyadh"];
+  nothing_NP = MassNP (UseN (ParadigmsHin.mkN "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" Masc )); 
+  except_Prep = mkPrep "swaE" "swaE" ;
+  nobody_NP = MassNP (UseN (ParadigmsHin.mkN "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" Masc ));  
+
+  as_CAdv = {s = "etna" ; p = "jtna"} ;
+
+  have_V2 = mkV2 (mkV "rakh-na") "" ;
+
+ language_title_Utt = ss "ardw" ;
+
+}
+
diff --git a/lib/src/hindi/translit.gfs b/lib/src/hindi/translit.gfs
new file mode 100644
--- /dev/null
+++ b/lib/src/hindi/translit.gfs
@@ -0,0 +1,11 @@
+rf -file=../hindustani/CommonHindustani.gf | ps -env=quotes -to_devanagari | wf -file=CommonHindustani.gf
+rf -file=../hindustani/ExtraHindustani.gf | ps -env=quotes -to_devanagari | wf -file=ExtraHindustani.gf
+rf -file=../hindustani/ResHindustani.gf | ps -env=quotes -to_devanagari | wf -file=ResHindustani.gf
+rf -file=../hindustani/StringsHindustani.gf | ps -env=quotes -to_devanagari | wf -file=StringsHindustani.gf
+rf -file=src/DiffHin.gf | ps -env=quotes -to_devanagari | wf -file=DiffHin.gf
+rf -file=src/ExtraHin.gf | ps -env=quotes -to_devanagari | wf -file=ExtraHin.gf
+rf -file=src/IdiomHin.gf | ps -env=quotes -to_devanagari | wf -file=IdiomHin.gf
+rf -file=src/LexiconHin.gf | ps -env=quotes -to_devanagari | wf -file=LexiconHin.gf
+rf -file=src/MorphoHin.gf | ps -env=quotes -to_devanagari | wf -file=MorphoHin.gf
+rf -file=src/StructuralHin.gf | ps -env=quotes -to_devanagari | wf -file=StructuralHin.gf
+
diff --git a/lib/src/hindustani/AdjectiveHindustani.gf b/lib/src/hindustani/AdjectiveHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/AdjectiveHindustani.gf
@@ -0,0 +1,38 @@
+incomplete concrete AdjectiveHindustani of Adjective = CatHindustani ** open CommonHindustani,ResHindustani, StringsHindustani, Prelude in {
+
+  lin
+
+    PositA a = a ;
+	UseComparA a = a;
+
+    ComparA a np = {
+        s = \\n,g,c,d => np.s ! NPC Obl ++ sE ++ a.s ! n ! g ! c ! d ;                       
+       } ;
+
+---- $SuperlA$ belongs to determiner syntax in $Noun$.
+
+    ComplA2 a np = {
+      s = \\n,g,c,d => np.s ! NPC Obl ++ a.c2 ++ a.s ! n ! g ! c ! d ; 
+     } ;
+
+    ReflA2 a = {
+      s = \\n,g,c,d => a.s ! n ! g ! c ! d  ++  RefPron ++ sE ; 
+      } ;
+
+    SentAP ap sc = {
+      s = \\n,g,c,d => ap.s ! n ! g ! c ! d ++ sc.s ; 
+      } ;
+
+    AdAP ada ap = {
+      s = \\n,g,c,d => ada.s ++ ap.s ! n ! g ! c ! d ;
+      } ;
+
+    UseA2 a = a ;
+	
+	CAdvAP  cadv ap np = {
+	 s = \\n,g,c,d => cadv.s ++ ap.s ! n ! g ! c ! d ++ cadv.p ++  np.s ! NPC Dir ;
+	 };
+    
+    AdjOrd ord =  { s = \\_,_,_,_ => ord.s ; };
+
+}
diff --git a/lib/src/hindustani/AdverbHindustani.gf b/lib/src/hindustani/AdverbHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/AdverbHindustani.gf
@@ -0,0 +1,20 @@
+incomplete concrete AdverbHindustani of Adverb = CatHindustani ** open CommonHindustani, ResHindustani, StringsHindustani, Prelude in {
+
+  lin
+    PositAdvAdj a = {s = \\g => a.s ! Sg ! g ! Obl ! Posit} ;
+    ComparAdvAdj cadv a np = {
+      s = \\g => np.s ! NPObj  ++ cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl ! Posit;  
+      } ;
+    ComparAdvAdjS cadv a s = {
+      s = \\g => cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl ! Posit  ++  s.s;
+      } ;
+
+    PrepNP prep np = {s = \\g => np.s ! NPObj ++ prep.s ! g } ;
+
+    AdAdv ada adv = { s = \\g => ada.s ++ adv.s ! g} ;
+
+    SubjS sub s = {s = \\_ => sub.s ++ s.s } ;
+
+    AdnCAdv cadv = {s = sE ++ cadv.s ; p = True} ;
+
+}
diff --git a/lib/src/hindustani/CatHindustani.gf b/lib/src/hindustani/CatHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/CatHindustani.gf
@@ -0,0 +1,93 @@
+--concrete CatUrd of Cat = CommonX - [Adv,AdN] ** open ResUrd, Prelude in {
+incomplete concrete CatHindustani of Cat = 
+  CommonX - [Adv,AdN]** open ResHindustani, Prelude, CommonHindustani,  (R = ParamX) in {
+
+  flags optimize=all_subs ;
+
+  lincat
+------ Tensed/Untensed
+
+    S  = {s : Str} ;
+    QS = {s : QForm => Str} ;
+    RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
+    SSlash = {s : Str ; c2 : ResHindustani.Compl} ;
+
+---- Sentence
+
+    Cl = ResHindustani.Clause ;
+    ClSlash = {
+      s : CommonHindustani.VPHTense => Polarity => Order => Str ;
+      c2 : ResHindustani.Compl
+      } ;
+    Imp = {s : CPolarity => ImpForm => Str} ;
+
+---- Question
+    QCl = {s : CommonHindustani.VPHTense => Polarity => QForm => Str} ;
+    IP = {s: Case => Str ; g : Gender ; n : Number};
+    IDet = {s :Gender => Case => Str ; n : Number} ;
+--  IQuant = {s : Number => Str} ;
+    IQuant = {s : Number => Gender => Case => Str} ;
+
+---- Relative
+
+    RCl = {
+      s : CommonHindustani.VPHTense => Polarity => Order => Agr => Str ; 
+      c : Case
+      } ;
+    RP = {s: Number => Case => Str ; a:RAgr};
+
+---- Verb
+
+    VP = VPH ;
+    VPSlash = ResHindustani.VPHSlash ;
+    Comp = {s : Agr => Str} ;
+---- Adverb
+    Adv = {s : Gender => Str } ;
+    
+----- AdN
+    AdN = {s : Str ; p : Bool} ;
+
+---- Adjective
+
+    AP = CommonHindustani.Adjective ;
+
+---- Noun
+
+    CN = ResHindustani.Noun ;
+    NP = CommonHindustani.NP ;
+    Pron = {s : Case => Str ; ps : Str ; a : Agr};
+    Det = ResHindustani.Determiner ;
+    Predet = {s : Str} ;
+    Num  = {s : Str ; n : Number} ;
+    Card = {s : Str; n : Number} ;
+    Ord = {s : Str; n : Number} ;
+    Quant = {s:Number => Gender => Case => Str ; a:Agr};
+    Art = {s : Str} ;
+
+---- Numeral
+
+    Numeral = {s : CardOrd => Str ; n : Number} ;
+    Digits  = {s : CardOrd => Str ; n : Number } ;
+
+---- Structural
+
+    Conj = {s1,s2 : Str ; n : Number} ;
+-----b    Conj = {s : Str ; n : Number} ;
+-----b    DConj = {s1,s2 : Str ; n : Number} ;
+    Subj = {s : Str} ;
+    Prep = ResHindustani.Preposition;
+---- Open lexical classes, e.g. Lexicon
+
+    V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
+    V2, V2A, V2Q, V2S = Verb ** {c2 : Compl} ;
+    V3 = Verb ** {c2, c3 : Str} ;
+    VV = Verb ** { isAux : Bool} ;
+    V2V = Verb ** {c1 : Str ; c2 : Str ; isAux : Bool} ;
+    A = CommonHindustani.Adjective ; --- {s : Gender => Number => Case => Str} ;
+    A2 = {s : Number => Gender => Case => Degree => Str ; c2 : Str} ;
+    N = {s : Number => Case => Str ; g : Gender} ;
+    N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str } ;
+    N3 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str ; c4 : Str} ;
+    PN = {s : Case => Str ; g : Gender} ;
+
+}
diff --git a/lib/src/hindustani/CommonHindustani.gf b/lib/src/hindustani/CommonHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/CommonHindustani.gf
@@ -0,0 +1,311 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Hindustaniu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+resource CommonHindustani = ParamX  ** open Prelude,Predef in {
+
+  flags coding = utf8 ;
+
+ oper
+  
+  VPH = {
+      s    : VPHForm => {fin, inf : Str} ;
+      obj  : {s : Str ; a : Agr} ; 
+      subj : VType ;
+      comp : Agr => Str;
+      inf : Str;
+      ad  : Str;
+      embComp : Str ;
+      prog : Bool ;
+      } ;
+  NP : Type = {s : NPCase => Str ; a : Agr} ;    
+ param      
+  VPHForm = 
+       VPTense VPPTense Agr -- 9 * 12
+     | VPReq
+     | VPImp
+     | VPReqFut
+     | VPInf
+     | VPStem
+     ;
+  VPPTense = 
+	  VPPres
+	  |VPPast
+	  |VPFutr
+	  |VPPerf;
+      
+  VPHTense = 
+       VPGenPres  -- impf hum       nahim    "I go"
+     | VPImpPast  -- impf Ta        nahim    "I went"
+	 | VPFut      -- fut            na/nahim "I shall go"
+     | VPContPres -- stem raha hum  nahim    "I am going"
+     | VPContPast -- stem raha Ta   nahim    "I was going"
+	 | VPContFut
+     | VPPerfPres -- perf hum       na/nahim "I have gone"
+     | VPPerfPast -- perf Ta        na/nahim "I had gone"          
+	 | VPPerfFut
+	 | VPPerfPresCont
+	 | VPPerfPastCont
+	 | VPPerfFutCont
+     | VPSubj     -- subj           na       "I may go"
+     ;   
+  Agr = Ag Gender Number UPerson ;
+  Gender = Masc | Fem ;
+  Case = Dir | Obl | Voc ;
+  UPerson = Pers1
+	    | Pers2_Casual
+	    | Pers2_Familiar 
+	    | Pers2_Respect
+	    | Pers3_Near
+	    | Pers3_Distant;
+  VType = VIntrans | VTrans | VTransPost ;
+  VerbForm = VF VTense UPerson Number Gender
+                | Inf
+                | Root
+                | Inf_Obl
+                | Inf_Fem;
+  VTense = Subj | Perf | Imperf;
+  CTense = CPresent | CPast | CFuture ;
+  NPCase = NPC Case | NPObj | NPErg ;
+  Order = ODir | OQuest ;
+  
+  
+  oper 
+    copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g -> 
+      case <t,n,p,g> of {
+        <CPresent,Sg,Pers1,_   > => "hwN" ;
+        <CPresent,Sg,Pers2_Casual,_   > => "hE" ;
+        <CPresent,Sg,Pers2_Familiar,_   > => "hw" ;
+		<CPresent,Sg,Pers2_Respect,_   > => "hyN" ;
+        <CPresent,Sg,Pers3_Near,_   > => "hE" ;
+        <CPresent,Sg,Pers3_Distant,_   > => "hE" ;
+		<CPresent,Pl,Pers1,_   > => "hyN" ;
+        <CPresent,Pl,Pers2_Casual,_   > => "hw" ;
+        <CPresent,Pl,Pers2_Familiar,_   > => "hw" ;
+		<CPresent,Pl,Pers2_Respect,_   > => "hyN" ;
+        <CPresent,Pl,Pers3_Near,_   > => "hyN" ;
+        <CPresent,Pl,Pers3_Distant,_   > => "hyN" ;
+		<CPast,Sg,Pers1,Masc   > => "th-a" ;
+		<CPast,Sg,Pers1,Fem   > => "th-y" ;
+        <CPast,Sg,Pers2_Casual,Masc   > => "th-a" ;
+		<CPast,Sg,Pers2_Casual,Fem   > => "th-y" ;
+        <CPast,Sg,Pers2_Familiar,Masc   > => "th-a" ;
+		<CPast,Sg,Pers2_Familiar,Fem   > => "th-y" ;
+		<CPast,Sg,Pers2_Respect,Masc   > => "th-E" ;
+		<CPast,Sg,Pers2_Respect,Fem   > => "th-yN" ;
+        <CPast,Sg,Pers3_Near,Masc   > => "th-a" ;
+		<CPast,Sg,Pers3_Near,Fem   > => "th-y" ;
+        <CPast,Sg,Pers3_Distant,Masc  > => "th-a" ;
+		<CPast,Sg,Pers3_Distant,Fem  > => "th-y" ;
+		<CPast,Pl,Pers1,Masc   > => "th-E" ;
+		<CPast,Pl,Pers1,Fem   > => "th-yN" ;
+        <CPast,Pl,Pers2_Casual,Masc   > => "th-E" ;
+		<CPast,Pl,Pers2_Casual,Fem   > => "th-yN" ;
+        <CPast,Pl,Pers2_Familiar,Masc   > => "th-E" ;
+		<CPast,Pl,Pers2_Familiar,Fem   > => "th-yN" ;
+		<CPast,Pl,Pers2_Respect,Masc   > => "th-E" ;
+		<CPast,Pl,Pers2_Respect,Fem   > => "th-yN" ;
+        <CPast,Pl,Pers3_Near,Masc   > => "th-E" ;
+		<CPast,Pl,Pers3_Near,Fem   > => "th-yN" ;
+		<CPast,Pl,Pers3_Distant,Masc   > => "th-E" ;
+		<CPast,Pl,Pers3_Distant,Fem   > => "th-yN" ;
+		<CFuture,Sg,Pers1,Masc   > => "ga" ;
+		<CFuture,Sg,Pers1,Fem   > => "gy" ;
+        <CFuture,Sg,Pers2_Casual,Masc   > => "ga" ;
+		<CFuture,Sg,Pers2_Casual,Fem   > => "gy" ;
+        <CFuture,Sg,Pers2_Familiar,Masc   > => "gE" ;
+		<CFuture,Sg,Pers2_Familiar,Fem   > => "gy" ;
+		<CFuture,Sg,Pers2_Respect,Masc   > => "gE" ;
+		<CFuture,Sg,Pers2_Respect,Fem   > => "gy" ;
+        <CFuture,Sg,Pers3_Near,Masc   > => "ga" ;
+		<CFuture,Sg,Pers3_Near,Fem   > => "gy" ;
+        <CFuture,Sg,Pers3_Distant,Masc  > => "ga" ;
+		<CFuture,Sg,Pers3_Distant,Fem  > => "gy" ;
+		<CFuture,Pl,Pers1,Masc   > => "gE" ;
+		<CFuture,Pl,Pers1,Fem   > => "gy" ;
+        <CFuture,Pl,Pers2_Casual,Masc   > => "gE" ;
+		<CFuture,Pl,Pers2_Casual,Fem   > => "gy" ;
+        <CFuture,Pl,Pers2_Familiar,Masc   > => "gE" ;
+		<CFuture,Pl,Pers2_Familiar,Fem   > => "gy" ;
+		<CFuture,Pl,Pers2_Respect,Masc   > => "gE" ;
+		<CFuture,Pl,Pers2_Respect,Fem   > => "gy" ;
+        <CFuture,Pl,Pers3_Near,Masc   > => "gE" ;
+		<CFuture,Pl,Pers3_Near,Fem   > => "gE" ;
+		<CFuture,Pl,Pers3_Distant,Masc  > => "gE" ;
+		<CFuture,Pl,Pers3_Distant,Fem  > => "gy" 
+        
+        
+        } ;
+   raha : Gender -> Number -> Str = \g,n -> 
+	   (regAdjective "rha").s ! n ! g ! Dir ! Posit ;
+
+  cka : Gender -> Number -> Str = \g,n -> 
+	  (regAdjective "cka").s ! n ! g ! Dir ! Posit ;
+	  
+  hw : UPerson -> Number -> Str = \pp,n ->    
+	 case <pp,n> of {
+	 <Pers1,_> => "hwN";
+	 <_,Pl>    => "hwN";
+	 <_,_>		=> "hw"
+	 };
+	 
+   -----------------------------------------------
+   -- Hindustani Adjectives
+   -----------------------------------------------
+   	 
+  Adjective = { s: Number => Gender => Case => Degree => Str };
+  regAdjective : Str -> Adjective; 
+  regAdjective x =  case x of {
+	              acch + ("a"|"aN") => mkAdjective x  ("bht" ++ x)          ("sb sE" ++ x)          (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E")
+		                                      (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y")
+						      (acch +"E")  ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E")
+		                                      (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y");
+									
+                        _                 => mkAdjective  x x x x x x x x x
+                                                        x x x x x x x x x
+                                                        x x x x x x x x x
+                                                        x x x x x x x x x									 
+                            }; 
+					 
+
+    mkAdjective : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> Adjective = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
+     s = table {
+	    Sg => table {
+		        Masc => table {
+				        Dir => table {
+						      Posit  => y1 ;
+						      Compar => y2 ;
+						      Superl => y3
+							 };
+					Obl => table {
+						     Posit  => y4 ;
+						     Compar => y5 ;
+						     Superl => y6
+							 };
+					Voc => table {
+						     Posit  => y7 ;
+						    Compar => y8 ;
+						    Superl => y9
+							 }
+							};
+			Fem => table {
+				        Dir => table {
+						     Posit  => y10 ;
+						      Compar => y11 ;
+						      Superl => y12
+							 };
+					Obl => table {
+						     Posit  => y13 ;
+						    Compar => y14 ;
+						    Superl => y15
+							 };
+					Voc => table {
+						     Posit  => y16 ;
+						    Compar => y17 ;
+						    Superl => y18
+							 }
+							}
+					};		
+	    Pl => table {
+		        Masc => table {
+				        Dir => table {
+						     Posit  => y19 ;
+						     Compar => y20 ;
+						      Superl => y21
+							 };
+					Obl => table {
+						     Posit  => y22 ;
+						      Compar => y23 ;
+						      Superl => y24
+							 };
+					Voc => table {
+						     Posit  => y25 ;
+						    Compar => y26 ;
+						    Superl => y27
+							 }
+							}; 
+			Fem => table {
+				        Dir => table {
+						     Posit  => y28 ;
+						    Compar => y29 ;
+						    Superl => y30
+							 };
+					Obl => table {
+						     Posit  => y31 ;
+						      Compar => y32 ;
+						      Superl => y33
+							 };
+					Voc => table {
+						     Posit  => y34 ;
+						    Compar => y35 ;
+						    Superl => y36
+							 }
+							}
+                        }
+                    }
+            };
+	
+   Verb : Type = {s : VerbForm => Str} ;
+
+ predV : Verb -> VPH ;
+  predV v = {
+         s = \\vh => 
+	   case vh of {
+	         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = v.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =v.s ! VF Perf p n g} ;
+		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  v.s ! VF Subj p n g } ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  v.s ! Root};
+		 VPInf => {fin = v.s ! Inf_Obl  ; inf =  v.s ! Root}; -- for V2V like sonE ky altja krna , check if it is being used anywhere else
+		 VPImp => {fin = v.s ! VF Subj Pers3_Near Pl Masc  ; inf =  v.s ! Root};
+		 _ => {fin = [] ; inf = v.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = v.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;	    
+							 
+   defaultAgr : Agr = agrP3 Masc Sg ;
+   agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;
+   toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+  insertSubj : UPerson -> Str -> Str = \p,s -> 
+      case p of { Pers1 => s ++ "wN" ; _ => s ++ "E"};
+      
+ mkOrd : Str -> Str =
+ \s -> case s of {
+                    "ayk"                  => "phla";
+                    "dw"                  => "dwsra";
+                    "tyN"                => "tesra";
+                    "car"                => "cwth'a";
+                    "ch'" 		 => "ch'Ta";
+                     _                   =>  s ++ "waN"
+                  };     
+}
+
diff --git a/lib/src/hindustani/ConjunctionHindustani.gf b/lib/src/hindustani/ConjunctionHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/ConjunctionHindustani.gf
@@ -0,0 +1,44 @@
+
+incomplete concrete ConjunctionHindustani of Conjunction = 
+  CatHindustani ** open CommonHindustani, ResHindustani, Coordination, Prelude in {
+
+--concrete ConjunctionUrd of Conjunction = 
+--  CatUrd ** open ResUrd, Coordination, Prelude in {
+
+
+  flags optimize=all_subs ;
+
+  lin
+
+    ConjS  = conjunctDistrSS  ;
+
+    ConjAdv conj advs = conjunctDistrTable Gender conj advs ;
+
+    ConjNP conj ss = conjunctDistrTable NPCase conj ss ** {
+      a = conjAgr (agrP3 Masc conj.n) ss.a
+      } ;
+
+    ConjAP conj ss = conjunctDistrTable4 Number Gender Case Degree conj ss ; 
+    ConjRS conj rs = conjunctDistrTable Agr conj rs ** { c = rs.c};
+
+---- These fun's are generated from the list cat's.
+
+    BaseS = twoSS ;
+    ConsS = consrSS comma ;
+    BaseAdv x y = twoTable Gender x y  ;
+    ConsAdv xs x = consrTable Gender comma xs x ;
+    BaseNP x y = twoTable NPCase x y ** {a = conjAgr x.a y.a} ;
+    BaseRS x y = twoTable Agr x y ** {c = x.c};
+    ConsNP xs x = consrTable NPCase comma xs x ** {a = conjAgr xs.a x.a} ;
+    ConsRS xs x = consrTable Agr comma xs x ** { c = xs.c};
+    BaseAP x y = twoTable4 Number Gender Case Degree x y ; -- ** {isPre = andB x.isPre y.isPre} ;
+    ConsAP xs x = consrTable4 Number Gender Case Degree comma xs x ;-- ** {isPre = andB xs.isPre x.isPre} ;
+
+  lincat
+    [S] = {s1,s2 : Str} ;
+    [Adv] = {s1,s2 : Gender => Str} ;
+    [NP] = {s1,s2 : NPCase => Str ; a : Agr} ;
+    [AP] = {s1,s2 : Number => Gender => Case => Degree => Str} ;
+    [RS] = {s1,s2 : Agr => Str ; c : Case};
+
+}
diff --git a/lib/src/hindustani/DiffHindustani.gf b/lib/src/hindustani/DiffHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/DiffHindustani.gf
@@ -0,0 +1,8 @@
+interface DiffHindustani = open CommonHindustani, Prelude in {
+ oper
+  
+  mkClause : NP -> VPH -> Clause ;
+  mkSClause : Str -> Agr -> VPH -> Clause ;
+  
+  np2pronCase :  (Case => Str) -> NPCase -> Agr -> Str ;
+}
diff --git a/lib/src/hindustani/ExtraHindustani.gf b/lib/src/hindustani/ExtraHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/ExtraHindustani.gf
@@ -0,0 +1,18 @@
+--concrete ExtraUrd of ExtraUrdAbs = CatUrd ** 
+--  open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd in {
+incomplete concrete ExtraHindustani of ExtraHindustaniAbs = CatHindustani ** 
+   open CommonHindustani,Coordination,ResHindustani, ParamX in {
+  lin
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ;
+
+    each_Det = mkDet  "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ;
+    have_V = mkV "rakh-na";
+    IAdvAdv adv = {s = "ktny" ++ adv.s} ;
+    ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "qymt" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "nothing"   ** {c2 = "" };
+
+-- for VP conjunction
+} 
diff --git a/lib/src/hindustani/ExtraHindustaniAbs.gf b/lib/src/hindustani/ExtraHindustaniAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/ExtraHindustaniAbs.gf
@@ -0,0 +1,9 @@
+abstract ExtraHindustaniAbs = Extra ** {
+
+-- uncontracted negations; contracted are the default
+  fun
+
+  each_Det : Det ;
+  have_V : V;
+  cost_V : V;
+}
diff --git a/lib/src/hindustani/NounHindustani.gf b/lib/src/hindustani/NounHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/NounHindustani.gf
@@ -0,0 +1,135 @@
+--concrete NounUrd of Noun = CatUrd ** open ResUrd, Prelude in {
+incomplete concrete NounHindustani of Noun =
+   CatHindustani ** open CommonHindustani, ResHindustani, StringsHindustani, Prelude in {
+
+  flags optimize=all_subs ;
+
+  lin
+    DetCN det cn = {
+      s = \\c => detcn2NP det cn c det.n  ;
+      a = agrP3 cn.g det.n
+      } ;
+
+    UsePN pn = {s = \\c => toNP pn.s c ; a = agrP3 pn.g Sg} ;
+    UsePron p = {s = \\c => np2pronCase p.s c p.a ; a = p.a} ;
+
+    PredetNP pred np = {
+      s = \\c => pred.s ++ np.s ! c ;
+      a = np.a
+      } ;
+
+    PPartNP np v2 = {
+      s = \\c => v2.s ! VF Perf (fromAgr np.a).p (fromAgr np.a).n (fromAgr np.a).g   ++ np.s ! c   ;
+      a = np.a
+      } ;
+
+    RelNP np rs = {
+	  s = \\c => np.s ! c ++ comma ++ rs.s ! np.a ;
+      a = np.a
+      } ;
+
+    AdvNP np adv = {
+--      s = \\c => np.s ! c ++ adv.s ! (fromAgr np.a).g ; -- jan ka bh'ay so order is changed
+      s = \\c => adv.s ! (fromAgr np.a).g  ++ np.s ! c ;
+      a = np.a
+      } ;
+
+    DetQuantOrd quant num ord = {
+--      s = \\ c => detquant2det quant.s num.s c  ++ ord.s ; 
+        s = \\n,g => quant.s!n!g!Dir ++ num.s ++ ord.s ;
+      n = num.n
+      } ;
+
+    DetQuant quant num = {
+--      s = \\c => detquant2det quant.s num.s c; 
+        s = \\n,g => quant.s!n!g!Dir ++ num.s;
+	  n = num.n
+      } ;
+
+    DetNP det = {
+      s = \\c => det2NP det c ; ---- case
+      a = agrP3 Masc Sg
+      } ;
+
+    PossPron p = {s = \\_,_,_ => p.ps ; a = p.a} ;
+
+    NumSg = {s = []; n = Sg} ;
+    NumPl = {s = []; n = Pl} ;
+
+    NumCard n = n ** {hasCard = True} ;
+
+    NumDigits n = {s = n.s ! NCard ; n = n.n} ;
+    OrdDigits n = {s = n.s ! NOrd; n = n.n} ;
+
+    NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
+    OrdNumeral numeral = {s = numeral.s ! NOrd ; n = numeral.n} ;
+
+    AdNum adn num = {s = case adn.p of {False => adn.s ++ num.s ; True => num.s ++ adn.s}; n = num.n} ;
+
+    OrdSuperl a = {s = a.s ! Sg ! Masc ! Dir ! Superl ; n = Sg} ;
+
+
+
+    DetArtSg art cn = {
+      s = \\c => art.s ++ toNP (cn.s ! Sg) c ;
+      a = agrP3 cn.g Sg
+      } ;
+
+    DetArtPl art cn = {
+      s = \\c => art.s ++ toNP (cn.s ! Pl) c ;
+      a = agrP3 cn.g Pl
+      } ;
+
+    DefArt = {s = \\_,_,_ => [] ; a = defaultAgr} ;
+    IndefArt = {s = \\_,_,_ => [] ; a =defaultAgr } ;
+
+    MassNP cn = {s = \\c => toNP (cn.s ! Sg) c ; a = agrP3 cn.g Sg} ;
+
+    UseN n = n ;
+    UseN2 n = { s = n.s  ; g = n.g };
+
+    Use2N3 f = {
+      s = f.s;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    Use3N3 f = {
+      s = f.s ;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    ComplN2 f x = {s = \\n,c => case c of {
+       Dir => x.s ! NPC c ++ f.c2  ++ f.s ! n ! c ;
+	   Obl => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c ;
+	   CommonHindustani.Voc => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c 
+	   };
+	   g = f.g;
+	   };
+    ComplN3 f x = {
+      s = \\n,c =>  x.s ! NPObj ++ f.c4  ++ f.s ! n ! Dir  ;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    AdjCN ap cn = {
+      s = \\n,c => ap.s ! n ! cn.g ! c ! Posit ++ cn.s ! n ! c ;
+      g = cn.g
+      } ;
+
+    RelCN cn rs = {
+      s = \\n,c => cn.s ! n ! c ++ rs.s ! agrP3 cn.g n ;
+      g = cn.g
+      } ;
+--    AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;    -- changed during WebAlt adver comes before noun like phaRy pr gh-r (house on the hill)
+    AdvCN cn ad = {s = \\n,c => ad.s ! cn.g ++ cn.s ! n ! c ; g = cn.g} ;
+    
+    SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
+
+    ApposCN cn np = {s = \\n,c => cn.s ! n ! Dir ++ np.s ! NPC c ; g = cn.g} ;
+
+}
diff --git a/lib/src/hindustani/PhraseHindustani.gf b/lib/src/hindustani/PhraseHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/PhraseHindustani.gf
@@ -0,0 +1,29 @@
+--concrete PhraseUrd of Phrase = CatUrd ** open Prelude, ResUrd in {
+incomplete concrete PhraseHindustani of Phrase = 
+  CatHindustani ** open CommonHindustani, ResHindustani, Prelude in {
+
+  lin
+    PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
+
+    UttS s = s ;
+    UttQS qs = {s = qs.s ! QDir} ;
+    UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ;
+    UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
+    UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
+
+    UttIP ip = {s = ip.s ! Dir} ; --- Acc also
+    UttIAdv iadv = iadv ;
+    UttNP np = {s = np.s ! NPC Dir} ;
+    UttVP vp = {s = vp.ad ++ infVP False vp (agrP3 Masc Sg) ++ vp.embComp} ;
+    UttAdv adv = {s = adv.s ! Masc} ;
+	UttCN cn = {s = cn.s ! Sg ! Dir};
+    UttCard n = n ;
+    UttAP ap = {s = ap.s ! Sg ! Masc ! Dir ! Posit} ;
+
+    NoPConj = {s = []} ;
+    PConjConj conj = {s = conj.s2} ; ---
+
+    NoVoc = {s = []} ;
+    VocNP np = {s = np.s ! NPC Dir} ;
+
+}
diff --git a/lib/src/hindustani/QuestionHindustani.gf b/lib/src/hindustani/QuestionHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/QuestionHindustani.gf
@@ -0,0 +1,78 @@
+--concrete QuestionUrd of Question = CatUrd ** open ResUrd, StringsHindustani, Prelude in {
+incomplete concrete QuestionHindustani of Question = 
+  CatHindustani ** open CommonHindustani, ResHindustani, StringsHindustani, Prelude in {
+
+  flags optimize=all_subs ;
+    coding = utf8;
+
+  lin
+
+    QuestCl cl = {
+      s = \\t,p,qf => case qf of { 
+	                  QDir => cl.s ! t ! p ! OQuest;
+                      QIndir => agr ++ cl.s ! t! p ! ODir
+					  }
+				};	  
+
+    QuestVP qp vp = 
+       let cl = mkSClause [] (Ag qp.g qp.n Pers3_Near) vp;
+           qp1 = qp.s ! Dir;
+           qp2 = qp.s ! Obl ++ nE
+          in { s = \\t,p,o => case t of {
+		             VPImpPast => case vp.subj of {VIntrans => qp1 ++ cl.s ! t ! p ! ODir; _ => qp2 ++ cl.s ! t ! p ! ODir};
+			      _         => qp1 ++ cl.s ! t ! p ! ODir
+					 }
+					}; 
+    QuestSlash ip slash = 
+     let ip1 = ip.s ! Dir;
+         ip2 = ip.s ! Obl ++ nE
+     in {
+      s = \\t,p,o => case t of { 
+            VPImpPast => ip2 ++ slash.s ! t ! p ! ODir;
+            _         => ip1 ++ slash.s ! t ! p ! ODir
+            }
+        };
+
+    QuestIAdv iadv cl = { 
+             s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir;
+                      	};
+
+    QuestIComp icomp np = 
+     let cl = mkSClause (np.s ! NPC Dir ++ icomp.s) np.a (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+    PrepIP p ip = {s = ip.s ! Obl ++ p.s ! ip.g} ;
+
+    AdvIP ip adv = {
+      s = \\c => adv.s ! ip.g ++ ip.s ! c ;
+      n = ip.n;
+      g = ip.g;
+      } ;
+ 
+    IdetCN idet cn = {
+      s = \\c => idet.s ! cn.g  ! c ++ cn.s ! idet.n ! c ; 
+      g = cn.g;
+	  n = idet.n;
+      } ;
+
+    IdetIP idet = {
+     s = \\c => idet.s ! Masc ! c ; 
+      n = idet.n;
+	  g = Masc;
+      } ;
+
+    IdetQuant iqant num = {
+      s = \\g,c => iqant.s ! num.n ! g ! c ++ num.s ; 
+      n = num.n
+      } ;
+
+    CompIAdv a = a ;
+    CompIP p = ss (p.s ! CommonHindustani.Dir) ;
+    AdvIAdv i a = {s = i.s ++ a.s ! Masc} ;
+
+}
diff --git a/lib/src/hindustani/RelativeHindustani.gf b/lib/src/hindustani/RelativeHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/RelativeHindustani.gf
@@ -0,0 +1,67 @@
+--concrete RelativeUrd of Relative = CatUrd ** open ResUrd, StringsHindustani in {
+incomplete concrete RelativeHindustani of Relative = 
+  CatHindustani ** open CommonHindustani, ResHindustani, StringsHindustani, Prelude in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    RelCl cl = {
+      s = \\t,p,o,agr => case <t,giveNumber agr> of {
+	                    <VPImpPast,Sg> => js ++ cl.s ! t ! p ! o ; 
+						<VPImpPast,Pl> => jn ++ cl.s ! t ! p ! o ;
+						<_,_>          => "jw" ++ cl.s ! t ! p ! o 
+			};
+      c = Dir
+      } ;
+
+   RelVP rp vp = {
+      s = \\t,p,o,ag => 
+        let 
+          agr = case rp.a of {
+            RNoAg => ag ;
+            RAg a => a
+            } ;
+		 cl = mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp;
+		  
+--          cl = case t of {
+--                VPImpPast =>  mkSClause (rp.s ! (giveNumber agr) ! Obl) agr vp;
+--				_         =>  mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp
+--				};
+        in
+        cl.s ! t ! p ! ODir ;
+      c = Dir
+      } ;
+      
+    RelSlash rp slash = {
+      s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Obl ++ slash.c2.s ++  slash.s ! t ! p ! o  ;--case t of {
+--	       VPImpPast => rp.s !  (giveNumber agr) Obl ++ slash.c2.s ++  slash.s ! t ! p ! o ;
+--		   _         => rp.s !  (giveNumber agr) Dir ++ slash.c2.s ++  slash.s ! t ! p ! o 
+--		   };
+      c = Dir
+      } ;
+
+    FunRP p np rp = {
+      s = \\n,c => rp.s ! n ! c ++ np.s ! NPC c ++ p.s ! Masc  ;
+      a = RAg np.a
+      } ;
+
+    IdRP = {
+      s = table {
+        Sg => table {
+		
+    	    CommonHindustani.Dir  => jw ; 
+            CommonHindustani.Obl  => js ;
+            CommonHindustani.Voc  => js 
+			};
+		Pl => table {
+            CommonHindustani.Dir  => jw ;
+		    CommonHindustani.Obl  => jn ;
+		    CommonHindustani.Voc  => jn
+			}
+       }; 
+      a = RNoAg
+      } ;
+
+}
diff --git a/lib/src/hindustani/ResHindustani.gf b/lib/src/hindustani/ResHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/ResHindustani.gf
@@ -0,0 +1,400 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Hindustaniu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+
+--resource ResHindustani = ParamX  ** open Prelude,Predef in {
+interface ResHindustani = DiffHindustani ** open CommonHindustani, Prelude, Predef in {
+
+  
+  flags optimize=all ;
+  coding = utf8;
+  
+param
+   
+	
+--	Order = ODir | OQuest ;
+	
+--2 For $Relative$
+ 
+    RAgr = RNoAg | RAg Agr ;
+    RCase = RC Number Case ;
+
+-- for Numerial
+   
+   CardOrd = NCard | NOrd ;
+  
+  -----------------------------------------
+  -- Hindustani Pronouns
+  -----------------------------------------
+  
+   Pronoun = P Number Gender Case UPerson;
+   PersPronForm = PPF Number UPerson Case;
+   
+-------------------------------------------
+--Verbs
+-------------------------------------------
+
+                
+  oper
+    Noun = {s : Number => Case => Str ; g : Gender} ;
+
+    Preposition = {s : Gender => Str};
+    DemPronForm = {s : Number => Gender => Case => Str};
+    PossPronForm = {s : Number => Gender => Case => Str};
+    Determiner = {s : Number => Gender => Str ; n : Number};
+  
+-- a useful oper
+    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ; 
+
+  RefPron : Str;
+  RefPron = "Kwd";
+  
+  ----------------------------------------------------------
+  -- Grammar part
+  ----------------------------------------------------------
+  
+
+  toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
+      NPC c => pn !  c ;
+      NPObj => pn !  Dir ;
+      NPErg => pn !  Obl ++ "nE"
+      } ;
+  detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! c ;
+       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
+       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "nE"
+      } ;  
+  det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ;
+       NPObj => dt.s ! Sg ! Masc ;
+       NPErg => dt.s ! Sg  ! Masc ++ "nE"
+      } ;    
+	  
+------------------------------------------
+-- Agreement transformations
+-----------------------------------------
+{-    toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+-}    
+--    defaultAgr : Agr = agrP3 Masc Sg ;
+--    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
+    personalAgr : Agr = agrP1 Masc Sg ;
+    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
+	
+ param
+      CPolarity = 
+       CPos
+       | CNeg Bool ;  -- contracted or not
+
+ oper
+    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
+    Pos => CPos ;
+    Neg => CNeg b
+    } ;
+
+--	NP : Type = {s : NPCase => Str ; a : Agr} ;
+
+  oper
+    
+	objVType : VType -> NPCase = \vt -> case vt of {
+      VTrans => NPObj ;
+      _ => NPC Obl
+      } ;
+
+	VPHSlash = VPH ** {c2 : Compl} ;
+
+    Compl : Type = {s : Str ; c : VType} ;
+
+
+    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
+    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
+{-
+-------------------------
+-- added for cauitives
+   predVcc : (Verb **{c2:Compl}) -> VPHSlash = \verb ->
+    predV verb ** {c2 = {s = "" ; c = VTrans} } ;
+------------------------
+-}	 
+	predAux : Aux -> VPH = \verb -> {
+     s = \\vh => 
+       let  
+
+		 inf  = verb.inf ;
+         part = verb.ppart ;
+
+       in
+       case vh of {
+	 VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
+         VPStem => {fin = []  ; inf = "rh" };
+		 _ => {fin = part ; inf = [] }
+		 };
+	  obj = {s = [] ; a = defaultAgr} ;
+      subj = VIntrans ;
+      inf = verb.inf;
+	  ad = [];
+      embComp = [];
+      prog = False ;
+      comp = \\_ => []
+      } ;
+    
+    Aux = {
+      inf,ppart,prpart : Str
+    } ;
+
+    auxBe : Aux = {
+    inf  = "" ;
+    ppart = "" ;
+    prpart = ""
+    } ;
+    
+    predProg : VPH -> VPH = \verb -> {
+     s = \\vh => 
+       case vh of {
+         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = (verb.s!VPStem).inf ++ raha g n  } ;
+	 VPTense VPPerf (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ raha g n } ;
+         VPStem => {fin = []  ; inf = (verb.s!VPStem).inf };
+		 _ => {fin = [] ; inf = [] }
+		 };
+      obj = verb.obj ;
+      subj =  VIntrans ;
+      inf = verb.inf;
+      ad = verb.ad;
+      embComp = verb.embComp;
+      prog = True ;
+      comp = verb.comp 
+      } ;
+   	
+{-  Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+                                                   _    => vp.s !  VPTense VPFutr agr } ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "Xayd" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "Xayd" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => vp.s !  VPTense VPFutr agr ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "Xayd"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+-}    
+--    insertSubj : UPerson -> Str -> Str = \p,s -> 
+--      case p of { Pers1 => s ++ "wN" ; _ => s ++ "E"};
+   
+    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
+     } ;
+     insertVV : Str -> VPH -> Str -> VPH = \obj1,vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ emb ;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1  
+     } ;
+     
+    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ obj1;
+     prog = vp.prog ;
+     comp = vp.comp
+     
+     } ;
+	 
+	insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj obj vp ** {c2 = vp.c2} ;
+    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj2 obj vp ** {c2 = vp.c2} ;
+
+	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
+     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
+--    infVV : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False => vp.obj.s ++ vp.inf ; True => vp.obj.s ++ (vp.s ! VPImp).fin };
+   infVV : Bool -> VPH -> Str = \isAux,vp -> 
+      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin } ;
+    infV2V : Bool -> VPH -> Str = \isAux,vp -> 
+      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPInf).fin ++ "ky"  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "ky"};
+
+
+    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
+      s = vps.s ;
+      obj = {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
+      subj = vps.c2.c ;
+	  inf = vps.inf;
+	  ad = vps.ad;
+      embComp = vps.embComp;
+      prog = vps.prog ;
+      comp = vps.comp
+      } ;
+	  
+	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj ;
+	 ad = vp.ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
+    } ;
+
+    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+	 subj = vp.subj;
+     ad  = vp.ad ++ ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+    
+	conjThat : Str = "kh" ;
+    
+  insertEmbCompl : VPH -> Str -> VPH = \vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj;
+     ad  = vp.ad;
+     embComp = vp.embComp ++ emb;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+  insertTrans : VPH -> VType -> VPH = \vp,vtype -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vtype;
+     ad  = vp.ad;
+     embComp = vp.embComp ;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;  
+
+}
+
diff --git a/lib/src/hindustani/SentenceHindustani.gf b/lib/src/hindustani/SentenceHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/SentenceHindustani.gf
@@ -0,0 +1,105 @@
+--concrete SentenceUrd of Sentence = CatUrd ** open Prelude, StringsHindustani, ResUrd in {
+incomplete concrete SentenceHindustani of Sentence = 
+  CatHindustani ** open CommonHindustani, ResHindustani, Prelude, StringsHindustani in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    PredVP np vp = mkClause np vp ;
+
+    PredSCVP sc vp = mkSClause sc.s (defaultAgr) vp ;
+
+    ImpVP vp = {
+      s = \\pol,n => 
+        let 
+          agr   = Ag Masc (numImp n) Pers2_Casual ;
+          verb  = infVP True vp agr ;
+          dont  = case pol of {
+            CNeg True => mt ;
+            CNeg False => nh ;
+            _ => []
+            }
+        in
+        dont ++ verb
+    } ;
+
+    SlashVP np vp = 
+      mkClause np vp ** {c2 = vp.c2} ;
+
+    AdvSlash slash adv = {
+	  s  = \\t,p,o =>  adv.s ! Masc ++ slash.s ! t ! p ! o  ;
+      c2 = slash.c2
+    } ;
+
+    SlashPrep cl prep = cl **  {c2 = { s = prep.s ! Masc ; c = VIntrans}} ;
+
+    SlashVS np vs slash = 
+      mkClause  np 
+        (insertObj2 (conjThat ++ slash.s) (predV vs))  **
+        {c2 = slash.c2} ;
+
+    EmbedS  s  = {s = conjThat ++ s.s} ;
+    EmbedQS qs = {s = qs.s ! QIndir} ;
+    EmbedVP vp = {s = infVP False vp defaultAgr} ; --- agr
+
+    UseCl  temp p cl = 
+	 { s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! ODir;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir -- this needs to be fixed by making SubjPerf in ResUrd		  
+
+   };
+  } ;
+    UseQCl temp p cl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! q;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! q;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q		  
+ 
+   };
+  } ;
+    UseRCl temp p rcl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ rcl.s ! VPGenPres ! p.p ! ODir ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPres ! p.p ! ODir ! q;
+          <Past,Simul> => temp.s ++ p.s ++ rcl.s ! VPImpPast ! p.p ! ODir ! q;
+          <Past,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPast ! p.p ! ODir ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ rcl.s ! VPPerfFut ! p.p ! ODir ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q
+     };		  
+      c = rcl.c
+    } ;
+    UseSlash temp p clslash = {
+      s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ clslash.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ clslash.s ! VPImpPast ! p.p ! ODir ;
+          <Past,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ clslash.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir
+     };		  
+      c2 = clslash.c2
+    } ;
+
+    AdvS a s = {s = a.s ! Masc ++ s.s} ;
+
+    RelS s r = {s = s.s ++ r.s ! agrP3 Masc Sg} ;
+    SSubjS s sj s = { s = s.s ++ sj.s ++ s.s};
+
+}
diff --git a/lib/src/hindustani/StringsHindustani.gf b/lib/src/hindustani/StringsHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/StringsHindustani.gf
@@ -0,0 +1,20 @@
+resource StringsHindustani = {
+
+flags coding = utf8 ;
+
+oper
+  agr = "agr" ;
+  awr = "awr" ;
+  jn = "jn" ;
+  js = "js" ;
+  jw = "jw" ;
+  kw = "kw" ;
+  mt = "mt" ;
+  nE = "nE" ;
+  nh = "nh" ;
+  sE = "sE" ;
+  waN = "waN" ;
+
+  comma = "," ;
+
+}
diff --git a/lib/src/hindustani/SymbolHindustani.gf b/lib/src/hindustani/SymbolHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/SymbolHindustani.gf
@@ -0,0 +1,47 @@
+--# -path=.:../abstract:../common
+
+--concrete SymbolUrd of Symbol = CatUrd ** open Prelude, ResUrd, StringsHindustani in {
+incomplete concrete SymbolHindustani of Symbol = 
+  CatHindustani ** open Prelude, ResHindustani, StringsHindustani, CommonHindustani in {
+
+ lin
+-- SymbPN i = {s = \\_ => i.s ; g = Masc} ;
+  SymbPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  IntPN i  = {s = addGenitiveS i.s ; g = Masc} ;
+  FloatPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  NumPN i = {s = \\_ =>i.s ; g = Masc} ;
+  CNIntNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+  CNSymbNP det cn xs = {
+    s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Dir ++  xs.s ; 
+    a = agrP3 cn.g det.n
+    } ;
+  CNNumNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+
+  SymbS sy = sy ; 
+  SymbNum sy = { s = sy.s ; n = Pl } ;
+  SymbOrd sy = { s = sy.s ++ waN ; n = Pl} ;
+
+lincat 
+
+  Symb, [Symb] = SS ;
+
+lin
+  MkSymb s = s ;
+
+  BaseSymb = infixSS awr ;
+  ConsSymb = infixSS [] ;
+
+oper
+    -- Note: this results in a space before 's, but there's
+    -- not mauch we can do about that.
+    addGenitiveS : Str -> Case => Str = \s -> 
+--     table {_ => s ++ "ka" } ;
+     table {_ => s  } ;  -- testing for webalt but i think should bring back to its origional form as 'ka' is needed for making genitive, in webalt it gives unnecessary 'ka'
+
+}
diff --git a/lib/src/hindustani/VerbHindustani.gf b/lib/src/hindustani/VerbHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/hindustani/VerbHindustani.gf
@@ -0,0 +1,42 @@
+--concrete VerbUrd of Verb = CatUrd ** open ResUrd in {
+incomplete concrete VerbHindustani of Verb = CatHindustani ** open CommonHindustani, ResHindustani, StringsHindustani in {
+
+  flags optimize=all_subs ;
+
+  lin
+    UseV  v = predV v   ;
+    SlashV2a v = predV v ** {c2 = {s = v.c2.s ; c = VTrans}} ;
+    Slash2V3 v np = 
+      insertObjc (\\_ => np.s ! NPObj ++ v.c3 ) (predV v ** {c2 = {s = v.c2 ; c = VTrans}}) ;
+    Slash3V3 v np = 
+      insertObjc (\\_ => np.s ! NPC Obl ++ v.c2) (predV v ** {c2 = {s = v.c3 ; c = VTrans}}) ; 
+    ComplVV v vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp ) VTransPost;
+    ComplVS v s  = insertTrans (insertObj2 (conjThat ++ s.s) (predV v)) VTransPost ;
+    ComplVQ v q  = insertObj2 (conjThat ++ q.s ! QIndir) (predV v) ;
+    ComplVA v ap = insertObj (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit) (predV v) ;
+    SlashV2V v vp = insertVV (infV2V v.isAux vp) (predV v) vp.embComp **{c2 = {s = sE ; c = VTransPost}} ;
+    SlashV2S v s  = insertObjc2 (conjThat ++ s.s) (predV v ** {c2 = {s = kw ; c = VTransPost}}) ;
+    SlashV2Q v q  = insertObjc2 (conjThat ++ q.s ! QIndir) (predV v ** {c2 = {s = sE ; c = VTransPost}}) ;
+    SlashV2A v ap = insertObjc (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit) (predV v ** {c2 = {s = kw ; c = VTransPost}}) ; ----
+    ComplSlash vp np = insertObject np vp ;
+    SlashVV vv vp = 
+      insertEmbCompl (insertObj (\\a => infVP vv.isAux vp a) (predV vv)) vp.embComp **
+        {c2 = vp.c2} ;
+    SlashV2VNP vv np vp = 
+      insertObjPre (\\_ =>  np.s ! NPObj  )
+        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
+          {c2 = vp.c2} ;
+    UseComp comp = insertObj comp.s (predAux auxBe) ;
+
+    AdvVP vp adv = insertObj (\\a => adv.s ! giveGender a) vp ;
+
+    AdVVP adv vp = insertAdV adv.s vp ;
+    ReflVP v = insertObjPre (\\_ =>  RefPron) v ;
+    PassV2 v = predV v ; -- need to be fixed
+    CompAP ap ={s = \\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit } ;
+    CompNP np = {s = \\_ => np.s ! NPC Dir} ;
+    CompAdv adv = {s = \\a => adv.s ! giveGender a} ;
+    CompCN cn = {s = \\a => cn.s ! giveNumber a ! Dir} ;
+
+
+}
diff --git a/lib/src/interlingua/AdjectiveIna.gf b/lib/src/interlingua/AdjectiveIna.gf
--- a/lib/src/interlingua/AdjectiveIna.gf
+++ b/lib/src/interlingua/AdjectiveIna.gf
@@ -13,6 +13,20 @@
       isPre = False
       } ;
 
+    UseComparA a = {
+      s = \\_ => a.s ! AAdj Compar ;
+      isPre = False
+      } ;
+
+    AdjOrd ord = {
+      s = \\_ => ord.s ;
+      isPre = False
+      } ;
+
+    CAdvAP ad ap np = {
+      s = \\a => ad.s ++ ap.s ! a ++ ad.p ++ np.s ! Nom ; 
+      isPre = False
+      } ;
 -- $SuperlA$ belongs to determiner syntax in $Noun$.
 
     ComplA2 a np = {
diff --git a/lib/src/interlingua/ConjunctionIna.gf b/lib/src/interlingua/ConjunctionIna.gf
--- a/lib/src/interlingua/ConjunctionIna.gf
+++ b/lib/src/interlingua/ConjunctionIna.gf
@@ -18,6 +18,8 @@
       isPre = ss.isPre
       } ;
 
+    ConjRS = conjunctDistrTable Agr ;
+
 -- These fun's are generated from the list cat's.
 
     BaseS = twoSS ;
@@ -28,11 +30,14 @@
     ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
     BaseAP x y = twoTable Agr x y ** {isPre = andB x.isPre y.isPre} ;
     ConsAP xs x = consrTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
+    BaseRS x y = twoTable Agr x y ;
+    ConsRS xs x = consrTable Agr comma xs x ;
 
   lincat
     [S] = {s1,s2 : Str} ;
     [Adv] = {s1,s2 : Str} ;
     [NP] = {s1,s2 : Case => Str ; a : Agr} ;
     [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ;
+    [RS] = {s1,s2 : Agr => Str} ;
 
 }
diff --git a/lib/src/interlingua/GrammarIna.gf b/lib/src/interlingua/GrammarIna.gf
--- a/lib/src/interlingua/GrammarIna.gf
+++ b/lib/src/interlingua/GrammarIna.gf
@@ -13,7 +13,8 @@
   PhraseIna,
   TextX,
   StructuralIna,
-  IdiomIna
+  IdiomIna,
+  TenseX
   ** {
 
 flags startcat = Phr ; unlexer = text ; lexer = text ;
diff --git a/lib/src/interlingua/ParadigmsIna.gf b/lib/src/interlingua/ParadigmsIna.gf
--- a/lib/src/interlingua/ParadigmsIna.gf
+++ b/lib/src/interlingua/ParadigmsIna.gf
@@ -149,7 +149,7 @@
 ---- as an adverb. Likewise $AS, A2S, AV, A2V$ are just $A$.
 ---- $V0$ is just $V$.
 --
-  V0, V2S, V2V, V2Q : Type ;
+  V0 : Type ; --- V2S, V2V, V2Q : Type ;
   AS, A2S, AV, A2V : Type ;
 --
 ----.
@@ -222,16 +222,16 @@
     mkVQ  v = v ** {lock_VQ = <>} ;
   
     V0 : Type = V ;
-    V2S, V2V, V2Q : Type = V2 ;
+---    V2S, V2V, V2Q : Type = V2 ;
     AS, A2S, AV : Type = A ;
     A2V : Type = A2 ;
 --
     mkV0  v = v ** {lock_V = <>} ;
 --  mkV2S v p = prepV2 v p ** {lock_V2 = <>} ;
-    mkV2V p t v = prepV2 p v ** {s4 = t ; lock_V2 = <>} ;
+    mkV2V p t v = prepV2 p v ** {s4 = t ; lock_V2V = <>} ;
     mkVA  v = v ** {lock_VA = <>} ;
     mkV2A p2 p3 v = (prepV3 p3 (prepV2 p2 v)) ** {lock_V2A = <>} ;
-    mkV2Q p v = prepV2 p v ** {lock_V2 = <>} ;
+    mkV2Q p v = prepV2 p v ** {lock_V2Q = <>} ;
     mkAS  v = v ** {lock_A = <>} ;
 --  mkA2S v p = mkA2 v p ** {lock_A = <>} ;
     mkAV  v = v ** {lock_A = <>} ;
diff --git a/lib/src/interlingua/PhraseIna.gf b/lib/src/interlingua/PhraseIna.gf
--- a/lib/src/interlingua/PhraseIna.gf
+++ b/lib/src/interlingua/PhraseIna.gf
@@ -15,6 +15,11 @@
     UttVP vp = {s = infVP vp} ;
     UttAdv adv = adv ;
 
+    UttCN n = {s = n.s ! Sg} ;
+    UttCard n = {s = n.s} ;
+    UttAP ap = {s = ap.s ! agrP3 Sg} ;
+    UttInterj i = i ;
+
     NoPConj = {s = []} ;
     PConjConj conj = ss conj.s2 ;
     
diff --git a/lib/src/interlingua/QuestionIna.gf b/lib/src/interlingua/QuestionIna.gf
--- a/lib/src/interlingua/QuestionIna.gf
+++ b/lib/src/interlingua/QuestionIna.gf
@@ -47,6 +47,8 @@
       n = num.n
       } ;
 
+    AdvIAdv i a = ss (i.s ++ a.s) ;
+
     CompIAdv a = a ;
 
     CompIP ip = ss (ip.s ! Nom) ;
diff --git a/lib/src/interlingua/StructuralIna.gf b/lib/src/interlingua/StructuralIna.gf
--- a/lib/src/interlingua/StructuralIna.gf
+++ b/lib/src/interlingua/StructuralIna.gf
@@ -4,8 +4,8 @@
   flags optimize=all ;
 
   oper
-    mkPrep = P.mkPrep;
-    pp : Str -> Prep = \s-> mkPrep s Acc;
+---    mkPrep = P.mkPrep;
+    pp : Str -> Prep = \s-> P.mkPrep s Acc;
   lin
     above_Prep = pp "supra";
     after_Prep = pp "post" ;
@@ -36,7 +36,7 @@
     he_Pron = mkPron "ille" "le" "su" Sp3;
     here_Adv = ss "hic" ;
     here7to_Adv = ss "hac" ;
-    here7from_Adv = mkPrep ["de ci"] Dat;
+    here7from_Adv = P.mkPrep ["de ci"] Dat;
     how_IAdv = ss "como" ;
     how8many_IDet = mkIDeterminer Pl ["quante"] ;
     if_Subj = ss "ii" ;
@@ -51,13 +51,13 @@
     much_Det = mkDeterminer Sg "tanto" ;
     must_VV = P.regV "deber";
     no_Utt = ss "no" ;
-    on_Prep = mkPrep "super" Acc;
+    on_Prep = P.mkPrep "super" Acc;
     only_Predet = ss "unic" ;
     or_Conj = {s1 = [] ; s2 = "o" ; n = Sg} ;
     otherwise_PConj = ss "alias" ;
-    part_Prep = mkPrep [] Abl; -- de ...
+    part_Prep = P.mkPrep [] Abl; -- de ...
     please_Voc = ss ("per"++"favor") ;
-    possess_Prep = mkPrep [] Gen; -- the possesive preposition can not generate clitics, and fuses with the definite determiner "le". Pronoun form: "mie", "sue", etc.
+    possess_Prep = P.mkPrep [] Gen; -- the possesive preposition can not generate clitics, and fuses with the definite determiner "le". Pronoun form: "mie", "sue", etc.
     quite_Adv = ss "assi" ;
     she_Pron = mkPron "illa" "la" "su" Sp3;
     so_AdA = ss "tam" ;
@@ -66,7 +66,7 @@
     somePl_Det = mkDeterminer Pl (variants {"alicun"; "alcun"});
     something_NP = regNP ("alcun"++"cosa") ; -- very many variants
     somewhere_Adv = ss "alicubi" ; -- variants
-    that_Quant = mkQuant "ille" "ille" ;
+    that_Quant = mkQuantf "ille" "ille" ;
 --    that_NP = regNP "illo" ; -- Also exsits gender variants!
     there_Adv = ss "ibi"; -- la
     there7to_Adv = ss "ibi" ;
@@ -74,12 +74,12 @@
     therefore_PConj = ss "ergo" ;
 --    these_NP = regNP "istes" ;
     they_Pron = mkPron "illos" "los" "lor" Pp3; 
-    this_Quant = mkQuant "iste" "istes" ;
+    this_Quant = mkQuantf "iste" "istes" ;
 --    this_NP = regNP "isto" ;
 --    those_NP = regNP "illos" ; -- Also exsits gender variants!
-    through_Prep =  mkPrep "per" Acc;
+    through_Prep =  P.mkPrep "per" Acc;
     too_AdA = ss "alsi" ;
-    to_Prep = mkPrep "" Dat;
+    to_Prep = P.mkPrep "" Dat;
     under_Prep = pp "infra" ;
     very_AdA = ss "multo" ;
     want_VV = P.regV "want" ;
@@ -97,8 +97,8 @@
     whoSg_IP = mkIP "qui" Sg ;
     whoPl_IP = mkIP "qui" Pl ;
     why_IAdv = ss "proque" ;
-    without_Prep = mkPrep "sin" Acc;
-    with_Prep = mkPrep "con" Acc ;
+    without_Prep = P.mkPrep "sin" Acc;
+    with_Prep = P.mkPrep "con" Acc ;
     yes_Utt = ss "itaque" ; -- ita?
     youSg_Pron = mkPron "tu" "te" "tu" Sp2;
     youPl_Pron = mkPron "vos" "vos" "vostre" Pp2;
@@ -107,7 +107,7 @@
     -- have_V2 = dirV2 (R.haberV ** {lock_V = <>});
 
 oper
-  mkQuant : Str -> Str -> {s : Number => Case => Str} = \x,y -> {
+  mkQuantf : Str -> Str -> {s : Number => Case => Str} = \x,y -> {
     s = \\n,c=> case n of {
       Sg => x;
       Pl => y
diff --git a/lib/src/interlingua/VerbIna.gf b/lib/src/interlingua/VerbIna.gf
--- a/lib/src/interlingua/VerbIna.gf
+++ b/lib/src/interlingua/VerbIna.gf
@@ -61,6 +61,7 @@
 
     CompAP ap = ap ;
     CompNP np = {s = \\_ => np.s ! Acc} ;
+    CompCN cn = {s = \\a => cn.s ! a.n} ;
     CompAdv a = {s = \\_ => a.s} ;
 
 }
diff --git a/lib/src/italian/ExtraIta.gf b/lib/src/italian/ExtraIta.gf
--- a/lib/src/italian/ExtraIta.gf
+++ b/lib/src/italian/ExtraIta.gf
@@ -36,4 +36,9 @@
       "Loro" "Loro" "Li" "Glie" "Loro" "Loro" "Loro" "Loro" "Loro" 
       Fem Pl P3 ;
 
+    PossFamQuant p = {
+      s = \\_,n,g,c => case n of {Sg => prepCase c ; _ => possCase g n c} ++ p.poss ! n ! g ;
+      sp = \\ n,g,c => case n of {Sg => prepCase c ; _ => possCase g n c} ++ p.poss ! n ! g ;
+      s2 = []
+      } ;
 }
diff --git a/lib/src/italian/ExtraItaAbs.gf b/lib/src/italian/ExtraItaAbs.gf
--- a/lib/src/italian/ExtraItaAbs.gf
+++ b/lib/src/italian/ExtraItaAbs.gf
@@ -25,4 +25,7 @@
     youPolPl_Pron : Pron ;    -- Loro
     youPolPl8fem_Pron : Pron ;
 
+-- Possessive without definite article, like "mio figlio".
+
+    PossFamQuant : Pron -> Quant ;
 }
diff --git a/lib/src/italian/LexiconIta.gf b/lib/src/italian/LexiconIta.gf
--- a/lib/src/italian/LexiconIta.gf
+++ b/lib/src/italian/LexiconIta.gf
@@ -14,7 +14,7 @@
   art_N = femN (regN "arte") ;
   ask_V2Q = mkV2Q (verboV (chiedere_29 "chiedere")) ParadigmsIta.dative ;
   baby_N = regN "bambino" ;
-  bad_A = prefA (mkADeg (regA "cattivo") (regA "peggio")) ;
+  bad_A = prefA (mkADeg (regA "cattivo") (regA "peggiore")) ;
   bank_N = regN "banca" ;
   beautiful_A = prefA (regADeg "bello") ;
   become_VA = essereV (regV "diventare") ;
@@ -103,6 +103,7 @@
   john_PN = mkPN "Giovanni" masculine ;
   king_N = regN "ré" ;
   know_V2 = dirV2 (verboV (conoscere_37 "conoscere")) ;
+  know_VQ = mkVQ (verboV (sapere_78 "sapere")) ;
   know_VS = mkVS (verboV (sapere_78 "sapere")) ;
   lake_N = regN "lago" ;
   lamp_N = regN "lampada" ;
diff --git a/lib/src/italian/NumeralIta.gf b/lib/src/italian/NumeralIta.gf
--- a/lib/src/italian/NumeralIta.gf
+++ b/lib/src/italian/NumeralIta.gf
@@ -1,4 +1,4 @@
-concrete NumeralIta of Numeral = CatIta ** 
+concrete NumeralIta of Numeral = CatIta [Numeral,Digits] ** 
   open CommonRomance, ResRomance, MorphoIta, Prelude in {
 
 lincat 
@@ -35,7 +35,7 @@
                                          NCard Fem => "una" ;
                                          _ => uno ! f ! g
                                          };
-                    indep =>  case g of
+                    indip =>  case g of
                                    { NCard _ => [] ;
                                      _       => uno ! f ! g
                                     }
@@ -54,25 +54,27 @@
 lin pot1plus d e = 
        let ss = if_then_Str e.isContr  (d.s ! tiouno ! NCard Masc) (d.s ! tiotal ! NCard Masc)
               in
-   {s = table {NCard g =>  ss ++ "&+" ++(e.s ! ental pred ! NCard Masc) ;
-               NOrd g n => ss ++ "&+" ++e.s ! ental indip ! NOrd g n};
+   {s = table {NCard g =>  ss ++ BIND ++(e.s ! ental pred ! NCard Masc) ;
+               NOrd g n => ss ++ BIND ++e.s ! ental indip ! NOrd g n};
      n = Pl} ;
 
 lin pot1as2 n = n ;
 
-lin pot2 d = spl (\\co => d.s ! ental indip ! NCard Masc ++ "&+"++
+lin pot2 d = spl (\\co => d.s ! ental indip ! NCard Masc ++ nBIND d.n ++
   (mkTall "cento" [] [] [] "cent").s ! ental indip ! co) ;
 lin pot2plus d e = 
-  {s = table {NCard g => d.s ! ental indip ! NCard Masc ++ "&+" ++"cento" ++ "&+" ++e.s ! NCard Masc ;
-              NOrd g n => d.s ! ental indip ! NCard Masc ++ "&+" ++"cento" ++ "&+" ++ e.s ! NOrd g n};
+  {s = table {NCard g => d.s ! ental indip ! NCard Masc ++ nBIND d.n ++"cento" ++ BIND ++e.s ! NCard Masc ;
+              NOrd g n => d.s ! ental indip ! NCard Masc ++ nBIND d.n ++"cento" ++ BIND ++ e.s ! NOrd g n};
    n = Pl} ;
 lin pot2as3 n = n ;
-lin pot3 n = spl (\\co => n.s ! NCard Masc ++ "&+" ++
+lin pot3 n = spl (\\co => n.s ! NCard Masc ++ nBIND n.n ++
   (mkTall (mille ! n.n) [] [] [] "mill").s ! ental indip ! co ) ;
 
-lin pot3plus n m = {s = \\g => n.s ! NCard Masc ++ "&+" ++ mille ! n.n ++ "e" ++ m.s ! g ; n = Pl} ;
+lin pot3plus n m = {s = \\g => n.s ! NCard Masc ++ nBIND n.n ++ mille ! n.n ++ "e" ++ m.s ! g ; n = Pl} ;
 
 oper
+  nBIND : Number -> Str = \n -> case n of {Sg => [] ; _ => BIND} ; -- no BIND after silent 1
+
   mkTall : (x1,_,_,_,x5 : Str) -> {s : DForm => CardOrd => Str} =
     \due,dodici,venti,secondo,du -> 
    {s = \\d,co => case <d,co> of {
diff --git a/lib/src/italian/ParadigmsIta.gf b/lib/src/italian/ParadigmsIta.gf
--- a/lib/src/italian/ParadigmsIta.gf
+++ b/lib/src/italian/ParadigmsIta.gf
@@ -58,16 +58,22 @@
 
   --Prep : Type ;
 
-  accusative : Prep ;
-  genitive   : Prep ;
-  dative     : Prep ;
-
-  mkPrep : Str -> Prep ;
+  accusative : Prep ; -- direct object
+  genitive   : Prep ; -- preposition "di" and its contractions
+  dative     : Prep ; -- preposition "a" and its contractions
 
 -- The following prepositions also have special contracted forms.
 
-  con_Prep, da_Prep, in_Prep, su_Prep : Prep ;
+  con_Prep : Prep ; -- preposition "con" and its contractions
+  da_Prep : Prep ; -- preposition "da" and its contractions
+  in_Prep : Prep ; -- preposition "in" and its contractions
+  su_Prep : Prep ; -- preposition "su" and its contractions
 
+-- other prepositions
+
+  mkPrep : Str -> Prep ; -- other prepositions, e.g. "dopo"
+
+
 --2 Nouns
 
   mkN : overload {
@@ -77,22 +83,22 @@
 -- The heuristic says that the gender is feminine for nouns
 -- ending with "a", and masculine for all other words.
 
-    mkN : (cane : Str) -> N ;
+    mkN : (cane : Str) -> N ; -- regular noun; fem for -"a", masc otherwise
 
 -- To force a different gender, give it explicitly.
 
-    mkN : (carne : Str) -> Gender -> N ; 
+    mkN : (carne : Str) -> Gender -> N ; -- override default gender
 
 -- Worst case: give both two forms and the gender. 
 
-    mkN : (uomo,uomini : Str) -> Gender -> N ;
+    mkN : (uomo,uomini : Str) -> Gender -> N ; -- worst case
 
 -- In *compound nouns*, the first part is inflected as a noun but
 -- the second part is not inflected. e.g. "numero di telefono". 
 -- They could be formed in syntax, but we give a shortcut here since
 -- they are frequent in lexica.
 
-    mkN : N -> Str -> N
+    mkN : N -> Str -> N -- compound such as "numero" + "di telefono"
     } ;
 
 
@@ -104,13 +110,13 @@
 -- The default is regular nouns with the genitive "di".
 
   mkN2 : overload {
-    mkN2 : Str -> N2 ;
-    mkN2 : N -> Prep -> N2
+    mkN2 : Str -> N2 ; -- regular with genitive, e.g. "figlio" + "di"
+    mkN2 : N -> Prep -> N2 -- arbitrary noun and preposition
   } ;
 
 -- Three-place relational nouns ("la connessione di x a y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. volo + da + per
 
 
 --3 Relational common noun phrases
@@ -127,8 +133,8 @@
 -- the name ends with an "a", and masculine otherwise.
 
   mkPN : overload {
-    mkPN : Str -> PN ;
-    mkPN : Str -> Gender -> PN
+    mkPN : Str -> PN ; -- femininne for "-a", otherwise masculine
+    mkPN : Str -> Gender -> PN -- set gender manually
   } ;
 
 
@@ -140,18 +146,18 @@
 -- For regular adjectives, all forms are derived from the
 -- masculine singular. Comparison is formed by "più".
 
-    mkA : (bianco : Str) -> A ;
+    mkA : (bianco : Str) -> A ; -- predictable adjective
 
 -- Five forms are needed in the worst
 -- case (masc and fem singular, masc plural, adverbial), given that
 -- comparison is formed by "più".
 
-    mkA : (solo,sola,soli,sole,solamente : Str) -> A ;
+    mkA : (solo,sola,soli,sole,solamente : Str) -> A ; -- irregular adjective
 
 -- With irregular comparison, there are as it were two adjectives:
 -- the positive ("buono") and the comparative ("migliore"). 
 
-    mkA : A -> A -> A
+    mkA : A -> A -> A -- special comparison, e.g. buono - migliore
     } ;
 
 -- All the functions above create postfix adjectives. To switch
@@ -159,7 +165,8 @@
 -- modification, as in "vecchia chiesa"), the following function is
 -- provided.
 
-    prefixA : A -> A = prefA ;
+    prefixA : A -> A -- adjective that comes before noun (default: after) 
+    = prefA ;
 
 
 
@@ -167,7 +174,7 @@
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. divisibile + per
 
 
 
@@ -197,26 +204,26 @@
 -- these endings, as well as the variations among
 -- "amare, cominciare, mangiare, legare, cercare".
 
-    mkV : Str -> V ;
+    mkV : Str -> V ; -- regular verbs in "-are"/"-ire"
  
 -- The module $BeschIta$ gives (almost) all the patterns of the "Bescherelle"
 -- book. To use them in the category $V$, wrap them with the function
 
-    mkV : Verbo -> V ;
+    mkV : Verbo -> V ; -- verbs formed by BeschIta
 
 -- If $BeschIta$ does not give the desired result or feels difficult
 -- to consult, here is a worst-case function for "-ire" and "-ere" verbs,
 -- taking 11 arguments.
 
-    mkV : (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V 
+    mkV : (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V -- worst case
     } ;
 
 -- The function $regV$ gives all verbs the compound auxiliary "avere".
 -- To change it to "essere", use the following function.
 -- Reflexive implies "essere".
 
-  essereV : V -> V ;
-  reflV : V -> V ;
+  essereV : V -> V ; -- force "essere" as auxiliary (default avere)
+  reflV : V -> V ; -- reflexive verb (implies essere)
 
 
 --3 Two-place verbs
@@ -225,14 +232,14 @@
 -- (transitive verbs). Notice that a particle comes from the $V$.
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;
-    mkV2 : V -> Prep -> V2
+    mkV2 : Str -> V2 ; -- regular verb, direct object 
+    mkV2 : V -> V2 ;   -- direct object
+    mkV2 : V -> Prep -> V2 -- prepositional object
     } ;
 
 -- You can reuse a $V2$ verb in $V$.
 
-  v2V : V2 -> V ;
+  v2V : V2 -> V ; --%
 
 --3 Three-place verbs
 --
@@ -249,7 +256,7 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;  -- plain infinitive: "voglio parlare"
@@ -261,18 +268,18 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> Prep -> AV ;
-  mkA2V : A -> Prep -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> Prep -> AV ; --%
+  mkA2V : A -> Prep -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given
 -- as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 
 --.
diff --git a/lib/src/italian/StructuralIta.gf b/lib/src/italian/StructuralIta.gf
--- a/lib/src/italian/StructuralIta.gf
+++ b/lib/src/italian/StructuralIta.gf
@@ -37,14 +37,14 @@
   few_Det  = {s,sp = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl ; s2 = []} ;
 ----  first_Ord = {s = \\ag => (regA "primo").s ! Posit ! AF ag.g ag.n} ;
   for_Prep = mkPrep "per" ;
-  from_Prep = complGen ; ---
+  from_Prep = da_Prep ;
   he_Pron = 
     mkPronoun
       "lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue"
       Masc Sg P3 ;
-  here7from_Adv = ss ["da quÃ¬"] ;
-  here7to_Adv = ss "quÃ¬" ;
-  here_Adv = ss "quÃ¬" ;
+  here7from_Adv = ss ["da quà"] ;
+  here7to_Adv = ss "quà" ;
+  here_Adv = ss "quà" ;
   how_IAdv = ss "come" ;
   how8much_IAdv = ss "quanto" ;
   how8many_IDet = {s = \\g,c => prepCase c ++ genForms "quanti" "quante" ! g ; n = Pl} ;
@@ -129,8 +129,8 @@
   we_Pron = 
     mkPronoun "noi" "ci" "ci" "ce" "noi" "nostro" "nostra" "nostri" "nostre"
     Masc Pl P1 ;
-  whatSg_IP = {s = \\c => prepCase c ++ ["che cosa"] ; a = aagr Fem Sg} ;
-  whatPl_IP = {s = \\c => prepCase c ++ ["che cose"] ; a = aagr Fem Pl} ; ---
+  whatSg_IP = {s = \\c => prepCase c ++ ["che"] ; a = aagr Fem Sg} ;
+  whatPl_IP = {s = \\c => prepCase c ++ ["che"] ; a = aagr Fem Pl} ; ---
   when_IAdv = ss "quando" ;
   when_Subj = ss "quando" ** {m = Indic} ;
   where_IAdv = ss "dove" ;
diff --git a/lib/src/norwegian/ExtraNor.gf b/lib/src/norwegian/ExtraNor.gf
--- a/lib/src/norwegian/ExtraNor.gf
+++ b/lib/src/norwegian/ExtraNor.gf
@@ -1,8 +1,9 @@
-concrete ExtraNor of ExtraNorAbs = ExtraScandNor ** open CommonScand, ResNor in {
+concrete ExtraNor of ExtraNorAbs = ExtraScandNor ** open CommonScand, ResNor, Prelude in {
 
   lin
     PossNP np pro = {
-      s = \\c => np.s ! NPNom ++ pro.s ! NPPoss (gennumAgr np.a) ; ---- c 
+      s = \\c => np.s ! NPNom ++ pro.s ! NPPoss (gennumAgr np.a) (caseNP c) ;
       a = np.a
       } ;
+
 }
diff --git a/lib/src/norwegian/IrregNor.gf b/lib/src/norwegian/IrregNor.gf
--- a/lib/src/norwegian/IrregNor.gf
+++ b/lib/src/norwegian/IrregNor.gf
@@ -8,7 +8,8 @@
 
   lin be_V = mkV "be" "ber" "bes" "bad" "bedt" "be" ;
   lin bite_V = irregV "bite" (variants {"bet" ; "beit"}) "bitt" ;
-  lin bli_V = irregV "bli" (variants {"ble" ; "blei"}) "blitt" ;
+  lin bli_V = irregV "bli" "ble" "blitt" ;
+---  lin bli_V = irregV "bli" (variants {"ble" ; "blei"}) "blitt" ;
   lin brenne_V = irregV "brenne" (variants {"brant" ; "brente"}) "brent" ;
   lin bringe_V = irregV "bringe" "brakte" "brakt" ;
   lin burde_V = irregV "burde" "burde" "burdet" ;
diff --git a/lib/src/norwegian/LexiconNor.gf b/lib/src/norwegian/LexiconNor.gf
--- a/lib/src/norwegian/LexiconNor.gf
+++ b/lib/src/norwegian/LexiconNor.gf
@@ -101,7 +101,9 @@
   iron_N = regGenN "jern" neutrum ;
   john_PN = mkPN "John" masculine ;
   king_N = regGenN "konge" masculine ;
-  know_V2 = dirV2 IrregNor.vite_V ;
+  know_V2 = dirV2 (mkV "kjenne" "kjente") ;
+  know_VQ = mkVQ IrregNor.vite_V ;
+  know_VS = mkVS IrregNor.vite_V ;
   lake_N = regGenN "vann" neutrum ;
   lamp_N = regGenN "lampe" feminine ;
   learn_V2 = dirV2 (mk2V "lære" "lærte") ; 
diff --git a/lib/src/norwegian/ParadigmsNor.gf b/lib/src/norwegian/ParadigmsNor.gf
--- a/lib/src/norwegian/ParadigmsNor.gf
+++ b/lib/src/norwegian/ParadigmsNor.gf
@@ -41,9 +41,9 @@
 oper
   Gender : Type ; 
 
-  masculine : Gender ;
-  feminine  : Gender ;
-  neutrum   : Gender ;
+  masculine : Gender ; -- the "en" gender
+  feminine  : Gender ; -- the "ei" gender
+  neutrum   : Gender ; -- the "et" gender
 
 -- To abstract over number names, we define the following.
 
@@ -54,14 +54,14 @@
 
 -- To abstract over case names, we define the following.
 
-  Case : Type ;
+  Case : Type ; --%
 
-  nominative : Case ;
-  genitive   : Case ;
+  nominative : Case ; --%
+  genitive   : Case ; --%
 
 -- Prepositions used in many-argument functions are just strings.
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ; -- e.g. "etter"
   noPrep : Prep ;        -- empty string
 
 --2 Nouns
@@ -78,10 +78,10 @@
 -- last letter of the second form (if "n", then $utrum$, otherwise $neutrum$).
 
   mkN : overload {
-    mkN : Str -> N ;
-    mkN : Str -> Gender -> N ;
-    mkN : (bil,bilen : Str) -> N ;
-    mkN  : (dreng,drengen,drenger,drengene : Str) -> N
+    mkN : Str -> N ; -- predictable noun, feminine for "-e" otherwise masculine
+    mkN : Str -> Gender -> N ; -- force gender
+    mkN : (bil,bilen : Str) -> N ; --%
+    mkN  : (dreng,drengen,drenger,drengene : Str) -> N -- worst case
   } ;
 
 
@@ -96,12 +96,12 @@
 -- 
 -- Relational nouns ("datter til x") need a preposition. 
 
-  mkN2 : N -> Prep -> N2 ;
+  mkN2 : N -> Prep -> N2 ; -- e.g. datter + til
 
 -- The most common preposition is "av", and the following is a
 -- shortcut for regular, $nonhuman$ relational nouns with "av".
 
-  regN2 : Str -> Gender -> N2 ;
+  regN2 : Str -> Gender -> N2 ; --%
 
 -- Use the function $mkPrep$ or see the section on prepositions below to  
 -- form other prepositions.
@@ -109,7 +109,7 @@
 -- Three-place relational nouns ("forbindelse fra x til y") 
 -- need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g forbindelse + fra + til
 
 
 --3 Relational common noun phrases
@@ -127,8 +127,8 @@
 
   mkPN : overload {
     mkPN : Str -> PN ;       -- masculine
-    mkPN : Str -> Gender -> PN ;  
-    mkPN : N -> PN ;
+    mkPN : Str -> Gender -> PN ;  -- force gender
+    mkPN : N -> PN ; --%
     } ;
 
 
@@ -138,15 +138,15 @@
 -- with "ig". Two, five, or at worst five forms are sometimes needed.
 
   mkA : overload {
-    mkA : (fin : Str) -> A ;
-    mkA : (fin,fint : Str) -> A ;
-    mkA : (galen,galet,galne : Str) -> A ;
-    mkA : (stor,stort,store,storre,storst : Str) -> A ;
+    mkA : (fin : Str) -> A ; -- predictable adjective
+    mkA : (fin,fint : Str) -> A ; -- deviant neuter
+    mkA : (galen,galet,galne : Str) -> A ; -- also plural deviant
+    mkA : (stor,stort,store,storre,storst : Str) -> A ; -- worst case
 
 -- If comparison is formed by "mer", "mest", as in general for
 -- long adjective, the following pattern is used:
 
-    mkA : A -> A ; -- -/mer/mest norsk
+    mkA : A -> A ; -- comparison with mer/mest, e.g. "norsk"
   } ;
  
 
@@ -154,7 +154,7 @@
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. gift + med
 
 
 
@@ -168,7 +168,7 @@
 
 -- Adverbs modifying adjectives and sentences can also be formed.
 
-  mkAdA : Str -> AdA ;
+  mkAdA : Str -> AdA ; -- e.g. mye
 
 
 --2 Verbs
@@ -178,26 +178,26 @@
 
 -- The 'regular verb' function is the first conjugation.
 
-    mkV : (snakke : Str) -> V ;
+    mkV : (snakke : Str) -> V ; -- regular verb (first conjugation)
 
 -- The almost regular verb function needs the infinitive and the preteritum.
 
-    mkV : (leve,levde : Str) -> V ;
+    mkV : (leve,levde : Str) -> V ; -- other past tense
 
 -- There is an extensive list of irregular verbs in the module $IrregNor$.
 -- In practice, it is enough to give three forms, as in school books.
 
-    mkV : (drikke, drakk, drukket  : Str) -> V ;
+    mkV : (drikke, drakk, drukket  : Str) -> V ; -- theme of irregular verb
 
 -- The worst case needs six forms.
 
-    mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ;
+    mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; -- worst case
 
 --3 Verbs with a particle.
 --
 -- The particle, such as in "lukke opp", is given as a string.
 
-    mkV : V -> Str -> V ;
+    mkV : V -> Str -> V ; -- verb with particle, e.g. lukke + opp
   } ;
 
 
@@ -206,7 +206,7 @@
 --
 -- By default, the auxiliary is "have". This function changes it to "være".
 
-  vaereV : V -> V ;
+  vaereV : V -> V ; -- force "være" as auxiliary (default "have")
 
 
 
@@ -215,8 +215,8 @@
 -- Some words are used in passive forms only, e.g. "trives", some as
 -- reflexive e.g. "forestille seg".
 
-  depV  : V -> V ;
-  reflV : V -> V ;
+  depV  : V -> V ; -- deponent, e.g "trives"
+  reflV : V -> V ; -- reflexive, e.g. "forestille seg"
 
 --3 Two-place verbs
 --
@@ -224,9 +224,9 @@
 -- (transitive verbs). Notice that, if a particle is needed, it comes from the $V$.
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;
-    mkV2 : V -> Prep -> V2 ;
+    mkV2 : Str -> V2 ; -- regular, direct object
+    mkV2 : V -> V2 ;   -- direct object
+    mkV2 : V -> Prep -> V2 ; -- preposition for complement
   } ;
 
 
@@ -244,7 +244,7 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;
@@ -254,16 +254,16 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$.
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 
 --.
@@ -325,7 +325,7 @@
 
   makeNP : Str -> Str -> Number -> Gender -> NP ; 
   makeNP x y n g = 
-    {s = table {NPPoss _ => x ; _ => y} ; a = agrP3 (ngen2gen g) n ;
+    {s = table {NPPoss _ _ => x ; _ => y} ; a = agrP3 (ngen2gen g) n ;
      lock_NP = <>} ;
 
   mk3A = mk3ADeg ; ---- (mkAdject a b c [] []) ** {isComp = False ; lock_A = <>} ;
diff --git a/lib/src/norwegian/StructuralNor.gf b/lib/src/norwegian/StructuralNor.gf
--- a/lib/src/norwegian/StructuralNor.gf
+++ b/lib/src/norwegian/StructuralNor.gf
@@ -41,7 +41,8 @@
   if_Subj = ss "hvis" ;
   in8front_Prep = ss "foran" ;
   i_Pron = 
-    MorphoNor.mkNP "jeg" "meg" (variants {"min" ; "mi"}) "mit" "mine"  Utr Sg P1 ; --- mi
+    MorphoNor.mkNP "jeg" "meg" "min" "mit" "mine"  Utr Sg P1 ; --- mi
+---    MorphoNor.mkNP "jeg" "meg" (variants {"min" ; "mi"}) "mit" "mine"  Utr Sg P1 ;
   in_Prep = ss "i" ;
   it_Pron = MorphoNor.regNP "det" "dets" Neutr Sg ;
   less_CAdv = X.mkCAdv "mindre" conjThan ;
@@ -74,7 +75,7 @@
        Sg => \\_,_ => genderForms ["den der"] ["det der"] ; 
        Pl => \\_,_,_ => ["de der"]
        } ;
-     det = DDef Indef
+     det = DDef Def
     } ;
   there_Adv = ss "der" ;
   there7to_Adv = ss "dit" ;
@@ -101,7 +102,7 @@
   whatPl_IP = {s = \\_ => "hva" ; g = Neutr ; n = Pl} ; ---- infl
   when_IAdv = ss "når" ;
   when_Subj = ss "når" ;
-  where_IAdv = ss "hver" ;
+  where_IAdv = ss "hvor" ;
   which_IQuant = {
     s = table {
       Sg => genderForms "hvilken" "hvilket" ;
@@ -116,7 +117,8 @@
   with_Prep = ss "med" ;
   yes_Utt = ss ["ja"] ;
   youSg_Pron = 
-    MorphoNor.mkNP "du" "deg" (variants {"din" ; "di"}) "dit" "dine" Utr Sg P2 ; ----
+    MorphoNor.mkNP "du" "deg" "din" "dit" "dine" Utr Sg P2 ; ----
+---    MorphoNor.mkNP "du" "deg" (variants {"din" ; "di"}) "dit" "dine" Utr Sg P2 ; ----
   youPl_Pron = MorphoNor.mkNP "dere" "dere" "deres" "deres" "deres"  Utr Pl P2 ;
   youPol_Pron = MorphoNor.mkNP "Dere" "Dere" "Deres" "Deres" "Deres"  Utr Sg P2 ; --- wrong in refl
   have_V2 = dirV2 IrregNor.ha_V ;
diff --git a/lib/src/polish/AdjectiveMorphoPol.gf b/lib/src/polish/AdjectiveMorphoPol.gf
--- a/lib/src/polish/AdjectiveMorphoPol.gf
+++ b/lib/src/polish/AdjectiveMorphoPol.gf
@@ -140,6 +140,8 @@
       x + "zły" => model4 form (x+"źli");
       x + "ły" => model4 form (x+"li");
       x + "sny" => model4 form (x+"śni");
+      x + "szny" => model4 form (x+"szni");
+      x + "rzny" => model4 form (x+"rzni");
       x + "zny" => model4 form (x+"źni");
       x + "chy" => model4 form (x+"si");
       x + "hy" => model4 form (x+"zi"); -- błahy - błazi (not really in use)
@@ -163,9 +165,9 @@
       pos = guess_model pos;
       comp = model_comp comp;
       super = model_comp ("naj" + comp);
-      advpos = "["++pos ++ [": the adjective positive form does not exist]"];
-      advcomp = "["++pos ++ [": the adjective comparative form does not exist]"];
-      advsuper = "["++pos ++ [": the adjective superlative form does not exist]"]
+      advpos = "["++pos ++ [": the adverb positive form does not exist]"];
+      advcomp = "["++pos ++ [": the adverb comparative form does not exist]"];
+      advsuper = "["++pos ++ [": the adverb superlative form does not exist]"]
     };
   };
   
@@ -184,9 +186,9 @@
       pos = guess_model pos;
       comp = guess_model ("bardziej" ++ pos);
       super = guess_model ("najbardziej" ++ pos);
-      advpos = "["++pos ++ [": the adjective positive form does not exist]"];
-      advcomp = "["++pos ++ [": the adjective comparative form does not exist]"];
-      advsuper = "["++pos ++ [": the adjective superlative form does not exist]"]
+      advpos = "["++pos ++ [": the adverb positive form does not exist]"];
+      advcomp = "["++pos ++ [": the adverb comparative form does not exist]"];
+      advsuper = "["++pos ++ [": the adverb superlative form does not exist]"]
     };
   };
   
diff --git a/lib/src/polish/AllPol.gf b/lib/src/polish/AllPol.gf
--- a/lib/src/polish/AllPol.gf
+++ b/lib/src/polish/AllPol.gf
@@ -1,5 +1,6 @@
 --# -path=.:../abstract:../common:prelude
 
 concrete AllPol of AllPolAbs = 
-  LangPol
+  LangPol,
+  ExtraPol
   ** {} ;
diff --git a/lib/src/polish/AllPolAbs.gf b/lib/src/polish/AllPolAbs.gf
--- a/lib/src/polish/AllPolAbs.gf
+++ b/lib/src/polish/AllPolAbs.gf
@@ -1,5 +1,6 @@
 --# -path=.:../abstract:../common:prelude
 
 abstract AllPolAbs = 
-  Lang
+  Lang,
+  ExtraPolAbs
   ** {} ;
diff --git a/lib/src/polish/CatPol.gf b/lib/src/polish/CatPol.gf
--- a/lib/src/polish/CatPol.gf
+++ b/lib/src/polish/CatPol.gf
@@ -1,6 +1,6 @@
 --# -path=.:../abstract:../common:../prelude
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
 concrete CatPol of Cat = CommonX - [CAdv] ** open ResPol, Prelude, (R = ParamX) in {
 
@@ -52,7 +52,6 @@
 
 ---- Noun
   
---   CommNoun : Type = { s : SubstForm => Str; g : Gender };
     CN = { s : Number => Case => Str; g : Gender };
 
 --   NounPhrase : Type = { s : PronForm => Str; n : Number; g: Gender; p : Person };
@@ -105,7 +104,7 @@
     VA = Verb  ** { c:{ c:Case; s:Str; adv:Bool } };
     V2A = Verb ** { c:{ c:Case; s:Str; adv:Bool }; c2:Complement };
     
-    VPSlash = VerbPhrase ** { c : Complement };
+    VPSlash = VerbPhraseSlash;
     
     VP = VerbPhrase;
     Comp = { s: GenNum => Str };
@@ -117,11 +116,11 @@
 
 
 -- Substantives moreover have an inherent gender. 
-    N  = {s : SubstForm => Str; g : Gender};   
+    N  = CommNoun;   
 
-    N2 = {s : SubstForm => Str; g : Gender} ** { c : Complement } ;
+    N2 = CommNoun2;
 
-    N3 = {s : SubstForm => Str; g : Gender} ** { c, c2 : Complement } ;
+    N3 = CommNoun3;-- ** { c, c2 : Complement } ;
 
     PN = NounPhrase;
     
diff --git a/lib/src/polish/ConjunctionPol.gf b/lib/src/polish/ConjunctionPol.gf
--- a/lib/src/polish/ConjunctionPol.gf
+++ b/lib/src/polish/ConjunctionPol.gf
@@ -23,8 +23,9 @@
         voc = conj.s1 ++ list.np1.voc ++ conj.s2 ++ list.np2.voc;
         dep = \\c => conj.s1 ++ list.np1.dep !c ++ conj.s2 ++ list.np2.dep !c;
         gn  = case <list.np1.gn,list.np2.gn> of {
-            <(MascPersSg|MascPersPl), (MascPersSg|MascPersPl)> => MascPersPl;
-            <_,_>                          => OthersPl
+            <(MascPersSg|MascPersPl), _> => MascPersPl;
+            <_, (MascPersSg|MascPersPl)> => MascPersPl;
+            <_,_>                        => OthersPl
         };
         p = case <list.np1.p,list.np2.p> of {
             <P1, _> => P1;
diff --git a/lib/src/polish/ExtraPol.gf b/lib/src/polish/ExtraPol.gf
--- a/lib/src/polish/ExtraPol.gf
+++ b/lib/src/polish/ExtraPol.gf
@@ -1,3 +1,12 @@
---concrete ExtraPol of ExtraPolAbs = CatPol ** {
---
--- } 
+concrete ExtraPol of ExtraPolAbs = CatPol ** open ResPol in {
+
+  lin ProDrop p = {
+    nom = [] ;
+    voc = p.voc ;
+    dep = p.dep ;
+    sp = p.sp ;
+    n = p.n ;
+    p = p.p ;
+    g = p.g ;
+ } ;
+}
diff --git a/lib/src/polish/ExtraPolAbs.gf b/lib/src/polish/ExtraPolAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/polish/ExtraPolAbs.gf
@@ -0,0 +1,2 @@
+abstract ExtraPolAbs = Cat, Extra [Pron,ProDrop] ** 
+{}
diff --git a/lib/src/polish/GrammarPol.gf b/lib/src/polish/GrammarPol.gf
--- a/lib/src/polish/GrammarPol.gf
+++ b/lib/src/polish/GrammarPol.gf
@@ -13,8 +13,8 @@
   RelativePol,
   ConjunctionPol,
   PhrasePol,
+  TenseX - [CAdv],
   TextX - [CAdv],
   StructuralPol,
-  IdiomPol,
-  TenseX - [CAdv]
+  IdiomPol
    ** { flags  startcat = Phr ; unlexer = text ; lexer = text ;} ;
diff --git a/lib/src/polish/IdiomPol.gf b/lib/src/polish/IdiomPol.gf
--- a/lib/src/polish/IdiomPol.gf
+++ b/lib/src/polish/IdiomPol.gf
@@ -11,24 +11,24 @@
 --     ImpersCl  : VP -> Cl ;        -- it is hot
     ImpersCl vp = {
         s = \\pol,anter,tense =>
-            vp.prefix !pol !NeutSg ++
+            vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, NeutSg, P3>) ++ 
-            vp.sufix !pol !NeutSg ++ vp.postfix !pol !NeutSg;
+            vp.sufix !pol !NeutSg 
     };    
 
 --     ImpPl1    : VP -> Utt ;       -- let's go
     ImpPl1 vp = {
-        s = vp.prefix !Pos !MascPersPl ++
+        s = vp.prefix ++
             (imperative_form vp.verb vp.imienne Pos MascPersPl P1) ++ 
-            vp.sufix !Pos !MascPersPl ++ vp.postfix !Pos !MascPersPl;
+            vp.sufix !Pos !MascPersPl 
     };
     
 --     GenericCl : VP -> Cl ;        -- one sleeps
     GenericCl vp = {
         s = \\pol,anter,tense =>
-            "ktoś" ++ vp.prefix !pol !MascPersSg ++
+            "ktoś" ++ vp.prefix  ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, MascPersSg, P3>) ++ 
-            vp.sufix !pol !MascPersSg ++ vp.postfix !pol !MascPersSg;
+            vp.sufix !pol !MascPersSg 
     };
 
 --     CleftNP   : NP  -> RS -> Cl ; -- it is I who did it
@@ -38,15 +38,23 @@
     CleftAdv adv s = {s=\\_,_,_ => adv.s ++ s.s };
 
 --     ExistNP   : NP -> Cl ;        -- there is a house
-    ExistNP np = {s=\\pol,anter,tense => case pol of {
-        Pos=> case np.gn of {MascPersPl|OthersPl => "są" ; _=>"jest"} ++ np.nom; -- not in every case
-        Neg=>["nie ma"] ++ np.dep!GenNoPrep } };
+    ExistNP np = {s=\\pol,anter,tense => case pol of { 
+        Pos=> jest_op ! <np.gn, np.p, tense, anter> ++ np.nom;
+        Neg=> niema_op!<tense,anter> ++ np.dep!GenNoPrep } };
     
 --     ExistIP   : IP -> QCl ;       -- which houses are there
-    ExistIP ip = {s=\\pol,_,_ => case pol of {
-        Pos=>ip.nom; -- not in every case
-        Neg=>ip.dep!GenNoPrep ++ ["nie ma"]} };
+    ExistIP ip = {s=\\pol,anter,tense => case pol of {
+        Pos=>ip.nom ++ jest_op ! <ip.gn, ip.p, tense, anter>;
+        Neg=>ip.dep!GenNoPrep ++ niema_op!<tense,anter>} };
 
 --     ProgrVP   : VP -> VP ;        -- be sleeping
-    ProgrVP vp = vp;
+    ProgrVP vp = {
+        prefix=vp.prefix; sufix=vp.sufix;
+        imienne = vp.imienne; exp=vp.exp;
+        verb= { si,sp= vp.verb.si;
+            refl=vp.verb.refl;
+            asp=vp.verb.asp;
+            ppartp=vp.verb.pparti;
+            pparti=vp.verb.pparti}
+        };
 } ;
diff --git a/lib/src/polish/LexiconNounPol.gf b/lib/src/polish/LexiconNounPol.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/polish/LexiconNounPol.gf
@@ -0,0 +1,221 @@
+--# -path=.:../prelude:../common
+--# -coding=utf8
+
+-- This file is automaticaly generated by generate_lexicon.
+-- That program copies part of its source code to the output,
+-- therefore this file is covered by LGPLv3 as well as the
+-- program ifself.
+-- This file may be also affected by license of the program's input.
+-- For details see http://www.mimuw.edu.pl/~asl/tabeleusz/ .
+-- Be careful not to violate the copyright low!
+
+-- DO NOT EDIT THIS FILE
+
+  concrete LexiconNounPol of Lexicon = CatPol **
+    open  NounMorphoPol, ResPol  in {
+
+     flags  coding=utf8;
+
+  lin  airplane_N = mkN (mkNTable0302 "samolot") (Masc Inanimate) ;
+  lin  animal_N = mkN (mkNTable0629 "zwierzę") (NeutGr) ;
+  lin  apartment_N = mkN (mkNTable0672 "mieszkanie") (Neut) ;
+  lin  apple_N = mkN (mkNTable0239 "jabłko") (Neut) ;
+  lin  art_N = mkN (mkNTable0023 "sztuka") (Fem) ;
+  lin  ashes_N = mkN (mkNTable1374 "popiół") (Masc Inanimate) ;
+  lin  baby_N = mkN (mkNTable0629 "niemowlę") (NeutGr) ;
+  lin  back_N = mkN (mkNTable0046 "plecy") (Plur) ;
+  lin  bank_N = mkN (mkNTable0193 "bank") (Masc Inanimate) ;
+  lin  bark_N = mkN (mkNTable0102 "kora") (Fem) ;
+  lin  beer_N = mkN (mkNTable0908 "piwo") (Neut) ;
+  lin  belly_N = mkN (mkNTable0993 "brzuch") (Masc Inanimate) ;
+  lin  bike_N = mkN (mkNTable0118 "rower") (Masc Inanimate) ;
+  lin  bird_N = mkN (mkNTable0197 "ptak") (Masc Animate) ;
+  lin  blood_N = mkN (mkNTable1233 "krew") (Fem) ;
+  lin  boat_N = mkN (mkNTable1170 "łódź") (Fem) ;
+  lin  bone_N = mkN (mkNTable1249 "kość") (Fem) ;
+  lin  book_N = mkN (mkNTable0004 "książka") (Fem) ;
+  lin  boot_N = mkN (mkNTable0927 "but") (Masc Inanimate) ;
+  lin  boss_N = mkN (mkNTable0002 "szef") (Masc Personal) ;
+  lin  boy_N = mkN (mkNTable1062 "chłopiec") (Masc Personal) ;
+  lin  bread_N = mkN (mkNTable0276 "chleb") (Masc Inanimate) ;
+  lin  breast_N = mkN (mkNTable1321 "pierś") (Fem) ;
+  lin  butter_N = mkN (mkNTable0430 "masło") (Neut) ;
+  lin  camera_N = mkN (mkNTable0102 "kamera") (Fem) ;
+  lin  cap_N = mkN (mkNTable0004 "czapka") (Fem) ;
+  lin  car_N = mkN (mkNTable1035 "samochód") (Masc Inanimate) ;
+  lin  carpet_N = mkN (mkNTable0098 "dywan") (Masc Inanimate) ;
+  lin  cat_N = mkN (mkNTable1081 "kot") (Masc Animate) ;
+  lin  ceiling_N = mkN (mkNTable0302 "sufit") (Masc Inanimate) ;
+  lin  chair_N = mkN (mkNTable0430 "krzesło") (Neut) ;
+  lin  cheese_N = mkN (mkNTable0207 "ser") (Masc Inanimate) ;
+  lin  child_N = mkN (mkNTable1128 "dziecko") (NeutGr) ;
+  lin  church_N = mkN (mkNTable1248 "kościół") (Masc Inanimate) ;
+  lin  city_N = mkN (mkNTable0838 "miasto") (Neut) ;
+  lin  cloud_N = mkN (mkNTable0102 "chmura") (Fem) ;
+  lin  coat_N = mkN (mkNTable0203 "płaszcz") (Masc Inanimate) ;
+  lin  computer_N = mkN (mkNTable0207 "komputer") (Masc Inanimate) ;
+  lin  country_N = mkN (mkNTable0138 "kraj") (Masc Inanimate) ;
+  lin  cousin_N = mkN (mkNTable0002 "kuzyn") (Masc Personal) ;
+  lin  cow_N = mkN (mkNTable0945 "krowa") (Fem) ;
+  lin  day_N = mkN (mkNTable1131 "dzień") (Masc Inanimate) ;
+  lin  doctor_N = mkN (mkNTable0928 "lekarz") (Masc Personal) ;
+  lin  dog_N = mkN (mkNTable1370 "pies") (Masc Animate) ;
+  lin  door_N = mkN (mkNTable0940 "drzwi") (Plur) ;
+  lin  dust_N = mkN (mkNTable0138 "kurz") (Masc Inanimate) ;
+  lin  ear_N = mkN (mkNTable1456 "ucho") (NeutGr) ;
+  lin  earth_N = mkN (mkNTable0912 "ziemia") (Fem) ;
+  lin  egg_N = mkN (mkNTable0239 "jajko") (Neut) ;
+  lin  enemy_N = mkN (mkNTable0228 "wróg") (Masc Personal) ;
+  lin  eye_N = mkN (mkNTable1332 "oko") (NeutGr) ;
+  lin  factory_N = mkN (mkNTable0023 "fabryka") (Fem) ;
+  lin  fat_N = mkN (mkNTable0138 "tłuszcz") (Masc Inanimate) ;
+  lin  feather_N = mkN (mkNTable0017 "sprężyna") (Fem) ;
+  lin  fingernail_N = mkN (mkNTable1361 "paznokieć") (Masc Inanimate) ;
+  lin  fire_N = mkN (mkNTable0986 "ogień") (Masc Inanimate) ;
+  lin  fish_N = mkN (mkNTable0017 "ryba") (Fem) ;
+  lin  floor_N = mkN (mkNTable1112 "podłoga") (Fem) ;
+  lin  flower_N = mkN (mkNTable0982 "kwiat") (Masc Inanimate) ;
+  lin  fog_N = mkN (mkNTable1054 "mgła") (Fem) ;
+  lin  foot_N = mkN (mkNTable1426 "stopa") (Fem) ;
+  lin  forest_N = mkN (mkNTable1271 "las") (Masc Inanimate) ;
+  lin  fridge_N = mkN (mkNTable0004 "lodówka") (Fem) ;
+  lin  friend_N = mkN (mkNTable1317 "przyjaciel") (Masc Personal) ;
+  lin  fruit_N = mkN (mkNTable0138 "owoc") (Masc Inanimate) ;
+  lin  garden_N = mkN (mkNTable1035 "ogród") (Masc Inanimate) ;
+  lin  girl_N = mkN (mkNTable0017 "dziewczyna") (Fem) ;
+  lin  glove_N = mkN (mkNTable0199 "rękawica") (Fem) ;
+  lin  gold_N = mkN (mkNTable0936 "złoto") (Neut) ;
+  lin  grammar_N = mkN (mkNTable0023 "gramatyka") (Fem) ;
+  lin  grass_N = mkN (mkNTable0017 "trawa") (Fem) ;
+  lin  guts_N = mkN (mkNTable0940 "wnętrzności") (Plur) ;
+  lin  hair_N = mkN (mkNTable0276 "włos") (Masc Inanimate) ;
+  lin  hand_N = mkN (mkNTable1412 "ręka") (Fem) ;
+  lin  harbour_N = mkN (mkNTable0302 "port") (Masc Inanimate) ;
+  lin  hat_N = mkN (mkNTable0335 "kapelusz") (Masc Inanimate) ;
+  lin  head_N = mkN (mkNTable0945 "głowa") (Fem) ;
+  lin  heart_N = mkN (mkNTable0976 "serce") (Neut) ;
+  lin  hill_N = mkN (mkNTable0976 "wzgórze") (Neut) ;
+  lin  horn_N = mkN (mkNTable0667 "róg") (Masc Inanimate) ;
+  lin  horse_N = mkN (mkNTable1250 "koń") (Masc Animate) ;
+  lin  house_N = mkN (mkNTable0341 "dom") (Masc Inanimate) ;
+  lin  husband_N = mkN (mkNTable1305 "mąż") (Masc Personal) ;
+  lin  ice_N = mkN (mkNTable1035 "lód") (Masc Inanimate) ;
+  lin  industry_N = mkN (mkNTable1109 "przemysł") (Masc Inanimate) ;
+  lin  iron_N = mkN (mkNTable0908 "żelazo") (Neut) ;
+  lin  king_N = mkN (mkNTable0003 "król") (Masc Personal) ;
+  lin  knee_N = mkN (mkNTable0908 "kolano") (Neut) ;
+  lin  lake_N = mkN (mkNTable0946 "jezioro") (Neut) ;
+  lin  lamp_N = mkN (mkNTable0017 "lampa") (Fem) ;
+  lin  language_N = mkN (mkNTable0382 "język") (Masc Inanimate) ;
+  lin  leaf_N = mkN (mkNTable1279 "liść") (Masc Inanimate) ;
+  lin  leather_N = mkN (mkNTable0102 "skóra") (Fem) ;
+  lin  leg_N = mkN (mkNTable1112 "noga") (Fem) ;
+  lin  liver_N = mkN (mkNTable1059 "wątroba") (Fem) ;
+  lin  louse_N = mkN (mkNTable1465 "wesz") (Fem) ;
+  lin  love_N = mkN (mkNTable0876 "miłość") (Fem) ;
+  lin  man_N = mkN (mkNTable1310 "mężczyzna") (Masc Personal) ;
+  lin  meat_N = mkN (mkNTable0908 "mięso") (Neut) ;
+  lin  milk_N = mkN (mkNTable0369 "mleko") (Neut) ;
+  lin  moon_N = mkN (mkNTable0203 "księżyc") (Masc Inanimate) ;
+  lin  mountain_N = mkN (mkNTable0102 "góra") (Fem) ;
+  lin  mouth_N = mkN (mkNTable0218 "usta") (Plur) ;
+  lin  music_N = mkN (mkNTable0023 "muzyka") (Fem) ;
+  lin  name_N = mkN (mkNTable1029 "imię") (NeutGr) ;
+  lin  neck_N = mkN (mkNTable0332 "szyja") (Fem) ;
+  lin  newspaper_N = mkN (mkNTable0022 "gazeta") (Fem) ;
+  lin  night_N = mkN (mkNTable0973 "noc") (Fem) ;
+  lin  nose_N = mkN (mkNTable0276 "nos") (Masc Inanimate) ;
+  lin  number_N = mkN (mkNTable0017 "liczba") (Fem) ;
+  lin  oil_N = mkN (mkNTable0138 "olej") (Masc Inanimate) ;
+  lin  paper_N = mkN (mkNTable0118 "papier") (Masc Inanimate) ;
+  lin  peace_N = mkN (mkNTable0950 "pokój") (Masc Inanimate) ;
+  lin  pen_N = mkN (mkNTable0774 "ołówek") (Masc Inanimate) ;
+  lin  person_N = mkN (mkNTable1059 "osoba") (Fem) ;
+  lin  planet_N = mkN (mkNTable0022 "planeta") (Fem) ;
+  lin  plastic_N = mkN (mkNTable0193 "plastik") (Masc Inanimate) ;
+  lin  policeman_N = mkN (mkNTable0221 "policjant") (Masc Personal) ;
+  lin  priest_N = mkN (mkNTable1257 "ksiądz") (Masc Personal) ;
+  lin  queen_N = mkN (mkNTable0929 "królowa") (Fem) ;
+  lin  question_N = mkN (mkNTable0672 "pytanie") (Neut) ;
+  lin  radio_N = mkN (mkNTable0934 "radio") (Neut) ;
+  lin  rain_N = mkN (mkNTable1101 "deszcz") (Masc Inanimate) ;
+  lin  reason_N = mkN (mkNTable1035 "powód") (Masc Inanimate) ;
+  lin  religion_N = mkN (mkNTable0057 "religia") (Fem) ;
+  lin  restaurant_N = mkN (mkNTable0095 "restauracja") (Fem) ;
+  lin  river_N = mkN (mkNTable0023 "rzeka") (Fem) ;
+  lin  road_N = mkN (mkNTable1112 "droga") (Fem) ;
+  lin  rock_N = mkN (mkNTable0164 "skała") (Fem) ;
+  lin  roof_N = mkN (mkNTable0341 "dach") (Masc Inanimate) ;
+  lin  root_N = mkN (mkNTable0853 "korzeń") (Masc Inanimate) ;
+  lin  rope_N = mkN (mkNTable0017 "lina") (Fem) ;
+  lin  rubber_N = mkN (mkNTable0004 "gumka") (Fem) ;
+  lin  rule_N = mkN (mkNTable0164 "reguła") (Fem) ;
+  lin  salt_N = mkN (mkNTable1189 "sól") (Fem) ;
+  lin  sand_N = mkN (mkNTable0841 "piasek") (Masc Inanimate) ;
+  lin  school_N = mkN (mkNTable1343 "szkoła") (Fem) ;
+  lin  science_N = mkN (mkNTable0023 "nauka") (Fem) ;
+  lin  sea_N = mkN (mkNTable1298 "morze") (Neut) ;
+  lin  seed_N = mkN (mkNTable1315 "nasienie") (Neut) ;
+  lin  sheep_N = mkN (mkNTable1345 "owca") (Fem) ;
+  lin  ship_N = mkN (mkNTable0841 "statek") (Masc Inanimate) ;
+  lin  shirt_N = mkN (mkNTable0051 "koszula") (Fem) ;
+  lin  shoe_N = mkN (mkNTable0927 "but") (Masc Inanimate) ;
+  lin  shop_N = mkN (mkNTable0098 "sklep") (Masc Inanimate) ;
+  lin  silver_N = mkN (mkNTable0959 "srebro") (Neut) ;
+  lin  sister_N = mkN (mkNTable1417 "siostra") (Fem) ;
+  lin  skin_N = mkN (mkNTable0102 "skóra") (Fem) ;
+  lin  sky_N = mkN (mkNTable0908 "niebo") (Neut) ;
+  lin  smoke_N = mkN (mkNTable0098 "dym") (Masc Inanimate) ;
+  lin  snake_N = mkN (mkNTable1477 "wąż") (Masc Animate) ;
+  lin  snow_N = mkN (mkNTable0193 "śnieg") (Masc Inanimate) ;
+  lin  sock_N = mkN (mkNTable0004 "skarpetka") (Fem) ;
+  lin  song_N = mkN (mkNTable0004 "piosenka") (Fem) ;
+  lin  star_N = mkN (mkNTable1173 "gwiazda") (Fem) ;
+  lin  steel_N = mkN (mkNTable1008 "stal") (Fem) ;
+  lin  stick_N = mkN (mkNTable0382 "patyk") (Masc Inanimate) ;
+  lin  stone_N = mkN (mkNTable0853 "kamień") (Masc Inanimate) ;
+  lin  stove_N = mkN (mkNTable0203 "piec") (Masc Inanimate) ;
+  lin  student_N = mkN (mkNTable0221 "student") (Masc Personal) ;
+  lin  sun_N = mkN (mkNTable0976 "słońce") (Neut) ;
+  lin  table_N = mkN (mkNTable1074 "stół") (Masc Inanimate) ;
+  lin  tail_N = mkN (mkNTable0276 "ogon") (Masc Inanimate) ;
+  lin  teacher_N = mkN (mkNTable0223 "nauczyciel") (Masc Personal) ;
+  lin  television_N = mkN (mkNTable0095 "telewizja") (Fem) ;
+  lin  tongue_N = mkN (mkNTable0382 "język") (Masc Inanimate) ;
+  lin  tooth_N = mkN (mkNTable1130 "ząb") (Masc Inanimate) ;
+  lin  train_N = mkN (mkNTable0193 "pociąg") (Masc Inanimate) ;
+  lin  tree_N = mkN (mkNTable0908 "drzewo") (Neut) ;
+  lin  university_N = mkN (mkNTable0302 "uniwersytet") (Masc Inanimate) ;
+  lin  village_N = mkN (mkNTable1399 "wieś") (Fem) ;
+  lin  war_N = mkN (mkNTable1040 "wojna") (Fem) ;
+  lin  water_N = mkN (mkNTable0417 "woda") (Fem) ;
+  lin  wife_N = mkN (mkNTable0017 "żona") (Fem) ;
+  lin  wind_N = mkN (mkNTable1329 "wiatr") (Masc Inanimate) ;
+  lin  window_N = mkN (mkNTable0978 "okno") (Neut) ;
+  lin  wine_N = mkN (mkNTable0908 "wino") (Neut) ;
+  lin  wing_N = mkN (mkNTable0917 "skrzydło") (Neut) ;
+  lin  woman_N = mkN (mkNTable0022 "kobieta") (Fem) ;
+  lin  wood_N = mkN (mkNTable0978 "drewno") (Neut) ;
+  lin  worm_N = mkN (mkNTable0197 "robak") (Masc Animate) ;
+  lin  year_N = mkN (mkNTable0193 "rok") (Masc Inanimate) ;
+  oper distance_N = mkN (mkNTable0876 "odległość") (Fem) ;
+  oper mother_N = mkN (mkNTable0004 "matka") (Fem) ;
+  oper brother_N = mkN (mkNTable1024 "brat") (Masc Personal) ;
+  oper father_N = mkN (mkNTable1331 "ojciec") (Masc Personal) ;
+  lin  paris_PN =
+      { nom = (mkNTable0041 "Paryż")!SF Sg Nom; voc = (mkNTable0041 "Paryż")!SF Sg VocP;
+         dep = let forms = (mkNTable0041 "Paryż") in table {
+          GenPrep|GenNoPrep=>forms!SF Sg Gen; AccPrep|AccNoPrep=>forms!SF Sg Acc;
+          DatPrep|DatNoPrep=>forms!SF Sg Dat; InstrC=>forms!SF Sg Instr;
+          LocPrep=>forms!SF Sg Loc};
+         gn= MascInaniSg ; p=P3
+      } ;
+  lin  john_PN =
+      { nom = (mkNTable0002 "Jan")!SF Sg Nom; voc = (mkNTable0002 "Jan")!SF Sg VocP;
+         dep = let forms = (mkNTable0002 "Jan") in table {
+          GenPrep|GenNoPrep=>forms!SF Sg Gen; AccPrep|AccNoPrep=>forms!SF Sg Acc;
+          DatPrep|DatNoPrep=>forms!SF Sg Dat; InstrC=>forms!SF Sg Instr;
+          LocPrep=>forms!SF Sg Loc};
+         gn= MascPersSg ; p=P3
+      } ;
+}
diff --git a/lib/src/polish/LexiconPol.gf b/lib/src/polish/LexiconPol.gf
--- a/lib/src/polish/LexiconPol.gf
+++ b/lib/src/polish/LexiconPol.gf
@@ -2,260 +2,60 @@
 
 -- Ilona Nowak, Wintersemester 2007/08
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
-  concrete LexiconPol of Lexicon = CatPol **  
-    open ParadigmsPol, Prelude, StructuralPol, MorphoPol in { 
+  concrete LexiconPol of Lexicon = CatPol, LexiconNounPol **  
+    open Prelude, MorphoPol, (PP = ParadigmsPol) in { 
 
     flags  
       optimize =values ; coding =utf8 ; 
 
 lin  
---  jury_N = mkIndeclinableNoun "jury" neuter ; -- for undeclinable noun
---  cocoa_N = mkIndeclinableNoun "kakao" neuter ; -- for undeclinable noun
---  menu_N = mkIndeclinableNoun "menu" neuter ; -- for undeclinable noun
-  art_N = nApteka "sztuka";
-  airplane_N = nSad "samolot"; 
-  apartment_N = nDanie "mieszkanie"; 
-  apple_N = nJablko "jabłko";  
-  baby_N = nCiele "niemowlę"; 
   bad_A = mkRegAdj "zły" "gorszy" "źle" "gorzej"; 
-  bank_N = nBrzeg "bank"; 
   beautiful_A = mkRegAdj "piękny" "piękniejszy" "pięknie" "piękniej"; 
-  beer_N = nPiwo "piwo"; 
   big_A = mkRegAdj "duży" "większy" "dużo" "więcej"; 
-  bike_N = nWal "rower"; 
-  bird_N = nPtak "ptak";
   black_A = mkRegAdj  "czarny" "czarniejszy" "czarno" "czarniej";
   blue_A = mkCompAdj "niebieski" "niebiesko"; 
-  boat_N = nLodz "łódź"; 
-  book_N = nMatka "książka"; 
-  boot_N = nBat "but"; 
-  boss_N = nArab "szef";
-  boy_N = nChlopiec "chłopiec"; 
-  bread_N = nChleb "chleb"; 
   broad_A = mkRegAdj "szeroki" "szerszy" "szeroko" "szerzej"; 
-  brother_N2 = mkN2 (nBrat "brat"); 
   brown_A = mkCompAdj "brązowy" "brązowo"; 
-  butter_N = nTlo "masło"; 
-  camera_N = nSila "kamera"; 
-  cap_N = nMatka "czapka";  
-  car_N = nOgrod "samochód"; 
-  carpet_N = nDym "dywan"; 
-  cat_N = nKot "kot"; 
-  ceiling_N = nSad "sufit";  
-  chair_N = nTlo "krzesło"; 
-  cheese_N = nSer "ser"; 
-  child_N = nDziecko "dziecko";
   correct_A = mkCompAdj "poprawny" "poprawnie";  
-  church_N = nKosciol "kościół"; 
-  city_N = nGniazdo "miasto";  
   clean_A = mkRegAdj "czysty" "czystszy" "czysto" "czyściej";  
   clever_A = mkRegAdj "mądry" "mądrzejszy" "mądrze" "mądrzej"; 
-  coat_N = nWiersz "płaszcz";
   cold_A = mkRegAdj "zimny" "zimniejszy" "zimno" "zimniej"; 
-  computer_N = nSer "komputer"; 
-  country_N = nGaj "kraj"; 
-  cousin_N = nFacet "kuzyn"; 
-  cow_N = nDoba "krowa"; 
   dirty_A = mkRegAdj  "brudny" "brudniejszy" "brudno" "brudniej"; 
-  doctor_N = nLekarz "lekarz"; 
-  dog_N = nPies "pies"; 
-  door_N = nDrzwi "drzwi";
   dry_A = mkRegAdj "suchy" "suchszy" "sucho" "suszej"; 
   dull_A = mkRegAdj "tępy" "tępszy" "tępo" "tępiej"; 
-  enemy_N = nWrog "wróg"; 
-  factory_N = nApteka "fabryka"; 
-  far_Adv = ss "daleko"; 
-  father_N2 = mkN2 (nOjciec "ojciec"); 
-  fish_N = nLiczba "ryba"; 
-  floor_N = nDroga "podłoga"; 
-  fridge_N = nMatka "lodówka"; 
-  friend_N = nPrzyjaciel "przyjaciel"; 
-  fruit_N = nGaj "owoc"; 
+  far_Adv = mkAdv "daleko"; 
   full_A = mkRegAdj "pełny" "pełniejszy" "pełno" "pełniej"; 
-  garden_N = nOgrod  "ogród"; 
-  girl_N = nLiczba "dziewczyna"; 
-  glove_N = nUlica "rękawica"; 
-  gold_N = nUdo "złoto"; 
   good_A = mkRegAdj "dobry" "lepszy" "dobrze" "lepiej";  
-  grammar_N = nApteka "gramatyka";
   green_A = mkRegAdj "zielony" "zieleńszy" "zielono" "zieleniej"; 
-  harbour_N = nSad "port"; 
-  hat_N = nWiersz "kapelusz"; 
-  hill_N = nSerce  "wzgórze"; 
-  horse_N = nKon "koń"; 
   hot_A = mkRegAdj "gorący" "gorętszy" "gorąco" "goręcej"; 
-  house_N = nDom "dom";  
   important_A = mkRegAdj "ważny" "ważniejszy" "ważnie" "ważniej"; 
-  industry_N = nWal "przemysł"; 
-  iron_N = nPiwo "żelazo"; 
-  king_N = nKrol "król"; 
-  lake_N = nZero "jezioro"; 
-  lamp_N = nLiczba "lampa"; 
-  language_N = nKajak "język";
-  leather_N = nDoba "wątroba"; 
   long_A = mkRegAdj "długi" "dłuższy" "długo" "dłużej";
-  love_N = nSiec "miłość"; 
-  man_N = nMezczyzna "mężczyzna"; 
-  meat_N = nPiwo "mięso"; 
-  milk_N = nWojsko "mleko"; 
-  moon_N = nWiersz "księżyc"; 
-  mother_N2 = mkN2 (nMatka "matka"); 
-  mountain_N = nSila "góra"; 
-  music_N = nApteka "muzyka"; 
   narrow_A =  mkRegAdj "wąski" "węższy" "wąsko" "węziej";  
   new_A =  mkRegAdj  "nowy" "nowszy" "nowo" "nowiej"; 
-  newspaper_N = nKobieta "gazeta"; 
-  oil_N = nGaj "olej"; 
   old_A = mkRegAdj "stary" "starszy" "staro" "starzej"; 
-  paper_N = nWal "papier"; 
-  peace_N = nPokoj "pokój"; 
-  pen_N = nMlotek "ołówek"; 
-  planet_N = nKobieta "planeta"; 
---  paris_PN = mkPN (nKoc "Paryż");
-  plastic_N = nBrzeg "plastyk"; 
-  policeman_N = nFacet "policjant"; 
-  priest_N = nKsiadz "ksiądz"; 
-  queen_N = nKrolowa "królowa"; 
-  radio_N = nStudio "radio"; 
   red_A =  mkRegAdj  "czerwony" "czerwieńszy" "czerwono" "czerwieniej"; 
-  religion_N = nLilia "religia"; 
-  restaurant_N = nLilia "restauracja"; 
-  river_N = nApteka "rzeka"; 
-  rock_N = nSila "skała"; 
-  roof_N = nDom "dach"; 
-  rubber_N = nMatka "gumka"; 
-  rule_N = nSila "reguła";
-  school_N = nSzkola "szkoła"; 
-  science_N = nApteka "nauka"; 
-  sea_N = nMorze "morze"; 
-  sheep_N = nOwca "owca"; 
-  ship_N = nStatek "statek";  
-  shirt_N = nFala "koszula"; 
-  shoe_N =  nBat "but"; 
-  shop_N = nDym "sklep"; 
   short_A = mkRegAdj "krótki" "krótszy" "krótko" "krócej"; 
-  silver_N = nZebro "srebro"; 
-  sister_N = nSzkola "siostra"; 
   small_A = mkRegAdj "mały" "mniejszy" "mało" "mniej"; 
-  snake_N = nWaz "wąż";                                 
-  sock_N = nMatka "skarpetka"; 
-  star_N = nGwiazda "gwiazda"; 
-  steel_N = nKapiel "stal"; 
-  stone_N = nCien "kamień"; 
-  stove_N = nKoc "piec"; 
-  student_N = nFacet "student"; 
   stupid_A = mkRegAdj "głupi" "głupszy" "głupio" "głupiej"; 
-  sun_N = nSerce "słońce"; 
-  table_N = nDol "stół"; 
-  teacher_N = nKowal "nauczyciel"; 
-  television_N = nLilia "telewizja"; 
   thick_A = mkRegAdj "gruby" "grubszy" "grubo" "grubiej"; 
   thin_A = mkRegAdj "cienki" "cieńszy" "cienko" "cieniej"; 
-  today_Adv = ss "dziś";
-  train_N = nBrzeg "pociąg"; 
-  tree_N = nPiwo "drzewo"; 
+  today_Adv = mkAdv "dziś";
   ugly_A = mkRegAdj  "brzydki" "brzydszy" "brzydko" "brzydziej"; 
-  university_N = nSad "uniwersytet"; 
-  village_N = nWies "wieś"; 
   warm_A = mkRegAdj  "ciepły" "cieplejszy" "ciepło" "cieplej"; 
-  war_N = nWojna "wojna"; 
-  water_N = nWoda "woda"; 
   white_A = mkRegAdj  "biały" "bielszy" "biało" "bielej";  
-  window_N = nOkno "okno"; 
-  wine_N = nPiwo "wino"; 
-  woman_N = nKobieta "kobieta"; 
-  wood_N = nOkno "drewno"; 
   yellow_A = mkRegAdj "żółty" "żółtszy" "żółto" "żółciej"; 
   young_A = mkRegAdj "młody" "młodszy" "młodo" "młodziej"; 
-  now_Adv = ss "teraz"; 
-  already_Adv = ss "właśnie"; 
-  song_N = nMatka "piosenka"; 
-  number_N  = nLiczba  "liczba"; 
-  distance_N3 = mkN3 (nSiec "odległość") from_Prep to_Prep ;
+  now_Adv = mkAdv "teraz"; 
+  already_Adv = mkAdv "właśnie"; 
 --   fun_AV = mkRegAdj "wesoły"; 
---   easy_A2V = mkRegAdj2 (mkRegAdj "łatwy") "dla" genitive ; 
+-- --   easy_A2V = mkRegAdj2 (mkRegAdj "łatwy") "dla" Gen ; 
   empty_A = mkRegAdj "pusty" "puściejszy" "pusto" "puściej";
   married_A2 = addComplToAdj ( mkCompAdj "zaślubiony" ) "" Dat;
   probable_AS = mkRegAdj "możliwy" "możliwszy" "możliwie" "możliwiej"; 
-  animal_N = nCiele "zwierzę"; 
-  ashes_N = nPopiol "popiół"; 
-  back_N = nDrzwi "plecy"; 
-  bark_N = nSila "kora";
-  belly_N = nMiech "brzuch"; 
-  bird_N = nPtak "ptak"; 
-  blood_N = nKonew "krew"; 
-  bone_N = nKosc "kość"; 
-  breast_N = nSiec "pierś"; 
-  cloud_N = nSila "chmura"; 
-  day_N = nDzien "dzień";  
-  dust_N = nGaj "kurz"; 
-  ear_N = nUcho "ucho"; 
-  earth_N = nZiemia "ziemia"; 
-  egg_N = nJablko "jajko"; 
-  eye_N = nOko "oko"; 
-  fat_N = nKoc "tłuszsz"; 
-  feather_N = nLiczba "sprężyna"; 
-  fingernail_N = nPien "paznokieć"; 
-  fire_N = nPien "ogień"; 
-  fish_N = nLiczba "ryba"; 
-  flower_N = nKwiat "kwiat"; 
-  fog_N = nMgla "mgła"; 
-  foot_N = nDoba "stopa"; 
-  forest_N = nLas "las"; 
-  fruit_N = nGaj "owoc"; 
-  grass_N = nLiczba "trawa"; 
-  guts_N = nDrzwi "wnętrzności"; 
-  hair_N = nChleb "włos"; 
-  hand_N =  nReka "ręka"; 
-  head_N = nDoba "głowa"; 
-  heart_N = nSerce "serce"; 
-  horn_N = nProg "róg"; 
-  husband_N = nMaz "mąż"; 
-  ice_N = nOgrod "lód"; 
-  knee_N = nPiwo "kolano"; 
-  lake_N = nZero "jezioro"; 
-  leaf_N = nLisc "liść"; 
-  leg_N = nDroga "noga"; 
-  liver_N = nDoba "wątroba"; 
-  louse_N = nWesz "wesz"; 
-  meat_N = nPiwo "mięso"; 
-  mountain_N = nSila "góra"; 
-  mouth_N = nDrzwi "usta";
-  name_N = nImie "imię"; 
-  neck_N = nLilia "szyja"; 
---  neck_N = nBrzeg "kark";
-  night_N = nNoc "noc"; 
-  nose_N = nChleb "nos"; 
-  person_N = nDoba "osoba";
-  question_N  = nDanie "pytanie"; 
-  rain_N = nGaj "deszcz"; 
   ready_A = mkCompAdj "gotowy";
-  reason_N = nOgrod "powód";
-  road_N = nDroga "droga"; 
-  root_N = nCien "korzeń"; 
-  rope_N =  nLiczba "lina"; 
-  salt_N = nSul "sól"; 
-  sand_N = nStatek "piasek"; 
-  sea_N = nMorze "morze"; 
-  seed_N = nNasienie "nasienie"; 
-  skin_N =  nSila "skóra"; 
-  sky_N = nNiebo "niebo";
-  smoke_N =  nDym "dym"; 
-  snow_N = nBrzeg "śnieg"; 
-  star_N = nGwiazda "gwiazda"; 
-  stick_N = nKajak "patyk"; 
-  tail_N = nChleb "ogon"; 
-  tongue_N = nKajak "język"; 
-  tooth_N = nZab "ząb"; 
   uncertain_A = mkCompAdj "niepewny" "niepewnie";
-  water_N = nWoda "woda"; 
-  wife_N = nLiczba "żona"; 
-  wind_N = nWiatr "wiatr"; 
-  wing_N = nTlo "skrzydło";
-  worm_N = nPtak "robak"; 
-  year_N = nRok "rok" "lata"; 
   heavy_A = mkRegAdj "ciężki" "cięższy" "ciężko" "ciężej"; 
   near_A = mkRegAdj "bliski" "bliższy" "blisko" "bliżej"; 
   rotten_A = mkCompAdj "zepsuty"; 
@@ -265,122 +65,121 @@
   straight_A = mkRegAdj "prosty" "prostszy" "prosto" "prościej"; 
   wet_A = mkCompAdj "mokry" "mokro";
   wide_A = mkRegAdj "szeroki" "szerszy" "szeroko" "szerzej"; 
-  
+
+  distance_N3 = mkN3 distance_N zGenPrep doPrep ;
+  mother_N2 = mkN2 mother_N;   
+  brother_N2 = mkN2 brother_N; 
+  father_N2 = mkN2 father_N; 
+
   right_Ord = { s = mkAtable (guess_model "prawy") }; 
   left_Ord = { s = mkAtable (guess_model "lewy") };  
   
-    rain_V0  = mkItVerb (mkMonoVerb "padać" conj98 Imperfective);
-    wonder_VQ = mkItVerb (mkReflVerb (mkV "zastanawiać" conj98 "zastanowić" conj77a));
-    fear_VS = mkReflVerb (mkMonoVerb "bać" conjbac Imperfective);
-    hope_VS = mkItVerb (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) "nadzieję");
-    know_VS = mkMonoVerb "wiedzieć" conj103 Imperfective;
-    say_VS = mkV "mówić" conj72  "powiedzieć" conj103; 
-    become_VA =  (mkReflVerb (mkV "stawać" conj57 "stać" conj3)) ** {c={c=Nom;s="";adv=False}};
-    answer_V2S = mkV2 (mkV "odpowiadać" conj98 "odpowiedzieć" conj103) "" dative;
-    ask_V2Q = dirV2 (mkV "pytać" conj98 "spytać" conj98);
---     beg_V2V = mkV2 (mkV "prosić" conj83 Imperfective) "" "o" accusative accusative; -- no such verb in Polish; beg is V2S
-    paint_V2A = (mkV1 "malować" conj53 "pomalować" conj53) ** ({c={c=Nom;s="na";adv=True}; c2={c=AccNoPrep;s=""}});
+  rain_V0  = mkItVerb (mkMonoVerb "padać" conj98 Imperfective);
+  wonder_VQ = mkItVerb (mkReflVerb (mkV "zastanawiać" conj98 "zastanowić" conj77a));
+  fear_VS = mkReflVerb (mkMonoVerb "bać" conjbac Imperfective);
+  hope_VS = mkItVerb (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) "nadzieję");
+  know_VQ = mkMonoVerb "wiedzieć" conj103 Imperfective;
+  know_VS = mkMonoVerb "wiedzieć" conj103 Imperfective;
+  say_VS = mkV "mówić" conj72  "powiedzieć" conj103; 
+  become_VA =  (mkReflVerb (mkV "stawać" conj57 "stać" conj3)) ** {c={c=Nom;s="";adv=False}};
+  answer_V2S = mkV2 (mkV "odpowiadać" conj98 "odpowiedzieć" conj103) "" Dat;
+  ask_V2Q = dirV2 (mkV "pytać" conj98 "spytać" conj98);
+--     beg_V2V = mkV2 (mkV "prosić" conj83 Imperfective) "" "o" Acc Acc; -- no such verb in Polish; beg is V2S
+  paint_V2A = (mkV1 "malować" conj53 "pomalować" conj53) ** ({c={c=Nom;s="na";adv=True}; c2={c=AccNoPrep;s=""}});
 
-    add_V3 = mkV3 (mkV "dodawać" conj57 "dodać" conj99) "" "do" accusative genitive;
-    sell_V3 = dirV3 (mkV "sprzedawać" conj57 "sprzedać" conj99);
-    send_V3 = mkV3 (mkV "wysyłać" conj98 "wysłać" conj67 ) "" "do" accusative genitive ;
-    talk_V3 = mkV3 (mkV "rozmawiać" conj98 "porozmawiać" conj98) "z" "о" instrumental locative; 
-    give_V3 = mkV3 (mkV "dawać" conj57 "dać" conj99) "" "" Acc Dat;
-                         
-    fear_V2 = mkV2 (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) "" Gen;
-    hit_V2 = dirV2 (mkV "bić" conj51 "pobić" conj51); 
-    cut_V2 = dirV2 (mkV "ciąć" conj23 "pociąć" conj23); 
-    pull_V2 = dirV2 (mkV "ciągnąć" conj5  "pociągnąć" conj5); 
-    wait_V2 = mkV2 (mkItVerb (mkV "czekać" conj98 "poczekać" conj98)) "na" accusative; 
-    read_V2 = dirV2 (mkV "czytać" conj98 "przeczytać" conj98); 
-    scratch_V2 = dirV2 (mkV "drapać" conj70 "podrapać" conj70);
-    split_V2 = dirV2 (mkV "dzielić" conj75 "podzielić" conj75);
-    stab_V2 = dirV2 (mkV "dźgać" conj98 "dźgnąć" conj5); 
-    play_V2 = {-variants {-} mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "w" accusative; 
---                          mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "na" locative } ;
-    bite_V2 = dirV2 (mkV "gryźć" conj26a "ugryźć" conj26a); 
-    lose_V2 = dirV2 (mkV "gubić" conj72 "zgubić" conj72); 
-    eat_V2 = dirV2 (mkV "jeść" conj102 "zjeść" conj102); 
-    put_V2 = dirV2 (mkV "kłaść" conj25 "położyć" conj88a); 
-    love_V2 = dirV2 (mkMonoVerb "kochać" conj98 Imperfective); 
-    buy_V2 = dirV2 (mkV "kupić" conj72 "kupować" conj53); 
-    count_V2 = dirV2 (mkV "liczyć" conj87 "policzyć" conj87);
-    like_V2 = dirV2 (mkV "lubić" conj72em "polubić" conj72); 
-    break_V2 = dirV2 (mkV "łamać" conj70 "złamać" conj70); 
-    wash_V2 = dirV2 (mkV "myć" conj51 "umyć" conj51); 
-    hate_V2 = dirV2 (mkV "nienawidzić" conj80 "znienwidzić" conj80);
-    watch_V2 = dirV2 (mkV "oglądać" conj98 "obejrzeć" conj94a); 
-    leave_V2 = dirV2 (mkV "opuszczać" conj98 "opuścić" conj84); 
-    open_V2 = dirV2 (mkV "otwierać" conj98 "otworzyć" conj88); 
-    push_V2 = dirV2 (mkV "pchać" conj98 "pchnąć" conj5); 
-    drink_V2 = dirV2 (mkV "pić" conj51 "wypić" conj51); 
-    write_V2 = dirV2 (mkV "pisać" conj60 "napisać" conj60); 
-    hunt_V2 = mkV2 (mkItVerb (mkMonoVerb "polować" conj53 Imperfective)) "na" accusative; 
-    do_V2 = dirV2 (mkV "robić" conj77 "zrobić" conj77);
-    speak_V2 = mkV2 (mkMonoVerb "rozmawiać" conj98 Imperfective) "z" instrumental;
-    understand_V2 = dirV2 (mkV "rozumieć" conj101 "zrozumieć" conj101); 
-    throw_V2 = dirV2 (mkV "rzucać" conj98 "rzucić" conj81); 
-    listen_V2 = dirV2 (mkV "słuchać" conj98 "posłuchać" conj98); 
-    hear_V2 = dirV2 (mkV "słyszeć" conj94 "usłyszeć" conj94); 
-    suck_V2 = dirV2 (mkMonoVerb "ssać" conj65 Imperfective);     
-    seek_V2 = dirV2 (mkMonoVerb "szukać" conj98 Imperfective); 
-    wipe_V2 = dirV2 (mkV "wycierać" conj98 "trzeć" conj43);
-    squeeze_V2 = dirV2 (mkV "ściskać" conj98 "ścisnąć" conj6); 
-    rub_V2 = dirV2 (mkMonoVerb "trzeć" conj43 Imperfective); 
-    hold_V2 = dirV2 (mkMonoVerb "trzymać" conj98 Imperfective);
-    learn_V2 = dirV2 (mkReflVerb (mkV "uczyć" conj87 "nauczyć" conj87)); 
-    teach_V2 = dirV2 (mkV "uczyć" conj87 "nauczyć" conj87); 
-    fight_V2 = mkV2 (mkItVerb (mkMonoVerb "walczyć" conj87 Imperfective)) "z" instrumental;
-    tie_V2 = dirV2 (mkMonoVerb "wiązać" conj59 Imperfective); 
-    see_V2 = dirV2 (mkV "widzieć" conj92 "zobaczyć" conj87); 
-    know_V2 = dirV2 (mkMonoVerb "wiedzieć" conj103 Imperfective); 
-    switch8on_V2 = dirV2 (mkV "włączać" conj98 "włączyć" conj87); 
-    win_V2 = dirV2 (mkV "wygrywać" conj98 "wygrać" conj98); 
-    switch8off_V2 = dirV2 (mkV "wyłączać" conj98 "wyłączyć" conj87); 
-    kill_V2 = dirV2 (mkV "zabijać" conj98 "zabić" conj51); 
-    close_V2 = dirV2 (mkV "zamknąć" conj5 "zamykać" conj98);
-    forget_V2 = dirV2 (mkV "zapominać" conj98 "zapomnieć" conj91); 
-    find_V2 = dirV2 (mkV "znaleźć" conj40 "znajdywać" conj54); 
-    
-    
-    run_V = mkV1 "biec" conj15 "pobiec" conj15; 
-    smell_V = mkV1 "czuć" conj51 "poczuć" conj51;
-    blow_V = mkV1 "dmuchać" conj98 "dmuchnąć" conj5; 
-    float_V = mkV1 "dryfować" conj53 "zdryfować" conj53;
-    play_V = mkV1 "grać" conj98 "zagrać" conj98;
-    go_V = mkV1 "iść" conj41a "pójść" conj42; 
-    lie_V = mkV1 "kłamać" conj70 "skłamać" conj70; 
-    dig_V = mkV1 "wykopywać" conj54 "wykopać" conj70; --
-    fly_V = mkMonoVerb "latać" conj98 Imperfective;
-    think_V = mkV1 "myśleć" conj90 "pomyśleć" conj90;
-    turn_V = mkReflVerb (mkV1 "obracać" conj98 "obrócić" conj81);
-    breathe_V = mkV1 "oddychać" conj98 "odetchnąć" conj5; 
-    burn_V = mkMonoVerb "palić" conj75 Imperfective;
-    spit_V = mkV1 "pluć" conj51 "plunąć" conj4; 
-    flow_V = mkMonoVerb "płynąć" conj4 Imperfective; 
-    swim_V = mkMonoVerb "pływać" conj98 Imperfective; 
-    travel_V = mkMonoVerb "podróżować" conj53 Imperfective; 
-    come_V = mkV1 "przyjść" conj41 "przychodzić" conj80;
-    swell_V = mkV1 "puchnąć" conj7 "spuchnąć" conj7; 
-    vomit_V = mkV1 "rzygać" conj98 "rzygnąć" conj5; 
-    sit_V = mkMonoVerb "siedzieć" conj92 Imperfective;
-    jump_V = mkV1 "skakać" conj61 "skoczyć" conj87; 
-    walk_V = mkV1 "spacerować" conj53 "pospacerować" conj53; 
-    sleep_V = mkMonoVerb "spać" conj96 Imperfective;
-    fall_V = mkV1 "spaść" conj17 "spadać" conj98; 
-    laugh_V = mkReflVerb (mkV1 "śmiać" conj52 "roześmiać" conj52); 
-    sing_V = mkV1 "śpiewać" conj98 "zaśpiewać" conj98; 
-    stand_V = mkMonoVerb "stać" conj95 Imperfective; 
-    sew_V = mkV1 "szyć" conj51 "uszyć" conj51; 
-    die_V = mkV1 "umierać" conj98 "umrzeć" conj43; 
-    freeze_V = mkV1 "zamarzać" conj98 "zamarznąć" conj7; 
-    stop_V = mkV1 "zatrzymywać" conj54 "zatrzymać" conj98; 
-    live_V = mkV1 "żyć" conj51 "pożyć" conj51;
-     
-    john_PN = { nom = "Jan"; voc="Janie"; dep=table{GenPrep|GenNoPrep|AccPrep|AccNoPrep=>"Jana"; DatPrep|DatNoPrep=>"Janowi";
-                    InstrNoPrep|InstrPrep=>"Janem"; LocPrep=>"Janie"}; 
-                gn=MascPersSg; p=P3};
-    paris_PN = { nom = "Paryż"; voc="Paryżu"; dep=table{GenPrep|GenNoPrep=>"Paryża"; AccPrep|AccNoPrep=>"Paryż"; 
-                    DatPrep|DatNoPrep=>"Paryżowi"; InstrNoPrep|InstrPrep=>"Paryżem"; LocPrep=>"Paryżu"}; 
-                gn=MascPersSg; p=P3};
+  add_V3 = mkV3 (mkV "dodawać" conj57 "dodać" conj99) "" "do" Acc Gen;
+  sell_V3 = dirV3 (mkV "sprzedawać" conj57 "sprzedać" conj99);
+  send_V3 = mkV3 (mkV "wysyłać" conj98 "wysłać" conj67 ) "" "do" Acc Gen ;
+  talk_V3 = mkV3 (mkV "rozmawiać" conj98 "porozmawiać" conj98) "z" "о" Instr Loc; 
+  give_V3 = mkV3 (mkV "dawać" conj57 "dać" conj99) "" "" Acc Dat;
+                        
+  fear_V2 = mkV2 (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) "" Gen;
+  hit_V2 = dirV2 (mkV "bić" conj51 "pobić" conj51); 
+  cut_V2 = dirV2 (mkV "ciąć" conj23 "pociąć" conj23); 
+  pull_V2 = dirV2 (mkV "ciągnąć" conj5  "pociągnąć" conj5); 
+  wait_V2 = mkV2 (mkItVerb (mkV "czekać" conj98 "poczekać" conj98)) "na" Acc; 
+  read_V2 = dirV2 (mkV "czytać" conj98 "przeczytać" conj98); 
+  scratch_V2 = dirV2 (mkV "drapać" conj70 "podrapać" conj70);
+  split_V2 = dirV2 (mkV "dzielić" conj75 "podzielić" conj75);
+  stab_V2 = dirV2 (mkV "dźgać" conj98 "dźgnąć" conj5); 
+  play_V2 = {-variants {-} mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "w" Acc; 
+--                          mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "na" Loc } ;
+  bite_V2 = dirV2 (mkV "gryźć" conj26a "ugryźć" conj26a); 
+  lose_V2 = dirV2 (mkV "gubić" conj72 "zgubić" conj72); 
+  eat_V2 = dirV2 (mkV "jeść" conj102 "zjeść" conj102); 
+  put_V2 = dirV2 (mkV "kłaść" conj25 "położyć" conj88a); 
+  love_V2 = dirV2 (mkMonoVerb "kochać" conj98 Imperfective); 
+  buy_V2 = dirV2 (mkV "kupić" conj72 "kupować" conj53); 
+  count_V2 = dirV2 (mkV "liczyć" conj87 "policzyć" conj87);
+  like_V2 = dirV2 (mkV "lubić" conj72em "polubić" conj72); 
+  break_V2 = dirV2 (mkV "łamać" conj70 "złamać" conj70); 
+  wash_V2 = dirV2 (mkV "myć" conj51 "umyć" conj51); 
+  hate_V2 = dirV2 (mkV "nienawidzić" conj80 "znienwidzić" conj80);
+  watch_V2 = dirV2 (mkV "oglądać" conj98 "obejrzeć" conj94a); 
+  leave_V2 = dirV2 (mkV "opuszczać" conj98 "opuścić" conj84); 
+  open_V2 = dirV2 (mkV "otwierać" conj98 "otworzyć" conj88); 
+  push_V2 = dirV2 (mkV "pchać" conj98 "pchnąć" conj5); 
+  drink_V2 = dirV2 (mkV "pić" conj51 "wypić" conj51); 
+  write_V2 = dirV2 (mkV "pisać" conj60 "napisać" conj60); 
+  hunt_V2 = mkV2 (mkItVerb (mkMonoVerb "polować" conj53 Imperfective)) "na" Acc; 
+  do_V2 = dirV2 (mkV "robić" conj77 "zrobić" conj77);
+  speak_V2 = mkV2 (mkMonoVerb "rozmawiać" conj98 Imperfective) "z" Instr;
+  understand_V2 = dirV2 (mkV "rozumieć" conj101 "zrozumieć" conj101); 
+  throw_V2 = dirV2 (mkV "rzucać" conj98 "rzucić" conj81); 
+  listen_V2 = dirV2 (mkV "słuchać" conj98 "posłuchać" conj98); 
+  hear_V2 = dirV2 (mkV "słyszeć" conj94 "usłyszeć" conj94); 
+  suck_V2 = dirV2 (mkMonoVerb "ssać" conj65 Imperfective);     
+  seek_V2 = dirV2 (mkMonoVerb "szukać" conj98 Imperfective); 
+  wipe_V2 = dirV2 (mkV "wycierać" conj98 "trzeć" conj43); -- strange?!?!
+  squeeze_V2 = dirV2 (mkV "ściskać" conj98 "ścisnąć" conj6); 
+  rub_V2 = dirV2 (mkMonoVerb "trzeć" conj43 Imperfective); 
+  hold_V2 = dirV2 (mkMonoVerb "trzymać" conj98 Imperfective);
+  learn_V2 = dirV2 (mkReflVerb (mkV "uczyć" conj87 "nauczyć" conj87)); 
+  teach_V2 = dirV2 (mkV "uczyć" conj87 "nauczyć" conj87); 
+  fight_V2 = mkV2 (mkItVerb (mkMonoVerb "walczyć" conj87 Imperfective)) "z" Instr;
+  tie_V2 = dirV2 (mkMonoVerb "wiązać" conj59 Imperfective); 
+  see_V2 = dirV2 (mkV "widzieć" conj92 "zobaczyć" conj87); 
+  know_V2 = dirV2 (mkMonoVerb "wiedzieć" conj103 Imperfective); 
+  switch8on_V2 = dirV2 (mkV "włączać" conj98 "włączyć" conj87); 
+  win_V2 = dirV2 (mkV "wygrywać" conj98 "wygrać" conj98); 
+  switch8off_V2 = dirV2 (mkV "wyłączać" conj98 "wyłączyć" conj87); 
+  kill_V2 = dirV2 (mkV "zabijać" conj98 "zabić" conj51); 
+  close_V2 = dirV2 (mkV "zamknąć" conj5 "zamykać" conj98);
+  forget_V2 = dirV2 (mkV "zapominać" conj98 "zapomnieć" conj91); 
+  find_V2 = dirV2 (mkV "znaleźć" conj40 "znajdywać" conj54); 
+  
+  
+  run_V = mkV1 "biec" conj15 "pobiec" conj15; 
+  smell_V = mkV1 "czuć" conj51 "poczuć" conj51;
+  blow_V = mkV1 "dmuchać" conj98 "dmuchnąć" conj5; 
+  float_V = mkV1 "dryfować" conj53 "zdryfować" conj53;
+  play_V = mkV1 "grać" conj98 "zagrać" conj98;
+  go_V = mkV1 "iść" conj41a "pójść" conj42; 
+  lie_V = mkV1 "kłamać" conj70 "skłamać" conj70; 
+  dig_V = mkV1 "wykopywać" conj54 "wykopać" conj70; --
+  fly_V = mkMonoVerb "latać" conj98 Imperfective;
+  think_V = mkV1 "myśleć" conj90 "pomyśleć" conj90;
+  turn_V = mkReflVerb (mkV1 "obracać" conj98 "obrócić" conj81);
+  breathe_V = mkV1 "oddychać" conj98 "odetchnąć" conj5; 
+  burn_V = mkMonoVerb "palić" conj75 Imperfective;
+  spit_V = mkV1 "pluć" conj51 "plunąć" conj4; 
+  flow_V = mkMonoVerb "płynąć" conj4 Imperfective; 
+  swim_V = mkMonoVerb "pływać" conj98 Imperfective; 
+  travel_V = mkMonoVerb "podróżować" conj53 Imperfective; 
+  come_V = mkV1 "przyjść" conj41 "przychodzić" conj80;
+  swell_V = mkV1 "puchnąć" conj7 "spuchnąć" conj7; 
+  vomit_V = mkV1 "rzygać" conj98 "rzygnąć" conj5; 
+  sit_V = mkMonoVerb "siedzieć" conj92 Imperfective;
+  jump_V = mkV1 "skakać" conj61 "skoczyć" conj87; 
+  walk_V = mkV1 "spacerować" conj53 "pospacerować" conj53; 
+  sleep_V = mkMonoVerb "spać" conj96 Imperfective;
+  fall_V = mkV1 "spaść" conj17 "spadać" conj98; 
+  laugh_V = mkReflVerb (mkV1 "śmiać" conj52 "roześmiać" conj52); 
+  sing_V = mkV1 "śpiewać" conj98 "zaśpiewać" conj98; 
+  stand_V = mkMonoVerb "stać" conj95 Imperfective; 
+  sew_V = mkV1 "szyć" conj51 "uszyć" conj51; 
+  die_V = mkV1 "umierać" conj98 "umrzeć" conj43; 
+  freeze_V = mkV1 "zamarzać" conj98 "zamarznąć" conj7; 
+  stop_V = mkV1 "zatrzymywać" conj54 "zatrzymać" conj98; 
+  live_V = mkV1 "żyć" conj51 "pożyć" conj51;
 } ;
diff --git a/lib/src/polish/MorphoPol.gf b/lib/src/polish/MorphoPol.gf
--- a/lib/src/polish/MorphoPol.gf
+++ b/lib/src/polish/MorphoPol.gf
@@ -5,26 +5,56 @@
 --
 -- Ilona Nowak, Wintersemester 2007/08
 --
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
---
--- This resource morphology contains definitions 
--- of the lexical entries needed in the resource syntax. 
--- It moreover contains copies of the most usual inflectional patterns.
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
--- I use the parameter types and word classes defined for morphology.
+-- Description of the Polish morphology
 
 resource MorphoPol = 
     ResPol, 
     VerbMorphoPol, 
     PronounMorphoPol,
     AdjectiveMorphoPol,
-    NounMorphoPol ** open Prelude, (Predef=Predef) in {
+    NounMorphoPol ** {
 
      flags  coding=utf8; 
 
+oper
+
+  mkAdv : Str -> { s :Str };
+  mkAdv x = { s = x };
+
+-- Nouns used as functions need a preposition. The most common is with Genitive.
+
+  mkN2 : CommNoun -> CommNoun2 ;
+  mkN2 n = mkFun n nullPrep ;
+
+  mkFun  : CommNoun -> Complement -> CommNoun2;
+  mkFun f p = { s = f.s; g = f.g; c = { c = p.c; s=p.s}; lock_N2=<> } ;
+
+  mkN3 : CommNoun -> Complement -> Complement -> CommNoun3;
+  mkN3 f p r = { s = f.s; g = f.g; c = {s=p.s; c=p.c} ; c2 = {s=r.s; c=r.c}; lock_N3=<>}; 
+
+-- Prepositions   
+
+-- The commonest cases are functions with Genitive.
+  nullPrep   : Complement = mkPrep []    Gen; --{s = []; c= GenNoPrep; lock_Prep=<>};  
+  nadPrep    : Complement = mkPrep "nad" Instr; 
+  zGenPrep   : Complement = mkPrep "z"   Gen;
+  zInstrPrep : Complement = mkPrep "z"   Instr;
+  doPrep     : Complement = mkPrep "do"  Gen;
+  naAccPrep  : Complement = mkPrep "na"  Acc;
+
+  
+
+
+-- A preposition is formed from a string and a case.
+
+  mkPrep : Str -> Case -> Complement;
+  mkPrep s c = mkCompl s c ** {lock_Prep = <>};
+
+
 -- definitions for structural objects
 
-  oper
     wszyscy : NounPhrase = {
       nom = "wszyscy" ;
       voc = "wszyscy" ;
@@ -32,7 +62,7 @@
         (GenNoPrep|GenPrep) => "wszystkich";
         (DatNoPrep|DatPrep) => "wszystkim";
         (AccNoPrep|AccPrep) => "wszystkich";
-        (InstrNoPrep|InstrPrep) => "wszystkimi";
+        InstrC => "wszystkimi";
         LocPrep => "wszystkich"
       };
       p = P3 ;
@@ -46,7 +76,7 @@
         (GenNoPrep|GenPrep) => "wszystkiego";
         (DatNoPrep|DatPrep) => "wszystkiemu";
         (AccNoPrep|AccPrep) => "wszystko";
-        (InstrNoPrep|InstrPrep) => "wszystkim";
+        InstrC => "wszystkim";
         LocPrep => "wszystkim"
       };
       p = P3;
@@ -60,7 +90,7 @@
 	     (GenNoPrep|GenPrep) => "kogoś";
 	     (DatNoPrep|DatPrep) => "komuś";
 	     (AccNoPrep|AccPrep) => "kogoś";
-	     (InstrNoPrep|InstrPrep) => "kimś";
+	     InstrC => "kimś";
 	     LocPrep => "kimś"
 	     };
 	   p = P3 ;
@@ -74,7 +104,7 @@
 	     (GenNoPrep|GenPrep) => "czegoś";
 	     (DatNoPrep|DatPrep) => "czemuś";
 	     (AccNoPrep|AccPrep) => "coś";
-	     (InstrNoPrep|InstrPrep) => "czymś";
+	     InstrC => "czymś";
 	     LocPrep => "czymś"
 	     };
 	   p = P3 ;
@@ -89,7 +119,7 @@
 	     (GenNoPrep|GenPrep) => "kogo";
 	     (DatNoPrep|DatPrep) => "komu";
 	     (AccNoPrep|AccPrep) => "kogo";
-	     (InstrNoPrep|InstrPrep) => "kim";
+	     InstrC => "kim";
 	     LocPrep => "kim"
 	     };
 	   p = P3 ;
@@ -103,7 +133,7 @@
 	     (GenNoPrep|GenPrep) => "czego";
 	     (DatNoPrep|DatPrep) => "czemu";
 	     (AccNoPrep|AccPrep) => "co";
-	     (InstrNoPrep|InstrPrep) => "czym";
+	     InstrC => "czym";
 	     LocPrep => "czym"
 	     };
 	   p = P3 ;
@@ -112,13 +142,13 @@
 
 	kazdyDet : Determiner = {
 	  s,sp = table {
-	    Nom => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr) => "każde" };
-        Gen => table {Masc _ => "każdego"; Fem => "każdą"; (Neut|NeutGr) => "każdego" };
-        Dat => table {Masc _ => "każdemu"; Fem => "każdej"; (Neut|NeutGr) => "każdemu" };
-        Acc => table {Masc (Personal|Animate) => "każdego"; Masc Inanimate => "każdy"; Fem => "każdą"; (Neut|NeutGr) => "każde" };
-        Instr => table {Masc _ => "każdym"; Fem => "każdą"; (Neut|NeutGr) => "każdym" };
-        Loc => table {Masc _ => "każdym"; Fem => "każdej"; (Neut|NeutGr) => "każdym" };
-        VocP => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr) => "każde" }
+	    Nom => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr|Plur) => "każde" };
+        Gen => table {Masc _ => "każdego"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każdego" };
+        Dat => table {Masc _ => "każdemu"; Fem => "każdej"; (Neut|NeutGr|Plur) => "każdemu" };
+        Acc => table {Masc (Personal|Animate) => "każdego"; Masc Inanimate => "każdy"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każde" };
+        Instr => table {Masc _ => "każdym"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każdym" };
+        Loc => table {Masc _ => "każdym"; Fem => "każdej"; (Neut|NeutGr|Plur) => "każdym" };
+        VocP => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr|Plur) => "każde" }
       };
 	  n = Sg;
 	  a = NoA;
@@ -177,7 +207,7 @@
 	    Loc => table { _ => "ilu" };
 	    VocP => table {Masc Personal => "ilu"; _ => "ile" }
 	  };
-	  n = Pl;
+	  n = Sg;
 	  a = StoA
 	};
 	
@@ -188,7 +218,7 @@
 	     (GenNoPrep|GenPrep) => "nikogo";
 	     (DatNoPrep|DatPrep) => "nikomu";
 	     (AccNoPrep|AccPrep) => "nikogo";
-	     (InstrNoPrep|InstrPrep) => "nikim";
+	     InstrC => "nikim";
 	     LocPrep => "nikim"
 	     };
 	   p=P3;
@@ -201,8 +231,8 @@
 	   dep = table {
 	     (GenNoPrep|GenPrep) => "niczego";
 	     (DatNoPrep|DatPrep) => "niczemu";
-	     (AccNoPrep|AccPrep) => "niczego";
-	     (InstrNoPrep|InstrPrep) => "niczym";
+	     (AccNoPrep|AccPrep) => "nic";
+	     InstrC => "niczym";
 	     LocPrep => "niczym"
 	     };
 	   p=P3;
diff --git a/lib/src/polish/NounMorphoPol.gf b/lib/src/polish/NounMorphoPol.gf
--- a/lib/src/polish/NounMorphoPol.gf
+++ b/lib/src/polish/NounMorphoPol.gf
@@ -1,3539 +1,30465 @@
---# -path=.:../../prelude:../common
---# -coding=utf8
-
---1 A polish Resource Morphology 
---
--- Ilona Nowak, Wintersemester 2007/08
---
-resource NounMorphoPol = ResPol ** open Prelude, (Predef=Predef) in {
-
-     flags  coding=utf8; optimize=all_subs; 
-
-
---1 Nouns   
-
--- Die Eigennamen im Polnischen sind wie
--- die CommNoun (S:SubstForm => Str; gender). 
--- Sie werden wie CommNoun dekliniert. Die Endung 
--- des Wortes ist immer entscheidend. 
--- Deswegen vrauche ich eine Funktion, die
--- ein CommNoun zu einem PN  macht.
-
---  oper ProperName = {s : SubstForm => Str; g : Gender};   
---  mkProperName : CommNoun -> ProperName = \cn ->
---    {s = \\c => cn.s! (SF Sg c); g=cn.g };
-
-
------ Abbreviations used in names of declensions -----
-
--- VA1 - vowel alternation 1: o:ó, ó:o
--- VA2 - vowel alternation 2: a:e, e:o, ę:o, o:e
--- VA3 - vowel alternation 3: ę:ą, ą:ę
--- CA - consonant alternation
--- CL - consonant lengthening
--- CAL - consonant alternation and lengthening 
--- F - feminine
--- N - neuter
--- MP - masculine personal
--- MA - masculine animate
--- MI - masculine inanimate
-
--- In Polish there are almost 125 main paradigms for noun declension.
--- (the classification of G. Jagodziński)
--- In this work I make only paradigms, that are needed for 
--- building lexicon entries.
-     
-
---1.2 Operations for feminine nouns  
-
-
--- oper for feminine, noun ending in -l, 
--- no alternation
--- 104 paradigm by Grzegorz Jagodziński
--- by Nowak 104_4
--- oper nKapiel fo stal in GF lexicon
-
-  oper l_End_F_1 : Str -> CommNoun = \kapiel ->
-	 let 
-	   x = kapiel;
-	 in
-	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "ą";
-	     SF Sg _ => x + "i"; 
-	     SF Pl Gen => x + "i";   
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e" 
-	     };
-	   g = Fem
-	 };
-       
-       
--- oper for feminine, subject ending in -dź, 
--- consonant alternation in gen, dat, loc, instr Sg 
--- and in all plural forms.
--- Vowel alternation in almost all forms. 
--- Only nom and acc Sg haven't any changes.
--- 104' paradigm by Grzegorz Jagodziński
--- by Nowak 104'_1
--- oper nLodz for łódź in GF lexicon
--- dzx = dź
--- ludz = łódź
-
-  oper dzx_End_VA1_CAL_F : Str -> CommNoun = \ludz ->
-	 let
-	   x = vowAlt1 ludz;
-	   y = consAlt x;
-	   z = consLength y;
-       	 in
-	 { s = table { 
-	     SF Sg Nom => ludz;
-	     SF Sg Acc => ludz;
-	     SF Sg Instr => z + "ą";
-	     SF Sg _ => y + "i"; 
-	     SF Pl Gen => y + "i"; 
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => z + "e" 
-	     };
-	   g = Fem
-	 };
-       
-       
--- oper for feminine, subject ending in -l, 
--- vowel alternation in almost all forms. 
--- Only nom and dat Sg haven't vowel alternation.
--- 104' paradigm by Grzegorz Jagodziński
--- by Nowak 104'_3
--- oper nSul for sól in GF lexicon
-
-  oper l_End_VA1_F : Str -> CommNoun = \sul ->
-	 let
-	   x = vowAlt1 sul;
-	 in
-	 { s = table { 
-	     SF Sg Nom => sul;
-	     SF Sg Acc => sul;
-	     SF Sg Instr => x + "ą";
-	     SF Sg _ => x + "i"; 
-	     SF Pl Gen => x + "i";   
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e" 
-	     };
-	   g = Fem
-	 };
-
-               
--- oper for feminine, subject ending in -w, 
--- fleeting e- minus between 2 consonants.
--- 104* paradigm number by Grzegorz Jagodziński
--- by Nowak 104*_1
--- oper nKonew for krew in GF lexicon
-
-  oper w_End_FleetingEminus_F : Str -> CommNoun = \konew ->
-	 let
-	   x = fleetingEminus konew;
-	   y = consLength x;
-	 in
-	 { s = table { 
-	     SF Sg Nom => konew;
-	     SF Sg Acc => konew;
-	     SF Sg Instr => y + "ą";
-	     SF Sg _ => x + "i"; 
-	     SF Pl Gen => x + "i";   
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -ś, 
--- subject change: wieś : wsi
--- 104** paradigm by Grzegorz Jagodziński
--- by Nowak 104**
--- oper nWies only for wieś in GF lexicon
--- sx = ś
--- wies = wieś
-
-  oper sx_End_CAL_FleetingIEminus_F : Str -> CommNoun = \wies ->
-	let
-	  x = consAlt wies;
-	  y = fleetingIEminus x;
-	  z = consLength y;
-	  in
-	 { s = table { 
-	     SF Sg Nom => wies;
-	     SF Sg Acc => wies;
-	     SF Sg Instr => z + "ą";
-	     SF Sg _ => y + "i"; 
-	     SF Pl Gen => y + "i"; 
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => z + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -ń, 
--- consonant alternation, consonant lengthening.
--- 105 paradigm by Grzegorz Jagodziński
--- 105_1 by Nowak
--- oper nDlon for dłoń GF lexicon
--- nx = ń
--- dlon = dłoń
-
-  oper nx_End_CAL_F : Str -> CommNoun = \dlon ->
-	 let
-	   x = consAlt dlon;
-	   y = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => dlon;
-	     SF Sg Acc => dlon;
-	     SF Sg Instr => y + "ą";
-	     SF Sg _ => x + "i";
-	     SF Pl Gen => x + "i";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => dlon + "mi";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e"
-             };
-	   g = Fem
-	 };
-       
--- oper for feminine, subject ending in -ć (sieć),
--- -ść (miłość), -ś (pierś), -dź (odpowiedź)
--- consonant alternation on last consonant
--- 106 paradigm by Grzegorz Jagodziński
--- 106_1 by Nowak
--- oper nSiec for miłość, odległość, pierś in GF lexicon
--- cx = ć
--- siec = sieć
-
-  oper cx_End_CAL_F_1 : Str -> CommNoun = \siec  ->
-	 let
-	   x = consAlt siec;
-	   y = consLength x;
-	   in
-	 { s = table { 
-	     SF Sg Nom => siec;
-	     SF Sg Acc => siec;
-	     SF Sg Instr => y + "ą";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF _ _ => x + "i"
-             };
-	   g = Fem
-	 };
-
-       
--- oper for nouns having only the plural form
--- 98 by Grzegorz Jagodziński for usta - 98_2 by Nowak
--- 106 by Grzegorz Jagodziński for wnętrzności - 106_2 by Nowak
--- 106 by Grzegorz Jagodziński for drzwi - 106_3 by Nowak
--- 117 by Grzegorz Jagodziński for spodnie - 117_2 by Nowak
--- oper nDrzwi for drzwi, wnętrzności, usta, spodnie in GF-lexicon
-
-  oper onlyPlNoun : Str -> CommNoun = \drzwi  ->
-	 let 
-	   i = my1Last drzwi;
-	   drzw = last1Minus drzwi;
-	   x = case i of {
-	     "a" => last1Minus drzwi;
-	     "e" => drzw;
-	     "i" => drzwi;
-	     "y" => drzw + "ów"};
-	 in 
-	 { s = table { 
-	     SF Sg _ => "[" ++ drzwi ++ [": the singl form does not exist]"];
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => drzwi
-             };
-	   g = Neut 
-	 };
-
-
-
--- oper for feminine, subject ending in -ść (kość), -ć(nić) 
--- consonant alternation and lengthening. Similar to nSiec, but different
--- in instr pl in the declension ending sieci-ami, kość-mi.
--- 107 paradigm by Grzegorz Jagodziński
--- 107 by Nowak
--- oper nKosc for kość in GF lexicon
--- cx = ć
--- kosc = kość
- 
-  oper cx_End_CAL_F_2 : Str -> CommNoun = \kosc ->
-	 let
-	   x = consAlt kosc;
-	   y = consLength x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => kosc;
-	     SF Sg Acc => kosc;
-	     SF Sg Instr => y + "ą";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => kosc + "mi";
-	     SF Pl Loc => y + "ach";
-	     SF _ _ => x + "i"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -c,-cz,-rz,-ż, 
--- 108 paradigm by Grzegorz Jagodziński
--- 108 by Nowak
--- oper nNoc for noc in GF lexicon
-  oper hardened_End_F_1 : Str -> CommNoun = \noc ->
-     	 { s = table { 
-	     SF Sg Nom => noc;
-	     SF Sg Acc => noc;
-	     SF Sg Instr => noc + "ą";
-	     SF Sg _ => noc + "y"; 
-	     SF Pl Gen => noc + "y";
-	     SF Pl Dat => noc + "om";
-	     SF Pl Instr => noc + "ami";
-	     SF Pl Loc => noc + "ach";
-	     SF Pl _ => noc + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -sz, 
--- fleeting -e between 2 consonants.
--- 109* paradigm by Grzegorz Jagodziński 
--- 109* by Nowak
--- oper nWesz for wesz in GF lexicon
-  
-  oper sz_End_FleetingEminus_F : Str -> CommNoun = \wesz ->
-	 let
-	   x = fleetingEminus wesz;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => wesz;
-	     SF Sg Acc => wesz;
-	     SF Sg Instr => x + "ą";
-	     SF Sg _ => x + "y"; 
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -wa, 
--- 112 paradigm by Grzegorz Jagodziński
--- 112 by Nowak
--- oper nKrolowa for królowa (queen) in GF lexicon
-
-  oper wa_na_End_F : Str -> CommNoun = \krolowa ->
-	 let
-	   krolow = last1Minus krolowa;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => krolowa;
-	     SF Sg Acc => krolow + "ą";
-	     SF Sg Instr => krolow + "ą";
-	     SF Sg VocP => krolow + "o";
-	     SF Sg _ => krolow + "ej";
-	     SF Pl Gen => krolow + "ych";
-	     SF Pl Dat => krolow + "ym";
-	     SF Pl Instr => krolow + "ymi";
-	     SF Pl Loc => krolow + "ych";
-	     SF Pl _ => krolow + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -wa, 
--- 113'@ paradigm by Grzegorz Jagodziński
--- 113'@ by Nowak
--- oper nReka for ręka in GF lexicon
-
-  oper k_End_Unregulary_VA3_CA_F : Str -> CommNoun = \reka ->
-	 let
-	   x = last1Minus reka;
-	   y = vowAlt3 x;
-	   z = consAlt x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => reka;
-	     SF Sg Gen => x + "i";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => z + "e";
-	     SF Pl Gen => y;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "oma";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => z + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -k (frytka), -g (ostryga, waga)
--- consonant alternation in dat, loc Sg.
--- 114 paradigm by Grzegorz Jagodziński
--- oper nApteka for fabryka, gramatyka, muzyka, 
--- nauka, rzeka, sztuka in GF lexicon
-
-  oper g_k_End_CA_F : Str -> CommNoun = \apteka ->
-	 let
-	   x = last1Minus apteka;
-	   y = consAlt apteka;
-	 in 
-	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "i";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e"; 
-	     SF Pl Gen => x;   
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -g, 
--- consonant alternation in dat, loc sg,
--- vowel alternation in gen pl: o-ó (droga-dróg).
--- 114' paradigm by Grzegorz Jagodziński
--- by Nowak 114'
--- oper nDroga for podłoga, noga in GF lexicon
-  
-  oper g_End_VA1_CA_F : Str -> CommNoun = \droga ->
-	let
-	   x = last1Minus droga;
-	   y = consAlt droga;
-	   z = vowAlt1 droga;
-	in
-	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "i";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e"; 
-	     SF Pl Gen => z; 
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -k, 
--- consonant alternation in dat, loc sg,
--- fleeting -e plus in gen pl.
--- 114* paradigm by Grzegorz Jagodziński
--- by Nowak 114*_1
--- oper nMatka for matka, piosenka, książka, kurtka,
--- lodówka, skarpetka, gumka in GF lexicon
-  
-  oper k_End_CA_FleetingEplus_F : Str -> CommNoun = \matka ->
-	 let
-	   x = last1Minus matka;
-	   y = consAlt x;
-	   z = fleetingEplus x;	   
-	   in
-	     { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "i";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e"; 
-	     SF Pl Gen => z;   
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i"
-             };
-	   g = Fem
-	  };
-
-
--- oper for feminine, subject ending in -ia, 
--- 116 paradigm by Grzegorz Jagodziński
--- 116_5 by Nowak
--- oper nZiemia for ziemia (earth) in GF lexicon
-
-  oper ia_End_F_1 : Str -> CommNoun = \ziemia ->
-	 let
-	   ziemi = last1Minus ziemia;
-	   ziem = last1Minus ziemi;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => ziemi + "a";
-	     SF Sg Acc => ziemi + "ę";
-	     SF Sg Instr => ziemi + "ą";
-	     SF Sg VocP => ziemi + "o";
-	     SF Sg _ => ziem + "i";
-	     SF Pl Gen => ziem;
-	     SF Pl Dat => ziemi + "om";
-	     SF Pl Instr => ziemi + "ami";
-	     SF Pl Loc => ziemi + "ach";
-	     SF Pl _ => ziemi + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -l, 
--- 116 paradigm by Grzegorz Jagodziński
--- 116_6 by Nowak
--- oper nFala for koszula in GF lexicon
-
-  oper l_End_F_2 : Str -> CommNoun = \fala ->
-	 let
-	   fal = last1Minus fala;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => fal + "a";
-	     SF Sg Acc => fal + "ę";
-	     SF Sg Instr => fal + "ą";
-	     SF Sg VocP => fal + "o";
-	     SF Sg _ => fal + "i";
-	     SF Pl Gen => fal;
-	     SF Pl Dat => fal + "om";
-	     SF Pl Instr => fal + "ami";
-	     SF Pl Loc => fal + "ach";
-	     SF Pl _ => fal + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -ia, -ja:
--- in the spoken version of the word is -ja. Both
--- -ia and -ja have the same pronunciation. 
--- genitive sg ending in -ii.
--- 117 paradigm by Grzegorz Jagodziński
--- 117_4 by Nowak too
--- oper nLilia for religia, telewizja, restauracja in GF lexicon
-  
-  oper ia_End_F_2 : Str -> CommNoun = \lilia ->
-	 let
-	   lili = last1Minus lilia;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => lili + "a";
-	     SF Sg Acc => lili + "ę";
-	     SF Sg Instr => lili + "ą";
-	     SF Sg VocP => lili + "o";
-	     SF Sg _ => lili + "i";
-	     SF Pl Gen => lili + "i";
-	     SF Pl Dat => lili + "om";
-	     SF Pl Instr => lili + "ami";
-	     SF Pl Loc => lili + "ach";
-	     SF Pl _ => lili + "e"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -t --------------------------------------, 
--- 121 paradigm by Grzegorz Jagodziński
--- 121_1 by Nowak
--- By Jagodziński there are many words in this group, 
--- that don't have consonant alternation in dat sg,
--- but only a consonantLengthening p: pi, n:ni, s:si
--- at the end of the subject.
--- So I create a new group here for małpa, lipa, benzyna, 
--- cytryna, szosa etc. S. nLiczba, below, 121_2 by Nowak
--- oper nKobieta for moneta, planeta, gazeta, ojczyzna in GF lexicon
-
-  oper hard_End_CAL_F : Str -> CommNoun = \kobieta ->
-	 let
-	   x = last1Minus kobieta;
-	   y = consAlt x;
-	   z = consLength y;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => z + "e";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -t, -d, -b, -n, -w
--- (a hard consonant)
--- 121 paradigm by Grzegorz Jagodziński
--- 121_2 by Nowak
--- Only a consonantLengthening b:bi, p: pi, n:ni, s:si
--- at the end of the subject.
--- oper nLiczba for żona, trawa, dziewczyna, ryba, lampa, liczba in GF lexicon
-  
-  oper hard_End_CL_F : Str -> CommNoun = \liczba ->
-	 let
-	   x = last1Minus liczba;
-	   y = consLength x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -ł, -r, -ch
--- 121 paradigm by Grzegorz Jagodziński
--- 121_3 by Nowak
--- oper nSila for skała, reguła, chmura, góra, kamera, 
--- kora, mucha in GF lexicon
--- sixa = siła
-  
-  oper hard_End_CA_F : Str -> CommNoun = \sixa ->
-	 let
-	   x = last1Minus sixa;
-	   y = consAlt x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in hard consonants
--- f.e. -b(osoba), -p(stopa), -w (połowa), -z (koza)
--- vowel alternation o:ó in gen Pl and
--- consonant lengthening in dat, loc sg.
--- 121' paradigm by Grzegorz Jagodziński
--- 121'_1 by Nowak
--- oper nNora for stopa, wątroba, krowa
---  in GF lexicon
-
-  oper hard_End_VA1_CL_F : Str -> CommNoun = \doba ->
-	 let
-	   x = last1Minus doba;
-	   y = consLength x;
-	   z = vowAlt1 x;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -d (broda, jagoda, moda),
--- -t (cnota, robota, sobota).
--- consonant alternation and lengthening d:dzi (woda:wodzie),
--- t:ci(sobota:sobocie) in dat, loc sg, 
--- vowel alternation o:ó (woda:wód, sobota:sobót) in gen pl.
--- 121' paradigm by Grzegorz Jagodziński
--- 121'_2 by Nowak
--- oper nWoda for woda in GF lexicon
-
-  oper hard_End_VA1_CAL_F : Str -> CommNoun = \woda ->
-	 let
-	   x = last1Minus woda;
-	   y = consLength (consAlt x);
-	   z = vowAlt1 x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -oła, -stra:
--- (pszczoła, szkoła, siostra).
--- consonant alternation ł:l, r:rz (szkoła:szkole,
--- siostra:siostrze) in dat, loc sg, 
--- vowel alternation o:ó (szkoła:szkół, siostra:sióstr) in gen pl.
--- 121' paradigm by Grzegorz Jagodziński
--- 121'_3 by Nowak
--- oper nSzkola for szkoła, siostra in GF lexicon
-
-  oper hard_End_VA1_CA_F : Str -> CommNoun = \szkola ->
-	 let
-	   x = last1Minus szkola;
-	   y = consAlt x;
-	   z = vowAlt1 x;
-	   in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
- 
--- oper for feminine, subject ending in -two consonants:
--- -jn, -łz, -łn, -żw
--- consonant lengthening 
--- 121* paradigm by Grzegorz Jagodziński
--- 121*_1 by Nowak
--- oper nWojna for wojna GF lexicon
-
-  oper hard_End_CL_FleetingEplus_F : Str -> CommNoun = \wojna ->
-	let
-	  x = last1Minus wojna;
-	  y = consLength x;
-	  z = fleetingEplus x;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -sn
--- is almost like nWojna, but consonant alternation s:ś too
--- 121* paradigm by Grzegorz Jagodziński
--- 121*_1 by Nowak
--- oper nWiosna 
-
-  oper sn_End_CAL_FleetingIEplus_F : Str -> CommNoun = \wiosna ->
-	let
-	  x = last1Minus wiosna;
-	  y = consLength (consAlt x);
-	  z = fleetingEplus x;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z; 
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -consonant + ł
--- f.e. like mgła, igła
--- fleeting -ie plus
--- 121** paradigm by Grzegorz Jagodziński
--- 121**_2 by Nowak
--- oper nMgla for mgła GF lexicon
--- x = ł
--- mgxa = mgła
-
-  oper hard_l_End_CA_FleetingIEplus_F : Str -> CommNoun = \mgxa ->
-	let
-	  x = last1Minus mgxa;
-	  y = consAlt x;
-	  z = fleetingIEplus x;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper nGwiazda for gwiazda in GF-lexicon
--- 121^ paradigm by Grzegorz Jagodziński
--- 121^_1 by Nowak
--- only for words ending in -zda, -sta (gwiazda, niewiasta)
-
-  oper zd_st_End_VA2_CAL_F : Str -> CommNoun = \gwiazda->
-	 let
-	  x = last1Minus gwiazda;
-	  y = consLength (consAlt (vowAlt2 x));
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y"
-             };
-	   g = Fem
-	 };
-
-
--- oper for feminine, subject ending in -c,-cz,-rz,-ż,  
--- 124 paradigm by Grzegorz Jagodziński 
--- 124_1 by Nowak
--- oper nUlica for ulica, rękawica GF lexicon
-
-  oper hardened_End_F_2 : Str -> CommNoun = \ulica ->
-	 let
-	   x = last1Minus ulica;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => x + "y";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e"
-             };
-	   g = Fem
-	 };
-
--- oper for feminine, subject ending in -c, 
--- irregulary form in genitive Pl
--- 124** paradigm by Grzegorz Jagodziński 
--- 124**_1 by Nowak
--- oper nOwca for owca in GF lexicon
-  
-  oper c_End_FleetingIEplus_F : Str -> CommNoun = \owca ->
-	 let
-	   x = last1Minus owca;
-	   y = fleetingIEplus x;
-	in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg VocP => x + "o";
-	     SF Sg _ => x + "y";
-	     SF Pl Gen => y;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e"
-             };
-	   g = Fem
-	 };
-
-
---1.3 Operations for neuter nouns  
-
--- oper for neuter where subject ending in -ni,
--- functional weak ------- consonant
--- consonant alternation ni:ń in genitive Pl
--- 91 paradigm by Grzegorz Jagodziński 
--- 91_1 by Nowak
--- oper nDanie for mieszkanie in GF lexicon
-
-  oper ci_ni_week_End_CA_N : Str -> CommNoun = \danie ->
-	 let
-	   x = last1Minus danie;
-	   y = consAlt x;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "e";
-	     SF Pl Gen => y;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -c,
--- functional weak consonant
--- 91 paradigm by Grzegorz Jagodziński 
--- 91_4 by Nowak
--- oper nSerce for słońce, serce, wzgórze GF lexicon
-
-  oper hardened_End_N : Str -> CommNoun = \serce ->
-	 let
-	   x = last1Minus serce;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "e";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -
--- 91@ paradigm by Grzegorz Jagodziński 
--- 91@ by Nowak
--- oper nNasienie for nasienie GF lexicon
--- this is only for nasienie in polish language 
-  
-  oper ni_End_VA2_N : Str -> CommNoun = \nasienie ->
-	let
-	  x = fleetingEminus nasienie;
-	  w = fleetingIEminus nasienie;
-	  y = vowAlt2 w;
-	in
-     	{ s = table { 
-	    SF Sg Gen => x + "a";
-	    SF Sg Dat => x + "u";
-	    SF Sg Instr => x + "em";
-	    SF Sg Loc => x + "u";
-	    SF Sg _ => x + "e";
-	    SF Pl Gen => y;
-	    SF Pl Dat => y + "om";
-	    SF Pl Instr => y + "ami";
-	    SF Pl Loc => y + "ach";
-	    SF Pl _ => y + "a"
-            };
-	  g = Neut
-	};
-
-
--- oper for neuter, subject ending in -rz 
--- in genitive Pl vowel alternation o:ó
--- here u=ó; both letters have the same pronunciation
--- 91' paradigm by Grzegorz Jagodziński 
--- 91' by Nowak  
--- oper nMorze for morze GF lexicon
-
-  oper rz_zx_End_VA1_N : Str -> CommNoun = \morze ->
-	let
-	   x = last1Minus morze;
-	   y = vowAlt1 morze;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "e";
-	     SF Pl Gen => y;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -ę
--- in gen pl vowel alternation ę:o 
--- (imię:imiona, znamię:znamiona)
--- 97 paradigm by Grzegorz Jagodziński 
--- 97_1 by Nowak
--- oper nImie for imię GF lexicon
-
-  oper ex_End_VA2_N : Str -> CommNoun = \imie ->
-	 let
-	  w = last1Minus imie;
-	  x = w + "eni";
-	  y = vowAlt2 imie;
-	  z = y + "n";
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => w + "ę";
-	     SF Pl Gen => z;
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => z + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -ę
--- genitive Pl -ęta
--- 97 paradigm by Grzegorz Jagodziński 
--- 97_2 by Nowak
--- oper nCiele for zwierzę, niemowlę GF lexicon
-  
-  oper ex_End_VA3_N : Str -> CommNoun = \ciele ->
-	let
-	   w = last1Minus ciele;
-	   x = ciele + "ci";
-	   y = vowAlt3 ciele + "t";
-	   z = ciele + "t";
-	in
-     	{ s = table { 
-	    SF Sg Gen => x + "a";
-	    SF Sg Dat => x + "u";
-	    SF Sg Instr => x + "em";
-	    SF Sg Loc => x + "u";
-	    SF Sg _ => w + "ę";
-	    SF Pl Gen => y;
-	    SF Pl Dat => z + "om";
-	    SF Pl Instr => z  + "ami";
-	    SF Pl Loc => z  + "ach";
-	    SF Pl _ => z + "a"
-            };
-	  g = Neut
-	};
-
-
--- According to G.Jagodziński "udo" and "piwo" have 
--- the same declention type. I part it, because "udo" 
--- changes in "udzie".
--- first there is consonant alternation d:dz 
--- and then consonant lengthening dz: dz' (dzi).
--- "Piwo" has only consonant lengthening w:w' (wi)
-
--- oper for neuter, subject ending in a consonant + "o"
--- 98 paradigm by Grzegorz Jagodziński 
--- 98_1_a by Nowak
--- oper nUdo for złoto GF lexicon
-  
-  oper hard_End_CAL_N : Str -> CommNoun = \udo ->
-	 let
-	  x = last1Minus udo ;
-	  y = consLength (consAlt udo);
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x  + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in a consonant + "o"
--- 98 paradigm by Grzegorz Jagodziński 
--- 98_1_b by Nowak
--- oper nPiwo for piwo, wino, drzewo, kolano, 
--- mięso, żelazo GF lexicon
-
-  oper hard_End_CL_N : Str -> CommNoun = \piwo ->
-	 let
-	   x = last1Minus piwo;
-	   y = consLength piwo;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x  + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -r
--- consonant alternation r:rz
--- 98 paradigm by Grzegorz Jagodziński 
--- 98_4 by Nowak
--- oper nZero for jezioro, pióro GF lexicon
-
-  oper r_End_CA_N : Str -> CommNoun = \zero ->
-	 let
-	   x = last1Minus zero;
-	   y = consAlt zero;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter "niebo" - only
--- irregularly form in Pl "niebiosa"
--- 98@ paradigm by Grzegorz Jagodziński and by Nowak
--- oper nNiebo for  GF lexicon
--- only for niebo in polish language
-
-  oper niebo_Unregulary_N : Str -> CommNoun = \niebo ->
-	 let
-	   x  = last1Minus niebo;
--- 	   y = consLength niebo;
-	   z = x + "ios";
-	in
-     	{ s = table { 
-	    SF Sg Gen => x + "a";
-	    SF Sg Dat => x + "u";
-	    SF Sg Instr => x + "em";
-	    SF Sg Loc => x + "ie";
-	    SF Sg _ => x + "o";
-	    SF Pl Gen => z;
-	    SF Pl Dat => z + "om";
-	    SF Pl Instr => z + "ami";
-	    SF Pl Loc => z + "ach";
-	    SF Pl _ => z + "a"
-            };
-	  g = Neut
-	};
-
-
--- oper for neuter, subject ending in -ł
--- consonant alternation
--- 98* paradigm by Grzegorz Jagodziński
--- 98*_3 by Nowak
--- oper nTlo for krzesło, masło, skrzydło GF lexicon 
--- x = ł
--- txo = tło 
-
-  oper lx_End_CA_FleetingEplus_N : Str -> CommNoun = \txo ->
-	 let
-	   x = last1Minus txo;
-	   y = consAlt txo;
-	   z = fleetingEplus txo; 
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -r
--- genitive Pl fleetingEplus
--- 98*  paradigm by Grzegorz Jagodziński 
--- 98*_5 by Nowak
--- oper nZebro for srebro GF lexicon
-
-  oper hard_End_CA_FleetingEplus_N : Str -> CommNoun = \zebro ->
-	 let
-	   x = last1Minus zebro;
-	   y = consAlt zebro;
-	   z = fleetingEplus zebro;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x  + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -n
--- consonant lengthening
--- 98** paradigm by Grzegorz Jagodziński 
--- 98**_1 by Nowak
--- oper nOkno for okno, drewno  GF lexicon
-
-  oper n_End_CL_FleetingIEplus_N : Str -> CommNoun = \okno ->
-	 let
-	   x = last1Minus okno;
-	   y = consLength okno;
-	   z = fleetingIEplus okno;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x  + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -zdo, -sto
--- locative Sg gnieździe, mieście
--- 98^ paradigm by Grzegorz Jagodziński 
--- 98^_1 by Nowak
--- oper nGniazdo for miasto GF lexicon
-
-  oper hard_End_VA_CAL_N : Str -> CommNoun = \gniazdo ->
-	 let
-	  x = last1Minus gniazdo;
-	  y = vowAlt2 gniazdo;
-	  z = consAlt y;
-	  t = consLength z;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => t + "e";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x  + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -k,
--- consonant lengthening in instr Sg
--- 99 paradigm by Grzegorz Jagodziński 
--- 99_2 by Nowak
--- oper nWojsko for mleko GF lexicon
-
-  oper k_End_CL_N : Str -> CommNoun = \wojsko ->
-	 let
-	   x = last1Minus wojsko;
-	   y = consLength wojsko;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -j,
--- 99 paradigm by Grzegorz Jagodziński 
--- 99_4 by Nowak
--- oper nJajo for jajo GF lexicon
-
-  oper j_End_N : Str -> CommNoun = \jajo ->
-	let
-	  x = last1Minus jajo;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => x;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -k,
--- consonant lengthening in instr Sg
--- 99* paradigm by Grzegorz Jagodziński 
--- 99*_2 by Nowak   
--- oper nJablko for jabłko, jajko GF lexicon
-  
-  oper k_End_CL_FleetingEplus_N : Str -> CommNoun = \jablko ->
-	let
-	  x = last1Minus jablko;
-	  y = consLength jablko;
-	  z = fleetingEplus jablko;
-	in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => z;
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "a"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, noun ending in -o,
--- 100 paradigm by Grzegorz Jagodziński 
--- 100_3 by Nowak
--- oper nStudio for radio GF lexicon
-  
-  oper o_End_N : Str -> CommNoun = \studio ->
-	let
-	  x = last1Minus studio;
-	in
-     	{ s = table { 
-	    SF Sg Gen => x + "a";
-	    SF Sg Dat => x + "u";
-	    SF Sg Instr => x + "em";
-	    SF Sg Loc => x + "u";
-	    SF Sg _ => x + "o";
-	    SF Pl Gen => x + "ów";
-	    SF Pl Dat => x + "om";
-	    SF Pl Instr => x + "ami";
-	    SF Pl Loc => x + "ach";
-	    SF Pl _ => x + "a"
-            };
-	  g = Neut
-	};
-
-
--- oper for neuter for dziecko,
--- consonant alternation c:ć in instr Sg.
--- 101 paradigm by Grzegorz Jagodziński & by Nowak
--- oper nDziecko for dziecko GF lexicon
-
-  oper k_End_CAL_N : Str -> CommNoun = \dziecko ->
-	let
-	  t = last1Minus dziecko; --dzieck
-	  u = last1Minus t; --dziec
-	  w = consLength u; --dzieci
-	  x = consAlt w; --dzieć
-	  y = consLength t; --dziecki
-	in
-     	 { s = table { 
-	     SF Sg Gen => t + "a";
-	     SF Sg Dat => t + "u";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => t + "u";
-	     SF Sg _ => t + "o";
-	     SF Pl Dat => w + "om";
-	     SF Pl Instr => x + "mi";
-	     SF Pl Loc => w + "ach";
-	     SF Pl _ => u + "i"
-             };
-	   g = Neut
-	 };
-
-
--- oper for neuter, subject ending in -ch,
--- consonant alternation ch:sz
--- 102 paradigm by Grzegorz Jagodziński 
--- 102_1 by Nowak
--- oper nUcho for ucho GF lexicon 
--- ucho as ear
-
-  oper ch_End_Unregulary_CA_N : Str -> CommNoun = \ucho ->
-	 let
-	   x = last1Minus ucho;
-	   y = consAlt x;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => y + "u";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "y"
-             };
-	   g = Neut
-	 };
-
--- oper for neuter, subject ending in -k,
--- consonant alternation for all forms in Pl k:cz
--- 102 paradigm by Grzegorz Jagodziński 
--- 102_2 by Nowak
--- oper nOko for oko GF lexicon
-
-  oper k_End_Unregulary_CAL_N : Str -> CommNoun = \oko ->
-	 let
-	   x = last1Minus oko;
-	   y = consAlt oko;
-	   z = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => z + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg _ => x + "o";
-	     SF Pl Gen => y + "u";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "y"
-             };
-	   g = Neut
-	 };
-
-
-
---1.4 Operations for masculine nouns  
-
-
---1.4.1 Operations for masculine personal  
-
-
--- oper for masculine personal ending in hard consonant
--- -t, -n, nom pl ending in -i
--- consonant alternation t:c, consonant lengthening c:ci,
--- 3 paradigm by Grzegorz Jagodziński 
--- 3_1 by Nowak
--- oper nFacet for policjant, student, kuzyn in GF lexicon
-
-  oper hard_End_CAL_MP_1 : Str -> CommNoun = \facet ->
-	 let
-	   x = facet;
-	   y = consAlt x;
-	   z = consLength y;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => z + "e";
-	     SF Sg VocP => z + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => y + "i";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => y + "i";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in hard consonant
--- -t, -n, nom pl ending in -y
--- consonant alternation t:c, consonant lengthening c:ci,
--- 4 paradigm by Grzegorz Jagodziński 
--- 4_1 by Nowak
--- oper nArab for szef in GF lexicon
-
-  oper hard_End_CAL_MP_2 : Str -> CommNoun = \Arab ->
-	 let
-	   x = Arab;
-	   y = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "owie";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in hard consonant
--- -l. Only for przyjaciel (friend).
--- consonant alternation l:ł, vowel alternation e:ó,
--- 7 paradigm by Grzegorz Jagodziński 
--- 7 by Nowak
--- oper nPrzyjaciel for przyjaciel in GF lexicon
-
-  oper przyjaciel_VA1_VA2_CA_MP : Str -> CommNoun = \przyjaciel ->
-	 let
-	   t = przyjaciel;
-	   u = vowAlt2 t; -- przyjaciol
-	   w = consAlt u; -- przyjacioł
-	   x = vowAlt1 w; -- przyjaciół
-	 in
-     	 { s = table { 
-	     SF Sg Nom => t;
-	     SF Sg Dat => t + "owi";
-	     SF Sg Instr => t + "em";
-	     SF Sg Loc => t + "u";
-	     SF Sg VocP => t + "u";
-	     SF Sg _ => t + "a";
-	     SF Pl Nom => t + "e";
-	     SF Pl Dat => w + "om";
-	     SF Pl Instr => x  + "mi";
-	     SF Pl Loc => w + "ach";
-	     SF Pl VocP => t + "e";
-	     SF Pl _ => x 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in hard consonant -l
--- 8 paradigm by Grzegorz Jagodziński 
--- 8_3 by Nowak
--- oper nKowal for nauczyciel (teacher) in GF lexicon
-  
-  oper l_End_MP : Str -> CommNoun = \kowal->
-	 let
-	   t = kowal;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => t;
-	     SF Sg Dat => t + "owi";
-	     SF Sg Instr => t + "em";
-	     SF Sg Loc => t + "u";
-	     SF Sg VocP => t + "u";
-	     SF Sg _ => t + "a";
-	     SF Pl Nom => t + "e";
-	     SF Pl Dat => t + "om";
-	     SF Pl Instr => t  + "ami";
-	     SF Pl Loc => t + "ach";
-	     SF Pl VocP => t + "e";
-	     SF Pl _ => t + "i"
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in hard double consonant
--- -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)
--- 11 paradigm by Grzegorz Jagodziński 
--- 11 by Nowak
--- oper nLekarz for lekarz in GF lexicon
-
-  oper hardened_End_MP : Str -> CommNoun = \lekarz ->
-	 let
-	   x = lekarz;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => x + "u";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "e";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "e";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -ul
--- (konsul, król)
--- 13 paradigm by Grzegorz Jagodziński 
--- 13_3 by Nowak
--- oper nKrol for król in GF lexicon
-
-  oper ul_End_MP : Str -> CommNoun = \krol->
-	 let
-	   x = krol;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => x + "u";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "owie";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "e";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -ż (mąż),
--- vowel alternation ą:ę (mąż:męża)
--- 13' paradigm by Grzegorz Jagodziński 
--- 13' by Nowak
--- oper nMaz for mąż in GF lexicon
-  
-  oper maz_MP : Str -> CommNoun = \maz ->
-	 let
-	   x = maz;
-	   y = vowAlt3 x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => y + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => y + "u";
-	     SF Sg VocP => y + "u";
-	     SF Sg _ => y + "a";
-	     SF Pl Nom => y + "owie";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl VocP => y + "owie";
-	     SF Pl _ => y + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -g (wróg),
--- vowel alternation ó:o (wróg:wroga)
--- only for wróg
--- 14' paradigm by Grzegorz Jagodziński 
--- 14' by Nowak
--- oper nWrog for wróg in GF lexicon
-  
-  oper wrog_VA1_CL_MP : Str -> CommNoun = \wrog ->
-	 let
-	   x = vowAlt1 wrog;
-	   y = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => wrog;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => x + "u";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "owie";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "owie";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal "ksiądz"
--- 20 paradigm by Grzegorz Jagodziński 
--- 20 by Nowak
--- oper nKsiadz for ksiądz in GF lexicon
-
-  oper ksiadz_VA3_CA_MP : Str -> CommNoun = \ksiadz ->
-	 let
-	   x = vowAlt3 ksiadz; -- księdz
-	   y = consAlt x; -- księż
-	 in
-     	 { s = table { 
-	     SF Sg Nom => ksiadz;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => y + "a";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "mi";
-	     SF Pl Loc => y + "ach";
-	     SF Pl VocP => y + "a";
-	     SF Pl _ => y + "y" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -ciec
--- (ojciec, praojciec)
--- 21* paradigm by Grzegorz Jagodziński 
--- 21* by Nowak
--- oper nOjciec for ojciec in GF lexicon
-  
-  oper ciec_End_CA_FleetingIEminus_MP : Str -> CommNoun = \ojciec ->
-	 let
-	   w = fleetingIEminus ojciec; -- ojcc
-	   x = last1Minus w; -- ojc
-	   y = consAlt x; -- ojcz
-	 in
-     	 { s = table { 
-	     SF Sg Nom => ojciec;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "owie";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "owie";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in a hard consonant -t 
--- 18 paradigm by Grzegorz Jagodziński 
--- 18 by Nowak
--- oper nBrat for brat in GF lexicon
-
-  oper hard_End_CAL_MP : Str -> CommNoun = \brat ->
-	 let
-	   x = brat;
-	   y = consAlt x; -- brat:brac
-	   z = consLength y; -- brac:braci
-	   t = consAlt y; -- brac:brać
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => z + "e";
-	     SF Sg VocP => z + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => z + "a";
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => t + "mi";
-	     SF Pl Loc => z + "ach";
-	     SF Pl VocP => z + "a";
-	     SF Pl _ => y + "i" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal "bóg"
--- 22' paradigm by Grzegorz Jagodziński 
--- 22' by Nowak
--- oper nBog for bóg in GF lexicon
-
-  oper bog_VA1_CAL_MP : Str -> CommNoun = \bog ->
-	 let
-	   x = vowAlt1 bog; -- bog
-	   y = consLength x; -- bogi
-	   z = vowAlt1 (consAlt bog); -- boż
-	 in
-     	 { s = table { 
-	     SF Sg Nom => bog;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => z + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "owie";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "owie";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -iec
--- ( chłopiec)
--- 24** paradigm by Grzegorz Jagodziński 
--- 24** by Nowak
--- oper nChlopiec for chłopiec in GF lexicon
-  
-  oper iec_End_CA_FleetingIEminus_MP : Str -> CommNoun = \chlopiec ->
-	 let
-	   x = fleetingIEminus chlopiec; -- chlopc
-	   y = consAlt x; -- chlopcz
-	 in
-     	 { s = table { 
-	     SF Sg Nom => chlopiec;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "y";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "y";
-	     SF Pl _ => x + "ów" 
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in -zna
--- consinant alternation z:ź, consonant lengthening n:ni
--- 34 paradigm by Grzegorz Jagodziński 
--- 34 by Nowak
--- oper nMezczyzna for mężczyzna in GF lexicon
-
-  oper zna_End_CAL_MP : Str -> CommNoun = \mezczyzna ->
-	 let
-	   x = last1Minus mezczyzna; -- mężczyzn
-	   y = consAlt x; -- mężczyźn
-	   z = consLength y;-- mężczyźni
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x + "a";
-	     SF Sg Gen => x + "y";
-	     SF Sg Dat => z + "e";
-	     SF Sg Acc => x + "ę";
-	     SF Sg Instr => x + "ą";
-	     SF Sg Loc => z + "e";
-	     SF Sg VocP => x + "o";
-	     SF Pl Nom => y + "i";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => y + "i";
-	     SF Pl _ => x  
-             };
-	   g = Masc Personal
-	 };
-
-
--- oper for masculine personal ending in a hard consonant
--- + "a" (tata, gazda, drużba, ortodoksa)
--- 36 paradigm by Grzegorz Jagodziński 
--- 36 by Nowak
--- oper nDruzba for tata (synonym for ojciec) in GF lexicon
-{- oper hard_plus_a_CAL_MP : Str -> CommNoun = \druzba ->
-	 let
-	   x = last1Minus druzba;
-	   
-	in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => x + "u";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "e";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl VocP => x + "e";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Personal
-	 }; -}
-
-
---1.4.2 Operations for masculine animate
-
-
--- oper for masculine animate ending in -ń
--- 59 paradigm by Grzegorz Jagodziński 
--- 59 by Nowak
--- oper nKon for koń in GF lexicon
-
-  oper kon_CAL_MA : Str -> CommNoun = \kon ->
-	 let
-	   x = consAlt kon; --kon
-	   y = consLength x; -- koni
-	 in
-     	 { s = table { 
-	     SF Sg Nom => kon;
-	     SF Sg Dat => y + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => y + "u";
-	     SF Sg VocP => y + "u";
-	     SF Sg _ => y + "a";
-	     SF Pl Gen => x + "i";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => kon + "mi";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e" 
-             };
-	   g = Masc Animate
-	 };
-
-
--- oper for masculine animate for "wąż"
--- 61' paradigm by Grzegorz Jagodziński 
--- 61' by Nowak
--- oper nWaz for wąż in GF lexicon
-  
-  oper waz_VA3_MA : Str -> CommNoun = \waz ->
-	 let
-	   y = vowAlt3 waz; -- węż
-	 in
-     	 { s = table { 
-	     SF Sg Nom => waz;
-	     SF Sg Dat => y + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => y + "u";
-	     SF Sg VocP => y + "u";
-	     SF Sg _ => y + "a";
-	     SF Pl Gen => y + "y";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e" 
-             };
-	   g = Masc Animate
-	 };
-
-
--- oper for masculine animate ending in -k
--- 62 paradigm by Grzegorz Jagodziński 
--- 62 by Nowak
--- oper nPtak for ptak, robak in GF lexicon
-  
-  oper k_End_CL_MA : Str -> CommNoun = \ptak ->
-	 let
-	   y = consLength ptak; -- ptaki
-	 in
-     	 { s = table { 
-	     SF Sg Nom => ptak;
-	     SF Sg Dat => ptak + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => ptak + "u";
-	     SF Sg VocP => ptak + "u";
-	     SF Sg _ => ptak + "a";
-	     SF Pl Gen => ptak + "ów";
-	     SF Pl Dat => ptak + "om";
-	     SF Pl Instr => ptak + "ami";
-	     SF Pl Loc => ptak + "ach";
-	     SF Pl _ => ptak + "i" 
-             };
-	   g = Masc Animate
-	 };
-
-
--- oper for masculine animate for "kot"
--- 64 paradigm by Grzegorz Jagodziński 
--- 64 by Nowak
--- oper nKot for kot in GF lexicon
-
-  oper kot_CAL_MA : Str -> CommNoun = \kot ->
-	 let
-       	   x = consAlt kot; --koc
-	   y = consLength x; -- koci
-	 in
-     	 { s = table { 
-	     SF Sg Nom => kot;
-	     SF Sg Dat => kot + "u";
-	     SF Sg Instr => kot + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => kot + "a";
-	     SF Pl Gen => kot + "ów";
-	     SF Pl Dat => kot + "om";
-	     SF Pl Instr => kot + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => kot + "y" 
-             };
-	   g = Masc Animate
-	 };
-
-
--- oper for masculine animate for "pies"
--- 64** paradigm by Grzegorz Jagodziński 
--- 64** by Nowak
--- oper nPies for pies in GF lexicon
-
-  oper pies_CL_FleetingIEminus_MA : Str -> CommNoun = \pies ->
-	 let
-	   x = fleetingIEminus pies; -- ps
-	   y = consLength x; -- psi
-	 in
-     	 { s = table { 
-	     SF Sg Nom => pies;
-	     SF Sg Dat => x + "u";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Animate
-	 };
-
-
-
---1.4.3 Operations for masculine inanimate  
-
-
--- oper for masculine inanimate ending in 
--- a vowel + a hard consonant
--- consonant alternation t:c and then lengthening c:ci
--- 70 paradigm by Grzegorz Jagodziński 
--- 70_1_1 by Nowak
--- oper nBat for but in GF lexicon
-
-  oper vowel_hard_CAL_MI : Str -> CommNoun = \bat ->
-	 let
-	   u = bat;
-	   x = consLength (consAlt u);  -- baci
-	 in
-     	 { s = table { 
-	     SF Sg Nom => u;
-	     SF Sg Dat => u + "owi";
-	     SF Sg Instr => u + "em";
-	     SF Sg Loc => x + "e";
-	     SF Sg VocP => x + "e";
-	     SF Sg _ => u + "a";
-	     SF Pl Gen => u + "ów";
-	     SF Pl Dat => u + "om";
-	     SF Pl Instr => u + "ami";
-	     SF Pl Loc => u + "ach";
-	     SF Pl _ => u + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in 
--- a vowel + a hard consonant
--- almost like nBat, but with consonant alternation
--- only consonant lengthening
--- (dzban, chleb, Berlin, kręgosłup, kilogram)
--- 70 paradigm by Grzegorz Jagodziński 
--- 70_1_2 by Nowak
--- oper nBat for  chleb, włos, nos, ogon in GF lexicon
-
-  oper vowel_hard_CL_MI : Str -> CommNoun = \chleb ->
-	 let
-	   u = chleb;
-	   x = consLength u;  -- chlebi
-	 in
-     	 { s = table { 
-	     SF Sg Nom => u;
-	     SF Sg Dat => u + "owi";
-	     SF Sg Instr => u + "em";
-	     SF Sg Loc => x + "e";
-	     SF Sg VocP => x + "e";
-	     SF Sg _ => u + "a";
-	     SF Pl Gen => u + "ów";
-	     SF Pl Dat => u + "om";
-	     SF Pl Instr => u + "ami";
-	     SF Pl Loc => u + "ach";
-	     SF Pl _ => u + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -r
--- consonant alternation r:rz (ser:serze)
--- 70 paradigm by Grzegorz Jagodziński 
--- 70_5 by Nowak
--- oper nSer for ser in GF lexicon
-
-  oper r_End_CA_MI : Str -> CommNoun = \ser ->
-	 let
-	   x = ser;
-	   y = consAlt ser; -- serz
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ąb
--- consonant alternation ą:ę (ząb:zęba)
--- 70' paradigm by Grzegorz Jagodziński 
--- 70'_1 by Nowak
--- oper nZab for ząb in GF lexicon
-
-  oper ab_End_VA3_CL_MI : Str -> CommNoun = \zab ->
-	 let
-	   y = vowAlt3 zab; -- zęb
-	   z = consLength y;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => zab;
-	     SF Sg Dat => y + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => z + "e";
-	     SF Sg VocP => z + "e";
-	     SF Sg _ => y + "a";
-	     SF Pl Gen => y + "ów";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending for "kościół"
--- 70^' paradigm by Grzegorz Jagodziński 
--- 70^' by Nowak
--- oper nKosciol for kościół in GF lexicon
-  
-  oper kosciol_VA1_VA2_CA_MI : Str -> CommNoun = \kosciol ->
-	 let
-	   x = vowAlt1 kosciol; -- kościoł
-	   y = consAlt (vowAlt2 x); -- kościel
-	 in
-     	 { s = table { 
-	     SF Sg Nom => kosciol;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => y + "e";
-	     SF Sg VocP => y + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in a weak
--- consonant (promień, Brześć, Niedźwiedź, Zamość) 
--- consonant alternation and lengthening
--- 71 paradigm by Grzegorz Jagodziński 
--- 71_1 by Nowak
--- oper nCien for korzeń, kamień in GF lexicon
-  
-  oper week_End_CAL_MI : Str -> CommNoun = \cien ->
-	 let
-	   x = consAlt cien; -- cień:cien
-	   y = consLength x; -- cieni
-	 in
-     	 { s = table { 
-	     SF Sg Nom => cien;
-	     SF Sg Gen => y + "a";
-	     SF Sg Dat => y + "u";
-	     SF Sg Acc => cien;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => y + "u";
-	     SF Pl Gen => x + "i";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => y + "ami";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in a weak
--- consonant alternation and lengthening
--- fleeting ie minus (łokieć, stopień)
--- 71** paradigm by Grzegorz Jagodziński 
--- 71**_1 by Nowak
--- oper nPien for ogień, paznokieć in GF lexicon
-  
-  oper week_End_CAL_FleetingIEminus_MI : Str -> CommNoun = \pien ->
-	 let
-	   x = fleetingIEminus pien; -- pń
-	   y = consAlt x; -- pn
-	   z = consLength y; -- pni
-	 in
-     	 { s = table { 
-	     SF Sg Nom => pien;
-	     SF Sg Dat => z + "u";
-	     SF Sg Instr => z + "em";
-	     SF Sg Loc => z + "u";
-	     SF Sg VocP => z + "u";
-	     SF Sg _ => z + "a";
-	     SF Pl Gen => y + "i";
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => z + "e" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ść,
--- for liść
--- 72 paradigm by Grzegorz Jagodziński 
--- 72 by Nowak
--- oper nLisc for liść in GF lexicon
-  
-  oper lisc_CAL_MI : Str -> CommNoun = \lisc ->
-	 let
-	   x = consAlt lisc; -- liśc
-	   y = consLength x; -- liści
-	 in
-     	 { s = table { 
-	     SF Sg Nom => lisc;
-	     SF Sg Gen => y + "a";
-	     SF Sg Dat => y + "owi";
-	     SF Sg Acc => lisc;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => y + "u";
-	     SF Pl Gen => x + "i";
-	     SF Pl Dat => y + "om";
-	     SF Pl Instr => lisc + "mi";
-	     SF Pl Loc => y + "ach";
-	     SF Pl _ => y + "e" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in 
--- a hardened consonant: -ż, -rz, -c, -cz, -dz
--- (gorąc, piec, Kalisz, tłuszcz, bicz, Spisz, Zgierz, Paryż, Łowicz)
--- 73 paradigm by Grzegorz Jagodziński 
--- 73_5 by Nowak
--- oper nKoc for piec, tłuszcz, Paryż in GF lexicon
-  
-  oper hardened_End_MI_1 : Str -> CommNoun = \koc ->
-	 let
-	   x = koc; 
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "e";
-	     SF Sg VocP => x + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Nom => x + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in 
--- a hardened consonant: -ż, -rz, -c, -cz, -dz
--- (kapelusz, księżyc)
--- 74 paradigm by Grzegorz Jagodziński 
--- 74 by Nowak
--- oper nWiersz for księżyc, kapelusz in GF lexicon
-
-  oper hardened_End_MI_2 : Str -> CommNoun = \wiersz ->
-	 let
-	   x = wiersz; 
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => x + "em";
-	     SF Sg Loc => x + "e";
-	     SF Sg VocP => x + "e";
-	     SF Sg _ => x + "a";
-	     SF Pl Gen => x + "y";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate for "dzień"
--- 76** paradigm by Grzegorz Jagodziński 
--- 76** by Nowak
--- oper nDzien for dzień in GF lexicon
-
-  oper dzien_MI : Str -> CommNoun = \dzien ->
-	 let
-	   x = fleetingLettersMinus dzien; -- dń
-	   y = consAlt x; -- dń:dn
-	   z = consLength y; -- dn:dni
-	 in
-     	 { s = table { 
-	     SF Sg Nom => dzien;
-	     SF Sg Dat => z + "u";
-	     SF Sg Instr => z + "em";
-	     SF Sg Loc => z + "e";
-	     SF Sg VocP => z + "e";
-	     SF Sg _ => z + "a";
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => y + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -k, -g
--- consonant lengthening 
--- (ranek, skrawek, Owtock, Hamburg, drąg)
--- 77 paradigm by Grzegorz Jagodziński 
--- 77_1 by Nowak
--- oper nKajak for język, patyk in GF lexicon
-
-  oper g_k_End_CL_MI_1 : Str -> CommNoun = \kajak ->
-	 let
-	   x = kajak;
-	   y = consLength kajak; -- kajaki
-	 in
-     	 { s = table { 
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Instr => y + "em";
-	     SF Sg Loc => x + "u";
-	     SF Sg VocP => x + "u";
-	     SF Sg _ => x ;
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ek
--- fleeting e minus
--- (fiołek, garnek, podkoszulek, przecinek, Włocławek)
--- 77* paradigm by Grzegorz Jagodziński 
--- 70* by Nowak
--- oper nMlotek for ołówek in GF lexicon
-
-  oper k_End_CL_FleetingEminus_MI : Str -> CommNoun = \mlotek ->
-	 let
-	   x = fleetingEminus mlotek; -- mlotk
-	   y = consLength x; -- mlotki
-	 in
-     	 { s = table { 
-	     SF Sg Nom => mlotek;
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => mlotek;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ch
--- (bebech, Wałbrzych, brzuch, łańcuch)
--- 78 paradigm by Grzegorz Jagodziński 
--- 78_1 by Nowak
--- oper nMiech for brzuch in GF lexicon
-
-  oper ch_End_MI : Str -> CommNoun = \miech ->
-	 let
-	   x = miech;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "a";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in a hard consonant
--- consonant alternation and lengthening
--- 82 paradigm by Grzegorz Jagodziński 
--- 82_1_1 by Nowak
--- oper nSad for samotot, uniwersytet, port, sufit in GF lexicon
-
-  oper hard_End_CAL_MI : Str -> CommNoun = \sad ->
-	 let
-	   x = sad;
-	   y = consLength (consAlt x); -- sadzi
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in a hard consonant
--- consonant lengthening
--- 82 paradigm by Grzegorz Jagodziński 
--- 82_1_2 by Nowak
--- oper nDym for dym, dywan, sklep in GF lexicon
-
-  oper hard_End_CL_MI : Str -> CommNoun = \dym ->
-	 let
-	   x = dym;
-	   y = consLength x; -- dymi
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in 
--- a hard consonant -ł, -r
--- consonant alternation
--- (artykuł, finał, kryształ, materiał)
--- 82 paradigm by Grzegorz Jagodziński 
--- 82_2 + 82_3 by Nowak
--- oper nWal for przemysł, papier, rower in GF lexicon
- 
-  oper hard_End_CA_MI : Str -> CommNoun = \wal ->
-	 let
-	   x = wal;
-	   y = consAlt x; -- wał:wal
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ó + hard consonant
--- vowel and consonant alternation
--- (rosół, zespół, otwór, wodór )
--- 82' paradigm by Grzegorz Jagodziński 
--- 82' by Nowak
--- oper nDol for stól in GF lexicon
-
-  oper hard_End_VA1_CA_MI : Str -> CommNoun = \dol ->
-	 let
-	   x = vowAlt1 dol; -- dół:doł
-	   y = consAlt x; -- doł:dol
-	 in
-     	 { s = table { 
-	     SF Sg Nom => dol;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => dol;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-       
-       
--- oper for masculine inanimate ending in -ó + hard consonant
--- vowel and consonant alternation
--- (obwód, wschód, przewód, rozwód)
--- 82' paradigm by Grzegorz Jagodziński 
--- 82' by Nowak
--- oper nOgrod for ogród, lód, samochód in GF lexicon
-
-  oper hard_End_VA1_CAL_MI : Str -> CommNoun = \ogrod ->
-	let
-	  x = vowAlt1 ogrod; -- ogród:ogrod
-	  y = consLength (consAlt x); -- ogrod:ogrodz:ogrodzi
-	 in
-     	{ s = table { 
-	    SF Sg Nom => ogrod;
-	    SF Sg Gen => x + "u";
-	    SF Sg Dat => x + "owi";
-	    SF Sg Acc => ogrod;
-	    SF Sg Instr => x + "em";
-	    SF Sg _ => y + "e";
-	    SF Pl Gen => x + "ów";
-	    SF Pl Dat => x + "om";
-	    SF Pl Instr => x + "ami";
-	    SF Pl Loc => x + "ach";
-	    SF Pl _ => x + "y" 
-            };
-	  g = Masc Inanimate
-	};
-      
-
--- oper for masculine inanimate ending in a hard consonant
--- vowel alternation,
--- consonant alternation and lengthening
--- (najazd, wszechświat, przyjazd)
--- 82^ paradigm by Grzegorz Jagodziński 
--- 82^_1_1 by Nowak
--- oper nKwiat for kwiat in GF lexicon
-
-  oper hard_End_VA2_CAL_MI : Str -> CommNoun = \kwiat ->
-	 let
-	   x = kwiat;
-	   y = vowAlt2 kwiat; -- kwiet
-	   z = consLength (consAlt y); -- kwiet:kwiec:kwieci
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => z + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in a hard consonant
--- vowel alternation,
--- consonant lengthening
--- 82^ paradigm by Grzegorz Jagodziński 
--- 82^_1_2 by Nowak
--- oper nLas for las in GF lexicon
-
-  oper hard_End_VA2_CL_MI : Str -> CommNoun = \las ->
-	 let
-	   x = las;
-	   y = consLength (vowAlt2 x); -- las:les:lesi
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
-
--- oper for masculine inanimate for wiatr
--- vowel alternation,
--- consonant alternation
--- 82^ paradigm by Grzegorz Jagodziński 
--- 82^_2 by Nowak
--- oper nWiatr for wiart in GF lexicon
-  
-  oper wiatr_VA2_CA_MI : Str -> CommNoun = \wiatr ->
-	 let
-	   x = wiatr;
-	   y = consAlt (vowAlt2 x); -- wiatr:wietr:wietrz
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate for "popiół"
--- vowel and consonant alternation
--- 82^' paradigm by Grzegorz Jagodziński 
--- 82^' by Nowak
--- oper nPopiol for popiół in GF lexicon
-
-  oper popiol_VA2_CA_MI : Str -> CommNoun = \popiol ->
-	 let
-	   x = vowAlt1 popiol; -- popiół:popioł
-	   y = consAlt (vowAlt2 x); -- popioł:popieł:popiel
-	 in
-     	 { s = table { 
-	     SF Sg Nom => popiol;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => popiol;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => y + "e";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ój
--- vowel alternation
--- last minus
--- (powój, drobnoustrój, strój, zwój)
--- 85' paradigm by Grzegorz Jagodziński (in the big table)
--- 85'_1 by Nowak
--- oper nPokoj for pokój in GF lexicon
-
-  oper onlySgNoun : Str -> CommNoun = \pokoj ->
-	 let
-	   x = vowAlt1 pokoj; -- pokój:pokoj
-	   y = last1Minus x; -- poko
-	 in
-     	 { s = table { 
-	     SF Sg Nom => pokoj;
-	     SF Sg Gen => x + "u";
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => pokoj;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl _ => "[" ++ pokoj ++ [": the plural form does not exist]"]
-             };
-	   g = Masc Inanimate
-	 };
-
--- oper for masculine inanimate ending in a vowel + -j
--- (obyczaj, tramwaj, przywilej, klej) or in a 
--- hardened consonant -ż, -rz, -c, -cz, -dz
--- (Asyż, marsz, pieprz, szkic, wyż, mosiądz)
--- 85 paradigm by Grzegorz Jagodziński 
--- 85_1 + 85_3 by Nowak
--- oper nGaj for kraj, olej, deszcz, owoc in GF lexicon
-
-  oper vowel_j_or_handened_End_MI : Str -> CommNoun = \gaj ->
-	 let
-	   x = gaj;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "e" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in consonants -g, -k
--- (blok, dotyk, Kołobrzeg, Bug)
--- 87 paradigm by Grzegorz Jagodziński 
--- 87 by Nowak
--- oper nBrzeg for bank, kark in GF lexicon
-  
-  oper g_k_End_CL_MI_2 : Str -> CommNoun = \brzeg ->
-	 let
-	   x = brzeg;
-	   y = consLength x; 
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate only for rok
--- 87@ paradigm by Grzegorz Jagodziński 
--- 87@ by Nowak
--- oper nRok for rok in GF lexicon
-
-  oper rok_UnregularyPl_CL_MI : Str -> Str -> CommNoun = \rok, lata ->
-	 let
-	   x = rok;
-	   y = consLength x;
-	   z = last1Minus lata;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => z;
-	     SF Pl Dat => z + "om";
-	     SF Pl Instr => z + "ami";
-	     SF Pl Loc => z + "ach";
-	     SF Pl _ => z + "a" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -óg
--- (stóg, głóg, barłóg)
--- 87' paradigm by Grzegorz Jagodziński 
--- 87' by Nowak
--- oper nProg for róg in GF lexicon
-  
-  oper ug_End_VA1_CL_MI : Str -> CommNoun = \prog ->
-	 let
-	   x = vowAlt1 prog;
-	   y = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => prog;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => prog;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ek
--- (poniedziałek, obiadek, proszek, początek)
--- 87* paradigm by Grzegorz Jagodziński 
--- 87* by Nowak
--- oper nStatek for piasek in GF lexicon
-
-  oper k_End_CL_FleetingEmins_MI : Str -> CommNoun = \statek ->
-	 let
-	   x = fleetingEminus statek; -- statk
-	   y = consLength x;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => statek;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => statek;
-	     SF Sg Instr => y + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "i" 
-             };
-	   g = Masc Inanimate
-	 };
-
-
--- oper for masculine inanimate ending in -ch and for dom
--- (oddech, uśmiech, zamach, strych)
--- 88 paradigm by Grzegorz Jagodziński 
--- 88_1 + 88_2 by Nowak
--- oper nDom for dom, dach in GF lexicon
-
-  oper ch_End_dom_MI : Str -> CommNoun = \dom ->
-	 let
-	   x = dom;
-	 in
-     	 { s = table { 
-	     SF Sg Nom => x;
-	     SF Sg Dat => x + "owi";
-	     SF Sg Acc => x;
-	     SF Sg Instr => x + "em";
-	     SF Sg _ => x + "u";
-	     SF Pl Gen => x + "ów";
-	     SF Pl Dat => x + "om";
-	     SF Pl Instr => x + "ami";
-	     SF Pl Loc => x + "ach";
-	     SF Pl _ => x + "y" 
-             };
-	   g = Masc Inanimate
-	 };
-	 
---8 Patterns of auxiliary operations mostly used for nouns 
-
--- for consonant alternation k:c, g:dz at the end of the subject, 
--- or at the end of the noun
-  
-  oper consAlt : Str -> Str = \s -> 
-	 case s of 
-	 { x + "ch" + ("a"|"i"|"e"|"o"|"") => x + "sz" ; -- mucha:musze, klecha:klesze
-	   x + "ch" + "y" => x + "s" ; -- głuchy:głusi
-	   x + "sn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śn" ; -- wiosna:wiośnie
-	   x + "st" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śc" ; -- artysta:artyście
-	   x + "sł" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śl" ; -- krzesło:krześle, masło:maśle
-	   x + "dz" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ż" ; -- ksiądz:księża
-	   x + "dź" + ("a"|"i"|"e"|"o"|"y"|"") => x + "dz" ; -- łódź:łodzi
-	   x + "zn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "źn" ; -- meżczyzna:mężczyźnie
-	   x + "zd" + ("a"|"i"|"e"|"o"|"y"|"") => x + "źdz" ; -- gniazdo:gnieździe
-	   x + "ni" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ń" ; -- danie:dań
-	   x + "ci" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ć" ;
-	   x + "sz" + ("a"|"i"|"e"|"o"|"y"|"") => x + "s" ;
-	   -----------------------------------------------------------------------
-	   -- The alternation of one consonant has to be behind the alternation of
-	   -- two other consonants, else they aren't checked.
-	   x + "o" + "k" + "o" => "o" + "cz" ;-- oko:oczy
-	   x + "ć" + ("a"|"i"|"e"|"o"|"y"|"") => x + "c" ; --sieć:sieci
-	   x + "j" + "c" => x + "j" + "cz" ; -- ojciec:ojc:ojcze
-	   x + "op" + "c" => x + "op" + "cz" ; -- chłopiec:chłopc:chłopcze
-	   x + "ie" + "c" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ie" + "ć" ; -- dziecko:dziećmi
-	   x + "óg" + "" => x + "óż" ; -- bóg:boże
-	   x + "l" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ł" ; -- przyjaciel:przyjaciół
-	   x + "ł" + ("a"|"i"|"e"|"o"|"y"|"") => x + "l" ; -- siła:sile, biegły:biegli
-	   x + "yn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "yn" ;
-	   x + "n" + ("a"|"i"|"e"|"o"|"y"|"") => x + "n" ;
-	   x + "ń" + ("a"|"i"|"e"|"o"|"y"|"") => x + "n" ; -- dzień:dni ,pień:pni, cień:cieni
-	   x + "r" + ("a"|"i"|"e"|"o"|"y"|"") => x + "rz" ; -- nora:norze, psychiatra:psychiatrze
-	   x + "ś" + ("a"|"i"|"e"|"o"|"y"|"") => x + "s" ; -- pierś:piersi
-	   x + "ź" + ("a"|"i"|"e"|"o"|"y"|"") => x + "z" ;
-	   x + ("g"|"d") + ("a"|"i"|"e"|"o"|"y"|"") => x + "dz" ; -- noga:nodze; sługa:słudze
-	   x + ("k"|"t") + ("a"|"i"|"e"|"o"|"y"|"") => x + "c" ;  -- apteka:aptece; moneta:monecie, tata:tacie
-	   x + "c" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ć" ; --brat:bracie:braćmi	   
-	   x + "ż" + ("a"|"i"|"e"|"o"|"y"|"") => x + "z" ;
-	   _ => last1Minus s  
-	 } ;
-
- 
-
--- Auxiliary operation for consonant lengthening 
--- The consonant in polish is lengthened by a vowel "i"
--- łódź:łodzi, krew:krwi, wieś:wsi
-
-  oper consLength : Str -> Str = \s ->
-	 case s of 
-	 { x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + ("a"|"u"|"e"|"o"|"")  
-	     => x + y + "i" 
-	 } ;
-       
--- Auxiliary operation for vowel alternation 
--- o:ó (droga:dróg); 
--- ó:o (nierób:nieroba, łódź:łodzi)
-
-  oper vowAlt1 : Str -> Str = \s ->
-	 case s of 
-	 { --------------- o:ó -----------------------------------
-	   -- 1. nouns ending in a vowel after a consonant
-	   -- or in a consonant: woda:wód , doba:dób
-	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|   
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + ("a"|"e"|"o"|"y"|"") => u + "ó" + w ;
-	   -- 2. nouns ending in a vowel after two consonants
-	   -- or in two consonants
-	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + ("a"|"e"|"o"|"y"|"") => u + "ó" + w + x ;
-	   -- 3. nouns ending in a vowel after three consonants,
-	   -- needed for declension of siostra in nSzkola
-	   -- siostra:sióstr 
-	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + x@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + y@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"")
-	     + ("a"|"e"|"o"|"y"|"")=> u + "ó" + w + x + y;
-	   -------------------------------------------------------
-	   --------------- ó:o -----------------------------------
-	   -------------------------------------------------------
-	   ---- 1. nouns ending in a vowel after a consonant
-	   --  łódź:łodzi, sól:soli 
-	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + ("a"|"e"|"o"|"y"|"") => u + "o" + w ;
-	   ---- 2. nouns ending in a vowel after two consonants
-	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + ("a"|"e"|"o"|"y"|"") => u + "o" + w + x ;
-	   ---- 3. nouns ending in a vowel after three consonants
-	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + x@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + y@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"")
-	     + ("a"|"e"|"o"|"y"|"")=> u + "o" + w + x + y;
-	   _ => s
-	     } ;
-
-
--- Auxiliary operation for the following vowel alternations:
--- a:e (sąsiad:sąsiedzie, światło:świetle),
--- o:e (anioł:aniele, uczony:uczeni),
--- e:o (nasienie: nasiona, ziele:zioła),
--- ę:o (imię:imiona, znamię:znamiona)
-
-  oper vowAlt2 : Str -> Str = \s ->
-	 case s of 
-	 { ------------------- a:e, o:e, ó:e -----------------------
-	   w + ("a"|"o"|"ó") + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-				"g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-				"p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-				"w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + ("a"|"e"|"o"|"y"|"") => w + "e" + x + y ;
-	   ----------------------- e:o, ę:o ------------------------
-	   w + ("e"|"ę") + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-				"g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-				"p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-				"w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + y@("a"|"e"|"o"|"y"|"i"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
-	     + ("a"|"e"|"o"|"y"|"i"|"") => w + "o" + x + y ;
-	   _ => s
-	 } ;
-
--- Auxiliary operation for a vowel alternation:
--- ą:ę (gołąb:gołębia, mąż:męża, ksiądz:księdza),
--- ę:ą (ręka:rąk, cielę:cieląt)
-
-  oper vowAlt3 : Str -> Str = \s ->
-	 case s of 
-	 { ---------------------- ą:ę -----------------------
-	   -- noun ending in a consonant
-	   x + "ą" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"sł"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd"|"") => x + "ę" + y ; 
-          --------------------- ą:ę -----------------------
-	   -- noun ending in a vowel
-	   x + "ą" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd") 
-	     + ("a"|"o"|"y"|"i") => x + "ę" + y ;
-          --------------------- ę:ą -----------------------
-	   -- noun ending in a consonant
-	   x + "ę" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd"|"") => x + "ą" + y ; 
-         --------------------- ę:ą -----------------------
-	   -- noun ending in a vowel
-	   x + "ę" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd") 
-	     + ("a"|"o"|"y"|"i") => x + "ą" + y ;
-	   _ => s 
-	 } ;
-
-
--- The predefined opers like init, drop, take, don't 
--- work correctly with the letters, that are typical only for 
--- polish language. Therefore I must define my own function 
--- (last1Minus, last7Minus, my5Last, my8Last)
--- that work with polish signs (ą, ć, ę, ł, ń, ś, ó, ź, ż, dź, dż).
--- These opers are needed f.e. for the verb conjugation.
-
-
--- last1Minus functions work with first (until eight) letters
--- of a word 
-
-  oper last1Minus : Str -> Str = \s ->
-	 case s of 
-	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
-	   _ => s
-	 } ;
-     
-       
-  oper last2Minus : Str -> Str = \s ->
-	 case s of 
-	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
-	   _ => s
-	 } ;
-       
-              
-  oper last3Minus : Str -> Str = \s ->
-	 case s of 
-	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
-	   _ => s
-	 } ;
-       
-
-  oper last4Minus : Str -> Str = \s ->
-	 case s of 
-	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
-	   _ => s
-	 } ;
-
-       
-  oper last5Minus : Str -> Str = \s ->
-	 case s of 
-	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
-            _ => s
-	 } ;
-       
-       
-----------------------------------------------------------------------------------------
--- my1Last functions work with last (until eight) letters
--- of words
-
-  oper my1Last : Str -> Str = \s ->
-	 case s of 
-	 { t + z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => z
-	 } ;
-       
-
-  oper my2Last: Str -> Str = \s ->
-	 case s of 
-	 { t + y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => y + z
-	 } ;
-       
-       
-  oper my3Last : Str -> Str = \s ->
-	 case s of 
-	 { t + x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => x + y + z;
-	   _ => s
-	 } ;
-
-
-  oper my4Last : Str -> Str = \s ->
-	 case s of 
-	 { t + w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") +
-	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w + x + y + z
-	 } ;
-
-       
-       
-  oper my5Last : Str -> Str = \s ->
-	 case s of 
-	 { t + u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => u + w + x + y + z
-	 } ;
-
-
-  oper my6Last : Str -> Str = \s ->
-	 case s of 
-	 { r + t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => t+ u + w + x + y + z
-	 } ;
-
-
-  oper my7Last : Str -> Str = \s ->
-	 case s of 
-	 { r + q@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     => q + t + u + w + x + y + z
-	 } ;
-
-
-
-  oper my8Last : Str -> Str = \s ->
-	 case s of 
-	 { r + p@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     q@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
-	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
-	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
-	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
-		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
-		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
-		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
-	     => p + q + t + u + w + x + y + z
-	 } ;
-
-
-       
--- Auxiliary operation for fleeting e-plus for
--- nouns ending in a vowel like matka
--- subject ending in more than one consonant
--- s. St. Szober, page 184
--- matka:matek, wojna:wojen, skrzydło:skrzydeł 
-
-  oper fleetingEplus : Str -> Str = \s ->
-      	 case s of {
-	   x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
-	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
-	     + ("a"|"o"|"y"|"")  => x + y + "e" + z 
-	 } ;
-
-       
--- Auxiliary operation for fleeting e-minus for
--- nouns ending in a consonant like krew, konew
--- wesz:wszy, krew:krwi, młotek:młotka
-
-  oper fleetingEminus : Str -> Str = \krew ->
-	 case krew of 
-	 { w + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
-	     + "e" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			  "w"|"z"|"ź"|"ż"|"dź"|"dż") => w + x + y ;
-	   x + "ie" => x + "i" ;
-	   x + "e" => x
-	 } ;
-
-
-  
--- Auxiliary operation for fleeting ie-plus for
--- nouns like mgła, owca
--- mgła:mgiel, owca:owiec
-
-  oper fleetingIEplus : Str -> Str = \s ->
-      	 case s of {
-	   x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
-	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
-	     + ("a"|"o"|"y"|"")  => x + y + "ie" + z 
-	 } ;
-       
-
-
--- Auxiliary operation for fleeting ie-minus for
--- nouns ending in a consonant like wieś
--- wieś:wsi, pies:psa, pień:pnia
-
-  oper fleetingIEminus : Str -> Str = \wies ->
-	 case wies of 
-	 { w + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|		  
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
-	     + "ie" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-			   "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|
-			   "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-			   "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
-	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
-		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|
-		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
-		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") => w + x + y + z ;
-	   x + "ie" => x 
-	 } ;
-
-
--- An operation for fleeting letters-minus for
--- nouns ending in a consonant like chrzest, dzień
--- Not only "ie", but other letters like "zie", "est"
--- must sometimes be put away together.  
--- chrzest:chrztu, dzień:dnia
-
-	    oper fleetingLettersMinus : Str -> Str = \s ->
-		   case s of 
-		   { d + "zie" + "ń" => d + "n" ; -- dzień:dń
-		     d + "est" => d + "t" -- chrzest:chrzt
-		   } ;
-
+--# -path=.:../prelude:../common
+--# -coding=utf8
+
+-- This file is automaticaly generated by generate_tables_sgjp.
+-- That program copies part of its source code to the output,
+-- therefore this file is covered by the LGPLv3 as well as the
+-- program itself. 
+-- It is also possible that the input of the program was distributed
+-- under some license. If it is GPL or similar my interpretation is that
+-- this file is _not_ a copy of an input and is covered by LGPLv3, while 
+-- the dictionary paired with this file is covered by both LGPLv3 and 
+-- the license of the input.
+-- Be careful not to violate the copyright low!
+-- For details see http://www.mimuw.edu.pl/~asl/tabeleusz/ .
+
+-- DO NOT EDIT THIS FILE
+
+resource NounMorphoPol = ResPol ** open Prelude, (Predef=Predef) in {
+
+     flags  coding=utf8;
+
+    oper mkN: (SubstForm => Str) -> Gender -> CommNoun;
+    oper mkN tab gen = { s = tab; g = gen };
+
+    oper mkNTable0000: Str -> SubstForm => Str; --%
+    oper mkNTable0000 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0001: Str -> SubstForm => Str; --%
+    oper mkNTable0001 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "-u";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0002: Str -> SubstForm => Str; --%
+    oper mkNTable0002 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0003: Str -> SubstForm => Str; --%
+    oper mkNTable0003 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0004: Str -> SubstForm => Str; --%
+    oper mkNTable0004 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ek";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0006: Str -> SubstForm => Str; --%
+    oper mkNTable0006 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "lowie";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "li";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "lowie"
+    };
+
+    oper mkNTable0007: Str -> SubstForm => Str; --%
+    oper mkNTable0007 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0008: Str -> SubstForm => Str; --%
+    oper mkNTable0008 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "owów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable0009: Str -> SubstForm => Str; --%
+    oper mkNTable0009 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "ych";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0010: Str -> SubstForm => Str; --%
+    oper mkNTable0010 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "ej";
+      SF Sg Dat => x + "ej";
+      SF Sg Acc => x + "ą";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ej";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0011: Str -> SubstForm => Str; --%
+    oper mkNTable0011 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0012: Str -> SubstForm => Str; --%
+    oper mkNTable0012 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0013: Str -> SubstForm => Str; --%
+    oper mkNTable0013 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cowie";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cowie"
+    };
+
+    oper mkNTable0015: Str -> SubstForm => Str; --%
+    oper mkNTable0015 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "adaś";
+      SF Sg Gen => x + "adasia";
+      SF Sg Dat => x + "adasiowi";
+      SF Sg Acc => x + "adasia";
+      SF Sg Instr => x + "adasiem";
+      SF Sg Loc => x + "adasiu";
+      SF Sg Voc => x + "adasiu";
+      SF Pl Nom => x + "adasie";
+      SF Pl Gen => x + "Adasiów";
+      SF Pl Dat => x + "adasiom";
+      SF Pl Acc => x + "Adasiów";
+      SF Pl Instr => x + "adasiami";
+      SF Pl Loc => x + "adasiach";
+      SF Pl Voc => x + "adasie"
+    };
+
+    oper mkNTable0016: Str -> SubstForm => Str; --%
+    oper mkNTable0016 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0017: Str -> SubstForm => Str; --%
+    oper mkNTable0017 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0018: Str -> SubstForm => Str; --%
+    oper mkNTable0018 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ia";
+      SF Sg Gen => x + "ii";
+      SF Sg Dat => x + "ii";
+      SF Sg Acc => x + "ię";
+      SF Sg Instr => x + "ią";
+      SF Sg Loc => x + "ii";
+      SF Sg Voc => x + "io";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "yj";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0021: Str -> SubstForm => Str; --%
+    oper mkNTable0021 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "k";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ka";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ków";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable0022: Str -> SubstForm => Str; --%
+    oper mkNTable0022 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ta";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "t";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0023: Str -> SubstForm => Str; --%
+    oper mkNTable0023 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "k";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0024: Str -> SubstForm => Str; --%
+    oper mkNTable0024 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable0025: Str -> SubstForm => Str; --%
+    oper mkNTable0025 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "in";
+      SF Sg Gen => x + "ina";
+      SF Sg Dat => x + "inowi";
+      SF Sg Acc => x + "ina";
+      SF Sg Instr => x + "inem";
+      SF Sg Loc => x + "inie";
+      SF Sg Voc => x + "inie";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0026: Str -> SubstForm => Str; --%
+    oper mkNTable0026 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ga";
+      SF Sg Gen => x + "gi";
+      SF Sg Dat => x + "dze";
+      SF Sg Acc => x + "gę";
+      SF Sg Instr => x + "gą";
+      SF Sg Loc => x + "dze";
+      SF Sg Voc => x + "go";
+      SF Pl Nom => x + "gi";
+      SF Pl Gen => x + "g";
+      SF Pl Dat => x + "gom";
+      SF Pl Acc => x + "gi";
+      SF Pl Instr => x + "gami";
+      SF Pl Loc => x + "gach";
+      SF Pl Voc => x + "gi"
+    };
+
+    oper mkNTable0028: Str -> SubstForm => Str; --%
+    oper mkNTable0028 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "towie";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "towie"
+    };
+
+    oper mkNTable0029: Str -> SubstForm => Str; --%
+    oper mkNTable0029 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Agata";
+      SF Sg Gen => x + "agaty";
+      SF Sg Dat => x + "agacie";
+      SF Sg Acc => x + "Agatę";
+      SF Sg Instr => x + "Agatą";
+      SF Sg Loc => x + "agacie";
+      SF Sg Voc => x + "Agato";
+      SF Pl Nom => x + "agaty";
+      SF Pl Gen => x + "agat";
+      SF Pl Dat => x + "agatom";
+      SF Pl Acc => x + "agaty";
+      SF Pl Instr => x + "agatami";
+      SF Pl Loc => x + "agatach";
+      SF Pl Voc => x + "agaty"
+    };
+
+    oper mkNTable0030: Str -> SubstForm => Str; --%
+    oper mkNTable0030 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nia";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "nię";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0031: Str -> SubstForm => Str; --%
+    oper mkNTable0031 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sia";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "się";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "ś";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable0032: Str -> SubstForm => Str; --%
+    oper mkNTable0032 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0033: Str -> SubstForm => Str; --%
+    oper mkNTable0033 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Ajax";
+      SF Sg Gen => x + "ajaksu";
+      SF Sg Dat => x + "ajaksowi";
+      SF Sg Acc => x + "Ajax";
+      SF Sg Instr => x + "ajaksem";
+      SF Sg Loc => x + "ajaksie";
+      SF Sg Voc => x + "ajaksie";
+      SF Pl Nom => x + "ajaksy";
+      SF Pl Gen => x + "ajaksów";
+      SF Pl Dat => x + "ajaksom";
+      SF Pl Acc => x + "ajaksy";
+      SF Pl Instr => x + "ajaksami";
+      SF Pl Loc => x + "ajaksach";
+      SF Pl Voc => x + "ajaksy"
+    };
+
+    oper mkNTable0035: Str -> SubstForm => Str; --%
+    oper mkNTable0035 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "albert";
+      SF Sg Gen => x + "alberta";
+      SF Sg Dat => x + "albertowi";
+      SF Sg Acc => x + "alberta";
+      SF Sg Instr => x + "albertem";
+      SF Sg Loc => x + "albercie";
+      SF Sg Voc => x + "albercie";
+      SF Pl Nom => x + "Albertowie";
+      SF Pl Gen => x + "albertów";
+      SF Pl Dat => x + "albertom";
+      SF Pl Acc => x + "albertów";
+      SF Pl Instr => x + "albertami";
+      SF Pl Loc => x + "albertach";
+      SF Pl Voc => x + "Albertowie"
+    };
+
+    oper mkNTable0036: Str -> SubstForm => Str; --%
+    oper mkNTable0036 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "alberta";
+      SF Sg Gen => x + "alberty";
+      SF Sg Dat => x + "albercie";
+      SF Sg Acc => x + "Albertę";
+      SF Sg Instr => x + "Albertą";
+      SF Sg Loc => x + "albercie";
+      SF Sg Voc => x + "Alberto";
+      SF Pl Nom => x + "alberty";
+      SF Pl Gen => x + "albert";
+      SF Pl Dat => x + "albertom";
+      SF Pl Acc => x + "alberty";
+      SF Pl Instr => x + "albertami";
+      SF Pl Loc => x + "albertach";
+      SF Pl Voc => x + "alberty"
+    };
+
+    oper mkNTable0037: Str -> SubstForm => Str; --%
+    oper mkNTable0037 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Alberto";
+      SF Sg Gen => x + "alberta";
+      SF Sg Dat => x + "albertowi";
+      SF Sg Acc => x + "alberta";
+      SF Sg Instr => x + "albertem";
+      SF Sg Loc => x + "albercie";
+      SF Sg Voc => x + "Alberto";
+      SF Pl Nom => x + "Albertowie";
+      SF Pl Gen => x + "albertów";
+      SF Pl Dat => x + "albertom";
+      SF Pl Acc => x + "albertów";
+      SF Pl Instr => x + "albertami";
+      SF Pl Loc => x + "albertach";
+      SF Pl Voc => x + "Albertowie"
+    };
+
+    oper mkNTable0038: Str -> SubstForm => Str; --%
+    oper mkNTable0038 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "m";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "ch";
+      SF Pl Instr => x + "mi";
+      SF Pl Loc => x + "ch";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0039: Str -> SubstForm => Str; --%
+    oper mkNTable0039 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0040: Str -> SubstForm => Str; --%
+    oper mkNTable0040 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "albertyna";
+      SF Sg Gen => x + "albertyny";
+      SF Sg Dat => x + "albertynie";
+      SF Sg Acc => x + "Albertynę";
+      SF Sg Instr => x + "Albertyną";
+      SF Sg Loc => x + "albertynie";
+      SF Sg Voc => x + "Albertyno";
+      SF Pl Nom => x + "albertyny";
+      SF Pl Gen => x + "albertyn";
+      SF Pl Dat => x + "albertynom";
+      SF Pl Acc => x + "albertyny";
+      SF Pl Instr => x + "albertynami";
+      SF Pl Loc => x + "albertynach";
+      SF Pl Voc => x + "albertyny"
+    };
+
+    oper mkNTable0042: Str -> SubstForm => Str; --%
+    oper mkNTable0042 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Alek";
+      SF Sg Gen => x + "alka";
+      SF Sg Dat => x + "Alkowi";
+      SF Sg Acc => x + "alka";
+      SF Sg Instr => x + "Alkiem";
+      SF Sg Loc => x + "Alku";
+      SF Sg Voc => x + "Alku";
+      SF Pl Nom => x + "alkowie";
+      SF Pl Gen => x + "alków";
+      SF Pl Dat => x + "alkom";
+      SF Pl Acc => x + "alków";
+      SF Pl Instr => x + "alkami";
+      SF Pl Loc => x + "alkach";
+      SF Pl Voc => x + "alkowie"
+    };
+
+    oper mkNTable0043: Str -> SubstForm => Str; --%
+    oper mkNTable0043 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "rowie";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "rów";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "rowie"
+    };
+
+    oper mkNTable0044: Str -> SubstForm => Str; --%
+    oper mkNTable0044 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ra";
+      SF Sg Gen => x + "ry";
+      SF Sg Dat => x + "rze";
+      SF Sg Acc => x + "rę";
+      SF Sg Instr => x + "rą";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "ro";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "er";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0045: Str -> SubstForm => Str; --%
+    oper mkNTable0045 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owu";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "owów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable0047: Str -> SubstForm => Str; --%
+    oper mkNTable0047 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0049: Str -> SubstForm => Str; --%
+    oper mkNTable0049 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0050: Str -> SubstForm => Str; --%
+    oper mkNTable0050 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Ali";
+      SF Sg Gen => x + "Alego";
+      SF Sg Dat => x + "Alemu";
+      SF Sg Acc => x + "Alego";
+      SF Sg Instr => x + "alim";
+      SF Sg Loc => x + "alim";
+      SF Sg Voc => x + "Ali";
+      SF Pl Nom => x + "Alowie";
+      SF Pl Gen => x + "Alich";
+      SF Pl Dat => x + "alim";
+      SF Pl Acc => x + "Alich";
+      SF Pl Instr => x + "Alimi";
+      SF Pl Loc => x + "Alich";
+      SF Pl Voc => x + "Alowie"
+    };
+
+    oper mkNTable0051: Str -> SubstForm => Str; --%
+    oper mkNTable0051 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0052: Str -> SubstForm => Str; --%
+    oper mkNTable0052 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "alka";
+      SF Sg Gen => x + "alki";
+      SF Sg Dat => x + "alce";
+      SF Sg Acc => x + "alkę";
+      SF Sg Instr => x + "alką";
+      SF Sg Loc => x + "alce";
+      SF Sg Voc => x + "alko";
+      SF Pl Nom => x + "alki";
+      SF Pl Gen => x + "Alek";
+      SF Pl Dat => x + "alkom";
+      SF Pl Acc => x + "alki";
+      SF Pl Instr => x + "alkami";
+      SF Pl Loc => x + "alkach";
+      SF Pl Voc => x + "alki"
+    };
+
+    oper mkNTable0055: Str -> SubstForm => Str; --%
+    oper mkNTable0055 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "alzheimer";
+      SF Sg Gen => x + "alzheimera";
+      SF Sg Dat => x + "alzheimerowi";
+      SF Sg Acc => x + "alzheimera";
+      SF Sg Instr => x + "alzheimerem";
+      SF Sg Loc => x + "alzheimerze";
+      SF Sg Voc => x + "alzheimerze";
+      SF Pl Nom => x + "Alzheimerowie";
+      SF Pl Gen => x + "alzheimerów";
+      SF Pl Dat => x + "alzheimerom";
+      SF Pl Acc => x + "alzheimerów";
+      SF Pl Instr => x + "alzheimerami";
+      SF Pl Loc => x + "alzheimerach";
+      SF Pl Voc => x + "Alzheimerowie"
+    };
+
+    oper mkNTable0056: Str -> SubstForm => Str; --%
+    oper mkNTable0056 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ja";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ję";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "jo";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable0057: Str -> SubstForm => Str; --%
+    oper mkNTable0057 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "j";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0058: Str -> SubstForm => Str; --%
+    oper mkNTable0058 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Ameryka";
+      SF Sg Gen => x + "ameryki";
+      SF Sg Dat => x + "Ameryce";
+      SF Sg Acc => x + "Amerykę";
+      SF Sg Instr => x + "Ameryką";
+      SF Sg Loc => x + "Ameryce";
+      SF Sg Voc => x + "Ameryko";
+      SF Pl Nom => x + "ameryki";
+      SF Pl Gen => x + "ameryk";
+      SF Pl Dat => x + "amerykom";
+      SF Pl Acc => x + "ameryki";
+      SF Pl Instr => x + "amerykami";
+      SF Pl Loc => x + "amerykach";
+      SF Pl Voc => x + "ameryki"
+    };
+
+    oper mkNTable0059: Str -> SubstForm => Str; --%
+    oper mkNTable0059 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "ńca";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcu";
+      SF Pl Nom => x + "ńcy";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńców";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńcy"
+    };
+
+    oper mkNTable0060: Str -> SubstForm => Str; --%
+    oper mkNTable0060 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "Amerykanin";
+      SF Sg Gen => x + "Amerykanina";
+      SF Sg Dat => x + "Amerykaninowi";
+      SF Sg Acc => x + "Amerykanina";
+      SF Sg Instr => x + "Amerykaninem";
+      SF Sg Loc => x + "Amerykaninie";
+      SF Sg Voc => x + "Amerykaninie";
+      SF Pl Nom => x + "amerykanie";
+      SF Pl Gen => x + "amerykanów";
+      SF Pl Dat => x + "amerykanom";
+      SF Pl Acc => x + "amerykanów";
+      SF Pl Instr => x + "amerykanami";
+      SF Pl Loc => x + "amerykanach";
+      SF Pl Voc => x + "amerykanie"
+    };
+
+    oper mkNTable0061: Str -> SubstForm => Str; --%
+    oper mkNTable0061 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0062: Str -> SubstForm => Str; --%
+    oper mkNTable0062 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ka";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => x + "kowie";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ków";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "kowie"
+    };
+
+    oper mkNTable0063: Str -> SubstForm => Str; --%
+    oper mkNTable0063 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "m";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "ch";
+      SF Pl Instr => x + "mi";
+      SF Pl Loc => x + "ch";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0064: Str -> SubstForm => Str; --%
+    oper mkNTable0064 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "i";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "im";
+      SF Sg Loc => x + "im";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ich";
+      SF Pl Dat => x + "im";
+      SF Pl Acc => x + "ich";
+      SF Pl Instr => x + "imi";
+      SF Pl Loc => x + "ich";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0065: Str -> SubstForm => Str; --%
+    oper mkNTable0065 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "ciowie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ciów";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ciowie"
+    };
+
+    oper mkNTable0067: Str -> SubstForm => Str; --%
+    oper mkNTable0067 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "andrzejek";
+      SF Sg Gen => x + "Andrzejka";
+      SF Sg Dat => x + "Andrzejkowi";
+      SF Sg Acc => x + "Andrzejka";
+      SF Sg Instr => x + "Andrzejkiem";
+      SF Sg Loc => x + "Andrzejku";
+      SF Sg Voc => x + "Andrzejku";
+      SF Pl Nom => x + "Andrzejkowie";
+      SF Pl Gen => x + "Andrzejków";
+      SF Pl Dat => x + "andrzejkom";
+      SF Pl Acc => x + "Andrzejków";
+      SF Pl Instr => x + "andrzejkami";
+      SF Pl Loc => x + "andrzejkach";
+      SF Pl Voc => x + "Andrzejkowie"
+    };
+
+    oper mkNTable0068: Str -> SubstForm => Str; --%
+    oper mkNTable0068 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zia";
+      SF Sg Gen => x + "zi";
+      SF Sg Dat => x + "zi";
+      SF Sg Acc => x + "zię";
+      SF Sg Instr => x + "zią";
+      SF Sg Loc => x + "zi";
+      SF Sg Voc => x + "ziu";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "ź";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zie";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable0069: Str -> SubstForm => Str; --%
+    oper mkNTable0069 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0070: Str -> SubstForm => Str; --%
+    oper mkNTable0070 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "anglik";
+      SF Sg Gen => x + "anglika";
+      SF Sg Dat => x + "anglikowi";
+      SF Sg Acc => x + "anglika";
+      SF Sg Instr => x + "anglikiem";
+      SF Sg Loc => x + "angliku";
+      SF Sg Voc => x + "angliku";
+      SF Pl Nom => x + "Anglicy";
+      SF Pl Gen => x + "anglików";
+      SF Pl Dat => x + "anglikom";
+      SF Pl Acc => x + "anglików";
+      SF Pl Instr => x + "anglikami";
+      SF Pl Loc => x + "anglikach";
+      SF Pl Voc => x + "Anglicy"
+    };
+
+    oper mkNTable0071: Str -> SubstForm => Str; --%
+    oper mkNTable0071 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0072: Str -> SubstForm => Str; --%
+    oper mkNTable0072 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "angola";
+      SF Sg Gen => x + "angoli";
+      SF Sg Dat => x + "angoli";
+      SF Sg Acc => x + "Angolę";
+      SF Sg Instr => x + "Angolą";
+      SF Sg Loc => x + "angoli";
+      SF Sg Voc => x + "Angolo";
+      SF Pl Nom => x + "angole";
+      SF Pl Gen => x + "angoli";
+      SF Pl Dat => x + "angolom";
+      SF Pl Acc => x + "angole";
+      SF Pl Instr => x + "angolami";
+      SF Pl Loc => x + "angolach";
+      SF Pl Voc => x + "angole"
+    };
+
+    oper mkNTable0073: Str -> SubstForm => Str; --%
+    oper mkNTable0073 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Ania";
+      SF Sg Gen => x + "Ani";
+      SF Sg Dat => x + "Ani";
+      SF Sg Acc => x + "Anię";
+      SF Sg Instr => x + "Anią";
+      SF Sg Loc => x + "Ani";
+      SF Sg Voc => x + "Aniu";
+      SF Pl Nom => x + "anie";
+      SF Pl Gen => x + "Ań";
+      SF Pl Dat => x + "Aniom";
+      SF Pl Acc => x + "anie";
+      SF Pl Instr => x + "Aniami";
+      SF Pl Loc => x + "Aniach";
+      SF Pl Voc => x + "anie"
+    };
+
+    oper mkNTable0074: Str -> SubstForm => Str; --%
+    oper mkNTable0074 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Aniela";
+      SF Sg Gen => x + "anieli";
+      SF Sg Dat => x + "anieli";
+      SF Sg Acc => x + "Anielę";
+      SF Sg Instr => x + "Anielą";
+      SF Sg Loc => x + "anieli";
+      SF Sg Voc => x + "Anielu";
+      SF Pl Nom => x + "aniele";
+      SF Pl Gen => x + "anieli";
+      SF Pl Dat => x + "Anielom";
+      SF Pl Acc => x + "aniele";
+      SF Pl Instr => x + "Anielami";
+      SF Pl Loc => x + "Anielach";
+      SF Pl Voc => x + "aniele"
+    };
+
+    oper mkNTable0076: Str -> SubstForm => Str; --%
+    oper mkNTable0076 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "oł";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "oła";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ele";
+      SF Sg Voc => x + "ele";
+      SF Pl Nom => x + "ołowie";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "ołów";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "ołowie"
+    };
+
+    oper mkNTable0077: Str -> SubstForm => Str; --%
+    oper mkNTable0077 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "antek";
+      SF Sg Gen => x + "antka";
+      SF Sg Dat => x + "antkowi";
+      SF Sg Acc => x + "antka";
+      SF Sg Instr => x + "antkiem";
+      SF Sg Loc => x + "antku";
+      SF Sg Voc => x + "antku";
+      SF Pl Nom => x + "Antkowie";
+      SF Pl Gen => x + "antków";
+      SF Pl Dat => x + "antkom";
+      SF Pl Acc => x + "antków";
+      SF Pl Instr => x + "antkami";
+      SF Pl Loc => x + "antkach";
+      SF Pl Voc => x + "Antkowie"
+    };
+
+    oper mkNTable0078: Str -> SubstForm => Str; --%
+    oper mkNTable0078 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Antoni";
+      SF Sg Gen => x + "Antoniego";
+      SF Sg Dat => x + "Antoniemu";
+      SF Sg Acc => x + "Antoniego";
+      SF Sg Instr => x + "antonim";
+      SF Sg Loc => x + "antonim";
+      SF Sg Voc => x + "Antoni";
+      SF Pl Nom => x + "Antoniowie";
+      SF Pl Gen => x + "Antonich";
+      SF Pl Dat => x + "antonim";
+      SF Pl Acc => x + "Antonich";
+      SF Pl Instr => x + "Antonimi";
+      SF Pl Loc => x + "Antonich";
+      SF Pl Voc => x + "Antoniowie"
+    };
+
+    oper mkNTable0079: Str -> SubstForm => Str; --%
+    oper mkNTable0079 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0080: Str -> SubstForm => Str; --%
+    oper mkNTable0080 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "sia";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "siowie";
+      SF Pl Gen => x + "siów";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "siów";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "siowie"
+    };
+
+    oper mkNTable0082: Str -> SubstForm => Str; --%
+    oper mkNTable0082 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Anusia";
+      SF Sg Gen => x + "Anusi";
+      SF Sg Dat => x + "Anusi";
+      SF Sg Acc => x + "Anusię";
+      SF Sg Instr => x + "Anusią";
+      SF Sg Loc => x + "Anusi";
+      SF Sg Voc => x + "Anusiu";
+      SF Pl Nom => x + "anusie";
+      SF Pl Gen => x + "Anuś";
+      SF Pl Dat => x + "Anusiom";
+      SF Pl Acc => x + "anusie";
+      SF Pl Instr => x + "Anusiami";
+      SF Pl Loc => x + "Anusiach";
+      SF Pl Voc => x + "anusie"
+    };
+
+    oper mkNTable0083: Str -> SubstForm => Str; --%
+    oper mkNTable0083 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "ina";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "ina";
+      SF Sg Instr => x + "inem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0084: Str -> SubstForm => Str; --%
+    oper mkNTable0084 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "arab";
+      SF Sg Gen => x + "araba";
+      SF Sg Dat => x + "arabowi";
+      SF Sg Acc => x + "araba";
+      SF Sg Instr => x + "arabem";
+      SF Sg Loc => x + "arabie";
+      SF Sg Voc => x + "arabie";
+      SF Pl Nom => x + "Arabowie";
+      SF Pl Gen => x + "arabów";
+      SF Pl Dat => x + "arabom";
+      SF Pl Acc => x + "arabów";
+      SF Pl Instr => x + "arabami";
+      SF Pl Loc => x + "arabach";
+      SF Pl Voc => x + "Arabowie"
+    };
+
+    oper mkNTable0088: Str -> SubstForm => Str; --%
+    oper mkNTable0088 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "aria";
+      SF Sg Gen => x + "arii";
+      SF Sg Dat => x + "arii";
+      SF Sg Acc => x + "arię";
+      SF Sg Instr => x + "arią";
+      SF Sg Loc => x + "arii";
+      SF Sg Voc => x + "ario";
+      SF Pl Nom => x + "Ariowie";
+      SF Pl Gen => x + "Ariów";
+      SF Pl Dat => x + "ariom";
+      SF Pl Acc => x + "Ariów";
+      SF Pl Instr => x + "ariami";
+      SF Pl Loc => x + "ariach";
+      SF Pl Voc => x + "Ariowie"
+    };
+
+    oper mkNTable0089: Str -> SubstForm => Str; --%
+    oper mkNTable0089 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sto";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "sta";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "sto";
+      SF Pl Nom => x + "stowie";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "stów";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "stowie"
+    };
+
+    oper mkNTable0090: Str -> SubstForm => Str; --%
+    oper mkNTable0090 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "arkady";
+      SF Sg Gen => x + "Arkadego";
+      SF Sg Dat => x + "Arkademu";
+      SF Sg Acc => x + "Arkadego";
+      SF Sg Instr => x + "Arkadym";
+      SF Sg Loc => x + "Arkadym";
+      SF Sg Voc => x + "arkady";
+      SF Pl Nom => x + "Arkadowie";
+      SF Pl Gen => x + "Arkadych";
+      SF Pl Dat => x + "Arkadym";
+      SF Pl Acc => x + "Arkadych";
+      SF Pl Instr => x + "Arkadymi";
+      SF Pl Loc => x + "Arkadych";
+      SF Pl Voc => x + "Arkadowie"
+    };
+
+    oper mkNTable0091: Str -> SubstForm => Str; --%
+    oper mkNTable0091 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "aron";
+      SF Sg Gen => x + "Arona";
+      SF Sg Dat => x + "aronowi";
+      SF Sg Acc => x + "Arona";
+      SF Sg Instr => x + "aronem";
+      SF Sg Loc => x + "aronie";
+      SF Sg Voc => x + "aronie";
+      SF Pl Nom => x + "Aronowie";
+      SF Pl Gen => x + "aronów";
+      SF Pl Dat => x + "aronom";
+      SF Pl Acc => x + "aronów";
+      SF Pl Instr => x + "aronami";
+      SF Pl Loc => x + "aronach";
+      SF Pl Voc => x + "Aronowie"
+    };
+
+    oper mkNTable0092: Str -> SubstForm => Str; --%
+    oper mkNTable0092 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0093: Str -> SubstForm => Str; --%
+    oper mkNTable0093 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Asia";
+      SF Sg Gen => x + "Asi";
+      SF Sg Dat => x + "Asi";
+      SF Sg Acc => x + "Asię";
+      SF Sg Instr => x + "Asią";
+      SF Sg Loc => x + "Asi";
+      SF Sg Voc => x + "Asiu";
+      SF Pl Nom => x + "asie";
+      SF Pl Gen => x + "Aś";
+      SF Pl Dat => x + "Asiom";
+      SF Pl Acc => x + "asie";
+      SF Pl Instr => x + "Asiami";
+      SF Pl Loc => x + "Asiach";
+      SF Pl Voc => x + "asie"
+    };
+
+    oper mkNTable0095: Str -> SubstForm => Str; --%
+    oper mkNTable0095 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ja";
+      SF Sg Gen => x + "ji";
+      SF Sg Dat => x + "ji";
+      SF Sg Acc => x + "ję";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "ji";
+      SF Sg Voc => x + "jo";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "yj";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable0096: Str -> SubstForm => Str; --%
+    oper mkNTable0096 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "um";
+      SF Sg Gen => x + "um";
+      SF Sg Dat => x + "um";
+      SF Sg Acc => x + "um";
+      SF Sg Instr => x + "um";
+      SF Sg Loc => x + "um";
+      SF Sg Voc => x + "um";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0097: Str -> SubstForm => Str; --%
+    oper mkNTable0097 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "atlanta";
+      SF Sg Gen => x + "atlanty";
+      SF Sg Dat => x + "atlancie";
+      SF Sg Acc => x + "Atlantę";
+      SF Sg Instr => x + "Atlantą";
+      SF Sg Loc => x + "atlancie";
+      SF Sg Voc => x + "Atlanto";
+      SF Pl Nom => x + "atlanty";
+      SF Pl Gen => x + "atlant";
+      SF Pl Dat => x + "atlantom";
+      SF Pl Acc => x + "atlanty";
+      SF Pl Instr => x + "atlantami";
+      SF Pl Loc => x + "atlantach";
+      SF Pl Voc => x + "atlanty"
+    };
+
+    oper mkNTable0098: Str -> SubstForm => Str; --%
+    oper mkNTable0098 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0099: Str -> SubstForm => Str; --%
+    oper mkNTable0099 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "august";
+      SF Sg Gen => x + "augusta";
+      SF Sg Dat => x + "augustowi";
+      SF Sg Acc => x + "augusta";
+      SF Sg Instr => x + "augustem";
+      SF Sg Loc => x + "auguście";
+      SF Sg Voc => x + "auguście";
+      SF Pl Nom => x + "Augustowie";
+      SF Pl Gen => x + "augustów";
+      SF Pl Dat => x + "augustom";
+      SF Pl Acc => x + "augustów";
+      SF Pl Instr => x + "augustami";
+      SF Pl Loc => x + "augustach";
+      SF Pl Voc => x + "Augustowie"
+    };
+
+    oper mkNTable0100: Str -> SubstForm => Str; --%
+    oper mkNTable0100 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sta";
+      SF Sg Gen => x + "sty";
+      SF Sg Dat => x + "ście";
+      SF Sg Acc => x + "stę";
+      SF Sg Instr => x + "stą";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "sto";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "st";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable0102: Str -> SubstForm => Str; --%
+    oper mkNTable0102 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0103: Str -> SubstForm => Str; --%
+    oper mkNTable0103 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0104: Str -> SubstForm => Str; --%
+    oper mkNTable0104 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "in";
+      SF Sg Gen => x + "ina";
+      SF Sg Dat => x + "inowi";
+      SF Sg Acc => x + "ina";
+      SF Sg Instr => x + "inem";
+      SF Sg Loc => x + "inie";
+      SF Sg Voc => x + "inie";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0105: Str -> SubstForm => Str; --%
+    oper mkNTable0105 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ta";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable0106: Str -> SubstForm => Str; --%
+    oper mkNTable0106 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "śka";
+      SF Sg Gen => x + "śki";
+      SF Sg Dat => x + "śce";
+      SF Sg Acc => x + "śkę";
+      SF Sg Instr => x + "śką";
+      SF Sg Loc => x + "śce";
+      SF Sg Voc => x + "śko";
+      SF Pl Nom => x + "śki";
+      SF Pl Gen => x + "siek";
+      SF Pl Dat => x + "śkom";
+      SF Pl Acc => x + "śki";
+      SF Pl Instr => x + "śkami";
+      SF Pl Loc => x + "śkach";
+      SF Pl Voc => x + "śki"
+    };
+
+    oper mkNTable0111: Str -> SubstForm => Str; --%
+    oper mkNTable0111 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0112: Str -> SubstForm => Str; --%
+    oper mkNTable0112 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "baedeker";
+      SF Sg Gen => x + "baedekera";
+      SF Sg Dat => x + "baedekerowi";
+      SF Sg Acc => x + "baedekera";
+      SF Sg Instr => x + "baedekerem";
+      SF Sg Loc => x + "baedekerze";
+      SF Sg Voc => x + "baedekerze";
+      SF Pl Nom => x + "Baedekerowie";
+      SF Pl Gen => x + "baedekerów";
+      SF Pl Dat => x + "baedekerom";
+      SF Pl Acc => x + "baedekerów";
+      SF Pl Instr => x + "baedekerami";
+      SF Pl Loc => x + "baedekerach";
+      SF Pl Voc => x + "Baedekerowie"
+    };
+
+    oper mkNTable0113: Str -> SubstForm => Str; --%
+    oper mkNTable0113 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Bagdad";
+      SF Sg Gen => x + "Bagdadu";
+      SF Sg Dat => x + "Bagdadowi";
+      SF Sg Acc => x + "Bagdad";
+      SF Sg Instr => x + "Bagdadem";
+      SF Sg Loc => x + "Bagdadzie";
+      SF Sg Voc => x + "Bagdadzie";
+      SF Pl Nom => x + "bagdady";
+      SF Pl Gen => x + "bagdadów";
+      SF Pl Dat => x + "bagdadom";
+      SF Pl Acc => x + "bagdady";
+      SF Pl Instr => x + "bagdadami";
+      SF Pl Loc => x + "bagdadach";
+      SF Pl Voc => x + "bagdady"
+    };
+
+    oper mkNTable0114: Str -> SubstForm => Str; --%
+    oper mkNTable0114 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bajan";
+      SF Sg Gen => x + "bajana";
+      SF Sg Dat => x + "bajanowi";
+      SF Sg Acc => x + "bajana";
+      SF Sg Instr => x + "bajanem";
+      SF Sg Loc => x + "bajanie";
+      SF Sg Voc => x + "bajanie";
+      SF Pl Nom => x + "Bajanowie";
+      SF Pl Gen => x + "bajanów";
+      SF Pl Dat => x + "bajanom";
+      SF Pl Acc => x + "bajanów";
+      SF Pl Instr => x + "bajanami";
+      SF Pl Loc => x + "bajanach";
+      SF Pl Voc => x + "Bajanowie"
+    };
+
+    oper mkNTable0116: Str -> SubstForm => Str; --%
+    oper mkNTable0116 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "c";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cowie";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cowie"
+    };
+
+    oper mkNTable0117: Str -> SubstForm => Str; --%
+    oper mkNTable0117 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "banach";
+      SF Sg Gen => x + "Banacha";
+      SF Sg Dat => x + "Banachowi";
+      SF Sg Acc => x + "Banacha";
+      SF Sg Instr => x + "Banachem";
+      SF Sg Loc => x + "Banachu";
+      SF Sg Voc => x + "Banachu";
+      SF Pl Nom => x + "Banachowie";
+      SF Pl Gen => x + "Banachów";
+      SF Pl Dat => x + "Banachom";
+      SF Pl Acc => x + "Banachów";
+      SF Pl Instr => x + "Banachami";
+      SF Pl Loc => x + "Banachach";
+      SF Pl Voc => x + "Banachowie"
+    };
+
+    oper mkNTable0118: Str -> SubstForm => Str; --%
+    oper mkNTable0118 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0119: Str -> SubstForm => Str; --%
+    oper mkNTable0119 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "baran";
+      SF Sg Gen => x + "barana";
+      SF Sg Dat => x + "baranowi";
+      SF Sg Acc => x + "barana";
+      SF Sg Instr => x + "baranem";
+      SF Sg Loc => x + "baranie";
+      SF Sg Voc => x + "baranie";
+      SF Pl Nom => x + "Baranowie";
+      SF Pl Gen => x + "baranów";
+      SF Pl Dat => x + "baranom";
+      SF Pl Acc => x + "baranów";
+      SF Pl Instr => x + "baranami";
+      SF Pl Loc => x + "baranach";
+      SF Pl Voc => x + "Baranowie"
+    };
+
+    oper mkNTable0120: Str -> SubstForm => Str; --%
+    oper mkNTable0120 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0121: Str -> SubstForm => Str; --%
+    oper mkNTable0121 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Baranowo";
+      SF Sg Gen => x + "Baranowa";
+      SF Sg Dat => x + "Baranowu";
+      SF Sg Acc => x + "Baranowo";
+      SF Sg Instr => x + "Baranowem";
+      SF Sg Loc => x + "Baranowie";
+      SF Sg Voc => x + "Baranowo";
+      SF Pl Nom => x + "Baranowa";
+      SF Pl Gen => x + "baranów";
+      SF Pl Dat => x + "Baranowom";
+      SF Pl Acc => x + "Baranowa";
+      SF Pl Instr => x + "Baranowami";
+      SF Pl Loc => x + "Baranowach";
+      SF Pl Voc => x + "Baranowa"
+    };
+
+    oper mkNTable0122: Str -> SubstForm => Str; --%
+    oper mkNTable0122 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "baranów";
+      SF Sg Gen => x + "Baranowa";
+      SF Sg Dat => x + "Baranowu";
+      SF Sg Acc => x + "baranów";
+      SF Sg Instr => x + "Baranowem";
+      SF Sg Loc => x + "Baranowie";
+      SF Sg Voc => x + "Baranowie";
+      SF Pl Nom => x + "Baranowy";
+      SF Pl Gen => x + "Baranowów";
+      SF Pl Dat => x + "Baranowom";
+      SF Pl Acc => x + "Baranowy";
+      SF Pl Instr => x + "Baranowami";
+      SF Pl Loc => x + "Baranowach";
+      SF Pl Voc => x + "Baranowy"
+    };
+
+    oper mkNTable0123: Str -> SubstForm => Str; --%
+    oper mkNTable0123 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ja";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ję";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "jo";
+      SF Pl Nom => x + "jowie";
+      SF Pl Gen => x + "jów";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "jów";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "jowie"
+    };
+
+    oper mkNTable0124: Str -> SubstForm => Str; --%
+    oper mkNTable0124 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Basia";
+      SF Sg Gen => x + "Basi";
+      SF Sg Dat => x + "Basi";
+      SF Sg Acc => x + "Basię";
+      SF Sg Instr => x + "Basią";
+      SF Sg Loc => x + "Basi";
+      SF Sg Voc => x + "Basiu";
+      SF Pl Nom => x + "basie";
+      SF Pl Gen => x + "Baś";
+      SF Pl Dat => x + "Basiom";
+      SF Pl Acc => x + "basie";
+      SF Pl Instr => x + "Basiami";
+      SF Pl Loc => x + "Basiach";
+      SF Pl Voc => x + "basie"
+    };
+
+    oper mkNTable0125: Str -> SubstForm => Str; --%
+    oper mkNTable0125 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Bask";
+      SF Sg Gen => x + "Baska";
+      SF Sg Dat => x + "baskowi";
+      SF Sg Acc => x + "Baska";
+      SF Sg Instr => x + "baskiem";
+      SF Sg Loc => x + "basku";
+      SF Sg Voc => x + "basku";
+      SF Pl Nom => x + "Baskowie";
+      SF Pl Gen => x + "basków";
+      SF Pl Dat => x + "baskom";
+      SF Pl Acc => x + "basków";
+      SF Pl Instr => x + "baskami";
+      SF Pl Loc => x + "baskach";
+      SF Pl Voc => x + "Baskowie"
+    };
+
+    oper mkNTable0126: Str -> SubstForm => Str; --%
+    oper mkNTable0126 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "ych";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0127: Str -> SubstForm => Str; --%
+    oper mkNTable0127 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bawar";
+      SF Sg Gen => x + "bawara";
+      SF Sg Dat => x + "bawarowi";
+      SF Sg Acc => x + "bawara";
+      SF Sg Instr => x + "bawarem";
+      SF Sg Loc => x + "bawarze";
+      SF Sg Voc => x + "bawarze";
+      SF Pl Nom => x + "Bawarzy";
+      SF Pl Gen => x + "bawarów";
+      SF Pl Dat => x + "bawarom";
+      SF Pl Acc => x + "bawarów";
+      SF Pl Instr => x + "bawarami";
+      SF Pl Loc => x + "bawarach";
+      SF Pl Voc => x + "Bawarzy"
+    };
+
+    oper mkNTable0128: Str -> SubstForm => Str; --%
+    oper mkNTable0128 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "i";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "im";
+      SF Sg Loc => x + "im";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ich";
+      SF Pl Dat => x + "im";
+      SF Pl Acc => x + "ich";
+      SF Pl Instr => x + "imi";
+      SF Pl Loc => x + "ich";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0129: Str -> SubstForm => Str; --%
+    oper mkNTable0129 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "bałt";
+      SF Sg Gen => x + "Bałta";
+      SF Sg Dat => x + "bałtowi";
+      SF Sg Acc => x + "Bałta";
+      SF Sg Instr => x + "bałtem";
+      SF Sg Loc => x + "bałcie";
+      SF Sg Voc => x + "bałcie";
+      SF Pl Nom => x + "Bałtowie";
+      SF Pl Gen => x + "bałtów";
+      SF Pl Dat => x + "bałtom";
+      SF Pl Acc => x + "bałtów";
+      SF Pl Instr => x + "bałtami";
+      SF Pl Loc => x + "bałtach";
+      SF Pl Voc => x + "Bałtowie"
+    };
+
+    oper mkNTable0131: Str -> SubstForm => Str; --%
+    oper mkNTable0131 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Beata";
+      SF Sg Gen => x + "beaty";
+      SF Sg Dat => x + "beacie";
+      SF Sg Acc => x + "Beatę";
+      SF Sg Instr => x + "Beatą";
+      SF Sg Loc => x + "beacie";
+      SF Sg Voc => x + "Beato";
+      SF Pl Nom => x + "beaty";
+      SF Pl Gen => x + "beat";
+      SF Pl Dat => x + "beatom";
+      SF Pl Acc => x + "beaty";
+      SF Pl Instr => x + "beatami";
+      SF Pl Loc => x + "beatach";
+      SF Pl Voc => x + "beaty"
+    };
+
+    oper mkNTable0132: Str -> SubstForm => Str; --%
+    oper mkNTable0132 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "bednarek";
+      SF Sg Gen => x + "bednarka";
+      SF Sg Dat => x + "Bednarkowi";
+      SF Sg Acc => x + "bednarka";
+      SF Sg Instr => x + "Bednarkiem";
+      SF Sg Loc => x + "Bednarku";
+      SF Sg Voc => x + "Bednarku";
+      SF Pl Nom => x + "Bednarkowie";
+      SF Pl Gen => x + "Bednarków";
+      SF Pl Dat => x + "bednarkom";
+      SF Pl Acc => x + "Bednarków";
+      SF Pl Instr => x + "bednarkami";
+      SF Pl Loc => x + "bednarkach";
+      SF Pl Voc => x + "Bednarkowie"
+    };
+
+    oper mkNTable0133: Str -> SubstForm => Str; --%
+    oper mkNTable0133 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bednarz";
+      SF Sg Gen => x + "bednarza";
+      SF Sg Dat => x + "bednarzowi";
+      SF Sg Acc => x + "bednarza";
+      SF Sg Instr => x + "bednarzem";
+      SF Sg Loc => x + "bednarzu";
+      SF Sg Voc => x + "bednarzu";
+      SF Pl Nom => x + "Bednarzowie";
+      SF Pl Gen => x + "bednarzów";
+      SF Pl Dat => x + "bednarzom";
+      SF Pl Acc => x + "bednarzów";
+      SF Pl Instr => x + "bednarzami";
+      SF Pl Loc => x + "bednarzach";
+      SF Pl Voc => x + "Bednarzowie"
+    };
+
+    oper mkNTable0134: Str -> SubstForm => Str; --%
+    oper mkNTable0134 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "belg";
+      SF Sg Gen => x + "belga";
+      SF Sg Dat => x + "belgowi";
+      SF Sg Acc => x + "belga";
+      SF Sg Instr => x + "belgiem";
+      SF Sg Loc => x + "belgu";
+      SF Sg Voc => x + "belgu";
+      SF Pl Nom => x + "Belgowie";
+      SF Pl Gen => x + "belgów";
+      SF Pl Dat => x + "belgom";
+      SF Pl Acc => x + "belgów";
+      SF Pl Instr => x + "belgami";
+      SF Pl Loc => x + "belgach";
+      SF Pl Voc => x + "Belgowie"
+    };
+
+    oper mkNTable0136: Str -> SubstForm => Str; --%
+    oper mkNTable0136 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "belka";
+      SF Sg Gen => x + "belki";
+      SF Sg Dat => x + "belce";
+      SF Sg Acc => x + "belkę";
+      SF Sg Instr => x + "belką";
+      SF Sg Loc => x + "belce";
+      SF Sg Voc => x + "belko";
+      SF Pl Nom => x + "Belkowie";
+      SF Pl Gen => x + "Belków";
+      SF Pl Dat => x + "belkom";
+      SF Pl Acc => x + "Belków";
+      SF Pl Instr => x + "belkami";
+      SF Pl Loc => x + "belkach";
+      SF Pl Voc => x + "Belkowie"
+    };
+
+    oper mkNTable0137: Str -> SubstForm => Str; --%
+    oper mkNTable0137 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "to";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "towie";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "towie"
+    };
+
+    oper mkNTable0138: Str -> SubstForm => Str; --%
+    oper mkNTable0138 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0139: Str -> SubstForm => Str; --%
+    oper mkNTable0139 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ber";
+      SF Sg Gen => x + "bera";
+      SF Sg Dat => x + "berowi";
+      SF Sg Acc => x + "bera";
+      SF Sg Instr => x + "berem";
+      SF Sg Loc => x + "berze";
+      SF Sg Voc => x + "berze";
+      SF Pl Nom => x + "Berowie";
+      SF Pl Gen => x + "berów";
+      SF Pl Dat => x + "berom";
+      SF Pl Acc => x + "berów";
+      SF Pl Instr => x + "berami";
+      SF Pl Loc => x + "berach";
+      SF Pl Voc => x + "Berowie"
+    };
+
+    oper mkNTable0140: Str -> SubstForm => Str; --%
+    oper mkNTable0140 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "berek";
+      SF Sg Gen => x + "berka";
+      SF Sg Dat => x + "berkowi";
+      SF Sg Acc => x + "berka";
+      SF Sg Instr => x + "berkiem";
+      SF Sg Loc => x + "berku";
+      SF Sg Voc => x + "berku";
+      SF Pl Nom => x + "Berkowie";
+      SF Pl Gen => x + "berków";
+      SF Pl Dat => x + "berkom";
+      SF Pl Acc => x + "berków";
+      SF Pl Instr => x + "berkami";
+      SF Pl Loc => x + "berkach";
+      SF Pl Voc => x + "Berkowie"
+    };
+
+    oper mkNTable0141: Str -> SubstForm => Str; --%
+    oper mkNTable0141 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0142: Str -> SubstForm => Str; --%
+    oper mkNTable0142 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "berlin";
+      SF Sg Gen => x + "berlina";
+      SF Sg Dat => x + "Berlinowi";
+      SF Sg Acc => x + "berlin";
+      SF Sg Instr => x + "Berlinem";
+      SF Sg Loc => x + "berlinie";
+      SF Sg Voc => x + "berlinie";
+      SF Pl Nom => x + "berliny";
+      SF Pl Gen => x + "Berlinów";
+      SF Pl Dat => x + "berlinom";
+      SF Pl Acc => x + "berliny";
+      SF Pl Instr => x + "berlinami";
+      SF Pl Loc => x + "berlinach";
+      SF Pl Voc => x + "berliny"
+    };
+
+    oper mkNTable0143: Str -> SubstForm => Str; --%
+    oper mkNTable0143 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bernard";
+      SF Sg Gen => x + "bernarda";
+      SF Sg Dat => x + "bernardowi";
+      SF Sg Acc => x + "bernarda";
+      SF Sg Instr => x + "bernardem";
+      SF Sg Loc => x + "bernardzie";
+      SF Sg Voc => x + "bernardzie";
+      SF Pl Nom => x + "Bernardowie";
+      SF Pl Gen => x + "bernardów";
+      SF Pl Dat => x + "bernardom";
+      SF Pl Acc => x + "bernardów";
+      SF Pl Instr => x + "bernardami";
+      SF Pl Loc => x + "bernardach";
+      SF Pl Voc => x + "Bernardowie"
+    };
+
+    oper mkNTable0144: Str -> SubstForm => Str; --%
+    oper mkNTable0144 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bertram";
+      SF Sg Gen => x + "bertrama";
+      SF Sg Dat => x + "bertramowi";
+      SF Sg Acc => x + "bertrama";
+      SF Sg Instr => x + "bertramem";
+      SF Sg Loc => x + "bertramie";
+      SF Sg Voc => x + "bertramie";
+      SF Pl Nom => x + "Bertramowie";
+      SF Pl Gen => x + "bertramów";
+      SF Pl Dat => x + "bertramom";
+      SF Pl Acc => x + "bertramów";
+      SF Pl Instr => x + "bertramami";
+      SF Pl Loc => x + "bertramach";
+      SF Pl Voc => x + "Bertramowie"
+    };
+
+    oper mkNTable0145: Str -> SubstForm => Str; --%
+    oper mkNTable0145 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0147: Str -> SubstForm => Str; --%
+    oper mkNTable0147 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "białek";
+      SF Sg Gen => x + "białka";
+      SF Sg Dat => x + "Białkowi";
+      SF Sg Acc => x + "białka";
+      SF Sg Instr => x + "białkiem";
+      SF Sg Loc => x + "białku";
+      SF Sg Voc => x + "białku";
+      SF Pl Nom => x + "Białkowie";
+      SF Pl Gen => x + "Białków";
+      SF Pl Dat => x + "białkom";
+      SF Pl Acc => x + "Białków";
+      SF Pl Instr => x + "białkami";
+      SF Pl Loc => x + "białkach";
+      SF Pl Voc => x + "Białkowie"
+    };
+
+    oper mkNTable0148: Str -> SubstForm => Str; --%
+    oper mkNTable0148 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "białko";
+      SF Sg Gen => x + "białki";
+      SF Sg Dat => x + "białce";
+      SF Sg Acc => x + "białkę";
+      SF Sg Instr => x + "białką";
+      SF Sg Loc => x + "białce";
+      SF Sg Voc => x + "białko";
+      SF Pl Nom => x + "Białkowie";
+      SF Pl Gen => x + "Białków";
+      SF Pl Dat => x + "białkom";
+      SF Pl Acc => x + "Białków";
+      SF Pl Instr => x + "białkami";
+      SF Pl Loc => x + "białkach";
+      SF Pl Voc => x + "Białkowie"
+    };
+
+    oper mkNTable0150: Str -> SubstForm => Str; --%
+    oper mkNTable0150 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "biel";
+      SF Sg Gen => x + "Biela";
+      SF Sg Dat => x + "bielowi";
+      SF Sg Acc => x + "Biela";
+      SF Sg Instr => x + "bielem";
+      SF Sg Loc => x + "bielu";
+      SF Sg Voc => x + "bielu";
+      SF Pl Nom => x + "Bielowie";
+      SF Pl Gen => x + "bielów";
+      SF Pl Dat => x + "bielom";
+      SF Pl Acc => x + "bielów";
+      SF Pl Instr => x + "bielami";
+      SF Pl Loc => x + "bielach";
+      SF Pl Voc => x + "Bielowie"
+    };
+
+    oper mkNTable0151: Str -> SubstForm => Str; --%
+    oper mkNTable0151 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niek";
+      SF Sg Gen => x + "ńka";
+      SF Sg Dat => x + "ńkowi";
+      SF Sg Acc => x + "ńka";
+      SF Sg Instr => x + "ńkiem";
+      SF Sg Loc => x + "ńku";
+      SF Sg Voc => x + "ńku";
+      SF Pl Nom => x + "ńkowie";
+      SF Pl Gen => x + "ńków";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńków";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńkowie"
+    };
+
+    oper mkNTable0153: Str -> SubstForm => Str; --%
+    oper mkNTable0153 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "niowie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "niowie"
+    };
+
+    oper mkNTable0154: Str -> SubstForm => Str; --%
+    oper mkNTable0154 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "bill";
+      SF Sg Gen => x + "Billa";
+      SF Sg Dat => x + "billowi";
+      SF Sg Acc => x + "Billa";
+      SF Sg Instr => x + "billem";
+      SF Sg Loc => x + "billu";
+      SF Sg Voc => x + "billu";
+      SF Pl Nom => x + "bille";
+      SF Pl Gen => x + "billów";
+      SF Pl Dat => x + "billom";
+      SF Pl Acc => x + "billów";
+      SF Pl Instr => x + "billami";
+      SF Pl Loc => x + "billach";
+      SF Pl Voc => x + "bille"
+    };
+
+    oper mkNTable0155: Str -> SubstForm => Str; --%
+    oper mkNTable0155 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "na";
+      SF Sg Gen => x + "ny";
+      SF Sg Dat => x + "nie";
+      SF Sg Acc => x + "nę";
+      SF Sg Instr => x + "ną";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "no";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "ien";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable0156: Str -> SubstForm => Str; --%
+    oper mkNTable0156 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0158: Str -> SubstForm => Str; --%
+    oper mkNTable0158 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "bob";
+      SF Sg Gen => x + "boba";
+      SF Sg Dat => x + "bobowi";
+      SF Sg Acc => x + "boba";
+      SF Sg Instr => x + "bobem";
+      SF Sg Loc => x + "bobie";
+      SF Sg Voc => x + "bobie";
+      SF Pl Nom => x + "Bobowie";
+      SF Pl Gen => x + "bobów";
+      SF Pl Dat => x + "bobom";
+      SF Pl Acc => x + "bobów";
+      SF Pl Instr => x + "bobami";
+      SF Pl Loc => x + "bobach";
+      SF Pl Voc => x + "Bobowie"
+    };
+
+    oper mkNTable0159: Str -> SubstForm => Str; --%
+    oper mkNTable0159 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bober";
+      SF Sg Gen => x + "bobra";
+      SF Sg Dat => x + "bobrowi";
+      SF Sg Acc => x + "bobra";
+      SF Sg Instr => x + "bobrem";
+      SF Sg Loc => x + "bobrze";
+      SF Sg Voc => x + "bobrze";
+      SF Pl Nom => x + "Bobrowie";
+      SF Pl Gen => x + "bobrów";
+      SF Pl Dat => x + "bobrom";
+      SF Pl Acc => x + "bobrów";
+      SF Pl Instr => x + "bobrami";
+      SF Pl Loc => x + "bobrach";
+      SF Pl Voc => x + "Bobrowie"
+    };
+
+    oper mkNTable0161: Str -> SubstForm => Str; --%
+    oper mkNTable0161 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bogdana";
+      SF Sg Gen => x + "bogdany";
+      SF Sg Dat => x + "bogdanie";
+      SF Sg Acc => x + "Bogdanę";
+      SF Sg Instr => x + "Bogdaną";
+      SF Sg Loc => x + "bogdanie";
+      SF Sg Voc => x + "Bogdano";
+      SF Pl Nom => x + "bogdany";
+      SF Pl Gen => x + "bogdan";
+      SF Pl Dat => x + "bogdanom";
+      SF Pl Acc => x + "bogdany";
+      SF Pl Instr => x + "bogdanami";
+      SF Pl Loc => x + "bogdanach";
+      SF Pl Voc => x + "bogdany"
+    };
+
+    oper mkNTable0163: Str -> SubstForm => Str; --%
+    oper mkNTable0163 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "łowie";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "łowie"
+    };
+
+    oper mkNTable0164: Str -> SubstForm => Str; --%
+    oper mkNTable0164 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ły";
+      SF Sg Dat => x + "le";
+      SF Sg Acc => x + "łę";
+      SF Sg Instr => x + "łą";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "ł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable0165: Str -> SubstForm => Str; --%
+    oper mkNTable0165 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ta";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "towie";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "towie"
+    };
+
+    oper mkNTable0166: Str -> SubstForm => Str; --%
+    oper mkNTable0166 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cowie";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cowie"
+    };
+
+    oper mkNTable0167: Str -> SubstForm => Str; --%
+    oper mkNTable0167 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bolek";
+      SF Sg Gen => x + "bolka";
+      SF Sg Dat => x + "bolkowi";
+      SF Sg Acc => x + "bolka";
+      SF Sg Instr => x + "bolkiem";
+      SF Sg Loc => x + "bolku";
+      SF Sg Voc => x + "bolku";
+      SF Pl Nom => x + "Bolkowie";
+      SF Pl Gen => x + "bolków";
+      SF Pl Dat => x + "bolkom";
+      SF Pl Acc => x + "bolków";
+      SF Pl Instr => x + "bolkami";
+      SF Pl Loc => x + "bolkach";
+      SF Pl Voc => x + "Bolkowie"
+    };
+
+    oper mkNTable0168: Str -> SubstForm => Str; --%
+    oper mkNTable0168 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "sł";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słowi";
+      SF Sg Acc => x + "sła";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "śle";
+      SF Pl Nom => x + "słowie";
+      SF Pl Gen => x + "słów";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "słów";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "słowie"
+    };
+
+    oper mkNTable0169: Str -> SubstForm => Str; --%
+    oper mkNTable0169 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "iec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0170: Str -> SubstForm => Str; --%
+    oper mkNTable0170 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bolivar";
+      SF Sg Gen => x + "bolivara";
+      SF Sg Dat => x + "bolivarowi";
+      SF Sg Acc => x + "bolivara";
+      SF Sg Instr => x + "bolivarem";
+      SF Sg Loc => x + "bolivarze";
+      SF Sg Voc => x + "bolivarze";
+      SF Pl Nom => x + "Bolivarowie";
+      SF Pl Gen => x + "bolivarów";
+      SF Pl Dat => x + "bolivarom";
+      SF Pl Acc => x + "bolivarów";
+      SF Pl Instr => x + "bolivarami";
+      SF Pl Loc => x + "bolivarach";
+      SF Pl Voc => x + "Bolivarowie"
+    };
+
+    oper mkNTable0171: Str -> SubstForm => Str; --%
+    oper mkNTable0171 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Bolko";
+      SF Sg Gen => x + "bolka";
+      SF Sg Dat => x + "bolkowi";
+      SF Sg Acc => x + "bolka";
+      SF Sg Instr => x + "bolkiem";
+      SF Sg Loc => x + "bolku";
+      SF Sg Voc => x + "bolku";
+      SF Pl Nom => x + "Bolkowie";
+      SF Pl Gen => x + "bolków";
+      SF Pl Dat => x + "bolkom";
+      SF Pl Acc => x + "bolków";
+      SF Pl Instr => x + "bolkami";
+      SF Pl Loc => x + "bolkach";
+      SF Pl Voc => x + "Bolkowie"
+    };
+
+    oper mkNTable0173: Str -> SubstForm => Str; --%
+    oper mkNTable0173 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0174: Str -> SubstForm => Str; --%
+    oper mkNTable0174 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ko";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "kowie";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ków";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "kowie"
+    };
+
+    oper mkNTable0175: Str -> SubstForm => Str; --%
+    oper mkNTable0175 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0176: Str -> SubstForm => Str; --%
+    oper mkNTable0176 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable0177: Str -> SubstForm => Str; --%
+    oper mkNTable0177 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "borsuk";
+      SF Sg Gen => x + "borsuka";
+      SF Sg Dat => x + "borsukowi";
+      SF Sg Acc => x + "borsuka";
+      SF Sg Instr => x + "borsukiem";
+      SF Sg Loc => x + "borsuku";
+      SF Sg Voc => x + "borsuku";
+      SF Pl Nom => x + "Borsukowie";
+      SF Pl Gen => x + "borsuków";
+      SF Pl Dat => x + "borsukom";
+      SF Pl Acc => x + "borsuków";
+      SF Pl Instr => x + "borsukami";
+      SF Pl Loc => x + "borsukach";
+      SF Pl Voc => x + "Borsukowie"
+    };
+
+    oper mkNTable0179: Str -> SubstForm => Str; --%
+    oper mkNTable0179 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bosak";
+      SF Sg Gen => x + "bosaka";
+      SF Sg Dat => x + "bosakowi";
+      SF Sg Acc => x + "bosaka";
+      SF Sg Instr => x + "bosakiem";
+      SF Sg Loc => x + "bosaku";
+      SF Sg Voc => x + "bosaku";
+      SF Pl Nom => x + "Bosakowie";
+      SF Pl Gen => x + "bosaków";
+      SF Pl Dat => x + "bosakom";
+      SF Pl Acc => x + "bosaków";
+      SF Pl Instr => x + "bosakami";
+      SF Pl Loc => x + "bosakach";
+      SF Pl Voc => x + "Bosakowie"
+    };
+
+    oper mkNTable0180: Str -> SubstForm => Str; --%
+    oper mkNTable0180 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bourbon";
+      SF Sg Gen => x + "bourbona";
+      SF Sg Dat => x + "bourbonowi";
+      SF Sg Acc => x + "bourbona";
+      SF Sg Instr => x + "bourbonem";
+      SF Sg Loc => x + "bourbonie";
+      SF Sg Voc => x + "bourbonie";
+      SF Pl Nom => x + "Bourbonowie";
+      SF Pl Gen => x + "bourbonów";
+      SF Pl Dat => x + "bourbonom";
+      SF Pl Acc => x + "bourbonów";
+      SF Pl Instr => x + "bourbonami";
+      SF Pl Loc => x + "bourbonach";
+      SF Pl Voc => x + "Bourbonowie"
+    };
+
+    oper mkNTable0182: Str -> SubstForm => Str; --%
+    oper mkNTable0182 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "braun";
+      SF Sg Gen => x + "brauna";
+      SF Sg Dat => x + "braunowi";
+      SF Sg Acc => x + "brauna";
+      SF Sg Instr => x + "braunem";
+      SF Sg Loc => x + "braunie";
+      SF Sg Voc => x + "braunie";
+      SF Pl Nom => x + "Braunowie";
+      SF Pl Gen => x + "braunów";
+      SF Pl Dat => x + "braunom";
+      SF Pl Acc => x + "braunów";
+      SF Pl Instr => x + "braunami";
+      SF Pl Loc => x + "braunach";
+      SF Pl Voc => x + "Braunowie"
+    };
+
+    oper mkNTable0183: Str -> SubstForm => Str; --%
+    oper mkNTable0183 lexem = 
+      let x = Predef.tk 12 lexem in
+    table { 
+      SF Sg Nom => x + "brazylijczyk";
+      SF Sg Gen => x + "brazylijczyka";
+      SF Sg Dat => x + "Brazylijczykowi";
+      SF Sg Acc => x + "brazylijczyka";
+      SF Sg Instr => x + "Brazylijczykiem";
+      SF Sg Loc => x + "Brazylijczyku";
+      SF Sg Voc => x + "Brazylijczyku";
+      SF Pl Nom => x + "Brazylijczycy";
+      SF Pl Gen => x + "Brazylijczyków";
+      SF Pl Dat => x + "Brazylijczykom";
+      SF Pl Acc => x + "Brazylijczyków";
+      SF Pl Instr => x + "Brazylijczykami";
+      SF Pl Loc => x + "Brazylijczykach";
+      SF Pl Voc => x + "Brazylijczycy"
+    };
+
+    oper mkNTable0184: Str -> SubstForm => Str; --%
+    oper mkNTable0184 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "lowie";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "lów";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "lowie"
+    };
+
+    oper mkNTable0185: Str -> SubstForm => Str; --%
+    oper mkNTable0185 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Bronia";
+      SF Sg Gen => x + "broni";
+      SF Sg Dat => x + "broni";
+      SF Sg Acc => x + "Bronię";
+      SF Sg Instr => x + "bronią";
+      SF Sg Loc => x + "broni";
+      SF Sg Voc => x + "Broniu";
+      SF Pl Nom => x + "bronie";
+      SF Pl Gen => x + "broń";
+      SF Pl Dat => x + "broniom";
+      SF Pl Acc => x + "bronie";
+      SF Pl Instr => x + "broniami";
+      SF Pl Loc => x + "broniach";
+      SF Pl Voc => x + "bronie"
+    };
+
+    oper mkNTable0186: Str -> SubstForm => Str; --%
+    oper mkNTable0186 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "browning";
+      SF Sg Gen => x + "browninga";
+      SF Sg Dat => x + "browningowi";
+      SF Sg Acc => x + "browninga";
+      SF Sg Instr => x + "browningiem";
+      SF Sg Loc => x + "browningu";
+      SF Sg Voc => x + "browningu";
+      SF Pl Nom => x + "Browningowie";
+      SF Pl Gen => x + "browningów";
+      SF Pl Dat => x + "browningom";
+      SF Pl Acc => x + "browningów";
+      SF Pl Instr => x + "browningami";
+      SF Pl Loc => x + "browningach";
+      SF Pl Voc => x + "Browningowie"
+    };
+
+    oper mkNTable0187: Str -> SubstForm => Str; --%
+    oper mkNTable0187 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "brożek";
+      SF Sg Gen => x + "brożka";
+      SF Sg Dat => x + "brożkowi";
+      SF Sg Acc => x + "brożka";
+      SF Sg Instr => x + "brożkiem";
+      SF Sg Loc => x + "brożku";
+      SF Sg Voc => x + "brożku";
+      SF Pl Nom => x + "Brożkowie";
+      SF Pl Gen => x + "brożków";
+      SF Pl Dat => x + "brożkom";
+      SF Pl Acc => x + "brożków";
+      SF Pl Instr => x + "brożkami";
+      SF Pl Loc => x + "brożkach";
+      SF Pl Voc => x + "Brożkowie"
+    };
+
+    oper mkNTable0188: Str -> SubstForm => Str; --%
+    oper mkNTable0188 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "wi";
+      SF Sg Acc => x + "na";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "nowie";
+      SF Pl Gen => x + "nów";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "nów";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "nowie"
+    };
+
+    oper mkNTable0189: Str -> SubstForm => Str; --%
+    oper mkNTable0189 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bryła";
+      SF Sg Gen => x + "bryły";
+      SF Sg Dat => x + "bryle";
+      SF Sg Acc => x + "bryłę";
+      SF Sg Instr => x + "bryłą";
+      SF Sg Loc => x + "bryle";
+      SF Sg Voc => x + "bryło";
+      SF Pl Nom => x + "Bryłowie";
+      SF Pl Gen => x + "Bryłów";
+      SF Pl Dat => x + "bryłom";
+      SF Pl Acc => x + "Bryłów";
+      SF Pl Instr => x + "bryłami";
+      SF Pl Loc => x + "bryłach";
+      SF Pl Voc => x + "Bryłowie"
+    };
+
+    oper mkNTable0190: Str -> SubstForm => Str; --%
+    oper mkNTable0190 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "brzechwa";
+      SF Sg Gen => x + "brzechwy";
+      SF Sg Dat => x + "brzechwie";
+      SF Sg Acc => x + "brzechwę";
+      SF Sg Instr => x + "brzechwą";
+      SF Sg Loc => x + "brzechwie";
+      SF Sg Voc => x + "brzechwo";
+      SF Pl Nom => x + "Brzechwowie";
+      SF Pl Gen => x + "Brzechwów";
+      SF Pl Dat => x + "brzechwom";
+      SF Pl Acc => x + "Brzechwów";
+      SF Pl Instr => x + "brzechwami";
+      SF Pl Loc => x + "brzechwach";
+      SF Pl Voc => x + "Brzechwowie"
+    };
+
+    oper mkNTable0192: Str -> SubstForm => Str; --%
+    oper mkNTable0192 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "buczek";
+      SF Sg Gen => x + "buczka";
+      SF Sg Dat => x + "buczkowi";
+      SF Sg Acc => x + "buczka";
+      SF Sg Instr => x + "buczkiem";
+      SF Sg Loc => x + "buczku";
+      SF Sg Voc => x + "buczku";
+      SF Pl Nom => x + "Buczkowie";
+      SF Pl Gen => x + "buczków";
+      SF Pl Dat => x + "buczkom";
+      SF Pl Acc => x + "buczków";
+      SF Pl Instr => x + "buczkami";
+      SF Pl Loc => x + "buczkach";
+      SF Pl Voc => x + "Buczkowie"
+    };
+
+    oper mkNTable0193: Str -> SubstForm => Str; --%
+    oper mkNTable0193 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0194: Str -> SubstForm => Str; --%
+    oper mkNTable0194 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "bur";
+      SF Sg Gen => x + "bura";
+      SF Sg Dat => x + "Burowi";
+      SF Sg Acc => x + "bura";
+      SF Sg Instr => x + "Burem";
+      SF Sg Loc => x + "burze";
+      SF Sg Voc => x + "burze";
+      SF Pl Nom => x + "Burowie";
+      SF Pl Gen => x + "Burów";
+      SF Pl Dat => x + "burom";
+      SF Pl Acc => x + "Burów";
+      SF Pl Instr => x + "burami";
+      SF Pl Loc => x + "burach";
+      SF Pl Voc => x + "Burowie"
+    };
+
+    oper mkNTable0195: Str -> SubstForm => Str; --%
+    oper mkNTable0195 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "burbon";
+      SF Sg Gen => x + "burbona";
+      SF Sg Dat => x + "burbonowi";
+      SF Sg Acc => x + "burbona";
+      SF Sg Instr => x + "burbonem";
+      SF Sg Loc => x + "burbonie";
+      SF Sg Voc => x + "burbonie";
+      SF Pl Nom => x + "Burbonowie";
+      SF Pl Gen => x + "burbonów";
+      SF Pl Dat => x + "burbonom";
+      SF Pl Acc => x + "burbonów";
+      SF Pl Instr => x + "burbonami";
+      SF Pl Loc => x + "burbonach";
+      SF Pl Voc => x + "Burbonowie"
+    };
+
+    oper mkNTable0196: Str -> SubstForm => Str; --%
+    oper mkNTable0196 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "burgund";
+      SF Sg Gen => x + "burgunda";
+      SF Sg Dat => x + "burgundowi";
+      SF Sg Acc => x + "burgunda";
+      SF Sg Instr => x + "burgundem";
+      SF Sg Loc => x + "burgundzie";
+      SF Sg Voc => x + "burgundzie";
+      SF Pl Nom => x + "Burgundowie";
+      SF Pl Gen => x + "burgundów";
+      SF Pl Dat => x + "burgundom";
+      SF Pl Acc => x + "burgundów";
+      SF Pl Instr => x + "burgundami";
+      SF Pl Loc => x + "burgundach";
+      SF Pl Voc => x + "Burgundowie"
+    };
+
+    oper mkNTable0197: Str -> SubstForm => Str; --%
+    oper mkNTable0197 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0199: Str -> SubstForm => Str; --%
+    oper mkNTable0199 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0201: Str -> SubstForm => Str; --%
+    oper mkNTable0201 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "bąk";
+      SF Sg Gen => x + "bąka";
+      SF Sg Dat => x + "bąkowi";
+      SF Sg Acc => x + "bąka";
+      SF Sg Instr => x + "bąkiem";
+      SF Sg Loc => x + "bąku";
+      SF Sg Voc => x + "bąku";
+      SF Pl Nom => x + "Bąkowie";
+      SF Pl Gen => x + "bąków";
+      SF Pl Dat => x + "bąkom";
+      SF Pl Acc => x + "bąków";
+      SF Pl Instr => x + "bąkami";
+      SF Pl Loc => x + "bąkach";
+      SF Pl Voc => x + "Bąkowie"
+    };
+
+    oper mkNTable0203: Str -> SubstForm => Str; --%
+    oper mkNTable0203 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0205: Str -> SubstForm => Str; --%
+    oper mkNTable0205 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "óbr";
+      SF Sg Gen => x + "obru";
+      SF Sg Dat => x + "obrowi";
+      SF Sg Acc => x + "óbr";
+      SF Sg Instr => x + "obrem";
+      SF Sg Loc => x + "obrze";
+      SF Sg Voc => x + "obrze";
+      SF Pl Nom => x + "obry";
+      SF Pl Gen => x + "obrów";
+      SF Pl Dat => x + "obrom";
+      SF Pl Acc => x + "obry";
+      SF Pl Instr => x + "obrami";
+      SF Pl Loc => x + "obrach";
+      SF Pl Voc => x + "obry"
+    };
+
+    oper mkNTable0206: Str -> SubstForm => Str; --%
+    oper mkNTable0206 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "bór";
+      SF Sg Gen => x + "bora";
+      SF Sg Dat => x + "borowi";
+      SF Sg Acc => x + "bora";
+      SF Sg Instr => x + "borem";
+      SF Sg Loc => x + "borze";
+      SF Sg Voc => x + "borze";
+      SF Pl Nom => x + "Borowie";
+      SF Pl Gen => x + "borów";
+      SF Pl Dat => x + "borom";
+      SF Pl Acc => x + "borów";
+      SF Pl Instr => x + "borami";
+      SF Pl Loc => x + "borach";
+      SF Pl Voc => x + "Borowie"
+    };
+
+    oper mkNTable0207: Str -> SubstForm => Str; --%
+    oper mkNTable0207 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0208: Str -> SubstForm => Str; --%
+    oper mkNTable0208 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0209: Str -> SubstForm => Str; --%
+    oper mkNTable0209 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "celestyna";
+      SF Sg Gen => x + "celestyny";
+      SF Sg Dat => x + "celestynie";
+      SF Sg Acc => x + "Celestynę";
+      SF Sg Instr => x + "Celestyną";
+      SF Sg Loc => x + "celestynie";
+      SF Sg Voc => x + "Celestyno";
+      SF Pl Nom => x + "celestyny";
+      SF Pl Gen => x + "celestyn";
+      SF Pl Dat => x + "celestynom";
+      SF Pl Acc => x + "celestyny";
+      SF Pl Instr => x + "celestynami";
+      SF Pl Loc => x + "celestynach";
+      SF Pl Voc => x + "celestyny"
+    };
+
+    oper mkNTable0211: Str -> SubstForm => Str; --%
+    oper mkNTable0211 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "celt";
+      SF Sg Gen => x + "celta";
+      SF Sg Dat => x + "Celtowi";
+      SF Sg Acc => x + "celta";
+      SF Sg Instr => x + "Celtem";
+      SF Sg Loc => x + "celcie";
+      SF Sg Voc => x + "celcie";
+      SF Pl Nom => x + "Celtowie";
+      SF Pl Gen => x + "Celtów";
+      SF Pl Dat => x + "celtom";
+      SF Pl Acc => x + "Celtów";
+      SF Pl Instr => x + "celtami";
+      SF Pl Loc => x + "celtach";
+      SF Pl Voc => x + "Celtowie"
+    };
+
+    oper mkNTable0212: Str -> SubstForm => Str; --%
+    oper mkNTable0212 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "cezary";
+      SF Sg Gen => x + "Cezarego";
+      SF Sg Dat => x + "Cezaremu";
+      SF Sg Acc => x + "Cezarego";
+      SF Sg Instr => x + "Cezarym";
+      SF Sg Loc => x + "Cezarym";
+      SF Sg Voc => x + "cezary";
+      SF Pl Nom => x + "cezarowie";
+      SF Pl Gen => x + "Cezarych";
+      SF Pl Dat => x + "Cezarym";
+      SF Pl Acc => x + "Cezarych";
+      SF Pl Instr => x + "Cezarymi";
+      SF Pl Loc => x + "Cezarych";
+      SF Pl Voc => x + "cezarowie"
+    };
+
+    oper mkNTable0213: Str -> SubstForm => Str; --%
+    oper mkNTable0213 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "charleston";
+      SF Sg Gen => x + "Charlestonu";
+      SF Sg Dat => x + "charlestonowi";
+      SF Sg Acc => x + "charleston";
+      SF Sg Instr => x + "charlestonem";
+      SF Sg Loc => x + "charlestonie";
+      SF Sg Voc => x + "charlestonie";
+      SF Pl Nom => x + "charlestony";
+      SF Pl Gen => x + "charlestonów";
+      SF Pl Dat => x + "charlestonom";
+      SF Pl Acc => x + "charlestony";
+      SF Pl Instr => x + "charlestonami";
+      SF Pl Loc => x + "charlestonach";
+      SF Pl Voc => x + "charlestony"
+    };
+
+    oper mkNTable0215: Str -> SubstForm => Str; --%
+    oper mkNTable0215 lexem = 
+      let x = Predef.tk 13 lexem in
+    table { 
+      SF Sg Nom => x + "chateaubriand";
+      SF Sg Gen => x + "chateaubrianda";
+      SF Sg Dat => x + "chateaubriandowi";
+      SF Sg Acc => x + "chateaubrianda";
+      SF Sg Instr => x + "chateaubriandem";
+      SF Sg Loc => x + "chateaubriandzie";
+      SF Sg Voc => x + "chateaubriandzie";
+      SF Pl Nom => x + "Chateaubriandowie";
+      SF Pl Gen => x + "chateaubriandów";
+      SF Pl Dat => x + "chateaubriandom";
+      SF Pl Acc => x + "chateaubriandów";
+      SF Pl Instr => x + "chateaubriandami";
+      SF Pl Loc => x + "chateaubriandach";
+      SF Pl Voc => x + "Chateaubriandowie"
+    };
+
+    oper mkNTable0217: Str -> SubstForm => Str; --%
+    oper mkNTable0217 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "chińczyk";
+      SF Sg Gen => x + "chińczyka";
+      SF Sg Dat => x + "chińczykowi";
+      SF Sg Acc => x + "chińczyka";
+      SF Sg Instr => x + "chińczykiem";
+      SF Sg Loc => x + "chińczyku";
+      SF Sg Voc => x + "chińczyku";
+      SF Pl Nom => x + "Chińczycy";
+      SF Pl Gen => x + "chińczyków";
+      SF Pl Dat => x + "chińczykom";
+      SF Pl Acc => x + "chińczyków";
+      SF Pl Instr => x + "chińczykami";
+      SF Pl Loc => x + "chińczykach";
+      SF Pl Voc => x + "Chińczycy"
+    };
+
+    oper mkNTable0221: Str -> SubstForm => Str; --%
+    oper mkNTable0221 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable0222: Str -> SubstForm => Str; --%
+    oper mkNTable0222 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "Christian";
+      SF Sg Gen => x + "Christiana";
+      SF Sg Dat => x + "Christianowi";
+      SF Sg Acc => x + "Christiana";
+      SF Sg Instr => x + "Christianem";
+      SF Sg Loc => x + "christianie";
+      SF Sg Voc => x + "christianie";
+      SF Pl Nom => x + "Christianowie";
+      SF Pl Gen => x + "Christianów";
+      SF Pl Dat => x + "Christianom";
+      SF Pl Acc => x + "Christianów";
+      SF Pl Instr => x + "Christianami";
+      SF Pl Loc => x + "Christianach";
+      SF Pl Voc => x + "Christianowie"
+    };
+
+    oper mkNTable0223: Str -> SubstForm => Str; --%
+    oper mkNTable0223 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0224: Str -> SubstForm => Str; --%
+    oper mkNTable0224 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "Chrystian";
+      SF Sg Gen => x + "Chrystiana";
+      SF Sg Dat => x + "Chrystianowi";
+      SF Sg Acc => x + "Chrystiana";
+      SF Sg Instr => x + "Chrystianem";
+      SF Sg Loc => x + "chrystianie";
+      SF Sg Voc => x + "chrystianie";
+      SF Pl Nom => x + "Chrystianowie";
+      SF Pl Gen => x + "Chrystianów";
+      SF Pl Dat => x + "Chrystianom";
+      SF Pl Acc => x + "Chrystianów";
+      SF Pl Instr => x + "Chrystianami";
+      SF Pl Loc => x + "Chrystianach";
+      SF Pl Voc => x + "Chrystianowie"
+    };
+
+    oper mkNTable0226: Str -> SubstForm => Str; --%
+    oper mkNTable0226 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "chudoba";
+      SF Sg Gen => x + "chudoby";
+      SF Sg Dat => x + "chudobie";
+      SF Sg Acc => x + "chudobę";
+      SF Sg Instr => x + "chudobą";
+      SF Sg Loc => x + "chudobie";
+      SF Sg Voc => x + "chudobo";
+      SF Pl Nom => x + "Chudobowie";
+      SF Pl Gen => x + "Chudobów";
+      SF Pl Dat => x + "chudobom";
+      SF Pl Acc => x + "Chudobów";
+      SF Pl Instr => x + "chudobami";
+      SF Pl Loc => x + "chudobach";
+      SF Pl Voc => x + "Chudobowie"
+    };
+
+    oper mkNTable0227: Str -> SubstForm => Str; --%
+    oper mkNTable0227 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ł";
+      SF Sg Gen => x + "łu";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ł";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable0228: Str -> SubstForm => Str; --%
+    oper mkNTable0228 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óg";
+      SF Sg Gen => x + "oga";
+      SF Sg Dat => x + "ogowi";
+      SF Sg Acc => x + "oga";
+      SF Sg Instr => x + "ogiem";
+      SF Sg Loc => x + "ogu";
+      SF Sg Voc => x + "ogu";
+      SF Pl Nom => x + "ogowie";
+      SF Pl Gen => x + "ogów";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogów";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogowie"
+    };
+
+    oper mkNTable0231: Str -> SubstForm => Str; --%
+    oper mkNTable0231 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "cieśla";
+      SF Sg Gen => x + "cieśli";
+      SF Sg Dat => x + "cieśli";
+      SF Sg Acc => x + "cieślę";
+      SF Sg Instr => x + "cieślą";
+      SF Sg Loc => x + "cieśli";
+      SF Sg Voc => x + "cieślo";
+      SF Pl Nom => x + "Cieślowie";
+      SF Pl Gen => x + "cieślów";
+      SF Pl Dat => x + "cieślom";
+      SF Pl Acc => x + "cieślów";
+      SF Pl Instr => x + "cieślami";
+      SF Pl Loc => x + "cieślach";
+      SF Pl Voc => x + "Cieślowie"
+    };
+
+    oper mkNTable0232: Str -> SubstForm => Str; --%
+    oper mkNTable0232 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "ciećwierz";
+      SF Sg Gen => x + "ciećwierza";
+      SF Sg Dat => x + "ciećwierzowi";
+      SF Sg Acc => x + "ciećwierza";
+      SF Sg Instr => x + "ciećwierzem";
+      SF Sg Loc => x + "ciećwierzu";
+      SF Sg Voc => x + "ciećwierzu";
+      SF Pl Nom => x + "Ciećwierzowie";
+      SF Pl Gen => x + "ciećwierzów";
+      SF Pl Dat => x + "ciećwierzom";
+      SF Pl Acc => x + "ciećwierzów";
+      SF Pl Instr => x + "ciećwierzami";
+      SF Pl Loc => x + "ciećwierzach";
+      SF Pl Voc => x + "Ciećwierzowie"
+    };
+
+    oper mkNTable0233: Str -> SubstForm => Str; --%
+    oper mkNTable0233 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "ciołek";
+      SF Sg Gen => x + "ciołka";
+      SF Sg Dat => x + "ciołkowi";
+      SF Sg Acc => x + "ciołka";
+      SF Sg Instr => x + "ciołkiem";
+      SF Sg Loc => x + "ciołku";
+      SF Sg Voc => x + "ciołku";
+      SF Pl Nom => x + "Ciołkowie";
+      SF Pl Gen => x + "ciołków";
+      SF Pl Dat => x + "ciołkom";
+      SF Pl Acc => x + "ciołków";
+      SF Pl Instr => x + "ciołkami";
+      SF Pl Loc => x + "ciołkach";
+      SF Pl Voc => x + "Ciołkowie"
+    };
+
+    oper mkNTable0236: Str -> SubstForm => Str; --%
+    oper mkNTable0236 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0237: Str -> SubstForm => Str; --%
+    oper mkNTable0237 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "cyganiak";
+      SF Sg Gen => x + "cyganiaka";
+      SF Sg Dat => x + "cyganiakowi";
+      SF Sg Acc => x + "cyganiaka";
+      SF Sg Instr => x + "cyganiakiem";
+      SF Sg Loc => x + "cyganiaku";
+      SF Sg Voc => x + "cyganiaku";
+      SF Pl Nom => x + "Cyganiacy";
+      SF Pl Gen => x + "cyganiaków";
+      SF Pl Dat => x + "cyganiakom";
+      SF Pl Acc => x + "cyganiaków";
+      SF Pl Instr => x + "cyganiakami";
+      SF Pl Loc => x + "cyganiakach";
+      SF Pl Voc => x + "Cyganiacy"
+    };
+
+    oper mkNTable0238: Str -> SubstForm => Str; --%
+    oper mkNTable0238 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cha";
+      SF Sg Gen => x + "chy";
+      SF Sg Dat => x + "sze";
+      SF Sg Acc => x + "chę";
+      SF Sg Instr => x + "chą";
+      SF Sg Loc => x + "sze";
+      SF Sg Voc => x + "cho";
+      SF Pl Nom => x + "chy";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "chom";
+      SF Pl Acc => x + "chy";
+      SF Pl Instr => x + "chami";
+      SF Pl Loc => x + "chach";
+      SF Pl Voc => x + "chy"
+    };
+
+    oper mkNTable0239: Str -> SubstForm => Str; --%
+    oper mkNTable0239 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ko";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "ku";
+      SF Sg Acc => x + "ko";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "ka";
+      SF Pl Gen => x + "ek";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ka";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ka"
+    };
+
+    oper mkNTable0240: Str -> SubstForm => Str; --%
+    oper mkNTable0240 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Czaja";
+      SF Sg Gen => x + "Czai";
+      SF Sg Dat => x + "Czai";
+      SF Sg Acc => x + "Czaję";
+      SF Sg Instr => x + "Czają";
+      SF Sg Loc => x + "Czai";
+      SF Sg Voc => x + "Czajo";
+      SF Pl Nom => x + "Czajowie";
+      SF Pl Gen => x + "czajów";
+      SF Pl Dat => x + "czajom";
+      SF Pl Acc => x + "czajów";
+      SF Pl Instr => x + "czajami";
+      SF Pl Loc => x + "czajach";
+      SF Pl Voc => x + "Czajowie"
+    };
+
+    oper mkNTable0241: Str -> SubstForm => Str; --%
+    oper mkNTable0241 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "czajka";
+      SF Sg Gen => x + "czajki";
+      SF Sg Dat => x + "czajce";
+      SF Sg Acc => x + "czajkę";
+      SF Sg Instr => x + "czajką";
+      SF Sg Loc => x + "czajce";
+      SF Sg Voc => x + "czajko";
+      SF Pl Nom => x + "Czajkowie";
+      SF Pl Gen => x + "Czajków";
+      SF Pl Dat => x + "czajkom";
+      SF Pl Acc => x + "Czajków";
+      SF Pl Instr => x + "czajkami";
+      SF Pl Loc => x + "czajkach";
+      SF Pl Voc => x + "Czajkowie"
+    };
+
+    oper mkNTable0242: Str -> SubstForm => Str; --%
+    oper mkNTable0242 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "czapek";
+      SF Sg Gen => x + "czapka";
+      SF Sg Dat => x + "Czapkowi";
+      SF Sg Acc => x + "czapka";
+      SF Sg Instr => x + "Czapkiem";
+      SF Sg Loc => x + "Czapku";
+      SF Sg Voc => x + "Czapku";
+      SF Pl Nom => x + "Czapkowie";
+      SF Pl Gen => x + "Czapków";
+      SF Pl Dat => x + "czapkom";
+      SF Pl Acc => x + "Czapków";
+      SF Pl Instr => x + "czapkami";
+      SF Pl Loc => x + "czapkach";
+      SF Pl Voc => x + "Czapkowie"
+    };
+
+    oper mkNTable0243: Str -> SubstForm => Str; --%
+    oper mkNTable0243 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cze";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable0244: Str -> SubstForm => Str; --%
+    oper mkNTable0244 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "sia";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "siów";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "siów";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable0245: Str -> SubstForm => Str; --%
+    oper mkNTable0245 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ch";
+      SF Sg Gen => x + "cha";
+      SF Sg Dat => x + "chowi";
+      SF Sg Acc => x + "cha";
+      SF Sg Instr => x + "chem";
+      SF Sg Loc => x + "chu";
+      SF Sg Voc => x + "chu";
+      SF Pl Nom => x + "si";
+      SF Pl Gen => x + "chów";
+      SF Pl Dat => x + "chom";
+      SF Pl Acc => x + "chów";
+      SF Pl Instr => x + "chami";
+      SF Pl Loc => x + "chach";
+      SF Pl Voc => x + "si"
+    };
+
+    oper mkNTable0246: Str -> SubstForm => Str; --%
+    oper mkNTable0246 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "czeczot";
+      SF Sg Gen => x + "czeczota";
+      SF Sg Dat => x + "Czeczotowi";
+      SF Sg Acc => x + "czeczota";
+      SF Sg Instr => x + "Czeczotem";
+      SF Sg Loc => x + "czeczocie";
+      SF Sg Voc => x + "czeczocie";
+      SF Pl Nom => x + "Czeczotowie";
+      SF Pl Gen => x + "Czeczotów";
+      SF Pl Dat => x + "czeczotom";
+      SF Pl Acc => x + "Czeczotów";
+      SF Pl Instr => x + "czeczotami";
+      SF Pl Loc => x + "czeczotach";
+      SF Pl Voc => x + "Czeczotowie"
+    };
+
+    oper mkNTable0247: Str -> SubstForm => Str; --%
+    oper mkNTable0247 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "czerkies";
+      SF Sg Gen => x + "czerkiesa";
+      SF Sg Dat => x + "czerkiesowi";
+      SF Sg Acc => x + "czerkiesa";
+      SF Sg Instr => x + "czerkiesem";
+      SF Sg Loc => x + "czerkiesie";
+      SF Sg Voc => x + "czerkiesie";
+      SF Pl Nom => x + "Czerkiesi";
+      SF Pl Gen => x + "czerkiesów";
+      SF Pl Dat => x + "czerkiesom";
+      SF Pl Acc => x + "czerkiesów";
+      SF Pl Instr => x + "czerkiesami";
+      SF Pl Loc => x + "czerkiesach";
+      SF Pl Voc => x + "Czerkiesi"
+    };
+
+    oper mkNTable0250: Str -> SubstForm => Str; --%
+    oper mkNTable0250 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Czerny";
+      SF Sg Gen => x + "Czernego";
+      SF Sg Dat => x + "Czernemu";
+      SF Sg Acc => x + "Czernego";
+      SF Sg Instr => x + "Czernym";
+      SF Sg Loc => x + "Czernym";
+      SF Sg Voc => x + "Czerny";
+      SF Pl Nom => x + "czerni";
+      SF Pl Gen => x + "Czernych";
+      SF Pl Dat => x + "Czernym";
+      SF Pl Acc => x + "Czernych";
+      SF Pl Instr => x + "Czernymi";
+      SF Pl Loc => x + "Czernych";
+      SF Pl Voc => x + "czerni"
+    };
+
+    oper mkNTable0251: Str -> SubstForm => Str; --%
+    oper mkNTable0251 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siek";
+      SF Sg Gen => x + "śka";
+      SF Sg Dat => x + "śkowi";
+      SF Sg Acc => x + "śka";
+      SF Sg Instr => x + "śkiem";
+      SF Sg Loc => x + "śku";
+      SF Sg Voc => x + "śku";
+      SF Pl Nom => x + "śkowie";
+      SF Pl Gen => x + "śków";
+      SF Pl Dat => x + "śkom";
+      SF Pl Acc => x + "śków";
+      SF Pl Instr => x + "śkami";
+      SF Pl Loc => x + "śkach";
+      SF Pl Voc => x + "śkowie"
+    };
+
+    oper mkNTable0252: Str -> SubstForm => Str; --%
+    oper mkNTable0252 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0253: Str -> SubstForm => Str; --%
+    oper mkNTable0253 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Czuma";
+      SF Sg Gen => x + "czumy";
+      SF Sg Dat => x + "czumie";
+      SF Sg Acc => x + "Czumę";
+      SF Sg Instr => x + "Czumą";
+      SF Sg Loc => x + "czumie";
+      SF Sg Voc => x + "Czumo";
+      SF Pl Nom => x + "Czumowie";
+      SF Pl Gen => x + "czumów";
+      SF Pl Dat => x + "czumom";
+      SF Pl Acc => x + "czumów";
+      SF Pl Instr => x + "czumami";
+      SF Pl Loc => x + "czumach";
+      SF Pl Voc => x + "Czumowie"
+    };
+
+    oper mkNTable0254: Str -> SubstForm => Str; --%
+    oper mkNTable0254 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "czyż";
+      SF Sg Gen => x + "czyża";
+      SF Sg Dat => x + "czyżowi";
+      SF Sg Acc => x + "czyża";
+      SF Sg Instr => x + "czyżem";
+      SF Sg Loc => x + "czyżu";
+      SF Sg Voc => x + "czyżu";
+      SF Pl Nom => x + "Czyżowie";
+      SF Pl Gen => x + "czyżów";
+      SF Pl Dat => x + "czyżom";
+      SF Pl Acc => x + "czyżów";
+      SF Pl Instr => x + "czyżami";
+      SF Pl Loc => x + "czyżach";
+      SF Pl Voc => x + "Czyżowie"
+    };
+
+    oper mkNTable0256: Str -> SubstForm => Str; --%
+    oper mkNTable0256 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "daimler";
+      SF Sg Gen => x + "daimlera";
+      SF Sg Dat => x + "daimlerowi";
+      SF Sg Acc => x + "daimlera";
+      SF Sg Instr => x + "daimlerem";
+      SF Sg Loc => x + "daimlerze";
+      SF Sg Voc => x + "daimlerze";
+      SF Pl Nom => x + "Daimlerowie";
+      SF Pl Gen => x + "daimlerów";
+      SF Pl Dat => x + "daimlerom";
+      SF Pl Acc => x + "daimlerów";
+      SF Pl Instr => x + "daimlerami";
+      SF Pl Loc => x + "daimlerach";
+      SF Pl Voc => x + "Daimlerowie"
+    };
+
+    oper mkNTable0258: Str -> SubstForm => Str; --%
+    oper mkNTable0258 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "dali";
+      SF Sg Gen => x + "Dalego";
+      SF Sg Dat => x + "Dalemu";
+      SF Sg Acc => x + "Dalego";
+      SF Sg Instr => x + "Dalim";
+      SF Sg Loc => x + "Dalim";
+      SF Sg Voc => x + "dali";
+      SF Pl Nom => x + "dali";
+      SF Pl Gen => x + "Dalich";
+      SF Pl Dat => x + "Dalim";
+      SF Pl Acc => x + "Dalich";
+      SF Pl Instr => x + "Dalimi";
+      SF Pl Loc => x + "Dalich";
+      SF Pl Voc => x + "dali"
+    };
+
+    oper mkNTable0259: Str -> SubstForm => Str; --%
+    oper mkNTable0259 lexem = 
+      let x = Predef.tk 12 lexem in
+    table { 
+      SF Sg Nom => x + "dalmatyńczyk";
+      SF Sg Gen => x + "dalmatyńczyka";
+      SF Sg Dat => x + "dalmatyńczykowi";
+      SF Sg Acc => x + "dalmatyńczyka";
+      SF Sg Instr => x + "dalmatyńczykiem";
+      SF Sg Loc => x + "dalmatyńczyku";
+      SF Sg Voc => x + "dalmatyńczyku";
+      SF Pl Nom => x + "Dalmatyńczycy";
+      SF Pl Gen => x + "dalmatyńczyków";
+      SF Pl Dat => x + "dalmatyńczykom";
+      SF Pl Acc => x + "dalmatyńczyków";
+      SF Pl Instr => x + "dalmatyńczykami";
+      SF Pl Loc => x + "dalmatyńczykach";
+      SF Pl Voc => x + "Dalmatyńczycy"
+    };
+
+    oper mkNTable0260: Str -> SubstForm => Str; --%
+    oper mkNTable0260 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "dalton";
+      SF Sg Gen => x + "daltona";
+      SF Sg Dat => x + "daltonowi";
+      SF Sg Acc => x + "daltona";
+      SF Sg Instr => x + "daltonem";
+      SF Sg Loc => x + "daltonie";
+      SF Sg Voc => x + "daltonie";
+      SF Pl Nom => x + "Daltonowie";
+      SF Pl Gen => x + "daltonów";
+      SF Pl Dat => x + "daltonom";
+      SF Pl Acc => x + "daltonów";
+      SF Pl Instr => x + "daltonami";
+      SF Pl Loc => x + "daltonach";
+      SF Pl Voc => x + "Daltonowie"
+    };
+
+    oper mkNTable0261: Str -> SubstForm => Str; --%
+    oper mkNTable0261 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "danek";
+      SF Sg Gen => x + "danka";
+      SF Sg Dat => x + "Dankowi";
+      SF Sg Acc => x + "danka";
+      SF Sg Instr => x + "dankiem";
+      SF Sg Loc => x + "danku";
+      SF Sg Voc => x + "danku";
+      SF Pl Nom => x + "Dankowie";
+      SF Pl Gen => x + "Danków";
+      SF Pl Dat => x + "dankom";
+      SF Pl Acc => x + "Danków";
+      SF Pl Instr => x + "dankami";
+      SF Pl Loc => x + "dankach";
+      SF Pl Voc => x + "Dankowie"
+    };
+
+    oper mkNTable0262: Str -> SubstForm => Str; --%
+    oper mkNTable0262 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "dania";
+      SF Sg Gen => x + "Danii";
+      SF Sg Dat => x + "Danii";
+      SF Sg Acc => x + "Danię";
+      SF Sg Instr => x + "danią";
+      SF Sg Loc => x + "Danii";
+      SF Sg Voc => x + "Danio";
+      SF Pl Nom => x + "danie";
+      SF Pl Gen => x + "Danii";
+      SF Pl Dat => x + "daniom";
+      SF Pl Acc => x + "danie";
+      SF Pl Instr => x + "daniami";
+      SF Pl Loc => x + "daniach";
+      SF Pl Voc => x + "danie"
+    };
+
+    oper mkNTable0263: Str -> SubstForm => Str; --%
+    oper mkNTable0263 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "ńca";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcu";
+      SF Pl Nom => x + "ńcowie";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńców";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńcowie"
+    };
+
+    oper mkNTable0264: Str -> SubstForm => Str; --%
+    oper mkNTable0264 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "daniel";
+      SF Sg Gen => x + "daniela";
+      SF Sg Dat => x + "danielowi";
+      SF Sg Acc => x + "daniela";
+      SF Sg Instr => x + "danielem";
+      SF Sg Loc => x + "danielu";
+      SF Sg Voc => x + "danielu";
+      SF Pl Nom => x + "daniele";
+      SF Pl Gen => x + "Danielów";
+      SF Pl Dat => x + "danielom";
+      SF Pl Acc => x + "Danielów";
+      SF Pl Instr => x + "danielami";
+      SF Pl Loc => x + "danielach";
+      SF Pl Voc => x + "daniele"
+    };
+
+    oper mkNTable0265: Str -> SubstForm => Str; --%
+    oper mkNTable0265 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "daniela";
+      SF Sg Gen => x + "danieli";
+      SF Sg Dat => x + "danieli";
+      SF Sg Acc => x + "Danielę";
+      SF Sg Instr => x + "Danielą";
+      SF Sg Loc => x + "danieli";
+      SF Sg Voc => x + "danielu";
+      SF Pl Nom => x + "daniele";
+      SF Pl Gen => x + "danieli";
+      SF Pl Dat => x + "danielom";
+      SF Pl Acc => x + "daniele";
+      SF Pl Instr => x + "danielami";
+      SF Pl Loc => x + "danielach";
+      SF Pl Voc => x + "daniele"
+    };
+
+    oper mkNTable0266: Str -> SubstForm => Str; --%
+    oper mkNTable0266 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "danka";
+      SF Sg Gen => x + "Danki";
+      SF Sg Dat => x + "Dance";
+      SF Sg Acc => x + "Dankę";
+      SF Sg Instr => x + "Danką";
+      SF Sg Loc => x + "Dance";
+      SF Sg Voc => x + "danko";
+      SF Pl Nom => x + "Danki";
+      SF Pl Gen => x + "danek";
+      SF Pl Dat => x + "dankom";
+      SF Pl Acc => x + "Danki";
+      SF Pl Instr => x + "dankami";
+      SF Pl Loc => x + "dankach";
+      SF Pl Voc => x + "Danki"
+    };
+
+    oper mkNTable0267: Str -> SubstForm => Str; --%
+    oper mkNTable0267 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "daria";
+      SF Sg Gen => x + "darii";
+      SF Sg Dat => x + "darii";
+      SF Sg Acc => x + "darię";
+      SF Sg Instr => x + "darią";
+      SF Sg Loc => x + "darii";
+      SF Sg Voc => x + "dario";
+      SF Pl Nom => x + "Darie";
+      SF Pl Gen => x + "darii";
+      SF Pl Dat => x + "Dariom";
+      SF Pl Acc => x + "Darie";
+      SF Pl Instr => x + "Dariami";
+      SF Pl Loc => x + "Dariach";
+      SF Pl Voc => x + "Darie"
+    };
+
+    oper mkNTable0268: Str -> SubstForm => Str; --%
+    oper mkNTable0268 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Dec";
+      SF Sg Gen => x + "Deca";
+      SF Sg Dat => x + "Decowi";
+      SF Sg Acc => x + "Deca";
+      SF Sg Instr => x + "Decem";
+      SF Sg Loc => x + "Decu";
+      SF Sg Voc => x + "Decu";
+      SF Pl Nom => x + "dece";
+      SF Pl Gen => x + "Deców";
+      SF Pl Dat => x + "Decom";
+      SF Pl Acc => x + "Deców";
+      SF Pl Instr => x + "Decami";
+      SF Pl Loc => x + "Decach";
+      SF Pl Voc => x + "dece"
+    };
+
+    oper mkNTable0269: Str -> SubstForm => Str; --%
+    oper mkNTable0269 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "delfina";
+      SF Sg Gen => x + "delfiny";
+      SF Sg Dat => x + "delfinie";
+      SF Sg Acc => x + "Delfinę";
+      SF Sg Instr => x + "Delfiną";
+      SF Sg Loc => x + "delfinie";
+      SF Sg Voc => x + "Delfino";
+      SF Pl Nom => x + "delfiny";
+      SF Pl Gen => x + "delfin";
+      SF Pl Dat => x + "delfinom";
+      SF Pl Acc => x + "delfiny";
+      SF Pl Instr => x + "delfinami";
+      SF Pl Loc => x + "delfinach";
+      SF Pl Voc => x + "delfiny"
+    };
+
+    oper mkNTable0271: Str -> SubstForm => Str; --%
+    oper mkNTable0271 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0272: Str -> SubstForm => Str; --%
+    oper mkNTable0272 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ły";
+      SF Sg Dat => x + "le";
+      SF Sg Acc => x + "łę";
+      SF Sg Instr => x + "łą";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "łowie";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "łowie"
+    };
+
+    oper mkNTable0273: Str -> SubstForm => Str; --%
+    oper mkNTable0273 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "dezyderia";
+      SF Sg Gen => x + "Dezyderii";
+      SF Sg Dat => x + "Dezyderii";
+      SF Sg Acc => x + "Dezyderię";
+      SF Sg Instr => x + "Dezyderią";
+      SF Sg Loc => x + "Dezyderii";
+      SF Sg Voc => x + "Dezyderio";
+      SF Pl Nom => x + "Dezyderie";
+      SF Pl Gen => x + "Dezyderii";
+      SF Pl Dat => x + "dezyderiom";
+      SF Pl Acc => x + "Dezyderie";
+      SF Pl Instr => x + "dezyderiami";
+      SF Pl Loc => x + "dezyderiach";
+      SF Pl Voc => x + "Dezyderie"
+    };
+
+    oper mkNTable0274: Str -> SubstForm => Str; --%
+    oper mkNTable0274 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Diana";
+      SF Sg Gen => x + "diany";
+      SF Sg Dat => x + "dianie";
+      SF Sg Acc => x + "Dianę";
+      SF Sg Instr => x + "Dianą";
+      SF Sg Loc => x + "dianie";
+      SF Sg Voc => x + "Diano";
+      SF Pl Nom => x + "diany";
+      SF Pl Gen => x + "dian";
+      SF Pl Dat => x + "dianom";
+      SF Pl Acc => x + "diany";
+      SF Pl Instr => x + "dianami";
+      SF Pl Loc => x + "dianach";
+      SF Pl Voc => x + "diany"
+    };
+
+    oper mkNTable0276: Str -> SubstForm => Str; --%
+    oper mkNTable0276 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0277: Str -> SubstForm => Str; --%
+    oper mkNTable0277 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "dobosz";
+      SF Sg Gen => x + "dobosza";
+      SF Sg Dat => x + "doboszowi";
+      SF Sg Acc => x + "dobosza";
+      SF Sg Instr => x + "doboszem";
+      SF Sg Loc => x + "doboszu";
+      SF Sg Voc => x + "doboszu";
+      SF Pl Nom => x + "Doboszowie";
+      SF Pl Gen => x + "doboszów";
+      SF Pl Dat => x + "doboszom";
+      SF Pl Acc => x + "doboszów";
+      SF Pl Instr => x + "doboszami";
+      SF Pl Loc => x + "doboszach";
+      SF Pl Voc => x + "Doboszowie"
+    };
+
+    oper mkNTable0278: Str -> SubstForm => Str; --%
+    oper mkNTable0278 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "sta";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "stowie";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "stów";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "stowie"
+    };
+
+    oper mkNTable0279: Str -> SubstForm => Str; --%
+    oper mkNTable0279 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "domek";
+      SF Sg Gen => x + "Domka";
+      SF Sg Dat => x + "domkowi";
+      SF Sg Acc => x + "Domka";
+      SF Sg Instr => x + "domkiem";
+      SF Sg Loc => x + "domku";
+      SF Sg Voc => x + "domku";
+      SF Pl Nom => x + "Domkowie";
+      SF Pl Gen => x + "domków";
+      SF Pl Dat => x + "domkom";
+      SF Pl Acc => x + "domków";
+      SF Pl Instr => x + "domkami";
+      SF Pl Loc => x + "domkach";
+      SF Pl Voc => x + "Domkowie"
+    };
+
+    oper mkNTable0280: Str -> SubstForm => Str; --%
+    oper mkNTable0280 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0281: Str -> SubstForm => Str; --%
+    oper mkNTable0281 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Domka";
+      SF Sg Gen => x + "domki";
+      SF Sg Dat => x + "Domce";
+      SF Sg Acc => x + "Domkę";
+      SF Sg Instr => x + "Domką";
+      SF Sg Loc => x + "Domce";
+      SF Sg Voc => x + "Domko";
+      SF Pl Nom => x + "domki";
+      SF Pl Gen => x + "domek";
+      SF Pl Dat => x + "domkom";
+      SF Pl Acc => x + "domki";
+      SF Pl Instr => x + "domkami";
+      SF Pl Loc => x + "domkach";
+      SF Pl Voc => x + "domki"
+    };
+
+    oper mkNTable0282: Str -> SubstForm => Str; --%
+    oper mkNTable0282 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "don";
+      SF Sg Gen => x + "Donu";
+      SF Sg Dat => x + "donowi";
+      SF Sg Acc => x + "don";
+      SF Sg Instr => x + "donem";
+      SF Sg Loc => x + "donie";
+      SF Sg Voc => x + "donie";
+      SF Pl Nom => x + "dony";
+      SF Pl Gen => x + "donów";
+      SF Pl Dat => x + "donom";
+      SF Pl Acc => x + "dony";
+      SF Pl Instr => x + "donami";
+      SF Pl Loc => x + "donach";
+      SF Pl Voc => x + "dony"
+    };
+
+    oper mkNTable0283: Str -> SubstForm => Str; --%
+    oper mkNTable0283 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "donald";
+      SF Sg Gen => x + "donalda";
+      SF Sg Dat => x + "donaldowi";
+      SF Sg Acc => x + "donalda";
+      SF Sg Instr => x + "donaldem";
+      SF Sg Loc => x + "donaldzie";
+      SF Sg Voc => x + "donaldzie";
+      SF Pl Nom => x + "Donaldowie";
+      SF Pl Gen => x + "donaldów";
+      SF Pl Dat => x + "donaldom";
+      SF Pl Acc => x + "donaldów";
+      SF Pl Instr => x + "donaldami";
+      SF Pl Loc => x + "donaldach";
+      SF Pl Voc => x + "Donaldowie"
+    };
+
+    oper mkNTable0284: Str -> SubstForm => Str; --%
+    oper mkNTable0284 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "ńca";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcze";
+      SF Pl Nom => x + "ńcy";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńców";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńcy"
+    };
+
+    oper mkNTable0285: Str -> SubstForm => Str; --%
+    oper mkNTable0285 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "douglas";
+      SF Sg Gen => x + "douglasa";
+      SF Sg Dat => x + "douglasowi";
+      SF Sg Acc => x + "douglasa";
+      SF Sg Instr => x + "douglasem";
+      SF Sg Loc => x + "douglasie";
+      SF Sg Voc => x + "douglasie";
+      SF Pl Nom => x + "Douglasowie";
+      SF Pl Gen => x + "douglasów";
+      SF Pl Dat => x + "douglasom";
+      SF Pl Acc => x + "douglasów";
+      SF Pl Instr => x + "douglasami";
+      SF Pl Loc => x + "douglasach";
+      SF Pl Voc => x + "Douglasowie"
+    };
+
+    oper mkNTable0286: Str -> SubstForm => Str; --%
+    oper mkNTable0286 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "down";
+      SF Sg Gen => x + "downa";
+      SF Sg Dat => x + "downowi";
+      SF Sg Acc => x + "downa";
+      SF Sg Instr => x + "downem";
+      SF Sg Loc => x + "downie";
+      SF Sg Voc => x + "downie";
+      SF Pl Nom => x + "Downowie";
+      SF Pl Gen => x + "downów";
+      SF Pl Dat => x + "downom";
+      SF Pl Acc => x + "downów";
+      SF Pl Instr => x + "downami";
+      SF Pl Loc => x + "downach";
+      SF Pl Voc => x + "Downowie"
+    };
+
+    oper mkNTable0287: Str -> SubstForm => Str; --%
+    oper mkNTable0287 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ga";
+      SF Sg Gen => x + "gi";
+      SF Sg Dat => x + "dze";
+      SF Sg Acc => x + "gę";
+      SF Sg Instr => x + "gą";
+      SF Sg Loc => x + "dze";
+      SF Sg Voc => x + "go";
+      SF Pl Nom => x + "gowie";
+      SF Pl Gen => x + "gów";
+      SF Pl Dat => x + "gom";
+      SF Pl Acc => x + "gów";
+      SF Pl Instr => x + "gami";
+      SF Pl Loc => x + "gach";
+      SF Pl Voc => x + "gowie"
+    };
+
+    oper mkNTable0289: Str -> SubstForm => Str; --%
+    oper mkNTable0289 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "drozd";
+      SF Sg Gen => x + "drozda";
+      SF Sg Dat => x + "drozdowi";
+      SF Sg Acc => x + "drozda";
+      SF Sg Instr => x + "drozdem";
+      SF Sg Loc => x + "droździe";
+      SF Sg Voc => x + "droździe";
+      SF Pl Nom => x + "Drozdowie";
+      SF Pl Gen => x + "drozdów";
+      SF Pl Dat => x + "drozdom";
+      SF Pl Acc => x + "drozdów";
+      SF Pl Instr => x + "drozdami";
+      SF Pl Loc => x + "drozdach";
+      SF Pl Voc => x + "Drozdowie"
+    };
+
+    oper mkNTable0290: Str -> SubstForm => Str; --%
+    oper mkNTable0290 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "dudek";
+      SF Sg Gen => x + "dudka";
+      SF Sg Dat => x + "dudkowi";
+      SF Sg Acc => x + "dudka";
+      SF Sg Instr => x + "dudkiem";
+      SF Sg Loc => x + "dudku";
+      SF Sg Voc => x + "dudku";
+      SF Pl Nom => x + "Dudkowie";
+      SF Pl Gen => x + "dudków";
+      SF Pl Dat => x + "dudkom";
+      SF Pl Acc => x + "dudków";
+      SF Pl Instr => x + "dudkami";
+      SF Pl Loc => x + "dudkach";
+      SF Pl Voc => x + "Dudkowie"
+    };
+
+    oper mkNTable0294: Str -> SubstForm => Str; --%
+    oper mkNTable0294 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "dzięcioł";
+      SF Sg Gen => x + "dzięcioła";
+      SF Sg Dat => x + "dzięciołowi";
+      SF Sg Acc => x + "dzięcioła";
+      SF Sg Instr => x + "dzięciołem";
+      SF Sg Loc => x + "dzięciole";
+      SF Sg Voc => x + "dzięciole";
+      SF Pl Nom => x + "Dzięciołowie";
+      SF Pl Gen => x + "dzięciołów";
+      SF Pl Dat => x + "dzięciołom";
+      SF Pl Acc => x + "dzięciołów";
+      SF Pl Instr => x + "dzięciołami";
+      SF Pl Loc => x + "dzięciołach";
+      SF Pl Voc => x + "Dzięciołowie"
+    };
+
+    oper mkNTable0295: Str -> SubstForm => Str; --%
+    oper mkNTable0295 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "dąbek";
+      SF Sg Gen => x + "dąbka";
+      SF Sg Dat => x + "dąbkowi";
+      SF Sg Acc => x + "dąbka";
+      SF Sg Instr => x + "dąbkiem";
+      SF Sg Loc => x + "dąbku";
+      SF Sg Voc => x + "dąbku";
+      SF Pl Nom => x + "Dąbkowie";
+      SF Pl Gen => x + "dąbków";
+      SF Pl Dat => x + "dąbkom";
+      SF Pl Acc => x + "dąbków";
+      SF Pl Instr => x + "dąbkami";
+      SF Pl Loc => x + "dąbkach";
+      SF Pl Voc => x + "Dąbkowie"
+    };
+
+    oper mkNTable0296: Str -> SubstForm => Str; --%
+    oper mkNTable0296 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "dębosz";
+      SF Sg Gen => x + "dębosza";
+      SF Sg Dat => x + "dęboszowi";
+      SF Sg Acc => x + "dębosza";
+      SF Sg Instr => x + "dęboszem";
+      SF Sg Loc => x + "dęboszu";
+      SF Sg Voc => x + "dęboszu";
+      SF Pl Nom => x + "Dęboszowie";
+      SF Pl Gen => x + "Dęboszów";
+      SF Pl Dat => x + "dęboszom";
+      SF Pl Acc => x + "Dęboszów";
+      SF Pl Instr => x + "dęboszami";
+      SF Pl Loc => x + "dęboszach";
+      SF Pl Voc => x + "Dęboszowie"
+    };
+
+    oper mkNTable0297: Str -> SubstForm => Str; --%
+    oper mkNTable0297 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "efraim";
+      SF Sg Gen => x + "efraima";
+      SF Sg Dat => x + "efraimowi";
+      SF Sg Acc => x + "efraima";
+      SF Sg Instr => x + "efraimem";
+      SF Sg Loc => x + "efraimie";
+      SF Sg Voc => x + "efraimie";
+      SF Pl Nom => x + "Efraimowie";
+      SF Pl Gen => x + "efraimów";
+      SF Pl Dat => x + "efraimom";
+      SF Pl Acc => x + "efraimów";
+      SF Pl Instr => x + "efraimami";
+      SF Pl Loc => x + "efraimach";
+      SF Pl Voc => x + "Efraimowie"
+    };
+
+    oper mkNTable0298: Str -> SubstForm => Str; --%
+    oper mkNTable0298 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "einstein";
+      SF Sg Gen => x + "einsteina";
+      SF Sg Dat => x + "einsteinowi";
+      SF Sg Acc => x + "einsteina";
+      SF Sg Instr => x + "einsteinem";
+      SF Sg Loc => x + "einsteinie";
+      SF Sg Voc => x + "einsteinie";
+      SF Pl Nom => x + "Einsteinowie";
+      SF Pl Gen => x + "einsteinów";
+      SF Pl Dat => x + "einsteinom";
+      SF Pl Acc => x + "einsteinów";
+      SF Pl Instr => x + "einsteinami";
+      SF Pl Loc => x + "einsteinach";
+      SF Pl Voc => x + "Einsteinowie"
+    };
+
+    oper mkNTable0300: Str -> SubstForm => Str; --%
+    oper mkNTable0300 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "x";
+      SF Sg Gen => x + "ksa";
+      SF Sg Dat => x + "ksowi";
+      SF Sg Acc => x + "ksa";
+      SF Sg Instr => x + "ksem";
+      SF Sg Loc => x + "ksie";
+      SF Sg Voc => x + "ksie";
+      SF Pl Nom => x + "ksowie";
+      SF Pl Gen => x + "ksów";
+      SF Pl Dat => x + "ksom";
+      SF Pl Acc => x + "ksów";
+      SF Pl Instr => x + "ksami";
+      SF Pl Loc => x + "ksach";
+      SF Pl Voc => x + "ksowie"
+    };
+
+    oper mkNTable0301: Str -> SubstForm => Str; --%
+    oper mkNTable0301 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Estera";
+      SF Sg Gen => x + "Estery";
+      SF Sg Dat => x + "Esterze";
+      SF Sg Acc => x + "Esterę";
+      SF Sg Instr => x + "Esterą";
+      SF Sg Loc => x + "Esterze";
+      SF Sg Voc => x + "Estero";
+      SF Pl Nom => x + "Estery";
+      SF Pl Gen => x + "ester";
+      SF Pl Dat => x + "Esterom";
+      SF Pl Acc => x + "Estery";
+      SF Pl Instr => x + "Esterami";
+      SF Pl Loc => x + "Esterach";
+      SF Pl Voc => x + "Estery"
+    };
+
+    oper mkNTable0302: Str -> SubstForm => Str; --%
+    oper mkNTable0302 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "tu";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "t";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0303: Str -> SubstForm => Str; --%
+    oper mkNTable0303 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Europa";
+      SF Sg Gen => x + "europy";
+      SF Sg Dat => x + "europie";
+      SF Sg Acc => x + "Europę";
+      SF Sg Instr => x + "Europą";
+      SF Sg Loc => x + "europie";
+      SF Sg Voc => x + "Europo";
+      SF Pl Nom => x + "europy";
+      SF Pl Gen => x + "europ";
+      SF Pl Dat => x + "europom";
+      SF Pl Acc => x + "europy";
+      SF Pl Instr => x + "europami";
+      SF Pl Loc => x + "europach";
+      SF Pl Voc => x + "europy"
+    };
+
+    oper mkNTable0304: Str -> SubstForm => Str; --%
+    oper mkNTable0304 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cia";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "cię";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ć";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable0305: Str -> SubstForm => Str; --%
+    oper mkNTable0305 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0306: Str -> SubstForm => Str; --%
+    oper mkNTable0306 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "fabian";
+      SF Sg Gen => x + "Fabiana";
+      SF Sg Dat => x + "Fabianowi";
+      SF Sg Acc => x + "Fabiana";
+      SF Sg Instr => x + "Fabianem";
+      SF Sg Loc => x + "fabianie";
+      SF Sg Voc => x + "fabianie";
+      SF Pl Nom => x + "Fabianowie";
+      SF Pl Gen => x + "fabianów";
+      SF Pl Dat => x + "fabianom";
+      SF Pl Acc => x + "fabianów";
+      SF Pl Instr => x + "fabianami";
+      SF Pl Loc => x + "fabianach";
+      SF Pl Voc => x + "Fabianowie"
+    };
+
+    oper mkNTable0307: Str -> SubstForm => Str; --%
+    oper mkNTable0307 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Falk";
+      SF Sg Gen => x + "falka";
+      SF Sg Dat => x + "Falkowi";
+      SF Sg Acc => x + "falka";
+      SF Sg Instr => x + "Falkiem";
+      SF Sg Loc => x + "Falku";
+      SF Sg Voc => x + "Falku";
+      SF Pl Nom => x + "Falkowie";
+      SF Pl Gen => x + "Falków";
+      SF Pl Dat => x + "falkom";
+      SF Pl Acc => x + "Falków";
+      SF Pl Instr => x + "falkami";
+      SF Pl Loc => x + "falkach";
+      SF Pl Voc => x + "Falkowie"
+    };
+
+    oper mkNTable0309: Str -> SubstForm => Str; --%
+    oper mkNTable0309 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "fałat";
+      SF Sg Gen => x + "fałata";
+      SF Sg Dat => x + "fałatowi";
+      SF Sg Acc => x + "fałata";
+      SF Sg Instr => x + "fałatem";
+      SF Sg Loc => x + "fałacie";
+      SF Sg Voc => x + "fałacie";
+      SF Pl Nom => x + "Fałatowie";
+      SF Pl Gen => x + "fałatów";
+      SF Pl Dat => x + "fałatom";
+      SF Pl Acc => x + "fałatów";
+      SF Pl Instr => x + "fałatami";
+      SF Pl Loc => x + "fałatach";
+      SF Pl Voc => x + "Fałatowie"
+    };
+
+    oper mkNTable0310: Str -> SubstForm => Str; --%
+    oper mkNTable0310 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Felicjan";
+      SF Sg Gen => x + "Felicjana";
+      SF Sg Dat => x + "Felicjanowi";
+      SF Sg Acc => x + "Felicjana";
+      SF Sg Instr => x + "Felicjanem";
+      SF Sg Loc => x + "felicjanie";
+      SF Sg Voc => x + "felicjanie";
+      SF Pl Nom => x + "Felicjanowie";
+      SF Pl Gen => x + "felicjanów";
+      SF Pl Dat => x + "felicjanom";
+      SF Pl Acc => x + "felicjanów";
+      SF Pl Instr => x + "felicjanami";
+      SF Pl Loc => x + "felicjanach";
+      SF Pl Voc => x + "Felicjanowie"
+    };
+
+    oper mkNTable0311: Str -> SubstForm => Str; --%
+    oper mkNTable0311 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "figura";
+      SF Sg Gen => x + "figury";
+      SF Sg Dat => x + "figurze";
+      SF Sg Acc => x + "figurę";
+      SF Sg Instr => x + "figurą";
+      SF Sg Loc => x + "figurze";
+      SF Sg Voc => x + "figuro";
+      SF Pl Nom => x + "Figurowie";
+      SF Pl Gen => x + "Figurów";
+      SF Pl Dat => x + "figurom";
+      SF Pl Acc => x + "Figurów";
+      SF Pl Instr => x + "figurami";
+      SF Pl Loc => x + "figurach";
+      SF Pl Voc => x + "Figurowie"
+    };
+
+    oper mkNTable0312: Str -> SubstForm => Str; --%
+    oper mkNTable0312 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "fil";
+      SF Sg Gen => x + "fila";
+      SF Sg Dat => x + "filowi";
+      SF Sg Acc => x + "fila";
+      SF Sg Instr => x + "filem";
+      SF Sg Loc => x + "filu";
+      SF Sg Voc => x + "filu";
+      SF Pl Nom => x + "Filowie";
+      SF Pl Gen => x + "filów";
+      SF Pl Dat => x + "filom";
+      SF Pl Acc => x + "filów";
+      SF Pl Instr => x + "filami";
+      SF Pl Loc => x + "filach";
+      SF Pl Voc => x + "Filowie"
+    };
+
+    oper mkNTable0313: Str -> SubstForm => Str; --%
+    oper mkNTable0313 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "filip";
+      SF Sg Gen => x + "filipa";
+      SF Sg Dat => x + "filipowi";
+      SF Sg Acc => x + "filipa";
+      SF Sg Instr => x + "filipem";
+      SF Sg Loc => x + "filipie";
+      SF Sg Voc => x + "filipie";
+      SF Pl Nom => x + "Filipowie";
+      SF Pl Gen => x + "filipów";
+      SF Pl Dat => x + "filipom";
+      SF Pl Acc => x + "filipów";
+      SF Pl Instr => x + "filipami";
+      SF Pl Loc => x + "filipach";
+      SF Pl Voc => x + "Filipowie"
+    };
+
+    oper mkNTable0314: Str -> SubstForm => Str; --%
+    oper mkNTable0314 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "filipa";
+      SF Sg Gen => x + "filipy";
+      SF Sg Dat => x + "filipie";
+      SF Sg Acc => x + "Filipę";
+      SF Sg Instr => x + "Filipą";
+      SF Sg Loc => x + "filipie";
+      SF Sg Voc => x + "Filipo";
+      SF Pl Nom => x + "filipy";
+      SF Pl Gen => x + "filip";
+      SF Pl Dat => x + "filipom";
+      SF Pl Acc => x + "filipy";
+      SF Pl Instr => x + "filipami";
+      SF Pl Loc => x + "filipach";
+      SF Pl Voc => x + "filipy"
+    };
+
+    oper mkNTable0315: Str -> SubstForm => Str; --%
+    oper mkNTable0315 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "filipina";
+      SF Sg Gen => x + "filipiny";
+      SF Sg Dat => x + "filipinie";
+      SF Sg Acc => x + "Filipinę";
+      SF Sg Instr => x + "Filipiną";
+      SF Sg Loc => x + "filipinie";
+      SF Sg Voc => x + "Filipino";
+      SF Pl Nom => x + "filipiny";
+      SF Pl Gen => x + "filipin";
+      SF Pl Dat => x + "filipinom";
+      SF Pl Acc => x + "filipiny";
+      SF Pl Instr => x + "filipinami";
+      SF Pl Loc => x + "filipinach";
+      SF Pl Voc => x + "filipiny"
+    };
+
+    oper mkNTable0316: Str -> SubstForm => Str; --%
+    oper mkNTable0316 lexem = 
+      let x = Predef.tk 11 lexem in
+    table { 
+      SF Sg Nom => x + "filipińczyk";
+      SF Sg Gen => x + "filipińczyka";
+      SF Sg Dat => x + "filipińczykowi";
+      SF Sg Acc => x + "filipińczyka";
+      SF Sg Instr => x + "filipińczykiem";
+      SF Sg Loc => x + "filipińczyku";
+      SF Sg Voc => x + "filipińczyku";
+      SF Pl Nom => x + "Filipińczycy";
+      SF Pl Gen => x + "filipińczyków";
+      SF Pl Dat => x + "filipińczykom";
+      SF Pl Acc => x + "filipińczyków";
+      SF Pl Instr => x + "filipińczykami";
+      SF Pl Loc => x + "filipińczykach";
+      SF Pl Voc => x + "Filipińczycy"
+    };
+
+    oper mkNTable0318: Str -> SubstForm => Str; --%
+    oper mkNTable0318 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "fin";
+      SF Sg Gen => x + "fina";
+      SF Sg Dat => x + "finowi";
+      SF Sg Acc => x + "fina";
+      SF Sg Instr => x + "finem";
+      SF Sg Loc => x + "finie";
+      SF Sg Voc => x + "finie";
+      SF Pl Nom => x + "Finowie";
+      SF Pl Gen => x + "finów";
+      SF Pl Dat => x + "finom";
+      SF Pl Acc => x + "finów";
+      SF Pl Instr => x + "finami";
+      SF Pl Loc => x + "finach";
+      SF Pl Voc => x + "Finowie"
+    };
+
+    oper mkNTable0319: Str -> SubstForm => Str; --%
+    oper mkNTable0319 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "firko";
+      SF Sg Gen => x + "firki";
+      SF Sg Dat => x + "firce";
+      SF Sg Acc => x + "firkę";
+      SF Sg Instr => x + "firką";
+      SF Sg Loc => x + "firce";
+      SF Sg Voc => x + "firko";
+      SF Pl Nom => x + "Firkowie";
+      SF Pl Gen => x + "Firków";
+      SF Pl Dat => x + "firkom";
+      SF Pl Acc => x + "Firków";
+      SF Pl Instr => x + "firkami";
+      SF Pl Loc => x + "firkach";
+      SF Pl Voc => x + "Firkowie"
+    };
+
+    oper mkNTable0320: Str -> SubstForm => Str; --%
+    oper mkNTable0320 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "firlej";
+      SF Sg Gen => x + "firleja";
+      SF Sg Dat => x + "firlejowi";
+      SF Sg Acc => x + "firleja";
+      SF Sg Instr => x + "firlejem";
+      SF Sg Loc => x + "firleju";
+      SF Sg Voc => x + "firleju";
+      SF Pl Nom => x + "Firlejowie";
+      SF Pl Gen => x + "firlejów";
+      SF Pl Dat => x + "firlejom";
+      SF Pl Acc => x + "firlejów";
+      SF Pl Instr => x + "firlejami";
+      SF Pl Loc => x + "firlejach";
+      SF Pl Voc => x + "Firlejowie"
+    };
+
+    oper mkNTable0321: Str -> SubstForm => Str; --%
+    oper mkNTable0321 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "flamand";
+      SF Sg Gen => x + "flamanda";
+      SF Sg Dat => x + "flamandowi";
+      SF Sg Acc => x + "flamanda";
+      SF Sg Instr => x + "flamandem";
+      SF Sg Loc => x + "flamandzie";
+      SF Sg Voc => x + "flamandzie";
+      SF Pl Nom => x + "Flamandowie";
+      SF Pl Gen => x + "flamandów";
+      SF Pl Dat => x + "flamandom";
+      SF Pl Acc => x + "flamandów";
+      SF Pl Instr => x + "flamandami";
+      SF Pl Loc => x + "flamandach";
+      SF Pl Voc => x + "Flamandowie"
+    };
+
+    oper mkNTable0322: Str -> SubstForm => Str; --%
+    oper mkNTable0322 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ford";
+      SF Sg Gen => x + "forda";
+      SF Sg Dat => x + "fordowi";
+      SF Sg Acc => x + "forda";
+      SF Sg Instr => x + "fordem";
+      SF Sg Loc => x + "fordzie";
+      SF Sg Voc => x + "fordzie";
+      SF Pl Nom => x + "Fordowie";
+      SF Pl Gen => x + "fordów";
+      SF Pl Dat => x + "fordom";
+      SF Pl Acc => x + "fordów";
+      SF Pl Instr => x + "fordami";
+      SF Pl Loc => x + "fordach";
+      SF Pl Voc => x + "Fordowie"
+    };
+
+    oper mkNTable0323: Str -> SubstForm => Str; --%
+    oper mkNTable0323 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "th";
+      SF Sg Gen => x + "tha";
+      SF Sg Dat => x + "thowi";
+      SF Sg Acc => x + "tha";
+      SF Sg Instr => x + "them";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "thowie";
+      SF Pl Gen => x + "thów";
+      SF Pl Dat => x + "thom";
+      SF Pl Acc => x + "thów";
+      SF Pl Instr => x + "thami";
+      SF Pl Loc => x + "thach";
+      SF Pl Voc => x + "thowie"
+    };
+
+    oper mkNTable0324: Str -> SubstForm => Str; --%
+    oper mkNTable0324 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "fortunata";
+      SF Sg Gen => x + "fortunaty";
+      SF Sg Dat => x + "fortunacie";
+      SF Sg Acc => x + "Fortunatę";
+      SF Sg Instr => x + "Fortunatą";
+      SF Sg Loc => x + "fortunacie";
+      SF Sg Voc => x + "Fortunato";
+      SF Pl Nom => x + "fortunaty";
+      SF Pl Gen => x + "fortunat";
+      SF Pl Dat => x + "fortunatom";
+      SF Pl Acc => x + "fortunaty";
+      SF Pl Instr => x + "fortunatami";
+      SF Pl Loc => x + "fortunatach";
+      SF Pl Voc => x + "fortunaty"
+    };
+
+    oper mkNTable0325: Str -> SubstForm => Str; --%
+    oper mkNTable0325 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "co";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "cowie";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cowie"
+    };
+
+    oper mkNTable0326: Str -> SubstForm => Str; --%
+    oper mkNTable0326 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "francuz";
+      SF Sg Gen => x + "francuza";
+      SF Sg Dat => x + "francuzowi";
+      SF Sg Acc => x + "francuza";
+      SF Sg Instr => x + "francuzem";
+      SF Sg Loc => x + "francuzie";
+      SF Sg Voc => x + "francuzie";
+      SF Pl Nom => x + "Francuzi";
+      SF Pl Gen => x + "francuzów";
+      SF Pl Dat => x + "francuzom";
+      SF Pl Acc => x + "francuzów";
+      SF Pl Instr => x + "francuzami";
+      SF Pl Loc => x + "francuzach";
+      SF Pl Voc => x + "Francuzi"
+    };
+
+    oper mkNTable0327: Str -> SubstForm => Str; --%
+    oper mkNTable0327 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Franek";
+      SF Sg Gen => x + "franka";
+      SF Sg Dat => x + "frankowi";
+      SF Sg Acc => x + "franka";
+      SF Sg Instr => x + "frankiem";
+      SF Sg Loc => x + "franku";
+      SF Sg Voc => x + "franku";
+      SF Pl Nom => x + "Frankowie";
+      SF Pl Gen => x + "franków";
+      SF Pl Dat => x + "frankom";
+      SF Pl Acc => x + "franków";
+      SF Pl Instr => x + "frankami";
+      SF Pl Loc => x + "frankach";
+      SF Pl Voc => x + "Frankowie"
+    };
+
+    oper mkNTable0328: Str -> SubstForm => Str; --%
+    oper mkNTable0328 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "frank";
+      SF Sg Gen => x + "franka";
+      SF Sg Dat => x + "frankowi";
+      SF Sg Acc => x + "franka";
+      SF Sg Instr => x + "frankiem";
+      SF Sg Loc => x + "franku";
+      SF Sg Voc => x + "franku";
+      SF Pl Nom => x + "Frankowie";
+      SF Pl Gen => x + "franków";
+      SF Pl Dat => x + "frankom";
+      SF Pl Acc => x + "franków";
+      SF Pl Instr => x + "frankami";
+      SF Pl Loc => x + "frankach";
+      SF Pl Voc => x + "Frankowie"
+    };
+
+    oper mkNTable0329: Str -> SubstForm => Str; --%
+    oper mkNTable0329 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "franklin";
+      SF Sg Gen => x + "franklina";
+      SF Sg Dat => x + "franklinowi";
+      SF Sg Acc => x + "franklina";
+      SF Sg Instr => x + "franklinem";
+      SF Sg Loc => x + "franklinie";
+      SF Sg Voc => x + "franklinie";
+      SF Pl Nom => x + "Franklinowie";
+      SF Pl Gen => x + "franklinów";
+      SF Pl Dat => x + "franklinom";
+      SF Pl Acc => x + "franklinów";
+      SF Pl Instr => x + "franklinami";
+      SF Pl Loc => x + "franklinach";
+      SF Pl Voc => x + "Franklinowie"
+    };
+
+    oper mkNTable0330: Str -> SubstForm => Str; --%
+    oper mkNTable0330 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0331: Str -> SubstForm => Str; --%
+    oper mkNTable0331 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "fryz";
+      SF Sg Gen => x + "fryza";
+      SF Sg Dat => x + "fryzowi";
+      SF Sg Acc => x + "fryza";
+      SF Sg Instr => x + "fryzem";
+      SF Sg Loc => x + "fryzie";
+      SF Sg Voc => x + "fryzie";
+      SF Pl Nom => x + "Fryzowie";
+      SF Pl Gen => x + "fryzów";
+      SF Pl Dat => x + "fryzom";
+      SF Pl Acc => x + "fryzów";
+      SF Pl Instr => x + "fryzami";
+      SF Pl Loc => x + "fryzach";
+      SF Pl Voc => x + "Fryzowie"
+    };
+
+    oper mkNTable0332: Str -> SubstForm => Str; --%
+    oper mkNTable0332 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ja";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ję";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "jo";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "j";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable0333: Str -> SubstForm => Str; --%
+    oper mkNTable0333 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "gajda";
+      SF Sg Gen => x + "gajdy";
+      SF Sg Dat => x + "gajdzie";
+      SF Sg Acc => x + "gajdę";
+      SF Sg Instr => x + "gajdą";
+      SF Sg Loc => x + "gajdzie";
+      SF Sg Voc => x + "gajdo";
+      SF Pl Nom => x + "Gajdowie";
+      SF Pl Gen => x + "Gajdów";
+      SF Pl Dat => x + "gajdom";
+      SF Pl Acc => x + "Gajdów";
+      SF Pl Instr => x + "gajdami";
+      SF Pl Loc => x + "gajdach";
+      SF Pl Voc => x + "Gajdowie"
+    };
+
+    oper mkNTable0334: Str -> SubstForm => Str; --%
+    oper mkNTable0334 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "gama";
+      SF Sg Gen => x + "gamy";
+      SF Sg Dat => x + "gamie";
+      SF Sg Acc => x + "gamę";
+      SF Sg Instr => x + "gamą";
+      SF Sg Loc => x + "gamie";
+      SF Sg Voc => x + "gamo";
+      SF Pl Nom => x + "Gamowie";
+      SF Pl Gen => x + "Gamów";
+      SF Pl Dat => x + "gamom";
+      SF Pl Acc => x + "Gamów";
+      SF Pl Instr => x + "gamami";
+      SF Pl Loc => x + "gamach";
+      SF Pl Voc => x + "Gamowie"
+    };
+
+    oper mkNTable0335: Str -> SubstForm => Str; --%
+    oper mkNTable0335 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0337: Str -> SubstForm => Str; --%
+    oper mkNTable0337 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0338: Str -> SubstForm => Str; --%
+    oper mkNTable0338 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "łowie";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "łowie"
+    };
+
+    oper mkNTable0339: Str -> SubstForm => Str; --%
+    oper mkNTable0339 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "gawron";
+      SF Sg Gen => x + "gawrona";
+      SF Sg Dat => x + "gawronowi";
+      SF Sg Acc => x + "gawrona";
+      SF Sg Instr => x + "gawronem";
+      SF Sg Loc => x + "gawronie";
+      SF Sg Voc => x + "gawronie";
+      SF Pl Nom => x + "Gawronowie";
+      SF Pl Gen => x + "gawronów";
+      SF Pl Dat => x + "gawronom";
+      SF Pl Acc => x + "gawronów";
+      SF Pl Instr => x + "gawronami";
+      SF Pl Loc => x + "gawronach";
+      SF Pl Voc => x + "Gawronowie"
+    };
+
+    oper mkNTable0340: Str -> SubstForm => Str; --%
+    oper mkNTable0340 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Genia";
+      SF Sg Gen => x + "Geni";
+      SF Sg Dat => x + "Geni";
+      SF Sg Acc => x + "Genię";
+      SF Sg Instr => x + "Genią";
+      SF Sg Loc => x + "Geni";
+      SF Sg Voc => x + "Geniu";
+      SF Pl Nom => x + "genie";
+      SF Pl Gen => x + "Geń";
+      SF Pl Dat => x + "Geniom";
+      SF Pl Acc => x + "genie";
+      SF Pl Instr => x + "Geniami";
+      SF Pl Loc => x + "Geniach";
+      SF Pl Voc => x + "genie"
+    };
+
+    oper mkNTable0341: Str -> SubstForm => Str; --%
+    oper mkNTable0341 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0342: Str -> SubstForm => Str; --%
+    oper mkNTable0342 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "ia";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "iowie";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "iów";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "iowie"
+    };
+
+    oper mkNTable0343: Str -> SubstForm => Str; --%
+    oper mkNTable0343 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "gierek";
+      SF Sg Gen => x + "gierka";
+      SF Sg Dat => x + "Gierkowi";
+      SF Sg Acc => x + "gierka";
+      SF Sg Instr => x + "Gierkiem";
+      SF Sg Loc => x + "Gierku";
+      SF Sg Voc => x + "Gierku";
+      SF Pl Nom => x + "Gierkowie";
+      SF Pl Gen => x + "Gierków";
+      SF Pl Dat => x + "gierkom";
+      SF Pl Acc => x + "Gierków";
+      SF Pl Instr => x + "gierkami";
+      SF Pl Loc => x + "gierkach";
+      SF Pl Voc => x + "Gierkowie"
+    };
+
+    oper mkNTable0344: Str -> SubstForm => Str; --%
+    oper mkNTable0344 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "giewont";
+      SF Sg Gen => x + "Giewontu";
+      SF Sg Dat => x + "giewontowi";
+      SF Sg Acc => x + "giewont";
+      SF Sg Instr => x + "giewontem";
+      SF Sg Loc => x + "giewoncie";
+      SF Sg Voc => x + "giewoncie";
+      SF Pl Nom => x + "giewonty";
+      SF Pl Gen => x + "giewontów";
+      SF Pl Dat => x + "giewontom";
+      SF Pl Acc => x + "giewonty";
+      SF Pl Instr => x + "giewontami";
+      SF Pl Loc => x + "giewontach";
+      SF Pl Voc => x + "giewonty"
+    };
+
+    oper mkNTable0345: Str -> SubstForm => Str; --%
+    oper mkNTable0345 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "gilbert";
+      SF Sg Gen => x + "gilberta";
+      SF Sg Dat => x + "gilbertowi";
+      SF Sg Acc => x + "gilberta";
+      SF Sg Instr => x + "gilbertem";
+      SF Sg Loc => x + "gilbercie";
+      SF Sg Voc => x + "gilbercie";
+      SF Pl Nom => x + "Gilbertowie";
+      SF Pl Gen => x + "gilbertów";
+      SF Pl Dat => x + "gilbertom";
+      SF Pl Acc => x + "gilbertów";
+      SF Pl Instr => x + "gilbertami";
+      SF Pl Loc => x + "gilbertach";
+      SF Pl Voc => x + "Gilbertowie"
+    };
+
+    oper mkNTable0346: Str -> SubstForm => Str; --%
+    oper mkNTable0346 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0349: Str -> SubstForm => Str; --%
+    oper mkNTable0349 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0350: Str -> SubstForm => Str; --%
+    oper mkNTable0350 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0351: Str -> SubstForm => Str; --%
+    oper mkNTable0351 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "golec";
+      SF Sg Gen => x + "golca";
+      SF Sg Dat => x + "golcowi";
+      SF Sg Acc => x + "golca";
+      SF Sg Instr => x + "golcem";
+      SF Sg Loc => x + "golcu";
+      SF Sg Voc => x + "golcu";
+      SF Pl Nom => x + "Golcowie";
+      SF Pl Gen => x + "golców";
+      SF Pl Dat => x + "golcom";
+      SF Pl Acc => x + "golców";
+      SF Pl Instr => x + "golcami";
+      SF Pl Loc => x + "golcach";
+      SF Pl Voc => x + "Golcowie"
+    };
+
+    oper mkNTable0352: Str -> SubstForm => Str; --%
+    oper mkNTable0352 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "kowie";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ków";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "kowie"
+    };
+
+    oper mkNTable0353: Str -> SubstForm => Str; --%
+    oper mkNTable0353 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "gomółka";
+      SF Sg Gen => x + "gomółki";
+      SF Sg Dat => x + "gomółce";
+      SF Sg Acc => x + "gomółkę";
+      SF Sg Instr => x + "gomółką";
+      SF Sg Loc => x + "gomółce";
+      SF Sg Voc => x + "gomółko";
+      SF Pl Nom => x + "Gomółkowie";
+      SF Pl Gen => x + "Gomółków";
+      SF Pl Dat => x + "gomółkom";
+      SF Pl Acc => x + "Gomółków";
+      SF Pl Instr => x + "gomółkami";
+      SF Pl Loc => x + "gomółkach";
+      SF Pl Voc => x + "Gomółkowie"
+    };
+
+    oper mkNTable0355: Str -> SubstForm => Str; --%
+    oper mkNTable0355 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "gordon";
+      SF Sg Gen => x + "gordona";
+      SF Sg Dat => x + "gordonowi";
+      SF Sg Acc => x + "gordona";
+      SF Sg Instr => x + "gordonem";
+      SF Sg Loc => x + "gordonie";
+      SF Sg Voc => x + "gordonie";
+      SF Pl Nom => x + "Gordonowie";
+      SF Pl Gen => x + "gordonów";
+      SF Pl Dat => x + "gordonom";
+      SF Pl Acc => x + "gordonów";
+      SF Pl Instr => x + "gordonami";
+      SF Pl Loc => x + "gordonach";
+      SF Pl Voc => x + "Gordonowie"
+    };
+
+    oper mkNTable0356: Str -> SubstForm => Str; --%
+    oper mkNTable0356 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ya";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "yę";
+      SF Sg Instr => x + "yą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "yo";
+      SF Pl Nom => x + "yowie";
+      SF Pl Gen => x + "yów";
+      SF Pl Dat => x + "yom";
+      SF Pl Acc => x + "yów";
+      SF Pl Instr => x + "yami";
+      SF Pl Loc => x + "yach";
+      SF Pl Voc => x + "yowie"
+    };
+
+    oper mkNTable0357: Str -> SubstForm => Str; --%
+    oper mkNTable0357 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "sia";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "ś";
+      SF Pl Nom => x + "siowie";
+      SF Pl Gen => x + "siów";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "siów";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "siowie"
+    };
+
+    oper mkNTable0358: Str -> SubstForm => Str; --%
+    oper mkNTable0358 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "gołota";
+      SF Sg Gen => x + "gołoty";
+      SF Sg Dat => x + "gołocie";
+      SF Sg Acc => x + "gołotę";
+      SF Sg Instr => x + "gołotą";
+      SF Sg Loc => x + "gołocie";
+      SF Sg Voc => x + "gołoto";
+      SF Pl Nom => x + "Gołotowie";
+      SF Pl Gen => x + "gołotów";
+      SF Pl Dat => x + "gołotom";
+      SF Pl Acc => x + "gołotów";
+      SF Pl Instr => x + "gołotami";
+      SF Pl Loc => x + "gołotach";
+      SF Pl Voc => x + "Gołotowie"
+    };
+
+    oper mkNTable0359: Str -> SubstForm => Str; --%
+    oper mkNTable0359 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "gołąb";
+      SF Sg Gen => x + "gołębia";
+      SF Sg Dat => x + "gołębiowi";
+      SF Sg Acc => x + "gołębia";
+      SF Sg Instr => x + "gołębiem";
+      SF Sg Loc => x + "gołębiu";
+      SF Sg Voc => x + "gołębiu";
+      SF Pl Nom => x + "Gołębiowie";
+      SF Pl Gen => x + "Gołębiów";
+      SF Pl Dat => x + "gołębiom";
+      SF Pl Acc => x + "Gołębiów";
+      SF Pl Instr => x + "gołębiami";
+      SF Pl Loc => x + "gołębiach";
+      SF Pl Voc => x + "Gołębiowie"
+    };
+
+    oper mkNTable0360: Str -> SubstForm => Str; --%
+    oper mkNTable0360 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ębia";
+      SF Sg Dat => x + "ębiowi";
+      SF Sg Acc => x + "ąb";
+      SF Sg Instr => x + "ębiem";
+      SF Sg Loc => x + "ębiu";
+      SF Sg Voc => x + "ębiu";
+      SF Pl Nom => x + "ębie";
+      SF Pl Gen => x + "ębi";
+      SF Pl Dat => x + "ębiom";
+      SF Pl Acc => x + "ębie";
+      SF Pl Instr => x + "ębiami";
+      SF Pl Loc => x + "ębiach";
+      SF Pl Voc => x + "ębie"
+    };
+
+    oper mkNTable0363: Str -> SubstForm => Str; --%
+    oper mkNTable0363 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "gracz";
+      SF Sg Gen => x + "gracza";
+      SF Sg Dat => x + "graczowi";
+      SF Sg Acc => x + "gracza";
+      SF Sg Instr => x + "graczem";
+      SF Sg Loc => x + "graczu";
+      SF Sg Voc => x + "graczu";
+      SF Pl Nom => x + "Graczowie";
+      SF Pl Gen => x + "graczów";
+      SF Pl Dat => x + "graczom";
+      SF Pl Acc => x + "graczów";
+      SF Pl Instr => x + "graczami";
+      SF Pl Loc => x + "graczach";
+      SF Pl Voc => x + "Graczowie"
+    };
+
+    oper mkNTable0364: Str -> SubstForm => Str; --%
+    oper mkNTable0364 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "graham";
+      SF Sg Gen => x + "grahama";
+      SF Sg Dat => x + "grahamowi";
+      SF Sg Acc => x + "grahama";
+      SF Sg Instr => x + "grahamem";
+      SF Sg Loc => x + "grahamie";
+      SF Sg Voc => x + "grahamie";
+      SF Pl Nom => x + "Grahamowie";
+      SF Pl Gen => x + "grahamów";
+      SF Pl Dat => x + "grahamom";
+      SF Pl Acc => x + "grahamów";
+      SF Pl Instr => x + "grahamami";
+      SF Pl Loc => x + "grahamach";
+      SF Pl Voc => x + "Grahamowie"
+    };
+
+    oper mkNTable0365: Str -> SubstForm => Str; --%
+    oper mkNTable0365 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "grant";
+      SF Sg Gen => x + "Granta";
+      SF Sg Dat => x + "grantowi";
+      SF Sg Acc => x + "Granta";
+      SF Sg Instr => x + "grantem";
+      SF Sg Loc => x + "grancie";
+      SF Sg Voc => x + "grancie";
+      SF Pl Nom => x + "Grantowie";
+      SF Pl Gen => x + "grantów";
+      SF Pl Dat => x + "grantom";
+      SF Pl Acc => x + "grantów";
+      SF Pl Instr => x + "grantami";
+      SF Pl Loc => x + "grantach";
+      SF Pl Voc => x + "Grantowie"
+    };
+
+    oper mkNTable0366: Str -> SubstForm => Str; --%
+    oper mkNTable0366 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ta";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0367: Str -> SubstForm => Str; --%
+    oper mkNTable0367 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "th";
+      SF Sg Gen => x + "tha";
+      SF Sg Dat => x + "thowi";
+      SF Sg Acc => x + "tha";
+      SF Sg Instr => x + "them";
+      SF Sg Loc => x + "sie";
+      SF Sg Voc => x + "sie";
+      SF Pl Nom => x + "thowie";
+      SF Pl Gen => x + "thów";
+      SF Pl Dat => x + "thom";
+      SF Pl Acc => x + "thów";
+      SF Pl Instr => x + "thami";
+      SF Pl Loc => x + "thach";
+      SF Pl Voc => x + "thowie"
+    };
+
+    oper mkNTable0369: Str -> SubstForm => Str; --%
+    oper mkNTable0369 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0370: Str -> SubstForm => Str; --%
+    oper mkNTable0370 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "grot";
+      SF Sg Gen => x + "grota";
+      SF Sg Dat => x + "grotowi";
+      SF Sg Acc => x + "grota";
+      SF Sg Instr => x + "grotem";
+      SF Sg Loc => x + "grocie";
+      SF Sg Voc => x + "grocie";
+      SF Pl Nom => x + "Grotowie";
+      SF Pl Gen => x + "grotów";
+      SF Pl Dat => x + "grotom";
+      SF Pl Acc => x + "grotów";
+      SF Pl Instr => x + "grotami";
+      SF Pl Loc => x + "grotach";
+      SF Pl Voc => x + "Grotowie"
+    };
+
+    oper mkNTable0371: Str -> SubstForm => Str; --%
+    oper mkNTable0371 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "grudzień";
+      SF Sg Gen => x + "grudnia";
+      SF Sg Dat => x + "grudniowi";
+      SF Sg Acc => x + "grudnia";
+      SF Sg Instr => x + "grudniem";
+      SF Sg Loc => x + "grudniu";
+      SF Sg Voc => x + "grudniu";
+      SF Pl Nom => x + "Grudniowie";
+      SF Pl Gen => x + "grudniów";
+      SF Pl Dat => x + "grudniom";
+      SF Pl Acc => x + "grudniów";
+      SF Pl Instr => x + "grudniami";
+      SF Pl Loc => x + "grudniach";
+      SF Pl Voc => x + "Grudniowie"
+    };
+
+    oper mkNTable0372: Str -> SubstForm => Str; --%
+    oper mkNTable0372 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "grunwald";
+      SF Sg Gen => x + "Grunwaldu";
+      SF Sg Dat => x + "grunwaldowi";
+      SF Sg Acc => x + "grunwald";
+      SF Sg Instr => x + "grunwaldem";
+      SF Sg Loc => x + "grunwaldzie";
+      SF Sg Voc => x + "grunwaldzie";
+      SF Pl Nom => x + "grunwaldy";
+      SF Pl Gen => x + "grunwaldów";
+      SF Pl Dat => x + "grunwaldom";
+      SF Pl Acc => x + "grunwaldy";
+      SF Pl Instr => x + "grunwaldami";
+      SF Pl Loc => x + "grunwaldach";
+      SF Pl Voc => x + "grunwaldy"
+    };
+
+    oper mkNTable0373: Str -> SubstForm => Str; --%
+    oper mkNTable0373 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "grusza";
+      SF Sg Gen => x + "gruszy";
+      SF Sg Dat => x + "gruszy";
+      SF Sg Acc => x + "gruszę";
+      SF Sg Instr => x + "gruszą";
+      SF Sg Loc => x + "gruszy";
+      SF Sg Voc => x + "gruszo";
+      SF Pl Nom => x + "Gruszowie";
+      SF Pl Gen => x + "Gruszów";
+      SF Pl Dat => x + "gruszom";
+      SF Pl Acc => x + "Gruszów";
+      SF Pl Instr => x + "gruszami";
+      SF Pl Loc => x + "gruszach";
+      SF Pl Voc => x + "Gruszowie"
+    };
+
+    oper mkNTable0374: Str -> SubstForm => Str; --%
+    oper mkNTable0374 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "gruszka";
+      SF Sg Gen => x + "gruszki";
+      SF Sg Dat => x + "gruszce";
+      SF Sg Acc => x + "gruszkę";
+      SF Sg Instr => x + "gruszką";
+      SF Sg Loc => x + "gruszce";
+      SF Sg Voc => x + "gruszko";
+      SF Pl Nom => x + "Gruszkowie";
+      SF Pl Gen => x + "Gruszków";
+      SF Pl Dat => x + "gruszkom";
+      SF Pl Acc => x + "Gruszków";
+      SF Pl Instr => x + "gruszkami";
+      SF Pl Loc => x + "gruszkach";
+      SF Pl Voc => x + "Gruszkowie"
+    };
+
+    oper mkNTable0375: Str -> SubstForm => Str; --%
+    oper mkNTable0375 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "grzyb";
+      SF Sg Gen => x + "grzyba";
+      SF Sg Dat => x + "grzybowi";
+      SF Sg Acc => x + "grzyba";
+      SF Sg Instr => x + "grzybem";
+      SF Sg Loc => x + "grzybie";
+      SF Sg Voc => x + "grzybie";
+      SF Pl Nom => x + "Grzybowie";
+      SF Pl Gen => x + "grzybów";
+      SF Pl Dat => x + "grzybom";
+      SF Pl Acc => x + "grzybów";
+      SF Pl Instr => x + "grzybami";
+      SF Pl Loc => x + "grzybach";
+      SF Pl Voc => x + "Grzybowie"
+    };
+
+    oper mkNTable0377: Str -> SubstForm => Str; --%
+    oper mkNTable0377 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "guinness";
+      SF Sg Gen => x + "guinnessa";
+      SF Sg Dat => x + "guinnessowi";
+      SF Sg Acc => x + "guinnessa";
+      SF Sg Instr => x + "guinnessem";
+      SF Sg Loc => x + "guinnessie";
+      SF Sg Voc => x + "guinnessie";
+      SF Pl Nom => x + "Guinnessowie";
+      SF Pl Gen => x + "guinnessów";
+      SF Pl Dat => x + "guinnessom";
+      SF Pl Acc => x + "guinnessów";
+      SF Pl Instr => x + "guinnessami";
+      SF Pl Loc => x + "guinnessach";
+      SF Pl Voc => x + "Guinnessowie"
+    };
+
+    oper mkNTable0378: Str -> SubstForm => Str; --%
+    oper mkNTable0378 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0379: Str -> SubstForm => Str; --%
+    oper mkNTable0379 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "gąsienica";
+      SF Sg Gen => x + "gąsienicy";
+      SF Sg Dat => x + "gąsienicy";
+      SF Sg Acc => x + "gąsienicę";
+      SF Sg Instr => x + "gąsienicą";
+      SF Sg Loc => x + "gąsienicy";
+      SF Sg Voc => x + "gąsienico";
+      SF Pl Nom => x + "Gąsienicowie";
+      SF Pl Gen => x + "Gąsieniców";
+      SF Pl Dat => x + "gąsienicom";
+      SF Pl Acc => x + "Gąsieniców";
+      SF Pl Instr => x + "gąsienicami";
+      SF Pl Loc => x + "gąsienicach";
+      SF Pl Voc => x + "Gąsienicowie"
+    };
+
+    oper mkNTable0381: Str -> SubstForm => Str; --%
+    oper mkNTable0381 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "górka";
+      SF Sg Gen => x + "górki";
+      SF Sg Dat => x + "górce";
+      SF Sg Acc => x + "górkę";
+      SF Sg Instr => x + "górką";
+      SF Sg Loc => x + "górce";
+      SF Sg Voc => x + "górko";
+      SF Pl Nom => x + "Górkowie";
+      SF Pl Gen => x + "Górków";
+      SF Pl Dat => x + "górkom";
+      SF Pl Acc => x + "Górków";
+      SF Pl Instr => x + "górkami";
+      SF Pl Loc => x + "górkach";
+      SF Pl Voc => x + "Górkowie"
+    };
+
+    oper mkNTable0382: Str -> SubstForm => Str; --%
+    oper mkNTable0382 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0383: Str -> SubstForm => Str; --%
+    oper mkNTable0383 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "hala";
+      SF Sg Gen => x + "hali";
+      SF Sg Dat => x + "hali";
+      SF Sg Acc => x + "halę";
+      SF Sg Instr => x + "halą";
+      SF Sg Loc => x + "hali";
+      SF Sg Voc => x + "Halu";
+      SF Pl Nom => x + "hale";
+      SF Pl Gen => x + "hal";
+      SF Pl Dat => x + "halom";
+      SF Pl Acc => x + "hale";
+      SF Pl Instr => x + "halami";
+      SF Pl Loc => x + "halach";
+      SF Pl Voc => x + "hale"
+    };
+
+    oper mkNTable0384: Str -> SubstForm => Str; --%
+    oper mkNTable0384 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Hania";
+      SF Sg Gen => x + "Hani";
+      SF Sg Dat => x + "Hani";
+      SF Sg Acc => x + "Hanię";
+      SF Sg Instr => x + "Hanią";
+      SF Sg Loc => x + "Hani";
+      SF Sg Voc => x + "Haniu";
+      SF Pl Nom => x + "hanie";
+      SF Pl Gen => x + "Hań";
+      SF Pl Dat => x + "Haniom";
+      SF Pl Acc => x + "hanie";
+      SF Pl Instr => x + "Haniami";
+      SF Pl Loc => x + "Haniach";
+      SF Pl Voc => x + "hanie"
+    };
+
+    oper mkNTable0385: Str -> SubstForm => Str; --%
+    oper mkNTable0385 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "hanower";
+      SF Sg Gen => x + "Hanoweru";
+      SF Sg Dat => x + "hanowerowi";
+      SF Sg Acc => x + "hanower";
+      SF Sg Instr => x + "hanowerem";
+      SF Sg Loc => x + "hanowerze";
+      SF Sg Voc => x + "hanowerze";
+      SF Pl Nom => x + "hanowery";
+      SF Pl Gen => x + "hanowerów";
+      SF Pl Dat => x + "hanowerom";
+      SF Pl Acc => x + "hanowery";
+      SF Pl Instr => x + "hanowerami";
+      SF Pl Loc => x + "hanowerach";
+      SF Pl Voc => x + "hanowery"
+    };
+
+    oper mkNTable0386: Str -> SubstForm => Str; --%
+    oper mkNTable0386 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "has";
+      SF Sg Gen => x + "Hasa";
+      SF Sg Dat => x + "hasowi";
+      SF Sg Acc => x + "Hasa";
+      SF Sg Instr => x + "hasem";
+      SF Sg Loc => x + "hasie";
+      SF Sg Voc => x + "hasie";
+      SF Pl Nom => x + "Hasowie";
+      SF Pl Gen => x + "hasów";
+      SF Pl Dat => x + "hasom";
+      SF Pl Acc => x + "hasów";
+      SF Pl Instr => x + "hasami";
+      SF Pl Loc => x + "hasach";
+      SF Pl Voc => x + "Hasowie"
+    };
+
+    oper mkNTable0387: Str -> SubstForm => Str; --%
+    oper mkNTable0387 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0388: Str -> SubstForm => Str; --%
+    oper mkNTable0388 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "heliodor";
+      SF Sg Gen => x + "Heliodora";
+      SF Sg Dat => x + "heliodorowi";
+      SF Sg Acc => x + "Heliodora";
+      SF Sg Instr => x + "heliodorem";
+      SF Sg Loc => x + "heliodorze";
+      SF Sg Voc => x + "heliodorze";
+      SF Pl Nom => x + "Heliodorowie";
+      SF Pl Gen => x + "heliodorów";
+      SF Pl Dat => x + "heliodorom";
+      SF Pl Acc => x + "heliodorów";
+      SF Pl Instr => x + "heliodorami";
+      SF Pl Loc => x + "heliodorach";
+      SF Pl Voc => x + "Heliodorowie"
+    };
+
+    oper mkNTable0389: Str -> SubstForm => Str; --%
+    oper mkNTable0389 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "helmut";
+      SF Sg Gen => x + "helmuta";
+      SF Sg Dat => x + "helmutowi";
+      SF Sg Acc => x + "helmuta";
+      SF Sg Instr => x + "helmutem";
+      SF Sg Loc => x + "helmucie";
+      SF Sg Voc => x + "helmucie";
+      SF Pl Nom => x + "Helmutowie";
+      SF Pl Gen => x + "helmutów";
+      SF Pl Dat => x + "helmutom";
+      SF Pl Acc => x + "helmutów";
+      SF Pl Instr => x + "helmutami";
+      SF Pl Loc => x + "helmutach";
+      SF Pl Voc => x + "Helmutowie"
+    };
+
+    oper mkNTable0390: Str -> SubstForm => Str; --%
+    oper mkNTable0390 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "tha";
+      SF Sg Gen => x + "thy";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "thę";
+      SF Sg Instr => x + "thą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "tho";
+      SF Pl Nom => x + "thy";
+      SF Pl Gen => x + "th";
+      SF Pl Dat => x + "thom";
+      SF Pl Acc => x + "thy";
+      SF Pl Instr => x + "thami";
+      SF Pl Loc => x + "thach";
+      SF Pl Voc => x + "thy"
+    };
+
+    oper mkNTable0391: Str -> SubstForm => Str; --%
+    oper mkNTable0391 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "hiacynt";
+      SF Sg Gen => x + "hiacynta";
+      SF Sg Dat => x + "hiacyntowi";
+      SF Sg Acc => x + "hiacynta";
+      SF Sg Instr => x + "hiacyntem";
+      SF Sg Loc => x + "hiacyncie";
+      SF Sg Voc => x + "hiacyncie";
+      SF Pl Nom => x + "Hiacyntowie";
+      SF Pl Gen => x + "hiacyntów";
+      SF Pl Dat => x + "hiacyntom";
+      SF Pl Acc => x + "hiacyntów";
+      SF Pl Instr => x + "hiacyntami";
+      SF Pl Loc => x + "hiacyntach";
+      SF Pl Voc => x + "Hiacyntowie"
+    };
+
+    oper mkNTable0392: Str -> SubstForm => Str; --%
+    oper mkNTable0392 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "hiacynta";
+      SF Sg Gen => x + "hiacynty";
+      SF Sg Dat => x + "hiacyncie";
+      SF Sg Acc => x + "Hiacyntę";
+      SF Sg Instr => x + "Hiacyntą";
+      SF Sg Loc => x + "hiacyncie";
+      SF Sg Voc => x + "Hiacynto";
+      SF Pl Nom => x + "hiacynty";
+      SF Pl Gen => x + "hiacynt";
+      SF Pl Dat => x + "hiacyntom";
+      SF Pl Acc => x + "hiacynty";
+      SF Pl Instr => x + "hiacyntami";
+      SF Pl Loc => x + "hiacyntach";
+      SF Pl Voc => x + "hiacynty"
+    };
+
+    oper mkNTable0393: Str -> SubstForm => Str; --%
+    oper mkNTable0393 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "holender";
+      SF Sg Gen => x + "holendra";
+      SF Sg Dat => x + "holendrowi";
+      SF Sg Acc => x + "holendra";
+      SF Sg Instr => x + "holendrem";
+      SF Sg Loc => x + "holendrze";
+      SF Sg Voc => x + "holendrze";
+      SF Pl Nom => x + "Holendrzy";
+      SF Pl Gen => x + "holendrów";
+      SF Pl Dat => x + "holendrom";
+      SF Pl Acc => x + "holendrów";
+      SF Pl Instr => x + "holendrami";
+      SF Pl Loc => x + "holendrach";
+      SF Pl Voc => x + "Holendrzy"
+    };
+
+    oper mkNTable0395: Str -> SubstForm => Str; --%
+    oper mkNTable0395 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "horst";
+      SF Sg Gen => x + "Horsta";
+      SF Sg Dat => x + "horstowi";
+      SF Sg Acc => x + "Horsta";
+      SF Sg Instr => x + "horstem";
+      SF Sg Loc => x + "horście";
+      SF Sg Voc => x + "horście";
+      SF Pl Nom => x + "Horstowie";
+      SF Pl Gen => x + "horstów";
+      SF Pl Dat => x + "horstom";
+      SF Pl Acc => x + "horstów";
+      SF Pl Instr => x + "horstami";
+      SF Pl Loc => x + "horstach";
+      SF Pl Voc => x + "Horstowie"
+    };
+
+    oper mkNTable0396: Str -> SubstForm => Str; --%
+    oper mkNTable0396 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "hucuł";
+      SF Sg Gen => x + "hucuła";
+      SF Sg Dat => x + "hucułowi";
+      SF Sg Acc => x + "hucuła";
+      SF Sg Instr => x + "hucułem";
+      SF Sg Loc => x + "hucule";
+      SF Sg Voc => x + "hucule";
+      SF Pl Nom => x + "Huculi";
+      SF Pl Gen => x + "hucułów";
+      SF Pl Dat => x + "hucułom";
+      SF Pl Acc => x + "hucułów";
+      SF Pl Instr => x + "hucułami";
+      SF Pl Loc => x + "hucułach";
+      SF Pl Voc => x + "Huculi"
+    };
+
+    oper mkNTable0397: Str -> SubstForm => Str; --%
+    oper mkNTable0397 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "na";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "nowie";
+      SF Pl Gen => x + "nów";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "nów";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "nowie"
+    };
+
+    oper mkNTable0398: Str -> SubstForm => Str; --%
+    oper mkNTable0398 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "hun";
+      SF Sg Gen => x + "huna";
+      SF Sg Dat => x + "Hunowi";
+      SF Sg Acc => x + "huna";
+      SF Sg Instr => x + "Hunem";
+      SF Sg Loc => x + "hunie";
+      SF Sg Voc => x + "hunie";
+      SF Pl Nom => x + "Hunowie";
+      SF Pl Gen => x + "Hunów";
+      SF Pl Dat => x + "hunom";
+      SF Pl Acc => x + "Hunów";
+      SF Pl Instr => x + "hunami";
+      SF Pl Loc => x + "hunach";
+      SF Pl Voc => x + "Hunowie"
+    };
+
+    oper mkNTable0399: Str -> SubstForm => Str; --%
+    oper mkNTable0399 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0400: Str -> SubstForm => Str; --%
+    oper mkNTable0400 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "icek";
+      SF Sg Gen => x + "icka";
+      SF Sg Dat => x + "ickowi";
+      SF Sg Acc => x + "icka";
+      SF Sg Instr => x + "ickiem";
+      SF Sg Loc => x + "icku";
+      SF Sg Voc => x + "icku";
+      SF Pl Nom => x + "Ickowie";
+      SF Pl Gen => x + "icków";
+      SF Pl Dat => x + "ickom";
+      SF Pl Acc => x + "icków";
+      SF Pl Instr => x + "ickami";
+      SF Pl Loc => x + "ickach";
+      SF Pl Voc => x + "Ickowie"
+    };
+
+    oper mkNTable0401: Str -> SubstForm => Str; --%
+    oper mkNTable0401 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Ida";
+      SF Sg Gen => x + "idy";
+      SF Sg Dat => x + "idzie";
+      SF Sg Acc => x + "Idę";
+      SF Sg Instr => x + "Idą";
+      SF Sg Loc => x + "idzie";
+      SF Sg Voc => x + "Ido";
+      SF Pl Nom => x + "idy";
+      SF Pl Gen => x + "id";
+      SF Pl Dat => x + "idom";
+      SF Pl Acc => x + "idy";
+      SF Pl Instr => x + "idami";
+      SF Pl Loc => x + "idach";
+      SF Pl Voc => x + "idy"
+    };
+
+    oper mkNTable0402: Str -> SubstForm => Str; --%
+    oper mkNTable0402 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "iej";
+      SF Sg Dat => x + "iej";
+      SF Sg Acc => x + "ą";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "iej";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "ich";
+      SF Pl Dat => x + "im";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "imi";
+      SF Pl Loc => x + "ich";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0404: Str -> SubstForm => Str; --%
+    oper mkNTable0404 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "inkas";
+      SF Sg Gen => x + "inkasa";
+      SF Sg Dat => x + "Inkasowi";
+      SF Sg Acc => x + "inkasa";
+      SF Sg Instr => x + "inkasem";
+      SF Sg Loc => x + "inkasie";
+      SF Sg Voc => x + "inkasie";
+      SF Pl Nom => x + "Inkasi";
+      SF Pl Gen => x + "Inkasów";
+      SF Pl Dat => x + "inkasom";
+      SF Pl Acc => x + "Inkasów";
+      SF Pl Instr => x + "inkasami";
+      SF Pl Loc => x + "inkasach";
+      SF Pl Voc => x + "Inkasi"
+    };
+
+    oper mkNTable0406: Str -> SubstForm => Str; --%
+    oper mkNTable0406 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "irokez";
+      SF Sg Gen => x + "irokeza";
+      SF Sg Dat => x + "irokezowi";
+      SF Sg Acc => x + "irokeza";
+      SF Sg Instr => x + "irokezem";
+      SF Sg Loc => x + "irokezie";
+      SF Sg Voc => x + "irokezie";
+      SF Pl Nom => x + "Irokezi";
+      SF Pl Gen => x + "irokezów";
+      SF Pl Dat => x + "irokezom";
+      SF Pl Acc => x + "irokezów";
+      SF Pl Instr => x + "irokezami";
+      SF Pl Loc => x + "irokezach";
+      SF Pl Voc => x + "Irokezi"
+    };
+
+    oper mkNTable0407: Str -> SubstForm => Str; --%
+    oper mkNTable0407 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Iryda";
+      SF Sg Gen => x + "irydy";
+      SF Sg Dat => x + "irydzie";
+      SF Sg Acc => x + "Irydę";
+      SF Sg Instr => x + "Irydą";
+      SF Sg Loc => x + "irydzie";
+      SF Sg Voc => x + "Irydo";
+      SF Pl Nom => x + "irydy";
+      SF Pl Gen => x + "iryd";
+      SF Pl Dat => x + "irydom";
+      SF Pl Acc => x + "irydy";
+      SF Pl Instr => x + "irydami";
+      SF Pl Loc => x + "irydach";
+      SF Pl Voc => x + "irydy"
+    };
+
+    oper mkNTable0408: Str -> SubstForm => Str; --%
+    oper mkNTable0408 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "iwan";
+      SF Sg Gen => x + "iwana";
+      SF Sg Dat => x + "iwanowi";
+      SF Sg Acc => x + "iwana";
+      SF Sg Instr => x + "iwanem";
+      SF Sg Loc => x + "iwanie";
+      SF Sg Voc => x + "iwanie";
+      SF Pl Nom => x + "Iwanowie";
+      SF Pl Gen => x + "iwanów";
+      SF Pl Dat => x + "iwanom";
+      SF Pl Acc => x + "iwanów";
+      SF Pl Instr => x + "iwanami";
+      SF Pl Loc => x + "iwanach";
+      SF Pl Voc => x + "Iwanowie"
+    };
+
+    oper mkNTable0409: Str -> SubstForm => Str; --%
+    oper mkNTable0409 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iwo";
+      SF Sg Gen => x + "Iwona";
+      SF Sg Dat => x + "Iwonowi";
+      SF Sg Acc => x + "Iwona";
+      SF Sg Instr => x + "Iwonem";
+      SF Sg Loc => x + "Iwonie";
+      SF Sg Voc => x + "iwo";
+      SF Pl Nom => x + "Iwonowie";
+      SF Pl Gen => x + "Iwonów";
+      SF Pl Dat => x + "Iwonom";
+      SF Pl Acc => x + "Iwonów";
+      SF Pl Instr => x + "Iwonami";
+      SF Pl Loc => x + "Iwonach";
+      SF Pl Voc => x + "Iwonowie"
+    };
+
+    oper mkNTable0411: Str -> SubstForm => Str; --%
+    oper mkNTable0411 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "ni";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0412: Str -> SubstForm => Str; --%
+    oper mkNTable0412 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Jacek";
+      SF Sg Gen => x + "jacka";
+      SF Sg Dat => x + "jackowi";
+      SF Sg Acc => x + "jacka";
+      SF Sg Instr => x + "jackiem";
+      SF Sg Loc => x + "jacku";
+      SF Sg Voc => x + "jacku";
+      SF Pl Nom => x + "Jackowie";
+      SF Pl Gen => x + "jacków";
+      SF Pl Dat => x + "jackom";
+      SF Pl Acc => x + "jacków";
+      SF Pl Instr => x + "jackami";
+      SF Pl Loc => x + "jackach";
+      SF Pl Voc => x + "Jackowie"
+    };
+
+    oper mkNTable0413: Str -> SubstForm => Str; --%
+    oper mkNTable0413 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "jack";
+      SF Sg Gen => x + "jacka";
+      SF Sg Dat => x + "jackowi";
+      SF Sg Acc => x + "jacka";
+      SF Sg Instr => x + "jackiem";
+      SF Sg Loc => x + "jacku";
+      SF Sg Voc => x + "jacku";
+      SF Pl Nom => x + "Jackowie";
+      SF Pl Gen => x + "jacków";
+      SF Pl Dat => x + "jackom";
+      SF Pl Acc => x + "jacków";
+      SF Pl Instr => x + "jackami";
+      SF Pl Loc => x + "jackach";
+      SF Pl Voc => x + "Jackowie"
+    };
+
+    oper mkNTable0414: Str -> SubstForm => Str; --%
+    oper mkNTable0414 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Jadzia";
+      SF Sg Gen => x + "Jadzi";
+      SF Sg Dat => x + "Jadzi";
+      SF Sg Acc => x + "Jadzię";
+      SF Sg Instr => x + "Jadzią";
+      SF Sg Loc => x + "Jadzi";
+      SF Sg Voc => x + "Jadziu";
+      SF Pl Nom => x + "jadzie";
+      SF Pl Gen => x + "Jadź";
+      SF Pl Dat => x + "Jadziom";
+      SF Pl Acc => x + "jadzie";
+      SF Pl Instr => x + "Jadziami";
+      SF Pl Loc => x + "Jadziach";
+      SF Pl Voc => x + "jadzie"
+    };
+
+    oper mkNTable0415: Str -> SubstForm => Str; --%
+    oper mkNTable0415 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "źka";
+      SF Sg Gen => x + "źki";
+      SF Sg Dat => x + "źce";
+      SF Sg Acc => x + "źkę";
+      SF Sg Instr => x + "źką";
+      SF Sg Loc => x + "źce";
+      SF Sg Voc => x + "źko";
+      SF Pl Nom => x + "źki";
+      SF Pl Gen => x + "ziek";
+      SF Pl Dat => x + "źkom";
+      SF Pl Acc => x + "źki";
+      SF Pl Instr => x + "źkami";
+      SF Pl Loc => x + "źkach";
+      SF Pl Voc => x + "źki"
+    };
+
+    oper mkNTable0416: Str -> SubstForm => Str; --%
+    oper mkNTable0416 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "łło";
+      SF Sg Gen => x + "łły";
+      SF Sg Dat => x + "lle";
+      SF Sg Acc => x + "łłę";
+      SF Sg Instr => x + "łłą";
+      SF Sg Loc => x + "lle";
+      SF Sg Voc => x + "łło";
+      SF Pl Nom => x + "łłowie";
+      SF Pl Gen => x + "łłów";
+      SF Pl Dat => x + "łłom";
+      SF Pl Acc => x + "łłów";
+      SF Pl Instr => x + "łłami";
+      SF Pl Loc => x + "łłach";
+      SF Pl Voc => x + "łłowie"
+    };
+
+    oper mkNTable0417: Str -> SubstForm => Str; --%
+    oper mkNTable0417 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oda";
+      SF Sg Gen => x + "ody";
+      SF Sg Dat => x + "odzie";
+      SF Sg Acc => x + "odę";
+      SF Sg Instr => x + "odą";
+      SF Sg Loc => x + "odzie";
+      SF Sg Voc => x + "odo";
+      SF Pl Nom => x + "ody";
+      SF Pl Gen => x + "ód";
+      SF Pl Dat => x + "odom";
+      SF Pl Acc => x + "ody";
+      SF Pl Instr => x + "odami";
+      SF Pl Loc => x + "odach";
+      SF Pl Voc => x + "ody"
+    };
+
+    oper mkNTable0419: Str -> SubstForm => Str; --%
+    oper mkNTable0419 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "jakubek";
+      SF Sg Gen => x + "jakubka";
+      SF Sg Dat => x + "Jakubkowi";
+      SF Sg Acc => x + "jakubka";
+      SF Sg Instr => x + "Jakubkiem";
+      SF Sg Loc => x + "Jakubku";
+      SF Sg Voc => x + "Jakubku";
+      SF Pl Nom => x + "Jakubkowie";
+      SF Pl Gen => x + "Jakubków";
+      SF Pl Dat => x + "jakubkom";
+      SF Pl Acc => x + "Jakubków";
+      SF Pl Instr => x + "jakubkami";
+      SF Pl Loc => x + "jakubkach";
+      SF Pl Voc => x + "Jakubkowie"
+    };
+
+    oper mkNTable0420: Str -> SubstForm => Str; --%
+    oper mkNTable0420 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0423: Str -> SubstForm => Str; --%
+    oper mkNTable0423 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "jarek";
+      SF Sg Gen => x + "jarka";
+      SF Sg Dat => x + "Jarkowi";
+      SF Sg Acc => x + "jarka";
+      SF Sg Instr => x + "Jarkiem";
+      SF Sg Loc => x + "Jarku";
+      SF Sg Voc => x + "Jarku";
+      SF Pl Nom => x + "Jarkowie";
+      SF Pl Gen => x + "Jarków";
+      SF Pl Dat => x + "jarkom";
+      SF Pl Acc => x + "Jarków";
+      SF Pl Instr => x + "jarkami";
+      SF Pl Loc => x + "jarkach";
+      SF Pl Voc => x + "Jarkowie"
+    };
+
+    oper mkNTable0424: Str -> SubstForm => Str; --%
+    oper mkNTable0424 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "jarosz";
+      SF Sg Gen => x + "jarosza";
+      SF Sg Dat => x + "jaroszowi";
+      SF Sg Acc => x + "jarosza";
+      SF Sg Instr => x + "jaroszem";
+      SF Sg Loc => x + "jaroszu";
+      SF Sg Voc => x + "jaroszu";
+      SF Pl Nom => x + "Jaroszowie";
+      SF Pl Gen => x + "jaroszów";
+      SF Pl Dat => x + "jaroszom";
+      SF Pl Acc => x + "jaroszów";
+      SF Pl Instr => x + "jaroszami";
+      SF Pl Loc => x + "jaroszach";
+      SF Pl Voc => x + "Jaroszowie"
+    };
+
+    oper mkNTable0425: Str -> SubstForm => Str; --%
+    oper mkNTable0425 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "jasia";
+      SF Sg Gen => x + "Jasi";
+      SF Sg Dat => x + "Jasi";
+      SF Sg Acc => x + "Jasię";
+      SF Sg Instr => x + "Jasią";
+      SF Sg Loc => x + "Jasi";
+      SF Sg Voc => x + "jasiu";
+      SF Pl Nom => x + "jasie";
+      SF Pl Gen => x + "jaś";
+      SF Pl Dat => x + "jasiom";
+      SF Pl Acc => x + "jasie";
+      SF Pl Instr => x + "jasiami";
+      SF Pl Loc => x + "jasiach";
+      SF Pl Voc => x + "jasie"
+    };
+
+    oper mkNTable0426: Str -> SubstForm => Str; --%
+    oper mkNTable0426 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "jasiek";
+      SF Sg Gen => x + "jaśka";
+      SF Sg Dat => x + "jaśkowi";
+      SF Sg Acc => x + "jaśka";
+      SF Sg Instr => x + "jaśkiem";
+      SF Sg Loc => x + "jaśku";
+      SF Sg Voc => x + "jaśku";
+      SF Pl Nom => x + "Jaśkowie";
+      SF Pl Gen => x + "jaśków";
+      SF Pl Dat => x + "jaśkom";
+      SF Pl Acc => x + "jaśków";
+      SF Pl Instr => x + "jaśkami";
+      SF Pl Loc => x + "jaśkach";
+      SF Pl Voc => x + "Jaśkowie"
+    };
+
+    oper mkNTable0427: Str -> SubstForm => Str; --%
+    oper mkNTable0427 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0428: Str -> SubstForm => Str; --%
+    oper mkNTable0428 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Jasio";
+      SF Sg Gen => x + "jasia";
+      SF Sg Dat => x + "jasiowi";
+      SF Sg Acc => x + "jasia";
+      SF Sg Instr => x + "jasiem";
+      SF Sg Loc => x + "jasiu";
+      SF Sg Voc => x + "jasiu";
+      SF Pl Nom => x + "Jasiowie";
+      SF Pl Gen => x + "jasiów";
+      SF Pl Dat => x + "jasiom";
+      SF Pl Acc => x + "jasiów";
+      SF Pl Instr => x + "jasiami";
+      SF Pl Loc => x + "jasiach";
+      SF Pl Voc => x + "Jasiowie"
+    };
+
+    oper mkNTable0429: Str -> SubstForm => Str; --%
+    oper mkNTable0429 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "jastrun";
+      SF Sg Gen => x + "jastruna";
+      SF Sg Dat => x + "jastrunowi";
+      SF Sg Acc => x + "jastruna";
+      SF Sg Instr => x + "jastrunem";
+      SF Sg Loc => x + "jastrunie";
+      SF Sg Voc => x + "jastrunie";
+      SF Pl Nom => x + "Jastrunowie";
+      SF Pl Gen => x + "jastrunów";
+      SF Pl Dat => x + "jastrunom";
+      SF Pl Acc => x + "jastrunów";
+      SF Pl Instr => x + "jastrunami";
+      SF Pl Loc => x + "jastrunach";
+      SF Pl Voc => x + "Jastrunowie"
+    };
+
+    oper mkNTable0430: Str -> SubstForm => Str; --%
+    oper mkNTable0430 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sło";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słu";
+      SF Sg Acc => x + "sło";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "sło";
+      SF Pl Nom => x + "sła";
+      SF Pl Gen => x + "seł";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sła";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sła"
+    };
+
+    oper mkNTable0431: Str -> SubstForm => Str; --%
+    oper mkNTable0431 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "a";
+      SF Pl Dat => x + "a";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "a";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0433: Str -> SubstForm => Str; --%
+    oper mkNTable0433 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Jaśko";
+      SF Sg Gen => x + "jaśka";
+      SF Sg Dat => x + "jaśkowi";
+      SF Sg Acc => x + "jaśka";
+      SF Sg Instr => x + "jaśkiem";
+      SF Sg Loc => x + "jaśku";
+      SF Sg Voc => x + "jaśku";
+      SF Pl Nom => x + "Jaśkowie";
+      SF Pl Gen => x + "jaśków";
+      SF Pl Dat => x + "jaśkom";
+      SF Pl Acc => x + "jaśków";
+      SF Pl Instr => x + "jaśkami";
+      SF Pl Loc => x + "jaśkach";
+      SF Pl Voc => x + "Jaśkowie"
+    };
+
+    oper mkNTable0434: Str -> SubstForm => Str; --%
+    oper mkNTable0434 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0435: Str -> SubstForm => Str; --%
+    oper mkNTable0435 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0436: Str -> SubstForm => Str; --%
+    oper mkNTable0436 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Jelena";
+      SF Sg Gen => x + "Jeleny";
+      SF Sg Dat => x + "jelenie";
+      SF Sg Acc => x + "Jelenę";
+      SF Sg Instr => x + "Jeleną";
+      SF Sg Loc => x + "jelenie";
+      SF Sg Voc => x + "Jeleno";
+      SF Pl Nom => x + "Jeleny";
+      SF Pl Gen => x + "Jelen";
+      SF Pl Dat => x + "Jelenom";
+      SF Pl Acc => x + "Jeleny";
+      SF Pl Instr => x + "Jelenami";
+      SF Pl Loc => x + "Jelenach";
+      SF Pl Voc => x + "Jeleny"
+    };
+
+    oper mkNTable0437: Str -> SubstForm => Str; --%
+    oper mkNTable0437 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "jerzyk";
+      SF Sg Gen => x + "jerzyka";
+      SF Sg Dat => x + "jerzykowi";
+      SF Sg Acc => x + "jerzyka";
+      SF Sg Instr => x + "jerzykiem";
+      SF Sg Loc => x + "jerzyku";
+      SF Sg Voc => x + "jerzyku";
+      SF Pl Nom => x + "Jerzykowie";
+      SF Pl Gen => x + "jerzyków";
+      SF Pl Dat => x + "jerzykom";
+      SF Pl Acc => x + "jerzyków";
+      SF Pl Instr => x + "jerzykami";
+      SF Pl Loc => x + "jerzykach";
+      SF Pl Voc => x + "Jerzykowie"
+    };
+
+    oper mkNTable0440: Str -> SubstForm => Str; --%
+    oper mkNTable0440 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0441: Str -> SubstForm => Str; --%
+    oper mkNTable0441 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "jonatan";
+      SF Sg Gen => x + "jonatana";
+      SF Sg Dat => x + "jonatanowi";
+      SF Sg Acc => x + "jonatana";
+      SF Sg Instr => x + "jonatanem";
+      SF Sg Loc => x + "jonatanie";
+      SF Sg Voc => x + "jonatanie";
+      SF Pl Nom => x + "Jonatanowie";
+      SF Pl Gen => x + "jonatanów";
+      SF Pl Dat => x + "jonatanom";
+      SF Pl Acc => x + "jonatanów";
+      SF Pl Instr => x + "jonatanami";
+      SF Pl Loc => x + "jonatanach";
+      SF Pl Voc => x + "Jonatanowie"
+    };
+
+    oper mkNTable0442: Str -> SubstForm => Str; --%
+    oper mkNTable0442 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "jordan";
+      SF Sg Gen => x + "Jordana";
+      SF Sg Dat => x + "jordanowi";
+      SF Sg Acc => x + "Jordana";
+      SF Sg Instr => x + "jordanem";
+      SF Sg Loc => x + "jordanie";
+      SF Sg Voc => x + "jordanie";
+      SF Pl Nom => x + "Jordanowie";
+      SF Pl Gen => x + "jordanów";
+      SF Pl Dat => x + "jordanom";
+      SF Pl Acc => x + "jordanów";
+      SF Pl Instr => x + "jordanami";
+      SF Pl Loc => x + "jordanach";
+      SF Pl Voc => x + "Jordanowie"
+    };
+
+    oper mkNTable0444: Str -> SubstForm => Str; --%
+    oper mkNTable0444 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ph";
+      SF Sg Gen => x + "pha";
+      SF Sg Dat => x + "phowi";
+      SF Sg Acc => x + "pha";
+      SF Sg Instr => x + "phem";
+      SF Sg Loc => x + "fie";
+      SF Sg Voc => x + "fie";
+      SF Pl Nom => x + "phowie";
+      SF Pl Gen => x + "phów";
+      SF Pl Dat => x + "phom";
+      SF Pl Acc => x + "phów";
+      SF Pl Instr => x + "phami";
+      SF Pl Loc => x + "phach";
+      SF Pl Voc => x + "phowie"
+    };
+
+    oper mkNTable0445: Str -> SubstForm => Str; --%
+    oper mkNTable0445 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kaczor";
+      SF Sg Gen => x + "kaczora";
+      SF Sg Dat => x + "kaczorowi";
+      SF Sg Acc => x + "kaczora";
+      SF Sg Instr => x + "kaczorem";
+      SF Sg Loc => x + "kaczorze";
+      SF Sg Voc => x + "kaczorze";
+      SF Pl Nom => x + "Kaczorowie";
+      SF Pl Gen => x + "kaczorów";
+      SF Pl Dat => x + "kaczorom";
+      SF Pl Acc => x + "kaczorów";
+      SF Pl Instr => x + "kaczorami";
+      SF Pl Loc => x + "kaczorach";
+      SF Pl Voc => x + "Kaczorowie"
+    };
+
+    oper mkNTable0446: Str -> SubstForm => Str; --%
+    oper mkNTable0446 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kajtek";
+      SF Sg Gen => x + "kajtka";
+      SF Sg Dat => x + "kajtkowi";
+      SF Sg Acc => x + "kajtka";
+      SF Sg Instr => x + "kajtkiem";
+      SF Sg Loc => x + "kajtku";
+      SF Sg Voc => x + "kajtku";
+      SF Pl Nom => x + "Kajtkowie";
+      SF Pl Gen => x + "kajtków";
+      SF Pl Dat => x + "kajtkom";
+      SF Pl Acc => x + "kajtków";
+      SF Pl Instr => x + "kajtkami";
+      SF Pl Loc => x + "kajtkach";
+      SF Pl Voc => x + "Kajtkowie"
+    };
+
+    oper mkNTable0447: Str -> SubstForm => Str; --%
+    oper mkNTable0447 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kania";
+      SF Sg Gen => x + "kani";
+      SF Sg Dat => x + "kani";
+      SF Sg Acc => x + "kanię";
+      SF Sg Instr => x + "kanią";
+      SF Sg Loc => x + "kani";
+      SF Sg Voc => x + "kanio";
+      SF Pl Nom => x + "Kaniowie";
+      SF Pl Gen => x + "Kaniów";
+      SF Pl Dat => x + "kaniom";
+      SF Pl Acc => x + "Kaniów";
+      SF Pl Instr => x + "kaniami";
+      SF Pl Loc => x + "kaniach";
+      SF Pl Voc => x + "Kaniowie"
+    };
+
+    oper mkNTable0448: Str -> SubstForm => Str; --%
+    oper mkNTable0448 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kant";
+      SF Sg Gen => x + "Kanta";
+      SF Sg Dat => x + "kantowi";
+      SF Sg Acc => x + "Kanta";
+      SF Sg Instr => x + "kantem";
+      SF Sg Loc => x + "kancie";
+      SF Sg Voc => x + "kancie";
+      SF Pl Nom => x + "Kantowie";
+      SF Pl Gen => x + "kantów";
+      SF Pl Dat => x + "kantom";
+      SF Pl Acc => x + "kantów";
+      SF Pl Instr => x + "kantami";
+      SF Pl Loc => x + "kantach";
+      SF Pl Voc => x + "Kantowie"
+    };
+
+    oper mkNTable0449: Str -> SubstForm => Str; --%
+    oper mkNTable0449 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0452: Str -> SubstForm => Str; --%
+    oper mkNTable0452 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Karl";
+      SF Sg Gen => x + "Karla";
+      SF Sg Dat => x + "Karlowi";
+      SF Sg Acc => x + "Karla";
+      SF Sg Instr => x + "Karlem";
+      SF Sg Loc => x + "Karlu";
+      SF Sg Voc => x + "Karlu";
+      SF Pl Nom => x + "karle";
+      SF Pl Gen => x + "Karlów";
+      SF Pl Dat => x + "Karlom";
+      SF Pl Acc => x + "Karlów";
+      SF Pl Instr => x + "Karlami";
+      SF Pl Loc => x + "Karlach";
+      SF Pl Voc => x + "karle"
+    };
+
+    oper mkNTable0453: Str -> SubstForm => Str; --%
+    oper mkNTable0453 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "karlik";
+      SF Sg Gen => x + "karlika";
+      SF Sg Dat => x + "karlikowi";
+      SF Sg Acc => x + "karlika";
+      SF Sg Instr => x + "karlikiem";
+      SF Sg Loc => x + "karliku";
+      SF Sg Voc => x + "karliku";
+      SF Pl Nom => x + "Karlikowie";
+      SF Pl Gen => x + "karlików";
+      SF Pl Dat => x + "karlikom";
+      SF Pl Acc => x + "karlików";
+      SF Pl Instr => x + "karlikami";
+      SF Pl Loc => x + "karlikach";
+      SF Pl Voc => x + "Karlikowie"
+    };
+
+    oper mkNTable0454: Str -> SubstForm => Str; --%
+    oper mkNTable0454 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "karolek";
+      SF Sg Gen => x + "karolka";
+      SF Sg Dat => x + "karolkowi";
+      SF Sg Acc => x + "karolka";
+      SF Sg Instr => x + "karolkiem";
+      SF Sg Loc => x + "karolku";
+      SF Sg Voc => x + "karolku";
+      SF Pl Nom => x + "Karolkowie";
+      SF Pl Gen => x + "karolków";
+      SF Pl Dat => x + "karolkom";
+      SF Pl Acc => x + "karolków";
+      SF Pl Instr => x + "karolkami";
+      SF Pl Loc => x + "karolkach";
+      SF Pl Voc => x + "Karolkowie"
+    };
+
+    oper mkNTable0455: Str -> SubstForm => Str; --%
+    oper mkNTable0455 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "karolka";
+      SF Sg Gen => x + "karolki";
+      SF Sg Dat => x + "Karolce";
+      SF Sg Acc => x + "Karolkę";
+      SF Sg Instr => x + "Karolką";
+      SF Sg Loc => x + "Karolce";
+      SF Sg Voc => x + "Karolko";
+      SF Pl Nom => x + "karolki";
+      SF Pl Gen => x + "karolek";
+      SF Pl Dat => x + "karolkom";
+      SF Pl Acc => x + "karolki";
+      SF Pl Instr => x + "karolkami";
+      SF Pl Loc => x + "karolkach";
+      SF Pl Voc => x + "karolki"
+    };
+
+    oper mkNTable0456: Str -> SubstForm => Str; --%
+    oper mkNTable0456 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "ia";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0457: Str -> SubstForm => Str; --%
+    oper mkNTable0457 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kasia";
+      SF Sg Gen => x + "Kasi";
+      SF Sg Dat => x + "Kasi";
+      SF Sg Acc => x + "Kasię";
+      SF Sg Instr => x + "Kasią";
+      SF Sg Loc => x + "Kasi";
+      SF Sg Voc => x + "Kasiu";
+      SF Pl Nom => x + "kasie";
+      SF Pl Gen => x + "Kaś";
+      SF Pl Dat => x + "Kasiom";
+      SF Pl Acc => x + "kasie";
+      SF Pl Instr => x + "Kasiami";
+      SF Pl Loc => x + "Kasiach";
+      SF Pl Voc => x + "kasie"
+    };
+
+    oper mkNTable0458: Str -> SubstForm => Str; --%
+    oper mkNTable0458 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ńka";
+      SF Sg Gen => x + "ńki";
+      SF Sg Dat => x + "ńce";
+      SF Sg Acc => x + "ńkę";
+      SF Sg Instr => x + "ńką";
+      SF Sg Loc => x + "ńce";
+      SF Sg Voc => x + "ńko";
+      SF Pl Nom => x + "ńki";
+      SF Pl Gen => x + "niek";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńki";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńki"
+    };
+
+    oper mkNTable0459: Str -> SubstForm => Str; --%
+    oper mkNTable0459 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kastor";
+      SF Sg Gen => x + "kastora";
+      SF Sg Dat => x + "kastorowi";
+      SF Sg Acc => x + "kastora";
+      SF Sg Instr => x + "kastorem";
+      SF Sg Loc => x + "kastorze";
+      SF Sg Voc => x + "kastorze";
+      SF Pl Nom => x + "Kastorowie";
+      SF Pl Gen => x + "kastorów";
+      SF Pl Dat => x + "kastorom";
+      SF Pl Acc => x + "kastorów";
+      SF Pl Instr => x + "kastorami";
+      SF Pl Loc => x + "kastorach";
+      SF Pl Voc => x + "Kastorowie"
+    };
+
+    oper mkNTable0460: Str -> SubstForm => Str; --%
+    oper mkNTable0460 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kato";
+      SF Sg Gen => x + "katona";
+      SF Sg Dat => x + "katonowi";
+      SF Sg Acc => x + "katona";
+      SF Sg Instr => x + "katonem";
+      SF Sg Loc => x + "katonie";
+      SF Sg Voc => x + "katonie";
+      SF Pl Nom => x + "Katonowie";
+      SF Pl Gen => x + "katonów";
+      SF Pl Dat => x + "katonom";
+      SF Pl Acc => x + "katonów";
+      SF Pl Instr => x + "katonami";
+      SF Pl Loc => x + "katonach";
+      SF Pl Voc => x + "Katonowie"
+    };
+
+    oper mkNTable0461: Str -> SubstForm => Str; --%
+    oper mkNTable0461 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kaukaz";
+      SF Sg Gen => x + "Kaukazu";
+      SF Sg Dat => x + "kaukazowi";
+      SF Sg Acc => x + "kaukaz";
+      SF Sg Instr => x + "kaukazem";
+      SF Sg Loc => x + "kaukazie";
+      SF Sg Voc => x + "kaukazie";
+      SF Pl Nom => x + "kaukazy";
+      SF Pl Gen => x + "kaukazów";
+      SF Pl Dat => x + "kaukazom";
+      SF Pl Acc => x + "kaukazy";
+      SF Pl Instr => x + "kaukazami";
+      SF Pl Loc => x + "kaukazach";
+      SF Pl Voc => x + "kaukazy"
+    };
+
+    oper mkNTable0462: Str -> SubstForm => Str; --%
+    oper mkNTable0462 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kawa";
+      SF Sg Gen => x + "kawy";
+      SF Sg Dat => x + "kawie";
+      SF Sg Acc => x + "kawę";
+      SF Sg Instr => x + "kawą";
+      SF Sg Loc => x + "kawie";
+      SF Sg Voc => x + "kawo";
+      SF Pl Nom => x + "Kawowie";
+      SF Pl Gen => x + "Kawów";
+      SF Pl Dat => x + "kawom";
+      SF Pl Acc => x + "Kawów";
+      SF Pl Instr => x + "kawami";
+      SF Pl Loc => x + "kawach";
+      SF Pl Voc => x + "Kawowie"
+    };
+
+    oper mkNTable0463: Str -> SubstForm => Str; --%
+    oper mkNTable0463 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kazan";
+      SF Sg Gen => x + "Kazana";
+      SF Sg Dat => x + "Kazanowi";
+      SF Sg Acc => x + "Kazana";
+      SF Sg Instr => x + "Kazanem";
+      SF Sg Loc => x + "kazanie";
+      SF Sg Voc => x + "kazanie";
+      SF Pl Nom => x + "Kazanowie";
+      SF Pl Gen => x + "Kazanów";
+      SF Pl Dat => x + "Kazanom";
+      SF Pl Acc => x + "Kazanów";
+      SF Pl Instr => x + "Kazanami";
+      SF Pl Loc => x + "Kazanach";
+      SF Pl Voc => x + "Kazanowie"
+    };
+
+    oper mkNTable0464: Str -> SubstForm => Str; --%
+    oper mkNTable0464 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kańczuga";
+      SF Sg Gen => x + "kańczugi";
+      SF Sg Dat => x + "Kańczudze";
+      SF Sg Acc => x + "Kańczugę";
+      SF Sg Instr => x + "Kańczugą";
+      SF Sg Loc => x + "Kańczudze";
+      SF Sg Voc => x + "Kańczugo";
+      SF Pl Nom => x + "kańczugi";
+      SF Pl Gen => x + "kańczug";
+      SF Pl Dat => x + "kańczugom";
+      SF Pl Acc => x + "kańczugi";
+      SF Pl Instr => x + "kańczugami";
+      SF Pl Loc => x + "kańczugach";
+      SF Pl Voc => x + "kańczugi"
+    };
+
+    oper mkNTable0465: Str -> SubstForm => Str; --%
+    oper mkNTable0465 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kedyw";
+      SF Sg Gen => x + "Kedywu";
+      SF Sg Dat => x + "kedywowi";
+      SF Sg Acc => x + "kedyw";
+      SF Sg Instr => x + "kedywem";
+      SF Sg Loc => x + "kedywie";
+      SF Sg Voc => x + "kedywie";
+      SF Pl Nom => x + "kedywy";
+      SF Pl Gen => x + "kedywów";
+      SF Pl Dat => x + "kedywom";
+      SF Pl Acc => x + "kedywy";
+      SF Pl Instr => x + "kedywami";
+      SF Pl Loc => x + "kedywach";
+      SF Pl Voc => x + "kedywy"
+    };
+
+    oper mkNTable0466: Str -> SubstForm => Str; --%
+    oper mkNTable0466 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0467: Str -> SubstForm => Str; --%
+    oper mkNTable0467 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zia";
+      SF Sg Dat => x + "ziowi";
+      SF Sg Acc => x + "zia";
+      SF Sg Instr => x + "ziem";
+      SF Sg Loc => x + "ziu";
+      SF Sg Voc => x + "ziu";
+      SF Pl Nom => x + "ziowie";
+      SF Pl Gen => x + "ziów";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "ziów";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "ziowie"
+    };
+
+    oper mkNTable0468: Str -> SubstForm => Str; --%
+    oper mkNTable0468 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kiełbasa";
+      SF Sg Gen => x + "kiełbasy";
+      SF Sg Dat => x + "kiełbasie";
+      SF Sg Acc => x + "kiełbasę";
+      SF Sg Instr => x + "kiełbasą";
+      SF Sg Loc => x + "kiełbasie";
+      SF Sg Voc => x + "kiełbaso";
+      SF Pl Nom => x + "Kiełbasowie";
+      SF Pl Gen => x + "Kiełbasów";
+      SF Pl Dat => x + "kiełbasom";
+      SF Pl Acc => x + "Kiełbasów";
+      SF Pl Instr => x + "kiełbasami";
+      SF Pl Loc => x + "kiełbasach";
+      SF Pl Voc => x + "Kiełbasowie"
+    };
+
+    oper mkNTable0470: Str -> SubstForm => Str; --%
+    oper mkNTable0470 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "king";
+      SF Sg Gen => x + "Kinga";
+      SF Sg Dat => x + "kingowi";
+      SF Sg Acc => x + "Kinga";
+      SF Sg Instr => x + "kingiem";
+      SF Sg Loc => x + "kingu";
+      SF Sg Voc => x + "kingu";
+      SF Pl Nom => x + "Kingowie";
+      SF Pl Gen => x + "kingów";
+      SF Pl Dat => x + "kingom";
+      SF Pl Acc => x + "kingów";
+      SF Pl Instr => x + "kingami";
+      SF Pl Loc => x + "kingach";
+      SF Pl Voc => x + "Kingowie"
+    };
+
+    oper mkNTable0471: Str -> SubstForm => Str; --%
+    oper mkNTable0471 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kinga";
+      SF Sg Gen => x + "kingi";
+      SF Sg Dat => x + "Kindze";
+      SF Sg Acc => x + "Kingę";
+      SF Sg Instr => x + "Kingą";
+      SF Sg Loc => x + "Kindze";
+      SF Sg Voc => x + "Kingo";
+      SF Pl Nom => x + "kingi";
+      SF Pl Gen => x + "king";
+      SF Pl Dat => x + "kingom";
+      SF Pl Acc => x + "kingi";
+      SF Pl Instr => x + "kingami";
+      SF Pl Loc => x + "kingach";
+      SF Pl Voc => x + "kingi"
+    };
+
+    oper mkNTable0472: Str -> SubstForm => Str; --%
+    oper mkNTable0472 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kinia";
+      SF Sg Gen => x + "Kini";
+      SF Sg Dat => x + "Kini";
+      SF Sg Acc => x + "Kinię";
+      SF Sg Instr => x + "Kinią";
+      SF Sg Loc => x + "Kini";
+      SF Sg Voc => x + "Kinio";
+      SF Pl Nom => x + "kinie";
+      SF Pl Gen => x + "Kiń";
+      SF Pl Dat => x + "Kiniom";
+      SF Pl Acc => x + "kinie";
+      SF Pl Instr => x + "Kiniami";
+      SF Pl Loc => x + "Kiniach";
+      SF Pl Voc => x + "kinie"
+    };
+
+    oper mkNTable0473: Str -> SubstForm => Str; --%
+    oper mkNTable0473 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Kira";
+      SF Sg Gen => x + "kiry";
+      SF Sg Dat => x + "kirze";
+      SF Sg Acc => x + "Kirę";
+      SF Sg Instr => x + "Kirą";
+      SF Sg Loc => x + "kirze";
+      SF Sg Voc => x + "Kiro";
+      SF Pl Nom => x + "kiry";
+      SF Pl Gen => x + "kir";
+      SF Pl Dat => x + "kirom";
+      SF Pl Acc => x + "kiry";
+      SF Pl Instr => x + "kirami";
+      SF Pl Loc => x + "kirach";
+      SF Pl Voc => x + "kiry"
+    };
+
+    oper mkNTable0474: Str -> SubstForm => Str; --%
+    oper mkNTable0474 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "klaczko";
+      SF Sg Gen => x + "klaczki";
+      SF Sg Dat => x + "klaczce";
+      SF Sg Acc => x + "klaczkę";
+      SF Sg Instr => x + "klaczką";
+      SF Sg Loc => x + "klaczce";
+      SF Sg Voc => x + "klaczko";
+      SF Pl Nom => x + "Klaczkowie";
+      SF Pl Gen => x + "Klaczków";
+      SF Pl Dat => x + "klaczkom";
+      SF Pl Acc => x + "Klaczków";
+      SF Pl Instr => x + "klaczkami";
+      SF Pl Loc => x + "klaczkach";
+      SF Pl Voc => x + "Klaczkowie"
+    };
+
+    oper mkNTable0475: Str -> SubstForm => Str; --%
+    oper mkNTable0475 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Klara";
+      SF Sg Gen => x + "klary";
+      SF Sg Dat => x + "klarze";
+      SF Sg Acc => x + "Klarę";
+      SF Sg Instr => x + "Klarą";
+      SF Sg Loc => x + "klarze";
+      SF Sg Voc => x + "Klaro";
+      SF Pl Nom => x + "klary";
+      SF Pl Gen => x + "klar";
+      SF Pl Dat => x + "klarom";
+      SF Pl Acc => x + "klary";
+      SF Pl Instr => x + "klarami";
+      SF Pl Loc => x + "klarach";
+      SF Pl Voc => x + "klary"
+    };
+
+    oper mkNTable0477: Str -> SubstForm => Str; --%
+    oper mkNTable0477 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kokoszko";
+      SF Sg Gen => x + "kokoszki";
+      SF Sg Dat => x + "kokoszce";
+      SF Sg Acc => x + "kokoszkę";
+      SF Sg Instr => x + "kokoszką";
+      SF Sg Loc => x + "kokoszce";
+      SF Sg Voc => x + "kokoszko";
+      SF Pl Nom => x + "Kokoszkowie";
+      SF Pl Gen => x + "Kokoszków";
+      SF Pl Dat => x + "kokoszkom";
+      SF Pl Acc => x + "Kokoszków";
+      SF Pl Instr => x + "kokoszkami";
+      SF Pl Loc => x + "kokoszkach";
+      SF Pl Voc => x + "Kokoszkowie"
+    };
+
+    oper mkNTable0479: Str -> SubstForm => Str; --%
+    oper mkNTable0479 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "koleta";
+      SF Sg Gen => x + "kolety";
+      SF Sg Dat => x + "kolecie";
+      SF Sg Acc => x + "Koletę";
+      SF Sg Instr => x + "Koletą";
+      SF Sg Loc => x + "kolecie";
+      SF Sg Voc => x + "Koleto";
+      SF Pl Nom => x + "kolety";
+      SF Pl Gen => x + "kolet";
+      SF Pl Dat => x + "koletom";
+      SF Pl Acc => x + "kolety";
+      SF Pl Instr => x + "koletami";
+      SF Pl Loc => x + "koletach";
+      SF Pl Voc => x + "kolety"
+    };
+
+    oper mkNTable0481: Str -> SubstForm => Str; --%
+    oper mkNTable0481 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kongo";
+      SF Sg Gen => x + "konga";
+      SF Sg Dat => x + "Kongu";
+      SF Sg Acc => x + "kongo";
+      SF Sg Instr => x + "Kongiem";
+      SF Sg Loc => x + "Kongu";
+      SF Sg Voc => x + "kongo";
+      SF Pl Nom => x + "konga";
+      SF Pl Gen => x + "kong";
+      SF Pl Dat => x + "kongom";
+      SF Pl Acc => x + "konga";
+      SF Pl Instr => x + "kongami";
+      SF Pl Loc => x + "kongach";
+      SF Pl Voc => x + "konga"
+    };
+
+    oper mkNTable0483: Str -> SubstForm => Str; --%
+    oper mkNTable0483 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "konstanty";
+      SF Sg Gen => x + "Konstantego";
+      SF Sg Dat => x + "Konstantemu";
+      SF Sg Acc => x + "Konstantego";
+      SF Sg Instr => x + "Konstantym";
+      SF Sg Loc => x + "Konstantym";
+      SF Sg Voc => x + "konstanty";
+      SF Pl Nom => x + "Konstantowie";
+      SF Pl Gen => x + "Konstantych";
+      SF Pl Dat => x + "Konstantym";
+      SF Pl Acc => x + "Konstantych";
+      SF Pl Instr => x + "Konstantymi";
+      SF Pl Loc => x + "Konstantych";
+      SF Pl Voc => x + "Konstantowie"
+    };
+
+    oper mkNTable0484: Str -> SubstForm => Str; --%
+    oper mkNTable0484 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Kopt";
+      SF Sg Gen => x + "Kopta";
+      SF Sg Dat => x + "Koptowi";
+      SF Sg Acc => x + "Kopta";
+      SF Sg Instr => x + "Koptem";
+      SF Sg Loc => x + "kopcie";
+      SF Sg Voc => x + "kopcie";
+      SF Pl Nom => x + "Koptowie";
+      SF Pl Gen => x + "Koptów";
+      SF Pl Dat => x + "Koptom";
+      SF Pl Acc => x + "Koptów";
+      SF Pl Instr => x + "Koptami";
+      SF Pl Loc => x + "Koptach";
+      SF Pl Voc => x + "Koptowie"
+    };
+
+    oper mkNTable0486: Str -> SubstForm => Str; --%
+    oper mkNTable0486 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kornel";
+      SF Sg Gen => x + "Kornela";
+      SF Sg Dat => x + "kornelowi";
+      SF Sg Acc => x + "Kornela";
+      SF Sg Instr => x + "kornelem";
+      SF Sg Loc => x + "kornelu";
+      SF Sg Voc => x + "kornelu";
+      SF Pl Nom => x + "kornele";
+      SF Pl Gen => x + "kornelów";
+      SF Pl Dat => x + "kornelom";
+      SF Pl Acc => x + "kornelów";
+      SF Pl Instr => x + "kornelami";
+      SF Pl Loc => x + "kornelach";
+      SF Pl Voc => x + "kornele"
+    };
+
+    oper mkNTable0487: Str -> SubstForm => Str; --%
+    oper mkNTable0487 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "korsak";
+      SF Sg Gen => x + "korsaka";
+      SF Sg Dat => x + "korsakowi";
+      SF Sg Acc => x + "korsaka";
+      SF Sg Instr => x + "korsakiem";
+      SF Sg Loc => x + "korsaku";
+      SF Sg Voc => x + "korsaku";
+      SF Pl Nom => x + "Korsakowie";
+      SF Pl Gen => x + "korsaków";
+      SF Pl Dat => x + "korsakom";
+      SF Pl Acc => x + "korsaków";
+      SF Pl Instr => x + "korsakami";
+      SF Pl Loc => x + "korsakach";
+      SF Pl Voc => x + "Korsakowie"
+    };
+
+    oper mkNTable0488: Str -> SubstForm => Str; --%
+    oper mkNTable0488 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0489: Str -> SubstForm => Str; --%
+    oper mkNTable0489 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kostek";
+      SF Sg Gen => x + "kostka";
+      SF Sg Dat => x + "Kostkowi";
+      SF Sg Acc => x + "kostka";
+      SF Sg Instr => x + "Kostkiem";
+      SF Sg Loc => x + "Kostku";
+      SF Sg Voc => x + "Kostku";
+      SF Pl Nom => x + "Kostkowie";
+      SF Pl Gen => x + "Kostków";
+      SF Pl Dat => x + "kostkom";
+      SF Pl Acc => x + "Kostków";
+      SF Pl Instr => x + "kostkami";
+      SF Pl Loc => x + "kostkach";
+      SF Pl Voc => x + "Kostkowie"
+    };
+
+    oper mkNTable0490: Str -> SubstForm => Str; --%
+    oper mkNTable0490 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kostka";
+      SF Sg Gen => x + "kostki";
+      SF Sg Dat => x + "kostce";
+      SF Sg Acc => x + "kostkę";
+      SF Sg Instr => x + "kostką";
+      SF Sg Loc => x + "kostce";
+      SF Sg Voc => x + "kostko";
+      SF Pl Nom => x + "Kostkowie";
+      SF Pl Gen => x + "Kostków";
+      SF Pl Dat => x + "kostkom";
+      SF Pl Acc => x + "Kostków";
+      SF Pl Instr => x + "kostkami";
+      SF Pl Loc => x + "kostkach";
+      SF Pl Voc => x + "Kostkowie"
+    };
+
+    oper mkNTable0491: Str -> SubstForm => Str; --%
+    oper mkNTable0491 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "kostrzewa";
+      SF Sg Gen => x + "kostrzewy";
+      SF Sg Dat => x + "kostrzewie";
+      SF Sg Acc => x + "kostrzewę";
+      SF Sg Instr => x + "kostrzewą";
+      SF Sg Loc => x + "kostrzewie";
+      SF Sg Voc => x + "kostrzewo";
+      SF Pl Nom => x + "Kostrzewowie";
+      SF Pl Gen => x + "Kostrzewów";
+      SF Pl Dat => x + "kostrzewom";
+      SF Pl Acc => x + "Kostrzewów";
+      SF Pl Instr => x + "kostrzewami";
+      SF Pl Loc => x + "kostrzewach";
+      SF Pl Voc => x + "Kostrzewowie"
+    };
+
+    oper mkNTable0493: Str -> SubstForm => Str; --%
+    oper mkNTable0493 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "kot";
+      SF Sg Gen => x + "kota";
+      SF Sg Dat => x + "kotowi";
+      SF Sg Acc => x + "kota";
+      SF Sg Instr => x + "kotem";
+      SF Sg Loc => x + "kocie";
+      SF Sg Voc => x + "kocie";
+      SF Pl Nom => x + "Kotowie";
+      SF Pl Gen => x + "kotów";
+      SF Pl Dat => x + "kotom";
+      SF Pl Acc => x + "kotów";
+      SF Pl Instr => x + "kotami";
+      SF Pl Loc => x + "kotach";
+      SF Pl Voc => x + "Kotowie"
+    };
+
+    oper mkNTable0494: Str -> SubstForm => Str; --%
+    oper mkNTable0494 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kotula";
+      SF Sg Gen => x + "kotuli";
+      SF Sg Dat => x + "kotuli";
+      SF Sg Acc => x + "kotulę";
+      SF Sg Instr => x + "kotulą";
+      SF Sg Loc => x + "kotuli";
+      SF Sg Voc => x + "kotulo";
+      SF Pl Nom => x + "Kotulowie";
+      SF Pl Gen => x + "Kotulów";
+      SF Pl Dat => x + "kotulom";
+      SF Pl Acc => x + "Kotulów";
+      SF Pl Instr => x + "kotulami";
+      SF Pl Loc => x + "kotulach";
+      SF Pl Voc => x + "Kotulowie"
+    };
+
+    oper mkNTable0495: Str -> SubstForm => Str; --%
+    oper mkNTable0495 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kowal";
+      SF Sg Gen => x + "kowala";
+      SF Sg Dat => x + "kowalowi";
+      SF Sg Acc => x + "kowala";
+      SF Sg Instr => x + "kowalem";
+      SF Sg Loc => x + "kowalu";
+      SF Sg Voc => x + "kowalu";
+      SF Pl Nom => x + "Kowalowie";
+      SF Pl Gen => x + "Kowalów";
+      SF Pl Dat => x + "kowalom";
+      SF Pl Acc => x + "Kowalów";
+      SF Pl Instr => x + "kowalami";
+      SF Pl Loc => x + "kowalach";
+      SF Pl Voc => x + "Kowalowie"
+    };
+
+    oper mkNTable0496: Str -> SubstForm => Str; --%
+    oper mkNTable0496 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "kowalik";
+      SF Sg Gen => x + "kowalika";
+      SF Sg Dat => x + "kowalikowi";
+      SF Sg Acc => x + "kowalika";
+      SF Sg Instr => x + "kowalikiem";
+      SF Sg Loc => x + "kowaliku";
+      SF Sg Voc => x + "kowaliku";
+      SF Pl Nom => x + "Kowalikowie";
+      SF Pl Gen => x + "kowalików";
+      SF Pl Dat => x + "kowalikom";
+      SF Pl Acc => x + "kowalików";
+      SF Pl Instr => x + "kowalikami";
+      SF Pl Loc => x + "kowalikach";
+      SF Pl Voc => x + "Kowalikowie"
+    };
+
+    oper mkNTable0497: Str -> SubstForm => Str; --%
+    oper mkNTable0497 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kozaczka";
+      SF Sg Gen => x + "kozaczki";
+      SF Sg Dat => x + "Kozaczce";
+      SF Sg Acc => x + "Kozaczkę";
+      SF Sg Instr => x + "Kozaczką";
+      SF Sg Loc => x + "Kozaczce";
+      SF Sg Voc => x + "Kozaczko";
+      SF Pl Nom => x + "kozaczki";
+      SF Pl Gen => x + "kozaczek";
+      SF Pl Dat => x + "kozaczkom";
+      SF Pl Acc => x + "kozaczki";
+      SF Pl Instr => x + "kozaczkami";
+      SF Pl Loc => x + "kozaczkach";
+      SF Pl Voc => x + "kozaczki"
+    };
+
+    oper mkNTable0498: Str -> SubstForm => Str; --%
+    oper mkNTable0498 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kozioł";
+      SF Sg Gen => x + "kozła";
+      SF Sg Dat => x + "Kozłowi";
+      SF Sg Acc => x + "kozła";
+      SF Sg Instr => x + "kozłem";
+      SF Sg Loc => x + "koźle";
+      SF Sg Voc => x + "koźle";
+      SF Pl Nom => x + "Kozłowie";
+      SF Pl Gen => x + "kozłów";
+      SF Pl Dat => x + "kozłom";
+      SF Pl Acc => x + "kozłów";
+      SF Pl Instr => x + "kozłami";
+      SF Pl Loc => x + "kozłach";
+      SF Pl Voc => x + "Kozłowie"
+    };
+
+    oper mkNTable0500: Str -> SubstForm => Str; --%
+    oper mkNTable0500 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "kołodziej";
+      SF Sg Gen => x + "kołodzieja";
+      SF Sg Dat => x + "kołodziejowi";
+      SF Sg Acc => x + "kołodzieja";
+      SF Sg Instr => x + "kołodziejem";
+      SF Sg Loc => x + "kołodzieju";
+      SF Sg Voc => x + "kołodzieju";
+      SF Pl Nom => x + "Kołodziejowie";
+      SF Pl Gen => x + "kołodziejów";
+      SF Pl Dat => x + "kołodziejom";
+      SF Pl Acc => x + "kołodziejów";
+      SF Pl Instr => x + "kołodziejami";
+      SF Pl Loc => x + "kołodziejach";
+      SF Pl Voc => x + "Kołodziejowie"
+    };
+
+    oper mkNTable0502: Str -> SubstForm => Str; --%
+    oper mkNTable0502 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "krawczyk";
+      SF Sg Gen => x + "krawczyka";
+      SF Sg Dat => x + "krawczykowi";
+      SF Sg Acc => x + "krawczyka";
+      SF Sg Instr => x + "krawczykiem";
+      SF Sg Loc => x + "krawczyku";
+      SF Sg Voc => x + "krawczyku";
+      SF Pl Nom => x + "Krawczykowie";
+      SF Pl Gen => x + "krawczyków";
+      SF Pl Dat => x + "krawczykom";
+      SF Pl Acc => x + "krawczyków";
+      SF Pl Instr => x + "krawczykami";
+      SF Pl Loc => x + "krawczykach";
+      SF Pl Voc => x + "Krawczykowie"
+    };
+
+    oper mkNTable0503: Str -> SubstForm => Str; --%
+    oper mkNTable0503 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "krawiec";
+      SF Sg Gen => x + "krawca";
+      SF Sg Dat => x + "krawcowi";
+      SF Sg Acc => x + "krawca";
+      SF Sg Instr => x + "krawcem";
+      SF Sg Loc => x + "krawcu";
+      SF Sg Voc => x + "krawcu";
+      SF Pl Nom => x + "Krawcowie";
+      SF Pl Gen => x + "krawców";
+      SF Pl Dat => x + "krawcom";
+      SF Pl Acc => x + "krawców";
+      SF Pl Instr => x + "krawcami";
+      SF Pl Loc => x + "krawcach";
+      SF Pl Voc => x + "Krawcowie"
+    };
+
+    oper mkNTable0504: Str -> SubstForm => Str; --%
+    oper mkNTable0504 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kreta";
+      SF Sg Gen => x + "krety";
+      SF Sg Dat => x + "krecie";
+      SF Sg Acc => x + "Kretę";
+      SF Sg Instr => x + "Kretą";
+      SF Sg Loc => x + "krecie";
+      SF Sg Voc => x + "Kreto";
+      SF Pl Nom => x + "krety";
+      SF Pl Gen => x + "kret";
+      SF Pl Dat => x + "kretom";
+      SF Pl Acc => x + "krety";
+      SF Pl Instr => x + "kretami";
+      SF Pl Loc => x + "kretach";
+      SF Pl Voc => x + "krety"
+    };
+
+    oper mkNTable0505: Str -> SubstForm => Str; --%
+    oper mkNTable0505 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iew";
+      SF Sg Gen => x + "wi";
+      SF Sg Dat => x + "wi";
+      SF Sg Acc => x + "iew";
+      SF Sg Instr => x + "wią";
+      SF Sg Loc => x + "wi";
+      SF Sg Voc => x + "wi";
+      SF Pl Nom => x + "wie";
+      SF Pl Gen => x + "wi";
+      SF Pl Dat => x + "wiom";
+      SF Pl Acc => x + "wie";
+      SF Pl Instr => x + "wiami";
+      SF Pl Loc => x + "wiach";
+      SF Pl Voc => x + "wie"
+    };
+
+    oper mkNTable0506: Str -> SubstForm => Str; --%
+    oper mkNTable0506 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "krupa";
+      SF Sg Gen => x + "krupy";
+      SF Sg Dat => x + "krupie";
+      SF Sg Acc => x + "krupę";
+      SF Sg Instr => x + "krupą";
+      SF Sg Loc => x + "krupie";
+      SF Sg Voc => x + "krupo";
+      SF Pl Nom => x + "Krupowie";
+      SF Pl Gen => x + "krupów";
+      SF Pl Dat => x + "krupom";
+      SF Pl Acc => x + "krupów";
+      SF Pl Instr => x + "krupami";
+      SF Pl Loc => x + "krupach";
+      SF Pl Voc => x + "Krupowie"
+    };
+
+    oper mkNTable0507: Str -> SubstForm => Str; --%
+    oper mkNTable0507 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "krupka";
+      SF Sg Gen => x + "krupki";
+      SF Sg Dat => x + "krupce";
+      SF Sg Acc => x + "krupkę";
+      SF Sg Instr => x + "krupką";
+      SF Sg Loc => x + "krupce";
+      SF Sg Voc => x + "krupko";
+      SF Pl Nom => x + "Krupkowie";
+      SF Pl Gen => x + "Krupków";
+      SF Pl Dat => x + "krupkom";
+      SF Pl Acc => x + "Krupków";
+      SF Pl Instr => x + "krupkami";
+      SF Pl Loc => x + "krupkach";
+      SF Pl Voc => x + "Krupkowie"
+    };
+
+    oper mkNTable0508: Str -> SubstForm => Str; --%
+    oper mkNTable0508 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Krystian";
+      SF Sg Gen => x + "Krystiana";
+      SF Sg Dat => x + "Krystianowi";
+      SF Sg Acc => x + "Krystiana";
+      SF Sg Instr => x + "Krystianem";
+      SF Sg Loc => x + "krystianie";
+      SF Sg Voc => x + "krystianie";
+      SF Pl Nom => x + "Krystianowie";
+      SF Pl Gen => x + "Krystianów";
+      SF Pl Dat => x + "Krystianom";
+      SF Pl Acc => x + "Krystianów";
+      SF Pl Instr => x + "Krystianami";
+      SF Pl Loc => x + "Krystianach";
+      SF Pl Voc => x + "Krystianowie"
+    };
+
+    oper mkNTable0509: Str -> SubstForm => Str; --%
+    oper mkNTable0509 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "Krystiana";
+      SF Sg Gen => x + "Krystiany";
+      SF Sg Dat => x + "krystianie";
+      SF Sg Acc => x + "Krystianę";
+      SF Sg Instr => x + "Krystianą";
+      SF Sg Loc => x + "krystianie";
+      SF Sg Voc => x + "Krystiano";
+      SF Pl Nom => x + "Krystiany";
+      SF Pl Gen => x + "Krystian";
+      SF Pl Dat => x + "Krystianom";
+      SF Pl Acc => x + "Krystiany";
+      SF Pl Instr => x + "Krystianami";
+      SF Pl Loc => x + "Krystianach";
+      SF Pl Voc => x + "Krystiany"
+    };
+
+    oper mkNTable0510: Str -> SubstForm => Str; --%
+    oper mkNTable0510 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "krzyżak";
+      SF Sg Gen => x + "krzyżaka";
+      SF Sg Dat => x + "krzyżakowi";
+      SF Sg Acc => x + "krzyżaka";
+      SF Sg Instr => x + "krzyżakiem";
+      SF Sg Loc => x + "krzyżaku";
+      SF Sg Voc => x + "krzyżaku";
+      SF Pl Nom => x + "Krzyżacy";
+      SF Pl Gen => x + "krzyżaków";
+      SF Pl Dat => x + "krzyżakom";
+      SF Pl Acc => x + "krzyżaków";
+      SF Pl Instr => x + "krzyżakami";
+      SF Pl Loc => x + "krzyżakach";
+      SF Pl Voc => x + "Krzyżacy"
+    };
+
+    oper mkNTable0511: Str -> SubstForm => Str; --%
+    oper mkNTable0511 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "ksenia";
+      SF Sg Gen => x + "Kseni";
+      SF Sg Dat => x + "Kseni";
+      SF Sg Acc => x + "ksenię";
+      SF Sg Instr => x + "ksenią";
+      SF Sg Loc => x + "Kseni";
+      SF Sg Voc => x + "Kseniu";
+      SF Pl Nom => x + "ksenie";
+      SF Pl Gen => x + "Kseń";
+      SF Pl Dat => x + "kseniom";
+      SF Pl Acc => x + "ksenie";
+      SF Pl Instr => x + "kseniami";
+      SF Pl Loc => x + "kseniach";
+      SF Pl Voc => x + "ksenie"
+    };
+
+    oper mkNTable0512: Str -> SubstForm => Str; --%
+    oper mkNTable0512 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "książek";
+      SF Sg Gen => x + "książka";
+      SF Sg Dat => x + "Książkowi";
+      SF Sg Acc => x + "książka";
+      SF Sg Instr => x + "Książkiem";
+      SF Sg Loc => x + "Książku";
+      SF Sg Voc => x + "Książku";
+      SF Pl Nom => x + "Książkowie";
+      SF Pl Gen => x + "Książków";
+      SF Pl Dat => x + "książkom";
+      SF Pl Acc => x + "Książków";
+      SF Pl Instr => x + "książkami";
+      SF Pl Loc => x + "książkach";
+      SF Pl Voc => x + "Książkowie"
+    };
+
+    oper mkNTable0513: Str -> SubstForm => Str; --%
+    oper mkNTable0513 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Kuba";
+      SF Sg Gen => x + "kuby";
+      SF Sg Dat => x + "kubie";
+      SF Sg Acc => x + "Kubę";
+      SF Sg Instr => x + "Kubą";
+      SF Sg Loc => x + "kubie";
+      SF Sg Voc => x + "Kubo";
+      SF Pl Nom => x + "kuby";
+      SF Pl Gen => x + "kub";
+      SF Pl Dat => x + "kubom";
+      SF Pl Acc => x + "kuby";
+      SF Pl Instr => x + "kubami";
+      SF Pl Loc => x + "kubach";
+      SF Pl Voc => x + "kuby"
+    };
+
+    oper mkNTable0514: Str -> SubstForm => Str; --%
+    oper mkNTable0514 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Kuba";
+      SF Sg Gen => x + "kuby";
+      SF Sg Dat => x + "kubie";
+      SF Sg Acc => x + "Kubę";
+      SF Sg Instr => x + "Kubą";
+      SF Sg Loc => x + "kubie";
+      SF Sg Voc => x + "Kubo";
+      SF Pl Nom => x + "Kubowie";
+      SF Pl Gen => x + "kubów";
+      SF Pl Dat => x + "kubom";
+      SF Pl Acc => x + "kubów";
+      SF Pl Instr => x + "kubami";
+      SF Pl Loc => x + "kubach";
+      SF Pl Voc => x + "Kubowie"
+    };
+
+    oper mkNTable0515: Str -> SubstForm => Str; --%
+    oper mkNTable0515 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "kucharczyk";
+      SF Sg Gen => x + "kucharczyka";
+      SF Sg Dat => x + "kucharczykowi";
+      SF Sg Acc => x + "kucharczyka";
+      SF Sg Instr => x + "kucharczykiem";
+      SF Sg Loc => x + "kucharczyku";
+      SF Sg Voc => x + "kucharczyku";
+      SF Pl Nom => x + "Kucharczykowie";
+      SF Pl Gen => x + "kucharczyków";
+      SF Pl Dat => x + "kucharczykom";
+      SF Pl Acc => x + "kucharczyków";
+      SF Pl Instr => x + "kucharczykami";
+      SF Pl Loc => x + "kucharczykach";
+      SF Pl Voc => x + "Kucharczykowie"
+    };
+
+    oper mkNTable0516: Str -> SubstForm => Str; --%
+    oper mkNTable0516 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kuczma";
+      SF Sg Gen => x + "kuczmy";
+      SF Sg Dat => x + "kuczmie";
+      SF Sg Acc => x + "kuczmę";
+      SF Sg Instr => x + "kuczmą";
+      SF Sg Loc => x + "kuczmie";
+      SF Sg Voc => x + "kuczmo";
+      SF Pl Nom => x + "Kuczmowie";
+      SF Pl Gen => x + "Kuczmów";
+      SF Pl Dat => x + "kuczmom";
+      SF Pl Acc => x + "Kuczmów";
+      SF Pl Instr => x + "kuczmami";
+      SF Pl Loc => x + "kuczmach";
+      SF Pl Voc => x + "Kuczmowie"
+    };
+
+    oper mkNTable0517: Str -> SubstForm => Str; --%
+    oper mkNTable0517 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kujawiak";
+      SF Sg Gen => x + "kujawiaka";
+      SF Sg Dat => x + "kujawiakowi";
+      SF Sg Acc => x + "kujawiaka";
+      SF Sg Instr => x + "kujawiakiem";
+      SF Sg Loc => x + "kujawiaku";
+      SF Sg Voc => x + "kujawiaku";
+      SF Pl Nom => x + "Kujawiacy";
+      SF Pl Gen => x + "kujawiaków";
+      SF Pl Dat => x + "kujawiakom";
+      SF Pl Acc => x + "kujawiaków";
+      SF Pl Instr => x + "kujawiakami";
+      SF Pl Loc => x + "kujawiakach";
+      SF Pl Voc => x + "Kujawiacy"
+    };
+
+    oper mkNTable0518: Str -> SubstForm => Str; --%
+    oper mkNTable0518 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kula";
+      SF Sg Gen => x + "kuli";
+      SF Sg Dat => x + "kuli";
+      SF Sg Acc => x + "kulę";
+      SF Sg Instr => x + "kulą";
+      SF Sg Loc => x + "kuli";
+      SF Sg Voc => x + "kulo";
+      SF Pl Nom => x + "Kulowie";
+      SF Pl Gen => x + "Kulów";
+      SF Pl Dat => x + "kulom";
+      SF Pl Acc => x + "Kulów";
+      SF Pl Instr => x + "kulami";
+      SF Pl Loc => x + "kulach";
+      SF Pl Voc => x + "Kulowie"
+    };
+
+    oper mkNTable0519: Str -> SubstForm => Str; --%
+    oper mkNTable0519 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kulik";
+      SF Sg Gen => x + "kulika";
+      SF Sg Dat => x + "kulikowi";
+      SF Sg Acc => x + "kulika";
+      SF Sg Instr => x + "kulikiem";
+      SF Sg Loc => x + "kuliku";
+      SF Sg Voc => x + "kuliku";
+      SF Pl Nom => x + "Kulikowie";
+      SF Pl Gen => x + "kulików";
+      SF Pl Dat => x + "kulikom";
+      SF Pl Acc => x + "kulików";
+      SF Pl Instr => x + "kulikami";
+      SF Pl Loc => x + "kulikach";
+      SF Pl Voc => x + "Kulikowie"
+    };
+
+    oper mkNTable0520: Str -> SubstForm => Str; --%
+    oper mkNTable0520 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0521: Str -> SubstForm => Str; --%
+    oper mkNTable0521 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kurek";
+      SF Sg Gen => x + "kurka";
+      SF Sg Dat => x + "kurkowi";
+      SF Sg Acc => x + "kurka";
+      SF Sg Instr => x + "kurkiem";
+      SF Sg Loc => x + "kurku";
+      SF Sg Voc => x + "kurku";
+      SF Pl Nom => x + "Kurkowie";
+      SF Pl Gen => x + "kurków";
+      SF Pl Dat => x + "kurkom";
+      SF Pl Acc => x + "kurków";
+      SF Pl Instr => x + "kurkami";
+      SF Pl Loc => x + "kurkach";
+      SF Pl Voc => x + "Kurkowie"
+    };
+
+    oper mkNTable0522: Str -> SubstForm => Str; --%
+    oper mkNTable0522 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "ia";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "iów";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0523: Str -> SubstForm => Str; --%
+    oper mkNTable0523 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zna";
+      SF Sg Gen => x + "zny";
+      SF Sg Dat => x + "źnie";
+      SF Sg Acc => x + "znę";
+      SF Sg Instr => x + "zną";
+      SF Sg Loc => x + "źnie";
+      SF Sg Voc => x + "zno";
+      SF Pl Nom => x + "zny";
+      SF Pl Gen => x + "zn";
+      SF Pl Dat => x + "znom";
+      SF Pl Acc => x + "zny";
+      SF Pl Instr => x + "znami";
+      SF Pl Loc => x + "znach";
+      SF Pl Voc => x + "zny"
+    };
+
+    oper mkNTable0525: Str -> SubstForm => Str; --%
+    oper mkNTable0525 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kwiecień";
+      SF Sg Gen => x + "kwietnia";
+      SF Sg Dat => x + "kwietniowi";
+      SF Sg Acc => x + "kwietnia";
+      SF Sg Instr => x + "kwietniem";
+      SF Sg Loc => x + "kwietniu";
+      SF Sg Voc => x + "kwietniu";
+      SF Pl Nom => x + "Kwietniowie";
+      SF Pl Gen => x + "kwietniów";
+      SF Pl Dat => x + "kwietniom";
+      SF Pl Acc => x + "kwietniów";
+      SF Pl Instr => x + "kwietniami";
+      SF Pl Loc => x + "kwietniach";
+      SF Pl Voc => x + "Kwietniowie"
+    };
+
+    oper mkNTable0526: Str -> SubstForm => Str; --%
+    oper mkNTable0526 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kłos";
+      SF Sg Gen => x + "kłosa";
+      SF Sg Dat => x + "kłosowi";
+      SF Sg Acc => x + "kłosa";
+      SF Sg Instr => x + "kłosem";
+      SF Sg Loc => x + "kłosie";
+      SF Sg Voc => x + "kłosie";
+      SF Pl Nom => x + "Kłosowie";
+      SF Pl Gen => x + "kłosów";
+      SF Pl Dat => x + "kłosom";
+      SF Pl Acc => x + "kłosów";
+      SF Pl Instr => x + "kłosami";
+      SF Pl Loc => x + "kłosach";
+      SF Pl Voc => x + "Kłosowie"
+    };
+
+    oper mkNTable0527: Str -> SubstForm => Str; --%
+    oper mkNTable0527 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kępa";
+      SF Sg Gen => x + "kępy";
+      SF Sg Dat => x + "kępie";
+      SF Sg Acc => x + "kępę";
+      SF Sg Instr => x + "kępą";
+      SF Sg Loc => x + "kępie";
+      SF Sg Voc => x + "kępo";
+      SF Pl Nom => x + "Kępowie";
+      SF Pl Gen => x + "Kępów";
+      SF Pl Dat => x + "kępom";
+      SF Pl Acc => x + "Kępów";
+      SF Pl Instr => x + "kępami";
+      SF Pl Loc => x + "kępach";
+      SF Pl Voc => x + "Kępowie"
+    };
+
+    oper mkNTable0528: Str -> SubstForm => Str; --%
+    oper mkNTable0528 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "lach";
+      SF Sg Gen => x + "lacha";
+      SF Sg Dat => x + "Lachowi";
+      SF Sg Acc => x + "lacha";
+      SF Sg Instr => x + "Lachem";
+      SF Sg Loc => x + "Lachu";
+      SF Sg Voc => x + "Lachu";
+      SF Pl Nom => x + "Lachowie";
+      SF Pl Gen => x + "Lachów";
+      SF Pl Dat => x + "lachom";
+      SF Pl Acc => x + "Lachów";
+      SF Pl Instr => x + "lachami";
+      SF Pl Loc => x + "lachach";
+      SF Pl Voc => x + "Lachowie"
+    };
+
+    oper mkNTable0529: Str -> SubstForm => Str; --%
+    oper mkNTable0529 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "lambert";
+      SF Sg Gen => x + "lamberta";
+      SF Sg Dat => x + "lambertowi";
+      SF Sg Acc => x + "lamberta";
+      SF Sg Instr => x + "lambertem";
+      SF Sg Loc => x + "lambercie";
+      SF Sg Voc => x + "lambercie";
+      SF Pl Nom => x + "Lambertowie";
+      SF Pl Gen => x + "lambertów";
+      SF Pl Dat => x + "lambertom";
+      SF Pl Acc => x + "lambertów";
+      SF Pl Instr => x + "lambertami";
+      SF Pl Loc => x + "lambertach";
+      SF Pl Voc => x + "Lambertowie"
+    };
+
+    oper mkNTable0531: Str -> SubstForm => Str; --%
+    oper mkNTable0531 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "lato";
+      SF Sg Gen => x + "laty";
+      SF Sg Dat => x + "Lacie";
+      SF Sg Acc => x + "Latę";
+      SF Sg Instr => x + "Latą";
+      SF Sg Loc => x + "Lacie";
+      SF Sg Voc => x + "lato";
+      SF Pl Nom => x + "Latowie";
+      SF Pl Gen => x + "Latów";
+      SF Pl Dat => x + "latom";
+      SF Pl Acc => x + "Latów";
+      SF Pl Instr => x + "latami";
+      SF Pl Loc => x + "latach";
+      SF Pl Voc => x + "Latowie"
+    };
+
+    oper mkNTable0532: Str -> SubstForm => Str; --%
+    oper mkNTable0532 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Laura";
+      SF Sg Gen => x + "laury";
+      SF Sg Dat => x + "laurze";
+      SF Sg Acc => x + "Laurę";
+      SF Sg Instr => x + "Laurą";
+      SF Sg Loc => x + "laurze";
+      SF Sg Voc => x + "Lauro";
+      SF Pl Nom => x + "laury";
+      SF Pl Gen => x + "laur";
+      SF Pl Dat => x + "laurom";
+      SF Pl Acc => x + "laury";
+      SF Pl Instr => x + "laurami";
+      SF Pl Loc => x + "laurach";
+      SF Pl Voc => x + "laury"
+    };
+
+    oper mkNTable0533: Str -> SubstForm => Str; --%
+    oper mkNTable0533 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Lea";
+      SF Sg Gen => x + "lei";
+      SF Sg Dat => x + "lei";
+      SF Sg Acc => x + "Leę";
+      SF Sg Instr => x + "Leą";
+      SF Sg Loc => x + "lei";
+      SF Sg Voc => x + "Leo";
+      SF Pl Nom => x + "Lee";
+      SF Pl Gen => x + "lei";
+      SF Pl Dat => x + "Leom";
+      SF Pl Acc => x + "Lee";
+      SF Pl Instr => x + "Leami";
+      SF Pl Loc => x + "Leach";
+      SF Pl Voc => x + "Lee"
+    };
+
+    oper mkNTable0534: Str -> SubstForm => Str; --%
+    oper mkNTable0534 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Lena";
+      SF Sg Gen => x + "Leny";
+      SF Sg Dat => x + "lenie";
+      SF Sg Acc => x + "Lenę";
+      SF Sg Instr => x + "Leną";
+      SF Sg Loc => x + "lenie";
+      SF Sg Voc => x + "Leno";
+      SF Pl Nom => x + "Leny";
+      SF Pl Gen => x + "len";
+      SF Pl Dat => x + "Lenom";
+      SF Pl Acc => x + "Leny";
+      SF Pl Instr => x + "Lenami";
+      SF Pl Loc => x + "Lenach";
+      SF Pl Voc => x + "Leny"
+    };
+
+    oper mkNTable0535: Str -> SubstForm => Str; --%
+    oper mkNTable0535 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0536: Str -> SubstForm => Str; --%
+    oper mkNTable0536 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nia";
+      SF Sg Gen => x + "nii";
+      SF Sg Dat => x + "nii";
+      SF Sg Acc => x + "nię";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "nii";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0537: Str -> SubstForm => Str; --%
+    oper mkNTable0537 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "leonid";
+      SF Sg Gen => x + "Leonida";
+      SF Sg Dat => x + "Leonidowi";
+      SF Sg Acc => x + "Leonida";
+      SF Sg Instr => x + "Leonidem";
+      SF Sg Loc => x + "Leonidzie";
+      SF Sg Voc => x + "Leonidzie";
+      SF Pl Nom => x + "Leonidowie";
+      SF Pl Gen => x + "leonidów";
+      SF Pl Dat => x + "leonidom";
+      SF Pl Acc => x + "leonidów";
+      SF Pl Instr => x + "leonidami";
+      SF Pl Loc => x + "leonidach";
+      SF Pl Voc => x + "Leonidowie"
+    };
+
+    oper mkNTable0538: Str -> SubstForm => Str; --%
+    oper mkNTable0538 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "lew";
+      SF Sg Gen => x + "lwa";
+      SF Sg Dat => x + "lwu";
+      SF Sg Acc => x + "lwa";
+      SF Sg Instr => x + "lwem";
+      SF Sg Loc => x + "lwie";
+      SF Sg Voc => x + "lwie";
+      SF Pl Nom => x + "Lwowie";
+      SF Pl Gen => x + "lwów";
+      SF Pl Dat => x + "lwom";
+      SF Pl Acc => x + "lwów";
+      SF Pl Instr => x + "lwami";
+      SF Pl Loc => x + "lwach";
+      SF Pl Voc => x + "Lwowie"
+    };
+
+    oper mkNTable0539: Str -> SubstForm => Str; --%
+    oper mkNTable0539 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ew";
+      SF Sg Gen => x + "wa";
+      SF Sg Dat => x + "wu";
+      SF Sg Acc => x + "wa";
+      SF Sg Instr => x + "wem";
+      SF Sg Loc => x + "wie";
+      SF Sg Voc => x + "wie";
+      SF Pl Nom => x + "wy";
+      SF Pl Gen => x + "wów";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wy";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wy"
+    };
+
+    oper mkNTable0540: Str -> SubstForm => Str; --%
+    oper mkNTable0540 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "lewant";
+      SF Sg Gen => x + "Lewantu";
+      SF Sg Dat => x + "lewantowi";
+      SF Sg Acc => x + "lewant";
+      SF Sg Instr => x + "lewantem";
+      SF Sg Loc => x + "lewancie";
+      SF Sg Voc => x + "lewancie";
+      SF Pl Nom => x + "lewanty";
+      SF Pl Gen => x + "lewantów";
+      SF Pl Dat => x + "lewantom";
+      SF Pl Acc => x + "lewanty";
+      SF Pl Instr => x + "lewantami";
+      SF Pl Loc => x + "lewantach";
+      SF Pl Voc => x + "lewanty"
+    };
+
+    oper mkNTable0541: Str -> SubstForm => Str; --%
+    oper mkNTable0541 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Lewis";
+      SF Sg Gen => x + "Lewisa";
+      SF Sg Dat => x + "Lewisowi";
+      SF Sg Acc => x + "Lewisa";
+      SF Sg Instr => x + "Lewisem";
+      SF Sg Loc => x + "Lewisie";
+      SF Sg Voc => x + "Lewisie";
+      SF Pl Nom => x + "Lewisowie";
+      SF Pl Gen => x + "lewisów";
+      SF Pl Dat => x + "lewisom";
+      SF Pl Acc => x + "lewisów";
+      SF Pl Instr => x + "lewisami";
+      SF Pl Loc => x + "lewisach";
+      SF Pl Voc => x + "Lewisowie"
+    };
+
+    oper mkNTable0542: Str -> SubstForm => Str; --%
+    oper mkNTable0542 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Leś";
+      SF Sg Gen => x + "Lesia";
+      SF Sg Dat => x + "Lesiowi";
+      SF Sg Acc => x + "Lesia";
+      SF Sg Instr => x + "Lesiem";
+      SF Sg Loc => x + "Lesiu";
+      SF Sg Voc => x + "Lesiu";
+      SF Pl Nom => x + "lesie";
+      SF Pl Gen => x + "Lesiów";
+      SF Pl Dat => x + "Lesiom";
+      SF Pl Acc => x + "Lesiów";
+      SF Pl Instr => x + "Lesiami";
+      SF Pl Loc => x + "Lesiach";
+      SF Pl Voc => x + "lesie"
+    };
+
+    oper mkNTable0543: Str -> SubstForm => Str; --%
+    oper mkNTable0543 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Lida";
+      SF Sg Gen => x + "lidy";
+      SF Sg Dat => x + "lidzie";
+      SF Sg Acc => x + "Lidę";
+      SF Sg Instr => x + "Lidą";
+      SF Sg Loc => x + "lidzie";
+      SF Sg Voc => x + "lido";
+      SF Pl Nom => x + "lidy";
+      SF Pl Gen => x + "lid";
+      SF Pl Dat => x + "lidom";
+      SF Pl Acc => x + "lidy";
+      SF Pl Instr => x + "lidami";
+      SF Pl Loc => x + "lidach";
+      SF Pl Voc => x + "lidy"
+    };
+
+    oper mkNTable0544: Str -> SubstForm => Str; --%
+    oper mkNTable0544 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Lidzia";
+      SF Sg Gen => x + "Lidzi";
+      SF Sg Dat => x + "Lidzi";
+      SF Sg Acc => x + "Lidzię";
+      SF Sg Instr => x + "Lidzią";
+      SF Sg Loc => x + "Lidzi";
+      SF Sg Voc => x + "Lidziu";
+      SF Pl Nom => x + "lidzie";
+      SF Pl Gen => x + "Lidź";
+      SF Pl Dat => x + "Lidziom";
+      SF Pl Acc => x + "lidzie";
+      SF Pl Instr => x + "Lidziami";
+      SF Pl Loc => x + "Lidziach";
+      SF Pl Voc => x + "lidzie"
+    };
+
+    oper mkNTable0545: Str -> SubstForm => Str; --%
+    oper mkNTable0545 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "lincoln";
+      SF Sg Gen => x + "lincolna";
+      SF Sg Dat => x + "lincolnowi";
+      SF Sg Acc => x + "lincolna";
+      SF Sg Instr => x + "lincolnem";
+      SF Sg Loc => x + "lincolnie";
+      SF Sg Voc => x + "lincolnie";
+      SF Pl Nom => x + "Lincolnowie";
+      SF Pl Gen => x + "lincolnów";
+      SF Pl Dat => x + "lincolnom";
+      SF Pl Acc => x + "lincolnów";
+      SF Pl Instr => x + "lincolnami";
+      SF Pl Loc => x + "lincolnach";
+      SF Pl Voc => x + "Lincolnowie"
+    };
+
+    oper mkNTable0548: Str -> SubstForm => Str; --%
+    oper mkNTable0548 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "lipiec";
+      SF Sg Gen => x + "lipca";
+      SF Sg Dat => x + "lipcowi";
+      SF Sg Acc => x + "lipca";
+      SF Sg Instr => x + "lipcem";
+      SF Sg Loc => x + "lipcu";
+      SF Sg Voc => x + "lipcu";
+      SF Pl Nom => x + "Lipcowie";
+      SF Pl Gen => x + "lipców";
+      SF Pl Dat => x + "lipcom";
+      SF Pl Acc => x + "lipców";
+      SF Pl Instr => x + "lipcami";
+      SF Pl Loc => x + "lipcach";
+      SF Pl Voc => x + "Lipcowie"
+    };
+
+    oper mkNTable0549: Str -> SubstForm => Str; --%
+    oper mkNTable0549 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "lis";
+      SF Sg Gen => x + "lisa";
+      SF Sg Dat => x + "lisowi";
+      SF Sg Acc => x + "lisa";
+      SF Sg Instr => x + "lisem";
+      SF Sg Loc => x + "lisie";
+      SF Sg Voc => x + "lisie";
+      SF Pl Nom => x + "Lisowie";
+      SF Pl Gen => x + "lisów";
+      SF Pl Dat => x + "lisom";
+      SF Pl Acc => x + "lisów";
+      SF Pl Instr => x + "lisami";
+      SF Pl Loc => x + "lisach";
+      SF Pl Voc => x + "Lisowie"
+    };
+
+    oper mkNTable0550: Str -> SubstForm => Str; --%
+    oper mkNTable0550 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "lisa";
+      SF Sg Gen => x + "lisy";
+      SF Sg Dat => x + "lisie";
+      SF Sg Acc => x + "Lisę";
+      SF Sg Instr => x + "Lisą";
+      SF Sg Loc => x + "lisie";
+      SF Sg Voc => x + "Liso";
+      SF Pl Nom => x + "lisy";
+      SF Pl Gen => x + "lis";
+      SF Pl Dat => x + "lisom";
+      SF Pl Acc => x + "lisy";
+      SF Pl Instr => x + "lisami";
+      SF Pl Loc => x + "lisach";
+      SF Pl Voc => x + "lisy"
+    };
+
+    oper mkNTable0552: Str -> SubstForm => Str; --%
+    oper mkNTable0552 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "lorenc";
+      SF Sg Gen => x + "lorenca";
+      SF Sg Dat => x + "lorencowi";
+      SF Sg Acc => x + "lorenca";
+      SF Sg Instr => x + "lorencem";
+      SF Sg Loc => x + "lorencu";
+      SF Sg Voc => x + "lorencu";
+      SF Pl Nom => x + "Lorencowie";
+      SF Pl Gen => x + "lorenców";
+      SF Pl Dat => x + "lorencom";
+      SF Pl Acc => x + "lorenców";
+      SF Pl Instr => x + "lorencami";
+      SF Pl Loc => x + "lorencach";
+      SF Pl Voc => x + "Lorencowie"
+    };
+
+    oper mkNTable0553: Str -> SubstForm => Str; --%
+    oper mkNTable0553 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "ludka";
+      SF Sg Gen => x + "ludki";
+      SF Sg Dat => x + "Ludce";
+      SF Sg Acc => x + "Ludkę";
+      SF Sg Instr => x + "Ludką";
+      SF Sg Loc => x + "Ludce";
+      SF Sg Voc => x + "Ludko";
+      SF Pl Nom => x + "ludki";
+      SF Pl Gen => x + "ludek";
+      SF Pl Dat => x + "ludkom";
+      SF Pl Acc => x + "ludki";
+      SF Pl Instr => x + "ludkami";
+      SF Pl Loc => x + "ludkach";
+      SF Pl Voc => x + "ludki"
+    };
+
+    oper mkNTable0554: Str -> SubstForm => Str; --%
+    oper mkNTable0554 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "ludwik";
+      SF Sg Gen => x + "ludwika";
+      SF Sg Dat => x + "ludwikowi";
+      SF Sg Acc => x + "ludwika";
+      SF Sg Instr => x + "ludwikiem";
+      SF Sg Loc => x + "ludwiku";
+      SF Sg Voc => x + "ludwiku";
+      SF Pl Nom => x + "Ludwikowie";
+      SF Pl Gen => x + "ludwików";
+      SF Pl Dat => x + "ludwikom";
+      SF Pl Acc => x + "ludwików";
+      SF Pl Instr => x + "ludwikami";
+      SF Pl Loc => x + "ludwikach";
+      SF Pl Voc => x + "Ludwikowie"
+    };
+
+    oper mkNTable0555: Str -> SubstForm => Str; --%
+    oper mkNTable0555 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "ludwika";
+      SF Sg Gen => x + "ludwiki";
+      SF Sg Dat => x + "Ludwice";
+      SF Sg Acc => x + "Ludwikę";
+      SF Sg Instr => x + "Ludwiką";
+      SF Sg Loc => x + "Ludwice";
+      SF Sg Voc => x + "Ludwiko";
+      SF Pl Nom => x + "ludwiki";
+      SF Pl Gen => x + "ludwik";
+      SF Pl Dat => x + "ludwikom";
+      SF Pl Acc => x + "ludwiki";
+      SF Pl Instr => x + "ludwikami";
+      SF Pl Loc => x + "ludwikach";
+      SF Pl Voc => x + "ludwiki"
+    };
+
+    oper mkNTable0557: Str -> SubstForm => Str; --%
+    oper mkNTable0557 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "lynch";
+      SF Sg Gen => x + "Lyncha";
+      SF Sg Dat => x + "lynchowi";
+      SF Sg Acc => x + "Lyncha";
+      SF Sg Instr => x + "lynchem";
+      SF Sg Loc => x + "lynchu";
+      SF Sg Voc => x + "lynchu";
+      SF Pl Nom => x + "Lynchowie";
+      SF Pl Gen => x + "lynchów";
+      SF Pl Dat => x + "lynchom";
+      SF Pl Acc => x + "lynchów";
+      SF Pl Instr => x + "lynchami";
+      SF Pl Loc => x + "lynchach";
+      SF Pl Voc => x + "Lynchowie"
+    };
+
+    oper mkNTable0558: Str -> SubstForm => Str; --%
+    oper mkNTable0558 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "-u";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "-u";
+      SF Sg Voc => x + "-u";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0560: Str -> SubstForm => Str; --%
+    oper mkNTable0560 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "maciek";
+      SF Sg Gen => x + "maćka";
+      SF Sg Dat => x + "maćkowi";
+      SF Sg Acc => x + "maćka";
+      SF Sg Instr => x + "maćkiem";
+      SF Sg Loc => x + "maćku";
+      SF Sg Voc => x + "maćku";
+      SF Pl Nom => x + "Maćkowie";
+      SF Pl Gen => x + "maćków";
+      SF Pl Dat => x + "maćkom";
+      SF Pl Acc => x + "maćków";
+      SF Pl Instr => x + "maćkami";
+      SF Pl Loc => x + "maćkach";
+      SF Pl Voc => x + "Maćkowie"
+    };
+
+    oper mkNTable0561: Str -> SubstForm => Str; --%
+    oper mkNTable0561 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "maczek";
+      SF Sg Gen => x + "maczka";
+      SF Sg Dat => x + "maczkowi";
+      SF Sg Acc => x + "maczka";
+      SF Sg Instr => x + "maczkiem";
+      SF Sg Loc => x + "maczku";
+      SF Sg Voc => x + "maczku";
+      SF Pl Nom => x + "Maczkowie";
+      SF Pl Gen => x + "maczków";
+      SF Pl Dat => x + "maczkom";
+      SF Pl Acc => x + "maczków";
+      SF Pl Instr => x + "maczkami";
+      SF Pl Loc => x + "maczkach";
+      SF Pl Voc => x + "Maczkowie"
+    };
+
+    oper mkNTable0562: Str -> SubstForm => Str; --%
+    oper mkNTable0562 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Madzia";
+      SF Sg Gen => x + "Madzi";
+      SF Sg Dat => x + "Madzi";
+      SF Sg Acc => x + "Madzię";
+      SF Sg Instr => x + "Madzią";
+      SF Sg Loc => x + "Madzi";
+      SF Sg Voc => x + "Madziu";
+      SF Pl Nom => x + "madzie";
+      SF Pl Gen => x + "Madź";
+      SF Pl Dat => x + "Madziom";
+      SF Pl Acc => x + "madzie";
+      SF Pl Instr => x + "Madziami";
+      SF Pl Loc => x + "Madziach";
+      SF Pl Voc => x + "madzie"
+    };
+
+    oper mkNTable0563: Str -> SubstForm => Str; --%
+    oper mkNTable0563 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "magiera";
+      SF Sg Gen => x + "magiery";
+      SF Sg Dat => x + "magierze";
+      SF Sg Acc => x + "magierę";
+      SF Sg Instr => x + "magierą";
+      SF Sg Loc => x + "magierze";
+      SF Sg Voc => x + "magiero";
+      SF Pl Nom => x + "Magierowie";
+      SF Pl Gen => x + "Magierów";
+      SF Pl Dat => x + "magierom";
+      SF Pl Acc => x + "Magierów";
+      SF Pl Instr => x + "magierami";
+      SF Pl Loc => x + "magierach";
+      SF Pl Voc => x + "Magierowie"
+    };
+
+    oper mkNTable0564: Str -> SubstForm => Str; --%
+    oper mkNTable0564 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "maj";
+      SF Sg Gen => x + "maja";
+      SF Sg Dat => x + "majowi";
+      SF Sg Acc => x + "maja";
+      SF Sg Instr => x + "majem";
+      SF Sg Loc => x + "maju";
+      SF Sg Voc => x + "maju";
+      SF Pl Nom => x + "Majowie";
+      SF Pl Gen => x + "majów";
+      SF Pl Dat => x + "majom";
+      SF Pl Acc => x + "majów";
+      SF Pl Instr => x + "majami";
+      SF Pl Loc => x + "majach";
+      SF Pl Voc => x + "Majowie"
+    };
+
+    oper mkNTable0565: Str -> SubstForm => Str; --%
+    oper mkNTable0565 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "maja";
+      SF Sg Gen => x + "mai";
+      SF Sg Dat => x + "mai";
+      SF Sg Acc => x + "maję";
+      SF Sg Instr => x + "mają";
+      SF Sg Loc => x + "mai";
+      SF Sg Voc => x + "majo";
+      SF Pl Nom => x + "Majowie";
+      SF Pl Gen => x + "majów";
+      SF Pl Dat => x + "majom";
+      SF Pl Acc => x + "majów";
+      SF Pl Instr => x + "majami";
+      SF Pl Loc => x + "majach";
+      SF Pl Voc => x + "Majowie"
+    };
+
+    oper mkNTable0566: Str -> SubstForm => Str; --%
+    oper mkNTable0566 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "maks";
+      SF Sg Gen => x + "maksa";
+      SF Sg Dat => x + "maksowi";
+      SF Sg Acc => x + "maksa";
+      SF Sg Instr => x + "maksem";
+      SF Sg Loc => x + "maksie";
+      SF Sg Voc => x + "maksie";
+      SF Pl Nom => x + "Maksowie";
+      SF Pl Gen => x + "maksów";
+      SF Pl Dat => x + "maksom";
+      SF Pl Acc => x + "maksów";
+      SF Pl Instr => x + "maksami";
+      SF Pl Loc => x + "maksach";
+      SF Pl Voc => x + "Maksowie"
+    };
+
+    oper mkNTable0567: Str -> SubstForm => Str; --%
+    oper mkNTable0567 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "maksym";
+      SF Sg Gen => x + "maksyma";
+      SF Sg Dat => x + "Maksymowi";
+      SF Sg Acc => x + "maksyma";
+      SF Sg Instr => x + "Maksymem";
+      SF Sg Loc => x + "maksymie";
+      SF Sg Voc => x + "maksymie";
+      SF Pl Nom => x + "Maksymowie";
+      SF Pl Gen => x + "Maksymów";
+      SF Pl Dat => x + "maksymom";
+      SF Pl Acc => x + "Maksymów";
+      SF Pl Instr => x + "maksymami";
+      SF Pl Loc => x + "maksymach";
+      SF Pl Voc => x + "Maksymowie"
+    };
+
+    oper mkNTable0568: Str -> SubstForm => Str; --%
+    oper mkNTable0568 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0570: Str -> SubstForm => Str; --%
+    oper mkNTable0570 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "malec";
+      SF Sg Gen => x + "malca";
+      SF Sg Dat => x + "malcowi";
+      SF Sg Acc => x + "malca";
+      SF Sg Instr => x + "malcem";
+      SF Sg Loc => x + "malcu";
+      SF Sg Voc => x + "malcu";
+      SF Pl Nom => x + "Malcowie";
+      SF Pl Gen => x + "malców";
+      SF Pl Dat => x + "malcom";
+      SF Pl Acc => x + "malców";
+      SF Pl Instr => x + "malcami";
+      SF Pl Loc => x + "malcach";
+      SF Pl Voc => x + "Malcowie"
+    };
+
+    oper mkNTable0571: Str -> SubstForm => Str; --%
+    oper mkNTable0571 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "mania";
+      SF Sg Gen => x + "mani";
+      SF Sg Dat => x + "mani";
+      SF Sg Acc => x + "manię";
+      SF Sg Instr => x + "manią";
+      SF Sg Loc => x + "mani";
+      SF Sg Voc => x + "Maniu";
+      SF Pl Nom => x + "manie";
+      SF Pl Gen => x + "Mań";
+      SF Pl Dat => x + "maniom";
+      SF Pl Acc => x + "manie";
+      SF Pl Instr => x + "maniami";
+      SF Pl Loc => x + "maniach";
+      SF Pl Voc => x + "manie"
+    };
+
+    oper mkNTable0572: Str -> SubstForm => Str; --%
+    oper mkNTable0572 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "mann";
+      SF Sg Gen => x + "manna";
+      SF Sg Dat => x + "Mannowi";
+      SF Sg Acc => x + "manna";
+      SF Sg Instr => x + "Mannem";
+      SF Sg Loc => x + "mannie";
+      SF Sg Voc => x + "mannie";
+      SF Pl Nom => x + "Mannowie";
+      SF Pl Gen => x + "Mannów";
+      SF Pl Dat => x + "mannom";
+      SF Pl Acc => x + "Mannów";
+      SF Pl Instr => x + "mannami";
+      SF Pl Loc => x + "mannach";
+      SF Pl Voc => x + "Mannowie"
+    };
+
+    oper mkNTable0573: Str -> SubstForm => Str; --%
+    oper mkNTable0573 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0574: Str -> SubstForm => Str; --%
+    oper mkNTable0574 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "marcelin";
+      SF Sg Gen => x + "marcelina";
+      SF Sg Dat => x + "Marcelinowi";
+      SF Sg Acc => x + "marcelina";
+      SF Sg Instr => x + "Marcelinem";
+      SF Sg Loc => x + "marcelinie";
+      SF Sg Voc => x + "marcelinie";
+      SF Pl Nom => x + "Marcelinowie";
+      SF Pl Gen => x + "Marcelinów";
+      SF Pl Dat => x + "marcelinom";
+      SF Pl Acc => x + "Marcelinów";
+      SF Pl Instr => x + "marcelinami";
+      SF Pl Loc => x + "marcelinach";
+      SF Pl Voc => x + "Marcelinowie"
+    };
+
+    oper mkNTable0575: Str -> SubstForm => Str; --%
+    oper mkNTable0575 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "marcelin";
+      SF Sg Gen => x + "marcelina";
+      SF Sg Dat => x + "Marcelinowi";
+      SF Sg Acc => x + "marcelin";
+      SF Sg Instr => x + "Marcelinem";
+      SF Sg Loc => x + "marcelinie";
+      SF Sg Voc => x + "marcelinie";
+      SF Pl Nom => x + "marceliny";
+      SF Pl Gen => x + "Marcelinów";
+      SF Pl Dat => x + "marcelinom";
+      SF Pl Acc => x + "marceliny";
+      SF Pl Instr => x + "marcelinami";
+      SF Pl Loc => x + "marcelinach";
+      SF Pl Voc => x + "marceliny"
+    };
+
+    oper mkNTable0576: Str -> SubstForm => Str; --%
+    oper mkNTable0576 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "marcinek";
+      SF Sg Gen => x + "marcinka";
+      SF Sg Dat => x + "marcinkowi";
+      SF Sg Acc => x + "marcinka";
+      SF Sg Instr => x + "marcinkiem";
+      SF Sg Loc => x + "marcinku";
+      SF Sg Voc => x + "marcinku";
+      SF Pl Nom => x + "Marcinkowie";
+      SF Pl Gen => x + "marcinków";
+      SF Pl Dat => x + "marcinkom";
+      SF Pl Acc => x + "marcinków";
+      SF Pl Instr => x + "marcinkami";
+      SF Pl Loc => x + "marcinkach";
+      SF Pl Voc => x + "Marcinkowie"
+    };
+
+    oper mkNTable0577: Str -> SubstForm => Str; --%
+    oper mkNTable0577 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Marco";
+      SF Sg Gen => x + "marca";
+      SF Sg Dat => x + "marcowi";
+      SF Sg Acc => x + "marca";
+      SF Sg Instr => x + "markiem";
+      SF Sg Loc => x + "marcu";
+      SF Sg Voc => x + "Marco";
+      SF Pl Nom => x + "Marcowie";
+      SF Pl Gen => x + "marców";
+      SF Pl Dat => x + "marcom";
+      SF Pl Acc => x + "marców";
+      SF Pl Instr => x + "marcami";
+      SF Pl Loc => x + "marcach";
+      SF Pl Voc => x + "Marcowie"
+    };
+
+    oper mkNTable0578: Str -> SubstForm => Str; --%
+    oper mkNTable0578 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "marczak";
+      SF Sg Gen => x + "marczaka";
+      SF Sg Dat => x + "marczakowi";
+      SF Sg Acc => x + "marczaka";
+      SF Sg Instr => x + "marczakiem";
+      SF Sg Loc => x + "marczaku";
+      SF Sg Voc => x + "marczaku";
+      SF Pl Nom => x + "Marczakowie";
+      SF Pl Gen => x + "marczaków";
+      SF Pl Dat => x + "marczakom";
+      SF Pl Acc => x + "marczaków";
+      SF Pl Instr => x + "marczakami";
+      SF Pl Loc => x + "marczakach";
+      SF Pl Voc => x + "Marczakowie"
+    };
+
+    oper mkNTable0579: Str -> SubstForm => Str; --%
+    oper mkNTable0579 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "marek";
+      SF Sg Gen => x + "marka";
+      SF Sg Dat => x + "markowi";
+      SF Sg Acc => x + "marka";
+      SF Sg Instr => x + "markiem";
+      SF Sg Loc => x + "marku";
+      SF Sg Voc => x + "marku";
+      SF Pl Nom => x + "Markowie";
+      SF Pl Gen => x + "marków";
+      SF Pl Dat => x + "markom";
+      SF Pl Acc => x + "marków";
+      SF Pl Instr => x + "markami";
+      SF Pl Loc => x + "markach";
+      SF Pl Voc => x + "Markowie"
+    };
+
+    oper mkNTable0580: Str -> SubstForm => Str; --%
+    oper mkNTable0580 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "marian";
+      SF Sg Gen => x + "Mariana";
+      SF Sg Dat => x + "Marianowi";
+      SF Sg Acc => x + "Mariana";
+      SF Sg Instr => x + "Marianem";
+      SF Sg Loc => x + "marianie";
+      SF Sg Voc => x + "marianie";
+      SF Pl Nom => x + "Marianowie";
+      SF Pl Gen => x + "marianów";
+      SF Pl Dat => x + "marianom";
+      SF Pl Acc => x + "marianów";
+      SF Pl Instr => x + "marianami";
+      SF Pl Loc => x + "marianach";
+      SF Pl Voc => x + "Marianowie"
+    };
+
+    oper mkNTable0581: Str -> SubstForm => Str; --%
+    oper mkNTable0581 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Marr";
+      SF Sg Gen => x + "Marra";
+      SF Sg Dat => x + "Marrowi";
+      SF Sg Acc => x + "Marra";
+      SF Sg Instr => x + "Marrem";
+      SF Sg Loc => x + "marze";
+      SF Sg Voc => x + "marze";
+      SF Pl Nom => x + "Marrowie";
+      SF Pl Gen => x + "Marrów";
+      SF Pl Dat => x + "Marrom";
+      SF Pl Acc => x + "Marrów";
+      SF Pl Instr => x + "Marrami";
+      SF Pl Loc => x + "Marrach";
+      SF Pl Voc => x + "Marrowie"
+    };
+
+    oper mkNTable0583: Str -> SubstForm => Str; --%
+    oper mkNTable0583 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Marta";
+      SF Sg Gen => x + "Marty";
+      SF Sg Dat => x + "marcie";
+      SF Sg Acc => x + "Martę";
+      SF Sg Instr => x + "Martą";
+      SF Sg Loc => x + "marcie";
+      SF Sg Voc => x + "Marto";
+      SF Pl Nom => x + "Marty";
+      SF Pl Gen => x + "Mart";
+      SF Pl Dat => x + "Martom";
+      SF Pl Acc => x + "Marty";
+      SF Pl Instr => x + "Martami";
+      SF Pl Loc => x + "Martach";
+      SF Pl Voc => x + "Marty"
+    };
+
+    oper mkNTable0584: Str -> SubstForm => Str; --%
+    oper mkNTable0584 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "martin";
+      SF Sg Gen => x + "martina";
+      SF Sg Dat => x + "martinowi";
+      SF Sg Acc => x + "martina";
+      SF Sg Instr => x + "martinem";
+      SF Sg Loc => x + "martinie";
+      SF Sg Voc => x + "martinie";
+      SF Pl Nom => x + "Martinowie";
+      SF Pl Gen => x + "martinów";
+      SF Pl Dat => x + "martinom";
+      SF Pl Acc => x + "martinów";
+      SF Pl Instr => x + "martinami";
+      SF Pl Loc => x + "martinach";
+      SF Pl Voc => x + "Martinowie"
+    };
+
+    oper mkNTable0585: Str -> SubstForm => Str; --%
+    oper mkNTable0585 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "marzec";
+      SF Sg Gen => x + "marca";
+      SF Sg Dat => x + "marcowi";
+      SF Sg Acc => x + "marca";
+      SF Sg Instr => x + "marcem";
+      SF Sg Loc => x + "marcu";
+      SF Sg Voc => x + "marcu";
+      SF Pl Nom => x + "Marcowie";
+      SF Pl Gen => x + "marców";
+      SF Pl Dat => x + "marcom";
+      SF Pl Acc => x + "marców";
+      SF Pl Instr => x + "marcami";
+      SF Pl Loc => x + "marcach";
+      SF Pl Voc => x + "Marcowie"
+    };
+
+    oper mkNTable0586: Str -> SubstForm => Str; --%
+    oper mkNTable0586 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Marzena";
+      SF Sg Gen => x + "Marzeny";
+      SF Sg Dat => x + "marzenie";
+      SF Sg Acc => x + "Marzenę";
+      SF Sg Instr => x + "Marzeną";
+      SF Sg Loc => x + "marzenie";
+      SF Sg Voc => x + "Marzeno";
+      SF Pl Nom => x + "Marzeny";
+      SF Pl Gen => x + "Marzen";
+      SF Pl Dat => x + "Marzenom";
+      SF Pl Acc => x + "Marzeny";
+      SF Pl Instr => x + "Marzenami";
+      SF Pl Loc => x + "Marzenach";
+      SF Pl Voc => x + "Marzeny"
+    };
+
+    oper mkNTable0587: Str -> SubstForm => Str; --%
+    oper mkNTable0587 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Matuła";
+      SF Sg Gen => x + "Matuły";
+      SF Sg Dat => x + "matule";
+      SF Sg Acc => x + "Matułę";
+      SF Sg Instr => x + "Matułą";
+      SF Sg Loc => x + "matule";
+      SF Sg Voc => x + "Matuło";
+      SF Pl Nom => x + "Matułowie";
+      SF Pl Gen => x + "Matułów";
+      SF Pl Dat => x + "Matułom";
+      SF Pl Acc => x + "Matułów";
+      SF Pl Instr => x + "Matułami";
+      SF Pl Loc => x + "Matułach";
+      SF Pl Voc => x + "Matułowie"
+    };
+
+    oper mkNTable0588: Str -> SubstForm => Str; --%
+    oper mkNTable0588 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Max";
+      SF Sg Gen => x + "maksa";
+      SF Sg Dat => x + "maksowi";
+      SF Sg Acc => x + "maksa";
+      SF Sg Instr => x + "maksem";
+      SF Sg Loc => x + "maksie";
+      SF Sg Voc => x + "maksie";
+      SF Pl Nom => x + "Maksowie";
+      SF Pl Gen => x + "maksów";
+      SF Pl Dat => x + "maksom";
+      SF Pl Acc => x + "maksów";
+      SF Pl Instr => x + "maksami";
+      SF Pl Loc => x + "maksach";
+      SF Pl Voc => x + "Maksowie"
+    };
+
+    oper mkNTable0589: Str -> SubstForm => Str; --%
+    oper mkNTable0589 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "May";
+      SF Sg Gen => x + "maya";
+      SF Sg Dat => x + "Mayowi";
+      SF Sg Acc => x + "maya";
+      SF Sg Instr => x + "Mayem";
+      SF Sg Loc => x + "Mayu";
+      SF Sg Voc => x + "Mayu";
+      SF Pl Nom => x + "maye";
+      SF Pl Gen => x + "Mayów";
+      SF Pl Dat => x + "mayom";
+      SF Pl Acc => x + "Mayów";
+      SF Pl Instr => x + "mayami";
+      SF Pl Loc => x + "mayach";
+      SF Pl Voc => x + "maye"
+    };
+
+    oper mkNTable0590: Str -> SubstForm => Str; --%
+    oper mkNTable0590 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "mazur";
+      SF Sg Gen => x + "mazura";
+      SF Sg Dat => x + "mazurowi";
+      SF Sg Acc => x + "mazura";
+      SF Sg Instr => x + "mazurem";
+      SF Sg Loc => x + "mazurze";
+      SF Sg Voc => x + "mazurze";
+      SF Pl Nom => x + "Mazurzy";
+      SF Pl Gen => x + "mazurów";
+      SF Pl Dat => x + "mazurom";
+      SF Pl Acc => x + "mazurów";
+      SF Pl Instr => x + "mazurami";
+      SF Pl Loc => x + "mazurach";
+      SF Pl Voc => x + "Mazurzy"
+    };
+
+    oper mkNTable0591: Str -> SubstForm => Str; --%
+    oper mkNTable0591 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "mazurek";
+      SF Sg Gen => x + "mazurka";
+      SF Sg Dat => x + "mazurkowi";
+      SF Sg Acc => x + "mazurka";
+      SF Sg Instr => x + "mazurkiem";
+      SF Sg Loc => x + "mazurku";
+      SF Sg Voc => x + "mazurku";
+      SF Pl Nom => x + "Mazurkowie";
+      SF Pl Gen => x + "mazurków";
+      SF Pl Dat => x + "mazurkom";
+      SF Pl Acc => x + "mazurków";
+      SF Pl Instr => x + "mazurkami";
+      SF Pl Loc => x + "mazurkach";
+      SF Pl Voc => x + "Mazurkowie"
+    };
+
+    oper mkNTable0592: Str -> SubstForm => Str; --%
+    oper mkNTable0592 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "mech";
+      SF Sg Gen => x + "Mecha";
+      SF Sg Dat => x + "Mechowi";
+      SF Sg Acc => x + "Mecha";
+      SF Sg Instr => x + "Mechem";
+      SF Sg Loc => x + "Mechu";
+      SF Sg Voc => x + "Mechu";
+      SF Pl Nom => x + "Mechowie";
+      SF Pl Gen => x + "Mechów";
+      SF Pl Dat => x + "Mechom";
+      SF Pl Acc => x + "Mechów";
+      SF Pl Instr => x + "Mechami";
+      SF Pl Loc => x + "Mechach";
+      SF Pl Voc => x + "Mechowie"
+    };
+
+    oper mkNTable0593: Str -> SubstForm => Str; --%
+    oper mkNTable0593 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "medin";
+      SF Sg Gen => x + "medina";
+      SF Sg Dat => x + "Medinowi";
+      SF Sg Acc => x + "medina";
+      SF Sg Instr => x + "Medinem";
+      SF Sg Loc => x + "medinie";
+      SF Sg Voc => x + "medinie";
+      SF Pl Nom => x + "Medinowie";
+      SF Pl Gen => x + "Medinów";
+      SF Pl Dat => x + "medinom";
+      SF Pl Acc => x + "Medinów";
+      SF Pl Instr => x + "medinami";
+      SF Pl Loc => x + "medinach";
+      SF Pl Voc => x + "Medinowie"
+    };
+
+    oper mkNTable0594: Str -> SubstForm => Str; --%
+    oper mkNTable0594 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "medyka";
+      SF Sg Gen => x + "medyki";
+      SF Sg Dat => x + "Medyce";
+      SF Sg Acc => x + "Medykę";
+      SF Sg Instr => x + "Medyką";
+      SF Sg Loc => x + "Medyce";
+      SF Sg Voc => x + "Medyko";
+      SF Pl Nom => x + "medyki";
+      SF Pl Gen => x + "medyk";
+      SF Pl Dat => x + "medykom";
+      SF Pl Acc => x + "medyki";
+      SF Pl Instr => x + "medykami";
+      SF Pl Loc => x + "medykach";
+      SF Pl Voc => x + "medyki"
+    };
+
+    oper mkNTable0595: Str -> SubstForm => Str; --%
+    oper mkNTable0595 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "mela";
+      SF Sg Gen => x + "meli";
+      SF Sg Dat => x + "meli";
+      SF Sg Acc => x + "Melę";
+      SF Sg Instr => x + "Melą";
+      SF Sg Loc => x + "meli";
+      SF Sg Voc => x + "melu";
+      SF Pl Nom => x + "mele";
+      SF Pl Gen => x + "mel";
+      SF Pl Dat => x + "melom";
+      SF Pl Acc => x + "mele";
+      SF Pl Instr => x + "melami";
+      SF Pl Loc => x + "melach";
+      SF Pl Voc => x + "mele"
+    };
+
+    oper mkNTable0596: Str -> SubstForm => Str; --%
+    oper mkNTable0596 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "melchior";
+      SF Sg Gen => x + "Melchiora";
+      SF Sg Dat => x + "melchiorowi";
+      SF Sg Acc => x + "Melchiora";
+      SF Sg Instr => x + "melchiorem";
+      SF Sg Loc => x + "melchiorze";
+      SF Sg Voc => x + "melchiorze";
+      SF Pl Nom => x + "Melchiorowie";
+      SF Pl Gen => x + "melchiorów";
+      SF Pl Dat => x + "melchiorom";
+      SF Pl Acc => x + "melchiorów";
+      SF Pl Instr => x + "melchiorami";
+      SF Pl Loc => x + "melchiorach";
+      SF Pl Voc => x + "Melchiorowie"
+    };
+
+    oper mkNTable0597: Str -> SubstForm => Str; --%
+    oper mkNTable0597 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "metody";
+      SF Sg Gen => x + "Metodego";
+      SF Sg Dat => x + "Metodemu";
+      SF Sg Acc => x + "Metodego";
+      SF Sg Instr => x + "Metodym";
+      SF Sg Loc => x + "Metodym";
+      SF Sg Voc => x + "metody";
+      SF Pl Nom => x + "Metodowie";
+      SF Pl Gen => x + "Metodych";
+      SF Pl Dat => x + "Metodym";
+      SF Pl Acc => x + "Metodych";
+      SF Pl Instr => x + "Metodymi";
+      SF Pl Loc => x + "Metodych";
+      SF Pl Voc => x + "Metodowie"
+    };
+
+    oper mkNTable0598: Str -> SubstForm => Str; --%
+    oper mkNTable0598 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "metys";
+      SF Sg Gen => x + "metysa";
+      SF Sg Dat => x + "metysowi";
+      SF Sg Acc => x + "metysa";
+      SF Sg Instr => x + "metysem";
+      SF Sg Loc => x + "metysie";
+      SF Sg Voc => x + "metysie";
+      SF Pl Nom => x + "Metysi";
+      SF Pl Gen => x + "metysów";
+      SF Pl Dat => x + "metysom";
+      SF Pl Acc => x + "metysów";
+      SF Pl Instr => x + "metysami";
+      SF Pl Loc => x + "metysach";
+      SF Pl Voc => x + "Metysi"
+    };
+
+    oper mkNTable0599: Str -> SubstForm => Str; --%
+    oper mkNTable0599 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "miarka";
+      SF Sg Gen => x + "miarki";
+      SF Sg Dat => x + "miarce";
+      SF Sg Acc => x + "miarkę";
+      SF Sg Instr => x + "miarką";
+      SF Sg Loc => x + "miarce";
+      SF Sg Voc => x + "miarko";
+      SF Pl Nom => x + "Miarkowie";
+      SF Pl Gen => x + "Miarków";
+      SF Pl Dat => x + "miarkom";
+      SF Pl Acc => x + "Miarków";
+      SF Pl Instr => x + "miarkami";
+      SF Pl Loc => x + "miarkach";
+      SF Pl Voc => x + "Miarkowie"
+    };
+
+    oper mkNTable0600: Str -> SubstForm => Str; --%
+    oper mkNTable0600 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cowie";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "cowi";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cowie"
+    };
+
+    oper mkNTable0601: Str -> SubstForm => Str; --%
+    oper mkNTable0601 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "michałek";
+      SF Sg Gen => x + "michałka";
+      SF Sg Dat => x + "michałkowi";
+      SF Sg Acc => x + "michałka";
+      SF Sg Instr => x + "michałkiem";
+      SF Sg Loc => x + "michałku";
+      SF Sg Voc => x + "michałku";
+      SF Pl Nom => x + "Michałkowie";
+      SF Pl Gen => x + "michałków";
+      SF Pl Dat => x + "michałkom";
+      SF Pl Acc => x + "michałków";
+      SF Pl Instr => x + "michałkami";
+      SF Pl Loc => x + "michałkach";
+      SF Pl Voc => x + "Michałkowie"
+    };
+
+    oper mkNTable0605: Str -> SubstForm => Str; --%
+    oper mkNTable0605 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0606: Str -> SubstForm => Str; --%
+    oper mkNTable0606 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "Miecznikow";
+      SF Sg Gen => x + "miecznikowa";
+      SF Sg Dat => x + "Miecznikowowi";
+      SF Sg Acc => x + "miecznikowa";
+      SF Sg Instr => x + "Miecznikowem";
+      SF Sg Loc => x + "miecznikowie";
+      SF Sg Voc => x + "miecznikowie";
+      SF Pl Nom => x + "Miecznikowowie";
+      SF Pl Gen => x + "Miecznikowów";
+      SF Pl Dat => x + "Miecznikowom";
+      SF Pl Acc => x + "Miecznikowów";
+      SF Pl Instr => x + "Miecznikowami";
+      SF Pl Loc => x + "Miecznikowach";
+      SF Pl Voc => x + "Miecznikowowie"
+    };
+
+    oper mkNTable0607: Str -> SubstForm => Str; --%
+    oper mkNTable0607 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "mielcarz";
+      SF Sg Gen => x + "mielcarza";
+      SF Sg Dat => x + "mielcarzowi";
+      SF Sg Acc => x + "mielcarza";
+      SF Sg Instr => x + "mielcarzem";
+      SF Sg Loc => x + "mielcarzu";
+      SF Sg Voc => x + "mielcarzu";
+      SF Pl Nom => x + "Mielcarzowie";
+      SF Pl Gen => x + "mielcarzy";
+      SF Pl Dat => x + "mielcarzom";
+      SF Pl Acc => x + "mielcarzy";
+      SF Pl Instr => x + "mielcarzami";
+      SF Pl Loc => x + "mielcarzach";
+      SF Pl Voc => x + "Mielcarzowie"
+    };
+
+    oper mkNTable0608: Str -> SubstForm => Str; --%
+    oper mkNTable0608 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0609: Str -> SubstForm => Str; --%
+    oper mkNTable0609 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Mieszko";
+      SF Sg Gen => x + "mieszka";
+      SF Sg Dat => x + "mieszkowi";
+      SF Sg Acc => x + "mieszka";
+      SF Sg Instr => x + "mieszkiem";
+      SF Sg Loc => x + "mieszku";
+      SF Sg Voc => x + "mieszku";
+      SF Pl Nom => x + "Mieszkowie";
+      SF Pl Gen => x + "mieszków";
+      SF Pl Dat => x + "mieszkom";
+      SF Pl Acc => x + "mieszków";
+      SF Pl Instr => x + "mieszkami";
+      SF Pl Loc => x + "mieszkach";
+      SF Pl Voc => x + "Mieszkowie"
+    };
+
+    oper mkNTable0610: Str -> SubstForm => Str; --%
+    oper mkNTable0610 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "mikołajek";
+      SF Sg Gen => x + "mikołajka";
+      SF Sg Dat => x + "mikołajkowi";
+      SF Sg Acc => x + "mikołajka";
+      SF Sg Instr => x + "mikołajkiem";
+      SF Sg Loc => x + "mikołajku";
+      SF Sg Voc => x + "mikołajku";
+      SF Pl Nom => x + "Mikołajkowie";
+      SF Pl Gen => x + "mikołajków";
+      SF Pl Dat => x + "mikołajkom";
+      SF Pl Acc => x + "mikołajków";
+      SF Pl Instr => x + "mikołajkami";
+      SF Pl Loc => x + "mikołajkach";
+      SF Pl Voc => x + "Mikołajkowie"
+    };
+
+    oper mkNTable0611: Str -> SubstForm => Str; --%
+    oper mkNTable0611 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Milena";
+      SF Sg Gen => x + "mileny";
+      SF Sg Dat => x + "milenie";
+      SF Sg Acc => x + "Milenę";
+      SF Sg Instr => x + "Mileną";
+      SF Sg Loc => x + "milenie";
+      SF Sg Voc => x + "Mileno";
+      SF Pl Nom => x + "mileny";
+      SF Pl Gen => x + "milen";
+      SF Pl Dat => x + "milenom";
+      SF Pl Acc => x + "mileny";
+      SF Pl Instr => x + "milenami";
+      SF Pl Loc => x + "milenach";
+      SF Pl Voc => x + "mileny"
+    };
+
+    oper mkNTable0614: Str -> SubstForm => Str; --%
+    oper mkNTable0614 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "miodek";
+      SF Sg Gen => x + "Miodka";
+      SF Sg Dat => x + "miodkowi";
+      SF Sg Acc => x + "Miodka";
+      SF Sg Instr => x + "miodkiem";
+      SF Sg Loc => x + "miodku";
+      SF Sg Voc => x + "miodku";
+      SF Pl Nom => x + "Miodkowie";
+      SF Pl Gen => x + "miodków";
+      SF Pl Dat => x + "miodkom";
+      SF Pl Acc => x + "miodków";
+      SF Pl Instr => x + "miodkami";
+      SF Pl Loc => x + "miodkach";
+      SF Pl Voc => x + "Miodkowie"
+    };
+
+    oper mkNTable0615: Str -> SubstForm => Str; --%
+    oper mkNTable0615 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "misiura";
+      SF Sg Gen => x + "misiury";
+      SF Sg Dat => x + "misiurze";
+      SF Sg Acc => x + "misiurę";
+      SF Sg Instr => x + "misiurą";
+      SF Sg Loc => x + "misiurze";
+      SF Sg Voc => x + "misiuro";
+      SF Pl Nom => x + "Misiurowie";
+      SF Pl Gen => x + "Misiurów";
+      SF Pl Dat => x + "misiurom";
+      SF Pl Acc => x + "Misiurów";
+      SF Pl Instr => x + "misiurami";
+      SF Pl Loc => x + "misiurach";
+      SF Pl Voc => x + "Misiurowie"
+    };
+
+    oper mkNTable0616: Str -> SubstForm => Str; --%
+    oper mkNTable0616 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Miłowan";
+      SF Sg Gen => x + "Miłowana";
+      SF Sg Dat => x + "Miłowanowi";
+      SF Sg Acc => x + "Miłowana";
+      SF Sg Instr => x + "Miłowanem";
+      SF Sg Loc => x + "miłowanie";
+      SF Sg Voc => x + "miłowanie";
+      SF Pl Nom => x + "Miłowanowie";
+      SF Pl Gen => x + "Miłowanów";
+      SF Pl Dat => x + "Miłowanom";
+      SF Pl Acc => x + "Miłowanów";
+      SF Pl Instr => x + "Miłowanami";
+      SF Pl Loc => x + "Miłowanach";
+      SF Pl Voc => x + "Miłowanowie"
+    };
+
+    oper mkNTable0617: Str -> SubstForm => Str; --%
+    oper mkNTable0617 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0618: Str -> SubstForm => Str; --%
+    oper mkNTable0618 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ech";
+      SF Sg Gen => x + "cha";
+      SF Sg Dat => x + "chowi";
+      SF Sg Acc => x + "cha";
+      SF Sg Instr => x + "chem";
+      SF Sg Loc => x + "chu";
+      SF Sg Voc => x + "chu";
+      SF Pl Nom => x + "chowie";
+      SF Pl Gen => x + "chów";
+      SF Pl Dat => x + "chom";
+      SF Pl Acc => x + "chów";
+      SF Pl Instr => x + "chami";
+      SF Pl Loc => x + "chach";
+      SF Pl Voc => x + "chowie"
+    };
+
+    oper mkNTable0620: Str -> SubstForm => Str; --%
+    oper mkNTable0620 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "moczar";
+      SF Sg Gen => x + "Moczara";
+      SF Sg Dat => x + "moczarowi";
+      SF Sg Acc => x + "Moczara";
+      SF Sg Instr => x + "moczarem";
+      SF Sg Loc => x + "moczarze";
+      SF Sg Voc => x + "moczarze";
+      SF Pl Nom => x + "Moczarowie";
+      SF Pl Gen => x + "moczarów";
+      SF Pl Dat => x + "moczarom";
+      SF Pl Acc => x + "moczarów";
+      SF Pl Instr => x + "moczarami";
+      SF Pl Loc => x + "moczarach";
+      SF Pl Voc => x + "Moczarowie"
+    };
+
+    oper mkNTable0621: Str -> SubstForm => Str; --%
+    oper mkNTable0621 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "monet";
+      SF Sg Gen => x + "moneta";
+      SF Sg Dat => x + "Monetowi";
+      SF Sg Acc => x + "moneta";
+      SF Sg Instr => x + "Monetem";
+      SF Sg Loc => x + "monecie";
+      SF Sg Voc => x + "monecie";
+      SF Pl Nom => x + "Monetowie";
+      SF Pl Gen => x + "Monetów";
+      SF Pl Dat => x + "monetom";
+      SF Pl Acc => x + "Monetów";
+      SF Pl Instr => x + "monetami";
+      SF Pl Loc => x + "monetach";
+      SF Pl Voc => x + "Monetowie"
+    };
+
+    oper mkNTable0622: Str -> SubstForm => Str; --%
+    oper mkNTable0622 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Monia";
+      SF Sg Gen => x + "Moni";
+      SF Sg Dat => x + "Moni";
+      SF Sg Acc => x + "Monię";
+      SF Sg Instr => x + "Monią";
+      SF Sg Loc => x + "Moni";
+      SF Sg Voc => x + "Moniu";
+      SF Pl Nom => x + "monie";
+      SF Pl Gen => x + "Moń";
+      SF Pl Dat => x + "Moniom";
+      SF Pl Acc => x + "monie";
+      SF Pl Instr => x + "Moniami";
+      SF Pl Loc => x + "Moniach";
+      SF Pl Voc => x + "monie"
+    };
+
+    oper mkNTable0623: Str -> SubstForm => Str; --%
+    oper mkNTable0623 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "go";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "go";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0624: Str -> SubstForm => Str; --%
+    oper mkNTable0624 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "morris";
+      SF Sg Gen => x + "morrisa";
+      SF Sg Dat => x + "morrisowi";
+      SF Sg Acc => x + "morrisa";
+      SF Sg Instr => x + "morrisem";
+      SF Sg Loc => x + "morrisie";
+      SF Sg Voc => x + "morrisie";
+      SF Pl Nom => x + "Morrisowie";
+      SF Pl Gen => x + "morrisów";
+      SF Pl Dat => x + "morrisom";
+      SF Pl Acc => x + "morrisów";
+      SF Pl Instr => x + "morrisami";
+      SF Pl Loc => x + "morrisach";
+      SF Pl Voc => x + "Morrisowie"
+    };
+
+    oper mkNTable0625: Str -> SubstForm => Str; --%
+    oper mkNTable0625 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Moskała";
+      SF Sg Gen => x + "Moskały";
+      SF Sg Dat => x + "moskale";
+      SF Sg Acc => x + "Moskałę";
+      SF Sg Instr => x + "Moskałą";
+      SF Sg Loc => x + "moskale";
+      SF Sg Voc => x + "Moskało";
+      SF Pl Nom => x + "Moskałowie";
+      SF Pl Gen => x + "Moskałów";
+      SF Pl Dat => x + "Moskałom";
+      SF Pl Acc => x + "Moskałów";
+      SF Pl Instr => x + "Moskałami";
+      SF Pl Loc => x + "Moskałach";
+      SF Pl Voc => x + "Moskałowie"
+    };
+
+    oper mkNTable0627: Str -> SubstForm => Str; --%
+    oper mkNTable0627 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "mucha";
+      SF Sg Gen => x + "muchy";
+      SF Sg Dat => x + "musze";
+      SF Sg Acc => x + "muchę";
+      SF Sg Instr => x + "muchą";
+      SF Sg Loc => x + "musze";
+      SF Sg Voc => x + "mucho";
+      SF Pl Nom => x + "Muchowie";
+      SF Pl Gen => x + "Muchów";
+      SF Pl Dat => x + "muchom";
+      SF Pl Acc => x + "Muchów";
+      SF Pl Instr => x + "muchami";
+      SF Pl Loc => x + "muchach";
+      SF Pl Voc => x + "Muchowie"
+    };
+
+    oper mkNTable0628: Str -> SubstForm => Str; --%
+    oper mkNTable0628 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "mulat";
+      SF Sg Gen => x + "mulata";
+      SF Sg Dat => x + "Mulatowi";
+      SF Sg Acc => x + "mulata";
+      SF Sg Instr => x + "Mulatem";
+      SF Sg Loc => x + "Mulacie";
+      SF Sg Voc => x + "Mulacie";
+      SF Pl Nom => x + "Mulaci";
+      SF Pl Gen => x + "Mulatów";
+      SF Pl Dat => x + "Mulatom";
+      SF Pl Acc => x + "Mulatów";
+      SF Pl Instr => x + "Mulatami";
+      SF Pl Loc => x + "Mulatach";
+      SF Pl Voc => x + "Mulaci"
+    };
+
+    oper mkNTable0629: Str -> SubstForm => Str; --%
+    oper mkNTable0629 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ę";
+      SF Sg Gen => x + "ęcia";
+      SF Sg Dat => x + "ęciu";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ęciem";
+      SF Sg Loc => x + "ęciu";
+      SF Sg Voc => x + "ę";
+      SF Pl Nom => x + "ęta";
+      SF Pl Gen => x + "ąt";
+      SF Pl Dat => x + "ętom";
+      SF Pl Acc => x + "ęta";
+      SF Pl Instr => x + "ętami";
+      SF Pl Loc => x + "ętach";
+      SF Pl Voc => x + "ęta"
+    };
+
+    oper mkNTable0632: Str -> SubstForm => Str; --%
+    oper mkNTable0632 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "młot";
+      SF Sg Gen => x + "młota";
+      SF Sg Dat => x + "młotowi";
+      SF Sg Acc => x + "młota";
+      SF Sg Instr => x + "młotem";
+      SF Sg Loc => x + "młocie";
+      SF Sg Voc => x + "młocie";
+      SF Pl Nom => x + "Młotowie";
+      SF Pl Gen => x + "młotów";
+      SF Pl Dat => x + "młotom";
+      SF Pl Acc => x + "młotów";
+      SF Pl Instr => x + "młotami";
+      SF Pl Loc => x + "młotach";
+      SF Pl Voc => x + "Młotowie"
+    };
+
+    oper mkNTable0633: Str -> SubstForm => Str; --%
+    oper mkNTable0633 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "młynarczyk";
+      SF Sg Gen => x + "młynarczyka";
+      SF Sg Dat => x + "młynarczykowi";
+      SF Sg Acc => x + "młynarczyka";
+      SF Sg Instr => x + "młynarczykiem";
+      SF Sg Loc => x + "młynarczyku";
+      SF Sg Voc => x + "młynarczyku";
+      SF Pl Nom => x + "Młynarczykowie";
+      SF Pl Gen => x + "młynarczyków";
+      SF Pl Dat => x + "młynarczykom";
+      SF Pl Acc => x + "młynarczyków";
+      SF Pl Instr => x + "młynarczykami";
+      SF Pl Loc => x + "młynarczykach";
+      SF Pl Voc => x + "Młynarczykowie"
+    };
+
+    oper mkNTable0635: Str -> SubstForm => Str; --%
+    oper mkNTable0635 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "napoleon";
+      SF Sg Gen => x + "napoleona";
+      SF Sg Dat => x + "napoleonowi";
+      SF Sg Acc => x + "napoleona";
+      SF Sg Instr => x + "napoleonem";
+      SF Sg Loc => x + "napoleonie";
+      SF Sg Voc => x + "napoleonie";
+      SF Pl Nom => x + "Napoleonowie";
+      SF Pl Gen => x + "napoleonów";
+      SF Pl Dat => x + "napoleonom";
+      SF Pl Acc => x + "napoleonów";
+      SF Pl Instr => x + "napoleonami";
+      SF Pl Loc => x + "napoleonach";
+      SF Pl Voc => x + "Napoleonowie"
+    };
+
+    oper mkNTable0636: Str -> SubstForm => Str; --%
+    oper mkNTable0636 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "zi";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zi"
+    };
+
+    oper mkNTable0637: Str -> SubstForm => Str; --%
+    oper mkNTable0637 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "tt";
+      SF Sg Gen => x + "tta";
+      SF Sg Dat => x + "ttowi";
+      SF Sg Acc => x + "tta";
+      SF Sg Instr => x + "ttem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ttowie";
+      SF Pl Gen => x + "ttów";
+      SF Pl Dat => x + "ttom";
+      SF Pl Acc => x + "ttów";
+      SF Pl Instr => x + "ttami";
+      SF Pl Loc => x + "ttach";
+      SF Pl Voc => x + "ttowie"
+    };
+
+    oper mkNTable0638: Str -> SubstForm => Str; --%
+    oper mkNTable0638 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "narcyza";
+      SF Sg Gen => x + "narcyzy";
+      SF Sg Dat => x + "narcyzie";
+      SF Sg Acc => x + "Narcyzę";
+      SF Sg Instr => x + "Narcyzą";
+      SF Sg Loc => x + "narcyzie";
+      SF Sg Voc => x + "Narcyzo";
+      SF Pl Nom => x + "narcyzy";
+      SF Pl Gen => x + "narcyz";
+      SF Pl Dat => x + "narcyzom";
+      SF Pl Acc => x + "narcyzy";
+      SF Pl Instr => x + "narcyzami";
+      SF Pl Loc => x + "narcyzach";
+      SF Pl Voc => x + "narcyzy"
+    };
+
+    oper mkNTable0639: Str -> SubstForm => Str; --%
+    oper mkNTable0639 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "nawrot";
+      SF Sg Gen => x + "nawrota";
+      SF Sg Dat => x + "nawrotowi";
+      SF Sg Acc => x + "nawrota";
+      SF Sg Instr => x + "nawrotem";
+      SF Sg Loc => x + "nawrocie";
+      SF Sg Voc => x + "nawrocie";
+      SF Pl Nom => x + "Nawrotowie";
+      SF Pl Gen => x + "nawrotów";
+      SF Pl Dat => x + "nawrotom";
+      SF Pl Acc => x + "nawrotów";
+      SF Pl Instr => x + "nawrotami";
+      SF Pl Loc => x + "nawrotach";
+      SF Pl Voc => x + "Nawrotowie"
+    };
+
+    oper mkNTable0640: Str -> SubstForm => Str; --%
+    oper mkNTable0640 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "nawrót";
+      SF Sg Gen => x + "nawrota";
+      SF Sg Dat => x + "nawrotowi";
+      SF Sg Acc => x + "nawrota";
+      SF Sg Instr => x + "nawrotem";
+      SF Sg Loc => x + "nawrocie";
+      SF Sg Voc => x + "nawrocie";
+      SF Pl Nom => x + "Nawrotowie";
+      SF Pl Gen => x + "nawrotów";
+      SF Pl Dat => x + "nawrotom";
+      SF Pl Acc => x + "nawrotów";
+      SF Pl Instr => x + "nawrotami";
+      SF Pl Loc => x + "nawrotach";
+      SF Pl Voc => x + "Nawrotowie"
+    };
+
+    oper mkNTable0642: Str -> SubstForm => Str; --%
+    oper mkNTable0642 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "nelson";
+      SF Sg Gen => x + "nelsona";
+      SF Sg Dat => x + "nelsonowi";
+      SF Sg Acc => x + "nelsona";
+      SF Sg Instr => x + "nelsonem";
+      SF Sg Loc => x + "nelsonie";
+      SF Sg Voc => x + "nelsonie";
+      SF Pl Nom => x + "Nelsonowie";
+      SF Pl Gen => x + "nelsonów";
+      SF Pl Dat => x + "nelsonom";
+      SF Pl Acc => x + "nelsonów";
+      SF Pl Instr => x + "nelsonami";
+      SF Pl Loc => x + "nelsonach";
+      SF Pl Voc => x + "Nelsonowie"
+    };
+
+    oper mkNTable0643: Str -> SubstForm => Str; --%
+    oper mkNTable0643 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "neptun";
+      SF Sg Gen => x + "Neptuna";
+      SF Sg Dat => x + "neptunowi";
+      SF Sg Acc => x + "Neptuna";
+      SF Sg Instr => x + "neptunem";
+      SF Sg Loc => x + "neptunie";
+      SF Sg Voc => x + "neptunie";
+      SF Pl Nom => x + "neptuny";
+      SF Pl Gen => x + "neptunów";
+      SF Pl Dat => x + "neptunom";
+      SF Pl Acc => x + "neptuny";
+      SF Pl Instr => x + "neptunami";
+      SF Pl Loc => x + "neptunach";
+      SF Pl Voc => x + "neptuny"
+    };
+
+    oper mkNTable0644: Str -> SubstForm => Str; --%
+    oper mkNTable0644 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "newton";
+      SF Sg Gen => x + "newtona";
+      SF Sg Dat => x + "newtonowi";
+      SF Sg Acc => x + "newtona";
+      SF Sg Instr => x + "newtonem";
+      SF Sg Loc => x + "newtonie";
+      SF Sg Voc => x + "newtonie";
+      SF Pl Nom => x + "Newtonowie";
+      SF Pl Gen => x + "newtonów";
+      SF Pl Dat => x + "newtonom";
+      SF Pl Acc => x + "newtonów";
+      SF Pl Instr => x + "newtonami";
+      SF Pl Loc => x + "newtonach";
+      SF Pl Voc => x + "Newtonowie"
+    };
+
+    oper mkNTable0646: Str -> SubstForm => Str; --%
+    oper mkNTable0646 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0648: Str -> SubstForm => Str; --%
+    oper mkNTable0648 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cze";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable0649: Str -> SubstForm => Str; --%
+    oper mkNTable0649 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "nobel";
+      SF Sg Gen => x + "nobla";
+      SF Sg Dat => x + "noblowi";
+      SF Sg Acc => x + "nobla";
+      SF Sg Instr => x + "noblem";
+      SF Sg Loc => x + "noblu";
+      SF Sg Voc => x + "noblu";
+      SF Pl Nom => x + "Noblowie";
+      SF Pl Gen => x + "Noblów";
+      SF Pl Dat => x + "noblom";
+      SF Pl Acc => x + "Noblów";
+      SF Pl Instr => x + "noblami";
+      SF Pl Loc => x + "noblach";
+      SF Pl Voc => x + "Noblowie"
+    };
+
+    oper mkNTable0650: Str -> SubstForm => Str; --%
+    oper mkNTable0650 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "norweg";
+      SF Sg Gen => x + "norwega";
+      SF Sg Dat => x + "norwegowi";
+      SF Sg Acc => x + "norwega";
+      SF Sg Instr => x + "norwegiem";
+      SF Sg Loc => x + "norwegu";
+      SF Sg Voc => x + "norwegu";
+      SF Pl Nom => x + "Norwegowie";
+      SF Pl Gen => x + "norwegów";
+      SF Pl Dat => x + "norwegom";
+      SF Pl Acc => x + "norwegów";
+      SF Pl Instr => x + "norwegami";
+      SF Pl Loc => x + "norwegach";
+      SF Pl Voc => x + "Norwegowie"
+    };
+
+    oper mkNTable0651: Str -> SubstForm => Str; --%
+    oper mkNTable0651 lexem = 
+      let x = Predef.tk 16 lexem in
+    table { 
+      SF Sg Nom => x + "nowofundlandczyk";
+      SF Sg Gen => x + "nowofundlandczyka";
+      SF Sg Dat => x + "nowofundlandczykowi";
+      SF Sg Acc => x + "nowofundlandczyka";
+      SF Sg Instr => x + "nowofundlandczykiem";
+      SF Sg Loc => x + "nowofundlandczyku";
+      SF Sg Voc => x + "nowofundlandczyku";
+      SF Pl Nom => x + "Nowofundlandczycy";
+      SF Pl Gen => x + "nowofundlandczyków";
+      SF Pl Dat => x + "nowofundlandczykom";
+      SF Pl Acc => x + "nowofundlandczyków";
+      SF Pl Instr => x + "nowofundlandczykami";
+      SF Pl Loc => x + "nowofundlandczykach";
+      SF Pl Voc => x + "Nowofundlandczycy"
+    };
+
+    oper mkNTable0653: Str -> SubstForm => Str; --%
+    oper mkNTable0653 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "oczko";
+      SF Sg Gen => x + "oczki";
+      SF Sg Dat => x + "Oczce";
+      SF Sg Acc => x + "Oczkę";
+      SF Sg Instr => x + "Oczką";
+      SF Sg Loc => x + "Oczce";
+      SF Sg Voc => x + "oczko";
+      SF Pl Nom => x + "Oczkowie";
+      SF Pl Gen => x + "Oczków";
+      SF Pl Dat => x + "oczkom";
+      SF Pl Acc => x + "Oczków";
+      SF Pl Instr => x + "oczkami";
+      SF Pl Loc => x + "oczkach";
+      SF Pl Voc => x + "Oczkowie"
+    };
+
+    oper mkNTable0654: Str -> SubstForm => Str; --%
+    oper mkNTable0654 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "odyniec";
+      SF Sg Gen => x + "odyńca";
+      SF Sg Dat => x + "odyńcowi";
+      SF Sg Acc => x + "odyńca";
+      SF Sg Instr => x + "odyńcem";
+      SF Sg Loc => x + "odyńcu";
+      SF Sg Voc => x + "odyńcu";
+      SF Pl Nom => x + "Odyńcowie";
+      SF Pl Gen => x + "odyńców";
+      SF Pl Dat => x + "odyńcom";
+      SF Pl Acc => x + "odyńców";
+      SF Pl Instr => x + "odyńcami";
+      SF Pl Loc => x + "odyńcach";
+      SF Pl Voc => x + "Odyńcowie"
+    };
+
+    oper mkNTable0656: Str -> SubstForm => Str; --%
+    oper mkNTable0656 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ohm";
+      SF Sg Gen => x + "ohma";
+      SF Sg Dat => x + "ohmowi";
+      SF Sg Acc => x + "ohma";
+      SF Sg Instr => x + "ohmem";
+      SF Sg Loc => x + "ohmie";
+      SF Sg Voc => x + "ohmie";
+      SF Pl Nom => x + "Ohmowie";
+      SF Pl Gen => x + "ohmów";
+      SF Pl Dat => x + "ohmom";
+      SF Pl Acc => x + "ohmów";
+      SF Pl Instr => x + "ohmami";
+      SF Pl Loc => x + "ohmach";
+      SF Pl Voc => x + "Ohmowie"
+    };
+
+    oper mkNTable0658: Str -> SubstForm => Str; --%
+    oper mkNTable0658 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Oktawia";
+      SF Sg Gen => x + "Oktawii";
+      SF Sg Dat => x + "Oktawii";
+      SF Sg Acc => x + "Oktawię";
+      SF Sg Instr => x + "Oktawią";
+      SF Sg Loc => x + "Oktawii";
+      SF Sg Voc => x + "Oktawio";
+      SF Pl Nom => x + "oktawie";
+      SF Pl Gen => x + "Oktawii";
+      SF Pl Dat => x + "Oktawiom";
+      SF Pl Acc => x + "oktawie";
+      SF Pl Instr => x + "Oktawiami";
+      SF Pl Loc => x + "Oktawiach";
+      SF Pl Voc => x + "oktawie"
+    };
+
+    oper mkNTable0659: Str -> SubstForm => Str; --%
+    oper mkNTable0659 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Olimpia";
+      SF Sg Gen => x + "Olimpii";
+      SF Sg Dat => x + "Olimpii";
+      SF Sg Acc => x + "Olimpię";
+      SF Sg Instr => x + "Olimpią";
+      SF Sg Loc => x + "Olimpii";
+      SF Sg Voc => x + "Olimpio";
+      SF Pl Nom => x + "olimpie";
+      SF Pl Gen => x + "Olimpii";
+      SF Pl Dat => x + "Olimpiom";
+      SF Pl Acc => x + "olimpie";
+      SF Pl Instr => x + "Olimpiami";
+      SF Pl Loc => x + "Olimpiach";
+      SF Pl Voc => x + "olimpie"
+    };
+
+    oper mkNTable0660: Str -> SubstForm => Str; --%
+    oper mkNTable0660 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Oliwia";
+      SF Sg Gen => x + "Oliwii";
+      SF Sg Dat => x + "Oliwii";
+      SF Sg Acc => x + "Oliwię";
+      SF Sg Instr => x + "Oliwią";
+      SF Sg Loc => x + "Oliwii";
+      SF Sg Voc => x + "Oliwio";
+      SF Pl Nom => x + "oliwie";
+      SF Pl Gen => x + "Oliwii";
+      SF Pl Dat => x + "Oliwiom";
+      SF Pl Acc => x + "oliwie";
+      SF Pl Instr => x + "Oliwiami";
+      SF Pl Loc => x + "Oliwiach";
+      SF Pl Voc => x + "oliwie"
+    };
+
+    oper mkNTable0664: Str -> SubstForm => Str; --%
+    oper mkNTable0664 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "orkan";
+      SF Sg Gen => x + "Orkana";
+      SF Sg Dat => x + "orkanowi";
+      SF Sg Acc => x + "Orkana";
+      SF Sg Instr => x + "orkanem";
+      SF Sg Loc => x + "orkanie";
+      SF Sg Voc => x + "orkanie";
+      SF Pl Nom => x + "Orkanowie";
+      SF Pl Gen => x + "orkanów";
+      SF Pl Dat => x + "orkanom";
+      SF Pl Acc => x + "orkanów";
+      SF Pl Instr => x + "orkanami";
+      SF Pl Loc => x + "orkanach";
+      SF Pl Voc => x + "Orkanowie"
+    };
+
+    oper mkNTable0665: Str -> SubstForm => Str; --%
+    oper mkNTable0665 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "orzeł";
+      SF Sg Gen => x + "orła";
+      SF Sg Dat => x + "orłowi";
+      SF Sg Acc => x + "orła";
+      SF Sg Instr => x + "orłem";
+      SF Sg Loc => x + "orle";
+      SF Sg Voc => x + "orle";
+      SF Pl Nom => x + "Orłowie";
+      SF Pl Gen => x + "orłów";
+      SF Pl Dat => x + "orłom";
+      SF Pl Acc => x + "orłów";
+      SF Pl Instr => x + "orłami";
+      SF Pl Loc => x + "orłach";
+      SF Pl Voc => x + "Orłowie"
+    };
+
+    oper mkNTable0667: Str -> SubstForm => Str; --%
+    oper mkNTable0667 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óg";
+      SF Sg Gen => x + "ogu";
+      SF Sg Dat => x + "ogowi";
+      SF Sg Acc => x + "óg";
+      SF Sg Instr => x + "ogiem";
+      SF Sg Loc => x + "ogu";
+      SF Sg Voc => x + "ogu";
+      SF Pl Nom => x + "ogi";
+      SF Pl Gen => x + "ogów";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogi";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogi"
+    };
+
+    oper mkNTable0668: Str -> SubstForm => Str; --%
+    oper mkNTable0668 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óg";
+      SF Sg Gen => x + "oga";
+      SF Sg Dat => x + "ogowi";
+      SF Sg Acc => x + "óg";
+      SF Sg Instr => x + "ogiem";
+      SF Sg Loc => x + "ogu";
+      SF Sg Voc => x + "ogu";
+      SF Pl Nom => x + "ogi";
+      SF Pl Gen => x + "ogów";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogi";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogi"
+    };
+
+    oper mkNTable0669: Str -> SubstForm => Str; --%
+    oper mkNTable0669 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Otręba";
+      SF Sg Gen => x + "otręby";
+      SF Sg Dat => x + "Otrębie";
+      SF Sg Acc => x + "Otrębę";
+      SF Sg Instr => x + "Otrębą";
+      SF Sg Loc => x + "Otrębie";
+      SF Sg Voc => x + "Otrębo";
+      SF Pl Nom => x + "Otrębowie";
+      SF Pl Gen => x + "otrębów";
+      SF Pl Dat => x + "otrębom";
+      SF Pl Acc => x + "otrębów";
+      SF Pl Instr => x + "otrębami";
+      SF Pl Loc => x + "otrębach";
+      SF Pl Voc => x + "Otrębowie"
+    };
+
+    oper mkNTable0670: Str -> SubstForm => Str; --%
+    oper mkNTable0670 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "owczarek";
+      SF Sg Gen => x + "owczarka";
+      SF Sg Dat => x + "owczarkowi";
+      SF Sg Acc => x + "owczarka";
+      SF Sg Instr => x + "owczarkiem";
+      SF Sg Loc => x + "owczarku";
+      SF Sg Voc => x + "owczarku";
+      SF Pl Nom => x + "Owczarkowie";
+      SF Pl Gen => x + "owczarków";
+      SF Pl Dat => x + "owczarkom";
+      SF Pl Acc => x + "owczarków";
+      SF Pl Instr => x + "owczarkami";
+      SF Pl Loc => x + "owczarkach";
+      SF Pl Voc => x + "Owczarkowie"
+    };
+
+    oper mkNTable0672: Str -> SubstForm => Str; --%
+    oper mkNTable0672 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nie";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niu";
+      SF Sg Acc => x + "nie";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "nia";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nia";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nia"
+    };
+
+    oper mkNTable0673: Str -> SubstForm => Str; --%
+    oper mkNTable0673 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "x";
+      SF Sg Gen => x + "ksu";
+      SF Sg Dat => x + "ksowi";
+      SF Sg Acc => x + "x";
+      SF Sg Instr => x + "ksem";
+      SF Sg Loc => x + "ksie";
+      SF Sg Voc => x + "ksie";
+      SF Pl Nom => x + "ksy";
+      SF Pl Gen => x + "ksów";
+      SF Pl Dat => x + "ksom";
+      SF Pl Acc => x + "ksy";
+      SF Pl Instr => x + "ksami";
+      SF Pl Loc => x + "ksach";
+      SF Pl Voc => x + "ksy"
+    };
+
+    oper mkNTable0674: Str -> SubstForm => Str; --%
+    oper mkNTable0674 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0675: Str -> SubstForm => Str; --%
+    oper mkNTable0675 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "pac";
+      SF Sg Gen => x + "paca";
+      SF Sg Dat => x + "pacowi";
+      SF Sg Acc => x + "paca";
+      SF Sg Instr => x + "pacem";
+      SF Sg Loc => x + "pacu";
+      SF Sg Voc => x + "pacu";
+      SF Pl Nom => x + "Pacowie";
+      SF Pl Gen => x + "pacy";
+      SF Pl Dat => x + "pacom";
+      SF Pl Acc => x + "pacy";
+      SF Pl Instr => x + "pacami";
+      SF Pl Loc => x + "pacach";
+      SF Pl Voc => x + "Pacowie"
+    };
+
+    oper mkNTable0677: Str -> SubstForm => Str; --%
+    oper mkNTable0677 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pająk";
+      SF Sg Gen => x + "pająka";
+      SF Sg Dat => x + "pająkowi";
+      SF Sg Acc => x + "pająka";
+      SF Sg Instr => x + "pająkiem";
+      SF Sg Loc => x + "pająku";
+      SF Sg Voc => x + "pająku";
+      SF Pl Nom => x + "Pająkowie";
+      SF Pl Gen => x + "pająków";
+      SF Pl Dat => x + "pająkom";
+      SF Pl Acc => x + "pająków";
+      SF Pl Instr => x + "pająkami";
+      SF Pl Loc => x + "pająkach";
+      SF Pl Voc => x + "Pająkowie"
+    };
+
+    oper mkNTable0678: Str -> SubstForm => Str; --%
+    oper mkNTable0678 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Pakuła";
+      SF Sg Gen => x + "pakuły";
+      SF Sg Dat => x + "Pakule";
+      SF Sg Acc => x + "Pakułę";
+      SF Sg Instr => x + "Pakułą";
+      SF Sg Loc => x + "Pakule";
+      SF Sg Voc => x + "Pakuło";
+      SF Pl Nom => x + "Pakułowie";
+      SF Pl Gen => x + "pakułów";
+      SF Pl Dat => x + "pakułom";
+      SF Pl Acc => x + "pakułów";
+      SF Pl Instr => x + "pakułami";
+      SF Pl Loc => x + "pakułach";
+      SF Pl Voc => x + "Pakułowie"
+    };
+
+    oper mkNTable0679: Str -> SubstForm => Str; --%
+    oper mkNTable0679 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "palatyn";
+      SF Sg Gen => x + "Palatynu";
+      SF Sg Dat => x + "palatynowi";
+      SF Sg Acc => x + "palatyn";
+      SF Sg Instr => x + "palatynem";
+      SF Sg Loc => x + "palatynie";
+      SF Sg Voc => x + "palatynie";
+      SF Pl Nom => x + "palatyny";
+      SF Pl Gen => x + "palatynów";
+      SF Pl Dat => x + "palatynom";
+      SF Pl Acc => x + "palatyny";
+      SF Pl Instr => x + "palatynami";
+      SF Pl Loc => x + "palatynach";
+      SF Pl Voc => x + "palatyny"
+    };
+
+    oper mkNTable0680: Str -> SubstForm => Str; --%
+    oper mkNTable0680 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "palma";
+      SF Sg Gen => x + "palmy";
+      SF Sg Dat => x + "palmie";
+      SF Sg Acc => x + "palmę";
+      SF Sg Instr => x + "palmą";
+      SF Sg Loc => x + "palmie";
+      SF Sg Voc => x + "palmo";
+      SF Pl Nom => x + "Palmowie";
+      SF Pl Gen => x + "palmów";
+      SF Pl Dat => x + "palmom";
+      SF Pl Acc => x + "palmów";
+      SF Pl Instr => x + "palmami";
+      SF Pl Loc => x + "palmach";
+      SF Pl Voc => x + "Palmowie"
+    };
+
+    oper mkNTable0681: Str -> SubstForm => Str; --%
+    oper mkNTable0681 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "paluch";
+      SF Sg Gen => x + "palucha";
+      SF Sg Dat => x + "paluchowi";
+      SF Sg Acc => x + "palucha";
+      SF Sg Instr => x + "paluchem";
+      SF Sg Loc => x + "paluchu";
+      SF Sg Voc => x + "paluchu";
+      SF Pl Nom => x + "Paluchowie";
+      SF Pl Gen => x + "paluchów";
+      SF Pl Dat => x + "paluchom";
+      SF Pl Acc => x + "paluchów";
+      SF Pl Instr => x + "paluchami";
+      SF Pl Loc => x + "paluchach";
+      SF Pl Voc => x + "Paluchowie"
+    };
+
+    oper mkNTable0682: Str -> SubstForm => Str; --%
+    oper mkNTable0682 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "pan";
+      SF Sg Gen => x + "pana";
+      SF Sg Dat => x + "Panowi";
+      SF Sg Acc => x + "pana";
+      SF Sg Instr => x + "panem";
+      SF Sg Loc => x + "panie";
+      SF Sg Voc => x + "panie";
+      SF Pl Nom => x + "panowie";
+      SF Pl Gen => x + "panów";
+      SF Pl Dat => x + "panom";
+      SF Pl Acc => x + "panów";
+      SF Pl Instr => x + "panami";
+      SF Pl Loc => x + "panach";
+      SF Pl Voc => x + "panowie"
+    };
+
+    oper mkNTable0684: Str -> SubstForm => Str; --%
+    oper mkNTable0684 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "parkinson";
+      SF Sg Gen => x + "parkinsona";
+      SF Sg Dat => x + "parkinsonowi";
+      SF Sg Acc => x + "parkinsona";
+      SF Sg Instr => x + "parkinsonem";
+      SF Sg Loc => x + "parkinsonie";
+      SF Sg Voc => x + "parkinsonie";
+      SF Pl Nom => x + "Parkinsonowie";
+      SF Pl Gen => x + "parkinsonów";
+      SF Pl Dat => x + "parkinsonom";
+      SF Pl Acc => x + "parkinsonów";
+      SF Pl Instr => x + "parkinsonami";
+      SF Pl Loc => x + "parkinsonach";
+      SF Pl Voc => x + "Parkinsonowie"
+    };
+
+    oper mkNTable0685: Str -> SubstForm => Str; --%
+    oper mkNTable0685 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pasek";
+      SF Sg Gen => x + "paska";
+      SF Sg Dat => x + "paskowi";
+      SF Sg Acc => x + "paska";
+      SF Sg Instr => x + "paskiem";
+      SF Sg Loc => x + "pasku";
+      SF Sg Voc => x + "pasku";
+      SF Pl Nom => x + "Paskowie";
+      SF Pl Gen => x + "pasków";
+      SF Pl Dat => x + "paskom";
+      SF Pl Acc => x + "pasków";
+      SF Pl Instr => x + "paskami";
+      SF Pl Loc => x + "paskach";
+      SF Pl Voc => x + "Paskowie"
+    };
+
+    oper mkNTable0686: Str -> SubstForm => Str; --%
+    oper mkNTable0686 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "pasternak";
+      SF Sg Gen => x + "Pasternaka";
+      SF Sg Dat => x + "pasternakowi";
+      SF Sg Acc => x + "Pasternaka";
+      SF Sg Instr => x + "pasternakiem";
+      SF Sg Loc => x + "pasternaku";
+      SF Sg Voc => x + "pasternaku";
+      SF Pl Nom => x + "Pasternakowie";
+      SF Pl Gen => x + "pasternaków";
+      SF Pl Dat => x + "pasternakom";
+      SF Pl Acc => x + "pasternaków";
+      SF Pl Instr => x + "pasternakami";
+      SF Pl Loc => x + "pasternakach";
+      SF Pl Voc => x + "Pasternakowie"
+    };
+
+    oper mkNTable0688: Str -> SubstForm => Str; --%
+    oper mkNTable0688 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "patrycy";
+      SF Sg Gen => x + "Patrycego";
+      SF Sg Dat => x + "Patrycemu";
+      SF Sg Acc => x + "Patrycego";
+      SF Sg Instr => x + "Patrycym";
+      SF Sg Loc => x + "Patrycym";
+      SF Sg Voc => x + "patrycy";
+      SF Pl Nom => x + "Patrycowie";
+      SF Pl Gen => x + "Patrycych";
+      SF Pl Dat => x + "Patrycym";
+      SF Pl Acc => x + "Patrycych";
+      SF Pl Instr => x + "Patrycymi";
+      SF Pl Loc => x + "Patrycych";
+      SF Pl Voc => x + "Patrycowie"
+    };
+
+    oper mkNTable0689: Str -> SubstForm => Str; --%
+    oper mkNTable0689 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "paulina";
+      SF Sg Gen => x + "pauliny";
+      SF Sg Dat => x + "paulinie";
+      SF Sg Acc => x + "Paulinę";
+      SF Sg Instr => x + "Pauliną";
+      SF Sg Loc => x + "paulinie";
+      SF Sg Voc => x + "Paulino";
+      SF Pl Nom => x + "pauliny";
+      SF Pl Gen => x + "paulin";
+      SF Pl Dat => x + "paulinom";
+      SF Pl Acc => x + "pauliny";
+      SF Pl Instr => x + "paulinami";
+      SF Pl Loc => x + "paulinach";
+      SF Pl Voc => x + "pauliny"
+    };
+
+    oper mkNTable0690: Str -> SubstForm => Str; --%
+    oper mkNTable0690 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Pawełek";
+      SF Sg Gen => x + "Pawełka";
+      SF Sg Dat => x + "Pawełkowi";
+      SF Sg Acc => x + "Pawełka";
+      SF Sg Instr => x + "Pawełkiem";
+      SF Sg Loc => x + "Pawełku";
+      SF Sg Voc => x + "Pawełku";
+      SF Pl Nom => x + "Pawełkowie";
+      SF Pl Gen => x + "pawełków";
+      SF Pl Dat => x + "pawełkom";
+      SF Pl Acc => x + "pawełków";
+      SF Pl Instr => x + "pawełkami";
+      SF Pl Loc => x + "pawełkach";
+      SF Pl Voc => x + "Pawełkowie"
+    };
+
+    oper mkNTable0691: Str -> SubstForm => Str; --%
+    oper mkNTable0691 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pawia";
+      SF Sg Gen => x + "Pawii";
+      SF Sg Dat => x + "Pawii";
+      SF Sg Acc => x + "Pawię";
+      SF Sg Instr => x + "Pawią";
+      SF Sg Loc => x + "Pawii";
+      SF Sg Voc => x + "Pawio";
+      SF Pl Nom => x + "pawie";
+      SF Pl Gen => x + "Pawii";
+      SF Pl Dat => x + "pawiom";
+      SF Pl Acc => x + "pawie";
+      SF Pl Instr => x + "pawiami";
+      SF Pl Loc => x + "pawiach";
+      SF Pl Voc => x + "pawie"
+    };
+
+    oper mkNTable0692: Str -> SubstForm => Str; --%
+    oper mkNTable0692 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pałka";
+      SF Sg Gen => x + "pałki";
+      SF Sg Dat => x + "pałce";
+      SF Sg Acc => x + "pałkę";
+      SF Sg Instr => x + "pałką";
+      SF Sg Loc => x + "pałce";
+      SF Sg Voc => x + "pałko";
+      SF Pl Nom => x + "Pałkowie";
+      SF Pl Gen => x + "Pałków";
+      SF Pl Dat => x + "pałkom";
+      SF Pl Acc => x + "Pałków";
+      SF Pl Instr => x + "pałkami";
+      SF Pl Loc => x + "pałkach";
+      SF Pl Voc => x + "Pałkowie"
+    };
+
+    oper mkNTable0693: Str -> SubstForm => Str; --%
+    oper mkNTable0693 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "peron";
+      SF Sg Gen => x + "Perona";
+      SF Sg Dat => x + "peronowi";
+      SF Sg Acc => x + "Perona";
+      SF Sg Instr => x + "peronem";
+      SF Sg Loc => x + "peronie";
+      SF Sg Voc => x + "peronie";
+      SF Pl Nom => x + "Peronowie";
+      SF Pl Gen => x + "peronów";
+      SF Pl Dat => x + "peronom";
+      SF Pl Acc => x + "peronów";
+      SF Pl Instr => x + "peronami";
+      SF Pl Loc => x + "peronach";
+      SF Pl Voc => x + "Peronowie"
+    };
+
+    oper mkNTable0694: Str -> SubstForm => Str; --%
+    oper mkNTable0694 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pers";
+      SF Sg Gen => x + "persa";
+      SF Sg Dat => x + "persowi";
+      SF Sg Acc => x + "persa";
+      SF Sg Instr => x + "persem";
+      SF Sg Loc => x + "persie";
+      SF Sg Voc => x + "persie";
+      SF Pl Nom => x + "Persowie";
+      SF Pl Gen => x + "persów";
+      SF Pl Dat => x + "persom";
+      SF Pl Acc => x + "persów";
+      SF Pl Instr => x + "persami";
+      SF Pl Loc => x + "persach";
+      SF Pl Voc => x + "Persowie"
+    };
+
+    oper mkNTable0696: Str -> SubstForm => Str; --%
+    oper mkNTable0696 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "piecyk";
+      SF Sg Gen => x + "piecyka";
+      SF Sg Dat => x + "piecykowi";
+      SF Sg Acc => x + "piecyka";
+      SF Sg Instr => x + "piecykiem";
+      SF Sg Loc => x + "piecyku";
+      SF Sg Voc => x + "piecyku";
+      SF Pl Nom => x + "Piecykowie";
+      SF Pl Gen => x + "piecyków";
+      SF Pl Dat => x + "piecykom";
+      SF Pl Acc => x + "piecyków";
+      SF Pl Instr => x + "piecykami";
+      SF Pl Loc => x + "piecykach";
+      SF Pl Voc => x + "Piecykowie"
+    };
+
+    oper mkNTable0697: Str -> SubstForm => Str; --%
+    oper mkNTable0697 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "pieniążek";
+      SF Sg Gen => x + "pieniążka";
+      SF Sg Dat => x + "pieniążkowi";
+      SF Sg Acc => x + "pieniążka";
+      SF Sg Instr => x + "pieniążkiem";
+      SF Sg Loc => x + "pieniążku";
+      SF Sg Voc => x + "pieniążku";
+      SF Pl Nom => x + "Pieniążkowie";
+      SF Pl Gen => x + "pieniążków";
+      SF Pl Dat => x + "pieniążkom";
+      SF Pl Acc => x + "pieniążków";
+      SF Pl Instr => x + "pieniążkami";
+      SF Pl Loc => x + "pieniążkach";
+      SF Pl Voc => x + "Pieniążkowie"
+    };
+
+    oper mkNTable0698: Str -> SubstForm => Str; --%
+    oper mkNTable0698 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Pilawa";
+      SF Sg Gen => x + "pilawy";
+      SF Sg Dat => x + "pilawie";
+      SF Sg Acc => x + "Pilawę";
+      SF Sg Instr => x + "Pilawą";
+      SF Sg Loc => x + "pilawie";
+      SF Sg Voc => x + "Pilawo";
+      SF Pl Nom => x + "pilawy";
+      SF Pl Gen => x + "pilaw";
+      SF Pl Dat => x + "pilawom";
+      SF Pl Acc => x + "pilawy";
+      SF Pl Instr => x + "pilawami";
+      SF Pl Loc => x + "pilawach";
+      SF Pl Voc => x + "pilawy"
+    };
+
+    oper mkNTable0700: Str -> SubstForm => Str; --%
+    oper mkNTable0700 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "pisarek";
+      SF Sg Gen => x + "pisarka";
+      SF Sg Dat => x + "Pisarkowi";
+      SF Sg Acc => x + "pisarka";
+      SF Sg Instr => x + "Pisarkiem";
+      SF Sg Loc => x + "Pisarku";
+      SF Sg Voc => x + "Pisarku";
+      SF Pl Nom => x + "Pisarkowie";
+      SF Pl Gen => x + "Pisarków";
+      SF Pl Dat => x + "pisarkom";
+      SF Pl Acc => x + "Pisarków";
+      SF Pl Instr => x + "pisarkami";
+      SF Pl Loc => x + "pisarkach";
+      SF Pl Voc => x + "Pisarkowie"
+    };
+
+    oper mkNTable0701: Str -> SubstForm => Str; --%
+    oper mkNTable0701 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ro";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ro";
+      SF Pl Nom => x + "rowie";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "rów";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "rowie"
+    };
+
+    oper mkNTable0702: Str -> SubstForm => Str; --%
+    oper mkNTable0702 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "piątek";
+      SF Sg Gen => x + "piątka";
+      SF Sg Dat => x + "piątkowi";
+      SF Sg Acc => x + "piątka";
+      SF Sg Instr => x + "piątkiem";
+      SF Sg Loc => x + "piątku";
+      SF Sg Voc => x + "piątku";
+      SF Pl Nom => x + "Piątkowie";
+      SF Pl Gen => x + "piątków";
+      SF Pl Dat => x + "piątkom";
+      SF Pl Acc => x + "piątków";
+      SF Pl Instr => x + "piątkami";
+      SF Pl Loc => x + "piątkach";
+      SF Pl Voc => x + "Piątkowie"
+    };
+
+    oper mkNTable0703: Str -> SubstForm => Str; --%
+    oper mkNTable0703 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "piętak";
+      SF Sg Gen => x + "piętaka";
+      SF Sg Dat => x + "piętakowi";
+      SF Sg Acc => x + "piętaka";
+      SF Sg Instr => x + "piętakiem";
+      SF Sg Loc => x + "piętaku";
+      SF Sg Voc => x + "piętaku";
+      SF Pl Nom => x + "Piętakowie";
+      SF Pl Gen => x + "piętaków";
+      SF Pl Dat => x + "piętakom";
+      SF Pl Acc => x + "piętaków";
+      SF Pl Instr => x + "piętakami";
+      SF Pl Loc => x + "piętakach";
+      SF Pl Voc => x + "Piętakowie"
+    };
+
+    oper mkNTable0704: Str -> SubstForm => Str; --%
+    oper mkNTable0704 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "a";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "a";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "a";
+      SF Pl Dat => x + "a";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "a";
+      SF Pl Loc => x + "a";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0706: Str -> SubstForm => Str; --%
+    oper mkNTable0706 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pluta";
+      SF Sg Gen => x + "pluty";
+      SF Sg Dat => x + "plucie";
+      SF Sg Acc => x + "plutę";
+      SF Sg Instr => x + "plutą";
+      SF Sg Loc => x + "plucie";
+      SF Sg Voc => x + "pluto";
+      SF Pl Nom => x + "Plutowie";
+      SF Pl Gen => x + "Plutów";
+      SF Pl Dat => x + "plutom";
+      SF Pl Acc => x + "Plutów";
+      SF Pl Instr => x + "plutami";
+      SF Pl Loc => x + "plutach";
+      SF Pl Voc => x + "Plutowie"
+    };
+
+    oper mkNTable0707: Str -> SubstForm => Str; --%
+    oper mkNTable0707 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "pluton";
+      SF Sg Gen => x + "Plutona";
+      SF Sg Dat => x + "plutonowi";
+      SF Sg Acc => x + "Plutona";
+      SF Sg Instr => x + "plutonem";
+      SF Sg Loc => x + "plutonie";
+      SF Sg Voc => x + "plutonie";
+      SF Pl Nom => x + "plutony";
+      SF Pl Gen => x + "plutonów";
+      SF Pl Dat => x + "plutonom";
+      SF Pl Acc => x + "plutony";
+      SF Pl Instr => x + "plutonami";
+      SF Pl Loc => x + "plutonach";
+      SF Pl Voc => x + "plutony"
+    };
+
+    oper mkNTable0708: Str -> SubstForm => Str; --%
+    oper mkNTable0708 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Pol";
+      SF Sg Gen => x + "pola";
+      SF Sg Dat => x + "Polowi";
+      SF Sg Acc => x + "pola";
+      SF Sg Instr => x + "polem";
+      SF Sg Loc => x + "polu";
+      SF Sg Voc => x + "polu";
+      SF Pl Nom => x + "Polowie";
+      SF Pl Gen => x + "Polów";
+      SF Pl Dat => x + "polom";
+      SF Pl Acc => x + "Polów";
+      SF Pl Instr => x + "polami";
+      SF Pl Loc => x + "polach";
+      SF Pl Voc => x + "Polowie"
+    };
+
+    oper mkNTable0709: Str -> SubstForm => Str; --%
+    oper mkNTable0709 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pola";
+      SF Sg Gen => x + "Poli";
+      SF Sg Dat => x + "Poli";
+      SF Sg Acc => x + "Polę";
+      SF Sg Instr => x + "Polą";
+      SF Sg Loc => x + "Poli";
+      SF Sg Voc => x + "polu";
+      SF Pl Nom => x + "pole";
+      SF Pl Gen => x + "Pol";
+      SF Pl Dat => x + "polom";
+      SF Pl Acc => x + "pole";
+      SF Pl Instr => x + "polami";
+      SF Pl Loc => x + "polach";
+      SF Pl Voc => x + "pole"
+    };
+
+    oper mkNTable0710: Str -> SubstForm => Str; --%
+    oper mkNTable0710 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "polaczek";
+      SF Sg Gen => x + "polaczka";
+      SF Sg Dat => x + "polaczkowi";
+      SF Sg Acc => x + "polaczka";
+      SF Sg Instr => x + "polaczkiem";
+      SF Sg Loc => x + "polaczku";
+      SF Sg Voc => x + "polaczku";
+      SF Pl Nom => x + "Polaczkowie";
+      SF Pl Gen => x + "polaczków";
+      SF Pl Dat => x + "polaczkom";
+      SF Pl Acc => x + "polaczków";
+      SF Pl Instr => x + "polaczkami";
+      SF Pl Loc => x + "polaczkach";
+      SF Pl Voc => x + "Polaczkowie"
+    };
+
+    oper mkNTable0711: Str -> SubstForm => Str; --%
+    oper mkNTable0711 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "polak";
+      SF Sg Gen => x + "polaka";
+      SF Sg Dat => x + "polakowi";
+      SF Sg Acc => x + "polaka";
+      SF Sg Instr => x + "polakiem";
+      SF Sg Loc => x + "polaku";
+      SF Sg Voc => x + "polaku";
+      SF Pl Nom => x + "Polacy";
+      SF Pl Gen => x + "polaków";
+      SF Pl Dat => x + "polakom";
+      SF Pl Acc => x + "polaków";
+      SF Pl Instr => x + "polakami";
+      SF Pl Loc => x + "polakach";
+      SF Pl Voc => x + "Polacy"
+    };
+
+    oper mkNTable0713: Str -> SubstForm => Str; --%
+    oper mkNTable0713 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "polek";
+      SF Sg Gen => x + "polka";
+      SF Sg Dat => x + "Polkowi";
+      SF Sg Acc => x + "polka";
+      SF Sg Instr => x + "Polkiem";
+      SF Sg Loc => x + "Polku";
+      SF Sg Voc => x + "Polku";
+      SF Pl Nom => x + "Polkowie";
+      SF Pl Gen => x + "Polków";
+      SF Pl Dat => x + "polkom";
+      SF Pl Acc => x + "Polków";
+      SF Pl Instr => x + "polkami";
+      SF Pl Loc => x + "polkach";
+      SF Pl Voc => x + "Polkowie"
+    };
+
+    oper mkNTable0714: Str -> SubstForm => Str; --%
+    oper mkNTable0714 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Polo";
+      SF Sg Gen => x + "pola";
+      SF Sg Dat => x + "Polowi";
+      SF Sg Acc => x + "pola";
+      SF Sg Instr => x + "polem";
+      SF Sg Loc => x + "polu";
+      SF Sg Voc => x + "Polo";
+      SF Pl Nom => x + "Polowie";
+      SF Pl Gen => x + "Polów";
+      SF Pl Dat => x + "polom";
+      SF Pl Acc => x + "Polów";
+      SF Pl Instr => x + "polami";
+      SF Pl Loc => x + "polach";
+      SF Pl Voc => x + "Polowie"
+    };
+
+    oper mkNTable0715: Str -> SubstForm => Str; --%
+    oper mkNTable0715 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0716: Str -> SubstForm => Str; --%
+    oper mkNTable0716 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "popiołek";
+      SF Sg Gen => x + "Popiołka";
+      SF Sg Dat => x + "popiołkowi";
+      SF Sg Acc => x + "Popiołka";
+      SF Sg Instr => x + "popiołkiem";
+      SF Sg Loc => x + "popiołku";
+      SF Sg Voc => x + "popiołku";
+      SF Pl Nom => x + "Popiołkowie";
+      SF Pl Gen => x + "popiołków";
+      SF Pl Dat => x + "popiołkom";
+      SF Pl Acc => x + "popiołków";
+      SF Pl Instr => x + "popiołkami";
+      SF Pl Loc => x + "popiołkach";
+      SF Pl Voc => x + "Popiołkowie"
+    };
+
+    oper mkNTable0717: Str -> SubstForm => Str; --%
+    oper mkNTable0717 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "popów";
+      SF Sg Gen => x + "Popowa";
+      SF Sg Dat => x + "Popowowi";
+      SF Sg Acc => x + "popów";
+      SF Sg Instr => x + "Popowem";
+      SF Sg Loc => x + "Popowie";
+      SF Sg Voc => x + "Popowie";
+      SF Pl Nom => x + "Popowy";
+      SF Pl Gen => x + "Popowów";
+      SF Pl Dat => x + "Popowom";
+      SF Pl Acc => x + "Popowy";
+      SF Pl Instr => x + "Popowami";
+      SF Pl Loc => x + "Popowach";
+      SF Pl Voc => x + "Popowy"
+    };
+
+    oper mkNTable0718: Str -> SubstForm => Str; --%
+    oper mkNTable0718 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "prot";
+      SF Sg Gen => x + "Prota";
+      SF Sg Dat => x + "protowi";
+      SF Sg Acc => x + "Prota";
+      SF Sg Instr => x + "protem";
+      SF Sg Loc => x + "procie";
+      SF Sg Voc => x + "procie";
+      SF Pl Nom => x + "Protowie";
+      SF Pl Gen => x + "protów";
+      SF Pl Dat => x + "protom";
+      SF Pl Acc => x + "protów";
+      SF Pl Instr => x + "protami";
+      SF Pl Loc => x + "protach";
+      SF Pl Voc => x + "Protowie"
+    };
+
+    oper mkNTable0719: Str -> SubstForm => Str; --%
+    oper mkNTable0719 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "protazy";
+      SF Sg Gen => x + "Protazego";
+      SF Sg Dat => x + "Protazemu";
+      SF Sg Acc => x + "Protazego";
+      SF Sg Instr => x + "Protazym";
+      SF Sg Loc => x + "Protazym";
+      SF Sg Voc => x + "protazy";
+      SF Pl Nom => x + "Protazowie";
+      SF Pl Gen => x + "Protazych";
+      SF Pl Dat => x + "Protazym";
+      SF Pl Acc => x + "Protazych";
+      SF Pl Instr => x + "Protazymi";
+      SF Pl Loc => x + "Protazych";
+      SF Pl Voc => x + "Protazowie"
+    };
+
+    oper mkNTable0720: Str -> SubstForm => Str; --%
+    oper mkNTable0720 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "prusak";
+      SF Sg Gen => x + "prusaka";
+      SF Sg Dat => x + "prusakowi";
+      SF Sg Acc => x + "prusaka";
+      SF Sg Instr => x + "prusakiem";
+      SF Sg Loc => x + "prusaku";
+      SF Sg Voc => x + "prusaku";
+      SF Pl Nom => x + "Prusacy";
+      SF Pl Gen => x + "prusaków";
+      SF Pl Dat => x + "prusakom";
+      SF Pl Acc => x + "prusaków";
+      SF Pl Instr => x + "prusakami";
+      SF Pl Loc => x + "prusakach";
+      SF Pl Voc => x + "Prusacy"
+    };
+
+    oper mkNTable0722: Str -> SubstForm => Str; --%
+    oper mkNTable0722 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "przemysł";
+      SF Sg Gen => x + "Przemysła";
+      SF Sg Dat => x + "przemysłowi";
+      SF Sg Acc => x + "Przemysła";
+      SF Sg Instr => x + "przemysłem";
+      SF Sg Loc => x + "przemyśle";
+      SF Sg Voc => x + "przemyśle";
+      SF Pl Nom => x + "Przemysłowie";
+      SF Pl Gen => x + "przemysłów";
+      SF Pl Dat => x + "przemysłom";
+      SF Pl Acc => x + "przemysłów";
+      SF Pl Instr => x + "przemysłami";
+      SF Pl Loc => x + "przemysłach";
+      SF Pl Voc => x + "Przemysłowie"
+    };
+
+    oper mkNTable0723: Str -> SubstForm => Str; --%
+    oper mkNTable0723 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Przybora";
+      SF Sg Gen => x + "przybory";
+      SF Sg Dat => x + "przyborze";
+      SF Sg Acc => x + "Przyborę";
+      SF Sg Instr => x + "Przyborą";
+      SF Sg Loc => x + "przyborze";
+      SF Sg Voc => x + "Przyboro";
+      SF Pl Nom => x + "Przyborowie";
+      SF Pl Gen => x + "przyborów";
+      SF Pl Dat => x + "przyborom";
+      SF Pl Acc => x + "przyborów";
+      SF Pl Instr => x + "przyborami";
+      SF Pl Loc => x + "przyborach";
+      SF Pl Voc => x + "Przyborowie"
+    };
+
+    oper mkNTable0724: Str -> SubstForm => Str; --%
+    oper mkNTable0724 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "przybysz";
+      SF Sg Gen => x + "przybysza";
+      SF Sg Dat => x + "przybyszowi";
+      SF Sg Acc => x + "przybysza";
+      SF Sg Instr => x + "przybyszem";
+      SF Sg Loc => x + "przybyszu";
+      SF Sg Voc => x + "przybyszu";
+      SF Pl Nom => x + "Przybyszowie";
+      SF Pl Gen => x + "przybyszów";
+      SF Pl Dat => x + "przybyszom";
+      SF Pl Acc => x + "przybyszów";
+      SF Pl Instr => x + "przybyszami";
+      SF Pl Loc => x + "przybyszach";
+      SF Pl Voc => x + "Przybyszowie"
+    };
+
+    oper mkNTable0725: Str -> SubstForm => Str; --%
+    oper mkNTable0725 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "przybyła";
+      SF Sg Gen => x + "Przybyły";
+      SF Sg Dat => x + "Przybyle";
+      SF Sg Acc => x + "Przybyłę";
+      SF Sg Instr => x + "przybyłą";
+      SF Sg Loc => x + "Przybyle";
+      SF Sg Voc => x + "Przybyło";
+      SF Pl Nom => x + "Przybyłowie";
+      SF Pl Gen => x + "Przybyłów";
+      SF Pl Dat => x + "Przybyłom";
+      SF Pl Acc => x + "Przybyłów";
+      SF Pl Instr => x + "Przybyłami";
+      SF Pl Loc => x + "Przybyłach";
+      SF Pl Voc => x + "Przybyłowie"
+    };
+
+    oper mkNTable0726: Str -> SubstForm => Str; --%
+    oper mkNTable0726 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ptak";
+      SF Sg Gen => x + "ptaka";
+      SF Sg Dat => x + "ptakowi";
+      SF Sg Acc => x + "ptaka";
+      SF Sg Instr => x + "ptakiem";
+      SF Sg Loc => x + "ptaku";
+      SF Sg Voc => x + "ptaku";
+      SF Pl Nom => x + "Ptakowie";
+      SF Pl Gen => x + "ptaków";
+      SF Pl Dat => x + "ptakom";
+      SF Pl Acc => x + "ptaków";
+      SF Pl Instr => x + "ptakami";
+      SF Pl Loc => x + "ptakach";
+      SF Pl Voc => x + "Ptakowie"
+    };
+
+    oper mkNTable0727: Str -> SubstForm => Str; --%
+    oper mkNTable0727 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Puck";
+      SF Sg Gen => x + "pucka";
+      SF Sg Dat => x + "puckowi";
+      SF Sg Acc => x + "Puck";
+      SF Sg Instr => x + "puckiem";
+      SF Sg Loc => x + "pucku";
+      SF Sg Voc => x + "pucku";
+      SF Pl Nom => x + "pucki";
+      SF Pl Gen => x + "pucków";
+      SF Pl Dat => x + "puckom";
+      SF Pl Acc => x + "pucki";
+      SF Pl Instr => x + "puckami";
+      SF Pl Loc => x + "puckach";
+      SF Pl Voc => x + "pucki"
+    };
+
+    oper mkNTable0729: Str -> SubstForm => Str; --%
+    oper mkNTable0729 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pług";
+      SF Sg Gen => x + "pługa";
+      SF Sg Dat => x + "pługowi";
+      SF Sg Acc => x + "pługa";
+      SF Sg Instr => x + "pługiem";
+      SF Sg Loc => x + "pługu";
+      SF Sg Voc => x + "pługu";
+      SF Pl Nom => x + "Pługowie";
+      SF Pl Gen => x + "pługów";
+      SF Pl Dat => x + "pługom";
+      SF Pl Acc => x + "pługów";
+      SF Pl Instr => x + "pługami";
+      SF Pl Loc => x + "pługach";
+      SF Pl Voc => x + "Pługowie"
+    };
+
+    oper mkNTable0730: Str -> SubstForm => Str; --%
+    oper mkNTable0730 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0731: Str -> SubstForm => Str; --%
+    oper mkNTable0731 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "raba";
+      SF Sg Gen => x + "raby";
+      SF Sg Dat => x + "rabie";
+      SF Sg Acc => x + "Rabę";
+      SF Sg Instr => x + "Rabą";
+      SF Sg Loc => x + "rabie";
+      SF Sg Voc => x + "Rabo";
+      SF Pl Nom => x + "raby";
+      SF Pl Gen => x + "rab";
+      SF Pl Dat => x + "rabom";
+      SF Pl Acc => x + "raby";
+      SF Pl Instr => x + "rabami";
+      SF Pl Loc => x + "rabach";
+      SF Pl Voc => x + "raby"
+    };
+
+    oper mkNTable0732: Str -> SubstForm => Str; --%
+    oper mkNTable0732 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "rak";
+      SF Sg Gen => x + "raka";
+      SF Sg Dat => x + "rakowi";
+      SF Sg Acc => x + "raka";
+      SF Sg Instr => x + "rakiem";
+      SF Sg Loc => x + "raku";
+      SF Sg Voc => x + "raku";
+      SF Pl Nom => x + "Rakowie";
+      SF Pl Gen => x + "raków";
+      SF Pl Dat => x + "rakom";
+      SF Pl Acc => x + "raków";
+      SF Pl Instr => x + "rakami";
+      SF Pl Loc => x + "rakach";
+      SF Pl Voc => x + "Rakowie"
+    };
+
+    oper mkNTable0734: Str -> SubstForm => Str; --%
+    oper mkNTable0734 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rataj";
+      SF Sg Gen => x + "rataja";
+      SF Sg Dat => x + "ratajowi";
+      SF Sg Acc => x + "rataja";
+      SF Sg Instr => x + "ratajem";
+      SF Sg Loc => x + "rataju";
+      SF Sg Voc => x + "rataju";
+      SF Pl Nom => x + "Ratajowie";
+      SF Pl Gen => x + "ratajów";
+      SF Pl Dat => x + "ratajom";
+      SF Pl Acc => x + "ratajów";
+      SF Pl Instr => x + "ratajami";
+      SF Pl Loc => x + "ratajach";
+      SF Pl Voc => x + "Ratajowie"
+    };
+
+    oper mkNTable0735: Str -> SubstForm => Str; --%
+    oper mkNTable0735 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "rebeka";
+      SF Sg Gen => x + "rebeki";
+      SF Sg Dat => x + "Rebece";
+      SF Sg Acc => x + "Rebekę";
+      SF Sg Instr => x + "Rebeką";
+      SF Sg Loc => x + "Rebece";
+      SF Sg Voc => x + "Rebeko";
+      SF Pl Nom => x + "rebeki";
+      SF Pl Gen => x + "rebek";
+      SF Pl Dat => x + "rebekom";
+      SF Pl Acc => x + "rebeki";
+      SF Pl Instr => x + "rebekami";
+      SF Pl Loc => x + "rebekach";
+      SF Pl Voc => x + "rebeki"
+    };
+
+    oper mkNTable0736: Str -> SubstForm => Str; --%
+    oper mkNTable0736 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Renia";
+      SF Sg Gen => x + "Reni";
+      SF Sg Dat => x + "Reni";
+      SF Sg Acc => x + "Renię";
+      SF Sg Instr => x + "Renią";
+      SF Sg Loc => x + "Reni";
+      SF Sg Voc => x + "Reniu";
+      SF Pl Nom => x + "renie";
+      SF Pl Gen => x + "Reń";
+      SF Pl Dat => x + "Reniom";
+      SF Pl Acc => x + "renie";
+      SF Pl Instr => x + "Reniami";
+      SF Pl Loc => x + "Reniach";
+      SF Pl Voc => x + "renie"
+    };
+
+    oper mkNTable0737: Str -> SubstForm => Str; --%
+    oper mkNTable0737 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Robin";
+      SF Sg Gen => x + "Robina";
+      SF Sg Dat => x + "Robinowi";
+      SF Sg Acc => x + "Robina";
+      SF Sg Instr => x + "Robinem";
+      SF Sg Loc => x + "robinie";
+      SF Sg Voc => x + "robinie";
+      SF Pl Nom => x + "Robinowie";
+      SF Pl Gen => x + "Robinów";
+      SF Pl Dat => x + "Robinom";
+      SF Pl Acc => x + "Robinów";
+      SF Pl Instr => x + "Robinami";
+      SF Pl Loc => x + "Robinach";
+      SF Pl Voc => x + "Robinowie"
+    };
+
+    oper mkNTable0739: Str -> SubstForm => Str; --%
+    oper mkNTable0739 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "rola";
+      SF Sg Gen => x + "roli";
+      SF Sg Dat => x + "roli";
+      SF Sg Acc => x + "rolę";
+      SF Sg Instr => x + "rolą";
+      SF Sg Loc => x + "roli";
+      SF Sg Voc => x + "rolo";
+      SF Pl Nom => x + "Rolowie";
+      SF Pl Gen => x + "Rolów";
+      SF Pl Dat => x + "rolom";
+      SF Pl Acc => x + "Rolów";
+      SF Pl Instr => x + "rolami";
+      SF Pl Loc => x + "rolach";
+      SF Pl Voc => x + "Rolowie"
+    };
+
+    oper mkNTable0740: Str -> SubstForm => Str; --%
+    oper mkNTable0740 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0741: Str -> SubstForm => Str; --%
+    oper mkNTable0741 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "rosa";
+      SF Sg Gen => x + "rosy";
+      SF Sg Dat => x + "rosie";
+      SF Sg Acc => x + "rosę";
+      SF Sg Instr => x + "rosą";
+      SF Sg Loc => x + "rosie";
+      SF Sg Voc => x + "roso";
+      SF Pl Nom => x + "Rosowie";
+      SF Pl Gen => x + "Rosów";
+      SF Pl Dat => x + "rosom";
+      SF Pl Acc => x + "Rosów";
+      SF Pl Instr => x + "rosami";
+      SF Pl Loc => x + "rosach";
+      SF Pl Voc => x + "Rosowie"
+    };
+
+    oper mkNTable0742: Str -> SubstForm => Str; --%
+    oper mkNTable0742 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rosół";
+      SF Sg Gen => x + "Rosoła";
+      SF Sg Dat => x + "rosołowi";
+      SF Sg Acc => x + "Rosoła";
+      SF Sg Instr => x + "rosołem";
+      SF Sg Loc => x + "rosole";
+      SF Sg Voc => x + "rosole";
+      SF Pl Nom => x + "Rosołowie";
+      SF Pl Gen => x + "rosołów";
+      SF Pl Dat => x + "rosołom";
+      SF Pl Acc => x + "rosołów";
+      SF Pl Instr => x + "rosołami";
+      SF Pl Loc => x + "rosołach";
+      SF Pl Voc => x + "Rosołowie"
+    };
+
+    oper mkNTable0743: Str -> SubstForm => Str; --%
+    oper mkNTable0743 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Roth";
+      SF Sg Gen => x + "Rotha";
+      SF Sg Dat => x + "Rothowi";
+      SF Sg Acc => x + "Rotha";
+      SF Sg Instr => x + "Rothem";
+      SF Sg Loc => x + "rocie";
+      SF Sg Voc => x + "rocie";
+      SF Pl Nom => x + "Rothowie";
+      SF Pl Gen => x + "Rothów";
+      SF Pl Dat => x + "Rothom";
+      SF Pl Acc => x + "Rothów";
+      SF Pl Instr => x + "Rothami";
+      SF Pl Loc => x + "Rothach";
+      SF Pl Voc => x + "Rothowie"
+    };
+
+    oper mkNTable0746: Str -> SubstForm => Str; --%
+    oper mkNTable0746 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rumun";
+      SF Sg Gen => x + "rumuna";
+      SF Sg Dat => x + "rumunowi";
+      SF Sg Acc => x + "rumuna";
+      SF Sg Instr => x + "rumunem";
+      SF Sg Loc => x + "rumunie";
+      SF Sg Voc => x + "rumunie";
+      SF Pl Nom => x + "Rumuni";
+      SF Pl Gen => x + "rumunów";
+      SF Pl Dat => x + "rumunom";
+      SF Pl Acc => x + "rumunów";
+      SF Pl Instr => x + "rumunami";
+      SF Pl Loc => x + "rumunach";
+      SF Pl Voc => x + "Rumuni"
+    };
+
+    oper mkNTable0747: Str -> SubstForm => Str; --%
+    oper mkNTable0747 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "rus";
+      SF Sg Gen => x + "rusa";
+      SF Sg Dat => x + "rusowi";
+      SF Sg Acc => x + "rusa";
+      SF Sg Instr => x + "rusem";
+      SF Sg Loc => x + "rusie";
+      SF Sg Voc => x + "rusie";
+      SF Pl Nom => x + "Rusowie";
+      SF Pl Gen => x + "rusów";
+      SF Pl Dat => x + "rusom";
+      SF Pl Acc => x + "rusów";
+      SF Pl Instr => x + "rusami";
+      SF Pl Loc => x + "rusach";
+      SF Pl Voc => x + "Rusowie"
+    };
+
+    oper mkNTable0748: Str -> SubstForm => Str; --%
+    oper mkNTable0748 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rusek";
+      SF Sg Gen => x + "ruska";
+      SF Sg Dat => x + "ruskowi";
+      SF Sg Acc => x + "ruska";
+      SF Sg Instr => x + "ruskiem";
+      SF Sg Loc => x + "rusku";
+      SF Sg Voc => x + "rusku";
+      SF Pl Nom => x + "Ruskowie";
+      SF Pl Gen => x + "rusków";
+      SF Pl Dat => x + "ruskom";
+      SF Pl Acc => x + "rusków";
+      SF Pl Instr => x + "ruskami";
+      SF Pl Loc => x + "ruskach";
+      SF Pl Voc => x + "Ruskowie"
+    };
+
+    oper mkNTable0750: Str -> SubstForm => Str; --%
+    oper mkNTable0750 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "rutherford";
+      SF Sg Gen => x + "rutherforda";
+      SF Sg Dat => x + "rutherfordowi";
+      SF Sg Acc => x + "rutherforda";
+      SF Sg Instr => x + "rutherfordem";
+      SF Sg Loc => x + "rutherfordzie";
+      SF Sg Voc => x + "rutherfordzie";
+      SF Pl Nom => x + "Rutherfordowie";
+      SF Pl Gen => x + "rutherfordów";
+      SF Pl Dat => x + "rutherfordom";
+      SF Pl Acc => x + "rutherfordów";
+      SF Pl Instr => x + "rutherfordami";
+      SF Pl Loc => x + "rutherfordach";
+      SF Pl Voc => x + "Rutherfordowie"
+    };
+
+    oper mkNTable0751: Str -> SubstForm => Str; --%
+    oper mkNTable0751 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rybak";
+      SF Sg Gen => x + "rybaka";
+      SF Sg Dat => x + "rybakowi";
+      SF Sg Acc => x + "rybaka";
+      SF Sg Instr => x + "rybakiem";
+      SF Sg Loc => x + "rybaku";
+      SF Sg Voc => x + "rybaku";
+      SF Pl Nom => x + "Rybakowie";
+      SF Pl Gen => x + "rybaków";
+      SF Pl Dat => x + "rybakom";
+      SF Pl Acc => x + "rybaków";
+      SF Pl Instr => x + "rybakami";
+      SF Pl Loc => x + "rybakach";
+      SF Pl Voc => x + "Rybakowie"
+    };
+
+    oper mkNTable0752: Str -> SubstForm => Str; --%
+    oper mkNTable0752 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rydel";
+      SF Sg Gen => x + "rydla";
+      SF Sg Dat => x + "rydlowi";
+      SF Sg Acc => x + "rydla";
+      SF Sg Instr => x + "rydlem";
+      SF Sg Loc => x + "rydlu";
+      SF Sg Voc => x + "rydlu";
+      SF Pl Nom => x + "Rydlowie";
+      SF Pl Gen => x + "rydlów";
+      SF Pl Dat => x + "rydlom";
+      SF Pl Acc => x + "rydlów";
+      SF Pl Instr => x + "rydlami";
+      SF Pl Loc => x + "rydlach";
+      SF Pl Voc => x + "Rydlowie"
+    };
+
+    oper mkNTable0753: Str -> SubstForm => Str; --%
+    oper mkNTable0753 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Rysio";
+      SF Sg Gen => x + "rysia";
+      SF Sg Dat => x + "rysiowi";
+      SF Sg Acc => x + "rysia";
+      SF Sg Instr => x + "rysiem";
+      SF Sg Loc => x + "rysiu";
+      SF Sg Voc => x + "rysiu";
+      SF Pl Nom => x + "Rysiowie";
+      SF Pl Gen => x + "rysiów";
+      SF Pl Dat => x + "rysiom";
+      SF Pl Acc => x + "rysiów";
+      SF Pl Instr => x + "rysiami";
+      SF Pl Loc => x + "rysiach";
+      SF Pl Voc => x + "Rysiowie"
+    };
+
+    oper mkNTable0754: Str -> SubstForm => Str; --%
+    oper mkNTable0754 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "sabin";
+      SF Sg Gen => x + "sabina";
+      SF Sg Dat => x + "sabinowi";
+      SF Sg Acc => x + "sabina";
+      SF Sg Instr => x + "sabinem";
+      SF Sg Loc => x + "sabinie";
+      SF Sg Voc => x + "sabinie";
+      SF Pl Nom => x + "Sabinowie";
+      SF Pl Gen => x + "sabinów";
+      SF Pl Dat => x + "sabinom";
+      SF Pl Acc => x + "sabinów";
+      SF Pl Instr => x + "sabinami";
+      SF Pl Loc => x + "sabinach";
+      SF Pl Voc => x + "Sabinowie"
+    };
+
+    oper mkNTable0755: Str -> SubstForm => Str; --%
+    oper mkNTable0755 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sabina";
+      SF Sg Gen => x + "sabiny";
+      SF Sg Dat => x + "sabinie";
+      SF Sg Acc => x + "Sabinę";
+      SF Sg Instr => x + "Sabiną";
+      SF Sg Loc => x + "sabinie";
+      SF Sg Voc => x + "Sabino";
+      SF Pl Nom => x + "sabiny";
+      SF Pl Gen => x + "sabin";
+      SF Pl Dat => x + "sabinom";
+      SF Pl Acc => x + "sabiny";
+      SF Pl Instr => x + "sabinami";
+      SF Pl Loc => x + "sabinach";
+      SF Pl Voc => x + "sabiny"
+    };
+
+    oper mkNTable0757: Str -> SubstForm => Str; --%
+    oper mkNTable0757 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sam";
+      SF Sg Gen => x + "Sama";
+      SF Sg Dat => x + "samowi";
+      SF Sg Acc => x + "Sama";
+      SF Sg Instr => x + "samem";
+      SF Sg Loc => x + "samie";
+      SF Sg Voc => x + "samie";
+      SF Pl Nom => x + "Samowie";
+      SF Pl Gen => x + "samów";
+      SF Pl Dat => x + "samom";
+      SF Pl Acc => x + "samów";
+      SF Pl Instr => x + "samami";
+      SF Pl Loc => x + "samach";
+      SF Pl Voc => x + "Samowie"
+    };
+
+    oper mkNTable0759: Str -> SubstForm => Str; --%
+    oper mkNTable0759 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "samojed";
+      SF Sg Gen => x + "samojeda";
+      SF Sg Dat => x + "samojedowi";
+      SF Sg Acc => x + "samojeda";
+      SF Sg Instr => x + "samojedem";
+      SF Sg Loc => x + "samojedzie";
+      SF Sg Voc => x + "samojedzie";
+      SF Pl Nom => x + "Samojedzi";
+      SF Pl Gen => x + "samojedów";
+      SF Pl Dat => x + "samojedom";
+      SF Pl Acc => x + "samojedów";
+      SF Pl Instr => x + "samojedami";
+      SF Pl Loc => x + "samojedach";
+      SF Pl Voc => x + "Samojedzi"
+    };
+
+    oper mkNTable0760: Str -> SubstForm => Str; --%
+    oper mkNTable0760 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "san";
+      SF Sg Gen => x + "Sanu";
+      SF Sg Dat => x + "sanowi";
+      SF Sg Acc => x + "san";
+      SF Sg Instr => x + "sanem";
+      SF Sg Loc => x + "sanie";
+      SF Sg Voc => x + "sanie";
+      SF Pl Nom => x + "sany";
+      SF Pl Gen => x + "sanów";
+      SF Pl Dat => x + "sanom";
+      SF Pl Acc => x + "sany";
+      SF Pl Instr => x + "sanami";
+      SF Pl Loc => x + "sanach";
+      SF Pl Voc => x + "sany"
+    };
+
+    oper mkNTable0761: Str -> SubstForm => Str; --%
+    oper mkNTable0761 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Sandra";
+      SF Sg Gen => x + "sandry";
+      SF Sg Dat => x + "sandrze";
+      SF Sg Acc => x + "Sandrę";
+      SF Sg Instr => x + "Sandrą";
+      SF Sg Loc => x + "sandrze";
+      SF Sg Voc => x + "Sandro";
+      SF Pl Nom => x + "sandry";
+      SF Pl Gen => x + "sandr";
+      SF Pl Dat => x + "sandrom";
+      SF Pl Acc => x + "sandry";
+      SF Pl Instr => x + "sandrami";
+      SF Pl Loc => x + "sandrach";
+      SF Pl Voc => x + "sandry"
+    };
+
+    oper mkNTable0762: Str -> SubstForm => Str; --%
+    oper mkNTable0762 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Santi";
+      SF Sg Gen => x + "Santiego";
+      SF Sg Dat => x + "Santiemu";
+      SF Sg Acc => x + "Santiego";
+      SF Sg Instr => x + "santim";
+      SF Sg Loc => x + "santim";
+      SF Sg Voc => x + "Santi";
+      SF Pl Nom => x + "Santi";
+      SF Pl Gen => x + "Santich";
+      SF Pl Dat => x + "santim";
+      SF Pl Acc => x + "Santich";
+      SF Pl Instr => x + "Santimi";
+      SF Pl Loc => x + "Santich";
+      SF Pl Voc => x + "Santi"
+    };
+
+    oper mkNTable0763: Str -> SubstForm => Str; --%
+    oper mkNTable0763 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ha";
+      SF Sg Gen => x + "hy";
+      SF Sg Dat => x + "że";
+      SF Sg Acc => x + "hę";
+      SF Sg Instr => x + "hą";
+      SF Sg Loc => x + "że";
+      SF Sg Voc => x + "ho";
+      SF Pl Nom => x + "howie";
+      SF Pl Gen => x + "hów";
+      SF Pl Dat => x + "hom";
+      SF Pl Acc => x + "hów";
+      SF Pl Instr => x + "hami";
+      SF Pl Loc => x + "hach";
+      SF Pl Voc => x + "howie"
+    };
+
+    oper mkNTable0764: Str -> SubstForm => Str; --%
+    oper mkNTable0764 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Saracen";
+      SF Sg Gen => x + "Saracena";
+      SF Sg Dat => x + "Saracenowi";
+      SF Sg Acc => x + "Saracena";
+      SF Sg Instr => x + "Saracenem";
+      SF Sg Loc => x + "saracenie";
+      SF Sg Voc => x + "saracenie";
+      SF Pl Nom => x + "Saraceni";
+      SF Pl Gen => x + "Saracenów";
+      SF Pl Dat => x + "Saracenom";
+      SF Pl Acc => x + "Saracenów";
+      SF Pl Instr => x + "Saracenami";
+      SF Pl Loc => x + "Saracenach";
+      SF Pl Voc => x + "Saraceni"
+    };
+
+    oper mkNTable0765: Str -> SubstForm => Str; --%
+    oper mkNTable0765 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sas";
+      SF Sg Gen => x + "sasa";
+      SF Sg Dat => x + "sasowi";
+      SF Sg Acc => x + "sasa";
+      SF Sg Instr => x + "sasem";
+      SF Sg Loc => x + "sasie";
+      SF Sg Voc => x + "sasie";
+      SF Pl Nom => x + "Sasi";
+      SF Pl Gen => x + "sasów";
+      SF Pl Dat => x + "sasom";
+      SF Pl Acc => x + "sasów";
+      SF Pl Instr => x + "sasami";
+      SF Pl Loc => x + "sasach";
+      SF Pl Voc => x + "Sasi"
+    };
+
+    oper mkNTable0766: Str -> SubstForm => Str; --%
+    oper mkNTable0766 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "serafina";
+      SF Sg Gen => x + "serafiny";
+      SF Sg Dat => x + "serafinie";
+      SF Sg Acc => x + "Serafinę";
+      SF Sg Instr => x + "Serafiną";
+      SF Sg Loc => x + "serafinie";
+      SF Sg Voc => x + "Serafino";
+      SF Pl Nom => x + "serafiny";
+      SF Pl Gen => x + "serafin";
+      SF Pl Dat => x + "serafinom";
+      SF Pl Acc => x + "serafiny";
+      SF Pl Instr => x + "serafinami";
+      SF Pl Loc => x + "serafinach";
+      SF Pl Voc => x + "serafiny"
+    };
+
+    oper mkNTable0768: Str -> SubstForm => Str; --%
+    oper mkNTable0768 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Sica";
+      SF Sg Gen => x + "siki";
+      SF Sg Dat => x + "sice";
+      SF Sg Acc => x + "Sicę";
+      SF Sg Instr => x + "Sicą";
+      SF Sg Loc => x + "sice";
+      SF Sg Voc => x + "Sico";
+      SF Pl Nom => x + "Sicowie";
+      SF Pl Gen => x + "Siców";
+      SF Pl Dat => x + "Sicom";
+      SF Pl Acc => x + "Siców";
+      SF Pl Instr => x + "Sicami";
+      SF Pl Loc => x + "Sicach";
+      SF Pl Voc => x + "Sicowie"
+    };
+
+    oper mkNTable0771: Str -> SubstForm => Str; --%
+    oper mkNTable0771 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sikora";
+      SF Sg Gen => x + "sikory";
+      SF Sg Dat => x + "sikorze";
+      SF Sg Acc => x + "sikorę";
+      SF Sg Instr => x + "sikorą";
+      SF Sg Loc => x + "sikorze";
+      SF Sg Voc => x + "sikoro";
+      SF Pl Nom => x + "Sikorowie";
+      SF Pl Gen => x + "Sikorów";
+      SF Pl Dat => x + "sikorom";
+      SF Pl Acc => x + "Sikorów";
+      SF Pl Instr => x + "sikorami";
+      SF Pl Loc => x + "sikorach";
+      SF Pl Voc => x + "Sikorowie"
+    };
+
+    oper mkNTable0772: Str -> SubstForm => Str; --%
+    oper mkNTable0772 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "singer";
+      SF Sg Gen => x + "singera";
+      SF Sg Dat => x + "singerowi";
+      SF Sg Acc => x + "singera";
+      SF Sg Instr => x + "singerem";
+      SF Sg Loc => x + "singerze";
+      SF Sg Voc => x + "singerze";
+      SF Pl Nom => x + "Singerowie";
+      SF Pl Gen => x + "singerów";
+      SF Pl Dat => x + "singerom";
+      SF Pl Acc => x + "singerów";
+      SF Pl Instr => x + "singerami";
+      SF Pl Loc => x + "singerach";
+      SF Pl Voc => x + "Singerowie"
+    };
+
+    oper mkNTable0773: Str -> SubstForm => Str; --%
+    oper mkNTable0773 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "siwek";
+      SF Sg Gen => x + "siwka";
+      SF Sg Dat => x + "siwkowi";
+      SF Sg Acc => x + "siwka";
+      SF Sg Instr => x + "siwkiem";
+      SF Sg Loc => x + "siwku";
+      SF Sg Voc => x + "siwku";
+      SF Pl Nom => x + "Siwkowie";
+      SF Pl Gen => x + "siwków";
+      SF Pl Dat => x + "siwkom";
+      SF Pl Acc => x + "siwków";
+      SF Pl Instr => x + "siwkami";
+      SF Pl Loc => x + "siwkach";
+      SF Pl Voc => x + "Siwkowie"
+    };
+
+    oper mkNTable0774: Str -> SubstForm => Str; --%
+    oper mkNTable0774 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ek";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0775: Str -> SubstForm => Str; --%
+    oper mkNTable0775 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "siwiec";
+      SF Sg Gen => x + "siwca";
+      SF Sg Dat => x + "siwcowi";
+      SF Sg Acc => x + "siwca";
+      SF Sg Instr => x + "siwcem";
+      SF Sg Loc => x + "siwcu";
+      SF Sg Voc => x + "siwcu";
+      SF Pl Nom => x + "Siwcowie";
+      SF Pl Gen => x + "siwców";
+      SF Pl Dat => x + "siwcom";
+      SF Pl Acc => x + "siwców";
+      SF Pl Instr => x + "siwcami";
+      SF Pl Loc => x + "siwcach";
+      SF Pl Voc => x + "Siwcowie"
+    };
+
+    oper mkNTable0778: Str -> SubstForm => Str; --%
+    oper mkNTable0778 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "skarga";
+      SF Sg Gen => x + "skargi";
+      SF Sg Dat => x + "skardze";
+      SF Sg Acc => x + "skargę";
+      SF Sg Instr => x + "skargą";
+      SF Sg Loc => x + "skardze";
+      SF Sg Voc => x + "skargo";
+      SF Pl Nom => x + "Skargowie";
+      SF Pl Gen => x + "Skargów";
+      SF Pl Dat => x + "skargom";
+      SF Pl Acc => x + "Skargów";
+      SF Pl Instr => x + "skargami";
+      SF Pl Loc => x + "skargach";
+      SF Pl Voc => x + "Skargowie"
+    };
+
+    oper mkNTable0779: Str -> SubstForm => Str; --%
+    oper mkNTable0779 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "skiba";
+      SF Sg Gen => x + "skiby";
+      SF Sg Dat => x + "skibie";
+      SF Sg Acc => x + "skibę";
+      SF Sg Instr => x + "skibą";
+      SF Sg Loc => x + "skibie";
+      SF Sg Voc => x + "skibo";
+      SF Pl Nom => x + "Skibowie";
+      SF Pl Gen => x + "Skibów";
+      SF Pl Dat => x + "skibom";
+      SF Pl Acc => x + "Skibów";
+      SF Pl Instr => x + "skibami";
+      SF Pl Loc => x + "skibach";
+      SF Pl Voc => x + "Skibowie"
+    };
+
+    oper mkNTable0780: Str -> SubstForm => Str; --%
+    oper mkNTable0780 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "e";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "e";
+      SF Pl Dat => x + "e";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0781: Str -> SubstForm => Str; --%
+    oper mkNTable0781 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "skorupka";
+      SF Sg Gen => x + "skorupki";
+      SF Sg Dat => x + "skorupce";
+      SF Sg Acc => x + "skorupkę";
+      SF Sg Instr => x + "skorupką";
+      SF Sg Loc => x + "skorupce";
+      SF Sg Voc => x + "skorupko";
+      SF Pl Nom => x + "Skorupkowie";
+      SF Pl Gen => x + "skorupek";
+      SF Pl Dat => x + "skorupkom";
+      SF Pl Acc => x + "skorupek";
+      SF Pl Instr => x + "skorupkami";
+      SF Pl Loc => x + "skorupkach";
+      SF Pl Voc => x + "Skorupkowie"
+    };
+
+    oper mkNTable0782: Str -> SubstForm => Str; --%
+    oper mkNTable0782 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "skowronek";
+      SF Sg Gen => x + "skowronka";
+      SF Sg Dat => x + "skowronkowi";
+      SF Sg Acc => x + "skowronka";
+      SF Sg Instr => x + "skowronkiem";
+      SF Sg Loc => x + "skowronku";
+      SF Sg Voc => x + "skowronku";
+      SF Pl Nom => x + "Skowronkowie";
+      SF Pl Gen => x + "skowronków";
+      SF Pl Dat => x + "skowronkom";
+      SF Pl Acc => x + "skowronków";
+      SF Pl Instr => x + "skowronkami";
+      SF Pl Loc => x + "skowronkach";
+      SF Pl Voc => x + "Skowronkowie"
+    };
+
+    oper mkNTable0784: Str -> SubstForm => Str; --%
+    oper mkNTable0784 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "soból";
+      SF Sg Gen => x + "sobola";
+      SF Sg Dat => x + "sobolowi";
+      SF Sg Acc => x + "sobola";
+      SF Sg Instr => x + "sobolem";
+      SF Sg Loc => x + "sobolu";
+      SF Sg Voc => x + "sobolu";
+      SF Pl Nom => x + "Sobolowie";
+      SF Pl Gen => x + "soboli";
+      SF Pl Dat => x + "sobolom";
+      SF Pl Acc => x + "soboli";
+      SF Pl Instr => x + "sobolami";
+      SF Pl Loc => x + "sobolach";
+      SF Pl Voc => x + "Sobolowie"
+    };
+
+    oper mkNTable0785: Str -> SubstForm => Str; --%
+    oper mkNTable0785 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "socha";
+      SF Sg Gen => x + "sochy";
+      SF Sg Dat => x + "sosze";
+      SF Sg Acc => x + "sochę";
+      SF Sg Instr => x + "sochą";
+      SF Sg Loc => x + "sosze";
+      SF Sg Voc => x + "socho";
+      SF Pl Nom => x + "Sochowie";
+      SF Pl Gen => x + "Sochów";
+      SF Pl Dat => x + "sochom";
+      SF Pl Acc => x + "Sochów";
+      SF Pl Instr => x + "sochami";
+      SF Pl Loc => x + "sochach";
+      SF Pl Voc => x + "Sochowie"
+    };
+
+    oper mkNTable0787: Str -> SubstForm => Str; --%
+    oper mkNTable0787 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "solana";
+      SF Sg Gen => x + "Solany";
+      SF Sg Dat => x + "solanie";
+      SF Sg Acc => x + "Solanę";
+      SF Sg Instr => x + "Solaną";
+      SF Sg Loc => x + "solanie";
+      SF Sg Voc => x + "solano";
+      SF Pl Nom => x + "Solanowie";
+      SF Pl Gen => x + "Solanów";
+      SF Pl Dat => x + "solanom";
+      SF Pl Acc => x + "Solanów";
+      SF Pl Instr => x + "solanami";
+      SF Pl Loc => x + "solanach";
+      SF Pl Voc => x + "Solanowie"
+    };
+
+    oper mkNTable0788: Str -> SubstForm => Str; --%
+    oper mkNTable0788 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "sowa";
+      SF Sg Gen => x + "sowy";
+      SF Sg Dat => x + "sowie";
+      SF Sg Acc => x + "sowę";
+      SF Sg Instr => x + "sową";
+      SF Sg Loc => x + "sowie";
+      SF Sg Voc => x + "sowo";
+      SF Pl Nom => x + "Sowowie";
+      SF Pl Gen => x + "Sowów";
+      SF Pl Dat => x + "sowom";
+      SF Pl Acc => x + "Sowów";
+      SF Pl Instr => x + "sowami";
+      SF Pl Loc => x + "sowach";
+      SF Pl Voc => x + "Sowowie"
+    };
+
+    oper mkNTable0789: Str -> SubstForm => Str; --%
+    oper mkNTable0789 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "spencer";
+      SF Sg Gen => x + "spencera";
+      SF Sg Dat => x + "spencerowi";
+      SF Sg Acc => x + "spencera";
+      SF Sg Instr => x + "spencerem";
+      SF Sg Loc => x + "spencerze";
+      SF Sg Voc => x + "spencerze";
+      SF Pl Nom => x + "Spencerowie";
+      SF Pl Gen => x + "spencerów";
+      SF Pl Dat => x + "spencerom";
+      SF Pl Acc => x + "spencerów";
+      SF Pl Instr => x + "spencerami";
+      SF Pl Loc => x + "spencerach";
+      SF Pl Voc => x + "Spencerowie"
+    };
+
+    oper mkNTable0791: Str -> SubstForm => Str; --%
+    oper mkNTable0791 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "sroka";
+      SF Sg Gen => x + "sroki";
+      SF Sg Dat => x + "sroce";
+      SF Sg Acc => x + "srokę";
+      SF Sg Instr => x + "sroką";
+      SF Sg Loc => x + "sroce";
+      SF Sg Voc => x + "sroko";
+      SF Pl Nom => x + "Srokowie";
+      SF Pl Gen => x + "Sroków";
+      SF Pl Dat => x + "srokom";
+      SF Pl Acc => x + "Sroków";
+      SF Pl Instr => x + "srokami";
+      SF Pl Loc => x + "srokach";
+      SF Pl Voc => x + "Srokowie"
+    };
+
+    oper mkNTable0792: Str -> SubstForm => Str; --%
+    oper mkNTable0792 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Starr";
+      SF Sg Gen => x + "Starra";
+      SF Sg Dat => x + "Starrowi";
+      SF Sg Acc => x + "Starra";
+      SF Sg Instr => x + "Starrem";
+      SF Sg Loc => x + "starze";
+      SF Sg Voc => x + "starze";
+      SF Pl Nom => x + "Starrowie";
+      SF Pl Gen => x + "Starrów";
+      SF Pl Dat => x + "Starrom";
+      SF Pl Acc => x + "Starrów";
+      SF Pl Instr => x + "Starrami";
+      SF Pl Loc => x + "Starrach";
+      SF Pl Voc => x + "Starrowie"
+    };
+
+    oper mkNTable0793: Str -> SubstForm => Str; --%
+    oper mkNTable0793 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0794: Str -> SubstForm => Str; --%
+    oper mkNTable0794 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "stefanek";
+      SF Sg Gen => x + "stefanka";
+      SF Sg Dat => x + "Stefankowi";
+      SF Sg Acc => x + "stefanka";
+      SF Sg Instr => x + "Stefankiem";
+      SF Sg Loc => x + "Stefanku";
+      SF Sg Voc => x + "Stefanku";
+      SF Pl Nom => x + "Stefankowie";
+      SF Pl Gen => x + "Stefanków";
+      SF Pl Dat => x + "stefankom";
+      SF Pl Acc => x + "Stefanków";
+      SF Pl Instr => x + "stefankami";
+      SF Pl Loc => x + "stefankach";
+      SF Pl Voc => x + "Stefankowie"
+    };
+
+    oper mkNTable0796: Str -> SubstForm => Str; --%
+    oper mkNTable0796 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Stenia";
+      SF Sg Gen => x + "Steni";
+      SF Sg Dat => x + "Steni";
+      SF Sg Acc => x + "Stenię";
+      SF Sg Instr => x + "Stenią";
+      SF Sg Loc => x + "Steni";
+      SF Sg Voc => x + "Steniu";
+      SF Pl Nom => x + "stenie";
+      SF Pl Gen => x + "Steń";
+      SF Pl Dat => x + "Steniom";
+      SF Pl Acc => x + "stenie";
+      SF Pl Instr => x + "Steniami";
+      SF Pl Loc => x + "Steniach";
+      SF Pl Voc => x + "stenie"
+    };
+
+    oper mkNTable0797: Str -> SubstForm => Str; --%
+    oper mkNTable0797 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "stojan";
+      SF Sg Gen => x + "stojana";
+      SF Sg Dat => x + "stojanowi";
+      SF Sg Acc => x + "stojana";
+      SF Sg Instr => x + "stojanem";
+      SF Sg Loc => x + "stojanie";
+      SF Sg Voc => x + "stojanie";
+      SF Pl Nom => x + "Stojanowie";
+      SF Pl Gen => x + "stojanów";
+      SF Pl Dat => x + "stojanom";
+      SF Pl Acc => x + "stojanów";
+      SF Pl Instr => x + "stojanami";
+      SF Pl Loc => x + "stojanach";
+      SF Pl Voc => x + "Stojanowie"
+    };
+
+    oper mkNTable0799: Str -> SubstForm => Str; --%
+    oper mkNTable0799 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "strug";
+      SF Sg Gen => x + "struga";
+      SF Sg Dat => x + "strugowi";
+      SF Sg Acc => x + "struga";
+      SF Sg Instr => x + "strugiem";
+      SF Sg Loc => x + "strugu";
+      SF Sg Voc => x + "strugu";
+      SF Pl Nom => x + "Strugowie";
+      SF Pl Gen => x + "strugów";
+      SF Pl Dat => x + "strugom";
+      SF Pl Acc => x + "strugów";
+      SF Pl Instr => x + "strugami";
+      SF Pl Loc => x + "strugach";
+      SF Pl Voc => x + "Strugowie"
+    };
+
+    oper mkNTable0801: Str -> SubstForm => Str; --%
+    oper mkNTable0801 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cze";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable0802: Str -> SubstForm => Str; --%
+    oper mkNTable0802 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "syjam";
+      SF Sg Gen => x + "Syjamu";
+      SF Sg Dat => x + "syjamowi";
+      SF Sg Acc => x + "syjam";
+      SF Sg Instr => x + "syjamem";
+      SF Sg Loc => x + "syjamie";
+      SF Sg Voc => x + "syjamie";
+      SF Pl Nom => x + "syjamy";
+      SF Pl Gen => x + "syjamów";
+      SF Pl Dat => x + "syjamom";
+      SF Pl Acc => x + "syjamy";
+      SF Pl Instr => x + "syjamami";
+      SF Pl Loc => x + "syjamach";
+      SF Pl Voc => x + "syjamy"
+    };
+
+    oper mkNTable0803: Str -> SubstForm => Str; --%
+    oper mkNTable0803 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sylwek";
+      SF Sg Gen => x + "sylwka";
+      SF Sg Dat => x + "sylwkowi";
+      SF Sg Acc => x + "sylwka";
+      SF Sg Instr => x + "sylwkiem";
+      SF Sg Loc => x + "sylwku";
+      SF Sg Voc => x + "sylwku";
+      SF Pl Nom => x + "Sylwkowie";
+      SF Pl Gen => x + "sylwków";
+      SF Pl Dat => x + "sylwkom";
+      SF Pl Acc => x + "sylwków";
+      SF Pl Instr => x + "sylwkami";
+      SF Pl Loc => x + "sylwkach";
+      SF Pl Voc => x + "Sylwkowie"
+    };
+
+    oper mkNTable0804: Str -> SubstForm => Str; --%
+    oper mkNTable0804 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "sylwester";
+      SF Sg Gen => x + "sylwestra";
+      SF Sg Dat => x + "sylwestrowi";
+      SF Sg Acc => x + "sylwestra";
+      SF Sg Instr => x + "sylwestrem";
+      SF Sg Loc => x + "sylwestrze";
+      SF Sg Voc => x + "sylwestrze";
+      SF Pl Nom => x + "Sylwestrowie";
+      SF Pl Gen => x + "sylwestrów";
+      SF Pl Dat => x + "sylwestrom";
+      SF Pl Acc => x + "sylwestrów";
+      SF Pl Instr => x + "sylwestrami";
+      SF Pl Loc => x + "sylwestrach";
+      SF Pl Voc => x + "Sylwestrowie"
+    };
+
+    oper mkNTable0805: Str -> SubstForm => Str; --%
+    oper mkNTable0805 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Sylwia";
+      SF Sg Gen => x + "Sylwii";
+      SF Sg Dat => x + "Sylwii";
+      SF Sg Acc => x + "Sylwię";
+      SF Sg Instr => x + "Sylwią";
+      SF Sg Loc => x + "Sylwii";
+      SF Sg Voc => x + "Sylwio";
+      SF Pl Nom => x + "sylwie";
+      SF Pl Gen => x + "Sylwii";
+      SF Pl Dat => x + "Sylwiom";
+      SF Pl Acc => x + "sylwie";
+      SF Pl Instr => x + "Sylwiami";
+      SF Pl Loc => x + "Sylwiach";
+      SF Pl Voc => x + "sylwie"
+    };
+
+    oper mkNTable0806: Str -> SubstForm => Str; --%
+    oper mkNTable0806 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sylwin";
+      SF Sg Gen => x + "Sylwina";
+      SF Sg Dat => x + "sylwinowi";
+      SF Sg Acc => x + "Sylwina";
+      SF Sg Instr => x + "sylwinem";
+      SF Sg Loc => x + "sylwinie";
+      SF Sg Voc => x + "sylwinie";
+      SF Pl Nom => x + "Sylwinowie";
+      SF Pl Gen => x + "sylwinów";
+      SF Pl Dat => x + "sylwinom";
+      SF Pl Acc => x + "sylwinów";
+      SF Pl Instr => x + "sylwinami";
+      SF Pl Loc => x + "sylwinach";
+      SF Pl Voc => x + "Sylwinowie"
+    };
+
+    oper mkNTable0807: Str -> SubstForm => Str; --%
+    oper mkNTable0807 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "szabat";
+      SF Sg Gen => x + "Szabata";
+      SF Sg Dat => x + "szabatowi";
+      SF Sg Acc => x + "Szabata";
+      SF Sg Instr => x + "szabatem";
+      SF Sg Loc => x + "szabacie";
+      SF Sg Voc => x + "szabacie";
+      SF Pl Nom => x + "Szabatowie";
+      SF Pl Gen => x + "szabatów";
+      SF Pl Dat => x + "szabatom";
+      SF Pl Acc => x + "szabatów";
+      SF Pl Instr => x + "szabatami";
+      SF Pl Loc => x + "szabatach";
+      SF Pl Voc => x + "Szabatowie"
+    };
+
+    oper mkNTable0808: Str -> SubstForm => Str; --%
+    oper mkNTable0808 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cha";
+      SF Sg Gen => x + "chy";
+      SF Sg Dat => x + "sze";
+      SF Sg Acc => x + "chę";
+      SF Sg Instr => x + "chą";
+      SF Sg Loc => x + "sze";
+      SF Sg Voc => x + "cho";
+      SF Pl Nom => x + "chowie";
+      SF Pl Gen => x + "chów";
+      SF Pl Dat => x + "chom";
+      SF Pl Acc => x + "chów";
+      SF Pl Instr => x + "chami";
+      SF Pl Loc => x + "chach";
+      SF Pl Voc => x + "chowie"
+    };
+
+    oper mkNTable0809: Str -> SubstForm => Str; --%
+    oper mkNTable0809 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "szarek";
+      SF Sg Gen => x + "szarka";
+      SF Sg Dat => x + "Szarkowi";
+      SF Sg Acc => x + "szarka";
+      SF Sg Instr => x + "Szarkiem";
+      SF Sg Loc => x + "Szarku";
+      SF Sg Voc => x + "Szarku";
+      SF Pl Nom => x + "Szarkowie";
+      SF Pl Gen => x + "Szarków";
+      SF Pl Dat => x + "szarkom";
+      SF Pl Acc => x + "Szarków";
+      SF Pl Instr => x + "szarkami";
+      SF Pl Loc => x + "szarkach";
+      SF Pl Voc => x + "Szarkowie"
+    };
+
+    oper mkNTable0810: Str -> SubstForm => Str; --%
+    oper mkNTable0810 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "szczepek";
+      SF Sg Gen => x + "szczepka";
+      SF Sg Dat => x + "szczepkowi";
+      SF Sg Acc => x + "szczepka";
+      SF Sg Instr => x + "szczepkiem";
+      SF Sg Loc => x + "szczepku";
+      SF Sg Voc => x + "szczepku";
+      SF Pl Nom => x + "Szczepkowie";
+      SF Pl Gen => x + "szczepków";
+      SF Pl Dat => x + "szczepkom";
+      SF Pl Acc => x + "szczepków";
+      SF Pl Instr => x + "szczepkami";
+      SF Pl Loc => x + "szczepkach";
+      SF Pl Voc => x + "Szczepkowie"
+    };
+
+    oper mkNTable0811: Str -> SubstForm => Str; --%
+    oper mkNTable0811 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "szczygieł";
+      SF Sg Gen => x + "szczygła";
+      SF Sg Dat => x + "szczygłowi";
+      SF Sg Acc => x + "szczygła";
+      SF Sg Instr => x + "szczygłem";
+      SF Sg Loc => x + "szczygle";
+      SF Sg Voc => x + "szczygle";
+      SF Pl Nom => x + "Szczygłowie";
+      SF Pl Gen => x + "szczygłów";
+      SF Pl Dat => x + "szczygłom";
+      SF Pl Acc => x + "szczygłów";
+      SF Pl Instr => x + "szczygłami";
+      SF Pl Loc => x + "szczygłach";
+      SF Pl Voc => x + "Szczygłowie"
+    };
+
+    oper mkNTable0812: Str -> SubstForm => Str; --%
+    oper mkNTable0812 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "szkot";
+      SF Sg Gen => x + "szkota";
+      SF Sg Dat => x + "szkotowi";
+      SF Sg Acc => x + "szkota";
+      SF Sg Instr => x + "szkotem";
+      SF Sg Loc => x + "szkocie";
+      SF Sg Voc => x + "szkocie";
+      SF Pl Nom => x + "Szkoci";
+      SF Pl Gen => x + "szkotów";
+      SF Pl Dat => x + "szkotom";
+      SF Pl Acc => x + "szkotów";
+      SF Pl Instr => x + "szkotami";
+      SF Pl Loc => x + "szkotach";
+      SF Pl Voc => x + "Szkoci"
+    };
+
+    oper mkNTable0813: Str -> SubstForm => Str; --%
+    oper mkNTable0813 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "szmaja";
+      SF Sg Gen => x + "szmai";
+      SF Sg Dat => x + "szmai";
+      SF Sg Acc => x + "szmaję";
+      SF Sg Instr => x + "szmają";
+      SF Sg Loc => x + "szmai";
+      SF Sg Voc => x + "szmajo";
+      SF Pl Nom => x + "Szmajowie";
+      SF Pl Gen => x + "szmajów";
+      SF Pl Dat => x + "szmajom";
+      SF Pl Acc => x + "szmajów";
+      SF Pl Instr => x + "szmajami";
+      SF Pl Loc => x + "szmajach";
+      SF Pl Voc => x + "Szmajowie"
+    };
+
+    oper mkNTable0814: Str -> SubstForm => Str; --%
+    oper mkNTable0814 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "szopen";
+      SF Sg Gen => x + "szopena";
+      SF Sg Dat => x + "szopenowi";
+      SF Sg Acc => x + "szopena";
+      SF Sg Instr => x + "szopenem";
+      SF Sg Loc => x + "szopenie";
+      SF Sg Voc => x + "szopenie";
+      SF Pl Nom => x + "Szopenowie";
+      SF Pl Gen => x + "szopenów";
+      SF Pl Dat => x + "szopenom";
+      SF Pl Acc => x + "szopenów";
+      SF Pl Instr => x + "szopenami";
+      SF Pl Loc => x + "szopenach";
+      SF Pl Voc => x + "Szopenowie"
+    };
+
+    oper mkNTable0815: Str -> SubstForm => Str; --%
+    oper mkNTable0815 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sztuka";
+      SF Sg Gen => x + "sztuki";
+      SF Sg Dat => x + "sztuce";
+      SF Sg Acc => x + "sztukę";
+      SF Sg Instr => x + "sztuką";
+      SF Sg Loc => x + "sztuce";
+      SF Sg Voc => x + "sztuko";
+      SF Pl Nom => x + "Sztukowie";
+      SF Pl Gen => x + "Sztuków";
+      SF Pl Dat => x + "sztukom";
+      SF Pl Acc => x + "Sztuków";
+      SF Pl Instr => x + "sztukami";
+      SF Pl Loc => x + "sztukach";
+      SF Pl Voc => x + "Sztukowie"
+    };
+
+    oper mkNTable0816: Str -> SubstForm => Str; --%
+    oper mkNTable0816 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "szwab";
+      SF Sg Gen => x + "szwaba";
+      SF Sg Dat => x + "szwabowi";
+      SF Sg Acc => x + "szwaba";
+      SF Sg Instr => x + "szwabem";
+      SF Sg Loc => x + "szwabie";
+      SF Sg Voc => x + "szwabie";
+      SF Pl Nom => x + "Szwabowie";
+      SF Pl Gen => x + "szwabów";
+      SF Pl Dat => x + "szwabom";
+      SF Pl Acc => x + "szwabów";
+      SF Pl Instr => x + "szwabami";
+      SF Pl Loc => x + "szwabach";
+      SF Pl Voc => x + "Szwabowie"
+    };
+
+    oper mkNTable0817: Str -> SubstForm => Str; --%
+    oper mkNTable0817 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "szwed";
+      SF Sg Gen => x + "szweda";
+      SF Sg Dat => x + "szwedowi";
+      SF Sg Acc => x + "szweda";
+      SF Sg Instr => x + "szwedem";
+      SF Sg Loc => x + "szwedzie";
+      SF Sg Voc => x + "szwedzie";
+      SF Pl Nom => x + "Szwedzi";
+      SF Pl Gen => x + "szwedów";
+      SF Pl Dat => x + "szwedom";
+      SF Pl Acc => x + "szwedów";
+      SF Pl Instr => x + "szwedami";
+      SF Pl Loc => x + "szwedach";
+      SF Pl Voc => x + "Szwedzi"
+    };
+
+    oper mkNTable0818: Str -> SubstForm => Str; --%
+    oper mkNTable0818 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "szyszko";
+      SF Sg Gen => x + "szyszki";
+      SF Sg Dat => x + "szyszce";
+      SF Sg Acc => x + "szyszkę";
+      SF Sg Instr => x + "szyszką";
+      SF Sg Loc => x + "szyszce";
+      SF Sg Voc => x + "szyszko";
+      SF Pl Nom => x + "Szyszkowie";
+      SF Pl Gen => x + "Szyszków";
+      SF Pl Dat => x + "szyszkom";
+      SF Pl Acc => x + "Szyszków";
+      SF Pl Instr => x + "szyszkami";
+      SF Pl Loc => x + "szyszkach";
+      SF Pl Voc => x + "Szyszkowie"
+    };
+
+    oper mkNTable0819: Str -> SubstForm => Str; --%
+    oper mkNTable0819 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "słowik";
+      SF Sg Gen => x + "słowika";
+      SF Sg Dat => x + "słowikowi";
+      SF Sg Acc => x + "słowika";
+      SF Sg Instr => x + "słowikiem";
+      SF Sg Loc => x + "słowiku";
+      SF Sg Voc => x + "słowiku";
+      SF Pl Nom => x + "Słowikowie";
+      SF Pl Gen => x + "słowików";
+      SF Pl Dat => x + "słowikom";
+      SF Pl Acc => x + "słowików";
+      SF Pl Instr => x + "słowikami";
+      SF Pl Loc => x + "słowikach";
+      SF Pl Voc => x + "Słowikowie"
+    };
+
+    oper mkNTable0820: Str -> SubstForm => Str; --%
+    oper mkNTable0820 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oja";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "oja";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "ojowie";
+      SF Pl Gen => x + "ojów";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "ojów";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "ojowie"
+    };
+
+    oper mkNTable0821: Str -> SubstForm => Str; --%
+    oper mkNTable0821 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sęp";
+      SF Sg Gen => x + "sępa";
+      SF Sg Dat => x + "sępowi";
+      SF Sg Acc => x + "sępa";
+      SF Sg Instr => x + "sępem";
+      SF Sg Loc => x + "sępie";
+      SF Sg Voc => x + "sępie";
+      SF Pl Nom => x + "Sępowie";
+      SF Pl Gen => x + "sępów";
+      SF Pl Dat => x + "sępom";
+      SF Pl Acc => x + "sępów";
+      SF Pl Instr => x + "sępami";
+      SF Pl Loc => x + "sępach";
+      SF Pl Voc => x + "Sępowie"
+    };
+
+    oper mkNTable0822: Str -> SubstForm => Str; --%
+    oper mkNTable0822 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "taras";
+      SF Sg Gen => x + "Tarasa";
+      SF Sg Dat => x + "tarasowi";
+      SF Sg Acc => x + "Tarasa";
+      SF Sg Instr => x + "tarasem";
+      SF Sg Loc => x + "tarasie";
+      SF Sg Voc => x + "tarasie";
+      SF Pl Nom => x + "Tarasowie";
+      SF Pl Gen => x + "tarasów";
+      SF Pl Dat => x + "tarasom";
+      SF Pl Acc => x + "tarasów";
+      SF Pl Instr => x + "tarasami";
+      SF Pl Loc => x + "tarasach";
+      SF Pl Voc => x + "Tarasowie"
+    };
+
+    oper mkNTable0823: Str -> SubstForm => Str; --%
+    oper mkNTable0823 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "tatar";
+      SF Sg Gen => x + "tatara";
+      SF Sg Dat => x + "tatarowi";
+      SF Sg Acc => x + "tatara";
+      SF Sg Instr => x + "tatarem";
+      SF Sg Loc => x + "tatarze";
+      SF Sg Voc => x + "tatarze";
+      SF Pl Nom => x + "Tatarzy";
+      SF Pl Gen => x + "tatarów";
+      SF Pl Dat => x + "tatarom";
+      SF Pl Acc => x + "tatarów";
+      SF Pl Instr => x + "tatarami";
+      SF Pl Loc => x + "tatarach";
+      SF Pl Voc => x + "Tatarzy"
+    };
+
+    oper mkNTable0824: Str -> SubstForm => Str; --%
+    oper mkNTable0824 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "tell";
+      SF Sg Gen => x + "Tella";
+      SF Sg Dat => x + "tellowi";
+      SF Sg Acc => x + "Tella";
+      SF Sg Instr => x + "tellem";
+      SF Sg Loc => x + "tellu";
+      SF Sg Voc => x + "tellu";
+      SF Pl Nom => x + "telle";
+      SF Pl Gen => x + "tellów";
+      SF Pl Dat => x + "tellom";
+      SF Pl Acc => x + "tellów";
+      SF Pl Instr => x + "tellami";
+      SF Pl Loc => x + "tellach";
+      SF Pl Voc => x + "telle"
+    };
+
+    oper mkNTable0825: Str -> SubstForm => Str; --%
+    oper mkNTable0825 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Teofan";
+      SF Sg Gen => x + "Teofana";
+      SF Sg Dat => x + "Teofanowi";
+      SF Sg Acc => x + "Teofana";
+      SF Sg Instr => x + "Teofanem";
+      SF Sg Loc => x + "teofanie";
+      SF Sg Voc => x + "teofanie";
+      SF Pl Nom => x + "Teofanowie";
+      SF Pl Gen => x + "Teofanów";
+      SF Pl Dat => x + "Teofanom";
+      SF Pl Acc => x + "Teofanów";
+      SF Pl Instr => x + "Teofanami";
+      SF Pl Loc => x + "Teofanach";
+      SF Pl Voc => x + "Teofanowie"
+    };
+
+    oper mkNTable0826: Str -> SubstForm => Str; --%
+    oper mkNTable0826 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Terenia";
+      SF Sg Gen => x + "Tereni";
+      SF Sg Dat => x + "Tereni";
+      SF Sg Acc => x + "Terenię";
+      SF Sg Instr => x + "Terenią";
+      SF Sg Loc => x + "Tereni";
+      SF Sg Voc => x + "Tereniu";
+      SF Pl Nom => x + "terenie";
+      SF Pl Gen => x + "Tereń";
+      SF Pl Dat => x + "Tereniom";
+      SF Pl Acc => x + "terenie";
+      SF Pl Instr => x + "Tereniami";
+      SF Pl Loc => x + "Tereniach";
+      SF Pl Voc => x + "terenie"
+    };
+
+    oper mkNTable0827: Str -> SubstForm => Str; --%
+    oper mkNTable0827 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "o";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable0828: Str -> SubstForm => Str; --%
+    oper mkNTable0828 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "tokarz";
+      SF Sg Gen => x + "tokarza";
+      SF Sg Dat => x + "tokarzowi";
+      SF Sg Acc => x + "tokarza";
+      SF Sg Instr => x + "tokarzem";
+      SF Sg Loc => x + "tokarzu";
+      SF Sg Voc => x + "tokarzu";
+      SF Pl Nom => x + "Tokarzowie";
+      SF Pl Gen => x + "tokarzów";
+      SF Pl Dat => x + "tokarzom";
+      SF Pl Acc => x + "tokarzów";
+      SF Pl Instr => x + "tokarzami";
+      SF Pl Loc => x + "tokarzach";
+      SF Pl Voc => x + "Tokarzowie"
+    };
+
+    oper mkNTable0829: Str -> SubstForm => Str; --%
+    oper mkNTable0829 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "tom";
+      SF Sg Gen => x + "Toma";
+      SF Sg Dat => x + "tomowi";
+      SF Sg Acc => x + "Toma";
+      SF Sg Instr => x + "tomem";
+      SF Sg Loc => x + "tomie";
+      SF Sg Voc => x + "tomie";
+      SF Pl Nom => x + "Tomowie";
+      SF Pl Gen => x + "tomów";
+      SF Pl Dat => x + "tomom";
+      SF Pl Acc => x + "tomów";
+      SF Pl Instr => x + "tomami";
+      SF Pl Loc => x + "tomach";
+      SF Pl Voc => x + "Tomowie"
+    };
+
+    oper mkNTable0830: Str -> SubstForm => Str; --%
+    oper mkNTable0830 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "tomek";
+      SF Sg Gen => x + "tomka";
+      SF Sg Dat => x + "Tomkowi";
+      SF Sg Acc => x + "tomka";
+      SF Sg Instr => x + "Tomkiem";
+      SF Sg Loc => x + "Tomku";
+      SF Sg Voc => x + "Tomku";
+      SF Pl Nom => x + "Tomkowie";
+      SF Pl Gen => x + "Tomków";
+      SF Pl Dat => x + "tomkom";
+      SF Pl Acc => x + "Tomków";
+      SF Pl Instr => x + "tomkami";
+      SF Pl Loc => x + "tomkach";
+      SF Pl Voc => x + "Tomkowie"
+    };
+
+    oper mkNTable0831: Str -> SubstForm => Str; --%
+    oper mkNTable0831 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "traczyk";
+      SF Sg Gen => x + "traczyka";
+      SF Sg Dat => x + "traczykowi";
+      SF Sg Acc => x + "traczyka";
+      SF Sg Instr => x + "traczykiem";
+      SF Sg Loc => x + "traczyku";
+      SF Sg Voc => x + "traczyku";
+      SF Pl Nom => x + "Traczykowie";
+      SF Pl Gen => x + "traczyków";
+      SF Pl Dat => x + "traczykom";
+      SF Pl Acc => x + "traczyków";
+      SF Pl Instr => x + "traczykami";
+      SF Pl Loc => x + "traczykach";
+      SF Pl Voc => x + "Traczykowie"
+    };
+
+    oper mkNTable0832: Str -> SubstForm => Str; --%
+    oper mkNTable0832 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "trak";
+      SF Sg Gen => x + "traka";
+      SF Sg Dat => x + "trakowi";
+      SF Sg Acc => x + "traka";
+      SF Sg Instr => x + "trakiem";
+      SF Sg Loc => x + "traku";
+      SF Sg Voc => x + "traku";
+      SF Pl Nom => x + "Trakowie";
+      SF Pl Gen => x + "traków";
+      SF Pl Dat => x + "trakom";
+      SF Pl Acc => x + "traków";
+      SF Pl Instr => x + "trakami";
+      SF Pl Loc => x + "trakach";
+      SF Pl Voc => x + "Trakowie"
+    };
+
+    oper mkNTable0833: Str -> SubstForm => Str; --%
+    oper mkNTable0833 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0834: Str -> SubstForm => Str; --%
+    oper mkNTable0834 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "trojan";
+      SF Sg Gen => x + "trojana";
+      SF Sg Dat => x + "trojanowi";
+      SF Sg Acc => x + "trojana";
+      SF Sg Instr => x + "trojanem";
+      SF Sg Loc => x + "trojanie";
+      SF Sg Voc => x + "trojanie";
+      SF Pl Nom => x + "Trojanowie";
+      SF Pl Gen => x + "trojanów";
+      SF Pl Dat => x + "trojanom";
+      SF Pl Acc => x + "trojanów";
+      SF Pl Instr => x + "trojanami";
+      SF Pl Loc => x + "trojanach";
+      SF Pl Voc => x + "Trojanowie"
+    };
+
+    oper mkNTable0836: Str -> SubstForm => Str; --%
+    oper mkNTable0836 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "trybuła";
+      SF Sg Gen => x + "trybuły";
+      SF Sg Dat => x + "trybule";
+      SF Sg Acc => x + "trybułę";
+      SF Sg Instr => x + "trybułą";
+      SF Sg Loc => x + "trybule";
+      SF Sg Voc => x + "trybuło";
+      SF Pl Nom => x + "Trybułowie";
+      SF Pl Gen => x + "Trybułów";
+      SF Pl Dat => x + "trybułom";
+      SF Pl Acc => x + "Trybułów";
+      SF Pl Instr => x + "trybułami";
+      SF Pl Loc => x + "trybułach";
+      SF Pl Voc => x + "Trybułowie"
+    };
+
+    oper mkNTable0837: Str -> SubstForm => Str; --%
+    oper mkNTable0837 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "trzeciak";
+      SF Sg Gen => x + "trzeciaka";
+      SF Sg Dat => x + "trzeciakowi";
+      SF Sg Acc => x + "trzeciaka";
+      SF Sg Instr => x + "trzeciakiem";
+      SF Sg Loc => x + "trzeciaku";
+      SF Sg Voc => x + "trzeciaku";
+      SF Pl Nom => x + "Trzeciakowie";
+      SF Pl Gen => x + "trzeciaków";
+      SF Pl Dat => x + "trzeciakom";
+      SF Pl Acc => x + "trzeciaków";
+      SF Pl Instr => x + "trzeciakami";
+      SF Pl Loc => x + "trzeciakach";
+      SF Pl Voc => x + "Trzeciakowie"
+    };
+
+    oper mkNTable0838: Str -> SubstForm => Str; --%
+    oper mkNTable0838 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "asto";
+      SF Sg Gen => x + "asta";
+      SF Sg Dat => x + "astu";
+      SF Sg Acc => x + "asto";
+      SF Sg Instr => x + "astem";
+      SF Sg Loc => x + "eście";
+      SF Sg Voc => x + "asto";
+      SF Pl Nom => x + "asta";
+      SF Pl Gen => x + "ast";
+      SF Pl Dat => x + "astom";
+      SF Pl Acc => x + "asta";
+      SF Pl Instr => x + "astami";
+      SF Pl Loc => x + "astach";
+      SF Pl Voc => x + "asta"
+    };
+
+    oper mkNTable0840: Str -> SubstForm => Str; --%
+    oper mkNTable0840 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "turek";
+      SF Sg Gen => x + "turka";
+      SF Sg Dat => x + "turkowi";
+      SF Sg Acc => x + "turka";
+      SF Sg Instr => x + "turkiem";
+      SF Sg Loc => x + "turku";
+      SF Sg Voc => x + "turku";
+      SF Pl Nom => x + "Turkowie";
+      SF Pl Gen => x + "turków";
+      SF Pl Dat => x + "turkom";
+      SF Pl Acc => x + "turków";
+      SF Pl Instr => x + "turkami";
+      SF Pl Loc => x + "turkach";
+      SF Pl Voc => x + "Turkowie"
+    };
+
+    oper mkNTable0841: Str -> SubstForm => Str; --%
+    oper mkNTable0841 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ku";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ek";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0842: Str -> SubstForm => Str; --%
+    oper mkNTable0842 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "tuła";
+      SF Sg Gen => x + "tuły";
+      SF Sg Dat => x + "tule";
+      SF Sg Acc => x + "Tułę";
+      SF Sg Instr => x + "Tułą";
+      SF Sg Loc => x + "tule";
+      SF Sg Voc => x + "Tuło";
+      SF Pl Nom => x + "tuły";
+      SF Pl Gen => x + "tuł";
+      SF Pl Dat => x + "tułom";
+      SF Pl Acc => x + "tuły";
+      SF Pl Instr => x + "tułami";
+      SF Pl Loc => x + "tułach";
+      SF Pl Voc => x + "tuły"
+    };
+
+    oper mkNTable0844: Str -> SubstForm => Str; --%
+    oper mkNTable0844 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "tygrys";
+      SF Sg Gen => x + "Tygrysu";
+      SF Sg Dat => x + "tygrysowi";
+      SF Sg Acc => x + "tygrys";
+      SF Sg Instr => x + "tygrysem";
+      SF Sg Loc => x + "tygrysie";
+      SF Sg Voc => x + "tygrysie";
+      SF Pl Nom => x + "tygrysy";
+      SF Pl Gen => x + "tygrysów";
+      SF Pl Dat => x + "tygrysom";
+      SF Pl Acc => x + "tygrysy";
+      SF Pl Instr => x + "tygrysami";
+      SF Pl Loc => x + "tygrysach";
+      SF Pl Voc => x + "tygrysy"
+    };
+
+    oper mkNTable0845: Str -> SubstForm => Str; --%
+    oper mkNTable0845 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Tylka";
+      SF Sg Gen => x + "Tylki";
+      SF Sg Dat => x + "tylce";
+      SF Sg Acc => x + "Tylkę";
+      SF Sg Instr => x + "Tylką";
+      SF Sg Loc => x + "tylce";
+      SF Sg Voc => x + "Tylko";
+      SF Pl Nom => x + "Tylki";
+      SF Pl Gen => x + "Tylek";
+      SF Pl Dat => x + "Tylkom";
+      SF Pl Acc => x + "Tylki";
+      SF Pl Instr => x + "Tylkami";
+      SF Pl Loc => x + "Tylkach";
+      SF Pl Voc => x + "Tylki"
+    };
+
+    oper mkNTable0846: Str -> SubstForm => Str; --%
+    oper mkNTable0846 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "niec";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcu";
+      SF Pl Nom => x + "ńce";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńce";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńce"
+    };
+
+    oper mkNTable0847: Str -> SubstForm => Str; --%
+    oper mkNTable0847 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ór";
+      SF Sg Gen => x + "oru";
+      SF Sg Dat => x + "orowi";
+      SF Sg Acc => x + "ór";
+      SF Sg Instr => x + "orem";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => x + "ory";
+      SF Pl Gen => x + "orów";
+      SF Pl Dat => x + "orom";
+      SF Pl Acc => x + "ory";
+      SF Pl Instr => x + "orami";
+      SF Pl Loc => x + "orach";
+      SF Pl Voc => x + "ory"
+    };
+
+    oper mkNTable0848: Str -> SubstForm => Str; --%
+    oper mkNTable0848 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "-otu";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0849: Str -> SubstForm => Str; --%
+    oper mkNTable0849 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ula";
+      SF Sg Gen => x + "uli";
+      SF Sg Dat => x + "uli";
+      SF Sg Acc => x + "Ulę";
+      SF Sg Instr => x + "Ulą";
+      SF Sg Loc => x + "uli";
+      SF Sg Voc => x + "ulu";
+      SF Pl Nom => x + "ule";
+      SF Pl Gen => x + "ul";
+      SF Pl Dat => x + "ulom";
+      SF Pl Acc => x + "ule";
+      SF Pl Instr => x + "ulami";
+      SF Pl Loc => x + "ulach";
+      SF Pl Voc => x + "ule"
+    };
+
+    oper mkNTable0850: Str -> SubstForm => Str; --%
+    oper mkNTable0850 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Ulster";
+      SF Sg Gen => x + "Ulsteru";
+      SF Sg Dat => x + "ulsterowi";
+      SF Sg Acc => x + "Ulster";
+      SF Sg Instr => x + "ulsterem";
+      SF Sg Loc => x + "ulsterze";
+      SF Sg Voc => x + "ulsterze";
+      SF Pl Nom => x + "ulstery";
+      SF Pl Gen => x + "ulsterów";
+      SF Pl Dat => x + "ulsterom";
+      SF Pl Acc => x + "ulstery";
+      SF Pl Instr => x + "ulsterami";
+      SF Pl Loc => x + "ulsterach";
+      SF Pl Voc => x + "ulstery"
+    };
+
+    oper mkNTable0851: Str -> SubstForm => Str; --%
+    oper mkNTable0851 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "uran";
+      SF Sg Gen => x + "Urana";
+      SF Sg Dat => x + "uranowi";
+      SF Sg Acc => x + "Urana";
+      SF Sg Instr => x + "uranem";
+      SF Sg Loc => x + "uranie";
+      SF Sg Voc => x + "uranie";
+      SF Pl Nom => x + "urany";
+      SF Pl Gen => x + "uranów";
+      SF Pl Dat => x + "uranom";
+      SF Pl Acc => x + "urany";
+      SF Pl Instr => x + "uranami";
+      SF Pl Loc => x + "uranach";
+      SF Pl Voc => x + "urany"
+    };
+
+    oper mkNTable0853: Str -> SubstForm => Str; --%
+    oper mkNTable0853 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0854: Str -> SubstForm => Str; --%
+    oper mkNTable0854 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "wala";
+      SF Sg Gen => x + "wali";
+      SF Sg Dat => x + "wali";
+      SF Sg Acc => x + "Walę";
+      SF Sg Instr => x + "Walą";
+      SF Sg Loc => x + "wali";
+      SF Sg Voc => x + "walu";
+      SF Pl Nom => x + "wale";
+      SF Pl Gen => x + "wal";
+      SF Pl Dat => x + "walom";
+      SF Pl Acc => x + "wale";
+      SF Pl Instr => x + "walami";
+      SF Pl Loc => x + "walach";
+      SF Pl Voc => x + "wale"
+    };
+
+    oper mkNTable0855: Str -> SubstForm => Str; --%
+    oper mkNTable0855 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "walczak";
+      SF Sg Gen => x + "walczaka";
+      SF Sg Dat => x + "walczakowi";
+      SF Sg Acc => x + "walczaka";
+      SF Sg Instr => x + "walczakiem";
+      SF Sg Loc => x + "walczaku";
+      SF Sg Voc => x + "walczaku";
+      SF Pl Nom => x + "Walczakowie";
+      SF Pl Gen => x + "walczaków";
+      SF Pl Dat => x + "walczakom";
+      SF Pl Acc => x + "walczaków";
+      SF Pl Instr => x + "walczakami";
+      SF Pl Loc => x + "walczakach";
+      SF Pl Voc => x + "Walczakowie"
+    };
+
+    oper mkNTable0856: Str -> SubstForm => Str; --%
+    oper mkNTable0856 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Walek";
+      SF Sg Gen => x + "walka";
+      SF Sg Dat => x + "walkowi";
+      SF Sg Acc => x + "walka";
+      SF Sg Instr => x + "walkiem";
+      SF Sg Loc => x + "walku";
+      SF Sg Voc => x + "walku";
+      SF Pl Nom => x + "Walkowie";
+      SF Pl Gen => x + "walków";
+      SF Pl Dat => x + "walkom";
+      SF Pl Acc => x + "walków";
+      SF Pl Instr => x + "walkami";
+      SF Pl Loc => x + "walkach";
+      SF Pl Voc => x + "Walkowie"
+    };
+
+    oper mkNTable0857: Str -> SubstForm => Str; --%
+    oper mkNTable0857 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "walerian";
+      SF Sg Gen => x + "waleriana";
+      SF Sg Dat => x + "Walerianowi";
+      SF Sg Acc => x + "waleriana";
+      SF Sg Instr => x + "Walerianem";
+      SF Sg Loc => x + "walerianie";
+      SF Sg Voc => x + "walerianie";
+      SF Pl Nom => x + "Walerianowie";
+      SF Pl Gen => x + "Walerianów";
+      SF Pl Dat => x + "walerianom";
+      SF Pl Acc => x + "Walerianów";
+      SF Pl Instr => x + "walerianami";
+      SF Pl Loc => x + "walerianach";
+      SF Pl Voc => x + "Walerianowie"
+    };
+
+    oper mkNTable0858: Str -> SubstForm => Str; --%
+    oper mkNTable0858 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Wandzia";
+      SF Sg Gen => x + "Wandzi";
+      SF Sg Dat => x + "Wandzi";
+      SF Sg Acc => x + "Wandzię";
+      SF Sg Instr => x + "Wandzią";
+      SF Sg Loc => x + "Wandzi";
+      SF Sg Voc => x + "Wandziu";
+      SF Pl Nom => x + "wandzie";
+      SF Pl Gen => x + "Wandź";
+      SF Pl Dat => x + "Wandziom";
+      SF Pl Acc => x + "wandzie";
+      SF Pl Instr => x + "Wandziami";
+      SF Pl Loc => x + "Wandziach";
+      SF Pl Voc => x + "wandzie"
+    };
+
+    oper mkNTable0859: Str -> SubstForm => Str; --%
+    oper mkNTable0859 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "warchoł";
+      SF Sg Gen => x + "warchoła";
+      SF Sg Dat => x + "warchołowi";
+      SF Sg Acc => x + "warchoła";
+      SF Sg Instr => x + "warchołem";
+      SF Sg Loc => x + "warchole";
+      SF Sg Voc => x + "warchole";
+      SF Pl Nom => x + "Warchołowie";
+      SF Pl Gen => x + "warchołów";
+      SF Pl Dat => x + "warchołom";
+      SF Pl Acc => x + "warchołów";
+      SF Pl Instr => x + "warchołami";
+      SF Pl Loc => x + "warchołach";
+      SF Pl Voc => x + "Warchołowie"
+    };
+
+    oper mkNTable0860: Str -> SubstForm => Str; --%
+    oper mkNTable0860 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "Waszyngton";
+      SF Sg Gen => x + "Waszyngtona";
+      SF Sg Dat => x + "Waszyngtonowi";
+      SF Sg Acc => x + "Waszyngtona";
+      SF Sg Instr => x + "Waszyngtonem";
+      SF Sg Loc => x + "waszyngtonie";
+      SF Sg Voc => x + "waszyngtonie";
+      SF Pl Nom => x + "Waszyngtonowie";
+      SF Pl Gen => x + "Waszyngtonów";
+      SF Pl Dat => x + "Waszyngtonom";
+      SF Pl Acc => x + "Waszyngtonów";
+      SF Pl Instr => x + "Waszyngtonami";
+      SF Pl Loc => x + "Waszyngtonach";
+      SF Pl Voc => x + "Waszyngtonowie"
+    };
+
+    oper mkNTable0861: Str -> SubstForm => Str; --%
+    oper mkNTable0861 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "Waszyngton";
+      SF Sg Gen => x + "Waszyngtonu";
+      SF Sg Dat => x + "Waszyngtonowi";
+      SF Sg Acc => x + "Waszyngton";
+      SF Sg Instr => x + "Waszyngtonem";
+      SF Sg Loc => x + "waszyngtonie";
+      SF Sg Voc => x + "waszyngtonie";
+      SF Pl Nom => x + "Waszyngtony";
+      SF Pl Gen => x + "Waszyngtonów";
+      SF Pl Dat => x + "Waszyngtonom";
+      SF Pl Acc => x + "Waszyngtony";
+      SF Pl Instr => x + "Waszyngtonami";
+      SF Pl Loc => x + "Waszyngtonach";
+      SF Pl Voc => x + "Waszyngtony"
+    };
+
+    oper mkNTable0862: Str -> SubstForm => Str; --%
+    oper mkNTable0862 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "wat";
+      SF Sg Gen => x + "wata";
+      SF Sg Dat => x + "watowi";
+      SF Sg Acc => x + "wata";
+      SF Sg Instr => x + "watem";
+      SF Sg Loc => x + "wacie";
+      SF Sg Voc => x + "wacie";
+      SF Pl Nom => x + "Watowie";
+      SF Pl Gen => x + "watów";
+      SF Pl Dat => x + "watom";
+      SF Pl Acc => x + "watów";
+      SF Pl Instr => x + "watami";
+      SF Pl Loc => x + "watach";
+      SF Pl Voc => x + "Watowie"
+    };
+
+    oper mkNTable0863: Str -> SubstForm => Str; --%
+    oper mkNTable0863 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "watt";
+      SF Sg Gen => x + "watta";
+      SF Sg Dat => x + "wattowi";
+      SF Sg Acc => x + "watta";
+      SF Sg Instr => x + "wattem";
+      SF Sg Loc => x + "watcie";
+      SF Sg Voc => x + "watcie";
+      SF Pl Nom => x + "Wattowie";
+      SF Pl Gen => x + "wattów";
+      SF Pl Dat => x + "wattom";
+      SF Pl Acc => x + "wattów";
+      SF Pl Instr => x + "wattami";
+      SF Pl Loc => x + "wattach";
+      SF Pl Voc => x + "Wattowie"
+    };
+
+    oper mkNTable0864: Str -> SubstForm => Str; --%
+    oper mkNTable0864 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "er";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0865: Str -> SubstForm => Str; --%
+    oper mkNTable0865 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "ńca";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcze";
+      SF Pl Nom => x + "ńcowie";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńców";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńcowie"
+    };
+
+    oper mkNTable0866: Str -> SubstForm => Str; --%
+    oper mkNTable0866 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "waza";
+      SF Sg Gen => x + "wazy";
+      SF Sg Dat => x + "wazie";
+      SF Sg Acc => x + "wazę";
+      SF Sg Instr => x + "wazą";
+      SF Sg Loc => x + "wazie";
+      SF Sg Voc => x + "wazo";
+      SF Pl Nom => x + "Wazowie";
+      SF Pl Gen => x + "Wazów";
+      SF Pl Dat => x + "wazom";
+      SF Pl Acc => x + "Wazów";
+      SF Pl Instr => x + "wazami";
+      SF Pl Loc => x + "wazach";
+      SF Pl Voc => x + "Wazowie"
+    };
+
+    oper mkNTable0868: Str -> SubstForm => Str; --%
+    oper mkNTable0868 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "weber";
+      SF Sg Gen => x + "webera";
+      SF Sg Dat => x + "weberowi";
+      SF Sg Acc => x + "webera";
+      SF Sg Instr => x + "weberem";
+      SF Sg Loc => x + "weberze";
+      SF Sg Voc => x + "weberze";
+      SF Pl Nom => x + "Weberowie";
+      SF Pl Gen => x + "weberów";
+      SF Pl Dat => x + "weberom";
+      SF Pl Acc => x + "weberów";
+      SF Pl Instr => x + "weberami";
+      SF Pl Loc => x + "weberach";
+      SF Pl Voc => x + "Weberowie"
+    };
+
+    oper mkNTable0870: Str -> SubstForm => Str; --%
+    oper mkNTable0870 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "wellington";
+      SF Sg Gen => x + "wellingtona";
+      SF Sg Dat => x + "wellingtonowi";
+      SF Sg Acc => x + "wellingtona";
+      SF Sg Instr => x + "wellingtonem";
+      SF Sg Loc => x + "wellingtonie";
+      SF Sg Voc => x + "wellingtonie";
+      SF Pl Nom => x + "Wellingtonowie";
+      SF Pl Gen => x + "wellingtonów";
+      SF Pl Dat => x + "wellingtonom";
+      SF Pl Acc => x + "wellingtonów";
+      SF Pl Instr => x + "wellingtonami";
+      SF Pl Loc => x + "wellingtonach";
+      SF Pl Voc => x + "Wellingtonowie"
+    };
+
+    oper mkNTable0871: Str -> SubstForm => Str; --%
+    oper mkNTable0871 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "e";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "e";
+      SF Sg Loc => x + "e";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0873: Str -> SubstForm => Str; --%
+    oper mkNTable0873 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "wicek";
+      SF Sg Gen => x + "wicka";
+      SF Sg Dat => x + "wickowi";
+      SF Sg Acc => x + "wicka";
+      SF Sg Instr => x + "wickiem";
+      SF Sg Loc => x + "wicku";
+      SF Sg Voc => x + "wicku";
+      SF Pl Nom => x + "Wickowie";
+      SF Pl Gen => x + "wicków";
+      SF Pl Dat => x + "wickom";
+      SF Pl Acc => x + "wicków";
+      SF Pl Instr => x + "wickami";
+      SF Pl Loc => x + "wickach";
+      SF Pl Voc => x + "Wickowie"
+    };
+
+    oper mkNTable0874: Str -> SubstForm => Str; --%
+    oper mkNTable0874 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "wiech";
+      SF Sg Gen => x + "wiecha";
+      SF Sg Dat => x + "wiechowi";
+      SF Sg Acc => x + "wiecha";
+      SF Sg Instr => x + "wiechem";
+      SF Sg Loc => x + "wiechu";
+      SF Sg Voc => x + "wiechu";
+      SF Pl Nom => x + "Wiechowie";
+      SF Pl Gen => x + "wiechów";
+      SF Pl Dat => x + "wiechom";
+      SF Pl Acc => x + "wiechów";
+      SF Pl Instr => x + "wiechami";
+      SF Pl Loc => x + "wiechach";
+      SF Pl Voc => x + "Wiechowie"
+    };
+
+    oper mkNTable0875: Str -> SubstForm => Str; --%
+    oper mkNTable0875 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "wieczorek";
+      SF Sg Gen => x + "wieczorka";
+      SF Sg Dat => x + "wieczorkowi";
+      SF Sg Acc => x + "wieczorka";
+      SF Sg Instr => x + "wieczorkiem";
+      SF Sg Loc => x + "wieczorku";
+      SF Sg Voc => x + "wieczorku";
+      SF Pl Nom => x + "Wieczorkowie";
+      SF Pl Gen => x + "wieczorków";
+      SF Pl Dat => x + "wieczorkom";
+      SF Pl Acc => x + "wieczorków";
+      SF Pl Instr => x + "wieczorkami";
+      SF Pl Loc => x + "wieczorkach";
+      SF Pl Voc => x + "Wieczorkowie"
+    };
+
+    oper mkNTable0876: Str -> SubstForm => Str; --%
+    oper mkNTable0876 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable0877: Str -> SubstForm => Str; --%
+    oper mkNTable0877 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "anoc";
+      SF Sg Gen => x + "iejnocy";
+      SF Sg Dat => x + "iejnocy";
+      SF Sg Acc => x + "ąnoc";
+      SF Sg Instr => x + "ąnocą";
+      SF Sg Loc => x + "iejnocy";
+      SF Sg Voc => x + "anocy";
+      SF Pl Nom => x + "ienoce";
+      SF Pl Gen => x + "anocy";
+      SF Pl Dat => x + "imnocom";
+      SF Pl Acc => x + "ienoce";
+      SF Pl Instr => x + "iminocami";
+      SF Pl Loc => x + "ichnocach";
+      SF Pl Voc => x + "ienoce"
+    };
+
+    oper mkNTable0878: Str -> SubstForm => Str; --%
+    oper mkNTable0878 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0879: Str -> SubstForm => Str; --%
+    oper mkNTable0879 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Wiera";
+      SF Sg Gen => x + "Wiery";
+      SF Sg Dat => x + "wierze";
+      SF Sg Acc => x + "Wierę";
+      SF Sg Instr => x + "Wierą";
+      SF Sg Loc => x + "wierze";
+      SF Sg Voc => x + "Wiero";
+      SF Pl Nom => x + "Wiery";
+      SF Pl Gen => x + "Wier";
+      SF Pl Dat => x + "Wierom";
+      SF Pl Acc => x + "Wiery";
+      SF Pl Instr => x + "Wierami";
+      SF Pl Loc => x + "Wierach";
+      SF Pl Voc => x + "Wiery"
+    };
+
+    oper mkNTable0880: Str -> SubstForm => Str; --%
+    oper mkNTable0880 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Wiesia";
+      SF Sg Gen => x + "Wiesi";
+      SF Sg Dat => x + "Wiesi";
+      SF Sg Acc => x + "Wiesię";
+      SF Sg Instr => x + "Wiesią";
+      SF Sg Loc => x + "Wiesi";
+      SF Sg Voc => x + "Wiesiu";
+      SF Pl Nom => x + "Wiesie";
+      SF Pl Gen => x + "wieś";
+      SF Pl Dat => x + "Wiesiom";
+      SF Pl Acc => x + "Wiesie";
+      SF Pl Instr => x + "Wiesiami";
+      SF Pl Loc => x + "Wiesiach";
+      SF Pl Voc => x + "Wiesie"
+    };
+
+    oper mkNTable0881: Str -> SubstForm => Str; --%
+    oper mkNTable0881 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "Wietnamka";
+      SF Sg Gen => x + "Wietnamki";
+      SF Sg Dat => x + "wietnamce";
+      SF Sg Acc => x + "Wietnamkę";
+      SF Sg Instr => x + "Wietnamką";
+      SF Sg Loc => x + "wietnamce";
+      SF Sg Voc => x + "Wietnamko";
+      SF Pl Nom => x + "Wietnamki";
+      SF Pl Gen => x + "Wietnamek";
+      SF Pl Dat => x + "Wietnamkom";
+      SF Pl Acc => x + "Wietnamki";
+      SF Pl Instr => x + "Wietnamkami";
+      SF Pl Loc => x + "Wietnamkach";
+      SF Pl Voc => x + "Wietnamki"
+    };
+
+    oper mkNTable0882: Str -> SubstForm => Str; --%
+    oper mkNTable0882 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Wikta";
+      SF Sg Gen => x + "wikty";
+      SF Sg Dat => x + "wikcie";
+      SF Sg Acc => x + "Wiktę";
+      SF Sg Instr => x + "Wiktą";
+      SF Sg Loc => x + "wikcie";
+      SF Sg Voc => x + "Wikto";
+      SF Pl Nom => x + "wikty";
+      SF Pl Gen => x + "wikt";
+      SF Pl Dat => x + "wiktom";
+      SF Pl Acc => x + "wikty";
+      SF Pl Instr => x + "wiktami";
+      SF Pl Loc => x + "wiktach";
+      SF Pl Voc => x + "wikty"
+    };
+
+    oper mkNTable0883: Str -> SubstForm => Str; --%
+    oper mkNTable0883 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wiktor";
+      SF Sg Gen => x + "wiktora";
+      SF Sg Dat => x + "wiktorowi";
+      SF Sg Acc => x + "wiktora";
+      SF Sg Instr => x + "wiktorem";
+      SF Sg Loc => x + "wiktorze";
+      SF Sg Voc => x + "wiktorze";
+      SF Pl Nom => x + "Wiktorowie";
+      SF Pl Gen => x + "wiktorów";
+      SF Pl Dat => x + "wiktorom";
+      SF Pl Acc => x + "wiktorów";
+      SF Pl Instr => x + "wiktorami";
+      SF Pl Loc => x + "wiktorach";
+      SF Pl Voc => x + "Wiktorowie"
+    };
+
+    oper mkNTable0884: Str -> SubstForm => Str; --%
+    oper mkNTable0884 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "wilczek";
+      SF Sg Gen => x + "wilczka";
+      SF Sg Dat => x + "wilczkowi";
+      SF Sg Acc => x + "wilczka";
+      SF Sg Instr => x + "wilczkiem";
+      SF Sg Loc => x + "wilczku";
+      SF Sg Voc => x + "wilczku";
+      SF Pl Nom => x + "Wilczkowie";
+      SF Pl Gen => x + "wilczków";
+      SF Pl Dat => x + "wilczkom";
+      SF Pl Acc => x + "wilczków";
+      SF Pl Instr => x + "wilczkami";
+      SF Pl Loc => x + "wilczkach";
+      SF Pl Voc => x + "Wilczkowie"
+    };
+
+    oper mkNTable0885: Str -> SubstForm => Str; --%
+    oper mkNTable0885 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "wilk";
+      SF Sg Gen => x + "wilka";
+      SF Sg Dat => x + "wilkowi";
+      SF Sg Acc => x + "wilka";
+      SF Sg Instr => x + "wilkiem";
+      SF Sg Loc => x + "wilku";
+      SF Sg Voc => x + "wilku";
+      SF Pl Nom => x + "Wilkowie";
+      SF Pl Gen => x + "wilków";
+      SF Pl Dat => x + "wilkom";
+      SF Pl Acc => x + "wilków";
+      SF Pl Instr => x + "wilkami";
+      SF Pl Loc => x + "wilkach";
+      SF Pl Voc => x + "Wilkowie"
+    };
+
+    oper mkNTable0887: Str -> SubstForm => Str; --%
+    oper mkNTable0887 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Wit";
+      SF Sg Gen => x + "Wita";
+      SF Sg Dat => x + "Witowi";
+      SF Sg Acc => x + "Wita";
+      SF Sg Instr => x + "Witem";
+      SF Sg Loc => x + "wicie";
+      SF Sg Voc => x + "wicie";
+      SF Pl Nom => x + "Witowie";
+      SF Pl Gen => x + "Witów";
+      SF Pl Dat => x + "Witom";
+      SF Pl Acc => x + "Witów";
+      SF Pl Instr => x + "Witami";
+      SF Pl Loc => x + "Witach";
+      SF Pl Voc => x + "Witowie"
+    };
+
+    oper mkNTable0888: Str -> SubstForm => Str; --%
+    oper mkNTable0888 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Wita";
+      SF Sg Gen => x + "Wity";
+      SF Sg Dat => x + "wicie";
+      SF Sg Acc => x + "Witę";
+      SF Sg Instr => x + "Witą";
+      SF Sg Loc => x + "wicie";
+      SF Sg Voc => x + "Wito";
+      SF Pl Nom => x + "Wity";
+      SF Pl Gen => x + "Wit";
+      SF Pl Dat => x + "Witom";
+      SF Pl Acc => x + "Wity";
+      SF Pl Instr => x + "Witami";
+      SF Pl Loc => x + "Witach";
+      SF Pl Voc => x + "Wity"
+    };
+
+    oper mkNTable0889: Str -> SubstForm => Str; --%
+    oper mkNTable0889 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "witek";
+      SF Sg Gen => x + "witka";
+      SF Sg Dat => x + "Witkowi";
+      SF Sg Acc => x + "witka";
+      SF Sg Instr => x + "Witkiem";
+      SF Sg Loc => x + "Witku";
+      SF Sg Voc => x + "Witku";
+      SF Pl Nom => x + "Witkowie";
+      SF Pl Gen => x + "Witków";
+      SF Pl Dat => x + "witkom";
+      SF Pl Acc => x + "Witków";
+      SF Pl Instr => x + "witkami";
+      SF Pl Loc => x + "witkach";
+      SF Pl Voc => x + "Witkowie"
+    };
+
+    oper mkNTable0891: Str -> SubstForm => Str; --%
+    oper mkNTable0891 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "wojaczek";
+      SF Sg Gen => x + "wojaczka";
+      SF Sg Dat => x + "Wojaczkowi";
+      SF Sg Acc => x + "wojaczka";
+      SF Sg Instr => x + "Wojaczkiem";
+      SF Sg Loc => x + "Wojaczku";
+      SF Sg Voc => x + "Wojaczku";
+      SF Pl Nom => x + "Wojaczkowie";
+      SF Pl Gen => x + "Wojaczków";
+      SF Pl Dat => x + "wojaczkom";
+      SF Pl Acc => x + "Wojaczków";
+      SF Pl Instr => x + "wojaczkami";
+      SF Pl Loc => x + "wojaczkach";
+      SF Pl Voc => x + "Wojaczkowie"
+    };
+
+    oper mkNTable0892: Str -> SubstForm => Str; --%
+    oper mkNTable0892 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Wolf";
+      SF Sg Gen => x + "Wolfa";
+      SF Sg Dat => x + "Wolfowi";
+      SF Sg Acc => x + "Wolfa";
+      SF Sg Instr => x + "Wolfem";
+      SF Sg Loc => x + "wolfie";
+      SF Sg Voc => x + "wolfie";
+      SF Pl Nom => x + "Wolfowie";
+      SF Pl Gen => x + "Wolfów";
+      SF Pl Dat => x + "Wolfom";
+      SF Pl Acc => x + "Wolfów";
+      SF Pl Instr => x + "Wolfami";
+      SF Pl Loc => x + "Wolfach";
+      SF Pl Voc => x + "Wolfowie"
+    };
+
+    oper mkNTable0894: Str -> SubstForm => Str; --%
+    oper mkNTable0894 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "wrona";
+      SF Sg Gen => x + "wrony";
+      SF Sg Dat => x + "wronie";
+      SF Sg Acc => x + "wronę";
+      SF Sg Instr => x + "wroną";
+      SF Sg Loc => x + "wronie";
+      SF Sg Voc => x + "wrono";
+      SF Pl Nom => x + "Wronowie";
+      SF Pl Gen => x + "Wronów";
+      SF Pl Dat => x + "wronom";
+      SF Pl Acc => x + "Wronów";
+      SF Pl Instr => x + "wronami";
+      SF Pl Loc => x + "wronach";
+      SF Pl Voc => x + "Wronowie"
+    };
+
+    oper mkNTable0895: Str -> SubstForm => Str; --%
+    oper mkNTable0895 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wszoła";
+      SF Sg Gen => x + "wszoły";
+      SF Sg Dat => x + "wszole";
+      SF Sg Acc => x + "Wszołę";
+      SF Sg Instr => x + "Wszołą";
+      SF Sg Loc => x + "wszole";
+      SF Sg Voc => x + "Wszoło";
+      SF Pl Nom => x + "Wszołowie";
+      SF Pl Gen => x + "wszołów";
+      SF Pl Dat => x + "wszołom";
+      SF Pl Acc => x + "wszołów";
+      SF Pl Instr => x + "wszołami";
+      SF Pl Loc => x + "wszołach";
+      SF Pl Voc => x + "Wszołowie"
+    };
+
+    oper mkNTable0896: Str -> SubstForm => Str; --%
+    oper mkNTable0896 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "wyka";
+      SF Sg Gen => x + "wyki";
+      SF Sg Dat => x + "wyce";
+      SF Sg Acc => x + "wykę";
+      SF Sg Instr => x + "wyką";
+      SF Sg Loc => x + "wyce";
+      SF Sg Voc => x + "wyko";
+      SF Pl Nom => x + "Wykowie";
+      SF Pl Gen => x + "Wyków";
+      SF Pl Dat => x + "wykom";
+      SF Pl Acc => x + "Wyków";
+      SF Pl Instr => x + "wykami";
+      SF Pl Loc => x + "wykach";
+      SF Pl Voc => x + "Wykowie"
+    };
+
+    oper mkNTable0897: Str -> SubstForm => Str; --%
+    oper mkNTable0897 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wypych";
+      SF Sg Gen => x + "Wypycha";
+      SF Sg Dat => x + "wypychowi";
+      SF Sg Acc => x + "Wypycha";
+      SF Sg Instr => x + "wypychem";
+      SF Sg Loc => x + "wypychu";
+      SF Sg Voc => x + "wypychu";
+      SF Pl Nom => x + "Wypychowie";
+      SF Pl Gen => x + "wypychów";
+      SF Pl Dat => x + "wypychom";
+      SF Pl Acc => x + "wypychów";
+      SF Pl Instr => x + "wypychami";
+      SF Pl Loc => x + "wypychach";
+      SF Pl Voc => x + "Wypychowie"
+    };
+
+    oper mkNTable0898: Str -> SubstForm => Str; --%
+    oper mkNTable0898 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Władka";
+      SF Sg Gen => x + "Władki";
+      SF Sg Dat => x + "władce";
+      SF Sg Acc => x + "Władkę";
+      SF Sg Instr => x + "Władką";
+      SF Sg Loc => x + "władce";
+      SF Sg Voc => x + "Władko";
+      SF Pl Nom => x + "Władki";
+      SF Pl Gen => x + "Władek";
+      SF Pl Dat => x + "Władkom";
+      SF Pl Acc => x + "Władki";
+      SF Pl Instr => x + "Władkami";
+      SF Pl Loc => x + "Władkach";
+      SF Pl Voc => x + "Władki"
+    };
+
+    oper mkNTable0899: Str -> SubstForm => Str; --%
+    oper mkNTable0899 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Włoch";
+      SF Sg Gen => x + "Włocha";
+      SF Sg Dat => x + "Włochowi";
+      SF Sg Acc => x + "Włocha";
+      SF Sg Instr => x + "Włochem";
+      SF Sg Loc => x + "Włochu";
+      SF Sg Voc => x + "Włochu";
+      SF Pl Nom => x + "włosi";
+      SF Pl Gen => x + "włochów";
+      SF Pl Dat => x + "włochom";
+      SF Pl Acc => x + "włochów";
+      SF Pl Instr => x + "włochami";
+      SF Pl Loc => x + "włochach";
+      SF Pl Voc => x + "włosi"
+    };
+
+    oper mkNTable0901: Str -> SubstForm => Str; --%
+    oper mkNTable0901 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ier";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "rzy";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "rów";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "rzy"
+    };
+
+    oper mkNTable0902: Str -> SubstForm => Str; --%
+    oper mkNTable0902 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zeł";
+      SF Sg Gen => x + "zła";
+      SF Sg Dat => x + "złowi";
+      SF Sg Acc => x + "zła";
+      SF Sg Instr => x + "złem";
+      SF Sg Loc => x + "źle";
+      SF Sg Voc => x + "źle";
+      SF Pl Nom => x + "zły";
+      SF Pl Gen => x + "złów";
+      SF Pl Dat => x + "złom";
+      SF Pl Acc => x + "zły";
+      SF Pl Instr => x + "złami";
+      SF Pl Loc => x + "złach";
+      SF Pl Voc => x + "zły"
+    };
+
+    oper mkNTable0903: Str -> SubstForm => Str; --%
+    oper mkNTable0903 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wójcik";
+      SF Sg Gen => x + "wójcika";
+      SF Sg Dat => x + "wójcikowi";
+      SF Sg Acc => x + "wójcika";
+      SF Sg Instr => x + "wójcikiem";
+      SF Sg Loc => x + "wójciku";
+      SF Sg Voc => x + "wójciku";
+      SF Pl Nom => x + "Wójcikowie";
+      SF Pl Gen => x + "wójcików";
+      SF Pl Dat => x + "wójcikom";
+      SF Pl Acc => x + "wójcików";
+      SF Pl Instr => x + "wójcikami";
+      SF Pl Loc => x + "wójcikach";
+      SF Pl Voc => x + "Wójcikowie"
+    };
+
+    oper mkNTable0905: Str -> SubstForm => Str; --%
+    oper mkNTable0905 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "zair";
+      SF Sg Gen => x + "Zairu";
+      SF Sg Dat => x + "zairowi";
+      SF Sg Acc => x + "zair";
+      SF Sg Instr => x + "zairem";
+      SF Sg Loc => x + "zairze";
+      SF Sg Voc => x + "zairze";
+      SF Pl Nom => x + "zairy";
+      SF Pl Gen => x + "zairów";
+      SF Pl Dat => x + "zairom";
+      SF Pl Acc => x + "zairy";
+      SF Pl Instr => x + "zairami";
+      SF Pl Loc => x + "zairach";
+      SF Pl Voc => x + "zairy"
+    };
+
+    oper mkNTable0906: Str -> SubstForm => Str; --%
+    oper mkNTable0906 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "zając";
+      SF Sg Gen => x + "zająca";
+      SF Sg Dat => x + "zającowi";
+      SF Sg Acc => x + "zająca";
+      SF Sg Instr => x + "zającem";
+      SF Sg Loc => x + "zającu";
+      SF Sg Voc => x + "zającu";
+      SF Pl Nom => x + "Zającowie";
+      SF Pl Gen => x + "zająców";
+      SF Pl Dat => x + "zającom";
+      SF Pl Acc => x + "zająców";
+      SF Pl Instr => x + "zającami";
+      SF Pl Loc => x + "zającach";
+      SF Pl Voc => x + "Zającowie"
+    };
+
+    oper mkNTable0907: Str -> SubstForm => Str; --%
+    oper mkNTable0907 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "zajączek";
+      SF Sg Gen => x + "zajączka";
+      SF Sg Dat => x + "zajączkowi";
+      SF Sg Acc => x + "zajączka";
+      SF Sg Instr => x + "zajączkiem";
+      SF Sg Loc => x + "zajączku";
+      SF Sg Voc => x + "zajączku";
+      SF Pl Nom => x + "Zajączkowie";
+      SF Pl Gen => x + "zajączków";
+      SF Pl Dat => x + "zajączkom";
+      SF Pl Acc => x + "zajączków";
+      SF Pl Instr => x + "zajączkami";
+      SF Pl Loc => x + "zajączkach";
+      SF Pl Voc => x + "Zajączkowie"
+    };
+
+    oper mkNTable0908: Str -> SubstForm => Str; --%
+    oper mkNTable0908 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0909: Str -> SubstForm => Str; --%
+    oper mkNTable0909 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "zawada";
+      SF Sg Gen => x + "zawady";
+      SF Sg Dat => x + "zawadzie";
+      SF Sg Acc => x + "zawadę";
+      SF Sg Instr => x + "zawadą";
+      SF Sg Loc => x + "zawadzie";
+      SF Sg Voc => x + "zawado";
+      SF Pl Nom => x + "Zawadowie";
+      SF Pl Gen => x + "Zawadów";
+      SF Pl Dat => x + "zawadom";
+      SF Pl Acc => x + "Zawadów";
+      SF Pl Instr => x + "zawadami";
+      SF Pl Loc => x + "zawadach";
+      SF Pl Voc => x + "Zawadowie"
+    };
+
+    oper mkNTable0912: Str -> SubstForm => Str; --%
+    oper mkNTable0912 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ia";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ię";
+      SF Sg Instr => x + "ią";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "io";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0913: Str -> SubstForm => Str; --%
+    oper mkNTable0913 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "zięba";
+      SF Sg Gen => x + "zięby";
+      SF Sg Dat => x + "ziębie";
+      SF Sg Acc => x + "ziębę";
+      SF Sg Instr => x + "ziębą";
+      SF Sg Loc => x + "ziębie";
+      SF Sg Voc => x + "ziębo";
+      SF Pl Nom => x + "Ziębowie";
+      SF Pl Gen => x + "Ziębów";
+      SF Pl Dat => x + "ziębom";
+      SF Pl Acc => x + "Ziębów";
+      SF Pl Instr => x + "ziębami";
+      SF Pl Loc => x + "ziębach";
+      SF Pl Voc => x + "Ziębowie"
+    };
+
+    oper mkNTable0914: Str -> SubstForm => Str; --%
+    oper mkNTable0914 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Zofia";
+      SF Sg Gen => x + "zofii";
+      SF Sg Dat => x + "zofii";
+      SF Sg Acc => x + "Zofię";
+      SF Sg Instr => x + "Zofią";
+      SF Sg Loc => x + "zofii";
+      SF Sg Voc => x + "Zofio";
+      SF Pl Nom => x + "Zofie";
+      SF Pl Gen => x + "zofij";
+      SF Pl Dat => x + "Zofiom";
+      SF Pl Acc => x + "Zofie";
+      SF Pl Instr => x + "Zofiami";
+      SF Pl Loc => x + "Zofiach";
+      SF Pl Voc => x + "Zofie"
+    };
+
+    oper mkNTable0915: Str -> SubstForm => Str; --%
+    oper mkNTable0915 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Zola";
+      SF Sg Gen => x + "zoli";
+      SF Sg Dat => x + "zoli";
+      SF Sg Acc => x + "Zolę";
+      SF Sg Instr => x + "Zolą";
+      SF Sg Loc => x + "zoli";
+      SF Sg Voc => x + "Zolo";
+      SF Pl Nom => x + "Zolowie";
+      SF Pl Gen => x + "zolów";
+      SF Pl Dat => x + "zolom";
+      SF Pl Acc => x + "zolów";
+      SF Pl Instr => x + "zolami";
+      SF Pl Loc => x + "zolach";
+      SF Pl Voc => x + "Zolowie"
+    };
+
+    oper mkNTable0917: Str -> SubstForm => Str; --%
+    oper mkNTable0917 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ło";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ło";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "eł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable0918: Str -> SubstForm => Str; --%
+    oper mkNTable0918 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ier";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ier";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0919: Str -> SubstForm => Str; --%
+    oper mkNTable0919 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sta";
+      SF Sg Gen => x + "sty";
+      SF Sg Dat => x + "ście";
+      SF Sg Acc => x + "stę";
+      SF Sg Instr => x + "stą";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "sto";
+      SF Pl Nom => x + "ści";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "stów";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "ści"
+    };
+
+    oper mkNTable0920: Str -> SubstForm => Str; --%
+    oper mkNTable0920 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0921: Str -> SubstForm => Str; --%
+    oper mkNTable0921 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ta";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0922: Str -> SubstForm => Str; --%
+    oper mkNTable0922 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0923: Str -> SubstForm => Str; --%
+    oper mkNTable0923 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ni";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "nią";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "ni";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0924: Str -> SubstForm => Str; --%
+    oper mkNTable0924 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable0925: Str -> SubstForm => Str; --%
+    oper mkNTable0925 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0927: Str -> SubstForm => Str; --%
+    oper mkNTable0927 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "t";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable0928: Str -> SubstForm => Str; --%
+    oper mkNTable0928 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0929: Str -> SubstForm => Str; --%
+    oper mkNTable0929 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "ej";
+      SF Sg Dat => x + "ej";
+      SF Sg Acc => x + "ą";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ej";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0930: Str -> SubstForm => Str; --%
+    oper mkNTable0930 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "c";
+      SF Sg Gen => x + "cu";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "c";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0931: Str -> SubstForm => Str; --%
+    oper mkNTable0931 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "g";
+      SF Sg Gen => x + "ga";
+      SF Sg Dat => x + "gowi";
+      SF Sg Acc => x + "ga";
+      SF Sg Instr => x + "giem";
+      SF Sg Loc => x + "gu";
+      SF Sg Voc => x + "gu";
+      SF Pl Nom => x + "dzy";
+      SF Pl Gen => x + "gów";
+      SF Pl Dat => x + "gom";
+      SF Pl Acc => x + "gów";
+      SF Pl Instr => x + "gami";
+      SF Pl Loc => x + "gach";
+      SF Pl Voc => x + "dzy"
+    };
+
+    oper mkNTable0934: Str -> SubstForm => Str; --%
+    oper mkNTable0934 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0935: Str -> SubstForm => Str; --%
+    oper mkNTable0935 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "stu";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "st";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable0936: Str -> SubstForm => Str; --%
+    oper mkNTable0936 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "to";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "tu";
+      SF Sg Acc => x + "to";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ta";
+      SF Pl Gen => x + "t";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ta";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ta"
+    };
+
+    oper mkNTable0937: Str -> SubstForm => Str; --%
+    oper mkNTable0937 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ka";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0938: Str -> SubstForm => Str; --%
+    oper mkNTable0938 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "el";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0939: Str -> SubstForm => Str; --%
+    oper mkNTable0939 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0941: Str -> SubstForm => Str; --%
+    oper mkNTable0941 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ru";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "er";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0942: Str -> SubstForm => Str; --%
+    oper mkNTable0942 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0943: Str -> SubstForm => Str; --%
+    oper mkNTable0943 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0944: Str -> SubstForm => Str; --%
+    oper mkNTable0944 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "zi";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zi"
+    };
+
+    oper mkNTable0945: Str -> SubstForm => Str; --%
+    oper mkNTable0945 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "owa";
+      SF Sg Gen => x + "owy";
+      SF Sg Dat => x + "owie";
+      SF Sg Acc => x + "owę";
+      SF Sg Instr => x + "ową";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owo";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable0946: Str -> SubstForm => Str; --%
+    oper mkNTable0946 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0947: Str -> SubstForm => Str; --%
+    oper mkNTable0947 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0948: Str -> SubstForm => Str; --%
+    oper mkNTable0948 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0949: Str -> SubstForm => Str; --%
+    oper mkNTable0949 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ier";
+      SF Sg Gen => x + "ru";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ier";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0950: Str -> SubstForm => Str; --%
+    oper mkNTable0950 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oju";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "ój";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "ojów";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "oje";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable0951: Str -> SubstForm => Str; --%
+    oper mkNTable0951 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nia";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "nię";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "nio";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0952: Str -> SubstForm => Str; --%
+    oper mkNTable0952 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "e";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "e";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "e";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0953: Str -> SubstForm => Str; --%
+    oper mkNTable0953 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0954: Str -> SubstForm => Str; --%
+    oper mkNTable0954 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "oł";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "oła";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ele";
+      SF Sg Voc => x + "ele";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable0955: Str -> SubstForm => Str; --%
+    oper mkNTable0955 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sta";
+      SF Sg Gen => x + "sty";
+      SF Sg Dat => x + "ście";
+      SF Sg Acc => x + "stę";
+      SF Sg Instr => x + "stą";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "sto";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable0956: Str -> SubstForm => Str; --%
+    oper mkNTable0956 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ł";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable0957: Str -> SubstForm => Str; --%
+    oper mkNTable0957 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ziec";
+      SF Sg Gen => x + "źca";
+      SF Sg Dat => x + "źcowi";
+      SF Sg Acc => x + "ziec";
+      SF Sg Instr => x + "źcem";
+      SF Sg Loc => x + "źcu";
+      SF Sg Voc => x + "źcu";
+      SF Pl Nom => x + "źce";
+      SF Pl Gen => x + "źców";
+      SF Pl Dat => x + "źcom";
+      SF Pl Acc => x + "źce";
+      SF Pl Instr => x + "źcami";
+      SF Pl Loc => x + "źcach";
+      SF Pl Voc => x + "źce"
+    };
+
+    oper mkNTable0958: Str -> SubstForm => Str; --%
+    oper mkNTable0958 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ało";
+      SF Sg Gen => x + "ała";
+      SF Sg Dat => x + "ału";
+      SF Sg Acc => x + "ało";
+      SF Sg Instr => x + "ałem";
+      SF Sg Loc => x + "ele";
+      SF Sg Voc => x + "ało";
+      SF Pl Nom => x + "ała";
+      SF Pl Gen => x + "ał";
+      SF Pl Dat => x + "ałom";
+      SF Pl Acc => x + "ała";
+      SF Pl Instr => x + "ałami";
+      SF Pl Loc => x + "ałach";
+      SF Pl Voc => x + "ała"
+    };
+
+    oper mkNTable0959: Str -> SubstForm => Str; --%
+    oper mkNTable0959 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ro";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "ru";
+      SF Sg Acc => x + "ro";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "ro";
+      SF Pl Nom => x + "ra";
+      SF Pl Gen => x + "er";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ra";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ra"
+    };
+
+    oper mkNTable0960: Str -> SubstForm => Str; --%
+    oper mkNTable0960 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oza";
+      SF Sg Gen => x + "ozy";
+      SF Sg Dat => x + "ozie";
+      SF Sg Acc => x + "ozę";
+      SF Sg Instr => x + "ozą";
+      SF Sg Loc => x + "ozie";
+      SF Sg Voc => x + "ozo";
+      SF Pl Nom => x + "ozy";
+      SF Pl Gen => x + "óz";
+      SF Pl Dat => x + "ozom";
+      SF Pl Acc => x + "ozy";
+      SF Pl Instr => x + "ozami";
+      SF Pl Loc => x + "ozach";
+      SF Pl Voc => x + "ozy"
+    };
+
+    oper mkNTable0961: Str -> SubstForm => Str; --%
+    oper mkNTable0961 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0963: Str -> SubstForm => Str; --%
+    oper mkNTable0963 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0964: Str -> SubstForm => Str; --%
+    oper mkNTable0964 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0965: Str -> SubstForm => Str; --%
+    oper mkNTable0965 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "rzy";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "rów";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "rzy"
+    };
+
+    oper mkNTable0966: Str -> SubstForm => Str; --%
+    oper mkNTable0966 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ło";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ło";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "ł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable0967: Str -> SubstForm => Str; --%
+    oper mkNTable0967 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "lu";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "iel";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0968: Str -> SubstForm => Str; --%
+    oper mkNTable0968 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ążę";
+      SF Sg Gen => x + "ęcia";
+      SF Sg Dat => x + "ęciu";
+      SF Sg Acc => x + "ęcia";
+      SF Sg Instr => x + "ęciem";
+      SF Sg Loc => x + "ęciu";
+      SF Sg Voc => x + "ążę";
+      SF Pl Nom => x + "ążęta";
+      SF Pl Gen => x + "ążąt";
+      SF Pl Dat => x + "ążętom";
+      SF Pl Acc => x + "ążąt";
+      SF Pl Instr => x + "ążętami";
+      SF Pl Loc => x + "ążętach";
+      SF Pl Voc => x + "ążęta"
+    };
+
+    oper mkNTable0969: Str -> SubstForm => Str; --%
+    oper mkNTable0969 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0970: Str -> SubstForm => Str; --%
+    oper mkNTable0970 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ni";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "nię";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "ni";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0971: Str -> SubstForm => Str; --%
+    oper mkNTable0971 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable0972: Str -> SubstForm => Str; --%
+    oper mkNTable0972 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "st";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable0973: Str -> SubstForm => Str; --%
+    oper mkNTable0973 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0974: Str -> SubstForm => Str; --%
+    oper mkNTable0974 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "autosan";
+      SF Sg Gen => x + "Autosanu";
+      SF Sg Dat => x + "autosanowi";
+      SF Sg Acc => x + "autosan";
+      SF Sg Instr => x + "autosanem";
+      SF Sg Loc => x + "autosanie";
+      SF Sg Voc => x + "autosanie";
+      SF Pl Nom => x + "autosany";
+      SF Pl Gen => x + "autosanów";
+      SF Pl Dat => x + "autosanom";
+      SF Pl Acc => x + "autosany";
+      SF Pl Instr => x + "autosanami";
+      SF Pl Loc => x + "autosanach";
+      SF Pl Voc => x + "autosany"
+    };
+
+    oper mkNTable0975: Str -> SubstForm => Str; --%
+    oper mkNTable0975 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0976: Str -> SubstForm => Str; --%
+    oper mkNTable0976 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0977: Str -> SubstForm => Str; --%
+    oper mkNTable0977 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0978: Str -> SubstForm => Str; --%
+    oper mkNTable0978 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "no";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nu";
+      SF Sg Acc => x + "no";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "no";
+      SF Pl Nom => x + "na";
+      SF Pl Gen => x + "ien";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "na";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "na"
+    };
+
+    oper mkNTable0979: Str -> SubstForm => Str; --%
+    oper mkNTable0979 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "iel";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0980: Str -> SubstForm => Str; --%
+    oper mkNTable0980 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "bajorek";
+      SF Sg Gen => x + "bajorka";
+      SF Sg Dat => x + "Bajorkowi";
+      SF Sg Acc => x + "bajorek";
+      SF Sg Instr => x + "bajorkiem";
+      SF Sg Loc => x + "bajorku";
+      SF Sg Voc => x + "bajorku";
+      SF Pl Nom => x + "Bajorki";
+      SF Pl Gen => x + "Bajorków";
+      SF Pl Dat => x + "bajorkom";
+      SF Pl Acc => x + "Bajorki";
+      SF Pl Instr => x + "bajorkami";
+      SF Pl Loc => x + "bajorkach";
+      SF Pl Voc => x + "Bajorki"
+    };
+
+    oper mkNTable0981: Str -> SubstForm => Str; --%
+    oper mkNTable0981 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "lu";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "el";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0982: Str -> SubstForm => Str; --%
+    oper mkNTable0982 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "at";
+      SF Sg Gen => x + "atu";
+      SF Sg Dat => x + "atowi";
+      SF Sg Acc => x + "at";
+      SF Sg Instr => x + "atem";
+      SF Sg Loc => x + "ecie";
+      SF Sg Voc => x + "ecie";
+      SF Pl Nom => x + "aty";
+      SF Pl Gen => x + "atów";
+      SF Pl Dat => x + "atom";
+      SF Pl Acc => x + "aty";
+      SF Pl Instr => x + "atami";
+      SF Pl Loc => x + "atach";
+      SF Pl Voc => x + "aty"
+    };
+
+    oper mkNTable0983: Str -> SubstForm => Str; --%
+    oper mkNTable0983 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "balik";
+      SF Sg Gen => x + "Balika";
+      SF Sg Dat => x + "balikowi";
+      SF Sg Acc => x + "balik";
+      SF Sg Instr => x + "balikiem";
+      SF Sg Loc => x + "baliku";
+      SF Sg Voc => x + "baliku";
+      SF Pl Nom => x + "baliki";
+      SF Pl Gen => x + "balików";
+      SF Pl Dat => x + "balikom";
+      SF Pl Acc => x + "baliki";
+      SF Pl Instr => x + "balikami";
+      SF Pl Loc => x + "balikach";
+      SF Pl Voc => x + "baliki"
+    };
+
+    oper mkNTable0984: Str -> SubstForm => Str; --%
+    oper mkNTable0984 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable0985: Str -> SubstForm => Str; --%
+    oper mkNTable0985 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0986: Str -> SubstForm => Str; --%
+    oper mkNTable0986 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ień";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0987: Str -> SubstForm => Str; --%
+    oper mkNTable0987 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óz";
+      SF Sg Gen => x + "ozu";
+      SF Sg Dat => x + "ozowi";
+      SF Sg Acc => x + "óz";
+      SF Sg Instr => x + "ozem";
+      SF Sg Loc => x + "ozie";
+      SF Sg Voc => x + "ozie";
+      SF Pl Nom => x + "ozy";
+      SF Pl Gen => x + "ozów";
+      SF Pl Dat => x + "ozom";
+      SF Pl Acc => x + "ozy";
+      SF Pl Instr => x + "ozami";
+      SF Pl Loc => x + "ozach";
+      SF Pl Voc => x + "ozy"
+    };
+
+    oper mkNTable0988: Str -> SubstForm => Str; --%
+    oper mkNTable0988 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0989: Str -> SubstForm => Str; --%
+    oper mkNTable0989 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0990: Str -> SubstForm => Str; --%
+    oper mkNTable0990 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable0991: Str -> SubstForm => Str; --%
+    oper mkNTable0991 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "bas";
+      SF Sg Gen => x + "basa";
+      SF Sg Dat => x + "basowi";
+      SF Sg Acc => x + "basa";
+      SF Sg Instr => x + "basem";
+      SF Sg Loc => x + "basie";
+      SF Sg Voc => x + "basie";
+      SF Pl Nom => x + "Basowie";
+      SF Pl Gen => x + "basów";
+      SF Pl Dat => x + "basom";
+      SF Pl Acc => x + "basów";
+      SF Pl Instr => x + "basami";
+      SF Pl Loc => x + "basach";
+      SF Pl Voc => x + "Basowie"
+    };
+
+    oper mkNTable0992: Str -> SubstForm => Str; --%
+    oper mkNTable0992 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "ołu";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "ołu";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "ole";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable0993: Str -> SubstForm => Str; --%
+    oper mkNTable0993 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0994: Str -> SubstForm => Str; --%
+    oper mkNTable0994 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "beczek";
+      SF Sg Gen => x + "beczka";
+      SF Sg Dat => x + "Beczkowi";
+      SF Sg Acc => x + "beczka";
+      SF Sg Instr => x + "Beczkiem";
+      SF Sg Loc => x + "Beczku";
+      SF Sg Voc => x + "Beczku";
+      SF Pl Nom => x + "Beczkowie";
+      SF Pl Gen => x + "Beczków";
+      SF Pl Dat => x + "beczkom";
+      SF Pl Acc => x + "Beczków";
+      SF Pl Instr => x + "beczkami";
+      SF Pl Loc => x + "beczkach";
+      SF Pl Voc => x + "Beczkowie"
+    };
+
+    oper mkNTable0995: Str -> SubstForm => Str; --%
+    oper mkNTable0995 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "li";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable0996: Str -> SubstForm => Str; --%
+    oper mkNTable0996 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cie";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciu";
+      SF Sg Acc => x + "cie";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "cia";
+      SF Pl Gen => x + "ć";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cia";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cia"
+    };
+
+    oper mkNTable0997: Str -> SubstForm => Str; --%
+    oper mkNTable0997 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable0998: Str -> SubstForm => Str; --%
+    oper mkNTable0998 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ez";
+      SF Sg Gen => x + "zu";
+      SF Sg Dat => x + "zowi";
+      SF Sg Acc => x + "ez";
+      SF Sg Instr => x + "zem";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "zów";
+      SF Pl Dat => x + "zom";
+      SF Pl Acc => x + "zy";
+      SF Pl Instr => x + "zami";
+      SF Pl Loc => x + "zach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable0999: Str -> SubstForm => Str; --%
+    oper mkNTable0999 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "no";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nu";
+      SF Sg Acc => x + "no";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "no";
+      SF Pl Nom => x + "na";
+      SF Pl Gen => x + "en";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "na";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "na"
+    };
+
+    oper mkNTable1001: Str -> SubstForm => Str; --%
+    oper mkNTable1001 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable1002: Str -> SubstForm => Str; --%
+    oper mkNTable1002 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "białek";
+      SF Sg Gen => x + "białka";
+      SF Sg Dat => x + "Białkowi";
+      SF Sg Acc => x + "białek";
+      SF Sg Instr => x + "białkiem";
+      SF Sg Loc => x + "białku";
+      SF Sg Voc => x + "białku";
+      SF Pl Nom => x + "białki";
+      SF Pl Gen => x + "Białków";
+      SF Pl Dat => x + "białkom";
+      SF Pl Acc => x + "białki";
+      SF Pl Instr => x + "białkami";
+      SF Pl Loc => x + "białkach";
+      SF Pl Voc => x + "białki"
+    };
+
+    oper mkNTable1003: Str -> SubstForm => Str; --%
+    oper mkNTable1003 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1004: Str -> SubstForm => Str; --%
+    oper mkNTable1004 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ór";
+      SF Sg Gen => x + "ora";
+      SF Sg Dat => x + "orowi";
+      SF Sg Acc => x + "ora";
+      SF Sg Instr => x + "orem";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => x + "ory";
+      SF Pl Gen => x + "orów";
+      SF Pl Dat => x + "orom";
+      SF Pl Acc => x + "ory";
+      SF Pl Instr => x + "orami";
+      SF Pl Loc => x + "orach";
+      SF Pl Voc => x + "ory"
+    };
+
+    oper mkNTable1005: Str -> SubstForm => Str; --%
+    oper mkNTable1005 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1006: Str -> SubstForm => Str; --%
+    oper mkNTable1006 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ków";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable1007: Str -> SubstForm => Str; --%
+    oper mkNTable1007 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "ńca";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcu";
+      SF Pl Nom => x + "ńce";
+      SF Pl Gen => x + "ńców";
+      SF Pl Dat => x + "ńcom";
+      SF Pl Acc => x + "ńce";
+      SF Pl Instr => x + "ńcami";
+      SF Pl Loc => x + "ńcach";
+      SF Pl Voc => x + "ńce"
+    };
+
+    oper mkNTable1008: Str -> SubstForm => Str; --%
+    oper mkNTable1008 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1009: Str -> SubstForm => Str; --%
+    oper mkNTable1009 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ole";
+      SF Sg Gen => x + "ola";
+      SF Sg Dat => x + "olu";
+      SF Sg Acc => x + "ole";
+      SF Sg Instr => x + "olem";
+      SF Sg Loc => x + "olu";
+      SF Sg Voc => x + "ole";
+      SF Pl Nom => x + "ola";
+      SF Pl Gen => x + "ól";
+      SF Pl Dat => x + "olom";
+      SF Pl Acc => x + "ola";
+      SF Pl Instr => x + "olami";
+      SF Pl Loc => x + "olach";
+      SF Pl Voc => x + "ola"
+    };
+
+    oper mkNTable1010: Str -> SubstForm => Str; --%
+    oper mkNTable1010 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "wa";
+      SF Sg Gen => x + "wy";
+      SF Sg Dat => x + "wie";
+      SF Sg Acc => x + "wę";
+      SF Sg Instr => x + "wą";
+      SF Sg Loc => x + "wie";
+      SF Sg Voc => x + "wo";
+      SF Pl Nom => x + "wy";
+      SF Pl Gen => x + "ew";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wy";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wy"
+    };
+
+    oper mkNTable1012: Str -> SubstForm => Str; --%
+    oper mkNTable1012 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bobik";
+      SF Sg Gen => x + "Bobika";
+      SF Sg Dat => x + "bobikowi";
+      SF Sg Acc => x + "bobik";
+      SF Sg Instr => x + "bobikiem";
+      SF Sg Loc => x + "bobiku";
+      SF Sg Voc => x + "bobiku";
+      SF Pl Nom => x + "bobiki";
+      SF Pl Gen => x + "bobików";
+      SF Pl Dat => x + "bobikom";
+      SF Pl Acc => x + "bobiki";
+      SF Pl Instr => x + "bobikami";
+      SF Pl Loc => x + "bobikach";
+      SF Pl Voc => x + "bobiki"
+    };
+
+    oper mkNTable1013: Str -> SubstForm => Str; --%
+    oper mkNTable1013 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "en";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "en";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "nów";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable1014: Str -> SubstForm => Str; --%
+    oper mkNTable1014 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ciek";
+      SF Sg Gen => x + "ćka";
+      SF Sg Dat => x + "ćkowi";
+      SF Sg Acc => x + "ćka";
+      SF Sg Instr => x + "ćkiem";
+      SF Sg Loc => x + "ćku";
+      SF Sg Voc => x + "ćku";
+      SF Pl Nom => x + "ćki";
+      SF Pl Gen => x + "ćków";
+      SF Pl Dat => x + "ćkom";
+      SF Pl Acc => x + "ćki";
+      SF Pl Instr => x + "ćkami";
+      SF Pl Loc => x + "ćkach";
+      SF Pl Voc => x + "ćki"
+    };
+
+    oper mkNTable1015: Str -> SubstForm => Str; --%
+    oper mkNTable1015 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "m";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "mi";
+      SF Pl Loc => x + "ch";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1016: Str -> SubstForm => Str; --%
+    oper mkNTable1016 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ziec";
+      SF Sg Gen => x + "źca";
+      SF Sg Dat => x + "źcowi";
+      SF Sg Acc => x + "źca";
+      SF Sg Instr => x + "źcem";
+      SF Sg Loc => x + "źcu";
+      SF Sg Voc => x + "źcu";
+      SF Pl Nom => x + "źce";
+      SF Pl Gen => x + "źców";
+      SF Pl Dat => x + "źcom";
+      SF Pl Acc => x + "źce";
+      SF Pl Instr => x + "źcami";
+      SF Pl Loc => x + "źcach";
+      SF Pl Voc => x + "źce"
+    };
+
+    oper mkNTable1017: Str -> SubstForm => Str; --%
+    oper mkNTable1017 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable1018: Str -> SubstForm => Str; --%
+    oper mkNTable1018 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1019: Str -> SubstForm => Str; --%
+    oper mkNTable1019 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "iel";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1020: Str -> SubstForm => Str; --%
+    oper mkNTable1020 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ora";
+      SF Sg Gen => x + "ory";
+      SF Sg Dat => x + "orze";
+      SF Sg Acc => x + "orę";
+      SF Sg Instr => x + "orą";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "oro";
+      SF Pl Nom => x + "ory";
+      SF Pl Gen => x + "ór";
+      SF Pl Dat => x + "orom";
+      SF Pl Acc => x + "ory";
+      SF Pl Instr => x + "orami";
+      SF Pl Loc => x + "orach";
+      SF Pl Voc => x + "ory"
+    };
+
+    oper mkNTable1021: Str -> SubstForm => Str; --%
+    oper mkNTable1021 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Boy";
+      SF Sg Gen => x + "Boya";
+      SF Sg Dat => x + "boyowi";
+      SF Sg Acc => x + "Boya";
+      SF Sg Instr => x + "boyem";
+      SF Sg Loc => x + "boyu";
+      SF Sg Voc => x + "boyu";
+      SF Pl Nom => x + "boye";
+      SF Pl Gen => x + "boyów";
+      SF Pl Dat => x + "boyom";
+      SF Pl Acc => x + "boyów";
+      SF Pl Instr => x + "boyami";
+      SF Pl Loc => x + "boyach";
+      SF Pl Voc => x + "boye"
+    };
+
+    oper mkNTable1022: Str -> SubstForm => Str; --%
+    oper mkNTable1022 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bożek";
+      SF Sg Gen => x + "bożka";
+      SF Sg Dat => x + "bożkowi";
+      SF Sg Acc => x + "bożka";
+      SF Sg Instr => x + "bożkiem";
+      SF Sg Loc => x + "bożku";
+      SF Sg Voc => x + "bożku";
+      SF Pl Nom => x + "Bożkowie";
+      SF Pl Gen => x + "bożków";
+      SF Pl Dat => x + "bożkom";
+      SF Pl Acc => x + "bożków";
+      SF Pl Instr => x + "bożkami";
+      SF Pl Loc => x + "bożkach";
+      SF Pl Voc => x + "Bożkowie"
+    };
+
+    oper mkNTable1023: Str -> SubstForm => Str; --%
+    oper mkNTable1023 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ha";
+      SF Sg Gen => x + "hy";
+      SF Sg Dat => x + "że";
+      SF Sg Acc => x + "hę";
+      SF Sg Instr => x + "hą";
+      SF Sg Loc => x + "że";
+      SF Sg Voc => x + "ho";
+      SF Pl Nom => x + "hy";
+      SF Pl Gen => x + "h";
+      SF Pl Dat => x + "hom";
+      SF Pl Acc => x + "hy";
+      SF Pl Instr => x + "hami";
+      SF Pl Loc => x + "hach";
+      SF Pl Voc => x + "hy"
+    };
+
+    oper mkNTable1024: Str -> SubstForm => Str; --%
+    oper mkNTable1024 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "tu";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "cia";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cia"
+    };
+
+    oper mkNTable1025: Str -> SubstForm => Str; --%
+    oper mkNTable1025 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ew";
+      SF Sg Gen => x + "wi";
+      SF Sg Dat => x + "wi";
+      SF Sg Acc => x + "ew";
+      SF Sg Instr => x + "wią";
+      SF Sg Loc => x + "wi";
+      SF Sg Voc => x + "wi";
+      SF Pl Nom => x + "wi";
+      SF Pl Gen => x + "wi";
+      SF Pl Dat => x + "wiom";
+      SF Pl Acc => x + "wi";
+      SF Pl Instr => x + "wiami";
+      SF Pl Loc => x + "wiach";
+      SF Pl Voc => x + "wi"
+    };
+
+    oper mkNTable1026: Str -> SubstForm => Str; --%
+    oper mkNTable1026 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1027: Str -> SubstForm => Str; --%
+    oper mkNTable1027 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zda";
+      SF Sg Gen => x + "zdy";
+      SF Sg Dat => x + "ździe";
+      SF Sg Acc => x + "zdę";
+      SF Sg Instr => x + "zdą";
+      SF Sg Loc => x + "ździe";
+      SF Sg Voc => x + "zdo";
+      SF Pl Nom => x + "zdy";
+      SF Pl Gen => x + "zd";
+      SF Pl Dat => x + "zdom";
+      SF Pl Acc => x + "zdy";
+      SF Pl Instr => x + "zdami";
+      SF Pl Loc => x + "zdach";
+      SF Pl Voc => x + "zdy"
+    };
+
+    oper mkNTable1028: Str -> SubstForm => Str; --%
+    oper mkNTable1028 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "sia";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "siów";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1029: Str -> SubstForm => Str; --%
+    oper mkNTable1029 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ę";
+      SF Sg Gen => x + "enia";
+      SF Sg Dat => x + "eniu";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "eniem";
+      SF Sg Loc => x + "eniu";
+      SF Sg Voc => x + "ę";
+      SF Pl Nom => x + "ona";
+      SF Pl Gen => x + "on";
+      SF Pl Dat => x + "onom";
+      SF Pl Acc => x + "ona";
+      SF Pl Instr => x + "onami";
+      SF Pl Loc => x + "onach";
+      SF Pl Voc => x + "ona"
+    };
+
+    oper mkNTable1030: Str -> SubstForm => Str; --%
+    oper mkNTable1030 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1031: Str -> SubstForm => Str; --%
+    oper mkNTable1031 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óg";
+      SF Sg Gen => x + "oga";
+      SF Sg Dat => x + "ogowi";
+      SF Sg Acc => x + "oga";
+      SF Sg Instr => x + "ogiem";
+      SF Sg Loc => x + "ogu";
+      SF Sg Voc => x + "ogu";
+      SF Pl Nom => x + "ogi";
+      SF Pl Gen => x + "ogów";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogi";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogi"
+    };
+
+    oper mkNTable1032: Str -> SubstForm => Str; --%
+    oper mkNTable1032 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siec";
+      SF Sg Gen => x + "śca";
+      SF Sg Dat => x + "ścowi";
+      SF Sg Acc => x + "siec";
+      SF Sg Instr => x + "ścem";
+      SF Sg Loc => x + "ścu";
+      SF Sg Voc => x + "ścu";
+      SF Pl Nom => x + "śce";
+      SF Pl Gen => x + "śców";
+      SF Pl Dat => x + "ścom";
+      SF Pl Acc => x + "śce";
+      SF Pl Instr => x + "ścami";
+      SF Pl Loc => x + "ścach";
+      SF Pl Voc => x + "śce"
+    };
+
+    oper mkNTable1033: Str -> SubstForm => Str; --%
+    oper mkNTable1033 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1034: Str -> SubstForm => Str; --%
+    oper mkNTable1034 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ób";
+      SF Sg Gen => x + "oba";
+      SF Sg Dat => x + "obowi";
+      SF Sg Acc => x + "oba";
+      SF Sg Instr => x + "obem";
+      SF Sg Loc => x + "obie";
+      SF Sg Voc => x + "obie";
+      SF Pl Nom => x + "oby";
+      SF Pl Gen => x + "obów";
+      SF Pl Dat => x + "obom";
+      SF Pl Acc => x + "oby";
+      SF Pl Instr => x + "obami";
+      SF Pl Loc => x + "obach";
+      SF Pl Voc => x + "oby"
+    };
+
+    oper mkNTable1035: Str -> SubstForm => Str; --%
+    oper mkNTable1035 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ód";
+      SF Sg Gen => x + "odu";
+      SF Sg Dat => x + "odowi";
+      SF Sg Acc => x + "ód";
+      SF Sg Instr => x + "odem";
+      SF Sg Loc => x + "odzie";
+      SF Sg Voc => x + "odzie";
+      SF Pl Nom => x + "ody";
+      SF Pl Gen => x + "odów";
+      SF Pl Dat => x + "odom";
+      SF Pl Acc => x + "ody";
+      SF Pl Instr => x + "odami";
+      SF Pl Loc => x + "odach";
+      SF Pl Voc => x + "ody"
+    };
+
+    oper mkNTable1036: Str -> SubstForm => Str; --%
+    oper mkNTable1036 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bubek";
+      SF Sg Gen => x + "bubka";
+      SF Sg Dat => x + "bubkowi";
+      SF Sg Acc => x + "bubka";
+      SF Sg Instr => x + "bubkiem";
+      SF Sg Loc => x + "bubku";
+      SF Sg Voc => x + "bubku";
+      SF Pl Nom => x + "Bubkowie";
+      SF Pl Gen => x + "bubków";
+      SF Pl Dat => x + "bubkom";
+      SF Pl Acc => x + "bubków";
+      SF Pl Instr => x + "bubkami";
+      SF Pl Loc => x + "bubkach";
+      SF Pl Voc => x + "Bubkowie"
+    };
+
+    oper mkNTable1037: Str -> SubstForm => Str; --%
+    oper mkNTable1037 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1038: Str -> SubstForm => Str; --%
+    oper mkNTable1038 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "niu";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1039: Str -> SubstForm => Str; --%
+    oper mkNTable1039 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1040: Str -> SubstForm => Str; --%
+    oper mkNTable1040 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "na";
+      SF Sg Gen => x + "ny";
+      SF Sg Dat => x + "nie";
+      SF Sg Acc => x + "nę";
+      SF Sg Instr => x + "ną";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "no";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "en";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable1041: Str -> SubstForm => Str; --%
+    oper mkNTable1041 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "byczek";
+      SF Sg Gen => x + "byczka";
+      SF Sg Dat => x + "byczkowi";
+      SF Sg Acc => x + "byczka";
+      SF Sg Instr => x + "byczkiem";
+      SF Sg Loc => x + "byczku";
+      SF Sg Voc => x + "byczku";
+      SF Pl Nom => x + "Byczkowie";
+      SF Pl Gen => x + "byczków";
+      SF Pl Dat => x + "byczkom";
+      SF Pl Acc => x + "byczków";
+      SF Pl Instr => x + "byczkami";
+      SF Pl Loc => x + "byczkach";
+      SF Pl Voc => x + "Byczkowie"
+    };
+
+    oper mkNTable1042: Str -> SubstForm => Str; --%
+    oper mkNTable1042 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1043: Str -> SubstForm => Str; --%
+    oper mkNTable1043 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1044: Str -> SubstForm => Str; --%
+    oper mkNTable1044 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zen";
+      SF Sg Gen => x + "zna";
+      SF Sg Dat => x + "znowi";
+      SF Sg Acc => x + "zna";
+      SF Sg Instr => x + "znem";
+      SF Sg Loc => x + "źnie";
+      SF Sg Voc => x + "źnie";
+      SF Pl Nom => x + "źni";
+      SF Pl Gen => x + "znów";
+      SF Pl Dat => x + "znom";
+      SF Pl Acc => x + "znów";
+      SF Pl Instr => x + "znami";
+      SF Pl Loc => x + "znach";
+      SF Pl Voc => x + "źni"
+    };
+
+    oper mkNTable1045: Str -> SubstForm => Str; --%
+    oper mkNTable1045 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąd";
+      SF Sg Gen => x + "ędu";
+      SF Sg Dat => x + "ędowi";
+      SF Sg Acc => x + "ąd";
+      SF Sg Instr => x + "ędem";
+      SF Sg Loc => x + "ędzie";
+      SF Sg Voc => x + "ędzie";
+      SF Pl Nom => x + "ędy";
+      SF Pl Gen => x + "ędów";
+      SF Pl Dat => x + "ędom";
+      SF Pl Acc => x + "ędy";
+      SF Pl Instr => x + "ędami";
+      SF Pl Loc => x + "ędach";
+      SF Pl Voc => x + "ędy"
+    };
+
+    oper mkNTable1046: Str -> SubstForm => Str; --%
+    oper mkNTable1046 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "en";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "na";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "nów";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable1047: Str -> SubstForm => Str; --%
+    oper mkNTable1047 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ób";
+      SF Sg Gen => x + "obu";
+      SF Sg Dat => x + "obowi";
+      SF Sg Acc => x + "ób";
+      SF Sg Instr => x + "obem";
+      SF Sg Loc => x + "obie";
+      SF Sg Voc => x + "obie";
+      SF Pl Nom => x + "oby";
+      SF Pl Gen => x + "obów";
+      SF Pl Dat => x + "obom";
+      SF Pl Acc => x + "oby";
+      SF Pl Instr => x + "obami";
+      SF Pl Loc => x + "obach";
+      SF Pl Voc => x + "oby"
+    };
+
+    oper mkNTable1048: Str -> SubstForm => Str; --%
+    oper mkNTable1048 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "óbr";
+      SF Sg Gen => x + "obra";
+      SF Sg Dat => x + "obrowi";
+      SF Sg Acc => x + "obra";
+      SF Sg Instr => x + "obrem";
+      SF Sg Loc => x + "obrze";
+      SF Sg Voc => x + "obrze";
+      SF Pl Nom => x + "obry";
+      SF Pl Gen => x + "obrów";
+      SF Pl Dat => x + "obrom";
+      SF Pl Acc => x + "obry";
+      SF Pl Instr => x + "obrami";
+      SF Pl Loc => x + "obrach";
+      SF Pl Voc => x + "obry"
+    };
+
+    oper mkNTable1049: Str -> SubstForm => Str; --%
+    oper mkNTable1049 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óg";
+      SF Sg Gen => x + "oga";
+      SF Sg Dat => x + "ogu";
+      SF Sg Acc => x + "oga";
+      SF Sg Instr => x + "ogiem";
+      SF Sg Loc => x + "ogu";
+      SF Sg Voc => x + "oże";
+      SF Pl Nom => x + "ogowie";
+      SF Pl Gen => x + "ogów";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogów";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogowie"
+    };
+
+    oper mkNTable1050: Str -> SubstForm => Str; --%
+    oper mkNTable1050 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "c";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable1051: Str -> SubstForm => Str; --%
+    oper mkNTable1051 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1052: Str -> SubstForm => Str; --%
+    oper mkNTable1052 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "a";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1053: Str -> SubstForm => Str; --%
+    oper mkNTable1053 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ca";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "cę";
+      SF Sg Instr => x + "cą";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "c";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable1054: Str -> SubstForm => Str; --%
+    oper mkNTable1054 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ły";
+      SF Sg Dat => x + "le";
+      SF Sg Acc => x + "łę";
+      SF Sg Instr => x + "łą";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "ieł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1055: Str -> SubstForm => Str; --%
+    oper mkNTable1055 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zia";
+      SF Sg Dat => x + "ziowi";
+      SF Sg Acc => x + "ź";
+      SF Sg Instr => x + "ziem";
+      SF Sg Loc => x + "ziu";
+      SF Sg Voc => x + "ziu";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "zi";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zie";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable1056: Str -> SubstForm => Str; --%
+    oper mkNTable1056 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "siów";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1057: Str -> SubstForm => Str; --%
+    oper mkNTable1057 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1058: Str -> SubstForm => Str; --%
+    oper mkNTable1058 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "chomik";
+      SF Sg Gen => x + "chomika";
+      SF Sg Dat => x + "chomikowi";
+      SF Sg Acc => x + "chomika";
+      SF Sg Instr => x + "chomikiem";
+      SF Sg Loc => x + "chomiku";
+      SF Sg Voc => x + "chomiku";
+      SF Pl Nom => x + "Chomikowie";
+      SF Pl Gen => x + "chomików";
+      SF Pl Dat => x + "chomikom";
+      SF Pl Acc => x + "chomików";
+      SF Pl Instr => x + "chomikami";
+      SF Pl Loc => x + "chomikach";
+      SF Pl Voc => x + "Chomikowie"
+    };
+
+    oper mkNTable1059: Str -> SubstForm => Str; --%
+    oper mkNTable1059 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oba";
+      SF Sg Gen => x + "oby";
+      SF Sg Dat => x + "obie";
+      SF Sg Acc => x + "obę";
+      SF Sg Instr => x + "obą";
+      SF Sg Loc => x + "obie";
+      SF Sg Voc => x + "obo";
+      SF Pl Nom => x + "oby";
+      SF Pl Gen => x + "ób";
+      SF Pl Dat => x + "obom";
+      SF Pl Acc => x + "oby";
+      SF Pl Instr => x + "obami";
+      SF Pl Loc => x + "obach";
+      SF Pl Voc => x + "oby"
+    };
+
+    oper mkNTable1061: Str -> SubstForm => Str; --%
+    oper mkNTable1061 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "est";
+      SF Sg Gen => x + "tu";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "est";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable1062: Str -> SubstForm => Str; --%
+    oper mkNTable1062 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cu";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cze";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ców";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable1064: Str -> SubstForm => Str; --%
+    oper mkNTable1064 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owu";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "owów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable1065: Str -> SubstForm => Str; --%
+    oper mkNTable1065 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1066: Str -> SubstForm => Str; --%
+    oper mkNTable1066 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable1067: Str -> SubstForm => Str; --%
+    oper mkNTable1067 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "e";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1068: Str -> SubstForm => Str; --%
+    oper mkNTable1068 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "ia";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1069: Str -> SubstForm => Str; --%
+    oper mkNTable1069 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ciów";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1070: Str -> SubstForm => Str; --%
+    oper mkNTable1070 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sła";
+      SF Sg Gen => x + "sły";
+      SF Sg Dat => x + "śle";
+      SF Sg Acc => x + "słę";
+      SF Sg Instr => x + "słą";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "sło";
+      SF Pl Nom => x + "sły";
+      SF Pl Gen => x + "seł";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sły";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sły"
+    };
+
+    oper mkNTable1071: Str -> SubstForm => Str; --%
+    oper mkNTable1071 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "ciura";
+      SF Sg Gen => x + "ciury";
+      SF Sg Dat => x + "ciurze";
+      SF Sg Acc => x + "ciurę";
+      SF Sg Instr => x + "ciurą";
+      SF Sg Loc => x + "ciurze";
+      SF Sg Voc => x + "ciuro";
+      SF Pl Nom => x + "Ciurowie";
+      SF Pl Gen => x + "ciurów";
+      SF Pl Dat => x + "ciurom";
+      SF Pl Acc => x + "ciurów";
+      SF Pl Instr => x + "ciurami";
+      SF Pl Loc => x + "ciurach";
+      SF Pl Voc => x + "Ciurowie"
+    };
+
+    oper mkNTable1072: Str -> SubstForm => Str; --%
+    oper mkNTable1072 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ło";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ło";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "ieł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable1073: Str -> SubstForm => Str; --%
+    oper mkNTable1073 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ota";
+      SF Sg Gen => x + "oty";
+      SF Sg Dat => x + "ocie";
+      SF Sg Acc => x + "otę";
+      SF Sg Instr => x + "otą";
+      SF Sg Loc => x + "ocie";
+      SF Sg Voc => x + "oto";
+      SF Pl Nom => x + "oty";
+      SF Pl Gen => x + "ót";
+      SF Pl Dat => x + "otom";
+      SF Pl Acc => x + "oty";
+      SF Pl Instr => x + "otami";
+      SF Pl Loc => x + "otach";
+      SF Pl Voc => x + "oty"
+    };
+
+    oper mkNTable1074: Str -> SubstForm => Str; --%
+    oper mkNTable1074 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "ołu";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "ół";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "ole";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1075: Str -> SubstForm => Str; --%
+    oper mkNTable1075 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable1076: Str -> SubstForm => Str; --%
+    oper mkNTable1076 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1078: Str -> SubstForm => Str; --%
+    oper mkNTable1078 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "cymbał";
+      SF Sg Gen => x + "cymbała";
+      SF Sg Dat => x + "cymbałowi";
+      SF Sg Acc => x + "cymbała";
+      SF Sg Instr => x + "cymbałem";
+      SF Sg Loc => x + "cymbale";
+      SF Sg Voc => x + "cymbale";
+      SF Pl Nom => x + "Cymbałowie";
+      SF Pl Gen => x + "cymbałów";
+      SF Pl Dat => x + "cymbałom";
+      SF Pl Acc => x + "cymbałów";
+      SF Pl Instr => x + "cymbałami";
+      SF Pl Loc => x + "cymbałach";
+      SF Pl Voc => x + "Cymbałowie"
+    };
+
+    oper mkNTable1079: Str -> SubstForm => Str; --%
+    oper mkNTable1079 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "el";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1080: Str -> SubstForm => Str; --%
+    oper mkNTable1080 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "tu";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable1081: Str -> SubstForm => Str; --%
+    oper mkNTable1081 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "tu";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable1082: Str -> SubstForm => Str; --%
+    oper mkNTable1082 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "smo";
+      SF Sg Gen => x + "sma";
+      SF Sg Dat => x + "smu";
+      SF Sg Acc => x + "smo";
+      SF Sg Instr => x + "smem";
+      SF Sg Loc => x + "śmie";
+      SF Sg Voc => x + "smo";
+      SF Pl Nom => x + "sma";
+      SF Pl Gen => x + "sm";
+      SF Pl Dat => x + "smom";
+      SF Pl Acc => x + "sma";
+      SF Pl Instr => x + "smami";
+      SF Pl Loc => x + "smach";
+      SF Pl Voc => x + "sma"
+    };
+
+    oper mkNTable1083: Str -> SubstForm => Str; --%
+    oper mkNTable1083 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zi";
+      SF Sg Dat => x + "zi";
+      SF Sg Acc => x + "ź";
+      SF Sg Instr => x + "zią";
+      SF Sg Loc => x + "zi";
+      SF Sg Voc => x + "zi";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "zi";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zie";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable1084: Str -> SubstForm => Str; --%
+    oper mkNTable1084 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "iu";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1085: Str -> SubstForm => Str; --%
+    oper mkNTable1085 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "eść";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "eść";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable1086: Str -> SubstForm => Str; --%
+    oper mkNTable1086 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oło";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołu";
+      SF Sg Acc => x + "oło";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "oło";
+      SF Pl Nom => x + "oła";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oła";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oła"
+    };
+
+    oper mkNTable1087: Str -> SubstForm => Str; --%
+    oper mkNTable1087 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "czubek";
+      SF Sg Gen => x + "czubka";
+      SF Sg Dat => x + "czubkowi";
+      SF Sg Acc => x + "czubka";
+      SF Sg Instr => x + "czubkiem";
+      SF Sg Loc => x + "czubku";
+      SF Sg Voc => x + "czubku";
+      SF Pl Nom => x + "Czubkowie";
+      SF Pl Gen => x + "czubków";
+      SF Pl Dat => x + "czubkom";
+      SF Pl Acc => x + "czubków";
+      SF Pl Instr => x + "czubkami";
+      SF Pl Loc => x + "czubkach";
+      SF Pl Voc => x + "Czubkowie"
+    };
+
+    oper mkNTable1088: Str -> SubstForm => Str; --%
+    oper mkNTable1088 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "y";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1089: Str -> SubstForm => Str; --%
+    oper mkNTable1089 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ciec";
+      SF Sg Gen => x + "ćca";
+      SF Sg Dat => x + "ćcowi";
+      SF Sg Acc => x + "ćca";
+      SF Sg Instr => x + "ćcem";
+      SF Sg Loc => x + "ćcu";
+      SF Sg Voc => x + "ćcu";
+      SF Pl Nom => x + "ćce";
+      SF Pl Gen => x + "ćców";
+      SF Pl Dat => x + "ćcom";
+      SF Pl Acc => x + "ćce";
+      SF Pl Instr => x + "ćcami";
+      SF Pl Loc => x + "ćcach";
+      SF Pl Voc => x + "ćce"
+    };
+
+    oper mkNTable1090: Str -> SubstForm => Str; --%
+    oper mkNTable1090 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ciec";
+      SF Sg Gen => x + "ćca";
+      SF Sg Dat => x + "ćcowi";
+      SF Sg Acc => x + "ciec";
+      SF Sg Instr => x + "ćcem";
+      SF Sg Loc => x + "ćcu";
+      SF Sg Voc => x + "ćcu";
+      SF Pl Nom => x + "ćce";
+      SF Pl Gen => x + "ćców";
+      SF Pl Dat => x + "ćcom";
+      SF Pl Acc => x + "ćce";
+      SF Pl Instr => x + "ćcami";
+      SF Pl Loc => x + "ćcach";
+      SF Pl Voc => x + "ćce"
+    };
+
+    oper mkNTable1091: Str -> SubstForm => Str; --%
+    oper mkNTable1091 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "człowiek";
+      SF Sg Gen => x + "człowieka";
+      SF Sg Dat => x + "człowiekowi";
+      SF Sg Acc => x + "człowieka";
+      SF Sg Instr => x + "człowiekiem";
+      SF Sg Loc => x + "człowieku";
+      SF Sg Voc => x + "człowieku";
+      SF Pl Nom => x + "ludzie";
+      SF Pl Gen => x + "ludzi";
+      SF Pl Dat => x + "ludziom";
+      SF Pl Acc => x + "ludzi";
+      SF Pl Instr => x + "ludźmi";
+      SF Pl Loc => x + "ludziach";
+      SF Pl Voc => x + "ludzie"
+    };
+
+    oper mkNTable1094: Str -> SubstForm => Str; --%
+    oper mkNTable1094 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "ś";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1097: Str -> SubstForm => Str; --%
+    oper mkNTable1097 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "ni";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "ńmi";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1098: Str -> SubstForm => Str; --%
+    oper mkNTable1098 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1099: Str -> SubstForm => Str; --%
+    oper mkNTable1099 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "dekapol";
+      SF Sg Gen => x + "Dekapolu";
+      SF Sg Dat => x + "Dekapolowi";
+      SF Sg Acc => x + "dekapol";
+      SF Sg Instr => x + "Dekapolem";
+      SF Sg Loc => x + "Dekapolu";
+      SF Sg Voc => x + "Dekapolu";
+      SF Pl Nom => x + "dekapole";
+      SF Pl Gen => x + "dekapoli";
+      SF Pl Dat => x + "dekapolom";
+      SF Pl Acc => x + "dekapole";
+      SF Pl Instr => x + "dekapolami";
+      SF Pl Loc => x + "dekapolach";
+      SF Pl Voc => x + "dekapole"
+    };
+
+    oper mkNTable1100: Str -> SubstForm => Str; --%
+    oper mkNTable1100 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "niu";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1101: Str -> SubstForm => Str; --%
+    oper mkNTable1101 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "eszcz";
+      SF Sg Gen => x + "żdżu";
+      SF Sg Dat => x + "żdżowi";
+      SF Sg Acc => x + "eszcz";
+      SF Sg Instr => x + "żdżem";
+      SF Sg Loc => x + "żdżu";
+      SF Sg Voc => x + "żdżu";
+      SF Pl Nom => x + "żdże";
+      SF Pl Gen => x + "żdżów";
+      SF Pl Dat => x + "żdżom";
+      SF Pl Acc => x + "żdże";
+      SF Pl Instr => x + "żdżami";
+      SF Pl Loc => x + "żdżach";
+      SF Pl Voc => x + "żdże"
+    };
+
+    oper mkNTable1102: Str -> SubstForm => Str; --%
+    oper mkNTable1102 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "li";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "li"
+    };
+
+    oper mkNTable1103: Str -> SubstForm => Str; --%
+    oper mkNTable1103 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1105: Str -> SubstForm => Str; --%
+    oper mkNTable1105 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "obro";
+      SF Sg Gen => x + "obra";
+      SF Sg Dat => x + "obru";
+      SF Sg Acc => x + "obro";
+      SF Sg Instr => x + "obrem";
+      SF Sg Loc => x + "obru";
+      SF Sg Voc => x + "obro";
+      SF Pl Nom => x + "obra";
+      SF Pl Gen => x + "óbr";
+      SF Pl Dat => x + "obrom";
+      SF Pl Acc => x + "obra";
+      SF Pl Instr => x + "obrami";
+      SF Pl Loc => x + "obrach";
+      SF Pl Voc => x + "obra"
+    };
+
+    oper mkNTable1106: Str -> SubstForm => Str; --%
+    oper mkNTable1106 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "azd";
+      SF Sg Gen => x + "azdu";
+      SF Sg Dat => x + "azdowi";
+      SF Sg Acc => x + "azd";
+      SF Sg Instr => x + "azdem";
+      SF Sg Loc => x + "eździe";
+      SF Sg Voc => x + "eździe";
+      SF Pl Nom => x + "azdy";
+      SF Pl Gen => x + "azdów";
+      SF Pl Dat => x + "azdom";
+      SF Pl Acc => x + "azdy";
+      SF Pl Instr => x + "azdami";
+      SF Pl Loc => x + "azdach";
+      SF Pl Voc => x + "azdy"
+    };
+
+    oper mkNTable1107: Str -> SubstForm => Str; --%
+    oper mkNTable1107 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ór";
+      SF Sg Gen => x + "ora";
+      SF Sg Dat => x + "orowi";
+      SF Sg Acc => x + "ora";
+      SF Sg Instr => x + "orem";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => x + "orzy";
+      SF Pl Gen => x + "orów";
+      SF Pl Dat => x + "orom";
+      SF Pl Acc => x + "orów";
+      SF Pl Instr => x + "orami";
+      SF Pl Loc => x + "orach";
+      SF Pl Voc => x + "orzy"
+    };
+
+    oper mkNTable1108: Str -> SubstForm => Str; --%
+    oper mkNTable1108 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ola";
+      SF Sg Gen => x + "oli";
+      SF Sg Dat => x + "oli";
+      SF Sg Acc => x + "olę";
+      SF Sg Instr => x + "olą";
+      SF Sg Loc => x + "oli";
+      SF Sg Voc => x + "olo";
+      SF Pl Nom => x + "ole";
+      SF Pl Gen => x + "ól";
+      SF Pl Dat => x + "olom";
+      SF Pl Acc => x + "ole";
+      SF Pl Instr => x + "olami";
+      SF Pl Loc => x + "olach";
+      SF Pl Voc => x + "ole"
+    };
+
+    oper mkNTable1109: Str -> SubstForm => Str; --%
+    oper mkNTable1109 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "sł";
+      SF Sg Gen => x + "słu";
+      SF Sg Dat => x + "słowi";
+      SF Sg Acc => x + "sł";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "śle";
+      SF Pl Nom => x + "sły";
+      SF Pl Gen => x + "słów";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sły";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sły"
+    };
+
+    oper mkNTable1112: Str -> SubstForm => Str; --%
+    oper mkNTable1112 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oga";
+      SF Sg Gen => x + "ogi";
+      SF Sg Dat => x + "odze";
+      SF Sg Acc => x + "ogę";
+      SF Sg Instr => x + "ogą";
+      SF Sg Loc => x + "odze";
+      SF Sg Voc => x + "ogo";
+      SF Pl Nom => x + "ogi";
+      SF Pl Gen => x + "óg";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogi";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogi"
+    };
+
+    oper mkNTable1114: Str -> SubstForm => Str; --%
+    oper mkNTable1114 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "ia";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1115: Str -> SubstForm => Str; --%
+    oper mkNTable1115 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "zd";
+      SF Sg Gen => x + "zda";
+      SF Sg Dat => x + "zdowi";
+      SF Sg Acc => x + "zda";
+      SF Sg Instr => x + "zdem";
+      SF Sg Loc => x + "ździe";
+      SF Sg Voc => x + "ździe";
+      SF Pl Nom => x + "zdy";
+      SF Pl Gen => x + "zdów";
+      SF Pl Dat => x + "zdom";
+      SF Pl Acc => x + "zdy";
+      SF Pl Instr => x + "zdami";
+      SF Pl Loc => x + "zdach";
+      SF Pl Voc => x + "zdy"
+    };
+
+    oper mkNTable1117: Str -> SubstForm => Str; --%
+    oper mkNTable1117 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "em";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1118: Str -> SubstForm => Str; --%
+    oper mkNTable1118 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ha";
+      SF Sg Gen => x + "hy";
+      SF Sg Dat => x + "sze";
+      SF Sg Acc => x + "hę";
+      SF Sg Instr => x + "hą";
+      SF Sg Loc => x + "sze";
+      SF Sg Voc => x + "ho";
+      SF Pl Nom => x + "hy";
+      SF Pl Gen => x + "h";
+      SF Pl Dat => x + "hom";
+      SF Pl Acc => x + "hy";
+      SF Pl Instr => x + "hami";
+      SF Pl Loc => x + "hach";
+      SF Pl Voc => x + "hy"
+    };
+
+    oper mkNTable1119: Str -> SubstForm => Str; --%
+    oper mkNTable1119 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "duk";
+      SF Sg Gen => x + "duka";
+      SF Sg Dat => x + "Dukowi";
+      SF Sg Acc => x + "duka";
+      SF Sg Instr => x + "Dukiem";
+      SF Sg Loc => x + "Duku";
+      SF Sg Voc => x + "Duku";
+      SF Pl Nom => x + "Dukowie";
+      SF Pl Gen => x + "Duków";
+      SF Pl Dat => x + "dukom";
+      SF Pl Acc => x + "Duków";
+      SF Pl Instr => x + "dukami";
+      SF Pl Loc => x + "dukach";
+      SF Pl Voc => x + "Dukowie"
+    };
+
+    oper mkNTable1120: Str -> SubstForm => Str; --%
+    oper mkNTable1120 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1121: Str -> SubstForm => Str; --%
+    oper mkNTable1121 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1122: Str -> SubstForm => Str; --%
+    oper mkNTable1122 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1123: Str -> SubstForm => Str; --%
+    oper mkNTable1123 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "dworaczek";
+      SF Sg Gen => x + "dworaczka";
+      SF Sg Dat => x + "Dworaczkowi";
+      SF Sg Acc => x + "dworaczka";
+      SF Sg Instr => x + "Dworaczkiem";
+      SF Sg Loc => x + "Dworaczku";
+      SF Sg Voc => x + "Dworaczku";
+      SF Pl Nom => x + "Dworaczkowie";
+      SF Pl Gen => x + "Dworaczków";
+      SF Pl Dat => x + "dworaczkom";
+      SF Pl Acc => x + "Dworaczków";
+      SF Pl Instr => x + "dworaczkami";
+      SF Pl Loc => x + "dworaczkach";
+      SF Pl Voc => x + "Dworaczkowie"
+    };
+
+    oper mkNTable1124: Str -> SubstForm => Str; --%
+    oper mkNTable1124 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "zec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable1125: Str -> SubstForm => Str; --%
+    oper mkNTable1125 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable1126: Str -> SubstForm => Str; --%
+    oper mkNTable1126 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1127: Str -> SubstForm => Str; --%
+    oper mkNTable1127 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1128: Str -> SubstForm => Str; --%
+    oper mkNTable1128 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cko";
+      SF Sg Gen => x + "cka";
+      SF Sg Dat => x + "cku";
+      SF Sg Acc => x + "cko";
+      SF Sg Instr => x + "ckiem";
+      SF Sg Loc => x + "cku";
+      SF Sg Voc => x + "cko";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable1129: Str -> SubstForm => Str; --%
+    oper mkNTable1129 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieć";
+      SF Sg Gen => x + "ciu";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ieć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1130: Str -> SubstForm => Str; --%
+    oper mkNTable1130 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ęba";
+      SF Sg Dat => x + "ębowi";
+      SF Sg Acc => x + "ąb";
+      SF Sg Instr => x + "ębem";
+      SF Sg Loc => x + "ębie";
+      SF Sg Voc => x + "ębie";
+      SF Pl Nom => x + "ęby";
+      SF Pl Gen => x + "ębów";
+      SF Pl Dat => x + "ębom";
+      SF Pl Acc => x + "ęby";
+      SF Pl Instr => x + "ębami";
+      SF Pl Loc => x + "ębach";
+      SF Pl Voc => x + "ęby"
+    };
+
+    oper mkNTable1131: Str -> SubstForm => Str; --%
+    oper mkNTable1131 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "zień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "zień";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1133: Str -> SubstForm => Str; --%
+    oper mkNTable1133 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ęba";
+      SF Sg Dat => x + "ębowi";
+      SF Sg Acc => x + "ęba";
+      SF Sg Instr => x + "ębem";
+      SF Sg Loc => x + "ębie";
+      SF Sg Voc => x + "ębie";
+      SF Pl Nom => x + "ęby";
+      SF Pl Gen => x + "ębów";
+      SF Pl Dat => x + "ębom";
+      SF Pl Acc => x + "ęby";
+      SF Pl Instr => x + "ębami";
+      SF Pl Loc => x + "ębach";
+      SF Pl Voc => x + "ęby"
+    };
+
+    oper mkNTable1134: Str -> SubstForm => Str; --%
+    oper mkNTable1134 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ębu";
+      SF Sg Dat => x + "ębowi";
+      SF Sg Acc => x + "ąb";
+      SF Sg Instr => x + "ębem";
+      SF Sg Loc => x + "ębie";
+      SF Sg Voc => x + "ębie";
+      SF Pl Nom => x + "ęby";
+      SF Pl Gen => x + "ębów";
+      SF Pl Dat => x + "ębom";
+      SF Pl Acc => x + "ęby";
+      SF Pl Instr => x + "ębami";
+      SF Pl Loc => x + "ębach";
+      SF Pl Voc => x + "ęby"
+    };
+
+    oper mkNTable1135: Str -> SubstForm => Str; --%
+    oper mkNTable1135 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "oła";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "ole";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1136: Str -> SubstForm => Str; --%
+    oper mkNTable1136 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "en";
+      SF Sg Gen => x + "nu";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "en";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "nów";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable1137: Str -> SubstForm => Str; --%
+    oper mkNTable1137 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "e";
+      SF Sg Dat => x + "e";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "e";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "e";
+      SF Pl Dat => x + "e";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "e";
+      SF Pl Loc => x + "e";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1138: Str -> SubstForm => Str; --%
+    oper mkNTable1138 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1139: Str -> SubstForm => Str; --%
+    oper mkNTable1139 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "on";
+      SF Sg Gen => x + "onu";
+      SF Sg Dat => x + "onowi";
+      SF Sg Acc => x + "on";
+      SF Sg Instr => x + "onem";
+      SF Sg Loc => x + "onie";
+      SF Sg Voc => x + "onie";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1140: Str -> SubstForm => Str; --%
+    oper mkNTable1140 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "u";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1141: Str -> SubstForm => Str; --%
+    oper mkNTable1141 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ier";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable1142: Str -> SubstForm => Str; --%
+    oper mkNTable1142 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1143: Str -> SubstForm => Str; --%
+    oper mkNTable1143 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Filaret";
+      SF Sg Gen => x + "filareta";
+      SF Sg Dat => x + "Filaretowi";
+      SF Sg Acc => x + "filareta";
+      SF Sg Instr => x + "Filaretem";
+      SF Sg Loc => x + "filarecie";
+      SF Sg Voc => x + "filarecie";
+      SF Pl Nom => x + "filareci";
+      SF Pl Gen => x + "filaretów";
+      SF Pl Dat => x + "filaretom";
+      SF Pl Acc => x + "filaretów";
+      SF Pl Instr => x + "filaretami";
+      SF Pl Loc => x + "filaretach";
+      SF Pl Voc => x + "filareci"
+    };
+
+    oper mkNTable1144: Str -> SubstForm => Str; --%
+    oper mkNTable1144 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ja";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ję";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "jo";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "jów";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "jów";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable1145: Str -> SubstForm => Str; --%
+    oper mkNTable1145 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ze";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1146: Str -> SubstForm => Str; --%
+    oper mkNTable1146 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zia";
+      SF Sg Dat => x + "ziowi";
+      SF Sg Acc => x + "ź";
+      SF Sg Instr => x + "ziem";
+      SF Sg Loc => x + "ziu";
+      SF Sg Voc => x + "ziu";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "ziów";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zie";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable1147: Str -> SubstForm => Str; --%
+    oper mkNTable1147 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "tu";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "t";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ta";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ta";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ta"
+    };
+
+    oper mkNTable1148: Str -> SubstForm => Str; --%
+    oper mkNTable1148 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "futura";
+      SF Sg Gen => x + "Futury";
+      SF Sg Dat => x + "Futurze";
+      SF Sg Acc => x + "Futurę";
+      SF Sg Instr => x + "Futurą";
+      SF Sg Loc => x + "Futurze";
+      SF Sg Voc => x + "Futuro";
+      SF Pl Nom => x + "Futury";
+      SF Pl Gen => x + "Futur";
+      SF Pl Dat => x + "futurom";
+      SF Pl Acc => x + "Futury";
+      SF Pl Instr => x + "futurami";
+      SF Pl Loc => x + "futurach";
+      SF Pl Voc => x + "Futury"
+    };
+
+    oper mkNTable1149: Str -> SubstForm => Str; --%
+    oper mkNTable1149 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zda";
+      SF Sg Gen => x + "zdy";
+      SF Sg Dat => x + "ździe";
+      SF Sg Acc => x + "zdę";
+      SF Sg Instr => x + "zdą";
+      SF Sg Loc => x + "ździe";
+      SF Sg Voc => x + "zdo";
+      SF Pl Nom => x + "zdowie";
+      SF Pl Gen => x + "zdów";
+      SF Pl Dat => x + "zdom";
+      SF Pl Acc => x + "zdów";
+      SF Pl Instr => x + "zdami";
+      SF Pl Loc => x + "zdach";
+      SF Pl Voc => x + "zdowie"
+    };
+
+    oper mkNTable1150: Str -> SubstForm => Str; --%
+    oper mkNTable1150 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąź";
+      SF Sg Gen => x + "ęzi";
+      SF Sg Dat => x + "ęzi";
+      SF Sg Acc => x + "ąź";
+      SF Sg Instr => x + "ęzią";
+      SF Sg Loc => x + "ęzi";
+      SF Sg Voc => x + "ęzi";
+      SF Pl Nom => x + "ęzie";
+      SF Pl Gen => x + "ęzi";
+      SF Pl Dat => x + "ęziom";
+      SF Pl Acc => x + "ęzie";
+      SF Pl Instr => x + "ęźmi";
+      SF Pl Loc => x + "ęziach";
+      SF Pl Voc => x + "ęzie"
+    };
+
+    oper mkNTable1152: Str -> SubstForm => Str; --%
+    oper mkNTable1152 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1153: Str -> SubstForm => Str; --%
+    oper mkNTable1153 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iez";
+      SF Sg Gen => x + "za";
+      SF Sg Dat => x + "zowi";
+      SF Sg Acc => x + "za";
+      SF Sg Instr => x + "zem";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "zów";
+      SF Pl Dat => x + "zom";
+      SF Pl Acc => x + "zy";
+      SF Pl Instr => x + "zami";
+      SF Pl Loc => x + "zach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1154: Str -> SubstForm => Str; --%
+    oper mkNTable1154 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zło";
+      SF Sg Gen => x + "zła";
+      SF Sg Dat => x + "złu";
+      SF Sg Acc => x + "zło";
+      SF Sg Instr => x + "złem";
+      SF Sg Loc => x + "źle";
+      SF Sg Voc => x + "zło";
+      SF Pl Nom => x + "zła";
+      SF Pl Gen => x + "zł";
+      SF Pl Dat => x + "złom";
+      SF Pl Acc => x + "zła";
+      SF Pl Instr => x + "złami";
+      SF Pl Loc => x + "złach";
+      SF Pl Voc => x + "zła"
+    };
+
+    oper mkNTable1155: Str -> SubstForm => Str; --%
+    oper mkNTable1155 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "azdo";
+      SF Sg Gen => x + "azda";
+      SF Sg Dat => x + "azdu";
+      SF Sg Acc => x + "azdo";
+      SF Sg Instr => x + "azdem";
+      SF Sg Loc => x + "eździe";
+      SF Sg Voc => x + "azdo";
+      SF Pl Nom => x + "azda";
+      SF Pl Gen => x + "azd";
+      SF Pl Dat => x + "azdom";
+      SF Pl Acc => x + "azda";
+      SF Pl Instr => x + "azdami";
+      SF Pl Loc => x + "azdach";
+      SF Pl Voc => x + "azda"
+    };
+
+    oper mkNTable1156: Str -> SubstForm => Str; --%
+    oper mkNTable1156 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oja";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "oja";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "ojów";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "ojów";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable1157: Str -> SubstForm => Str; --%
+    oper mkNTable1157 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zi";
+      SF Sg Dat => x + "zi";
+      SF Sg Acc => x + "ź";
+      SF Sg Instr => x + "zią";
+      SF Sg Loc => x + "zi";
+      SF Sg Voc => x + "zi";
+      SF Pl Nom => x + "zi";
+      SF Pl Gen => x + "zi";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zi";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zi"
+    };
+
+    oper mkNTable1158: Str -> SubstForm => Str; --%
+    oper mkNTable1158 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ębia";
+      SF Sg Dat => x + "ębiowi";
+      SF Sg Acc => x + "ębia";
+      SF Sg Instr => x + "ębiem";
+      SF Sg Loc => x + "ębiu";
+      SF Sg Voc => x + "ębiu";
+      SF Pl Nom => x + "ębie";
+      SF Pl Gen => x + "ębi";
+      SF Pl Dat => x + "ębiom";
+      SF Pl Acc => x + "ębie";
+      SF Pl Instr => x + "ębiami";
+      SF Pl Loc => x + "ębiach";
+      SF Pl Voc => x + "ębie"
+    };
+
+    oper mkNTable1159: Str -> SubstForm => Str; --%
+    oper mkNTable1159 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1161: Str -> SubstForm => Str; --%
+    oper mkNTable1161 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ra";
+      SF Sg Gen => x + "ry";
+      SF Sg Dat => x + "rze";
+      SF Sg Acc => x + "rę";
+      SF Sg Instr => x + "rą";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "ro";
+      SF Pl Nom => x + "ry";
+      SF Pl Gen => x + "ier";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "ry";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "ry"
+    };
+
+    oper mkNTable1162: Str -> SubstForm => Str; --%
+    oper mkNTable1162 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Grabka";
+      SF Sg Gen => x + "grabki";
+      SF Sg Dat => x + "Grabce";
+      SF Sg Acc => x + "Grabkę";
+      SF Sg Instr => x + "Grabką";
+      SF Sg Loc => x + "Grabce";
+      SF Sg Voc => x + "Grabko";
+      SF Pl Nom => x + "grabki";
+      SF Pl Gen => x + "grabek";
+      SF Pl Dat => x + "grabkom";
+      SF Pl Acc => x + "grabki";
+      SF Pl Instr => x + "grabkami";
+      SF Pl Loc => x + "grabkach";
+      SF Pl Voc => x + "grabki"
+    };
+
+    oper mkNTable1163: Str -> SubstForm => Str; --%
+    oper mkNTable1163 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "odza";
+      SF Sg Gen => x + "odzy";
+      SF Sg Dat => x + "odzy";
+      SF Sg Acc => x + "odzę";
+      SF Sg Instr => x + "odzą";
+      SF Sg Loc => x + "odzy";
+      SF Sg Voc => x + "odzo";
+      SF Pl Nom => x + "odze";
+      SF Pl Gen => x + "ódz";
+      SF Pl Dat => x + "odzom";
+      SF Pl Acc => x + "odze";
+      SF Pl Instr => x + "odzami";
+      SF Pl Loc => x + "odzach";
+      SF Pl Voc => x + "odze"
+    };
+
+    oper mkNTable1165: Str -> SubstForm => Str; --%
+    oper mkNTable1165 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "oźba";
+      SF Sg Gen => x + "oźby";
+      SF Sg Dat => x + "oźbie";
+      SF Sg Acc => x + "oźbę";
+      SF Sg Instr => x + "oźbą";
+      SF Sg Loc => x + "oźbie";
+      SF Sg Voc => x + "oźbo";
+      SF Pl Nom => x + "oźby";
+      SF Pl Gen => x + "óźb";
+      SF Pl Dat => x + "oźbom";
+      SF Pl Acc => x + "oźby";
+      SF Pl Instr => x + "oźbami";
+      SF Pl Loc => x + "oźbach";
+      SF Pl Voc => x + "oźby"
+    };
+
+    oper mkNTable1166: Str -> SubstForm => Str; --%
+    oper mkNTable1166 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "zień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "zień";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1167: Str -> SubstForm => Str; --%
+    oper mkNTable1167 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zeł";
+      SF Sg Gen => x + "zła";
+      SF Sg Dat => x + "złowi";
+      SF Sg Acc => x + "zeł";
+      SF Sg Instr => x + "złem";
+      SF Sg Loc => x + "źle";
+      SF Sg Voc => x + "źle";
+      SF Pl Nom => x + "zły";
+      SF Pl Gen => x + "złów";
+      SF Pl Dat => x + "złom";
+      SF Pl Acc => x + "zły";
+      SF Pl Instr => x + "złami";
+      SF Pl Loc => x + "złach";
+      SF Pl Voc => x + "zły"
+    };
+
+    oper mkNTable1168: Str -> SubstForm => Str; --%
+    oper mkNTable1168 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ód";
+      SF Sg Gen => x + "oda";
+      SF Sg Dat => x + "odowi";
+      SF Sg Acc => x + "oda";
+      SF Sg Instr => x + "odem";
+      SF Sg Loc => x + "odzie";
+      SF Sg Voc => x + "odzie";
+      SF Pl Nom => x + "ody";
+      SF Pl Gen => x + "odów";
+      SF Pl Dat => x + "odom";
+      SF Pl Acc => x + "ody";
+      SF Pl Instr => x + "odami";
+      SF Pl Loc => x + "odach";
+      SF Pl Voc => x + "ody"
+    };
+
+    oper mkNTable1170: Str -> SubstForm => Str; --%
+    oper mkNTable1170 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ódź";
+      SF Sg Gen => x + "odzi";
+      SF Sg Dat => x + "odzi";
+      SF Sg Acc => x + "ódź";
+      SF Sg Instr => x + "odzią";
+      SF Sg Loc => x + "odzi";
+      SF Sg Voc => x + "odzi";
+      SF Pl Nom => x + "odzie";
+      SF Pl Gen => x + "odzi";
+      SF Pl Dat => x + "odziom";
+      SF Pl Acc => x + "odzie";
+      SF Pl Instr => x + "odziami";
+      SF Pl Loc => x + "odziach";
+      SF Pl Voc => x + "odzie"
+    };
+
+    oper mkNTable1173: Str -> SubstForm => Str; --%
+    oper mkNTable1173 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "azda";
+      SF Sg Gen => x + "azdy";
+      SF Sg Dat => x + "eździe";
+      SF Sg Acc => x + "azdę";
+      SF Sg Instr => x + "azdą";
+      SF Sg Loc => x + "eździe";
+      SF Sg Voc => x + "azdo";
+      SF Pl Nom => x + "azdy";
+      SF Pl Gen => x + "azd";
+      SF Pl Dat => x + "azdom";
+      SF Pl Acc => x + "azdy";
+      SF Pl Instr => x + "azdami";
+      SF Pl Loc => x + "azdach";
+      SF Pl Voc => x + "azdy"
+    };
+
+    oper mkNTable1174: Str -> SubstForm => Str; --%
+    oper mkNTable1174 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "zd";
+      SF Sg Gen => x + "zdu";
+      SF Sg Dat => x + "zdowi";
+      SF Sg Acc => x + "zd";
+      SF Sg Instr => x + "zdem";
+      SF Sg Loc => x + "ździe";
+      SF Sg Voc => x + "ździe";
+      SF Pl Nom => x + "zdy";
+      SF Pl Gen => x + "zdów";
+      SF Pl Dat => x + "zdom";
+      SF Pl Acc => x + "zdy";
+      SF Pl Instr => x + "zdami";
+      SF Pl Loc => x + "zdach";
+      SF Pl Voc => x + "zdy"
+    };
+
+    oper mkNTable1175: Str -> SubstForm => Str; --%
+    oper mkNTable1175 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "óźdź";
+      SF Sg Gen => x + "oździa";
+      SF Sg Dat => x + "oździowi";
+      SF Sg Acc => x + "oździa";
+      SF Sg Instr => x + "oździem";
+      SF Sg Loc => x + "oździu";
+      SF Sg Voc => x + "oździu";
+      SF Pl Nom => x + "oździe";
+      SF Pl Gen => x + "oździ";
+      SF Pl Dat => x + "oździom";
+      SF Pl Acc => x + "oździe";
+      SF Pl Instr => x + "oździami";
+      SF Pl Loc => x + "oździach";
+      SF Pl Voc => x + "oździe"
+    };
+
+    oper mkNTable1176: Str -> SubstForm => Str; --%
+    oper mkNTable1176 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "óźdź";
+      SF Sg Gen => x + "oździa";
+      SF Sg Dat => x + "oździowi";
+      SF Sg Acc => x + "óźdź";
+      SF Sg Instr => x + "oździem";
+      SF Sg Loc => x + "oździu";
+      SF Sg Voc => x + "oździu";
+      SF Pl Nom => x + "oździe";
+      SF Pl Gen => x + "oździ";
+      SF Pl Dat => x + "oździom";
+      SF Pl Acc => x + "oździe";
+      SF Pl Instr => x + "oźdźmi";
+      SF Pl Loc => x + "oździach";
+      SF Pl Voc => x + "oździe"
+    };
+
+    oper mkNTable1177: Str -> SubstForm => Str; --%
+    oper mkNTable1177 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "za";
+      SF Sg Gen => x + "zy";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "zę";
+      SF Sg Instr => x + "zą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zo";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "iez";
+      SF Pl Dat => x + "zom";
+      SF Pl Acc => x + "zy";
+      SF Pl Instr => x + "zami";
+      SF Pl Loc => x + "zach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1178: Str -> SubstForm => Str; --%
+    oper mkNTable1178 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zło";
+      SF Sg Gen => x + "zła";
+      SF Sg Dat => x + "złu";
+      SF Sg Acc => x + "zło";
+      SF Sg Instr => x + "złem";
+      SF Sg Loc => x + "źle";
+      SF Sg Voc => x + "zło";
+      SF Pl Nom => x + "zła";
+      SF Pl Gen => x + "zeł";
+      SF Pl Dat => x + "złom";
+      SF Pl Acc => x + "zła";
+      SF Pl Instr => x + "złami";
+      SF Pl Loc => x + "złach";
+      SF Pl Voc => x + "zła"
+    };
+
+    oper mkNTable1179: Str -> SubstForm => Str; --%
+    oper mkNTable1179 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owia";
+      SF Sg Dat => x + "owiowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owiem";
+      SF Sg Loc => x + "owiu";
+      SF Sg Voc => x + "owiu";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "owi";
+      SF Pl Dat => x + "owiom";
+      SF Pl Acc => x + "owie";
+      SF Pl Instr => x + "owiami";
+      SF Pl Loc => x + "owiach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1180: Str -> SubstForm => Str; --%
+    oper mkNTable1180 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Głuch";
+      SF Sg Gen => x + "głucha";
+      SF Sg Dat => x + "Głuchowi";
+      SF Sg Acc => x + "głucha";
+      SF Sg Instr => x + "Głuchem";
+      SF Sg Loc => x + "Głuchu";
+      SF Sg Voc => x + "Głuchu";
+      SF Pl Nom => x + "Głuchowie";
+      SF Pl Gen => x + "Głuchów";
+      SF Pl Dat => x + "Głuchom";
+      SF Pl Acc => x + "Głuchów";
+      SF Pl Instr => x + "Głuchami";
+      SF Pl Loc => x + "Głuchach";
+      SF Pl Voc => x + "Głuchowie"
+    };
+
+    oper mkNTable1181: Str -> SubstForm => Str; --%
+    oper mkNTable1181 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "ej";
+      SF Sg Dat => x + "ej";
+      SF Sg Acc => x + "ą";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ej";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "mi";
+      SF Pl Loc => x + "ch";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1182: Str -> SubstForm => Str; --%
+    oper mkNTable1182 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ębi";
+      SF Sg Dat => x + "ębi";
+      SF Sg Acc => x + "ąb";
+      SF Sg Instr => x + "ębią";
+      SF Sg Loc => x + "ębi";
+      SF Sg Voc => x + "ębi";
+      SF Pl Nom => x + "ębie";
+      SF Pl Gen => x + "ębi";
+      SF Pl Dat => x + "ębiom";
+      SF Pl Acc => x + "ębie";
+      SF Pl Instr => x + "ębiami";
+      SF Pl Loc => x + "ębiach";
+      SF Pl Voc => x + "ębie"
+    };
+
+    oper mkNTable1183: Str -> SubstForm => Str; --%
+    oper mkNTable1183 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "si";
+      SF Pl Nom => x + "si";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "si";
+      SF Pl Instr => x + "śmi";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "si"
+    };
+
+    oper mkNTable1184: Str -> SubstForm => Str; --%
+    oper mkNTable1184 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "góralczyk";
+      SF Sg Gen => x + "góralczyka";
+      SF Sg Dat => x + "góralczykowi";
+      SF Sg Acc => x + "góralczyka";
+      SF Sg Instr => x + "góralczykiem";
+      SF Sg Loc => x + "góralczyku";
+      SF Sg Voc => x + "góralczyku";
+      SF Pl Nom => x + "Góralczykowie";
+      SF Pl Gen => x + "góralczyków";
+      SF Pl Dat => x + "góralczykom";
+      SF Pl Acc => x + "góralczyków";
+      SF Pl Instr => x + "góralczykami";
+      SF Pl Loc => x + "góralczykach";
+      SF Pl Voc => x + "Góralczykowie"
+    };
+
+    oper mkNTable1185: Str -> SubstForm => Str; --%
+    oper mkNTable1185 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "haraburda";
+      SF Sg Gen => x + "haraburdy";
+      SF Sg Dat => x + "haraburdzie";
+      SF Sg Acc => x + "haraburdę";
+      SF Sg Instr => x + "haraburdą";
+      SF Sg Loc => x + "haraburdzie";
+      SF Sg Voc => x + "haraburdo";
+      SF Pl Nom => x + "Haraburdowie";
+      SF Pl Gen => x + "haraburdów";
+      SF Pl Dat => x + "haraburdom";
+      SF Pl Acc => x + "haraburdów";
+      SF Pl Instr => x + "haraburdami";
+      SF Pl Loc => x + "haraburdach";
+      SF Pl Voc => x + "Haraburdowie"
+    };
+
+    oper mkNTable1186: Str -> SubstForm => Str; --%
+    oper mkNTable1186 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "huczek";
+      SF Sg Gen => x + "huczka";
+      SF Sg Dat => x + "huczkowi";
+      SF Sg Acc => x + "huczka";
+      SF Sg Instr => x + "huczkiem";
+      SF Sg Loc => x + "huczku";
+      SF Sg Voc => x + "huczku";
+      SF Pl Nom => x + "Huczkowie";
+      SF Pl Gen => x + "huczków";
+      SF Pl Dat => x + "huczkom";
+      SF Pl Acc => x + "huczków";
+      SF Pl Instr => x + "huczkami";
+      SF Pl Loc => x + "huczkach";
+      SF Pl Voc => x + "Huczkowie"
+    };
+
+    oper mkNTable1187: Str -> SubstForm => Str; --%
+    oper mkNTable1187 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1188: Str -> SubstForm => Str; --%
+    oper mkNTable1188 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "lów";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1189: Str -> SubstForm => Str; --%
+    oper mkNTable1189 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ól";
+      SF Sg Gen => x + "oli";
+      SF Sg Dat => x + "oli";
+      SF Sg Acc => x + "ól";
+      SF Sg Instr => x + "olą";
+      SF Sg Loc => x + "oli";
+      SF Sg Voc => x + "oli";
+      SF Pl Nom => x + "ole";
+      SF Pl Gen => x + "oli";
+      SF Pl Dat => x + "olom";
+      SF Pl Acc => x + "ole";
+      SF Pl Instr => x + "olami";
+      SF Pl Loc => x + "olach";
+      SF Pl Voc => x + "ole"
+    };
+
+    oper mkNTable1191: Str -> SubstForm => Str; --%
+    oper mkNTable1191 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "igrek";
+      SF Sg Gen => x + "igreka";
+      SF Sg Dat => x + "igrekowi";
+      SF Sg Acc => x + "igreka";
+      SF Sg Instr => x + "igrekiem";
+      SF Sg Loc => x + "igreku";
+      SF Sg Voc => x + "igreku";
+      SF Pl Nom => x + "Igrekowie";
+      SF Pl Gen => x + "igreków";
+      SF Pl Dat => x + "igrekom";
+      SF Pl Acc => x + "igreków";
+      SF Pl Instr => x + "igrekami";
+      SF Pl Loc => x + "igrekach";
+      SF Pl Voc => x + "Igrekowie"
+    };
+
+    oper mkNTable1193: Str -> SubstForm => Str; --%
+    oper mkNTable1193 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iks";
+      SF Sg Gen => x + "iksa";
+      SF Sg Dat => x + "iksowi";
+      SF Sg Acc => x + "iksa";
+      SF Sg Instr => x + "iksem";
+      SF Sg Loc => x + "iksie";
+      SF Sg Voc => x + "iksie";
+      SF Pl Nom => x + "Iksowie";
+      SF Pl Gen => x + "iksów";
+      SF Pl Dat => x + "iksom";
+      SF Pl Acc => x + "iksów";
+      SF Pl Instr => x + "iksami";
+      SF Pl Loc => x + "iksach";
+      SF Pl Voc => x + "Iksowie"
+    };
+
+    oper mkNTable1196: Str -> SubstForm => Str; --%
+    oper mkNTable1196 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "co";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cu";
+      SF Sg Acc => x + "co";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "ca";
+      SF Pl Gen => x + "ec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ca";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ca"
+    };
+
+    oper mkNTable1197: Str -> SubstForm => Str; --%
+    oper mkNTable1197 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "jarek";
+      SF Sg Gen => x + "jarka";
+      SF Sg Dat => x + "Jarkowi";
+      SF Sg Acc => x + "jarek";
+      SF Sg Instr => x + "Jarkiem";
+      SF Sg Loc => x + "Jarku";
+      SF Sg Voc => x + "Jarku";
+      SF Pl Nom => x + "jarki";
+      SF Pl Gen => x + "Jarków";
+      SF Pl Dat => x + "jarkom";
+      SF Pl Acc => x + "jarki";
+      SF Pl Instr => x + "jarkami";
+      SF Pl Loc => x + "jarkach";
+      SF Pl Voc => x + "jarki"
+    };
+
+    oper mkNTable1198: Str -> SubstForm => Str; --%
+    oper mkNTable1198 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąb";
+      SF Sg Gen => x + "ębu";
+      SF Sg Dat => x + "ębowi";
+      SF Sg Acc => x + "ąb";
+      SF Sg Instr => x + "ębiem";
+      SF Sg Loc => x + "ębiu";
+      SF Sg Voc => x + "ębiu";
+      SF Pl Nom => x + "ęby";
+      SF Pl Gen => x + "ębów";
+      SF Pl Dat => x + "ębom";
+      SF Pl Acc => x + "ęby";
+      SF Pl Instr => x + "ębiami";
+      SF Pl Loc => x + "ębiach";
+      SF Pl Voc => x + "ęby"
+    };
+
+    oper mkNTable1199: Str -> SubstForm => Str; --%
+    oper mkNTable1199 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siek";
+      SF Sg Gen => x + "śka";
+      SF Sg Dat => x + "śkowi";
+      SF Sg Acc => x + "siek";
+      SF Sg Instr => x + "śkiem";
+      SF Sg Loc => x + "śku";
+      SF Sg Voc => x + "śku";
+      SF Pl Nom => x + "śki";
+      SF Pl Gen => x + "śków";
+      SF Pl Dat => x + "śkom";
+      SF Pl Acc => x + "śki";
+      SF Pl Instr => x + "śkami";
+      SF Pl Loc => x + "śkach";
+      SF Pl Voc => x + "śki"
+    };
+
+    oper mkNTable1200: Str -> SubstForm => Str; --%
+    oper mkNTable1200 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ź";
+      SF Sg Gen => x + "zia";
+      SF Sg Dat => x + "ziowi";
+      SF Sg Acc => x + "zia";
+      SF Sg Instr => x + "ziem";
+      SF Sg Loc => x + "ziu";
+      SF Sg Voc => x + "ziu";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "zi";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zie";
+      SF Pl Instr => x + "ziami";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable1201: Str -> SubstForm => Str; --%
+    oper mkNTable1201 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "iu";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1202: Str -> SubstForm => Str; --%
+    oper mkNTable1202 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "ni";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1203: Str -> SubstForm => Str; --%
+    oper mkNTable1203 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ziec";
+      SF Sg Gen => x + "źca";
+      SF Sg Dat => x + "źcowi";
+      SF Sg Acc => x + "źca";
+      SF Sg Instr => x + "źcem";
+      SF Sg Loc => x + "źcu";
+      SF Sg Voc => x + "źcze";
+      SF Pl Nom => x + "źcy";
+      SF Pl Gen => x + "źców";
+      SF Pl Dat => x + "źcom";
+      SF Pl Acc => x + "źców";
+      SF Pl Instr => x + "źcami";
+      SF Pl Loc => x + "źcach";
+      SF Pl Voc => x + "źcy"
+    };
+
+    oper mkNTable1204: Str -> SubstForm => Str; --%
+    oper mkNTable1204 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ya";
+      SF Sg Dat => x + "yowi";
+      SF Sg Acc => x + "ya";
+      SF Sg Instr => x + "yem";
+      SF Sg Loc => x + "yu";
+      SF Sg Voc => x + "yu";
+      SF Pl Nom => x + "ye";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "yom";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "yami";
+      SF Pl Loc => x + "yach";
+      SF Pl Voc => x + "ye"
+    };
+
+    oper mkNTable1205: Str -> SubstForm => Str; --%
+    oper mkNTable1205 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ły";
+      SF Sg Dat => x + "le";
+      SF Sg Acc => x + "łę";
+      SF Sg Instr => x + "łą";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "eł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1206: Str -> SubstForm => Str; --%
+    oper mkNTable1206 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Kalita";
+      SF Sg Gen => x + "kality";
+      SF Sg Dat => x + "kalicie";
+      SF Sg Acc => x + "Kalitę";
+      SF Sg Instr => x + "Kalitą";
+      SF Sg Loc => x + "kalicie";
+      SF Sg Voc => x + "Kalito";
+      SF Pl Nom => x + "kality";
+      SF Pl Gen => x + "kalit";
+      SF Pl Dat => x + "kalitom";
+      SF Pl Acc => x + "kality";
+      SF Pl Instr => x + "kalitami";
+      SF Pl Loc => x + "kalitach";
+      SF Pl Voc => x + "kality"
+    };
+
+    oper mkNTable1207: Str -> SubstForm => Str; --%
+    oper mkNTable1207 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ły";
+      SF Sg Dat => x + "le";
+      SF Sg Acc => x + "łę";
+      SF Sg Instr => x + "łą";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "li";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "li"
+    };
+
+    oper mkNTable1208: Str -> SubstForm => Str; --%
+    oper mkNTable1208 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kanar";
+      SF Sg Gen => x + "kanara";
+      SF Sg Dat => x + "kanarowi";
+      SF Sg Acc => x + "kanara";
+      SF Sg Instr => x + "kanarem";
+      SF Sg Loc => x + "kanarze";
+      SF Sg Voc => x + "kanarze";
+      SF Pl Nom => x + "Kanarowie";
+      SF Pl Gen => x + "kanarów";
+      SF Pl Dat => x + "kanarom";
+      SF Pl Acc => x + "kanarów";
+      SF Pl Instr => x + "kanarami";
+      SF Pl Loc => x + "kanarach";
+      SF Pl Voc => x + "Kanarowie"
+    };
+
+    oper mkNTable1209: Str -> SubstForm => Str; --%
+    oper mkNTable1209 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1210: Str -> SubstForm => Str; --%
+    oper mkNTable1210 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "eć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1211: Str -> SubstForm => Str; --%
+    oper mkNTable1211 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "sia";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1212: Str -> SubstForm => Str; --%
+    oper mkNTable1212 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ma";
+      SF Sg Gen => x + "my";
+      SF Sg Dat => x + "mie";
+      SF Sg Acc => x + "mę";
+      SF Sg Instr => x + "mą";
+      SF Sg Loc => x + "mie";
+      SF Sg Voc => x + "mo";
+      SF Pl Nom => x + "my";
+      SF Pl Gen => x + "em";
+      SF Pl Dat => x + "mom";
+      SF Pl Acc => x + "my";
+      SF Pl Instr => x + "mami";
+      SF Pl Loc => x + "mach";
+      SF Pl Voc => x + "my"
+    };
+
+    oper mkNTable1213: Str -> SubstForm => Str; --%
+    oper mkNTable1213 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zeł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "łowie";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "łów";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "łowie"
+    };
+
+    oper mkNTable1214: Str -> SubstForm => Str; --%
+    oper mkNTable1214 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zeł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1215: Str -> SubstForm => Str; --%
+    oper mkNTable1215 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "lu";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "el";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1216: Str -> SubstForm => Str; --%
+    oper mkNTable1216 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iep";
+      SF Sg Gen => x + "pa";
+      SF Sg Dat => x + "powi";
+      SF Sg Acc => x + "iep";
+      SF Sg Instr => x + "pem";
+      SF Sg Loc => x + "pie";
+      SF Sg Voc => x + "pie";
+      SF Pl Nom => x + "py";
+      SF Pl Gen => x + "pów";
+      SF Pl Dat => x + "pom";
+      SF Pl Acc => x + "py";
+      SF Pl Instr => x + "pami";
+      SF Pl Loc => x + "pach";
+      SF Pl Voc => x + "py"
+    };
+
+    oper mkNTable1218: Str -> SubstForm => Str; --%
+    oper mkNTable1218 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1219: Str -> SubstForm => Str; --%
+    oper mkNTable1219 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ieł";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1220: Str -> SubstForm => Str; --%
+    oper mkNTable1220 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zno";
+      SF Sg Gen => x + "zna";
+      SF Sg Dat => x + "znu";
+      SF Sg Acc => x + "zno";
+      SF Sg Instr => x + "znem";
+      SF Sg Loc => x + "źnie";
+      SF Sg Voc => x + "zno";
+      SF Pl Nom => x + "zna";
+      SF Pl Gen => x + "zn";
+      SF Pl Dat => x + "znom";
+      SF Pl Acc => x + "zna";
+      SF Pl Instr => x + "znami";
+      SF Pl Loc => x + "znach";
+      SF Pl Voc => x + "zna"
+    };
+
+    oper mkNTable1221: Str -> SubstForm => Str; --%
+    oper mkNTable1221 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1222: Str -> SubstForm => Str; --%
+    oper mkNTable1222 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1223: Str -> SubstForm => Str; --%
+    oper mkNTable1223 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1224: Str -> SubstForm => Str; --%
+    oper mkNTable1224 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ieć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1225: Str -> SubstForm => Str; --%
+    oper mkNTable1225 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "cioł";
+      SF Sg Gen => x + "tła";
+      SF Sg Dat => x + "tłowi";
+      SF Sg Acc => x + "cioł";
+      SF Sg Instr => x + "tłem";
+      SF Sg Loc => x + "tle";
+      SF Sg Voc => x + "tle";
+      SF Pl Nom => x + "tły";
+      SF Pl Gen => x + "tłów";
+      SF Pl Dat => x + "tłom";
+      SF Pl Acc => x + "tły";
+      SF Pl Instr => x + "tłami";
+      SF Pl Loc => x + "tłach";
+      SF Pl Voc => x + "tły"
+    };
+
+    oper mkNTable1226: Str -> SubstForm => Str; --%
+    oper mkNTable1226 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kogut";
+      SF Sg Gen => x + "koguta";
+      SF Sg Dat => x + "kogutowi";
+      SF Sg Acc => x + "koguta";
+      SF Sg Instr => x + "kogutem";
+      SF Sg Loc => x + "kogucie";
+      SF Sg Voc => x + "kogucie";
+      SF Pl Nom => x + "Kogutowie";
+      SF Pl Gen => x + "kogutów";
+      SF Pl Dat => x + "kogutom";
+      SF Pl Acc => x + "kogutów";
+      SF Pl Instr => x + "kogutami";
+      SF Pl Loc => x + "kogutach";
+      SF Pl Voc => x + "Kogutowie"
+    };
+
+    oper mkNTable1227: Str -> SubstForm => Str; --%
+    oper mkNTable1227 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kokot";
+      SF Sg Gen => x + "kokota";
+      SF Sg Dat => x + "Kokotowi";
+      SF Sg Acc => x + "kokota";
+      SF Sg Instr => x + "Kokotem";
+      SF Sg Loc => x + "kokocie";
+      SF Sg Voc => x + "kokocie";
+      SF Pl Nom => x + "kokoty";
+      SF Pl Gen => x + "Kokotów";
+      SF Pl Dat => x + "kokotom";
+      SF Pl Acc => x + "kokoty";
+      SF Pl Instr => x + "kokotami";
+      SF Pl Loc => x + "kokotach";
+      SF Pl Voc => x + "kokoty"
+    };
+
+    oper mkNTable1228: Str -> SubstForm => Str; --%
+    oper mkNTable1228 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "owa";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "owów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable1229: Str -> SubstForm => Str; --%
+    oper mkNTable1229 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ga";
+      SF Sg Gen => x + "gi";
+      SF Sg Dat => x + "dze";
+      SF Sg Acc => x + "gę";
+      SF Sg Instr => x + "gą";
+      SF Sg Loc => x + "dze";
+      SF Sg Voc => x + "go";
+      SF Pl Nom => x + "dzy";
+      SF Pl Gen => x + "gów";
+      SF Pl Dat => x + "gom";
+      SF Pl Acc => x + "gów";
+      SF Pl Instr => x + "gami";
+      SF Pl Loc => x + "gach";
+      SF Pl Voc => x + "dzy"
+    };
+
+    oper mkNTable1230: Str -> SubstForm => Str; --%
+    oper mkNTable1230 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "j";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "j";
+      SF Sg Instr => x + "ją";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable1232: Str -> SubstForm => Str; --%
+    oper mkNTable1232 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Koleśnik";
+      SF Sg Gen => x + "Koleśnika";
+      SF Sg Dat => x + "Koleśnikowi";
+      SF Sg Acc => x + "Koleśnika";
+      SF Sg Instr => x + "Koleśnikiem";
+      SF Sg Loc => x + "Koleśniku";
+      SF Sg Voc => x + "Koleśniku";
+      SF Pl Nom => x + "koleśnicy";
+      SF Pl Gen => x + "Koleśników";
+      SF Pl Dat => x + "Koleśnikom";
+      SF Pl Acc => x + "Koleśników";
+      SF Pl Instr => x + "Koleśnikami";
+      SF Pl Loc => x + "Koleśnikach";
+      SF Pl Voc => x + "koleśnicy"
+    };
+
+    oper mkNTable1233: Str -> SubstForm => Str; --%
+    oper mkNTable1233 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ew";
+      SF Sg Gen => x + "wi";
+      SF Sg Dat => x + "wi";
+      SF Sg Acc => x + "ew";
+      SF Sg Instr => x + "wią";
+      SF Sg Loc => x + "wi";
+      SF Sg Voc => x + "wi";
+      SF Pl Nom => x + "wie";
+      SF Pl Gen => x + "wi";
+      SF Pl Dat => x + "wiom";
+      SF Pl Acc => x + "wie";
+      SF Pl Instr => x + "wiami";
+      SF Pl Loc => x + "wiach";
+      SF Pl Voc => x + "wie"
+    };
+
+    oper mkNTable1234: Str -> SubstForm => Str; --%
+    oper mkNTable1234 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "konik";
+      SF Sg Gen => x + "konika";
+      SF Sg Dat => x + "konikowi";
+      SF Sg Acc => x + "konika";
+      SF Sg Instr => x + "konikiem";
+      SF Sg Loc => x + "koniku";
+      SF Sg Voc => x + "koniku";
+      SF Pl Nom => x + "Konikowie";
+      SF Pl Gen => x + "koników";
+      SF Pl Dat => x + "konikom";
+      SF Pl Acc => x + "koników";
+      SF Pl Instr => x + "konikami";
+      SF Pl Loc => x + "konikach";
+      SF Pl Voc => x + "Konikowie"
+    };
+
+    oper mkNTable1235: Str -> SubstForm => Str; --%
+    oper mkNTable1235 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kopa";
+      SF Sg Gen => x + "kopy";
+      SF Sg Dat => x + "kopie";
+      SF Sg Acc => x + "Kopę";
+      SF Sg Instr => x + "Kopą";
+      SF Sg Loc => x + "kopie";
+      SF Sg Voc => x + "Kopo";
+      SF Pl Nom => x + "kopy";
+      SF Pl Gen => x + "kop";
+      SF Pl Dat => x + "kopom";
+      SF Pl Acc => x + "kopy";
+      SF Pl Instr => x + "kopami";
+      SF Pl Loc => x + "kopach";
+      SF Pl Voc => x + "kopy"
+    };
+
+    oper mkNTable1236: Str -> SubstForm => Str; --%
+    oper mkNTable1236 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "ciu";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "eć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1237: Str -> SubstForm => Str; --%
+    oper mkNTable1237 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1238: Str -> SubstForm => Str; --%
+    oper mkNTable1238 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "kot";
+      SF Sg Gen => x + "kota";
+      SF Sg Dat => x + "kotu";
+      SF Sg Acc => x + "kota";
+      SF Sg Instr => x + "kotem";
+      SF Sg Loc => x + "kocie";
+      SF Sg Voc => x + "kocie";
+      SF Pl Nom => x + "Kotowie";
+      SF Pl Gen => x + "kotów";
+      SF Pl Dat => x + "kotom";
+      SF Pl Acc => x + "kotów";
+      SF Pl Instr => x + "kotami";
+      SF Pl Loc => x + "kotach";
+      SF Pl Voc => x + "Kotowie"
+    };
+
+    oper mkNTable1239: Str -> SubstForm => Str; --%
+    oper mkNTable1239 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Kozieł";
+      SF Sg Gen => x + "kozła";
+      SF Sg Dat => x + "Kozłowi";
+      SF Sg Acc => x + "kozła";
+      SF Sg Instr => x + "kozłem";
+      SF Sg Loc => x + "koźle";
+      SF Sg Voc => x + "koźle";
+      SF Pl Nom => x + "kozły";
+      SF Pl Gen => x + "kozłów";
+      SF Pl Dat => x + "kozłom";
+      SF Pl Acc => x + "kozły";
+      SF Pl Instr => x + "kozłami";
+      SF Pl Loc => x + "kozłach";
+      SF Pl Voc => x + "kozły"
+    };
+
+    oper mkNTable1240: Str -> SubstForm => Str; --%
+    oper mkNTable1240 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kozioł";
+      SF Sg Gen => x + "kozła";
+      SF Sg Dat => x + "Kozłowi";
+      SF Sg Acc => x + "kozła";
+      SF Sg Instr => x + "kozłem";
+      SF Sg Loc => x + "koźle";
+      SF Sg Voc => x + "koźle";
+      SF Pl Nom => x + "kozły";
+      SF Pl Gen => x + "kozłów";
+      SF Pl Dat => x + "kozłom";
+      SF Pl Acc => x + "kozły";
+      SF Pl Instr => x + "kozłami";
+      SF Pl Loc => x + "kozłach";
+      SF Pl Voc => x + "kozły"
+    };
+
+    oper mkNTable1241: Str -> SubstForm => Str; --%
+    oper mkNTable1241 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kozioł";
+      SF Sg Gen => x + "kozła";
+      SF Sg Dat => x + "Kozłowi";
+      SF Sg Acc => x + "kozioł";
+      SF Sg Instr => x + "kozłem";
+      SF Sg Loc => x + "koźle";
+      SF Sg Voc => x + "koźle";
+      SF Pl Nom => x + "kozły";
+      SF Pl Gen => x + "kozłów";
+      SF Pl Dat => x + "kozłom";
+      SF Pl Acc => x + "kozły";
+      SF Pl Instr => x + "kozłami";
+      SF Pl Loc => x + "kozłach";
+      SF Pl Voc => x + "kozły"
+    };
+
+    oper mkNTable1242: Str -> SubstForm => Str; --%
+    oper mkNTable1242 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oja";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "oja";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "ojów";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "oje";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable1244: Str -> SubstForm => Str; --%
+    oper mkNTable1244 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kołacz";
+      SF Sg Gen => x + "kołacza";
+      SF Sg Dat => x + "kołaczowi";
+      SF Sg Acc => x + "kołacza";
+      SF Sg Instr => x + "kołaczem";
+      SF Sg Loc => x + "kołaczu";
+      SF Sg Voc => x + "kołaczu";
+      SF Pl Nom => x + "kołacze";
+      SF Pl Gen => x + "Kołaczów";
+      SF Pl Dat => x + "kołaczom";
+      SF Pl Acc => x + "kołacze";
+      SF Pl Instr => x + "kołaczami";
+      SF Pl Loc => x + "kołaczach";
+      SF Pl Voc => x + "kołacze"
+    };
+
+    oper mkNTable1245: Str -> SubstForm => Str; --%
+    oper mkNTable1245 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kołek";
+      SF Sg Gen => x + "kołka";
+      SF Sg Dat => x + "kołkowi";
+      SF Sg Acc => x + "kołka";
+      SF Sg Instr => x + "kołkiem";
+      SF Sg Loc => x + "kołku";
+      SF Sg Voc => x + "kołku";
+      SF Pl Nom => x + "Kołkowie";
+      SF Pl Gen => x + "kołków";
+      SF Pl Dat => x + "kołkom";
+      SF Pl Acc => x + "kołków";
+      SF Pl Instr => x + "kołkami";
+      SF Pl Loc => x + "kołkach";
+      SF Pl Voc => x + "Kołkowie"
+    };
+
+    oper mkNTable1246: Str -> SubstForm => Str; --%
+    oper mkNTable1246 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ót";
+      SF Sg Gen => x + "otu";
+      SF Sg Dat => x + "otowi";
+      SF Sg Acc => x + "ót";
+      SF Sg Instr => x + "otem";
+      SF Sg Loc => x + "ocie";
+      SF Sg Voc => x + "ocie";
+      SF Pl Nom => x + "oty";
+      SF Pl Gen => x + "otów";
+      SF Pl Dat => x + "otom";
+      SF Pl Acc => x + "oty";
+      SF Pl Instr => x + "otami";
+      SF Pl Loc => x + "otach";
+      SF Pl Voc => x + "oty"
+    };
+
+    oper mkNTable1248: Str -> SubstForm => Str; --%
+    oper mkNTable1248 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "ół";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ele";
+      SF Sg Voc => x + "ele";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1249: Str -> SubstForm => Str; --%
+    oper mkNTable1249 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable1250: Str -> SubstForm => Str; --%
+    oper mkNTable1250 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "ńmi";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1251: Str -> SubstForm => Str; --%
+    oper mkNTable1251 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kret";
+      SF Sg Gen => x + "kreta";
+      SF Sg Dat => x + "kretowi";
+      SF Sg Acc => x + "kreta";
+      SF Sg Instr => x + "kretem";
+      SF Sg Loc => x + "krecie";
+      SF Sg Voc => x + "krecie";
+      SF Pl Nom => x + "Kretowie";
+      SF Pl Gen => x + "kretów";
+      SF Pl Dat => x + "kretom";
+      SF Pl Acc => x + "kretów";
+      SF Pl Instr => x + "kretami";
+      SF Pl Loc => x + "kretach";
+      SF Pl Voc => x + "Kretowie"
+    };
+
+    oper mkNTable1252: Str -> SubstForm => Str; --%
+    oper mkNTable1252 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sno";
+      SF Sg Gen => x + "sna";
+      SF Sg Dat => x + "snu";
+      SF Sg Acc => x + "sno";
+      SF Sg Instr => x + "snem";
+      SF Sg Loc => x + "śnie";
+      SF Sg Voc => x + "sno";
+      SF Pl Nom => x + "sna";
+      SF Pl Gen => x + "sien";
+      SF Pl Dat => x + "snom";
+      SF Pl Acc => x + "sna";
+      SF Pl Instr => x + "snami";
+      SF Pl Loc => x + "snach";
+      SF Pl Voc => x + "sna"
+    };
+
+    oper mkNTable1253: Str -> SubstForm => Str; --%
+    oper mkNTable1253 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "cu";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable1254: Str -> SubstForm => Str; --%
+    oper mkNTable1254 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "eć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1255: Str -> SubstForm => Str; --%
+    oper mkNTable1255 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "krzykała";
+      SF Sg Gen => x + "krzykały";
+      SF Sg Dat => x + "krzykale";
+      SF Sg Acc => x + "krzykałę";
+      SF Sg Instr => x + "krzykałą";
+      SF Sg Loc => x + "krzykale";
+      SF Sg Voc => x + "krzykało";
+      SF Pl Nom => x + "Krzykałowie";
+      SF Pl Gen => x + "krzykałów";
+      SF Pl Dat => x + "krzykałom";
+      SF Pl Acc => x + "krzykałów";
+      SF Pl Instr => x + "krzykałami";
+      SF Pl Loc => x + "krzykałach";
+      SF Pl Voc => x + "Krzykałowie"
+    };
+
+    oper mkNTable1256: Str -> SubstForm => Str; --%
+    oper mkNTable1256 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąg";
+      SF Sg Gen => x + "ęgu";
+      SF Sg Dat => x + "ęgowi";
+      SF Sg Acc => x + "ąg";
+      SF Sg Instr => x + "ęgiem";
+      SF Sg Loc => x + "ęgu";
+      SF Sg Voc => x + "ęgu";
+      SF Pl Nom => x + "ęgi";
+      SF Pl Gen => x + "ęgów";
+      SF Pl Dat => x + "ęgom";
+      SF Pl Acc => x + "ęgi";
+      SF Pl Instr => x + "ęgami";
+      SF Pl Loc => x + "ęgach";
+      SF Pl Voc => x + "ęgi"
+    };
+
+    oper mkNTable1257: Str -> SubstForm => Str; --%
+    oper mkNTable1257 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ądz";
+      SF Sg Gen => x + "ędza";
+      SF Sg Dat => x + "ędzu";
+      SF Sg Acc => x + "ędza";
+      SF Sg Instr => x + "ędzem";
+      SF Sg Loc => x + "ędzu";
+      SF Sg Voc => x + "ęże";
+      SF Pl Nom => x + "ęża";
+      SF Pl Gen => x + "ęży";
+      SF Pl Dat => x + "ężom";
+      SF Pl Acc => x + "ęży";
+      SF Pl Instr => x + "ężmi";
+      SF Pl Loc => x + "ężach";
+      SF Pl Voc => x + "ęża"
+    };
+
+    oper mkNTable1258: Str -> SubstForm => Str; --%
+    oper mkNTable1258 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ęga";
+      SF Sg Gen => x + "ęgi";
+      SF Sg Dat => x + "ędze";
+      SF Sg Acc => x + "ęgę";
+      SF Sg Instr => x + "ęgą";
+      SF Sg Loc => x + "ędze";
+      SF Sg Voc => x + "ęgo";
+      SF Pl Nom => x + "ęgi";
+      SF Pl Gen => x + "ąg";
+      SF Pl Dat => x + "ęgom";
+      SF Pl Acc => x + "ęgi";
+      SF Pl Instr => x + "ęgami";
+      SF Pl Loc => x + "ęgach";
+      SF Pl Voc => x + "ęgi"
+    };
+
+    oper mkNTable1259: Str -> SubstForm => Str; --%
+    oper mkNTable1259 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "eł";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1260: Str -> SubstForm => Str; --%
+    oper mkNTable1260 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kudła";
+      SF Sg Gen => x + "kudły";
+      SF Sg Dat => x + "Kudle";
+      SF Sg Acc => x + "Kudłę";
+      SF Sg Instr => x + "Kudłą";
+      SF Sg Loc => x + "Kudle";
+      SF Sg Voc => x + "Kudło";
+      SF Pl Nom => x + "kudły";
+      SF Pl Gen => x + "kudeł";
+      SF Pl Dat => x + "kudłom";
+      SF Pl Acc => x + "kudły";
+      SF Pl Instr => x + "kudłami";
+      SF Pl Loc => x + "kudłach";
+      SF Pl Voc => x + "kudły"
+    };
+
+    oper mkNTable1261: Str -> SubstForm => Str; --%
+    oper mkNTable1261 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kudła";
+      SF Sg Gen => x + "kudły";
+      SF Sg Dat => x + "Kudle";
+      SF Sg Acc => x + "Kudłę";
+      SF Sg Instr => x + "Kudłą";
+      SF Sg Loc => x + "Kudle";
+      SF Sg Voc => x + "Kudło";
+      SF Pl Nom => x + "Kudłowie";
+      SF Pl Gen => x + "kudłów";
+      SF Pl Dat => x + "kudłom";
+      SF Pl Acc => x + "kudłów";
+      SF Pl Instr => x + "kudłami";
+      SF Pl Loc => x + "kudłach";
+      SF Pl Voc => x + "Kudłowie"
+    };
+
+    oper mkNTable1262: Str -> SubstForm => Str; --%
+    oper mkNTable1262 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "sta";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "ści";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "stów";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "ści"
+    };
+
+    oper mkNTable1263: Str -> SubstForm => Str; --%
+    oper mkNTable1263 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "kusz";
+      SF Sg Gen => x + "Kuszu";
+      SF Sg Dat => x + "Kuszowi";
+      SF Sg Acc => x + "kusz";
+      SF Sg Instr => x + "Kuszem";
+      SF Sg Loc => x + "Kuszu";
+      SF Sg Voc => x + "Kuszu";
+      SF Pl Nom => x + "kusze";
+      SF Pl Gen => x + "kuszy";
+      SF Pl Dat => x + "kuszom";
+      SF Pl Acc => x + "kusze";
+      SF Pl Instr => x + "kuszami";
+      SF Pl Loc => x + "kuszach";
+      SF Pl Voc => x + "kusze"
+    };
+
+    oper mkNTable1264: Str -> SubstForm => Str; --%
+    oper mkNTable1264 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Kuta";
+      SF Sg Gen => x + "Kuty";
+      SF Sg Dat => x + "kucie";
+      SF Sg Acc => x + "Kutę";
+      SF Sg Instr => x + "Kutą";
+      SF Sg Loc => x + "kucie";
+      SF Sg Voc => x + "Kuto";
+      SF Pl Nom => x + "Kuty";
+      SF Pl Gen => x + "Kut";
+      SF Pl Dat => x + "Kutom";
+      SF Pl Acc => x + "Kuty";
+      SF Pl Instr => x + "Kutami";
+      SF Pl Loc => x + "Kutach";
+      SF Pl Voc => x + "Kuty"
+    };
+
+    oper mkNTable1266: Str -> SubstForm => Str; --%
+    oper mkNTable1266 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Kuźnik";
+      SF Sg Gen => x + "Kuźnika";
+      SF Sg Dat => x + "Kuźnikowi";
+      SF Sg Acc => x + "Kuźnika";
+      SF Sg Instr => x + "Kuźnikiem";
+      SF Sg Loc => x + "Kuźniku";
+      SF Sg Voc => x + "Kuźniku";
+      SF Pl Nom => x + "kuźnicy";
+      SF Pl Gen => x + "Kuźników";
+      SF Pl Dat => x + "Kuźnikom";
+      SF Pl Acc => x + "Kuźników";
+      SF Pl Instr => x + "Kuźnikami";
+      SF Pl Loc => x + "Kuźnikach";
+      SF Pl Voc => x + "kuźnicy"
+    };
+
+    oper mkNTable1267: Str -> SubstForm => Str; --%
+    oper mkNTable1267 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1268: Str -> SubstForm => Str; --%
+    oper mkNTable1268 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "cień";
+      SF Sg Gen => x + "tnia";
+      SF Sg Dat => x + "tniowi";
+      SF Sg Acc => x + "cień";
+      SF Sg Instr => x + "tniem";
+      SF Sg Loc => x + "tniu";
+      SF Sg Voc => x + "tniu";
+      SF Pl Nom => x + "tnie";
+      SF Pl Gen => x + "tniów";
+      SF Pl Dat => x + "tniom";
+      SF Pl Acc => x + "tnie";
+      SF Pl Instr => x + "tniami";
+      SF Pl Loc => x + "tniach";
+      SF Pl Voc => x + "tnie"
+    };
+
+    oper mkNTable1269: Str -> SubstForm => Str; --%
+    oper mkNTable1269 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "u";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1270: Str -> SubstForm => Str; --%
+    oper mkNTable1270 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable1271: Str -> SubstForm => Str; --%
+    oper mkNTable1271 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "as";
+      SF Sg Gen => x + "asu";
+      SF Sg Dat => x + "asowi";
+      SF Sg Acc => x + "as";
+      SF Sg Instr => x + "asem";
+      SF Sg Loc => x + "esie";
+      SF Sg Voc => x + "esie";
+      SF Pl Nom => x + "asy";
+      SF Pl Gen => x + "asów";
+      SF Pl Dat => x + "asom";
+      SF Pl Acc => x + "asy";
+      SF Pl Instr => x + "asami";
+      SF Pl Loc => x + "asach";
+      SF Pl Voc => x + "asy"
+    };
+
+    oper mkNTable1272: Str -> SubstForm => Str; --%
+    oper mkNTable1272 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "co";
+      SF Sg Gen => x + "co";
+      SF Sg Dat => x + "cu";
+      SF Sg Acc => x + "co";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "co";
+      SF Pl Gen => x + "co";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "co";
+      SF Pl Instr => x + "co";
+      SF Pl Loc => x + "co";
+      SF Pl Voc => x + "co"
+    };
+
+    oper mkNTable1273: Str -> SubstForm => Str; --%
+    oper mkNTable1273 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cze";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable1274: Str -> SubstForm => Str; --%
+    oper mkNTable1274 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ato";
+      SF Sg Gen => x + "ata";
+      SF Sg Dat => x + "atu";
+      SF Sg Acc => x + "ato";
+      SF Sg Instr => x + "atem";
+      SF Sg Loc => x + "ecie";
+      SF Sg Voc => x + "ato";
+      SF Pl Nom => x + "ata";
+      SF Pl Gen => x + "at";
+      SF Pl Dat => x + "atom";
+      SF Pl Acc => x + "ata";
+      SF Pl Instr => x + "atami";
+      SF Pl Loc => x + "atach";
+      SF Pl Voc => x + "ata"
+    };
+
+    oper mkNTable1275: Str -> SubstForm => Str; --%
+    oper mkNTable1275 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "j";
+      SF Sg Gen => x + "ja";
+      SF Sg Dat => x + "jowi";
+      SF Sg Acc => x + "ja";
+      SF Sg Instr => x + "jem";
+      SF Sg Loc => x + "ju";
+      SF Sg Voc => x + "ju";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable1276: Str -> SubstForm => Str; --%
+    oper mkNTable1276 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "lepsze";
+      SF Sg Gen => x + "Lepszego";
+      SF Sg Dat => x + "Lepszemu";
+      SF Sg Acc => x + "lepsze";
+      SF Sg Instr => x + "Lepszym";
+      SF Sg Loc => x + "Lepszym";
+      SF Sg Voc => x + "lepsze";
+      SF Pl Nom => x + "lepsze";
+      SF Pl Gen => x + "Lepszych";
+      SF Pl Dat => x + "Lepszym";
+      SF Pl Acc => x + "lepsze";
+      SF Pl Instr => x + "Lepszymi";
+      SF Pl Loc => x + "Lepszych";
+      SF Pl Voc => x + "lepsze"
+    };
+
+    oper mkNTable1278: Str -> SubstForm => Str; --%
+    oper mkNTable1278 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1279: Str -> SubstForm => Str; --%
+    oper mkNTable1279 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1280: Str -> SubstForm => Str; --%
+    oper mkNTable1280 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "um";
+      SF Sg Gen => x + "um";
+      SF Sg Dat => x + "um";
+      SF Sg Acc => x + "um";
+      SF Sg Instr => x + "um";
+      SF Sg Loc => x + "um";
+      SF Sg Voc => x + "um";
+      SF Pl Nom => x + "um";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "um";
+      SF Pl Acc => x + "um";
+      SF Pl Instr => x + "um";
+      SF Pl Loc => x + "um";
+      SF Pl Voc => x + "um"
+    };
+
+    oper mkNTable1281: Str -> SubstForm => Str; --%
+    oper mkNTable1281 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oża";
+      SF Sg Gen => x + "oży";
+      SF Sg Dat => x + "oży";
+      SF Sg Acc => x + "ożę";
+      SF Sg Instr => x + "ożą";
+      SF Sg Loc => x + "oży";
+      SF Sg Voc => x + "ożo";
+      SF Pl Nom => x + "oże";
+      SF Pl Gen => x + "óż";
+      SF Pl Dat => x + "ożom";
+      SF Pl Acc => x + "oże";
+      SF Pl Instr => x + "ożami";
+      SF Pl Loc => x + "ożach";
+      SF Pl Voc => x + "oże"
+    };
+
+    oper mkNTable1283: Str -> SubstForm => Str; --%
+    oper mkNTable1283 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable1284: Str -> SubstForm => Str; --%
+    oper mkNTable1284 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "śka";
+      SF Sg Gen => x + "śki";
+      SF Sg Dat => x + "śce";
+      SF Sg Acc => x + "śkę";
+      SF Sg Instr => x + "śką";
+      SF Sg Loc => x + "śce";
+      SF Sg Voc => x + "śku";
+      SF Pl Nom => x + "śki";
+      SF Pl Gen => x + "siek";
+      SF Pl Dat => x + "śkom";
+      SF Pl Acc => x + "śki";
+      SF Pl Instr => x + "śkami";
+      SF Pl Loc => x + "śkach";
+      SF Pl Voc => x + "śki"
+    };
+
+    oper mkNTable1285: Str -> SubstForm => Str; --%
+    oper mkNTable1285 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "lu";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "iel";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "li";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "le";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1287: Str -> SubstForm => Str; --%
+    oper mkNTable1287 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ech";
+      SF Sg Gen => x + "chu";
+      SF Sg Dat => x + "chowi";
+      SF Sg Acc => x + "ech";
+      SF Sg Instr => x + "chem";
+      SF Sg Loc => x + "chu";
+      SF Sg Voc => x + "chu";
+      SF Pl Nom => x + "chy";
+      SF Pl Gen => x + "chów";
+      SF Pl Dat => x + "chom";
+      SF Pl Acc => x + "chy";
+      SF Pl Instr => x + "chami";
+      SF Pl Loc => x + "chach";
+      SF Pl Voc => x + "chy"
+    };
+
+    oper mkNTable1288: Str -> SubstForm => Str; --%
+    oper mkNTable1288 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "x";
+      SF Sg Gen => x + "ksa";
+      SF Sg Dat => x + "ksowi";
+      SF Sg Acc => x + "ksa";
+      SF Sg Instr => x + "ksem";
+      SF Sg Loc => x + "ksie";
+      SF Sg Voc => x + "ksie";
+      SF Pl Nom => x + "ksy";
+      SF Pl Gen => x + "ksów";
+      SF Pl Dat => x + "ksom";
+      SF Pl Acc => x + "ksy";
+      SF Pl Instr => x + "ksami";
+      SF Pl Loc => x + "ksach";
+      SF Pl Voc => x + "ksy"
+    };
+
+    oper mkNTable1289: Str -> SubstForm => Str; --%
+    oper mkNTable1289 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ków";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable1290: Str -> SubstForm => Str; --%
+    oper mkNTable1290 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ara";
+      SF Sg Gen => x + "ary";
+      SF Sg Dat => x + "erze";
+      SF Sg Acc => x + "arę";
+      SF Sg Instr => x + "arą";
+      SF Sg Loc => x + "erze";
+      SF Sg Voc => x + "aro";
+      SF Pl Nom => x + "ary";
+      SF Pl Gen => x + "ar";
+      SF Pl Dat => x + "arom";
+      SF Pl Acc => x + "ary";
+      SF Pl Instr => x + "arami";
+      SF Pl Loc => x + "arach";
+      SF Pl Voc => x + "ary"
+    };
+
+    oper mkNTable1291: Str -> SubstForm => Str; --%
+    oper mkNTable1291 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąc";
+      SF Sg Gen => x + "ąca";
+      SF Sg Dat => x + "ącowi";
+      SF Sg Acc => x + "ąc";
+      SF Sg Instr => x + "ącem";
+      SF Sg Loc => x + "ącu";
+      SF Sg Voc => x + "ącu";
+      SF Pl Nom => x + "ące";
+      SF Pl Gen => x + "ęcy";
+      SF Pl Dat => x + "ącom";
+      SF Pl Acc => x + "ące";
+      SF Pl Instr => x + "ącami";
+      SF Pl Loc => x + "ącach";
+      SF Pl Voc => x + "ące"
+    };
+
+    oper mkNTable1292: Str -> SubstForm => Str; --%
+    oper mkNTable1292 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "at";
+      SF Sg Gen => x + "atu";
+      SF Sg Dat => x + "atu";
+      SF Sg Acc => x + "at";
+      SF Sg Instr => x + "atem";
+      SF Sg Loc => x + "ecie";
+      SF Sg Voc => x + "ecie";
+      SF Pl Nom => x + "aty";
+      SF Pl Gen => x + "atów";
+      SF Pl Dat => x + "atom";
+      SF Pl Acc => x + "aty";
+      SF Pl Instr => x + "atami";
+      SF Pl Loc => x + "atach";
+      SF Pl Voc => x + "aty"
+    };
+
+    oper mkNTable1293: Str -> SubstForm => Str; --%
+    oper mkNTable1293 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "sta";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable1294: Str -> SubstForm => Str; --%
+    oper mkNTable1294 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siek";
+      SF Sg Gen => x + "śka";
+      SF Sg Dat => x + "śkowi";
+      SF Sg Acc => x + "śka";
+      SF Sg Instr => x + "śkiem";
+      SF Sg Loc => x + "śku";
+      SF Sg Voc => x + "śku";
+      SF Pl Nom => x + "śki";
+      SF Pl Gen => x + "śków";
+      SF Pl Dat => x + "śkom";
+      SF Pl Acc => x + "śki";
+      SF Pl Instr => x + "śkami";
+      SF Pl Loc => x + "śkach";
+      SF Pl Voc => x + "śki"
+    };
+
+    oper mkNTable1295: Str -> SubstForm => Str; --%
+    oper mkNTable1295 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "sień";
+      SF Sg Gen => x + "śnia";
+      SF Sg Dat => x + "śniowi";
+      SF Sg Acc => x + "sień";
+      SF Sg Instr => x + "śniem";
+      SF Sg Loc => x + "śniu";
+      SF Sg Voc => x + "śniu";
+      SF Pl Nom => x + "śnie";
+      SF Pl Gen => x + "śni";
+      SF Pl Dat => x + "śniom";
+      SF Pl Acc => x + "śnie";
+      SF Pl Instr => x + "śniami";
+      SF Pl Loc => x + "śniach";
+      SF Pl Voc => x + "śnie"
+    };
+
+    oper mkNTable1296: Str -> SubstForm => Str; --%
+    oper mkNTable1296 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1297: Str -> SubstForm => Str; --%
+    oper mkNTable1297 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "orga";
+      SF Sg Gen => x + "orgi";
+      SF Sg Dat => x + "ordze";
+      SF Sg Acc => x + "orgę";
+      SF Sg Instr => x + "orgą";
+      SF Sg Loc => x + "ordze";
+      SF Sg Voc => x + "orgo";
+      SF Pl Nom => x + "orgi";
+      SF Pl Gen => x + "órg";
+      SF Pl Dat => x + "orgom";
+      SF Pl Acc => x + "orgi";
+      SF Pl Instr => x + "orgami";
+      SF Pl Loc => x + "orgach";
+      SF Pl Voc => x + "orgi"
+    };
+
+    oper mkNTable1298: Str -> SubstForm => Str; --%
+    oper mkNTable1298 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "orze";
+      SF Sg Gen => x + "orza";
+      SF Sg Dat => x + "orzu";
+      SF Sg Acc => x + "orze";
+      SF Sg Instr => x + "orzem";
+      SF Sg Loc => x + "orzu";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => x + "orza";
+      SF Pl Gen => x + "órz";
+      SF Pl Dat => x + "orzom";
+      SF Pl Acc => x + "orza";
+      SF Pl Instr => x + "orzami";
+      SF Pl Loc => x + "orzach";
+      SF Pl Voc => x + "orza"
+    };
+
+    oper mkNTable1299: Str -> SubstForm => Str; --%
+    oper mkNTable1299 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "łła";
+      SF Sg Gen => x + "łły";
+      SF Sg Dat => x + "lle";
+      SF Sg Acc => x + "łłę";
+      SF Sg Instr => x + "łłą";
+      SF Sg Loc => x + "lle";
+      SF Sg Voc => x + "łło";
+      SF Pl Nom => x + "łłowie";
+      SF Pl Gen => x + "łłów";
+      SF Pl Dat => x + "łłom";
+      SF Pl Acc => x + "łłów";
+      SF Pl Instr => x + "łłami";
+      SF Pl Loc => x + "łłach";
+      SF Pl Voc => x + "łłowie"
+    };
+
+    oper mkNTable1301: Str -> SubstForm => Str; --%
+    oper mkNTable1301 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "mruk";
+      SF Sg Gen => x + "mruka";
+      SF Sg Dat => x + "mrukowi";
+      SF Sg Acc => x + "mruka";
+      SF Sg Instr => x + "mrukiem";
+      SF Sg Loc => x + "mruku";
+      SF Sg Voc => x + "mruku";
+      SF Pl Nom => x + "Mrukowie";
+      SF Pl Gen => x + "mruków";
+      SF Pl Dat => x + "mrukom";
+      SF Pl Acc => x + "mruków";
+      SF Pl Instr => x + "mrukami";
+      SF Pl Loc => x + "mrukach";
+      SF Pl Voc => x + "Mrukowie"
+    };
+
+    oper mkNTable1303: Str -> SubstForm => Str; --%
+    oper mkNTable1303 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1304: Str -> SubstForm => Str; --%
+    oper mkNTable1304 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable1305: Str -> SubstForm => Str; --%
+    oper mkNTable1305 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąż";
+      SF Sg Gen => x + "ęża";
+      SF Sg Dat => x + "ężowi";
+      SF Sg Acc => x + "ęża";
+      SF Sg Instr => x + "ężem";
+      SF Sg Loc => x + "ężu";
+      SF Sg Voc => x + "ężu";
+      SF Pl Nom => x + "ężowie";
+      SF Pl Gen => x + "ężów";
+      SF Pl Dat => x + "ężom";
+      SF Pl Acc => x + "ężów";
+      SF Pl Instr => x + "ężami";
+      SF Pl Loc => x + "ężach";
+      SF Pl Voc => x + "ężowie"
+    };
+
+    oper mkNTable1306: Str -> SubstForm => Str; --%
+    oper mkNTable1306 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "młocek";
+      SF Sg Gen => x + "młocka";
+      SF Sg Dat => x + "młockowi";
+      SF Sg Acc => x + "młocka";
+      SF Sg Instr => x + "młockiem";
+      SF Sg Loc => x + "młocku";
+      SF Sg Voc => x + "młocku";
+      SF Pl Nom => x + "Młockowie";
+      SF Pl Gen => x + "młocków";
+      SF Pl Dat => x + "młockom";
+      SF Pl Acc => x + "młocków";
+      SF Pl Instr => x + "młockami";
+      SF Pl Loc => x + "młockach";
+      SF Pl Voc => x + "Młockowie"
+    };
+
+    oper mkNTable1308: Str -> SubstForm => Str; --%
+    oper mkNTable1308 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "młotek";
+      SF Sg Gen => x + "młotka";
+      SF Sg Dat => x + "młotkowi";
+      SF Sg Acc => x + "młotka";
+      SF Sg Instr => x + "młotkiem";
+      SF Sg Loc => x + "młotku";
+      SF Sg Voc => x + "młotku";
+      SF Pl Nom => x + "Młotkowie";
+      SF Pl Gen => x + "młotków";
+      SF Pl Dat => x + "młotkom";
+      SF Pl Acc => x + "młotków";
+      SF Pl Instr => x + "młotkami";
+      SF Pl Loc => x + "młotkach";
+      SF Pl Voc => x + "Młotkowie"
+    };
+
+    oper mkNTable1310: Str -> SubstForm => Str; --%
+    oper mkNTable1310 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zna";
+      SF Sg Gen => x + "zny";
+      SF Sg Dat => x + "źnie";
+      SF Sg Acc => x + "znę";
+      SF Sg Instr => x + "zną";
+      SF Sg Loc => x + "źnie";
+      SF Sg Voc => x + "zno";
+      SF Pl Nom => x + "źni";
+      SF Pl Gen => x + "zn";
+      SF Pl Dat => x + "znom";
+      SF Pl Acc => x + "zn";
+      SF Pl Instr => x + "znami";
+      SF Pl Loc => x + "znach";
+      SF Pl Voc => x + "źni"
+    };
+
+    oper mkNTable1311: Str -> SubstForm => Str; --%
+    oper mkNTable1311 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ól";
+      SF Sg Gen => x + "ola";
+      SF Sg Dat => x + "olowi";
+      SF Sg Acc => x + "ola";
+      SF Sg Instr => x + "olem";
+      SF Sg Loc => x + "olu";
+      SF Sg Voc => x + "olu";
+      SF Pl Nom => x + "ole";
+      SF Pl Gen => x + "oli";
+      SF Pl Dat => x + "olom";
+      SF Pl Acc => x + "ole";
+      SF Pl Instr => x + "olami";
+      SF Pl Loc => x + "olach";
+      SF Pl Voc => x + "ole"
+    };
+
+    oper mkNTable1312: Str -> SubstForm => Str; --%
+    oper mkNTable1312 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "órg";
+      SF Sg Gen => x + "orga";
+      SF Sg Dat => x + "orgowi";
+      SF Sg Acc => x + "órg";
+      SF Sg Instr => x + "orgiem";
+      SF Sg Loc => x + "orgu";
+      SF Sg Voc => x + "orgu";
+      SF Pl Nom => x + "orgi";
+      SF Pl Gen => x + "orgów";
+      SF Pl Dat => x + "orgom";
+      SF Pl Acc => x + "orgi";
+      SF Pl Instr => x + "orgami";
+      SF Pl Loc => x + "orgach";
+      SF Pl Voc => x + "orgi"
+    };
+
+    oper mkNTable1313: Str -> SubstForm => Str; --%
+    oper mkNTable1313 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ńko";
+      SF Sg Gen => x + "ńka";
+      SF Sg Dat => x + "ńku";
+      SF Sg Acc => x + "ńko";
+      SF Sg Instr => x + "ńkiem";
+      SF Sg Loc => x + "ńku";
+      SF Sg Voc => x + "ńko";
+      SF Pl Nom => x + "ńka";
+      SF Pl Gen => x + "niek";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńka";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńka"
+    };
+
+    oper mkNTable1314: Str -> SubstForm => Str; --%
+    oper mkNTable1314 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "em";
+      SF Sg Gen => x + "mu";
+      SF Sg Dat => x + "mowi";
+      SF Sg Acc => x + "em";
+      SF Sg Instr => x + "mem";
+      SF Sg Loc => x + "mie";
+      SF Sg Voc => x + "mie";
+      SF Pl Nom => x + "my";
+      SF Pl Gen => x + "mów";
+      SF Pl Dat => x + "mom";
+      SF Pl Acc => x + "my";
+      SF Pl Instr => x + "mami";
+      SF Pl Loc => x + "mach";
+      SF Pl Voc => x + "my"
+    };
+
+    oper mkNTable1315: Str -> SubstForm => Str; --%
+    oper mkNTable1315 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "enie";
+      SF Sg Gen => x + "enia";
+      SF Sg Dat => x + "eniu";
+      SF Sg Acc => x + "enie";
+      SF Sg Instr => x + "eniem";
+      SF Sg Loc => x + "eniu";
+      SF Sg Voc => x + "enie";
+      SF Pl Nom => x + "ona";
+      SF Pl Gen => x + "on";
+      SF Pl Dat => x + "onom";
+      SF Pl Acc => x + "ona";
+      SF Pl Instr => x + "onami";
+      SF Pl Loc => x + "onach";
+      SF Pl Voc => x + "ona"
+    };
+
+    oper mkNTable1316: Str -> SubstForm => Str; --%
+    oper mkNTable1316 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ca";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "cę";
+      SF Sg Instr => x + "cą";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable1317: Str -> SubstForm => Str; --%
+    oper mkNTable1317 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "ela";
+      SF Sg Dat => x + "elowi";
+      SF Sg Acc => x + "ela";
+      SF Sg Instr => x + "elem";
+      SF Sg Loc => x + "elu";
+      SF Sg Voc => x + "elu";
+      SF Pl Nom => x + "ele";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "ół";
+      SF Pl Instr => x + "ółmi";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "ele"
+    };
+
+    oper mkNTable1318: Str -> SubstForm => Str; --%
+    oper mkNTable1318 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "asta";
+      SF Sg Gen => x + "asty";
+      SF Sg Dat => x + "eście";
+      SF Sg Acc => x + "astę";
+      SF Sg Instr => x + "astą";
+      SF Sg Loc => x + "eście";
+      SF Sg Voc => x + "asto";
+      SF Pl Nom => x + "asty";
+      SF Pl Gen => x + "ast";
+      SF Pl Dat => x + "astom";
+      SF Pl Acc => x + "asty";
+      SF Pl Instr => x + "astami";
+      SF Pl Loc => x + "astach";
+      SF Pl Voc => x + "asty"
+    };
+
+    oper mkNTable1321: Str -> SubstForm => Str; --%
+    oper mkNTable1321 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "si";
+      SF Pl Nom => x + "si";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "si";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "si"
+    };
+
+    oper mkNTable1322: Str -> SubstForm => Str; --%
+    oper mkNTable1322 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owiu";
+      SF Sg Dat => x + "owiowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owiem";
+      SF Sg Loc => x + "owiu";
+      SF Sg Voc => x + "owiu";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "owiów";
+      SF Pl Dat => x + "owiom";
+      SF Pl Acc => x + "owie";
+      SF Pl Instr => x + "owiami";
+      SF Pl Loc => x + "owiach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1323: Str -> SubstForm => Str; --%
+    oper mkNTable1323 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "óż";
+      SF Sg Gen => x + "oża";
+      SF Sg Dat => x + "ożowi";
+      SF Sg Acc => x + "óż";
+      SF Sg Instr => x + "ożem";
+      SF Sg Loc => x + "ożu";
+      SF Sg Voc => x + "ożu";
+      SF Pl Nom => x + "oże";
+      SF Pl Gen => x + "oży";
+      SF Pl Dat => x + "ożom";
+      SF Pl Acc => x + "oże";
+      SF Pl Instr => x + "ożami";
+      SF Pl Loc => x + "ożach";
+      SF Pl Voc => x + "oże"
+    };
+
+    oper mkNTable1324: Str -> SubstForm => Str; --%
+    oper mkNTable1324 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ad";
+      SF Sg Gen => x + "adu";
+      SF Sg Dat => x + "adowi";
+      SF Sg Acc => x + "ad";
+      SF Sg Instr => x + "adem";
+      SF Sg Loc => x + "edzie";
+      SF Sg Voc => x + "edzie";
+      SF Pl Nom => x + "ady";
+      SF Pl Gen => x + "adów";
+      SF Pl Dat => x + "adom";
+      SF Pl Acc => x + "ady";
+      SF Pl Instr => x + "adami";
+      SF Pl Loc => x + "adach";
+      SF Pl Voc => x + "ady"
+    };
+
+    oper mkNTable1328: Str -> SubstForm => Str; --%
+    oper mkNTable1328 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "et";
+      SF Sg Gen => x + "tu";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "et";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => x + "ty";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ty";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ty"
+    };
+
+    oper mkNTable1329: Str -> SubstForm => Str; --%
+    oper mkNTable1329 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "atr";
+      SF Sg Gen => x + "atru";
+      SF Sg Dat => x + "atrowi";
+      SF Sg Acc => x + "atr";
+      SF Sg Instr => x + "atrem";
+      SF Sg Loc => x + "etrze";
+      SF Sg Voc => x + "etrze";
+      SF Pl Nom => x + "atry";
+      SF Pl Gen => x + "atrów";
+      SF Pl Dat => x + "atrom";
+      SF Pl Acc => x + "atry";
+      SF Pl Instr => x + "atrami";
+      SF Pl Loc => x + "atrach";
+      SF Pl Voc => x + "atry"
+    };
+
+    oper mkNTable1330: Str -> SubstForm => Str; --%
+    oper mkNTable1330 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niek";
+      SF Sg Gen => x + "ńka";
+      SF Sg Dat => x + "ńkowi";
+      SF Sg Acc => x + "niek";
+      SF Sg Instr => x + "ńkiem";
+      SF Sg Loc => x + "ńku";
+      SF Sg Voc => x + "ńku";
+      SF Pl Nom => x + "ńki";
+      SF Pl Gen => x + "ńków";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńki";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńki"
+    };
+
+    oper mkNTable1331: Str -> SubstForm => Str; --%
+    oper mkNTable1331 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable1332: Str -> SubstForm => Str; --%
+    oper mkNTable1332 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oko";
+      SF Sg Gen => x + "oka";
+      SF Sg Dat => x + "oku";
+      SF Sg Acc => x + "oko";
+      SF Sg Instr => x + "okiem";
+      SF Sg Loc => x + "oku";
+      SF Sg Voc => x + "oko";
+      SF Pl Nom => x + "oczy";
+      SF Pl Gen => x + "ócz";
+      SF Pl Dat => x + "oczom";
+      SF Pl Acc => x + "oczy";
+      SF Pl Instr => x + "oczyma";
+      SF Pl Loc => x + "oczach";
+      SF Pl Voc => x + "oczy"
+    };
+
+    oper mkNTable1333: Str -> SubstForm => Str; --%
+    oper mkNTable1333 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niek";
+      SF Sg Gen => x + "ńka";
+      SF Sg Dat => x + "ńkowi";
+      SF Sg Acc => x + "ńka";
+      SF Sg Instr => x + "ńkiem";
+      SF Sg Loc => x + "ńku";
+      SF Sg Voc => x + "ńku";
+      SF Pl Nom => x + "ńki";
+      SF Pl Gen => x + "ńków";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńki";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńki"
+    };
+
+    oper mkNTable1334: Str -> SubstForm => Str; --%
+    oper mkNTable1334 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1336: Str -> SubstForm => Str; --%
+    oper mkNTable1336 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "oła";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "ół";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "ole";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1337: Str -> SubstForm => Str; --%
+    oper mkNTable1337 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "orzeł";
+      SF Sg Gen => x + "orła";
+      SF Sg Dat => x + "orłu";
+      SF Sg Acc => x + "orła";
+      SF Sg Instr => x + "orłem";
+      SF Sg Loc => x + "orle";
+      SF Sg Voc => x + "orle";
+      SF Pl Nom => x + "Orłowie";
+      SF Pl Gen => x + "orłów";
+      SF Pl Dat => x + "orłom";
+      SF Pl Acc => x + "orłów";
+      SF Pl Instr => x + "orłami";
+      SF Pl Loc => x + "orłach";
+      SF Pl Voc => x + "Orłowie"
+    };
+
+    oper mkNTable1338: Str -> SubstForm => Str; --%
+    oper mkNTable1338 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zeł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1339: Str -> SubstForm => Str; --%
+    oper mkNTable1339 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ep";
+      SF Sg Gen => x + "pu";
+      SF Sg Dat => x + "powi";
+      SF Sg Acc => x + "ep";
+      SF Sg Instr => x + "pem";
+      SF Sg Loc => x + "pie";
+      SF Sg Voc => x + "pie";
+      SF Pl Nom => x + "py";
+      SF Pl Gen => x + "pów";
+      SF Pl Dat => x + "pom";
+      SF Pl Acc => x + "py";
+      SF Pl Instr => x + "pami";
+      SF Pl Loc => x + "pach";
+      SF Pl Voc => x + "py"
+    };
+
+    oper mkNTable1340: Str -> SubstForm => Str; --%
+    oper mkNTable1340 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "set";
+      SF Sg Gen => x + "stu";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "set";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => x + "sty";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "sty";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "sty"
+    };
+
+    oper mkNTable1341: Str -> SubstForm => Str; --%
+    oper mkNTable1341 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siec";
+      SF Sg Gen => x + "śca";
+      SF Sg Dat => x + "ścowi";
+      SF Sg Acc => x + "śca";
+      SF Sg Instr => x + "ścem";
+      SF Sg Loc => x + "ścu";
+      SF Sg Voc => x + "ścu";
+      SF Pl Nom => x + "śce";
+      SF Pl Gen => x + "śców";
+      SF Pl Dat => x + "ścom";
+      SF Pl Acc => x + "śce";
+      SF Pl Instr => x + "ścami";
+      SF Pl Loc => x + "ścach";
+      SF Pl Voc => x + "śce"
+    };
+
+    oper mkNTable1342: Str -> SubstForm => Str; --%
+    oper mkNTable1342 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "sioł";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słu";
+      SF Sg Acc => x + "sła";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "śle";
+      SF Pl Nom => x + "sły";
+      SF Pl Gen => x + "słów";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sły";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sły"
+    };
+
+    oper mkNTable1343: Str -> SubstForm => Str; --%
+    oper mkNTable1343 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oła";
+      SF Sg Gen => x + "oły";
+      SF Sg Dat => x + "ole";
+      SF Sg Acc => x + "ołę";
+      SF Sg Instr => x + "ołą";
+      SF Sg Loc => x + "ole";
+      SF Sg Voc => x + "oło";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1344: Str -> SubstForm => Str; --%
+    oper mkNTable1344 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "eń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1345: Str -> SubstForm => Str; --%
+    oper mkNTable1345 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ca";
+      SF Sg Gen => x + "cy";
+      SF Sg Dat => x + "cy";
+      SF Sg Acc => x + "cę";
+      SF Sg Instr => x + "cą";
+      SF Sg Loc => x + "cy";
+      SF Sg Voc => x + "co";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "iec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable1346: Str -> SubstForm => Str; --%
+    oper mkNTable1346 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ies";
+      SF Sg Gen => x + "sa";
+      SF Sg Dat => x + "sowi";
+      SF Sg Acc => x + "ies";
+      SF Sg Instr => x + "sem";
+      SF Sg Loc => x + "sie";
+      SF Sg Voc => x + "sie";
+      SF Pl Nom => x + "sy";
+      SF Pl Gen => x + "sów";
+      SF Pl Dat => x + "som";
+      SF Pl Acc => x + "sy";
+      SF Pl Instr => x + "sami";
+      SF Pl Loc => x + "sach";
+      SF Pl Voc => x + "sy"
+    };
+
+    oper mkNTable1348: Str -> SubstForm => Str; --%
+    oper mkNTable1348 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ór";
+      SF Sg Gen => x + "ora";
+      SF Sg Dat => x + "orowi";
+      SF Sg Acc => x + "ór";
+      SF Sg Instr => x + "orem";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => x + "ory";
+      SF Pl Gen => x + "orów";
+      SF Pl Dat => x + "orom";
+      SF Pl Acc => x + "ory";
+      SF Pl Instr => x + "orami";
+      SF Pl Loc => x + "orach";
+      SF Pl Voc => x + "ory"
+    };
+
+    oper mkNTable1349: Str -> SubstForm => Str; --%
+    oper mkNTable1349 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "si";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1350: Str -> SubstForm => Str; --%
+    oper mkNTable1350 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Pakuła";
+      SF Sg Gen => x + "pakuły";
+      SF Sg Dat => x + "Pakule";
+      SF Sg Acc => x + "Pakułę";
+      SF Sg Instr => x + "Pakułą";
+      SF Sg Loc => x + "Pakule";
+      SF Sg Voc => x + "Pakuło";
+      SF Pl Nom => x + "pakuły";
+      SF Pl Gen => x + "pakuł";
+      SF Pl Dat => x + "pakułom";
+      SF Pl Acc => x + "pakuły";
+      SF Pl Instr => x + "pakułami";
+      SF Pl Loc => x + "pakułach";
+      SF Pl Voc => x + "pakuły"
+    };
+
+    oper mkNTable1351: Str -> SubstForm => Str; --%
+    oper mkNTable1351 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pala";
+      SF Sg Gen => x + "pali";
+      SF Sg Dat => x + "pali";
+      SF Sg Acc => x + "Palę";
+      SF Sg Instr => x + "Palą";
+      SF Sg Loc => x + "pali";
+      SF Sg Voc => x + "Palo";
+      SF Pl Nom => x + "pale";
+      SF Pl Gen => x + "pali";
+      SF Pl Dat => x + "palom";
+      SF Pl Acc => x + "pale";
+      SF Pl Instr => x + "palami";
+      SF Pl Loc => x + "palach";
+      SF Pl Voc => x + "pale"
+    };
+
+    oper mkNTable1352: Str -> SubstForm => Str; --%
+    oper mkNTable1352 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable1353: Str -> SubstForm => Str; --%
+    oper mkNTable1353 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "c";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "c";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ców";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable1355: Str -> SubstForm => Str; --%
+    oper mkNTable1355 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1356: Str -> SubstForm => Str; --%
+    oper mkNTable1356 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1357: Str -> SubstForm => Str; --%
+    oper mkNTable1357 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1358: Str -> SubstForm => Str; --%
+    oper mkNTable1358 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "parch";
+      SF Sg Gen => x + "parcha";
+      SF Sg Dat => x + "parchowi";
+      SF Sg Acc => x + "parcha";
+      SF Sg Instr => x + "parchem";
+      SF Sg Loc => x + "parchu";
+      SF Sg Voc => x + "parchu";
+      SF Pl Nom => x + "Parchowie";
+      SF Pl Gen => x + "parchów";
+      SF Pl Dat => x + "parchom";
+      SF Pl Acc => x + "parchów";
+      SF Pl Instr => x + "parchami";
+      SF Pl Loc => x + "parchach";
+      SF Pl Voc => x + "Parchowie"
+    };
+
+    oper mkNTable1359: Str -> SubstForm => Str; --%
+    oper mkNTable1359 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąz";
+      SF Sg Gen => x + "ęzu";
+      SF Sg Dat => x + "ęzowi";
+      SF Sg Acc => x + "ąz";
+      SF Sg Instr => x + "ęzem";
+      SF Sg Loc => x + "ęzie";
+      SF Sg Voc => x + "ęzie";
+      SF Pl Nom => x + "ęzy";
+      SF Pl Gen => x + "ęzów";
+      SF Pl Dat => x + "ęzom";
+      SF Pl Acc => x + "ęzy";
+      SF Pl Instr => x + "ęzami";
+      SF Pl Loc => x + "ęzach";
+      SF Pl Voc => x + "ęzy"
+    };
+
+    oper mkNTable1360: Str -> SubstForm => Str; --%
+    oper mkNTable1360 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1361: Str -> SubstForm => Str; --%
+    oper mkNTable1361 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ieć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1362: Str -> SubstForm => Str; --%
+    oper mkNTable1362 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "Paździora";
+      SF Sg Gen => x + "paździory";
+      SF Sg Dat => x + "paździorze";
+      SF Sg Acc => x + "Paździorę";
+      SF Sg Instr => x + "Paździorą";
+      SF Sg Loc => x + "paździorze";
+      SF Sg Voc => x + "Paździoro";
+      SF Pl Nom => x + "paździory";
+      SF Pl Gen => x + "paździor";
+      SF Pl Dat => x + "paździorom";
+      SF Pl Acc => x + "paździory";
+      SF Pl Instr => x + "paździorami";
+      SF Pl Loc => x + "paździorach";
+      SF Pl Voc => x + "paździory"
+    };
+
+    oper mkNTable1363: Str -> SubstForm => Str; --%
+    oper mkNTable1363 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ćka";
+      SF Sg Gen => x + "ćki";
+      SF Sg Dat => x + "ćce";
+      SF Sg Acc => x + "ćkę";
+      SF Sg Instr => x + "ćką";
+      SF Sg Loc => x + "ćce";
+      SF Sg Voc => x + "ćko";
+      SF Pl Nom => x + "ćki";
+      SF Pl Gen => x + "ciek";
+      SF Pl Dat => x + "ćkom";
+      SF Pl Acc => x + "ćki";
+      SF Pl Instr => x + "ćkami";
+      SF Pl Loc => x + "ćkach";
+      SF Pl Voc => x + "ćki"
+    };
+
+    oper mkNTable1364: Str -> SubstForm => Str; --%
+    oper mkNTable1364 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "piekarczyk";
+      SF Sg Gen => x + "piekarczyka";
+      SF Sg Dat => x + "piekarczykowi";
+      SF Sg Acc => x + "piekarczyka";
+      SF Sg Instr => x + "piekarczykiem";
+      SF Sg Loc => x + "piekarczyku";
+      SF Sg Voc => x + "piekarczyku";
+      SF Pl Nom => x + "Piekarczykowie";
+      SF Pl Gen => x + "piekarczyków";
+      SF Pl Dat => x + "piekarczykom";
+      SF Pl Acc => x + "piekarczyków";
+      SF Pl Instr => x + "piekarczykami";
+      SF Pl Loc => x + "piekarczykach";
+      SF Pl Voc => x + "Piekarczykowie"
+    };
+
+    oper mkNTable1366: Str -> SubstForm => Str; --%
+    oper mkNTable1366 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ądz";
+      SF Sg Gen => x + "ądza";
+      SF Sg Dat => x + "ądzowi";
+      SF Sg Acc => x + "ądz";
+      SF Sg Instr => x + "ądzem";
+      SF Sg Loc => x + "ądzu";
+      SF Sg Voc => x + "ądzu";
+      SF Pl Nom => x + "ądze";
+      SF Pl Gen => x + "ędzy";
+      SF Pl Dat => x + "ądzom";
+      SF Pl Acc => x + "ądze";
+      SF Pl Instr => x + "ędzmi";
+      SF Pl Loc => x + "ądzach";
+      SF Pl Voc => x + "ądze"
+    };
+
+    oper mkNTable1367: Str -> SubstForm => Str; --%
+    oper mkNTable1367 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "pieniężnik";
+      SF Sg Gen => x + "pieniężnika";
+      SF Sg Dat => x + "pieniężnikowi";
+      SF Sg Acc => x + "pieniężnika";
+      SF Sg Instr => x + "pieniężnikiem";
+      SF Sg Loc => x + "pieniężniku";
+      SF Sg Voc => x + "pieniężniku";
+      SF Pl Nom => x + "Pieniężnicy";
+      SF Pl Gen => x + "pieniężników";
+      SF Pl Dat => x + "pieniężnikom";
+      SF Pl Acc => x + "pieniężników";
+      SF Pl Instr => x + "pieniężnikami";
+      SF Pl Loc => x + "pieniężnikach";
+      SF Pl Voc => x + "Pieniężnicy"
+    };
+
+    oper mkNTable1369: Str -> SubstForm => Str; --%
+    oper mkNTable1369 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Pierz";
+      SF Sg Gen => x + "pierza";
+      SF Sg Dat => x + "Pierzowi";
+      SF Sg Acc => x + "Pierz";
+      SF Sg Instr => x + "pierzem";
+      SF Sg Loc => x + "pierzu";
+      SF Sg Voc => x + "pierzu";
+      SF Pl Nom => x + "pierze";
+      SF Pl Gen => x + "pierzy";
+      SF Pl Dat => x + "pierzom";
+      SF Pl Acc => x + "pierze";
+      SF Pl Instr => x + "pierzami";
+      SF Pl Loc => x + "pierzach";
+      SF Pl Voc => x + "pierze"
+    };
+
+    oper mkNTable1370: Str -> SubstForm => Str; --%
+    oper mkNTable1370 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ies";
+      SF Sg Gen => x + "sa";
+      SF Sg Dat => x + "su";
+      SF Sg Acc => x + "sa";
+      SF Sg Instr => x + "sem";
+      SF Sg Loc => x + "sie";
+      SF Sg Voc => x + "sie";
+      SF Pl Nom => x + "sy";
+      SF Pl Gen => x + "sów";
+      SF Pl Dat => x + "som";
+      SF Pl Acc => x + "sy";
+      SF Pl Instr => x + "sami";
+      SF Pl Loc => x + "sach";
+      SF Pl Voc => x + "sy"
+    };
+
+    oper mkNTable1371: Str -> SubstForm => Str; --%
+    oper mkNTable1371 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "ni";
+      SF Pl Nom => x + "ni";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "ni";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "ni"
+    };
+
+    oper mkNTable1372: Str -> SubstForm => Str; --%
+    oper mkNTable1372 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "wa";
+      SF Sg Gen => x + "wy";
+      SF Sg Dat => x + "wie";
+      SF Sg Acc => x + "wę";
+      SF Sg Instr => x + "wą";
+      SF Sg Loc => x + "wie";
+      SF Sg Voc => x + "wo";
+      SF Pl Nom => x + "wy";
+      SF Pl Gen => x + "iew";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wy";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wy"
+    };
+
+    oper mkNTable1373: Str -> SubstForm => Str; --%
+    oper mkNTable1373 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oja";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "oja";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "oi";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "oje";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable1374: Str -> SubstForm => Str; --%
+    oper mkNTable1374 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ół";
+      SF Sg Gen => x + "ołu";
+      SF Sg Dat => x + "ołowi";
+      SF Sg Acc => x + "ół";
+      SF Sg Instr => x + "ołem";
+      SF Sg Loc => x + "ele";
+      SF Sg Voc => x + "ele";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ołów";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1375: Str -> SubstForm => Str; --%
+    oper mkNTable1375 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "porter";
+      SF Sg Gen => x + "Portera";
+      SF Sg Dat => x + "porterowi";
+      SF Sg Acc => x + "Portera";
+      SF Sg Instr => x + "porterem";
+      SF Sg Loc => x + "porterze";
+      SF Sg Voc => x + "porterze";
+      SF Pl Nom => x + "portery";
+      SF Pl Gen => x + "porterów";
+      SF Pl Dat => x + "porterom";
+      SF Pl Acc => x + "portery";
+      SF Pl Instr => x + "porterami";
+      SF Pl Loc => x + "porterach";
+      SF Pl Voc => x + "portery"
+    };
+
+    oper mkNTable1376: Str -> SubstForm => Str; --%
+    oper mkNTable1376 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "seł";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słowi";
+      SF Sg Acc => x + "sła";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "śle";
+      SF Pl Nom => x + "słowie";
+      SF Pl Gen => x + "słów";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "słów";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "słowie"
+    };
+
+    oper mkNTable1377: Str -> SubstForm => Str; --%
+    oper mkNTable1377 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ód";
+      SF Sg Gen => x + "oda";
+      SF Sg Dat => x + "odowi";
+      SF Sg Acc => x + "oda";
+      SF Sg Instr => x + "odem";
+      SF Sg Loc => x + "odzie";
+      SF Sg Voc => x + "odzie";
+      SF Pl Nom => x + "odowie";
+      SF Pl Gen => x + "odów";
+      SF Pl Dat => x + "odom";
+      SF Pl Acc => x + "odów";
+      SF Pl Instr => x + "odami";
+      SF Pl Loc => x + "odach";
+      SF Pl Voc => x + "odowie"
+    };
+
+    oper mkNTable1378: Str -> SubstForm => Str; --%
+    oper mkNTable1378 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ew";
+      SF Sg Gen => x + "wu";
+      SF Sg Dat => x + "wowi";
+      SF Sg Acc => x + "ew";
+      SF Sg Instr => x + "wem";
+      SF Sg Loc => x + "wie";
+      SF Sg Voc => x + "wie";
+      SF Pl Nom => x + "wy";
+      SF Pl Gen => x + "wów";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wy";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wy"
+    };
+
+    oper mkNTable1380: Str -> SubstForm => Str; --%
+    oper mkNTable1380 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1381: Str -> SubstForm => Str; --%
+    oper mkNTable1381 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ośba";
+      SF Sg Gen => x + "ośby";
+      SF Sg Dat => x + "ośbie";
+      SF Sg Acc => x + "ośbę";
+      SF Sg Instr => x + "ośbą";
+      SF Sg Loc => x + "ośbie";
+      SF Sg Voc => x + "ośbo";
+      SF Pl Nom => x + "ośby";
+      SF Pl Gen => x + "óśb";
+      SF Pl Dat => x + "ośbom";
+      SF Pl Acc => x + "ośby";
+      SF Pl Instr => x + "ośbami";
+      SF Pl Loc => x + "ośbach";
+      SF Pl Voc => x + "ośby"
+    };
+
+    oper mkNTable1382: Str -> SubstForm => Str; --%
+    oper mkNTable1382 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pryk";
+      SF Sg Gen => x + "pryka";
+      SF Sg Dat => x + "prykowi";
+      SF Sg Acc => x + "pryka";
+      SF Sg Instr => x + "prykiem";
+      SF Sg Loc => x + "pryku";
+      SF Sg Voc => x + "pryku";
+      SF Pl Nom => x + "Prykowie";
+      SF Pl Gen => x + "pryków";
+      SF Pl Dat => x + "prykom";
+      SF Pl Acc => x + "pryków";
+      SF Pl Instr => x + "prykami";
+      SF Pl Loc => x + "prykach";
+      SF Pl Voc => x + "Prykowie"
+    };
+
+    oper mkNTable1383: Str -> SubstForm => Str; --%
+    oper mkNTable1383 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "zień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1384: Str -> SubstForm => Str; --%
+    oper mkNTable1384 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1385: Str -> SubstForm => Str; --%
+    oper mkNTable1385 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1386: Str -> SubstForm => Str; --%
+    oper mkNTable1386 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1387: Str -> SubstForm => Str; --%
+    oper mkNTable1387 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "owie";
+      SF Sg Gen => x + "owia";
+      SF Sg Dat => x + "owiu";
+      SF Sg Acc => x + "owie";
+      SF Sg Instr => x + "owiem";
+      SF Sg Loc => x + "owiu";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owia";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "owiom";
+      SF Pl Acc => x + "owia";
+      SF Pl Instr => x + "owiami";
+      SF Pl Loc => x + "owiach";
+      SF Pl Voc => x + "owia"
+    };
+
+    oper mkNTable1388: Str -> SubstForm => Str; --%
+    oper mkNTable1388 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "ptaszek";
+      SF Sg Gen => x + "ptaszka";
+      SF Sg Dat => x + "ptaszkowi";
+      SF Sg Acc => x + "ptaszka";
+      SF Sg Instr => x + "ptaszkiem";
+      SF Sg Loc => x + "ptaszku";
+      SF Sg Voc => x + "ptaszku";
+      SF Pl Nom => x + "Ptaszkowie";
+      SF Pl Gen => x + "ptaszków";
+      SF Pl Dat => x + "ptaszkom";
+      SF Pl Acc => x + "ptaszków";
+      SF Pl Instr => x + "ptaszkami";
+      SF Pl Loc => x + "ptaszkach";
+      SF Pl Voc => x + "Ptaszkowie"
+    };
+
+    oper mkNTable1389: Str -> SubstForm => Str; --%
+    oper mkNTable1389 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ś";
+      SF Sg Gen => x + "sia";
+      SF Sg Dat => x + "siowi";
+      SF Sg Acc => x + "ś";
+      SF Sg Instr => x + "siem";
+      SF Sg Loc => x + "siu";
+      SF Sg Voc => x + "siu";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1390: Str -> SubstForm => Str; --%
+    oper mkNTable1390 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pucek";
+      SF Sg Gen => x + "pucka";
+      SF Sg Dat => x + "puckowi";
+      SF Sg Acc => x + "pucka";
+      SF Sg Instr => x + "puckiem";
+      SF Sg Loc => x + "pucku";
+      SF Sg Voc => x + "pucku";
+      SF Pl Nom => x + "Puckowie";
+      SF Pl Gen => x + "pucków";
+      SF Pl Dat => x + "puckom";
+      SF Pl Acc => x + "pucków";
+      SF Pl Instr => x + "puckami";
+      SF Pl Loc => x + "puckach";
+      SF Pl Voc => x + "Puckowie"
+    };
+
+    oper mkNTable1391: Str -> SubstForm => Str; --%
+    oper mkNTable1391 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "pupka";
+      SF Sg Gen => x + "pupki";
+      SF Sg Dat => x + "pupce";
+      SF Sg Acc => x + "pupkę";
+      SF Sg Instr => x + "pupką";
+      SF Sg Loc => x + "pupce";
+      SF Sg Voc => x + "pupko";
+      SF Pl Nom => x + "Pupkowie";
+      SF Pl Gen => x + "pupek";
+      SF Pl Dat => x + "pupkom";
+      SF Pl Acc => x + "pupek";
+      SF Pl Instr => x + "pupkami";
+      SF Pl Loc => x + "pupkach";
+      SF Pl Voc => x + "Pupkowie"
+    };
+
+    oper mkNTable1392: Str -> SubstForm => Str; --%
+    oper mkNTable1392 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "to";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "tu";
+      SF Sg Acc => x + "to";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "ta";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "ta";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ta"
+    };
+
+    oper mkNTable1393: Str -> SubstForm => Str; --%
+    oper mkNTable1393 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1394: Str -> SubstForm => Str; --%
+    oper mkNTable1394 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "pyra";
+      SF Sg Gen => x + "pyry";
+      SF Sg Dat => x + "pyrze";
+      SF Sg Acc => x + "pyrę";
+      SF Sg Instr => x + "pyrą";
+      SF Sg Loc => x + "pyrze";
+      SF Sg Voc => x + "pyro";
+      SF Pl Nom => x + "Pyrowie";
+      SF Pl Gen => x + "pyrów";
+      SF Pl Dat => x + "pyrom";
+      SF Pl Acc => x + "pyrów";
+      SF Pl Instr => x + "pyrami";
+      SF Pl Loc => x + "pyrach";
+      SF Pl Voc => x + "Pyrowie"
+    };
+
+    oper mkNTable1395: Str -> SubstForm => Str; --%
+    oper mkNTable1395 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "Pyś";
+      SF Sg Gen => x + "pysia";
+      SF Sg Dat => x + "pysiowi";
+      SF Sg Acc => x + "Pyś";
+      SF Sg Instr => x + "pysiem";
+      SF Sg Loc => x + "pysiu";
+      SF Sg Voc => x + "pysiu";
+      SF Pl Nom => x + "pysie";
+      SF Pl Gen => x + "pysiów";
+      SF Pl Dat => x + "pysiom";
+      SF Pl Acc => x + "pysie";
+      SF Pl Instr => x + "pysiami";
+      SF Pl Loc => x + "pysiach";
+      SF Pl Voc => x + "pysie"
+    };
+
+    oper mkNTable1396: Str -> SubstForm => Str; --%
+    oper mkNTable1396 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "eć";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cie";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1397: Str -> SubstForm => Str; --%
+    oper mkNTable1397 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "tno";
+      SF Sg Gen => x + "tna";
+      SF Sg Dat => x + "tnu";
+      SF Sg Acc => x + "tno";
+      SF Sg Instr => x + "tnem";
+      SF Sg Loc => x + "tnie";
+      SF Sg Voc => x + "tno";
+      SF Pl Nom => x + "tna";
+      SF Pl Gen => x + "cien";
+      SF Pl Dat => x + "tnom";
+      SF Pl Acc => x + "tna";
+      SF Pl Instr => x + "tnami";
+      SF Pl Loc => x + "tnach";
+      SF Pl Voc => x + "tna"
+    };
+
+    oper mkNTable1398: Str -> SubstForm => Str; --%
+    oper mkNTable1398 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sen";
+      SF Sg Gen => x + "snu";
+      SF Sg Dat => x + "snowi";
+      SF Sg Acc => x + "sen";
+      SF Sg Instr => x + "snem";
+      SF Sg Loc => x + "śnie";
+      SF Sg Voc => x + "śnie";
+      SF Pl Nom => x + "sny";
+      SF Pl Gen => x + "snów";
+      SF Pl Dat => x + "snom";
+      SF Pl Acc => x + "sny";
+      SF Pl Instr => x + "snami";
+      SF Pl Loc => x + "snach";
+      SF Pl Voc => x + "sny"
+    };
+
+    oper mkNTable1399: Str -> SubstForm => Str; --%
+    oper mkNTable1399 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ieś";
+      SF Sg Gen => x + "si";
+      SF Sg Dat => x + "si";
+      SF Sg Acc => x + "ieś";
+      SF Sg Instr => x + "sią";
+      SF Sg Loc => x + "si";
+      SF Sg Voc => x + "si";
+      SF Pl Nom => x + "sie";
+      SF Pl Gen => x + "si";
+      SF Pl Dat => x + "siom";
+      SF Pl Acc => x + "sie";
+      SF Pl Instr => x + "siami";
+      SF Pl Loc => x + "siach";
+      SF Pl Voc => x + "sie"
+    };
+
+    oper mkNTable1400: Str -> SubstForm => Str; --%
+    oper mkNTable1400 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "atło";
+      SF Sg Gen => x + "atła";
+      SF Sg Dat => x + "atłu";
+      SF Sg Acc => x + "atło";
+      SF Sg Instr => x + "atłem";
+      SF Sg Loc => x + "etle";
+      SF Sg Voc => x + "atło";
+      SF Pl Nom => x + "atła";
+      SF Pl Gen => x + "ateł";
+      SF Pl Dat => x + "atłom";
+      SF Pl Acc => x + "atła";
+      SF Pl Instr => x + "atłami";
+      SF Pl Loc => x + "atłach";
+      SF Pl Voc => x + "atła"
+    };
+
+    oper mkNTable1401: Str -> SubstForm => Str; --%
+    oper mkNTable1401 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "o";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "o";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "o";
+      SF Pl Dat => x + "o";
+      SF Pl Acc => x + "o";
+      SF Pl Instr => x + "o";
+      SF Pl Loc => x + "o";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable1402: Str -> SubstForm => Str; --%
+    oper mkNTable1402 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "e";
+      SF Sg Dat => x + "e";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "e";
+      SF Sg Loc => x + "e";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "ia";
+      SF Pl Gen => x + "iów";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ia";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ia"
+    };
+
+    oper mkNTable1403: Str -> SubstForm => Str; --%
+    oper mkNTable1403 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1404: Str -> SubstForm => Str; --%
+    oper mkNTable1404 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1405: Str -> SubstForm => Str; --%
+    oper mkNTable1405 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "m";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ch";
+      SF Pl Dat => x + "m";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "mi";
+      SF Pl Loc => x + "ch";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1409: Str -> SubstForm => Str; --%
+    oper mkNTable1409 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "u";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable1410: Str -> SubstForm => Str; --%
+    oper mkNTable1410 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "pospolita";
+      SF Sg Gen => x + "ypospolitej";
+      SF Sg Dat => x + "ypospolitej";
+      SF Sg Acc => x + "ąpospolitą";
+      SF Sg Instr => x + "ąpospolitą";
+      SF Sg Loc => x + "ypospolitej";
+      SF Sg Voc => x + "ypospolita";
+      SF Pl Nom => x + "ypospolite";
+      SF Pl Gen => x + "pospolitych";
+      SF Pl Dat => x + "pospolitym";
+      SF Pl Acc => x + "ypospolite";
+      SF Pl Instr => x + "pospolitymi";
+      SF Pl Loc => x + "pospolitych";
+      SF Pl Voc => x + "ypospolite"
+    };
+
+    oper mkNTable1411: Str -> SubstForm => Str; --%
+    oper mkNTable1411 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sło";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słu";
+      SF Sg Acc => x + "sło";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "sło";
+      SF Pl Nom => x + "sła";
+      SF Pl Gen => x + "sł";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sła";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sła"
+    };
+
+    oper mkNTable1412: Str -> SubstForm => Str; --%
+    oper mkNTable1412 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ęka";
+      SF Sg Gen => x + "ęki";
+      SF Sg Dat => x + "ęce";
+      SF Sg Acc => x + "ękę";
+      SF Sg Instr => x + "ęką";
+      SF Sg Loc => x + "ęce";
+      SF Sg Voc => x + "ęko";
+      SF Pl Nom => x + "ęce";
+      SF Pl Gen => x + "ąk";
+      SF Pl Dat => x + "ękom";
+      SF Pl Acc => x + "ęce";
+      SF Pl Instr => x + "ękoma";
+      SF Pl Loc => x + "ęku";
+      SF Pl Voc => x + "ęce"
+    };
+
+    oper mkNTable1414: Str -> SubstForm => Str; --%
+    oper mkNTable1414 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "sierota";
+      SF Sg Gen => x + "sieroty";
+      SF Sg Dat => x + "sierocie";
+      SF Sg Acc => x + "sierotę";
+      SF Sg Instr => x + "sierotą";
+      SF Sg Loc => x + "sierocie";
+      SF Sg Voc => x + "sieroto";
+      SF Pl Nom => x + "sieroty";
+      SF Pl Gen => x + "Sierotów";
+      SF Pl Dat => x + "sierotom";
+      SF Pl Acc => x + "sieroty";
+      SF Pl Instr => x + "sierotami";
+      SF Pl Loc => x + "sierotach";
+      SF Pl Voc => x + "sieroty"
+    };
+
+    oper mkNTable1415: Str -> SubstForm => Str; --%
+    oper mkNTable1415 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ień";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1416: Str -> SubstForm => Str; --%
+    oper mkNTable1416 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iel";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => x + "le";
+      SF Pl Gen => x + "lów";
+      SF Pl Dat => x + "lom";
+      SF Pl Acc => x + "lów";
+      SF Pl Instr => x + "lami";
+      SF Pl Loc => x + "lach";
+      SF Pl Voc => x + "le"
+    };
+
+    oper mkNTable1417: Str -> SubstForm => Str; --%
+    oper mkNTable1417 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "ostra";
+      SF Sg Gen => x + "ostry";
+      SF Sg Dat => x + "ostrze";
+      SF Sg Acc => x + "ostrę";
+      SF Sg Instr => x + "ostrą";
+      SF Sg Loc => x + "ostrze";
+      SF Sg Voc => x + "ostro";
+      SF Pl Nom => x + "ostry";
+      SF Pl Gen => x + "óstr";
+      SF Pl Dat => x + "ostrom";
+      SF Pl Acc => x + "ostry";
+      SF Pl Instr => x + "ostrami";
+      SF Pl Loc => x + "ostrach";
+      SF Pl Voc => x + "ostry"
+    };
+
+    oper mkNTable1418: Str -> SubstForm => Str; --%
+    oper mkNTable1418 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cco";
+      SF Sg Gen => x + "cco";
+      SF Sg Dat => x + "ccu";
+      SF Sg Acc => x + "cco";
+      SF Sg Instr => x + "kkiem";
+      SF Sg Loc => x + "ccu";
+      SF Sg Voc => x + "cco";
+      SF Pl Nom => x + "cco";
+      SF Pl Gen => x + "cco";
+      SF Pl Dat => x + "ccom";
+      SF Pl Acc => x + "cco";
+      SF Pl Instr => x + "cco";
+      SF Pl Loc => x + "cco";
+      SF Pl Voc => x + "cco"
+    };
+
+    oper mkNTable1419: Str -> SubstForm => Str; --%
+    oper mkNTable1419 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable1420: Str -> SubstForm => Str; --%
+    oper mkNTable1420 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "smyk";
+      SF Sg Gen => x + "smyka";
+      SF Sg Dat => x + "smykowi";
+      SF Sg Acc => x + "smyka";
+      SF Sg Instr => x + "smykiem";
+      SF Sg Loc => x + "smyku";
+      SF Sg Voc => x + "smyku";
+      SF Pl Nom => x + "Smykowie";
+      SF Pl Gen => x + "smyków";
+      SF Pl Dat => x + "smykom";
+      SF Pl Acc => x + "smyków";
+      SF Pl Instr => x + "smykami";
+      SF Pl Loc => x + "smykach";
+      SF Pl Voc => x + "Smykowie"
+    };
+
+    oper mkNTable1421: Str -> SubstForm => Str; --%
+    oper mkNTable1421 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "sokół";
+      SF Sg Gen => x + "sokoła";
+      SF Sg Dat => x + "sokołowi";
+      SF Sg Acc => x + "sokoła";
+      SF Sg Instr => x + "sokołem";
+      SF Sg Loc => x + "sokole";
+      SF Sg Voc => x + "sokole";
+      SF Pl Nom => x + "Sokołowie";
+      SF Pl Gen => x + "sokołów";
+      SF Pl Dat => x + "sokołom";
+      SF Pl Acc => x + "sokołów";
+      SF Pl Instr => x + "sokołami";
+      SF Pl Loc => x + "sokołach";
+      SF Pl Voc => x + "Sokołowie"
+    };
+
+    oper mkNTable1422: Str -> SubstForm => Str; --%
+    oper mkNTable1422 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sna";
+      SF Sg Gen => x + "sny";
+      SF Sg Dat => x + "śnie";
+      SF Sg Acc => x + "snę";
+      SF Sg Instr => x + "sną";
+      SF Sg Loc => x + "śnie";
+      SF Sg Voc => x + "sno";
+      SF Pl Nom => x + "sny";
+      SF Pl Gen => x + "sen";
+      SF Pl Dat => x + "snom";
+      SF Pl Acc => x + "sny";
+      SF Pl Instr => x + "snami";
+      SF Pl Loc => x + "snach";
+      SF Pl Voc => x + "sny"
+    };
+
+    oper mkNTable1423: Str -> SubstForm => Str; --%
+    oper mkNTable1423 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "starek";
+      SF Sg Gen => x + "starka";
+      SF Sg Dat => x + "Starkowi";
+      SF Sg Acc => x + "starka";
+      SF Sg Instr => x + "Starkiem";
+      SF Sg Loc => x + "Starku";
+      SF Sg Voc => x + "Starku";
+      SF Pl Nom => x + "Starkowie";
+      SF Pl Gen => x + "Starków";
+      SF Pl Dat => x + "starkom";
+      SF Pl Acc => x + "Starków";
+      SF Pl Instr => x + "starkami";
+      SF Pl Loc => x + "starkach";
+      SF Pl Voc => x + "Starkowie"
+    };
+
+    oper mkNTable1424: Str -> SubstForm => Str; --%
+    oper mkNTable1424 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "sta";
+      SF Sg Gen => x + "sty";
+      SF Sg Dat => x + "ście";
+      SF Sg Acc => x + "stę";
+      SF Sg Instr => x + "stą";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "sto";
+      SF Pl Nom => x + "stowie";
+      SF Pl Gen => x + "stów";
+      SF Pl Dat => x + "stom";
+      SF Pl Acc => x + "stów";
+      SF Pl Instr => x + "stami";
+      SF Pl Loc => x + "stach";
+      SF Pl Voc => x + "stowie"
+    };
+
+    oper mkNTable1425: Str -> SubstForm => Str; --%
+    oper mkNTable1425 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "starzyk";
+      SF Sg Gen => x + "starzyka";
+      SF Sg Dat => x + "starzykowi";
+      SF Sg Acc => x + "starzyka";
+      SF Sg Instr => x + "starzykiem";
+      SF Sg Loc => x + "starzyku";
+      SF Sg Voc => x + "starzyku";
+      SF Pl Nom => x + "Starzykowie";
+      SF Pl Gen => x + "starzyków";
+      SF Pl Dat => x + "starzykom";
+      SF Pl Acc => x + "starzyków";
+      SF Pl Instr => x + "starzykami";
+      SF Pl Loc => x + "starzykach";
+      SF Pl Voc => x + "Starzykowie"
+    };
+
+    oper mkNTable1426: Str -> SubstForm => Str; --%
+    oper mkNTable1426 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "opa";
+      SF Sg Gen => x + "opy";
+      SF Sg Dat => x + "opie";
+      SF Sg Acc => x + "opę";
+      SF Sg Instr => x + "opą";
+      SF Sg Loc => x + "opie";
+      SF Sg Voc => x + "opo";
+      SF Pl Nom => x + "opy";
+      SF Pl Gen => x + "óp";
+      SF Pl Dat => x + "opom";
+      SF Pl Acc => x + "opy";
+      SF Pl Instr => x + "opami";
+      SF Pl Loc => x + "opach";
+      SF Pl Voc => x + "opy"
+    };
+
+    oper mkNTable1427: Str -> SubstForm => Str; --%
+    oper mkNTable1427 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "strzelczyk";
+      SF Sg Gen => x + "strzelczyka";
+      SF Sg Dat => x + "strzelczykowi";
+      SF Sg Acc => x + "strzelczyka";
+      SF Sg Instr => x + "strzelczykiem";
+      SF Sg Loc => x + "strzelczyku";
+      SF Sg Voc => x + "strzelczyku";
+      SF Pl Nom => x + "Strzelczykowie";
+      SF Pl Gen => x + "strzelczyków";
+      SF Pl Dat => x + "strzelczykom";
+      SF Pl Acc => x + "strzelczyków";
+      SF Pl Instr => x + "strzelczykami";
+      SF Pl Loc => x + "strzelczykach";
+      SF Pl Voc => x + "Strzelczykowie"
+    };
+
+    oper mkNTable1428: Str -> SubstForm => Str; --%
+    oper mkNTable1428 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nia";
+      SF Sg Gen => x + "ni";
+      SF Sg Dat => x + "ni";
+      SF Sg Acc => x + "nię";
+      SF Sg Instr => x + "nią";
+      SF Sg Loc => x + "ni";
+      SF Sg Voc => x + "nio";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "zien";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1429: Str -> SubstForm => Str; --%
+    oper mkNTable1429 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "eń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1430: Str -> SubstForm => Str; --%
+    oper mkNTable1430 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "seł";
+      SF Sg Gen => x + "sła";
+      SF Sg Dat => x + "słowi";
+      SF Sg Acc => x + "sła";
+      SF Sg Instr => x + "słem";
+      SF Sg Loc => x + "śle";
+      SF Sg Voc => x + "śle";
+      SF Pl Nom => x + "sły";
+      SF Pl Gen => x + "słów";
+      SF Pl Dat => x + "słom";
+      SF Pl Acc => x + "sły";
+      SF Pl Instr => x + "słami";
+      SF Pl Loc => x + "słach";
+      SF Pl Voc => x + "sły"
+    };
+
+    oper mkNTable1431: Str -> SubstForm => Str; --%
+    oper mkNTable1431 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1432: Str -> SubstForm => Str; --%
+    oper mkNTable1432 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1434: Str -> SubstForm => Str; --%
+    oper mkNTable1434 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Szlaga";
+      SF Sg Gen => x + "szlagi";
+      SF Sg Dat => x + "Szladze";
+      SF Sg Acc => x + "Szlagę";
+      SF Sg Instr => x + "Szlagą";
+      SF Sg Loc => x + "Szladze";
+      SF Sg Voc => x + "Szlago";
+      SF Pl Nom => x + "szlagi";
+      SF Pl Gen => x + "szlag";
+      SF Pl Dat => x + "szlagom";
+      SF Pl Acc => x + "szlagi";
+      SF Pl Instr => x + "szlagami";
+      SF Pl Loc => x + "szlagach";
+      SF Pl Voc => x + "szlagi"
+    };
+
+    oper mkNTable1435: Str -> SubstForm => Str; --%
+    oper mkNTable1435 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Szlaga";
+      SF Sg Gen => x + "szlagi";
+      SF Sg Dat => x + "Szladze";
+      SF Sg Acc => x + "Szlagę";
+      SF Sg Instr => x + "Szlagą";
+      SF Sg Loc => x + "Szladze";
+      SF Sg Voc => x + "Szlago";
+      SF Pl Nom => x + "Szlagowie";
+      SF Pl Gen => x + "szlagów";
+      SF Pl Dat => x + "szlagom";
+      SF Pl Acc => x + "szlagów";
+      SF Pl Instr => x + "szlagami";
+      SF Pl Loc => x + "szlagach";
+      SF Pl Voc => x + "Szlagowie"
+    };
+
+    oper mkNTable1436: Str -> SubstForm => Str; --%
+    oper mkNTable1436 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "sznura";
+      SF Sg Gen => x + "sznury";
+      SF Sg Dat => x + "sznurze";
+      SF Sg Acc => x + "Sznurę";
+      SF Sg Instr => x + "Sznurą";
+      SF Sg Loc => x + "sznurze";
+      SF Sg Voc => x + "Sznuro";
+      SF Pl Nom => x + "sznury";
+      SF Pl Gen => x + "sznur";
+      SF Pl Dat => x + "sznurom";
+      SF Pl Acc => x + "sznury";
+      SF Pl Instr => x + "sznurami";
+      SF Pl Loc => x + "sznurach";
+      SF Pl Voc => x + "sznury"
+    };
+
+    oper mkNTable1437: Str -> SubstForm => Str; --%
+    oper mkNTable1437 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "szot";
+      SF Sg Gen => x + "szota";
+      SF Sg Dat => x + "szotowi";
+      SF Sg Acc => x + "szota";
+      SF Sg Instr => x + "szotem";
+      SF Sg Loc => x + "szocie";
+      SF Sg Voc => x + "szocie";
+      SF Pl Nom => x + "Szotowie";
+      SF Pl Gen => x + "szotów";
+      SF Pl Dat => x + "szotom";
+      SF Pl Acc => x + "szotów";
+      SF Pl Instr => x + "szotami";
+      SF Pl Loc => x + "szotach";
+      SF Pl Voc => x + "Szotowie"
+    };
+
+    oper mkNTable1439: Str -> SubstForm => Str; --%
+    oper mkNTable1439 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ier";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => x + "rowie";
+      SF Pl Gen => x + "rów";
+      SF Pl Dat => x + "rom";
+      SF Pl Acc => x + "rów";
+      SF Pl Instr => x + "rami";
+      SF Pl Loc => x + "rach";
+      SF Pl Voc => x + "rowie"
+    };
+
+    oper mkNTable1440: Str -> SubstForm => Str; --%
+    oper mkNTable1440 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ią";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "iom";
+      SF Pl Acc => x + "ie";
+      SF Pl Instr => x + "iami";
+      SF Pl Loc => x + "iach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable1441: Str -> SubstForm => Str; --%
+    oper mkNTable1441 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ad";
+      SF Sg Gen => x + "ada";
+      SF Sg Dat => x + "adowi";
+      SF Sg Acc => x + "ada";
+      SF Sg Instr => x + "adem";
+      SF Sg Loc => x + "edzie";
+      SF Sg Voc => x + "edzie";
+      SF Pl Nom => x + "edzi";
+      SF Pl Gen => x + "adów";
+      SF Pl Dat => x + "adom";
+      SF Pl Acc => x + "adów";
+      SF Pl Instr => x + "adami";
+      SF Pl Loc => x + "adach";
+      SF Pl Voc => x + "edzi"
+    };
+
+    oper mkNTable1442: Str -> SubstForm => Str; --%
+    oper mkNTable1442 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "owo";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owu";
+      SF Sg Acc => x + "owo";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owo";
+      SF Pl Nom => x + "owa";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owa";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owa"
+    };
+
+    oper mkNTable1443: Str -> SubstForm => Str; --%
+    oper mkNTable1443 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ój";
+      SF Sg Gen => x + "oja";
+      SF Sg Dat => x + "ojowi";
+      SF Sg Acc => x + "ój";
+      SF Sg Instr => x + "ojem";
+      SF Sg Loc => x + "oju";
+      SF Sg Voc => x + "oju";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "ojów";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "oje";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable1444: Str -> SubstForm => Str; --%
+    oper mkNTable1444 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "tabak";
+      SF Sg Gen => x + "Tabaku";
+      SF Sg Dat => x + "Tabakowi";
+      SF Sg Acc => x + "tabak";
+      SF Sg Instr => x + "Tabakiem";
+      SF Sg Loc => x + "Tabaku";
+      SF Sg Voc => x + "Tabaku";
+      SF Pl Nom => x + "tabaki";
+      SF Pl Gen => x + "Tabaków";
+      SF Pl Dat => x + "tabakom";
+      SF Pl Acc => x + "tabaki";
+      SF Pl Instr => x + "tabakami";
+      SF Pl Loc => x + "tabakach";
+      SF Pl Voc => x + "tabaki"
+    };
+
+    oper mkNTable1445: Str -> SubstForm => Str; --%
+    oper mkNTable1445 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "tantal";
+      SF Sg Gen => x + "Tantala";
+      SF Sg Dat => x + "tantalowi";
+      SF Sg Acc => x + "tantal";
+      SF Sg Instr => x + "tantalem";
+      SF Sg Loc => x + "tantalu";
+      SF Sg Voc => x + "tantalu";
+      SF Pl Nom => x + "tantale";
+      SF Pl Gen => x + "tantali";
+      SF Pl Dat => x + "tantalom";
+      SF Pl Acc => x + "tantale";
+      SF Pl Instr => x + "tantalami";
+      SF Pl Loc => x + "tantalach";
+      SF Pl Voc => x + "tantale"
+    };
+
+    oper mkNTable1446: Str -> SubstForm => Str; --%
+    oper mkNTable1446 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ki";
+      SF Sg Dat => x + "ce";
+      SF Sg Acc => x + "kę";
+      SF Sg Instr => x + "ką";
+      SF Sg Loc => x + "ce";
+      SF Sg Voc => x + "ko";
+      SF Pl Nom => x + "kowie";
+      SF Pl Gen => x + "ek";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ek";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "kowie"
+    };
+
+    oper mkNTable1447: Str -> SubstForm => Str; --%
+    oper mkNTable1447 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "to";
+      SF Sg Gen => x + "ty";
+      SF Sg Dat => x + "cie";
+      SF Sg Acc => x + "tę";
+      SF Sg Instr => x + "tą";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "to";
+      SF Pl Nom => x + "towie";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "towie"
+    };
+
+    oper mkNTable1448: Str -> SubstForm => Str; --%
+    oper mkNTable1448 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ień";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1449: Str -> SubstForm => Str; --%
+    oper mkNTable1449 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ba";
+      SF Sg Gen => x + "by";
+      SF Sg Dat => x + "bie";
+      SF Sg Acc => x + "bę";
+      SF Sg Instr => x + "bą";
+      SF Sg Loc => x + "bie";
+      SF Sg Voc => x + "bo";
+      SF Pl Nom => x + "by";
+      SF Pl Gen => x + "eb";
+      SF Pl Dat => x + "bom";
+      SF Pl Acc => x + "by";
+      SF Pl Instr => x + "bami";
+      SF Pl Loc => x + "bach";
+      SF Pl Voc => x + "by"
+    };
+
+    oper mkNTable1450: Str -> SubstForm => Str; --%
+    oper mkNTable1450 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ni";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1451: Str -> SubstForm => Str; --%
+    oper mkNTable1451 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Trześń";
+      SF Sg Gen => x + "trześni";
+      SF Sg Dat => x + "trześni";
+      SF Sg Acc => x + "Trześń";
+      SF Sg Instr => x + "trześnią";
+      SF Sg Loc => x + "trześni";
+      SF Sg Voc => x + "trześni";
+      SF Pl Nom => x + "trześnie";
+      SF Pl Gen => x + "trześni";
+      SF Pl Dat => x + "trześniom";
+      SF Pl Acc => x + "trześnie";
+      SF Pl Instr => x + "trześniami";
+      SF Pl Loc => x + "trześniach";
+      SF Pl Voc => x + "trześnie"
+    };
+
+    oper mkNTable1452: Str -> SubstForm => Str; --%
+    oper mkNTable1452 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ele";
+      SF Sg Gen => x + "ela";
+      SF Sg Dat => x + "elu";
+      SF Sg Acc => x + "ele";
+      SF Sg Instr => x + "elem";
+      SF Sg Loc => x + "elu";
+      SF Sg Voc => x + "ele";
+      SF Pl Nom => x + "oła";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oła";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oła"
+    };
+
+    oper mkNTable1453: Str -> SubstForm => Str; --%
+    oper mkNTable1453 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable1454: Str -> SubstForm => Str; --%
+    oper mkNTable1454 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "dzień";
+      SF Sg Gen => x + "godnia";
+      SF Sg Dat => x + "godniowi";
+      SF Sg Acc => x + "dzień";
+      SF Sg Instr => x + "godniem";
+      SF Sg Loc => x + "godniu";
+      SF Sg Voc => x + "godniu";
+      SF Pl Nom => x + "godnie";
+      SF Pl Gen => x + "godni";
+      SF Pl Dat => x + "godniom";
+      SF Pl Acc => x + "godnie";
+      SF Pl Instr => x + "godniami";
+      SF Pl Loc => x + "godniach";
+      SF Pl Voc => x + "godnie"
+    };
+
+    oper mkNTable1455: Str -> SubstForm => Str; --%
+    oper mkNTable1455 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąc";
+      SF Sg Gen => x + "ąca";
+      SF Sg Dat => x + "ącowi";
+      SF Sg Acc => x + "ąca";
+      SF Sg Instr => x + "ącem";
+      SF Sg Loc => x + "ącu";
+      SF Sg Voc => x + "ącu";
+      SF Pl Nom => x + "ące";
+      SF Pl Gen => x + "ęcy";
+      SF Pl Dat => x + "ącom";
+      SF Pl Acc => x + "ące";
+      SF Pl Instr => x + "ącami";
+      SF Pl Loc => x + "ącach";
+      SF Pl Voc => x + "ące"
+    };
+
+    oper mkNTable1456: Str -> SubstForm => Str; --%
+    oper mkNTable1456 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cho";
+      SF Sg Gen => x + "cha";
+      SF Sg Dat => x + "chu";
+      SF Sg Acc => x + "cho";
+      SF Sg Instr => x + "chem";
+      SF Sg Loc => x + "chu";
+      SF Sg Voc => x + "cho";
+      SF Pl Nom => x + "szy";
+      SF Pl Gen => x + "szów";
+      SF Pl Dat => x + "szom";
+      SF Pl Acc => x + "szy";
+      SF Pl Instr => x + "szyma";
+      SF Pl Loc => x + "szach";
+      SF Pl Voc => x + "szy"
+    };
+
+    oper mkNTable1457: Str -> SubstForm => Str; --%
+    oper mkNTable1457 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => x + "niowie";
+      SF Pl Gen => x + "niów";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "niów";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "niowie"
+    };
+
+    oper mkNTable1458: Str -> SubstForm => Str; --%
+    oper mkNTable1458 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Ulster";
+      SF Sg Gen => x + "Ulsteru";
+      SF Sg Dat => x + "ulstrowi";
+      SF Sg Acc => x + "Ulster";
+      SF Sg Instr => x + "ulstrem";
+      SF Sg Loc => x + "ulstrze";
+      SF Sg Voc => x + "ulstrze";
+      SF Pl Nom => x + "ulstry";
+      SF Pl Gen => x + "ulstrów";
+      SF Pl Dat => x + "ulstrom";
+      SF Pl Acc => x + "ulstry";
+      SF Pl Instr => x + "ulstrami";
+      SF Pl Loc => x + "ulstrach";
+      SF Pl Voc => x + "ulstry"
+    };
+
+    oper mkNTable1459: Str -> SubstForm => Str; --%
+    oper mkNTable1459 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąż";
+      SF Sg Gen => x + "ęży";
+      SF Sg Dat => x + "ęży";
+      SF Sg Acc => x + "ąż";
+      SF Sg Instr => x + "ężą";
+      SF Sg Loc => x + "ęży";
+      SF Sg Voc => x + "ęży";
+      SF Pl Nom => x + "ęże";
+      SF Pl Gen => x + "ęży";
+      SF Pl Dat => x + "ężom";
+      SF Pl Acc => x + "ęże";
+      SF Pl Instr => x + "ężami";
+      SF Pl Loc => x + "ężach";
+      SF Pl Voc => x + "ęże"
+    };
+
+    oper mkNTable1460: Str -> SubstForm => Str; --%
+    oper mkNTable1460 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => x + "cie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ciów";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cie"
+    };
+
+    oper mkNTable1461: Str -> SubstForm => Str; --%
+    oper mkNTable1461 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "o";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1462: Str -> SubstForm => Str; --%
+    oper mkNTable1462 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Wacha";
+      SF Sg Gen => x + "Wachy";
+      SF Sg Dat => x + "Wasze";
+      SF Sg Acc => x + "Wachę";
+      SF Sg Instr => x + "Wachą";
+      SF Sg Loc => x + "Wasze";
+      SF Sg Voc => x + "Wacho";
+      SF Pl Nom => x + "Wachy";
+      SF Pl Gen => x + "wach";
+      SF Pl Dat => x + "Wachom";
+      SF Pl Acc => x + "Wachy";
+      SF Pl Instr => x + "Wachami";
+      SF Pl Loc => x + "Wachach";
+      SF Pl Voc => x + "Wachy"
+    };
+
+    oper mkNTable1463: Str -> SubstForm => Str; --%
+    oper mkNTable1463 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1464: Str -> SubstForm => Str; --%
+    oper mkNTable1464 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ci";
+      SF Sg Acc => x + "ci";
+      SF Sg Instr => x + "cią";
+      SF Sg Loc => x + "ci";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ciowie";
+      SF Pl Gen => x + "ciów";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ciów";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ciowie"
+    };
+
+    oper mkNTable1465: Str -> SubstForm => Str; --%
+    oper mkNTable1465 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "esz";
+      SF Sg Gen => x + "szy";
+      SF Sg Dat => x + "szy";
+      SF Sg Acc => x + "esz";
+      SF Sg Instr => x + "szą";
+      SF Sg Loc => x + "szy";
+      SF Sg Voc => x + "szy";
+      SF Pl Nom => x + "szy";
+      SF Pl Gen => x + "szy";
+      SF Pl Dat => x + "szom";
+      SF Pl Acc => x + "szy";
+      SF Pl Instr => x + "szami";
+      SF Pl Loc => x + "szach";
+      SF Pl Voc => x + "szy"
+    };
+
+    oper mkNTable1469: Str -> SubstForm => Str; --%
+    oper mkNTable1469 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ego";
+      SF Sg Dat => x + "emu";
+      SF Sg Acc => x + "ego";
+      SF Sg Instr => x + "ym";
+      SF Sg Loc => x + "ym";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "ych";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1470: Str -> SubstForm => Str; --%
+    oper mkNTable1470 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable1471: Str -> SubstForm => Str; --%
+    oper mkNTable1471 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "zień";
+      SF Sg Gen => x + "źnia";
+      SF Sg Dat => x + "źniowi";
+      SF Sg Acc => x + "źnia";
+      SF Sg Instr => x + "źniem";
+      SF Sg Loc => x + "źniu";
+      SF Sg Voc => x + "źniu";
+      SF Pl Nom => x + "źniowie";
+      SF Pl Gen => x + "źniów";
+      SF Pl Dat => x + "źniom";
+      SF Pl Acc => x + "źniów";
+      SF Pl Instr => x + "źniami";
+      SF Pl Loc => x + "źniach";
+      SF Pl Voc => x + "źniowie"
+    };
+
+    oper mkNTable1473: Str -> SubstForm => Str; --%
+    oper mkNTable1473 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "sień";
+      SF Sg Gen => x + "śnia";
+      SF Sg Dat => x + "śniowi";
+      SF Sg Acc => x + "sień";
+      SF Sg Instr => x + "śniem";
+      SF Sg Loc => x + "śniu";
+      SF Sg Voc => x + "śniu";
+      SF Pl Nom => x + "śnie";
+      SF Pl Gen => x + "śniów";
+      SF Pl Dat => x + "śniom";
+      SF Pl Acc => x + "śnie";
+      SF Pl Instr => x + "śniami";
+      SF Pl Loc => x + "śniach";
+      SF Pl Voc => x + "śnie"
+    };
+
+    oper mkNTable1474: Str -> SubstForm => Str; --%
+    oper mkNTable1474 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "at";
+      SF Sg Gen => x + "ata";
+      SF Sg Dat => x + "atowi";
+      SF Sg Acc => x + "at";
+      SF Sg Instr => x + "atem";
+      SF Sg Loc => x + "ecie";
+      SF Sg Voc => x + "ecie";
+      SF Pl Nom => x + "aty";
+      SF Pl Gen => x + "atów";
+      SF Pl Dat => x + "atom";
+      SF Pl Acc => x + "aty";
+      SF Pl Instr => x + "atami";
+      SF Pl Loc => x + "atach";
+      SF Pl Voc => x + "aty"
+    };
+
+    oper mkNTable1475: Str -> SubstForm => Str; --%
+    oper mkNTable1475 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "wyrostek";
+      SF Sg Gen => x + "wyrostka";
+      SF Sg Dat => x + "wyrostkowi";
+      SF Sg Acc => x + "wyrostka";
+      SF Sg Instr => x + "wyrostkiem";
+      SF Sg Loc => x + "wyrostku";
+      SF Sg Voc => x + "wyrostku";
+      SF Pl Nom => x + "Wyrostkowie";
+      SF Pl Gen => x + "wyrostków";
+      SF Pl Dat => x + "wyrostkom";
+      SF Pl Acc => x + "wyrostków";
+      SF Pl Instr => x + "wyrostkami";
+      SF Pl Loc => x + "wyrostkach";
+      SF Pl Voc => x + "Wyrostkowie"
+    };
+
+    oper mkNTable1476: Str -> SubstForm => Str; --%
+    oper mkNTable1476 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eł";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "łów";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1477: Str -> SubstForm => Str; --%
+    oper mkNTable1477 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąż";
+      SF Sg Gen => x + "ęża";
+      SF Sg Dat => x + "ężowi";
+      SF Sg Acc => x + "ęża";
+      SF Sg Instr => x + "ężem";
+      SF Sg Loc => x + "ężu";
+      SF Sg Voc => x + "ężu";
+      SF Pl Nom => x + "ęże";
+      SF Pl Gen => x + "ężów";
+      SF Pl Dat => x + "ężom";
+      SF Pl Acc => x + "ęże";
+      SF Pl Instr => x + "ężami";
+      SF Pl Loc => x + "ężach";
+      SF Pl Voc => x + "ęże"
+    };
+
+    oper mkNTable1478: Str -> SubstForm => Str; --%
+    oper mkNTable1478 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ąż";
+      SF Sg Gen => x + "ęża";
+      SF Sg Dat => x + "ężowi";
+      SF Sg Acc => x + "ąż";
+      SF Sg Instr => x + "ężem";
+      SF Sg Loc => x + "ężu";
+      SF Sg Voc => x + "ężu";
+      SF Pl Nom => x + "ęże";
+      SF Pl Gen => x + "ężów";
+      SF Pl Dat => x + "ężom";
+      SF Pl Acc => x + "ęże";
+      SF Pl Instr => x + "ężami";
+      SF Pl Loc => x + "ężach";
+      SF Pl Voc => x + "ęże"
+    };
+
+    oper mkNTable1479: Str -> SubstForm => Str; --%
+    oper mkNTable1479 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "sień";
+      SF Sg Gen => x + "śnia";
+      SF Sg Dat => x + "śniowi";
+      SF Sg Acc => x + "śnia";
+      SF Sg Instr => x + "śniem";
+      SF Sg Loc => x + "śniu";
+      SF Sg Voc => x + "śniu";
+      SF Pl Nom => x + "śnie";
+      SF Pl Gen => x + "śni";
+      SF Pl Dat => x + "śniom";
+      SF Pl Acc => x + "śnie";
+      SF Pl Instr => x + "śniami";
+      SF Pl Loc => x + "śniach";
+      SF Pl Voc => x + "śnie"
+    };
+
+    oper mkNTable1480: Str -> SubstForm => Str; --%
+    oper mkNTable1480 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ódz";
+      SF Sg Gen => x + "odza";
+      SF Sg Dat => x + "odzowi";
+      SF Sg Acc => x + "odza";
+      SF Sg Instr => x + "odzem";
+      SF Sg Loc => x + "odzu";
+      SF Sg Voc => x + "odzu";
+      SF Pl Nom => x + "odzowie";
+      SF Pl Gen => x + "odzów";
+      SF Pl Dat => x + "odzom";
+      SF Pl Acc => x + "odzów";
+      SF Pl Instr => x + "odzami";
+      SF Pl Loc => x + "odzach";
+      SF Pl Voc => x + "odzowie"
+    };
+
+    oper mkNTable1481: Str -> SubstForm => Str; --%
+    oper mkNTable1481 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oże";
+      SF Sg Gen => x + "oża";
+      SF Sg Dat => x + "ożu";
+      SF Sg Acc => x + "oże";
+      SF Sg Instr => x + "ożem";
+      SF Sg Loc => x + "ożu";
+      SF Sg Voc => x + "oże";
+      SF Pl Nom => x + "oża";
+      SF Pl Gen => x + "óż";
+      SF Pl Dat => x + "ożom";
+      SF Pl Acc => x + "oża";
+      SF Pl Instr => x + "ożami";
+      SF Pl Loc => x + "ożach";
+      SF Pl Voc => x + "oża"
+    };
+
+    oper mkNTable1482: Str -> SubstForm => Str; --%
+    oper mkNTable1482 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oja";
+      SF Sg Gen => x + "oi";
+      SF Sg Dat => x + "oi";
+      SF Sg Acc => x + "oję";
+      SF Sg Instr => x + "oją";
+      SF Sg Loc => x + "oi";
+      SF Sg Voc => x + "ojo";
+      SF Pl Nom => x + "oje";
+      SF Pl Gen => x + "ój";
+      SF Pl Dat => x + "ojom";
+      SF Pl Acc => x + "oje";
+      SF Pl Instr => x + "ojami";
+      SF Pl Loc => x + "ojach";
+      SF Pl Voc => x + "oje"
+    };
+
+    oper mkNTable1483: Str -> SubstForm => Str; --%
+    oper mkNTable1483 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "zefir";
+      SF Sg Gen => x + "Zefira";
+      SF Sg Dat => x + "zefirowi";
+      SF Sg Acc => x + "Zefira";
+      SF Sg Instr => x + "zefirem";
+      SF Sg Loc => x + "zefirze";
+      SF Sg Voc => x + "zefirze";
+      SF Pl Nom => x + "zefiry";
+      SF Pl Gen => x + "zefirów";
+      SF Pl Dat => x + "zefirom";
+      SF Pl Acc => x + "zefiry";
+      SF Pl Instr => x + "zefirami";
+      SF Pl Loc => x + "zefirach";
+      SF Pl Voc => x + "zefiry"
+    };
+
+    oper mkNTable1485: Str -> SubstForm => Str; --%
+    oper mkNTable1485 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zet";
+      SF Sg Gen => x + "zeta";
+      SF Sg Dat => x + "zetowi";
+      SF Sg Acc => x + "zeta";
+      SF Sg Instr => x + "zetem";
+      SF Sg Loc => x + "zecie";
+      SF Sg Voc => x + "zecie";
+      SF Pl Nom => x + "Zetowie";
+      SF Pl Gen => x + "zetów";
+      SF Pl Dat => x + "zetom";
+      SF Pl Acc => x + "zetów";
+      SF Pl Instr => x + "zetami";
+      SF Pl Loc => x + "zetach";
+      SF Pl Voc => x + "Zetowie"
+    };
+
+    oper mkNTable1487: Str -> SubstForm => Str; --%
+    oper mkNTable1487 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "orza";
+      SF Sg Gen => x + "orzy";
+      SF Sg Dat => x + "orzy";
+      SF Sg Acc => x + "orzę";
+      SF Sg Instr => x + "orzą";
+      SF Sg Loc => x + "orzy";
+      SF Sg Voc => x + "orzo";
+      SF Pl Nom => x + "orze";
+      SF Pl Gen => x + "órz";
+      SF Pl Dat => x + "orzom";
+      SF Pl Acc => x + "orze";
+      SF Pl Instr => x + "orzami";
+      SF Pl Loc => x + "orzach";
+      SF Pl Voc => x + "orze"
+    };
+
+    oper mkNTable1488: Str -> SubstForm => Str; --%
+    oper mkNTable1488 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ło";
+      SF Sg Gen => x + "ła";
+      SF Sg Dat => x + "łu";
+      SF Sg Acc => x + "ło";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "łu";
+      SF Sg Voc => x + "ło";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "eł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable1489: Str -> SubstForm => Str; --%
+    oper mkNTable1489 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owu";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owiem";
+      SF Sg Loc => x + "owiu";
+      SF Sg Voc => x + "owiu";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "owów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owiami";
+      SF Pl Loc => x + "owiach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable1491: Str -> SubstForm => Str; --%
+    oper mkNTable1491 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "łoś";
+      SF Sg Gen => x + "łosia";
+      SF Sg Dat => x + "łosiowi";
+      SF Sg Acc => x + "łosia";
+      SF Sg Instr => x + "łosiem";
+      SF Sg Loc => x + "łosiu";
+      SF Sg Voc => x + "łosiu";
+      SF Pl Nom => x + "Łosiowie";
+      SF Pl Gen => x + "Łosiów";
+      SF Pl Dat => x + "łosiom";
+      SF Pl Acc => x + "Łosiów";
+      SF Pl Instr => x + "łosiami";
+      SF Pl Loc => x + "łosiach";
+      SF Pl Voc => x + "Łosiowie"
+    };
+
+    oper mkNTable1494: Str -> SubstForm => Str; --%
+    oper mkNTable1494 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "śliwa";
+      SF Sg Gen => x + "śliwy";
+      SF Sg Dat => x + "śliwie";
+      SF Sg Acc => x + "śliwę";
+      SF Sg Instr => x + "śliwą";
+      SF Sg Loc => x + "śliwie";
+      SF Sg Voc => x + "śliwo";
+      SF Pl Nom => x + "Śliwowie";
+      SF Pl Gen => x + "Śliwów";
+      SF Pl Dat => x + "śliwom";
+      SF Pl Acc => x + "Śliwów";
+      SF Pl Instr => x + "śliwami";
+      SF Pl Loc => x + "śliwach";
+      SF Pl Voc => x + "Śliwowie"
+    };
+
+    oper mkNTable1495: Str -> SubstForm => Str; --%
+    oper mkNTable1495 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "świątek";
+      SF Sg Gen => x + "świątka";
+      SF Sg Dat => x + "świątkowi";
+      SF Sg Acc => x + "świątka";
+      SF Sg Instr => x + "świątkiem";
+      SF Sg Loc => x + "świątku";
+      SF Sg Voc => x + "świątku";
+      SF Pl Nom => x + "Świątkowie";
+      SF Pl Gen => x + "świątków";
+      SF Pl Dat => x + "świątkom";
+      SF Pl Acc => x + "świątków";
+      SF Pl Instr => x + "świątkami";
+      SF Pl Loc => x + "świątkach";
+      SF Pl Voc => x + "Świątkowie"
+    };
+
+    oper mkNTable1496: Str -> SubstForm => Str; --%
+    oper mkNTable1496 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "żak";
+      SF Sg Gen => x + "żaka";
+      SF Sg Dat => x + "żakowi";
+      SF Sg Acc => x + "żaka";
+      SF Sg Instr => x + "żakiem";
+      SF Sg Loc => x + "żaku";
+      SF Sg Voc => x + "żaku";
+      SF Pl Nom => x + "Żakowie";
+      SF Pl Gen => x + "żaków";
+      SF Pl Dat => x + "żakom";
+      SF Pl Acc => x + "żaków";
+      SF Pl Instr => x + "żakami";
+      SF Pl Loc => x + "żakach";
+      SF Pl Voc => x + "Żakowie"
+    };
+
+    oper mkNTable1498: Str -> SubstForm => Str; --%
+    oper mkNTable1498 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "żegota";
+      SF Sg Gen => x + "żegoty";
+      SF Sg Dat => x + "żegocie";
+      SF Sg Acc => x + "żegotę";
+      SF Sg Instr => x + "żegotą";
+      SF Sg Loc => x + "żegocie";
+      SF Sg Voc => x + "żegoto";
+      SF Pl Nom => x + "Żegotowie";
+      SF Pl Gen => x + "Żegotów";
+      SF Pl Dat => x + "żegotom";
+      SF Pl Acc => x + "Żegotów";
+      SF Pl Instr => x + "żegotami";
+      SF Pl Loc => x + "żegotach";
+      SF Pl Voc => x + "Żegotowie"
+    };
+
+    oper mkNTable1500: Str -> SubstForm => Str; --%
+    oper mkNTable1500 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "a";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "a";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "a";
+      SF Pl Dat => x + "a";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "a";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1501: Str -> SubstForm => Str; --%
+    oper mkNTable1501 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Żukowo";
+      SF Sg Gen => x + "Żukowa";
+      SF Sg Dat => x + "Żukowu";
+      SF Sg Acc => x + "Żukowo";
+      SF Sg Instr => x + "Żukowem";
+      SF Sg Loc => x + "Żukowie";
+      SF Sg Voc => x + "Żukowo";
+      SF Pl Nom => x + "Żukowa";
+      SF Pl Gen => x + "żuków";
+      SF Pl Dat => x + "Żukowom";
+      SF Pl Acc => x + "Żukowa";
+      SF Pl Instr => x + "Żukowami";
+      SF Pl Loc => x + "Żukowach";
+      SF Pl Voc => x + "Żukowa"
+    };
+
+    oper mkNTable1502: Str -> SubstForm => Str; --%
+    oper mkNTable1502 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "żurek";
+      SF Sg Gen => x + "Żurka";
+      SF Sg Dat => x + "żurkowi";
+      SF Sg Acc => x + "Żurka";
+      SF Sg Instr => x + "żurkiem";
+      SF Sg Loc => x + "żurku";
+      SF Sg Voc => x + "żurku";
+      SF Pl Nom => x + "Żurkowie";
+      SF Pl Gen => x + "żurków";
+      SF Pl Dat => x + "żurkom";
+      SF Pl Acc => x + "żurków";
+      SF Pl Instr => x + "żurkami";
+      SF Pl Loc => x + "żurkach";
+      SF Pl Voc => x + "Żurkowie"
+    };
+
+    oper mkNTable1503: Str -> SubstForm => Str; --%
+    oper mkNTable1503 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Żwirko";
+      SF Sg Gen => x + "żwirki";
+      SF Sg Dat => x + "Żwirce";
+      SF Sg Acc => x + "Żwirkę";
+      SF Sg Instr => x + "Żwirką";
+      SF Sg Loc => x + "Żwirce";
+      SF Sg Voc => x + "Żwirko";
+      SF Pl Nom => x + "Żwirkowie";
+      SF Pl Gen => x + "żwirków";
+      SF Pl Dat => x + "żwirkom";
+      SF Pl Acc => x + "żwirków";
+      SF Pl Instr => x + "żwirkami";
+      SF Pl Loc => x + "żwirkach";
+      SF Pl Voc => x + "Żwirkowie"
+    };
+
+    oper mkNTable1504: Str -> SubstForm => Str; --%
+    oper mkNTable1504 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "żydek";
+      SF Sg Gen => x + "żydka";
+      SF Sg Dat => x + "żydkowi";
+      SF Sg Acc => x + "żydka";
+      SF Sg Instr => x + "żydkiem";
+      SF Sg Loc => x + "żydku";
+      SF Sg Voc => x + "żydku";
+      SF Pl Nom => x + "Żydkowie";
+      SF Pl Gen => x + "żydków";
+      SF Pl Dat => x + "żydkom";
+      SF Pl Acc => x + "żydków";
+      SF Pl Instr => x + "żydkami";
+      SF Pl Loc => x + "żydkach";
+      SF Pl Voc => x + "Żydkowie"
+    };
+
+    oper mkNTable1505: Str -> SubstForm => Str; --%
+    oper mkNTable1505 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Łakomiec";
+      SF Sg Gen => x + "łakomca";
+      SF Sg Dat => x + "Łakomcowi";
+      SF Sg Acc => x + "łakomca";
+      SF Sg Instr => x + "Łakomcem";
+      SF Sg Loc => x + "Łakomcu";
+      SF Sg Voc => x + "Łakomcu";
+      SF Pl Nom => x + "łakomcy";
+      SF Pl Gen => x + "łakomców";
+      SF Pl Dat => x + "łakomcom";
+      SF Pl Acc => x + "łakomców";
+      SF Pl Instr => x + "łakomcami";
+      SF Pl Loc => x + "łakomcach";
+      SF Pl Voc => x + "łakomcy"
+    };
+
+    oper mkNTable1506: Str -> SubstForm => Str; --%
+    oper mkNTable1506 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "łatek";
+      SF Sg Gen => x + "łatka";
+      SF Sg Dat => x + "łatkowi";
+      SF Sg Acc => x + "łatka";
+      SF Sg Instr => x + "łatkiem";
+      SF Sg Loc => x + "łatku";
+      SF Sg Voc => x + "łatku";
+      SF Pl Nom => x + "Łatkowie";
+      SF Pl Gen => x + "łatków";
+      SF Pl Dat => x + "łatkom";
+      SF Pl Acc => x + "łatków";
+      SF Pl Instr => x + "łatkami";
+      SF Pl Loc => x + "łatkach";
+      SF Pl Voc => x + "Łatkowie"
+    };
+
+    oper mkNTable1507: Str -> SubstForm => Str; --%
+    oper mkNTable1507 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eb";
+      SF Sg Gen => x + "ba";
+      SF Sg Dat => x + "bu";
+      SF Sg Acc => x + "ba";
+      SF Sg Instr => x + "bem";
+      SF Sg Loc => x + "bie";
+      SF Sg Voc => x + "bie";
+      SF Pl Nom => x + "by";
+      SF Pl Gen => x + "bów";
+      SF Pl Dat => x + "bom";
+      SF Pl Acc => x + "by";
+      SF Pl Instr => x + "bami";
+      SF Pl Loc => x + "bach";
+      SF Pl Voc => x + "by"
+    };
+
+    oper mkNTable1508: Str -> SubstForm => Str; --%
+    oper mkNTable1508 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "eb";
+      SF Sg Gen => x + "ba";
+      SF Sg Dat => x + "bu";
+      SF Sg Acc => x + "eb";
+      SF Sg Instr => x + "bem";
+      SF Sg Loc => x + "bie";
+      SF Sg Voc => x + "bie";
+      SF Pl Nom => x + "by";
+      SF Pl Gen => x + "bów";
+      SF Pl Dat => x + "bom";
+      SF Pl Acc => x + "by";
+      SF Pl Instr => x + "bami";
+      SF Pl Loc => x + "bach";
+      SF Pl Voc => x + "by"
+    };
+
+    oper mkNTable1509: Str -> SubstForm => Str; --%
+    oper mkNTable1509 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "łebek";
+      SF Sg Gen => x + "łebka";
+      SF Sg Dat => x + "łebkowi";
+      SF Sg Acc => x + "łebka";
+      SF Sg Instr => x + "łebkiem";
+      SF Sg Loc => x + "łebku";
+      SF Sg Voc => x + "łebku";
+      SF Pl Nom => x + "Łebkowie";
+      SF Pl Gen => x + "łebków";
+      SF Pl Dat => x + "łebkom";
+      SF Pl Acc => x + "łebków";
+      SF Pl Instr => x + "łebkami";
+      SF Pl Loc => x + "łebkach";
+      SF Pl Voc => x + "Łebkowie"
+    };
+
+    oper mkNTable1510: Str -> SubstForm => Str; --%
+    oper mkNTable1510 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "łepek";
+      SF Sg Gen => x + "łepka";
+      SF Sg Dat => x + "łepkowi";
+      SF Sg Acc => x + "łepka";
+      SF Sg Instr => x + "łepkiem";
+      SF Sg Loc => x + "łepku";
+      SF Sg Voc => x + "łepku";
+      SF Pl Nom => x + "Łepkowie";
+      SF Pl Gen => x + "łepków";
+      SF Pl Dat => x + "łepkom";
+      SF Pl Acc => x + "łepków";
+      SF Pl Instr => x + "łepkami";
+      SF Pl Loc => x + "łepkach";
+      SF Pl Voc => x + "Łepkowie"
+    };
+
+    oper mkNTable1511: Str -> SubstForm => Str; --%
+    oper mkNTable1511 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "za";
+      SF Sg Gen => x + "zy";
+      SF Sg Dat => x + "zie";
+      SF Sg Acc => x + "zę";
+      SF Sg Instr => x + "zą";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zo";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ez";
+      SF Pl Dat => x + "zom";
+      SF Pl Acc => x + "zy";
+      SF Pl Instr => x + "zami";
+      SF Pl Loc => x + "zach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1513: Str -> SubstForm => Str; --%
+    oper mkNTable1513 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "świtek";
+      SF Sg Gen => x + "Świtku";
+      SF Sg Dat => x + "Świtkowi";
+      SF Sg Acc => x + "świtek";
+      SF Sg Instr => x + "Świtkiem";
+      SF Sg Loc => x + "Świtku";
+      SF Sg Voc => x + "Świtku";
+      SF Pl Nom => x + "świtki";
+      SF Pl Gen => x + "Świtków";
+      SF Pl Dat => x + "świtkom";
+      SF Pl Acc => x + "świtki";
+      SF Pl Instr => x + "świtkami";
+      SF Pl Loc => x + "świtkach";
+      SF Pl Voc => x + "świtki"
+    };
+
+    oper mkNTable1514: Str -> SubstForm => Str; --%
+    oper mkNTable1514 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ęto";
+      SF Sg Gen => x + "ęta";
+      SF Sg Dat => x + "ętu";
+      SF Sg Acc => x + "ęto";
+      SF Sg Instr => x + "ętem";
+      SF Sg Loc => x + "ęcie";
+      SF Sg Voc => x + "ęto";
+      SF Pl Nom => x + "ęta";
+      SF Pl Gen => x + "ąt";
+      SF Pl Dat => x + "ętom";
+      SF Pl Acc => x + "ęta";
+      SF Pl Instr => x + "ętami";
+      SF Pl Loc => x + "ętach";
+      SF Pl Voc => x + "ęta"
+    };
+
+    oper mkNTable1515: Str -> SubstForm => Str; --%
+    oper mkNTable1515 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "źce";
+      SF Sg Gen => x + "źca";
+      SF Sg Dat => x + "źcu";
+      SF Sg Acc => x + "źce";
+      SF Sg Instr => x + "źcem";
+      SF Sg Loc => x + "źcu";
+      SF Sg Voc => x + "źce";
+      SF Pl Nom => x + "źca";
+      SF Pl Gen => x + "ziec";
+      SF Pl Dat => x + "źcom";
+      SF Pl Acc => x + "źca";
+      SF Pl Instr => x + "źcami";
+      SF Pl Loc => x + "źcach";
+      SF Pl Voc => x + "źca"
+    };
+
+    oper mkNTable1516: Str -> SubstForm => Str; --%
+    oper mkNTable1516 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ądź";
+      SF Sg Gen => x + "ędzi";
+      SF Sg Dat => x + "ędzi";
+      SF Sg Acc => x + "ądź";
+      SF Sg Instr => x + "ędzią";
+      SF Sg Loc => x + "ędzi";
+      SF Sg Voc => x + "ędzi";
+      SF Pl Nom => x + "ędzie";
+      SF Pl Gen => x + "ędzi";
+      SF Pl Dat => x + "ędziom";
+      SF Pl Acc => x + "ędzie";
+      SF Pl Instr => x + "ędziami";
+      SF Pl Loc => x + "ędziach";
+      SF Pl Voc => x + "ędzie"
+    };
+
+    oper mkNTable1517: Str -> SubstForm => Str; --%
+    oper mkNTable1517 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ądź";
+      SF Sg Gen => x + "ędzia";
+      SF Sg Dat => x + "ędziowi";
+      SF Sg Acc => x + "ędzia";
+      SF Sg Instr => x + "ędziem";
+      SF Sg Loc => x + "ędziu";
+      SF Sg Voc => x + "ędziu";
+      SF Pl Nom => x + "ędzie";
+      SF Pl Gen => x + "ędzi";
+      SF Pl Dat => x + "ędziom";
+      SF Pl Acc => x + "ędzie";
+      SF Pl Instr => x + "ędziami";
+      SF Pl Loc => x + "ędziach";
+      SF Pl Voc => x + "ędzie"
+    };
+
+    oper mkNTable1518: Str -> SubstForm => Str; --%
+    oper mkNTable1518 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ądź";
+      SF Sg Gen => x + "ędzia";
+      SF Sg Dat => x + "ędziowi";
+      SF Sg Acc => x + "ądź";
+      SF Sg Instr => x + "ędziem";
+      SF Sg Loc => x + "ędziu";
+      SF Sg Voc => x + "ędziu";
+      SF Pl Nom => x + "ędzie";
+      SF Pl Gen => x + "ędzi";
+      SF Pl Dat => x + "ędziom";
+      SF Pl Acc => x + "ędzie";
+      SF Pl Instr => x + "ędziami";
+      SF Pl Loc => x + "ędziach";
+      SF Pl Voc => x + "ędzie"
+    };
+
+    oper mkNTable1519: Str -> SubstForm => Str; --%
+    oper mkNTable1519 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "żółtek";
+      SF Sg Gen => x + "żółtka";
+      SF Sg Dat => x + "żółtkowi";
+      SF Sg Acc => x + "żółtka";
+      SF Sg Instr => x + "żółtkiem";
+      SF Sg Loc => x + "żółtku";
+      SF Sg Voc => x + "żółtku";
+      SF Pl Nom => x + "Żółtkowie";
+      SF Pl Gen => x + "żółtków";
+      SF Pl Dat => x + "żółtkom";
+      SF Pl Acc => x + "żółtków";
+      SF Pl Instr => x + "żółtkami";
+      SF Pl Loc => x + "żółtkach";
+      SF Pl Voc => x + "Żółtkowie"
+    };
+
+    oper mkNTable1520: Str -> SubstForm => Str; --%
+    oper mkNTable1520 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ćma";
+      SF Sg Gen => x + "ćmy";
+      SF Sg Dat => x + "ćmie";
+      SF Sg Acc => x + "ćmę";
+      SF Sg Instr => x + "ćmą";
+      SF Sg Loc => x + "ćmie";
+      SF Sg Voc => x + "ćmo";
+      SF Pl Nom => x + "ćmy";
+      SF Pl Gen => x + "ciem";
+      SF Pl Dat => x + "ćmom";
+      SF Pl Acc => x + "ćmy";
+      SF Pl Instr => x + "ćmami";
+      SF Pl Loc => x + "ćmach";
+      SF Pl Voc => x + "ćmy"
+    };
+
+    oper mkNTable1521: Str -> SubstForm => Str; --%
+    oper mkNTable1521 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ćwik";
+      SF Sg Gen => x + "ćwika";
+      SF Sg Dat => x + "ćwikowi";
+      SF Sg Acc => x + "ćwika";
+      SF Sg Instr => x + "ćwikiem";
+      SF Sg Loc => x + "ćwiku";
+      SF Sg Voc => x + "ćwiku";
+      SF Pl Nom => x + "Ćwikowie";
+      SF Pl Gen => x + "ćwików";
+      SF Pl Dat => x + "ćwikom";
+      SF Pl Acc => x + "ćwików";
+      SF Pl Instr => x + "ćwikami";
+      SF Pl Loc => x + "ćwikach";
+      SF Pl Voc => x + "Ćwikowie"
+    };
+
+    oper mkNTable0005: Str -> SubstForm => Str; --%
+    oper mkNTable0005 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0014: Str -> SubstForm => Str; --%
+    oper mkNTable0014 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owu";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0019: Str -> SubstForm => Str; --%
+    oper mkNTable0019 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0020: Str -> SubstForm => Str; --%
+    oper mkNTable0020 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0027: Str -> SubstForm => Str; --%
+    oper mkNTable0027 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0034: Str -> SubstForm => Str; --%
+    oper mkNTable0034 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0041: Str -> SubstForm => Str; --%
+    oper mkNTable0041 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0048: Str -> SubstForm => Str; --%
+    oper mkNTable0048 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0053: Str -> SubstForm => Str; --%
+    oper mkNTable0053 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0066: Str -> SubstForm => Str; --%
+    oper mkNTable0066 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0075: Str -> SubstForm => Str; --%
+    oper mkNTable0075 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0085: Str -> SubstForm => Str; --%
+    oper mkNTable0085 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "tu";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "t";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0086: Str -> SubstForm => Str; --%
+    oper mkNTable0086 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0094: Str -> SubstForm => Str; --%
+    oper mkNTable0094 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "x";
+      SF Sg Gen => x + "ksa";
+      SF Sg Dat => x + "ksowi";
+      SF Sg Acc => x + "ksa";
+      SF Sg Instr => x + "ksem";
+      SF Sg Loc => x + "ksie";
+      SF Sg Voc => x + "ksie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0101: Str -> SubstForm => Str; --%
+    oper mkNTable0101 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "augustów";
+      SF Sg Gen => x + "Augustowa";
+      SF Sg Dat => x + "Augustowu";
+      SF Sg Acc => x + "augustów";
+      SF Sg Instr => x + "Augustowem";
+      SF Sg Loc => x + "Augustowie";
+      SF Sg Voc => x + "Augustowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0108: Str -> SubstForm => Str; --%
+    oper mkNTable0108 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "x";
+      SF Sg Gen => x + "ksu";
+      SF Sg Dat => x + "ksowi";
+      SF Sg Acc => x + "x";
+      SF Sg Instr => x + "ksem";
+      SF Sg Loc => x + "ksie";
+      SF Sg Voc => x + "ksie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0110: Str -> SubstForm => Str; --%
+    oper mkNTable0110 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "stu";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "st";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0115: Str -> SubstForm => Str; --%
+    oper mkNTable0115 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ł";
+      SF Sg Gen => x + "łu";
+      SF Sg Dat => x + "łowi";
+      SF Sg Acc => x + "ł";
+      SF Sg Instr => x + "łem";
+      SF Sg Loc => x + "le";
+      SF Sg Voc => x + "le";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0130: Str -> SubstForm => Str; --%
+    oper mkNTable0130 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "bałtów";
+      SF Sg Gen => x + "Bałtowa";
+      SF Sg Dat => x + "Bałtowowi";
+      SF Sg Acc => x + "bałtów";
+      SF Sg Instr => x + "Bałtowem";
+      SF Sg Loc => x + "Bałtowie";
+      SF Sg Voc => x + "Bałtowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0135: Str -> SubstForm => Str; --%
+    oper mkNTable0135 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0146: Str -> SubstForm => Str; --%
+    oper mkNTable0146 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0152: Str -> SubstForm => Str; --%
+    oper mkNTable0152 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "ń";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0162: Str -> SubstForm => Str; --%
+    oper mkNTable0162 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "niec";
+      SF Sg Gen => x + "ńca";
+      SF Sg Dat => x + "ńcowi";
+      SF Sg Acc => x + "niec";
+      SF Sg Instr => x + "ńcem";
+      SF Sg Loc => x + "ńcu";
+      SF Sg Voc => x + "ńcu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0172: Str -> SubstForm => Str; --%
+    oper mkNTable0172 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "bolków";
+      SF Sg Gen => x + "Bolkowa";
+      SF Sg Dat => x + "Bolkowowi";
+      SF Sg Acc => x + "bolków";
+      SF Sg Instr => x + "Bolkowem";
+      SF Sg Loc => x + "Bolkowie";
+      SF Sg Voc => x + "Bolkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0178: Str -> SubstForm => Str; --%
+    oper mkNTable0178 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "borów";
+      SF Sg Gen => x + "Borowa";
+      SF Sg Dat => x + "Borowu";
+      SF Sg Acc => x + "borów";
+      SF Sg Instr => x + "Borowem";
+      SF Sg Loc => x + "Borowie";
+      SF Sg Voc => x + "Borowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0191: Str -> SubstForm => Str; --%
+    oper mkNTable0191 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ć";
+      SF Sg Gen => x + "cia";
+      SF Sg Dat => x + "ciowi";
+      SF Sg Acc => x + "ć";
+      SF Sg Instr => x + "ciem";
+      SF Sg Loc => x + "ciu";
+      SF Sg Voc => x + "ciu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0198: Str -> SubstForm => Str; --%
+    oper mkNTable0198 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "ń";
+      SF Sg Gen => x + "nia";
+      SF Sg Dat => x + "niowi";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niem";
+      SF Sg Loc => x + "niu";
+      SF Sg Voc => x + "niu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0200: Str -> SubstForm => Str; --%
+    oper mkNTable0200 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bytów";
+      SF Sg Gen => x + "Bytowa";
+      SF Sg Dat => x + "Bytowowi";
+      SF Sg Acc => x + "bytów";
+      SF Sg Instr => x + "Bytowem";
+      SF Sg Loc => x + "Bytowie";
+      SF Sg Voc => x + "Bytowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0202: Str -> SubstForm => Str; --%
+    oper mkNTable0202 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "bąków";
+      SF Sg Gen => x + "Bąkowa";
+      SF Sg Dat => x + "Bąkowu";
+      SF Sg Acc => x + "bąków";
+      SF Sg Instr => x + "Bąkowem";
+      SF Sg Loc => x + "Bąkowie";
+      SF Sg Voc => x + "Bąkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0204: Str -> SubstForm => Str; --%
+    oper mkNTable0204 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "błędów";
+      SF Sg Gen => x + "Błędowa";
+      SF Sg Dat => x + "Błędowu";
+      SF Sg Acc => x + "błędów";
+      SF Sg Instr => x + "Błędowem";
+      SF Sg Loc => x + "Błędowie";
+      SF Sg Voc => x + "Błędowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0210: Str -> SubstForm => Str; --%
+    oper mkNTable0210 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "celestynów";
+      SF Sg Gen => x + "Celestynowa";
+      SF Sg Dat => x + "Celestynowowi";
+      SF Sg Acc => x + "celestynów";
+      SF Sg Instr => x + "Celestynowem";
+      SF Sg Loc => x + "Celestynowie";
+      SF Sg Voc => x + "Celestynowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0216: Str -> SubstForm => Str; --%
+    oper mkNTable0216 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ek";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0219: Str -> SubstForm => Str; --%
+    oper mkNTable0219 lexem = 
+      let x = Predef.tk 9 lexem in
+    table { 
+      SF Sg Nom => x + "chochołów";
+      SF Sg Gen => x + "Chochołowa";
+      SF Sg Dat => x + "Chochołowowi";
+      SF Sg Acc => x + "chochołów";
+      SF Sg Instr => x + "Chochołowem";
+      SF Sg Loc => x + "Chochołowie";
+      SF Sg Voc => x + "Chochołowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0220: Str -> SubstForm => Str; --%
+    oper mkNTable0220 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "chodów";
+      SF Sg Gen => x + "Chodowa";
+      SF Sg Dat => x + "Chodowowi";
+      SF Sg Acc => x + "chodów";
+      SF Sg Instr => x + "Chodowem";
+      SF Sg Loc => x + "Chodowie";
+      SF Sg Voc => x + "Chodowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0225: Str -> SubstForm => Str; --%
+    oper mkNTable0225 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "chrzanów";
+      SF Sg Gen => x + "Chrzanowa";
+      SF Sg Dat => x + "Chrzanowu";
+      SF Sg Acc => x + "chrzanów";
+      SF Sg Instr => x + "Chrzanowem";
+      SF Sg Loc => x + "Chrzanowie";
+      SF Sg Voc => x + "Chrzanowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0229: Str -> SubstForm => Str; --%
+    oper mkNTable0229 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0234: Str -> SubstForm => Str; --%
+    oper mkNTable0234 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "cycero";
+      SF Sg Gen => x + "Cycerona";
+      SF Sg Dat => x + "Cyceronowi";
+      SF Sg Acc => x + "Cycerona";
+      SF Sg Instr => x + "Cyceronem";
+      SF Sg Loc => x + "Cyceronie";
+      SF Sg Voc => x + "cycero";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0235: Str -> SubstForm => Str; --%
+    oper mkNTable0235 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "cyców";
+      SF Sg Gen => x + "Cycowa";
+      SF Sg Dat => x + "Cycowowi";
+      SF Sg Acc => x + "cyców";
+      SF Sg Instr => x + "Cycowem";
+      SF Sg Loc => x + "Cycowie";
+      SF Sg Voc => x + "Cycowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0248: Str -> SubstForm => Str; --%
+    oper mkNTable0248 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "czerniaków";
+      SF Sg Gen => x + "Czerniakowa";
+      SF Sg Dat => x + "Czerniakowowi";
+      SF Sg Acc => x + "Czerniakowa";
+      SF Sg Instr => x + "Czerniakowem";
+      SF Sg Loc => x + "Czerniakowie";
+      SF Sg Voc => x + "Czerniakowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0249: Str -> SubstForm => Str; --%
+    oper mkNTable0249 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "czerniaków";
+      SF Sg Gen => x + "Czerniakowa";
+      SF Sg Dat => x + "Czerniakowowi";
+      SF Sg Acc => x + "czerniaków";
+      SF Sg Instr => x + "Czerniakowem";
+      SF Sg Loc => x + "Czerniakowie";
+      SF Sg Voc => x + "Czerniakowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0255: Str -> SubstForm => Str; --%
+    oper mkNTable0255 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0270: Str -> SubstForm => Str; --%
+    oper mkNTable0270 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "ta";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0288: Str -> SubstForm => Str; --%
+    oper mkNTable0288 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "ie";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0291: Str -> SubstForm => Str; --%
+    oper mkNTable0291 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "dynów";
+      SF Sg Gen => x + "Dynowa";
+      SF Sg Dat => x + "Dynowowi";
+      SF Sg Acc => x + "dynów";
+      SF Sg Instr => x + "Dynowem";
+      SF Sg Loc => x + "Dynowie";
+      SF Sg Voc => x + "Dynowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0292: Str -> SubstForm => Str; --%
+    oper mkNTable0292 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "iec";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0293: Str -> SubstForm => Str; --%
+    oper mkNTable0293 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "dzików";
+      SF Sg Gen => x + "Dzikowa";
+      SF Sg Dat => x + "Dzikowu";
+      SF Sg Acc => x + "dzików";
+      SF Sg Instr => x + "Dzikowem";
+      SF Sg Loc => x + "Dzikowie";
+      SF Sg Voc => x + "Dzikowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0299: Str -> SubstForm => Str; --%
+    oper mkNTable0299 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0308: Str -> SubstForm => Str; --%
+    oper mkNTable0308 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "st";
+      SF Sg Gen => x + "sta";
+      SF Sg Dat => x + "stowi";
+      SF Sg Acc => x + "sta";
+      SF Sg Instr => x + "stem";
+      SF Sg Loc => x + "ście";
+      SF Sg Voc => x + "ście";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0317: Str -> SubstForm => Str; --%
+    oper mkNTable0317 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "filipów";
+      SF Sg Gen => x + "Filipowa";
+      SF Sg Dat => x + "Filipowowi";
+      SF Sg Acc => x + "filipów";
+      SF Sg Instr => x + "Filipowem";
+      SF Sg Loc => x + "Filipowie";
+      SF Sg Voc => x + "Filipowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0336: Str -> SubstForm => Str; --%
+    oper mkNTable0336 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "garbów";
+      SF Sg Gen => x + "Garbowa";
+      SF Sg Dat => x + "Garbowowi";
+      SF Sg Acc => x + "garbów";
+      SF Sg Instr => x + "Garbowem";
+      SF Sg Loc => x + "Garbowie";
+      SF Sg Voc => x + "Garbowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0347: Str -> SubstForm => Str; --%
+    oper mkNTable0347 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "gniewoszów";
+      SF Sg Gen => x + "Gniewoszowa";
+      SF Sg Dat => x + "Gniewoszowowi";
+      SF Sg Acc => x + "gniewoszów";
+      SF Sg Instr => x + "Gniewoszowem";
+      SF Sg Loc => x + "Gniewoszowie";
+      SF Sg Voc => x + "Gniewoszowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0348: Str -> SubstForm => Str; --%
+    oper mkNTable0348 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "ia";
+      SF Sg Dat => x + "iowi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "iem";
+      SF Sg Loc => x + "iu";
+      SF Sg Voc => x + "iu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0362: Str -> SubstForm => Str; --%
+    oper mkNTable0362 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "grabów";
+      SF Sg Gen => x + "Grabowa";
+      SF Sg Dat => x + "Grabowu";
+      SF Sg Acc => x + "grabów";
+      SF Sg Instr => x + "Grabowem";
+      SF Sg Loc => x + "Grabowie";
+      SF Sg Voc => x + "Grabowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0368: Str -> SubstForm => Str; --%
+    oper mkNTable0368 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "grochów";
+      SF Sg Gen => x + "grochowa";
+      SF Sg Dat => x + "Grochowu";
+      SF Sg Acc => x + "grochów";
+      SF Sg Instr => x + "Grochowem";
+      SF Sg Loc => x + "Grochowie";
+      SF Sg Voc => x + "Grochowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0376: Str -> SubstForm => Str; --%
+    oper mkNTable0376 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "grzybów";
+      SF Sg Gen => x + "grzybowa";
+      SF Sg Dat => x + "Grzybowu";
+      SF Sg Acc => x + "grzybów";
+      SF Sg Instr => x + "Grzybowem";
+      SF Sg Loc => x + "Grzybowie";
+      SF Sg Voc => x + "Grzybowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0380: Str -> SubstForm => Str; --%
+    oper mkNTable0380 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "głogów";
+      SF Sg Gen => x + "Głogowa";
+      SF Sg Dat => x + "Głogowu";
+      SF Sg Acc => x + "głogów";
+      SF Sg Instr => x + "Głogowem";
+      SF Sg Loc => x + "Głogowie";
+      SF Sg Voc => x + "Głogowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0394: Str -> SubstForm => Str; --%
+    oper mkNTable0394 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0403: Str -> SubstForm => Str; --%
+    oper mkNTable0403 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "m";
+      SF Sg Loc => x + "m";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0405: Str -> SubstForm => Str; --%
+    oper mkNTable0405 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ódz";
+      SF Sg Gen => x + "odza";
+      SF Sg Dat => x + "odzowi";
+      SF Sg Acc => x + "ódz";
+      SF Sg Instr => x + "odzem";
+      SF Sg Loc => x + "odzu";
+      SF Sg Voc => x + "odzu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0418: Str -> SubstForm => Str; --%
+    oper mkNTable0418 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "em";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0422: Str -> SubstForm => Str; --%
+    oper mkNTable0422 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ów";
+      SF Sg Gen => x + "owa";
+      SF Sg Dat => x + "owowi";
+      SF Sg Acc => x + "owa";
+      SF Sg Instr => x + "owem";
+      SF Sg Loc => x + "owie";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0432: Str -> SubstForm => Str; --%
+    oper mkNTable0432 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "jaworów";
+      SF Sg Gen => x + "Jaworowa";
+      SF Sg Dat => x + "Jaworowowi";
+      SF Sg Acc => x + "jaworów";
+      SF Sg Instr => x + "Jaworowem";
+      SF Sg Loc => x + "Jaworowie";
+      SF Sg Voc => x + "Jaworowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0439: Str -> SubstForm => Str; --%
+    oper mkNTable0439 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "jeżów";
+      SF Sg Gen => x + "Jeżowa";
+      SF Sg Dat => x + "Jeżowowi";
+      SF Sg Acc => x + "jeżów";
+      SF Sg Instr => x + "Jeżowem";
+      SF Sg Loc => x + "Jeżowie";
+      SF Sg Voc => x + "Jeżowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0443: Str -> SubstForm => Str; --%
+    oper mkNTable0443 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "jordanów";
+      SF Sg Gen => x + "Jordanowa";
+      SF Sg Dat => x + "Jordanowu";
+      SF Sg Acc => x + "jordanów";
+      SF Sg Instr => x + "Jordanowem";
+      SF Sg Loc => x + "Jordanowie";
+      SF Sg Voc => x + "Jordanowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0450: Str -> SubstForm => Str; --%
+    oper mkNTable0450 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "karczów";
+      SF Sg Gen => x + "Karczowa";
+      SF Sg Dat => x + "Karczowowi";
+      SF Sg Acc => x + "karczów";
+      SF Sg Instr => x + "Karczowem";
+      SF Sg Loc => x + "Karczowie";
+      SF Sg Voc => x + "Karczowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0469: Str -> SubstForm => Str; --%
+    oper mkNTable0469 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kijów";
+      SF Sg Gen => x + "Kijowa";
+      SF Sg Dat => x + "Kijowowi";
+      SF Sg Acc => x + "kijów";
+      SF Sg Instr => x + "Kijowem";
+      SF Sg Loc => x + "Kijowie";
+      SF Sg Voc => x + "Kijowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0476: Str -> SubstForm => Str; --%
+    oper mkNTable0476 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "knurów";
+      SF Sg Gen => x + "Knurowa";
+      SF Sg Dat => x + "Knurowowi";
+      SF Sg Acc => x + "knurów";
+      SF Sg Instr => x + "Knurowem";
+      SF Sg Loc => x + "Knurowie";
+      SF Sg Voc => x + "Knurowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0478: Str -> SubstForm => Str; --%
+    oper mkNTable0478 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Kolbe";
+      SF Sg Gen => x + "Kolbego";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "Kolbego";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "Kolbe";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0480: Str -> SubstForm => Str; --%
+    oper mkNTable0480 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "komarów";
+      SF Sg Gen => x + "Komarowa";
+      SF Sg Dat => x + "Komarowu";
+      SF Sg Acc => x + "komarów";
+      SF Sg Instr => x + "Komarowem";
+      SF Sg Loc => x + "Komarowie";
+      SF Sg Voc => x + "Komarowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0482: Str -> SubstForm => Str; --%
+    oper mkNTable0482 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "koniaków";
+      SF Sg Gen => x + "Koniakowa";
+      SF Sg Dat => x + "Koniakowowi";
+      SF Sg Acc => x + "koniaków";
+      SF Sg Instr => x + "Koniakowem";
+      SF Sg Loc => x + "Koniakowie";
+      SF Sg Voc => x + "Koniakowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0492: Str -> SubstForm => Str; --%
+    oper mkNTable0492 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kosów";
+      SF Sg Gen => x + "Kosowa";
+      SF Sg Dat => x + "Kosowu";
+      SF Sg Acc => x + "kosów";
+      SF Sg Instr => x + "Kosowem";
+      SF Sg Loc => x + "Kosowie";
+      SF Sg Voc => x + "Kosowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0499: Str -> SubstForm => Str; --%
+    oper mkNTable0499 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "kozłów";
+      SF Sg Gen => x + "Kozłowa";
+      SF Sg Dat => x + "Kozłowu";
+      SF Sg Acc => x + "kozłów";
+      SF Sg Instr => x + "Kozłowem";
+      SF Sg Loc => x + "Kozłowie";
+      SF Sg Voc => x + "Kozłowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0501: Str -> SubstForm => Str; --%
+    oper mkNTable0501 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "kożuchów";
+      SF Sg Gen => x + "Kożuchowa";
+      SF Sg Dat => x + "Kożuchowowi";
+      SF Sg Acc => x + "kożuchów";
+      SF Sg Instr => x + "Kożuchowem";
+      SF Sg Loc => x + "Kożuchowie";
+      SF Sg Voc => x + "Kożuchowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0524: Str -> SubstForm => Str; --%
+    oper mkNTable0524 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "kurów";
+      SF Sg Gen => x + "Kurowa";
+      SF Sg Dat => x + "Kurowu";
+      SF Sg Acc => x + "kurów";
+      SF Sg Instr => x + "Kurowem";
+      SF Sg Loc => x + "Kurowie";
+      SF Sg Voc => x + "Kurowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0530: Str -> SubstForm => Str; --%
+    oper mkNTable0530 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "Lampe";
+      SF Sg Gen => x + "Lampego";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "Lampego";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "Lampe";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0546: Str -> SubstForm => Str; --%
+    oper mkNTable0546 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0551: Str -> SubstForm => Str; --%
+    oper mkNTable0551 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "lisków";
+      SF Sg Gen => x + "Liskowa";
+      SF Sg Dat => x + "Liskowowi";
+      SF Sg Acc => x + "lisków";
+      SF Sg Instr => x + "Liskowem";
+      SF Sg Loc => x + "Liskowie";
+      SF Sg Voc => x + "Liskowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0556: Str -> SubstForm => Str; --%
+    oper mkNTable0556 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "lwów";
+      SF Sg Gen => x + "Lwowa";
+      SF Sg Dat => x + "Lwowu";
+      SF Sg Acc => x + "lwów";
+      SF Sg Instr => x + "Lwowem";
+      SF Sg Loc => x + "Lwowie";
+      SF Sg Voc => x + "Lwowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0559: Str -> SubstForm => Str; --%
+    oper mkNTable0559 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "machów";
+      SF Sg Gen => x + "Machowa";
+      SF Sg Dat => x + "Machowowi";
+      SF Sg Acc => x + "machów";
+      SF Sg Instr => x + "Machowem";
+      SF Sg Loc => x + "Machowie";
+      SF Sg Voc => x + "Machowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0569: Str -> SubstForm => Str; --%
+    oper mkNTable0569 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "maków";
+      SF Sg Gen => x + "Makowa";
+      SF Sg Dat => x + "Makowu";
+      SF Sg Acc => x + "maków";
+      SF Sg Instr => x + "Makowem";
+      SF Sg Loc => x + "Makowie";
+      SF Sg Voc => x + "Makowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0582: Str -> SubstForm => Str; --%
+    oper mkNTable0582 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "t";
+      SF Sg Gen => x + "ta";
+      SF Sg Dat => x + "towi";
+      SF Sg Acc => x + "t";
+      SF Sg Instr => x + "tem";
+      SF Sg Loc => x + "cie";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0602: Str -> SubstForm => Str; --%
+    oper mkNTable0602 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0603: Str -> SubstForm => Str; --%
+    oper mkNTable0603 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0604: Str -> SubstForm => Str; --%
+    oper mkNTable0604 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "miechów";
+      SF Sg Gen => x + "Miechowa";
+      SF Sg Dat => x + "Miechowu";
+      SF Sg Acc => x + "miechów";
+      SF Sg Instr => x + "Miechowem";
+      SF Sg Loc => x + "Miechowie";
+      SF Sg Voc => x + "Miechowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0612: Str -> SubstForm => Str; --%
+    oper mkNTable0612 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Minh";
+      SF Sg Gen => x + "Minha";
+      SF Sg Dat => x + "Minhowi";
+      SF Sg Acc => x + "Minha";
+      SF Sg Instr => x + "Minhem";
+      SF Sg Loc => x + "minie";
+      SF Sg Voc => x + "minie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0613: Str -> SubstForm => Str; --%
+    oper mkNTable0613 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Minh";
+      SF Sg Gen => x + "Minhu";
+      SF Sg Dat => x + "Minhowi";
+      SF Sg Acc => x + "Minh";
+      SF Sg Instr => x + "Minhem";
+      SF Sg Loc => x + "minie";
+      SF Sg Voc => x + "minie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0619: Str -> SubstForm => Str; --%
+    oper mkNTable0619 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "mniszków";
+      SF Sg Gen => x + "Mniszkowa";
+      SF Sg Dat => x + "Mniszkowowi";
+      SF Sg Acc => x + "mniszków";
+      SF Sg Instr => x + "Mniszkowem";
+      SF Sg Loc => x + "mniszkowie";
+      SF Sg Voc => x + "mniszkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0630: Str -> SubstForm => Str; --%
+    oper mkNTable0630 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "murów";
+      SF Sg Gen => x + "Murowa";
+      SF Sg Dat => x + "Murowowi";
+      SF Sg Acc => x + "murów";
+      SF Sg Instr => x + "Murowem";
+      SF Sg Loc => x + "Murowie";
+      SF Sg Voc => x + "Murowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0634: Str -> SubstForm => Str; --%
+    oper mkNTable0634 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "namysłów";
+      SF Sg Gen => x + "Namysłowa";
+      SF Sg Dat => x + "Namysłowowi";
+      SF Sg Acc => x + "namysłów";
+      SF Sg Instr => x + "Namysłowem";
+      SF Sg Loc => x + "Namysłowie";
+      SF Sg Voc => x + "Namysłowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0641: Str -> SubstForm => Str; --%
+    oper mkNTable0641 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "nałęczów";
+      SF Sg Gen => x + "Nałęczowa";
+      SF Sg Dat => x + "Nałęczowowi";
+      SF Sg Acc => x + "nałęczów";
+      SF Sg Instr => x + "Nałęczowem";
+      SF Sg Loc => x + "Nałęczowie";
+      SF Sg Voc => x + "Nałęczowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0647: Str -> SubstForm => Str; --%
+    oper mkNTable0647 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "en";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "en";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0652: Str -> SubstForm => Str; --%
+    oper mkNTable0652 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ód";
+      SF Sg Gen => x + "odu";
+      SF Sg Dat => x + "odowi";
+      SF Sg Acc => x + "ód";
+      SF Sg Instr => x + "odem";
+      SF Sg Loc => x + "odzie";
+      SF Sg Voc => x + "odzie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0655: Str -> SubstForm => Str; --%
+    oper mkNTable0655 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0657: Str -> SubstForm => Str; --%
+    oper mkNTable0657 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "ojców";
+      SF Sg Gen => x + "Ojcowa";
+      SF Sg Dat => x + "Ojcowowi";
+      SF Sg Acc => x + "ojców";
+      SF Sg Instr => x + "Ojcowem";
+      SF Sg Loc => x + "ojcowie";
+      SF Sg Voc => x + "ojcowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0661: Str -> SubstForm => Str; --%
+    oper mkNTable0661 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ka";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ka";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0662: Str -> SubstForm => Str; --%
+    oper mkNTable0662 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "opatów";
+      SF Sg Gen => x + "Opatowa";
+      SF Sg Dat => x + "Opatowowi";
+      SF Sg Acc => x + "opatów";
+      SF Sg Instr => x + "Opatowem";
+      SF Sg Loc => x + "Opatowie";
+      SF Sg Voc => x + "Opatowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0663: Str -> SubstForm => Str; --%
+    oper mkNTable0663 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "oporów";
+      SF Sg Gen => x + "Oporowa";
+      SF Sg Dat => x + "Oporowu";
+      SF Sg Acc => x + "oporów";
+      SF Sg Instr => x + "Oporowem";
+      SF Sg Loc => x + "Oporowie";
+      SF Sg Voc => x + "Oporowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0666: Str -> SubstForm => Str; --%
+    oper mkNTable0666 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "osiek";
+      SF Sg Gen => x + "Osieku";
+      SF Sg Dat => x + "Osiekowi";
+      SF Sg Acc => x + "osiek";
+      SF Sg Instr => x + "Osiekiem";
+      SF Sg Loc => x + "Osieku";
+      SF Sg Voc => x + "Osieku";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0671: Str -> SubstForm => Str; --%
+    oper mkNTable0671 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "ozorków";
+      SF Sg Gen => x + "Ozorkowa";
+      SF Sg Dat => x + "Ozorkowowi";
+      SF Sg Acc => x + "ozorków";
+      SF Sg Instr => x + "Ozorkowem";
+      SF Sg Loc => x + "Ozorkowie";
+      SF Sg Voc => x + "Ozorkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0676: Str -> SubstForm => Str; --%
+    oper mkNTable0676 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "pacanów";
+      SF Sg Gen => x + "Pacanowa";
+      SF Sg Dat => x + "Pacanowowi";
+      SF Sg Acc => x + "pacanów";
+      SF Sg Instr => x + "Pacanowem";
+      SF Sg Loc => x + "Pacanowie";
+      SF Sg Voc => x + "Pacanowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0683: Str -> SubstForm => Str; --%
+    oper mkNTable0683 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "i";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "i";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0687: Str -> SubstForm => Str; --%
+    oper mkNTable0687 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0695: Str -> SubstForm => Str; --%
+    oper mkNTable0695 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "piastów";
+      SF Sg Gen => x + "Piastowa";
+      SF Sg Dat => x + "Piastowu";
+      SF Sg Acc => x + "piastów";
+      SF Sg Instr => x + "Piastowem";
+      SF Sg Loc => x + "piastowie";
+      SF Sg Voc => x + "piastowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0699: Str -> SubstForm => Str; --%
+    oper mkNTable0699 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0705: Str -> SubstForm => Str; --%
+    oper mkNTable0705 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "na";
+      SF Sg Dat => x + "nowi";
+      SF Sg Acc => x + "na";
+      SF Sg Instr => x + "nem";
+      SF Sg Loc => x + "nie";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0712: Str -> SubstForm => Str; --%
+    oper mkNTable0712 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "polanów";
+      SF Sg Gen => x + "Polanowa";
+      SF Sg Dat => x + "Polanowu";
+      SF Sg Acc => x + "polanów";
+      SF Sg Instr => x + "Polanowem";
+      SF Sg Loc => x + "Polanowie";
+      SF Sg Voc => x + "Polanowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0721: Str -> SubstForm => Str; --%
+    oper mkNTable0721 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "Prut";
+      SF Sg Gen => x + "Prutu";
+      SF Sg Dat => x + "Prutowi";
+      SF Sg Acc => x + "Prut";
+      SF Sg Instr => x + "Prutem";
+      SF Sg Loc => x + "prucie";
+      SF Sg Voc => x + "prucie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0728: Str -> SubstForm => Str; --%
+    oper mkNTable0728 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "u";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0733: Str -> SubstForm => Str; --%
+    oper mkNTable0733 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "raków";
+      SF Sg Gen => x + "Rakowa";
+      SF Sg Dat => x + "Rakowu";
+      SF Sg Acc => x + "raków";
+      SF Sg Instr => x + "Rakowem";
+      SF Sg Loc => x + "Rakowie";
+      SF Sg Voc => x + "Rakowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0738: Str -> SubstForm => Str; --%
+    oper mkNTable0738 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "rogów";
+      SF Sg Gen => x + "Rogowa";
+      SF Sg Dat => x + "Rogowu";
+      SF Sg Acc => x + "rogów";
+      SF Sg Instr => x + "Rogowem";
+      SF Sg Loc => x + "Rogowie";
+      SF Sg Voc => x + "Rogowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0744: Str -> SubstForm => Str; --%
+    oper mkNTable0744 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "ę";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0745: Str -> SubstForm => Str; --%
+    oper mkNTable0745 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "rożnów";
+      SF Sg Gen => x + "Rożnowa";
+      SF Sg Dat => x + "Rożnowu";
+      SF Sg Acc => x + "rożnów";
+      SF Sg Instr => x + "Rożnowem";
+      SF Sg Loc => x + "Rożnowie";
+      SF Sg Voc => x + "Rożnowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0749: Str -> SubstForm => Str; --%
+    oper mkNTable0749 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "siec";
+      SF Sg Gen => x + "śca";
+      SF Sg Dat => x + "ścowi";
+      SF Sg Acc => x + "siec";
+      SF Sg Instr => x + "ścem";
+      SF Sg Loc => x + "ścu";
+      SF Sg Voc => x + "ścu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0756: Str -> SubstForm => Str; --%
+    oper mkNTable0756 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "owi";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0758: Str -> SubstForm => Str; --%
+    oper mkNTable0758 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Sambor";
+      SF Sg Gen => x + "Sambora";
+      SF Sg Dat => x + "Samborowi";
+      SF Sg Acc => x + "Sambor";
+      SF Sg Instr => x + "Samborem";
+      SF Sg Loc => x + "samborze";
+      SF Sg Voc => x + "samborze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0767: Str -> SubstForm => Str; --%
+    oper mkNTable0767 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "Sforza";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0770: Str -> SubstForm => Str; --%
+    oper mkNTable0770 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Siemień";
+      SF Sg Gen => x + "siemienia";
+      SF Sg Dat => x + "Siemieniowi";
+      SF Sg Acc => x + "Siemień";
+      SF Sg Instr => x + "siemieniem";
+      SF Sg Loc => x + "siemieniu";
+      SF Sg Voc => x + "siemieniu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0776: Str -> SubstForm => Str; --%
+    oper mkNTable0776 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "ra";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0777: Str -> SubstForm => Str; --%
+    oper mkNTable0777 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ra";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "er";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0783: Str -> SubstForm => Str; --%
+    oper mkNTable0783 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ór";
+      SF Sg Gen => x + "oru";
+      SF Sg Dat => x + "orowi";
+      SF Sg Acc => x + "ór";
+      SF Sg Instr => x + "orem";
+      SF Sg Loc => x + "orze";
+      SF Sg Voc => x + "orze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0786: Str -> SubstForm => Str; --%
+    oper mkNTable0786 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "sokołów";
+      SF Sg Gen => x + "Sokołowa";
+      SF Sg Dat => x + "Sokołowowi";
+      SF Sg Acc => x + "sokołów";
+      SF Sg Instr => x + "Sokołowem";
+      SF Sg Loc => x + "Sokołowie";
+      SF Sg Voc => x + "Sokołowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0790: Str -> SubstForm => Str; --%
+    oper mkNTable0790 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0800: Str -> SubstForm => Str; --%
+    oper mkNTable0800 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "stryków";
+      SF Sg Gen => x + "Strykowa";
+      SF Sg Dat => x + "Strykowu";
+      SF Sg Acc => x + "stryków";
+      SF Sg Instr => x + "Strykowem";
+      SF Sg Loc => x + "strykowie";
+      SF Sg Voc => x + "strykowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0835: Str -> SubstForm => Str; --%
+    oper mkNTable0835 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "trojanów";
+      SF Sg Gen => x + "Trojanowa";
+      SF Sg Dat => x + "Trojanowu";
+      SF Sg Acc => x + "trojanów";
+      SF Sg Instr => x + "Trojanowem";
+      SF Sg Loc => x + "Trojanowie";
+      SF Sg Voc => x + "Trojanowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0839: Str -> SubstForm => Str; --%
+    oper mkNTable0839 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0843: Str -> SubstForm => Str; --%
+    oper mkNTable0843 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "er";
+      SF Sg Gen => x + "ru";
+      SF Sg Dat => x + "rowi";
+      SF Sg Acc => x + "er";
+      SF Sg Instr => x + "rem";
+      SF Sg Loc => x + "rze";
+      SF Sg Voc => x + "rze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0852: Str -> SubstForm => Str; --%
+    oper mkNTable0852 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "urzędów";
+      SF Sg Gen => x + "Urzędowa";
+      SF Sg Dat => x + "Urzędowowi";
+      SF Sg Acc => x + "urzędów";
+      SF Sg Instr => x + "Urzędowem";
+      SF Sg Loc => x + "Urzędowie";
+      SF Sg Voc => x + "Urzędowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0869: Str -> SubstForm => Str; --%
+    oper mkNTable0869 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "el";
+      SF Sg Gen => x + "la";
+      SF Sg Dat => x + "lowi";
+      SF Sg Acc => x + "la";
+      SF Sg Instr => x + "lem";
+      SF Sg Loc => x + "lu";
+      SF Sg Voc => x + "lu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0872: Str -> SubstForm => Str; --%
+    oper mkNTable0872 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0886: Str -> SubstForm => Str; --%
+    oper mkNTable0886 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wilków";
+      SF Sg Gen => x + "Wilkowa";
+      SF Sg Dat => x + "Wilkowu";
+      SF Sg Acc => x + "wilków";
+      SF Sg Instr => x + "Wilkowem";
+      SF Sg Loc => x + "Wilkowie";
+      SF Sg Voc => x + "Wilkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0890: Str -> SubstForm => Str; --%
+    oper mkNTable0890 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "wiązów";
+      SF Sg Gen => x + "Wiązowa";
+      SF Sg Dat => x + "Wiązowowi";
+      SF Sg Acc => x + "wiązów";
+      SF Sg Instr => x + "Wiązowem";
+      SF Sg Loc => x + "Wiązowie";
+      SF Sg Voc => x + "Wiązowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0893: Str -> SubstForm => Str; --%
+    oper mkNTable0893 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "wołów";
+      SF Sg Gen => x + "Wołowa";
+      SF Sg Dat => x + "Wołowowi";
+      SF Sg Acc => x + "wołów";
+      SF Sg Instr => x + "Wołowem";
+      SF Sg Loc => x + "Wołowie";
+      SF Sg Voc => x + "Wołowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0904: Str -> SubstForm => Str; --%
+    oper mkNTable0904 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "zaborów";
+      SF Sg Gen => x + "Zaborowa";
+      SF Sg Dat => x + "Zaborowu";
+      SF Sg Acc => x + "zaborów";
+      SF Sg Instr => x + "Zaborowem";
+      SF Sg Loc => x + "Zaborowie";
+      SF Sg Voc => x + "Zaborowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0910: Str -> SubstForm => Str; --%
+    oper mkNTable0910 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "zelów";
+      SF Sg Gen => x + "Zelowa";
+      SF Sg Dat => x + "Zelowowi";
+      SF Sg Acc => x + "zelów";
+      SF Sg Instr => x + "Zelowem";
+      SF Sg Loc => x + "Zelowie";
+      SF Sg Voc => x + "Zelowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0911: Str -> SubstForm => Str; --%
+    oper mkNTable0911 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "u";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0916: Str -> SubstForm => Str; --%
+    oper mkNTable0916 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "złotów";
+      SF Sg Gen => x + "Złotowa";
+      SF Sg Dat => x + "Złotowu";
+      SF Sg Acc => x + "złotów";
+      SF Sg Instr => x + "Złotowem";
+      SF Sg Loc => x + "Złotowie";
+      SF Sg Voc => x + "Złotowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0962: Str -> SubstForm => Str; --%
+    oper mkNTable0962 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1011: Str -> SubstForm => Str; --%
+    oper mkNTable1011 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1060: Str -> SubstForm => Str; --%
+    oper mkNTable1060 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1063: Str -> SubstForm => Str; --%
+    oper mkNTable1063 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1077: Str -> SubstForm => Str; --%
+    oper mkNTable1077 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1093: Str -> SubstForm => Str; --%
+    oper mkNTable1093 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1095: Str -> SubstForm => Str; --%
+    oper mkNTable1095 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1096: Str -> SubstForm => Str; --%
+    oper mkNTable1096 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "dana";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "Daną";
+      SF Sg Instr => x + "Daną";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "dana";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1110: Str -> SubstForm => Str; --%
+    oper mkNTable1110 lexem = 
+      let x = lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1132: Str -> SubstForm => Str; --%
+    oper mkNTable1132 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1151: Str -> SubstForm => Str; --%
+    oper mkNTable1151 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1160: Str -> SubstForm => Str; --%
+    oper mkNTable1160 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1164: Str -> SubstForm => Str; --%
+    oper mkNTable1164 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "ziec";
+      SF Sg Gen => x + "źca";
+      SF Sg Dat => x + "źcowi";
+      SF Sg Acc => x + "ziec";
+      SF Sg Instr => x + "źcem";
+      SF Sg Loc => x + "źcu";
+      SF Sg Voc => x + "źcu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1169: Str -> SubstForm => Str; --%
+    oper mkNTable1169 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1171: Str -> SubstForm => Str; --%
+    oper mkNTable1171 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1192: Str -> SubstForm => Str; --%
+    oper mkNTable1192 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1194: Str -> SubstForm => Str; --%
+    oper mkNTable1194 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1217: Str -> SubstForm => Str; --%
+    oper mkNTable1217 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1286: Str -> SubstForm => Str; --%
+    oper mkNTable1286 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1300: Str -> SubstForm => Str; --%
+    oper mkNTable1300 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "y";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "ą";
+      SF Sg Loc => x + "y";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1302: Str -> SubstForm => Str; --%
+    oper mkNTable1302 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1319: Str -> SubstForm => Str; --%
+    oper mkNTable1319 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1326: Str -> SubstForm => Str; --%
+    oper mkNTable1326 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "zie";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1327: Str -> SubstForm => Str; --%
+    oper mkNTable1327 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1335: Str -> SubstForm => Str; --%
+    oper mkNTable1335 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1347: Str -> SubstForm => Str; --%
+    oper mkNTable1347 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ek";
+      SF Sg Gen => x + "ku";
+      SF Sg Dat => x + "kowi";
+      SF Sg Acc => x + "ek";
+      SF Sg Instr => x + "kiem";
+      SF Sg Loc => x + "ku";
+      SF Sg Voc => x + "ku";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1354: Str -> SubstForm => Str; --%
+    oper mkNTable1354 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1365: Str -> SubstForm => Str; --%
+    oper mkNTable1365 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1379: Str -> SubstForm => Str; --%
+    oper mkNTable1379 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1408: Str -> SubstForm => Str; --%
+    oper mkNTable1408 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1413: Str -> SubstForm => Str; --%
+    oper mkNTable1413 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cie";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "cie";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "cie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1438: Str -> SubstForm => Str; --%
+    oper mkNTable1438 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1466: Str -> SubstForm => Str; --%
+    oper mkNTable1466 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1467: Str -> SubstForm => Str; --%
+    oper mkNTable1467 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "iec";
+      SF Sg Gen => x + "ca";
+      SF Sg Dat => x + "cowi";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cem";
+      SF Sg Loc => x + "cu";
+      SF Sg Voc => x + "cu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1484: Str -> SubstForm => Str; --%
+    oper mkNTable1484 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "[sg,loc]";
+      SF Sg Voc => x + "[sg,voc]";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1486: Str -> SubstForm => Str; --%
+    oper mkNTable1486 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "[sg,gen]";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "o";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1490: Str -> SubstForm => Str; --%
+    oper mkNTable1490 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "[sg,acc]";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ie";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1492: Str -> SubstForm => Str; --%
+    oper mkNTable1492 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "łuków";
+      SF Sg Gen => x + "Łukowa";
+      SF Sg Dat => x + "Łukowowi";
+      SF Sg Acc => x + "łuków";
+      SF Sg Instr => x + "Łukowem";
+      SF Sg Loc => x + "Łukowie";
+      SF Sg Voc => x + "Łukowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1493: Str -> SubstForm => Str; --%
+    oper mkNTable1493 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "łupków";
+      SF Sg Gen => x + "Łupkowa";
+      SF Sg Dat => x + "Łupkowowi";
+      SF Sg Acc => x + "łupków";
+      SF Sg Instr => x + "Łupkowem";
+      SF Sg Loc => x + "Łupkowie";
+      SF Sg Voc => x + "Łupkowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1497: Str -> SubstForm => Str; --%
+    oper mkNTable1497 lexem = 
+      let x = Predef.tk 5 lexem in
+    table { 
+      SF Sg Nom => x + "żarów";
+      SF Sg Gen => x + "Żarowa";
+      SF Sg Dat => x + "Żarowu";
+      SF Sg Acc => x + "żarów";
+      SF Sg Instr => x + "Żarowem";
+      SF Sg Loc => x + "Żarowie";
+      SF Sg Voc => x + "Żarowie";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1499: Str -> SubstForm => Str; --%
+    oper mkNTable1499 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "órz";
+      SF Sg Gen => x + "orza";
+      SF Sg Dat => x + "orzowi";
+      SF Sg Acc => x + "órz";
+      SF Sg Instr => x + "orzem";
+      SF Sg Loc => x + "orzu";
+      SF Sg Voc => x + "orzu";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable1512: Str -> SubstForm => Str; --%
+    oper mkNTable1512 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "[sg,nom]";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "[sg,dat]";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "[sg,inst]";
+      SF Sg Loc => x + "ze";
+      SF Sg Voc => x + "ze";
+      SF Pl Nom => [];
+      SF Pl Gen => [];
+      SF Pl Dat => [];
+      SF Pl Acc => [];
+      SF Pl Instr => [];
+      SF Pl Loc => [];
+      SF Pl Voc => []
+    };
+
+    oper mkNTable0046: Str -> SubstForm => Str; --%
+    oper mkNTable0046 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "y";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0054: Str -> SubstForm => Str; --%
+    oper mkNTable0054 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "y";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "y";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable0081: Str -> SubstForm => Str; --%
+    oper mkNTable0081 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0087: Str -> SubstForm => Str; --%
+    oper mkNTable0087 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ci";
+      SF Sg Gen => x + "tów";
+      SF Sg Dat => x + "tom";
+      SF Sg Acc => x + "tów";
+      SF Sg Instr => x + "tami";
+      SF Sg Loc => x + "tach";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "tów";
+      SF Pl Dat => x + "tom";
+      SF Pl Acc => x + "tów";
+      SF Pl Instr => x + "tami";
+      SF Pl Loc => x + "tach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable0107: Str -> SubstForm => Str; --%
+    oper mkNTable0107 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "";
+      SF Sg Loc => x + "";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "";
+      SF Pl Loc => x + "";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable0109: Str -> SubstForm => Str; --%
+    oper mkNTable0109 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0149: Str -> SubstForm => Str; --%
+    oper mkNTable0149 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "i";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "i";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0157: Str -> SubstForm => Str; --%
+    oper mkNTable0157 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ęta";
+      SF Sg Gen => x + "ąt";
+      SF Sg Dat => x + "ętom";
+      SF Sg Acc => x + "ęta";
+      SF Sg Instr => x + "ętami";
+      SF Sg Loc => x + "ętach";
+      SF Sg Voc => x + "ęta";
+      SF Pl Nom => x + "ęta";
+      SF Pl Gen => x + "ąt";
+      SF Pl Dat => x + "ętom";
+      SF Pl Acc => x + "ęta";
+      SF Pl Instr => x + "ętami";
+      SF Pl Loc => x + "ętach";
+      SF Pl Voc => x + "ęta"
+    };
+
+    oper mkNTable0160: Str -> SubstForm => Str; --%
+    oper mkNTable0160 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "i";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "i";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "i";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable0181: Str -> SubstForm => Str; --%
+    oper mkNTable0181 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ćki";
+      SF Sg Gen => x + "ciek";
+      SF Sg Dat => x + "ćkom";
+      SF Sg Acc => x + "ćki";
+      SF Sg Instr => x + "ćkami";
+      SF Sg Loc => x + "ćkach";
+      SF Sg Voc => x + "ćki";
+      SF Pl Nom => x + "ćki";
+      SF Pl Gen => x + "ciek";
+      SF Pl Dat => x + "ćkom";
+      SF Pl Acc => x + "ćki";
+      SF Pl Instr => x + "ćkami";
+      SF Pl Loc => x + "ćkach";
+      SF Pl Voc => x + "ćki"
+    };
+
+    oper mkNTable0214: Str -> SubstForm => Str; --%
+    oper mkNTable0214 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "owy";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "owom";
+      SF Sg Acc => x + "owy";
+      SF Sg Instr => x + "owami";
+      SF Sg Loc => x + "owach";
+      SF Sg Voc => x + "owy";
+      SF Pl Nom => x + "owy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "owom";
+      SF Pl Acc => x + "owy";
+      SF Pl Instr => x + "owami";
+      SF Pl Loc => x + "owach";
+      SF Pl Voc => x + "owy"
+    };
+
+    oper mkNTable0218: Str -> SubstForm => Str; --%
+    oper mkNTable0218 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0230: Str -> SubstForm => Str; --%
+    oper mkNTable0230 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ody";
+      SF Sg Gen => x + "ód";
+      SF Sg Dat => x + "odom";
+      SF Sg Acc => x + "ody";
+      SF Sg Instr => x + "odami";
+      SF Sg Loc => x + "odach";
+      SF Sg Voc => x + "ody";
+      SF Pl Nom => x + "ody";
+      SF Pl Gen => x + "ód";
+      SF Pl Dat => x + "odom";
+      SF Pl Acc => x + "ody";
+      SF Pl Instr => x + "odami";
+      SF Pl Loc => x + "odach";
+      SF Pl Voc => x + "ody"
+    };
+
+    oper mkNTable0257: Str -> SubstForm => Str; --%
+    oper mkNTable0257 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "owie";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "owie";
+      SF Pl Nom => x + "owie";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "owie"
+    };
+
+    oper mkNTable0275: Str -> SubstForm => Str; --%
+    oper mkNTable0275 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0354: Str -> SubstForm => Str; --%
+    oper mkNTable0354 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ie";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "ie";
+      SF Pl Nom => x + "ie";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "ie"
+    };
+
+    oper mkNTable0361: Str -> SubstForm => Str; --%
+    oper mkNTable0361 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ki";
+      SF Sg Gen => x + "ek";
+      SF Sg Dat => x + "kom";
+      SF Sg Acc => x + "ki";
+      SF Sg Instr => x + "kami";
+      SF Sg Loc => x + "kach";
+      SF Sg Voc => x + "ki";
+      SF Pl Nom => x + "ki";
+      SF Pl Gen => x + "ek";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ki";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ki"
+    };
+
+    oper mkNTable0410: Str -> SubstForm => Str; --%
+    oper mkNTable0410 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0421: Str -> SubstForm => Str; --%
+    oper mkNTable0421 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "o";
+      SF Sg Gen => x + "a";
+      SF Sg Dat => x + "u";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "em";
+      SF Sg Loc => x + "u";
+      SF Sg Voc => x + "o";
+      SF Pl Nom => x + "o";
+      SF Pl Gen => x + "a";
+      SF Pl Dat => x + "u";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "em";
+      SF Pl Loc => x + "u";
+      SF Pl Voc => x + "o"
+    };
+
+    oper mkNTable0438: Str -> SubstForm => Str; --%
+    oper mkNTable0438 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "Jeziorki";
+      SF Sg Gen => x + "jeziorek";
+      SF Sg Dat => x + "jeziorkom";
+      SF Sg Acc => x + "Jeziorki";
+      SF Sg Instr => x + "jeziorkami";
+      SF Sg Loc => x + "jeziorkach";
+      SF Sg Voc => x + "Jeziorki";
+      SF Pl Nom => x + "Jeziorki";
+      SF Pl Gen => x + "jeziorek";
+      SF Pl Dat => x + "jeziorkom";
+      SF Pl Acc => x + "Jeziorki";
+      SF Pl Instr => x + "jeziorkami";
+      SF Pl Loc => x + "jeziorkach";
+      SF Pl Voc => x + "Jeziorki"
+    };
+
+    oper mkNTable0451: Str -> SubstForm => Str; --%
+    oper mkNTable0451 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0485: Str -> SubstForm => Str; --%
+    oper mkNTable0485 lexem = 
+      let x = Predef.tk 10 lexem in
+    table { 
+      SF Sg Nom => x + "kordyliery";
+      SF Sg Gen => x + "Kordylierów";
+      SF Sg Dat => x + "kordylierom";
+      SF Sg Acc => x + "kordyliery";
+      SF Sg Instr => x + "kordylierami";
+      SF Sg Loc => x + "kordylierach";
+      SF Sg Voc => x + "kordyliery";
+      SF Pl Nom => x + "kordyliery";
+      SF Pl Gen => x + "Kordylierów";
+      SF Pl Dat => x + "kordylierom";
+      SF Pl Acc => x + "kordyliery";
+      SF Pl Instr => x + "kordylierami";
+      SF Pl Loc => x + "kordylierach";
+      SF Pl Voc => x + "kordyliery"
+    };
+
+    oper mkNTable0547: Str -> SubstForm => Str; --%
+    oper mkNTable0547 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ce";
+      SF Sg Gen => x + "iec";
+      SF Sg Dat => x + "com";
+      SF Sg Acc => x + "ce";
+      SF Sg Instr => x + "cami";
+      SF Sg Loc => x + "cach";
+      SF Sg Voc => x + "ce";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "iec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0626: Str -> SubstForm => Str; --%
+    oper mkNTable0626 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ńki";
+      SF Sg Gen => x + "niek";
+      SF Sg Dat => x + "ńkom";
+      SF Sg Acc => x + "ńki";
+      SF Sg Instr => x + "ńkami";
+      SF Sg Loc => x + "ńkach";
+      SF Sg Voc => x + "ńki";
+      SF Pl Nom => x + "ńki";
+      SF Pl Gen => x + "niek";
+      SF Pl Dat => x + "ńkom";
+      SF Pl Acc => x + "ńki";
+      SF Pl Instr => x + "ńkami";
+      SF Pl Loc => x + "ńkach";
+      SF Pl Voc => x + "ńki"
+    };
+
+    oper mkNTable0631: Str -> SubstForm => Str; --%
+    oper mkNTable0631 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "wy";
+      SF Sg Gen => x + "ew";
+      SF Sg Dat => x + "wom";
+      SF Sg Acc => x + "wy";
+      SF Sg Instr => x + "wami";
+      SF Sg Loc => x + "wach";
+      SF Sg Voc => x + "wy";
+      SF Pl Nom => x + "wy";
+      SF Pl Gen => x + "ew";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wy";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wy"
+    };
+
+    oper mkNTable0645: Str -> SubstForm => Str; --%
+    oper mkNTable0645 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "cy";
+      SF Sg Gen => x + "iec";
+      SF Sg Dat => x + "com";
+      SF Sg Acc => x + "cy";
+      SF Sg Instr => x + "cami";
+      SF Sg Loc => x + "czech";
+      SF Sg Voc => x + "cy";
+      SF Pl Nom => x + "cy";
+      SF Pl Gen => x + "iec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "cy";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "czech";
+      SF Pl Voc => x + "cy"
+    };
+
+    oper mkNTable0769: Str -> SubstForm => Str; --%
+    oper mkNTable0769 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ce";
+      SF Sg Gen => x + "ec";
+      SF Sg Dat => x + "com";
+      SF Sg Acc => x + "ce";
+      SF Sg Instr => x + "cami";
+      SF Sg Loc => x + "cach";
+      SF Sg Voc => x + "ce";
+      SF Pl Nom => x + "ce";
+      SF Pl Gen => x + "ec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ce";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ce"
+    };
+
+    oper mkNTable0795: Str -> SubstForm => Str; --%
+    oper mkNTable0795 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ny";
+      SF Sg Gen => x + "ien";
+      SF Sg Dat => x + "nom";
+      SF Sg Acc => x + "ny";
+      SF Sg Instr => x + "nami";
+      SF Sg Loc => x + "nach";
+      SF Sg Voc => x + "ny";
+      SF Pl Nom => x + "ny";
+      SF Pl Gen => x + "ien";
+      SF Pl Dat => x + "nom";
+      SF Pl Acc => x + "ny";
+      SF Pl Instr => x + "nami";
+      SF Pl Loc => x + "nach";
+      SF Pl Voc => x + "ny"
+    };
+
+    oper mkNTable0798: Str -> SubstForm => Str; --%
+    oper mkNTable0798 lexem = 
+      let x = Predef.tk 8 lexem in
+    table { 
+      SF Sg Nom => x + "stokłosy";
+      SF Sg Gen => x + "Stokłosów";
+      SF Sg Dat => x + "stokłosom";
+      SF Sg Acc => x + "stokłosy";
+      SF Sg Instr => x + "stokłosami";
+      SF Sg Loc => x + "stokłosach";
+      SF Sg Voc => x + "stokłosy";
+      SF Pl Nom => x + "stokłosy";
+      SF Pl Gen => x + "Stokłosów";
+      SF Pl Dat => x + "stokłosom";
+      SF Pl Acc => x + "stokłosy";
+      SF Pl Instr => x + "stokłosami";
+      SF Pl Loc => x + "stokłosach";
+      SF Pl Voc => x + "stokłosy"
+    };
+
+    oper mkNTable0867: Str -> SubstForm => Str; --%
+    oper mkNTable0867 lexem = 
+      let x = Predef.tk 7 lexem in
+    table { 
+      SF Sg Nom => x + "Wazowie";
+      SF Sg Gen => x + "Wazów";
+      SF Sg Dat => x + "wazom";
+      SF Sg Acc => x + "Wazów";
+      SF Sg Instr => x + "wazami";
+      SF Sg Loc => x + "wazach";
+      SF Sg Voc => x + "Wazowie";
+      SF Pl Nom => x + "Wazowie";
+      SF Pl Gen => x + "Wazów";
+      SF Pl Dat => x + "wazom";
+      SF Pl Acc => x + "Wazów";
+      SF Pl Instr => x + "wazami";
+      SF Pl Loc => x + "wazach";
+      SF Pl Voc => x + "Wazowie"
+    };
+
+    oper mkNTable0900: Str -> SubstForm => Str; --%
+    oper mkNTable0900 lexem = 
+      let x = Predef.tk 6 lexem in
+    table { 
+      SF Sg Nom => x + "włochy";
+      SF Sg Gen => x + "Włoch";
+      SF Sg Dat => x + "włochom";
+      SF Sg Acc => x + "włochy";
+      SF Sg Instr => x + "włochami";
+      SF Sg Loc => x + "włochach";
+      SF Sg Voc => x + "włochy";
+      SF Pl Nom => x + "włochy";
+      SF Pl Gen => x + "Włoch";
+      SF Pl Dat => x + "włochom";
+      SF Pl Acc => x + "włochy";
+      SF Pl Instr => x + "włochami";
+      SF Pl Loc => x + "włochach";
+      SF Pl Voc => x + "włochy"
+    };
+
+    oper mkNTable0926: Str -> SubstForm => Str; --%
+    oper mkNTable0926 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable0932: Str -> SubstForm => Str; --%
+    oper mkNTable0932 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nie";
+      SF Sg Gen => x + "ń";
+      SF Sg Dat => x + "niom";
+      SF Sg Acc => x + "nie";
+      SF Sg Instr => x + "ńmi";
+      SF Sg Loc => x + "niach";
+      SF Sg Voc => x + "nie";
+      SF Pl Nom => x + "nie";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nie";
+      SF Pl Instr => x + "ńmi";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nie"
+    };
+
+    oper mkNTable0933: Str -> SubstForm => Str; --%
+    oper mkNTable0933 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ych";
+      SF Sg Dat => x + "ym";
+      SF Sg Acc => x + "e";
+      SF Sg Instr => x + "ymi";
+      SF Sg Loc => x + "ych";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "e";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable0940: Str -> SubstForm => Str; --%
+    oper mkNTable0940 lexem = 
+      let x = Predef.tk 0 lexem in
+    table { 
+      SF Sg Nom => x + "";
+      SF Sg Gen => x + "";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "";
+      SF Pl Nom => x + "";
+      SF Pl Gen => x + "";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + ""
+    };
+
+    oper mkNTable1000: Str -> SubstForm => Str; --%
+    oper mkNTable1000 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "a";
+      SF Sg Gen => x + "y";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "a";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "a";
+      SF Pl Nom => x + "a";
+      SF Pl Gen => x + "y";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "a";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "a"
+    };
+
+    oper mkNTable1092: Str -> SubstForm => Str; --%
+    oper mkNTable1092 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ka";
+      SF Sg Gen => x + "ek";
+      SF Sg Dat => x + "kom";
+      SF Sg Acc => x + "ka";
+      SF Sg Instr => x + "kami";
+      SF Sg Loc => x + "kach";
+      SF Sg Voc => x + "ka";
+      SF Pl Nom => x + "ka";
+      SF Pl Gen => x + "ek";
+      SF Pl Dat => x + "kom";
+      SF Pl Acc => x + "ka";
+      SF Pl Instr => x + "kami";
+      SF Pl Loc => x + "kach";
+      SF Pl Voc => x + "ka"
+    };
+
+    oper mkNTable1104: Str -> SubstForm => Str; --%
+    oper mkNTable1104 lexem = 
+      let x = Predef.tk 4 lexem in
+    table { 
+      SF Sg Nom => x + "obra";
+      SF Sg Gen => x + "óbr";
+      SF Sg Dat => x + "obrom";
+      SF Sg Acc => x + "obra";
+      SF Sg Instr => x + "obrami";
+      SF Sg Loc => x + "obrach";
+      SF Sg Voc => x + "obra";
+      SF Pl Nom => x + "obra";
+      SF Pl Gen => x + "óbr";
+      SF Pl Dat => x + "obrom";
+      SF Pl Acc => x + "obra";
+      SF Pl Instr => x + "obrami";
+      SF Pl Loc => x + "obrach";
+      SF Pl Voc => x + "obra"
+    };
+
+    oper mkNTable1111: Str -> SubstForm => Str; --%
+    oper mkNTable1111 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "nia";
+      SF Sg Gen => x + "ń";
+      SF Sg Dat => x + "niom";
+      SF Sg Acc => x + "nia";
+      SF Sg Instr => x + "niami";
+      SF Sg Loc => x + "niach";
+      SF Sg Voc => x + "nia";
+      SF Pl Nom => x + "nia";
+      SF Pl Gen => x + "ń";
+      SF Pl Dat => x + "niom";
+      SF Pl Acc => x + "nia";
+      SF Pl Instr => x + "niami";
+      SF Pl Loc => x + "niach";
+      SF Pl Voc => x + "nia"
+    };
+
+    oper mkNTable1113: Str -> SubstForm => Str; --%
+    oper mkNTable1113 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ogi";
+      SF Sg Gen => x + "óg";
+      SF Sg Dat => x + "ogom";
+      SF Sg Acc => x + "ogi";
+      SF Sg Instr => x + "ogami";
+      SF Sg Loc => x + "ogach";
+      SF Sg Voc => x + "ogi";
+      SF Pl Nom => x + "ogi";
+      SF Pl Gen => x + "óg";
+      SF Pl Dat => x + "ogom";
+      SF Pl Acc => x + "ogi";
+      SF Pl Instr => x + "ogami";
+      SF Pl Loc => x + "ogach";
+      SF Pl Voc => x + "ogi"
+    };
+
+    oper mkNTable1116: Str -> SubstForm => Str; --%
+    oper mkNTable1116 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "wa";
+      SF Sg Gen => x + "ew";
+      SF Sg Dat => x + "wom";
+      SF Sg Acc => x + "wa";
+      SF Sg Instr => x + "wami";
+      SF Sg Loc => x + "wach";
+      SF Sg Voc => x + "wa";
+      SF Pl Nom => x + "wa";
+      SF Pl Gen => x + "ew";
+      SF Pl Dat => x + "wom";
+      SF Pl Acc => x + "wa";
+      SF Pl Instr => x + "wami";
+      SF Pl Loc => x + "wach";
+      SF Pl Voc => x + "wa"
+    };
+
+    oper mkNTable1172: Str -> SubstForm => Str; --%
+    oper mkNTable1172 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "eł";
+      SF Sg Dat => x + "łom";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łami";
+      SF Sg Loc => x + "łach";
+      SF Sg Voc => x + "ła";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "eł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable1190: Str -> SubstForm => Str; --%
+    oper mkNTable1190 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "e";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "e";
+      SF Pl Nom => x + "e";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "e"
+    };
+
+    oper mkNTable1195: Str -> SubstForm => Str; --%
+    oper mkNTable1195 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ca";
+      SF Sg Gen => x + "ec";
+      SF Sg Dat => x + "com";
+      SF Sg Acc => x + "ca";
+      SF Sg Instr => x + "cami";
+      SF Sg Loc => x + "cach";
+      SF Sg Voc => x + "ca";
+      SF Pl Nom => x + "ca";
+      SF Pl Gen => x + "ec";
+      SF Pl Dat => x + "com";
+      SF Pl Acc => x + "ca";
+      SF Pl Instr => x + "cami";
+      SF Pl Loc => x + "cach";
+      SF Pl Voc => x + "ca"
+    };
+
+    oper mkNTable1231: Str -> SubstForm => Str; --%
+    oper mkNTable1231 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "je";
+      SF Sg Gen => x + "i";
+      SF Sg Dat => x + "jom";
+      SF Sg Acc => x + "je";
+      SF Sg Instr => x + "jami";
+      SF Sg Loc => x + "jach";
+      SF Sg Voc => x + "je";
+      SF Pl Nom => x + "je";
+      SF Pl Gen => x + "i";
+      SF Pl Dat => x + "jom";
+      SF Pl Acc => x + "je";
+      SF Pl Instr => x + "jami";
+      SF Pl Loc => x + "jach";
+      SF Pl Voc => x + "je"
+    };
+
+    oper mkNTable1243: Str -> SubstForm => Str; --%
+    oper mkNTable1243 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oła";
+      SF Sg Gen => x + "ół";
+      SF Sg Dat => x + "ołom";
+      SF Sg Acc => x + "oła";
+      SF Sg Instr => x + "ołami";
+      SF Sg Loc => x + "ołach";
+      SF Sg Voc => x + "oła";
+      SF Pl Nom => x + "oła";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oła";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oła"
+    };
+
+    oper mkNTable1247: Str -> SubstForm => Str; --%
+    oper mkNTable1247 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ci";
+      SF Sg Gen => x + "ci";
+      SF Sg Dat => x + "ciom";
+      SF Sg Acc => x + "ci";
+      SF Sg Instr => x + "ćmi";
+      SF Sg Loc => x + "ciach";
+      SF Sg Voc => x + "ci";
+      SF Pl Nom => x + "ci";
+      SF Pl Gen => x + "ci";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "ci";
+      SF Pl Instr => x + "ćmi";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "ci"
+    };
+
+    oper mkNTable1265: Str -> SubstForm => Str; --%
+    oper mkNTable1265 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "i";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "i";
+      SF Pl Nom => x + "i";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "i"
+    };
+
+    oper mkNTable1277: Str -> SubstForm => Str; --%
+    oper mkNTable1277 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "zy";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "zy";
+      SF Pl Nom => x + "zy";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "zy"
+    };
+
+    oper mkNTable1282: Str -> SubstForm => Str; --%
+    oper mkNTable1282 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "zie";
+      SF Sg Gen => x + "zi";
+      SF Sg Dat => x + "ziom";
+      SF Sg Acc => x + "zi";
+      SF Sg Instr => x + "źmi";
+      SF Sg Loc => x + "ziach";
+      SF Sg Voc => x + "zie";
+      SF Pl Nom => x + "zie";
+      SF Pl Gen => x + "zi";
+      SF Pl Dat => x + "ziom";
+      SF Pl Acc => x + "zi";
+      SF Pl Instr => x + "źmi";
+      SF Pl Loc => x + "ziach";
+      SF Pl Voc => x + "zie"
+    };
+
+    oper mkNTable1307: Str -> SubstForm => Str; --%
+    oper mkNTable1307 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "zi";
+      SF Sg Gen => x + "ych";
+      SF Sg Dat => x + "ym";
+      SF Sg Acc => x + "ych";
+      SF Sg Instr => x + "ymi";
+      SF Sg Loc => x + "ych";
+      SF Sg Voc => x + "zi";
+      SF Pl Nom => x + "zi";
+      SF Pl Gen => x + "ych";
+      SF Pl Dat => x + "ym";
+      SF Pl Acc => x + "ych";
+      SF Pl Instr => x + "ymi";
+      SF Pl Loc => x + "ych";
+      SF Pl Voc => x + "zi"
+    };
+
+    oper mkNTable1309: Str -> SubstForm => Str; --%
+    oper mkNTable1309 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ęki";
+      SF Sg Gen => x + "ąk";
+      SF Sg Dat => x + "ękom";
+      SF Sg Acc => x + "ęki";
+      SF Sg Instr => x + "ękami";
+      SF Sg Loc => x + "ękach";
+      SF Sg Voc => x + "ęki";
+      SF Pl Nom => x + "ęki";
+      SF Pl Gen => x + "ąk";
+      SF Pl Dat => x + "ękom";
+      SF Pl Acc => x + "ęki";
+      SF Pl Instr => x + "ękami";
+      SF Pl Loc => x + "ękach";
+      SF Pl Voc => x + "ęki"
+    };
+
+    oper mkNTable1320: Str -> SubstForm => Str; --%
+    oper mkNTable1320 lexem = 
+      let x = Predef.tk 1 lexem in
+    table { 
+      SF Sg Nom => x + "y";
+      SF Sg Gen => x + "ów";
+      SF Sg Dat => x + "om";
+      SF Sg Acc => x + "ów";
+      SF Sg Instr => x + "ami";
+      SF Sg Loc => x + "ach";
+      SF Sg Voc => x + "y";
+      SF Pl Nom => x + "y";
+      SF Pl Gen => x + "ów";
+      SF Pl Dat => x + "om";
+      SF Pl Acc => x + "ów";
+      SF Pl Instr => x + "ami";
+      SF Pl Loc => x + "ach";
+      SF Pl Voc => x + "y"
+    };
+
+    oper mkNTable1325: Str -> SubstForm => Str; --%
+    oper mkNTable1325 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "cia";
+      SF Sg Gen => x + "ć";
+      SF Sg Dat => x + "ciom";
+      SF Sg Acc => x + "cia";
+      SF Sg Instr => x + "ciami";
+      SF Sg Loc => x + "ciach";
+      SF Sg Voc => x + "cia";
+      SF Pl Nom => x + "cia";
+      SF Pl Gen => x + "ć";
+      SF Pl Dat => x + "ciom";
+      SF Pl Acc => x + "cia";
+      SF Pl Instr => x + "ciami";
+      SF Pl Loc => x + "ciach";
+      SF Pl Voc => x + "cia"
+    };
+
+    oper mkNTable1368: Str -> SubstForm => Str; --%
+    oper mkNTable1368 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oły";
+      SF Sg Gen => x + "ół";
+      SF Sg Dat => x + "ołom";
+      SF Sg Acc => x + "oły";
+      SF Sg Instr => x + "ołami";
+      SF Sg Loc => x + "ołach";
+      SF Sg Voc => x + "oły";
+      SF Pl Nom => x + "oły";
+      SF Pl Gen => x + "ół";
+      SF Pl Dat => x + "ołom";
+      SF Pl Acc => x + "oły";
+      SF Pl Instr => x + "ołami";
+      SF Pl Loc => x + "ołach";
+      SF Pl Voc => x + "oły"
+    };
+
+    oper mkNTable1406: Str -> SubstForm => Str; --%
+    oper mkNTable1406 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "oty";
+      SF Sg Gen => x + "ót";
+      SF Sg Dat => x + "otom";
+      SF Sg Acc => x + "oty";
+      SF Sg Instr => x + "otami";
+      SF Sg Loc => x + "otach";
+      SF Sg Voc => x + "oty";
+      SF Pl Nom => x + "oty";
+      SF Pl Gen => x + "ót";
+      SF Pl Dat => x + "otom";
+      SF Pl Acc => x + "oty";
+      SF Pl Instr => x + "otami";
+      SF Pl Loc => x + "otach";
+      SF Pl Voc => x + "oty"
+    };
+
+    oper mkNTable1407: Str -> SubstForm => Str; --%
+    oper mkNTable1407 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "eni";
+      SF Sg Gen => x + "ionych";
+      SF Sg Dat => x + "ionym";
+      SF Sg Acc => x + "ionych";
+      SF Sg Instr => x + "ionymi";
+      SF Sg Loc => x + "ionych";
+      SF Sg Voc => x + "eni";
+      SF Pl Nom => x + "eni";
+      SF Pl Gen => x + "ionych";
+      SF Pl Dat => x + "ionym";
+      SF Pl Acc => x + "ionych";
+      SF Pl Instr => x + "ionymi";
+      SF Pl Loc => x + "ionych";
+      SF Pl Voc => x + "eni"
+    };
+
+    oper mkNTable1433: Str -> SubstForm => Str; --%
+    oper mkNTable1433 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ła";
+      SF Sg Gen => x + "ieł";
+      SF Sg Dat => x + "łom";
+      SF Sg Acc => x + "ła";
+      SF Sg Instr => x + "łami";
+      SF Sg Loc => x + "łach";
+      SF Sg Voc => x + "ła";
+      SF Pl Nom => x + "ła";
+      SF Pl Gen => x + "ieł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ła";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ła"
+    };
+
+    oper mkNTable1468: Str -> SubstForm => Str; --%
+    oper mkNTable1468 lexem = 
+      let x = Predef.tk 2 lexem in
+    table { 
+      SF Sg Nom => x + "ły";
+      SF Sg Gen => x + "eł";
+      SF Sg Dat => x + "łom";
+      SF Sg Acc => x + "ły";
+      SF Sg Instr => x + "łami";
+      SF Sg Loc => x + "łach";
+      SF Sg Voc => x + "ły";
+      SF Pl Nom => x + "ły";
+      SF Pl Gen => x + "eł";
+      SF Pl Dat => x + "łom";
+      SF Pl Acc => x + "ły";
+      SF Pl Instr => x + "łami";
+      SF Pl Loc => x + "łach";
+      SF Pl Voc => x + "ły"
+    };
+
+    oper mkNTable1472: Str -> SubstForm => Str; --%
+    oper mkNTable1472 lexem = 
+      let x = Predef.tk 3 lexem in
+    table { 
+      SF Sg Nom => x + "ota";
+      SF Sg Gen => x + "ót";
+      SF Sg Dat => x + "otom";
+      SF Sg Acc => x + "ota";
+      SF Sg Instr => x + "otami";
+      SF Sg Loc => x + "otach";
+      SF Sg Voc => x + "ota";
+      SF Pl Nom => x + "ota";
+      SF Pl Gen => x + "ót";
+      SF Pl Dat => x + "otom";
+      SF Pl Acc => x + "ota";
+      SF Pl Instr => x + "otami";
+      SF Pl Loc => x + "otach";
+      SF Pl Voc => x + "ota"
+    };
 
 }
diff --git a/lib/src/polish/NounPol.gf b/lib/src/polish/NounPol.gf
--- a/lib/src/polish/NounPol.gf
+++ b/lib/src/polish/NounPol.gf
@@ -1,6 +1,6 @@
 --# -path=.:../abstract:../common:../prelude
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
 concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol in {
 
@@ -90,17 +90,17 @@
     NumPl = { s = \\_,_ => ""; a = NoA; n = Pl; hasCard = False };
     
     DetQuant q num = {
-      s = \\c,g => q.s ! AF (cast_gennum!<g,num.n>) c ++ num.s !c !g;
+      s = \\c,g => q.s ! AF (cast_gennum!<g,num.n>) (accom_case!<num.a,c,g>) ++ num.s !c !g;
       sp = \\c,g => case num.hasCard of { 
-        True  => q.s  ! AF (cast_gennum!<g,num.n>) c ++ num.s !c !g;
-        False => q.sp ! AF (cast_gennum!<g,num.n>) c ++ num.s !c !g
+        True  => q.s  ! AF (cast_gennum!<g,num.n>) (accom_case!<num.a,c,g>) ++ num.s !c !g;
+        False => q.sp ! AF (cast_gennum!<g,num.n>) (accom_case!<num.a,c,g>) ++ num.s !c !g
       };
       n = num.n;
       a = num.a
     };
     
     DetQuantOrd q num ord = {
-      s,sp = \\c,g => q.s ! AF (cast_gennum!<g,num.n>) c  
+      s,sp = \\c,g => q.s ! AF (cast_gennum!<g,num.n>) (accom_case!<num.a,c,g>)  
         ++ num.s !c !g
         ++ ord.s ! AF (cast_gennum!<g,num.n>) (accom_case! <num.a,c,g>);
       n = num.n;
@@ -156,9 +156,9 @@
     
 --     PPartNP : NP -> V2  -> NP ;    -- the man seen
     PPartNP np v2 = {
-      nom = np.nom ++ v2.ppart ! AF np.gn Nom;
-      voc = np.voc ++ v2.ppart ! AF np.gn VocP;
-      dep = \\cc => np.dep !cc ++ v2.ppart ! AF np.gn (extract_case!cc) ;
+      nom = np.nom ++ (mkAtable (table2record v2.ppartp)) ! AF np.gn Nom;
+      voc = np.voc ++ (mkAtable (table2record v2.ppartp)) ! AF np.gn VocP;
+      dep = \\cc => np.dep !cc ++ (mkAtable (table2record v2.ppartp)) ! AF np.gn (extract_case!cc) ;
       gn = np.gn;
       p = np.p
     };
diff --git a/lib/src/polish/NumeralPol.gf b/lib/src/polish/NumeralPol.gf
--- a/lib/src/polish/NumeralPol.gf
+++ b/lib/src/polish/NumeralPol.gf
@@ -1,6 +1,6 @@
 --# -path=.:../abstract:../common:../prelude
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
 concrete NumeralPol of Numeral = CatPol ** open ResPol,Prelude, AdjectiveMorphoPol in {
 
@@ -24,10 +24,10 @@
  
 --   n2, n3, n4, n5, n6, n7, n8, n9 : Digit ;
     n2 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "dwoje";
-        <Gen,NeutGr                 > => "dwojga";
-        <(Dat|Loc),NeutGr           > => "dwojgu";
-        <Instr,NeutGr               > => "dwojgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "dwoje";
+        <Gen,NeutGr|Plur                 > => "dwojga";
+        <(Dat|Loc),NeutGr|Plur           > => "dwojgu";
+        <Instr,NeutGr|Plur               > => "dwojgiem";
         <(Nom|VocP),Masc Personal   > => "dwóch";
         <(Nom|VocP|Acc),Fem         > => "dwie";
         (<Gen,_>|<Acc,Masc Personal>) => "dwóch";
@@ -38,19 +38,19 @@
         <Loc,_                      > => "dwóch"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "dwanaścioro";
-        <Gen,NeutGr                 > => "dwanaściorga";
-        <(Dat|Loc),NeutGr           > => "dwanaściorgu";
-        <Instr,NeutGr               > => "dwanaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "dwanaścioro";
+        <Gen,NeutGr|Plur                 > => "dwanaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "dwanaściorgu";
+        <Instr,NeutGr|Plur               > => "dwanaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "dwunastu";
         <(Nom|VocP|Acc),_           > => "dwanaście"
       };
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "dwadzieścioro";
-        <Gen,NeutGr               > => "dwadzieściorga";
-        <(Dat|Loc),NeutGr         > => "dwadzieściorgu";
-        <Instr,NeutGr             > => "dwadzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "dwadzieścioro";
+        <Gen,NeutGr|Plur               > => "dwadzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "dwadzieściorgu";
+        <Instr,NeutGr|Plur             > => "dwadzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "dwudziestu";
         <(Nom|VocP|Acc),_         > => "dwadzieścia"
@@ -67,10 +67,10 @@
       a=DwaA
     };
     n3 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "troje";
-        <Gen,NeutGr                 > => "trojga";
-        <Dat,NeutGr                 > => "trojgu";
-        <Instr,NeutGr               > => "trojgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "troje";
+        <Gen,NeutGr|Plur                 > => "trojga";
+        <Dat,NeutGr|Plur                 > => "trojgu";
+        <Instr,NeutGr|Plur               > => "trojgiem";
         <(Nom|VocP),Masc Personal   > => "trzech";
         <(Nom|VocP|Acc),Fem         > => "trzy";
         (<Gen,_>|<Acc,Masc Personal>) => "trzech";
@@ -81,19 +81,19 @@
         <Loc,_                      > => "trzech"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "trzynaścioro";
-        <Gen,NeutGr                 > => "trzynaściorga";
-        <(Dat|Loc),NeutGr           > => "trzynaściorgu";
-        <Instr,NeutGr               > => "trzynaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "trzynaścioro";
+        <Gen,NeutGr|Plur                 > => "trzynaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "trzynaściorgu";
+        <Instr,NeutGr|Plur               > => "trzynaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "trzynastu";
         <(Nom|VocP|Acc),_           > => "trzynaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "trzydzieścioro";
-        <Gen,NeutGr               > => "trzydzieściorga";
-        <(Dat|Loc),NeutGr         > => "trzydzieściorgu";
-        <Instr,NeutGr             > => "trzydzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "trzydzieścioro";
+        <Gen,NeutGr|Plur               > => "trzydzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "trzydzieściorgu";
+        <Instr,NeutGr|Plur             > => "trzydzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "trzydziestu";
         <(Nom|VocP|Acc),_         > => "trzydzieści"
@@ -110,10 +110,10 @@
       a=DwaA
     };
     n4 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "czworo";
-        <Gen,NeutGr                 > => "czworga";
-        <Dat,NeutGr                 > => "czworgu";
-        <Instr,NeutGr               > => "czworgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "czworo";
+        <Gen,NeutGr|Plur                 > => "czworga";
+        <Dat,NeutGr|Plur                 > => "czworgu";
+        <Instr,NeutGr|Plur               > => "czworgiem";
         <(Nom|VocP),Masc Personal   > => "czterech";
         <(Nom|VocP|Acc),Fem         > => "cztery";
         (<Gen,_>|<Acc,Masc Personal>) => "czterch";
@@ -124,19 +124,19 @@
         <Loc,_                      > => "czterech"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "czternaścioro";
-        <Gen,NeutGr                 > => "czternaściorga";
-        <(Dat|Loc),NeutGr           > => "czternaściorgu";
-        <Instr,NeutGr               > => "czternaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "czternaścioro";
+        <Gen,NeutGr|Plur                 > => "czternaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "czternaściorgu";
+        <Instr,NeutGr|Plur               > => "czternaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "czternastu";
         <(Nom|VocP|Acc),_           > => "czternaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "czterdzieścioro";
-        <Gen,NeutGr               > => "czterdzieściorga";
-        <(Dat|Loc),NeutGr         > => "czterdzieściorgu";
-        <Instr,NeutGr             > => "czterdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "czterdzieścioro";
+        <Gen,NeutGr|Plur               > => "czterdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "czterdzieściorgu";
+        <Instr,NeutGr|Plur             > => "czterdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "czterdziestu";
         <(Nom|VocP|Acc),_         > => "czterdzieści"
@@ -153,10 +153,10 @@
       a=DwaA
     };
     n5 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "pięcioro";
-        <Gen,NeutGr                 > => "pięciorga";
-        <Dat,NeutGr                 > => "pięciorgu";
-        <Instr,NeutGr               > => "pięciorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "pięcioro";
+        <Gen,NeutGr|Plur                 > => "pięciorga";
+        <Dat,NeutGr|Plur                 > => "pięciorgu";
+        <Instr,NeutGr|Plur               > => "pięciorgiem";
         <(Nom|VocP),Masc Personal   > => "pięciu";
         (<Gen,_>|<Acc,Masc Personal>) => "pięciu";
         <(Nom|VocP|Acc),_           > => "pięć";
@@ -165,19 +165,19 @@
         <Loc,_                      > => "pięciu"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "piętnaścioro";
-        <Gen,NeutGr                 > => "piętnaściorga";
-        <(Dat|Loc),NeutGr           > => "piętnaściorgu";
-        <Instr,NeutGr               > => "piętnaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "piętnaścioro";
+        <Gen,NeutGr|Plur                 > => "piętnaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "piętnaściorgu";
+        <Instr,NeutGr|Plur               > => "piętnaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "piętnastu";
         <(Nom|VocP|Acc),_           > => "piętnaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "pięćdzieścioro";
-        <Gen,NeutGr               > => "pięćdzieściorga";
-        <(Dat|Loc),NeutGr         > => "pięćdzieściorgu";
-        <Instr,NeutGr             > => "pięćdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "pięćdzieścioro";
+        <Gen,NeutGr|Plur               > => "pięćdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "pięćdzieściorgu";
+        <Instr,NeutGr|Plur             > => "pięćdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "pięćdziesięciu";
         <(Nom|VocP|Acc),_         > => "pięćdziesiąt"
@@ -195,10 +195,10 @@
       a=PiecA
     };
 n6 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "sześcioro";
-        <Gen,NeutGr                 > => "sześciorga";
-        <Dat,NeutGr                 > => "sześciorgu";
-        <Instr,NeutGr               > => "sześciorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "sześcioro";
+        <Gen,NeutGr|Plur                 > => "sześciorga";
+        <Dat,NeutGr|Plur                 > => "sześciorgu";
+        <Instr,NeutGr|Plur               > => "sześciorgiem";
         <(Nom|VocP),Masc Personal   > => "sześciu";
         (<Gen,_>|<Acc,Masc Personal>) => "sześciu";
         <(Nom|VocP|Acc),_           > => "sześć";
@@ -207,19 +207,19 @@
         <Loc,_                      > => "sześciu"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "szesnaścioro";
-        <Gen,NeutGr                 > => "szesnaściorga";
-        <(Dat|Loc),NeutGr           > => "szesnaściorgu";
-        <Instr,NeutGr               > => "szesnaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "szesnaścioro";
+        <Gen,NeutGr|Plur                 > => "szesnaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "szesnaściorgu";
+        <Instr,NeutGr|Plur               > => "szesnaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "szesnastu";
         <(Nom|VocP|Acc),_           > => "szesnaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "sześćdzieścioro";
-        <Gen,NeutGr               > => "sześćdzieściorga";
-        <(Dat|Loc),NeutGr         > => "sześćdzieściorgu";
-        <Instr,NeutGr             > => "sześćdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "sześćdzieścioro";
+        <Gen,NeutGr|Plur               > => "sześćdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "sześćdzieściorgu";
+        <Instr,NeutGr|Plur             > => "sześćdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "sześćdziesięciu";
         <(Nom|VocP|Acc),_         > => "sześćdziesiąt"
@@ -237,10 +237,10 @@
       a=PiecA
     };
 n7 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "siedmioro";
-        <Gen,NeutGr                 > => "siedmiorga";
-        <Dat,NeutGr                 > => "siedmiorgu";
-        <Instr,NeutGr               > => "siedmiorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "siedmioro";
+        <Gen,NeutGr|Plur                 > => "siedmiorga";
+        <Dat,NeutGr|Plur                 > => "siedmiorgu";
+        <Instr,NeutGr|Plur               > => "siedmiorgiem";
         <(Nom|VocP),Masc Personal   > => "siedmiu";
         (<Gen,_>|<Acc,Masc Personal>) => "siedmiu";
         <(Nom|VocP|Acc),_           > => "siedem";
@@ -249,19 +249,19 @@
         <Loc,_                      > => "siedmiu"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "siedemnaścioro";
-        <Gen,NeutGr                 > => "siedemnaściorga";
-        <(Dat|Loc),NeutGr           > => "siedemnaściorgu";
-        <Instr,NeutGr               > => "siedemnaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "siedemnaścioro";
+        <Gen,NeutGr|Plur                 > => "siedemnaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "siedemnaściorgu";
+        <Instr,NeutGr|Plur               > => "siedemnaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "siedemnastu";
         <(Nom|VocP|Acc),_           > => "siedemnaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "siedemdzieścioro";
-        <Gen,NeutGr               > => "siedemdzieściorga";
-        <(Dat|Loc),NeutGr         > => "siedemdzieściorgu";
-        <Instr,NeutGr             > => "siedemdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "siedemdzieścioro";
+        <Gen,NeutGr|Plur               > => "siedemdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "siedemdzieściorgu";
+        <Instr,NeutGr|Plur             > => "siedemdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "siedemdziesięciu";
         <(Nom|VocP|Acc),_         > => "siedemdziesiąt"
@@ -279,10 +279,10 @@
       a=PiecA
     };
 n8 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "ośmioro";
-        <Gen,NeutGr                 > => "ośmiorga";
-        <Dat,NeutGr                 > => "ośmiorgu";
-        <Instr,NeutGr               > => "ośmiorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "ośmioro";
+        <Gen,NeutGr|Plur                 > => "ośmiorga";
+        <Dat,NeutGr|Plur                 > => "ośmiorgu";
+        <Instr,NeutGr|Plur               > => "ośmiorgiem";
         <(Nom|VocP),Masc Personal   > => "ośmiu";
         (<Gen,_>|<Acc,Masc Personal>) => "ośmiu";
         <(Nom|VocP|Acc),_           > => "osiemm";
@@ -291,19 +291,19 @@
         <Loc,_                      > => "ośmiu"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "osiemnaścioro";
-        <Gen,NeutGr                 > => "osiemnaściorga";
-        <(Dat|Loc),NeutGr           > => "osiemnaściorgu";
-        <Instr,NeutGr               > => "osiemnaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "osiemnaścioro";
+        <Gen,NeutGr|Plur                 > => "osiemnaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "osiemnaściorgu";
+        <Instr,NeutGr|Plur               > => "osiemnaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "osiemnastu";
         <(Nom|VocP|Acc),_           > => "osiemnaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "osiemdzieścioro";
-        <Gen,NeutGr               > => "osiemdzieściorga";
-        <(Dat|Loc),NeutGr         > => "osiemdzieściorgu";
-        <Instr,NeutGr             > => "osiemdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "osiemdzieścioro";
+        <Gen,NeutGr|Plur               > => "osiemdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "osiemdzieściorgu";
+        <Instr,NeutGr|Plur             > => "osiemdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "osiemdziesięciu";
         <(Nom|VocP|Acc),_         > => "osiemdziesiąt"
@@ -320,10 +320,10 @@
       a=PiecA
     };
 n9 = { unit = table {
-        <(Nom|VocP|Acc),NeutGr      > => "dziewięcioro";
-        <Gen,NeutGr                 > => "dziewięciorga";
-        <Dat,NeutGr                 > => "dziewięciorgu";
-        <Instr,NeutGr               > => "dziewięciorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "dziewięcioro";
+        <Gen,NeutGr|Plur                 > => "dziewięciorga";
+        <Dat,NeutGr|Plur                 > => "dziewięciorgu";
+        <Instr,NeutGr|Plur               > => "dziewięciorgiem";
         <(Nom|VocP),Masc Personal   > => "dziewięciu";
         (<Gen,_>|<Acc,Masc Personal>) => "dziewięciu";
         <(Nom|VocP|Acc),_           > => "dziewięć";
@@ -332,19 +332,19 @@
         <Loc,_                      > => "dziewięciu"
       };
       teen = table {
-        <(Nom|VocP|Acc),NeutGr      > => "dziewiętnaścioro";
-        <Gen,NeutGr                 > => "dziewiętnaściorga";
-        <(Dat|Loc),NeutGr           > => "dziewiętnaściorgu";
-        <Instr,NeutGr               > => "dziewiętnaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "dziewiętnaścioro";
+        <Gen,NeutGr|Plur                 > => "dziewiętnaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "dziewiętnaściorgu";
+        <Instr,NeutGr|Plur               > => "dziewiętnaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "dziewiętnastu";
         <(Nom|VocP|Acc),_           > => "dziewiętnaście"
       }; 
       ten = table {
-        <(Nom|VocP|Acc),NeutGr    > => "dziewięćdzieścioro";
-        <Gen,NeutGr               > => "dziewięćdzieściorga";
-        <(Dat|Loc),NeutGr         > => "dziewięćdzieściorgu";
-        <Instr,NeutGr             > => "dziewięćdzieściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "dziewięćdzieścioro";
+        <Gen,NeutGr|Plur               > => "dziewięćdzieściorga";
+        <(Dat|Loc),NeutGr|Plur         > => "dziewięćdzieściorgu";
+        <Instr,NeutGr|Plur             > => "dziewięćdzieściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "dziewięćdziesięciu";
         <(Nom|VocP|Acc),_         > => "dziewięćdziesiąt"
@@ -365,6 +365,10 @@
     unit = table {
         (<(Nom|VocP),Masc _>|<Acc,Masc Inanimate>) => "jeden";
         <(Nom|Acc|VocP),Neut|NeutGr> => "jedno";
+        <(Nom|Acc|VocP),Plur> => "jedne";
+        <(Gen|Loc),Plur> => "jednych";
+        <Dat,Plur> => "jednym";
+        <Instr,Plur> => "jednymi";
         <(Nom|VocP),Fem> => "jedna";
         <(Gen|Dat|Loc),Fem> => "jednej";
         <(Acc|Instr),Fem> => "jedną";
@@ -394,10 +398,10 @@
 --   pot110 : Sub100 ;                             -- 10
     pot110 = {
       s =table {
-        <(Nom|VocP|Acc),NeutGr    > => "dziesięcioro";
-        <Gen,NeutGr               > => "dziesięciorga";
-        <(Dat|Loc),NeutGr         > => "dziesięciorgu";
-        <Instr,NeutGr             > => "dziesięciorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur    > => "dziesięcioro";
+        <Gen,NeutGr|Plur               > => "dziesięciorga";
+        <(Dat|Loc),NeutGr|Plur         > => "dziesięciorgu";
+        <Instr,NeutGr|Plur             > => "dziesięciorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)     => "dziesięciu";
         <(Nom|VocP|Acc),_         > => "dziesięć"
@@ -410,10 +414,10 @@
 --   pot111 : Sub100 ;                             -- 11
     pot111 = {
       s = table {
-        <(Nom|VocP|Acc),NeutGr      > => "jedenaścioro";
-        <Gen,NeutGr                 > => "jedenaściorga";
-        <(Dat|Loc),NeutGr           > => "jedenaściorgu";
-        <Instr,NeutGr               > => "jedenaściorgiem";
+        <(Nom|VocP|Acc),NeutGr|Plur      > => "jedenaścioro";
+        <Gen,NeutGr|Plur                 > => "jedenaściorga";
+        <(Dat|Loc),NeutGr|Plur           > => "jedenaściorgu";
+        <Instr,NeutGr|Plur               > => "jedenaściorgiem";
         (<(Nom|VocP|Acc),Masc Personal>|
          <Gen|Dat|Instr|Loc,_>)       => "jedenastu";
         <(Nom|VocP|Acc),_           > => "jedenaście"
@@ -485,7 +489,7 @@
         s = s.s;
         o = s.o;
         a = s.a; 
-        n = Pl
+        n = s.n -- was Pl - why? very strange ASL
     };
 
 --   pot3 : Sub1000 -> Sub1000000 ;                -- m * 1000
diff --git a/lib/src/polish/OrigMorphoPol.gf b/lib/src/polish/OrigMorphoPol.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/polish/OrigMorphoPol.gf
@@ -0,0 +1,278 @@
+--# -path=.:../prelude:../common:../abstract
+--# -coding=utf8
+
+--1 A polish Resource Morphology 
+--
+-- Ilona Nowak, Wintersemester 2007/08
+--
+-- Adam Slaski, 2009 <adam.slaski@gmail.com>
+--
+-- This resource morphology contains definitions 
+-- of the lexical entries needed in the resource syntax. 
+-- It moreover contains copies of the most usual inflectional patterns.
+
+-- I use the parameter types and word classes defined for morphology.
+
+resource OrigMorphoPol = 
+    ResPol, 
+    VerbMorphoPol, 
+    PronounMorphoPol,
+    AdjectiveMorphoPol,
+    OrigNounMorphoPol ** open Prelude, (Predef=Predef) in {
+
+     flags  coding=utf8; 
+
+-- definitions for structural objects
+
+  oper
+    wszyscy : NounPhrase = {
+      nom = "wszyscy" ;
+      voc = "wszyscy" ;
+      dep = table {
+        (GenNoPrep|GenPrep) => "wszystkich";
+        (DatNoPrep|DatPrep) => "wszystkim";
+        (AccNoPrep|AccPrep) => "wszystkich";
+        InstrC => "wszystkimi";
+        LocPrep => "wszystkich"
+      };
+      p = P3 ;
+      gn = MascPersPl -- in fact it is plurale tantum ver. 3
+    };
+    
+    wszystko : NounPhrase = {
+      nom = "wszystko" ;
+      voc = "wszystko" ;
+      dep = table {
+        (GenNoPrep|GenPrep) => "wszystkiego";
+        (DatNoPrep|DatPrep) => "wszystkiemu";
+        (AccNoPrep|AccPrep) => "wszystko";
+        InstrC => "wszystkim";
+        LocPrep => "wszystkim"
+      };
+      p = P3;
+      gn = NeutSg -- in fact it is plurale tantum ver. 3
+    };
+    
+    ktos : NounPhrase = { 
+      nom = "ktoś" ;
+      voc = "ktosiu" ;
+      dep = table {
+	     (GenNoPrep|GenPrep) => "kogoś";
+	     (DatNoPrep|DatPrep) => "komuś";
+	     (AccNoPrep|AccPrep) => "kogoś";
+	     InstrC => "kimś";
+	     LocPrep => "kimś"
+	     };
+	   p = P3 ;
+	   gn = MascPersSg
+	};
+    
+    cos : NounPhrase = {
+      nom = "coś" ;
+      voc = "coś" ;
+      dep = table {
+	     (GenNoPrep|GenPrep) => "czegoś";
+	     (DatNoPrep|DatPrep) => "czemuś";
+	     (AccNoPrep|AccPrep) => "coś";
+	     InstrC => "czymś";
+	     LocPrep => "czymś"
+	     };
+	   p = P3 ;
+	   gn = NeutSg
+	};
+	 
+
+    kto : NounPhrase = { 
+      nom = "kto" ;
+      voc = "kto" ;
+      dep = table {
+	     (GenNoPrep|GenPrep) => "kogo";
+	     (DatNoPrep|DatPrep) => "komu";
+	     (AccNoPrep|AccPrep) => "kogo";
+	     InstrC => "kim";
+	     LocPrep => "kim"
+	     };
+	   p = P3 ;
+	   gn = MascPersSg
+	};
+	
+    co : NounPhrase = {
+      nom = "co" ;
+      voc = "co" ;
+      dep = table {
+	     (GenNoPrep|GenPrep) => "czego";
+	     (DatNoPrep|DatPrep) => "czemu";
+	     (AccNoPrep|AccPrep) => "co";
+	     InstrC => "czym";
+	     LocPrep => "czym"
+	     };
+	   p = P3 ;
+	   gn = NeutSg
+	};
+
+	kazdyDet : Determiner = {
+	  s,sp = table {
+	    Nom => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr|Plur) => "każde" };
+        Gen => table {Masc _ => "każdego"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każdego" };
+        Dat => table {Masc _ => "każdemu"; Fem => "każdej"; (Neut|NeutGr|Plur) => "każdemu" };
+        Acc => table {Masc (Personal|Animate) => "każdego"; Masc Inanimate => "każdy"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każde" };
+        Instr => table {Masc _ => "każdym"; Fem => "każdą"; (Neut|NeutGr|Plur) => "każdym" };
+        Loc => table {Masc _ => "każdym"; Fem => "każdej"; (Neut|NeutGr|Plur) => "każdym" };
+        VocP => table {Masc _ => "każdy"; Fem => "każda"; (Neut|NeutGr|Plur) => "każde" }
+      };
+	  n = Sg;
+	  a = NoA;
+	};
+	
+	pareDet : Determiner = {
+	  s,sp = table {
+	    Nom => table {Masc Personal => "paru"; _ => "parę" };
+	    Gen => table { _ => "paru" };
+	    Dat => table { _ => "paru" };
+	    Acc => table {Masc Personal => "paru"; _ => "parę" };
+	    Instr => table { _ => "paroma" };
+	    Loc => table { _ => "paru" };
+	    VocP => table {Masc Personal => "paru"; _ => "parę" }
+	  };
+	  n = Pl;
+	  a = StoA
+	};
+	
+	wieleDet : Determiner = {
+	  s,sp = table {
+	    Nom => table {Masc Personal => "wielu"; _ => "wiele" };
+	    Gen => table { _ => "wielu" };
+	    Dat => table { _ => "wielu" };
+	    Acc => table {Masc Personal => "wielu"; _ => "wiele" };
+	    Instr => table { _ => "wieloma" };
+	    Loc => table { _ => "wielu" };
+	    VocP => table {Masc Personal => "wielu"; _ => "wiele" }
+	  };
+	  n = Pl;
+	  a = StoA
+	};
+
+	duzoDet : Determiner = {
+	  s,sp = \\_,_=>"dużo";{-	  
+	  table {
+	    Nom => table { _ => "dużo" };
+	    Gen => table { _ => "dużo" };
+	    Dat => table { _ => variants {} };
+	    Acc => table { _ => "dużo" };
+	    Instr => table { _ => variants {} };
+	    Loc => table { _ => variants {} };
+	    VocP => table {_ => "dużo" }
+	  };-}
+	  n = Pl;
+	  a = StoA
+	};
+
+	ileDet : IDeterminer = {
+	  s = table {
+	    Nom => table {Masc Personal => "ilu"; _ => "ile" };
+	    Gen => table { _ => "ilu" };
+	    Dat => table { _ => "ilu" };
+	    Acc => table {Masc Personal => "ilu"; _ => "ile" };
+	    Instr => table { _ => "ilu" };
+	    Loc => table { _ => "ilu" };
+	    VocP => table {Masc Personal => "ilu"; _ => "ile" }
+	  };
+	  n = Sg;
+	  a = StoA
+	};
+	
+	-- for "nobody", "noone", "none"
+  oper niktNP : NounPhrase =
+	 { voc,nom="nikt";
+	   dep = table {
+	     (GenNoPrep|GenPrep) => "nikogo";
+	     (DatNoPrep|DatPrep) => "nikomu";
+	     (AccNoPrep|AccPrep) => "nikogo";
+	     InstrC => "nikim";
+	     LocPrep => "nikim"
+	     };
+	   p=P3;
+	   gn= MascPersSg
+	 };
+
+-- for "nothing"
+  oper nicNP : NounPhrase =
+	 { voc,nom="nic";
+	   dep = table {
+	     (GenNoPrep|GenPrep) => "niczego";
+	     (DatNoPrep|DatPrep) => "niczemu";
+	     (AccNoPrep|AccPrep) => "nic";
+	     InstrC => "niczym";
+	     LocPrep => "niczym"
+	     };
+	   p=P3;
+	   gn= NeutSg
+	 };
+	 
+  zadenQuant : { s,sp:AForm=>Str } = {s,sp=table {
+	     AF (MascPersSg|MascAniSg|MascInaniSg) Nom => "żaden"; 
+	     AF (MascPersSg|MascAniSg|MascInaniSg) Gen => "żadnego";
+	     AF (MascPersSg|MascAniSg|MascInaniSg) Dat => "żadnemu"; 
+	     AF MascInaniSg Acc => "żaden"; -- który stół widzę
+	     AF (MascPersSg|MascAniSg) Acc => "żadnego"; -- którego psa / przyjaciela widzę
+	     AF (MascPersSg|MascAniSg|MascInaniSg) Instr => "żadnym";
+	     AF (MascPersSg|MascAniSg|MascInaniSg) Loc => "żadnym"; 
+	     AF (MascPersSg|MascAniSg|MascInaniSg) VocP => "żadny";
+	     
+	     AF FemSg Nom => "żadna" ; 
+	     AF FemSg Gen => "żadnej";
+	     AF FemSg Dat => "żadnej"; 
+	     AF FemSg Acc => "żadną"; 
+	     AF FemSg Instr => "żadną";
+	     AF FemSg Loc => "żadnej";
+	     AF FemSg VocP => "żadna";   
+	         
+	     AF NeutSg Nom => "żadne" ; 
+	     AF NeutSg Gen => "żadnego";
+	     AF NeutSg Dat  => "żadnemu"; 
+	     AF NeutSg Acc => "żadne"; 
+	     AF NeutSg Instr => "żadnym";
+	     AF NeutSg Loc => "żadnym";
+	     AF NeutSg VocP => "żadne"; 
+	
+     	 AF MascPersPl Nom => "żadni"; 
+	     AF (MascPersPl|OthersPl) Nom => "żadne"; 
+	     AF (MascPersPl|OthersPl) Gen => "żadnych";
+	     AF (MascPersPl|OthersPl) Dat => "żadnym"; 
+	     AF MascPersPl Acc => "żadnych"; 
+	     AF (MascPersPl|OthersPl) Acc => "żadne"; 
+	     AF (MascPersPl|OthersPl) Instr => "żadnymi";
+	     AF (MascPersPl|OthersPl) Loc => "żadnych";
+	     AF MascPersPl VocP => "żadni"; 
+	     AF (MascPersPl|OthersPl) VocP=> "żadne"
+	   }};
+	
+	pewienDet : Determiner = {
+	  s,sp = table {
+	    Nom => table {Masc _ => "pewien"; Fem=>"pewna"; _ => "pewne" };
+	    Gen => table { Fem=>"pewnej"; _ => "pewnego" };
+	    Dat => table { Fem=>"pewnej"; _ => "pewnemu" };
+	    Acc => table { Masc Inanimate => "pewien"; Masc _ => "pewnego"; Fem=>"pewną"; _ => "pewne" };
+	    Instr => table { Fem=>"pewną"; _=> "pewnym" };
+	    Loc => table { Fem=>"pewnej"; _=> "pewnym" };
+	    VocP => table {Masc _ => "pewny"; Fem=>"pewna"; _ => "pewne" }
+	  };
+	  n = Sg;
+	  a = NoA
+	};
+
+	pewniDet : Determiner = {
+	  s,sp = table {
+	    Nom => table {Masc Personal => "pewni"; _ => "pewne" };
+	    Gen => table { _ => "pewnych" };
+	    Dat => table { _ => "pewnym" };
+	    Acc => table {Masc Personal => "pewnych"; _ => "pewne" };
+	    Instr => table { _ => "pewnymi" };
+	    Loc => table { _ => "pewnych" };
+	    VocP => table {Masc Personal => "pewni"; _ => "pewne" }
+	  };
+	  n = Pl;
+	  a = NoA
+	};
+
+}
diff --git a/lib/src/polish/OrigNounMorphoPol.gf b/lib/src/polish/OrigNounMorphoPol.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/polish/OrigNounMorphoPol.gf
@@ -0,0 +1,3539 @@
+--# -path=.:../../prelude:../common
+--# -coding=utf8
+
+--1 A polish Resource Morphology 
+--
+-- Ilona Nowak, Wintersemester 2007/08
+--
+resource OrigNounMorphoPol = ResPol ** open Prelude, (Predef=Predef) in {
+
+     flags  coding=utf8; optimize=all_subs; 
+
+
+--1 Nouns   
+
+-- Die Eigennamen im Polnischen sind wie
+-- die CommNoun (S:SubstForm => Str; gender). 
+-- Sie werden wie CommNoun dekliniert. Die Endung 
+-- des Wortes ist immer entscheidend. 
+-- Deswegen vrauche ich eine Funktion, die
+-- ein CommNoun zu einem PN  macht.
+
+--  oper ProperName = {s : SubstForm => Str; g : Gender};   
+--  mkProperName : CommNoun -> ProperName = \cn ->
+--    {s = \\c => cn.s! (SF Sg c); g=cn.g };
+
+
+----- Abbreviations used in names of declensions -----
+
+-- VA1 - vowel alternation 1: o:ó, ó:o
+-- VA2 - vowel alternation 2: a:e, e:o, ę:o, o:e
+-- VA3 - vowel alternation 3: ę:ą, ą:ę
+-- CA - consonant alternation
+-- CL - consonant lengthening
+-- CAL - consonant alternation and lengthening 
+-- F - feminine
+-- N - neuter
+-- MP - masculine personal
+-- MA - masculine animate
+-- MI - masculine inanimate
+
+-- In Polish there are almost 125 main paradigms for noun declension.
+-- (the classification of G. Jagodziński)
+-- In this work I make only paradigms, that are needed for 
+-- building lexicon entries.
+     
+
+--1.2 Operations for feminine nouns  
+
+
+-- oper for feminine, noun ending in -l, 
+-- no alternation
+-- 104 paradigm by Grzegorz Jagodziński
+-- by Nowak 104_4
+-- oper nKapiel fo stal in GF lexicon
+
+  oper l_End_F_1 : Str -> CommNoun = \kapiel ->
+	 let 
+	   x = kapiel;
+	 in
+	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "ą";
+	     SF Sg _ => x + "i"; 
+	     SF Pl Gen => x + "i";   
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e" 
+	     };
+	   g = Fem
+	 };
+       
+       
+-- oper for feminine, subject ending in -dź, 
+-- consonant alternation in gen, dat, loc, instr Sg 
+-- and in all plural forms.
+-- Vowel alternation in almost all forms. 
+-- Only nom and acc Sg haven't any changes.
+-- 104' paradigm by Grzegorz Jagodziński
+-- by Nowak 104'_1
+-- oper nLodz for łódź in GF lexicon
+-- dzx = dź
+-- ludz = łódź
+
+  oper dzx_End_VA1_CAL_F : Str -> CommNoun = \ludz ->
+	 let
+	   x = vowAlt1 ludz;
+	   y = consAlt x;
+	   z = consLength y;
+       	 in
+	 { s = table { 
+	     SF Sg Nom => ludz;
+	     SF Sg Acc => ludz;
+	     SF Sg Instr => z + "ą";
+	     SF Sg _ => y + "i"; 
+	     SF Pl Gen => y + "i"; 
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => z + "e" 
+	     };
+	   g = Fem
+	 };
+       
+       
+-- oper for feminine, subject ending in -l, 
+-- vowel alternation in almost all forms. 
+-- Only nom and dat Sg haven't vowel alternation.
+-- 104' paradigm by Grzegorz Jagodziński
+-- by Nowak 104'_3
+-- oper nSul for sól in GF lexicon
+
+  oper l_End_VA1_F : Str -> CommNoun = \sul ->
+	 let
+	   x = vowAlt1 sul;
+	 in
+	 { s = table { 
+	     SF Sg Nom => sul;
+	     SF Sg Acc => sul;
+	     SF Sg Instr => x + "ą";
+	     SF Sg _ => x + "i"; 
+	     SF Pl Gen => x + "i";   
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e" 
+	     };
+	   g = Fem
+	 };
+
+               
+-- oper for feminine, subject ending in -w, 
+-- fleeting e- minus between 2 consonants.
+-- 104* paradigm number by Grzegorz Jagodziński
+-- by Nowak 104*_1
+-- oper nKonew for krew in GF lexicon
+
+  oper w_End_FleetingEminus_F : Str -> CommNoun = \konew ->
+	 let
+	   x = fleetingEminus konew;
+	   y = consLength x;
+	 in
+	 { s = table { 
+	     SF Sg Nom => konew;
+	     SF Sg Acc => konew;
+	     SF Sg Instr => y + "ą";
+	     SF Sg _ => x + "i"; 
+	     SF Pl Gen => x + "i";   
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -ś, 
+-- subject change: wieś : wsi
+-- 104** paradigm by Grzegorz Jagodziński
+-- by Nowak 104**
+-- oper nWies only for wieś in GF lexicon
+-- sx = ś
+-- wies = wieś
+
+  oper sx_End_CAL_FleetingIEminus_F : Str -> CommNoun = \wies ->
+	let
+	  x = consAlt wies;
+	  y = fleetingIEminus x;
+	  z = consLength y;
+	  in
+	 { s = table { 
+	     SF Sg Nom => wies;
+	     SF Sg Acc => wies;
+	     SF Sg Instr => z + "ą";
+	     SF Sg _ => y + "i"; 
+	     SF Pl Gen => y + "i"; 
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => z + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -ń, 
+-- consonant alternation, consonant lengthening.
+-- 105 paradigm by Grzegorz Jagodziński
+-- 105_1 by Nowak
+-- oper nDlon for dłoń GF lexicon
+-- nx = ń
+-- dlon = dłoń
+
+  oper nx_End_CAL_F : Str -> CommNoun = \dlon ->
+	 let
+	   x = consAlt dlon;
+	   y = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => dlon;
+	     SF Sg Acc => dlon;
+	     SF Sg Instr => y + "ą";
+	     SF Sg _ => x + "i";
+	     SF Pl Gen => x + "i";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => dlon + "mi";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e"
+             };
+	   g = Fem
+	 };
+       
+-- oper for feminine, subject ending in -ć (sieć),
+-- -ść (miłość), -ś (pierś), -dź (odpowiedź)
+-- consonant alternation on last consonant
+-- 106 paradigm by Grzegorz Jagodziński
+-- 106_1 by Nowak
+-- oper nSiec for miłość, odległość, pierś in GF lexicon
+-- cx = ć
+-- siec = sieć
+
+  oper cx_End_CAL_F_1 : Str -> CommNoun = \siec  ->
+	 let
+	   x = consAlt siec;
+	   y = consLength x;
+	   in
+	 { s = table { 
+	     SF Sg Nom => siec;
+	     SF Sg Acc => siec;
+	     SF Sg Instr => y + "ą";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF _ _ => x + "i"
+             };
+	   g = Fem
+	 };
+
+       
+-- oper for nouns having only the plural form
+-- 98 by Grzegorz Jagodziński for usta - 98_2 by Nowak
+-- 106 by Grzegorz Jagodziński for wnętrzności - 106_2 by Nowak
+-- 106 by Grzegorz Jagodziński for drzwi - 106_3 by Nowak
+-- 117 by Grzegorz Jagodziński for spodnie - 117_2 by Nowak
+-- oper nDrzwi for drzwi, wnętrzności, usta, spodnie in GF-lexicon
+
+  oper onlyPlNoun : Str -> CommNoun = \drzwi  ->
+	 let 
+	   i = my1Last drzwi;
+	   drzw = last1Minus drzwi;
+	   x = case i of {
+	     "a" => last1Minus drzwi;
+	     "e" => drzw;
+	     "i" => drzwi;
+	     "y" => drzw + "ów"};
+	 in 
+	 { s = table { 
+	     SF _ Gen => x;
+	     SF _ Dat => x + "om";
+	     SF _ Instr => x + "ami";
+	     SF _ Loc => x + "ach";
+	     SF _ _ => drzwi
+             };
+	   g = Plur
+	 };
+
+
+
+-- oper for feminine, subject ending in -ść (kość), -ć(nić) 
+-- consonant alternation and lengthening. Similar to nSiec, but different
+-- in instr pl in the declension ending sieci-ami, kość-mi.
+-- 107 paradigm by Grzegorz Jagodziński
+-- 107 by Nowak
+-- oper nKosc for kość in GF lexicon
+-- cx = ć
+-- kosc = kość
+ 
+  oper cx_End_CAL_F_2 : Str -> CommNoun = \kosc ->
+	 let
+	   x = consAlt kosc;
+	   y = consLength x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => kosc;
+	     SF Sg Acc => kosc;
+	     SF Sg Instr => y + "ą";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => kosc + "mi";
+	     SF Pl Loc => y + "ach";
+	     SF _ _ => x + "i"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -c,-cz,-rz,-ż, 
+-- 108 paradigm by Grzegorz Jagodziński
+-- 108 by Nowak
+-- oper nNoc for noc in GF lexicon
+  oper hardened_End_F_1 : Str -> CommNoun = \noc ->
+     	 { s = table { 
+	     SF Sg Nom => noc;
+	     SF Sg Acc => noc;
+	     SF Sg Instr => noc + "ą";
+	     SF Sg _ => noc + "y"; 
+	     SF Pl Gen => noc + "y";
+	     SF Pl Dat => noc + "om";
+	     SF Pl Instr => noc + "ami";
+	     SF Pl Loc => noc + "ach";
+	     SF Pl _ => noc + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -sz, 
+-- fleeting -e between 2 consonants.
+-- 109* paradigm by Grzegorz Jagodziński 
+-- 109* by Nowak
+-- oper nWesz for wesz in GF lexicon
+  
+  oper sz_End_FleetingEminus_F : Str -> CommNoun = \wesz ->
+	 let
+	   x = fleetingEminus wesz;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => wesz;
+	     SF Sg Acc => wesz;
+	     SF Sg Instr => x + "ą";
+	     SF Sg _ => x + "y"; 
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -wa, 
+-- 112 paradigm by Grzegorz Jagodziński
+-- 112 by Nowak
+-- oper nKrolowa for królowa (queen) in GF lexicon
+
+  oper wa_na_End_F : Str -> CommNoun = \krolowa ->
+	 let
+	   krolow = last1Minus krolowa;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => krolowa;
+	     SF Sg Acc => krolow + "ą";
+	     SF Sg Instr => krolow + "ą";
+	     SF Sg VocP => krolow + "o";
+	     SF Sg _ => krolow + "ej";
+	     SF Pl Gen => krolow + "ych";
+	     SF Pl Dat => krolow + "ym";
+	     SF Pl Instr => krolow + "ymi";
+	     SF Pl Loc => krolow + "ych";
+	     SF Pl _ => krolow + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -wa, 
+-- 113'@ paradigm by Grzegorz Jagodziński
+-- 113'@ by Nowak
+-- oper nReka for ręka in GF lexicon
+
+  oper k_End_Unregulary_VA3_CA_F : Str -> CommNoun = \reka ->
+	 let
+	   x = last1Minus reka;
+	   y = vowAlt3 x;
+	   z = consAlt x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => reka;
+	     SF Sg Gen => x + "i";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => z + "e";
+	     SF Pl Gen => y;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "oma";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => z + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -k (frytka), -g (ostryga, waga)
+-- consonant alternation in dat, loc Sg.
+-- 114 paradigm by Grzegorz Jagodziński
+-- oper nApteka for fabryka, gramatyka, muzyka, 
+-- nauka, rzeka, sztuka in GF lexicon
+
+  oper g_k_End_CA_F : Str -> CommNoun = \apteka ->
+	 let
+	   x = last1Minus apteka;
+	   y = consAlt apteka;
+	 in 
+	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "i";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e"; 
+	     SF Pl Gen => x;   
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -g, 
+-- consonant alternation in dat, loc sg,
+-- vowel alternation in gen pl: o-ó (droga-dróg).
+-- 114' paradigm by Grzegorz Jagodziński
+-- by Nowak 114'
+-- oper nDroga for podłoga, noga in GF lexicon
+  
+  oper g_End_VA1_CA_F : Str -> CommNoun = \droga ->
+	let
+	   x = last1Minus droga;
+	   y = consAlt droga;
+	   z = vowAlt1 droga;
+	in
+	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "i";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e"; 
+	     SF Pl Gen => z; 
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -k, 
+-- consonant alternation in dat, loc sg,
+-- fleeting -e plus in gen pl.
+-- 114* paradigm by Grzegorz Jagodziński
+-- by Nowak 114*_1
+-- oper nMatka for matka, piosenka, książka, kurtka,
+-- lodówka, skarpetka, gumka in GF lexicon
+  
+  oper k_End_CA_FleetingEplus_F : Str -> CommNoun = \matka ->
+	 let
+	   x = last1Minus matka;
+	   y = consAlt x;
+	   z = fleetingEplus x;	   
+	   in
+	     { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "i";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e"; 
+	     SF Pl Gen => z;   
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i"
+             };
+	   g = Fem
+	  };
+
+
+-- oper for feminine, subject ending in -ia, 
+-- 116 paradigm by Grzegorz Jagodziński
+-- 116_5 by Nowak
+-- oper nZiemia for ziemia (earth) in GF lexicon
+
+  oper ia_End_F_1 : Str -> CommNoun = \ziemia ->
+	 let
+	   ziemi = last1Minus ziemia;
+	   ziem = last1Minus ziemi;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => ziemi + "a";
+	     SF Sg Acc => ziemi + "ę";
+	     SF Sg Instr => ziemi + "ą";
+	     SF Sg VocP => ziemi + "o";
+	     SF Sg _ => ziem + "i";
+	     SF Pl Gen => ziem;
+	     SF Pl Dat => ziemi + "om";
+	     SF Pl Instr => ziemi + "ami";
+	     SF Pl Loc => ziemi + "ach";
+	     SF Pl _ => ziemi + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -l, 
+-- 116 paradigm by Grzegorz Jagodziński
+-- 116_6 by Nowak
+-- oper nFala for koszula in GF lexicon
+
+  oper l_End_F_2 : Str -> CommNoun = \fala ->
+	 let
+	   fal = last1Minus fala;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => fal + "a";
+	     SF Sg Acc => fal + "ę";
+	     SF Sg Instr => fal + "ą";
+	     SF Sg VocP => fal + "o";
+	     SF Sg _ => fal + "i";
+	     SF Pl Gen => fal;
+	     SF Pl Dat => fal + "om";
+	     SF Pl Instr => fal + "ami";
+	     SF Pl Loc => fal + "ach";
+	     SF Pl _ => fal + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -ia, -ja:
+-- in the spoken version of the word is -ja. Both
+-- -ia and -ja have the same pronunciation. 
+-- genitive sg ending in -ii.
+-- 117 paradigm by Grzegorz Jagodziński
+-- 117_4 by Nowak too
+-- oper nLilia for religia, telewizja, restauracja in GF lexicon
+  
+  oper ia_End_F_2 : Str -> CommNoun = \lilia ->
+	 let
+	   lili = last1Minus lilia;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => lili + "a";
+	     SF Sg Acc => lili + "ę";
+	     SF Sg Instr => lili + "ą";
+	     SF Sg VocP => lili + "o";
+	     SF Sg _ => lili + "i";
+	     SF Pl Gen => lili + "i";
+	     SF Pl Dat => lili + "om";
+	     SF Pl Instr => lili + "ami";
+	     SF Pl Loc => lili + "ach";
+	     SF Pl _ => lili + "e"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -t --------------------------------------, 
+-- 121 paradigm by Grzegorz Jagodziński
+-- 121_1 by Nowak
+-- By Jagodziński there are many words in this group, 
+-- that don't have consonant alternation in dat sg,
+-- but only a consonantLengthening p: pi, n:ni, s:si
+-- at the end of the subject.
+-- So I create a new group here for małpa, lipa, benzyna, 
+-- cytryna, szosa etc. S. nLiczba, below, 121_2 by Nowak
+-- oper nKobieta for moneta, planeta, gazeta, ojczyzna in GF lexicon
+
+  oper hard_End_CAL_F : Str -> CommNoun = \kobieta ->
+	 let
+	   x = last1Minus kobieta;
+	   y = consAlt x;
+	   z = consLength y;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => z + "e";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -t, -d, -b, -n, -w
+-- (a hard consonant)
+-- 121 paradigm by Grzegorz Jagodziński
+-- 121_2 by Nowak
+-- Only a consonantLengthening b:bi, p: pi, n:ni, s:si
+-- at the end of the subject.
+-- oper nLiczba for żona, trawa, dziewczyna, ryba, lampa, liczba in GF lexicon
+  
+  oper hard_End_CL_F : Str -> CommNoun = \liczba ->
+	 let
+	   x = last1Minus liczba;
+	   y = consLength x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -ł, -r, -ch
+-- 121 paradigm by Grzegorz Jagodziński
+-- 121_3 by Nowak
+-- oper nSila for skała, reguła, chmura, góra, kamera, 
+-- kora, mucha in GF lexicon
+-- sixa = siła
+  
+  oper hard_End_CA_F : Str -> CommNoun = \sixa ->
+	 let
+	   x = last1Minus sixa;
+	   y = consAlt x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in hard consonants
+-- f.e. -b(osoba), -p(stopa), -w (połowa), -z (koza)
+-- vowel alternation o:ó in gen Pl and
+-- consonant lengthening in dat, loc sg.
+-- 121' paradigm by Grzegorz Jagodziński
+-- 121'_1 by Nowak
+-- oper nNora for stopa, wątroba, krowa
+--  in GF lexicon
+
+  oper hard_End_VA1_CL_F : Str -> CommNoun = \doba ->
+	 let
+	   x = last1Minus doba;
+	   y = consLength x;
+	   z = vowAlt1 x;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -d (broda, jagoda, moda),
+-- -t (cnota, robota, sobota).
+-- consonant alternation and lengthening d:dzi (woda:wodzie),
+-- t:ci(sobota:sobocie) in dat, loc sg, 
+-- vowel alternation o:ó (woda:wód, sobota:sobót) in gen pl.
+-- 121' paradigm by Grzegorz Jagodziński
+-- 121'_2 by Nowak
+-- oper nWoda for woda in GF lexicon
+
+  oper hard_End_VA1_CAL_F : Str -> CommNoun = \woda ->
+	 let
+	   x = last1Minus woda;
+	   y = consLength (consAlt x);
+	   z = vowAlt1 x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -oła, -stra:
+-- (pszczoła, szkoła, siostra).
+-- consonant alternation ł:l, r:rz (szkoła:szkole,
+-- siostra:siostrze) in dat, loc sg, 
+-- vowel alternation o:ó (szkoła:szkół, siostra:sióstr) in gen pl.
+-- 121' paradigm by Grzegorz Jagodziński
+-- 121'_3 by Nowak
+-- oper nSzkola for szkoła, siostra in GF lexicon
+
+  oper hard_End_VA1_CA_F : Str -> CommNoun = \szkola ->
+	 let
+	   x = last1Minus szkola;
+	   y = consAlt x;
+	   z = vowAlt1 x;
+	   in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+ 
+-- oper for feminine, subject ending in -two consonants:
+-- -jn, -łz, -łn, -żw
+-- consonant lengthening 
+-- 121* paradigm by Grzegorz Jagodziński
+-- 121*_1 by Nowak
+-- oper nWojna for wojna GF lexicon
+
+  oper hard_End_CL_FleetingEplus_F : Str -> CommNoun = \wojna ->
+	let
+	  x = last1Minus wojna;
+	  y = consLength x;
+	  z = fleetingEplus x;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -sn
+-- is almost like nWojna, but consonant alternation s:ś too
+-- 121* paradigm by Grzegorz Jagodziński
+-- 121*_1 by Nowak
+-- oper nWiosna 
+
+  oper sn_End_CAL_FleetingIEplus_F : Str -> CommNoun = \wiosna ->
+	let
+	  x = last1Minus wiosna;
+	  y = consLength (consAlt x);
+	  z = fleetingEplus x;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z; 
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -consonant + ł
+-- f.e. like mgła, igła
+-- fleeting -ie plus
+-- 121** paradigm by Grzegorz Jagodziński
+-- 121**_2 by Nowak
+-- oper nMgla for mgła GF lexicon
+-- x = ł
+-- mgxa = mgła
+
+  oper hard_l_End_CA_FleetingIEplus_F : Str -> CommNoun = \mgxa ->
+	let
+	  x = last1Minus mgxa;
+	  y = consAlt x;
+	  z = fleetingIEplus x;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper nGwiazda for gwiazda in GF-lexicon
+-- 121^ paradigm by Grzegorz Jagodziński
+-- 121^_1 by Nowak
+-- only for words ending in -zda, -sta (gwiazda, niewiasta)
+
+  oper zd_st_End_VA2_CAL_F : Str -> CommNoun = \gwiazda->
+	 let
+	  x = last1Minus gwiazda;
+	  y = consLength (consAlt (vowAlt2 x));
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y"
+             };
+	   g = Fem
+	 };
+
+
+-- oper for feminine, subject ending in -c,-cz,-rz,-ż,  
+-- 124 paradigm by Grzegorz Jagodziński 
+-- 124_1 by Nowak
+-- oper nUlica for ulica, rękawica GF lexicon
+
+  oper hardened_End_F_2 : Str -> CommNoun = \ulica ->
+	 let
+	   x = last1Minus ulica;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => x + "y";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e"
+             };
+	   g = Fem
+	 };
+
+-- oper for feminine, subject ending in -c, 
+-- irregulary form in genitive Pl
+-- 124** paradigm by Grzegorz Jagodziński 
+-- 124**_1 by Nowak
+-- oper nOwca for owca in GF lexicon
+  
+  oper c_End_FleetingIEplus_F : Str -> CommNoun = \owca ->
+	 let
+	   x = last1Minus owca;
+	   y = fleetingIEplus x;
+	in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg VocP => x + "o";
+	     SF Sg _ => x + "y";
+	     SF Pl Gen => y;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e"
+             };
+	   g = Fem
+	 };
+
+
+--1.3 Operations for neuter nouns  
+
+-- oper for neuter where subject ending in -ni,
+-- functional weak ------- consonant
+-- consonant alternation ni:ń in genitive Pl
+-- 91 paradigm by Grzegorz Jagodziński 
+-- 91_1 by Nowak
+-- oper nDanie for mieszkanie in GF lexicon
+
+  oper ci_ni_week_End_CA_N : Str -> CommNoun = \danie ->
+	 let
+	   x = last1Minus danie;
+	   y = consAlt x;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "e";
+	     SF Pl Gen => y;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -c,
+-- functional weak consonant
+-- 91 paradigm by Grzegorz Jagodziński 
+-- 91_4 by Nowak
+-- oper nSerce for słońce, serce, wzgórze GF lexicon
+
+  oper hardened_End_N : Str -> CommNoun = \serce ->
+	 let
+	   x = last1Minus serce;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "e";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -
+-- 91@ paradigm by Grzegorz Jagodziński 
+-- 91@ by Nowak
+-- oper nNasienie for nasienie GF lexicon
+-- this is only for nasienie in polish language 
+  
+  oper ni_End_VA2_N : Str -> CommNoun = \nasienie ->
+	let
+	  x = fleetingEminus nasienie;
+	  w = fleetingIEminus nasienie;
+	  y = vowAlt2 w;
+	in
+     	{ s = table { 
+	    SF Sg Gen => x + "a";
+	    SF Sg Dat => x + "u";
+	    SF Sg Instr => x + "em";
+	    SF Sg Loc => x + "u";
+	    SF Sg _ => x + "e";
+	    SF Pl Gen => y;
+	    SF Pl Dat => y + "om";
+	    SF Pl Instr => y + "ami";
+	    SF Pl Loc => y + "ach";
+	    SF Pl _ => y + "a"
+            };
+	  g = Neut
+	};
+
+
+-- oper for neuter, subject ending in -rz 
+-- in genitive Pl vowel alternation o:ó
+-- here u=ó; both letters have the same pronunciation
+-- 91' paradigm by Grzegorz Jagodziński 
+-- 91' by Nowak  
+-- oper nMorze for morze GF lexicon
+
+  oper rz_zx_End_VA1_N : Str -> CommNoun = \morze ->
+	let
+	   x = last1Minus morze;
+	   y = vowAlt1 morze;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "e";
+	     SF Pl Gen => y;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -ę
+-- in gen pl vowel alternation ę:o 
+-- (imię:imiona, znamię:znamiona)
+-- 97 paradigm by Grzegorz Jagodziński 
+-- 97_1 by Nowak
+-- oper nImie for imię GF lexicon
+
+  oper ex_End_VA2_N : Str -> CommNoun = \imie ->
+	 let
+	  w = last1Minus imie;
+	  x = w + "eni";
+	  y = vowAlt2 imie;
+	  z = y + "n";
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => w + "ę";
+	     SF Pl Gen => z;
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => z + "a"
+             };
+	   g = NeutGr
+	 };
+
+
+-- oper for neuter, subject ending in -ę
+-- genitive Pl -ęta
+-- 97 paradigm by Grzegorz Jagodziński 
+-- 97_2 by Nowak
+-- oper nCiele for zwierzę, niemowlę GF lexicon
+  
+  oper ex_End_VA3_N : Str -> CommNoun = \ciele ->
+	let
+	   w = last1Minus ciele;
+	   x = ciele + "ci";
+	   y = vowAlt3 ciele + "t";
+	   z = ciele + "t";
+	in
+     	{ s = table { 
+	    SF Sg Gen => x + "a";
+	    SF Sg Dat => x + "u";
+	    SF Sg Instr => x + "em";
+	    SF Sg Loc => x + "u";
+	    SF Sg _ => w + "ę";
+	    SF Pl Gen => y;
+	    SF Pl Dat => z + "om";
+	    SF Pl Instr => z  + "ami";
+	    SF Pl Loc => z  + "ach";
+	    SF Pl _ => z + "a"
+            };
+	  g = NeutGr
+	};
+
+
+-- According to G.Jagodziński "udo" and "piwo" have 
+-- the same declention type. I part it, because "udo" 
+-- changes in "udzie".
+-- first there is consonant alternation d:dz 
+-- and then consonant lengthening dz: dz' (dzi).
+-- "Piwo" has only consonant lengthening w:w' (wi)
+
+-- oper for neuter, subject ending in a consonant + "o"
+-- 98 paradigm by Grzegorz Jagodziński 
+-- 98_1_a by Nowak
+-- oper nUdo for złoto GF lexicon
+  
+  oper hard_End_CAL_N : Str -> CommNoun = \udo ->
+	 let
+	  x = last1Minus udo ;
+	  y = consLength (consAlt udo);
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x  + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in a consonant + "o"
+-- 98 paradigm by Grzegorz Jagodziński 
+-- 98_1_b by Nowak
+-- oper nPiwo for piwo, wino, drzewo, kolano, 
+-- mięso, żelazo GF lexicon
+
+  oper hard_End_CL_N : Str -> CommNoun = \piwo ->
+	 let
+	   x = last1Minus piwo;
+	   y = consLength piwo;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x  + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -r
+-- consonant alternation r:rz
+-- 98 paradigm by Grzegorz Jagodziński 
+-- 98_4 by Nowak
+-- oper nZero for jezioro, pióro GF lexicon
+
+  oper r_End_CA_N : Str -> CommNoun = \zero ->
+	 let
+	   x = last1Minus zero;
+	   y = consAlt zero;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter "niebo" - only
+-- irregularly form in Pl "niebiosa"
+-- 98@ paradigm by Grzegorz Jagodziński and by Nowak
+-- oper nNiebo for  GF lexicon
+-- only for niebo in polish language
+
+  oper niebo_Unregulary_N : Str -> CommNoun = \niebo ->
+	 let
+	   x  = last1Minus niebo;
+-- 	   y = consLength niebo;
+	   z = x + "ios";
+	in
+     	{ s = table { 
+	    SF Sg Gen => x + "a";
+	    SF Sg Dat => x + "u";
+	    SF Sg Instr => x + "em";
+	    SF Sg Loc => x + "ie";
+	    SF Sg _ => x + "o";
+	    SF Pl Gen => z;
+	    SF Pl Dat => z + "om";
+	    SF Pl Instr => z + "ami";
+	    SF Pl Loc => z + "ach";
+	    SF Pl _ => z + "a"
+            };
+	  g = Neut
+	};
+
+
+-- oper for neuter, subject ending in -ł
+-- consonant alternation
+-- 98* paradigm by Grzegorz Jagodziński
+-- 98*_3 by Nowak
+-- oper nTlo for krzesło, masło, skrzydło GF lexicon 
+-- x = ł
+-- txo = tło 
+
+  oper lx_End_CA_FleetingEplus_N : Str -> CommNoun = \txo ->
+	 let
+	   x = last1Minus txo;
+	   y = consAlt txo;
+	   z = fleetingEplus txo; 
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -r
+-- genitive Pl fleetingEplus
+-- 98*  paradigm by Grzegorz Jagodziński 
+-- 98*_5 by Nowak
+-- oper nZebro for srebro GF lexicon
+
+  oper hard_End_CA_FleetingEplus_N : Str -> CommNoun = \zebro ->
+	 let
+	   x = last1Minus zebro;
+	   y = consAlt zebro;
+	   z = fleetingEplus zebro;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x  + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -n
+-- consonant lengthening
+-- 98** paradigm by Grzegorz Jagodziński 
+-- 98**_1 by Nowak
+-- oper nOkno for okno, drewno  GF lexicon
+
+  oper n_End_CL_FleetingIEplus_N : Str -> CommNoun = \okno ->
+	 let
+	   x = last1Minus okno;
+	   y = consLength okno;
+	   z = fleetingIEplus okno;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x  + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -zdo, -sto
+-- locative Sg gnieździe, mieście
+-- 98^ paradigm by Grzegorz Jagodziński 
+-- 98^_1 by Nowak
+-- oper nGniazdo for miasto GF lexicon
+
+  oper hard_End_VA_CAL_N : Str -> CommNoun = \gniazdo ->
+	 let
+	  x = last1Minus gniazdo;
+	  y = vowAlt2 gniazdo;
+	  z = consAlt y;
+	  t = consLength z;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => t + "e";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x  + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -k,
+-- consonant lengthening in instr Sg
+-- 99 paradigm by Grzegorz Jagodziński 
+-- 99_2 by Nowak
+-- oper nWojsko for mleko GF lexicon
+
+  oper k_End_CL_N : Str -> CommNoun = \wojsko ->
+	 let
+	   x = last1Minus wojsko;
+	   y = consLength wojsko;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -j,
+-- 99 paradigm by Grzegorz Jagodziński 
+-- 99_4 by Nowak
+-- oper nJajo for jajo GF lexicon
+
+  oper j_End_N : Str -> CommNoun = \jajo ->
+	let
+	  x = last1Minus jajo;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => x;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, subject ending in -k,
+-- consonant lengthening in instr Sg
+-- 99* paradigm by Grzegorz Jagodziński 
+-- 99*_2 by Nowak   
+-- oper nJablko for jabłko, jajko GF lexicon
+  
+  oper k_End_CL_FleetingEplus_N : Str -> CommNoun = \jablko ->
+	let
+	  x = last1Minus jablko;
+	  y = consLength jablko;
+	  z = fleetingEplus jablko;
+	in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => z;
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "a"
+             };
+	   g = Neut
+	 };
+
+
+-- oper for neuter, noun ending in -o,
+-- 100 paradigm by Grzegorz Jagodziński 
+-- 100_3 by Nowak
+-- oper nStudio for radio GF lexicon
+  
+  oper o_End_N : Str -> CommNoun = \studio ->
+	let
+	  x = last1Minus studio;
+	in
+     	{ s = table { 
+	    SF Sg Gen => x + "a";
+	    SF Sg Dat => x + "u";
+	    SF Sg Instr => x + "em";
+	    SF Sg Loc => x + "u";
+	    SF Sg _ => x + "o";
+	    SF Pl Gen => x + "ów";
+	    SF Pl Dat => x + "om";
+	    SF Pl Instr => x + "ami";
+	    SF Pl Loc => x + "ach";
+	    SF Pl _ => x + "a"
+            };
+	  g = Neut
+	};
+
+
+-- oper for neuter for dziecko,
+-- consonant alternation c:ć in instr Sg.
+-- 101 paradigm by Grzegorz Jagodziński & by Nowak
+-- oper nDziecko for dziecko GF lexicon
+
+  oper k_End_CAL_N : Str -> CommNoun = \dziecko ->
+	let
+	  t = last1Minus dziecko; --dzieck
+	  u = last1Minus t; --dziec
+	  w = consLength u; --dzieci
+	  x = consAlt w; --dzieć
+	  y = consLength t; --dziecki
+	in
+     	 { s = table { 
+	     SF Sg Gen => t + "a";
+	     SF Sg Dat => t + "u";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => t + "u";
+	     SF Sg _ => t + "o";
+	     SF Pl Dat => w + "om";
+	     SF Pl Instr => x + "mi";
+	     SF Pl Loc => w + "ach";
+	     SF Pl _ => u + "i"
+             };
+	   g = NeutGr --asl
+	 };
+
+
+-- oper for neuter, subject ending in -ch,
+-- consonant alternation ch:sz
+-- 102 paradigm by Grzegorz Jagodziński 
+-- 102_1 by Nowak
+-- oper nUcho for ucho GF lexicon 
+-- ucho as ear
+
+  oper ch_End_Unregulary_CA_N : Str -> CommNoun = \ucho ->
+	 let
+	   x = last1Minus ucho;
+	   y = consAlt x;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => y + "u";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "y"
+             };
+	   g = NeutGr
+	 };
+
+-- oper for neuter, subject ending in -k,
+-- consonant alternation for all forms in Pl k:cz
+-- 102 paradigm by Grzegorz Jagodziński 
+-- 102_2 by Nowak
+-- oper nOko for oko GF lexicon
+
+  oper k_End_Unregulary_CAL_N : Str -> CommNoun = \oko ->
+	 let
+	   x = last1Minus oko;
+	   y = consAlt oko;
+	   z = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => z + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg _ => x + "o";
+	     SF Pl Gen => y + "u";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "y"
+             };
+	   g = NeutGr
+	 };
+
+
+
+--1.4 Operations for masculine nouns  
+
+
+--1.4.1 Operations for masculine personal  
+
+
+-- oper for masculine personal ending in hard consonant
+-- -t, -n, nom pl ending in -i
+-- consonant alternation t:c, consonant lengthening c:ci,
+-- 3 paradigm by Grzegorz Jagodziński 
+-- 3_1 by Nowak
+-- oper nFacet for policjant, student, kuzyn in GF lexicon
+
+  oper hard_End_CAL_MP_1 : Str -> CommNoun = \facet ->
+	 let
+	   x = facet;
+	   y = consAlt x;
+	   z = consLength y;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => z + "e";
+	     SF Sg VocP => z + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => y + "i";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => y + "i";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in hard consonant
+-- -t, -n, nom pl ending in -y
+-- consonant alternation t:c, consonant lengthening c:ci,
+-- 4 paradigm by Grzegorz Jagodziński 
+-- 4_1 by Nowak
+-- oper nArab for szef in GF lexicon
+
+  oper hard_End_CAL_MP_2 : Str -> CommNoun = \Arab ->
+	 let
+	   x = Arab;
+	   y = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "owie";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in hard consonant
+-- -l. Only for przyjaciel (friend).
+-- consonant alternation l:ł, vowel alternation e:ó,
+-- 7 paradigm by Grzegorz Jagodziński 
+-- 7 by Nowak
+-- oper nPrzyjaciel for przyjaciel in GF lexicon
+
+  oper przyjaciel_VA1_VA2_CA_MP : Str -> CommNoun = \przyjaciel ->
+	 let
+	   t = przyjaciel;
+	   u = vowAlt2 t; -- przyjaciol
+	   w = consAlt u; -- przyjacioł
+	   x = vowAlt1 w; -- przyjaciół
+	 in
+     	 { s = table { 
+	     SF Sg Nom => t;
+	     SF Sg Dat => t + "owi";
+	     SF Sg Instr => t + "em";
+	     SF Sg Loc => t + "u";
+	     SF Sg VocP => t + "u";
+	     SF Sg _ => t + "a";
+	     SF Pl Nom => t + "e";
+	     SF Pl Dat => w + "om";
+	     SF Pl Instr => x  + "mi";
+	     SF Pl Loc => w + "ach";
+	     SF Pl VocP => t + "e";
+	     SF Pl _ => x 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in hard consonant -l
+-- 8 paradigm by Grzegorz Jagodziński 
+-- 8_3 by Nowak
+-- oper nKowal for nauczyciel (teacher) in GF lexicon
+  
+  oper l_End_MP : Str -> CommNoun = \kowal->
+	 let
+	   t = kowal;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => t;
+	     SF Sg Dat => t + "owi";
+	     SF Sg Instr => t + "em";
+	     SF Sg Loc => t + "u";
+	     SF Sg VocP => t + "u";
+	     SF Sg _ => t + "a";
+	     SF Pl Nom => t + "e";
+	     SF Pl Dat => t + "om";
+	     SF Pl Instr => t  + "ami";
+	     SF Pl Loc => t + "ach";
+	     SF Pl VocP => t + "e";
+	     SF Pl _ => t + "i"
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in hard double consonant
+-- -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)
+-- 11 paradigm by Grzegorz Jagodziński 
+-- 11 by Nowak
+-- oper nLekarz for lekarz in GF lexicon
+
+  oper hardened_End_MP : Str -> CommNoun = \lekarz ->
+	 let
+	   x = lekarz;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => x + "u";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "e";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "e";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -ul
+-- (konsul, król)
+-- 13 paradigm by Grzegorz Jagodziński 
+-- 13_3 by Nowak
+-- oper nKrol for król in GF lexicon
+
+  oper ul_End_MP : Str -> CommNoun = \krol->
+	 let
+	   x = krol;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => x + "u";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "owie";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "e";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -ż (mąż),
+-- vowel alternation ą:ę (mąż:męża)
+-- 13' paradigm by Grzegorz Jagodziński 
+-- 13' by Nowak
+-- oper nMaz for mąż in GF lexicon
+  
+  oper maz_MP : Str -> CommNoun = \maz ->
+	 let
+	   x = maz;
+	   y = vowAlt3 x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => y + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => y + "u";
+	     SF Sg VocP => y + "u";
+	     SF Sg _ => y + "a";
+	     SF Pl Nom => y + "owie";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl VocP => y + "owie";
+	     SF Pl _ => y + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -g (wróg),
+-- vowel alternation ó:o (wróg:wroga)
+-- only for wróg
+-- 14' paradigm by Grzegorz Jagodziński 
+-- 14' by Nowak
+-- oper nWrog for wróg in GF lexicon
+  
+  oper wrog_VA1_CL_MP : Str -> CommNoun = \wrog ->
+	 let
+	   x = vowAlt1 wrog;
+	   y = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => wrog;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => x + "u";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "owie";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "owie";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal "ksiądz"
+-- 20 paradigm by Grzegorz Jagodziński 
+-- 20 by Nowak
+-- oper nKsiadz for ksiądz in GF lexicon
+
+  oper ksiadz_VA3_CA_MP : Str -> CommNoun = \ksiadz ->
+	 let
+	   x = vowAlt3 ksiadz; -- księdz
+	   y = consAlt x; -- księż
+	 in
+     	 { s = table { 
+	     SF Sg Nom => ksiadz;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => y + "a";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "mi";
+	     SF Pl Loc => y + "ach";
+	     SF Pl VocP => y + "a";
+	     SF Pl _ => y + "y" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -ciec
+-- (ojciec, praojciec)
+-- 21* paradigm by Grzegorz Jagodziński 
+-- 21* by Nowak
+-- oper nOjciec for ojciec in GF lexicon
+  
+  oper ciec_End_CA_FleetingIEminus_MP : Str -> CommNoun = \ojciec ->
+	 let
+	   w = fleetingIEminus ojciec; -- ojcc
+	   x = last1Minus w; -- ojc
+	   y = consAlt x; -- ojcz
+	 in
+     	 { s = table { 
+	     SF Sg Nom => ojciec;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "owie";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "owie";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in a hard consonant -t 
+-- 18 paradigm by Grzegorz Jagodziński 
+-- 18 by Nowak
+-- oper nBrat for brat in GF lexicon
+
+  oper hard_End_CAL_MP : Str -> CommNoun = \brat ->
+	 let
+	   x = brat;
+	   y = consAlt x; -- brat:brac
+	   z = consLength y; -- brac:braci
+	   t = consAlt y; -- brac:brać
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => z + "e";
+	     SF Sg VocP => z + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => z + "a";
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => t + "mi";
+	     SF Pl Loc => z + "ach";
+	     SF Pl VocP => z + "a";
+	     SF Pl _ => y + "i" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal "bóg"
+-- 22' paradigm by Grzegorz Jagodziński 
+-- 22' by Nowak
+-- oper nBog for bóg in GF lexicon
+
+  oper bog_VA1_CAL_MP : Str -> CommNoun = \bog ->
+	 let
+	   x = vowAlt1 bog; -- bog
+	   y = consLength x; -- bogi
+	   z = vowAlt1 (consAlt bog); -- boż
+	 in
+     	 { s = table { 
+	     SF Sg Nom => bog;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => z + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "owie";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "owie";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -iec
+-- ( chłopiec)
+-- 24** paradigm by Grzegorz Jagodziński 
+-- 24** by Nowak
+-- oper nChlopiec for chłopiec in GF lexicon
+  
+  oper iec_End_CA_FleetingIEminus_MP : Str -> CommNoun = \chlopiec ->
+	 let
+	   x = fleetingIEminus chlopiec; -- chlopc
+	   y = consAlt x; -- chlopcz
+	 in
+     	 { s = table { 
+	     SF Sg Nom => chlopiec;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "y";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "y";
+	     SF Pl _ => x + "ów" 
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in -zna
+-- consinant alternation z:ź, consonant lengthening n:ni
+-- 34 paradigm by Grzegorz Jagodziński 
+-- 34 by Nowak
+-- oper nMezczyzna for mężczyzna in GF lexicon
+
+  oper zna_End_CAL_MP : Str -> CommNoun = \mezczyzna ->
+	 let
+	   x = last1Minus mezczyzna; -- mężczyzn
+	   y = consAlt x; -- mężczyźn
+	   z = consLength y;-- mężczyźni
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x + "a";
+	     SF Sg Gen => x + "y";
+	     SF Sg Dat => z + "e";
+	     SF Sg Acc => x + "ę";
+	     SF Sg Instr => x + "ą";
+	     SF Sg Loc => z + "e";
+	     SF Sg VocP => x + "o";
+	     SF Pl Nom => y + "i";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => y + "i";
+	     SF Pl _ => x  
+             };
+	   g = Masc Personal
+	 };
+
+
+-- oper for masculine personal ending in a hard consonant
+-- + "a" (tata, gazda, drużba, ortodoksa)
+-- 36 paradigm by Grzegorz Jagodziński 
+-- 36 by Nowak
+-- oper nDruzba for tata (synonym for ojciec) in GF lexicon
+{- oper hard_plus_a_CAL_MP : Str -> CommNoun = \druzba ->
+	 let
+	   x = last1Minus druzba;
+	   
+	in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => x + "u";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "e";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl VocP => x + "e";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Personal
+	 }; -}
+
+
+--1.4.2 Operations for masculine animate
+
+
+-- oper for masculine animate ending in -ń
+-- 59 paradigm by Grzegorz Jagodziński 
+-- 59 by Nowak
+-- oper nKon for koń in GF lexicon
+
+  oper kon_CAL_MA : Str -> CommNoun = \kon ->
+	 let
+	   x = consAlt kon; --kon
+	   y = consLength x; -- koni
+	 in
+     	 { s = table { 
+	     SF Sg Nom => kon;
+	     SF Sg Dat => y + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => y + "u";
+	     SF Sg VocP => y + "u";
+	     SF Sg _ => y + "a";
+	     SF Pl Gen => x + "i";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => kon + "mi";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e" 
+             };
+	   g = Masc Animate
+	 };
+
+
+-- oper for masculine animate for "wąż"
+-- 61' paradigm by Grzegorz Jagodziński 
+-- 61' by Nowak
+-- oper nWaz for wąż in GF lexicon
+  
+  oper waz_VA3_MA : Str -> CommNoun = \waz ->
+	 let
+	   y = vowAlt3 waz; -- węż
+	 in
+     	 { s = table { 
+	     SF Sg Nom => waz;
+	     SF Sg Dat => y + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => y + "u";
+	     SF Sg VocP => y + "u";
+	     SF Sg _ => y + "a";
+	     SF Pl Gen => y + "y";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e" 
+             };
+	   g = Masc Animate
+	 };
+
+
+-- oper for masculine animate ending in -k
+-- 62 paradigm by Grzegorz Jagodziński 
+-- 62 by Nowak
+-- oper nPtak for ptak, robak in GF lexicon
+  
+  oper k_End_CL_MA : Str -> CommNoun = \ptak ->
+	 let
+	   y = consLength ptak; -- ptaki
+	 in
+     	 { s = table { 
+	     SF Sg Nom => ptak;
+	     SF Sg Dat => ptak + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => ptak + "u";
+	     SF Sg VocP => ptak + "u";
+	     SF Sg _ => ptak + "a";
+	     SF Pl Gen => ptak + "ów";
+	     SF Pl Dat => ptak + "om";
+	     SF Pl Instr => ptak + "ami";
+	     SF Pl Loc => ptak + "ach";
+	     SF Pl _ => ptak + "i" 
+             };
+	   g = Masc Animate
+	 };
+
+
+-- oper for masculine animate for "kot"
+-- 64 paradigm by Grzegorz Jagodziński 
+-- 64 by Nowak
+-- oper nKot for kot in GF lexicon
+
+  oper kot_CAL_MA : Str -> CommNoun = \kot ->
+	 let
+       	   x = consAlt kot; --koc
+	   y = consLength x; -- koci
+	 in
+     	 { s = table { 
+	     SF Sg Nom => kot;
+	     SF Sg Dat => kot + "u";
+	     SF Sg Instr => kot + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => kot + "a";
+	     SF Pl Gen => kot + "ów";
+	     SF Pl Dat => kot + "om";
+	     SF Pl Instr => kot + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => kot + "y" 
+             };
+	   g = Masc Animate
+	 };
+
+
+-- oper for masculine animate for "pies"
+-- 64** paradigm by Grzegorz Jagodziński 
+-- 64** by Nowak
+-- oper nPies for pies in GF lexicon
+
+  oper pies_CL_FleetingIEminus_MA : Str -> CommNoun = \pies ->
+	 let
+	   x = fleetingIEminus pies; -- ps
+	   y = consLength x; -- psi
+	 in
+     	 { s = table { 
+	     SF Sg Nom => pies;
+	     SF Sg Dat => x + "u";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Animate
+	 };
+
+
+
+--1.4.3 Operations for masculine inanimate  
+
+
+-- oper for masculine inanimate ending in 
+-- a vowel + a hard consonant
+-- consonant alternation t:c and then lengthening c:ci
+-- 70 paradigm by Grzegorz Jagodziński 
+-- 70_1_1 by Nowak
+-- oper nBat for but in GF lexicon
+
+  oper vowel_hard_CAL_MI : Str -> CommNoun = \bat ->
+	 let
+	   u = bat;
+	   x = consLength (consAlt u);  -- baci
+	 in
+     	 { s = table { 
+	     SF Sg Nom => u;
+	     SF Sg Dat => u + "owi";
+	     SF Sg Instr => u + "em";
+	     SF Sg Loc => x + "e";
+	     SF Sg VocP => x + "e";
+	     SF Sg _ => u + "a";
+	     SF Pl Gen => u + "ów";
+	     SF Pl Dat => u + "om";
+	     SF Pl Instr => u + "ami";
+	     SF Pl Loc => u + "ach";
+	     SF Pl _ => u + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in 
+-- a vowel + a hard consonant
+-- almost like nBat, but with consonant alternation
+-- only consonant lengthening
+-- (dzban, chleb, Berlin, kręgosłup, kilogram)
+-- 70 paradigm by Grzegorz Jagodziński 
+-- 70_1_2 by Nowak
+-- oper nBat for  chleb, włos, nos, ogon in GF lexicon
+
+  oper vowel_hard_CL_MI : Str -> CommNoun = \chleb ->
+	 let
+	   u = chleb;
+	   x = consLength u;  -- chlebi
+	 in
+     	 { s = table { 
+	     SF Sg Nom => u;
+	     SF Sg Dat => u + "owi";
+	     SF Sg Acc => u;
+	     SF Sg Instr => u + "em";
+	     SF Sg Loc => x + "e";
+	     SF Sg VocP => x + "e";
+	     SF Sg _ => u + "a";
+	     SF Pl Gen => u + "ów";
+	     SF Pl Dat => u + "om";
+	     SF Pl Instr => u + "ami";
+	     SF Pl Loc => u + "ach";
+	     SF Pl _ => u + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -r
+-- consonant alternation r:rz (ser:serze)
+-- 70 paradigm by Grzegorz Jagodziński 
+-- 70_5 by Nowak
+-- oper nSer for ser in GF lexicon
+
+  oper r_End_CA_MI : Str -> CommNoun = \ser ->
+	 let
+	   x = ser;
+	   y = consAlt ser; -- serz
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ąb
+-- consonant alternation ą:ę (ząb:zęba)
+-- 70' paradigm by Grzegorz Jagodziński 
+-- 70'_1 by Nowak
+-- oper nZab for ząb in GF lexicon
+
+  oper ab_End_VA3_CL_MI : Str -> CommNoun = \zab ->
+	 let
+	   y = vowAlt3 zab; -- zęb
+	   z = consLength y;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => zab;
+	     SF Sg Dat => y + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => z + "e";
+	     SF Sg VocP => z + "e";
+	     SF Sg _ => y + "a";
+	     SF Pl Gen => y + "ów";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending for "kościół"
+-- 70^' paradigm by Grzegorz Jagodziński 
+-- 70^' by Nowak
+-- oper nKosciol for kościół in GF lexicon
+  
+  oper kosciol_VA1_VA2_CA_MI : Str -> CommNoun = \kosciol ->
+	 let
+	   x = vowAlt1 kosciol; -- kościoł
+	   y = consAlt (vowAlt2 x); -- kościel
+	 in
+     	 { s = table { 
+	     SF Sg Nom => kosciol;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => y + "e";
+	     SF Sg VocP => y + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in a weak
+-- consonant (promień, Brześć, Niedźwiedź, Zamość) 
+-- consonant alternation and lengthening
+-- 71 paradigm by Grzegorz Jagodziński 
+-- 71_1 by Nowak
+-- oper nCien for korzeń, kamień in GF lexicon
+  
+  oper week_End_CAL_MI : Str -> CommNoun = \cien ->
+	 let
+	   x = consAlt cien; -- cień:cien
+	   y = consLength x; -- cieni
+	 in
+     	 { s = table { 
+	     SF Sg Nom => cien;
+	     SF Sg Gen => y + "a";
+	     SF Sg Dat => y + "u";
+	     SF Sg Acc => cien;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => y + "u";
+	     SF Pl Gen => x + "i";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => y + "ami";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in a weak
+-- consonant alternation and lengthening
+-- fleeting ie minus (łokieć, stopień)
+-- 71** paradigm by Grzegorz Jagodziński 
+-- 71**_1 by Nowak
+-- oper nPien for ogień, paznokieć in GF lexicon
+  
+  oper week_End_CAL_FleetingIEminus_MI : Str -> CommNoun = \pien ->
+	 let
+	   x = fleetingIEminus pien; -- pń
+	   y = consAlt x; -- pn
+	   z = consLength y; -- pni
+	 in
+     	 { s = table { 
+	     SF Sg Nom => pien;
+	     SF Sg Dat => z + "u";
+	     SF Sg Instr => z + "em";
+	     SF Sg Loc => z + "u";
+	     SF Sg VocP => z + "u";
+	     SF Sg _ => z + "a";
+	     SF Pl Gen => y + "i";
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => z + "e" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ść,
+-- for liść
+-- 72 paradigm by Grzegorz Jagodziński 
+-- 72 by Nowak
+-- oper nLisc for liść in GF lexicon
+  
+  oper lisc_CAL_MI : Str -> CommNoun = \lisc ->
+	 let
+	   x = consAlt lisc; -- liśc
+	   y = consLength x; -- liści
+	 in
+     	 { s = table { 
+	     SF Sg Nom => lisc;
+	     SF Sg Gen => y + "a";
+	     SF Sg Dat => y + "owi";
+	     SF Sg Acc => lisc;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => y + "u";
+	     SF Pl Gen => x + "i";
+	     SF Pl Dat => y + "om";
+	     SF Pl Instr => lisc + "mi";
+	     SF Pl Loc => y + "ach";
+	     SF Pl _ => y + "e" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in 
+-- a hardened consonant: -ż, -rz, -c, -cz, -dz
+-- (gorąc, piec, Kalisz, tłuszcz, bicz, Spisz, Zgierz, Paryż, Łowicz)
+-- 73 paradigm by Grzegorz Jagodziński 
+-- 73_5 by Nowak
+-- oper nKoc for piec, tłuszcz, Paryż in GF lexicon
+  
+  oper hardened_End_MI_1 : Str -> CommNoun = \koc ->
+	 let
+	   x = koc; 
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "e";
+	     SF Sg VocP => x + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Nom => x + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in 
+-- a hardened consonant: -ż, -rz, -c, -cz, -dz
+-- (kapelusz, księżyc)
+-- 74 paradigm by Grzegorz Jagodziński 
+-- 74 by Nowak
+-- oper nWiersz for księżyc, kapelusz in GF lexicon
+
+  oper hardened_End_MI_2 : Str -> CommNoun = \wiersz ->
+	 let
+	   x = wiersz; 
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => x + "em";
+	     SF Sg Loc => x + "e";
+	     SF Sg VocP => x + "e";
+	     SF Sg _ => x + "a";
+	     SF Pl Gen => x + "y";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate for "dzień"
+-- 76** paradigm by Grzegorz Jagodziński 
+-- 76** by Nowak
+-- oper nDzien for dzień in GF lexicon
+
+  oper dzien_MI : Str -> CommNoun = \dzien ->
+	 let
+	   x = fleetingLettersMinus dzien; -- dń
+	   y = consAlt x; -- dń:dn
+	   z = consLength y; -- dn:dni
+	 in
+     	 { s = table { 
+	     SF Sg Nom => dzien;
+	     SF Sg Dat => z + "u";
+	     SF Sg Instr => z + "em";
+	     SF Sg Loc => z + "e";
+	     SF Sg VocP => z + "e";
+	     SF Sg _ => z + "a";
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => y + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -k, -g
+-- consonant lengthening 
+-- (ranek, skrawek, Owtock, Hamburg, drąg)
+-- 77 paradigm by Grzegorz Jagodziński 
+-- 77_1 by Nowak
+-- oper nKajak for język, patyk in GF lexicon
+
+  oper g_k_End_CL_MI_1 : Str -> CommNoun = \kajak ->
+	 let
+	   x = kajak;
+	   y = consLength kajak; -- kajaki
+	 in
+     	 { s = table { 
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Instr => y + "em";
+	     SF Sg Loc => x + "u";
+	     SF Sg VocP => x + "u";
+	     SF Sg _ => x ;
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ek
+-- fleeting e minus
+-- (fiołek, garnek, podkoszulek, przecinek, Włocławek)
+-- 77* paradigm by Grzegorz Jagodziński 
+-- 70* by Nowak
+-- oper nMlotek for ołówek in GF lexicon
+
+  oper k_End_CL_FleetingEminus_MI : Str -> CommNoun = \mlotek ->
+	 let
+	   x = fleetingEminus mlotek; -- mlotk
+	   y = consLength x; -- mlotki
+	 in
+     	 { s = table { 
+	     SF Sg Nom => mlotek;
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => mlotek;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ch
+-- (bebech, Wałbrzych, brzuch, łańcuch)
+-- 78 paradigm by Grzegorz Jagodziński 
+-- 78_1 by Nowak
+-- oper nMiech for brzuch in GF lexicon
+
+  oper ch_End_MI : Str -> CommNoun = \miech ->
+	 let
+	   x = miech;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "a";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in a hard consonant
+-- consonant alternation and lengthening
+-- 82 paradigm by Grzegorz Jagodziński 
+-- 82_1_1 by Nowak
+-- oper nSad for samotot, uniwersytet, port, sufit in GF lexicon
+
+  oper hard_End_CAL_MI : Str -> CommNoun = \sad ->
+	 let
+	   x = sad;
+	   y = consLength (consAlt x); -- sadzi
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in a hard consonant
+-- consonant lengthening
+-- 82 paradigm by Grzegorz Jagodziński 
+-- 82_1_2 by Nowak
+-- oper nDym for dym, dywan, sklep in GF lexicon
+
+  oper hard_End_CL_MI : Str -> CommNoun = \dym ->
+	 let
+	   x = dym;
+	   y = consLength x; -- dymi
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in 
+-- a hard consonant -ł, -r
+-- consonant alternation
+-- (artykuł, finał, kryształ, materiał)
+-- 82 paradigm by Grzegorz Jagodziński 
+-- 82_2 + 82_3 by Nowak
+-- oper nWal for przemysł, papier, rower in GF lexicon
+ 
+  oper hard_End_CA_MI : Str -> CommNoun = \wal ->
+	 let
+	   x = wal;
+	   y = consAlt x; -- wał:wal
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ó + hard consonant
+-- vowel and consonant alternation
+-- (rosół, zespół, otwór, wodór )
+-- 82' paradigm by Grzegorz Jagodziński 
+-- 82' by Nowak
+-- oper nDol for stól in GF lexicon
+
+  oper hard_End_VA1_CA_MI : Str -> CommNoun = \dol ->
+	 let
+	   x = vowAlt1 dol; -- dół:doł
+	   y = consAlt x; -- doł:dol
+	 in
+     	 { s = table { 
+	     SF Sg Nom => dol;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => dol;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+       
+       
+-- oper for masculine inanimate ending in -ó + hard consonant
+-- vowel and consonant alternation
+-- (obwód, wschód, przewód, rozwód)
+-- 82' paradigm by Grzegorz Jagodziński 
+-- 82' by Nowak
+-- oper nOgrod for ogród, lód, samochód in GF lexicon
+
+  oper hard_End_VA1_CAL_MI : Str -> CommNoun = \ogrod ->
+	let
+	  x = vowAlt1 ogrod; -- ogród:ogrod
+	  y = consLength (consAlt x); -- ogrod:ogrodz:ogrodzi
+	 in
+     	{ s = table { 
+	    SF Sg Nom => ogrod;
+	    SF Sg Gen => x + "u";
+	    SF Sg Dat => x + "owi";
+	    SF Sg Acc => ogrod;
+	    SF Sg Instr => x + "em";
+	    SF Sg _ => y + "e";
+	    SF Pl Gen => x + "ów";
+	    SF Pl Dat => x + "om";
+	    SF Pl Instr => x + "ami";
+	    SF Pl Loc => x + "ach";
+	    SF Pl _ => x + "y" 
+            };
+	  g = Masc Inanimate
+	};
+      
+
+-- oper for masculine inanimate ending in a hard consonant
+-- vowel alternation,
+-- consonant alternation and lengthening
+-- (najazd, wszechświat, przyjazd)
+-- 82^ paradigm by Grzegorz Jagodziński 
+-- 82^_1_1 by Nowak
+-- oper nKwiat for kwiat in GF lexicon
+
+  oper hard_End_VA2_CAL_MI : Str -> CommNoun = \kwiat ->
+	 let
+	   x = kwiat;
+	   y = vowAlt2 kwiat; -- kwiet
+	   z = consLength (consAlt y); -- kwiet:kwiec:kwieci
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => z + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in a hard consonant
+-- vowel alternation,
+-- consonant lengthening
+-- 82^ paradigm by Grzegorz Jagodziński 
+-- 82^_1_2 by Nowak
+-- oper nLas for las in GF lexicon
+
+  oper hard_End_VA2_CL_MI : Str -> CommNoun = \las ->
+	 let
+	   x = las;
+	   y = consLength (vowAlt2 x); -- las:les:lesi
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+
+-- oper for masculine inanimate for wiatr
+-- vowel alternation,
+-- consonant alternation
+-- 82^ paradigm by Grzegorz Jagodziński 
+-- 82^_2 by Nowak
+-- oper nWiatr for wiart in GF lexicon
+  
+  oper wiatr_VA2_CA_MI : Str -> CommNoun = \wiatr ->
+	 let
+	   x = wiatr;
+	   y = consAlt (vowAlt2 x); -- wiatr:wietr:wietrz
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate for "popiół"
+-- vowel and consonant alternation
+-- 82^' paradigm by Grzegorz Jagodziński 
+-- 82^' by Nowak
+-- oper nPopiol for popiół in GF lexicon
+
+  oper popiol_VA2_CA_MI : Str -> CommNoun = \popiol ->
+	 let
+	   x = vowAlt1 popiol; -- popiół:popioł
+	   y = consAlt (vowAlt2 x); -- popioł:popieł:popiel
+	 in
+     	 { s = table { 
+	     SF Sg Nom => popiol;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => popiol;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => y + "e";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ój
+-- vowel alternation
+-- last minus
+-- (powój, drobnoustrój, strój, zwój)
+-- 85' paradigm by Grzegorz Jagodziński (in the big table)
+-- 85'_1 by Nowak
+-- oper nPokoj for pokój in GF lexicon
+
+  oper onlySgNoun : Str -> CommNoun = \pokoj ->
+	 let
+	   x = vowAlt1 pokoj; -- pokój:pokoj
+	   y = last1Minus x; -- poko
+	 in
+     	 { s = table { 
+	     SF Sg Nom => pokoj;
+	     SF Sg Gen => x + "u";
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => pokoj;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl _ => "[" ++ pokoj ++ [": the plural form does not exist]"]
+             };
+	   g = Masc Inanimate
+	 };
+
+-- oper for masculine inanimate ending in a vowel + -j
+-- (obyczaj, tramwaj, przywilej, klej) or in a 
+-- hardened consonant -ż, -rz, -c, -cz, -dz
+-- (Asyż, marsz, pieprz, szkic, wyż, mosiądz)
+-- 85 paradigm by Grzegorz Jagodziński 
+-- 85_1 + 85_3 by Nowak
+-- oper nGaj for kraj, olej, deszcz, owoc in GF lexicon
+
+  oper vowel_j_or_handened_End_MI : Str -> CommNoun = \gaj ->
+	 let
+	   x = gaj;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "e" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in consonants -g, -k
+-- (blok, dotyk, Kołobrzeg, Bug)
+-- 87 paradigm by Grzegorz Jagodziński 
+-- 87 by Nowak
+-- oper nBrzeg for bank, kark in GF lexicon
+  
+  oper g_k_End_CL_MI_2 : Str -> CommNoun = \brzeg ->
+	 let
+	   x = brzeg;
+	   y = consLength x; 
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate only for rok
+-- 87@ paradigm by Grzegorz Jagodziński 
+-- 87@ by Nowak
+-- oper nRok for rok in GF lexicon
+
+  oper rok_UnregularyPl_CL_MI : Str -> Str -> CommNoun = \rok, lata ->
+	 let
+	   x = rok;
+	   y = consLength x;
+	   z = last1Minus lata;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => z;
+	     SF Pl Dat => z + "om";
+	     SF Pl Instr => z + "ami";
+	     SF Pl Loc => z + "ach";
+	     SF Pl _ => z + "a" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -óg
+-- (stóg, głóg, barłóg)
+-- 87' paradigm by Grzegorz Jagodziński 
+-- 87' by Nowak
+-- oper nProg for róg in GF lexicon
+  
+  oper ug_End_VA1_CL_MI : Str -> CommNoun = \prog ->
+	 let
+	   x = vowAlt1 prog;
+	   y = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => prog;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => prog;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ek
+-- (poniedziałek, obiadek, proszek, początek)
+-- 87* paradigm by Grzegorz Jagodziński 
+-- 87* by Nowak
+-- oper nStatek for piasek in GF lexicon
+
+  oper k_End_CL_FleetingEmins_MI : Str -> CommNoun = \statek ->
+	 let
+	   x = fleetingEminus statek; -- statk
+	   y = consLength x;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => statek;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => statek;
+	     SF Sg Instr => y + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "i" 
+             };
+	   g = Masc Inanimate
+	 };
+
+
+-- oper for masculine inanimate ending in -ch and for dom
+-- (oddech, uśmiech, zamach, strych)
+-- 88 paradigm by Grzegorz Jagodziński 
+-- 88_1 + 88_2 by Nowak
+-- oper nDom for dom, dach in GF lexicon
+
+  oper ch_End_dom_MI : Str -> CommNoun = \dom ->
+	 let
+	   x = dom;
+	 in
+     	 { s = table { 
+	     SF Sg Nom => x;
+	     SF Sg Dat => x + "owi";
+	     SF Sg Acc => x;
+	     SF Sg Instr => x + "em";
+	     SF Sg _ => x + "u";
+	     SF Pl Gen => x + "ów";
+	     SF Pl Dat => x + "om";
+	     SF Pl Instr => x + "ami";
+	     SF Pl Loc => x + "ach";
+	     SF Pl _ => x + "y" 
+             };
+	   g = Masc Inanimate
+	 };
+	 
+--8 Patterns of auxiliary operations mostly used for nouns 
+
+-- for consonant alternation k:c, g:dz at the end of the subject, 
+-- or at the end of the noun
+  
+  oper consAlt : Str -> Str = \s -> 
+	 case s of 
+	 { x + "ch" + ("a"|"i"|"e"|"o"|"") => x + "sz" ; -- mucha:musze, klecha:klesze
+	   x + "ch" + "y" => x + "s" ; -- głuchy:głusi
+	   x + "sn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śn" ; -- wiosna:wiośnie
+	   x + "st" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śc" ; -- artysta:artyście
+	   x + "sł" + ("a"|"i"|"e"|"o"|"y"|"") => x + "śl" ; -- krzesło:krześle, masło:maśle
+	   x + "dz" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ż" ; -- ksiądz:księża
+	   x + "dź" + ("a"|"i"|"e"|"o"|"y"|"") => x + "dz" ; -- łódź:łodzi
+	   x + "zn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "źn" ; -- meżczyzna:mężczyźnie
+	   x + "zd" + ("a"|"i"|"e"|"o"|"y"|"") => x + "źdz" ; -- gniazdo:gnieździe
+	   x + "ni" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ń" ; -- danie:dań
+	   x + "ci" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ć" ;
+	   x + "sz" + ("a"|"i"|"e"|"o"|"y"|"") => x + "s" ;
+	   -----------------------------------------------------------------------
+	   -- The alternation of one consonant has to be behind the alternation of
+	   -- two other consonants, else they aren't checked.
+	   x + "o" + "k" + "o" => "o" + "cz" ;-- oko:oczy
+	   x + "ć" + ("a"|"i"|"e"|"o"|"y"|"") => x + "c" ; --sieć:sieci
+	   x + "j" + "c" => x + "j" + "cz" ; -- ojciec:ojc:ojcze
+	   x + "op" + "c" => x + "op" + "cz" ; -- chłopiec:chłopc:chłopcze
+	   x + "ie" + "c" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ie" + "ć" ; -- dziecko:dziećmi
+	   x + "óg" + "" => x + "óż" ; -- bóg:boże
+	   x + "l" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ł" ; -- przyjaciel:przyjaciół
+	   x + "ł" + ("a"|"i"|"e"|"o"|"y"|"") => x + "l" ; -- siła:sile, biegły:biegli
+	   x + "yn" + ("a"|"i"|"e"|"o"|"y"|"") => x + "yn" ;
+	   x + "n" + ("a"|"i"|"e"|"o"|"y"|"") => x + "n" ;
+	   x + "ń" + ("a"|"i"|"e"|"o"|"y"|"") => x + "n" ; -- dzień:dni ,pień:pni, cień:cieni
+	   x + "r" + ("a"|"i"|"e"|"o"|"y"|"") => x + "rz" ; -- nora:norze, psychiatra:psychiatrze
+	   x + "ś" + ("a"|"i"|"e"|"o"|"y"|"") => x + "s" ; -- pierś:piersi
+	   x + "ź" + ("a"|"i"|"e"|"o"|"y"|"") => x + "z" ;
+	   x + ("g"|"d") + ("a"|"i"|"e"|"o"|"y"|"") => x + "dz" ; -- noga:nodze; sługa:słudze
+	   x + ("k"|"t") + ("a"|"i"|"e"|"o"|"y"|"") => x + "c" ;  -- apteka:aptece; moneta:monecie, tata:tacie
+	   x + "c" + ("a"|"i"|"e"|"o"|"y"|"") => x + "ć" ; --brat:bracie:braćmi	   
+	   x + "ż" + ("a"|"i"|"e"|"o"|"y"|"") => x + "z" ;
+	   _ => last1Minus s  
+	 } ;
+
+ 
+
+-- Auxiliary operation for consonant lengthening 
+-- The consonant in polish is lengthened by a vowel "i"
+-- łódź:łodzi, krew:krwi, wieś:wsi
+
+  oper consLength : Str -> Str = \s ->
+	 case s of 
+	 { x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + ("a"|"u"|"e"|"o"|"")  
+	     => x + y + "i" 
+	 } ;
+       
+-- Auxiliary operation for vowel alternation 
+-- o:ó (droga:dróg); 
+-- ó:o (nierób:nieroba, łódź:łodzi)
+
+  oper vowAlt1 : Str -> Str = \s ->
+	 case s of 
+	 { --------------- o:ó -----------------------------------
+	   -- 1. nouns ending in a vowel after a consonant
+	   -- or in a consonant: woda:wód , doba:dób
+	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|   
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + ("a"|"e"|"o"|"y"|"") => u + "ó" + w ;
+	   -- 2. nouns ending in a vowel after two consonants
+	   -- or in two consonants
+	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + ("a"|"e"|"o"|"y"|"") => u + "ó" + w + x ;
+	   -- 3. nouns ending in a vowel after three consonants,
+	   -- needed for declension of siostra in nSzkola
+	   -- siostra:sióstr 
+	   u + "o" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + x@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + y@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"")
+	     + ("a"|"e"|"o"|"y"|"")=> u + "ó" + w + x + y;
+	   -------------------------------------------------------
+	   --------------- ó:o -----------------------------------
+	   -------------------------------------------------------
+	   ---- 1. nouns ending in a vowel after a consonant
+	   --  łódź:łodzi, sól:soli 
+	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + ("a"|"e"|"o"|"y"|"") => u + "o" + w ;
+	   ---- 2. nouns ending in a vowel after two consonants
+	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + ("a"|"e"|"o"|"y"|"") => u + "o" + w + x ;
+	   ---- 3. nouns ending in a vowel after three consonants
+	   u + "ó" + w@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|  
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + x@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + y@("a"|"e"|"o"|"y"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"")
+	     + ("a"|"e"|"o"|"y"|"")=> u + "o" + w + x + y;
+	   _ => s
+	     } ;
+
+
+-- Auxiliary operation for the following vowel alternations:
+-- a:e (sąsiad:sąsiedzie, światło:świetle),
+-- o:e (anioł:aniele, uczony:uczeni),
+-- e:o (nasienie: nasiona, ziele:zioła),
+-- ę:o (imię:imiona, znamię:znamiona)
+
+  oper vowAlt2 : Str -> Str = \s ->
+	 case s of 
+	 { ------------------- a:e, o:e, ó:e -----------------------
+	   w + ("a"|"o"|"ó") + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+				"g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+				"p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+				"w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + ("a"|"e"|"o"|"y"|"") => w + "e" + x + y ;
+	   ----------------------- e:o, ę:o ------------------------
+	   w + ("e"|"ę") + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+				"g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+				"p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+				"w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + y@("a"|"e"|"o"|"y"|"i"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") 
+	     + ("a"|"e"|"o"|"y"|"i"|"") => w + "o" + x + y ;
+	   _ => s
+	 } ;
+
+-- Auxiliary operation for a vowel alternation:
+-- ą:ę (gołąb:gołębia, mąż:męża, ksiądz:księdza),
+-- ę:ą (ręka:rąk, cielę:cieląt)
+
+  oper vowAlt3 : Str -> Str = \s ->
+	 case s of 
+	 { ---------------------- ą:ę -----------------------
+	   -- noun ending in a consonant
+	   x + "ą" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"sł"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd"|"") => x + "ę" + y ; 
+          --------------------- ą:ę -----------------------
+	   -- noun ending in a vowel
+	   x + "ą" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd") 
+	     + ("a"|"o"|"y"|"i") => x + "ę" + y ;
+          --------------------- ę:ą -----------------------
+	   -- noun ending in a consonant
+	   x + "ę" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd"|"") => x + "ą" + y ; 
+         --------------------- ę:ą -----------------------
+	   -- noun ending in a vowel
+	   x + "ę" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"| 
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"zd") 
+	     + ("a"|"o"|"y"|"i") => x + "ą" + y ;
+	   _ => s 
+	 } ;
+
+
+-- The predefined opers like init, drop, take, don't 
+-- work correctly with the letters, that are typical only for 
+-- polish language. Therefore I must define my own function 
+-- (last1Minus, last7Minus, my5Last, my8Last)
+-- that work with polish signs (ą, ć, ę, ł, ń, ś, ó, ź, ż, dź, dż).
+-- These opers are needed f.e. for the verb conjugation.
+
+
+-- last1Minus functions work with first (until eight) letters
+-- of a word 
+
+  oper last1Minus : Str -> Str = \s ->
+	 case s of 
+	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
+	   _ => s
+	 } ;
+     
+       
+  oper last2Minus : Str -> Str = \s ->
+	 case s of 
+	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
+	   _ => s
+	 } ;
+       
+              
+  oper last3Minus : Str -> Str = \s ->
+	 case s of 
+	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
+	   _ => s
+	 } ;
+       
+
+  oper last4Minus : Str -> Str = \s ->
+	 case s of 
+	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
+	   _ => s
+	 } ;
+
+       
+  oper last5Minus : Str -> Str = \s ->
+	 case s of 
+	 { w + ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     ("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w;
+            _ => s
+	 } ;
+       
+       
+----------------------------------------------------------------------------------------
+-- my1Last functions work with last (until eight) letters
+-- of words
+
+  oper my1Last : Str -> Str = \s ->
+	 case s of 
+	 { t + z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => z
+	 } ;
+       
+
+  oper my2Last: Str -> Str = \s ->
+	 case s of 
+	 { t + y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => y + z
+	 } ;
+       
+       
+  oper my3Last : Str -> Str = \s ->
+	 case s of 
+	 { t + x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => x + y + z;
+	   _ => s
+	 } ;
+
+
+  oper my4Last : Str -> Str = \s ->
+	 case s of 
+	 { t + w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż"|"") +
+	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => w + x + y + z
+	 } ;
+
+       
+       
+  oper my5Last : Str -> Str = \s ->
+	 case s of 
+	 { t + u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => u + w + x + y + z
+	 } ;
+
+
+  oper my6Last : Str -> Str = \s ->
+	 case s of 
+	 { r + t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") => t+ u + w + x + y + z
+	 } ;
+
+
+  oper my7Last : Str -> Str = \s ->
+	 case s of 
+	 { r + q@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     => q + t + u + w + x + y + z
+	 } ;
+
+
+
+  oper my8Last : Str -> Str = \s ->
+	 case s of 
+	 { r + p@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     q@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"| 
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     t@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     u@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     w@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") + 
+	     x@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +
+	     y@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") +	    
+	     z@("a"|"ą"|"b"|"c"|"ć"|"ch"|"cz"|"d"|"e"|"ę"|"f"| 
+		  "g"|"h"|"i"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|"o"|"ó"|
+		  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|"u"|
+		  "w"|"y"|"z"|"ź"|"ż"|"dz"|"dź"|"dż") 
+	     => p + q + t + u + w + x + y + z
+	 } ;
+
+
+       
+-- Auxiliary operation for fleeting e-plus for
+-- nouns ending in a vowel like matka
+-- subject ending in more than one consonant
+-- s. St. Szober, page 184
+-- matka:matek, wojna:wojen, skrzydło:skrzydeł 
+
+  oper fleetingEplus : Str -> Str = \s ->
+      	 case s of {
+	   x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
+	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
+	     + ("a"|"o"|"y"|"")  => x + y + "e" + z 
+	 } ;
+
+       
+-- Auxiliary operation for fleeting e-minus for
+-- nouns ending in a consonant like krew, konew
+-- wesz:wszy, krew:krwi, młotek:młotka
+
+  oper fleetingEminus : Str -> Str = \krew ->
+	 case krew of 
+	 { w + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
+	     + "e" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+			  "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+			  "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			  "w"|"z"|"ź"|"ż"|"dź"|"dż") => w + x + y ;
+	   x + "ie" => x + "i" ;
+	   x + "e" => x
+	 } ;
+
+
+  
+-- Auxiliary operation for fleeting ie-plus for
+-- nouns like mgła, owca
+-- mgła:mgiel, owca:owiec
+
+  oper fleetingIEplus : Str -> Str = \s ->
+      	 case s of {
+	   x + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż") 
+	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
+	     + ("a"|"o"|"y"|"")  => x + y + "ie" + z 
+	 } ;
+       
+
+
+-- Auxiliary operation for fleeting ie-minus for
+-- nouns ending in a consonant like wieś
+-- wieś:wsi, pies:psa, pień:pnia
+
+  oper fleetingIEminus : Str -> Str = \wies ->
+	 case wies of 
+	 { w + x@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|		  
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
+	     + "ie" + y@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+			   "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|
+			   "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+			   "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") 
+	     + z@("b"|"c"|"ć"|"ch"|"cz"|"d"|"f"|
+		    "g"|"h"|"j"|"k"|"l"|"ł"|"m"|"n"|"ń"|
+		    "p"|"r"|"rz"|"s"|"ś"|"sz"|"t"|
+		    "w"|"z"|"ź"|"ż"|"dź"|"dż"|"") => w + x + y + z ;
+	   x + "ie" => x 
+	 } ;
+
+
+-- An operation for fleeting letters-minus for
+-- nouns ending in a consonant like chrzest, dzień
+-- Not only "ie", but other letters like "zie", "est"
+-- must sometimes be put away together.  
+-- chrzest:chrztu, dzień:dnia
+
+	    oper fleetingLettersMinus : Str -> Str = \s ->
+		   case s of 
+		   { d + "zie" + "ń" => d + "n" ; -- dzień:dń
+		     d + "est" => d + "t" -- chrzest:chrzt
+		   } ;
+
+
+}
diff --git a/lib/src/polish/ParadigmsPol.gf b/lib/src/polish/ParadigmsPol.gf
--- a/lib/src/polish/ParadigmsPol.gf
+++ b/lib/src/polish/ParadigmsPol.gf
@@ -30,57 +30,58 @@
    resource ParadigmsPol = open 
      (Predef=Predef), 
      Prelude, 
-     MorphoPol,
+     OrigMorphoPol,
+     (MorphoPol = OrigMorphoPol),
      CatPol
   in 
      {
-  flags  coding=utf8 ;
+  flags  coding=utf8;
 
 
- oper Gender = MorphoPol.Gender ;
-      Case = MorphoPol.Case ;
-      Number = MorphoPol.Number ;
-      Animacy = MorphoPol.Animacy ;
-      Aspect = MorphoPol.Aspect ;
---       Voice = MorphoPol.Voice ;
---  Tense = Tense ;
-      Bool = Prelude.Bool ;
+ oper Gender = MorphoPol.Gender;
+      Case = MorphoPol.Case;
+      Number = MorphoPol.Number;
+      Animacy = MorphoPol.Animacy;
+      Aspect = MorphoPol.Aspect;
+--       Voice = MorphoPol.Voice;
+--  Tense = Tense;
+      Bool = Prelude.Bool;
 
 
 -- Used abbreviations 
 
-      masculineA = Masc Animate ;
-      masculineI = Masc Inanimate ;
-      masculineP = Masc Personal ;
-      feminine  = Fem ;
-      neuter = Neut ;
-      nominative = Nom ;
-      genitive = Gen ;
-      dative = Dat ;
-      accusative = Acc ;
-      instrumental = Instr ; -- new, is like instrumental in russian
-      locative = Loc ; -- new, is like prepositional in russian
-      vocative = VocP ;
-      singular = Sg ;
-      plural = Pl ;
-      animate = Animate ;
-      inanimate = Inanimate ;
-      personal = Personal ;
+      masculineA = Masc Animate;
+      masculineI = Masc Inanimate;
+      masculineP = Masc Personal;
+      feminine  = Fem;
+      neuter = Neut;
+      nominative = Nom;
+      genitive = Gen;
+      dative = Dat;
+      accusative = Acc;
+      instrumental = Instr; -- new, is like instrumental in russian
+      locative = Loc; -- new, is like prepositional in russian
+      vocative = VocP;
+      singular = Sg;
+      plural = Pl;
+      animate = Animate;
+      inanimate = Inanimate;
+      personal = Personal;
 
-      true = True ;
-      false = False ;
+      true = True;
+      false = False;
             
 --1 Nouns
 
 --  Parameters  --------
 
-    Gender : Type ;
+    Gender : Type;
 
-    masculineP : Gender ; -- personal
-    masculineA : Gender ; -- animate
-    masculineI : Gender ; -- inanimate
-    feminine   : Gender ;
-    neuter     : Gender ;
+    masculineP : Gender; -- personal
+    masculineA : Gender; -- animate
+    masculineI : Gender; -- inanimate
+    feminine   : Gender;
+    neuter     : Gender;
 
 -- In Polish there are as in German 3 Genders: masculine, feminine and neuter.
 -- But !!! in masculine declension we distinguish between:
@@ -95,22 +96,22 @@
 
 
 -- Animacy is only for masculine Nouns.
-    Animacy: Type ; 
+    Animacy: Type; 
     
-    animate: Animacy ;
-    inanimate: Animacy ; 
-    personal : Animacy ;
+    animate: Animacy;
+    inanimate: Animacy; 
+    personal : Animacy;
 
 
-    Case : Type ;
+    Case : Type;
 
-    nominative    : Case ;
-    genitive      : Case ;
-    dative        : Case ;
-    accusative    : Case ; 
-    instrumental  : Case ;
-    locative      : Case ;
-    vocative      : Case ;    
+    nominative    : Case;
+    genitive      : Case;
+    dative        : Case;
+    accusative    : Case; 
+    instrumental  : Case;
+    locative      : Case;
+    vocative      : Case;    
 
 -- To abstract over case names, I defined seven cases.
 -- The seventh case vocative is like in english the phrase
@@ -123,23 +124,23 @@
 
                  
 -- To abstract over number names, I define the following.
-    Number : Type ;
+    Number : Type;
 
-    singular : Number ;
-    plural   : Number ;
+    singular : Number;
+    plural   : Number;
 
 
 --1 Paradigms
 
 -- Best case is for indeclinable nouns. They are: "alibi", "boa", "emu", "jury", "kakao", "menu", "zebu".
 
-  mkIndeclinableNoun: Str -> Gender -> N ; --function declaration
+  mkIndeclinableNoun: Str -> Gender -> N; --function declaration
   
   mkIndeclinableNoun = \str, g ->     -- function definition
   {
-     s = table { SF _ _ => str } ;
+     s = table { SF _ _ => str };
      g = g 
-  } ** {lock_N = <>} ;
+  } ** {lock_N = <>};
 
 
 -- Worst case gives many forms.
@@ -168,457 +169,328 @@
 
 ---------- Patterns for feminine nouns ----------
 
-  nKapiel : Str -> N ; -- feminine, subject ending in "-l"
-  nKapiel = \s -> l_End_F_1 s ** {lock_N = <>} ; 
+  nKapiel : Str -> N; -- feminine, subject ending in "-l"
+  nKapiel = \s -> l_End_F_1 s ** {lock_N = <>}; 
 
-  nLodz : Str -> N ; -- feminine, subject ending in "-dź"
-  nLodz = \x -> dzx_End_VA1_CAL_F x ** {lock_N = <>} ;
+  nLodz : Str -> N; -- feminine, subject ending in "-dź"
+  nLodz = \x -> dzx_End_VA1_CAL_F x ** {lock_N = <>};
   
-  nSul : Str -> N ; -- feminine, subject ending in "-l"
-  nSul = \x -> l_End_VA1_F x ** {lock_N = <>} ;
+  nSul : Str -> N; -- feminine, subject ending in "-l"
+  nSul = \x -> l_End_VA1_F x ** {lock_N = <>};
              
-  nKonew : Str -> N ; -- feminine, subject ending in "-w"
-  nKonew = \s -> w_End_FleetingEminus_F s ** {lock_N = <>} ;
+  nKonew : Str -> N; -- feminine, subject ending in "-w"
+  nKonew = \s -> w_End_FleetingEminus_F s ** {lock_N = <>};
 
-  nWies : Str -> N ; -- feminine, subject ending in "-ś"
-  nWies = \x -> sx_End_CAL_FleetingIEminus_F x ** {lock_N = <>} ;
+  nWies : Str -> N; -- feminine, subject ending in "-ś"
+  nWies = \x -> sx_End_CAL_FleetingIEminus_F x ** {lock_N = <>};
 
-  nDlon : Str -> N ; -- feminine, subject ending in "-ń"
-  nDlon = \x -> nx_End_CAL_F x ** {lock_N = <>} ;
+  nDlon : Str -> N; -- feminine, subject ending in "-ń"
+  nDlon = \x -> nx_End_CAL_F x ** {lock_N = <>};
 
-  nSiec : Str -> N ; -- feminine, subject ending in "-ć" (sieć),"-ść" (miłość)
-  nSiec = \x -> cx_End_CAL_F_1 x ** {lock_N = <>} ;
+  nSiec : Str -> N; -- feminine, subject ending in "-ć" (sieć),"-ść" (miłość)
+  nSiec = \x -> cx_End_CAL_F_1 x ** {lock_N = <>};
 
-  nDrzwi : Str -> N ; -- drzwi, wnętrzności, usta
-  nDrzwi = \x -> onlyPlNoun x ** {lock_N = <>} ;
+  nDrzwi : Str -> N; -- drzwi, wnętrzności, usta
+  nDrzwi = \x -> onlyPlNoun x ** {lock_N = <>};
 
-  nKosc : Str -> N ; -- feminine, subject ending in "-ść"(kość), "-ć" (nić),
-  nKosc = \x -> cx_End_CAL_F_2 x ** {lock_N = <>} ;
+  nKosc : Str -> N; -- feminine, subject ending in "-ść"(kość), "-ć" (nić),
+  nKosc = \x -> cx_End_CAL_F_2 x ** {lock_N = <>};
 
-  nNoc : Str -> N ; -- feminine, subject ending in "-c", "-cz", "-rz", "-ż"
-  nNoc = \s -> hardened_End_F_1 s ** {lock_N = <>} ;
+  nNoc : Str -> N; -- feminine, subject ending in "-c", "-cz", "-rz", "-ż"
+  nNoc = \s -> hardened_End_F_1 s ** {lock_N = <>};
 
-  nWesz : Str -> N ; -- feminine, subject ending in "-sz"
-  nWesz = \s -> sz_End_FleetingEminus_F s ** {lock_N = <>} ;
+  nWesz : Str -> N; -- feminine, subject ending in "-sz"
+  nWesz = \s -> sz_End_FleetingEminus_F s ** {lock_N = <>};
 
-  nKrolowa : Str -> N ; -- feminine, subject ending in "-wa", but also for "księżna"
-  nKrolowa = \s -> wa_na_End_F s ** {lock_N = <>} ;
+  nKrolowa : Str -> N; -- feminine, subject ending in "-wa", but also for "księżna"
+  nKrolowa = \s -> wa_na_End_F s ** {lock_N = <>};
 
-  nReka : Str -> N ; -- feminine "ręka", irregularly noun
-  nReka = \x -> k_End_Unregulary_VA3_CA_F x ** {lock_N = <>} ;
+  nReka : Str -> N; -- feminine "ręka", irregularly noun
+  nReka = \x -> k_End_Unregulary_VA3_CA_F x ** {lock_N = <>};
 
-  nApteka : Str -> N ; -- feminine, subject ending in "-k", -"g", consonant alternation k:c, g:dz
-  nApteka = \s -> g_k_End_CA_F s ** {lock_N = <>} ; 
+  nApteka : Str -> N; -- feminine, subject ending in "-k", -"g", consonant alternation k:c, g:dz
+  nApteka = \s -> g_k_End_CA_F s ** {lock_N = <>}; 
 
-  nDroga : Str -> N ; -- feminine, subject ending in "g", consonant alternation d:dz, vowel alternation o:ó
-  nDroga = \s -> g_End_VA1_CA_F s ** {lock_N = <>} ;      
+  nDroga : Str -> N; -- feminine, subject ending in "g", consonant alternation d:dz, vowel alternation o:ó
+  nDroga = \s -> g_End_VA1_CA_F s ** {lock_N = <>};      
      
-  nMatka : Str -> N ; -- feminine, subject ending in -k,consonant alternation k:c, fleeting e
-  nMatka = \s -> k_End_CA_FleetingEplus_F s ** {lock_N = <>} ;
+  nMatka : Str -> N; -- feminine, subject ending in -k,consonant alternation k:c, fleeting e
+  nMatka = \s -> k_End_CA_FleetingEplus_F s ** {lock_N = <>};
 
-  nZiemia : Str -> N ; -- feminine, subject ending in "-ia"
-  nZiemia = \s -> ia_End_F_1 s ** {lock_N = <>} ;
+  nZiemia : Str -> N; -- feminine, subject ending in "-ia"
+  nZiemia = \s -> ia_End_F_1 s ** {lock_N = <>};
 
-  nFala : Str -> N ; -- feminine, subject ending in "-l"
-  nFala = \s -> l_End_F_2 s ** {lock_N = <>} ;
+  nFala : Str -> N; -- feminine, subject ending in "-l"
+  nFala = \s -> l_End_F_2 s ** {lock_N = <>};
 
-  nLilia : Str -> N ; -- feminine, subject ending in "-ia"
-  nLilia = \s -> ia_End_F_2 s ** {lock_N = <>} ;
+  nLilia : Str -> N; -- feminine, subject ending in "-ia"
+  nLilia = \s -> ia_End_F_2 s ** {lock_N = <>};
 
-  nKobieta : Str -> N ; -- feminine, subject ending in "-t"
-  nKobieta = \s -> hard_End_CAL_F s ** {lock_N = <>} ;
+  nKobieta : Str -> N; -- feminine, subject ending in "-t"
+  nKobieta = \s -> hard_End_CAL_F s ** {lock_N = <>};
 
-  nLiczba : Str -> N ; -- feminine, subject ending in "-b", "-p", "-n"
-  nLiczba = \s -> hard_End_CL_F s ** {lock_N = <>} ;
+  nLiczba : Str -> N; -- feminine, subject ending in "-b", "-p", "-n"
+  nLiczba = \s -> hard_End_CL_F s ** {lock_N = <>};
 
-  nSila : Str -> N ; -- feminine, subject ending in "-ł", "-r"
-  nSila = \s -> hard_End_CA_F s ** {lock_N = <>} ;
+  nSila : Str -> N; -- feminine, subject ending in "-ł", "-r"
+  nSila = \s -> hard_End_CA_F s ** {lock_N = <>};
 
-  nDoba : Str -> N ; -- feminine, subject ending in "-b", "-p"
-  nDoba = \s -> hard_End_VA1_CL_F s ** {lock_N = <>} ;
+  nDoba : Str -> N; -- feminine, subject ending in "-b", "-p"
+  nDoba = \s -> hard_End_VA1_CL_F s ** {lock_N = <>};
 
-  nWoda : Str -> N ; -- feminine, subject ending in "-d"
-  nWoda = \s -> hard_End_VA1_CAL_F s ** {lock_N = <>} ;
+  nWoda : Str -> N; -- feminine, subject ending in "-d"
+  nWoda = \s -> hard_End_VA1_CAL_F s ** {lock_N = <>};
 
-  nSzkola : Str -> N ; -- feminine, subject ending in "-oła", "-ra"
-  nSzkola = \s -> hard_End_VA1_CA_F s ** {lock_N = <>} ;
+  nSzkola : Str -> N; -- feminine, subject ending in "-oła", "-ra"
+  nSzkola = \s -> hard_End_VA1_CA_F s ** {lock_N = <>};
 
-  nWojna : Str -> N ; -- feminine, subject ending in two consonants: jn, łz, łn, ćm,żw 
-  nWojna = \s -> hard_End_CL_FleetingEplus_F s ** {lock_N = <>} ;
+  nWojna : Str -> N; -- feminine, subject ending in two consonants: jn, łz, łn, ćm,żw 
+  nWojna = \s -> hard_End_CL_FleetingEplus_F s ** {lock_N = <>};
 
-  nWiosna : Str -> N ; -- feminine, subject ending in two consonants: sn 
-  nWiosna = \s -> sn_End_CAL_FleetingIEplus_F s ** {lock_N = <>} ;
+  nWiosna : Str -> N; -- feminine, subject ending in two consonants: sn 
+  nWiosna = \s -> sn_End_CAL_FleetingIEplus_F s ** {lock_N = <>};
 
-  nMgla : Str -> N ; -- feminine, subject ending in "-gł"
-  nMgla = \x -> hard_l_End_CA_FleetingIEplus_F x ** {lock_N = <>} ;
+  nMgla : Str -> N; -- feminine, subject ending in "-gł"
+  nMgla = \x -> hard_l_End_CA_FleetingIEplus_F x ** {lock_N = <>};
 
-  nGwiazda : Str -> N ; -- feminine, subject ending in "-zd"
-  nGwiazda = \s -> zd_st_End_VA2_CAL_F s ** {lock_N = <>} ;
+  nGwiazda : Str -> N; -- feminine, subject ending in "-zd"
+  nGwiazda = \s -> zd_st_End_VA2_CAL_F s ** {lock_N = <>};
 
-  nUlica : Str -> N ; -- feminine, subject ending mainly in "-c", but also in "-ż", "-rz", "-dz"
-  nUlica = \s -> hardened_End_F_2 s ** {lock_N = <>} ;
+  nUlica : Str -> N; -- feminine, subject ending mainly in "-c", but also in "-ż", "-rz", "-dz"
+  nUlica = \s -> hardened_End_F_2 s ** {lock_N = <>};
 
-  nOwca : Str -> N ; -- feminine, subject ending in "-c"
-  nOwca = \x -> c_End_FleetingIEplus_F x ** {lock_N = <>} ;
+  nOwca : Str -> N; -- feminine, subject ending in "-c"
+  nOwca = \x -> c_End_FleetingIEplus_F x ** {lock_N = <>};
 
 
 -------- Patterns for neuter nouns ----------
 
 
-  nDanie : Str -> N ; -- neuter, subject ending in "-ni"
-  nDanie = \s -> ci_ni_week_End_CA_N s ** {lock_N = <>} ;
+  nDanie : Str -> N; -- neuter, subject ending in "-ni"
+  nDanie = \s -> ci_ni_week_End_CA_N s ** {lock_N = <>};
 
-  nSerce : Str -> N ; -- neuter, subject ending in a hardened consonant "-c", "-rz"
-  nSerce = \s -> hardened_End_N s ** {lock_N = <>} ;
+  nSerce : Str -> N; -- neuter, subject ending in a hardened consonant "-c", "-rz"
+  nSerce = \s -> hardened_End_N s ** {lock_N = <>};
 
-  nNasienie : Str -> N ; -- neuter, subject ending in "-ni" (only for "nasienie")
-  nNasienie = \x -> ni_End_VA2_N x ** {lock_N = <>} ;
+  nNasienie : Str -> N; -- neuter, subject ending in "-ni" (only for "nasienie")
+  nNasienie = \x -> ni_End_VA2_N x ** {lock_N = <>};
 
-  nMorze : Str -> N ; -- neuter, subject ending in "-rz", "-ż"
-  nMorze = \x -> rz_zx_End_VA1_N x ** {lock_N = <>} ;
+  nMorze : Str -> N; -- neuter, subject ending in "-rz", "-ż"
+  nMorze = \x -> rz_zx_End_VA1_N x ** {lock_N = <>};
 
-  nImie : Str -> N ; -- neuter, subject ending in "-ę"
-  nImie = \x -> ex_End_VA2_N x ** {lock_N = <>} ;
+  nImie : Str -> N; -- neuter, subject ending in "-ę"
+  nImie = \x -> ex_End_VA2_N x ** {lock_N = <>};
 
-  nCiele : Str -> N ; -- neuter, subject ending in "-ę"
-  nCiele = \s -> ex_End_VA3_N s ** {lock_N = <>} ;
+  nCiele : Str -> N; -- neuter, subject ending in "-ę"
+  nCiele = \s -> ex_End_VA3_N s ** {lock_N = <>};
 
-  nUdo : Str -> N ; -- neuter, subject ending in hard consonant + "o"
-  nUdo = \s -> hard_End_CAL_N s ** {lock_N = <>} ;
+  nUdo : Str -> N; -- neuter, subject ending in hard consonant + "o"
+  nUdo = \s -> hard_End_CAL_N s ** {lock_N = <>};
 
-  nPiwo : Str -> N ; -- neuter, subject ending in a hard consonant + "o"
-  nPiwo = \s -> hard_End_CL_N s ** {lock_N = <>} ;
+  nPiwo : Str -> N; -- neuter, subject ending in a hard consonant + "o"
+  nPiwo = \s -> hard_End_CL_N s ** {lock_N = <>};
 
-  nZero : Str -> N ; -- neuter, subject ending in "-r"
-  nZero = \s -> r_End_CA_N s ** {lock_N = <>} ;
+  nZero : Str -> N; -- neuter, subject ending in "-r"
+  nZero = \s -> r_End_CA_N s ** {lock_N = <>};
 
-  nNiebo : Str -> N ; -- neuter, declension for "niebo"
-  nNiebo = \x -> niebo_Unregulary_N x ** {lock_N = <>} ;
+  nNiebo : Str -> N; -- neuter, declension for "niebo"
+  nNiebo = \x -> niebo_Unregulary_N x ** {lock_N = <>};
 
-  nTlo : Str -> N ; -- neuter, subject ending in "-ło"
-  nTlo = \s -> lx_End_CA_FleetingEplus_N s ** {lock_N = <>} ;
+  nTlo : Str -> N; -- neuter, subject ending in "-ło"
+  nTlo = \s -> lx_End_CA_FleetingEplus_N s ** {lock_N = <>};
 
-  nZebro : Str -> N ; -- neuter, subject ending in "-r"
-  nZebro = \s -> hard_End_CA_FleetingEplus_N s ** {lock_N = <>} ;
+  nZebro : Str -> N; -- neuter, subject ending in "-r"
+  nZebro = \s -> hard_End_CA_FleetingEplus_N s ** {lock_N = <>};
 
-  nOkno : Str -> N ; -- neuter, subject ending in "-n"
-  nOkno = \s -> n_End_CL_FleetingIEplus_N s ** {lock_N = <>} ;
+  nOkno : Str -> N; -- neuter, subject ending in "-n"
+  nOkno = \s -> n_End_CL_FleetingIEplus_N s ** {lock_N = <>};
  
-  nGniazdo : Str -> N ; -- neuter, subject ending in "-zd", "-st"
-  nGniazdo = \s -> hard_End_VA_CAL_N s ** {lock_N = <>} ;
+  nGniazdo : Str -> N; -- neuter, subject ending in "-zd", "-st"
+  nGniazdo = \s -> hard_End_VA_CAL_N s ** {lock_N = <>};
 
-  nWojsko : Str -> N ; -- neuter, subject ending in "-k"
-  nWojsko = \s -> k_End_CL_N s ** {lock_N = <>} ;
+  nWojsko : Str -> N; -- neuter, subject ending in "-k"
+  nWojsko = \s -> k_End_CL_N s ** {lock_N = <>};
 
-  nJajo : Str -> N ; -- neuter, subject ending in "-j"
-  nJajo = \s -> j_End_N s ** {lock_N = <>} ;
+  nJajo : Str -> N; -- neuter, subject ending in "-j"
+  nJajo = \s -> j_End_N s ** {lock_N = <>};
 
-  nJablko : Str -> N ; -- neuter, subject ending in "-k"
-  nJablko = \s -> k_End_CL_FleetingEplus_N s ** {lock_N = <>} ;
+  nJablko : Str -> N; -- neuter, subject ending in "-k"
+  nJablko = \s -> k_End_CL_FleetingEplus_N s ** {lock_N = <>};
 
-  nStudio : Str -> N ; -- neuter, subject ending in "-n"
-  nStudio = \s -> o_End_N s ** {lock_N = <>} ;
+  nStudio : Str -> N; -- neuter, subject ending in "-n"
+  nStudio = \s -> o_End_N s ** {lock_N = <>};
 
-  nDziecko : Str -> N ; -- neuter, subject ending in "-n"
-  nDziecko = \s -> k_End_CAL_N s ** {lock_N = <>} ;
+  nDziecko : Str -> N; -- neuter, subject ending in "-n"
+  nDziecko = \s -> k_End_CAL_N s ** {lock_N = <>};
 
-  nUcho : Str -> N ; -- neuter, subject ending in "-ch"
-  nUcho = \x -> ch_End_Unregulary_CA_N x ** {lock_N = <>} ;
+  nUcho : Str -> N; -- neuter, subject ending in "-ch"
+  nUcho = \x -> ch_End_Unregulary_CA_N x ** {lock_N = <>};
 
-  nOko : Str -> N ; -- neuter, subject ending in "-k"
-  nOko = \x -> k_End_Unregulary_CAL_N x ** {lock_N = <>} ;
+  nOko : Str -> N; -- neuter, subject ending in "-k"
+  nOko = \x -> k_End_Unregulary_CAL_N x ** {lock_N = <>};
 
 
 ---- Patterns for personal masculine nouns ------
 
-  nFacet : Str -> N ; -- masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-i"
-  nFacet = \s -> hard_End_CAL_MP_1 s ** {lock_N = <>} ;
+  nFacet : Str -> N; -- masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-i"
+  nFacet = \s -> hard_End_CAL_MP_1 s ** {lock_N = <>};
 
-  nArab : Str -> N ; -- masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-y"
-  nArab = \s -> hard_End_CAL_MP_2 s ** {lock_N = <>} ;
+  nArab : Str -> N; -- masculine personal, subject ending in a hard consonant "-t", -"n", nom pl "-y"
+  nArab = \s -> hard_End_CAL_MP_2 s ** {lock_N = <>};
 
-  nPrzyjaciel : Str -> N ; -- masculine personal, subject ending in a hard consonant "-l"
-  nPrzyjaciel = \s -> przyjaciel_VA1_VA2_CA_MP s ** {lock_N = <>} ;
+  nPrzyjaciel : Str -> N; -- masculine personal, subject ending in a hard consonant "-l"
+  nPrzyjaciel = \s -> przyjaciel_VA1_VA2_CA_MP s ** {lock_N = <>};
 
-  nKowal : Str -> N ; -- masculine personal, subject ending in a hard consonant "-l"
-  nKowal = \s -> l_End_MP s ** {lock_N = <>} ;
+  nKowal : Str -> N; -- masculine personal, subject ending in a hard consonant "-l"
+  nKowal = \s -> l_End_MP s ** {lock_N = <>};
 
-  nLekarz : Str -> N ; -- masculine personal ending in -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)
-  nLekarz = \s -> hardened_End_MP s ** {lock_N = <>} ;
+  nLekarz : Str -> N; -- masculine personal ending in -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)
+  nLekarz = \s -> hardened_End_MP s ** {lock_N = <>};
 
-  nKrol : Str -> N ; -- masculine personal, subject ending in "-ul"
-  nKrol = \s -> ul_End_MP s ** {lock_N = <>} ;
+  nKrol : Str -> N; -- masculine personal, subject ending in "-ul"
+  nKrol = \s -> ul_End_MP s ** {lock_N = <>};
 
-  nMaz : Str -> N ; -- masculine personal
-  nMaz = \s -> maz_MP s ** {lock_N = <>} ;
+  nMaz : Str -> N; -- masculine personal
+  nMaz = \s -> maz_MP s ** {lock_N = <>};
 
-  nWrog : Str -> N ; -- masculine personal, subject ending in "-g" ; only for "wróg"
-  nWrog = \s -> wrog_VA1_CL_MP s ** {lock_N = <>} ;
+  nWrog : Str -> N; -- masculine personal, subject ending in "-g"; only for "wróg"
+  nWrog = \s -> wrog_VA1_CL_MP s ** {lock_N = <>};
 
---  nCzlowiek : Str -> N ; -- masculine personal
---  nCzlowiek = \s -> ul_End_MP s ** {lock_N = <>} ;
+--  nCzlowiek : Str -> N; -- masculine personal
+--  nCzlowiek = \s -> ul_End_MP s ** {lock_N = <>};
 
-  nKsiadz : Str -> N ; -- masculine personal
-  nKsiadz = \s -> ksiadz_VA3_CA_MP s ** {lock_N = <>} ;
+  nKsiadz : Str -> N; -- masculine personal
+  nKsiadz = \s -> ksiadz_VA3_CA_MP s ** {lock_N = <>};
 
-  nOjciec : Str -> N ; -- masculine personal for "ojciec"
-  nOjciec = \s -> ciec_End_CA_FleetingIEminus_MP s ** {lock_N = <>} ;
+  nOjciec : Str -> N; -- masculine personal for "ojciec"
+  nOjciec = \s -> ciec_End_CA_FleetingIEminus_MP s ** {lock_N = <>};
 
-  nBrat : Str -> N ; -- masculine personal
-  nBrat = \s -> hard_End_CAL_MP s ** {lock_N = <>} ;
+  nBrat : Str -> N; -- masculine personal
+  nBrat = \s -> hard_End_CAL_MP s ** {lock_N = <>};
 
-  nBog : Str -> N ; -- masculine personal
-  nBog = \s -> bog_VA1_CAL_MP s ** {lock_N = <>} ;
+  nBog : Str -> N; -- masculine personal
+  nBog = \s -> bog_VA1_CAL_MP s ** {lock_N = <>};
 
-  nChlopiec : Str -> N ; -- masculine personal
-  nChlopiec = \s -> iec_End_CA_FleetingIEminus_MP s ** {lock_N = <>} ;
+  nChlopiec : Str -> N; -- masculine personal
+  nChlopiec = \s -> iec_End_CA_FleetingIEminus_MP s ** {lock_N = <>};
 
-  nMezczyzna : Str -> N ; -- masculine personal
-  nMezczyzna = \s -> zna_End_CAL_MP s ** {lock_N = <>} ;
+  nMezczyzna : Str -> N; -- masculine personal
+  nMezczyzna = \s -> zna_End_CAL_MP s ** {lock_N = <>};
 
 
 ------------------- Patterns for animate masculine nouns -------
 
 
-  nKon : Str -> N ; -- masculine animate, for "koń"
-  nKon = \s -> kon_CAL_MA s ** {lock_N = <>} ;
+  nKon : Str -> N; -- masculine animate, for "koń"
+  nKon = \s -> kon_CAL_MA s ** {lock_N = <>};
 
-  nWaz : Str -> N ; -- masculine animate, for "wąż"
-  nWaz = \s -> waz_VA3_MA s ** {lock_N = <>} ;
+  nWaz : Str -> N; -- masculine animate, for "wąż"
+  nWaz = \s -> waz_VA3_MA s ** {lock_N = <>};
   
-  nPtak : Str -> N ; -- masculine animate, subject ending in "-k"
-  nPtak = \s -> k_End_CL_MA s ** {lock_N = <>} ;
+  nPtak : Str -> N; -- masculine animate, subject ending in "-k"
+  nPtak = \s -> k_End_CL_MA s ** {lock_N = <>};
 
-  nKot : Str -> N ; -- masculine animate, for "kot"
-  nKot = \s -> kot_CAL_MA s ** {lock_N = <>} ;
+  nKot : Str -> N; -- masculine animate, for "kot"
+  nKot = \s -> kot_CAL_MA s ** {lock_N = <>};
 
-  nPies : Str -> N ; -- masculine animate, for "pies"
-  nPies = \s -> pies_CL_FleetingIEminus_MA s ** {lock_N = <>} ;
+  nPies : Str -> N; -- masculine animate, for "pies"
+  nPies = \s -> pies_CL_FleetingIEminus_MA s ** {lock_N = <>};
 
 
 
 ------------------ Patterns for inanimate masculine nouns -----
 
- nBat : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nBat = \s -> vowel_hard_CAL_MI s ** {lock_N = <>} ;
-
- nChleb : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nChleb = \s -> vowel_hard_CL_MI s ** {lock_N = <>} ;
-
- nSer : Str -> N ; -- masculine inanimate, subject ending in "-r"
- nSer = \s -> r_End_CA_MI s ** {lock_N = <>} ;
-
- nZab : Str -> N ; -- masculine inanimate, subject ending in "-ąb"
- nZab = \s -> ab_End_VA3_CL_MI s ** {lock_N = <>} ;
-
- nKosciol : Str -> N ; -- masculine inanimate, for "kosciół"
- nKosciol = \s -> kosciol_VA1_VA2_CA_MI s ** {lock_N = <>} ;
+ nBat : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nBat = \s -> vowel_hard_CAL_MI s ** {lock_N = <>};
 
- nCien : Str -> N ; -- masculine inanimate, subject ending in a week consonant
- nCien = \s -> week_End_CAL_MI s ** {lock_N = <>} ;
+ nChleb : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nChleb = \s -> vowel_hard_CL_MI s ** {lock_N = <>};
 
- nPien : Str -> N ; -- masculine inanimate, subject ending in a week consonant
- nPien = \s -> week_End_CAL_FleetingIEminus_MI s ** {lock_N = <>} ;
+ nSer : Str -> N; -- masculine inanimate, subject ending in "-r"
+ nSer = \s -> r_End_CA_MI s ** {lock_N = <>};
 
- nLisc : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nLisc = \s -> lisc_CAL_MI s ** {lock_N = <>} ;
+ nZab : Str -> N; -- masculine inanimate, subject ending in "-ąb"
+ nZab = \s -> ab_End_VA3_CL_MI s ** {lock_N = <>};
 
- nKoc : Str -> N ; -- masculine inanimate, subject ending in a hardened consonant
- nKoc = \s -> hardened_End_MI_1 s ** {lock_N = <>} ;
+ nKosciol : Str -> N; -- masculine inanimate, for "kosciół"
+ nKosciol = \s -> kosciol_VA1_VA2_CA_MI s ** {lock_N = <>};
 
- nWiersz : Str -> N ; -- masculine inanimate, subject ending in a hardened consonant
- nWiersz = \s -> hardened_End_MI_2 s ** {lock_N = <>} ;
+ nCien : Str -> N; -- masculine inanimate, subject ending in a week consonant
+ nCien = \s -> week_End_CAL_MI s ** {lock_N = <>};
 
- nDzien : Str -> N ; -- masculine inanimate, for "dzień"
- nDzien = \s -> dzien_MI s ** {lock_N = <>} ;
+ nPien : Str -> N; -- masculine inanimate, subject ending in a week consonant
+ nPien = \s -> week_End_CAL_FleetingIEminus_MI s ** {lock_N = <>};
 
- nKajak : Str -> N ; -- masculine inanimate, subject ending in -g or -k
- nKajak = \s -> g_k_End_CL_MI_1 s ** {lock_N = <>} ;
+ nLisc : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nLisc = \s -> lisc_CAL_MI s ** {lock_N = <>};
 
- nMlotek : Str -> N ; -- masculine inanimate, subject ending in -ek
- nMlotek = \s -> k_End_CL_FleetingEminus_MI s ** {lock_N = <>} ;
+ nKoc : Str -> N; -- masculine inanimate, subject ending in a hardened consonant
+ nKoc = \s -> hardened_End_MI_1 s ** {lock_N = <>};
 
- nMiech : Str -> N ; -- masculine inanimate, subject ending in -ch
- nMiech = \s -> ch_End_MI s ** {lock_N = <>} ;
+ nWiersz : Str -> N; -- masculine inanimate, subject ending in a hardened consonant
+ nWiersz = \s -> hardened_End_MI_2 s ** {lock_N = <>};
 
- nSad : Str -> N ; -- masculine inanimate, subject ending in a hard consonant
- nSad = \s -> hard_End_CAL_MI s ** {lock_N = <>} ;
+ nDzien : Str -> N; -- masculine inanimate, for "dzień"
+ nDzien = \s -> dzien_MI s ** {lock_N = <>};
 
- nDym : Str -> N ; -- masculine inanimate, subject ending in a hard consonant
- nDym = \s -> hard_End_CL_MI s ** {lock_N = <>} ;
+ nKajak : Str -> N; -- masculine inanimate, subject ending in -g or -k
+ nKajak = \s -> g_k_End_CL_MI_1 s ** {lock_N = <>};
 
- nWal : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nWal = \s -> hard_End_CA_MI s ** {lock_N = <>} ;
+ nMlotek : Str -> N; -- masculine inanimate, subject ending in -ek
+ nMlotek = \s -> k_End_CL_FleetingEminus_MI s ** {lock_N = <>};
 
- nDol : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nDol = \s -> hard_End_VA1_CA_MI s ** {lock_N = <>} ;
+ nMiech : Str -> N; -- masculine inanimate, subject ending in -ch
+ nMiech = \s -> ch_End_MI s ** {lock_N = <>};
 
- nOgrod : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nOgrod = \s -> hard_End_VA1_CAL_MI s ** {lock_N = <>} ;
+ nSad : Str -> N; -- masculine inanimate, subject ending in a hard consonant
+ nSad = \s -> hard_End_CAL_MI s ** {lock_N = <>};
 
- nKwiat : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nKwiat = \s -> hard_End_VA2_CAL_MI s ** {lock_N = <>} ;
+ nDym : Str -> N; -- masculine inanimate, subject ending in a hard consonant
+ nDym = \s -> hard_End_CL_MI s ** {lock_N = <>};
 
- nLas : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nLas = \s -> hard_End_VA2_CL_MI s ** {lock_N = <>} ;
+ nWal : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nWal = \s -> hard_End_CA_MI s ** {lock_N = <>};
 
- nWiatr : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nWiatr = \s -> wiatr_VA2_CA_MI s ** {lock_N = <>} ;
+ nDol : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nDol = \s -> hard_End_VA1_CA_MI s ** {lock_N = <>};
 
- nPopiol : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant
- nPopiol = \s -> popiol_VA2_CA_MI s ** {lock_N = <>} ;
+ nOgrod : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nOgrod = \s -> hard_End_VA1_CAL_MI s ** {lock_N = <>};
 
- nPokoj : Str -> N ; -- masculine inanimate, subject ending in -ój
- nPokoj = \s -> onlySgNoun s ** {lock_N = <>} ;
+ nKwiat : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nKwiat = \s -> hard_End_VA2_CAL_MI s ** {lock_N = <>};
 
- nGaj : Str -> N ; -- masculine inanimate, subject ending in a vowel + hard consonant j
- nGaj = \s -> vowel_j_or_handened_End_MI s ** {lock_N = <>} ;
+ nLas : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nLas = \s -> hard_End_VA2_CL_MI s ** {lock_N = <>};
 
- nBrzeg : Str -> N ; -- masculine inanimate, subject ending in -g or -k
- nBrzeg = \s -> g_k_End_CL_MI_2 s ** {lock_N = <>} ;
+ nWiatr : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nWiatr = \s -> wiatr_VA2_CA_MI s ** {lock_N = <>};
 
- nRok : Str -> Str -> N ; -- masculine inanimate for "rok", form in pl irregular
- nRok = \s, t -> rok_UnregularyPl_CL_MI s t ** {lock_N = <>} ;
+ nPopiol : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant
+ nPopiol = \s -> popiol_VA2_CA_MI s ** {lock_N = <>};
 
- nProg : Str -> N ; -- masculine inanimate, subject ending in -óg
- nProg = \s -> ug_End_VA1_CL_MI s ** {lock_N = <>} ;
+ nPokoj : Str -> N; -- masculine inanimate, subject ending in -ój
+ nPokoj = \s -> onlySgNoun s ** {lock_N = <>};
 
- nStatek : Str -> N ; -- masculine inanimate, subject ending in -ek
- nStatek = \s -> k_End_CL_FleetingEmins_MI s ** {lock_N = <>} ;
+ nGaj : Str -> N; -- masculine inanimate, subject ending in a vowel + hard consonant j
+ nGaj = \s -> vowel_j_or_handened_End_MI s ** {lock_N = <>};
 
- nDom : Str -> N ; -- masculine inanimate, subject ending in -ch and for dom
- nDom = \s -> ch_End_dom_MI s ** {lock_N = <>} ;
+ nBrzeg : Str -> N; -- masculine inanimate, subject ending in -g or -k
+ nBrzeg = \s -> g_k_End_CL_MI_2 s ** {lock_N = <>};
 
+ nRok : Str -> Str -> N; -- masculine inanimate for "rok", form in pl irregular
+ nRok = \s, t -> rok_UnregularyPl_CL_MI s t ** {lock_N = <>};
 
--- Nominative, Genetive, Dative, Accusative, Instrumental, Locative and Vocative ;
--- corresponding seven plural forms and the gender.
-  
-  mkN  : (nomSg, genSg, datSg, accSg, instrSg, locSg, vocSg,
-          nomPl, genPl, datPl, accPl, instrPl, locPl, vocPl: Str) -> Gender -> N ; 
+ nProg : Str -> N; -- masculine inanimate, subject ending in -óg
+ nProg = \s -> ug_End_VA1_CL_MI s ** {lock_N = <>};
 
+ nStatek : Str -> N; -- masculine inanimate, subject ending in -ek
+ nStatek = \s -> k_End_CL_FleetingEmins_MI s ** {lock_N = <>};
 
-  mkN =  \nomSg, genSg, datSg, accSg, instrSg, locSg, vocSg,
-    nomPl, genPl, datPl, accPl, instrPl, locPl, vocPl, g ->
-    {
-      s = table { 
-        SF Sg Nom => nomSg ;
-        SF Sg Gen => genSg ;
-        SF Sg Dat => datSg ;
-        SF Sg Acc => accSg ;
-        SF Sg Instr => instrSg ;
-        SF Sg Loc => locSg ;
-        SF Sg VocP => vocSg ;
-        SF Pl Nom => nomPl ;
-        SF Pl Gen => genPl ;
-        SF Pl Dat => datPl ;
-        SF Pl Acc => accPl ;
-        SF Pl Instr => instrPl ;
-        SF Pl Loc => locPl ;
-        SF Pl VocP => vocPl 
-	} ;                           
-      g = g ;
-    } ** {lock_N = <> }  ;
+ nDom : Str -> N; -- masculine inanimate, subject ending in -ch and for dom
+ nDom = \s -> ch_End_dom_MI s ** {lock_N = <>};
 
 
 
 
--- Nouns used as functions need a preposition. The most common is with Genitive.
-
-  mkN2 : N -> N2  ;
-  mkN2 n = mkFun n nullPrep  ;
-
-  mkFun  : N -> Prep -> N2 ;
-  mkFun f p = { s = f.s ; g = f.g ; c = { c = p.c ; s=p.s} ; lock_N2=<> }  ;
-
--- The commonest cases are functions with Genitive.
-  nullPrep : Prep = {s = [] ; c= GenNoPrep ; lock_Prep=<>} ;  
-
-  mkN3 : N -> Prep -> Prep -> N3 ;
-  mkN3 f p r = { s = f.s ; g = f.g ; c = {s=p.s ; c=p.c}  ; c2 = {s=r.s ; c=r.c} ; lock_N3=<>} ; 
-  
---6 Preposition   
-
--- A preposition is formed from a string and a case.
-
-  mkPrep : Str -> Case -> Prep ;
-  mkPrep s c = mkCompl s c ** {lock_Prep = <>} ;
-
-
--- Often just a case with the empty string is enough.
--- the directly following noun without a preposition
-
-  genPrep : Prep ;
-  genPrep = mkPrep [] genitive ;
-
-  datPrep : Prep ;
-  datPrep = mkPrep [] dative ;
-
-  accPrep : Prep ;
-  accPrep = mkPrep [] accusative ;
-
-  instrPrep : Prep ;
-  instrPrep = mkPrep [] instrumental ;
-
-
--- A great many of common prepositions are always with the genitive.
-
-  bez_Prep : Prep ; --without
-  bez_Prep = mkPrep "bez" genitive ;
-
-  dla_Prep : Prep ; --for
-  dla_Prep = mkPrep "dla" genitive ;
-
-  do_Prep : Prep ; --to
-  do_Prep = mkPrep "do" genitive ;
-
-  dookola_Prep : Prep ; --(a)round
-  dookola_Prep = mkPrep "dookoła" genitive ;
-
-  kolo_Prep : Prep ; --near
-  kolo_Prep = mkPrep "koło" genitive ;
-
-  obok_Prep : Prep ; --beside, next to
-  obok_Prep = mkPrep "obok" genitive ;
-
-  od_Prep : Prep ; --from
-  od_Prep = mkPrep "od" genitive ;
-
-  oprocz_Prep : Prep ; --out of
-  oprocz_Prep = mkPrep "oprócz" genitive ;
-
-  podczas_Prep : Prep ; --during
-  podczas_Prep = mkPrep "podczas" genitive ;
-
-  mimo_Prep : Prep ; -- despite
-  mimo_Prep = mkPrep "mimo" genitive ;
-
-  spod_Prep : Prep ; --under
-  spod_Prep = mkPrep "spod" genitive ;
-
-  u_Prep : Prep ; --by, with (I was by Peter last sunday.)
-  u_Prep = mkPrep "u" genitive ;
-
-  wzdluz_Prep : Prep ; --along
-  wzdluz_Prep = mkPrep "wzdłuż" genitive ;
-
-  z_Prep : Prep ; --from (I come from Italy.), of/ from (The ring is made of silver.)
-  z_Prep = mkPrep "z" genitive ;
-
-  zamiast_Prep : Prep ; --instead of
-  zamiast_Prep = mkPrep "zamiast" genitive ;
-
-  znad_Prep : Prep ; --over, above
-  znad_Prep = mkPrep "znad" genitive ;
-
-  zza_Prep : Prep ; --behind
-  zza_Prep = mkPrep "zza" genitive ;
-
-
--- Prepositions always with the dative.
-  dzieki_Prep : Prep ; -- thanks for
-  dzieki_Prep = mkPrep "dzięki" dative ;
-
-  przeciw_Prep : Prep ; -- against 
-  przeciw_Prep = mkPrep "przeciw" dative ;
-
-} 
+};
diff --git a/lib/src/polish/PhrasePol.gf b/lib/src/polish/PhrasePol.gf
--- a/lib/src/polish/PhrasePol.gf
+++ b/lib/src/polish/PhrasePol.gf
@@ -16,16 +16,16 @@
    UttIP ip = {s = ip.nom};
    UttIAdv iadv = iadv ;
    UttNP np = {s = np.nom};
-   UttVP vp = { -- I assume positive polarization to avoid variants
-        s = vp.prefix !Pos !MascAniSg ++
+   UttVP vp = { -- I assume the positive polarization to avoid variants
+        s = vp.prefix ++
             (infinitive_form vp.verb vp.imienne Pos) ++ 
-            vp.sufix !Pos !MascAniSg  ++ vp.postfix !Pos !MascAniSg
+            vp.sufix !Pos !MascAniSg 
    };
    UttAdv adv = adv ;
-   UttCN n = {s = n.s ! Sg ! Nom} ;
-   UttCard n = {s = n.s ! Nom ! Neut} ;
-   UttAP ap = {s = ap.s ! AF NeutSg Nom} ; ---- gennum ? (AR)
-
+   UttCN n = {s = n.s ! Sg ! Nom};
+   UttAP ap = {s = ap.s ! AF MascPersSg Nom} ;
+   UttCard c = {s = c.s ! Nom ! Fem } ;
+   
    NoPConj = {s = []} ;
    PConjConj conj = {s = conj.s2} ; ---
 
diff --git a/lib/src/polish/PronounMorphoPol.gf b/lib/src/polish/PronounMorphoPol.gf
--- a/lib/src/polish/PronounMorphoPol.gf
+++ b/lib/src/polish/PronounMorphoPol.gf
@@ -19,7 +19,8 @@
 --4.2 Personal pronouns and their possessive forms  
 
 -- for "I", "my", "mine"
-  oper pronJa: Pron = 
+  oper pronJa: Pron = pronJaFoo PNoGen;
+  oper pronJaFoo: PronGen -> Pron = \gender ->
 	 { nom = "ja";
 	   voc = "ja";
 	   dep = table {
@@ -27,7 +28,7 @@
 	     DatNoPrep => "mi";
 	     DatPrep => "mnie";
 	     (AccNoPrep|AccPrep) => "mnie"; 
-	     (InstrNoPrep|InstrPrep) => "mną";
+	     InstrC => "mną";
 	     LocPrep => "mnie"
 	     };
 	   sp = table {
@@ -69,12 +70,13 @@
 	   };
 	   n = Sg;
 	   p = P1 ;
-	   g = PNoGen
+	   g = gender
 	 };
        
 
 -- for "you", "yours"
-  oper pronTy: Pron = 
+  oper pronTy: Pron = pronTyFoo PNoGen;
+  oper pronTyFoo: PronGen -> Pron = \gender ->
 	 { sp = table {
 	     AF (MascPersSg|MascAniSg|MascInaniSg) Nom => "twój";
 	     AF (MascPersSg|MascAniSg|MascInaniSg) Gen => "twojego";
@@ -121,15 +123,54 @@
 	     DatPrep => "ci";
 	     AccNoPrep => "cię";
 	     AccPrep => "ciebie";
-	     (InstrNoPrep|InstrPrep) => "tobą";
+	     InstrC => "tobą";
 	     LocPrep => "tobie"
 	     };
 	   n = Sg;
 	   p = P2 ;
-	   g = PNoGen
+	   g = gender
 	 };
        
+-- for "you polite" (very idiomatic: pron you = 'sir') male version
+  oper pronPan: Pron = 
+	 { nom = "pan" ;
+	   voc = "panie" ;
+	   dep = table {
+	     GenNoPrep => "pana"; --"go"};
+	     GenPrep => "pana";
+	     DatNoPrep => "panu"; --"mu"};
+	     DatPrep => "panu";
+	     AccNoPrep => "pana"; --"go" };
+	     AccPrep => "pana"; 
+	     InstrC => "panem";
+	     LocPrep => "panu"
+	     };
+	   sp = \\_ => "pana";
+	   n = Sg;
+	   p = P3 ;
+	   g = PGen (Masc Personal)
+	 };
 
+-- for "you polite" (very idiomatic: pron you = 'madam') female version
+  oper pronPani: Pron = 
+	 { nom = "pani" ;
+	   voc = "pani" ;
+	   dep = table {
+	     GenNoPrep => "pani"; --"go"};
+	     GenPrep => "pani";
+	     DatNoPrep => "pani"; --"mu"};
+	     DatPrep => "pani";
+	     AccNoPrep => "panią"; --"go" };
+	     AccPrep => "panią"; 
+	     InstrC => "panią";
+	     LocPrep => "pani"
+	     };
+	   sp = \\_ => "pani";
+	   n = Sg;
+	   p = P3 ;
+	   g = PGen (Fem)
+	 };
+
 -- for "he", "his" 
   oper pronOn: Pron = 
 	 { nom = "on" ;
@@ -141,8 +182,7 @@
 	     DatPrep => "niemu";
 	     AccNoPrep => "jego"; --"go" };
 	     AccPrep => "niego"; 
-	     InstrNoPrep => "nim";
-	     InstrPrep => "nim"; 
+	     InstrC => "nim";
 	     LocPrep => "nim"
 	     };
 	   sp = \\_ => "jego";
@@ -160,11 +200,10 @@
 	     GenNoPrep => "jej";
 	     GenPrep  => "niej";
 	     DatNoPrep => "jej";
-	     DatPrep => "nią";
+	     DatPrep => "niej";
 	     AccNoPrep => "ją";
 	     AccPrep => "nią"; 
-	     InstrNoPrep => "nią";
-	     InstrPrep => "nią"; 
+	     InstrC => "nią";
 	     LocPrep => "niej"
 	     };
 	   sp = \\_ => "jej";
@@ -185,8 +224,7 @@
 	     DatPrep  => "niemu";
 	     AccNoPrep  => "je";
 	     AccPrep  => "nie"; 
-	     InstrNoPrep => "nim";
-	     InstrPrep  => "nim"; 
+	     InstrC  => "nim"; 
 	     LocPrep  => "nim"
 	     };
 	   sp = \\_ => "jej";
@@ -204,7 +242,7 @@
 	     (GenNoPrep|GenPrep)  => "nas";
 	     (DatNoPrep|DatPrep)  => "nam"; 
 	     (AccNoPrep|AccPrep)  => "nas";
-	     (InstrNoPrep|InstrPrep)  => "nami";
+	     InstrC  => "nami";
 	     LocPrep  => "nas"
 	     };
        sp = table {
@@ -258,7 +296,7 @@
 	     (GenNoPrep|GenPrep) => "was";
 	     (DatNoPrep|DatPrep) => "wam"; 
 	     (AccNoPrep|AccPrep) => "was";
-	     (InstrNoPrep|InstrPrep) => "wami";
+	     InstrC => "wami";
 	     LocPrep => "was"
 	     };
 	   sp = table {
@@ -315,7 +353,7 @@
 	     DatPrep => "nim";
 	     AccNoPrep => "ich";
 	     AccPrep => "nich"; 
-	     (InstrNoPrep|InstrPrep) => "nimi"; 
+	     InstrC => "nimi"; 
 	     LocPrep => "nich"
 	     };
 	   sp = \\_ => "ich";
@@ -336,7 +374,7 @@
 	     DatPrep => "nim";
 	     AccNoPrep => "je";
 	     AccPrep => "nie"; 
-	     (InstrNoPrep|InstrPrep) => "nimi"; 
+	     InstrC => "nimi"; 
 	     LocPrep => "nich"
 	     };
 	   sp = \\_ => "ich";
@@ -355,7 +393,7 @@
 	     DatPrep => "nim";
 	     AccNoPrep => "je";
 	     AccPrep => "nie"; 
-	     (InstrNoPrep|InstrPrep) => "nimi"; 
+	     InstrC => "nimi"; 
 	     LocPrep => "nich"
 	     };
 	   sp = \\_ => "ich";
@@ -372,7 +410,7 @@
 	     (GenNoPrep|GenPrep) NonPoss => "kogo";
 	     (DatNoPrep|DatPrep) NonPoss => "komu";
 	     (AccNoPrep|AccPrep) NonPoss => "kogo";
-	     (InstrNoPrep|InstrPrep) NonPoss => "kim";
+	     InstrC NonPoss => "kim";
 	     LocPrep NonPoss => "kim";
 	     PF VocP _ NonPoss => nonExist;
 	     PF _ _ (Poss _ _) => nonExist -- exists in my opinion [asl] : czyje
@@ -391,7 +429,7 @@
 	     (GenNoPrep|GenPrep) NonPoss => "czego";
 	     (DatNoPrep|DatPrep) NonPoss => "czemu";
 	     (AccNoPrep|AccPrep) NonPoss => "co";
-	     (InstrNoPrep|InstrPrep) NonPoss => "czym";
+	     InstrC NonPoss => "czym";
 	     LocPrep NonPoss => "czym";
 	     PF VocP _ NonPoss => nonExist;
 	     PF _ _ (Poss _ _) => nonExist 
@@ -419,7 +457,7 @@
 	     (GenNoPrep|GenPrep) NonPoss => "kogokolwiek";
 	     (DatNoPrep|DatPrep) NonPoss => "komukolwiek";
 	     (AccNoPrep|AccPrep) NonPoss => "kogokolwiek";
-	     (InstrNoPrep|InstrPrep) NonPoss => "kimkolwiek";
+	     InstrC NonPoss => "kimkolwiek";
 	     LocPrep NonPoss => "kimkolwiek";
 	     PF VocP _ NonPoss => nonExist;
 	     PF _ _ (Poss _ _) => nonExist 
@@ -448,7 +486,7 @@
 -- 	     (GenNoPrep|GenPrep) NonPoss => "czegokolwiek";
 -- 	     (DatNoPrep|DatPrep) NonPoss => "czemukolwiek";
 -- 	     (AccNoPrep|AccPrep) NonPoss => "cokolwiek";
--- 	     (InstrNoPrep|InstrPrep) NonPoss => "czymkolwiek";
+-- 	     InstrC NonPoss => "czymkolwiek";
 -- 	     LocPrep NonPoss => "czymkolwiek";
 -- 	     PF VocP _ NonPoss => nonExist;
 -- 	     PF _ _ (Poss _ _) => nonExist 
diff --git a/lib/src/polish/QuestionPol.gf b/lib/src/polish/QuestionPol.gf
--- a/lib/src/polish/QuestionPol.gf
+++ b/lib/src/polish/QuestionPol.gf
@@ -10,11 +10,12 @@
 
 --     QuestCl     : Cl -> QCl ;            -- does John walk
     QuestCl cl = { s = \\p,a,t=> "czy" ++ cl.s !p !a !t };
+    
 --     QuestVP     : IP -> VP -> QCl ;      -- who walks
     QuestVP ip vp = {
-        s = \\pol,anter,tense => ip.nom ++ vp.prefix !pol !ip.gn ++
+        s = \\pol,anter,tense => ip.nom ++ vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, ip.gn, ip.p>) ++ 
-            vp.sufix !pol !ip.gn ++ vp.postfix !pol !ip.gn;
+            vp.sufix !pol !ip.gn
     };
 
 --     QuestSlash  : IP -> ClSlash -> QCl ; -- whom does John love 
@@ -27,8 +28,8 @@
     
 --     QuestIComp  : IComp -> NP -> QCl ;   -- where is John
     QuestIComp ic np = { 
-        s = \\p,a,t => 
-          (imienne_form {si = \\_=>[]; sp = \\_=>[]; asp = Dual; refl = ""; ppart=\\_=>""} p !<t,a,np.gn,np.p>) ++ np.nom
+        s = \\p,a,t => ic.s ++ 
+          (imienne_form {si = \\_=>[]; sp = \\_=>[]; asp = Dual; refl = ""; pparti,ppartp=\\_=>""} p !<t,a,np.gn,np.p>) ++ np.nom
     };
  
 --     IdetCN    : IDet -> CN -> IP ;       -- which five songs
@@ -46,8 +47,8 @@
         voc = idet.s !VocP !(Masc Personal);
         dep = \\cc => let c = extract_case! cc in
           idet.s !c !(Masc Personal);
-        gn = cast_gennum! <Masc Personal, idet.n>;
-        p = P3
+        gn = (accom_gennum !<idet.a, Masc Personal, idet.n>);
+        p = P3 
     };
 
 --     AdvIP     : IP -> Adv -> IP ;        -- who in Paris
@@ -61,9 +62,9 @@
 
 --     IdetQuant : IQuant -> Num -> IDet ;  -- which (five)
     IdetQuant iq n = {
-        s = \\c,g => iq.s! AF (cast_gennum! <g,n.n>) c;
+        s = \\c,g => iq.s! AF (cast_gennum!<g,n.n>) (accom_case!<n.a,c,g>) ++ n.s !c !g;
         n = n.n;
-        a = NoA
+        a = n.a
     };
 
 --     PrepIP    : Prep -> IP -> IAdv ;     -- with whom
@@ -73,6 +74,8 @@
     CompIAdv ia = ia;
 
 --     CompIP    : IP   -> IComp ;          -- who (is it)
-    CompIP ip = { s = ip.dep ! InstrNoPrep };
+    CompIP ip = { s = ip.dep ! InstrC };
+
+    AdvIAdv i a = ss (i.s ++ a.s) ;
 
 }
diff --git a/lib/src/polish/RelativePol.gf b/lib/src/polish/RelativePol.gf
--- a/lib/src/polish/RelativePol.gf
+++ b/lib/src/polish/RelativePol.gf
@@ -24,14 +24,14 @@
       s = \\gn => case rp.mgn of { 
         NoGenNum=>
           \\pol, anter, tense => 
-            "," ++ rp.s !AF gn Nom ++ vp.prefix !pol !gn ++
+            "," ++ rp.s !AF gn Nom ++ vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, gn, P3>) ++ 
-            vp.sufix !pol !gn ++ vp.postfix !pol !gn;
+            vp.sufix !pol !gn;
         JustGenNum x => 
           \\pol, anter, tense => 
-            "," ++ rp.s !AF gn Nom ++ vp.prefix !pol !x ++
+            "," ++ rp.s !AF gn Nom ++ vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, x, P3>) ++ 
-            vp.sufix !pol !x ++ vp.postfix !pol !x
+            vp.sufix !pol !x
          }  
     };
 
@@ -52,7 +52,7 @@
         AF gn Nom  => p.s ++ rp.s!AF gn (extract_case!p.c) ++ n.nom;
         AF gn VocP => p.s ++ rp.s!AF gn (extract_case!p.c) ++ n.voc;
         AF gn c    => p.s ++ rp.s!AF gn (extract_case!p.c) ++ n.dep!
-            (case c of { Gen => GenNoPrep; Dat => DatNoPrep; Instr => InstrNoPrep; Acc => AccNoPrep; _=>LocPrep })
+            (case c of { Gen => GenNoPrep; Dat => DatNoPrep; Instr => InstrC; Acc => AccNoPrep; _=>LocPrep })
       };
       mgn = JustGenNum n.gn
     };
diff --git a/lib/src/polish/ResPol.gf b/lib/src/polish/ResPol.gf
--- a/lib/src/polish/ResPol.gf
+++ b/lib/src/polish/ResPol.gf
@@ -3,7 +3,7 @@
 
 -- Ilona Nowak Wintersemester 2007/08  
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
 -- 1 Polish auxiliary operations.
 
@@ -30,9 +30,9 @@
 ----------------------- Parameter for nouns ----------------------------------
 
   param 
-    Gender     = Masc Animacy | Fem | NeutGr | Neut ; 
-	Animacy    = Animate | Inanimate | Personal ;
-	Case       = Nom | Gen | Dat | Acc | Instr | Loc | VocP ;   
+    Gender     = Masc Animacy | Fem | NeutGr | Neut | Plur ; 
+    Animacy    = Animate | Inanimate | Personal ;
+    Case       = Nom | Gen | Dat | Acc | Instr | Loc | VocP ;   
 
 -- Nouns are declined according to number and case.
 -- For the sake of shorter description, these parameters are 
@@ -41,7 +41,11 @@
 	param SubstForm = SF Number Case ;
 
 
-    oper CommNoun = {s : SubstForm => Str; g : Gender};  
+    -- oper used in NounMorphoPol.gf
+    -- type of N, _not_ CN
+  oper CommNoun = {s : SubstForm => Str; g : Gender};
+  oper CommNoun2 = CommNoun ** { c : Complement } ;
+  oper CommNoun3 = CommNoun2 ** { c2 : Complement } ;
 
 
 --2 Verbs   
@@ -84,37 +88,21 @@
 	 sp : VFormM => Str;
 	 refl : Str;
 	 asp : Aspect;
-	 ppart : AForm=>Str
+	 ppartp : adj11table; --AForm=>Str;
+	 pparti : adj11table  --AForm=>Str
   };
-  
--- and on syntax level:
-{-  param  
-    TenseP = Present | PastP | Future ;
-    PolarityP = PosP | DirNeg | InDirNeg; -- for the indirect object of negation
-  
-  param VForm =
-	   VInf Gender Number               --byc zjedzonym / zjedzoną (?)
-	  |VInd Gender Number Person TenseP Anteriority
-	  |VImp Gender Number Person;       --niech zostane zjedzony / zjedzona-}
-  	 
+    	 
   oper VerbPhrase : Type = {
-    prefix, sufix, postfix : Polarity => GenNum => Str;
+    prefix : Str;
+    sufix : Polarity => GenNum => Str;
     verb : Verb;
     imienne : Bool;-- formed with 'to be' (she was nice, he is a man, etc.)
 	exp : Bool -- expanded 
   };
-
-{-  oper AccToGen : Complement -> Case = \c -> 
-    case c.s of {
-      "" => case c.c of {Acc => Gen; _ => c.c };
-      _  => c.c
-    };-}
   
--- Anteriority is defined in ../common/ParamX.gf. 
--- So it isn't needed to be defined here again.
+  oper VerbPhraseSlash : Type = 
+    VerbPhrase ** { c : Complement; postfix : Polarity => GenNum => Str };
 
---	     Anteriority = Simul | Anter ; -- predefined 
- 
 --3 Adjectives
 
 ----------------------- Parameter for adjectives ----------------------------------
@@ -123,6 +111,19 @@
 
   oper adj11forms : Type = { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 : Str };
   
+  oper empty11forms : adj11forms = { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "" };
+  
+  
+  -- this is because of the bug (undocumented feature) in GF. only two levels of nested records are possible, on the third level compiler throw a strange error about more than 6664 fields demanded. tables on second level are accepted, so adj11forms is translated into table and back.
+  
+  param param11 = X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 ;
+  
+  oper adj11table : Type = param11 => Str;
+  
+  oper table2record : adj11table -> adj11forms = \a -> { s1 = a!X1;s2 = a!X2;s3 = a!X3;s4 = a!X4;s5 = a!X5;s6 = a!X6;s7 = a!X7;s8 = a!X8;s9 = a!X9;s10 = a!X10;s11 = a!X11 };
+  
+  oper record2table : adj11forms -> adj11table = \a -> table { X1 => a.s1;X2 => a.s2;X3 => a.s3;X4 => a.s4;X5 => a.s5;X6 => a.s6;X7 => a.s7;X8 => a.s8;X9 => a.s9;X10 => a.s10;X11 => a.s11 };
+  
   oper Adj : Type = {
     pos : adj11forms;
     comp : adj11forms;
@@ -201,7 +202,7 @@
 --6 Complement definition
   
   param ComplCase = GenPrep | GenNoPrep | DatPrep | DatNoPrep |
-    AccPrep | AccNoPrep | InstrPrep | InstrNoPrep | LocPrep ;
+    AccPrep | AccNoPrep | InstrC | LocPrep ;
   
   oper 
   Complement : Type = {s : Str; c : ComplCase} ;
@@ -210,19 +211,25 @@
   mkCompl s c = { 
     s=s; 
     c = case s of { 
-      "" => case c of { Gen => GenNoPrep; Dat => DatNoPrep; Instr => InstrNoPrep; _ => AccNoPrep }; 
-      _  => case c of { Gen => GenPrep; Dat => DatPrep; Acc => AccPrep; Instr => InstrPrep; _ => LocPrep }
+      "" => case c of { Gen => GenNoPrep; Dat => DatNoPrep; Instr => InstrC; _ => AccNoPrep }; 
+      _  => case c of { Gen => GenPrep; Dat => DatPrep; Acc => AccPrep; Instr => InstrC; _ => LocPrep }
     }
   };
         
   extract_case = table {GenPrep => Gen; GenNoPrep => Gen; DatPrep => Dat;
-        DatNoPrep => Dat; AccPrep => Acc; AccNoPrep => Acc; InstrPrep => Instr; 
-        InstrNoPrep => Instr; LocPrep => Loc};
+        DatNoPrep => Dat; AccPrep => Acc; AccNoPrep => Acc; InstrC => Instr; 
+        LocPrep => Loc};
 
 --7 Various types
 -- possible problem: dzieci ,ktorych piecioro bawilo sie... / okna, ktorych piec stalo opartych o sciane...
   param GenNum = MascPersSg | MascAniSg | MascInaniSg | FemSg | NeutSg | MascPersPl | OthersPl;
 
+  --- AR 7/12/2010 for VerbPol.CompCN
+  oper numGenNum : GenNum -> Number = \n -> case n of {
+    MascPersPl | OthersPl => Pl ;
+    _ => Sg
+    } ;
+
   param MaybeGenNum = NoGenNum | JustGenNum GenNum;
 
   oper
@@ -237,6 +244,7 @@
     <Fem, Sg> => FemSg;
     <Neut, Sg> => NeutSg;
     <NeutGr, Sg> => NeutSg;
+    <Plur, Sg> => OthersPl; --plurale tantum
     <Masc Personal, Pl> => MascPersPl;
     _ => OthersPl
   };
@@ -260,21 +268,23 @@
   Determiner  : Type = { s,sp: Case => Gender => Str; n: Number; a: Accom};
 
   oper 
-    accom_case = table {
-      <DwaA,    Nom,     Masc Personal> => Gen;
-      <DwaA,    _,       NeutGr>        => Gen;
-      <PiecA,   Nom,     Masc Personal> => Gen;
-      <PiecA,   _,       NeutGr>        => Gen;
-      <PiecA,   Nom|Acc, Masc (Animate|Inanimate)|Neut|Fem> => Gen;
-      <StoA,    Nom,     Masc Personal> => Gen;
-      <StoA,    Nom|Acc, Masc (Animate|Inanimate)|Neut|Fem> => Gen;
-      <TysiacA, _,       _>             => Gen;
-      x                                 => x.p2
+    accom_case : Accom * Case * Gender => Case = 
+    table {
+      <DwaA,    Nom|VocP,     Masc Personal> => Gen;
+      <DwaA,    _,           NeutGr| Plur>   => Gen;
+      <PiecA,   Nom|VocP,     Masc Personal> => Gen;
+      <PiecA,   _,           NeutGr| Plur>   => Gen;
+      <PiecA,   Nom|VocP|Acc, Masc (Animate|Inanimate)|Neut|Fem> => Gen;
+      <StoA,    Nom|VocP,     Masc Personal> => Gen;
+      <StoA,    Acc,          Masc Personal> => Acc;
+      <StoA,    Nom|VocP|Acc, _>             => Gen;
+      <TysiacA, _,            _>             => Gen;
+      x                                      => x.p2
     };
 
     accom_gennum : Accom * Gender * Number => GenNum = 
       table {
-        <DwaA,    Masc Personal | NeutGr, _> => NeutSg;
+        <DwaA,    Masc Personal | NeutGr | Plur, _> => NeutSg;
         <PiecA,   _,                      _> => NeutSg;
         <StoA,    _,                      _> => NeutSg;
         <TysiacA, _,                      _> => NeutSg;
diff --git a/lib/src/polish/SentencePol.gf b/lib/src/polish/SentencePol.gf
--- a/lib/src/polish/SentencePol.gf
+++ b/lib/src/polish/SentencePol.gf
@@ -10,9 +10,9 @@
 --     PredVP    : NP -> VP -> Cl ;         -- John walks
     PredVP np vp = {
         s = \\pol,anter,tense =>
-            np.nom ++ vp.prefix !pol !np.gn ++
+            np.nom ++ vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, np.gn, np.p>) ++ 
-            vp.sufix !pol !np.gn ++ vp.postfix !pol !np.gn;
+            vp.sufix !pol !np.gn ;
     };
 
 --     UseCl    : Temp -> Pol -> Cl  -> S ;
@@ -40,11 +40,11 @@
     SlashVP np vps = {
         s = \\pol,anter,tense => case vps.exp of {
             True => 
-              np.nom ++ vps.prefix !pol !np.gn ++
+              np.nom ++ vps.prefix ++
               ((indicative_form vps.verb vps.imienne pol) !<tense, anter, np.gn, np.p>) ++ 
               vps.sufix !pol !np.gn  ++ vps.postfix !pol !np.gn;
             False => 
-              vps.prefix !pol !np.gn ++
+              vps.prefix ++
               ((indicative_form vps.verb vps.imienne pol) !<tense, anter, np.gn, np.p>) ++ 
               vps.sufix !pol !np.gn  ++ vps.postfix !pol !np.gn ++ np.nom
           };
@@ -67,9 +67,9 @@
     
 --     ImpVP     : VP -> Imp ;              -- love yourselves
     ImpVP vp = {
-        s = \\pol,num => vp.prefix !pol !MascAniSg ++
+        s = \\pol,num => vp.prefix ++
             (imperative_form vp.verb vp.imienne pol (cast_gennum!<Masc Personal, num>) P2) ++ 
-            vp.sufix !pol !MascAniSg ++ vp.postfix !pol !MascAniSg
+            vp.sufix !pol !MascAniSg 
     };
     
 --     AdvS     : Adv -> S  -> S ;            -- today, I will go home
@@ -79,16 +79,16 @@
     SlashPrep c p = { s=c.s; c=p };
 
 --     EmbedS    : S  -> SC ;               -- that she goes
-    EmbedS s = s;
+    EmbedS s = { s = [", że"] ++ s.s } ;
 
 --     EmbedQS   : QS -> SC ;               -- who goes
-    EmbedQS s = s;
+    EmbedQS s = { s = "," ++ s.s } ;
 
 --     EmbedVP   : VP -> SC ;               -- to go
     EmbedVP vp = {
-        s = vp.prefix !Pos !MascPersSg ++
+        s = vp.prefix ++
             (infinitive_form vp.verb vp.imienne Pos) ++ 
-            vp.sufix !Pos !MascPersSg ++ vp.postfix !Pos !MascPersSg
+            vp.sufix !Pos !MascPersSg 
     };
 
 --     RelS     : S -> RS -> S ;              -- she sleeps, which is good
@@ -97,8 +97,8 @@
 --     PredSCVP  : SC -> VP -> Cl ;         -- that she goes is good
     PredSCVP sc vp = {
         s = \\pol,anter,tense =>
-            sc.s ++ vp.prefix !pol !NeutSg ++
+            sc.s ++ vp.prefix ++
             ((indicative_form vp.verb vp.imienne pol) !<tense, anter, NeutSg, P3>) ++ 
-            vp.sufix !pol !NeutSg ++ vp.postfix !pol !NeutSg;
+            vp.sufix !pol !NeutSg 
     };
 }
diff --git a/lib/src/polish/StructuralPol.gf b/lib/src/polish/StructuralPol.gf
--- a/lib/src/polish/StructuralPol.gf
+++ b/lib/src/polish/StructuralPol.gf
@@ -2,19 +2,19 @@
 
 -- Ilona Nowak Wintersemester 2007/08  
 
--- Adam Slaski, 2009 <adam.slaski@gmail.com>
+-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
 
 -- In Polish language they aren't determiners like in english or german.
 
 concrete StructuralPol of Structural = CatPol ** 
-  open ResPol, MorphoPol, ParadigmsPol, Prelude in {
+  open ResPol, MorphoPol, Prelude in {
 
 
   flags optimize=all; coding=utf8;
 
 lin
 
-  above_Prep = mkPrep "nad" Instr; 
+  above_Prep = nadPrep;
   after_Prep = mkPrep "po"  Loc;
 
   all_Predet = { s=wszystek; np=wszystko; adj=True };
@@ -34,7 +34,7 @@
   by8means_Prep = mkPrep "przez" Acc;
   can8know_VV = mkItVerb (mkMonoVerb "umieć" conj101 Imperfective);
   can_VV  = mkItVerb (mkMonoVerb "móc" conj27 Imperfective);
-  during_Prep  = mkPrep "podczas" Gen; -- def. in ParadigmsPol
+  during_Prep  = mkPrep "podczas" Gen; 
   either7or_DConj = {s1="albo"; s2="albo";  sent1="albo"; sent2=[", albo"]};
   every_Det  = kazdyDet;
   everybody_NP = wszyscy ** {lock_NP=<>};
@@ -43,7 +43,7 @@
   except_Prep = mkPrep "z wyjątkiem" Acc;
   few_Det = pareDet;
   for_Prep = mkPrep "dla" Gen;
-  from_Prep  = mkPrep "z" Gen; -- def. in ParadigmsPol
+  from_Prep  = zGenPrep; 
   have_V2 = dirV2 (mkMonoVerb "mieć" conj100 Imperfective); 
   he_Pron  = pronOn;
   here_Adv = ss "tutaj";
@@ -62,7 +62,7 @@
   many_Det  = wieleDet;
   more_CAdv = {s = "bardziej" ; pn,p = "niż"; sn="więcej"} ;
   most_Predet = { s=wszystek; np={nom="większość"; voc="większości"; 
-    dep=table{AccPrep|AccNoPrep=>"większość"; InstrPrep|InstrNoPrep=>"większością"; _=>"większości"}; 
+    dep=table{AccPrep|AccNoPrep=>"większość"; InstrC=>"większością"; _=>"większości"}; 
     p=P3; gn=FemSg}; adj=False };
   much_Det   = duzoDet;
   must_VV = mkItVerb (mkMonoVerb "musieć" conj93 Imperfective);
@@ -94,7 +94,7 @@
   they_Pron = pronOni;-- pronOneFem; pronOneNeut};
   this_Quant = demPronTen "ten";
   through_Prep  = mkPrep "przez" Acc;
-  to_Prep = mkPrep "do" Gen; -- def. in ParadigmsPol.gf
+  to_Prep = doPrep; 
   too_AdA = ss "za"; 
   under_Prep = mkPrep "pod" Instr; -- with Acc too
   very_AdA = ss "bardzo";
@@ -110,7 +110,7 @@
   whoSg_IP = kto;
   why_IAdv = ss "dlaczego";
   with_Prep = mkPrep "z" Instr;
-  without_Prep = mkPrep "bez" Gen; -- def. in ParadigmsPol.gf
+  without_Prep = mkPrep "bez" Gen;
   youPl_Pron = pronWy;
   yes_Utt = ss "tak";
   youSg_Pron = pronTy;
diff --git a/lib/src/polish/SymbolPol.gf b/lib/src/polish/SymbolPol.gf
--- a/lib/src/polish/SymbolPol.gf
+++ b/lib/src/polish/SymbolPol.gf
@@ -34,7 +34,7 @@
 
   SymbS sy = sy ; 
 
-  SymbNum sy = { s = \\_,_=>sy.s; a=NoA; n=Pl };
+  SymbNum sy = { s = \\_,_=>sy.s; a=StoA; n=Pl };
   SymbOrd sy = { s = \\af => sy.s ++ (mkAtable (guess_model "-ty"))!af} ;
 
 lincat 
diff --git a/lib/src/polish/VerbMorphoPol.gf b/lib/src/polish/VerbMorphoPol.gf
--- a/lib/src/polish/VerbMorphoPol.gf
+++ b/lib/src/polish/VerbMorphoPol.gf
@@ -13,12 +13,12 @@
 
 -- According to "Czasownik polski. Odmiana. Slownik." by Zygmunt Saloni 2001 
 -- there are 106 schemes of verb inflection in Polish. I implement only 
--- these, which are necessery. Numeration as in mentioned book.
+-- these, which are necessery. Numeration as in the book mentioned above.
 
 -- opers for the building of the whole paradigm of a verb
 -- in all tenses
 
-  oper ConjCl : Type = Str -> { s:VFormM => Str; p:AForm=>Str };
+  oper ConjCl : Type = Str -> { s:VFormM => Str; p:adj11table };
 
   oper conj1 : ConjCl = 
     \byc -> 
@@ -247,14 +247,14 @@
     Str -> Str -> ConjCl;
   oper mkRegItConjCl pytac pyta j jmy jcie m sz sg3 my cie ja l la lo li ly = {
     s = mkVerbTable pytac pyta j jmy jcie m sz sg3 my cie ja l la lo li ly;
-    p = \\_=> "["++pytac ++ [": the participle form does not exist]"]
+    p = record2table { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "["++pytac ++ [": the participle form does not exist]"] };
   };
     
   oper mkRegConjCl : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> 
     Str -> Str -> Str -> Str -> ConjCl;
   oper mkRegConjCl pytac pyta j jmy jcie m sz sg3 my cie ja l la lo li ly n npl = {
     s = mkVerbTable pytac pyta j jmy jcie m sz sg3 my cie ja l la lo li ly;
-    p = mkAtable (Adj.model4 (pyta+n+"y") (pyta+npl+"i"))
+    p = record2table (Adj.model4 (pyta+n+"y") (pyta+npl+"i"))
   };
     
   oper mkVerbTable : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> 
@@ -320,7 +320,8 @@
 	  sp = v.sp;
 	  refl = "się";
 	  asp = v.asp;
-	  ppart =  v.ppart
+	  ppartp =  v.ppartp;
+	  pparti =  v.pparti
 	 };
  
 -- intransitive verbs
@@ -331,7 +332,8 @@
 	  sp = v.sp;
 	  refl = v.refl;
 	  asp = v.asp;
-	  ppart = \\_=> "["++v.si!VInfM ++ [": the participle form does not exist]"]
+	  ppartp = record2table { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "["++v.si!VInfM ++ [": the participle form does not exist]"]};
+	  pparti = record2table { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "["++v.si!VInfM ++ [": the participle form does not exist]"]}
 	 };
 	 
 -- monoaspective verbs
@@ -342,18 +344,20 @@
 	 sp = tmp.s; 
 	 refl = "";
 	 asp = a;
-	 ppart= tmp.p
+	 ppartp = tmp.p;
+	 pparti = tmp.p
 	 };
 
 -- normal verbs
   
   oper mkVerb : Str -> ConjCl -> Str -> ConjCl -> Verb = 
-	 \s, c, s2, c2 -> let tmp = (c2 s2) in 
-	 {si = (c s).s;
-	 sp = tmp.s;
+	 \s, c, s2, c2 -> let tmpp = (c2 s2); tmpi = (c s) in 
+	 {si = tmpi.s;
+	 sp = tmpp.s;
 	 refl = "";
 	 asp = Dual;
-	 ppart = tmp.p
+	 ppartp = tmpp.p;
+	 pparti = tmpi.p
 	 };
 
 -- Comlicated verbs
@@ -366,7 +370,8 @@
 	 {si = \\form => v.si !form ++ s;
 	 sp = \\form => v.sp !form ++ s;
 	 refl = v.refl; asp = v.asp;
-	 ppart = v.ppart
+	 ppartp = record2table { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "["++v.si!VInfM ++s++ [": the participle form does not exist]"]};
+	 pparti = record2table { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11 = "["++v.si!VInfM ++s++ [": the participle form does not exist]"]}
 	 };
 
   
@@ -385,18 +390,6 @@
 
   dirV3 : Verb -> V3; -- a typical case ie. "zabrać", "dać"
   dirV3 v = mkV3 v "" "" Acc Dat; 
-
--- conditional endings - not present
-{-  oper condEnd :  Number -> Person -> Str = \n,p ->
-    case <n,p> of {
-      <Sg, P1> => "bym";
-      <Sg, P2> => "byś";
-      <Sg, P3> => "by";
-      <Pl, P1> => "byśmy";
-      <Pl, P2> => "byście";
-      <Pl, P3> => "by"
-    };-}
-
 	   
     indicative_form : Verb -> Bool -> Polarity -> Tense * Anteriority * GenNum * Person => Str;
     indicative_form verb imienne pol = 
@@ -406,37 +399,35 @@
             let perf = verb.sp; in
             let imperf = verb.si; in
             table {
-                <Pres, Simul, gn, p>   =>  nie ++ imperf ! (VFinM (extract_num!gn) p) ++ sie 
-                ;  --# notpresent
-                <Pres, Anter, gn, p>   =>  nie ++ perf   ! (VPraetM gn p) ++ sie ;  --# notpresent
-                <Past, _, gn, p>       =>  nie ++ perf   ! (VPraetM gn p) ++ sie ; --# notpresent
-                <Fut, Simul, gn, p>    =>  nie ++ bedzie ! <(extract_num!gn), p> ++ sie ++ imperf ! (VPraetM gn P3); --# notpresent
-                <Fut, Anter, gn, p>    =>  nie ++ perf ! (VFinM (extract_num!gn) p) ++ sie; --# notpresent
-                <Cond, Simul, gn, p>   =>  nie ++ imperf ! (VCondM gn p) ++ sie; --# notpresent
-                <Cond, Anter, gn, p>   =>  nie ++ perf   ! (VCondM gn p) ++ sie --# notpresent
+                <Pres, Simul, gn, p>   =>  nie ++ imperf ! (VFinM (extract_num!gn) p) ++ sie ;
+                <Pres, Anter, gn, p>   =>  nie ++ perf   ! (VPraetM gn p) ++ sie ;
+                <Past, _, gn, p>       =>  nie ++ perf   ! (VPraetM gn p) ++ sie ;
+                <Fut, Simul, gn, p>    =>  nie ++ bedzie ! <(extract_num!gn), p> ++ sie ++ imperf ! (VPraetM gn P3);
+                <Fut, Anter, gn, p>    =>  nie ++ perf ! (VFinM (extract_num!gn) p) ++ sie;
+                <Cond, Simul, gn, p>   =>  nie ++ imperf ! (VCondM gn p) ++ sie;
+                <Cond, Anter, gn, p>   =>  nie ++ perf   ! (VCondM gn p) ++ sie
             }
         };
         
     imienne_form : Verb -> Polarity -> Tense * Anteriority * GenNum * Person => Str;
-    imienne_form verb pol = 
+    imienne_form verb pol =
         let byc    = (case verb.asp of { Perfective   => conj3 "zostać"; _ => conj1 "być"    }).s; in
         let zostac = (case verb.asp of { Imperfective => conj1 "być";    _ => conj3 "zostać" }).s; in
         let nie = case pol of { Pos => "" ; Neg => "nie" }; in
-        table { 
-            <Pres, Simul, gn, p> => nie ++ byc ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom
-            ;  --# notpresent
-            <Pres, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Past, Simul, gn, p> => nie ++ byc ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Past, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Fut,  Simul, gn, p> => nie ++ case verb.asp of { --# notpresent
-                Perfective => zostac ! (VFinM (extract_num!gn) p); --# notpresent
-                _          => bedzie ! <extract_num!gn, p> --# notpresent
-            } ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Fut,  Anter, gn, p> => nie ++ zostac ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Cond, Simul, gn, p> => nie ++ byc ! (VCondM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
-            <Cond, Anter, gn, p> => nie ++ zostac ! (VCondM gn p) ++ verb.ppart ! AF gn Nom --# notpresent
+        table {
+            <Pres, Simul, gn, p> => nie ++ byc ! (VFinM (extract_num!gn) p) ++ (mkAtable (table2record verb.pparti)) ! AF gn Nom;
+            <Pres, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ (mkAtable (table2record verb.ppartp)) ! AF gn Nom;
+            <Past, Simul, gn, p> => nie ++ byc ! (VPraetM gn p) ++ (mkAtable (table2record verb.pparti)) ! AF gn Nom;
+            <Past, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ (mkAtable (table2record verb.ppartp)) ! AF gn Nom;
+            <Fut,  Simul, gn, p> => nie ++ case verb.asp of {
+                Perfective => zostac ! (VFinM (extract_num!gn) p) ++ (mkAtable (table2record verb.ppartp)) ! AF gn Nom;
+                _          => bedzie ! <extract_num!gn, p>  ++ (mkAtable (table2record verb.pparti)) ! AF gn Nom
+            };
+            <Fut,  Anter, gn, p> => nie ++ zostac ! (VFinM (extract_num!gn) p) ++ (mkAtable (table2record verb.ppartp)) ! AF gn Nom;
+            <Cond, Simul, gn, p> => nie ++ byc ! (VCondM gn p) ++ (mkAtable (table2record verb.pparti)) ! AF gn Nom;
+            <Cond, Anter, gn, p> => nie ++ zostac ! (VCondM gn p) ++ (mkAtable (table2record verb.ppartp)) ! AF gn Nom
         };
-   
+            
     bedzie : Number * Person => Str = table {
         <Sg, P1> => "będę";
         <Sg, P2> => "będziesz";
@@ -453,8 +444,8 @@
                 let badz   = (case verb.asp of { Perfective   => zostan_op; _ => badz_op   })!<(extract_num!gn), p> in
                 let zostan = (case verb.asp of { Imperfective => badz_op;   _ => zostan_op })!<(extract_num!gn), p> in
                 case pol of {
-                    Pos => badz ++ verb.ppart! AF gn Nom;
-                    Neg => "nie" ++ zostan ++ verb.ppart! AF gn Nom
+                    Pos => badz ++ (mkAtable (table2record verb.pparti))! AF gn Nom;
+                    Neg => "nie" ++ zostan ++ (mkAtable (table2record verb.ppartp))! AF gn Nom
                 };
             False => 
                 let sie = verb.refl; in
@@ -484,8 +475,8 @@
             True =>
                 let byc = case verb.asp of { Perfective   => "zostać"; _ => "być" }; in
                 case pol of {
-                    Pos => byc ++ verb.ppart! AF MascPersSg Nom;
-                    Neg => "nie" ++ byc ++ verb.ppart! AF MascPersSg Nom
+                    Pos => byc ++ (mkAtable (table2record verb.pparti))! AF MascPersSg Nom;
+                    Neg => "nie" ++ byc ++ (mkAtable (table2record verb.pparti))! AF MascPersSg Nom
                     };
             False => 
                 let sie = verb.refl; in
@@ -513,5 +504,23 @@
         <Pl, P2> => ["zostańcie"];
         <Pl, P3> => ["niech zostaną"]
     };
+
+    jest_op : GenNum * Person * Tense * Anteriority => Str = 
+      let byc =  (conj1 "być").s in table {
+        <gn, p, Pres, Simul> => byc ! (VFinM (extract_num!gn) p);
+        <gn, p, Pres, Anter> => byc ! (VPraetM gn p);
+        <gn, p, Past, _    > => byc ! (VPraetM gn p);
+        <gn, p, Fut , _    > => bedzie ! <(extract_num!gn), p>;
+        <gn, p, Cond, _    > => byc ! (VCondM gn p)
+      };
+
+    niema_op : Tense * Anteriority => Str = 
+      let byc =  conj1 "być" in table {
+        <Pres, Simul> => ["nie ma"];
+        <Pres, Anter> => ["nie było"];
+        <Past, _    > => ["nie było"];
+        <Fut , _    > => ["nie będzie"];
+        <Cond, _    > => ["nie byłoby"]
+      };
 
 }
diff --git a/lib/src/polish/VerbPol.gf b/lib/src/polish/VerbPol.gf
--- a/lib/src/polish/VerbPol.gf
+++ b/lib/src/polish/VerbPol.gf
@@ -11,48 +11,53 @@
 
     PassV2  v = setImienne (defVP (castv2 v)) True; 
      
-    SlashV2a v = (defVP (castv2 v)) ** {c=v.c}; 
+    SlashV2a v = (defVP (castv2 v)) ** {c=v.c; postfix=\\_,_=>""}; 
 
-    Slash2V3 v3 np = (setSufix (defVP (castv3 v3)) 
+    Slash2V3 v3 np = setSlash (defVP (castv3 v3)) 
         (\\p,gn =>
-          v3.c.s ++ np.dep ! (npcase !<p,v3.c.c>) )) 
-        ** {c=v3.c2}; 
+          v3.c.s ++ np.dep ! (npcase !<p,v3.c.c>) ) 
+        v3.c2; 
 
-    Slash3V3 v3 np = (setSufix (defVP (castv3 v3)) 
+    Slash3V3 v3 np = (setSlash (defVP (castv3 v3)) 
         (\\p,gn => 
           v3.c2.s ++ np.dep ! (npcase !<p,v3.c2.c>) )) 
-        ** {c=v3.c}; 
+        v3.c; 
 
 --     ComplSlash : VPSlash -> NP -> VP ; -- love it
-    ComplSlash vps np = setSufix vps (\\p,gn =>
-          vps.sufix!p!gn ++ vps.c.s ++ np.dep !(npcase !<p,vps.c.c>)); 
+    ComplSlash vps np = setSufix2 vps (\\p,gn =>
+          vps.sufix!p!gn ++ vps.c.s ++ np.dep !(npcase !<p,vps.c.c>) ++ vps.postfix!p!gn); 
 
 --     AdvVP    : VP -> Adv -> VP ;        -- sleep here
-    AdvVP vp adv = setPrefix vp (\\p,gn => vp.prefix!p!gn ++ adv.s);
+    AdvVP vp adv = setPrefix vp (vp.prefix ++ adv.s);
 
 --     AdVVP    : AdV -> VP -> VP ;        -- always sleep
-    AdVVP adV vp = setPrefix vp (\\p,gn => vp.prefix!p!gn ++ adV.s);
+    AdVVP adV vp = setPrefix vp (vp.prefix ++ adV.s);
 
 --     ReflVP   : VPSlash -> VP ;         -- love himself 
-    ReflVP vps = setSufix vps (\\p,gn => vps.sufix!p!gn ++ vps.c.s ++ siebie ! (extract_case! vps.c.c));
+    ReflVP vps = setSufix vps 
+      (\\p,gn => vps.sufix!p!gn ++ vps.c.s ++ siebie ! (extract_case! vps.c.c) ++ vps.postfix!p!gn);
 
 --     CompAP   : AP  -> Comp ;            -- (be) small
     CompAP ap = { s = \\gn => ap.s ! AF gn Nom };
 
+    CompCN cn = { s = \\gn => cn.s ! numGenNum gn ! Nom }; --- AR 7/12/2010
+
 --     CompNP   : NP  -> Comp ;            -- (be) a man
-    CompNP np = { s = \\gn => np.dep !InstrNoPrep };
+    CompNP np = { s = \\gn => np.dep !InstrC };
 
 --     CompAdv  : Adv -> Comp ;            -- (be) here
     CompAdv adv = { s = \\_ => adv.s };
     
 --     UseComp  : Comp -> VP ;            -- be warm
-    UseComp c = setImienne (setSufix (defVP {si = \\_=>[]; sp = \\_=>[]; asp = Imperfective; refl = ""; ppart=\\_=>""})
+    UseComp c = setImienne (setSufix (defVP {si = \\_=>[]; sp = \\_=>[]; 
+        asp = Imperfective; refl = ""; ppartp,pparti= record2table empty11forms
+        })
         (\\_,gn => c.s!gn))
         True;
     
 --     ComplVV  : VV  -> VP -> VP ;  -- want to run
     ComplVV vv vp = setSufix (defVP vv) 
-        (\\p,gn => vp.prefix !p!gn ++ vp.verb.si !VInfM ++  vp.sufix !p!gn);
+        (\\p,gn => vp.prefix ++ vp.verb.si !VInfM ++  vp.sufix !p!gn);
     
 --     ComplVQ  : VQ  -> QS -> VP ;  -- wonder who runs
     ComplVQ vq qs = setSufix (defVP vq) (\\p,gn => "," ++ qs.s);
@@ -65,85 +70,104 @@
         case va.c.adv of { False => a.s!(AF gn va.c.c); True => a.adv } );
 
 --     SlashV2V : V2V -> VP -> VPSlash ;  -- beg (her) to go
-    SlashV2V v vp = (setPostfix (defVP (castv2 v))
-        (\\p,gn => vp.prefix !p!gn ++ vp.verb.si !VInfM ++  vp.sufix !p!gn))
-        ** {c = v.c};
+    SlashV2V v vp = setPostfix (defVP (castv2 v))
+        (\\p,gn => vp.prefix ++ vp.verb.si !VInfM ++  vp.sufix !p!gn)
+        v.c;
 
 --     SlashV2S : V2S -> S  -> VPSlash ;  -- answer (to him) that it is good
-    SlashV2S v s = (setPostfix (defVP (castv2 v))
-        (\\_,_ => [", że"] ++ s.s))
-        ** {c = v.c};
+    SlashV2S v s = setPostfix (defVP (castv2 v))
+        (\\_,_ => [", że"] ++ s.s)
+        v.c;
 --     SlashV2Q : V2Q -> QS -> VPSlash ;  -- ask (him) who came
-    SlashV2Q v qs = (setPostfix (defVP (castv2 v))
-        (\\_,_ => "," ++ qs.s))
-        ** {c = v.c};
+    SlashV2Q v qs = setPostfix (defVP (castv2 v))
+        (\\_,_ => "," ++ qs.s)
+        v.c;
     
 --     SlashVV    : VV  -> VPSlash -> VPSlash ;       -- want to buy
-    SlashVV v vps = (setPostfix (setSufix (defVP v)
-        (\\p,gn => vps.prefix !p!gn ++ vps.verb.si !VInfM ++ vps.sufix !p!gn)) --???? why !pg
-        vps.postfix)
-        ** {c = vps.c};
+    SlashVV v vps = setPostfix (setSufix (defVP v)
+        (\\p,gn => vps.prefix ++ vps.verb.si !VInfM ++ vps.sufix !p!gn)) --???? why !pg
+        vps.postfix
+        vps.c;
 
 --     SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
-    SlashV2VNP v np vps = (setPostfix (setSufix (defVP (castv2 v))
+    SlashV2VNP v np vps = setPostfix (setSufix (defVP (castv2 v))
         (\\p,gn =>
-            np.dep !(npcase !<p,v.c.c>) ++ vps.prefix !p!gn ++ 
+            np.dep !(npcase !<p,v.c.c>) ++ vps.prefix ++ 
             vps.verb.si !VInfM ++ vps.sufix !p!gn))
-        vps.postfix)
-        ** {c = vps.c};
+        vps.postfix
+        vps.c;
         
 --     SlashV2A : V2A -> AP -> VPSlash ;  -- paint (it) red
-    SlashV2A va a = (setPostfix (defVP (castv2a va))
-        (\\_,gn => va.c.s ++ case va.c.adv of { False => a.s!(AF gn va.c.c); True => a.adv })) 
-        ** {c = va.c2};
+    SlashV2A va a = setPostfix (defVP (castv2a va))
+        (\\_,gn => va.c.s ++ case va.c.adv of { False => a.s!(AF gn va.c.c); True => a.adv })
+        va.c2;
     
     
 oper 
-    castv2 : (Verb ** { c:Complement }) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppart=v2.ppart};
+    castv2 : (Verb ** { c:Complement }) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppartp=v2.ppartp; pparti=v2.pparti};
     
-    castv3 : (Verb ** { c,c2:Complement }) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppart=v2.ppart};
+    castv3 : (Verb ** { c,c2:Complement }) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppartp=v2.ppartp; pparti=v2.pparti};
   
-    castva : (Verb ** { c:{c:Case; s:Str}}) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppart=v2.ppart};
+    castva : (Verb ** { c:{c:Case; s:Str}}) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppartp=v2.ppartp; pparti=v2.pparti};
   
-    castv2a : (Verb ** { c:{c:Case; s:Str}; c2:Complement}) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppart=v2.ppart};
+    castv2a : (Verb ** { c:{c:Case; s:Str}; c2:Complement}) -> Verb = \v2 -> {si=v2.si;sp=v2.sp;asp=v2.asp;refl=v2.refl; ppartp=v2.ppartp; pparti=v2.pparti};
     
   defVP : Verb -> VerbPhrase = \v -> { 
-        prefix  = \\p,gn => "";
+        prefix  = "";
         sufix   = \\p,gn => "";
-        postfix = \\p,gn => "";
         verb = v;
         imienne = False;
         exp = False
     };
    
-  setPrefix : VerbPhrase -> (Polarity => GenNum => Str) -> VerbPhrase 
+  setPrefix : VerbPhrase -> Str -> VerbPhrase 
     = \vp,s -> {
         prefix  = s;
         sufix   = vp.sufix;
         postfix = vp.postfix;
         verb = vp.verb;
         imienne = vp.imienne;
-        exp = True
+        exp = vp.exp -- adding adverb is not an expansion
     };
 
   setSufix : VerbPhrase -> (Polarity => GenNum => Str) -> VerbPhrase 
     = \vp,s -> {
         prefix  = vp.prefix;
         sufix   = s;
-        postfix = vp.postfix;
         verb = vp.verb;
         imienne = vp.imienne;
         exp = True
     };
     
-  setPostfix : VerbPhrase -> (Polarity => GenNum => Str) -> VerbPhrase 
+  setSufix2 : VerbPhraseSlash -> (Polarity => GenNum => Str) -> VerbPhrase 
     = \vp,s -> {
         prefix  = vp.prefix;
+        sufix   = s;
+        verb = vp.verb;
+        imienne = vp.imienne;
+        exp = True
+    };
+  
+  setSlash : VerbPhrase -> (Polarity => GenNum => Str) -> Complement -> VerbPhraseSlash 
+    = \vp,s,c -> {
+        prefix  = vp.prefix;
+        sufix   = s;
+        postfix = \\_,_=>"";
+        verb = vp.verb;
+        imienne = vp.imienne;
+        exp = True;
+        c = c
+    };
+    
+  setPostfix : VerbPhrase -> (Polarity => GenNum => Str) -> Complement -> VerbPhraseSlash
+    = \vp,s,c -> {
+        prefix  = vp.prefix;
         sufix   = vp.sufix;
         postfix = s;
         verb = vp.verb;
         imienne = vp.imienne;
-        exp = True
+        exp = True;
+        c=c
     };
     
   setImienne : VerbPhrase -> Bool -> VerbPhrase 
diff --git a/lib/src/prelude/Formal.gf b/lib/src/prelude/Formal.gf
--- a/lib/src/prelude/Formal.gf
+++ b/lib/src/prelude/Formal.gf
@@ -19,6 +19,11 @@
     infixn : Prec -> Str -> (_,_ : TermPrec) -> TermPrec = \p,f,x,y ->
       mkPrec p (usePrec (nextPrec p) x ++ f ++ usePrec (nextPrec p) y) ;
 
+    prefix : Prec -> Str -> TermPrec -> TermPrec = \p,f,x ->
+      mkPrec p (f ++ usePrec p x) ;
+    postfix : Prec -> Str -> TermPrec -> TermPrec = \p,f,x ->
+      mkPrec p (usePrec p x ++ f) ;
+
 -- auxiliaries, should not be needed so much
 
     usePrec : Prec -> TermPrec -> Str = \p,x ->
diff --git a/lib/src/probs b/lib/src/probs
--- a/lib/src/probs
+++ b/lib/src/probs
@@ -10,8 +10,12 @@
 
 PredVP 0.9
 
-DetCN 0.7
-UsePron 0.2
+DetCN 0.8
+UsePron 0.1
+something_NP 0.01
+somebody_NP 0.01
+everything_NP 0.01
+everybody_NP 0.01
 
 SlashV2 0.8
 
@@ -30,3 +34,6 @@
 
 ApposCN 0.01
 
+ExistNP 0.0001
+UseCopula 0.01
+ConjS 0.1
diff --git a/lib/src/punjabi/AdjectivePnb.gf b/lib/src/punjabi/AdjectivePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/AdjectivePnb.gf
@@ -0,0 +1,39 @@
+concrete AdjectivePnb of Adjective = CatPnb ** open ResPnb, Prelude in {
+
+  flags coding = utf8;
+  lin
+
+    PositA a = a ;
+	UseComparA a = a;
+
+    ComparA a np = {
+        s = \\n,g,c => np.s ! NPC Obl ++ "توں" ++ a.s ! n ! g ! c  ;                       
+       } ;
+
+---- $SuperlA$ belongs to determiner syntax in $Noun$.
+
+    ComplA2 a np = {
+      s = \\n,g,c => np.s ! NPC Obl ++ a.c2 ++ a.s ! n ! g ! c  ; 
+     } ;
+
+    ReflA2 a = {
+      s = \\n,g,c => a.s ! n ! g ! c   ++  RefPron ++ "نال" ; 
+      } ;
+
+    SentAP ap sc = {
+      s = \\n,g,c => ap.s ! n ! g ! c ++ sc.s ; 
+      } ;
+
+    AdAP ada ap = {
+      s = \\n,g,c => ada.s ++ ap.s ! n ! g ! c ;
+      } ;
+
+    UseA2 a = a ;
+	
+	CAdvAP  cadv ap np = {
+	 s = \\n,g,c => cadv.s ++ ap.s ! n ! g ! c ++ cadv.p ++  np.s ! NPC Dir ;
+	 };
+    
+    AdjOrd ord =  { s = \\_,_,_ => ord.s ; };
+
+}
diff --git a/lib/src/punjabi/AdverbPnb.gf b/lib/src/punjabi/AdverbPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/AdverbPnb.gf
@@ -0,0 +1,21 @@
+concrete AdverbPnb of Adverb = CatPnb ** open ResPnb, Prelude in {
+
+  flags coding = utf8;
+  lin
+    PositAdvAdj a = {s = \\g => a.s ! Sg ! g ! Obl } ;
+    ComparAdvAdj cadv a np = {
+      s = \\g => np.s ! NPObj  ++ cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl ;  
+      } ;
+    ComparAdvAdjS cadv a s = {
+      s = \\g => cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl   ++  s.s;
+      } ;
+
+    PrepNP prep np = {s = \\_ => np.s ! NPObj ++ prep.s } ;
+
+    AdAdv ada adv = { s = \\g => ada.s ++ adv.s ! g} ;
+
+--    SubjS = cc2 ;
+    SubjS sub snt = {s = \\_ => sub.s ++ snt.s } ;
+    AdnCAdv cadv = {s = "نالوں" ++ cadv.s} ;
+
+}
diff --git a/lib/src/punjabi/AllPnb.gf b/lib/src/punjabi/AllPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/AllPnb.gf
@@ -0,0 +1,6 @@
+--# -path=.:../abstract:../common:../prelude
+
+concrete AllPnb of AllPnbAbs =
+  LangPnb,
+  ExtraPnb
+  ** {} ;
diff --git a/lib/src/punjabi/AllPnbAbs.gf b/lib/src/punjabi/AllPnbAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/AllPnbAbs.gf
@@ -0,0 +1,4 @@
+abstract AllPnbAbs =
+  Lang,
+  ExtraPnbAbs
+  ** {} ;
diff --git a/lib/src/punjabi/CatPnb.gf b/lib/src/punjabi/CatPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/CatPnb.gf
@@ -0,0 +1,87 @@
+concrete CatPnb of Cat = CommonX - [Adv] ** open ResPnb, Prelude in {
+
+  flags optimize=all_subs ;
+
+  lincat
+------ Tensed/Untensed
+
+    S  = {s : Str} ;
+    QS = {s : QForm => Str} ;
+    RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
+    SSlash = {s : Str ; c2 : ResPnb.Compl} ;
+
+---- Sentence
+
+    Cl = ResPnb.Clause ;
+    ClSlash = {
+      s : ResPnb.VPHTense => Polarity => Order => Str ;
+      c2 : ResPnb.Compl
+      } ;
+    Imp = {s : CPolarity => ImpForm => Str} ;
+
+---- Question
+    QCl = {s : ResPnb.VPHTense => Polarity => QForm => Str} ;
+    IP = {s: Case => Str ; g : Gender ; n : Number};
+    IDet = {s :Gender => Str ; n : Number} ;
+    IQuant = {s : Number => Str} ;
+
+---- Relative
+
+    RCl = {
+      s : ResPnb.VPHTense => Polarity => Order => Agr => Str ; 
+      c : Case
+      } ;
+    RP = {s: Number => Case => Str ; a:RAgr};
+
+---- Verb
+
+    VP = ResPnb.VPH ;
+    VPSlash = ResPnb.VPHSlash ;
+    Comp = {s : Agr => Str} ;
+    
+---- Adv    
+    Adv = {s : Gender => Str} ;
+---- Adjective
+
+    AP = ResPnb.Adjective1 ;
+
+---- Noun
+
+    CN = ResPnb.Noun ;
+    NP = ResPnb.NP ;
+    Pron = {s : Case => Str ; ps : Str ; a : Agr};
+    Det = ResPnb.Determiner ;
+    Predet = {s : Str} ;
+    Num  = {s : Str ; n : Number} ;
+    Card = {s : Str; n : Number} ;
+    Ord = {s : Str; n : Number} ;
+    Quant = {s:Number => Gender => Case => Str ; a:Agr};
+    Art = {s : Str} ;
+
+---- Numeral
+
+    Numeral = {s : CardOrd => Str ; n : Number} ;
+    Digits  = {s : CardOrd => Str ; n : Number } ;
+
+---- Structural
+
+    Conj = {s1,s2 : Str ; n : Number} ;
+-----b    Conj = {s : Str ; n : Number} ;
+-----b    DConj = {s1,s2 : Str ; n : Number} ;
+    Subj = {s : Str} ;
+    Prep = ResPnb.Preposition;
+---- Open lexical classes, e.g. Lexicon
+
+    V, VS, VQ, VA = ResPnb.Verb ; -- = {s : VForm => Str} ;
+    V2, V2A, V2Q, V2S = ResPnb.Verb ** {c2 : Compl} ;
+    V3 = ResPnb.Verb ** {c2, c3 : Str} ;
+    VV = ResPnb.Verb ** { isAux : Bool} ;
+    V2V = ResPnb.Verb ** {c1 : Str ; c2 : Str ; isAux : Bool} ;
+    A = ResPnb.Adjective1 ; --- {s : Gender => Number => Case => Str} ;
+    A2 = ResPnb.Adjective1 ** { c2 : Str} ;
+    N = {s : Number => Case => Str ; g : Gender} ;
+    N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str } ;
+    N3 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str ; c4 : Str} ;
+    PN = {s : Case => Str ; g : Gender} ;
+
+}
diff --git a/lib/src/punjabi/ConjunctionPnb.gf b/lib/src/punjabi/ConjunctionPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/ConjunctionPnb.gf
@@ -0,0 +1,47 @@
+--concrete ConjunctionPnb of Conjunction = 
+--  CatPnbu ** open ResPnb, Coordination, Prelude in {
+
+concrete ConjunctionPnb of Conjunction = 
+  CatPnb ** open ResPnb, Coordination, Prelude in {
+
+
+  flags optimize=all_subs ;
+
+  lin
+
+    ConjS  = conjunctDistrSS  ;
+
+--    ConjAdv = conjunctDistrSS ;
+    ConjAdv conj advs = conjunctDistrTable Gender conj advs ;
+
+    ConjNP conj ss = conjunctDistrTable NPCase conj ss ** {
+      a = conjAgr (agrP3 Masc conj.n) ss.a ;
+      isPron = ss.isPron ;
+      } ;
+
+    ConjAP conj ss = conjunctDistrTable3 Number Gender Case conj ss ; 
+    ConjRS conj rs = conjunctDistrTable Agr conj rs ** { c = rs.c};
+
+---- These fun's are generated from the list cat's.
+
+    BaseS = twoSS ;
+    ConsS = consrSS comma ;
+--    BaseAdv = twoSS ;
+    BaseAdv x y = twoTable Gender x y  ;
+--    ConsAdv = consrSS comma ;
+    ConsAdv xs x = consrTable Gender comma xs x ;
+    BaseNP x y = twoTable NPCase x y ** {a = conjAgr x.a y.a ; isPron = andB x.isPron y.isPron} ;
+    BaseRS x y = twoTable Agr x y ** {c = x.c};
+    ConsNP xs x = consrTable NPCase comma xs x ** {a = conjAgr xs.a x.a ; isPron = andB xs.isPron x.isPron} ;
+    ConsRS xs x = consrTable Agr comma xs x ** { c = xs.c};
+    BaseAP x y = twoTable3 Number Gender Case x y ; -- ** {isPre = andB x.isPre y.isPre} ;
+    ConsAP xs x = consrTable3 Number Gender Case comma xs x ;-- ** {isPre = andB xs.isPre x.isPre} ;
+
+  lincat
+    [S] = {s1,s2 : Str} ;
+    [Adv] = {s1,s2 : Gender => Str} ;
+    [NP] = {s1,s2 : NPCase => Str ; a : Agr ; isPron : Bool} ;
+    [AP] = {s1,s2 : Number => Gender => Case => Str} ;
+    [RS] = {s1,s2 : Agr => Str ; c : Case};
+
+}
diff --git a/lib/src/punjabi/Coordination.gf b/lib/src/punjabi/Coordination.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/Coordination.gf
@@ -0,0 +1,170 @@
+resource Coordination = open Prelude in {
+
+param
+  ListSize = TwoElem | ManyElem ;
+
+oper 
+  ListX = {s1,s2 : Str} ;
+
+  twoStr : (x,y : Str) -> ListX = \x,y -> 
+    {s1 = x ; s2 = y} ; 
+  consStr : Str -> ListX -> Str -> ListX = \comma,xs,x -> 
+    {s1 = xs.s1 ++ comma ++ xs.s2 ; s2 = x } ; 
+
+  twoSS : (_,_ : SS) -> ListX = \x,y -> 
+    twoStr x.s y.s ;
+  consSS : Str -> ListX -> SS -> ListX = \comma,xs,x -> 
+    consStr comma xs x.s ;
+
+  Conjunction : Type = SS ;
+  ConjunctionDistr : Type = {s1 : Str ; s2 : Str} ;
+
+  conjunctX : Conjunction -> ListX -> Str = \or,xs ->
+    xs.s1 ++ or.s ++ xs.s2 ;
+
+  conjunctDistrX : ConjunctionDistr -> ListX -> Str = \or,xs ->
+    or.s1 ++ xs.s1 ++ or.s2 ++ xs.s2 ;
+
+  conjunctSS : Conjunction -> ListX -> SS = \or,xs ->
+    ss (xs.s1 ++ or.s ++ xs.s2) ;
+
+  conjunctDistrSS : ConjunctionDistr -> ListX -> SS = \or,xs ->
+    ss (or.s1 ++ xs.s1 ++ or.s2 ++ xs.s2) ;
+
+  -- all this lifted to tables
+
+  ListTable : Type -> Type = \P -> {s1,s2 : P => Str} ; 
+
+  twoTable : (P : Type) -> (_,_ : {s : P => Str}) -> ListTable P = \_,x,y ->
+    {s1 = x.s ; s2 = y.s} ; 
+
+  consTable : (P : Type) -> Str -> ListTable P -> {s : P => Str} -> ListTable P = 
+    \P,c,xs,x ->
+    {s1 = table P {o => xs.s1 ! o ++ c ++ xs.s2 ! o} ; s2 = x.s} ; 
+
+  conjunctTable : (P : Type) -> Conjunction -> ListTable P -> {s : P => Str} = 
+    \P,or,xs ->
+    {s = table P {p => xs.s1 ! p ++ or.s ++ xs.s2 ! p}} ;
+
+  conjunctDistrTable : 
+    (P : Type) -> ConjunctionDistr -> ListTable P -> {s : P => Str} = \P,or,xs ->
+    {s = table P {p => or.s1++ xs.s1 ! p ++ or.s2 ++ xs.s2 ! p}} ;
+
+  -- ... and to two- and three-argument tables: how clumsy! ---
+
+  ListTable2 : Type -> Type -> Type = \P,Q -> 
+    {s1,s2 : P => Q => Str} ; 
+
+  twoTable2 : (P,Q : Type) -> (_,_ : {s : P => Q => Str}) -> ListTable2 P Q = 
+    \_,_,x,y ->
+    {s1 = x.s ; s2 = y.s} ; 
+
+  consTable2 : 
+    (P,Q : Type) -> Str -> ListTable2 P Q -> {s : P => Q => Str} -> ListTable2 P Q =
+     \P,Q,c,xs,x ->
+    {s1 = table P {p => table Q {q => xs.s1 ! p ! q ++ c ++ xs.s2 ! p! q}} ; 
+     s2 = x.s
+    } ; 
+
+  conjunctTable2 : 
+    (P,Q : Type) -> Conjunction -> ListTable2 P Q -> {s : P => Q => Str} = 
+    \P,Q,or,xs ->
+    {s = table P {p => table Q {q => xs.s1 ! p ! q ++ or.s ++ xs.s2 ! p ! q}}} ;
+
+  conjunctDistrTable2 : 
+    (P,Q : Type) -> ConjunctionDistr -> ListTable2 P Q -> {s : P => Q => Str} = 
+    \P,Q,or,xs ->
+    {s = 
+    table P {p => table Q {q => or.s1++ xs.s1 ! p ! q ++ or.s2 ++ xs.s2 ! p ! q}}} ;
+
+  ListTable3 : Type -> Type -> Type -> Type = \P,Q,R -> 
+    {s1,s2 : P => Q => R => Str} ; 
+
+  twoTable3 : (P,Q,R : Type) -> (_,_ : {s : P => Q => R => Str}) -> 
+              ListTable3 P Q R = 
+    \_,_,_,x,y ->
+    {s1 = x.s ; s2 = y.s} ; 
+
+  consTable3 : 
+    (P,Q,R : Type) -> Str -> ListTable3 P Q R -> {s : P => Q => R => Str} -> 
+         ListTable3 P Q R =
+     \P,Q,R,c,xs,x ->
+    {s1 = \\p,q,r => xs.s1 ! p ! q ! r ++ c ++ xs.s2 ! p ! q ! r ; 
+     s2 = x.s
+    } ; 
+
+  conjunctTable3 : 
+    (P,Q,R : Type) -> Conjunction -> ListTable3 P Q R -> {s : P => Q => R => Str} = 
+    \P,Q,R,or,xs ->
+    {s = \\p,q,r => xs.s1 ! p ! q ! r ++ or.s ++ xs.s2 ! p ! q ! r} ;
+
+  conjunctDistrTable3 : 
+    (P,Q,R : Type) -> ConjunctionDistr -> ListTable3 P Q R -> 
+       {s : P => Q => R => Str} = 
+    \P,Q,R,or,xs ->
+    {s = \\p,q,r => or.s1++ xs.s1 ! p ! q ! r ++ or.s2 ++ xs.s2 ! p ! q ! r} ;
+	
+	---------
+	ListTable4 : Type -> Type -> Type -> Type -> Type = \P,Q,R,T -> 
+    {s1,s2 : P => Q => R => T => Str} ; 
+
+  twoTable4 : (P,Q,R,T : Type) -> (_,_ : {s : P => Q => R => T => Str}) -> 
+              ListTable4 P Q R T = 
+    \_,_,_,_,x,y ->
+    {s1 = x.s ; s2 = y.s} ; 
+
+  consTable4 : 
+    (P,Q,R,T : Type) -> Str -> ListTable4 P Q R T -> {s : P => Q => R => T => Str} -> 
+         ListTable4 P Q R T =
+     \P,Q,R,T,c,xs,x ->
+    {s1 = \\p,q,r,t => xs.s1 ! p ! q ! r ! t ++ c ++ xs.s2 ! p ! q ! r ! t ; 
+     s2 = x.s
+    } ; 
+
+  conjunctTable4 : 
+    (P,Q,R,T : Type) -> Conjunction -> ListTable4 P Q R T -> {s : P => Q => R => T => Str} = 
+    \P,Q,R,T,or,xs ->
+    {s = \\p,q,r,t => xs.s1 ! p ! q ! r ! t ++ or.s ++ xs.s2 ! p ! q ! r ! t} ;
+
+  conjunctDistrTable4 : 
+    (P,Q,R,T : Type) -> ConjunctionDistr -> ListTable4 P Q R T -> 
+       {s : P => Q => R => T => Str} = 
+    \P,Q,R,T,or,xs ->
+    {s = \\p,q,r,t => or.s1++ xs.s1 ! p ! q ! r ! t ++ or.s2 ++ xs.s2 ! p ! q ! r ! t} ;
+	--------------
+
+  comma = "," ;
+
+-- you can also do this to right-associative lists:
+
+  consrStr : Str -> Str -> ListX -> ListX = \comma,x,xs -> 
+    {s1 = x ++ comma ++ xs.s1 ; s2 = xs.s2 } ; 
+
+  consrSS : Str -> SS -> ListX -> ListX = \comma,x,xs -> 
+    consrStr comma x.s xs ;
+
+  consrTable : (P : Type) -> Str -> {s : P => Str} -> ListTable P -> ListTable P = 
+    \P,c,x,xs ->
+    {s1 = table P {o => x.s ! o ++ c ++ xs.s1 ! o} ; s2 = xs.s2} ; 
+
+  consrTable2 : (P,Q : Type) -> Str -> {s : P => Q => Str} -> 
+    ListTable2 P Q -> ListTable2 P Q = 
+    \P,Q,c,x,xs ->
+    {s1 = table P {p => table Q {q => x.s ! p ! q ++ c ++ xs.s1 ! p ! q}} ; 
+     s2 = xs.s2
+    } ; 
+	consrTable4 : (P,Q,R,T : Type) -> Str -> {s : P => Q => R => T => Str} -> 
+    ListTable4 P Q R T -> ListTable4 P Q R T = 
+    \P,Q,R,T,c,x,xs ->
+    {s1 = table P {p => table Q {q => table R { r => table T {t => x.s ! p ! q ! r ! t ++ c ++ xs.s1 ! p ! q ! r ! t}}}} ; 
+     s2 = xs.s2
+    } ;
+    consrTable3 : (P,Q,R : Type) -> Str -> {s : P => Q => R => Str} -> 
+    ListTable3 P Q R -> ListTable3 P Q R = 
+    \P,Q,R,c,x,xs ->
+    {s1 = table P {p => table Q {q => table R  {t => x.s ! p ! q ! t  ++ c ++ xs.s1 ! p ! q ! t }}} ; 
+     s2 = xs.s2
+    } ; 
+
+
+} ;
diff --git a/lib/src/punjabi/ExtraPnb.gf b/lib/src/punjabi/ExtraPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/ExtraPnb.gf
@@ -0,0 +1,19 @@
+concrete ExtraPnb of ExtraPnbAbs = CatPnb ** 
+  open ResPnb, Coordination, Prelude, MorphoPnb, ParadigmsPnb in {
+
+  flags coding = utf8;
+
+  lin
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "كا" ; a = np.a} ;
+
+    each_Det = mkDet  "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" Sg ;
+    have_V = mkV "راكh-نا";
+----    IAdvAdv adv = {s = "كتنی" ++ adv.s} ;
+----    ICompAP ap = {s = "كتنے" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "قیمت" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "نoتہiنگ"   ** {c2 = "" };
+
+-- for VP conjunction
+} 
diff --git a/lib/src/punjabi/ExtraPnbAbs.gf b/lib/src/punjabi/ExtraPnbAbs.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/ExtraPnbAbs.gf
@@ -0,0 +1,9 @@
+abstract ExtraPnbAbs = Extra ** {
+
+-- uncontracted negations; contracted are the default
+  fun
+
+  each_Det : Det ;
+  have_V : V;
+  cost_V : V;
+}
diff --git a/lib/src/punjabi/GrammarPnb.gf b/lib/src/punjabi/GrammarPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/GrammarPnb.gf
@@ -0,0 +1,24 @@
+--# -path=.:../abstract:../common:../prelude
+
+ concrete GrammarPnb of Grammar = 
+  NounPnb, 
+  VerbPnb, 
+  AdjectivePnb,
+  AdverbPnb,
+  NumeralPnb,
+  SentencePnb,
+  QuestionPnb,
+  RelativePnb,
+  ConjunctionPnb,
+  PhrasePnb,
+  TextX - [Adv],
+  StructuralPnb,
+  TenseX - [Adv],
+  IdiomPnb
+  ** {
+
+flags startcat = Phr ; unlexer = text ; lexer = text ;
+
+}
+
+
diff --git a/lib/src/punjabi/IdiomPnb.gf b/lib/src/punjabi/IdiomPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/IdiomPnb.gf
@@ -0,0 +1,39 @@
+concrete IdiomPnb of Idiom = CatPnb ** open Prelude,Predef, ResPnb in {
+
+  flags optimize=all_subs ;
+  flags coding = utf8;
+
+  lin
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
+    GenericCl vp = mkSClause "كوی" (agrP3 Masc Sg) vp ;
+
+    CleftNP np rs = 
+	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
+	  in 
+	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
+	  
+    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
+        
+    ExistNP np = 
+      mkSClause "اوتھے" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
+        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
+
+    ExistIP ip = 
+     let cl = mkSClause ("اوتھے" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+    ProgrVP vp =  (predProg vp) ;
+
+
+    ImpPl1 vp = {s = "آو" ++ infVP True vp (agrP1 Masc Pl)} ;
+	ImpP3 np vp = {s = np.s!NPC Dir ++ "نوں" ++ (vp.s ! VPImp ).inf ++ "دیو"};
+
+
+}
+
diff --git a/lib/src/punjabi/LangPnb.gf b/lib/src/punjabi/LangPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/LangPnb.gf
@@ -0,0 +1,10 @@
+--# -path=.:../abstract:../common:../hindustani
+
+concrete LangPnb of Lang = 
+  GrammarPnb,
+  LexiconPnb
+  ** {
+
+flags startcat = Phr ; unlexer=unwords ; lexer=words ;
+
+}
diff --git a/lib/src/punjabi/LexiconPnb.gf b/lib/src/punjabi/LexiconPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/LexiconPnb.gf
@@ -0,0 +1,371 @@
+--# -path=.:prelude:alltenses
+
+concrete LexiconPnb of Lexicon = CatPnb ** 
+--open ResPnb, Prelude in {
+  open ParadigmsPnb,MorphoPnb, Prelude in {
+
+  flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN07 "جہاج" ;
+  
+  answer_V2S = mkV2  (compoundV "جواب" (mkV "دینا")) ;
+  apartment_N = mkN01 "كمرہ" ;
+  apple_N = mkN02 "سیب" ;
+--  art_N = mkN "فن" ;
+  ask_V2Q = mkV2 (mkV "پچھنا") ;
+  baby_N = mkN01 "بچہ" ;
+  bad_A = mkAdj1 "برا" ;
+--  bank_N = mkN "بانك" ;
+  beautiful_A = mkAdj1 "سونی" ;
+  become_VA = mkV "بننا";
+  beer_N = mkN04 "شراب" ;
+  beg_V2V =  mkV2V (mkV "مانگنا") "سے" "كہ" False;
+  big_A = mkAdj1 "وڈا" ;
+  bike_N = mkN03 "سایچل" ;
+  bird_N = mkN01 "پرندہ" ;
+  black_A =  mkAdj1 "كالا" ;
+  blue_A = mkAdj1 "نیلا" ;
+  boat_N = mkN03 "كشتی" ;
+  book_N = mkN04 "كتاب" ;
+  boot_N = mkN03 "جوتا" ;
+--  boss_N = mkN "صاہب" ;
+  boy_N = mkN01 "منڈا" ;
+  bread_N = mkN03 "روتی" ;
+  break_V2 = mkV2 (mkV "توڑنا") ;
+  broad_A = mkAdj1 "كھلا" ;
+  brother_N2 = mkN2 (mkN01 "پرا") (mkPrep "كا") "كے" ; --not correct
+  brown_A = mkAdj1 "نسواری" ;
+--  butter_N = mkN "مكھن" ;
+  buy_V2 = mkV2 (mkV "خریدنا");
+  camera_N = mkN01 "كیمرہ" ;
+  cap_N = mkN03 "توپی" ;
+  car_N = mkN03 "گڈی" ;
+  carpet_N = mkN03 "تپائی" ;
+  cat_N = mkN03 "بلی" ;
+  ceiling_N = mkN01 "كوٹھا" ;
+  chair_N = mkN03 "كرسی" ;
+--  cheese_N = mkN "پنیر" feminine ;
+  child_N = mkN01 "بچہ"  ;
+--  church_N = mkCmpdNoun "گرجا" (mkN "گھر") ;
+  city_N = mkN02 "شہر" ;
+  clean_A = mkAdj1 "صاف" ;
+  clever_A = mkAdj1 "ہوشیار" ;  
+  close_V2 =  mkV2 (compoundV "بند" do_V2); 
+  coat_N = mkN04 "كوٹ" ;
+  cold_A = mkAdj1 "ٹھنڈا" ;
+  come_V = mkV "آنا" ;
+--  computer_N = mkN "كمپیوٹر" ;
+--  country_N = mkN "ملك" ;
+--  cousin_N = mkCmpdNoun "چچا" (mkN "زاد") ; -- a compund noun made of two nouns
+  cow_N = mkN05 "گاے" ;
+  die_V = mkV "مرنا" ;
+  dirty_A = mkAdj1 "گندا" ;
+--  distance_N3 = mkN3 (mkN "پینڈا") (mkPrep "دا") "دے" "توں"  ;
+--  doctor_N = mkN "معالج" ;
+  dog_N = mkN01 "كتا" ;
+  door_N = mkN01 "دروزہ" ;
+  drink_V2 = mkV2 (mkV "پینا");
+  easy_A2V = mkA "سوكھا" "" ;
+  eat_V2 = mkV2 (mkV "كھانا") "" ;
+  empty_A = mkAdj1 "خالی" ;
+--  enemy_N = mkN "دشمن" ;
+--  factory_N = mkN "كارخانہ" ;
+  father_N2 = mkN2 (mkN01 "ابا") (mkPrep "دا") "دے"  ;
+  fear_VS = mkV "ڈرنا";
+  find_V2 = mkV2 (mkV "پانا") ;
+  fish_N = mkN03 "مچھلی" ;
+  floor_N = mkN02 "فرش" ;
+  forget_V2 = mkV2 (mkV "بھولنا") "نوں" ;
+--  fridge_N = mkN "فریگ" ;
+  friend_N = mkN04 "دوست" ;
+  fruit_N = mkN02 "پھل" ;
+--  fun_AV = mkAdj1V (regA "f?ن") ;
+  garden_N = mkN04 "باغ" ;
+  girl_N = mkN03 "كڑی" ;
+--  glove_N = mkN "دستانہ" ;
+  gold_N = mkN01 "سونا" ;
+  good_A = mkAdj1 "اچھا" ;
+  go_V = mkV "جانا" ;
+  green_A = mkAdj1 "سبز" ;
+--  harbour_N = mkCmpdNoun "بندر" (mkN "گاہ") ;
+  hate_V2 = mkV2 (compoundV "نفرت" do_V2) ;
+  hat_N = mkN03 "توپی" ;
+--  have_V2 = dirV2 (mk5V "ہa?ع" "ہاس" "ہاد" "ہاد" "ہa??نگ") ;
+  hear_V2 = mkV2 (mkV "سننا") ;
+  hill_N = mkN03 "پاڑی" ;
+  hope_VS = (compoundV "آس" do_V2);
+  horse_N = mkN01 "كوڑا" ;
+  hot_A = mkAdj1 "گرم" ;
+  house_N = mkN02 "گھر" ;
+  important_A = mkAdj1 "اہم" ;
+--  industry_N = mkN "صنعت" feminine ;
+--  iron_N = mkN "لوہا" ;
+--  king_N = mkN "بادشاہ" ;
+  know_V2 = mkV2 (mkV "جاننا") ;
+  know_VS = (mkV "جاننا") ;
+  know_VQ = (mkV "جاننا") ;
+  lake_N = mkN04 "جھیل" ;
+--  lamp_N = mkN "لیمپ" ;
+  learn_V2 = mkV2 (mkV "سكھنا") ;
+--  leather_N = mkN "چمڑا" ;
+  leave_V2 = mkV2 (mkV "جانا") ;
+  like_V2 = mkV2 (compoundV "پسند" do_V2);
+  listen_V2 = mkV2 (mkV "سننا") ;
+  live_V = mkV "رہنا" ; ---- touch
+  long_A = mkAdj1 "لمبا" ;
+  lose_V2 = mkV2 (compoundV "كھو" (mkV "دینا")) ;
+  love_N = mkN02 "محبت" ;
+  love_V2 = mkV2 (compoundV "پیار" do_V2) "نوں";
+  man_N = mkN03 "آدمی" ; -- not correct according to rules should be discussed
+--  married_A2 = mkAdj1 "شادy?كرنا" "سے" ;
+  meat_N = mkN02 "گوشت" ;
+--  milk_N = mkN "دودھ" ;
+  moon_N = mkN02 "چن" ;
+  mother_N2 = mkN2 (mkN05 "ماں") (mkPrep "دی") "ڈے";   -- not covered need to be discussed
+  mountain_N = mkN03 "پاڑی" ;
+--  music_N = mkN "موسیقی" ;
+  narrow_A = mkAdj1 "باریك" ;
+  new_A = mkAdj1 "نوا" ;
+  newspaper_N = mkN04 "اخبار" ;
+  oil_N = mkN02 "تیل" ;
+  old_A = mkAdj1 "بوڈا" ;
+  open_V2 = mkV2 (mkV "كھولنا") ;
+  paint_V2A = mkV2 (compoundV "رنگ" do_V2) ;
+--  paper_N = mkN "كاغز" ;
+--  paris_PN = mkPN "پیرس" ;
+--  peace_N = mkN "امن" ;
+  pen_N = mkN04 "پنسل" ;
+  planet_N = mkN01 "سیارہ" ;
+--  plastic_N = mkN "پلاسٹك" ;
+  play_V2 = mkV2 (mkV "كھیڈنا") ;
+--  policeman_N = mkCmpdNoun "پولیس" (mkN "والا") ; 
+--  priest_N = (mkN "پیغمبر") ;
+--  probable_AS = mkAdj1S (regA "پr?بابلع") ;
+  queen_N = mkN03 "شہزادی" ;
+--  radio_N = mkN "ریڈیو" ;
+  rain_V0 = compoundV "بارش" (mkV "ہونا" ) ;
+  read_V2 = mkV2 (mkV "پڑھنا");
+  red_A = mkAdj1 "لال" ;
+--  religion_N = mkN "مزہب" ;
+--  restaurant_N = mkN "ہوٹل" ;
+--  river_N = mkN "دریا" masculine ;
+  rock_N = mkN04 "چٹان" ;
+--  roof_N = mkN "چھت"   masculine ;
+  rubber_N = mkN04 "ربڑ" ;
+  run_V = mkV "دوڑنا" ;
+  say_VS = mkV "كہنا" ;
+--  school_N = mkN "سكول" ;
+--  science_N = mkN "سانس" ;
+  sea_N = mkN02 "سمندر" ;
+  seek_V2 = mkV2 (mkV "لبھنا" ) "نوں" ;
+  see_V2 = mkV2 (mkV "ویكھنا") "نوں" ;
+  sell_V3 = mkV3 (mkV "ویچنا") "كو" "";
+  send_V3 = mkV3 (mkV "پیجنا") "كو" "";
+--  sheep_N = mkN "بھیڑ" feminine ;
+--  ship_N = mkN "جہاز" ;
+  shirt_N = mkN04 "قمیض";
+  shoe_N = mkN01 "جوتا" ;
+--  shop_N = mkN "دوكان" feminine ;
+  short_A = mkAdj1 "چھوٹا" ;
+  silver_N = mkN03 "چاندی" ;
+  sister_N = mkN04 "بہن" ;
+  sleep_V = mkV "سونا" ;
+  small_A = mkAdj1 "چھوٹا" ;
+--  snake_N = mkN "سانپ" ;
+  sock_N = mkN04 "جراب" ;
+--  speak_V2 = mkV2 (mkV "بولنا") ;
+  star_N = mkN01 "ستارا" ;
+--  steel_N = mkN "ستیل" ;
+--  stone_N = mkN "پتھر" ;
+  stove_N = mkN01 "چولہا" ;
+--  student_N = mkCmpdNoun "طالب" (mkN "علم") ;
+--  stupid_A = mkAdj1 "احمق" ;
+  sun_N = mkN02 "سورج" ;
+  switch8off_V2 = mkV2 (mkV "چلانا") ;
+  switch8on_V2 = mkV2 (compoundV "بند" do_V2) ;
+  table_N = mkN04 "میز" ;
+  talk_V3 = mkV3 (mkV "بولنا") "سے" "";
+  teacher_N = mkN02 "استاد" ;
+  teach_V2 = mkV2 (mkV "پڑھنا") ;
+--  television_N = mkN "تعلیویزن" ;
+  thick_A = mkAdj1 "موٹا" ;
+  thin_A = mkAdj1 "پتلا" ;
+  train_N = mkN03 "گڈی" ;
+  travel_V = (compoundV "پینڈا" do_V2) ;
+--  tree_N = mkN "درخت" masculine ;
+-- ---- trousers_N = mkN "تr??سعرس" ;
+  ugly_A = mkAdj1 "كوجا" ;
+  understand_V2 = mkV2 (mkV "سمجھنا") ;
+--  university_N = mkN "یونیورسٹی" ;
+--  village_N = mkN "گاوں" ;
+  wait_V2 = mkV2 (compoundV "راہ" (mkV "ویكھنا")) ;
+  walk_V = mkV "چلنا" ;
+  warm_A = mkAdj1 "تتا" ;
+  war_N = mkN02 "جنگ" ;
+  watch_V2 = mkV2 (mkV "ویكھنا") ;
+  water_N = mkN03 "پانی" ; -- not covered masculine ending with y
+  white_A = mkAdj1 "چٹا" ;
+--  window_N = mkN "كھڑكی" ;
+  wine_N = mkN04 "شراب";
+  win_V2 = mkV2 (mkV "جیتنا") ;
+  woman_N = mkN04 "عورت" ;
+  wonder_VQ = compoundV "حعران" (mkV "ہونا") ;
+  wood_N = mkN04 "لكڑی" ;
+  write_V2 = mkV2 (mkV "لكھنا") ;
+  yellow_A = mkAdj1 "كھٹا" ;
+  young_A = mkAdj1 "جوان" ;
+  do_V2 = mkV2 (mkV "كرنا")  ;
+--  now_Adv = mkAdj1dv "اب" ;
+--  already_Adv = mkAdj1dv "پہلE?ہی" ;
+  song_N = mkN01 "گانا" ;
+  add_V3 = mkV3 (compoundV "وادھا" do_V2) "" "" ;
+  number_N = mkN01 "ہندسہ" ;
+  put_V2 = mkV2 (mkV "ڈالنا") ;
+  stop_V = mkV "روكنا"  ;
+  jump_V = compoundV "چھال" (mkV "مارنا") ;
+
+  left_Ord = {s = "سجا" ; n = singular};
+  right_Ord = {s= "كھبا" ; n = singular};
+--  far_Adv = mkAdj1dv "دور" ;
+  correct_A = mkAdj1 "صیہ" ;
+  dry_A = mkAdj1 "سوكا" ;
+  dull_A = mkAdj1 "نكھٹو" ;
+  full_A = mkAdj1 "پورا" ;
+  heavy_A = mkAdj1 "پاری" ;
+  near_A = mkAdj1 "نیڑے" ;
+  rotten_A = mkAdj1 "خراب" ;
+  round_A = mkAdj1 "گول" ;
+  sharp_A = mkAdj1 "تیز" ;
+  smooth_A = mkAdj1 "پدرا" ;
+  straight_A = mkAdj1 "سدا" ;
+  wet_A = mkAdj1 "گلا" ; ----
+  wide_A = mkAdj1 "چوڑا" ;
+  animal_N = mkN02 "جانور" ;
+--  ashes_N = mkN "راكھ" feminine; -- FIXME: plural only?
+--  back_N = mkN "قمر" feminine ;
+--  bark_N = mkN "بارك" ;
+--  belly_N = mkN "دھنی" ;
+  blood_N = mkN02 "لہو" ;
+  bone_N = mkN03 "ہڈی" ;
+--  breast_N = mkN "چھاتی" ;
+--  cloud_N = mkN "بادل" ;
+  day_N = mkN04 "دن" ;
+--  dust_N = mkN "دھول" ;
+--  ear_N = mkN "كان" ;
+--  earth_N = mkN "زمین" feminine ;
+  egg_N = mkN01 "انڈہ" ;
+--  eye_N = mkN "آنكھ" feminine ;
+  fat_N = mkN01 "موتا" ;
+--  feather_N = mkN "پر" ;
+--  fingernail_N = mkN "ناخن" ;
+--  fire_N = mkN "آگ" feminine ;
+  flower_N = mkN02 "پھول" ;
+--  fog_N = mkN "دھند" feminine ;
+--  foot_N = mkN "پاوں" ; -- not properly covered need to be discussed
+  forest_N = mkN02 "نجگل" ;
+--  grass_N = mkN "گھس" feminine ;
+--  guts_N = mkN "g?ت" ; -- FIXME: no singular
+--  hair_N = mkN "بال" ;
+  hand_N = mkN02 "ہتھ" ;
+  head_N = mkN02 "سر" ;
+  heart_N = mkN02 "دل" ;
+--  horn_N = mkN "گھنتی" ;
+  husband_N = mkN01 "بندا" ;
+  ice_N = mkN04 "برف" ;
+--  knee_N = mkN "كہنی" ;
+  leaf_N = mkN01 "پتہ" ;
+--  leg_N = mkN "تانگ" ;
+--  liver_N = mkN "جگر" ;
+--  louse_N = mkN "گھر" ;
+--  mouth_N = mkN "منہ" ;
+--  name_N = mkN "نام" ;
+--  neck_N = mkN "گردن" feminine ;
+  night_N = mkN02 "رات" ;
+--  nose_N = mkN "ناك" ;
+--  person_N = mkN "شخص" ;
+--  rain_N = mkN "بارش" feminine ;
+--  road_N = mkN "سڑك" ;
+  root_N = mkN02 "گڑ" ;
+  rope_N = mkN03 "رسی" ;
+--  salt_N = mkN "نمك" feminine ;
+--  sand_N = mkN "ریت" feminine ;
+--  seed_N = mkN "بیج"  ;
+  skin_N = mkN04 "جلد" ;
+  sky_N = mkN02 "آسمان" ;
+--  smoke_N = mkN "دھواں"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN04 "برف" ;
+  stick_N = mkN03 "سوٹی" ;
+  tail_N = mkN02 "پوشل" ;
+  tongue_N = mkN04 "جیب" ;
+--  tooth_N = mkN "دانت" masculine;
+  wife_N = mkN03 "جنانی" ;
+--  wind_N = mkN "آندھی" ;
+--  wing_N = mkN "پر" ;
+  worm_N = mkN01 "تتا" ;
+  year_N = mkN02 "سال" ;
+  blow_V = mkV "چلنا" ;
+  breathe_V = compoundV "ساہ" (mkV "لینا" ) ;
+  burn_V = mkV "جلنا" ;
+  dig_V = mkV "كھودنا" ;
+  fall_V = mkV "گرنا" ;
+  float_V = mkV "تیرنا" ;
+  flow_V = mkV "بہنا" ;
+  fly_V = mkV "اڈنا" ;
+  freeze_V = mkV "جمنا" ;
+  give_V3 = mkV3 (mkV "دینا") "نوں" "";
+  laugh_V = mkV "ہسنا"  ;
+--  lie_N = mkN "جھوت" masculine ;
+  lie_V = compoundV "چھوٹھ" (mkV "بولنا" );
+  play_V = mkV "كھیلنا" ;
+  sew_V = mkV "سینا" ;
+  sing_V = mkV "گانا" ;
+  sit_V = mkV "بیٹھنا" ;
+  smell_V = mkV "سونگنا" ;
+  spit_V = mkV "تھوكنا" ;
+  stand_V = mkV "كھلونا";
+  swell_V = mkV "سوجنا" ;
+  swim_V = mkV "ترنا" ;
+  think_V = mkV "سوچنا" ;
+  turn_V = mkV "مڑنا" ;
+  vomit_V = compoundV "التی" (mkV "كرنا") ;
+  bite_V2 = mkV2 (mkV "كٹنا") ;
+  count_V2 = mkV2 (mkV "گننا") ;
+  cut_V2 = mkV2 (mkV "كٹنا") ;
+  fear_V2 = mkV2 (mkV "ڈرنا") ;
+  fight_V2 = mkV2 (mkV "لڑنا") ;
+  hit_V2 = mkV2 (compoundV "ٹھوڈا" (mkV "مارنا" ));
+  hold_V2 = mkV2 (mkV "پھڑنا") ;
+--  hunt_V2 = mkV2 (compoundV "شكار" do_V2);
+  kill_V2 =  mkV2 (compoundV "مار" (mkV "دینا" )) ;
+  pull_V2 = mkV2 (mkV "كھچنا");
+  push_V2 = mkV2 (compoundV "تكا" (mkV "دینا")) "كو" ;
+  rub_V2 = mkV2 (mkV "رگڑنا") ;
+--  scratch_V2 = mkV2 (mkV "كھرچنا") "كو" ;
+--  split_V2 = mkV2 (mkV "بانتا") "كو" ;
+--  squeeze_V2 = dirV2 (regV "سq?ععزع") ;
+--  stab_V2 = dirV2 (regDuplV "ستاب") ;
+  suck_V2 = mkV2 (mkV "چونڈنا") ;
+  throw_V2 = mkV2 (mkV "سوٹنا") ;
+  tie_V2 = mkV2 (mkV "بننا") ;
+  wash_V2 = mkV2 (mkV "تونا") ;
+  wipe_V2 = mkV2 (mkV "پونجھنا");
+
+----  other_A = regA "?تہعر" ;
+
+--  grammar_N = mkN "گردان" ;
+  language_N = mkN04 "بولی" ;
+--  rule_N = mkN "اصول" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "جان" ;
+--    question_N = mkN "سوال" ;
+--    ready_A = regA "رعادی" ;
+--    reason_N = mkN "وجہ" feminine ;
+--    today_Adv = mkAdj1dv "اج" ;
+--    uncertain_A = mkAdj1 ["غیr?یقینی"] ;
+    
+ 
+}
diff --git a/lib/src/punjabi/MakeStructuralPnb.gf b/lib/src/punjabi/MakeStructuralPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/MakeStructuralPnb.gf
@@ -0,0 +1,14 @@
+--# -path=.:../common:../abstract
+
+resource MakeStructuralPnb = open CatPnb, ParadigmsPnb, ResPnb, MorphoPnb, NounPnb, Prelude in {
+
+oper 
+  mkSubj : Str -> CatPnb.Subj = \x -> 
+    lin Subj {s = x} ;
+  mkNP : Str -> Number -> ResPnb.NP = \s,n ->
+     MassNP (UseN (ParadigmsPnb.mkN s));
+--    lin NP (regNP s n) ;
+  mkIDet : Str -> Number -> IDet = \s,n ->
+    lin IDet {s = \\_ => s ; n = n} ;
+
+}
diff --git a/lib/src/punjabi/MorphoPnb.gf b/lib/src/punjabi/MorphoPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/MorphoPnb.gf
@@ -0,0 +1,451 @@
+--# -path=.:../../prelude
+--
+----1 A Simple Punjabi Resource Morphology
+----
+----  Shafqat Virk, Aarne Ranta,2010
+----
+---- This resource morphology contains definitions needed in the resource
+---- syntax. To build a lexicon, it is better to use $ParadigmsPnb$, which
+---- gives a higher-level access to this module.
+--
+resource MorphoPnb = ResPnb ** open Prelude,Predef in {
+
+  flags optimize=all ;
+   coding = utf8;
+
+----2 Nouns
+oper
+   
+    mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> Noun = 
+      \sd,so,sv,sa, pd,po,pv,pa, g -> {
+      s = table {
+      Sg => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv ;
+        Abl => sa 
+	  } ;
+      Pl => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv ;
+        Abl => pa 
+	  }
+      } ;
+
+      g = g
+      } ;
+
+    
+    
+-- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
+-- Arabic nouns ends with h. also taken as Masc
+  mkN01 : Str -> Noun ;
+  mkN01 koRa = let end = last (koRa) ;
+                   koR = if_then_else Str (eq end "ع") koRa (tk 1 koRa)
+                in mkN (koRa)        (koR+"ے")       (koR+"یا")      (koR+"یوں")
+                       (koR+"ے")    (koR+"یاں")      (koR+"یو")      ""
+                    Masc ;
+
+
+-- 2. msculine: gher, shehar, din, des, huth
+  mkN02 : Str -> Noun ;
+  mkN02 gher = mkN (gher)    (gher)       (variants{gher; gher+"ا"})     (gher+"وں")
+                   (gher)    (gher+"اں")  (gher+"و")                     ""
+                Masc ;
+
+-- 3. sekhi, kuRi, boli
+  mkN03 : Str -> Noun ;
+  mkN03 kuRi = mkN (kuRi)            (kuRi)       (kuRi+"ے")     ""
+                   (kuRi+"اں")       (kuRi+"اں")  (kuRi+"وں")    ""
+                  Fem ;
+
+-- 4. gal, saltanat, tareekh, shaksiat, kitab
+  mkN04 : Str -> Noun ;
+  mkN04 gal = mkN (gal)            (gal)       (variants{gal; gal+"ے"})   (gal+"وں")
+                  (gal+"اں")       (gal+"اں")  (gal+"و")                  ""
+                Fem ;
+
+
+-- 5. maaN
+  mkN05 : Str -> Noun ;
+  mkN05 maaN = let maa = tk 1 maaN
+                in mkN (maaN)        (maaN)       (variants{(maa+"ئے");(maa+"وے")})      (maa+"واں")
+                       (maa+"واں")   (maa+"واں")  (maa+"وو")      ""
+                    Fem ;
+
+-- 6. kunwaN
+  mkN06 : Str -> Noun ;
+  mkN06 kunwaN = let kunw = tk 2 kunwaN
+                   in mkN (kunwaN)    (kunw+"یں")  (kunw+"یں") (kunw+"وں")
+                          (kunw+"یں") (kunw+"یاں") (kunw+"بو") ""
+                      Masc ;
+
+-- 7. merd
+  mkN07 : Str -> Noun ;
+  mkN07 merd = mkN (merd) (merd)      (merd)       ""
+                   (merd) (merd+"اں") (merd+"و")   ""
+                  Masc ;
+-- 8. aaTa, 
+  mkN08 : Str -> Noun ;
+  mkN08 aaTa = let aaT = tk 1 aaTa 
+            in mkN (aaTa) (aaT+"ے")     (variants{aaT+"ے"; aaT+"یا"})     (aaT+"یوں")
+                   (aaTa) (aaT+"ے")     (variants{aaT+"ے"; aaT+"یا"})     ""
+                  Masc ;
+                  
+--9. lok
+  mkN09 : Str -> Noun ;
+  mkN09 lok = mkN ""    ""          ""         ""
+                  (lok) (lok+"ا")   (lok+"و")  ""
+                Masc ;
+
+--10. Masc. no inflection
+  mkN10 : Str -> Noun ;
+  mkN10 x = mkN x x x x
+                x x x ""
+             Masc ;
+
+--11. Fem. no inflection
+  mkN11 : Str -> Noun ;
+  mkN11 x = mkN x x x x
+                x x x ""
+             Fem ;
+
+----2 Determiners
+
+  IDeterminer = {s:Gender => Str ; n : Number};
+  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
+   s = table {
+      Sg => table {
+        Masc => s1 ;
+        Fem => s2 
+	  } ;
+      Pl => table {
+        Masc => s3 ;
+        Fem => s4 
+	  }
+      } ;
+
+      n = n
+	};	
+	
+  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
+   s = table {
+        Masc => s1;
+		Fem  => s2
+	 };
+	 n = n
+    };		
+    
+-- Proposition  
+ 
+  makePrep : Str -> Preposition = \str -> {s = str } **  { lock_Prep = <>};
+   
+----2 Pronouns
+   PronForm = {s:Pronoun => Str};
+{-   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
+    \y1,y2,y3,y4,y5,y6 -> {
+	 s = table {
+         P Sg _ Dir _ => y1;
+         P Sg _ Obl _ => y2;
+         P Sg _ Voc _ => y3;
+         P Pl _ Dir _ => y4;
+         P Pl _ Obl _ => y5;
+         P Pl _ Voc _ => y6
+         };
+      };
+-}
+--   DemonPronForm = {s:DemPronForm => Str};
+  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16:Str) -> DemPronForm =
+  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16 -> {
+   s = table {
+	        Sg => table {
+				Masc => table {
+				  Dir => y1 ;
+				  Obl => y2 ;
+				  Voc => y3 ;
+				  Abl => y4
+							 };
+				Fem => table {
+				  Dir => y5 ;
+				  Obl => y6 ;
+				  Voc => y7 ;
+				  Abl => y8
+							 }
+						};
+			Pl => table {
+				Masc => table {
+				  Dir => y9 ;
+				  Obl => y10 ;
+				  Voc => y11 ;
+				  Abl => y12
+							 };
+				Fem => table {
+				  Dir  => y13 ;
+				  Obl => y14 ;
+				  Voc => y15 ;
+				  Abl => y16
+ 							 }
+					} 
+				}
+               };    
+   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
+   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "" "" "" "" "";	
+--   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
+{- 
+ 
+   PersPron = {s: PersPronForm => Str};
+   
+   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40:Str) -> PersPron = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36,y37,y38,y39,y40 -> {
+     s = 
+	  table {
+	      PPF Sg Pers1 Dir => y1;
+	      PPF Sg Pers1 Obl => y2;
+	      PPF Sg Pers1 Voc => y3;
+	      PPF Sg Pers1 Abl => y4;
+	      PPF Sg Pers2_Casual Dir => y5;
+	      PPF Sg Pers2_Casual Obl => y6;
+	      PPF Sg Pers2_Casual Voc => y7;
+	      PPF Sg Pers2_Casual Abl => y8;
+	      PPF Sg Pers2_Respect Dir => y9;
+	      PPF Sg Pers2_Respect Obl => y10;
+	      PPF Sg Pers2_Respect Voc => y11;
+	      PPF Sg Pers2_Respect Abl => y12;
+	      PPF Sg Pers3_Near Dir => y13;
+	      PPF Sg Pers3_Near Obl => y14;
+	      PPF Sg Pers3_Near Voc => y15;
+	      PPF Sg Pers3_Near Abl => y16;
+	      PPF Sg Pers3_Distant Dir => y17;
+	      PPF Sg Pers3_Distant Obl => y18;
+	      PPF Sg Pers3_Distant Voc => y19;
+	      PPF Sg Pers3_Distant Abl => y20;
+	      PPF Pl Pers1 Dir => y21;
+	      PPF Pl Pers1 Obl => y22;
+	      PPF Pl Pers1 Voc => y23;
+	      PPF Pl Pers1 Abl => y24;
+	      PPF Pl Pers2_Casual Dir => y25;
+	      PPF Pl Pers2_Casual Obl => y26;
+	      PPF Pl Pers2_Casual Voc => y27;
+	      PPF Pl Pers2_Casual Abl => y28;
+	      PPF Pl Pers2_Respect Dir => y29;
+	      PPF Pl Pers2_Respect Obl => y30;
+	      PPF Pl Pers2_Respect Voc => y31;
+	      PPF Pl Pers2_Respect Abl => y32;
+	      PPF Pl Pers3_Near Dir => y33;
+	      PPF Pl Pers3_Near Obl => y34;
+	      PPF Pl Pers3_Near Voc => y35;
+	      PPF Pl Pers3_Near Abl => y36;
+	      PPF Pl Pers3_Distant Dir => y37;
+	      PPF Pl Pers3_Distant Obl => y38;
+	      PPF Pl Pers3_Distant Voc => y39;
+	      PPF Pl Pers3_Distant Abl => y40
+		 }; 
+      };
+	  
+   makePersPron : PersPron;
+   makePersPron     = mkPersPron	"میں"		""		""		"میتوں"
+					"توں"		""		""		"تیتوں"
+					"تسی"		""		""		"تواتوں"
+					"او"		""		""		"او"
+					"او"		""		""		"او"
+					"اسی"		"" 		""		"ساتوں"
+					"تسی"		""		""		"تواتوں"
+					"تسی"		""		""		"تواتوں"
+					"او"		""		""		"او"
+					"او"		""		""		"او";
+-}
+
+  mkPron : (x1,x2,x3,x4:Str) -> {s:Case => Str} = 
+     \y1,y2,y3,y4 -> { s =
+                      table {
+                        Dir => y1;
+                        Obl => y2;
+                        Voc => y3;
+			Abl => y4
+                        }
+                      };  
+                                   
+	------- PossPronForm yet to be implemented
+	
+ 
+-- IntPronForm = {s:InterrPronForm => Str};
+  IntPronForm = {s: Case => Str};
+  mkIntPronForm : (x1,x2,x3,x4:Str) -> IntPronForm =
+  \y1,y2,y3,y4 -> {
+   s = 
+    table {
+	            Dir => y1;
+	            Obl => y2;
+	            Voc => y3;
+		    Abl => y4
+		 }
+	};
+	
+
+----2 Adjectives
+-- defined in ResPnb
+
+------------------------------------------------------------------
+----Verbs
+------------------------------------------------------------------
+ 
+--1. Basic stem form, direct & indirect causatives exists
+-- v1 nechna nechaana nechwana
+
+  mkVerb : (_: Str) -> Verb = \inf ->
+   let root  = (tk 2 inf) ; 
+--       root1 = (tk 2 c1)  ;  
+--       root2 = (tk 2 c2) ;  
+    in { 
+     s = table {
+
+     Root     => root ;
+
+     Inf      => inf ;
+     Inf_Fem  => ((tk 1 inf) + "ی") ;
+     Inf_Obl  => (tk 1 inf) ;
+     Ablative => ((tk 1 inf) + "وں") ;
+
+{-     Caus1_Inf => c1 ;
+     Caus1_Fem => ((tk 1 c1) + "ی") ;
+     Caus1_Obl => (tk 1 c1) ;
+     Caus1_Ablative => ((tk 1 c1) + "وں") ;
+
+     Caus2_Inf => c2 ;
+     Caus2_Fem => ((tk 1 c2) + "ی") ;
+     Caus2_Obl => (tk 1 c2) ;
+     Caus2_Ablative => ((tk 1 c2) + "وں") ;
+-}
+     VF tense person number gender  => (mkCmnVF root tense person number gender).s 
+--     Caus1 tense person number gender => (mkCmnVF root1 tense person number gender).s ;
+--     Caus2 tense person number gender => (mkCmnVF root2 tense person number gender).s 
+    }
+  } ;
+
+
+mkCmnVF : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = case (last root) of {
+     ("ا"|"آ"|"و"|"ی") => (mkCmnVF1 root t p n g).s ;
+     _ => (mkCmnVF2 root t p n g).s
+   }
+  };
+
+ mkCmnVF1 : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = let nadaa = root + "ندا" ; --root + variants{"ندا";"وندا"};
+           nadii = root + "ندی" ; --root + variants{"ندی";"وندی"} ;
+           nade  = root + "ندے" ; --root + variants{"ندے";"وندے"} ;
+           nadiiaaN = root + "ندیاں"  --root + variants{"ندیاں";"وندیاں"}
+   in 
+  case <t,p,n,g> of {
+    <Subj,Pers1,         Sg,_> => root + "واں" ;
+    <Subj,Pers1,         Pl,_> => root + "ئے" ;
+    <Subj,Pers2_Casual,  Sg,_> => root ;
+    <Subj,Pers2_Casual,  Pl,_> => root + "ؤ" ;
+    <Subj,Pers2_Respect, _, _> => root + "ؤ" ;
+
+    <Subj,_,             Sg,_> => root + "ئے" ;
+    <Subj,_,             Pl,_> => root+"ن" ;
+
+    <Perf, Pers1,        Sg,Masc> => root + "یا" ;
+    <Perf, Pers1,        Sg,Fem>  => root + "ئی" ;
+    <Perf, Pers1,        Pl,Masc> => root + "ئے" ;
+    <Perf, Pers1,        Pl,Fem>  => root + "ئیاں" ;
+    <Perf, Pers2_Casual, Sg,Masc> => root + "یا" ;
+    <Perf, Pers2_Casual, Sg,Fem>  => root + "ئی" ;
+    <Perf, Pers2_Casual, Pl,Masc> => root + "ئے" ;
+    <Perf, Pers2_Casual, Pl,Fem>  => root + "ئیاں" ;
+    <Perf, Pers2_Respect,_,_>     => root + "ئے" ;     
+
+    <Perf, _,            Sg,Masc> => root + "یا" ;
+    <Perf, _,            Sg,Fem>  => root + "ئی" ;
+    <Perf, _,            Pl,Masc> => root + "ئے" ;
+    <Perf, _,            Pl,Fem>  => root + "ئیاں" ;
+
+    <Imperf, Pers1,         Sg, Masc> => nadaa ;
+    <Imperf, Pers1,         Sg, Fem>  => nadii ;
+    <Imperf, Pers1,         Pl, Masc> => nade ;
+    <Imperf, Pers1,         Pl, Fem>  => nadiiaaN ;
+
+    <Imperf, Pers2_Casual,  Sg, Masc> => nadaa ;
+    <Imperf, Pers2_Casual,  Sg, Fem>  => nadii ;
+    <Imperf, Pers2_Casual,  Pl, Masc> => nade ;
+    <Imperf, Pers2_Casual,  Pl, Fem>  => nadiiaaN ;
+    <Imperf, Pers2_Respect, Sg, _>    => nade ;
+    <Imperf, Pers2_Respect, Pl, Masc> => nade ;
+    <Imperf, Pers2_Respect, Pl, Fem>  => variants {nade;nadiiaaN} ;
+    <Imperf, _,             Sg, Masc> => nadaa ;
+    <Imperf, _,             Sg, Fem>  => nadii ;
+    <Imperf, _,             Pl, Masc> => nade ;
+    <Imperf, _,             Pl, Fem>  => nadiiaaN
+  }
+ } ;
+  
+
+ mkCmnVF2 : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = let daa = root + "دا" ;
+           dii = root + "دی" ;
+           de  = root + "دے" ;
+           diiaaN = root + "دیاں"
+   in 
+  case <t,p,n,g> of {
+    <Subj,Pers1,         Sg,_> => root + "اں" ;
+    <Subj,Pers1,         Pl,_> => root+"ئے" ;
+    <Subj,Pers2_Casual,  Sg,_> => root ;
+    <Subj,Pers2_Casual,  Pl,_> => root + "و"  ;
+    <Subj,Pers2_Respect, _, _> => root + "و"  ;
+
+    <Subj,_,             Sg,_> => root + "ے"  ;
+    <Subj,_,             Pl,_> => root+"ن" ;
+
+    <Perf, Pers1,        Sg,Masc> => root+"یا"; 
+    <Perf, Pers1,        Sg,Fem>  => root + "ی" ;
+    <Perf, Pers1,        Pl,Masc> => root + "ے"  ;
+    <Perf, Pers1,        Pl,Fem>  => root + "یاں" ;
+    <Perf, Pers2_Casual, Sg,Masc> => root+"یا"; 
+    <Perf, Pers2_Casual, Sg,Fem>  => root + "ی" ;
+    <Perf, Pers2_Casual, Pl,Masc> => root + "ے"  ;
+    <Perf, Pers2_Casual, Pl,Fem>  => root + "یاں" ;
+    <Perf, Pers2_Respect,_,_>     => root + "ے"  ;
+
+    <Perf, _,            Sg,Masc> => root+"یا" ;
+    <Perf, _,            Sg,Fem>  => root + "ی" ;
+    <Perf, _,            Pl,Masc> => root + "ے"  ;
+    <Perf, _,            Pl,Fem>  => root + "یاں" ;
+
+    <Imperf, Pers1,         Sg, Masc> => daa ;
+    <Imperf, Pers1,         Sg, Fem>  => dii ;
+    <Imperf, Pers1,         Pl, Masc> => de ;
+    <Imperf, Pers1,         Pl, Fem>  => diiaaN ;
+
+    <Imperf, Pers2_Casual,  Sg, Masc> => daa ;
+    <Imperf, Pers2_Casual,  Sg, Fem>  => dii ;
+    <Imperf, Pers2_Casual,  Pl, Masc> => de ;
+    <Imperf, Pers2_Casual,  Pl, Fem>  => diiaaN ;
+    <Imperf, Pers2_Respect, Sg, _>    => de ;
+    <Imperf, Pers2_Respect, Pl, Masc> => de ;
+    <Imperf, Pers2_Respect, Pl, Fem>  => variants {de;diiaaN} ;
+    <Imperf, _,             Sg, Masc> => daa ;
+    <Imperf, _,             Sg, Fem>  => dii ;
+    <Imperf, _,             Pl, Masc> => de ;
+    <Imperf, _,             Pl, Fem>  => diiaaN
+  }
+ } ;
+
+
+--v4
+{- mkV4 : Str -> Verb4 = \inf ->
+   let root  = (tk 2 inf); 
+    in { s = table {
+     Root     => root ;
+
+     Inf4      => inf ;
+     Inf_Fem4  => ((tk 1 inf) + "ی") ;
+     Inf_Obl4  => (tk 1 inf) ;
+     Ablative4 => ((tk 1 inf) + "وں") ;
+
+     MVF4 tense person number gender   => (mkCmnVF root tense person number gender).s 
+    }
+  } ;
+-}
+}
diff --git a/lib/src/punjabi/NounPnb.gf b/lib/src/punjabi/NounPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/NounPnb.gf
@@ -0,0 +1,138 @@
+concrete NounPnb of Noun = CatPnb ** open ResPnb, Prelude in {
+
+  flags optimize=all_subs ;
+
+  lin
+    DetCN det cn = {
+      s = \\c => detcn2NP det cn c det.n  ;
+      a = agrP3 cn.g det.n ;
+      isPron = False
+      } ;
+
+    UsePN pn = {s = \\c => toNP pn.s c ; a = agrP3 pn.g Sg ; isPron = False} ;
+    UsePron p = {s = \\c => np2pronCase p.s c p.a ; a = p.a ; isPron = True} ;
+
+    PredetNP pred np = {
+      s = \\c => pred.s ++ np.s ! c ;
+      a = np.a;
+      isPron = np.isPron
+      } ;
+
+    PPartNP np v2 = {
+      s = \\c => v2.s ! VF Imperf Pers1 Sg Fem   ++ np.s ! c   ;
+      a = np.a ;
+      isPron = np.isPron
+      } ;
+
+    RelNP np rs = {
+	  s = \\c => np.s ! c  ++ rs.s ! np.a ;
+      a = np.a ;
+      isPron = np.isPron
+      } ;
+
+    AdvNP np adv = {
+      s = \\c => np.s ! c ++ adv.s ! (fromAgr np.a).g ;
+      a = np.a ;
+      isPron = np.isPron
+      } ;
+
+    DetQuantOrd quant num ord = {
+--      s = \\ c => detquant2det quant.s num.s c  ++ ord.s ; 
+        s = \\n,g => quant.s!n!g!Dir ++ num.s ++ ord.s;
+      n = num.n
+      } ;
+
+    DetQuant quant num = {
+--      s = \\c => detquant2det quant.s num.s c; 
+        s = \\n,g => quant.s!n!g!Dir ++ num.s;
+	  n = num.n
+      } ;
+
+    DetNP det = {
+      s = \\c => det2NP det c ; ---- case
+      a = agrP3 Masc Sg ;
+      isPron = False
+      } ;
+
+    PossPron p = {s = \\_,_,_ => p.ps ; a = p.a} ;
+
+    NumSg = {s = []; n = Sg} ;
+    NumPl = {s = []; n = Pl} ;
+
+    NumCard n = n ** {hasCard = True} ;
+
+    NumDigits n = {s = n.s ! NCard ; n = n.n} ;
+    OrdDigits n = {s = n.s ! NOrd; n = n.n} ;
+
+    NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
+    OrdNumeral numeral = {s = numeral.s ! NOrd ; n = numeral.n} ;
+
+    AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
+
+    OrdSuperl a = {s = a.s ! Sg ! Masc ! Dir ; n = Sg} ;
+
+
+
+    DetArtSg art cn = {
+      s = \\c => art.s ++ toNP (cn.s ! Sg) c ;
+      a = agrP3 cn.g Sg
+      } ;
+
+    DetArtPl art cn = {
+      s = \\c => art.s ++ toNP (cn.s ! Pl) c ;
+      a = agrP3 cn.g Pl
+      } ;
+
+    DefArt = {s = \\_,_,_ => [] ; a = defaultAgr} ;
+    IndefArt = {s = \\_,_,_ => [] ; a =defaultAgr } ;
+
+    MassNP cn = {s = \\c => toNP (cn.s ! Sg) c ; a = agrP3 cn.g Sg ; isPron = False} ;
+
+    UseN n = n ;
+    UseN2 n = { s = n.s  ; g = n.g };
+
+    Use2N3 f = {
+      s = f.s;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    Use3N3 f = {
+      s = f.s ;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    ComplN2 f x = {s = \\n,c => case c of {
+       Dir => x.s ! NPC c ++ f.c2  ++ f.s ! n ! c ;
+	   Obl => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c ;
+	   Abl => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c ;
+	   ResPnb.Voc => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c 
+	   };
+	   g = f.g;
+	   };
+    ComplN3 f x = {
+      s = \\n,c =>  x.s ! NPObj ++ f.c4  ++ f.s ! n ! Dir  ;
+      g = f.g ;
+      c2 = f.c2;
+      c3 = f.c3
+      } ;
+
+    AdjCN ap cn = {
+      s = \\n,c => ap.s ! n ! cn.g ! c ++ cn.s ! n ! c ;
+      g = cn.g
+      } ;
+
+    RelCN cn rs = {
+      s = \\n,c => cn.s ! n ! c ++ rs.s ! agrP3 cn.g n ;
+      g = cn.g
+      } ;
+    AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ! cn.g ; g = cn.g} ;
+
+    SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
+
+    ApposCN cn np = {s = \\n,c => cn.s ! n ! Dir ++ np.s ! NPC c ; g = cn.g} ;
+
+}
diff --git a/lib/src/punjabi/NumeralPnb.gf b/lib/src/punjabi/NumeralPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/NumeralPnb.gf
@@ -0,0 +1,126 @@
+concrete NumeralPnb of Numeral = CatPnb ** open ResPnb, Prelude in {
+-- By Harald Hammarstroem
+-- Modification for Punjabi by Shafqat Virk
+ flags coding=utf8 ;
+
+
+
+param DForm = unit | ten ;
+param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
+param Size = singl | less100 | more100 ; 
+
+oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
+
+
+lincat Dig = { s:Str ; n : Number};
+lincat Digit = LinDigit ;
+lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
+lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
+lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
+lincat Sub1000000 = { s : Str ; n : Number } ;
+
+lin num x0 = 
+    {s = table {
+          NCard =>   x0.s ; 
+          NOrd =>  x0.s ++ "واں" -- (mkOrd x0.s)  need to use mkOrd which will make irregular ordinals but it gives path error
+          };
+       n = x0.n
+    } ;
+oper mkOrd : Str -> Str =
+ \s -> case s of {
+                    "عك"                  => "پیلا";
+                    "دو"                  => "دوجا";
+                    "تن"                => "دوجا";
+                    "چار"                => "چوتھا";
+                    _                     =>  s ++ "واں"
+                  };
+--  {s = \\_ => x0.s ; n = x0.n} ; 
+
+
+oper mkNum : Str -> Str -> DSize -> LinDigit = 
+  \do -> \bis -> \sz ->  
+  {s = table {unit => do ; ten => bis } ; 
+   size = sz ; n = Pl} ;
+
+lin n2 = mkNum "دو" "vی" r2 ;
+lin n3 = mkNum "تن" "تری" r3 ;
+lin n4 = mkNum "چار" "چالی" r4 ;
+lin n5 = mkNum "پنج" "پنجاہ" r5 ;
+lin n6 = mkNum "چh-" "سٹh-" r6 ; 
+lin n7 = mkNum "ست" "ستر" r7; 
+lin n8 = mkNum "اٹh-" "اسی" r8;
+lin n9 = mkNum "نو" "نبے" r9 ;
+
+oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
+  sg => a1 + "اں" ;
+  r2 => a2 + "ی" ;
+  r3 => a3 + "ی" ;
+  r4 => a4 + "الی" ;
+  r5 => a5 + "نجا" ;
+  r6 => a6 + "ٹھ" ;
+  r7 => a7 + "تر" ;
+  r8 => a8 + "اسی" ;
+  r9 => a9 + "انوے"
+} ;
+
+oper rows : DSize => DSize => Str = table {
+  sg => mkR "گیار" "iكك" "iكت" "عكتا" "iكو" "iكا" "iكہ" "iك" "iكی" ; 
+  r2 => mkR "بار" "با" "بت" "بای" "بی" "بو" "بہ" "بی" "ب" ;
+  r3 => mkR "تیر" "تی" "تیت" "تنت" "ترت" "ترو" "تیہ" "تیر" "تر" ;
+  r4 => mkR "چود" "چوب" "چوت" "چوا" "چوت" "چور" "چوہ" "چور" "چور" ;
+  r5 => mkR "پندر" "پنج" "پینت" "پنتا" "پچو" "پین" "پنج" "پنج" "پچ" ;
+  r6 => mkR "سول" "چھب" "چھت" "چh-ی" "چھو" "چھیا" "چھہ" "چھی" "چھی" ;
+  r7 => mkR "ستار" "ستا" "سینت" "سنت" "سنت" "ستو" "ست" "ست" "ست" ;
+  r8 => mkR "اٹھار" "اٹھا" "اٹھت" "اڑت" "اٹھو" "اٹھا" "اٹھ" "اٹھ" "اٹھ" ; 
+  r9 => table {sg => "انی" ; r2 => "انتی" ; r3 => "انتالی" ; 
+               r4 => "اناجا" ; r5 => "اناٹھ" ; r6 => "انہتر" ; 
+               r7 => "اناسی" ; 
+               r8 => "انانوے" ; r9 => "نڑینوے" } 
+} ;
+
+oper ss : Str -> {s : Str} = \s -> {s = s} ;
+
+lin pot01 = {s = table {unit => "اك" ; _ => "دuممی" } ; size = sg ; n = Sg} ;
+lin pot0 d = d ; 
+lin pot110 = {s = "داس" ; size = less100 ; n = Pl} ; 
+lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
+lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
+lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ;
+
+lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
+lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
+
+lin pot1as2 n = {s = n.s ; s2 = "دuممی" ; size = n.size ; n = n.n} ;
+lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
+              s2 = d.s ! unit ++ "لكھ" ; size = more100 ; n = d.n} ;
+lin pot2plus d e = 
+  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
+   s2 = (d.s ! unit) ++ "لكھ" ++ (mkhazar e.s e.size) ; 
+   size = more100 ; n = d.n} ;
+
+lin pot2as3 n = {s = n.s ; n = n.n} ;
+lin pot3 n = {s = table { singl => ekhazar ;
+                          less100 => n.s ++ "ہزار" ; 
+                          more100 => n.s2 } ! n.size ; n = n.n} ;
+lin pot3plus n m = 
+  {s = table {singl => ekhazar ;
+              less100 => n.s ++ "ہزار" ; 
+              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
+
+lin D_0 = { s = "۰" ; n = Sg};
+lin D_1 = { s = "۱" ; n = Sg};
+lin D_2 = { s = "۲" ; n = Pl};
+lin D_3 = { s = "۳" ; n = Pl};
+lin D_4 = { s = "۴" ; n = Pl};
+lin D_5 = { s = "۵" ; n = Pl};
+lin D_6 = { s = "۶" ; n = Pl};
+lin D_7 = { s = "۷" ; n = Pl};
+lin D_8 = { s = "۸" ; n = Pl};
+lin D_9 = { s = "۹" ; n = Pl};
+lin IDig d = { s = \\_ => d.s ; n = d.n} ;
+lin IIDig d dg = { s = \\df => Prelude.glue (dg.s ! df) d.s ; n = Pl }; 
+
+oper ekhazar : Str = variants {"ہزار" ; "اك" ++ "ہزار"} ; 
+oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {singl => ekhazar ; _ => s ++ "ہزار"} ! sz ;
+oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "سو" ; _ => s ++ "سو"} ! sz ;
+}
diff --git a/lib/src/punjabi/ParadigmsPnb.gf b/lib/src/punjabi/ParadigmsPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/ParadigmsPnb.gf
@@ -0,0 +1,173 @@
+--# -path=.:../abstract:../../prelude:../common
+--
+----1 Pnbu Lexical Paradigms
+
+resource ParadigmsPnb = open 
+  Predef, 
+  Prelude, 
+  MorphoPnb,
+  CatPnb
+  in {
+
+--2 Parameters 
+
+oper
+  masculine : Gender ;
+  feminine : Gender ;
+  singular : Number;
+  plural : Number;
+  
+  singular = Sg ; plural = Pl;
+
+  masculine = Masc ; feminine = Fem ; --i
+
+
+--2 Nouns
+
+
+  mkN2 : N -> Prep -> Str -> N2;
+  mkN2 = \n,p,c -> n ** {lock_N2 = <> ; c2 = p.s ; c3 = c } ; 
+  
+  mkN3 : N -> Prep -> Str -> Str-> N3 ;
+  mkN3 = \n,p,q,r -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q ; c4 = r} ;
+  
+-- Compound Nouns  
+
+    mkCmpdNoun : Str -> N -> N
+     = \s,noun -> {s =\\n,c => s ++ noun.s ! n ! c ; g = noun.g ; lock_N = <>};
+ 
+
+-- Proper names     
+  mkPN : Str -> PN =
+     \s -> let n = mkN11 s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
+-- Personal Pronouns     
+  personalPN : Str -> Str -> Str -> Str -> Str -> Number -> Gender -> PPerson -> Pron =
+     \s1,s2,s3,s4,sp,nn,g,p -> let n = mkPron s1 s2 s3 s4 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
+-- Demonstration Pronouns     
+  demoPN : Str -> Str -> Str -> Quant =
+    \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
+-- Determiner    
+  mkDet : Str -> Str -> Str -> Str -> Number -> Det =
+    \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
+-- Intergative pronouns    
+  mkIP : (x1,x2,x3,x4:Str) -> Number -> Gender -> IP =
+   \s1,s2,s3,s4,n,g -> let p = mkIntPronForm s1 s2 s3 s4 in { s = p.s ; n = n ; g = g ;  lock_IP = <>}; 
+
+-- AdN
+  mkAdN : Str -> AdN = \s -> ss s ;
+  
+--2 Adjectives
+
+  mkA = overload {
+    mkA : Str-> A 
+      = \s -> mkAdj1 s ** {lock_A = <>} ;
+	mkA : Str -> Str -> A2
+	  = \a,c -> let n = mkAdj1 a in {s = n.s; c2 = c} ** {lock_A2 = <>} ;
+    } ;
+
+--2 Verbs
+
+  mkV : Str -> V 
+      = \s -> mkVerb s ** {lock_V = <>} ;
+
+  mkV2 = overload {
+    mkV2 : Str -> V2 
+      = \s -> mkVerb s **  {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
+    mkV2 : V -> V2 
+      = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
+    mkV2 : V -> Str -> V2 
+      = \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
+    } ;
+  
+  mkV3 : V -> Str -> Str -> V3;
+    mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
+  mkV2V : V -> Str -> Str -> Bool -> V2V ;
+    mkV2V v s1 s2 b = v ** {isAux = b ; c1 = s1 ; c2 = s2 ; lock_V2V = <>} ;
+  
+-- compund verbs
+   compoundV = overload {
+   compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;     
+   compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
+   };
+ 
+
+----2 Adverbs
+  mkAdv : Str -> Adv = \str -> {s =\\ _ =>  str ; lock_Adv = <>};
+
+----2 Prepositions
+
+  mkPrep : Str -> Prep ;
+    mkPrep str = makePrep str ** {lock_Prep = <>};
+    
+--3 Determiners and quantifiers
+
+--  mkQuant : overload {
+    mkQuant : Pron -> Quant ;
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant ;
+--  } ;
+  
+--  mkQuant = overload {
+    mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>};
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant = mkQuantifier;
+--  } ;
+
+--2 Conjunctions
+  mkConj : overload {
+    mkConj : Str -> Conj ;                  -- and (plural agreement)
+    mkConj : Str -> Number -> Conj ;        -- or (agrement number given as argument)
+    mkConj : Str -> Str -> Conj ;           -- both ... and (plural)
+    mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
+  } ;
+ mkConj = overload {
+    mkConj : Str -> Conj = \y -> mk2Conj [] y plural ;
+    mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
+    mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ;
+    mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
+  } ;
+
+  mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> 
+    lin Conj (sd2 x y ** {n = n}) ;  
+
+--  mkV0  : V -> V0 ;
+--  mkVS  : V -> VS ;
+--  mkV2S : V -> Prep -> V2S ;
+  mkVV  : V -> VV = \v ->  lin VV (v ** {isAux = False});
+    
+
+--  mkV2V : V -> Prep -> Prep -> V2V ;
+--  mkVA  : V -> VA ;
+--  mkV2A : V -> Prep -> V2A ;
+--  mkVQ  : V -> VQ ;
+--  mkV2Q : V -> Prep -> V2Q ;
+--
+--  mkAS  : A -> AS ;
+--  mkA2S : A -> Prep -> A2S ;
+--  mkAV  : A -> AV ;
+--  mkA2V : A -> Prep -> A2V ;
+--  mkA2V a p = a ** {c2 = p.s } ; 
+--
+---- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
+---- $V0$ is just $V$; the second argument is treated as adverb.
+--
+--  V0 : Type ;
+--  AS, A2S, AV, A2V : Type ;
+--
+----.
+----2 Definitions of paradigms
+----
+---- The definitions should not bother the user of the API. So they are
+---- hidden from the document.
+--
+--  Gender = MorphoHin.Gender ; 
+--  Number = MorphoHin.Number ;
+--  Case = MorphoHin.Case ;
+--  human = Masc ; 
+--  nonhuman = Neutr ;
+--  masculine = Masc ;
+--  feminine = Fem ;
+--  singular = Sg ;
+--  plural = Pl ;
+--  nominative = Nom ;
+--  genitive = Gen ;
+  
+}
diff --git a/lib/src/punjabi/PhrasePnb.gf b/lib/src/punjabi/PhrasePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/PhrasePnb.gf
@@ -0,0 +1,27 @@
+concrete PhrasePnb of Phrase = CatPnb ** open Prelude, ResPnb in {
+
+  lin
+    PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
+
+    UttS s = s ;
+    UttQS qs = {s = qs.s ! QDir} ;
+    UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ;
+    UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
+    UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
+
+    UttIP ip = {s = ip.s ! Dir} ; --- Acc also
+    UttIAdv iadv = iadv ;
+    UttNP np = {s = np.s ! NPC Dir} ;
+    UttVP vp = {s = infVP False vp (agrP3 Masc Sg)} ;
+    UttAdv adv = {s = adv.s ! Masc } ;
+	UttCN cn = {s = cn.s ! Sg ! Dir};
+    UttCard n = n ;
+    UttAP ap = {s = ap.s ! Sg ! Masc ! Dir} ;
+
+    NoPConj = {s = []} ;
+    PConjConj conj = {s = conj.s2} ; ---
+
+    NoVoc = {s = []} ;
+    VocNP np = {s = np.s ! NPC Dir} ;
+
+}
diff --git a/lib/src/punjabi/QuestionPnb.gf b/lib/src/punjabi/QuestionPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/QuestionPnb.gf
@@ -0,0 +1,75 @@
+concrete QuestionPnb of Question = CatPnb ** open ResPnb, Prelude in {
+  flags optimize=all_subs ;
+    coding = utf8;
+
+  lin
+
+    QuestCl cl = {
+      s = \\t,p,qf => case qf of { 
+	                  QDir => cl.s ! t ! p ! OQuest;
+                      QIndir => "اگر" ++ cl.s ! t! p ! ODir
+					  }
+				};	  
+
+    QuestVP qp vp = 
+       let cl = mkSClause ("") (Ag qp.g qp.n Pers3_Near) vp;
+           qp1 = qp.s ! Dir;
+           qp2 = qp.s ! Obl ++ "نے"
+          in { s = \\t,p,o => case t of {
+		             VPImpPast => qp2 ++ cl.s ! t ! p ! ODir;
+					 _         => qp1 ++ cl.s ! t ! p ! ODir
+					 }
+					}; 
+    QuestSlash ip slash = 
+     let ip1 = ip.s ! Dir;
+         ip2 = ip.s ! Obl ++ "نے"
+     in {
+      s = \\t,p,o => case t of { 
+            VPImpPast => ip2 ++ slash.s ! t ! p ! ODir;
+            _         => ip1 ++ slash.s ! t ! p ! ODir
+            }
+        };
+
+    QuestIAdv iadv cl = { 
+             s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir;
+                      	};
+
+    QuestIComp icomp np = 
+     let cl = mkSClause (np.s ! NPC Dir ++ icomp.s) np.a (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+    PrepIP p ip = {s = ip.s ! ResPnb. Voc ++ p.s } ;
+
+    AdvIP ip adv = {
+      s = \\c => adv.s ! ip.g ++ ip.s ! c ;
+      n = ip.n;
+      g = ip.g;
+      } ;
+ 
+    IdetCN idet cn = {
+      s = \\c => idet.s ! cn.g ++ cn.s ! idet.n ! c ; 
+      g = cn.g;
+	  n = idet.n;
+      } ;
+
+    IdetIP idet = {
+     s = \\_ => idet.s ! Masc ; 
+      n = idet.n;
+	  g = Masc;
+      } ;
+
+    IdetQuant iqant num = {
+      s = \\g => iqant.s ! num.n ++ num.s ; 
+      n = num.n
+      } ;
+
+    CompIAdv a = a ;
+    CompIP p = ss (p.s ! Dir) ;
+    AdvIAdv i a = {s = i.s ++ a.s ! Masc} ;
+
+}
diff --git a/lib/src/punjabi/README b/lib/src/punjabi/README
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/README
@@ -0,0 +1,9 @@
+Some of the sources are transliterated, in
+
+ ./src
+
+Before compilation, do
+
+  gf -s <translit.gfs
+
+to get unicode.
diff --git a/lib/src/punjabi/RelativePnb.gf b/lib/src/punjabi/RelativePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/RelativePnb.gf
@@ -0,0 +1,73 @@
+concrete RelativePnb of Relative = CatPnb ** open ResPnb in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    RelCl cl = {
+      s = \\t,p,o,agr => case <t,giveNumber agr> of {
+	                    <VPImpPast,Sg> => "جس" ++ cl.s ! t ! p ! o ; 
+						<VPImpPast,Pl> => "جن" ++ cl.s ! t ! p ! o ;
+						<_,_>          => "جو" ++ cl.s ! t ! p ! o 
+			};
+      c = Dir
+      } ;
+-- RelVP and RelSlash slows the linking process a lot this is why it is commented for test purposes
+
+    RelVP rp vp = {
+      s = \\t,p,o,ag => 
+        let 
+          agr = case rp.a of {
+            RNoAg => ag ;
+            RAg a => a
+            } ;
+		 cl = mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp;
+		  
+--          cl = case t of {
+--                VPImpPast =>  mkSClause (rp.s ! (giveNumber agr) ! Obl) agr vp;
+--				_         =>  mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp
+--				};
+        in
+        cl.s ! t ! p ! ODir ;
+      c = Dir
+      } ;
+      
+
+---- Pied piping: "ات وہiچہ وع ارع لooكiنگ". Stranding and empty
+---- relative are defined in $ExtraHin.gf$ ("تہات وع ارع لooكiنگ ات", 
+---- "وع ارع لooكiنگ ات").
+--
+    RelSlash rp slash = {
+      s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Dir ++ slash.c2.s ++  slash.s ! t ! p ! o  ;--case t of {
+--	       VPImpPast => rp.s !  (giveNumber agr) Obl ++ slash.c2.s ++  slash.s ! t ! p ! o ;
+--		   _         => rp.s !  (giveNumber agr) Dir ++ slash.c2.s ++  slash.s ! t ! p ! o 
+--		   };
+      c = Dir
+      } ;
+
+    FunRP p np rp = {
+      s = \\n,c => rp.s ! n ! c ++ np.s ! NPC c ++ p.s  ;
+      a = RAg np.a
+      } ;
+
+    IdRP = {
+      s = table {
+        Sg => table {
+		
+    	    ResPnb.Dir  => "جعڑا" ; 
+            ResPnb.Obl  => "جعڑے" ;
+            ResPnb.Voc  => "جعڑے" ;
+	    ResPnb.Abl => "جعڑے"
+	    };
+		Pl => table {
+            ResPnb.Dir  => "جعڑے" ;
+		    ResPnb.Obl  => "جعڑے" ;
+		    ResPnb.Voc  => "جعڑے" ;
+		    ResPnb.Abl => "جعڑے"
+			}
+       }; 
+      a = RNoAg
+      } ;
+
+}
diff --git a/lib/src/punjabi/ResPnb.gf b/lib/src/punjabi/ResPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/ResPnb.gf
@@ -0,0 +1,634 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Pnbu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+
+resource ResPnb = ParamX  ** open Prelude,Predef in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  param 
+    Case = Dir | Obl | Voc | Abl ;
+    Gender = Masc | Fem ;
+	VTense = Subj | Perf | Imperf;
+    PPerson = Pers1
+	    | Pers2_Casual
+	    | Pers2_Respect
+	    | Pers3_Near
+	    | Pers3_Distant;
+		
+	Order = ODir | OQuest ;
+	
+--2 For $Relative$
+ 
+    RAgr = RNoAg | RAg Agr ;
+    RCase = RC Number Case ;
+
+-- for Numerial
+   
+   CardOrd = NCard | NOrd ;
+  
+  -----------------------------------------
+  -- Punjabi Pronouns
+  -----------------------------------------
+  
+   Pronoun = P Number Gender Case PPerson;
+   PersPronForm = PPF Number PPerson Case;
+   
+-------------------------------------------
+--Verbs
+-------------------------------------------
+
+      
+    VerbForm4 =
+      VF VTense PPerson Number Gender
+      | Inf | Inf_Fem | Inf_Obl | Ablative
+      | Root ;
+      
+  oper
+    Noun = {s : Number => Case => Str ; g : Gender} ;
+    Verb = {s : VerbForm4 => Str} ;
+    Preposition = {s : Str};
+    DemPronForm = {s : Number => Gender => Case => Str};
+    PossPronForm = {s : Number => Gender => Case => Str};
+    Determiner = {s : Number => Gender => Str ; n : Number};
+  
+-- a useful oper
+    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ;
+ 
+   -----------------------------------------------
+   -- Pnb Adjectives
+   -----------------------------------------------
+   Adjective1 = {s : Number => Gender => Case => Str} ;
+--    Adjective2 = {s : Number => Case => Str} ;  
+
+
+  mkAdj1 : Str -> Adjective1 ;
+  mkAdj1 piilaa = let end = last (piilaa) ;
+                   piil = if_then_else Str (eq end "ع") piilaa (tk 1 piilaa)
+                in adj1 (piilaa)    (piil+"ے")  (variants{piil+"یا"; piil+"ے"}) (piil+"یوں")  (piil+"ے")  (piil+"یاں")   (piil+"یو")   ""
+                        (piil+"ی") (piil+"ی") (variants{piil+"ی" ; piil+"یے"})  (piil+"یوں") (piil+"ی")  (piil+"یاں")   (piil+"یو") "" ;
+
+  adj1 :(x1,_,_,_,_,_,_, _,_,_,_,_,_,_,_, x16 : Str) -> {s : Number => Gender => Case => Str} = 
+   \msd,mso,msv,msa, mpd,mpo,mpv,mpa, fsd,fso,fsv,fsa, fpd,fpo,fpv,fpa -> {
+    s = table {
+     Sg => (cmnAdj msd mso msv msa fsd fso fsv fsa).s ;
+     Pl  => (cmnAdj mpd mpo mpv mpa fpd fpo fpv fpa).s
+     }
+   };
+ 
+--  mkAdj2 : Str -> Adjective2 ;
+--  mkAdj2 romii = cmnAdj romii romii         (romii+"ا")  (romii+"یوں")
+--                        romii (romii++"اں") (romii++"و")  "" ;
+
+ cmnAdj : (x1,_,_,_,_,_,_,x8 : Str) -> {s : Gender => Case => Str} = 
+      \sd,so,sv,sa, pd,po,pv,pa -> {
+      s = table {
+      Masc => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv ;
+        Abl => sa 
+	  } ;
+      Fem => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv ;
+        Abl => pa 
+	  }
+      } 
+   } ;
+ 
+					 
+		 
+
+  RefPron : Str;
+  RefPron = "خود";
+  
+  ----------------------------------------------------------
+  -- Grammar part
+  ----------------------------------------------------------
+  
+  param
+    Agr = Ag Gender Number PPerson ;
+    NPCase = NPC Case | NPObj | NPErg ;
+
+  oper
+    np2pronCase :  (Case => Str) -> NPCase -> Agr -> Str = \ppf,npc,a -> case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg => case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => ppf ! Dir ++ "نے" ;
+	   _			     => ppf ! Dir
+	   }
+      } ;
+    
+	toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
+      NPC c => pn !  c ;
+      NPObj => pn !  Dir ;
+      NPErg => pn !  Obl ++ "نے"
+      } ;
+	detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! c ;
+       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
+       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "نے"
+      } ;  
+    det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ;
+       NPObj => dt.s ! Sg ! Masc ;
+       NPErg => dt.s ! Sg  ! Masc ++ "نے"
+      } ;    
+
+oper
+------------------------------------------
+-- Agreement transformations
+-----------------------------------------
+    toAgr : Number -> PPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : PPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+    
+    defaultAgr : Agr = agrP3 Masc Sg ;
+    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
+    personalAgr : Agr = agrP1 Masc Sg ;
+    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
+	
+ param
+      CPolarity = 
+       CPos
+       | CNeg Bool ;  -- contracted or not
+
+ oper
+    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
+    Pos => CPos ;
+    Neg => CNeg b
+    } ;
+
+	NP : Type = {s : NPCase => Str ; a : Agr ; isPron : Bool} ;
+   
+ param
+    CTense = CPresent | CPast | CFuture ;
+    
+  oper 
+    copula : CTense -> Number -> PPerson -> Gender -> Str = \t,n,p,g -> 
+      case <t,n,p,g> of {
+        <CPresent,Sg,Pers1,_   > => "واں" ;
+        <CPresent,Sg,Pers2_Casual,_   > => "ایں" ;
+	<CPresent,Sg,Pers2_Respect,_   > => "او" ;
+        <CPresent,Sg,_,_   > => "اے" ;
+--        <CPresent,Sg,Pers3_Distant,_   > => "اے" ;
+	<CPresent,Pl,Pers1,_   > => "واں" ;
+        <CPresent,Pl,Pers2_Casual,_   > => "او" ;
+	<CPresent,Pl,Pers2_Respect,_   > => "او" ;
+        <CPresent,Pl,_,_   > => "نے" ;
+--        <CPresent,Pl,Pers3_Distant,_   > => "نے" ;
+	<CPast,Sg,Pers1,_   > => "ساں" ;
+--        <CPast,Sg,Pers2_Casual,Masc   > => "سی" ;
+	<CPast,Sg,Pers2_Casual,_   > => "سیں" ;
+	<CPast,Sg,Pers2_Respect,_   > => "سو" ;
+--	<CPast,Sg,Pers2_Respect,Fem   > => "سیں" ;
+        <CPast,Sg,_,_   > => "سی" ;
+--	<CPast,Sg,Pers3_Near,Fem   > => "تh-ی" ;
+--      <CPast,Sg,Pers3_Distant,_  > => "سی" ;
+--	<CPast,Sg,Pers3_Distant,Fem  > => "تh-ی" ;
+	<CPast,Pl,Pers1,_   > => "ساں" ;
+        <CPast,Pl,Pers2_Casual,_   > => "سو" ;
+	<CPast,Pl,Pers2_Respect,_   > => "سو" ;
+        <CPast,Pl,_,_   > => "سں" ;
+--	<CPast,Pl,Pers3_Distant,_   > => "سن" ;
+	<CFuture,Sg,Pers1,Masc   > => "گا" ;
+	<CFuture,Sg,Pers1,Fem   > => "گی" ;
+        <CFuture,Sg,Pers2_Casual,Masc   > => "گا" ;
+	<CFuture,Sg,Pers2_Casual,Fem   > => "گی" ;
+	<CFuture,Sg,Pers2_Respect,Masc   > => "گے" ;
+	<CFuture,Sg,Pers2_Respect,Fem   > => "گے" ;
+        <CFuture,Sg,Pers3_Near,Masc   > => "گا" ;
+	<CFuture,Sg,Pers3_Near,Fem   > => "گی" ;
+        <CFuture,Sg,Pers3_Distant,Masc  > => "گا" ;
+	<CFuture,Sg,Pers3_Distant,Fem  > => "گی" ;
+	<CFuture,Pl,Pers1,Masc   > => "گے" ;
+	<CFuture,Pl,Pers1,Fem   > => "گیاں" ;
+        <CFuture,Pl,Pers2_Casual,Masc   > => "گے" ;
+	<CFuture,Pl,Pers2_Casual,Fem   > => "گیاں" ;
+	<CFuture,Pl,Pers2_Respect,Masc   > => "گے" ;
+	<CFuture,Pl,Pers2_Respect,Fem   > => "گیاں" ;
+        <CFuture,Pl,Pers3_Near,Masc   > => "گے" ;
+	<CFuture,Pl,Pers3_Near,Fem   > => "گیاں" ;
+	<CFuture,Pl,Pers3_Distant,Masc  > => "گے" ;
+	<CFuture,Pl,Pers3_Distant,Fem  > => "گیاں" 
+        
+        
+        } ;
+
+ param
+    VPPTense = 
+	  VPPres
+	  |VPPast
+	  |VPFutr
+	  |VPPerf;
+      
+    VPHTense = 
+       VPGenPres  -- impf hum       nahim    "I گo"
+     | VPImpPast  -- impf Ta        nahim    "I وعنت"
+	 | VPFut      -- fut            na/nahim "I سہالل گo"
+     | VPContPres -- stem raha hum  nahim    "I ام گoiنگ"
+     | VPContPast -- stem raha Ta   nahim    "I واس گoiنگ"
+	 | VPContFut
+     | VPPerfPres -- perf hum       na/nahim "I ہاvع گoنع"
+     | VPPerfPast -- perf Ta        na/nahim "I ہاد گoنع"          
+	 | VPPerfFut
+	 | VPPerfPresCont
+	 | VPPerfPastCont
+	 | VPPerfFutCont
+     | VPSubj     -- subj           na       "I مای گo"
+     ;
+
+    VPHForm = 
+       VPTense VPPTense Agr -- 9 * 12
+     | VPReq
+     | VPImp
+     | VPReqFut
+     | VPInf
+     | VPStem
+     ;
+
+    VType = VIntrans | VTrans | VTransPost ;
+
+  oper
+    
+	objVType : VType -> NPCase = \vt -> case vt of {
+      VTrans => NPObj ;
+      _ => NPC Obl
+      } ;
+
+    VPH : Type = {
+      s    : VPHForm => {fin, inf : Str} ;
+      obj  : {s : Str ; a : Agr} ; 
+      subj : VType ;
+      comp : Agr => Str;
+      inf : Str;
+      ad  : Str;
+      embComp : Str ;
+      prog : Bool ;
+      } ;
+	
+	VPHSlash = VPH ** {c2 : Compl} ;
+
+    Compl : Type = {s : Str ; c : VType} ;
+
+   predV : Verb -> VPH = \verb -> {
+      s = \\vh => 
+	   case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = verb.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =verb.s ! VF Perf p n g} ;
+		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  verb.s ! VF Subj p n g } ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = verb.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  verb.s ! Root};
+		 _ => {fin = [] ; inf = verb.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = verb.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;
+
+    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
+    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
+-------------------------
+-- added for cauitives
+   predVcc : (Verb **{c2:Compl}) -> VPHSlash = \verb ->
+    predV verb ** {c2 = {s = "" ; c = VTrans} } ;
+------------------------
+	 
+    raha : Gender -> Number -> Str = \g,n -> 
+	   (mkAdj1 "ریا").s ! n ! g ! Dir ;
+    pya : Gender -> Number -> Str = \g,n -> 
+	   (mkAdj1 "پیا").s ! n ! g ! Dir ;	   
+
+	cka : Gender -> Number -> Str = \g,n -> 
+	  (mkAdj1 "چكا").s ! n ! g ! Dir ;
+	  
+	hw : PPerson -> Number -> Str = \pp,n ->    
+	 case <pp,n> of {
+	 <Pers1,_> => "ہوواں";
+	 <Pers2_Casual,Sg>    => "ہوویں";
+	 <Pers2_Casual,Pl>    => "ہوو";
+	 <Pers2_Respect,_>    => "ہوو";
+	 <Pers3_Distant,Sg>    => "ہووے";
+	 <Pers3_Distant,Pl>    => "ہون";
+	 <Pers3_Near,Sg>    => "ہووے";
+	 <Pers3_Near,Pl>    => "ہون"
+	 
+	 };
+	 
+	predAux : Aux -> VPH = \verb -> {
+     s = \\vh => 
+       let  
+
+		 inf  = verb.inf ;
+         part = verb.ppart ;
+
+       in
+       case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
+         VPStem => {fin = []  ; inf = "رہ" };
+		 _ => {fin = part ; inf = [] }
+		 };
+	  obj = {s = [] ; a = defaultAgr} ;
+      subj = VIntrans ;
+      inf = verb.inf;
+	  ad = [];
+      embComp = [];
+      prog = False ;
+      comp = \\_ => []
+      } ;
+    
+  Aux = {
+      inf,ppart,prpart : Str
+    } ;
+
+  auxBe : Aux = {
+    inf  = "" ;
+    ppart = "" ;
+    prpart = ""
+    } ;
+    
+  predProg : VPH -> VPH = \verb -> {
+     s = \\vh => 
+       case vh of {
+         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ pya g n} ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ pya g n} ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf } ;
+	 VPTense VPPerf (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ raha g n } ;
+         VPStem => {fin = []  ; inf = (verb.s!VPStem).inf };
+		 _ => {fin = [] ; inf = [] }
+		 };
+      obj = verb.obj ;
+      subj =  VIntrans ;
+      inf = verb.inf;
+      ad = verb.ad;
+      embComp = verb.embComp;
+      prog = True ;
+      comp = verb.comp 
+      } ;
+   	
+  Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+				    VPGenPres  => vp.s !  VPTense VPPres agr ;
+					VPImpPast  => vp.s !  VPTense VPPast agr ;
+				    
+					VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+					                                _    => vp.s !  VPTense VPFutr agr } ;
+					VPContPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+					VPContPast => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+					VPContFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+					VPPerfPres =>
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+					--  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfPast => 
+                      -- {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		                        {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+					VPPerfFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+					VPPerfPresCont => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+					VPPerfPastCont => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+					VPPerfFutCont => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+					VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "شاید" } ;
+					                                _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "شاید" } } 
+                   
+					};
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كی" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نیں" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+					VPImpPast  => vp.s !  VPTense VPPast agr ;
+					VPFut      => vp.s !  VPTense VPFutr agr ;
+					VPContPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ pya g n  } ;
+					VPContPast => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ;
+					VPContFut  => 
+					  {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ pya g n ++ hw p n  } ;
+					VPPerfPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfPast => 
+                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+					VPPerfPresCont => 
+					 {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ; 
+					VPPerfPastCont => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ; 
+					VPPerfFutCont => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ pya g n ++ hw p n } ;
+					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "ژاید"  }
+                    
+					};
+
+		  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كی" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نیں" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+    
+    insertSubj : PPerson -> Str -> Str = \p,s -> 
+      case p of { Pers1 => s ++ "وں" ; _ => s ++ "ے"};
+     
+    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
+     } ;
+     insertVV : Str -> VPH -> Str -> VPH -> VPH = \obj1,vp,emb,vp2 -> {
+     s = vp.s ;
+--     obj = vp.obj ;
+     obj = vp2.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ emb; -- this should be covered in urdu as well
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1  
+     } ;
+     
+    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ obj1;
+     prog = vp.prog ;
+     comp = vp.comp
+     
+     } ;
+	 
+    insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj obj vp ** {c2 = vp.c2} ;
+    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj2 obj vp ** {c2 = vp.c2} ;
+
+	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
+     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
+    infVV : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  }; -- need to be checked and should be covered in urdu as well
+        case isAux of {False =>  (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf  ; True => (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  }; -- need to be checked and should be covered in urdu as well
+    infV2V : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ++ "دی"  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "دی"}; -- need to be checked and should be covered in urdu as well
+      case isAux of {False =>  (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ++ "دی"  ; True => (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "دی"}; -- need to be checked and should be covered in urdu as well  
+
+    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
+      s = vps.s ;
+      obj = case np.isPron of { 
+            False => {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
+	    _     => {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ; a = np.a}
+	    };
+      subj = vps.c2.c ;
+	  inf = vps.inf;
+	  ad = vps.ad;
+      embComp = vps.embComp;
+      prog = vps.prog ;
+      comp = vps.comp
+      } ;
+	  
+	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj ;
+	 ad = vp.ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
+    } ;
+
+    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+	 subj = vp.subj;
+     ad  = vp.ad ++ ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+	conjThat : Str = "كہ" ;
+    checkPron : NP -> Str -> Str = \np,str ->  case (np.isPron) of {
+                                True => np.s ! NPC Obl;
+                                False => np.s ! NPC Obl ++ str} ;
+		
+    insertEmbCompl : VPH -> Str -> VPH = \vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj;
+     ad  = vp.ad;
+     embComp = vp.embComp ++ emb;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+    
+    insertTrans : VPH -> VType -> VPH = \vp,vtype -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = case vtype of {VIntrans => VTransPost ; VTrans => VTrans ; _ => vtype} ; -- still some problem not working properly
+     ad  = vp.ad;
+     embComp = vp.embComp ;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+
+}
+
diff --git a/lib/src/punjabi/SentencePnb.gf b/lib/src/punjabi/SentencePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/SentencePnb.gf
@@ -0,0 +1,103 @@
+concrete SentencePnb of Sentence = CatPnb ** open Prelude, ResPnb in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    PredVP np vp = mkClause np vp ;
+
+    PredSCVP sc vp = mkSClause sc.s (defaultAgr) vp ;
+
+    ImpVP vp = {
+      s = \\pol,n => 
+        let 
+          agr   = Ag Masc (numImp n) Pers2_Casual ;
+          verb  = infVP True vp agr ;
+          dont  = case pol of {
+            CNeg True => "مت" ;
+            CNeg False => "نہ" ;
+            _ => []
+            }
+        in
+        dont ++ verb
+    } ;
+
+    SlashVP np vp = 
+      mkClause np vp ** {c2 = vp.c2} ;
+
+    AdvSlash slash adv = {
+	  s  = \\t,p,o =>  adv.s ! Masc ++ slash.s ! t ! p ! o  ;
+      c2 = slash.c2
+    } ;
+
+    SlashPrep cl prep = cl **  {c2 = { s = prep.s ; c = VIntrans}} ;
+
+    SlashVS np vs slash = 
+      mkClause  np 
+        (insertObj2 (conjThat ++ slash.s) (predV vs))  **
+        {c2 = slash.c2} ;
+
+    EmbedS  s  = {s = conjThat ++ s.s} ;
+    EmbedQS qs = {s = qs.s ! QIndir} ;
+    EmbedVP vp = {s = infVP False vp defaultAgr} ; --- agr
+
+    UseCl  temp p cl = 
+	 { s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! ODir;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir -- this needs to be fixed by making SubjPerf in ResPnb		  
+
+   };
+  } ;
+    UseQCl temp p cl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! q;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! q;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q		  
+ 
+   };
+  } ;
+    UseRCl temp p rcl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ rcl.s ! VPGenPres ! p.p ! ODir ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPres ! p.p ! ODir ! q;
+          <Past,Simul> => temp.s ++ p.s ++ rcl.s ! VPImpPast ! p.p ! ODir ! q;
+          <Past,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPast ! p.p ! ODir ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ rcl.s ! VPPerfFut ! p.p ! ODir ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q
+     };		  
+      c = rcl.c
+    } ;
+    UseSlash temp p clslash = {
+      s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ clslash.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ clslash.s ! VPImpPast ! p.p ! ODir ;
+          <Past,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ clslash.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir
+     };		  
+      c2 = clslash.c2
+    } ;
+
+    AdvS a s = {s = a.s ! Masc ++ s.s} ;
+
+    RelS s r = {s = s.s ++ r.s ! agrP3 Masc Sg} ;
+    SSubjS s sj s = { s = s.s ++ sj.s ++ s.s};
+
+}
diff --git a/lib/src/punjabi/StructuralPnb.gf b/lib/src/punjabi/StructuralPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/StructuralPnb.gf
@@ -0,0 +1,130 @@
+concrete StructuralPnb of Structural = CatPnb ** 
+  open MorphoPnb, ParadigmsPnb, Prelude, NounPnb in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  lin
+  above_Prep = ss "اتے" ;
+  after_Prep = ss "توں بعد" ;
+  all_Predet = ss "سارے" ;
+  almost_AdA, almost_AdN = ss "تقریبا" ;
+  although_Subj = ss "پاویں" ;
+  always_AdV = ss "ہمیشہ" ;
+  and_Conj = sd2 [] "تے" ** {n = Pl} ;
+  because_Subj = ss "كیونكھ" ;
+  before_Prep = ss "پلے" ;
+  behind_Prep = ss "پیچھے" ;
+  between_Prep = ss "وچكار" ;
+  both7and_DConj = sd2 "دوویں" "تے" ** {n = Pl} ;
+  but_PConj = ss "لیكن" ;
+  by8agent_Prep = ss "" ;
+  by8means_Prep = ss "" ;
+  can8know_VV,can_VV = mkV "سكنا" ** { isAux = True} ;
+  during_Prep = ss ["دے وچ"] ;
+  either7or_DConj = sd2 "كوی اك" "یا" ** {n = Sg} ;
+  everybody_NP =  MassNP (UseN (MorphoPnb.mkN11 "ہر كوی")); -- not a good way coz need to include NounPnb
+  every_Det = mkDet "ہر" "ہر" "ہر" "ہر" Sg;
+  everything_NP = MassNP (UseN (MorphoPnb.mkN11 "ہر شے"));
+  everywhere_Adv = mkAdv "ہر تھاں" ;
+  few_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Pl ;
+  first_Ord = {s = "پعہلا" ; n = Sg} ; --DEPRECATED
+  for_Prep = ss "[دے واسطE]" ;
+  from_Prep = ss "توں" ;
+  he_Pron = personalPN "او" "اینوں" "او" "" "اورا"  Sg Masc Pers3_Distant ;
+  here_Adv = mkAdv "ایتھے" ;
+  here7to_Adv = mkAdv "ایتھے" ;
+  here7from_Adv = mkAdv "ایتھوں" ;
+  how_IAdv = ss "كسراں" ;
+  how8many_IDet = makeIDet "كینے" "كینی" Pl ;
+  how8much_IAdv  = ss "كینا" ;
+  if_Subj = ss "اگر" ;
+  in8front_Prep = ss ["دے سامنے"] ;
+  i_Pron = personalPN "میں" "مینوں" "مینوں" "میتوں" "میرا" Sg Masc Pers1;
+  in_Prep = ss "وچ" ;
+  it_Pron  = personalPN "اے" "اینوں" "اینوں" "" "ایرا" Sg Masc Pers3_Near;
+  less_CAdv = {s = "كٹ" ; p = ""} ;
+  many_Det = mkDet "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" Pl ;
+  more_CAdv = {s = "ہور" ; p = "" } ;
+  most_Predet = ss "زیادہ تر" ;
+  much_Det = mkDet "بہت" "بہت" "بہت" "بہت" Sg  ;
+--  must_VV = {
+--    s = table {
+--      VVF VInf => ["ہاvع تo"] ;
+--      VVF VPres => "مuست" ;
+--      VVF VPPart => ["ہاد تo"] ;
+--      VVF VPresPart => ["ہاviنگ تo"] ;
+--      VVF VPast => ["ہاد تo"] ;      --# notpresent
+--      VVPastNeg => ["ہادn'ت تo"] ;      --# notpresent
+--      VVPresNeg => "مuستn'ت"
+--      } ;
+--    isAux = True
+--    } ;
+-----b  no_Phr = ss "نo" ;
+  no_Utt = ss "نیں" ;
+  on_Prep = ss "اتے" ;
+  one_Quant = demoPN "اك" "اك" "اك"  ; -- DEPRECATED
+  only_Predet = ss "سرف" ;
+  or_Conj = sd2 [] "یا" ** {n = Sg} ;
+  otherwise_PConj = ss "یا فیر" ;
+  part_Prep = ss "ہصہ" ;
+  please_Voc = ss "مہربانi" ;
+  possess_Prep = ss "دا" ;
+  quite_Adv = ss "كہامoسہ" ;
+  she_Pron = personalPN "او" "اونوں" "اونو" "" "اورا" Sg Fem Pers3_Distant ;
+  so_AdA = ss "سo" ;
+  somebody_NP = MassNP (UseN (MorphoPnb.mkN11 "كوی" ));
+  someSg_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Sg ;
+  somePl_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Pl ;
+  something_NP = MassNP (UseN (MorphoPnb.mkN11 "كوی شے"));
+  somewhere_Adv = mkAdv "كتلے" ;
+  that_Quant = demoPN "وہ" "اس" "ان" ;
+  that_Subj = ss "كہ";
+  there_Adv = mkAdv "اوتھے" ;
+  there7to_Adv = mkAdv "اوتھے" ;
+  there7from_Adv = mkAdv "اوتھوں" ;
+  therefore_PConj = ss "اس لی" ;
+  they_Pron = personalPN "او" "[اوناں نوN]" "او" "" "اوناں دا" Pl Masc Pers3_Distant ; ---- 
+  this_Quant = demoPN "یہ" "اس" "ان";      
+  through_Prep = ss "وچوں" ;
+  too_AdA = ss "بہت" ;
+  to_Prep = ss "اونوں" ** {lock_Prep = <>};
+  under_Prep = ss "تھلے" ** {lock_Prep = <>};
+  very_AdA = ss "بہت" ;
+  want_VV = mkV "چانا" ** { isAux = False} ;
+  we_Pron = personalPN "اسی" "سانوں" "سانوں" "ساتوں" "ساڈا" Pl Masc Pers1 ;
+--  whatSg_IP = mkIP "كیا" "كiس" "كiس" Sg Masc ;
+--  whatPl_IP = mkIP "كیا" "كiن" "كiن" Pl Masc ;
+  when_IAdv = ss "كدوں" ;
+  when_Subj = ss "كدوں" ;
+  where_IAdv = ss "كتھے" ;
+  which_IQuant = {s = \\_ => "كیڑی"} ;
+--  whichPl_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
+--  whichSg_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
+--  whoSg_IP = mkIP "كون" "كiس" "كiس" Sg Masc  ;
+--  whoPl_IP = mkIP "كون" "كن" "كنہوں" Pl Masc ;
+  why_IAdv = ss "كیوں" ;
+  without_Prep = ss ["توں بغیر"] ;
+  with_Prep = ss ["دے نال"] ;
+--  yes_Phr = ss "ہاں" ;
+  yes_Utt = ss "ہاں" ;
+  youSg_Pron = personalPN "توں" "تینوں" "تینوں" "تیتوں" "توواڈا" Sg Masc Pers2_Casual ;
+  youPl_Pron = personalPN "تسی" "توانوں" "توانوں" "تواتوں" "توواڈا" Pl Masc Pers2_Casual ;
+  youPol_Pron = personalPN "تسی" "توانوں" "توانوں" "تواتوں" "توواڈا" Sg Masc Pers2_Respect  ;
+  no_Quant =  demoPN " كوی نہیں" "كوی نہیں" "كوی نہیں" ; 
+  not_Predet = {s="نہیں"} ;
+  if_then_Conj = sd2 "اگر" "تے" ** {n = Sg} ; 
+  at_least_AdN = ss ["كم توں كم"] ;
+  at_most_AdN = ss ["زیادہ توں زیادہ"];
+  nothing_NP = MassNP (UseN (MorphoPnb.mkN11 "كچھ نیں" )); 
+  except_Prep = ss "سواے" ;
+  nobody_NP = MassNP (UseN (MorphoPnb.mkN11 "كوی نہیں"));  
+
+  as_CAdv = {s = "ایناں" ; p = "جناں"} ;
+
+  have_V2 = mkV2 (mkV "راكھنا") "" ;
+
+ language_title_Utt = ss "پنجابی" ;
+
+}
+
diff --git a/lib/src/punjabi/SymbolPnb.gf b/lib/src/punjabi/SymbolPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/SymbolPnb.gf
@@ -0,0 +1,47 @@
+--# -path=.:../abstract:../common
+
+concrete SymbolPnb of Symbol = CatPnb ** open Prelude, ResPnb in {
+
+  flags coding = utf8;
+{-
+ lin
+-- SymbPN i = {s = \\_ => i.s ; g = Masc} ;
+  SymbPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  IntPN i  = {s = addGenitiveS i.s ; g = Masc} ;
+  FloatPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  NumPN i = {s = \\_ =>i.s ; g = Masc} ;
+  CNIntNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+  CNSymbNP det cn xs = {
+    s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Dir ++  xs.s ; 
+    a = agrP3 cn.g det.n
+    } ;
+  CNNumNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+
+  SymbS sy = sy ; 
+  SymbNum sy = { s = sy.s ; n = Pl } ;
+  SymbOrd sy = { s = sy.s ++ "واں" ; n = Pl} ;
+
+lincat 
+
+  Symb, [Symb] = SS ;
+
+lin
+  MkSymb s = s ;
+
+  BaseSymb = infixSS "تے" ;
+  ConsSymb = infixSS "" ;
+
+oper
+    -- Note: this results in a space before 's, but there's
+    -- not mauch we can do about that.
+    addGenitiveS : Str -> Case => Str = \s -> 
+     table {_ => s ++ "دا" } ;
+-}
+
+}
diff --git a/lib/src/punjabi/VerbPnb.gf b/lib/src/punjabi/VerbPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/VerbPnb.gf
@@ -0,0 +1,46 @@
+concrete VerbPnb of Verb = CatPnb ** open ResPnb in {
+
+  flags coding = utf8;
+  flags optimize=all_subs ;
+
+  lin
+    UseV  v = predV v   ;
+    SlashV2a v = predV v ** {c2 = {s = v.c2.s ; c = VTrans}} ;
+    Slash2V3 v np = 
+      insertObjc (\\_ => np.s ! NPObj ++ v.c3 ) (predV v ** {c2 = {s = v.c2 ; c = VTrans}}) ;
+   
+    Slash3V3 v np = 
+      insertObjc (\\_ => checkPron np v.c2) (predV v ** {c2 = {s = v.c3 ; c = VTrans}}) ; 
+                                
+--    ComplVV v vp = insertTrans (insertVV (infVV v.isAux vp ) (predV v) vp.embComp) VTransPost;
+--    ComplVV v vp = insertVV (infVV v.isAux vp ) (predV v) vp.embComp;
+    ComplVV v vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp vp) vp.subj; 
+    ComplVS v s  = insertTrans (insertObj2 (conjThat ++ s.s) (predV v)) VTransPost ;
+    ComplVQ v q  = insertObj2 (conjThat ++ q.s ! QIndir) (predV v) ;
+    ComplVA v ap = insertObj (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ) (predV v) ;
+    SlashV2V v vp = insertVV (infV2V v.isAux vp) (predV v) vp.embComp vp **{c2 = {s = "توں" ; c = VTransPost}} ; -- should creat a form at VP level which can be used in VP like 'swn da kyna' also check the c=VTransPost it is correct in case if second v is intrasitive, but not if trans like begged me to ead bread
+    SlashV2S v s  = insertObjc2 (conjThat ++ s.s) (predV v ** {c2 = {s = "توں" ; c = VTransPost}}) ;
+    SlashV2Q v q  = insertObjc2 (conjThat ++ q.s ! QIndir) (predV v ** {c2 = {s = "نوں" ; c = VTransPost}}) ; -- chek for VTransPost, as in this case , case should be ergative but agrement should be default
+    SlashV2A v ap = insertObjc (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ) (predV v ** {c2 = {s = "نوں" ; c = VTransPost}}) ; ----
+    ComplSlash vp np = insertObject np vp ;
+    SlashVV vv vp = 
+      insertEmbCompl (insertObj (\\a => infVP vv.isAux vp a) (predV vv)) vp.embComp **
+        {c2 = vp.c2} ;
+    SlashV2VNP vv np vp = 
+      insertObjPre (\\_ =>  np.s ! NPObj  )
+        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
+          {c2 = vp.c2} ;
+    UseComp comp = insertObj comp.s (predAux auxBe) ;
+
+    AdvVP vp adv = insertObj (\\a => adv.s ! (fromAgr a).g) vp ;
+
+    AdVVP adv vp = insertAdV adv.s vp ;
+    ReflVP v = insertObjPre (\\_ =>  RefPron) v ;
+    PassV2 v = predV v ; -- need to be fixed
+    CompAP ap ={s = \\a => ap.s ! giveNumber a ! giveGender a ! Dir } ;
+    CompNP np = {s = \\_ => np.s ! NPObj} ;
+    CompAdv adv = {s = \\a => adv.s ! (fromAgr a).g } ;
+    CompCN cn = {s = \\a => cn.s ! giveNumber a ! Dir} ;
+
+
+}
diff --git a/lib/src/punjabi/src/AdjectivePnb.gf b/lib/src/punjabi/src/AdjectivePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/AdjectivePnb.gf
@@ -0,0 +1,39 @@
+concrete AdjectivePnb of Adjective = CatPnb ** open ResPnb, Prelude in {
+
+  flags coding = utf8;
+  lin
+
+    PositA a = a ;
+	UseComparA a = a;
+
+    ComparA a np = {
+        s = \\n,g,c => np.s ! NPC Obl ++ "twN" ++ a.s ! n ! g ! c  ;                       
+       } ;
+
+---- $SuperlA$ belongs to determiner syntax in $Noun$.
+
+    ComplA2 a np = {
+      s = \\n,g,c => np.s ! NPC Obl ++ a.c2 ++ a.s ! n ! g ! c  ; 
+     } ;
+
+    ReflA2 a = {
+      s = \\n,g,c => a.s ! n ! g ! c   ++  RefPron ++ "nal" ; 
+      } ;
+
+    SentAP ap sc = {
+      s = \\n,g,c => ap.s ! n ! g ! c ++ sc.s ; 
+      } ;
+
+    AdAP ada ap = {
+      s = \\n,g,c => ada.s ++ ap.s ! n ! g ! c ;
+      } ;
+
+    UseA2 a = a ;
+	
+	CAdvAP  cadv ap np = {
+	 s = \\n,g,c => cadv.s ++ ap.s ! n ! g ! c ++ cadv.p ++  np.s ! NPC Dir ;
+	 };
+    
+    AdjOrd ord =  { s = \\_,_,_ => ord.s ; };
+
+}
diff --git a/lib/src/punjabi/src/AdverbPnb.gf b/lib/src/punjabi/src/AdverbPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/AdverbPnb.gf
@@ -0,0 +1,21 @@
+concrete AdverbPnb of Adverb = CatPnb ** open ResPnb, Prelude in {
+
+  flags coding = utf8;
+  lin
+    PositAdvAdj a = {s = \\g => a.s ! Sg ! g ! Obl } ;
+    ComparAdvAdj cadv a np = {
+      s = \\g => np.s ! NPObj  ++ cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl ;  
+      } ;
+    ComparAdvAdjS cadv a s = {
+      s = \\g => cadv.p ++ cadv.s ++ a.s ! Sg ! g ! Obl   ++  s.s;
+      } ;
+
+    PrepNP prep np = {s = \\_ => np.s ! NPObj ++ prep.s } ;
+
+    AdAdv ada adv = { s = \\g => ada.s ++ adv.s ! g} ;
+
+--    SubjS = cc2 ;
+    SubjS sub snt = {s = \\_ => sub.s ++ snt.s } ;
+    AdnCAdv cadv = {s = "nalwN" ++ cadv.s} ;
+
+}
diff --git a/lib/src/punjabi/src/ExtraPnb.gf b/lib/src/punjabi/src/ExtraPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/ExtraPnb.gf
@@ -0,0 +1,19 @@
+concrete ExtraPnb of ExtraPnbAbs = CatPnb ** 
+  open ResPnb, Coordination, Prelude, MorphoPnb, ParadigmsPnb in {
+
+  flags coding = utf8;
+
+  lin
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ;
+
+    each_Det = mkDet  "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ;
+    have_V = mkV "rakh-na";
+    IAdvAdv adv = {s = "ktny" ++ adv.s} ;
+    ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "qymt" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "nothing"   ** {c2 = "" };
+
+-- for VP conjunction
+} 
diff --git a/lib/src/punjabi/src/IdiomPnb.gf b/lib/src/punjabi/src/IdiomPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/IdiomPnb.gf
@@ -0,0 +1,39 @@
+concrete IdiomPnb of Idiom = CatPnb ** open Prelude,Predef, ResPnb in {
+
+  flags optimize=all_subs ;
+  flags coding = utf8;
+
+  lin
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
+    GenericCl vp = mkSClause "kwy" (agrP3 Masc Sg) vp ;
+
+    CleftNP np rs = 
+	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
+	  in 
+	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
+	  
+    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
+        
+    ExistNP np = 
+      mkSClause "awth'E" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
+        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
+
+    ExistIP ip = 
+     let cl = mkSClause ("awth'E" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+    ProgrVP vp =  (predProg vp) ;
+
+
+    ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ;
+	ImpP3 np vp = {s = np.s!NPC Dir ++ "nwN" ++ (vp.s ! VPImp ).inf ++ "dyw"};
+
+
+}
+
diff --git a/lib/src/punjabi/src/LexiconPnb.gf b/lib/src/punjabi/src/LexiconPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/LexiconPnb.gf
@@ -0,0 +1,371 @@
+--# -path=.:prelude:alltenses
+
+concrete LexiconPnb of Lexicon = CatPnb ** 
+--open ResPnb, Prelude in {
+  open ParadigmsPnb,MorphoPnb, Prelude in {
+
+  flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN07 "jhaj" ;
+  
+  answer_V2S = mkV2  (compoundV "jwab" (mkV "dyna")) ;
+  apartment_N = mkN01 "kmrh" ;
+  apple_N = mkN02 "syb" ;
+--  art_N = mkN "fn" ;
+  ask_V2Q = mkV2 (mkV "pch'na") ;
+  baby_N = mkN01 "bch" ;
+  bad_A = mkAdj1 "bra" ;
+--  bank_N = mkN "bank" ;
+  beautiful_A = mkAdj1 "swny" ;
+  become_VA = mkV "bnna";
+  beer_N = mkN04 "Xrab" ;
+  beg_V2V =  mkV2V (mkV "mangna") "sE" "kh" False;
+  big_A = mkAdj1 "wDa" ;
+  bike_N = mkN03 "saycl" ;
+  bird_N = mkN01 "prndh" ;
+  black_A =  mkAdj1 "kala" ;
+  blue_A = mkAdj1 "nyla" ;
+  boat_N = mkN03 "kXty" ;
+  book_N = mkN04 "ktab" ;
+  boot_N = mkN03 "jwta" ;
+--  boss_N = mkN "Sahb" ;
+  boy_N = mkN01 "mnDa" ;
+  bread_N = mkN03 "rwty" ;
+  break_V2 = mkV2 (mkV "twRna") ;
+  broad_A = mkAdj1 "kh'la" ;
+  brother_N2 = mkN2 (mkN01 "pra") (mkPrep "ka") "kE" ; --not correct
+  brown_A = mkAdj1 "nswary" ;
+--  butter_N = mkN "mkh'n" ;
+  buy_V2 = mkV2 (mkV "Krydna");
+  camera_N = mkN01 "kymrh" ;
+  cap_N = mkN03 "twpy" ;
+  car_N = mkN03 "gDy" ;
+  carpet_N = mkN03 "tpay^y" ;
+  cat_N = mkN03 "bly" ;
+  ceiling_N = mkN01 "kwTh'a" ;
+  chair_N = mkN03 "krsy" ;
+--  cheese_N = mkN "pnyr" feminine ;
+  child_N = mkN01 "bch"  ;
+--  church_N = mkCmpdNoun "grja" (mkN "gh'r") ;
+  city_N = mkN02 "Xhr" ;
+  clean_A = mkAdj1 "Saf" ;
+  clever_A = mkAdj1 "hwXyar" ;  
+  close_V2 =  mkV2 (compoundV "bnd" do_V2); 
+  coat_N = mkN04 "kwT" ;
+  cold_A = mkAdj1 "Th'nDa" ;
+  come_V = mkV "Ana" ;
+--  computer_N = mkN "kmpywTr" ;
+--  country_N = mkN "mlk" ;
+--  cousin_N = mkCmpdNoun "cca" (mkN "zad") ; -- a compund noun made of two nouns
+  cow_N = mkN05 "gaE" ;
+  die_V = mkV "mrna" ;
+  dirty_A = mkAdj1 "gnda" ;
+--  distance_N3 = mkN3 (mkN "pynDa") (mkPrep "da") "dE" "twN"  ;
+--  doctor_N = mkN "mealj" ;
+  dog_N = mkN01 "kta" ;
+  door_N = mkN01 "drwzh" ;
+  drink_V2 = mkV2 (mkV "pyna");
+  easy_A2V = mkA "swkh'a" "" ;
+  eat_V2 = mkV2 (mkV "kh'ana") "" ;
+  empty_A = mkAdj1 "Kaly" ;
+--  enemy_N = mkN "dXmn" ;
+--  factory_N = mkN "karKanh" ;
+  father_N2 = mkN2 (mkN01 "aba") (mkPrep "da") "dE"  ;
+  fear_VS = mkV "Drna";
+  find_V2 = mkV2 (mkV "pana") ;
+  fish_N = mkN03 "mch'ly" ;
+  floor_N = mkN02 "frX" ;
+  forget_V2 = mkV2 (mkV "bh'wlna") "nwN" ;
+--  fridge_N = mkN "fryg" ;
+  friend_N = mkN04 "dwst" ;
+  fruit_N = mkN02 "ph'l" ;
+--  fun_AV = mkAdj1V (regA "f?n") ;
+  garden_N = mkN04 "baG" ;
+  girl_N = mkN03 "kRy" ;
+--  glove_N = mkN "dstanh" ;
+  gold_N = mkN01 "swna" ;
+  good_A = mkAdj1 "ach'a" ;
+  go_V = mkV "jana" ;
+  green_A = mkAdj1 "sbz" ;
+--  harbour_N = mkCmpdNoun "bndr" (mkN "gah") ;
+  hate_V2 = mkV2 (compoundV "nfrt" do_V2) ;
+  hat_N = mkN03 "twpy" ;
+--  have_V2 = dirV2 (mk5V "ha?e" "has" "had" "had" "ha??ng") ;
+  hear_V2 = mkV2 (mkV "snna") ;
+  hill_N = mkN03 "paRy" ;
+  hope_VS = (compoundV "As" do_V2);
+  horse_N = mkN01 "kwRa" ;
+  hot_A = mkAdj1 "grm" ;
+  house_N = mkN02 "gh'r" ;
+  important_A = mkAdj1 "ahm" ;
+--  industry_N = mkN "Snet" feminine ;
+--  iron_N = mkN "lwha" ;
+--  king_N = mkN "badXah" ;
+  know_V2 = mkV2 (mkV "janna") ;
+  know_VS = (mkV "janna") ;
+  know_VQ = (mkV "janna") ;
+  lake_N = mkN04 "jh'yl" ;
+--  lamp_N = mkN "lymp" ;
+  learn_V2 = mkV2 (mkV "skh'na") ;
+--  leather_N = mkN "cmRa" ;
+  leave_V2 = mkV2 (mkV "jana") ;
+  like_V2 = mkV2 (compoundV "psnd" do_V2);
+  listen_V2 = mkV2 (mkV "snna") ;
+  live_V = mkV "rhna" ; ---- touch
+  long_A = mkAdj1 "lmba" ;
+  lose_V2 = mkV2 (compoundV "kh'w" (mkV "dyna")) ;
+  love_N = mkN02 "mHbt" ;
+  love_V2 = mkV2 (compoundV "pyar" do_V2) "nwN";
+  man_N = mkN03 "Admy" ; -- not correct according to rules should be discussed
+--  married_A2 = mkAdj1 "Xady?krna" "sE" ;
+  meat_N = mkN02 "gwXt" ;
+--  milk_N = mkN "dwdh'" ;
+  moon_N = mkN02 "cn" ;
+  mother_N2 = mkN2 (mkN05 "maN") (mkPrep "dy") "DE";   -- not covered need to be discussed
+  mountain_N = mkN03 "paRy" ;
+--  music_N = mkN "mwsyqy" ;
+  narrow_A = mkAdj1 "baryk" ;
+  new_A = mkAdj1 "nwa" ;
+  newspaper_N = mkN04 "aKbar" ;
+  oil_N = mkN02 "tyl" ;
+  old_A = mkAdj1 "bwDa" ;
+  open_V2 = mkV2 (mkV "kh'wlna") ;
+  paint_V2A = mkV2 (compoundV "rng" do_V2) ;
+--  paper_N = mkN "kaGz" ;
+--  paris_PN = mkPN "pyrs" ;
+--  peace_N = mkN "amn" ;
+  pen_N = mkN04 "pnsl" ;
+  planet_N = mkN01 "syarh" ;
+--  plastic_N = mkN "plasTk" ;
+  play_V2 = mkV2 (mkV "kh'yDna") ;
+--  policeman_N = mkCmpdNoun "pwlys" (mkN "wala") ; 
+--  priest_N = (mkN "pyGmbr") ;
+--  probable_AS = mkAdj1S (regA "pr?bable") ;
+  queen_N = mkN03 "Xhzady" ;
+--  radio_N = mkN "ryDyw" ;
+  rain_V0 = compoundV "barX" (mkV "hwna" ) ;
+  read_V2 = mkV2 (mkV "pRh'na");
+  red_A = mkAdj1 "lal" ;
+--  religion_N = mkN "mzhb" ;
+--  restaurant_N = mkN "hwTl" ;
+--  river_N = mkN "drya" masculine ;
+  rock_N = mkN04 "cTan" ;
+--  roof_N = mkN "ch't"   masculine ;
+  rubber_N = mkN04 "rbR" ;
+  run_V = mkV "dwRna" ;
+  say_VS = mkV "khna" ;
+--  school_N = mkN "skwl" ;
+--  science_N = mkN "sans" ;
+  sea_N = mkN02 "smndr" ;
+  seek_V2 = mkV2 (mkV "lbh'na" ) "nwN" ;
+  see_V2 = mkV2 (mkV "wykh'na") "nwN" ;
+  sell_V3 = mkV3 (mkV "wycna") "kw" "";
+  send_V3 = mkV3 (mkV "pyjna") "kw" "";
+--  sheep_N = mkN "bh'yR" feminine ;
+--  ship_N = mkN "jhaz" ;
+  shirt_N = mkN04 "qmyZ-";
+  shoe_N = mkN01 "jwta" ;
+--  shop_N = mkN "dwkan" feminine ;
+  short_A = mkAdj1 "ch'wTa" ;
+  silver_N = mkN03 "candy" ;
+  sister_N = mkN04 "bhn" ;
+  sleep_V = mkV "swna" ;
+  small_A = mkAdj1 "ch'wTa" ;
+--  snake_N = mkN "sanp" ;
+  sock_N = mkN04 "jrab" ;
+--  speak_V2 = mkV2 (mkV "bwlna") ;
+  star_N = mkN01 "stara" ;
+--  steel_N = mkN "styl" ;
+--  stone_N = mkN "pth'r" ;
+  stove_N = mkN01 "cwlha" ;
+--  student_N = mkCmpdNoun "t-alb" (mkN "elm") ;
+--  stupid_A = mkAdj1 "aHmq" ;
+  sun_N = mkN02 "swrj" ;
+  switch8off_V2 = mkV2 (mkV "clana") ;
+  switch8on_V2 = mkV2 (compoundV "bnd" do_V2) ;
+  table_N = mkN04 "myz" ;
+  talk_V3 = mkV3 (mkV "bwlna") "sE" "";
+  teacher_N = mkN02 "astad" ;
+  teach_V2 = mkV2 (mkV "pRh'na") ;
+--  television_N = mkN "telywyzn" ;
+  thick_A = mkAdj1 "mwTa" ;
+  thin_A = mkAdj1 "ptla" ;
+  train_N = mkN03 "gDy" ;
+  travel_V = (compoundV "pynDa" do_V2) ;
+--  tree_N = mkN "drKt" masculine ;
+-- ---- trousers_N = mkN "tr??sers" ;
+  ugly_A = mkAdj1 "kwja" ;
+  understand_V2 = mkV2 (mkV "smjh'na") ;
+--  university_N = mkN "ywnywrsTy" ;
+--  village_N = mkN "gawN" ;
+  wait_V2 = mkV2 (compoundV "rah" (mkV "wykh'na")) ;
+  walk_V = mkV "clna" ;
+  warm_A = mkAdj1 "tta" ;
+  war_N = mkN02 "jng" ;
+  watch_V2 = mkV2 (mkV "wykh'na") ;
+  water_N = mkN03 "pany" ; -- not covered masculine ending with y
+  white_A = mkAdj1 "cTa" ;
+--  window_N = mkN "kh'Rky" ;
+  wine_N = mkN04 "Xrab";
+  win_V2 = mkV2 (mkV "jytna") ;
+  woman_N = mkN04 "ewrt" ;
+  wonder_VQ = compoundV "Heran" (mkV "hwna") ;
+  wood_N = mkN04 "lkRy" ;
+  write_V2 = mkV2 (mkV "lkh'na") ;
+  yellow_A = mkAdj1 "kh'Ta" ;
+  young_A = mkAdj1 "jwan" ;
+  do_V2 = mkV2 (mkV "krna")  ;
+--  now_Adv = mkAdj1dv "ab" ;
+--  already_Adv = mkAdj1dv "phlE?hy" ;
+  song_N = mkN01 "gana" ;
+  add_V3 = mkV3 (compoundV "wadh'a" do_V2) "" "" ;
+  number_N = mkN01 "hndsh" ;
+  put_V2 = mkV2 (mkV "Dalna") ;
+  stop_V = mkV "rwkna"  ;
+  jump_V = compoundV "ch'al" (mkV "marna") ;
+
+  left_Ord = {s = "sja" ; n = singular};
+  right_Ord = {s= "kh'ba" ; n = singular};
+--  far_Adv = mkAdj1dv "dwr" ;
+  correct_A = mkAdj1 "Syh" ;
+  dry_A = mkAdj1 "swka" ;
+  dull_A = mkAdj1 "nkh'Tw" ;
+  full_A = mkAdj1 "pwra" ;
+  heavy_A = mkAdj1 "pary" ;
+  near_A = mkAdj1 "nyRE" ;
+  rotten_A = mkAdj1 "Krab" ;
+  round_A = mkAdj1 "gwl" ;
+  sharp_A = mkAdj1 "tyz" ;
+  smooth_A = mkAdj1 "pdra" ;
+  straight_A = mkAdj1 "sda" ;
+  wet_A = mkAdj1 "gla" ; ----
+  wide_A = mkAdj1 "cwRa" ;
+  animal_N = mkN02 "janwr" ;
+--  ashes_N = mkN "rakh'" feminine; -- FIXME: plural only?
+--  back_N = mkN "qmr" feminine ;
+--  bark_N = mkN "bark" ;
+--  belly_N = mkN "dh'ny" ;
+  blood_N = mkN02 "lhw" ;
+  bone_N = mkN03 "hDy" ;
+--  breast_N = mkN "ch'aty" ;
+--  cloud_N = mkN "badl" ;
+  day_N = mkN04 "dn" ;
+--  dust_N = mkN "dh'wl" ;
+--  ear_N = mkN "kan" ;
+--  earth_N = mkN "zmyn" feminine ;
+  egg_N = mkN01 "anDh" ;
+--  eye_N = mkN "Ankh'" feminine ;
+  fat_N = mkN01 "mwta" ;
+--  feather_N = mkN "pr" ;
+--  fingernail_N = mkN "naKn" ;
+--  fire_N = mkN "Ag" feminine ;
+  flower_N = mkN02 "ph'wl" ;
+--  fog_N = mkN "dh'nd" feminine ;
+--  foot_N = mkN "pawN" ; -- not properly covered need to be discussed
+  forest_N = mkN02 "njgl" ;
+--  grass_N = mkN "gh's" feminine ;
+--  guts_N = mkN "g?t" ; -- FIXME: no singular
+--  hair_N = mkN "bal" ;
+  hand_N = mkN02 "hth'" ;
+  head_N = mkN02 "sr" ;
+  heart_N = mkN02 "dl" ;
+--  horn_N = mkN "gh'nty" ;
+  husband_N = mkN01 "bnda" ;
+  ice_N = mkN04 "brf" ;
+--  knee_N = mkN "khny" ;
+  leaf_N = mkN01 "pth" ;
+--  leg_N = mkN "tang" ;
+--  liver_N = mkN "jgr" ;
+--  louse_N = mkN "gh'r" ;
+--  mouth_N = mkN "mnh" ;
+--  name_N = mkN "nam" ;
+--  neck_N = mkN "grdn" feminine ;
+  night_N = mkN02 "rat" ;
+--  nose_N = mkN "nak" ;
+--  person_N = mkN "XKS" ;
+--  rain_N = mkN "barX" feminine ;
+--  road_N = mkN "sRk" ;
+  root_N = mkN02 "gR" ;
+  rope_N = mkN03 "rsy" ;
+--  salt_N = mkN "nmk" feminine ;
+--  sand_N = mkN "ryt" feminine ;
+--  seed_N = mkN "byj"  ;
+  skin_N = mkN04 "jld" ;
+  sky_N = mkN02 "Asman" ;
+--  smoke_N = mkN "dh'waN"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN04 "brf" ;
+  stick_N = mkN03 "swTy" ;
+  tail_N = mkN02 "pwXl" ;
+  tongue_N = mkN04 "jyb" ;
+--  tooth_N = mkN "dant" masculine;
+  wife_N = mkN03 "jnany" ;
+--  wind_N = mkN "Andh'y" ;
+--  wing_N = mkN "pr" ;
+  worm_N = mkN01 "tta" ;
+  year_N = mkN02 "sal" ;
+  blow_V = mkV "clna" ;
+  breathe_V = compoundV "sah" (mkV "lyna" ) ;
+  burn_V = mkV "jlna" ;
+  dig_V = mkV "kh'wdna" ;
+  fall_V = mkV "grna" ;
+  float_V = mkV "tyrna" ;
+  flow_V = mkV "bhna" ;
+  fly_V = mkV "aDna" ;
+  freeze_V = mkV "jmna" ;
+  give_V3 = mkV3 (mkV "dyna") "nwN" "";
+  laugh_V = mkV "hsna"  ;
+--  lie_N = mkN "jh'wt" masculine ;
+  lie_V = compoundV "ch'wTh'" (mkV "bwlna" );
+  play_V = mkV "kh'ylna" ;
+  sew_V = mkV "syna" ;
+  sing_V = mkV "gana" ;
+  sit_V = mkV "byTh'na" ;
+  smell_V = mkV "swngna" ;
+  spit_V = mkV "th'wkna" ;
+  stand_V = mkV "kh'lwna";
+  swell_V = mkV "swjna" ;
+  swim_V = mkV "trna" ;
+  think_V = mkV "swcna" ;
+  turn_V = mkV "mRna" ;
+  vomit_V = compoundV "alty" (mkV "krna") ;
+  bite_V2 = mkV2 (mkV "kTna") ;
+  count_V2 = mkV2 (mkV "gnna") ;
+  cut_V2 = mkV2 (mkV "kTna") ;
+  fear_V2 = mkV2 (mkV "Drna") ;
+  fight_V2 = mkV2 (mkV "lRna") ;
+  hit_V2 = mkV2 (compoundV "Th'wDa" (mkV "marna" ));
+  hold_V2 = mkV2 (mkV "ph'Rna") ;
+--  hunt_V2 = mkV2 (compoundV "Xkar" do_V2);
+  kill_V2 =  mkV2 (compoundV "mar" (mkV "dyna" )) ;
+  pull_V2 = mkV2 (mkV "kh'cna");
+  push_V2 = mkV2 (compoundV "tka" (mkV "dyna")) "kw" ;
+  rub_V2 = mkV2 (mkV "rgRna") ;
+--  scratch_V2 = mkV2 (mkV "kh'rcna") "kw" ;
+--  split_V2 = mkV2 (mkV "banta") "kw" ;
+--  squeeze_V2 = dirV2 (regV "sq?eeze") ;
+--  stab_V2 = dirV2 (regDuplV "stab") ;
+  suck_V2 = mkV2 (mkV "cwnDna") ;
+  throw_V2 = mkV2 (mkV "swTna") ;
+  tie_V2 = mkV2 (mkV "bnna") ;
+  wash_V2 = mkV2 (mkV "twna") ;
+  wipe_V2 = mkV2 (mkV "pwnjh'na");
+
+----  other_A = regA "?ther" ;
+
+--  grammar_N = mkN "grdan" ;
+  language_N = mkN04 "bwly" ;
+--  rule_N = mkN "aSwl" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "jan" ;
+--    question_N = mkN "swal" ;
+--    ready_A = regA "ready" ;
+--    reason_N = mkN "wjh" feminine ;
+--    today_Adv = mkAdj1dv "aj" ;
+--    uncertain_A = mkAdj1 ["Gyr?yqyny"] ;
+    
+ 
+}
diff --git a/lib/src/punjabi/src/MorphoPnb.gf b/lib/src/punjabi/src/MorphoPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/MorphoPnb.gf
@@ -0,0 +1,451 @@
+--# -path=.:../../prelude
+--
+----1 A Simple Punjabi Resource Morphology
+----
+----  Shafqat Virk, Aarne Ranta,2010
+----
+---- This resource morphology contains definitions needed in the resource
+---- syntax. To build a lexicon, it is better to use $ParadigmsPnb$, which
+---- gives a higher-level access to this module.
+--
+resource MorphoPnb = ResPnb ** open Prelude,Predef in {
+
+  flags optimize=all ;
+   coding = utf8;
+
+----2 Nouns
+oper
+   
+    mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> Noun = 
+      \sd,so,sv,sa, pd,po,pv,pa, g -> {
+      s = table {
+      Sg => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv ;
+        Abl => sa 
+	  } ;
+      Pl => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv ;
+        Abl => pa 
+	  }
+      } ;
+
+      g = g
+      } ;
+
+    
+    
+-- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
+-- Arabic nouns ends with h. also taken as Masc
+  mkN01 : Str -> Noun ;
+  mkN01 koRa = let end = last (koRa) ;
+                   koR = if_then_else Str (eq end "e") koRa (tk 1 koRa)
+                in mkN (koRa)        (koR+"E")       (koR+"ya")      (koR+"ywN")
+                       (koR+"E")    (koR+"yaN")      (koR+"yw")      ""
+                    Masc ;
+
+
+-- 2. msculine: gher, shehar, din, des, huth
+  mkN02 : Str -> Noun ;
+  mkN02 gher = mkN (gher)    (gher)       (variants{gher; gher+"a"})     (gher+"wN")
+                   (gher)    (gher+"aN")  (gher+"w")                     ""
+                Masc ;
+
+-- 3. sekhi, kuRi, boli
+  mkN03 : Str -> Noun ;
+  mkN03 kuRi = mkN (kuRi)            (kuRi)       (kuRi+"E")     ""
+                   (kuRi+"aN")       (kuRi+"aN")  (kuRi+"wN")    ""
+                  Fem ;
+
+-- 4. gal, saltanat, tareekh, shaksiat, kitab
+  mkN04 : Str -> Noun ;
+  mkN04 gal = mkN (gal)            (gal)       (variants{gal; gal+"E"})   (gal+"wN")
+                  (gal+"aN")       (gal+"aN")  (gal+"w")                  ""
+                Fem ;
+
+
+-- 5. maaN
+  mkN05 : Str -> Noun ;
+  mkN05 maaN = let maa = tk 1 maaN
+                in mkN (maaN)        (maaN)       (variants{(maa+"y^E");(maa+"wE")})      (maa+"waN")
+                       (maa+"waN")   (maa+"waN")  (maa+"ww")      ""
+                    Fem ;
+
+-- 6. kunwaN
+  mkN06 : Str -> Noun ;
+  mkN06 kunwaN = let kunw = tk 2 kunwaN
+                   in mkN (kunwaN)    (kunw+"yN")  (kunw+"yN") (kunw+"wN")
+                          (kunw+"yN") (kunw+"yaN") (kunw+"bw") ""
+                      Masc ;
+
+-- 7. merd
+  mkN07 : Str -> Noun ;
+  mkN07 merd = mkN (merd) (merd)      (merd)       ""
+                   (merd) (merd+"aN") (merd+"w")   ""
+                  Masc ;
+-- 8. aaTa, 
+  mkN08 : Str -> Noun ;
+  mkN08 aaTa = let aaT = tk 1 aaTa 
+            in mkN (aaTa) (aaT+"E")     (variants{aaT+"E"; aaT+"ya"})     (aaT+"ywN")
+                   (aaTa) (aaT+"E")     (variants{aaT+"E"; aaT+"ya"})     ""
+                  Masc ;
+                  
+--9. lok
+  mkN09 : Str -> Noun ;
+  mkN09 lok = mkN ""    ""          ""         ""
+                  (lok) (lok+"a")   (lok+"w")  ""
+                Masc ;
+
+--10. Masc. no inflection
+  mkN10 : Str -> Noun ;
+  mkN10 x = mkN x x x x
+                x x x ""
+             Masc ;
+
+--11. Fem. no inflection
+  mkN11 : Str -> Noun ;
+  mkN11 x = mkN x x x x
+                x x x ""
+             Fem ;
+
+----2 Determiners
+
+  IDeterminer = {s:Gender => Str ; n : Number};
+  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
+   s = table {
+      Sg => table {
+        Masc => s1 ;
+        Fem => s2 
+	  } ;
+      Pl => table {
+        Masc => s3 ;
+        Fem => s4 
+	  }
+      } ;
+
+      n = n
+	};	
+	
+  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
+   s = table {
+        Masc => s1;
+		Fem  => s2
+	 };
+	 n = n
+    };		
+    
+-- Proposition  
+ 
+  makePrep : Str -> Preposition = \str -> {s = str } **  { lock_Prep = <>};
+   
+----2 Pronouns
+   PronForm = {s:Pronoun => Str};
+{-   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
+    \y1,y2,y3,y4,y5,y6 -> {
+	 s = table {
+         P Sg _ Dir _ => y1;
+         P Sg _ Obl _ => y2;
+         P Sg _ Voc _ => y3;
+         P Pl _ Dir _ => y4;
+         P Pl _ Obl _ => y5;
+         P Pl _ Voc _ => y6
+         };
+      };
+-}
+--   DemonPronForm = {s:DemPronForm => Str};
+  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16:Str) -> DemPronForm =
+  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16 -> {
+   s = table {
+	        Sg => table {
+				Masc => table {
+				  Dir => y1 ;
+				  Obl => y2 ;
+				  Voc => y3 ;
+				  Abl => y4
+							 };
+				Fem => table {
+				  Dir => y5 ;
+				  Obl => y6 ;
+				  Voc => y7 ;
+				  Abl => y8
+							 }
+						};
+			Pl => table {
+				Masc => table {
+				  Dir => y9 ;
+				  Obl => y10 ;
+				  Voc => y11 ;
+				  Abl => y12
+							 };
+				Fem => table {
+				  Dir  => y13 ;
+				  Obl => y14 ;
+				  Voc => y15 ;
+				  Abl => y16
+ 							 }
+					} 
+				}
+               };    
+   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
+   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "" "" "" "" "";	
+--   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
+{- 
+ 
+   PersPron = {s: PersPronForm => Str};
+   
+   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40:Str) -> PersPron = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36,y37,y38,y39,y40 -> {
+     s = 
+	  table {
+	      PPF Sg Pers1 Dir => y1;
+	      PPF Sg Pers1 Obl => y2;
+	      PPF Sg Pers1 Voc => y3;
+	      PPF Sg Pers1 Abl => y4;
+	      PPF Sg Pers2_Casual Dir => y5;
+	      PPF Sg Pers2_Casual Obl => y6;
+	      PPF Sg Pers2_Casual Voc => y7;
+	      PPF Sg Pers2_Casual Abl => y8;
+	      PPF Sg Pers2_Respect Dir => y9;
+	      PPF Sg Pers2_Respect Obl => y10;
+	      PPF Sg Pers2_Respect Voc => y11;
+	      PPF Sg Pers2_Respect Abl => y12;
+	      PPF Sg Pers3_Near Dir => y13;
+	      PPF Sg Pers3_Near Obl => y14;
+	      PPF Sg Pers3_Near Voc => y15;
+	      PPF Sg Pers3_Near Abl => y16;
+	      PPF Sg Pers3_Distant Dir => y17;
+	      PPF Sg Pers3_Distant Obl => y18;
+	      PPF Sg Pers3_Distant Voc => y19;
+	      PPF Sg Pers3_Distant Abl => y20;
+	      PPF Pl Pers1 Dir => y21;
+	      PPF Pl Pers1 Obl => y22;
+	      PPF Pl Pers1 Voc => y23;
+	      PPF Pl Pers1 Abl => y24;
+	      PPF Pl Pers2_Casual Dir => y25;
+	      PPF Pl Pers2_Casual Obl => y26;
+	      PPF Pl Pers2_Casual Voc => y27;
+	      PPF Pl Pers2_Casual Abl => y28;
+	      PPF Pl Pers2_Respect Dir => y29;
+	      PPF Pl Pers2_Respect Obl => y30;
+	      PPF Pl Pers2_Respect Voc => y31;
+	      PPF Pl Pers2_Respect Abl => y32;
+	      PPF Pl Pers3_Near Dir => y33;
+	      PPF Pl Pers3_Near Obl => y34;
+	      PPF Pl Pers3_Near Voc => y35;
+	      PPF Pl Pers3_Near Abl => y36;
+	      PPF Pl Pers3_Distant Dir => y37;
+	      PPF Pl Pers3_Distant Obl => y38;
+	      PPF Pl Pers3_Distant Voc => y39;
+	      PPF Pl Pers3_Distant Abl => y40
+		 }; 
+      };
+	  
+   makePersPron : PersPron;
+   makePersPron     = mkPersPron	"myN"		""		""		"mytwN"
+					"twN"		""		""		"tytwN"
+					"tsy"		""		""		"twatwN"
+					"aw"		""		""		"aw"
+					"aw"		""		""		"aw"
+					"asy"		"" 		""		"satwN"
+					"tsy"		""		""		"twatwN"
+					"tsy"		""		""		"twatwN"
+					"aw"		""		""		"aw"
+					"aw"		""		""		"aw";
+-}
+
+  mkPron : (x1,x2,x3,x4:Str) -> {s:Case => Str} = 
+     \y1,y2,y3,y4 -> { s =
+                      table {
+                        Dir => y1;
+                        Obl => y2;
+                        Voc => y3;
+			Abl => y4
+                        }
+                      };  
+                                   
+	------- PossPronForm yet to be implemented
+	
+ 
+-- IntPronForm = {s:InterrPronForm => Str};
+  IntPronForm = {s: Case => Str};
+  mkIntPronForm : (x1,x2,x3,x4:Str) -> IntPronForm =
+  \y1,y2,y3,y4 -> {
+   s = 
+    table {
+	            Dir => y1;
+	            Obl => y2;
+	            Voc => y3;
+		    Abl => y4
+		 }
+	};
+	
+
+----2 Adjectives
+-- defined in ResPnb
+
+------------------------------------------------------------------
+----Verbs
+------------------------------------------------------------------
+ 
+--1. Basic stem form, direct & indirect causatives exists
+-- v1 nechna nechaana nechwana
+
+  mkVerb : (_: Str) -> Verb = \inf ->
+   let root  = (tk 2 inf) ; 
+--       root1 = (tk 2 c1)  ;  
+--       root2 = (tk 2 c2) ;  
+    in { 
+     s = table {
+
+     Root     => root ;
+
+     Inf      => inf ;
+     Inf_Fem  => ((tk 1 inf) + "y") ;
+     Inf_Obl  => (tk 1 inf) ;
+     Ablative => ((tk 1 inf) + "wN") ;
+
+{-     Caus1_Inf => c1 ;
+     Caus1_Fem => ((tk 1 c1) + "y") ;
+     Caus1_Obl => (tk 1 c1) ;
+     Caus1_Ablative => ((tk 1 c1) + "wN") ;
+
+     Caus2_Inf => c2 ;
+     Caus2_Fem => ((tk 1 c2) + "y") ;
+     Caus2_Obl => (tk 1 c2) ;
+     Caus2_Ablative => ((tk 1 c2) + "wN") ;
+-}
+     VF tense person number gender  => (mkCmnVF root tense person number gender).s 
+--     Caus1 tense person number gender => (mkCmnVF root1 tense person number gender).s ;
+--     Caus2 tense person number gender => (mkCmnVF root2 tense person number gender).s 
+    }
+  } ;
+
+
+mkCmnVF : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = case (last root) of {
+     ("a"|"A"|"w"|"y") => (mkCmnVF1 root t p n g).s ;
+     _ => (mkCmnVF2 root t p n g).s
+   }
+  };
+
+ mkCmnVF1 : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = let nadaa = root + "nda" ; --root + variants{"nda";"wnda"};
+           nadii = root + "ndy" ; --root + variants{"ndy";"wndy"} ;
+           nade  = root + "ndE" ; --root + variants{"ndE";"wndE"} ;
+           nadiiaaN = root + "ndyaN"  --root + variants{"ndyaN";"wndyaN"}
+   in 
+  case <t,p,n,g> of {
+    <Subj,Pers1,         Sg,_> => root + "waN" ;
+    <Subj,Pers1,         Pl,_> => root + "y^E" ;
+    <Subj,Pers2_Casual,  Sg,_> => root ;
+    <Subj,Pers2_Casual,  Pl,_> => root + "w^" ;
+    <Subj,Pers2_Respect, _, _> => root + "w^" ;
+
+    <Subj,_,             Sg,_> => root + "y^E" ;
+    <Subj,_,             Pl,_> => root+"n" ;
+
+    <Perf, Pers1,        Sg,Masc> => root + "ya" ;
+    <Perf, Pers1,        Sg,Fem>  => root + "y^y" ;
+    <Perf, Pers1,        Pl,Masc> => root + "y^E" ;
+    <Perf, Pers1,        Pl,Fem>  => root + "y^yaN" ;
+    <Perf, Pers2_Casual, Sg,Masc> => root + "ya" ;
+    <Perf, Pers2_Casual, Sg,Fem>  => root + "y^y" ;
+    <Perf, Pers2_Casual, Pl,Masc> => root + "y^E" ;
+    <Perf, Pers2_Casual, Pl,Fem>  => root + "y^yaN" ;
+    <Perf, Pers2_Respect,_,_>     => root + "y^E" ;     
+
+    <Perf, _,            Sg,Masc> => root + "ya" ;
+    <Perf, _,            Sg,Fem>  => root + "y^y" ;
+    <Perf, _,            Pl,Masc> => root + "y^E" ;
+    <Perf, _,            Pl,Fem>  => root + "y^yaN" ;
+
+    <Imperf, Pers1,         Sg, Masc> => nadaa ;
+    <Imperf, Pers1,         Sg, Fem>  => nadii ;
+    <Imperf, Pers1,         Pl, Masc> => nade ;
+    <Imperf, Pers1,         Pl, Fem>  => nadiiaaN ;
+
+    <Imperf, Pers2_Casual,  Sg, Masc> => nadaa ;
+    <Imperf, Pers2_Casual,  Sg, Fem>  => nadii ;
+    <Imperf, Pers2_Casual,  Pl, Masc> => nade ;
+    <Imperf, Pers2_Casual,  Pl, Fem>  => nadiiaaN ;
+    <Imperf, Pers2_Respect, Sg, _>    => nade ;
+    <Imperf, Pers2_Respect, Pl, Masc> => nade ;
+    <Imperf, Pers2_Respect, Pl, Fem>  => variants {nade;nadiiaaN} ;
+    <Imperf, _,             Sg, Masc> => nadaa ;
+    <Imperf, _,             Sg, Fem>  => nadii ;
+    <Imperf, _,             Pl, Masc> => nade ;
+    <Imperf, _,             Pl, Fem>  => nadiiaaN
+  }
+ } ;
+  
+
+ mkCmnVF2 : Str -> VTense -> PPerson -> Number -> Gender -> {s:Str}= \root,t,p,n,g ->
+  {s = let daa = root + "da" ;
+           dii = root + "dy" ;
+           de  = root + "dE" ;
+           diiaaN = root + "dyaN"
+   in 
+  case <t,p,n,g> of {
+    <Subj,Pers1,         Sg,_> => root + "aN" ;
+    <Subj,Pers1,         Pl,_> => root+"y^E" ;
+    <Subj,Pers2_Casual,  Sg,_> => root ;
+    <Subj,Pers2_Casual,  Pl,_> => root + "w"  ;
+    <Subj,Pers2_Respect, _, _> => root + "w"  ;
+
+    <Subj,_,             Sg,_> => root + "E"  ;
+    <Subj,_,             Pl,_> => root+"n" ;
+
+    <Perf, Pers1,        Sg,Masc> => root+"ya"; 
+    <Perf, Pers1,        Sg,Fem>  => root + "y" ;
+    <Perf, Pers1,        Pl,Masc> => root + "E"  ;
+    <Perf, Pers1,        Pl,Fem>  => root + "yaN" ;
+    <Perf, Pers2_Casual, Sg,Masc> => root+"ya"; 
+    <Perf, Pers2_Casual, Sg,Fem>  => root + "y" ;
+    <Perf, Pers2_Casual, Pl,Masc> => root + "E"  ;
+    <Perf, Pers2_Casual, Pl,Fem>  => root + "yaN" ;
+    <Perf, Pers2_Respect,_,_>     => root + "E"  ;
+
+    <Perf, _,            Sg,Masc> => root+"ya" ;
+    <Perf, _,            Sg,Fem>  => root + "y" ;
+    <Perf, _,            Pl,Masc> => root + "E"  ;
+    <Perf, _,            Pl,Fem>  => root + "yaN" ;
+
+    <Imperf, Pers1,         Sg, Masc> => daa ;
+    <Imperf, Pers1,         Sg, Fem>  => dii ;
+    <Imperf, Pers1,         Pl, Masc> => de ;
+    <Imperf, Pers1,         Pl, Fem>  => diiaaN ;
+
+    <Imperf, Pers2_Casual,  Sg, Masc> => daa ;
+    <Imperf, Pers2_Casual,  Sg, Fem>  => dii ;
+    <Imperf, Pers2_Casual,  Pl, Masc> => de ;
+    <Imperf, Pers2_Casual,  Pl, Fem>  => diiaaN ;
+    <Imperf, Pers2_Respect, Sg, _>    => de ;
+    <Imperf, Pers2_Respect, Pl, Masc> => de ;
+    <Imperf, Pers2_Respect, Pl, Fem>  => variants {de;diiaaN} ;
+    <Imperf, _,             Sg, Masc> => daa ;
+    <Imperf, _,             Sg, Fem>  => dii ;
+    <Imperf, _,             Pl, Masc> => de ;
+    <Imperf, _,             Pl, Fem>  => diiaaN
+  }
+ } ;
+
+
+--v4
+{- mkV4 : Str -> Verb4 = \inf ->
+   let root  = (tk 2 inf); 
+    in { s = table {
+     Root     => root ;
+
+     Inf4      => inf ;
+     Inf_Fem4  => ((tk 1 inf) + "y") ;
+     Inf_Obl4  => (tk 1 inf) ;
+     Ablative4 => ((tk 1 inf) + "wN") ;
+
+     MVF4 tense person number gender   => (mkCmnVF root tense person number gender).s 
+    }
+  } ;
+-}
+}
diff --git a/lib/src/punjabi/src/NumeralPnb.gf b/lib/src/punjabi/src/NumeralPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/NumeralPnb.gf
@@ -0,0 +1,126 @@
+concrete NumeralPnb of Numeral = CatPnb ** open ResPnb, Prelude in {
+-- By Harald Hammarstroem
+-- Modification for Punjabi by Shafqat Virk
+ flags coding=utf8 ;
+
+
+
+param DForm = unit | ten ;
+param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
+param Size = singl | less100 | more100 ; 
+
+oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
+
+
+lincat Dig = { s:Str ; n : Number};
+lincat Digit = LinDigit ;
+lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
+lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
+lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
+lincat Sub1000000 = { s : Str ; n : Number } ;
+
+lin num x0 = 
+    {s = table {
+          NCard =>   x0.s ; 
+          NOrd =>  x0.s ++ "waN" -- (mkOrd x0.s)  need to use mkOrd which will make irregular ordinals but it gives path error
+          };
+       n = x0.n
+    } ;
+oper mkOrd : Str -> Str =
+ \s -> case s of {
+                    "ek"                  => "pyla";
+                    "dw"                  => "dwja";
+                    "tn"                => "dwja";
+                    "car"                => "cwth'a";
+                    _                     =>  s ++ "waN"
+                  };
+--  {s = \\_ => x0.s ; n = x0.n} ; 
+
+
+oper mkNum : Str -> Str -> DSize -> LinDigit = 
+  \do -> \bis -> \sz ->  
+  {s = table {unit => do ; ten => bis } ; 
+   size = sz ; n = Pl} ;
+
+lin n2 = mkNum "dw" "vy" r2 ;
+lin n3 = mkNum "tn" "try" r3 ;
+lin n4 = mkNum "car" "caly" r4 ;
+lin n5 = mkNum "pnj" "pnjah" r5 ;
+lin n6 = mkNum "ch-" "sTh-" r6 ; 
+lin n7 = mkNum "st" "str" r7; 
+lin n8 = mkNum "aTh-" "asy" r8;
+lin n9 = mkNum "nw" "nbE" r9 ;
+
+oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
+  sg => a1 + "aN" ;
+  r2 => a2 + "y" ;
+  r3 => a3 + "y" ;
+  r4 => a4 + "aly" ;
+  r5 => a5 + "nja" ;
+  r6 => a6 + "Th'" ;
+  r7 => a7 + "tr" ;
+  r8 => a8 + "asy" ;
+  r9 => a9 + "anwE"
+} ;
+
+oper rows : DSize => DSize => Str = table {
+  sg => mkR "gyar" "ikk" "ikt" "ekta" "ikw" "ika" "ikh" "ik" "iky" ; 
+  r2 => mkR "bar" "ba" "bt" "bay" "by" "bw" "bh" "by" "b" ;
+  r3 => mkR "tyr" "ty" "tyt" "tnt" "trt" "trw" "tyh" "tyr" "tr" ;
+  r4 => mkR "cwd" "cwb" "cwt" "cwa" "cwt" "cwr" "cwh" "cwr" "cwr" ;
+  r5 => mkR "pndr" "pnj" "pynt" "pnta" "pcw" "pyn" "pnj" "pnj" "pc" ;
+  r6 => mkR "swl" "ch'b" "ch't" "ch-y" "ch'w" "ch'ya" "ch'h" "ch'y" "ch'y" ;
+  r7 => mkR "star" "sta" "synt" "snt" "snt" "stw" "st" "st" "st" ;
+  r8 => mkR "aTh'ar" "aTh'a" "aTh't" "aRt" "aTh'w" "aTh'a" "aTh'" "aTh'" "aTh'" ; 
+  r9 => table {sg => "any" ; r2 => "anty" ; r3 => "antaly" ; 
+               r4 => "anaja" ; r5 => "anaTh'" ; r6 => "anhtr" ; 
+               r7 => "anasy" ; 
+               r8 => "ananwE" ; r9 => "nRynwE" } 
+} ;
+
+oper ss : Str -> {s : Str} = \s -> {s = s} ;
+
+lin pot01 = {s = table {unit => "ak" ; _ => "dummy" } ; size = sg ; n = Sg} ;
+lin pot0 d = d ; 
+lin pot110 = {s = "das" ; size = less100 ; n = Pl} ; 
+lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
+lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
+lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ;
+
+lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
+lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
+
+lin pot1as2 n = {s = n.s ; s2 = "dummy" ; size = n.size ; n = n.n} ;
+lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
+              s2 = d.s ! unit ++ "lkh'" ; size = more100 ; n = d.n} ;
+lin pot2plus d e = 
+  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
+   s2 = (d.s ! unit) ++ "lkh'" ++ (mkhazar e.s e.size) ; 
+   size = more100 ; n = d.n} ;
+
+lin pot2as3 n = {s = n.s ; n = n.n} ;
+lin pot3 n = {s = table { singl => ekhazar ;
+                          less100 => n.s ++ "hzar" ; 
+                          more100 => n.s2 } ! n.size ; n = n.n} ;
+lin pot3plus n m = 
+  {s = table {singl => ekhazar ;
+              less100 => n.s ++ "hzar" ; 
+              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
+
+lin D_0 = { s = "N0" ; n = Sg};
+lin D_1 = { s = "N1" ; n = Sg};
+lin D_2 = { s = "N2" ; n = Pl};
+lin D_3 = { s = "N3" ; n = Pl};
+lin D_4 = { s = "N4" ; n = Pl};
+lin D_5 = { s = "N5" ; n = Pl};
+lin D_6 = { s = "N6" ; n = Pl};
+lin D_7 = { s = "N7" ; n = Pl};
+lin D_8 = { s = "N8" ; n = Pl};
+lin D_9 = { s = "N9" ; n = Pl};
+lin IDig d = { s = \\_ => d.s ; n = d.n} ;
+lin IIDig d dg = { s = \\df => Prelude.glue (dg.s ! df) d.s ; n = Pl }; 
+
+oper ekhazar : Str = variants {"hzar" ; "ak" ++ "hzar"} ; 
+oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {singl => ekhazar ; _ => s ++ "hzar"} ! sz ;
+oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "sw" ; _ => s ++ "sw"} ! sz ;
+}
diff --git a/lib/src/punjabi/src/QuestionPnb.gf b/lib/src/punjabi/src/QuestionPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/QuestionPnb.gf
@@ -0,0 +1,75 @@
+concrete QuestionPnb of Question = CatPnb ** open ResPnb, Prelude in {
+  flags optimize=all_subs ;
+    coding = utf8;
+
+  lin
+
+    QuestCl cl = {
+      s = \\t,p,qf => case qf of { 
+	                  QDir => cl.s ! t ! p ! OQuest;
+                      QIndir => "agr" ++ cl.s ! t! p ! ODir
+					  }
+				};	  
+
+    QuestVP qp vp = 
+       let cl = mkSClause ("") (Ag qp.g qp.n Pers3_Near) vp;
+           qp1 = qp.s ! Dir;
+           qp2 = qp.s ! Obl ++ "nE"
+          in { s = \\t,p,o => case t of {
+		             VPImpPast => qp2 ++ cl.s ! t ! p ! ODir;
+					 _         => qp1 ++ cl.s ! t ! p ! ODir
+					 }
+					}; 
+    QuestSlash ip slash = 
+     let ip1 = ip.s ! Dir;
+         ip2 = ip.s ! Obl ++ "nE"
+     in {
+      s = \\t,p,o => case t of { 
+            VPImpPast => ip2 ++ slash.s ! t ! p ! ODir;
+            _         => ip1 ++ slash.s ! t ! p ! ODir
+            }
+        };
+
+    QuestIAdv iadv cl = { 
+             s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir;
+                      	};
+
+    QuestIComp icomp np = 
+     let cl = mkSClause (np.s ! NPC Dir ++ icomp.s) np.a (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+    PrepIP p ip = {s = ip.s ! ResPnb. Voc ++ p.s } ;
+
+    AdvIP ip adv = {
+      s = \\c => adv.s ! ip.g ++ ip.s ! c ;
+      n = ip.n;
+      g = ip.g;
+      } ;
+ 
+    IdetCN idet cn = {
+      s = \\c => idet.s ! cn.g ++ cn.s ! idet.n ! c ; 
+      g = cn.g;
+	  n = idet.n;
+      } ;
+
+    IdetIP idet = {
+     s = \\_ => idet.s ! Masc ; 
+      n = idet.n;
+	  g = Masc;
+      } ;
+
+    IdetQuant iqant num = {
+      s = \\g => iqant.s ! num.n ++ num.s ; 
+      n = num.n
+      } ;
+
+    CompIAdv a = a ;
+    CompIP p = ss (p.s ! Dir) ;
+    AdvIAdv i a = {s = i.s ++ a.s ! Masc} ;
+
+}
diff --git a/lib/src/punjabi/src/RelativePnb.gf b/lib/src/punjabi/src/RelativePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/RelativePnb.gf
@@ -0,0 +1,73 @@
+concrete RelativePnb of Relative = CatPnb ** open ResPnb in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    RelCl cl = {
+      s = \\t,p,o,agr => case <t,giveNumber agr> of {
+	                    <VPImpPast,Sg> => "js" ++ cl.s ! t ! p ! o ; 
+						<VPImpPast,Pl> => "jn" ++ cl.s ! t ! p ! o ;
+						<_,_>          => "jw" ++ cl.s ! t ! p ! o 
+			};
+      c = Dir
+      } ;
+-- RelVP and RelSlash slows the linking process a lot this is why it is commented for test purposes
+
+ {-   RelVP rp vp = {
+      s = \\t,p,o,ag => 
+        let 
+          agr = case rp.a of {
+            RNoAg => ag ;
+            RAg a => a
+            } ;
+		 cl = mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp;
+		  
+--          cl = case t of {
+--                VPImpPast =>  mkSClause (rp.s ! (giveNumber agr) ! Obl) agr vp;
+--				_         =>  mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp
+--				};
+        in
+        cl.s ! t ! p ! ODir ;
+      c = Dir
+      } ;
+      
+
+---- Pied piping: "at which we are looking". Stranding and empty
+---- relative are defined in $ExtraHin.gf$ ("that we are looking at", 
+---- "we are looking at").
+--
+    RelSlash rp slash = {
+      s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Dir ++ slash.c2.s ++  slash.s ! t ! p ! o  ;--case t of {
+--	       VPImpPast => rp.s !  (giveNumber agr) Obl ++ slash.c2.s ++  slash.s ! t ! p ! o ;
+--		   _         => rp.s !  (giveNumber agr) Dir ++ slash.c2.s ++  slash.s ! t ! p ! o 
+--		   };
+      c = Dir
+      } ;
+-}
+    FunRP p np rp = {
+      s = \\n,c => rp.s ! n ! c ++ np.s ! NPC c ++ p.s  ;
+      a = RAg np.a
+      } ;
+
+    IdRP = {
+      s = table {
+        Sg => table {
+		
+    	    ResPnb.Dir  => "jeRa" ; 
+            ResPnb.Obl  => "jeRE" ;
+            ResPnb.Voc  => "jeRE" ;
+	    ResPnb.Abl => "jeRE"
+	    };
+		Pl => table {
+            ResPnb.Dir  => "jeRE" ;
+		    ResPnb.Obl  => "jeRE" ;
+		    ResPnb.Voc  => "jeRE" ;
+		    ResPnb.Abl => "jeRE"
+			}
+       }; 
+      a = RNoAg
+      } ;
+
+}
diff --git a/lib/src/punjabi/src/ResPnb.gf b/lib/src/punjabi/src/ResPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/ResPnb.gf
@@ -0,0 +1,634 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Pnbu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+
+resource ResPnb = ParamX  ** open Prelude,Predef in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  param 
+    Case = Dir | Obl | Voc | Abl ;
+    Gender = Masc | Fem ;
+	VTense = Subj | Perf | Imperf;
+    PPerson = Pers1
+	    | Pers2_Casual
+	    | Pers2_Respect
+	    | Pers3_Near
+	    | Pers3_Distant;
+		
+	Order = ODir | OQuest ;
+	
+--2 For $Relative$
+ 
+    RAgr = RNoAg | RAg Agr ;
+    RCase = RC Number Case ;
+
+-- for Numerial
+   
+   CardOrd = NCard | NOrd ;
+  
+  -----------------------------------------
+  -- Punjabi Pronouns
+  -----------------------------------------
+  
+   Pronoun = P Number Gender Case PPerson;
+   PersPronForm = PPF Number PPerson Case;
+   
+-------------------------------------------
+--Verbs
+-------------------------------------------
+
+      
+    VerbForm4 =
+      VF VTense PPerson Number Gender
+      | Inf | Inf_Fem | Inf_Obl | Ablative
+      | Root ;
+      
+  oper
+    Noun = {s : Number => Case => Str ; g : Gender} ;
+    Verb = {s : VerbForm4 => Str} ;
+    Preposition = {s : Str};
+    DemPronForm = {s : Number => Gender => Case => Str};
+    PossPronForm = {s : Number => Gender => Case => Str};
+    Determiner = {s : Number => Gender => Str ; n : Number};
+  
+-- a useful oper
+    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ;
+ 
+   -----------------------------------------------
+   -- Pnb Adjectives
+   -----------------------------------------------
+   Adjective1 = {s : Number => Gender => Case => Str} ;
+--    Adjective2 = {s : Number => Case => Str} ;  
+
+
+  mkAdj1 : Str -> Adjective1 ;
+  mkAdj1 piilaa = let end = last (piilaa) ;
+                   piil = if_then_else Str (eq end "e") piilaa (tk 1 piilaa)
+                in adj1 (piilaa)    (piil+"E")  (variants{piil+"ya"; piil+"E"}) (piil+"ywN")  (piil+"E")  (piil+"yaN")   (piil+"yw")   ""
+                        (piil+"y") (piil+"y") (variants{piil+"y" ; piil+"yE"})  (piil+"ywN") (piil+"y")  (piil+"yaN")   (piil+"yw") "" ;
+
+  adj1 :(x1,_,_,_,_,_,_, _,_,_,_,_,_,_,_, x16 : Str) -> {s : Number => Gender => Case => Str} = 
+   \msd,mso,msv,msa, mpd,mpo,mpv,mpa, fsd,fso,fsv,fsa, fpd,fpo,fpv,fpa -> {
+    s = table {
+     Sg => (cmnAdj msd mso msv msa fsd fso fsv fsa).s ;
+     Pl  => (cmnAdj mpd mpo mpv mpa fpd fpo fpv fpa).s
+     }
+   };
+ 
+--  mkAdj2 : Str -> Adjective2 ;
+--  mkAdj2 romii = cmnAdj romii romii         (romii+"a")  (romii+"ywN")
+--                        romii (romii++"aN") (romii++"w")  "" ;
+
+ cmnAdj : (x1,_,_,_,_,_,_,x8 : Str) -> {s : Gender => Case => Str} = 
+      \sd,so,sv,sa, pd,po,pv,pa -> {
+      s = table {
+      Masc => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv ;
+        Abl => sa 
+	  } ;
+      Fem => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv ;
+        Abl => pa 
+	  }
+      } 
+   } ;
+ 
+					 
+		 
+
+  RefPron : Str;
+  RefPron = "Kwd";
+  
+  ----------------------------------------------------------
+  -- Grammar part
+  ----------------------------------------------------------
+  
+  param
+    Agr = Ag Gender Number PPerson ;
+    NPCase = NPC Case | NPObj | NPErg ;
+
+  oper
+    np2pronCase :  (Case => Str) -> NPCase -> Agr -> Str = \ppf,npc,a -> case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg => case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => ppf ! Dir ++ "nE" ;
+	   _			     => ppf ! Dir
+	   }
+      } ;
+    
+	toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
+      NPC c => pn !  c ;
+      NPObj => pn !  Dir ;
+      NPErg => pn !  Obl ++ "nE"
+      } ;
+	detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! c ;
+       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
+       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "nE"
+      } ;  
+    det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ;
+       NPObj => dt.s ! Sg ! Masc ;
+       NPErg => dt.s ! Sg  ! Masc ++ "nE"
+      } ;    
+
+oper
+------------------------------------------
+-- Agreement transformations
+-----------------------------------------
+    toAgr : Number -> PPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : PPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+    
+    defaultAgr : Agr = agrP3 Masc Sg ;
+    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
+    personalAgr : Agr = agrP1 Masc Sg ;
+    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
+	
+ param
+      CPolarity = 
+       CPos
+       | CNeg Bool ;  -- contracted or not
+
+ oper
+    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
+    Pos => CPos ;
+    Neg => CNeg b
+    } ;
+
+	NP : Type = {s : NPCase => Str ; a : Agr ; isPron : Bool} ;
+   
+ param
+    CTense = CPresent | CPast | CFuture ;
+    
+  oper 
+    copula : CTense -> Number -> PPerson -> Gender -> Str = \t,n,p,g -> 
+      case <t,n,p,g> of {
+        <CPresent,Sg,Pers1,_   > => "waN" ;
+        <CPresent,Sg,Pers2_Casual,_   > => "ayN" ;
+	<CPresent,Sg,Pers2_Respect,_   > => "aw" ;
+        <CPresent,Sg,_,_   > => "aE" ;
+--        <CPresent,Sg,Pers3_Distant,_   > => "aE" ;
+	<CPresent,Pl,Pers1,_   > => "waN" ;
+        <CPresent,Pl,Pers2_Casual,_   > => "aw" ;
+	<CPresent,Pl,Pers2_Respect,_   > => "aw" ;
+        <CPresent,Pl,_,_   > => "nE" ;
+--        <CPresent,Pl,Pers3_Distant,_   > => "nE" ;
+	<CPast,Sg,Pers1,_   > => "saN" ;
+--        <CPast,Sg,Pers2_Casual,Masc   > => "sy" ;
+	<CPast,Sg,Pers2_Casual,_   > => "syN" ;
+	<CPast,Sg,Pers2_Respect,_   > => "sw" ;
+--	<CPast,Sg,Pers2_Respect,Fem   > => "syN" ;
+        <CPast,Sg,_,_   > => "sy" ;
+--	<CPast,Sg,Pers3_Near,Fem   > => "th-y" ;
+--      <CPast,Sg,Pers3_Distant,_  > => "sy" ;
+--	<CPast,Sg,Pers3_Distant,Fem  > => "th-y" ;
+	<CPast,Pl,Pers1,_   > => "saN" ;
+        <CPast,Pl,Pers2_Casual,_   > => "sw" ;
+	<CPast,Pl,Pers2_Respect,_   > => "sw" ;
+        <CPast,Pl,_,_   > => "sN" ;
+--	<CPast,Pl,Pers3_Distant,_   > => "sn" ;
+	<CFuture,Sg,Pers1,Masc   > => "ga" ;
+	<CFuture,Sg,Pers1,Fem   > => "gy" ;
+        <CFuture,Sg,Pers2_Casual,Masc   > => "ga" ;
+	<CFuture,Sg,Pers2_Casual,Fem   > => "gy" ;
+	<CFuture,Sg,Pers2_Respect,Masc   > => "gE" ;
+	<CFuture,Sg,Pers2_Respect,Fem   > => "gE" ;
+        <CFuture,Sg,Pers3_Near,Masc   > => "ga" ;
+	<CFuture,Sg,Pers3_Near,Fem   > => "gy" ;
+        <CFuture,Sg,Pers3_Distant,Masc  > => "ga" ;
+	<CFuture,Sg,Pers3_Distant,Fem  > => "gy" ;
+	<CFuture,Pl,Pers1,Masc   > => "gE" ;
+	<CFuture,Pl,Pers1,Fem   > => "gyaN" ;
+        <CFuture,Pl,Pers2_Casual,Masc   > => "gE" ;
+	<CFuture,Pl,Pers2_Casual,Fem   > => "gyaN" ;
+	<CFuture,Pl,Pers2_Respect,Masc   > => "gE" ;
+	<CFuture,Pl,Pers2_Respect,Fem   > => "gyaN" ;
+        <CFuture,Pl,Pers3_Near,Masc   > => "gE" ;
+	<CFuture,Pl,Pers3_Near,Fem   > => "gyaN" ;
+	<CFuture,Pl,Pers3_Distant,Masc  > => "gE" ;
+	<CFuture,Pl,Pers3_Distant,Fem  > => "gyaN" 
+        
+        
+        } ;
+
+ param
+    VPPTense = 
+	  VPPres
+	  |VPPast
+	  |VPFutr
+	  |VPPerf;
+      
+    VPHTense = 
+       VPGenPres  -- impf hum       nahim    "I go"
+     | VPImpPast  -- impf Ta        nahim    "I went"
+	 | VPFut      -- fut            na/nahim "I shall go"
+     | VPContPres -- stem raha hum  nahim    "I am going"
+     | VPContPast -- stem raha Ta   nahim    "I was going"
+	 | VPContFut
+     | VPPerfPres -- perf hum       na/nahim "I have gone"
+     | VPPerfPast -- perf Ta        na/nahim "I had gone"          
+	 | VPPerfFut
+	 | VPPerfPresCont
+	 | VPPerfPastCont
+	 | VPPerfFutCont
+     | VPSubj     -- subj           na       "I may go"
+     ;
+
+    VPHForm = 
+       VPTense VPPTense Agr -- 9 * 12
+     | VPReq
+     | VPImp
+     | VPReqFut
+     | VPInf
+     | VPStem
+     ;
+
+    VType = VIntrans | VTrans | VTransPost ;
+
+  oper
+    
+	objVType : VType -> NPCase = \vt -> case vt of {
+      VTrans => NPObj ;
+      _ => NPC Obl
+      } ;
+
+    VPH : Type = {
+      s    : VPHForm => {fin, inf : Str} ;
+      obj  : {s : Str ; a : Agr} ; 
+      subj : VType ;
+      comp : Agr => Str;
+      inf : Str;
+      ad  : Str;
+      embComp : Str ;
+      prog : Bool ;
+      } ;
+	
+	VPHSlash = VPH ** {c2 : Compl} ;
+
+    Compl : Type = {s : Str ; c : VType} ;
+
+   predV : Verb -> VPH = \verb -> {
+      s = \\vh => 
+	   case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = verb.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =verb.s ! VF Perf p n g} ;
+		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  verb.s ! VF Subj p n g } ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = verb.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  verb.s ! Root};
+		 _ => {fin = [] ; inf = verb.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = verb.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;
+
+    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
+    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
+-------------------------
+-- added for cauitives
+   predVcc : (Verb **{c2:Compl}) -> VPHSlash = \verb ->
+    predV verb ** {c2 = {s = "" ; c = VTrans} } ;
+------------------------
+	 
+    raha : Gender -> Number -> Str = \g,n -> 
+	   (mkAdj1 "rya").s ! n ! g ! Dir ;
+    pya : Gender -> Number -> Str = \g,n -> 
+	   (mkAdj1 "pya").s ! n ! g ! Dir ;	   
+
+	cka : Gender -> Number -> Str = \g,n -> 
+	  (mkAdj1 "cka").s ! n ! g ! Dir ;
+	  
+	hw : PPerson -> Number -> Str = \pp,n ->    
+	 case <pp,n> of {
+	 <Pers1,_> => "hwwaN";
+	 <Pers2_Casual,Sg>    => "hwwyN";
+	 <Pers2_Casual,Pl>    => "hww";
+	 <Pers2_Respect,_>    => "hww";
+	 <Pers3_Distant,Sg>    => "hwwE";
+	 <Pers3_Distant,Pl>    => "hwn";
+	 <Pers3_Near,Sg>    => "hwwE";
+	 <Pers3_Near,Pl>    => "hwn"
+	 
+	 };
+	 
+	predAux : Aux -> VPH = \verb -> {
+     s = \\vh => 
+       let  
+
+		 inf  = verb.inf ;
+         part = verb.ppart ;
+
+       in
+       case vh of {
+	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
+         VPStem => {fin = []  ; inf = "rh" };
+		 _ => {fin = part ; inf = [] }
+		 };
+	  obj = {s = [] ; a = defaultAgr} ;
+      subj = VIntrans ;
+      inf = verb.inf;
+	  ad = [];
+      embComp = [];
+      prog = False ;
+      comp = \\_ => []
+      } ;
+    
+  Aux = {
+      inf,ppart,prpart : Str
+    } ;
+
+  auxBe : Aux = {
+    inf  = "" ;
+    ppart = "" ;
+    prpart = ""
+    } ;
+    
+  predProg : VPH -> VPH = \verb -> {
+     s = \\vh => 
+       case vh of {
+         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ pya g n} ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ pya g n} ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf } ;
+	 VPTense VPPerf (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ raha g n } ;
+         VPStem => {fin = []  ; inf = (verb.s!VPStem).inf };
+		 _ => {fin = [] ; inf = [] }
+		 };
+      obj = verb.obj ;
+      subj =  VIntrans ;
+      inf = verb.inf;
+      ad = verb.ad;
+      embComp = verb.embComp;
+      prog = True ;
+      comp = verb.comp 
+      } ;
+   	
+  Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+				    VPGenPres  => vp.s !  VPTense VPPres agr ;
+					VPImpPast  => vp.s !  VPTense VPPast agr ;
+				    
+					VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+					                                _    => vp.s !  VPTense VPFutr agr } ;
+					VPContPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+					VPContPast => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+					VPContFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+					VPPerfPres =>
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+					--  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfPast => 
+                      -- {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		                        {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+					VPPerfFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+					VPPerfPresCont => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+					VPPerfPastCont => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+					VPPerfFutCont => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+					VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "Xayd" } ;
+					                                _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "Xayd" } } 
+                   
+					};
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "ky" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nyN" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+					VPImpPast  => vp.s !  VPTense VPPast agr ;
+					VPFut      => vp.s !  VPTense VPFutr agr ;
+					VPContPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ pya g n  } ;
+					VPContPast => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ;
+					VPContFut  => 
+					  {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ pya g n ++ hw p n  } ;
+					VPPerfPres => 
+					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfPast => 
+                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+					VPPerfFut  => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+					VPPerfPresCont => 
+					 {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ; 
+					VPPerfPastCont => 
+					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ pya g n } ; 
+					VPPerfFutCont => 
+					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ pya g n ++ hw p n } ;
+					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xayd"  }
+                    
+					};
+
+		  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "ky" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nyN" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+    
+    insertSubj : PPerson -> Str -> Str = \p,s -> 
+      case p of { Pers1 => s ++ "wN" ; _ => s ++ "E"};
+     
+    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
+     } ;
+     insertVV : Str -> VPH -> Str -> VPH -> VPH = \obj1,vp,emb,vp2 -> {
+     s = vp.s ;
+--     obj = vp.obj ;
+     obj = vp2.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ emb; -- this should be covered in urdu as well
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1  
+     } ;
+     
+    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ obj1;
+     prog = vp.prog ;
+     comp = vp.comp
+     
+     } ;
+	 
+    insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj obj vp ** {c2 = vp.c2} ;
+    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj2 obj vp ** {c2 = vp.c2} ;
+
+	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
+     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
+    infVV : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  }; -- need to be checked and should be covered in urdu as well
+        case isAux of {False =>  (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf  ; True => (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  }; -- need to be checked and should be covered in urdu as well
+    infV2V : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ++ "dy"  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "dy"}; -- need to be checked and should be covered in urdu as well
+      case isAux of {False =>  (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ++ "dy"  ; True => (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "dy"}; -- need to be checked and should be covered in urdu as well  
+
+    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
+      s = vps.s ;
+      obj = case np.isPron of { 
+            False => {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
+	    _     => {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ; a = np.a}
+	    };
+      subj = vps.c2.c ;
+	  inf = vps.inf;
+	  ad = vps.ad;
+      embComp = vps.embComp;
+      prog = vps.prog ;
+      comp = vps.comp
+      } ;
+	  
+	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj ;
+	 ad = vp.ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
+    } ;
+
+    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+	 subj = vp.subj;
+     ad  = vp.ad ++ ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+	conjThat : Str = "kh" ;
+    checkPron : NP -> Str -> Str = \np,str ->  case (np.isPron) of {
+                                True => np.s ! NPC Obl;
+                                False => np.s ! NPC Obl ++ str} ;
+		
+    insertEmbCompl : VPH -> Str -> VPH = \vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj;
+     ad  = vp.ad;
+     embComp = vp.embComp ++ emb;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+    
+    insertTrans : VPH -> VType -> VPH = \vp,vtype -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = case vtype of {VIntrans => VTransPost ; VTrans => VTrans ; _ => vtype} ; -- still some problem not working properly
+     ad  = vp.ad;
+     embComp = vp.embComp ;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+
+}
+
diff --git a/lib/src/punjabi/src/SentencePnb.gf b/lib/src/punjabi/src/SentencePnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/SentencePnb.gf
@@ -0,0 +1,103 @@
+concrete SentencePnb of Sentence = CatPnb ** open Prelude, ResPnb in {
+
+  flags optimize=all_subs ;
+  coding = utf8;
+
+  lin
+
+    PredVP np vp = mkClause np vp ;
+
+    PredSCVP sc vp = mkSClause sc.s (defaultAgr) vp ;
+
+    ImpVP vp = {
+      s = \\pol,n => 
+        let 
+          agr   = Ag Masc (numImp n) Pers2_Casual ;
+          verb  = infVP True vp agr ;
+          dont  = case pol of {
+            CNeg True => "mt" ;
+            CNeg False => "nh" ;
+            _ => []
+            }
+        in
+        dont ++ verb
+    } ;
+
+    SlashVP np vp = 
+      mkClause np vp ** {c2 = vp.c2} ;
+
+    AdvSlash slash adv = {
+	  s  = \\t,p,o =>  adv.s ! Masc ++ slash.s ! t ! p ! o  ;
+      c2 = slash.c2
+    } ;
+
+    SlashPrep cl prep = cl **  {c2 = { s = prep.s ; c = VIntrans}} ;
+
+    SlashVS np vs slash = 
+      mkClause  np 
+        (insertObj2 (conjThat ++ slash.s) (predV vs))  **
+        {c2 = slash.c2} ;
+
+    EmbedS  s  = {s = conjThat ++ s.s} ;
+    EmbedQS qs = {s = qs.s ! QIndir} ;
+    EmbedVP vp = {s = infVP False vp defaultAgr} ; --- agr
+
+    UseCl  temp p cl = 
+	 { s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! ODir;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir -- this needs to be fixed by making SubjPerf in ResPnb		  
+
+   };
+  } ;
+    UseQCl temp p cl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! q;
+          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! q;
+          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q		  
+ 
+   };
+  } ;
+    UseRCl temp p rcl = {
+      s = \\q => case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ rcl.s ! VPGenPres ! p.p ! ODir ! q;
+          <Pres,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPres ! p.p ! ODir ! q;
+          <Past,Simul> => temp.s ++ p.s ++ rcl.s ! VPImpPast ! p.p ! ODir ! q;
+          <Past,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPast ! p.p ! ODir ! q;
+          <Fut,Simul>  => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q;
+          <Fut,Anter>  => temp.s ++ p.s ++ rcl.s ! VPPerfFut ! p.p ! ODir ! q;
+          <Cond,Simul> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q;
+          <Cond,Anter> => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q
+     };		  
+      c = rcl.c
+    } ;
+    UseSlash temp p clslash = {
+      s = case <temp.t,temp.a> of {
+	      <Pres,Simul> => temp.s ++ p.s ++ clslash.s ! VPGenPres ! p.p ! ODir;
+          <Pres,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPres ! p.p ! ODir;
+          <Past,Simul> => temp.s ++ p.s ++ clslash.s ! VPImpPast ! p.p ! ODir ;
+          <Past,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPast ! p.p ! ODir;
+          <Fut,Simul>  => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir;
+          <Fut,Anter>  => temp.s ++ p.s ++ clslash.s ! VPPerfFut ! p.p ! ODir;
+          <Cond,Simul> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir;
+          <Cond,Anter> => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir
+     };		  
+      c2 = clslash.c2
+    } ;
+
+    AdvS a s = {s = a.s ! Masc ++ s.s} ;
+
+    RelS s r = {s = s.s ++ r.s ! agrP3 Masc Sg} ;
+    SSubjS s sj s = { s = s.s ++ sj.s ++ s.s};
+
+}
diff --git a/lib/src/punjabi/src/StructuralPnb.gf b/lib/src/punjabi/src/StructuralPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/StructuralPnb.gf
@@ -0,0 +1,130 @@
+concrete StructuralPnb of Structural = CatPnb ** 
+  open MorphoPnb, ParadigmsPnb, Prelude, NounPnb in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  lin
+  above_Prep = ss "atE" ;
+  after_Prep = ss "twN bed" ;
+  all_Predet = ss "sarE" ;
+  almost_AdA, almost_AdN = ss "tqryba" ;
+  although_Subj = ss "pawyN" ;
+  always_AdV = ss "hmyXh" ;
+  and_Conj = sd2 [] "tE" ** {n = Pl} ;
+  because_Subj = ss "kywnkh'" ;
+  before_Prep = ss "plE" ;
+  behind_Prep = ss "pych'E" ;
+  between_Prep = ss "wckar" ;
+  both7and_DConj = sd2 "dwwyN" "tE" ** {n = Pl} ;
+  but_PConj = ss "lykn" ;
+  by8agent_Prep = ss "" ;
+  by8means_Prep = ss "" ;
+  can8know_VV,can_VV = mkV "skna" ** { isAux = True} ;
+  during_Prep = ss ["dE wc"] ;
+  either7or_DConj = sd2 "kwy ak" "ya" ** {n = Sg} ;
+  everybody_NP =  MassNP (UseN (MorphoPnb.mkN11 "hr kwy")); -- not a good way coz need to include NounPnb
+  every_Det = mkDet "hr" "hr" "hr" "hr" Sg;
+  everything_NP = MassNP (UseN (MorphoPnb.mkN11 "hr XE"));
+  everywhere_Adv = mkAdv "hr th'aN" ;
+  few_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
+  first_Ord = {s = "pehla" ; n = Sg} ; --DEPRECATED
+  for_Prep = ss "[dE wast-E]" ;
+  from_Prep = ss "twN" ;
+  he_Pron = personalPN "aw" "aynwN" "aw" "" "awra"  Sg Masc Pers3_Distant ;
+  here_Adv = mkAdv "ayth'E" ;
+  here7to_Adv = mkAdv "ayth'E" ;
+  here7from_Adv = mkAdv "ayth'wN" ;
+  how_IAdv = ss "ksraN" ;
+  how8many_IDet = makeIDet "kynE" "kyny" Pl ;
+  how8much_IAdv  = ss "kyna" ;
+  if_Subj = ss "agr" ;
+  in8front_Prep = ss ["dE samnE"] ;
+  i_Pron = personalPN "myN" "mynwN" "mynwN" "mytwN" "myra" Sg Masc Pers1;
+  in_Prep = ss "wc" ;
+  it_Pron  = personalPN "aE" "aynwN" "aynwN" "" "ayra" Sg Masc Pers3_Near;
+  less_CAdv = {s = "kT" ; p = ""} ;
+  many_Det = mkDet "bht zyadh" "bht zyadh" "bht zyadh" "bht zyadh" Pl ;
+  more_CAdv = {s = "hwr" ; p = "" } ;
+  most_Predet = ss "zyadh tr" ;
+  much_Det = mkDet "bht" "bht" "bht" "bht" Sg  ;
+--  must_VV = {
+--    s = table {
+--      VVF VInf => ["have to"] ;
+--      VVF VPres => "must" ;
+--      VVF VPPart => ["had to"] ;
+--      VVF VPresPart => ["having to"] ;
+--      VVF VPast => ["had to"] ;      --# notpresent
+--      VVPastNeg => ["hadn't to"] ;      --# notpresent
+--      VVPresNeg => "mustn't"
+--      } ;
+--    isAux = True
+--    } ;
+-----b  no_Phr = ss "no" ;
+  no_Utt = ss "nyN" ;
+  on_Prep = ss "atE" ;
+  one_Quant = demoPN "ak" "ak" "ak"  ; -- DEPRECATED
+  only_Predet = ss "srf" ;
+  or_Conj = sd2 [] "ya" ** {n = Sg} ;
+  otherwise_PConj = ss "ya fyr" ;
+  part_Prep = ss "hSh" ;
+  please_Voc = ss "mhrbani" ;
+  possess_Prep = ss "da" ;
+  quite_Adv = ss "khamosh" ;
+  she_Pron = personalPN "aw" "awnwN" "awnw" "" "awra" Sg Fem Pers3_Distant ;
+  so_AdA = ss "so" ;
+  somebody_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy" ));
+  someSg_Det = mkDet "kch'" "kch'" "kch'" "kch'" Sg ;
+  somePl_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
+  something_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy XE"));
+  somewhere_Adv = mkAdv "ktlE" ;
+  that_Quant = demoPN "wh" "as" "an" ;
+  that_Subj = ss "kh";
+  there_Adv = mkAdv "awth'E" ;
+  there7to_Adv = mkAdv "awth'E" ;
+  there7from_Adv = mkAdv "awth'wN" ;
+  therefore_PConj = ss "as ly" ;
+  they_Pron = personalPN "aw" "[awnaN nwN]" "aw" "" "awnaN da" Pl Masc Pers3_Distant ; ---- 
+  this_Quant = demoPN "yh" "as" "an";      
+  through_Prep = ss "wcwN" ;
+  too_AdA = ss "bht" ;
+  to_Prep = ss "awnwN" ** {lock_Prep = <>};
+  under_Prep = ss "th'lE" ** {lock_Prep = <>};
+  very_AdA = ss "bht" ;
+  want_VV = mkV "cana" ** { isAux = False} ;
+  we_Pron = personalPN "asy" "sanwN" "sanwN" "satwN" "saDa" Pl Masc Pers1 ;
+--  whatSg_IP = mkIP "kya" "kis" "kis" Sg Masc ;
+--  whatPl_IP = mkIP "kya" "kin" "kin" Pl Masc ;
+  when_IAdv = ss "kdwN" ;
+  when_Subj = ss "kdwN" ;
+  where_IAdv = ss "kth'E" ;
+  which_IQuant = {s = \\_ => "kyRy"} ;
+--  whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+--  whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+--  whoSg_IP = mkIP "kwn" "kis" "kis" Sg Masc  ;
+--  whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
+  why_IAdv = ss "kywN" ;
+  without_Prep = ss ["twN bGyr"] ;
+  with_Prep = ss ["dE nal"] ;
+--  yes_Phr = ss "haN" ;
+  yes_Utt = ss "haN" ;
+  youSg_Pron = personalPN "twN" "tynwN" "tynwN" "tytwN" "twwaDa" Sg Masc Pers2_Casual ;
+  youPl_Pron = personalPN "tsy" "twanwN" "twanwN" "twatwN" "twwaDa" Pl Masc Pers2_Casual ;
+  youPol_Pron = personalPN "tsy" "twanwN" "twanwN" "twatwN" "twwaDa" Sg Masc Pers2_Respect  ;
+  no_Quant =  demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ; 
+  not_Predet = {s="nhyN"} ;
+  if_then_Conj = sd2 "agr" "tE" ** {n = Sg} ; 
+  at_least_AdN = ss ["km twN km"] ;
+  at_most_AdN = ss ["zyadh twN zyadh"];
+  nothing_NP = MassNP (UseN (MorphoPnb.mkN11 "kch' nyN" )); 
+  except_Prep = ss "swaE" ;
+  nobody_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy nhyN"));  
+
+  as_CAdv = {s = "aynaN" ; p = "jnaN"} ;
+
+  have_V2 = mkV2 (mkV "rakh'na") "" ;
+
+ language_title_Utt = ss "pnjaby" ;
+
+}
+
diff --git a/lib/src/punjabi/src/SymbolPnb.gf b/lib/src/punjabi/src/SymbolPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/SymbolPnb.gf
@@ -0,0 +1,47 @@
+--# -path=.:../abstract:../common
+
+concrete SymbolPnb of Symbol = CatPnb ** open Prelude, ResPnb in {
+
+  flags coding = utf8;
+
+ lin
+-- SymbPN i = {s = \\_ => i.s ; g = Masc} ;
+  SymbPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  IntPN i  = {s = addGenitiveS i.s ; g = Masc} ;
+  FloatPN i = {s = addGenitiveS i.s ; g = Masc} ;
+  NumPN i = {s = \\_ =>i.s ; g = Masc} ;
+  CNIntNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+  CNSymbNP det cn xs = {
+    s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Dir ++  xs.s ; 
+    a = agrP3 cn.g det.n
+    } ;
+  CNNumNP cn i = {
+    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
+    a = agrP3 cn.g Sg
+    } ;
+
+  SymbS sy = sy ; 
+  SymbNum sy = { s = sy.s ; n = Pl } ;
+  SymbOrd sy = { s = sy.s ++ "waN" ; n = Pl} ;
+
+lincat 
+
+  Symb, [Symb] = SS ;
+
+lin
+  MkSymb s = s ;
+
+  BaseSymb = infixSS "tE" ;
+  ConsSymb = infixSS "" ;
+
+oper
+    -- Note: this results in a space before 's, but there's
+    -- not mauch we can do about that.
+    addGenitiveS : Str -> Case => Str = \s -> 
+     table {_ => s ++ "da" } ;
+
+
+}
diff --git a/lib/src/punjabi/src/VerbPnb.gf b/lib/src/punjabi/src/VerbPnb.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/src/VerbPnb.gf
@@ -0,0 +1,45 @@
+concrete VerbPnb of Verb = CatPnb ** open ResPnb in {
+
+  flags coding = utf8;
+  flags optimize=all_subs ;
+
+  lin
+    UseV  v = predV v   ;
+    SlashV2a v = predV v ** {c2 = {s = v.c2.s ; c = VTrans}} ;
+    Slash2V3 v np = 
+      insertObjc (\\_ => np.s ! NPObj ++ v.c3 ) (predV v ** {c2 = {s = v.c2 ; c = VTrans}}) ;
+   
+    Slash3V3 v np = 
+      insertObjc (\\_ => checkPron np v.c2) (predV v ** {c2 = {s = v.c3 ; c = VTrans}}) ; 
+                                
+--    ComplVV v vp = insertTrans (insertVV (infVV v.isAux vp ) (predV v) vp.embComp) VTransPost;
+--    ComplVV v vp = insertVV (infVV v.isAux vp ) (predV v) vp.embComp;
+    ComplVV v vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp vp) vp.subj; 
+    ComplVS v s  = insertTrans (insertObj2 (conjThat ++ s.s) (predV v)) VTransPost ;
+    ComplVQ v q  = insertObj2 (conjThat ++ q.s ! QIndir) (predV v) ;
+    ComplVA v ap = insertObj (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ) (predV v) ;
+    SlashV2V v vp = insertVV (infV2V v.isAux vp) (predV v) vp.embComp vp **{c2 = {s = "twN" ; c = VTransPost}} ; -- should creat a form at VP level which can be used in VP like 'swn da kyna' also check the c=VTransPost it is correct in case if second v is intrasitive, but not if trans like begged me to ead bread
+    SlashV2S v s  = insertObjc2 (conjThat ++ s.s) (predV v ** {c2 = {s = "twN" ; c = VTransPost}}) ;
+    SlashV2Q v q  = insertObjc2 (conjThat ++ q.s ! QIndir) (predV v ** {c2 = {s = "nwN" ; c = VTransPost}}) ; -- chek for VTransPost, as in this case , case should be ergative but agrement should be default
+    SlashV2A v ap = insertObjc (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ) (predV v ** {c2 = {s = "nwN" ; c = VTransPost}}) ; ----
+    ComplSlash vp np = insertObject np vp ;
+    SlashVV vv vp = 
+      insertEmbCompl (insertObj (\\a => infVP vv.isAux vp a) (predV vv)) vp.embComp **
+        {c2 = vp.c2} ;
+    SlashV2VNP vv np vp = 
+      insertObjPre (\\_ =>  np.s ! NPObj  )
+        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
+          {c2 = vp.c2} ;
+    UseComp comp = insertObj comp.s (predAux auxBe) ;
+
+    AdvVP vp adv = insertObj (\\a => adv.s ! (fromAgr a).g) vp ;
+
+    AdVVP adv vp = insertAdV adv.s vp ;
+    ReflVP v = insertObjPre (\\_ =>  RefPron) v ;
+    PassV2 v = predV v ; -- need to be fixed
+    CompAP ap ={s = \\a => ap.s ! giveNumber a ! giveGender a ! Dir } ;
+    CompNP np = {s = \\_ => np.s ! NPObj} ;
+    CompAdv adv = {s = \\a => adv.s ! (fromAgr a).g } ;
+
+
+}
diff --git a/lib/src/punjabi/translit.gfs b/lib/src/punjabi/translit.gfs
new file mode 100644
--- /dev/null
+++ b/lib/src/punjabi/translit.gfs
@@ -0,0 +1,15 @@
+rf -file=src/AdjectivePnb.gf | ps -env=quotes -to_urdu | wf -file=AdjectivePnb.gf
+rf -file=src/AdverbPnb.gf | ps -env=quotes -to_urdu | wf -file=AdverbPnb.gf
+rf -file=src/ExtraPnb.gf | ps -env=quotes -to_urdu | wf -file=ExtraPnb.gf
+rf -file=src/IdiomPnb.gf | ps -env=quotes -to_urdu | wf -file=IdiomPnb.gf
+rf -file=src/LexiconPnb.gf | ps -env=quotes -to_urdu | wf -file=LexiconPnb.gf
+rf -file=src/MorphoPnb.gf | ps -env=quotes -to_urdu | wf -file=MorphoPnb.gf
+rf -file=src/NumeralPnb.gf | ps -env=quotes -to_urdu | wf -file=NumeralPnb.gf
+rf -file=src/QuestionPnb.gf | ps -env=quotes -to_urdu | wf -file=QuestionPnb.gf
+rf -file=src/RelativePnb.gf | ps -env=quotes -to_urdu | wf -file=RelativePnb.gf
+rf -file=src/ResPnb.gf | ps -env=quotes -to_urdu | wf -file=ResPnb.gf
+rf -file=src/SentencePnb.gf | ps -env=quotes -to_urdu | wf -file=SentencePnb.gf
+rf -file=src/StructuralPnb.gf | ps -env=quotes -to_urdu | wf -file=StructuralPnb.gf
+rf -file=src/SymbolPnb.gf | ps -env=quotes -to_urdu | wf -file=SymbolPnb.gf
+rf -file=src/VerbPnb.gf | ps -env=quotes -to_urdu | wf -file=VerbPnb.gf
+
diff --git a/lib/src/romance/AdjectiveRomance.gf b/lib/src/romance/AdjectiveRomance.gf
--- a/lib/src/romance/AdjectiveRomance.gf
+++ b/lib/src/romance/AdjectiveRomance.gf
@@ -56,4 +56,10 @@
       isPre = False ---- A2 has no isPre
       } ;
 
+    AdvAP ap adv = {
+      s = \\a => ap.s ! a ++ adv.s ;
+      isPre = False
+      } ;
+
+
 }
diff --git a/lib/src/romance/AdverbRomance.gf b/lib/src/romance/AdverbRomance.gf
--- a/lib/src/romance/AdverbRomance.gf
+++ b/lib/src/romance/AdverbRomance.gf
@@ -16,6 +16,10 @@
 
     AdAdv = cc2 ;
 
+    PositAdAAdj a = {
+      s = a.s ! Posit ! AA
+      } ;
+
     SubjS subj s = {
       s = subj.s ++ s.s ! subj.m
       }  ;
diff --git a/lib/src/romance/ConjunctionRomance.gf b/lib/src/romance/ConjunctionRomance.gf
--- a/lib/src/romance/ConjunctionRomance.gf
+++ b/lib/src/romance/ConjunctionRomance.gf
@@ -20,7 +20,10 @@
       c = ss.c
       } ;
 
+    ConjIAdv = conjunctDistrSS ;
 
+    ConjCN co ns = conjunctDistrTable Number co ns ** {g = ns.g} ;
+
 -- These fun's are generated from the list cat's.
 
     BaseS = twoTable Mood ;
@@ -41,12 +44,18 @@
     ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
     BaseRS x y = twoTable2 Mood Agr x y ** {c = y.c} ;
     ConsRS xs x = consrTable2 Mood Agr comma xs x ** {c = xs.c} ;
+    BaseIAdv = twoSS ;
+    ConsIAdv = consrSS comma ;
+    BaseCN x y = twoTable Number x y ** {g = conjGender x.g y.g} ;
+    ConsCN x xs = consrTable Number comma x xs ** {g = conjGender x.g xs.g} ;
 
   lincat
     [S] = {s1,s2 : Mood => Str} ;
     [Adv] = {s1,s2 : Str} ;
+    [IAdv] = {s1,s2 : Str} ;
     [NP] = {s1,s2 : Case => Str ; a : Agr} ;
     [AP] = {s1,s2 : AForm  => Str ; isPre : Bool} ;
     [RS] = {s1,s2 : Mood => Agr => Str ; c : Case} ;
+    [CN] = {s1,s2 : Number => Str ; g : Gender} ;
 
 }
diff --git a/lib/src/romance/ExtraRomance.gf b/lib/src/romance/ExtraRomance.gf
--- a/lib/src/romance/ExtraRomance.gf
+++ b/lib/src/romance/ExtraRomance.gf
@@ -31,4 +31,8 @@
       isPol = p.isPol
       } ;
 
+    CompIQuant iq = {s = \\aa => iq.s ! aa.n ! aa.g ! Nom} ;
+
+    PrepCN prep cn = {s = prep.s ++ prepCase prep.c ++ cn.s ! Sg} ;
+    
 } 
diff --git a/lib/src/romance/ExtraRomanceAbs.gf b/lib/src/romance/ExtraRomanceAbs.gf
--- a/lib/src/romance/ExtraRomanceAbs.gf
+++ b/lib/src/romance/ExtraRomanceAbs.gf
@@ -1,6 +1,6 @@
 abstract ExtraRomanceAbs = Cat, Extra[
   VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,
-  VV,VP,Conj,Pron,ProDrop] ** {
+  VV,VP,Conj,Pron,ProDrop,CompIQuant,IQuant,IComp,PrepCN,CN,Prep,Adv] ** {
 
   fun 
     TPasseSimple : Tense ; --# notpresent
diff --git a/lib/src/romance/QuestionRomance.gf b/lib/src/romance/QuestionRomance.gf
--- a/lib/src/romance/QuestionRomance.gf
+++ b/lib/src/romance/QuestionRomance.gf
@@ -39,7 +39,7 @@
             let 
               ord = case q of {
                 QDir   => DInv ;
-                QIndir => DDir
+                QIndir => DInv 
               } ;
               cls = cl.s ! ord ! t ! a ! p ! Indic ;
               why = iadv.s
@@ -93,21 +93,26 @@
       n = n
       } ;
 
+    AdvIAdv i a = {s = i.s ++ a.s} ;
 
     CompIAdv a = {s = \\_  => a.s} ;
 
     CompIP p = {s = \\_  => p.s ! Nom} ;
 
+  lincat 
+    QVP = ResRomance.VP ;
+  lin
+    ComplSlashIP vp ip = insertObject vp.c2 (heavyNP {s = ip.s ; a = ip.a ** {p = P3}}) vp ;
+    AdvQVP vp adv = insertAdv adv.s vp ;
+    AddAdvQVP vp adv = insertAdv adv.s vp ;
+
+    QuestQVP qp vp = { 
+      s = \\t,a,b,_ => 
+        let
+          cl = mkClause (qp.s ! Nom) False False (agrP3 qp.a.g qp.a.n) vp  
+        in
+        cl.s ! DDir ! t ! a ! b ! Indic
+      } ;   
+
 }
 
-{- ---b 
-    IDetCN idet num ord cn = 
-      let 
-        g = cn.g ;
-        n = idet.n ;
-        a = aagr g n
-      in {
-      s = \\c => idet.s ! g ! c ++ num.s ! g ++ ord.s ! a ++ cn.s ! n ; 
-      a = a
-      } ;
--}
diff --git a/lib/src/romance/VerbRomance.gf b/lib/src/romance/VerbRomance.gf
--- a/lib/src/romance/VerbRomance.gf
+++ b/lib/src/romance/VerbRomance.gf
@@ -74,6 +74,7 @@
     UseComp comp = insertComplement comp.s (predV copula) ;
 
     CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n} ;
+    CompCN cn = { s = \\ag => let agr = complAgr ag in cn.s ! agr.n}; --- RE 7/12/2010
     CompNP np = {s = \\_  => (np.s ! Nom).ton} ;
     CompAdv a = {s = \\_  => a.s} ;
 
diff --git a/lib/src/romanian/CatRon.gf b/lib/src/romanian/CatRon.gf
--- a/lib/src/romanian/CatRon.gf
+++ b/lib/src/romanian/CatRon.gf
@@ -47,12 +47,14 @@
    
 -- Noun
  
-   CN      = {s : Number => Species => ACase => Str; g : NGender; a : Animacy ; isComp : Bool} ; 
+   CN      = {s : Number => Species => ACase => Str; g : NGender; 
+              a : Animacy; isComp : Bool; needsRefForm : Bool} ; 
    
    Pron    = {s : NCase =>  Str ;
               c1, c2 : Clitics => Str ;
               a : Agr ;
-              poss : Number => Gender => Str } ;
+              isPol : Bool ;
+              poss : Number => Gender => ACase => Str } ;
               
    NP      = NounPhrase ;
 
diff --git a/lib/src/romanian/ExtraRon.gf b/lib/src/romanian/ExtraRon.gf
--- a/lib/src/romanian/ExtraRon.gf
+++ b/lib/src/romanian/ExtraRon.gf
@@ -1,30 +1,68 @@
---# -path=.:../romance:../common:../abstract:../../prelude
-concrete ExtraRon of ExtraRonAbs = CatRon ** 
-  open ResRon, ParadigmsRon, Prelude, MorphoRon in {
-
-  lin
- at_Prep = mkPrep "la" Ac;  
- DatSubjCl np vp = mkClause (np.s ! Da).comp (agrP3 Masc Sg) (insertClit vp np);
- 
- 
- 
- oper     
-insertClit : VerbPhrase -> NounPhrase -> VerbPhrase = \vp, np ->      
-                        let  
-                             vcDa = case np.nForm of 
-                                        {HasClit => nextClit vp.nrClit PDat ;
-                                         _       => vp.nrClit
-                                         };                             
-                             vpp = insertObje (\\_ => "") RNoAg (clitFromNoun np Da) False vcDa vp;
-                            in 
-                         {isRefl = vpp.isRefl; 
-                          s = vpp.s ; isFemSg = vpp.isFemSg ; pReflClit = vp.pReflClit ;
-                          nrClit = vpp.nrClit; clAcc = vpp.clAcc ; 
-                          clDat = vpp.clDat ; neg   = vpp.neg ;
-                          comp  = \\a => vpp.comp ! (np.a);
-                          ext   = vpp.ext ;
-                          lock_VP = <> };
-
-
-    
-} 
+--# -path=.:../romance:../common:../abstract:../../prelude
+concrete ExtraRon of ExtraRonAbs = CatRon ** 
+  open ResRon, ParadigmsRon, Prelude, MorphoRon in {
+
+  flags coding = utf8 ;
+
+  lin
+ at_Prep = mkPrep "la" Ac True;
+ DatSubjCompCl np vp np2 = let ss = if_then_Str np.isPronoun "" (np.s ! Dat).comp
+                              in 
+                            mkClause ss np.isPol np2.a (insertDatClit (insertSimpObj (\\_ => (np2.s ! Nom).comp) vp) np);
+
+ AccSubjCl np vp = let s1 = case np.nForm of
+                           {HasRef False => "";
+                            _            => "pe"};
+                       ss = if_then_Str np.isPronoun "" (s1 ++ (np.s ! Ac).comp)
+                     
+                     in 
+                       mkClause ss np.isPol (agrP3 Masc Sg) (insertAccClit vp np) ;
+
+ DatSubjCl np vp = let ss = if_then_Str np.isPronoun "" (np.s ! Da).comp 
+                      in mkClause ss np.isPol (agrP3 Masc Sg) (insertDatClit vp np);
+i8fem_Pron = mkPronoun "eu" "mine" "mie" [] [] "meu" "mea" "mei" "mele" Fem Sg P1 ;
+youSg8fem_Pron = mkPronoun "tu" "tine" "ţie" [] "tu" "tău" "ta" "tăi" "tale"  Fem Sg P2 ;
+youPl8fem_Pron = mkPronoun "voi" "voi" "vouă" [] "voi" "vostru" "voastră" "voştri" "voastre" Fem Pl P2 ;
+youPol8fem_Pron = let dvs = mkPronoun "dumneavoastră" "dumneavoastră" "dumneavoastră" [] "dumneavoastră" "dumneavoastră" "dumneavoastră" "dumneavoastră" "dumneavoastră" Fem Pl P2 
+             in 
+            {s = dvs.s; c1 = dvs.c1; 
+                c2 = dvs.c2; a = dvs.a; isPol = True; poss = dvs.poss} ;  
+
+refCN n = n ** {isComp = False; needsRefForm = True}; 
+ 
+ oper     
+insertDatClit : VerbPhrase -> NounPhrase -> VerbPhrase = \vp, np ->      
+                        let  
+                             vcDa = case np.nForm of 
+                                        {HasClit => nextClit vp.nrClit PDat ;
+                                         _       => vp.nrClit
+                                         };                             
+                             vpp = insertObje (\\_ => "") RNoAg (clitFromNoun np Da) False vcDa vp;
+                            in 
+                         {isRefl = vpp.isRefl; 
+                          s = vpp.s ; isFemSg = vpp.isFemSg ; pReflClit = vp.pReflClit ;
+                          nrClit = vpp.nrClit; clAcc = vpp.clAcc ; 
+                          clDat = vpp.clDat ; neg   = vpp.neg ;
+                          comp  = \\a => vpp.comp ! (np.a);
+                          ext   = vpp.ext ;
+                          lock_VP = <> };
+
+
+insertAccClit : VerbPhrase -> NounPhrase -> VerbPhrase = \vp, np ->      
+                        let  
+                             vcAc = case np.nForm of 
+                                        {HasClit => nextClit vp.nrClit PAcc ;
+                                         _       => vp.nrClit
+                                         };                             
+                             vpp = insertObje (\\_ => "") (clitFromNoun np Ac) RNoAg (isAgrFSg np.a) vcAc vp ;
+                            in 
+                         {isRefl = vpp.isRefl; 
+                          s = vpp.s ; isFemSg = vpp.isFemSg ; pReflClit = vp.pReflClit ;
+                          nrClit = vpp.nrClit; clAcc = vpp.clAcc ; 
+                          clDat = vpp.clDat ; neg   = vpp.neg ;
+                          comp  = \\a => vpp.comp ! (np.a);
+                          ext   = vpp.ext ;
+                          lock_VP = <> };
+
+    
+} 
diff --git a/lib/src/romanian/ExtraRonAbs.gf b/lib/src/romanian/ExtraRonAbs.gf
--- a/lib/src/romanian/ExtraRonAbs.gf
+++ b/lib/src/romanian/ExtraRonAbs.gf
@@ -4,5 +4,17 @@
 
   fun
     DatSubjCl : NP -> VP -> Cl ;
-    at_Prep : Prep ;    
+    AccSubjCl : NP -> VP -> Cl ;
+    DatSubjCompCl : NP -> VP -> NP -> Cl ;
+    at_Prep : Prep ;   
+    refCN : N -> CN ;
+
+   i8fem_Pron : Pron ;
+   youSg8fem_Pron : Pron ;
+   youPl8fem_Pron : Pron ;
+   youPol8fem_Pron : Pron ;
+   
+
+
+ 
 }
diff --git a/lib/src/romanian/IdiomRon.gf b/lib/src/romanian/IdiomRon.gf
--- a/lib/src/romanian/IdiomRon.gf
+++ b/lib/src/romanian/IdiomRon.gf
@@ -8,27 +8,27 @@
 
 
   lin
-    ImpersCl vp = mkClause "" (agrP3 Masc Sg) vp  ;
+    ImpersCl vp = mkClause "" False (agrP3 Masc Sg) vp  ;
     
-    GenericCl vp = mkClause "cineva" (agrP3 Masc Sg) vp ; -- an exact correspondent does not exist !
+    GenericCl vp = mkClause "cineva" False (agrP3 Masc Sg) vp ; -- an exact correspondent does not exist !
 
     ExistNP np = 
-      mkClause "" np.a (insertSimpObj (\\ag => (np.s ! No ).comp) (useVerb (v_besch20 "existã"))) ;
+      mkClause "" False np.a (insertSimpObj (\\ag => (np.s ! No ).comp) (useVerb (v_besch20 "existã"))) ;
 -- v_besch20 "exista"
    
     ExistIP ip = {
       s = \\t,a,p,_ => 
         ip.s ! No ++ 
-        (mkClause "" (agrP3 (ip.a.g) (ip.a.n))
+        (mkClause "" False (agrP3 (ip.a.g) (ip.a.n))
               copula).s 
            ! DDir ! t ! a ! p ! Indic       } ;
 
-    CleftNP np rs = mkClause ""  np.a 
+    CleftNP np rs = mkClause "" False np.a 
       (insertSimpObj (\\_ => rs.s ! Indic ! np.a) 
         (insertSimpObj (\\_ => (np.s ! rs.c).comp) copula)) ;
 --need adverb for 
     
-    CleftAdv ad s = mkClause "" (agrP3 Masc Sg) 
+    CleftAdv ad s = mkClause "" False (agrP3 Masc Sg) 
       (insertSimpObj (\\_ => conjThat ++ s.s ! Indic) 
         (insertSimpObj (\\_ => ad.s) copula)) ;
 
diff --git a/lib/src/romanian/LexiconRon.gf b/lib/src/romanian/LexiconRon.gf
--- a/lib/src/romanian/LexiconRon.gf
+++ b/lib/src/romanian/LexiconRon.gf
@@ -75,7 +75,7 @@
  fear_VS = mkVS (v_besch100 "teme") ;
  fear_V2 = mmkV2 (mkRVAcc (mkV100 "teme")) (mkPrep "de" Ac) ;
  find_V2 = dirV2 (mkV "găsi") ;
- fish_N = mkN "peşte" masculine ;
+ fish_N = mkN "peşte" "peşti" masculine ;
  floor_N = mkN "podea" ;
  forget_V2 = dirV2 (v_besch18 "uita") ;
  fridge_N = mkN "frigider" ;
@@ -102,8 +102,9 @@
 industry_N = mkN "industrie" ;
 iron_N = mkN "fier" masculine ;
 king_N = mkAnim (mkN "rege" masculine) ;
-know_V2 = dirV2 (v_besch122 "şti") ;
-know_VS = mkVS (v_besch109 "cunoaşte") ;
+know_V2 = dirV2 (v_besch109 "cunoaşte") ;
+know_VQ = mkVQ (v_besch122 "şti") ;
+know_VS = mkVS (v_besch122 "şti") ;
 lake_N = mkNR "lac" ;
 lamp_N = mkN "lampă" "lămpi" ;
 learn_V2 = dirV2(v_besch45 "învăţa") ;
@@ -303,7 +304,7 @@
   wind_N = mkNR "vânt" ;
   wing_N = mkN "aripă" ;
   worm_N = mkN "vierme" masculine;
-  year_N = mkN "an" masculine;
+  year_N = mkN "an" "ani" masculine;
   bite_V2 = dirV2 (v_besch22 "muşca") ;
   blow_V = v_besch55 "sufla" ; 
   breathe_V = v_besch17 "respira" ;
diff --git a/lib/src/romanian/MorphoRon.gf b/lib/src/romanian/MorphoRon.gf
--- a/lib/src/romanian/MorphoRon.gf
+++ b/lib/src/romanian/MorphoRon.gf
@@ -294,7 +294,11 @@
      in
      mkAdjSpec s f pl plf;
  
- 
+oper adjNat : Str -> Adj = \s ->
+  let f = Predef.tk 2 s + "en" 
+      in
+     mkAdjSpec s (s+"ă") (f+"i") (f+"e");
+
  -- the phonetical mutations that occur in Romanian (Singular Masculine -> Singular Feminine) are 
  -- o -> oa  (Ex : frumos -> frumoasă)
  -- e -> ea / ie -> ia (Ex : des -> deasă)
@@ -434,6 +438,7 @@
   x + "e"   => adjMare s;
   x + "iu"  => adjAuriu s;
   x + "el"  => adjDimin s;
+  x + "an"  => adjNat s;
   _         => mkAdjSpec s (mkFemSg radF) (mkStemPlReg rad) (mkFemAdj rad)
  
  };
diff --git a/lib/src/romanian/NounRon.gf b/lib/src/romanian/NounRon.gf
--- a/lib/src/romanian/NounRon.gf
+++ b/lib/src/romanian/NounRon.gf
@@ -9,7 +9,7 @@
         n = det.n;
         gg = agrGender cn.g n ;
         ag = agrP3 gg n ;
-        hr = orB (andB (getClit cn.a) det.hasRef) (andB det.isDef cn.isComp);
+        hr = orB cn.needsRefForm  (andB (getClit cn.a) (orB det.hasRef (andB det.isDef cn.isComp)));
         nf = if_then_else NForm hr HasClit (HasRef False);
         st= if_then_else Species det.isDef Def Indef;
         rs = if_then_else Species det.hasRef Def Indef
@@ -23,6 +23,7 @@
                    };
         a = ag ;
         nForm = nf;
+        isPol = False;
         isPronoun = False;
         indForm = det.s ! gg ! No ++ det.size ++cn.s ! n ! rs ! ANomAcc ++ det.post ! gg ! No 
              
@@ -39,7 +40,7 @@
                    
         a = ag;
         nForm = if_then_else NForm hc HasClit (HasRef False) ;
-        isPronoun = False ;
+        isPronoun = False ; isPol = False;
         indForm = pn.s ! No
         } ;
 
@@ -47,6 +48,7 @@
                            clit = (genCliticsCase p.a c).s } ;
                 nForm = HasClit;
                 isPronoun = True ;
+                isPol = p.isPol ;
                 a = p.a;
                 indForm = p.s ! Ac
                };
@@ -58,7 +60,7 @@
                     clit = (np.s ! c).clit };
         a = np.a ;
         nForm = np.nForm ;
-        isPronoun = False ;
+        isPronoun = False ; isPol = False;
         indForm = pred.s ! aagr (np.a.g) (np.a.n) ! ANomAcc ++ (np.s ! pred.c).comp
    } ;
 
@@ -145,8 +147,8 @@
 -- assume that it refers to people
 
     PossPron p = {
-      s = \\_,n,g,c =>  p.poss ! n ! g ; 
-      sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ; 
+      s = \\_,n,g,c =>  p.poss ! n ! g ! c; 
+      sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ! c ; 
       isDef = True ;
       isPost = True ;
       hasRef = True
@@ -224,13 +226,14 @@
                       clit = \\cs => []  } ;
         a = agrP3 g n ;
         nForm = HasRef False ;
+        isPol = False;
         isPronoun = False ;
         indForm = cn.s ! n ! Indef ! ANomAcc
         } ;
 
 -- This is based on record subtyping.
 
-    UseN, UseN2 = \noun -> noun ** {isComp = False};
+    UseN, UseN2 = \noun -> noun ** {isComp = False; needsRefForm = False};
 
     Use2N3 f = f ;
 
@@ -240,7 +243,8 @@
       s = \\n,sp,c => f.s ! n ! sp ! c ++ appCompl f.c2 x ;
       g = f.g ;
       a = f.a ;
-      isComp = getClit f.a
+      needsRefForm = False ;  
+      isComp = False
       } ;
 
     ComplN3 f x = {
@@ -248,7 +252,8 @@
       g = f.g ;
       c2 = f.c3;
       a = f.a ;
-      isComp = getClit f.a
+      needsRefForm = False ;  
+      isComp = False
       } ;
 
     AdjCN ap cn = 
@@ -263,7 +268,8 @@
                  };
         g = g ;
         a = cn.a ;
-        isComp = getClit cn.a  
+        needsRefForm = cn.needsRefForm ;
+        isComp = True  
         } ;
 
 
@@ -271,28 +277,32 @@
       s = \\n,sp,c => cn.s ! n ! sp ! c ++ rs.s ! Indic ! agrP3 (agrGender cn.g n) n ;
       g = cn.g  ;
       a = cn.a ;
-      isComp = False  
+      needsRefForm = cn.needsRefForm;
+      isComp = True  
       } ;
 
     SentCN  cn sc = let g = cn.g in {
       s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
       g = g ;
       a = cn.a ;
-      isComp = False
+      needsRefForm = cn.needsRefForm;
+      isComp = True
       } ;
 
     AdvCN  cn sc = let g = cn.g in {
       s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
       g = g;
       a = cn.a ;
-      isComp = False
+      needsRefForm = cn.needsRefForm; 
+      isComp = True
       } ;
 
     ApposCN  cn np = let g = cn.g in {
       s = \\n,sp,c => cn.s ! n ! sp ! c ++ (np.s ! No).comp ;
       g = g;
       a = cn.a ;
-      isComp = False
+      needsRefForm = cn.needsRefForm;
+      isComp = True
       } ;
 
 
diff --git a/lib/src/romanian/NumeralRon.gf b/lib/src/romanian/NumeralRon.gf
--- a/lib/src/romanian/NumeralRon.gf
+++ b/lib/src/romanian/NumeralRon.gf
@@ -9,7 +9,7 @@
 lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
 lincat Sub10 = {s : CardOrd => DForm => Placement => Str ; size : Size} ;
 lincat Sub100 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
-lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
+lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size } ;
 lincat Sub1000000 = { s : CardOrd => NumF => Placement => Str; size : Size } ;
 
 
@@ -174,12 +174,11 @@
               NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ; 
               NOrd g  => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)       
              };
-                     
   size = pl} ;
              
 lin pot2plus d e = 
   {s = \\c,f,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ++ e.s ! c ! f ! attr ;    
-   size = pl} ;
+   size = e.size} ;
 
 lin pot2as3 n = n ;
  
@@ -193,8 +192,8 @@
 
 
 lin pot3plus n m = 
- {s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep)  ++ m.s ! c ! f ! attr;                   
-  size = pl                              
+ {s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep)  ++ m.s ! c ! f ! attr;                  
+  size = m.size                              
    };
 
 oper mksute : Size -> Str = \sz -> table {sg => "sută" ; _ => "sute" } ! sz ; 
diff --git a/lib/src/romanian/ParadigmsRon.gf b/lib/src/romanian/ParadigmsRon.gf
--- a/lib/src/romanian/ParadigmsRon.gf
+++ b/lib/src/romanian/ParadigmsRon.gf
@@ -54,7 +54,9 @@
   Acc : NCase ;
   Dat : NCase ;
   Gen : NCase ;
- mkPrep : overload {   
+  Nom : NCase ;
+ 
+mkPrep : overload {   
   mkPrep : Str -> NCase-> Bool -> Prep ;
   mkPrep : Str -> NCase -> Prep; 
  };
@@ -62,8 +64,28 @@
 
 --2 Nouns
 
+ mkN = overload {
+    mkN : Str -> N -- Singular, infers gender and Plural 
+    = mkSPN; 
+    mkN : Str -> Str -> NGender -> N -- worst case: Singular + Plural + gender
+    = mkNI; 
+    mkN : Str -> Str -> Str -> N -- very irregular nouns - feminine 
+    = mkVI; 
+    mkN : Str -> Str -> N -- Singular + Plural, infers gender
+    = mkNN; 
+    mkN : Str -> NGender -> N -- Singular +  gender, infers Plural 
+    = regN;  
+ } ; 
 
+--because the plurals ending in "uri" are becoming less and less frequent for neuter nouns,
+--and because there is no way of infering the plural form by looking at the structure of the word
+--we treat this case separately :
+   
+mkNR : Str -> N;
+mkNR s = mkInanimate (mkNomNeut s) ** {lock_N = <>} ;
 
+
+
 --3 Relational nouns 
 -- 
 -- Relational nouns need a noun and a preposition. 
@@ -84,13 +106,18 @@
 -- feminine is used for strings ending with "e", the masculine for other strings.
 
   mkPN  = overload {
-    mkPN : Str -> PN = mkPropN ;
-    mkPN : Str -> Str -> Gender -> Number -> PN = mkPropNI ;
-    mkPN : Str -> Gender -> PN = mkPropNoun ;
-    mkPN : Str -> Gender -> Number -> PN = mkProperNoun;  
+    mkPN : Str -> PN 
+    = mkPropN ;
+    mkPN : Str -> Str -> Gender -> Number -> PN 
+    = mkPropNI ;
+    mkPN : Str -> Gender -> PN 
+    = mkPropNoun ;
+    mkPN : Str -> Gender -> Number -> PN 
+    = mkProperNoun;  
    } ;
 
-mkInAn : PN -> PN = \romania ->
+mkInAn : PN -> PN
+   = \romania ->
    {s = table {No | Ac | Vo => romania.s ! No ;
                _ => case romania.g of
                        { Fem => romania.s ! Ge ;
@@ -101,24 +128,27 @@
     lock_PN = <>
     };
 
-mkPropNI : Str -> Str -> Gender -> Number -> PN =
-\romania, romaniei,g,n ->
+mkPropNI : Str -> Str -> Gender -> Number -> PN --% 
+ = \romania, romaniei,g,n ->
 {s = table {Ge | Da => romaniei;
             _       => romania  };
 g = g; n = n;
 a = Inanimate;
 lock_PN = <>
 };
-mkPropN : Str -> PN = \Ion ->
+mkPropN : Str -> PN --%
+ = \Ion ->
 case last Ion of
 { "a" => mkPropNoun Ion Feminine ;
    _  => mkPropNoun Ion Masculine
 };
 
-mkPropNoun : Str -> Gender -> PN = \Ion, gen ->
+mkPropNoun : Str -> Gender -> PN 
+= \Ion, gen ->
  mkProperNoun Ion gen singular ;
 
-mkProperNoun : Str -> Gender -> Number -> PN = \Ion, gen, num ->
+mkProperNoun : Str -> Gender -> Number -> PN --%
+= \Ion, gen, num ->
 {s = table {No => Ion;
             Ac => Ion;
             Ge => case <last Ion,gen> of
@@ -137,8 +167,19 @@
 };
 
 
+--3 Adjectives
+--
+mkA = overload {
+   mkA : Str -> A -- regular adjectives 
+   = regA; 
+   mkA : Str -> Str -> Str -> Str -> Str -> A --worst case -- all 4 forms are needed + form for adverb
+   = mk5A ; 
+   mkA : Str -> Str -> Str -> Str -> A -- 4 forms are needed 
+   = mk4A; 
+};
 
 
+
 --3 Two-place adjectives
 --
 -- Two-place adjectives need a preposition for their second argument.
@@ -146,6 +187,26 @@
  mkA2 : A -> Prep -> A2 ;
  mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
 
+ mkV : Str -> V 
+ = \s -> mkNV (regV s) ; 
+
+
+
+  mkV2S : V -> Prep -> V2S ;  
+  mkV2V : V -> Prep -> Prep -> V2V ;
+  mkVA  : V -> VA ;
+  mkV2A : V -> Prep -> Prep -> V2A ;
+  mkVQ  : V -> VQ ;
+  mkV2Q : V -> Prep -> V2Q ;
+
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> Prep -> AV ; --%
+  mkA2V : A -> Prep -> Prep -> A2V ; --%
+
+
+
+
 --.
 --2 Definitions of the paradigms
 
@@ -173,7 +234,7 @@
   Acc = Ac ;
   Dat = Da ;
   Gen = Ge ;
-  
+  Nom = No ; 
   
   Preposition = Compl ;
 
@@ -206,7 +267,7 @@
 regN s g = mkInanimate (mkNomReg s g) ** {lock_N = <>};
              
 
-mkVI : Str -> Str -> Str -> N;
+mkVI : Str -> Str -> Str -> N ;
 mkVI s ss sss = mkInanimate (mkNomVIrreg s ss sss) ** {lock_N = <>};
 
 mkIn : N -> N ;
@@ -242,28 +303,9 @@
                           }
      };
 
- mkN = overload {
-    mkN : Str -> Str -> NGender -> N = mkNI; -- worst case - we need Singular + Plural form + gender
-    mkN : Str -> Str -> Str -> N = mkVI; -- very irregular nouns - feminine
-    mkN : Str -> Str -> N = mkNN; -- needed Singular + Plural form, infers gender
-    mkN : Str -> NGender -> N = regN;  -- needed Singular +  gender, infers Plural form
-    mkN : Str -> N = mkSPN; -- needed Singular form, infers gender and Plural form
- } ; 
 
---because the plurals ending in "uri" are becoming less and less frequent for neuter nouns,
---and because there is no way of infering the plural form by looking at the structure of the word
---we treat this case separately :
-   
-mkNR : Str -> N;
-mkNR s = mkInanimate (mkNomNeut s) ** {lock_N = <>} ;
-
 --------------------------------------------------------------------
 
-mkA = overload {
-   mkA : Str -> Str -> Str -> Str -> Str -> A = mk5A ;--worst case -- all 4 forms are needed + form for adverb
-   mkA : Str -> Str -> Str -> Str -> A = mk4A; -- 4 forms are needed
-   mkA : Str -> A = regA; -- regular adjectives
-};
 
 mk4A : Str -> Str -> Str -> Str -> A;
 mk4A a b c d =  
@@ -341,23 +383,7 @@
   x + "î"   => mkV141 s
 };
 
-oper mkV : Str -> V = \s -> mkNV (regV s) ; 
-
-
-
-  mkV2S : V -> Prep -> V2S ;  
-  mkV2V : V -> Prep -> Prep -> V2V ;
-  mkVA  : V -> VA ;
-  mkV2A : V -> Prep -> Prep -> V2A ;
-  mkVQ  : V -> VQ ;
-  mkV2Q : V -> Prep -> V2Q ;
-
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> Prep -> AV ;
-  mkA2V : A -> Prep -> Prep -> A2V ;
-
-
+oper 
   mmkV3 : V -> Prep -> Prep -> V3;
   mmkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
   
@@ -466,7 +492,7 @@
 a = ag ;
 indForm = cineva ;
 nForm = HasClit ;
-isPronoun = False ;
+isPronoun = False ; isPol = False;
 lock_NP = <>
 } ;
 
@@ -481,7 +507,7 @@
             };
  a = ag ;
  indForm = cineva ;
- isPronoun = False ;
+ isPronoun = False ; isPol = False;
  nForm = HasRef b ;
 lock_NP = <>
 };
@@ -500,7 +526,7 @@
             };
  a = ag;
  nForm = HasRef b;
- isPronoun = False ;
+ isPronoun = False; isPol = False; 
  indForm = om ;
 lock_NP = <>
 };
@@ -514,9 +540,15 @@
                } ; 
          c1 = \\c => (cliticsAc g n p).s ! c ; c2 = \\c => (cliticsDa g n p).s ! c ;
          a = {g = g ; n = n ; p = p} ;
-         poss = table {Sg => table {Masc => meuP ; Fem => mea};
-                       Pl => table {Masc => mei ; Fem => mele}
-                      }; 
+         poss = \\n,g,c => case <n,g,c> of
+                 {<Sg,Masc,AGenDat> => meuP ;
+                  <Sg,Masc,_> => meuP ;
+                  <Sg,Fem,AGenDat> => mele ;
+                  <Sg,Fem,_> => mea;
+                  <Pl,Masc,_> => mei;
+                  <Pl,Fem,_> => mele
+                   } ; 
+         isPol = False;
          lock_Pron = <>};
 
 
diff --git a/lib/src/romanian/QuestionRon.gf b/lib/src/romanian/QuestionRon.gf
--- a/lib/src/romanian/QuestionRon.gf
+++ b/lib/src/romanian/QuestionRon.gf
@@ -18,7 +18,7 @@
     QuestVP qp vp = {
       s = \\t,a,b,_ => 
         let
-          cl = mkClause (qp.s ! No) (agrP3 qp.a.g qp.a.n) vp  
+          cl = mkClause (qp.s ! No) False (agrP3 qp.a.g qp.a.n) vp  
         in
         cl.s ! DDir ! t ! a ! b ! Indic
       } ;   
@@ -41,7 +41,7 @@
             let 
               ord = case q of {
                 QDir   => DInv ;
-                QIndir => DDir
+                QIndir => DInv --- DDir
               } ;
               cls = cl.s ! ord ! t ! a ! p ! Indic ;
               why = iadv.s
@@ -52,7 +52,7 @@
       s = \\t,a,p,_ => 
             let 
               vp  = predV copula ;
-              cls = (mkClause (np.s ! No).comp np.a vp).s ! 
+              cls = (mkClause (np.s ! No).comp np.isPol np.a vp).s ! 
                        DInv ! t ! a ! p ! Indic ;
               why = icomp.s ! {g = np.a.g ; n = np.a.n}
             in why ++ cls
@@ -100,7 +100,7 @@
       n = n
       } ;
 
-
+    AdvIAdv i a = {s = i.s ++ a.s} ;    
 
     CompIAdv a = {s = \\_  => a.s} ;
 
diff --git a/lib/src/romanian/RelativeRon.gf b/lib/src/romanian/RelativeRon.gf
--- a/lib/src/romanian/RelativeRon.gf
+++ b/lib/src/romanian/RelativeRon.gf
@@ -16,11 +16,13 @@
       True => {s = \\ag =>
           (mkClause 
                     (rp.s ! {g = ag.g ; n = ag.n} ! No) 
+                    False
                     {g = rp.a.g ; n = rp.a.n ; p = P3}
                     vp).s ! DDir ; c = No} ;
       False => {s = \\ag =>
           (mkClause
                     (rp.s  ! {g = ag.g ; n = ag.n} ! No) 
+                    False
                     ag
                     vp).s ! DDir ; c = No
          }
diff --git a/lib/src/romanian/ResRon.gf b/lib/src/romanian/ResRon.gf
--- a/lib/src/romanian/ResRon.gf
+++ b/lib/src/romanian/ResRon.gf
@@ -329,8 +329,9 @@
                       a : Agr ; 
                       indForm : Str ; --needed for prepositions that demand the indefinite form of a NP  
                       nForm : NForm ; -- indicates the presence of clitic doubling and referential form
-                      isPronoun : Bool -- in the case of pronouns, just the clitics are used, and not the comp form
-                     } ;   
+                      isPronoun : Bool ; -- in the case of pronouns, just the clitics are used, and not the comp form
+                      isPol : Bool -- needed for the agreement of the polite pronoun, singular form
+                      } ;   
  VerbPhrase :Type = {
       s : VForm => Str ;
       isRefl : Agr => RAgr ;             -- the clitics for reflexive verbs
@@ -512,9 +513,9 @@
 
 -- clause building function :
 
- mkClause : Str ->  Agr -> VerbPhrase -> 
+ mkClause : Str ->  Bool -> Agr -> VerbPhrase -> 
     {s : Direct => RTense => Anteriority => Polarity => Mood => Str} =
-    \subj,agr,vpr -> {
+    \subj,isPol,agr,vpr -> {
       s = \\d,t,a,b,m => 
         let 
           tm = case t of {
@@ -533,9 +534,12 @@
           sa    = (vp.s ! VPFinite tm a ).sa ; 
           verb  = vps ! agr ; 
           neg   = vp.neg ! b ;
-          clpr  = flattenClitics vpr.nrClit vpr.clAcc vpr.clDat (vpr.isRefl ! agr) (andB vpr.isFemSg cmp) cmp vpr.pReflClit; 
-          compl = vp.comp ! agr ++ vp.ext ! b
-        in
+          clpr  = flattenClitics vpr.nrClit vpr.clAcc vpr.clDat (vpr.isRefl ! agr) (andB vpr.isFemSg cmp) cmp vpr.pReflClit;   
+          compl = case isPol of {
+            True => vp.comp ! {g = agr.g ; n = Sg ; p = agr.p} ;
+            _ => vp.comp ! agr
+            } ++ vp.ext ! b         
+in
         case d of {
           DDir => 
             subj ++ sa ++ neg ++ clpr.s1 ++ verb ++ clpr.s2;
@@ -554,8 +558,8 @@
                                   _       => [] }};
     a = np.a ;
     indForm = np.ss ; 
-    nForm = np.hasClit;
-    isPronoun = False  
+    nForm = np.hasClit ;
+    isPronoun = False ;isPol = False 
     } ;
  
  genForms : Str -> Str -> Gender => Str = \bon,bonne ->
diff --git a/lib/src/romanian/SentenceRon.gf b/lib/src/romanian/SentenceRon.gf
--- a/lib/src/romanian/SentenceRon.gf
+++ b/lib/src/romanian/SentenceRon.gf
@@ -4,9 +4,9 @@
   flags optimize=all_subs ;
 
   lin
-    PredVP np vp = mkClause (np.s ! No).comp np.a vp ;
+    PredVP np vp = mkClause (np.s ! No).comp np.isPol np.a vp ;
 
-    PredSCVP sc vp = mkClause sc.s (agrP3 Masc Sg) vp ;
+    PredSCVP sc vp = mkClause sc.s False (agrP3 Masc Sg) vp ;
 
     ImpVP vpr = let agSg = {n = Sg ; g = Masc ; p = P2 } ;
                     agPl = {n = Pl ; g = Masc ; p = P2 } ;
@@ -40,8 +40,8 @@
             bcond = andB vp.needClit bb
             in
             case <bcond,v2.c2.isDir> of
-             {<True, Dir pc> => (mkClause (np.s ! No).comp np.a (putClit (agrP3 ag.g ag.n) pc vp)).s ;
-              _      => (mkClause (np.s ! No).comp np.a vp).s
+             {<True, Dir pc> => (mkClause (np.s ! No).comp np.isPol np.a (putClit (agrP3 ag.g ag.n) pc vp)).s ;
+              _      => (mkClause (np.s ! No).comp np.isPol np.a vp).s
               };
               c2 = v2.c2
       } ;
@@ -60,7 +60,7 @@
     SlashVS np vs slash = 
       {s = \\bb,ag =>
         (mkClause
-          (np.s ! No).comp np.a
+          (np.s ! No).comp np.isPol np.a
           (insertExtrapos (\\b => conjThat ++ slash.s !  ag ! (vs.m ! b))
             (predV vs))
         ).s ;
diff --git a/lib/src/romanian/StructuralRon.gf b/lib/src/romanian/StructuralRon.gf
--- a/lib/src/romanian/StructuralRon.gf
+++ b/lib/src/romanian/StructuralRon.gf
@@ -244,10 +244,14 @@
   youSg_Pron = mkPronoun 
     "tu" "tine" "ţie" [] "tu" "tău" "ta" "tăi" "tale"  
         Masc Sg P2 ;
-  youPl_Pron, youPol_Pron = 
+  youPl_Pron =  
     mkPronoun
       "voi" "voi" "vouă" [] "voi" "vostru" "voastră" "voştri" "voastre"  
          Masc Pl P2 ;
+  youPol_Pron = let dvs = mkPronoun "dumneavoastră" "dumneavoastră" "dumneavoastră" [] "dumneavoastră" "dumneavoastră" "dumneavoastră" "dumneavoastră" "dumneavoastră" Masc Pl P2 
+             in 
+            {s = dvs.s; c1 = dvs.c1; 
+                c2 = dvs.c2; a = dvs.a; isPol = True; poss = dvs.poss} ; 
 
  not_Predet = {s = \\a,c => "nu" ; c = No} ;
 
diff --git a/lib/src/romanian/SymbolRon.gf b/lib/src/romanian/SymbolRon.gf
--- a/lib/src/romanian/SymbolRon.gf
+++ b/lib/src/romanian/SymbolRon.gf
@@ -1,77 +1,77 @@
---# -path=.:../abstract:../common:../prelude
-concrete SymbolRon of Symbol = 
-  CatRon ** open Prelude, ResRon in {
-
-lin
-  SymbPN i = mkSymb i.s ;
-  IntPN i  = mkSymb i.s ;
-  FloatPN i = mkSymb i.s ;
-  NumPN i  = mkSymb (i.sp ! Masc) ;
-
-  CNIntNP cn i = let gg = agrGender cn.g Sg in
-  heavyNP {
-    s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.s ;
-    a = agrP3 gg Sg ;
-    hasClit = HasRef False ;
-    ss = cn.s ! Sg ! Def ! ANomAcc ++ i.s 
-    } ;
-   
-  CNSymbNP det cn xs = let gg = agrGender cn.g det.n;
-                           st = if_then_else Species det.isDef Def Indef;
-                           rs = if_then_else Species det.hasRef Def Indef;
-                           ag = agrP3 gg det.n ;
-                           hr = andB (getClit cn.a) det.hasRef;
-                           nf = if_then_else NForm hr HasClit (HasRef False)
-                        in                               
-    {s = \\c => case c of 
-                 {Vo =>
-                   {comp = det.s ! gg ! No ++ det.size ++ cn.s ! det.n ! st ! ANomAcc ++ det.post ! gg ! No  ;
-                    clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] };
-                  _ => {comp = det.s ! gg ! c ++ det.size ++ cn.s ! det.n ! st ! (convCase c) ++ det.post ! gg ! c  ;
-                    clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] }  
-                    };
-     a = ag ;
-     nForm = nf ;
- 
-     isPronoun = False ;
-     indForm = det.s ! gg ! No ++ det.size ++cn.s ! det.n ! rs ! ANomAcc 
-   } ;   
-    
-  CNNumNP cn i = let gg = agrGender cn.g Sg in 
-    heavyNP {
-    s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.sp ! gg;
-    a = agrP3 gg Sg ;
-    hasClit = HasRef False ;
-    ss = cn.s ! Sg ! Def ! ANomAcc ++ i.sp ! gg
-    } ;
-  SymbS sy = {s = \\_ => sy.s} ;
-
-  SymbNum nn = {s,sp = \\_ => nn.s ; n = Pl; size = less20} ; -- need to know the size of the symbol to properly set it to less20 or plural
-  SymbOrd nn = {s = \\n,g,nc => case nc of
-                      {Da | Ge => artDem g n AGenDat ++ "de-" ++ artPos g n ANomAcc ++ nn.s ++ "-lea";
-                       _       => artPos g n ANomAcc ++ nn.s ++ "-lea"  
-                      };
-               isPre = True       
-                      } ;
-
-lincat 
-
-  Symb, [Symb] = SS ;
-
-lin
-
-  MkSymb s = s ;
-
-  BaseSymb = infixSS "ºi" ; 
-  ConsSymb = infixSS "," ;
-
-oper mkSymb : Str -> PN = \ss ->
-{ s = \\c => case c of 
-      {Da | Ge => "lui" ++ ss;
-       _       => ss 
-       };
- g = Masc; n = Sg; a = Animate ;
- lock_PN = <>
-};
-  
-}
+--# -path=.:../abstract:../common:../prelude
+concrete SymbolRon of Symbol = 
+  CatRon ** open Prelude, ResRon in {
+
+lin
+  SymbPN i = mkSymb i.s ;
+  IntPN i  = mkSymb i.s ;
+  FloatPN i = mkSymb i.s ;
+  NumPN i  = mkSymb (i.sp ! Masc) ;
+
+  CNIntNP cn i = let gg = agrGender cn.g Sg in
+  heavyNP {
+    s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.s ;
+    a = agrP3 gg Sg ;
+    hasClit = HasRef False ;
+    ss = cn.s ! Sg ! Def ! ANomAcc ++ i.s 
+    } ;
+   
+  CNSymbNP det cn xs = let gg = agrGender cn.g det.n;
+                           st = if_then_else Species det.isDef Def Indef;
+                           rs = if_then_else Species det.hasRef Def Indef;
+                           ag = agrP3 gg det.n ;
+                           hr = andB (getClit cn.a) det.hasRef;
+                           nf = if_then_else NForm hr HasClit (HasRef False)
+                        in                               
+    {s = \\c => case c of 
+                 {Vo =>
+                   {comp = det.s ! gg ! No ++ det.size ++ cn.s ! det.n ! st ! ANomAcc ++ det.post ! gg ! No  ;
+                    clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] };
+                  _ => {comp = det.s ! gg ! c ++ det.size ++ cn.s ! det.n ! st ! (convCase c) ++ det.post ! gg ! c  ;
+                    clit = \\cs => if_then_Str hr ((genCliticsCase ag c).s ! cs) [] }  
+                    };
+     a = ag ;
+     nForm = nf ;
+     isPol = False ;
+     isPronoun = False ;
+     indForm = det.s ! gg ! No ++ det.size ++cn.s ! det.n ! rs ! ANomAcc 
+   } ;   
+    
+  CNNumNP cn i = let gg = agrGender cn.g Sg in 
+    heavyNP {
+    s = \\c => cn.s ! Sg ! Def ! (convCase c) ++ i.sp ! gg;
+    a = agrP3 gg Sg ;
+    hasClit = HasRef False ;
+    ss = cn.s ! Sg ! Def ! ANomAcc ++ i.sp ! gg
+    } ;
+  SymbS sy = {s = \\_ => sy.s} ;
+
+  SymbNum nn = {s,sp = \\_ => nn.s ; n = Pl; size = less20} ; -- need to know the size of the symbol to properly set it to less20 or plural
+  SymbOrd nn = {s = \\n,g,nc => case nc of
+                      {Da | Ge => artDem g n AGenDat ++ "de-" ++ artPos g n ANomAcc ++ nn.s ++ "-lea";
+                       _       => artPos g n ANomAcc ++ nn.s ++ "-lea"  
+                      };
+               isPre = True       
+                      } ;
+
+lincat 
+
+  Symb, [Symb] = SS ;
+
+lin
+
+  MkSymb s = s ;
+
+  BaseSymb = infixSS "și" ; 
+  ConsSymb = infixSS "," ;
+
+oper mkSymb : Str -> PN = \ss ->
+{ s = \\c => case c of 
+      {Da | Ge => "lui" ++ ss;
+       _       => ss 
+       };
+ g = Masc; n = Sg; a = Animate ;
+ lock_PN = <>
+};
+  
+}
diff --git a/lib/src/romanian/VerbRon.gf b/lib/src/romanian/VerbRon.gf
--- a/lib/src/romanian/VerbRon.gf
+++ b/lib/src/romanian/VerbRon.gf
@@ -168,6 +168,7 @@
     UseComp comp = insertSimpObj comp.s copula ;
 
     CompAP ap = {s = \\ag => ap.s ! AF ag.g ag.n Indef ANomAcc} ;
+    CompCN cn = { s = \\ag => cn.s ! ag.n ! Indef ! ANomAcc }; --- RE 7/12/2010
     CompNP np = {s = \\_  => (np.s ! No).comp} ;
     CompAdv a = {s = \\_  => a.s} ;
 
diff --git a/lib/src/russian/ParadigmsRus.gf b/lib/src/russian/ParadigmsRus.gf
--- a/lib/src/russian/ParadigmsRus.gf
+++ b/lib/src/russian/ParadigmsRus.gf
@@ -197,9 +197,7 @@
 -- Inherent aspect should also be specified.
 
 --   mkVerbum : Aspect -> (presentSgP1,presentSgP2,presentSgP3,
-   mkV : Aspect -> (presentSgP1,presentSgP2,presentSgP3,
-                         presentPlP1,presentPlP2,presentPlP3,
-                         pastSgMasculine,imperative,infinitive: Str) -> V ;
+   mkV : Aspect -> (presSg1,presSg2,presSg3,presPl1,presPl2,presPl3,pastSgMasc,imp,inf: Str) -> V ;
 
 -- Common conjugation patterns are two conjugations: 
 --  first - verbs ending with "-ать/-ять" and second - "-ить/-еть".
@@ -212,8 +210,7 @@
 -- So the definition for verb "любить"  looks like:
 -- regV Imperfective Second "люб" "лю" "любил" "люби" "любить";
 
-   regV :Aspect -> Conjugation -> (stemPresentSgP1,endingPresentSgP1,
-                         pastSgP1,imperative,infinitive : Str) -> V ; 
+   regV :Aspect -> Conjugation -> (stemPresSg1,endPresSg1,pastSg1,imp,inf : Str) -> V ; 
 
 
 -- Two-place verbs, and the special case with direct object. Notice that
diff --git a/lib/src/russian/QuestionRus.gf b/lib/src/russian/QuestionRus.gf
--- a/lib/src/russian/QuestionRus.gf
+++ b/lib/src/russian/QuestionRus.gf
@@ -67,6 +67,8 @@
      c = kakoj.c 
     } ;
 
+    AdvIAdv i a = {s = i.s ++ a.s} ;
+
     CompIAdv a = a ;
     CompIP ip = {s = ip.s ! PF Nom No NonPoss} ;
 }
diff --git a/lib/src/russian/VerbRus.gf b/lib/src/russian/VerbRus.gf
--- a/lib/src/russian/VerbRus.gf
+++ b/lib/src/russian/VerbRus.gf
@@ -82,6 +82,51 @@
       s3 = \\g,n=> ""
     } ;
 
+-- AR 7/12/2010 --- hmmm
+  CompCN zloj ={
+ s= \\clf,gn,p => 
+   let num = numGenNum gn ;
+       zlojsg = zloj.s ! NF Sg Nom ;
+       zlojpl = zloj.s ! NF Pl Nom
+   in
+   case clf of { 
+-- person is ignored !
+       ClInfinit => "быть" ++ zloj.s ! NF Sg Inst ; 
+        ClImper => case gn of 
+          {  (GSg _) => "будь" ++ zloj.s ! NF Sg Inst ;
+             GPl => "будьте" ++ zloj.s ! NF Pl Inst  
+          };  
+-- infinitive does not save GenNum, 
+-- but indicative does for the sake of adjectival predication !
+        ClIndic Present _ =>  zloj.s ! NF num Nom ;
+        ClIndic PastRus _ => case gn of
+       { (GSg Fem)   => "была" ++ zlojsg ;
+          (GSg Masc)  => "был" ++ zlojsg ;
+          (GSg Neut)   => "был" ++ zlojsg ;
+           GPl => "были" ++ zlojpl
+       };
+       ClIndic Future _ => case gn of 
+       { GPl => case p of 
+          { P3 => "будут" ++ zlojpl ;
+            P2 => "будете" ++ zlojpl ;
+            P1 => "будем" ++ zlojpl
+          } ;
+         (GSg _) => case p of 
+         {P3 => "будет" ++ zlojsg  ;
+          P2 => "будешь"++ zlojsg ;
+          P1=> "буду" ++ zlojsg 
+        }
+      };
+       ClCondit => ""
+      } ;        
+
+      asp = Imperfective ;      
+      w = Act;
+      negBefore = True;
+      s2 = "";
+      s3 = \\g,n=> ""
+    } ;
+
 
 -- Verb phrases can also be formed from adjectives (" молод"),
 -- common nouns (" человек"), and noun phrases (" самый молодой").
diff --git a/lib/src/scandinavian/AdjectiveScand.gf b/lib/src/scandinavian/AdjectiveScand.gf
--- a/lib/src/scandinavian/AdjectiveScand.gf
+++ b/lib/src/scandinavian/AdjectiveScand.gf
@@ -54,6 +54,11 @@
       isPre = ap.isPre
       } ;
 
+    AdvAP ap adv = {
+      s = \\a => ap.s ! a ++ adv.s ;
+      isPre = ap.isPre
+      } ;
+
     UseA2 a = {
       s = \\ap => a.s ! AF (APosit ap) Nom ;
       isPre = True
diff --git a/lib/src/scandinavian/AdverbScand.gf b/lib/src/scandinavian/AdverbScand.gf
--- a/lib/src/scandinavian/AdverbScand.gf
+++ b/lib/src/scandinavian/AdverbScand.gf
@@ -15,6 +15,10 @@
 
     AdAdv = cc2 ;
 
+    PositAdAAdj a = {
+      s = a.s ! adverbForm
+      } ;
+
     SubjS subj s = {
       s = subj.s ++ s.s ! Sub
       }  ;
diff --git a/lib/src/scandinavian/CatScand.gf b/lib/src/scandinavian/CatScand.gf
--- a/lib/src/scandinavian/CatScand.gf
+++ b/lib/src/scandinavian/CatScand.gf
@@ -52,7 +52,7 @@
       n3 : Agr => Str ;  -- object-control complement
       c2 : Complement
       } ;
-    Comp = {s : AFormPos => Str} ; 
+    Comp = {s : Agr => Str} ; 
 
 
 -- Adjective
diff --git a/lib/src/scandinavian/CommonScand.gf b/lib/src/scandinavian/CommonScand.gf
--- a/lib/src/scandinavian/CommonScand.gf
+++ b/lib/src/scandinavian/CommonScand.gf
@@ -65,7 +65,7 @@
 
   VType = VAct | VPass | VRefl ;
 
-  NPForm = NPNom | NPAcc | NPPoss GenNum ;
+  NPForm = NPNom | NPAcc | NPPoss GenNum Case ;
 
   RCase = RNom | RGen | RPrep Bool ;
 
@@ -82,7 +82,7 @@
   accusative : NPForm = NPAcc ;
 
   caseNP : NPForm -> Case = \np -> case np of {
-    NPPoss _ => Gen ;
+    NPPoss _ _ => Gen ;
     _ => Nom
     } ;
 
@@ -224,7 +224,7 @@
     s = table {
       NPNom => du ;
       NPAcc => dig ;
-      NPPoss h => gennumForms din ditt dina ! h
+      NPPoss h c => mkCase c (gennumForms din ditt dina ! h)
       } ;
     a = {
       g = g ;
diff --git a/lib/src/scandinavian/ConjunctionScand.gf b/lib/src/scandinavian/ConjunctionScand.gf
--- a/lib/src/scandinavian/ConjunctionScand.gf
+++ b/lib/src/scandinavian/ConjunctionScand.gf
@@ -21,6 +21,12 @@
       c = ss.c
       } ;
 
+    ConjIAdv = conjunctDistrSS ;   
+
+    ConjCN co ns = conjunctDistrTable3 Number DetSpecies Case co ns ** 
+      {g = neutrum ; isMod = False} ; ----
+
+
 -- These fun's are generated from the list cat's.
 
     BaseS = twoTable Order ;
@@ -33,12 +39,18 @@
     ConsAP xs x = consrTable AFormPos comma xs x ** {isPre = andB xs.isPre x.isPre} ;
     BaseRS x y = twoTable Agr x y ** {c = y.c} ;
     ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ;
+    BaseIAdv = twoSS ;
+    ConsIAdv = consrSS comma ;
+    BaseCN = twoTable3 Number DetSpecies Case ;
+    ConsCN = consrTable3 Number DetSpecies Case comma ;
 
   lincat
     [S] = {s1,s2 : Order => Str} ;
     [Adv] = {s1,s2 : Str} ;
+    [IAdv] = {s1,s2 : Str} ;
     [NP] = {s1,s2 : NPForm => Str ; a : Agr} ;
     [AP] = {s1,s2 : AFormPos => Str ; isPre : Bool} ;
     [RS] = {s1,s2 : Agr => Str ; c : NPForm} ;
+    [CN] = {s1,s2 : Number => DetSpecies => Case => Str} ; --- g : NGender ; isMod : Bool} ;
 
 }
diff --git a/lib/src/scandinavian/ExtraScand.gf b/lib/src/scandinavian/ExtraScand.gf
--- a/lib/src/scandinavian/ExtraScand.gf
+++ b/lib/src/scandinavian/ExtraScand.gf
@@ -1,8 +1,8 @@
 incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** 
-   open CommonScand,Coordination,ResScand in {
+   open CommonScand,Coordination,ResScand, ParamX in {
   lin
     GenNP np = {
-      s,sp = \\n,_,_,g => np.s ! NPPoss (gennum (ngen2gen g) n) ; 
+      s,sp = \\n,_,_,g => np.s ! NPPoss (gennum (ngen2gen g) n) Nom ; 
       det = DDef Indef
       } ;
 
@@ -84,4 +84,24 @@
     ICompAP ap = {s = \\a => hur_IAdv.s ++ ap.s ! a} ;
 
     IAdvAdv adv = {s = hur_IAdv.s ++ adv.s} ;
+
+  lincat
+    Foc = {s : ParamX.Tense => Anteriority => Polarity => Str} ;
+
+  lin
+    FocObj np cls = {
+      s = \\t,a,p => cls.c2.s ++ np.s ! accusative ++ cls.s ! t ! a ! p ! Inv
+      } ;
+    FocAdv adv cls = {
+      s = \\t,a,p => adv.s ++ cls.s ! t ! a ! p ! Inv
+      } ; 
+    FocAdV adv cls = {
+      s = \\t,a,p => adv.s ++ cls.s ! t ! a ! p ! Inv
+      } ; 
+    FocNeg cl = {
+      s = \\t,a,p => (negation ! Neg) ++ cl.s ! t ! a ! p ! Inv
+      } ;
+    
+    UseFoc t p foc = {s = t.s ++ p.s ++ foc.s ! t.t ! t.a ! p.p} ;
+
 } 
diff --git a/lib/src/scandinavian/NounScand.gf b/lib/src/scandinavian/NounScand.gf
--- a/lib/src/scandinavian/NounScand.gf
+++ b/lib/src/scandinavian/NounScand.gf
@@ -46,12 +46,15 @@
       } ;
 
     DetQuantOrd quant num ord = {
-      s = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++ 
+      s = \\b,g => quant.s ! num.n ! b ! True ! g ++ 
                    num.s ! g ++ ord.s ;
-      sp = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++ 
+      sp = \\b,g => quant.s ! num.n ! b ! True ! g ++ 
                     num.s ! g ++ ord.s ;
       n = num.n ;
-      det = quant.det
+      det = case quant.det of {
+        DDef Def => DDef detDef ;
+        d => d
+        }
       } ;
 
     DetQuant quant num = 
@@ -80,7 +83,7 @@
       } ;
 
     PossPron p = {
-      s,sp = \\n,_,_,g => p.s ! NPPoss (gennum (ngen2gen g) n) ; 
+      s,sp = \\n,_,_,g => p.s ! NPPoss (gennum (ngen2gen g) n) Nom ; 
       det = DDef Indef
       } ;
 
diff --git a/lib/src/scandinavian/QuestionScand.gf b/lib/src/scandinavian/QuestionScand.gf
--- a/lib/src/scandinavian/QuestionScand.gf
+++ b/lib/src/scandinavian/QuestionScand.gf
@@ -93,7 +93,28 @@
       det = idet.det
       } ;
 
+    AdvIAdv i a = {s = i.s ++ a.s} ;
+
     CompIAdv a = {s = \\_ => a.s} ;
     CompIP ip = {s = \\_ => ip.s ! nominative} ;
+
+  lincat 
+    QVP = CommonScand.VP ;
+  lin
+    ComplSlashIP vp np = insertObj (\\_ => vp.c2.s ++ np.s ! accusative) vp ;
+    AdvQVP vp adv = insertObjPost (\\_ => adv.s) vp ;
+    AddAdvQVP vp adv = insertObjPost (\\_ => adv.s) vp ;
+
+    QuestQVP qp vp = {
+      s = \\t,a,b,q => 
+        let 
+          somo = case q of {
+            QIndir => <"som",Sub> ;
+            _      => <[],   Main>
+            } ;
+          cl = mkClause (qp.s ! nominative ++ somo.p1) {g = qp.g ; n = qp.n ; p = P3} vp  
+        in
+        cl.s ! t ! a ! b ! somo.p2
+      } ;   
 
 }
diff --git a/lib/src/scandinavian/VerbScand.gf b/lib/src/scandinavian/VerbScand.gf
--- a/lib/src/scandinavian/VerbScand.gf
+++ b/lib/src/scandinavian/VerbScand.gf
@@ -50,21 +50,28 @@
         ** {n3 = vp.n3 ; c2 = v.c2} ;
 
     UseComp comp = insertObj 
-      (\\a => comp.s ! agrAdjNP a DIndef) (predV verbBe) ;
+      comp.s (predV verbBe) ;
 
-    CompAP ap = ap ;
+    CompAP ap = {s = \\a => ap.s ! agrAdjNP a DIndef} ;
     CompNP np = {s = \\_ => np.s ! accusative} ;
     CompAdv a = {s = \\_ => a.s} ;
 
     AdvVP vp adv = insertAdv adv.s vp ;
     AdVVP adv vp = insertAdV adv.s vp ;
 
-
     ReflVP vp = insertObj (\\a => vp.c2.s ++ reflPron a ++ vp.n3 ! a) vp ;
 
     PassV2 v = 
       insertObj 
         (\\a => v.s ! VI (VPtPret (agrAdjNP a DIndef) Nom)) 
         (predV verbBecome) ;
+
+    CompCN cn = {s = \\a => case a.n of { 
+      Sg => artIndef ! cn.g ++ cn.s ! Sg ! DIndef ! Nom ;
+      Pl => cn.s ! Pl ! DIndef ! Nom
+      }
+    } ;
+
+    UseCopula = predV verbBe ;
 
 }
diff --git a/lib/src/spanish/DiffSpa.gf b/lib/src/spanish/DiffSpa.gf
--- a/lib/src/spanish/DiffSpa.gf
+++ b/lib/src/spanish/DiffSpa.gf
@@ -33,7 +33,7 @@
 
     artIndef = \g,n,c -> case n of {
       Sg  => prepCase c ++ genForms "un"   "una" ! g ;
-      _   => prepCase c ++ genForms "unos" "unas" ! g
+      _   => prepCase c -- ++ genForms "unos" "unas" ! g   --- take this as a determiner
       } ;
 
     possCase = \_,_,c -> prepCase c ;
diff --git a/lib/src/spanish/LexiconSpa.gf b/lib/src/spanish/LexiconSpa.gf
--- a/lib/src/spanish/LexiconSpa.gf
+++ b/lib/src/spanish/LexiconSpa.gf
@@ -100,7 +100,9 @@
    industry_N = regN "industria" ;
    iron_N = regN "fierro" ;
    king_N = regN "rey" ;
-   know_V2 = dirV2 (verboV (saber_71 "saber")) ; --   conocer
+   know_V2 = mkV2 (verboV (conocer_25 "conocer")) ;
+   know_VQ = mkVQ (verboV (saber_71 "saber")) ;
+   know_VS = mkVS (verboV (saber_71 "saber")) ;
    lake_N = regN "lago" ;
    lamp_N = regN "lámpara" ;
    learn_V2 = dirV2 (regV "aprender") ;
@@ -230,7 +232,7 @@
    dull_A = regA "desafilado" ;
    full_A = regA "lleno" ;
    heavy_A = regA "pesado" ;
-   near_A = regA "cerca" ;
+   near_A = regA "cercano" ;
    rotten_A = regA "podrido" ;
    round_A = regA "redondo" ;
    sharp_A = regA "filoso" ; -- afilado, puntiagudo
diff --git a/lib/src/spanish/ParadigmsSpa.gf b/lib/src/spanish/ParadigmsSpa.gf
--- a/lib/src/spanish/ParadigmsSpa.gf
+++ b/lib/src/spanish/ParadigmsSpa.gf
@@ -55,11 +55,11 @@
 -- amalgamate with the following word (the 'genitive' "de" and the
 -- 'dative' "a").
 
-  accusative : Prep ;
-  genitive   : Prep ;
-  dative     : Prep ;
+  accusative : Prep ; -- direct object
+  genitive   : Prep ; -- preposition "de" and its contractions
+  dative     : Prep ; -- preposition "a" and its contractions
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ; -- other preposition
 
 
 --2 Nouns
@@ -74,15 +74,15 @@
 -- those ending with "z" have "ces" in plural; all other nouns
 -- have "es" as plural ending. The accent is not dealt with.
 
-    mkN : (luz : Str) -> N ;
+    mkN : (luz : Str) -> N ; -- predictable; feminine for "-a"/"-z", otherwise masculine
 
 -- A different gender can be forced.
 
-    mkN : Str -> Gender -> N ;
+    mkN : Str -> Gender -> N ; -- force gender
 
 -- The worst case has two forms (singular + plural) and the gender.
 
-    mkN : (baston,bastones : Str) -> Gender -> N 
+    mkN : (baston,bastones : Str) -> Gender -> N -- worst case 
     } ;
 
 
@@ -93,24 +93,24 @@
 -- They could be formed in syntax, but we give a shortcut here since
 -- they are frequent in lexica.
 
-  compN : N -> Str -> N ;
+  compN : N -> Str -> N ; -- compound, e.g. "número" + "de teléfono"
 
 
 --3 Relational nouns 
 -- 
 -- Relational nouns ("fille de x") need a case and a preposition. 
 
-  mkN2 : N -> Prep -> N2 ;
+  mkN2 : N -> Prep -> N2 ; -- relational noun with preposition
 
 -- The most common cases are the genitive "de" and the dative "a", 
 -- with the empty preposition.
 
-  deN2 : N -> N2 ;
-  aN2  : N -> N2 ;
+  deN2 : N -> N2 ; -- relational noun with preposition "de"
+  aN2  : N -> N2 ; -- relational noun with preposition "a"
 
 -- Three-place relational nouns ("la connessione di x a y") need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- prepositions for two complements
 
 
 --3 Relational common noun phrases
@@ -127,8 +127,8 @@
 -- The default gender is feminine for names ending with "a", otherwise masculine.
 
   mkPN : overload {
-    mkPN : (Anna : Str) -> PN ;
-    mkPN : (Pilar : Str) -> Gender -> PN
+    mkPN : (Anna : Str) -> PN ; -- feminine for "-a"
+    mkPN : (Pilar : Str) -> Gender -> PN -- force gender
     } ;
 
 
@@ -140,17 +140,17 @@
 -- masculine singular. The types of adjectives that are recognized are
 -- "alto", "fuerte", "util". Comparison is formed by "mas".
 
-    mkA : (util : Str) -> A ;
+    mkA : (util : Str) -> A ; -- predictable adjective
 
 -- One-place adjectives compared with "mas" need five forms in the worst
 -- case (masc and fem singular, masc plural, adverbial).
 
-    mkA : (solo,sola,solos,solas,solamente : Str) -> A ;
+    mkA : (solo,sola,solos,solas,solamente : Str) -> A ; -- worst-case
 
 -- In the worst case, two separate adjectives are given: 
 -- the positive ("bueno"), and the comparative ("mejor"). 
 
-    mkA : (bueno : A) -> (mejor : A) -> A
+    mkA : (bueno : A) -> (mejor : A) -> A -- special comparison (default with "mas")
     } ;
 
 -- The functions above create postfix adjectives. To switch
@@ -158,14 +158,14 @@
 -- modification, as in "buen vino"), the following function is
 -- provided.
 
-  prefixA : A -> A ;
+  prefixA : A -> A ; -- adjective before noun (default after noun)
 
 
 --3 Two-place adjectives
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. "casado" + dative
 
 
 
@@ -195,28 +195,28 @@
 -- "actuar, cazar, guiar, pagar, sacar". The module $BeschSpa$ gives
 -- the complete set of "Bescherelle" conjugations.
 
-    mkV : (pagar : Str) -> V ;
+    mkV : (pagar : Str) -> V ; -- regular in "-ar", "-er", ".ir"
 
 -- Verbs with vowel alternatition in the stem - easiest to give with
 -- two forms, e.g. "mostrar"/"muestro".
 
-    mkV : (mostrar,muestro : Str) -> V ;
+    mkV : (mostrar,muestro : Str) -> V ; -- regular with vowel alternation
 
 -- Most irreguler verbs are found in $IrregSpa$. If this is not enough,
 -- the module $BeschSpa$ gives all the patterns of the "Bescherelle"
 -- book. To use them in the category $V$, wrap them with the function
 
-    mkV : Verbum -> V 
+    mkV : Verbum -> V -- import verb constructed with BeschSpa
     } ;
 
 -- To form reflexive verbs:
 
-  reflV : V -> V ;
+  reflV : V -> V ; -- reflexive verb
 
 -- Verbs with a deviant passive participle: just give the participle
 -- in masculine singular form as second argument.
 
-  special_ppV : V -> Str -> V ; 
+  special_ppV : V -> Str -> V ; -- deviant past participle, e.g. abrir - abierto
 
 
 
@@ -226,31 +226,31 @@
 -- (transitive verbs). 
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V -> V2 ;  
-    mkV2 : V -> Prep -> V2
+    mkV2 : Str -> V2 ;  -- regular, direct object
+    mkV2 : V -> V2 ;    -- direct object
+    mkV2 : V -> Prep -> V2 -- other object
     } ;
 
 
 -- You can reuse a $V2$ verb in $V$.
 
-  v2V : V2 -> V ;
+  v2V : V2 -> V ; --%
 
 --3 Three-place verbs
 --
 -- Three-place (ditransitive) verbs need two prepositions, of which
 -- the first one or both can be absent.
 
-  mkV3     : V -> Prep -> Prep -> V3 ;   -- hablar, a, di
-  dirV3    : V -> Prep -> V3 ;           -- dar,(accusative),a
-  dirdirV3 : V -> V3 ;                   -- dar,(dative),(accusative)
+  mkV3     : V -> Prep -> Prep -> V3 ;   -- e.g. hablar, a, di
+  dirV3    : V -> Prep -> V3 ;           -- e.g. dar,(accusative),a
+  dirdirV3 : V -> V3 ;                   -- e.g. dar,(dative),(accusative)
 
 --3 Other complement patterns
 --
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
+  mkV0  : V -> V0 ; --%
   mkVS  : V -> VS ;
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;  -- plain infinitive: "quiero hablar"
@@ -262,18 +262,18 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> Prep -> AV ;
-  mkA2V : A -> Prep -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> Prep -> AV ; --%
+  mkA2V : A -> Prep -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, 
 -- and the second argument is given
 -- as an adverb. Likewise 
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V  : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V  : Type ; --%
 
 
 --.
diff --git a/lib/src/swedish/ExtraSwe.gf b/lib/src/swedish/ExtraSwe.gf
--- a/lib/src/swedish/ExtraSwe.gf
+++ b/lib/src/swedish/ExtraSwe.gf
@@ -1,3 +1,25 @@
-concrete ExtraSwe of ExtraSweAbs = ExtraScandSwe ** {
+concrete ExtraSwe of ExtraSweAbs = ExtraScandSwe ** open CommonScand, ResSwe, ParamX in {
+
+lin
+    FocVP vp np = {
+      s = \\t,a,p =>
+        let
+          subj = np.s ! nominative ;
+          agr  = np.a ;
+          vps  = vp.s ! VPFinite t a ;
+          verb = case <<t,a> : ParamX.Tense * Anteriority> of {
+            <Pres,Simul> => {fin = "gör"    ; inf = vps.inf} 
+            ; --# notpresent
+            <Past,Simul> => {fin = "gjorde" ; inf = vps.inf} ; --# notpresent
+            _ => vps --# notpresent
+            } ;
+          vfin = verb.fin ;
+          vinf = verb.inf ;
+          neg  = vp.a1 ! p ;
+          comp = vp.n2 ! agr ++ vp.a2 ++ vp.ext
+        in
+        vinf ++ comp ++ vfin ++ subj ++ neg
+      } ;
+
 
 }
diff --git a/lib/src/swedish/IrregSwe.gf b/lib/src/swedish/IrregSwe.gf
--- a/lib/src/swedish/IrregSwe.gf
+++ b/lib/src/swedish/IrregSwe.gf
@@ -161,6 +161,7 @@
   svida_V = irregV "svida" "sved" "svidit" ;
   svika_V = irregV "svika" "svek" "svikit" ;
   sy_V = irregV "sy" "sydde" "sytt" ;
+  sätta_V = irregV "sätta" "satte" "satt" ;
   taga_V = irregV "taga" "tog" "tagit" ;
   tiga_V = irregV "tiga" "teg" "tigit" ;
   tillåta_V = irregV "tillåta" "tillät" "tillåtit" ;
diff --git a/lib/src/swedish/IrregSweAbs.gf b/lib/src/swedish/IrregSweAbs.gf
--- a/lib/src/swedish/IrregSweAbs.gf
+++ b/lib/src/swedish/IrregSweAbs.gf
@@ -155,6 +155,7 @@
   svida_V : V ;
   svika_V : V ;
   sy_V : V ;
+  sätta_V : V ;
   taga_V : V ;
   tiga_V : V ;
   tillåta_V : V ;
diff --git a/lib/src/swedish/LexiconSwe.gf b/lib/src/swedish/LexiconSwe.gf
--- a/lib/src/swedish/LexiconSwe.gf
+++ b/lib/src/swedish/LexiconSwe.gf
@@ -102,6 +102,7 @@
   iron_N = regGenN "järn" neutrum ;
   king_N = (regGenN "kung" utrum) ;
   know_V2 = mkV2 (mkV "känner") ;
+  know_VQ = mkVQ (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ;
   know_VS = mkVS (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ;
   lake_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
   lamp_N = regGenN "lampa" utrum;
@@ -164,7 +165,7 @@
   ship_N = regGenN "skepp" neutrum ;
   shirt_N = regGenN "skjorta" utrum ;
   shoe_N = mk2N "sko" "skor" ;
-  shop_N = mk2N "affär" "affären" ;
+  shop_N = mk2N "affär" "affärer" ;
   short_A = regA "kort" ;
   silver_N = mkN "silver" "silvret" "silver" "silvren" ;
   sister_N = mk2N "syster" "systrar" ;
diff --git a/lib/src/swedish/NumeralSwe.gf b/lib/src/swedish/NumeralSwe.gf
--- a/lib/src/swedish/NumeralSwe.gf
+++ b/lib/src/swedish/NumeralSwe.gf
@@ -1,4 +1,4 @@
-concrete NumeralSwe of Numeral = CatSwe ** open ResSwe, MorphoSwe, Prelude in {
+concrete NumeralSwe of Numeral = CatSwe [Numeral,Digits] ** open ResSwe, MorphoSwe, Prelude in {
 
 lincat 
   Digit = {s : DForm => CardOrd => Str} ;
diff --git a/lib/src/swedish/ParadigmsSwe.gf b/lib/src/swedish/ParadigmsSwe.gf
--- a/lib/src/swedish/ParadigmsSwe.gf
+++ b/lib/src/swedish/ParadigmsSwe.gf
@@ -41,8 +41,8 @@
 oper
   Gender : Type ; 
 
-  utrum     : Gender ;
-  neutrum   : Gender ;
+  utrum     : Gender ;  -- the "en" gender
+  neutrum   : Gender ;  -- the "ett" gender
 
 -- To abstract over number names, we define the following.
 
@@ -53,14 +53,14 @@
 
 -- To abstract over case names, we define the following.
 
-  Case : Type ;
+  Case : Type ; --%
 
-  nominative : Case ;
-  genitive   : Case ;
+  nominative : Case ; --%
+  genitive   : Case ; --%
 
 -- Prepositions used in many-argument functions can be constructed from strings.
 
-  mkPrep : Str -> Prep ;
+  mkPrep : Str -> Prep ;  -- e.g. "till"
   noPrep : Prep ;         -- empty string
 
 
@@ -75,22 +75,22 @@
 -- to treat all words ending with "a" like "apa-apor", with "e" like "rike-riken",
 -- and otherwise like "bil-bilar".
 
-    mkN : (apa : Str) -> N ;
+    mkN : (apa : Str) -> N ; -- predictable nouns: apa-apor, rike-riken, or bil-bilar
 
 -- The case with a string and gender makes it possible to treat 
 -- "lik" (neutrum) and "pojke" (utrum).
 
-    mkN : (lik : Str) -> Gender -> N ; 
+    mkN : (lik : Str) -> Gender -> N ; --%
 
 -- Giving two forms - the singular and plural indefinite - is sufficient for
 -- most nouns. The paradigm deals correctly with the vowel contractions in 
 -- "nyckel - nycklar" such as "pojke - pojkar".
 
-    mkN : (nyckel,nycklar : Str) -> N ; 
+    mkN : (nyckel,nycklar : Str) -> N ; -- singular and plural suffice for most nouns
 
 -- In the worst case, four forms are needed.
 
-    mkN : (museum,museet,museer,museerna : Str) -> N
+    mkN : (museum,museet,museer,museerna : Str) -> N -- worst case for nouns
   } ;
 
 -- All the functions above work quite as well to form *compound nouns*,
@@ -105,14 +105,14 @@
 -- with the preposition "av". 
 
   mkN2 : overload {
-    mkN2 : Str -> N2 ;
-    mkN2 : N -> Prep -> N2
+--    mkN2 : Str -> N2 ;
+    mkN2 : N -> Prep -> N2 -- e.g. syster - till
   } ;
 
 -- Three-place relational nouns ("förbindelse från x till y") 
 -- need two prepositions.
 
-  mkN3 : N -> Prep -> Prep -> N3 ;
+  mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. flyg - från - till
 
 
 --3 Relational common noun phrases
@@ -129,12 +129,12 @@
 -- have the default gender utrum. 
 
   mkPN : overload {
-    mkPN : Str -> PN ;
-    mkPN : Str -> Gender -> PN ;
+    mkPN : Str -> PN ;   -- default gender utrum
+    mkPN : Str -> Gender -> PN ; -- set other gender
 
 -- In the worst case, the genitive form is irregular.
 
-    mkPN : (jesus,jesu : Str) -> Gender -> PN
+    mkPN : (jesus,jesu : Str) -> Gender -> PN -- irregular genitive
     } ;
 
 
@@ -152,24 +152,24 @@
 -- also recognizes the neuter formation "galen-galet" and forms the
 -- proper plural and comparison forms "galna-galnare-galnast".
 
-    mkA : (bred,brett : Str) -> A ;
+    mkA : (bred,brett : Str) -> A ; -- predictable adjective
 
 -- Umlaut in comparison forms is 
 
-    mkA : (tung,tyngre,tyngst : Str) -> A ;
+    mkA : (tung,tyngre,tyngst : Str) -> A ; -- irregular comparison
 
 -- A few adjectives need 5 forms.
-    mkA : (god,gott,goda,battre,bast : Str) -> A ;
+    mkA : (god,gott,goda,battre,bast : Str) -> A ; -- very irregular
 
 -- Hardly any other adjective than "liten" needs the full 7 forms.
  
-    mkA : (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A
+    mkA : (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A -- worst case
     } ;
 
 -- Comparison forms may be compound ("mera svensk" - "mest svensk");
 -- this behaviour can be forced on any adjective.
 
-  compoundA : A -> A ;
+  compoundA : A -> A ; -- force comparison by mera - mest
 
 
 
@@ -178,7 +178,7 @@
 --
 -- Two-place adjectives need a preposition for their second argument.
 
-  mkA2 : A -> Prep -> A2 ;
+  mkA2 : A -> Prep -> A2 ; -- e.g. delbar - med
 
 
 --2 Adverbs
@@ -187,12 +187,12 @@
 -- after the verb. Some can be preverbal in subordinate position
 -- (e.g. "alltid").
 
-  mkAdv : Str -> Adv ;  -- här
-  mkAdV : Str -> AdV ;  -- alltid
+  mkAdv : Str -> Adv ;  -- postverbal, e.g. här
+  mkAdV : Str -> AdV ;  -- preverbal, e.g. alltid
 
 -- Adverbs modifying adjectives and sentences can also be formed.
 
-  mkAdA : Str -> AdA ;
+  mkAdA : Str -> AdA ; -- modify adjective, e.g. tämligen
 
 --2 Verbs
 --
@@ -210,19 +210,19 @@
 -- as if they were implicitly suffixed by "r". Moreover, deponent verbs
 -- are recognized from the final "s" ("hoppas").
 
-    mkV : (stämmer : Str) -> V ;
+    mkV : (stämmer : Str) -> V ; -- predictable verb: use present indicative
 
 -- Most irregular verbs need just the conventional three forms.
 
-    mkV : (dricka,drack,druckit : Str) -> V ;
+    mkV : (dricka,drack,druckit : Str) -> V ; -- the theme of an irregular verb
 
 -- In the worst case, six forms are given.
 
-    mkV : (gå,går,gå,gick,gått,gången : Str) -> V ;
+    mkV : (gå,går,gå,gick,gått,gången : Str) -> V ; -- worst case
 
 -- Particle verbs, such as "passa på", are formed by adding a string to a verb.
 
-    mkV : V -> Str -> V
+    mkV : V -> Str -> V -- particle verb, e.g. passa - på
     } ;
 
 
@@ -232,8 +232,8 @@
 -- reflexive e.g. "ångra sig". Regular deponent verbs are also
 -- handled by $mkV$ and recognized from the ending "s".
 
-  depV  : V -> V ;
-  reflV : V -> V ;
+  depV  : V -> V ; -- deponent verb, e.g. andas
+  reflV : V -> V ; -- reflexive verb, e.g. ångra sig
 
 
 --3 Two-place verbs
@@ -244,9 +244,10 @@
 -- Notice that, if a particle is needed, it comes from the $V$.
 
   mkV2 : overload {
-    mkV2 : Str -> V2 ;
-    mkV2 : V   -> V2 ;
-    mkV2 : V   -> Prep -> V2
+    mkV2 : Str -> V2 ; --%
+    mkV2 : V   -> V2 ; -- direct transitive
+    mkV2 : Str -> Prep -> V2 ; --%
+    mkV2 : V   -> Prep -> V2 ; -- preposition for complement
     } ;
 
 
@@ -257,10 +258,10 @@
 -- verb (as in $mkV$) with no prepositions.
 
   mkV3 : overload {
-    mkV3 : Str -> V3 ;
-    mkV3 : V   -> V3 ;
-    mkV3 : V   -> Prep -> V3 ;
-    mkV3 : V   -> Prep -> Prep -> V3
+    mkV3 : Str -> V3 ; --%
+    mkV3 : V   -> V3 ; -- direct ditransitive
+    mkV3 : V   -> Prep -> V3 ; -- preposition for last argument
+    mkV3 : V   -> Prep -> Prep -> V3 -- prepositions for both complements
     } ;
 
 --3 Other complement patterns
@@ -268,8 +269,8 @@
 -- Verbs and adjectives can take complements such as sentences,
 -- questions, verb phrases, and adjectives.
 
-  mkV0  : V -> V0 ;
-  mkVS  : V -> VS ;
+  mkV0  : V -> V0 ; --%
+  mkVS  : V -> VS ; 
   mkV2S : V -> Prep -> V2S ;
   mkVV  : V -> VV ;
   mkV2V : V -> Prep -> Prep -> V2V ;
@@ -278,16 +279,16 @@
   mkVQ  : V -> VQ ;
   mkV2Q : V -> Prep -> V2Q ;
 
-  mkAS  : A -> AS ;
-  mkA2S : A -> Prep -> A2S ;
-  mkAV  : A -> AV ;
-  mkA2V : A -> Prep -> A2V ;
+  mkAS  : A -> AS ; --%
+  mkA2S : A -> Prep -> A2S ; --%
+  mkAV  : A -> AV ; --%
+  mkA2V : A -> Prep -> A2V ; --%
 
 -- Notice: categories $AS, A2S, AV, A2V$ are just $A$.
 -- $V0$ is just $V$.
 
-  V0 : Type ;
-  AS, A2S, AV, A2V : Type ;
+  V0 : Type ; --%
+  AS, A2S, AV, A2V : Type ; --%
 
 --.
 --2 Definitions of the paradigms
@@ -436,7 +437,7 @@
   regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
   nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;
   makeNP x y n g = 
-    {s = table {NPPoss _ => y ; _ => x} ; a = agrP3 g n ; p = P3 ;
+    {s = table {NPPoss _ _ => y ; _ => x} ; a = agrP3 g n ; p = P3 ;
      lock_NP = <>} ;
 
   mkA = overload {
@@ -573,6 +574,7 @@
   mkV2 = overload {
     mkV2 : (läser : Str) -> V2 = \v -> dirV2 (regV v) ;
     mkV2 : V -> V2 = dirV2 ;
+    mkV2 : Str -> Prep -> V2 = \v -> mmkV2 (regV v) ;
     mkV2 : V -> Prep -> V2 = mmkV2
     } ;
 
diff --git a/lib/src/urdu/AdjectiveUrd.gf b/lib/src/urdu/AdjectiveUrd.gf
--- a/lib/src/urdu/AdjectiveUrd.gf
+++ b/lib/src/urdu/AdjectiveUrd.gf
@@ -1,38 +1,3 @@
-concrete AdjectiveUrd of Adjective = CatUrd ** open ResUrd, Prelude in {
-
-  lin
-
-    PositA a = a ;
-	UseComparA a = a;
-
-    ComparA a np = {
-        s = \\n,g,c,d => np.s ! NPC Obl ++ sE_Str ++ a.s ! n ! g ! c ! d ;                       
-       } ;
-
----- $SuperlA$ belongs to determiner syntax in $Noun$.
-
-    ComplA2 a np = {
-      s = \\n,g,c,d => np.s ! NPC Obl ++ a.c2 ++ a.s ! n ! g ! c ! d ; 
-     } ;
-
-    ReflA2 a = {
-      s = \\n,g,c,d => a.s ! n ! g ! c ! d  ++  RefPron ++ sE_Str ; 
-      } ;
-
-    SentAP ap sc = {
-      s = \\n,g,c,d => ap.s ! n ! g ! c ! d ++ sc.s ; 
-      } ;
-
-    AdAP ada ap = {
-      s = \\n,g,c,d => ada.s ++ ap.s ! n ! g ! c ! d ;
-      } ;
-
-    UseA2 a = a ;
-	
-	CAdvAP  cadv ap np = {
-	 s = \\n,g,c,d => cadv.s ++ ap.s ! n ! g ! c ! d ++ cadv.p ++  np.s ! NPC Dir ;
-	 };
-    
-    AdjOrd ord =  { s = \\_,_,_,_ => ord.s ; };
+concrete AdjectiveUrd of Adjective = CatUrd ** AdjectiveHindustani with
+  (ResHindustani = ResUrd) ;
 
-}
diff --git a/lib/src/urdu/AdverbUrd.gf b/lib/src/urdu/AdverbUrd.gf
--- a/lib/src/urdu/AdverbUrd.gf
+++ b/lib/src/urdu/AdverbUrd.gf
@@ -1,20 +1,2 @@
-concrete AdverbUrd of Adverb = CatUrd ** open ResUrd, Prelude in {
-
-  lin
-    PositAdvAdj a = {s = a.s ! Sg ! Masc ! Obl ! Posit} ;
-    ComparAdvAdj cadv a np = {
-      s = np.s ! NPObj  ++ cadv.p ++ cadv.s ++ a.s ! Sg ! Masc ! Obl ! Posit;  
-      } ;
-    ComparAdvAdjS cadv a s = {
-      s = cadv.p ++ cadv.s ++ a.s ! Sg ! Masc ! Obl ! Posit  ++  s.s;
-      } ;
-
-    PrepNP prep np = {s = np.s ! NPObj ++ prep.s } ;
-
-    AdAdv ada adv = { s = ada.s ++ adv.s} ;
-
-    SubjS = cc2 ;
-
-    AdnCAdv cadv = {s = sE_Str ++ cadv.s} ;
-
-}
+concrete AdverbUrd of Adverb = CatUrd ** AdverbHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/AllUrd.gf b/lib/src/urdu/AllUrd.gf
--- a/lib/src/urdu/AllUrd.gf
+++ b/lib/src/urdu/AllUrd.gf
@@ -1,6 +1,6 @@
---# -path=.:../abstract:../common:../prelude
-
-concrete AllUrd of AllUrdAbs =
-  LangUrd,
-  ExtraUrd
-  ** {} ;
+--# -path=.:../abstract:../common:../prelude:../hindustani
+
+concrete AllUrd of AllUrdAbs =
+  LangUrd,
+  ExtraUrd
+  ** {} ;
diff --git a/lib/src/urdu/AllUrdAbs.gf b/lib/src/urdu/AllUrdAbs.gf
--- a/lib/src/urdu/AllUrdAbs.gf
+++ b/lib/src/urdu/AllUrdAbs.gf
@@ -1,4 +1,4 @@
-abstract AllUrdAbs =
-  Lang,
-  ExtraUrdAbs
-  ** {} ;
+abstract AllUrdAbs =
+  Lang,
+  ExtraUrdAbs
+  ** {} ;
diff --git a/lib/src/urdu/CatUrd.gf b/lib/src/urdu/CatUrd.gf
--- a/lib/src/urdu/CatUrd.gf
+++ b/lib/src/urdu/CatUrd.gf
@@ -1,85 +1,2 @@
-concrete CatUrd of Cat = CommonX ** open ResUrd, Prelude in {
-
-  flags optimize=all_subs ;
-
-  lincat
------- Tensed/Untensed
-
-    S  = {s : Str} ;
-    QS = {s : QForm => Str} ;
-    RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
-    SSlash = {s : Str ; c2 : ResUrd.Compl} ;
-
----- Sentence
-
-    Cl = ResUrd.Clause ;
-    ClSlash = {
-      s : ResUrd.VPHTense => Polarity => Order => Str ;
-      c2 : ResUrd.Compl
-      } ;
-    Imp = {s : CPolarity => ImpForm => Str} ;
-
----- Question
-    QCl = {s : ResUrd.VPHTense => Polarity => QForm => Str} ;
-    IP = {s: Case => Str ; g : Gender ; n : Number};
-    IDet = {s :Gender => Str ; n : Number} ;
-    IQuant = {s : Number => Str} ;
-    IComp = {s : Str} ;
-
----- Relative
-
-    RCl = {
-      s : ResUrd.VPHTense => Polarity => Order => Agr => Str ; 
-      c : Case
-      } ;
-    RP = {s: Number => Case => Str ; a:RAgr};
-
----- Verb
-
-    VP = ResUrd.VPH ;
-    VPSlash = ResUrd.VPHSlash ;
-    Comp = {s : Agr => Str} ; 
-
----- Adjective
-
-    AP = ResUrd.Adjective ;
-
----- Noun
-
-    CN = ResUrd.Noun ;
-    NP = ResUrd.NP ;
-    Pron = {s : Case => Str ; ps : Str ; a : Agr};
-    Det = ResUrd.Determiner ;
-    Predet = {s : Str} ;
-    Num  = {s : Str ; n : Number} ;
-    Card = {s : Str; n : Number} ;
-    Ord = {s : Str; n : Number} ;
-    Quant = {s:Number => Gender => Case => Str ; a:Agr};
-
----- Numeral
-
-    Numeral = {s : CardOrd => Str ; n : Number} ;
-    Digits  = {s : CardOrd => Str ; n : Number } ;
-
----- Structural
-
-    Conj = {s1,s2 : Str ; n : Number} ;
------b    Conj = {s : Str ; n : Number} ;
------b    DConj = {s1,s2 : Str ; n : Number} ;
-    Subj = {s : Str} ;
-    Prep = ResUrd.Preposition;
----- Open lexical classes, e.g. Lexicon
-
-    V, VS, VQ, VA = ResUrd.Verb ; -- = {s : VForm => Str} ;
-    V2, V2A, V2Q, V2S = ResUrd.Verb ** {c2 : Compl} ;
-    V3 = ResUrd.Verb ** {c2, c3 : Str} ;
-    VV = ResUrd.Verb ** { isAux : Bool} ;
-    V2V = ResUrd.Verb ** {c1 : Str ; c2 : Str ; isAux : Bool} ;
-    A = ResUrd.Adjective ; --- {s : Gender => Number => Case => Str} ;
-    A2 = {s : Number => Gender => Case => Degree => Str ; c2 : Str} ;
-    N = {s : Number => Case => Str ; g : Gender} ;
-    N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str } ;
-    N3 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str ; c3 : Str ; c4 : Str} ;
-    PN = {s : Case => Str ; g : Gender} ;
-
-}
+concrete CatUrd of Cat = CommonX - [Adv,AdN] ** CatHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/CommonHindustani.gf b/lib/src/urdu/CommonHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/CommonHindustani.gf
@@ -0,0 +1,311 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Hindustaniu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+resource CommonHindustani = ParamX  ** open Prelude,Predef in {
+
+  flags coding = utf8 ;
+
+ oper
+  
+  VPH = {
+      s    : VPHForm => {fin, inf : Str} ;
+      obj  : {s : Str ; a : Agr} ; 
+      subj : VType ;
+      comp : Agr => Str;
+      inf : Str;
+      ad  : Str;
+      embComp : Str ;
+      prog : Bool ;
+      } ;
+  NP : Type = {s : NPCase => Str ; a : Agr} ;    
+ param      
+  VPHForm = 
+       VPTense VPPTense Agr -- 9 * 12
+     | VPReq
+     | VPImp
+     | VPReqFut
+     | VPInf
+     | VPStem
+     ;
+  VPPTense = 
+	  VPPres
+	  |VPPast
+	  |VPFutr
+	  |VPPerf;
+      
+  VPHTense = 
+       VPGenPres  -- impf hum       nahim    "I گo"
+     | VPImpPast  -- impf Ta        nahim    "I وعنت"
+	 | VPFut      -- fut            na/nahim "I سہالل گo"
+     | VPContPres -- stem raha hum  nahim    "I ام گoiنگ"
+     | VPContPast -- stem raha Ta   nahim    "I واس گoiنگ"
+	 | VPContFut
+     | VPPerfPres -- perf hum       na/nahim "I ہاvع گoنع"
+     | VPPerfPast -- perf Ta        na/nahim "I ہاد گoنع"          
+	 | VPPerfFut
+	 | VPPerfPresCont
+	 | VPPerfPastCont
+	 | VPPerfFutCont
+     | VPSubj     -- subj           na       "I مای گo"
+     ;   
+  Agr = Ag Gender Number UPerson ;
+  Gender = Masc | Fem ;
+  Case = Dir | Obl | Voc ;
+  UPerson = Pers1
+	    | Pers2_Casual
+	    | Pers2_Familiar 
+	    | Pers2_Respect
+	    | Pers3_Near
+	    | Pers3_Distant;
+  VType = VIntrans | VTrans | VTransPost ;
+  VerbForm = VF VTense UPerson Number Gender
+                | Inf
+                | Root
+                | Inf_Obl
+                | Inf_Fem;
+  VTense = Subj | Perf | Imperf;
+  CTense = CPresent | CPast | CFuture ;
+  NPCase = NPC Case | NPObj | NPErg ;
+  Order = ODir | OQuest ;
+  
+  
+  oper 
+    copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g -> 
+      case <t,n,p,g> of {
+        <CPresent,Sg,Pers1,_   > => "ہوں" ;
+        <CPresent,Sg,Pers2_Casual,_   > => "ہے" ;
+        <CPresent,Sg,Pers2_Familiar,_   > => "ہو" ;
+		<CPresent,Sg,Pers2_Respect,_   > => "ہیں" ;
+        <CPresent,Sg,Pers3_Near,_   > => "ہے" ;
+        <CPresent,Sg,Pers3_Distant,_   > => "ہے" ;
+		<CPresent,Pl,Pers1,_   > => "ہیں" ;
+        <CPresent,Pl,Pers2_Casual,_   > => "ہو" ;
+        <CPresent,Pl,Pers2_Familiar,_   > => "ہو" ;
+		<CPresent,Pl,Pers2_Respect,_   > => "ہیں" ;
+        <CPresent,Pl,Pers3_Near,_   > => "ہیں" ;
+        <CPresent,Pl,Pers3_Distant,_   > => "ہیں" ;
+		<CPast,Sg,Pers1,Masc   > => "تh-ا" ;
+		<CPast,Sg,Pers1,Fem   > => "تh-ی" ;
+        <CPast,Sg,Pers2_Casual,Masc   > => "تh-ا" ;
+		<CPast,Sg,Pers2_Casual,Fem   > => "تh-ی" ;
+        <CPast,Sg,Pers2_Familiar,Masc   > => "تh-ا" ;
+		<CPast,Sg,Pers2_Familiar,Fem   > => "تh-ی" ;
+		<CPast,Sg,Pers2_Respect,Masc   > => "تh-ے" ;
+		<CPast,Sg,Pers2_Respect,Fem   > => "تh-یں" ;
+        <CPast,Sg,Pers3_Near,Masc   > => "تh-ا" ;
+		<CPast,Sg,Pers3_Near,Fem   > => "تh-ی" ;
+        <CPast,Sg,Pers3_Distant,Masc  > => "تh-ا" ;
+		<CPast,Sg,Pers3_Distant,Fem  > => "تh-ی" ;
+		<CPast,Pl,Pers1,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers1,Fem   > => "تh-یں" ;
+        <CPast,Pl,Pers2_Casual,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers2_Casual,Fem   > => "تh-یں" ;
+        <CPast,Pl,Pers2_Familiar,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers2_Familiar,Fem   > => "تh-یں" ;
+		<CPast,Pl,Pers2_Respect,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers2_Respect,Fem   > => "تh-یں" ;
+        <CPast,Pl,Pers3_Near,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers3_Near,Fem   > => "تh-یں" ;
+		<CPast,Pl,Pers3_Distant,Masc   > => "تh-ے" ;
+		<CPast,Pl,Pers3_Distant,Fem   > => "تh-یں" ;
+		<CFuture,Sg,Pers1,Masc   > => "گا" ;
+		<CFuture,Sg,Pers1,Fem   > => "گی" ;
+        <CFuture,Sg,Pers2_Casual,Masc   > => "گا" ;
+		<CFuture,Sg,Pers2_Casual,Fem   > => "گی" ;
+        <CFuture,Sg,Pers2_Familiar,Masc   > => "گے" ;
+		<CFuture,Sg,Pers2_Familiar,Fem   > => "گی" ;
+		<CFuture,Sg,Pers2_Respect,Masc   > => "گے" ;
+		<CFuture,Sg,Pers2_Respect,Fem   > => "گی" ;
+        <CFuture,Sg,Pers3_Near,Masc   > => "گا" ;
+		<CFuture,Sg,Pers3_Near,Fem   > => "گی" ;
+        <CFuture,Sg,Pers3_Distant,Masc  > => "گا" ;
+		<CFuture,Sg,Pers3_Distant,Fem  > => "گی" ;
+		<CFuture,Pl,Pers1,Masc   > => "گے" ;
+		<CFuture,Pl,Pers1,Fem   > => "گی" ;
+        <CFuture,Pl,Pers2_Casual,Masc   > => "گے" ;
+		<CFuture,Pl,Pers2_Casual,Fem   > => "گی" ;
+        <CFuture,Pl,Pers2_Familiar,Masc   > => "گے" ;
+		<CFuture,Pl,Pers2_Familiar,Fem   > => "گی" ;
+		<CFuture,Pl,Pers2_Respect,Masc   > => "گے" ;
+		<CFuture,Pl,Pers2_Respect,Fem   > => "گی" ;
+        <CFuture,Pl,Pers3_Near,Masc   > => "گے" ;
+		<CFuture,Pl,Pers3_Near,Fem   > => "گے" ;
+		<CFuture,Pl,Pers3_Distant,Masc  > => "گے" ;
+		<CFuture,Pl,Pers3_Distant,Fem  > => "گی" 
+        
+        
+        } ;
+   raha : Gender -> Number -> Str = \g,n -> 
+	   (regAdjective "رہا").s ! n ! g ! Dir ! Posit ;
+
+  cka : Gender -> Number -> Str = \g,n -> 
+	  (regAdjective "چكا").s ! n ! g ! Dir ! Posit ;
+	  
+  hw : UPerson -> Number -> Str = \pp,n ->    
+	 case <pp,n> of {
+	 <Pers1,_> => "ہوں";
+	 <_,Pl>    => "ہوں";
+	 <_,_>		=> "ہو"
+	 };
+	 
+   -----------------------------------------------
+   -- Hindustani Adjectives
+   -----------------------------------------------
+   	 
+  Adjective = { s: Number => Gender => Case => Degree => Str };
+  regAdjective : Str -> Adjective; 
+  regAdjective x =  case x of {
+	              acch + ("ا"|"اں") => mkAdjective x  ("بہت" ++ x)          ("سب سے" ++ x)          (acch + "ے") ("بہت" ++ acch + "ے") ("سب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("سب سے" ++ acch + "ے")
+		                                      (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی")
+						      (acch +"ے")  ("بہت" ++ acch + "ے") ("سب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("سب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("سب سے" ++ acch + "ے")
+		                                      (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("سب سے" ++ acch + "ی");
+									
+                        _                 => mkAdjective  x x x x x x x x x
+                                                        x x x x x x x x x
+                                                        x x x x x x x x x
+                                                        x x x x x x x x x									 
+                            }; 
+					 
+
+    mkAdjective : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> Adjective = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
+     s = table {
+	    Sg => table {
+		        Masc => table {
+				        Dir => table {
+						      Posit  => y1 ;
+						      Compar => y2 ;
+						      Superl => y3
+							 };
+					Obl => table {
+						     Posit  => y4 ;
+						     Compar => y5 ;
+						     Superl => y6
+							 };
+					Voc => table {
+						     Posit  => y7 ;
+						    Compar => y8 ;
+						    Superl => y9
+							 }
+							};
+			Fem => table {
+				        Dir => table {
+						     Posit  => y10 ;
+						      Compar => y11 ;
+						      Superl => y12
+							 };
+					Obl => table {
+						     Posit  => y13 ;
+						    Compar => y14 ;
+						    Superl => y15
+							 };
+					Voc => table {
+						     Posit  => y16 ;
+						    Compar => y17 ;
+						    Superl => y18
+							 }
+							}
+					};		
+	    Pl => table {
+		        Masc => table {
+				        Dir => table {
+						     Posit  => y19 ;
+						     Compar => y20 ;
+						      Superl => y21
+							 };
+					Obl => table {
+						     Posit  => y22 ;
+						      Compar => y23 ;
+						      Superl => y24
+							 };
+					Voc => table {
+						     Posit  => y25 ;
+						    Compar => y26 ;
+						    Superl => y27
+							 }
+							}; 
+			Fem => table {
+				        Dir => table {
+						     Posit  => y28 ;
+						    Compar => y29 ;
+						    Superl => y30
+							 };
+					Obl => table {
+						     Posit  => y31 ;
+						      Compar => y32 ;
+						      Superl => y33
+							 };
+					Voc => table {
+						     Posit  => y34 ;
+						    Compar => y35 ;
+						    Superl => y36
+							 }
+							}
+                        }
+                    }
+            };
+	
+   Verb : Type = {s : VerbForm => Str} ;
+
+ predV : Verb -> VPH ;
+  predV v = {
+         s = \\vh => 
+	   case vh of {
+	         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = v.s ! VF Imperf p n g } ;
+		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =v.s ! VF Perf p n g} ;
+		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  v.s ! VF Subj p n g } ;
+		 VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ; 
+		 VPStem => {fin = []  ; inf =  v.s ! Root};
+		 VPInf => {fin = v.s ! Inf_Obl  ; inf =  v.s ! Root}; -- for V2V like sonE ky altja krna , check if it is being used anywhere else
+		 VPImp => {fin = v.s ! VF Subj Pers3_Near Pl Masc  ; inf =  v.s ! Root};
+		 _ => {fin = [] ; inf = v.s ! Root} 
+		 };
+	    obj = {s = [] ; a = defaultAgr} ;
+		subj = VIntrans ;
+		inf = v.s ! Inf;
+		ad = [];
+        embComp = [];
+	prog = False ;
+        comp = \\_ => []
+      } ;	    
+							 
+   defaultAgr : Agr = agrP3 Masc Sg ;
+   agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;
+   toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+  insertSubj : UPerson -> Str -> Str = \p,s -> 
+      case p of { Pers1 => s ++ "وں" ; _ => s ++ "ے"};
+      
+ mkOrd : Str -> Str =
+ \s -> case s of {
+                    "ایك"                  => "پہلا";
+                    "دو"                  => "دوسرا";
+                    "تیں"                => "تعسرا";
+                    "چار"                => "چوتھا";
+                    "چھ" 		 => "چھٹا";
+                     _                   =>  s ++ "واں"
+                  };     
+}
+
diff --git a/lib/src/urdu/ConjunctionUrd.gf b/lib/src/urdu/ConjunctionUrd.gf
--- a/lib/src/urdu/ConjunctionUrd.gf
+++ b/lib/src/urdu/ConjunctionUrd.gf
@@ -1,43 +1,2 @@
---concrete ConjunctionUrd of Conjunction = 
---  CatUrdu ** open ResUrdu, Coordination, Prelude in {
-
-concrete ConjunctionUrd of Conjunction = 
-  CatUrd ** open ResUrd, Coordination, Prelude in {
-
-
-  flags optimize=all_subs ;
-
-  lin
-
-    ConjS  = conjunctDistrSS  ;
-
-    ConjAdv = conjunctDistrSS ;
-
-    ConjNP conj ss = conjunctDistrTable NPCase conj ss ** {
-      a = conjAgr (agrP3 Masc conj.n) ss.a
-      } ;
-
-    ConjAP conj ss = conjunctDistrTable4 Number Gender Case Degree conj ss ; 
-    ConjRS conj rs = conjunctDistrTable Agr conj rs ** { c = rs.c};
-
----- These fun's are generated from the list cat's.
-
-    BaseS = twoSS ;
-    ConsS = consrSS comma ;
-    BaseAdv = twoSS ;
-    ConsAdv = consrSS comma ;
-    BaseNP x y = twoTable NPCase x y ** {a = conjAgr x.a y.a} ;
-    BaseRS x y = twoTable Agr x y ** {c = x.c};
-    ConsNP xs x = consrTable NPCase comma xs x ** {a = conjAgr xs.a x.a} ;
-    ConsRS xs x = consrTable Agr comma xs x ** { c = xs.c};
-    BaseAP x y = twoTable4 Number Gender Case Degree x y ; -- ** {isPre = andB x.isPre y.isPre} ;
-    ConsAP xs x = consrTable4 Number Gender Case Degree comma xs x ;-- ** {isPre = andB xs.isPre x.isPre} ;
-
-  lincat
-    [S] = {s1,s2 : Str} ;
-    [Adv] = {s1,s2 : Str} ;
-    [NP] = {s1,s2 : NPCase => Str ; a : Agr} ;
-    [AP] = {s1,s2 : Number => Gender => Case => Degree => Str} ;
-    [RS] = {s1,s2 : Agr => Str ; c : Case};
-
-}
+concrete ConjunctionUrd of Conjunction = CatUrd ** ConjunctionHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/DiffUrd.gf b/lib/src/urdu/DiffUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/DiffUrd.gf
@@ -0,0 +1,115 @@
+instance DiffUrd of DiffHindustani = open CommonHindustani, Prelude in {
+
+flags coding = utf8 ;
+
+oper
+
+Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+                                                   _    => vp.s !  VPTense VPFutr agr } ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "شاید" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "شاید" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كیا" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نہیں" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => vp.s !  VPTense VPFutr agr ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "شاید"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كیا" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نہیں" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+
+ 
+ np2pronCase ppf npc a = case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg => case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => ppf ! Obl ++ "نے" ;
+	   _			     => ppf ! Dir ++ "نے"
+	   }
+      } ;
+}
diff --git a/lib/src/urdu/ExtraHindustani.gf b/lib/src/urdu/ExtraHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/ExtraHindustani.gf
@@ -0,0 +1,18 @@
+--concrete ExtraUrd of ExtraUrdAbs = CatUrd ** 
+--  open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd in {
+incomplete concrete ExtraHindustani of ExtraHindustaniAbs = CatHindustani ** 
+   open CommonHindustani,Coordination,ResHindustani, ParamX in {
+  lin
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "كا" ; a = np.a} ;
+
+    each_Det = mkDet  "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" Sg ;
+    have_V = mkV "راكh-نا";
+    IAdvAdv adv = {s = "كتنی" ++ adv.s} ;
+    ICompAP ap = {s = "كتنے" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "قیمت" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "نoتہiنگ"   ** {c2 = "" };
+
+-- for VP conjunction
+} 
diff --git a/lib/src/urdu/ExtraUrd.gf b/lib/src/urdu/ExtraUrd.gf
--- a/lib/src/urdu/ExtraUrd.gf
+++ b/lib/src/urdu/ExtraUrd.gf
@@ -1,11 +1,19 @@
 concrete ExtraUrd of ExtraUrdAbs = CatUrd ** 
-  open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd in {
+  open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd,CommonHindustani in {
 
+flags coding = utf8 ;
+
   lin
-    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ ka_Str ; a = np.a} ;
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "كا" ; a = np.a} ;
 
-    each_Det = mkDet  hr_kwy_Str hr_kwy_Str hr_kwy_Str hr_kwy_Str Sg ;
-    have_V = mkV rakh6na_Str ;
+    each_Det = mkDet  "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" Sg ;
+    have_V = mkV "راكh-نا";
+    IAdvAdv adv = {s = "كتنی" ++ adv.s ! Masc} ;
+    ICompAP ap = {s = "كتنے" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "قیمت" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "نoتہiنگ"   ** {c2 = "" };
 
 -- for VP conjunction
 } 
diff --git a/lib/src/urdu/ExtraUrdAbs.gf b/lib/src/urdu/ExtraUrdAbs.gf
--- a/lib/src/urdu/ExtraUrdAbs.gf
+++ b/lib/src/urdu/ExtraUrdAbs.gf
@@ -5,4 +5,5 @@
 
   each_Det : Det ;
   have_V : V;
+  cost_V : V;
 }
diff --git a/lib/src/urdu/GrammarUrd.gf b/lib/src/urdu/GrammarUrd.gf
--- a/lib/src/urdu/GrammarUrd.gf
+++ b/lib/src/urdu/GrammarUrd.gf
@@ -1,4 +1,4 @@
---# -path=.:../abstract:../common:../prelude
+--# -path=.:../abstract:../common:../prelude:c:/gf_unicoded/hindustani
 
  concrete GrammarUrd of Grammar = 
   NounUrd, 
@@ -11,9 +11,9 @@
   RelativeUrd,
   ConjunctionUrd,
   PhraseUrd,
-  TextX,
+  TextX - [Adv,AdN],
   StructuralUrd,
-  TenseX,
+  TenseX - [Adv,AdN],
   IdiomUrd
   ** {
 
diff --git a/lib/src/urdu/IdiomUrd.gf b/lib/src/urdu/IdiomUrd.gf
--- a/lib/src/urdu/IdiomUrd.gf
+++ b/lib/src/urdu/IdiomUrd.gf
@@ -1,10 +1,10 @@
-concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd in {
+concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,CommonHindustani in {
 
   flags optimize=all_subs ;
   flags coding = utf8;
 
   lin
-    ImpersCl vp = mkSClause [] (agrP3 Masc Sg) vp ;
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
     GenericCl vp = mkSClause "كوی" (agrP3 Masc Sg) vp ;
 
     CleftNP np rs = 
@@ -12,11 +12,11 @@
 	  in 
 	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
 	  
-    CleftAdv ad ss = { s = \\t,b,o => ad.s ++ ss.s};
+    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
         
     ExistNP np = 
       mkSClause "وہاں" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
-        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
+        (insertObj (\\_ => np.s ! NPC Dir) (predAux auxBe)) ;
 
     ExistIP ip = 
      let cl = mkSClause ("وہاں" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
@@ -27,11 +27,13 @@
 		  }
 		};
 
-    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
-
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+    ProgrVP vp =  (predProg vp) ;
 
-    ImpPl1 vp = {s = "آو" ++ infVP True vp (agrP1 Masc Pl)} ;
-	ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPImp ).inf ++ "دو"};
+--    ImpPl1 vp = {s = "آو" ++ infVP True vp (agrP1 Masc Pl)} ; -- inf form is not used e.g Aw swna instead Aw swyyN (Imp.fin)
+   ImpPl1 vp = {s = "آو" ++ (vp.s ! VPImp).fin} ;
+--	ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPImp ).inf ++ "دو"}; here VPImp form is not correct e.g jan ko sw do, rather jan ko swnE do, and swnE is stored in vp.VPInf.fin
+  ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPInf ).fin ++ "دو"};
 
 
 }
diff --git a/lib/src/urdu/LangUrd.gf b/lib/src/urdu/LangUrd.gf
--- a/lib/src/urdu/LangUrd.gf
+++ b/lib/src/urdu/LangUrd.gf
@@ -1,4 +1,4 @@
---# -path=.:../abstract:../common:../prelude
+--# -path=.:../abstract:../common:../hindustani
 
 concrete LangUrd of Lang = 
   GrammarUrd,
diff --git a/lib/src/urdu/LexiconUrd.gf b/lib/src/urdu/LexiconUrd.gf
--- a/lib/src/urdu/LexiconUrd.gf
+++ b/lib/src/urdu/LexiconUrd.gf
@@ -17,30 +17,30 @@
   ask_V2Q = mkV2 (mkV "پوچھنا") ;
   baby_N = mkN "بچہ" ;
   bad_A = mkA "برا" ;
-  bank_N = mkN "بانك" ;
+  bank_N = mkN "بینك" ;
   beautiful_A = mkA "خوبصورت" ;
   become_VA = mkV "بننا";
-  beer_N = mkN "بععر" ;
+  beer_N = mkN "بییر" ;
   beg_V2V =  mkV2V (compoundV "التجا" (mkV "كرنا")) "سے" "كہ" False;
   big_A = mkA "بڑا" ;
-  bike_N = mkN "سایچل" feminine ;
+  bike_N = mkN "سایكل" feminine ;
   bird_N = mkN "پرندہ" ;
   black_A =  mkA "كالا" ;
   blue_A = mkA "نیلا" ;
   boat_N = mkN "كشتی" ;
   book_N = mkN "كتاب" feminine ;
   boot_N = mkN "جوتا" ;
-  boss_N = mkN "صاہب" ;
+  boss_N = mkN "صاحب" ;
   boy_N = mkN "لڑكا" ;
-  bread_N = mkN "روتی" ;
+  bread_N = mkN "روٹی" ;
   break_V2 = mkV2 (mkV "توڑنا") ;
   broad_A = mkA "كھلا" ;
-  brother_N2 = mkN2 (mkN "بھای") (mkPrep "كا") "كے" ; --not correct
+  brother_N2 = mkN2 (mkN "بھای") (mkPrep "كا" "كا") "كے" ; --not correct
   brown_A = mkA "نسواری" ;
   butter_N = mkN "مكھن" ;
-  buy_V2 = mkV2 (mkV "خریدنا");
+  buy_V2 = mkV2 (mkV "خریدنا") "كو";
   camera_N = mkN "كیمرہ" ;
-  cap_N = mkN "توپی" ;
+  cap_N = mkN "ٹوپی" ;
   car_N = mkN "گاڑی" ;
   carpet_N = mkN "تپائی" ;
   cat_N = mkN "بلی" ;
@@ -49,7 +49,7 @@
   cheese_N = mkN "پنیر" feminine ;
   child_N = mkN "بچہ"  ;
   church_N = mkCmpdNoun "گرجا" (mkN "گھر") ;
-  city_N = mkN "شہر" ;
+  city_N = mkN "شہر"  ;
   clean_A = mkA "صاف" ;
   clever_A = mkA "ہوشیار" ;  
   close_V2 =  mkV2 (compoundV "بند" do_V2); 
@@ -62,26 +62,26 @@
   cow_N = mkN "گاے" feminine ;
   die_V = mkV "مرنا" ;
   dirty_A = mkA "گندا" ;
-  distance_N3 = mkN3 (mkN "فاصلہ") (mkPrep "كا") "كے" "سے"  ;
+  distance_N3 = mkN3 (mkN "فاصلہ") (mkPrep "كا" "كا") "كے" "سے"  ;
   doctor_N = mkN "معالج" ;
   dog_N = mkN "كتا" ;
-  door_N = mkN "دروزہ" ;
+  door_N = mkN "دروازہ" ;
   drink_V2 = mkV2 (mkV "پینا");
   easy_A2V = mkA "آسان" "" ;
   eat_V2 = mkV2 (mkV "كھانا") "" ;
   empty_A = mkA "خالی" ;
   enemy_N = mkN "دشمن" ;
   factory_N = mkN "كارخانہ" ;
-  father_N2 = mkN2 (mkN "ابا") (mkPrep "كا") "كے"  ;
-  fear_VS = mkV "درنا";
+  father_N2 = mkN2 (mkN "ابا") (mkPrep "كا" "كا") "كے"  ;
+  fear_VS = mkV "ڈرنا";
   find_V2 = mkV2 (mkV "پانا") ;
   fish_N = mkN "مچھلی" ;
   floor_N = mkN "فرش" ;
   forget_V2 = mkV2 (mkV "بھولنا")  ;
-  fridge_N = mkN "فریگ" ;
+  fridge_N = mkN "فریج" ;
   friend_N = mkN "دوست" masculine ;
   fruit_N = mkN "پھل" ;
---  fun_AV = mkAV (regA "فuن") ;
+--  fun_AV = mkAV (regA "f?ن") ;
   garden_N = mkN "باغ" ;
   girl_N = mkN "لڑكی" ;
   glove_N = mkN "دستانہ" ;
@@ -91,8 +91,8 @@
   green_A = mkA "سبز" ;
   harbour_N = mkCmpdNoun "بندر" (mkN "گاہ") ;
   hate_V2 = mkV2 (compoundV "نفرت" do_V2) ;
-  hat_N = mkN "توپی" ;
---  have_V2 = dirV2 (mk5V "ہاvع" "ہاس" "ہاد" "ہاد" "ہاviنگ") ;
+  hat_N = mkN "ٹوپی" ;
+--  have_V2 = dirV2 (mk5V "ہa?ع" "ہاس" "ہاد" "ہاد" "ہa??نگ") ;
   hear_V2 = mkV2 (mkV "سننا") ;
   hill_N = mkN "پہاڑی" ;
   hope_VS = (compoundV "امید" do_V2);
@@ -104,7 +104,8 @@
   iron_N = mkN "لوہا" ;
   king_N = mkN "بادشاہ" ;
   know_V2 = mkV2 (mkV "جاننا") ;
-  know_VS = mkV "جاننا";
+  know_VS = (mkV "جاننا") ;
+  know_VQ = (mkV "جاننا") ;
   lake_N = mkN "جھیل" feminine ;
   lamp_N = mkN "لیمپ" ;
   learn_V2 = mkV2 (mkV "سیكھنا") ;
@@ -117,12 +118,12 @@
   lose_V2 = mkV2 (compoundV "كھو" do_V2) ;
   love_N = mkN "محبت" ;
   love_V2 = mkV2 (compoundV "پیار" do_V2) "كو";
-  man_N = mkN "آدمی" ; -- not correct according to rules should be discussed
-  married_A2 = mkA "شادی كرنا" "سے" ;
+  man_N = mkN "آدمی" "آدمی" "آدمی" "آدمی" "آدمیوں" "آدمیو" masculine ; 
+  married_A2 = mkA "[شادی كرنa]" "سے" ;
   meat_N = mkN "گوشت" ;
   milk_N = mkN "دودھ" ;
   moon_N = mkN "چاند" ;
-  mother_N2 = mkN2 (mkN "ماں") (mkPrep "كی") "كے";   -- not covered need to be discussed
+  mother_N2 = mkN2 (mkN "ماں") (mkPrep "كی" "كی") "كے";   -- not covered need to be discussed
   mountain_N = mkN "پہاڑی" ;
   music_N = mkN "موسیقی" ;
   narrow_A = mkA "باریك" ;
@@ -141,7 +142,7 @@
   play_V2 = mkV2 (mkV "كھیلنا") ;
   policeman_N = mkCmpdNoun "پولیس" (mkN "والا") ; 
   priest_N = (mkN "پیغمبر") ;
---  probable_AS = mkAS (regA "پرoبابلع") ;
+--  probable_AS = mkAS (regA "پr?بابلع") ;
   queen_N = mkN "شہزادی" ;
   radio_N = mkN "ریڈیو" ;
   rain_V0 = compoundV "بارش" (mkV "ہونا" ) ;
@@ -149,9 +150,9 @@
   red_A = mkA "لال" ;
   religion_N = mkN "مزہب" ;
   restaurant_N = mkN "ہوٹل" ;
-  river_N = mkN "دریا" masculine ;
+--  river_N = mkN "دریا" masculine ;
   rock_N = mkN "چٹان" ;
-  roof_N = mkN "چھت" masculine ;
+--  roof_N = mkN "چھت"   masculine ;
   rubber_N = mkN "ربڑ" ;
   run_V = mkV "دوڑنا" ;
   say_VS = mkV "كہنا" ;
@@ -161,10 +162,10 @@
   seek_V2 = mkV2 (compoundV "تلاش" do_V2) ;
   see_V2 = mkV2 (mkV "دیكھنا") ;
   sell_V3 = mkV3 (mkV "بیچنا") "كو" "";
-  send_V3 = mkV3 (mkV "بھیجنا") "كو" "";
+  send_V3 = mkV3 (mkV "بھیجنا") "كو" "كو";
   sheep_N = mkN "بھیڑ" feminine ;
   ship_N = mkN "جہاز" ;
-  shirt_N = mkN "قمیض" feminine;
+  shirt_N = mkN "قمیص" feminine;
   shoe_N = mkN "جوتا" ;
   shop_N = mkN "دوكان" feminine ;
   short_A = mkA "چھوٹا" ;
@@ -176,7 +177,7 @@
   sock_N = mkN "جراب" feminine ;
   speak_V2 = mkV2 (mkV "بولنا") ;
   star_N = mkN "ستارا" ;
-  steel_N = mkN "ستیل" ;
+  steel_N = mkN "سٹیل" ;
   stone_N = mkN "پتھر" ;
   stove_N = mkN "چولہا" ;
   student_N = mkCmpdNoun "طالب" (mkN "علم") ;
@@ -185,16 +186,16 @@
   switch8off_V2 = mkV2 (mkV "چلانا") ;
   switch8on_V2 = mkV2 (compoundV "بند" do_V2) ;
   table_N = mkN "میز" feminine ;
-  talk_V3 = mkV3 (mkV "بولنا") "سے" "كے بارے معں";
-  teacher_N = mkN "iستاد" ;
+  talk_V3 = mkV3 (mkV "بولنا") "سے" "[كے بارے میN]";
+  teacher_N = mkN "استاد" ;
   teach_V2 = mkV2 (mkV "پڑھنا") ;
-  television_N = mkN "تعلیویزن" ;
+  television_N = mkN "تیلیویژن" ;
   thick_A = mkA "موٹا" ;
   thin_A = mkA "پتلا" ;
   train_N = mkN "گاڑی" ;
   travel_V = (compoundV "سفر" do_V2) ;
-  tree_N = mkN "درخت" masculine ;
--- ---- trousers_N = mkN "ترouسعرس" ;
+--  tree_N = mkN "درخت" masculine ;
+-- ---- trousers_N = mkN "تr??سعرس" ;
   ugly_A = mkA "بدصورت" ;
   understand_V2 = mkV2 (mkV "سمجھنا") ;
   university_N = mkN "یونیورسٹی" ;
@@ -210,14 +211,14 @@
   wine_N = mkN "شراب" feminine ;
   win_V2 = mkV2 (mkV "جیتنا") ;
   woman_N = mkN "عورت" feminine ;
-  wonder_VQ = compoundV "حعران" (mkV "ہونا") ;
+  wonder_VQ = compoundV "حیران" (mkV "ہونا") ;
   wood_N = mkN "لكڑی" ;
   write_V2 = mkV2 (mkV "لكھنا") ;
   yellow_A = mkA "پیلا" ;
   young_A = mkA "جوان" ;
   do_V2 = mkV2 (mkV "كرنا")  ;
   now_Adv = mkAdv "اب" ;
-  already_Adv = mkAdv "پہلے ہی" ;
+  already_Adv = mkAdv "[پہلے ہy]" ;
   song_N = mkN "گانا" ;
   add_V3 = mkV3 (compoundV "اضافہ" do_V2) "" "" ;
   number_N = mkN "ہندسہ" ;
@@ -228,9 +229,9 @@
   left_Ord = {s = "بایاں" ; n = singular};
   right_Ord = {s= "دایاں" ; n = singular};
   far_Adv = mkAdv "دور" ;
-  correct_A = mkA "صیہ" ;
+  correct_A = mkA "صیح" ;
   dry_A = mkA "خشك" ;
-  dull_A = mkA "نالiك" ;
+  dull_A = mkA "نالایق" ;
   full_A = mkA "مكمل" ;
   heavy_A = mkA "بھاری" ;
   near_A = mkA "قریب" ;
@@ -256,26 +257,26 @@
   earth_N = mkN "زمین" feminine ;
   egg_N = mkN "انڈہ" ;
   eye_N = mkN "آنكھ" feminine ;
-  fat_N = mkN "موتا" ;
+  fat_N = mkN "موٹا" ;
   feather_N = mkN "پر" ;
   fingernail_N = mkN "ناخن" ;
   fire_N = mkN "آگ" feminine ;
   flower_N = mkN "پھول" ;
   fog_N = mkN "دھند" feminine ;
   foot_N = mkN "پاوں" ; -- not properly covered need to be discussed
-  forest_N = mkN "نجگل" ;
-  grass_N = mkN "گھس" feminine ;
-  guts_N = mkN "گuت" ; -- FIXME: no singular
+  forest_N = mkN "جنگل" ;
+  grass_N = mkN "گھاس" feminine ;
+  guts_N = mkN "گٹ" ; -- FIXME: no singular
   hair_N = mkN "بال" ;
   hand_N = mkN "ہاتھ" ;
   head_N = mkN "سر" ;
   heart_N = mkN "دل" ;
-  horn_N = mkN "گھنتی" ;
+  horn_N = mkN "گھنٹی" ;
   husband_N = mkN "شوہر" ;
   ice_N = mkN "برف" feminine ;
   knee_N = mkN "كہنی" ;
   leaf_N = mkN "پتہ" ;
-  leg_N = mkN "تانگ" feminine ;
+  leg_N = mkN "ٹانگ" feminine ;
   liver_N = mkN "جگر" ;
   louse_N = mkN "گھر" ;
   mouth_N = mkN "منہ" ;
@@ -286,7 +287,7 @@
   person_N = mkN "شخص" ;
   rain_N = mkN "بارش" feminine ;
   road_N = mkN "سڑك" ;
-  root_N = mkN "گڑ" feminine ;
+  root_N = mkN "جڑ" feminine ;
   rope_N = mkN "رسی" ;
   salt_N = mkN "نمك" feminine ;
   sand_N = mkN "ریت" feminine ;
@@ -298,7 +299,7 @@
   stick_N = mkN "چھڑی" ;
   tail_N = mkN "دم" ;
   tongue_N = mkN "زبان" feminine ;
-  tooth_N = mkN "دانت" masculine;
+--  tooth_N = mkN "دانت" masculine;
   wife_N = mkN "بیوی" ;
   wind_N = mkN "آندھی" ;
   wing_N = mkN "پر" ;
@@ -316,7 +317,7 @@
   give_V3 = mkV3 (mkV "دینا") "كو" "";
   laugh_V = mkV "ہنسنا" ;
 --  lie_N = mkN "جھوت" masculine ;
-  lie_V = compoundV "جھوت" (mkV "بولنا" );
+  lie_V = compoundV "جھوٹ" (mkV "بولنا" );
   play_V = mkV "كھیلنا" ;
   sew_V = mkV "سینا" ;
   sing_V = mkV "گانا" ;
@@ -329,12 +330,12 @@
   think_V = mkV "سوچنا" ;
   turn_V = mkV "مڑنا";
   vomit_V = compoundV "التی" (mkV "كرنا") ;
-  bite_V2 = mkV2 (mkV "كاتنا") ;
+  bite_V2 = mkV2 (mkV "كاٹنا") ;
   count_V2 = mkV2 (mkV "گننا") ;
   cut_V2 = mkV2 (mkV "كاتنا") ;
   fear_V2 = mkV2 (mkV "ڈرنا") ;
   fight_V2 = mkV2 (mkV "لڑنا") ;
-  hit_V2 = mkV2 (compoundV "تھوكر" (mkV "مارنا" ));
+  hit_V2 = mkV2 (compoundV "ٹھوكر" (mkV "مارنا" ));
   hold_V2 = mkV2 (mkV "پكڑنا") ;
   hunt_V2 = mkV2 (compoundV "شكار" do_V2);
   kill_V2 =  mkV2 (compoundV "مار" (mkV "ڈالنا" )) ;
@@ -342,8 +343,8 @@
   push_V2 = mkV2 (mkV "دھكیلنا") "كو" ;
   rub_V2 = mkV2 (mkV "رگڑنا") ;
   scratch_V2 = mkV2 (mkV "كھرچنا") "كو" ;
-  split_V2 = mkV2 (mkV "بانتا") "كو" ;
---  squeeze_V2 = dirV2 (regV "سقuععزع") ;
+  split_V2 = mkV2 (mkV "بانٹنا") "كو" ;
+--  squeeze_V2 = dirV2 (regV "سq?ععزع") ;
 --  stab_V2 = dirV2 (regDuplV "ستاب") ;
   suck_V2 = mkV2 (mkV "چوسنا") ;
   throw_V2 = mkV2 (mkV "پھینكنا") ;
@@ -351,19 +352,19 @@
   wash_V2 = mkV2 (mkV "دھونا") ;
   wipe_V2 = mkV2 (compoundV "صاف" (mkV "كرنا" ));
 
-----  other_A = regA "oتہعر" ;
+----  other_A = regA "?تہعر" ;
 
   grammar_N = mkN "گردان" ;
   language_N = mkN "زبان" feminine ;
   rule_N = mkN "اصول" ;
 
 ---- added 4/6/2007
-    john_PN = mkPN "جoن" ;
+    john_PN = mkPN "جان" ;
     question_N = mkN "سوال" ;
 --    ready_A = regA "رعادی" ;
     reason_N = mkN "وجہ" feminine ;
     today_Adv = mkAdv "آج" ;
-    uncertain_A = mkA ["غیر یقینی"] ;
+    uncertain_A = mkA ["غیریقینی"] ;
     
  
 }
diff --git a/lib/src/urdu/Makefile b/lib/src/urdu/Makefile
deleted file mode 100644
--- a/lib/src/urdu/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all: transliterate
-
-transliterate:
-	gf <transliterateUrdu.gfs
-
diff --git a/lib/src/urdu/MorphoUrd.gf b/lib/src/urdu/MorphoUrd.gf
--- a/lib/src/urdu/MorphoUrd.gf
+++ b/lib/src/urdu/MorphoUrd.gf
@@ -8,7 +8,7 @@
 ---- syntax. To build a lexicon, it is better to use $ParadigmsUrd$, which
 ---- gives a higher-level access to this module.
 --
-resource MorphoUrd = ResUrd ** open Prelude,Predef in {
+resource MorphoUrd = ResUrd ** open CommonHindustani,Prelude,Predef,ParamX in {
 
   flags optimize=all ;
    coding = utf8;
@@ -42,6 +42,7 @@
                  _ + "ی" => mkN03 (s);
                  _ + ("اں"|"وں") => mkN04 (s);
                  _ + "ؤ" => mkN12 (s);
+		 _ + "ت" => mkN10 s ;
              _			  => regNoun2 (s)				 
                  };
 	regNoun2 : Str -> Noun;
@@ -169,7 +170,7 @@
                           (bhao)      (bhao)     (bhao)
                     Masc ;
 ----2 Determiners
-  IDeterminer = {s:Gender => Str ; n : Number};
+  IDeterminer = {s:Gender => Case => Str ; n : Number};
   makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
    s = table {
       Sg => table {
@@ -187,15 +188,45 @@
 	
   makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
    s = table {
-        Masc => s1;
-		Fem  => s2
+        Masc => table {_ =>s1};
+	Fem  => table {_ =>s2} 
 	 };
 	 n = n
-    };		
+    };
     
+-- IQuant
+  
+makeIQuant : Str -> {s : Number => Gender => Case => Str} = \str -> {
+  s = table {
+	        Sg => table {
+				Masc => table {
+						     Dir => str ++ "سا" ;
+						      _ => str ++ "سے" 
+                             
+							 };
+				Fem => table {
+						     _ => str ++ "سی"
+							 }
+						};
+		Pl => table {
+				Masc => table {
+						     _ => str ++ "سے"
+							 };
+				Fem => table {
+						     _ => str ++ "سی"
+							 }
+					} 
+				}
+               };    
+   
+    
 -- Proposition  
  
-  makePrep : Str -> Preposition = \str -> {s = str};
+  makePrep : Str -> Str -> Preposition = \s1,s2 -> {s =
+  table {
+                Masc => s1;
+		Fem  => s2
+	 }; } **  { lock_Prep = <>};
    
 ----2 Pronouns
    PronForm = {s:Pronoun => Str};
@@ -374,7 +405,7 @@
         <Imperf,Pers2_Respect,Pl,Fem>         => root+"تیں";
 		<Imperf,_,Sg,Masc>					  => root+"تا";
 		<Imperf,_,Sg,Fem>					  => root+"تی";
-		<Imperf,_,Pl,Masc>					  => root+"تع";
+		<Imperf,_,Pl,Masc>					  => root+"تے";
 		<Imperf,_,Pl,Fem>					  => root+"تیں"
         }
        
diff --git a/lib/src/urdu/NounUrd.gf b/lib/src/urdu/NounUrd.gf
--- a/lib/src/urdu/NounUrd.gf
+++ b/lib/src/urdu/NounUrd.gf
@@ -1,119 +1,2 @@
-concrete NounUrd of Noun = CatUrd ** open ResUrd, Prelude in {
-
-  flags optimize=all_subs ;
-
-  lin
-    DetCN det cn = {
-      s = \\c => detcn2NP det cn c det.n  ;
-      a = agrP3 cn.g det.n
-      } ;
-
-    UsePN pn = {s = \\c => toNP pn.s c ; a = agrP3 pn.g Sg} ;
-    UsePron p = {s = \\c => np2pronCase p.s c ; a = p.a} ;
-
-    PredetNP pred np = {
-      s = \\c => pred.s ++ np.s ! c ;
-      a = np.a
-      } ;
-
-    PPartNP np v2 = {
-      s = \\c => v2.s ! VF Imperf Pers1 Sg Fem   ++ np.s ! c   ;
-      a = np.a
-      } ;
-
-    RelNP np rs = {
-	  s = \\c => np.s ! c ++ comma_Str ++ rs.s ! np.a ;
-      a = np.a
-      } ;
-
-    AdvNP np adv = {
-      s = \\c => np.s ! c ++ adv.s ;
-      a = np.a
-      } ;
-
-    DetQuantOrd quant num ord = {
---      s = \\ c => detquant2det quant.s num.s c  ++ ord.s ; 
-        s = \\n,g => quant.s!n!g!Dir ++ num.s ++ ord.s;
-      n = num.n
-      } ;
-
-    DetQuant quant num = {
---      s = \\c => detquant2det quant.s num.s c; 
-        s = \\n,g => quant.s!n!g!Dir ++ num.s;
-	  n = num.n
-      } ;
-
-    DetNP det = {
-      s = \\c => det2NP det c ; ---- case
-      a = agrP3 Masc Sg
-      } ;
-
-    PossPron p = {s = \\_,_,_ => p.ps ; a = p.a} ;
-
-    NumSg = {s = []; n = Sg} ;
-    NumPl = {s = []; n = Pl} ;
-
-    NumCard n = n ** {hasCard = True} ;
-
-    NumDigits n = {s = n.s ! NCard ; n = n.n} ;
-    OrdDigits n = {s = n.s ! NOrd; n = n.n} ;
-
-    NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
-    OrdNumeral numeral = {s = numeral.s ! NOrd ; n = numeral.n} ;
-
-    AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
-
-    OrdSuperl a = {s = a.s ! Sg ! Masc ! Dir ! Superl ; n = Sg} ;
-
-    DefArt = {s = \\_,_,_ => [] ; a = defaultAgr} ;
-    IndefArt = {s = \\_,_,_ => [] ; a =defaultAgr } ;
-
-    MassNP cn = {s = \\c => toNP (cn.s ! Sg) c ; a = agrP3 cn.g Sg} ;
-
-    UseN n = n ;
-    UseN2 n = { s = n.s  ; g = n.g };
-
-    Use2N3 f = {
-      s = f.s;
-      g = f.g ;
-      c2 = f.c2;
-      c3 = f.c3
-      } ;
-
-    Use3N3 f = {
-      s = f.s ;
-      g = f.g ;
-      c2 = f.c2;
-      c3 = f.c3
-      } ;
-
-    ComplN2 f x = {s = \\n,c => case c of {
-       Dir => x.s ! NPC c ++ f.c2  ++ f.s ! n ! c ;
-	   Obl => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c ;
-	   ResUrd.Voc => x.s ! NPC c ++ f.c3 ++ f.s ! n ! c 
-	   };
-	   g = f.g;
-	   };
-    ComplN3 f x = {
-      s = \\n,c =>  x.s ! NPObj ++ f.c4  ++ f.s ! n ! Dir  ;
-      g = f.g ;
-      c2 = f.c2;
-      c3 = f.c3
-      } ;
-
-    AdjCN ap cn = {
-      s = \\n,c => ap.s ! n ! cn.g ! c ! Posit ++ cn.s ! n ! c ;
-      g = cn.g
-      } ;
-
-    RelCN cn rs = {
-      s = \\n,c => cn.s ! n ! c ++ rs.s ! agrP3 cn.g n ;
-      g = cn.g
-      } ;
-    AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
-
-    SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
-
-    ApposCN cn np = {s = \\n,c => cn.s ! n ! Dir ++ np.s ! NPC c ; g = cn.g} ;
-
-}
+concrete NounUrd of Noun = CatUrd ** NounHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/NumeralUrd.gf b/lib/src/urdu/NumeralUrd.gf
--- a/lib/src/urdu/NumeralUrd.gf
+++ b/lib/src/urdu/NumeralUrd.gf
@@ -1,127 +1,118 @@
-concrete NumeralUrd of Numeral = CatUrd ** open ResUrd in {
--- By Harald Hammarström
--- Modification for Urdu Shafqat Virk
- flags coding=utf8 ;
---- still old Devanagari coding
-
-
-param DForm = unit | ten ;
-param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
-param Size = sing | less100 | more100 ; 
-
-oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
-
-
-lincat Dig = { s:Str ; n : Number};
-lincat Digit = LinDigit ;
-lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
-lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
-lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
-lincat Sub1000000 = { s : Str ; n : Number } ;
-
-lin num x0 = 
-    {s = table {
-          NCard =>   x0.s ; 
-          NOrd =>  x0.s ++ "واں" -- need to use mkOrd which will make irregular ordinals but it gives path error
-          };
-       n = x0.n
-    } ;
-oper mkOrd : Str -> Str =
- \s -> case s of {
-                    "عك"                  => "پہلا";
-                    "دo"                  => "دوسرا";
-                    "تi:ن"                => "تعسرا";
-                    "چa:ر"                => "چوتھا";
-                    ("چحاہ"|"چحا"|"چحاi") => "چھٹا";
-                    _                     =>  s ++ "واں"
-                  };
---  {s = \\_ => x0.s ; n = x0.n} ; 
-
-
-oper mkNum : Str -> Str -> DSize -> LinDigit = 
-  \do -> \bis -> \sz ->  
-  {s = table {unit => do ; ten => bis } ; 
-   size = sz ; n = Pl} ;
-
-lin n2 = mkNum "دو" "بیس" r2 ;
-lin n3 = mkNum "تین" "تیس" r3 ;
-lin n4 = mkNum "چار" "چالیس" r4 ;
-lin n5 = mkNum "پانچ" "پچاس" r5 ;
-lin n6 = mkNum "چھ" "ساتھ" r6 ; 
-lin n7 = mkNum "سات" "ستر" r7; 
-lin n8 = mkNum "آتھ" "اسی" r8;
-lin n9 = mkNum "نو" "نوے" r9 ;
-
-oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
-  sg => a1 + "اہ" ;
-  r2 => a2 + "i:س" ;
-  r3 => a3 + "تi:س" ;
-  r4 => a4 + "a:لi:س" ;
-  r5 => a5 + "ان" ;
-  r6 => a6 + "ساٹح" ;
-  r7 => a7 + "ہاتتار" ;
-  r8 => a8 + "a:سi:" ;
-  r9 => a9 + "a:ناvع"
-} ;
-
-oper rows : DSize => DSize => Str = table {
-  sg => mkR "گیارہ" "iكك" "iكات" "عكت" "iكیاو" "iك" "iك" "iكی" "iكی" ; 
-  r2 => mkR "بارہ" "بای" "بات" "بای" "باو" "با" "با" "بای" "ب" ;
-  r3 => mkR "تیر" "تی" "تین" "تنت" "ترپ" "تری" "ت" "تر" "تر" ;
-  r4 => mkR "چود" "چوب" "چون" "چوا" "چوو" "چون" "چوہ" "چور" "چور" ;
-  r5 => mkR "پند" "پچی" "پین" "پنتا" "پچپ" "پین" "پہ" "پچ" "پچ" ;
-  r6 => mkR "سول" "چھب" "چھت" "چھی" "چھپ" "چھیا" "چھ" "چھی" "چھی" ;
-  r7 => mkR "ستر" "ستا" "سین" "سنت" "ستاو" "ستا" "سر" "ست" "ستا" ;
-  r8 => mkR "اتھار" "اتھای" "اڑ" "اڑت" "اتھاو" "اڑ" "اتھ" "اتھ" "اتھ" ; 
-  r9 => table {sg => "انیس" ; r2 => "انتیس" ; r3 => "انتالیس" ; 
-               r4 => "انچاس" ; r5 => "انستھ" ; r6 => "انہتر" ; 
-               r7 => "اناسی" ; 
-               r8 => "انانوے" ; r9 => "ننانوے" } 
-} ;
-
-oper ss : Str -> {s : Str} = \s -> {s = s} ;
-
-lin pot01 = {s = table {unit => "ایك" ; _ => "دuممی" } ; size = sg ; n = Sg} ;
-lin pot0 d = d ; 
-lin pot110 = {s = "داس" ; size = less100 ; n = Pl} ; 
-lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
-lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
-lin pot0as1 n = {s = n.s ! unit ; size = table {sg => sing ; _ => less100} ! n.size ; n = n.n } ;
-
-lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
-lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
-
-lin pot1as2 n = {s = n.s ; s2 = "دuممی" ; size = n.size ; n = n.n} ;
-lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
-              s2 = d.s ! unit ++ "لاكھ" ; size = more100 ; n = d.n} ;
-lin pot2plus d e = 
-  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
-   s2 = (d.s ! unit) ++ "لاكھ" ++ (mkhazar e.s e.size) ; 
-   size = more100 ; n = d.n} ;
-
-lin pot2as3 n = {s = n.s ; n = n.n} ;
-lin pot3 n = {s = table { sing => ekhazar ;
-                          less100 => n.s ++ "ہزار" ; 
-                          more100 => n.s2 } ! n.size ; n = n.n} ;
-lin pot3plus n m = 
-  {s = table {sing => ekhazar ;
-              less100 => n.s ++ "ہزار" ; 
-              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
-
-lin D_0 = { s = "0" ; n = Sg};
-lin D_1 = { s = "1" ; n = Sg};
-lin D_2 = { s = "2" ; n = Pl};
-lin D_3 = { s = "3" ; n = Pl};
-lin D_4 = { s = "4" ; n = Pl};
-lin D_5 = { s = "5" ; n = Pl};
-lin D_6 = { s = "6" ; n = Pl};
-lin D_7 = { s = "7" ; n = Pl};
-lin D_8 = { s = "8" ; n = Pl};
-lin D_9 = { s = "9" ; n = Pl};
-lin IDig d = { s = \\_ => d.s ; n = d.n} ;
-lin IIDig d dg = { s = \\df => dg.s ! df ++ d.s ; n = Pl }; -- need to use + rather than ++, but gives error need to discuss
-
-oper ekhazar : Str = variants {"ہزار" ; "ایك" ++ "ہزار"} ; 
-oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {sing => ekhazar ; _ => s ++ "ہزار"} ! sz ;
-oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "سو" ; _ => s ++ "سو"} ! sz ;
-}
+concrete NumeralUrd of Numeral = CatUrd ** open ResUrd,CommonHindustani,ParamX, Prelude in {
+-- By Harald Hammarström
+-- Modification for Urdu Shafqat Virk
+
+-- still old Devanagari coding
+
+flags coding=utf8 ;
+
+param DForm = unit | ten ;
+param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
+param Size = singl | less100 | more100 ; 
+
+oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
+
+
+lincat Dig = { s:Str ; n : Number};
+lincat Digit = LinDigit ;
+lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
+lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
+lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
+lincat Sub1000000 = { s : Str ; n : Number } ;
+
+lin num x0 = 
+    {s = table {
+          NCard =>   x0.s ; 
+          NOrd =>  x0.s ++ "واں" -- need to use mkOrd x0.s but it gives linking error 
+          };
+       n = x0.n
+    } ;
+
+
+oper mkNum : Str -> Str -> DSize -> LinDigit = 
+  \do -> \bis -> \sz ->  
+  {s = table {unit => do ; ten => bis } ; 
+   size = sz ; n = Pl} ;
+
+lin n2 = mkNum "دو" "بیس" r2 ;
+lin n3 = mkNum "تین" "تیس" r3 ;
+lin n4 = mkNum "چار" "چالیس" r4 ;
+lin n5 = mkNum "پانچ" "پچاس" r5 ;
+lin n6 = mkNum "چھ" "ساتھ" r6 ; 
+lin n7 = mkNum "سات" "ستر" r7; 
+lin n8 = mkNum "آتھ" "اسی" r8;
+lin n9 = mkNum "نو" "نوے" r9 ;
+
+oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
+  sg => a1 + "اہ" ;
+  r2 => a2 + "یس" ;
+  r3 => a3 + "تیس" ;
+  r4 => a4 + "الیس" ;
+  r5 => a5 + "ن" ;
+  r6 => a6 + "ساٹھ" ;
+  r7 => a7 + "ہتر" ;
+  r8 => a8 + "اسی" ;
+  r9 => a9 + "انوے"
+} ;
+
+oper rows : DSize => DSize => Str = table {
+  sg => mkR "گیارہ" "اك" "اكت" "اكت" "اكیاو" "اك" "اك" "اكی" "اكی" ; 
+  r2 => mkR "بارہ" "بای" "بات" "بای" "باو" "با" "با" "بای" "ب" ;
+  r3 => mkR "تیر" "تی" "تین" "تنت" "ترپ" "تری" "ت" "تر" "تر" ;
+  r4 => mkR "چود" "چوب" "چون" "چوا" "چوو" "چون" "چوہ" "چور" "چور" ;
+  r5 => mkR "پند" "پچی" "پین" "پنتا" "پچپ" "پین" "پہ" "پچ" "پچ" ;
+  r6 => mkR "سول" "چھب" "چھت" "چھی" "چھپ" "چھیا" "چھ" "چھی" "چھی" ;
+  r7 => mkR "ستر" "ستا" "سین" "سنت" "ستاو" "ستا" "سر" "ست" "ستا" ;
+  r8 => mkR "اتھار" "اتھای" "اڑ" "اڑت" "اتھاو" "اڑ" "اتھ" "اتھ" "اتھ" ; 
+  r9 => table {sg => "انیس" ; r2 => "انتیس" ; r3 => "انتالیس" ; 
+               r4 => "انچاس" ; r5 => "انستھ" ; r6 => "انہتر" ; 
+               r7 => "اناسی" ; 
+               r8 => "انانوے" ; r9 => "ننانوے" } 
+} ;
+
+oper ss : Str -> {s : Str} = \s -> {s = s} ;
+
+lin pot01 = {s = table {unit => "ایك" ; _ => "دمی" } ; size = sg ; n = Sg} ;
+lin pot0 d = d ; 
+lin pot110 = {s = "داس" ; size = less100 ; n = Pl} ; 
+lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
+lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
+lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ;
+
+lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
+lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
+
+lin pot1as2 n = {s = n.s ; s2 = "دمی" ; size = n.size ; n = n.n} ;
+lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
+              s2 = d.s ! unit ++ "لاكھ" ; size = more100 ; n = d.n} ;
+lin pot2plus d e = 
+  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
+   s2 = (d.s ! unit) ++ "لاكھ" ++ (mkhazar e.s e.size) ; 
+   size = more100 ; n = d.n} ;
+
+lin pot2as3 n = {s = n.s ; n = n.n} ;
+lin pot3 n = {s = table { singl => ekhazar ;
+                          less100 => n.s ++ "ہزار" ; 
+                          more100 => n.s2 } ! n.size ; n = n.n} ;
+lin pot3plus n m = 
+  {s = table {singl => ekhazar ;
+              less100 => n.s ++ "ہزار" ; 
+              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
+
+lin D_0 = { s = "۰" ; n = Sg};
+lin D_1 = { s = "۱" ; n = Sg};
+lin D_2 = { s = "۲" ; n = Pl};
+lin D_3 = { s = "۳" ; n = Pl};
+lin D_4 = { s = "۴" ; n = Pl};
+lin D_5 = { s = "۵" ; n = Pl};
+lin D_6 = { s = "۶" ; n = Pl};
+lin D_7 = { s = "۷" ; n = Pl};
+lin D_8 = { s = "۸" ; n = Pl};
+lin D_9 = { s = "۹" ; n = Pl};
+lin IDig d = { s = \\_ => d.s ; n = d.n} ;
+lin IIDig d dg = { s = \\df => Prelude.glue (dg.s ! df) d.s ; n = Pl }; 
+
+oper ekhazar : Str = variants {"ہزار" ; "ایك" ++ "ہزار"} ; 
+oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {singl => ekhazar ; _ => s ++ "ہزار"} ! sz ;
+oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "سو" ; _ => s ++ "سو"} ! sz ;
+}
diff --git a/lib/src/urdu/ParadigmsUrd.gf b/lib/src/urdu/ParadigmsUrd.gf
--- a/lib/src/urdu/ParadigmsUrd.gf
+++ b/lib/src/urdu/ParadigmsUrd.gf
@@ -6,7 +6,9 @@
   Predef, 
   Prelude, 
   MorphoUrd,
-  CatUrd
+  CatUrd,
+  CommonHindustani,
+  ParamX
   in {
 
 --2 Parameters 
@@ -25,75 +27,107 @@
 --2 Nouns
 
   mkN = overload {
-    mkN : Str -> N 
+    mkN : Str -> N -- Regular nouns like lRka, gender is judged from noun ending 
       = \s -> regNoun s ** {lock_N = <>} ;
-    mkN : Str -> Gender -> N 
+    mkN : Str -> Gender -> N -- nouns whose gender is irregular like Admy
       = \s,g -> reggNoun s g ** {lock_N = <>} ;
-    mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N 
+    mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N -- worst case 
       = \sd,so,sv,pd,po,pv,g -> mkNoun sd so sv pd po pv g ** {lock_N = <>} ;
     } ;
-  mkN2 : N -> Prep -> Str -> N2;
-  mkN2 = \n,p,c -> n ** {lock_N2 = <> ; c2 = p.s ; c3 = c } ; 
+  mkN2 : N -> Prep -> Str -> N2; -- e.g maN ky
+  mkN2 = \n,p,c -> n ** {lock_N2 = <> ; c2 = p.s ! n.g ; c3 = c } ; 
   
-  mkN3 : N -> Prep -> Str -> Str-> N3 ;
-  mkN3 = \n,p,q,r -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q ; c4 = r} ;
+  mkN3 : N -> Prep -> Str -> Str-> N3 ; -- e.g faSlh - sE - ka
+  mkN3 = \n,p,q,r -> n ** {lock_N3 = <> ; c2 = p.s ! n.g ; c3 = q ; c4 = r} ;
   
+
+  
 -- Compound Nouns  
 
-    mkCmpdNoun : Str -> N -> N
+    mkCmpdNoun : Str -> N -> N -- e.g t-alb elm
      = \s,noun -> {s =\\n,c => s ++ noun.s ! n ! c ; g = noun.g ; lock_N = <>};
  
 
 -- Proper names     
-  mkPN : Str -> PN = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
-  personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
-  demoPN : Str -> Str -> Str -> Quant = \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
-  mkDet : Str -> Str -> Str -> Str -> Number -> Det = \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
-  mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP = \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ;  lock_IP = <>}; 
+  mkPN : Str -> PN 
+    = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
+  personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron 
+  = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
+  demoPN : Str -> Str -> Str -> Quant
+  = \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
+  mkDet : Str -> Str -> Str -> Str -> Number -> Det 
+  = \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
+  mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP 
+  = \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ;  lock_IP = <>}; 
 
+-- AdN
+  mkAdN : Str -> AdN 
+  = \s -> {s = s ; p = False ; lock_AdN = <>} ; 
 --2 Adjectives
 
   mkA = overload {
-    mkA : Str-> A 
+    mkA : Str-> A -- e.g ach'a
       = \s -> regAdjective s ** {lock_A = <>} ;
-	mkA : Str -> Str -> A2
+	mkA : Str -> Str -> A2 -- e.g sE Xady krna
 	  = \a,c -> let n = regAdjective a in {s = n.s; c2 = c} ** {lock_A2 = <>} ;
     } ;
+  mkA2 : A -> Str -> A2 ;
+  mkA2 a str = a ** {c2=str ; lock_A2 = <>} ;
 
 --2 Verbs
 
-  mkV : Str -> V 
+  mkV : Str -> V -- regular verbs like swna
       = \s -> mkVerb s ** {lock_V = <>} ;
 
   mkV2 = overload {
-    mkV2 : Str -> V2 
+    mkV2 : Str -> V2 -- e.g pyna
       = \s -> mkVerb s **  {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
-    mkV2 : V -> V2 
+    mkV2 : V -> V2 -- e.g pyna
       = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
-    mkV2 : V -> Str -> V2 
+    mkV2 : V -> Str -> V2 -- e.g bnd krna
       = \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
     } ;
+  dirV2 : V -> V2 = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ; --%
   
-  mkV3 : V -> Str -> Str -> V3;
+  mkV3 : V -> Str -> Str -> V3; -- e.g bycna
     mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
-  mkV2V : V -> Str -> Str -> Bool -> V2V ;
+  mkV2V : V -> Str -> Str -> Bool -> V2V ; -- e.g eltja krna - sE - kw
     mkV2V v s1 s2 b = v ** {isAux = b ; c1 = s1 ; c2 = s2 ; lock_V2V = <>} ;
+  dirdirV3 : V -> V3 ;
+  dirdirV3 v = v ** { c2 = [] ; c3 = [] ; lock_V3 = <>} ;
   
 -- compund verbs
    compoundV = overload {
-   compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;     
-   compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
+   compoundV : Str -> V -> V -- e.g barX hwna
+      = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;     
+   compoundV : Str -> V2 -> V -- e.g bnd krna
+     = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
    };
  
 
 ----2 Adverbs
-  mkAdv : Str -> Adv = \str -> {s = str ; lock_Adv = <>};
+  mkAdv : Str -> Adv -- e.g yhaN
+    = \str -> {s = \\_ => str ; lock_Adv = <>};
 
 ----2 Prepositions
 
-  mkPrep : Str -> Prep ;
-    mkPrep str = lin Prep (makePrep str) ;
+  mkPrep : Str -> Str -> Prep ; -- e.g ka - ky
+    mkPrep s1 s2 = makePrep s1 s2 ** {lock_Prep = <>};
+    
+--3 Determiners and quantifiers
 
+--  mkQuant : overload {
+--    mkQuant : Pron -> Quant ;
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant ;
+--  } ;
+  
+--  mkQuant = overload {
+--    mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>};
+--    mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant = mkQuantifier;
+--  } ;
+  mkIQuant : Str -> IQuant = \s -> makeIQuant s ; --%
+  
+
 --2 Conjunctions
   mkConj : overload {
     mkConj : Str -> Conj ;                  -- and (plural agreement)
@@ -102,25 +136,33 @@
     mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
   } ;
  mkConj = overload {
-    mkConj : Str -> Conj = \y -> mk2Conj [] y plural ;
-    mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
-    mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ;
-    mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
+    mkConj : Str -> Conj = \y -> mk2Conj [] y plural ; --%
+    mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ; --%
+    mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ; --%
+    mkConj : Str -> Str -> Number -> Conj = mk2Conj ; --%
   } ;
 
-  mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> 
+  mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> --%
     lin Conj (sd2 x y ** {n = n}) ;  
 
 --  mkV0  : V -> V0 ;
---  mkVS  : V -> VS ;
+  mkVS  : V -> VS; -- e.g drna
+  mkVS v = v ;
 --  mkV2S : V -> Prep -> V2S ;
-  mkVV  : V -> VV = \v ->  lin VV (v ** {isAux = False});
+  mkVV  : V -> VV  -- e.g cahna
+    = \v ->  lin VV (v ** {isAux = False});
     
+  mkAdA : Str -> AdA ;
+--  mkAdv x = lin Adv (ss x) ;
+--  mkAdV x = lin AdV (ss x) ;
+  mkAdA x = lin AdA (ss x) ;
+--  mkAdN x = lin AdN (ss x) ;
 
 --  mkV2V : V -> Prep -> Prep -> V2V ;
 --  mkVA  : V -> VA ;
 --  mkV2A : V -> Prep -> V2A ;
---  mkVQ  : V -> VQ ;
+  mkVQ  : V -> VQ ; -- e.g janna
+  mkVQ v = v ;
 --  mkV2Q : V -> Prep -> V2Q ;
 --
 --  mkAS  : A -> AS ;
diff --git a/lib/src/urdu/PhraseUrd.gf b/lib/src/urdu/PhraseUrd.gf
--- a/lib/src/urdu/PhraseUrd.gf
+++ b/lib/src/urdu/PhraseUrd.gf
@@ -1,27 +1,2 @@
-concrete PhraseUrd of Phrase = CatUrd ** open Prelude, ResUrd in {
-
-  lin
-    PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
-
-    UttS s = s ;
-    UttQS qs = {s = qs.s ! QDir} ;
-    UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ;
-    UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
-    UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
-
-    UttIP ip = {s = ip.s ! Dir} ; --- Acc also
-    UttIAdv iadv = iadv ;
-    UttNP np = {s = np.s ! NPC Dir} ;
-    UttVP vp = {s = infVP False vp (agrP3 Masc Sg)} ;
-    UttAdv adv = adv ;
-	UttCN cn = {s = cn.s ! Sg ! Dir};
-    UttCard n = n ;
-    UttAP ap = {s = ap.s ! Sg ! Masc ! Dir ! Posit} ;
-
-    NoPConj = {s = []} ;
-    PConjConj conj = {s = conj.s2} ; ---
-
-    NoVoc = {s = []} ;
-    VocNP np = {s = np.s ! NPC Dir} ;
-
-}
+concrete PhraseUrd of Phrase = CatUrd ** PhraseHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/QuestionUrd.gf b/lib/src/urdu/QuestionUrd.gf
--- a/lib/src/urdu/QuestionUrd.gf
+++ b/lib/src/urdu/QuestionUrd.gf
@@ -1,73 +1,2 @@
-concrete QuestionUrd of Question = CatUrd ** open ResUrd, Prelude in {
-  flags optimize=all_subs ;
-
-  lin
-
-    QuestCl cl = {
-      s = \\t,p,qf => case qf of { 
-	                  QDir => cl.s ! t ! p ! OQuest;
-                      QIndir => agr_Str ++ cl.s ! t! p ! ODir
-					  }
-				};	  
-
-    QuestVP qp vp = 
-       let cl = mkSClause [] (Ag qp.g qp.n Pers3_Near) vp;
-           qp1 = qp.s ! Dir;
-           qp2 = qp.s ! Obl ++ nE_Str
-          in { s = \\t,p,o => case t of {
-		             VPImpPast => qp2 ++ cl.s ! t ! p ! ODir;
-					 _         => qp1 ++ cl.s ! t ! p ! ODir
-					 }
-					}; 
-    QuestSlash ip slash = 
-     let ip1 = ip.s ! Dir;
-         ip2 = ip.s ! Obl ++ nE_Str
-     in {
-      s = \\t,p,o => case t of { 
-            VPImpPast => ip2 ++ slash.s ! t ! p ! ODir;
-            _         => ip1 ++ slash.s ! t ! p ! ODir
-            }
-        };
-
-    QuestIAdv iadv cl = { 
-             s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir;
-                      	};
-
-    QuestIComp icomp np = 
-     let cl = mkSClause (np.s ! NPC Dir ++ icomp.s) np.a (predAux auxBe); 
-	   in {
-       s = \\t,p,qf => case qf of { 
-	      QDir =>   cl.s ! t ! p ! ODir;
-          QIndir => cl.s ! t! p ! ODir
-		  }
-		};
-
-    PrepIP p ip = {s = ip.s ! ResUrd. Voc ++ p.s } ;
-
-    AdvIP ip adv = {
-      s = \\c => adv.s ++ ip.s ! c ;
-      n = ip.n;
-	  g = ip.g;
-      } ;
- 
-    IdetCN idet cn = {
-      s = \\c => idet.s ! cn.g ++ cn.s ! idet.n ! c ; 
-      g = cn.g;
-	  n = idet.n;
-      } ;
-
-    IdetIP idet = {
-     s = \\_ => idet.s ! Masc ; 
-      n = idet.n;
-	  g = Masc;
-      } ;
-
-    IdetQuant iqant num = {
-      s = \\g => iqant.s ! num.n ++ num.s ; 
-      n = num.n
-      } ;
-
-    CompIAdv a = a ;
-    CompIP p = ss (p.s ! Dir) ;
-
-}
+concrete QuestionUrd of Question = CatUrd ** QuestionHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/README b/lib/src/urdu/README
--- a/lib/src/urdu/README
+++ b/lib/src/urdu/README
@@ -1,17 +1,10 @@
-Urdu resource grammar in GF
-
-(c) Shafqat Virk 2010 under GNU LGPL
-
-Sources: files in ./transliterated/ convert to files with the same names in ./
-**Don't hand-edit** the generated files, but the ones in ./transliterated/
-To convert the edited files, do 'make' in this directory.
-
-Principles: all files containing string literals are in ./transliterated/
-**Don't put string literals** in other files. Add string opers to transliterated/ResUrd.gf 
-instead (to the end of the file).
-
-Purpose: the files without strings will work as such for Hindi as well.
+Some of the sources are transliterated, in
 
+ ./src
+ ../hindustani
 
+Before compilation, do
 
+  gf -s <translit.gfs
 
+to get unicode.
diff --git a/lib/src/urdu/RelativeUrd.gf b/lib/src/urdu/RelativeUrd.gf
--- a/lib/src/urdu/RelativeUrd.gf
+++ b/lib/src/urdu/RelativeUrd.gf
@@ -1,66 +1,2 @@
-concrete RelativeUrd of Relative = CatUrd ** open ResUrd in {
-
-  flags optimize=all_subs ;
-
-  lin
-
-    RelCl cl = {
-      s = \\t,p,o,agr => case <t,giveNumber agr> of {
-	                    <VPImpPast,Sg> => js_Str ++ cl.s ! t ! p ! o ; 
-						<VPImpPast,Pl> => jn_Str ++ cl.s ! t ! p ! o ;
-						<_,_>          => jw_Str ++ cl.s ! t ! p ! o 
-			};
-      c = Dir
-      } ;
-
--- {-
-    RelVP rp vp = {
-      s = \\t,p,o,ag => 
-        let 
-          agr = case rp.a of {
-            RNoAg => ag ;
-            RAg a => a
-            } ;
-		 cl = mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp;
-		  
---          cl = case t of {
---                VPImpPast =>  mkSClause (rp.s ! (giveNumber agr) ! Obl) agr vp;
---				_         =>  mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp
---				};
-        in
-        cl.s ! t ! p ! ODir ;
-      c = Dir
-      } ;
- --
---
-    RelSlash rp slash = {
-      s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Dir ++ slash.c2.s ++  slash.s ! t ! p ! o  ;--case t of {
---	       VPImpPast => rp.s !  (giveNumber agr) Obl ++ slash.c2.s ++  slash.s ! t ! p ! o ;
---		   _         => rp.s !  (giveNumber agr) Dir ++ slash.c2.s ++  slash.s ! t ! p ! o 
---		   };
-      c = Dir
-      } ;
--- -}
-    FunRP p np rp = {
-      s = \\n,c => rp.s ! n ! c ++ np.s ! NPC c ++ p.s  ;
-      a = RAg np.a
-      } ;
-
-    IdRP = {
-      s = table {
-        Sg => table {
-		
-    		ResUrd.Dir  => jw_Str ; 
-            ResUrd.Obl  => js_Str ;
-            ResUrd.Voc  => js_Str 
-			};
-		Pl => table {
-            ResUrd.Dir  => jw_Str ;
-		    ResUrd.Obl  => jn_Str ;
-		    ResUrd.Voc  => jn_Str
-			}
-       }; 
-      a = RNoAg
-      } ;
-
-}
+concrete RelativeUrd of Relative = CatUrd ** RelativeHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/ResHindustani.gf b/lib/src/urdu/ResHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/ResHindustani.gf
@@ -0,0 +1,400 @@
+--# -path=.:../abstract:../common:../../prelude
+--
+--1 Hindustaniu auxiliary operations.
+--
+-- This module contains operations that are needed to make the
+-- resource syntax work. 
+
+--resource ResHindustani = ParamX  ** open Prelude,Predef in {
+interface ResHindustani = DiffHindustani ** open CommonHindustani, Prelude, Predef in {
+
+  
+  flags optimize=all ;
+  coding = utf8;
+  
+param
+   
+	
+--	Order = ODir | OQuest ;
+	
+--2 For $Relative$
+ 
+    RAgr = RNoAg | RAg Agr ;
+    RCase = RC Number Case ;
+
+-- for Numerial
+   
+   CardOrd = NCard | NOrd ;
+  
+  -----------------------------------------
+  -- Hindustani Pronouns
+  -----------------------------------------
+  
+   Pronoun = P Number Gender Case UPerson;
+   PersPronForm = PPF Number UPerson Case;
+   
+-------------------------------------------
+--Verbs
+-------------------------------------------
+
+                
+  oper
+    Noun = {s : Number => Case => Str ; g : Gender} ;
+
+    Preposition = {s : Gender => Str};
+    DemPronForm = {s : Number => Gender => Case => Str};
+    PossPronForm = {s : Number => Gender => Case => Str};
+    Determiner = {s : Number => Gender => Str ; n : Number};
+  
+-- a useful oper
+    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ; 
+
+  RefPron : Str;
+  RefPron = "خود";
+  
+  ----------------------------------------------------------
+  -- Grammar part
+  ----------------------------------------------------------
+  
+
+  toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
+      NPC c => pn !  c ;
+      NPObj => pn !  Dir ;
+      NPErg => pn !  Obl ++ "نے"
+      } ;
+  detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! c ;
+       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
+       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "نے"
+      } ;  
+  det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
+       NPC c => dt.s ! Sg ! Masc ;
+       NPObj => dt.s ! Sg ! Masc ;
+       NPErg => dt.s ! Sg  ! Masc ++ "نے"
+      } ;    
+	  
+------------------------------------------
+-- Agreement transformations
+-----------------------------------------
+{-    toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
+	   Ag g n p;
+      
+
+    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
+      Ag g n p => {n = n ; p = p ; g = g} 
+	  } ;
+	  
+	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
+      let a = fromAgr a0 ; b = fromAgr b0 
+      in
+      toAgr
+        (conjNumber a.n b.n)
+        b.p a.g;	  
+	
+	giveNumber : Agr -> Number =\a -> case a of {
+	   Ag _ n _ => n
+	};
+	giveGender : Agr -> Gender =\a -> case a of {
+	   Ag g _ _ => g
+	};
+-}    
+--    defaultAgr : Agr = agrP3 Masc Sg ;
+--    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
+    personalAgr : Agr = agrP1 Masc Sg ;
+    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
+	
+ param
+      CPolarity = 
+       CPos
+       | CNeg Bool ;  -- contracted or not
+
+ oper
+    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
+    Pos => CPos ;
+    Neg => CNeg b
+    } ;
+
+--	NP : Type = {s : NPCase => Str ; a : Agr} ;
+
+  oper
+    
+	objVType : VType -> NPCase = \vt -> case vt of {
+      VTrans => NPObj ;
+      _ => NPC Obl
+      } ;
+
+	VPHSlash = VPH ** {c2 : Compl} ;
+
+    Compl : Type = {s : Str ; c : VType} ;
+
+
+    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
+    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
+{-
+-------------------------
+-- added for cauitives
+   predVcc : (Verb **{c2:Compl}) -> VPHSlash = \verb ->
+    predV verb ** {c2 = {s = "" ; c = VTrans} } ;
+------------------------
+-}	 
+	predAux : Aux -> VPH = \verb -> {
+     s = \\vh => 
+       let  
+
+		 inf  = verb.inf ;
+         part = verb.ppart ;
+
+       in
+       case vh of {
+	 VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
+         VPStem => {fin = []  ; inf = "رہ" };
+		 _ => {fin = part ; inf = [] }
+		 };
+	  obj = {s = [] ; a = defaultAgr} ;
+      subj = VIntrans ;
+      inf = verb.inf;
+	  ad = [];
+      embComp = [];
+      prog = False ;
+      comp = \\_ => []
+      } ;
+    
+    Aux = {
+      inf,ppart,prpart : Str
+    } ;
+
+    auxBe : Aux = {
+    inf  = "" ;
+    ppart = "" ;
+    prpart = ""
+    } ;
+    
+    predProg : VPH -> VPH = \verb -> {
+     s = \\vh => 
+       case vh of {
+         VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ;
+         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ;
+         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = (verb.s!VPStem).inf ++ raha g n  } ;
+	 VPTense VPPerf (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ raha g n } ;
+         VPStem => {fin = []  ; inf = (verb.s!VPStem).inf };
+		 _ => {fin = [] ; inf = [] }
+		 };
+      obj = verb.obj ;
+      subj =  VIntrans ;
+      inf = verb.inf;
+      ad = verb.ad;
+      embComp = verb.embComp;
+      prog = True ;
+      comp = verb.comp 
+      } ;
+   	
+{-  Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+                                                   _    => vp.s !  VPTense VPFutr agr } ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "شاید" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "شاید" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كیا" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نہیں" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => vp.s !  VPTense VPFutr agr ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "شاید"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "كیا" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "نا" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "نہیں" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+-}    
+--    insertSubj : UPerson -> Str -> Str = \p,s -> 
+--      case p of { Pers1 => s ++ "وں" ; _ => s ++ "ے"};
+   
+    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
+     } ;
+     insertVV : Str -> VPH -> Str -> VPH = \obj1,vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ emb ;
+     prog = vp.prog ;
+     comp = \\a =>    vp.comp ! a  ++ obj1  
+     } ;
+     
+    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
+     s = vp.s;
+     obj = vp.obj ;
+     subj = vp.subj ;
+	 inf = vp.inf;
+	 ad = vp.ad;
+     embComp = vp.embComp ++ obj1;
+     prog = vp.prog ;
+     comp = vp.comp
+     
+     } ;
+	 
+	insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj obj vp ** {c2 = vp.c2} ;
+    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
+    insertObj2 obj vp ** {c2 = vp.c2} ;
+
+	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
+     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
+--    infVV : Bool -> VPH -> Str = \isAux,vp -> 
+--      case isAux of {False => vp.obj.s ++ vp.inf ; True => vp.obj.s ++ (vp.s ! VPImp).fin };
+   infVV : Bool -> VPH -> Str = \isAux,vp -> 
+      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin } ;
+    infV2V : Bool -> VPH -> Str = \isAux,vp -> 
+      case isAux of {False =>  vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPInf).fin ++ "كی"  ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin  ++ "كی"};
+
+
+    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
+      s = vps.s ;
+      obj = {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
+      subj = vps.c2.c ;
+	  inf = vps.inf;
+	  ad = vps.ad;
+      embComp = vps.embComp;
+      prog = vps.prog ;
+      comp = vps.comp
+      } ;
+	  
+	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj ;
+	 ad = vp.ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
+    } ;
+
+    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+	 subj = vp.subj;
+     ad  = vp.ad ++ ad ;
+     embComp = vp.embComp;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+    
+	conjThat : Str = "كہ" ;
+    
+  insertEmbCompl : VPH -> Str -> VPH = \vp,emb -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vp.subj;
+     ad  = vp.ad;
+     embComp = vp.embComp ++ emb;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;
+  insertTrans : VPH -> VType -> VPH = \vp,vtype -> {
+     s = vp.s ;
+     obj = vp.obj ;
+     inf = vp.inf ;
+     subj = vtype;
+     ad  = vp.ad;
+     embComp = vp.embComp ;
+     prog = vp.prog ;
+     comp = vp.comp
+    } ;  
+
+}
+
diff --git a/lib/src/urdu/ResUrd.gf b/lib/src/urdu/ResUrd.gf
--- a/lib/src/urdu/ResUrd.gf
+++ b/lib/src/urdu/ResUrd.gf
@@ -1,641 +1,2 @@
---# -path=.:../abstract:../common:../../prelude
---
---1 Urdu auxiliary operations.
---
--- This module contains operations that are needed to make the
--- resource syntax work. 
-
-resource ResUrd = ParamX  ** open Prelude,Predef in {
-
-  flags optimize=all ;
-  coding = utf8;
-
-  param 
-    Case = Dir | Obl | Voc ;
-    Gender = Masc | Fem ;
-	VTense = Subj | Perf | Imperf;
-    UPerson = Pers1
-	    | Pers2_Casual
-	    | Pers2_Familiar 
-	    | Pers2_Respect
-	    | Pers3_Near
-	    | Pers3_Distant;
-		
-	Order = ODir | OQuest ;
-	
---2 For $Relative$
- 
-    RAgr = RNoAg | RAg Agr ;
-    RCase = RC Number Case ;
-
--- for Numerial
-   
-   CardOrd = NCard | NOrd ;
-  
-  -----------------------------------------
-  -- Urd Pronouns
-  -----------------------------------------
-  
-   Pronoun = P Number Gender Case UPerson;
-   PersPronForm = PPF Number UPerson Case;
-   
--------------------------------------------
---Verbs
--------------------------------------------
-
-    VerbForm = VF VTense UPerson Number Gender
-                | Inf
-                | Root
-                | Inf_Obl
-                | Inf_Fem;				
-  oper
-    Noun = {s : Number => Case => Str ; g : Gender} ;
-    Verb = {s : VerbForm => Str} ;
-    Preposition = {s : Str};
-    DemPronForm = {s : Number => Gender => Case => Str};
-    PossPronForm = {s : Number => Gender => Case => Str};
-    Determiner = {s : Number => Gender => Str ; n : Number};
-  
--- a useful oper
-    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ;
- 
-   -----------------------------------------------
-   -- Urd Adjectives
-   -----------------------------------------------
-   
-    Adjective = { s: Number => Gender => Case => Degree => Str };    
-
-
-    mkAdjective : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> Adjective = 
-    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
-     s = table {
-	    Sg => table {
-		        Masc => table {
-				        Dir => table {
-						     Posit  => y1 ;
-                             Compar => y2 ;
-                             Superl => y3
-							 };
-						Obl => table {
-						     Posit  => y4 ;
-                             Compar => y5 ;
-                             Superl => y6
-							 };
-						Voc => table {
-						     Posit  => y7 ;
-                             Compar => y8 ;
-                             Superl => y9
-							 }
-							};
-				Fem => table {
-				        Dir => table {
-						     Posit  => y10 ;
-                             Compar => y11 ;
-                             Superl => y12
-							 };
-						Obl => table {
-						     Posit  => y13 ;
-                             Compar => y14 ;
-                             Superl => y15
-							 };
-						Voc => table {
-						     Posit  => y16 ;
-                             Compar => y17 ;
-                             Superl => y18
-							 }
-							}
-					};		
-			Pl => table {
-		        Masc => table {
-				        Dir => table {
-						     Posit  => y19 ;
-                             Compar => y20 ;
-                             Superl => y21
-							 };
-						Obl => table {
-						     Posit  => y22 ;
-                             Compar => y23 ;
-                             Superl => y24
-							 };
-						Voc => table {
-						     Posit  => y25 ;
-                             Compar => y26 ;
-                             Superl => y27
-							 }
-							}; 
-				Fem => table {
-				        Dir => table {
-						     Posit  => y28 ;
-                             Compar => y29 ;
-                             Superl => y30
-							 };
-						Obl => table {
-						     Posit  => y31 ;
-                             Compar => y32 ;
-                             Superl => y33
-							 };
-						Voc => table {
-						     Posit  => y34 ;
-                             Compar => y35 ;
-                             Superl => y36
-							 }
-							}
-                        }
-                    }
-            };					
-							 
- 
-    regAdjective : Str -> Adjective; 
-	regAdjective x =  case x of {
-	      acch + ("ا"|"اں") => mkAdjective x            ("بہت" ++ x)          ("ساب سے" ++ x)          (acch + "ے") ("بہت" ++ acch + "ے") ("ساب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("ساب سے" ++ acch + "ے")
-		                                   (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی")
-									       (acch +"ے")  ("بہت" ++ acch + "ے") ("ساب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("ساب سے" ++ acch + "ے") (acch + "ے") ("بہت" ++ acch + "ے") ("ساب سے" ++ acch + "ے")
-		                                   (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی") (acch + "ی") ("بہت" ++ acch + "ی") ("ساب سے" ++ acch + "ی");
-									
-          _                 => mkAdjective  x x x x x x x x x
-                                            x x x x x x x x x
-                                            x x x x x x x x x
-                                            x x x x x x x x x									 
-                            }; 
-					 
-		 
-
-  RefPron : Str;
-  RefPron = "خود";
-  
-  ----------------------------------------------------------
-  -- Grammar part
-  ----------------------------------------------------------
-  
-  param
-    Agr = Ag Gender Number UPerson ;
-    NPCase = NPC Case | NPObj | NPErg ;
-
-  oper
-    np2pronCase :  (Case => Str) -> NPCase -> Str = \ppf,npc -> case npc of {
-       NPC c => ppf ! c;
-       NPObj => ppf ! Dir ;
-       NPErg => ppf ! Obl ++ "نع"
-      } ;
-    
-	toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
-      NPC c => pn !  c ;
-      NPObj => pn !  Dir ;
-      NPErg => pn !  Obl ++ "نع"
-      } ;
-	detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
-       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
-       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
-       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "نع"
-      } ;  
-    det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
-       NPC c => dt.s ! Sg ! Masc ;
-       NPObj => dt.s ! Sg ! Masc ;
-       NPErg => dt.s ! Sg  ! Masc ++ "نع"
-      } ;    
-	  
-------------------------------------------
--- Agreement transformations
------------------------------------------
-    toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
-	   Ag g n p;
-      
-
-    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
-      Ag g n p => {n = n ; p = p ; g = g} 
-	  } ;
-	  
-	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
-      let a = fromAgr a0 ; b = fromAgr b0 
-      in
-      toAgr
-        (conjNumber a.n b.n)
-        b.p a.g;	  
-	
-	giveNumber : Agr -> Number =\a -> case a of {
-	   Ag _ n _ => n
-	};
-	giveGender : Agr -> Gender =\a -> case a of {
-	   Ag g _ _ => g
-	};
-    
-    defaultAgr : Agr = agrP3 Masc Sg ;
-    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
-    personalAgr : Agr = agrP1 Masc Sg ;
-    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
-	
- param
-      CPolarity = 
-       CPos
-       | CNeg Bool ;  -- contracted or not
-
- oper
-    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
-    Pos => CPos ;
-    Neg => CNeg b
-    } ;
-
-	NP : Type = {s : NPCase => Str ; a : Agr} ;
-   
- param
-    CTense = CPresent | CPast | CFuture ;
-    
-  oper 
-    copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g -> 
-      case <t,n,p,g> of {
-        <CPresent,Sg,Pers1,_   > => "ہوں" ;
-        <CPresent,Sg,Pers2_Casual,_   > => "ہے" ;
-        <CPresent,Sg,Pers2_Familiar,_   > => "ہو" ;
-		<CPresent,Sg,Pers2_Respect,_   > => "ہیں" ;
-        <CPresent,Sg,Pers3_Near,_   > => "ہے" ;
-        <CPresent,Sg,Pers3_Distant,_   > => "ہے" ;
-		<CPresent,Pl,Pers1,_   > => "ہیں" ;
-        <CPresent,Pl,Pers2_Casual,_   > => "ہو" ;
-        <CPresent,Pl,Pers2_Familiar,_   > => "ہو" ;
-		<CPresent,Pl,Pers2_Respect,_   > => "ہیں" ;
-        <CPresent,Pl,Pers3_Near,_   > => "ہیں" ;
-        <CPresent,Pl,Pers3_Distant,_   > => "ہیں" ;
-		<CPast,Sg,Pers1,Masc   > => "تھا" ;
-		<CPast,Sg,Pers1,Fem   > => "تھی" ;
-        <CPast,Sg,Pers2_Casual,Masc   > => "تھا" ;
-		<CPast,Sg,Pers2_Casual,Fem   > => "تھی" ;
-        <CPast,Sg,Pers2_Familiar,Masc   > => "تھا" ;
-		<CPast,Sg,Pers2_Familiar,Fem   > => "تھی" ;
-		<CPast,Sg,Pers2_Respect,Masc   > => "تھے" ;
-		<CPast,Sg,Pers2_Respect,Fem   > => "تھیں" ;
-        <CPast,Sg,Pers3_Near,Masc   > => "تھا" ;
-		<CPast,Sg,Pers3_Near,Fem   > => "تھی" ;
-        <CPast,Sg,Pers3_Distant,Masc  > => "تھا" ;
-		<CPast,Sg,Pers3_Distant,Fem  > => "تھی" ;
-		<CPast,Pl,Pers1,Masc   > => "تھے" ;
-		<CPast,Pl,Pers1,Fem   > => "تھیں" ;
-        <CPast,Pl,Pers2_Casual,Masc   > => "تھے" ;
-		<CPast,Pl,Pers2_Casual,Fem   > => "تھیں" ;
-        <CPast,Pl,Pers2_Familiar,Masc   > => "تھے" ;
-		<CPast,Pl,Pers2_Familiar,Fem   > => "تھیں" ;
-		<CPast,Pl,Pers2_Respect,Masc   > => "تھے" ;
-		<CPast,Pl,Pers2_Respect,Fem   > => "تھیں" ;
-        <CPast,Pl,Pers3_Near,Masc   > => "تھے" ;
-		<CPast,Pl,Pers3_Near,Fem   > => "تھیں" ;
-		<CPast,Pl,Pers3_Distant,Masc   > => "تھے" ;
-		<CPast,Pl,Pers3_Distant,Fem   > => "تھیں" ;
-		<CFuture,Sg,Pers1,Masc   > => "گا" ;
-		<CFuture,Sg,Pers1,Fem   > => "گی" ;
-        <CFuture,Sg,Pers2_Casual,Masc   > => "گا" ;
-		<CFuture,Sg,Pers2_Casual,Fem   > => "گi" ;
-        <CFuture,Sg,Pers2_Familiar,Masc   > => "گے" ;
-		<CFuture,Sg,Pers2_Familiar,Fem   > => "گی" ;
-		<CFuture,Sg,Pers2_Respect,Masc   > => "گے" ;
-		<CFuture,Sg,Pers2_Respect,Fem   > => "گی" ;
-        <CFuture,Sg,Pers3_Near,Masc   > => "گا" ;
-		<CFuture,Sg,Pers3_Near,Fem   > => "گی" ;
-        <CFuture,Sg,Pers3_Distant,Masc  > => "گا" ;
-		<CFuture,Sg,Pers3_Distant,Fem  > => "گی" ;
-		<CFuture,Pl,Pers1,Masc   > => "گے" ;
-		<CFuture,Pl,Pers1,Fem   > => "گی" ;
-        <CFuture,Pl,Pers2_Casual,Masc   > => "گے" ;
-		<CFuture,Pl,Pers2_Casual,Fem   > => "گی" ;
-        <CFuture,Pl,Pers2_Familiar,Masc   > => "گے" ;
-		<CFuture,Pl,Pers2_Familiar,Fem   > => "گی" ;
-		<CFuture,Pl,Pers2_Respect,Masc   > => "گے" ;
-		<CFuture,Pl,Pers2_Respect,Fem   > => "گی" ;
-        <CFuture,Pl,Pers3_Near,Masc   > => "گے" ;
-		<CFuture,Pl,Pers3_Near,Fem   > => "گے" ;
-		<CFuture,Pl,Pers3_Distant,Masc  > => "گے" ;
-		<CFuture,Pl,Pers3_Distant,Fem  > => "گی" 
-        
-        
-        } ;
-
- param
-    VPPTense = 
-	  VPPres
-	  |VPPast
-	  |VPFutr;
-      
-    VPHTense = 
-       VPGenPres  -- impf hum       nahim    "I گo"
-     | VPImpPast  -- impf Ta        nahim    "I وعنت"
-	 | VPFut      -- fut            na/nahim "I سہالل گo"
-     | VPContPres -- stem raha hum  nahim    "I ام گoiنگ"
-     | VPContPast -- stem raha Ta   nahim    "I واس گoiنگ"
-	 | VPContFut
-     | VPPerfPres -- perf hum       na/nahim "I ہاvع گoنع"
-     | VPPerfPast -- perf Ta        na/nahim "I ہاد گoنع"          
-	 | VPPerfFut
-	 | VPPerfPresCont
-	 | VPPerfPastCont
-	 | VPPerfFutCont
-     | VPSubj     -- subj           na       "I مای گo"
-     ;
-
-    VPHForm = 
-       VPTense VPPTense Agr -- 9 * 12
-     | VPReq
-     | VPImp
-     | VPReqFut
-     | VPInf
-     | VPStem
-     ;
-
-    VType = VIntrans | VTrans | VTransPost ;
-
-  oper
-    
-	objVType : VType -> NPCase = \vt -> case vt of {
-      VTrans => NPObj ;
-      _ => NPC Obl
-      } ;
-
-    VPH : Type = {
-      s    : VPHForm => {fin, inf : Str} ;
-      obj  : {s : Str ; a : Agr} ; 
-      subj : VType ;
-      comp : Agr => Str;
-	  inf : Str;
-	  ad  : Str;
-      embComp : Str ;
-      } ;
-	
-	VPHSlash = VPH ** {c2 : Compl} ;
-
-    Compl : Type = {s : Str ; c : VType} ;
-
-   predV : Verb -> VPH = \verb -> {
-      s = \\vh => 
-	   case vh of {
-	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = verb.s ! VF Imperf p n g } ;
-		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =verb.s ! VF Perf p n g} ;
-		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  verb.s ! VF Subj p n g } ;
-		 VPStem => {fin = []  ; inf =  verb.s ! Root};
-		 _ => {fin = [] ; inf = verb.s ! Root} 
-		 };
-	    obj = {s = [] ; a = defaultAgr} ;
-		subj = VTrans ;
-		inf = verb.s ! Inf;
-		ad = [];
-        embComp = [];
-        comp = \\_ => []
-      } ;
-
-    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
-    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
-
-	 
-    raha : Gender -> Number -> Str = \g,n -> 
-	   (regAdjective "رہا").s ! n ! g ! Dir ! Posit ;
-
-	cka : Gender -> Number -> Str = \g,n -> 
-	  (regAdjective "چكا").s ! n ! g ! Dir ! Posit ;
-	  
-	hw : UPerson -> Number -> Str = \pp,n ->    
-	 case <pp,n> of {
-	 <Pers1,_> => "ہوں";
-	 <_,Pl>    => "ہوں";
-	 <_,_>		=> "ہو"
-	 };
-	 
-	predAux : Aux -> VPH = \verb -> {
-     s = \\vh => 
-       let  
-
-		 inf  = verb.inf ;
-         part = verb.ppart ;
-
-       in
-       case vh of {
-	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
-         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
-         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
-         VPStem => {fin = []  ; inf = "رہ" };
-		 _ => {fin = part ; inf = [] }
-		 };
-	  obj = {s = [] ; a = defaultAgr} ;
-      subj = VIntrans ;
-      inf = verb.inf;
-	  ad = [];
-      embComp = [];
-      comp = \\_ => []
-      } ;
-
-    Aux = {
-      inf,ppart,prpart : Str
-    } ;
-
-    auxBe : Aux = {
-    inf  = "" ;
-    ppart = "" ;
-    prpart = ""
-    } ;
-   	
-	Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
-	mkClause : NP -> VPH -> Clause = \np,vp -> {
-      s = \\vt,b,ord => 
-        let 
-          subjagr : NPCase * Agr = case vt of {
-            VPImpPast => case vp.subj of {
-              VTrans     => <NPErg, vp.obj.a> ;
-              VTransPost => <NPErg, defaultAgr> ;
-              _          => <NPC Dir, np.a>
-              } ;
-            _ => <NPC Dir, np.a>
-            } ;
-          subj = subjagr.p1 ;
-          agr  = subjagr.p2 ;
-		  n    = (fromAgr agr).n;
-		  p    = (fromAgr agr).p;
-		  g    = (fromAgr agr).g;
-          vps  = case vt of {
-
-				    VPGenPres  => vp.s !  VPTense VPPres agr ;
-					VPImpPast  => vp.s !  VPTense VPPast agr ;
-					VPFut      => vp.s !  VPTense VPFutr agr ;
-                    VPContPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContPast => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
-					VPPerfPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfPast => 
-                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;					
-					VPPerfFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n  ++ hw p n } ;
-					VPPerfPresCont => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
-					VPPerfPastCont => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
-					VPPerfFutCont => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
-					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf  ; inf = "ژاید"  }
-                   
-					};
-					
-		    
-          quest =
-            case ord of
-              { ODir => [];
-                OQuest => "كیا" }; 
-		  na =
-            case b of
-              { Pos => [];
-                Neg => "نا" };
-           nahim =
-            case b of 
-              { Pos => [];
-                Neg => "نہیں" };
-        in
-		case vt of {
-		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
-		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
-
-  } ;
-
-  mkSClause : Str -> Agr -> VPH -> Clause =
-    \subj,agr,vp -> {
-      s = \\t,b,ord => 
-        let 
-		  n    = (fromAgr agr).n;
-		  p    = (fromAgr agr).p;
-		  g    = (fromAgr agr).g;
-          vps  = case t of {
-                    VPGenPres  => vp.s !  VPTense VPPres agr ;
-					VPImpPast  => vp.s !  VPTense VPPast agr ;
-					VPFut      => vp.s !  VPTense VPFutr agr ;
-					VPContPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
-					VPContPast => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContFut  => 
-					  {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
-					VPPerfPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfPast => 
-                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
-					VPPerfPresCont => 
-					 {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
-					VPPerfPastCont => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
-					VPPerfFutCont => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
-					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "ژاید"  }
-                    
-					};
-
-		  quest =
-            case ord of
-              { ODir => [];
-                OQuest => "كیا" }; 
-		  na =
-            case b of
-              { Pos => [];
-                Neg => "نا" };
-          nahim =
-            case b of 
-              { Pos => [];
-                Neg => "نہیں" };		
-        in
-		case t of {
-		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
-		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
-    } ;
-    
-    insertSubj : UPerson -> Str -> Str = \p,s -> 
-      case p of { Pers1 => s ++ "وں" ; _ => s ++ "ے"};
-     
-    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp;
-     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
-     } ;
-     insertVV : Str -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp;
-     comp = \\a =>    vp.comp ! a  ++ obj1  
-     } ;
-     
-    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp ++ obj1;
-     comp = vp.comp
-     
-     } ;
-	 
-	insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
-    insertObj obj vp ** {c2 = vp.c2} ;
-    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
-    insertObj2 obj vp ** {c2 = vp.c2} ;
-
-	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
-     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
-    infVV : Bool -> VPH -> Str = \isAux,vp -> 
-      case isAux of {False => vp.inf ; True => (vp.s ! VPImp).fin };
-
-    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
-      s = vps.s ;
-      obj = {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
-      subj = vps.c2.c ;
-	  inf = vps.inf;
-	  ad = vps.ad;
-      embComp = vps.embComp;
-      comp = vps.comp
-      } ;
-	  
-	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     inf = vp.inf ;
-     subj = vp.subj ;
-	 ad = vp.ad ;
-     embComp = vp.embComp;
-     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
-    } ;
-
-    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     inf = vp.inf ;
-	 subj = vp.subj;
-     ad  = vp.ad ++ ad ;
-     embComp = vp.embComp;
-     comp = vp.comp
-    } ;
-	conjThat : Str = "كہ" ;
-
--- strings collected from syntax files, AR
-
-oper
-  sE_Str = "سے" ;
-  ka_Str = "كا" ;
-  hr_kwy_Str = "ہر كوی" ;
-  rakh6na_Str = "راكھنا" ;
-  comma_Str = "," ;
-  agr_Str = "اگر" ;
-  nE_Str = "نے" ;
-  jw_Str = "جو" ;
-  js_Str = "جس" ;
-  jn_Str = "جن" ;
-  mt_Str = "مت" ;
-  nh_Str = "نہ" ;
-  waN_Str = "واں" ;
-  awr_Str = "اور" ;
-  ky_Str = "كی" ;
-  kw_Str = "كو" ;
-   
-}
-
+instance ResUrd of ResHindustani = DiffUrd ** open CommonHindustani, Prelude, Predef in {
+} ;
diff --git a/lib/src/urdu/SentenceUrd.gf b/lib/src/urdu/SentenceUrd.gf
--- a/lib/src/urdu/SentenceUrd.gf
+++ b/lib/src/urdu/SentenceUrd.gf
@@ -1,102 +1,2 @@
-concrete SentenceUrd of Sentence = CatUrd ** open Prelude, ResUrd in {
-
-  flags optimize=all_subs ;
-
-  lin
-
-    PredVP np vp = mkClause np vp ;
-
-    PredSCVP sc vp = mkSClause sc.s (defaultAgr) vp ;
-
-    ImpVP vp = {
-      s = \\pol,n => 
-        let 
-          agr   = Ag Masc (numImp n) Pers2_Casual ;
-          verb  = infVP True vp agr ;
-          dont  = case pol of {
-            CNeg True => mt_Str ;
-            CNeg False => nh_Str ;
-            _ => []
-            }
-        in
-        dont ++ verb
-    } ;
-
-    SlashVP np vp = 
-      mkClause np vp ** {c2 = vp.c2} ;
-
-    AdvSlash slash adv = {
-	  s  = \\t,p,o =>  adv.s ++ slash.s ! t ! p ! o  ;
-      c2 = slash.c2
-    } ;
-
-    SlashPrep cl prep = cl **  {c2 = { s = prep.s ; c = VIntrans}} ;
-
-    SlashVS np vs slash = 
-      mkClause  np 
-        (insertObj2 (conjThat ++ slash.s) (predV vs))  **
-        {c2 = slash.c2} ;
-
-    EmbedS  s  = {s = conjThat ++ s.s} ;
-    EmbedQS qs = {s = qs.s ! QIndir} ;
-    EmbedVP vp = {s = infVP False vp defaultAgr} ; --- agr
-
-    UseCl  temp p cl = 
-	 { s = case <temp.t,temp.a> of {
-	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! ODir
-          ;<Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! ODir;  --# notpresent
-          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! ODir; --# notpresent
-          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! ODir; --# notpresent
-          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir; --# notpresent
-          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! ODir; --# notpresent
-          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPContPres ! p.p ! ODir; --# notpresent
-          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPContPast ! p.p ! ODir --# notpresent		  
-
-   };
-  } ;
-    UseQCl temp p cl = {
-      s = \\q => case <temp.t,temp.a> of {
-	      <Pres,Simul> => temp.s ++ p.s ++ cl.s ! VPGenPres ! p.p ! q
-          ;<Pres,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPres ! p.p ! q; --# notpresent
-          <Past,Simul> => temp.s ++ p.s ++ cl.s ! VPImpPast ! p.p ! q; --# notpresent
-          <Past,Anter> => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! q; --# notpresent
-          <Fut,Simul>  => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q; --# notpresent
-          <Fut,Anter>  => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! q; --# notpresent
-          <Cond,Simul> => temp.s ++ p.s ++ cl.s ! VPContPres ! p.p ! q; --# notpresent
-          <Cond,Anter> => temp.s ++ p.s ++ cl.s ! VPContPast ! p.p ! q		   --# notpresent
- 
-   };
-  } ;
-    UseRCl temp p rcl = {
-      s = \\q => case <temp.t,temp.a> of {
-	      <Pres,Simul> => temp.s ++ p.s ++ rcl.s ! VPGenPres ! p.p ! ODir ! q
-         ;<Pres,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPres ! p.p ! ODir ! q; --# notpresent
-          <Past,Simul> => temp.s ++ p.s ++ rcl.s ! VPImpPast ! p.p ! ODir ! q; --# notpresent
-          <Past,Anter> => temp.s ++ p.s ++ rcl.s ! VPPerfPast ! p.p ! ODir ! q; --# notpresent
-          <Fut,Simul>  => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q; --# notpresent
-          <Fut,Anter>  => temp.s ++ p.s ++ rcl.s ! VPPerfFut ! p.p ! ODir ! q; --# notpresent
-          <Cond,Simul> => temp.s ++ p.s ++ rcl.s ! VPContPres ! p.p ! ODir ! q; --# notpresent
-          <Cond,Anter> => temp.s ++ p.s ++ rcl.s ! VPContPast ! p.p ! ODir ! q --# notpresent
-     };		  
-      c = rcl.c
-    } ;
-    UseSlash temp p clslash = {
-      s = case <temp.t,temp.a> of {
-	      <Pres,Simul> => temp.s ++ p.s ++ clslash.s ! VPGenPres ! p.p ! ODir
-         ;<Pres,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPres ! p.p ! ODir; --# notpresent
-          <Past,Simul> => temp.s ++ p.s ++ clslash.s ! VPImpPast ! p.p ! ODir ; --# notpresent
-          <Past,Anter> => temp.s ++ p.s ++ clslash.s ! VPPerfPast ! p.p ! ODir; --# notpresent
-          <Fut,Simul>  => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir; --# notpresent
-          <Fut,Anter>  => temp.s ++ p.s ++ clslash.s ! VPPerfFut ! p.p ! ODir; --# notpresent
-          <Cond,Simul> => temp.s ++ p.s ++ clslash.s ! VPContPres ! p.p ! ODir; --# notpresent
-          <Cond,Anter> => temp.s ++ p.s ++ clslash.s ! VPContPast ! p.p ! ODir --# notpresent
-     };		  
-      c2 = clslash.c2
-    } ;
-
-    AdvS a s = {s = a.s ++ s.s} ;
-
-    RelS s r = {s = s.s ++ r.s ! agrP3 Masc Sg} ;
-    SSubjS s sj s = { s = s.s ++ sj.s ++ s.s};
-
-}
+concrete SentenceUrd of Sentence = CatUrd ** SentenceHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/StringsHindustani.gf b/lib/src/urdu/StringsHindustani.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/StringsHindustani.gf
@@ -0,0 +1,20 @@
+resource StringsHindustani = {
+
+flags coding = utf8 ;
+
+oper
+  agr = "اگر" ;
+  awr = "اور" ;
+  jn = "جن" ;
+  js = "جس" ;
+  jw = "جو" ;
+  kw = "كو" ;
+  mt = "مت" ;
+  nE = "نے" ;
+  nh = "نہ" ;
+  sE = "سے" ;
+  waN = "واں" ;
+
+  comma = "," ;
+
+}
diff --git a/lib/src/urdu/StructuralUrd.gf b/lib/src/urdu/StructuralUrd.gf
--- a/lib/src/urdu/StructuralUrd.gf
+++ b/lib/src/urdu/StructuralUrd.gf
@@ -1,49 +1,51 @@
 concrete StructuralUrd of Structural = CatUrd ** 
-  open MorphoUrd, ParadigmsUrd, Prelude, NounUrd in {
+  open MorphoUrd, ParadigmsUrd, Prelude, NounUrd,ParamX,CommonHindustani in {
 
   flags optimize=all ;
   coding = utf8;
 
   lin
-  above_Prep = ss "اوپر" ;
-  after_Prep = ss "كے بعد" ;
+  above_Prep = mkPrep "اوپر" "اوپر" ;
+  after_Prep = mkPrep ["كے بعد"] ["كے بعد"] ;
   all_Predet = ss "تمام" ;
-  almost_AdA, almost_AdN = ss "تقریبا" ;
-  although_Subj = ss "اگرچھ" ;
+  almost_AdA, almost_AdN = mkAdN "تقریبا" ;
+  although_Subj = ss "اگرچہ" ;
   always_AdV = ss "ہمیشہ" ;
   and_Conj = sd2 [] "اور" ** {n = Pl} ;
-  because_Subj = ss "كیونكھ" ;
-  before_Prep = ss "پہلے" ;
-  behind_Prep = ss "پیچھے" ;
-  between_Prep = ss "درمیاں" ;
+  because_Subj = ss "كیونكہ" ;
+  before_Prep = mkPrep "پہلے" "پہلے" ;
+  behind_Prep = mkPrep "پیچھے" "پیچھے" ;
+  between_Prep = mkPrep "درمیاں" "درمیاں" ;
   both7and_DConj = sd2 "دونوں" "اور" ** {n = Pl} ;
   but_PConj = ss "لیكن" ;
-  by8agent_Prep = ss "" ;
-  by8means_Prep = ss "" ;
+  by8agent_Prep = mkPrep "" "" ;
+  by8means_Prep = mkPrep "" "" ;
   can8know_VV,can_VV = mkV "سكنا" ** { isAux = True} ;
-  during_Prep = ss ["كے درمیاں"] ;
+  during_Prep = mkPrep ["كے درمیاں"] ["كے درمیاں"] ;
   either7or_DConj = sd2 "كوی ایك" "یا" ** {n = Sg} ;
   everybody_NP =  MassNP (UseN (ParadigmsUrd.mkN "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" Masc )); -- not a good way coz need to include NounUrd
   every_Det = mkDet "ہر" "ہر" "ہر" "ہر" Sg;
   everything_NP = MassNP (UseN (ParadigmsUrd.mkN "ہر چیز" "ہر چیز" "ہر چیزو" "سب چیزیں" "سب چیزوں" "سب چیزو" Masc ));
-  everywhere_Adv = ss "ہر جگہ" ;
+  everywhere_Adv = mkAdv "ہر جگہ" ;
   few_Det = mkDet "چند" "چند" "چند" "چند" Pl ;
-  for_Prep = ss "كیلیے" ;
-  from_Prep = ss "سے" ;
+  first_Ord = {s = "پعہلا" ; n = Sg} ; --DEPRECATED
+  for_Prep = mkPrep "كیلیے" "كیلیے" ;
+  from_Prep = mkPrep "سے" "سے" ;
   he_Pron = personalPN "وہ" "اس" "" "اس كا"  Sg Masc Pers3_Distant ;
-  here_Adv = ss "یہاں" ;
-  here7to_Adv = ss ["یہاں پر"] ;
-  here7from_Adv = ss ["یہاں سے"] ;
-  how_IAdv = ss "ہoو" ;
+  here_Adv = mkAdv "یہاں" ;
+  here7to_Adv = mkAdv ["یہاں پر"] ;
+  here7from_Adv = mkAdv ["یہاں سے"] ;
+  how_IAdv = ss "كیسے" ;
   how8many_IDet = makeIDet "كتنے" "كتنی" Pl ;
+  how8much_IAdv  = ss "كتنا" ;
   if_Subj = ss "اگر" ;
-  in8front_Prep = ss ["كے سامنے"] ;
+  in8front_Prep = mkPrep ["كے سامنے"] ["كے سامنے"] ;
   i_Pron = personalPN "میں" "مجھ" "" "میرا" Sg Masc Pers1;
-  in_Prep = ss "معں" ;
-  it_Pron  = personalPN "یہ" "یہ" "یہ" "اس كا" Sg Masc Pers3_Near;
+  in_Prep = mkPrep "میں" "میں" ;
+  it_Pron  = personalPN "یہ" "اس" "اس" "اس كا" Sg Masc Pers3_Near;
   less_CAdv = {s = "كم" ; p = ""} ;
   many_Det = mkDet "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" Pl ;
-  more_CAdv = {s = "زیادھ" ; p = "" } ;
+  more_CAdv = {s = "زیادہ" ; p = "سے" } ;
   most_Predet = ss "زیادہ تر" ;
   much_Det = mkDet "بہت" "بہت" "بہت" "بہت" Sg  ;
 --  must_VV = {
@@ -60,65 +62,66 @@
 --    } ;
 -----b  no_Phr = ss "نo" ;
   no_Utt = ss "نہیں" ;
-  on_Prep = ss "پر" ;
+  on_Prep = mkPrep "پر" "پر" ;
 --  one_Quant = demoPN "ایك" "ایك" "ایك" ; -- DEPRECATED
-  only_Predet = ss "سرف" ;
+  only_Predet = ss "صرف" ;
   or_Conj = sd2 [] "یا" ** {n = Sg} ;
   otherwise_PConj = ss "یا پھر" ;
-  part_Prep = ss "" ;
-  please_Voc = ss "مہربانi" ;
-  possess_Prep = ss "كا" ;
-  quite_Adv = ss "كہامoسہ" ;
+  part_Prep = mkPrep "" "" ;
+  please_Voc = ss "مہربانی" ;
+  possess_Prep = mkPrep "كا" "كی" ;
+  quite_Adv = ss "خاموش" ;
   she_Pron = personalPN "وہ" "اس" "وہ" "اس كی" Sg Fem Pers3_Distant ;
-  so_AdA = ss "سo" ;
+  so_AdA = ss "[اس لیE]" ;
   somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی" "كوی" "كوی" "كوی" "كوی" "كوی" Masc ));
   someSg_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Sg ;
   somePl_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Pl ;
   something_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی چیز" "كوی چیز" "كوی چیز" "كھ چیزیں" "كھ چیزوں" "كھ چیزو" Masc ));
-  somewhere_Adv = ss "كہiن پر" ;
+  somewhere_Adv = mkAdv ["كہیں پر"] ;
   that_Quant = demoPN "وہ" "اس" "ان" ;
   that_Subj = ss "كہ";
-  there_Adv = ss "وہاں" ;
-  there7to_Adv = ss "وہاں پر" ;
-  there7from_Adv = ss ["وہاں سے"] ;
+  there_Adv = mkAdv "وہاں" ;
+  there7to_Adv = mkAdv ["وہاں پر"] ;
+  there7from_Adv = mkAdv ["وہاں سے"] ;
   therefore_PConj = ss "اس لیے" ;
   they_Pron = personalPN "وہ" "وہ" "وہ" "ان كا" Pl Masc Pers3_Distant ; ---- 
   this_Quant = demoPN "یہ" "اس" "ان";      
-  through_Prep = ss ["میں سے"] ;
+  through_Prep = mkPrep ["میں سے"] ["میں سے"] ;
   too_AdA = ss "بہت" ;
-  to_Prep = ss "كو" ;
-  under_Prep = ss "نیچے" ;
+  to_Prep = mkPrep "كو" "كو" ; -- ** {lock_Prep = <>};
+  under_Prep = mkPrep "نیچے" "نیچے" ; -- ** {lock_Prep = <>};
   very_AdA = ss "بہت" ;
   want_VV = mkV "چاہنا" ** { isAux = False} ;
   we_Pron = personalPN "ہم" "ہم" "ہم" "ہمارا" Pl Masc Pers1 ;
-  whatSg_IP = mkIP "كیا" "كiس" "كiس" Sg Masc ;
-  whatPl_IP = mkIP "كیا" "كiن" "كiن" Pl Masc ;
+  whatSg_IP = mkIP "كیا" "كس" "كس" Sg Masc ;
+  whatPl_IP = mkIP "كیا" "كن" "كن" Pl Masc ;
   when_IAdv = ss "كب" ;
-  when_Subj = ss "كب" ;
+  when_Subj = ss "جب" ;
   where_IAdv = ss "كہاں" ;
-  which_IQuant = {s = \\_ => "كون سی"} ;
+--  which_IQuant = {s = \\_ => "كون سی"} ;
+  which_IQuant = mkIQuant "كون" ;
 --  whichPl_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
 --  whichSg_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
-  whoSg_IP = mkIP "كون" "كiس" "كiس" Sg Masc  ;
+  whoSg_IP = mkIP "كون" "كس" "كس" Sg Masc  ;
   whoPl_IP = mkIP "كون" "كن" "كنہوں" Pl Masc ;
   why_IAdv = ss "كیوں" ;
-  without_Prep = ss ["كے بغیر"] ;
-  with_Prep = ss ["كے ساتھ"] ;
+  without_Prep = mkPrep ["كے بغیر"] ["كے بغیر"] ;
+  with_Prep = mkPrep ["كے ساتھ"] ["كے ساتھ"] ;
 --  yes_Phr = ss "ہاں" ;
   yes_Utt = ss "ہاں" ;
-  youSg_Pron = personalPN "تم" "تم" "تم" "تمھارا" Sg Masc Pers2_Casual ;
+  youSg_Pron = personalPN "تو" "تو" "تو" "تیرا" Sg Masc Pers2_Casual ;
   youPl_Pron = personalPN "تم" "تم" "تم" "تمھارا" Pl Masc Pers2_Casual ;
-  youPol_Pron = personalPN "آپ" "آP" "آP" "آپ كا" Sg Masc Pers2_Respect  ;
+  youPol_Pron = personalPN "آپ" "آپ" "آپ" "آپ كا" Sg Masc Pers2_Respect  ;
   no_Quant =  demoPN " كوی نہیں" "كوی نہیں" "كوی نہیں" ; 
   not_Predet = {s="نہیں"} ;
   if_then_Conj = sd2 "اگر" "تو" ** {n = Sg} ; 
-  at_least_AdN = ss ["كم از كم"] ;
-  at_most_AdN = ss ["زیادہ سے زیادہ"];
+  at_least_AdN = mkAdN ["كم از كم"] ;
+  at_most_AdN = mkAdN ["زیادہ سے زیادہ"];
   nothing_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" Masc )); 
-  except_Prep = ss "سواے" ;
+  except_Prep = mkPrep "سواے" "سواے" ;
   nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" Masc ));  
 
-  as_CAdv = {s = "عتنا" ; p = "جتنا"} ;
+  as_CAdv = {s = "اتنا" ; p = "جتنا"} ;
 
   have_V2 = mkV2 (mkV "راكھنا") "" ;
 
diff --git a/lib/src/urdu/SymbolUrd.gf b/lib/src/urdu/SymbolUrd.gf
--- a/lib/src/urdu/SymbolUrd.gf
+++ b/lib/src/urdu/SymbolUrd.gf
@@ -1,46 +1,4 @@
---# -path=.:../abstract:../common
-
-concrete SymbolUrd of Symbol = CatUrd ** open Prelude, ResUrd in {
-
- lin
--- SymbPN i = {s = \\_ => i.s ; g = Masc} ;
-  SymbPN i = {s = addGenitiveS i.s ; g = Masc} ;
-  IntPN i  = {s = addGenitiveS i.s ; g = Masc} ;
-  FloatPN i = {s = addGenitiveS i.s ; g = Masc} ;
-  NumPN i = {s = \\_ =>i.s ; g = Masc} ;
-  CNIntNP cn i = {
-    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
-    a = agrP3 cn.g Sg
-    } ;
-  CNSymbNP det cn xs = {
-    s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Dir ++  xs.s ; 
-    a = agrP3 cn.g det.n
-    } ;
-  CNNumNP cn i = {
-    s = \\c => cn.s ! Sg ! Dir ++ i.s ;
-    a = agrP3 cn.g Sg
-    } ;
-
-  SymbS sy = sy ; 
-  SymbNum sy = { s = sy.s ; n = Pl } ;
-  SymbOrd sy = { s = sy.s ++ waN_Str ; n = Pl} ;
-
-lincat 
-
-  Symb, [Symb] = SS ;
-
-lin
-  MkSymb s = s ;
-
-  BaseSymb = infixSS awr_Str
- ;
-  ConsSymb = infixSS [] ;
-
-oper
-    -- Note: this results in a space before 's, but there's
-    -- not mauch we can do about that.
-    addGenitiveS : Str -> Case => Str = \s -> 
-     table {_ => s ++ ka_Str} ;
-
+--# -path=.:../hindustani:../abstract:../common
 
-}
+concrete SymbolUrd of Symbol = CatUrd ** SymbolHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/VerbUrd.gf b/lib/src/urdu/VerbUrd.gf
--- a/lib/src/urdu/VerbUrd.gf
+++ b/lib/src/urdu/VerbUrd.gf
@@ -1,40 +1,2 @@
-concrete VerbUrd of Verb = CatUrd ** open ResUrd in {
-
-  flags optimize=all_subs ;
-
-  lin
-    UseV  v = predV v   ;
-    SlashV2a v = predV v ** {c2 = {s = v.c2.s ; c = VIntrans}} ;
-    Slash2V3 v np = 
-      insertObjc (\\_ => np.s ! NPObj ++ v.c3 ) (predV v ** {c2 = {s = v.c2 ; c = VTrans}}) ;
-    Slash3V3 v np = 
-      insertObjc (\\_ => np.s ! NPC Obl ++ v.c2) (predV v ** {c2 = {s = v.c3 ; c = VTrans}}) ; 
-    ComplVV v vp = insertVV (infVV v.isAux vp) (predV v) ;
-    ComplVS v s  = insertObj2 (conjThat ++ s.s) (predV v) ;
-    ComplVQ v q  = insertObj2 (conjThat ++ q.s ! QIndir) (predV v) ;
-    ComplVA v ap = insertObj (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit) (predV v) ;
-    SlashV2V v vp = insertVV ((vp.s!VPImp).inf++ky_Str) (predV v) **{c2 = {s = sE_Str ; c = VIntrans}} ;
-    SlashV2S v s  = insertObjc2 (conjThat ++ s.s) (predV v ** {c2 = {s = kw_Str ; c = VIntrans}}) ;
-    SlashV2Q v q  = insertObjc2 (conjThat ++ q.s ! QIndir) (predV v ** {c2 = {s = sE_Str ; c = VIntrans}}) ;
-    SlashV2A v ap = insertObjc (\\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit) (predV v ** {c2 = {s = kw_Str ; c = VIntrans}}) ; ----
-    ComplSlash vp np = insertObject np vp ;
-    SlashVV vv vp = 
-      insertObj (\\a => infVP vv.isAux vp a) (predV vv) **
-        {c2 = vp.c2} ;
-    SlashV2VNP vv np vp = 
-      insertObjPre (\\_ =>  np.s ! NPObj  )
-        (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
-          {c2 = vp.c2} ;
-    UseComp comp = insertObj comp.s (predAux auxBe) ;
-
-    AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
-
-    AdVVP adv vp = insertAdV adv.s vp ;
-    ReflVP v = insertObjPre (\\_ =>  RefPron) v ;
-    PassV2 v = predV v ; -- need to be fixed
-    CompAP ap ={s = \\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit } ;
-    CompNP np = {s = \\_ => np.s ! NPObj} ;
-    CompAdv a = {s = \\_ => a.s} ;
-
-
-}
+concrete VerbUrd of Verb = CatUrd ** VerbHindustani with
+  (ResHindustani = ResUrd) ;
diff --git a/lib/src/urdu/src/DiffUrd.gf b/lib/src/urdu/src/DiffUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/DiffUrd.gf
@@ -0,0 +1,115 @@
+instance DiffUrd of DiffHindustani = open CommonHindustani, Prelude in {
+
+flags coding = utf8 ;
+
+oper
+
+Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
+  mkClause : NP -> VPH -> Clause = \np,vp -> {
+      s = \\vt,b,ord => 
+        let 
+          subjagr : NPCase * Agr = case vt of {
+            VPImpPast => case vp.subj of {
+              VTrans     => <NPErg, vp.obj.a> ;
+              VTransPost => <NPErg, defaultAgr> ;
+              _          => <NPC Dir, np.a>
+              } ;
+            _ => <NPC Dir, np.a>
+            } ;
+          subj = subjagr.p1 ;
+          agr  = subjagr.p2 ;
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case vt of {
+
+		   VPGenPres  => vp.s !  VPTense VPPres agr ;
+		   VPImpPast  => vp.s !  VPTense VPPast agr ;		    
+		   VPFut      => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).fin ; inf = (vp.s !  VPTense VPFutr agr).inf ++ hw p n} ;
+                                                   _    => vp.s !  VPTense VPFutr agr } ;
+                   VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		   VPContFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
+		   VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;  
+		   VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf  ++ hw p n } ;
+		   VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+	           VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
+		   VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
+		   VPSubj   => case vp.prog of { True => {fin = (vp.s !  VPTense VPFutr agr).inf ++ hw p n ; inf = "Xayd" } ;
+		   _    => {fin = (vp.s !  VPTense VPFutr agr).inf ; inf = "Xayd" } } 
+                   
+		  };
+					
+		    
+          quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+		  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+           nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };
+        in
+		case vt of {
+		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
+		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
+
+  } ;
+
+  mkSClause : Str -> Agr -> VPH -> Clause =
+    \subj,agr,vp -> {
+      s = \\t,b,ord => 
+        let 
+		  n    = (fromAgr agr).n;
+		  p    = (fromAgr agr).p;
+		  g    = (fromAgr agr).g;
+          vps  = case t of {
+                    VPGenPres  => vp.s !  VPTense VPPres agr ;
+		    VPImpPast  => vp.s !  VPTense VPPast agr ;
+		    VPFut      => vp.s !  VPTense VPFutr agr ;
+		    VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
+		    VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
+		    VPContFut  => {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
+		    VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
+		    VPPerfFut  => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
+		    VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
+		    VPPerfFutCont =>  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
+		    VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "Xayd"  }
+                    
+			  };
+
+	  quest =
+            case ord of
+              { ODir => [];
+                OQuest => "kya" }; 
+	  na =
+            case b of
+              { Pos => [];
+                Neg => "na" };
+          nahim =
+            case b of 
+              { Pos => [];
+                Neg => "nhyN" };		
+        in
+		case t of {
+		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
+		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
+    } ;
+
+ 
+ np2pronCase ppf npc a = case npc of {
+       NPC c => ppf ! c;
+       NPObj => ppf ! Obl ;
+       NPErg => case (fromAgr a).p of {
+           (Pers3_Near|Pers3_Distant) => ppf ! Obl ++ "nE" ;
+	   _			     => ppf ! Dir ++ "nE"
+	   }
+      } ;
+}
diff --git a/lib/src/urdu/src/ExtraUrd.gf b/lib/src/urdu/src/ExtraUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/ExtraUrd.gf
@@ -0,0 +1,19 @@
+concrete ExtraUrd of ExtraUrdAbs = CatUrd ** 
+  open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd,CommonHindustani in {
+
+flags coding = utf8 ;
+
+  lin
+    GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ;
+
+    each_Det = mkDet  "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ;
+    have_V = mkV "rakh-na";
+    IAdvAdv adv = {s = "ktny" ++ adv.s ! Masc} ;
+    ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ;
+    cost_V = mkV "qymt" ;
+    
+    -- added for causitives
+    make_CV = mkVerb "nothing"   ** {c2 = "" };
+
+-- for VP conjunction
+} 
diff --git a/lib/src/urdu/src/IdiomUrd.gf b/lib/src/urdu/src/IdiomUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/IdiomUrd.gf
@@ -0,0 +1,40 @@
+concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,CommonHindustani in {
+
+  flags optimize=all_subs ;
+  flags coding = utf8;
+
+  lin
+    ImpersCl vp = mkSClause " " (agrP3 Masc Sg) vp ;
+    GenericCl vp = mkSClause "kwy" (agrP3 Masc Sg) vp ;
+
+    CleftNP np rs = 
+	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
+	  in 
+	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
+	  
+    CleftAdv ad ss = { s = \\t,b,o => ad.s ! Masc ++ ss.s};
+        
+    ExistNP np = 
+      mkSClause "whaN" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
+        (insertObj (\\_ => np.s ! NPC Dir) (predAux auxBe)) ;
+
+    ExistIP ip = 
+     let cl = mkSClause ("whaN" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
+	   in {
+       s = \\t,p,qf => case qf of { 
+	      QDir =>   cl.s ! t ! p ! ODir;
+          QIndir => cl.s ! t! p ! ODir
+		  }
+		};
+
+--    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
+    ProgrVP vp =  (predProg vp) ;
+
+--    ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ; -- inf form is not used e.g Aw swna instead Aw swyyN (Imp.fin)
+   ImpPl1 vp = {s = "Aw" ++ (vp.s ! VPImp).fin} ;
+--	ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPImp ).inf ++ "dw"}; here VPImp form is not correct e.g jan ko sw do, rather jan ko swnE do, and swnE is stored in vp.VPInf.fin
+  ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPInf ).fin ++ "dw"};
+
+
+}
+
diff --git a/lib/src/urdu/src/LexiconUrd.gf b/lib/src/urdu/src/LexiconUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/LexiconUrd.gf
@@ -0,0 +1,370 @@
+--# -path=.:prelude
+
+concrete LexiconUrd of Lexicon = CatUrd ** 
+--open ResUrd, Prelude in {
+  open ParadigmsUrd, Prelude in {
+
+  flags 
+    optimize=values ;
+    coding = utf8;
+
+  lin
+  airplane_N = mkN "jhaz" ;
+  answer_V2S = mkV2  (compoundV "jwab" (mkV "dyna")) ;
+  apartment_N = mkN "kmrh" ;
+  apple_N = mkN "syb" ;
+  art_N = mkN "fn" ;
+  ask_V2Q = mkV2 (mkV "pwch'na") ;
+  baby_N = mkN "bch" ;
+  bad_A = mkA "bra" ;
+  bank_N = mkN "bynk" ;
+  beautiful_A = mkA "KwbSwrt" ;
+  become_VA = mkV "bnna";
+  beer_N = mkN "byyr" ;
+  beg_V2V =  mkV2V (compoundV "altja" (mkV "krna")) "sE" "kh" False;
+  big_A = mkA "bRa" ;
+  bike_N = mkN "saykl" feminine ;
+  bird_N = mkN "prndh" ;
+  black_A =  mkA "kala" ;
+  blue_A = mkA "nyla" ;
+  boat_N = mkN "kXty" ;
+  book_N = mkN "ktab" feminine ;
+  boot_N = mkN "jwta" ;
+  boss_N = mkN "SaHb" ;
+  boy_N = mkN "lRka" ;
+  bread_N = mkN "rwTy" ;
+  break_V2 = mkV2 (mkV "twRna") ;
+  broad_A = mkA "kh'la" ;
+  brother_N2 = mkN2 (mkN "bh'ay") (mkPrep "ka" "ka") "kE" ; --not correct
+  brown_A = mkA "nswary" ;
+  butter_N = mkN "mkh'n" ;
+  buy_V2 = mkV2 (mkV "Krydna") "kw";
+  camera_N = mkN "kymrh" ;
+  cap_N = mkN "Twpy" ;
+  car_N = mkN "gaRy" ;
+  carpet_N = mkN "tpay^y" ;
+  cat_N = mkN "bly" ;
+  ceiling_N = mkN "ch't" feminine ;
+  chair_N = mkN "krsy" ;
+  cheese_N = mkN "pnyr" feminine ;
+  child_N = mkN "bch"  ;
+  church_N = mkCmpdNoun "grja" (mkN "gh'r") ;
+  city_N = mkN "Xhr"  ;
+  clean_A = mkA "Saf" ;
+  clever_A = mkA "hwXyar" ;  
+  close_V2 =  mkV2 (compoundV "bnd" do_V2); 
+  coat_N = mkN "kwT" ;
+  cold_A = mkA "Th'nDa" ;
+  come_V = mkV "Ana" ;
+  computer_N = mkN "kmpywTr" ;
+  country_N = mkN "mlk" ;
+  cousin_N = mkCmpdNoun "cca" (mkN "zad") ; -- a compund noun made of two nouns
+  cow_N = mkN "gaE" feminine ;
+  die_V = mkV "mrna" ;
+  dirty_A = mkA "gnda" ;
+  distance_N3 = mkN3 (mkN "faSlh") (mkPrep "ka" "ka") "kE" "sE"  ;
+  doctor_N = mkN "mealj" ;
+  dog_N = mkN "kta" ;
+  door_N = mkN "drwazh" ;
+  drink_V2 = mkV2 (mkV "pyna");
+  easy_A2V = mkA "Asan" "" ;
+  eat_V2 = mkV2 (mkV "kh'ana") "" ;
+  empty_A = mkA "Kaly" ;
+  enemy_N = mkN "dXmn" ;
+  factory_N = mkN "karKanh" ;
+  father_N2 = mkN2 (mkN "aba") (mkPrep "ka" "ka") "kE"  ;
+  fear_VS = mkV "Drna";
+  find_V2 = mkV2 (mkV "pana") ;
+  fish_N = mkN "mch'ly" ;
+  floor_N = mkN "frX" ;
+  forget_V2 = mkV2 (mkV "bh'wlna")  ;
+  fridge_N = mkN "fryj" ;
+  friend_N = mkN "dwst" masculine ;
+  fruit_N = mkN "ph'l" ;
+--  fun_AV = mkAV (regA "f?n") ;
+  garden_N = mkN "baG" ;
+  girl_N = mkN "lRky" ;
+  glove_N = mkN "dstanh" ;
+  gold_N = mkN "swna" ;
+  good_A = mkA "ach'a" ;
+  go_V = mkV "jana" ;
+  green_A = mkA "sbz" ;
+  harbour_N = mkCmpdNoun "bndr" (mkN "gah") ;
+  hate_V2 = mkV2 (compoundV "nfrt" do_V2) ;
+  hat_N = mkN "Twpy" ;
+--  have_V2 = dirV2 (mk5V "ha?e" "has" "had" "had" "ha??ng") ;
+  hear_V2 = mkV2 (mkV "snna") ;
+  hill_N = mkN "phaRy" ;
+  hope_VS = (compoundV "amyd" do_V2);
+  horse_N = mkN "gh'wRa" ;
+  hot_A = mkA "grm" ;
+  house_N = mkN "gh'r" ;
+  important_A = mkA "ahm" ;
+  industry_N = mkN "Snet" feminine ;
+  iron_N = mkN "lwha" ;
+  king_N = mkN "badXah" ;
+  know_V2 = mkV2 (mkV "janna") ;
+  know_VS = (mkV "janna") ;
+  know_VQ = (mkV "janna") ;
+  lake_N = mkN "jh'yl" feminine ;
+  lamp_N = mkN "lymp" ;
+  learn_V2 = mkV2 (mkV "sykh'na") ;
+  leather_N = mkN "cmRa" ;
+  leave_V2 = mkV2 (mkV "jana") ;
+  like_V2 = mkV2 (compoundV "psnd" do_V2);
+  listen_V2 = mkV2 (mkV "snna") ;
+  live_V = mkV "rhna" ; ---- touch
+  long_A = mkA "lmba" ;
+  lose_V2 = mkV2 (compoundV "kh'w" do_V2) ;
+  love_N = mkN "mHbt" ;
+  love_V2 = mkV2 (compoundV "pyar" do_V2) "kw";
+  man_N = mkN "Admy" "Admy" "Admy" "Admy" "AdmywN" "Admyw" masculine ; 
+  married_A2 = mkA "[Xady krna]" "sE" ;
+  meat_N = mkN "gwXt" ;
+  milk_N = mkN "dwdh'" ;
+  moon_N = mkN "cand" ;
+  mother_N2 = mkN2 (mkN "maN") (mkPrep "ky" "ky") "kE";   -- not covered need to be discussed
+  mountain_N = mkN "phaRy" ;
+  music_N = mkN "mwsyqy" ;
+  narrow_A = mkA "baryk" ;
+  new_A = mkA "nya" ;
+  newspaper_N = mkN "aKbar" ;
+  oil_N = mkN "tyl" ;
+  old_A = mkA "bwRh'a" ;
+  open_V2 = mkV2 (mkV "kh'wlna") ;
+  paint_V2A = mkV2 (compoundV "rng" do_V2) ;
+  paper_N = mkN "kaGz" ;
+  paris_PN = mkPN "pyrs" ;
+  peace_N = mkN "amn" ;
+  pen_N = mkN "pnsl" ;
+  planet_N = mkN "syarh" ;
+  plastic_N = mkN "plasTk" ;
+  play_V2 = mkV2 (mkV "kh'ylna") ;
+  policeman_N = mkCmpdNoun "pwlys" (mkN "wala") ; 
+  priest_N = (mkN "pyGmbr") ;
+--  probable_AS = mkAS (regA "pr?bable") ;
+  queen_N = mkN "Xhzady" ;
+  radio_N = mkN "ryDyw" ;
+  rain_V0 = compoundV "barX" (mkV "hwna" ) ;
+  read_V2 = mkV2 (mkV "pRh'na");
+  red_A = mkA "lal" ;
+  religion_N = mkN "mzhb" ;
+  restaurant_N = mkN "hwTl" ;
+--  river_N = mkN "drya" masculine ;
+  rock_N = mkN "cTan" ;
+--  roof_N = mkN "ch't"   masculine ;
+  rubber_N = mkN "rbR" ;
+  run_V = mkV "dwRna" ;
+  say_VS = mkV "khna" ;
+  school_N = mkN "skwl" ;
+  science_N = mkN "sans" ;
+  sea_N = mkN "smndr" ;
+  seek_V2 = mkV2 (compoundV "tlaX" do_V2) ;
+  see_V2 = mkV2 (mkV "dykh'na") ;
+  sell_V3 = mkV3 (mkV "bycna") "kw" "";
+  send_V3 = mkV3 (mkV "bh'yjna") "kw" "kw";
+  sheep_N = mkN "bh'yR" feminine ;
+  ship_N = mkN "jhaz" ;
+  shirt_N = mkN "qmyS" feminine;
+  shoe_N = mkN "jwta" ;
+  shop_N = mkN "dwkan" feminine ;
+  short_A = mkA "ch'wTa" ;
+  silver_N = mkN "candy" ;
+  sister_N = mkN "bhn" feminine ;
+  sleep_V = mkV "swna" ;
+  small_A = mkA "ch'wTa" ;
+  snake_N = mkN "sanp" ;
+  sock_N = mkN "jrab" feminine ;
+  speak_V2 = mkV2 (mkV "bwlna") ;
+  star_N = mkN "stara" ;
+  steel_N = mkN "sTyl" ;
+  stone_N = mkN "pth'r" ;
+  stove_N = mkN "cwlha" ;
+  student_N = mkCmpdNoun "t-alb" (mkN "elm") ;
+  stupid_A = mkA "aHmq" ;
+  sun_N = mkN "swrj" ;
+  switch8off_V2 = mkV2 (mkV "clana") ;
+  switch8on_V2 = mkV2 (compoundV "bnd" do_V2) ;
+  table_N = mkN "myz" feminine ;
+  talk_V3 = mkV3 (mkV "bwlna") "sE" "[kE barE myN]";
+  teacher_N = mkN "astad" ;
+  teach_V2 = mkV2 (mkV "pRh'na") ;
+  television_N = mkN "tylywyxn" ;
+  thick_A = mkA "mwTa" ;
+  thin_A = mkA "ptla" ;
+  train_N = mkN "gaRy" ;
+  travel_V = (compoundV "sfr" do_V2) ;
+--  tree_N = mkN "drKt" masculine ;
+-- ---- trousers_N = mkN "tr??sers" ;
+  ugly_A = mkA "bdSwrt" ;
+  understand_V2 = mkV2 (mkV "smjh'na") ;
+  university_N = mkN "ywnywrsTy" ;
+  village_N = mkN "gawN" ;
+  wait_V2 = mkV2 (compoundV "antz-ar" do_V2) ;
+  walk_V = mkV "clna" ;
+  warm_A = mkA "grm" ;
+  war_N = mkN "jng" ;
+  watch_V2 = mkV2 (mkV "dykh'na") ;
+  water_N = mkN "pany" ; -- not covered masculine ending with y
+  white_A = mkA "sfyd" ;
+  window_N = mkN "kh'Rky" ;
+  wine_N = mkN "Xrab" feminine ;
+  win_V2 = mkV2 (mkV "jytna") ;
+  woman_N = mkN "ewrt" feminine ;
+  wonder_VQ = compoundV "Hyran" (mkV "hwna") ;
+  wood_N = mkN "lkRy" ;
+  write_V2 = mkV2 (mkV "lkh'na") ;
+  yellow_A = mkA "pyla" ;
+  young_A = mkA "jwan" ;
+  do_V2 = mkV2 (mkV "krna")  ;
+  now_Adv = mkAdv "ab" ;
+  already_Adv = mkAdv "[phlE hy]" ;
+  song_N = mkN "gana" ;
+  add_V3 = mkV3 (compoundV "aZ-afh" do_V2) "" "" ;
+  number_N = mkN "hndsh" ;
+  put_V2 = mkV2 (mkV "Dalna") ;
+  stop_V = mkV "rkna"  ;
+  jump_V = mkV "ch'langna" ;
+
+  left_Ord = {s = "bayaN" ; n = singular};
+  right_Ord = {s= "dayaN" ; n = singular};
+  far_Adv = mkAdv "dwr" ;
+  correct_A = mkA "SyH" ;
+  dry_A = mkA "KXk" ;
+  dull_A = mkA "nalayq" ;
+  full_A = mkA "mkml" ;
+  heavy_A = mkA "bh'ary" ;
+  near_A = mkA "qryb" ;
+  rotten_A = mkA "Krab" ;
+  round_A = mkA "gwl" ;
+  sharp_A = mkA "tyz" ;
+  smooth_A = mkA "hmwar" ;
+  straight_A = mkA "sydh'a" ;
+  wet_A = mkA "gyla" ; ----
+  wide_A = mkA "kh'la" ;
+  animal_N = mkN "janwr" ;
+  ashes_N = mkN "rakh'" feminine; -- FIXME: plural only?
+  back_N = mkN "qmr" feminine ;
+  bark_N = mkN "bark" ;
+  belly_N = mkN "dh'ny" ;
+  blood_N = mkN "Kwn" ;
+  bone_N = mkN "hDy" ;
+  breast_N = mkN "ch'aty" ;
+  cloud_N = mkN "badl" ;
+  day_N = mkN "dn" ;
+  dust_N = mkN "dh'wl" ;
+  ear_N = mkN "kan" ;
+  earth_N = mkN "zmyn" feminine ;
+  egg_N = mkN "anDh" ;
+  eye_N = mkN "Ankh'" feminine ;
+  fat_N = mkN "mwTa" ;
+  feather_N = mkN "pr" ;
+  fingernail_N = mkN "naKn" ;
+  fire_N = mkN "Ag" feminine ;
+  flower_N = mkN "ph'wl" ;
+  fog_N = mkN "dh'nd" feminine ;
+  foot_N = mkN "pawN" ; -- not properly covered need to be discussed
+  forest_N = mkN "jngl" ;
+  grass_N = mkN "gh'as" feminine ;
+  guts_N = mkN "gT" ; -- FIXME: no singular
+  hair_N = mkN "bal" ;
+  hand_N = mkN "hath'" ;
+  head_N = mkN "sr" ;
+  heart_N = mkN "dl" ;
+  horn_N = mkN "gh'nTy" ;
+  husband_N = mkN "Xwhr" ;
+  ice_N = mkN "brf" feminine ;
+  knee_N = mkN "khny" ;
+  leaf_N = mkN "pth" ;
+  leg_N = mkN "Tang" feminine ;
+  liver_N = mkN "jgr" ;
+  louse_N = mkN "gh'r" ;
+  mouth_N = mkN "mnh" ;
+  name_N = mkN "nam" ;
+  neck_N = mkN "grdn" feminine ;
+  night_N = mkN "rat" feminine ;
+  nose_N = mkN "nak" ;
+  person_N = mkN "XKS" ;
+  rain_N = mkN "barX" feminine ;
+  road_N = mkN "sRk" ;
+  root_N = mkN "jR" feminine ;
+  rope_N = mkN "rsy" ;
+  salt_N = mkN "nmk" feminine ;
+  sand_N = mkN "ryt" feminine ;
+  seed_N = mkN "byj"  ;
+  skin_N = mkN "jld" feminine ;
+  sky_N = mkN "Asman" ;
+  smoke_N = mkN "dh'waN"; -- singular masc nouns ending with aN,wN yet to be implemented
+  snow_N = mkN "brf" feminine ;
+  stick_N = mkN "ch'Ry" ;
+  tail_N = mkN "dm" ;
+  tongue_N = mkN "zban" feminine ;
+--  tooth_N = mkN "dant" masculine;
+  wife_N = mkN "bywy" ;
+  wind_N = mkN "Andh'y" ;
+  wing_N = mkN "pr" ;
+  worm_N = mkN "grm" ;
+  year_N = mkN "sal" ;
+  blow_V = mkV "clna" ;
+  breathe_V = compoundV "sans" (mkV "lyna" ) ;
+  burn_V = mkV "jlna" ;
+  dig_V = mkV "kh'wdna" ;
+  fall_V = mkV "grna" ;
+  float_V = mkV "tyrna" ;
+  flow_V = mkV  "bhna" ;
+  fly_V = mkV "aRna" ;
+  freeze_V = mkV "jmna";
+  give_V3 = mkV3 (mkV "dyna") "kw" "";
+  laugh_V = mkV "hnsna" ;
+--  lie_N = mkN "jh'wt" masculine ;
+  lie_V = compoundV "jh'wT" (mkV "bwlna" );
+  play_V = mkV "kh'ylna" ;
+  sew_V = mkV "syna" ;
+  sing_V = mkV "gana" ;
+  sit_V = mkV "byTh'na" ;
+  smell_V = mkV "swngna" ;
+  spit_V = mkV "th'wkna" ;
+  stand_V = compoundV "kh'RE" (mkV "hwna" );
+  swell_V = mkV "swjh'na" ;
+  swim_V = mkV "tyrna" ;
+  think_V = mkV "swcna" ;
+  turn_V = mkV "mRna";
+  vomit_V = compoundV "alty" (mkV "krna") ;
+  bite_V2 = mkV2 (mkV "kaTna") ;
+  count_V2 = mkV2 (mkV "gnna") ;
+  cut_V2 = mkV2 (mkV "katna") ;
+  fear_V2 = mkV2 (mkV "Drna") ;
+  fight_V2 = mkV2 (mkV "lRna") ;
+  hit_V2 = mkV2 (compoundV "Th'wkr" (mkV "marna" ));
+  hold_V2 = mkV2 (mkV "pkRna") ;
+  hunt_V2 = mkV2 (compoundV "Xkar" do_V2);
+  kill_V2 =  mkV2 (compoundV "mar" (mkV "Dalna" )) ;
+  pull_V2 = mkV2 (mkV "kh'ncna");
+  push_V2 = mkV2 (mkV "dh'kylna") "kw" ;
+  rub_V2 = mkV2 (mkV "rgRna") ;
+  scratch_V2 = mkV2 (mkV "kh'rcna") "kw" ;
+  split_V2 = mkV2 (mkV "banTna") "kw" ;
+--  squeeze_V2 = dirV2 (regV "sq?eeze") ;
+--  stab_V2 = dirV2 (regDuplV "stab") ;
+  suck_V2 = mkV2 (mkV "cwsna") ;
+  throw_V2 = mkV2 (mkV "ph'ynkna") ;
+  tie_V2 = mkV2 (mkV "bandh'na") ;
+  wash_V2 = mkV2 (mkV "dh'wna") ;
+  wipe_V2 = mkV2 (compoundV "Saf" (mkV "krna" ));
+
+----  other_A = regA "?ther" ;
+
+  grammar_N = mkN "grdan" ;
+  language_N = mkN "zban" feminine ;
+  rule_N = mkN "aSwl" ;
+
+---- added 4/6/2007
+    john_PN = mkPN "jan" ;
+    question_N = mkN "swal" ;
+--    ready_A = regA "ready" ;
+    reason_N = mkN "wjh" feminine ;
+    today_Adv = mkAdv "Aj" ;
+    uncertain_A = mkA ["Gyryqyny"] ;
+    
+ 
+}
diff --git a/lib/src/urdu/src/MorphoUrd.gf b/lib/src/urdu/src/MorphoUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/MorphoUrd.gf
@@ -0,0 +1,492 @@
+--# -path=.:../../prelude
+--
+----1 A Simple Urdu Resource Morphology
+----
+----  Shafqat Virk, Aarne Ranta,2009
+----
+---- This resource morphology contains definitions needed in the resource
+---- syntax. To build a lexicon, it is better to use $ParadigmsUrd$, which
+---- gives a higher-level access to this module.
+--
+resource MorphoUrd = ResUrd ** open CommonHindustani,Prelude,Predef,ParamX in {
+
+  flags optimize=all ;
+   coding = utf8;
+
+----2 Nouns
+oper
+    mkNoun : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun = 
+      \sd,so,sv,pd,po,pv,g -> {
+      s = table {
+      Sg => table {
+        Dir => sd ;
+        Obl => so ;
+        Voc => sv 
+	  } ;
+      Pl => table {
+        Dir => pd ;
+        Obl => po ;
+        Voc => pv 
+	  }
+      } ;
+
+      g = g
+      } ;
+
+    
+
+    regNoun : Str -> Noun ;
+    regNoun s = case s of {
+		     _ + "ya" => mkN05 (s);
+                 _ + ("a"|"e"|"h") =>  mkN01 (s);
+                 _ + "y" => mkN03 (s);
+                 _ + ("aN"|"wN") => mkN04 (s);
+                 _ + "w^" => mkN12 (s);
+		 _ + "t" => mkN10 s ;
+             _			  => regNoun2 (s)				 
+                 };
+	regNoun2 : Str -> Noun;
+	regNoun2 s = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (last s) "h") True (if_then_else Bool (eq (last s) "e") True False))
+     in case c of {
+      False => mkN02 (s);
+	  True => mkN01 (s)
+     };	  
+	  
+    reggNoun : Str -> Gender -> Noun ;
+    reggNoun s g = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (dp 2 s) "aN") True (if_then_else Bool (eq (dp 2 s) "wN") True False))
+	 in case <s,g,c> of {
+		         <_ + "t",Fem,_> => mkN10 (s);
+				 <_ + "t",Masc,_> => mkN02 (s);
+				 <_ + "w",Masc,_> => mkN11 (s);
+                 <_ + "w",Fem,_> 	=> mkN07 (s);
+				 <_ + "ya",Fem,_> => mkN05 (s);
+                 <_ + "ya",Masc,_> => mkN02 (s);
+                 <_,Fem,False>		=> mkN08 (s);
+                 <_,Fem,_>		=> mkN09 (s)
+                 				 
+                 };
+    
+-- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
+-- Arabic nouns ends with h. also taken as Masc
+
+     mkN01 : Str -> Noun ;
+     mkN01 lRka = let end = last (lRka) ;
+                 lRk = if_then_else Str (eq end "e") lRka (tk 1 lRka)
+             in mkNoun (lRka)     (lRk+"E")  (lRk+"E")
+                       (lRk+"E")  (lRk+"wN") (lRk+"w")
+                       Masc ;
+
+-- masculine nouns does not end with a, h, e, an
+
+     mkN02 : Str -> Noun ;
+     mkN02 mrd = let mrdwN = mrd+"wN" ;
+              mrdw  = tk 1 mrdwN
+              in mkNoun mrd mrd   mrd
+                      mrd mrdwN mrdw
+                      Masc ;
+
+-- feminine Nouns end with y
+
+     mkN03 : Str -> Noun ;
+     mkN03 krsy = let krsyaN  = krsy+"aN" ;
+		 krsywN  = krsy+"wN" ;
+		 krsyw   = tk 1 krsywN
+             in mkNoun krsy   krsy   krsy
+                       krsyaN krsywN krsyw
+                       Fem ;
+
+-- feminine nouns end with a, aN, wN
+     mkN04 : Str -> Noun ;
+     mkN04 n = case last n of {
+     "a" => let bla = n
+        in mkNoun bla          bla         bla
+                  (bla+"y^yN") (bla+"w^N") (bla+"w^")
+                  Fem ;
+      _   => let maN = n ; -- ends with aN and wN
+            ma  = tk 1 maN
+        in mkNoun maN         maN        maN
+                  (ma+"y^yN") (ma+"w^N") (ma+"w^N")
+                  Fem 
+
+            };
+  --feminine nouns end with ya
+    
+      mkN05 : Str -> Noun ;
+      mkN05 gRya = let gRy = (tk 1 gRya)
+             in mkNoun gRya       gRya       gRya
+                       (gRya+"N") (gRy+"wN") (gRy+"w")
+                       Fem ;
+
+-- feminine nouns end with w
+      
+      mkN07 : Str -> Noun ;
+      mkN07 khshbw =  mkNoun khshbw     khshbw         khshbw
+                            (khshbw + "y^yN") (khshbw + "w^N") (khshbw + "w^")
+                            Fem ;
+
+-- Loan arabic feminine nouns end with t
+-- this is a noun that shows  state, condition 
+
+      mkN10 : Str -> Noun ;
+      mkN10 ndamt = mkNoun ndamt        ndamt        ndamt
+                     (ndamt+"yN") (ndamt+"wN") (ndamt+"w")
+                     Fem ;
+-- Worst case function
+      mkN : (_,_,_,_,_,_ : Str) -> Gender -> Noun ;
+      mkN sgNom sgObl sgVoc plNom plObl plVoc g = 
+      mkNoun sgNom sgObl sgVoc plNom plObl plVoc g ;
+
+      mkN06 : Str -> Noun ;
+      mkN06 rya = mkNoun rya          rya         rya 
+                   (rya+"y^yN") (rya+"w^N") rya
+                   Fem ;
+
+-- feminine nouns that do not end with a, N, w, wN
+     
+      mkN08 : Str -> Noun ;
+      mkN08 ktab = mkNoun ktab ktab ktab
+                    (ktab+"yN") (ktab+"wN") (ktab+"w")
+                    Fem ;
+
+-- Loan arabic feminine nouns
+     
+      mkN09 : Str -> Noun ;
+      mkN09 ahsan = mkNoun ahsan        ahsan                             ahsan
+                     (ahsan+"at")  (ahsan+"at") (ahsan+"w") 
+                     Fem ;
+-- (variants{ahsan+"at";ahsan+"wN"})
+-- Loan persian maculine nouns end with w
+
+      mkN11 : Str -> Noun ;
+      mkN11 alw = mkNoun alw alw         alw
+                   alw (alw+"w^N") (alw+"w^")
+                   Masc ;
+
+
+-- Loan persian maculine nouns end with w^
+
+      mkN12 : Str -> Noun ;
+      mkN12 bhao = mkNoun (bhao)      (bhao)     (bhao)
+                          (bhao)      (bhao)     (bhao)
+                    Masc ;
+----2 Determiners
+  IDeterminer = {s:Gender => Case => Str ; n : Number};
+  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
+   s = table {
+      Sg => table {
+        Masc => s1 ;
+        Fem => s2 
+	  } ;
+      Pl => table {
+        Masc => s3 ;
+        Fem => s4 
+	  }
+      } ;
+
+      n = n
+	};	
+	
+  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
+   s = table {
+        Masc => table {_ =>s1};
+	Fem  => table {_ =>s2} 
+	 };
+	 n = n
+    };
+    
+-- IQuant
+  
+makeIQuant : Str -> {s : Number => Gender => Case => Str} = \str -> {
+  s = table {
+	        Sg => table {
+				Masc => table {
+						     Dir => str ++ "sa" ;
+						      _ => str ++ "sE" 
+                             
+							 };
+				Fem => table {
+						     _ => str ++ "sy"
+							 }
+						};
+		Pl => table {
+				Masc => table {
+						     _ => str ++ "sE"
+							 };
+				Fem => table {
+						     _ => str ++ "sy"
+							 }
+					} 
+				}
+               };    
+   
+    
+-- Proposition  
+ 
+  makePrep : Str -> Str -> Preposition = \s1,s2 -> {s =
+  table {
+                Masc => s1;
+		Fem  => s2
+	 }; } **  { lock_Prep = <>};
+   
+----2 Pronouns
+   PronForm = {s:Pronoun => Str};
+   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
+    \y1,y2,y3,y4,y5,y6 -> {
+	 s = table {
+         P Sg _ Dir _ => y1;
+         P Sg _ Obl _ => y2;
+         P Sg _ Voc _ => y3;
+         P Pl _ Dir _ => y4;
+         P Pl _ Obl _ => y5;
+         P Pl _ Voc _ => y6
+         };
+      };
+
+--   DemonPronForm = {s:DemPronForm => Str};
+  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12:Str) -> DemPronForm =
+  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12 -> {
+   s = table {
+	        Sg => table {
+				Masc => table {
+						     Dir => y1 ;
+                             Obl => y2 ;
+                             Voc => y3
+							 };
+				Fem => table {
+						     Dir => y4 ;
+                             Obl => y5 ;
+                             Voc => y6
+							 }
+						};
+			Pl => table {
+				Masc => table {
+						     Dir => y7 ;
+                             Obl => y8 ;
+                             Voc => y9
+							 };
+				Fem => table {
+						     Dir  => y10 ;
+                             Obl => y11 ;
+                             Voc => y12
+							 }
+					} 
+				}
+               };    
+   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
+   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "";	
+--   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
+   
+   PersPron = {s: PersPronForm => Str};
+   
+   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> PersPron = 
+    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
+     s = 
+	  table {
+	      PPF Sg Pers1 Dir => y1;
+          PPF Sg Pers1 Obl => y2;
+	      PPF Sg Pers1 Voc => y3;
+	      PPF Sg Pers2_Casual Dir => y4;
+	      PPF Sg Pers2_Casual Obl => y5;
+          PPF Sg Pers2_Casual Voc => y6;
+	      PPF Sg Pers2_Familiar Dir => y7;
+	      PPF Sg Pers2_Familiar Obl => y8;
+	      PPF Sg Pers2_Familiar Voc => y9;
+          PPF Sg Pers2_Respect Dir => y10;
+	      PPF Sg Pers2_Respect Obl => y11;
+	      PPF Sg Pers2_Respect Voc => y12;
+	      PPF Sg Pers3_Near Dir => y13;
+          PPF Sg Pers3_Near Obl => y14;
+	      PPF Sg Pers3_Near Voc => y15;
+	      PPF Sg Pers3_Distant Dir => y16;
+	      PPF Sg Pers3_Distant Obl => y17;
+          PPF Sg Pers3_Distant Voc => y18;
+	      PPF Pl Pers1 Dir => y19;
+          PPF Pl Pers1 Obl => y20;
+	      PPF Pl Pers1 Voc => y21;
+	      PPF Pl Pers2_Casual Dir => y22;
+	      PPF Pl Pers2_Casual Obl => y23;
+          PPF Pl Pers2_Casual Voc => y24;
+	      PPF Pl Pers2_Familiar Dir => y25;
+	      PPF Pl Pers2_Familiar Obl => y26;
+	      PPF Pl Pers2_Familiar Voc => y27;
+          PPF Pl Pers2_Respect Dir => y28;
+	      PPF Pl Pers2_Respect Obl => y29;
+	      PPF Pl Pers2_Respect Voc => y30;
+	      PPF Pl Pers3_Near Dir => y31;
+          PPF Pl Pers3_Near Obl => y32;
+	      PPF Pl Pers3_Near Voc => y33;
+	      PPF Pl Pers3_Distant Dir => y34;
+	      PPF Pl Pers3_Distant Obl => y35;
+          PPF Pl Pers3_Distant Voc => y36
+		 }; 
+      };
+	  
+   makePersPron : PersPron;
+   makePersPron     = mkPersPron	"m(a)yN"	"m(o)j'|h"		""		"t(o)w "		"t(o)j|h"		"t(o)w "		"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)s"		""		"w(o)h"		"a(o)s"		""
+									"h(a)m"		"h(a)m"			""		"t(o)m" 		"t(o)m"			"t(o)m"			"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)n"		""		"w(o)h"		"a(o)n"		"" ;
+						
+  mkPron : (x1,x2,x3:Str) -> {s:Case => Str} = 
+     \y1,y2,y3 -> { s =
+                      table {
+                        Dir => y1;
+                        Obl => y2;
+                        Voc => y3
+                        }
+                      };  
+                                   
+	------- PossPronForm yet to be implemented
+  
+-- IntPronForm = {s:InterrPronForm => Str};
+  IntPronForm = {s: Case => Str};
+  mkIntPronForm : (x1,x2,x3:Str) -> IntPronForm =
+  \y1,y2,y3 -> {
+   s = 
+    table {
+	            Dir => y1;
+	            Obl => y2;
+	            Voc => y3
+		 }
+	}; 
+
+----2 Adjectives
+-- defined in ResUrd
+
+----3 Verbs
+  CommonVF = {s : VTense => UPerson => Number => Gender => Str} ;
+ 
+   mkVerb : (x1: Str) -> Verb = \inf  ->
+     	 let root = (tk 2 inf); inf_obl = ((tk 1 inf) + "E"); inf_fem = ((tk 1 inf) + "y")
+	in { s = table {
+          
+               VF tense person number gender => (mkCmnVF root tense person number gender).s  ;
+               Inf     => inf ;
+               Root    => root ;
+               Inf_Obl => inf_obl ;
+               Inf_Fem => inf_fem 
+          
+          
+       }
+     } ;
+   rem_y : Str -> Str;
+   rem_y str = let b = take 1 str; yth = drop 1 str; a1	= take 4 yth; a2 = take 1 yth; 	th= if_then_else Str (eq a1 "(a)y") (drop 5 str) (drop 2 str);	st = if_then_else Str (eq a1 "(a)y") (b ++ "(i)"++th) (if_then_else Str (eq a2 "y") (b ++ th)  str)
+              in rt st;
+	rt: Str -> Str;
+	rt r = r;
+   mkCmnVF : Str -> VTense -> UPerson -> Number -> Gender -> {s:Str} =
+    \root,t,p,n,g ->
+     {s = 
+      let form1 = case (last root) of {
+                  "a"|"A"|"w" => root + "w^N" ;
+                  _           => root + "wN"
+                 };
+          form2 =  case (last root) of {
+                  "a"|"A"|"w" => root + "y^N" ;
+                  _           => root + "yN"
+                 };
+	 in
+       case <t,p,n,g> of {
+        <Subj,Pers1,Sg,_> => form1 ;
+        <Subj,Pers1,Pl,_> => form2 ;
+        <Subj,_,_,_>      => (mkImpert root p n g).s ;
+        <Perf,_,_,_>      => case root of {
+		                      "hw" => (mkPastInd root p n g).s ;
+							  "ja" => (mkPastInd "gy" p n g).s ;
+							  "kr" => (mkPastInd "k" p n g).s ;
+							  "dE" => (mkPastInd "d" p n g).s ;
+							  "lE" => (mkPastInd "l" p n g).s ;
+							  _    => (mkPastInd root p n g).s };
+        <Imperf,Pers2_Familiar,Sg,Masc>         => root + "tE";
+        <Imperf,Pers2_Familiar,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
+        <Imperf,Pers2_Familiar,Pl,Masc>         => root + "tE";
+        <Imperf,Pers2_Familiar,Pl,Fem>         => root+"tyN";
+        <Imperf,Pers2_Respect,Sg,Masc>         => root + "tE";
+        <Imperf,Pers2_Respect,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
+        <Imperf,Pers2_Respect,Pl,Masc>         => root + "tE";
+        <Imperf,Pers2_Respect,Pl,Fem>         => root+"tyN";
+		<Imperf,_,Sg,Masc>					  => root+"ta";
+		<Imperf,_,Sg,Fem>					  => root+"ty";
+		<Imperf,_,Pl,Masc>					  => root+"tE";
+		<Imperf,_,Pl,Fem>					  => root+"tyN"
+        }
+       
+     } ;
+   
+   mkPastInd : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo = root ;
+             a = case (last root) of {
+                  "a"|"A"|"w"|"k" => "ya" ;
+                  _           => "a"
+                 } ;
+             y = case (last root) of {
+                  "a"|"A"|"w" => "y^y" ;
+                  _           => "y"
+                 } ;
+             e = case (last root) of {
+                  "a"|"A"|"w"|"k" => "y^E" ;
+                  _           => "E"
+                 } ;
+            yN = case (last root) of {
+                  "a"|"A"|"w" => "y^yN" ;
+                  _           => "yN"
+                 } ;
+
+     in 
+     case <p,n,g> of {
+       <Pers1,Sg,Masc> => roo+a ;
+       <Pers1,Sg,Fem>  => roo+y ;
+       <Pers1,Pl,Masc> => roo+e ;
+       <Pers1,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Casual,Sg,Masc> => roo+a ;
+       <Pers2_Casual,Sg,Fem>  => roo+y ;
+       <Pers2_Casual,Pl,Masc> => roo+e ;       
+       <Pers2_Casual,Pl,Fem>  => roo+yN ;
+
+       <Pers2_Familiar,Sg,Masc> => roo+e ;
+       <Pers2_Familiar,Sg,Fem>  => roo+y; --variants{roo+y ; roo+yN} ;
+       <Pers2_Familiar,Pl,Masc> => roo+e ;
+       <Pers2_Familiar,Pl,Fem>  => roo+yN ;       
+       
+       <Pers2_Respect,Sg,Masc>  => roo+e ;
+       <Pers2_Respect,Sg,Fem>   => roo+yN; --variants{roo+yN ; roo+y} ;
+       <Pers2_Respect,Pl,Masc>  => roo+e ;
+       <Pers2_Respect,Pl,Fem>   => roo+yN ;
+       <_,Sg,Masc>              => roo + a; 
+       <_,Sg,Fem>              => roo+y ; 
+	   <_,Pl,Masc>              => roo + e; 
+       <_,Pl,Fem>              => roo+yN 
+       
+     } ;
+    } ;
+
+   mkImpert : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
+    {s = let roo =  root ;
+             w = case (last root) of {
+                  "a"|"A"|"w" => "w^" ;
+                  _           => "w"
+               } ;
+             yN = case (last root) of {
+                  "a"|"A"|"w" => "y^yN" ;
+                  _           => "yN" 
+               } ;
+             yE = case (last root) of {
+                  "a"|"A"|"w" => "y^yE" ;
+                  _           => "yE" 
+               } ;
+             e = case (last root) of {
+                  "a"|"A"|"w" => "y^E" ;
+                  _           => "E" 
+               } in
+      case <p,n,g> of {
+       <Pers1,_,_>          => ""; --nonExist ;
+       <Pers2_Casual,Sg,_>  => root ;
+       <Pers2_Casual,Pl,_>  => roo+w ;
+       <Pers2_Familiar,_,_> => roo+w ;
+       <Pers2_Respect,Sg,_> => roo+w; --variants{roo+w; roo+yN; roo+yE} ;
+       <Pers2_Respect,Pl,_> => roo+yN; --variants{roo+yN; roo+yE} ;
+       <_,Sg,_>              => roo+e ; 
+       <_,Pl,_>              => roo+yN 
+      }; 
+    };       
+
+}
diff --git a/lib/src/urdu/src/StructuralUrd.gf b/lib/src/urdu/src/StructuralUrd.gf
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/src/StructuralUrd.gf
@@ -0,0 +1,131 @@
+concrete StructuralUrd of Structural = CatUrd ** 
+  open MorphoUrd, ParadigmsUrd, Prelude, NounUrd,ParamX,CommonHindustani in {
+
+  flags optimize=all ;
+  coding = utf8;
+
+  lin
+  above_Prep = mkPrep "awpr" "awpr" ;
+  after_Prep = mkPrep ["kE bed"] ["kE bed"] ;
+  all_Predet = ss "tmam" ;
+  almost_AdA, almost_AdN = mkAdN "tqryba" ;
+  although_Subj = ss "agrch" ;
+  always_AdV = ss "hmyXh" ;
+  and_Conj = sd2 [] "awr" ** {n = Pl} ;
+  because_Subj = ss "kywnkh" ;
+  before_Prep = mkPrep "phlE" "phlE" ;
+  behind_Prep = mkPrep "pych'E" "pych'E" ;
+  between_Prep = mkPrep "drmyaN" "drmyaN" ;
+  both7and_DConj = sd2 "dwnwN" "awr" ** {n = Pl} ;
+  but_PConj = ss "lykn" ;
+  by8agent_Prep = mkPrep "" "" ;
+  by8means_Prep = mkPrep "" "" ;
+  can8know_VV,can_VV = mkV "skna" ** { isAux = True} ;
+  during_Prep = mkPrep ["kE drmyaN"] ["kE drmyaN"] ;
+  either7or_DConj = sd2 "kwy ayk" "ya" ** {n = Sg} ;
+  everybody_NP =  MassNP (UseN (ParadigmsUrd.mkN "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" Masc )); -- not a good way coz need to include NounUrd
+  every_Det = mkDet "hr" "hr" "hr" "hr" Sg;
+  everything_NP = MassNP (UseN (ParadigmsUrd.mkN "hr cyz" "hr cyz" "hr cyzw" "sb cyzyN" "sb cyzwN" "sb cyzw" Masc ));
+  everywhere_Adv = mkAdv "hr jgh" ;
+  few_Det = mkDet "cnd" "cnd" "cnd" "cnd" Pl ;
+  first_Ord = {s = "pehla" ; n = Sg} ; --DEPRECATED
+  for_Prep = mkPrep "kylyE" "kylyE" ;
+  from_Prep = mkPrep "sE" "sE" ;
+  he_Pron = personalPN "wh" "as" "" "as ka"  Sg Masc Pers3_Distant ;
+  here_Adv = mkAdv "yhaN" ;
+  here7to_Adv = mkAdv ["yhaN pr"] ;
+  here7from_Adv = mkAdv ["yhaN sE"] ;
+  how_IAdv = ss "kysE" ;
+  how8many_IDet = makeIDet "ktnE" "ktny" Pl ;
+  how8much_IAdv  = ss "ktna" ;
+  if_Subj = ss "agr" ;
+  in8front_Prep = mkPrep ["kE samnE"] ["kE samnE"] ;
+  i_Pron = personalPN "myN" "mjh'" "" "myra" Sg Masc Pers1;
+  in_Prep = mkPrep "myN" "myN" ;
+  it_Pron  = personalPN "yh" "as" "as" "as ka" Sg Masc Pers3_Near;
+  less_CAdv = {s = "km" ; p = ""} ;
+  many_Det = mkDet "bht zyadh" "bht zyadh" "bht zyadh" "bht zyadh" Pl ;
+  more_CAdv = {s = "zyadh" ; p = "sE" } ;
+  most_Predet = ss "zyadh tr" ;
+  much_Det = mkDet "bht" "bht" "bht" "bht" Sg  ;
+--  must_VV = {
+--    s = table {
+--      VVF VInf => ["have to"] ;
+--      VVF VPres => "must" ;
+--      VVF VPPart => ["had to"] ;
+--      VVF VPresPart => ["having to"] ;
+--      VVF VPast => ["had to"] ;      --# notpresent
+--      VVPastNeg => ["hadn't to"] ;      --# notpresent
+--      VVPresNeg => "mustn't"
+--      } ;
+--    isAux = True
+--    } ;
+-----b  no_Phr = ss "no" ;
+  no_Utt = ss "nhyN" ;
+  on_Prep = mkPrep "pr" "pr" ;
+--  one_Quant = demoPN "ayk" "ayk" "ayk" ; -- DEPRECATED
+  only_Predet = ss "Srf" ;
+  or_Conj = sd2 [] "ya" ** {n = Sg} ;
+  otherwise_PConj = ss "ya ph'r" ;
+  part_Prep = mkPrep "" "" ;
+  please_Voc = ss "mhrbany" ;
+  possess_Prep = mkPrep "ka" "ky" ;
+  quite_Adv = ss "KamwX" ;
+  she_Pron = personalPN "wh" "as" "wh" "as ky" Sg Fem Pers3_Distant ;
+  so_AdA = ss "[as lyE]" ;
+  somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy" "kwy" "kwy" "kwy" "kwy" "kwy" Masc ));
+  someSg_Det = mkDet "kch'" "kch'" "kch'" "kch'" Sg ;
+  somePl_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
+  something_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz" "kwy cyz" "kwy cyz" "kh' cyzyN" "kh' cyzwN" "kh' cyzw" Masc ));
+  somewhere_Adv = mkAdv ["khyN pr"] ;
+  that_Quant = demoPN "wh" "as" "an" ;
+  that_Subj = ss "kh";
+  there_Adv = mkAdv "whaN" ;
+  there7to_Adv = mkAdv ["whaN pr"] ;
+  there7from_Adv = mkAdv ["whaN sE"] ;
+  therefore_PConj = ss "as lyE" ;
+  they_Pron = personalPN "wh" "wh" "wh" "an ka" Pl Masc Pers3_Distant ; ---- 
+  this_Quant = demoPN "yh" "as" "an";      
+  through_Prep = mkPrep ["myN sE"] ["myN sE"] ;
+  too_AdA = ss "bht" ;
+  to_Prep = mkPrep "kw" "kw" ; -- ** {lock_Prep = <>};
+  under_Prep = mkPrep "nycE" "nycE" ; -- ** {lock_Prep = <>};
+  very_AdA = ss "bht" ;
+  want_VV = mkV "cahna" ** { isAux = False} ;
+  we_Pron = personalPN "hm" "hm" "hm" "hmara" Pl Masc Pers1 ;
+  whatSg_IP = mkIP "kya" "ks" "ks" Sg Masc ;
+  whatPl_IP = mkIP "kya" "kn" "kn" Pl Masc ;
+  when_IAdv = ss "kb" ;
+  when_Subj = ss "jb" ;
+  where_IAdv = ss "khaN" ;
+--  which_IQuant = {s = \\_ => "kwn sy"} ;
+  which_IQuant = mkIQuant "kwn" ;
+--  whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+--  whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
+  whoSg_IP = mkIP "kwn" "ks" "ks" Sg Masc  ;
+  whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
+  why_IAdv = ss "kywN" ;
+  without_Prep = mkPrep ["kE bGyr"] ["kE bGyr"] ;
+  with_Prep = mkPrep ["kE sath'"] ["kE sath'"] ;
+--  yes_Phr = ss "haN" ;
+  yes_Utt = ss "haN" ;
+  youSg_Pron = personalPN "tw" "tw" "tw" "tyra" Sg Masc Pers2_Casual ;
+  youPl_Pron = personalPN "tm" "tm" "tm" "tmh'ara" Pl Masc Pers2_Casual ;
+  youPol_Pron = personalPN "Ap" "Ap" "Ap" "Ap ka" Sg Masc Pers2_Respect  ;
+  no_Quant =  demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ; 
+  not_Predet = {s="nhyN"} ;
+  if_then_Conj = sd2 "agr" "tw" ** {n = Sg} ; 
+  at_least_AdN = mkAdN ["km az km"] ;
+  at_most_AdN = mkAdN ["zyadh sE zyadh"];
+  nothing_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" Masc )); 
+  except_Prep = mkPrep "swaE" "swaE" ;
+  nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" Masc ));  
+
+  as_CAdv = {s = "atna" ; p = "jtna"} ;
+
+  have_V2 = mkV2 (mkV "rakh'na") "" ;
+
+ language_title_Utt = ss "ardw" ;
+
+}
+
diff --git a/lib/src/urdu/translit.gfs b/lib/src/urdu/translit.gfs
new file mode 100644
--- /dev/null
+++ b/lib/src/urdu/translit.gfs
@@ -0,0 +1,12 @@
+rf -file=../hindustani/CommonHindustani.gf | ps -env=quotes -to_urdu | wf -file=CommonHindustani.gf
+rf -file=../hindustani/ExtraHindustani.gf | ps -env=quotes -to_urdu | wf -file=ExtraHindustani.gf
+rf -file=../hindustani/ResHindustani.gf | ps -env=quotes -to_urdu | wf -file=ResHindustani.gf
+rf -file=../hindustani/StringsHindustani.gf | ps -env=quotes -to_urdu | wf -file=StringsHindustani.gf
+rf -file=src/DiffUrd.gf | ps -env=quotes -to_urdu | wf -file=DiffUrd.gf
+rf -file=src/ExtraUrd.gf | ps -env=quotes -to_urdu | wf -file=ExtraUrd.gf
+rf -file=src/IdiomUrd.gf | ps -env=quotes -to_urdu | wf -file=IdiomUrd.gf
+rf -file=src/LexiconUrd.gf | ps -env=quotes -to_urdu | wf -file=LexiconUrd.gf
+rf -file=src/MorphoUrd.gf | ps -env=quotes -to_urdu | wf -file=MorphoUrd.gf
+rf -file=src/StructuralUrd.gf | ps -env=quotes -to_urdu | wf -file=StructuralUrd.gf
+
+
diff --git a/lib/src/urdu/transliterateUrdu.gfs b/lib/src/urdu/transliterateUrdu.gfs
deleted file mode 100644
--- a/lib/src/urdu/transliterateUrdu.gfs
+++ /dev/null
@@ -1,6 +0,0 @@
-rf -file=transliterated/IdiomUrd.gf   | ps -env=quotes -to_urdu | wf -file=IdiomUrd.gf
-rf -file=transliterated/LexiconUrd.gf | ps -env=quotes -to_urdu | wf -file=LexiconUrd.gf
-rf -file=transliterated/MorphoUrd.gf  | ps -env=quotes -to_urdu | wf -file=MorphoUrd.gf
-rf -file=transliterated/NumeralUrd.gf | ps -env=quotes -to_urdu | wf -file=NumeralUrd.gf
-rf -file=transliterated/ResUrd.gf     | ps -env=quotes -to_urdu | wf -file=ResUrd.gf
-rf -file=transliterated/StructuralUrd.gf | ps -env=quotes -to_urdu | wf -file=StructuralUrd.gf
diff --git a/lib/src/urdu/transliterated/IdiomUrd.gf b/lib/src/urdu/transliterated/IdiomUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/IdiomUrd.gf
+++ /dev/null
@@ -1,38 +0,0 @@
-concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd in {
-
-  flags optimize=all_subs ;
-  flags coding = utf8;
-
-  lin
-    ImpersCl vp = mkSClause [] (agrP3 Masc Sg) vp ;
-    GenericCl vp = mkSClause "kwy" (agrP3 Masc Sg) vp ;
-
-    CleftNP np rs = 
-	 let cl = mkSClause (np.s ! NPC rs.c) (np.a) (predAux auxBe);
-	  in 
-	   {s = \\t,p,o =>  cl.s ! t ! p ! o ++ rs.s ! np.a };
-	  
-    CleftAdv ad ss = { s = \\t,b,o => ad.s ++ ss.s};
-        
-    ExistNP np = 
-      mkSClause "whaN" (agrP3 (fromAgr np.a).g (fromAgr np.a).n) 
-        (insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
-
-    ExistIP ip = 
-     let cl = mkSClause ("whaN" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe); 
-	   in {
-       s = \\t,p,qf => case qf of { 
-	      QDir =>   cl.s ! t ! p ! ODir;
-          QIndir => cl.s ! t! p ! ODir
-		  }
-		};
-
-    ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
-
-
-    ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ;
-	ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPImp ).inf ++ "dw"};
-
-
-}
-
diff --git a/lib/src/urdu/transliterated/LexiconUrd.gf b/lib/src/urdu/transliterated/LexiconUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/LexiconUrd.gf
+++ /dev/null
@@ -1,369 +0,0 @@
---# -path=.:prelude
-
-concrete LexiconUrd of Lexicon = CatUrd ** 
---open ResUrd, Prelude in {
-  open ParadigmsUrd, Prelude in {
-
-  flags 
-    optimize=values ;
-    coding = utf8;
-
-  lin
-  airplane_N = mkN "jhaz" ;
-  answer_V2S = mkV2  (compoundV "jwab" (mkV "dyna")) ;
-  apartment_N = mkN "kmrh" ;
-  apple_N = mkN "syb" ;
-  art_N = mkN "fn" ;
-  ask_V2Q = mkV2 (mkV "pwch-na") ;
-  baby_N = mkN "bch" ;
-  bad_A = mkA "bra" ;
-  bank_N = mkN "bank" ;
-  beautiful_A = mkA "KwbSwrt" ;
-  become_VA = mkV "bnna";
-  beer_N = mkN "beer" ;
-  beg_V2V =  mkV2V (compoundV "altja" (mkV "krna")) "sE" "kh" False;
-  big_A = mkA "bRa" ;
-  bike_N = mkN "saycl" feminine ;
-  bird_N = mkN "prndh" ;
-  black_A =  mkA "kala" ;
-  blue_A = mkA "nyla" ;
-  boat_N = mkN "kXty" ;
-  book_N = mkN "ktab" feminine ;
-  boot_N = mkN "jwta" ;
-  boss_N = mkN "Sahb" ;
-  boy_N = mkN "lRka" ;
-  bread_N = mkN "rwty" ;
-  break_V2 = mkV2 (mkV "twRna") ;
-  broad_A = mkA "kh-la" ;
-  brother_N2 = mkN2 (mkN "bh-ay") (mkPrep "ka") "kE" ; --not correct
-  brown_A = mkA "nswary" ;
-  butter_N = mkN "mkh-n" ;
-  buy_V2 = mkV2 (mkV "Krydna");
-  camera_N = mkN "kymrh" ;
-  cap_N = mkN "twpy" ;
-  car_N = mkN "gaRy" ;
-  carpet_N = mkN "tpay^y" ;
-  cat_N = mkN "bly" ;
-  ceiling_N = mkN "ch-t" feminine ;
-  chair_N = mkN "krsy" ;
-  cheese_N = mkN "pnyr" feminine ;
-  child_N = mkN "bch"  ;
-  church_N = mkCmpdNoun "grja" (mkN "gh-r") ;
-  city_N = mkN "Xhr" ;
-  clean_A = mkA "Saf" ;
-  clever_A = mkA "hwXyar" ;  
-  close_V2 =  mkV2 (compoundV "bnd" do_V2); 
-  coat_N = mkN "kwT" ;
-  cold_A = mkA "Th-nDa" ;
-  come_V = mkV "Ana" ;
-  computer_N = mkN "kmpywTr" ;
-  country_N = mkN "mlk" ;
-  cousin_N = mkCmpdNoun "cca" (mkN "zad") ; -- a compund noun made of two nouns
-  cow_N = mkN "gaE" feminine ;
-  die_V = mkV "mrna" ;
-  dirty_A = mkA "gnda" ;
-  distance_N3 = mkN3 (mkN "faSlh") (mkPrep "ka") "kE" "sE"  ;
-  doctor_N = mkN "mealj" ;
-  dog_N = mkN "kta" ;
-  door_N = mkN "drwzh" ;
-  drink_V2 = mkV2 (mkV "pyna");
-  easy_A2V = mkA "Asan" "" ;
-  eat_V2 = mkV2 (mkV "kh-ana") "" ;
-  empty_A = mkA "Kaly" ;
-  enemy_N = mkN "dXmn" ;
-  factory_N = mkN "karKanh" ;
-  father_N2 = mkN2 (mkN "aba") (mkPrep "ka") "kE"  ;
-  fear_VS = mkV "drna";
-  find_V2 = mkV2 (mkV "pana") ;
-  fish_N = mkN "mch-ly" ;
-  floor_N = mkN "frX" ;
-  forget_V2 = mkV2 (mkV "bh-wlna")  ;
-  fridge_N = mkN "fryg" ;
-  friend_N = mkN "dwst" masculine ;
-  fruit_N = mkN "ph-l" ;
---  fun_AV = mkAV (regA "fun") ;
-  garden_N = mkN "baG" ;
-  girl_N = mkN "lRky" ;
-  glove_N = mkN "dstanh" ;
-  gold_N = mkN "swna" ;
-  good_A = mkA "ach-a" ;
-  go_V = mkV "jana" ;
-  green_A = mkA "sbz" ;
-  harbour_N = mkCmpdNoun "bndr" (mkN "gah") ;
-  hate_V2 = mkV2 (compoundV "nfrt" do_V2) ;
-  hat_N = mkN "twpy" ;
---  have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
-  hear_V2 = mkV2 (mkV "snna") ;
-  hill_N = mkN "phaRy" ;
-  hope_VS = (compoundV "amyd" do_V2);
-  horse_N = mkN "gh-wRa" ;
-  hot_A = mkA "grm" ;
-  house_N = mkN "gh-r" ;
-  important_A = mkA "ahm" ;
-  industry_N = mkN "Snet" feminine ;
-  iron_N = mkN "lwha" ;
-  king_N = mkN "badXah" ;
-  know_V2 = mkV2 (mkV "janna") ;
-  know_VS = mkV "janna";
-  lake_N = mkN "jh-yl" feminine ;
-  lamp_N = mkN "lymp" ;
-  learn_V2 = mkV2 (mkV "sykh-na") ;
-  leather_N = mkN "cmRa" ;
-  leave_V2 = mkV2 (mkV "jana") ;
-  like_V2 = mkV2 (compoundV "psnd" do_V2);
-  listen_V2 = mkV2 (mkV "snna") ;
-  live_V = mkV "rhna" ; ---- touch
-  long_A = mkA "lmba" ;
-  lose_V2 = mkV2 (compoundV "kh-w" do_V2) ;
-  love_N = mkN "mHbt" ;
-  love_V2 = mkV2 (compoundV "pyar" do_V2) "kw";
-  man_N = mkN "Admy" ; -- not correct according to rules should be discussed
-  married_A2 = mkA "Xady krna" "sE" ;
-  meat_N = mkN "gwXt" ;
-  milk_N = mkN "dwdh-" ;
-  moon_N = mkN "cand" ;
-  mother_N2 = mkN2 (mkN "maN") (mkPrep "ky") "kE";   -- not covered need to be discussed
-  mountain_N = mkN "phaRy" ;
-  music_N = mkN "mwsyqy" ;
-  narrow_A = mkA "baryk" ;
-  new_A = mkA "nya" ;
-  newspaper_N = mkN "aKbar" ;
-  oil_N = mkN "tyl" ;
-  old_A = mkA "bwRh-a" ;
-  open_V2 = mkV2 (mkV "kh-wlna") ;
-  paint_V2A = mkV2 (compoundV "rng" do_V2) ;
-  paper_N = mkN "kaGz" ;
-  paris_PN = mkPN "pyrs" ;
-  peace_N = mkN "amn" ;
-  pen_N = mkN "pnsl" ;
-  planet_N = mkN "syarh" ;
-  plastic_N = mkN "plasTk" ;
-  play_V2 = mkV2 (mkV "kh-ylna") ;
-  policeman_N = mkCmpdNoun "pwlys" (mkN "wala") ; 
-  priest_N = (mkN "pyGmbr") ;
---  probable_AS = mkAS (regA "probable") ;
-  queen_N = mkN "Xhzady" ;
-  radio_N = mkN "ryDyw" ;
-  rain_V0 = compoundV "barX" (mkV "hwna" ) ;
-  read_V2 = mkV2 (mkV "pRh-na");
-  red_A = mkA "lal" ;
-  religion_N = mkN "mzhb" ;
-  restaurant_N = mkN "hwTl" ;
-  river_N = mkN "drya" masculine ;
-  rock_N = mkN "cTan" ;
-  roof_N = mkN "ch-t" masculine ;
-  rubber_N = mkN "rbR" ;
-  run_V = mkV "dwRna" ;
-  say_VS = mkV "khna" ;
-  school_N = mkN "skwl" ;
-  science_N = mkN "sans" ;
-  sea_N = mkN "smndr" ;
-  seek_V2 = mkV2 (compoundV "tlaX" do_V2) ;
-  see_V2 = mkV2 (mkV "dykh-na") ;
-  sell_V3 = mkV3 (mkV "bycna") "kw" "";
-  send_V3 = mkV3 (mkV "bh-yjna") "kw" "";
-  sheep_N = mkN "bh-yR" feminine ;
-  ship_N = mkN "jhaz" ;
-  shirt_N = mkN "qmyZ-" feminine;
-  shoe_N = mkN "jwta" ;
-  shop_N = mkN "dwkan" feminine ;
-  short_A = mkA "ch-wTa" ;
-  silver_N = mkN "candy" ;
-  sister_N = mkN "bhn" feminine ;
-  sleep_V = mkV "swna" ;
-  small_A = mkA "ch-wTa" ;
-  snake_N = mkN "sanp" ;
-  sock_N = mkN "jrab" feminine ;
-  speak_V2 = mkV2 (mkV "bwlna") ;
-  star_N = mkN "stara" ;
-  steel_N = mkN "styl" ;
-  stone_N = mkN "pth-r" ;
-  stove_N = mkN "cwlha" ;
-  student_N = mkCmpdNoun "t-alb" (mkN "elm") ;
-  stupid_A = mkA "aHmq" ;
-  sun_N = mkN "swrj" ;
-  switch8off_V2 = mkV2 (mkV "clana") ;
-  switch8on_V2 = mkV2 (compoundV "bnd" do_V2) ;
-  table_N = mkN "myz" feminine ;
-  talk_V3 = mkV3 (mkV "bwlna") "sE" "kE barE meN";
-  teacher_N = mkN "istad" ;
-  teach_V2 = mkV2 (mkV "pRh-na") ;
-  television_N = mkN "telywyzn" ;
-  thick_A = mkA "mwTa" ;
-  thin_A = mkA "ptla" ;
-  train_N = mkN "gaRy" ;
-  travel_V = (compoundV "sfr" do_V2) ;
-  tree_N = mkN "drKt" masculine ;
--- ---- trousers_N = mkN "trousers" ;
-  ugly_A = mkA "bdSwrt" ;
-  understand_V2 = mkV2 (mkV "smjh-na") ;
-  university_N = mkN "ywnywrsTy" ;
-  village_N = mkN "gawN" ;
-  wait_V2 = mkV2 (compoundV "antz-ar" do_V2) ;
-  walk_V = mkV "clna" ;
-  warm_A = mkA "grm" ;
-  war_N = mkN "jng" ;
-  watch_V2 = mkV2 (mkV "dykh-na") ;
-  water_N = mkN "pany" ; -- not covered masculine ending with y
-  white_A = mkA "sfyd" ;
-  window_N = mkN "kh-Rky" ;
-  wine_N = mkN "Xrab" feminine ;
-  win_V2 = mkV2 (mkV "jytna") ;
-  woman_N = mkN "ewrt" feminine ;
-  wonder_VQ = compoundV "Heran" (mkV "hwna") ;
-  wood_N = mkN "lkRy" ;
-  write_V2 = mkV2 (mkV "lkh-na") ;
-  yellow_A = mkA "pyla" ;
-  young_A = mkA "jwan" ;
-  do_V2 = mkV2 (mkV "krna")  ;
-  now_Adv = mkAdv "ab" ;
-  already_Adv = mkAdv "phlE hy" ;
-  song_N = mkN "gana" ;
-  add_V3 = mkV3 (compoundV "aZ-afh" do_V2) "" "" ;
-  number_N = mkN "hndsh" ;
-  put_V2 = mkV2 (mkV "Dalna") ;
-  stop_V = mkV "rkna"  ;
-  jump_V = mkV "ch-langna" ;
-
-  left_Ord = {s = "bayaN" ; n = singular};
-  right_Ord = {s= "dayaN" ; n = singular};
-  far_Adv = mkAdv "dwr" ;
-  correct_A = mkA "Syh" ;
-  dry_A = mkA "KXk" ;
-  dull_A = mkA "nalik" ;
-  full_A = mkA "mkml" ;
-  heavy_A = mkA "bh-ary" ;
-  near_A = mkA "qryb" ;
-  rotten_A = mkA "Krab" ;
-  round_A = mkA "gwl" ;
-  sharp_A = mkA "tyz" ;
-  smooth_A = mkA "hmwar" ;
-  straight_A = mkA "sydh-a" ;
-  wet_A = mkA "gyla" ; ----
-  wide_A = mkA "kh-la" ;
-  animal_N = mkN "janwr" ;
-  ashes_N = mkN "rakh-" feminine; -- FIXME: plural only?
-  back_N = mkN "qmr" feminine ;
-  bark_N = mkN "bark" ;
-  belly_N = mkN "dh-ny" ;
-  blood_N = mkN "Kwn" ;
-  bone_N = mkN "hDy" ;
-  breast_N = mkN "ch-aty" ;
-  cloud_N = mkN "badl" ;
-  day_N = mkN "dn" ;
-  dust_N = mkN "dh-wl" ;
-  ear_N = mkN "kan" ;
-  earth_N = mkN "zmyn" feminine ;
-  egg_N = mkN "anDh" ;
-  eye_N = mkN "Ankh-" feminine ;
-  fat_N = mkN "mwta" ;
-  feather_N = mkN "pr" ;
-  fingernail_N = mkN "naKn" ;
-  fire_N = mkN "Ag" feminine ;
-  flower_N = mkN "ph-wl" ;
-  fog_N = mkN "dh-nd" feminine ;
-  foot_N = mkN "pawN" ; -- not properly covered need to be discussed
-  forest_N = mkN "njgl" ;
-  grass_N = mkN "gh-s" feminine ;
-  guts_N = mkN "gut" ; -- FIXME: no singular
-  hair_N = mkN "bal" ;
-  hand_N = mkN "hath-" ;
-  head_N = mkN "sr" ;
-  heart_N = mkN "dl" ;
-  horn_N = mkN "gh-nty" ;
-  husband_N = mkN "Xwhr" ;
-  ice_N = mkN "brf" feminine ;
-  knee_N = mkN "khny" ;
-  leaf_N = mkN "pth" ;
-  leg_N = mkN "tang" feminine ;
-  liver_N = mkN "jgr" ;
-  louse_N = mkN "gh-r" ;
-  mouth_N = mkN "mnh" ;
-  name_N = mkN "nam" ;
-  neck_N = mkN "grdn" feminine ;
-  night_N = mkN "rat" feminine ;
-  nose_N = mkN "nak" ;
-  person_N = mkN "XKS" ;
-  rain_N = mkN "barX" feminine ;
-  road_N = mkN "sRk" ;
-  root_N = mkN "gR" feminine ;
-  rope_N = mkN "rsy" ;
-  salt_N = mkN "nmk" feminine ;
-  sand_N = mkN "ryt" feminine ;
-  seed_N = mkN "byj"  ;
-  skin_N = mkN "jld" feminine ;
-  sky_N = mkN "Asman" ;
-  smoke_N = mkN "dh-waN"; -- singular masc nouns ending with aN,wN yet to be implemented
-  snow_N = mkN "brf" feminine ;
-  stick_N = mkN "ch-Ry" ;
-  tail_N = mkN "dm" ;
-  tongue_N = mkN "zban" feminine ;
-  tooth_N = mkN "dant" masculine;
-  wife_N = mkN "bywy" ;
-  wind_N = mkN "Andh-y" ;
-  wing_N = mkN "pr" ;
-  worm_N = mkN "grm" ;
-  year_N = mkN "sal" ;
-  blow_V = mkV "clna" ;
-  breathe_V = compoundV "sans" (mkV "lyna" ) ;
-  burn_V = mkV "jlna" ;
-  dig_V = mkV "kh-wdna" ;
-  fall_V = mkV "grna" ;
-  float_V = mkV "tyrna" ;
-  flow_V = mkV  "bhna" ;
-  fly_V = mkV "aRna" ;
-  freeze_V = mkV "jmna";
-  give_V3 = mkV3 (mkV "dyna") "kw" "";
-  laugh_V = mkV "hnsna" ;
---  lie_N = mkN "jh-wt" masculine ;
-  lie_V = compoundV "jh-wt" (mkV "bwlna" );
-  play_V = mkV "kh-ylna" ;
-  sew_V = mkV "syna" ;
-  sing_V = mkV "gana" ;
-  sit_V = mkV "byTh-na" ;
-  smell_V = mkV "swngna" ;
-  spit_V = mkV "th-wkna" ;
-  stand_V = compoundV "kh-RE" (mkV "hwna" );
-  swell_V = mkV "swjh-na" ;
-  swim_V = mkV "tyrna" ;
-  think_V = mkV "swcna" ;
-  turn_V = mkV "mRna";
-  vomit_V = compoundV "alty" (mkV "krna") ;
-  bite_V2 = mkV2 (mkV "katna") ;
-  count_V2 = mkV2 (mkV "gnna") ;
-  cut_V2 = mkV2 (mkV "katna") ;
-  fear_V2 = mkV2 (mkV "Drna") ;
-  fight_V2 = mkV2 (mkV "lRna") ;
-  hit_V2 = mkV2 (compoundV "th-wkr" (mkV "marna" ));
-  hold_V2 = mkV2 (mkV "pkRna") ;
-  hunt_V2 = mkV2 (compoundV "Xkar" do_V2);
-  kill_V2 =  mkV2 (compoundV "mar" (mkV "Dalna" )) ;
-  pull_V2 = mkV2 (mkV "kh-ncna");
-  push_V2 = mkV2 (mkV "dh-kylna") "kw" ;
-  rub_V2 = mkV2 (mkV "rgRna") ;
-  scratch_V2 = mkV2 (mkV "kh-rcna") "kw" ;
-  split_V2 = mkV2 (mkV "banta") "kw" ;
---  squeeze_V2 = dirV2 (regV "squeeze") ;
---  stab_V2 = dirV2 (regDuplV "stab") ;
-  suck_V2 = mkV2 (mkV "cwsna") ;
-  throw_V2 = mkV2 (mkV "ph-ynkna") ;
-  tie_V2 = mkV2 (mkV "bandh-na") ;
-  wash_V2 = mkV2 (mkV "dh-wna") ;
-  wipe_V2 = mkV2 (compoundV "Saf" (mkV "krna" ));
-
-----  other_A = regA "other" ;
-
-  grammar_N = mkN "grdan" ;
-  language_N = mkN "zban" feminine ;
-  rule_N = mkN "aSwl" ;
-
----- added 4/6/2007
-    john_PN = mkPN "jon" ;
-    question_N = mkN "swal" ;
---    ready_A = regA "ready" ;
-    reason_N = mkN "wjh" feminine ;
-    today_Adv = mkAdv "Aj" ;
-    uncertain_A = mkA ["Gyr yqyny"] ;
-    
- 
-}
diff --git a/lib/src/urdu/transliterated/MorphoUrd.gf b/lib/src/urdu/transliterated/MorphoUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/MorphoUrd.gf
+++ /dev/null
@@ -1,461 +0,0 @@
---# -path=.:../../prelude
---
-----1 A Simple Urdu Resource Morphology
-----
-----  Shafqat Virk, Aarne Ranta,2009
-----
----- This resource morphology contains definitions needed in the resource
----- syntax. To build a lexicon, it is better to use $ParadigmsUrd$, which
----- gives a higher-level access to this module.
---
-resource MorphoUrd = ResUrd ** open Prelude,Predef in {
-
-  flags optimize=all ;
-   coding = utf8;
-
-----2 Nouns
-oper
-    mkNoun : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun = 
-      \sd,so,sv,pd,po,pv,g -> {
-      s = table {
-      Sg => table {
-        Dir => sd ;
-        Obl => so ;
-        Voc => sv 
-	  } ;
-      Pl => table {
-        Dir => pd ;
-        Obl => po ;
-        Voc => pv 
-	  }
-      } ;
-
-      g = g
-      } ;
-
-    
-
-    regNoun : Str -> Noun ;
-    regNoun s = case s of {
-		     _ + "ya" => mkN05 (s);
-                 _ + ("a"|"e"|"h") =>  mkN01 (s);
-                 _ + "y" => mkN03 (s);
-                 _ + ("aN"|"wN") => mkN04 (s);
-                 _ + "w^" => mkN12 (s);
-             _			  => regNoun2 (s)				 
-                 };
-	regNoun2 : Str -> Noun;
-	regNoun2 s = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (last s) "h") True (if_then_else Bool (eq (last s) "e") True False))
-     in case c of {
-      False => mkN02 (s);
-	  True => mkN01 (s)
-     };	  
-	  
-    reggNoun : Str -> Gender -> Noun ;
-    reggNoun s g = let c = if_then_else Bool (eq (last s) "a" ) True (if_then_else Bool (eq (dp 2 s) "aN") True (if_then_else Bool (eq (dp 2 s) "wN") True False))
-	 in case <s,g,c> of {
-		         <_ + "t",Fem,_> => mkN10 (s);
-				 <_ + "t",Masc,_> => mkN02 (s);
-				 <_ + "w",Masc,_> => mkN11 (s);
-                 <_ + "w",Fem,_> 	=> mkN07 (s);
-				 <_ + "ya",Fem,_> => mkN05 (s);
-                 <_ + "ya",Masc,_> => mkN02 (s);
-                 <_,Fem,False>		=> mkN08 (s);
-                 <_,Fem,_>		=> mkN09 (s)
-                 				 
-                 };
-    
--- masculine nouns end with alif, choTi_hay, ain Translitration: (a, h, e)
--- Arabic nouns ends with h. also taken as Masc
-
-     mkN01 : Str -> Noun ;
-     mkN01 lRka = let end = last (lRka) ;
-                 lRk = if_then_else Str (eq end "e") lRka (tk 1 lRka)
-             in mkNoun (lRka)     (lRk+"E")  (lRk+"E")
-                       (lRk+"E")  (lRk+"wN") (lRk+"w")
-                       Masc ;
-
--- masculine nouns does not end with a, h, e, an
-
-     mkN02 : Str -> Noun ;
-     mkN02 mrd = let mrdwN = mrd+"wN" ;
-              mrdw  = tk 1 mrdwN
-              in mkNoun mrd mrd   mrd
-                      mrd mrdwN mrdw
-                      Masc ;
-
--- feminine Nouns end with y
-
-     mkN03 : Str -> Noun ;
-     mkN03 krsy = let krsyaN  = krsy+"aN" ;
-		 krsywN  = krsy+"wN" ;
-		 krsyw   = tk 1 krsywN
-             in mkNoun krsy   krsy   krsy
-                       krsyaN krsywN krsyw
-                       Fem ;
-
--- feminine nouns end with a, aN, wN
-     mkN04 : Str -> Noun ;
-     mkN04 n = case last n of {
-     "a" => let bla = n
-        in mkNoun bla          bla         bla
-                  (bla+"y^yN") (bla+"w^N") (bla+"w^")
-                  Fem ;
-      _   => let maN = n ; -- ends with aN and wN
-            ma  = tk 1 maN
-        in mkNoun maN         maN        maN
-                  (ma+"y^yN") (ma+"w^N") (ma+"w^N")
-                  Fem 
-
-            };
-  --feminine nouns end with ya
-    
-      mkN05 : Str -> Noun ;
-      mkN05 gRya = let gRy = (tk 1 gRya)
-             in mkNoun gRya       gRya       gRya
-                       (gRya+"N") (gRy+"wN") (gRy+"w")
-                       Fem ;
-
--- feminine nouns end with w
-      
-      mkN07 : Str -> Noun ;
-      mkN07 khshbw =  mkNoun khshbw     khshbw         khshbw
-                            (khshbw + "y^yN") (khshbw + "w^N") (khshbw + "w^")
-                            Fem ;
-
--- Loan arabic feminine nouns end with t
--- this is a noun that shows  state, condition 
-
-      mkN10 : Str -> Noun ;
-      mkN10 ndamt = mkNoun ndamt        ndamt        ndamt
-                     (ndamt+"yN") (ndamt+"wN") (ndamt+"w")
-                     Fem ;
--- Worst case function
-      mkN : (_,_,_,_,_,_ : Str) -> Gender -> Noun ;
-      mkN sgNom sgObl sgVoc plNom plObl plVoc g = 
-      mkNoun sgNom sgObl sgVoc plNom plObl plVoc g ;
-
-      mkN06 : Str -> Noun ;
-      mkN06 rya = mkNoun rya          rya         rya 
-                   (rya+"y^yN") (rya+"w^N") rya
-                   Fem ;
-
--- feminine nouns that do not end with a, N, w, wN
-     
-      mkN08 : Str -> Noun ;
-      mkN08 ktab = mkNoun ktab ktab ktab
-                    (ktab+"yN") (ktab+"wN") (ktab+"w")
-                    Fem ;
-
--- Loan arabic feminine nouns
-     
-      mkN09 : Str -> Noun ;
-      mkN09 ahsan = mkNoun ahsan        ahsan                             ahsan
-                     (ahsan+"at")  (ahsan+"at") (ahsan+"w") 
-                     Fem ;
--- (variants{ahsan+"at";ahsan+"wN"})
--- Loan persian maculine nouns end with w
-
-      mkN11 : Str -> Noun ;
-      mkN11 alw = mkNoun alw alw         alw
-                   alw (alw+"w^N") (alw+"w^")
-                   Masc ;
-
-
--- Loan persian maculine nouns end with w^
-
-      mkN12 : Str -> Noun ;
-      mkN12 bhao = mkNoun (bhao)      (bhao)     (bhao)
-                          (bhao)      (bhao)     (bhao)
-                    Masc ;
-----2 Determiners
-  IDeterminer = {s:Gender => Str ; n : Number};
-  makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
-   s = table {
-      Sg => table {
-        Masc => s1 ;
-        Fem => s2 
-	  } ;
-      Pl => table {
-        Masc => s3 ;
-        Fem => s4 
-	  }
-      } ;
-
-      n = n
-	};	
-	
-  makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
-   s = table {
-        Masc => s1;
-		Fem  => s2
-	 };
-	 n = n
-    };		
-    
--- Proposition  
- 
-  makePrep : Str -> Preposition = \str -> {s = str};
-   
-----2 Pronouns
-   PronForm = {s:Pronoun => Str};
-   makeDemPron : (x1,x2,x3,x4,x5,x6:Str) -> PronForm = 
-    \y1,y2,y3,y4,y5,y6 -> {
-	 s = table {
-         P Sg _ Dir _ => y1;
-         P Sg _ Obl _ => y2;
-         P Sg _ Voc _ => y3;
-         P Pl _ Dir _ => y4;
-         P Pl _ Obl _ => y5;
-         P Pl _ Voc _ => y6
-         };
-      };
-
---   DemonPronForm = {s:DemPronForm => Str};
-  mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12:Str) -> DemPronForm =
-  \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12 -> {
-   s = table {
-	        Sg => table {
-				Masc => table {
-						     Dir => y1 ;
-                             Obl => y2 ;
-                             Voc => y3
-							 };
-				Fem => table {
-						     Dir => y4 ;
-                             Obl => y5 ;
-                             Voc => y6
-							 }
-						};
-			Pl => table {
-				Masc => table {
-						     Dir => y7 ;
-                             Obl => y8 ;
-                             Voc => y9
-							 };
-				Fem => table {
-						     Dir  => y10 ;
-                             Obl => y11 ;
-                             Voc => y12
-							 }
-					} 
-				}
-               };    
-   makeDemonPronForm : Str -> Str -> Str -> DemPronForm ;
-   makeDemonPronForm  yeh is inn = mkDemonPronForm 	yeh	is	"" yeh is "" yeh inn "" yeh inn "";	
---   makePossPronForm myra myry hmara hmary = mkDemonPronForm myra myra myra myry myry myry hmara hmara hmara hmary hmary hmary;
-   
-   PersPron = {s: PersPronForm => Str};
-   
-   mkPersPron:(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> PersPron = 
-    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
-     s = 
-	  table {
-	      PPF Sg Pers1 Dir => y1;
-          PPF Sg Pers1 Obl => y2;
-	      PPF Sg Pers1 Voc => y3;
-	      PPF Sg Pers2_Casual Dir => y4;
-	      PPF Sg Pers2_Casual Obl => y5;
-          PPF Sg Pers2_Casual Voc => y6;
-	      PPF Sg Pers2_Familiar Dir => y7;
-	      PPF Sg Pers2_Familiar Obl => y8;
-	      PPF Sg Pers2_Familiar Voc => y9;
-          PPF Sg Pers2_Respect Dir => y10;
-	      PPF Sg Pers2_Respect Obl => y11;
-	      PPF Sg Pers2_Respect Voc => y12;
-	      PPF Sg Pers3_Near Dir => y13;
-          PPF Sg Pers3_Near Obl => y14;
-	      PPF Sg Pers3_Near Voc => y15;
-	      PPF Sg Pers3_Distant Dir => y16;
-	      PPF Sg Pers3_Distant Obl => y17;
-          PPF Sg Pers3_Distant Voc => y18;
-	      PPF Pl Pers1 Dir => y19;
-          PPF Pl Pers1 Obl => y20;
-	      PPF Pl Pers1 Voc => y21;
-	      PPF Pl Pers2_Casual Dir => y22;
-	      PPF Pl Pers2_Casual Obl => y23;
-          PPF Pl Pers2_Casual Voc => y24;
-	      PPF Pl Pers2_Familiar Dir => y25;
-	      PPF Pl Pers2_Familiar Obl => y26;
-	      PPF Pl Pers2_Familiar Voc => y27;
-          PPF Pl Pers2_Respect Dir => y28;
-	      PPF Pl Pers2_Respect Obl => y29;
-	      PPF Pl Pers2_Respect Voc => y30;
-	      PPF Pl Pers3_Near Dir => y31;
-          PPF Pl Pers3_Near Obl => y32;
-	      PPF Pl Pers3_Near Voc => y33;
-	      PPF Pl Pers3_Distant Dir => y34;
-	      PPF Pl Pers3_Distant Obl => y35;
-          PPF Pl Pers3_Distant Voc => y36
-		 }; 
-      };
-	  
-   makePersPron : PersPron;
-   makePersPron     = mkPersPron	"m(a)yN"	"m(o)j'|h"		""		"t(o)w "		"t(o)j|h"		"t(o)w "		"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)s"		""		"w(o)h"		"a(o)s"		""
-									"h(a)m"		"h(a)m"			""		"t(o)m" 		"t(o)m"			"t(o)m"			"t(o)m"		"t(o)m"		"t(o)m"		"Ap"		"Ap"		"Ap"		"y(i)h"		"a(i)n"		""		"w(o)h"		"a(o)n"		"" ;
-						
-  mkPron : (x1,x2,x3:Str) -> {s:Case => Str} = 
-     \y1,y2,y3 -> { s =
-                      table {
-                        Dir => y1;
-                        Obl => y2;
-                        Voc => y3
-                        }
-                      };  
-                                   
-	------- PossPronForm yet to be implemented
-  
--- IntPronForm = {s:InterrPronForm => Str};
-  IntPronForm = {s: Case => Str};
-  mkIntPronForm : (x1,x2,x3:Str) -> IntPronForm =
-  \y1,y2,y3 -> {
-   s = 
-    table {
-	            Dir => y1;
-	            Obl => y2;
-	            Voc => y3
-		 }
-	}; 
-
-----2 Adjectives
--- defined in ResUrd
-
-----3 Verbs
-  CommonVF = {s : VTense => UPerson => Number => Gender => Str} ;
- 
-   mkVerb : (x1: Str) -> Verb = \inf  ->
-     	 let root = (tk 2 inf); inf_obl = ((tk 1 inf) + "E"); inf_fem = ((tk 1 inf) + "y")
-	in { s = table {
-          
-               VF tense person number gender => (mkCmnVF root tense person number gender).s  ;
-               Inf     => inf ;
-               Root    => root ;
-               Inf_Obl => inf_obl ;
-               Inf_Fem => inf_fem 
-          
-          
-       }
-     } ;
-   rem_y : Str -> Str;
-   rem_y str = let b = take 1 str; yth = drop 1 str; a1	= take 4 yth; a2 = take 1 yth; 	th= if_then_else Str (eq a1 "(a)y") (drop 5 str) (drop 2 str);	st = if_then_else Str (eq a1 "(a)y") (b ++ "(i)"++th) (if_then_else Str (eq a2 "y") (b ++ th)  str)
-              in rt st;
-	rt: Str -> Str;
-	rt r = r;
-   mkCmnVF : Str -> VTense -> UPerson -> Number -> Gender -> {s:Str} =
-    \root,t,p,n,g ->
-     {s = 
-      let form1 = case (last root) of {
-                  "a"|"A"|"w" => root + "w^N" ;
-                  _           => root + "wN"
-                 };
-          form2 =  case (last root) of {
-                  "a"|"A"|"w" => root + "y^N" ;
-                  _           => root + "yN"
-                 };
-	 in
-       case <t,p,n,g> of {
-        <Subj,Pers1,Sg,_> => form1 ;
-        <Subj,Pers1,Pl,_> => form2 ;
-        <Subj,_,_,_>      => (mkImpert root p n g).s ;
-        <Perf,_,_,_>      => case root of {
-		                      "hw" => (mkPastInd root p n g).s ;
-							  "ja" => (mkPastInd "gy" p n g).s ;
-							  "kr" => (mkPastInd "k" p n g).s ;
-							  "dE" => (mkPastInd "d" p n g).s ;
-							  "lE" => (mkPastInd "l" p n g).s ;
-							  _    => (mkPastInd root p n g).s };
-        <Imperf,Pers2_Familiar,Sg,Masc>         => root + "tE";
-        <Imperf,Pers2_Familiar,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
-        <Imperf,Pers2_Familiar,Pl,Masc>         => root + "tE";
-        <Imperf,Pers2_Familiar,Pl,Fem>         => root+"tyN";
-        <Imperf,Pers2_Respect,Sg,Masc>         => root + "tE";
-        <Imperf,Pers2_Respect,Sg,Fem>         => root + "ty"; --variants{root+"ty" ; root+"tyN"};	
-        <Imperf,Pers2_Respect,Pl,Masc>         => root + "tE";
-        <Imperf,Pers2_Respect,Pl,Fem>         => root+"tyN";
-		<Imperf,_,Sg,Masc>					  => root+"ta";
-		<Imperf,_,Sg,Fem>					  => root+"ty";
-		<Imperf,_,Pl,Masc>					  => root+"te";
-		<Imperf,_,Pl,Fem>					  => root+"tyN"
-        }
-       
-     } ;
-   
-   mkPastInd : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
-    {s = let roo = root ;
-             a = case (last root) of {
-                  "a"|"A"|"w"|"k" => "ya" ;
-                  _           => "a"
-                 } ;
-             y = case (last root) of {
-                  "a"|"A"|"w" => "y^y" ;
-                  _           => "y"
-                 } ;
-             e = case (last root) of {
-                  "a"|"A"|"w"|"k" => "y^E" ;
-                  _           => "E"
-                 } ;
-            yN = case (last root) of {
-                  "a"|"A"|"w" => "y^yN" ;
-                  _           => "yN"
-                 } ;
-
-     in 
-     case <p,n,g> of {
-       <Pers1,Sg,Masc> => roo+a ;
-       <Pers1,Sg,Fem>  => roo+y ;
-       <Pers1,Pl,Masc> => roo+e ;
-       <Pers1,Pl,Fem>  => roo+yN ;
-
-       <Pers2_Casual,Sg,Masc> => roo+a ;
-       <Pers2_Casual,Sg,Fem>  => roo+y ;
-       <Pers2_Casual,Pl,Masc> => roo+e ;       
-       <Pers2_Casual,Pl,Fem>  => roo+yN ;
-
-       <Pers2_Familiar,Sg,Masc> => roo+e ;
-       <Pers2_Familiar,Sg,Fem>  => roo+y; --variants{roo+y ; roo+yN} ;
-       <Pers2_Familiar,Pl,Masc> => roo+e ;
-       <Pers2_Familiar,Pl,Fem>  => roo+yN ;       
-       
-       <Pers2_Respect,Sg,Masc>  => roo+e ;
-       <Pers2_Respect,Sg,Fem>   => roo+yN; --variants{roo+yN ; roo+y} ;
-       <Pers2_Respect,Pl,Masc>  => roo+e ;
-       <Pers2_Respect,Pl,Fem>   => roo+yN ;
-       <_,Sg,Masc>              => roo + a; 
-       <_,Sg,Fem>              => roo+y ; 
-	   <_,Pl,Masc>              => roo + e; 
-       <_,Pl,Fem>              => roo+yN 
-       
-     } ;
-    } ;
-
-   mkImpert : Str -> UPerson -> Number -> Gender -> {s:Str} = \root,p,n,g ->
-    {s = let roo =  root ;
-             w = case (last root) of {
-                  "a"|"A"|"w" => "w^" ;
-                  _           => "w"
-               } ;
-             yN = case (last root) of {
-                  "a"|"A"|"w" => "y^yN" ;
-                  _           => "yN" 
-               } ;
-             yE = case (last root) of {
-                  "a"|"A"|"w" => "y^yE" ;
-                  _           => "yE" 
-               } ;
-             e = case (last root) of {
-                  "a"|"A"|"w" => "y^E" ;
-                  _           => "E" 
-               } in
-      case <p,n,g> of {
-       <Pers1,_,_>          => ""; --nonExist ;
-       <Pers2_Casual,Sg,_>  => root ;
-       <Pers2_Casual,Pl,_>  => roo+w ;
-       <Pers2_Familiar,_,_> => roo+w ;
-       <Pers2_Respect,Sg,_> => roo+w; --variants{roo+w; roo+yN; roo+yE} ;
-       <Pers2_Respect,Pl,_> => roo+yN; --variants{roo+yN; roo+yE} ;
-       <_,Sg,_>              => roo+e ; 
-       <_,Pl,_>              => roo+yN 
-      }; 
-    };       
-
-}
diff --git a/lib/src/urdu/transliterated/NumeralUrd.gf b/lib/src/urdu/transliterated/NumeralUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/NumeralUrd.gf
+++ /dev/null
@@ -1,127 +0,0 @@
-concrete NumeralUrd of Numeral = CatUrd ** open ResUrd in {
--- By Harald Hammarström
--- Modification for Urdu Shafqat Virk
- flags coding=utf8 ;
---- still old Devanagari coding
-
-
-param DForm = unit | ten ;
-param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ;
-param Size = sing | less100 | more100 ; 
-
-oper LinDigit = {s : DForm => Str ; size : DSize ; n : Number} ;
-
-
-lincat Dig = { s:Str ; n : Number};
-lincat Digit = LinDigit ;
-lincat Sub10 = {s : DForm => Str ; size : DSize ; n : Number} ;
-lincat Sub100 = {s : Str ; size : Size ; n : Number} ;
-lincat Sub1000 = {s : Str ; s2 : Str ; size : Size ; n : Number } ; 
-lincat Sub1000000 = { s : Str ; n : Number } ;
-
-lin num x0 = 
-    {s = table {
-          NCard =>   x0.s ; 
-          NOrd =>  x0.s ++ "waN" -- need to use mkOrd which will make irregular ordinals but it gives path error
-          };
-       n = x0.n
-    } ;
-oper mkOrd : Str -> Str =
- \s -> case s of {
-                    "ek"                  => "phla";
-                    "do"                  => "dwsra";
-                    "ti:n"                => "tesra";
-                    "ca:r"                => "cwth-a";
-                    ("cHah"|"cHa"|"cHai") => "ch-Ta";
-                    _                     =>  s ++ "waN"
-                  };
---  {s = \\_ => x0.s ; n = x0.n} ; 
-
-
-oper mkNum : Str -> Str -> DSize -> LinDigit = 
-  \do -> \bis -> \sz ->  
-  {s = table {unit => do ; ten => bis } ; 
-   size = sz ; n = Pl} ;
-
-lin n2 = mkNum "dw" "bys" r2 ;
-lin n3 = mkNum "tyn" "tys" r3 ;
-lin n4 = mkNum "car" "calys" r4 ;
-lin n5 = mkNum "panc" "pcas" r5 ;
-lin n6 = mkNum "ch-" "sath-" r6 ; 
-lin n7 = mkNum "sat" "str" r7; 
-lin n8 = mkNum "Ath-" "asy" r8;
-lin n9 = mkNum "nw" "nwE" r9 ;
-
-oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize => Str = \a1 -> \a2 -> \a3 -> \a4 -> \a5 -> \a6 -> \a7 -> \a8 -> \a9 -> table {
-  sg => a1 + "ah" ;
-  r2 => a2 + "i:s" ;
-  r3 => a3 + "ti:s" ;
-  r4 => a4 + "a:li:s" ;
-  r5 => a5 + "an" ;
-  r6 => a6 + "saTH" ;
-  r7 => a7 + "hattar" ;
-  r8 => a8 + "a:si:" ;
-  r9 => a9 + "a:nave"
-} ;
-
-oper rows : DSize => DSize => Str = table {
-  sg => mkR "gyarh" "ikk" "ikat" "ekt" "ikyaw" "ik" "ik" "iky" "iky" ; 
-  r2 => mkR "barh" "bay" "bat" "bay" "baw" "ba" "ba" "bay" "b" ;
-  r3 => mkR "tyr" "ty" "tyn" "tnt" "trp" "try" "t" "tr" "tr" ;
-  r4 => mkR "cwd" "cwb" "cwn" "cwa" "cww" "cwn" "cwh" "cwr" "cwr" ;
-  r5 => mkR "pnd" "pcy" "pyn" "pnta" "pcp" "pyn" "ph" "pc" "pc" ;
-  r6 => mkR "swl" "ch-b" "ch-t" "ch-y" "ch-p" "ch-ya" "ch-" "ch-y" "ch-y" ;
-  r7 => mkR "str" "sta" "syn" "snt" "staw" "sta" "sr" "st" "sta" ;
-  r8 => mkR "ath-ar" "ath-ay" "aR" "aRt" "ath-aw" "aR" "ath-" "ath-" "ath-" ; 
-  r9 => table {sg => "anys" ; r2 => "antys" ; r3 => "antalys" ; 
-               r4 => "ancas" ; r5 => "ansth-" ; r6 => "anhtr" ; 
-               r7 => "anasy" ; 
-               r8 => "ananwE" ; r9 => "nnanwE" } 
-} ;
-
-oper ss : Str -> {s : Str} = \s -> {s = s} ;
-
-lin pot01 = {s = table {unit => "ayk" ; _ => "dummy" } ; size = sg ; n = Sg} ;
-lin pot0 d = d ; 
-lin pot110 = {s = "das" ; size = less100 ; n = Pl} ; 
-lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ;
-lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ;
-lin pot0as1 n = {s = n.s ! unit ; size = table {sg => sing ; _ => less100} ! n.size ; n = n.n } ;
-
-lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ;
-lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ;
-
-lin pot1as2 n = {s = n.s ; s2 = "dummy" ; size = n.size ; n = n.n} ;
-lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; 
-              s2 = d.s ! unit ++ "lakh-" ; size = more100 ; n = d.n} ;
-lin pot2plus d e = 
-  {s = (mksau (d.s ! unit) d.size) ++ e.s ; 
-   s2 = (d.s ! unit) ++ "lakh-" ++ (mkhazar e.s e.size) ; 
-   size = more100 ; n = d.n} ;
-
-lin pot2as3 n = {s = n.s ; n = n.n} ;
-lin pot3 n = {s = table { sing => ekhazar ;
-                          less100 => n.s ++ "hzar" ; 
-                          more100 => n.s2 } ! n.size ; n = n.n} ;
-lin pot3plus n m = 
-  {s = table {sing => ekhazar ;
-              less100 => n.s ++ "hzar" ; 
-              more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ;
-
-lin D_0 = { s = "0" ; n = Sg};
-lin D_1 = { s = "1" ; n = Sg};
-lin D_2 = { s = "2" ; n = Pl};
-lin D_3 = { s = "3" ; n = Pl};
-lin D_4 = { s = "4" ; n = Pl};
-lin D_5 = { s = "5" ; n = Pl};
-lin D_6 = { s = "6" ; n = Pl};
-lin D_7 = { s = "7" ; n = Pl};
-lin D_8 = { s = "8" ; n = Pl};
-lin D_9 = { s = "9" ; n = Pl};
-lin IDig d = { s = \\_ => d.s ; n = d.n} ;
-lin IIDig d dg = { s = \\df => dg.s ! df ++ d.s ; n = Pl }; -- need to use + rather than ++, but gives error need to discuss
-
-oper ekhazar : Str = variants {"hzar" ; "ayk" ++ "hzar"} ; 
-oper mkhazar : Str -> Size -> Str = \s -> \sz -> table {sing => ekhazar ; _ => s ++ "hzar"} ! sz ;
-oper mksau : Str -> DSize -> Str = \s -> \sz -> table {sg => "sw" ; _ => s ++ "sw"} ! sz ;
-}
diff --git a/lib/src/urdu/transliterated/ResUrd.gf b/lib/src/urdu/transliterated/ResUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/ResUrd.gf
+++ /dev/null
@@ -1,641 +0,0 @@
---# -path=.:../abstract:../common:../../prelude
---
---1 Urdu auxiliary operations.
---
--- This module contains operations that are needed to make the
--- resource syntax work. 
-
-resource ResUrd = ParamX  ** open Prelude,Predef in {
-
-  flags optimize=all ;
-  coding = utf8;
-
-  param 
-    Case = Dir | Obl | Voc ;
-    Gender = Masc | Fem ;
-	VTense = Subj | Perf | Imperf;
-    UPerson = Pers1
-	    | Pers2_Casual
-	    | Pers2_Familiar 
-	    | Pers2_Respect
-	    | Pers3_Near
-	    | Pers3_Distant;
-		
-	Order = ODir | OQuest ;
-	
---2 For $Relative$
- 
-    RAgr = RNoAg | RAg Agr ;
-    RCase = RC Number Case ;
-
--- for Numerial
-   
-   CardOrd = NCard | NOrd ;
-  
-  -----------------------------------------
-  -- Urd Pronouns
-  -----------------------------------------
-  
-   Pronoun = P Number Gender Case UPerson;
-   PersPronForm = PPF Number UPerson Case;
-   
--------------------------------------------
---Verbs
--------------------------------------------
-
-    VerbForm = VF VTense UPerson Number Gender
-                | Inf
-                | Root
-                | Inf_Obl
-                | Inf_Fem;				
-  oper
-    Noun = {s : Number => Case => Str ; g : Gender} ;
-    Verb = {s : VerbForm => Str} ;
-    Preposition = {s : Str};
-    DemPronForm = {s : Number => Gender => Case => Str};
-    PossPronForm = {s : Number => Gender => Case => Str};
-    Determiner = {s : Number => Gender => Str ; n : Number};
-  
--- a useful oper
-    eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ;
- 
-   -----------------------------------------------
-   -- Urd Adjectives
-   -----------------------------------------------
-   
-    Adjective = { s: Number => Gender => Case => Degree => Str };    
-
-
-    mkAdjective : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> Adjective = 
-    \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> {
-     s = table {
-	    Sg => table {
-		        Masc => table {
-				        Dir => table {
-						     Posit  => y1 ;
-                             Compar => y2 ;
-                             Superl => y3
-							 };
-						Obl => table {
-						     Posit  => y4 ;
-                             Compar => y5 ;
-                             Superl => y6
-							 };
-						Voc => table {
-						     Posit  => y7 ;
-                             Compar => y8 ;
-                             Superl => y9
-							 }
-							};
-				Fem => table {
-				        Dir => table {
-						     Posit  => y10 ;
-                             Compar => y11 ;
-                             Superl => y12
-							 };
-						Obl => table {
-						     Posit  => y13 ;
-                             Compar => y14 ;
-                             Superl => y15
-							 };
-						Voc => table {
-						     Posit  => y16 ;
-                             Compar => y17 ;
-                             Superl => y18
-							 }
-							}
-					};		
-			Pl => table {
-		        Masc => table {
-				        Dir => table {
-						     Posit  => y19 ;
-                             Compar => y20 ;
-                             Superl => y21
-							 };
-						Obl => table {
-						     Posit  => y22 ;
-                             Compar => y23 ;
-                             Superl => y24
-							 };
-						Voc => table {
-						     Posit  => y25 ;
-                             Compar => y26 ;
-                             Superl => y27
-							 }
-							}; 
-				Fem => table {
-				        Dir => table {
-						     Posit  => y28 ;
-                             Compar => y29 ;
-                             Superl => y30
-							 };
-						Obl => table {
-						     Posit  => y31 ;
-                             Compar => y32 ;
-                             Superl => y33
-							 };
-						Voc => table {
-						     Posit  => y34 ;
-                             Compar => y35 ;
-                             Superl => y36
-							 }
-							}
-                        }
-                    }
-            };					
-							 
- 
-    regAdjective : Str -> Adjective; 
-	regAdjective x =  case x of {
-	      acch + ("a"|"aN") => mkAdjective x            ("bht" ++ x)          ("sab sE" ++ x)          (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E")
-		                                   (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y")
-									       (acch +"E")  ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E")
-		                                   (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y");
-									
-          _                 => mkAdjective  x x x x x x x x x
-                                            x x x x x x x x x
-                                            x x x x x x x x x
-                                            x x x x x x x x x									 
-                            }; 
-					 
-		 
-
-  RefPron : Str;
-  RefPron = "Kwd";
-  
-  ----------------------------------------------------------
-  -- Grammar part
-  ----------------------------------------------------------
-  
-  param
-    Agr = Ag Gender Number UPerson ;
-    NPCase = NPC Case | NPObj | NPErg ;
-
-  oper
-    np2pronCase :  (Case => Str) -> NPCase -> Str = \ppf,npc -> case npc of {
-       NPC c => ppf ! c;
-       NPObj => ppf ! Dir ;
-       NPErg => ppf ! Obl ++ "ne"
-      } ;
-    
-	toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of {
-      NPC c => pn !  c ;
-      NPObj => pn !  Dir ;
-      NPErg => pn !  Obl ++ "ne"
-      } ;
-	detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of {
-       NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
-       NPObj => dt.s ! Sg ! Masc ++ cn.s ! nn ! Dir ;
-       NPErg => dt.s ! Sg ! Masc ++ cn.s ! nn ! Obl ++ "ne"
-      } ;  
-    det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of {
-       NPC c => dt.s ! Sg ! Masc ;
-       NPObj => dt.s ! Sg ! Masc ;
-       NPErg => dt.s ! Sg  ! Masc ++ "ne"
-      } ;    
-	  
-------------------------------------------
--- Agreement transformations
------------------------------------------
-    toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g ->       
-	   Ag g n p;
-      
-
-    fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of {
-      Ag g n p => {n = n ; p = p ; g = g} 
-	  } ;
-	  
-	conjAgr : Agr -> Agr -> Agr = \a0,b0 -> 
-      let a = fromAgr a0 ; b = fromAgr b0 
-      in
-      toAgr
-        (conjNumber a.n b.n)
-        b.p a.g;	  
-	
-	giveNumber : Agr -> Number =\a -> case a of {
-	   Ag _ n _ => n
-	};
-	giveGender : Agr -> Gender =\a -> case a of {
-	   Ag g _ _ => g
-	};
-    
-    defaultAgr : Agr = agrP3 Masc Sg ;
-    agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ;	
-    personalAgr : Agr = agrP1 Masc Sg ;
-    agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ;
-	
- param
-      CPolarity = 
-       CPos
-       | CNeg Bool ;  -- contracted or not
-
- oper
-    contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of {
-    Pos => CPos ;
-    Neg => CNeg b
-    } ;
-
-	NP : Type = {s : NPCase => Str ; a : Agr} ;
-   
- param
-    CTense = CPresent | CPast | CFuture ;
-    
-  oper 
-    copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g -> 
-      case <t,n,p,g> of {
-        <CPresent,Sg,Pers1,_   > => "hwN" ;
-        <CPresent,Sg,Pers2_Casual,_   > => "hE" ;
-        <CPresent,Sg,Pers2_Familiar,_   > => "hw" ;
-		<CPresent,Sg,Pers2_Respect,_   > => "hyN" ;
-        <CPresent,Sg,Pers3_Near,_   > => "hE" ;
-        <CPresent,Sg,Pers3_Distant,_   > => "hE" ;
-		<CPresent,Pl,Pers1,_   > => "hyN" ;
-        <CPresent,Pl,Pers2_Casual,_   > => "hw" ;
-        <CPresent,Pl,Pers2_Familiar,_   > => "hw" ;
-		<CPresent,Pl,Pers2_Respect,_   > => "hyN" ;
-        <CPresent,Pl,Pers3_Near,_   > => "hyN" ;
-        <CPresent,Pl,Pers3_Distant,_   > => "hyN" ;
-		<CPast,Sg,Pers1,Masc   > => "th-a" ;
-		<CPast,Sg,Pers1,Fem   > => "th-y" ;
-        <CPast,Sg,Pers2_Casual,Masc   > => "th-a" ;
-		<CPast,Sg,Pers2_Casual,Fem   > => "th-y" ;
-        <CPast,Sg,Pers2_Familiar,Masc   > => "th-a" ;
-		<CPast,Sg,Pers2_Familiar,Fem   > => "th-y" ;
-		<CPast,Sg,Pers2_Respect,Masc   > => "th-E" ;
-		<CPast,Sg,Pers2_Respect,Fem   > => "th-yN" ;
-        <CPast,Sg,Pers3_Near,Masc   > => "th-a" ;
-		<CPast,Sg,Pers3_Near,Fem   > => "th-y" ;
-        <CPast,Sg,Pers3_Distant,Masc  > => "th-a" ;
-		<CPast,Sg,Pers3_Distant,Fem  > => "th-y" ;
-		<CPast,Pl,Pers1,Masc   > => "th-E" ;
-		<CPast,Pl,Pers1,Fem   > => "th-yN" ;
-        <CPast,Pl,Pers2_Casual,Masc   > => "th-E" ;
-		<CPast,Pl,Pers2_Casual,Fem   > => "th-yN" ;
-        <CPast,Pl,Pers2_Familiar,Masc   > => "th-E" ;
-		<CPast,Pl,Pers2_Familiar,Fem   > => "th-yN" ;
-		<CPast,Pl,Pers2_Respect,Masc   > => "th-E" ;
-		<CPast,Pl,Pers2_Respect,Fem   > => "th-yN" ;
-        <CPast,Pl,Pers3_Near,Masc   > => "th-E" ;
-		<CPast,Pl,Pers3_Near,Fem   > => "th-yN" ;
-		<CPast,Pl,Pers3_Distant,Masc   > => "th-E" ;
-		<CPast,Pl,Pers3_Distant,Fem   > => "th-yN" ;
-		<CFuture,Sg,Pers1,Masc   > => "ga" ;
-		<CFuture,Sg,Pers1,Fem   > => "gy" ;
-        <CFuture,Sg,Pers2_Casual,Masc   > => "ga" ;
-		<CFuture,Sg,Pers2_Casual,Fem   > => "gi" ;
-        <CFuture,Sg,Pers2_Familiar,Masc   > => "gE" ;
-		<CFuture,Sg,Pers2_Familiar,Fem   > => "gy" ;
-		<CFuture,Sg,Pers2_Respect,Masc   > => "gE" ;
-		<CFuture,Sg,Pers2_Respect,Fem   > => "gy" ;
-        <CFuture,Sg,Pers3_Near,Masc   > => "ga" ;
-		<CFuture,Sg,Pers3_Near,Fem   > => "gy" ;
-        <CFuture,Sg,Pers3_Distant,Masc  > => "ga" ;
-		<CFuture,Sg,Pers3_Distant,Fem  > => "gy" ;
-		<CFuture,Pl,Pers1,Masc   > => "gE" ;
-		<CFuture,Pl,Pers1,Fem   > => "gy" ;
-        <CFuture,Pl,Pers2_Casual,Masc   > => "gE" ;
-		<CFuture,Pl,Pers2_Casual,Fem   > => "gy" ;
-        <CFuture,Pl,Pers2_Familiar,Masc   > => "gE" ;
-		<CFuture,Pl,Pers2_Familiar,Fem   > => "gy" ;
-		<CFuture,Pl,Pers2_Respect,Masc   > => "gE" ;
-		<CFuture,Pl,Pers2_Respect,Fem   > => "gy" ;
-        <CFuture,Pl,Pers3_Near,Masc   > => "gE" ;
-		<CFuture,Pl,Pers3_Near,Fem   > => "gE" ;
-		<CFuture,Pl,Pers3_Distant,Masc  > => "gE" ;
-		<CFuture,Pl,Pers3_Distant,Fem  > => "gy" 
-        
-        
-        } ;
-
- param
-    VPPTense = 
-	  VPPres
-	  |VPPast
-	  |VPFutr;
-      
-    VPHTense = 
-       VPGenPres  -- impf hum       nahim    "I go"
-     | VPImpPast  -- impf Ta        nahim    "I went"
-	 | VPFut      -- fut            na/nahim "I shall go"
-     | VPContPres -- stem raha hum  nahim    "I am going"
-     | VPContPast -- stem raha Ta   nahim    "I was going"
-	 | VPContFut
-     | VPPerfPres -- perf hum       na/nahim "I have gone"
-     | VPPerfPast -- perf Ta        na/nahim "I had gone"          
-	 | VPPerfFut
-	 | VPPerfPresCont
-	 | VPPerfPastCont
-	 | VPPerfFutCont
-     | VPSubj     -- subj           na       "I may go"
-     ;
-
-    VPHForm = 
-       VPTense VPPTense Agr -- 9 * 12
-     | VPReq
-     | VPImp
-     | VPReqFut
-     | VPInf
-     | VPStem
-     ;
-
-    VType = VIntrans | VTrans | VTransPost ;
-
-  oper
-    
-	objVType : VType -> NPCase = \vt -> case vt of {
-      VTrans => NPObj ;
-      _ => NPC Obl
-      } ;
-
-    VPH : Type = {
-      s    : VPHForm => {fin, inf : Str} ;
-      obj  : {s : Str ; a : Agr} ; 
-      subj : VType ;
-      comp : Agr => Str;
-	  inf : Str;
-	  ad  : Str;
-      embComp : Str ;
-      } ;
-	
-	VPHSlash = VPH ** {c2 : Compl} ;
-
-    Compl : Type = {s : Str ; c : VType} ;
-
-   predV : Verb -> VPH = \verb -> {
-      s = \\vh => 
-	   case vh of {
-	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = verb.s ! VF Imperf p n g } ;
-		 VPTense VPPast (Ag g n p) => {fin = [] ; inf =verb.s ! VF Perf p n g} ;
-		 VPTense VPFutr (Ag g n p) =>  {fin = copula CFuture n p g ; inf =  verb.s ! VF Subj p n g } ;
-		 VPStem => {fin = []  ; inf =  verb.s ! Root};
-		 _ => {fin = [] ; inf = verb.s ! Root} 
-		 };
-	    obj = {s = [] ; a = defaultAgr} ;
-		subj = VTrans ;
-		inf = verb.s ! Inf;
-		ad = [];
-        embComp = [];
-        comp = \\_ => []
-      } ;
-
-    predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> 
-    predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ;
-
-	 
-    raha : Gender -> Number -> Str = \g,n -> 
-	   (regAdjective "rha").s ! n ! g ! Dir ! Posit ;
-
-	cka : Gender -> Number -> Str = \g,n -> 
-	  (regAdjective "cka").s ! n ! g ! Dir ! Posit ;
-	  
-	hw : UPerson -> Number -> Str = \pp,n ->    
-	 case <pp,n> of {
-	 <Pers1,_> => "hwN";
-	 <_,Pl>    => "hwN";
-	 <_,_>		=> "hw"
-	 };
-	 
-	predAux : Aux -> VPH = \verb -> {
-     s = \\vh => 
-       let  
-
-		 inf  = verb.inf ;
-         part = verb.ppart ;
-
-       in
-       case vh of {
-	     VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ;
-         VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ;
-         VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n  } ;
-         VPStem => {fin = []  ; inf = "rh" };
-		 _ => {fin = part ; inf = [] }
-		 };
-	  obj = {s = [] ; a = defaultAgr} ;
-      subj = VIntrans ;
-      inf = verb.inf;
-	  ad = [];
-      embComp = [];
-      comp = \\_ => []
-      } ;
-
-    Aux = {
-      inf,ppart,prpart : Str
-    } ;
-
-    auxBe : Aux = {
-    inf  = "" ;
-    ppart = "" ;
-    prpart = ""
-    } ;
-   	
-	Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
-	mkClause : NP -> VPH -> Clause = \np,vp -> {
-      s = \\vt,b,ord => 
-        let 
-          subjagr : NPCase * Agr = case vt of {
-            VPImpPast => case vp.subj of {
-              VTrans     => <NPErg, vp.obj.a> ;
-              VTransPost => <NPErg, defaultAgr> ;
-              _          => <NPC Dir, np.a>
-              } ;
-            _ => <NPC Dir, np.a>
-            } ;
-          subj = subjagr.p1 ;
-          agr  = subjagr.p2 ;
-		  n    = (fromAgr agr).n;
-		  p    = (fromAgr agr).p;
-		  g    = (fromAgr agr).g;
-          vps  = case vt of {
-
-				    VPGenPres  => vp.s !  VPTense VPPres agr ;
-					VPImpPast  => vp.s !  VPTense VPPast agr ;
-					VPFut      => vp.s !  VPTense VPFutr agr ;
-                    VPContPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContPast => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
-					VPPerfPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfPast => 
-                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;					
-					VPPerfFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n  ++ hw p n } ;
-					VPPerfPresCont => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
-					VPPerfPastCont => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;					
-					VPPerfFutCont => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n  ++ hw p n } ;					
-					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf  ; inf = "xayd"  }
-                   
-					};
-					
-		    
-          quest =
-            case ord of
-              { ODir => [];
-                OQuest => "kya" }; 
-		  na =
-            case b of
-              { Pos => [];
-                Neg => "na" };
-           nahim =
-            case b of 
-              { Pos => [];
-                Neg => "nhyN" };
-        in
-		case vt of {
-		VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp ;
-		_      => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a  ++ nahim  ++  vps.inf ++ vps.fin ++ vp.embComp};
-
-  } ;
-
-  mkSClause : Str -> Agr -> VPH -> Clause =
-    \subj,agr,vp -> {
-      s = \\t,b,ord => 
-        let 
-		  n    = (fromAgr agr).n;
-		  p    = (fromAgr agr).p;
-		  g    = (fromAgr agr).g;
-          vps  = case t of {
-                    VPGenPres  => vp.s !  VPTense VPPres agr ;
-					VPImpPast  => vp.s !  VPTense VPPast agr ;
-					VPFut      => vp.s !  VPTense VPFutr agr ;
-					VPContPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n  } ;
-					VPContPast => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
-					VPContFut  => 
-					  {fin = copula CFuture n p g  ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n  } ;
-					VPPerfPres => 
-					  {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfPast => 
-                      {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
-					VPPerfFut  => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
-					VPPerfPresCont => 
-					 {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
-					VPPerfPastCont => 
-					  {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ; 
-					VPPerfFutCont => 
-					  {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
-					VPSubj   => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xayd"  }
-                    
-					};
-
-		  quest =
-            case ord of
-              { ODir => [];
-                OQuest => "kya" }; 
-		  na =
-            case b of
-              { Pos => [];
-                Neg => "na" };
-          nahim =
-            case b of 
-              { Pos => [];
-                Neg => "nhyN" };		
-        in
-		case t of {
-		VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ na ++  vps.inf ++ vps.fin ++ vp.embComp;
-		_      => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr  ++ nahim ++  vps.inf ++ vps.fin ++ vp.embComp};
-    } ;
-    
-    insertSubj : UPerson -> Str -> Str = \p,s -> 
-      case p of { Pers1 => s ++ "wN" ; _ => s ++ "E"};
-     
-    insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp;
-     comp = \\a =>    vp.comp ! a  ++ obj1 ! a 
-     } ;
-     insertVV : Str -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp;
-     comp = \\a =>    vp.comp ! a  ++ obj1  
-     } ;
-     
-    insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> {
-     s = vp.s;
-     obj = vp.obj ;
-     subj = vp.subj ;
-	 inf = vp.inf;
-	 ad = vp.ad;
-     embComp = vp.embComp ++ obj1;
-     comp = vp.comp
-     
-     } ;
-	 
-	insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> 
-    insertObj obj vp ** {c2 = vp.c2} ;
-    insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> 
-    insertObj2 obj vp ** {c2 = vp.c2} ;
-
-	infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a ->
-     vp.obj.s ++ vp.inf ++ vp.comp ! a ;
-    infVV : Bool -> VPH -> Str = \isAux,vp -> 
-      case isAux of {False => vp.inf ; True => (vp.s ! VPImp).fin };
-
-    insertObject : NP -> VPHSlash -> VPH = \np,vps -> {
-      s = vps.s ;
-      obj = {s =  vps.obj.s  ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ;
-      subj = vps.c2.c ;
-	  inf = vps.inf;
-	  ad = vps.ad;
-      embComp = vps.embComp;
-      comp = vps.comp
-      } ;
-	  
-	insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     inf = vp.inf ;
-     subj = vp.subj ;
-	 ad = vp.ad ;
-     embComp = vp.embComp;
-     comp = \\a =>   obj ! a  ++ vp.c2.s ++ vp.comp ! a 
-    } ;
-
-    insertAdV : Str -> VPH -> VPH = \ad,vp -> {
-     s = vp.s ;
-     obj = vp.obj ;
-     inf = vp.inf ;
-	 subj = vp.subj;
-     ad  = vp.ad ++ ad ;
-     embComp = vp.embComp;
-     comp = vp.comp
-    } ;
-	conjThat : Str = "kh" ;
-
--- strings collected from syntax files, AR
-
-oper
-  sE_Str = "sE" ;
-  ka_Str = "ka" ;
-  hr_kwy_Str = "hr kwy" ;
-  rakh6na_Str = "rakh-na" ;
-  comma_Str = "," ;
-  agr_Str = "agr" ;
-  nE_Str = "nE" ;
-  jw_Str = "jw" ;
-  js_Str = "js" ;
-  jn_Str = "jn" ;
-  mt_Str = "mt" ;
-  nh_Str = "nh" ;
-  waN_Str = "waN" ;
-  awr_Str = "awr" ;
-  ky_Str = "ky" ;
-  kw_Str = "kw" ;
-   
-}
-
diff --git a/lib/src/urdu/transliterated/StructuralUrd.gf b/lib/src/urdu/transliterated/StructuralUrd.gf
deleted file mode 100644
--- a/lib/src/urdu/transliterated/StructuralUrd.gf
+++ /dev/null
@@ -1,128 +0,0 @@
-concrete StructuralUrd of Structural = CatUrd ** 
-  open MorphoUrd, ParadigmsUrd, Prelude, NounUrd in {
-
-  flags optimize=all ;
-  coding = utf8;
-
-  lin
-  above_Prep = ss "awpr" ;
-  after_Prep = ss "kE bed" ;
-  all_Predet = ss "tmam" ;
-  almost_AdA, almost_AdN = ss "tqryba" ;
-  although_Subj = ss "agrch-" ;
-  always_AdV = ss "hmyXh" ;
-  and_Conj = sd2 [] "awr" ** {n = Pl} ;
-  because_Subj = ss "kywnkh-" ;
-  before_Prep = ss "phlE" ;
-  behind_Prep = ss "pych-E" ;
-  between_Prep = ss "drmyaN" ;
-  both7and_DConj = sd2 "dwnwN" "awr" ** {n = Pl} ;
-  but_PConj = ss "lykn" ;
-  by8agent_Prep = ss "" ;
-  by8means_Prep = ss "" ;
-  can8know_VV,can_VV = mkV "skna" ** { isAux = True} ;
-  during_Prep = ss ["kE drmyaN"] ;
-  either7or_DConj = sd2 "kwy ayk" "ya" ** {n = Sg} ;
-  everybody_NP =  MassNP (UseN (ParadigmsUrd.mkN "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" "hr kwy" Masc )); -- not a good way coz need to include NounUrd
-  every_Det = mkDet "hr" "hr" "hr" "hr" Sg;
-  everything_NP = MassNP (UseN (ParadigmsUrd.mkN "hr cyz" "hr cyz" "hr cyzw" "sb cyzyN" "sb cyzwN" "sb cyzw" Masc ));
-  everywhere_Adv = ss "hr jgh" ;
-  few_Det = mkDet "cnd" "cnd" "cnd" "cnd" Pl ;
-  for_Prep = ss "kylyE" ;
-  from_Prep = ss "sE" ;
-  he_Pron = personalPN "wh" "as" "" "as ka"  Sg Masc Pers3_Distant ;
-  here_Adv = ss "yhaN" ;
-  here7to_Adv = ss ["yhaN pr"] ;
-  here7from_Adv = ss ["yhaN sE"] ;
-  how_IAdv = ss "how" ;
-  how8many_IDet = makeIDet "ktnE" "ktny" Pl ;
-  if_Subj = ss "agr" ;
-  in8front_Prep = ss ["kE samnE"] ;
-  i_Pron = personalPN "myN" "mjh-" "" "myra" Sg Masc Pers1;
-  in_Prep = ss "meN" ;
-  it_Pron  = personalPN "yh" "yh" "yh" "as ka" Sg Masc Pers3_Near;
-  less_CAdv = {s = "km" ; p = ""} ;
-  many_Det = mkDet "bht zyadh" "bht zyadh" "bht zyadh" "bht zyadh" Pl ;
-  more_CAdv = {s = "zyadh-" ; p = "" } ;
-  most_Predet = ss "zyadh tr" ;
-  much_Det = mkDet "bht" "bht" "bht" "bht" Sg  ;
---  must_VV = {
---    s = table {
---      VVF VInf => ["have to"] ;
---      VVF VPres => "must" ;
---      VVF VPPart => ["had to"] ;
---      VVF VPresPart => ["having to"] ;
---      VVF VPast => ["had to"] ;      --# notpresent
---      VVPastNeg => ["hadn't to"] ;      --# notpresent
---      VVPresNeg => "mustn't"
---      } ;
---    isAux = True
---    } ;
------b  no_Phr = ss "no" ;
-  no_Utt = ss "nhyN" ;
-  on_Prep = ss "pr" ;
---  one_Quant = demoPN "ayk" "ayk" "ayk" ; -- DEPRECATED
-  only_Predet = ss "srf" ;
-  or_Conj = sd2 [] "ya" ** {n = Sg} ;
-  otherwise_PConj = ss "ya ph-r" ;
-  part_Prep = ss "" ;
-  please_Voc = ss "mhrbani" ;
-  possess_Prep = ss "ka" ;
-  quite_Adv = ss "khamosh" ;
-  she_Pron = personalPN "wh" "as" "wh" "as ky" Sg Fem Pers3_Distant ;
-  so_AdA = ss "so" ;
-  somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy" "kwy" "kwy" "kwy" "kwy" "kwy" Masc ));
-  someSg_Det = mkDet "kch-" "kch-" "kch-" "kch-" Sg ;
-  somePl_Det = mkDet "kch-" "kch-" "kch-" "kch-" Pl ;
-  something_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz" "kwy cyz" "kwy cyz" "kh- cyzyN" "kh- cyzwN" "kh- cyzw" Masc ));
-  somewhere_Adv = ss "khin pr" ;
-  that_Quant = demoPN "wh" "as" "an" ;
-  that_Subj = ss "kh";
-  there_Adv = ss "whaN" ;
-  there7to_Adv = ss "whaN pr" ;
-  there7from_Adv = ss ["whaN sE"] ;
-  therefore_PConj = ss "as lyE" ;
-  they_Pron = personalPN "wh" "wh" "wh" "an ka" Pl Masc Pers3_Distant ; ---- 
-  this_Quant = demoPN "yh" "as" "an";      
-  through_Prep = ss ["myN sE"] ;
-  too_AdA = ss "bht" ;
-  to_Prep = ss "kw" ;
-  under_Prep = ss "nycE" ;
-  very_AdA = ss "bht" ;
-  want_VV = mkV "cahna" ** { isAux = False} ;
-  we_Pron = personalPN "hm" "hm" "hm" "hmara" Pl Masc Pers1 ;
-  whatSg_IP = mkIP "kya" "kis" "kis" Sg Masc ;
-  whatPl_IP = mkIP "kya" "kin" "kin" Pl Masc ;
-  when_IAdv = ss "kb" ;
-  when_Subj = ss "kb" ;
-  where_IAdv = ss "khaN" ;
-  which_IQuant = {s = \\_ => "kwn sy"} ;
---  whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
---  whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
-  whoSg_IP = mkIP "kwn" "kis" "kis" Sg Masc  ;
-  whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
-  why_IAdv = ss "kywN" ;
-  without_Prep = ss ["kE bGyr"] ;
-  with_Prep = ss ["kE sath-"] ;
---  yes_Phr = ss "haN" ;
-  yes_Utt = ss "haN" ;
-  youSg_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Sg Masc Pers2_Casual ;
-  youPl_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Pl Masc Pers2_Casual ;
-  youPol_Pron = personalPN "Ap" "AP" "AP" "Ap ka" Sg Masc Pers2_Respect  ;
-  no_Quant =  demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ; 
-  not_Predet = {s="nhyN"} ;
-  if_then_Conj = sd2 "agr" "tw" ** {n = Sg} ; 
-  at_least_AdN = ss ["km az km"] ;
-  at_most_AdN = ss ["zyadh sE zyadh"];
-  nothing_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" "kwy cyz nhyN" Masc )); 
-  except_Prep = ss "swaE" ;
-  nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" Masc ));  
-
-  as_CAdv = {s = "etna" ; p = "jtna"} ;
-
-  have_V2 = mkV2 (mkV "rakh-na") "" ;
-
- language_title_Utt = ss "ardw" ;
-
-}
-
diff --git a/src/compiler/GF/Command/Commands.hs b/src/compiler/GF/Command/Commands.hs
--- a/src/compiler/GF/Command/Commands.hs
+++ b/src/compiler/GF/Command/Commands.hs
@@ -22,9 +22,12 @@
 import PGF.Printer
 import PGF.Probabilistic -- (getProbsFromFile,prProbabilities,defaultProbabilities)
 import PGF.Generate (generateRandomFrom) ----
+import PGF.Tree (Tree(Fun), expr2tree, tree2expr)
+import PGF.Optimize
 import GF.Compile.Export
+import GF.Compile.ToAPI
 import GF.Compile.ExampleBased
-import GF.Infra.Option (noOptions, readOutputFormat)
+import GF.Infra.Option (noOptions, readOutputFormat, outputFormatsExpl)
 import GF.Infra.UseIO
 import GF.Data.ErrM ----
 import GF.Command.Abstract
@@ -37,6 +40,7 @@
 
 import GF.Data.Operations
 
+import Data.Binary (encodeFile)
 import Data.List
 import Data.Maybe
 import qualified Data.Map as Map
@@ -150,14 +154,15 @@
        "flag -format."
        ],
      exec = \opts es -> do
-         let grph = if null es then [] else graphvizAlignment pgf (head es)
+         let langs = optLangs opts
+         let grph = if null es then [] else graphvizAlignment pgf langs (head es)
          if isFlag "view" opts || isFlag "format" opts then do
            let file s = "_grph." ++ s
-           let view = optViewGraph opts ++ " "
+           let view = optViewGraph opts
            let format = optViewFormat opts 
-           writeFile (file "dot") grph
-           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format ++ 
-                    " ; " ++ view ++ file format
+           writeUTF8File (file "dot") grph
+           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format
+           system $ view ++ " " ++ file format
            return void
           else return $ fromString grph,
      examples = [
@@ -168,9 +173,32 @@
        ],
      flags = [
        ("format","format of the visualization file (default \"png\")"),
-       ("view","program to open the resulting file (default \"open\")")
+       ("lang", "alignments for this list of languages (default: all)"),
+       ("view",  "program to open the resulting file (default \"open\")")
        ] 
     }),
+ ("ga", emptyCommandInfo {
+     longname = "giza_alignment",
+     synopsis = "show the giza alignment between 2 languages",
+     explanation = unlines [
+       "Prints a set of alignments in the .txt format.",
+       "The graph can be saved in a file by the wf command as usual."
+       ],
+     exec = \opts es -> do
+         let giz = map (gizaAlignment pgf (head $ languages pgf, head $ tail $ languages pgf)) es
+         let lsrc = unlines $ map (\(x,_,_) -> x) giz
+         let ltrg = unlines $ map (\(_,x,_) -> x) giz
+         let align = unlines $ map (\(_,_,x) -> x) giz
+         let grph = if null es then [] else lsrc ++ "\n--end_source--\n\n"++ltrg++"\n-end_target--\n\n"++align
+         return $ fromString grph,
+     examples = [
+       "gr | ga              -- generate a tree and show giza alignments"
+       ],
+     options = [
+       ],
+     flags = [
+       ] 
+    }),
 
   ("cc", emptyCommandInfo {
      longname = "compute_concrete",
@@ -188,6 +216,8 @@
        ],
      options = [
        ("all","pick all strings (forms and variants) from records and tables"),
+       ("list","all strings, comma-separated on one line"),
+       ("one","pick the first strings, if there is any, from records and tables"),
        ("table","show all strings labelled by parameters"),
        ("unqual","hide qualifying module names")
        ],
@@ -270,6 +300,9 @@
        "gr and rt. Notice that the command doesn't change the environment,",
        "but the resulting .gf file must be imported separately."
        ],
+     options = [
+       ("api","convert trees to overloaded API expressions (using Syntax not Lang)")
+       ],
      flags = [
        ("file","the file to be converted (suffix .gfe must be given)"),
        ("lang","the language in which to parse"),
@@ -277,8 +310,9 @@
        ],
      exec = \opts _ -> do
        let file = optFile opts
-       mprobs <- optProbs opts pgf
-       let conf = configureExBased pgf (optMorpho opts) mprobs (optLang opts)
+       pgf <- optProbs opts pgf
+       let printer = if (isOpt "api" opts) then exprToAPI else (showExpr []) 
+       let conf = configureExBased pgf (optMorpho opts) (optLang opts) printer
        (file',ws) <- parseExamplesInGrammar conf file
        if null ws then return () else putStrLn ("unknown words: " ++ unwords ws)
        return (fromString ("wrote " ++ file')),
@@ -305,14 +339,16 @@
        ("cat","generation category"),
        ("lang","uses only functions that have linearizations in all these languages"),
        ("number","number of trees generated"),
+       ("depth","the maximum generation depth"),
        ("probs", "file with biased probabilities (format 'f 0.4' one by line)")
        ],
      exec = \opts xs -> do
-       let pgfr = optRestricted opts
+       pgf <- optProbs opts (optRestricted opts)
        gen <- newStdGen
-       mprobs <- optProbs opts pgfr
-       let mt = mexp xs
-       ts <- return $ generateRandomFrom mt mprobs gen pgfr (optType opts)
+       let dp = valIntOpts "depth" 4 opts
+       let ts  = case mexp xs of
+                   Just ex -> generateRandomFromDepth gen pgf ex (Just dp)
+                   Nothing -> generateRandomDepth     gen pgf (optType opts) (Just dp)
        returnFromExprs $ take (optNum opts) ts
      }),
   ("gt", emptyCommandInfo {
@@ -338,9 +374,10 @@
        ],
      exec = \opts xs -> do
        let pgfr = optRestricted opts
-       let dp = return $ valIntOpts "depth" 4 opts
-       let mt = mexp xs
-       let ts = generateAllDepth mt pgfr (optType opts) dp
+       let dp = valIntOpts "depth" 4 opts
+       let ts = case mexp xs of
+                  Just ex -> generateFromDepth pgfr ex (Just dp)
+                  Nothing -> generateAllDepth pgfr (optType opts) (Just dp)
        returnFromExprs $ take (optNumInf opts) ts
      }),
   ("h", emptyCommandInfo {
@@ -379,12 +416,18 @@
        "If a grammar with the same concrete name is already in the state",
        "it is overwritten - but only if compilation succeeds.",
        "The grammar parser depends on the file name suffix:",
+       "  .cf    context-free (labelled BNF) source",
+       "  .ebnf  extended BNF source",
+       "  .gfm   multi-module GF source",
        "  .gf    normal GF source",
        "  .gfo   compiled GF source",
        "  .pgf   precompiled grammar in Portable Grammar Format"
        ],
+     flags = [
+       ("probs","file with biased probabilities for generation")
+       ],
      options = [ 
-       -- ["prob", "retain", "gfo", "src", "no-cpu", "cpu", "quiet", "verbose"]
+       -- ["gfo", "src", "no-cpu", "cpu", "quiet", "verbose"]
        ("retain","retain operations (used for cc command)"),
        ("src",   "force compilation from source"),
        ("v",     "be verbose - show intermediate status information")
@@ -455,9 +498,9 @@
      exec = \opts xs -> do
          let lang = optLang opts
          let typ  = optType opts
-         mprobs <- optProbs opts pgf
+         pgf <- optProbs opts pgf
          let mt = mexp xs 
-         morphologyQuiz mt mprobs pgf lang typ
+         morphologyQuiz mt pgf lang typ
          return void,
      flags = [
        ("lang","language of the quiz"),
@@ -481,11 +524,15 @@
        "will accept unknown adjectives, nouns and verbs with the resource grammar."
        ],
      exec = \opts ts -> 
-              returnFromExprsPar opts ts $ concatMap (par opts) $ toStrings ts,
+              return $ fromParse opts (concat [map ((,) s) (par opts s) | s <- toStrings ts]),
      flags = [
        ("cat","target category of parsing"),
        ("lang","the languages of parsing (comma-separated, no spaces)"),
-       ("openclass","list of open-class categories for robust parsing")
+       ("openclass","list of open-class categories for robust parsing"),
+       ("depth","maximal depth for proof search if the abstract syntax tree has meta variables")
+       ],
+     options = [
+       ("bracket","prints the bracketed string from the parser")
        ]
      }),
   ("pg", emptyCommandInfo { -----
@@ -498,20 +545,33 @@
        "The -printer=P flag sets the format in which the grammar is printed.",
        "N.B.1 Since grammars are compiled when imported, this command",
        "generally shows a grammar that looks rather different from the source.",
-       "N.B.2 This command is slightly obsolete: to produce different formats",
-       "the batch compiler gfc is recommended, and has many more options."
-       ],
+       "N.B.2 Another way to produce different formats is to use 'gf -make',",
+       "the batch compiler. The following values are available both for",
+       "the batch compiler (flag -output-format) and the print_grammar",
+       "command (flag -printer):",
+       ""
+       ] ++ unlines (sort [
+        " " ++ opt ++ "\t\t" ++ expl | 
+           ((opt,_),expl) <- outputFormatsExpl, take 1 expl /= "*"
+       ]),
      exec  = \opts _ -> prGrammar opts,
      flags = [
        --"cat",
+       ("file",   "set the file name when printing with -pgf option"),
        ("lang",   "select languages for the some options (default all languages)"),
-       ("printer","select the printing format (see gfc --help)")
+       ("printer","select the printing format (see flag values above)")
        ],
      options = [
        ("cats",   "show just the names of abstract syntax categories"),
        ("fullform", "print the fullform lexicon"),
+       ("funs",   "show just the names and types of abstract syntax functions"),
        ("missing","show just the names of functions that have no linearization"),
+       ("opt",    "optimize the generated pgf"),
+       ("pgf",    "write current pgf image in file"),
        ("words", "print the list of words")
+       ],
+     examples = [
+       ("pg -funs | ? grep \" S ;\"  -- show functions with value cat S")
        ]
      }),
   ("ph", emptyCommandInfo {
@@ -626,9 +686,8 @@
        "'function probability', e.g. 'youPol_Pron  0.01'."
        ],
      exec = \opts ts -> do
-         mprobs <- optProbs opts pgf
-         let probs = maybe (defaultProbabilities pgf) id mprobs
-         let tds = rankTreesByProbs probs ts
+         pgf <- optProbs opts pgf
+         let tds = rankTreesByProbs pgf ts
          if isOpt "v" opts
            then putStrLn $ 
                   unlines [showExpr []  t ++ "\t--" ++ show d | (t,d) <- tds]
@@ -650,12 +709,12 @@
      syntax   = "tq -from=LANG -to=LANG (-cat=CAT)? (-probs=FILE)? TREE?",
      synopsis = "start a translation quiz",
      exec = \opts xs -> do
-         let from = valCIdOpts "from" (optLang opts) opts
-         let to   = valCIdOpts "to"   (optLang opts) opts
+         let from = optLangFlag "from" opts
+         let to   = optLangFlag "to" opts
          let typ  = optType opts
          let mt   = mexp xs
-         mprobs <- optProbs opts pgf
-         translationQuiz mt mprobs pgf from to typ
+         pgf <- optProbs opts pgf
+         translationQuiz mt pgf from to typ
          return void,
      flags = [
        ("from","translate from this language"),
@@ -735,11 +794,11 @@
          let grphs = unlines $ map (graphvizDependencyTree outp debug mlab Nothing pgf lang) es
          if isFlag "view" opts || isFlag "format" opts then do
            let file s = "_grphd." ++ s
-           let view = optViewGraph opts ++ " "
+           let view = optViewGraph opts
            let format = optViewFormat opts 
-           writeFile (file "dot") grphs
-           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format ++ 
-                    " ; " ++ view ++ file format
+           writeUTF8File (file "dot") grphs
+           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format
+           system $ view ++ " " ++ file format
            return void
           else return $ fromString grphs,
      examples = [
@@ -776,11 +835,11 @@
          let grph = if null es then [] else graphvizParseTree pgf lang (head es)
          if isFlag "view" opts || isFlag "format" opts then do
            let file s = "_grph." ++ s
-           let view = optViewGraph opts ++ " "
+           let view = optViewGraph opts
            let format = optViewFormat opts 
-           writeFile (file "dot") grph
-           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format ++ 
-                    " ; " ++ view ++ file format
+           writeUTF8File (file "dot") grph
+           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format
+           system $ view ++ " " ++ file format
            return void
           else return $ fromString grph,
      examples = [
@@ -810,17 +869,22 @@
      exec = \opts es ->
        if isOpt "mk" opts
        then return $ fromString $ unlines $ map (tree2mk pgf) es  
+       else if isOpt "api" opts
+       then do 
+         let ss = map exprToAPI es
+         mapM_ putStrLn ss
+         return void
        else do
          let funs = not (isOpt "nofun" opts)
          let cats = not (isOpt "nocat" opts)
          let grph = unlines (map (graphvizAbstractTree pgf (funs,cats)) es) -- True=digraph
          if isFlag "view" opts || isFlag "format" opts then do
            let file s = "_grph." ++ s
-           let view = optViewGraph opts ++ " "
+           let view = optViewGraph opts
            let format = optViewFormat opts 
-           writeFile (file "dot") grph
-           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format ++ 
-                    " ; " ++ view ++ file format
+           writeUTF8File (file "dot") grph
+           system $ "dot -T" ++ format ++ " " ++ file "dot" ++ " > " ++ file format
+           system $ view  ++ " " ++ file format
            return void
           else return $ fromString grph,
      examples = [
@@ -828,7 +892,8 @@
        "p \"hello\" | vt -view=\"open\" -- parse a string and display trees on a Mac"
        ],
      options = [
-       ("mk", "show the tree with function names converted to 'mkC' with value cats C"),
+       ("api", "show the tree with function names converted to 'mkC' with value cats C"),
+       ("mk",  "similar to -api, deprecated"),
        ("nofun","don't show functions but only categories"),
        ("nocat","don't show categories but only functions")
        ],
@@ -844,7 +909,7 @@
          let file = valStrOpts "file" "_gftmp" opts
          if isOpt "append" opts 
            then appendFile file (toString arg)
-           else writeFile file (toString arg)
+           else writeUTF8File file (toString arg)
          return void,
      options = [
        ("append","append to file, instead of overwriting it")
@@ -866,21 +931,24 @@
      exec = \opts arg -> do
        case arg of
          [EFun id] -> case Map.lookup id (funs (abstract pgf)) of
-                        Just fd -> return $ fromString $
-                                      render (ppFun id fd)
+                        Just fd -> do putStrLn $ render (ppFun id fd)
+                                      putStrLn ("Probability: "++show (probTree pgf (EFun id)))
+                                      return void
                         Nothing -> case Map.lookup id (cats (abstract pgf)) of
-                                     Just hyps -> do return $ fromString $
+                                     Just hyps -> do putStrLn $
                                                         render (ppCat id hyps $$
                                                                 if null (functionsToCat pgf id)
                                                                   then empty
                                                                   else space $$
-                                                                       vcat [ppFun fid (ty,0,Just []) | (fid,ty) <- functionsToCat pgf id])
+                                                                       vcat [ppFun fid (ty,0,Just [],0) | (fid,ty) <- functionsToCat pgf id])
+                                                     return void
                                      Nothing   -> do putStrLn ("unknown category of function identifier "++show id)
                                                      return void
          [e]         -> case inferExpr pgf e of
                           Left tcErr   -> error $ render (ppTcError tcErr)
-                          Right (e,ty) -> do putStrLn ("Expression: "++showExpr [] e)
-                                             putStrLn ("Type:       "++showType [] ty)
+                          Right (e,ty) -> do putStrLn ("Expression:  "++showExpr [] e)
+                                             putStrLn ("Type:        "++showType [] ty)
+                                             putStrLn ("Probability: "++show (probTree pgf e))
                                              return void
          _           -> do putStrLn "a single identifier or expression is expected from the command"
                            return void,
@@ -889,8 +957,10 @@
   ]
  where
    par opts s = case optOpenTypes opts of
-                  []        -> concat  [parse pgf lang (optType opts) s | lang <- optLangs opts]
-                  open_typs -> concat  [parseWithRecovery pgf lang (optType opts) open_typs s | lang <- optLangs opts]
+                  []        -> [parse_ pgf lang (optType opts) (Just dp) s | lang <- optLangs opts]
+                  open_typs -> [parseWithRecovery pgf lang (optType opts) open_typs (Just dp) s | lang <- optLangs opts]
+     where
+       dp = valIntOpts "depth" 4 opts
  
    void = ([],[])
 
@@ -914,9 +984,17 @@
                                    map (map (unl . snd)) . tabularLinearizes pgf lang
        _ | isOpt "table"   opts -> unlines . concat . intersperse [[]] . 
                     map (map (\(p,v) -> p+++":"+++unl v)) . tabularLinearizes pgf lang
-       _ | isOpt "bracket" opts -> unlines . markLinearizes pgf lang
+       _ | isOpt "bracket" opts -> showBracketedString . bracketedLinearize pgf lang
        _                        -> unl . linearize pgf lang
 
+   -- replace each non-atomic constructor with mkC, where C is the val cat
+   tree2mk pgf = showExpr [] . tree2expr . t2m . expr2tree where
+     t2m t = case t of
+       Fun cid [] -> t
+       Fun cid ts -> Fun (mk cid) (map t2m ts)
+       _ -> t
+     mk = mkCId . ("mk" ++) . showCId . lookValCat (abstract pgf)
+
    unlex opts lang = stringOps Nothing (getUnlex opts lang ++ map prOpt opts) ----
 
    getUnlex opts lang = case words (valStrOpts "unlexer" "" opts) of
@@ -944,7 +1022,10 @@
    optRestricted opts = 
      restrictPGF (\f -> and [hasLin pgf la f | la <- optLangs opts]) pgf
 
-   optLangs opts = case valStrOpts "lang" "" opts of
+   optLang  = optLangFlag "lang"
+   optLangs = optLangsFlag "lang"
+
+   optLangsFlag f opts = case valStrOpts f "" opts of
      "" -> languages pgf
      lang -> map completeLang (chunks ',' lang)
    completeLang la = let cla = (mkCId la) in
@@ -952,18 +1033,17 @@
        then cla 
        else (mkCId (showCId (abstractName pgf) ++ la))
 
-   optLang opts = head $ optLangs opts ++ [wildCId]
+   optLangFlag f opts = head $ optLangsFlag f opts ++ [wildCId]
 
    optOpenTypes opts = case valStrOpts "openclass" "" opts of
      ""   -> []
      cats -> mapMaybe readType (chunks ',' cats)
 
-   optProbs opts pgfr = case valStrOpts "probs" "" opts of
-     ""   -> return Nothing
+   optProbs opts pgf = case valStrOpts "probs" "" opts of
+     ""   -> return pgf
      file -> do
-       ps <- getProbsFromFile file pgf ---- pgfr!
---       putStrLn $ prProbabilities ps 
-       return $ Just ps
+       probs <- readProbabilitiesFromFile file pgf
+       return (setProbabilities probs pgf)
 
    optFile opts = valStrOpts "file" "_gftmp" opts
 
@@ -973,7 +1053,7 @@
           Just ty -> case checkType pgf ty of
                        Left tcErr -> error $ render (ppTcError tcErr)
                        Right ty   -> ty
-          Nothing -> error ("Can't parse '"++str++"' as type")
+          Nothing -> error ("Can't parse '"++str++"' as a type")
    optComm opts = valStrOpts "command" "" opts
    optViewFormat opts = valStrOpts "format" "png" opts
    optViewGraph opts = valStrOpts "view" "open" opts
@@ -987,17 +1067,35 @@
    toStrings = map showAsString 
    toString = unwords . toStrings
 
+   fromParse opts []     = ([],"")
+   fromParse opts ((s,(po,bs)):ps)
+     | isOpt "bracket" opts = (es, showBracketedString bs
+                                   ++ "\n" ++ msg)
+     | otherwise            = case po of
+                                ParseOk ts     -> let (es',msg') = fromExprs ts
+                                                  in (es'++es,msg'++msg)
+                                TypeError errs -> ([], render (text "The parsing is successful but the type checking failed with error(s):" $$ 
+                                                               nest 2 (vcat (map (ppTcError . snd) errs)))
+                                                       ++ "\n" ++ msg)
+                                ParseFailed i  -> ([], "The parser failed at token " ++ show (words s !! max 0 (i-1))
+                                                       ++ "\n" ++ msg)
+                                ParseIncomplete-> ([], "The sentence is not complete")
+     where
+       (es,msg) = fromParse opts ps
+
    returnFromExprs es = return $ case es of
      [] -> ([], "no trees found")
      _  -> fromExprs es
-   returnFromExprsPar opts ts es = return $ case es of
-     [] -> ([], "no trees found" ++ 
-                missingWordMsg (optMorpho opts) (concatMap words (toStrings ts))
-            )
-     _  -> fromExprs es
 
    prGrammar opts
+     | isOpt "pgf"      opts = do
+          let pgf1 = if isOpt "opt" opts then optimizePGF pgf else pgf
+          let outfile = valStrOpts "file" (showCId (abstractName pgf) ++ ".pgf") opts 
+          encodeFile outfile pgf1
+          putStrLn $ "wrote file " ++ outfile
+          return void
      | isOpt "cats"     opts = return $ fromString $ unwords $ map showCId $ categories pgf
+     | isOpt "funs"     opts = return $ fromString $ unlines $ map showFun $ funsigs pgf
      | isOpt "fullform" opts = return $ fromString $ concatMap (morpho "" prFullFormLexicon) $ optLangs opts
      | isOpt "missing"  opts = return $ fromString $ unlines $ [unwords (showCId la:":": map showCId cs) | 
                                                                   la <- optLangs opts, let cs = missingLins pgf la]
@@ -1005,6 +1103,9 @@
      | otherwise             = do fmt <- readOutputFormat (valStrOpts "printer" "pgf_pretty" opts)
                                   return $ fromString $ concatMap snd $ exportPGF noOptions fmt pgf
 
+   funsigs pgf = [(f,ty) | (f,(ty,_,_,_)) <- Map.assocs (funs (abstract pgf))]
+   showFun (f,ty) = showCId f ++ " : " ++ showType [] ty ++ " ;"
+
    morphos opts s = 
      [(s,morpho [] (\mo -> lookupMorpho mo s) la) | la <- optLangs opts]
 
@@ -1060,16 +1161,14 @@
 treeOpOptions pgf = [(op,expl) | (op,(expl,Left  _)) <- allTreeOps pgf]
 treeOpFlags   pgf = [(op,expl) | (op,(expl,Right _)) <- allTreeOps pgf]
 
-translationQuiz :: Maybe Expr -> Maybe Probabilities ->
-                   PGF -> Language -> Language -> Type -> IO ()
-translationQuiz mex mprobs pgf ig og typ = do
-  tts <- translationList mex mprobs pgf ig og typ infinity
+translationQuiz :: Maybe Expr -> PGF -> Language -> Language -> Type -> IO ()
+translationQuiz mex pgf ig og typ = do
+  tts <- translationList mex pgf ig og typ infinity
   mkQuiz "Welcome to GF Translation Quiz." tts
 
-morphologyQuiz :: Maybe Expr -> Maybe Probabilities -> 
-                  PGF -> Language -> Type -> IO ()
-morphologyQuiz mex mprobs pgf ig typ = do
-  tts <- morphologyList mex mprobs pgf ig typ infinity
+morphologyQuiz :: Maybe Expr -> PGF -> Language -> Type -> IO ()
+morphologyQuiz mex pgf ig typ = do
+  tts <- morphologyList mex pgf ig typ infinity
   mkQuiz "Welcome to GF Morphology Quiz." tts
 
 -- | the maximal number of precompiled quiz problems
diff --git a/src/compiler/GF/Command/Importing.hs b/src/compiler/GF/Command/Importing.hs
--- a/src/compiler/GF/Command/Importing.hs
+++ b/src/compiler/GF/Command/Importing.hs
@@ -4,13 +4,16 @@
 import PGF.Data
 
 import GF.Compile
-import GF.Grammar.Grammar (SourceGrammar) -- for cc command
+import GF.Compile.Multi (readMulti)
+import GF.Grammar (identC, SourceGrammar) -- for cc command
 import GF.Grammar.CF
+import GF.Grammar.EBNF
 import GF.Infra.UseIO
 import GF.Infra.Option
 import GF.Data.ErrM
 
 import Data.List (nubBy)
+import qualified Data.ByteString.Char8 as BS
 import System.FilePath
 
 -- import a grammar in an environment where it extends an existing grammar
@@ -18,17 +21,12 @@
 importGrammar pgf0 _ [] = return pgf0
 importGrammar pgf0 opts files =
   case takeExtensions (last files) of
-    ".cf" -> do
-       s  <- fmap unlines $ mapM readFile files 
-       let cnc = justModuleName (last files)
-       gf <- case getCF cnc s of
-               Ok g -> return g
-               Bad s -> error s ---- 
-       Ok gr <- appIOE $ compileSourceGrammar opts gf
-       epgf <- appIOE $ link opts (cnc ++ "Abs") gr
-       case epgf of
-         Ok pgf -> return pgf
-         Bad s -> error s ----
+    ".cf"   -> importCF opts files getCF
+    ".ebnf" -> importCF opts files getEBNF
+    ".gfm"  -> do
+      ascss <- mapM readMulti files
+      let cs = concatMap snd ascss
+      importGrammar pgf0 opts cs
     s | elem s [".gf",".gfo"] -> do
       res <- appIOE $ compileToPGF opts files
       case res of
@@ -48,3 +46,16 @@
     Bad msg -> do 
       putStrLn msg
       return src0
+
+-- for different cf formats
+importCF opts files get = do
+       s  <- fmap unlines $ mapM readFile files 
+       let cnc = justModuleName (last files)
+       gf <- case get cnc s of
+               Ok g -> return g
+               Bad s -> error s ---- 
+       Ok gr <- appIOE $ compileSourceGrammar opts gf
+       epgf <- appIOE $ link opts (identC (BS.pack (cnc ++ "Abs"))) gr
+       case epgf of
+         Ok pgf -> return pgf
+         Bad s -> error s ----
diff --git a/src/compiler/GF/Command/Messages.hs b/src/compiler/GF/Command/Messages.hs
--- a/src/compiler/GF/Command/Messages.hs
+++ b/src/compiler/GF/Command/Messages.hs
@@ -3,10 +3,14 @@
 licenseMsg = unlines [
  "Copyright (c)", 
  "Krasimir Angelov, Bj\246rn Bringert, H\229kan Burden, Hans-Joachim Daniels,",
- "Markus Forsberg, Thomas Hallgren, Harald Hammarstr\246m, Kristofer Johannisson,",
- "Janna Khegai, Peter Ljungl\246f, Petri M\228enp\228\228, and", 
- "Aarne Ranta, 1998-2008, under GNU General Public License (GPL)",
- "see LICENSE in GF distribution, or http://www.gnu.org/licenses/gpl.html."
+ "Ramona Enache, Markus Forsberg, Thomas Hallgren, Harald Hammarstr\246m,",
+ "Kristofer Johannisson, Janna Khegai, Peter Ljungl\246f, Petri M\228enp\228\228, and", 
+ "Aarne Ranta, 1998-2010.",
+ "",
+ "The compiler is under GNU General Public License (GPL)",
+ "while all Haskell and most GF libraries that come with the distribution are",
+ "under dual GNU Lesser General Public License (LGPL) and BSD License,",
+ "see LICENSE in the GF source distribution for details."
  ]
 
 codingMsg = unlines [
diff --git a/src/compiler/GF/Compile.hs b/src/compiler/GF/Compile.hs
--- a/src/compiler/GF/Compile.hs
+++ b/src/compiler/GF/Compile.hs
@@ -35,12 +35,14 @@
 import Data.List(nub)
 import Data.Maybe (isNothing)
 import Data.Binary
+import qualified Data.ByteString.Char8 as BS
 import Text.PrettyPrint
 
-import PGF.Check
 import PGF.CId
 import PGF.Data
 import PGF.Macros
+import PGF.Optimize
+import PGF.Probabilistic
 
 
 -- | Compiles a number of source files and builds a 'PGF' structure for them.
@@ -48,20 +50,17 @@
 compileToPGF opts fs =
     do gr <- batchCompile opts fs
        let name = justModuleName (last fs)
-       link opts name gr
+       link opts (identC (BS.pack name)) gr
 
-link :: Options -> String -> SourceGrammar -> IOE PGF
+link :: Options -> Ident -> SourceGrammar -> IOE PGF
 link opts cnc gr = do
   let isv = (verbAtLeast opts Normal)
   putPointE Normal opts "linking ... " $ do
-    gc0 <- ioeIO (mkCanon2pgf opts cnc gr)
-    case checkPGF gc0 of
-      Ok (gc,b) -> do case (isv,b) of
-                        (True, True) -> ioeIO $ putStrLn "OK" 
-                        (False,True) -> return ()
-                        _            -> ioeIO $ putStrLn $ "Corrupted PGF"
-                      return gc
-      Bad s     -> fail s
+    pgf <- ioeIO (mkCanon2pgf opts cnc gr)
+    probs <- ioeIO (maybe (return . defaultProbabilities) readProbabilitiesFromFile (flag optProbsFile opts) pgf)
+    ioeIO $ when (verbAtLeast opts Normal) $ putStrFlush "OK"     
+    return $ setProbabilities probs 
+           $ if flag optOptimizePGF opts then optimizePGF pgf else pgf
 
 batchCompile :: Options -> [FilePath] -> IOE SourceGrammar
 batchCompile opts files = do
diff --git a/src/compiler/GF/Compile/Abstract/Compute.hs b/src/compiler/GF/Compile/Abstract/Compute.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Abstract/Compute.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module      : GF.Compile.Abstract.Compute
--- Maintainer  : AR
--- Stability   : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/10/02 20:50:19 $ 
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.8 $
---
--- computation in abstract syntax w.r.t. explicit definitions.
---
--- old GF computation; to be updated
------------------------------------------------------------------------------
-
-module GF.Compile.Abstract.Compute (LookDef,
-		   compute, 
-		   computeAbsTerm, 
-		   computeAbsTermIn, 
-		   beta
-		  ) where
-
-import GF.Data.Operations
-
-import GF.Grammar
-import GF.Grammar.Lookup
-
-import Debug.Trace
-import Data.List(intersperse)
-import Control.Monad (liftM, liftM2)
-import Text.PrettyPrint
-
--- for debugging
-tracd m t = t 
--- tracd = trace
-
-compute :: SourceGrammar -> Exp -> Err Exp
-compute = computeAbsTerm
-
-computeAbsTerm :: SourceGrammar -> Exp -> Err Exp
-computeAbsTerm gr = computeAbsTermIn (lookupAbsDef gr) []
-
--- | a hack to make compute work on source grammar as well
-type LookDef = Ident -> Ident -> Err (Maybe Int,Maybe [Equation])
-
-computeAbsTermIn :: LookDef -> [Ident] -> Exp -> Err Exp
-computeAbsTermIn lookd xs e = errIn (render (text "computing" <+> ppTerm Unqualified 0 e)) $ compt xs e where
-  compt vv t = case t of
---    Prod x a b  -> liftM2 (Prod x) (compt vv a) (compt (x:vv) b)
---    Abs x b     -> liftM  (Abs  x)              (compt (x:vv) b)
-    _ -> do
-      let t' = beta vv t
-      (yy,f,aa) <- termForm t'
-      let vv' = map snd yy ++ vv
-      aa'    <- mapM (compt vv') aa
-      case look f of
-        Just eqs -> tracd (text "\nmatching" <+> ppTerm Unqualified 0 f) $ 
-                          case findMatch eqs aa' of
-          Ok (d,g) -> do
-            --- let (xs,ts) = unzip g
-            --- ts' <- alphaFreshAll vv' ts
-            let g' = g --- zip xs ts'
-            d' <- compt vv' $ substTerm vv' g' d
-            tracd (text "by Egs:" <+> ppTerm Unqualified 0 d') $ return $ mkAbs yy $ d'
-          _ -> tracd (text "no match" <+> ppTerm Unqualified 0 t') $ 
-               do
-            let v = mkApp f aa'
-            return $ mkAbs yy $ v
-        _ -> do
-          let t2 = mkAbs yy $ mkApp f aa'
-          tracd (text "not defined" <+> ppTerm Unqualified 0 t2) $ return t2
-
-  look t = case t of
-     (Q m f) -> case lookd m f of
-       Ok (_,md) -> md
-       _ -> Nothing
-     _ -> Nothing
-
-beta :: [Ident] -> Exp -> Exp
-beta vv c = case c of
-  Let (x,(_,a)) b -> beta vv $ substTerm vv [(x,beta vv a)] (beta (x:vv) b) 
-  App f         a -> 
-    let (a',f') = (beta vv a, beta vv f) in 
-    case f' of
-      Abs _ x b -> beta vv $ substTerm vv [(x,a')] (beta (x:vv) b) 
-      _ ->               (if a'==a && f'==f then id else beta vv) $ App f' a'
-  Prod b x a t      -> Prod b x (beta vv a) (beta (x:vv) t)
-  Abs b x t       -> Abs b x (beta (x:vv) t)
-  _               -> c
-
--- special version of pattern matching, to deal with comp under lambda
-
-findMatch :: [([Patt],Term)] -> [Term] -> Err (Term, Substitution)
-findMatch cases terms = case cases of
-  [] -> Bad $ render (text "no applicable case for" <+> hcat (punctuate comma (map (ppTerm Unqualified 0) terms)))
-  (patts,_):_ | length patts /= length terms -> 
-       Bad (render (text "wrong number of args for patterns :" <+> 
-                    hsep (map (ppPatt Unqualified 0) patts) <+> text "cannot take" <+> hsep (map (ppTerm Unqualified 0) terms)))
-  (patts,val):cc -> case mapM tryMatch (zip patts terms) of
-     Ok substs -> return (tracd (text "value" <+> ppTerm Unqualified 0 val) val, concat substs)
-     _         -> findMatch cc terms
-
-tryMatch :: (Patt, Term) -> Err [(Ident, Term)]
-tryMatch (p,t) = do 
-  t' <- termForm t
-  trym p t'
- where
-
-  trym p t' = err (\s -> tracd s (Bad s)) (\t -> tracd (prtm p t) (return t)) $ ---- 
-              case (p,t') of
-    (PW,    _) | notMeta t -> return [] -- optimization with wildcard
-    (PV x,  _) | notMeta t -> return [(x,t)]
-    (PString s, ([],K i,[])) | s==i -> return []
-    (PInt s, ([],EInt i,[])) | s==i -> return []
-    (PFloat s,([],EFloat i,[])) | s==i -> return [] --- rounding?
-    (PP q p pp, ([], QC r f, tt)) | 
-       p `eqStrIdent` f && length pp == length tt -> do
-         matches <- mapM tryMatch (zip pp tt)
-         return (concat matches)
-    (PP q p pp, ([], Q r f, tt)) | 
-       p `eqStrIdent` f && length pp == length tt -> do
-         matches <- mapM tryMatch (zip pp tt)
-         return (concat matches)
-    (PT _ p',_) -> trym p' t'
-    (PAs x p',_) -> do
-       subst <- trym p' t'
-       return $ (x,t) : subst
-    _ -> Bad (render (text "no match in pattern" <+> ppPatt Unqualified 0 p <+> text "for" <+> ppTerm Unqualified 0 t))
-
-  notMeta e = case e of
-    Meta _  -> False
-    App f a -> notMeta f &&  notMeta a  
-    Abs _ _ b -> notMeta b
-    _ -> True
-
-  prtm p g = 
-    ppPatt Unqualified 0 p <+> colon $$ hsep (punctuate semi [ppIdent x <+> char '=' <+> ppTerm Unqualified 0 y | (x,y) <- g])
diff --git a/src/compiler/GF/Compile/Abstract/TC.hs b/src/compiler/GF/Compile/Abstract/TC.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Abstract/TC.hs
+++ /dev/null
@@ -1,297 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module      : TC
--- Maintainer  : AR
--- Stability   : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/10/02 20:50:19 $ 
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.11 $
---
--- Thierry Coquand's type checking algorithm that creates a trace
------------------------------------------------------------------------------
-
-module GF.Compile.Abstract.TC (AExp(..),
-	   Theory,
-	   checkExp,
-	   inferExp,
-	   checkBranch,
-	   eqVal,
-	   whnf
-	  ) where
-
-import GF.Data.Operations
-import GF.Grammar
-import GF.Grammar.Predef
-
-import Control.Monad
-import Data.List (sortBy)
-import Data.Maybe
-import Text.PrettyPrint
-
-data AExp =
-     AVr   Ident Val 
-   | ACn   QIdent Val
-   | AType 
-   | AInt  Integer 
-   | AFloat Double
-   | AStr  String
-   | AMeta MetaId Val
-   | AApp  AExp AExp Val 
-   | AAbs  Ident Val AExp 
-   | AProd Ident AExp AExp 
-   | AEqs  [([Exp],AExp)] --- not used
-   | ARecType [ALabelling]
-   | AR    [AAssign]
-   | AP    AExp Label Val
-   | AData Val
-  deriving (Eq,Show)
-
-type ALabelling = (Label, AExp) 
-type AAssign = (Label, (Val, AExp))
-
-type Theory = QIdent -> Err Val
-
-lookupConst :: Theory -> QIdent -> Err Val
-lookupConst th f = th f
-
-lookupVar :: Env -> Ident -> Err Val
-lookupVar g x = maybe (Bad (render (text "unknown variable" <+> ppIdent x))) return $ lookup x ((IW,uVal):g)
--- wild card IW: no error produced, ?0 instead.
-
-type TCEnv = (Int,Env,Env)
-
-emptyTCEnv :: TCEnv
-emptyTCEnv = (0,[],[])
-
-whnf :: Val -> Err Val
-whnf v = ---- errIn ("whnf" +++ prt v) $ ---- debug
-         case v of
-  VApp u w -> do
-    u' <- whnf u 
-    w' <- whnf w
-    app u' w'
-  VClos env e -> eval env e
-  _ -> return v
-
-app :: Val -> Val -> Err Val
-app u v = case u of
-  VClos env (Abs _ x e) -> eval ((x,v):env) e
-  _ -> return $ VApp u v
-  
-eval :: Env -> Exp -> Err Val
-eval env e = ---- errIn ("eval" +++ prt e +++ "in" +++ prEnv env) $ 
-             case e of
-  Vr x    -> lookupVar env x
-  Q m c   -> return $ VCn (m,c)
-  QC m c  -> return $ VCn (m,c) ---- == Q ?
-  Sort c  -> return $ VType --- the only sort is Type
-  App f a -> join $ liftM2 app (eval env f) (eval env a)
-  RecType xs -> do xs <- mapM (\(l,e) -> eval env e >>= \e -> return (l,e)) xs
-                   return (VRecType xs)
-  _ -> return $ VClos env e
-
-eqVal :: Int -> Val -> Val -> Err [(Val,Val)]
-eqVal k u1 u2 = ---- errIn (prt u1 +++ "<>" +++ prBracket (show k) +++ prt u2) $ 
-                do
-  w1 <- whnf u1
-  w2 <- whnf u2 
-  let v = VGen k
-  case (w1,w2) of
-    (VApp f1 a1, VApp f2 a2) -> liftM2 (++) (eqVal k f1 f2) (eqVal k a1 a2)
-    (VClos env1 (Abs _ x1 e1), VClos env2 (Abs _ x2 e2)) ->
-      eqVal (k+1) (VClos ((x1,v x1):env1) e1) (VClos ((x2,v x1):env2) e2)
-    (VClos env1 (Prod _ x1 a1 e1), VClos env2 (Prod _ x2 a2 e2)) ->
-      liftM2 (++) 
-        (eqVal k     (VClos            env1  a1) (VClos            env2  a2))
-        (eqVal (k+1) (VClos ((x1,v x1):env1) e1) (VClos ((x2,v x1):env2) e2))
-    (VGen i _, VGen j _) -> return [(w1,w2) | i /= j]
-    (VCn (_, i), VCn (_,j)) -> return [(w1,w2) | i /= j] 
-    --- thus ignore qualifications; valid because inheritance cannot
-    --- be qualified. Simplifies annotation. AR 17/3/2005 
-    _ -> return [(w1,w2) | w1 /= w2]
--- invariant: constraints are in whnf
-
-checkType :: Theory -> TCEnv -> Exp -> Err (AExp,[(Val,Val)])
-checkType th tenv e = checkExp th tenv e vType
-
-checkExp :: Theory -> TCEnv -> Exp -> Val -> Err (AExp, [(Val,Val)])
-checkExp th tenv@(k,rho,gamma) e ty = do
-  typ <- whnf ty
-  let v = VGen k
-  case e of
-    Meta m -> return $ (AMeta m typ,[])
-
-    Abs _ x t -> case typ of
-      VClos env (Prod _ y a b) -> do
-	a' <- whnf $ VClos env a ---
-	(t',cs) <- checkExp th 
-                           (k+1,(x,v x):rho, (x,a'):gamma) t (VClos ((y,v x):env) b)
-	return (AAbs x a' t', cs)
-      _ -> Bad (render (text "function type expected for" <+> ppTerm Unqualified 0 e <+> text "instead of" <+> ppValue Unqualified 0 typ))
-
-    Prod _ x a b -> do
-      testErr (typ == vType) "expected Type"
-      (a',csa) <- checkType th tenv a
-      (b',csb) <- checkType th (k+1, (x,v x):rho, (x,VClos rho a):gamma) b
-      return (AProd x a' b', csa ++ csb)
-
-    R xs -> 
-      case typ of
-        VRecType ys -> do case [l | (l,_) <- ys, isNothing (lookup l xs)] of
-                            [] -> return ()
-                            ls -> fail (render (text "no value given for label:" <+> fsep (punctuate comma (map ppLabel ls))))
-                          r <- mapM (checkAssign th tenv ys) xs
-                          let (xs,css) = unzip r
-                          return (AR xs, concat css)
-        _           -> Bad (render (text "record type expected for" <+> ppTerm Unqualified 0 e <+> text "instead of" <+> ppValue Unqualified 0 typ))
-
-    P r l -> do (r',cs) <- checkExp th tenv r (VRecType [(l,typ)])
-                return (AP r' l typ,cs)
-
-    _ -> checkInferExp th tenv e typ
-
-checkInferExp :: Theory -> TCEnv -> Exp -> Val -> Err (AExp, [(Val,Val)])
-checkInferExp th tenv@(k,_,_) e typ = do
-  (e',w,cs1) <- inferExp th tenv e
-  cs2 <- eqVal k w typ
-  return (e',cs1 ++ cs2)
-      
-inferExp :: Theory -> TCEnv -> Exp -> Err (AExp, Val, [(Val,Val)])
-inferExp th tenv@(k,rho,gamma) e = case e of
-   Vr x -> mkAnnot (AVr x) $ noConstr $ lookupVar gamma x
-   Q m c | m == cPredefAbs && isPredefCat c
-                     -> return (ACn (m,c) vType, vType, [])
-         | otherwise -> mkAnnot (ACn (m,c)) $ noConstr $ lookupConst th (m,c)
-   QC m c -> mkAnnot (ACn (m,c)) $ noConstr $ lookupConst th (m,c) ----
-   EInt i -> return (AInt i, valAbsInt, [])
-   EFloat i -> return (AFloat i, valAbsFloat, [])
-   K i -> return (AStr i, valAbsString, [])
-   Sort _ -> return (AType, vType, [])
-   RecType xs -> do r <- mapM (checkLabelling th tenv) xs
-                    let (xs,css) = unzip r
-                    return (ARecType xs, vType, concat css)
-   App f t -> do
-    (f',w,csf) <- inferExp th tenv f 
-    typ <- whnf w
-    case typ of
-      VClos env (Prod _ x a b) -> do
-        (a',csa) <- checkExp th tenv t (VClos env a)
-	b' <- whnf $ VClos ((x,VClos rho t):env) b
-	return $ (AApp f' a' b', b', csf ++ csa)
-      _ -> Bad (render (text "Prod expected for function" <+> ppTerm Unqualified 0 f <+> text "instead of" <+> ppValue Unqualified 0 typ))
-   _ -> Bad (render (text "cannot infer type of expression" <+> ppTerm Unqualified 0 e))
-
-checkLabelling :: Theory -> TCEnv -> Labelling -> Err (ALabelling, [(Val,Val)])
-checkLabelling th tenv (lbl,typ) = do
-  (atyp,cs) <- checkType th tenv typ
-  return ((lbl,atyp),cs)
-
-checkAssign :: Theory -> TCEnv -> [(Label,Val)] -> Assign -> Err (AAssign, [(Val,Val)])
-checkAssign th tenv@(k,rho,gamma) typs (lbl,(Just typ,exp)) = do
-  (atyp,cs1) <- checkType th tenv typ
-  val <- eval rho typ
-  cs2 <- case lookup lbl typs of
-           Nothing   -> return []
-           Just val0 -> eqVal k val val0
-  (aexp,cs3) <- checkExp th tenv exp val
-  return ((lbl,(val,aexp)),cs1++cs2++cs3)
-checkAssign th tenv@(k,rho,gamma) typs (lbl,(Nothing,exp)) = do
-  case lookup lbl typs of
-    Nothing  -> do (aexp,val,cs) <- inferExp th tenv exp
-                   return ((lbl,(val,aexp)),cs)
-    Just val -> do (aexp,cs) <- checkExp th tenv exp val
-                   return ((lbl,(val,aexp)),cs)
-
-checkBranch :: Theory -> TCEnv -> Equation -> Val -> Err (([Exp],AExp),[(Val,Val)])
-checkBranch th tenv b@(ps,t) ty = errIn ("branch" +++ show b) $ 
-                                  chB tenv' ps' ty 
- where 
-
-  (ps',_,rho2,k') = ps2ts k ps
-  tenv' = (k, rho2++rho, gamma) ---- k' ?
-  (k,rho,gamma) = tenv
-
-  chB tenv@(k,rho,gamma) ps ty = case ps of
-    p:ps2 -> do
-      typ <- whnf ty
-      case typ of
-        VClos env (Prod _ y a b) -> do
-	  a' <- whnf $ VClos env a
-          (p', sigma, binds, cs1) <- checkP tenv p y a'
-          let tenv' = (length binds, sigma ++ rho, binds ++ gamma)
-          ((ps',exp),cs2) <- chB tenv' ps2 (VClos ((y,p'):env) b)
-	  return ((p:ps',exp), cs1 ++ cs2) -- don't change the patt
-        _ -> Bad (render (text "Product expected for definiens" <+> ppTerm Unqualified 0 t <+> text "instead of" <+> ppValue Unqualified 0 typ))
-    [] -> do
-      (e,cs) <- checkExp th tenv t ty
-      return (([],e),cs)
-  checkP env@(k,rho,gamma) t x a = do
-     (delta,cs) <- checkPatt th env t a
-     let sigma = [(x, VGen i x) | ((x,_),i) <- zip delta [k..]]
-     return (VClos sigma t, sigma, delta, cs)
-
-  ps2ts k = foldr p2t ([],0,[],k) 
-  p2t p (ps,i,g,k) = case p of
-     PW      -> (Meta i : ps, i+1,g,k) 
-     PV x    -> (Vr x   : ps, i, upd x k g,k+1)
-     PAs x p -> p2t p (ps,i,g,k)
-     PString s -> (K s : ps, i, g, k)
-     PInt n -> (EInt n : ps, i, g, k)
-     PFloat n -> (EFloat n : ps, i, g, k)
-     PP m c xs -> (mkApp (Q m c) xss : ps, j, g',k') 
-                    where (xss,j,g',k') = foldr p2t ([],i,g,k) xs
-     PImplArg p -> p2t p (ps,i,g,k)
-     PTilde t -> (t : ps, i, g, k)
-     _ -> error $ render (text "undefined p2t case" <+> ppPatt Unqualified 0 p <+> text "in checkBranch")
-
-  upd x k g = (x, VGen k x) : g --- hack to recognize pattern variables
-
-
-checkPatt :: Theory -> TCEnv -> Exp -> Val -> Err (Binds,[(Val,Val)])
-checkPatt th tenv exp val = do
-  (aexp,_,cs) <- checkExpP tenv exp val
-  let binds = extrBinds aexp
-  return (binds,cs)
- where
-   extrBinds aexp = case aexp of
-     AVr i v    -> [(i,v)]
-     AApp f a _ -> extrBinds f ++ extrBinds a
-     _ -> [] -- no other cases are possible
-
---- ad hoc, to find types of variables
-   checkExpP tenv@(k,rho,gamma) exp val = case exp of
-     Meta m -> return $ (AMeta m val, val, [])
-     Vr x   -> return $ (AVr   x val, val, [])
-     EInt i -> return (AInt i, valAbsInt, [])
-     EFloat i -> return (AFloat i, valAbsFloat, [])
-     K s    -> return (AStr s, valAbsString, [])
-
-     Q m c  -> do
-       typ <- lookupConst th (m,c)
-       return $ (ACn (m,c) typ, typ, [])
-     QC m c  -> do
-       typ <- lookupConst th (m,c)
-       return $ (ACn (m,c) typ, typ, []) ----
-     App f t -> do
-       (f',w,csf) <- checkExpP tenv f val
-       typ <- whnf w
-       case typ of
-         VClos env (Prod _ x a b) -> do
-           (a',_,csa) <- checkExpP tenv t (VClos env a)
-	   b' <- whnf $ VClos ((x,VClos rho t):env) b
-	   return $ (AApp f' a' b', b', csf ++ csa)
-         _ -> Bad (render (text "Prod expected for function" <+> ppTerm Unqualified 0 f <+> text "instead of" <+> ppValue Unqualified 0 typ))
-     _ -> Bad (render (text "cannot typecheck pattern" <+> ppTerm Unqualified 0 exp))
-
--- auxiliaries
-
-noConstr :: Err Val -> Err (Val,[(Val,Val)])
-noConstr er = er >>= (\v -> return (v,[]))
-
-mkAnnot :: (Val -> AExp) -> Err (Val,[(Val,Val)]) -> Err (AExp,Val,[(Val,Val)])
-mkAnnot a ti = do
-  (v,cs) <- ti
-  return (a v, v, cs)
-
diff --git a/src/compiler/GF/Compile/Abstract/TypeCheck.hs b/src/compiler/GF/Compile/Abstract/TypeCheck.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Abstract/TypeCheck.hs
+++ /dev/null
@@ -1,82 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module      : TypeCheck
--- Maintainer  : AR
--- Stability   : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/09/15 16:22:02 $ 
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.16 $
---
--- (Description of the module)
------------------------------------------------------------------------------
-
-module GF.Compile.Abstract.TypeCheck (-- * top-level type checking functions; TC should not be called directly.
-		  checkContext,
-		  checkTyp,
-		  checkDef,
-		  checkConstrs,
-		 ) where
-
-import GF.Data.Operations
-
-import GF.Infra.CheckM
-import GF.Grammar
-import GF.Grammar.Lookup
-import GF.Grammar.Unify
-import GF.Compile.Refresh
-import GF.Compile.Abstract.Compute
-import GF.Compile.Abstract.TC
-
-import Text.PrettyPrint
-import Control.Monad (foldM, liftM, liftM2)
-
--- | invariant way of creating TCEnv from context
-initTCEnv gamma = 
-  (length gamma,[(x,VGen i x) | ((x,_),i) <- zip gamma [0..]], gamma) 
-
--- interface to TC type checker
-
-type2val :: Type -> Val
-type2val = VClos []
-
-cont2exp :: Context -> Exp
-cont2exp c = mkProd c eType [] -- to check a context
-
-cont2val :: Context -> Val
-cont2val = type2val . cont2exp
-
--- some top-level batch-mode checkers for the compiler
-
-justTypeCheck :: SourceGrammar -> Exp -> Val -> Err Constraints
-justTypeCheck gr e v = do
-  (_,constrs0) <- checkExp (grammar2theory gr) (initTCEnv []) e v
-  (constrs1,_) <- unifyVal constrs0
-  return $ filter notJustMeta constrs1
-
-notJustMeta (c,k) = case (c,k) of
-    (VClos g1 (Meta m1), VClos g2 (Meta m2)) -> False
-    _ -> True
-
-grammar2theory :: SourceGrammar -> Theory
-grammar2theory gr (m,f) = case lookupFunType gr m f of
-  Ok t -> return $ type2val t
-  Bad s -> case lookupCatContext gr m f of
-    Ok cont -> return $ cont2val cont
-    _ -> Bad s
-
-checkContext :: SourceGrammar -> Context -> [Message]
-checkContext st = checkTyp st . cont2exp
-
-checkTyp :: SourceGrammar -> Type -> [Message]
-checkTyp gr typ = err (\x -> [text x]) ppConstrs $ justTypeCheck gr typ vType
-
-checkDef :: SourceGrammar -> Fun -> Type -> Equation -> [Message]
-checkDef gr (m,fun) typ eq = err (\x -> [text x]) ppConstrs $ do
-  (b,cs) <- checkBranch (grammar2theory gr) (initTCEnv []) eq (type2val typ)
-  (constrs,_) <- unifyVal cs
-  return $ filter notJustMeta constrs
-
-checkConstrs :: SourceGrammar -> Cat -> [Ident] -> [String]
-checkConstrs gr cat _ = [] ---- check constructors!
diff --git a/src/compiler/GF/Compile/CheckGrammar.hs b/src/compiler/GF/Compile/CheckGrammar.hs
--- a/src/compiler/GF/Compile/CheckGrammar.hs
+++ b/src/compiler/GF/Compile/CheckGrammar.hs
@@ -25,8 +25,8 @@
 import GF.Infra.Ident
 import GF.Infra.Modules
 
-import GF.Compile.Abstract.TypeCheck
-import GF.Compile.Concrete.TypeCheck
+import GF.Compile.TypeCheck.Abstract
+import GF.Compile.TypeCheck.Concrete
 
 import GF.Grammar
 import GF.Grammar.Lexer
@@ -94,12 +94,12 @@
   where
    checkAbs js i@(c,info) =
      case info of
-       AbsFun (Just (L loc ty)) _ _ 
+       AbsFun (Just (L loc ty)) _ _ _ 
                             -> do let mb_def = do
                                         let (cxt,(_,i),_) = typeForm ty
                                         info <- lookupIdent i js
                                         info <- case info of
-                                                  (AnyInd _ m) -> do (m,info) <- lookupOrigInfo gr m i
+                                                  (AnyInd _ m) -> do (m,info) <- lookupOrigInfo gr (m,i)
                                                                      return info
                                                   _            -> return info
                                         case info of
@@ -137,14 +137,14 @@
      
    checkCnc js i@(c,info) =
      case info of
-       CncFun _ d pn -> case lookupOrigInfo gr am c of
-                          Ok (_,AbsFun (Just (L _ ty)) _ _) -> 
+       CncFun _ d pn -> case lookupOrigInfo gr (am,c) of
+                          Ok (_,AbsFun (Just (L _ ty)) _ _ _) -> 
                                      do (cont,val) <- linTypeOfType gr cm ty
                                         let linty = (snd (valCat ty),cont,val)
                                         return $ updateTree (c,CncFun (Just linty) d pn) js
                           _       -> do checkWarn $ text "function" <+> ppIdent c <+> text "is not in abstract"
                                         return js
-       CncCat _ _ _  -> case lookupOrigInfo gr am c of
+       CncCat _ _ _  -> case lookupOrigInfo gr (am,c) of
                           Ok _ -> return $ updateTree i js
                           _    -> do checkWarn $ text "category" <+> ppIdent c <+> text "is not in abstract"
                                      return js
@@ -161,7 +161,7 @@
       mkCheck loc "category" $ 
         checkContext gr cont
 
-    AbsFun (Just (L loc typ0)) ma md -> do
+    AbsFun (Just (L loc typ0)) ma md moper -> do
       typ <- compAbsTyp [] typ0   -- to calculate let definitions
       mkCheck loc "type of function" $
         checkTyp gr typ
@@ -169,7 +169,7 @@
         Just eqs -> mapM_ (\(L loc eq) -> mkCheck loc "definition of function" $
 	                                        checkDef gr (m,c) typ eq) eqs
         Nothing  -> return ()
-      return (AbsFun (Just (L loc typ)) ma md)
+      return (AbsFun (Just (L loc typ)) ma md moper)
 
     CncFun linty@(Just (cat,cont,val)) (Just (L loc trm)) mpr -> chIn loc "linearization of" $ do
       (trm',_) <- checkLType gr [] trm (mkFunType (map (\(_,_,ty) -> ty) cont) val)  -- erases arg vars
@@ -206,7 +206,7 @@
 
     ResOverload os tysts -> chIn (0,0) "overloading" $ do
       tysts' <- mapM (uncurry $ flip (\(L loc1 t) (L loc2 ty) -> checkLType gr [] t ty >>= \(t,ty) -> return (L loc1 t, L loc2 ty))) tysts  -- return explicit ones
-      tysts0 <- checkErr $ lookupOverload gr m c  -- check against inherited ones too
+      tysts0 <- checkErr $ lookupOverload gr (m,c)  -- check against inherited ones too
       tysts1 <- mapM (uncurry $ flip (checkLType gr [])) 
                   [(mkFunType args val,tr) | (args,(val,tr)) <- tysts0]
       --- this can only be a partial guarantee, since matching
@@ -227,7 +227,7 @@
    mkPar (L loc (f,co)) = 
      chIn loc "parameter type" $ do
        vs <- checkErr $ liftM combinations $ mapM (\(_,_,ty) -> allParamValues gr ty) co
-       return $ map (mkApp (QC m f)) vs
+       return $ map (mkApp (QC (m,f))) vs
 
    checkUniq xss = case xss of
      x:y:xs 
diff --git a/src/compiler/GF/Compile/Compute/Abstract.hs b/src/compiler/GF/Compile/Compute/Abstract.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/Compute/Abstract.hs
@@ -0,0 +1,138 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : GF.Compile.Abstract.Compute
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/10/02 20:50:19 $ 
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.8 $
+--
+-- computation in abstract syntax w.r.t. explicit definitions.
+--
+-- old GF computation; to be updated
+-----------------------------------------------------------------------------
+
+module GF.Compile.Compute.Abstract (LookDef,
+		   compute, 
+		   computeAbsTerm, 
+		   computeAbsTermIn, 
+		   beta
+		  ) where
+
+import GF.Data.Operations
+
+import GF.Grammar
+import GF.Grammar.Lookup
+
+import Debug.Trace
+import Data.List(intersperse)
+import Control.Monad (liftM, liftM2)
+import Text.PrettyPrint
+
+-- for debugging
+tracd m t = t 
+-- tracd = trace
+
+compute :: SourceGrammar -> Exp -> Err Exp
+compute = computeAbsTerm
+
+computeAbsTerm :: SourceGrammar -> Exp -> Err Exp
+computeAbsTerm gr = computeAbsTermIn (lookupAbsDef gr) []
+
+-- | a hack to make compute work on source grammar as well
+type LookDef = Ident -> Ident -> Err (Maybe Int,Maybe [Equation])
+
+computeAbsTermIn :: LookDef -> [Ident] -> Exp -> Err Exp
+computeAbsTermIn lookd xs e = errIn (render (text "computing" <+> ppTerm Unqualified 0 e)) $ compt xs e where
+  compt vv t = case t of
+--    Prod x a b  -> liftM2 (Prod x) (compt vv a) (compt (x:vv) b)
+--    Abs x b     -> liftM  (Abs  x)              (compt (x:vv) b)
+    _ -> do
+      let t' = beta vv t
+      (yy,f,aa) <- termForm t'
+      let vv' = map snd yy ++ vv
+      aa'    <- mapM (compt vv') aa
+      case look f of
+        Just eqs -> tracd (text "\nmatching" <+> ppTerm Unqualified 0 f) $ 
+                          case findMatch eqs aa' of
+          Ok (d,g) -> do
+            --- let (xs,ts) = unzip g
+            --- ts' <- alphaFreshAll vv' ts
+            let g' = g --- zip xs ts'
+            d' <- compt vv' $ substTerm vv' g' d
+            tracd (text "by Egs:" <+> ppTerm Unqualified 0 d') $ return $ mkAbs yy $ d'
+          _ -> tracd (text "no match" <+> ppTerm Unqualified 0 t') $ 
+               do
+            let v = mkApp f aa'
+            return $ mkAbs yy $ v
+        _ -> do
+          let t2 = mkAbs yy $ mkApp f aa'
+          tracd (text "not defined" <+> ppTerm Unqualified 0 t2) $ return t2
+
+  look t = case t of
+     (Q (m,f)) -> case lookd m f of
+       Ok (_,md) -> md
+       _ -> Nothing
+     _ -> Nothing
+
+beta :: [Ident] -> Exp -> Exp
+beta vv c = case c of
+  Let (x,(_,a)) b -> beta vv $ substTerm vv [(x,beta vv a)] (beta (x:vv) b) 
+  App f         a -> 
+    let (a',f') = (beta vv a, beta vv f) in 
+    case f' of
+      Abs _ x b -> beta vv $ substTerm vv [(x,a')] (beta (x:vv) b) 
+      _ ->               (if a'==a && f'==f then id else beta vv) $ App f' a'
+  Prod b x a t      -> Prod b x (beta vv a) (beta (x:vv) t)
+  Abs b x t       -> Abs b x (beta (x:vv) t)
+  _               -> c
+
+-- special version of pattern matching, to deal with comp under lambda
+
+findMatch :: [([Patt],Term)] -> [Term] -> Err (Term, Substitution)
+findMatch cases terms = case cases of
+  [] -> Bad $ render (text "no applicable case for" <+> hcat (punctuate comma (map (ppTerm Unqualified 0) terms)))
+  (patts,_):_ | length patts /= length terms -> 
+       Bad (render (text "wrong number of args for patterns :" <+> 
+                    hsep (map (ppPatt Unqualified 0) patts) <+> text "cannot take" <+> hsep (map (ppTerm Unqualified 0) terms)))
+  (patts,val):cc -> case mapM tryMatch (zip patts terms) of
+     Ok substs -> return (tracd (text "value" <+> ppTerm Unqualified 0 val) val, concat substs)
+     _         -> findMatch cc terms
+
+tryMatch :: (Patt, Term) -> Err [(Ident, Term)]
+tryMatch (p,t) = do 
+  t' <- termForm t
+  trym p t'
+ where
+
+  trym p t' = err (\s -> tracd s (Bad s)) (\t -> tracd (prtm p t) (return t)) $ ---- 
+              case (p,t') of
+    (PW,    _) | notMeta t -> return [] -- optimization with wildcard
+    (PV x,  _) | notMeta t -> return [(x,t)]
+    (PString s, ([],K i,[])) | s==i -> return []
+    (PInt s, ([],EInt i,[])) | s==i -> return []
+    (PFloat s,([],EFloat i,[])) | s==i -> return [] --- rounding?
+    (PP (q,p) pp, ([], QC (r,f), tt)) | 
+       p `eqStrIdent` f && length pp == length tt -> do
+         matches <- mapM tryMatch (zip pp tt)
+         return (concat matches)
+    (PP (q,p) pp, ([], Q (r,f), tt)) | 
+       p `eqStrIdent` f && length pp == length tt -> do
+         matches <- mapM tryMatch (zip pp tt)
+         return (concat matches)
+    (PT _ p',_) -> trym p' t'
+    (PAs x p',_) -> do
+       subst <- trym p' t'
+       return $ (x,t) : subst
+    _ -> Bad (render (text "no match in pattern" <+> ppPatt Unqualified 0 p <+> text "for" <+> ppTerm Unqualified 0 t))
+
+  notMeta e = case e of
+    Meta _  -> False
+    App f a -> notMeta f &&  notMeta a  
+    Abs _ _ b -> notMeta b
+    _ -> True
+
+  prtm p g = 
+    ppPatt Unqualified 0 p <+> colon $$ hsep (punctuate semi [ppIdent x <+> char '=' <+> ppTerm Unqualified 0 y | (x,y) <- g])
diff --git a/src/compiler/GF/Compile/Compute/AppPredefined.hs b/src/compiler/GF/Compile/Compute/AppPredefined.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/Compute/AppPredefined.hs
@@ -0,0 +1,178 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : AppPredefined
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/10/06 14:21:34 $ 
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.13 $
+--
+-- Predefined function type signatures and definitions.
+-----------------------------------------------------------------------------
+
+module GF.Compile.Compute.AppPredefined (
+          isInPredefined, typPredefined, arrityPredefined, predefModInfo, appPredefined
+		  ) where
+
+import GF.Infra.Ident
+import GF.Infra.Modules
+import GF.Infra.Option
+import GF.Data.Operations
+import GF.Grammar
+import GF.Grammar.Predef
+
+import qualified Data.Map as Map
+import qualified Data.ByteString.Char8 as BS
+import Text.PrettyPrint
+
+-- predefined function type signatures and definitions. AR 12/3/2003.
+
+isInPredefined :: Ident -> Bool
+isInPredefined f = Map.member f primitives
+
+typPredefined :: Ident -> Maybe Type
+typPredefined f = case Map.lookup f primitives of
+                    Just (ResOper (Just (L _ ty)) _) -> Just ty
+                    Just (ResParam _ _)              -> Just typePType
+                    Just (ResValue (L _ ty))         -> Just ty
+                    _                                -> Nothing
+
+arrityPredefined :: Ident -> Maybe Int
+arrityPredefined f = do ty <- typPredefined f
+                        let (ctxt,_) = typeFormCnc ty
+                        return (length ctxt)
+
+predefModInfo :: SourceModInfo
+predefModInfo = ModInfo MTResource MSComplete noOptions [] Nothing [] [] primitives
+
+primitives = Map.fromList
+  [ (cErrorType, ResOper (Just (noLoc typeType)) Nothing)
+  , (cInt      , ResOper (Just (noLoc typePType)) Nothing)
+  , (cFloat    , ResOper (Just (noLoc typePType)) Nothing)
+  , (cInts     , ResOper (Just (noLoc (mkFunType [typeInt] typePType))) Nothing)
+  , (cPBool    , ResParam (Just [noLoc (cPTrue,[]),noLoc (cPFalse,[])]) (Just [QC (cPredef,cPTrue), QC (cPredef,cPFalse)]))
+  , (cPTrue    , ResValue (noLoc typePBool))
+  , (cPFalse   , ResValue (noLoc typePBool))
+  , (cError    , ResOper (Just (noLoc (mkFunType [typeStr] typeError))) Nothing)  -- non-can. of empty set
+  , (cLength   , ResOper (Just (noLoc (mkFunType [typeTok] typeInt))) Nothing)
+  , (cDrop     , ResOper (Just (noLoc (mkFunType [typeInt,typeTok] typeTok))) Nothing)
+  , (cTake     , ResOper (Just (noLoc (mkFunType [typeInt,typeTok] typeTok))) Nothing)
+  , (cTk       , ResOper (Just (noLoc (mkFunType [typeInt,typeTok] typeTok))) Nothing)
+  , (cDp       , ResOper (Just (noLoc (mkFunType [typeInt,typeTok] typeTok))) Nothing)
+  , (cEqInt    , ResOper (Just (noLoc (mkFunType [typeInt,typeInt] typePBool))) Nothing)
+  , (cLessInt  , ResOper (Just (noLoc (mkFunType [typeInt,typeInt] typePBool))) Nothing)
+  , (cPlus     , ResOper (Just (noLoc (mkFunType [typeInt,typeInt] typeInt))) Nothing)
+  , (cEqStr    , ResOper (Just (noLoc (mkFunType [typeTok,typeTok] typePBool))) Nothing)
+  , (cOccur    , ResOper (Just (noLoc (mkFunType [typeTok,typeTok] typePBool))) Nothing)
+  , (cOccurs   , ResOper (Just (noLoc (mkFunType [typeTok,typeTok] typePBool))) Nothing)
+----  "read"   -> 
+  , (cRead     , ResOper (Just (noLoc (mkProd -- (P : Type) -> Tok -> P
+                                         [(Explicit,varP,typePType),(Explicit,identW,typeStr)] (Vr varP) []))) Nothing)
+  , (cShow     , ResOper (Just (noLoc (mkProd -- (P : PType) -> P -> Tok
+                                         [(Explicit,varP,typePType),(Explicit,identW,Vr varP)] typeStr []))) Nothing)
+  , (cToStr    , ResOper (Just (noLoc (mkProd -- (L : Type)  -> L -> Str
+                                         [(Explicit,varL,typeType),(Explicit,identW,Vr varL)] typeStr []))) Nothing)
+  , (cMapStr   , ResOper (Just (noLoc (mkProd -- (L : Type)  -> (Str -> Str) -> L -> L
+                                         [(Explicit,varL,typeType),(Explicit,identW,mkFunType [typeStr] typeStr),(Explicit,identW,Vr varL)] (Vr varL) []))) Nothing)
+  ]
+  where
+    noLoc = L (0,0)
+
+    varL :: Ident
+    varL = identC (BS.pack "L")
+
+    varP :: Ident
+    varP = identC (BS.pack "P")
+
+appPredefined :: Term -> Err (Term,Bool)
+appPredefined t = case t of
+  App f x0 -> do
+   (x,_) <- appPredefined x0
+   case f of
+    -- one-place functions
+    Q (mod,f) | mod == cPredef ->
+      case x of
+        (K s) | f == cLength -> retb $ EInt $ length s
+        _                    -> retb t
+
+    -- two-place functions
+    App (Q (mod,f)) z0 | mod == cPredef -> do
+     (z,_) <- appPredefined z0
+     case (norm z, norm x) of
+      (EInt i, K s)    | f == cDrop    -> retb $ K (drop i s)
+      (EInt i, K s)    | f == cTake    -> retb $ K (take i s)
+      (EInt i, K s)    | f == cTk      -> retb $ K (take (max 0 (length s - i)) s)
+      (EInt i, K s)    | f == cDp      -> retb $ K (drop (max 0 (length s - i)) s)
+      (K s,    K t)    | f == cEqStr   -> retb $ if s == t then predefTrue else predefFalse
+      (K s,    K t)    | f == cOccur   -> retb $ if substring s t then predefTrue else predefFalse
+      (K s,    K t)    | f == cOccurs  -> retb $ if any (flip elem t) s then predefTrue else predefFalse
+      (EInt i, EInt j) | f == cEqInt   -> retb $ if i==j then predefTrue else predefFalse
+      (EInt i, EInt j) | f == cLessInt -> retb $ if i<j  then predefTrue else predefFalse
+      (EInt i, EInt j) | f == cPlus    -> retb $ EInt $ i+j
+      (_,      t)      | f == cShow    -> retb $ foldr C Empty $ map K $ words $ render (ppTerm Unqualified 0 t)
+      (_,      K s)    | f == cRead    -> retb $ Cn (identC (BS.pack s)) --- because of K, only works for atomic tags
+      (_,      t)      | f == cToStr   -> trm2str t >>= retb
+      _ -> retb t ---- prtBad "cannot compute predefined" t
+
+    -- three-place functions
+    App (App (Q (mod,f)) z0) y0 | mod == cPredef -> do
+     (y,_) <- appPredefined y0
+     (z,_) <- appPredefined z0
+     case (z, y, x) of
+       (ty,op,t) | f == cMapStr -> retf $ mapStr ty op t
+       _ -> retb t ---- prtBad "cannot compute predefined" t
+
+    _ -> retb t ---- prtBad "cannot compute predefined" t
+  _ -> retb t
+                  ---- should really check the absence of arg variables
+ where
+   retb t = return (retc t,True)  -- no further computing needed
+   retf t = return (retc t,False) -- must be computed further
+   retc t = case t of
+     K [] -> t
+     K s  -> foldr1 C (map K (words s))
+     _    -> t
+   norm t = case t of
+     Empty -> K []
+     C u v -> case (norm u,norm v) of
+       (K x,K y) -> K (x +++ y)
+       _ -> t
+     _ -> t
+
+-- read makes variables into constants
+
+predefTrue = QC (cPredef,cPTrue)
+predefFalse = QC (cPredef,cPFalse)
+
+substring :: String -> String -> Bool
+substring s t = case (s,t) of
+  (c:cs, d:ds) -> (c == d && substring cs ds) || substring s ds
+  ([],_) -> True
+  _ -> False
+
+trm2str :: Term -> Err Term
+trm2str t = case t of
+  R ((_,(_,s)):_) -> trm2str s
+  T _ ((_,s):_)   -> trm2str s
+  V _ (s:_)       -> trm2str s
+  C _ _           -> return $ t
+  K _             -> return $ t
+  S c _           -> trm2str c
+  Empty           -> return $ t
+  _               -> Bad (render (text "cannot get Str from term" <+> ppTerm Unqualified 0 t))
+
+-- simultaneous recursion on type and term: type arg is essential!
+-- But simplify the task by assuming records are type-annotated
+-- (this has been done in type checking)
+mapStr :: Type -> Term -> Term -> Term
+mapStr ty f t = case (ty,t) of
+  _ | elem ty [typeStr,typeTok] -> App f t
+  (_,        R ts)    -> R [(l,mapField v)   | (l,v) <- ts]
+  (Table a b,T ti cs) -> T ti [(p,mapStr b f v) | (p,v) <- cs]
+  _    -> t 
+ where
+   mapField (mty,te) = case mty of
+     Just ty -> (mty,mapStr ty f te)
+     _ -> (mty,te)
diff --git a/src/compiler/GF/Compile/Compute/Concrete.hs b/src/compiler/GF/Compile/Compute/Concrete.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/Compute/Concrete.hs
@@ -0,0 +1,468 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : GF.Compile.Concrete.Compute
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/11/01 15:39:12 $ 
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.19 $
+--
+-- Computation of source terms. Used in compilation and in @cc@ command.
+-----------------------------------------------------------------------------
+
+module GF.Compile.Compute.Concrete (computeConcrete, computeTerm,computeConcreteRec) where
+
+import GF.Data.Operations
+import GF.Grammar.Grammar
+import GF.Infra.Ident
+import GF.Infra.Option
+import GF.Infra.Modules
+import GF.Data.Str
+import GF.Grammar.Printer
+import GF.Grammar.Predef
+import GF.Grammar.Macros
+import GF.Grammar.Lookup
+import GF.Compile.Refresh
+import GF.Grammar.PatternMatch
+import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ----
+
+import GF.Compile.Compute.AppPredefined
+
+import Data.List (nub,intersperse)
+import Control.Monad (liftM2, liftM)
+import Text.PrettyPrint
+
+-- | computation of concrete syntax terms into normal form
+-- used mainly for partial evaluation
+computeConcrete :: SourceGrammar -> Term -> Err Term
+computeConcrete    g t = {- refreshTerm t >>= -} computeTerm g [] t
+computeConcreteRec g t = {- refreshTerm t >>= -} computeTermOpt True g [] t
+
+computeTerm :: SourceGrammar -> Substitution -> Term -> Err Term
+computeTerm = computeTermOpt False
+
+-- rec=True is used if it cannot be assumed that looked-up constants
+-- have already been computed (mainly with -optimize=noexpand in .gfr)
+
+computeTermOpt :: Bool -> SourceGrammar -> Substitution -> Term -> Err Term
+computeTermOpt rec gr = comput True where
+
+   comput full g t = ---- errIn ("subterm" +++ prt t) $ --- for debugging 
+              case t of
+
+     Q (p,c) | p == cPredef -> return t
+             | otherwise    -> look (p,c) 
+
+     Vr x -> do
+       t' <- maybe (Bad (render (text "no value given to variable" <+> ppIdent x))) return $ lookup x g
+       case t' of 
+         _ | t == t' -> return t
+         _ -> comp g t'
+
+     -- Abs x@(IA _) b -> do 
+     Abs _ _ _ | full -> do 
+       let (xs,b1) = termFormCnc t   
+       b' <- comp ([(x,Vr x) | (_,x) <- xs] ++ g) b1
+       return $ mkAbs xs b'
+     --  b' <- comp (ext x (Vr x) g) b
+     --  return $ Abs x b'
+     Abs _ _ _ -> return t -- hnf
+
+     Let (x,(_,a)) b -> do
+       a' <- comp g a
+       comp (ext x a' g) b
+
+     Prod b x a t -> do
+       a' <- comp g a
+       t' <- comp (ext x (Vr x) g) t
+       return $ Prod b x a' t'
+
+     -- beta-convert
+     App f a -> case appForm t of
+      (h,as) | length as > 1 -> do
+        h' <- hnf g h
+        as' <- mapM (comp g) as
+        case h' of
+          _ | not (null [() | FV _ <- as']) -> compApp g (mkApp h' as')
+          c@(QC _) -> do
+            return $ mkApp c as'
+          Q (mod,f) | mod == cPredef -> do     
+            (t',b) <- appPredefined (mkApp h' as')
+            if b then return t' else comp g t'
+
+          Abs _ _ _ -> do
+            let (xs,b) = termFormCnc h'
+            let g' = (zip (map snd xs) as') ++ g
+            let as2 = drop (length xs) as'
+            let xs2 = drop (length as') xs
+            b' <- comp g' (mkAbs xs2 b)
+            if null as2 then return b' else comp g (mkApp b' as2)
+
+          _ -> compApp g (mkApp h' as')
+      _ -> compApp g t
+
+     P t l | isLockLabel l -> return $ R [] 
+     ---- a workaround 18/2/2005: take this away and find the reason
+     ---- why earlier compilation destroys the lock field
+
+
+     P t l  -> do
+       t' <- comp g t
+       case t' of
+         FV rs -> mapM (\c -> comp g (P c l)) rs >>= returnC . variants
+         R r   -> maybe (Bad (render (text "no value for label" <+> ppLabel l))) (comp g . snd) $ 
+                    lookup l $ reverse r 
+
+         ExtR a (R b) ->                 
+           case comp g (P (R b) l) of
+             Ok v -> return v
+             _ -> comp g (P a l)
+
+--- { - --- this is incorrect, since b can contain the proper value
+         ExtR (R a) b ->                 -- NOT POSSIBLE both a and b records!
+           case comp g (P (R a) l) of
+             Ok v -> return v
+             _ -> comp g (P b l)
+--- - } ---
+
+         S (T i cs) e -> prawitz g i (flip P l) cs e
+         S (V i cs) e -> prawitzV g i (flip P l) cs e
+
+         _   -> returnC $ P t' l
+
+     S t v -> do
+       t' <- compTable g t
+       v' <- comp g v
+       t1 <- case t' of
+----           V (RecType fs) _         -> uncurrySelect g fs t' v'
+----           T (TComp (RecType fs)) _ -> uncurrySelect g fs t' v'
+           _ -> return $ S t' v'
+       compSelect g t1
+
+     -- normalize away empty tokens
+     K "" -> return Empty
+
+     -- glue if you can
+     Glue x0 y0 -> do
+       x <- comp g x0
+       y <- comp g y0
+       case (x,y) of
+         (FV ks,_)         -> do
+           kys <- mapM (comp g . flip Glue y) ks
+           return $ variants kys
+         (_,FV ks)         -> do
+           xks <- mapM (comp g . Glue x) ks
+           return $ variants xks
+
+         (S (T i cs) e, s) -> prawitz g i (flip Glue s) cs e
+         (s, S (T i cs) e) -> prawitz g i (Glue s) cs e
+         (S (V i cs) e, s) -> prawitzV g i (flip Glue s) cs e
+         (s, S (V i cs) e) -> prawitzV g i (Glue s) cs e
+         (_,Empty)         -> return x
+         (Empty,_)         -> return y
+         (K a, K b)        -> return $ K (a ++ b)
+         (_, Alts d vs)    -> do
+----         (K a, Alts (d,vs)) -> do
+            let glx = Glue x
+            comp g $ Alts (glx d) [(glx v,c) | (v,c) <- vs]
+         (Alts _ _, ka) -> checks [do
+            y' <- strsFromTerm ka
+----         (Alts _, K a) -> checks [do
+            x' <- strsFromTerm x -- this may fail when compiling opers
+            return $ variants [
+              foldr1 C (map K (str2strings (glueStr v u))) | v <- x', u <- y']
+----              foldr1 C (map K (str2strings (glueStr v (str a)))) | v <- x']
+           ,return $ Glue x y
+           ]
+         (C u v,_) -> comp g $ C u (Glue v y)
+
+         _ -> do
+           mapM_ checkNoArgVars [x,y]
+           r <- composOp (comp g) t
+           returnC r
+
+     Alts d aa -> do
+       d' <- comp g d
+       aa' <- mapM (compInAlts g) aa
+       returnC (Alts d' aa')
+
+     -- remove empty
+     C a b    -> do
+       a' <- comp g a
+       b' <- comp g b
+       case (a',b') of
+         (Alts _ _, K d) -> checks [do
+            as <- strsFromTerm a' -- this may fail when compiling opers
+            return $ variants [
+              foldr1 C (map K (str2strings (plusStr v (str d)))) | v <- as]
+            ,
+            return $ C a' b'
+           ]
+         (Alts _ _, C (K d) e) -> checks [do
+            as <- strsFromTerm a' -- this may fail when compiling opers
+            return $ C (variants [
+              foldr1 C (map K (str2strings (plusStr v (str d)))) | v <- as]) e
+            ,
+            return $ C a' b'
+           ]
+         (Empty,_) -> returnC b'
+         (_,Empty) -> returnC a'
+         _     -> returnC $ C a' b'
+
+     -- reduce free variation as much as you can
+     FV ts -> mapM (comp g) ts >>= returnC . variants
+
+     -- merge record extensions if you can
+     ExtR r s -> do
+       r' <- comp g r
+       s' <- comp g s
+       case (r',s') of
+         (R rs, R ss) -> plusRecord r' s'
+         (RecType rs, RecType ss) -> plusRecType r' s'
+         _ -> return $ ExtR r' s'
+
+     ELin c r -> do
+       r' <- comp g r
+       unlockRecord c r'
+
+     T _ _ -> compTable g t
+     V _ _ -> compTable g t
+
+     -- otherwise go ahead
+     _ -> composOp (comp g) t >>= returnC
+
+    where
+
+     compApp g (App f a) = do
+       f' <- hnf g f
+       a' <- comp g a
+       case (f',a') of
+         (Abs _ x b, FV as) -> 
+           mapM (\c -> comp (ext x c g) b) as >>= return . variants
+         (_, FV as)  -> mapM (\c -> comp g (App f' c)) as >>= return . variants
+         (FV fs, _)  -> mapM (\c -> comp g (App c a')) fs >>= return . variants
+         (Abs _ x b,_) -> comp (ext x a' g) b
+
+         (QC _,_)  -> returnC $ App f' a'
+
+         (S (T i cs) e,_) -> prawitz g i (flip App a') cs e
+         (S (V i cs) e,_) -> prawitzV g i (flip App a') cs e
+
+	 _ -> do
+           (t',b) <- appPredefined (App f' a')
+           if b then return t' else comp g t'
+
+     hnf  = comput False
+     comp = comput True
+
+     look c
+       | rec       = lookupResDef gr c >>= comp []
+       | otherwise = lookupResDef gr c
+
+     ext x a g = (x,a):g
+
+     returnC = return --- . computed
+
+     variants ts = case nub ts of
+       [t] -> t
+       ts  -> FV ts
+
+     isCan v = case v of
+       Con _    -> True
+       QC _     -> True
+       App f a  -> isCan f && isCan a
+       R rs     -> all (isCan . snd . snd) rs
+       _        -> False
+
+     compPatternMacro p = case p of
+       PM c -> case look c of
+         Ok (EPatt p') -> compPatternMacro p'
+         _ -> Bad (render (text "pattern expected as value of" $$ nest 2 (ppPatt Unqualified 0 p)))
+       PAs x p -> do
+         p' <- compPatternMacro p
+         return $ PAs x p'
+       PAlt p q -> do
+         p' <- compPatternMacro p
+         q' <- compPatternMacro q
+         return $ PAlt p' q'
+       PSeq p q -> do
+         p' <- compPatternMacro p
+         q' <- compPatternMacro q
+         return $ PSeq p' q'
+       PRep p -> do
+         p' <- compPatternMacro p
+         return $ PRep p'
+       PNeg p -> do
+         p' <- compPatternMacro p
+         return $ PNeg p'
+       PR rs -> do
+         rs' <- mapPairsM compPatternMacro rs
+         return $ PR rs'
+
+       _ -> return p
+
+     compSelect g (S t' v') = case v' of
+       FV vs -> mapM (\c -> comp g (S t' c)) vs >>= returnC . variants    
+
+----       S (T i cs) e -> prawitz g i (S t') cs e  -- AR 8/7/2010 sometimes better
+----       S (V i cs) e -> prawitzV g i (S t') cs e -- sometimes much worse 
+
+    
+       _ -> case t' of
+         FV ccs -> mapM (\c -> comp g (S c v')) ccs >>= returnC . variants
+
+         T _ [(PW,c)] -> comp g c           --- an optimization
+         T _ [(PT _ PW,c)] -> comp g c
+
+         T _ [(PV z,c)] -> comp (ext z v' g) c --- another optimization
+         T _ [(PT _ (PV z),c)] -> comp (ext z v' g) c
+
+         -- course-of-values table: look up by index, no pattern matching needed
+
+         V ptyp ts -> do
+             vs <- allParamValues gr ptyp
+             case lookupR v' (zip vs [0 .. length vs - 1]) of
+               Just i -> comp g $ ts !! i
+               _ -> return $ S t' v' -- if v' is not canonical
+         T _ cc -> do
+           case matchPattern cc v' of
+             Ok (c,g') -> comp (g' ++ g) c
+             _ | isCan v' -> Bad (render (text "missing case" <+> ppTerm Unqualified 0 v' <+> text "in" <+> ppTerm Unqualified 0 t))
+             _ -> return $ S t' v' -- if v' is not canonical
+
+         S (T i cs) e -> prawitz g i (flip S v') cs e
+         S (V i cs) e -> prawitzV g i (flip S v') cs e
+         _    -> returnC $ S t' v'
+
+     --- needed to match records with and without type information
+     ---- todo: eliminate linear search in a list of records!
+     lookupR v vs = case v of
+       R rs -> lookup ([(x,y) | (x,(_,y)) <- rs]) 
+                                [([(x,y) | (x,(_,y)) <- rs],v) | (R rs,v) <- vs]
+       _ -> lookup v vs
+
+     -- case-expand tables
+     -- if already expanded, don't expand again
+     compTable g t = case t of
+         T i@(TComp ty) cs -> do
+           -- if there are no variables, don't even go inside
+           cs' <- if (null g) then return cs else mapPairsM (comp g) cs
+----           return $ V ty (map snd cs')
+           return $ T i cs'
+         V ty cs -> do
+           ty' <- comp g ty
+           -- if there are no variables, don't even go inside
+           cs' <- if (null g) then return cs else mapM (comp g) cs
+           return $ V ty' cs'
+
+         T i cs -> do
+           pty0 <- getTableType i
+           ptyp <- comp g pty0
+           case allParamValues gr ptyp of
+             Ok vs0 -> do
+               let vs = vs0 ---- [Val v ptyp i | (v,i) <- zip vs0 [0..]]
+               ps0  <- mapM (compPatternMacro . fst) cs
+               cs'  <- mapM (compBranchOpt g) (zip ps0 (map snd cs))
+               sts  <- mapM (matchPattern cs') vs 
+               ts   <- mapM (\ (c,g') -> comp (g' ++ g) c) sts
+               ps   <- mapM term2patt vs
+               let ps' = ps --- PT ptyp (head ps) : tail ps
+----               return $ V ptyp ts -- to save space, just course of values
+               return $ T (TComp ptyp) (zip ps' ts)
+             _ -> do
+               ps0  <- mapM (compPatternMacro . fst) cs
+               cs'  <- mapM (compBranch g) (zip ps0 (map snd cs))
+
+----               cs' <- mapM (compBranch g) cs
+               return $ T i cs'  -- happens with variable types
+         _ -> comp g t
+
+     compBranch g (p,v) = do
+       let g' = contP p ++ g
+       v' <- comp g' v
+       return (p,v')
+
+     compBranchOpt g c@(p,v) = case contP p of
+       [] -> return c
+       _ -> err (const (return c)) return $ compBranch g c
+
+     contP p = case p of
+       PV x -> [(x,Vr x)]
+       PC _ ps -> concatMap contP ps
+       PP _ ps -> concatMap contP ps
+       PT _ p -> contP p
+       PR rs -> concatMap (contP . snd) rs
+
+       PAs x p -> (x,Vr x) : contP p
+
+       PSeq p q -> concatMap contP [p,q]
+       PAlt p q -> concatMap contP [p,q]
+       PRep p   -> contP p
+       PNeg p   -> contP p
+
+       _ -> []
+
+     prawitz g i f cs e = do
+       cs' <- mapM (compBranch g) [(p, f v) | (p,v) <- cs]
+       return $ S (T i cs') e
+     prawitzV g i f cs e = do
+       cs' <- mapM (comp g) [(f v) | v <- cs]
+       return $ S (V i cs') e
+
+     compInAlts g (v,c) = do
+       v' <- comp g v
+       c' <- comp g c
+       c2 <- case c' of
+         EPatt p -> liftM Strs $ getPatts p
+         _ -> return c'
+       return (v',c2)
+      where
+       getPatts p = case p of
+         PAlt a b  -> liftM2 (++) (getPatts a) (getPatts b)
+         PString s -> return [K s]
+         PSeq a b  -> do
+           as <- getPatts a
+           bs <- getPatts b
+           return [K (s ++ t) | K s <- as, K t <- bs]
+         _ -> fail (render (text "not valid pattern in pre expression" <+> ppPatt Unqualified 0 p))
+
+{- ----
+     uncurrySelect g fs t v = do
+       ts <- mapM (allParamValues gr . snd) fs
+       vs <- mapM (comp g) [P v r | r <- map fst fs]
+       return $ reorderSelect t fs ts vs
+
+     reorderSelect t fs pss vs = case (t,fs,pss,vs) of
+       (V _ ts, f:fs1, ps:pss1, v:vs1) -> 
+         S (V (snd f) 
+             [reorderSelect (V (RecType fs1) t) fs1 pss1 vs1 | 
+               t <- segments (length ts `div` length ps) ts]) v 
+       (T (TComp _) cs, f:fs1, ps:pss1, v:vs1) -> 
+         S (T (TComp (snd f)) 
+             [(p,reorderSelect (T (TComp (RecType fs1)) c) fs1 pss1 vs1) | 
+               (ep,c) <- zip ps (segments (length cs `div` length ps) cs),
+               let Ok p = term2patt ep]) v 
+       _ -> t
+
+     segments i xs = 
+       let (x0,xs1) = splitAt i xs in x0 : takeWhile (not . null) (segments i xs1)
+-}
+
+
+-- | argument variables cannot be glued
+checkNoArgVars :: Term -> Err Term
+checkNoArgVars t = case t of
+  Vr (IA _ _)    -> Bad $ glueErrorMsg $ ppTerm Unqualified 0 t 
+  Vr (IAV _ _ _) -> Bad $ glueErrorMsg $ ppTerm Unqualified 0 t 
+  _ -> composOp checkNoArgVars t
+
+glueErrorMsg s = 
+  render (text "Cannot glue (+) term with run-time variable" <+> s <> char '.' $$
+          text "Use Prelude.bind instead.")
+
+getArgType t = case t of
+  V ty _ -> return ty
+  T (TComp ty) _ -> return ty
+  _ -> Bad (render (text "cannot get argument type of table" $$ nest 2 (ppTerm Unqualified 0 t)))
diff --git a/src/compiler/GF/Compile/Concrete/AppPredefined.hs b/src/compiler/GF/Compile/Concrete/AppPredefined.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Concrete/AppPredefined.hs
+++ /dev/null
@@ -1,158 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module      : AppPredefined
--- Maintainer  : AR
--- Stability   : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/10/06 14:21:34 $ 
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.13 $
---
--- Predefined function type signatures and definitions.
------------------------------------------------------------------------------
-
-module GF.Compile.Concrete.AppPredefined (isInPredefined, typPredefined, appPredefined
-		     ) where
-
-import GF.Infra.Ident
-import GF.Data.Operations
-import GF.Grammar.Predef
-import GF.Grammar.Grammar
-import GF.Grammar.Macros
-import GF.Grammar.Printer
-import qualified Data.ByteString.Char8 as BS
-import Text.PrettyPrint
-
--- predefined function type signatures and definitions. AR 12/3/2003.
-
-isInPredefined :: Ident -> Bool
-isInPredefined = err (const True) (const False) . typPredefined
-
-typPredefined :: Ident -> Err Type
-typPredefined f
-  | f == cInt       = return typePType
-  | f == cFloat     = return typePType
-  | f == cErrorType = return typeType
-  | f == cInts      = return $ mkFunType [typeInt] typePType
-  | f == cPBool     = return typePType
-  | f == cError     = return $ mkFunType [typeStr] typeError  -- non-can. of empty set
-  | f == cPFalse    = return $ typePBool
-  | f == cPTrue     = return $ typePBool
-  | f == cDp        = return $ mkFunType [typeInt,typeTok] typeTok
-  | f == cDrop      = return $ mkFunType [typeInt,typeTok] typeTok
-  | f == cEqInt     = return $ mkFunType [typeInt,typeInt] typePBool
-  | f == cLessInt   = return $ mkFunType [typeInt,typeInt] typePBool
-  | f == cEqStr     = return $ mkFunType [typeTok,typeTok] typePBool
-  | f == cLength    = return $ mkFunType [typeTok] typeInt
-  | f == cOccur     = return $ mkFunType [typeTok,typeTok] typePBool
-  | f == cOccurs    = return $ mkFunType [typeTok,typeTok] typePBool
-  | f == cPlus      = return $ mkFunType [typeInt,typeInt] (typeInt)
-----  "read"   -> (P : Type) -> Tok -> P
-  | f == cShow      = return $ mkProd -- (P : PType) -> P -> Tok
-    [(Explicit,varP,typePType),(Explicit,identW,Vr varP)] typeStr []
-  | f == cToStr     = return $ mkProd -- (L : Type)  -> L -> Str
-    [(Explicit,varL,typeType),(Explicit,identW,Vr varL)] typeStr []
-  | f == cMapStr    = return $ mkProd -- (L : Type)  -> (Str -> Str) -> L -> L
-    [(Explicit,varL,typeType),(Explicit,identW,mkFunType [typeStr] typeStr),(Explicit,identW,Vr varL)] (Vr varL) []
-  | f == cTake      = return $ mkFunType [typeInt,typeTok] typeTok
-  | f == cTk        = return $ mkFunType [typeInt,typeTok] typeTok
-  | otherwise       = Bad (render (text "unknown in Predef:" <+> ppIdent f))
-
-varL :: Ident
-varL = identC (BS.pack "L")
-
-varP :: Ident
-varP = identC (BS.pack "P")
-
-appPredefined :: Term -> Err (Term,Bool)
-appPredefined t = case t of
-  App f x0 -> do
-   (x,_) <- appPredefined x0
-   case f of
-    -- one-place functions
-    Q mod f | mod == cPredef ->
-      case x of
-        (K s) | f == cLength -> retb $ EInt $ toInteger $ length s
-        _                    -> retb t
-
-    -- two-place functions
-    App (Q mod f) z0 | mod == cPredef -> do
-     (z,_) <- appPredefined z0
-     case (norm z, norm x) of
-      (EInt i, K s)    | f == cDrop    -> retb $ K (drop (fi i) s)
-      (EInt i, K s)    | f == cTake    -> retb $ K (take (fi i) s)
-      (EInt i, K s)    | f == cTk      -> retb $ K (take (max 0 (length s - fi i)) s)
-      (EInt i, K s)    | f == cDp      -> retb $ K (drop (max 0 (length s - fi i)) s)
-      (K s,    K t)    | f == cEqStr   -> retb $ if s == t then predefTrue else predefFalse
-      (K s,    K t)    | f == cOccur   -> retb $ if substring s t then predefTrue else predefFalse
-      (K s,    K t)    | f == cOccurs  -> retb $ if any (flip elem t) s then predefTrue else predefFalse
-      (EInt i, EInt j) | f == cEqInt   -> retb $ if i==j then predefTrue else predefFalse
-      (EInt i, EInt j) | f == cLessInt -> retb $ if i<j  then predefTrue else predefFalse
-      (EInt i, EInt j) | f == cPlus    -> retb $ EInt $ i+j
-      (_,      t)      | f == cShow    -> retb $ foldr C Empty $ map K $ words $ render (ppTerm Unqualified 0 t)
-      (_,      K s)    | f == cRead    -> retb $ Cn (identC (BS.pack s)) --- because of K, only works for atomic tags
-      (_,      t)      | f == cToStr   -> trm2str t >>= retb
-      _ -> retb t ---- prtBad "cannot compute predefined" t
-
-    -- three-place functions
-    App (App (Q mod f) z0) y0 | mod == cPredef -> do
-     (y,_) <- appPredefined y0
-     (z,_) <- appPredefined z0
-     case (z, y, x) of
-       (ty,op,t) | f == cMapStr -> retf $ mapStr ty op t
-       _ -> retb t ---- prtBad "cannot compute predefined" t
-
-    _ -> retb t ---- prtBad "cannot compute predefined" t
-  _ -> retb t
-                  ---- should really check the absence of arg variables
- where
-   retb t = return (retc t,True)  -- no further computing needed
-   retf t = return (retc t,False) -- must be computed further
-   retc t = case t of
-     K [] -> t
-     K s  -> foldr1 C (map K (words s))
-     _    -> t
-   norm t = case t of
-     Empty -> K []
-     C u v -> case (norm u,norm v) of
-       (K x,K y) -> K (x +++ y)
-       _ -> t
-     _ -> t
-   fi = fromInteger
-
--- read makes variables into constants
-
-predefTrue = QC cPredef cPTrue
-predefFalse = QC cPredef cPFalse
-
-substring :: String -> String -> Bool
-substring s t = case (s,t) of
-  (c:cs, d:ds) -> (c == d && substring cs ds) || substring s ds
-  ([],_) -> True
-  _ -> False
-
-trm2str :: Term -> Err Term
-trm2str t = case t of
-  R ((_,(_,s)):_) -> trm2str s
-  T _ ((_,s):_)   -> trm2str s
-  V _ (s:_)       -> trm2str s
-  C _ _           -> return $ t
-  K _             -> return $ t
-  S c _           -> trm2str c
-  Empty           -> return $ t
-  _               -> Bad (render (text "cannot get Str from term" <+> ppTerm Unqualified 0 t))
-
--- simultaneous recursion on type and term: type arg is essential!
--- But simplify the task by assuming records are type-annotated
--- (this has been done in type checking)
-mapStr :: Type -> Term -> Term -> Term
-mapStr ty f t = case (ty,t) of
-  _ | elem ty [typeStr,typeTok] -> App f t
-  (_,        R ts)    -> R [(l,mapField v)   | (l,v) <- ts]
-  (Table a b,T ti cs) -> T ti [(p,mapStr b f v) | (p,v) <- cs]
-  _    -> t 
- where
-   mapField (mty,te) = case mty of
-     Just ty -> (mty,mapStr ty f te)
-     _ -> (mty,te)
diff --git a/src/compiler/GF/Compile/Concrete/Compute.hs b/src/compiler/GF/Compile/Concrete/Compute.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Concrete/Compute.hs
+++ /dev/null
@@ -1,456 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module      : GF.Compile.Concrete.Compute
--- Maintainer  : AR
--- Stability   : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/11/01 15:39:12 $ 
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.19 $
---
--- Computation of source terms. Used in compilation and in @cc@ command.
------------------------------------------------------------------------------
-
-module GF.Compile.Concrete.Compute (computeConcrete, computeTerm,computeConcreteRec) where
-
-import GF.Data.Operations
-import GF.Grammar.Grammar
-import GF.Infra.Ident
-import GF.Infra.Option
-import GF.Infra.Modules
-import GF.Data.Str
-import GF.Grammar.Printer
-import GF.Grammar.Predef
-import GF.Grammar.Macros
-import GF.Grammar.Lookup
-import GF.Compile.Refresh
-import GF.Grammar.PatternMatch
-import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ----
-
-import GF.Compile.Concrete.AppPredefined
-
-import Data.List (nub,intersperse)
-import Control.Monad (liftM2, liftM)
-import Text.PrettyPrint
-
--- | computation of concrete syntax terms into normal form
--- used mainly for partial evaluation
-computeConcrete :: SourceGrammar -> Term -> Err Term
-computeConcrete    g t = {- refreshTerm t >>= -} computeTerm g [] t
-computeConcreteRec g t = {- refreshTerm t >>= -} computeTermOpt True g [] t
-
-computeTerm :: SourceGrammar -> Substitution -> Term -> Err Term
-computeTerm = computeTermOpt False
-
--- rec=True is used if it cannot be assumed that looked-up constants
--- have already been computed (mainly with -optimize=noexpand in .gfr)
-
-computeTermOpt :: Bool -> SourceGrammar -> Substitution -> Term -> Err Term
-computeTermOpt rec gr = comput True where
-
-   comput full g t = ---- errIn ("subterm" +++ prt t) $ --- for debugging 
-              case t of
-
-     Q p c | p == cPredef -> return t
-           | otherwise    -> look p c 
-
-     Vr x -> do
-       t' <- maybe (Bad (render (text "no value given to variable" <+> ppIdent x))) return $ lookup x g
-       case t' of 
-         _ | t == t' -> return t
-         _ -> comp g t'
-
-     -- Abs x@(IA _) b -> do 
-     Abs _ _ _ | full -> do 
-       let (xs,b1) = termFormCnc t   
-       b' <- comp ([(x,Vr x) | (_,x) <- xs] ++ g) b1
-       return $ mkAbs xs b'
-     --  b' <- comp (ext x (Vr x) g) b
-     --  return $ Abs x b'
-     Abs _ _ _ -> return t -- hnf
-
-     Let (x,(_,a)) b -> do
-       a' <- comp g a
-       comp (ext x a' g) b
-
-     Prod b x a t -> do
-       a' <- comp g a
-       t' <- comp (ext x (Vr x) g) t
-       return $ Prod b x a' t'
-
-     -- beta-convert
-     App f a -> case appForm t of
-      (h,as) | length as > 1 -> do
-        h' <- hnf g h
-        as' <- mapM (comp g) as
-        case h' of
-          _ | not (null [() | FV _ <- as']) -> compApp g (mkApp h' as')
-          c@(QC _ _) -> do
-            return $ mkApp c as'
-          Q mod f | mod == cPredef -> do     
-            (t',b) <- appPredefined (mkApp h' as')
-            if b then return t' else comp g t'
-
-          Abs _ _ _ -> do
-            let (xs,b) = termFormCnc h'
-            let g' = (zip (map snd xs) as') ++ g
-            let as2 = drop (length xs) as'
-            let xs2 = drop (length as') xs
-            b' <- comp g' (mkAbs xs2 b)
-            if null as2 then return b' else comp g (mkApp b' as2)
-
-          _ -> compApp g (mkApp h' as')
-      _ -> compApp g t
-
-     P t l | isLockLabel l -> return $ R [] 
-     ---- a workaround 18/2/2005: take this away and find the reason
-     ---- why earlier compilation destroys the lock field
-
-
-     P t l  -> do
-       t' <- comp g t
-       case t' of
-         FV rs -> mapM (\c -> comp g (P c l)) rs >>= returnC . variants
-         R r   -> maybe (Bad (render (text "no value for label" <+> ppLabel l))) (comp g . snd) $ 
-                    lookup l $ reverse r 
-
-         ExtR a (R b) ->                 
-           case comp g (P (R b) l) of
-             Ok v -> return v
-             _ -> comp g (P a l)
-
---- { - --- this is incorrect, since b can contain the proper value
-         ExtR (R a) b ->                 -- NOT POSSIBLE both a and b records!
-           case comp g (P (R a) l) of
-             Ok v -> return v
-             _ -> comp g (P b l)
---- - } ---
-
-         S (T i cs) e -> prawitz g i (flip P l) cs e
-         S (V i cs) e -> prawitzV g i (flip P l) cs e
-
-         _   -> returnC $ P t' l
-
-     S t v -> do
-       t' <- compTable g t
-       v' <- comp g v
-       t1 <- case t' of
-----           V (RecType fs) _         -> uncurrySelect g fs t' v'
-----           T (TComp (RecType fs)) _ -> uncurrySelect g fs t' v'
-           _ -> return $ S t' v'
-       compSelect g t1
-
-     -- normalize away empty tokens
-     K "" -> return Empty
-
-     -- glue if you can
-     Glue x0 y0 -> do
-       x <- comp g x0
-       y <- comp g y0
-       case (x,y) of
-         (FV ks,_)         -> do
-           kys <- mapM (comp g . flip Glue y) ks
-           return $ variants kys
-         (_,FV ks)         -> do
-           xks <- mapM (comp g . Glue x) ks
-           return $ variants xks
-
-         (S (T i cs) e, s) -> prawitz g i (flip Glue s) cs e
-         (s, S (T i cs) e) -> prawitz g i (Glue s) cs e
-         (S (V i cs) e, s) -> prawitzV g i (flip Glue s) cs e
-         (s, S (V i cs) e) -> prawitzV g i (Glue s) cs e
-         (_,Empty)         -> return x
-         (Empty,_)         -> return y
-         (K a, K b)        -> return $ K (a ++ b)
-         (_, Alts (d,vs)) -> do
-----         (K a, Alts (d,vs)) -> do
-            let glx = Glue x
-            comp g $ Alts (glx d, [(glx v,c) | (v,c) <- vs])
-         (Alts _, ka) -> checks [do
-            y' <- strsFromTerm ka
-----         (Alts _, K a) -> checks [do
-            x' <- strsFromTerm x -- this may fail when compiling opers
-            return $ variants [
-              foldr1 C (map K (str2strings (glueStr v u))) | v <- x', u <- y']
-----              foldr1 C (map K (str2strings (glueStr v (str a)))) | v <- x']
-           ,return $ Glue x y
-           ]
-         (C u v,_) -> comp g $ C u (Glue v y)
-
-         _ -> do
-           mapM_ checkNoArgVars [x,y]
-           r <- composOp (comp g) t
-           returnC r
-
-     Alts (d,aa) -> do
-       d' <- comp g d
-       aa' <- mapM (compInAlts g) aa
-       returnC (Alts (d',aa'))
-
-     -- remove empty
-     C a b    -> do
-       a' <- comp g a
-       b' <- comp g b
-       case (a',b') of
-         (Alts _, K a) -> checks [do
-            as <- strsFromTerm a' -- this may fail when compiling opers
-            return $ variants [
-              foldr1 C (map K (str2strings (plusStr v (str a)))) | v <- as]
-            ,
-            return $ C a' b'
-           ]
-         (Empty,_) -> returnC b'
-         (_,Empty) -> returnC a'
-         _     -> returnC $ C a' b'
-
-     -- reduce free variation as much as you can
-     FV ts -> mapM (comp g) ts >>= returnC . variants
-
-     -- merge record extensions if you can
-     ExtR r s -> do
-       r' <- comp g r
-       s' <- comp g s
-       case (r',s') of
-         (R rs, R ss) -> plusRecord r' s'
-         (RecType rs, RecType ss) -> plusRecType r' s'
-         _ -> return $ ExtR r' s'
-
-     ELin c r -> do
-       r' <- comp g r
-       unlockRecord c r'
-
-     T _ _ -> compTable g t
-     V _ _ -> compTable g t
-
-     -- otherwise go ahead
-     _ -> composOp (comp g) t >>= returnC
-
-    where
-
-     compApp g (App f a) = do
-       f' <- hnf g f
-       a' <- comp g a
-       case (f',a') of
-         (Abs _ x b, FV as) -> 
-           mapM (\c -> comp (ext x c g) b) as >>= return . variants
-         (_, FV as)  -> mapM (\c -> comp g (App f' c)) as >>= return . variants
-         (FV fs, _)  -> mapM (\c -> comp g (App c a')) fs >>= return . variants
-         (Abs _ x b,_) -> comp (ext x a' g) b
-
-         (QC _ _,_)  -> returnC $ App f' a'
-
-         (S (T i cs) e,_) -> prawitz g i (flip App a') cs e
-         (S (V i cs) e,_) -> prawitzV g i (flip App a') cs e
-
-	 _ -> do
-           (t',b) <- appPredefined (App f' a')
-           if b then return t' else comp g t'
-
-     hnf  = comput False
-     comp = comput True
-
-     look p c
-       | rec       = lookupResDef gr p c >>= comp []
-       | otherwise = lookupResDef gr p c
-
-     ext x a g = (x,a):g
-
-     returnC = return --- . computed
-
-     variants ts = case nub ts of
-       [t] -> t
-       ts  -> FV ts
-
-     isCan v = case v of
-       Con _    -> True
-       QC _ _   -> True
-       App f a  -> isCan f && isCan a
-       R rs     -> all (isCan . snd . snd) rs
-       _        -> False
-
-     compPatternMacro p = case p of
-       PM m c -> case look m c of
-         Ok (EPatt p') -> compPatternMacro p'
-         _ -> Bad (render (text "pattern expected as value of" $$ nest 2 (ppPatt Unqualified 0 p)))
-       PAs x p -> do
-         p' <- compPatternMacro p
-         return $ PAs x p'
-       PAlt p q -> do
-         p' <- compPatternMacro p
-         q' <- compPatternMacro q
-         return $ PAlt p' q'
-       PSeq p q -> do
-         p' <- compPatternMacro p
-         q' <- compPatternMacro q
-         return $ PSeq p' q'
-       PRep p -> do
-         p' <- compPatternMacro p
-         return $ PRep p'
-       PNeg p -> do
-         p' <- compPatternMacro p
-         return $ PNeg p'
-       PR rs -> do
-         rs' <- mapPairsM compPatternMacro rs
-         return $ PR rs'
-
-       _ -> return p
-
-     compSelect g (S t' v') = case v' of
-       FV vs -> mapM (\c -> comp g (S t' c)) vs >>= returnC . variants        
-       _ -> case t' of
-         FV ccs -> mapM (\c -> comp g (S c v')) ccs >>= returnC . variants
-
-         T _ [(PW,c)] -> comp g c           --- an optimization
-         T _ [(PT _ PW,c)] -> comp g c
-
-         T _ [(PV z,c)] -> comp (ext z v' g) c --- another optimization
-         T _ [(PT _ (PV z),c)] -> comp (ext z v' g) c
-
-         -- course-of-values table: look up by index, no pattern matching needed
-
-         V ptyp ts -> do
-             vs <- allParamValues gr ptyp
-             case lookupR v' (zip vs [0 .. length vs - 1]) of
-               Just i -> comp g $ ts !! i
-               _ -> return $ S t' v' -- if v' is not canonical
-         T _ cc -> do
-           case matchPattern cc v' of
-             Ok (c,g') -> comp (g' ++ g) c
-             _ | isCan v' -> Bad (render (text "missing case" <+> ppTerm Unqualified 0 v' <+> text "in" <+> ppTerm Unqualified 0 t))
-             _ -> return $ S t' v' -- if v' is not canonical
-
-         S (T i cs) e -> prawitz g i (flip S v') cs e
-         S (V i cs) e -> prawitzV g i (flip S v') cs e
-         _    -> returnC $ S t' v'
-
-     --- needed to match records with and without type information
-     ---- todo: eliminate linear search in a list of records!
-     lookupR v vs = case v of
-       R rs -> lookup ([(x,y) | (x,(_,y)) <- rs]) 
-                                [([(x,y) | (x,(_,y)) <- rs],v) | (R rs,v) <- vs]
-       _ -> lookup v vs
-
-     -- case-expand tables
-     -- if already expanded, don't expand again
-     compTable g t = case t of
-         T i@(TComp ty) cs -> do
-           -- if there are no variables, don't even go inside
-           cs' <- if (null g) then return cs else mapPairsM (comp g) cs
-----           return $ V ty (map snd cs')
-           return $ T i cs'
-         V ty cs -> do
-           ty' <- comp g ty
-           -- if there are no variables, don't even go inside
-           cs' <- if (null g) then return cs else mapM (comp g) cs
-           return $ V ty' cs'
-
-         T i cs -> do
-           pty0 <- getTableType i
-           ptyp <- comp g pty0
-           case allParamValues gr ptyp of
-             Ok vs0 -> do
-               let vs = vs0 ---- [Val v ptyp i | (v,i) <- zip vs0 [0..]]
-               ps0  <- mapM (compPatternMacro . fst) cs
-               cs'  <- mapM (compBranchOpt g) (zip ps0 (map snd cs))
-               sts  <- mapM (matchPattern cs') vs 
-               ts   <- mapM (\ (c,g') -> comp (g' ++ g) c) sts
-               ps   <- mapM term2patt vs
-               let ps' = ps --- PT ptyp (head ps) : tail ps
-----               return $ V ptyp ts -- to save space, just course of values
-               return $ T (TComp ptyp) (zip ps' ts)
-             _ -> do
-               ps0  <- mapM (compPatternMacro . fst) cs
-               cs'  <- mapM (compBranch g) (zip ps0 (map snd cs))
-
-----               cs' <- mapM (compBranch g) cs
-               return $ T i cs'  -- happens with variable types
-         _ -> comp g t
-
-     compBranch g (p,v) = do
-       let g' = contP p ++ g
-       v' <- comp g' v
-       return (p,v')
-
-     compBranchOpt g c@(p,v) = case contP p of
-       [] -> return c
-       _ -> err (const (return c)) return $ compBranch g c
-
-     contP p = case p of
-       PV x -> [(x,Vr x)]
-       PC _ ps -> concatMap contP ps
-       PP _ _ ps -> concatMap contP ps
-       PT _ p -> contP p
-       PR rs -> concatMap (contP . snd) rs
-
-       PAs x p -> (x,Vr x) : contP p
-
-       PSeq p q -> concatMap contP [p,q]
-       PAlt p q -> concatMap contP [p,q]
-       PRep p   -> contP p
-       PNeg p   -> contP p
-
-       _ -> []
-
-     prawitz g i f cs e = do
-       cs' <- mapM (compBranch g) [(p, f v) | (p,v) <- cs]
-       return $ S (T i cs') e
-     prawitzV g i f cs e = do
-       cs' <- mapM (comp g) [(f v) | v <- cs]
-       return $ S (V i cs') e
-
-     compInAlts g (v,c) = do
-       v' <- comp g v
-       c' <- comp g c
-       c2 <- case c' of
-         EPatt p -> liftM Strs $ getPatts p
-         _ -> return c'
-       return (v',c2)
-      where
-       getPatts p = case p of
-         PAlt a b  -> liftM2 (++) (getPatts a) (getPatts b)
-         PString s -> return [K s]
-         PSeq a b  -> do
-           as <- getPatts a
-           bs <- getPatts b
-           return [K (s ++ t) | K s <- as, K t <- bs]
-         _ -> fail (render (text "not valid pattern in pre expression" <+> ppPatt Unqualified 0 p))
-
-{- ----
-     uncurrySelect g fs t v = do
-       ts <- mapM (allParamValues gr . snd) fs
-       vs <- mapM (comp g) [P v r | r <- map fst fs]
-       return $ reorderSelect t fs ts vs
-
-     reorderSelect t fs pss vs = case (t,fs,pss,vs) of
-       (V _ ts, f:fs1, ps:pss1, v:vs1) -> 
-         S (V (snd f) 
-             [reorderSelect (V (RecType fs1) t) fs1 pss1 vs1 | 
-               t <- segments (length ts `div` length ps) ts]) v 
-       (T (TComp _) cs, f:fs1, ps:pss1, v:vs1) -> 
-         S (T (TComp (snd f)) 
-             [(p,reorderSelect (T (TComp (RecType fs1)) c) fs1 pss1 vs1) | 
-               (ep,c) <- zip ps (segments (length cs `div` length ps) cs),
-               let Ok p = term2patt ep]) v 
-       _ -> t
-
-     segments i xs = 
-       let (x0,xs1) = splitAt i xs in x0 : takeWhile (not . null) (segments i xs1)
--}
-
-
--- | argument variables cannot be glued
-checkNoArgVars :: Term -> Err Term
-checkNoArgVars t = case t of
-  Vr (IA _ _)    -> Bad $ glueErrorMsg $ ppTerm Unqualified 0 t 
-  Vr (IAV _ _ _) -> Bad $ glueErrorMsg $ ppTerm Unqualified 0 t 
-  _ -> composOp checkNoArgVars t
-
-glueErrorMsg s = 
-  render (text "Cannot glue (+) term with run-time variable" <+> s <> char '.' $$
-          text "Use Prelude.bind instead.")
-
-getArgType t = case t of
-  V ty _ -> return ty
-  T (TComp ty) _ -> return ty
-  _ -> Bad (render (text "cannot get argument type of table" $$ nest 2 (ppTerm Unqualified 0 t)))
diff --git a/src/compiler/GF/Compile/Concrete/TypeCheck.hs b/src/compiler/GF/Compile/Concrete/TypeCheck.hs
deleted file mode 100644
--- a/src/compiler/GF/Compile/Concrete/TypeCheck.hs
+++ /dev/null
@@ -1,692 +0,0 @@
-{-# LANGUAGE PatternGuards #-}
-module GF.Compile.Concrete.TypeCheck( checkLType, inferLType, computeLType, ppType ) where
-
-import GF.Infra.CheckM
-import GF.Infra.Modules
-import GF.Data.Operations
-
-import GF.Grammar
-import GF.Grammar.Lookup
-import GF.Grammar.Predef
-import GF.Grammar.PatternMatch
-import GF.Grammar.Lockfield (isLockLabel, lockRecType, unlockRecord)
-import GF.Compile.Concrete.AppPredefined
-
-import Data.List
-import Control.Monad
-import Text.PrettyPrint
-
-computeLType :: SourceGrammar -> Context -> Type -> Check Type
-computeLType gr g0 t = comp (reverse [(b,x, Vr x) | (b,x,_) <- g0] ++ g0) t
- where
-  comp g ty = case ty of
-    _ | Just _ <- isTypeInts ty -> return ty ---- shouldn't be needed
-      | isPredefConstant ty     -> return ty ---- shouldn't be needed
-
-    Q m ident -> checkIn (text "module" <+> ppIdent m) $ do
-      ty' <- checkErr (lookupResDef gr m ident) 
-      if ty' == ty then return ty else comp g ty' --- is this necessary to test?
-
-    Vr ident  -> checkLookup ident g -- never needed to compute!
-
-    App f a -> do
-      f' <- comp g f
-      a' <- comp g a
-      case f' of
-        Abs b x t -> comp ((b,x,a'):g) t
-        _ -> return $ App f' a'
-
-    Prod bt x a b -> do
-      a' <- comp g a
-      b' <- comp ((bt,x,Vr x) : g) b
-      return $ Prod bt x a' b'
-
-    Abs bt x b -> do
-      b' <- comp ((bt,x,Vr x):g) b
-      return $ Abs bt x b'
-
-    ExtR r s -> do
-      r' <- comp g r
-      s' <- comp g s
-      case (r',s') of
-        (RecType rs, RecType ss) -> checkErr (plusRecType r' s') >>= comp g
-        _ -> return $ ExtR r' s'
-
-    RecType fs -> do
-      let fs' = sortRec fs
-      liftM RecType $ mapPairsM (comp g) fs'
-
-    ELincat c t -> do
-      t' <- comp g t
-      checkErr $ lockRecType c t' ---- locking to be removed AR 20/6/2009
-
-    _ | ty == typeTok -> return typeStr
-    _ | isPredefConstant ty -> return ty
-
-    _ -> composOp (comp g) ty
-
--- the underlying algorithms
-
-inferLType :: SourceGrammar -> Context -> Term -> Check (Term, Type)
-inferLType gr g trm = case trm of
-
-   Q m ident | isPredef m -> termWith trm $ checkErr (typPredefined ident)
-
-   Q m ident -> checks [
-     termWith trm $ checkErr (lookupResType gr m ident) >>= computeLType gr g
-     ,
-     checkErr (lookupResDef gr m ident) >>= inferLType gr g
-     ,
-     checkError (text "cannot infer type of constant" <+> ppTerm Unqualified 0 trm)
-     ]
-
-   QC m ident | isPredef m -> termWith trm $ checkErr (typPredefined ident)
-
-   QC m ident -> checks [
-       termWith trm $ checkErr (lookupResType gr m ident) >>= computeLType gr g
-       ,
-       checkErr (lookupResDef gr m ident) >>= inferLType gr g
-       ,
-       checkError (text "cannot infer type of canonical constant" <+> ppTerm Unqualified 0 trm)
-       ]
-
-   Vr ident -> termWith trm $ checkLookup ident g
-
-   Typed e t -> do
-     t' <- computeLType gr g t
-     checkLType gr g e t'
-     return (e,t')
-
-   App f a -> do
-     over <- getOverload gr g Nothing trm
-     case over of
-       Just trty -> return trty
-       _ -> do
-         (f',fty) <- inferLType gr g f
-         fty' <- computeLType gr g fty
-         case fty' of
-           Prod bt z arg val -> do 
-             a' <- justCheck g a arg
-             ty <- if isWildIdent z 
-                      then return val
-                      else substituteLType [(bt,z,a')] val
-             return (App f' a',ty) 
-           _ -> checkError (text "A function type is expected for" <+> ppTerm Unqualified 0 f <+> text "instead of type" <+> ppType fty)
-
-   S f x -> do
-     (f', fty) <- inferLType gr g f
-     case fty of
-       Table arg val -> do
-         x'<- justCheck g x arg
-         return (S f' x', val)
-       _ -> checkError (text "table lintype expected for the table in" $$ nest 2 (ppTerm Unqualified 0 trm))
-
-   P t i -> do
-     (t',ty) <- inferLType gr g t   --- ??
-     ty' <- computeLType gr g ty
-     let tr2 = P t' i
-     termWith tr2 $ case ty' of
-       RecType ts -> case lookup i ts of
-                       Nothing -> checkError (text "unknown label" <+> ppLabel i <+> text "in" $$ nest 2 (ppTerm Unqualified 0 ty'))
-                       Just x  -> return x
-       _          -> checkError (text "record type expected for:" <+> ppTerm Unqualified 0 t $$
-                                 text " instead of the inferred:" <+> ppTerm Unqualified 0 ty')
-
-   R r -> do
-     let (ls,fs) = unzip r
-     fsts <- mapM inferM fs
-     let ts = [ty | (Just ty,_) <- fsts]
-     checkCond (text "cannot infer type of record" $$ nest 2 (ppTerm Unqualified 0 trm)) (length ts == length fsts)
-     return $ (R (zip ls fsts), RecType (zip ls ts))
-
-   T (TTyped arg) pts -> do
-     (_,val) <- checks $ map (inferCase (Just arg)) pts
-     checkLType gr g trm (Table arg val)
-   T (TComp arg) pts -> do
-     (_,val) <- checks $ map (inferCase (Just arg)) pts
-     checkLType gr g trm (Table arg val)
-   T ti pts -> do  -- tries to guess: good in oper type inference
-     let pts' = [pt | pt@(p,_) <- pts, isConstPatt p]
-     case pts' of 
-       [] -> checkError (text "cannot infer table type of" <+> ppTerm Unqualified 0 trm)
-----       PInt k : _ -> return $ Ints $ max [i | PInt i <- pts'] 
-       _  -> do 
-         (arg,val) <- checks $ map (inferCase Nothing) pts'
-         checkLType gr g trm (Table arg val)
-   V arg pts -> do
-     (_,val) <- checks $ map (inferLType gr g) pts
-     return (trm, Table arg val)
-
-   K s  -> do
-     if elem ' ' s
-        then do
-          let ss = foldr C Empty (map K (words s))  
-          ----- removed irritating warning AR 24/5/2008
-          ----- checkWarn ("token \"" ++ s ++ 
-          -----              "\" converted to token list" ++ prt ss)
-          return (ss, typeStr)
-        else return (trm, typeStr)
-
-   EInt i -> return (trm, typeInt)
-
-   EFloat i -> return (trm, typeFloat)
-
-   Empty -> return (trm, typeStr)
-
-   C s1 s2 -> 
-     check2 (flip (justCheck g) typeStr) C s1 s2 typeStr
-
-   Glue s1 s2 -> 
-     check2 (flip (justCheck g) typeStr) Glue s1 s2 typeStr ---- typeTok
-
----- hack from Rename.identRenameTerm, to live with files with naming conflicts 18/6/2007
-   Strs (Cn c : ts) | c == cConflict -> do
-     checkWarn (text "unresolved constant, could be any of" <+> hcat (map (ppTerm Unqualified 0) ts))
-     inferLType gr g (head ts)
-
-   Strs ts -> do
-     ts' <- mapM (\t -> justCheck g t typeStr) ts 
-     return (Strs ts', typeStrs)
-
-   Alts (t,aa) -> do
-     t'  <- justCheck g t typeStr
-     aa' <- flip mapM aa (\ (c,v) -> do
-        c' <- justCheck g c typeStr 
-        v' <- checks $ map (justCheck g v) [typeStrs, EPattType typeStr]
-        return (c',v'))
-     return (Alts (t',aa'), typeStr)
-
-   RecType r -> do
-     let (ls,ts) = unzip r
-     ts' <- mapM (flip (justCheck g) typeType) ts 
-     return (RecType (zip ls ts'), typeType)
-
-   ExtR r s -> do
-     (r',rT) <- inferLType gr g r 
-     rT'     <- computeLType gr g rT
-     (s',sT) <- inferLType gr g s
-     sT'     <- computeLType gr g sT
-
-     let trm' = ExtR r' s'
-     ---- trm'    <- checkErr $ plusRecord r' s'
-     case (rT', sT') of
-       (RecType rs, RecType ss) -> do
-         rt <- checkErr $ plusRecType rT' sT'
-         checkLType gr g trm' rt ---- return (trm', rt)
-       _ | rT' == typeType && sT' == typeType -> return (trm', typeType)
-       _ -> checkError (text "records or record types expected in" <+> ppTerm Unqualified 0 trm)
-
-   Sort _     -> 
-     termWith trm $ return typeType
-
-   Prod bt x a b -> do
-     a' <- justCheck g a typeType
-     b' <- justCheck ((bt,x,a'):g) b typeType
-     return (Prod bt x a' b', typeType)
-
-   Table p t  -> do
-     p' <- justCheck g p typeType --- check p partype! 
-     t' <- justCheck g t typeType
-     return $ (Table p' t', typeType)
-
-   FV vs -> do
-     (_,ty) <- checks $ map (inferLType gr g) vs
----     checkIfComplexVariantType trm ty
-     checkLType gr g trm ty
-
-   EPattType ty -> do
-     ty' <- justCheck g ty typeType
-     return (EPattType ty',typeType)
-   EPatt p -> do
-     ty <- inferPatt p
-     return (trm, EPattType ty)
-
-   ELin c trm -> do
-     (trm',ty) <- inferLType gr g trm
-     ty' <- checkErr $ lockRecType c ty ---- lookup c; remove lock AR 20/6/2009
-     return $ (ELin c trm', ty') 
-
-   _ -> checkError (text "cannot infer lintype of" <+> ppTerm Unqualified 0 trm)
-
- where
-   isPredef m = elem m [cPredef,cPredefAbs]
-
-   justCheck g ty te = checkLType gr g ty te >>= return . fst
-
-   -- for record fields, which may be typed
-   inferM (mty, t) = do
-     (t', ty') <- case mty of
-       Just ty -> checkLType gr g t ty
-       _ -> inferLType gr g t
-     return (Just ty',t')
-
-   inferCase mty (patt,term) = do
-     arg  <- maybe (inferPatt patt) return mty
-     cont <- pattContext gr g arg patt
-     (_,val) <- inferLType gr (reverse cont ++ g) term
-     return (arg,val)
-   isConstPatt p = case p of
-     PC _ ps -> True --- all isConstPatt ps
-     PP _ _ ps -> True --- all isConstPatt ps
-     PR ps -> all (isConstPatt . snd) ps
-     PT _ p -> isConstPatt p
-     PString _ -> True
-     PInt _ -> True
-     PFloat _ -> True
-     PChar -> True
-     PChars _ -> True
-     PSeq p q -> isConstPatt p && isConstPatt q
-     PAlt p q -> isConstPatt p && isConstPatt q
-     PRep p -> isConstPatt p
-     PNeg p -> isConstPatt p
-     PAs _ p -> isConstPatt p
-     _ -> False
-
-   inferPatt p = case p of
-     PP q c ps | q /= cPredef -> checkErr $ liftM valTypeCnc (lookupResType gr q c)
-     PAs _ p  -> inferPatt p
-     PNeg p   -> inferPatt p
-     PAlt p q -> checks [inferPatt p, inferPatt q]
-     PSeq _ _ -> return $ typeStr
-     PRep _   -> return $ typeStr
-     PChar    -> return $ typeStr
-     PChars _ -> return $ typeStr
-     _ -> inferLType gr g (patt2term p) >>= return . snd
-
-
--- type inference: Nothing, type checking: Just t
--- the latter permits matching with value type
-getOverload :: SourceGrammar -> Context -> Maybe Type -> Term -> Check (Maybe (Term,Type))
-getOverload gr g mt ot = case appForm ot of
-     (f@(Q m c), ts) -> case lookupOverload gr m c of
-       Ok typs -> do
-         ttys <- mapM (inferLType gr g) ts
-         v <- matchOverload f typs ttys
-         return $ Just v
-       _ -> return Nothing
-     _ -> return Nothing
- where
-   matchOverload f typs ttys = do
-     let (tts,tys) = unzip ttys
-     let vfs = lookupOverloadInstance tys typs
-     let matches = [vf | vf@((v,_),_) <- vfs, matchVal mt v]
-
-     case ([vf | (vf,True) <- matches],[vf | (vf,False) <- matches]) of
-       ([(val,fun)],_) -> return (mkApp fun tts, val)
-       ([],[(val,fun)]) -> do
-         checkWarn (text "ignoring lock fields in resolving" <+> ppTerm Unqualified 0 ot) 
-         return (mkApp fun tts, val)
-       ([],[]) -> do
-         let showTypes ty = hsep (map ppType ty)
-         checkError $ text "no overload instance of" <+> ppTerm Unqualified 0 f $$
-                      text "for" $$
-                      nest 2 (showTypes tys) $$
-                      text "among" $$
-                      nest 2 (vcat [showTypes ty | (ty,_) <- typs]) $$
-                      maybe empty (\x -> text "with value type" <+> ppType x) mt
-
-       (vfs1,vfs2) -> case (noProds vfs1,noProds vfs2) of
-         ([(val,fun)],_) -> do
-           return (mkApp fun tts, val)
-         ([],[(val,fun)]) -> do
-           checkWarn (text "ignoring lock fields in resolving" <+> ppTerm Unqualified 0 ot) 
-           return (mkApp fun tts, val)
-
------ unsafely exclude irritating warning AR 24/5/2008
------           checkWarn $ "overloading of" +++ prt f +++ 
------             "resolved by excluding partial applications:" ++++
------             unlines [prtType env ty | (ty,_) <- vfs', not (noProd ty)]
-
-
-         _ -> checkError $ text "ambiguous overloading of" <+> ppTerm Unqualified 0 f <+>
-                           text "for" <+> hsep (map ppType tys) $$ 
-                           text "with alternatives" $$
-                           nest 2 (vcat [ppType ty | (ty,_) <- if null vfs1 then vfs2 else vfs2])
-
-   matchVal mt v = elem mt [Nothing,Just v,Just (unlocked v)]
-
-   unlocked v = case v of
-     RecType fs -> RecType $ filter (not . isLockLabel . fst) fs
-     _ -> v
-   ---- TODO: accept subtypes
-   ---- TODO: use a trie
-   lookupOverloadInstance tys typs = 
-     [((mkFunType rest val, t),isExact) | 
-       let lt = length tys,
-       (ty,(val,t)) <- typs, length ty >= lt,
-       let (pre,rest) = splitAt lt ty, 
-       let isExact = pre == tys,
-       isExact || map unlocked pre == map unlocked tys
-     ]
-
-   noProds vfs = [(v,f) | (v,f) <- vfs, noProd v]
-
-   noProd ty = case ty of
-     Prod _ _ _ _ -> False
-     _ -> True
-
-checkLType :: SourceGrammar -> Context -> Term -> Type -> Check (Term, Type)
-checkLType gr g trm typ0 = do
-
-  typ <- computeLType gr g typ0
-
-  case trm of
-
-    Abs bt x c -> do
-      case typ of
-        Prod bt' z a b -> do 
-          (c',b') <- if isWildIdent z
-                       then checkLType gr ((bt,x,a):g) c b
-                       else do b' <- checkIn (text "abs") $ substituteLType [(bt',z,Vr x)] b
-                               checkLType gr ((bt,x,a):g) c b'
-          return $ (Abs bt x c', Prod bt' x a b')
-        _ -> checkError $ text "function type expected instead of" <+> ppType typ
-
-    App f a -> do
-       over <- getOverload gr g (Just typ) trm
-       case over of
-         Just trty -> return trty
-         _ -> do
-          (trm',ty') <- inferLType gr g trm
-          termWith trm' $ checkEqLType gr g typ ty' trm'
-
-    Q _ _ -> do
-       over <- getOverload gr g (Just typ) trm
-       case over of
-         Just trty -> return trty
-         _ -> do
-          (trm',ty') <- inferLType gr g trm
-          termWith trm' $ checkEqLType gr g typ ty' trm'
-
-    T _ [] ->
-      checkError (text "found empty table in type" <+> ppTerm Unqualified 0 typ)
-    T _ cs -> case typ of 
-      Table arg val -> do 
-        case allParamValues gr arg of
-          Ok vs -> do
-            let ps0 = map fst cs
-            ps <- checkErr $ testOvershadow ps0 vs
-            if null ps 
-              then return () 
-              else checkWarn (text "patterns never reached:" $$
-                              nest 2 (vcat (map (ppPatt Unqualified 0) ps)))
-          _ -> return () -- happens with variable types
-        cs' <- mapM (checkCase arg val) cs
-        return (T (TTyped arg) cs', typ)
-      _ -> checkError $ text "table type expected for table instead of" $$ nest 2 (ppType typ)
-
-    R r -> case typ of --- why needed? because inference may be too difficult
-       RecType rr -> do
-         let (ls,_) = unzip rr        -- labels of expected type
-         fsts <- mapM (checkM r) rr   -- check that they are found in the record
-         return $ (R fsts, typ)       -- normalize record
-
-       _ -> checkError (text "record type expected in type checking instead of" $$ nest 2 (ppTerm Unqualified 0 typ))
-
-    ExtR r s -> case typ of
-       _ | typ == typeType -> do
-         trm' <- computeLType gr g trm
-         case trm' of
-           RecType _ -> termWith trm $ return typeType
-           ExtR (Vr _) (RecType _) -> termWith trm $ return typeType 
-                                      -- ext t = t ** ...
-           _ -> checkError (text "invalid record type extension" <+> nest 2 (ppTerm Unqualified 0 trm))
-
-       RecType rr -> do
-         (r',ty,s') <- checks [
-            do (r',ty) <- inferLType gr g r
-               return (r',ty,s)
-           ,
-            do (s',ty) <- inferLType gr g s
-               return (s',ty,r)
-           ]
-
-         case ty of
-           RecType rr1 -> do
-                let (rr0,rr2) = recParts rr rr1
-                r2 <- justCheck g r' rr0
-                s2 <- justCheck g s' rr2
-                return $ (ExtR r2 s2, typ) 
-           _ -> checkError (text "record type expected in extension of" <+> ppTerm Unqualified 0 r $$
-                            text "but found" <+> ppTerm Unqualified 0 ty)
-
-       ExtR ty ex -> do
-         r' <- justCheck g r ty
-         s' <- justCheck g s ex
-         return $ (ExtR r' s', typ) --- is this all? it assumes the same division in trm and typ
-
-       _ -> checkError (text "record extension not meaningful for" <+> ppTerm Unqualified 0 typ)
-
-    FV vs -> do
-      ttys <- mapM (flip (checkLType gr g) typ) vs
----      checkIfComplexVariantType trm typ
-      return (FV (map fst ttys), typ) --- typ' ?
-
-    S tab arg -> checks [ do
-      (tab',ty) <- inferLType gr g tab
-      ty'       <- computeLType gr g ty
-      case ty' of
-        Table p t -> do
-          (arg',val) <- checkLType gr g arg p
-          checkEqLType gr g typ t trm
-          return (S tab' arg', t)
-        _ -> checkError (text "table type expected for applied table instead of" <+> ppType ty')
-     , do
-      (arg',ty) <- inferLType gr g arg
-      ty'       <- computeLType gr g ty
-      (tab',_)  <- checkLType gr g tab (Table ty' typ)
-      return (S tab' arg', typ)
-      ]
-    Let (x,(mty,def)) body -> case mty of
-      Just ty -> do
-        (def',ty') <- checkLType gr g def ty
-        body' <- justCheck ((Explicit,x,ty'):g) body typ
-        return (Let (x,(Just ty',def')) body', typ)
-      _ -> do
-        (def',ty) <- inferLType gr g def  -- tries to infer type of local constant
-        checkLType gr g (Let (x,(Just ty,def')) body) typ
-
-    ELin c tr -> do
-      tr1 <- checkErr $ unlockRecord c tr
-      checkLType gr g tr1 typ
-
-    _ -> do
-      (trm',ty') <- inferLType gr g trm
-      termWith trm' $ checkEqLType gr g typ ty' trm'
- where
-   justCheck g ty te = checkLType gr g ty te >>= return . fst
-
-   recParts rr t = (RecType rr1,RecType rr2) where 
-     (rr1,rr2) = partition (flip elem (map fst t) . fst) rr 
-
-   checkM rms (l,ty) = case lookup l rms of
-     Just (Just ty0,t) -> do
-       checkEqLType gr g ty ty0 t
-       (t',ty') <- checkLType gr g t ty
-       return (l,(Just ty',t'))
-     Just (_,t) -> do
-       (t',ty') <- checkLType gr g t ty
-       return (l,(Just ty',t'))
-     _ -> checkError $ 
-            if isLockLabel l 
-              then let cat = drop 5 (showIdent (label2ident l))
-                   in ppTerm Unqualified 0 (R rms) <+> text "is not in the lincat of" <+> text cat <> 
-                      text "; try wrapping it with lin" <+> text cat
-              else text "cannot find value for label" <+> ppLabel l <+> text "in" <+> ppTerm Unqualified 0 (R rms)
-
-   checkCase arg val (p,t) = do
-     cont <- pattContext gr g arg p
-     t' <- justCheck (reverse cont ++ g) t val
-     return (p,t')
-
-pattContext :: SourceGrammar -> Context -> Type -> Patt -> Check Context
-pattContext env g typ p = case p of
-  PV x -> return [(Explicit,x,typ)]
-  PP q c ps | q /= cPredef -> do ---- why this /=? AR 6/1/2006
-    t <- checkErr $ lookupResType env q c
-    let (cont,v) = typeFormCnc t
-    checkCond (text "wrong number of arguments for constructor in" <+> ppPatt Unqualified 0 p) 
-              (length cont == length ps)
-    checkEqLType env g typ v (patt2term p)
-    mapM (\((_,_,ty),p) -> pattContext env g ty p) (zip cont ps) >>= return . concat
-  PR r -> do
-    typ' <- computeLType env g typ
-    case typ' of
-      RecType t -> do
-        let pts = [(ty,tr) | (l,tr) <- r, Just ty <- [lookup l t]]
-        ----- checkWarn $ prt p ++++ show pts ----- debug
-        mapM (uncurry (pattContext env g)) pts >>= return . concat
-      _ -> checkError (text "record type expected for pattern instead of" <+> ppTerm Unqualified 0 typ')
-  PT t p' -> do
-    checkEqLType env g typ t (patt2term p')
-    pattContext env g typ p'
-
-  PAs x p -> do
-    g' <- pattContext env g typ p
-    return ((Explicit,x,typ):g')
-
-  PAlt p' q -> do
-    g1 <- pattContext env g typ p'
-    g2 <- pattContext env g typ q
-    let pts = nub ([x | pt@(_,x,_) <- g1, notElem pt g2] ++ [x | pt@(_,x,_) <- g2, notElem pt g1])
-    checkCond 
-      (text "incompatible bindings of" <+>
-       fsep (map ppIdent pts) <+> 
-       text "in pattern alterantives" <+> ppPatt Unqualified 0 p) (null pts) 
-    return g1 -- must be g1 == g2
-  PSeq p q -> do
-    g1 <- pattContext env g typ p
-    g2 <- pattContext env g typ q
-    return $ g1 ++ g2
-  PRep p' -> noBind typeStr p'
-  PNeg p' -> noBind typ p'
-
-  _ -> return [] ---- check types!
- where 
-   noBind typ p' = do
-    co <- pattContext env g typ p'
-    if not (null co)
-      then checkWarn (text "no variable bound inside pattern" <+> ppPatt Unqualified 0 p) 
-           >> return []
-      else return []
-
-checkEqLType :: SourceGrammar -> Context -> Type -> Type -> Term -> Check Type
-checkEqLType gr g t u trm = do
-  (b,t',u',s) <- checkIfEqLType gr g t u trm
-  case b of
-    True  -> return t'
-    False -> checkError $ text s <+> text "type of" <+> ppTerm Unqualified 0 trm $$
-                          text "expected:" <+> ppType t $$
-                          text "inferred:" <+> ppType u
-
-checkIfEqLType :: SourceGrammar -> Context -> Type -> Type -> Term -> Check (Bool,Type,Type,String)
-checkIfEqLType gr g t u trm = do
-  t' <- computeLType gr g t
-  u' <- computeLType gr g u
-  case t' == u' || alpha [] t' u' of
-    True -> return (True,t',u',[])
-    -- forgive missing lock fields by only generating a warning.
-    --- better: use a flag to forgive? (AR 31/1/2006)
-    _ -> case missingLock [] t' u' of
-      Ok lo -> do
-        checkWarn $ text "missing lock field" <+> fsep (map ppLabel lo)
-        return (True,t',u',[])
-      Bad s -> return (False,t',u',s)
-
-  where
-
-   -- t is a subtype of u 
-   --- quick hack version of TC.eqVal
-   alpha g t u = case (t,u) of  
-
-     -- error (the empty type!) is subtype of any other type
-     (_,u) | u == typeError -> True
-
-     -- contravariance
-     (Prod _ x a b, Prod _ y c d) -> alpha g c a && alpha ((x,y):g) b d 
-                              
-     -- record subtyping
-     (RecType rs, RecType ts) -> all (\ (l,a) -> 
-                                   any (\ (k,b) -> alpha g a b && l == k) ts) rs
-     (ExtR r s, ExtR r' s') -> alpha g r r' && alpha g s s'
-     (ExtR r s, t) -> alpha g r t || alpha g s t
-
-     -- the following say that Ints n is a subset of Int and of Ints m >= n
-     (t,u) | Just m <- isTypeInts t, Just n <- isTypeInts t -> m >= n
-           | Just _ <- isTypeInts t, u == typeInt           -> True ---- check size!
-           | t == typeInt,           Just _ <- isTypeInts u -> True ---- why this ???? AR 11/12/2005
-
-     ---- this should be made in Rename
-     (Q  m a, Q  n b) | a == b -> elem m (allExtendsPlus gr n) 
-                               || elem n (allExtendsPlus gr m)
-                               || m == n --- for Predef
-     (QC m a, QC n b) | a == b -> elem m (allExtendsPlus gr n) 
-                               || elem n (allExtendsPlus gr m)
-     (QC m a, Q  n b) | a == b -> elem m (allExtendsPlus gr n) 
-                               || elem n (allExtendsPlus gr m)
-     (Q  m a, QC n b) | a == b -> elem m (allExtendsPlus gr n) 
-                               || elem n (allExtendsPlus gr m)
-
-     (Table a b,  Table c d)  -> alpha g a c && alpha g b d
-     (Vr x,       Vr y)       -> x == y || elem (x,y) g || elem (y,x) g
-     _                        -> t == u 
-     --- the following should be one-way coercions only. AR 4/1/2001
-                                  || elem t sTypes && elem u sTypes
-                                  || (t == typeType && u == typePType) 
-                                  || (u == typeType && t == typePType) 
-
-   missingLock g t u = case (t,u) of  
-     (RecType rs, RecType ts) -> 
-       let 
-         ls = [l | (l,a) <- rs, 
-                   not (any (\ (k,b) -> alpha g a b && l == k) ts)]
-         (locks,others) = partition isLockLabel ls
-       in case others of
-         _:_ -> Bad $ render (text "missing record fields:" <+> fsep (punctuate comma (map ppLabel others)))
-         _ -> return locks
-     -- contravariance
-     (Prod _ x a b, Prod _ y c d) -> do
-        ls1 <- missingLock g c a
-        ls2 <- missingLock g b d
-        return $ ls1 ++ ls2
-
-     _ -> Bad ""
-
-   sTypes = [typeStr, typeTok, typeString]
-
--- auxiliaries
-
--- | light-weight substitution for dep. types
-substituteLType :: Context -> Type -> Check Type
-substituteLType g t = case t of
-  Vr x -> return $ maybe t id $ lookup x [(x,t) | (_,x,t) <- g]
-  _ -> composOp (substituteLType g) t
-
-termWith :: Term -> Check Type -> Check (Term, Type)
-termWith t ct = do
-  ty <- ct
-  return (t,ty)
-
--- | compositional check\/infer of binary operations
-check2 :: (Term -> Check Term) -> (Term -> Term -> Term) -> 
-          Term -> Term -> Type -> Check (Term,Type)
-check2 chk con a b t = do
-  a' <- chk a
-  b' <- chk b
-  return (con a' b', t)
-
--- printing a type with a lock field lock_C as C
-ppType :: Type -> Doc
-ppType ty =
-  case ty of
-    RecType fs   -> case filter isLockLabel $ map fst fs of
-                      [lock] -> text (drop 5 (showIdent (label2ident lock)))
-                      _      -> ppTerm Unqualified 0 ty
-    Prod _ x a b -> ppType a <+> text "->" <+> ppType b
-    _            -> ppTerm Unqualified 0 ty
-
-checkLookup :: Ident -> Context -> Check Type
-checkLookup x g =
-  case [ty | (b,y,ty) <- g, x == y] of
-    []     -> checkError (text "unknown variable" <+> ppIdent x)
-    (ty:_) -> return ty
diff --git a/src/compiler/GF/Compile/ExampleBased.hs b/src/compiler/GF/Compile/ExampleBased.hs
--- a/src/compiler/GF/Compile/ExampleBased.hs
+++ b/src/compiler/GF/Compile/ExampleBased.hs
@@ -6,6 +6,7 @@
 import PGF
 import PGF.Probabilistic
 import PGF.Morphology
+import GF.Compile.ToAPI
 
 import Data.List
 
@@ -41,22 +42,30 @@
   convEx (cat,ex) = do
     appn "("
     let typ = maybe (error "no valid cat") id $ readType cat
-    let ts = rank $ parse pgf lang typ ex
-    ws <- case ts of
-      []   -> do
+    ws <- case fst (parse_ pgf lang typ (Just 4) ex) of
+      ParseFailed _ -> do
         let ws = morphoMissing morpho (words ex)
         appv ("WARNING: cannot parse example " ++ ex) 
         case ws of
           [] -> return ()
           _  -> appv ("  missing words: " ++ unwords ws)
-        return ws 
-      t:tt -> appv ("WARNING: ambiguous example " ++ ex) >>
-              appn t >> mapM_ (appn . ("  --- " ++)) tt >> return []
-    appn ")"
+        return ws
+      TypeError _ ->
+        return []
+      ParseIncomplete ->
+        return []
+      ParseOk ts ->
+        case rank ts of
+          (t:tt) -> do
+            if null tt 
+              then return ()
+              else appv ("WARNING: ambiguous example " ++ ex) 
+            appn t 
+            mapM_ (appn . ("  --- " ++)) tt
+            appn ")" 
+            return [] 
     return ws
-  rank ts = case probs conf of
-    Just probs -> [showExpr [] t ++ "  -- " ++ show p | (t,p) <- rankTreesByProbs probs ts]
-    _ -> map (showExpr []) ts
+  rank ts = [printExp conf t ++ "  -- " ++ show p | (t,p) <- rankTreesByProbs pgf ts]
   appf = appendFile file
   appn s = appf s >> appf "\n"
   appv s = appn ("--- " ++ s) >> putStrLn s
@@ -64,11 +73,11 @@
 data ExConfiguration = ExConf {
   resource_pgf    :: PGF,
   resource_morpho :: Morpho,
-  probs    :: Maybe Probabilities,
   verbose  :: Bool,
-  language :: Language
+  language :: Language,
+  printExp :: Tree -> String
   }
 
-configureExBased :: PGF -> Morpho -> Maybe Probabilities -> Language -> ExConfiguration
-configureExBased pgf morpho mprobs lang = ExConf pgf morpho mprobs False lang
+configureExBased :: PGF -> Morpho -> Language -> (Tree -> String) -> ExConfiguration
+configureExBased pgf morpho lang pr = ExConf pgf morpho False lang pr
 
diff --git a/src/compiler/GF/Compile/GeneratePMCFG.hs b/src/compiler/GF/Compile/GeneratePMCFG.hs
--- a/src/compiler/GF/Compile/GeneratePMCFG.hs
+++ b/src/compiler/GF/Compile/GeneratePMCFG.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE BangPatterns, RankNTypes, FlexibleInstances, MultiParamTypeClasses #-}
+{-# LANGUAGE BangPatterns, RankNTypes, FlexibleInstances, MultiParamTypeClasses, PatternGuards #-}
 ----------------------------------------------------------------------
 -- |
 -- Maintainer  : Krasimir Angelov
@@ -13,11 +13,15 @@
     (convertConcrete) where
 
 import PGF.CId
-import PGF.Data
-import PGF.Macros
+import PGF.Data hiding (Type)
 
 import GF.Infra.Option
+import GF.Grammar hiding (Env, mkRecord, mkTable)
+import qualified GF.Infra.Modules as M
+import GF.Grammar.Lookup
+import GF.Grammar.Predef
 import GF.Data.BacktrackM
+import GF.Data.Operations
 import GF.Data.Utilities (updateNthM, updateNth, sortNub)
 
 import System.IO
@@ -26,42 +30,63 @@
 import qualified Data.List as List
 import qualified Data.IntMap as IntMap
 import qualified Data.ByteString.Char8 as BS
+import Text.PrettyPrint hiding (Str)
 import Data.Array.IArray
 import Data.Maybe
+import Data.Char (isDigit)
 import Control.Monad
+import Control.Monad.Identity
 import Control.Exception
 
 ----------------------------------------------------------------------
 -- main conversion function
 
 
---convertConcrete :: Options -> Abstr -> CId -> Concr -> IO Concr
-convertConcrete opts lang flags printnames abs_defs cnc_defs lincats params lin_defs = do
-  let env0 = emptyGrammarEnv cnc_defs cat_defs params
+convertConcrete :: Options -> SourceGrammar -> SourceModule -> SourceModule -> IO Concr
+convertConcrete opts0 gr am cm = do
+  let env = emptyGrammarEnv gr cm
   when (flag optProf opts) $ do
-    profileGrammar lang cnc_defs env0 pfrules
-  env1 <- expandHOAS opts abs_defs cnc_defs cat_defs lin_defs env0
-  env2 <- foldM (convertRule opts cnc_defs) env1 pfrules
-  return $ getParserInfo flags printnames env2
+    profileGrammar cm env pfrules
+  env <- foldM (convertLinDef gr opts) env pflindefs
+  env <- foldM (convertRule gr opts) env pfrules
+  return $ getConcr flags printnames env
   where
-    cat_defs = Map.insert cidVar (S []) lincats
+    (m,mo) = cm
+    
+    opts = addOptions (M.flags (snd am)) opts0
 
+    pflindefs = [
+      ((m,id),term,lincat) |
+        (id,GF.Grammar.CncCat (Just (L _ lincat)) (Just (L _ term)) _) <- Map.toList (M.jments mo)]
+
     pfrules = [
-      (PFRule id args (0,res) (map findLinType args) (findLinType (0,res)) term) | 
-        (id, (ty,_,_)) <- Map.toList abs_defs, let (args,res) = typeSkeleton ty, 
-        term <- maybeToList (Map.lookup id cnc_defs)]
-        
-    findLinType (_,id) = fromMaybe (error $ "No lincat for " ++ show id) (Map.lookup id cat_defs)
+      (PFRule id args ([],res) (map (\(_,_,ty) -> ty) cont) val term) |
+        (id,GF.Grammar.CncFun (Just (cat,cont,val)) (Just (L _ term)) _) <- Map.toList (M.jments mo),
+        let (ctxt,res,_) = err error typeForm (lookupFunType gr (fst am) id)
+            args         = [catSkeleton ty | (_,_,ty) <- ctxt]]
 
-profileGrammar lang cnc_defs (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) pfrules = do
+    flags   = Map.fromList [(mkCId f,LStr x) | (f,x) <- optionsPGF (M.flags mo)]
+
+    printnames = Map.fromAscList [(i2i id, name) | (id,info) <- Map.toList (M.jments mo), name <- prn info]
+      where
+        prn (GF.Grammar.CncFun _ _ (Just (L _ tr))) = [flatten tr]
+        prn (GF.Grammar.CncCat _ _ (Just (L _ tr))) = [flatten tr]
+        prn _                                       = []
+
+        flatten (K s)      = s
+        flatten (Alts x _) = flatten x
+        flatten (C x y)    = flatten x +++ flatten y
+
+i2i :: Ident -> CId
+i2i = CId . ident2bs
+
+profileGrammar (m,mo) env@(GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) pfrules = do
   hPutStrLn stderr ""
-  hPutStrLn stderr ("Language: " ++ show lang)
+  hPutStrLn stderr ("Language: " ++ showIdent m)
   hPutStrLn stderr ""
   hPutStrLn stderr "Categories                 Count"
   hPutStrLn stderr "--------------------------------"
-  case IntMap.lookup 0 catSet of
-    Just cats -> mapM_ profileCat (Map.toList cats)
-    Nothing   -> return ()
+  mapM_ profileCat (Map.toList catSet)
   hPutStrLn stderr "--------------------------------"
   hPutStrLn stderr ""
   hPutStrLn stderr "Rules                      Count"
@@ -69,178 +94,343 @@
   mapM_ profileRule pfrules
   hPutStrLn stderr "--------------------------------"
   where
-    profileCat (cid,(fcat1,fcat2,_,_)) = do
-      hPutStrLn stderr (lformat 23 cid ++ rformat 9 (fcat2-fcat1+1))
+    profileCat (cid,(fcat1,fcat2,_)) = do
+      hPutStrLn stderr (lformat 23 (showIdent cid) ++ rformat 9 (show (fcat2-fcat1+1)))
 
     profileRule (PFRule fun args res ctypes ctype term) = do
-      let pargs = zipWith (protoFCat cnc_defs) args ctypes
-      hPutStrLn stderr (lformat 23 fun ++ rformat 9 (product [length xs | PFCat _ _ _ tcs <- pargs, (_,xs) <- tcs]))
-
-    lformat :: Show a => Int -> a -> String
-    lformat n x = s ++ replicate (n-length s) ' '
+      let pargs = map (protoFCat env) args
+      hPutStrLn stderr (lformat 23 (showIdent fun) ++ rformat 9 (show (product (map (catFactor env) args))))
       where
-        s = show x
+        catFactor (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) (n,(_,cat)) =
+          case Map.lookup cat catSet of
+            Just (s,e,_) -> e-s+1
+            Nothing      -> 0
 
-    rformat :: Show a => Int -> a -> String
-    rformat n x = replicate (n-length s) ' ' ++ s
-      where
-        s = show x
+    lformat :: Int -> String -> String
+    lformat n s = s ++ replicate (n-length s) ' '
 
-brk :: (GrammarEnv -> GrammarEnv) -> (GrammarEnv -> GrammarEnv)
-brk f (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) =
-  case f (GrammarEnv last_id catSet seqSet funSet crcSet IntMap.empty) of
-    (GrammarEnv last_id catSet seqSet funSet crcSet topdown1) -> IntMap.foldWithKey optimize (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) topdown1
+    rformat :: Int -> String -> String
+    rformat n s = replicate (n-length s) ' ' ++ s
+
+data ProtoFRule = PFRule Ident         {- function -}
+                         [([Cat],Cat)] {- argument types: context size and category -}
+                         ([Cat],Cat)   {- result   type : context size (always 0) and category  -}
+                         [Type]        {- argument lin-types representation -}
+                         Type          {- result   lin-type  representation -}
+                         Term          {- body -}
+
+optimize :: [ProtoFCat] -> GrammarEnv -> GrammarEnv
+optimize pargs (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) =
+  IntMap.foldWithKey optimize (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet IntMap.empty prodSet) appSet
   where
-    optimize cat ps env = IntMap.foldWithKey ff env (IntMap.fromListWith (++) [(funid,[args]) | PApply funid args <- Set.toList ps])
+    optimize cat ps env = IntMap.foldWithKey ff env (IntMap.fromListWith (++) [(funid,[args]) | (funid,args) <- Set.toList ps])
       where
         ff :: FunId -> [[FId]] -> GrammarEnv -> GrammarEnv
         ff funid xs env
-          | product (map Set.size ys) == count = 
-                                   case List.mapAccumL (\env c -> addFCoercion env (Set.toList c)) env ys of
-                                     (env,args) -> addProduction env cat (PApply funid args)
-          | otherwise                           =  List.foldl (\env args -> addProduction env cat (PApply funid args)) env xs
+          | product (map Set.size ys) == count
+                      = case List.mapAccumL (\env c -> addCoercion env (Set.toList c)) env ys of
+                          (env,args) -> let xs = sequence (zipWith addContext pargs args)
+                                        in List.foldl (\env x -> addProduction env cat (PApply funid x)) env xs
+          | otherwise = List.foldl (\env args -> let xs = sequence (zipWith addContext pargs args)
+                                                 in List.foldl (\env x -> addProduction env cat (PApply funid x)) env xs) env xs
           where
             count = length xs
             ys    = foldr (zipWith Set.insert) (repeat Set.empty) xs
 
-convertRule :: Options -> TermMap -> GrammarEnv -> ProtoFRule -> IO GrammarEnv
-convertRule opts cnc_defs grammarEnv (PFRule fun args res ctypes ctype term) = do
-  let pres  = protoFCat cnc_defs res ctype
-      pargs = zipWith (protoFCat cnc_defs) args ctypes
+        addContext (PFCat ctxt _ _) fid = do hyps <- mapM toCncHypo ctxt
+                                             return (PArg hyps fid)
 
-      b     = runBranchM (convertTerm cnc_defs [] ctype term) (pargs,[])
-      (grammarEnv1,b1) = addSequences' grammarEnv b
-      grammarEnv2 = brk (\grammarEnv -> foldBM addRule
-                                               grammarEnv
-                                               (go' b1 [] [])
-                                               (pres,pargs)  ) grammarEnv1
-  when (verbAtLeast opts Verbose) $ hPutStrLn stderr ("+ "++showCId fun)
-  return $! grammarEnv2
+        toCncHypo cat =
+          case Map.lookup cat catSet of
+            Just (s,e,_) -> do fid <- range (s,e)
+                               guard (fid `IntMap.member` lindefSet)
+                               return (fidVar,fid)
+            Nothing      -> mzero
+
+convertRule :: SourceGrammar -> Options -> GrammarEnv -> ProtoFRule -> IO GrammarEnv
+convertRule gr opts grammarEnv (PFRule fun args res ctypes ctype term) = do
+  let pres  = protoFCat grammarEnv res
+      pargs = map (protoFCat grammarEnv) args
+
+      b     = runCnvMonad gr (unfactor term >>= convertTerm opts CNil ctype) (pargs,[])
+      (grammarEnv1,b1) = addSequencesB grammarEnv b
+      grammarEnv2 = foldBM addRule
+                           grammarEnv1
+                           (goB b1 CNil [])
+                           (pres,pargs)
+      grammarEnv3 = optimize pargs grammarEnv2
+  when (verbAtLeast opts Verbose) $ hPutStrLn stderr ("+ "++showIdent fun)
+  return $! grammarEnv3
   where
     addRule lins (newCat', newArgs') env0 =
-      let [newCat]        = getFCats env0 newCat'
-          (env1, newArgs) = List.mapAccumL (\env -> addFCoercion env . getFCats env) env0 newArgs'
+      let [newCat]        = getFIds env0 newCat'
+          (env1, newArgs) = List.mapAccumL (\env -> addCoercion env . getFIds env) env0 newArgs'
 
-          (env2,funid) = addCncFun env1 (CncFun fun (mkArray lins))
+          (env2,funid) = addCncFun env1 (PGF.Data.CncFun (i2i fun) (mkArray lins))
 
-      in addProduction env2 newCat (PApply funid newArgs)
+      in addApplication env2 newCat (funid,newArgs)
 
+convertLinDef :: SourceGrammar -> Options -> GrammarEnv -> (Cat,Term,Type) -> IO GrammarEnv
+convertLinDef gr opts grammarEnv (cat,lindef,lincat) = do
+  let pres = protoFCat grammarEnv ([],cat)
+      parg = protoFCat grammarEnv ([],(identW,cVar))
+
+      b     = runCnvMonad gr (unfactor lindef >>= convertTerm opts CNil lincat) ([parg],[])
+      (grammarEnv1,b1) = addSequencesB grammarEnv b
+      grammarEnv2 = foldBM addRule
+                           grammarEnv1
+                           (goB b1 CNil [])
+                           (pres,[parg])
+  when (verbAtLeast opts Verbose) $ hPutStrLn stderr ("+ "++showCId lindefCId)
+  return $! grammarEnv2
+  where
+    lindefCId = mkCId ("lindef "++showIdent (snd cat))
+
+    addRule lins (newCat', newArgs') env0 =
+      let [newCat]     = getFIds env0 newCat'
+          (env1,funid) = addCncFun env0 (PGF.Data.CncFun lindefCId (mkArray lins))
+      in addLinDef env1 newCat funid
+
+unfactor :: Term -> CnvMonad Term
+unfactor t = CM (\gr c -> c (unfac gr t))
+  where
+    unfac gr t = 
+      case t of
+        T (TTyped ty) [(PV x,u)] -> V ty [restore x v (unfac gr u) | v <- err error id (allParamValues gr ty)]
+        _ -> composSafeOp (unfac gr) t
+      where
+        restore x u t = case t of
+                          Vr y | y == x -> u
+                          _             -> composSafeOp (restore x u) t
+
 ----------------------------------------------------------------------
--- Branch monad
+-- CnvMonad monad
+--
+-- The branching monad provides backtracking together with
+-- recording of the choices made. We have two cases
+-- when we have alternative choices:
+--
+--      * when we have parameter type, then
+--        we have to try all possible values
+--      * when we have variants we have to try all alternatives
+--
+-- The conversion monad keeps track of the choices and they are
+-- returned as 'Branch' data type.
 
-newtype BranchM a = BM (forall b . (a -> ([ProtoFCat],[Symbol]) -> Branch b) -> ([ProtoFCat],[Symbol]) -> Branch b)
+data Branch a
+  = Case Int Path [(Term,Branch a)]
+  | Variant [Branch a]
+  | Return  a
 
-instance Monad BranchM where
-    return a   = BM (\c s -> c a s)
-    BM m >>= k = BM (\c s -> m (\a s -> unBM (k a) c s) s)
-	where unBM (BM m) = m
+newtype CnvMonad a = CM {unCM :: SourceGrammar
+                              -> forall b . (a -> ([ProtoFCat],[Symbol]) -> Branch b)
+                              -> ([ProtoFCat],[Symbol])
+                              -> Branch b}
 
-instance MonadState ([ProtoFCat],[Symbol]) BranchM where
-    get = BM (\c s -> c s s)
-    put s = BM (\c _ -> c () s)
+instance Monad CnvMonad where
+    return a   = CM (\gr c s -> c a s)
+    CM m >>= k = CM (\gr c s -> m gr (\a s -> unCM (k a) gr c s) s)
 
-instance Functor BranchM where
-    fmap f (BM m) = BM (\c s -> m (c . f) s)
+instance MonadState ([ProtoFCat],[Symbol]) CnvMonad where
+    get = CM (\gr c s -> c s s)
+    put s = CM (\gr c _ -> c () s)
 
-runBranchM :: BranchM (Value a) -> ([ProtoFCat],[Symbol]) -> Branch a
-runBranchM (BM m) s = m (\v s -> Return v) s
+instance Functor CnvMonad where
+    fmap f (CM m) = CM (\gr c s -> m gr (c . f) s)
 
-variants :: [a] -> BranchM a
-variants xs = BM (\c s -> Variant [c x s | x <- xs])
+runCnvMonad :: SourceGrammar -> CnvMonad a -> ([ProtoFCat],[Symbol]) -> Branch a
+runCnvMonad gr (CM m) s = m gr (\v s -> Return v) s
 
-choices :: Int -> FPath -> BranchM LIndex
-choices nr path = BM (\c s -> let (args,_) = s
-		                  PFCat _ _ _ tcs = args !! nr
-                              in case fromMaybe (error "evalTerm: wrong path") (lookup path tcs) of
-                                   [index] -> c index s
-                                   indices -> Case nr path [c i (updateEnv i s) | i <- indices])
-  where    
-    updateEnv index (args,seq) = (updateNth (restrictArg path index) nr args,seq)
+-- | backtracking for all variants
+variants :: [a] -> CnvMonad a
+variants xs = CM (\gr c s -> Variant [c x s | x <- xs])
 
-    restrictArg path index (PFCat n cat rcs tcs) = PFCat n cat rcs (addConstraint path index tcs)
+-- | backtracking for all parameter values that a variable could take
+choices :: Int -> Path -> CnvMonad Term
+choices nr path = do (args,_) <- get
+                     let PFCat _ _ schema = args !! nr
+		     descend schema path CNil
+  where
+    descend (CRec rs)     (CProj lbl path) rpath = case lookup lbl rs of
+                                                     Just (Identity t) -> descend t path (CProj lbl rpath)
+    descend (CRec rs)     CNil             rpath = do rs <- mapM (\(lbl,Identity t) -> fmap (assign lbl) (descend t CNil (CProj lbl rpath))) rs
+                                                      return (R rs)
+    descend (CTbl pt cs)  (CSel  trm path) rpath = case lookup trm cs of
+                                                     Just (Identity t) -> descend t path (CSel trm rpath)
+    descend (CTbl pt cs)  CNil             rpath = do cs <- mapM (\(trm,Identity t) -> descend t CNil (CSel trm rpath)) cs
+                                                      return (V pt cs)
+    descend (CPar (m,vs)) CNil             rpath = case vs of
+                                                     [(value,index)] -> return value
+                                                     values          -> let path = reversePath rpath
+                                                                        in CM (\gr c s -> Case nr path [(value, updateEnv path value gr c s)
+                                                                                                                    | (value,index) <- values])
 
-    addConstraint path0 index0 []    = error "restrictProtoFCat: unknown path"
-    addConstraint path0 index0 (c@(path,indices) : tcs)
-      | path0 == path = ((path,[index0]) : tcs)
-      | otherwise     = c : addConstraint path0 index0 tcs
+    updateEnv path value gr c (args,seq) = 
+      case updateNthM (restrictProtoFCat path value) nr args of
+        Just args -> c value (args,seq)
+        Nothing   -> error "conflict in updateEnv"
 
-mkRecord :: [BranchM (Value a)] -> BranchM (Value a)
-mkRecord xs = BM (\c -> foldl (\c (BM m) bs s -> c (m (\v s -> Return v) s : bs) s) (c . Rec) xs [])
+-- | the argument should be a parameter type and then
+-- the function returns all possible values.
+getAllParamValues :: Type -> CnvMonad [Term]
+getAllParamValues ty = CM (\gr c -> c (err error id (allParamValues gr ty)))
 
+mkRecord :: [(Label,CnvMonad (Schema Branch s c))] -> CnvMonad (Schema Branch s c)
+mkRecord xs = CM (\gr c -> foldl (\c (lbl,CM m) bs s -> c ((lbl,m gr (\v s -> Return v) s) : bs) s) (c . CRec) xs [])
 
+mkTable  :: Type -> [(Term ,CnvMonad (Schema Branch s c))] -> CnvMonad (Schema Branch s c)
+mkTable pt xs = CM (\gr c -> foldl (\c (trm,CM m) bs s -> c ((trm,m gr (\v s -> Return v) s) : bs) s) (c . CTbl pt) xs [])
+
 ----------------------------------------------------------------------
--- term conversion
+-- Term Schema
+--
+-- The term schema is a term-like structure, with records, tables,
+-- strings and parameters values, but in addition we could add
+-- annotations of arbitrary types
 
-type CnvMonad a = BranchM a
+-- | Term schema
+data Schema b s c
+  = CRec      [(Label,b (Schema b s c))]
+  | CTbl Type [(Term, b (Schema b s c))]
+  | CStr s
+  | CPar c
 
-type FPath = [LIndex]
-data ProtoFCat  = PFCat Int CId [FPath] [(FPath,[LIndex])]
+-- | Path into a term or term schema
+data Path
+  = CProj Label Path
+  | CSel  Term  Path
+  | CNil
+  deriving (Eq,Show)
+
+-- | The ProtoFCat represents a linearization type as term schema.
+-- The annotations are as follows: the strings are annotated with
+-- their index in the PMCFG tuple, the parameters are annotated
+-- with their value both as term and as index.
+data ProtoFCat  = PFCat [Ident] Ident Proto
 type Env        = (ProtoFCat, [ProtoFCat])
-data ProtoFRule = PFRule CId           {- function -}
-                         [(Int,CId)]   {- argument types: context size and category -}
-                         (Int,CId)     {- result   type : context size (always 0) and category  -}
-                         [Term]        {- argument lin-types representation -}
-                         Term          {- result   lin-type  representation -}
-                         Term          {- body -}
-type TermMap    = Map.Map CId Term
 
+protoFCat :: GrammarEnv -> ([Cat],Cat) -> ProtoFCat
+protoFCat (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) (ctxt,(_,cat)) =
+  case Map.lookup cat catSet of
+    Just (_,_,proto) -> PFCat (map snd ctxt) cat proto
+    Nothing          -> error "unknown category"
+  
+ppPath (CProj lbl path) = ppLabel lbl              <+> ppPath path
+ppPath (CSel  trm path) = ppTerm Unqualified 5 trm <+> ppPath path
+ppPath CNil             = empty
 
-protoFCat :: TermMap -> (Int,CId) -> Term -> ProtoFCat
-protoFCat cnc_defs (n,cat) ctype = 
-  let (rcs,tcs) = loop [] [] [] ctype'
-  in PFCat n cat rcs tcs
+reversePath path = rev CNil path
   where
-    ctype'    -- extend the high-order linearization type
-      | n > 0     = case ctype of
-                      R xs -> R (xs ++ replicate n (S []))
-                      _    -> error $ "Not a record: " ++ show ctype
-      | otherwise = ctype
-  
-    loop path rcs tcs (R record) = List.foldr (\(index,term) (rcs,tcs) -> loop (index:path) rcs tcs term) (rcs,tcs) (zip [0..] record)
-    loop path rcs tcs (C i)      = (     rcs,(path,[0..i]):tcs)
-    loop path rcs tcs (S _)      = (path:rcs,              tcs)
-    loop path rcs tcs (F id)     = case Map.lookup id cnc_defs of
-                                     Just term -> loop path rcs tcs term
-                                     Nothing   -> error ("unknown identifier: "++show id)
+    rev path0 CNil             = path0
+    rev path0 (CProj lbl path) = rev (CProj lbl path0) path
+    rev path0 (CSel  trm path) = rev (CSel  trm path0) path
 
-data Branch a
-  = Case Int FPath [Branch a]
-  | Variant [Branch a]
-  | Return  (Value a)
 
-data Value a
-  = Rec [Branch a]
-  | Str a
-  | Con LIndex
+----------------------------------------------------------------------
+-- term conversion
 
+type Value a = Schema Branch a Term
 
-go' :: Branch SeqId -> FPath -> [SeqId] -> BacktrackM Env [SeqId]
-go' (Case nr path_ bs) path ss = do (index,b) <- member (zip [0..] bs)
-                                    restrictArg nr path_ index
-                                    go' b path ss
-go' (Variant bs)      path ss = do b <- member bs
-                                   go' b path ss
-go' (Return  v)       path ss = go v path ss
+convertTerm :: Options -> Path -> Type -> Term -> CnvMonad (Value [Symbol])
+convertTerm opts sel ctype (Vr x)       = convertArg opts ctype (getVarIndex x) (reversePath sel)
+convertTerm opts sel ctype (Abs _ _ t)  = convertTerm opts sel ctype t                -- there are only top-level abstractions and we ignore them !!!
+convertTerm opts sel ctype (R record)   = convertRec opts sel ctype record
+convertTerm opts sel ctype (P term l)   = convertTerm opts (CProj l sel) ctype term
+convertTerm opts sel ctype (V pt ts)    = convertTbl opts sel ctype pt ts
+convertTerm opts sel ctype (S term p)   = do v <- evalTerm CNil p
+                                             convertTerm opts (CSel v sel) ctype term
+convertTerm opts sel ctype (FV vars)    = do term <- variants vars
+                                             convertTerm opts sel ctype term
+convertTerm opts sel ctype (C t1 t2)    = do v1 <- convertTerm opts sel ctype t1
+                                             v2 <- convertTerm opts sel ctype t2
+                                             return (CStr (concat [s | CStr s <- [v1,v2]]))
+convertTerm opts sel ctype (K t)        = return (CStr [SymKS [t]])
+convertTerm opts sel ctype Empty        = return (CStr [])
+convertTerm opts sel ctype (Alts s alts)
+                                        = return (CStr [SymKP (strings s) [Alt (strings u) (strings v) | (u,v) <- alts]])
+                                            where
+                                              strings (K s)     = [s]
+                                              strings (C u v)   = strings u ++ strings v
+                                              strings (Strs ss) = concatMap strings ss
+convertTerm opts CNil ctype t           = do v <- evalTerm CNil t
+                                             return (CPar v)
+convertTerm _    _    _     t           = error (render (text "convertTerm" <+> parens (ppTerm Unqualified 0 t)))
 
-go :: Value SeqId -> FPath -> [SeqId] -> BacktrackM Env [SeqId]
-go (Rec xs)    path ss = foldM (\ss (lbl,b) -> go' b (lbl:path) ss) ss (reverse (zip [0..] xs))
-go (Str seqid) path ss = return (seqid : ss)
-go (Con i)     path ss = restrictHead path i >> return ss
+convertArg :: Options -> Term -> Int -> Path -> CnvMonad (Value [Symbol])
+convertArg opts (RecType rs)  nr path =
+  mkRecord (map (\(lbl,ctype) -> (lbl,convertArg opts ctype nr (CProj lbl path))) rs)
+convertArg opts (Table pt vt) nr path = do
+  vs <- getAllParamValues pt
+  mkTable pt (map (\v -> (v,convertArg opts vt nr (CSel v path))) vs)
+convertArg opts (Sort _)      nr path = do
+  (args,_) <- get
+  let PFCat _ cat schema = args !! nr
+      l = index (reversePath path) schema
+      sym | CProj (LVar i) CNil <- path = SymVar nr i
+          | isLiteralCat opts cat       = SymLit nr l
+          | otherwise                   = SymCat nr l
+  return (CStr [sym])
+  where
+    index (CProj lbl path) (CRec   rs) = case lookup lbl rs of
+                                           Just (Identity t) -> index path t
+    index (CSel  trm path) (CTbl _ rs) = case lookup trm rs of
+                                           Just (Identity t) -> index path t
+    index CNil             (CStr idx)  = idx
+convertArg opts ty nr path              = do
+  value <- choices nr (reversePath path)
+  return (CPar value)
 
-addSequences' :: GrammarEnv -> Branch [Symbol] -> (GrammarEnv, Branch SeqId)
-addSequences' env (Case nr path bs) = let (env1,bs1) = List.mapAccumL addSequences' env bs
+convertRec opts CNil (RecType rs) record =
+  mkRecord (map (\(lbl,ctype) -> (lbl,convertTerm opts CNil ctype (projectRec lbl record))) rs)
+convertRec opts (CProj lbl path) ctype record =
+  convertTerm opts path ctype (projectRec lbl record)
+convertRec opts _ ctype _ = error ("convertRec: "++show ctype)
+
+convertTbl opts CNil (Table _ vt) pt ts = do
+  vs <- getAllParamValues pt
+  mkTable pt (zipWith (\v t -> (v,convertTerm opts CNil vt t)) vs ts)
+convertTbl opts (CSel v sub_sel) ctype pt ts = do
+  vs <- getAllParamValues pt
+  case lookup v (zip vs ts) of
+    Just t  -> convertTerm opts sub_sel ctype t
+    Nothing -> error (render (text "convertTbl:" <+> (text "missing value" <+> ppTerm Unqualified 0 v $$
+                                                      text "among" <+> vcat (map (ppTerm Unqualified 0) vs))))
+convertTbl opts _ ctype _ _ = error ("convertTbl: "++show ctype)
+
+
+goB :: Branch (Value SeqId) -> Path -> [SeqId] -> BacktrackM Env [SeqId]
+goB (Case nr path bs) rpath ss = do (value,b) <- member bs
+                                    restrictArg nr path value
+                                    goB b rpath ss
+goB (Variant bs)      rpath ss = do b <- member bs
+                                    goB b rpath ss
+goB (Return  v)       rpath ss = goV v rpath ss
+
+goV :: Value SeqId -> Path -> [SeqId] -> BacktrackM Env [SeqId]
+goV (CRec xs)    rpath ss = foldM (\ss (lbl,b) -> goB b (CProj lbl rpath) ss) ss (reverse xs)
+goV (CTbl _ xs)  rpath ss = foldM (\ss (trm,b) -> goB b (CSel  trm rpath) ss) ss (reverse xs)
+goV (CStr seqid) rpath ss = return (seqid : ss)
+goV (CPar t)     rpath ss = restrictHead (reversePath rpath) t >> return ss
+
+addSequencesB :: GrammarEnv -> Branch (Value [Symbol]) -> (GrammarEnv, Branch (Value SeqId))
+addSequencesB env (Case nr path bs) = let (env1,bs1) = List.mapAccumL (\env (trm,b) -> let (env',b') = addSequencesB env b
+                                                                                       in (env',(trm,b'))) env bs
                                       in (env1,Case nr path bs1)
-addSequences' env (Variant bs)      = let (env1,bs1) = List.mapAccumL addSequences' env bs
+addSequencesB env (Variant bs)      = let (env1,bs1) = List.mapAccumL addSequencesB env bs
                                       in (env1,Variant bs1)
-addSequences' env (Return  v)       = let (env1,v1) = addSequences env v
+addSequencesB env (Return  v)       = let (env1,v1) = addSequencesV env v
                                       in (env1,Return v1)
 
-addSequences :: GrammarEnv -> Value [Symbol] -> (GrammarEnv, Value SeqId)
-addSequences env (Rec vs)  = let (env1,vs1) = List.mapAccumL addSequences' env vs
-                             in (env1,Rec vs1)
-addSequences env (Str lin) = let (env1,seqid) = addFSeq env (optimizeLin lin)
-                             in (env1,Str seqid)
-addSequences env (Con i)   = (env,Con i)
+addSequencesV :: GrammarEnv -> Value [Symbol] -> (GrammarEnv, Value SeqId)
+addSequencesV env (CRec vs)  = let (env1,vs1) = List.mapAccumL (\env (lbl,b) -> let (env',b') = addSequencesB env b
+                                                                                in (env',(lbl,b'))) env vs
+                               in (env1,CRec vs1)
+addSequencesV env (CTbl pt vs)=let (env1,vs1) = List.mapAccumL (\env (trm,b) -> let (env',b') = addSequencesB env b
+                                                                                in (env',(trm,b'))) env vs
+                               in (env1,CTbl pt vs1)
+addSequencesV env (CStr lin) = let (env1,seqid) = addSequence env (optimizeLin lin)
+                               in (env1,CStr seqid)
+addSequencesV env (CPar i)   = (env,CPar i)
 
 
 optimizeLin [] = []
@@ -254,238 +444,192 @@
 optimizeLin (sym : lin) = sym : optimizeLin lin
 
 
-convertTerm :: TermMap -> FPath -> Term -> Term -> CnvMonad (Value [Symbol])
-convertTerm cnc_defs sel ctype (V nr)     = convertArg ctype nr (reverse sel)
-convertTerm cnc_defs sel ctype (C nr)     = convertCon ctype nr (reverse sel)
-convertTerm cnc_defs sel ctype (R record) = convertRec cnc_defs sel ctype record
-convertTerm cnc_defs sel ctype (P term p) = do nr <- evalTerm cnc_defs [] p
-                                               convertTerm cnc_defs (nr:sel) ctype term
-convertTerm cnc_defs sel ctype (FV vars)  = do term <- variants vars
-                                               convertTerm cnc_defs sel ctype term
-convertTerm cnc_defs sel ctype (S ts)     = do vs <- mapM (convertTerm cnc_defs sel ctype) ts
-                                               return (Str (concat [s | Str s <- vs]))
-convertTerm cnc_defs sel ctype (K (KS t)) = return (Str [SymKS [t]])
-convertTerm cnc_defs sel ctype (K (KP s v))=return (Str [SymKP s v])
-convertTerm cnc_defs sel ctype (F id)     = case Map.lookup id cnc_defs of
-                                              Just term -> convertTerm cnc_defs sel ctype term
-                                              Nothing   -> error ("unknown id " ++ showCId id)
-convertTerm cnc_defs sel ctype (W s t)    = do
-  ss <- case t of
-    R ss -> return ss
-    F f -> case Map.lookup f cnc_defs of
-             Just (R ss) -> return ss
-             _           -> error ("unknown id " ++ showCId f)
-  convertRec cnc_defs sel ctype [K (KS (s ++ s1)) | K (KS s1) <- ss]
-convertTerm cnc_defs sel ctype x          = error ("convertTerm ("++show x++")")
-
-convertArg :: Term -> Int -> FPath -> CnvMonad (Value [Symbol])
-convertArg (R ctypes) nr path = do
-  mkRecord (zipWith (\lbl ctype -> convertArg ctype nr (lbl:path)) [0..] ctypes)
-convertArg (C max)    nr path = do
-  index <- choices nr path
-  return (Con index)
-convertArg (S _)      nr path = do
-  (args,_) <- get
-  let PFCat _ cat rcs tcs = args !! nr
-      l = index path rcs 0
-      sym | isLiteralCat cat = SymLit nr l
-          | otherwise        = SymCat nr l
-  return (Str [sym])
-  where
-    index lbl' (lbl:lbls) idx
-      | lbl' == lbl = idx
-      | otherwise   = index lbl' lbls $! (idx+1)
-
-convertCon (C max) index [] = return (Con index)
-convertCon x _ _            = fail $ "SimpleToFCFG.convertCon: " ++ show x
-
-convertRec cnc_defs [] (R ctypes) record = do
-  mkRecord (zipWith (convertTerm cnc_defs []) ctypes record)
-convertRec cnc_defs (index:sub_sel) ctype record =
-  convertTerm cnc_defs sub_sel ctype (record !! index)
-
-
 ------------------------------------------------------------
 -- eval a term to ground terms
 
-evalTerm :: TermMap -> FPath -> Term -> CnvMonad LIndex
-evalTerm cnc_defs path (V nr)       = choices nr (reverse path)
-evalTerm cnc_defs path (C nr)       = return nr
-evalTerm cnc_defs path (R record)   = case path of
-                                        (index:path) -> evalTerm cnc_defs path (record !! index)
-evalTerm cnc_defs path (P term sel) = do index <- evalTerm cnc_defs [] sel
-                                         evalTerm cnc_defs (index:path) term
-evalTerm cnc_defs path (FV terms)   = variants terms >>= evalTerm cnc_defs path
-evalTerm cnc_defs path (F id)       = case Map.lookup id cnc_defs of
-                                        Just term -> evalTerm cnc_defs path term
-                                        Nothing   -> error ("unknown id " ++ showCId id)
-evalTerm cnc_defs path x = error ("evalTerm ("++show x++")")
+evalTerm :: Path -> Term -> CnvMonad Term
+evalTerm CNil (QC f)       = return (QC f)
+evalTerm CNil (App x y)    = do x <- evalTerm CNil x
+                                y <- evalTerm CNil y
+                                return (App x y)
+evalTerm path (Vr x)       = choices (getVarIndex x) path
+evalTerm path (R rs)       = case path of
+                               (CProj lbl path) -> evalTerm path (projectRec lbl rs)
+                               CNil             -> do rs <- mapM (\(lbl,(_,t)) -> do t <- evalTerm path t
+                                                                                     return (assign lbl t)) rs
+                                                      return (R rs)
+evalTerm path (P term lbl) = evalTerm (CProj lbl path) term
+evalTerm path (V pt ts)    = case path of
+                               (CSel trm path) -> do vs <- getAllParamValues pt
+                                                     case lookup trm (zip vs ts) of
+                                                       Just t  -> evalTerm path t
+                                                       Nothing -> error "evalTerm: missing value"
+                               CNil             -> do ts <- mapM (evalTerm path) ts
+                                                      return (V pt ts)
+evalTerm path (S term sel) = do v <- evalTerm CNil sel
+                                evalTerm (CSel v path) term
+evalTerm path (FV terms)   = variants terms >>= evalTerm path
+evalTerm path (EInt n)     = return (EInt n)
+evalTerm path t            = error (render (text "evalTerm" <+> parens (ppTerm Unqualified 0 t)))
 
+getVarIndex (IA _ i) = i
+getVarIndex (IAV _ _ i) = i
+getVarIndex (IC s) | isDigit (BS.last s) = (read . BS.unpack . snd . BS.spanEnd isDigit) s
 
 ----------------------------------------------------------------------
 -- GrammarEnv
 
-data GrammarEnv = GrammarEnv {-# UNPACK #-} !Int CatSet SeqSet FunSet CoerceSet (IntMap.IntMap (Set.Set Production))
-type CatSet   = IntMap.IntMap (Map.Map CId (FId,FId,[Int],Array LIndex String))
+data GrammarEnv = GrammarEnv {-# UNPACK #-} !Int CatSet SeqSet FunSet LinDefSet CoerceSet AppSet ProdSet
+type Proto    = Schema Identity Int (Int,[(Term,Int)])
+type CatSet   = Map.Map Ident (FId,FId,Proto)
 type SeqSet   = Map.Map Sequence SeqId
 type FunSet   = Map.Map CncFun FunId
+type LinDefSet= IntMap.IntMap [FunId]
 type CoerceSet= Map.Map [FId] FId
+type AppSet   = IntMap.IntMap (Set.Set (FunId,[FId]))
+type ProdSet  = IntMap.IntMap (Set.Set Production)
 
-emptyGrammarEnv cnc_defs lincats params =
+emptyGrammarEnv gr (m,mo) =
   let (last_id,catSet) = Map.mapAccumWithKey computeCatRange 0 lincats
-  in GrammarEnv last_id (IntMap.singleton 0 catSet) Map.empty Map.empty Map.empty IntMap.empty
+  in GrammarEnv last_id catSet Map.empty Map.empty IntMap.empty Map.empty IntMap.empty IntMap.empty
   where
     computeCatRange index cat ctype
-      | cat == cidString = (index,     (fcatString,fcatString,[],listArray (0,0) ["s"]))
-      | cat == cidInt    = (index,     (fcatInt,   fcatInt,   [],listArray (0,0) ["s"]))
-      | cat == cidFloat  = (index,     (fcatFloat, fcatFloat, [],listArray (0,0) ["s"]))
-      | cat == cidVar    = (index,     (fcatVar,   fcatVar,   [],listArray (0,0) ["s"]))
-      | otherwise        = (index+size,(index,index+size-1, poly,maybe (error "missing params") (mkArray . getLabels []) (Map.lookup cat params)))
+      | cat == cString = (index,(fidString,fidString,CRec [(theLinLabel,Identity (CStr 0))]))
+      | cat == cInt    = (index,(fidInt,   fidInt,   CRec [(theLinLabel,Identity (CStr 0))]))
+      | cat == cFloat  = (index,(fidFloat, fidFloat, CRec [(theLinLabel,Identity (CStr 0))]))
+      | cat == cVar    = (index,(fidVar,   fidVar,   CStr 0))
+      | otherwise      = (index+size,(index,index+size-1,schema))
       where
-        (size,poly) = getMultipliers 1 [] ctype
+        ((_,size),schema) = compute (0,1) ctype
  
-    getMultipliers m ms (R record)    = foldr (\t (m,ms) -> getMultipliers m ms t) (m,ms) record
-    getMultipliers m ms (S _)         = (m,ms)
-    getMultipliers m ms (C max_index) = (m*(max_index+1),m : ms)
-    getMultipliers m ms (F id)        = case Map.lookup id cnc_defs of
-                                          Just term -> getMultipliers m ms term
-                                          Nothing   -> error ("unknown identifier: "++showCId id)
-
-    getLabels ls (R record)    = concat [getLabels (l:ls) t | P (K (KS l)) t <- record]
-    getLabels ls (S [FV ps,t]) = concat [getLabels (l:ls) t | K (KS l) <- ps]
-    getLabels ls (S [])        = [unwords (reverse ls)]
-    getLabels ls (FV _)        = []
-    getLabels _ t = error (show t)
-
-expandHOAS opts abs_defs cnc_defs lincats lindefs env = 
-  foldM add_varFun (foldl (\env ncat -> add_hoFun (add_hoCat env ncat) ncat) env hoTypes) (Map.keys lincats)
-  where
-    hoTypes :: [(Int,CId)]
-    hoTypes = sortNub [(n,c) | (_,(ty,_,_)) <- Map.toList abs_defs
-                             , (n,c) <- fst (typeSkeleton ty), n > 0]
-  
-    -- add a range of PMCFG categories for each GF high-order category
-    add_hoCat env@(GrammarEnv last_id catSet seqSet funSet crcSet prodSet) (n,cat) =
-      case IntMap.lookup 0 catSet >>= Map.lookup cat of
-        Just (start,end,ms,lbls) -> let !catSet'  = IntMap.insertWith Map.union n (Map.singleton cat (last_id,last_id+(end-start),ms,lbls)) catSet
-                                        !last_id' = last_id+(end-start)+1
-                                    in (GrammarEnv last_id' catSet' seqSet funSet crcSet prodSet)
-        Nothing                  -> env
-        
-    -- add one PMCFG function for each high-order type: _B : Cat -> Var -> ... -> Var -> HoCat
-    add_hoFun env (n,cat) =
-      let linRec = [[SymCat 0 i] | i <- case arg of {PFCat _ _ rcs _ -> [0..length rcs-1]}] ++
-                   [[SymLit i 0] | i <- [1..n]]
-          (env1,lins) = List.mapAccumL addFSeq env linRec
-          newLinRec = mkArray lins
-	  
-	  (env2,funid) = addCncFun env1 (CncFun _B newLinRec)
-
-          env3 = foldl (\env (arg,res) -> addProduction env res (PApply funid (arg : replicate n fcatVar)))
-                       env2
-                       (zip (getFCats env2 arg) (getFCats env2 res))
-      in env3
-      where
-        (arg,res) = case Map.lookup cat lincats of
-	              Nothing    -> error $ "No lincat for " ++ showCId cat
-                      Just ctype -> (protoFCat cnc_defs (0,cat) ctype, protoFCat cnc_defs (n,cat) ctype)
+    compute st (RecType  rs) = let (st',rs') = List.mapAccumL (\st (lbl,t) -> let (st',t') = compute st t
+                                                                              in (st',(lbl,Identity t'))) st rs
+                               in (st',CRec rs')
+    compute st (Table pt vt) = let vs        = err error id (allParamValues gr pt)
+                                   (st',cs') = List.mapAccumL (\st v       -> let (st',vt') = compute st vt
+                                                                              in (st',(v,Identity vt'))) st vs
+                               in (st',CTbl pt cs')
+    compute st (Sort s)
+                   | s == cStr = let (index,m) = st
+                                 in ((index+1,m),CStr index)
+    compute st t               = let vs = err error id (allParamValues gr t)
+                                     (index,m) = st
+                                 in ((index,m*length vs),CPar (m,zip vs [0..]))
 
-    -- add one PMCFG function for each high-order category: _V : Var -> Cat
-    add_varFun env cat =
-      case Map.lookup cat lindefs of
-        Nothing     -> return env
-        Just lindef -> convertRule opts cnc_defs env (PFRule _V [(0,cidVar)] (0,cat) [arg] res lindef)
-      where
-        arg =
-          case Map.lookup cidVar lincats of
-            Nothing    -> error $ "No lincat for " ++ showCId cat
-            Just ctype -> ctype
+    lincats =
+      Map.insert cVar (Sort cStr) $
+      Map.fromAscList 
+        [(c, ty) | (c,GF.Grammar.CncCat (Just (L _ ty)) _ _) <- Map.toList (M.jments mo)]
 
-        res =
-          case Map.lookup cat lincats of
-            Nothing    -> error $ "No lincat for " ++ showCId cat
-            Just ctype -> ctype
+addApplication :: GrammarEnv -> FId -> (FunId,[FId]) -> GrammarEnv
+addApplication (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) fid p =
+  GrammarEnv last_id catSet seqSet funSet lindefSet crcSet (IntMap.insertWith Set.union fid (Set.singleton p) appSet) prodSet
 
 addProduction :: GrammarEnv -> FId -> Production -> GrammarEnv
-addProduction (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) cat p =
-  GrammarEnv last_id catSet seqSet funSet crcSet (IntMap.insertWith Set.union cat (Set.singleton p) prodSet)
+addProduction (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) cat p =
+  GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet (IntMap.insertWith Set.union cat (Set.singleton p) prodSet)
 
-addFSeq :: GrammarEnv -> [Symbol] -> (GrammarEnv,SeqId)
-addFSeq env@(GrammarEnv last_id catSet seqSet funSet crcSet prodSet) lst =
+addSequence :: GrammarEnv -> [Symbol] -> (GrammarEnv,SeqId)
+addSequence env@(GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) lst =
   case Map.lookup seq seqSet of
     Just id -> (env,id)
     Nothing -> let !last_seq = Map.size seqSet
-               in (GrammarEnv last_id catSet (Map.insert seq last_seq seqSet) funSet crcSet prodSet,last_seq)
+               in (GrammarEnv last_id catSet (Map.insert seq last_seq seqSet) funSet lindefSet crcSet appSet prodSet,last_seq)
   where
     seq = mkArray lst
 
 addCncFun :: GrammarEnv -> CncFun -> (GrammarEnv,FunId)
-addCncFun env@(GrammarEnv last_id catSet seqSet funSet crcSet prodSet) fun = 
+addCncFun env@(GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) fun = 
   case Map.lookup fun funSet of
     Just id -> (env,id)
     Nothing -> let !last_funid = Map.size funSet
-               in (GrammarEnv last_id catSet seqSet (Map.insert fun last_funid funSet) crcSet prodSet,last_funid)
+               in (GrammarEnv last_id catSet seqSet (Map.insert fun last_funid funSet) lindefSet crcSet appSet prodSet,last_funid)
 
-addFCoercion :: GrammarEnv -> [FId] -> (GrammarEnv,FId)
-addFCoercion env@(GrammarEnv last_id catSet seqSet funSet crcSet prodSet) sub_fcats =
+addCoercion :: GrammarEnv -> [FId] -> (GrammarEnv,FId)
+addCoercion env@(GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) sub_fcats =
   case sub_fcats of
     [fcat] -> (env,fcat)
     _      -> case Map.lookup sub_fcats crcSet of
                 Just fcat -> (env,fcat)
                 Nothing   -> let !fcat = last_id+1
-                             in (GrammarEnv fcat catSet seqSet funSet (Map.insert sub_fcats fcat crcSet) prodSet,fcat)
+                             in (GrammarEnv fcat catSet seqSet funSet lindefSet (Map.insert sub_fcats fcat crcSet) appSet prodSet,fcat)
 
-getParserInfo :: Map.Map CId Literal -> Map.Map CId String -> GrammarEnv -> Concr
-getParserInfo flags printnames (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) =
+addLinDef :: GrammarEnv -> FId -> FunId -> GrammarEnv
+addLinDef (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) fid funid =
+  GrammarEnv last_id catSet seqSet funSet (IntMap.insertWith (++) fid [funid] lindefSet) crcSet appSet prodSet
+
+getConcr :: Map.Map CId Literal -> Map.Map CId String -> GrammarEnv -> Concr
+getConcr flags printnames (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) =
   Concr { cflags = flags
         , printnames = printnames
-        , cncfuns   = mkArray funSet
-        , sequences   = mkArray seqSet
+        , cncfuns   = mkSetArray funSet
+        , lindefs = lindefSet
+        , sequences   = mkSetArray seqSet
         , productions = IntMap.union prodSet coercions
         , pproductions = IntMap.empty
         , lproductions = Map.empty
-        , cnccats   = maybe Map.empty (Map.map (\(start,end,_,lbls) -> (CncCat start end lbls))) (IntMap.lookup 0 catSet)
+        , lexicon      = IntMap.empty
+        , cnccats = Map.fromList [(i2i cat,PGF.Data.CncCat start end (mkArray (map (renderStyle style{mode=OneLineMode} . ppPath) (getStrPaths schema))))
+                                     | (cat,(start,end,schema)) <- Map.toList catSet]
         , totalCats   = last_id+1
         }
   where
-    mkArray map = array (0,Map.size map-1) [(v,k) | (k,v) <- Map.toList map]
+    mkSetArray map = array (0,Map.size map-1) [(v,k) | (k,v) <- Map.toList map]
     
     coercions = IntMap.fromList [(fcat,Set.fromList (map PCoerce sub_fcats)) | (sub_fcats,fcat) <- Map.toList crcSet]
 
-getFCats :: GrammarEnv -> ProtoFCat -> [FId]
-getFCats (GrammarEnv last_id catSet seqSet funSet crcSet prodSet) (PFCat n cat rcs tcs) =
-  case IntMap.lookup n catSet >>= Map.lookup cat of
-    Just (start,end,ms,_) -> reverse (solutions (variants ms tcs start) ())
-  where
-    variants _      []                  fcat = return fcat
-    variants (m:ms) ((_,indices) : tcs) fcat = do index <- member indices
-                                                  variants ms tcs ((m*index) + fcat)
+    getStrPaths :: Schema Identity s c -> [Path]
+    getStrPaths = collect CNil []
+      where
+        collect path paths (CRec rs)   = foldr (\(lbl,Identity t) paths -> collect (CProj lbl path) paths t) paths rs
+        collect path paths (CTbl _ cs) = foldr (\(trm,Identity t) paths -> collect (CSel  trm path) paths t) paths cs
+        collect path paths (CStr _)    = reversePath path : paths
+        collect path paths (CPar _)    = paths
 
 
+getFIds :: GrammarEnv -> ProtoFCat -> [FId]
+getFIds (GrammarEnv last_id catSet seqSet funSet lindefSet crcSet appSet prodSet) (PFCat ctxt cat schema) =
+  case Map.lookup cat catSet of
+    Just (start,end,_) -> reverse (solutions (fmap (start +) $ variants schema) ())
+  where
+    variants (CRec rs)         = fmap sum $ mapM (\(lbl,Identity t) -> variants t) rs
+    variants (CTbl _ cs)       = fmap sum $ mapM (\(trm,Identity t) -> variants t) cs
+    variants (CStr _)          = return 0
+    variants (CPar (m,values)) = do (value,index) <- member values
+                                    return (m*index)
+
 ------------------------------------------------------------
 -- updating the MCF rule
 
-restrictArg :: LIndex -> FPath -> LIndex -> BacktrackM Env ()
+restrictArg :: LIndex -> Path -> Term -> BacktrackM Env ()
 restrictArg nr path index = do
   (head, args) <- get
-  args' <- updateNthM (restrictProtoFCat path index) nr args
-  put (head, args')
+  args <- updateNthM (restrictProtoFCat path index) nr args
+  put (head, args)
 
-restrictHead :: FPath -> LIndex -> BacktrackM Env ()
-restrictHead path term
-    = do (head, args) <- get
-	 head' <- restrictProtoFCat path term head
-	 put (head', args)
+restrictHead :: Path -> Term -> BacktrackM Env ()
+restrictHead path term = do
+  (head, args) <- get
+  head <- restrictProtoFCat path term head
+  put (head, args)
 
-restrictProtoFCat :: FPath -> LIndex -> ProtoFCat -> BacktrackM Env ProtoFCat
-restrictProtoFCat path0 index0 (PFCat n cat rcs tcs) = do
-  tcs <- addConstraint tcs
-  return (PFCat n cat rcs tcs)
+restrictProtoFCat :: (Functor m, MonadPlus m) => Path -> Term -> ProtoFCat -> m ProtoFCat
+restrictProtoFCat path v (PFCat ctxt cat schema) = do
+  schema <- addConstraint path v schema
+  return (PFCat ctxt cat schema)
   where
-    addConstraint []    = error "restrictProtoFCat: unknown path"
-    addConstraint (c@(path,indices) : tcs)
-      | path0 == path = guard (index0 `elem` indices) >>
-                        return ((path,[index0]) : tcs)
-      | otherwise     = liftM (c:) (addConstraint tcs)
+    addConstraint (CProj lbl path) v (CRec rs)     = fmap CRec      $ update lbl (addConstraint path v) rs
+    addConstraint (CSel  trm path) v (CTbl pt cs)  = fmap (CTbl pt) $ update trm (addConstraint path v) cs
+    addConstraint CNil             v (CPar (m,vs)) = case lookup v vs of
+                                                       Just index -> return (CPar (m,[(v,index)]))
+                                                       Nothing    -> mzero
+    addConstraint CNil             v (CStr _)      = error "restrictProtoFCat: string path"
+    
+    update k0 f [] = return []
+    update k0 f (x@(k,Identity v):xs)
+      | k0 == k    = do v <- f v
+                        return ((k,Identity v):xs)
+      | otherwise  = do xs <- update k0 f xs
+                        return (x:xs)
 
 mkArray lst = listArray (0,length lst-1) lst
diff --git a/src/compiler/GF/Compile/GetGrammar.hs b/src/compiler/GF/Compile/GetGrammar.hs
--- a/src/compiler/GF/Compile/GetGrammar.hs
+++ b/src/compiler/GF/Compile/GetGrammar.hs
@@ -30,23 +30,71 @@
 import qualified Data.ByteString.Char8 as BS
 import Control.Monad (foldM)
 import System.Cmd (system)
+import System.Directory(removeFile)
 
 getSourceModule :: Options -> FilePath -> IOE SourceModule
 getSourceModule opts file0 = ioe $
-  catch (do file <- foldM runPreprocessor file0 (flag optPreprocessors opts)
-            content <- BS.readFile file
-            case runP pModDef content of
-              Left (Pn l c,msg) -> return (Bad (file++":"++show l++":"++show c++": "++msg))
-              Right mo          -> return (Ok (addOptionsToModule opts mo)))
-        (\e -> return (Bad (show e)))
+    do tmp <- foldM runPreprocessor (Source file0) (flag optPreprocessors opts)
+       content <- keepTemp tmp
+       case runP pModDef content of
+         Left (Pn l c,msg) -> do file <- writeTemp tmp
+                                 let location = file++":"++show l++":"++show c
+                                 return (Bad (location++": "++msg))
+         Right mo          -> do removeTemp tmp
+                                 return (Ok (addOptionsToModule opts mo))
+  `catch` (return . Bad . show)
 
 addOptionsToModule :: Options -> SourceModule -> SourceModule
 addOptionsToModule opts = mapSourceModule (\m -> m { flags = flags m `addOptions` opts })
 
--- FIXME: should use System.IO.openTempFile
-runPreprocessor :: FilePath -> String -> IO FilePath
-runPreprocessor file0 p = do
-  let tmp = "_gf_preproc.tmp"
-      cmd = p +++ file0 ++ ">" ++ tmp
-  system cmd
-  return tmp
+runPreprocessor :: Temporary -> String -> IO Temporary
+runPreprocessor tmp0 p =
+    maybe external internal (lookup p builtin_preprocessors)
+  where
+    internal preproc = (Internal . preproc) `fmap` readTemp tmp0
+    external =
+      do file0 <- writeTemp tmp0
+         -- FIXME: should use System.IO.openTempFile
+         let file1a = "_gf_preproc.tmp"
+             file1b = "_gf_preproc2.tmp"
+             -- file0 and file1 must be different
+             file1 = if file0==file1a then file1b else file1a
+             cmd = p +++ file0 ++ ">" ++ file1
+         system cmd
+         return (Temp file1)
+
+--------------------------------------------------------------------------------
+
+builtin_preprocessors = [("mkPresent",mkPresent),("mkMinimal",mkMinimal)]
+
+mkPresent = omit_lines "--# notpresent"   -- grep -v "\-\-\# notpresent"
+mkMinimal = omit_lines "--# notminimal"   -- grep -v "\-\-\# notminimal"
+
+omit_lines s = BS.unlines . filter (not . BS.isInfixOf bs) . BS.lines
+  where bs = BS.pack s
+
+--------------------------------------------------------------------------------
+
+data Temporary = Source FilePath | Temp FilePath | Internal BS.ByteString
+
+writeTemp tmp =
+    case tmp of
+      Source path  -> return path
+      Temp   path  -> return path
+      Internal str -> do -- FIXME: should use System.IO.openTempFile
+                         let tmp = "_gf_preproc.tmp"
+                         BS.writeFile tmp str
+                         return tmp
+
+readTemp tmp = do str <- keepTemp tmp
+                  removeTemp tmp
+                  return str
+
+keepTemp tmp =
+    case tmp of
+      Source path  -> BS.readFile path
+      Temp   path  -> BS.readFile path
+      Internal str -> return str
+
+removeTemp (Temp path) = removeFile path
+removeTemp _           = return ()
diff --git a/src/compiler/GF/Compile/GrammarToPGF.hs b/src/compiler/GF/Compile/GrammarToPGF.hs
--- a/src/compiler/GF/Compile/GrammarToPGF.hs
+++ b/src/compiler/GF/Compile/GrammarToPGF.hs
@@ -5,8 +5,7 @@
 import GF.Compile.GeneratePMCFG
 
 import PGF.CId
-import PGF.Macros(updateProductionIndices)
-import PGF.Check(checkLin)
+import PGF.Optimize(updateProductionIndices)
 import qualified PGF.Macros as CM
 import qualified PGF.Data as C
 import qualified PGF.Data as D
@@ -16,7 +15,7 @@
 import qualified GF.Grammar.Lookup as Look
 import qualified GF.Grammar as A
 import qualified GF.Grammar.Macros as GM
-import qualified GF.Compile.Concrete.Compute as Compute ---- 
+import qualified GF.Compile.Compute.Concrete as Compute ---- 
 import qualified GF.Infra.Modules as M
 import qualified GF.Infra.Option as O
 
@@ -38,76 +37,39 @@
 
 
 -- the main function: generate PGF from GF.
-mkCanon2pgf :: Options -> String -> SourceGrammar -> IO D.PGF
-mkCanon2pgf opts cnc gr = (canon2pgf opts pars . reorder abs . canon2canon opts abs) gr
+mkCanon2pgf :: Options -> Ident -> SourceGrammar -> IO D.PGF
+mkCanon2pgf opts cnc gr = (canon2pgf opts gr . reorder abs) gr
   where
-    abs = err (const c) id $ M.abstractOfConcrete gr c where c = identC (BS.pack cnc)
-    pars = mkParamLincat gr
+    abs = err (const cnc) id $ M.abstractOfConcrete gr cnc
 
--- Generate PGF from GFCM.
--- this assumes a grammar translated by canon2canon
+-- Generate PGF from grammar.
 
-canon2pgf :: Options -> (Ident -> Ident -> C.Term) -> SourceGrammar -> IO D.PGF
-canon2pgf opts pars cgr@(M.MGrammar ((a,abm):cms)) = do
+canon2pgf :: Options -> SourceGrammar -> SourceGrammar -> IO D.PGF
+canon2pgf opts gr cgr@(M.MGrammar (am:cms)) = do
   if dump opts DumpCanon
     then putStrLn (render (vcat (map (ppModule Qualified) (M.modules cgr))))
     else return ()
-  cncs <- sequence [mkConcr lang (i2i lang) mo | (lang,mo) <- cms]
-  return $ updateProductionIndices (D.PGF gflags an abs (Map.fromList cncs))
- where
-  -- abstract
-  an  = (i2i a)
-  abs = D.Abstr aflags funs cats
-  gflags = Map.empty
-  aflags = Map.fromList [(mkCId f,C.LStr x) | (f,x) <- optionsPGF (M.flags abm)]
-
-  mkDef (Just eqs) = Just [C.Equ ps' (mkExp scope' e) | L _ (ps,e) <- eqs, let (scope',ps') = mapAccumL mkPatt [] ps]
-  mkDef Nothing    = Nothing
-
-  mkArrity (Just a) = a
-  mkArrity Nothing  = 0
-
-  -- concretes
-  lfuns = [(f', (mkType [] ty, mkArrity ma, mkDef pty)) | 
-             (f,AbsFun (Just (L _ ty)) ma pty) <- tree2list (M.jments abm), let f' = i2i f]
-  funs = Map.fromAscList lfuns
-  lcats = [(i2i c, (snd (mkContext [] cont),catfuns c)) |
-                (c,AbsCat (Just (L _ cont))) <- tree2list (M.jments abm)]
-  cats = Map.fromAscList lcats
-  catfuns cat =
-    (map snd . sortBy (compare `on` fst))
-        [(loc,i2i f) | (f,AbsFun (Just (L loc ty)) _ _) <- tree2list (M.jments abm), snd (GM.valCat ty) == cat]
+  (an,abs) <- mkAbstr am
+  cncs     <- mapM (mkConcr am) cms
+  return $ updateProductionIndices (D.PGF Map.empty an abs (Map.fromList cncs))
+  where
+    mkAbstr (a,abm) = return (i2i a, D.Abstr flags funs cats)
+      where
+        flags = Map.fromList [(mkCId f,C.LStr x) | (f,x) <- optionsPGF (M.flags abm)]
+        
+        funs = Map.fromAscList [(i2i f, (mkType [] ty, mkArrity ma, mkDef pty, 0)) | 
+                                   (f,AbsFun (Just (L _ ty)) ma pty _) <- Map.toAscList (M.jments abm)]
+                                   
+        cats = Map.fromAscList [(i2i c, (snd (mkContext [] cont),catfuns c)) |
+                                   (c,AbsCat (Just (L _ cont))) <- Map.toAscList (M.jments abm)]
 
-  mkConcr lang0 lang mo = do
-    lins' <- case mapM (checkLin (funs,lins,lincats) lang) (Map.toList lins) of
-               Ok x    -> return x
-               Bad msg -> fail msg
-    cnc <- convertConcrete opts lang flags printnames funs (Map.fromList (map fst lins')) lincats params lindefs
-    return (lang, cnc)
-    where
-      js = tree2list (M.jments mo)
-      flags   = Map.fromList [(mkCId f,C.LStr x) | (f,x) <- optionsPGF (M.flags mo)]
-      utf     = id -- trace (show lang0 +++ show flags) $ 
-                -- if moduleFlag optEncoding (moduleOptions (M.flags mo)) == UTF_8
-                --  then id else id 
-                ---- then (trace "decode" D.convertStringsInTerm decodeUTF8) else id
-      umkTerm = utf . mkTerm
-      lins    = Map.fromAscList 
-        [(f', umkTerm tr)  | (f,CncFun _ (Just (L _ tr)) _) <- js, 
-            let f' = i2i f, exists f'] -- eliminating lins without fun 
-            -- needed even here because of restricted inheritance
-      lincats = Map.fromAscList 
-        [(i2i c, mkCType ty) | (c,CncCat (Just (L _ ty)) _ _) <- js]
-      lindefs = Map.fromAscList 
-        [(i2i c, umkTerm tr)  | (c,CncCat _ (Just (L _ tr)) _) <- js]
-      printnames = Map.union 
-        (Map.fromAscList [(i2i f, realize (umkTerm tr)) | (f,CncFun _ _ (Just (L _ tr))) <- js])
-        (Map.fromAscList [(i2i f, realize (umkTerm tr)) | (f,CncCat _ _ (Just (L _ tr))) <- js])
-      params = Map.fromAscList 
-        [(i2i c, pars lang0 c) | (c,CncCat (Just ty) _ _) <- js]
-      fcfg = Nothing
+        catfuns cat =
+              (map (\x -> (0,snd x)) . sortBy (compare `on` fst))
+                 [(loc,i2i f) | (f,AbsFun (Just (L loc ty)) _ _ (Just True)) <- tree2list (M.jments abm), snd (GM.valCat ty) == cat]
 
-      exists f = Map.member f funs
+    mkConcr am cm@(lang,mo) = do
+      cnc <- convertConcrete opts gr am cm
+      return (i2i lang, cnc)
 
 i2i :: Ident -> CId
 i2i = CId . ident2bs
@@ -125,8 +87,8 @@
 mkExp :: [Ident] -> A.Term -> C.Expr
 mkExp scope t = 
   case t of
-    Q _ c    -> C.EFun (i2i c)
-    QC _ c   -> C.EFun (i2i c)
+    Q (_,c)  -> C.EFun (i2i c)
+    QC (_,c) -> C.EFun (i2i c)
     Vr x     -> case lookup x (zip scope [0..]) of
                   Just i  -> C.EVar  i
                   Nothing -> C.EMeta 0
@@ -140,7 +102,7 @@
 
 mkPatt scope p = 
   case p of
-    A.PP _ c ps -> let (scope',ps') = mapAccumL mkPatt scope ps
+    A.PP (_,c) ps->let (scope',ps') = mapAccumL mkPatt scope ps
                    in (scope',C.PApp (i2i c) ps')
     A.PV x      -> (x:scope,C.PVar (i2i x))
     A.PAs x p   -> let (scope',p') = mkPatt scope p
@@ -153,465 +115,59 @@
                    in (scope',C.PImplArg p')
     A.PTilde t  -> (  scope,C.PTilde (mkExp scope t))
 
-
 mkContext :: [Ident] -> A.Context -> ([Ident],[C.Hypo])
 mkContext scope hyps = mapAccumL (\scope (bt,x,ty) -> let ty' = mkType scope ty
                                                       in if x == identW
                                                            then (  scope,(b2b bt,i2i x,ty'))
                                                            else (x:scope,(b2b bt,i2i x,ty'))) scope hyps 
 
-mkTerm :: Term -> C.Term
-mkTerm tr = case tr of
-  Vr (IA _ i) -> C.V i
-  Vr (IAV _ _ i) -> C.V i
-  Vr (IC s) | isDigit (BS.last s) -> 
-    C.V ((read . BS.unpack . snd . BS.spanEnd isDigit) s)
-    ---- from gf parser of gfc
-  EInt i      -> C.C $ fromInteger i
-  R rs     -> C.R [mkTerm t | (_, (_,t)) <- rs]
-  P t l    -> C.P (mkTerm t) (C.C (mkLab l))
-  T _ cs   -> C.R [mkTerm t | (_,t) <- cs] ------
-  V _ cs   -> C.R [mkTerm t | t <- cs]
-  S t p    -> C.P (mkTerm t) (mkTerm p)
-  C s t    -> C.S $ concatMap flats [mkTerm x | x <- [s,t]]
-  FV ts    -> C.FV [mkTerm t | t <- ts]
-  K s      -> C.K (C.KS s)
------  K (KP ss _) -> C.K (C.KP ss []) ---- TODO: prefix variants
-  Empty    -> C.S []
-  App _ _  -> prtTrace tr $ C.C 66661          ---- for debugging
-  Abs _ _ t -> mkTerm t ---- only on toplevel
-  Alts (td,tvs) -> 
-    C.K (C.KP (strings td) [C.Alt (strings u) (strings v) | (u,v) <- tvs])
-  _ -> prtTrace tr $ C.S [C.K (C.KS (render (A.ppTerm Unqualified 0 tr <+> int 66662)))] ---- for debugging
- where
-   mkLab (LIdent l) = case BS.unpack l of
-     '_':ds -> (read ds) :: Int
-     _ -> prtTrace tr $ 66663
-   strings t = case t of
-     K s -> [s]
-     C u v -> strings u ++ strings v
-     Strs ss -> concatMap strings ss
-     _ -> prtTrace tr $ ["66660"]
-   flats t = case t of
-     C.S ts -> concatMap flats ts
-     _ -> [t]
-
--- encoding PGF-internal lincats as terms
-mkCType :: Type -> C.Term
-mkCType t = case t of
-  EInt i      -> C.C $ fromInteger i
-  RecType rs  -> C.R [mkCType t | (_, t) <- rs]
-  Table pt vt -> case pt of
-    EInt i -> C.R $ replicate (1 + fromInteger i) $ mkCType vt
-    RecType rs -> mkCType $ foldr Table vt (map snd rs) 
-    _ | Just i <- GM.isTypeInts pt -> C.R $ replicate (fromInteger i) $ mkCType vt
-
-  Sort s | s == cStr -> C.S [] --- Str only
-  _ | Just i <- GM.isTypeInts t -> C.C $ fromInteger i
-  _ -> error  $ "mkCType " ++ show t
-
--- encoding showable lincats (as in source gf) as terms
-mkParamLincat :: SourceGrammar -> Ident -> Ident -> C.Term
-mkParamLincat sgr lang cat = errVal (C.R [C.S []]) $ do 
-  typ <- Look.lookupLincat sgr lang cat
-  mkPType typ
- where
-  mkPType typ = case typ of
-    RecType lts -> do
-      ts <- mapM (mkPType . snd) lts
-      return $ C.R [ C.P (kks $ showIdent (label2ident l)) t | ((l,_),t) <- zip lts ts]
-    Table (RecType lts) v -> do
-      ps <- mapM (mkPType . snd) lts
-      v' <- mkPType v
-      return $ foldr (\p v -> C.S [p,v]) v' ps
-    Table p v -> do
-      p' <- mkPType p
-      v' <- mkPType v
-      return $ C.S [p',v']
-    Sort s | s == cStr -> return $ C.S []
-    _ -> return $ 
-      C.FV $ map (kks . renderStyle style{mode=OneLineMode} . ppTerm Unqualified 6) $ 
-             errVal [] $ Look.allParamValues sgr typ
-  kks = C.K . C.KS
-
--- return just one module per language
-
-reorder :: Ident -> SourceGrammar -> SourceGrammar
-reorder abs cg = M.MGrammar $ 
-    (abs, M.ModInfo M.MTAbstract M.MSComplete aflags [] Nothing [] [] adefs):
-      [(c, M.ModInfo (M.MTConcrete abs) M.MSComplete fs [] Nothing [] [] (sorted2tree js))
-            | (c,(fs,js)) <- cncs] 
-     where
-       mos = M.modules cg
-       adefs = sorted2tree $ sortIds $
-                 predefADefs ++ Look.allOrigInfos cg abs
-       predefADefs = 
-         [(c, AbsCat (Just (L (0,0) []))) | c <- [cFloat,cInt,cString]]
-       aflags = 
-         concatOptions [M.flags mo | (_,mo) <- M.modules cg, M.isModAbs mo]
-
-       cncs = sortIds [(lang, concr lang) | lang <- M.allConcretes cg abs]
-       concr la = (flags, 
-                   sortIds (predefCDefs ++ jments)) where 
-         jments = Look.allOrigInfos cg la
-         flags  = concatOptions 
-                    [M.flags mo | 
-                     (i,mo) <- mos, M.isModCnc mo, 
-                     Just r <- [lookup i (M.allExtendSpecs cg la)]]
-
-         predefCDefs = 
-           [(c, CncCat (Just (L (0,0) GM.defLinType)) Nothing Nothing) | c <- [cInt,cFloat,cString]]
-
-       sortIds = sortBy (\ (f,_) (g,_) -> compare f g) 
-
-
--- one grammar per language - needed for symtab generation
-repartition :: Ident -> SourceGrammar -> [SourceGrammar]
-repartition abs cg = 
-  [M.partOfGrammar cg (lang,mo) | 
-    let mos = M.modules cg,
-    lang <- case M.allConcretes cg abs of
-      [] -> [abs]  -- to make pgf nonempty even when there are no concretes
-      cncs -> cncs,
-    let mo = errVal 
-         (error (render (text "no module found for" <+> A.ppIdent lang))) $ M.lookupModule cg lang
-    ]
-
--- translate tables and records to arrays, parameters and labels to indices
+mkDef (Just eqs) = Just [C.Equ ps' (mkExp scope' e) | L _ (ps,e) <- eqs, let (scope',ps') = mapAccumL mkPatt [] ps]
+mkDef Nothing    = Nothing
 
-canon2canon :: Options -> Ident -> SourceGrammar -> SourceGrammar
-canon2canon opts abs cg0 = 
-   (recollect . map cl2cl . repartition abs . purgeGrammar abs) cg0 
- where
-  recollect = M.MGrammar . nubBy (\ (i,_) (j,_) -> i==j) . concatMap M.modules
-  cl2cl = M.MGrammar . js2js . map (c2c p2p) . M.modules
-    
-  js2js ms = map (c2c (j2j (M.MGrammar ms))) ms
+mkArrity (Just a) = a
+mkArrity Nothing  = 0
 
-  c2c f2 (c,mo) = (c, M.replaceJudgements mo $ mapTree f2 (M.jments mo))
+data PattTree
+  = Ret  C.Expr
+  | Case (Map.Map QIdent [PattTree]) [PattTree]
 
-  j2j cg (f,j) = 
-    let debug = if verbAtLeast opts Verbose then trace ("+ " ++ showIdent f) else id in
-    case j of
-      CncFun x (Just (L loc tr)) z -> CncFun x (Just (L loc (debug (t2t (unfactor cg0 tr))))) z
-      CncCat (Just (L locty ty)) (Just (L locx x)) y -> CncCat (Just (L locty (ty2ty ty))) (Just (L locx (t2t (unfactor cg0 x)))) y
-      _ -> j
-   where
-      cg1 = cg
-      t2t = term2term f cg1 pv
-      ty2ty = type2type cg1 pv
-      pv@(labels,untyps,typs) = trs $ paramValues cg1
+compilePatt :: [Equation] -> [PattTree]
+compilePatt (([],t):_) = [Ret (mkExp [] t)]
+compilePatt eqs        = whilePP eqs Map.empty
+  where
+    whilePP []                         cns     = [mkCase cns []]
+    whilePP (((PP c ps' : ps), t):eqs) cns     = whilePP eqs (Map.insertWith (++) c [(ps'++ps,t)] cns)
+    whilePP eqs                        cns     = whilePV eqs cns []
 
-      unfactor :: SourceGrammar -> Term -> Term
-      unfactor gr t = case t of
-        T (TTyped ty) [(PV x,u)] -> V ty [restore x v (unfac u) | v <- vals ty]
-        _ -> GM.composSafeOp unfac t
-       where
-         unfac = unfactor gr
-         vals  = err error id . Look.allParamValues gr
-         restore x u t = case t of
-           Vr y | y == x -> u
-           _ -> GM.composSafeOp (restore x u) t
+    whilePV []                         cns vrs = [mkCase cns (reverse vrs)]
+    whilePV (((PV x     : ps), t):eqs) cns vrs = whilePV eqs cns ((ps,t) : vrs)
+    whilePV eqs                        cns vrs = mkCase cns (reverse vrs) : compilePatt eqs
 
-    -- flatten record arguments of param constructors
-  p2p (f,j) = case j of
-      ResParam (Just ps) (Just vs) -> 
-        ResParam (Just [L loc (c,concatMap unRec cont) | L loc (c,cont) <- ps]) (Just (map unrec vs))
-      _ -> j
-  unRec (bt,x,ty) = case ty of
-      RecType fs -> [ity | (_,typ) <- fs, ity <- unRec (Explicit,identW,typ)] 
-      _ -> [(bt,x,ty)]
-  unrec t = case t of
-     App f (R fs) -> GM.mkApp (unrec f) [unrec u | (_,(_,u)) <- fs]
-     _ -> GM.composSafeOp unrec t
+    mkCase cns vrs = Case (fmap compilePatt cns) (compilePatt vrs)
 
 
-----
-  trs v = traceD (render (tr v)) v
-
-  tr (labels,untyps,typs) =
-     (text "LABELS:" <+>
-        vcat [A.ppIdent c <> char '.' <> hsep (map A.ppLabel l) <+> char '=' <+> text (show i)  | ((c,l),i) <- Map.toList labels]) $$
-     (text "UNTYPS:" <+>
-        vcat [A.ppTerm Unqualified 0 t <+> char '=' <+> text (show i) | (t,i) <- Map.toList untyps]) $$
-     (text "TYPS:  " <+>
-        vcat [A.ppTerm Unqualified 0 t <+> char '=' <+> text (show (Map.assocs i)) | (t,i) <- Map.toList typs])
-----
-
-purgeGrammar :: Ident -> SourceGrammar -> SourceGrammar
-purgeGrammar abstr gr = 
-  (M.MGrammar . list . filter complete . purge . M.modules) gr 
- where
-  list ms = traceD (render (text "MODULES" <+> hsep (punctuate comma (map (ppIdent . fst) ms)))) ms
-  purge = nubBy (\x y -> fst x == fst y) . filter (flip elem needed . fst)
-  needed = nub $ concatMap (requiredCanModules isSingle gr) acncs
-  acncs = abstr : M.allConcretes gr abstr
-  isSingle = True
-  complete (i,m) = M.isCompleteModule m --- not . isIncompleteCanon
-
-type ParamEnv =
-  (Map.Map (Ident,[Label]) (Type,Integer), -- numbered labels
-   Map.Map Term Integer,                   -- untyped terms to values
-   Map.Map Type (Map.Map Term Integer))    -- types to their terms to values
+-- return just one module per language
 
---- gathers those param types that are actually used in lincats and lin terms
-paramValues :: SourceGrammar -> ParamEnv
-paramValues cgr = (labels,untyps,typs) where
-  partyps = nub $ 
-            --- [App (Q (IC "Predef") (IC "Ints")) (EInt i) | i <- [1,9]] ---linTypeInt 
-            [ty | 
-              (_,(_,CncCat (Just (L _ ty0)) _ _)) <- jments,
-              ty  <- typsFrom ty0
-            ] ++ [
-             Q m ty | 
-              (m,(ty,ResParam _ _)) <- jments
-            ] ++ [ty | 
-              (_,(_,CncFun _ (Just (L _ tr)) _)) <- jments,
-              ty  <- err (const []) snd $ appSTM (typsFromTrm tr) []
-            ]
-  params = [(ty, errVal (traceD ("UNKNOWN PARAM TYPE" +++ show ty) []) $ 
-                                         Look.allParamValues cgr ty) | ty <- partyps]
-  typsFrom ty = (if isParam ty then (ty:) else id) $ case ty of
-    Table p t  -> typsFrom p ++ typsFrom t
-    RecType ls -> concat [typsFrom t | (_, t) <- ls]
-    _ -> []
- 
-  isParam ty = case ty of
-    Q _ _ -> True
-    QC _ _ -> True
-    RecType rs -> all isParam (map snd rs)
-    _ -> False
+reorder :: Ident -> SourceGrammar -> SourceGrammar
+reorder abs cg =
+  M.MGrammar $ 
+       (abs, M.ModInfo M.MTAbstract       M.MSComplete aflags [] Nothing [] [] adefs):
+      [(cnc, M.ModInfo (M.MTConcrete abs) M.MSComplete cflags [] Nothing [] [] cdefs)
+            | cnc <- M.allConcretes cg abs, let (cflags,cdefs) = concr cnc]
+  where
+    aflags = 
+      concatOptions [M.flags mo | (_,mo) <- M.modules cg, M.isModAbs mo]
 
-  typsFromTrm :: Term -> STM [Type] Term
-  typsFromTrm tr = case tr of
-    R fs -> mapM_ (typsFromField . snd) fs >> return tr 
+    adefs = 
+      Map.fromList (predefADefs ++ Look.allOrigInfos cg abs)
       where
-        typsFromField (mty, t) = case mty of
-          Just x -> updateSTM (x:) >> typsFromTrm t
-          _ -> typsFromTrm t
-    V ty ts -> updateSTM (ty:) >> mapM_ typsFromTrm ts >> return tr
-    T (TTyped ty) cs -> 
-      updateSTM (ty:) >> mapM_ typsFromTrm [t | (_, t) <- cs] >> return tr
-    T (TComp ty) cs -> 
-      updateSTM (ty:) >> mapM_ typsFromTrm [t | (_, t) <- cs] >> return tr
-    _ -> GM.composOp typsFromTrm tr
-
-  mods = traceD (render (hsep (map (ppIdent . fst) ms))) ms where ms = M.modules cgr
-
-  jments = 
-    [(m,j) | (m,mo) <- mods, j <- tree2list $ M.jments mo]
-  typs = 
-    Map.fromList [(ci,Map.fromList (zip vs [0..])) | (ci,vs) <- params]
-  untyps = 
-    Map.fromList $ concatMap Map.toList [typ | (_,typ) <- Map.toList typs]
-  lincats = 
-    [(cat,[f | let RecType fs = GM.defLinType, f <- fs]) | cat <- [cInt,cFloat, cString]] ++
-    reverse ---- TODO: really those lincats that are reached
-            ---- reverse is enough to expel overshadowed ones... 
-      [(cat,ls) | (_,(cat,CncCat (Just (L _ ty)) _ _)) <- jments, 
-                  RecType ls <- [unlockTy ty]]
-  labels = Map.fromList $ concat 
-    [((cat,[lab]),(typ,i)): 
-      [((cat,[LVar v]),(typ,toInteger (mx + v))) | v <- [0,1]] ++ ---- 1 or 2 vars 
-      [((cat,[lab,lab2]),(ty,j)) | 
-        rs <- getRec typ, ((lab2, ty),j) <- zip rs [0..]] 
-      ++
-      ---- one more level, but: ...
-      [((cat,[lab,lab2,lab3]),(ty,j)) | 
-        rss <- getRec typ, ((lab2, ty0),j0) <- zip rss [0..],
-        (_,ty2) <- rss,
-        rs  <- getRec ty2, ((lab3, ty),j) <- zip rs [0..]] 
-      | 
-        (cat,ls) <- lincats, ((lab, typ),i) <- zip ls [0..], let mx = length ls]
-    -- go to tables recursively
-    ---- ... TODO: go to deeper records
-   where
-     getRec typ = case typ of
-       RecType rs -> [rs] ---- [unlockTyp rs]  -- (sort (unlockTyp ls))
-       Table _ t  -> getRec t
-       _ -> []
-
-type2type :: SourceGrammar -> ParamEnv -> Type -> Type
-type2type cgr env@(labels,untyps,typs) ty = case ty of
-  RecType rs ->
-    RecType [(mkLab i, t2t t) | (i,(l, t)) <- zip [0..] (unlockTyp rs)]
-  Table pt vt -> Table (t2t pt) (t2t vt)
-  QC _ _ -> look ty
-  _ -> ty
- where
-   t2t = type2type cgr env
-   look ty = EInt $ (+ (-1)) $ toInteger $ case Map.lookup ty typs of
-     Just vs -> length $ Map.assocs vs
-     _ -> trace ("unknown partype " ++ show ty) 66669
-
-term2term :: Ident -> SourceGrammar -> ParamEnv -> Term -> Term
-term2term fun cgr env@(labels,untyps,typs) tr = case tr of
-  App _ _ -> mkValCase (unrec tr)
-  QC  _ _ -> mkValCase tr 
-  R rs    -> R [(mkLab i, (Nothing, t2t t)) | 
-                 (i,(l,(_,t))) <- zip [0..] (GM.sortRec (unlock rs))]
-  P  t l   -> r2r tr
-
-  T (TWild _) _ -> error $ (render (text "wild" <+> ppTerm Qualified 0 tr))
-  T (TComp  ty) cs  -> t2t $ V ty $ map snd cs ---- should be elim'ed in tc
-  T (TTyped ty) cs  -> t2t $ V ty $ map snd cs ---- should be elim'ed in tc
-  V ty ts  -> mkCurry $ V ty [t2t t | t <- ts]
-  S t p    -> mkCurrySel (t2t t) (t2t p)
-
-  _ -> GM.composSafeOp t2t tr
- where
-   t2t = term2term fun cgr env
-
-   unrec t = case t of
-     App f (R fs) -> GM.mkApp (unrec f) [unrec u | (_,(_,u)) <- fs]
-     _ -> GM.composSafeOp unrec t
-
-   mkValCase tr = case appSTM (doVar tr) [] of
-     Ok (tr', st@(_:_)) -> t2t $ comp $ foldr mkCase tr' st
-     _ -> valNum $ comp tr
-
-   --- this is mainly needed for parameter record projections
-   ---- was: 
-   comp t = errVal t $ Compute.computeConcreteRec cgr t
-
-   doVar :: Term -> STM [((Type,[Term]),(Term,Term))] Term
-   doVar tr = case getLab tr of
-     Ok (cat, lab) -> do
-       k <- readSTM >>= return . length
-       let tr' = Vr $ identC $ (BS.pack (show k)) -----
-
-       let tyvs = case Map.lookup (cat,lab) labels of
-             Just (ty,_) -> case Map.lookup ty typs of
-               Just vs -> (ty,[t | 
-                            (t,_) <- sortBy (\x y -> compare (snd x) (snd y)) 
-                                            (Map.assocs vs)])
-               _ -> error $ render (text "doVar1" <+> A.ppTerm Unqualified 0 ty)
-             _ -> error $ render (text "doVar2" <+> A.ppTerm Unqualified 0 tr <+> text (show (cat,lab))) ---- debug
-       updateSTM ((tyvs, (tr', tr)):) 
-       return tr'
-     _ -> GM.composOp doVar tr
-
-   r2r tr@(P (S (V ty ts) v) l) = t2t $ S (V ty [comp (P t l) | t <- ts]) v
-
-   r2r tr@(P p _) = case getLab tr of
-     Ok (cat,labs) -> P (t2t p) . mkLab $ 
-          maybe (prtTrace tr $ 66664) snd $ 
-            Map.lookup (cat,labs) labels
-     _ -> K (render (A.ppTerm Unqualified 0 tr <+> prtTrace tr (int 66665)))
-
-   -- this goes recursively into tables (ignored) and records (accumulated)
-   getLab tr = case tr of
-     Vr (IA cat _) -> return (identC cat,[])
-     Vr (IAV cat _ _) -> return (identC cat,[])
-     Vr (IC s) -> return (identC cat,[]) where
-       cat = BS.takeWhile (/='_') s ---- also to match IAVs; no _ in a cat tolerated
-             ---- init (reverse (dropWhile (/='_') (reverse s))) ---- from gf parser
-----     Vr _ -> error $ "getLab " ++ show tr
-     P p lab2 -> do
-       (cat,labs) <- getLab p
-       return (cat,labs++[lab2]) 
-     S p _ -> getLab p
-     _ -> Bad "getLab"
-
-
-   mkCase ((ty,vs),(x,p)) tr = 
-     S (V ty [mkBranch x v tr | v <- vs]) p
-   mkBranch x t tr = case tr of
-     _ | tr == x -> t
-     _ -> GM.composSafeOp (mkBranch x t) tr     
-
-   valNum tr = maybe (valNumFV $ tryFV tr) EInt $ Map.lookup tr untyps
-    where
-      tryFV tr = case GM.appForm tr of
-        (c@(QC _ _), ts) -> [GM.mkApp c ts' | ts' <- combinations (map tryFV ts)]
-        (FV ts,_) -> ts
-        _ -> [tr]
-      valNumFV ts = case ts of
-        [tr] -> let msg = render (text "DEBUG" <+> ppIdent fun <> text ": error in valNum" <+> ppTerm Qualified 0 tr) in 
-                trace msg $ error (showIdent fun)
-        _ -> FV $ map valNum ts
-
-   mkCurry trm = case trm of
-     V (RecType [(_,ty)]) ts -> V ty ts 
-     V (RecType ((_,ty):ltys)) ts -> 
-       V ty [mkCurry (V (RecType ltys) cs) | 
-         cs <- chop (product (map (lengthtyp . snd) ltys)) ts] 
-     _ -> trm
-   lengthtyp ty = case Map.lookup ty typs of
-     Just m -> length (Map.assocs m)
-     _ -> error $ "length of type " ++ show ty
-   chop i xs = case splitAt i xs of 
-     (xs1,[])  -> [xs1]
-     (xs1,xs2) -> xs1:chop i xs2
-
-
-   mkCurrySel t p = S t p -- done properly in CheckGFCC
-
-
-mkLab k = LIdent (BS.pack ("_" ++ show k))
-
--- remove lock fields; in fact, any empty records and record types
-unlock = filter notlock where
-  notlock (l,(_, t)) = case t of --- need not look at l
-     R [] -> False
-     RecType [] -> False
-     _ -> True
-
-unlockTyp = filter notlock
-  
-notlock (l, t) = case t of --- need not look at l
-     RecType [] -> False
-     _ -> True
-
-unlockTy ty = case ty of
-  RecType ls -> RecType $ GM.sortRec [(l, unlockTy t) | (l,t) <- ls, notlock (l,t)]
-  _ -> GM.composSafeOp unlockTy ty
-
-
-prtTrace tr n = 
-  trace (render (text "-- INTERNAL COMPILER ERROR" <+> A.ppTerm Unqualified 0 tr $$ text (show n))) n
-prTrace  tr n = trace (render (text "-- OBSERVE" <+> A.ppTerm Unqualified 0 tr <+> text (show n) <+> text (show tr))) n
-
-
--- | this function finds out what modules are really needed in the canonical gr.
--- its argument is typically a concrete module name
-requiredCanModules :: Bool -> M.MGrammar a -> Ident -> [Ident]
-requiredCanModules isSingle gr c = nub $ filter notReuse ops ++ exts where
-  exts = M.allExtends gr c
-  ops  = if isSingle 
-         then map fst (M.modules gr) 
-         else iterFix (concatMap more) $ exts
-  more i = errVal [] $ do
-    m <- M.lookupModule gr i
-    return $ M.extends m ++ [o | o <- map M.openedModule (M.opens m)]
-  notReuse i = errVal True $ do
-    m <- M.lookupModule gr i
-    return $ M.isModRes m -- to exclude reused Cnc and Abs from required
-
-
-realize :: C.Term -> String
-realize = concat . take 1 . realizes
-
-realizes :: C.Term -> [String]
-realizes = map (unwords . untokn) . realizest
-
-realizest :: C.Term -> [[C.Tokn]]
-realizest trm = case trm of
-  C.R ts     -> realizest (ts !! 0)
-  C.S ss     -> map concat $ combinations $ map realizest ss
-  C.K t      -> [[t]]
-  C.W s t    -> [[C.KS (s ++ r)] | [C.KS r] <- realizest t]
-  C.FV ts    -> concatMap realizest ts
-  C.TM s     -> [[C.KS s]]
-  _ -> [[C.KS $ "REALIZE_ERROR " ++ show trm]] ---- debug
+        predefADefs = 
+           [(c, AbsCat (Just (L (0,0) []))) | c <- [cFloat,cInt,cString]]
 
-untokn :: [C.Tokn] -> [String]
-untokn ts = case ts of
-  C.KP d _  : [] -> d
-  C.KP d vs : ws -> let ss@(s:_) = untokn ws in sel d vs s ++ ss
-  C.KS s    : ws -> s : untokn ws
-  []             -> []
- where
-   sel d vs w = case [v | C.Alt v cs <- vs, any (\c -> isPrefixOf c w) cs] of
-     v:_ -> v
-     _   -> d
+    concr la = (flags, Map.fromList (predefCDefs ++ jments))
+      where 
+        flags  = concatOptions [M.flags mo | (i,mo) <- M.modules cg, M.isModCnc mo, 
+                                                Just r <- [lookup i (M.allExtendSpecs cg la)]]
+        jments = Look.allOrigInfos cg la
+        predefCDefs = 
+           [(c, CncCat (Just (L (0,0) GM.defLinType)) Nothing Nothing) | c <- [cInt,cFloat,cString]]
diff --git a/src/compiler/GF/Compile/Multi.hs b/src/compiler/GF/Compile/Multi.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/Multi.hs
@@ -0,0 +1,165 @@
+module GF.Compile.Multi (readMulti) where
+
+import Data.List
+import Data.Char
+
+-- AR 29 November 2010
+-- quick way of writing a multilingual lexicon and (with some more work) a grammar
+-- also several modules in one file
+-- file suffix .gfm (GF Multi)
+
+
+{-
+-- This multi-line comment is a possible file in the format.
+-- comments are as in GF, one-liners
+
+-- always start by declaring lang names as follows
+> langs Eng Fin Swe
+
+-- baseline rules: semicolon-separated line-by-line entries update abs and cncs, adding to S
+cheers ; skål ; terveydeksi
+
+-- alternatives within a language are comma-separated
+cheers ; skål ; terveydeksi, kippis
+
+-- more advanced: verbatim abstract rules prefixed by "> abs"
+> abs cat Drink ;
+> abs fun drink : Drink -> S ;
+
+-- verbatim concrete rules prefixed by ">" and comma-separated language list
+> Eng,Swe lin Gin = "gin" ; 
+
+-- multiple modules: modules as usual. Each module has to start from a new line.
+-- Should be UTF-8 encoded.
+
+-}
+
+{-
+main = do
+  xx <- getArgs
+  if null xx then putStrLn usage else do 
+    let (opts,file) = (init xx, last xx)
+    (absn,cncns) <- readMulti opts file
+    if elem "-pgf" xx 
+      then do
+         system ("gf -make -s -optimize-pgf " ++ unwords (map gfFile cncns))
+         putStrLn $ "wrote " ++ absn ++ ".pgf"
+      else return ()
+-}
+
+readMulti :: FilePath -> IO (FilePath,[FilePath])
+readMulti file = do
+  src <- readFile file
+  let multi = getMulti (takeWhile (/='.') file) src
+      absn  = absName multi
+      cncns = cncNames multi
+      raws  = rawModules multi
+  writeFile (gfFile absn) (absCode multi)
+  mapM_ (uncurry writeFile) 
+        [(gfFile cncn, cncCode absn cncn cod) | 
+          cncn <- cncNames multi, let cod = [r | (la,r) <- cncRules multi, la == cncn]]
+  putStrLn $ "wrote " ++ unwords (map gfFile (absn:cncns))
+  mapM_ (uncurry writeFile) [(gfFile n,s) | (n,s) <- raws] --- overwrites those above
+  return (gfFile absn, map gfFile cncns)
+
+data Multi = Multi {
+  rawModules :: [(String,String)],
+  absName  :: String,
+  cncNames :: [String],
+  startCat :: String,
+  absRules :: [String],
+  cncRules :: [(String,String)] -- lang,lin
+  }
+
+emptyMulti :: Multi 
+emptyMulti = Multi {
+  rawModules = [],
+  absName  = "Abs",
+  cncNames = [],
+  startCat = "S",
+  absRules = [],
+  cncRules = []
+  }
+
+absCode :: Multi -> String
+absCode multi = unlines $ header : start ++ (reverse (absRules multi)) ++ ["}"] where
+  header = "abstract " ++ absName multi ++ " = {"
+  start  = ["flags startcat = " ++ cat ++ " ;", "cat " ++ cat ++ " ;"]
+  cat = startCat multi
+
+cncCode :: String -> String -> [String] -> String
+cncCode ab cnc rules = unlines $ header : (reverse rules ++ ["}"]) where
+  header = "concrete " ++ cnc ++ " of " ++ ab ++ " = {"
+
+getMulti :: String -> String -> Multi
+getMulti m s = foldl (flip addMulti) (emptyMulti{absName = m}) (modlines (lines s))
+
+addMulti :: String -> Multi -> Multi
+addMulti line multi = case line of
+  '-':'-':_ -> multi
+  _ | all isSpace line -> multi
+  '>':s -> case words s of
+     "langs":ws -> let las = [absName multi ++ w | w <- ws] in multi {
+       cncNames = las, 
+       cncRules = concat [[(la,"lincat " ++ startCat multi ++ " = Str ;"),
+                           (la,"flags coding = utf8 ;")] | la <- las]
+       }
+     "startcat":c:ws -> multi {startCat = c}
+     "abs":ws   -> multi {
+       absRules = unwords ws : absRules multi
+       }
+     langs:ws   -> multi {
+       cncRules = [(absName multi ++ la, unwords ws) | la <- chop ',' langs] ++ cncRules multi
+       }
+  _ -> case words line of
+        m:name:_ | isModule m -> multi {
+          rawModules = (name,line):rawModules multi
+          } 
+        _ -> let (cat,fun,lins) = getRules (startCat multi) line in 
+              multi {
+               absRules = ("fun " ++ fun ++ " : " ++ cat ++ " ;") : absRules multi,
+               cncRules = zip (cncNames multi) lins ++ cncRules multi
+               }
+
+getRules :: String -> String -> (String,String,[String])
+getRules cat line = (cat, fun, map lin rss) where
+  rss = map (map unspace . chop ',') $ chop ';' line
+  fun = map idChar (head (head rss)) ++ "_" ++ cat
+  lin rs = "lin " ++ fun ++ " = " ++ unwords (intersperse "|" (map quote rs)) ++ " ;"
+
+chop :: Eq c => c -> [c] -> [[c]]
+chop c cs = case break (==c) cs of
+  (w,_:cs2) -> w : chop c cs2
+  ([],[])   -> []
+  (w,_)     -> [w]
+
+-- remove spaces from beginning and end, leave them in the middle
+unspace :: String -> String
+unspace = unwords . words
+
+quote :: String -> String
+quote r = "\"" ++ r ++ "\""
+
+-- to guarantee that the char can be used in an ident
+idChar :: Char -> Char
+idChar c = 
+  if (n > 47 && n < 58) || (n > 64 && n < 91) || (n > 96 && n < 123) 
+  then c
+  else '_'
+ where n = fromEnum c
+
+
+gfFile :: FilePath -> FilePath
+gfFile f = f ++ ".gf"
+
+isModule :: String -> Bool
+isModule = flip elem 
+  ["abstract","concrete","incomplete","instance","interface","resource"]
+
+modlines :: [String] -> [String]
+modlines ss = case ss of
+  l:ls -> case words l of
+    w:_ | isModule w -> case break (isModule . concat . take 1 . words) ls of
+      (ms,rest) -> unlines (l:ms) : modlines rest
+    _ -> l : modlines ls
+  _ -> []
diff --git a/src/compiler/GF/Compile/Optimize.hs b/src/compiler/GF/Compile/Optimize.hs
--- a/src/compiler/GF/Compile/Optimize.hs
+++ b/src/compiler/GF/Compile/Optimize.hs
@@ -23,7 +23,7 @@
 import GF.Grammar.Lookup
 import GF.Grammar.Predef
 import GF.Compile.Refresh
-import GF.Compile.Concrete.Compute
+import GF.Compile.Compute.Concrete
 import GF.Compile.CheckGrammar
 import GF.Compile.Update
 
@@ -73,7 +73,7 @@
         return (Just (L loc (factor param c 0 de)))
       _ -> return pde   -- indirection
 
-    ppr' <- liftM Just $ evalPrintname gr c ppr (Just (L (0,0) (K $ showIdent c)))
+    ppr' <- evalPrintname gr ppr
 
     return (CncCat ptyp pde' ppr')
 
@@ -83,7 +83,7 @@
       Just (L loc de) -> do de <- partEval opts gr (cont,val) de
                             return (Just (L loc (factor param c 0 de)))
       Nothing -> return pde
-    ppr' <-  liftM Just $ evalPrintname gr c ppr pde'
+    ppr' <-  evalPrintname gr ppr
     return $ CncFun mt pde' ppr' -- only cat in type actually needed
 
   ResOper pty pde 
@@ -146,10 +146,10 @@
        let T _ cs = mkWildCases t'
        return $ T (TWild p) cs
      Sort s | s == cStr -> return $ Vr varStr
-     QC q p             -> do vs <- lookupParamValues gr q p
-                              case vs of
-                                v:_ -> return v
-                                _   -> Bad (render (text "no parameter values given to type" <+> ppIdent p))
+     QC p           -> do vs <- lookupParamValues gr p
+                          case vs of
+                            v:_ -> return v
+                            _   -> Bad (render (text "no parameter values given to type" <+> ppQIdent Qualified p))
      RecType r  -> do
        let (ls,ts) = unzip r
        ts <- mapM mkDefField ts
@@ -157,40 +157,12 @@
      _ | Just _ <- isTypeInts typ -> return $ EInt 0 -- exists in all as first val
      _ -> Bad (render (text "linearization type field cannot be" <+> ppTerm Unqualified 0 typ))
 
--- | Form the printname: if given, compute. If not, use the computed
--- lin for functions, cat name for cats (dispatch made in evalCncDef above).
---- We cannot use linearization at this stage, since we do not know the
---- defaults we would need for question marks - and we're not yet in canon.
-evalPrintname :: SourceGrammar -> Ident -> Maybe (L Term) -> Maybe (L Term) -> Err (L Term)
-evalPrintname gr c ppr lin =
-  case ppr of
-    Just (L loc pr) -> do pr <- comp pr
-                          return (L loc pr)
-    Nothing -> case lin of
-                 Just (L loc t)  -> return $ L loc (K $ clean $ render (ppTerm Unqualified 0 (oneBranch t)))
-                 Nothing -> return $ L (0,0) (K $ showIdent c) ----
- where
-   comp = computeConcrete gr
-
-   oneBranch t = case t of
-     Abs _ _ b -> oneBranch b
-     R   (r:_) -> oneBranch $ snd $ snd r
-     T _ (c:_) -> oneBranch $ snd c
-     V _ (c:_) -> oneBranch c
-     FV  (t:_) -> oneBranch t
-     C x y     -> C (oneBranch x) (oneBranch y)
-     S x _     -> oneBranch x
-     P x _     -> oneBranch x
-     Alts (d,_) -> oneBranch d
-     _ -> t
-
-  --- very unclean cleaner
-   clean s = case s of
-     '+':'+':' ':cs -> clean cs
-     '"':cs -> clean cs
-     c:cs -> c: clean cs
-     _ -> s
-
+evalPrintname :: SourceGrammar -> Maybe (L Term) -> Err (Maybe (L Term))
+evalPrintname gr mpr =
+  case mpr of
+    Just (L loc pr) -> do pr <- computeConcrete gr pr
+                          return (Just (L loc pr))
+    Nothing         -> return Nothing
 
 -- do even more: factor parametric branches
 
@@ -222,7 +194,7 @@
 replace old new trm =
   case trm of
     -- these are the important cases, since they can correspond to patterns  
-    QC _ _   | trm == old -> new
+    QC _     | trm == old -> new
     App _ _  | trm == old -> new
     R _      | trm == old -> new
     App x y               -> App (replace old new x) (replace old new y)
diff --git a/src/compiler/GF/Compile/PGFtoHaskell.hs b/src/compiler/GF/Compile/PGFtoHaskell.hs
--- a/src/compiler/GF/Compile/PGFtoHaskell.hs
+++ b/src/compiler/GF/Compile/PGFtoHaskell.hs
@@ -200,7 +200,7 @@
    fns = groupBy valtypg (sortBy valtyps (map jty (Map.assocs (funs (abstract gr)))))
    valtyps (_, (_,x)) (_, (_,y)) = compare x y
    valtypg (_, (_,x)) (_, (_,y)) = x == y
-   jty (f,(ty,_,_)) = (f,catSkeleton ty)
+   jty (f,(ty,_,_,_)) = (f,catSkeleton ty)
 
 updateSkeleton :: OIdent -> HSkeleton -> (OIdent, [OIdent]) -> HSkeleton
 updateSkeleton cat skel rule =
diff --git a/src/compiler/GF/Compile/PGFtoJS.hs b/src/compiler/GF/Compile/PGFtoJS.hs
--- a/src/compiler/GF/Compile/PGFtoJS.hs
+++ b/src/compiler/GF/Compile/PGFtoJS.hs
@@ -33,8 +33,8 @@
 abstract2js :: String -> Abstr -> JS.Expr
 abstract2js start ds = new "GFAbstract" [JS.EStr start, JS.EObj $ map absdef2js (Map.assocs (funs ds))]
 
-absdef2js :: (CId,(Type,Int,Maybe [Equation])) -> JS.Property
-absdef2js (f,(typ,_,_)) =
+absdef2js :: (CId,(Type,Int,Maybe [Equation],Double)) -> JS.Property
+absdef2js (f,(typ,_,_,_)) =
   let (args,cat) = M.catSkeleton typ in 
     JS.Prop (JS.IdentPropName (JS.Ident (showCId f))) (new "Type" [JS.EArray [JS.EStr (showCId x) | x <- args], JS.EStr (showCId cat)])
 
@@ -57,30 +57,6 @@
                JS.Prop (JS.StringPropName "String") (JS.EFun [children] [JS.SReturn $ new "Arr" [JS.EIndex (JS.EVar children) (JS.EInt 0)]])]
    cats (c,CncCat start end _) = JS.Prop (JS.IdentPropName (JS.Ident (showCId c))) (JS.EObj [JS.Prop (JS.IdentPropName (JS.Ident "s")) (JS.EInt start)
                                                                                             ,JS.Prop (JS.IdentPropName (JS.Ident "e")) (JS.EInt end)])
-
-cncdef2js :: String -> String -> (CId,Term) -> JS.Property
-cncdef2js n l (f, t) = JS.Prop (JS.IdentPropName (JS.Ident (showCId f))) (JS.EFun [children] [JS.SReturn (term2js n l t)])
-
-term2js :: String -> String -> Term -> JS.Expr
-term2js n l t = f t
-  where 
-  f t = 
-    case t of
-      R xs           -> new "Arr" (map f xs)
-      P x y          -> JS.ECall (JS.EMember (f x) (JS.Ident "sel")) [f y]
-      S xs           -> mkSeq (map f xs)
-      K t            -> tokn2js t
-      V i            -> JS.EIndex (JS.EVar children) (JS.EInt i)
-      C i            -> new "Int" [JS.EInt i]
-      F f            -> JS.ECall (JS.EMember (JS.EIndex (JS.EMember (JS.EVar $ JS.Ident n) (JS.Ident "concretes")) (JS.EStr l)) (JS.Ident "rule")) [JS.EStr (showCId f), JS.EVar children]
-      FV xs          -> new "Variants" (map f xs)
-      W str x        -> new "Suffix" [JS.EStr str, f x]
-      TM _           -> new "Meta" []
-
-tokn2js :: Tokn -> JS.Expr
-tokn2js (KS s) = mkStr s
-tokn2js (KP ss vs) = mkSeq (map mkStr ss) -- FIXME
-
 mkStr :: String -> JS.Expr
 mkStr s = new "Str" [JS.EStr s]
 
@@ -95,19 +71,22 @@
 children = JS.Ident "cs"
 
 frule2js :: Production -> JS.Expr
-frule2js (PApply funid args) = new "Rule"   [JS.EInt funid, JS.EArray (map JS.EInt args)]
+frule2js (PApply funid args) = new "Apply"  [JS.EInt funid, JS.EArray (map farg2js args)]
 frule2js (PCoerce arg)       = new "Coerce" [JS.EInt arg]
 
+farg2js (PArg hypos fid) = new "PArg" (map (JS.EInt . snd) hypos ++ [JS.EInt fid])
+
 ffun2js (CncFun f lins) = new "CncFun" [JS.EStr (showCId f), JS.EArray (map JS.EInt (Array.elems lins))]
 
 seq2js :: Array.Array DotPos Symbol -> JS.Expr
 seq2js seq = JS.EArray [sym2js s | s <- Array.elems seq]
 
 sym2js :: Symbol -> JS.Expr
-sym2js (SymCat n l)    = new "Arg" [JS.EInt n, JS.EInt l]
-sym2js (SymLit n l)    = new "Lit" [JS.EInt n, JS.EInt l]
-sym2js (SymKS ts)      = new "KS"  (map JS.EStr ts)
-sym2js (SymKP ts alts) = new "KP"  [JS.EArray (map JS.EStr ts), JS.EArray (map alt2js alts)]
+sym2js (SymCat n l)    = new "SymCat" [JS.EInt n, JS.EInt l]
+sym2js (SymLit n l)    = new "SymLit" [JS.EInt n, JS.EInt l]
+sym2js (SymVar n l)    = new "SymVar" [JS.EInt n, JS.EInt l]
+sym2js (SymKS ts)      = new "SymKS"  (map JS.EStr ts)
+sym2js (SymKP ts alts) = new "SymKP"  [JS.EArray (map JS.EStr ts), JS.EArray (map alt2js alts)]
 
 alt2js (Alt ps ts) = new "Alt" [JS.EArray (map JS.EStr ps), JS.EArray (map JS.EStr ts)]
 
diff --git a/src/compiler/GF/Compile/PGFtoLProlog.hs b/src/compiler/GF/Compile/PGFtoLProlog.hs
--- a/src/compiler/GF/Compile/PGFtoLProlog.hs
+++ b/src/compiler/GF/Compile/PGFtoLProlog.hs
@@ -13,13 +13,13 @@
   text "module" <+> ppCId (absname pgf) <> char '.' $$
   space $$
   vcat [ppClauses cat fns | (cat,(_,fs)) <- Map.toList (cats (abstract pgf)),
-                            let fns = [(f,fromJust (Map.lookup f (funs (abstract pgf)))) | f <- fs]]
+                            let fns = [(f,fromJust (Map.lookup f (funs (abstract pgf)))) | (_,f) <- fs]]
   where
     ppClauses cat fns =
       text "/*" <+> ppCId cat <+> text "*/" $$
-      vcat [snd (ppClause (abstract pgf) 0 1 [] f ty) <> dot | (f,(ty,_,Nothing)) <- fns] $$
+      vcat [snd (ppClause (abstract pgf) 0 1 [] f ty) <> dot | (f,(ty,_,Nothing,_)) <- fns] $$
       space $$
-      vcat [vcat (map (\eq -> equation2clause (abstract pgf) f eq <> dot) eqs) | (f,(_,_,Just eqs)) <- fns] $$
+      vcat [vcat (map (\eq -> equation2clause (abstract pgf) f eq <> dot) eqs) | (f,(_,_,Just eqs,_)) <- fns] $$
       space
 
 grammar2lambdaprolog_sig pgf = render $
@@ -27,10 +27,10 @@
   space $$
   vcat [ppCat c hyps <> dot | (c,(hyps,_)) <- Map.toList (cats (abstract pgf))] $$
   space $$
-  vcat [ppFun f ty <> dot | (f,(ty,_,Nothing)) <- Map.toList (funs (abstract pgf))] $$
+  vcat [ppFun f ty <> dot | (f,(ty,_,Nothing,_)) <- Map.toList (funs (abstract pgf))] $$
   space $$
   vcat [ppExport c hyps <> dot | (c,(hyps,_)) <- Map.toList (cats (abstract pgf))] $$
-  vcat [ppFunPred f (hyps ++ [(Explicit,wildCId,DTyp [] c es)]) <> dot | (f,(DTyp hyps c es,_,Just _)) <- Map.toList (funs (abstract pgf))]
+  vcat [ppFunPred f (hyps ++ [(Explicit,wildCId,DTyp [] c es)]) <> dot | (f,(DTyp hyps c es,_,Just _,_)) <- Map.toList (funs (abstract pgf))]
 
 ppCat :: CId -> [Hypo] -> Doc
 ppCat c hyps = text "kind" <+> ppKind c <+> text "type"
@@ -157,8 +157,8 @@
   in expr2goal abstr scope goals' i' e1 (e2':args)
 expr2goal abstr scope goals i (EFun f)     args =
   case Map.lookup f (funs abstr) of
-    Just (_,_,Just _) -> let e = EFun (mkVar i)
-                         in (foldl EApp (EFun f) (args++[e]) : goals, i+1, e)
-    _                 -> (goals,i,foldl EApp (EFun f) args)
+    Just (_,_,Just _,_) -> let e = EFun (mkVar i)
+                           in (foldl EApp (EFun f) (args++[e]) : goals, i+1, e)
+    _                   -> (goals,i,foldl EApp (EFun f) args)
 expr2goal abstr scope goals i (EVar j)     args =
   (goals,i,foldl EApp (EVar j) args)
diff --git a/src/compiler/GF/Compile/PGFtoProlog.hs b/src/compiler/GF/Compile/PGFtoProlog.hs
--- a/src/compiler/GF/Compile/PGFtoProlog.hs
+++ b/src/compiler/GF/Compile/PGFtoProlog.hs
@@ -62,22 +62,22 @@
     clauseHeader "%% def(?Fun, ?Expr)" 
                      (concatMap plFundef (Map.assocs funs))
 
-plCat :: (CId, ([Hypo],[CId])) -> String
+plCat :: (CId, ([Hypo],[(Double,CId)])) -> String
 plCat (cat, (hypos,_)) = plFact "cat" (plTypeWithHypos typ) 
     where ((_,subst), hypos') = mapAccumL alphaConvertHypo emptyEnv hypos
           args = reverse [EFun x | (_,x) <- subst]
           typ = DTyp hypos' cat args
 
-plFun :: (CId, (Type, Int, Maybe [Equation])) -> String
-plFun (fun, (typ,_,_)) = plFact "fun" (plp fun : plTypeWithHypos typ')
+plFun :: (CId, (Type, Int, Maybe [Equation], Double)) -> String
+plFun (fun, (typ,_,_,_)) = plFact "fun" (plp fun : plTypeWithHypos typ')
     where typ' = snd $ alphaConvert emptyEnv typ
 
 plTypeWithHypos :: Type -> [String]
 plTypeWithHypos (DTyp hypos cat args) = [plTerm (plp cat) (map plp args), plList (map (\(_,x,ty) -> plOper ":" (plp x) (plp ty)) hypos)]
 
-plFundef :: (CId, (Type,Int,Maybe [Equation])) -> [String]
-plFundef (fun, (_,_,Nothing )) = []
-plFundef (fun, (_,_,Just eqs)) = [plFact "def" [plp fun, plp fundef']]
+plFundef :: (CId, (Type,Int,Maybe [Equation],Double)) -> [String]
+plFundef (fun, (_,_,Nothing ,_)) = []
+plFundef (fun, (_,_,Just eqs,_)) = [plFact "def" [plp fun, plp fundef']]
     where fundef' = snd $ alphaConvert emptyEnv eqs
 
 
@@ -116,32 +116,6 @@
 instance PLPrint Equation where
     plp (Equ patterns result)   = plOper ":" (plp patterns) (plp result)
 
-instance PLPrint Term where
-    plp (S terms) = plTerm "s"  [plp terms]
-    plp (C n)     = plTerm "c"  [show n]
-    plp (K tokn)  = plTerm "k"  [plp tokn]
-    plp (FV trms) = plTerm "fv" [plp trms]
-    plp (P t1 t2) = plTerm "p"  [plp t1, plp t2]
-    plp (W s trm) = plTerm "w"  [plp s, plp trm]
-    plp (R terms) = plTerm "r"  [plp terms]
-    plp (F oper)  = plTerm "f"  [plp oper]
-    plp (V n)     = plTerm "v"  [show n]
-    plp (TM str)  = plTerm "tm" [plp str]
-
-{-- more prolog-like syntax for PGF terms, but also more difficult to handle:
-instance PLPrint Term where
-    plp (S terms)  = plp terms
-    plp (C n)      = show n
-    plp (K token)  = plp token
-    plp (FV terms) = prCurlyList (map plp terms)
-    plp (P t1 t2)  = plOper "/" (plp t1) (plp t2)
-    plp (W s trm)  = plOper "+" (plp s) (plp trm)
-    plp (R terms)  = plTerm "r" (map plp terms)
-    plp (F oper)   = plTerm "f" [plp oper]
-    plp (V n)      = plTerm "arg"  [show n]
-    plp (TM str)   = plTerm "meta" [plp str]
---}
-
 instance PLPrint CId where
     plp cid | isLogicalVariable str || 
               cid == wildCId = plVar str
@@ -152,11 +126,6 @@
     plp (LStr s) = plp s
     plp (LInt n) = plp (show n)
     plp (LFlt f) = plp (show f)
-
-instance PLPrint Tokn where
-    plp (KS tokn) = plp tokn
-    plp (KP strs alts) = plTerm "kp" [plp strs, plList [plOper "/" (plp ss1) (plp ss2) |
-                                                        Alt ss1 ss2 <- alts]]
 
 ----------------------------------------------------------------------
 -- basic prolog-printing
diff --git a/src/compiler/GF/Compile/ReadFiles.hs b/src/compiler/GF/Compile/ReadFiles.hs
--- a/src/compiler/GF/Compile/ReadFiles.hs
+++ b/src/compiler/GF/Compile/ReadFiles.hs
@@ -54,18 +54,18 @@
 getAllFiles opts ps env file = do
   -- read module headers from all files recursively
   ds <- liftM reverse $ get [] [] (justModuleName file)
-  ioeIO $ putIfVerb opts $ "all modules:" +++ show [name | (name,_,_,_,_) <- ds]
+  ioeIO $ putIfVerb opts $ "all modules:" +++ show [name | (name,_,_,_,_,_) <- ds]
   return $ paths ds
   where
     -- construct list of paths to read
     paths ds = concatMap mkFile ds
       where
-        mkFile (f,st,gfTime,gfoTime,p) =
+        mkFile (f,st,time,has_src,imps,p) =
           case st of 
-            CSComp                 -> [p </> gfFile f]
-            CSRead | isJust gfTime -> [gf2gfo opts (p </> gfFile f)]
-                   | otherwise     -> [p </> gfoFile f]
-            CSEnv                  -> []
+            CSComp             -> [p </> gfFile f]
+            CSRead | has_src   -> [gf2gfo opts (p </> gfFile f)]
+                   | otherwise -> [p </> gfoFile f]
+            CSEnv              -> []
 
     -- | traverses the dependency graph and returns a topologicaly sorted
     -- list of ModuleInfo. An error is raised if there is circular dependency
@@ -75,15 +75,17 @@
         -> IOE [ModuleInfo]   -- ^ the final 
     get trc ds name
       | name `elem` trc = ioeErr $ Bad $ "circular modules" +++ unwords trc
-      | (not . null) [n | (n,_,_,_,_) <- ds, name == n]     --- file already read
+      | (not . null) [n | (n,_,_,_,_,_) <- ds, name == n]     --- file already read
                         = return ds
       | otherwise       = do
-           (name,st0,t0,imps,p) <- findModule name
+           (name,st0,t0,has_src,imps,p) <- findModule name
            ds <- foldM (get (name:trc)) ds imps
-           let (st,t) | (not . null) [f | (f,_,t1,_,_) <- ds, elem f imps && liftM2 (>=) t0 t1 /= Just True]
+           let (st,t) | has_src &&
+                        flag optRecomp opts == RecompIfNewer &&
+                        (not . null) [f | (f,st,t1,_,_,_) <- ds, elem f imps && liftM2 (>=) t0 t1 /= Just True]
                                   = (CSComp,Nothing)
                       | otherwise = (st0,t0)
-           return ((name,st,t,imps,p):ds)
+           return ((name,st,t,has_src,imps,p):ds)
 
     -- searches for module in the search path and if it is found
     -- returns 'ModuleInfo'. It fails if there is no such module
@@ -116,7 +118,7 @@
                                        Right mo          -> return (importsOfModule mo)
       ioeErr $ testErr (mname == name)
                        ("module name" +++ mname +++ "differs from file name" +++ name)
-      return (name,st,t,imps,dropFileName file)
+      return (name,st,t,isJust gfTime,imps,dropFileName file)
 
 isGFO :: FilePath -> Bool
 isGFO = (== ".gfo") . takeExtensions
@@ -160,7 +162,7 @@
  | CSEnv  -- gfo is in env
   deriving Eq
 
-type ModuleInfo = (ModName,CompStatus,Maybe ClockTime,[ModName],InitPath)
+type ModuleInfo = (ModName,CompStatus,Maybe ClockTime,Bool,[ModName],InitPath)
 
 importsOfModule :: SourceModule -> (ModName,[ModName])
 importsOfModule (m,mi) = (modName m,depModInfo mi [])
diff --git a/src/compiler/GF/Compile/Refresh.hs b/src/compiler/GF/Compile/Refresh.hs
--- a/src/compiler/GF/Compile/Refresh.hs
+++ b/src/compiler/GF/Compile/Refresh.hs
@@ -68,7 +68,7 @@
 refreshPatt p = case p of
   PV x    -> liftM PV     (refVar x)
   PC c ps -> liftM (PC c) (mapM refreshPatt ps)
-  PP q c ps -> liftM (PP q c) (mapM refreshPatt ps)
+  PP c ps -> liftM (PP c) (mapM refreshPatt ps)
   PR r    -> liftM PR     (mapPairsM refreshPatt r)
   PT t p' -> liftM2 PT    (refresh t) (refreshPatt p')
 
diff --git a/src/compiler/GF/Compile/Rename.hs b/src/compiler/GF/Compile/Rename.hs
--- a/src/compiler/GF/Compile/Rename.hs
+++ b/src/compiler/GF/Compile/Rename.hs
@@ -69,13 +69,13 @@
    case t of
   Vr c -> ident predefAbs c
   Cn c -> ident (\_ s -> checkError s) c
-  Q m' c | m' == cPredef {- && isInPredefined c -} -> return t
-  Q m' c -> do
+  Q (m',c) | m' == cPredef {- && isInPredefined c -} -> return t
+  Q (m',c) -> do
     m <- checkErr (lookupErr m' qualifs)
     f <- lookupTree showIdent c m
     return $ f c
-  QC m' c | m' == cPredef {- && isInPredefined c -} -> return t
-  QC m' c -> do
+  QC (m',c) | m' == cPredef {- && isInPredefined c -} -> return t
+  QC (m',c) -> do
     m <- checkErr (lookupErr m' qualifs)
     f <- lookupTree showIdent c m
     return $ f c
@@ -87,7 +87,7 @@
 
    -- this facility is mainly for BWC with GF1: you need not import PredefAbs
    predefAbs c s
-     | isPredefCat c = return $ Q cPredefAbs c
+     | isPredefCat c = return $ Q (cPredefAbs,c)
      | otherwise     = checkError s
 
    ident alt c = case lookupTree showIdent c act of
@@ -105,12 +105,12 @@
 
 info2status :: Maybe Ident -> (Ident,Info) -> StatusInfo
 info2status mq (c,i) = case i of
-  AbsFun _ _ Nothing -> maybe Con QC mq
-  ResValue _  -> maybe Con QC mq
-  ResParam _ _  -> maybe Con QC mq
-  AnyInd True m -> maybe Con (const (QC m)) mq
-  AnyInd False m -> maybe Cn (const (Q m)) mq
-  _           -> maybe Cn  Q mq
+  AbsFun _ _ Nothing _ -> maybe Con (curry QC) mq
+  ResValue _  -> maybe Con (curry QC) mq
+  ResParam _ _  -> maybe Con (curry QC) mq
+  AnyInd True m -> maybe Con (const (curry QC m)) mq
+  AnyInd False m -> maybe Cn (const (curry Q m)) mq
+  _           -> maybe Cn (curry Q) mq
 
 tree2status :: OpenSpec -> BinTree Ident Info -> BinTree Ident StatusInfo
 tree2status o = case o of
@@ -141,7 +141,7 @@
 renameInfo status m i info =
   case info of
     AbsCat pco -> liftM AbsCat (renPerh (renameContext status) pco)
-    AbsFun  pty pa ptr -> liftM3 AbsFun (renTerm pty) (return pa) (renMaybe (mapM (renLoc (renEquation status))) ptr)
+    AbsFun  pty pa ptr poper -> liftM4 AbsFun (renTerm pty) (return pa) (renMaybe (mapM (renLoc (renEquation status))) ptr) (return poper)
     ResOper pty ptr -> liftM2 ResOper (renTerm pty) (renTerm ptr)
     ResOverload os tysts -> liftM (ResOverload os) (mapM (renPair (renameTerm status [])) tysts)
     ResParam (Just pp) m -> do
@@ -192,8 +192,8 @@
       | otherwise -> renid trm
     Cn _   -> renid trm
     Con _  -> renid trm
-    Q _ _  -> renid trm
-    QC _ _ -> renid trm
+    Q _    -> renid trm
+    QC _   -> renid trm
     T i cs -> do
       i' <- case i of
         TTyped ty -> liftM TTyped $ ren vs ty -- the only annotation in source
@@ -211,7 +211,7 @@
     P t@(Vr r) l                                               -- Here we have $r.l$ and this is ambiguous it could be either 
                                                                -- record projection from variable or constant $r$ or qualified expression with module $r$
       | elem r vs -> return trm                                -- try var proj first ..
-      | otherwise -> checks [ renid (Q r (label2ident l))      -- .. and qualified expression second.
+      | otherwise -> checks [ renid (Q (r,label2ident l))      -- .. and qualified expression second.
                             , renid t >>= \t -> return (P t l) -- try as a constant at the end
                             , checkError (text "unknown qualified constant" <+> ppTerm Unqualified 0 trm)
                             ]
@@ -236,34 +236,34 @@
   PMacro c -> do
     c' <- renid $ Vr c
     case c' of
-      Q p d -> renp $ PM p d
+      Q d -> renp $ PM d
       _ -> checkError (text "unresolved pattern" <+> ppPatt Unqualified 0 patt)
 
   PC c ps -> do
     c' <- renid $ Cn c
     case c' of
-      QC m c -> do psvss <- mapM renp ps
-                   let (ps,vs) = unzip psvss
-                   return (PP m c ps, concat vs)
-      Q  _ _ -> checkError (text "data constructor expected but" <+> ppTerm Qualified 0 c' <+> text "is found instead")
-      _      -> checkError (text "unresolved data constructor" <+> ppTerm Qualified 0 c')
+      QC c -> do psvss <- mapM renp ps
+                 let (ps,vs) = unzip psvss
+                 return (PP c ps, concat vs)
+      Q  _ -> checkError (text "data constructor expected but" <+> ppTerm Qualified 0 c' <+> text "is found instead")
+      _    -> checkError (text "unresolved data constructor" <+> ppTerm Qualified 0 c')
 
-  PP p c ps -> do
-    (QC p' c') <- renid (QC p c)
+  PP c ps -> do
+    (QC c') <- renid (QC c)
     psvss <- mapM renp ps
     let (ps',vs) = unzip psvss
-    return (PP p' c' ps', concat vs)
+    return (PP c' ps', concat vs)
 
-  PM p c -> do
-    x <- renid (Q p c)
-    (p',c') <- case x of
-                 (Q p' c') -> return (p',c')
-                 _         -> checkError (text "not a pattern macro" <+> ppPatt Qualified 0 patt)
-    return (PM p' c', [])
+  PM c -> do
+    x <- renid (Q c)
+    c' <- case x of
+            (Q c') -> return c'
+            _      -> checkError (text "not a pattern macro" <+> ppPatt Qualified 0 patt)
+    return (PM c', [])
 
   PV x -> checks [ renid (Vr x) >>= \t' -> case t' of
-                                             QC m c -> return (PP m c [],[])
-                                             _      -> checkError (text "not a constructor")
+                                             QC c -> return (PP c [],[])
+                                             _    -> checkError (text "not a constructor")
                  , return (patt, [x])
                  ]
 
diff --git a/src/compiler/GF/Compile/SubExOpt.hs b/src/compiler/GF/Compile/SubExOpt.hs
--- a/src/compiler/GF/Compile/SubExOpt.hs
+++ b/src/compiler/GF/Compile/SubExOpt.hs
@@ -58,8 +58,8 @@
       ResOper pty (Just (L loc t)) -> [(c, ResOper pty (Just (L loc (unparTerm t))))]
       _ -> [(c,info)]
     unparTerm t = case t of
-      Q m c | isOperIdent c -> --- name convention of subexp opers
-        errVal t $ liftM unparTerm $ lookupResDef gr m c 
+      Q (m,c) | isOperIdent c -> --- name convention of subexp opers
+        errVal t $ liftM unparTerm $ lookupResDef gr (m,c)
       _ -> C.composSafeOp unparTerm t
     gr = M.MGrammar [sm] 
     rebuild = buildTree . concat
@@ -84,7 +84,7 @@
        return (f,ResOper ty (Just (L loc trm')))
      _ -> return (f,def)
    recomp f t = case Map.lookup t tree of
-     Just (_,id) | operIdent id /= f -> return $ Q mo (operIdent id)
+     Just (_,id) | operIdent id /= f -> return $ Q (mo, operIdent id)
      _ -> C.composOp (recomp f) t
 
    list = Map.toList tree
diff --git a/src/compiler/GF/Compile/ToAPI.hs b/src/compiler/GF/Compile/ToAPI.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/ToAPI.hs
@@ -0,0 +1,206 @@
+module GF.Compile.ToAPI 
+ (stringToAPI,exprToAPI)
+  where
+
+import PGF.Expr
+import PGF.CId
+import Data.Maybe
+import System.IO
+import Control.Monad
+import Data.Set as Set (fromList,toList)
+import Data.List
+import Data.Map(Map)
+import qualified Data.Map as Map
+import PGF.Signature
+
+
+-- intermediate structure for representing the translated expression
+data APIfunc = BasicFunc String | AppFunc String [APIfunc] | NoAPI  
+  deriving (Show,Eq)
+
+
+
+
+-- translates a GF expression/tree into an equivalent one which uses functions from the GF
+-- API instead of the syntactic modules
+exprToAPI :: Expr -> String
+exprToAPI expr = 
+    let ffs = exprToFunc expr 
+       in printAPIfunc ffs
+
+
+
+
+-- translates a GF expression/tree written as a string to its correspondent which uses API functions
+-- the string is parsed into a GF expression/tree first
+stringToAPI :: String -> String
+stringToAPI expressionToRead = 
+        case readExpr expressionToRead of
+             Just ex -> exprToAPI ex                
+             _       -> error "incorrect expression given as input "
+
+
+
+
+-- function for translating an expression into APIFunc with type inference for  
+-- the type of the expression
+exprToFunc :: Expr -> APIfunc
+exprToFunc expr = 
+   case unApp expr of
+      Just (cid,l) -> 
+         case Map.lookup (showCId cid) syntaxFuncs of 
+            Just sig -> mkAPI True (fst sig,expr)
+            _        -> case l of 
+                          [] -> BasicFunc (showCId cid) 
+                          _  -> let es = map exprToFunc l 
+                                   in  AppFunc (showCId cid) es
+      _ -> BasicFunc (showExpr [] expr)
+
+        
+       
+                             
+
+-- main function for translating an expression along with its type into an APIFunc
+-- the boolean controls the need to optimize the result
+mkAPI :: Bool -> (String, Expr) -> APIfunc
+mkAPI opt (ty,expr) = 
+ if elem ty rephraseable then rephraseSentence ty expr 
+  else if opt then if elem ty optimizable then optimize expr else computeAPI (ty,expr)
+        else computeAPI (ty,expr) 
+  where
+     rephraseSentence ty expr = 
+       case unApp expr of 
+         Just (cid,es) -> if isPrefixOf "Use" (showCId cid) then 
+                                                             let newCat = drop 3 (showCId cid)
+                                                                 afClause = mkAPI True (newCat, es !! 2)
+                                                                 afPol = mkAPI True ("Pol",es !! 1)                                         
+                                                                 lTense = mkAPI True ("Temp", head es)                                        
+                                                              in case lTense of 
+                                                                  AppFunc _ [BasicFunc s1, BasicFunc s2] -> 
+                                                                      let (r1,r2) = getTemporalParam s1 s2 in  
+                                                                         AppFunc ("mk"++newCat) [r1,r2,afPol,afClause] 
+                                                                  _ ->  error "erroneous tense"          
+                           else (mkAPI False) (ty,expr)
+         _             -> error $ "incorrect for for expression "++ showExpr [] expr
+     
+     getTemporalParam s1 s2 = 
+                         let r1 = case s1 of 
+                                     "TPres" -> NoAPI
+                                     "TPast" -> BasicFunc "pastTense"
+                                     "TFut"  -> BasicFunc "futureTense" 
+                                     "TCond" -> BasicFunc "conditionalTense"
+                             r2 = case s2 of
+                                     "ASimul" -> NoAPI
+                                     "AAnter" -> BasicFunc "anteriorAnt"
+                              in (r1,r2) 
+
+
+
+computeAPI :: (String,Expr) ->  APIfunc
+computeAPI (ty,expr) =
+   case (unApp expr) of 
+     Just (cid,[]) ->  getSimpCat (showCId cid) ty
+     Just (cid,es) -> 
+        let p = specFunction (showCId cid) es  
+          in if isJust p then fromJust p
+              else case Map.lookup (show cid) syntaxFuncs of
+                    Nothing -> exprToFunc expr    
+                    Just (nameCat,typesExps) -> 
+                      if elem nameCat hiddenCats && length es == 1 then  (mkAPI True) (head typesExps,head es)
+                       else if elem nameCat hiddenCats then error $ "incorrect coercion "++nameCat++" - "++show es   
+                              else let afs = map (mkAPI True) (zip typesExps es)
+                                      in AppFunc ("mk" ++ nameCat) afs 
+     _         -> error "error"          
+  where 
+    getSimpCat "IdRP" _     = BasicFunc "which_RP"
+    getSimpCat "DefArt" _   = BasicFunc "the_Art"
+    getSimpCat "IndefArt" _ = BasicFunc "a_Art"
+    getSimpCat "NumSg" _    = NoAPI
+    getSimpCat "NumPl" _    = BasicFunc "plNum"
+    getSimpCat "PPos" _     = NoAPI
+    getSimpCat "PNeg" _     = BasicFunc "negativePol"
+    getSimpCat cid ty       = if elem ty ["PConj","Voc"] && isInfixOf "No" cid
+                                 then NoAPI 
+                                  else BasicFunc cid
+
+    specFunction "PassV2" es     = rephraseUnary "passiveVP" "V2" es
+    specFunction "ReflA2" es     = rephraseUnary "reflAP" "A2" es
+    specFunction "UseComparA" es = rephraseUnary "comparAP" "A" es
+    specFunction "TFullStop" es  = rephraseText "fullStopPunct" es
+    specFunction "TExclMark" es  = rephraseText "exclMarkPunct" es
+    specFunction "TQuestMark" es = rephraseText "questMarkPunct" es
+    specFunction _ _             = Nothing
+
+    rephraseUnary ss ty es = 
+     let afs = mkAPI True (ty,head es) 
+        in Just (AppFunc ss [afs])
+
+    rephraseText ss es = 
+     let afs = map (mkAPI True) (zip ["Phr","Text"] es) in
+        if afs !! 1 == BasicFunc "TEmpty" then  Just (AppFunc "mkText" [head afs,BasicFunc ss])
+           else Just (AppFunc "mkText" [head afs, BasicFunc ss, last afs])
+
+
+
+-- optimizations for the translation of some categories
+optimize expr = optimizeNP expr
+
+optimizeNP expr = 
+   case unApp expr of
+     Just (cid,es) -> 
+         if showCId cid == "MassNP" then let afs = nounAsCN (head es)
+                                           in AppFunc "mkNP" [afs]
+           else if showCId cid == "DetCN" then let quants = quantAsDet (head es)
+                                                   ns     = nounAsCN (head $ tail es)
+                                                  in AppFunc "mkNP" (quants ++ [ns])
+                 else mkAPI False ("NP",expr)
+     _             -> error $ "incorrect expression " ++ (showExpr [] expr)
+    where 
+     nounAsCN expr = 
+      case unApp expr of 
+       Just (cid,es) -> if showCId cid == "UseN" then (mkAPI False) ("N",head es)
+           else (mkAPI False) ("CN",expr)
+       _ -> error $ "incorrect expression "++ (showExpr [] expr)
+
+     quantAsDet expr =
+       case unApp expr of
+        Just (cid,es) -> if showCId cid == "DetQuant" then map (mkAPI False) [("Quant", head es),("Num",head $ tail es)]
+                           else [mkAPI False ("Det",expr)]
+                                  
+        _             -> error $ "incorrect expression "++ (showExpr [] expr)
+        
+
+     
+-- categories not present in the API - rephrasing needed
+hiddenCats :: [String]
+hiddenCats = ["N2","V2","Comp","SC"]
+
+
+
+-- categories for which optimization of the translation is provided at the moment
+optimizable :: [String]
+optimizable = ["NP"]
+
+
+
+-- categories for which the compositional translation needs to be rephrased
+rephraseable :: [String]
+rephraseable = ["S","QS","RS"]
+
+
+
+-- converts the intermediate structure APIFunc to plain string
+printAPIfunc :: APIfunc -> String 
+printAPIfunc (BasicFunc f) = f 
+printAPIfunc NoAPI = ""
+printAPIfunc (AppFunc f es) = unwords (f : map (\x -> printAPIArgfunc x ) es) 
+ where 
+   printAPIArgfunc (BasicFunc f) = f
+   printAPIArgfunc NoAPI = ""
+   printAPIArgfunc f = "(" ++ printAPIfunc f ++ ")" 
+
+
+
+
+
+
diff --git a/src/compiler/GF/Compile/TypeCheck/Abstract.hs b/src/compiler/GF/Compile/TypeCheck/Abstract.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/TypeCheck/Abstract.hs
@@ -0,0 +1,82 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : TypeCheck
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/09/15 16:22:02 $ 
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.16 $
+--
+-- (Description of the module)
+-----------------------------------------------------------------------------
+
+module GF.Compile.TypeCheck.Abstract (-- * top-level type checking functions; TC should not be called directly.
+		  checkContext,
+		  checkTyp,
+		  checkDef,
+		  checkConstrs,
+		 ) where
+
+import GF.Data.Operations
+
+import GF.Infra.CheckM
+import GF.Grammar
+import GF.Grammar.Lookup
+import GF.Grammar.Unify
+import GF.Compile.Refresh
+import GF.Compile.Compute.Abstract
+import GF.Compile.TypeCheck.TC
+
+import Text.PrettyPrint
+import Control.Monad (foldM, liftM, liftM2)
+
+-- | invariant way of creating TCEnv from context
+initTCEnv gamma = 
+  (length gamma,[(x,VGen i x) | ((x,_),i) <- zip gamma [0..]], gamma) 
+
+-- interface to TC type checker
+
+type2val :: Type -> Val
+type2val = VClos []
+
+cont2exp :: Context -> Exp
+cont2exp c = mkProd c eType [] -- to check a context
+
+cont2val :: Context -> Val
+cont2val = type2val . cont2exp
+
+-- some top-level batch-mode checkers for the compiler
+
+justTypeCheck :: SourceGrammar -> Exp -> Val -> Err Constraints
+justTypeCheck gr e v = do
+  (_,constrs0) <- checkExp (grammar2theory gr) (initTCEnv []) e v
+  (constrs1,_) <- unifyVal constrs0
+  return $ filter notJustMeta constrs1
+
+notJustMeta (c,k) = case (c,k) of
+    (VClos g1 (Meta m1), VClos g2 (Meta m2)) -> False
+    _ -> True
+
+grammar2theory :: SourceGrammar -> Theory
+grammar2theory gr (m,f) = case lookupFunType gr m f of
+  Ok t -> return $ type2val t
+  Bad s -> case lookupCatContext gr m f of
+    Ok cont -> return $ cont2val cont
+    _ -> Bad s
+
+checkContext :: SourceGrammar -> Context -> [Message]
+checkContext st = checkTyp st . cont2exp
+
+checkTyp :: SourceGrammar -> Type -> [Message]
+checkTyp gr typ = err (\x -> [text x]) ppConstrs $ justTypeCheck gr typ vType
+
+checkDef :: SourceGrammar -> Fun -> Type -> Equation -> [Message]
+checkDef gr (m,fun) typ eq = err (\x -> [text x]) ppConstrs $ do
+  (b,cs) <- checkBranch (grammar2theory gr) (initTCEnv []) eq (type2val typ)
+  (constrs,_) <- unifyVal cs
+  return $ filter notJustMeta constrs
+
+checkConstrs :: SourceGrammar -> Cat -> [Ident] -> [String]
+checkConstrs gr cat _ = [] ---- check constructors!
diff --git a/src/compiler/GF/Compile/TypeCheck/Concrete.hs b/src/compiler/GF/Compile/TypeCheck/Concrete.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/TypeCheck/Concrete.hs
@@ -0,0 +1,698 @@
+{-# LANGUAGE PatternGuards #-}
+module GF.Compile.TypeCheck.Concrete( checkLType, inferLType, computeLType, ppType ) where
+
+import GF.Infra.CheckM
+import GF.Infra.Modules
+import GF.Data.Operations
+
+import GF.Grammar
+import GF.Grammar.Lookup
+import GF.Grammar.Predef
+import GF.Grammar.PatternMatch
+import GF.Grammar.Lockfield (isLockLabel, lockRecType, unlockRecord)
+import GF.Compile.Compute.AppPredefined
+
+import Data.List
+import Control.Monad
+import Text.PrettyPrint
+
+computeLType :: SourceGrammar -> Context -> Type -> Check Type
+computeLType gr g0 t = comp (reverse [(b,x, Vr x) | (b,x,_) <- g0] ++ g0) t
+ where
+  comp g ty = case ty of
+    _ | Just _ <- isTypeInts ty -> return ty ---- shouldn't be needed
+      | isPredefConstant ty     -> return ty ---- shouldn't be needed
+
+    Q (m,ident) -> checkIn (text "module" <+> ppIdent m) $ do
+      ty' <- checkErr (lookupResDef gr (m,ident)) 
+      if ty' == ty then return ty else comp g ty' --- is this necessary to test?
+
+    Vr ident  -> checkLookup ident g -- never needed to compute!
+
+    App f a -> do
+      f' <- comp g f
+      a' <- comp g a
+      case f' of
+        Abs b x t -> comp ((b,x,a'):g) t
+        _ -> return $ App f' a'
+
+    Prod bt x a b -> do
+      a' <- comp g a
+      b' <- comp ((bt,x,Vr x) : g) b
+      return $ Prod bt x a' b'
+
+    Abs bt x b -> do
+      b' <- comp ((bt,x,Vr x):g) b
+      return $ Abs bt x b'
+
+    Let (x,(_,a)) b -> comp ((Explicit,x,a):g) b
+
+    ExtR r s -> do
+      r' <- comp g r
+      s' <- comp g s
+      case (r',s') of
+        (RecType rs, RecType ss) -> checkErr (plusRecType r' s') >>= comp g
+        _ -> return $ ExtR r' s'
+
+    RecType fs -> do
+      let fs' = sortRec fs
+      liftM RecType $ mapPairsM (comp g) fs'
+
+    ELincat c t -> do
+      t' <- comp g t
+      checkErr $ lockRecType c t' ---- locking to be removed AR 20/6/2009
+
+    _ | ty == typeTok -> return typeStr
+    _ | isPredefConstant ty -> return ty
+
+    _ -> composOp (comp g) ty
+
+-- the underlying algorithms
+
+inferLType :: SourceGrammar -> Context -> Term -> Check (Term, Type)
+inferLType gr g trm = case trm of
+
+   Q (m,ident) | isPredef m -> termWith trm $ case typPredefined ident of
+                                                Just ty -> return ty
+                                                Nothing -> checkError (text "unknown in Predef:" <+> ppIdent ident)
+
+   Q ident -> checks [
+     termWith trm $ checkErr (lookupResType gr ident) >>= computeLType gr g
+     ,
+     checkErr (lookupResDef gr ident) >>= inferLType gr g
+     ,
+     checkError (text "cannot infer type of constant" <+> ppTerm Unqualified 0 trm)
+     ]
+
+   QC (m,ident) | isPredef m -> termWith trm $ case typPredefined ident of
+                                                 Just ty -> return ty
+                                                 Nothing -> checkError (text "unknown in Predef:" <+> ppIdent ident)
+
+   QC ident -> checks [
+       termWith trm $ checkErr (lookupResType gr ident) >>= computeLType gr g
+       ,
+       checkErr (lookupResDef gr ident) >>= inferLType gr g
+       ,
+       checkError (text "cannot infer type of canonical constant" <+> ppTerm Unqualified 0 trm)
+       ]
+
+   Vr ident -> termWith trm $ checkLookup ident g
+
+   Typed e t -> do
+     t' <- computeLType gr g t
+     checkLType gr g e t'
+     return (e,t')
+
+   App f a -> do
+     over <- getOverload gr g Nothing trm
+     case over of
+       Just trty -> return trty
+       _ -> do
+         (f',fty) <- inferLType gr g f
+         fty' <- computeLType gr g fty
+         case fty' of
+           Prod bt z arg val -> do 
+             a' <- justCheck g a arg
+             ty <- if isWildIdent z 
+                      then return val
+                      else substituteLType [(bt,z,a')] val
+             return (App f' a',ty) 
+           _ -> checkError (text "A function type is expected for" <+> ppTerm Unqualified 0 f <+> text "instead of type" <+> ppType fty)
+
+   S f x -> do
+     (f', fty) <- inferLType gr g f
+     case fty of
+       Table arg val -> do
+         x'<- justCheck g x arg
+         return (S f' x', val)
+       _ -> checkError (text "table lintype expected for the table in" $$ nest 2 (ppTerm Unqualified 0 trm))
+
+   P t i -> do
+     (t',ty) <- inferLType gr g t   --- ??
+     ty' <- computeLType gr g ty
+     let tr2 = P t' i
+     termWith tr2 $ case ty' of
+       RecType ts -> case lookup i ts of
+                       Nothing -> checkError (text "unknown label" <+> ppLabel i <+> text "in" $$ nest 2 (ppTerm Unqualified 0 ty'))
+                       Just x  -> return x
+       _          -> checkError (text "record type expected for:" <+> ppTerm Unqualified 0 t $$
+                                 text " instead of the inferred:" <+> ppTerm Unqualified 0 ty')
+
+   R r -> do
+     let (ls,fs) = unzip r
+     fsts <- mapM inferM fs
+     let ts = [ty | (Just ty,_) <- fsts]
+     checkCond (text "cannot infer type of record" $$ nest 2 (ppTerm Unqualified 0 trm)) (length ts == length fsts)
+     return $ (R (zip ls fsts), RecType (zip ls ts))
+
+   T (TTyped arg) pts -> do
+     (_,val) <- checks $ map (inferCase (Just arg)) pts
+     checkLType gr g trm (Table arg val)
+   T (TComp arg) pts -> do
+     (_,val) <- checks $ map (inferCase (Just arg)) pts
+     checkLType gr g trm (Table arg val)
+   T ti pts -> do  -- tries to guess: good in oper type inference
+     let pts' = [pt | pt@(p,_) <- pts, isConstPatt p]
+     case pts' of 
+       [] -> checkError (text "cannot infer table type of" <+> ppTerm Unqualified 0 trm)
+----       PInt k : _ -> return $ Ints $ max [i | PInt i <- pts'] 
+       _  -> do 
+         (arg,val) <- checks $ map (inferCase Nothing) pts'
+         checkLType gr g trm (Table arg val)
+   V arg pts -> do
+     (_,val) <- checks $ map (inferLType gr g) pts
+     return (trm, Table arg val)
+
+   K s  -> do
+     if elem ' ' s
+        then do
+          let ss = foldr C Empty (map K (words s))  
+          ----- removed irritating warning AR 24/5/2008
+          ----- checkWarn ("token \"" ++ s ++ 
+          -----              "\" converted to token list" ++ prt ss)
+          return (ss, typeStr)
+        else return (trm, typeStr)
+
+   EInt i -> return (trm, typeInt)
+
+   EFloat i -> return (trm, typeFloat)
+
+   Empty -> return (trm, typeStr)
+
+   C s1 s2 -> 
+     check2 (flip (justCheck g) typeStr) C s1 s2 typeStr
+
+   Glue s1 s2 -> 
+     check2 (flip (justCheck g) typeStr) Glue s1 s2 typeStr ---- typeTok
+
+---- hack from Rename.identRenameTerm, to live with files with naming conflicts 18/6/2007
+   Strs (Cn c : ts) | c == cConflict -> do
+     checkWarn (text "unresolved constant, could be any of" <+> hcat (map (ppTerm Unqualified 0) ts))
+     inferLType gr g (head ts)
+
+   Strs ts -> do
+     ts' <- mapM (\t -> justCheck g t typeStr) ts 
+     return (Strs ts', typeStrs)
+
+   Alts t aa -> do
+     t'  <- justCheck g t typeStr
+     aa' <- flip mapM aa (\ (c,v) -> do
+        c' <- justCheck g c typeStr 
+        v' <- checks $ map (justCheck g v) [typeStrs, EPattType typeStr]
+        return (c',v'))
+     return (Alts t' aa', typeStr)
+
+   RecType r -> do
+     let (ls,ts) = unzip r
+     ts' <- mapM (flip (justCheck g) typeType) ts 
+     return (RecType (zip ls ts'), typeType)
+
+   ExtR r s -> do
+     (r',rT) <- inferLType gr g r 
+     rT'     <- computeLType gr g rT
+     (s',sT) <- inferLType gr g s
+     sT'     <- computeLType gr g sT
+
+     let trm' = ExtR r' s'
+     ---- trm'    <- checkErr $ plusRecord r' s'
+     case (rT', sT') of
+       (RecType rs, RecType ss) -> do
+         rt <- checkErr $ plusRecType rT' sT'
+         checkLType gr g trm' rt ---- return (trm', rt)
+       _ | rT' == typeType && sT' == typeType -> return (trm', typeType)
+       _ -> checkError (text "records or record types expected in" <+> ppTerm Unqualified 0 trm)
+
+   Sort _     -> 
+     termWith trm $ return typeType
+
+   Prod bt x a b -> do
+     a' <- justCheck g a typeType
+     b' <- justCheck ((bt,x,a'):g) b typeType
+     return (Prod bt x a' b', typeType)
+
+   Table p t  -> do
+     p' <- justCheck g p typeType --- check p partype! 
+     t' <- justCheck g t typeType
+     return $ (Table p' t', typeType)
+
+   FV vs -> do
+     (_,ty) <- checks $ map (inferLType gr g) vs
+---     checkIfComplexVariantType trm ty
+     checkLType gr g trm ty
+
+   EPattType ty -> do
+     ty' <- justCheck g ty typeType
+     return (EPattType ty',typeType)
+   EPatt p -> do
+     ty <- inferPatt p
+     return (trm, EPattType ty)
+
+   ELin c trm -> do
+     (trm',ty) <- inferLType gr g trm
+     ty' <- checkErr $ lockRecType c ty ---- lookup c; remove lock AR 20/6/2009
+     return $ (ELin c trm', ty') 
+
+   _ -> checkError (text "cannot infer lintype of" <+> ppTerm Unqualified 0 trm)
+
+ where
+   isPredef m = elem m [cPredef,cPredefAbs]
+
+   justCheck g ty te = checkLType gr g ty te >>= return . fst
+
+   -- for record fields, which may be typed
+   inferM (mty, t) = do
+     (t', ty') <- case mty of
+       Just ty -> checkLType gr g t ty
+       _ -> inferLType gr g t
+     return (Just ty',t')
+
+   inferCase mty (patt,term) = do
+     arg  <- maybe (inferPatt patt) return mty
+     cont <- pattContext gr g arg patt
+     (_,val) <- inferLType gr (reverse cont ++ g) term
+     return (arg,val)
+   isConstPatt p = case p of
+     PC _ ps -> True --- all isConstPatt ps
+     PP _ ps -> True --- all isConstPatt ps
+     PR ps -> all (isConstPatt . snd) ps
+     PT _ p -> isConstPatt p
+     PString _ -> True
+     PInt _ -> True
+     PFloat _ -> True
+     PChar -> True
+     PChars _ -> True
+     PSeq p q -> isConstPatt p && isConstPatt q
+     PAlt p q -> isConstPatt p && isConstPatt q
+     PRep p -> isConstPatt p
+     PNeg p -> isConstPatt p
+     PAs _ p -> isConstPatt p
+     _ -> False
+
+   inferPatt p = case p of
+     PP (q,c) ps | q /= cPredef -> checkErr $ liftM valTypeCnc (lookupResType gr (q,c))
+     PAs _ p  -> inferPatt p
+     PNeg p   -> inferPatt p
+     PAlt p q -> checks [inferPatt p, inferPatt q]
+     PSeq _ _ -> return $ typeStr
+     PRep _   -> return $ typeStr
+     PChar    -> return $ typeStr
+     PChars _ -> return $ typeStr
+     _ -> inferLType gr g (patt2term p) >>= return . snd
+
+
+-- type inference: Nothing, type checking: Just t
+-- the latter permits matching with value type
+getOverload :: SourceGrammar -> Context -> Maybe Type -> Term -> Check (Maybe (Term,Type))
+getOverload gr g mt ot = case appForm ot of
+     (f@(Q c), ts) -> case lookupOverload gr c of
+       Ok typs -> do
+         ttys <- mapM (inferLType gr g) ts
+         v <- matchOverload f typs ttys
+         return $ Just v
+       _ -> return Nothing
+     _ -> return Nothing
+ where
+   matchOverload f typs ttys = do
+     let (tts,tys) = unzip ttys
+     let vfs = lookupOverloadInstance tys typs
+     let matches = [vf | vf@((v,_),_) <- vfs, matchVal mt v]
+
+     case ([vf | (vf,True) <- matches],[vf | (vf,False) <- matches]) of
+       ([(val,fun)],_) -> return (mkApp fun tts, val)
+       ([],[(val,fun)]) -> do
+         checkWarn (text "ignoring lock fields in resolving" <+> ppTerm Unqualified 0 ot) 
+         return (mkApp fun tts, val)
+       ([],[]) -> do
+         let showTypes ty = hsep (map ppType ty)
+         checkError $ text "no overload instance of" <+> ppTerm Unqualified 0 f $$
+                      text "for" $$
+                      nest 2 (showTypes tys) $$
+                      text "among" $$
+                      nest 2 (vcat [showTypes ty | (ty,_) <- typs]) $$
+                      maybe empty (\x -> text "with value type" <+> ppType x) mt
+
+       (vfs1,vfs2) -> case (noProds vfs1,noProds vfs2) of
+         ([(val,fun)],_) -> do
+           return (mkApp fun tts, val)
+         ([],[(val,fun)]) -> do
+           checkWarn (text "ignoring lock fields in resolving" <+> ppTerm Unqualified 0 ot) 
+           return (mkApp fun tts, val)
+
+----- unsafely exclude irritating warning AR 24/5/2008
+-----           checkWarn $ "overloading of" +++ prt f +++ 
+-----             "resolved by excluding partial applications:" ++++
+-----             unlines [prtType env ty | (ty,_) <- vfs', not (noProd ty)]
+
+
+         _ -> checkError $ text "ambiguous overloading of" <+> ppTerm Unqualified 0 f <+>
+                           text "for" <+> hsep (map ppType tys) $$ 
+                           text "with alternatives" $$
+                           nest 2 (vcat [ppType ty | (ty,_) <- if null vfs1 then vfs2 else vfs2])
+
+   matchVal mt v = elem mt [Nothing,Just v,Just (unlocked v)]
+
+   unlocked v = case v of
+     RecType fs -> RecType $ filter (not . isLockLabel . fst) fs
+     _ -> v
+   ---- TODO: accept subtypes
+   ---- TODO: use a trie
+   lookupOverloadInstance tys typs = 
+     [((mkFunType rest val, t),isExact) | 
+       let lt = length tys,
+       (ty,(val,t)) <- typs, length ty >= lt,
+       let (pre,rest) = splitAt lt ty, 
+       let isExact = pre == tys,
+       isExact || map unlocked pre == map unlocked tys
+     ]
+
+   noProds vfs = [(v,f) | (v,f) <- vfs, noProd v]
+
+   noProd ty = case ty of
+     Prod _ _ _ _ -> False
+     _ -> True
+
+checkLType :: SourceGrammar -> Context -> Term -> Type -> Check (Term, Type)
+checkLType gr g trm typ0 = do
+
+  typ <- computeLType gr g typ0
+
+  case trm of
+
+    Abs bt x c -> do
+      case typ of
+        Prod bt' z a b -> do 
+          (c',b') <- if isWildIdent z
+                       then checkLType gr ((bt,x,a):g) c b
+                       else do b' <- checkIn (text "abs") $ substituteLType [(bt',z,Vr x)] b
+                               checkLType gr ((bt,x,a):g) c b'
+          return $ (Abs bt x c', Prod bt' x a b')
+        _ -> checkError $ text "function type expected instead of" <+> ppType typ
+
+    App f a -> do
+       over <- getOverload gr g (Just typ) trm
+       case over of
+         Just trty -> return trty
+         _ -> do
+          (trm',ty') <- inferLType gr g trm
+          termWith trm' $ checkEqLType gr g typ ty' trm'
+
+    Q _ -> do
+       over <- getOverload gr g (Just typ) trm
+       case over of
+         Just trty -> return trty
+         _ -> do
+          (trm',ty') <- inferLType gr g trm
+          termWith trm' $ checkEqLType gr g typ ty' trm'
+
+    T _ [] ->
+      checkError (text "found empty table in type" <+> ppTerm Unqualified 0 typ)
+    T _ cs -> case typ of 
+      Table arg val -> do 
+        case allParamValues gr arg of
+          Ok vs -> do
+            let ps0 = map fst cs
+            ps <- checkErr $ testOvershadow ps0 vs
+            if null ps 
+              then return () 
+              else checkWarn (text "patterns never reached:" $$
+                              nest 2 (vcat (map (ppPatt Unqualified 0) ps)))
+          _ -> return () -- happens with variable types
+        cs' <- mapM (checkCase arg val) cs
+        return (T (TTyped arg) cs', typ)
+      _ -> checkError $ text "table type expected for table instead of" $$ nest 2 (ppType typ)
+
+    R r -> case typ of --- why needed? because inference may be too difficult
+       RecType rr -> do
+         let (ls,_) = unzip rr        -- labels of expected type
+         fsts <- mapM (checkM r) rr   -- check that they are found in the record
+         return $ (R fsts, typ)       -- normalize record
+
+       _ -> checkError (text "record type expected in type checking instead of" $$ nest 2 (ppTerm Unqualified 0 typ))
+
+    ExtR r s -> case typ of
+       _ | typ == typeType -> do
+         trm' <- computeLType gr g trm
+         case trm' of
+           RecType _ -> termWith trm $ return typeType
+           ExtR (Vr _) (RecType _) -> termWith trm $ return typeType 
+                                      -- ext t = t ** ...
+           _ -> checkError (text "invalid record type extension" <+> nest 2 (ppTerm Unqualified 0 trm))
+
+       RecType rr -> do
+         (r',ty,s') <- checks [
+            do (r',ty) <- inferLType gr g r
+               return (r',ty,s)
+           ,
+            do (s',ty) <- inferLType gr g s
+               return (s',ty,r)
+           ]
+
+         case ty of
+           RecType rr1 -> do
+                let (rr0,rr2) = recParts rr rr1
+                r2 <- justCheck g r' rr0
+                s2 <- justCheck g s' rr2
+                return $ (ExtR r2 s2, typ) 
+           _ -> checkError (text "record type expected in extension of" <+> ppTerm Unqualified 0 r $$
+                            text "but found" <+> ppTerm Unqualified 0 ty)
+
+       ExtR ty ex -> do
+         r' <- justCheck g r ty
+         s' <- justCheck g s ex
+         return $ (ExtR r' s', typ) --- is this all? it assumes the same division in trm and typ
+
+       _ -> checkError (text "record extension not meaningful for" <+> ppTerm Unqualified 0 typ)
+
+    FV vs -> do
+      ttys <- mapM (flip (checkLType gr g) typ) vs
+---      checkIfComplexVariantType trm typ
+      return (FV (map fst ttys), typ) --- typ' ?
+
+    S tab arg -> checks [ do
+      (tab',ty) <- inferLType gr g tab
+      ty'       <- computeLType gr g ty
+      case ty' of
+        Table p t -> do
+          (arg',val) <- checkLType gr g arg p
+          checkEqLType gr g typ t trm
+          return (S tab' arg', t)
+        _ -> checkError (text "table type expected for applied table instead of" <+> ppType ty')
+     , do
+      (arg',ty) <- inferLType gr g arg
+      ty'       <- computeLType gr g ty
+      (tab',_)  <- checkLType gr g tab (Table ty' typ)
+      return (S tab' arg', typ)
+      ]
+    Let (x,(mty,def)) body -> case mty of
+      Just ty -> do
+        (def',ty') <- checkLType gr g def ty
+        body' <- justCheck ((Explicit,x,ty'):g) body typ
+        return (Let (x,(Just ty',def')) body', typ)
+      _ -> do
+        (def',ty) <- inferLType gr g def  -- tries to infer type of local constant
+        checkLType gr g (Let (x,(Just ty,def')) body) typ
+
+    ELin c tr -> do
+      tr1 <- checkErr $ unlockRecord c tr
+      checkLType gr g tr1 typ
+
+    _ -> do
+      (trm',ty') <- inferLType gr g trm
+      termWith trm' $ checkEqLType gr g typ ty' trm'
+ where
+   justCheck g ty te = checkLType gr g ty te >>= return . fst
+
+   recParts rr t = (RecType rr1,RecType rr2) where 
+     (rr1,rr2) = partition (flip elem (map fst t) . fst) rr 
+
+   checkM rms (l,ty) = case lookup l rms of
+     Just (Just ty0,t) -> do
+       checkEqLType gr g ty ty0 t
+       (t',ty') <- checkLType gr g t ty
+       return (l,(Just ty',t'))
+     Just (_,t) -> do
+       (t',ty') <- checkLType gr g t ty
+       return (l,(Just ty',t'))
+     _ -> checkError $ 
+            if isLockLabel l 
+              then let cat = drop 5 (showIdent (label2ident l))
+                   in ppTerm Unqualified 0 (R rms) <+> text "is not in the lincat of" <+> text cat <> 
+                      text "; try wrapping it with lin" <+> text cat
+              else text "cannot find value for label" <+> ppLabel l <+> text "in" <+> ppTerm Unqualified 0 (R rms)
+
+   checkCase arg val (p,t) = do
+     cont <- pattContext gr g arg p
+     t' <- justCheck (reverse cont ++ g) t val
+     return (p,t')
+
+pattContext :: SourceGrammar -> Context -> Type -> Patt -> Check Context
+pattContext env g typ p = case p of
+  PV x -> return [(Explicit,x,typ)]
+  PP (q,c) ps | q /= cPredef -> do ---- why this /=? AR 6/1/2006
+    t <- checkErr $ lookupResType env (q,c)
+    let (cont,v) = typeFormCnc t
+    checkCond (text "wrong number of arguments for constructor in" <+> ppPatt Unqualified 0 p) 
+              (length cont == length ps)
+    checkEqLType env g typ v (patt2term p)
+    mapM (\((_,_,ty),p) -> pattContext env g ty p) (zip cont ps) >>= return . concat
+  PR r -> do
+    typ' <- computeLType env g typ
+    case typ' of
+      RecType t -> do
+        let pts = [(ty,tr) | (l,tr) <- r, Just ty <- [lookup l t]]
+        ----- checkWarn $ prt p ++++ show pts ----- debug
+        mapM (uncurry (pattContext env g)) pts >>= return . concat
+      _ -> checkError (text "record type expected for pattern instead of" <+> ppTerm Unqualified 0 typ')
+  PT t p' -> do
+    checkEqLType env g typ t (patt2term p')
+    pattContext env g typ p'
+
+  PAs x p -> do
+    g' <- pattContext env g typ p
+    return ((Explicit,x,typ):g')
+
+  PAlt p' q -> do
+    g1 <- pattContext env g typ p'
+    g2 <- pattContext env g typ q
+    let pts = nub ([x | pt@(_,x,_) <- g1, notElem pt g2] ++ [x | pt@(_,x,_) <- g2, notElem pt g1])
+    checkCond 
+      (text "incompatible bindings of" <+>
+       fsep (map ppIdent pts) <+> 
+       text "in pattern alterantives" <+> ppPatt Unqualified 0 p) (null pts) 
+    return g1 -- must be g1 == g2
+  PSeq p q -> do
+    g1 <- pattContext env g typ p
+    g2 <- pattContext env g typ q
+    return $ g1 ++ g2
+  PRep p' -> noBind typeStr p'
+  PNeg p' -> noBind typ p'
+
+  _ -> return [] ---- check types!
+ where 
+   noBind typ p' = do
+    co <- pattContext env g typ p'
+    if not (null co)
+      then checkWarn (text "no variable bound inside pattern" <+> ppPatt Unqualified 0 p) 
+           >> return []
+      else return []
+
+checkEqLType :: SourceGrammar -> Context -> Type -> Type -> Term -> Check Type
+checkEqLType gr g t u trm = do
+  (b,t',u',s) <- checkIfEqLType gr g t u trm
+  case b of
+    True  -> return t'
+    False -> checkError $ text s <+> text "type of" <+> ppTerm Unqualified 0 trm $$
+                          text "expected:" <+> ppType t $$
+                          text "inferred:" <+> ppType u
+
+checkIfEqLType :: SourceGrammar -> Context -> Type -> Type -> Term -> Check (Bool,Type,Type,String)
+checkIfEqLType gr g t u trm = do
+  t' <- computeLType gr g t
+  u' <- computeLType gr g u
+  case t' == u' || alpha [] t' u' of
+    True -> return (True,t',u',[])
+    -- forgive missing lock fields by only generating a warning.
+    --- better: use a flag to forgive? (AR 31/1/2006)
+    _ -> case missingLock [] t' u' of
+      Ok lo -> do
+        checkWarn $ text "missing lock field" <+> fsep (map ppLabel lo)
+        return (True,t',u',[])
+      Bad s -> return (False,t',u',s)
+
+  where
+
+   -- t is a subtype of u 
+   --- quick hack version of TC.eqVal
+   alpha g t u = case (t,u) of  
+
+     -- error (the empty type!) is subtype of any other type
+     (_,u) | u == typeError -> True
+
+     -- contravariance
+     (Prod _ x a b, Prod _ y c d) -> alpha g c a && alpha ((x,y):g) b d 
+                              
+     -- record subtyping
+     (RecType rs, RecType ts) -> all (\ (l,a) -> 
+                                   any (\ (k,b) -> alpha g a b && l == k) ts) rs
+     (ExtR r s, ExtR r' s') -> alpha g r r' && alpha g s s'
+     (ExtR r s, t) -> alpha g r t || alpha g s t
+
+     -- the following say that Ints n is a subset of Int and of Ints m >= n
+     (t,u) | Just m <- isTypeInts t, Just n <- isTypeInts t -> m >= n
+           | Just _ <- isTypeInts t, u == typeInt           -> True ---- check size!
+           | t == typeInt,           Just _ <- isTypeInts u -> True ---- why this ???? AR 11/12/2005
+
+     ---- this should be made in Rename
+     (Q  (m,a), Q  (n,b)) | a == b -> elem m (allExtendsPlus gr n) 
+                                   || elem n (allExtendsPlus gr m)
+                                   || m == n --- for Predef
+     (QC (m,a), QC (n,b)) | a == b -> elem m (allExtendsPlus gr n) 
+                                   || elem n (allExtendsPlus gr m)
+     (QC (m,a), Q  (n,b)) | a == b -> elem m (allExtendsPlus gr n) 
+                                   || elem n (allExtendsPlus gr m)
+     (Q  (m,a), QC (n,b)) | a == b -> elem m (allExtendsPlus gr n) 
+                                   || elem n (allExtendsPlus gr m)
+
+     (Table a b,  Table c d)  -> alpha g a c && alpha g b d
+     (Vr x,       Vr y)       -> x == y || elem (x,y) g || elem (y,x) g
+     _                        -> t == u 
+     --- the following should be one-way coercions only. AR 4/1/2001
+                                  || elem t sTypes && elem u sTypes
+                                  || (t == typeType && u == typePType) 
+                                  || (u == typeType && t == typePType) 
+
+   missingLock g t u = case (t,u) of  
+     (RecType rs, RecType ts) -> 
+       let 
+         ls = [l | (l,a) <- rs, 
+                   not (any (\ (k,b) -> alpha g a b && l == k) ts)]
+         (locks,others) = partition isLockLabel ls
+       in case others of
+         _:_ -> Bad $ render (text "missing record fields:" <+> fsep (punctuate comma (map ppLabel others)))
+         _ -> return locks
+     -- contravariance
+     (Prod _ x a b, Prod _ y c d) -> do
+        ls1 <- missingLock g c a
+        ls2 <- missingLock g b d
+        return $ ls1 ++ ls2
+
+     _ -> Bad ""
+
+   sTypes = [typeStr, typeTok, typeString]
+
+-- auxiliaries
+
+-- | light-weight substitution for dep. types
+substituteLType :: Context -> Type -> Check Type
+substituteLType g t = case t of
+  Vr x -> return $ maybe t id $ lookup x [(x,t) | (_,x,t) <- g]
+  _ -> composOp (substituteLType g) t
+
+termWith :: Term -> Check Type -> Check (Term, Type)
+termWith t ct = do
+  ty <- ct
+  return (t,ty)
+
+-- | compositional check\/infer of binary operations
+check2 :: (Term -> Check Term) -> (Term -> Term -> Term) -> 
+          Term -> Term -> Type -> Check (Term,Type)
+check2 chk con a b t = do
+  a' <- chk a
+  b' <- chk b
+  return (con a' b', t)
+
+-- printing a type with a lock field lock_C as C
+ppType :: Type -> Doc
+ppType ty =
+  case ty of
+    RecType fs   -> case filter isLockLabel $ map fst fs of
+                      [lock] -> text (drop 5 (showIdent (label2ident lock)))
+                      _      -> ppTerm Unqualified 0 ty
+    Prod _ x a b -> ppType a <+> text "->" <+> ppType b
+    _            -> ppTerm Unqualified 0 ty
+
+checkLookup :: Ident -> Context -> Check Type
+checkLookup x g =
+  case [ty | (b,y,ty) <- g, x == y] of
+    []     -> checkError (text "unknown variable" <+> ppIdent x)
+    (ty:_) -> return ty
diff --git a/src/compiler/GF/Compile/TypeCheck/TC.hs b/src/compiler/GF/Compile/TypeCheck/TC.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Compile/TypeCheck/TC.hs
@@ -0,0 +1,297 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : TC
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/10/02 20:50:19 $ 
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.11 $
+--
+-- Thierry Coquand's type checking algorithm that creates a trace
+-----------------------------------------------------------------------------
+
+module GF.Compile.TypeCheck.TC (AExp(..),
+	   Theory,
+	   checkExp,
+	   inferExp,
+	   checkBranch,
+	   eqVal,
+	   whnf
+	  ) where
+
+import GF.Data.Operations
+import GF.Grammar
+import GF.Grammar.Predef
+
+import Control.Monad
+import Data.List (sortBy)
+import Data.Maybe
+import Text.PrettyPrint
+
+data AExp =
+     AVr   Ident Val 
+   | ACn   QIdent Val
+   | AType 
+   | AInt  Int 
+   | AFloat Double
+   | AStr  String
+   | AMeta MetaId Val
+   | AApp  AExp AExp Val 
+   | AAbs  Ident Val AExp 
+   | AProd Ident AExp AExp 
+   | AEqs  [([Exp],AExp)] --- not used
+   | ARecType [ALabelling]
+   | AR    [AAssign]
+   | AP    AExp Label Val
+   | AData Val
+  deriving (Eq,Show)
+
+type ALabelling = (Label, AExp) 
+type AAssign = (Label, (Val, AExp))
+
+type Theory = QIdent -> Err Val
+
+lookupConst :: Theory -> QIdent -> Err Val
+lookupConst th f = th f
+
+lookupVar :: Env -> Ident -> Err Val
+lookupVar g x = maybe (Bad (render (text "unknown variable" <+> ppIdent x))) return $ lookup x ((IW,uVal):g)
+-- wild card IW: no error produced, ?0 instead.
+
+type TCEnv = (Int,Env,Env)
+
+emptyTCEnv :: TCEnv
+emptyTCEnv = (0,[],[])
+
+whnf :: Val -> Err Val
+whnf v = ---- errIn ("whnf" +++ prt v) $ ---- debug
+         case v of
+  VApp u w -> do
+    u' <- whnf u 
+    w' <- whnf w
+    app u' w'
+  VClos env e -> eval env e
+  _ -> return v
+
+app :: Val -> Val -> Err Val
+app u v = case u of
+  VClos env (Abs _ x e) -> eval ((x,v):env) e
+  _ -> return $ VApp u v
+  
+eval :: Env -> Exp -> Err Val
+eval env e = ---- errIn ("eval" +++ prt e +++ "in" +++ prEnv env) $ 
+             case e of
+  Vr x    -> lookupVar env x
+  Q c   -> return $ VCn c
+  QC c  -> return $ VCn c ---- == Q ?
+  Sort c  -> return $ VType --- the only sort is Type
+  App f a -> join $ liftM2 app (eval env f) (eval env a)
+  RecType xs -> do xs <- mapM (\(l,e) -> eval env e >>= \e -> return (l,e)) xs
+                   return (VRecType xs)
+  _ -> return $ VClos env e
+
+eqVal :: Int -> Val -> Val -> Err [(Val,Val)]
+eqVal k u1 u2 = ---- errIn (prt u1 +++ "<>" +++ prBracket (show k) +++ prt u2) $ 
+                do
+  w1 <- whnf u1
+  w2 <- whnf u2 
+  let v = VGen k
+  case (w1,w2) of
+    (VApp f1 a1, VApp f2 a2) -> liftM2 (++) (eqVal k f1 f2) (eqVal k a1 a2)
+    (VClos env1 (Abs _ x1 e1), VClos env2 (Abs _ x2 e2)) ->
+      eqVal (k+1) (VClos ((x1,v x1):env1) e1) (VClos ((x2,v x1):env2) e2)
+    (VClos env1 (Prod _ x1 a1 e1), VClos env2 (Prod _ x2 a2 e2)) ->
+      liftM2 (++) 
+        (eqVal k     (VClos            env1  a1) (VClos            env2  a2))
+        (eqVal (k+1) (VClos ((x1,v x1):env1) e1) (VClos ((x2,v x1):env2) e2))
+    (VGen i _, VGen j _) -> return [(w1,w2) | i /= j]
+    (VCn (_, i), VCn (_,j)) -> return [(w1,w2) | i /= j] 
+    --- thus ignore qualifications; valid because inheritance cannot
+    --- be qualified. Simplifies annotation. AR 17/3/2005 
+    _ -> return [(w1,w2) | w1 /= w2]
+-- invariant: constraints are in whnf
+
+checkType :: Theory -> TCEnv -> Exp -> Err (AExp,[(Val,Val)])
+checkType th tenv e = checkExp th tenv e vType
+
+checkExp :: Theory -> TCEnv -> Exp -> Val -> Err (AExp, [(Val,Val)])
+checkExp th tenv@(k,rho,gamma) e ty = do
+  typ <- whnf ty
+  let v = VGen k
+  case e of
+    Meta m -> return $ (AMeta m typ,[])
+
+    Abs _ x t -> case typ of
+      VClos env (Prod _ y a b) -> do
+	a' <- whnf $ VClos env a ---
+	(t',cs) <- checkExp th 
+                           (k+1,(x,v x):rho, (x,a'):gamma) t (VClos ((y,v x):env) b)
+	return (AAbs x a' t', cs)
+      _ -> Bad (render (text "function type expected for" <+> ppTerm Unqualified 0 e <+> text "instead of" <+> ppValue Unqualified 0 typ))
+
+    Prod _ x a b -> do
+      testErr (typ == vType) "expected Type"
+      (a',csa) <- checkType th tenv a
+      (b',csb) <- checkType th (k+1, (x,v x):rho, (x,VClos rho a):gamma) b
+      return (AProd x a' b', csa ++ csb)
+
+    R xs -> 
+      case typ of
+        VRecType ys -> do case [l | (l,_) <- ys, isNothing (lookup l xs)] of
+                            [] -> return ()
+                            ls -> fail (render (text "no value given for label:" <+> fsep (punctuate comma (map ppLabel ls))))
+                          r <- mapM (checkAssign th tenv ys) xs
+                          let (xs,css) = unzip r
+                          return (AR xs, concat css)
+        _           -> Bad (render (text "record type expected for" <+> ppTerm Unqualified 0 e <+> text "instead of" <+> ppValue Unqualified 0 typ))
+
+    P r l -> do (r',cs) <- checkExp th tenv r (VRecType [(l,typ)])
+                return (AP r' l typ,cs)
+
+    _ -> checkInferExp th tenv e typ
+
+checkInferExp :: Theory -> TCEnv -> Exp -> Val -> Err (AExp, [(Val,Val)])
+checkInferExp th tenv@(k,_,_) e typ = do
+  (e',w,cs1) <- inferExp th tenv e
+  cs2 <- eqVal k w typ
+  return (e',cs1 ++ cs2)
+      
+inferExp :: Theory -> TCEnv -> Exp -> Err (AExp, Val, [(Val,Val)])
+inferExp th tenv@(k,rho,gamma) e = case e of
+   Vr x -> mkAnnot (AVr x) $ noConstr $ lookupVar gamma x
+   Q (m,c) | m == cPredefAbs && isPredefCat c
+                     -> return (ACn (m,c) vType, vType, [])
+           | otherwise -> mkAnnot (ACn (m,c)) $ noConstr $ lookupConst th (m,c)
+   QC c -> mkAnnot (ACn c) $ noConstr $ lookupConst th c ----
+   EInt i -> return (AInt i, valAbsInt, [])
+   EFloat i -> return (AFloat i, valAbsFloat, [])
+   K i -> return (AStr i, valAbsString, [])
+   Sort _ -> return (AType, vType, [])
+   RecType xs -> do r <- mapM (checkLabelling th tenv) xs
+                    let (xs,css) = unzip r
+                    return (ARecType xs, vType, concat css)
+   App f t -> do
+    (f',w,csf) <- inferExp th tenv f 
+    typ <- whnf w
+    case typ of
+      VClos env (Prod _ x a b) -> do
+        (a',csa) <- checkExp th tenv t (VClos env a)
+	b' <- whnf $ VClos ((x,VClos rho t):env) b
+	return $ (AApp f' a' b', b', csf ++ csa)
+      _ -> Bad (render (text "Prod expected for function" <+> ppTerm Unqualified 0 f <+> text "instead of" <+> ppValue Unqualified 0 typ))
+   _ -> Bad (render (text "cannot infer type of expression" <+> ppTerm Unqualified 0 e))
+
+checkLabelling :: Theory -> TCEnv -> Labelling -> Err (ALabelling, [(Val,Val)])
+checkLabelling th tenv (lbl,typ) = do
+  (atyp,cs) <- checkType th tenv typ
+  return ((lbl,atyp),cs)
+
+checkAssign :: Theory -> TCEnv -> [(Label,Val)] -> Assign -> Err (AAssign, [(Val,Val)])
+checkAssign th tenv@(k,rho,gamma) typs (lbl,(Just typ,exp)) = do
+  (atyp,cs1) <- checkType th tenv typ
+  val <- eval rho typ
+  cs2 <- case lookup lbl typs of
+           Nothing   -> return []
+           Just val0 -> eqVal k val val0
+  (aexp,cs3) <- checkExp th tenv exp val
+  return ((lbl,(val,aexp)),cs1++cs2++cs3)
+checkAssign th tenv@(k,rho,gamma) typs (lbl,(Nothing,exp)) = do
+  case lookup lbl typs of
+    Nothing  -> do (aexp,val,cs) <- inferExp th tenv exp
+                   return ((lbl,(val,aexp)),cs)
+    Just val -> do (aexp,cs) <- checkExp th tenv exp val
+                   return ((lbl,(val,aexp)),cs)
+
+checkBranch :: Theory -> TCEnv -> Equation -> Val -> Err (([Exp],AExp),[(Val,Val)])
+checkBranch th tenv b@(ps,t) ty = errIn ("branch" +++ show b) $ 
+                                  chB tenv' ps' ty 
+ where 
+
+  (ps',_,rho2,k') = ps2ts k ps
+  tenv' = (k, rho2++rho, gamma) ---- k' ?
+  (k,rho,gamma) = tenv
+
+  chB tenv@(k,rho,gamma) ps ty = case ps of
+    p:ps2 -> do
+      typ <- whnf ty
+      case typ of
+        VClos env (Prod _ y a b) -> do
+	  a' <- whnf $ VClos env a
+          (p', sigma, binds, cs1) <- checkP tenv p y a'
+          let tenv' = (length binds, sigma ++ rho, binds ++ gamma)
+          ((ps',exp),cs2) <- chB tenv' ps2 (VClos ((y,p'):env) b)
+	  return ((p:ps',exp), cs1 ++ cs2) -- don't change the patt
+        _ -> Bad (render (text "Product expected for definiens" <+> ppTerm Unqualified 0 t <+> text "instead of" <+> ppValue Unqualified 0 typ))
+    [] -> do
+      (e,cs) <- checkExp th tenv t ty
+      return (([],e),cs)
+  checkP env@(k,rho,gamma) t x a = do
+     (delta,cs) <- checkPatt th env t a
+     let sigma = [(x, VGen i x) | ((x,_),i) <- zip delta [k..]]
+     return (VClos sigma t, sigma, delta, cs)
+
+  ps2ts k = foldr p2t ([],0,[],k) 
+  p2t p (ps,i,g,k) = case p of
+     PW      -> (Meta i : ps, i+1,g,k) 
+     PV x    -> (Vr x   : ps, i, upd x k g,k+1)
+     PAs x p -> p2t p (ps,i,g,k)
+     PString s -> (K s : ps, i, g, k)
+     PInt n -> (EInt n : ps, i, g, k)
+     PFloat n -> (EFloat n : ps, i, g, k)
+     PP c xs -> (mkApp (Q c) xss : ps, j, g',k') 
+                    where (xss,j,g',k') = foldr p2t ([],i,g,k) xs
+     PImplArg p -> p2t p (ps,i,g,k)
+     PTilde t -> (t : ps, i, g, k)
+     _ -> error $ render (text "undefined p2t case" <+> ppPatt Unqualified 0 p <+> text "in checkBranch")
+
+  upd x k g = (x, VGen k x) : g --- hack to recognize pattern variables
+
+
+checkPatt :: Theory -> TCEnv -> Exp -> Val -> Err (Binds,[(Val,Val)])
+checkPatt th tenv exp val = do
+  (aexp,_,cs) <- checkExpP tenv exp val
+  let binds = extrBinds aexp
+  return (binds,cs)
+ where
+   extrBinds aexp = case aexp of
+     AVr i v    -> [(i,v)]
+     AApp f a _ -> extrBinds f ++ extrBinds a
+     _ -> [] -- no other cases are possible
+
+--- ad hoc, to find types of variables
+   checkExpP tenv@(k,rho,gamma) exp val = case exp of
+     Meta m -> return $ (AMeta m val, val, [])
+     Vr x   -> return $ (AVr   x val, val, [])
+     EInt i -> return (AInt i, valAbsInt, [])
+     EFloat i -> return (AFloat i, valAbsFloat, [])
+     K s    -> return (AStr s, valAbsString, [])
+
+     Q c  -> do
+       typ <- lookupConst th c
+       return $ (ACn c typ, typ, [])
+     QC c  -> do
+       typ <- lookupConst th c
+       return $ (ACn c typ, typ, []) ----
+     App f t -> do
+       (f',w,csf) <- checkExpP tenv f val
+       typ <- whnf w
+       case typ of
+         VClos env (Prod _ x a b) -> do
+           (a',_,csa) <- checkExpP tenv t (VClos env a)
+	   b' <- whnf $ VClos ((x,VClos rho t):env) b
+	   return $ (AApp f' a' b', b', csf ++ csa)
+         _ -> Bad (render (text "Prod expected for function" <+> ppTerm Unqualified 0 f <+> text "instead of" <+> ppValue Unqualified 0 typ))
+     _ -> Bad (render (text "cannot typecheck pattern" <+> ppTerm Unqualified 0 exp))
+
+-- auxiliaries
+
+noConstr :: Err Val -> Err (Val,[(Val,Val)])
+noConstr er = er >>= (\v -> return (v,[]))
+
+mkAnnot :: (Val -> AExp) -> Err (Val,[(Val,Val)]) -> Err (AExp,Val,[(Val,Val)])
+mkAnnot a ti = do
+  (v,cs) <- ti
+  return (a v, v, cs)
+
diff --git a/src/compiler/GF/Compile/Update.hs b/src/compiler/GF/Compile/Update.hs
--- a/src/compiler/GF/Compile/Update.hs
+++ b/src/compiler/GF/Compile/Update.hs
@@ -142,10 +142,10 @@
                          Just j -> case unifyAnyInfo name i j of
 		                     Ok k  -> return $ updateTree (c,k) new
 		                     Bad _ -> do (base,j) <- case j of 
-		                                               AnyInd _ m -> lookupOrigInfo gr m c
+		                                               AnyInd _ m -> lookupOrigInfo gr (m,c)
 		                                               _          -> return (base,j)
 		                                 (name,i) <- case i of 
-                                                               AnyInd _ m -> lookupOrigInfo gr m c
+                                                               AnyInd _ m -> lookupOrigInfo gr (m,c)
                                                                _          -> return (name,i)
 		                                 fail $ render (text "cannot unify the information" $$ 
 		                                                nest 4 (ppJudgement Qualified (c,i)) $$
@@ -161,7 +161,7 @@
       (b,n') = case info of
         ResValue _ -> (True,n)
         ResParam _ _ -> (True,n)
-        AbsFun _ _ Nothing -> (True,n) 
+        AbsFun _ _ Nothing _ -> (True,n) 
         AnyInd b k -> (b,k)
         _ -> (False,n) ---- canonical in Abs
 
@@ -169,8 +169,8 @@
 unifyAnyInfo m i j = case (i,j) of
   (AbsCat mc1, AbsCat mc2) -> 
     liftM AbsCat (unifMaybeL mc1 mc2)
-  (AbsFun mt1 ma1 md1, AbsFun mt2 ma2 md2) -> 
-    liftM3 AbsFun (unifMaybeL mt1 mt2) (unifAbsArrity ma1 ma2) (unifAbsDefs md1 md2) -- adding defs
+  (AbsFun mt1 ma1 md1 moper1, AbsFun mt2 ma2 md2 moper2) -> 
+    liftM4 AbsFun (unifMaybeL mt1 mt2) (unifAbsArrity ma1 ma2) (unifAbsDefs md1 md2) (unifMaybe moper1 moper2) -- adding defs
 
   (ResParam mt1 mv1, ResParam mt2 mv2) ->
     liftM2 ResParam (unifMaybe mt1 mt2) (unifMaybe mv1 mv2)
diff --git a/src/compiler/GF/Data/TrieMap.hs b/src/compiler/GF/Data/TrieMap.hs
--- a/src/compiler/GF/Data/TrieMap.hs
+++ b/src/compiler/GF/Data/TrieMap.hs
@@ -7,18 +7,25 @@
          , lookup
          
          , null
+         , compose
          , decompose
          
          , insertWith
 
-         , unionWith
-         , unionsWith
+         , union,  unionWith
+         , unions, unionsWith
          
          , elems
+         , toList
+         , fromList, fromListWith
+
+         , map
+         , mapWithKey
          ) where
 
-import Prelude hiding (lookup, null)
+import Prelude hiding (lookup, null, map)
 import qualified Data.Map as Map
+import Data.List (foldl')
 
 data TrieMap k v = Tr (Maybe v) (Map.Map k (TrieMap k v))
 
@@ -36,6 +43,9 @@
 null (Tr Nothing m) = Map.null m
 null _              = False
 
+compose :: Maybe v -> Map.Map k (TrieMap k v) -> TrieMap k v
+compose mb_v m = Tr mb_v m
+
 decompose :: TrieMap k v -> (Maybe v, Map.Map k (TrieMap k v))
 decompose (Tr mb_v m) = (mb_v,m)
 
@@ -47,6 +57,9 @@
                                        Nothing -> Tr mb_v (Map.insert k (singleton ks v0) m)
                                        Just tr -> Tr mb_v (Map.insert k (insertWith f ks v0 tr) m)
 
+union :: Ord k => TrieMap k v -> TrieMap k v -> TrieMap k v
+union = unionWith (\a b -> a)
+
 unionWith :: Ord k => (v -> v -> v) -> TrieMap k v -> TrieMap k v -> TrieMap k v
 unionWith f (Tr mb_v1 m1) (Tr mb_v2 m2) =
   let mb_v = case (mb_v1,mb_v2) of
@@ -57,6 +70,9 @@
       m    = Map.unionWith (unionWith f) m1 m2
   in Tr mb_v m
 
+unions :: Ord k => [TrieMap k v] -> TrieMap k v
+unions = foldl union empty
+
 unionsWith :: Ord k => (v -> v -> v) -> [TrieMap k v] -> TrieMap k v
 unionsWith f = foldl (unionWith f) empty
 
@@ -64,3 +80,20 @@
 elems tr = collect tr []
   where
     collect (Tr mb_v m) xs = maybe id (:) mb_v (Map.fold collect xs m)
+
+toList :: TrieMap k v -> [([k],v)]
+toList tr = collect [] tr []
+  where
+    collect ks (Tr mb_v m) xs = maybe id (\v -> (:) (ks,v)) mb_v (Map.foldWithKey (\k -> collect (k:ks)) xs m)
+
+fromListWith :: Ord k => (v -> v -> v) -> [([k],v)] -> TrieMap k v
+fromListWith f xs = foldl' (\trie (ks,v) -> insertWith f ks v trie) empty xs
+
+fromList :: Ord k => [([k],v)] -> TrieMap k v
+fromList xs = fromListWith const xs
+
+map :: (a -> b) -> TrieMap k a -> TrieMap k b
+map f (Tr mb_v m) = Tr (fmap f mb_v) (Map.map (map f) m)
+
+mapWithKey :: ([k] -> a -> b) -> TrieMap k a -> TrieMap k b
+mapWithKey f (Tr mb_v m) = Tr (fmap (f []) mb_v) (Map.mapWithKey (\k -> mapWithKey (f . (k:))) m)
diff --git a/src/compiler/GF/Grammar/Binary.hs b/src/compiler/GF/Grammar/Binary.hs
--- a/src/compiler/GF/Grammar/Binary.hs
+++ b/src/compiler/GF/Grammar/Binary.hs
@@ -88,7 +88,7 @@
 
 instance Binary Info where
   put (AbsCat x)       = putWord8 0 >> put x
-  put (AbsFun x y z)   = putWord8 1 >> put (x,y,z)
+  put (AbsFun w x y z) = putWord8 1 >> put (w,x,y,z)
   put (ResParam x y)   = putWord8 2 >> put (x,y)
   put (ResValue x)     = putWord8 3 >> put x
   put (ResOper x y)    = putWord8 4 >> put (x,y)
@@ -98,15 +98,15 @@
   put (AnyInd x y)     = putWord8 8 >> put (x,y)
   get = do tag <- getWord8
            case tag of
-             0 -> get >>= \x       -> return (AbsCat x)
-             1 -> get >>= \(x,y,z) -> return (AbsFun x y z)
-             2 -> get >>= \(x,y)   -> return (ResParam x y)
-             3 -> get >>= \x       -> return (ResValue x)
-             4 -> get >>= \(x,y)   -> return (ResOper x y)
-             5 -> get >>= \(x,y)   -> return (ResOverload x y)
-             6 -> get >>= \(x,y,z) -> return (CncCat x y z)
-             7 -> get >>= \(x,y,z) -> return (CncFun x y z)
-             8 -> get >>= \(x,y)   -> return (AnyInd x y)
+             0 -> get >>= \x         -> return (AbsCat x)
+             1 -> get >>= \(w,x,y,z) -> return (AbsFun w x y z)
+             2 -> get >>= \(x,y)     -> return (ResParam x y)
+             3 -> get >>= \x         -> return (ResValue x)
+             4 -> get >>= \(x,y)     -> return (ResOper x y)
+             5 -> get >>= \(x,y)     -> return (ResOverload x y)
+             6 -> get >>= \(x,y,z)   -> return (CncCat x y z)
+             7 -> get >>= \(x,y,z)   -> return (CncFun x y z)
+             8 -> get >>= \(x,y)     -> return (AnyInd x y)
              _ -> decodingError
 
 instance Binary a => Binary (L a) where
@@ -146,14 +146,14 @@
   put (V x y)       = putWord8 20 >> put (x,y)
   put (S x y)       = putWord8 21 >> put (x,y)
   put (Let x y)     = putWord8 22 >> put (x,y)
-  put (Q  x y)      = putWord8 23 >> put (x,y)
-  put (QC x y)      = putWord8 24 >> put (x,y)
+  put (Q x)         = putWord8 23 >> put x
+  put (QC x)        = putWord8 24 >> put x
   put (C x y)       = putWord8 25 >> put (x,y)
   put (Glue x y)    = putWord8 26 >> put (x,y)
   put (EPatt x)     = putWord8 27 >> put x
   put (EPattType x) = putWord8 28 >> put x
   put (FV x)        = putWord8 29 >> put x
-  put (Alts x)      = putWord8 30 >> put x
+  put (Alts x y)    = putWord8 30 >> put (x,y)
   put (Strs x)      = putWord8 31 >> put x
   put (ELin x y)    = putWord8 32 >> put (x,y)
 
@@ -182,21 +182,21 @@
              20 -> get >>= \(x,y)   -> return (V x y)
              21 -> get >>= \(x,y)   -> return (S x y)
              22 -> get >>= \(x,y)   -> return (Let x y)
-             23 -> get >>= \(x,y)   -> return (Q  x y)
-             24 -> get >>= \(x,y)   -> return (QC x y)
+             23 -> get >>= \x       -> return (Q  x)
+             24 -> get >>= \x       -> return (QC x)
              25 -> get >>= \(x,y)   -> return (C x y)
              26 -> get >>= \(x,y)   -> return (Glue x y)
              27 -> get >>= \x       -> return (EPatt x)
              28 -> get >>= \x       -> return (EPattType x)
              29 -> get >>= \x       -> return (FV x)
-             30 -> get >>= \x       -> return (Alts x)
+             30 -> get >>= \(x,y)   -> return (Alts x y)
              31 -> get >>= \x       -> return (Strs x)
              32 -> get >>= \(x,y)   -> return (ELin x y)
              _  -> decodingError
 
 instance Binary Patt where
   put (PC x y)     = putWord8  0 >> put (x,y)
-  put (PP x y z)   = putWord8  1 >> put (x,y,z)
+  put (PP x y)     = putWord8  1 >> put (x,y)
   put (PV x)       = putWord8  2 >> put x
   put (PW)         = putWord8  3
   put (PR x)       = putWord8  4 >> put x
@@ -212,12 +212,12 @@
   put (PChar)      = putWord8 15
   put (PChars x)   = putWord8 16 >> put x
   put (PMacro x)   = putWord8 17 >> put x
-  put (PM x y)     = putWord8 18 >> put (x,y)
+  put (PM x)       = putWord8 18 >> put x
   put (PTilde x)   = putWord8 19 >> put x
   get = do tag <- getWord8
            case tag of
              0  -> get >>= \(x,y)   -> return (PC x y)
-             1  -> get >>= \(x,y,z) -> return (PP x y z)
+             1  -> get >>= \(x,y)   -> return (PP x y)
              2  -> get >>= \x       -> return (PV x)
              3  ->                     return (PW)
              4  -> get >>= \x       -> return (PR x)
@@ -233,7 +233,7 @@
              15 ->                     return (PChar)
              16 -> get >>= \x       -> return (PChars x)
              17 -> get >>= \x       -> return (PMacro x)
-             18 -> get >>= \(x,y)   -> return (PM x y)
+             18 -> get >>= \x       -> return (PM x)
              19 -> get >>= \x       -> return (PTilde x)
              _  -> decodingError
 
diff --git a/src/compiler/GF/Grammar/CF.hs b/src/compiler/GF/Grammar/CF.hs
--- a/src/compiler/GF/Grammar/CF.hs
+++ b/src/compiler/GF/Grammar/CF.hs
@@ -12,7 +12,7 @@
 -- parsing CF grammars and converting them to GF
 -----------------------------------------------------------------------------
 
-module GF.Grammar.CF (getCF) where
+module GF.Grammar.CF (getCF,CFItem,CFCat,CFFun,cf2gf,CFRule) where
 
 import GF.Grammar.Grammar
 import GF.Grammar.Macros
@@ -110,7 +110,7 @@
 cf2rule :: CFRule -> ((Ident,Info),(Ident,Info))
 cf2rule (L loc (fun, (cat, items))) = (def,ldef) where
   f     = identS fun
-  def   = (f, AbsFun (Just (L loc (mkProd args' (Cn (identS cat)) []))) Nothing Nothing)
+  def   = (f, AbsFun (Just (L loc (mkProd args' (Cn (identS cat)) []))) Nothing Nothing (Just True))
   args0 = zip (map (identS . ("x" ++) . show) [0..]) items
   args  = [((Explicit,v), Cn (identS c)) | (v, Left c) <- args0]
   args' = [(Explicit,identS "_", Cn (identS c)) | (_, Left c) <- args0]
diff --git a/src/compiler/GF/Grammar/EBNF.hs b/src/compiler/GF/Grammar/EBNF.hs
new file mode 100644
--- /dev/null
+++ b/src/compiler/GF/Grammar/EBNF.hs
@@ -0,0 +1,353 @@
+----------------------------------------------------------------------
+-- |
+-- Module      : EBNF
+-- Maintainer  : AR
+-- Stability   : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/04/21 16:21:13 $ 
+-- > CVS $Author: bringert $
+-- > CVS $Revision: 1.5 $
+--
+-- (Description of the module)
+-----------------------------------------------------------------------------
+
+module GF.Grammar.EBNF (getEBNF) where
+
+import GF.Data.Operations
+--import GF.Infra.Comments
+import GF.Grammar.CF
+--import GF.CF.CFIdent
+import GF.Grammar.Grammar
+--import GF.Grammar.PrGrammar
+--import qualified GF.Source.AbsGF as A
+
+import Data.Char
+import Data.List
+
+
+
+-- AR 18/4/2000 - 31/3/2004
+
+getEBNF :: String -> String -> Err SourceGrammar
+getEBNF name = fmap (cf2gf name . ebnf2cf) . pEBNF
+
+type EBNF = [ERule]
+type ERule = (ECat, ERHS)
+type ECat = (String,[Int])
+type ETok = String
+
+ebnfID = "EBNF" ---- make this parametric!
+
+data ERHS =
+   ETerm ETok
+ | ENonTerm ECat
+ | ESeq  ERHS ERHS
+ | EAlt  ERHS ERHS
+ | EStar ERHS
+ | EPlus ERHS
+ | EOpt  ERHS
+ | EEmpty
+
+type CFRHS = [CFItem]
+type CFJustRule = (CFCat, CFRHS)
+
+ebnf2cf :: EBNF -> [CFRule]
+ebnf2cf ebnf = 
+  [L (0,0) (mkCFF i rule,rule) | (i,rule) <- zip [0..] (normEBNF ebnf)] where
+    mkCFF i (c, _) = ("Mk" ++ c ++ "_" ++ show i)
+
+normEBNF :: EBNF -> [CFJustRule]
+normEBNF erules = let
+  erules1 = [normERule ([i],r) | (i,r) <- zip [0..] erules]
+  erules2 = erules1 ---refreshECats erules1 --- this seems to be just bad !
+  erules3 = concat (map pickERules erules2)
+  erules4 = nubERules erules3
+ in [(mkCFCatE cat, map eitem2cfitem its) | (cat,itss) <- erules3, its <- itss]
+
+refreshECats :: [NormERule] -> [NormERule]
+refreshECats rules = [recas [i] rule | (i,rule) <- zip [0..] rules] where
+ recas ii (cat,its) = (updECat ii cat, [recss ii 0 s | s <- its])
+ recss ii n [] = []
+ recss ii n (s:ss) = recit (ii ++ [n]) s : recss ii (n+1) ss
+ recit ii it = case it of
+   EINonTerm cat  -> EINonTerm (updECat ii cat)
+   EIStar (cat,t) -> EIStar (updECat ii cat, [recss ii 0 s | s <- t])
+   EIPlus (cat,t) -> EIPlus (updECat ii cat, [recss ii 0 s | s <- t])
+   EIOpt  (cat,t) -> EIOpt  (updECat ii cat, [recss ii 0 s | s <- t])
+   _ -> it
+  
+pickERules :: NormERule -> [NormERule]
+pickERules rule@(cat,alts) = rule : concat (map pics (concat alts)) where
+ pics it = case it of
+   EIStar ru@(cat,t) -> mkEStarRules cat ++ pickERules ru
+   EIPlus ru@(cat,t) -> mkEPlusRules cat ++ pickERules ru
+   EIOpt  ru@(cat,t) -> mkEOptRules cat ++ pickERules ru
+   _ -> []
+ mkEStarRules cat = [(cat', [[],[EINonTerm cat, EINonTerm cat']])] 
+                                        where cat' = mkNewECat cat "Star"
+ mkEPlusRules cat = [(cat', [[EINonTerm cat],[EINonTerm cat, EINonTerm cat']])] 
+                                        where cat' = mkNewECat cat "Plus"
+ mkEOptRules cat  = [(cat', [[],[EINonTerm cat]])] 
+                                        where cat' = mkNewECat cat "Opt"
+
+nubERules :: [NormERule] -> [NormERule]
+nubERules rules = nub optim where 
+  optim = map (substERules (map mkSubst replaces)) irreducibles
+  (replaces,irreducibles) = partition reducible rules
+  reducible (cat,[items]) = isNewCat cat && all isOldIt items
+  reducible _ = False
+  isNewCat (_,ints) = ints == []
+  isOldIt (EITerm _) = True
+  isOldIt (EINonTerm cat) = not (isNewCat cat)
+  isOldIt _ = False
+  mkSubst (cat,its) = (cat, head its) -- def of reducible: its must be singleton
+--- the optimization assumes each cat has at most one EBNF rule.
+
+substERules :: [(ECat,[EItem])] -> NormERule -> NormERule
+substERules g (cat,itss) = (cat, map sub itss) where
+  sub [] = []
+  sub (i@(EINonTerm cat') : ii) = case lookup cat g of
+                                    Just its -> its ++ sub ii 
+                                    _ -> i : sub ii
+  sub (EIStar r : ii) = EIStar (substERules g r) : ii
+  sub (EIPlus r : ii) = EIPlus (substERules g r) : ii
+  sub (EIOpt r : ii)  = EIOpt  (substERules g r) : ii
+
+eitem2cfitem :: EItem -> CFItem 
+eitem2cfitem it = case it of
+  EITerm a       -> Right a
+  EINonTerm cat  -> Left (mkCFCatE cat)
+  EIStar (cat,_) -> Left (mkCFCatE (mkNewECat cat "Star"))
+  EIPlus (cat,_) -> Left (mkCFCatE (mkNewECat cat "Plus"))
+  EIOpt  (cat,_) -> Left (mkCFCatE (mkNewECat cat "Opt"))
+
+type NormERule = (ECat,[[EItem]]) -- disjunction of sequences of items
+
+data EItem =
+   EITerm String
+ | EINonTerm ECat
+ | EIStar NormERule
+ | EIPlus NormERule
+ | EIOpt  NormERule
+  deriving Eq
+
+normERule :: ([Int],ERule) -> NormERule
+normERule (ii,(cat,rhs)) = 
+ (cat,[map (mkEItem (ii ++ [i])) r' | (i,r') <- zip [0..] (disjNorm rhs)]) where
+  disjNorm r = case r of
+    ESeq r1 r2 -> [x ++ y | x <- disjNorm r1, y <- disjNorm r2]
+    EAlt r1 r2 -> disjNorm r1 ++ disjNorm r2
+    EEmpty -> [[]]
+    _ -> [[r]]
+
+mkEItem :: [Int] -> ERHS -> EItem
+mkEItem ii rhs = case rhs of
+  ETerm a -> EITerm a
+  ENonTerm cat -> EINonTerm cat
+  EStar r -> EIStar (normERule (ii,(mkECat ii, r)))
+  EPlus r -> EIPlus (normERule (ii,(mkECat ii, r)))
+  EOpt  r -> EIOpt  (normERule (ii,(mkECat ii, r)))
+  _ -> EINonTerm ("?????",[])
+--  _ -> error "should not happen in ebnf" ---
+
+mkECat ints = ("C", ints)
+
+prECat (c,[]) = c
+prECat (c,ints) = c ++ "_" ++ prTList "_" (map show ints)
+
+mkCFCatE :: ECat -> CFCat
+mkCFCatE = prECat
+
+updECat _ (c,[]) = (c,[])
+updECat ii (c,_) = (c,ii)
+
+mkNewECat (c,ii) str = (c ++ str,ii)
+
+------ parser for EBNF grammars
+
+pEBNF :: String -> Err EBNF
+pEBNF = parseResultErr (longestOfMany (pJ pERule))
+
+pERule :: Parser Char ERule
+pERule = pECat ... pJ (literals ":=" ||| literals "::=") +.. pERHS 0 ..+ jL ";"
+
+pERHS :: Int -> Parser Char ERHS
+pERHS 0 = pTList "|" (pERHS 1) *** foldr1 EAlt
+pERHS 1 = longestOfMany (pJ (pERHS 2)) *** foldr ESeq EEmpty
+pERHS 2 = pERHS 3 ... pJ pUnaryEOp *** (\ (a,f) -> f a)
+pERHS 3 = pQuotedString *** ETerm
+          ||| pECat *** ENonTerm ||| pParenth (pERHS 0)
+
+pUnaryEOp :: Parser Char (ERHS -> ERHS)
+pUnaryEOp = 
+ lits "*" <<< EStar ||| lits "+" <<< EPlus ||| lits "?" <<< EOpt ||| succeed id
+
+pECat = pIdent *** (\c -> (c,[]))
+
+
+
+----------------------------------------------------------------------
+-- Module      : Parsers
+-- some parser combinators a la Wadler and Hutton.
+-- (only used in module "EBNF")
+-----------------------------------------------------------------------------
+
+infixr 2 |||, +||
+infixr 3 ***
+infixr 5 .>.
+infixr 5 ...
+infixr 5 ....
+infixr 5 +..
+infixr 5 ..+
+infixr 6 |>
+infixr 3 <<<
+
+
+type Parser a b = [a] -> [(b,[a])]
+
+parseResults :: Parser a b -> [a] -> [b]
+parseResults p s = [x | (x,r) <- p s, null r]
+
+parseResultErr :: Show a => Parser a b -> [a] -> Err b
+parseResultErr p s = case parseResults p s of
+  [x] -> return x
+  []  -> case 
+       maximumBy (\x y -> compare (length y) (length x)) (s:[r | (_,r) <- p s]) of
+    r -> Bad $ "\nno parse; reached" ++++ take 300 (show r)
+  _   -> Bad "ambiguous"
+
+(...) :: Parser a b -> Parser a c -> Parser a (b,c)
+(p ... q) s = [((x,y),r) | (x,t) <- p s, (y,r) <- q t]
+
+(.>.) :: Parser a b -> (b -> Parser a c) -> Parser a c
+(p .>. f) s = [(c,r) | (x,t) <- p s, (c,r) <- f x t]
+
+(|||) :: Parser a b -> Parser a b -> Parser a b
+(p ||| q) s = p s ++ q s
+
+(+||) :: Parser a b -> Parser a b -> Parser a b
+p1 +|| p2 = take 1 . (p1 ||| p2)
+
+literal :: (Eq a) => a -> Parser a a
+literal x (c:cs) = [(x,cs) | x == c]
+literal _ _ = []
+
+(***) :: Parser a b -> (b -> c) -> Parser a c
+(p *** f) s = [(f x,r) | (x,r) <- p s] 
+
+succeed :: b -> Parser a b
+succeed v s = [(v,s)]
+
+fails :: Parser a b
+fails s = []
+
+(+..) :: Parser a b -> Parser a c -> Parser a c
+p1 +.. p2 = p1 ... p2 *** snd
+
+(..+) :: Parser a b -> Parser a c -> Parser a b
+p1 ..+ p2 = p1 ... p2 *** fst
+
+(<<<) :: Parser a b -> c -> Parser a c  -- return
+p <<< v = p *** (\x -> v)
+
+(|>) :: Parser a b -> (b -> Bool) -> Parser a b
+p |> b = p .>. (\x -> if b x then succeed x else fails)
+
+many :: Parser a b -> Parser a [b]
+many p = (p ... many p *** uncurry (:)) +|| succeed []
+
+some :: Parser a b -> Parser a [b]
+some p = (p ... many p) *** uncurry (:)
+
+longestOfMany :: Parser a b -> Parser a [b]
+longestOfMany p = p .>. (\x -> longestOfMany p *** (x:)) +|| succeed []
+
+closure :: (b -> Parser a b) -> (b -> Parser a b)
+closure p v = p v .>. closure p ||| succeed v
+
+pJunk   :: Parser Char String
+pJunk = longestOfMany (satisfy (\x -> elem x "\n\t "))
+
+pJ :: Parser Char a -> Parser Char a
+pJ p = pJunk +.. p ..+ pJunk
+
+pTList  :: String -> Parser Char a -> Parser Char [a]
+pTList t p = p .... many (jL t +.. p) *** (\ (x,y) -> x:y) -- mod. AR 5/1/1999
+
+pTJList  :: String -> String -> Parser Char a -> Parser Char [a]
+pTJList t1 t2 p = p .... many (literals t1 +.. jL t2 +.. p) *** (uncurry (:))
+
+pElem   :: [String] -> Parser Char String
+pElem l = foldr (+||) fails (map literals l)
+
+(....) :: Parser Char b -> Parser Char c -> Parser Char (b,c)
+p1 .... p2 = p1 ... pJunk +.. p2
+
+item :: Parser a a
+item (c:cs) = [(c,cs)]
+item [] = []
+
+satisfy :: (a -> Bool) -> Parser a a
+satisfy b = item |> b
+
+literals :: (Eq a,Show a) => [a] -> Parser a [a]
+literals l = case l of 
+  []  -> succeed [] 
+  a:l -> literal a ... literals l *** (\ (x,y) -> x:y)
+
+lits :: (Eq a,Show a) => [a] -> Parser a [a]
+lits ts = literals ts
+
+jL :: String -> Parser Char String
+jL = pJ . lits
+
+pParenth :: Parser Char a -> Parser Char a
+pParenth p = literal '(' +.. pJunk +.. p ..+ pJunk ..+ literal ')'
+
+-- | p,...,p
+pCommaList :: Parser Char a -> Parser Char [a]
+pCommaList p = pTList "," (pJ p)                      
+
+-- | the same or nothing
+pOptCommaList :: Parser Char a -> Parser Char [a]
+pOptCommaList p = pCommaList p ||| succeed []            
+
+-- | (p,...,p), poss. empty
+pArgList :: Parser Char a -> Parser Char [a]
+pArgList p = pParenth (pCommaList p) ||| succeed [] 
+
+-- | min. 2 args
+pArgList2 :: Parser Char a -> Parser Char [a]
+pArgList2 p = pParenth (p ... jL "," +.. pCommaList p) *** uncurry (:) 
+
+longestOfSome :: Parser a b -> Parser a [b]
+longestOfSome p = (p ... longestOfMany p) *** (\ (x,y) -> x:y)
+
+pIdent :: Parser Char String
+pIdent = pLetter ... longestOfMany pAlphaPlusChar *** uncurry (:)
+  where alphaPlusChar c = isAlphaNum c || c=='_' || c=='\''
+
+pLetter, pDigit :: Parser Char Char
+pLetter = satisfy (`elem` (['A'..'Z'] ++ ['a'..'z'] ++ 
+                           ['\192' .. '\255'])) -- no such in Char
+pDigit  = satisfy isDigit
+
+pLetters :: Parser Char String
+pLetters = longestOfSome pLetter
+
+pAlphanum, pAlphaPlusChar :: Parser Char Char
+pAlphanum      = pDigit ||| pLetter
+pAlphaPlusChar = pAlphanum ||| satisfy (`elem` "_'")
+
+pQuotedString :: Parser Char String
+pQuotedString = literal '"' +.. pEndQuoted where
+ pEndQuoted =
+       literal '"' *** (const [])
+   +|| (literal '\\' +.. item .>. \ c -> pEndQuoted *** (c:))
+   +|| item .>. \ c -> pEndQuoted *** (c:)
+
+pIntc :: Parser Char Int
+pIntc = some (satisfy numb) *** read
+         where numb x = elem x ['0'..'9']
+
diff --git a/src/compiler/GF/Grammar/Grammar.hs b/src/compiler/GF/Grammar/Grammar.hs
--- a/src/compiler/GF/Grammar/Grammar.hs
+++ b/src/compiler/GF/Grammar/Grammar.hs
@@ -76,8 +76,8 @@
 -- and indirection to module (/INDIR/)
 data Info =
 -- judgements in abstract syntax
-   AbsCat   (Maybe (L Context))                                -- ^ (/ABS/) context of a category
- | AbsFun   (Maybe (L Type)) (Maybe Int) (Maybe [L Equation])  -- ^ (/ABS/) type, arrity and definition of a function
+   AbsCat   (Maybe (L Context))                                            -- ^ (/ABS/) context of a category
+ | AbsFun   (Maybe (L Type)) (Maybe Int) (Maybe [L Equation]) (Maybe Bool) -- ^ (/ABS/) type, arrity and definition of a function
 
 -- judgements in resource
  | ResParam (Maybe [L Param]) (Maybe [Term])     -- ^ (/RES/) the second parameter is list of all possible values
@@ -119,7 +119,7 @@
  | Cn Ident                      -- ^ constant
  | Con Ident                     -- ^ constructor
  | Sort Ident                    -- ^ basic type
- | EInt Integer                  -- ^ integer literal
+ | EInt Int                      -- ^ integer literal
  | EFloat Double                 -- ^ floating point literal
  | K String                      -- ^ string literal or token: @\"foo\"@
  | Empty                         -- ^ the empty string @[]@
@@ -145,8 +145,8 @@
 
  | Let LocalDef Term             -- ^ local definition: @let {t : T = a} in b@
 
- | Q  Ident Ident                -- ^ qualified constant from a package
- | QC Ident Ident                -- ^ qualified constructor from a package
+ | Q  QIdent                     -- ^ qualified constant from a package
+ | QC QIdent                     -- ^ qualified constructor from a package
 
  | C Term Term                   -- ^ concatenation: @s ++ t@
  | Glue Term Term                -- ^ agglutination: @s + t@
@@ -159,19 +159,19 @@
 
  | FV [Term]                     -- ^ alternatives in free variation: @variants { s ; ... }@
 
- | Alts (Term, [(Term, Term)])   -- ^ alternatives by prefix: @pre {t ; s\/c ; ...}@
+ | Alts Term [(Term, Term)]      -- ^ alternatives by prefix: @pre {t ; s\/c ; ...}@
  | Strs [Term]                   -- ^ conditioning prefix strings: @strs {s ; ...}@
 
   deriving (Show, Eq, Ord)
 
 data Patt =
    PC Ident [Patt]        -- ^ constructor pattern: @C p1 ... pn@    @C@ 
- | PP Ident Ident [Patt]  -- ^ package constructor pattern: @P.C p1 ... pn@    @P.C@ 
+ | PP QIdent [Patt]       -- ^ package constructor pattern: @P.C p1 ... pn@    @P.C@ 
  | PV Ident               -- ^ variable pattern: @x@
  | PW                     -- ^ wild card pattern: @_@
  | PR [(Label,Patt)]      -- ^ record pattern: @{r = p ; ...}@  -- only concrete
  | PString String         -- ^ string literal pattern: @\"foo\"@  -- only abstract
- | PInt    Integer        -- ^ integer literal pattern: @12@    -- only abstract
+ | PInt    Int            -- ^ integer literal pattern: @12@    -- only abstract
  | PFloat Double          -- ^ float literal pattern: @1.2@    -- only abstract
  | PT Type Patt           -- ^ type-annotated pattern
 
@@ -188,7 +188,7 @@
  | PChar                  -- ^ string of length one: ?
  | PChars [Char]          -- ^ character list: ["aeiou"]
  | PMacro Ident           -- #p
- | PM Ident Ident         -- #m.p
+ | PM QIdent              -- #m.p
 
   deriving (Show, Eq, Ord)
 
diff --git a/src/compiler/GF/Grammar/Lexer.x b/src/compiler/GF/Grammar/Lexer.x
--- a/src/compiler/GF/Grammar/Lexer.x
+++ b/src/compiler/GF/Grammar/Lexer.x
@@ -112,7 +112,7 @@
  | T_where
  | T_with
  | T_String  String          -- string literals
- | T_Integer Integer         -- integer literals
+ | T_Integer Int             -- integer literals
  | T_Double  Double          -- double precision float literals
  | T_LString String
  | T_Ident   Ident
diff --git a/src/compiler/GF/Grammar/Lookup.hs b/src/compiler/GF/Grammar/Lookup.hs
--- a/src/compiler/GF/Grammar/Lookup.hs
+++ b/src/compiler/GF/Grammar/Lookup.hs
@@ -21,14 +21,14 @@
            lookupOrigInfo,
            allOrigInfos,
            lookupResDef,
-	       lookupResType, 
+           lookupResType, 
            lookupOverload,
-	       lookupParamValues, 
-	       allParamValues,
-	       lookupAbsDef, 
-	       lookupLincat, 
-	       lookupFunType,
-	       lookupCatContext
+           lookupParamValues, 
+           allParamValues,
+           lookupAbsDef, 
+           lookupLincat, 
+           lookupFunType,
+           lookupCatContext
 	      ) where
 
 import GF.Data.Operations
@@ -58,8 +58,8 @@
 lookupIdentInfo :: ModInfo a -> Ident -> Err a
 lookupIdentInfo mo i = lookupIdent i (jments mo)
 
-lookupResDef :: SourceGrammar -> Ident -> Ident -> Err Term
-lookupResDef gr m c
+lookupResDef :: SourceGrammar -> QIdent -> Err Term
+lookupResDef gr (m,c)
   | isPredefCat c = lock c defLinType 
   | otherwise     = look m c
   where 
@@ -68,7 +68,7 @@
       info <- lookupIdentInfo mo c
       case info of
         ResOper _ (Just (L _ t)) -> return t
-        ResOper _ Nothing  -> return (Q m c)
+        ResOper _ Nothing  -> return (Q (m,c))
         CncCat (Just (L _ ty)) _ _ -> lock c ty
         CncCat _ _ _         -> lock c defLinType
       
@@ -76,12 +76,12 @@
         CncFun _                (Just (L _ tr)) _ -> return tr
 
         AnyInd _ n        -> look n c
-        ResParam _ _      -> return (QC m c)
-        ResValue _        -> return (QC m c)
+        ResParam _ _      -> return (QC (m,c))
+        ResValue _        -> return (QC (m,c))
         _   -> Bad $ render (ppIdent c <+> text "is not defined in resource" <+> ppIdent m)
 
-lookupResType :: SourceGrammar -> Ident -> Ident -> Err Type
-lookupResType gr m c = do
+lookupResType :: SourceGrammar -> QIdent -> Err Type
+lookupResType gr (m,c) = do
   mo <- lookupModule gr m
   info <- lookupIdentInfo mo c
   case info of
@@ -92,58 +92,61 @@
     CncFun (Just (cat,cont,val)) _ _ -> do
           val' <- lock cat val 
           return $ mkProd cont val' []
-    AnyInd _ n        -> lookupResType gr n c
+    AnyInd _ n        -> lookupResType gr (n,c)
     ResParam _ _      -> return typePType
     ResValue (L _ t)  -> return t
     _   -> Bad $ render (ppIdent c <+> text "has no type defined in resource" <+> ppIdent m)
 
-lookupOverload :: SourceGrammar -> Ident -> Ident -> Err [([Type],(Type,Term))]
-lookupOverload gr m c = do
+lookupOverload :: SourceGrammar -> QIdent -> Err [([Type],(Type,Term))]
+lookupOverload gr (m,c) = do
     mo <- lookupModule gr m
     info <- lookupIdentInfo mo c
     case info of
       ResOverload os tysts -> do
-            tss <- mapM (\x -> lookupOverload gr x c) os
+            tss <- mapM (\x -> lookupOverload gr (x,c)) os
             return $ [let (args,val) = typeFormCnc ty in (map (\(b,x,t) -> t) args,(val,tr)) | 
                       (L _ ty,L _ tr) <- tysts] ++ 
                      concat tss
 
-      AnyInd _ n  -> lookupOverload gr n c
+      AnyInd _ n  -> lookupOverload gr (n,c)
       _   -> Bad $ render (ppIdent c <+> text "is not an overloaded operation")
 
 -- | returns the original 'Info' and the module where it was found
-lookupOrigInfo :: SourceGrammar -> Ident -> Ident -> Err (Ident,Info)
-lookupOrigInfo gr m c = do
+lookupOrigInfo :: SourceGrammar -> QIdent -> Err (Ident,Info)
+lookupOrigInfo gr (m,c) = do
   mo <- lookupModule gr m
   info <- lookupIdentInfo mo c
   case info of
-    AnyInd _ n  -> lookupOrigInfo gr n c
+    AnyInd _ n  -> lookupOrigInfo gr (n,c)
     i           -> return (m,i)
 
 allOrigInfos :: SourceGrammar -> Ident -> [(Ident,Info)]
 allOrigInfos gr m = errVal [] $ do
   mo <- lookupModule gr m
-  return [(c,i) | (c,_) <- tree2list (jments mo), Ok (_,i) <- [look c]]
-  where
-    look = lookupOrigInfo gr m
+  return [(c,i) | (c,_) <- tree2list (jments mo), Ok (_,i) <- [lookupOrigInfo gr (m,c)]]
 
-lookupParamValues :: SourceGrammar -> Ident -> Ident -> Err [Term]
-lookupParamValues gr m c = do
-  (_,info) <- lookupOrigInfo gr m c
+lookupParamValues :: SourceGrammar -> QIdent -> Err [Term]
+lookupParamValues gr c = do
+  (_,info) <- lookupOrigInfo gr c
   case info of
     ResParam _ (Just pvs) -> return pvs
-    _                     -> Bad $ render (ppIdent c <+> text "has no parameter values defined in resource" <+> ppIdent m)
+    _                     -> Bad $ render (ppQIdent Qualified c <+> text "has no parameter values defined")
 
 allParamValues :: SourceGrammar -> Type -> Err [Term]
-allParamValues cnc ptyp = case ptyp of
-     _ | Just n <- isTypeInts ptyp -> return [EInt i | i <- [0..n]]
-     QC p c -> lookupParamValues cnc p c
-     Q  p c -> lookupResDef cnc p c >>= allParamValues cnc
-     RecType r -> do
+allParamValues cnc ptyp =
+  case ptyp of
+    _ | Just n <- isTypeInts ptyp -> return [EInt i | i <- [0..n]]
+    QC c -> lookupParamValues cnc c
+    Q  c -> lookupResDef cnc c >>= allParamValues cnc
+    RecType r -> do
        let (ls,tys) = unzip $ sortByFst r
        tss <- mapM (allParamValues cnc) tys
        return [R (zipAssign ls ts) | ts <- combinations tss]
-     _ -> Bad (render (text "cannot find parameter values for" <+> ppTerm Unqualified 0 ptyp))
+    Table pt vt -> do
+       pvs <- allParamValues cnc pt
+       vvs <- allParamValues cnc vt
+       return [V pt ts | ts <- combinations (replicate (length pvs) vvs)]
+    _ -> Bad (render (text "cannot find parameter values for" <+> ppTerm Unqualified 0 ptyp))
   where
     -- to normalize records and record types
     sortByFst = sortBy (\ x y -> compare (fst x) (fst y))
@@ -153,9 +156,9 @@
   mo <- lookupModule gr m
   info <- lookupIdentInfo mo c
   case info of
-    AbsFun _ a d -> return (a,fmap (map unLoc) d)
-    AnyInd _ n   -> lookupAbsDef gr n c
-    _            -> return (Nothing,Nothing)
+    AbsFun _ a d _ -> return (a,fmap (map unLoc) d)
+    AnyInd _ n     -> lookupAbsDef gr n c
+    _              -> return (Nothing,Nothing)
 
 lookupLincat :: SourceGrammar -> Ident -> Ident -> Err Type
 lookupLincat gr m c | isPredefCat c = return defLinType --- ad hoc; not needed?
@@ -173,9 +176,9 @@
   mo <- lookupModule gr m
   info <- lookupIdentInfo mo c
   case info of
-    AbsFun (Just (L _ t)) _ _ -> return t
-    AnyInd _ n                -> lookupFunType gr n c
-    _                         -> Bad (render (text "cannot find type of" <+> ppIdent c))
+    AbsFun (Just (L _ t)) _ _ _ -> return t
+    AnyInd _ n                  -> lookupFunType gr n c
+    _                           -> Bad (render (text "cannot find type of" <+> ppIdent c))
 
 -- | this is needed at compile time
 lookupCatContext :: SourceGrammar -> Ident -> Ident -> Err Context
diff --git a/src/compiler/GF/Grammar/MMacros.hs b/src/compiler/GF/Grammar/MMacros.hs
--- a/src/compiler/GF/Grammar/MMacros.hs
+++ b/src/compiler/GF/Grammar/MMacros.hs
@@ -134,7 +134,7 @@
   _ -> Bad "the active node is not meta"
 -}
 cat2val :: Context -> Cat -> Val
-cat2val cont cat = vClos $ mkApp (uncurry Q cat) [Meta i | i <- [1..length cont]]
+cat2val cont cat = vClos $ mkApp (Q cat) [Meta i | i <- [1..length cont]]
 
 val2cat :: Val -> Err Cat
 val2cat v = liftM valCat (val2exp v)
@@ -183,7 +183,7 @@
                               else substVal g e
   VClos g e -> substVal g e
   VApp f c  -> liftM2 App (val2expP safe f) (val2expP safe c)
-  VCn c     -> return $ uncurry Q c
+  VCn c     -> return $ Q c
   VGen i x  -> if safe 
                then Bad (render (text "unsafe val2exp" <+> ppValue Unqualified 0 v))
                else return $ Vr $ x  --- in editing, no alpha conversions presentv
@@ -234,9 +234,9 @@
   qualif xs t = case t of
     Abs b x t -> let x' = chV x in Abs b x' $ qualif (x':xs) t
     Prod b x a t -> Prod b x (qualif xs a) $ qualif (x:xs) t
-    Vr x -> let x' = chV x in if (elem x' xs) then (Vr x') else (Q m x) 
-    Cn c  -> Q m c
-    Con c -> QC m c
+    Vr x -> let x' = chV x in if (elem x' xs) then (Vr x') else (Q (m,x))
+    Cn c  -> Q (m,c)
+    Con c -> QC (m,c)
     _ -> composSafeOp (qualif xs) t
   chV x = string2var $ ident2bs x
     
diff --git a/src/compiler/GF/Grammar/Macros.hs b/src/compiler/GF/Grammar/Macros.hs
--- a/src/compiler/GF/Grammar/Macros.hs
+++ b/src/compiler/GF/Grammar/Macros.hs
@@ -41,8 +41,8 @@
     App c a ->
       let (_,  cat, args) = typeForm c
       in ([],cat,args ++ [a])
-    Q  m c -> ([],(m,c),[])
-    QC m c -> ([],(m,c),[])
+    Q  c -> ([],c,[])
+    QC c -> ([],c,[])
     Sort c -> ([],(identW, c),[])
     _      -> error (render (text "no normal form of type" <+> ppTerm Unqualified 0 t))
 
@@ -61,7 +61,7 @@
 valType :: Type -> Type
 valType typ =
   let (_,cat,xx) = typeForm typ --- not optimal to do in this way
-  in mkApp (uncurry Q cat) xx
+  in mkApp (Q cat) xx
 
 valTypeCnc :: Type -> Type
 valTypeCnc typ = snd (typeFormCnc typ)
@@ -166,6 +166,12 @@
 mkAssign :: [(Label,Term)] -> [Assign]
 mkAssign lts = [assign l t | (l,t) <- lts]
 
+projectRec :: Label -> [Assign] -> Term
+projectRec l rs =
+  case lookup l rs of
+    Just (_,t) -> t
+    Nothing    -> error (render (text "no value for label" <+> ppLabel l))
+
 zipAssign :: [Label] -> [Term] -> [Assign]
 zipAssign ls ts = [assign l t | (l,t) <- zip ls ts]
 
@@ -199,7 +205,7 @@
 typeStrs  = Sort cStrs
 
 typeString, typeFloat, typeInt :: Term
-typeInts :: Integer -> Term
+typeInts :: Int -> Term
 typePBool :: Term
 typeError :: Term
 
@@ -210,17 +216,17 @@
 typePBool = cnPredef cPBool
 typeError = cnPredef cErrorType
 
-isTypeInts :: Term -> Maybe Integer
+isTypeInts :: Term -> Maybe Int
 isTypeInts (App c (EInt i)) | c == cnPredef cInts = Just i
 isTypeInts _                                      = Nothing
 
 isPredefConstant :: Term -> Bool
 isPredefConstant t = case t of
-  Q mod _ | mod == cPredef || mod == cPredefAbs -> True
-  _                                             -> False
+  Q (mod,_) | mod == cPredef || mod == cPredefAbs -> True
+  _                                               -> False
 
 cnPredef :: Ident -> Term
-cnPredef f = Q cPredef f
+cnPredef f = Q (cPredef,f)
 
 mkSelects :: Term -> [Term] -> Term
 mkSelects t tt = foldl S t tt
@@ -299,7 +305,7 @@
 string2term :: String -> Term
 string2term = K
 
-int2term :: Integer -> Term
+int2term :: Int -> Term
 int2term = EInt
 
 float2term :: Double -> Term
@@ -333,12 +339,12 @@
   Ok ([], Con c, aa) -> do
     aa' <- mapM term2patt aa
     return (PC c aa')
-  Ok ([], QC p c, aa) -> do
+  Ok ([], QC  c, aa) -> do
     aa' <- mapM term2patt aa
-    return (PP p c aa')
+    return (PP c aa')
 
-  Ok ([], Q p c, []) -> do
-    return (PM p c)
+  Ok ([], Q c, []) -> do
+    return (PM c)
 
   Ok ([], R r, []) -> do
     let (ll,aa) = unzipR r
@@ -381,10 +387,10 @@
   PV x      -> Vr x
   PW        -> Vr identW             --- not parsable, should not occur
   PMacro c  -> Cn c
-  PM p c    -> Q p c
+  PM c      -> Q c
 
   PC c pp   -> mkApp (Con c) (map patt2term pp)
-  PP p c pp -> mkApp (QC p c) (map patt2term pp)
+  PP c pp   -> mkApp (QC  c) (map patt2term pp)
 
   PR r      -> R [assign l (patt2term p) | (l,p) <- r] 
   PT _ p    -> patt2term p
@@ -403,8 +409,8 @@
 
 redirectTerm :: Ident -> Term -> Term
 redirectTerm n t = case t of
-  QC _ f -> QC n f
-  Q _ f  -> Q  n f
+  QC (_,f) -> QC (n,f)
+  Q  (_,f) -> Q  (n,f)
   _ -> composSafeOp (redirectTerm n) t
 
 -- | to gather ultimate cases in a table; preserves pattern list
@@ -426,7 +432,7 @@
     s' <- strsFromTerm s
     t' <- strsFromTerm t
     return [glueStr x y | x <- s', y <- t']
-  Alts (d,vs) -> do
+  Alts d vs -> do
     d0 <- strsFromTerm d
     v0 <- mapM (strsFromTerm . fst) vs
     c0 <- mapM (strsFromTerm . snd) vs
@@ -516,10 +522,10 @@
      do v1 <- co s1
         v2 <- co s2
         return (Glue v1 v2)
-   Alts (t,aa) ->
+   Alts t aa ->
      do t' <- co t
         aa' <- mapM (pairM co) aa
-        return (Alts (t',aa'))
+        return (Alts t' aa')
    FV ts -> mapM co ts >>= return . FV
    Strs tt -> mapM co tt >>= return . Strs
 
@@ -534,6 +540,10 @@
    ELin c ty -> 
      do ty' <- co ty
         return (ELin c ty')
+        
+   ImplArg t -> 
+     do t' <- co t
+        return (ImplArg t')
 
    _ -> return trm -- covers K, Vr, Cn, Sort, EPatt
 
@@ -567,7 +577,7 @@
   Let (x,(mt,a)) b -> maybe [] co mt ++ co a ++ co b
   C s1 s2      -> co s1 ++ co s2 
   Glue s1 s2   -> co s1 ++ co s2 
-  Alts (t,aa)  -> let (x,y) = unzip aa in co t ++ concatMap co (x ++ y)
+  Alts t aa    -> let (x,y) = unzip aa in co t ++ concatMap co (x ++ y)
   FV ts        -> concatMap co ts
   Strs tt      -> concatMap co tt
   _            -> [] -- covers K, Vr, Cn, Sort
@@ -577,7 +587,7 @@
 wordsInTerm trm = filter (not . null) $ case trm of
    K s     -> [s]
    S c _   -> wo c
-   Alts (t,aa) -> wo t ++ concatMap (wo . fst) aa
+   Alts t aa -> wo t ++ concatMap (wo . fst) aa
    _       -> collectOp wo trm
  where wo = wordsInTerm
 
@@ -604,8 +614,8 @@
   [(f, nub (concatMap opty (pts i))) | (f,i) <- tree2list b]
   where
     opersIn t = case t of
-      Q n c | ism n -> [c]
-      QC n c | ism n -> [c]
+      Q  (n,c) | ism n -> [c]
+      QC (n,c) | ism n -> [c]
       _ -> collectOp opersIn t
     opty (Just (L _ ty)) = opersIn ty
     opty _ = []
@@ -614,7 +624,7 @@
       ResParam (Just ps) _ -> [Just (L loc t) | L loc (_,cont) <- ps, (_,_,t) <- cont]
       CncCat pty _ _ -> [pty]
       CncFun _   pt _ -> [pt]  ---- (Maybe (Ident,(Context,Type))
-      AbsFun pty _ ptr -> [pty] --- ptr is def, which can be mutual
+      AbsFun pty _ ptr _ -> [pty] --- ptr is def, which can be mutual
       AbsCat (Just (L loc co)) -> [Just (L loc ty) | (_,_,ty) <- co]
       _              -> []
 
diff --git a/src/compiler/GF/Grammar/Parser.y b/src/compiler/GF/Grammar/Parser.y
--- a/src/compiler/GF/Grammar/Parser.y
+++ b/src/compiler/GF/Grammar/Parser.y
@@ -112,7 +112,7 @@
                                           (mtype,id) = $2
                                           (extends,with,content) = $4
                                           (opens,jments,opts) = case content of { Just c -> c; Nothing -> ([],[],noOptions) }
-                                      mapM_ (checkInfoType mtype) jments
+                                      jments <- mapM (checkInfoType mtype) jments
                                       defs <- case buildAnyTree id jments of
                                                 Ok x    -> return x
                                                 Bad msg -> fail msg
@@ -233,19 +233,19 @@
 
 FunDef :: { [(Ident,Info)] }
 FunDef
-  : Posn ListIdent ':' Exp Posn { [(fun, AbsFun (Just (mkL $1 $5 $4)) Nothing (Just [])) | fun <- $2] } 
+  : Posn ListIdent ':' Exp Posn { [(fun, AbsFun (Just (mkL $1 $5 $4)) Nothing (Just []) (Just True)) | fun <- $2] } 
 
 DefDef :: { [(Ident,Info)] }
 DefDef
-  : Posn ListName '=' Exp         Posn { [(f, AbsFun Nothing (Just 0)           (Just [mkL $1 $5 ([],$4)])) | f <- $2] }
-  | Posn Name ListPatt '=' Exp    Posn { [($2,AbsFun Nothing (Just (length $3)) (Just [mkL $1 $6 ($3,$5)]))] }
+  : Posn ListName '=' Exp         Posn { [(f, AbsFun Nothing (Just 0)           (Just [mkL $1 $5 ([],$4)]) Nothing) | f <- $2] }
+  | Posn Name ListPatt '=' Exp    Posn { [($2,AbsFun Nothing (Just (length $3)) (Just [mkL $1 $6 ($3,$5)]) Nothing)] }
 
 DataDef :: { [(Ident,Info)] }
 DataDef
   : Posn Ident '=' ListDataConstr Posn { ($2,   AbsCat Nothing) :
-                                         [(fun, AbsFun Nothing   Nothing Nothing) | fun <- $4] }
+                                         [(fun, AbsFun Nothing Nothing Nothing  (Just True)) | fun <- $4] }
   | Posn ListIdent ':' Exp Posn        { -- (snd (valCat $4), AbsCat Nothing) :
-                                         [(fun, AbsFun (Just (mkL $1 $5 $4)) Nothing Nothing) | fun <- $2] }                                         
+                                         [(fun, AbsFun (Just (mkL $1 $5 $4)) Nothing Nothing (Just True)) | fun <- $2] }                                         
 
 ParamDef :: { [(Ident,Info)] }
 ParamDef
@@ -417,8 +417,8 @@
                                        in S (T annot $5) $2         }
   | 'variants' '{' ListExp '}'       { FV $3         }
   | 'pre' '{' ListCase '}'           {% mkAlts $3     }
-  | 'pre' '{' String ';' ListAltern '}' { Alts (K $3, $5) }
-  | 'pre' '{' Ident ';' ListAltern '}' { Alts (Vr $3, $5) }
+  | 'pre' '{' String ';' ListAltern '}' { Alts (K $3) $5 }
+  | 'pre' '{' Ident ';' ListAltern '}' { Alts (Vr $3) $5 }
   | 'strs' '{' ListExp '}'           { Strs $3       }
   | '#' Patt3                        { EPatt $2      }
   | 'pattern' Exp5                   { EPattType $2  }
@@ -468,7 +468,7 @@
 Patt1 :: { Patt }
 Patt1
   : Ident ListPatt            { PC $1 $2 } 
-  | Ident '.' Ident ListPatt  { PP $1 $3 $4 }
+  | Ident '.' Ident ListPatt  { PP ($1,$3) $4 }
   | Patt3 '*'                 { PRep $1 }
   | Patt2                     { $1 }
 
@@ -484,10 +484,10 @@
   : '?'                       { PChar } 
   | '[' String ']'            { PChars $2 }
   | '#' Ident                 { PMacro $2 }
-  | '#' Ident '.' Ident       { PM $2 $4 }
+  | '#' Ident '.' Ident       { PM ($2,$4) }
   | '_'                       { PW }
   | Ident                     { PV $1 }
-  | Ident '.' Ident           { PP $1 $3 [] }
+  | Ident '.' Ident           { PP ($1,$3) [] }
   | Integer                   { PInt $1 }
   | Double                    { PFloat  $1 }
   | String                    { PString $1 }
@@ -620,8 +620,8 @@
     consId = mkConsId id
 
     catd     = (listId, AbsCat (Just (L loc cont')))
-    nilfund  = (baseId, AbsFun (Just (L loc niltyp))  Nothing Nothing)
-    consfund = (consId, AbsFun (Just (L loc constyp)) Nothing Nothing)
+    nilfund  = (baseId, AbsFun (Just (L loc niltyp))  Nothing Nothing (Just True))
+    consfund = (consId, AbsFun (Just (L loc constyp)) Nothing Nothing (Just True))
 
     cont' = [(b,mkId x i,ty) | (i,(b,x,ty)) <- zip [0..] cont]
     xs = map (\(b,x,t) -> Vr x) cont'
@@ -671,41 +671,44 @@
     Vr keyw | showIdent keyw == "overload" -> True      -- overload is a "soft keyword"
     _                                      -> False
 
-checkInfoType mt (id,info) =
+checkInfoType mt jment@(id,info) =
   case info of
-    AbsCat pcont      -> ifAbstract mt (locPerh pcont)
-    AbsFun pty _ pde  -> ifAbstract mt (locPerh pty ++ maybe [] locAll pde)
-    CncCat pty pd ppn -> ifConcrete mt (locPerh pty ++ locPerh pd ++ locPerh ppn)
-    CncFun _   pd ppn -> ifConcrete mt (locPerh pd ++ locPerh ppn)
-    ResParam pparam _ -> ifResource mt (maybe [] locAll pparam)
-    ResValue ty       -> ifResource mt (locL ty)
-    ResOper  pty pt   -> ifResource mt (locPerh pty ++ locPerh pt)
-    ResOverload _ xs  -> ifResource mt (concat [[loc1,loc2] | (L loc1 _,L loc2 _) <- xs])
+    AbsCat pcont       -> ifAbstract mt (locPerh pcont)
+    AbsFun pty _ pde _ -> ifAbstract mt (locPerh pty ++ maybe [] locAll pde)
+    CncCat pty pd ppn  -> ifConcrete mt (locPerh pty ++ locPerh pd ++ locPerh ppn)
+    CncFun _   pd ppn  -> ifConcrete mt (locPerh pd ++ locPerh ppn)
+    ResParam pparam _  -> ifResource mt (maybe [] locAll pparam)
+    ResValue ty        -> ifResource mt (locL ty)
+    ResOper  pty pt    -> ifOper mt pty pt
+    ResOverload _ xs   -> ifResource mt (concat [[loc1,loc2] | (L loc1 _,L loc2 _) <- xs])
   where
     locPerh = maybe [] locL
     locAll xs = [loc | L loc x <- xs]
     locL (L loc x) = [loc]
     
     illegal ((s,e):_) = failLoc (Pn s 0) "illegal definition"
-    illegal _         = return ()
+    illegal _         = return jment
 
-    ifAbstract MTAbstract     locs = return ()
+    ifAbstract MTAbstract     locs = return jment
     ifAbstract _              locs = illegal locs
 
-    ifConcrete (MTConcrete _) locs = return ()
+    ifConcrete (MTConcrete _) locs = return jment
     ifConcrete _              locs = illegal locs
 
-    ifResource (MTConcrete _) locs = return ()
-    ifResource (MTInstance _) locs = return ()
-    ifResource MTInterface    locs = return ()
-    ifResource MTResource     locs = return ()
+    ifResource (MTConcrete _) locs = return jment
+    ifResource (MTInstance _) locs = return jment
+    ifResource MTInterface    locs = return jment
+    ifResource MTResource     locs = return jment
     ifResource _              locs = illegal locs
+    
+    ifOper MTAbstract pty pt = return (id,AbsFun pty (fmap (const 0) pt) (Just (maybe [] (\(L l t) -> [L l ([],t)]) pt)) (Just False))
+    ifOper _          pty pt = return jment
 
 mkAlts cs = case cs of
   _:_ -> do
     def  <- mkDef (last cs)
     alts <- mapM mkAlt (init cs)
-    return (Alts (def,alts))
+    return (Alts def alts)
   _ -> fail "empty alts"
  where
    mkDef (_,t) = return t
@@ -720,7 +723,7 @@
      PString s -> return $ Strs [K s]
      PV x -> return (Vr x) --- for macros; not yet complete
      PMacro x -> return (Vr x) --- for macros; not yet complete
-     PM m c -> return (Q m c) --- for macros; not yet complete
+     PM c -> return (Q c) --- for macros; not yet complete
      _ -> fail "no strs from pattern"
 
 mkL :: Posn -> Posn -> x -> L x
diff --git a/src/compiler/GF/Grammar/PatternMatch.hs b/src/compiler/GF/Grammar/PatternMatch.hs
--- a/src/compiler/GF/Grammar/PatternMatch.hs
+++ b/src/compiler/GF/Grammar/PatternMatch.hs
@@ -87,13 +87,13 @@
          do matches <- mapM tryMatch (zip pp tt)
             return (concat matches)
 
-      (PP q p pp, ([], QC r f, tt)) | 
+      (PP (q,p) pp, ([], QC (r,f), tt)) | 
             -- q `eqStrIdent` r &&  --- not for inherited AR 10/10/2005
             p `eqStrIdent` f && length pp == length tt ->
          do matches <- mapM tryMatch (zip pp tt)
             return (concat matches)
       ---- hack for AppPredef bug
-      (PP q p pp, ([], Q r f, tt)) | 
+      (PP (q,p) pp, ([], Q (r,f), tt)) | 
             -- q `eqStrIdent` r && --- 
             p `eqStrIdent` f && length pp == length tt ->
          do matches <- mapM tryMatch (zip pp tt)
@@ -136,8 +136,8 @@
 isInConstantForm trm = case trm of
     Cn _     -> True
     Con _    -> True
-    Q _ _    -> True
-    QC _ _   -> True
+    Q _      -> True
+    QC _     -> True
     Abs _ _ _ -> True
     C c a    -> isInConstantForm c && isInConstantForm a
     App c a  -> isInConstantForm c && isInConstantForm a
@@ -151,7 +151,7 @@
 varsOfPatt p = case p of
   PV x -> [x]
   PC _ ps -> concat $ map varsOfPatt ps
-  PP _ _ ps -> concat $ map varsOfPatt ps
+  PP _ ps -> concat $ map varsOfPatt ps
   PR r    -> concat $ map (varsOfPatt . snd) r
   PT _ q -> varsOfPatt q
   _ -> []
diff --git a/src/compiler/GF/Grammar/Predef.hs b/src/compiler/GF/Grammar/Predef.hs
--- a/src/compiler/GF/Grammar/Predef.hs
+++ b/src/compiler/GF/Grammar/Predef.hs
@@ -19,6 +19,7 @@
           , cInt
           , cFloat
           , cString
+          , cVar
           , cInts
           , cPBool
           , cErrorType
@@ -72,6 +73,9 @@
 
 cString :: Ident
 cString = identC (BS.pack "String")
+
+cVar :: Ident
+cVar = identC (BS.pack "__gfVar")
 
 cInts :: Ident
 cInts = identC (BS.pack "Ints")
diff --git a/src/compiler/GF/Grammar/Printer.hs b/src/compiler/GF/Grammar/Printer.hs
--- a/src/compiler/GF/Grammar/Printer.hs
+++ b/src/compiler/GF/Grammar/Printer.hs
@@ -17,6 +17,7 @@
            , ppValue
            , ppConstrs
            , ppPosition
+           , ppQIdent
            ) where
 
 import GF.Infra.Ident
@@ -77,9 +78,13 @@
   (case pcont of
      Just (L _ cont) -> hsep (map (ppDecl q) cont)
      Nothing         -> empty) <+> semi
-ppJudgement q (id, AbsFun ptype _ pexp) =
+ppJudgement q (id, AbsFun ptype _ pexp poper) =
+  let kind | isNothing pexp      = "data"
+           | poper == Just False = "oper"
+           | otherwise           = "fun"
+  in
   (case ptype of
-     Just (L _ typ) -> text (if isNothing pexp then "data" else "fun") <+> ppIdent id <+> colon <+> ppTerm q 0 typ <+> semi
+     Just (L _ typ) -> text kind <+> ppIdent id <+> colon <+> ppTerm q 0 typ <+> semi
      Nothing        -> empty) $$
   (case pexp of
      Just []  -> empty
@@ -157,22 +162,20 @@
 			   _          -> prec d 3 (ppTerm q 3 x <+> text "!" <+> ppTerm q 4 y)
 ppTerm q d (ExtR x y)  = prec d 3 (ppTerm q 3 x <+> text "**" <+> ppTerm q 4 y)
 ppTerm q d (App x y)   = prec d 4 (ppTerm q 4 x <+> ppTerm q 5 y)
-ppTerm q d (V e es)    = text "table" <+> ppTerm q 6 e <+> lbrace $$
-                         nest 2 (fsep (punctuate semi (map (ppTerm q 0) es))) $$
-                         rbrace
+ppTerm q d (V e es)    = text "table" <+> ppTerm q 6 e <+> brackets (fsep (punctuate semi (map (ppTerm q 0) es)))
 ppTerm q d (FV es)     = text "variants" <+> braces (fsep (punctuate semi (map (ppTerm q 0) es)))
-ppTerm q d (Alts (e,xs))=text "pre" <+> braces (ppTerm q 0 e <> semi <+> fsep (punctuate semi (map (ppAltern q) xs)))
+ppTerm q d (Alts e xs) = text "pre" <+> braces (ppTerm q 0 e <> semi <+> fsep (punctuate semi (map (ppAltern q) xs)))
 ppTerm q d (Strs es)   = text "strs" <+> braces (fsep (punctuate semi (map (ppTerm q 0) es)))
 ppTerm q d (EPatt p)   = prec d 4 (char '#' <+> ppPatt q 2 p)
 ppTerm q d (EPattType t)=prec d 4 (text "pattern" <+> ppTerm q 0 t)
 ppTerm q d (P t l)     = prec d 5 (ppTerm q 5 t <> char '.' <> ppLabel l)
 ppTerm q d (Cn id)     = ppIdent id
 ppTerm q d (Vr id)     = ppIdent id
-ppTerm q d (Q  m id)   = ppQIdent q m id
-ppTerm q d (QC m id)   = ppQIdent q m id
+ppTerm q d (Q  id)     = ppQIdent q id
+ppTerm q d (QC id)     = ppQIdent q id
 ppTerm q d (Sort id)   = ppIdent id
 ppTerm q d (K s)       = str s
-ppTerm q d (EInt n)    = integer n
+ppTerm q d (EInt n)    = int n
 ppTerm q d (EFloat f)  = double f
 ppTerm q d (Meta _)    = char '?'
 ppTerm q d (Empty)     = text "[]"
@@ -183,6 +186,8 @@
 ppTerm q d (RecType xs)= braces (fsep (punctuate semi [ppLabel l <+> colon <+> ppTerm q 0 t | (l,t) <- xs]))
 ppTerm q d (Typed e t) = char '<' <> ppTerm q 0 e <+> colon <+> ppTerm q 0 t <> char '>'
 ppTerm q d (ImplArg e) = braces (ppTerm q 0 e)
+ppTerm q d (ELincat cat t) = prec d 4 (text "lincat" <+> ppIdent cat <+> ppTerm q 5 t)
+ppTerm q d (ELin cat t) = prec d 4 (text "lin" <+> ppIdent cat <+> ppTerm q 5 t)
 
 ppEquation q (ps,e) = hcat (map (ppPatt q 2) ps) <+> text "->" <+> ppTerm q 0 e
 
@@ -193,19 +198,19 @@
 ppPatt q d (PC f ps)    = if null ps
                             then ppIdent f
                             else prec d 1 (ppIdent f <+> hsep (map (ppPatt q 3) ps))
-ppPatt q d (PP f g ps)  = if null ps
-                            then ppQIdent q f g
-                            else prec d 1 (ppQIdent q f g <+> hsep (map (ppPatt q 3) ps))
+ppPatt q d (PP f ps)    = if null ps
+                            then ppQIdent q f
+                            else prec d 1 (ppQIdent q f <+> hsep (map (ppPatt q 3) ps))
 ppPatt q d (PRep p)     = prec d 1 (ppPatt q 3 p <> char '*')
 ppPatt q d (PAs f p)    = prec d 2 (ppIdent f <> char '@' <> ppPatt q 3 p)
 ppPatt q d (PNeg p)     = prec d 2 (char '-' <> ppPatt q 3 p)
 ppPatt q d (PChar)      = char '?'
 ppPatt q d (PChars s)   = brackets (str s)
 ppPatt q d (PMacro id)  = char '#' <> ppIdent id
-ppPatt q d (PM m id)    = char '#' <> ppIdent m <> char '.' <> ppIdent id
+ppPatt q d (PM id)      = char '#' <> ppQIdent q id
 ppPatt q d PW           = char '_'
 ppPatt q d (PV id)      = ppIdent id
-ppPatt q d (PInt n)     = integer n
+ppPatt q d (PInt n)     = int n
 ppPatt q d (PFloat f)   = double f
 ppPatt q d (PString s)  = str s
 ppPatt q d (PR xs)      = braces (hsep (punctuate semi [ppLabel l <+> equals <+> ppPatt q 0 e | (l,e) <- xs]))
@@ -238,7 +243,7 @@
   | id == identW = ppTerm q 6 typ
   | otherwise    = parens (ppIdent id <+> colon <+> ppTerm q 0 typ)
 
-ppQIdent q m id =
+ppQIdent q (m,id) =
   case q of
     Qualified   -> ppIdent m <> char '.' <> ppIdent id
     Unqualified ->                          ppIdent id
diff --git a/src/compiler/GF/Grammar/ShowTerm.hs b/src/compiler/GF/Grammar/ShowTerm.hs
--- a/src/compiler/GF/Grammar/ShowTerm.hs
+++ b/src/compiler/GF/Grammar/ShowTerm.hs
@@ -9,11 +9,13 @@
 import Data.List  (intersperse)
 
 showTerm :: SourceGrammar -> TermPrintStyle -> TermPrintQual -> Term -> String
-showTerm gr style q t = render $
-  case style of
-    TermPrintTable   -> vcat [p <+> s | (p,s) <- ppTermTabular gr q t]
-    TermPrintAll     -> vcat [      s | (p,s) <- ppTermTabular gr q t]
-    TermPrintDefault -> ppTerm q 0 t
+showTerm gr sty q t = case sty of
+    TermPrintTable -> render $ vcat [p <+> s | (p,s) <- ppTermTabular gr q t]
+    TermPrintAll   -> render $ vcat [      s | (p,s) <- ppTermTabular gr q t]
+    TermPrintList  -> renderStyle (style{mode = OneLineMode}) $ 
+      vcat (punctuate comma [s | (p,s) <- ppTermTabular gr q t])
+    TermPrintOne   -> render $ vcat [      s | (p,s) <- take 1 (ppTermTabular gr q t)]
+    TermPrintDefault -> render $ ppTerm q 0 t
 
 ppTermTabular :: SourceGrammar -> TermPrintQual -> Term -> [(Doc,Doc)]
 ppTermTabular gr q = pr where
@@ -37,4 +39,6 @@
 data TermPrintStyle
   = TermPrintTable
   | TermPrintAll
+  | TermPrintList
+  | TermPrintOne
   | TermPrintDefault
diff --git a/src/compiler/GF/Grammar/Unify.hs b/src/compiler/GF/Grammar/Unify.hs
--- a/src/compiler/GF/Grammar/Unify.hs
+++ b/src/compiler/GF/Grammar/Unify.hs
@@ -57,8 +57,8 @@
      let sg = maybe e1 id (lookup s g)
      if (sg == Meta s) then extend g s tg else unify sg tg g 
   (t, Meta s) -> unify e2 e1 g
-  (Q _ a, Q _ b) | (a == b)      -> return g ---- qualif?
-  (QC _ a, QC _ b) | (a == b)    -> return g ----
+  (Q (_,a), Q (_,b)) | (a == b)  -> return g ---- qualif?
+  (QC (_,a), QC (_,b)) | (a == b)-> return g ----
   (Vr x, Vr y) | (x == y)        -> return g 
   (Abs _ x b, Abs _ y c)         -> do let c' = substTerm [x] [(y,Vr x)] c 
                                        unify b c' g
diff --git a/src/compiler/GF/Infra/Option.hs b/src/compiler/GF/Infra/Option.hs
--- a/src/compiler/GF/Infra/Option.hs
+++ b/src/compiler/GF/Infra/Option.hs
@@ -3,9 +3,11 @@
      -- * Option types
      Options, 
      Flags(..), 
-     Mode(..), Phase(..), Verbosity(..), OutputFormat(..), 
+     Mode(..), Phase(..), Verbosity(..), 
+     OutputFormat(..), 
      SISRFormat(..), Optimization(..), CFGTransform(..), HaskellOption(..),
      Dump(..), Printer(..), Recomp(..),
+     outputFormatsExpl, 
      -- * Option parsing 
      parseOptions, parseModuleOptions, fixRelativeLibPaths,
      -- * Option pretty-printing
@@ -17,7 +19,7 @@
      helpMessage,
      -- * Checking specific options
      flag, cfgTransform, haskellOption, readOutputFormat,
-     isLexicalCat, renameEncoding,
+     isLexicalCat, isLiteralCat, renameEncoding,
      -- * Setting specific options
      setOptimization, setCFGTransform,
      -- * Convenience methods for checking options    
@@ -28,7 +30,9 @@
 import Data.Char (toLower, isDigit)
 import Data.List
 import Data.Maybe
+import GF.Infra.Ident
 import GF.Infra.GetOpt
+import GF.Grammar.Predef
 --import System.Console.GetOpt
 import System.FilePath
 import System.IO
@@ -37,7 +41,7 @@
 
 import Data.Set (Set)
 import qualified Data.Set as Set
-
+import qualified Data.ByteString.Char8 as BS
 
 
 
@@ -146,13 +150,14 @@
       optSISR            :: Maybe SISRFormat,
       optHaskellOptions  :: Set HaskellOption,
       optLexicalCats     :: Set String,
+      optLiteralCats     :: Set Ident,
       optGFODir          :: Maybe FilePath,
       optOutputFile      :: Maybe FilePath,
       optOutputDir       :: Maybe FilePath,
       optGFLibPath       :: Maybe FilePath,
       optRecomp          :: Recomp,
       optPrinter         :: [Printer],
-      optProb            :: Bool,
+      optProbsFile       :: Maybe FilePath,
       optRetainResource  :: Bool,
       optName            :: Maybe String,
       optAbsName         :: Maybe String,
@@ -161,6 +166,7 @@
       optPreprocessors   :: [String],
       optEncoding        :: String,
       optOptimizations   :: Set Optimization,
+      optOptimizePGF     :: Bool,
       optCFGTransforms   :: Set CFGTransform,
       optLibraryPath     :: [FilePath],
       optStartCat        :: Maybe String,
@@ -243,6 +249,7 @@
       optOutputFormats   = [],
       optSISR            = Nothing,
       optHaskellOptions  = Set.empty,
+      optLiteralCats     = Set.fromList [cString,cInt,cFloat,cVar],
       optLexicalCats     = Set.empty,
       optGFODir          = Nothing,
       optOutputFile      = Nothing,
@@ -250,7 +257,7 @@
       optGFLibPath       = Nothing,
       optRecomp          = RecompIfNewer,
       optPrinter         = [],
-      optProb            = False,
+      optProbsFile       = Nothing,
       optRetainResource  = False,
 
       optName            = Nothing,
@@ -260,6 +267,7 @@
       optPreprocessors   = [],
       optEncoding        = "latin1",
       optOptimizations   = Set.fromList [OptStem,OptCSE,OptExpand,OptParametrize],
+      optOptimizePGF     = False,
       optCFGTransforms   = Set.fromList [CFGRemoveCycles, CFGBottomUpFilter, 
                                          CFGTopDownFilter, CFGMergeIdentical],
       optLibraryPath     = [],
@@ -306,6 +314,8 @@
              ++ concat (intersperse " | " (map fst haskellOptionNames))),
      Option [] ["lexical"] (ReqArg lexicalCat "CAT[,CAT[...]]") 
             "Treat CAT as a lexical category.",
+     Option [] ["literal"] (ReqArg literalCat "CAT[,CAT[...]]") 
+            "Treat CAT as a literal category.",
      Option ['o'] ["output-file"] (ReqArg outFile "FILE") 
            "Save output in FILE (default is out.X, where X depends on output format.",
      Option ['D'] ["output-dir"] (ReqArg outDir "DIR") 
@@ -321,7 +331,7 @@
      Option [] ["strip"] (NoArg (printer PrinterStrip))
                  "Remove name qualifiers when pretty-printing.",
      Option [] ["retain"] (NoArg (set $ \o -> o { optRetainResource = True })) "Retain opers.",
-     Option [] ["prob"] (NoArg (prob True)) "Read probabilities from '--# prob' pragmas.",
+     Option [] ["probs"] (ReqArg probsFile "file.probs") "Read probabilities from file.",
      Option ['n'] ["name"] (ReqArg name "NAME") 
            (unlines ["Use NAME as the name of the output. This is used in the output file names, ",
                      "with suffixes depending on the formats, and, when relevant, ",
@@ -348,6 +358,8 @@
      Option [] ["unlexer"] (ReqArg unlexer "UNLEXER") "Use unlexer UNLEXER.",
      Option [] ["optimize"] (ReqArg optimize "OPT") 
                 "Select an optimization package. OPT = all | values | parametrize | none",
+     Option [] ["optimize-pgf"] (NoArg (optimize_pgf True))
+                "Enable or disable global grammar optimization. This could significantly reduce the size of the final PGF file",
      Option [] ["stem"] (onOff (toggleOptimize OptStem) True) "Perform stem-suffix analysis (default on).",
      Option [] ["cse"] (onOff (toggleOptimize OptCSE) True) "Perform common sub-expression elimination (default on).",
      Option [] ["cfg"] (ReqArg cfgTransform "TRANS") "Enable or disable specific CFG transformations. TRANS = merge, no-merge, bottomup, no-bottomup, ...",
@@ -382,13 +394,14 @@
                          Just p  -> set $ \o -> o { optHaskellOptions = Set.insert p (optHaskellOptions o) }
                          Nothing -> fail $ "Unknown Haskell option: " ++ x
                                             ++ " Known: " ++ show (map fst haskellOptionNames)
+       literalCat  x = set $ \o -> o { optLiteralCats = foldr Set.insert (optLiteralCats o) ((map (identC . BS.pack) . splitBy (==',')) x) }
        lexicalCat  x = set $ \o -> o { optLexicalCats = foldr Set.insert (optLexicalCats o) (splitBy (==',') x) }
        outFile     x = set $ \o -> o { optOutputFile = Just x }
        outDir      x = set $ \o -> o { optOutputDir = Just x }
        gfLibPath   x = set $ \o -> o { optGFLibPath = Just x }
        recomp      x = set $ \o -> o { optRecomp = x }
        printer     x = set $ \o -> o { optPrinter = x : optPrinter o }
-       prob        x = set $ \o -> o { optProb = x }
+       probsFile   x = set $ \o -> o { optProbsFile = Just x }
 
        name        x = set $ \o -> o { optName = Just x }
        absName     x = set $ \o -> o { optAbsName = Just x }
@@ -406,6 +419,8 @@
        optimize    x = case lookup x optimizationPackages of
                          Just p  -> set $ \o -> o { optOptimizations = p }
                          Nothing -> fail $ "Unknown optimization package: " ++ x
+                         
+       optimize_pgf x = set $ \o -> o { optOptimizePGF = x }
 
        toggleOptimize x b = set $ setOptimization' x b
 
@@ -422,28 +437,32 @@
        set = return . Options
 
 outputFormats :: [(String,OutputFormat)]
-outputFormats = 
-    [("pgf_pretty",   FmtPGFPretty),
-     ("js",           FmtJavaScript),
-     ("haskell",      FmtHaskell),
-     ("prolog",       FmtProlog),
-     ("prolog_abs",   FmtProlog_Abs),
-     ("lambda_prolog",FmtLambdaProlog),
-     ("bnf",          FmtBNF),
-     ("ebnf",         FmtEBNF),
-     ("regular",      FmtRegular),
-     ("nolr",         FmtNoLR),
-     ("srgs_xml",     FmtSRGS_XML),
-     ("srgs_xml_nonrec",     FmtSRGS_XML_NonRec),
-     ("srgs_abnf",    FmtSRGS_ABNF),
-     ("srgs_abnf_nonrec",    FmtSRGS_ABNF_NonRec),
-     ("jsgf",         FmtJSGF),
-     ("gsl",          FmtGSL),
-     ("vxml",         FmtVoiceXML),
-     ("slf",          FmtSLF),
-     ("regexp",       FmtRegExp),
-     ("fa",           FmtFA)]
+outputFormats = map fst outputFormatsExpl
 
+outputFormatsExpl :: [((String,OutputFormat),String)]
+outputFormatsExpl = 
+    [(("pgf_pretty",   FmtPGFPretty),"human-readable pgf"),
+     (("js",           FmtJavaScript),"JavaScript (whole grammar)"),
+     (("haskell",      FmtHaskell),"Haskell (abstract syntax)"),
+     (("prolog",       FmtProlog),"Prolog (whole grammar)"),
+     (("prolog_abs",   FmtProlog_Abs),"Prolog (abstract syntax)"),
+     (("lambda_prolog",FmtLambdaProlog),"LambdaProlog (abstract syntax)"),
+     (("bnf",          FmtBNF),"BNF (context-free grammar)"),
+     (("ebnf",         FmtEBNF),"Extended BNF"),
+     (("regular",      FmtRegular),"* regular grammar"),
+     (("nolr",         FmtNoLR),"* context-free with no left recursion"),
+     (("srgs_xml",     FmtSRGS_XML),"SRGS speech recognition format in XML"),
+     (("srgs_xml_nonrec",     FmtSRGS_XML_NonRec),"SRGS XML, recursion eliminated"),
+     (("srgs_abnf",    FmtSRGS_ABNF),"SRGS speech recognition format in ABNF"),
+     (("srgs_abnf_nonrec",    FmtSRGS_ABNF_NonRec),"SRGS ABNF, recursion eliminated"),
+     (("jsgf",         FmtJSGF),"JSGF speech recognition format"),
+     (("gsl",          FmtGSL),"Nuance speech recognition format"),
+     (("vxml",         FmtVoiceXML),"Voice XML based on abstract syntax"),
+     (("slf",          FmtSLF),"SLF speech recognition format"),
+     (("regexp",       FmtRegExp),"regular expression"),
+     (("fa",           FmtFA),"finite automaton in graphviz format")
+     ]
+
 instance Show OutputFormat where
     show = lookupShow outputFormats
 
@@ -529,6 +548,9 @@
 
 haskellOption :: Options -> HaskellOption -> Bool
 haskellOption opts o = Set.member o (flag optHaskellOptions opts)
+
+isLiteralCat :: Options -> Ident -> Bool
+isLiteralCat opts c = Set.member c (flag optLiteralCats opts)
 
 isLexicalCat :: Options -> String -> Bool
 isLexicalCat opts c = Set.member c (flag optLexicalCats opts)
diff --git a/src/compiler/GF/Infra/UseIO.hs b/src/compiler/GF/Infra/UseIO.hs
--- a/src/compiler/GF/Infra/UseIO.hs
+++ b/src/compiler/GF/Infra/UseIO.hs
@@ -184,3 +184,10 @@
       else when (verbAtLeast opts v) $ putStrLnE ""
 
   return a
+
+writeUTF8File :: FilePath -> String -> IO ()
+writeUTF8File fpath content = do
+  h <- openFile fpath WriteMode
+  hSetEncoding h utf8
+  hPutStr h content
+  hClose h
diff --git a/src/compiler/GF/Quiz.hs b/src/compiler/GF/Quiz.hs
--- a/src/compiler/GF/Quiz.hs
+++ b/src/compiler/GF/Quiz.hs
@@ -38,22 +38,26 @@
   teachDialogue qas msg
 
 translationList :: 
-  Maybe Expr -> Maybe Probabilities -> 
-  PGF -> Language -> Language -> Type -> Int -> IO [(String,[String])]
-translationList mex mprobs pgf ig og typ number = do
+  Maybe Expr -> PGF -> Language -> Language -> Type -> Int -> IO [(String,[String])]
+translationList mex pgf ig og typ number = do
   gen <- newStdGen
-  let ts = take number $ generateRandomFrom mex mprobs gen pgf typ
+  let ts   = take number $ case mex of
+                             Just ex -> generateRandomFrom gen pgf ex
+                             Nothing -> generateRandom     gen pgf typ
   return $ map mkOne $ ts
  where
-   mkOne t = (norml (linearize pgf ig t), map (norml . linearize pgf og) (homonyms t))
-   homonyms = nub . parse pgf ig typ . linearize pgf ig
+   mkOne t = (norml (linearize pgf ig t), 
+              map norml (concatMap lins (homonyms t)))
+   homonyms = parse pgf ig typ . linearize pgf ig
+   lins = nub . concatMap (map snd) . tabularLinearizes pgf og
 
 morphologyList :: 
-  Maybe Expr -> Maybe Probabilities -> 
-  PGF -> Language -> Type -> Int -> IO [(String,[String])]
-morphologyList mex mprobs pgf ig typ number = do
+  Maybe Expr -> PGF -> Language -> Type -> Int -> IO [(String,[String])]
+morphologyList mex pgf ig typ number = do
   gen <- newStdGen
-  let ts = take (max 1 number) $ generateRandomFrom mex mprobs gen pgf typ 
+  let ts   = take (max 1 number) $ case mex of
+                                     Just ex -> generateRandomFrom gen pgf ex
+                                     Nothing -> generateRandom     gen pgf typ
   let ss    = map (tabularLinearizes pgf ig) ts
   let size  = length (head (head ss))
   let forms = take number $ randomRs (0,size-1) gen
diff --git a/src/compiler/GF/Speech/CFG.hs b/src/compiler/GF/Speech/CFG.hs
--- a/src/compiler/GF/Speech/CFG.hs
+++ b/src/compiler/GF/Speech/CFG.hs
@@ -7,7 +7,7 @@
 module GF.Speech.CFG where
 
 import GF.Data.Utilities
-import PGF.CId
+import PGF
 import GF.Infra.Option
 import GF.Data.Relation
 
@@ -27,7 +27,6 @@
 --
 
 type Cat = String
-type Token = String
 
 data Symbol c t = NonTerminal c | Terminal t
   deriving (Eq, Ord, Show)
diff --git a/src/compiler/GF/Speech/PGFToCFG.hs b/src/compiler/GF/Speech/PGFToCFG.hs
--- a/src/compiler/GF/Speech/PGFToCFG.hs
+++ b/src/compiler/GF/Speech/PGFToCFG.hs
@@ -37,7 +37,7 @@
     cnc = lookConcr pgf lang
 
     rules :: [(FId,Production)]
-    rules = [(fcat,prod) | (fcat,set) <- IntMap.toList (PGF.pproductions cnc)
+    rules = [(fcat,prod) | (fcat,set) <- IntMap.toList (PGF.productions cnc)
                          , prod <- Set.toList set]
 
     fcatCats :: Map FId Cat
@@ -58,7 +58,7 @@
 
     topdownRules cat = f cat []
       where
-        f cat rules = maybe rules (Set.fold g rules) (IntMap.lookup cat (pproductions cnc))
+        f cat rules = maybe rules (Set.fold g rules) (IntMap.lookup cat (productions cnc))
 	 
         g (PApply funid args) rules = (cncfuns cnc ! funid,args) : rules
         g (PCoerce cat)       rules = f cat rules
@@ -70,7 +70,7 @@
     startRules :: [CFRule]
     startRules = [CFRule (showCId c) [NonTerminal (fcatToCat fc r)] (CFRes 0) 
                       | (c,CncCat s e lbls) <- Map.toList (cnccats cnc), 
-                        fc <- range (s,e), not (isLiteralFCat fc),
+                        fc <- range (s,e), not (isPredefFId fc),
                         r <- [0..catLinArity fc-1]]
 
     ruleToCFRule :: (FId,Production) -> [CFRule]
@@ -86,15 +86,16 @@
         mkRhs = concatMap symbolToCFSymbol . Array.elems
 
         containsLiterals :: Array DotPos Symbol -> Bool
-        containsLiterals row = any isLiteralFCat [args!!n | SymCat n _ <- Array.elems row] ||
-                               not (null [n | SymLit n _ <- Array.elems row])   -- only this is needed for PMCFG.
-                                                                                -- The first line is for backward compat.
+        containsLiterals row = not (null ([n | SymLit n _ <- Array.elems row] ++
+                                          [n | SymVar n _ <- Array.elems row]))
 
         symbolToCFSymbol :: Symbol -> [CFSymbol]
-        symbolToCFSymbol (SymCat n l)    = [NonTerminal (fcatToCat (args!!n) l)]
-        symbolToCFSymbol (SymLit n l)    = [NonTerminal (fcatToCat (args!!n) l)]
+        symbolToCFSymbol (SymCat n l)    = [let PArg _ fid = args!!n in NonTerminal (fcatToCat fid l)]
         symbolToCFSymbol (SymKS ts)      = map Terminal ts
-
+        symbolToCFSymbol (SymKP ts as)   = map Terminal $ ts 
+                                           ---- ++ [t | Alt ss _ <- as, t <- ss]
+                                           ---- should be alternatives in [[CFSymbol]]
+                                           ---- AR 3/6/2010
         fixProfile :: Array DotPos Symbol -> Int -> Profile
         fixProfile row i = [k | (k,j) <- nts, j == i]
             where
@@ -106,7 +107,7 @@
 
         profilesToTerm :: [Profile] -> CFTerm
         profilesToTerm ps = CFObj f (zipWith profileToTerm argTypes ps)
-            where (argTypes,_) = catSkeleton $ lookType pgf f
+            where (argTypes,_) = catSkeleton $ lookType (abstract pgf) f
 
         profileToTerm :: CId -> Profile -> CFTerm
         profileToTerm t [] = CFMeta t
diff --git a/src/compiler/GF/Speech/SRGS_XML.hs b/src/compiler/GF/Speech/SRGS_XML.hs
--- a/src/compiler/GF/Speech/SRGS_XML.hs
+++ b/src/compiler/GF/Speech/SRGS_XML.hs
@@ -13,7 +13,7 @@
 import GF.Speech.RegExp
 import GF.Speech.SISR as SISR
 import GF.Speech.SRG
-import PGF (PGF, CId)
+import PGF (PGF, CId, Token)
 
 import Control.Monad
 import Data.Char (toUpper,toLower)
diff --git a/src/compiler/GF/Speech/VoiceXML.hs b/src/compiler/GF/Speech/VoiceXML.hs
--- a/src/compiler/GF/Speech/VoiceXML.hs
+++ b/src/compiler/GF/Speech/VoiceXML.hs
@@ -39,9 +39,8 @@
 type Skeleton = [(CId, [(CId, [CId])])]
 
 pgfSkeleton :: PGF -> Skeleton
-pgfSkeleton pgf = [(c,[(f,fst (catSkeleton (lookType pgf f))) | f <- fs]) 
-                   | (c,(_,fs)) <- Map.toList (cats (abstract pgf)),
-                     not (isLiteralCat c)]
+pgfSkeleton pgf = [(c,[(f,fst (catSkeleton (lookType (abstract pgf) f))) | (_,f) <- fs]) 
+                   | (c,(_,fs)) <- Map.toList (cats (abstract pgf))]
 
 --
 -- * Questions to ask 
diff --git a/src/compiler/GF/Text/Transliterations.hs b/src/compiler/GF/Text/Transliterations.hs
--- a/src/compiler/GF/Text/Transliterations.hs
+++ b/src/compiler/GF/Text/Transliterations.hs
@@ -31,6 +31,7 @@
 transliteration s = Map.lookup s allTransliterations 
 
 allTransliterations = Map.fromAscList [
+  ("amharic",transAmharic),
   ("ancientgreek", transAncientGreek),
   ("arabic", transArabic),
   ("devanagari", transDevanagari),
@@ -40,7 +41,7 @@
   ("telugu", transTelugu),
   ("thai", transThai),
   ("urdu", transUrdu)
-  ]
+ ]
 
 -- used in command options and help
 transliterationPrintNames = [(t,printname p) | (t,p) <- Map.toList allTransliterations]
@@ -117,17 +118,19 @@
     "I  u  U  R  -  -  -  e  E  o  O  -  -  -  -  -  " ++
     "-  -  -  -  -  -  -  -  -  -  -  z  r. -  -  -  "
 
+
 transUrdu :: Transliteration
 transUrdu = 
   (mkTransliteration "Urdu" allTrans allCodes) where
     allCodes = [0x0622 .. 0x062f] ++ [0x0630 .. 0x063a] ++ [0x0641 .. 0x0648] ++ 
-               [0x0654,0x0658,0x0679,0x067e,0x0686,0x0688,0x0691,0x0698,0x06af,0x06c1,0x06c3,0x06cc,0x06ba,0x06be,0x06d2]
+               [0x0654,0x0658,0x0679,0x067e,0x0686,0x0688,0x0691,0x0698,0x06af,0x06c1,0x06c3,0x06cc,0x06ba,0x06be,0x06d2] ++
+			   [0x06f0 .. 0x06f9]
     allTrans = words $
       "A - w^ - y^ a b - t C j H K d " ++  -- 0622 - 062f
       "Z r z s X S Z- t- z- e G "   ++  -- 0630 - 063a
       "f q k l m n - w "    ++  -- 0641 - 0648
-      "$ n- T p c D R x g h t: y N h- E "   -- 0654,658,679,67e,686,688,698,6af,6c1,6c3,6cc,6ba,6be,6d2
-      
+      "$ n- T p c D R x g h t: y N h' E " ++  -- 0654,658,679,67e,686,688,698,6af,6c1,6c3,6cc,6ba,6be,6d2
+      "N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 " 
     
 
 transArabic :: Transliteration
@@ -210,3 +213,35 @@
     "-  -  w|` w|  w|'  -  w~ w|~ - - - - - - - - "    -- 1ff0-
   allCodes = [0x0380 .. 0x03cf] ++ [0x1f00 .. 0x1fff]
 
+
+
+ 
+transAmharic :: Transliteration
+transAmharic = mkTransliteration "Amharic" allTrans allCodes where
+ 
+allTrans = words $
+    
+  	" h.  h-  h'  h(  h)  h  h?  h*  l.  l-  l'  l(  l)  l  l?  l*  "++
+	" H.  H-  H'  H(  H)  H  H?  H*  m.  m-  m'  m(  m)  m  m?  m*  "++
+	" s.  s-  s'  s(  s)  s  s?  s*  r.  r-  r'  r(  r)  r  r?  r* "++
+	" -   -   -   -   -  -   -  -   x.  x-  x'  x(  x)  x  x?   x* "++
+	" q.  q-  q'  q(  q)  q  q?  q*  -   -   -   -   -   -  -   - "++
+	" -   -   -   -   -   -  -   -   -   -   -   -   -   -  -   - "++
+	" b.  b-  b'  b(  b)  b  b?  b*  v.  v-  v'  v(  v)  v  v?  v* "++
+	" t.  t-  t'  t(  t)  t  t?  t*  c.  c-  c'  c(  c)  c  c?  c* "++
+	" X.  X-  X'  X(  X)  X  X?  -   -   -   -   X*  -   -  -   - "++
+	" n.  n-  n'  n(  n)  n  n?  n*  N.  N-  N'  N(  N)  N  N?  N* "++
+	" a   u   i   A   E   e  o   e*  k.  k-  k'  k(  k)  k  k?  - "++
+	" -   -   -   k*  -   -  -   -   -   -   -   -   -   -  -   - "++
+	" -   -   -   -   -   -  -   -   w.  w-  w'  w(  w)  w  w?  w* "++
+	" -   -   -   -   -   -  -   -   z.  z-  z'  z(  z)  z  z?  z* "++
+	" Z.  Z-  Z'  Z(  Z)  Z  Z?  Z*  y.  y-  y'  y(  y)  y  y?  y* "++
+	" d.  d-  d'  d(  d)  d  d?  d*  -   -   -   -   -   -  -   - "++
+	" j.  j-  j'  j(  j)  j  j?  j*  g.  g-  g'  g(  g)  g  g?  - "++
+	" -   -   -   g*  -   -  -   -   -   -   -   -   -   -  -   - "++
+	" T.  T-  T'  T(  T)  T  T?  T*  C.  C-  C'  C(  C)  C  C?  C* "++
+	" P.  P-  P'  P(  P)  P  P?  P*  S.  S-  S'  S(  S)  S  S?  S* "++
+	" -   -   -   -   -   -  -   -   f.  f-  f'  f(  f)  f  f?  f*"++
+	" p.  p-  p'  p(  p)  p  p?  p*" 	
+allCodes = [0x1200..0x1357]
+ 
diff --git a/src/compiler/GFC.hs b/src/compiler/GFC.hs
--- a/src/compiler/GFC.hs
+++ b/src/compiler/GFC.hs
@@ -1,13 +1,15 @@
-module GFC (mainGFC) where
+module GFC (mainGFC, writePGF) where
 -- module Main where
 
 import PGF
 import PGF.CId
 import PGF.Data
+import PGF.Optimize
 import GF.Compile
 import GF.Compile.Export
 
 import GF.Grammar.CF ---- should this be on a deeper level? AR 15/10/2008
+import GF.Grammar (identC)
 
 import GF.Infra.UseIO
 import GF.Infra.Option
@@ -15,6 +17,7 @@
 
 import Data.Maybe
 import Data.Binary
+import qualified Data.ByteString.Char8 as BS
 import System.FilePath
 import System.IO
 import Control.Exception
@@ -36,7 +39,7 @@
        let cnc = justModuleName (last fs)
        if flag optStopAfterPhase opts == Compile 
          then return ()
-         else do pgf <- link opts cnc gr
+         else do pgf <- link opts (identC (BS.pack cnc)) gr
                  writePGF opts pgf
                  writeOutputs opts pgf
 
@@ -48,14 +51,15 @@
        gr <- compileSourceGrammar opts gf
        if flag optStopAfterPhase opts == Compile 
          then return ()
-         else do pgf <- link opts cnc gr
+         else do pgf <- link opts (identC (BS.pack cnc)) gr
                  writePGF opts pgf
                  writeOutputs opts pgf
 
 unionPGFFiles :: Options -> [FilePath] -> IOE ()
 unionPGFFiles opts fs = 
     do pgfs <- mapM readPGFVerbose fs
-       let pgf = foldl1 unionPGF pgfs
+       let pgf0 = foldl1 unionPGF pgfs
+           pgf = if flag optOptimizePGF opts then optimizePGF pgf0 else pgf0
            pgfFile = grammarName opts pgf <.> "pgf"
        if pgfFile `elem` fs 
          then putStrLnE $ "Refusing to overwrite " ++ pgfFile
diff --git a/src/compiler/GFI.hs b/src/compiler/GFI.hs
--- a/src/compiler/GFI.hs
+++ b/src/compiler/GFI.hs
@@ -12,8 +12,8 @@
 import GF.Grammar.Parser (runP, pExp)
 import GF.Grammar.ShowTerm
 import GF.Compile.Rename
-import GF.Compile.Concrete.Compute (computeConcrete)
-import GF.Compile.Concrete.TypeCheck (inferLType)
+import GF.Compile.Compute.Concrete (computeConcrete)
+import GF.Compile.TypeCheck.Concrete (inferLType)
 import GF.Infra.Dependencies
 import GF.Infra.CheckM
 import GF.Infra.UseIO
@@ -111,6 +111,8 @@
              let
                pOpts style q ("-table"  :ws) = pOpts TermPrintTable   q           ws
                pOpts style q ("-all"    :ws) = pOpts TermPrintAll     q           ws
+               pOpts style q ("-list"   :ws) = pOpts TermPrintList    q           ws
+               pOpts style q ("-one"    :ws) = pOpts TermPrintOne     q           ws
                pOpts style q ("-default":ws) = pOpts TermPrintDefault q           ws
                pOpts style q ("-unqual" :ws) = pOpts style            Unqualified ws
                pOpts style q ("-qual"   :ws) = pOpts style            Qualified   ws
@@ -314,7 +316,7 @@
            Nothing -> error ("Can't parse '"++str++"' as type")
 
     loop ps []     = Just ps
-    loop ps (t:ts) = case nextState ps t of
+    loop ps (t:ts) = case nextState ps (simpleParseInput t) of
                        Left  es -> Nothing
                        Right ps -> loop ps ts
 
diff --git a/src/runtime/c/pgf.h b/src/runtime/c/pgf.h
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf.h
@@ -0,0 +1,14 @@
+#ifndef PGF_H
+#define PGF_H
+
+typedef struct _CId     *CId;
+typedef struct _String  *String;
+typedef struct _Literal *Literal ;
+typedef struct _Type    *Type ;
+typedef struct _Expr    *Expr ;
+typedef struct _PGF     *PGF ;
+
+PGF readPGF(char *filename);
+void freePGF(PGF pgf);
+
+#endif
diff --git a/src/runtime/c/pgf/data.h b/src/runtime/c/pgf/data.h
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/data.h
@@ -0,0 +1,76 @@
+#ifndef PGF_DATA_H
+#define PGF_DATA_H
+
+typedef int BindType;
+
+#include "expr.h"
+#include "type.h"
+
+struct _String {
+  int len;
+  unsigned int chars[];
+};
+
+struct _CId {
+  int len;
+  char chars[];
+};
+
+typedef struct _CIdList {
+  int count;
+  CId names[];
+} *CIdList;
+
+typedef struct _AbsCat {
+  CId name;
+  Context hypos;
+  CIdList funs;
+} *AbsCat;
+
+typedef struct _AbsCats {
+  int count;
+  struct _AbsCat lst[];
+} *AbsCats;
+
+typedef struct _AbsFun {
+  CId name;
+  Type ty;
+  int arrity;
+  Equations equs;
+} *AbsFun;
+
+typedef struct _AbsFuns {
+  int count;
+  struct _AbsFun lst[];
+} *AbsFuns;
+
+struct _Flag {
+  CId name;
+  Literal value;
+} ;
+
+typedef struct _Flags {
+  int count;
+  struct _Flag values[];
+} *Flags;
+
+typedef struct _Abstract {
+  CId name;
+  Flags flags;
+  AbsFuns funs;
+  AbsCats cats;
+} *Abstract;
+
+typedef struct _Concrete {
+  CId name;
+  Flags flags;
+} *Concrete;
+
+struct _PGF {
+  Flags flags;
+  int   nConcr;
+  struct _Abstract abstract;
+  struct _Concrete concretes[];
+};
+
+#endif
diff --git a/src/runtime/c/pgf/expr.h b/src/runtime/c/pgf/expr.h
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/expr.h
@@ -0,0 +1,144 @@
+#ifndef PGF_EXPR_H
+#define PGF_EXPR_H
+
+#define LIT_STR   0
+#define LIT_INT   1
+#define LIT_FLOAT 2
+
+struct _Literal {
+  int tag;
+};
+
+typedef struct _LiteralStr {
+  struct _Literal _;
+  String val;
+} *LiteralStr;
+
+typedef struct _LiteralInt {
+  struct _Literal _;
+  int val;
+} *LiteralInt;
+
+typedef struct _LiteralFloat {
+  struct _Literal _;
+  double val;
+} *LiteralFloat;
+
+#define TAG_ABS 0
+#define TAG_APP 1
+#define TAG_LIT 2
+#define TAG_MET 3
+#define TAG_FUN 4
+#define TAG_VAR 5
+#define TAG_TYP 6
+#define TAG_IMP 7
+
+struct _Expr {
+  int tag;
+};
+
+typedef struct _ExprAbs {
+  struct _Expr _;
+  BindType bt;
+  CId var;
+  Expr body;
+} *ExprAbs;
+
+typedef struct _ExprApp {
+  struct _Expr _;
+  Expr left, right;
+} *ExprApp;
+
+typedef struct _ExprLit {
+  struct _Expr _;
+  Literal lit;
+} *ExprLit;
+
+typedef struct _ExprMeta {
+  struct _Expr _;
+  int id;
+} *ExprMeta;
+
+typedef struct _ExprFun {
+  struct _Expr _;
+  CId fun;
+} *ExprFun;
+
+typedef struct _ExprVar {
+  struct _Expr _;
+  int index;
+} *ExprVar;
+
+typedef struct _ExprTyped {
+  struct _Expr _;
+  Expr e;
+  Type ty;
+} *ExprTyped;
+
+typedef struct _ExprImplArg {
+  struct _Expr _;
+  Expr e;
+} *ExprImplArg;
+
+#define TAG_PAPP   0
+#define TAG_PVAR   1
+#define TAG_PAT    2
+#define TAG_PWILD  3
+#define TAG_PLIT   4
+#define TAG_PIMP   5
+#define TAG_PTILDE 6
+
+typedef struct _Patt {
+  int tag;
+} *Patt;
+
+typedef struct _Patts {
+  int count;
+  Patt pats[];
+} *Patts;
+
+typedef struct _PattApp {
+  struct _Patt _;
+  CId fun;
+  struct _Patts args;
+} *PattApp;
+
+typedef struct _PattVar {
+  struct _Patt _;
+  CId var;
+} *PattVar;
+
+typedef struct _PattAt {
+  struct _Patt _;
+  CId  var;
+  Patt pat;
+} *PattAt;
+
+typedef struct _PattWild {
+  struct _Patt _;
+} *PattWild;
+
+typedef struct _PattLit {
+  struct _Patt _;
+  Literal lit;
+} *PattLit;
+
+typedef struct _PattImplArg {
+  struct _Patt _;
+  Patt pat;
+} *PattImplArg;
+
+typedef struct _PattTilde {
+  struct _Patt _;
+  Expr e;
+} *PattTilde;
+
+typedef struct _Equations {
+  int count;
+  struct _Equation {
+    Patts lhs;
+    Expr  rhs;
+  } equs[];
+} *Equations;
+
+#endif
diff --git a/src/runtime/c/pgf/loader.c b/src/runtime/c/pgf/loader.c
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/loader.c
@@ -0,0 +1,396 @@
+#include "../pgf.h"
+#include "data.h"
+#include "panic.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+static int readTag(FILE *f) {
+  return getc(f);
+}
+
+static int readInt16(FILE *f) {
+  int x = getc(f);
+  int y = getc(f);
+  return ((x << 8) | y);
+}
+
+static int readInt(FILE *f) {
+  unsigned int x = (unsigned int) getc(f);
+  if (x <= 0x7f)
+    return (int) x;
+  else {
+    unsigned int y = (unsigned int) readInt(f);
+    return (int) ((y << 7) | (x & 0x7f)) ;
+  }
+}
+
+static double readFloat(FILE *f) {
+  double d;
+  fread(&d, sizeof(d), 1, f);
+  return d;
+}
+
+static String readString(FILE *f) {
+  int len = readInt(f);
+  String str = (String) malloc(sizeof(struct _CId)+len*sizeof(unsigned int));
+  str->len = len;
+  
+  int i;
+  for (i = 0; i < len; i++) {
+    int c = fgetc(f);
+    str->chars[i] = c;
+  }
+  
+  return str;
+}
+
+static CId readCId(FILE *f) {
+  int len = readInt(f);
+  CId cid = (CId) malloc(sizeof(struct _CId)+len*sizeof(char));
+  cid->len = len;
+  fread(&cid->chars, sizeof(char), len, f);
+  return cid;
+}
+
+static CIdList readCIdList(FILE *f) {
+  int i;
+  int count = readInt(f);
+  CIdList list = (CIdList) malloc(sizeof(struct _CIdList)+count*sizeof(CId));
+  
+  list->count = count;
+  for (i = 0; i < count; i++) {
+    list->names[i]  = readCId(f);
+  }
+
+  return list;
+}
+
+static Literal readLiteral(FILE *f) {
+  int tag = readTag(f);
+  switch (tag) {
+    case LIT_STR:
+      { 
+	LiteralStr lit = (LiteralStr) malloc(sizeof(struct _LiteralStr));
+        lit->_.tag = tag;
+        lit->val   = readString(f);
+        return ((Literal) lit);
+      }
+    case LIT_INT:
+      { 
+	LiteralInt lit = (LiteralInt) malloc(sizeof(struct _LiteralInt));
+        lit->_.tag = tag;
+        lit->val   = readInt(f);
+        return ((Literal) lit);
+      }
+    case LIT_FLOAT:
+      {
+        LiteralFloat lit = (LiteralFloat) malloc(sizeof(struct _LiteralFloat));
+        lit->_.tag = tag;
+        lit->val   = readFloat(f);
+        return ((Literal) lit);
+      }
+    default:
+      __pgf_panic("Unknown literal tag");
+  }
+}
+
+static Flags readFlags(FILE *f) {
+  int i;
+  int count = readInt(f);
+  Flags flags = (Flags) malloc(sizeof(struct _Flags)+count*sizeof(struct _Flag));
+  
+  flags->count = count;
+  for (i = 0; i < count; i++) {
+    flags->values[i].name  = readCId(f);
+    flags->values[i].value = readLiteral(f);
+  }
+
+  return flags;
+}
+
+static Context readContext(FILE *f);
+static Type readType(FILE *f);
+
+static Expr readExpr(FILE *f) {
+  int tag = readTag(f);
+  
+  switch (tag) {
+  case TAG_ABS:
+    {
+        ExprAbs e = (ExprAbs) malloc(sizeof(struct _ExprAbs));
+        e->_.tag = tag;
+        e->bt    = readTag(f);
+        e->var   = readCId(f);
+        e->body  = readExpr(f);
+        return ((Expr) e);
+    }
+  case TAG_APP:
+    {
+        ExprApp e = (ExprApp) malloc(sizeof(struct _ExprApp));
+        e->_.tag = tag;
+        e->left  = readExpr(f);
+        e->right = readExpr(f);
+        return ((Expr) e);
+    }
+  case TAG_LIT:
+    {
+        ExprLit e = (ExprLit) malloc(sizeof(struct _ExprLit));
+        e->_.tag = tag;
+        e->lit   = readLiteral(f);
+        return ((Expr) e);
+    }
+  case TAG_MET:
+    {
+        ExprMeta e = (ExprMeta) malloc(sizeof(struct _ExprMeta));
+        e->_.tag = tag;
+        e->id    = readInt(f);
+        return ((Expr) e);
+    }
+  case TAG_FUN:
+    {
+        ExprFun e = (ExprFun) malloc(sizeof(struct _ExprFun));
+        e->_.tag = tag;
+        e->fun   = readCId(f);
+        return ((Expr) e);
+    }
+  case TAG_VAR:
+    {
+        ExprVar e = (ExprVar) malloc(sizeof(struct _ExprVar));
+        e->_.tag = tag;
+        e->index = readInt(f);
+        return ((Expr) e);
+    }
+  case TAG_TYP:
+    {
+        ExprTyped e = (ExprTyped) malloc(sizeof(struct _ExprTyped));
+        e->_.tag = tag;
+        e->e     = readExpr(f);
+        e->ty    = readType(f);
+        return ((Expr) e);
+    }
+  case TAG_IMP:
+    {
+        ExprImplArg e = (ExprImplArg) malloc(sizeof(struct _ExprImplArg));
+        e->_.tag = tag;
+        e->e     = readExpr(f);
+        return ((Expr) e);
+    }
+  default:
+    __pgf_panic("Unknown expression tag");
+  }
+}
+	
+static Type readType(FILE *f) {
+  Context hypos = readContext(f);
+  CId     cat   = readCId(f);
+  
+  int i;
+  int count = readInt(f);
+  Type ty = (Type) malloc(sizeof(struct _Type)+count*sizeof(Expr));
+  
+  ty->hypos = hypos;
+  ty->cat   = cat;
+  ty->nArgs = count;
+  for (i = 0; i < count; i++) {
+    ty->args[i]  = readExpr(f);
+  }
+  
+  return ty;
+}
+
+static void readHypo(FILE *f, Hypo h) {
+  h->bt  = readTag(f);
+  h->var = readCId(f);
+  h->ty  = readType(f);
+}
+
+static Context readContext(FILE *f) {
+  int i;
+  int size = readInt(f);
+  Context ctxt = (Context) malloc(sizeof(struct _Context)+size*sizeof(struct _Hypo));
+  
+  ctxt->size = size;
+  for (i = 0; i < size; i++) {
+    readHypo(f, &ctxt->hypos[i]);
+  }
+  
+  return ctxt;
+}
+
+static Patt readPatt(FILE *f) {
+  int tag = readTag(f);
+
+  switch (tag) {
+  case TAG_PAPP:
+    {
+       CId fun = readCId(f);
+       
+       int i;
+       int count = readInt(f);
+       PattApp p = (PattApp) malloc(sizeof(struct _PattApp)+count*sizeof(Patt));
+  
+       p->_.tag      = tag;
+       p->fun        = fun;
+       p->args.count = count;
+       for (i = 0; i < count; i++) {
+         p->args.pats[i] = readPatt(f);
+       }
+       
+       return ((Patt) p);
+    }
+  case TAG_PVAR:
+    {
+        PattVar p = (PattVar) malloc(sizeof(struct _PattVar));
+        p->_.tag = tag;
+        p->var   = readCId(f);
+        return ((Patt) p);
+    }
+  case TAG_PAT:
+    {
+        PattAt p = (PattAt) malloc(sizeof(struct _PattAt));
+        p->_.tag = tag;
+        p->var   = readCId(f);
+        p->pat   = readPatt(f);
+        return ((Patt) p);
+    }
+  case TAG_PWILD:
+    {
+        PattWild p = (PattWild) malloc(sizeof(struct _PattWild));
+        p->_.tag = tag;
+        return ((Patt) p);
+    }
+  case TAG_PLIT:
+    {
+        PattLit p = (PattLit) malloc(sizeof(struct _PattLit));
+        p->_.tag = tag;
+        p->lit   = readLiteral(f);
+        return ((Patt) p);
+    }
+  case TAG_PIMP:
+    {
+        PattImplArg p = (PattImplArg) malloc(sizeof(struct _PattImplArg));
+        p->_.tag = tag;
+        p->pat   = readPatt(f);
+        return ((Patt) p);
+    }
+  case TAG_PTILDE:
+    {
+        PattTilde p = (PattTilde) malloc(sizeof(struct _PattTilde));
+        p->_.tag = tag;
+        p->e     = readExpr(f);
+        return ((Patt) p);
+    }
+  default:
+    __pgf_panic("Unknown pattern tag");
+  }  
+}
+
+static Patts readPatts(FILE *f) {
+  int i;
+  int count = readInt(f);
+  Patts pats = (Patts) malloc(sizeof(struct _Patts)+count*sizeof(Patt));
+  
+  pats->count = count;
+  for (i = 0; i < count; i++) {
+    pats->pats[i] = readPatt(f);
+  }
+
+  return pats;
+}
+
+static Equations readEquations(FILE *f) {
+  int i;
+  int count = readInt(f);
+  Equations equs = (Equations) malloc(sizeof(struct _Equations)+count*sizeof(struct _Equation));
+  
+  equs->count = count;
+  for (i = 0; i < count; i++) {
+    equs->equs[i].lhs = readPatts(f);
+    equs->equs[i].rhs = readExpr(f);
+  }
+
+  return equs;
+}
+
+static void readAbsFun(FILE *f, AbsFun fun) {
+  fun->name   = readCId(f);
+  fun->ty     = readType(f);
+  fun->arrity = readInt(f);
+  if (readTag(f) != 0)
+    fun->equs   = readEquations(f);
+  else
+    fun->equs   = NULL;
+}
+
+static AbsFuns readAbsFuns(FILE *f) {
+  int i;
+  int count = readInt(f);
+  AbsFuns funs = (AbsFuns) malloc(sizeof(struct _AbsFuns)+count*sizeof(struct _AbsFun));
+  
+  funs->count = count;
+  for (i = 0; i < count; i++) {
+    readAbsFun(f, &funs->lst[i]);
+  }
+  
+  return funs;
+}
+
+static void readAbsCat(FILE *f, AbsCat cat) {
+  cat->name  = readCId(f);
+  cat->hypos = readContext(f);
+  cat->funs  = readCIdList(f);
+}
+
+static AbsCats readAbsCats(FILE *f) {
+  int i;
+  int count = readInt(f);
+  AbsCats cats = (AbsCats) malloc(sizeof(struct _AbsCats)+count*sizeof(struct _AbsCat));
+  
+  cats->count = count;
+  for (i = 0; i < count; i++) {
+    readAbsCat(f, &cats->lst[i]);
+  }
+  
+  return cats;
+}
+
+static void readAbstr(FILE *f, Abstract abstr) {
+  abstr->name  = readCId(f);
+  abstr->flags = readFlags(f);
+  abstr->funs  = readAbsFuns(f);
+  abstr->cats  = readAbsCats(f);
+}
+
+static void readConcr(FILE *f, Concrete concr) {
+  concr->name  = readCId(f);
+  concr->flags = readFlags(f);
+}
+
+PGF readPGF(char *filename) {
+  FILE *f = fopen(filename, "rb");
+  if (f == NULL)
+    return NULL;
+    
+  int maj_ver = readInt16(f);
+  int min_ver = readInt16(f);
+  
+  Flags flags = readFlags(f);
+  
+  struct _Abstract abstr;
+  readAbstr(f, &abstr);
+  
+  int nConcr = readInt(f);
+  PGF pgf = (PGF) malloc(sizeof(struct _PGF)+sizeof(Concrete)*nConcr);
+  
+  pgf->flags    = flags;
+  pgf->abstract = abstr;
+  pgf->nConcr   = nConcr;
+  
+  int i;
+//  for (i = 0; i < nConcr; i++) {
+//    readConcr(f, &pgf->concretes[i]);
+//  }
+
+  fclose(f);
+  return pgf;
+}
diff --git a/src/runtime/c/pgf/panic.c b/src/runtime/c/pgf/panic.c
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/panic.c
@@ -0,0 +1,8 @@
+#include "panic.h"
+#include <stdio.h>
+
+void __pgf_panic(char *msg) {
+  printf("%s\n",msg);
+  fflush(stdout);
+  exit(1);
+}
diff --git a/src/runtime/c/pgf/panic.h b/src/runtime/c/pgf/panic.h
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/panic.h
@@ -0,0 +1,6 @@
+#ifndef PGF_PANIC_H
+#define PGF_PANIC_H
+
+void __pgf_panic(char *msg);
+
+#endif
diff --git a/src/runtime/c/pgf/type.h b/src/runtime/c/pgf/type.h
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/type.h
@@ -0,0 +1,22 @@
+#ifndef PGF_TYPE_H
+#define PGF_TYPE_H
+
+typedef struct _Hypo {
+  BindType bt;
+  CId var;
+  Type ty;
+} *Hypo;
+
+typedef struct _Context {
+  int  size;
+  struct _Hypo hypos[];
+} *Context;
+
+struct _Type {
+  Context hypos;
+  CId  cat;
+  int  nArgs;
+  Expr args[];
+};
+
+#endif
diff --git a/src/runtime/c/pgf/unloader.c b/src/runtime/c/pgf/unloader.c
new file mode 100644
--- /dev/null
+++ b/src/runtime/c/pgf/unloader.c
@@ -0,0 +1,248 @@
+#include "../pgf.h"
+#include "data.h"
+#include "panic.h"
+#include <stdlib.h>
+
+static void freeCId(CId id) {
+  free(id);
+}
+
+static void freeCIdList(CIdList ids) {
+  int i;
+  for (i = 0; i < ids->count; i++) {
+    freeCId(ids->names[i]);
+  }
+  free(ids);
+}
+
+static void freeString(String str) {
+  free(str);
+}
+
+static void freeLiteral(Literal lit) {
+  switch (lit->tag) {
+  case LIT_STR:
+    freeString (((LiteralStr) lit)->val);
+    break;
+  }
+  free(lit);
+}
+
+static void freeFlags(Flags flags) {
+  int i;
+  for (i = 0; i < flags->count; i++) {
+    freeCId(flags->values[i].name);
+    freeLiteral(flags->values[i].value);
+  }  
+  free(flags);
+}
+
+static void freeContext(Context ctxt);
+static void freeType(Type ty);
+
+static void freeExpr(Expr e0) {
+	
+  switch (e0->tag) {
+  case TAG_ABS:
+    {
+        ExprAbs e = (ExprAbs) e0;
+        freeCId(e->var);
+        freeExpr(e->body);
+    }
+    break;
+  case TAG_APP:
+    {
+        ExprApp e = (ExprApp) e0;
+        freeExpr(e->left);
+        freeExpr(e->right);
+    }
+    break;
+  case TAG_LIT:
+    {
+        ExprLit e = (ExprLit) e0;
+        freeLiteral(e->lit);
+    }
+    break;
+  case TAG_MET:
+    {
+        ExprMeta e = (ExprMeta) e0;
+    }
+    break;
+  case TAG_FUN:
+    {
+        ExprFun e = (ExprFun) e0;
+        freeCId(e->fun);
+    }
+    break;
+  case TAG_VAR:
+    {
+        ExprVar e = (ExprVar) e0;
+    }
+    break;
+  case TAG_TYP:
+    {
+        ExprTyped e = (ExprTyped) e0;
+        freeExpr(e->e);
+        freeType(e->ty);
+    }
+    break;
+  case TAG_IMP:
+    {
+        ExprImplArg e = (ExprImplArg) e0;
+        freeExpr(e->e);
+    }
+    break;
+  default:
+    __pgf_panic("Unknown expression tag");
+  }
+  
+  free(e0);
+}
+
+static void freeType(Type ty) {
+  freeContext(ty->hypos);
+  freeCId(ty->cat);
+   
+  int i;
+  for (i = 0; i < ty->nArgs; i++) {
+    freeExpr(ty->args[i]);
+  }
+  
+  free(ty);
+}
+
+static void freeHypo(Hypo hypo) {
+  freeCId(hypo->var);
+  freeType(hypo->ty);
+}
+
+static void freeContext(Context ctxt) {
+  int i;
+  for (i = 0; i < ctxt->size; i++) {
+    freeHypo(&ctxt->hypos[i]);
+  }  
+  free(ctxt);
+}
+
+static void freePatt(Patt p0) {
+  switch (p0->tag) {
+  case TAG_PAPP:
+    {
+       int i;
+       PattApp p = (PattApp) p0;
+  
+       freeCId(p->fun);
+       for (i = 0; i < p->args.count; i++) {
+         freePatt(p->args.pats[i]);
+       }
+    }
+    break;
+  case TAG_PVAR:
+    {
+        PattVar p = (PattVar) p0;
+        freeCId(p->var);
+    }
+    break;
+  case TAG_PAT:
+    {
+        PattAt p = (PattAt) p0;
+        freeCId(p->var);
+        freePatt(p->pat);
+    }
+    break;
+  case TAG_PWILD:
+    {
+        PattWild p = (PattWild) p0;
+    }
+    break;
+  case TAG_PLIT:
+    {
+        PattLit p = (PattLit) p0;
+        freeLiteral(p->lit);
+    }
+    break;
+  case TAG_PIMP:
+    {
+        PattImplArg p = (PattImplArg) p0;
+        freePatt(p->pat);
+    }
+    break;
+  case TAG_PTILDE:
+    {
+        PattTilde p = (PattTilde) p0;
+        freeExpr(p->e);
+    }
+    break;
+  default:
+    __pgf_panic("Unknown pattern tag");
+  }
+  
+  free(p0);
+}
+
+static void freePatts(Patts pats) {
+  int i;
+  for (i = 0; i < pats->count; i++) {
+    freePatt(pats->pats[i]);
+  }
+  free(pats);
+}
+
+static void freeEquations(Equations equs) {
+  int i;
+  for (i = 0; i < equs->count; i++) {
+    freePatts(equs->equs[i].lhs);
+    freeExpr(equs->equs[i].rhs);
+  }
+  free(equs);
+}
+
+static void freeAbsFun(AbsFun fun) {
+  freeCId(fun->name);
+  freeType(fun->ty);
+  freeEquations(fun->equs);
+}
+
+static void freeAbsFuns(AbsFuns funs) {
+  int i;
+  for (i = 0; i < funs->count; i++) {
+    freeAbsFun(&funs->lst[i]);
+  }  
+  free(funs);
+}
+
+static void freeAbsCat(AbsCat cat) {
+  freeCId(cat->name);
+  freeContext(cat->hypos);
+  freeCIdList(cat->funs);
+}
+
+static void freeAbsCats(AbsCats cats) {
+  int i;
+  for (i = 0; i < cats->count; i++) {
+    freeAbsCat(&cats->lst[i]);
+  }  
+  free(cats);
+}
+
+static void freeAbstract(Abstract abstr) {
+  freeCId(abstr->name);
+  freeFlags(abstr->flags);
+  freeAbsFuns(abstr->funs);
+  freeAbsCats(abstr->cats);
+}
+
+static void freeConcrete(Concrete concr) {
+//  freeCId(concr->name);
+//  freeFlags(concr->flags);
+}
+
+void freePGF(PGF pgf) {
+  int i;
+  
+  freeFlags(pgf->flags);
+  freeAbstract(&pgf->abstract);
+  for (i = 0; i < pgf->nConcr; i++)
+    freeConcrete(&pgf->concretes[i]);
+  free(pgf);
+}
diff --git a/src/runtime/haskell/Data/Binary.hs b/src/runtime/haskell/Data/Binary.hs
--- a/src/runtime/haskell/Data/Binary.hs
+++ b/src/runtime/haskell/Data/Binary.hs
@@ -62,7 +62,7 @@
 
 import Data.Binary.Put
 import Data.Binary.Get
-
+import Data.Binary.IEEE754 ( putFloat64be, getFloat64be)
 import Control.Monad
 import Control.Exception
 import Foreign
@@ -747,9 +747,13 @@
 ------------------------------------------------------------------------
 -- Floating point
 
+-- instance Binary Double where
+--     put d = put (decodeFloat d)
+--     get   = liftM2 encodeFloat get get
+
 instance Binary Double where
-    put d = put (decodeFloat d)
-    get   = liftM2 encodeFloat get get
+    put = putFloat64be
+    get = getFloat64be
 
 instance Binary Float where
     put f = put (decodeFloat f)
diff --git a/src/runtime/haskell/Data/Binary/IEEE754.lhs b/src/runtime/haskell/Data/Binary/IEEE754.lhs
new file mode 100644
--- /dev/null
+++ b/src/runtime/haskell/Data/Binary/IEEE754.lhs
@@ -0,0 +1,402 @@
+% Copyright (C) 2009 John Millikin <jmillikin@gmail.com>
+% 
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% any later version.
+% 
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+% 
+% You should have received a copy of the GNU General Public License
+% along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+\ignore{
+\begin{code}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+module Data.Binary.IEEE754 (
+	-- * Parsing
+	  getFloat16be, getFloat16le
+	, getFloat32be, getFloat32le
+	, getFloat64be, getFloat64le
+	
+	-- * Serializing
+	, putFloat32be, putFloat32le
+	, putFloat64be, putFloat64le
+) where
+
+import Data.Bits ((.&.), (.|.), shiftL, shiftR, Bits)
+import Data.Word (Word8)
+import Data.List (foldl')
+
+import qualified Data.ByteString as B
+import Data.Binary.Get (Get, getByteString)
+import Data.Binary.Put (Put, putByteString)
+\end{code}
+}
+
+\section{Parsing}
+
+\subsection{Public interface}
+
+\begin{code}
+getFloat16be :: Get Float
+getFloat16be = getFloat (ByteCount 2) splitBytes
+\end{code}
+
+\begin{code}
+getFloat16le :: Get Float
+getFloat16le = getFloat (ByteCount 2) $ splitBytes . reverse
+\end{code}
+
+\begin{code}
+getFloat32be :: Get Float
+getFloat32be = getFloat (ByteCount 4) splitBytes
+\end{code}
+
+\begin{code}
+getFloat32le :: Get Float
+getFloat32le = getFloat (ByteCount 4) $ splitBytes . reverse
+\end{code}
+
+\begin{code}
+getFloat64be :: Get Double
+getFloat64be = getFloat (ByteCount 8) splitBytes
+\end{code}
+
+\begin{code}
+getFloat64le :: Get Double
+getFloat64le = getFloat (ByteCount 8) $ splitBytes . reverse
+\end{code}
+
+\subsection{Implementation}
+
+Split the raw byte array into (sign, exponent, significand) components.
+The exponent and signifcand are drawn directly from the bits in the
+original float, and have not been unbiased or otherwise modified.
+
+\begin{code}
+splitBytes :: [Word8] -> RawFloat
+splitBytes bs = RawFloat width sign exp' sig expWidth sigWidth where
+	width = ByteCount (length bs)
+	nBits = bitsInWord8 bs
+	sign = if head bs .&. 0x80 == 0x80
+		then Negative
+		else Positive
+	
+	expStart = 1
+	expWidth = exponentWidth nBits
+	expEnd = expStart + expWidth
+	exp' = Exponent . fromIntegral $ bitSlice bs expStart expEnd
+	
+	sigWidth = nBits - expEnd
+	sig  = Significand $ bitSlice bs expEnd nBits
+\end{code}
+
+\subsubsection{Encodings and special values}
+
+The next step depends on the value of the exponent $e$, size of the
+exponent field in bits $w$, and value of the significand.
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{lrl}
+\toprule
+Exponent                & Significand & Format \\
+\midrule
+$0$                     & $0$           & Zero \\
+$0$                     & $> 0$         & Denormalised \\
+$1 \leq e \leq 2^w - 2$ & \textit{any} & Normalised \\
+$2^w-1$                 & $0$           & Infinity \\
+$2^w-1$                 & $> 0$         & NaN \\
+\bottomrule
+\end{tabular}
+\end{center}
+\end{table}
+
+There's no built-in literals for Infinity or NaN, so they
+are constructed using the {\tt Read} instances for {\tt Double} and
+{\tt Float}.
+
+\begin{code}
+merge :: (Read a, RealFloat a) => RawFloat -> a
+merge f@(RawFloat _ _ e sig eWidth _)
+	| e == 0 = if sig == 0
+		then 0.0
+		else denormalised f
+	| e == eMax - 1 = if sig == 0
+		then read "Infinity"
+		else read "NaN"
+	| otherwise = normalised f
+	where eMax = 2 `pow` eWidth
+\end{code}
+
+If a value is normalised, its significand has an implied {\tt 1} bit
+in its most-significant bit. The significand must be adjusted by
+this value before being passed to {\tt encodeField}.
+
+\begin{code}
+normalised :: RealFloat a => RawFloat -> a
+normalised f = encodeFloat fraction exp' where
+	Significand sig = rawSignificand f
+	Exponent exp' = unbiased - sigWidth
+	
+	fraction = sig + (1 `bitShiftL` rawSignificandWidth f)
+	
+	sigWidth = fromIntegral $ rawSignificandWidth f
+	unbiased = unbias (rawExponent f) (rawExponentWidth f)
+\end{code}
+
+For denormalised values, the implied {\tt 1} bit is the least-significant
+bit of the exponent.
+
+\begin{code}
+denormalised :: RealFloat a => RawFloat -> a
+denormalised f = encodeFloat sig exp' where
+	Significand sig = rawSignificand f
+	Exponent exp' = unbiased - sigWidth + 1
+	
+	sigWidth = fromIntegral $ rawSignificandWidth f
+	unbiased = unbias (rawExponent f) (rawExponentWidth f)
+\end{code}
+
+By composing {\tt splitBytes} and {\tt merge}, the absolute value of the
+float is calculated. Before being returned to the calling function, it
+must be signed appropriately.
+
+\begin{code}
+getFloat :: (Read a, RealFloat a) => ByteCount
+            -> ([Word8] -> RawFloat) -> Get a
+getFloat (ByteCount width) parser = do
+	raw <- fmap (parser . B.unpack) $ getByteString width
+	let absFloat = merge raw
+	return $ case rawSign raw of
+		Positive ->  absFloat
+		Negative -> -absFloat
+\end{code}
+
+\section{Serialising}
+
+\subsection{Public interface}
+
+\begin{code}
+putFloat32be :: Float -> Put
+putFloat32be = putFloat (ByteCount 4) id
+\end{code}
+
+\begin{code}
+putFloat32le :: Float -> Put
+putFloat32le = putFloat (ByteCount 4) reverse
+\end{code}
+
+\begin{code}
+putFloat64be :: Double -> Put
+putFloat64be = putFloat (ByteCount 8) id
+\end{code}
+
+\begin{code}
+putFloat64le :: Double -> Put
+putFloat64le = putFloat (ByteCount 8) reverse
+\end{code}
+
+\subsection{Implementation}
+
+Serialisation is similar to parsing. First, the float is converted to
+a structure representing raw bitfields. The values returned from
+{\tt decodeFloat} are clamped to their expected lengths before being
+stored in the {\tt RawFloat}.
+
+\begin{code}
+splitFloat :: RealFloat a => ByteCount -> a -> RawFloat
+splitFloat width x = raw where
+	raw = RawFloat width sign clampedExp clampedSig expWidth sigWidth
+	sign = if isNegativeNaN x || isNegativeZero x || x < 0
+		then Negative
+		else Positive
+	clampedExp = clamp expWidth exp'
+	clampedSig = clamp sigWidth sig
+	(exp', sig) = case (dFraction, dExponent, biasedExp) of
+		(0, 0, _) -> (0, 0)
+		(_, _, 0) -> (0, Significand $ truncatedSig + 1)
+		_         -> (biasedExp, Significand truncatedSig)
+	expWidth = exponentWidth $ bitCount width
+	sigWidth = bitCount width - expWidth - 1 -- 1 for sign bit
+	
+	(dFraction, dExponent) = decodeFloat x
+	
+	rawExp = Exponent $ dExponent + fromIntegral sigWidth
+	biasedExp = bias rawExp expWidth
+	truncatedSig = abs dFraction - (1 `bitShiftL` sigWidth)
+\end{code}
+
+Then, the {\tt RawFloat} is converted to a list of bytes by mashing all
+the fields together into an {\tt Integer}, and chopping up that integer
+in 8-bit blocks.
+
+\begin{code}
+rawToBytes :: RawFloat -> [Word8]
+rawToBytes raw = integerToBytes mashed width where
+	RawFloat width sign exp' sig expWidth sigWidth = raw
+	sign' :: Word8
+	sign' = case sign of
+		Positive -> 0
+		Negative -> 1
+	mashed = mashBits sig sigWidth .
+	         mashBits exp' expWidth .
+	         mashBits sign' 1 $ 0
+\end{code}
+
+{\tt clamp}, given a maximum bit count and a value, will strip any 1-bits
+in positions above the count.
+
+\begin{code}
+clamp :: Bits a => BitCount -> a -> a
+clamp = (.&.) . mask where
+	mask 1 = 1
+	mask n | n > 1 = (mask (n - 1) `shiftL` 1) + 1
+	mask _ = undefined
+\end{code}
+
+For merging the fields, just shift the starting integer over a bit and
+then \textsc{or} it with the next value. The weird parameter order allows
+easy composition.
+
+\begin{code}
+mashBits :: (Bits a, Integral a) => a -> BitCount -> Integer -> Integer
+mashBits _ 0 x = x
+mashBits y n x = (x `bitShiftL` n) .|. fromIntegral y
+\end{code}
+
+Given an integer, read it in 255-block increments starting from the LSB.
+Each increment is converted to a byte and added to the final list.
+
+\begin{code}
+integerToBytes :: Integer -> ByteCount -> [Word8]
+integerToBytes _ 0 = []
+integerToBytes x n = bytes where
+	bytes = integerToBytes (x `shiftR` 8) (n - 1) ++ [step]
+	step = fromIntegral x .&. 0xFF
+\end{code}
+
+Finally, the raw parsing is wrapped up in {\tt Put}. The second parameter
+allows the same code paths to be used for little- and big-endian
+serialisation.
+
+\begin{code}
+putFloat :: (RealFloat a) => ByteCount -> ([Word8] -> [Word8]) -> a -> Put
+putFloat width f x = putByteString $ B.pack bytes where
+	bytes = f . rawToBytes . splitFloat width $ x
+\end{code}
+
+\section{Raw float components}
+
+Information about the raw bit patterns in the float is stored in
+{\tt RawFloat}, so they don't have to be passed around to the various
+format cases. The exponent should be biased, and the significand
+shouldn't have it's implied MSB (if applicable).
+
+\begin{code}
+data RawFloat = RawFloat
+	{ rawWidth            :: ByteCount
+	, rawSign             :: Sign
+	, rawExponent         :: Exponent
+	, rawSignificand      :: Significand
+	, rawExponentWidth    :: BitCount
+	, rawSignificandWidth :: BitCount
+	}
+	deriving (Show)
+\end{code}
+
+\section{Exponents}
+
+Calculate the proper size of the exponent field, in bits, given the
+size of the full structure.
+
+\begin{code}
+exponentWidth :: BitCount -> BitCount
+exponentWidth k
+	| k == 16         = 5
+	| k == 32         = 8
+	| k `mod` 32 == 0 = ceiling (4 * logBase 2 (fromIntegral k)) - 13
+	| otherwise       = error "Invalid length of floating-point value"
+\end{code}
+
+\begin{code}
+bias :: Exponent -> BitCount -> Exponent
+bias e eWidth = e - (1 - (2 `pow` (eWidth - 1)))
+\end{code}
+
+\begin{code}
+unbias :: Exponent -> BitCount -> Exponent
+unbias e eWidth = e + 1 - (2 `pow` (eWidth - 1))
+\end{code}
+
+\section{Byte and bit counting}
+
+\begin{code}
+data Sign = Positive | Negative
+	deriving (Show)
+
+newtype Exponent = Exponent Int
+	deriving (Show, Eq, Num, Ord, Real, Enum, Integral, Bits)
+
+newtype Significand = Significand Integer
+	deriving (Show, Eq, Num, Ord, Real, Enum, Integral, Bits)
+
+newtype BitCount = BitCount Int
+	deriving (Show, Eq, Num, Ord, Real, Enum, Integral)
+
+newtype ByteCount = ByteCount Int
+	deriving (Show, Eq, Num, Ord, Real, Enum, Integral)
+
+bitCount :: ByteCount -> BitCount
+bitCount (ByteCount x) = BitCount (x * 8)
+
+bitsInWord8 :: [Word8] -> BitCount
+bitsInWord8 = bitCount . ByteCount . length
+
+bitShiftL :: (Bits a) => a -> BitCount -> a
+bitShiftL x (BitCount n) = shiftL x n
+
+bitShiftR :: (Bits a) => a -> BitCount -> a
+bitShiftR x (BitCount n) = shiftR x n
+\end{code}
+
+\section{Utility}
+
+Considering a byte list as a sequence of bits, slice it from start
+inclusive to end exclusive, and return the resulting bit sequence as an
+integer.
+
+\begin{code}
+bitSlice :: [Word8] -> BitCount -> BitCount -> Integer
+bitSlice bs = sliceInt (foldl' step 0 bs) bitCount' where
+	step acc w     = shiftL acc 8 + fromIntegral w
+	bitCount'      = bitsInWord8 bs
+\end{code}
+
+Slice a single integer by start and end bit location
+
+\begin{code}
+sliceInt :: Integer -> BitCount -> BitCount -> BitCount -> Integer
+sliceInt x xBitCount s e = fromIntegral sliced where
+	sliced = (x .&. startMask) `bitShiftR` (xBitCount - e)
+	startMask = n1Bits (xBitCount - s)
+	n1Bits n  = (2 `pow` n) - 1
+\end{code}
+
+Integral version of {\tt (**)}
+
+\begin{code}
+pow :: (Integral a, Integral b, Integral c) => a -> b -> c
+pow b e = floor $ fromIntegral b ** fromIntegral e
+\end{code}
+
+Detect whether a float is {\tt $-$NaN}
+
+\begin{code}
+isNegativeNaN :: RealFloat a => a -> Bool
+isNegativeNaN x = isNaN x && (floor x > 0)
+\end{code}
diff --git a/src/runtime/haskell/PGF.hs b/src/runtime/haskell/PGF.hs
--- a/src/runtime/haskell/PGF.hs
+++ b/src/runtime/haskell/PGF.hs
@@ -1,7 +1,7 @@
 -------------------------------------------------
 -- |
 -- Module      : PGF
--- Maintainer  : Aarne Ranta
+-- Maintainer  : Krasimir Angelov
 -- Stability   : stable
 -- Portability : portable
 --
@@ -30,6 +30,7 @@
            Type, Hypo,
            showType, readType,
            mkType, mkHypo, mkDepHypo, mkImplHypo,
+           unType,
            categories, startCat,
 
            -- * Functions
@@ -42,20 +43,24 @@
            -- ** Expr
            Expr,
            showExpr, readExpr,
+           mkAbs,    unAbs,
            mkApp,    unApp,
            mkStr,    unStr,
            mkInt,    unInt,
            mkDouble, unDouble,
-           mkMeta,   isMeta,
+           mkMeta,   unMeta,
 
            -- * Operations
            -- ** Linearization
-           linearize, linearizeAllLang, linearizeAll,
+           linearize, linearizeAllLang, linearizeAll, bracketedLinearize, tabularLinearizes,
            groupResults, -- lins of trees by language, removing duplicates
            showPrintName,
+           
+           BracketedString(..), FId, LIndex, Token,
+           Forest.showBracketedString,
 
            -- ** Parsing
-           parse, parseWithRecovery, parseAllLang, parseAll,
+           parse, parseAllLang, parseAll, parse_, parseWithRecovery,
 
            -- ** Evaluation
            PGF.compute, paraphrase,
@@ -73,14 +78,33 @@
            checkType, checkExpr, inferExpr,
            TcError(..), ppTcError,
 
-           -- ** Word Completion (Incremental Parsing)
-           complete,
+           -- ** Low level parsing API
            Parse.ParseState,
-           Parse.initState, Parse.nextState, Parse.getCompletions, Parse.recoveryStates, Parse.extractTrees,
+           Parse.initState, Parse.nextState, Parse.getCompletions, Parse.recoveryStates, 
+           Parse.ParseInput(..),  Parse.simpleParseInput, Parse.mkParseInput,
+           Parse.ParseOutput(..), Parse.getParseOutput,
 
            -- ** Generation
-           generateRandom, generateAll, generateAllDepth,
-           generateRandomFrom, -- from initial expression, possibly weighed
+           -- | The PGF interpreter allows automatic generation of
+           -- abstract syntax expressions of a given type. Since the
+           -- type system of GF allows dependent types, the generation
+           -- is in general undecidable. In fact, the set of all type
+           -- signatures in the grammar is equivalent to a Turing-complete language (Prolog).
+           --
+           -- There are several generation methods which mainly differ in:
+           --
+           --     * whether the expressions are sequentially or randomly generated?
+           --
+           --     * are they generated from a template? The template is an expression
+           --     containing meta variables which the generator will fill in.
+           --
+           --     * is there a limit of the depth of the expression?
+           --     The depth can be used to limit the search space, which 
+           --     in some cases is the only way to make the search decidable.
+           generateAll,         generateAllDepth,
+           generateFrom,        generateFromDepth,
+           generateRandom,      generateRandomDepth,
+           generateRandomFrom,  generateRandomFromDepth,
 
            -- ** Morphological Analysis
            Lemma, Analysis, Morpho,
@@ -90,8 +114,17 @@
            graphvizAbstractTree,
            graphvizParseTree,
            graphvizDependencyTree,
+           graphvizBracketedString,
            graphvizAlignment,
-
+           gizaAlignment,
+ 
+           -- * Probabilities
+           Probabilities,
+           mkProbabilities,
+           defaultProbabilities,
+           showProbabilities,
+           readProbabilitiesFromFile,
+           
            -- * Browsing
            browse
           ) where
@@ -102,11 +135,13 @@
 import PGF.TypeCheck
 import PGF.Paraphrase
 import PGF.VisualizeTree
+import PGF.Probabilistic
 import PGF.Macros
 import PGF.Expr (Tree)
 import PGF.Morphology
 import PGF.Data
 import PGF.Binary
+import qualified PGF.Forest as Forest
 import qualified PGF.Parse as Parse
 
 import GF.Data.Utilities (replace)
@@ -131,34 +166,15 @@
 -- > $ gf -make <grammar file name>
 readPGF  :: FilePath -> IO PGF
 
--- | Linearizes given expression as string in the language
-linearize    :: PGF -> Language -> Tree -> String
-
 -- | Tries to parse the given string in the specified language
--- and to produce abstract syntax expression. An empty
--- list is returned if the parsing is not successful. The list may also
--- contain more than one element if the grammar is ambiguous.
--- Throws an exception if the given language cannot be used
--- for parsing, see 'canParse'.
+-- and to produce abstract syntax expression.
 parse        :: PGF -> Language -> Type -> String -> [Tree]
 
-parseWithRecovery :: PGF -> Language -> Type -> [Type] -> String -> [Tree]
-
--- | The same as 'linearizeAllLang' but does not return
--- the language.
-linearizeAll     :: PGF -> Tree -> [String]
-
--- | Linearizes given expression as string in all languages
--- available in the grammar.
-linearizeAllLang :: PGF -> Tree -> [(Language,String)]
-
 -- | The same as 'parseAllLang' but does not return
 -- the language.
 parseAll     :: PGF -> Type -> String -> [[Tree]]
 
 -- | Tries to parse the given string with all available languages.
--- Languages which cannot be used for parsing (see 'canParse')
--- are ignored.
 -- The returned list contains pairs of language
 -- and list of abstract syntax expressions 
 -- (this is a list, since grammars can be ambiguous). 
@@ -166,19 +182,11 @@
 -- for which at least one parsing is possible are listed.
 parseAllLang :: PGF -> Type -> String -> [(Language,[Tree])]
 
--- | The same as 'generateAllDepth' but does not limit
--- the depth in the generation, and doesn't give an initial expression.
-generateAll      :: PGF -> Type -> [Expr]
-
--- | Generates an infinite list of random abstract syntax expressions.
--- This is usefull for tree bank generation which after that can be used
--- for grammar testing.
-generateRandom   :: PGF -> Type -> IO [Expr]
+-- | The same as 'parse' but returns more detailed information
+parse_       :: PGF -> Language -> Type -> Maybe Int -> String -> (Parse.ParseOutput,BracketedString)
 
--- | Generates an exhaustive possibly infinite list of
--- abstract syntax expressions. A depth can be specified
--- to limit the search space.
-generateAllDepth :: Maybe Expr -> PGF -> Type -> Maybe Int -> [Expr]
+-- | This is an experimental function. Use it on your own risk
+parseWithRecovery :: PGF -> Language -> Type -> [Type] -> Maybe Int -> String -> (Parse.ParseOutput,BracketedString)
 
 -- | List of all languages available in the given grammar.
 languages    :: PGF -> [Language]
@@ -212,33 +220,29 @@
 -- | The type of a given function
 functionType :: PGF -> CId -> Maybe Type
 
--- | Complete the last word in the given string. If the input
--- is empty or ends in whitespace, the last word is considred
--- to be the empty string. This means that the completions
--- will be all possible next words.
-complete :: PGF -> Language -> Type -> String 
-         -> [String] -- ^ Possible completions, 
-                     -- including the given input.
 
-
 ---------------------------------------------------
 -- Implementation
 ---------------------------------------------------
 
 readPGF f = decodeFile f
 
-linearize pgf lang = concat . take 1 . PGF.Linearize.linearizes pgf lang
+parse pgf lang typ s =
+  case parse_ pgf lang typ (Just 4) s of
+    (Parse.ParseOk ts,_) -> ts
+    _                    -> []
 
-parse pgf lang typ s = 
+parseAll mgr typ = map snd . parseAllLang mgr typ
+
+parseAllLang mgr typ s = 
+  [(lang,ts) | lang <- languages mgr, (Parse.ParseOk ts,_) <- [parse_ mgr lang typ (Just 4) s]]
+
+parse_ pgf lang typ dp s = 
   case Map.lookup lang (concretes pgf) of
-    Just cnc -> Parse.parse pgf lang typ (words s)
+    Just cnc -> Parse.parse pgf lang typ dp (words s)
     Nothing  -> error ("Unknown language: " ++ showCId lang)
 
-parseWithRecovery pgf lang typ open_typs s = Parse.parseWithRecovery pgf lang typ open_typs (words s)
-
-linearizeAll mgr = map snd . linearizeAllLang mgr
-linearizeAllLang mgr t = 
-  [(lang,PGF.linearize mgr lang t) | lang <- languages mgr]
+parseWithRecovery pgf lang typ open_typs dp s = Parse.parseWithRecovery pgf lang typ open_typs dp (words s)
 
 groupResults :: [[(Language,String)]] -> [(Language,[String])]
 groupResults = Map.toList . foldr more Map.empty . start . concat
@@ -247,18 +251,6 @@
   more (l,s) = 
     Map.insertWith (\ [x] xs -> if elem x xs then xs else (x : xs)) l s
 
-parseAll mgr typ = map snd . parseAllLang mgr typ
-
-parseAllLang mgr typ s = 
-  [(lang,ts) | lang <- languages mgr, let ts = parse mgr lang typ s, not (null ts)]
-
-generateRandom pgf cat = do
-  gen <- newStdGen
-  return $ genRandom gen pgf cat
-
-generateAll pgf cat = generate pgf cat Nothing
-generateAllDepth mex pgf cat = generateAllFrom mex pgf cat
-
 abstractName pgf = absname pgf
 
 languages pgf = Map.keys (concretes pgf)
@@ -276,28 +268,8 @@
 
 functionType pgf fun =
   case Map.lookup fun (funs (abstract pgf)) of
-    Just (ty,_,_) -> Just ty
-    Nothing       -> Nothing
-
-complete pgf from typ input = 
-         let (ws,prefix) = tokensAndPrefix input
-             state0 = Parse.initState pgf from typ
-         in case loop state0 ws of
-              Nothing -> []
-              Just state -> 
-                (if null prefix && not (null (Parse.extractTrees state typ)) then [unwords ws ++ " "] else [])
-                ++ [unwords (ws++[c]) ++ " " | c <- Map.keys (Parse.getCompletions state prefix)]
-  where
-    tokensAndPrefix :: String -> ([String],String)
-    tokensAndPrefix s | not (null s) && isSpace (last s) = (ws, "")
-                      | null ws = ([],"")
-                      | otherwise = (init ws, last ws)
-        where ws = words s
-
-    loop ps []     = Just ps
-    loop ps (t:ts) = case Parse.nextState ps t of
-                       Left  es -> Nothing
-                       Right ps -> loop ps ts
+    Just (ty,_,_,_) -> Just ty
+    Nothing         -> Nothing
 
 -- | Converts an expression to normal form
 compute :: PGF -> Expr -> Expr
@@ -307,20 +279,20 @@
 browse pgf id = fmap (\def -> (def,producers,consumers)) definition
   where
     definition = case Map.lookup id (funs (abstract pgf)) of
-                   Just (ty,_,Just eqs) -> Just $ render (text "fun" <+> ppCId id <+> colon <+> ppType 0 [] ty $$
-                                                          if null eqs
-                                                            then empty
-                                                            else text "def" <+> vcat [let scope = foldl pattScope [] patts
-                                                                                          ds    = map (ppPatt 9 scope) patts
-                                                                                      in ppCId id <+> hsep ds <+> char '=' <+> ppExpr 0 scope res | Equ patts res <- eqs])
-                   Just (ty,_,Nothing ) -> Just $ render (text "data" <+> ppCId id <+> colon <+> ppType 0 [] ty)
+                   Just (ty,_,Just eqs,_) -> Just $ render (text "fun" <+> ppCId id <+> colon <+> ppType 0 [] ty $$
+                                                            if null eqs
+                                                              then empty
+                                                              else text "def" <+> vcat [let scope = foldl pattScope [] patts
+                                                                                            ds    = map (ppPatt 9 scope) patts
+                                                                                        in ppCId id <+> hsep ds <+> char '=' <+> ppExpr 0 scope res | Equ patts res <- eqs])
+                   Just (ty,_,Nothing, _) -> Just $ render (text "data" <+> ppCId id <+> colon <+> ppType 0 [] ty)
                    Nothing   -> case Map.lookup id (cats (abstract pgf)) of
                                   Just (hyps,_) -> Just $ render (text "cat" <+> ppCId id <+> hsep (snd (mapAccumL (ppHypo 4) [] hyps)))
                                   Nothing       -> Nothing
 
     (producers,consumers) = Map.foldWithKey accum ([],[]) (funs (abstract pgf))
       where
-        accum f (ty,_,_) (plist,clist) = 
+        accum f (ty,_,_,_) (plist,clist) = 
           let !plist' = if id `elem` ps then f : plist else plist
               !clist' = if id `elem` cs then f : clist else clist
           in (plist',clist')
diff --git a/src/runtime/haskell/PGF/Binary.hs b/src/runtime/haskell/PGF/Binary.hs
--- a/src/runtime/haskell/PGF/Binary.hs
+++ b/src/runtime/haskell/PGF/Binary.hs
@@ -2,7 +2,7 @@
 
 import PGF.CId
 import PGF.Data
-import PGF.Macros
+import PGF.Optimize
 import Data.Binary
 import Data.Binary.Put
 import Data.Binary.Get
@@ -51,6 +51,7 @@
                put (printnames cnc)
                putArray2 (sequences cnc)
                putArray (cncfuns cnc)
+               put (lindefs cnc)
                put (productions cnc)
                put (cnccats cnc)
                put (totalCats cnc)
@@ -58,13 +59,16 @@
            printnames  <- get
            sequences   <- getArray2
            cncfuns     <- getArray
+           lindefs     <- get
            productions <- get
            cnccats     <- get
            totalCats   <- get
            return (Concr{ cflags=cflags, printnames=printnames
-                        , sequences=sequences, cncfuns=cncfuns, productions=productions
+                        , sequences=sequences, cncfuns=cncfuns, lindefs=lindefs
+                        , productions=productions
                         , pproductions = IntMap.empty
                         , lproductions = Map.empty
+                        , lexicon = IntMap.empty
                         , cnccats=cnccats, totalCats=totalCats
                         })
 
@@ -72,34 +76,6 @@
   put (Alt v x) = put (v,x)
   get = liftM2 Alt get get
 
-instance Binary Term where
-  put (R  es) = putWord8 0 >> put es
-  put (S  es) = putWord8 1 >> put es
-  put (FV es) = putWord8 2 >> put es
-  put (P e v) = putWord8 3 >> put (e,v)
-  put (W e v) = putWord8 4 >> put (e,v)
-  put (C i  ) = putWord8 5 >> put i
-  put (TM i ) = putWord8 6 >> put i
-  put (F f)   = putWord8 7 >> put f
-  put (V i)   = putWord8 8 >> put i
-  put (K (KS s))    = putWord8 9  >> put s
-  put (K (KP d vs)) = putWord8 10 >> put (d,vs)
-
-  get = do tag <- getWord8
-           case tag of
-             0 -> liftM  R  get
-             1 -> liftM  S  get
-             2 -> liftM  FV get
-             3 -> liftM2 P  get get
-             4 -> liftM2 W  get get
-             5 -> liftM  C  get
-             6 -> liftM  TM get
-             7 -> liftM  F  get
-             8 -> liftM  V  get
-             9  -> liftM  (K . KS) get
-             10 -> liftM2 (\d vs -> K (KP d vs)) get get
-             _  -> decodingError
-
 instance Binary Expr where
   put (EAbs b x exp)  = putWord8 0 >> put (b,x,exp)
   put (EApp e1 e2)    = putWord8 1 >> put (e1,e2)
@@ -169,16 +145,22 @@
 instance Binary Symbol where
   put (SymCat n l)       = putWord8 0 >> put (n,l)
   put (SymLit n l)       = putWord8 1 >> put (n,l)
-  put (SymKS ts)         = putWord8 2 >> put ts
-  put (SymKP d vs)       = putWord8 3 >> put (d,vs)
+  put (SymVar n l)       = putWord8 2 >> put (n,l)
+  put (SymKS ts)         = putWord8 3 >> put ts
+  put (SymKP d vs)       = putWord8 4 >> put (d,vs)
   get = do tag <- getWord8
            case tag of
              0 -> liftM2 SymCat get get
              1 -> liftM2 SymLit get get
-             2 -> liftM  SymKS  get
-             3 -> liftM2 (\d vs -> SymKP d vs) get get
+             2 -> liftM2 SymVar get get
+             3 -> liftM  SymKS  get
+             4 -> liftM2 (\d vs -> SymKP d vs) get get
              _ -> decodingError
 
+instance Binary PArg where
+  put (PArg hypos fid) = put (map snd hypos,fid)
+  get = get >>= \(hypos,fid) -> return (PArg (zip (repeat fidVar) hypos) fid)
+
 instance Binary Production where
   put (PApply ruleid args) = putWord8 0 >> put (ruleid,args)
   put (PCoerce fcat)       = putWord8 1 >> put fcat
@@ -195,8 +177,8 @@
   get = do tag <- getWord8
            case tag of
              0 -> liftM  LStr get
-             1 -> liftM  LFlt get
-             2 -> liftM  LInt get
+             1 -> liftM  LInt get
+             2 -> liftM  LFlt get
              _ -> decodingError
 
 
diff --git a/src/runtime/haskell/PGF/Check.hs b/src/runtime/haskell/PGF/Check.hs
deleted file mode 100644
--- a/src/runtime/haskell/PGF/Check.hs
+++ /dev/null
@@ -1,181 +0,0 @@
-module PGF.Check (checkPGF,checkLin) where
-
-import PGF.CId
-import PGF.Data
-import PGF.Macros
-import GF.Data.ErrM
-
-import qualified Data.Map as Map
-import Control.Monad
-import Data.Maybe(fromMaybe)
-import Debug.Trace
-
-checkPGF :: PGF -> Err (PGF,Bool)
-checkPGF pgf = return (pgf,True) {- do
-  (cs,bs) <- mapM (checkConcrete pgf) 
-               (Map.assocs (concretes pgf)) >>= return . unzip
-  return (pgf {concretes = Map.fromAscList cs}, and bs)
--}
-
--- errors are non-fatal; replace with 'fail' to change this
-msg s = trace s (return ())
-
-andMapM :: Monad m => (a -> m Bool) -> [a] -> m Bool
-andMapM f xs = mapM f xs >>= return . and
-
-labelBoolErr :: String -> Err (x,Bool) -> Err (x,Bool)
-labelBoolErr ms iob = do
-  (x,b) <- iob
-  if b then return (x,b) else (msg ms >> return (x,b))
-
-{-
-checkConcrete :: PGF -> (CId,Concr) -> Err ((CId,Concr),Bool)
-checkConcrete pgf (lang,cnc) = 
-  labelBoolErr ("happened in language " ++ showCId lang) $ do
-    (rs,bs) <- mapM checkl (Map.assocs (lins cnc)) >>= return . unzip
-    return ((lang,cnc{lins = Map.fromAscList rs}),and bs)
- where
-   checkl = checkLin pgf lang
--}
-
-type PGFSig = (Map.Map CId (Type,Int,Maybe [Equation]),Map.Map CId Term,Map.Map CId Term)
-
-checkLin :: PGFSig -> CId -> (CId,Term) -> Err ((CId,Term),Bool)
-checkLin pgf lang (f,t) = 
-  labelBoolErr ("happened in function " ++ showCId f) $ do
-    (t',b) <- checkTerm (lintype pgf lang f) t --- $ inline pgf lang t
-    return ((f,t'),b)
-
-inferTerm :: [CType] -> Term -> Err (Term,CType)
-inferTerm args trm = case trm of
-  K _ -> returnt str
-  C i -> returnt $ ints i
-  V i -> do
-    testErr (i < length args) ("too large index " ++ show i) 
-    returnt $ args !! i
-  S ts -> do
-    (ts',tys) <- mapM infer ts >>= return . unzip
-    let tys' = filter (/=str) tys
-    testErr (null tys')
-      ("expected Str in " ++ show trm ++ " not " ++ unwords (map show tys')) 
-    return (S ts',str)
-  R ts -> do
-    (ts',tys) <- mapM infer ts >>= return . unzip
-    return $ (R ts',tuple tys)
-  P t u -> do
-    (t',tt) <- infer t
-    (u',tu) <- infer u
-    case tt of
-      R tys -> case tu of
-        R vs -> infer $ foldl P t' [P u' (C i) | i <- [0 .. length vs - 1]]
-        --- R [v] -> infer $ P t v
-        --- R (v:vs) -> infer $ P (head tys) (R vs)
-        
-        C i -> do
-          testErr (i < length tys) 
-            ("required more than " ++ show i ++ " fields in " ++ show (R tys)) 
-          return (P t' u', tys !! i) -- record: index must be known
-        _ -> do
-          let typ = head tys
-          testErr (all (==typ) tys) ("different types in table " ++ show trm) 
-          return (P t' u', typ)      -- table: types must be same
-      _ -> Bad $ "projection from " ++ show t ++ " : " ++ show tt
-  FV [] -> returnt tm0 ----
-  FV (t:ts) -> do
-    (t',ty) <- infer t
-    (ts',tys) <- mapM infer ts >>= return . unzip
-    testErr (all (eqType True ty) tys) ("different types in variants " ++ show trm)
-    return (FV (t':ts'),ty)
-  W s r -> infer r
-  _ -> Bad ("no type inference for " ++ show trm)
- where
-   returnt ty = return (trm,ty)
-   infer = inferTerm args
-
-checkTerm :: LinType -> Term -> Err (Term,Bool)
-checkTerm (args,val) trm = case inferTerm args trm of
-  Ok (t,ty) -> if eqType False ty val 
-             then return (t,True) 
-             else do
-    msg ("term: " ++ show trm ++ 
-               "\nexpected type: " ++ show val ++
-               "\ninferred type: " ++ show ty)
-    return (t,False)
-  Bad s -> do
-    msg s
-    return (trm,False)
-
--- symmetry in (Ints m == Ints n) is all we can use in variants
-
-eqType :: Bool -> CType -> CType -> Bool
-eqType symm inf exp = case (inf,exp) of
-  (C k, C n)  -> if symm then True else k <= n -- only run-time corr.
-  (R rs,R ts) -> length rs == length ts && and [eqType symm r t | (r,t) <- zip rs ts]
-  (TM _,  _)  -> True ---- for variants [] ; not safe
-  _ -> inf == exp
-
--- should be in a generic module, but not in the run-time DataGFCC
-
-type CType = Term
-type LinType = ([CType],CType)
-
-tuple :: [CType] -> CType
-tuple = R
-
-ints :: Int -> CType
-ints = C
-
-str :: CType
-str = S []
-
-lintype :: PGFSig -> CId -> CId -> LinType
-lintype pgf lang fun = case typeSkeleton (lookFun pgf fun) of
-  (cs,c) -> (map vlinc cs, linc c) ---- HOAS
- where 
-   linc = lookLincat pgf lang
-   vlinc (0,c) = linc c
-   vlinc (i,c) = case linc c of
-     R ts -> R (ts ++ replicate i str)
-
-inline :: PGFSig -> CId -> Term -> Term
-inline pgf lang t = case t of
-  F c -> inl $ look c
-  _ -> composSafeOp inl t
- where
-  inl  = inline pgf lang
-  look = lookLin pgf lang
-
-composOp :: Monad m => (Term -> m Term) -> Term -> m Term
-composOp f trm = case trm of
-  R  ts -> liftM R $ mapM f ts
-  S  ts -> liftM S $ mapM f ts
-  FV ts -> liftM FV $ mapM f ts
-  P t u -> liftM2 P (f t) (f u)
-  W s t -> liftM (W s) $ f t
-  _ -> return trm
-
-composSafeOp :: (Term -> Term) -> Term -> Term
-composSafeOp f = maybe undefined id . composOp (return . f)
-
--- from GF.Data.Oper
-
-maybeErr :: String -> Maybe a -> Err a
-maybeErr s = maybe (Bad s) Ok
-
-testErr :: Bool -> String -> Err ()
-testErr cond msg = if cond then return () else Bad msg
-
-errVal :: a -> Err a -> a
-errVal a = err (const a) id
-
-errIn :: String -> Err a -> Err a
-errIn msg = err (\s -> Bad (s ++ "\nOCCURRED IN\n" ++ msg)) return
-
-err :: (String -> b) -> (a -> b) -> Err a -> b 
-err d f e = case e of
-  Ok a -> f a
-  Bad s -> d s
-
-lookFun    (abs,lin,lincats)   f = (\(a,b,c) -> a) $ fromMaybe (error "No abs") (Map.lookup f abs)
-lookLincat (abs,lin,lincats) _ c = fromMaybe (error "No lincat") (Map.lookup c lincats)
-lookLin    (abs,lin,lincats) _ f = fromMaybe (error "No lin") (Map.lookup f lin)
diff --git a/src/runtime/haskell/PGF/Data.hs b/src/runtime/haskell/PGF/Data.hs
--- a/src/runtime/haskell/PGF/Data.hs
+++ b/src/runtime/haskell/PGF/Data.hs
@@ -7,6 +7,8 @@
 import qualified Data.Map as Map
 import qualified Data.Set as Set
 import qualified Data.IntMap as IntMap
+import qualified Data.IntSet as IntSet
+import qualified GF.Data.TrieMap as TMap
 import Data.Array.IArray
 import Data.Array.Unboxed
 import Data.List
@@ -25,8 +27,8 @@
 
 data Abstr = Abstr {
   aflags  :: Map.Map CId Literal,                     -- ^ value of a flag
-  funs    :: Map.Map CId (Type,Int,Maybe [Equation]), -- ^ type, arrity and definition of function
-  cats    :: Map.Map CId ([Hypo],[CId])               -- ^ 1. context of a category
+  funs    :: Map.Map CId (Type,Int,Maybe [Equation],Double), -- ^ type, arrity and definition of function + probability
+  cats    :: Map.Map CId ([Hypo],[(Double, CId)])     -- ^ 1. context of a category
                                                       -- ^ 2. functions of a category. The order in the list is important,
                                                       -- this is the order in which the type singatures are given in the source.
                                                       -- The termination of the exhaustive generation might depend on this.
@@ -36,28 +38,33 @@
   cflags       :: Map.Map CId Literal,                               -- value of a flag
   printnames   :: Map.Map CId String,                                -- printname of a cat or a fun
   cncfuns      :: Array FunId CncFun,
+  lindefs      :: IntMap.IntMap [FunId],
   sequences    :: Array SeqId Sequence,
   productions  :: IntMap.IntMap (Set.Set Production),                -- the original productions loaded from the PGF file
   pproductions :: IntMap.IntMap (Set.Set Production),                -- productions needed for parsing
   lproductions :: Map.Map CId (IntMap.IntMap (Set.Set Production)),  -- productions needed for linearization
   cnccats      :: Map.Map CId CncCat,
+  lexicon      :: IntMap.IntMap (IntMap.IntMap (TMap.TrieMap Token IntSet.IntSet)),
   totalCats    :: {-# UNPACK #-} !FId
   }
 
+type Token  = String
 type FId    = Int
 type LIndex = Int
 type DotPos = Int
 data Symbol
   = SymCat {-# UNPACK #-} !Int {-# UNPACK #-} !LIndex
   | SymLit {-# UNPACK #-} !Int {-# UNPACK #-} !LIndex
-  | SymKS [String]
-  | SymKP [String] [Alternative]
+  | SymVar {-# UNPACK #-} !Int {-# UNPACK #-} !Int
+  | SymKS [Token]
+  | SymKP [Token] [Alternative]
   deriving (Eq,Ord,Show)
 data Production
-  = PApply  {-# UNPACK #-} !FunId [FId]
+  = PApply  {-# UNPACK #-} !FunId [PArg]
   | PCoerce {-# UNPACK #-} !FId
-  | PConst  Expr [String]
+  | PConst  CId Expr [Token]
   deriving (Eq,Ord,Show)
+data PArg = PArg [(FId,FId)] {-# UNPACK #-} !FId deriving (Eq,Ord,Show)
 data CncCat = CncCat {-# UNPACK #-} !FId {-# UNPACK #-} !FId {-# UNPACK #-} !(Array LIndex String)
 data CncFun = CncFun CId {-# UNPACK #-} !(UArray LIndex SeqId) deriving (Eq,Ord,Show)
 type Sequence = Array DotPos Symbol
@@ -65,25 +72,7 @@
 type SeqId = Int
 
 data Alternative =
-   Alt [String] [String]
-  deriving (Eq,Ord,Show)
-
-data Term =
-   R [Term]
- | P Term Term
- | S [Term]
- | K Tokn
- | V Int
- | C Int
- | F CId
- | FV [Term]
- | W String Term
- | TM String
-  deriving (Eq,Ord,Show)
-
-data Tokn =
-   KS String
- | KP [String] [Alternative]
+   Alt [Token] [String]
   deriving (Eq,Ord,Show)
 
 
@@ -120,11 +109,11 @@
 showLanguage :: Language -> String
 showLanguage = showCId
 
-fcatString, fcatInt, fcatFloat, fcatVar :: Int
-fcatString = (-1)
-fcatInt    = (-2)
-fcatFloat  = (-3)
-fcatVar    = (-4)
+fidString, fidInt, fidFloat, fidVar :: FId
+fidString = (-1)
+fidInt    = (-2)
+fidFloat  = (-3)
+fidVar    = (-4)
 
-isLiteralFCat :: FId -> Bool
-isLiteralFCat = (`elem` [fcatString, fcatInt, fcatFloat, fcatVar])
+isPredefFId :: FId -> Bool
+isPredefFId = (`elem` [fidString, fidInt, fidFloat, fidVar])
diff --git a/src/runtime/haskell/PGF/Expr.hs b/src/runtime/haskell/PGF/Expr.hs
--- a/src/runtime/haskell/PGF/Expr.hs
+++ b/src/runtime/haskell/PGF/Expr.hs
@@ -1,11 +1,12 @@
 module PGF.Expr(Tree, BindType(..), Expr(..), Literal(..), Patt(..), Equation(..),
                 readExpr, showExpr, pExpr, pBinds, ppExpr, ppPatt, pattScope,
 
+                mkAbs,    unAbs,
                 mkApp,    unApp,
                 mkStr,    unStr,
                 mkInt,    unInt,
                 mkDouble, unDouble,
-                mkMeta,   isMeta,
+                mkMeta,   unMeta,
 
                 normalForm,
 
@@ -96,6 +97,15 @@
 instance Read Expr where
     readsPrec _ = RP.readP_to_S pExpr
 
+mkAbs :: BindType -> CId -> Expr -> Expr
+mkAbs = EAbs
+
+unAbs :: Expr -> Maybe (BindType, CId, Expr)
+unAbs (EAbs bt x e) = Just (bt,x,e)
+unAbs (ETyped e ty) = unAbs e
+unAbs (EImplArg e)  = unAbs e
+unAbs _             = Nothing
+
 -- | Constructs an expression by applying a function to a list of expressions
 mkApp :: CId -> [Expr] -> Expr
 mkApp f es = foldl EApp (EFun f) es
@@ -106,6 +116,8 @@
   where
     extract es (EFun f)     = Just (f,es)
     extract es (EApp e1 e2) = extract (e2:es) e1
+    extract es (ETyped e ty)= extract es e
+    extract es (EImplArg e) = extract es e
     extract es _            = Nothing
 
 -- | Constructs an expression from string literal
@@ -115,6 +127,8 @@
 -- | Decomposes an expression into string literal
 unStr :: Expr -> Maybe String
 unStr (ELit (LStr s)) = Just s
+unStr (ETyped e ty)   = unStr e
+unStr (EImplArg e)    = unStr e
 unStr _               = Nothing
 
 -- | Constructs an expression from integer literal
@@ -124,6 +138,8 @@
 -- | Decomposes an expression into integer literal
 unInt :: Expr -> Maybe Int
 unInt (ELit (LInt i)) = Just i
+unInt (ETyped e ty)   = unInt e
+unInt (EImplArg e)    = unInt e
 unInt _               = Nothing
 
 -- | Constructs an expression from real number literal
@@ -133,16 +149,20 @@
 -- | Decomposes an expression into real number literal
 unDouble :: Expr -> Maybe Double
 unDouble (ELit (LFlt f)) = Just f
+unDouble (ETyped e ty)   = unDouble e
+unDouble (EImplArg e)    = unDouble e
 unDouble _               = Nothing
 
 -- | Constructs an expression which is meta variable
-mkMeta :: Expr
-mkMeta = EMeta 0
+mkMeta :: Int -> Expr
+mkMeta i = EMeta i
 
 -- | Checks whether an expression is a meta variable
-isMeta :: Expr -> Bool
-isMeta (EMeta _) = True
-isMeta _         = False
+unMeta :: Expr -> Maybe Int
+unMeta (EMeta i)     = Just i
+unMeta (ETyped e ty) = unMeta e
+unMeta (EImplArg e)  = unMeta e
+unMeta _             = Nothing
 
 -----------------------------------------------------
 -- Parsing
@@ -285,7 +305,7 @@
 value2expr sig i (VSusp j env vs k)          = value2expr sig i (k (VGen j vs))
 value2expr sig i (VConst f vs)               = foldl EApp (EFun f)       (List.map (value2expr sig i) vs)
 value2expr sig i (VLit l)                    = ELit l
-value2expr sig i (VClosure env (EAbs b x e)) = EAbs b x (value2expr sig (i+1) (eval sig ((VGen i []):env) e))
+value2expr sig i (VClosure env (EAbs b x e)) = EAbs b (mkCId ('v':show i)) (value2expr sig (i+1) (eval sig ((VGen i []):env) e))
 value2expr sig i (VImplArg v)                = EImplArg (value2expr sig i v)
 
 data Value
@@ -298,22 +318,22 @@
   | VClosure Env Expr
   | VImplArg Value
 
-type Sig = ( Map.Map CId (Type,Int,Maybe [Equation])    -- type and def of a fun
-           , Int -> Maybe Expr                          -- lookup for metavariables
+type Sig = ( Map.Map CId (Type,Int,Maybe [Equation],Double)    -- type and def of a fun
+           , Int -> Maybe Expr                                 -- lookup for metavariables
            )
 type Env = [Value]
 
 eval :: Sig -> Env -> Expr -> Value
 eval sig env (EVar i)     = env !! i
 eval sig env (EFun f)     = case Map.lookup f (fst sig) of
-                              Just (_,a,meqs) -> case meqs of
-                                                   Just eqs -> if a == 0
-                                                                 then case eqs of
-                                                                        Equ [] e : _ -> eval sig [] e
-                                                                        _            -> VConst f []
-                                                                 else VApp f []
-                                                   Nothing  -> VApp f []
-                              Nothing        -> error ("unknown function "++showCId f)
+                              Just (_,a,meqs,_) -> case meqs of
+                                                     Just eqs -> if a == 0
+                                                                   then case eqs of
+                                                                          Equ [] e : _ -> eval sig [] e
+                                                                          _            -> VConst f []
+                                                                   else VApp f []
+                                                     Nothing  -> VApp f []
+                              Nothing           -> error ("unknown function "++showCId f)
 eval sig env (EApp e1 e2) = apply sig env e1 [eval sig env e2]
 eval sig env (EAbs b x e) = VClosure env (EAbs b x e)
 eval sig env (EMeta i)    = case snd sig i of
@@ -327,12 +347,12 @@
 apply sig env e            []     = eval sig env e
 apply sig env (EVar i)     vs     = applyValue sig (env !! i) vs
 apply sig env (EFun f)     vs     = case Map.lookup f (fst sig) of
-                                      Just (_,a,meqs) -> case meqs of
-                                                           Just eqs -> if a <= length vs
-                                                                         then match sig f eqs vs
-                                                                         else VApp f vs
-                                                           Nothing  -> VApp f vs
-                                      Nothing      -> error ("unknown function "++showCId f)
+                                      Just (_,a,meqs,_) -> case meqs of
+                                                             Just eqs -> if a <= length vs
+                                                                           then match sig f eqs vs
+                                                                           else VApp f vs
+                                                             Nothing  -> VApp f vs
+                                      Nothing           -> error ("unknown function "++showCId f)
 apply sig env (EApp e1 e2) vs     = apply sig env e1 (eval sig env e2 : vs)
 apply sig env (EAbs _ x e) (v:vs) = apply sig (v:env) e vs
 apply sig env (EMeta i)    vs     = case snd sig i of
diff --git a/src/runtime/haskell/PGF/Forest.hs b/src/runtime/haskell/PGF/Forest.hs
new file mode 100644
--- /dev/null
+++ b/src/runtime/haskell/PGF/Forest.hs
@@ -0,0 +1,210 @@
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-------------------------------------------------
+-- |
+-- Module      : PGF
+-- Maintainer  : Krasimir Angelov
+-- Stability   : stable
+-- Portability : portable
+--
+-- Forest is a compact representation of a set
+-- of parse trees. This let us to efficiently
+-- represent local ambiguities
+--
+-------------------------------------------------
+
+module PGF.Forest( Forest(..)
+                 , BracketedString, showBracketedString, lengthBracketedString
+                 , linearizeWithBrackets
+                 , getAbsTrees
+                 ) where
+
+import PGF.CId
+import PGF.Data
+import PGF.Macros
+import PGF.TypeCheck
+import PGF.Generate
+import Data.List
+import Data.Array.IArray
+import qualified Data.Set as Set
+import qualified Data.Map as Map
+import qualified Data.IntSet as IntSet
+import qualified Data.IntMap as IntMap
+import Control.Monad
+import Control.Monad.State
+import GF.Data.SortedList
+
+data Forest
+  = Forest
+      { abstr  :: Abstr
+      , concr  :: Concr
+      , forest :: IntMap.IntMap (Set.Set Production)
+      , root   :: [([Symbol],[PArg])]
+      }
+
+--------------------------------------------------------------------
+-- Rendering of bracketed strings
+--------------------------------------------------------------------
+
+linearizeWithBrackets :: Maybe Int -> Forest -> BracketedString
+linearizeWithBrackets dp = head . snd . untokn "" . bracketedTokn dp
+
+---------------------------------------------------------------
+-- Internally we have to do everything with Tokn first because
+-- we must handle the pre {...} construction.
+--
+
+bracketedTokn :: Maybe Int -> Forest -> BracketedTokn
+bracketedTokn dp f@(Forest abs cnc forest root) =
+  case [computeSeq isTrusted seq (map (render forest) args) | (seq,args) <- root] of
+    ([bs@(Bracket_ _ _ _ _ _)]:_) -> bs
+    (bss:_)                       -> Bracket_ wildCId 0 0 [] bss
+    []                            -> Bracket_ wildCId 0 0 [] []
+  where
+    isTrusted (_,fid) = IntSet.member fid trusted
+
+    trusted = foldl1 IntSet.intersection [IntSet.unions (map (trustedSpots IntSet.empty) args) | (_,args) <- root]
+
+    render forest arg@(PArg hypos fid) =
+      case IntMap.lookup fid forest >>= Set.maxView of
+        Just (p,set) -> let (ct,es,(_,lin)) = descend (if Set.null set then forest else IntMap.insert fid set forest) p
+                        in (ct,es,(map getVar hypos,lin))
+        Nothing      -> error ("wrong forest id " ++ show fid)
+      where
+        descend forest (PApply funid args) = let (CncFun fun lins) = cncfuns cnc ! funid
+                                                 cat = case isLindefCId fun of
+                                                         Just cat -> cat
+                                                         Nothing  -> case Map.lookup fun (funs abs) of
+                                                                       Just (DTyp _ cat _,_,_,_) -> cat
+                                                 largs  = map (render forest) args
+                                                 ltable = mkLinTable cnc isTrusted [] funid largs
+                                             in ((cat,fid),either (const []) id $ getAbsTrees f arg Nothing dp,ltable)
+        descend forest (PCoerce fid)       = render forest (PArg [] fid)
+        descend forest (PConst cat e ts)   = ((cat,fid),[e],([],listArray (0,0) [[LeafKS ts]]))
+
+    getVar (fid,_)
+      | fid == fidVar = wildCId
+      | otherwise     = x
+      where
+        (x:_) = [x | PConst _ (EFun x) _ <- maybe [] Set.toList (IntMap.lookup fid forest)]
+
+    trustedSpots parents (PArg _ fid)
+      | fid < totalCats cnc ||                  -- forest ids from the grammar correspond to metavariables
+        IntSet.member fid parents               -- this avoids loops in the grammar
+                  = IntSet.empty
+      | otherwise = IntSet.insert fid $
+                      case IntMap.lookup fid forest of
+                        Just prods -> foldl1 IntSet.intersection [descend prod | prod <- Set.toList prods]
+                        Nothing    -> IntSet.empty
+      where
+        parents' = IntSet.insert fid parents
+
+        descend (PApply funid args) = IntSet.unions (map (trustedSpots parents') args)
+        descend (PCoerce fid)       = trustedSpots parents' (PArg [] fid)
+        descend (PConst c e _)      = IntSet.empty
+
+isLindefCId id 
+  | take l s == lindef = Just (mkCId (drop l s))
+  | otherwise          = Nothing
+  where
+    s      = showCId id
+    lindef = "lindef "
+    l      = length lindef
+
+-- | This function extracts the list of all completed parse trees
+-- that spans the whole input consumed so far. The trees are also
+-- limited by the category specified, which is usually
+-- the same as the startup category.
+getAbsTrees :: Forest -> PArg -> Maybe Type -> Maybe Int -> Either [(FId,TcError)] [Expr]
+getAbsTrees (Forest abs cnc forest root) arg@(PArg _ fid) ty dp =
+  let (err,res) = runTcM abs (do e <- go Set.empty emptyScope (fmap (TTyp []) ty) arg
+                                 generateForForest (prove dp) e) emptyMetaStore fid
+  in if null res
+       then Left  (nub err)
+       else Right (nubsort [e | (_,_,e) <- res])
+  where
+    go rec_ scope_ mb_tty_ (PArg hypos fid)
+      | fid < totalCats cnc = case mb_tty of
+                                Just tty -> do i <- newMeta scope tty
+                                               return (mkAbs (EMeta i))
+                                Nothing  -> mzero
+      | Set.member fid rec_ = mzero
+      | otherwise           = do fid0 <- get
+                                 put fid
+                                 x <- foldForest (\funid args trees ->
+                                                  do let CncFun fn lins = cncfuns cnc ! funid
+                                                     case isLindefCId fn of
+                                                       Just _  -> do arg <- go (Set.insert fid rec_) scope mb_tty (head args)
+                                                                     return (mkAbs arg)
+                                                       Nothing -> do ty_fn <- lookupFunType fn
+                                                                     (e,tty0) <- foldM (\(e1,tty) arg -> goArg (Set.insert fid rec_) scope fid e1 arg tty)
+                                                                                       (EFun fn,TTyp [] ty_fn) args
+                                                                     case mb_tty of
+                                                                       Just tty -> do i <- newGuardedMeta e
+                                                                                      eqType scope (scopeSize scope) i tty tty0
+                                                                       Nothing  -> return ()
+                                                                     return (mkAbs e)
+                                                  `mplus`
+                                                  trees)
+                                            (\const _ trees -> do
+                                                  const <- case mb_tty of
+                                                             Just tty ->            tcExpr  scope const tty
+                                                             Nothing  -> fmap fst $ infExpr scope const
+                                                  return (mkAbs const)
+                                                  `mplus`
+                                                  trees)
+                                            mzero fid forest
+                                 put fid0
+                                 return x
+
+      where
+        (scope,mkAbs,mb_tty) = updateScope hypos scope_ id mb_tty_
+
+    goArg rec_ scope fid e1 arg (TTyp delta (DTyp ((bt,x,ty):hs) c es)) = do
+      e2' <- go rec_ scope (Just (TTyp delta ty)) arg
+      let e2 = case bt of
+                 Explicit -> e2'
+                 Implicit -> EImplArg e2'
+      if x == wildCId
+        then return (EApp e1 e2,TTyp delta (DTyp hs c es))
+        else do v2 <- eval (scopeEnv scope) e2'
+                return (EApp e1 e2,TTyp (v2:delta) (DTyp hs c es))
+
+    updateScope []              scope mkAbs mb_tty = (scope,mkAbs,mb_tty)
+    updateScope ((fid,_):hypos) scope mkAbs mb_tty =
+      case mb_tty of
+        Just (TTyp delta (DTyp ((bt,y,ty):hs) c es)) -> 
+           if y == wildCId
+             then updateScope hypos (addScopedVar x (TTyp delta ty) scope)
+                                    (mkAbs . EAbs bt x)
+                                    (Just (TTyp delta (DTyp hs c es)))
+             else updateScope hypos (addScopedVar x (TTyp delta ty) scope)
+                                    (mkAbs . EAbs bt x)
+                                    (Just (TTyp ((VGen (scopeSize scope) []):delta) (DTyp hs c es)))
+        Nothing  -> (scope,mkAbs,Nothing)
+      where
+        (x:_) | fid == fidVar = [wildCId]
+              | otherwise     = [x | PConst _ (EFun x) _ <- maybe [] Set.toList (IntMap.lookup fid forest)]
+
+foldForest :: (FunId -> [PArg] -> b -> b) -> (Expr -> [String] -> b -> b) -> b -> FId -> IntMap.IntMap (Set.Set Production) -> b
+foldForest f g b fcat forest =
+  case IntMap.lookup fcat forest of
+    Nothing  -> b
+    Just set -> Set.fold foldProd b set
+  where
+    foldProd (PCoerce fcat)        b = foldForest f g b fcat forest
+    foldProd (PApply funid args)   b = f funid args b
+    foldProd (PConst _ const toks) b = g const toks b
+
+
+------------------------------------------------------------------------------
+-- Selectors
+
+instance Selector FId where
+  splitSelector s = (s,s)
+  select cat scope dp = do
+    gens <- typeGenerators scope cat
+    TcM (\abstr k h -> iter k gens)
+    where
+      iter k []              ms s = id
+      iter k ((_,e,tty):fns) ms s = k (e,tty) ms s . iter k fns ms s
diff --git a/src/runtime/haskell/PGF/Generate.hs b/src/runtime/haskell/PGF/Generate.hs
--- a/src/runtime/haskell/PGF/Generate.hs
+++ b/src/runtime/haskell/PGF/Generate.hs
@@ -1,117 +1,176 @@
-module PGF.Generate where
+module PGF.Generate 
+         ( generateAll,         generateAllDepth
+         , generateFrom,        generateFromDepth
+         , generateRandom,      generateRandomDepth
+         , generateRandomFrom,  generateRandomFromDepth
+         , prove
+         ) where
 
 import PGF.CId
 import PGF.Data
+import PGF.Expr
 import PGF.Macros
 import PGF.TypeCheck
 import PGF.Probabilistic
 
-import qualified Data.Map as M
+import Data.Maybe (fromMaybe)
+import qualified Data.Map as Map
+import qualified Data.IntMap as IntMap
+import Control.Monad
+import Control.Monad.Identity
 import System.Random
 
--- generate all fillings of metavariables in an expr
-generateAllFrom :: Maybe Expr -> PGF -> Type -> Maybe Int -> [Expr]
-generateAllFrom mex pgf ty mi = 
-  maybe (gen ty) (generateForMetas False pgf gen) mex where
-    gen ty = generate pgf ty mi
 
--- generate random fillings of metavariables in an expr
-generateRandomFrom :: Maybe Expr -> 
-                      Maybe Probabilities -> StdGen -> PGF -> Type -> [Expr]
-generateRandomFrom mex ps rg pgf ty = 
-  maybe (gen ty) (generateForMetas True pgf gen) mex where
-    gen ty = genRandomProb ps rg pgf ty
+------------------------------------------------------------------------------
+-- The API
 
+-- | Generates an exhaustive possibly infinite list of
+-- abstract syntax expressions.
+generateAll :: PGF -> Type -> [Expr]
+generateAll pgf ty = generateAllDepth pgf ty Nothing
 
--- generic algorithm for filling holes in a generator
--- for random, should be breadth-first, since otherwise first metas always get the same
--- value when a list is generated
-generateForMetas :: Bool -> PGF -> (Type -> [Expr]) -> Expr -> [Expr]
-generateForMetas breadth pgf gen exp = case exp of
-  EApp f (EMeta _) -> [EApp g a | g <- gener f, a <- genArg g]
-  EApp f x | breadth -> [EApp g a | (g,a) <- zip (gener f) (gener x)]
-  EApp f x  -> [EApp g a | (g,a) <- zip (gener f) (gener x)]
-  _ -> if breadth then repeat exp else [exp]
- where
-  gener    = generateForMetas breadth pgf gen
-  genArg f = case inferExpr pgf f of
-    Right (_,DTyp ((_,_,ty):_) _ _) -> gen ty
-    _ -> []
+-- | A variant of 'generateAll' which also takes as argument
+-- the upper limit of the depth of the generated expression.
+generateAllDepth :: PGF -> Type -> Maybe Int -> [Expr]
+generateAllDepth pgf ty dp = generate () pgf ty dp
 
--- generate an infinite list of trees exhaustively
-generate :: PGF -> Type -> Maybe Int -> [Expr]
-generate pgf ty@(DTyp _ cat _) dp = filter (\e -> case checkExpr pgf e ty of 
-                                                    Left  _ -> False
-                                                    Right _ -> True             )
-                                           (concatMap (\i -> gener i cat) depths)
- where
-  gener 0 c = [EFun f | (f, ([],_)) <- fns c]
-  gener i c = [
-    tr | 
-      (f, (cs,_)) <- fns c,
-      let alts = map (gener (i-1)) cs,
-      ts <- combinations alts,
-      let tr = foldl EApp (EFun f) ts,
-      depth tr >= i
-    ]
-  fns c = [(f,catSkeleton ty) | (f,ty) <- functionsToCat pgf c]
-  depths = maybe [0 ..] (\d -> [0..d]) dp
+-- | Generates a list of abstract syntax expressions
+-- in a way similar to 'generateAll' but instead of
+-- generating all instances of a given type, this
+-- function uses a template. 
+generateFrom :: PGF -> Expr -> [Expr]
+generateFrom pgf ex = generateFromDepth pgf ex Nothing
 
--- generate an infinite list of trees randomly
-genRandom :: StdGen -> PGF -> Type -> [Expr]
-genRandom = genRandomProb Nothing
+-- | A variant of 'generateFrom' which also takes as argument
+-- the upper limit of the depth of the generated subexpressions.
+generateFromDepth :: PGF -> Expr -> Maybe Int -> [Expr]
+generateFromDepth pgf e dp = 
+  [e | (_,_,e) <- snd $ runTcM (abstract pgf)
+                               (generateForMetas (prove dp) e)
+                               emptyMetaStore ()]
 
-genRandomProb :: Maybe Probabilities -> StdGen -> PGF -> Type -> [Expr]
-genRandomProb mprobs gen pgf ty@(DTyp _ cat _) = 
-   filter (\e -> case checkExpr pgf e ty of 
-                   Left  _ -> False
-                   Right _ -> True             )
-          (genTrees (randomRs (0.0, 1.0 :: Double) gen) cat)
- where
-  timeout = 47 -- give up
+-- | Generates an infinite list of random abstract syntax expressions.
+-- This is usefull for tree bank generation which after that can be used
+-- for grammar testing.
+generateRandom :: RandomGen g => g -> PGF -> Type -> [Expr]
+generateRandom g pgf ty = generateRandomDepth g pgf ty Nothing
 
-  genTrees ds0 cat = 
-    let (ds,ds2) = splitAt (timeout+1) ds0  -- for time out, else ds
-        (t,k) = genTree ds cat      
-    in (if k>timeout then id else (t:))
-                (genTrees ds2 cat)          -- else (drop k ds)
+-- | A variant of 'generateRandom' which also takes as argument
+-- the upper limit of the depth of the generated expression.
+generateRandomDepth :: RandomGen g => g -> PGF -> Type -> Maybe Int -> [Expr]
+generateRandomDepth g pgf ty dp = restart g (\g -> generate (Identity g) pgf ty dp)
 
-  genTree rs = gett rs where
-    gett ds cid | cid == cidString = (ELit (LStr "foo"), 1)
-    gett ds cid | cid == cidInt    = (ELit (LInt 12345), 1)
-    gett ds cid | cid == cidFloat  = (ELit (LFlt 12345), 1)
-    gett [] _   = (ELit (LStr "TIMEOUT"), 1) ----
-    gett ds cat = case fns cat of
-      [] -> (EMeta 0,1)
-      fs -> let 
-          d:ds2    = ds
-          (f,args) = getf d fs
-          (ts,k)   = getts ds2 args
-        in (foldl EApp f ts, k+1)
-    getf d fs = case mprobs of
-      Just _ -> hitRegion d [(p,(f,args)) | (p,(f,args)) <- fs]
-      _      -> let 
-                  lg = length fs 
-                  (f,v) = snd (fs !! (floor (d * fromIntegral lg)))
-                in (EFun f,v)
-    getts ds cats = case cats of
-      c:cs -> let 
-          (t, k)  = gett ds c
-          (ts,ks) = getts (drop k ds) cs 
-        in (t:ts, k + ks)
-      _ -> ([],0)
+-- | Random generation based on template
+generateRandomFrom :: RandomGen g => g -> PGF -> Expr -> [Expr]
+generateRandomFrom g pgf e = generateRandomFromDepth g pgf e Nothing
 
-    fns :: CId -> [(Double,(CId,[CId]))]
-    fns cat = case mprobs of 
-      Just probs -> maybe [] id $ M.lookup cat (catProbs probs)
-      _ -> [(deflt,(f,(fst (catSkeleton ty)))) | 
-              let fs = functionsToCat pgf cat, 
-              (f,ty) <- fs,
-              let deflt = 1.0 / fromIntegral (length fs)]
+-- | Random generation based on template with a limitation in the depth.
+generateRandomFromDepth :: RandomGen g => g -> PGF -> Expr -> Maybe Int -> [Expr]
+generateRandomFromDepth g pgf e dp = 
+  restart g (\g -> [e | (_,ms,e) <- snd $ runTcM (abstract pgf)
+                                                 (generateForMetas (prove dp) e)
+                                                 emptyMetaStore (Identity g)])
 
-hitRegion :: Double -> [(Double,(CId,[a]))] -> (Expr,[a])
-hitRegion d vs = case vs of
-  (p1,(f,v1)):vs2 -> if d < p1 then (EFun f, v1) else hitRegion (d-p1) vs2
-  _ -> (EMeta 9,[])
 
+------------------------------------------------------------------------------
+-- The main generation algorithm
 
+generate :: Selector sel => sel -> PGF -> Type -> Maybe Int -> [Expr]
+generate sel pgf ty dp =
+  [e | (_,ms,e) <- snd $ runTcM (abstract pgf)
+                                (prove dp emptyScope (TTyp [] ty) >>= checkResolvedMetaStore emptyScope)
+                                emptyMetaStore sel]
+
+prove :: Selector sel => Maybe Int -> Scope -> TType -> TcM sel Expr
+prove dp scope (TTyp env1 (DTyp hypos1 cat es1)) = do
+  vs1 <- mapM (PGF.TypeCheck.eval env1) es1
+  let scope' = exScope scope env1 hypos1
+  (fe,TTyp env2 (DTyp hypos2 _ es2)) <- select cat scope' dp
+  case dp of
+    Just 0 | not (null hypos2) -> mzero
+    _                          -> return ()
+  (env2,args) <- mkEnv scope' env2 hypos2
+  vs2 <- mapM (PGF.TypeCheck.eval env2) es2
+  sequence_ [eqValue mzero suspend (scopeSize scope') v1 v2 | (v1,v2) <- zip vs1 vs2]
+  es <- mapM (descend scope') args
+  return (abs hypos1 (foldl EApp fe es))
+  where
+    suspend i c = do
+      mv <- getMeta i
+      case mv of
+        MBound e -> c e
+        MUnbound _ scope tty cs -> do e <- prove dp scope tty
+                                      setMeta i (MBound e)
+                                      sequence_ [c e | c <- (c:cs)]
+
+    abs []                e = e
+    abs ((bt,x,ty):hypos) e = EAbs bt x (abs hypos e)
+
+    exScope scope env []                = scope
+    exScope scope env ((bt,x,ty):hypos) = 
+       let env' | x /= wildCId = VGen (scopeSize scope) [] : env
+                | otherwise    = env
+       in exScope (addScopedVar x (TTyp env ty) scope) env' hypos
+
+    mkEnv scope env []                = return (env,[])
+    mkEnv scope env ((bt,x,ty):hypos) = do
+      (env,arg) <- if x /= wildCId
+                    then do i <- newMeta scope (TTyp env ty)
+                            return (VMeta i (scopeEnv scope) [] : env,Right (EMeta i))
+                    else return (env,Left (TTyp env ty))
+      (env,args) <- mkEnv scope env hypos
+      return (env,(bt,arg):args)
+
+    descend scope (bt,arg) = do
+      let dp' = fmap (flip (-) 1) dp
+      e <- case arg of
+             Right e  -> return e
+             Left tty -> prove dp' scope tty
+      e <- case bt of
+             Implicit -> return (EImplArg e)
+             Explicit -> return e
+      return e
+
+
+-- Helper function for random generation. After every
+-- success we must restart the search to find sufficiently different solution.
+restart :: RandomGen g => g -> (g -> [a]) -> [a]
+restart g f =
+  let (g1,g2) = split g
+  in case f g1 of
+       []     -> []
+       (x:xs) -> x : restart g2 f
+
+
+------------------------------------------------------------------------------
+-- Selectors
+
+instance Selector () where
+  splitSelector s = (s,s)
+  select cat scope dp = do
+    gens <- typeGenerators scope cat
+    TcM (\abstr k h -> iter k gens)
+    where
+      iter k []              ms s = id
+      iter k ((_,e,tty):fns) ms s = k (e,tty) ms s . iter k fns ms s
+
+
+instance RandomGen g => Selector (Identity g) where
+  splitSelector (Identity g) = let (g1,g2) = split g
+                               in (Identity g1, Identity g2)
+
+  select cat scope dp = do
+    gens <- typeGenerators scope cat
+    TcM (\abstr k h -> iter k 1.0 gens)
+    where
+      iter k p []   ms (Identity g) = id
+      iter k p gens ms (Identity g) = let (d,g')    = randomR (0.0,p) g
+                                          (g1,g2)   = split g'
+                                          (p',e_ty,gens') = hit d gens
+                                      in k e_ty ms (Identity g1) . iter k (p-p') gens' ms (Identity g2)
+
+      hit :: Double -> [(Double,Expr,TType)] -> (Double,(Expr,TType),[(Double,Expr,TType)])
+      hit d (gen@(p,e,ty):gens)
+        | d < p     = (p,(e,ty),gens)
+        | otherwise = let (p',e_ty',gens') = hit (d-p) gens
+                      in (p',e_ty',gen:gens')
diff --git a/src/runtime/haskell/PGF/Linearize.hs b/src/runtime/haskell/PGF/Linearize.hs
--- a/src/runtime/haskell/PGF/Linearize.hs
+++ b/src/runtime/haskell/PGF/Linearize.hs
@@ -1,8 +1,15 @@
-module PGF.Linearize(linearizes,markLinearizes,tabularLinearizes) where
+module PGF.Linearize
+            ( linearize
+            , linearizeAll
+            , linearizeAllLang
+            , bracketedLinearize
+            , tabularLinearizes
+            ) where
 
 import PGF.CId
 import PGF.Data
 import PGF.Macros
+import PGF.Expr
 import Data.Array.IArray
 import Data.List
 import Control.Monad
@@ -10,99 +17,106 @@
 import qualified Data.IntMap as IntMap
 import qualified Data.Set as Set
 
--- linearization and computation of concrete PGF Terms
-
-type LinTable = Array LIndex [Tokn]
+--------------------------------------------------------------------
+-- The API
+--------------------------------------------------------------------
 
-linearizes :: PGF -> CId -> Expr -> [String]
-linearizes pgf lang = map (unwords . untokn . (! 0)) . linTree pgf lang (\_ _ lint -> lint)
+-- | Linearizes given expression as string in the language
+linearize :: PGF -> Language -> Tree -> String
+linearize pgf lang = concat . take 1 . map (unwords . concatMap flattenBracketedString . snd . untokn "" . firstLin) . linTree pgf lang
 
-linTree :: PGF -> Language -> (Maybe CId -> [Int] -> LinTable -> LinTable) -> Expr -> [LinTable]
-linTree pgf lang mark e = lin0 [] [] [] Nothing e
-  where
-    cnc   = lookMap (error "no lang") lang (concretes pgf)
-    lp    = lproductions cnc
+-- | The same as 'linearizeAllLang' but does not return
+-- the language.
+linearizeAll :: PGF -> Tree -> [String]
+linearizeAll pgf = map snd . linearizeAllLang pgf
 
-    lin0 path xs ys mb_fid (EAbs _ x e)  = lin0 path (showCId x:xs) ys mb_fid e
-    lin0 path xs ys mb_fid (ETyped e _)  = lin0 path xs ys mb_fid e
-    lin0 path xs ys mb_fid e | null xs   = lin path ys mb_fid e []
-                             | otherwise = apply path (xs ++ ys) mb_fid _B (e:[ELit (LStr x) | x <- xs])
+-- | Linearizes given expression as string in all languages
+-- available in the grammar.
+linearizeAllLang :: PGF -> Tree -> [(Language,String)]
+linearizeAllLang pgf t = [(lang,linearize pgf lang t) | lang <- Map.keys (concretes pgf)]
 
-    lin path xs mb_fid (EApp e1 e2) es = lin path xs mb_fid e1 (e2:es)
-    lin path xs mb_fid (ELit l)     [] = case l of
-                                           LStr s -> return (mark Nothing path (ss s))
-                                           LInt n -> return (mark Nothing path (ss (show n)))
-                                           LFlt f -> return (mark Nothing path (ss (show f)))
-    lin path xs mb_fid (EMeta i)    es = apply path xs mb_fid _V (ELit (LStr ('?':show i)):es)
-    lin path xs mb_fid (EFun f)     es = map (mark (Just f) path) (apply path xs mb_fid f  es)
-    lin path xs mb_fid (EVar  i)    es = apply path xs mb_fid _V (ELit (LStr (xs !! i))   :es)
-    lin path xs mb_fid (ETyped e _) es = lin path xs mb_fid e es
-    lin path xs mb_fid (EImplArg e) es = lin path xs mb_fid e es
+-- | Linearizes given expression as a bracketed string in the language
+bracketedLinearize :: PGF -> Language -> Tree -> BracketedString
+bracketedLinearize pgf lang = head . concat . map (snd . untokn "" . firstLin) . linTree pgf lang
+  where
+    head []       = error "cannot linearize"
+    head (bs:bss) = bs
 
-    ss s = listArray (0,0) [[KS s]]
+firstLin (_,arr)
+  | inRange (bounds arr) 0 = arr ! 0
+  | otherwise              = LeafKS []
 
-    apply path xs mb_fid f es =
-      case Map.lookup f lp of
-        Just prods -> case lookupProds mb_fid prods of
-                        Just set -> do prod <- Set.toList set
-                                       case prod of
-                                         PApply funid fids -> do guard (length fids == length es)
-                                                                 args <- sequence (zipWith3 (\i fid e -> lin0 (sub i path) [] xs (Just fid) e) [0..] fids es)
-                                                                 let (CncFun _ lins) = cncfuns cnc ! funid
-                                                                 return (listArray (bounds lins) [computeSeq seqid args | seqid <- elems lins])
-                                         PCoerce fid       -> apply path xs (Just fid) f es
-                        Nothing  -> mzero
-        Nothing    -> apply path xs mb_fid _V [ELit (LStr ("[" ++ showCId f ++ "]"))]  -- fun without lin
-      where
-        lookupProds (Just fid) prods = IntMap.lookup fid prods
-        lookupProds Nothing    prods
-            | f == _B || f == _V     = Nothing
-            | otherwise              = Just (Set.filter isApp (Set.unions (IntMap.elems prods)))
+-- | Creates a table from feature name to linearization. 
+-- The outher list encodes the variations
+tabularLinearizes :: PGF -> CId -> Expr -> [[(String,String)]]
+tabularLinearizes pgf lang e = map cnv (linTree pgf lang e)
+  where
+    cnv ((cat,_),lin) = zip (lbls cat) $ map (unwords . concatMap flattenBracketedString . snd . untokn "") (elems lin)
 
-        sub i path
-          | f == _B || f == _V =   path
-          | otherwise          = i:path
+    lbls cat = case Map.lookup cat (cnccats (lookConcr pgf lang)) of
+                 Just (CncCat _ _ lbls) -> elems lbls
+                 Nothing                -> error "No labels"
 
-        isApp (PApply _ _) = True
-        isApp _            = False
+--------------------------------------------------------------------
+-- Implementation
+--------------------------------------------------------------------
 
-        computeSeq seqid args = concatMap compute (elems seq)
-          where
-            seq = sequences cnc ! seqid
+linTree :: PGF -> Language -> Expr -> [(CncType, Array LIndex BracketedTokn)]
+linTree pgf lang e = 
+  nub [(ct,amapWithIndex (\label -> Bracket_ cat fid label es) lin) | (_,(ct@(cat,fid),es,(xs,lin))) <- lin Nothing 0 e [] [] e []]
+  where
+    cnc   = lookMap (error "no lang") lang (concretes pgf)
+    lp    = lproductions cnc
 
-            compute (SymCat d r)    = (args !! d) ! r
-            compute (SymLit d r)    = (args !! d) ! r
-            compute (SymKS ts)      = map KS ts
-            compute (SymKP ts alts) = [KP ts alts]
+    lin mb_cty n_fid e0 ys xs (EAbs _ x e) es = lin   mb_cty n_fid e0 ys (x:xs) e      es
+    lin mb_cty n_fid e0 ys xs (EApp e1 e2) es = lin   mb_cty n_fid e0 ys    xs  e1 (e2:es)
+    lin mb_cty n_fid e0 ys xs (EImplArg e) es = lin   mb_cty n_fid e0 ys    xs  e      es
+    lin mb_cty n_fid e0 ys xs (ETyped e _) es = lin   mb_cty n_fid e0 ys    xs  e      es
+    lin mb_cty n_fid e0 ys xs (EFun f)     es = apply mb_cty n_fid e0 ys    xs  f      es
+    lin mb_cty n_fid e0 ys xs (EMeta i)    es = def   mb_cty n_fid e0 ys    xs  ('?':show i)
+    lin mb_cty n_fid e0 ys xs (EVar  i)    [] = def   mb_cty n_fid e0 ys    xs  (showCId ((xs++ys) !! i))
+    lin mb_cty n_fid e0 ys xs (ELit l)     [] = case l of
+                                                   LStr s -> return (n_fid+1,((cidString,n_fid),[e0],([],ss s)))
+                                                   LInt n -> return (n_fid+1,((cidInt,   n_fid),[e0],([],ss (show n))))
+                                                   LFlt f -> return (n_fid+1,((cidFloat, n_fid),[e0],([],ss (show f))))
 
-untokn :: [Tokn] -> [String]
-untokn ts = case ts of
-  KP d _  : [] -> d
-  KP d vs : ws -> let ss@(s:_) = untokn ws in sel d vs s ++ ss
-  KS s    : ws -> s : untokn ws
-  []           -> []
- where
-   sel d vs w = case [v | Alt v cs <- vs, any (\c -> isPrefixOf c w) cs] of
-     v:_ -> v
-     _   -> d
+    ss s = listArray (0,0) [[LeafKS [s]]]
 
--- create a table from labels+params to variants
-tabularLinearizes :: PGF -> CId -> Expr -> [[(String,String)]]
-tabularLinearizes pgf lang e = map (zip lbls . map (unwords . untokn) . elems) (linTree pgf lang (\_ _ lint -> lint) e)
-  where
-    lbls = case unApp e of
-             Just (f,_) -> let cat = valCat (lookType pgf f)
-                           in case Map.lookup cat (cnccats (lookConcr pgf lang)) of
-                                Just (CncCat _ _ lbls) -> elems lbls
-                                Nothing                -> error "No labels"
-             Nothing    -> error "Not function application"
+    apply :: Maybe CncType -> FId -> Expr -> [CId] -> [CId] -> CId -> [Expr] -> [(FId,(CncType, [Expr], LinTable))]
+    apply mb_cty n_fid e0 ys xs f es =
+      case Map.lookup f lp of
+        Just prods -> do (funid,(cat,fid),ctys) <- getApps prods
+                         (n_fid,args) <- descend n_fid (zip ctys es)
+                         return (n_fid+1,((cat,n_fid),[e0],mkLinTable cnc (const True) xs funid args))
+        Nothing    -> def mb_cty n_fid e0 ys xs ("[" ++ showCId f ++ "]")  -- fun without lin
+      where
+        getApps prods =
+          case mb_cty of
+            Just (cat,fid) -> maybe [] (concatMap (toApp fid) . Set.toList) (IntMap.lookup fid prods)
+            Nothing        -> concat [toApp fid prod | (fid,set) <- IntMap.toList prods, prod <- Set.toList set]
+          where
+            toApp fid (PApply funid pargs) =
+              let Just (ty,_,_,_) = Map.lookup f (funs (abstract pgf))
+                  (args,res) = catSkeleton ty
+              in [(funid,(res,fid),zip args [fid | PArg _ fid <- pargs])]
+            toApp _   (PCoerce fid) = 
+              maybe [] (concatMap (toApp fid) . Set.toList) (IntMap.lookup fid prods)
 
+        descend n_fid []            = return (n_fid,[])
+        descend n_fid ((cty,e):fes) = do (n_fid,arg)  <- lin (Just cty) n_fid e (xs++ys) [] e []
+                                         (n_fid,args) <- descend n_fid fes
+                                         return (n_fid,arg:args)
 
--- show bracketed markup with references to tree structure
-markLinearizes :: PGF -> CId -> Expr -> [String]
-markLinearizes pgf lang = map (unwords . untokn . (! 0)) . linTree pgf lang mark
-  where
-    mark mb_f path lint = amap (bracket mb_f path) lint
+    def (Just (cat,fid)) n_fid e0 ys xs s =
+      case IntMap.lookup fid (lindefs cnc) of
+        Just funs           -> do funid <- funs
+                                  let args = [((wildCId, n_fid),[e0],([],ss s))]
+                                  return (n_fid+2,((cat,n_fid+1),[e0],mkLinTable cnc (const True) xs funid args))
+        Nothing
+          | isPredefFId fid -> return (n_fid+2,((cat,n_fid+1),[e0],(xs,listArray (0,0) [[LeafKS [s]]])))
+          | otherwise       -> do PCoerce fid <- maybe [] Set.toList (IntMap.lookup fid (pproductions cnc))
+                                  def (Just (cat,fid)) n_fid e0 ys xs s
+    def Nothing          n_fid e0 ys xs s = []
 
-    bracket Nothing  path ts = [KS ("("++show (reverse path))] ++ ts ++ [KS ")"]
-    bracket (Just f) path ts = [KS ("(("++showCId f++","++show (reverse path)++")")] ++ ts ++ [KS ")"]
+amapWithIndex :: (IArray a e1, IArray a e2, Ix i) => (i -> e1 -> e2) -> a i e1 -> a i e2
+amapWithIndex f arr = listArray (bounds arr) (map (uncurry f) (assocs arr))
diff --git a/src/runtime/haskell/PGF/Macros.hs b/src/runtime/haskell/PGF/Macros.hs
--- a/src/runtime/haskell/PGF/Macros.hs
+++ b/src/runtime/haskell/PGF/Macros.hs
@@ -10,31 +10,32 @@
 import qualified Data.Array  as Array
 import Data.Maybe
 import Data.List
-import GF.Data.Utilities(sortNub)
+import Data.Array.IArray
+import Text.PrettyPrint
 
 -- operations for manipulating PGF grammars and objects
 
 mapConcretes :: (Concr -> Concr) -> PGF -> PGF
 mapConcretes f pgf = pgf { concretes = Map.map f (concretes pgf) }
 
-lookType :: PGF -> CId -> Type
-lookType pgf f = 
-  case lookMap (error $ "lookType " ++ show f) f (funs (abstract pgf)) of
-    (ty,_,_) -> ty
+lookType :: Abstr -> CId -> Type
+lookType abs f = 
+  case lookMap (error $ "lookType " ++ show f) f (funs abs) of
+    (ty,_,_,_) -> ty
 
-lookDef :: PGF -> CId -> Maybe [Equation]
-lookDef pgf f = 
-  case lookMap (error $ "lookDef " ++ show f) f (funs (abstract pgf)) of
-    (_,a,eqs) -> eqs
+lookDef :: Abstr -> CId -> Maybe [Equation]
+lookDef abs f = 
+  case lookMap (error $ "lookDef " ++ show f) f (funs abs) of
+    (_,a,eqs,_) -> eqs
 
-isData :: PGF -> CId -> Bool
-isData pgf f =
-  case Map.lookup f (funs (abstract pgf)) of
-    Just (_,_,Nothing) -> True             -- the encoding of data constrs
-    _                  -> False
+isData :: Abstr -> CId -> Bool
+isData abs f =
+  case Map.lookup f (funs abs) of
+    Just (_,_,Nothing,_) -> True             -- the encoding of data constrs
+    _                    -> False
 
-lookValCat :: PGF -> CId -> CId
-lookValCat pgf = valCat . lookType pgf
+lookValCat :: Abstr -> CId -> CId
+lookValCat abs = valCat . lookType abs
 
 lookStartCat :: PGF -> CId
 lookStartCat pgf = mkCId $
@@ -48,7 +49,7 @@
 lookAbsFlag :: PGF -> CId -> Maybe Literal
 lookAbsFlag pgf f = Map.lookup f (aflags (abstract pgf))
 
-lookConcr :: PGF -> CId -> Concr
+lookConcr :: PGF -> Language -> Concr
 lookConcr pgf cnc = 
     lookMap (error $ "Missing concrete syntax: " ++ showCId cnc) cnc $ concretes pgf
 
@@ -64,7 +65,7 @@
 
 functionsToCat :: PGF -> CId -> [(CId,Type)]
 functionsToCat pgf cat =
-  [(f,ty) | f <- fs, Just (ty,_,_) <- [Map.lookup f $ funs $ abstract pgf]]
+  [(f,ty) | (_,f) <- fs, Just (ty,_,_,_) <- [Map.lookup f $ funs $ abstract pgf]]
  where 
    (_,fs) = lookMap ([],[]) cat $ cats $ abstract pgf
 
@@ -80,7 +81,7 @@
 restrictPGF cond pgf = pgf {
   abstract = abstr {
     funs = Map.filterWithKey (\c _ -> cond c) (funs abstr),
-    cats = Map.map (\(hyps,fs) -> (hyps,filter cond fs)) (cats abstr)
+    cats = Map.map (\(hyps,fs) -> (hyps,filter (cond . snd) fs)) (cats abstr)
     }
   }  ---- restrict concrs also, might be needed
  where
@@ -115,19 +116,10 @@
 
 -- | Show the printname of function or category
 showPrintName :: PGF -> Language -> CId -> String
-showPrintName pgf lang id = lookMap "?" id $ printnames $ lookMap (error "no lang") lang $ concretes pgf
-
-term0 :: CId -> Term
-term0 = TM . showCId
-
-tm0 :: Term
-tm0 = TM "?"
-
-kks :: String -> Term
-kks = K . KS
+showPrintName pgf lang id = lookMap (showCId id) id $ printnames $ lookMap (error "no lang") lang $ concretes pgf
 
 -- lookup with default value
-lookMap :: (Show i, Ord i) => a -> i -> Map.Map i a -> a 
+lookMap :: Ord i => a -> i -> Map.Map i a -> a 
 lookMap d c m = Map.findWithDefault d c m
 
 --- from Operations
@@ -136,69 +128,95 @@
   []    -> [[]]
   aa:uu -> [a:u | a <- aa, u <- combinations uu]
 
-isLiteralCat :: CId -> Bool
-isLiteralCat = (`elem` [cidString, cidFloat, cidInt, cidVar])
-
 cidString = mkCId "String"
 cidInt    = mkCId "Int"
 cidFloat  = mkCId "Float"
 cidVar    = mkCId "__gfVar"
 
-_B = mkCId "__gfB"
-_V = mkCId "__gfV"
 
-updateProductionIndices :: PGF -> PGF
-updateProductionIndices pgf = pgf{ concretes = fmap updateConcrete (concretes pgf) }
-  where
-    updateConcrete cnc = 
-      let p_prods   = (filterProductions IntMap.empty . parseIndex cnc) (productions cnc)
-          l_prods   = (linIndex   cnc . filterProductions IntMap.empty) (productions cnc)
-      in cnc{pproductions = p_prods, lproductions = l_prods}
+-- Utilities for doing linearization
 
-    filterProductions prods0 prods
-      | prods0 == prods1 = prods0
-      | otherwise        = filterProductions prods1 prods
-      where
-        prods1 = IntMap.unionWith Set.union prods0 (IntMap.mapMaybe (filterProdSet prods0) prods)
+-- | BracketedString represents a sentence that is linearized
+-- as usual but we also want to retain the ''brackets'' that
+-- mark the beginning and the end of each constituent.
+data BracketedString
+  = Leaf Token                                                                -- ^ this is the leaf i.e. a single token
+  | Bracket CId {-# UNPACK #-} !FId {-# UNPACK #-} !LIndex [Expr] [BracketedString]   
+                                                                               -- ^ this is a bracket. The 'CId' is the category of
+                                                                               -- the phrase. The 'FId' is an unique identifier for
+                                                                               -- every phrase in the sentence. For context-free grammars
+                                                                               -- i.e. without discontinuous constituents this identifier
+                                                                               -- is also unique for every bracket. When there are discontinuous 
+                                                                               -- phrases then the identifiers are unique for every phrase but
+                                                                               -- not for every bracket since the bracket represents a constituent.
+                                                                               -- The different constituents could still be distinguished by using
+                                                                               -- the constituent index i.e. 'LIndex'. If the grammar is reduplicating
+                                                                               -- then the constituent indices will be the same for all brackets
+                                                                               -- that represents the same constituent.
 
-        filterProdSet prods0 set
-          | Set.null set1 = Nothing
-          | otherwise     = Just set1
-          where
-            set1 = Set.filter (filterRule prods0) set
+data BracketedTokn
+  = LeafKS [Token]
+  | LeafKP [Token] [Alternative]
+  | Bracket_ CId {-# UNPACK #-} !FId {-# UNPACK #-} !LIndex [Expr] [BracketedTokn]    -- Invariant: the list is not empty
+  deriving Eq
 
-        filterRule prods0 (PApply funid args) = all (\fcat -> isLiteralFCat fcat || IntMap.member fcat prods0) args
-        filterRule prods0 (PCoerce fcat)      = isLiteralFCat fcat || IntMap.member fcat prods0
-        filterRule prods0 _                   = True
+type LinTable = ([CId],Array.Array LIndex [BracketedTokn])
 
-    parseIndex cnc = IntMap.mapMaybeWithKey filterProdSet
-      where
-        filterProdSet fid prods
-          | fid `IntSet.member` ho_fids = Just prods
-          | otherwise                   = let prods' = Set.filter (not . is_ho_prod) prods
-                                          in if Set.null prods'
-                                               then Nothing
-                                               else Just prods'
+-- | Renders the bracketed string as string where 
+-- the brackets are shown as @(S ...)@ where
+-- @S@ is the category.
+showBracketedString :: BracketedString -> String
+showBracketedString = render . ppBracketedString
 
-        is_ho_prod (PApply _ [fid]) | fid == fcatVar = True
-        is_ho_prod _                                 = False
+ppBracketedString (Leaf t) = text t
+ppBracketedString (Bracket cat fid index _ bss) = parens (ppCId cat <> colon <> int fid <+> hsep (map ppBracketedString bss))
 
-        ho_fids :: IntSet.IntSet
-        ho_fids = IntSet.fromList [fid | cat <- ho_cats
-                                       , fid <- maybe [] (\(CncCat s e _) -> [s..e]) (Map.lookup cat (cnccats cnc))]
+-- | The length of the bracketed string in number of tokens.
+lengthBracketedString :: BracketedString -> Int
+lengthBracketedString (Leaf _)              = 1
+lengthBracketedString (Bracket _ _ _ _ bss) = sum (map lengthBracketedString bss)
 
-        ho_cats :: [CId]
-        ho_cats = sortNub [c | (ty,_,_) <- Map.elems (funs (abstract pgf))
-                             , h <- case ty of {DTyp hyps val _ -> hyps}
-                             , c <- fst (catSkeleton (typeOfHypo h))]
+untokn :: String -> BracketedTokn -> (String,[BracketedString])
+untokn nw (LeafKS ts)   = (head ts,map Leaf ts)
+untokn nw (LeafKP d vs) = let ts = sel d vs nw
+                          in (head ts,map Leaf ts)
+                          where
+                            sel d vs nw =
+                              case [v | Alt v cs <- vs, any (\c -> isPrefixOf c nw) cs] of
+                                v:_ -> v
+                                _   -> d
+untokn nw (Bracket_ cat fid index es bss) =
+  let (nw',bss') = mapAccumR untokn nw bss
+  in (nw',[Bracket cat fid index es (concat bss')])
 
-    linIndex cnc productions = 
-      Map.fromListWith (IntMap.unionWith Set.union)
-                       [(fun,IntMap.singleton res (Set.singleton prod)) | (res,prods) <- IntMap.toList productions
-                                                                        , prod <- Set.toList prods
-                                                                        , fun <- getFunctions prod]
+type CncType = (CId, FId)    -- concrete type is the abstract type (the category) + the forest id
+
+mkLinTable :: Concr -> (CncType -> Bool) -> [CId] -> FunId -> [(CncType,[Expr],LinTable)] -> LinTable
+mkLinTable cnc filter xs funid args = (xs,listArray (bounds lins) [computeSeq filter (elems (sequences cnc ! seqid)) args | seqid <- elems lins])
+  where
+    (CncFun _ lins) = cncfuns cnc ! funid
+
+computeSeq :: (CncType -> Bool) -> [Symbol] -> [(CncType,[Expr],LinTable)] -> [BracketedTokn]
+computeSeq filter seq args = concatMap compute seq
+  where
+    compute (SymCat d r)    = getArg d r
+    compute (SymLit d r)    = getArg d r
+    compute (SymVar d r)    = getVar d r
+    compute (SymKS ts)      = [LeafKS ts]
+    compute (SymKP ts alts) = [LeafKP ts alts]
+
+    getArg d r
+      | not (null arg_lin) &&
+        filter ct   = [Bracket_ cat fid r es arg_lin]
+      | otherwise   = arg_lin
       where
-        getFunctions (PApply funid args) = let CncFun fun _ = cncfuns cnc Array.! funid in [fun]
-        getFunctions (PCoerce fid)       = case IntMap.lookup fid productions of
-                                             Nothing    -> []
-                                             Just prods -> [fun | prod <- Set.toList prods, fun <- getFunctions prod]
+        arg_lin                    = lin ! r
+        (ct@(cat,fid),es,(xs,lin)) = args !! d
+
+    getVar d r = [LeafKS [showCId (xs !! r)]]
+      where
+        (ct,es,(xs,lin)) = args !! d
+
+flattenBracketedString :: BracketedString -> [String]
+flattenBracketedString (Leaf w)              = [w]
+flattenBracketedString (Bracket _ _ _ _ bss) = concatMap flattenBracketedString bss
diff --git a/src/runtime/haskell/PGF/Morphology.hs b/src/runtime/haskell/PGF/Morphology.hs
--- a/src/runtime/haskell/PGF/Morphology.hs
+++ b/src/runtime/haskell/PGF/Morphology.hs
@@ -29,7 +29,7 @@
 collectWords pinfo = Map.fromListWith (++)
   [(t, [(fun,lbls ! l)]) | (CncCat s e lbls) <- Map.elems (cnccats pinfo)
                          , fid <- [s..e]
-                         , PApply funid _ <- maybe [] Set.toList (IntMap.lookup fid (pproductions pinfo))
+                         , PApply funid _ <- maybe [] Set.toList (IntMap.lookup fid (productions pinfo))
                          , let CncFun fun lins = cncfuns pinfo ! funid
                          , (l,seqid) <- assocs lins
                          , sym <- elems (sequences pinfo ! seqid)
diff --git a/src/runtime/haskell/PGF/Optimize.hs b/src/runtime/haskell/PGF/Optimize.hs
new file mode 100644
--- /dev/null
+++ b/src/runtime/haskell/PGF/Optimize.hs
@@ -0,0 +1,244 @@
+{-# LANGUAGE BangPatterns #-}
+module PGF.Optimize
+             ( optimizePGF
+             , updateProductionIndices
+             ) where
+
+import PGF.CId
+import PGF.Data
+import PGF.Macros
+import Data.Maybe
+import Data.List (mapAccumL, nub)
+import Data.Array.IArray
+import Data.Array.MArray
+import Data.Array.ST
+import Data.Array.Unboxed
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import qualified Data.IntSet as IntSet
+import qualified Data.IntMap as IntMap
+import qualified GF.Data.TrieMap as TrieMap
+import qualified Data.List as List
+import Control.Monad.ST
+import GF.Data.Utilities(sortNub)
+
+optimizePGF :: PGF -> PGF
+optimizePGF pgf = pgf{concretes=fmap (updateConcrete (abstract pgf) . 
+                                      topDownFilter (lookStartCat pgf) .
+                                      bottomUpFilter                    ) (concretes pgf)}
+
+updateProductionIndices :: PGF -> PGF
+updateProductionIndices pgf = pgf{concretes = fmap (updateConcrete (abstract pgf)) (concretes pgf)}
+
+topDownFilter :: CId -> Concr -> Concr
+topDownFilter startCat cnc =
+  let env0         = (Map.empty,Map.empty)
+      (env1,defs)  = IntMap.mapAccumWithKey (\env fid funids -> mapAccumL (optimizeFun fid [PArg [] fidVar]) env funids) 
+                                            env0
+                                            (lindefs cnc)
+      (env2,prods) = IntMap.mapAccumWithKey (\env fid set  -> mapAccumLSet (optimizeProd fid) env set)
+                                            env1
+                                            (productions cnc)
+      cats = Map.mapWithKey filterCatLabels (cnccats cnc)
+      (seqs,funs) = env2
+  in cnc{ sequences   = mkSetArray seqs
+        , cncfuns     = mkSetArray funs
+        , productions = prods
+        , cnccats     = cats
+        , lindefs     = defs
+        }
+  where
+    fid2cat fid =
+      case IntMap.lookup fid fid2catMap of
+        Just cat -> cat
+        Nothing  -> case [fid | Just set <- [IntMap.lookup fid (productions cnc)], PCoerce fid <- Set.toList set] of
+                      (fid:_) -> fid2cat fid
+                      _       -> error "unknown forest id"
+      where
+        fid2catMap = IntMap.fromList ((fidVar,cidVar) :  [(fid,cat) | (cat,CncCat start end lbls) <- Map.toList (cnccats cnc),
+                                                                      fid <- [start..end]])
+
+    starts =
+      case Map.lookup startCat (cnccats cnc) of
+        Just (CncCat _ _ lbls) -> [(startCat,lbl) | lbl <- indices lbls]
+        Nothing                -> []
+
+    allRelations =
+      Map.unionsWith Set.union
+                     [rel fid prod | (fid,set) <- IntMap.toList (productions cnc),
+                                     prod <- Set.toList set]
+      where
+        rel fid (PApply funid args) = Map.fromList [((fid2cat fid,lbl),deps args seqid) | (lbl,seqid) <- assocs lin]
+          where
+            CncFun _ lin = cncfuns cnc ! funid
+        rel fid _                   = Map.empty
+
+        deps args seqid = Set.fromList [let PArg _ fid = args !! r in (fid2cat fid,d) | SymCat r d <- elems seq]
+          where
+            seq = sequences cnc ! seqid
+
+    -- here we create a mapping from a category to an array of indices.
+    -- An element of the array is equal to -1 if the corresponding index
+    -- is not going to be used in the optimized grammar, or the new index
+    -- if it will be used
+    closure :: Map.Map CId (UArray LIndex LIndex)
+    closure = runST $ do 
+      set <- initSet
+      addLitCat cidString set
+      addLitCat cidInt    set
+      addLitCat cidFloat  set
+      addLitCat cidVar    set
+      closureSet set starts
+      doneSet set
+      where
+        initSet :: ST s (Map.Map CId (STUArray s LIndex LIndex))
+        initSet =
+          fmap Map.fromAscList $ sequence
+                        [fmap ((,) cat) (newArray (bounds lbls) (-1))
+                                             | (cat,CncCat _ _ lbls) <- Map.toAscList (cnccats cnc)]
+
+        addLitCat cat set =
+          case Map.lookup cat set of
+            Just indices -> writeArray indices 0 0
+            Nothing      -> return ()
+
+        closureSet set []                 = return ()
+        closureSet set (x@(cat,index):xs) =
+          case Map.lookup cat set of
+            Just indices -> do v <- readArray indices index
+                               writeArray indices index 0
+                               if v < 0
+                                 then case Map.lookup x allRelations of
+                                        Just ys -> closureSet set (Set.toList ys++xs)
+                                        Nothing -> closureSet set xs
+                                 else closureSet set xs
+            Nothing      -> error "unknown cat"
+
+        doneSet set =
+          fmap Map.fromAscList $ mapM done (Map.toAscList set)
+          where
+            done (cat,indices) = do
+              (s,e) <- getBounds indices
+              reindex indices s e 0
+              indices <- unsafeFreeze indices
+              return (cat,indices)
+              
+            reindex indices i j k
+              | i <= j    = do v <- readArray indices i
+                               if v < 0
+                                 then reindex indices (i+1) j k
+                                 else writeArray indices i k >>
+                                      reindex indices (i+1) j (k+1)
+              | otherwise = return ()
+
+    optimizeProd res env (PApply funid args) =
+      let (env',funid') = optimizeFun res args env funid
+      in (env', PApply funid' args)
+    optimizeProd res env prod = (env,prod)
+    
+    optimizeFun res args (seqs,funs) funid =
+      let (seqs',lin') = mapAccumL addUnique seqs [amap updateSymbol (sequences cnc ! seqid) | 
+                                                          (lbl,seqid) <- assocs lin, indicesOf res ! lbl >= 0]
+          (funs',funid') = addUnique funs (CncFun fun (mkArray lin'))
+      in ((seqs',funs'), funid')
+      where
+        CncFun fun lin = cncfuns cnc ! funid
+
+        indicesOf fid =
+          case Map.lookup (fid2cat fid) closure of
+            Just indices -> indices
+            Nothing      -> error "unknown category"
+
+        addUnique seqs seq =
+          case Map.lookup seq seqs of
+            Just seqid -> (seqs,seqid)
+            Nothing    -> let seqid = Map.size seqs
+                          in (Map.insert seq seqid seqs, seqid)
+
+        updateSymbol (SymCat r d) = let PArg _ fid = args !! r in SymCat r (indicesOf fid ! d)
+        updateSymbol s            = s
+
+    filterCatLabels cat (CncCat start end lbls) =
+      case Map.lookup cat closure of
+        Just indices -> let lbls' = mkArray [lbl | (i,lbl) <- assocs lbls, indices ! i >= 0]
+                        in CncCat start end lbls'
+        Nothing      -> error "unknown category"
+
+    mkSetArray map = array (0,Map.size map-1) [(v,k) | (k,v) <- Map.toList map]
+    mkArray lst = listArray (0,length lst-1) lst
+    
+    mapAccumLSet f b set = let (b',lst) = mapAccumL f b (Set.toList set)
+                           in (b',Set.fromList lst)
+
+
+bottomUpFilter :: Concr -> Concr
+bottomUpFilter cnc = cnc{productions=filterProductions IntMap.empty IntSet.empty (productions cnc)}
+
+filterProductions prods0 hoc0 prods
+  | prods0 == prods1 = prods0
+  | otherwise        = filterProductions prods1 hoc1 prods
+  where
+    (prods1,hoc1) = IntMap.foldWithKey foldProdSet (IntMap.empty,IntSet.empty) prods
+
+    foldProdSet fid set (!prods,!hoc)
+      | Set.null set1 = (prods,hoc)
+      | otherwise     = (IntMap.insert fid set1 prods,hoc1)
+      where
+        set1 = Set.filter filterRule set
+        hoc1 = Set.fold accumHOC hoc set1
+
+    filterRule (PApply funid args) = all (\(PArg _ fid) -> isLive fid) args
+    filterRule (PCoerce fid)       = isLive fid
+    filterRule _                   = True
+
+    isLive fid = isPredefFId fid || IntMap.member fid prods0 || IntSet.member fid hoc0
+
+    accumHOC (PApply funid args) hoc = List.foldl' (\hoc (PArg hypos _) -> List.foldl' (\hoc (_,fid) -> IntSet.insert fid hoc) hoc hypos) hoc args
+    accumHOC _                   hoc = hoc
+
+splitLexicalRules cnc p_prods =
+  IntMap.foldWithKey split (IntMap.empty,IntMap.empty) p_prods
+  where
+    split fid set (lex,syn) =
+      let (lex0,syn0) = Set.partition isLexical set
+          !lex' = if Set.null lex0
+                    then lex
+                    else let !mp = IntMap.unionsWith (TrieMap.unionWith IntSet.union)
+                                                     [words funid | PApply funid [] <- Set.toList lex0]
+                         in IntMap.insert fid mp lex
+          !syn' = if Set.null syn0
+                    then syn
+                    else IntMap.insert fid syn0 syn
+      in (lex', syn')
+      
+    
+    isLexical (PApply _ []) = True
+    isLexical _             = False
+    
+    words funid = IntMap.fromList [(lbl,seq2prefix (elems (sequences cnc ! seqid)))
+                                            | (lbl,seqid) <- assocs lins]
+      where
+        CncFun _ lins = cncfuns cnc ! funid
+        
+        wf ts = (ts,IntSet.singleton funid)
+        
+        seq2prefix []                   = TrieMap.fromList [wf []]
+        seq2prefix (SymKS ts     :syms) = TrieMap.fromList [wf ts]
+        seq2prefix (SymKP ts alts:syms) = TrieMap.fromList (wf ts : [wf ts | Alt ts ps <- alts])
+
+updateConcrete abs cnc = 
+  let p_prods0      = filterProductions IntMap.empty IntSet.empty (productions cnc)
+      (lex,p_prods) = splitLexicalRules cnc p_prods0
+      l_prods       = linIndex cnc p_prods0
+  in cnc{pproductions = p_prods, lproductions = l_prods, lexicon = lex}
+  where
+    linIndex cnc productions = 
+      Map.fromListWith (IntMap.unionWith Set.union)
+                       [(fun,IntMap.singleton res (Set.singleton prod)) | (res,prods) <- IntMap.toList productions
+                                                                        , prod <- Set.toList prods
+                                                                        , fun <- getFunctions prod]
+      where
+        getFunctions (PApply funid args) = let CncFun fun _ = cncfuns cnc ! funid in [fun]
+        getFunctions (PCoerce fid)       = case IntMap.lookup fid productions of
+                                             Nothing    -> []
+                                             Just prods -> [fun | prod <- Set.toList prods, fun <- getFunctions prod]
diff --git a/src/runtime/haskell/PGF/Paraphrase.hs b/src/runtime/haskell/PGF/Paraphrase.hs
--- a/src/runtime/haskell/PGF/Paraphrase.hs
+++ b/src/runtime/haskell/PGF/Paraphrase.hs
@@ -24,7 +24,7 @@
 import Debug.Trace ----
 
 paraphrase :: PGF -> Expr -> [Expr]
-paraphrase pgf = nub . paraphraseN 2 pgf
+paraphrase pgf t = nub (paraphraseN 2 pgf t)
 
 paraphraseN :: Int -> PGF -> Expr -> [Expr]
 paraphraseN i pgf = map tree2expr . paraphraseN' i pgf . expr2tree
@@ -53,8 +53,9 @@
               isClosed d || (length equs == 1 && isLinear d)]
 
   equss = [(f,[(Fun f (map patt2tree ps), expr2tree d) | (Equ ps d) <- eqs]) | 
-                       (f,(_,_,Just eqs)) <- Map.assocs (funs (abstract pgf)), not (null eqs)]
-
+                   (f,(_,_,Just eqs,_)) <- Map.assocs (funs (abstract pgf)), not (null eqs)]
+  ---- AR 14/12/2010: (expr2tree d) fails unless we send the variable list from ps in eqs;
+  ---- cf. PGF.Tree.expr2tree
   trequ s f e = True ----trace (s ++ ": " ++ show f ++ "  " ++ show e) True
 
 subst :: Subst -> Tree -> Tree
diff --git a/src/runtime/haskell/PGF/Parse.hs b/src/runtime/haskell/PGF/Parse.hs
--- a/src/runtime/haskell/PGF/Parse.hs
+++ b/src/runtime/haskell/PGF/Parse.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns, RankNTypes #-}
 module PGF.Parse
           ( ParseState
           , ErrorState
@@ -6,7 +6,8 @@
           , nextState
           , getCompletions
           , recoveryStates
-          , extractTrees
+          , ParseInput(..),  simpleParseInput, mkParseInput
+          , ParseOutput(..), getParseOutput
           , parse
           , parseWithRecovery
           ) where
@@ -14,10 +15,11 @@
 import Data.Array.IArray
 import Data.Array.Base (unsafeAt)
 import Data.List (isPrefixOf, foldl')
-import Data.Maybe (fromMaybe, maybe)
+import Data.Maybe (fromMaybe, maybe, maybeToList)
 import qualified Data.Map as Map
-import qualified GF.Data.TrieMap as TMap
+import qualified GF.Data.TrieMap as TrieMap
 import qualified Data.IntMap as IntMap
+import qualified Data.IntSet as IntSet
 import qualified Data.Set as Set
 import Control.Monad
 
@@ -27,26 +29,49 @@
 import PGF.Expr(Tree)
 import PGF.Macros
 import PGF.TypeCheck
-import Debug.Trace
+import PGF.Forest(Forest(Forest), linearizeWithBrackets, getAbsTrees)
 
-parse :: PGF -> Language -> Type -> [String] -> [Tree]
-parse pgf lang typ toks = loop (initState pgf lang typ) toks
+-- | The input to the parser is a pair of predicates. The first one
+-- 'piToken' selects a token from a list of suggestions from the grammar,
+-- actually appears at the current position in the input string.
+-- The second one 'piLiteral' recognizes whether a literal with forest id 'FId'
+-- could be matched at the current position.
+data ParseInput
+  = ParseInput
+      { piToken   :: forall a . Map.Map Token a -> Maybe a
+      , piLiteral :: FId -> Maybe (CId,Tree,[Token])
+      }
+
+-- | This data type encodes the different outcomes which you could get from the parser.
+data ParseOutput
+  = ParseFailed Int                -- ^ The integer is the position in number of tokens where the parser failed.
+  | TypeError   [(FId,TcError)]    -- ^ The parsing was successful but none of the trees is type correct. 
+                                   -- The forest id ('FId') points to the bracketed string from the parser
+                                   -- where the type checking failed. More than one error is returned
+                                   -- if there are many analizes for some phrase but they all are not type correct.
+  | ParseOk [Tree]                 -- ^ If the parsing and the type checking are successful we get a list of abstract syntax trees.
+                                   -- The list should be non-empty.
+  | ParseIncomplete                -- ^ The sentence is not complete. Only partial output is produced
+
+parse :: PGF -> Language -> Type -> Maybe Int -> [Token] -> (ParseOutput,BracketedString)
+parse pgf lang typ dp toks = loop (initState pgf lang typ) toks
   where
-    loop ps []     = extractTrees ps typ
-    loop ps (t:ts) = case nextState ps t of
-                       Left  es -> []
+    loop ps []     = getParseOutput ps typ dp
+    loop ps (t:ts) = case nextState ps (simpleParseInput t) of
+                       Left  es -> case es of
+                                     EState _ _ chart -> (ParseFailed (offset chart),snd (getParseOutput ps typ dp))
                        Right ps -> loop ps ts
 
-parseWithRecovery :: PGF -> Language -> Type -> [Type] -> [String] -> [Tree]
-parseWithRecovery pgf lang typ open_typs toks = accept (initState pgf lang typ) toks
+parseWithRecovery :: PGF -> Language -> Type -> [Type] -> Maybe Int -> [String] -> (ParseOutput,BracketedString)
+parseWithRecovery pgf lang typ open_typs dp toks = accept (initState pgf lang typ) toks
   where
-    accept ps []     = extractTrees ps typ
+    accept ps []     = getParseOutput ps typ dp
     accept ps (t:ts) =
-      case nextState ps t of
+      case nextState ps (simpleParseInput t) of
         Right ps -> accept ps ts
         Left  es -> skip (recoveryStates open_typs es) ts
 
-    skip ps_map []     = extractTrees (fst ps_map) typ
+    skip ps_map []     = getParseOutput (fst ps_map) typ dp
     skip ps_map (t:ts) =
       case Map.lookup t (snd ps_map) of
         Just ps -> accept ps ts
@@ -56,78 +81,124 @@
 -- startup category.
 initState :: PGF -> Language -> Type -> ParseState
 initState pgf lang (DTyp _ start _) = 
-  let items = case Map.lookup start (cnccats cnc) of
-                Just (CncCat s e labels) -> do cat <- range (s,e)
-                                               (funid,args) <- foldForest (\funid args -> (:) (funid,args)) (\_ _ args -> args)
-                                                                          [] cat (pproductions cnc)
-                                               let CncFun fn lins = cncfuns cnc ! funid
-                                               (lbl,seqid) <- assocs lins
-                                               return (Active 0 0 funid seqid args (AK cat lbl))
-                Nothing                  -> mzero
-
-      cnc = lookConcrComplete pgf lang
-
-  in PState pgf
+  let (acc,items) = case Map.lookup start (cnccats cnc) of
+                      Just (CncCat s e labels) -> 
+                              let keys = do fid <- range (s,e)
+                                            lbl <- indices labels
+                                            return (AK fid lbl)
+                              in foldl' (\(acc,items) key -> predict flit ftok cnc
+                                                                     (pproductions cnc)
+                                                                     key key 0
+                                                                     acc items)
+                                        (Map.empty,[])
+                                        keys
+                      Nothing -> (Map.empty,[])
+  in PState abs
             cnc
             (Chart emptyAC [] emptyPC (pproductions cnc) (totalCats cnc) 0)
-            (TMap.singleton [] (Set.fromList items))
+            (TrieMap.compose (Just (Set.fromList items)) acc)
+  where
+    abs = abstract pgf
+    cnc = lookConcrComplete pgf lang
 
+    flit _ = Nothing
+
+    ftok = Map.unionWith (TrieMap.unionWith Set.union)
+
+
+-- | This function constructs the simplest possible parser input. 
+-- It checks the tokens for exact matching and recognizes only @String@, @Int@ and @Float@ literals.
+-- The @Int@ and @Float@ literals match only if the token passed is some number.
+-- The @String@ literal always match but the length of the literal could be only one token.
+simpleParseInput :: Token -> ParseInput
+simpleParseInput t = ParseInput (Map.lookup t) (matchLit t)
+  where
+    matchLit t fid
+      | fid == fidString = Just (cidString,ELit (LStr t),[t])
+      | fid == fidInt    = case reads t of {[(n,"")] -> Just (cidInt,ELit (LInt n),[t]);
+                                            _        -> Nothing }
+      | fid == fidFloat  = case reads t of {[(d,"")] -> Just (cidFloat,ELit (LFlt d),[t]);
+                                            _        -> Nothing }
+      | fid == fidVar    = Just (wildCId,EFun (mkCId t),[t])
+      | otherwise        = Nothing
+
+mkParseInput :: PGF -> Language 
+             -> (forall a . b -> Map.Map Token a -> Maybe a)
+             -> [(CId,b -> Maybe (Tree,[Token]))]
+             -> (b -> ParseInput)
+mkParseInput pgf lang ftok flits = \x -> ParseInput (ftok x) (flit x)
+  where
+    flit = mk flits
+    
+    cnc = lookConcr pgf lang
+
+    mk []               = \x fid -> Nothing
+    mk ((c,flit):flits) = \x fid -> case Map.lookup c (cnccats cnc) of
+                                      Just (CncCat s e _) | inRange (s,e) fid 
+                                              -> fmap (\(tree,toks) -> (c,tree,toks)) (flit x)
+                                      _       -> mk flits x fid
+
 -- | From the current state and the next token
 -- 'nextState' computes a new state, where the token
 -- is consumed and the current position is shifted by one.
 -- If the new token cannot be accepted then an error state 
 -- is returned.
-nextState :: ParseState -> String -> Either ErrorState ParseState
-nextState (PState pgf cnc chart items) t =
-  let (mb_agenda,map_items) = TMap.decompose items
+nextState :: ParseState -> ParseInput -> Either ErrorState ParseState
+nextState (PState abs cnc chart cnt0) input =
+  let (mb_agenda,map_items) = TrieMap.decompose cnt0
       agenda = maybe [] Set.toList mb_agenda
-      acc    = fromMaybe TMap.empty (Map.lookup t map_items)
-      (acc1,chart1) = process (Just t) add (sequences cnc) (cncfuns cnc) agenda acc chart
+      cnt    = fromMaybe TrieMap.empty (piToken input map_items)
+      (cnt1,chart1) = process flit ftok cnc agenda cnt chart
       chart2 = chart1{ active =emptyAC
                      , actives=active chart1 : actives chart1
                      , passive=emptyPC
                      , offset =offset chart1+1
                      }
-  in if TMap.null acc1
-       then Left  (EState pgf cnc chart2)
-       else Right (PState pgf cnc chart2 acc1)
+  in if TrieMap.null cnt1
+       then Left  (EState abs cnc chart2)
+       else Right (PState abs cnc chart2 cnt1)
   where
-    add (tok:toks) item acc
-      | tok == t            = TMap.insertWith Set.union toks (Set.singleton item) acc
-    add _          item acc = acc
+    flit = piLiteral input
 
+    ftok choices cnt =
+      case piToken input choices of
+        Just cnt' -> TrieMap.unionWith Set.union cnt' cnt
+        Nothing   -> cnt
+
 -- | If the next token is not known but only its prefix (possible empty prefix)
 -- then the 'getCompletions' function can be used to calculate the possible
 -- next words and the consequent states. This is used for word completions in
 -- the GF interpreter.
-getCompletions :: ParseState -> String -> Map.Map String ParseState
-getCompletions (PState pgf cnc chart items) w =
-  let (mb_agenda,map_items) = TMap.decompose items
+getCompletions :: ParseState -> String -> Map.Map Token ParseState
+getCompletions (PState abs cnc chart cnt0) w =
+  let (mb_agenda,map_items) = TrieMap.decompose cnt0
       agenda = maybe [] Set.toList mb_agenda
       acc    = Map.filterWithKey (\tok _ -> isPrefixOf w tok) map_items
-      (acc',chart1) = process Nothing add (sequences cnc) (cncfuns cnc) agenda acc chart
+      (acc',chart1) = process flit ftok cnc agenda acc chart
       chart2 = chart1{ active =emptyAC
                      , actives=active chart1 : actives chart1
                      , passive=emptyPC
                      , offset =offset chart1+1
                      }
-  in fmap (PState pgf cnc chart2) acc'
+  in fmap (PState abs cnc chart2) acc'
   where
-    add (tok:toks) item acc
-      | isPrefixOf w tok    = Map.insertWith (TMap.unionWith Set.union) tok (TMap.singleton toks (Set.singleton item)) acc
-    add _          item acc = acc
+    flit _ = Nothing
 
-recoveryStates :: [Type] -> ErrorState -> (ParseState, Map.Map String ParseState)
-recoveryStates open_types (EState pgf cnc chart) =
+    ftok choices =
+      Map.unionWith (TrieMap.unionWith Set.union)
+                    (Map.filterWithKey (\tok _ -> isPrefixOf w tok) choices)
+
+recoveryStates :: [Type] -> ErrorState -> (ParseState, Map.Map Token ParseState)
+recoveryStates open_types (EState abs cnc chart) =
   let open_fcats = concatMap type2fcats open_types
       agenda = foldl (complete open_fcats) [] (actives chart)
-      (acc,chart1) = process Nothing add (sequences cnc) (cncfuns cnc) agenda Map.empty chart
+      (acc,chart1) = process flit ftok cnc agenda Map.empty chart
       chart2 = chart1{ active =emptyAC
                      , actives=active chart1 : actives chart1
                      , passive=emptyPC
                      , offset =offset chart1+1
                      }
-  in (PState pgf cnc chart (TMap.singleton [] (Set.fromList agenda)), fmap (PState pgf cnc chart2) acc)
+  in (PState abs cnc chart (TrieMap.singleton [] (Set.fromList agenda)), fmap (PState abs cnc chart2) acc)
   where
     type2fcats (DTyp _ cat _) = case Map.lookup cat (cnccats cnc) of
                                   Just (CncCat s e labels) -> range (s,e)
@@ -137,131 +208,210 @@
       foldl (Set.fold (\(Active j' ppos funid seqid args keyc) -> 
                            (:) (Active j' (ppos+1) funid seqid args keyc)))
             items
-            [set | fcat <- open_fcats, set <- lookupACByFCat fcat ac]
+            [set | fcat <- open_fcats, (set,_) <- lookupACByFCat fcat ac]
 
-    add (tok:toks) item acc = Map.insertWith (TMap.unionWith Set.union) tok (TMap.singleton toks (Set.singleton item)) acc
+    flit _ = Nothing
+    ftok toks = Map.unionWith (TrieMap.unionWith Set.union) toks
 
 -- | This function extracts the list of all completed parse trees
 -- that spans the whole input consumed so far. The trees are also
 -- limited by the category specified, which is usually
 -- the same as the startup category.
-extractTrees :: ParseState -> Type -> [Tree]
-extractTrees (PState pgf cnc chart items) ty@(DTyp _ start _) = 
-  nubsort [e1 | e <- exps, Right e1 <- [checkExpr pgf e ty]]
+getParseOutput :: ParseState -> Type -> Maybe Int -> (ParseOutput,BracketedString)
+getParseOutput (PState abs cnc chart cnt) ty@(DTyp _ start _) dp =
+  let froots | null roots = getPartialSeq (sequences cnc) (reverse (active chart1 : actives chart1)) seq
+             | otherwise  = [([SymCat 0 lbl],[PArg [] fid]) | AK fid lbl <- roots]
+
+      f     = Forest abs cnc (forest chart1) froots
+      
+      bs    = linearizeWithBrackets dp f
+                
+      res   | not (null es)   = ParseOk es
+            | not (null errs) = TypeError errs
+            | otherwise       = ParseIncomplete
+            where xs   = [getAbsTrees f (PArg [] fid) (Just ty) dp | (AK fid lbl) <- roots]
+                  es   = concat [es   | Right es   <- xs]
+                  errs = concat [errs | Left  errs <- xs]
+
+  in (res,bs)
   where
-    (mb_agenda,acc) = TMap.decompose items
+    (mb_agenda,acc) = TrieMap.decompose cnt
     agenda = maybe [] Set.toList mb_agenda
-    (_,st) = process Nothing (\_ _ -> id) (sequences cnc) (cncfuns cnc) agenda () chart
+    (acc',chart1) = process flit ftok cnc agenda (TrieMap.compose Nothing acc) chart
+    seq = [(j,cutAt ppos toks seqid,args,key) | (toks,set) <- TrieMap.toList acc'
+                                              , Active j ppos funid seqid args key <- Set.toList set]
 
-    exps = 
-      case Map.lookup start (cnccats cnc) of
-        Just (CncCat s e lbls) -> do cat <- range (s,e)
-                                     lbl <- indices lbls
-                                     Just fid <- [lookupPC (PK cat lbl 0) (passive st)]
-                                     (fvs,tree) <- go Set.empty 0 (0,fid)
-                                     guard (Set.null fvs)
-                                     return tree
-        Nothing                -> mzero
+    flit _    = Nothing
+    ftok toks = TrieMap.unionWith Set.union (TrieMap.compose Nothing toks)
 
-    go rec fcat' (d,fcat)
-      | fcat < totalCats cnc = return (Set.empty,EMeta (fcat'*10+d))   -- FIXME: here we assume that every rule has at most 10 arguments
-      | Set.member fcat rec    = mzero
-      | otherwise              = foldForest (\funid args trees -> 
-                                                  do let CncFun fn lins = cncfuns cnc ! funid
-                                                     args <- mapM (go (Set.insert fcat rec) fcat) (zip [0..] args)
-                                                     check_ho_fun fn args
-                                                  `mplus`
-                                                  trees)
-                                            (\const _ trees ->
-                                                  return (freeVar const,const)
-                                                  `mplus`
-                                                  trees)
-                                            [] fcat (forest st)
+    cutAt ppos toks seqid  = 
+      let seq  = unsafeAt (sequences cnc) seqid
+          init = take (ppos-1) (elems seq)
+          tail = case unsafeAt seq (ppos-1) of
+                   SymKS ts   -> let ts' = reverse (drop (length toks) (reverse ts))
+                                 in if null ts' then [] else [SymKS ts']
+		   SymKP ts _ -> let ts' = reverse (drop (length toks) (reverse ts))
+                                 in if null ts' then [] else [SymKS ts']
+                   sym        -> []
+      in init ++ tail
 
-    check_ho_fun fun args
-      | fun == _V = return (head args)
-      | fun == _B = return (foldl1 Set.difference (map fst args), foldr (\x e -> EAbs Explicit (mkVar (snd x)) e) (snd (head args)) (tail args))
-      | otherwise = return (Set.unions (map fst args),foldl (\e x -> EApp e (snd x)) (EFun fun) args)
-    
-    mkVar (EFun  v) = v
-    mkVar (EMeta _) = wildCId
-    
-    freeVar (EFun v) = Set.singleton v
-    freeVar _        = Set.empty
+    roots = case Map.lookup start (cnccats cnc) of
+              Just (CncCat s e lbls) -> do cat <- range (s,e)
+                                           lbl <- indices lbls
+                                           fid <- maybeToList (lookupPC (PK cat lbl 0) (passive chart1))
+                                           return (AK fid lbl)
+              Nothing                -> mzero
 
-process mbt fn !seqs !funs []                                                 acc chart = (acc,chart)
-process mbt fn !seqs !funs (item@(Active j ppos funid seqid args key0):items) acc chart
+getPartialSeq seqs actives = expand Set.empty
+  where
+    expand acc [] = 
+      [(lin,args) | (j,lin,args,key) <- Set.toList acc, j == 0]
+    expand acc (item@(j,lin,args,key) : items)
+      | item `Set.member` acc = expand acc  items
+      | otherwise             = expand acc' items'
+      where
+        acc'   = Set.insert item acc
+        items' = case lookupAC key (actives !! j) of
+                   Nothing      -> items
+                   Just (set,_) -> [if j' < j
+                                      then let lin' = take ppos (elems (unsafeAt seqs seqid))
+                                           in (j',lin'++map (inc (length args')) lin,args'++args,key')
+                                      else (j',lin,args,key') | Active j' ppos funid seqid args' key' <- Set.toList set] ++ items
+
+    inc n (SymCat d r) = SymCat (n+d) r
+    inc n (SymVar d r) = SymVar (n+d) r
+    inc n (SymLit d r) = SymLit (n+d) r
+    inc n s            = s
+
+process flit ftok cnc []                                                 acc chart = (acc,chart)
+process flit ftok cnc (item@(Active j ppos funid seqid args key0):items) acc chart
   | inRange (bounds lin) ppos =
       case unsafeAt lin ppos of
-        SymCat d r -> let !fid = args !! d
+        SymCat d r -> let PArg hypos !fid = args !! d
                           key  = AK fid r
-                                
+
                           items2 = case lookupPC (mkPK key k) (passive chart) of
                                      Nothing -> items
-                                     Just id -> (Active j (ppos+1) funid seqid (updateAt d id args) key0) : items
-                          items3 = foldForest (\funid args items -> Active k 0 funid (rhs funid r) args key : items)
-                                              (\_ _ items -> items)
-                                              items2 fid (forest chart)
+                                     Just id -> (Active j (ppos+1) funid seqid (updateAt d (PArg hypos id) args) key0) : items
+                          (acc',items4) = predict flit ftok cnc
+                                                  (IntMap.unionWith Set.union new_sc (forest chart))
+                                                  key key k
+                                                  acc items2
+
+                          new_sc    = foldl uu parent_sc hypos
+                          parent_sc = case lookupAC key0 ((active chart : actives chart) !! (k-j)) of
+                                        Nothing       -> IntMap.empty
+                                        Just (set,sc) -> sc
+
                       in case lookupAC key (active chart) of
-                           Nothing                        -> process mbt fn seqs funs items3 acc chart{active=insertAC key (Set.singleton item) (active chart)}
-                           Just set | Set.member item set -> process mbt fn seqs funs items  acc chart
-                                    | otherwise           -> process mbt fn seqs funs items2 acc chart{active=insertAC key (Set.insert item set) (active chart)}
-      	SymKS toks -> let !acc' = fn toks (Active j (ppos+1) funid seqid args key0) acc
-                      in process mbt fn seqs funs items acc' chart
+                           Nothing                             -> process flit ftok cnc items4 acc' chart{active=insertAC key (Set.singleton item,new_sc) (active chart)}
+                           Just (set,sc) | Set.member item set -> process flit ftok cnc items  acc  chart
+                                         | otherwise           -> process flit ftok cnc items2 acc  chart{active=insertAC key (Set.insert item set,IntMap.unionWith Set.union new_sc sc) (active chart)}
+      	SymKS toks -> let !acc' = ftok_ toks (Active j (ppos+1) funid seqid args key0) acc
+      	              in process flit ftok cnc items acc' chart
       	SymKP strs vars
-      	           -> let !acc' = foldl (\acc toks -> fn toks (Active j (ppos+1) funid seqid args key0) acc) acc
-                                   (strs:[strs' | Alt strs' _ <- vars])
-                      in process mbt fn seqs funs items acc' chart
-        SymLit d r -> let !fid = args !! d
-                      in case [ts | PConst _ ts <- maybe [] Set.toList (IntMap.lookup fid (forest chart))] of
-                           (toks:_) -> let !acc' = fn toks (Active j (ppos+1) funid seqid args key0) acc
-                                       in process mbt fn seqs funs items acc' chart
-                           []       -> case litCatMatch fid mbt of
-                                         Just (toks,lit) -> let fid'  = nextId chart
-                                                                !acc' = fn toks (Active j (ppos+1) funid seqid (updateAt d fid' args) key0) acc
-                                                            in process mbt fn seqs funs items acc' chart{forest=IntMap.insert fid' (Set.singleton (PConst lit toks)) (forest chart)
-                                                                                                        ,nextId=nextId chart+1
-                                                                                                        }
-                                         Nothing         -> process mbt fn seqs funs items acc chart
+      	           -> let !acc' = foldl (\acc toks -> ftok_ toks (Active j (ppos+1) funid seqid args key0) acc) acc
+                                        (strs:[strs' | Alt strs' _ <- vars])
+                      in process flit ftok cnc items acc' chart
+        SymLit d r -> let PArg hypos fid = args !! d
+                          key   = AK fid r
+                          !fid' = case lookupPC (mkPK key k) (passive chart) of
+                                    Nothing  -> fid
+                                    Just fid -> fid
+
+                      in case [ts | PConst _ _ ts <- maybe [] Set.toList (IntMap.lookup fid' (forest chart))] of
+                           (toks:_) -> let !acc' = ftok_ toks (Active j (ppos+1) funid seqid (updateAt d (PArg hypos fid') args) key0) acc
+                                       in process flit ftok cnc items acc' chart
+                           []       -> case flit fid of
+                                         Just (cat,lit,toks) 
+                                                     -> let fid'  = nextId chart
+                                                            !acc' = ftok_ toks (Active j (ppos+1) funid seqid (updateAt d (PArg hypos fid') args) key0) acc
+                                                        in process flit ftok cnc items acc' chart{passive=insertPC (mkPK key k) fid' (passive chart)
+                                                                                                 ,forest =IntMap.insert fid' (Set.singleton (PConst cat lit toks)) (forest chart)
+                                                                                                 ,nextId =nextId chart+1
+                                                                                                 }
+                                         Nothing     -> process flit ftok cnc items acc chart
+        SymVar d r -> let PArg hypos fid0 = args !! d
+                          (fid1,fid2)     = hypos !! r
+                          key   = AK fid1 0
+                          !fid' = case lookupPC (mkPK key k) (passive chart) of
+                                    Nothing  -> fid1
+                                    Just fid -> fid
+
+                      in case [ts | PConst _ _ ts <- maybe [] Set.toList (IntMap.lookup fid' (forest chart))] of
+                           (toks:_) -> let !acc' = ftok_ toks (Active j (ppos+1) funid seqid (updateAt d (PArg (updateAt r (fid',fid2) hypos) fid0) args) key0) acc
+                                       in process flit ftok cnc items acc' chart
+                           []       -> case flit fid1 of
+                                         Just (cat,lit,toks) 
+                                                 -> let fid'  = nextId chart
+                                                        !acc' = ftok_ toks (Active j (ppos+1) funid seqid (updateAt d (PArg (updateAt r (fid',fid2) hypos) fid0) args) key0) acc
+                                                    in process flit ftok cnc items acc' chart{passive=insertPC (mkPK key k) fid' (passive chart)
+                                                                                             ,forest =IntMap.insert fid' (Set.singleton (PConst cat lit toks)) (forest chart)
+                                                                                             ,nextId =nextId chart+1
+                                                                                             }
+                                         Nothing -> process flit ftok cnc items acc chart
   | otherwise =
       case lookupPC (mkPK key0 j) (passive chart) of
         Nothing -> let fid = nextId chart
                        
                        items2 = case lookupAC key0 ((active chart:actives chart) !! (k-j)) of
-                                  Nothing  -> items
-                                  Just set -> Set.fold (\(Active j' ppos funid seqid args keyc) -> 
-                                                            let SymCat d _ = unsafeAt (unsafeAt seqs seqid) ppos
-                                                            in (:) (Active j' (ppos+1) funid seqid (updateAt d fid args) keyc)) items set
-                   in process mbt fn seqs funs items2 acc chart{passive=insertPC (mkPK key0 j) fid (passive chart)
-                                                               ,forest =IntMap.insert fid (Set.singleton (PApply funid args)) (forest chart)
-                                                               ,nextId =nextId chart+1
-                                                               }
+                                  Nothing       -> items
+                                  Just (set,sc) -> Set.fold (\(Active j' ppos funid seqid args keyc) -> 
+                                                                let SymCat d _ = unsafeAt (unsafeAt (sequences cnc) seqid) ppos
+                                                                    PArg hypos _ = args !! d
+                                                                in (:) (Active j' (ppos+1) funid seqid (updateAt d (PArg hypos fid) args) keyc)) items set
+                   in process flit ftok cnc items2 acc chart{passive=insertPC (mkPK key0 j) fid (passive chart)
+                                                            ,forest =IntMap.insert fid (Set.singleton (PApply funid args)) (forest chart)
+                                                            ,nextId =nextId chart+1
+                                                            }
         Just id -> let items2 = [Active k 0 funid (rhs funid r) args (AK id r) | r <- labelsAC id (active chart)] ++ items
-                   in process mbt fn seqs funs items2 acc chart{forest = IntMap.insertWith Set.union id (Set.singleton (PApply funid args)) (forest chart)}
+                   in process flit ftok cnc items2 acc chart{forest = IntMap.insertWith Set.union id (Set.singleton (PApply funid args)) (forest chart)}
   where
-    !lin = unsafeAt seqs seqid
+    !lin = unsafeAt (sequences cnc) seqid
     !k   = offset chart
 
     mkPK (AK fid lbl) j = PK fid lbl j
     
     rhs funid lbl = unsafeAt lins lbl
       where
-        CncFun _ lins = unsafeAt funs funid
+        CncFun _ lins = unsafeAt (cncfuns cnc) funid
 
+    uu forest (fid1,fid2) =
+      case IntMap.lookup fid2 (lindefs cnc) of
+        Just funs -> foldl (\forest funid -> IntMap.insertWith Set.union fid2 (Set.singleton (PApply funid [PArg [] fid1])) forest) forest funs
+        Nothing   -> forest
+        
+    ftok_ (tok:toks) item cnt =
+      ftok (Map.singleton tok (TrieMap.singleton toks (Set.singleton item))) cnt
 
-updateAt :: Int -> a -> [a] -> [a]
-updateAt nr x xs = [if i == nr then x else y | (i,y) <- zip [0..] xs]
+predict flit ftok cnc forest key0 key@(AK fid lbl) k acc items =
+  let (acc1,items1) = case IntMap.lookup fid forest of
+                        Nothing  -> (acc,items)
+                        Just set -> Set.fold foldProd (acc,items) set
 
-litCatMatch fcat (Just t)
-  | fcat == fcatString = Just ([t],ELit (LStr t))
-  | fcat == fcatInt    = case reads t of {[(n,"")] -> Just ([t],ELit (LInt n));
-                                         _         -> Nothing }
-  | fcat == fcatFloat  = case reads t of {[(d,"")] -> Just ([t],ELit (LFlt d));
-                                         _         -> Nothing }
-  | fcat == fcatVar    = Just ([t],EFun (mkCId t))
-litCatMatch _    _     = Nothing
+      (acc2,items2) = case IntMap.lookup fid (lexicon cnc) >>= IntMap.lookup lbl of
+                        Just tmap -> let (mb_v,toks) = TrieMap.decompose (TrieMap.map (toItems key0 k) tmap)
+                                         acc1'   = ftok toks acc1
+                                         items1' = maybe [] Set.toList mb_v ++ items1
+                                     in (acc1',items1')
+                        Nothing   -> (acc1,items1)
+  in (acc2,items2)
+  where
+    foldProd (PCoerce fid)         (acc,items) = predict flit ftok cnc forest key0 (AK fid lbl) k acc items
+    foldProd (PApply funid args)   (acc,items) = (acc,Active k 0 funid (rhs funid lbl) args key0 : items)
+    foldProd (PConst _ const toks) (acc,items) = (acc,items)
+    
+    rhs funid lbl = unsafeAt lins lbl
+      where
+        CncFun _ lins = unsafeAt (cncfuns cnc) funid
 
+    toItems key@(AK fid lbl) k funids =
+      Set.fromList [Active k 1 funid (rhs funid lbl) [] key | funid <- IntSet.toList funids]
 
+
+updateAt :: Int -> a -> [a] -> [a]
+updateAt nr x xs = [if i == nr then x else y | (i,y) <- zip [0..] xs]
+
 ----------------------------------------------------------------
 -- Active Chart
 ----------------------------------------------------------------
@@ -271,22 +421,23 @@
            {-# UNPACK #-} !DotPos
            {-# UNPACK #-} !FunId
            {-# UNPACK #-} !SeqId
-                           [FId]
+                          [PArg]
            {-# UNPACK #-} !ActiveKey
   deriving (Eq,Show,Ord)
 data ActiveKey
   = AK {-# UNPACK #-} !FId
        {-# UNPACK #-} !LIndex
   deriving (Eq,Ord,Show)
-type ActiveChart  = IntMap.IntMap (IntMap.IntMap (Set.Set Active))
+type ActiveSet   = Set.Set Active
+type ActiveChart = IntMap.IntMap (IntMap.IntMap (ActiveSet, IntMap.IntMap (Set.Set Production)))
 
 emptyAC :: ActiveChart
 emptyAC = IntMap.empty
 
-lookupAC :: ActiveKey -> ActiveChart -> Maybe (Set.Set Active)
-lookupAC (AK fcat l) chart = IntMap.lookup fcat chart >>= IntMap.lookup l
+lookupAC :: ActiveKey -> ActiveChart -> Maybe (ActiveSet, IntMap.IntMap (Set.Set Production))
+lookupAC (AK fid lbl) chart = IntMap.lookup fid chart >>= IntMap.lookup lbl
 
-lookupACByFCat :: FId -> ActiveChart -> [Set.Set Active]
+lookupACByFCat :: FId -> ActiveChart -> [(ActiveSet, IntMap.IntMap (Set.Set Production))]
 lookupACByFCat fcat chart =
   case IntMap.lookup fcat chart of
     Nothing  -> []
@@ -298,7 +449,7 @@
     Nothing  -> []
     Just map -> IntMap.keys map
 
-insertAC :: ActiveKey -> Set.Set Active -> ActiveChart -> ActiveChart
+insertAC :: ActiveKey -> (ActiveSet, IntMap.IntMap (Set.Set Production)) -> ActiveChart -> ActiveChart
 insertAC (AK fcat l) set chart = IntMap.insertWith IntMap.union fcat (IntMap.singleton l set) chart
 
 
@@ -325,27 +476,12 @@
 
 
 ----------------------------------------------------------------
--- Forest
-----------------------------------------------------------------
-
-foldForest :: (FunId -> [FId] -> b -> b) -> (Expr -> [String] -> b -> b) -> b -> FId -> IntMap.IntMap (Set.Set Production) -> b
-foldForest f g b fcat forest =
-  case IntMap.lookup fcat forest of
-    Nothing  -> b
-    Just set -> Set.fold foldProd b set
-  where
-    foldProd (PCoerce fcat)      b = foldForest f g b fcat forest
-    foldProd (PApply funid args) b = f funid args b
-    foldProd (PConst const toks) b = g const toks b
-
-
-----------------------------------------------------------------
 -- Parse State
 ----------------------------------------------------------------
 
 -- | An abstract data type whose values represent
 -- the current state in an incremental parser.
-data ParseState = PState PGF Concr Chart (TMap.TrieMap String (Set.Set Active))
+data ParseState = PState Abstr Concr Chart Continuation
 
 data Chart
   = Chart
@@ -358,10 +494,12 @@
       }
       deriving Show
 
+type Continuation = TrieMap.TrieMap Token ActiveSet
+
 ----------------------------------------------------------------
 -- Error State
 ----------------------------------------------------------------
 
 -- | An abstract data type whose values represent
 -- the state in an incremental parser after an error.
-data ErrorState = EState PGF Concr Chart
+data ErrorState = EState Abstr Concr Chart
diff --git a/src/runtime/haskell/PGF/Printer.hs b/src/runtime/haskell/PGF/Printer.hs
--- a/src/runtime/haskell/PGF/Printer.hs
+++ b/src/runtime/haskell/PGF/Printer.hs
@@ -26,19 +26,19 @@
                char '}'
 
 ppFlag :: CId -> Literal -> Doc
-ppFlag flag value = text "flag" <+> ppCId flag <+> char '=' <+> ppLit value ;
+ppFlag flag value = text "flag" <+> ppCId flag <+> char '=' <+> ppLit value <+> char ';'
 
-ppCat :: CId -> ([Hypo],[CId]) -> Doc
-ppCat c (hyps,_) = text "cat" <+> ppCId c <+> hsep (snd (mapAccumL (ppHypo 4) [] hyps))
+ppCat :: CId -> ([Hypo],[(Double,CId)]) -> Doc
+ppCat c (hyps,_) = text "cat" <+> ppCId c <+> hsep (snd (mapAccumL (ppHypo 4) [] hyps)) <+> char ';'
 
-ppFun :: CId -> (Type,Int,Maybe [Equation]) -> Doc
-ppFun f (t,_,Just eqs) = text "fun" <+> ppCId f <+> colon <+> ppType 0 [] t $$
-                         if null eqs
-                           then empty
-                           else text "def" <+> vcat [let scope = foldl pattScope [] patts
-                                                         ds    = map (ppPatt 9 scope) patts
-                                                     in ppCId f <+> hsep ds <+> char '=' <+> ppExpr 0 scope res | Equ patts res <- eqs]
-ppFun f (t,_,Nothing)  = text "data" <+> ppCId f <+> colon <+> ppType 0 [] t
+ppFun :: CId -> (Type,Int,Maybe [Equation],Double) -> Doc
+ppFun f (t,_,Just eqs,_) = text "fun" <+> ppCId f <+> colon <+> ppType 0 [] t <+> char ';' $$
+                           if null eqs
+                             then empty
+                             else text "def" <+> vcat [let scope = foldl pattScope [] patts
+                                                           ds    = map (ppPatt 9 scope) patts
+                                                       in ppCId f <+> hsep ds <+> char '=' <+> ppExpr 0 scope res <+> char ';' | Equ patts res <- eqs]
+ppFun f (t,_,Nothing,_)  = text "data" <+> ppCId f <+> colon <+> ppType 0 [] t <+> char ';'
 
 ppCnc :: Language -> Concr -> Doc
 ppCnc name cnc =
@@ -46,33 +46,49 @@
   nest 2 (ppAll ppFlag (cflags cnc) $$
           text "productions" $$
           nest 2 (vcat [ppProduction (fcat,prod) | (fcat,set) <- IntMap.toList (productions cnc), prod <- Set.toList set]) $$
-          text "functions" $$
+          text "lindefs" $$
+          nest 2 (vcat (map ppLinDef (IntMap.toList (lindefs cnc)))) $$
+          text "lin" $$
           nest 2 (vcat (map ppCncFun (assocs (cncfuns cnc)))) $$
           text "sequences" $$
           nest 2 (vcat (map ppSeq (assocs (sequences cnc)))) $$
           text "categories" $$
-          nest 2 (vcat (map ppCncCat (Map.toList (cnccats cnc))))) $$
+          nest 2 (vcat (map ppCncCat (Map.toList (cnccats cnc)))) $$
+          text "printnames" $$
+          nest 2 (vcat (map ppPrintName (Map.toList (printnames cnc))))) $$
   char '}'
 
-ppProduction (fcat,PApply funid args) =
-  ppFCat fcat <+> text "->" <+> ppFunId funid <> brackets (hcat (punctuate comma (map ppFCat args)))
-ppProduction (fcat,PCoerce arg) =
-  ppFCat fcat <+> text "->" <+> char '_' <> brackets (ppFCat arg)
-ppProduction (fcat,PConst _ ss) =
-  ppFCat fcat <+> text "->" <+> ppStrs ss
+ppCncArg :: PArg -> Doc
+ppCncArg (PArg hyps fid)
+  | null hyps = ppFId fid
+  | otherwise = hsep (map (ppFId . snd) hyps) <+> text "->" <+> ppFId fid
 
+ppProduction (fid,PApply funid args) =
+  ppFId fid <+> text "->" <+> ppFunId funid <> brackets (hcat (punctuate comma (map ppCncArg args)))
+ppProduction (fid,PCoerce arg) =
+  ppFId fid <+> text "->" <+> char '_' <> brackets (ppFId arg)
+ppProduction (fid,PConst _ _ ss) =
+  ppFId fid <+> text "->" <+> ppStrs ss
+
 ppCncFun (funid,CncFun fun arr) =
   ppFunId funid <+> text ":=" <+> parens (hcat (punctuate comma (map ppSeqId (elems arr)))) <+> brackets (ppCId fun)
 
+ppLinDef (fid,funids) = 
+  ppFId fid <+> text "->" <+> hcat (punctuate comma (map ppFunId funids))
+
 ppSeq (seqid,seq) = 
   ppSeqId seqid <+> text ":=" <+> hsep (map ppSymbol (elems seq))
 
 ppCncCat (id,(CncCat start end labels)) =
-  ppCId id <+> text ":=" <+> (text "range " <+> brackets (ppFCat start <+> text ".." <+> ppFCat end) $$
+  ppCId id <+> text ":=" <+> (text "range " <+> brackets (ppFId start <+> text ".." <+> ppFId end) $$
                               text "labels" <+> brackets (vcat (map (text . show) (elems labels))))
 
+ppPrintName (id,name) =
+  ppCId id <+> text ":=" <+> ppStrs [name]
+
 ppSymbol (SymCat d r) = char '<' <> int d <> comma <> int r <> char '>'
-ppSymbol (SymLit d r) = char '<' <> int d <> comma <> int r <> char '>'
+ppSymbol (SymLit d r) = char '{' <> int d <> comma <> int r <> char '}'
+ppSymbol (SymVar d r) = char '<' <> int d <> comma <> char '$' <> int r <> char '>'
 ppSymbol (SymKS ts)   = ppStrs ts
 ppSymbol (SymKP ts alts) = text "pre" <+> braces (hsep (punctuate semi (ppStrs ts : map ppAlt alts)))
 
@@ -80,12 +96,12 @@
 
 ppStrs ss = doubleQuotes (hsep (map text ss))
 
-ppFCat  fcat
-  | fcat == fcatString = text "CString"
-  | fcat == fcatInt    = text "CInt"
-  | fcat == fcatFloat  = text "CFloat"
-  | fcat == fcatVar    = text "CVar"
-  | otherwise          = char 'C' <> int fcat
+ppFId fid
+  | fid == fidString = text "CString"
+  | fid == fidInt    = text "CInt"
+  | fid == fidFloat  = text "CFloat"
+  | fid == fidVar    = text "CVar"
+  | otherwise        = char 'C' <> int fid
 
 ppFunId funid = char 'F' <> int funid
 ppSeqId seqid = char 'S' <> int seqid
diff --git a/src/runtime/haskell/PGF/Probabilistic.hs b/src/runtime/haskell/PGF/Probabilistic.hs
--- a/src/runtime/haskell/PGF/Probabilistic.hs
+++ b/src/runtime/haskell/PGF/Probabilistic.hs
@@ -1,72 +1,99 @@
-module PGF.Probabilistic (
-  probTree                -- :: Probabilities -> Tree -> Double
- ,rankTreesByProbs        -- :: Probabilities -> [Tree] -> [Tree]
- ,Probabilities           -- data
- ,prProbabilities         -- Probabilities -> String
- ,catProbs
- ,getProbsFromFile        -- :: FilePath -> PGF -> IO Probabilities
- ,defaultProbabilities    -- :: PGF -> Probabilities
- ) where
+module PGF.Probabilistic
+         ( Probabilities(..)
+         , mkProbabilities                 -- :: PGF -> M.Map CId Double -> Probabilities
+         , defaultProbabilities            -- :: PGF -> Probabilities
+         , getProbabilities
+         , setProbabilities
+         , showProbabilities               -- :: Probabilities -> String
+         , readProbabilitiesFromFile       -- :: FilePath -> PGF -> IO Probabilities
 
+         , probTree
+         , rankTreesByProbs
+         ) where
+
 import PGF.CId
 import PGF.Data
 import PGF.Macros
 
-import qualified Data.Map as M
+import qualified Data.Map as Map
 import Data.List (sortBy,partition)
+import Data.Maybe (fromMaybe, fromJust)
 
+-- | An abstract data structure which represents
+-- the probabilities for the different functions in a grammar.
 data Probabilities = Probs {
-  funProbs :: M.Map CId Double,
-  catProbs :: M.Map CId [(Double, (CId,[CId]))] -- prob and arglist
+  funProbs :: Map.Map CId Double,
+  catProbs :: Map.Map CId [(Double, CId)]
   }
 
-prProbabilities :: Probabilities -> String
-prProbabilities = unlines . map pr . M.toList . funProbs where
+-- | Renders the probability structure as string
+showProbabilities :: Probabilities -> String
+showProbabilities = unlines . map pr . Map.toList . funProbs where
   pr (f,d) = showCId f ++ "\t" ++ show d
 
-getProbsFromFile :: FilePath -> PGF -> IO Probabilities
-getProbsFromFile file pgf = do
+-- | Reads the probabilities from a file.
+-- This should be a text file where on every line
+-- there is a function name followed by a real number.
+-- The number represents the probability mass allocated for that function.
+-- The function name and the probability should be separated by a whitespace.
+readProbabilitiesFromFile :: FilePath -> PGF -> IO Probabilities
+readProbabilitiesFromFile file pgf = do
   s <- readFile file
-  let ps0 = M.fromList [(mkCId f,read p) | f:p:_ <- map words (lines s)]
-  return $ fillProbs pgf ps0
+  let ps0 = Map.fromList [(mkCId f,read p) | f:p:_ <- map words (lines s)]
+  return $ mkProbabilities pgf ps0
 
--- | build probability tables by filling unspecified funs with prob sum
---   TODO: check that probabilities sum to 1
-fillProbs :: PGF -> M.Map CId Double -> Probabilities
-fillProbs pgf funs = 
-  let
-     cats0 = [(cat,[(f,fst (catSkeleton ty)) | (f,ty) <- fs]) 
-                | (cat,_) <- M.toList (cats (abstract pgf)), 
-                  let fs = functionsToCat pgf cat]
-     cats1 = map fill cats0
-     funs1 = [(f,p) | (_,cf) <- cats1, (p,(f,_)) <- cf]
-     in Probs (M.fromList funs1) (M.fromList cats1)
- where
-  fill (cat,fs) = (cat, pad [(getProb0 f,(f,xs)) | (f,xs) <- fs]) 
-    where
-      getProb0 :: CId -> Double
-      getProb0 f = maybe (-1) id $ M.lookup f funs
-      pad :: [(Double,a)] -> [(Double,a)]
-      pad pfs = [(if p== -1 then deflt else p,f) | (p,f) <- pfs]
-        where
-          deflt = case length negs of
-            0 -> 0
-            _ -> (1 - sum poss) / fromIntegral (length negs) 
-          (poss,negs) = partition (> (-0.5)) (map fst pfs)
+-- | Builds probability tables. The second argument is a map
+-- which contains the know probabilities. If some function is
+-- not in the map then it gets assigned some probability based
+-- on the even distribution of the unallocated probability mass
+-- for the result category.
+mkProbabilities :: PGF -> Map.Map CId Double -> Probabilities
+mkProbabilities pgf probs =
+  let funs1 = Map.fromList [(f,p) | (_,cf) <- Map.toList cats1, (p,f) <- cf]
+      cats1 = Map.map (\(_,fs) -> fill fs) (cats (abstract pgf))
+  in Probs funs1 cats1
+  where
+    fill fs = pad [(Map.lookup f probs,f) | (_,f) <- fs]
+      where
+        pad :: [(Maybe Double,a)] -> [(Double,a)]
+        pad pfs = [(fromMaybe deflt mb_p,f) | (mb_p,f) <- pfs]
+          where
+            deflt = case length [f | (Nothing,f) <- pfs] of
+                      0 -> 0
+                      n -> (1 - sum [d | (Just d,f) <- pfs]) / fromIntegral n
 
+-- | Returns the default even distibution.
 defaultProbabilities :: PGF -> Probabilities
-defaultProbabilities pgf = fillProbs pgf M.empty
+defaultProbabilities pgf = mkProbabilities pgf Map.empty
 
+getProbabilities :: PGF -> Probabilities
+getProbabilities pgf = Probs {
+  funProbs = Map.map (\(_,_,_,p) -> p) (funs (abstract pgf)),
+  catProbs = Map.map (\(_,fns) -> fns) (cats (abstract pgf))
+  }
+
+setProbabilities :: Probabilities -> PGF -> PGF
+setProbabilities probs pgf = pgf {
+  abstract = (abstract pgf) {
+    funs = mapUnionWith (\(ty,a,df,_) p -> (ty,a,df,p)) (funs (abstract pgf)) (funProbs probs),
+    cats = mapUnionWith (\(hypos,_) fns -> (hypos,fns)) (cats (abstract pgf)) (catProbs probs)
+  }}
+  where
+    mapUnionWith f map1 map2 = 
+      Map.mapWithKey (\k v -> maybe v (f v) (Map.lookup k map2)) map1
+
 -- | compute the probability of a given tree
-probTree :: Probabilities -> Expr -> Double
-probTree probs t = case t of
-  EApp f e -> probTree probs f * probTree probs e
-  EFun f   -> maybe 1 id $ M.lookup f (funProbs probs)
+probTree :: PGF -> Expr -> Double
+probTree pgf t = case t of
+  EApp f e -> probTree pgf f * probTree pgf e
+  EFun f   -> case Map.lookup f (funs (abstract pgf)) of
+                Just (_,_,_,p) -> p
+                Nothing        -> 1
   _ -> 1
 
 -- | rank from highest to lowest probability
-rankTreesByProbs :: Probabilities -> [Expr] -> [(Expr,Double)]
-rankTreesByProbs probs ts = sortBy (\ (_,p) (_,q) -> compare q p) 
-  [(t, probTree probs t) | t <- ts]
+rankTreesByProbs :: PGF -> [Expr] -> [(Expr,Double)]
+rankTreesByProbs pgf ts = sortBy (\ (_,p) (_,q) -> compare q p) 
+  [(t, probTree pgf t) | t <- ts]
 
 
diff --git a/src/runtime/haskell/PGF/Signature.hs b/src/runtime/haskell/PGF/Signature.hs
new file mode 100644
--- /dev/null
+++ b/src/runtime/haskell/PGF/Signature.hs
@@ -0,0 +1,11 @@
+module PGF.Signature where
+
+import qualified Data.Map as Map
+
+constFuncs :: Map.Map String (String,[String])
+constFuncs = Map.fromList [("AAnter",("Ant",[])),("ASimul",("Ant",[])),("D_0",("Dig",[])),("D_1",("Dig",[])),("D_2",("Dig",[])),("D_3",("Dig",[])),("D_4",("Dig",[])),("D_5",("Dig",[])),("D_6",("Dig",[])),("D_7",("Dig",[])),("D_8",("Dig",[])),("D_9",("Dig",[])),("DefArt",("Quant",[])),("IdRP",("RP",[])),("IndefArt",("Quant",[])),("NoPConj",("PConj",[])),("NoVoc",("Voc",[])),("NumPl",("Num",[])),("NumSg",("Num",[])),("PNeg",("Pol",[])),("PPos",("Pol",[])),("TCond",("Tense",[])),("TEmpty",("Text",[])),("TFut",("Tense",[])),("TPast",("Tense",[])),("TPres",("Tense",[])),("UseCopula",("VP",[])),("above_Prep",("Prep",[])),("after_Prep",("Prep",[])),("alas_Interj",("Interj",[])),("all_Predet",("Predet",[])),("almost_AdA",("AdA",[])),("almost_AdN",("AdN",[])),("already_Adv",("Adv",[])),("although_Subj",("Subj",[])),("always_AdV",("AdV",[])),("and_Conj",("Conj",[])),("answer_V2S",("V2S",[])),("as_CAdv",("CAdv",[])),("ask_V2Q",("V2Q",[])),("at_least_AdN",("AdN",[])),("at_most_AdN",("AdN",[])),("because_Subj",("Subj",[])),("before_Prep",("Prep",[])),("beg_V2V",("V2V",[])),("behind_Prep",("Prep",[])),("between_Prep",("Prep",[])),("both7and_DConj",("Conj",[])),("but_PConj",("PConj",[])),("by8agent_Prep",("Prep",[])),("by8means_Prep",("Prep",[])),("during_Prep",("Prep",[])),("either7or_DConj",("Conj",[])),("every_Det",("Det",[])),("everybody_NP",("NP",[])),("everything_NP",("NP",[])),("everywhere_Adv",("Adv",[])),("except_Prep",("Prep",[])),("far_Adv",("Adv",[])),("few_Det",("Det",[])),("for_Prep",("Prep",[])),("from_Prep",("Prep",[])),("he_Pron",("Pron",[])),("here7from_Adv",("Adv",[])),("here7to_Adv",("Adv",[])),("here_Adv",("Adv",[])),("how8many_IDet",("IDet",[])),("how8much_IAdv",("IAdv",[])),("how_IAdv",("IAdv",[])),("i_Pron",("Pron",[])),("if_Subj",("Subj",[])),("if_then_Conj",("Conj",[])),("in8front_Prep",("Prep",[])),("in_Prep",("Prep",[])),("it_Pron",("Pron",[])),("language_title_Utt",("Utt",[])),("left_Ord",("Ord",[])),("less_CAdv",("CAdv",[])),("many_Det",("Det",[])),("more_CAdv",("CAdv",[])),("most_Predet",("Predet",[])),("much_Det",("Det",[])),("n2",("Digit",[])),("n3",("Digit",[])),("n4",("Digit",[])),("n5",("Digit",[])),("n6",("Digit",[])),("n7",("Digit",[])),("n8",("Digit",[])),("n9",("Digit",[])),("no_Quant",("Quant",[])),("no_Utt",("Utt",[])),("nobody_NP",("NP",[])),("not_Predet",("Predet",[])),("nothing_NP",("NP",[])),("now_Adv",("Adv",[])),("on_Prep",("Prep",[])),("only_Predet",("Predet",[])),("or_Conj",("Conj",[])),("otherwise_PConj",("PConj",[])),("paint_V2A",("V2A",[])),("part_Prep",("Prep",[])),("please_Voc",("Voc",[])),("possess_Prep",("Prep",[])),("pot01",("Sub10",[])),("pot110",("Sub100",[])),("pot111",("Sub100",[])),("quite_Adv",("AdA",[])),("right_Ord",("Ord",[])),("she_Pron",("Pron",[])),("so_AdA",("AdA",[])),("somePl_Det",("Det",[])),("someSg_Det",("Det",[])),("somebody_NP",("NP",[])),("something_NP",("NP",[])),("somewhere_Adv",("Adv",[])),("that_Quant",("Quant",[])),("that_Subj",("Subj",[])),("there7from_Adv",("Adv",[])),("there7to_Adv",("Adv",[])),("there_Adv",("Adv",[])),("therefore_PConj",("PConj",[])),("they_Pron",("Pron",[])),("this_Quant",("Quant",[])),("through_Prep",("Prep",[])),("to_Prep",("Prep",[])),("today_Adv",("Adv",[])),("too_AdA",("AdA",[])),("under_Prep",("Prep",[])),("very_AdA",("AdA",[])),("we_Pron",("Pron",[])),("whatPl_IP",("IP",[])),("whatSg_IP",("IP",[])),("when_IAdv",("IAdv",[])),("when_Subj",("Subj",[])),("where_IAdv",("IAdv",[])),("which_IQuant",("IQuant",[])),("whoPl_IP",("IP",[])),("whoSg_IP",("IP",[])),("why_IAdv",("IAdv",[])),("with_Prep",("Prep",[])),("without_Prep",("Prep",[])),("yes_Utt",("Utt",[])),("youPl_Pron",("Pron",[])),("youPol_Pron",("Pron",[])),("youSg_Pron",("Pron",[]))]
+
+
+
+syntaxFuncs :: Map.Map String (String,[String])
+syntaxFuncs = Map.fromList [("AdAP",("AP",["AdA","AP"])),("AdAdv",("Adv",["AdA","Adv"])),("AdNum",("Card",["AdN","Card"])),("AdVVP",("VP",["AdV","VP"])),("AddAdvQVP",("QVP",["QVP","IAdv"])),("AdjCN",("CN",["AP","CN"])),("AdjOrd",("AP",["Ord"])),("AdnCAdv",("AdN",["CAdv"])),("AdvAP",("AP",["AP","Adv"])),("AdvCN",("CN",["CN","Adv"])),("AdvIAdv",("IAdv",["IAdv","Adv"])),("AdvIP",("IP",["IP","Adv"])),("AdvNP",("NP",["NP","Adv"])),("AdvQVP",("QVP",["VP","IAdv"])),("AdvS",("S",["Adv","S"])),("AdvSlash",("ClSlash",["ClSlash","Adv"])),("AdvVP",("VP",["VP","Adv"])),("ApposCN",("CN",["CN","NP"])),("BaseAP",("ListAP",["AP","AP"])),("BaseAdv",("ListAdv",["Adv","Adv"])),("BaseCN",("ListCN",["CN","CN"])),("BaseIAdv",("ListIAdv",["IAdv","IAdv"])),("BaseNP",("ListNP",["NP","NP"])),("BaseRS",("ListRS",["RS","RS"])),("BaseS",("ListS",["S","S"])),("CAdvAP",("AP",["CAdv","AP","NP"])),("CleftAdv",("Cl",["Adv","S"])),("CleftNP",("Cl",["NP","RS"])),("CompAP",("Comp",["AP"])),("CompAdv",("Comp",["Adv"])),("CompCN",("Comp",["CN"])),("CompIAdv",("IComp",["IAdv"])),("CompIP",("IComp",["IP"])),("CompNP",("Comp",["NP"])),("ComparA",("AP",["A","NP"])),("ComparAdvAdj",("Adv",["CAdv","A","NP"])),("ComparAdvAdjS",("Adv",["CAdv","A","S"])),("ComplA2",("AP",["A2","NP"])),("ComplN2",("CN",["N2","NP"])),("ComplN3",("N2",["N3","NP"])),("ComplSlash",("VP",["VPSlash","NP"])),("ComplSlashIP",("QVP",["VPSlash","IP"])),("ComplVA",("VP",["VA","AP"])),("ComplVQ",("VP",["VQ","QS"])),("ComplVS",("VP",["VS","S"])),("ComplVV",("VP",["VV","VP"])),("ConjAP",("AP",["Conj","ListAP"])),("ConjAdv",("Adv",["Conj","ListAdv"])),("ConjCN",("CN",["Conj","ListCN"])),("ConjIAdv",("IAdv",["Conj","ListIAdv"])),("ConjNP",("NP",["Conj","ListNP"])),("ConjRS",("RS",["Conj","ListRS"])),("ConjS",("S",["Conj","ListS"])),("ConsAP",("ListAP",["AP","ListAP"])),("ConsAdv",("ListAdv",["Adv","ListAdv"])),("ConsCN",("ListCN",["CN","ListCN"])),("ConsIAdv",("ListIAdv",["IAdv","ListIAdv"])),("ConsNP",("ListNP",["NP","ListNP"])),("ConsRS",("ListRS",["RS","ListRS"])),("ConsS",("ListS",["S","ListS"])),("DetCN",("NP",["Det","CN"])),("DetNP",("NP",["Det"])),("DetQuant",("Det",["Quant","Num"])),("DetQuantOrd",("Det",["Quant","Num","Ord"])),("EmbedQS",("SC",["QS"])),("EmbedS",("SC",["S"])),("EmbedVP",("SC",["VP"])),("ExistIP",("QCl",["IP"])),("ExistNP",("Cl",["NP"])),("FunRP",("RP",["Prep","NP","RP"])),("GenericCl",("Cl",["VP"])),("IDig",("Digits",["Dig"])),("IIDig",("Digits",["Dig","Digits"])),("IdetCN",("IP",["IDet","CN"])),("IdetIP",("IP",["IDet"])),("IdetQuant",("IDet",["IQuant","Num"])),("ImpP3",("Utt",["NP","VP"])),("ImpPl1",("Utt",["VP"])),("ImpVP",("Imp",["VP"])),("ImpersCl",("Cl",["VP"])),("MassNP",("NP",["CN"])),("NumCard",("Num",["Card"])),("NumDigits",("Card",["Digits"])),("NumNumeral",("Card",["Numeral"])),("OrdDigits",("Ord",["Digits"])),("OrdNumeral",("Ord",["Numeral"])),("OrdSuperl",("Ord",["A"])),("PConjConj",("PConj",["Conj"])),("PPartNP",("NP",["NP","V2"])),("PassV2",("VP",["V2"])),("PhrUtt",("Phr",["PConj","Utt","Voc"])),("PositA",("AP",["A"])),("PositAdAAdj",("AdA",["A"])),("PositAdvAdj",("Adv",["A"])),("PossPron",("Quant",["Pron"])),("PredSCVP",("Cl",["SC","VP"])),("PredVP",("Cl",["NP","VP"])),("PredetNP",("NP",["Predet","NP"])),("PrepIP",("IAdv",["Prep","IP"])),("PrepNP",("Adv",["Prep","NP"])),("ProgrVP",("VP",["VP"])),("QuestCl",("QCl",["Cl"])),("QuestIAdv",("QCl",["IAdv","Cl"])),("QuestIComp",("QCl",["IComp","NP"])),("QuestQVP",("QCl",["IP","QVP"])),("QuestSlash",("QCl",["IP","ClSlash"])),("QuestVP",("QCl",["IP","VP"])),("ReflA2",("AP",["A2"])),("ReflVP",("VP",["VPSlash"])),("RelCN",("CN",["CN","RS"])),("RelCl",("RCl",["Cl"])),("RelNP",("NP",["NP","RS"])),("RelS",("S",["S","RS"])),("RelSlash",("RCl",["RP","ClSlash"])),("RelVP",("RCl",["RP","VP"])),("SSubjS",("S",["S","Subj","S"])),("SentAP",("AP",["AP","SC"])),("SentCN",("CN",["CN","SC"])),("Slash2V3",("VPSlash",["V3","NP"])),("Slash3V3",("VPSlash",["V3","NP"])),("SlashPrep",("ClSlash",["Cl","Prep"])),("SlashV2A",("VPSlash",["V2A","AP"])),("SlashV2Q",("VPSlash",["V2Q","QS"])),("SlashV2S",("VPSlash",["V2S","S"])),("SlashV2V",("VPSlash",["V2V","VP"])),("SlashV2VNP",("VPSlash",["V2V","NP","VPSlash"])),("SlashV2a",("VPSlash",["V2"])),("SlashVP",("ClSlash",["NP","VPSlash"])),("SlashVS",("ClSlash",["NP","VS","SSlash"])),("SlashVV",("VPSlash",["VV","VPSlash"])),("SubjS",("Adv",["Subj","S"])),("TExclMark",("Text",["Phr","Text"])),("TFullStop",("Text",["Phr","Text"])),("TQuestMark",("Text",["Phr","Text"])),("TTAnt",("Temp",["Tense","Ant"])),("Use2N3",("N2",["N3"])),("Use3N3",("N2",["N3"])),("UseA2",("AP",["A2"])),("UseCl",("S",["Temp","Pol","Cl"])),("UseComp",("VP",["Comp"])),("UseComparA",("AP",["A"])),("UseN",("CN",["N"])),("UseN2",("CN",["N2"])),("UsePN",("NP",["PN"])),("UsePron",("NP",["Pron"])),("UseQCl",("QS",["Temp","Pol","QCl"])),("UseRCl",("RS",["Temp","Pol","RCl"])),("UseSlash",("SSlash",["Temp","Pol","ClSlash"])),("UseV",("VP",["V"])),("UttAP",("Utt",["AP"])),("UttAdv",("Utt",["Adv"])),("UttCN",("Utt",["CN"])),("UttCard",("Utt",["Card"])),("UttIAdv",("Utt",["IAdv"])),("UttIP",("Utt",["IP"])),("UttImpPl",("Utt",["Pol","Imp"])),("UttImpPol",("Utt",["Pol","Imp"])),("UttImpSg",("Utt",["Pol","Imp"])),("UttInterj",("Utt",["Interj"])),("UttNP",("Utt",["NP"])),("UttQS",("Utt",["QS"])),("UttS",("Utt",["S"])),("UttVP",("Utt",["VP"])),("VocNP",("Voc",["NP"])),("dconcat",("Digits",["Digits","Digits"])),("digits2num",("Numeral",["Digits"])),("dn",("Digit",["Dig"])),("dn10",("Sub10",["Dig"])),("dn100",("Sub100",["Dig","Dig"])),("dn1000",("Sub1000",["Dig","Dig","Dig"])),("dn1000000a",("Sub1000000",["Dig","Dig","Dig","Dig"])),("dn1000000b",("Sub1000000",["Dig","Dig","Dig","Dig","Dig"])),("dn1000000c",("Sub1000000",["Dig","Dig","Dig","Dig","Dig","Dig"])),("nd",("Dig",["Digit"])),("nd10",("Digits",["Sub10"])),("nd100",("Digits",["Sub100"])),("nd1000",("Digits",["Sub1000"])),("nd1000000",("Digits",["Sub1000000"])),("num",("Numeral",["Sub1000000"])),("num2digits",("Digits",["Numeral"])),("pot0",("Sub10",["Digit"])),("pot0as1",("Sub100",["Sub10"])),("pot1",("Sub100",["Digit"])),("pot1as2",("Sub1000",["Sub100"])),("pot1plus",("Sub100",["Digit","Sub10"])),("pot1to19",("Sub100",["Digit"])),("pot2",("Sub1000",["Sub10"])),("pot2as3",("Sub1000000",["Sub1000"])),("pot2plus",("Sub1000",["Sub10","Sub100"])),("pot3",("Sub1000000",["Sub1000"])),("pot3plus",("Sub1000000",["Sub1000","Sub1000"]))]
diff --git a/src/runtime/haskell/PGF/Tree.hs b/src/runtime/haskell/PGF/Tree.hs
--- a/src/runtime/haskell/PGF/Tree.hs
+++ b/src/runtime/haskell/PGF/Tree.hs
@@ -61,7 +61,8 @@
                | List.null as = Meta n
                | otherwise    = error "meta variables of function type are not allowed in trees"
     app xs as (EAbs _ x e)    = error "beta redexes are not allowed in trees"
-    app xs as (EVar i)        = Var (xs !! i)
+    app xs as (EVar i)        = if length xs > i then Var (xs !! i) else Meta i
+                         ---- AR 14/12/2010: work-around needed in PGF.Paraphrase.fromDef
     app xs as (EFun f)        = Fun f as
     app xs as (ETyped e _)    = app xs as e
 
diff --git a/src/runtime/haskell/PGF/Type.hs b/src/runtime/haskell/PGF/Type.hs
--- a/src/runtime/haskell/PGF/Type.hs
+++ b/src/runtime/haskell/PGF/Type.hs
@@ -1,6 +1,7 @@
 module PGF.Type ( Type(..), Hypo,
                   readType, showType,
                   mkType, mkHypo, mkDepHypo, mkImplHypo,
+                  unType,
                   pType, ppType, ppHypo ) where
 
 import PGF.CId
@@ -51,6 +52,9 @@
 mkImplHypo :: CId -> Type -> Hypo
 mkImplHypo x ty = (Implicit,x,ty)
 
+unType :: Type -> ([Hypo], CId, [Expr])
+unType (DTyp hyps cat es) = (hyps, cat, es)
+
 pType :: RP.ReadP Type
 pType = do
   RP.skipSpaces
@@ -63,27 +67,22 @@
       do (cat,args) <- pAtom
          return [(Explicit,wildCId,DTyp [] cat args)]
       RP.<++
-      (RP.between (RP.char '(') (RP.char ')') $ do
-         xs <- RP.option [(Explicit,wildCId)] $ do
-                     xs <- pBinds
-                     RP.skipSpaces
-                     RP.char ':'
-                     return xs
-         ty <- pType
-         return [(b,v,ty) | (b,v) <- xs])
-      RP.<++
-      (RP.between (RP.char '{') (RP.char '}') $ do
-         vs <- RP.sepBy1 (RP.skipSpaces >> pCId) (RP.skipSpaces >> RP.char ',')
-         RP.skipSpaces
-         RP.char ':'
-         ty <- pType
-         return [(Implicit,v,ty) | v <- vs])
+      do RP.between (RP.char '(') (RP.char ')') pHypoBinds
 
-    pAtom = do
-      cat <- pCId
-      RP.skipSpaces
-      args <- RP.sepBy pArg RP.skipSpaces
-      return (cat, args)
+pHypoBinds = do
+   xs <- RP.option [(Explicit,wildCId)] $ do
+               xs <- pBinds
+               RP.skipSpaces
+               RP.char ':'
+               return xs
+   ty <- pType
+   return [(b,v,ty) | (b,v) <- xs]
+
+pAtom = do
+   cat <- pCId
+   RP.skipSpaces
+   args <- RP.sepBy pArg RP.skipSpaces
+   return (cat, args)
 
 ppType :: Int -> [CId] -> Type -> PP.Doc
 ppType d scope (DTyp hyps cat args)
diff --git a/src/runtime/haskell/PGF/TypeCheck.hs b/src/runtime/haskell/PGF/TypeCheck.hs
--- a/src/runtime/haskell/PGF/TypeCheck.hs
+++ b/src/runtime/haskell/PGF/TypeCheck.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, RankNTypes #-}
+
 ----------------------------------------------------------------------
 -- |
 -- Module      : PGF.TypeCheck
@@ -11,15 +13,24 @@
 --
 -----------------------------------------------------------------------------
 
-module PGF.TypeCheck (checkType, checkExpr, inferExpr,
+module PGF.TypeCheck ( checkType, checkExpr, inferExpr
 
-                      ppTcError, TcError(..)
+                     , ppTcError, TcError(..)
+
+                     -- internals needed for the typechecking of forests
+                     , MetaStore, emptyMetaStore, newMeta, newGuardedMeta
+                     , getMeta, setMeta, lookupMeta, MetaValue(..)
+                     , Scope, emptyScope, scopeSize, scopeEnv, addScopedVar
+                     , TcM(..), runTcM, TType(..), Selector(..)
+                     , tcExpr, infExpr, eqType, eqValue
+                     , lookupFunType, typeGenerators, eval
+                     , generateForMetas, generateForForest, checkResolvedMetaStore
                      ) where
 
 import PGF.Data
 import PGF.Expr hiding (eval, apply, value2expr)
 import qualified PGF.Expr as Expr
-import PGF.Macros (typeOfHypo)
+import PGF.Macros (typeOfHypo, cidInt, cidFloat, cidString)
 import PGF.CId
 
 import Data.Map as Map
@@ -27,6 +38,9 @@
 import Data.Maybe as Maybe
 import Data.List as List
 import Control.Monad
+import Control.Monad.Identity
+import Control.Monad.State
+import Control.Monad.Error
 import Text.PrettyPrint
 
 -----------------------------------------------------
@@ -63,78 +77,125 @@
 -- The Monad
 -----------------------------------------------------
 
-type MetaStore = IntMap MetaValue
-data MetaValue
-  = MUnbound Scope [Expr -> TcM ()]
+type MetaStore s = IntMap (MetaValue s)
+data MetaValue s
+  = MUnbound s Scope TType [Expr -> TcM s ()]
   | MBound   Expr
-  | MGuarded Expr  [Expr -> TcM ()] {-# UNPACK #-} !Int   -- the Int is the number of constraints that have to be solved 
-                                                          -- to unlock this meta variable
+  | MGuarded Expr  [Expr -> TcM s ()] {-# UNPACK #-} !Int   -- the Int is the number of constraints that have to be solved 
+                                                            -- to unlock this meta variable
 
-newtype TcM a = TcM {unTcM :: Abstr -> MetaId -> MetaStore -> TcResult a}
-data TcResult a
-  = Ok {-# UNPACK #-} !MetaId MetaStore a
-  | Fail TcError
+newtype TcM s a = TcM {unTcM :: forall b . Abstr -> (a -> MetaStore s -> s -> b -> b) 
+                                                 -> (TcError          -> s -> b -> b) 
+                                                 -> (MetaStore s      -> s -> b -> b)}
 
-instance Monad TcM where
-  return x = TcM (\abstr metaid ms -> Ok metaid ms x)
-  f >>= g  = TcM (\abstr metaid ms -> case unTcM f abstr metaid ms of
-                                        Ok metaid ms x   -> unTcM (g x) abstr metaid ms
-                                        Fail e           -> Fail e)
+class Selector s where
+  splitSelector :: s -> (s,s)
+  select        :: CId -> Scope -> Maybe Int -> TcM s (Expr,TType)
 
-instance Functor TcM where
-  fmap f x = TcM (\abstr metaid ms -> case unTcM x abstr metaid ms of
-                                        Ok metaid ms x   -> Ok metaid ms (f x)
-                                        Fail e           -> Fail e)
+instance Monad (TcM s) where
+  return x = TcM (\abstr k h -> k x)
+  f >>= g  = TcM (\abstr k h -> unTcM f abstr (\x -> unTcM (g x) abstr k h) h)
 
-lookupCatHyps :: CId -> TcM [Hypo]
-lookupCatHyps cat = TcM (\abstr metaid ms -> case Map.lookup cat (cats abstr) of
-                                               Just (hyps,_) -> Ok metaid ms hyps
-                                               Nothing       -> Fail (UnknownCat cat))
+instance Selector s => MonadPlus (TcM s) where
+  mzero = TcM (\abstr k h ms s -> id)
+  mplus f g = TcM (\abstr k h ms s -> let (s1,s2) = splitSelector s
+                                      in unTcM f abstr k h ms s1 . unTcM g abstr k h ms s2)
 
-lookupFunType :: CId -> TcM TType
-lookupFunType fun = TcM (\abstr metaid ms -> case Map.lookup fun (funs abstr) of
-                                               Just (ty,_,_) -> Ok metaid ms (TTyp [] ty)
-                                               Nothing       -> Fail (UnknownFun fun))
+instance MonadState s (TcM s) where
+  get = TcM (\abstr k h ms s -> k s ms s)
+  put s = TcM (\abstr k h ms _ -> k () ms s)
 
-newMeta :: Scope -> TcM MetaId
-newMeta scope = TcM (\abstr metaid ms -> Ok (metaid+1) (IntMap.insert metaid (MUnbound scope []) ms) metaid)
+instance MonadError TcError (TcM s) where
+  throwError e    = TcM (\abstr k h ms -> h e)
+  catchError f fh = TcM (\abstr k h ms -> unTcM f abstr k (\e s -> unTcM (fh e) abstr k h ms s) ms)
 
-newGuardedMeta :: Expr -> TcM MetaId
-newGuardedMeta e = TcM (\abstr metaid ms -> Ok (metaid+1) (IntMap.insert metaid (MGuarded e [] 0) ms) metaid)
+instance Functor (TcM s) where
+  fmap f m = TcM (\abstr k h -> unTcM m abstr (k . f) h)
 
-getMeta :: MetaId -> TcM MetaValue
-getMeta i = TcM (\abstr metaid ms -> Ok metaid ms $! case IntMap.lookup i ms of
-                                                       Just mv  -> mv)
-setMeta :: MetaId -> MetaValue -> TcM ()
-setMeta i mv = TcM (\abstr metaid ms -> Ok metaid (IntMap.insert i mv ms) ())
+runTcM :: Abstr -> TcM s a -> MetaStore s -> s -> ([(s,TcError)],[(MetaStore s,s,a)])
+runTcM abstr f ms s = unTcM f abstr (\x ms s cp b -> let (es,xs) = cp b
+                                                     in (es,(ms,s,x) : xs))
+                                    (\e    s cp b -> let (es,xs) = cp b
+                                                     in ((s,e) : es,xs))
+                                    ms s id ([],[])
 
+lookupCatHyps :: CId -> TcM s [Hypo]
+lookupCatHyps cat = TcM (\abstr k h ms -> case Map.lookup cat (cats abstr) of
+                                            Just (hyps,_) -> k hyps ms
+                                            Nothing       -> h (UnknownCat cat))
+
+lookupFunType :: CId -> TcM s Type
+lookupFunType fun = TcM (\abstr k h ms -> case Map.lookup fun (funs abstr) of
+                                            Just (ty,_,_,_) -> k ty ms
+                                            Nothing         -> h (UnknownFun fun))
+
+typeGenerators :: Scope -> CId -> TcM s [(Double,Expr,TType)]
+typeGenerators scope cat = fmap normalize (liftM2 (++) x y)
+  where
+    x = return
+           [(0.25,EVar i,tty) | (i,(_,tty@(TTyp _ (DTyp _ cat' _)))) <- zip [0..] gamma
+                              , cat == cat']
+         where
+           Scope gamma = scope
+
+    y | cat == cidInt    = return [(1.0,ELit (LInt 999),  TTyp [] (DTyp [] cat []))]
+      | cat == cidFloat  = return [(1.0,ELit (LFlt 3.14), TTyp [] (DTyp [] cat []))]
+      | cat == cidString = return [(1.0,ELit (LStr "Foo"),TTyp [] (DTyp [] cat []))]
+      | otherwise        = TcM (\abstr k h ms ->
+                                    case Map.lookup cat (cats abstr) of
+                                      Just (_,fns) -> unTcM (mapM helper fns) abstr k h ms
+                                      Nothing      -> h (UnknownCat cat))
+
+    helper (p,fn) = do
+      ty <- lookupFunType fn
+      return (p,EFun fn,TTyp [] ty)
+      
+    normalize gens = [(p/s,e,tty) | (p,e,tty) <- gens]
+      where
+        s = sum [p | (p,_,_) <- gens]
+
+emptyMetaStore :: MetaStore s
+emptyMetaStore = IntMap.empty
+
+newMeta :: Scope -> TType -> TcM s MetaId
+newMeta scope tty = TcM (\abstr k h ms s -> let metaid = IntMap.size ms + 1
+                                            in k metaid (IntMap.insert metaid (MUnbound s scope tty []) ms) s)
+
+newGuardedMeta :: Expr -> TcM s MetaId
+newGuardedMeta e = TcM (\abstr k h ms s -> let metaid = IntMap.size ms + 1
+                                           in k metaid (IntMap.insert metaid (MGuarded e [] 0) ms) s)
+
+getMeta :: MetaId -> TcM s (MetaValue s)
+getMeta i = TcM (\abstr k h ms -> case IntMap.lookup i ms of
+                                    Just mv -> k mv ms)
+
+setMeta :: MetaId -> MetaValue s -> TcM s ()
+setMeta i mv = TcM (\abstr k h ms -> k () (IntMap.insert i mv ms))
+
 lookupMeta ms i =
   case IntMap.lookup i ms of
     Just (MBound   t)                 -> Just t
     Just (MGuarded t _ x) | x == 0    -> Just t
                           | otherwise -> Nothing
-    Just (MUnbound _ _)               -> Nothing
+    Just (MUnbound _ _ _ _)           -> Nothing
     Nothing                           -> Nothing
 
-tcError :: TcError -> TcM a
-tcError e = TcM (\abstr metaid ms -> Fail e)
-
-addConstraint :: MetaId -> MetaId -> Env -> [Value] -> (Value -> TcM ()) -> TcM ()
-addConstraint i j env vs c = do
+addConstraint :: MetaId -> MetaId -> (Expr -> TcM s ()) -> TcM s ()
+addConstraint i j c = do
   mv   <- getMeta j
   case mv of
-    MUnbound scope cs           -> addRef >> setMeta j (MUnbound scope ((\e -> release >> apply env e vs >>= c) : cs))
-    MBound   e                  -> apply env e vs >>= c
-    MGuarded e cs x | x == 0    -> apply env e vs >>= c
-                    | otherwise -> addRef >> setMeta j (MGuarded e ((\e -> release >> apply env e vs >>= c) : cs) x)
+    MUnbound s scope tty cs     -> addRef >> setMeta j (MUnbound s scope tty ((\e -> release >> c e) : cs))
+    MBound   e                  -> c e
+    MGuarded e cs x | x == 0    -> c e
+                    | otherwise -> addRef >> setMeta j (MGuarded e ((\e -> release >> c e) : cs) x)
   where
-    addRef  = TcM (\abstr metaid ms -> case IntMap.lookup i ms of
-                                         Just (MGuarded e cs x) -> Ok metaid (IntMap.insert i (MGuarded e cs (x+1)) ms) ())
+    addRef  = TcM (\abstr k h ms -> case IntMap.lookup i ms of
+                                      Just (MGuarded e cs x) -> k () $! IntMap.insert i (MGuarded e cs (x+1)) ms)
 
-    release = TcM (\abstr metaid ms -> case IntMap.lookup i ms of
-                                         Just (MGuarded e cs x) -> if x == 1
-                                                                     then unTcM (sequence_ [c e | c <- cs]) abstr metaid (IntMap.insert i (MGuarded e [] 0) ms)
-                                                                     else Ok metaid (IntMap.insert i (MGuarded e cs (x-1)) ms) ())
+    release = TcM (\abstr k h ms -> case IntMap.lookup i ms of
+                                      Just (MGuarded e cs x) -> if x == 1
+                                                                  then unTcM (sequence_ [c e | c <- cs]) abstr k h $! IntMap.insert i (MGuarded e [] 0) ms
+                                                                  else k () $! IntMap.insert i (MGuarded e cs (x-1)) ms)
 
 -----------------------------------------------------
 -- Type errors
@@ -160,6 +221,8 @@
   | CannotInferType [CId] Expr                     -- ^ It is not possible to infer the type of an expression.
   | UnresolvedMetaVars [CId] Expr [MetaId]         -- ^ Some metavariables have to be instantiated in order to complete the typechecking.
   | UnexpectedImplArg [CId] Expr                   -- ^ Implicit argument was passed where the type doesn't allow it
+  | UnsolvableGoal [CId] MetaId Type               -- ^ There is a goal that cannot be solved
+  deriving Eq
 
 -- | Renders the type checking error to a document. See 'Text.PrettyPrint'.
 ppTcError :: TcError -> Doc
@@ -175,6 +238,8 @@
 ppTcError (UnresolvedMetaVars xs e ms) = text "Meta variable(s)" <+> fsep (List.map ppMeta ms) <+> text "should be resolved" $$
                                          text "in the expression:" <+> ppExpr 0 xs e
 ppTcError (UnexpectedImplArg xs e)     = braces (ppExpr 0 xs e) <+> text "is implicit argument but not implicit argument is expected here"
+ppTcError (UnsolvableGoal xs metaid ty)= text "The goal:" <+> ppMeta metaid <+> colon <+> ppType 0 xs ty $$
+                                         text "cannot be solved"
 
 -----------------------------------------------------
 -- checkType
@@ -184,11 +249,14 @@
 -- syntax of the grammar.
 checkType :: PGF -> Type -> Either TcError Type
 checkType pgf ty = 
-  case unTcM (tcType emptyScope ty >>= refineType) (abstract pgf) 0 IntMap.empty of
-    Ok _ ms ty  -> Right ty
-    Fail err    -> Left  err
+  unTcM (do ty <- tcType emptyScope ty
+            refineType ty)
+        (abstract pgf)
+        (\ty ms s _ -> Right ty)
+        (\err  s _ -> Left err)
+        emptyMetaStore () (error "checkType")
 
-tcType :: Scope -> Type -> TcM Type
+tcType :: Scope -> Type -> TcM s Type
 tcType scope ty@(DTyp hyps cat es) = do
   (scope,hyps) <- tcHypos scope hyps
   c_hyps <- lookupCatHyps cat
@@ -197,14 +265,14 @@
   (delta,es) <- tcCatArgs scope es [] c_hyps ty n m
   return (DTyp hyps cat es)
 
-tcHypos :: Scope -> [Hypo] -> TcM (Scope,[Hypo])
+tcHypos :: Scope -> [Hypo] -> TcM s (Scope,[Hypo])
 tcHypos scope []     = return (scope,[])
 tcHypos scope (h:hs) = do
   (scope,h ) <- tcHypo  scope h
   (scope,hs) <- tcHypos scope hs
   return (scope,h:hs)
 
-tcHypo :: Scope -> Hypo -> TcM (Scope,Hypo)
+tcHypo :: Scope -> Hypo -> TcM s (Scope,Hypo)
 tcHypo scope (b,x,ty) = do
   ty <- tcType scope ty
   if x == wildCId
@@ -212,7 +280,7 @@
     else return (addScopedVar x (TTyp (scopeEnv scope) ty) scope,(b,x,ty))
 
 tcCatArgs scope []              delta []                   ty0 n m = return (delta,[])
-tcCatArgs scope (EImplArg e:es) delta ((Explicit,x,ty):hs) ty0 n m = tcError (UnexpectedImplArg (scopeVars scope) e)
+tcCatArgs scope (EImplArg e:es) delta ((Explicit,x,ty):hs) ty0 n m = throwError (UnexpectedImplArg (scopeVars scope) e)
 tcCatArgs scope (EImplArg e:es) delta ((Implicit,x,ty):hs) ty0 n m = do
   e <- tcExpr scope e (TTyp delta ty)
   (delta,es) <- if x == wildCId
@@ -221,7 +289,7 @@
                           tcCatArgs scope es (v:delta) hs ty0 n m
   return (delta,EImplArg e:es)
 tcCatArgs scope es delta ((Implicit,x,ty):hs) ty0 n m = do
-  i <- newMeta scope
+  i <- newMeta scope (TTyp delta ty)
   (delta,es) <- if x == wildCId
                   then tcCatArgs scope es                                delta  hs ty0 n m
                   else tcCatArgs scope es (VMeta i (scopeEnv scope) [] : delta) hs ty0 n m
@@ -234,7 +302,7 @@
                           tcCatArgs scope es (v:delta) hs ty0 n m
   return (delta,e:es)
 tcCatArgs scope _ delta _ ty0@(DTyp _ cat _) n m = do
-  tcError (WrongCatArgs (scopeVars scope) ty0 cat n m)
+  throwError (WrongCatArgs (scopeVars scope) ty0 cat n m)
 
 -----------------------------------------------------
 -- checkExpr
@@ -243,14 +311,14 @@
 -- | Checks an expression against a specified type.
 checkExpr :: PGF -> Expr -> Type -> Either TcError Expr
 checkExpr pgf e ty =
-  case unTcM (do e <- tcExpr emptyScope e (TTyp [] ty)
-                 e <- refineExpr e
-                 checkResolvedMetaStore emptyScope e
-                 return e) (abstract pgf) 0 IntMap.empty of
-    Ok _ ms e  -> Right e
-    Fail err   -> Left err
+  unTcM (do e <- tcExpr emptyScope e (TTyp [] ty)
+            checkResolvedMetaStore emptyScope e)
+        (abstract pgf)
+        (\e ms s _ -> Right e)
+        (\err  s _ -> Left err)
+        emptyMetaStore () (error "checkExpr")
 
-tcExpr :: Scope -> Expr -> TType -> TcM Expr
+tcExpr :: Scope -> Expr -> TType -> TcM s Expr
 tcExpr scope e0@(EAbs Implicit x e) tty =
   case tty of
     TTyp delta (DTyp ((Implicit,y,ty):hs) c es) -> do e <- if y == wildCId
@@ -260,7 +328,7 @@
                                                                          e (TTyp ((VGen (scopeSize scope) []):delta) (DTyp hs c es))
                                                       return (EAbs Implicit x e)
     _                                           -> do ty <- evalType (scopeSize scope) tty
-                                                      tcError (NotFunType (scopeVars scope) e0 ty)
+                                                      throwError (NotFunType (scopeVars scope) e0 ty)
 tcExpr scope e0 (TTyp delta (DTyp ((Implicit,y,ty):hs) c es)) = do
   e0 <- if y == wildCId
           then tcExpr (addScopedVar wildCId (TTyp delta ty) scope)
@@ -277,9 +345,9 @@
                                                                          e (TTyp ((VGen (scopeSize scope) []):delta) (DTyp hs c es))
                                                       return (EAbs Explicit x e)
     _                                           -> do ty <- evalType (scopeSize scope) tty
-                                                      tcError (NotFunType (scopeVars scope) e0 ty)
+                                                      throwError (NotFunType (scopeVars scope) e0 ty)
 tcExpr scope (EMeta _) tty = do
-  i <- newMeta scope
+  i <- newMeta scope tty
   return (EMeta i)
 tcExpr scope e0        tty = do
   (e0,tty0) <- infExpr scope e0
@@ -298,15 +366,16 @@
 -- In this case the function returns the 'CannotInferType' error.
 inferExpr :: PGF -> Expr -> Either TcError (Expr,Type)
 inferExpr pgf e =
-  case unTcM (do (e,tty) <- infExpr emptyScope e
-                 e <- refineExpr e
-                 checkResolvedMetaStore emptyScope e
-                 ty <- evalType 0 tty
-                 return (e,ty)) (abstract pgf) 1 IntMap.empty of
-    Ok _ ms (e,ty) -> Right (e,ty)
-    Fail err       -> Left err
+  unTcM (do (e,tty) <- infExpr emptyScope e
+            e <- checkResolvedMetaStore emptyScope e
+            ty <- evalType 0 tty
+            return (e,ty))
+        (abstract pgf)
+        (\e_ty ms s _ -> Right e_ty)
+        (\err     s _ -> Left err)
+        emptyMetaStore () (error "inferExpr")
 
-infExpr :: Scope -> Expr -> TcM (Expr,TType)
+infExpr :: Scope -> Expr -> TcM s (Expr,TType)
 infExpr scope e0@(EApp e1 e2) = do
   (e1,TTyp delta ty) <- infExpr scope e1
   (e0,delta,ty) <- tcArg scope e1 e2 delta ty
@@ -314,8 +383,8 @@
 infExpr scope e0@(EFun x) = do
   case lookupVar x scope of
     Just (i,tty) -> return (EVar i,tty)
-    Nothing      -> do tty <- lookupFunType x
-                       return (e0,tty)
+    Nothing      -> do ty <- lookupFunType x
+                       return (e0,TTyp [] ty)
 infExpr scope e0@(EVar i) = do
   return (e0,snd (getVar i scope))
 infExpr scope e0@(ELit l) = do
@@ -331,12 +400,12 @@
 infExpr scope (EImplArg e) = do
   (e,tty)  <- infExpr scope e
   return (EImplArg e,tty)
-infExpr scope e = tcError (CannotInferType (scopeVars scope) e)
+infExpr scope e = throwError (CannotInferType (scopeVars scope) e)
 
 tcArg scope e1 e2 delta ty0@(DTyp [] c es) = do
   ty1 <- evalType (scopeSize scope) (TTyp delta ty0)
-  tcError (NotFunType (scopeVars scope) e1 ty1)
-tcArg scope e1 (EImplArg e2) delta ty0@(DTyp ((Explicit,x,ty):hs) c es) = tcError (UnexpectedImplArg (scopeVars scope) e2)
+  throwError (NotFunType (scopeVars scope) e1 ty1)
+tcArg scope e1 (EImplArg e2) delta ty0@(DTyp ((Explicit,x,ty):hs) c es) = throwError (UnexpectedImplArg (scopeVars scope) e2)
 tcArg scope e1 (EImplArg e2) delta ty0@(DTyp ((Implicit,x,ty):hs) c es) = do
   e2 <- tcExpr scope e2 (TTyp delta ty)
   if x == wildCId
@@ -350,7 +419,7 @@
     else do v2 <- eval (scopeEnv scope) e2
             return (EApp e1 e2,v2:delta,DTyp hs c es)
 tcArg scope e1 e2 delta ty0@(DTyp ((Implicit,x,ty):hs) c es) = do
-  i <- newMeta scope
+  i <- newMeta scope (TTyp delta ty)
   if x == wildCId
     then tcArg scope (EApp e1 (EImplArg (EMeta i))) e2                                delta  (DTyp hs c es)
     else tcArg scope (EApp e1 (EImplArg (EMeta i))) e2 (VMeta i (scopeEnv scope) [] : delta) (DTyp hs c es)
@@ -359,18 +428,18 @@
 -- eqType
 -----------------------------------------------------
 
-eqType :: Scope -> Int -> MetaId -> TType -> TType -> TcM ()
+eqType :: Scope -> Int -> MetaId -> TType -> TType -> TcM s ()
 eqType scope k i0 tty1@(TTyp delta1 ty1@(DTyp hyps1 cat1 es1)) tty2@(TTyp delta2 ty2@(DTyp hyps2 cat2 es2))
   | cat1 == cat2 = do (k,delta1,delta2) <- eqHyps k delta1 hyps1 delta2 hyps2
-                      sequence_ [eqExpr k delta1 e1 delta2 e2 | (e1,e2) <- zip es1 es2]
+                      sequence_ [eqExpr raiseTypeMatchError (addConstraint i0) k delta1 e1 delta2 e2 | (e1,e2) <- zip es1 es2]
   | otherwise    = raiseTypeMatchError
   where
     raiseTypeMatchError = do ty1 <- evalType k tty1
                              ty2 <- evalType k tty2
                              e   <- refineExpr (EMeta i0)
-                             tcError (TypeMismatch (scopeVars scope) e ty1 ty2)
+                             throwError (TypeMismatch (scopeVars scope) e ty1 ty2)
 
-    eqHyps :: Int -> Env -> [Hypo] -> Env -> [Hypo] -> TcM (Int,Env,Env)
+    eqHyps :: Int -> Env -> [Hypo] -> Env -> [Hypo] -> TcM s (Int,Env,Env)
     eqHyps k delta1 []                 delta2 []                 =
       return (k,delta1,delta2)
     eqHyps k delta1 ((_,x,ty1) : h1s) delta2 ((_,y,ty2) : h2s) = do
@@ -382,60 +451,57 @@
                else raiseTypeMatchError
     eqHyps k delta1               h1s  delta2               h2s  = raiseTypeMatchError
 
-    eqExpr :: Int -> Env -> Expr -> Env -> Expr -> TcM ()
-    eqExpr k env1 e1 env2 e2 = do
-      v1 <- eval env1 e1
-      v2 <- eval env2 e2
-      eqValue k v1 v2
-
-    eqValue :: Int -> Value -> Value -> TcM ()
-    eqValue k v1 v2 = do
-      v1 <- deRef v1
-      v2 <- deRef v2
-      eqValue' k v1 v2
+eqExpr :: (forall a . TcM s a) -> (MetaId -> (Expr -> TcM s ()) -> TcM s ()) -> Int -> Env -> Expr -> Env -> Expr -> TcM s ()
+eqExpr fail suspend k env1 e1 env2 e2 = do
+  v1 <- eval env1 e1
+  v2 <- eval env2 e2
+  eqValue fail suspend k v1 v2
 
+eqValue :: (forall a . TcM s a) -> (MetaId -> (Expr -> TcM s ()) -> TcM s ()) -> Int -> Value -> Value -> TcM s ()
+eqValue fail suspend k v1 v2 = do
+  v1 <- deRef v1
+  v2 <- deRef v2
+  eqValue' k v1 v2
+  where
     deRef v@(VMeta i env vs) = do
       mv   <- getMeta i
       case mv of
         MBound   e                 -> apply env e vs
         MGuarded e _ x | x == 0    -> apply env e vs
                        | otherwise -> return v
-        MUnbound _ _               -> return v
+        MUnbound _ _ _ _           -> return v
     deRef v = return v
 
-    eqValue' k (VSusp i env vs1 c)            v2                             = addConstraint i0 i env vs1 (\v1 -> eqValue k (c v1) v2)
-    eqValue' k v1                             (VSusp i env vs2 c)            = addConstraint i0 i env vs2 (\v2 -> eqValue k v1 (c v2))
-    eqValue' k (VMeta i env1 vs1)             (VMeta j env2 vs2) | i  == j   = zipWithM_ (eqValue k) vs1 vs2
+    eqValue' k (VSusp i env vs1 c)            v2                             = suspend i (\e -> apply env e vs1 >>= \v1 -> eqValue fail suspend k (c v1) v2)
+    eqValue' k v1                             (VSusp i env vs2 c)            = suspend i (\e -> apply env e vs2 >>= \v2 -> eqValue fail suspend k v1 (c v2))
+    eqValue' k (VMeta i env1 vs1)             (VMeta j env2 vs2) | i  == j   = zipWithM_ (eqValue fail suspend k) vs1 vs2
     eqValue' k (VMeta i env1 vs1)             v2                             = do mv <- getMeta i
                                                                                   case mv of
-                                                                                    MUnbound scopei cs -> do e2 <- mkLam i scopei env1 vs1 v2
-                                                                                                             setMeta i (MBound e2)
-                                                                                                             sequence_ [c e2 | c <- cs]
-                                                                                    MGuarded e cs x    -> setMeta i (MGuarded e ((\e -> apply env1 e vs1 >>= \v1 -> eqValue' k v1 v2) : cs) x)
+                                                                                    MUnbound _ scopei _ cs -> bind i scopei cs env1 vs1 v2
+                                                                                    MGuarded e cs x        -> setMeta i (MGuarded e ((\e -> apply env1 e vs1 >>= \v1 -> eqValue' k v1 v2) : cs) x)
     eqValue' k v1                             (VMeta i env2 vs2)             = do mv <- getMeta i
                                                                                   case mv of
-                                                                                    MUnbound scopei cs -> do e1 <- mkLam i scopei env2 vs2 v1
-                                                                                                             setMeta i (MBound e1)
-                                                                                                             sequence_ [c e1 | c <- cs]
-                                                                                    MGuarded e cs x    -> setMeta i (MGuarded e ((\e -> apply env2 e vs2 >>= \v2 -> eqValue' k v1 v2) : cs) x)
-    eqValue' k (VApp f1 vs1)                  (VApp f2 vs2)   | f1 == f2     = zipWithM_ (eqValue k) vs1 vs2
-    eqValue' k (VConst f1 vs1)                (VConst f2 vs2) | f1 == f2     = zipWithM_ (eqValue k) vs1 vs2
+                                                                                    MUnbound _ scopei _ cs -> bind i scopei cs env2 vs2 v1
+                                                                                    MGuarded e cs x        -> setMeta i (MGuarded e ((\e -> apply env2 e vs2 >>= \v2 -> eqValue' k v1 v2) : cs) x)
+    eqValue' k (VApp f1 vs1)                  (VApp f2 vs2)   | f1 == f2     = zipWithM_ (eqValue fail suspend k) vs1 vs2
+    eqValue' k (VConst f1 vs1)                (VConst f2 vs2) | f1 == f2     = zipWithM_ (eqValue fail suspend k) vs1 vs2
     eqValue' k (VLit l1)                      (VLit l2    )   | l1 == l2     = return ()
-    eqValue' k (VGen  i vs1)                  (VGen  j vs2)   | i  == j      = zipWithM_ (eqValue k) vs1 vs2
+    eqValue' k (VGen  i vs1)                  (VGen  j vs2)   | i  == j      = zipWithM_ (eqValue fail suspend k) vs1 vs2
     eqValue' k (VClosure env1 (EAbs _ x1 e1)) (VClosure env2 (EAbs _ x2 e2)) = let v = VGen k []
-                                                                               in eqExpr (k+1) (v:env1) e1 (v:env2) e2
-    eqValue' k v1                             v2                             = raiseTypeMatchError
+                                                                               in eqExpr fail suspend (k+1) (v:env1) e1 (v:env2) e2
+    eqValue' k v1                             v2                             = fail
 
-    mkLam i scope env vs0 v = do
+    bind i scope cs env vs0 v = do
       let k  = scopeSize scope
           vs  = reverse (take k env) ++ vs0
           xs  = nub [i | VGen i [] <- vs]
-      if length vs == length xs
-        then return ()
-        else raiseTypeMatchError
-      v <- occurCheck i k xs v
-      e <- value2expr (length xs) v
-      return (addLam vs0 e)
+      if length vs /= length xs
+        then suspend i (\e -> apply env e vs0 >>= \iv -> eqValue fail suspend k iv v)
+        else do v <- occurCheck i k xs v
+                e0 <- value2expr (length xs) v
+                let e = addLam vs0 e0
+                setMeta i (MBound e)
+                sequence_ [c e | c <- cs]
       where
         addLam []     e = e
         addLam (v:vs) e = EAbs Explicit var (addLam vs e)
@@ -446,21 +512,21 @@
                                              return (VApp f vs)
     occurCheck i0 k xs (VLit l)         = return (VLit l)
     occurCheck i0 k xs (VMeta i env vs) = do if i == i0
-                                               then raiseTypeMatchError
+                                               then fail
                                                else return ()
                                              mv <- getMeta i
                                              case mv of
-                                               MBound   e                               -> apply env e vs >>= occurCheck i0 k xs
-                                               MGuarded e _ _                           -> apply env e vs >>= occurCheck i0 k xs
-                                               MUnbound scopei _ | scopeSize scopei > k -> raiseTypeMatchError
-                                                                 | otherwise            -> do vs <- mapM (occurCheck i0 k xs) vs
-                                                                                              return (VMeta i env vs)
-    occurCheck i0 k xs (VSusp i env vs cnt) = do addConstraint i0 i env vs (\v -> occurCheck i0 k xs (cnt v) >> return ())
+                                               MBound   e                                   -> apply env e vs >>= occurCheck i0 k xs
+                                               MGuarded e _ _                               -> apply env e vs >>= occurCheck i0 k xs
+                                               MUnbound _ scopei _ _ | scopeSize scopei > k -> fail
+                                                                     | otherwise            -> do vs <- mapM (occurCheck i0 k xs) vs
+                                                                                                  return (VMeta i env vs)
+    occurCheck i0 k xs (VSusp i env vs cnt) = do suspend i (\e -> apply env e vs >>= \v -> occurCheck i0 k xs (cnt v) >> return ())
                                                  return (VSusp i env vs cnt)
     occurCheck i0 k xs (VGen  i vs)     = case List.findIndex (==i) xs of
                                             Just i  -> do vs <- mapM (occurCheck i0 k xs) vs
                                                           return (VGen i vs)
-                                            Nothing -> raiseTypeMatchError
+                                            Nothing -> fail
     occurCheck i0 k xs (VConst f vs)    = do vs <- mapM (occurCheck i0 k xs) vs
                                              return (VConst f vs)
     occurCheck i0 k xs (VClosure env e) = do env <- mapM (occurCheck i0 k xs) env
@@ -468,26 +534,64 @@
 
 
 -----------------------------------------------------------
--- check for meta variables that still have to be resolved
+-- three ways of dealing with meta variables that
+-- still have to be resolved
 -----------------------------------------------------------
 
-checkResolvedMetaStore :: Scope -> Expr -> TcM ()
-checkResolvedMetaStore scope e = TcM (\abstr metaid ms -> 
-  let xs = [i | (i,mv) <- IntMap.toList ms, not (isResolved mv)]
-  in if List.null xs
-       then Ok metaid ms ()
-       else Fail (UnresolvedMetaVars (scopeVars scope) e xs))
+checkResolvedMetaStore :: Scope -> Expr -> TcM s Expr
+checkResolvedMetaStore scope e = do
+  e <- refineExpr e
+  TcM (\abstr k h ms -> 
+           let xs = [i | (i,mv) <- IntMap.toList ms, not (isResolved mv)]
+           in if List.null xs
+                then k () ms
+                else h (UnresolvedMetaVars (scopeVars scope) e xs))
+  return e
   where
-    isResolved (MUnbound _ [])   = True
-    isResolved (MGuarded  _ _ _) = True
-    isResolved (MBound    _)     = True
-    isResolved _                 = False
+    isResolved (MUnbound _ _ _ []) = True
+    isResolved (MGuarded  _ _ _)   = True
+    isResolved (MBound    _)       = True
+    isResolved _                   = False
 
+generateForMetas :: Selector s => (Scope -> TType -> TcM s Expr) -> Expr -> TcM s Expr
+generateForMetas prove e = do
+  infExpr emptyScope e
+  fillinVariables
+  refineExpr e
+  where
+    fillinVariables = do
+      fvs <- TcM (\abstr k h ms -> k [(i,s,scope,tty,cs) | (i,MUnbound s scope tty cs) <- IntMap.toList ms] ms)
+      case fvs of
+        []                   -> return ()
+        (i,_,scope,tty,cs):_ -> do e <- prove scope tty
+                                   setMeta i (MBound e)
+                                   sequence_ [c e | c <- cs]
+                                   fillinVariables
+
+generateForForest :: (Scope -> TType -> TcM FId Expr) -> Expr -> TcM FId Expr
+generateForForest prove e = do
+  fillinVariables
+  refineExpr e
+  where
+    fillinVariables = do
+      fvs <- TcM (\abstr k h ms -> k [(i,s,scope,tty,cs) | (i,MUnbound s scope tty cs) <- IntMap.toList ms] ms)
+      case fvs of
+        []                   -> return ()
+        (i,s,scope,tty,cs):_ -> TcM (\abstr k h ms s0 ->
+                                        case snd $ runTcM abstr (prove scope tty) ms s of
+                                          []           -> unTcM (do ty <- evalType (scopeSize scope) tty
+                                                                    throwError (UnsolvableGoal (scopeVars scope) s ty)
+                                                                ) abstr k h ms s
+                                          ((ms,_,e):_) -> unTcM (do setMeta i (MBound e)
+                                                                    sequence_ [c e | c <- cs]
+                                                                    fillinVariables
+                                                                ) abstr k h ms s)
+
 -----------------------------------------------------
 -- evalType
 -----------------------------------------------------
 
-evalType :: Int -> TType -> TcM Type
+evalType :: Int -> TType -> TcM s Type
 evalType k (TTyp delta ty) = evalTy funs k delta ty
   where
     evalTy sig k delta (DTyp hyps cat es) = do
@@ -508,8 +612,8 @@
 -- refinement
 -----------------------------------------------------
 
-refineExpr :: Expr -> TcM Expr
-refineExpr e = TcM (\abstr metaid ms -> Ok metaid ms (refineExpr_ ms e))
+refineExpr :: Expr -> TcM s Expr
+refineExpr e = TcM (\abstr k h ms -> k (refineExpr_ ms e) ms)
 
 refineExpr_ ms e = refine e
   where
@@ -525,16 +629,16 @@
     refine (ETyped e ty) = ETyped (refine e) (refineType_ ms ty)
     refine (EImplArg e)  = EImplArg (refine e)
 
-refineType :: Type -> TcM Type
-refineType ty = TcM (\abstr metaid ms -> Ok metaid ms (refineType_ ms ty))
+refineType :: Type -> TcM s Type
+refineType ty = TcM (\abstr k h ms -> k (refineType_ ms ty) ms)
 
 refineType_ ms (DTyp hyps cat es) = DTyp [(b,x,refineType_ ms ty) | (b,x,ty) <- hyps] cat (List.map (refineExpr_ ms) es)
 
-eval :: Env -> Expr -> TcM Value
-eval env e = TcM (\abstr metaid ms -> Ok metaid ms (Expr.eval (funs abstr,lookupMeta ms) env e))
+eval :: Env -> Expr -> TcM s Value
+eval env e = TcM (\abstr k h ms -> k (Expr.eval (funs abstr,lookupMeta ms) env e) ms)
 
-apply :: Env -> Expr -> [Value] -> TcM Value
-apply env e vs = TcM (\abstr metaid ms -> Ok metaid ms (Expr.apply (funs abstr,lookupMeta ms) env e vs))
+apply :: Env -> Expr -> [Value] -> TcM s Value
+apply env e vs = TcM (\abstr k h ms -> k (Expr.apply (funs abstr,lookupMeta ms) env e vs) ms)
 
-value2expr :: Int -> Value -> TcM Expr
-value2expr i v = TcM (\abstr metaid ms -> Ok metaid ms (Expr.value2expr (funs abstr,lookupMeta ms) i v))
+value2expr :: Int -> Value -> TcM s Expr
+value2expr i v = TcM (\abstr k h ms -> k (Expr.value2expr (funs abstr,lookupMeta ms) i v) ms)
diff --git a/src/runtime/haskell/PGF/VisualizeTree.hs b/src/runtime/haskell/PGF/VisualizeTree.hs
--- a/src/runtime/haskell/PGF/VisualizeTree.hs
+++ b/src/runtime/haskell/PGF/VisualizeTree.hs
@@ -15,86 +15,419 @@
 --        instead of rolling its own.
 -----------------------------------------------------------------------------
 
-module PGF.VisualizeTree ( graphvizAbstractTree
-                         , graphvizParseTree
-                         , graphvizDependencyTree
-                         , graphvizAlignment
-                         , tree2mk
-                         , getDepLabels
-                         , PosText(..), readPosText
-			 ) where
+module PGF.VisualizeTree 
+             ( graphvizAbstractTree
+             , graphvizParseTree
+             , graphvizDependencyTree
+             , graphvizBracketedString
+             , graphvizAlignment
+             , gizaAlignment
+             , getDepLabels
+             ) where
 
-import PGF.CId (CId,showCId,pCId,mkCId)
+import PGF.CId (CId,showCId,ppCId,pCId,mkCId)
 import PGF.Data
-import PGF.Tree
-import PGF.Expr (showExpr)
+import PGF.Expr (showExpr, Tree)
 import PGF.Linearize
-import PGF.Macros (lookValCat)
+import PGF.Macros (lookValCat, lookMap,
+                   BracketedString(..), BracketedTokn(..), flattenBracketedString)
 
 import qualified Data.Map as Map
+import qualified Data.IntMap as IntMap
 import Data.List (intersperse,nub,isPrefixOf,sort,sortBy)
 import Data.Char (isDigit)
+import Data.Maybe (fromMaybe)
+import Text.PrettyPrint
+
+import Data.Array.IArray
+import Control.Monad
+import qualified Data.Set as Set
 import qualified Text.ParserCombinators.ReadP as RP
 
-import Debug.Trace
 
-graphvizAbstractTree :: PGF -> (Bool,Bool) -> Expr -> String
-graphvizAbstractTree pgf funscats = prGraph False . tree2graph pgf funscats . expr2tree
+-- | Renders abstract syntax tree in Graphviz format
+graphvizAbstractTree :: PGF -> (Bool,Bool) -> Tree -> String
+graphvizAbstractTree pgf (funs,cats) = render . tree2graph
+  where
+    tree2graph t =
+      text "graph {" $$
+      ppGraph [] [] 0 t $$
+      text "}"
 
-tree2graph :: PGF -> (Bool,Bool) -> Tree -> [String]
-tree2graph pgf (funs,cats) = prf [] where
-  prf ps t = let (nod,lab) = prn ps t in 
-    (nod ++ " [label = " ++ lab ++ ", style = \"solid\", shape = \"plaintext\"] ;") : 
-    case t of
-      Fun cid trees -> 
-        [       pra (j:ps) nod t | (j,t) <- zip [0..] trees] ++
-        concat [prf (j:ps) t     | (j,t) <- zip [0..] trees]
-      Abs xs (Fun cid trees) -> 
-        [       pra (j:ps) nod t | (j,t) <- zip [0..] trees] ++
-        concat [prf (j:ps) t     | (j,t) <- zip [0..] trees]
-      _ -> []
-  prn ps t = case t of
-    Fun cid _ ->
-      let
-        fun = if funs then showCId cid else ""
-        cat = if cats then prCat cid else ""
-        colon = if funs && cats then " : " else ""
-        lab = "\"" ++ fun ++ colon ++ cat ++ "\""
-      in (show(show (ps :: [Int])),lab)
-    Abs bs tree -> 
-      let fun = case tree of
-            Fun cid _ -> Fun cid []
-            _ -> tree
-      in (show(show (ps :: [Int])),"\"" ++ esc (prTree (Abs bs fun)) ++ "\"")
-    _ -> (show(show (ps :: [Int])),"\"" ++ esc (prTree t) ++ "\"")
-  pra i nod t = nod ++ arr ++ fst (prn i t) ++ " [style = \"solid\"];"
-  arr = " -- " -- if digr then " -> " else " -- "
-  prCat = showCId . lookValCat pgf
-  esc = concatMap (\c -> if c =='\\' then [c,c] else [c]) --- escape backslash in abstracts
+    getAbs xs (EAbs _ x e) = getAbs (x:xs) e
+    getAbs xs (ETyped e _) = getAbs xs e
+    getAbs xs (EImplArg e) = getAbs xs e
+    getAbs xs e            = (xs,e)
+    
+    getApp (EApp x y)   es = getApp x (y:es)
+    getApp (ETyped e _) es = getApp e es
+    getApp (EImplArg e) es = getApp e es
+    getApp e            es = (e,es)
 
-prGraph digr ns = concat $ map (++"\n") $ [graph ++ "{\n"] ++ ns ++ ["}"] where
-  graph = if digr then "digraph" else "graph"
+    getLbl scope (EFun f)     = let fun = if funs then ppCId f else empty
+                                    cat = if cats then ppCId (lookValCat (abstract pgf) f) else empty
+                                    sep = if funs && cats then colon else empty
+                                in fun <+> sep <+> cat
+    getLbl scope (ELit l)     = text (escapeStr (render (ppLit l)))
+    getLbl scope (EMeta i)    = ppMeta i
+    getLbl scope (EVar i)     = ppCId (scope !! i)
+    getLbl scope (ETyped e _) = getLbl scope e
+    getLbl scope (EImplArg e) = getLbl scope e
 
+    ppGraph scope ps i e0 =
+      let (xs,  e1) = getAbs [] e0
+          (e2,args) = getApp e1 []
+          binds     = if null xs
+                        then empty
+                        else text "\\\\" <> hcat (punctuate comma (map ppCId xs)) <+> text "->"
+          (lbl,eargs) = case e2 of
+                          EAbs _ _ _ -> (char '@', e2:args) -- eta-redexes are rendered with artificial "@" node
+                          _          -> (getLbl scope' e2, args)
+          scope'    = xs ++ scope
+      in ppNode (i:ps) <> text "[label =" <+> doubleQuotes (binds <+> lbl) <> text ", style = \"solid\", shape = \"plaintext\"] ;" $$
+         (if null ps
+            then empty
+            else ppNode ps <+> text "--" <+> ppNode (i:ps) <+> text "[style = \"solid\"];") $$
+         vcat (zipWith (ppGraph scope' (i:ps)) [0..] eargs)
 
--- replace each non-atomic constructor with mkC, where C is the val cat
-tree2mk :: PGF -> Expr -> String
-tree2mk pgf = showExpr [] . tree2expr . t2m . expr2tree where
-  t2m t = case t of
-    Fun cid [] -> t
-    Fun cid ts -> Fun (mk cid) (map t2m ts)
-    _ -> t
-  mk = mkCId . ("mk" ++) . showCId . lookValCat pgf
+    ppNode ps = char 'n' <> hcat (punctuate (char '_') (map int ps))
+    
+    escapeStr []        = []
+    escapeStr ('\\':cs) = '\\':'\\':escapeStr cs
+    escapeStr ('"' :cs) = '\\':'"' :escapeStr cs
+    escapeStr (c   :cs) = c        :escapeStr cs    
 
--- dependency trees from Linearize.linearizeMark
 
+type Labels = Map.Map CId [String]
+
+{- This is an attempt to build the dependency tree from the bracketed string.
+   Unfortunately it doesn't quite work. See the actual implementation at
+   the end of this module.
+
+graphvizDependencyTree :: String -> Bool -> Maybe Labels -> Maybe String -> PGF -> CId -> Tree -> String
+graphvizDependencyTree format debug mlab ms pgf lang t = render $
+  case format of
+    "malt"       -> vcat (map (hcat . intersperse (char '\t')         ) wnodes)
+    "malt_input" -> vcat (map (hcat . intersperse (char '\t') . take 6) wnodes)
+    _            -> text "digraph {" $$
+                    space $$
+                    nest 2 (text "rankdir=LR ;" $$
+                            text "node [shape = plaintext] ;" $$
+                            vcat nodes $$
+                            vcat links) $$
+                    text "}"
+  where
+    nodes  = map mkNode leaves
+    links  = map mkLink [(fid, fromMaybe nil (lookup fid deps)) | (fid,_,w) <- tail leaves]
+    wnodes = undefined
+
+    nil = -1
+
+    bs = bracketedLinearize pgf lang t
+
+    leaves = (nil,0,"ROOT") : (groupAndIndexIt 1 . getLeaves nil) bs
+    deps   = getDeps nil [bs]
+
+    groupAndIndexIt id []          = []
+    groupAndIndexIt id ((p,w):pws) = let (ws,pws1) = collect pws
+                                     in (p,id,unwords (w:ws)) : groupAndIndexIt (id+1) pws1
+      where
+        collect pws@((p1,w):pws1)
+          | p == p1   = let (ws,pws2) = collect pws1
+                        in (w:ws,pws2)
+        collect pws   = ([],pws)
+
+    getLeaves parent bs =
+      case bs of
+        Leaf w                -> [(parent,w)]
+        Bracket _ fid _ _ bss -> concatMap (getLeaves fid) bss
+
+    getDeps out_head bss =
+      case selectHead (children bss) of
+        Just ((head, bss'), deps) -> concat (descend out_head head bss' : [descend (headOf head bss') fid bss | (fid,bss) <- IntMap.toList deps])
+        Nothing                   -> []
+      where
+        descend head fid bss = (fid,head) : getDeps head bss
+        
+    headOf head bss
+      | null [() | Leaf _ <- bss] =
+          case selectHead (children bss) of
+            Just ((head, bss), deps) -> headOf head bss
+            Nothing                  -> head
+      | otherwise = head
+
+    children bss = IntMap.fromListWith (++) [(fid,bss) | Bracket _ fid _ _ bss <- bss]  
+
+    selectHead children = IntMap.maxViewWithKey children
+
+    mkNode (p,i,w) = 
+      tag p <+> brackets (text "label = " <> doubleQuotes (int i <> char '.' <+> text w)) <+> semi
+
+    mkLink (x,y) = tag y <+> text "->" <+> tag x -- ++ " [label = \"" ++ l ++ "\"] ;"
+-}
+
+getDepLabels :: [String] -> Labels
+getDepLabels ss = Map.fromList [(mkCId f,ls) | f:ls <- map words ss]
+
+
+graphvizParseTree :: PGF -> Language -> Tree -> String
+graphvizParseTree pgf lang = graphvizBracketedString . bracketedLinearize pgf lang
+
+graphvizBracketedString :: BracketedString -> String
+graphvizBracketedString = render . lin2tree
+  where
+    lin2tree bs =
+      text "graph {" $$
+      space $$
+      nest 2 (text "rankdir=BU ;" $$
+              text "node [shape = record, color = white] ;" $$
+              space $$
+              vcat (nodes bs)) $$
+      text "}"
+      where
+        nodes bs = zipWith mkStruct [0..] (interns ++ [zipWith (\i (l,p,w) -> (l,p,i,w)) [99990..] leaves])
+
+        nil = -1
+        
+        leaves  = getLeaves  0 nil bs
+        interns = getInterns 0 [(nil,bs)]
+
+        getLeaves  level parent bs =
+          case bs of
+            Leaf w                -> [(level-1,parent,w)]
+            Bracket _ fid i _ bss -> concatMap (getLeaves (level+1) fid) bss
+
+        getInterns level []    = []
+        getInterns level nodes =
+          nub [(level-1,parent,fid,showCId cat) | (parent,Bracket cat fid _ _ _) <- nodes] :
+          getInterns (level+1) [(fid,child) | (_,Bracket _ fid _ _ children) <- nodes, child <- children]
+
+        mkStruct l cs = struct l <> text "[label = \"" <> fields cs <> text "\"] ;" $$
+                        vcat [link pl pid l id | (pl,pid,id,_) <- cs]
+        link pl pid l id
+          | pl < 0    = empty
+          | otherwise = struct pl <> colon <> tag pid <> colon <> char 's' <+>
+                        text "--" <+>
+                        struct l  <> colon <> tag  id <> colon <> char 'n' <+> semi
+        fields cs = hsep (intersperse (char '|') [tbrackets (tag id) <> text c | (_,_,id,c) <- cs])
+
+
+type Rel = (Int,[Int])
+-- possibly needs changes after clearing about many-to-many on this level
+
+type IndexedSeq = (Int,[String])
+type LangSeq = [IndexedSeq]
+
+data PreAlign = PreAlign [LangSeq] [[Rel]]
+  deriving Show
+-- alignment structure for a phrase in 2 languages, along with the 
+-- many-to-many relations
+
+
+genPreAlignment :: PGF -> [Language] -> Expr -> PreAlign
+genPreAlignment pgf langs = lin2align . linsBracketed
+ where  
+      linsBracketed t = [bracketedLinearize pgf lang t | lang <- langs]
+
+      lin2align :: [BracketedString] -> PreAlign
+      lin2align bss =  PreAlign langSeqs langRels
+          where
+           (langSeqs,langRels) = mkLayers leaves
+           nil = -1
+           leaves = map (groupAndIndexIt 0 . getLeaves nil) bss
+
+           groupAndIndexIt id []          = []
+           groupAndIndexIt id ((p,w):pws) = let (ws,pws1) = collect pws
+                                             in (p,id,unwords (w:ws)) : groupAndIndexIt (id+1) pws1
+            where
+              collect pws@((p1,w):pws1)
+                | p == p1   = let (ws,pws2) = collect pws1
+                                in (w:ws,pws2)
+              collect pws   = ([],pws)
+
+           getLeaves parent bs =
+                  case bs of
+                    Leaf w                -> [(parent,w)]
+                    Bracket _ fid _ _ bss -> concatMap (getLeaves fid) bss
+
+           mkLayers (cs:css:rest) = let (lrest, rrest) =  mkLayers (css:rest)
+                                     in ((fields cs) : lrest, (map (mkLinks css) cs) : rrest)    
+           mkLayers [cs] = ([fields cs], [])
+           mkLayers _ = ([],[])
+
+           mkLinks cs (p0,id0,_) = (id0,indices)
+                    where 
+                     indices = [id1 | (p1,id1,_) <- cs, p1 == p0]
+
+           fields cs = [(id, [w]) | (_,id,w) <- cs]
+
+
+-- we assume we have 2 languages - source and target
+gizaAlignment :: PGF -> (Language,Language) -> Expr -> (String,String,String)
+gizaAlignment pgf (l1,l2) e = let PreAlign [rl1,rl2] rels = genPreAlignment pgf [l1,l2] e
+                                   in 
+                                     (unwords (map showIndSeq rl1), unwords (concat $ map snd rl2),
+                                        unwords $ words $ showRels rl2 (concat rels))
+
+
+showIndSeq (_,l) = let ww = map words l
+                       w_ = map (intersperse "_")  ww
+                      in 
+                       concat $ concat w_
+
+showRels inds2 [] = []
+showRels inds2 ((ind,is):rest) = 
+                       let lOffs = computeOffset inds2 0
+                           ltemp = [(i,getOffsetIndex i lOffs) | i <- is] 
+                           lcurr = concat $ map (\(offset,ncomp) -> [show ind ++ "-" ++ show (-1 + offset + ii)  ++ " "| ii <- [1..ncomp]]) (map snd ltemp)
+                           lrest = showRels inds2 rest
+                            in 
+                             (unwords lcurr) ++ lrest
+                               
+                            
+                           
+                         
+
+
+
+getOffsetIndex i lst = let ll = filter (\(x,_) -> x == i) lst
+                           in 
+                           snd $ head ll                           
+
+computeOffset [] transp = []
+computeOffset ((i,l):rest) transp = let nw = (length $ words $ concat l) 
+                                     in (i,(transp,nw)) : (computeOffset rest (transp + nw))  
+
+
+
+-- alignment in the Graphviz format from the intermediate structure 
+-- same effect as the old direct function 
+graphvizAlignment :: PGF -> [Language] -> Expr -> String
+graphvizAlignment pgf langs exp = 
+    render (text "digraph {" $$
+      space $$
+      nest 2 (text "rankdir=LR ;" $$
+              text "node [shape = record] ;" $$
+              space $$
+              renderList 0 lrels rrels) $$
+      text "}")
+  where             
+     (PreAlign lrels rrels) = genPreAlignment pgf langs exp 
+     
+             
+     renderList ii (l:ls) (r:rs) = struct ii <> text "[label = \"" <> fields l <> text "\"] ;" $$
+                                 (case ls of 
+                                       [] -> empty 
+                                       _  -> vcat [struct ii  <> colon <> tag id0 
+                                               <> colon <> char 'e' <+> text "->" <+> struct (ii+1) 
+                                               <> colon <> tag id1 <> colon <> char 'w' <+> semi 
+                                                   | (id0,ids) <- r, id1 <- ids] $$ renderList (ii + 1) ls rs)
+     renderList ii [] _ = empty                                           
+     renderList ii [l] [] = struct ii <> text "[label = \"" <> fields l <> text "\"] ;"
+ 
+     fields cs = hsep (intersperse (char '|') [tbrackets (tag id) <> text w | (id,ws) <- cs, w <- ws])
+
+  
+
+-- auxiliaries for graphviz syntax
+struct l = text ("struct" ++ show l)
+tbrackets d = char '<' <> d  <> char '>'
+tag i
+  | i < 0     = char 'r' <> int (negate i)
+  | otherwise = char 'n' <> int i
+
+
+
+--------------------------------------------------------------------
+-- The linearization code bellow is needed just in order to 
+-- produce the dependency tree. Unfortunately the bracketed string
+-- doesn't give us an easy way to find which part of the string
+-- corresponds to which argument of the parent function.
+--
+-- Uuuuugly!!! I hope that this code will be removed one day.
+
+type LinTable = Array LIndex [BracketedTokn]
+
+
+linTree :: PGF -> Language -> (Maybe CId -> [Int] -> LinTable -> LinTable) -> Expr -> [LinTable]
+linTree pgf lang mark e = lin0 [] [] [] Nothing e
+  where
+    cnc   = lookMap (error "no lang") lang (concretes pgf)
+    lp    = lproductions cnc
+
+    lin0 path xs ys mb_fid (EAbs _ x e)  = lin0 path (showCId x:xs) ys mb_fid e
+    lin0 path xs ys mb_fid (ETyped e _)  = lin0 path xs ys mb_fid e
+    lin0 path xs ys mb_fid e             = lin path ys mb_fid e []
+
+    lin path xs mb_fid (EApp e1 e2) es = lin path xs mb_fid e1 (e2:es)
+    lin path xs mb_fid (ELit l)     [] = case l of
+                                           LStr s -> return (mark Nothing path (ss s))
+                                           LInt n -> return (mark Nothing path (ss (show n)))
+                                           LFlt f -> return (mark Nothing path (ss (show f)))
+    lin path xs mb_fid (EFun f)     es = map (mark (Just f) path) (apply path xs mb_fid f  es)
+    lin path xs mb_fid (ETyped e _) es = lin path xs mb_fid e es
+    lin path xs mb_fid (EImplArg e) es = lin path xs mb_fid e es
+
+    ss s = listArray (0,0) [[LeafKS [s]]]
+
+    apply path xs mb_fid f es =
+      case Map.lookup f lp of
+        Just prods -> case lookupProds mb_fid prods of
+                        Just set -> do prod <- Set.toList set
+                                       case prod of
+                                         PApply funid fids -> do guard (length fids == length es)
+                                                                 args <- sequence (zipWith3 (\i (PArg _ fid) e -> lin0 (sub i path) [] xs (Just fid) e) [0..] fids es)
+                                                                 let (CncFun _ lins) = cncfuns cnc ! funid
+                                                                 return (listArray (bounds lins) [computeSeq seqid args | seqid <- elems lins])
+                                         PCoerce fid       -> apply path xs (Just fid) f es
+                        Nothing  -> mzero
+      where
+        lookupProds (Just fid) prods = IntMap.lookup fid prods
+        lookupProds Nothing    prods = Just (Set.filter isApp (Set.unions (IntMap.elems prods)))
+
+        sub i path = i:path
+
+        isApp (PApply _ _) = True
+        isApp _            = False
+
+        computeSeq seqid args = concatMap compute (elems seq)
+          where
+            seq = sequences cnc ! seqid
+
+            compute (SymCat d r)    = (args !! d) ! r
+            compute (SymLit d r)    = (args !! d) ! r
+            compute (SymKS ts)      = [LeafKS ts]
+            compute (SymKP ts alts) = [LeafKP ts alts]
+
+untokn :: [BracketedTokn] -> [String]
+untokn ts = case ts of
+  LeafKP d _  : [] -> d
+  LeafKP d vs : ws -> let ss@(s:_) = untokn ws in sel d vs s ++ ss
+  LeafKS s    : ws -> s ++ untokn ws
+  []               -> []
+ where
+   sel d vs w = case [v | Alt v cs <- vs, any (\c -> isPrefixOf c w) cs] of
+     v:_ -> v
+     _   -> d
+
+
+-- show bracketed markup with references to tree structure
+markLinearizes :: PGF -> CId -> Expr -> [String]
+markLinearizes pgf lang = map (unwords . untokn . (! 0)) . linTree pgf lang mark
+  where
+    mark mb_f path lint = amap (bracket mb_f path) lint
+
+    bracket Nothing  path ts = [LeafKS ["("++show (reverse path)]] ++ ts ++ [LeafKS [")"]]
+    bracket (Just f) path ts = [LeafKS ["(("++showCId f++","++show (reverse path)++")"]] ++ ts ++ [LeafKS [")"]]
+
+
 graphvizDependencyTree :: String -> Bool -> Maybe Labels -> Maybe String -> PGF -> CId -> Expr -> String
-graphvizDependencyTree format debug mlab ms pgf lang exp = case format of
+graphvizDependencyTree format debug mlab ms pgf lang tr = case format of
   "malt" -> unlines (lin2dep format)
   "malt_input" -> unlines (lin2dep format)
-  _ -> prGraph True (lin2dep format) 
-
+  _ ->  concat $ map (++"\n") $ ["digraph {\n"] ++ lin2dep format ++ ["}"]
  where
-
+ 
   lin2dep format = -- trace (ifd (show sortedNodes ++ show nodeWords)) $ 
     case format of
       "malt" -> map (concat . intersperse "\t") wnodes
@@ -103,7 +436,7 @@
 
   ifd s = if debug then s else []
 
-  pot = readPosText $ concat $ take 1 $ markLinearizes pgf lang exp
+  pot = readPosText $ concat $ take 1 $ markLinearizes pgf lang tr
   ---- use Just str if you have str to match against
 
   prelude = ["rankdir=LR ;", "node [shape = plaintext] ;"]
@@ -128,26 +461,25 @@
    where
     hx = headArg (init x) tr x
 
-  headArg x0 tr x = case (tr,x) of
-    (Fun f [],[_]) -> x0 ---- ??
-    (Fun f ts,[_]) -> x0 ++ [getHead (length ts - 1) f]
-    (Fun f ts,i:y) -> headArg x0 (ts !! i) y
+  headArg x0 tr x = case (unApp tr,x) of
+    (Just (f,[]),[_]) -> x0 ---- ??
+    (Just (f,ts),[_]) -> x0 ++ [getHead (length ts - 1) f]
+    (Just (f,ts),i:y) -> headArg x0 (ts !! i) y
     _ -> x0 ----
 
   label tr y x = case span (uncurry (==)) (zip y x) of
     (xys,(_,i):_) -> getLabel i (funAt tr (map fst xys))
     _ -> "" ----
 
-  funAt tr x = case (tr,x) of
-    (Fun f _ ,[])  -> f
-    (Fun f ts,i:y) -> funAt (ts !! i) y
-    _ -> mkCId (prTree tr) ----
+  funAt tr x = case (unApp tr,x) of
+    (Just (f,_) ,[])  -> f
+    (Just (f,ts),i:y) -> funAt (ts !! i) y
+    _ -> mkCId (render (ppExpr 0 [] tr)) ----
 
   word x = if elem x sortedNodes then x else 
            let x' = headArg x tr (x ++[0]) in
            if x' == x then [] else word x'
 
-  tr = expr2tree exp
   sortedNodes = [p | (_,((_,p),_)) <- nodeWords]
 
   labels = maybe Map.empty id mlab
@@ -171,7 +503,7 @@
 
   wnodes = [[show i, maltws ws, showCId fun, pos, pos, morph, show dom, lab, unspec, unspec] | 
               (i, ((fun,p),ws)) <- tail nodeWords,
-              let pos = showCId $ lookValCat pgf fun,
+              let pos = showCId $ lookValCat (abstract pgf) fun,
               let morph = unspec,
               let (dom,lab) = lookDomLab p
            ]
@@ -179,126 +511,6 @@
   unspec = "_"
   rootlabel = "ROOT"
 
-type Labels = Map.Map CId [String]
-
-getDepLabels :: [String] -> Labels
-getDepLabels ss = Map.fromList [(mkCId f,ls) | f:ls <- map words ss]
-
-
--- parse trees from Linearize.linearizeMark
----- nubrec and domins are quadratic, but could be (n log n)
-
-graphvizParseTree :: PGF -> CId -> Expr -> String
-graphvizParseTree pgf lang = prGraph False . lin2tree pgf . concat . take 1 . markLinearizes pgf lang where
-
-lin2tree pgf s = prelude ++ nodes ++ links where
-
-  prelude = ["rankdir=BU ;", "node [shape = record, color = white] ;"]
-
-  nodeRecs = zip [0..] 
-    (nub (filter (not . null) (nlins [postext] ++ [leaves postext])))
-  nlins pts = 
-    nubrec [] $ [(p,cat f) | T (Just f, p) _ <- pts] : 
-                   concatMap nlins [ts | T _ ts <- pts]  
-  leaves pt = [(p++[j],s) | (j,(p,s)) <- 
-                zip [9990..] [(p,s) | ((_,p),ss) <- wlins pt, s <- ss]]
-
-  nubrec es rs = case rs of
-    r:rr -> let r' = filter (not . flip elem es) (nub r) 
-            in r' : nubrec (r' ++ es) rr
-    _ -> rs
-
-  nodes = map mkStruct nodeRecs
-
-  mkStruct (i,cs) = struct i ++ "[label = \"" ++ fields cs ++ "\"] ;"
-  cat = showCId . lookValCat pgf
-  fields cs = concat (intersperse "|" [ mtag (showp p) ++ c | (p,c) <- cs])
-  struct i = "struct" ++ show i
-
-  links = map mkEdge domins
-  domins = nub [((i,x),(j,y)) | 
-    (i,xs) <- nodeRecs, (j,ys) <- nodeRecs, 
-    x <- xs, y <- ys, dominates x y]
-  dominates (p,x) (q,y) = not (null q) && p == init q
-  mkEdge ((i,x),(j,y)) = 
-    struct i ++ ":n" ++ uncommas (showp (fst x)) ++ ":s -- " ++ 
-    struct j ++ ":n" ++ uncommas (showp (fst y)) ++ ":n ;"
-
-  postext = readPosText s
-
--- auxiliaries for graphviz syntax
-struct i = "struct" ++ show i
-mark (j,n) = "n" ++ show j ++ "a" ++ uncommas n
-uncommas = map (\c -> if c==',' then 'c' else c)
-tag s = "<" ++ s ++ ">"
-showp = init . tail . show
-mtag = tag . ('n':) . uncommas
-
--- word alignments from Linearize.markLinearize
--- words are chunks like {[0,1,1,0] old}
-
-graphvizAlignment :: PGF -> Expr -> String
-graphvizAlignment pgf = prGraph True . lin2graph . linsMark  where
-  linsMark t = [concat (take 1 (markLinearizes pgf la t)) | la <- Map.keys (concretes pgf)]
-
-lin2graph :: [String] -> [String]
-lin2graph ss = -- trace (show ss) $ 
-               prelude ++ nodes ++ links
-
- where
-
-  prelude = ["rankdir=LR ;", "node [shape = record] ;"]
-
-  nlins :: [(Int,[((Int,String),String)])]
-  nlins = [(i, [((j,showp p),unw ws) | (j,((_,p),ws)) <- zip [0..] ws]) | 
-                                (i,ws) <- zip [0..] (map (wlins . readPosText) ss)]
-
-  unw = concat . intersperse "\\ "  -- space escape in graphviz
-
-  nodes = map mkStruct nlins
-
-  mkStruct (i, ws) = struct i ++ "[label = \"" ++ fields ws ++ "\"] ;"
-
-  fields ws = concat (intersperse "|" [tag (mark m) ++ " " ++ w | (m,w) <- ws]) 
-
-  links = nub $ concatMap mkEdge (init nlins)
-
-  mkEdge (i,lin) = let lin' = snd (nlins !! (i+1)) in -- next lin in the list
-    [edge i v w | (v@(_,p),_) <- lin, (w@(_,q),_) <- lin', p == q]
-
-  edge i v w = 
-    struct i ++ ":" ++ mark v ++ ":e -> " ++ struct (i+1) ++ ":" ++ mark w ++ ":w ;"
-{-
-alignmentData :: PGF -> [Expr] -> Map.Map String (Map.Map String Double)
-alignmentData pgf = mkStat . concatMap (mkAlign . linsMark)  where
-  linsMark t = 
-    [s | la <- take 2 (cncnames pgf), s <- take 1 (linearizesMark pgf la t)]
-
-  mkStat :: [(String,String)] -> Map.Map String (Map.Map String Double)
-  mkStat = 
-
-  mkAlign :: [String] -> [(String,String)]
-  mkAlign ss = 
-
-  nlins :: [(Int,[((Int,String),String)])]
-  nlins = [(i, [((j,showp p),unw ws) | (j,((_,p),ws)) <- zip [0..] vs]) | 
-                                (i,vs) <- zip [0..] (map (wlins . readPosText) ss)]
-
-  nodes = map mkStruct nlins
-
-  mkStruct (i, ws) = struct i ++ "[label = \"" ++ fields ws ++ "\"] ;"
-
-  fields ws = concat (intersperse "|" [tag (mark m) ++ " " ++ w | (m,w) <- ws]) 
-
-  links = nub $ concatMap mkEdge (init nlins)
-
-  mkEdge (i,lin) = let lin' = snd (nlins !! (i+1)) in -- next lin in the list
-    [edge i v w | (v@(_,p),_) <- lin, (w@(_,q),_) <- lin', p == q]
-
-  edge i v w = 
-    struct i ++ ":" ++ mark v ++ ":e -> " ++ struct (i+1) ++ ":" ++ mark w ++ ":w ;"
--}
-
 wlins :: PosText -> [((Maybe CId,[Int]),[String])]
 wlins pt = case pt of
   T p pts -> concatMap (lins p) pts
@@ -333,21 +545,3 @@
     RP.char ']' >> RP.skipSpaces
     RP.char ')' RP.<++ return ' ' 
     return (fun,map read is)
-
-
-{-
-digraph{
-rankdir ="LR" ;
-node [shape = record] ;
-
-struct1 [label = "<f0> this|<f1> very|<f2> intelligent|<f3> man"] ;
-struct2 [label = "<f0> cet|<f1> homme|<f2> tres|<f3> intelligent|<f4> ci"] ;
-
-struct1:f0 -> struct2:f0 ;
-struct1:f1 -> struct2:f2 ;
-struct1:f2 -> struct2:f3 ;
-struct1:f3 -> struct2:f1 ;
-struct1:f0 -> struct2:f4 ;
-}
--}
-
diff --git a/src/runtime/javascript/grammar.js b/src/runtime/javascript/grammar.js
--- a/src/runtime/javascript/grammar.js
+++ b/src/runtime/javascript/grammar.js
@@ -1,1 +1,1 @@
-var Food = new GFGrammar(new GFAbstract("Phrase",{Boring: new Type([], "Quality"), Cheese: new Type([], "Kind"), Delicious: new Type([], "Quality"), Expensive: new Type([], "Quality"), Fish: new Type([], "Kind"), Fresh: new Type([], "Quality"), Is: new Type(["Item", "Quality"], "Phrase"), Italian: new Type([], "Quality"), QKind: new Type(["Quality", "Kind"], "Kind"), That: new Type(["Kind"], "Item"), This: new Type(["Kind"], "Item"), Very: new Type(["Quality"], "Quality"), Warm: new Type([], "Quality"), Wine: new Type([], "Kind")}),{FoodEng: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("boring"));}, Cheese: function(cs){return new Arr(new Str("cheese"));}, Delicious: function(cs){return new Arr(new Str("delicious"));}, Expensive: function(cs){return new Arr(new Str("expensive"));}, Fish: function(cs){return new Arr(new Str("fish"));}, Fresh: function(cs){return new Arr(new Str("fresh"));}, Is: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), new Str("is"), Food.concretes["FoodEng"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("Italian"));}, QKind: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), Food.concretes["FoodEng"].rule("_7", cs)));}, That: function(cs){return new Arr(new Seq(new Str("that"), Food.concretes["FoodEng"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("this"), Food.concretes["FoodEng"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("very"), Food.concretes["FoodEng"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("warm"));}, Wine: function(cs){return new Arr(new Str("wine"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Phrase: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, "Int": function(cs){return new Arr(cs[0]);}, "Float": function(cs){return new Arr(cs[0]);}, "String": function(cs){return new Arr(cs[0]);}}, new Parser({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Is",[6]), new FFun("Italian",[7]), new FFun("QKind",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("boring")],[new KS("cheese")],[new KS("delicious")],[new KS("expensive")],[new KS("fish")],[new KS("fresh")],[new Arg(0, 0), new KS("is"), new Arg(1, 0)],[new KS("Italian")],[new Arg(0, 0), new Arg(1, 0)],[new KS("that"), new Arg(0, 0)],[new KS("this"), new Arg(0, 0)],[new KS("very"), new Arg(0, 0)],[new KS("warm")],[new KS("wine")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Phrase:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5)), FoodIta: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("noioso"));}, Cheese: function(cs){return new Arr(new Str("formaggio"));}, Delicious: function(cs){return new Arr(new Str("delizioso"));}, Expensive: function(cs){return new Arr(new Str("caro"));}, Fish: function(cs){return new Arr(new Str("pesce"));}, Fresh: function(cs){return new Arr(new Str("fresco"));}, Is: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_6", cs), new Str("è"), Food.concretes["FoodIta"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("italiano"));}, QKind: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_7", cs), Food.concretes["FoodIta"].rule("_6", cs)));}, That: function(cs){return new Arr(new Seq(new Str("quel"), Food.concretes["FoodIta"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("questo"), Food.concretes["FoodIta"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("molto"), Food.concretes["FoodIta"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("caldo"));}, Wine: function(cs){return new Arr(new Str("vino"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Phrase: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, "Int": function(cs){return new Arr(cs[0]);}, "Float": function(cs){return new Arr(cs[0]);}, "String": function(cs){return new Arr(cs[0]);}}, new Parser({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Is",[6]), new FFun("Italian",[7]), new FFun("QKind",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("noioso")],[new KS("formaggio")],[new KS("delizioso")],[new KS("caro")],[new KS("pesce")],[new KS("fresco")],[new Arg(0, 0), new KS("è"), new Arg(1, 0)],[new KS("italiano")],[new Arg(1, 0), new Arg(0, 0)],[new KS("quel"), new Arg(0, 0)],[new KS("questo"), new Arg(0, 0)],[new KS("molto"), new Arg(0, 0)],[new KS("caldo")],[new KS("vino")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Phrase:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5))});
+var Food = new GFGrammar(new GFAbstract("Comment",{Boring: new Type([], "Quality"), Cheese: new Type([], "Kind"), Delicious: new Type([], "Quality"), Expensive: new Type([], "Quality"), Fish: new Type([], "Kind"), Fresh: new Type([], "Quality"), Pred: new Type(["Item", "Quality"], "Comment"), Italian: new Type([], "Quality"), Mod: new Type(["Quality", "Kind"], "Kind"), That: new Type(["Kind"], "Item"), This: new Type(["Kind"], "Item"), Very: new Type(["Quality"], "Quality"), Warm: new Type([], "Quality"), Wine: new Type([], "Kind")}),{FoodEng: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("boring"));}, Cheese: function(cs){return new Arr(new Str("cheese"));}, Delicious: function(cs){return new Arr(new Str("delicious"));}, Expensive: function(cs){return new Arr(new Str("expensive"));}, Fish: function(cs){return new Arr(new Str("fish"));}, Fresh: function(cs){return new Arr(new Str("fresh"));}, Pred: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), new Str("is"), Food.concretes["FoodEng"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("Italian"));}, Mod: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), Food.concretes["FoodEng"].rule("_7", cs)));}, That: function(cs){return new Arr(new Seq(new Str("that"), Food.concretes["FoodEng"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("this"), Food.concretes["FoodEng"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("very"), Food.concretes["FoodEng"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("warm"));}, Wine: function(cs){return new Arr(new Str("wine"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Comment: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, "Int": function(cs){return new Arr(cs[0]);}, "Float": function(cs){return new Arr(cs[0]);}, "String": function(cs){return new Arr(cs[0]);}}, new Parser({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Pred",[6]), new FFun("Italian",[7]), new FFun("Mod",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("boring")],[new KS("cheese")],[new KS("delicious")],[new KS("expensive")],[new KS("fish")],[new KS("fresh")],[new Arg(0, 0), new KS("is"), new Arg(1, 0)],[new KS("Italian")],[new Arg(0, 0), new Arg(1, 0)],[new KS("that"), new Arg(0, 0)],[new KS("this"), new Arg(0, 0)],[new KS("very"), new Arg(0, 0)],[new KS("warm")],[new KS("wine")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Comment:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5)), FoodIta: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("noioso"));}, Cheese: function(cs){return new Arr(new Str("formaggio"));}, Delicious: function(cs){return new Arr(new Str("delizioso"));}, Expensive: function(cs){return new Arr(new Str("caro"));}, Fish: function(cs){return new Arr(new Str("pesce"));}, Fresh: function(cs){return new Arr(new Str("fresco"));}, Pred: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_6", cs), new Str("è"), Food.concretes["FoodIta"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("italiano"));}, Mod: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_7", cs), Food.concretes["FoodIta"].rule("_6", cs)));}, That: function(cs){return new Arr(new Seq(new Str("quel"), Food.concretes["FoodIta"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("questo"), Food.concretes["FoodIta"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("molto"), Food.concretes["FoodIta"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("caldo"));}, Wine: function(cs){return new Arr(new Str("vino"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Comment: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, "Int": function(cs){return new Arr(cs[0]);}, "Float": function(cs){return new Arr(cs[0]);}, "String": function(cs){return new Arr(cs[0]);}}, new Parser({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Pred",[6]), new FFun("Italian",[7]), new FFun("Mod",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("noioso")],[new KS("formaggio")],[new KS("delizioso")],[new KS("caro")],[new KS("pesce")],[new KS("fresco")],[new Arg(0, 0), new KS("è"), new Arg(1, 0)],[new KS("italiano")],[new Arg(1, 0), new Arg(0, 0)],[new KS("quel"), new Arg(0, 0)],[new KS("questo"), new Arg(0, 0)],[new KS("molto"), new Arg(0, 0)],[new KS("caldo")],[new KS("vino")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Comment:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5))});
diff --git a/src/runtime/javascript/minibar/about.html b/src/runtime/javascript/minibar/about.html
--- a/src/runtime/javascript/minibar/about.html
+++ b/src/runtime/javascript/minibar/about.html
@@ -2,13 +2,16 @@
 <html> <head>
 <title>About Minibar</title>
 <link rel=stylesheet type="text/css" href="minibar.css">
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<meta charset="UTF-8">
 </head>
 
 <body>
 <h1>About Minibar</h1>
 
 <a href="minibar.html">Minibar</a> is an alternative implementation of the
-<a href="http://www.grammaticalframework.org:41296/fridge/">Fridge Poetry web app</a>.
+<a href="http://www.grammaticalframework.org/">GF</a> web app
+<a href="http://www.grammaticalframework.org:41296/fridge/">Fridge Poetry</a>.
 It doesn't do everything the original Fridge Poetry does (e.g. drag-and-drop is missing),
 so I refer to it as a minibar rather than a full refrigerator :-)
 
@@ -26,8 +29,8 @@
     and Android Opera Mini 4.2.
   </ul>
   It does not seem work in Internet Explorer 7
-  (there are both styling and scripting issues). There seems to be some rendering bugs
-  in Chrome 5.0.342.9 β.
+  (there are both styling and scripting issues).
+  There seems to be some rendering bugs in Chrome 5.0.342.9 β.
   <li>The implementation consist of two JavaScript files:
   <a href="minibar.js">minibar.js</a> and <a href="support.js">support.js</a>
   The latter is also used in a small web app based on the
@@ -42,47 +45,114 @@
   <li>As an experiment, it does no use the <code>grammars.xml</code> file,
   but instead calls a little CGI script,
   <a href="http://www.grammaticalframework.org:41296/grammars/grammars.cgi.txt">grammars.cgi</a>
-  which lists the .pgf in the directory, in JSONP format. (Note: if you want to install
-  this on your own computer,
+  which lists the .pgf files in the directory, in JSONP format.
+  (Note: if you want to install this on your own computer,
   <ul>
     <li>if you click on the link,
         the CGI script will be downloaded as <code>grammars.cgi.txt</code>,
         but it should be called <code>grammars.cgi</code> and stored on the server
         in the same directory as the grammar files.
-    <li>for CGI scripts to work with lighttpd, <code>"mod_cgi"</code> needs to be included
-    in the definition of <code>server.modules</code> in the
+    <li>for CGI scripts to work with lighttpd, <code>"mod_cgi"</code> needs
+    to be included in the definition of <code>server.modules</code> in the
     <code>lighttpd.conf</code> file.)
   </ul>
   <li>[Added 2010-02-16] There is a button for generating random sentences.
-  <li>[Added 2010-02-23] All translations are shown, not just the first one, if there are
-  multiple parses.
-  <li>[Added 2010-02-25] Next to each translation, there is now a little tree icon that
-  you can click on to see a drawing of an abstract syntax tree or a parse tree. If you click
-  on a drawing it collapses back into a tree icon.
-</ul>
-Work in progress:
-<ul>
-  <li>[Added 2010-04-09] Preparations to support different ways to access the grammar:
-  currently we access a PGF server via JSONP, but I would also like to support AJAX,
-  and local/downloaded JavaScript grammars.
+  <li>[Added 2010-02-23] All translations are shown, not just the first one,
+  if there are multiple parses.
+  <li>[Added 2010-02-25] Next to each translation, there is now a little tree
+  icon that you can click on to see a drawing of an abstract syntax tree or a
+  parse tree. If you click on a drawing it collapses back into a tree icon.
+  <li>[Added 2010-04-09] Preparations to support different ways to access the
+  grammar: currently we access a PGF server via JSONP, but I would also like
+  to support AJAX, and local/downloaded JavaScript grammars.
   <li>[Added 2010-04-19] A text entry field appears when you click in
-  the sentence area (with a dashed border). This allows you to enter words by typing on
-  the keyboard. As you start typing word magnets that don't match what you are typing
-  are removed. When only one magnet remains, you can press enter to complete the word.
+  the sentence area (with a dashed border). This allows you to enter words by
+  typing on the keyboard. As you start typing word magnets that don't match what
+  you are typing are removed. When only one magnet remains, you can press enter
+  to complete the word.
   <li>[Added 2010-04-19] There is a menu for choosing the output language:
-  you can pick "All" to translate to all available languages, or pick one particular
-  language.
-  <li>[Added 2010-04-19] You can pass options to the function <code>start_minibar</code>
-  to customize the user interface. The default is
-  <code>{show_abstract:true,show_trees:true}</code> to show the abstract syntax of parsed
-  sentences, and to show icons that expand to syntax/parse trees next each translation.
+  you can pick "All" to translate to all available languages, or pick one
+  particular language.
+  <li>[Added 2010-04-19] You can pass options to the function
+  <code>start_minibar</code> to customize the user interface. The default is
+  <code>{show_abstract:true,show_trees:true}</code> to show the abstract syntax
+  of parsed sentences, and to show icons that expand to syntax/parse trees next
+  each translation.
   These features can be turned off by setting the fields to <code>false</code>.
+  <li>[Added 2010-04-30] The grammar menu is omitted if there is only one
+      grammar in the grammar list.
+  <li>[Added 2010-04-30] Fewer hardwired constants and new
+  <code>start_minibar</code> options (server, grammars_url, grammar_list,
+  show_grouped_translations, delete_button_text) to make
+  <code>minibar.js</code> more resuable.)
+  <li>[Added 2010-05-26] The magnets are now created with
+  <code>&lt;input type=button&gt;</code> tags to make them clickable in more
+  browsers.
+  <li>[Added 2010-05-26] The text entry field is now visible from the start,
+  and it is removed when no more words can be added to the sentence. When you
+  press enter, the a word is added if there is only one magnet left,
+  <em>or</em> if what you have entered exactly matches one of the remaining
+  magnet.
+  <li>[Added 2010-05-28] Added a link to make it easy to try the same sentence in
+  <a href="http://translate.google.com">Google Translate</a>.
+  This can be turned of by passing the option <code>{try_google:false}</code> to
+  <code>start_minibar</code>.
+  <li>[Added 2010-06-02] Added support for Help and Feedback buttons, controlled
+  by the options <code>feedback_url</code> and <code>help_url</code> passed to
+  <code>start_minibar</code>.
+  <li>[Added 2010-06-02] New option: <code>default_source_language</code>.
+  <li>[Added 2010-09-10] Minibar now automatically uses
+      <a href="http://en.wikipedia.org/wiki/Ajax_(programming)">AJAX</a>
+      instead of JSONP when possible (i.e. when the HTML document and the
+      PGF server are on the same server).
+  <li>[Added 2010-09-10] The default input language is now the user's preferred
+  language, if possible. This is implemented by consulting the
+  <code>userLanguage</code> field in the grammar info output by pgf-server.
+  <li>[Added 2010-10-27] Keyboard input and completion should now work much
+      more smoothly:
+  <ul>
+    <li>When you press space, the current word will be completed (if incomplete)
+      and a new magnet will be created. If there is more than one possible
+      completion, no magnet is created, but the common prefix of the possible
+      completions is added to the text box.
+    <li>Instead of asking the server for possible completions every time a new
+      letter is added to the curent word, minibar only ask for completions for
+      whole words and then filters the list locally when more letters are entered,
+      speeding things up when server responses are slow.
+  </ul>
+  <li>[Added 2010-10-27] Code restructuring:
+    <ul>
+    <li>The PGF server API has been moved to its own file:
+      <a href="pgf_online.js">pgf_online.js</a>. This
+      allows it to be reused in other applicaitons without importing the entire
+      minibar. It also allows minibar to be used with different server
+      interfaces. <a href="minibar.html">minibar.html</a> has been updated to
+      show how you use the new <a href="minibar.js">minibar.js</a> and
+      <a href="pgf_online.js">pgf_online.js</a>.
+    <li>The minibar code has been rewritten to avoid storing state information
+      in the document tree and accessing it by referring to named document
+      elements. The code now also avoids using string literals contaning
+      the names of top-level functions to specify event handlers for buttons
+      and menus. (The code is no longer introspective, so &alpha; conversion
+      will not change its meaning.)
+   </ul>
+ <li>[Added 2010-11-09] Some new documentation:
+   <ul>
+     <li><a href="gf-web-api-examples.html">gf-web-api-examples.html</a>:
+     examples illustrating the PGF server API provided by
+     <a href="pgf_online.js">pgf_online.js</a>.
+     <li><a href="example.html">example.html</a>: a minimal example of a web
+     page that uses <a href="pgf_online.js">pgf_online.js</a> to talk to the
+     PGF server.
+   </ul>
 </ul>
 
 <hr>
+<small class=modtime>
+<!-- hhmts start --> Last modified: Sun Nov 28 12:49:43 CET 2010 <!-- hhmts end -->
+</small>
 <address>
 <a href="http://www.cs.chalmers.se/~hallgren/">TH</a>
 <img src="http://www.altocumulus.org/~hallgren/online.cgi?icon" alt=""></address>
 </address>
-<!-- hhmts start --> Last modified: Mon Apr 19 18:43:48 CEST 2010 <!-- hhmts end -->
 </body> </html>
diff --git a/src/runtime/javascript/minibar/brushed-metal.png b/src/runtime/javascript/minibar/brushed-metal.png
new file mode 100644
Binary files /dev/null and b/src/runtime/javascript/minibar/brushed-metal.png differ
diff --git a/src/runtime/javascript/minibar/example.html b/src/runtime/javascript/minibar/example.html
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/example.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html> <head>
+<title>PGF online server example</title>
+<style type="text/css">
+body { background: #ddd; }
+</style>
+<script type="text/JavaScript" src="http://www.grammaticalframework.org/src/runtime/javascript/minibar/support.js"></script>
+<script type="text/JavaScript" src="http://www.grammaticalframework.org/src/runtime/javascript/minibar/pgf_online.js"></script>
+<script type="text/JavaScript">
+
+var server_options={
+  grammars_url: "http://www.grammaticalframework.org/grammars/",
+  grammar_list: ["Syllogism.pgf"]
+}
+var pgf_server = pgf_online(server_options);
+
+function call_server() {
+  pgf_server.parse("SyllogismEng",document.forms[0].input.value,show_output)
+}
+
+function show_output(parsed) {
+  document.getElementById("output").innerHTML=parsed[0].trees[0]
+}
+
+</script>
+
+</head>
+
+<body>
+<h1>PGF online server example</h1>
+
+<form onsubmit="call_server(); return false">
+Input:
+<input name=input size=50 value="some humans are not human">
+<input type=submit value=Parse>
+
+<p>
+Output:
+<span id=output></span>
+</form>
+
+
+<h2>Documentation</h2>
+<ul>
+  <li><a href="http://www.grammaticalframework.org/~hallgren/gf-web-api-examples.html">GF Web API examples</a>
+</ul>
+
+<hr>
+<address></address>
+<!-- hhmts start --> Last modified: Tue Nov  9 21:54:50 CET 2010 <!-- hhmts end -->
+</body> </html>
diff --git a/src/runtime/javascript/minibar/feedback.cgi b/src/runtime/javascript/minibar/feedback.cgi
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/feedback.cgi
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+bin=../bin
+AUTOHEADER=no
+. $bin/cgistart.sh
+
+save_feedback() {
+getquery
+
+if [ -n "$feedback_path" ] && 
+   echo "t=$(date +%F+%T)&ip=$REMOTE_ADDR&$query&accept_language=$HTTP_ACCEPT_LANGUAGE&user_agent=$(echo -n $HTTP_USER_AGENT | plain2url)" >> "$feedback_path"
+then 
+
+    pagestart "Thank you!"
+    echo "Your feedback has been saved."
+    begin script type="text/javascript"
+    echo "setTimeout(function(){window.close()},4000);"
+    end
+    pageend
+
+else
+
+    pagestart "Feedback error"
+    echo "Your feedback could not be saved. Sorry."
+    p
+    tag 'input type=button onclick="javascript:history.back()" value="&lt;- Go back"'
+    pageend
+
+fi
+}
+
+view_feedback() {
+  charset="UTF-8"
+  pagestart "Collected Feedback"
+  begin pre class=feedbacklist
+   Reg show reverse drop color_depth,pixel_depth,outer_size,inner_size,available_screen_size from-url <"$PATH_TRANSLATED" | plain2html
+  end
+  pageend
+}
+
+case "$PATH_TRANSLATED" in
+  "") save_feedback ;;
+  *) view_feedback
+esac
diff --git a/src/runtime/javascript/minibar/feedback.html b/src/runtime/javascript/minibar/feedback.html
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/feedback.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html> <head>
+<title>Feedback</title>
+<link rel=stylesheet type="text/css" href="minibar.css">
+<script type="text/JavaScript" src="support.js"></script>
+<script type="text/JavaScript" src="minibar.js"></script>
+<meta name = "viewport" content = "width = device-width">
+
+</head>
+
+<body onload="prefill_feedback_form()">
+
+<h2><span id=grammar></span> Feedback</h2>
+
+<form class=feedback name=feedback action="feedback.cgi" method="post">
+<input type=hidden name="grammar">
+
+<p>
+<input type=hidden name="from"> <span class=field id=from>...</span> input:
+<input type=hidden name="input"> <span class=field id=input>...</span>
+
+<div id=translation_box>
+<p><input type=hidden name="to"> <span class=field id="to">...</span> translation:
+<input type=hidden name="translation"> <span class=field id=translation>...</span>
+
+<p><label accesskey="S">Suggest a better translation:
+<textarea rows=3 name="improvement"></textarea></label>
+</div>
+
+<p><label accesskey="C">Comments:
+<br><textarea rows=5 name="comment"></textarea></label>
+
+<p>
+<input type=submit value="Submit Feedback">
+<input type=button value="Cancel" onclick="window.close()">
+
+
+<input type=hidden name="inner_size">
+<input type=hidden name="outer_size">
+<input type=hidden name="screen_size">
+<input type=hidden name="available_screen_size">
+<input type=hidden name="color_depth">
+<input type=hidden name="pixel_depth">
+
+</form>
+</body>
+
+</html>
diff --git a/src/runtime/javascript/minibar/gf-web-api-examples.html b/src/runtime/javascript/minibar/gf-web-api-examples.html
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/gf-web-api-examples.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>GF web services API examples</title>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<style type="text/css">
+body { background: #ddd; }
+
+dt { background: #ffc; }
+dt.js { background: #cef; margin-bottom: 1ex; }
+dd { background: white; margin-top: 1ex; margin-bottom: 1ex; }
+
+dl.apiexamples>dt, dl.apiexamples>dd { font-family: monospace; }
+dl.apiexamples>dd {  white-space: pre; }
+
+</style>
+
+<body>
+<h1>GF web services API examples</h1>
+
+GF can be used interactively from the GF Shell. Some of the functionality
+availiable in the GF shell is also available via the GF web services API.
+
+<p>
+The
+<a href="http://code.google.com/p/grammatical-framework/wiki/GFWebServiceAPI">GF
+Web Service API</a> page describes the calls supported by the GF web service
+API. Below, we illustrate these calls by examples, and also shows
+how to make these calls from JavaScript using the API defined in
+<a href="http://www.grammaticalframework.org/src/runtime/javascript/minibar/pgf_online.js">pgf_online.js</a>.
+
+<p>
+<em>Note</em> that pgf_online.js was developed with
+one particular web application in mind, so the server API provided is
+incomplete and might be made more complete in a future version...
+
+<dl>
+  <dt class=js>These boxes show what the calls look like in the JavaScript
+    API defined in pgf_online.js.
+  <dt>These boxes show the corresponding URLs sent to the PGF server.
+  <dd>These boxes show the JSON (JavaScript data structures) returned by the PGF
+    server. This will be passed to the callback function supplied in the
+    call.
+</dl>
+
+<h2>Initialization</h2>
+<dl class=apiexamples>
+  <dt class=js>
+    // Select which server and grammars to use:
+    <br>var server_options = {
+    <br>&nbsp;&nbsp;grammars_url: "http://www.grammaticalframework.org/grammars/",
+    <br>&nbsp;&nbsp;grammar_list: ["Foods.pgf"] // It's ok to skip this
+    <br>}
+    <br>var server = pgf_online(server_options);
+</dl>
+
+<h2>Examples</h2>
+
+<dl class=apiexamples>
+  <dt class=js> //  Get the list of available grammars
+    <br>server.get_grammarlist(callback)
+  <dt>http://localhost:41296/grammars/grammars.cgi
+  <dd>["Foods.pgf","Phrasebook.pgf"]
+  <dt class=js> // Select which grammar to use
+    <br>server.switch_grammar("Foods.pgf")
+  <dt class=js>// Get grammar info (this method could be renamed)
+    <br>server.get_languages(callback)
+  <dt>http://localhost:41296/grammars/Foods.pgf
+  <dd>{"name":"Foods",
+ "userLanguage":"FoodsEng",
+ "categories":["Comment","Float","Int","Item","Kind","Quality","String"],
+ "functions":["Boring","Cheese","Delicious","Expensive","Fish","Fresh",
+           "Italian","Mod","Pizza","Pred","That","These","This","Those","Very",
+           "Warm","Wine"],
+ "languages":[{"name":"FoodsBul","languageCode":""},
+ 	      {"name":"FoodsEng","languageCode":"en-US"},
+ 	      {"name":"FoodsFin","languageCode":""},
+	      {"name":"FoodsSwe","languageCode":"sv-SE"},
+	      ...]
+}
+  <dt class=js>// Get a random syntax tree
+    <br>server.get_random(callback)
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=random
+  <dd>[{"tree":"Pred (That Pizza) (Very Boring)"}]
+  <dt class=js>// Linearize a syntax tree
+    <br>server.linearize("Pred (That Pizza) (Very Boring)","FoodsEng",callback)
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=linearize&tree=Pred+(That+Pizza)+(Very+Boring)&to=FoodsEng
+  <dd>[{"to":"FoodsEng","text":"that pizza is very boring"}]
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=linearize&tree=Pred+(That+Pizza)+(Very+Boring)
+  <dd>[{"to":"FoodsBul","text":"онази пица е много еднообразна"},
+ {"to":"FoodsEng","text":"that pizza is very boring"},
+ {"to":"FoodsFin","text":"tuo pizza on erittäin tylsä"},
+ {"to":"FoodsSwe","text":"den där pizzan är mycket tråkig"},
+ ...
+]
+  <dt class=js>// Parse a string
+    <br>server.parse("FoodEng","that pizza is very boring",callback)
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=parse&input=that+pizza+is+very+boring&from=FoodsEng
+  <dd>[{"from":"FoodsEng",
+  "brackets":{"cat":"Comment","fid":10,"index":0,"children":[{"cat":"Item","fid":7,"index":0,"children":[{"token":"that"},{"cat":"Kind","fid":6,"index":0,"children":[{"token":"pizza"}]}]},{"token":"is"},{"cat":"Quality","fid":9,"index":0,"children":[{"token":"very"},{"cat":"Quality","fid":8,"index":0,"children":[{"token":"boring"}]}]}]},
+  "trees":["Pred (That Pizza) (Very Boring)"]}]
+  <dt class=js>// Translate to all available langauges
+    <br>server.translate("FoodEng","that pizza is very boring",callback)
+  <dd>...
+  <dt class=js>// Translate to one language  
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=translate&input=that+pizza+is+very+boring&from=FoodsEng&to=FoodsSwe
+  <dd>[{"from":"FoodsEng",
+  "brackets":{"cat":"Comment","fid":10,"index":0,"children":[{"cat":"Item","fid":7,"index":0,"children":[{"token":"that"},{"cat":"Kind","fid":6,"index":0,"children":[{"token":"pizza"}]}]},{"token":"is"},{"cat":"Quality","fid":9,"index":0,"children":[{"token":"very"},{"cat":"Quality","fid":8,"index":0,"children":[{"token":"boring"}]}]}]},
+  "translations":
+       [{"tree":"Pred (That Pizza) (Very Boring)",
+         "linearizations":
+            [{"to":"FoodsSwe",
+              "text":"den där pizzan är mycket tråkig"}]}]}]
+  <dt class=js>// Get completions (what words could come next)
+    <br>server.complete("FoodEng","that pizza is very ",callback)
+  <dt>http://localhost:41296/grammars/Foods.pgf?command=complete&input=that+pizza+is+very+&from=FoodsEng
+  <dd>[{"from":"FoodsEng",
+  "brackets":{"cat":"_","fid":0,"index":0,"children":[{"cat":"Item","fid":7,"index":0,"children":[{"token":"that"},{"cat":"Kind","fid":6,"index":0,"children":[{"token":"pizza"}]}]},{"token":"is"},{"token":"very"}]},
+  "completions":["boring","delicious","expensive","fresh","Italian","very","warm"],
+  "text":""}]
+</dl>
+<hr>
+<!-- hhmts start --> Last modified: Tue Nov  9 21:57:49 CET 2010 <!-- hhmts end -->
+<address>
+<a href="http://www.cse.chalmers.se/~hallgren/>Thomas Hallgren</a>
+</address>
diff --git a/src/runtime/javascript/minibar/minibar.css b/src/runtime/javascript/minibar/minibar.css
--- a/src/runtime/javascript/minibar/minibar.css
+++ b/src/runtime/javascript/minibar/minibar.css
@@ -1,5 +1,5 @@
 body {
-    background: #ccc url("http://www.grammaticalframework.org:41296/fridge/se.chalmers.cs.gf.gwt.FridgeApp/brushed-metal.png");
+    background: #ccc url("brushed-metal.png");
 }
 
 h1, h2, h3, small, th { font-family: sans-serif; }
@@ -20,9 +20,10 @@
     border: 3px solid #e0e0e0;
 }
 
-div.word, span.word, div#words div {
+div.word, span.word, div#words div, div#words input[type=button] {
     display: inline-block;
     font-family: sans-serif;
+    font-size: 100%;
     background-color: white;
     border: 1px solid black;
     padding: 3px;
@@ -34,4 +35,17 @@
 div.modtime { float: right; }
 .modtime { color: #444; white-space: nowrap; }
 
-ul.space>li { margin-top: 0.5ex; }
+ul.space>li { margin-top: 0.75ex; }
+
+div#saldospel input[type=button] { font-size: 100%; }
+
+div#saldospel input.correct { color: green; }
+div#saldospel input.incorrect { color: red; }
+
+#surface input[type=text] { width: 5em; }
+
+.feedback textarea { width: 95%; }
+
+span.field { background-color: #eee; }
+
+pre.feedbacklist { background: white }
diff --git a/src/runtime/javascript/minibar/minibar.html b/src/runtime/javascript/minibar/minibar.html
--- a/src/runtime/javascript/minibar/minibar.html
+++ b/src/runtime/javascript/minibar/minibar.html
@@ -4,12 +4,21 @@
 <link rel=stylesheet type="text/css" href="minibar.css">
 <script type="text/JavaScript" src="support.js"></script>
 <script type="text/JavaScript" src="minibar.js"></script>
+<script type="text/JavaScript" src="pgf_online.js"></script>
+
+<meta name = "viewport" content = "width = device-width">
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<meta charset="UTF-8">
+
 </head>
 
-<body onload="start_minibar({show_abstract:false, show_trees: false})">
-<h1>Minibar</h1>
-<div id=minibar>
+<body>
+<h2>Minibar online</h2>
+<div id=minibar1>
 </div>
+<noscript>
+This page doesn't works unless JavaScript is enabled.
+</noscript>
 <hr>
 
 <small>
@@ -18,12 +27,32 @@
 &amp; <a href="http://www.grammaticalframework.org:41296/translate/">Translator</a>]
 </small>
 <small class=modtime>
-HTML <!-- hhmts start --> Last modified: Mon Apr 19 18:16:40 CEST 2010 <!-- hhmts end -->
+HTML <!-- hhmts start --> Last modified: Fri Dec 17 17:00:19 CET 2010 <!-- hhmts end -->
 </small>
 <address>
 <a href="http://www.cs.chalmers.se/~hallgren/">TH</a>
 <img src="http://www.altocumulus.org/~hallgren/online.cgi?icon" alt=""></address>
 
-</body>
+<script type="text/javascript">
 
+var online_options={
+//grammars_url: "http://www.grammaticalframework.org/grammars/"
+//grammars_url: "http://tournesol.cs.chalmers.se:41296/grammars",
+//grammars_url: "http://localhost:41296/grammars",
+//grammar_list: ["Foods.pgf"], // leave undefined to get list from server
+}
+
+var server=pgf_online(online_options);
+
+var minibar_options= {
+  show_abstract: true,
+  show_trees: true,
+  show_grouped_translations: false,
+  default_source_language: "Eng",
+  try_google: true
+}
+var minibar=new Minibar(server,minibar_options,"minibar1");
+
+</script>
+</body>
 </html>
diff --git a/src/runtime/javascript/minibar/minibar.js b/src/runtime/javascript/minibar/minibar.js
--- a/src/runtime/javascript/minibar/minibar.js
+++ b/src/runtime/javascript/minibar/minibar.js
@@ -1,309 +1,501 @@
 // minibar.js, assumes that support.js has also been loaded
 
-/* --- Configuration -------------------------------------------------------- */
-
-var server="http://www.grammaticalframework.org:41296"
-//var server="http://tournesol.cs.chalmers.se:41296";
-//var server="http://localhost:41296";
-var grammars_url=server+"/grammars/";
+var tree_icon="tree-btn.png";
 
-var tree_icon=server+"/translate/se.chalmers.cs.gf.gwt.TranslateApp/tree-btn.png";
+/*
+// This is essentially what happens when you call start_minibar:
+if(server.grammar_list) grammars=server.grammar_list;
+else grammars=server.get_grammarlist();
+show_grammarlist(grammars)
+select_grammar(grammars[0])
+grammar_info=server.get_languages()
+show_languages(grammar_info)
+new_language()
+complete_output=get_completions()
+show_completions(complete_output)
+*/
 
-var options={
-    show_abstract: true,
-    show_trees: true
+// For backward compatibility:
+function start_minibar(server,opts,target) {
+    return new Minibar(server,opts,target);
 }
 
-/* --- Grammar access object ------------------------------------------------ */
+function Minibar(server,opts,target) {
+    // Typically called when the HTML document is loaded
 
-var server = {
-    // State variables (private):
-    current_grammar_url: grammars_url+"Foods.pgf",
-    // Methods:
-    switch_grammar: function(grammar_name) {
-	this.current_grammar_url=grammars_url+grammar_name;
-    },
-    
-    get_grammarlist: function(cont_name) {
-	jsonp(grammars_url+"grammars.cgi",cont_name);
-    },
-    get_languages: function(cont_name) {
-	jsonp(this.current_grammar_url,cont_name);
-    },
-    get_random: function(cont_name) {
-	jsonp(this.current_grammar_url+"?command=random&random="+Math.random(),cont_name);
-    },
-    linearize: function(tree,to,cont_name) {
-	jsonp(this.current_grammar_url+"?command=linearize&tree="
-	      +encodeURIComponent(tree)+"&to="+to,cont_name)
-    },
-    complete: function(from,input,cont_name) {
-	jsonp(this.current_grammar_url
-	      +"?command=complete"
-	      +"&from="+encodeURIComponent(from)
-	      +"&input="+encodeURIComponent(input),
-	      cont_name);
+    /* --- Configuration ---------------------------------------------------- */
 
-    },
-    translate: function(from,input,cont_name) {
-	jsonp(this.current_grammar_url
-	      +"?command=translate"
-	      +"&from="+encodeURIComponent(from)
-	      +"&input="+encodeURIComponent(input),
-	      cont_name)
+    // default values for options:
+    this.options={
+	show_abstract: false,
+	show_trees: false,
+	show_grouped_translations: true,
+	delete_button_text: "⌫",
+	default_source_language: null,
+	try_google: true,
+	feedback_url: null,
+	random_button: true,
+	help_url: null
     }
 
-};
+    // Apply supplied options
+    if(opts) for(var o in opts) this.options[o]=opts[o];
 
-/* --- Initialisation ------------------------------------------------------- */
+    /* --- Creating user interface elements --------------------------------- */
 
-function start_minibar(opts) { // typically called when the HTML document is loaded
-    if(opts) for(var o in opts) options[o]=opts[o];
+    this.surface=div_id("surface");
+    this.extra=div_id("extra");
+    this.menubar=div_id("menubar");
+    this.words=div_id("words");
+    this.translations=div_id("translations");
 
-    var surface=div_id("surface");
-    surface.setAttribute("onclick","surface_click(this)");
-    appendChildren(element("minibar"),
-		   [div_id("menubar"),
-		    surface,
-		    div_id("words"),
-		    div_id("translations")]);
-    server.get_grammarlist("show_grammarlist");
+    this.minibar=element(target || "minibar");
+    this.minibar.innerHTML="";
+    with(this) {
+	appendChildren(minibar,[menubar,surface,words,translations,extra]);
+	append_extra_buttons(extra,options);
+    }
+
+    // Filled in and added to minibar later:
+    this.grammar_menu=empty_id("select","grammar_menu");
+    this.from_menu=empty_id("select","from_menu");
+    this.to_menu=empty_id("select","to_menu");
+
+    /* --- Minibar client state initialisation ------------------------------ */
+    this.grammar=null;
+    this.current={from: null, input: ""};
+    this.previous=null;
+
+    this.server=server;
+
+    /* --- Main program, this gets things going ----------------------------- */
+    with(this) {
+	if(server.grammar_list) show_grammarlist(server.grammar_list);
+	else server.get_grammarlist(bind(show_grammarlist,this));
+    }
 }
 
+/* --- Auxiliary functions ---------------------------------------------- */
 
-/* --- Functions ------------------------------------------------------------ */
+Minibar.prototype.show_grammarlist=function(grammars) {
+    debug(this)
+    with(this) {
+	//debug("show_grammarlist ")
+	menubar.innerHTML="";
+	if(grammars.length>1) {
+	    function opt(g) { return option(g,g); }
+	    appendChildren(grammar_menu,map(opt,grammars));
+    	    grammar_menu.onchange=
+		bind(function() { select_grammar(grammar_menu.value); },this);
+	    appendChildren(menubar,[text("Grammar: "),grammar_menu]);
+	}
+	appendChildren(menubar,
+		       [text(" From: "), from_menu,
+			text(" To: "), to_menu,
+			button(options.delete_button_text,bind(delete_last,this),"H"),
+			button("Clear",bind(clear_all,this),"L")]);
+	if(options.random_button)
+	    menubar.appendChild(button("Random",bind(generate_random,this),"R"));
+	if(options.help_url)
+	    menubar.appendChild(button("Help",bind(open_help,this)));
+	select_grammar(grammars[0]);
+    }
+}
 
-function show_grammarlist(grammars) {
-  var menu=empty("select");
-  for(var i=0;i<grammars.length;i++) {
-    var opt=empty("option");
-    opt.setAttribute("value",grammars[i]);
-    opt.innerHTML=grammars[i];
-    menu.appendChild(opt);
-  }
-  menu.setAttribute("onchange","new_grammar(this)");
-  var menubar=element("menubar");
-  menubar.innerHTML="Grammar: ";
-  appendChildren(menubar,
-		 [menu,
-		  text(" From: "), empty_id("select","language_menu"),
-		  text(" To: "), empty_id("select","to_menu"),
-		  button("Clear","clear_all()"),
-		  button("⌫","delete_last()"),
-		  button("Random","generate_random()")]);
-  select_grammar(grammars[0]);
+Minibar.prototype.select_grammar=function(grammar_name) {
+    var t=this;
+    //debug("select_grammar ");
+    function get_languages() {
+	t.server.get_languages(bind(t.show_languages,t));
+    }
+    t.server.switch_grammar(grammar_name,get_languages);
 }
 
-function new_grammar(menu) {
-  select_grammar(menu.options[menu.selectedIndex].value);
+Minibar.prototype.show_languages=function(grammar_info) {
+    var t=this;
+    with(t) {
+	//debug("show_languages ");
+	grammar=grammar_info;
+
+	var new_language=function () {
+	    current.from=from_menu.value;
+	    clear_all();
+	}
+	from_menu.onchange=bind(new_language,t);
+	update_language_menu(from_menu,grammar);
+	set_initial_language(options,from_menu,grammar);
+
+	to_menu.onchange=bind(get_translations,t);
+
+	update_language_menu(to_menu,grammar);
+	insertFirst(to_menu,option("All","All"));
+	to_menu.value="All";
+
+	new_language();
+    }
 }
 
-function select_grammar(grammar_name) {
-    server.switch_grammar(grammar_name);
-    server.get_languages("show_languages");
+Minibar.prototype.clear_all1=function() {
+    with(this) {
+	remove_typed_input();
+	current.input="";
+	previous=null;
+	surface.innerHTML="";
+	translations.innerHTML="";
+    }
 }
 
-function langpart(conc,abs) { // langpart("FoodsEng","Food") == "Eng"
-  return conc.indexOf(abs)==0 ? conc.substring(abs.length) : conc;
+Minibar.prototype.clear_all=function() {
+    with(this) {
+	clear_all1();
+	get_completions();
+    }
 }
 
-function show_languages(grammar) {
-    var r="";
-    var lang=grammar.languages;
-    var menu=element("language_menu");
-    menu.setAttribute("onchange","new_language(this)");
-    menu.grammar=grammar;
-    menu.innerHTML="";
+Minibar.prototype.get_completions=function() {
+    with(this) {
+	//debug("get_completions ");
+	words.innerHTML="...";
+	server.complete(current.from,current.input,bind(show_completions,this));
+    }
+}
 
-    for(var i=0; i<lang.length; i++)
-	if(lang[i].canParse)
-	    menu.appendChild(option(langpart(lang[i].name,grammar.name),""+i));
+Minibar.prototype.show_completions=function(complete_output) {
+    with(this) {
+	//debug("show_completions ");
+	var completions=complete_output[0].completions;
+	var emptycnt=add_completions(completions)
+	if(true/*emptycnt>0*/) get_translations();
+	else translations.innerHTML="";
+	if(surface.typed && emptycnt==completions.length) {
+	    if(surface.typed.value=="") remove_typed_input();
+	}
+	else add_typed_input();
+    }
+}
 
-    var to=element("to_menu");
-    to.langmenu=menu;
-    to.setAttribute("onchange","change_tolang(this)");
-    to.innerHMTL="";
-    to.appendChild(option("All","-1"));
-    for(var i=0; i<lang.length; i++)
-	to.appendChild(option(langpart(lang[i].name,grammar.name),lang[i].name));
-    new_language(menu);
+Minibar.prototype.add_completions=function(completions) {
+    with(this) {
+	if(words.timeout) clearTimeout(words.timeout),words.timeout=null;
+	words.innerHTML="";
+	words.completions=completions;
+	words.word=[];
+	var t=surface.typed ? surface.typed.value : "";
+	var emptycnt=0;
+	for(var i=0;i<completions.length;i++) {
+	    var s=completions[i];
+	    if(s.length>0) {
+		var w=word(s);
+		words.appendChild(w);
+		words.word[i]=w;
+	    }
+	    else emptycnt++;
+	}
+	filter_completions(t,true);
+	return emptycnt;
+    }
 }
 
-function new_language(menu) {
-  var ix=menu.options[menu.selectedIndex].value;
-  var langname=menu.grammar.languages[ix].name;
-  menu.current={from: langname, input: ""};
-  clear_all();
+Minibar.prototype.filter_completions=function(t,dim) {
+    with(this) {
+	if(words.timeout) clearTimeout(words.timeout),words.timeout=null;
+	words.filtered=t;
+	//if(dim) debug('filter "'+t+'"');
+	var w=words.word;
+	words.count=0;
+	var dimmed=0;
+	var prefix=""; // longest common prefix, for completion
+	for(var i=0;i<w.length;i++) {
+	    var s=words.completions[i];
+	    var keep=hasPrefix(s,t);
+	    if(keep) {
+		if(words.count==0) prefix=s;
+		else prefix=(commonPrefix(prefix,s));
+		words.count++;
+	    }
+	    if(dim) {
+		w[i].style.opacity= keep ? "1" : "0.5";
+		if(keep) w[i].style.display="inline";
+		else dimmed++;
+	    }
+	    else 
+		w[i].style.display=keep ? "inline" : "none";
+	}
+	words.theword=prefix;
+	if(dimmed>0)
+	    words.timeout=setTimeout(function(){ filter_completions(t,false)},1000);
+    }
 }
+ 
+Minibar.prototype.get_translations=function() {
+    with(this) {
+	var c=current;
+	if(options.show_grouped_translations)
+	    server.translategroup(c.from,c.input,bind(show_groupedtranslations,this));
+	else
+	    server.translate(c.from,c.input,bind(show_translations,this));
+    }
+}
 
-function change_tolang(to_menu) {
-    get_translations(to_menu.langmenu)
+Minibar.prototype.target_lang=function() {
+    with(this) return langpart(to_menu.value,grammar.name);
 }
 
-function clear_all1() {
-    var menu=element("language_menu");
-    menu.current.input="";
-    menu.previous=null;
-    var surface=element("surface");
-    surface.innerHTML="";
-    surface.typed=null;
-    element("translations").innerHTML="";
-    return menu;
+Minibar.prototype.add_typed_input=function() {
+    with(this) {
+	var inp;
+	if(surface.typed) inp=surface.typed;
+	else {
+	    inp=empty("input","type","text");
+	    inp.value="";
+	    inp.setAttribute("accesskey","t");
+	    inp.style.width="10em";
+	    inp.onkeyup=bind(complete_typed,this);
+	    surface.appendChild(inp);
+	    surface.typed=inp;
+	}
+	inp.focus();
+    }
 }
 
-function clear_all() {
-  get_completions(clear_all1());
+Minibar.prototype.remove_typed_input=function() {
+    with(this) {
+	if(surface.typed) {
+	    surface.typed.parentNode.removeChild(surface.typed);
+	    surface.typed=null;
+	}
+    }
 }
 
-function delete_last() {
-  var menu=element("language_menu");
-  if(menu.previous) {
-    menu.current.input=menu.previous.input;
-    menu.previous=menu.previous.previous;
-    var s=element("surface");
-    if(s.typed) {
-	s.removeChild(s.typed.previousSibling);
-	s.typed.focus();
+Minibar.prototype.complete_typed=function(event) {
+    with(this) {
+	//element("debug").innerHTML=show_props(event,"event");
+	var inp=surface.typed;
+	//debug('"'+inp.value+'"');
+	var s=inp.value;
+	var ws=s.split(" ");
+	if(ws.length>1 || event.keyCode==13) {
+	    if(ws[0]!=words.filtered) filter_completions(ws[0],true);
+	    if(words.count==1) add_word(words.theword);
+	    else if(elem(ws[0],words.completions)) add_word(ws[0]);
+	    else if(words.theword.length>ws[0].length) inp.value=words.theword;
+	}
+	else if(s!=words.filtered) filter_completions(s,true)
     }
-    else
-	s.removeChild(s.lastChild);
-    element("translations").innerHTML="";
-    get_completions(menu);
-  }
 }
 
-function surface_click(surface) {
-    if(surface.typed)
-	inp=surface.typed;
-    else {
-	var inp=empty("input","type","text");
-	//inp.setAttribute("onclick","return false;"); // Don't propagate click to surface
-	inp.setAttribute("onkeyup","complete_typed(this)");
-	inp.setAttribute("onchange","finish_typed(this)");
-	surface.appendChild(inp);
-	surface.typed=inp;
+Minibar.prototype.generate_random=function() {
+    var t=this;
+    function show_random(random) {
+	t.clear_all1();
+	t.add_words(random[0].text);
     }
-    inp.focus();
+    
+    function lin_random(abs) {
+	t.server.linearize(abs[0].tree,t.current.from,show_random);
+    }
+    t.server.get_random(lin_random);
 }
 
-function complete_typed(inp) {
-    var menu=element("language_menu");
-    var c=menu.current;
-    if(!inp.completing || inp.completing!=inp.value) {
-	inp.completing=inp.value;
-	server.complete(c.from,c.input+inp.value,"show_completions");
+Minibar.prototype.add_words=function(s) {
+    with(this) {
+	var ws=s.split(" ");
+	for(var i=0;i<ws.length;i++)
+	    add_word1(ws[i]+" ");
+	get_completions();
     }
 }
 
-function finish_typed(inp) {
-    var box=element("words");
-    if(box.completions.length==1)
-	add_word(box.completions[0]);
+Minibar.prototype.word=function(s) { 
+    var t=this;
+    function click_word() {
+	if(t.surface.typed) t.surface.typed.value="";
+	t.add_word(s);
+    }
+    return button(s,click_word);
 }
 
-function generate_random() {
-    server.get_random("lin_random");
+Minibar.prototype.add_word=function(s) {
+    with(this) {
+	add_word1(s+" ");
+	if(surface.typed) {
+	    var s2;
+	    if(hasPrefix(s2=surface.typed.value,s)) {
+		s2=s2.substr(s.length);
+		while(s2.length>0 && s2[0]==" ") s2=s2.substr(1);
+		surface.typed.value=s2;
+	    }
+	    else surface.typed.value="";
+	}
+	get_completions();
+    }
 }
 
-function lin_random(abs) {
-  var menu=element("language_menu");
-  var lang=menu.current.from;
-  server.linearize(abs[0].tree,lang,"show_random");
+Minibar.prototype.add_word1=function(s) {
+    with(this) {
+	previous={ input: current.input, previous: previous };
+	current.input+=s;
+	var w=span_class("word",text(s));
+	if(surface.typed) surface.insertBefore(w,surface.typed);
+	else surface.appendChild(w);
+    }
 }
 
-function show_random(random) {
-  var menu=clear_all1();
-  var words=random[0].text.split(" ");
-  for(var i=0;i<words.length;i++)
-    add_word1(menu,words[i]+" ");
-  element("words").innerHTML="...";
-  get_completions(menu);
+Minibar.prototype.delete_last=function() {
+    with(this) {
+	if(surface.typed && surface.typed.value!="")
+	    surface.typed.value="";
+	else if(previous) {
+	    current.input=previous.input;
+	    previous=previous.previous;
+	    if(surface.typed) {
+		surface.removeChild(surface.typed.previousSibling);
+		surface.typed.focus();
+	    }
+	    else surface.removeChild(surface.lastChild);
+	    translations.innerHTML="";
+	    get_completions();
+	}
+    }
 }
 
-function get_completions(menu) {
-  var c=menu.current;
-  server.complete(c.from,c.input,"show_completions");
+Minibar.prototype.tdt=function(tree_btn,txt) {
+    with(this) {
+	return options.show_trees ? tda([tree_btn,txt]) : td(txt);
+    }
 }
 
-function word(s) {
-  var w=div_class("word",text(s));
-  w.setAttribute("onclick",'add_word("'+s+'")');
-  return w;
+Minibar.prototype.show_translations=function(translationResults) {
+    with(this) {
+	var trans=translations;
+	//var to=target_lang(); // wrong
+	var to=to_menu.value;
+	var cnt=translationResults.length;
+	//trans.translations=translations;
+	trans.single_translation=[];
+	trans.innerHTML="";
+	/*
+	  trans.appendChild(wrap("h3",text(cnt<1 ? "No translations?" :
+	  cnt>1 ? ""+cnt+" translations:":
+	  "One translation:")));
+	*/
+	for(p=0;p<cnt;p++) {
+	    var tra=translationResults[p];
+	    if (tra.translations != null) {
+		for (q = 0; q < tra.translations.length; q++) {
+		    var t = tra.translations[q];
+		    var lin=t.linearizations;
+		    var tbody=empty("tbody");
+		    if(options.show_abstract && t.tree)
+			tbody.appendChild(tr([th(text("Abstract: ")),
+					      tdt(abstree_button(t.tree),text(" "+t.tree))]));
+		    for(var i=0;i<lin.length;i++) 
+			if(to=="All" || lin[i].to==to)
+			    tbody.appendChild(tr([th(text(langpart(lin[i].to,grammar.name)+": ")),
+						  tdt(parsetree_button(t.tree,lin[i].to),
+						      text(lin[i].text))]));
+		    trans.appendChild(wrap("table",tbody));
+		}
+	    }
+	    else if(tra.typeErrors) {
+		var errs=tra.typeErrors;
+		for(var i=0;i<errs.length;i++)
+		    trans.appendChild(wrap("pre",text(errs[i].msg)))
+	    }
+	}
+    }
 }
 
-function add_word1(menu,s) {
-    menu.previous={ input: menu.current.input, previous: menu.previous };
-    menu.current.input+=s;
-    var w=span_class("word",text(s));
-    var surface=element("surface");
-    if(surface.typed) {
-	surface.typed.value="";
-	surface.insertBefore(w,surface.typed);
+Minibar.prototype.show_groupedtranslations=function(translationsResult) {
+    with(this) {
+	var trans=translations;
+	var to=target_lang();
+	//var to=to_menu.value // wrong
+	var cnt=translationsResult.length;
+	//trans.translations=translationsResult;
+	trans.single_translation=[];
+	trans.innerHTML="";
+	for(p=0;p<cnt;p++) {
+	    var t=translationsResult[p];
+	    if(to=="All" || t.to==to) {
+		var lin=t.linearizations;
+		var tbody=empty("tbody");
+		if(to=="All") tbody.appendChild(tr([th(text(t.to+":"))]));
+		for(var i=0;i<lin.length;i++) {
+		    if(to!="All") trans.single_translation[i]=lin[i].text;
+		    tbody.appendChild(tr([td(text(lin[i].text))]));
+		    if (lin.length > 1) tbody.appendChild(tr([td(text(lin[i].tree))]));
+		}
+		trans.appendChild(wrap("table",tbody));
+	    }
+	}
     }
-    else
-	surface.appendChild(w);
 }
 
-function add_word(s) {
-  var menu=element("language_menu");
-  add_word1(menu,s);
-  element("words").innerHTML="...";
-  get_completions(menu);
+Minibar.prototype.append_extra_buttons=function(extra,options) {
+    with(this) {
+	if(options.try_google)
+	    extra.appendChild(button("Try Google Translate",bind(try_google,this)));
+	if(options.feedback_url)
+	    appendChildren(extra,[text(" "),button("Feedback",bind(open_feedback,this))]);
+    }
 }
 
-function show_completions(completions) {
-  var box=element("words");
-  var menu=element("language_menu");
-  var prefixlen=menu.current.input.length;
-  var emptycnt=0;
-  box.innerHTML="";
-  box.completions=[];
-  for(var i=0;i<completions.length;i++) {
-    var s=completions[i].text.substring(prefixlen);
-    box.completions[i]=s;
-    if(s.length>0) box.appendChild(word(s));
-    else emptycnt++;
-  }
-  if(emptycnt>0)
-    //setTimeout(function(){get_translations(menu);},200);
-    get_translations(menu);
+Minibar.prototype.try_google=function() {
+    with(this) {
+	var to=target_lang();
+	var s=current.input;
+	if(surface.typed) s+=surface.typed.value;
+	var url="http://translate.google.com/?sl="
+	        +langpart(current.from,grammar.name);
+	if(to!="All") url+="&tl="+to;
+	url+="&q="+encodeURIComponent(s);
+	window.open(url);
+    }
 }
 
-function get_translations(menu) {
-  server.translate(menu.current.from,menu.current.input,"show_translations");
+Minibar.prototype.open_help=function() {
+    with(this) open_popup(options.help_url,"help");
 }
 
-function tdt(tree_btn,txt) {
-    return options.show_trees ? tda([tree_btn,txt]) : td(txt);
+Minibar.prototype.open_feedback=function() {
+    with(this) {
+	// make the minibar state easily accessible from the feedback page:
+	minibar.state={grammar:grammar,current:current,to:to_menu.value,
+		       translations:translations};
+	open_popup(options.feedback_url,'feedback');
+    }
 }
 
-function show_translations(translations) {
-  var trans=element("translations");
-  var menu=element("language_menu");
-  var grammar=menu.grammar;
-  var to_menu=element("to_menu");
-  var to=to_menu.options[to_menu.selectedIndex].value
-  var cnt=translations.length;
-  trans.innerHTML="";
-  trans.appendChild(wrap("h3",text(cnt<1 ? "No translations?" :
-				   cnt>1 ? ""+cnt+" translations:":
-				   "One translation:")));
-  for(p=0;p<cnt;p++) {
-    var t=translations[p];
-    var lin=t.linearizations;
-    var tbody=empty("tbody");
-    if(options.show_abstract && t.tree)
-      tbody.appendChild(tr([th(text("Abstract: ")),
-			    tdt(abstree_button(t.tree),text(" "+t.tree))]));
-    for(var i=0;i<lin.length;i++)
-	if(to=="-1" || lin[i].to==to)
-	    tbody.appendChild(tr([th(text(langpart(lin[i].to,grammar.name)+": ")),
-				  tdt(parsetree_button(t.tree,lin[i].to),
-				      text(lin[i].text))]));
-    trans.appendChild(wrap("table",tbody));
-  }
+function update_language_menu(menu,grammar) {
+    // Replace the options in the menu with the languages in the grammar
+    var lang=grammar.languages;
+    menu.innerHTML="";
+	
+    for(var i=0; i<lang.length; i++) {
+	var ln=lang[i].name;
+	if(!hasPrefix(ln,"Disamb")) {
+	    var lp=langpart(ln,grammar.name);
+	    menu.appendChild(option(lp,ln));
+	}
+    }
 }
 
+function set_initial_language(options,menu,grammar) {
+    if(grammar.userLanguage) menu.value=grammar.userLanguage;
+    else if(options.default_source_language) {
+	for(var i=0;i<menu.options.length;i++) {
+	    var o=menu.options[i].value;
+	    var l=langpart(o,grammar.name);
+	    if(l==options.default_source_language) menu.value=o;
+	}
+    }
+}
+
+function langpart(conc,abs) { // langpart("FoodsEng","Foods") == "Eng"
+    return hasPrefix(conc,abs) ? conc.substr(abs.length) : conc;
+}
+
 function abstree_button(abs) {
   var i=img(tree_icon);
   i.setAttribute("onclick","toggle_img(this)");
@@ -325,6 +517,45 @@
   i.other=tmp;
 }
 
+function open_popup(url,target) {
+    var w=window.open(url,target,'toolbar=no,location=no,status=no,menubar=no');
+    w.focus();
+}
+
+function setField(form,name,value) {
+    form[name].value=value;
+    var el=element(name);
+    if(el) el.innerHTML=value;
+}
+
+function opener_element(id) { with(window.opener) return element(id); }
+
+// This function is called from feedback.html
+function prefill_feedback_form() {
+    var state=opener_element("minibar").state;
+    var trans=state.translations;
+    var gn=state.grammar.name
+    var to=langpart(state.to,gn);
+
+    var form=document.forms.namedItem("feedback");
+    setField(form,"grammar",gn);
+    setField(form,"from",langpart(state.current.from,gn));
+    setField(form,"input",state.current.input);
+    setField(form,"to",to);
+    if(to=="All") element("translation_box").style.display="none";
+    else setField(form,"translation",trans.single_translation.join(" / "));
+    
+    // Browser info:
+    form["inner_size"].value=window.innerWidth+"×"+window.innerHeight;
+    form["outer_size"].value=window.outerWidth+"×"+window.outerHeight;
+    form["screen_size"].value=screen.width+"×"+screen.height;
+    form["available_screen_size"].value=screen.availWidth+"×"+screen.availHeight;
+    form["color_depth"].value=screen.colorDepth;
+    form["pixel_depth"].value=screen.pixelDepth;
+
+    window.focus();
+}
+    
 
 /*
 se.chalmers.cs.gf.gwt.TranslateApp/align-btn.png
diff --git a/src/runtime/javascript/minibar/pgf_online.js b/src/runtime/javascript/minibar/pgf_online.js
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/pgf_online.js
@@ -0,0 +1,53 @@
+
+/* --- Grammar access object ------------------------------------------------ */
+
+function pgf_online(options) {
+    var server = {
+	// State variables (private):
+	grammars_url: "/grammars/",
+	grammar_list: null,
+	current_grammar_url: null,
+	
+	// Methods:
+	switch_grammar: function(grammar_url,cont) {
+ 	    this.current_grammar_url=this.grammars_url+grammar_url;
+	    if(cont) cont();
+	},
+	get_grammarlist: function(cont) {
+	    http_get_json(this.grammars_url+"grammars.cgi",cont);
+	},
+	pgf_call: function(cmd,args,cont) {
+	    var url=this.current_grammar_url+"?command="+cmd;
+	    for(var arg in args) url+="&"+arg+"="+encodeURIComponent(args[arg]);
+	    http_get_json(url,cont);
+	},
+	
+	get_languages: function(cont) {
+	    this.pgf_call("grammar",{},cont);
+	},
+	
+	get_random: function(cont) {
+	    this.pgf_call("random",{random:Math.random()},cont);
+	},
+	linearize: function(tree,to,cont) {
+	    this.pgf_call("linearize",{tree:tree,to:to},cont);
+	},
+	complete: function(from,input,cont) {
+	    this.pgf_call("complete",{from:from,input:input},cont);
+	},
+	parse: function(from,input,cont) {
+	    this.pgf_call("parse",{from:from,input:input},cont);
+	},
+	translate: function(from,input,cont) {
+	    this.pgf_call("translate",{from:from,input:input},cont);
+	},
+	translategroup: function(from,input,cont) {
+	    this.pgf_call("translategroup",{from:from,input:input},cont);
+	}
+	
+    };
+    for(var o in options) server[o]=options[o];
+    if(server.grammar_list && server.grammar_list.length>0)
+	server.switch_grammar(server.grammar_list[0]);
+    return server;
+}
diff --git a/src/runtime/javascript/minibar/phrasebook.html b/src/runtime/javascript/minibar/phrasebook.html
new file mode 100644
--- /dev/null
+++ b/src/runtime/javascript/minibar/phrasebook.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
+<html>
+<head> 
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<meta charset="UTF-8">
+<title>Phrasebook</title> 
+<link rel=stylesheet type="text/css" href="minibar.css"> 
+<script type="text/JavaScript" src="support.js"></script> 
+<script type="text/JavaScript" src="pgf_online.js"></script>
+<script type="text/JavaScript" src="minibar.js"></script>
+<meta name = "viewport" content = "width = device-width">
+</head>
+ 
+<body> 
+
+<div id=minibar></div> 
+
+<hr> 
+ 
+<small> 
+
+Powered by <a href="http://www.grammaticalframework.org/">GF</a>,
+see <a href="http://www.grammaticalframework.org/examples/phrasebook/doc-phrasebook.html">doc</a>.
+
+</small>
+
+<script type="text/JavaScript">
+
+var online_options={
+  grammars_url: "http://www.grammaticalframework.org/grammars/",
+//grammars_url: "http://tournesol.cs.chalmers.se:41296/grammars",
+//grammars_url: "http://localhost:41296/grammars",
+  grammar_list: ["Phrasebook.pgf"], // leave undefined to get list from server
+}
+
+var server=pgf_online(online_options);
+
+var phrasebook_options={
+  delete_button_text: "Del",
+  help_url: "http://www.grammaticalframework.org/examples/phrasebook/help-phrasebook.html",
+  feedback_url: "feedback.html",
+  default_source_language: "Eng"
+}
+
+start_minibar(server,phrasebook_options)
+</script>
+
+</body> 
+ 
+</html> 
+
+
+
diff --git a/src/runtime/javascript/minibar/saldotest.html b/src/runtime/javascript/minibar/saldotest.html
--- a/src/runtime/javascript/minibar/saldotest.html
+++ b/src/runtime/javascript/minibar/saldotest.html
@@ -4,18 +4,25 @@
 <link rel=stylesheet type="text/css" href="minibar.css">
 <script type="text/JavaScript" src="support.js"></script>
 <script type="text/JavaScript" src="saldotest.js"></script>
+<meta name = "viewport" content = "width = device-width">
 </head>
 
-<body onload="start_saldotest()">
-<h1>En liten saldoleksak</h1>
+<body onload="start_saldotest();start_saldospel()">
+
+<h2>Vilket ord ska bort?</h2>
+<div id=saldospel>
+</div>
+
+<h2>Hel- och halvspöke</h2>
 <div id=saldotest>
 </div>
+
 <hr>
 <small>
 [Baserad på <a href="http://spraakbanken.gu.se/sal/ws/">SALDOs nättjänster</a>]
 </small>
 <small class=modtime>
-HTML <!-- hhmts start --> Last modified: Tue Feb 23 20:30:14 CET 2010 <!-- hhmts end -->
+HTML <!-- hhmts start --> Last modified: Thu May 27 14:02:42 CEST 2010 <!-- hhmts end -->
 </small>
 <address>TH <img src="http://www.altocumulus.org/~hallgren/online.cgi?icon" alt=""></address>
 </body>
diff --git a/src/runtime/javascript/minibar/saldotest.js b/src/runtime/javascript/minibar/saldotest.js
--- a/src/runtime/javascript/minibar/saldotest.js
+++ b/src/runtime/javascript/minibar/saldotest.js
@@ -3,6 +3,14 @@
 //var Saldo_ff_url = Saldo_ws_url+"ff/json+remember_completions/";
 var Saldo_lid_url = Saldo_ws_url+"lid/json";
 
+function saldo_ws(fn,fmt,arg,cont_name) {
+    jsonp(Saldo_ws_url+fn+"/"+fmt+(cont_name ? "+"+cont_name : "")+"/"+arg,"");
+}
+
+function saldo_json(fn,arg,cont_name) { saldo_ws(fn,"json",arg,cont_name); }
+function saldo_lid(arg,cont_name) { saldo_json("lid",arg,cont_name); }
+function saldo_lid_rnd(cont_name) { saldo_lid("rnd?"+Math.random(),cont_name); }
+
 var ordlista=[];
 var current="";
 
@@ -11,18 +19,21 @@
 		 [button("Slumpa","random_word()"),
 		  button("Rensa","clear_all()"),
 		  button("⌫","delete_last()"),
-		  button("Ordlista","show_ordlista()"),
+		//button("Ordlista","show_ordlista()"),
 		  button("Visa tänkbara drag","show_moves()"),
 		  button("Gör ett drag","make_a_move()"),
-		  button("Visa prefix","show_prefixes()"),
+		//button("Visa prefix","show_prefixes()"),
 		  div_id("surface"),
 		  div_id("words"),
 		  div_id("translations")])
+  var style0="min-height: 3ex; margin: 5px; padding: 5px;";
+  element("surface").setAttribute("style",style0+"border: 3px dashed #e0e0e0;");
+  element("words").setAttribute("style",style0+"border: 3px solid #e0e0e0;");
   clear_all();
 }
 
 function random_word() {
-  jsonp(Saldo_lid_url+"+show_random/rnd?"+Math.random());
+  saldo_lid_rnd("show_random");
 }
 
 function show_random(lid) {
@@ -66,10 +77,11 @@
 }
 
 function word(s) {
-  var w=span_class("word",text(s));
-  if(s==" ") w.innerHTML="&nbsp;";
-  w.setAttribute("onclick",'extend_current("'+s+'")');
-  return w;
+    //var w=span_class("word",text(s));
+    //if(s==" ") w.innerHTML="&nbsp;";
+    //w.setAttribute("onclick",'extend_current("'+s+'")');
+    //return w;
+    return button(s,'extend_current("'+s+'")');
 }
 
 function extend_current(s) {
@@ -106,6 +118,8 @@
   }
 }
 
+// ordklasser: mxc sxc (förekommer bara som prefix),
+//             *h (förekommer bara som suffix)
 function ignore(msd) {
   switch(msd) {
   case "c":
@@ -237,4 +251,90 @@
   var trans=element("translations");
   trans.innerHTML="Prefix av "+current+":";
   show_prefixes_of(trans,current);
+}
+
+/* -------------------------------------------------------------------------- */
+
+var spel={ antal_ord: 4, // antal närbesläktade ord att visa
+	   antal_korrekta_svar: 0,
+	   antal_felaktiga_svar: 0 
+	 };
+
+function start_saldospel() {
+    spel.hylla=div_id("hylla");
+    spel.status=div_id("status");
+    //element("saldospel").innerHTML="<span id=score></span>";
+    appendChildren(element("saldospel"),
+		   [spel.hylla,spel.status,
+		    p(text("")),
+		    button("Nya ord","spel0()"),
+		    text(" "),
+		    wrap("b",span_id("score"))]);
+    spel.score=element("score");
+    show_score();
+    spel0();
+}
+
+function spel0() { // Välj ord 1
+  saldo_lid_rnd("spel1");
+}
+
+function spel1(lid) { // Slå upp md1 för ord 1
+    spel.lid=lid;
+    saldo_json("md1",lid.lex,"spel2");
+}
+
+function spel2(md1) { // Kontrollera att det finns minst 4 ord i md1 för ord1
+    if(md1.length<spel.antal_ord) spel0();
+    else {
+	spel.md1=md1;
+	spel3();
+    }
+}
+
+function spel3() { // Välj ord 2
+    saldo_lid_rnd("spel4");
+}
+
+function spel4(lid) { // Slå upp md1 för ord 2
+    spel.lid2=lid;
+    saldo_json("md1",lid.lex,"spel5");
+}
+
+function spel5(md1) { // Kontrollera att ord 1 och ord 2 inte har något gemensamt
+    var ordlista1=map(wf,spel.md1);
+    var ord2=wf(spel.lid2.lex);
+    var ordlista2=map(wf,md1).concat(ord2);
+    if(overlaps(ordlista1,ordlista2)) spel3();
+    else spel6(ordlista1,ord2);
+}
+
+function spel6(ordlista1,ord2) {
+    spel.ord2=ord2;
+    var pos=Math.floor(Math.random()*spel.antal_ord);
+    var ordlista=shuffle(shuffle(ordlista1).slice(0,spel.antal_ord).concat(ord2));
+    spel.hylla.innerHTML="";
+    var lista=empty_class("div","space");
+    for(var i=0;i<ordlista.length;i++)
+	lista.appendChild((button(ordlista[i],"spel7(this)")));
+    spel.hylla.appendChild(lista);
+}
+
+function spel7(btn) {
+    btn.disabled=true;
+    var ok=btn.value==spel.ord2;
+    //btn.setAttribute("class",ok ? "correct" : "incorrect");
+    btn.setAttribute("style",ok ? "color: green" : "color: red");
+    if(ok) spel.antal_korrekta_svar++; else spel.antal_felaktiga_svar++;
+    show_score();
+    if(ok) spel0();
+}
+
+function show_score() {
+    spel.score.innerHTML=""+spel.antal_korrekta_svar+" rätt, "
+	+spel.antal_felaktiga_svar+" fel";
+}
+
+function wf(ord) { // word form, wf("band..1") == "band"
+    return ord.split(".",1)[0].split("_").join(" ");
 }
diff --git a/src/runtime/javascript/minibar/support.js b/src/runtime/javascript/minibar/support.js
--- a/src/runtime/javascript/minibar/support.js
+++ b/src/runtime/javascript/minibar/support.js
@@ -4,6 +4,14 @@
   return document.getElementById(id);
 }
 
+/* --- JavaScript tricks ---------------------------------------------------- */
+
+// To be able to use object methods that refer to "this" as callbacks
+// See section 3.3 of https://github.com/spencertipping/js-in-ten-minutes/raw/master/js-in-ten-minutes.pdf
+function bind(f, this_value) {
+    return function () {return f.apply (this_value, arguments)};
+};
+
 /* --- JSONP ---------------------------------------------------------------- */
 
 // Inspired by the function jsonp from 
@@ -25,25 +33,96 @@
     document.body.appendChild(script);
 }
 
+var json = {next:0};
+
+// Like jsonp, but instead of passing the name of the callback function, you 
+// pass the callback function directly, making it possible to use anonymous
+// functions.
+function jsonpf(url,callback)
+{
+    var name="callback"+(json.next++);
+    json[name]=function(x) { delete json[name]; callback(x); }
+    jsonp(url,"json."+name);
+}
+
+/* --- AJAX ----------------------------------------------------------------- */
+
+function GetXmlHttpObject(handler)
+{ 
+  var objXMLHttp=null
+  if (window.XMLHttpRequest)
+  {
+    // See http://www.w3.org/TR/XMLHttpRequest/
+    //     https://developer.mozilla.org/en/xmlhttprequest
+    objXMLHttp=new XMLHttpRequest()
+  }
+  else if (window.ActiveXObject)
+  {
+    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
+  }
+  return objXMLHttp
+}
+
+function ajax_http_get(url,callback,errorcallback) {
+    var http=GetXmlHttpObject()
+    if (http==null) {
+	alert ("Browser does not support HTTP Request")
+	return
+    } 
+    var statechange=function() {
+	if (http.readyState==4 || http.readyState=="complete") {
+	    if(http.status<300) callback(http.responseText,http.status);
+	    else if(errorcallback) errorcallback(http.responseText,http.status);
+	    else alert("Request for "+url+" failed: "
+		       +http.status+" "+http.statusText);
+	}
+    }
+    http.onreadystatechange=statechange;
+    http.open("GET",url,true)
+    http.send(null)
+    //dump("http get "+url+"\n")
+    return http
+}
+
+// JSON via AJAX
+function ajax_http_get_json(url,cont) {
+    ajax_http_get(url,function(txt) { cont(eval("("+txt+")")); });
+}
+
+function sameOrigin(url) {
+    return hasPrefix(url,location.protocol+"//"+location.host+"/");
+}
+
+// Use AJAX when possible, fallback to JSONP
+function http_get_json(url,cont) {
+    if(sameOrigin(url)) ajax_http_get_json(url,cont);
+    else jsonpf(url,cont);
+}
+
+
 /* --- HTML construction ---------------------------------------------------- */
 function text(s) { return document.createTextNode(s); }
 
+function node(tag,as,ds) {
+    var n=document.createElement(tag);
+    for(var a in as) n.setAttribute(a,as[a]);
+    for(var i in ds) n.appendChild(ds[i]);
+    return n;
+}
+
 function empty(tag,name,value) {
-  var el=document.createElement(tag);
-  if(name && value) el.setAttribute(name,value);
-  return el;
+    var el=node(tag,{},[])
+    if(name && value) el.setAttribute(name,value);
+    return el;
 }
 
 function empty_id(tag,id) { return empty(tag,"id",id); }
 function empty_class(tag,cls) { return empty(tag,"class",cls); }
 
 function div_id(id) { return empty_id("div",id); }
+function span_id(id) { return empty_id("span",id); }
 
-function wrap(tag,contents) {
-  var el=empty(tag);
-  el.appendChild(contents);
-  return el;
-}
+function wrap(tag,contents) { return node(tag,{},[contents]); }
 
 function wrap_class(tag,cls,contents) {
   var el=empty_class(tag,cls);
@@ -56,42 +135,45 @@
 
 function p(contents) { return wrap("p",contents); }
 function dt(contents) { return wrap("dt",contents); }
+function li(contents) { return wrap("li",contents); }
 
 function th(contents) { return wrap("th",contents); }
 function td(contents) { return wrap("td",contents); }
 
-function tr(cells) {
-  var tr=empty("tr");
-  for(var i=0;i<cells.length;i++)
-    tr.appendChild(cells[i]);
-  return tr;
-}
+function tr(cells) { return node("tr",{},cells); }
 
-function button(label,action) {
-  var el=empty("input","type","button");
-  el.setAttribute("value",label);
-  el.setAttribute("onclick",action);
-  return el;
+function button(label,action,key) {
+    var el=node("input",{"type":"button","value":label},[]);
+    if(typeof action=="string") el.setAttribute("onclick",action);
+    else el.onclick=action;
+    if(key) el.setAttribute("accesskey",key);
+    return el;
 }
 
 function option(label,value) {
-    var el=empty("option","value",value);
-    el.innerHTML=label;
+    return node("option",{"value":value},[text(label)]);
+}
+
+function appendChildren(el,ds) {
+    for(var i in ds) el.appendChild(ds[i]);
     return el;
 }
 
-function appendChildren(el,cs) {
-  for(var i=0;i<cs.length;i++)
-    el.appendChild(cs[i]);
-  return el;
+function insertFirst(parent,child) {
+    parent.insertBefore(child,parent.firstChild);
 }
 
-function tda(cs) { return appendChildren(empty("td"),cs); }
+function tda(cs) { return node("td",{},cs); }
 
 function img(src) { return empty("img","src",src); }
 
 /* --- Debug ---------------------------------------------------------------- */
 
+function debug(s) {
+    var d=element("debug");
+    if(d) d.appendChild(text(s+"\n"))
+}
+
 function show_props(obj, objName) {
    var result = "";
    for (var i in obj) {
@@ -116,7 +198,10 @@
   return a;
 }
 
-function sort(a) { // Note: this doesn't work on strings.
+function sort(a) {
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort
+  return a.sort();
+  /* // Note: this doesn't work on strings.
   for(var i=0;i<a.length-1;i++) {
     var min=i;
     for(var j=i+1;j<a.length;j++)
@@ -124,6 +209,7 @@
     if(min!=i) swap(a,i,min);
   }
   return a;
+  */
 }
 
 function filter(p,xs) {
@@ -142,6 +228,14 @@
   */
   return cs.join("");
 }
+
+function hasPrefix(s,pre) { return s.substr(0,pre.length)==pre; }
+
+function commonPrefix(s1,s2) {
+    for(var i=0;i<s1.length && i<s2.length && s1[i]==s2[i];i++);
+    return s1.substr(0,i);
+}
+
 /*
 function all(p,xs) {
   for(var i=0;i<xs.length;i++)
@@ -164,4 +258,21 @@
     f(xs[i],function(y){ys[i]=y;mapc_from(f,xs,i+1,ys,cont)});
   else
     cont(ys);
+}
+
+function overlaps(as,bs) {
+    for(var i=0;i<as.length;i++)
+	if(elem(as[i],bs)) return true;
+    return false;
+}
+
+function elem(a,as) {
+    for(var i=0;i<as.length;i++)
+	if(a==as[i]) return true;
+    return false;
+}
+
+function shuffle(a) {
+    for(i=0;i<a.length;i++) swap(a,i,Math.floor(Math.random()*a.length))
+    return a;
 }
diff --git a/src/runtime/javascript/minibar/tree-btn.png b/src/runtime/javascript/minibar/tree-btn.png
new file mode 100644
Binary files /dev/null and b/src/runtime/javascript/minibar/tree-btn.png differ
diff --git a/src/server/ContentService.hs b/src/server/ContentService.hs
new file mode 100644
--- /dev/null
+++ b/src/server/ContentService.hs
@@ -0,0 +1,209 @@
+{-# LANGUAGE DeriveDataTypeable, CPP #-}
+
+import PGF (PGF)
+import qualified PGF
+import Cache
+import FastCGIUtils
+import URLEncoding
+
+import Data.Maybe
+import Network.FastCGI
+import Text.JSON
+import qualified Data.ByteString.Lazy as BS
+import qualified Codec.Binary.UTF8.String as UTF8 (encodeString, decodeString)
+
+import Control.Monad
+import Control.Exception
+import System.Environment(getArgs)
+import System.Time
+import System.Locale
+import System.FilePath
+import Database.HSQL.MySQL
+
+logFile :: FilePath
+logFile = "content-error.log"
+
+
+main :: IO ()
+main = do
+  args <- getArgs
+  case args of
+    []      -> do stderrToFile logFile
+                  cache <- newCache dbConnect
+
+#ifndef mingw32_HOST_OS
+                  runFastCGIConcurrent' forkIO 100 (cgiMain cache)
+#else
+                  runFastCGI (cgiMain cache)
+#endif
+    [fpath] -> do c <- dbConnect fpath
+                  dbInit c
+
+getPath = getVarWithDefault "SCRIPT_FILENAME" ""
+
+cgiMain :: Cache Connection -> CGI CGIResult
+cgiMain cache = handleErrors . handleCGIErrors $
+                  cgiMain' cache =<< getPath
+
+cgiMain' :: Cache Connection -> FilePath -> CGI CGIResult
+cgiMain' cache path =
+    do c <- liftIO $ readCache cache path
+       mb_command <- liftM (liftM (urlDecodeUnicode . UTF8.decodeString)) (getInput "command")
+       case mb_command of
+         Just "save"   -> doSave c =<< getId
+         Just "load"   -> doLoad c =<< getId
+         Just "search" -> doSearch c =<< getQuery
+         Just "delete" -> doDelete c =<< getIds
+         Just "update_grammar"
+                       -> do mb_pgf <- getFile
+                             name   <- getFileName
+                             descr  <- getDescription
+                             doUpdateGrammar c mb_pgf name descr
+         Just cmd      -> throwCGIError 400 "Unknown command" ["Unknown command: " ++ show cmd]
+         Nothing       -> throwCGIError 400 "No command given" ["No command given"]
+  where
+    getId :: CGI (Maybe Int)
+    getId = readInput "id"
+
+    getIds :: CGI [Int]
+    getIds = fmap (map read) (getMultiInput "id")
+
+    getQuery :: CGI String
+    getQuery = fmap (fromMaybe "") (getInput "query")
+    
+    getFile :: CGI (Maybe BS.ByteString)
+    getFile = getInputFPS "file"
+
+    getFileName :: CGI String
+    getFileName = do
+      mb_name <- getInput "name"
+      mb_file <- getInputFilename "file"
+      return (fromMaybe "" (mb_name `mplus` mb_file))
+
+    getDescription :: CGI String
+    getDescription = fmap (fromMaybe "") (getInput "description")
+
+doSave c mb_id = do
+  body <- getBody
+  r <- liftIO $ handleSql (return . Left) $ do
+         s <- query c ("call saveDocument("++toSqlValue mb_id++","++toSqlValue body++")")
+         [id] <- collectRows (\s -> getFieldValue s "id") s
+         return (Right id)
+  case r of
+    Right id -> outputJSONP (toJSObject [("id", id :: Int)])
+    Left  e  -> throwCGIError 400 "Saving failed" (lines (show e))
+
+doLoad c Nothing   = throwCGIError 400 "Loading failed" ["Missing ID"]
+doLoad c (Just id) = do
+  r <- liftIO $ handleSql (return . Left) $ do
+         s <- query c ("SELECT id,title,created,modified,content\n"++
+                       "FROM Documents\n"++
+                       "WHERE id="++toSqlValue id)
+         rows <- collectRows getDocument s
+         return (Right rows)
+  case r of
+    Right [row] -> outputJSONP row
+    Right _     -> throwCGIError 400 "Missing document" ["ID="++show id]
+    Left  e     -> throwCGIError 400 "Loading failed" (lines (show e))
+  where
+    getDocument s = do
+      id <- getFieldValue s "id"
+      title <- getFieldValue s "title"
+      created <- getFieldValue s "created" >>= pt
+      modified <- getFieldValue s "modified" >>= pt
+      content <- getFieldValue s "content"
+      return $ toJSObject [ ("id",      showJSON (id :: Int))
+                          , ("title",   showJSON (title :: String))
+                          , ("created", showJSON (created :: String))
+                          , ("modified", showJSON (modified :: String))
+                          , ("content", showJSON (content :: String))
+                          ]
+
+doSearch c q = do
+  r <- liftIO $ handleSql (return . Left) $ do
+         s <- query c ("SELECT id,title,created,modified\n"++
+                       "FROM Documents"++
+                       if null q
+                         then ""
+                         else "\nWHERE MATCH(content) AGAINST ("++toSqlValue q++" IN BOOLEAN MODE)")
+         rows <- collectRows getDocument s
+         return (Right rows)
+  case r of
+    Right rows -> outputJSONP rows
+    Left  e    -> throwCGIError 400 "Saving failed" (lines (show e))
+  where
+    getDocument s = do
+      id <- getFieldValue s "id"
+      title <- getFieldValue s "title"
+      created <- getFieldValue s "created" >>= pt
+      modified <- getFieldValue s "modified" >>= pt
+      return $ toJSObject [ ("id",      showJSON (id :: Int))
+                          , ("title",   showJSON (title :: String))
+                          , ("created", showJSON (created :: String))
+                          , ("modified", showJSON (modified :: String))
+                          ]
+                          
+pt ct = liftM (formatCalendarTime defaultTimeLocale "%d %b %Y") (toCalendarTime ct)
+
+doDelete c ids = do
+  liftIO $
+    inTransaction c $ \c ->
+      mapM_ (\id -> execute c ("DELETE FROM Documents WHERE id = "++toSqlValue id)) ids
+  outputJSONP (toJSObject ([] :: [(String,String)]))
+
+doUpdateGrammar c mb_pgf name descr = do
+  r <- liftIO $ handleSql (return . Left) $ do
+         s <- query c ("call updateGrammar(null,"++toSqlValue name++","++toSqlValue descr++")")
+         [id] <- collectRows (\s -> getFieldValue s "id") s
+         return (Right id)
+  id <- case r of
+          Right id -> return (id :: Int)
+          Left  e  -> throwCGIError 400 "Saving failed" (lines (show e))
+  path <- pathTranslated
+  case mb_pgf of
+    Just pgf -> liftIO (BS.writeFile (path </> ".." </> "grammars" </> addExtension (show id) "pgf") pgf)
+    Nothing  -> return ()
+  outputHTML "<H1>Done.</H1>"
+
+dbConnect fpath = do
+  [host,db,user,pwd] <- fmap words $ readFile fpath
+  connect host db user pwd
+
+dbInit c = 
+  handleSql (fail . show) $ do
+    inTransaction c $ \c -> do
+      execute c "DROP TABLE IF EXISTS Documents"
+      execute c ("CREATE TABLE Documents(id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,"++
+                 "                       title VARCHAR(256) NOT NULL,\n"++
+                 "                       created TIMESTAMP NOT NULL DEFAULT 0,\n"++
+                 "                       modified TIMESTAMP NOT NULL DEFAULT 0,\n"++
+                 "                       content TEXT NOT NULL,\n"++
+                 "                       FULLTEXT INDEX (content)) TYPE=MyISAM")
+      execute c "DROP TABLE IF EXISTS Grammars"
+      execute c ("CREATE TABLE Grammars(id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,"++
+                 "                      name VARCHAR(64) NOT NULL,\n"++
+                 "                      description VARCHAR(512) NOT NULL,\n"++
+                 "                      created TIMESTAMP NOT NULL DEFAULT 0,\n"++
+                 "                      modified TIMESTAMP NOT NULL DEFAULT 0)")
+      execute c "DROP PROCEDURE IF EXISTS saveDocument"
+      execute c ("CREATE PROCEDURE saveDocument(IN id INTEGER, content TEXT)\n"++
+                 "BEGIN\n"++
+                 "   IF id IS NULL THEN\n"++
+                 "     INSERT INTO Documents(title,content,created,modified) VALUES (content,content,NOW(),NOW());\n"++
+                 "     SELECT LAST_INSERT_ID() as id;\n"++
+                 "   ELSE\n"++
+                 "     UPDATE Documents d SET content = content, modified=NOW() WHERE d.id = id;\n"++
+                 "     select id;\n"++
+                 "   END IF;\n"++
+                 "END")
+      execute c "DROP PROCEDURE IF EXISTS updateGrammar"
+      execute c ("CREATE PROCEDURE updateGrammar(IN id INTEGER, name VARCHAR(64), description VARCHAR(512))\n"++
+                 "BEGIN\n"++
+                 "   IF id IS NULL THEN\n"++
+                 "     INSERT INTO Grammars(name,description,created,modified) VALUES (name,description,NOW(),NOW());\n"++
+                 "     SELECT LAST_INSERT_ID() as id;\n"++
+                 "   ELSE\n"++
+                 "     UPDATE Grammars gr SET name = name, description=description, modified=NOW() WHERE gr.id = id;\n"++
+                 "     select id;\n"++
+                 "   END IF;\n"++
+                 "END")
diff --git a/src/server/FastCGIUtils.hs b/src/server/FastCGIUtils.hs
--- a/src/server/FastCGIUtils.hs
+++ b/src/server/FastCGIUtils.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE DeriveDataTypeable, CPP #-}
-module FastCGIUtils (initFastCGI, loopFastCGI,
+module FastCGIUtils (--initFastCGI, loopFastCGI,
                      throwCGIError, handleCGIErrors,
                      stderrToFile,
                      outputJSONP,
@@ -13,7 +13,6 @@
 import Data.Dynamic
 import Data.IORef
 import Prelude hiding (catch)
-import System.Directory
 import System.Environment
 import System.Exit
 import System.IO
@@ -21,15 +20,15 @@
 #ifndef mingw32_HOST_OS
 import System.Posix
 #endif
-import System.Time
 
-import Network.FastCGI
+--import Network.FastCGI
+import Network.CGI
 
 import Text.JSON
-import qualified Codec.Binary.UTF8.String as UTF8 (encodeString, decodeString)
+import qualified Codec.Binary.UTF8.String as UTF8 (encodeString)
 import qualified Data.ByteString.Lazy as BS
 
-
+{- -- There are used in MorphoService.hs, but not in PGFService.hs
 initFastCGI :: IO ()
 initFastCGI = installSignalHandlers
 
@@ -40,7 +39,7 @@
            restartIfModified) 
          `catchAborted` logError "Request aborted"
        loopFastCGI f
-
+-}
 
 -- Signal handling for FastCGI programs.
 
@@ -166,7 +165,7 @@
        let str = case mc of
                    Nothing -> encode x
                    Just c  -> c ++ "(" ++ encode x ++ ")"
-       setHeader "Content-Type" "text/json; charset=utf-8"
+       setHeader "Content-Type" "text/javascript; charset=utf-8"
        outputStrict $ UTF8.encodeString str
 
 outputPNG :: BS.ByteString -> CGI CGIResult
@@ -177,7 +176,7 @@
 outputHTML :: String -> CGI CGIResult
 outputHTML x = do
        setHeader "Content-Type" "text/html"
-       outputStrict x
+       outputStrict $ UTF8.encodeString x
 
 outputStrict :: String -> CGI CGIResult
 outputStrict x | x == x = output x
diff --git a/src/server/PGFService.hs b/src/server/PGFService.hs
--- a/src/server/PGFService.hs
+++ b/src/server/PGFService.hs
@@ -1,4 +1,7 @@
 {-# LANGUAGE DeriveDataTypeable, CPP #-}
+module PGFService(cgiMain,cgiMain',getPath,
+                  logFile,stderrToFile,
+                  newPGFCache) where
 
 import PGF (PGF)
 import qualified PGF
@@ -6,9 +9,10 @@
 import FastCGIUtils
 import URLEncoding
 
-import Network.FastCGI
+import Network.CGI
 import Text.JSON
-import qualified Codec.Binary.UTF8.String as UTF8 (encodeString, decodeString)
+import Text.PrettyPrint (render, text, (<+>))
+import qualified Codec.Binary.UTF8.String as UTF8 (decodeString)
 import qualified Data.ByteString.Lazy as BS
 
 import Control.Concurrent
@@ -16,11 +20,10 @@
 import Control.Monad
 import Data.Char
 import Data.Function (on)
-import Data.List (sortBy)
+import Data.List (sortBy,intersperse,mapAccumL,nub)
 import qualified Data.Map as Map
 import Data.Maybe
-import System.Directory
-import System.FilePath
+import System.Random
 import System.Process
 import System.Exit
 import System.IO
@@ -28,48 +31,52 @@
 logFile :: FilePath
 logFile = "pgf-error.log"
 
---canParse = PGF.canParse -- old
-canParse _ _ = True -- parser is not optional in new PGF format
+newPGFCache = newCache PGF.readPGF
 
-main :: IO ()
-main = do stderrToFile logFile
-          cache <- newCache PGF.readPGF
-#ifndef mingw32_HOST_OS
-          runFastCGIConcurrent' forkIO 100 (handleErrors (handleCGIErrors (cgiMain cache)))
-#else
-          runFastCGI (handleErrors (handleCGIErrors (cgiMain cache)))
-#endif
+getPath = getVarWithDefault "SCRIPT_FILENAME" ""
 
 cgiMain :: Cache PGF -> CGI CGIResult
-cgiMain cache =
-    do path <- getVarWithDefault "SCRIPT_FILENAME" ""
-       pgf <- liftIO $ readCache cache path
+cgiMain cache = handleErrors . handleCGIErrors $
+                  cgiMain' cache =<< getPath
+
+cgiMain' :: Cache PGF -> FilePath -> CGI CGIResult
+cgiMain' cache path =
+    do pgf <- liftIO $ readCache cache path
        command <- liftM (maybe "grammar" (urlDecodeUnicode . UTF8.decodeString)) (getInput "command")
        pgfMain pgf command
 
 pgfMain :: PGF -> String -> CGI CGIResult
 pgfMain pgf command = 
        case command of
-         "parse"          -> return (doParse pgf) `ap` getText `ap` getCat `ap` getFrom >>= outputJSONP
-         "complete"       -> return (doComplete pgf) `ap` getText `ap` getCat `ap` getFrom `ap` getLimit >>= outputJSONP
-         "linearize"      -> return (doLinearize pgf) `ap` getTree `ap` getTo >>= outputJSONP
-         "random"         -> getCat >>= \c -> getLimit >>= liftIO . doRandom pgf c >>= outputJSONP
-         "translate"      -> return (doTranslate pgf) `ap` getText `ap` getCat `ap` getFrom `ap` getTo >>= outputJSONP
-         "translategroup" -> return (doTranslateGroup pgf) `ap` getText `ap` getCat `ap` getFrom `ap` getTo >>= outputJSONP
-         "grammar"        -> return (doGrammar pgf) `ap` requestAcceptLanguage >>= outputJSONP
-         "abstrtree"      -> getTree >>= liftIO . doGraphvizAbstrTree pgf >>= outputPNG
+         "parse"          -> outputJSONP =<< doParse pgf `fmap` getText `ap` getCat `ap` getFrom 
+         "complete"       -> outputJSONP =<< doComplete pgf `fmap` getText `ap` getCat `ap` getFrom `ap` getLimit
+         "linearize"      -> outputJSONP =<< doLinearize pgf `fmap` getTree `ap` getTo
+         "linearizeAll"   -> outputJSONP =<< doLinearizes pgf `fmap` getTree `ap` getTo
+         "random"         -> getCat >>= \c -> getDepth >>= \dp -> getLimit >>= \l -> getTo >>= \to -> liftIO (doRandom pgf c dp l to) >>= outputJSONP
+         "generate"       -> outputJSONP =<< doGenerate pgf `fmap` getCat `ap` getDepth `ap` getLimit `ap` getTo
+         "translate"      -> outputJSONP =<< doTranslate pgf `fmap` getText `ap` getCat `ap` getFrom `ap` getTo
+         "translategroup" -> outputJSONP =<< doTranslateGroup pgf `fmap` getText `ap` getCat `ap` getFrom `ap` getTo
+         "grammar"        -> outputJSONP =<< doGrammar pgf `fmap` requestAcceptLanguage
+         "abstrtree"      -> outputPNG =<< liftIO . doGraphvizAbstrTree pgf =<< getTree
          "parsetree"      -> getTree >>= \t -> getFrom >>= \(Just l) -> liftIO (doGraphvizParseTree pgf l t) >>= outputPNG
          "alignment"      -> getTree >>= liftIO . doGraphvizAlignment pgf >>= outputPNG
-         "browse"         -> return (doBrowse pgf) `ap` getId `ap` getCSSClass `ap` getHRef  >>= outputHTML
+         "browse"         -> outputHTML =<< doBrowse pgf `fmap` getId `ap` getCSSClass `ap` getHRef
          _                -> throwCGIError 400 "Unknown command" ["Unknown command: " ++ show command]
   where
     getText :: CGI String
     getText = liftM (maybe "" (urlDecodeUnicode . UTF8.decodeString)) $ getInput "input"
 
     getTree :: CGI PGF.Tree
-    getTree = do mt <- getInput "tree"
-                 t <- maybe (throwCGIError 400 "No tree given" ["No tree given"]) return mt
-                 maybe (throwCGIError 400 "Bad tree" ["Bad tree: " ++ t]) return (PGF.readExpr t)
+    getTree = do ms <- getInput "tree"
+                 s <- maybe (throwCGIError 400 "No tree given" ["No tree given"]) return ms
+                 t <- maybe (throwCGIError 400 "Bad tree" ["tree: " ++ s]) return (PGF.readExpr s)
+                 t <- either (\err -> throwCGIError 400 "Type incorrect tree" 
+                                                        ["tree: " ++ PGF.showExpr [] t
+                                                        ,render (text "error:" <+> PGF.ppTcError err)
+                                                        ])
+                             (return . fst)
+                             (PGF.inferExpr pgf t)
+                 return t
 
     getCat :: CGI (Maybe PGF.Type)
     getCat = 
@@ -102,6 +109,9 @@
     getLimit :: CGI (Maybe Int)
     getLimit = readInput "limit"
 
+    getDepth :: CGI (Maybe Int)
+    getDepth = readInput "depth"
+
     getLang :: String -> CGI (Maybe PGF.Language)
     getLang i = 
        do mlang <- getInput i
@@ -116,15 +126,24 @@
 doTranslate :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue
 doTranslate pgf input mcat mfrom mto =
   showJSON
-     [toJSObject [("from",          showJSON (PGF.showLanguage from)),
-                  ("tree",          showJSON tree),
-                  ("linearizations",showJSON 
-                     [toJSObject [("to", PGF.showLanguage to),("text",output)]
-                       | (to,output) <- linearizeAndBind pgf mto tree]
-                  )
-                 ]
-           | (from,trees) <- parse' pgf input mcat mfrom,
-             tree <- trees]
+     [toJSObject (("from", showJSON from) :
+                  ("brackets", showJSON bs) :
+                  jsonParseOutput po)
+           | (from,po,bs) <- parse' pgf input mcat mfrom]
+  where
+    jsonParseOutput (PGF.ParseOk trees)  = [("translations",showJSON 
+                                               [toJSObject [("tree",          showJSON tree),
+                                                            ("linearizations",showJSON 
+                                                               [toJSObject [("to", showJSON to),
+                                                                            ("text",showJSON output)]
+                                                                  | (to,output) <- linearizeAndBind pgf mto tree]
+                                                            )]
+                                                   | tree <- trees])]
+    jsonParseOutput (PGF.ParseIncomplete)= []
+    jsonParseOutput (PGF.ParseFailed _)  = []
+    jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid)
+                                                                               ,("msg", showJSON (show (PGF.ppTcError err)))
+                                                                               ] | (fid,err) <- errs])]
 
 -- used in phrasebook
 doTranslateGroup :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue
@@ -133,20 +152,26 @@
      [toJSObject [("from",          showJSON (langOnly (PGF.showLanguage from))),
                   ("to",            showJSON (langOnly (PGF.showLanguage to))),
                   ("linearizations",showJSON 
-                      [toJSObject (("text", doText (doBind alt)) : disamb lg from t) | 
-                                                (t,alt) <- output, let lg = length output])
+                      [toJSObject (("text", doText (doBind alt)) : disamb lg from ts) | 
+                                             (ts,alt) <- output, let lg = length output])
                  ]
         | 
-          (from,trees) <- parse' pgf input mcat mfrom,
-          (to,output)  <- groupResults [(t, linearize' pgf mto t) | t <- trees] 
+          (from,po,bs) <- parse' pgf input mcat mfrom,
+          (to,output)  <- groupResults [(t, linearize' pgf mto t) | t <- case po of {PGF.ParseOk ts -> ts; _ -> []}]
           ]
   where
    groupResults = Map.toList . foldr more Map.empty . start . collect
      where
        collect tls = [(t,(l,s)) | (t,ls) <- tls, (l,s) <- ls, notDisamb l]
-       start ls = [(l,[(t,s)]) | (t,(l,s)) <- ls]
+       start ls = [(l,[([t],s)]) | (t,(l,s)) <- ls]
        more (l,s) = 
-         Map.insertWith (\ [(t,x)] xs -> if elem x (map snd xs) then xs else ((t,x) : xs)) l s
+         Map.insertWith (\ [([t],x)] xs -> insertAlt t x xs) l s
+
+   insertAlt t x xs = case xs of
+     (ts,y):xs2 -> if x==y then (t:ts,y):xs2        -- if string is there add only tree
+                   else (ts,y) : insertAlt t x xs2
+     _ -> [([t],x)]
+
    doBind = unwords . bind . words
    doText s = case s of
      c:cs | elem (last s) ".?!" -> toUpper c : init (init cs) ++ [last s]
@@ -158,44 +183,89 @@
          _ -> ws
    langOnly = reverse . take 3 . reverse
 
-   disamb lg from t = 
+   disamb lg from ts = 
      if lg < 2 
        then [] 
-       else [("tree", "-- " ++ doText (doBind (disambLang from t)))]
+       else [("tree", "-- " ++ groupDisambs [doText (doBind (disambLang from t)) | t <- ts])]
 
-   disambLang f t = let disf = PGF.mkCId ("Disamb" ++ PGF.showLanguage f) in
-     if elem disf (PGF.languages pgf) 
-       then PGF.linearize pgf disf t 
-       else PGF.showExpr [] t
+   groupDisambs = unwords . intersperse "/"
 
+   disambLang f t = 
+     let 
+       disfl lang = PGF.mkCId ("Disamb" ++ lang) 
+       disf       = disfl (PGF.showLanguage f) 
+       disfEng    = disfl (reverse (drop 3 (reverse (PGF.showLanguage f))) ++ "Eng") 
+     in
+       if elem disf (PGF.languages pgf)         -- if Disamb f exists use it
+         then PGF.linearize pgf disf t          
+       else if elem disfEng (PGF.languages pgf) -- else try DisambEng
+         then PGF.linearize pgf disfEng t 
+       else "AST " ++ PGF.showExpr [] t                   -- else show abstract tree
+
    notDisamb = (/="Disamb") . take 6 . PGF.showLanguage
 
 doParse :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> JSValue
 doParse pgf input mcat mfrom = showJSON $ map toJSObject
-     [[("from", PGF.showLanguage from),("tree",PGF.showExpr [] tree)]
-         | (from,trees) <- parse' pgf input mcat mfrom,
-           tree <- trees ]
+     [("from", showJSON from) :
+      ("brackets", showJSON bs) :
+      jsonParseOutput po
+         | (from,po,bs) <- parse' pgf input mcat mfrom]
+  where
+    jsonParseOutput (PGF.ParseOk trees)  = [("trees",showJSON trees)]
+    jsonParseOutput (PGF.ParseFailed _)  = []
+    jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid)
+                                                                               ,("msg", showJSON (show (PGF.ppTcError err)))
+                                                                               ] | (fid,err) <- errs])]
 
 doComplete :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe Int -> JSValue
-doComplete pgf input mcat mfrom mlimit = showJSON $ map toJSObject $ limit
-     [[("from", PGF.showLanguage from),("text",text)]
-          | (from,compls) <- complete' pgf input mcat mfrom,
-            text <- compls]
+doComplete pgf input mcat mfrom mlimit = showJSON $ map toJSObject
+  [[("from",        showJSON from),
+    ("brackets",    showJSON bs),
+    ("completions", showJSON cs),
+    ("text",        showJSON s)]
+          | from <- froms, let (bs,s,cs) = complete' pgf from cat mlimit input]
   where
-    limit xs = maybe xs (\n -> take n xs) mlimit
+    froms = maybe (PGF.languages pgf) (:[]) mfrom
+    cat = fromMaybe (PGF.startCat pgf) mcat
 
 doLinearize :: PGF -> PGF.Tree -> Maybe PGF.Language -> JSValue
-doLinearize pgf tree mto = showJSON $ map toJSObject
-     [[("to", PGF.showLanguage to),("text",text)] | (to,text) <- linearize' pgf mto tree]
+doLinearize pgf tree mto = showJSON $
+    [toJSObject [("to", PGF.showLanguage to),("text",text)]
+      | (to,text) <- linearize' pgf mto tree]
 
-doRandom :: PGF -> Maybe PGF.Type -> Maybe Int -> IO JSValue
-doRandom pgf mcat mlimit = 
-    do trees <- random' pgf mcat
-       return $ showJSON $ map toJSObject [[("tree", PGF.showExpr [] tree)] | tree <- limit trees]
-  where limit = take (fromMaybe 1 mlimit)
+doLinearizes :: PGF -> PGF.Tree -> Maybe PGF.Language -> JSValue
+doLinearizes pgf tree mto = showJSON $ 
+    [toJSObject [("to", showJSON $ PGF.showLanguage to),
+                 ("texts",showJSON texts)]
+      | (to,texts) <- linearizes' pgf mto tree]
 
+doRandom :: PGF -> Maybe PGF.Type -> Maybe Int -> Maybe Int -> Maybe PGF.Language -> IO JSValue
+doRandom pgf mcat mdepth mlimit mto =
+  do g <- newStdGen
+     let trees = PGF.generateRandomDepth g pgf cat (Just depth)
+     return $ showJSON $
+          [toJSObject [("tree", showJSON (PGF.showExpr [] tree)),
+                       ("linearizations", showJSON [toJSObject [("to", PGF.showLanguage to),("text",text)] 
+                                                          | (to,text) <- linearize' pgf mto tree])]
+                 | tree <- limit trees]
+  where cat = fromMaybe (PGF.startCat pgf) mcat
+        limit = take (fromMaybe 1 mlimit)
+        depth = fromMaybe 4 mdepth
+
+doGenerate :: PGF -> Maybe PGF.Type -> Maybe Int -> Maybe Int -> Maybe PGF.Language -> JSValue
+doGenerate pgf mcat mdepth mlimit mto = 
+  let trees = PGF.generateAllDepth pgf cat (Just depth)
+  in showJSON $
+          [toJSObject [("tree", showJSON (PGF.showExpr [] tree)),
+                       ("linearizations", showJSON [toJSObject [("to", PGF.showLanguage to),("text",text)] 
+                                                          | (to,text) <- linearize' pgf mto tree])]
+                 | tree <- limit trees]
+  where cat = fromMaybe (PGF.startCat pgf) mcat
+        limit = take (fromMaybe 1 mlimit)
+        depth = fromMaybe 4 mdepth
+
 doGrammar :: PGF -> Maybe (Accept Language) -> JSValue
-doGrammar pgf macc = showJSON $ toJSObject 
+doGrammar pgf macc = showJSON $ toJSObject
              [("name", showJSON (PGF.abstractName pgf)),
               ("userLanguage", showJSON (selectLanguage pgf macc)),
               ("categories", showJSON categories),
@@ -203,8 +273,7 @@
               ("languages", showJSON languages)]
   where languages = map toJSObject
                     [[("name", showJSON l), 
-                      ("languageCode", showJSON $ fromMaybe "" (PGF.languageCode pgf l)),
-                      ("canParse",     showJSON $ canParse pgf l)]
+                      ("languageCode", showJSON $ fromMaybe "" (PGF.languageCode pgf l))]
                      | l <- PGF.languages pgf]
         categories = [PGF.showCId cat | cat <- PGF.categories pgf]
         functions  = [PGF.showCId fun | fun <- PGF.functions pgf]
@@ -216,7 +285,7 @@
   pipeIt2graphviz $ PGF.graphvizParseTree pgf lang tree
 
 doGraphvizAlignment pgf tree = do
-  pipeIt2graphviz $ PGF.graphvizAlignment pgf tree
+  pipeIt2graphviz $ PGF.graphvizAlignment pgf (PGF.languages pgf) tree
 
 pipeIt2graphviz :: String -> IO BS.ByteString
 pipeIt2graphviz code = do
@@ -253,6 +322,7 @@
 doBrowse pgf id cssClass href =
   case PGF.browse pgf id of
     Just (def,ps,cs) -> "<PRE>"++annotate def++"</PRE>\n"++
+                        syntax++
                         (if not (null ps)
                            then "<BR/>"++
                                 "<H3>Producers</H3>"++
@@ -265,19 +335,47 @@
                            else "")
     Nothing          -> ""
   where
+    syntax = 
+      case PGF.functionType pgf id of
+        Just ty -> let (hypos,_,_) = PGF.unType ty
+                       e          = PGF.mkApp id (snd $ mapAccumL mkArg (1,1) hypos)
+                       rows = ["<TR class=\"my-SyntaxRow\">"++
+                               "<TD class=\"my-SyntaxLang\">"++PGF.showCId lang++"</TD>"++
+                               "<TD class=\"my-SyntaxLin\">"++PGF.linearize pgf lang e++"</TD>"++
+                               "</TR>"
+                                            | lang <- PGF.languages pgf]
+                   in "<BR/>"++
+                      "<H3>Syntax</H3>"++
+                      "<TABLE class=\"my-SyntaxTable\">\n"++
+                      "<TR class=\"my-SyntaxRow\">"++
+                      "<TD class=\"my-SyntaxLang\">"++PGF.showCId (PGF.abstractName pgf)++"</TD>"++
+                      "<TD class=\"my-SyntaxLin\">"++PGF.showExpr [] e++"</TD>"++
+                      "</TR>\n"++
+                      unlines rows++"\n</TABLE>"
+        Nothing -> ""
+
+    mkArg (i,j) (_,_,ty) = ((i+1,j+length hypos),e)
+      where
+        e = foldr (\(j,(bt,_,_)) -> PGF.mkAbs bt (PGF.mkCId ('X':show j))) (PGF.mkMeta i) (zip [j..] hypos)
+        (hypos,_,_) = PGF.unType ty
+
     identifiers = PGF.functions pgf ++ PGF.categories pgf
 
-    annotate []   = []
+    annotate []          = []
     annotate (c:cs)
-      | isSpace c = c : annotate cs
-      | otherwise = let (id,cs') = break isSpace (c:cs)
-                    in (if PGF.mkCId id `elem` identifiers
-                          then mkLink id
-                          else if id == "fun" || id == "data" || id == "cat" || id == "def"
-                                 then "<B>"++id++"</B>"
-                                 else id) ++
-                       annotate cs'
+      | isIdentInitial c = let (id,cs') = break (not . isIdentChar) (c:cs)
+                           in (if PGF.mkCId id `elem` identifiers
+                                 then mkLink id
+                                 else if id == "fun" || id == "data" || id == "cat" || id == "def"
+                                        then "<B>"++id++"</B>"
+                                        else id) ++
+                              annotate cs'
+      | otherwise        = c : annotate cs
+
     annotateCIds ids = unwords (map (mkLink . PGF.showCId) ids)
+    
+    isIdentInitial c = isAlpha c || c == '_'
+    isIdentChar    c = isAlphaNum c || c == '_' || c == '\''
 
     hrefAttr id =
       case href of
@@ -303,30 +401,65 @@
     readJSON x = readJSON x >>= maybe (fail "Bad expression.") return . PGF.readExpr
     showJSON = showJSON . PGF.showExpr []
 
+instance JSON PGF.BracketedString where
+    readJSON x = return (PGF.Leaf "")
+    showJSON (PGF.Bracket cat fid index _ bs)
+                          = showJSON $ toJSObject [("cat",      showJSON cat)
+                                                  ,("fid",      showJSON fid)
+                                                  ,("index",    showJSON index)
+                                                  ,("children", showJSON bs)
+                                                  ]
+    showJSON (PGF.Leaf s) = showJSON $ toJSObject [("token", s)]
+
 -- * PGF utilities
 
 cat :: PGF -> Maybe PGF.Type -> PGF.Type
 cat pgf mcat = fromMaybe (PGF.startCat pgf) mcat
 
-parse' :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> [(PGF.Language,[PGF.Tree])]
+parse' :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> [(PGF.Language,PGF.ParseOutput,PGF.BracketedString)]
 parse' pgf input mcat mfrom = 
-   [(from,ts) | from <- froms, canParse pgf from, let ts = PGF.parse pgf from cat input, not (null ts)]
+   [(from,po,bs) | from <- froms, (po,bs) <- [PGF.parse_ pgf from cat Nothing input]]
   where froms = maybe (PGF.languages pgf) (:[]) mfrom
         cat = fromMaybe (PGF.startCat pgf) mcat
 
-complete' :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> [(PGF.Language,[String])]
-complete' pgf input mcat mfrom = 
-   [(from,order ss) | from <- froms, canParse pgf from, let ss = PGF.complete pgf from cat input, not (null ss)]
-  where froms = maybe (PGF.languages pgf) (:[]) mfrom
-        cat = fromMaybe (PGF.startCat pgf) mcat
-        order = sortBy (compare `on` map toLower)
+complete' :: PGF -> PGF.Language -> PGF.Type -> Maybe Int -> String
+         -> (PGF.BracketedString, String, [String])
+complete' pgf from typ mlimit input =
+  let (ws,prefix) = tokensAndPrefix input
+      ps0 = PGF.initState pgf from typ
+      (ps,ws') = loop ps0 ws
+      bs       = snd (PGF.getParseOutput ps typ Nothing)
+  in if not (null ws')
+       then (bs, unwords (if null prefix then ws' else ws'++[prefix]), [])
+       else (bs, prefix, maybe id take mlimit $ order $ Map.keys (PGF.getCompletions ps prefix))
+  where
+    order = sortBy (compare `on` map toLower)
 
+    tokensAndPrefix :: String -> ([String],String)
+    tokensAndPrefix s | not (null s) && isSpace (last s) = (ws, "")
+                      | null ws = ([],"")
+                      | otherwise = (init ws, last ws)
+        where ws = words s
+
+    loop ps []     = (ps,[])
+    loop ps (w:ws) = case PGF.nextState ps (PGF.simpleParseInput w) of
+                       Left  es -> (ps,w:ws)
+                       Right ps -> loop ps ws
+
 linearize' :: PGF -> Maybe PGF.Language -> PGF.Tree -> [(PGF.Language,String)]
 linearize' pgf mto tree = 
     case mto of
       Nothing -> PGF.linearizeAllLang pgf tree
       Just to -> [(to,PGF.linearize pgf to tree)]
 
+-- all variants and their forms
+linearizes' :: PGF -> Maybe PGF.Language -> PGF.Tree -> [(PGF.Language,[String])]
+linearizes' pgf mto tree = case mto of
+  Nothing -> [(to,lins to tree) | to <- PGF.languages pgf]
+  Just to -> [(to,lins to tree)]
+ where
+   lins to = nub . concatMap (map snd) . PGF.tabularLinearizes pgf to
+
 linearizeAndBind pgf mto t = [(la, binds s) | (la,s) <- linearize' pgf mto t]
   where
     binds = unwords . bs . words
@@ -335,9 +468,6 @@
       u:ws2        -> u : bs ws2
       _            -> []
 
-random' :: PGF -> Maybe PGF.Type -> IO [PGF.Tree]
-random' pgf mcat = PGF.generateRandom pgf (fromMaybe (PGF.startCat pgf) mcat)
-
 selectLanguage :: PGF -> Maybe (Accept Language) -> PGF.Language
 selectLanguage pgf macc = case acceptable of
                             []  -> case PGF.languages pgf of
@@ -352,5 +482,5 @@
 
 -- * General utilities
 
-cleanFilePath :: FilePath -> FilePath
-cleanFilePath = takeFileName
+--cleanFilePath :: FilePath -> FilePath
+--cleanFilePath = takeFileName
diff --git a/src/server/RunHTTP.hs b/src/server/RunHTTP.hs
new file mode 100644
--- /dev/null
+++ b/src/server/RunHTTP.hs
@@ -0,0 +1,45 @@
+module RunHTTP(runHTTP,Options(..)) where
+import Network.URI(uriPath,uriQuery)
+import Network.CGI(ContentType(..))
+import Network.CGI.Protocol(CGIResult(..),CGIRequest(..),Input(..),
+                            Headers,HeaderName(..))
+import Network.CGI.Monad(runCGIT)
+import Network.Shed.Httpd(initServer,Request(..),Response(..),queryToArguments)
+import qualified Data.ByteString.Lazy.Char8 as BS(pack,unpack)
+import qualified Data.Map as M(fromList)
+
+data Options = Options { documentRoot :: String, port :: Int } deriving Show
+
+runHTTP (Options root port) = initServer port . cgiHandler root
+
+cgiHandler root h = fmap httpResp . runCGIT h . cgiReq root
+
+httpResp :: (Headers,CGIResult) -> Response
+httpResp (hdrs,r) = Response code (map name hdrs) (body r)
+  where
+    code = maybe 200 (read.head.words) (lookup (HeaderName "Status") hdrs)
+    body CGINothing = ""
+    body (CGIOutput s) = BS.unpack s
+
+    name (HeaderName n,v) = (n,v)
+
+cgiReq :: String -> Request -> CGIRequest
+cgiReq root (Request method uri hdrs body) = CGIRequest vars inputs body'
+  where
+    vars = M.fromList [("REQUEST_METHOD",method),
+                       ("REQUEST_URI",show uri),
+                       ("SCRIPT_FILENAME",root++uriPath uri),
+                       ("QUERY_STRING",qs),
+                       ("HTTP_ACCEPT_LANGUAGE",al)]
+    qs = case uriQuery uri of
+           '?':'&':s -> s -- httpd-shed bug workaround
+           '?':s -> s
+           s -> s
+    al = maybe "" id $ lookup "Accept-Language" hdrs
+    inputs = map input $ queryToArguments qs  -- assumes method=="GET"
+    body' = BS.pack body
+
+    input (name,val) = (name,Input (BS.pack (map decode val)) Nothing plaintext)
+    plaintext = ContentType "text" "plain" []
+    decode '+' = ' ' -- httpd-shed bug workaround
+    decode c   = c
diff --git a/src/server/ServeStaticFile.hs b/src/server/ServeStaticFile.hs
new file mode 100644
--- /dev/null
+++ b/src/server/ServeStaticFile.hs
@@ -0,0 +1,26 @@
+module ServeStaticFile where
+import System.FilePath
+import System.Directory(doesDirectoryExist)
+import Network.CGI(setHeader,outputFPS,liftIO)
+import qualified Data.ByteString.Lazy.Char8 as BS
+
+serveStaticFile path =
+  do b <- liftIO $ doesDirectoryExist path
+     let path' = if b then path </> "index.html" else path
+     serveStaticFile' path'
+
+serveStaticFile' path =
+  do setHeader "Content-Type" (contentTypeFromExt (takeExtension path))
+     outputFPS =<< liftIO (BS.readFile path)
+
+contentTypeFromExt ext =
+  case ext of
+    ".html" -> "text/html"
+    ".htm" -> "text/html"
+    ".xml" -> "text/xml"
+    ".txt" -> "text/plain"
+    ".css" -> "text/css"
+    ".js" -> "text/javascript"
+    ".png" -> "image/png"
+    ".jpg" -> "image/jpg"
+    _ -> "application/octet-stream"
diff --git a/src/server/Setup.hs b/src/server/Setup.hs
--- a/src/server/Setup.hs
+++ b/src/server/Setup.hs
@@ -1,6 +1,91 @@
-module Main where
+{-# OPTIONS_GHC -fwarn-unused-imports #-}
 
+import Control.Monad(when)
+import System.Directory(createDirectoryIfMissing,doesFileExist,
+                        getDirectoryContents,copyFile,removeFile)
+import System.FilePath((</>))
+import System.Cmd(system)
+import System.Exit(ExitCode(..))
+
 import Distribution.Simple
+import Distribution.Simple.Setup
+import Distribution.Simple.LocalBuildInfo(datadir,buildDir,absoluteInstallDirs)
 
 main :: IO ()
-main = defaultMainWithHooks simpleUserHooks
+main = defaultMainWithHooks simpleUserHooks{ postInst = instWWW
+                                           , postCopy = copyWWW
+                                           }
+--------------------------------------------------------------------------------
+-- To test the GF web service and minibar, use "cabal install" (or
+-- "runhaskell Setup.hs install") to install the program pgf-http, the
+-- example grammars listed below, and the minibar. Then start the server with
+-- the command "pgf-http" and open http://localhost:41296/minibar/minibar.html
+-- in your web browser (Firefox, Safari, Opera or Chrome).
+
+example_grammars =
+ -- (pgf, tmp, src)
+   [("Foods.pgf","foods",
+     ".."</>".."</>"contrib"</>"summerschool"</>"foods"</>"Foods???.gf"),
+    ("Letter.pgf","letter",
+     ".."</>".."</>"examples"</>"letter"</>"Letter???.gf")]
+
+minibar_src = ".."</>"runtime"</>"javascript"</>"minibar"
+
+--------------------------------------------------------------------------------
+instWWW args flags pki lbi = setupWWW args dest pki lbi
+  where
+    dest = NoCopyDest
+
+copyWWW args flags pki lbi = setupWWW args dest pki lbi
+  where
+    dest = case copyDest flags of
+             NoFlag -> NoCopyDest
+             Flag d -> d
+
+setupWWW args dest pkg lbi =
+    do mapM_ (createDirectoryIfMissing True) [grammars_dir,minibar_dir]
+       mapM_ build_pgf example_grammars
+       copy_minibar
+       create_root_index
+  where
+    grammars_dir = www_dir </> "grammars"
+    minibar_dir = www_dir </> "minibar"
+    www_dir = datadir (absoluteInstallDirs pkg lbi dest) </> "www"
+    gfo_dir = buildDir lbi </> "gfo"
+
+    build_pgf (pgf,tmp,src) =
+      do createDirectoryIfMissing True tmp_dir
+         execute cmd
+         copyFile pgf (grammars_dir</>pgf)
+         removeFile pgf
+      where
+        tmp_dir = gfo_dir</>tmp
+        cmd = "gf -make -s -optimize-pgf --gfo-dir="++tmp_dir++
+           -- " --output-dir="++grammars_dir++  -- has no effect?!
+              " "++src
+
+    copy_minibar =
+      do files <- getDirectoryContents minibar_src
+         mapM_ copy files
+      where
+        copy file =
+            do isFile <- doesFileExist src 
+               when isFile $ copyFile src (minibar_dir</>file)
+          where
+            src = minibar_src</>file
+
+    create_root_index = writeFile (www_dir</>"index.html") index_html
+
+    index_html = "<h1>PGF service</h1>\n<h2>Available demos</h2>\n"
+                 ++"<ul><li><a href=\"minibar/minibar.html\">Minibar</a></ul>"
+                 ++"Additional grammars can be installed in"
+                 ++"<blockquote><code>"++grammars_dir++"</code></blockquote>"
+                 ++"<a href=\"http://www.grammaticalframework.org/\">"
+                 ++"Grammatical Framework</a>"
+execute command =
+  do putStrLn command
+     e <- system command
+     case e of
+       ExitSuccess -> return ()
+       _ -> fail "Command failed"
+     return ()
diff --git a/src/server/gf-server.cabal b/src/server/gf-server.cabal
--- a/src/server/gf-server.cabal
+++ b/src/server/gf-server.cabal
@@ -1,12 +1,21 @@
 name: gf-server
 version: 1.0
 cabal-version: >= 1.2
-build-type: Simple
+build-type: Custom
 license: GPL
-license-file: LICENSE
+license-file: ../../LICENSE
 synopsis: FastCGI Server for Grammatical Framework
 
-executable pgf-server
+flag fastcgi
+  Description: Build the fastcgi and content services (requires fastcgi and hsql-mysql packages)
+  Default:     False
+
+executable pgf-http
+  main-is: pgf-http.hs
+  other-modules: PGFService FastCGIUtils Cache URLEncoding
+                 RunHTTP ServeStaticFile
+  ghc-options: -threaded
+
   build-depends: base >=4.2 && <5,
                  old-time,
                  directory,
@@ -15,17 +24,54 @@
                  process,
                  gf >= 3.1,
                  cgi >= 3001.1.8.0,
-                 fastcgi >= 3001.0.2.2,
+                 httpd-shed,
+                 network,
                  json >= 0.3.3,
                  utf8-string >= 0.3.1.1,
-                 bytestring
-  if !os(windows)
+                 bytestring,
+                 pretty,
+                 random
+  if os(windows)
+    ghc-options: -optl-mwindows
+  else
     build-depends: unix
-  main-is: PGFService.hs
-  other-modules:
-    FastCGIUtils
-    Cache
-    URLEncoding
+
+executable pgf-service
+  main-is: pgf-fcgi.hs
+  other-modules: PGFService FastCGIUtils Cache URLEncoding
   ghc-options: -threaded
+
+  if flag(fastcgi)
+    build-depends: fastcgi >= 3001.0.2.2
+    buildable: True
+  else
+    buildable: False
+
+  build-depends: base >=4.2 && <5,
+                 old-time,
+                 directory,
+                 filepath,
+                 containers,
+                 process,
+                 gf >= 3.1,
+                 cgi >= 3001.1.8.0,
+                 network,
+                 json >= 0.3.3,
+                 utf8-string >= 0.3.1.1,
+                 bytestring,
+                 pretty,
+                 random
   if os(windows)
     ghc-options: -optl-mwindows
+  else
+    build-depends: unix
+
+executable content-service
+  if flag(fastcgi)
+    build-depends: base >=4.2 && <5,
+                   fastcgi >= 3001.0.2.2, hsql-mysql, hsql, old-locale
+    buildable: True
+  else
+    buildable: False
+
+  main-is: ContentService.hs
diff --git a/src/server/gwt/.classpath b/src/server/gwt/.classpath
deleted file mode 100644
--- a/src/server/gwt/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="/Users/bringert/src/gwt-mac-1.5.3/gwt-user.jar"/>
-	<classpathentry kind="lib" path="lib/gwt-dnd-2.5.6.jar"/>
-	<classpathentry kind="output" path="src"/>
-</classpath>
diff --git a/src/server/gwt/.project b/src/server/gwt/.project
deleted file mode 100644
--- a/src/server/gwt/.project
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<projectDescription>
-   <name>GF-GWT</name>
-   <comment>GF-GWT project</comment>
-   <projects/>
-   <buildSpec>
-       <buildCommand>
-           <name>org.eclipse.jdt.core.javabuilder</name>
-           <arguments/>
-       </buildCommand>
-   </buildSpec>
-   <natures>
-       <nature>org.eclipse.jdt.core.javanature</nature>
-   </natures>
-</projectDescription>
diff --git a/src/server/gwt/Editor-compile b/src/server/gwt/Editor-compile
deleted file mode 100644
--- a/src/server/gwt/Editor-compile
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-GWT_DIR="/home/angelov/gwt-linux-1.5.3"
-GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-linux.jar"
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then 
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www/editor" "$@" se.chalmers.cs.gf.gwt.EditorApp;
diff --git a/src/server/gwt/Fridge-compile b/src/server/gwt/Fridge-compile
deleted file mode 100644
--- a/src/server/gwt/Fridge-compile
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then 
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www/fridge" "$@" se.chalmers.cs.gf.gwt.FridgeApp;
diff --git a/src/server/gwt/Fridge-compile-fast b/src/server/gwt/Fridge-compile-fast
deleted file mode 100644
--- a/src/server/gwt/Fridge-compile-fast
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then 
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www" -style DETAILED "$@" se.chalmers.cs.gf.gwt.FridgeApp_IE6;
diff --git a/src/server/gwt/Fridge-compile.bat b/src/server/gwt/Fridge-compile.bat
deleted file mode 100644
--- a/src/server/gwt/Fridge-compile.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@echo off
-
-set APPDIR=.
-set GWT_DIR=c:\gwt-windows-1.5.2
-set GWT_CLASSPATH="%GWT_DIR%\gwt-user.jar;%GWT_DIR%\gwt-dev-windows.jar"
-
-set LIBS=%APPDIR%\lib\gwt-dnd-2.5.6.jar
-
-java %GWT_JAVA_OPTS% -Xmx256M -cp "%APPDIR%\src;%APPDIR%\bin;%LIBS%;%GWT_CLASSPATH%" com.google.gwt.dev.GWTCompiler -out "%APPDIR%\www\fridge" se.chalmers.cs.gf.gwt.FridgeApp
diff --git a/src/server/gwt/Fridge-shell-external b/src/server/gwt/Fridge-shell-external
deleted file mode 100644
--- a/src/server/gwt/Fridge-shell-external
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTShell -out "$APPDIR/www" -noserver "$@" http://localhost:41296/fridge/;
diff --git a/src/server/gwt/FridgeApp.launch b/src/server/gwt/FridgeApp.launch
deleted file mode 100644
--- a/src/server/gwt/FridgeApp.launch
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/GF-GWT"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;GF-GWT&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/GF-GWT/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento project=&quot;GF-GWT&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry externalArchive=&quot;/Users/bringert/src/gwt-mac-1.5.3/gwt-dev-mac.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out www -noserver http://localhost:41296/fridge/"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="GF-GWT"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx256M"/>
-</launchConfiguration>
diff --git a/src/server/gwt/Morpho-compile b/src/server/gwt/Morpho-compile
deleted file mode 100644
--- a/src/server/gwt/Morpho-compile
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then 
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www/morpho" "$@" se.chalmers.cs.gf.gwt.MorphoApp;
diff --git a/src/server/gwt/Translate-compile b/src/server/gwt/Translate-compile
deleted file mode 100644
--- a/src/server/gwt/Translate-compile
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-export GWT_DIR="/home/angelov/gwt-linux-1.5.3"
-export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-linux.jar"
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then 
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www/translate" "$@" se.chalmers.cs.gf.gwt.TranslateApp;
diff --git a/src/server/gwt/Translate-compile.bat b/src/server/gwt/Translate-compile.bat
deleted file mode 100644
--- a/src/server/gwt/Translate-compile.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@echo off
-
-set APPDIR=.
-set GWT_DIR=c:\gwt-windows-1.5.2
-set GWT_CLASSPATH="%GWT_DIR%\gwt-user.jar;%GWT_DIR%\gwt-dev-windows.jar"
-
-set LIBS=%APPDIR%\lib\gwt-dnd-2.5.6.jar
-
-java %GWT_JAVA_OPTS% -Xmx256M -cp "%APPDIR%\src;%APPDIR%\bin;%LIBS%;%GWT_CLASSPATH%" com.google.gwt.dev.GWTCompiler -out "%APPDIR%\www\translate" se.chalmers.cs.gf.gwt.TranslateApp
diff --git a/src/server/gwt/Translate-shell-external b/src/server/gwt/Translate-shell-external
deleted file mode 100644
--- a/src/server/gwt/Translate-shell-external
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-APPDIR=`dirname $0`;
-
-if [ -z "$GWT_CLASSPATH" ]; then
-  echo 'ERROR: $GWT_CLASSPATH is not set'
-  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
-  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
-  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
-  exit 1
-fi
-
-if [ `uname` = "Darwin" ]; then
-  GWT_JAVA_OPTS=-XstartOnFirstThread
-fi
-
-LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
-
-java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTShell -out "$APPDIR/www" -noserver "$@" http://localhost:41296/translate/;
diff --git a/src/server/gwt/TranslateApp.launch b/src/server/gwt/TranslateApp.launch
deleted file mode 100644
--- a/src/server/gwt/TranslateApp.launch
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/GF-GWT"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;GF-GWT&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/GF-GWT/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento project=&quot;GF-GWT&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry externalArchive=&quot;/Users/bringert/src/gwt-mac-1.5.3/gwt-dev-mac.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out www -noserver http://localhost:41296/translate/"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="GF-GWT"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx256M"/>
-</launchConfiguration>
diff --git a/src/server/gwt/lib/gwt-dnd-2.5.6.jar b/src/server/gwt/lib/gwt-dnd-2.5.6.jar
deleted file mode 100644
Binary files a/src/server/gwt/lib/gwt-dnd-2.5.6.jar and /dev/null differ
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/EditorApp.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/EditorApp.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/EditorApp.gwt.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<module>
-
-      <!-- Inherit the core Web Toolkit stuff.                        -->
-      <inherits name="com.google.gwt.user.User" />
-      <inherits name="com.google.gwt.xml.XML" />
-
-      <inherits name="se.chalmers.cs.gf.gwt.PGF" />
-
-      <!-- Inherit the default GWT style sheet.  You can change       -->
-      <!-- the theme of your GWT application by uncommenting          -->
-      <!-- any one of the following lines.                            -->
-      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
-      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
-      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
-
-      <!-- Other module inherits                                      -->
-
-
-      <!-- Specify the app entry point class.                         -->
-      <entry-point class="se.chalmers.cs.gf.gwt.client.EditorApp" />
-    
-      <!-- Specify the application specific style sheet.              -->
-      <stylesheet src="Editor.css" />
-	
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp.gwt.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<module>
-
-      <!-- Inherit the core Web Toolkit stuff.                        -->
-      <inherits name="com.google.gwt.user.User" />
-      <inherits name="com.google.gwt.xml.XML" />
-
-      <inherits name="se.chalmers.cs.gf.gwt.PGF" />
-
-      <!-- Inherit the default GWT style sheet.  You can change       -->
-      <!-- the theme of your GWT application by uncommenting          -->
-      <!-- any one of the following lines.                            -->
-      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
-      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
-      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
-
-      <!-- Other module inherits                                      -->
-
-
-      <!-- Specify the app entry point class.                         -->
-      <entry-point class="se.chalmers.cs.gf.gwt.client.FridgeApp" />
-    
-      <!-- Specify the application specific style sheet.              -->
-      <stylesheet src="Fridge.css" />
-	
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp_IE6.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp_IE6.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/FridgeApp_IE6.gwt.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<module rename-to="se.chalmers.cs.gf.gwt.FridgeApp">
-  <inherits name="se.chalmers.cs.gf.gwt.FridgeApp" />
-  <set-property name="user.agent" value="ie6" />
-  <set-property name="locale" value="default" />
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/MorphoApp.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/MorphoApp.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/MorphoApp.gwt.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<module>
-
-      <!-- Inherit the core Web Toolkit stuff.                        -->
-      <inherits name="com.google.gwt.user.User" />
-      <inherits name="com.google.gwt.xml.XML" />
-
-      <!-- Inherit the default GWT style sheet.  You can change       -->
-      <!-- the theme of your GWT application by uncommenting          -->
-      <!-- any one of the following lines.                            -->
-      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
-      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
-      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
-
-      <!-- Other module inherits                                      -->
-      <inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/>
-
-
-      <!-- Specify the app entry point class.                         -->
-      <entry-point class="se.chalmers.cs.gf.gwt.client.MorphoApp" />
-    
-      <!-- Specify the application specific style sheet.              -->
-      <stylesheet src="Morpho.css" />
-	
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/PGF.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/PGF.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/PGF.gwt.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<module>
-
-      <!-- Inherit the core Web Toolkit stuff.                        -->
-      <inherits name="com.google.gwt.user.User" />
-      <inherits name="com.google.gwt.http.HTTP" />
-      <inherits name="com.google.gwt.json.JSON" />
-	
-	  <!-- Inherit gwt-dnd support                   -->
-      <inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/>
-	
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/TranslateApp.gwt.xml b/src/server/gwt/src/se/chalmers/cs/gf/gwt/TranslateApp.gwt.xml
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/TranslateApp.gwt.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<module>
-
-      <!-- Inherit the core Web Toolkit stuff.                        -->
-      <inherits name="com.google.gwt.user.User" />
-      <inherits name="com.google.gwt.xml.XML" />
-
-      <inherits name="se.chalmers.cs.gf.gwt.PGF" />
-
-      <!-- Inherit the default GWT style sheet.  You can change       -->
-      <!-- the theme of your GWT application by uncommenting          -->
-      <!-- any one of the following lines.                            -->
-      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
-      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
-      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
-
-      <!-- Other module inherits                                      -->
-
-
-      <!-- Specify the app entry point class.                         -->
-      <entry-point class="se.chalmers.cs.gf.gwt.client.TranslateApp" />
-    
-      <!-- Specify the application specific style sheet.              -->
-      <stylesheet src="Translate.css" />
-	
-</module>
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/AbstractSyntaxController.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/AbstractSyntaxController.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/AbstractSyntaxController.java
+++ /dev/null
@@ -1,211 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.*;
-
-import com.google.gwt.core.client.*;
-import com.google.gwt.user.client.*;
-import com.google.gwt.user.client.ui.*;
-
-
-public class AbstractSyntaxController {
-	private final Tree abstractTree;
-	private final FlowPanel textPanel;
-
-	private Map<Panel,TreeItem> panels;
-	private Map<TreeItem,List<Panel>> items;
-	
-	private ClickListener labelClickListener;
-
-	private Panel focusPanel = null;
-	private Panel selectedPanel = null;
-	private TreeItem lastPanelItem = null;
-
-	public AbstractSyntaxController(final Tree abstractTree, final FlowPanel textPanel)
-	{
-		this.abstractTree = abstractTree;
-		this.textPanel    = textPanel;
-
-		panels = new HashMap();
-		items  = new HashMap();
-
-		abstractTree.addTreeListener(new TreeListener() {
-			public void onTreeItemSelected(TreeItem item)
-			{
-				focusPanel = selectedPanel;
-
-				for (Panel panel : panels.keySet())
-				{
-					panel.removeStyleDependentName("selected");
-					panel.removeStyleDependentName("focused");
-				}
-
-				List<Panel> panels = items.get(item);
-				if (panels != null)
-				{
-					for (Panel panel : panels)
-					{
-						String style = (panel == selectedPanel) ? "focused" : "selected";
-						panel.addStyleDependentName(style);
-					}
-				}
-			}
-
-			public void onTreeItemStateChanged(TreeItem item)
-			{
-			}
-		});
-
-		labelClickListener = new ClickListener() {
-			public void onClick(Widget sender) {
-				Panel panel = (Panel) (sender.getParent());
-
-				TreeItem item = panels.get(panel);
-				if (item != null)
-				{
-					selectedPanel = panel;
-					abstractTree.setSelectedItem(item);
-					abstractTree.ensureSelectedItemVisible();
-					selectedPanel = null;
-				}
-			}
-		};
-	}
-
-	public TreeItem addItem(String label)
-	{
-		TreeItem child = abstractTree.addItem(label);
-		addPanel(child, textPanel);
-		return child;
-	}
-
-	public TreeItem addItem(TreeItem parent, String label)
-	{
-		TreeItem child = parent.addItem(label);
-		addPanel(child, getPanel(parent));
-		return child;
-	}
-
-	private Panel addPanel(TreeItem item, Panel parentPanel)
-	{
-		FlowPanel wordsPanel = new FlowPanel();
-		wordsPanel.setStylePrimaryName("my-WordsPanel");
-		panels.put(wordsPanel,item);
-
-		List<Panel> others = items.get(item);
-		if (others == null)
-		{
-			others = new ArrayList();
-			items.put(item,others);
-		}
-		others.add(wordsPanel);
-
-		parentPanel.add(wordsPanel);
-
-		lastPanelItem = item;
-		return wordsPanel;
-	}
-
-	private Panel getPanel(TreeItem item)
-	{
-		TreeItem tmpItem;
-
-		LinkedList<TreeItem> curr = new LinkedList();
-		tmpItem = item;
-		while (tmpItem != null)
-		{
-			curr.addFirst(tmpItem);
-			tmpItem = tmpItem.getParentItem();
-		}
-
-		LinkedList<TreeItem> last = new LinkedList();
-		tmpItem = lastPanelItem;
-		while (tmpItem != null)
-		{
-			last.addFirst(tmpItem);
-			tmpItem = tmpItem.getParentItem();
-		}
-
-		int i = 0;
-		TreeItem parent = null;
-		while (i < curr.size() && i < last.size())
-		{
-			if (curr.get(i) != last.get(i))
-			  break;
-
-			parent = curr.get(i);
-			i++;
-		}
-
-		List<Panel> others = items.get(parent);
-		if (others == null)
-			return null;
-		Panel panel = others.get(others.size()-1);
-
-		if (parent != item)
-		{
-			while (i < curr.size())
-				panel = addPanel(curr.get(i++), panel);
-		}
-
-		return panel;
-	}
-
-	public Label addWord(TreeItem item, String word)
-	{
-		Panel wordsPanel = getPanel(item);
-
-		Label wordLabel = new Label(word);
-		wordLabel.setStylePrimaryName("my-WordLabel");
-		wordLabel.addClickListener(labelClickListener);
-		
-		wordsPanel.add(wordLabel);
-
-		return wordLabel;
-	}
-
-	public void edit()
-	{
-		if (focusPanel != null)
-		{
-			FlowPanel mainPanel = new FlowPanel();
-			mainPanel.add(new Magnet("fish","LangEng"));
-			mainPanel.add(new Magnet("beer","LangEng"));
-			mainPanel.add(new Magnet("cheese","LangEng"));
-			mainPanel.add(new Magnet("expensive","LangEng"));
-			mainPanel.add(new Magnet("delicious","LangEng"));
-
-			DecoratedPopupPanel completionPopup = new DecoratedPopupPanel(true);
-			completionPopup.addStyleName("my-FridgeBagPopup");
-			completionPopup.setWidget(mainPanel);
-			completionPopup.setPopupPosition(100, 100);
-			completionPopup.show();
-
-			final List<Widget> children = new ArrayList();
-			for (Widget widget : focusPanel)
-			{
-				children.add(widget);
-			}
-
-			TextBox textBox = new TextBox();
-			textBox.setStylePrimaryName("my-TextEdit");
-			textBox.addFocusListener(new FocusListener() {
-				public void onFocus(Widget sender)
-				{
-				}
-
-				public void onLostFocus(Widget sender)
-				{
-					focusPanel.clear();
-					for (Widget widget : children)
-					{
-						focusPanel.add(widget);
-					}
-				}
-			});
-
-			focusPanel.clear();
-			focusPanel.add(textBox);
-			textBox.setFocus(true);
-		}
-	}
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/BrowsePanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/BrowsePanel.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/BrowsePanel.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.*;
-import java.lang.*;
-import com.google.gwt.core.client.*;
-import com.google.gwt.user.client.ui.*;
-import com.google.gwt.http.client.*;
-import com.google.gwt.dom.client.*;
-
-public class BrowsePanel extends Composite {
-
-	private PGFWrapper pgf;
-	private HTML sourceView;
-	private SuggestBox searchBox;
-	private CompletionOracle oracle;
-	private List<String> identifiers = null;
-
-	public BrowsePanel(PGFWrapper pgf) {
-		this.pgf = pgf;
-
-		oracle = new CompletionOracle();
-
-		HorizontalPanel browsePanel = new HorizontalPanel();
-		browsePanel.add(createSearchPanel(oracle));
-		browsePanel.add(createSourcePanel());
-		browsePanel.setCellWidth(sourceView,"100%");
-
-		initWidget(browsePanel);
-		setStylePrimaryName("my-BrowsePanel");
-
-		pgf.addSettingsListener(new MySettingsListener(pgf));
-	}
-
-	public native void onActivate() /*-{
-		$doc.browsePanel = this;
-		$doc.callBrowse = @se.chalmers.cs.gf.gwt.client.BrowsePanel::callBrowse(Lse/chalmers/cs/gf/gwt/client/BrowsePanel;Ljava/lang/String;);
-	 }-*/;
-
-	protected Widget createSearchPanel(CompletionOracle oracle) {
-		searchBox = new SuggestBox(oracle);
-		searchBox.setLimit(10);
-		searchBox.addKeyboardListener(new KeyboardListenerAdapter() {
-			public void onKeyUp (Widget sender, char keyCode, int modifiers) {
-				if (keyCode == KEY_ENTER) {
-					browse(searchBox.getText());
-				}
-			}
-		});
-
-		DecoratorPanel decorator = new DecoratorPanel();
-		VerticalPanel vPanel = new VerticalPanel();
-		vPanel.add(new Label("Search"));
-		vPanel.add(searchBox);
-		decorator.add(vPanel);
-		return decorator;
-	}
-
-	private static void callBrowse(BrowsePanel panel, String id) {
-		panel.browse(id);
-	}
-
-	protected void browse(String id) {
-		pgf.browse(id, "javascript:document.callBrowse(document.browsePanel,'$ID')",
-                               "my-identifierLink",
-                               new RequestCallback() {
-			public void onResponseReceived(Request request, Response response) {
-				sourceView.setHTML(response.getText());
-			}
-
-			public void onError(Request request, java.lang.Throwable exception) {
-				// errorHandler.onError(e);
-			}
-		});
-	}
-
-	protected Widget createSourcePanel() {
-		sourceView = new HTML();
-		return sourceView;
-	}
-
-	protected class CompletionOracle extends SuggestOracle {
-
-		public CompletionOracle() {
-		}
-
-		public void requestSuggestions(SuggestOracle.Request request, SuggestOracle.Callback callback) {
-			List<CompletionSuggestion> list = new ArrayList();
-			
-			int index = Collections.binarySearch(identifiers, request.getQuery());
-			index = (index >= 0) ? index : -(index+1);
-
-			for (; index < identifiers.size(); index++) {
-				String id = identifiers.get(index);
-
-				if (id.startsWith(request.getQuery())) {
-					list.add(new CompletionSuggestion(id));
-				}
-				else
-				  break;
-
-				if (list.size() > request.getLimit())
-					break;
-			}
-
-			callback.onSuggestionsReady(request, new SuggestOracle.Response(list));
-		}
-	}
-
-	protected static class CompletionSuggestion implements SuggestOracle.Suggestion {
-		private String string;
-
-		public CompletionSuggestion(String string) {
-			this.string = string;
-		}
-
-		public String getDisplayString() {
-			return string;
-		}
-
-		public String getReplacementString() {
-			return string;
-		}
-	}
-
-	protected class MySettingsListener implements PGFWrapper.SettingsListener {
-
-		private PGFWrapper pgf;
-
-		public MySettingsListener(PGFWrapper pgf) {
-			this.pgf = pgf;
-		}
-
-		public void onAvailableGrammarsChanged() { }
-		public void onSelectedGrammarChanged()
-		{
-			List<String> ids = new ArrayList();
-
-			for (int i = 0; i < pgf.getCategories().length(); i++) {
-				ids.add(pgf.getCategories().get(i));
-			}
-			for (int i = 0; i < pgf.getFunctions().length(); i++) {
-				ids.add(pgf.getFunctions().get(i));
-			}
-
-			Collections.sort(ids);
-
-			identifiers = ids;
-			sourceView.setText("");
-			searchBox.setText("");
-		}
-		public void onInputLanguageChanged() { }
-		public void onOutputLanguageChanged() {	}
-		public void onStartCategoryChanged() { }
-		public void onSettingsError(String msg, Throwable e) { }
-	}
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import com.google.gwt.user.client.ui.SuggestOracle;
-
-public class CompletionOracle extends SuggestOracle {
-
-	private static final int LIMIT_SCALE_FACTOR = 4;
-
-	private PGFWrapper pgf;
-
-	private ErrorHandler errorHandler;
-
-	private JSONRequest jsonRequest = null;
-
-	private String oldQuery = null;
-
-	private List<CompletionSuggestion> oldSuggestions = Collections.emptyList();
-
-
-	public CompletionOracle (PGFWrapper pgf) {
-		this(pgf, null);
-	}
-
-	public CompletionOracle (PGFWrapper pgf, ErrorHandler errorHandler) {
-		this.pgf = pgf;
-		this.errorHandler = errorHandler;
-		pgf.addSettingsListener(new PGFWrapper.SettingsListener() {
-			public void onAvailableGrammarsChanged() { clearState(); }
-			public void onSelectedGrammarChanged() { clearState(); }
-			public void onInputLanguageChanged() { clearState(); }
-			public void onOutputLanguageChanged() { clearState(); }
-			public void onStartCategoryChanged() { clearState(); }
-			public void onSettingsError(String msg, Throwable e) { clearState(); }
-		});
-	}
-
-	private void clearState () {
-		this.oldQuery = null;
-		this.oldSuggestions = Collections.emptyList();
-		if (jsonRequest != null) {
-			jsonRequest.cancel();
-			jsonRequest = null;
-		}
-	}
-
-	public void setErrorHandler(ErrorHandler errorHandler) {
-		this.errorHandler = errorHandler;
-	}
-
-	public static interface ErrorHandler {
-		public void onError(Throwable e);
-	}
-
-	public static class CompletionSuggestion implements SuggestOracle.Suggestion {
-		private String string;
-		public CompletionSuggestion(String string) {
-			this.string = string;
-		}
-
-		public String getDisplayString() {
-			return string;
-		}
-
-		public String getReplacementString() {
-			return string;
-		}
-	}
-
-	public void requestSuggestions(SuggestOracle.Request request, SuggestOracle.Callback callback) {
-		// Only allow a single completion request at a time
-		if (jsonRequest != null) {
-			jsonRequest.cancel();
-			jsonRequest = null;
-		}
-
-		List<CompletionSuggestion> suggestions = filterOldSuggestions(request);
-		if (suggestions != null) {
-			suggestionsReady(request, callback, suggestions);
-		} else {
-			retrieveSuggestions(request, callback);
-		}
-	}
-
-	/** Filters old suggestions and checks if we still have enough suggestions. */
-	private List<CompletionSuggestion> filterOldSuggestions(SuggestOracle.Request request) {
-		String query = request.getQuery();		
-		if (query.length() > 0 && oldQuery != null && query.startsWith(oldQuery)) {
-			// If the prefix had no completions, there is no way that the current input will.
-			if (oldSuggestions.isEmpty()) {
-				return Collections.emptyList();
-			}
-			// If the new input since the previous query ends in whitespace,
-			// always get completions from the server,
-			// since the old suggestions won't include the next word.
-			if (query.indexOf(' ', oldQuery.length()) != -1) {
-				return null;
-			}
-			List<CompletionSuggestion> suggestions = new ArrayList<CompletionSuggestion>();
-			for (CompletionSuggestion c : oldSuggestions) {
-				if (c.getReplacementString().startsWith(query)) {
-					suggestions.add(c);
-				}
-			}			
-			if (suggestions.size() >= request.getLimit() || oldSuggestions.size() < request.getLimit()) {
-				return suggestions;
-			}
-		}
-		return null;
-	}
-
-	private void retrieveSuggestions(final SuggestOracle.Request request, final SuggestOracle.Callback callback) {
-		// hack: first report no completions, to hide suggestions until we get the new completions
-		callback.onSuggestionsReady(request, new SuggestOracle.Response(Collections.<CompletionSuggestion>emptyList()));
-
-		jsonRequest = pgf.complete(request.getQuery(), LIMIT_SCALE_FACTOR * request.getLimit(), 
-				new PGF.CompleteCallback() {
-			public void onResult(PGF.Completions completions) {
-				jsonRequest = null;
-				List<CompletionSuggestion> suggestions = new ArrayList<CompletionSuggestion>();
-				for (PGF.Completion completion : completions.iterable()) {
-					suggestions.add(new CompletionSuggestion(completion.getText()));
-				}
-				suggestionsReady(request, callback, suggestions);
-			}
-
-			public void onError(Throwable e) {
-				errorHandler.onError(e);
-			}
-
-		});
-	}
-
-	private void suggestionsReady(SuggestOracle.Request request, SuggestOracle.Callback callback, List<CompletionSuggestion> suggestions) {
-		this.oldQuery = request.getQuery();
-		this.oldSuggestions = suggestions;
-		suggestions = suggestions.size() <= request.getLimit() ? suggestions : SubList.makeSubList(suggestions, 0, request.getLimit());
-		callback.onSuggestionsReady(request, new SuggestOracle.Response(suggestions));
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/EditorApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/EditorApp.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/EditorApp.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.*;
-
-import com.google.gwt.core.client.*;
-import com.google.gwt.user.client.*;
-import com.google.gwt.user.client.ui.*;
-
-
-public class EditorApp implements EntryPoint {
-
-	private MenuBar createCommandsMenu(final AbstractSyntaxController absController)
-	{
-		// Create the commands menu
-		MenuBar menu = new MenuBar(true);
-		menu.addStyleName("my-CommandsMenu");
-		menu.setAutoOpen(true);
-		menu.setAnimationEnabled(true);
-
-		menu.addItem(new MenuItem("Undo", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Redo", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Cut", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Copy", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Paste", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Delete", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Refine", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Replace", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Wrap", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Parse", new Command() {
-			public void execute() {
-				absController.edit();
-			}
-		}));
-		menu.addItem(new MenuItem("Refine the node at random", new Command() {
-			public void execute() {
-			}
-		}));
-		menu.addItem(new MenuItem("Refine the tree at random", new Command() {
-			public void execute() {
-			}
-		}));
-
-		return menu;
-	}
-
-	private void populate(AbstractSyntaxController absController)
-	{
-		TreeItem sentenceItem = absController.addItem("Is : Phrase");
-		TreeItem item1 = absController.addItem(sentenceItem,"Det : ItemDet");
-		TreeItem item2 = absController.addItem(item1,"This : Item");
-		absController.addWord(item2,"this");
-		TreeItem item3 = absController.addItem(item1,"Cheese : Kind");
-		absController.addWord(item3,"cheese");
-		absController.addWord(item2,"and");
-		absController.addWord(item2,"only");
-		absController.addWord(item2,"this");
-		absController.addWord(sentenceItem,"is");
-		TreeItem item4 = absController.addItem(sentenceItem,"Expensive : Quality");
-		absController.addWord(item4,"expensive");
-	}
-
-	public void onModuleLoad() {
-		Tree abstractTree = new Tree();
-		abstractTree.addStyleName("my-AbstractTree");
-
-		FlowPanel textPanel = new FlowPanel();
-
-		ListBox choiceListBox = new ListBox();
-		choiceListBox.setVisibleItemCount(10);
-		choiceListBox.addStyleName("my-ChoiceListBox");
-
-		AbstractSyntaxController absController = new AbstractSyntaxController(abstractTree, textPanel);
-
-		VerticalSplitPanel vSplit = new VerticalSplitPanel();
-		vSplit.setSize("800px", "500px");
-		vSplit.setSplitPosition("52%");
-
-		HorizontalSplitPanel hSplit1 = new HorizontalSplitPanel();
-		hSplit1.setSplitPosition("22%");
-		hSplit1.setLeftWidget(new ScrollPanel(abstractTree));
-		hSplit1.setRightWidget(textPanel);
-		vSplit.setTopWidget(hSplit1);
-
-		HorizontalSplitPanel hSplit2 = new HorizontalSplitPanel();
-		hSplit2.setSplitPosition("22%");
-		hSplit2.setLeftWidget(createCommandsMenu(absController));
-		hSplit2.setRightWidget(choiceListBox);
-		vSplit.setBottomWidget(hSplit2);
-
-		populate(absController);
-
-		// Wrap the split panel in a decorator panel
-		DecoratorPanel decPanel = new DecoratorPanel();
-		decPanel.addStyleName("my-EditorPanel");
-		decPanel.setWidget(vSplit);
-
-		RootPanel.get().add(decPanel);
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java
+++ /dev/null
@@ -1,287 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.List;
-
-import com.allen_sauer.gwt.dnd.client.PickupDragController;
-import com.allen_sauer.gwt.dnd.client.drop.DropController;
-import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.user.client.History;
-import com.google.gwt.user.client.HistoryListener;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.WindowResizeListener;
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.RootPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-
-public class FridgeApp implements EntryPoint {
-
-	protected static final String pgfBaseURL = "/grammars";
-
-	protected PGFWrapper pgf;
-
-	protected JSONRequest translateRequest = null;
-
-	private FridgeBagPanel bagPanel;
-	private FridgeTextPanel textPanel;
-	protected VerticalPanel outputPanel;
-	protected StatusPopup statusPopup;
-
-	private MagnetFactory magnetFactory;
-
-	//
-	// Text
-	//
-
-	protected void update () {
-		bagPanel.updateBag(getText());
-		translate();
-	}
-
-	//
-	// Translation
-	//
-
-	protected void translate() {
-		outputPanel.clear();
-		outputPanel.addStyleDependentName("working");
-		if (translateRequest != null) {
-			translateRequest.cancel();
-		}
-		translateRequest = pgf.translate(getText(), 
-				new PGF.TranslateCallback() {
-			public void onResult (PGF.Translations translations) {
-				outputPanel.removeStyleDependentName("working");
-				for (PGF.Translation t : translations.iterable()) {
-					for (PGF.Linearization l : t.getLinearizations().iterable()) {
-						outputPanel.add(createTranslation(l.getTo(), l.getText()));
-					}
-				}
-			}
-			public void onError (Throwable e) {
-				showError("Translation failed", e);
-			}
-		});
-	}
-
-	protected ClickListener translationClickListener = new ClickListener () {
-		public void onClick(Widget widget) {
-			Magnet magnet = (Magnet)widget;
-			setInputLanguage(magnet.getLanguage()); // FIXME: this causes an unnecessary update()
-			setText(magnet.getText(), magnet.getLanguage());
-		}
-	};
-
-	protected Widget createTranslation(String language, String text) {
-		Magnet magnet = magnetFactory.createUsedMagnet(text, language);
-		magnet.addClickListener(translationClickListener);
-		String lang = pgf.getLanguageCode(language);
-		if (lang != null) {
-			magnet.getElement().setLang(lang);
-		}
-		return magnet;
-	}
-
-	//
-	// Current text
-	//
-
-	public String getText () {
-		return textPanel.getText();
-	}
-
-	public void setText(String text, String language) {
-		textPanel.setText(text, language);
-	}
-
-	private void clear() {
-		textPanel.clear();
-	}
-
-
-	//
-	// Status stuff
-	//
-
-	protected void setStatus(String msg) {
-		statusPopup.setStatus(msg);
-	}
-
-	protected void showError(String msg, Throwable e) {
-		statusPopup.showError(msg, e);
-	}
-
-	protected void clearStatus() {
-		statusPopup.clearStatus();
-	}
-
-	// GUI
-
-	protected Widget createUI() {
-		PickupDragController dragController = new PickupDragController(RootPanel.get(), false);
-		dragController.setBehaviorDragStartSensitivity(1);
-		dragController.setBehaviorDragProxy(true);
-		dragController.setBehaviorConstrainedToBoundaryPanel(true);
-		/*
-		dragController.addDragHandler(new DragHandlerAdapter() {
-			public void onDragStart(DragStartEvent event) {
-				Widget w = event.getContext().draggable;
-				if (w instanceof Magnet) {
-					bagPanel.cloneMagnet((Magnet)w);
-				}
-			}
-		});
-		 */
-
-		ClickListener magnetClickListener = new ClickListener () {
-			public void onClick(Widget widget) {
-				Magnet magnet = (Magnet)widget;
-				textPanel.addMagnet(magnet);
-			}
-		};
-		magnetFactory = new MagnetFactory(dragController, magnetClickListener);
-
-		textPanel = new FridgeTextPanel(magnetFactory);
-		textPanel.addChangeListener(new ChangeListener() {
-			public void onChange(Widget widget) {
-				update();
-			}
-		});
-		bagPanel = new FridgeBagPanel(pgf, magnetFactory);
-		outputPanel = new TranslationsPanel();
-		SettingsPanel settingsPanel = new SettingsPanel(pgf, true, false);
-		
-		final DockPanel mainPanel = new DockPanel();
-		mainPanel.setStyleName("my-FridgeApp");
-		mainPanel.add(textPanel, DockPanel.NORTH);
-		mainPanel.add(settingsPanel, DockPanel.SOUTH);
-		mainPanel.add(bagPanel, DockPanel.CENTER);
-		mainPanel.add(outputPanel, DockPanel.EAST);
-		
-		mainPanel.setCellHeight(bagPanel, "100%");
-		mainPanel.setCellWidth(bagPanel, "80%");
-		mainPanel.setCellHeight(outputPanel, "100%");
-		mainPanel.setCellWidth(outputPanel, "20%");
-		mainPanel.setCellVerticalAlignment(bagPanel, HasVerticalAlignment.ALIGN_TOP);
-		mainPanel.setCellHorizontalAlignment(outputPanel, HasHorizontalAlignment.ALIGN_RIGHT);
-		mainPanel.setCellWidth(settingsPanel, "100%");
-		
-		DropController dropController = new FridgeTextPanelDropController(textPanel);
-		dragController.registerDropController(dropController);
-
-		Window.addWindowResizeListener(new WindowResizeListener() {
-			public void onWindowResized(int w, int h) {
-				mainPanel.setPixelSize(w, h);
-			}
-		});
-		int w = Window.getClientWidth();
-		int h = Window.getClientHeight();
-		mainPanel.setPixelSize(w, h);
-		
-		return mainPanel;
-	}
-	
-	private static class TranslationsPanel extends VerticalPanel {
-		public TranslationsPanel () {
-			setStylePrimaryName("my-TranslationsPanel");
-			addStyleDependentName("empty");
-		}
-		
-		public void clear () {
-			super.clear();
-			addStyleDependentName("empty");
-		}
-
-		public void add(Widget w) {
-			removeStyleDependentName("empty");
-			super.add(w);
-		}
-		
-	}
-
-
-	//
-	// History stuff
-	//
-
-	protected class MyHistoryListener implements HistoryListener {
-		public void onHistoryChanged(String historyToken) {
-			updateSettingsFromHistoryToken();
-		}
-	};
-
-	protected void updateSettingsFromHistoryToken() {
-		updateSettingsFromHistoryToken(History.getToken().split("/"));
-	}
-
-	protected void updateSettingsFromHistoryToken(String[] tokenParts) {
-		if (tokenParts.length >= 1 && tokenParts[0].length() > 0) {
-			setPGFName(tokenParts[0]);
-		}
-		if (tokenParts.length >= 2 && tokenParts[1].length() > 0) {
-			setInputLanguage(tokenParts[1]);
-		}
-	}
-
-	protected void setPGFName (String pgfName) {
-		if (pgfName != null && !pgfName.equals(pgf.getPGFName())) {
-			pgf.setPGFName(pgfName);
-		}
-	}
-
-	protected void setInputLanguage (String inputLanguage) {
-		if (inputLanguage != null && !inputLanguage.equals(pgf.getInputLanguage())) {
-			pgf.setInputLanguage(inputLanguage);	
-		}
-	}
-
-	//
-	// Initialization
-	//
-
-	protected class MySettingsListener implements PGFWrapper.SettingsListener {
-		// Will only happen on load
-		public void onAvailableGrammarsChanged() {
-			if (pgf.getPGFName() == null) {
-				List<String> grammars = pgf.getGrammars();
-				if (!grammars.isEmpty()) {
-					pgf.setPGFName(grammars.get(0));
-				}
-			}			
-		}
-		public void onSelectedGrammarChanged() {
-			if (pgf.getInputLanguage() == null) {
-				pgf.setInputLanguage(pgf.getUserLanguage());
-			}
-		}
-		public void onInputLanguageChanged() {
-			clear();
-		}
-		public void onOutputLanguageChanged() {
-			update();
-		}
-		public void onStartCategoryChanged() {
-			update();
-		}
-		public void onSettingsError(String msg, Throwable e) {
-			showError(msg,e);
-		}
-	}
-
-	public void onModuleLoad() {
-		statusPopup = new StatusPopup();
-
-		pgf = new PGFWrapper(pgfBaseURL);
-		RootPanel.get().add(createUI());
-		pgf.addSettingsListener(new MySettingsListener());
-		History.addHistoryListener(new MyHistoryListener());
-		updateSettingsFromHistoryToken();
-		pgf.updateAvailableGrammars();
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeBagPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeBagPanel.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeBagPanel.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.LinkedHashSet;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-public class FridgeBagPanel extends Composite {
-
-	private PGFWrapper pgf;
-
-	private MagnetFactory magnetFactory;
-
-	private JSONRequest completeRequest = null;
-
-	private FlowPanel prefixPanel;
-
-	private FlowPanel mainPanel; 
-
-	private int maxMagnets = 100;
-
-	private LinkedHashSet<String> prefixes = new LinkedHashSet<String>();
-
-
-	public FridgeBagPanel (PGFWrapper pgf, MagnetFactory magnetFactory) {
-		this.pgf = pgf;
-		this.magnetFactory = magnetFactory;
-		prefixPanel = new FlowPanel();
-		prefixPanel.setStylePrimaryName("my-PrefixPanel");
-		mainPanel = new FlowPanel();
-		VerticalPanel vPanel = new VerticalPanel();
-		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-		vPanel.add(prefixPanel);
-		vPanel.add(mainPanel);
-		initWidget(new ScrollPanel(vPanel));
-		setStylePrimaryName("my-FridgeBagPanel");
-		addStyleDependentName("empty");
-	}
-
-	public void updateBag (String text) {
-		updateBag(text, "");
-	}
-
-	public void updateBag (final String text, String prefix) {
-		if (completeRequest != null) {
-			completeRequest.cancel();
-		}
-		final boolean updatePrefixes = prefix.equals("");
-		mainPanel.clear();
-		addStyleDependentName("empty");
-		if (updatePrefixes) { clearPrefixes(); }
-	    int limit = updatePrefixes ? 0 : maxMagnets; 
-		completeRequest = pgf.complete(text + " " + prefix, 
-				limit, new PGF.CompleteCallback() {
-			public void onResult(PGF.Completions completions) {
-				for (PGF.Completion completion : completions.iterable()) {
-					String newText = completion.getText();
-					if (!newText.equals(text + " ")) {
-						String[] words = newText.split("\\s+");
-						if (words.length > 0) {
-							String word = words[words.length - 1];
-							if (word.length() > 0) {
-								if (updatePrefixes) {
-									addPrefix(text, word.substring(0,1));
-								}
-								if (mainPanel.getWidgetCount() < maxMagnets) {
-									Magnet magnet = magnetFactory.createMagnet(word, completion.getFrom());
-									mainPanel.add(magnet);
-									removeStyleDependentName("empty");
-								} else {
-									prefixPanel.setVisible(true);
-								}
-							}
-						}
-					}
-				}
-			}
-			public void onError(Throwable e) {
-				// FIXME: show message to user?
-				GWT.log("Error getting completions.", e); 
-			}
-		});
-	}
-
-	protected void clearPrefixes () {
-		prefixes.clear();
-		prefixPanel.clear();
-		prefixPanel.setVisible(false);
-	}
-
-	protected void addPrefix(final String text, final String prefix) {
-		if (prefixes.add(prefix)) {
-			Button prefixButton = new Button(prefix, new ClickListener() {		
-				public void onClick(Widget sender) {
-					updateBag(text, prefix);
-				}
-			});
-			prefixButton.setTitle("Show only magnets stating with '" + prefix + "'");
-			prefixPanel.add(prefixButton);
-		}
-	}
-
-
-	/*
-	public void cloneMagnet (Magnet magnet) {
-		int i = getWidgetIndex(magnet);
-		GWT.log("cloneMagnet: " + magnet.getParent(), null);
-		if (i != -1) {
-			GWT.log("cloning", null);
-			insert(magnetFactory.createMagnet(magnet), i);
-		}
-	}
-	 */
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanel.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.ChangeListenerCollection;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Panel;
-import com.google.gwt.user.client.ui.PushButton;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-public class FridgeTextPanel extends Composite {
-
-	private MagnetFactory magnetFactory;
-
-	private FlowPanel mainPanel;
-
-	private ChangeListenerCollection listeners = null;
-
-	public FridgeTextPanel (MagnetFactory magnetFactory) { 
-		this.magnetFactory = magnetFactory;
-		mainPanel = new FlowPanel();
-		mainPanel.setStylePrimaryName("magnets");
-		DockPanel wrapper = new DockPanel();		
-		wrapper.add(mainPanel, DockPanel.CENTER);
-		Widget buttons = createButtonPanel();
-		wrapper.add(buttons, DockPanel.EAST);
-		wrapper.setCellWidth(mainPanel, "100%");
-		wrapper.setCellWidth(buttons, "6em");
-		wrapper.setHorizontalAlignment(DockPanel.ALIGN_RIGHT);
-		initWidget(wrapper);
-		setStylePrimaryName("my-FridgeTextPanel");
-	}
-	
-
-	protected Widget createButtonPanel () {
-		Panel buttons = new VerticalPanel();
-		buttons.setStylePrimaryName("buttons");
-		PushButton deleteLastButton = new PushButton(new Image("se.chalmers.cs.gf.gwt.FridgeApp/delete-last.png"));
-		deleteLastButton.setTitle("Removes the last magnet.");
-		deleteLastButton.addClickListener(new ClickListener () {
-			public void onClick(Widget sender) {
-				deleteLast();
-			}
-		});
-		buttons.add(deleteLastButton);
-		PushButton clearButton = new PushButton("Clear");
-		clearButton.addClickListener(new ClickListener () {
-			public void onClick(Widget sender) {
-				clear();
-			}
-		});
-		clearButton.setTitle("Removes all magnets.");
-		buttons.add(clearButton);
-		return buttons;
-	}
-
-	public void setEngaged(boolean engaged) {
-		if (engaged) {
-			addStyleDependentName("engage");
-		} else {
-			removeStyleDependentName("engage");
-		}
-	}
-
-	public String getText () {
-		StringBuilder sb = new StringBuilder();
-		for (Widget w : mainPanel) {
-			if (w instanceof Magnet) {
-				String word = ((Magnet)w).getText();	
-				if (sb.length() > 0) {
-					sb.append(' ');
-				}
-				sb.append(word);
-			}
-		}
-		return sb.toString();
-	}
-
-	public void setText (String text, String language) {
-		if (!text.equals(getText())) {
-			mainPanel.clear();
-			for (String word : text.split("\\s+")) {
-				if (word.length() > 0) {
-					mainPanel.add(magnetFactory.createUsedMagnet(word, language));
-				}
-			}
-			fireChange();
-		}
-	}
-	
-	public void clear () {
-		mainPanel.clear();
-		fireChange();
-	}
-
-	public void addMagnet (Magnet magnet) {
-		mainPanel.add(magnetFactory.createUsedMagnet(magnet));
-		fireChange();
-	}
-
-	public void deleteLast() {
-		int c = mainPanel.getWidgetCount();
-		if (c > 0) {
-			mainPanel.remove(c-1);
-			fireChange();
-		}
-	}
-
-	protected void fireChange() {
-		listeners.fireChange(this);
-	}
-
-	public void addChangeListener(ChangeListener listener) {
-		if (listeners == null) {
-			listeners = new ChangeListenerCollection();
-		}
-		listeners.add(listener);
-	}
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanelDropController.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanelDropController.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeTextPanelDropController.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.allen_sauer.gwt.dnd.client.DragContext;
-import com.allen_sauer.gwt.dnd.client.drop.SimpleDropController;
-import com.google.gwt.user.client.ui.Widget;
-
-public class FridgeTextPanelDropController extends SimpleDropController {
-
-	private FridgeTextPanel textPanel;
-
-	public FridgeTextPanelDropController (FridgeTextPanel textPanel) {
-		super(textPanel);
-		this.textPanel = textPanel;
-	}
-
-	public void onEnter(DragContext context) {
-		super.onEnter(context);
-		textPanel.setEngaged(true);
-	}
-
-	public void onLeave(DragContext context) {
-		textPanel.setEngaged(false);
-		super.onLeave(context);
-	}
-
-	public void onDrop(DragContext context) {
-		for (Widget widget : context.selectedWidgets) {
-			Magnet magnet = (Magnet)widget;
-			textPanel.addMagnet(magnet);
-		}
-		super.onDrop(context);
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/IterableJsArray.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/IterableJsArray.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/IterableJsArray.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.core.client.JsArray;
-
-public class IterableJsArray<T extends JavaScriptObject> extends JsArray<T> {
-
-	protected IterableJsArray() {}
-	
-	public final boolean isEmpty() {
-		return length() == 0;
-	}
-
-	public final Iterable<T> iterable() {
-		return new Iterable<T>() {
-			public Iterator<T> iterator() {
-				return new Iterator<T>() {
-					private int i = 0;
-					public boolean hasNext() { 
-						return i < length(); 
-					}
-					public T next() { 
-						if (!hasNext()) { 
-							throw new NoSuchElementException(); 
-						}
-						return get(i++); 
-					}
-					public void remove() { 
-						throw new UnsupportedOperationException(); 
-					}
-				};
-			}
-		};
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONCallback.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONCallback.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONCallback.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.core.client.JavaScriptObject;
-
-public interface JSONCallback<T extends JavaScriptObject> {
-	public void onResult (T result) ;
-	public void onError (Throwable e) ;
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequest.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequest.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.http.client.*;
-
-public class JSONRequest {
-
-	private Request httpRequest;
-
-	JSONRequest (Request httpRequest) {
-		this.httpRequest = httpRequest;
-	}
-
-	public void cancel() {
-		if (httpRequest != null) {
-			httpRequest.cancel();
-		}
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequestBuilder.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequestBuilder.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/JSONRequestBuilder.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.http.client.Request;
-import com.google.gwt.http.client.RequestBuilder;
-import com.google.gwt.http.client.RequestCallback;
-import com.google.gwt.http.client.RequestException;
-import com.google.gwt.http.client.Response;
-import com.google.gwt.http.client.URL;
-
-import java.util.List;
-
-public class JSONRequestBuilder {
-
-	public static class Arg {
-		public final String name;
-		public final String value;
-		public Arg (String name, String value) {
-			this.name = name;
-			this.value = value;
-		}
-		public Arg (String name, int value) {
-			this(name, Integer.toString(value));
-		}
-	}
-	
-	public static <T extends JavaScriptObject> JSONRequest sendRequest (String base, List<Arg> vars, final JSONCallback<T> callback) {
-		String url = getQueryURL(base,vars);
-		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
-		builder.setTimeoutMillis(30000);
-		builder.setHeader("Accept","text/plain, text/html;q=0.5, */*;q=0.1");
-		Request request = null;
-
-		try {
-			request = builder.sendRequest(null, new RequestCallback() {
-				public void onError(Request request, Throwable e) {
-					callback.onError(e);
-				}
-
-				public void onResponseReceived(Request request, Response response) {
-					if (200 == response.getStatusCode()) {
-						callback.onResult(JSONRequestBuilder.<T>eval(response.getText()));
-					} else {
-						RequestException e = new RequestException("Response not OK: " + response.getStatusCode() + ". " + response.getText());
-						callback.onError(e);
-					}
-				}
-			});
-		} catch (RequestException e) {
-			callback.onError(e);
-		}
-
-		return new JSONRequest(request);
-	}
-
-	private static native <T extends JavaScriptObject> T eval(String json) /*-{ 
-        return eval('(' + json + ')');
-    }-*/;
-
-	public static String getQueryURL(String base, List<Arg> args) {
-		StringBuffer sb = new StringBuffer();
-		sb.append(base);
-		sb.append("?");
-		if (args != null) {
-			for (Arg arg : args) {
-				if (arg.value != null) {
-					if (sb.length() > 0) {
-						sb.append("&");
-					}
-					sb.append(URL.encodeComponent(arg.name));
-					sb.append("=");
-					sb.append(URL.encodeComponent(arg.value));
-				}
-			}
-		}
-		return sb.toString();
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/Magnet.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/Magnet.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/Magnet.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.user.client.ui.HTML;
-
-public class Magnet extends HTML {
-	
-	private String language;
-	
-	public Magnet (String text, String language) {
-		this.language = language;
-		setHTML(text);
-		setStylePrimaryName("my-Magnet");
-	}
-	
-	public String getLanguage() {
-		return language;
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MagnetFactory.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MagnetFactory.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MagnetFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.allen_sauer.gwt.dnd.client.PickupDragController;
-import com.google.gwt.user.client.ui.ClickListener;
-
-public class MagnetFactory {
-
-	private PickupDragController dragController;
-	
-	private ClickListener clickListener;
-	
-	public MagnetFactory (PickupDragController dragController, ClickListener clickListener) {
-		this.dragController = dragController;
-		this.clickListener = clickListener;
-	}
-	
-	public Magnet createUsedMagnet(Magnet magnet) {
-		return createUsedMagnet(magnet.getText(), magnet.getLanguage());
-	}
-	
-	public Magnet createUsedMagnet(String text, String language) {
-		return new Magnet(text, language);
-	}
-	
-	public Magnet createMagnet(Magnet magnet) {
-		return createMagnet(magnet.getText(), magnet.getLanguage());
-	}
-	
-	public Magnet createMagnet(String text, String language) {
-		Magnet magnet = new Magnet(text, language);
-		magnet.addClickListener(clickListener);			
-		dragController.makeDraggable(magnet);
-		return magnet;
-	}
-	
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MorphoApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MorphoApp.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MorphoApp.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.*;
-
-import com.google.gwt.core.client.*;
-import com.google.gwt.user.client.ui.*;
-import com.google.gwt.core.client.JavaScriptObject;
-
-public class MorphoApp implements EntryPoint {
-	private TextBox lemmaBox = new TextBox();
-	private Button submitButton = new Button("Submit");
-	private Grid outputGrid = new Grid(2,0);
-
-	public void onModuleLoad() {
-                HorizontalPanel inputPanel = new HorizontalPanel();
-		inputPanel.add(lemmaBox);
-		inputPanel.add(submitButton);
-
-		submitButton.addClickListener(new ClickListener() {
-			public void onClick(Widget sender) {
-		
-				String url = "http://localhost:41296/morpho/morpho.fcgi/eval";
-				List<JSONRequestBuilder.Arg> args = new ArrayList<JSONRequestBuilder.Arg>();
-				args.add(new JSONRequestBuilder.Arg("term", lemmaBox.getText()));
-					
-				JSONRequestBuilder.sendRequest(url, args, new TableCallback() {
-					public void onResult (IterableJsArray<InflectionForm> table)
-					{
-						outputGrid.resize(table.length(),2);
-						int row = 0;
-						for (InflectionForm form : table.iterable()) {
-							outputGrid.setText(row,0,form.getName());
-							outputGrid.setText(row,1,form.getValue());
-							row++;
-						}
-					}
-
-					public void onError (Throwable e)
-					{
-						outputGrid.resize(1,1);
-						outputGrid.setText(0,0,e.toString());
-					}
-				});
-			}
-		});
-		
-
-		VerticalPanel mainPanel = new VerticalPanel();
-		mainPanel.add(inputPanel);
-		mainPanel.add(outputGrid);
-		RootPanel.get().add(mainPanel);
-	}
-
-	public interface TableCallback extends JSONCallback<IterableJsArray<InflectionForm>> { }
-
-	public static class InflectionForm extends JavaScriptObject {
-		protected InflectionForm() { }
-
-		public final native String getName() /*-{ return this.name; }-*/;
-
-		public final native String getValue() /*-{ return this.value; }-*/;
-	}
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MyListBox.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MyListBox.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/MyListBox.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.Collection;
-
-import com.google.gwt.user.client.ui.ListBox;
-
-public class MyListBox extends ListBox {
-
-	public MyListBox () { }
-	
-	public void clearSelection () {
-		setSelectedIndex(-1);
-	}
-	
-	public String getSelectedValue() {
-		int i = getSelectedIndex();
-		return i == -1 ? null : getValue(i);
-	}
-	
-	public void setSelectedValue(String value) {
-		if (value == null) {
-			clearSelection();
-		} else {
-			int c = getItemCount();
-			for (int i = 0; i < c; i++) {
-				if (getValue(i).equals(value)) {
-					setSelectedIndex(i);
-					return;
-				}
-			}
-		}
-	}
-	
-	public void addItems(Collection<String> items) {
-		for (String item : items) {
-			addItem(item);
-		}
-	}
-	
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import se.chalmers.cs.gf.gwt.client.JSONRequestBuilder.Arg;
-
-import java.util.*;
-import com.google.gwt.core.client.*;
-import com.google.gwt.http.client.*;
-
-public class PGF {
-
-	public PGF () {
-	}
-
-	/* Grammar */
-
-	public JSONRequest grammar (String pgfURL, final GrammarCallback callback) {
-		return sendGrammarRequest(pgfURL, "grammar", new ArrayList<Arg>(), callback);
-	}
-
-	public interface GrammarCallback extends JSONCallback<Grammar> { }
-
-	public static class Grammar extends JavaScriptObject {
-		protected Grammar() { }
-
-		public final native String getName() /*-{ return this.name; }-*/;
-
-		public final native String getUserLanguage() /*-{ return this.userLanguage; }-*/;
-
-		public final native IterableJsArray<Language> getLanguages() /*-{ return this.languages; }-*/;
-
-		public final native JsArrayString getCategories() /*-{ return this.categories; }-*/;
-
-		public final native JsArrayString getFunctions() /*-{ return this.functions; }-*/;
-	}
-
-	public static class Language extends JavaScriptObject {
-		protected Language() { }
-
-		public final native String getName() /*-{ return this.name; }-*/;
-		public final native String getLanguageCode() /*-{ return this.languageCode; }-*/;
-		public final native boolean canParse() /*-{ return this.canParse; }-*/;
-	}
-
-	/* Translation */
-
-	public JSONRequest translate (String pgfURL, String input, String fromLang, String cat, String toLang,
-			final TranslateCallback callback) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("input", input));
-		args.add(new Arg("from", fromLang));
-		args.add(new Arg("cat", cat));
-		args.add(new Arg("to", toLang));
-		return sendGrammarRequest(pgfURL, "translate", args, callback);
-	}
-
-	public interface TranslateCallback extends JSONCallback<Translations> {  }
-
-	public static class Translations extends IterableJsArray<Translation> {
-		protected Translations() { }
-	}
-
-	public static class Translation extends JavaScriptObject {
-		protected Translation() { }
-
-		public final native String getFrom() /*-{ return this.from; }-*/;
-                public final native String getTree() /*-{ return this.tree; }-*/;
-		public final native Linearizations getLinearizations() /*-{ return this.linearizations; }-*/;
-	}
-
-	public static class Linearizations extends IterableJsArray<Linearization> {
-		protected Linearizations() { }
-	}
-	
-	public static class Linearization extends JavaScriptObject {
-		protected Linearization() { }
-
-		public final native String getTo() /*-{ return this.to; }-*/;
-                public final native String getText() /*-{ return this.text; }-*/;
-	}
-
-	/* Completion */
-
-	/**
-	 * Get suggestions for completing the input.
-	 * @param limit The number of suggestions to get. 
-	 * If -1 is passed, all available suggestions are retrieved.
-	 */
-	public JSONRequest complete (String pgfURL, String input, String fromLang, String cat, int limit, final CompleteCallback callback) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("input", input));
-		args.add(new Arg("from", fromLang));
-		args.add(new Arg("cat", cat));
-		if (limit > 0) {
-			args.add(new Arg("limit", limit));
-		}
-		return sendGrammarRequest(pgfURL, "complete", args, callback);
-	}
-
-	public interface CompleteCallback extends JSONCallback<Completions> { }
-
-	public static class Completions extends IterableJsArray<Completion> {
-		protected Completions() { }
-	}
-
-	public static class Completion extends JavaScriptObject {
-		protected Completion() { }
-
-		public final native String getFrom() /*-{ return this.from; }-*/;
-		public final native String getText() /*-{ return this.text; }-*/;
-	}
-
-	/* Parsing */
-
-	public JSONRequest parse (String pgfURL, String input, String fromLang, String cat, final ParseCallback callback) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("input", input));
-		args.add(new Arg("from", fromLang));
-		args.add(new Arg("cat", cat));
-		return sendGrammarRequest(pgfURL, "parse", args, callback);
-	}
-
-	public interface ParseCallback extends JSONCallback<ParseResults> { }
-
-	public static class ParseResults extends IterableJsArray<ParseResult> {
-		protected ParseResults() { }
-	}
-
-	public static class ParseResult extends JavaScriptObject {
-		protected ParseResult() { }
-
-		public final native String getFrom() /*-{ return this.from; }-*/;
-		public final native String getTree() /*-{ return this.tree; }-*/;
-	}
-
-	public String graphvizAbstractTree(String pgfURL, String abstractTree) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("command", "abstrtree"));
-                args.add(new Arg("tree", abstractTree));
-		return JSONRequestBuilder.getQueryURL(pgfURL,args);
-	}
-
-	public String graphvizParseTree(String pgfURL, String abstractTree, String lang) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("command", "parsetree"));
-                args.add(new Arg("tree", abstractTree));
-		args.add(new Arg("from", lang));
-		return JSONRequestBuilder.getQueryURL(pgfURL,args);
-	}
-
-	public String graphvizAlignment(String pgfURL, String abstractTree) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("command", "alignment"));
-                args.add(new Arg("tree", abstractTree));
-		return JSONRequestBuilder.getQueryURL(pgfURL,args);
-	}
-
-	public Request browse(String pgfURL, String id, String href, String cssClass, RequestCallback callback) {
-		List<Arg> args = new ArrayList<Arg>();
-		args.add(new Arg("command", "browse"));
-		args.add(new Arg("id", id));
-		args.add(new Arg("href", href));
-		args.add(new Arg("css-class", cssClass));
-
-		Request request = null;
-		try {
-			RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
-                                                                    JSONRequestBuilder.getQueryURL(pgfURL,args));
-			builder.setCallback(callback);
-			request = builder.send();
-		} catch (RequestException ex) {
-			callback.onError(request, ex);
-		}
-
-		return request;
-	}
-
-	/* Common */
-
-	public <T extends JavaScriptObject> JSONRequest sendGrammarRequest(String pgfURL, String resource, List<Arg> args, final JSONCallback<T> callback) {
-		args.add(new Arg("command", resource));
-		return JSONRequestBuilder.sendRequest(pgfURL, args, callback);
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java
+++ /dev/null
@@ -1,323 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import com.google.gwt.http.client.*;
-import com.google.gwt.xml.client.*;
-import com.google.gwt.core.client.*;
-
-public class PGFWrapper {
-
-	private String baseURL;
-
-	private String grammarURL;
-
-	private String pgfName = null;
-
-	private PGF pgf;
-
-	private String inputLanguage = null;
-
-	private String outputLanguage = null;
-
-	private String cat = null;
-
-	// Cached info about the available grammars 
-
-	private List<String> grammars;
-
-	// Cached info about the currently selected grammar
-	
-	private String userLanguage;
-	
-	private LinkedHashMap<String,PGF.Language> languages;
-
-	private List<String> parseableLanguages;
-
-	private JsArrayString categories;
-	private JsArrayString functions;
-
-	// Event listeners
-	
-	private List<SettingsListener> listeners = new LinkedList<SettingsListener>();
-	
-
-	public PGFWrapper() {
-		this.baseURL = null;
-		this.pgf = new PGF();
-	}
-
-	public PGFWrapper(String baseURL) {
-		this.baseURL = baseURL;
-		this.pgf = new PGF();
-	}
-
-	public void updateAvailableGrammars() {
-		String url = baseURL+"/grammars.xml";
-		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
-		try
-		{
-			Request request = builder.sendRequest(null, new RequestCallback() {
-				public void onResponseReceived(Request request, Response response)
-				{
-					if (200 == response.getStatusCode())
-					{
-						grammars = new ArrayList<String>();
-						try
-						{
-							Document grammarsDoc = XMLParser.parse(response.getText());
-
-							NodeList grammarsList = grammarsDoc.getElementsByTagName("grammar");
-							for (int i = 0; i < grammarsList.getLength(); i++)
-							{
-								Node grammarNode = grammarsList.item(i);
-								grammars.add(((Element)grammarNode).getAttribute("name"));
-							}
-						}
-						catch (DOMException e)
-						{
-							fireSettingsError("Could not parse XML document.", e);
-						}
-						fireAvailableGrammarsChanged();
-					}
-					else
-					{
-						fireSettingsError("Error getting grammar list", null);
-					}
-				}
-
-				public void onError(Request request, Throwable e)
-				{
-					fireSettingsError("Error getting grammar list", e);
-				}
-			});
-		}
-		catch (RequestException e)
-		{
-			fireSettingsError("Couldn't connect to server", e);
-		}
-	}
-	
-	protected void updateSelectedGrammar () {
-		clearCachedInfo();
-		pgf.grammar(grammarURL, new PGF.GrammarCallback() {
-			public void onResult(PGF.Grammar grammar) {
-				userLanguage = grammar.getUserLanguage();
-				languages = new LinkedHashMap<String,PGF.Language>();
-				parseableLanguages = new ArrayList<String>();
-				for (PGF.Language l : grammar.getLanguages().iterable()) {
-					String name = l.getName();
-					languages.put(name, l);
-					if (l.canParse()) {
-						parseableLanguages.add(name);
-					}
-				}
-				
-				categories = grammar.getCategories();
-				functions = grammar.getFunctions();
-
-				fireSelectedGrammarChanged();
-			}
-
-			public void onError (Throwable e) {
-				fireSettingsError("Error getting language information", e);
-			}
-		});
-	}
-
-	//
-	// PGF functionality
-	//
-	
-	public JSONRequest translate (String input, final PGF.TranslateCallback callback) {
-		return pgf.translate(grammarURL, input, inputLanguage, cat, outputLanguage, callback);
-	}
-
-	public JSONRequest complete (String input, int limit, final PGF.CompleteCallback callback) {
-		return pgf.complete(grammarURL, input, inputLanguage, cat, limit, callback);
-	}
-
-	public JSONRequest parse (String input, final PGF.ParseCallback callback) {
-		return pgf.parse(grammarURL, input, inputLanguage, cat, callback);
-	}
-
-	public String graphvizAbstractTree(String abstractTree) {
-		return pgf.graphvizAbstractTree(grammarURL,abstractTree);
-	}
-
-	public String graphvizParseTree(String abstractTree, String lang) {
-		return pgf.graphvizParseTree(grammarURL,abstractTree,lang);
-	}
-
-	public String graphvizAlignment(String abstractTree) {
-		return pgf.graphvizAlignment(grammarURL,abstractTree);
-	}
-
-	public Request browse(String id, String href, String cssClass, RequestCallback callback) {
-		return pgf.browse(grammarURL, id, href, cssClass, callback);
-	}
-
-	//
-	// Settings
-	//
-	
-	public String getPGFName() {
-		return pgfName;
-	}
-
-	public void setPGFName(String pgfName) {
-		this.pgfName = pgfName;
-		this.grammarURL = baseURL + "/" + pgfName;
-		this.inputLanguage = null;
-		this.outputLanguage = null;
-		this.cat = null;
-		updateSelectedGrammar();
-	}
-
-	public String getGrammarURL() {
-		return grammarURL;
-	}
-
-	public void setGrammarURL(String grammarURL) {
-		this.pgfName = null;
-		this.grammarURL = grammarURL;
-		this.inputLanguage = null;
-		this.outputLanguage = null;
-		this.cat = null;
-		updateSelectedGrammar();
-	}
-
-	public String getInputLanguage() {
-		return inputLanguage;
-	}
-
-	public void setInputLanguage(String inputLanguage) {
-		this.inputLanguage = inputLanguage;
-		fireInputLanguageChanged();
-	}
-
-	public String getOutputLanguage() {
-		return outputLanguage;
-	}
-
-	public void setOutputLanguage(String outputLanguage) {
-		this.outputLanguage = outputLanguage;
-		fireOutputLanguageChanged();
-	}
-
-	public String getStartCategory() {
-		return cat;
-	}
-
-	public void setStartCategory(String cat) {
-		this.cat = cat;
-		fireStartCategoryChanged();
-	}
-
-	public JsArrayString getCategories() {
-		return categories;
-	}
-
-	public JsArrayString getFunctions() {
-		return functions;
-	}
-	
-	
-	//
-	// Information about the available grammars
-	//
-	public List<String> getGrammars() {
-		return grammars;
-	}
-
-	//
-	// Information about the selected grammar
-	//
-	private void clearCachedInfo () {
-		languages = null;
-		parseableLanguages = null;
-	}
-
-	public String getUserLanguage () {
-		return userLanguage;
-	}
-
-	public String getLanguageCode (String language) {
-		PGF.Language l = languages.get(language);
-		return l == null ? null : l.getLanguageCode();
-	}
-
-	public Collection<String> getParseableLanguages() {
-		return parseableLanguages;
-	}
-	
-	public Collection<String> getAllLanguages() {
-		return languages.keySet();
-	}
-	
-	//
-	// Listeners
-	//
-	
-	public interface SettingsListener {
-		public void onAvailableGrammarsChanged();
-		public void onSelectedGrammarChanged();
-		public void onInputLanguageChanged();
-		public void onOutputLanguageChanged();
-		public void onStartCategoryChanged();
-		public void onSettingsError(String msg, Throwable e);
-	}
-	
-	public static class SettingsAdapter implements SettingsListener {
-		public void onAvailableGrammarsChanged() {}
-		public void onSelectedGrammarChanged() {}
-		public void onInputLanguageChanged() {}
-		public void onOutputLanguageChanged() {}
-		public void onStartCategoryChanged() {}
-		public void onSettingsError(String msg, Throwable e) {}
-	}
-
-	public void addSettingsListener(SettingsListener listener) {
-		listeners.add(listener);
-	}
-
-	protected void fireAvailableGrammarsChanged() {
-		for (SettingsListener listener : listeners) {
-			listener.onAvailableGrammarsChanged();
-		}
-	}
-
-	protected void fireSelectedGrammarChanged() {
-		for (SettingsListener listener : listeners) {
-			listener.onSelectedGrammarChanged();
-		}
-	}
-
-	protected void fireInputLanguageChanged() {
-		for (SettingsListener listener : listeners) {
-			listener.onInputLanguageChanged();
-		}
-	}
-
-	protected void fireOutputLanguageChanged() {
-		for (SettingsListener listener : listeners) {
-			listener.onOutputLanguageChanged();
-		}
-	}
-	
-	protected void fireStartCategoryChanged() {
-		for (SettingsListener listener : listeners) {
-			listener.onStartCategoryChanged();
-		}
-	}
-	
-	protected void fireSettingsError(String msg, Throwable e) {
-		for (SettingsListener listener : listeners) {
-			listener.onSettingsError(msg, e);
-		}
-	}
-	
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.Widget;
-
-public class SettingsPanel extends Composite {
-
-	private PGFWrapper pgf;
-
-	private MyListBox grammarBox;
-	private MyListBox fromLangBox;
-	private MyListBox toLangBox;
-
-	public SettingsPanel (PGFWrapper pgf) {
-		this(pgf, true, true);
-	}
-
-	public SettingsPanel (PGFWrapper pgf, boolean showPGFName, boolean showOutputLanguage) {
-		this.pgf = pgf;
-		
-		HorizontalPanel settingsPanel = new HorizontalPanel();
-		settingsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
-		settingsPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-
-		if (showPGFName) {
-			grammarBox = new MyListBox();
-			grammarBox.addChangeListener(new ChangeListener() {
-				public void onChange(Widget sender) {
-					SettingsPanel.this.pgf.setPGFName(grammarBox.getSelectedValue());
-				}
-			});			
-			settingsPanel.add(new FormWidget("Grammar:", grammarBox));
-		}
-
-		fromLangBox = new MyListBox();
-		fromLangBox.addChangeListener(new ChangeListener() {
-			public void onChange(Widget sender) {
-				SettingsPanel.this.pgf.setInputLanguage(fromLangBox.getSelectedValue());
-			}
-		});
-		settingsPanel.add(new FormWidget("From:", fromLangBox));
-
-		if (showOutputLanguage) {
-			toLangBox = new MyListBox();
-			toLangBox.addChangeListener(new ChangeListener() {
-				public void onChange(Widget sender) {
-					SettingsPanel.this.pgf.setOutputLanguage(toLangBox.getSelectedValue());
-				}
-			});
-			settingsPanel.add(new FormWidget("To:", toLangBox));
-		}
-
-		initWidget(settingsPanel);
-		setStylePrimaryName("my-SettingsPanel");
-
-		pgf.addSettingsListener(new MySettingsListener());
-	}
-
-	private static class FormWidget extends HorizontalPanel {
-		public FormWidget(String label, Widget w) {
-			setStylePrimaryName(".my-FormWidget");
-			setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-			add(new Label(label));
-			add(w);
-		}
-	}
-	
-	private class MySettingsListener implements PGFWrapper.SettingsListener {
-		public void onAvailableGrammarsChanged() {
-			if (grammarBox != null) {
-				grammarBox.clear();
-				grammarBox.addItems(pgf.getGrammars());
-			}
-		}
-		public void onSelectedGrammarChanged() {
-			if (grammarBox != null) {
-				grammarBox.setSelectedValue(pgf.getPGFName());
-			}
-			if (fromLangBox != null) {
-				fromLangBox.clear();
-				fromLangBox.addItem("Any language", "");
-				fromLangBox.addItems(pgf.getParseableLanguages());
-				String inputLanguage = pgf.getInputLanguage();
-				if (inputLanguage != null) {
-					fromLangBox.setSelectedValue(inputLanguage);
-				}
-			}
-			if (toLangBox != null) {
-				toLangBox.clear();
-				toLangBox.addItem("All languages", "");		
-				toLangBox.addItems(pgf.getAllLanguages());
-				String outputLanguage = pgf.getOutputLanguage();
-				if (outputLanguage != null) {
-					fromLangBox.setSelectedValue(outputLanguage);
-				}
-			}
-		}
-		public void onInputLanguageChanged() {
-			if (fromLangBox != null) {
-				fromLangBox.setSelectedValue(pgf.getInputLanguage());
-			}
-		}
-		public void onOutputLanguageChanged() {
-			if (toLangBox != null) {
-				toLangBox.setSelectedValue(pgf.getOutputLanguage());
-			}
-		}
-		public void onStartCategoryChanged() { }
-		public void onSettingsError(String msg, Throwable e) { }
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/StatusPopup.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/StatusPopup.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/StatusPopup.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.PopupPanel;
-
-public class StatusPopup extends PopupPanel {
-
-	private Label label = new Label();
-
-	public StatusPopup () {
-		super(true, true);
-		label = new Label();
-		add(label);
-	}
-
-	public void setStatus(String msg) {
-		removeStyleDependentName("error");
-		label.setText(msg);
-		center();
-	}
-
-	public void showError(String msg, Throwable e) {
-		GWT.log(msg, e);
-		addStyleDependentName("error");
-		label.setText(msg);
-		center();
-	}
-
-	public void clearStatus() {
-		removeStyleDependentName("error");
-		label.setText("");
-		hide();
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SubList.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SubList.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SubList.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.AbstractList;
-import java.util.List;
-
-/** Work-around for missing List.subList() method in GWT JRE API emulation. */
-public class SubList<T> extends AbstractList<T> {
-
-	private List<T> list;
-
-	private int fromIndex;
-
-	private int toIndex;
-
-	public SubList(List<T> list, int fromIndex, int toIndex) {
-		this.list = list;
-		this.fromIndex = fromIndex;
-		this.toIndex = toIndex;
-		if (fromIndex < 0 || toIndex > list.size())
-			throw new IndexOutOfBoundsException("Endpoint index value out of range");
-		if (fromIndex > toIndex)
-			throw new IllegalArgumentException("Endpoint indices out of order");
-	}
-
-	public T get(int index) {
-		return list.get(fromIndex + index);
-	}
-
-	public int size() {
-		return toIndex - fromIndex;
-	}
-
-	public static <T> SubList<T> makeSubList(List<T> list, int fromIndex, int toIndex) {
-		return new SubList<T>(list, fromIndex, toIndex);
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.HasText;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.KeyboardListenerAdapter;
-import com.google.gwt.user.client.ui.SuggestBox;
-import com.google.gwt.user.client.ui.Widget;
-
-public class SuggestPanel extends Composite implements HasText {
-
-	private SuggestBox suggest;
-	private Button submitButton;
-
-	private List<SubmitListener> listeners = new LinkedList<SubmitListener>();
-
-	public SuggestPanel (PGFWrapper pgf) {
-
-		CompletionOracle oracle = new CompletionOracle(pgf, new CompletionOracle.ErrorHandler() {
-			public void onError(Throwable e) {
-				GWT.log("Completion failed", e);
-			}
-		});
-
-		suggest = new SuggestBox(oracle);
-		suggest.setLimit(10);
-		suggest.addKeyboardListener(new KeyboardListenerAdapter() {
-			public void onKeyUp (Widget sender, char keyCode, int modifiers) {
-				if (keyCode == KEY_ENTER) {
-					submit();
-				}
-			}
-		});
-
-		submitButton = new Button("Submit");
-		submitButton.addClickListener(new ClickListener() {
-			public void onClick(Widget sender) {
-				submit();
-			}
-		});
-
-		DockPanel mainPanel = new DockPanel();
-		mainPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
-		mainPanel.add(suggest, DockPanel.CENTER);
-		mainPanel.add(submitButton, DockPanel.EAST);
-
-		initWidget(mainPanel);
-		setStylePrimaryName("my-SuggestPanel");
-
-	}
-
-	public int getLimit() {
-		return suggest.getLimit();
-	}
-
-	public String getText() {
-		return suggest.getText();
-	}
-
-	public String getTitle() {
-		return suggest.getTitle();
-	}
-
-	public void onLoad() {
-		suggest.setFocus(true);
-	}
-
-	public void setButtonText (String text) {
-		submitButton.setText(text);
-	}
-
-	public void setEnabled(boolean enabled) {
-		submitButton.setEnabled(enabled);
-	}
-
-	public void setLimit(int limit) {
-		suggest.setLimit(limit);
-	}
-
-	public void setText (String text) {
-		suggest.setText(text);
-	}
-
-	public void setTitle(String title) {
-		suggest.setTitle(title);
-	}
-
-	public void addSubmitListener(SubmitListener listener) {
-		listeners.add(listener);
-	}
-
-	public void submit() {
-		String text = getText();
-		for (SubmitListener listener : listeners) {
-			listener.onSubmit(text);
-		}
-	}
-
-	public interface SubmitListener {
-		public void onSubmit(String text);
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java
+++ /dev/null
@@ -1,377 +0,0 @@
-package se.chalmers.cs.gf.gwt.client;
-
-import java.util.List;
-
-import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.History;
-import com.google.gwt.user.client.HistoryListener;
-import com.google.gwt.user.client.ui.*;
-
-
-public class TranslateApp implements EntryPoint {
-
-	protected static final String pgfBaseURL = "/grammars";
-
-	protected PGFWrapper pgf;
-
-	protected SuggestPanel suggestPanel;
-	protected VerticalPanel outputPanel;
-	protected Widget translatePanel;
-	protected BrowsePanel browsePanel;
-	protected StatusPopup statusPopup;
-
-	//
-	// Text
-	//
-	
-	public String getText () {
-		return suggestPanel.getText();
-	}
-	
-	protected void update () {
-		translate();
-	}
-	
-	//
-	// Translation
-	//
-	
-	protected void translate() {
-		outputPanel.clear();
-		outputPanel.addStyleDependentName("working");
-		pgf.translate(getText(), 
-				new PGF.TranslateCallback() {
-			public void onResult (PGF.Translations translations) {
-				outputPanel.clear();
-				outputPanel.removeStyleDependentName("working");
-				for (PGF.Translation t : translations.iterable()) {
-					HorizontalPanel hPanel = new HorizontalPanel();
-					hPanel.addStyleName("my-translation-frame");
-					VerticalPanel linsPanel = new VerticalPanel();
-					linsPanel.addStyleName("my-translation-bar");
-					hPanel.add(linsPanel);
-					HorizontalPanel btnPanel = new HorizontalPanel();
-					btnPanel.addStyleName("my-translation-btns");
-					btnPanel.setSpacing(4);
-					btnPanel.add(createAbsTreeButton(t.getTree()));
-					btnPanel.add(createAlignButton(t.getTree()));
-					hPanel.add(btnPanel);
-					hPanel.setCellHorizontalAlignment(btnPanel,
-						HasHorizontalAlignment.ALIGN_RIGHT);
-					outputPanel.add(hPanel);
-
-					for (PGF.Linearization l : t.getLinearizations().iterable()) {
-						linsPanel.add(createTranslation(l.getTo(), t.getTree(), l.getText()));
-					}
-				}
-			}
-			public void onError (Throwable e) {
-				showError("Translation failed", e);
-			}
-		});
-	}
-
-	protected Widget createAbsTreeButton(final String abstractTree) {
-		Image treeBtn = new Image("se.chalmers.cs.gf.gwt.TranslateApp/tree-btn.png");
-		treeBtn.addClickListener(
-			new ClickListener() {
-				public void onClick(Widget sender) {
-					// Create a dialog box and set the caption text
-					final DialogBox dialogBox = new DialogBox();
-					dialogBox.setText("Abstract Syntax Tree");
-
-					// Create a table to layout the content
-					HorizontalPanel dialogContents = new HorizontalPanel();
-					dialogContents.setSpacing(4);
-					dialogBox.setWidget(dialogContents);
-
-					// Add an image to the dialog
-					
-					Frame image = new Frame(pgf.graphvizAbstractTree(abstractTree));
-					image.addStyleName("my-treeimage");
-					dialogContents.add(image);
-
-					// Add a close button at the bottom of the dialog
-					Button closeButton = new Button("Close",
-						new ClickListener() {
-							public void onClick(Widget sender) {
-								dialogBox.hide();
-						}
-					});
-					dialogContents.add(closeButton);
-
-					dialogBox.center();
-					dialogBox.show();
-				}
-			});
-		return treeBtn;
-	}
-
-	protected Widget createAlignButton(final String abstractTree) {
-		Image alignBtn = new Image("se.chalmers.cs.gf.gwt.TranslateApp/align-btn.png");
-		alignBtn.addClickListener(
-			new ClickListener() {
-				public void onClick(Widget sender) {
-					// Create a dialog box and set the caption text
-					final DialogBox dialogBox = new DialogBox();
-					dialogBox.setText("Word Alignment");
-
-					// Create a table to layout the content
-					HorizontalPanel dialogContents = new HorizontalPanel();
-					dialogContents.setSpacing(4);
-					dialogBox.setWidget(dialogContents);
-
-					// Add an image to the dialog
-					Frame image = new Frame(pgf.graphvizAlignment(abstractTree));
-					image.addStyleName("my-alignmentimage");
-					dialogContents.add(image);
-
-					// Add a close button at the bottom of the dialog
-					Button closeButton = new Button("Close",
-						new ClickListener() {
-							public void onClick(Widget sender) {
-								dialogBox.hide();
-						}
-					});
-					dialogContents.add(closeButton);
-
-					dialogBox.center();
-					dialogBox.show();
-				}
-			});
-		return alignBtn;
-	}
-
-	protected Widget createTranslation(final String language, final String abstractTree, String text) {
-		Label l = new Label(text);
-		l.addStyleName("my-translation");
-		String lang = pgf.getLanguageCode(language);
-		if (lang != null) {
-			l.getElement().setLang(lang);
-		}
-		l.addClickListener(new ClickListener() {
-			public void onClick(Widget sender) {
-				// Create a dialog box and set the caption text
-				final DialogBox dialogBox = new DialogBox();
-				dialogBox.setText("Parse Tree");
-
-				// Create a table to layout the content
-				HorizontalPanel dialogContents = new HorizontalPanel();
-				dialogContents.setSpacing(4);
-				dialogBox.setWidget(dialogContents);
-
-				// Add an image to the dialog
-				Frame image = new Frame(pgf.graphvizParseTree(abstractTree, language));
-				image.addStyleName("my-treeimage");
-				dialogContents.add(image);
-
-				// Add a close button at the bottom of the dialog
-				Button closeButton = new Button("Close",
-					new ClickListener() {
-						public void onClick(Widget sender) {
-							dialogBox.hide();
-					}
-				});
-				dialogContents.add(closeButton);
-
-				dialogBox.center();
-				dialogBox.show();
-			}
-		});
-		return l;
-	}
-
-	//
-	// Status stuff
-	//
-
-	protected void setStatus(String msg) {
-		statusPopup.setStatus(msg);
-	}
-
-	protected void showError(String msg, Throwable e) {
-		statusPopup.showError(msg, e);
-	}
-
-	protected void clearStatus() {
-		statusPopup.clearStatus();
-	}
-
-	//
-	// GUI
-	//
-	
-	protected Widget createUI() {
-		translatePanel = createTranslatePanel();
-		browsePanel = createBrowsePanel();
-
-		VerticalPanel vPanel = new VerticalPanel();
-
-		HorizontalPanel hPanel = new HorizontalPanel();
-		hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-		hPanel.setStylePrimaryName("my-HeaderPanel");
-
-		Widget linksPanel = createLinksPanel(vPanel);
-		hPanel.add(linksPanel);
-		hPanel.setCellHorizontalAlignment(linksPanel,HorizontalPanel.ALIGN_LEFT);
-
-		Widget settingsPanel = createSettingsPanel();
-		hPanel.add(settingsPanel);
-		hPanel.setCellHorizontalAlignment(settingsPanel,HorizontalPanel.ALIGN_RIGHT);
-
-		vPanel.setWidth("100%");
-		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-		vPanel.add(hPanel);
-		vPanel.add(translatePanel);
-
-		return vPanel;
-	}
-
-	protected Widget createSuggestPanel () {
-		suggestPanel = new SuggestPanel(pgf);
-		suggestPanel.setButtonText("Translate");
-		suggestPanel.addSubmitListener(new SuggestPanel.SubmitListener() {
-			public void onSubmit(String text) {
-				translate();
-			}
-		});		
-		return suggestPanel;
-	}
-
-	protected Widget createSettingsPanel () {
-		return new SettingsPanel(pgf);
-	}
-
-	protected Widget createTranslationsPanel () {
-		outputPanel = new VerticalPanel();
-		outputPanel.addStyleName("my-translations");
-		return outputPanel;
-	}
-
-	protected Widget createTranslatePanel() {
-		VerticalPanel translatePanel = new VerticalPanel();
-		translatePanel.add(createSuggestPanel());
-		translatePanel.add(createTranslationsPanel());
-		return translatePanel;
-	}
-
-	protected BrowsePanel createBrowsePanel() {
-		return new BrowsePanel(pgf);
-	}
-
-	protected Widget createLinksPanel(final Panel parent) {
-		HorizontalPanel linksPanel = new HorizontalPanel();
-		linksPanel.setStylePrimaryName("my-LinksPanel");
-
-		Hyperlink translateLink = new Hyperlink("Translate", null);
-		translateLink.addClickListener(new ClickListener() {
-			public void onClick(Widget sender) {
-				parent.remove(browsePanel);
-				parent.add(translatePanel);
-			}
-		});
-		linksPanel.add(translateLink);
-
-		Hyperlink browseLink = new Hyperlink("Browse", null);
-		browseLink.addClickListener(new ClickListener() {
-			public void onClick(Widget sender) {
-				parent.remove(translatePanel);
-				parent.add(browsePanel);
-				browsePanel.onActivate();
-			}
-		});
-		linksPanel.add(browseLink);
-
-		return linksPanel;
-	}
-
-	protected Widget createLoadingWidget () {
-		VerticalPanel loadingPanel = new VerticalPanel();
-		loadingPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-		loadingPanel.add(new Label("Loading..."));
-		return loadingPanel;
-	}
-	
-	//
-	// History stuff
-	//
-	
-	protected class MyHistoryListener implements HistoryListener {
-		public void onHistoryChanged(String historyToken) {
-			updateSettingsFromHistoryToken();
-		}
-	};
-
-	protected void updateSettingsFromHistoryToken() {
-		updateSettingsFromHistoryToken(History.getToken().split("/"));
-	}
-	
-	protected void updateSettingsFromHistoryToken(String[] tokenParts) {
-		if (tokenParts.length >= 1 && tokenParts[0].length() > 0) {
-			setPGFName(tokenParts[0]);
-		}
-		if (tokenParts.length >= 2 && tokenParts[1].length() > 0) {
-			setInputLanguage(tokenParts[1]);
-		}
-	}
-
-	protected void setPGFName (String pgfName) {
-		if (pgfName != null && !pgfName.equals(pgf.getPGFName())) {
-			pgf.setPGFName(pgfName);
-		}
-	}
-
-	protected void setInputLanguage (String inputLanguage) {
-		if (inputLanguage != null && !inputLanguage.equals(pgf.getInputLanguage())) {
-			pgf.setInputLanguage(inputLanguage);	
-		}
-	}
-
-	//
-	// Initialization
-	//
-
-	protected class MySettingsListener implements PGFWrapper.SettingsListener {
-		// Will only happen on load
-		public void onAvailableGrammarsChanged() {
-			if (pgf.getPGFName() == null) {
-				List<String> grammars = pgf.getGrammars();
-				if (!grammars.isEmpty()) {
-					pgf.setPGFName(grammars.get(0));
-				}
-			}			
-		}
-		public void onSelectedGrammarChanged() {
-			if (pgf.getInputLanguage() == null) {
-				GWT.log("Setting input language to user language: " + pgf.getUserLanguage(), null);
-				pgf.setInputLanguage(pgf.getUserLanguage());
-			}
-			update();
-		}
-		public void onInputLanguageChanged() {
-			update();
-		}
-		public void onOutputLanguageChanged() {
-			update();
-		}
-		public void onStartCategoryChanged() {
-			update();
-		}
-		public void onSettingsError(String msg, Throwable e) {
-			showError(msg,e);
-		}
-	}
-
-	public void onModuleLoad() {
-		statusPopup = new StatusPopup();
-
-		pgf = new PGFWrapper(pgfBaseURL);
-		RootPanel.get().add(createUI());
-		pgf.addSettingsListener(new MySettingsListener());
-		History.addHistoryListener(new MyHistoryListener());
-		updateSettingsFromHistoryToken();
-		pgf.updateAvailableGrammars();
-	}
-
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Editor.css b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Editor.css
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Editor.css
+++ /dev/null
@@ -1,102 +0,0 @@
-body {
-  background: url("brushed-metal.png");
-}
-
-.my-WordsPanel {
-  float: left;
-  padding: 0;
-}
-
-.my-WordsPanel-selected {
-  background-color: rgb(147,194,241);
-}
-
-.my-WordsPanel-focused {
-  background-color: rgb(147,194,241);
-  border: 1px solid #666;
-}
-
-.my-WordLabel {
-  float: left;
-  padding: 2px;
-}
-
-.my-TextEdit {
-  width: 100%;
-  height: 100%;
-  border: 1px solid #666;
-  padding: none;
-  margin: none;
-}
-
-.my-ChoiceListBox {
-  width: 100%;
-  height: 100%;
-  background-color: #eee;
-}
-
-.my-EditorPanel {
-  border: 1px solid #666;
-  background-color: #eee;
-}
-
-.my-AbstractTree {
-  width: 100%;
-  height: 100%;
-}
-
-.my-AbstractTree .gwt-TreeItem {
-  cursor: hand;
-  cursor: pointer;
-
-  padding: 0 10px;
-}
-
-.my-AbstractTree .gwt-TreeItem-selected {
-  background-color: #ffc;
-}
-
-.my-CommandsMenu {
-  margin: 0 auto;
-  width: 100%;
-  font-size: 80%;
-  background-color: #eee;
-}
-
-.my-CommandsMenu .gwt-MenuItem {
-  cursor: hand;
-  cursor: pointer;
-
-  padding: 0 10px;
-}
-
-.my-CommandsMenu .gwt-MenuItem-selected {
-  background-color:   #ffc;
-}
-
-.my-Magnet {
-  float: left;
-  margin: 0.3em;
-  border-width: 1px;
-  border-style: solid;
-  border-color: black;
-  padding: 0.3em;
-  color: black;
-  background-color: white;
-}
-
-.my-Magnet {
-  float: left;
-  margin: 0.3em;
-  border-width: 1px;
-  border-style: solid;
-  border-color: black;
-  padding: 0.3em;
-  color: black;
-  background-color: white;
-}
-
-.my-FridgeBagPopup {
-  padding: 0.2em;
-  width: 500px;
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Fridge.css
+++ /dev/null
@@ -1,82 +0,0 @@
-body {
-  background: url("brushed-metal.png");
-}
-
-.my-FridgeApp {
-  
-}
-
-.my-FridgeTextPanel {
-  padding: 0.2em;
-  width: 100%;
-  border: 3px dashed #dddddd;
-}
-
-.my-FridgeTextPanel .magnets {
-  width: 100%;
-}
-
-.my-FridgeTextPanel .buttons {
-  width: 100%;
-}
-
-.my-FridgeTextPanel .buttons button {
-  width: 100%;
-}
-
-.my-FridgeTextPanel-engage {
-  border-color: #666666;
-  background-color: #dddddd;
-}
-
-.my-FridgeBagPanel {
-  padding: 0.2em;
-  border: 3px solid #dddddd;
-}
-
-.my-FridgeBagPanel-empty {
-  visibility: hidden;
-}
-
-.my-PrefixPanel {
-  margin-bottom: 1em;
-}
-
-.my-FridgeTextPanel .my-Magnet {
-  font-size: 150%;
-}
-
-.my-Magnet {
-  float: left;
-  margin: 0.3em;
-  border-width: 1px;
-  border-style: solid;
-  border-color: black;
-  padding: 0.3em;
-  color: black;
-  background-color: white;
-}
-
-.my-TranslationsPanel {
-  padding: 0.2em;
-  border: 3px solid #dddddd;
-  width: 100%;
-}
-
-.my-TranslationsPanel-empty {
-  visibility: hidden; 
-}
-    
-.my-translation {
-    margin: 0.2em;    
-}
-
-.my-SettingsPanel {
-  width: 100%;
-  padding: 0.5em 0; 
-  border-top: 1px solid #dddddd;
-}
-
-.my-SettingsPanel .my-FormWidget {
-  margin: 0.2em;
-}
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Translate.css b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Translate.css
deleted file mode 100644
--- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/Translate.css
+++ /dev/null
@@ -1,114 +0,0 @@
-/** Add css rules here for your application. */
-
-.my-SuggestPanel {
-    margin: 1em 0 0.5em 0;
-}
-
-.my-SuggestPanel .gwt-SuggestBox {
-    width: 400px;
-    font-size: 150%;
-    margin: 0;
-}
-
-.my-SuggestPanel .gwt-Button {
-    font-size: 150%;
-    margin: 0;
-    margin-left: 2px;
-}
-
-.my-SettingsPanel * {
-    margin: 0 0.4em;
-}
-
-.my-LinksPanel * {
-    margin: 0 0.1em;
-}
-
-.my-HeaderPanel {
-    width: 100%;
-    margin: 0 0.1em;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    border-bottom-style: solid;
-    border-bottom-width: 1px;
-    border-bottom-color: rgb(122,165,214);
-}
-
-.my-BrowsePanel {
-    width: 100%;
-    margin: 1em;
-    border-width: 5px;
-    border-color: rgb(122,165,214);
-}
-
-.my-BrowseFrame {
-    width: 100%;
-    height: 100%;
-    margin: 1em;
-    border-style:none;
-}
-
-.my-translations {
-    margin-top: 1em;
-}
-
-.my-translation-frame {
-    width: 100%;
-    margin: 0.5em;
-    background: #D0E4F6;
-}
-
-.my-translation-bar {
-    padding-left: 25px;
-    padding-right: 25px;
-    width: 100%;
-}
-
-.my-translation {
-    margin: 0.2em;
-    font-size: 150%;
-    background-repeat: no-repeat;
-    background-position: 0% 50%;
-    cursor:pointer;
-}
-
-.my-translation-btns {
-    background: #DDDDDD;
-    cursor:pointer;
-}
-
-.my-treeimage {
-    width: 650px;
-    height: 520px;
-}
-
-.my-alignmentimage {
-    width: 450px;
-    height: 300px;
-}
-
-.my-identifierLink:link {
-    text-decoration: none;
-    color: black;
-}
-
-.my-identifierLink:hover {
-    text-decoration: none;
-    color: black;
-    background-color: silver;
-}
-
-/*
-* [LANG=bg] { background-image: url("flags/bg.png"); }
-* [LANG=ca] { background-image: url("flags/catalonia.png"); }
-* [LANG=da] { background-image: url("flags/dk.png"); }
-* [LANG=de] { background-image: url("flags/de.png"); }
-* [LANG=en] { background-image: url("flags/gb.png"); }
-* [LANG=fi] { background-image: url("flags/fi.png"); }
-* [LANG=fr] { background-image: url("flags/fr.png"); }
-* [LANG=it] { background-image: url("flags/it.png"); }
-* [LANG=no] { background-image: url("flags/no.png"); }
-* [LANG=ru] { background-image: url("flags/ru.png"); }
-* [LANG=es] { background-image: url("flags/es.png"); }
-* [LANG=sv] { background-image: url("flags/se.png"); }
-*/
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/align-btn.png b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/align-btn.png
deleted file mode 100644
Binary files a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/align-btn.png and /dev/null differ
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/brushed-metal.png b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/brushed-metal.png
deleted file mode 100644
Binary files a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/brushed-metal.png and /dev/null differ
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/delete-last.png b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/delete-last.png
deleted file mode 100644
Binary files a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/delete-last.png and /dev/null differ
diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/tree-btn.png b/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/tree-btn.png
deleted file mode 100644
Binary files a/src/server/gwt/src/se/chalmers/cs/gf/gwt/public/tree-btn.png and /dev/null differ
diff --git a/src/server/gwt/www/editor/index.html b/src/server/gwt/www/editor/index.html
deleted file mode 100644
--- a/src/server/gwt/www/editor/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
-<!-- above set at the top of the file will set     -->
-<!-- the browser's rendering engine into           -->
-<!-- "Quirks Mode". Replacing this declaration     -->
-<!-- with a "Standards Mode" doctype is supported, -->
-<!-- but may lead to some differences in layout.   -->
-
-<html>
-  <head>
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    <!--                                           -->
-    <!-- Any title is fine                         -->
-    <!--                                           -->
-    <title>Editor</title>
-    
-    <!--                                           -->
-    <!-- This script loads your compiled module.   -->
-    <!-- If you add any GWT meta tags, they must   -->
-    <!-- be added before this line.                -->
-    <!--                                           -->
-    <script type="text/javascript" language="javascript" src="se.chalmers.cs.gf.gwt.EditorApp/se.chalmers.cs.gf.gwt.EditorApp.nocache.js"></script>
-  </head>
-
-  <!--                                           -->
-  <!-- The body can have arbitrary html, or      -->
-  <!-- you can leave the body empty if you want  -->
-  <!-- to create a completely dynamic UI.        -->
-  <!--                                           -->
-  <body>
-
-    <!-- OPTIONAL: include this if you want history support -->
-    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-
-  </body>
-</html>
diff --git a/src/server/gwt/www/fridge/index.html b/src/server/gwt/www/fridge/index.html
deleted file mode 100644
--- a/src/server/gwt/www/fridge/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
-<!-- above set at the top of the file will set     -->
-<!-- the browser's rendering engine into           -->
-<!-- "Quirks Mode". Replacing this declaration     -->
-<!-- with a "Standards Mode" doctype is supported, -->
-<!-- but may lead to some differences in layout.   -->
-
-<html>
-  <head>
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    <!--                                           -->
-    <!-- Any title is fine                         -->
-    <!--                                           -->
-    <title>Fridge</title>
-    
-    <!--                                           -->
-    <!-- This script loads your compiled module.   -->
-    <!-- If you add any GWT meta tags, they must   -->
-    <!-- be added before this line.                -->
-    <!--                                           -->
-    <script type="text/javascript" language="javascript" src="se.chalmers.cs.gf.gwt.FridgeApp/se.chalmers.cs.gf.gwt.FridgeApp.nocache.js"></script>
-  </head>
-
-  <!--                                           -->
-  <!-- The body can have arbitrary html, or      -->
-  <!-- you can leave the body empty if you want  -->
-  <!-- to create a completely dynamic UI.        -->
-  <!--                                           -->
-  <body>
-
-    <!-- OPTIONAL: include this if you want history support -->
-    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-
-  </body>
-</html>
diff --git a/src/server/gwt/www/morpho/index.html b/src/server/gwt/www/morpho/index.html
deleted file mode 100644
--- a/src/server/gwt/www/morpho/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
-<!-- above set at the top of the file will set     -->
-<!-- the browser's rendering engine into           -->
-<!-- "Quirks Mode". Replacing this declaration     -->
-<!-- with a "Standards Mode" doctype is supported, -->
-<!-- but may lead to some differences in layout.   -->
-
-<html>
-  <head>
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    <!--                                           -->
-    <!-- Any title is fine                         -->
-    <!--                                           -->
-    <title>Morpho</title>
-    
-    <!--                                           -->
-    <!-- This script loads your compiled module.   -->
-    <!-- If you add any GWT meta tags, they must   -->
-    <!-- be added before this line.                -->
-    <!--                                           -->
-    <script type="text/javascript" language="javascript" src="se.chalmers.cs.gf.gwt.MorphoApp/se.chalmers.cs.gf.gwt.MorphoApp.nocache.js"></script>
-  </head>
-
-  <!--                                           -->
-  <!-- The body can have arbitrary html, or      -->
-  <!-- you can leave the body empty if you want  -->
-  <!-- to create a completely dynamic UI.        -->
-  <!--                                           -->
-  <body>
-
-    <!-- OPTIONAL: include this if you want history support -->
-    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-
-  </body>
-</html>
diff --git a/src/server/gwt/www/morpho/morpho.fcgi b/src/server/gwt/www/morpho/morpho.fcgi
deleted file mode 100644
--- a/src/server/gwt/www/morpho/morpho.fcgi
+++ /dev/null
@@ -1,1 +0,0 @@
- 
diff --git a/src/server/gwt/www/translate/index.html b/src/server/gwt/www/translate/index.html
deleted file mode 100644
--- a/src/server/gwt/www/translate/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
-<!-- above set at the top of the file will set     -->
-<!-- the browser's rendering engine into           -->
-<!-- "Quirks Mode". Replacing this declaration     -->
-<!-- with a "Standards Mode" doctype is supported, -->
-<!-- but may lead to some differences in layout.   -->
-
-<html>
-  <head>
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    <!--                                           -->
-    <!-- Any title is fine                         -->
-    <!--                                           -->
-    <title>Translate</title>
-    
-    <!--                                           -->
-    <!-- This script loads your compiled module.   -->
-    <!-- If you add any GWT meta tags, they must   -->
-    <!-- be added before this line.                -->
-    <!--                                           -->
-    <script type="text/javascript" language="javascript" src="se.chalmers.cs.gf.gwt.TranslateApp/se.chalmers.cs.gf.gwt.TranslateApp.nocache.js"></script>
-  </head>
-
-  <!--                                           -->
-  <!-- The body can have arbitrary html, or      -->
-  <!-- you can leave the body empty if you want  -->
-  <!-- to create a completely dynamic UI.        -->
-  <!--                                           -->
-  <body>
-
-    <!-- OPTIONAL: include this if you want history support -->
-    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-
-  </body>
-</html>
diff --git a/src/server/lighttpd.conf b/src/server/lighttpd.conf
--- a/src/server/lighttpd.conf
+++ b/src/server/lighttpd.conf
@@ -12,7 +12,7 @@
 
 var.basedir = var.CWD 
 
-server.document-root        = basedir + "/gwt/www"
+server.document-root        = basedir + "/../ui/gwt/www"
 
 server.errorlog             = basedir + "/error.log"
 
@@ -54,7 +54,7 @@
 fastcgi.server = (".pgf" =>
                   ((
                     "socket" => basedir + "/" + var.PID + "-pgf.socket",
-                    "bin-path" => basedir + "/dist/build/pgf-server/pgf-server",
+                    "bin-path" => basedir + "/dist/build/pgf-fcgi/pgf-fcgi",
 		    # Use 2 OS threads (to be able to use 2 cores).
 		    # Limit heap size to 512 MB.
                     "bin-environment" => ("GHCRTS" => "-N2 -M512M"),
diff --git a/src/server/pgf-fcgi.hs b/src/server/pgf-fcgi.hs
new file mode 100644
--- /dev/null
+++ b/src/server/pgf-fcgi.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+import Control.Concurrent(forkIO)
+import Network.FastCGI(runFastCGI,runFastCGIConcurrent')
+
+import PGFService(cgiMain,newPGFCache,stderrToFile,logFile)
+
+main = do stderrToFile logFile
+          fcgiMain =<< newPGFCache
+
+
+fcgiMain cache =
+#ifndef mingw32_HOST_OS
+          runFastCGIConcurrent' forkIO 100 (cgiMain cache)
+#else
+          runFastCGI (cgiMain cache)
+#endif
diff --git a/src/server/pgf-http.hs b/src/server/pgf-http.hs
new file mode 100644
--- /dev/null
+++ b/src/server/pgf-http.hs
@@ -0,0 +1,49 @@
+
+import Network.CGI(requestMethod,getVarWithDefault,logCGI,handleErrors,liftIO)
+import System.Environment(getArgs)
+import System.Directory(getDirectoryContents)
+import System.FilePath(takeExtension,takeFileName,takeDirectory,(</>))
+       
+import RunHTTP(runHTTP,Options(..))
+import ServeStaticFile(serveStaticFile)
+import PGFService(cgiMain',getPath,stderrToFile,logFile,newPGFCache)
+import FastCGIUtils(outputJSONP,handleCGIErrors)
+
+import Paths_gf_server(getDataDir)
+
+main :: IO ()
+main = do datadir <- getDataDir
+          let defaults = Options { documentRoot = datadir</>"www",
+                                   port = 41296 }
+          cache <- newPGFCache
+          args <- getArgs
+          options <- case args of
+                       []     -> return defaults
+                       [port] -> do p <- readIO port
+                                    return defaults{port=p}    
+          putStrLn $ "Starting HTTP server, open http://localhost:"
+                     ++show (port options)++"/ in your web browser.\n"
+          print options
+          putStrLn $ "logFile="++logFile
+          stderrToFile logFile
+          httpMain cache options
+
+
+httpMain cache options = runHTTP options (do log ; serve =<< getPath)
+  where
+    log = do method <- requestMethod
+             uri    <- getVarWithDefault "REQUEST_URI" "-"
+             logCGI $ method++" "++uri
+
+    serve path =
+        handleErrors . handleCGIErrors $
+        if takeExtension path==".pgf"
+        then cgiMain' cache path
+        else if takeFileName path=="grammars.cgi"
+             then grammarList (takeDirectory path)
+             else serveStaticFile path
+
+    grammarList dir =
+        do paths <- liftIO $ getDirectoryContents dir
+           let pgfs = [path|path<-paths, takeExtension path==".pgf"]
+           outputJSONP pgfs
diff --git a/src/tools/gf.el b/src/tools/gf.el
new file mode 100644
--- /dev/null
+++ b/src/tools/gf.el
@@ -0,0 +1,1350 @@
+;;; gf.el --- Major mode for editing GF code -*-coding: iso-8859-1;-*-
+
+;; Copyright (C) 2005, 2006, 2007  Johan Bockgård
+;; Time-stamp: <2007-06-16 11:57:48 bojohan>
+
+;; Author: Johan Bockgård <bojohan+mail@dd.chalmers.se>
+;; Keywords: languages
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Major mode for editing GF code, with support for running a GF
+;; shell.
+
+;;; Usage:
+
+;; To use this library, put it somewhere Emacs can find it (in
+;; `load-path') and add the following lines to your .emacs file.
+
+;; (autoload 'run-gf "gf" nil t)
+;; (autoload 'gf-mode "gf" nil t)
+;; (add-to-list 'auto-mode-alist '("\\.gf\\(\\|e\\|r\\|cm?\\)\\'" . gf-mode))
+;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . gf-mode))
+;; (add-to-list 'auto-mode-alist '("\\.ebnf\\'" . gf-mode))
+
+;;; History:
+
+;; 2006-10-30:
+;;   	 let a = b
+;;   	     c = d ...
+;;   	 in ...
+;;   indentation now works (most of the time).
+
+;;; Code:
+
+(eval-when-compile (require 'cl))
+
+(defgroup gf nil
+  "Support for GF (Grammatical Framework)"
+  :group 'languages
+  ;; :link  '(emacs-commentary-link "gf")
+  :link  '(url-link "http://www.cs.chalmers.se/~aarne/GF/"))
+
+(defvar gf-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\C-c\C-l"  'gf-load-file)
+    (define-key map "\C-c\C-b"  'gf-display-inf-buffer)
+    (define-key map "\C-c\C-s"  'run-gf)
+    (define-key map (kbd "DEL") 'backward-delete-char-untabify)
+    map)
+  "Keymap for `gf-mode'.")
+
+;; Taken from haskell-mode
+(defvar gf-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\   " "  table)
+    (modify-syntax-entry ?\t  " "  table)
+    (modify-syntax-entry ?\"  "\"" table)
+    (modify-syntax-entry ?\'  "\'" table)
+    (modify-syntax-entry ?_   "w"  table)
+    (modify-syntax-entry ?\(  "()" table)
+    (modify-syntax-entry ?\)  ")(" table)
+    (modify-syntax-entry ?\[  "(]" table)
+    (modify-syntax-entry ?\]  ")[" table)
+    ;; (modify-syntax-entry ?\<  "(>" table)
+    ;; (modify-syntax-entry ?\>  ")<" table)
+
+    (cond ((featurep 'xemacs)
+	   ;; I don't know whether this is equivalent to the below
+	   ;; (modulo nesting).  -- fx
+	   (modify-syntax-entry ?{  "(}5" table)
+	   (modify-syntax-entry ?}  "){8" table)
+	   (modify-syntax-entry ?-  "_ 1267" table))
+	  (t
+	   ;; The following get comment syntax right, similarly to C++
+	   ;; In Emacs 21, the `n' indicates that they nest.
+	   ;; The `b' annotation is actually ignored because it's only
+	   ;; meaningful on the second char of a comment-starter, so
+	   ;; on Emacs 20 and before we get wrong results.  --Stef
+	   (modify-syntax-entry ?\{  "(}1nb" table)
+	   (modify-syntax-entry ?\}  "){4nb" table)
+	   (modify-syntax-entry ?-  "_ 123" table)))
+    (modify-syntax-entry ?\n ">" table)
+
+    (let (i lim)
+      (map-char-table
+       (lambda (k v)
+	 (when (equal v '(1))
+	   ;; The current Emacs 22 codebase can pass either a char
+	   ;; or a char range.
+	   (if (consp k)
+	       (setq i (car k)
+		     lim (cdr k))
+	     (setq i k
+		   lim k))
+	   (while (<= i lim)
+	     (when (> i 127)
+	       (modify-syntax-entry i "_" table))
+	     (setq i (1+ i)))))
+       (standard-syntax-table)))
+
+    (modify-syntax-entry ?\` "$`" table)
+    (modify-syntax-entry ?\\ "\\" table)
+    (mapcar (lambda (x)
+	      (modify-syntax-entry x "_" table))
+	    ;; Some of these are actually OK by default.
+	    "!#$%&*+./:=?@^|~")
+    (unless (featurep 'mule)
+      ;; Non-ASCII syntax should be OK, at least in Emacs.
+      (mapcar (lambda (x)
+		(modify-syntax-entry x "_" table))
+	      (concat "¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿"
+		      "×÷"))
+      (mapcar (lambda (x)
+		(modify-syntax-entry x "w" table))
+	      (concat "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ"
+		      "ØÙÚÛÜÝÞß"
+		      "àáâãäåæçèéêëìíîïðñòóôõö"
+		      "øùúûüýþÿ")))
+    table)
+  "Syntax table used in GF mode.")
+
+;; Lin         PType     Str        Strs       Tok        Type
+;; abstract    case      cat        concrete   data       def
+;; flags       fn        fun        grammar    in         include
+;; incomplete  instance  interface  let        lin        lincat
+;; lindef      lintype   of         open       oper       out
+;; package     param     pattern    pre        printname  resource
+;; reuse       strs      table      tokenizer  transfer   union
+;; var         variants  where      with
+;;   ; = { } ( ) : -> ** , [ ] - . | % ? < > @ ! * \ => ++ + _ $ /
+
+;; Judgements
+(defvar gf-top-level-keywords
+  '("cat" "fun" "lincat" "lintype" "lin" "pattern"
+    "oper" "def" "param" "flags" "lindef" "printname"
+    "data" "transfer"
+    ))
+
+(defvar gf-module-keywords
+  '("abstract" "concrete" "resource" "instance" "interface"))
+
+(defvar gf-keywords
+  (append '("of" "let" "include" "open" "in" "where"
+	    "with" "case" "incomplete" "table"
+	    "variants" "pre" "strs" "overload")
+	  gf-top-level-keywords
+	  gf-module-keywords))
+
+(defvar gf-top-level-keyword-regexp (regexp-opt gf-top-level-keywords 'words))
+(defvar gf-keyword-regexp (regexp-opt gf-keywords 'words))
+
+(defvar gf-font-lock-keywords
+  (let ((sym "\\(\\s_\\|\\\\\\)+")
+	;; (keyw gf-keyword-regexp)
+	(mod (concat (regexp-opt gf-module-keywords 'words)
+		     "\\s-\\(\\w+\\)"))
+	(pface '(if (boundp 'font-lock-preprocessor-face)
+		    font-lock-preprocessor-face
+		  font-lock-builtin-face)))
+    `(;; Module
+      (,mod (1 font-lock-keyword-face)
+	    (2 font-lock-type-face))
+      ;; Keywords
+      (,(lambda (end)
+	  (let (parse-sexp-lookup-properties)
+	    (re-search-forward gf-keyword-regexp end t)))
+       . font-lock-keyword-face)
+      ;; Operators
+      (,sym  . font-lock-variable-name-face)
+      ;; Pragmas
+      ("^--\\(#.*\\)" (1 ,pface prepend))
+      ("--\\(#\\s-*\\(notpresent\\|prob\\).*\\)" (1 ,pface prepend))
+      ;; GFDoc
+      ("^--[0-9]+\\s-*\\(.*\\)" (1 'underline prepend))
+      ("^--\\([*!.]\\)"         (1 'underline prepend))
+      (,(lambda (end)
+	  (let (found)
+	    (while
+		(and (setq found (re-search-forward
+				  ;; "\\$.*?\\$\\|\\*.*?\\*\\|\".*?\""
+				  "\\$.*?\\$"
+				  end t))
+		     (not (eq (get-text-property (match-beginning 0) 'face)
+			      'font-lock-comment-face))))
+	    found))
+       (0 (if (face-italic-p 'font-lock-comment-face)
+	      '((:slant normal))
+	    '((:slant italic)))
+	  prepend))
+      ;; Types (?)
+      ;; ("[^.]\\(\\<[[:upper:]]\\w*\\)[^.]" 1 font-lock-type-face)
+      ))
+  "Keyword highlighting specification for `gf-mode'.")
+
+(defcustom gf-let-brace-style t
+  "The let...in style to use for indentaton.
+
+A value of t means unbraced (new) style:
+
+
+     let x = a;
+         y = b; in ...
+
+A value of nil means braced (old) style
+
+     let { x = a;
+           y = b; } in ...
+
+Anything else means try to guess."
+  :type '(choice (const :tag "Unbraced"  t)
+		 (const :tag "Braced"    nil)
+		 (const :tag "Heuristic" 'heuristic))
+  :group 'gf)
+
+;; let x = let a = f;
+;;             b = g;
+;;       in b;
+;;     y = d;
+;;   in h
+(defun gf-match-let/in (let/in end)
+  (when gf-let-brace-style
+    (if (eq 'let let/in)
+	(and (re-search-forward "\\<le\\(t\\)\\>" end t)
+	     (or (eq t gf-let-brace-style)
+		 (save-excursion
+		   (skip-syntax-forward " ")
+		   (not (eq ?\{ (char-after))))))
+      (and (re-search-forward "\\<\\(i\\)n\\>" end t)
+	   (or (eq t gf-let-brace-style)
+	       (save-excursion
+		 (backward-char 2)
+		 (skip-syntax-backward " ")
+		 (not (eq ?\} (char-before)))))))))
+
+(defvar gf-font-lock-syntactic-keywords
+  `(;; let ...
+    (,(lambda (end) (gf-match-let/in 'let end))
+     1 "(")
+    ;; ;; open ...
+    ;; (,(lambda (end)
+    ;; 	(and (re-search-forward "\\<ope\\(n\\)\\>" end t)
+    ;; 	     (save-excursion
+    ;; 	       (skip-syntax-forward " ")
+    ;; 	       (not (eq ?\{ (char-after))))))
+    ;;  1 "(")
+    ;; ... in
+    (,(lambda (end) (gf-match-let/in 'in end))
+     1 ")")
+    ))
+
+ ;; (defvar gf-imenu-generic-expression
+ ;;   ...)
+
+ ;; (defvar gf-outline-regexp
+ ;;   ...)
+
+;;;###autoload
+(define-derived-mode gf-mode fundamental-mode "GF"
+  "A major mode for editing GF files."
+  ;; (set (make-local-variable 'imenu-generic-expression)
+  ;;      gf-imenu-generic-expression)
+  ;; (set (make-local-variable 'outline-regexp) sample-outline-regexp)
+  (set (make-local-variable 'comment-start) "-- ")
+  (set (make-local-variable 'comment-start-skip) "[-{]-[ \t]*")
+  (set (make-local-variable 'font-lock-defaults)
+       '(gf-font-lock-keywords
+	 nil nil nil nil
+	 (font-lock-syntactic-keywords . gf-font-lock-syntactic-keywords)
+	 ))
+  (set (make-local-variable 'indent-line-function) 'gf-indent-line)
+  (set (make-local-variable 'eldoc-documentation-function) 'gf-doc-display)
+  (set (make-local-variable 'beginning-of-defun-function)
+       'gf-beginning-of-section)
+  (set (make-local-variable 'end-of-defun-function)
+       'gf-end-of-section))
+
+;;; Indentation
+(defcustom gf-indent-basic-offset 2
+  "*Number of columns to indent in GF mode."
+  :type 'integer
+  :group 'gf)
+
+(defcustom gf-indent-judgment-offset 2
+  "*Column where judement should be indented to."
+  :type 'integer
+  :group 'gf)
+
+(defun gf-indent-line ()
+  "Indent current line of GF code."
+  (interactive)
+  (save-excursion
+    (font-lock-fontify-syntactic-keywords-region
+     (point-at-bol) (point-at-bol)))
+  (let* ((case-fold-search nil)
+	 (parse-sexp-lookup-properties t)
+	 (parse-sexp-ignore-comments t)
+	 (savep (> (current-column) (current-indentation)))
+	 (indent (condition-case err
+		     (max (gf-calculate-indentation) 0)
+		   (error (message "%s" err) 0))))
+    (if savep
+	(save-excursion (indent-line-to indent))
+      (indent-line-to indent))))
+
+(defun gf-beginning-of-section ()
+  (when (re-search-backward
+	 (concat "^\\s-*" gf-top-level-keyword-regexp)
+	 nil 'move)
+    (goto-char (match-beginning 0)))
+  (point))
+
+(defun gf-end-of-section ()
+  (gf-forward-comment)
+  (when (looking-at gf-top-level-keyword-regexp)
+    (goto-char (match-end 0)))
+  (when (re-search-forward
+	 (concat "^\\s-*" gf-top-level-keyword-regexp)
+	 (condition-case nil
+	     (1- (scan-lists (point) 1 1))
+	   (error nil))
+	 'move)
+    (goto-char (match-beginning 0)))
+  (gf-backward-comment)
+  (point))
+
+;; (defun gf-beginning-of-defun ()
+;;   (let* ((beg (save-excursion (gf-beginning-of-section) (point)))
+;; 	 (end (save-excursion (progn (forward-line 0) (point))))
+;; 	 (pps (parse-partial-sexp beg end)))
+;;     (when (nth 1 pps) (backward-up-list (nth 0 pps)))
+;;     (back-to-indentation)
+;;     (point)))
+
+(defun gf-beginning-of-sequence (&optional keep-going limit)
+  (or limit (let ((com-start (gf-in-comment-p)))
+	      (when com-start
+		(save-excursion
+		  (goto-char com-start)
+		  (skip-chars-forward "{")
+		  (skip-chars-forward "-")
+		  (setq limit (point))))))
+  (let* ((str "[;]")
+	 (found-it nil)
+	 (pps   (gf-ppss))
+	 (depth (or (nth 0 pps) 0))
+	 (bol   (point-at-bol))
+	 (lim   (max (or limit (point-min))
+		     (if (nth 1 pps)
+			 (1+ (nth 1 pps))
+		       (save-excursion
+			 (gf-beginning-of-section)
+			 (when (looking-at
+				(concat "\\s-*" gf-top-level-keyword-regexp))
+			   (goto-char (match-end 0))
+			   (gf-forward-comment))
+			 (point))))))
+    (while (and (> (point) lim)
+		(setq found-it (re-search-backward str lim 'move))
+		(let ((pps (gf-ppss)))
+		  (or (/= depth (nth 0 pps))
+		      (nth 3 pps)
+		      (nth 4 pps)))))
+    (when found-it
+      (when keep-going
+	(setq lim (max lim bol))
+	(while (and (> (point) lim)
+		    (setq found-it (re-search-backward str lim 'move))
+		    ;;(/= depth (nth 0 (gf-ppss)))
+		    )))
+      (when found-it (forward-char)))))
+
+(defun gf-in-comment-p ()
+  (let ((pps (gf-ppss)))
+    (and (nth 4 pps) (nth 8 pps))))
+
+(defun gf-forward-comment () (forward-comment (buffer-size)))
+(defun gf-backward-comment ()
+  (forward-comment (- (buffer-size)))
+  ;; (while (or (not (zerop (skip-chars-backward " \t\n")))
+  ;; 	     (let  ((start (gf-in-comment)))
+  ;; 	       (and start (goto-char start)))))
+  )
+
+
+(defun gf-ppss ();; (&optional from to)
+  (parse-partial-sexp
+   (save-excursion (gf-beginning-of-section))
+   (point)))
+
+(if (fboundp 'syntax-after)
+    (defalias 'gf-syntax-after 'syntax-after)
+  (defun gf-syntax-after (pos)
+    "Return the raw syntax of the char after POS.
+If POS is outside the buffer's accessible portion, return nil."
+    (unless (or (< pos (point-min)) (>= pos (point-max)))
+      (let ((st (if parse-sexp-lookup-properties
+		    (get-char-property pos 'syntax-table))))
+	(if (consp st) st
+	  (aref (or st (syntax-table)) (char-after pos)))))))
+
+(if (fboundp 'syntax-class)
+    (defalias 'gf-syntax-class 'syntax-class)
+  (defun gf-syntax-class (syntax)
+    "Return the syntax class part of the syntax descriptor SYNTAX.
+If SYNTAX is nil, return nil."
+    (and syntax (logand (car syntax) 65535))))
+
+(defun gf-calculate-indentation ()
+  "Return the column to which the current line should be indented."
+  (save-excursion
+    (forward-line 0)
+    (skip-chars-forward " \t")
+    (cond
+     ;; judgement
+     ((looking-at gf-top-level-keyword-regexp)
+      gf-indent-judgment-offset)
+     ((and gf-let-brace-style
+	   (looking-at "in\\>"))
+      (if (condition-case nil
+	      (progn (backward-up-list)
+		     nil)
+	    (error t))
+	  gf-indent-basic-offset
+	(gf-beginning-of-sequence)
+	(if (= (point) (point-min))
+	    0
+	  (gf-forward-comment)
+	  (+ gf-indent-basic-offset (current-column)))))
+     ((looking-at "[]})]")
+      ;; (looking-at "[]})]")
+      ;; (eq 5 (gf-syntax-class (gf-syntax-after (point))))
+      (backward-up-list)
+      (gf-beginning-of-sequence)
+      (if (= (point) (point-min))
+	  0
+	(gf-forward-comment)
+	(+ gf-indent-basic-offset (current-column))))
+     ;; heading
+     ((looking-at "---")
+      (gf-beginning-of-sequence)
+      (if (= (point) (point-min))
+	  0
+	gf-indent-judgment-offset))
+     (t
+      (let ((opoint (point)))
+	(gf-backward-comment)
+	(cond
+	  ((eq  ?\; (char-before))
+	   ;; ?\,
+	   (backward-char)
+	   (gf-beginning-of-sequence t)
+	   (gf-forward-comment)
+	   (current-column))
+	  (;; (memq (char-before) '( ?\{ ?\[ ?\( ;; ?\<
+	   ;; 			      ))
+	   (eq 4 (gf-syntax-class (gf-syntax-after (1- (point)))))
+	   (backward-char)
+	   ;; alt. (gf-beginning-of-sequence nil nil)
+	   (gf-beginning-of-sequence nil (point-at-bol))
+	   (gf-forward-comment)
+	   ;; alt. (+ (* 2 gf-indent-basic-offset) (current-column)))
+	   (+ gf-indent-basic-offset (current-column)))
+	  (t
+	   (gf-beginning-of-sequence)
+	   (let ((head (= (point) (point-min))))
+	     (gf-forward-comment)
+	     (cond
+	      ;; ((< opoint (point)) 0)
+	      ((> opoint (point)) (+ gf-indent-basic-offset (current-column)))
+	      ;; i.e. opoint == (point)
+	      (head 0)
+	      (t    (gf-beginning-of-section)
+		    (skip-chars-forward " \t")
+		    (+ gf-indent-basic-offset (current-column))))))))))))
+
+(defun gf-load-file ()
+  (interactive)
+  (start-gf)
+  (comint-send-string gf-process (format "i %s\n" buffer-file-name))
+  (gf-clear-lang-cache)
+  (gf-display-inf-buffer))
+
+(defun gf-display-inf-buffer ()
+  (interactive)
+  (and (get-buffer gf-process-buffer-name)
+       (display-buffer gf-process-buffer-name)))
+
+;; Inferior GF Mode ----------------
+
+(defcustom gf-program-name "gf"
+  "*Name of GF shell invoked by `run-gf'."
+  :type 'file
+  :group 'gf)
+(defvar gf-program-args nil "*Arguments passed to GF by `run-gf'.")
+(defvar gf-process-buffer-name "*gf*")
+(defvar gf-process)
+
+(require 'comint)
+
+(define-derived-mode inf-gf-mode comint-mode "Inf-GF"
+  (gf-setup-pcomplete))
+
+(define-key inf-gf-mode-map "\t" 'gf-complete)
+
+;;;###autoload
+(defun run-gf ()
+  "Run an inferior GF process."
+  (interactive)
+  (start-gf)
+  (pop-to-buffer gf-process-buffer-name))
+
+(defun start-gf ()
+  (unless (comint-check-proc gf-process-buffer-name)
+    (with-current-buffer
+	(apply 'make-comint-in-buffer
+	       "gf" gf-process-buffer-name gf-program-name
+	       nil gf-program-args)
+      (setq gf-process (get-buffer-process (current-buffer)))
+      (set-buffer-process-coding-system 'latin-1-unix 'latin-1-unix)
+      (inf-gf-mode))))
+
+;; (defun gf-norm-func (string)
+;;   (if (string-match "\\(.*\\)\\(=[^=]*\\)" string)
+;;       (match-string 1 string)
+;;     string))
+
+;; (defmacro gf-pcomplete-here (&optional form stub paring form-only)
+;;   `(pcomplete-here ,form ,stub (or ,paring 'gf-norm-func) ,form-only))
+;; (put 'gf-pcomplete-here 'edebug-form-spec t)
+
+(put 'pcomplete-here 'edebug-form-spec t)
+
+(defun gf-setup-pcomplete ()
+  (set (make-local-variable 'comint-prompt-regexp) "^[^>\n]*> *")
+  (set (make-local-variable 'pcomplete-ignore-case) nil)
+  (set (make-local-variable 'pcomplete-use-paring)  t)
+  (set (make-local-variable 'pcomplete-suffix-list) '(?/ ?=))
+  ;; (set (make-local-variable 'comint-dynamic-complete-functions)
+  ;;      (add-to-list 'comint-dynamic-complete-functions 'pcomplete))
+  (set (make-local-variable 'pcomplete-parse-arguments-function)
+       'gf-parse-arguments)
+  (set (make-local-variable 'pcomplete-command-completion-function)
+       'gf-complete-command)
+  ;; (set (make-local-variable 'pcomplete-command-name-function)
+  ;;      'pcomplete-erc-command-name)
+  (set (make-local-variable 'pcomplete-default-completion-function)
+       'gf-default-completion-function)
+  (add-hook 'comint-input-filter-functions
+	    'gf-watch-for-loading
+	    nil t))
+
+(defun gf-watch-for-loading (string)
+  (when (string-match (concat "\\(\\`\\||\\;;\\)\\s-*"
+			      (regexp-opt '("i" "e" "rl") 'words))
+		      string)
+    (gf-clear-lang-cache)))
+
+(defun gf-parse-arguments ()
+  "Parse whitespace separated arguments in the current region."
+  (let ((begin (save-excursion
+		 ;; (parse-partial-sexp begin end)
+		 (if (re-search-backward "|\\|;;" (point-at-bol) t)
+		     (match-end 0)
+		   (comint-bol nil)
+		   (point))))
+	(end (point))
+	begins args)
+    (save-excursion
+      (goto-char begin)
+      (while (< (point) end)
+	(skip-chars-forward " \t\n")
+	(setq begins (cons (point) begins))
+	(let ((skip t))
+	  (while skip
+	    (skip-chars-forward "^ \t\n")
+	    (if (eq (char-before) ?\\)
+		(skip-chars-forward " \t\n")
+	      (setq skip nil))))
+	(setq args (cons (buffer-substring-no-properties
+			  (car begins) (point))
+			 args)))
+      (cons (reverse args) (reverse begins)))))
+
+(defun gf-complete ()
+  (interactive)
+  ;; (setq this-command 'pcomplete)
+  (pcomplete))
+
+(defun gf-default-completion-function ()
+  (pcomplete-here (pcomplete-entries)))
+
+(defun gf-complete-command ()
+  (pcomplete-here (gf-complete-commands)))
+
+(defun gf-complete-commands () gf-short-command-names)
+
+;; (defun gf-complete-flagify (flags)
+;;   (mapcar (lambda (s) (concat s "=")) flags))
+
+(defvar gf-short-command-names
+  '("i" "rl" "e" "sf" "s" "pg" "pm" "vg" "po" "pl" "pi"
+    "eh" "ph" "l" "p" "tt" "cc" "so" "t" "gr" "gt" "ma"
+    "ps" "pt" "st" "wt" "vt" "es" "ts" "tq" "tl" "mq"
+     "ml" "rf" "wf" "af" "tg" "cl" "sa" "h" "q" "!"))
+
+(defvar gf-long-command-names
+  '("import" "remove_language" "empty" "set_flags" "strip"
+    "print_grammar" "print_multigrammar" "visualize_graph"
+    "print_options" "print_languages" "print_info"
+    "execute_history" "print_history" "linearize" "parse" "test_tokenizer"
+    "compute_concrete" "show_operations" "translate" "generate_random"
+    "generate_trees" "morphologically_analyse" "put_string" "put_tree"
+    "show_tree" "wrap_tree" "visualize_tree" "editing_session"
+    "translation_session" "translation_quiz" "translation_list"
+    "morphology_quiz" "morphology_list" "read_file" "write_file"
+    "append_file" "transform_grammar" "convert_latex" "speak_aloud"
+    "help" "quit" "system_command"))
+
+(defun gf-complete-options (options flags &optional flags-extra-table
+				    extra-completions)
+  (let ((-options (mapcar (lambda (s) (concat "-" s)) options))
+	(-flags= (mapcar (lambda (s) (concat "-" s "=")) flags)))
+    ;; do-while
+    (while (progn
+	     (cond
+	      ((pcomplete-match "\\`-\\(\\w+\\)=\\(.*\\)" 0)
+	       (pcomplete-here
+		(let ((opt (cdr (assoc (car (member
+					     (pcomplete-match-string 1 0)
+					     flags))
+				       (append flags-extra-table
+					       gf-flags-table)))))
+		  (if (functionp opt)
+		      (funcall opt)
+		    opt))
+		(pcomplete-match-string 2 0)))
+	      (t (pcomplete-here
+		  (append
+		   (if (functionp extra-completions)
+		       (funcall extra-completions)
+		     extra-completions)
+		   -options -flags=))))
+	     (pcomplete-match "\\`-" 1)))))
+
+(defun gf-collect-results (process command function)
+  (let ((output-buffer " *gf-tmp*")
+	results)
+    (save-excursion
+      (set-buffer (get-buffer-create output-buffer))
+      (erase-buffer)
+      (comint-redirect-send-command-to-process
+       command output-buffer process nil t)
+      ;; Wait for the process to complete
+      (set-buffer (process-buffer process))
+      (while (null comint-redirect-completed)
+	(accept-process-output nil 1))
+      ;; Collect the output
+      (set-buffer output-buffer)
+      (goto-char (point-min))
+      ;; Skip past the command, if it was echoed
+      (and (looking-at command) (forward-line))
+      (funcall function))))
+
+;; Command Completion ---------------------------------------------
+
+;; i,  import: i File
+;;       Reads a grammar from File and compiles it into a GF runtime grammar.
+;;       Files "include"d in File are read recursively, nubbing repetitions.
+;;       If a grammar with the same language name is already in the state,
+;;       it is overwritten - but only if compilation succeeds.
+;;       The grammar parser depends on the file name suffix:
+;;         .gf    normal GF source
+;;         .gfc   canonical GF
+;;         .gfr   precompiled GF resource
+;;         .gfcm  multilingual canonical GF
+;;         .gfe   example-based grammar files (only with the -ex option)
+;;         .ebnf  Extended BNF format
+;;         .cf    Context-free (BNF) format
+;;   options:
+;;       -old          old: parse in GF<2.0 format (not necessary)
+;;       -v            verbose: give lots of messages
+;;       -s            silent: don't give error messages
+;;       -src          source: ignore precompiled gfc and gfr files
+;;       -retain       retain operations: read resource modules (needed in comm cc)
+;;       -nocf         don't build context-free grammar (thus no parser)
+;;       -nocheckcirc  don't eliminate circular rules from CF
+;;       -cflexer      build an optimized parser with separate lexer trie
+;;       -noemit       do not emit code (default with old grammar format)
+;;       -o            do emit code (default with new grammar format)
+;;       -ex           preprocess .gfe files if needed
+;;   flags:
+;;       -abs          set the name used for abstract syntax (with -old option)
+;;       -cnc          set the name used for concrete syntax (with -old option)
+;;       -res          set the name used for resource (with -old option)
+;;       -path         use the (colon-separated) search path to find modules
+;;       -optimize     select an optimization to override file-defined flags
+;;       -conversion   select parsing method (values strict|nondet)
+;;   examples:
+;;       i English.gf                      -- ordinary import of Concrete
+;;       i -retain german/ParadigmsGer.gf  -- import of Resource to test
+
+(defun pcomplete/inf-gf-mode/i ()
+  (gf-complete-options
+   '("old" "v" "s" "src" "retain" "nocf" "nocheckcirc"
+     "cflexer" "noemit" "o" "ex")
+   '("abs" "cnc" "res" "path" "optimize" "conversion")
+   '(("conversion" . ("strict" "nondet")))
+   (lambda ()
+     (pcomplete-dirs-or-entries
+      (regexp-opt
+       '(".gf" ".gfc" ".gfr" ".gfcm" ".gfe" ".ebnf" ".cf"
+	 ".trc"))))))
+
+;; * rl, remove_language: rl Language
+;;       Takes away the language from the state.
+(defun pcomplete/inf-gf-mode/rl ()
+  (pcomplete-here (gf-complete-lang)))
+
+;; e,  empty: e
+;;       Takes away all languages and resets all global flags.
+(defun pcomplete/inf-gf-mode/e ())
+
+;; sf, set_flags: sf Flag*
+;;       The values of the Flags are set for Language. If no language
+;;       is specified, the flags are set globally.
+;;   examples:
+;;       sf -nocpu     -- stop showing CPU time
+;;       sf -lang=Swe  -- make Swe the default concrete
+(defun pcomplete/inf-gf-mode/sf ()
+  (message "Usage: sf Flag*")
+  (throw 'pcompleted nil))
+
+;; s,  strip: s
+;;       Prune the state by removing source and resource modules.
+(defun pcomplete/inf-gf-mode/s ())
+
+;; pg, print_grammar: pg
+;;       Prints the actual grammar (overridden by the -lang=X flag).
+;;       The -printer=X flag sets the format in which the grammar is
+;;       written.
+;;       N.B. since grammars are compiled when imported, this command
+;;       generally does not show the grammar in the same format as the
+;;       source. In particular, the -printer=latex is not supported.
+;;       Use the command tg -printer=latex File to print the source
+;;       grammar in LaTeX.
+;;   options:
+;;       -utf8  apply UTF8-encoding to the grammar
+;;   flags:
+;;       -printer
+;;       -lang
+;;   examples:
+;;       pg -printer=cf  -- show the context-free skeleton
+(defun pcomplete/inf-gf-mode/pg ()
+  (gf-complete-options  '("utf8")
+  			'("printer" "lang")))
+  ;; (while (progn
+  ;; 	   (cond
+  ;; 	    ((pcomplete-match "\\`-printer=\\(.*\\)" 0)
+  ;; 	     (pcomplete-here gf-flag-printer-options
+  ;; 			     (pcomplete-match-string 1 0)))
+  ;; 	    ((pcomplete-match "\\`-\\w+=" 0)
+  ;; 	     (pcomplete-here))
+  ;; 	    (t (pcomplete-here
+  ;; 		(append  '("-utf8")
+  ;; 			'("-printer=" "-lang=")))))
+  ;; 	   (pcomplete-match "\\`-" 1)))
+
+;; pm, print_multigrammar: pm
+;;       Prints the current multilingual grammar in .gfcm form.
+;;       (Automatically executes the strip command (s) before doing this.)
+;;   options:
+;;       -utf8  apply UTF8 encoding to the tokens in the grammar
+;;       -utf8id apply UTF8 encoding to the identifiers in the grammar
+;;       -graph print module dependency graph in 'dot' format
+;;   examples:
+;;       pm | wf Letter.gfcm  -- print the grammar into the file Letter.gfcm
+;;       pm -printer=graph | wf D.dot  -- then do 'dot -Tps D.dot > D.ps'
+(defun pcomplete/inf-gf-mode/pm ()
+  (gf-complete-options '("utf8" "utf8id" "graph")
+		       '("printer" "lang")
+		       '(("printer" . ("graph")))))
+
+;; vg, visualize_graph: vg
+;;      Show the dependency graph of multilingual grammar via dot and gv.
+(defun pcomplete/inf-gf-mode/vg ())
+
+;; po, print_options: po
+;;       Print what modules there are in the state. Also prints those
+;;       flag values in the current state that differ from defaults.
+(defun pcomplete/inf-gf-mode/po ())
+
+;; pl, print_languages: pl
+;;       Prints the names of currently available languages.
+(defun pcomplete/inf-gf-mode/pl ())
+
+;; pi, print_info: pi Ident
+;;       Prints information on the identifier.
+(defun pcomplete/inf-gf-mode/pi ()
+  (message "Usage: pi Ident")
+  (throw 'pcompleted nil))
+
+;; eh, execute_history: eh File
+;;       Executes commands in the file.
+(defun pcomplete/inf-gf-mode/eh ()
+  (pcomplete-here (pcomplete-entries)))
+
+;; ph, print_history; ph
+;;       Prints the commands issued during the GF session.
+;;       The result is readable by the eh command.
+;;   examples:
+;;       ph | wf foo.hist"  -- save the history into a file
+(defun pcomplete/inf-gf-mode/ph ())
+
+;; -- linearization, parsing, translation, and computation
+
+;; l,  linearize: l PattList? Tree
+;;       Shows all linearization forms of Tree by the actual grammar
+;;       (which is overridden by the -lang flag).
+;;       The pattern list has the form [P, ... ,Q] where P,...,Q follow GF
+;;       syntax for patterns. All those forms are generated that match with the
+;;       pattern list. Too short lists are filled with variables in the end.
+;;       Only the -table flag is available if a pattern list is specified.
+;;       HINT: see GF language specification for the syntax of Pattern and Term.
+;;       You can also copy and past parsing results.
+;;   options:
+;;       -table   show parameters
+;;       -struct  bracketed form
+;;       -record  record, i.e. explicit GF concrete syntax term
+;;       -all     show all forms and variants
+;;       -multi   linearize to all languages (the other options don't work)
+;;   flags:
+;;       -lang    linearize in this grammar
+;;       -number  give this number of forms at most
+;;       -unlexer filter output through unlexer
+;;   examples:
+;;       l -lang=Swe -table  -- show full inflection table in Swe
+(defun pcomplete/inf-gf-mode/l ()
+  (gf-complete-options '("table" "struct" "record" "all" "multi")
+		       '("lang" "number" "unlexer"))
+  (message "Usage: l [-option*] PattList? Tree")
+  (throw 'pcompleted nil))
+
+;; p,  parse: p String
+;;       Shows all Trees returned for String by the actual
+;;       grammar (overridden by the -lang flag), in the category S (overridden
+;;       by the -cat flag).
+;;   options for batch input:
+;;       -lines   parse each line of input separately, ignoring empty lines
+;;       -all     as -lines, but also parse empty lines
+;;   options for selecting parsing method:
+;;       (default)parse using an overgenerating CFG
+;;       -cfg     parse using a much less overgenerating CFG
+;;       -mcfg    parse using an even less overgenerating MCFG
+;;       Note:    the first time parsing with -cfg or -mcfg might take a long time
+;;   options that only work for the default parsing method:
+;;       -n       non-strict: tolerates morphological errors
+;;       -ign     ignore unknown words when parsing
+;;       -raw     return context-free terms in raw form
+;;       -v       verbose: give more information if parsing fails
+;;   flags:
+;;       -cat     parse in this category
+;;       -lang    parse in this grammar
+;;       -lexer   filter input through this lexer
+;;       -parser  use this parsing strategy
+;;       -number  return this many results at most
+;;   examples:
+;;       p -cat=S -mcfg "jag är gammal"   -- parse an S with the MCFG
+;;       rf examples.txt | p -lines      -- parse each non-empty line of the file
+(defun pcomplete/inf-gf-mode/p ()
+  (gf-complete-options
+   '("lines" "all" "cfg" "mcfg" "n" "ign" "raw" "v")
+   '("cat" "lang" "lexer" "parser" "number"))
+  (message "Usage: p [-option*] String")
+  (throw 'pcompleted nil))
+
+;; tt, test_tokenizer: tt String
+;;       Show the token list sent to the parser when String is parsed.
+;;       HINT: can be useful when debugging the parser.
+;;   flags:
+;;      -lexer    use this lexer
+;;   examples:
+;;      tt -lexer=codelit "2*(x + 3)"  -- a favourite lexer for program code
+(defun pcomplete/inf-gf-mode/tt ()
+  (gf-complete-options '() '("lexer"))
+  (message "Usage: tt [-lexer] String")
+  (throw 'pcompleted nil))
+
+;; cc, compute_concrete: cc Term
+;;       Compute a term by concrete syntax definitions. Uses the topmost
+;;       resource module (the last in listing by command po) to resolve
+;;       constant names.
+;;       N.B. You need the flag -retain when importing the grammar, if you want
+;;       the oper definitions to be retained after compilation; otherwise this
+;;       command does not expand oper constants.
+;;       N.B.' The resulting Term is not a term in the sense of abstract syntax,
+;;       and hence not a valid input to a Tree-demanding command.
+;;   flags:
+;;      -res      use another module than the topmost one
+;;   examples:
+;;      cc -res=ParadigmsFin (nLukko "hyppy")   -- inflect "hyppy" with nLukko
+(defun pcomplete/inf-gf-mode/cc ()
+  (gf-complete-options '() '("res"))
+  (message "Usage: cc [-res] Term")
+  (throw 'pcompleted nil))
+
+;; so, show_operations: so Type
+;;       Show oper operations with the given value type. Uses the topmost
+;;       resource module to resolve constant names.
+;;       N.B. You need the flag -retain when importing the grammar, if you want
+;;       the oper definitions to be retained after compilation; otherwise this
+;;       command does not find any oper constants.
+;;       N.B.' The value type may not be defined in a supermodule of the
+;;       topmost resource. In that case, use appropriate qualified name.
+;;   flags:
+;;      -res      use another module than the topmost one
+;;   examples:
+;;      so -res=ParadigmsFin ResourceFin.N  -- show N-paradigms in ParadigmsFin
+(defun pcomplete/inf-gf-mode/so ()
+  (gf-complete-options '() '("res"))
+  (message "Usage: so [-res] Type")
+  (throw 'pcompleted nil))
+
+;; t,  translate: t Lang Lang String
+;;       Parses String in Lang1 and linearizes the resulting Trees in Lang2.
+;;   flags:
+;;       -cat
+;;       -lexer
+;;       -parser
+;;   examples:
+;;       t Eng Swe -cat=S "every number is even or odd"
+(defun pcomplete/inf-gf-mode/t ()
+  (gf-complete-options '() '("cat" "lexer" "parser"))
+  (message "Usage: t [-options] Lang Lang String")
+  (throw 'pcompleted nil))
+
+;; gr, generate_random: gr Tree?
+;;       Generates a random Tree of a given category. If a Tree
+;;       argument is given, the command completes the Tree with values to
+;;       the metavariables in the tree.
+;;   flags:
+;;       -cat     generate in this category
+;;       -lang    use the abstract syntax of this grammar
+;;       -number  generate this number of trees (not impl. with Tree argument)
+;;       -depth   use this number of search steps at most
+;;   examples:
+;;       gr -cat=Query            -- generate in category Query
+;;       gr (PredVP ? (NegVG ?))  -- generate a random tree of this form
+;;       gr -cat=S -tr | l        -- gererate and linearize
+(defun pcomplete/inf-gf-mode/gr ()
+  (ding)
+  (gf-complete-options '() '("cat" "lang" "number" "depth"))
+  (message "Usage: gr [-options] Tree?")
+  (throw 'pcompleted nil))
+
+;; gt, generate_trees: gt Tree?
+;;       Generates all trees up to a given depth. If the depth is large,
+;;       a small -alts is recommended. If a Tree argument is given, the
+;;       command completes the Tree with values to the metavariables in
+;;       the tree.
+;;   options:
+;;       -metas   also return trees that include metavariables
+;;   flags:
+;;       -depth   generate to this depth (default 3)
+;;       -alts    take this number of alternatives at each branch (default unlimited)
+;;       -cat     generate in this category
+;;       -lang    use the abstract syntax of this grammar
+;;       -number  generate (at most) this number of trees
+;;   examples:
+;;       gt -depth=10 -cat=NP     -- generate all NP's to depth 10
+;;       gt (PredVP ? (NegVG ?))  -- generate all trees of this form
+;;       gt -cat=S -tr | l        -- gererate and linearize
+(defun pcomplete/inf-gf-mode/gt ()
+  (gf-complete-options '("metas")
+		       '("depth" "alts" "cat" "lang" "number")))
+
+;; ma, morphologically_analyse: ma String
+;;       Runs morphological analysis on each word in String and displays
+;;       the results line by line.
+;;   options:
+;;       -short   show analyses in bracketed words, instead of separate lines
+;;   flags:
+;;       -lang
+;;   examples:
+;;       wf Bible.txt | ma -short | wf Bible.tagged  -- analyse the Bible
+(defun pcomplete/inf-gf-mode/ma ()
+  (gf-complete-options '("short") '("lang")))
+
+;; -- elementary generation of Strings and Trees
+
+;; ps, put_string: ps String
+;;       Returns its argument String, like Unix echo.
+;;       HINT. The strength of ps comes from the possibility to receive the
+;;       argument from a pipeline, and altering it by the -filter flag.
+;;   flags:
+;;       -filter  filter the result through this string processor
+;;       -length  cut the string after this number of characters
+;;   examples:
+;;       gr -cat=Letter | l | ps -filter=text -- random letter as text
+(defun pcomplete/inf-gf-mode/ps ()
+  (gf-complete-options '() '("filter" "length")))
+
+;; pt, put_tree: pt Tree
+;;       Returns its argument Tree, like a specialized Unix echo.
+;;       HINT. The strength of pt comes from the possibility to receive
+;;       the argument from a pipeline, and altering it by the -transform flag.
+;;   flags:
+;;       -transform   transform the result by this term processor
+;;       -number      generate this number of terms at most
+;;   examples:
+;;       p "zero is even" | pt -transform=solve  -- solve ?'s in parse result
+(defun pcomplete/inf-gf-mode/pt ()
+  (gf-complete-options '() '("transform" "number")))
+
+;; * st, show_tree: st Tree
+;;       Prints the tree as a string. Unlike pt, this command cannot be
+;;       used in a pipe to produce a tree, since its output is a string.
+;;   flags:
+;;       -printer     show the tree in a special format (-printer=xml supported)
+(defun pcomplete/inf-gf-mode/st ())
+
+;; wt, wrap_tree: wt Fun
+;;       Wraps the tree as the sole argument of Fun.
+;;   flags:
+;;       -c           compute the resulting new tree to normal form
+(defun pcomplete/inf-gf-mode/wt ()
+  (gf-complete-options '("c") '()))
+
+;; vt, visualize_tree: vt Tree
+;;       Shows the abstract syntax tree via dot and gv (via temporary files
+;;       grphtmp.dot, grphtmp.ps).
+;;   flags:
+;;       -c           show categories only (no functions)
+;;       -f           show functions only (no categories)
+;;       -g           show as graph (sharing uses of the same function)
+;;       -o           just generate the .dot file
+;;   examples:
+;;     p "hello world" | vt -o | wf my.dot ;; ! open -a GraphViz my.dot
+;;     -- This writes the parse tree into my.dot and opens the .dot file
+;;     -- with another application without generating .ps.
+(defun pcomplete/inf-gf-mode/vt ()
+  (gf-complete-options '("c" "f" "g" "o") '()))
+
+;; -- subshells
+
+;; es, editing_session: es
+;;       Opens an interactive editing session.
+;;       N.B. Exit from a Fudget session is to the Unix shell, not to GF.
+;;   options:
+;;       -f Fudget GUI (necessary for Unicode; only available in X Window System)
+
+;; ts, translation_session: ts
+;;       Translates input lines from any of the actual languages to all other ones.
+;;       To exit, type a full stop (.) alone on a line.
+;;       N.B. Exit from a Fudget session is to the Unix shell, not to GF.
+;;       HINT: Set -parser and -lexer locally in each grammar.
+;;   options:
+;;       -f    Fudget GUI (necessary for Unicode; only available in X Windows)
+;;       -lang prepend translation results with language names
+;;   flags:
+;;       -cat    the parser category
+;;   examples:
+;;       ts -cat=Numeral -lang  -- translate numerals, show language names
+(defun pcomplete/inf-gf-mode/ts ()
+  (gf-complete-options '("f" "lang") '("cat")))
+
+;; tq, translation_quiz: tq Lang Lang
+;;       Random-generates translation exercises from Lang1 to Lang2,
+;;       keeping score of success.
+;;       To interrupt, type a full stop (.) alone on a line.
+;;       HINT: Set -parser and -lexer locally in each grammar.
+;;   flags:
+;;       -cat
+;;   examples:
+;;       tq -cat=NP TestResourceEng TestResourceSwe  -- quiz for NPs
+(defun pcomplete/inf-gf-mode/tq ()
+  (pcomplete-here (gf-complete-lang))
+  (pcomplete-here (gf-complete-lang)))
+
+;; tl, translation_list: tl Lang Lang
+;;       Random-generates a list of ten translation exercises from Lang1
+;;       to Lang2. The number can be changed by a flag.
+;;       HINT: use wf to save the exercises in a file.
+;;   flags:
+;;       -cat
+;;       -number
+;;   examples:
+;;       tl -cat=NP TestResourceEng TestResourceSwe  -- quiz list for NPs
+(defun pcomplete/inf-gf-mode/tl ()
+  (pcomplete-here (gf-complete-lang))
+  (pcomplete-here (gf-complete-lang)))
+
+;; mq, morphology_quiz: mq
+;;       Random-generates morphological exercises,
+;;       keeping score of success.
+;;       To interrupt, type a full stop (.) alone on a line.
+;;       HINT: use printname judgements in your grammar to
+;;       produce nice expressions for desired forms.
+;;   flags:
+;;       -cat
+;;       -lang
+;;   examples:
+;;       mq -cat=N -lang=TestResourceSwe  -- quiz for Swedish nouns
+
+;; ml, morphology_list: ml
+;;       Random-generates a list of ten morphological exercises,
+;;       keeping score of success. The number can be changed with a flag.
+;;       HINT: use wf to save the exercises in a file.
+;;   flags:
+;;       -cat
+;;       -lang
+;;       -number
+;;   examples:
+;;       ml -cat=N -lang=TestResourceSwe  -- quiz list for Swedish nouns
+(defun pcomplete/inf-gf-mode/ml ()
+  (gf-complete-options '() '("cat" "lang" "number")))
+
+;; -- IO related commands
+
+;; rf, read_file: rf File
+;;       Returns the contents of File as a String; error if File does not exist.
+(defun pcomplete/inf-gf-mode/rf ()
+  (pcomplete-here (pcomplete-entries)))
+
+;; wf, write_file: wf File String
+;;       Writes String into File; File is created if it does not exist.
+;;       N.B. the command overwrites File without a warning.
+
+;; af, append_file: af File
+;;       Writes String into the end of File; File is created if it does not exist.
+
+;; * tg, transform_grammar: tg File
+;;       Reads File, parses as a grammar,
+;;       but instead of compiling further, prints it.
+;;       The environment is not changed. When parsing the grammar, the same file
+;;       name suffixes are supported as in the i command.
+;;       HINT: use this command to print the grammar in
+;;       another format (the -printer flag); pipe it to wf to save this format.
+;;   flags:
+;;       -printer  (only -printer=latex supported currently)
+
+;; * cl, convert_latex: cl File
+;;       Reads File, which is expected to be in LaTeX form.
+;;       Three environments are treated in special ways:
+;;         \begGF    - \end{verbatim}, which contains GF judgements,
+;;         \begTGF   - \end{verbatim}, which contains a GF expression (displayed)
+;;         \begInTGF - \end{verbatim}, which contains a GF expressions (inlined).
+;;       Moreover, certain macros should be included in the file; you can
+;;       get those macros by applying 'tg -printer=latex foo.gf' to any grammar
+;;       foo.gf. Notice that the same File can be imported as a GF grammar,
+;;       consisting of all the judgements in \begGF environments.
+;;       HINT: pipe with 'wf Foo.tex' to generate a new Latex file.
+
+;; sa, speak_aloud: sa String
+;;       Uses the Flite speech generator to produce speech for String.
+;;       Works for American English spelling.
+;;   examples:
+;;     h | sa              -- listen to the list of commands
+;;     gr -cat=S | l | sa  -- generate a random sentence and speak it aloud
+
+;; h, help: h Command?
+;;       Displays the paragraph concerning the command from this help file.
+;;       Without the argument, shows the first lines of all paragraphs.
+;;   options
+;;        -all  show the whole help file
+;;   examples:
+;;        h print_grammar  -- show all information on the pg command
+
+;; q, quit: q
+;;       Exits GF.
+;;       HINT: you can use 'ph | wf history' to save your session.
+
+;; !, system_command: ! String
+;;       Issues a system command. No value is returned to GF.
+;;    example:
+;;       ! ls
+(defun pcomplete/inf-gf-mode/! ()
+  ;;(pcomplete-here (eshell-complete-commands-list))
+  )
+
+;; -- Flags. The availability of flags is defined separately for each command.
+
+;; -cat, category in which parsing is performed.
+;;       The default is S.
+
+;; -depth, the search depth in e.g. random generation.
+;;       The default depends on application.
+
+;; -filter, operation performed on a string. The default is identity.
+;;     -filter=identity     no change
+;;     -filter=erase        erase the text
+;;     -filter=take100      show the first 100 characters
+;;     -filter=length       show the length of the string
+;;     -filter=text         format as text (punctuation, capitalization)
+;;     -filter=code         format as code (spacing, indentation)
+(defvar gf-flag-filter-options
+  '("identity" "erase" "take100" "length" "text" "code"))
+
+;; -lang, grammar used when executing a grammar-dependent command.
+;;        The default is the last-imported grammar.
+
+(defvar gf-lang-cache 'empty)
+(defun gf-clear-lang-cache () (setq gf-lang-cache 'empty))
+
+(defvar gf-flag-lang-options 'gf-complete-lang)
+(defun gf-complete-lang ()
+  (if (listp gf-lang-cache)
+      gf-lang-cache
+    (setq gf-lang-cache
+	  (gf-collect-results
+	   gf-process "pl"
+	   (lambda ()
+	     ;; we're at point-min
+	     (let (result)
+	       (while (re-search-forward "\\S-+" (point-at-eol) t)
+		 (push (match-string 0) result))
+	       result))))))
+
+;; -language, voice used by Festival as its --language flag in the sa command.
+;;        The default is system-dependent.
+
+;; -length, the maximum number of characters shown of a string.
+;;        The default is unlimited.
+
+;; -lexer, tokenization transforming a string into lexical units for a parser.
+;;        The default is words.
+;;     -lexer=words         tokens are separated by spaces or newlines
+;;     -lexer=literals      like words, but GF integer and string literals recognized
+;;     -lexer=vars          like words, but "x","x_...","$...$" as vars, "?..." as meta
+;;     -lexer=chars         each character is a token
+;;     -lexer=code          use Haskell's lex
+;;     -lexer=codevars      like code, but treat unknown words as variables, ?? as meta
+;;     -lexer=text          with conventions on punctuation and capital letters
+;;     -lexer=codelit       like code, but treat unknown words as string literals
+;;     -lexer=textlit       like text, but treat unknown words as string literals
+;;     -lexer=codeC         use a C-like lexer
+(defvar gf-flag-lexer-options
+  '("words" "literals" "vars" "chars" "code" "codevars"
+    "text" "codelit" "textlit" "codeC"))
+
+;; -number, the maximum number of generated items in a list.
+;;        The default is unlimited.
+
+;; -optimize, optimization on generated code.
+;;        The default is share for concrete, none for resource modules.
+;;        Each of the flags can have the suffix _subs, which performs
+;;        common subexpression elimination after the main optimization.
+;;        Thus, -optimize=all_subs is the most aggressive one.
+
+;;     -optimize=share        share common branches in tables
+;;     -optimize=parametrize  first try parametrize then do share with the rest
+;;     -optimize=values       represent tables as courses-of-values
+;;     -optimize=all          first try parametrize then do values with the rest
+;;     -optimize=none         no optimization
+(defvar gf-flag-optimize-options
+  '("share" "parametrize" "values" "all" "none"))
+
+;; -parser, parsing strategy. The default is chart. If -cfg or -mcfg are selected, only bottomup and topdown are recognized.
+;;     -parser=chart          bottom-up chart parsing
+;;     -parser=bottomup       a more up to date bottom-up strategy
+;;     -parser=topdown        top-down strategy
+;;     -parser=old            an old bottom-up chart parser
+(defvar gf-flag-parser-options
+  '("chart" "bottomup" "topdown" "old"))
+
+;; -printer, format in which the grammar is printed. The default is gfc.
+;;     -printer=gfc            GFC grammar
+;;     -printer=gf             GF grammar
+;;     -printer=old            old GF grammar
+;;     -printer=cf             context-free grammar, with profiles
+;;     -printer=bnf            context-free grammar, without profiles
+;;     -printer=lbnf           labelled context-free grammar for BNF Converter
+;;     -printer=plbnf          grammar for BNF Converter, with precedence levels
+;;    *-printer=happy          source file for Happy parser generator (use lbnf!);;     -printer=srg            speech recognition grammar
+;;     -printer=haskell        abstract syntax in Haskell, with transl to/from GF
+;;     -printer=morpho         full-form lexicon, long format
+;;    *-printer=latex          LaTeX file (for the tg command)
+;;     -printer=fullform       full-form lexicon, short format
+;;    *-printer=xml            XML: DTD for the pg command, object for st
+;;     -printer=old            old GF: file readable by GF 1.2
+;;     -printer=stat           show some statistics of generated GFC
+;;     -printer=gsl            Nuance GSL speech recognition grammar
+;;     -printer=jsgf           Java Speech Grammar Format
+;;     -printer=slf            a finite automaton in the HTK SLF format
+;;     -printer=slf_graphviz   the same automaton as in SLF, but in Graphviz format
+;;     -printer=fa_graphviz    a finite automaton with labelled edges
+;;     -printer=regular        a regular grammar in a simple BNF
+;;     -printer=unpar          a gfc grammar with parameters eliminated
+(defvar gf-flag-printer-options
+  '("gfc" "gf" "cf" "old" "srg" "gsl" "jsgf" "slf" "slf_graphviz"
+    "fa_graphviz" "regular" "plbnf" "lbnf" "bnf" "haskell" "morpho"
+    "fullform" "opts" "words" "printnames" "stat" "unpar" "subs"
+    "mcfg" "cfg" "pinfo" "abstract" "gfc-haskell" "mcfg-haskell"
+    "cfg-haskell" "gfc-prolog" "mcfg-prolog" "cfg-prolog" "abs-skvatt"
+    "cfg-skvatt" "simple" "mcfg-erasing" "mcfg-old" "cfg-old"
+    ;;"happy" "latex" "xml"
+    ))
+
+
+;; -startcat, like -cat, but used in grammars (to avoid clash with keyword cat)
+
+;; -transform, transformation performed on a syntax tree. The default is identity.
+;;     -transform=identity  no change
+;;     -transform=compute   compute by using definitions in the grammar
+;;     -transform=typecheck return the term only if it is type-correct
+;;     -transform=solve     solve metavariables as derived refinements
+;;     -transform=context   solve metavariables by unique refinements as variables
+;;     -transform=delete    replace the term by metavariable
+(defvar gf-flag-transform-options
+  '("identity" "compute" "typecheck" "solve" "context" "delete"))
+
+;; -unlexer, untokenization transforming linearization output into a string.
+;;        The default is unwords.
+;;     -unlexer=unwords     space-separated token list (like unwords)
+;;     -unlexer=text        format as text: punctuation, capitals, paragraph <p>
+;;     -unlexer=code        format as code (spacing, indentation)
+;;     -unlexer=textlit     like text, but remove string literal quotes
+;;     -unlexer=codelit     like code, but remove string literal quotes
+;;     -unlexer=concat      remove all spaces
+;;     -unlexer=bind        like identity, but bind at "&+"
+(defvar gf-flag-unlexer-options
+  '("unwords" "text" "code" "textlit" "codelit" "concat" "bind"))
+
+;; -- *: Commands and options marked with * are not yet implemented.
+
+(defvar gf-flags-table
+  `(("filter"    . ,gf-flag-filter-options)
+    ("lang"      . ,gf-flag-lang-options)
+    ("lexer"	 . ,gf-flag-lexer-options)
+    ("optimize"  . ,gf-flag-optimize-options)
+    ("parser"    . ,gf-flag-parser-options)
+    ("printer"   . ,gf-flag-printer-options)
+    ("transform" . ,gf-flag-transform-options)
+    ("unlexer"   . ,gf-flag-unlexer-options)))
+
+;;; gf.el ends here
diff --git a/src/ui/android/.classpath b/src/ui/android/.classpath
new file mode 100644
--- /dev/null
+++ b/src/ui/android/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/src/ui/android/.project b/src/ui/android/.project
new file mode 100644
--- /dev/null
+++ b/src/ui/android/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>GF-Android</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/src/ui/android/AndroidManifest.xml b/src/ui/android/AndroidManifest.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/android/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="org.grammaticalframework.ui.android"
+      android:versionCode="1"
+      android:versionName="1.0">
+    <application android:icon="@drawable/icon" android:label="@string/app_name">
+        <activity android:name=".FridgeMagnets"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+    </application>
+    <uses-sdk android:minSdkVersion="2" />
+
+</manifest> 
diff --git a/src/ui/android/default.properties b/src/ui/android/default.properties
new file mode 100644
--- /dev/null
+++ b/src/ui/android/default.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+# 
+# This file must be checked in Version Control Systems.
+# 
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Indicates whether an apk should be generated for each density.
+split.density=false
+# Project target.
+target=android-4
diff --git a/src/ui/android/res/drawable/brushed_metal.png b/src/ui/android/res/drawable/brushed_metal.png
new file mode 100644
Binary files /dev/null and b/src/ui/android/res/drawable/brushed_metal.png differ
diff --git a/src/ui/android/res/drawable/icon.png b/src/ui/android/res/drawable/icon.png
new file mode 100644
Binary files /dev/null and b/src/ui/android/res/drawable/icon.png differ
diff --git a/src/ui/android/res/layout/main.xml b/src/ui/android/res/layout/main.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/android/res/layout/main.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	android:id="@+id/main_view"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/brushed_metal"
+    >
+	<se.fnord.android.layout.PredicateLayout
+    	android:id="@+id/magnets_sentence"
+    	android:layout_width="wrap_content" 
+   		android:layout_height="wrap_content"
+   		android:padding="5dip"/>
+
+	<View 
+		android:layout_height="8dip"
+		android:layout_width="fill_parent"
+        android:background="#FF909090"/>
+
+	<se.fnord.android.layout.PredicateLayout
+    	android:id="@+id/magnets_bag"
+    	android:layout_width="fill_parent" 
+    	android:layout_height="wrap_content"
+    	android:padding="5dip"/>
+</LinearLayout>
diff --git a/src/ui/android/res/values/strings.xml b/src/ui/android/res/values/strings.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/android/res/values/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="hello">Hello World, FridgeMagnets!</string>
+    <string name="app_name">Fridge Magnets</string>
+</resources>
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/FridgeMagnets.java b/src/ui/android/src/org/grammaticalframework/ui/android/FridgeMagnets.java
new file mode 100644
--- /dev/null
+++ b/src/ui/android/src/org/grammaticalframework/ui/android/FridgeMagnets.java
@@ -0,0 +1,151 @@
+package org.grammaticalframework.ui.android;
+
+import java.util.Arrays;
+
+import android.os.*;
+import android.app.*;
+import android.content.*;
+import android.text.*;
+import android.view.*;
+import android.view.inputmethod.*;
+import android.widget.*;
+import android.graphics.*;
+import se.fnord.android.layout.*;
+
+public class FridgeMagnets extends Activity {
+    /** Called when the activity is first created. */
+	String[] words = {"hello","buy","I","you","have","please","where",
+			          "how","go","Gothenburg","London","rakia","wine",
+			          "whisky","man","woman","boy","girl","to"};
+
+	private Controller controller = new Controller();
+	private EditText searchBox = null;
+	
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main);
+        
+        Arrays.sort(words);
+
+        refreshBagOfWords(null);
+
+        View main = findViewById(R.id.main_view);
+        main.setFocusableInTouchMode(true);
+        main.setOnKeyListener(controller);
+    }
+
+	private void applyMagnetStyles(TextView view) {
+        view.setTextColor(Color.BLACK);
+        view.setBackgroundColor(Color.WHITE);
+        view.setSingleLine(true);
+        view.setPadding(2, 2, 2, 2);
+        view.setClickable(true);
+	}
+	
+	private void refreshBagOfWords(String prefix) {
+        PredicateLayout l = (PredicateLayout) findViewById(R.id.magnets_bag);
+        
+        l.removeAllViews();
+        
+        for (int i = 0; i < words.length; i++) {
+        	if (prefix != null && !words[i].startsWith(prefix))
+        		continue;
+
+        	TextView t = new TextView(this);
+            t.setText(words[i]);
+            t.setOnTouchListener(controller);
+        	applyMagnetStyles(t);
+            l.addView(t, new PredicateLayout.LayoutParams(3, 3));
+        }		
+	}
+
+	private void addWord(String word) {
+		PredicateLayout l = (PredicateLayout) findViewById(R.id.magnets_sentence);
+		
+		TextView t = new TextView(this);
+		t.setText(word);
+		applyMagnetStyles(t);
+		l.addView(t, new PredicateLayout.LayoutParams(3, 3));
+	}
+
+    private void showSearchBox() {
+    	if (searchBox != null)
+    		return;
+    	
+		PredicateLayout l = (PredicateLayout) findViewById(R.id.magnets_sentence);
+
+		EditText edit = new EditText(this);
+		edit.setInputType(InputType.TYPE_CLASS_TEXT |
+		                  InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
+		edit.addTextChangedListener(controller);
+		edit.setOnKeyListener(controller);
+		applyMagnetStyles(edit);
+
+		l.addView(edit, new PredicateLayout.LayoutParams(
+								ViewGroup.LayoutParams.WRAP_CONTENT,
+								ViewGroup.LayoutParams.WRAP_CONTENT,
+								3, 3));
+		edit.requestFocus();
+		InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+		imm.showSoftInput(edit, 0);
+		
+		searchBox = edit;
+	}
+
+	private void hideSearchBox() {
+    	if (searchBox == null)
+    		return;
+
+		InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+		imm.hideSoftInputFromWindow(searchBox.getWindowToken(), 0);
+
+		PredicateLayout l = (PredicateLayout) findViewById(R.id.magnets_sentence);		
+		l.removeView(searchBox);
+
+		refreshBagOfWords(null);
+
+		searchBox = null;
+	}
+
+	private class Controller implements View.OnKeyListener, View.OnTouchListener, TextWatcher {
+    	
+    	@Override
+    	public boolean onKey(View view, int keyCode, KeyEvent event) {
+    		if (event.getAction() == KeyEvent.ACTION_DOWN) {    			
+    			if (searchBox == null && keyCode == KeyEvent.KEYCODE_SEARCH) {
+    				showSearchBox();
+    				return true;
+    			} else if (searchBox != null && keyCode == KeyEvent.KEYCODE_SEARCH) {
+    				hideSearchBox();
+    				return true;
+    			}
+    		}
+        	return false;
+        }
+    		
+    	@Override
+    	public boolean onTouch(View view, MotionEvent event) {
+			if (event.getAction() == MotionEvent.ACTION_UP) {
+				hideSearchBox();
+				addWord(((TextView) view).getText().toString());
+	            return true;
+			}
+            
+    		return false;
+    	}
+
+		@Override
+		public void afterTextChanged(Editable arg0) {
+		}
+
+		@Override
+		public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
+		}
+
+		@Override
+		public void onTextChanged(CharSequence text, int arg1, int arg2, int arg3) {
+			refreshBagOfWords(text.toString());
+		}
+    }
+}
diff --git a/src/ui/android/src/se/fnord/android/layout/PredicateLayout.java b/src/ui/android/src/se/fnord/android/layout/PredicateLayout.java
new file mode 100644
--- /dev/null
+++ b/src/ui/android/src/se/fnord/android/layout/PredicateLayout.java
@@ -0,0 +1,134 @@
+package se.fnord.android.layout;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * ViewGroup that arranges child views in a similar way to text, with them laid
+ * out one line at a time and "wrapping" to the next line as needed.
+ * 
+ * Code licensed under CC-by-SA
+ *  
+ * @author Henrik Gustafsson
+ * @see http://stackoverflow.com/questions/549451/line-breaking-widget-layout-for-android
+ * @license http://creativecommons.org/licenses/by-sa/2.5/
+ *
+ */
+public class PredicateLayout extends ViewGroup {
+
+    private int line_height;
+
+    public static class LayoutParams extends ViewGroup.LayoutParams {
+        public final int horizontal_spacing;
+        public final int vertical_spacing;
+
+        /**
+         * @param horizontal_spacing Pixels between items, horizontally
+         * @param vertical_spacing Pixels between items, vertically
+         */
+        public LayoutParams(int horizontal_spacing, int vertical_spacing) {
+            this(0, 0, horizontal_spacing, vertical_spacing);
+        }
+
+        /**
+         * @param width 
+         * @param height
+         * @param horizontal_spacing Pixels between items, horizontally
+         * @param vertical_spacing Pixels between items, vertically
+         */
+        public LayoutParams(int width, int height, int horizontal_spacing, int vertical_spacing) {
+            super(width, height);
+            this.horizontal_spacing = horizontal_spacing;
+            this.vertical_spacing = vertical_spacing;     
+        }
+    }
+
+    public PredicateLayout(Context context) {
+        super(context);
+    }
+
+    public PredicateLayout(Context context, AttributeSet attrs){
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        assert(MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED);
+
+        final int width = MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight();
+        int height = MeasureSpec.getSize(heightMeasureSpec) - getPaddingTop() - getPaddingBottom();
+        final int count = getChildCount();
+        int line_height = 0;
+
+        int xpos = getPaddingLeft();
+        int ypos = getPaddingTop();
+
+        for (int i = 0; i < count; i++) {
+            final View child = getChildAt(i);
+            if (child.getVisibility() != GONE) {
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                child.measure(
+                        MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST),
+                        MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST));
+
+                final int childw = child.getMeasuredWidth();
+                line_height = Math.max(line_height, child.getMeasuredHeight() + lp.vertical_spacing);
+
+                if (xpos + childw > width) {
+                    xpos = getPaddingLeft();
+                    ypos += line_height;
+                }
+
+                xpos += childw + lp.horizontal_spacing;
+            }
+        }
+        this.line_height = line_height;
+
+        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.UNSPECIFIED){
+            height = ypos + line_height;
+
+        } else if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST){
+            if (ypos + line_height < height){
+                height = ypos + line_height;
+            }
+        }
+        setMeasuredDimension(width, height);
+    }
+
+    @Override
+    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
+        return new LayoutParams(1, 1); // default of 1px spacing
+    }
+
+    @Override
+    protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
+        if (p instanceof LayoutParams)
+            return true;
+        return false;
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        final int count = getChildCount();
+        final int width = r - l;
+        int xpos = getPaddingLeft();
+        int ypos = getPaddingTop();
+
+        for (int i = 0; i < count; i++) {
+            final View child = getChildAt(i);
+            if (child.getVisibility() != GONE) {
+                final int childw = child.getMeasuredWidth();
+                final int childh = child.getMeasuredHeight();
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                if (xpos + childw > width) {
+                    xpos = getPaddingLeft();
+                    ypos += line_height;
+                }
+                child.layout(xpos, ypos, xpos + childw, ypos + childh);
+                xpos += childw + lp.horizontal_spacing;
+            }
+        }
+    }
+}
diff --git a/src/ui/gwt/.classpath b/src/ui/gwt/.classpath
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
+	<classpathentry kind="output" path="src"/>
+</classpath>
diff --git a/src/ui/gwt/.project b/src/ui/gwt/.project
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>GF-GWT</name>
+	<comment>GF-GWT project</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.google.gwt.eclipse.core.gwtNature</nature>
+	</natures>
+</projectDescription>
diff --git a/src/ui/gwt/Editor-compile b/src/ui/gwt/Editor-compile
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Editor-compile
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-2.0.4"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then 
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$GWT_CLASSPATH" com.google.gwt.dev.Compiler -war "$APPDIR/www/editor" "$@" org.grammaticalframework.ui.gwt.EditorApp;
diff --git a/src/ui/gwt/Editor-compile.bat b/src/ui/gwt/Editor-compile.bat
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Editor-compile.bat
@@ -0,0 +1,7 @@
+@echo off
+
+set APPDIR=.
+set GWT_DIR=C:\Program Files\eclipse\plugins\com.google.gwt.eclipse.sdkbundle.2.0.4_2.0.4.v201006301254\gwt-2.0.4
+set GWT_CLASSPATH=%GWT_DIR%\gwt-user.jar;%GWT_DIR%\gwt-dev.jar
+
+java %GWT_JAVA_OPTS% -Xmx256M -cp "%APPDIR%\src;%GWT_CLASSPATH%" com.google.gwt.dev.Compiler -war "%APPDIR%\www\editor" org.grammaticalframework.ui.gwt.EditorApp -style PRETTY
diff --git a/src/ui/gwt/Fridge-compile b/src/ui/gwt/Fridge-compile
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Fridge-compile
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-2.0.4"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then 
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$GWT_CLASSPATH" com.google.gwt.dev.Compiler -war "$APPDIR/www/fridge" "$@" org.grammaticalframework.ui.gwt.FridgeApp;
diff --git a/src/ui/gwt/Fridge-compile-fast b/src/ui/gwt/Fridge-compile-fast
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Fridge-compile-fast
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then 
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www" -style DETAILED "$@" se.chalmers.cs.gf.gwt.FridgeApp_IE6;
diff --git a/src/ui/gwt/Fridge-compile.bat b/src/ui/gwt/Fridge-compile.bat
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Fridge-compile.bat
@@ -0,0 +1,9 @@
+@echo off
+
+set APPDIR=.
+set GWT_DIR=c:\gwt-windows-1.5.2
+set GWT_CLASSPATH="%GWT_DIR%\gwt-user.jar;%GWT_DIR%\gwt-dev-windows.jar"
+
+set LIBS=%APPDIR%\lib\gwt-dnd-2.5.6.jar
+
+java %GWT_JAVA_OPTS% -Xmx256M -cp "%APPDIR%\src;%APPDIR%\bin;%LIBS%;%GWT_CLASSPATH%" com.google.gwt.dev.GWTCompiler -out "%APPDIR%\www\fridge" se.chalmers.cs.gf.gwt.FridgeApp
diff --git a/src/ui/gwt/Fridge-shell-external b/src/ui/gwt/Fridge-shell-external
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Fridge-shell-external
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTShell -out "$APPDIR/www" -noserver "$@" http://localhost:41296/fridge/;
diff --git a/src/ui/gwt/Morpho-compile b/src/ui/gwt/Morpho-compile
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Morpho-compile
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-2.0.4"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then 
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.Compiler -war "$APPDIR/www/morpho" "$@" org.grammaticalframework.ui.gwt.MorphoApp;
diff --git a/src/ui/gwt/Translate-compile b/src/ui/gwt/Translate-compile
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Translate-compile
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-2.0.4"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then 
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$GWT_CLASSPATH" com.google.gwt.dev.Compiler -war "$APPDIR/www/translate" "$@" org.grammaticalframework.ui.gwt.TranslateApp;
diff --git a/src/ui/gwt/Translate-compile.bat b/src/ui/gwt/Translate-compile.bat
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Translate-compile.bat
@@ -0,0 +1,9 @@
+@echo off
+
+set APPDIR=.
+set GWT_DIR=c:\gwt-windows-1.5.2
+set GWT_CLASSPATH="%GWT_DIR%\gwt-user.jar;%GWT_DIR%\gwt-dev-windows.jar"
+
+set LIBS=%APPDIR%\lib\gwt-dnd-2.5.6.jar
+
+java %GWT_JAVA_OPTS% -Xmx256M -cp "%APPDIR%\src;%APPDIR%\bin;%LIBS%;%GWT_CLASSPATH%" com.google.gwt.dev.GWTCompiler -out "%APPDIR%\www\translate" se.chalmers.cs.gf.gwt.TranslateApp
diff --git a/src/ui/gwt/Translate-shell-external b/src/ui/gwt/Translate-shell-external
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/Translate-shell-external
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+APPDIR=`dirname $0`;
+
+if [ -z "$GWT_CLASSPATH" ]; then
+  echo 'ERROR: $GWT_CLASSPATH is not set'
+  echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'
+  echo 'export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.2"'
+  echo 'export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"'
+  exit 1
+fi
+
+if [ `uname` = "Darwin" ]; then
+  GWT_JAVA_OPTS=-XstartOnFirstThread
+fi
+
+LIBS=$APPDIR/lib/gwt-dnd-2.5.6.jar
+
+java $GWT_JAVA_OPTS -Xmx256M -cp "$APPDIR/src:$APPDIR/bin:$LIBS:$GWT_CLASSPATH" com.google.gwt.dev.GWTShell -out "$APPDIR/www" -noserver "$@" http://localhost:41296/translate/;
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/EditorApp.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/EditorApp.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/EditorApp.gwt.xml
@@ -0,0 +1,27 @@
+<module>
+
+      <!-- Inherit the core Web Toolkit stuff.                        -->
+      <inherits name="com.google.gwt.user.User" />
+      <inherits name="com.google.gwt.xml.XML" />
+
+      <inherits name="org.grammaticalframework.ui.gwt.PGF" />
+
+      <!-- Inherit the default GWT style sheet.  You can change       -->
+      <!-- the theme of your GWT application by uncommenting          -->
+      <!-- any one of the following lines.                            -->
+      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
+      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
+      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
+
+      <replace-with class="org.grammaticalframework.ui.gwt.client.selection.support.InternetExplorerSelectionSupport">
+	  <when-type-is class="org.grammaticalframework.ui.gwt.client.selection.support.SelectionSupport"/>
+	  <when-property-is name="user.agent" value="ie6"/>
+      </replace-with>
+
+      <!-- Specify the app entry point class.                         -->
+      <entry-point class="org.grammaticalframework.ui.gwt.client.EditorApp" />
+    
+      <!-- Specify the application specific style sheet.              -->
+      <stylesheet src="Editor.css" />
+	
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp.gwt.xml
@@ -0,0 +1,25 @@
+<module>
+
+      <!-- Inherit the core Web Toolkit stuff.                        -->
+      <inherits name="com.google.gwt.user.User" />
+      <inherits name="com.google.gwt.xml.XML" />
+
+      <inherits name="org.grammaticalframework.ui.gwt.PGF" />
+
+      <!-- Inherit the default GWT style sheet.  You can change       -->
+      <!-- the theme of your GWT application by uncommenting          -->
+      <!-- any one of the following lines.                            -->
+      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
+      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
+      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
+
+      <!-- Other module inherits                                      -->
+
+
+      <!-- Specify the app entry point class.                         -->
+      <entry-point class="org.grammaticalframework.ui.gwt.client.FridgeApp" />
+    
+      <!-- Specify the application specific style sheet.              -->
+      <stylesheet src="Fridge.css" />
+	
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp_IE6.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp_IE6.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/FridgeApp_IE6.gwt.xml
@@ -0,0 +1,5 @@
+<module rename-to="org.grammaticalframework.ui.gwt.FridgeApp">
+  <inherits name="org.grammaticalframework.ui.gwt.FridgeApp" />
+  <set-property name="user.agent" value="ie6" />
+  <set-property name="locale" value="default" />
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/MorphoApp.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/MorphoApp.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/MorphoApp.gwt.xml
@@ -0,0 +1,20 @@
+<module>
+
+      <!-- Inherit the core Web Toolkit stuff.                        -->
+      <inherits name="com.google.gwt.user.User" />
+      <inherits name="com.google.gwt.xml.XML" />
+
+      <!-- Inherit the default GWT style sheet.  You can change       -->
+      <!-- the theme of your GWT application by uncommenting          -->
+      <!-- any one of the following lines.                            -->
+      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
+      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
+      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
+
+      <!-- Specify the app entry point class.                         -->
+      <entry-point class="org.grammaticalframework.ui.gwt.client.MorphoApp" />
+    
+      <!-- Specify the application specific style sheet.              -->
+      <stylesheet src="Morpho.css" />
+	
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/PGF.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/PGF.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/PGF.gwt.xml
@@ -0,0 +1,9 @@
+<module>
+
+      <!-- Inherit the core Web Toolkit stuff.                        -->
+      <inherits name="com.google.gwt.user.User" />
+      <inherits name="com.google.gwt.http.HTTP" />
+      <inherits name="com.google.gwt.json.JSON" />
+      <inherits name="com.google.gwt.xml.XML" />
+
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/TranslateApp.gwt.xml b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/TranslateApp.gwt.xml
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/TranslateApp.gwt.xml
@@ -0,0 +1,25 @@
+<module>
+
+      <!-- Inherit the core Web Toolkit stuff.                        -->
+      <inherits name="com.google.gwt.user.User" />
+      <inherits name="com.google.gwt.xml.XML" />
+
+      <inherits name="org.grammaticalframework.ui.gwt.PGF" />
+
+      <!-- Inherit the default GWT style sheet.  You can change       -->
+      <!-- the theme of your GWT application by uncommenting          -->
+      <!-- any one of the following lines.                            -->
+      <inherits name="com.google.gwt.user.theme.standard.Standard"/>
+      <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> -->
+      <!-- <inherits name="com.google.gwt.user.theme.dark.Dark"/>     -->
+
+      <!-- Other module inherits                                      -->
+
+
+      <!-- Specify the app entry point class.                         -->
+      <entry-point class="org.grammaticalframework.ui.gwt.client.TranslateApp" />
+    
+      <!-- Specify the application specific style sheet.              -->
+      <stylesheet src="Translate.css" />
+	
+</module>
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/BrowsePanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/BrowsePanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/BrowsePanel.java
@@ -0,0 +1,269 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.HistoryListener;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.http.client.*;
+import com.google.gwt.xml.client.*;
+import com.google.gwt.event.logical.shared.*;
+
+public class BrowsePanel extends Composite {
+
+	private PGFWrapper pgf;
+	private StatusPopup statusPopup;
+	private HTML sourceView;
+	private SuggestBox searchBox;
+	private CompletionOracle oracle;
+	private List<String> identifiers = null;
+
+	public BrowsePanel(PGFWrapper pgf, StatusPopup statusPopup) {
+		this.pgf = pgf;
+		this.statusPopup = statusPopup;
+
+		oracle = new CompletionOracle();
+
+		HorizontalPanel browsePanel = new HorizontalPanel();
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.add(createSearchPanel(oracle));
+		vPanel.add(createTreeView());
+		browsePanel.add(vPanel);
+		browsePanel.add(createSourcePanel());
+		browsePanel.setCellWidth(sourceView,"100%");
+
+		initWidget(browsePanel);
+		setStylePrimaryName("my-BrowsePanel");
+
+		pgf.addSettingsListener(new MySettingsListener(pgf));
+	}
+
+	public native void onActivate() /*-{
+		$doc.browsePanel = this;
+		$doc.callBrowse = @org.grammaticalframework.ui.gwt.client.BrowsePanel::callBrowse(Lorg/grammaticalframework/ui/gwt/client/BrowsePanel;Ljava/lang/String;);
+	 }-*/;
+
+	protected Widget createSearchPanel(CompletionOracle oracle) {
+		searchBox = new SuggestBox(oracle);
+		searchBox.setLimit(10);
+		searchBox.addKeyboardListener(new KeyboardListenerAdapter() {
+			public void onKeyUp (Widget sender, char keyCode, int modifiers) {
+				if (keyCode == KEY_ENTER) {
+					callBrowse(BrowsePanel.this,searchBox.getText());
+				}
+			}
+		});
+
+		DecoratorPanel decorator = new DecoratorPanel();
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.add(new Label("Search"));
+		vPanel.add(searchBox);
+		decorator.add(vPanel);
+		return decorator;
+	}
+
+	private static void callBrowse(BrowsePanel panel, String id) {
+		panel.browse(id);
+		History.newItem("browse:"+id, false);
+	}
+
+	public void browse(final String id) {
+		if (id == null || id.equals("")) {
+			sourceView.setHTML("");
+			return;
+		}
+		
+		pgf.browse(id, "javascript:document.callBrowse(document.browsePanel,'$ID')",
+                               "my-identifierLink",
+                               new RequestCallback() {
+			public void onResponseReceived(Request request, Response response) {
+				sourceView.setHTML(response.getText());
+			}
+
+			public void onError(Request request, java.lang.Throwable e) {
+				statusPopup.showError("Cannot load the page", e);
+			}
+		});
+	}
+	
+	protected Widget createTreeView() {
+		hierarchyTree = new Tree();
+		hierarchyTree.addSelectionHandler(new SelectionHandler<TreeItem>() {
+			public void onSelection(SelectionEvent<TreeItem> event) {
+				TreeItem item = event.getSelectedItem();
+				callBrowse(BrowsePanel.this,item.getText());
+			}
+		});
+		return hierarchyTree;
+	}
+
+	protected Widget createSourcePanel() {
+		sourceView = new HTML();
+		sourceView.setStylePrimaryName("source");
+		return sourceView;
+	}
+
+	protected class CompletionOracle extends SuggestOracle {
+
+		public CompletionOracle() {
+		}
+
+		public void requestSuggestions(SuggestOracle.Request request, SuggestOracle.Callback callback) {
+			List<CompletionSuggestion> list = new ArrayList();
+			
+			int index = Collections.binarySearch(identifiers, request.getQuery());
+			index = (index >= 0) ? index : -(index+1);
+
+			for (; index < identifiers.size(); index++) {
+				String id = identifiers.get(index);
+
+				if (id.startsWith(request.getQuery())) {
+					list.add(new CompletionSuggestion(id));
+				}
+				else
+				  break;
+
+				if (list.size() > request.getLimit())
+					break;
+			}
+
+			callback.onSuggestionsReady(request, new SuggestOracle.Response(list));
+		}
+	}
+
+	protected static class CompletionSuggestion implements SuggestOracle.Suggestion {
+		private String string;
+
+		public CompletionSuggestion(String string) {
+			this.string = string;
+		}
+
+		public String getDisplayString() {
+			return string;
+		}
+
+		public String getReplacementString() {
+			return string;
+		}
+	}
+
+	Tree hierarchyTree = null;
+	
+	protected void reloadHierarchyTree() {
+		hierarchyTree.clear();
+		
+		final String url = pgf.getGrammarURL()+".xml";
+		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
+		try
+		{
+			builder.sendRequest(null, new RequestCallback() {
+				public void onResponseReceived(Request request, Response response)
+				{
+					if (200 == response.getStatusCode())
+					{
+						try
+						{
+							Document browseDoc = XMLParser.parse(response.getText());
+
+							TreeLoader loader = new TreeLoader();
+
+							Element element = browseDoc.getDocumentElement();
+							NodeList children = element.getChildNodes();
+							for (int i = 0; i < children.getLength(); i++) {
+								Node node = children.item(i);
+								if (node instanceof Element) {
+									Element childElement = (Element) node;
+									TreeItem childItem = hierarchyTree.addItem(childElement.getAttribute("name"));
+									loader.push(childElement, childItem);
+								}
+							}
+							
+							loader.execute();
+						}
+						catch (DOMException e)
+						{
+						}
+					}
+					else
+					{
+					}
+				}
+
+				public void onError(Request request, Throwable e)
+				{
+				}
+			});
+		}
+		catch (RequestException e)
+		{
+		}
+	}
+
+	private class TreeLoader implements Command {
+		private int count = 0;
+		private ArrayList<Element> elements = new ArrayList<Element>();
+		private ArrayList<TreeItem> items = new ArrayList<TreeItem>();
+										
+		public void execute() {
+			for (int n = 0; n < 100; n++) {
+				if (count <= 0)
+					return;
+
+				int index = --count;
+				Element element = (Element) elements.remove(index);
+				TreeItem item = (TreeItem) items.remove(index);
+
+				NodeList children = element.getChildNodes();
+				for (int i = 0; i < children.getLength(); i++) {
+					Node node = children.item(i);
+					if (node instanceof Element) {
+						Element childElement = (Element) node;
+						TreeItem childItem = item.addItem(childElement.getAttribute("name"));
+						push(childElement, childItem);
+					}
+				}
+			}
+			DeferredCommand.addCommand(this);
+		}
+					
+		public final void push(Element element, TreeItem item) {
+			elements.add(element);
+			items.add(item);
+			count++;
+		}
+	}
+
+	protected class MySettingsListener implements PGFWrapper.SettingsListener {
+
+		private PGFWrapper pgf;
+
+		public MySettingsListener(PGFWrapper pgf) {
+			this.pgf = pgf;
+		}
+
+		public void onAvailableGrammarsChanged() { }
+		public void onSelectedGrammarChanged()
+		{
+			List<String> ids = new ArrayList();
+
+			for (int i = 0; i < pgf.getCategories().length(); i++) {
+				ids.add(pgf.getCategories().get(i));
+			}
+			for (int i = 0; i < pgf.getFunctions().length(); i++) {
+				ids.add(pgf.getFunctions().get(i));
+			}
+
+			Collections.sort(ids);
+
+			identifiers = ids;
+			sourceView.setText("");
+			searchBox.setText("");
+			reloadHierarchyTree();
+		}
+		public void onInputLanguageChanged() { }
+		public void onOutputLanguageChanged() {	}
+		public void onStartCategoryChanged() { }
+		public void onSettingsError(String msg, Throwable e) { }
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java
@@ -0,0 +1,152 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import com.google.gwt.user.client.ui.SuggestOracle;
+
+public class CompletionOracle extends SuggestOracle {
+
+	private static final int LIMIT_SCALE_FACTOR = 4;
+
+	private PGFWrapper pgf;
+
+	private ErrorHandler errorHandler;
+
+	private JSONRequest jsonRequest = null;
+
+	private String oldQuery = null;
+
+	private List<CompletionSuggestion> oldSuggestions = Collections.emptyList();
+
+
+	public CompletionOracle (PGFWrapper pgf) {
+		this(pgf, null);
+	}
+
+	public CompletionOracle (PGFWrapper pgf, ErrorHandler errorHandler) {
+		this.pgf = pgf;
+		this.errorHandler = errorHandler;
+		pgf.addSettingsListener(new PGFWrapper.SettingsListener() {
+			public void onAvailableGrammarsChanged() { clearState(); }
+			public void onSelectedGrammarChanged() { clearState(); }
+			public void onInputLanguageChanged() { clearState(); }
+			public void onOutputLanguageChanged() { clearState(); }
+			public void onStartCategoryChanged() { clearState(); }
+			public void onSettingsError(String msg, Throwable e) { clearState(); }
+		});
+	}
+
+	private void clearState () {
+		this.oldQuery = null;
+		this.oldSuggestions = Collections.emptyList();
+		if (jsonRequest != null) {
+			jsonRequest.cancel();
+			jsonRequest = null;
+		}
+	}
+
+	public void setErrorHandler(ErrorHandler errorHandler) {
+		this.errorHandler = errorHandler;
+	}
+
+	public static interface ErrorHandler {
+		public void onError(Throwable e);
+	}
+
+	public static class CompletionSuggestion implements SuggestOracle.Suggestion {
+		private String string;
+		public CompletionSuggestion(String string) {
+			this.string = string;
+		}
+
+		public String getDisplayString() {
+			return string;
+		}
+
+		public String getReplacementString() {
+			return string;
+		}
+	}
+
+	public void requestSuggestions(SuggestOracle.Request request, SuggestOracle.Callback callback) {
+		// Only allow a single completion request at a time
+		if (jsonRequest != null) {
+			jsonRequest.cancel();
+			jsonRequest = null;
+		}
+
+		List<CompletionSuggestion> suggestions = filterOldSuggestions(request);
+		if (suggestions != null) {
+			suggestionsReady(request, callback, suggestions);
+		} else {
+			retrieveSuggestions(request, callback);
+		}
+	}
+
+	/** Filters old suggestions and checks if we still have enough suggestions. */
+	private List<CompletionSuggestion> filterOldSuggestions(SuggestOracle.Request request) {
+		String query = request.getQuery();		
+		if (query.length() > 0 && oldQuery != null && query.startsWith(oldQuery)) {
+			// If the prefix had no completions, there is no way that the current input will.
+			if (oldSuggestions.isEmpty()) {
+				return Collections.emptyList();
+			}
+			// If the new input since the previous query ends in whitespace,
+			// always get completions from the server,
+			// since the old suggestions won't include the next word.
+			if (query.indexOf(' ', oldQuery.length()) != -1) {
+				return null;
+			}
+			List<CompletionSuggestion> suggestions = new ArrayList<CompletionSuggestion>();
+			for (CompletionSuggestion c : oldSuggestions) {
+				if (c.getReplacementString().startsWith(query)) {
+					suggestions.add(c);
+				}
+			}			
+			if (suggestions.size() >= request.getLimit() || oldSuggestions.size() < request.getLimit()) {
+				return suggestions;
+			}
+		}
+		return null;
+	}
+
+	private void retrieveSuggestions(final SuggestOracle.Request request, final SuggestOracle.Callback callback) {
+		// hack: first report no completions, to hide suggestions until we get the new completions
+		callback.onSuggestionsReady(request, new SuggestOracle.Response(Collections.<CompletionSuggestion>emptyList()));
+
+		jsonRequest = pgf.complete(request.getQuery(), LIMIT_SCALE_FACTOR * request.getLimit(), 
+				new PGF.CompleteCallback() {
+			public void onResult(IterableJsArray<PGF.Completion> completions) {
+				jsonRequest = null;
+				List<CompletionSuggestion> suggestions = new ArrayList<CompletionSuggestion>();
+				for (PGF.Completion completion : completions.iterable()) {
+                    String text = completion.getBracketedString().render();
+                    for (String tokn : completion.getCompletions()) {
+                        StringBuilder sbuilder = new StringBuilder();
+                        sbuilder.append(text);
+                        if (sbuilder.length() > 0)
+                            sbuilder.append(' ');
+                        sbuilder.append(tokn);
+                        suggestions.add(new CompletionSuggestion(sbuilder.toString()));
+                    }
+				}
+				suggestionsReady(request, callback, suggestions);
+			}
+
+			public void onError(Throwable e) {
+				errorHandler.onError(e);
+			}
+
+		});
+	}
+
+	private void suggestionsReady(SuggestOracle.Request request, SuggestOracle.Callback callback, List<CompletionSuggestion> suggestions) {
+		this.oldQuery = request.getQuery();
+		this.oldSuggestions = suggestions;
+		suggestions = suggestions.size() <= request.getLimit() ? suggestions : SubList.makeSubList(suggestions, 0, request.getLimit());
+		callback.onSuggestionsReady(request, new SuggestOracle.Response(suggestions));
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/ContentService.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/ContentService.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/ContentService.java
@@ -0,0 +1,77 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import org.grammaticalframework.ui.gwt.client.JSONRequestBuilder.Arg;
+
+import java.util.*;
+import com.google.gwt.core.client.*;
+
+public class ContentService {
+	String contentBaseURL;
+	
+	public ContentService(String contentBaseURL) {
+		this.contentBaseURL = contentBaseURL;
+	}
+	
+	public String getBaseURL() {
+		return contentBaseURL;
+	}
+
+	public JSONRequest save(Object id, String content, SaveCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		if (id != null)
+		  args.add(new Arg("id", id.toString()));
+		args.add(new Arg("command", "save"));
+		return JSONRequestBuilder.sendDataRequest(contentBaseURL, args, content, callback);
+	}
+
+	public interface SaveCallback extends JSONCallback<DocumentSignature> {}
+
+	public JSONRequest load(Object id, LoadCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "load"));
+		args.add(new Arg("id", id.toString()));
+		return JSONRequestBuilder.sendRequest(contentBaseURL, args, callback);
+	}
+
+	public interface LoadCallback extends JSONCallback<Document> {}
+		
+	public JSONRequest search(String fullTextQuery, SearchCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "search"));
+		args.add(new Arg("query", fullTextQuery));
+		return JSONRequestBuilder.sendRequest(contentBaseURL, args, callback);
+	}
+	
+	public interface SearchCallback extends JSONCallback<IterableJsArray<DocumentSignature>> {}
+	
+	public static class DocumentSignature extends JavaScriptObject {
+		protected DocumentSignature() { }
+
+		public final native int getId() /*-{ return this.id; }-*/;
+		public final native String getTitle() /*-{ return this.title; }-*/;
+		public final native String getCreated() /*-{ return this.created; }-*/;
+		public final native String getModified() /*-{ return this.modified; }-*/;
+	}
+	
+	public static class Document extends DocumentSignature {
+		protected Document() { }
+		
+		public final native String getContent() /*-{ return this.content; }-*/;
+	}
+	
+	public JSONRequest delete(List ids, DeleteCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "delete"));
+		for (Object id : ids) {
+			args.add(new Arg("id", id.toString()));
+		}
+		return JSONRequestBuilder.sendRequest(contentBaseURL, args, callback);
+	}
+	
+	public interface DeleteCallback extends JSONCallback<DeleteResult> {}
+	
+	public static class DeleteResult extends JavaScriptObject {
+		protected DeleteResult() { }
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java
@@ -0,0 +1,142 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.http.client.*;
+import com.google.gwt.xml.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.shared.*;
+
+public class DocumentsPanel extends Composite implements HasSelectionHandlers<Object> {
+
+	private PGFWrapper pgf;
+	private ContentService contentService;
+	private StatusPopup statusPopup;
+	private FlexTable table;
+	private ArrayList documentIds = new ArrayList();
+
+	public DocumentsPanel(PGFWrapper pgf, ContentService contentService, StatusPopup statusPopup) {
+		this.pgf = pgf;
+		this.contentService = contentService;
+		this.statusPopup = statusPopup;
+
+		VerticalPanel documentsPanel = new VerticalPanel();
+		documentsPanel.setStylePrimaryName("my-DocumentsFrame");
+
+		HorizontalPanel searchPanel = new HorizontalPanel();
+		searchPanel.setStylePrimaryName("my-DocumentsSearchFrame");
+		final TextBox searchBox = new TextBox();
+		searchBox.setWidth("20em");
+		final Button  searchBtn = new Button("Search");
+		searchPanel.add(searchBox);
+		searchPanel.add(searchBtn);
+		documentsPanel.add(searchPanel);
+
+		Image deleteButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/trash-button.png");
+		deleteButton.setTitle("Deletes the selected documents.");
+		deleteButton.setStylePrimaryName("toolbar-button");
+		deleteButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				deleteSelected();
+			}
+		});
+
+		FlexTable header = new FlexTable();
+		header.setStylePrimaryName("my-DocumentsHeader");
+		header.setText(0,0,"Documents");
+		header.setWidget(0,1,deleteButton);
+		header.getColumnFormatter().setWidth(1,"20px");
+		documentsPanel.add(header);
+		
+		table = new FlexTable();
+		table.setCellPadding(2);
+		table.setStylePrimaryName("my-DocumentsTable");
+		table.getColumnFormatter().setWidth(1,"80em");
+		table.getColumnFormatter().setWidth(2,"80em");
+		documentsPanel.add(table);
+		
+		searchBtn.addClickHandler(new ClickHandler() {
+			public void onClick(ClickEvent event) {
+				searchDocuments(searchBox.getText());
+			}
+		});
+		table.addClickHandler(new ClickHandler() {
+			public void onClick(ClickEvent event) {
+				HTMLTable.Cell cell = table.getCellForEvent(event);
+				if (cell != null) {
+					int row = cell.getRowIndex();
+					selectDocument(row);
+				}
+			}
+		});
+
+		initWidget(documentsPanel);
+		setStylePrimaryName("my-DocumentsPanel");
+	}
+
+	public HandlerRegistration addSelectionHandler(SelectionHandler<Object> handler) {
+		return addHandler(handler, SelectionEvent.getType());
+	}
+		
+	protected void selectDocument(int row) {
+		SelectionEvent.fire(this, documentIds.get(row));
+	}
+	
+	protected void searchDocuments(String fullTextQuery) {
+		statusPopup.setStatus("Searching...");
+		
+		documentIds.clear();
+		while (table.getRowCount() > 0)
+			table.removeRow(0);
+		
+		contentService.search(fullTextQuery, new ContentService.SearchCallback() {
+			public void onResult(IterableJsArray<ContentService.DocumentSignature> documents) {
+				for (ContentService.DocumentSignature sign : documents.iterable()) {
+					int row = table.getRowCount();
+					table.setWidget(row, 0, new CheckBox(sign.getTitle()));
+					table.setText(row, 1, sign.getCreated());
+					table.setText(row, 2, sign.getModified());
+					table.getRowFormatter().addStyleName(row, "row");
+					documentIds.add(sign.getId());
+				}
+				
+				statusPopup.clearStatus();
+			}
+
+			public void onError(Throwable e) {
+				statusPopup.showError("Search failed", e);
+			}
+		});
+	}
+	
+	protected void deleteSelected() {
+		statusPopup.setStatus("Deleting...");
+		
+		final ArrayList ids  = new ArrayList();
+		final ArrayList<Integer> rows = new ArrayList<Integer>();
+		for (int row = 0; row < table.getRowCount(); row++) {
+			CheckBox checkBox = (CheckBox) table.getWidget(row,0);
+			if (checkBox.isChecked()) {
+				ids.add(documentIds.get(row));
+				rows.add(new Integer(row));
+			}
+		}
+		
+		contentService.delete(ids, new ContentService.DeleteCallback() {
+			public void onResult(ContentService.DeleteResult result) {
+				for (Integer row : rows) {
+					table.removeRow(row.intValue());
+				}
+				
+				statusPopup.clearStatus();
+			}
+
+			public void onError(Throwable e) {
+				statusPopup.showError("Delete failed", e);
+			}
+		});
+		
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java
@@ -0,0 +1,474 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.shared.*;
+
+public class EditorApp implements EntryPoint {
+
+	protected static final String pgfBaseURL = "/grammars";
+	protected static final String contentBaseURL = "/grammars.content";
+
+	protected ContentService contentService;
+	protected PGFWrapper pgf;
+
+	protected VerticalPanel outputPanel;
+	protected Widget editorPanel;
+	protected BrowsePanel browsePanel;
+	protected QueryPanel queryPanel;
+	protected DocumentsPanel documentsPanel;
+	protected GrammarsPanel grammarsPanel;
+	protected StatusPopup statusPopup;
+	protected TextInputPanel textPanel;
+	protected FridgeBagPanel bagPanel;
+	protected MagnetFactory magnetFactory;
+	protected TabBar tabBar;
+
+	private JSONRequest completeRequest = null;
+	private JSONRequest translateRequest = null;
+
+	private int maxMagnets = 100;
+	private static final int LIMIT_SCALE_FACTOR = 4;
+	
+	private String cachedPrefix = null;
+	private List<Magnet> cachedMagnets = Collections.emptyList();
+
+	//
+	// Update
+	//
+	protected void update() {
+		clearMagnetCache();
+		updateBag("");
+		updateTranslation();
+	}
+	
+	protected void clearMagnetCache() {
+		cachedPrefix = null;
+		cachedMagnets = Collections.emptyList();
+	}
+
+	protected void updateTranslation() {
+		if (translateRequest != null) {
+			translateRequest.cancel();
+		}
+
+		outputPanel.clear();
+		outputPanel.addStyleDependentName("working");
+		translateRequest = pgf.translate(textPanel.getText(),
+				new PGF.TranslateCallback() {
+			public void onResult (IterableJsArray<PGF.TranslationResult> translations) {
+				translateRequest = null;
+
+				outputPanel.clear();
+				outputPanel.removeStyleDependentName("working");
+				for (PGF.TranslationResult tr : translations.iterable()) {
+					textPanel.renderBracketedString(tr.getBracketedString());
+
+					if (tr.getTranslations() != null)
+						for (PGF.Linearizations lins : tr.getTranslations().iterable()) {
+							LinearizationsPanel lin = new LinearizationsPanel(pgf, lins);
+							lin.setWidth("100%");
+							outputPanel.add(lin);
+						}
+
+					if (tr.getTypeErrors() != null && tr.getTypeErrors().length > 0) {
+						for (PGF.TcError error : tr.getTypeErrors()) {
+							VerticalPanel panel = new VerticalPanel();
+							panel.addStyleName("my-typeError");
+							Label errLabel = new Label("Type Error");
+							errLabel.addStyleName("title");
+							panel.add(errLabel);
+							panel.add(createErrorMsg(error));
+							outputPanel.add(panel);
+						}
+						textPanel.showError(tr.getTypeErrors()[0].getFId());
+					}
+				}
+			}
+			public void onError (Throwable e) {
+				translateRequest = null;
+
+				statusPopup.showError("Translation failed", e);
+			}
+		});
+	}
+	
+	private class Callback {
+		private String prefix;
+		
+		public Callback(String prefix) {
+			this.prefix = prefix;
+		}
+		
+		public void onResult(List<Magnet> magnets) {
+			bagPanel.fill(magnets);
+
+			if (magnets.size() == 0) {
+				if (prefix.isEmpty()) {
+					textPanel.hideSearchBox();
+					textPanel.setFocus(true);
+				}
+				else
+					textPanel.showSearchError();
+			} else {
+				textPanel.clearSearchError();
+			}
+		}
+	}
+
+	public void updateBag(String prefix) {
+		Callback callback = new Callback(prefix);
+		List<Magnet> magnets = filterCachedMagnets(prefix);
+		if (magnets != null)
+			callback.onResult(magnets);
+		else
+			retrieveMagnets(prefix, callback);
+	}
+
+	public List<Magnet> filterCachedMagnets(final String prefix) {
+		if (prefix.length() > 0 && cachedPrefix != null && prefix.startsWith(cachedPrefix)) {
+			// If the prefix had no completions, there is no way that the current input will.
+			if (cachedMagnets.isEmpty()) {
+				return Collections.emptyList();
+			}
+
+			List<Magnet> magnets = new ArrayList<Magnet>();
+			for (Magnet magnet : cachedMagnets) {
+				if (magnet.getWord().startsWith(prefix)) {
+					magnets.add(magnet);
+					if (magnets.size() >= maxMagnets)
+						return magnets;
+				}
+			}
+		}
+		return null;
+	}
+
+	public void retrieveMagnets(final String prefix, final Callback callback) {
+		final String query = textPanel.getText() + " " + prefix;
+		
+		if (completeRequest != null) {
+			completeRequest.cancel();
+		}
+
+		bagPanel.clear();
+		completeRequest = pgf.complete(query, LIMIT_SCALE_FACTOR * maxMagnets,
+					 new PGF.CompleteCallback() {
+			public void onResult(IterableJsArray<PGF.Completion> completions) {
+				completeRequest = null;
+
+				cachedPrefix = query;
+				cachedMagnets = new ArrayList<Magnet>();
+
+				for (PGF.Completion completion : completions.iterable()) {
+					textPanel.renderBracketedString(completion.getBracketedString());
+					if (completion.getCompletions() != null) {
+						if (completion.getText() != prefix)
+							textPanel.setSearchTerm(completion.getText());
+
+						for (String word : completion.getCompletions()) {
+							Magnet magnet = magnetFactory.createMagnet(word, completion.getFrom());
+							cachedMagnets.add(magnet);
+						}
+					} else {
+						textPanel.setSearchTerm(completion.getText());
+					}
+				}
+
+				List<Magnet> magnets = new ArrayList<Magnet>();
+				for (Magnet magnet : cachedMagnets) {
+					magnets.add(magnet);
+					if (magnets.size() >= maxMagnets)
+						break;
+				}				
+				callback.onResult(magnets);
+			}
+
+			public void onError(Throwable e) {
+				completeRequest = null;
+
+				statusPopup.showError("Getting completions failed", e);
+			}
+		});
+	}
+
+	//
+	// GUI
+	//
+
+	protected Widget createUI() {
+		editorPanel = createEditorPanel();
+		browsePanel = createBrowsePanel();
+		queryPanel = createQueryPanel();
+		documentsPanel = createDocumentsPanel();
+		grammarsPanel = createGrammarsPanel();
+
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.setWidth("100%");
+		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+
+		HorizontalPanel hPanel = new HorizontalPanel();
+		hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+		hPanel.setStylePrimaryName("my-HeaderPanel");
+
+		TabBar linksPanel = createLinksPanel(vPanel);
+		hPanel.add(linksPanel);
+		hPanel.setCellHorizontalAlignment(linksPanel,HorizontalPanel.ALIGN_LEFT);
+		linksPanel.selectTab(1);
+
+		Widget settingsPanel = createSettingsPanel();
+		hPanel.add(settingsPanel);
+		hPanel.setCellHorizontalAlignment(settingsPanel,HorizontalPanel.ALIGN_RIGHT);
+
+		vPanel.add(hPanel);
+		vPanel.add(editorPanel);
+
+		return vPanel;
+	}
+
+	protected Widget createSettingsPanel () {
+		return new SettingsPanel(pgf);
+	}
+
+	protected Widget createEditorPanel() {
+		textPanel = new TextInputPanel(contentService, statusPopup);
+		textPanel.addValueChangeHandler(new ValueChangeHandler<String>() {
+			public void onValueChange(ValueChangeEvent<String> event) {
+				update();
+			}
+		});
+		textPanel.addSelectionHandler(new SelectionHandler<String>() {
+			public void onSelection(SelectionEvent<String> event) {
+				String prefix = event.getSelectedItem();
+				char lastChar = prefix.charAt(prefix.length()-1);
+
+				Iterator<Magnet> iter = bagPanel.iterator();
+				if ((Character.isSpace(lastChar) || lastChar == 160) && iter.hasNext()) {
+					Magnet magnet = iter.next();
+					textPanel.setSearchTerm("");
+					textPanel.addMagnet(magnet);
+				}
+				else
+					updateBag(prefix);
+			}
+		});
+
+		final ClickListener magnetClickListener = new ClickListener () {
+			public void onClick(Widget widget) {
+				Magnet magnet = (Magnet)widget;
+				textPanel.hideSearchBox();
+				textPanel.addMagnet(magnet);
+				textPanel.setFocus(true);
+			}
+		};
+		magnetFactory = new MagnetFactory(magnetClickListener);
+
+		bagPanel = new FridgeBagPanel();
+
+		outputPanel = new VerticalPanel();
+		outputPanel.addStyleName("my-translations");
+
+		final DockPanel editorPanel = new DockPanel();
+		editorPanel.setStyleName("my-EditorPanel");
+		editorPanel.add(textPanel, DockPanel.NORTH);
+		editorPanel.add(bagPanel, DockPanel.CENTER);
+		editorPanel.add(outputPanel, DockPanel.EAST);
+
+		editorPanel.setCellHeight(bagPanel, "100%");
+		editorPanel.setCellWidth(bagPanel, "70%");
+		editorPanel.setCellHeight(outputPanel, "100%");
+		editorPanel.setCellWidth(outputPanel, "30%");
+		editorPanel.setCellVerticalAlignment(bagPanel, HasVerticalAlignment.ALIGN_TOP);
+		editorPanel.setCellHorizontalAlignment(outputPanel, HasHorizontalAlignment.ALIGN_RIGHT);
+
+		Window.addWindowResizeListener(new WindowResizeListener() {
+			public void onWindowResized(int w, int h) {
+				editorPanel.setPixelSize(w-20, h-50);
+			}
+		});
+		int w = Window.getClientWidth();
+		int h = Window.getClientHeight();
+		editorPanel.setPixelSize(w-20, h-50);
+
+		return editorPanel;
+	}
+
+	protected BrowsePanel createBrowsePanel() {
+		return new BrowsePanel(pgf, statusPopup);
+	}
+
+	protected QueryPanel createQueryPanel() {
+		return new QueryPanel(pgf, statusPopup);
+	}
+
+	protected DocumentsPanel createDocumentsPanel() {
+		DocumentsPanel panel = new DocumentsPanel(pgf, contentService, statusPopup);
+		panel.addSelectionHandler(new SelectionHandler<Object>() {
+			public void onSelection(SelectionEvent<Object> event) {
+				tabBar.selectTab(1);
+				textPanel.load(event.getSelectedItem());
+			}
+		});
+		return panel;
+	}
+
+	protected GrammarsPanel createGrammarsPanel() {
+		return new GrammarsPanel(pgf, contentService, statusPopup);
+	}
+
+	protected TabBar createLinksPanel(final Panel parent) {
+		tabBar = new TabBar();
+		tabBar.setStylePrimaryName("my-LinksPanel");
+		tabBar.addTab("Documents");
+		tabBar.addTab("Editor");
+		tabBar.addTab("Query");
+		tabBar.addTab("Browse");
+		tabBar.addTab("Grammars");
+		
+		NavigationHandler handler = new NavigationHandler(tabBar, parent);
+		tabBar.addSelectionHandler(handler);
+		History.addHistoryListener(handler);
+
+		return tabBar;
+	}
+
+	//
+	// History stuff
+	//
+
+	protected class NavigationHandler implements HistoryListener, SelectionHandler<Integer> {
+		private final TabBar linksPanel;
+		private final Panel parent;
+		private int level = 0;
+
+		public NavigationHandler(TabBar linksPanel, Panel parent) {
+			this.linksPanel = linksPanel;
+			this.parent = parent;
+		}
+
+		public void onSelection(SelectionEvent<Integer> event) {
+			parent.remove(documentsPanel);
+			parent.remove(editorPanel);
+			parent.remove(queryPanel);
+			parent.remove(browsePanel);
+			parent.remove(grammarsPanel);
+
+			switch (event.getSelectedItem().intValue()) {
+				case 0: parent.add(documentsPanel); 
+				        if (level == 0) History.newItem("documents", false);
+				        break;
+				case 1: parent.add(editorPanel);
+					if (level == 0) History.newItem("editor", false);
+					break;
+				case 2: parent.add(queryPanel);
+					if (level == 0) History.newItem("query", false);
+					break;
+				case 3: parent.add(browsePanel);
+					if (level == 0) History.newItem("browse", false);
+					break;
+				case 4: parent.add(grammarsPanel);
+					if (level == 0) History.newItem("grammars", false);
+					break;
+			}
+		}
+
+		public void onHistoryChanged(String token) {
+			level++;
+			
+			if (token.equals("documents")) {
+				linksPanel.selectTab(0);
+			} else if (token.equals("editor")) {
+				linksPanel.selectTab(1);
+			} else if (token.equals("query")) {
+				linksPanel.selectTab(2);
+			} else if (token.equals("browse")) {
+				linksPanel.selectTab(3);
+				browsePanel.onActivate();
+				browsePanel.browse(null);
+			} else if (token.startsWith("browse:")) {
+				linksPanel.selectTab(3);
+				browsePanel.browse(token.substring(7));
+			} else if (token.equals("grammars")) {
+				linksPanel.selectTab(4);
+			}
+			
+			level--;
+		}
+	};
+
+	protected Widget createErrorMsg(final PGF.TcError error) {
+		HTML msgHTML = new HTML("<pre>"+error.getMsg()+"</pre>");
+		msgHTML.addStyleName("content");
+		msgHTML.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+				textPanel.showError(error.getFId());
+			}
+		});
+		return msgHTML;
+	}
+
+	protected void setPGFName (String pgfName) {
+		if (pgfName != null && !pgfName.equals(pgf.getPGFName())) {
+			pgf.setPGFName(pgfName);
+		}
+	}
+
+	protected void setInputLanguage (String inputLanguage) {
+		if (inputLanguage != null && !inputLanguage.equals(pgf.getInputLanguage())) {
+			pgf.setInputLanguage(inputLanguage);
+		}
+	}
+
+	//
+	// Initialization
+	//
+
+	protected class MySettingsListener implements PGFWrapper.SettingsListener {
+		// Will only happen on load
+		public void onAvailableGrammarsChanged() {
+			if (pgf.getPGFName() == null) {
+				List<String> grammars = pgf.getGrammars();
+				if (!grammars.isEmpty()) {
+					pgf.setPGFName(grammars.get(0));
+				}
+			}
+		}
+		public void onSelectedGrammarChanged() {
+			textPanel.clear();
+			if (pgf.getInputLanguage() == null) {
+				GWT.log("Setting input language to user language: " + pgf.getUserLanguage(), null);
+				pgf.setInputLanguage(pgf.getUserLanguage());
+			}
+			update();
+		}
+		public void onInputLanguageChanged() {
+			update();
+		}
+		public void onOutputLanguageChanged() {
+			update();
+		}
+		public void onStartCategoryChanged() {
+			update();
+		}
+		public void onSettingsError(String msg, Throwable e) {
+			statusPopup.showError(msg,e);
+		}
+	}
+
+	public void onModuleLoad() {
+		statusPopup = new StatusPopup();
+
+		pgf = new PGFWrapper(pgfBaseURL);
+		contentService = new ContentService(contentBaseURL);
+		RootPanel.get().add(createUI());
+		pgf.addSettingsListener(new MySettingsListener());
+		pgf.updateAvailableGrammars();
+
+		textPanel.setFocus(true);
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java
@@ -0,0 +1,338 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+
+
+public class FridgeApp implements EntryPoint {
+
+	protected static final String pgfBaseURL = "/grammars";
+
+	protected PGFWrapper pgf;
+
+	protected JSONRequest completeRequest = null;
+	protected JSONRequest translateRequest = null;
+
+	private FridgeBagPanel bagPanel;
+	private FridgeTextPanel textPanel;
+	protected VerticalPanel outputPanel;
+	protected StatusPopup statusPopup;
+
+	private FlowPanel prefixPanel;
+	private LinkedHashSet<String> prefixes = new LinkedHashSet<String>();
+
+	private int maxMagnets = 100;
+
+	private MagnetFactory magnetFactory;
+
+	//
+	// Text
+	//
+
+	protected void update () {
+		updateBag(getText());
+		translate();
+	}
+
+	public void updateBag (String text) {
+		updateBag(text, "");
+	}
+
+	public void updateBag (final String text, String prefix) {
+		if (completeRequest != null) {
+			completeRequest.cancel();
+		}
+		final boolean updatePrefixes = prefix.equals("");
+		bagPanel.clear();
+		bagPanel.addStyleDependentName("empty");
+		if (updatePrefixes) { clearPrefixes(); }
+		int limit = updatePrefixes ? 0 : maxMagnets; 
+		completeRequest = pgf.complete(text + " " + prefix, 
+				limit, new PGF.CompleteCallback() {
+			public void onResult(IterableJsArray<PGF.Completion> completions) {
+				List<Magnet> magnets = new ArrayList<Magnet>();
+				for (PGF.Completion completion : completions.iterable()) {
+					for (String word : completion.getCompletions()) {
+						if (updatePrefixes) {
+							addPrefix(text, word.substring(0,1));
+						}
+						if (magnets.size() < maxMagnets) {
+							Magnet magnet = magnetFactory.createMagnet(word, completion.getFrom());
+							magnets.add(magnet);
+						} else {
+							prefixPanel.setVisible(true);
+						}
+					}
+				}
+				bagPanel.fill(magnets);
+			}
+			public void onError(Throwable e) {
+				showError("Translation failed", e);
+			}
+		});
+	}
+
+	protected void clearPrefixes () {
+		prefixes.clear();
+		prefixPanel.clear();
+		prefixPanel.setVisible(false);
+	}
+
+	protected void addPrefix(final String text, final String prefix) {
+		if (prefixes.add(prefix)) {
+			Button prefixButton = new Button(prefix, new ClickListener() {		
+				public void onClick(Widget sender) {
+					updateBag(text, prefix);
+				}
+			});
+			prefixButton.setTitle("Show only magnets stating with '" + prefix + "'");
+			prefixPanel.add(prefixButton);
+		}
+	}
+
+	//
+	// Translation
+	//
+
+	protected void translate() {
+		outputPanel.clear();
+		outputPanel.addStyleDependentName("working");
+		if (translateRequest != null) {
+			translateRequest.cancel();
+		}
+		translateRequest = pgf.translate(getText(), 
+				new PGF.TranslateCallback() {
+			public void onResult (IterableJsArray<PGF.TranslationResult> translations) {
+				outputPanel.removeStyleDependentName("working");
+				for (PGF.TranslationResult tr : translations.iterable()) {
+					if (tr.getTranslations() != null)
+						for (PGF.Linearizations t : tr.getTranslations().iterable()) {
+							for (PGF.Linearization l : t.getLinearizations().iterable()) {
+								outputPanel.add(createTranslation(l.getTo(), l.getText()));
+							}
+						}
+
+					if (tr.getTypeErrors() != null)
+						for (PGF.TcError error : tr.getTypeErrors()) {
+							SimplePanel panel = new SimplePanel();
+							panel.addStyleName("my-typeError");
+							panel.add(new HTML("<pre>"+error.getMsg()+"</pre>"));
+							outputPanel.add(panel);
+						}
+				}
+			}
+			public void onError (Throwable e) {
+				showError("Translation failed", e);
+			}
+		});
+	}
+
+	protected ClickListener translationClickListener = new ClickListener () {
+		public void onClick(Widget widget) {
+			Magnet magnet = (Magnet)widget;
+			setInputLanguage(magnet.getLanguage()); // FIXME: this causes an unnecessary update()
+			setText(magnet.getText(), magnet.getLanguage());
+		}
+	};
+
+	protected Widget createTranslation(String language, String text) {
+		Magnet magnet = magnetFactory.createUsedMagnet(text, language);
+		magnet.addClickListener(translationClickListener);
+		String lang = pgf.getLanguageCode(language);
+		if (lang != null) {
+			magnet.getElement().setLang(lang);
+		}
+		return magnet;
+	}
+
+	//
+	// Current text
+	//
+
+	public String getText () {
+		return textPanel.getText();
+	}
+
+	public void setText(String text, String language) {
+		textPanel.setText(text, language);
+	}
+
+	private void clear() {
+		textPanel.clear();
+	}
+
+
+	//
+	// Status stuff
+	//
+
+	protected void setStatus(String msg) {
+		statusPopup.setStatus(msg);
+	}
+
+	protected void showError(String msg, Throwable e) {
+		statusPopup.showError(msg, e);
+	}
+
+	protected void clearStatus() {
+		statusPopup.clearStatus();
+	}
+
+	// GUI
+
+	protected Widget createUI() {
+		ClickListener magnetClickListener = new ClickListener () {
+			public void onClick(Widget widget) {
+				Magnet magnet = (Magnet)widget;
+				textPanel.addMagnet(magnet);
+			}
+		};
+		magnetFactory = new MagnetFactory(magnetClickListener);
+
+		textPanel = new FridgeTextPanel(magnetFactory);
+		textPanel.addChangeListener(new ChangeListener() {
+			public void onChange(Widget widget) {
+				update();
+			}
+		});
+		prefixPanel = new FlowPanel();
+		prefixPanel.setStylePrimaryName("my-PrefixPanel");
+		bagPanel = new FridgeBagPanel();
+		outputPanel = new TranslationsPanel();
+		SettingsPanel settingsPanel = new SettingsPanel(pgf, true, false);
+		
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+        vPanel.setWidth("100%");
+		vPanel.add(prefixPanel);
+		vPanel.add(bagPanel);
+
+		final DockPanel mainPanel = new DockPanel();
+		mainPanel.setStyleName("my-FridgeApp");
+		mainPanel.add(textPanel, DockPanel.NORTH);
+		mainPanel.add(settingsPanel, DockPanel.SOUTH);
+		mainPanel.add(vPanel, DockPanel.CENTER);
+		mainPanel.add(outputPanel, DockPanel.EAST);
+		
+		mainPanel.setCellHeight(vPanel, "100%");
+		mainPanel.setCellWidth(vPanel, "80%");
+		mainPanel.setCellHeight(outputPanel, "100%");
+		mainPanel.setCellWidth(outputPanel, "20%");
+		mainPanel.setCellVerticalAlignment(vPanel, HasVerticalAlignment.ALIGN_TOP);
+		mainPanel.setCellHorizontalAlignment(outputPanel, HasHorizontalAlignment.ALIGN_RIGHT);
+		mainPanel.setCellWidth(settingsPanel, "100%");
+		
+		Window.addWindowResizeListener(new WindowResizeListener() {
+			public void onWindowResized(int w, int h) {
+				mainPanel.setPixelSize(w, h);
+			}
+		});
+		int w = Window.getClientWidth();
+		int h = Window.getClientHeight();
+		mainPanel.setPixelSize(w, h);
+		
+		return mainPanel;
+	}
+	
+	private static class TranslationsPanel extends VerticalPanel {
+		public TranslationsPanel () {
+			setStylePrimaryName("my-TranslationsPanel");
+			addStyleDependentName("empty");
+		}
+		
+		public void clear () {
+			super.clear();
+			addStyleDependentName("empty");
+		}
+
+		public void add(Widget w) {
+			removeStyleDependentName("empty");
+			super.add(w);
+		}
+		
+	}
+
+
+	//
+	// History stuff
+	//
+
+	protected class MyHistoryListener implements HistoryListener {
+		public void onHistoryChanged(String historyToken) {
+			updateSettingsFromHistoryToken();
+		}
+	};
+
+	protected void updateSettingsFromHistoryToken() {
+		updateSettingsFromHistoryToken(History.getToken().split("/"));
+	}
+
+	protected void updateSettingsFromHistoryToken(String[] tokenParts) {
+		if (tokenParts.length >= 1 && tokenParts[0].length() > 0) {
+			setPGFName(tokenParts[0]);
+		}
+		if (tokenParts.length >= 2 && tokenParts[1].length() > 0) {
+			setInputLanguage(tokenParts[1]);
+		}
+	}
+
+	protected void setPGFName (String pgfName) {
+		if (pgfName != null && !pgfName.equals(pgf.getPGFName())) {
+			pgf.setPGFName(pgfName);
+		}
+	}
+
+	protected void setInputLanguage (String inputLanguage) {
+		if (inputLanguage != null && !inputLanguage.equals(pgf.getInputLanguage())) {
+			pgf.setInputLanguage(inputLanguage);	
+		}
+	}
+
+	//
+	// Initialization
+	//
+
+	protected class MySettingsListener implements PGFWrapper.SettingsListener {
+		// Will only happen on load
+		public void onAvailableGrammarsChanged() {
+			if (pgf.getPGFName() == null) {
+				List<String> grammars = pgf.getGrammars();
+				if (!grammars.isEmpty()) {
+					pgf.setPGFName(grammars.get(0));
+				}
+			}			
+		}
+		public void onSelectedGrammarChanged() {
+			if (pgf.getInputLanguage() == null) {
+				pgf.setInputLanguage(pgf.getUserLanguage());
+			}
+		}
+		public void onInputLanguageChanged() {
+			clear();
+		}
+		public void onOutputLanguageChanged() {
+			update();
+		}
+		public void onStartCategoryChanged() {
+			update();
+		}
+		public void onSettingsError(String msg, Throwable e) {
+			showError(msg,e);
+		}
+	}
+
+	public void onModuleLoad() {
+		statusPopup = new StatusPopup();
+
+		pgf = new PGFWrapper(pgfBaseURL);
+		RootPanel.get().add(createUI());
+		pgf.addSettingsListener(new MySettingsListener());
+		History.addHistoryListener(new MyHistoryListener());
+		updateSettingsFromHistoryToken();
+		pgf.updateAvailableGrammars();
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java
@@ -0,0 +1,38 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.*;
+
+public class FridgeBagPanel extends Composite implements Iterable<Magnet> {
+
+	private FlowPanel mainPanel;
+
+	public FridgeBagPanel () {
+		mainPanel = new FlowPanel();
+
+		initWidget(new ScrollPanel(mainPanel));
+		setStylePrimaryName("my-FridgeBagPanel");
+		addStyleDependentName("empty");
+	}
+
+	public void clear() {
+		mainPanel.clear();
+	}
+
+	public void fill(List<Magnet> magnets) {
+		for (Magnet magnet : magnets) {
+			mainPanel.add(magnet);
+		}
+
+		if (mainPanel.getWidgetCount() == 0)
+			addStyleDependentName("empty");
+		else
+			removeStyleDependentName("empty");
+	}
+
+	public Iterator<Magnet> iterator() {
+		return (Iterator<Magnet>) (Iterator) mainPanel.iterator();
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeTextPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeTextPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeTextPanel.java
@@ -0,0 +1,113 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.user.client.ui.*;
+
+public class FridgeTextPanel extends Composite {
+
+	private MagnetFactory magnetFactory;
+
+	private FlowPanel mainPanel;
+
+	private ChangeListenerCollection listeners = null;
+
+	public FridgeTextPanel (MagnetFactory magnetFactory) { 
+		this.magnetFactory = magnetFactory;
+		mainPanel = new FlowPanel();
+		mainPanel.setStylePrimaryName("magnets");
+		DockPanel wrapper = new DockPanel();		
+		wrapper.add(mainPanel, DockPanel.CENTER);
+		Widget buttons = createButtonPanel();
+		wrapper.add(buttons, DockPanel.EAST);
+		wrapper.setCellWidth(mainPanel, "100%");
+		wrapper.setCellWidth(buttons, "6em");
+		wrapper.setHorizontalAlignment(DockPanel.ALIGN_RIGHT);
+		initWidget(wrapper);
+		setStylePrimaryName("my-FridgeTextPanel");
+	}
+	
+
+	protected Widget createButtonPanel () {
+		Panel buttons = new VerticalPanel();
+		buttons.setStylePrimaryName("buttons");
+		PushButton deleteLastButton = new PushButton(new Image("org.grammaticalframework.ui.gwt.FridgeApp/delete-last.png"));
+		deleteLastButton.setTitle("Removes the last magnet.");
+		deleteLastButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				deleteLast();
+			}
+		});
+		buttons.add(deleteLastButton);
+		PushButton clearButton = new PushButton("Clear");
+		clearButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				clear();
+			}
+		});
+		clearButton.setTitle("Removes all magnets.");
+		buttons.add(clearButton);
+		return buttons;
+	}
+
+	public void setEngaged(boolean engaged) {
+		if (engaged) {
+			addStyleDependentName("engage");
+		} else {
+			removeStyleDependentName("engage");
+		}
+	}
+
+	public String getText () {
+		StringBuilder sb = new StringBuilder();
+		for (Widget w : mainPanel) {
+			if (w instanceof Magnet) {
+				String word = ((Magnet)w).getText();	
+				if (sb.length() > 0) {
+					sb.append(' ');
+				}
+				sb.append(word);
+			}
+		}
+		return sb.toString();
+	}
+
+	public void setText (String text, String language) {
+		if (!text.equals(getText())) {
+			mainPanel.clear();
+			for (String word : text.split("\\s+")) {
+				if (word.length() > 0) {
+					mainPanel.add(magnetFactory.createUsedMagnet(word, language));
+				}
+			}
+			fireChange();
+		}
+	}
+	
+	public void clear () {
+		mainPanel.clear();
+		fireChange();
+	}
+
+	public void addMagnet (Magnet magnet) {
+		mainPanel.add(magnetFactory.createUsedMagnet(magnet));
+		fireChange();
+	}
+
+	public void deleteLast() {
+		int c = mainPanel.getWidgetCount();
+		if (c > 0) {
+			mainPanel.remove(c-1);
+			fireChange();
+		}
+	}
+
+	protected void fireChange() {
+		listeners.fireChange(this);
+	}
+
+	public void addChangeListener(ChangeListener listener) {
+		if (listeners == null) {
+			listeners = new ChangeListenerCollection();
+		}
+		listeners.add(listener);
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/GrammarsPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/GrammarsPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/GrammarsPanel.java
@@ -0,0 +1,92 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.http.client.*;
+import com.google.gwt.xml.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.shared.*;
+
+public class GrammarsPanel extends Composite {
+
+	private PGFWrapper pgf;
+	private ContentService contentService;
+	private StatusPopup statusPopup;
+	private FlexTable table;
+	private ArrayList documentIds = new ArrayList();
+
+	public GrammarsPanel(PGFWrapper pgf, ContentService contentService, StatusPopup statusPopup) {
+		this.pgf = pgf;
+		this.contentService = contentService;
+		this.statusPopup = statusPopup;
+
+		HorizontalPanel grammarsPanel = new HorizontalPanel();
+
+		UploadFormHandler uploadFormHandler = new UploadFormHandler();
+		
+		final FormPanel form = new FormPanel();
+		form.setEncoding(FormPanel.ENCODING_MULTIPART);
+		form.setMethod(FormPanel.METHOD_POST);
+		form.setAction(contentService.getBaseURL());
+		form.addSubmitHandler(uploadFormHandler);
+		form.addSubmitCompleteHandler(uploadFormHandler);
+		grammarsPanel.add(form);
+
+		HorizontalPanel hPanel = new HorizontalPanel();
+		hPanel.setSpacing(8);
+		form.add(hPanel);
+
+		VerticalPanel vPanel = new VerticalPanel();
+		hPanel.add(vPanel);
+
+		vPanel.add(new HTML("<input type=\"hidden\" name=\"command\" value=\"update_grammar\"/>"));
+		
+		FileUpload fileUpload = new FileUpload();
+		fileUpload.setName("file");
+		vPanel.add(fileUpload);
+
+		vPanel.add(new HTML("<BR/>"));
+		
+		vPanel.add(new Label("Name:"));
+		TextBox grammarName = new TextBox();
+		grammarName.setName("name");
+		grammarName.setWidth("100%");
+		vPanel.add(grammarName);
+		
+		vPanel.add(new HTML("<BR/>"));
+		
+		vPanel.add(new Label("Description:"));
+		TextArea grammarDescr = new TextArea();
+		grammarDescr.setName("description");
+		grammarDescr.setWidth("100%");
+		grammarDescr.setHeight("150px");
+		vPanel.add(grammarDescr);
+		
+		VerticalPanel btnPanel = new VerticalPanel();
+		btnPanel.setSpacing(3);
+		hPanel.add(btnPanel);
+		
+		btnPanel.add(new Button("Upload", new ClickListener() {
+			public void onClick(Widget sender) {
+				form.submit();
+			}
+		}));
+		btnPanel.add(new Button("Cancel", new ClickListener() {
+			public void onClick(Widget sender) {
+			}
+		}));
+		
+		initWidget(grammarsPanel);
+		setStylePrimaryName("my-GrammarsPanel");
+	}
+
+	private class UploadFormHandler implements FormPanel.SubmitHandler, FormPanel.SubmitCompleteHandler {
+		public void onSubmit(FormPanel.SubmitEvent event) {
+		}
+		
+		public void onSubmitComplete(FormPanel.SubmitCompleteEvent event) {
+		}
+	};
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/IterableJsArray.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/IterableJsArray.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/IterableJsArray.java
@@ -0,0 +1,39 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.JsArray;
+
+public class IterableJsArray<T extends JavaScriptObject> extends JsArray<T> {
+
+	protected IterableJsArray() {}
+	
+	public final boolean isEmpty() {
+		return length() == 0;
+	}
+
+	public final Iterable<T> iterable() {
+		return new Iterable<T>() {
+			public Iterator<T> iterator() {
+				return new Iterator<T>() {
+					private int i = 0;
+					public boolean hasNext() { 
+						return i < length(); 
+					}
+					public T next() { 
+						if (!hasNext()) { 
+							throw new NoSuchElementException(); 
+						}
+						return get(i++); 
+					}
+					public void remove() { 
+						throw new UnsupportedOperationException(); 
+					}
+				};
+			}
+		};
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONCallback.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONCallback.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONCallback.java
@@ -0,0 +1,8 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+public interface JSONCallback<T extends JavaScriptObject> {
+	public void onResult (T result) ;
+	public void onError (Throwable e) ;
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequest.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequest.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequest.java
@@ -0,0 +1,19 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.http.client.*;
+
+public class JSONRequest {
+
+	private Request httpRequest;
+
+	JSONRequest (Request httpRequest) {
+		this.httpRequest = httpRequest;
+	}
+
+	public void cancel() {
+		if (httpRequest != null) {
+			httpRequest.cancel();
+		}
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequestBuilder.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequestBuilder.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/JSONRequestBuilder.java
@@ -0,0 +1,109 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.http.client.Request;
+import com.google.gwt.http.client.RequestBuilder;
+import com.google.gwt.http.client.RequestCallback;
+import com.google.gwt.http.client.RequestException;
+import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
+
+import java.util.List;
+
+public class JSONRequestBuilder {
+
+	public static class Arg {
+		public final String name;
+		public final String value;
+		public Arg (String name, String value) {
+			this.name = name;
+			this.value = value;
+		}
+		public Arg (String name, int value) {
+			this(name, Integer.toString(value));
+		}
+	}
+	
+	public static <T extends JavaScriptObject> JSONRequest sendRequest (String base, List<Arg> vars, final JSONCallback<T> callback) {
+		String url = getQueryURL(base,vars);
+		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
+		builder.setTimeoutMillis(30000);
+		builder.setHeader("Accept","text/plain, text/html;q=0.5, */*;q=0.1");
+		Request request = null;
+
+		try {
+			request = builder.sendRequest(null, new RequestCallback() {
+				public void onError(Request request, Throwable e) {
+					callback.onError(e);
+				}
+
+				public void onResponseReceived(Request request, Response response) {
+					if (200 == response.getStatusCode()) {
+						callback.onResult(JSONRequestBuilder.<T>eval(response.getText()));
+					} else {
+						RequestException e = new RequestException("Response not OK: " + response.getStatusCode() + ". " + response.getText());
+						callback.onError(e);
+					}
+				}
+			});
+		} catch (RequestException e) {
+			callback.onError(e);
+		}
+
+		return new JSONRequest(request);
+	}
+
+	public static <T extends JavaScriptObject> JSONRequest sendDataRequest (String base, List<Arg> vars, String content, final JSONCallback<T> callback) {
+		String url = getQueryURL(base,vars);
+		RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
+		builder.setTimeoutMillis(30000);
+		builder.setHeader("Content-Length", Integer.toString(content.length()));
+		builder.setHeader("Accept","text/plain, text/html;q=0.5, */*;q=0.1");
+		Request request = null;
+
+		try {
+			request = builder.sendRequest(content, new RequestCallback() {
+				public void onError(Request request, Throwable e) {
+					callback.onError(e);
+				}
+
+				public void onResponseReceived(Request request, Response response) {
+					if (200 == response.getStatusCode()) {
+						callback.onResult(JSONRequestBuilder.<T>eval(response.getText()));
+					} else {
+						RequestException e = new RequestException("Response not OK: " + response.getStatusCode() + ". " + response.getText());
+						callback.onError(e);
+					}
+				}
+			});
+		} catch (RequestException e) {
+			callback.onError(e);
+		}
+
+		return new JSONRequest(request);
+	}
+
+	private static native <T extends JavaScriptObject> T eval(String json) /*-{ 
+        return eval('(' + json + ')');
+    }-*/;
+
+	public static String getQueryURL(String base, List<Arg> args) {
+		StringBuffer sb = new StringBuffer();
+		sb.append(base);
+		sb.append("?");
+		if (args != null) {
+			for (Arg arg : args) {
+				if (arg.value != null) {
+					if (sb.length() > 0) {
+						sb.append("&");
+					}
+					sb.append(URL.encodeComponent(arg.name));
+					sb.append("=");
+					sb.append(URL.encodeComponent(arg.value));
+				}
+			}
+		}
+		return sb.toString();
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/LinearizationsPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/LinearizationsPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/LinearizationsPanel.java
@@ -0,0 +1,150 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.shared.*;
+
+public class LinearizationsPanel extends Composite {
+
+	protected PGFWrapper pgf;
+	
+	public LinearizationsPanel(PGFWrapper pgf, PGF.Linearizations lins) {
+		this.pgf = pgf;
+		
+		HorizontalPanel hPanel = new HorizontalPanel();
+		VerticalPanel linsPanel = new VerticalPanel();
+		linsPanel.addStyleName("my-translation-bar");
+		hPanel.add(linsPanel);
+		HorizontalPanel btnPanel = new HorizontalPanel();
+		btnPanel.addStyleName("my-translation-btns");
+		btnPanel.setSpacing(4);
+		btnPanel.add(createAbsTreeButton(lins.getTree()));
+		btnPanel.add(createAlignButton(lins.getTree()));
+		hPanel.add(btnPanel);
+		hPanel.setCellHorizontalAlignment(btnPanel,HasHorizontalAlignment.ALIGN_RIGHT);
+
+		for (PGF.Linearization l : lins.getLinearizations().iterable()) {
+			linsPanel.add(createTranslation(l.getTo(), lins.getTree(), l.getText()));
+		}
+		
+		initWidget(hPanel);
+		setStylePrimaryName("my-translation-frame");
+	}
+
+	protected Widget createAbsTreeButton(final String abstractTree) {
+		Image treeBtn = new Image("org.grammaticalframework.ui.gwt.EditorApp/tree-btn.png");
+		treeBtn.setTitle("Displays the abstract syntax tree.");
+		treeBtn.addClickListener(
+			new ClickListener() {
+				public void onClick(Widget sender) {
+					// Create a dialog box and set the caption text
+					final DialogBox dialogBox = new DialogBox();
+					dialogBox.setText("Abstract Syntax Tree");
+
+					// Create a table to layout the content
+					HorizontalPanel dialogContents = new HorizontalPanel();
+					dialogContents.setSpacing(4);
+					dialogBox.setWidget(dialogContents);
+
+					// Add an image to the dialog
+
+					Frame image = new Frame(pgf.graphvizAbstractTree(abstractTree));
+					image.addStyleName("my-treeimage");
+					dialogContents.add(image);
+
+					// Add a close button at the bottom of the dialog
+					Button closeButton = new Button("Close",
+						new ClickListener() {
+							public void onClick(Widget sender) {
+								dialogBox.hide();
+						}
+					});
+					dialogContents.add(closeButton);
+
+					dialogBox.center();
+					dialogBox.show();
+				}
+			});
+		return treeBtn;
+	}
+
+	protected Widget createAlignButton(final String abstractTree) {
+		Image alignBtn = new Image("org.grammaticalframework.ui.gwt.EditorApp/align-btn.png");
+		alignBtn.setTitle("Displays word-alignment diagram.");
+		alignBtn.addClickListener(
+			new ClickListener() {
+				public void onClick(Widget sender) {
+					// Create a dialog box and set the caption text
+					final DialogBox dialogBox = new DialogBox();
+					dialogBox.setText("Word Alignment");
+
+					// Create a table to layout the content
+					HorizontalPanel dialogContents = new HorizontalPanel();
+					dialogContents.setSpacing(4);
+					dialogBox.setWidget(dialogContents);
+
+					// Add an image to the dialog
+					Frame image = new Frame(pgf.graphvizAlignment(abstractTree));
+					image.addStyleName("my-alignmentimage");
+					dialogContents.add(image);
+
+					// Add a close button at the bottom of the dialog
+					Button closeButton = new Button("Close",
+						new ClickListener() {
+							public void onClick(Widget sender) {
+								dialogBox.hide();
+						}
+					});
+					dialogContents.add(closeButton);
+
+					dialogBox.center();
+					dialogBox.show();
+				}
+			});
+		return alignBtn;
+	}
+
+	protected Widget createTranslation(final String language, final String abstractTree, String text) {
+		Label l = new Label(text);
+		l.addStyleName("my-translation");
+		String lang = pgf.getLanguageCode(language);
+		if (lang != null) {
+			l.getElement().setLang(lang);
+		}
+		l.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+				// Create a dialog box and set the caption text
+				final DialogBox dialogBox = new DialogBox();
+				dialogBox.setText("Parse Tree");
+
+				// Create a table to layout the content
+				HorizontalPanel dialogContents = new HorizontalPanel();
+				dialogContents.setSpacing(4);
+				dialogBox.setWidget(dialogContents);
+
+				// Add an image to the dialog
+				Frame image = new Frame(pgf.graphvizParseTree(abstractTree, language));
+				image.addStyleName("my-treeimage");
+				dialogContents.add(image);
+
+				// Add a close button at the bottom of the dialog
+				Button closeButton = new Button("Close",
+					new ClickListener() {
+						public void onClick(Widget sender) {
+							dialogBox.hide();
+					}
+				});
+				dialogContents.add(closeButton);
+
+				dialogBox.center();
+				dialogBox.show();
+			}
+		});
+		return l;
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/Magnet.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/Magnet.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/Magnet.java
@@ -0,0 +1,22 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.user.client.ui.HTML;
+
+public class Magnet extends HTML {
+	
+	private String language;
+	
+	public Magnet (String text, String language) {
+		this.language = language;
+		setHTML(text);
+		setStylePrimaryName("my-Magnet");
+	}
+	
+	public String getLanguage() {
+		return language;
+	}
+
+	public String getWord() {
+		return getHTML();
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetFactory.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetFactory.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetFactory.java
@@ -0,0 +1,31 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.user.client.ui.*;
+
+public class MagnetFactory {
+
+	private ClickListener clickListener;
+	
+	public MagnetFactory (ClickListener clickListener) {
+		this.clickListener = clickListener;
+	}
+	
+	public Magnet createUsedMagnet(Magnet magnet) {
+		return createUsedMagnet(magnet.getText(), magnet.getLanguage());
+	}
+	
+	public Magnet createUsedMagnet(String text, String language) {
+		return new Magnet(text, language);
+	}
+	
+	public Magnet createMagnet(Magnet magnet) {
+		return createMagnet(magnet.getText(), magnet.getLanguage());
+	}
+	
+	public Magnet createMagnet(String text, String language) {
+		Magnet magnet = new Magnet(text, language);
+		magnet.addClickListener(clickListener);			
+		return magnet;
+	}
+	
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetSearchBox.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetSearchBox.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MagnetSearchBox.java
@@ -0,0 +1,49 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.shared.*;
+import com.google.gwt.dom.client.Node;
+import com.google.gwt.dom.client.Text;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Document;
+import org.grammaticalframework.ui.gwt.client.selection.*;
+
+public class MagnetSearchBox extends FocusWidget {
+	public MagnetSearchBox() {
+    		this(Document.get().createDivElement());
+	}
+
+	public MagnetSearchBox(Element elem) {
+		super(elem);
+		elem.setAttribute("contentEditable", "true");
+		setStyleName("searchbox");
+	}
+
+	public String getText() {
+		return getElement().getInnerText();
+	}
+
+	public void setText(String s) {
+		getElement().setInnerText(s);
+	}
+	
+	public int getCursorPos() {
+		return 0;
+	}
+
+	public void setCursorPos(int pos) {
+		Node child = getElement().getFirstChild();
+		if (child instanceof Text) {
+			SelectionEndPoint selPoint = new SelectionEndPoint((Text) child,pos);
+			Selection sel = Selection.getSelection();
+			sel.select(selPoint,selPoint);
+		}
+		return;
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MorphoApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MorphoApp.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MorphoApp.java
@@ -0,0 +1,63 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.core.client.JavaScriptObject;
+
+public class MorphoApp implements EntryPoint {
+	private TextBox lemmaBox = new TextBox();
+	private Button submitButton = new Button("Submit");
+	private Grid outputGrid = new Grid(2,0);
+
+	public void onModuleLoad() {
+                HorizontalPanel inputPanel = new HorizontalPanel();
+		inputPanel.add(lemmaBox);
+		inputPanel.add(submitButton);
+
+		submitButton.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+		
+				String url = "http://localhost:41296/morpho/morpho.fcgi/eval";
+				List<JSONRequestBuilder.Arg> args = new ArrayList<JSONRequestBuilder.Arg>();
+				args.add(new JSONRequestBuilder.Arg("term", lemmaBox.getText()));
+					
+				JSONRequestBuilder.sendRequest(url, args, new TableCallback() {
+					public void onResult (IterableJsArray<InflectionForm> table)
+					{
+						outputGrid.resize(table.length(),2);
+						int row = 0;
+						for (InflectionForm form : table.iterable()) {
+							outputGrid.setText(row,0,form.getName());
+							outputGrid.setText(row,1,form.getValue());
+							row++;
+						}
+					}
+
+					public void onError (Throwable e)
+					{
+						outputGrid.resize(1,1);
+						outputGrid.setText(0,0,e.toString());
+					}
+				});
+			}
+		});
+		
+
+		VerticalPanel mainPanel = new VerticalPanel();
+		mainPanel.add(inputPanel);
+		mainPanel.add(outputGrid);
+		RootPanel.get().add(mainPanel);
+	}
+
+	public interface TableCallback extends JSONCallback<IterableJsArray<InflectionForm>> { }
+
+	public static class InflectionForm extends JavaScriptObject {
+		protected InflectionForm() { }
+
+		public final native String getName() /*-{ return this.name; }-*/;
+
+		public final native String getValue() /*-{ return this.value; }-*/;
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MyListBox.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MyListBox.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/MyListBox.java
@@ -0,0 +1,40 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.Collection;
+
+import com.google.gwt.user.client.ui.ListBox;
+
+public class MyListBox extends ListBox {
+
+	public MyListBox () { }
+	
+	public void clearSelection () {
+		setSelectedIndex(-1);
+	}
+	
+	public String getSelectedValue() {
+		int i = getSelectedIndex();
+		return i == -1 ? null : getValue(i);
+	}
+	
+	public void setSelectedValue(String value) {
+		if (value == null) {
+			clearSelection();
+		} else {
+			int c = getItemCount();
+			for (int i = 0; i < c; i++) {
+				if (getValue(i).equals(value)) {
+					setSelectedIndex(i);
+					return;
+				}
+			}
+		}
+	}
+	
+	public void addItems(Collection<String> items) {
+		for (String item : items) {
+			addItem(item);
+		}
+	}
+	
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java
@@ -0,0 +1,241 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import org.grammaticalframework.ui.gwt.client.JSONRequestBuilder.Arg;
+
+import java.util.*;
+import com.google.gwt.core.client.*;
+import com.google.gwt.http.client.*;
+
+public class PGF {
+
+	public PGF () {
+	}
+
+	/* Grammar */
+
+	public JSONRequest grammar (String pgfURL, final GrammarCallback callback) {
+		return sendGrammarRequest(pgfURL, "grammar", new ArrayList<Arg>(), callback);
+	}
+
+	public interface GrammarCallback extends JSONCallback<Grammar> { }
+
+	public static class Grammar extends JavaScriptObject {
+		protected Grammar() { }
+
+		public final native String getName() /*-{ return this.name; }-*/;
+
+		public final native String getUserLanguage() /*-{ return this.userLanguage; }-*/;
+
+		public final native IterableJsArray<Language> getLanguages() /*-{ return this.languages; }-*/;
+
+		public final native JsArrayString getCategories() /*-{ return this.categories; }-*/;
+
+		public final native JsArrayString getFunctions() /*-{ return this.functions; }-*/;
+	}
+
+	public static class Language extends JavaScriptObject {
+		protected Language() { }
+
+		public final native String getName() /*-{ return this.name; }-*/;
+		public final native String getLanguageCode() /*-{ return this.languageCode; }-*/;
+	}
+
+	/* Translation */
+
+	public JSONRequest translate (String pgfURL, String input, String fromLang, String cat, String toLang,
+			final TranslateCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("input", input));
+		args.add(new Arg("from", fromLang));
+		args.add(new Arg("cat", cat));
+		args.add(new Arg("to", toLang));
+		return sendGrammarRequest(pgfURL, "translate", args, callback);
+	}
+
+	public interface TranslateCallback extends JSONCallback<IterableJsArray<TranslationResult>> {  }
+
+	public static class TranslationResult extends JavaScriptObject {
+		protected TranslationResult() { }
+
+		public final native String getFrom() /*-{ return this.from; }-*/;
+		public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/;
+                public final native IterableJsArray<Linearizations> getTranslations() /*-{ return this.translations; }-*/;
+		public final native TcError[] getTypeErrors() /*-{ return this.typeErrors; }-*/;
+	}
+
+	public static class Linearizations extends JavaScriptObject {
+		protected Linearizations() { }
+
+                public final native String getTree() /*-{ return this.tree; }-*/;
+		public final native IterableJsArray<Linearization> getLinearizations() /*-{ return this.linearizations; }-*/;
+	}
+
+	/* Completion */
+
+	/**
+	 * Get suggestions for completing the input.
+	 * @param limit The number of suggestions to get. 
+	 * If -1 is passed, all available suggestions are retrieved.
+	 */
+	public JSONRequest complete (String pgfURL, String input, String fromLang, String cat, int limit, final CompleteCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("input", input));
+		args.add(new Arg("from", fromLang));
+		args.add(new Arg("cat", cat));
+		if (limit > 0) {
+			args.add(new Arg("limit", limit));
+		}
+		return sendGrammarRequest(pgfURL, "complete", args, callback);
+	}
+
+	public interface CompleteCallback extends JSONCallback<IterableJsArray<Completion>> { }
+
+	public static class Completion extends JavaScriptObject {
+		protected Completion() { }
+
+		public final native String getFrom() /*-{ return this.from; }-*/;
+		public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/;
+		public final native String[] getCompletions() /*-{ return this.completions; }-*/;
+		public final native String getText() /*-{ return this.text; }-*/;
+	}
+
+	/* Parsing */
+
+	public JSONRequest parse (String pgfURL, String input, String fromLang, String cat, final ParseCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("input", input));
+		args.add(new Arg("from", fromLang));
+		args.add(new Arg("cat", cat));
+		return sendGrammarRequest(pgfURL, "parse", args, callback);
+	}
+
+	public interface ParseCallback extends JSONCallback<IterableJsArray<ParseResult>> { }
+
+	public static class ParseResult extends JavaScriptObject {
+		protected ParseResult() { }
+
+		public final native String getFrom() /*-{ return this.from; }-*/;
+		public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/;
+		public final native String[] getTrees() /*-{ return this.trees; }-*/;
+		public final native TcError[] getTypeErrors() /*-{ return this.typeErrors; }-*/;
+	}
+
+	public static class BracketedString extends JavaScriptObject {
+		protected BracketedString() { }
+
+		public final native String getToken() /*-{ return this.token; }-*/;
+
+		public final native String getCat() /*-{ return this.cat; }-*/;
+		public final native int getFId() /*-{ return this.fid; }-*/;
+		public final native int getIndex() /*-{ return this.index; }-*/;
+		public final native BracketedString[] getChildren() /*-{ return this.children; }-*/;
+		
+		public final String render() {
+			if (getToken() != null)
+				return getToken();
+			else {
+				StringBuilder sbuilder = new StringBuilder();
+				for (BracketedString bs : getChildren()) {
+					if (sbuilder.length() > 0)
+						sbuilder.append(' ');
+					sbuilder.append(bs.render());
+				}
+				return sbuilder.toString();
+			}
+		}
+	}
+
+	public static class TcError extends JavaScriptObject {
+		protected TcError() { }
+
+		public final native int getFId() /*-{ return this.fid; }-*/;
+		public final native String getMsg() /*-{ return this.msg; }-*/;
+	}
+	
+	
+	/* Linearization */
+
+	public JSONRequest linearize (String pgfURL, String tree, String toLang, final LinearizeCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("tree", tree));
+		args.add(new Arg("to", toLang));
+		return sendGrammarRequest(pgfURL, "linearize", args, callback);
+	}
+
+	public interface LinearizeCallback extends JSONCallback<IterableJsArray<Linearization>> { }
+	
+	public static class Linearization extends JavaScriptObject {
+		protected Linearization() { }
+
+		public final native String getTo() /*-{ return this.to; }-*/;
+                public final native String getText() /*-{ return this.text; }-*/;
+	}
+
+	public String graphvizAbstractTree(String pgfURL, String abstractTree) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "abstrtree"));
+                args.add(new Arg("tree", abstractTree));
+		return JSONRequestBuilder.getQueryURL(pgfURL,args);
+	}
+
+	public String graphvizParseTree(String pgfURL, String abstractTree, String lang) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "parsetree"));
+                args.add(new Arg("tree", abstractTree));
+		args.add(new Arg("from", lang));
+		return JSONRequestBuilder.getQueryURL(pgfURL,args);
+	}
+
+	public String graphvizAlignment(String pgfURL, String abstractTree) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "alignment"));
+                args.add(new Arg("tree", abstractTree));
+		return JSONRequestBuilder.getQueryURL(pgfURL,args);
+	}
+
+	public Request browse(String pgfURL, String id, String href, String cssClass, RequestCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("command", "browse"));
+		args.add(new Arg("id", id));
+		args.add(new Arg("href", href));
+		args.add(new Arg("css-class", cssClass));
+
+		Request request = null;
+		try {
+			RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
+                                                                    JSONRequestBuilder.getQueryURL(pgfURL,args));
+			builder.setCallback(callback);
+			request = builder.send();
+		} catch (RequestException ex) {
+			callback.onError(request, ex);
+		}
+
+		return request;
+	}
+	
+	public JSONRequest generateAll(String pgfURL, String cat, int depth, int limit, String toLang, GenerationCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("cat", cat));
+		args.add(new Arg("depth", depth));
+		args.add(new Arg("limit", limit));
+		args.add(new Arg("to", toLang));
+		return sendGrammarRequest(pgfURL, "generate", args, callback);
+	}
+
+	public JSONRequest generateRandom(String pgfURL, String cat, int depth, int limit, String toLang, GenerationCallback callback) {
+		List<Arg> args = new ArrayList<Arg>();
+		args.add(new Arg("cat", cat));
+		args.add(new Arg("depth", depth));
+		args.add(new Arg("limit", limit));
+		args.add(new Arg("to", toLang));
+		return sendGrammarRequest(pgfURL, "random", args, callback);
+	}
+
+	public interface GenerationCallback extends JSONCallback<IterableJsArray<Linearizations>> {}
+
+	public <T extends JavaScriptObject> JSONRequest sendGrammarRequest(String pgfURL, String resource, List<Arg> args, final JSONCallback<T> callback) {
+		args.add(new Arg("command", resource));
+		return JSONRequestBuilder.sendRequest(pgfURL, args, callback);
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGFWrapper.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGFWrapper.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGFWrapper.java
@@ -0,0 +1,324 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import com.google.gwt.http.client.*;
+import com.google.gwt.xml.client.*;
+import com.google.gwt.core.client.*;
+
+public class PGFWrapper {
+
+	private String baseURL;
+
+	private String grammarURL;
+
+	private String pgfName = null;
+
+	private PGF pgf;
+
+	private String inputLanguage = null;
+
+	private String outputLanguage = null;
+
+	private String cat = null;
+
+	// Cached info about the available grammars 
+
+	private List<String> grammars;
+
+	// Cached info about the currently selected grammar
+	
+	private String userLanguage;
+	
+	private LinkedHashMap<String,PGF.Language> languages;
+
+	private JsArrayString categories;
+	private JsArrayString functions;
+
+	// Event listeners
+	
+	private List<SettingsListener> listeners = new LinkedList<SettingsListener>();
+	
+
+	public PGFWrapper() {
+		this.baseURL = null;
+		this.pgf = new PGF();
+	}
+
+	public PGFWrapper(String baseURL) {
+		this.baseURL = baseURL;
+		this.pgf = new PGF();
+	}
+
+	public void updateAvailableGrammars() {
+		String url = baseURL+"/grammars.xml";
+		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
+		try
+		{
+			builder.sendRequest(null, new RequestCallback() {
+				public void onResponseReceived(Request request, Response response)
+				{
+					if (200 == response.getStatusCode())
+					{
+						grammars = new ArrayList<String>();
+						try
+						{
+							Document grammarsDoc = XMLParser.parse(response.getText());
+
+							NodeList grammarsList = grammarsDoc.getElementsByTagName("grammar");
+							for (int i = 0; i < grammarsList.getLength(); i++)
+							{
+								Node grammarNode = grammarsList.item(i);
+								grammars.add(((Element)grammarNode).getAttribute("name"));
+							}
+						}
+						catch (DOMException e)
+						{
+							fireSettingsError("Could not parse XML document.", e);
+						}
+						fireAvailableGrammarsChanged();
+					}
+					else
+					{
+						fireSettingsError("Error getting grammar list", null);
+					}
+				}
+
+				public void onError(Request request, Throwable e)
+				{
+					fireSettingsError("Error getting grammar list", e);
+				}
+			});
+		}
+		catch (RequestException e)
+		{
+			fireSettingsError("Couldn't connect to server", e);
+		}
+	}
+	
+	protected void updateSelectedGrammar () {
+		clearCachedInfo();
+		pgf.grammar(grammarURL, new PGF.GrammarCallback() {
+			public void onResult(PGF.Grammar grammar) {
+				userLanguage = grammar.getUserLanguage();
+				languages = new LinkedHashMap<String,PGF.Language>();
+				for (PGF.Language l : grammar.getLanguages().iterable()) {
+					String name = l.getName();
+					languages.put(name, l);
+				}
+				
+				categories = grammar.getCategories();
+				functions = grammar.getFunctions();
+
+				fireSelectedGrammarChanged();
+			}
+
+			public void onError (Throwable e) {
+				fireSettingsError("Error getting language information", e);
+			}
+		});
+	}
+
+	//
+	// PGF functionality
+	//
+	
+	public JSONRequest translate (String input, final PGF.TranslateCallback callback) {
+		return pgf.translate(grammarURL, input, inputLanguage, cat, outputLanguage, callback);
+	}
+
+	public JSONRequest complete (String input, int limit, final PGF.CompleteCallback callback) {
+		return pgf.complete(grammarURL, input, inputLanguage, cat, limit, callback);
+	}
+
+	public JSONRequest parse (String input, final PGF.ParseCallback callback) {
+		return pgf.parse(grammarURL, input, inputLanguage, cat, callback);
+	}
+
+	public JSONRequest linearize (String tree, final PGF.LinearizeCallback callback) {
+		return pgf.linearize(grammarURL, tree, outputLanguage, callback);
+	}
+
+	public String graphvizAbstractTree(String abstractTree) {
+		return pgf.graphvizAbstractTree(grammarURL,abstractTree);
+	}
+
+	public String graphvizParseTree(String abstractTree, String lang) {
+		return pgf.graphvizParseTree(grammarURL,abstractTree,lang);
+	}
+
+	public String graphvizAlignment(String abstractTree) {
+		return pgf.graphvizAlignment(grammarURL,abstractTree);
+	}
+
+	public Request browse(String id, String href, String cssClass, RequestCallback callback) {
+		return pgf.browse(grammarURL, id, href, cssClass, callback);
+	}
+
+	public JSONRequest generateAll(String cat, int depth, int limit, PGF.GenerationCallback callback) {
+		return pgf.generateAll(grammarURL, cat, depth, limit, outputLanguage, callback);
+	}
+
+	public JSONRequest generateRandom(String cat, int depth, int limit, PGF.GenerationCallback callback) {
+		return pgf.generateRandom(grammarURL, cat, depth, limit, outputLanguage, callback);
+	}
+
+	//
+	// Settings
+	//
+	
+	public String getPGFName() {
+		return pgfName;
+	}
+
+	public void setPGFName(String pgfName) {
+		this.pgfName = pgfName;
+		this.grammarURL = baseURL + "/" + pgfName;
+		this.inputLanguage = null;
+		this.outputLanguage = null;
+		this.cat = null;
+		updateSelectedGrammar();
+	}
+
+	public String getGrammarURL() {
+		return grammarURL;
+	}
+
+	public void setGrammarURL(String grammarURL) {
+		this.pgfName = null;
+		this.grammarURL = grammarURL;
+		this.inputLanguage = null;
+		this.outputLanguage = null;
+		this.cat = null;
+		updateSelectedGrammar();
+	}
+
+	public String getInputLanguage() {
+		return inputLanguage;
+	}
+
+	public void setInputLanguage(String inputLanguage) {
+		this.inputLanguage = inputLanguage;
+		fireInputLanguageChanged();
+	}
+
+	public String getOutputLanguage() {
+		return outputLanguage;
+	}
+
+	public void setOutputLanguage(String outputLanguage) {
+		this.outputLanguage = outputLanguage;
+		fireOutputLanguageChanged();
+	}
+
+	public String getStartCategory() {
+		return cat;
+	}
+
+	public void setStartCategory(String cat) {
+		this.cat = cat;
+		fireStartCategoryChanged();
+	}
+
+	public JsArrayString getCategories() {
+		return categories;
+	}
+
+	public JsArrayString getFunctions() {
+		return functions;
+	}
+	
+	
+	//
+	// Information about the available grammars
+	//
+	public List<String> getGrammars() {
+		return grammars;
+	}
+
+	//
+	// Information about the selected grammar
+	//
+	private void clearCachedInfo () {
+		languages = null;
+	}
+
+	public String getUserLanguage () {
+		return userLanguage;
+	}
+
+	public String getLanguageCode (String language) {
+		PGF.Language l = languages.get(language);
+		return l == null ? null : l.getLanguageCode();
+	}
+
+	public Collection<String> getAllLanguages() {
+		return languages.keySet();
+	}
+	
+	//
+	// Listeners
+	//
+	
+	public interface SettingsListener {
+		public void onAvailableGrammarsChanged();
+		public void onSelectedGrammarChanged();
+		public void onInputLanguageChanged();
+		public void onOutputLanguageChanged();
+		public void onStartCategoryChanged();
+		public void onSettingsError(String msg, Throwable e);
+	}
+	
+	public static class SettingsAdapter implements SettingsListener {
+		public void onAvailableGrammarsChanged() {}
+		public void onSelectedGrammarChanged() {}
+		public void onInputLanguageChanged() {}
+		public void onOutputLanguageChanged() {}
+		public void onStartCategoryChanged() {}
+		public void onSettingsError(String msg, Throwable e) {}
+	}
+
+	public void addSettingsListener(SettingsListener listener) {
+		listeners.add(listener);
+	}
+
+	protected void fireAvailableGrammarsChanged() {
+		for (SettingsListener listener : listeners) {
+			listener.onAvailableGrammarsChanged();
+		}
+	}
+
+	protected void fireSelectedGrammarChanged() {
+		for (SettingsListener listener : listeners) {
+			listener.onSelectedGrammarChanged();
+		}
+	}
+
+	protected void fireInputLanguageChanged() {
+		for (SettingsListener listener : listeners) {
+			listener.onInputLanguageChanged();
+		}
+	}
+
+	protected void fireOutputLanguageChanged() {
+		for (SettingsListener listener : listeners) {
+			listener.onOutputLanguageChanged();
+		}
+	}
+	
+	protected void fireStartCategoryChanged() {
+		for (SettingsListener listener : listeners) {
+			listener.onStartCategoryChanged();
+		}
+	}
+	
+	protected void fireSettingsError(String msg, Throwable e) {
+		for (SettingsListener listener : listeners) {
+			listener.onSettingsError(msg, e);
+		}
+	}
+	
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/QueryPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/QueryPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/QueryPanel.java
@@ -0,0 +1,144 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.http.client.*;
+import com.google.gwt.user.client.ui.*;
+
+public class QueryPanel extends Composite {
+
+	private PGFWrapper pgf;
+	private StatusPopup statusPopup;
+	private TextArea queryBox;
+	private VerticalPanel outputPanel;
+	private JSONRequest executeRequest = null;
+
+	public QueryPanel(PGFWrapper pgf, StatusPopup statusPopup) {
+		this.pgf = pgf;
+		this.statusPopup = statusPopup;
+
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.add(createQueryPanel());
+
+		initWidget(vPanel);
+		setStylePrimaryName("my-QueryPanel");
+
+		pgf.addSettingsListener(new MySettingsListener());
+	}
+
+	protected Widget createQueryPanel() {
+		queryBox = new TextArea();
+		queryBox.setStylePrimaryName("my-QueryBox");
+		queryBox.setTitle("Goal category");
+
+		HorizontalPanel boxPanel = new HorizontalPanel();
+		boxPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+		boxPanel.setSpacing(5);
+		
+		final TextBox limitBox = new TextBox();
+		limitBox.setTitle("Upper limit of the number of examples generated");
+		limitBox.setWidth("5em");
+		limitBox.setText("10");
+		boxPanel.add(new Label("limit:"));
+		boxPanel.add(limitBox);
+
+		boxPanel.add(new HTML(""));
+
+		final TextBox depthBox = new TextBox();
+		depthBox.setTitle("Maximal depth for every example");
+		depthBox.setWidth("5em");
+		depthBox.setText("4");
+		boxPanel.add(new Label("depth:"));
+		boxPanel.add(depthBox);
+		
+		boxPanel.add(new HTML(""));
+
+		final CheckBox randomBox = new CheckBox();
+		randomBox.setTitle("random/exhaustive generation");
+		randomBox.setText("random");
+		boxPanel.add(randomBox);
+
+		outputPanel = new VerticalPanel();
+		outputPanel.addStyleName("my-translations");
+		outputPanel.addStyleDependentName("working");
+
+		Button execButton = new Button("Execute");
+
+		DecoratorPanel queryDecorator = new DecoratorPanel();
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.add(new Label("Query"));
+		HorizontalPanel hPanel = new HorizontalPanel();
+		hPanel.add(queryBox);
+		hPanel.add(execButton);
+		vPanel.add(hPanel);
+		vPanel.add(boxPanel);
+		queryDecorator.add(vPanel);
+
+		VerticalPanel queryPanel = new VerticalPanel();
+		queryPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+		queryPanel.add(queryDecorator);
+		queryPanel.add(outputPanel);
+		
+		execButton.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+				if (executeRequest != null) {
+					executeRequest.cancel();
+				}
+		
+				PGF.GenerationCallback callback = new PGF.GenerationCallback() {
+					public void onResult(IterableJsArray<PGF.Linearizations> result) {
+						executeRequest = null;
+						
+						outputPanel.clear();
+						outputPanel.removeStyleDependentName("working");
+
+						for (PGF.Linearizations lins : result.iterable()) {
+							LinearizationsPanel lin = new LinearizationsPanel(pgf, lins);
+							lin.setWidth("100%");
+							outputPanel.add(lin);
+						}
+					}
+
+					public void onError(Throwable e) {
+						executeRequest = null;
+						statusPopup.showError("The execution failed", e);
+					}
+				};
+			
+				int depth, limit;
+				try {
+					depth = Integer.parseInt(depthBox.getText());
+					limit = Integer.parseInt(limitBox.getText());
+				} catch (NumberFormatException e) {
+					statusPopup.showError("Invalid depth/limit parameter", e);
+					return;
+				}
+
+				if (randomBox.getValue())
+					executeRequest = pgf.generateRandom(queryBox.getText(), depth, limit, callback);
+				else
+					executeRequest = pgf.generateAll(queryBox.getText(), depth, limit, callback);
+			}
+		});
+		
+		return queryPanel;
+	}
+
+	protected class MySettingsListener implements PGFWrapper.SettingsListener {
+
+		public MySettingsListener() {
+		}
+
+		public void onAvailableGrammarsChanged() { }
+
+		public void onSelectedGrammarChanged() {
+			queryBox.setText("");
+			outputPanel.clear();
+		}
+
+		public void onInputLanguageChanged() { }
+		public void onOutputLanguageChanged() {	}
+		public void onStartCategoryChanged() { }
+		public void onSettingsError(String msg, Throwable e) { }
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SettingsPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SettingsPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SettingsPanel.java
@@ -0,0 +1,111 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.user.client.ui.*;
+
+public class SettingsPanel extends Composite {
+
+	private PGFWrapper pgf;
+
+	private MyListBox grammarBox;
+	private MyListBox fromLangBox;
+	private MyListBox toLangBox;
+
+	public SettingsPanel (PGFWrapper pgf) {
+		this(pgf, true, true);
+	}
+
+	public SettingsPanel (PGFWrapper pgf, boolean showPGFName, boolean showOutputLanguage) {
+		this.pgf = pgf;
+		
+		HorizontalPanel settingsPanel = new HorizontalPanel();
+		settingsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
+		settingsPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+
+		if (showPGFName) {
+			grammarBox = new MyListBox();
+			grammarBox.addChangeListener(new ChangeListener() {
+				public void onChange(Widget sender) {
+					SettingsPanel.this.pgf.setPGFName(grammarBox.getSelectedValue());
+				}
+			});			
+			settingsPanel.add(new FormWidget("Grammar:", grammarBox));
+		}
+
+		fromLangBox = new MyListBox();
+		fromLangBox.addChangeListener(new ChangeListener() {
+			public void onChange(Widget sender) {
+				SettingsPanel.this.pgf.setInputLanguage(fromLangBox.getSelectedValue());
+			}
+		});
+		settingsPanel.add(new FormWidget("From:", fromLangBox));
+
+		if (showOutputLanguage) {
+			toLangBox = new MyListBox();
+			toLangBox.addChangeListener(new ChangeListener() {
+				public void onChange(Widget sender) {
+					SettingsPanel.this.pgf.setOutputLanguage(toLangBox.getSelectedValue());
+				}
+			});
+			settingsPanel.add(new FormWidget("To:", toLangBox));
+		}
+
+		initWidget(settingsPanel);
+		setStylePrimaryName("my-SettingsPanel");
+
+		pgf.addSettingsListener(new MySettingsListener());
+	}
+
+	private static class FormWidget extends HorizontalPanel {
+		public FormWidget(String label, Widget w) {
+			setStylePrimaryName(".my-FormWidget");
+			setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+			add(new Label(label));
+			add(w);
+		}
+	}
+	
+	private class MySettingsListener implements PGFWrapper.SettingsListener {
+		public void onAvailableGrammarsChanged() {
+			if (grammarBox != null) {
+				grammarBox.clear();
+				grammarBox.addItems(pgf.getGrammars());
+			}
+		}
+		public void onSelectedGrammarChanged() {
+			if (grammarBox != null) {
+				grammarBox.setSelectedValue(pgf.getPGFName());
+			}
+			if (fromLangBox != null) {
+				fromLangBox.clear();
+				fromLangBox.addItem("Any language", "");
+				fromLangBox.addItems(pgf.getAllLanguages());
+				String inputLanguage = pgf.getInputLanguage();
+				if (inputLanguage != null) {
+					fromLangBox.setSelectedValue(inputLanguage);
+				}
+			}
+			if (toLangBox != null) {
+				toLangBox.clear();
+				toLangBox.addItem("All languages", "");		
+				toLangBox.addItems(pgf.getAllLanguages());
+				String outputLanguage = pgf.getOutputLanguage();
+				if (outputLanguage != null) {
+					fromLangBox.setSelectedValue(outputLanguage);
+				}
+			}
+		}
+		public void onInputLanguageChanged() {
+			if (fromLangBox != null) {
+				fromLangBox.setSelectedValue(pgf.getInputLanguage());
+			}
+		}
+		public void onOutputLanguageChanged() {
+			if (toLangBox != null) {
+				toLangBox.setSelectedValue(pgf.getOutputLanguage());
+			}
+		}
+		public void onStartCategoryChanged() { }
+		public void onSettingsError(String msg, Throwable e) { }
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/StatusPopup.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/StatusPopup.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/StatusPopup.java
@@ -0,0 +1,36 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PopupPanel;
+
+public class StatusPopup extends PopupPanel {
+
+	private Label label = new Label();
+
+	public StatusPopup () {
+		super(true, true);
+		label = new Label();
+		add(label);
+	}
+
+	public void setStatus(String msg) {
+		removeStyleDependentName("error");
+		label.setText(msg);
+		center();
+	}
+
+	public void showError(String msg, Throwable e) {
+		GWT.log(msg, e);
+		addStyleDependentName("error");
+		label.setText(msg);
+		center();
+	}
+
+	public void clearStatus() {
+		removeStyleDependentName("error");
+		label.setText("");
+		hide();
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SubList.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SubList.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SubList.java
@@ -0,0 +1,37 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.AbstractList;
+import java.util.List;
+
+/** Work-around for missing List.subList() method in GWT JRE API emulation. */
+public class SubList<T> extends AbstractList<T> {
+
+	private List<T> list;
+
+	private int fromIndex;
+
+	private int toIndex;
+
+	public SubList(List<T> list, int fromIndex, int toIndex) {
+		this.list = list;
+		this.fromIndex = fromIndex;
+		this.toIndex = toIndex;
+		if (fromIndex < 0 || toIndex > list.size())
+			throw new IndexOutOfBoundsException("Endpoint index value out of range");
+		if (fromIndex > toIndex)
+			throw new IllegalArgumentException("Endpoint indices out of order");
+	}
+
+	public T get(int index) {
+		return list.get(fromIndex + index);
+	}
+
+	public int size() {
+		return toIndex - fromIndex;
+	}
+
+	public static <T> SubList<T> makeSubList(List<T> list, int fromIndex, int toIndex) {
+		return new SubList<T>(list, fromIndex, toIndex);
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SuggestPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SuggestPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/SuggestPanel.java
@@ -0,0 +1,102 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.*;
+
+public class SuggestPanel extends Composite implements HasText {
+
+	private SuggestBox suggest;
+	private Button submitButton;
+
+	private List<SubmitListener> listeners = new LinkedList<SubmitListener>();
+
+	public SuggestPanel (PGFWrapper pgf) {
+
+		CompletionOracle oracle = new CompletionOracle(pgf, new CompletionOracle.ErrorHandler() {
+			public void onError(Throwable e) {
+				GWT.log("Completion failed", e);
+			}
+		});
+
+		suggest = new SuggestBox(oracle);
+		suggest.setLimit(10);
+		suggest.addKeyboardListener(new KeyboardListenerAdapter() {
+			public void onKeyUp (Widget sender, char keyCode, int modifiers) {
+				if (keyCode == KEY_ENTER) {
+					submit();
+				}
+			}
+		});
+
+		submitButton = new Button("Submit");
+		submitButton.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+				submit();
+			}
+		});
+
+		DockPanel mainPanel = new DockPanel();
+		mainPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+		mainPanel.add(suggest, DockPanel.CENTER);
+		mainPanel.add(submitButton, DockPanel.EAST);
+
+		initWidget(mainPanel);
+		setStylePrimaryName("my-SuggestPanel");
+
+	}
+
+	public int getLimit() {
+		return suggest.getLimit();
+	}
+
+	public String getText() {
+		return suggest.getText();
+	}
+
+	public String getTitle() {
+		return suggest.getTitle();
+	}
+
+	public void onLoad() {
+		suggest.setFocus(true);
+	}
+
+	public void setButtonText (String text) {
+		submitButton.setText(text);
+	}
+
+	public void setEnabled(boolean enabled) {
+		submitButton.setEnabled(enabled);
+	}
+
+	public void setLimit(int limit) {
+		suggest.setLimit(limit);
+	}
+
+	public void setText (String text) {
+		suggest.setText(text);
+	}
+
+	public void setTitle(String title) {
+		suggest.setTitle(title);
+	}
+
+	public void addSubmitListener(SubmitListener listener) {
+		listeners.add(listener);
+	}
+
+	public void submit() {
+		String text = getText();
+		for (SubmitListener listener : listeners) {
+			listener.onSubmit(text);
+		}
+	}
+
+	public interface SubmitListener {
+		public void onSubmit(String text);
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java
@@ -0,0 +1,600 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.*;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.event.dom.client.*;
+import com.google.gwt.event.logical.shared.*;
+import com.google.gwt.event.shared.*;
+
+public class TextInputPanel extends Composite implements Focusable, HasValueChangeHandlers<String>, HasSelectionHandlers<String> {
+
+	protected ContentService contentService;
+	protected StatusPopup statusPopup;
+	protected FlowPanel textPanel = null;
+	protected FlowPanel mainPanel = null;
+	protected FocusPanel focusPanel = null;
+	protected Panel focusedPanel = null;
+	protected List<Panel> selectedPanels = null;
+	protected List<Panel> errorPanels = null;
+	protected Panel tempPanel = null;
+	protected Label status = null;
+	protected NavigationController navigationController;
+	protected MagnetSearchBox searchBox = null;
+
+	private List<Label> words = new ArrayList<Label>();
+
+	private Map<Panel,   Phrase> mapPanel2Phrase = new HashMap<Panel, Phrase>();
+	private Map<Integer, Phrase> mapFId2Phrase   = new HashMap<Integer, Phrase>();
+
+	private ChangeListenerCollection changeListeners = null;
+	
+	private Integer docId = null;
+
+	public TextInputPanel(ContentService contentService, StatusPopup statusPopup) {
+		this.contentService = contentService;
+		this.statusPopup = statusPopup;
+
+		mainPanel = new FlowPanel();
+		mainPanel.setStylePrimaryName("wordspanel");
+
+		textPanel = new FlowPanel();
+		textPanel.add(mainPanel);
+		textPanel.setStylePrimaryName("wordspanel");
+
+		Label space = new Label(" ");
+		space.setStylePrimaryName("wordspace");
+		textPanel.add(space);
+
+		Panel contentPanel = new FlowPanel();
+		contentPanel.add(textPanel);
+		contentPanel.setStylePrimaryName("text");
+
+		focusPanel = new FocusPanel();
+		focusPanel.setWidget(contentPanel);
+		focusPanel.setStylePrimaryName("frame");
+
+		Widget buttons = createToolbarPanel();
+
+                VerticalPanel wrapper = new VerticalPanel();
+		wrapper.add(buttons);
+		wrapper.add(focusPanel);
+		initWidget(wrapper);
+		setStylePrimaryName("my-TextInputPanel");
+
+		navigationController = new NavigationController();
+		focusPanel.addKeyDownHandler(navigationController);
+	}
+
+	protected Widget createToolbarPanel() {
+		HorizontalPanel toolbar = new HorizontalPanel();
+		toolbar.setStylePrimaryName("toolbar");
+
+		Panel buttons = new HorizontalPanel();
+		toolbar.add(buttons);
+		toolbar.setCellHorizontalAlignment(buttons,HorizontalPanel.ALIGN_LEFT);
+		toolbar.setCellVerticalAlignment(buttons,HorizontalPanel.ALIGN_MIDDLE);
+
+		Image clearButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",0,0,20,20);
+		clearButton.setTitle("Clears the whole document.");
+		clearButton.setStylePrimaryName("toolbar-button");
+		clearButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				clear();
+			}
+		});
+		buttons.add(clearButton);
+
+ 		Image saveButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",20,0,20,20);
+		saveButton.setTitle("Save the document.");
+		saveButton.setStylePrimaryName("toolbar-button");
+		saveButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				save();
+			}
+		});
+		buttons.add(saveButton);
+
+ 		Image deleteLastButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",40,0,20,20);
+		deleteLastButton.setTitle("Removes the last word.");
+		deleteLastButton.setStylePrimaryName("toolbar-button");
+		deleteLastButton.addClickListener(new ClickListener () {
+			public void onClick(Widget sender) {
+				deleteLast();
+			}
+		});
+		buttons.add(deleteLastButton);
+
+ 		status = new Label();
+		status.setTitle("The currently selected category.");
+		status.setStylePrimaryName("status");
+		toolbar.add(status);
+		toolbar.setCellHorizontalAlignment(status,HorizontalPanel.ALIGN_RIGHT);
+		toolbar.setCellVerticalAlignment(status,HorizontalPanel.ALIGN_MIDDLE);
+
+		return toolbar;
+	}
+
+	public void renderBracketedString(final PGF.BracketedString bs) {
+		words.clear();
+		mapPanel2Phrase.clear();
+		mapFId2Phrase.clear();
+		mainPanel.clear();
+		selectedPanels = null;
+		focusedPanel = null;
+		errorPanels = null;
+		tempPanel = null;
+
+		Widget widget = createWordPanels(bs);
+		mainPanel.add(widget);
+	}
+
+	private Widget createWordPanels(final PGF.BracketedString bs) {
+		if (bs.getToken() != null) {
+			Label wordLabel = new Label(bs.getToken());
+			wordLabel.setStylePrimaryName("wordlabel");
+			wordLabel.addClickListener(navigationController);
+			words.add(wordLabel);
+			return wordLabel;
+		} else {
+			FlowPanel panel = new FlowPanel();
+			panel.setStylePrimaryName("wordspanel");
+
+			Integer fid = new Integer(bs.getFId());
+			Phrase phrase = mapFId2Phrase.get(fid);
+			if (phrase == null) {
+				phrase = new Phrase();
+				phrase.cat = bs.getCat();
+				phrase.panels = new ArrayList<Panel>();
+				mapFId2Phrase.put(fid,phrase);
+			}
+			phrase.panels.add(panel);
+			mapPanel2Phrase.put(panel, phrase);
+
+			for (PGF.BracketedString child : bs.getChildren()) {
+				if (panel.getWidgetCount() > 0) {
+					Label space = new Label(" ");
+					space.setStylePrimaryName("wordspace");
+					panel.add(space);
+				}
+				panel.add(createWordPanels(child));
+			}
+			return panel;
+		}
+	}
+
+	public void clear() {
+		setSearchTerm("");
+		words.clear();
+		mapPanel2Phrase.clear();
+		mapFId2Phrase.clear();
+		mainPanel.clear();
+		selectedPanels = null;
+		focusedPanel = null;
+		errorPanels = null;
+		tempPanel = null;
+		docId = null;
+		fireValueChange();
+	}
+	
+	public void save() {
+		statusPopup.setStatus("Saving...");
+		
+		contentService.save(docId, getText(), new ContentService.SaveCallback() {
+			public void onResult(ContentService.DocumentSignature sign) {
+				docId = new Integer(sign.getId());
+				statusPopup.clearStatus();
+			}
+
+			public void onError(Throwable e) {
+				statusPopup.showError("Saving failed", e);
+			}
+		});
+	}
+	
+	public void load(Object id) {
+		statusPopup.setStatus("Loading...");
+		
+		contentService.load(id, new ContentService.LoadCallback() {
+			public void onResult(ContentService.Document document) {
+				clear();
+				
+				docId = new Integer(document.getId());
+				showSearchBox();
+				searchBox.setText(document.getContent());
+				
+				statusPopup.clearStatus();
+			}
+
+			public void onError(Throwable e) {
+				statusPopup.showError("Saving failed", e);
+			}
+		});
+	}
+
+	public void addMagnet(Magnet magnet) {
+		Label wordLabel = new Label(magnet.getText());
+		wordLabel.setStylePrimaryName("wordlabel");
+		getTempPanel().add(wordLabel);
+		words.add(wordLabel);
+
+		fireValueChange();
+	}
+
+	public String deleteLast() {
+		int wordsCount = words.size();
+		if (wordsCount <= 0)
+			return null;
+		Label lastWord = words.remove(wordsCount-1);
+
+		setSearchTerm("");
+		mapPanel2Phrase.clear();
+		mapFId2Phrase.clear();
+		mainPanel.clear();
+		selectedPanels = null;
+		focusedPanel = null;
+		errorPanels = null;
+		tempPanel = null;
+		for (Label word : words) {
+			if (((FlowPanel) getTempPanel()).getWidgetCount() > 0) {
+				Label space = new Label(" ");
+				space.setStylePrimaryName("wordspace");
+				getTempPanel().add(space);
+			}
+			getTempPanel().add(word);
+		}
+		fireValueChange();
+		
+		return lastWord.getText();
+	}
+
+	public void showSearchBox() {
+		if (searchBox == null) {
+			searchBox = new MagnetSearchBox();
+			SearchBoxKeyboardHandler handler = new SearchBoxKeyboardHandler();
+			searchBox.addKeyUpHandler(handler);
+			searchBox.addKeyDownHandler(handler);
+
+			textPanel.add(searchBox);
+			searchBox.setFocus(true);
+		}
+	}
+
+	public void hideSearchBox() {
+		if (searchBox != null) {
+			searchBox.removeFromParent();
+			searchBox = null;
+		}
+	}
+
+	public void setSearchTerm(String term) {
+		if (searchBox != null) {
+			searchBox.setText(term);
+			if ("".equals(term))
+				searchBox.setCursorPos(0);
+		}
+	}
+
+	public String getSearchTerm() {
+		if (searchBox != null)
+			return searchBox.getText();
+		else
+			return null;
+	}
+
+	public void showSearchError() {
+		if (searchBox != null) {
+			searchBox.addStyleDependentName("error");
+		}
+	}
+
+	public void clearSearchError() {
+		if (searchBox != null) {
+			searchBox.removeStyleDependentName("error");
+		}
+	}
+
+	public void showError(int fid) {
+		if (errorPanels != null) {
+			for (Panel panel : errorPanels) {
+				panel.removeStyleDependentName("error");
+			}
+			errorPanels = null;
+		}
+
+		Phrase phrase = mapFId2Phrase.get(fid);
+		if (phrase != null) {
+			errorPanels = phrase.panels;
+			if (errorPanels != null) {
+				for (Panel selPanel : errorPanels) {
+					selPanel.addStyleDependentName("error");
+				}
+			}
+		}
+	}
+
+	private Panel getTempPanel() {
+		if (tempPanel == null) {
+			if (mainPanel.getWidgetCount() > 0) {
+				Label space = new Label(" ");
+				space.setStylePrimaryName("wordspace");
+				mainPanel.add(space);
+			}
+
+			tempPanel = new FlowPanel();
+			tempPanel.setStylePrimaryName("wordspanel");
+			mainPanel.add(tempPanel);
+		}
+		return tempPanel;
+	}
+
+	protected void fireValueChange() {
+		DeferredCommand.addCommand(new Command() {
+			public void execute() {
+				ValueChangeEvent.fire(TextInputPanel.this, getText());
+			}
+		});
+	}
+
+	protected void fireSelection() {
+		SelectionEvent.fire(this, (searchBox == null) ? "" : searchBox.getText());
+	}
+
+	public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) {
+		return addHandler(handler, ValueChangeEvent.getType());
+	}
+
+	public HandlerRegistration addSelectionHandler(SelectionHandler<String> handler) {
+		return addHandler(handler, SelectionEvent.getType());
+	}
+
+	public String getText () {
+		StringBuilder sb = new StringBuilder();
+		for (Label word : words) {
+			if (sb.length() > 0) {
+				sb.append(' ');
+			}
+			sb.append(word.getText());
+		}
+		return sb.toString();
+	}
+
+	public int getTabIndex() {
+		return focusPanel.getTabIndex();
+	}
+
+	public void setTabIndex(int index) {
+		focusPanel.setTabIndex(index);
+	}
+
+	public void setAccessKey(char key) {
+		focusPanel.setAccessKey(key);
+	}
+
+	public void setFocus(boolean focused) {
+		focusPanel.setFocus(focused);
+	}
+
+	private class Phrase {
+		public String cat;
+		public ArrayList<Panel> panels;
+	}
+
+	private final class NavigationController implements KeyDownHandler, ClickListener {
+
+		public void onKeyDown(KeyDownEvent event) {
+			switch (event.getNativeKeyCode()) {
+				case KeyCodes.KEY_UP:
+					if (focusedPanel != null) {
+						Panel firstUp = null;
+						FlowPanel parent = (FlowPanel) focusedPanel.getParent();
+						while (parent != mainPanel) {
+							if (parent.getWidgetCount() > 1) {
+								firstUp = parent;
+								break;
+							}
+
+							parent = (FlowPanel) parent.getParent();
+						}
+
+						if (firstUp != null)
+							setFocusedPanel(firstUp);
+						event.stopPropagation();
+					}
+					break;
+				case KeyCodes.KEY_DOWN:
+					if (focusedPanel != null) {
+						Panel firstDown = null;
+						for (Widget child : focusedPanel) {
+							if (child instanceof Panel) {
+								firstDown = (Panel) child;
+								break;
+							}
+						}
+						if (firstDown != null)
+							setFocusedPanel(firstDown);
+						event.stopPropagation();
+					}
+					break;
+				case KeyCodes.KEY_LEFT:
+					if (focusedPanel != null) {
+						Panel firstLeft = null;
+						Panel parent = (Panel) focusedPanel.getParent();
+						for (Widget child : parent) {
+							if (child instanceof Panel) {
+								if (child == focusedPanel)
+									break;
+								firstLeft = (Panel) child;
+							}
+						}
+
+						if (firstLeft == null) {
+							if (parent != mainPanel)
+								firstLeft = parent;
+						} else {
+							for (;;) {
+								Panel lastChild = null;
+								for (Widget child : firstLeft) {
+									if (child instanceof Panel) {
+										lastChild = (Panel) child;
+									}
+								}
+								if (lastChild == null)
+									break;
+								firstLeft = lastChild;
+							}
+						}
+						if (firstLeft != null)
+							setFocusedPanel(firstLeft);
+						event.stopPropagation();
+					}
+					break;
+				case KeyCodes.KEY_RIGHT:
+					if (focusedPanel != null) {
+						Panel firstRight = null;
+						Panel parent = (Panel) focusedPanel.getParent();
+						Widget prev = null;
+						for (Widget child : parent) {
+							if (child instanceof Panel) {
+								if (prev == focusedPanel) {
+									firstRight = (Panel) child;
+									break;
+								}
+								prev = child;
+							}
+						}
+
+						if (firstRight == null) {
+							if (parent != mainPanel)
+								firstRight = parent;
+						} else {
+							for (;;) {
+								Panel firstChild = null;
+								for (Widget child : firstRight) {
+									if (child instanceof Panel) {
+										firstChild = (Panel) child;
+										break;
+									}
+								}
+								if (firstChild == null)
+									break;
+								firstRight = firstChild;
+							}
+						}
+						if (firstRight != null)
+							setFocusedPanel(firstRight);
+						event.stopPropagation();
+					}
+					break;
+				case KeyCodes.KEY_ENTER:
+				case KeyCodes.KEY_ESCAPE:
+					break;
+				default:
+					if (searchBox == null) {
+						showSearchBox();
+						searchBox.fireEvent(event);
+					}
+			}
+		}
+
+		public void onClick(Widget sender) {
+			FlowPanel panel = (FlowPanel) sender.getParent();
+			FlowPanel tmpPanel = panel;
+			while (tmpPanel != mainPanel) {
+				FlowPanel parent = (FlowPanel) tmpPanel.getParent();
+
+				if (tmpPanel == focusedPanel && parent != mainPanel) {
+					panel = parent;
+					break;
+				}
+
+				tmpPanel = parent;
+			}
+
+			tmpPanel = (FlowPanel) panel.getParent();
+			while (tmpPanel != mainPanel) {
+				if (tmpPanel.getWidgetCount() > 1)
+					break;
+
+				panel = tmpPanel;
+				tmpPanel = (FlowPanel) panel.getParent();
+			}
+
+			setFocusedPanel(panel);
+		}
+
+		private void setFocusedPanel(Panel panel) {
+			if (selectedPanels != null) {
+				for (Panel tmpPanel : selectedPanels) {
+					tmpPanel.removeStyleDependentName("selected");
+				}
+				selectedPanels = null;
+			}
+
+			if (focusedPanel != null) {
+				focusedPanel.removeStyleDependentName("focused");
+				focusedPanel = null;
+			}
+
+			Phrase phrase = mapPanel2Phrase.get(panel);
+			if (phrase != null) {
+				status.setText(phrase.cat);
+				selectedPanels = phrase.panels;
+				if (selectedPanels != null) {
+					for (Panel selPanel : selectedPanels) {
+						selPanel.addStyleDependentName("selected");
+					}
+				}
+
+				focusedPanel = panel;
+				focusedPanel.addStyleDependentName("focused");
+			}
+		}
+	}
+
+	private final class SearchBoxKeyboardHandler implements KeyUpHandler, KeyDownHandler {
+
+		public void onKeyDown(KeyDownEvent event) {
+			switch (event.getNativeKeyCode()) {
+				case KeyCodes.KEY_ESCAPE:
+					hideSearchBox();
+					fireSelection();
+					setFocus(true);
+					event.stopPropagation();
+					break;
+				case KeyCodes.KEY_ENTER:
+					searchBox.setText(searchBox.getText()+" ");
+					fireSelection();
+					hideSearchBox();
+					setFocus(true);
+					event.stopPropagation();
+					break;
+				case KeyCodes.KEY_BACKSPACE:
+					if ("".equals(searchBox.getText())) {
+						String word = deleteLast();
+						searchBox.setText(word);
+						searchBox.setCursorPos(word.length());
+						event.stopPropagation();
+						event.preventDefault();
+					}
+					break;
+			}
+		}
+
+		public void onKeyUp(KeyUpEvent event) {
+			switch (event.getNativeKeyCode()) {
+				case KeyCodes.KEY_ESCAPE:
+				case KeyCodes.KEY_ENTER:
+				case KeyCodes.KEY_UP:
+				case KeyCodes.KEY_DOWN:
+				case KeyCodes.KEY_LEFT:
+				case KeyCodes.KEY_RIGHT:
+					break;
+				default:
+					fireSelection();
+			}
+		}
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TranslateApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TranslateApp.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TranslateApp.java
@@ -0,0 +1,321 @@
+package org.grammaticalframework.ui.gwt.client;
+
+import java.util.List;
+
+import com.google.gwt.core.client.*;
+import com.google.gwt.user.client.*;
+import com.google.gwt.user.client.ui.*;
+
+
+public class TranslateApp implements EntryPoint {
+
+	protected static final String pgfBaseURL = "/grammars";
+
+	protected PGFWrapper pgf;
+
+	protected SuggestPanel suggestPanel;
+	protected VerticalPanel outputPanel;
+	protected StatusPopup statusPopup;
+
+	//
+	// Text
+	//
+	
+	public String getText () {
+		return suggestPanel.getText();
+	}
+	
+	protected void update () {
+		translate();
+	}
+	
+	//
+	// Translation
+	//
+	
+	protected void translate() {
+		outputPanel.clear();
+		outputPanel.addStyleDependentName("working");
+		pgf.translate(getText(), 
+				new PGF.TranslateCallback() {
+			public void onResult (IterableJsArray<PGF.TranslationResult> translations) {
+				outputPanel.clear();
+				outputPanel.removeStyleDependentName("working");
+				for (PGF.TranslationResult tr : translations.iterable()) {
+					if (tr.getTranslations() != null) {
+						for (PGF.Linearizations t : tr.getTranslations().iterable()) {
+							outputPanel.add(new LinearizationsPanel(pgf, t));
+						}
+					}
+
+					if (tr.getTypeErrors() != null && tr.getTypeErrors().length > 0) {
+						for (PGF.TcError error : tr.getTypeErrors()) {
+							VerticalPanel panel = new VerticalPanel();
+							panel.addStyleName("my-typeError");
+							Label errLabel = new Label("Type Error");
+							errLabel.addStyleName("my-error-title");
+							HTML  msgHTML  = new HTML("<pre>"+error.getMsg()+"</pre>");
+							panel.add(errLabel);
+							panel.add(msgHTML);
+							outputPanel.add(panel);
+						}
+					}
+				}
+			}
+			public void onError (Throwable e) {
+				showError("Translation failed", e);
+			}
+		});
+	}
+
+	protected Widget createAbsTreeButton(final String abstractTree) {
+		Image treeBtn = new Image("org.grammaticalframework.ui.gwt.TranslateApp/tree-btn.png");
+		treeBtn.addClickListener(
+			new ClickListener() {
+				public void onClick(Widget sender) {
+					// Create a dialog box and set the caption text
+					final DialogBox dialogBox = new DialogBox();
+					dialogBox.setText("Abstract Syntax Tree");
+
+					// Create a table to layout the content
+					HorizontalPanel dialogContents = new HorizontalPanel();
+					dialogContents.setSpacing(4);
+					dialogBox.setWidget(dialogContents);
+
+					// Add an image to the dialog
+					
+					Frame image = new Frame(pgf.graphvizAbstractTree(abstractTree));
+					image.addStyleName("my-treeimage");
+					dialogContents.add(image);
+
+					// Add a close button at the bottom of the dialog
+					Button closeButton = new Button("Close",
+						new ClickListener() {
+							public void onClick(Widget sender) {
+								dialogBox.hide();
+						}
+					});
+					dialogContents.add(closeButton);
+
+					dialogBox.center();
+					dialogBox.show();
+				}
+			});
+		return treeBtn;
+	}
+
+	protected Widget createAlignButton(final String abstractTree) {
+		Image alignBtn = new Image("org.grammaticalframework.ui.gwt.TranslateApp/align-btn.png");
+		alignBtn.addClickListener(
+			new ClickListener() {
+				public void onClick(Widget sender) {
+					// Create a dialog box and set the caption text
+					final DialogBox dialogBox = new DialogBox();
+					dialogBox.setText("Word Alignment");
+
+					// Create a table to layout the content
+					HorizontalPanel dialogContents = new HorizontalPanel();
+					dialogContents.setSpacing(4);
+					dialogBox.setWidget(dialogContents);
+
+					// Add an image to the dialog
+					Frame image = new Frame(pgf.graphvizAlignment(abstractTree));
+					image.addStyleName("my-alignmentimage");
+					dialogContents.add(image);
+
+					// Add a close button at the bottom of the dialog
+					Button closeButton = new Button("Close",
+						new ClickListener() {
+							public void onClick(Widget sender) {
+								dialogBox.hide();
+						}
+					});
+					dialogContents.add(closeButton);
+
+					dialogBox.center();
+					dialogBox.show();
+				}
+			});
+		return alignBtn;
+	}
+
+	protected Widget createTranslation(final String language, final String abstractTree, String text) {
+		Label l = new Label(text);
+		l.addStyleName("my-translation");
+		String lang = pgf.getLanguageCode(language);
+		if (lang != null) {
+			l.getElement().setLang(lang);
+		}
+		l.addClickListener(new ClickListener() {
+			public void onClick(Widget sender) {
+				// Create a dialog box and set the caption text
+				final DialogBox dialogBox = new DialogBox();
+				dialogBox.setText("Parse Tree");
+
+				// Create a table to layout the content
+				HorizontalPanel dialogContents = new HorizontalPanel();
+				dialogContents.setSpacing(4);
+				dialogBox.setWidget(dialogContents);
+
+				// Add an image to the dialog
+				Frame image = new Frame(pgf.graphvizParseTree(abstractTree, language));
+				image.addStyleName("my-treeimage");
+				dialogContents.add(image);
+
+				// Add a close button at the bottom of the dialog
+				Button closeButton = new Button("Close",
+					new ClickListener() {
+						public void onClick(Widget sender) {
+							dialogBox.hide();
+					}
+				});
+				dialogContents.add(closeButton);
+
+				dialogBox.center();
+				dialogBox.show();
+			}
+		});
+		return l;
+	}
+
+	//
+	// Status stuff
+	//
+
+	protected void setStatus(String msg) {
+		statusPopup.setStatus(msg);
+	}
+
+	protected void showError(String msg, Throwable e) {
+		statusPopup.showError(msg, e);
+	}
+
+	protected void clearStatus() {
+		statusPopup.clearStatus();
+	}
+
+	//
+	// GUI
+	//
+	
+	protected Widget createUI() {
+		VerticalPanel vPanel = new VerticalPanel();
+		vPanel.setWidth("100%");
+		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+		vPanel.add(createSuggestPanel());
+        vPanel.add(createSettingsPanel());
+		vPanel.add(createTranslationsPanel());
+
+		return vPanel;
+	}
+
+	protected Widget createSuggestPanel () {
+		suggestPanel = new SuggestPanel(pgf);
+		suggestPanel.setButtonText("Translate");
+		suggestPanel.addSubmitListener(new SuggestPanel.SubmitListener() {
+			public void onSubmit(String text) {
+				translate();
+			}
+		});		
+		return suggestPanel;
+	}
+
+	protected Widget createSettingsPanel () {
+		return new SettingsPanel(pgf);
+	}
+
+	protected Widget createTranslationsPanel () {
+		outputPanel = new VerticalPanel();
+		outputPanel.addStyleName("my-translations");
+		return outputPanel;
+	}
+
+	protected Widget createLoadingWidget () {
+		VerticalPanel loadingPanel = new VerticalPanel();
+		loadingPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+		loadingPanel.add(new Label("Loading..."));
+		return loadingPanel;
+	}
+	
+	//
+	// History stuff
+	//
+	
+	protected class MyHistoryListener implements HistoryListener {
+		public void onHistoryChanged(String historyToken) {
+			updateSettingsFromHistoryToken();
+		}
+	};
+
+	protected void updateSettingsFromHistoryToken() {
+		updateSettingsFromHistoryToken(History.getToken().split("/"));
+	}
+	
+	protected void updateSettingsFromHistoryToken(String[] tokenParts) {
+		if (tokenParts.length >= 1 && tokenParts[0].length() > 0) {
+			setPGFName(tokenParts[0]);
+		}
+		if (tokenParts.length >= 2 && tokenParts[1].length() > 0) {
+			setInputLanguage(tokenParts[1]);
+		}
+	}
+
+	protected void setPGFName (String pgfName) {
+		if (pgfName != null && !pgfName.equals(pgf.getPGFName())) {
+			pgf.setPGFName(pgfName);
+		}
+	}
+
+	protected void setInputLanguage (String inputLanguage) {
+		if (inputLanguage != null && !inputLanguage.equals(pgf.getInputLanguage())) {
+			pgf.setInputLanguage(inputLanguage);	
+		}
+	}
+
+	//
+	// Initialization
+	//
+
+	protected class MySettingsListener implements PGFWrapper.SettingsListener {
+		// Will only happen on load
+		public void onAvailableGrammarsChanged() {
+			if (pgf.getPGFName() == null) {
+				List<String> grammars = pgf.getGrammars();
+				if (!grammars.isEmpty()) {
+					pgf.setPGFName(grammars.get(0));
+				}
+			}			
+		}
+		public void onSelectedGrammarChanged() {
+			if (pgf.getInputLanguage() == null) {
+				GWT.log("Setting input language to user language: " + pgf.getUserLanguage(), null);
+				pgf.setInputLanguage(pgf.getUserLanguage());
+			}
+			update();
+		}
+		public void onInputLanguageChanged() {
+			update();
+		}
+		public void onOutputLanguageChanged() {
+			update();
+		}
+		public void onStartCategoryChanged() {
+			update();
+		}
+		public void onSettingsError(String msg, Throwable e) {
+			showError(msg,e);
+		}
+	}
+
+	public void onModuleLoad() {
+		statusPopup = new StatusPopup();
+
+		pgf = new PGFWrapper(pgfBaseURL);
+		RootPanel.get().add(createUI());
+		pgf.addSettingsListener(new MySettingsListener());
+		History.addHistoryListener(new MyHistoryListener());
+		updateSettingsFromHistoryToken();
+		pgf.updateAvailableGrammars();
+	}
+
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/Selection.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/Selection.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/Selection.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright Miroslav Pokorny
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.grammaticalframework.ui.gwt.client.selection;
+
+import org.grammaticalframework.ui.gwt.client.selection.support.SelectionSupport;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.ui.RootPanel;
+
+/**
+ * The Selection class is a singleton that represents any selection made by the
+ * user typically done with the mouse.
+ * 
+ * @author Miroslav Pokorny (mP)
+ */
+public class Selection extends JavaScriptObject {
+
+	/**
+	 * The browser aware support that takes care of browser difference nasties.
+	 */
+	static private SelectionSupport support = (SelectionSupport) GWT.create(SelectionSupport.class);
+
+	static SelectionSupport getSupport() {
+		return Selection.support;
+	}
+
+	/**
+	 * Returns the document Selection singleton
+	 * 
+	 * @return The singleton instance
+	 */
+	static public Selection getSelection() {
+		return Selection.support.getSelection();
+	}
+
+	protected Selection() {
+		super();
+	}
+
+	final public SelectionEndPoint getStart() {
+		return Selection.getSupport().getStart(this);
+	}
+
+	final public SelectionEndPoint getEnd() {
+		return Selection.getSupport().getEnd(this);
+	}
+
+	final public void select(final SelectionEndPoint start, final SelectionEndPoint end) {
+		Selection.getSupport().select(this, start, end);
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/SelectionEndPoint.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/SelectionEndPoint.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/SelectionEndPoint.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright Miroslav Pokorny
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.grammaticalframework.ui.gwt.client.selection;
+
+import com.google.gwt.dom.client.Text;
+
+/**
+ * An end point uses a combination of a textNode and offset to mark the
+ * start/end of a selection
+ * 
+ * @author Miroslav Pokorny (mP)
+ */
+public class SelectionEndPoint {
+
+	public SelectionEndPoint() {
+		super();
+	}
+
+	public SelectionEndPoint(Text text, final int offset) {
+		super();
+
+		this.setTextNode(text);
+		this.setOffset(offset);
+	}
+
+	/**
+	 * The textNode containing the start/end of the selection.
+	 */
+	private Text textNode;
+
+	public Text getTextNode() {
+		return textNode;
+	}
+
+	public void setTextNode(final Text textNode) {
+		this.textNode = textNode;
+	}
+
+	/**
+	 * The number of characters starting from the beginning of the textNode
+	 * where the selection begins/ends.
+	 */
+	public int offset;
+
+	public int getOffset() {
+		return offset;
+	}
+
+	public void setOffset(final int offset) {
+		this.offset = offset;
+	}
+
+	public String toString() {
+		return super.toString() + ", offset: " + offset + ", textNode\"" + this.textNode + "\"";
+	}
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/InternetExplorerSelectionSupport.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/InternetExplorerSelectionSupport.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/InternetExplorerSelectionSupport.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright Miroslav Pokorny
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.grammaticalframework.ui.gwt.client.selection.support;
+
+import org.grammaticalframework.ui.gwt.client.selection.Selection;
+import org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.dom.client.Text;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+
+/**
+ * A specialised SelectionSupport class that is adapted to handle
+ * InternetExplorer differences from the standard implementation.
+ * 
+ * @author Miroslav Pokorny (mP)
+ */
+public class InternetExplorerSelectionSupport extends SelectionSupport {
+
+	final static String PARENT_NODE = "parentNode";
+
+	@Override
+	native public Selection getSelection()/*-{
+			 return $wnd.document.selection;
+			 }-*/;
+
+	@Override
+	public SelectionEndPoint getStart(final Selection selection) {
+		return this.getStart0(selection);
+	}
+
+	native protected SelectionEndPoint getStart0(final Selection selection) /*-{
+	 var selectionRange = selection.createRange();        
+	 var element = selectionRange.parentElement();
+
+		return this.@org.grammaticalframework.ui.gwt.client.selection.support.InternetExplorerSelectionSupport::getStart1(Lorg/grammaticalframework/ui/gwt/client/selection/Selection;Lcom/google/gwt/user/client/Element;)(selection,element);       
+	 }-*/;
+
+	native protected SelectionEndPoint getStart1(final Selection selection, final Element element)/*-{
+			 var endPoint = null;
+			 
+			 if(! selection.createRange ){
+			 	alert( "selection.createRange" + selection.createRange );
+			 }
+			 
+			 var selectionRange = selection.createRange();
+
+			 var range = selectionRange.duplicate();
+			 range.moveToElementText( element );
+			 range.collapse();        
+			 
+			 // loop thru all the childNodes belonging to element.
+			 var childNodes = element.childNodes;
+			 for( var i = 0; i < childNodes.length; i++ ){
+			 var node = childNodes[ i ];
+			 var nodeType = node.nodeType;
+			 
+			 // found an element check its child nodes...
+			 if( 1 == nodeType ){
+			 endPoint = this.@org.grammaticalframework.ui.gwt.client.selection.support.InternetExplorerSelectionSupport::getStart1(Lorg/grammaticalframework/ui/gwt/client/selection/Selection;Lcom/google/gwt/user/client/Element;)(selection,node);
+			 
+			 if( null == endPoint ){
+			 range.move( "character", node.innerText.toString().length );
+			 continue;
+			 }
+			 // endPoint found stop searching....
+			 break;                
+			 }
+			 
+			 // found a textNode...
+			 if( 3 == nodeType ){
+			 var text = node.data;
+			 for( var j = 0; j < text.length; j++ ){
+			 // found selection start stop searching!
+			 if( selectionRange.compareEndPoints( "StartToStart", range ) == 0 ){
+			 endPoint = @org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint::new(Lcom/google/gwt/dom/client/Text;I)(node,j);
+			 break;
+			 }
+			 range.move("character", 1 );
+			 }
+			 // did the above for loop find the start ? if so stop escape!
+			 if( null != endPoint ){
+			 break;
+			 }
+			 }         
+			 }
+			 
+			 return endPoint;
+			 }-*/;
+
+	@Override
+	public void select(final Selection selection, final SelectionEndPoint start, final SelectionEndPoint end) {
+		this.setStart0(selection, start.getTextNode(), start.getOffset());
+		this.setEnd0(selection, end.getTextNode(), end.getOffset());
+	}
+
+	native private void setStart0(final Selection selection, final Text textNode, final int offset)/*-{
+		 var rangeOffset = offset;
+		 var moveToElement = null;
+			 
+		 // try an element before $textNode counting the number of characters one has moved backwards...
+		 var node = textNode.previousSibling;
+			 
+		 while( node ){
+			 // if a textNode is try its previous sibling...
+			 if( node.nodeType == 3 ){
+			 rangeOffset = rangeOffset + node.data.length;
+			 continue;
+			 }
+			 
+			 // found an element stop searching...
+			 if( node.nodeType == 1 ){
+			 moveToElement = node; 
+			 rangeOffset = rangeOffset + node.innerText.toString().length;
+			 break;
+			 }
+			 
+			 // ignore other types...
+			 node = node.previousSibling;
+		 }
+			 
+		 // if moveToElement is null use textNode's parent.
+		 if( ! moveToElement ){
+		 moveToElement = textNode.parentNode;
+		 }
+			 
+		 // update the start of selection range...
+		 var range = selection.createRange();
+		 range.moveToElementText( moveToElement );
+		 range.moveStart( "character", rangeOffset );
+		 range.select();                        
+	}-*/;
+
+	native private void setEnd0(final Selection selection, final Text textNode, final int offset)/*-{    
+		 var rangeOffset = offset;
+		 var moveToElement = null;
+			 
+		 // try an element before $textNode counting the number of characters one has moved backwards...
+		 var node = textNode.previousSibling;
+			 
+		 while( node ){
+			 // if textNode is try its previous sibling...
+			 if( node.nodeType == 3 ){        
+			 rangeOffset = rangeOffset + node.data.length;
+			 continue;
+			 }
+			 
+			 // found an element stop searching...
+			 if( node.nodeType == 1 ){
+			 moveToElement = node;
+			 rangeOffset = rangeOffset + node.innerText.toString().length;
+			 break;
+			 }
+			 
+			 // ignore other types...
+			 node = node.previousSibling;
+		 }           
+			 
+		 // if moveToElement is null use textNode's parent.
+		 if( ! moveToElement ){
+			 moveToElement = textNode.parentNode;
+		 }
+			 
+		 // update the end of selection range...
+		 var range = selection.createRange();
+		 range.moveToElementText( moveToElement );
+		 range.moveStart( "character", rangeOffset );
+		 range.collapse();
+			 
+		 var selectionRange = selection.createRange();
+		 selectionRange.setEndPoint( "EndToStart", range );
+		 selectionRange.select();                                 
+	}-*/;
+
+	@Override
+	public SelectionEndPoint getEnd(final Selection selection) {
+		return this.getEnd0(selection);
+	}
+
+	protected native SelectionEndPoint getEnd0(final Selection selection) /*-{
+	 var selectionRange = selection.createRange();        
+	 var element = selectionRange.parentElement();
+
+	 return this.@org.grammaticalframework.ui.gwt.client.selection.support.InternetExplorerSelectionSupport::getEnd1(Lorg/grammaticalframework/ui/gwt/client/selection/Selection;Lcom/google/gwt/user/client/Element;)(selection,element);       
+	 }-*/;
+
+	protected native SelectionEndPoint getEnd1(final Selection selection, final Element element)/*-{
+			 var endPoint = null;
+			 
+			 var selectionRange = selection.createRange();
+
+			 var range = selectionRange.duplicate();
+			 range.moveToElementText( element );
+			 range.collapse( true );        
+			 
+			 // loop thru all the childNodes belonging to element.
+			 var childNodes = element.childNodes;
+			 for( var i = 0; i < childNodes.length; i++ ){
+			 var node = childNodes[ i ];
+			 var nodeType = node.nodeType;
+			 
+			 // found an element check its child nodes...
+			 if( 1 == nodeType ){
+			 endPoint = this.@org.grammaticalframework.ui.gwt.client.selection.support.InternetExplorerSelectionSupport::getEnd1(Lorg/grammaticalframework/ui/gwt/client/selection/Selection;Lcom/google/gwt/user/client/Element;)(selection,node);
+			 
+			 if( null == endPoint ){
+			 range.move( "character", node.innerText.toString().length );
+			 continue;
+			 }
+			 // endPoint found stop searching....
+			 break;                
+			 }
+			 
+			 // found a textNode...
+			 if( 3 == nodeType ){
+			 var text = node.data;
+			 for( var j = 0; j < text.length; j++ ){
+			 // found selection end stop searching!
+			 if( selectionRange.compareEndPoints( "EndToStart", range ) == 0 ){
+			 endPoint = @org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint::new(Lcom/google/gwt/dom/client/Text;I)(node,j);
+			 break;
+			 }
+			 range.move( "character", 1 );
+			 }
+			 // did the above for loop find the end ? if so stop escape!
+			 if( null != endPoint ){
+			 break;
+			 }
+			 }         
+			 }
+			 
+			 return endPoint;
+			 }-*/;
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/SelectionSupport.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/SelectionSupport.java
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/selection/support/SelectionSupport.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright Miroslav Pokorny
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.grammaticalframework.ui.gwt.client.selection.support;
+
+import org.grammaticalframework.ui.gwt.client.selection.Selection;
+import org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.dom.client.Text;
+import com.google.gwt.user.client.Element;
+
+/**
+ * This class provides the standard implementation of
+ * 
+ * @author Miroslav Pokorny (mP)
+ */
+public class SelectionSupport {
+
+	public SelectionEndPoint getStart(final Selection selection) {
+		return getStart0(selection);
+	}
+	
+	native private SelectionEndPoint getStart0(final Selection selection) /*-{
+		var node = selection.anchorNode || null;
+		var offset = selection.anchorOffset;
+		return @org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint::new(Lcom/google/gwt/dom/client/Text;I)(value,j);
+	}-*/;
+
+	public SelectionEndPoint getEnd(final Selection selection) {
+		return getEnd0(selection);
+	}
+
+	native private SelectionEndPoint getEnd0(final Selection selection) /*-{
+		var node = selection.focusNode || null;
+		var offset = selection.focusOffset;
+		return @org.grammaticalframework.ui.gwt.client.selection.SelectionEndPoint::new(Lcom/google/gwt/dom/client/Text;I)(value,j);
+	}-*/;
+
+	public void select(final Selection selection, final SelectionEndPoint start, final SelectionEndPoint end) {
+		select0(selection, start.getTextNode(), start.getOffset(), end.getTextNode(), end.getOffset());
+	}
+
+	native private void select0(final Selection selection, final Text startNode, final int startOffset, final Text endNode, final int endOffset)/*-{
+		 var range = startNode.ownerDocument.createRange();
+		 range.setStart(startNode, startOffset);
+		 range.setEnd(endNode, endOffset);
+			 
+		 // delete all ranges then recreate...
+		 selection.removeAllRanges();
+		 selection.addRange(range);
+	}-*/;
+
+	native public Selection getSelection()/*-{
+		return $wnd.getSelection();
+	}-*/;
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css
@@ -0,0 +1,313 @@
+.my-DocumentsPanel {
+  padding: 1em;
+  width: 100%;
+}
+
+.my-DocumentsFrame {
+  width: 100%;
+}
+
+.my-DocumentsSearchFrame {
+    margin-bottom: 0.5em;
+}
+
+.my-DocumentsSearchFrame * {
+    margin: 0 0.4em;
+}
+
+.my-DocumentsHeader {
+  width: 100%;
+  background-attachement: scroll;
+  background-color: #E5E5E5;
+  background-image: url("background.png");
+  background-position: 0px -192px;
+  background-repeat: repeat-x;
+  font-size: 150%;
+}
+
+.my-DocumentsTable {
+  width: 100%;
+  border: 1px solid #E5E5E5;
+  border-collapse: collapse;
+}
+
+.my-DocumentsTable .row td {
+  cursor:pointer;
+  border: 1px solid #E5E5E5;
+}
+
+.my-DocumentsTable .row:hover {
+  background-color: rgb(147, 194, 241);
+}
+
+.my-GrammarsPanel {
+  padding: 1em;
+  width: 100%;
+}
+
+.my-EditorPanel {
+  padding-top: 1em;
+  padding-bottom: 1em
+}
+
+.my-TextInputPanel {
+  width: 100%;
+}
+
+.my-TextInputPanel .frame {
+  margin: 0;
+  padding: 1em;
+  background-color: #F3F3F3;
+  outline: 0;
+}
+
+.my-TextInputPanel .text {
+  padding: 1em;
+  background-color: white;
+  border-top: 1px solid #CCCCCC;
+  border-left: 1px solid #CCCCCC;
+  border-bottom: 2px solid #BBBBBB;
+  border-right: 2px solid #BBBBBB;
+  min-width: 100px;
+  min-height: 100px;
+}
+
+.my-TextInputPanel .toolbar {
+  width: 100%;
+  padding: 3px;
+  background-attachement: scroll;
+  background-color: #E5E5E5;
+  background-image: url("background.png");
+  background-position: 0px -192px;
+  background-repeat: repeat-x;
+}
+
+.toolbar-button {
+  float: left;
+  margin: 2px;
+}
+
+.toolbar-button:hover {
+  margin: 1px;
+  border: 1px solid rgb(147,194,241);
+}
+
+.my-TextInputPanel .toolbar .status {
+  padding: 1px;
+  background-color: #E5E5E5;
+  border: 1px solid #BBBBBB;
+  float: right;
+}
+
+.my-TextInputPanel .searchbox {
+  font-size: 150%;
+  padding: 2px;
+  display: inline;
+  border-bottom: 1px dashed green;
+  outline: 0;
+}
+
+.my-TextInputPanel .searchbox-error {
+  border-bottom: 1px dashed red;
+}
+
+.my-TextInputPanel .wordspanel {
+  padding: 0;
+  display: inline;
+}
+
+.my-TextInputPanel .wordspanel-selected {
+  background-color: rgb(147,194,241);
+}
+
+.my-TextInputPanel .wordspanel-focused {
+  background-color: rgb(147,194,241);
+  border: 1px solid #666;
+}
+
+.my-TextInputPanel .wordspanel-error {
+  border-bottom: 1px dashed red;
+}
+
+.my-TextInputPanel .wordlabel {
+  display: inline;
+  font-size: 150%;
+}
+
+.my-TextInputPanel .wordspace {
+  display: inline;
+  font-size: 150%;
+}
+
+.my-SettingsPanel * {
+    margin: 0 0.4em;
+}
+
+.my-LinksPanel * {
+    margin: 0 0.2em;
+}
+
+.my-LinksPanel .gwt-TabBarItem {
+    font-weight: normal;
+    color: gray;
+    outline: 0;
+}
+
+.my-LinksPanel .gwt-TabBarItem-selected {
+    font-weight: bold;
+    color: black;
+}
+
+.my-LinksPanel .gwt-TabBarItem:hover {
+    text-decoration: underline;
+}
+
+.my-LinksPanel .gwt-TabBarItem-selected:hover {
+    text-decoration: none;
+}
+
+.my-HeaderPanel {
+    width: 100%;
+    margin: 0 0.1em;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    border-bottom-style: solid;
+    border-bottom-width: 1px;
+    border-bottom-color: rgb(122,165,214);
+}
+
+.my-BrowsePanel {
+    width: 100%;
+    margin: 1em;
+    border-width: 5px;
+    border-color: rgb(122,165,214);
+}
+
+.my-BrowsePanel .source {
+    padding: 1em;
+}
+
+.my-BrowseFrame {
+    width: 100%;
+    height: 100%;
+    margin: 1em;
+    border-style:none;
+}
+
+.my-QueryPanel {
+    margin: 1em;
+    border-width: 5px;
+    border-color: rgb(122,165,214);
+}
+
+.my-QueryBox {
+    min-width: 630px;
+    min-height: 94px;
+}
+
+.my-translations {
+    margin-top: 1em;
+}
+
+.my-translation-frame {
+    margin: 0.5em;
+    background: #D0E4F6;
+}
+
+.my-translation-bar {
+    padding-left: 25px;
+    padding-right: 25px;
+    width: 100%;
+}
+
+.my-translation {
+    margin: 0.2em;
+    font-size: 150%;
+    background-repeat: no-repeat;
+    background-position: 0% 50%;
+    cursor:pointer;
+}
+
+.my-translation-btns {
+    background: #DDDDDD;
+    cursor:pointer;
+}
+
+.my-treeimage {
+    width: 650px;
+    height: 520px;
+}
+
+.my-alignmentimage {
+    width: 450px;
+    height: 300px;
+}
+
+.my-typeError {
+    margin: 2px;
+    padding: 12px;
+    font-size: 150%;
+    font-weight: bold;
+    background: #CDFFDA;
+}
+
+.my-typeError .title {
+    background: #DDDDDD;
+}
+
+.my-typeError .content {
+    cursor:pointer;
+}
+
+.my-identifierLink:link {
+    text-decoration: none;
+    color: black;
+}
+
+.my-identifierLink:hover {
+    text-decoration: none;
+    color: black;
+    background-color: rgb(147, 194, 241);
+}
+
+.my-FridgeBagPanel {
+  padding: 0.2em;
+  margin-top: 1.5em;
+  border: 3px solid #dddddd;
+}
+
+.my-FridgeBagPanel-empty {
+  visibility: hidden;
+}
+
+.my-Magnet {
+  float: left;
+  margin: 0.3em;
+  border-width: 1px;
+  border-style: solid;
+  border-color: black;
+  padding: 0.3em;
+  color: black;
+  background-color: white;
+}
+
+.my-SyntaxTable {
+  font-size: 120%;
+}
+
+.my-SyntaxRow {
+  margin:  1px;
+}
+
+.my-SyntaxLang {
+  background: rgb(147,194,241);
+  padding: 2px;
+}
+
+.my-SyntaxLin {
+  border:  1px solid rgb(147,194,241);
+  padding-left:   8px;
+  padding-right:  8px;
+  padding-top:    2px;
+  padding-bottom: 2px;
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Fridge.css b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Fridge.css
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Fridge.css
@@ -0,0 +1,89 @@
+body {
+  background: url("brushed-metal.png");
+}
+
+.my-FridgeApp {
+  
+}
+
+.my-FridgeTextPanel {
+  padding: 0.2em;
+  width: 100%;
+  border: 3px dashed #dddddd;
+}
+
+.my-FridgeTextPanel .magnets {
+  width: 100%;
+}
+
+.my-FridgeTextPanel .buttons {
+  width: 100%;
+}
+
+.my-FridgeTextPanel .buttons button {
+  width: 100%;
+}
+
+.my-FridgeTextPanel-engage {
+  border-color: #666666;
+  background-color: #dddddd;
+}
+
+.my-FridgeBagPanel {
+  padding: 0.2em;
+  border: 3px solid #dddddd;
+}
+
+.my-FridgeBagPanel-empty {
+  visibility: hidden;
+}
+
+.my-PrefixPanel {
+  margin-bottom: 1em;
+}
+
+.my-FridgeTextPanel .my-Magnet {
+  font-size: 150%;
+}
+
+.my-Magnet {
+  float: left;
+  margin: 0.3em;
+  border-width: 1px;
+  border-style: solid;
+  border-color: black;
+  padding: 0.3em;
+  color: black;
+  background-color: white;
+}
+
+.my-TranslationsPanel {
+  padding: 0.2em;
+  border: 3px solid #dddddd;
+  width: 100%;
+}
+
+.my-TranslationsPanel-empty {
+  visibility: hidden; 
+}
+    
+.my-translation {
+    margin: 0.2em;    
+}
+
+.my-typeError {
+    padding: 6px;
+    font-size: 150%;
+    font-weight: bold;
+    background: #B9BEC0;
+}
+
+.my-SettingsPanel {
+  width: 100%;
+  padding: 0.5em 0; 
+  border-top: 1px solid #dddddd;
+}
+
+.my-SettingsPanel .my-FormWidget {
+  margin: 0.2em;
+}
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css
@@ -0,0 +1,82 @@
+/** Add css rules here for your application. */
+
+.my-SuggestPanel {
+    margin: 1em 0 0.5em 0;
+}
+
+.my-SuggestPanel .gwt-SuggestBox {
+    width: 400px;
+    font-size: 150%;
+    margin: 0;
+}
+
+.my-SuggestPanel .gwt-Button {
+    font-size: 150%;
+    margin: 0;
+    margin-left: 2px;
+}
+
+.my-SettingsPanel * {
+    margin: 0 0.4em;
+}
+
+.my-translations {
+    margin-top: 1em;
+}
+
+.my-translation-frame {
+    width: 100%;
+    margin: 0.5em;
+    background: #D0E4F6;
+}
+
+.my-translation-bar {
+    padding-left: 25px;
+    padding-right: 25px;
+    width: 100%;
+}
+
+.my-translation {
+    margin: 0.2em;
+    font-size: 150%;
+    background-repeat: no-repeat;
+    background-position: 0% 50%;
+    cursor:pointer;
+}
+
+.my-typeError {
+    padding: 12px;
+    font-size: 150%;
+    font-weight: bold;
+    background: #CDFFDA;
+}
+
+.my-translation-btns {
+    background: #DDDDDD;
+    cursor:pointer;
+}
+
+.my-treeimage {
+    width: 650px;
+    height: 520px;
+}
+
+.my-alignmentimage {
+    width: 450px;
+    height: 300px;
+}
+
+/*
+* [LANG=bg] { background-image: url("flags/bg.png"); }
+* [LANG=ca] { background-image: url("flags/catalonia.png"); }
+* [LANG=da] { background-image: url("flags/dk.png"); }
+* [LANG=de] { background-image: url("flags/de.png"); }
+* [LANG=en] { background-image: url("flags/gb.png"); }
+* [LANG=fi] { background-image: url("flags/fi.png"); }
+* [LANG=fr] { background-image: url("flags/fr.png"); }
+* [LANG=it] { background-image: url("flags/it.png"); }
+* [LANG=no] { background-image: url("flags/no.png"); }
+* [LANG=ru] { background-image: url("flags/ru.png"); }
+* [LANG=es] { background-image: url("flags/es.png"); }
+* [LANG=sv] { background-image: url("flags/se.png"); }
+*/
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/align-btn.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/align-btn.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/align-btn.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/background.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/background.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/background.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/brushed-metal.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/brushed-metal.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/brushed-metal.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/delete-last.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/delete-last.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/delete-last.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/new.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/new.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/new.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/textinput-buttons.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/textinput-buttons.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/textinput-buttons.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/trash-button.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/trash-button.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/trash-button.png differ
diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/tree-btn.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/tree-btn.png
new file mode 100644
Binary files /dev/null and b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/tree-btn.png differ
diff --git a/src/ui/gwt/www/editor/index.html b/src/ui/gwt/www/editor/index.html
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/www/editor/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
+<!-- above set at the top of the file will set     -->
+<!-- the browser's rendering engine into           -->
+<!-- "Quirks Mode". Replacing this declaration     -->
+<!-- with a "Standards Mode" doctype is supported, -->
+<!-- but may lead to some differences in layout.   -->
+
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <!--                                           -->
+    <!-- Any title is fine                         -->
+    <!--                                           -->
+    <title>Editor</title>
+    
+    <!--                                           -->
+    <!-- This script loads your compiled module.   -->
+    <!-- If you add any GWT meta tags, they must   -->
+    <!-- be added before this line.                -->
+    <!--                                           -->
+    <script type="text/javascript" language="javascript" src="org.grammaticalframework.ui.gwt.EditorApp/org.grammaticalframework.ui.gwt.EditorApp.nocache.js"></script>
+  </head>
+
+  <!--                                           -->
+  <!-- The body can have arbitrary html, or      -->
+  <!-- you can leave the body empty if you want  -->
+  <!-- to create a completely dynamic UI.        -->
+  <!--                                           -->
+  <body>
+
+    <!-- OPTIONAL: include this if you want history support -->
+    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+
+  </body>
+</html>
diff --git a/src/ui/gwt/www/fridge/index.html b/src/ui/gwt/www/fridge/index.html
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/www/fridge/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
+<!-- above set at the top of the file will set     -->
+<!-- the browser's rendering engine into           -->
+<!-- "Quirks Mode". Replacing this declaration     -->
+<!-- with a "Standards Mode" doctype is supported, -->
+<!-- but may lead to some differences in layout.   -->
+
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <!--                                           -->
+    <!-- Any title is fine                         -->
+    <!--                                           -->
+    <title>Fridge</title>
+    
+    <!--                                           -->
+    <!-- This script loads your compiled module.   -->
+    <!-- If you add any GWT meta tags, they must   -->
+    <!-- be added before this line.                -->
+    <!--                                           -->
+    <script type="text/javascript" language="javascript" src="org.grammaticalframework.ui.gwt.FridgeApp/org.grammaticalframework.ui.gwt.FridgeApp.nocache.js"></script>
+  </head>
+
+  <!--                                           -->
+  <!-- The body can have arbitrary html, or      -->
+  <!-- you can leave the body empty if you want  -->
+  <!-- to create a completely dynamic UI.        -->
+  <!--                                           -->
+  <body>
+
+    <!-- OPTIONAL: include this if you want history support -->
+    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+
+  </body>
+</html>
diff --git a/src/ui/gwt/www/morpho/index.html b/src/ui/gwt/www/morpho/index.html
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/www/morpho/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
+<!-- above set at the top of the file will set     -->
+<!-- the browser's rendering engine into           -->
+<!-- "Quirks Mode". Replacing this declaration     -->
+<!-- with a "Standards Mode" doctype is supported, -->
+<!-- but may lead to some differences in layout.   -->
+
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <!--                                           -->
+    <!-- Any title is fine                         -->
+    <!--                                           -->
+    <title>Morpho</title>
+    
+    <!--                                           -->
+    <!-- This script loads your compiled module.   -->
+    <!-- If you add any GWT meta tags, they must   -->
+    <!-- be added before this line.                -->
+    <!--                                           -->
+    <script type="text/javascript" language="javascript" src="org.grammaticalframework.ui.gwt.MorphoApp/org.grammaticalframework.ui.gwt.MorphoApp.nocache.js"></script>
+  </head>
+
+  <!--                                           -->
+  <!-- The body can have arbitrary html, or      -->
+  <!-- you can leave the body empty if you want  -->
+  <!-- to create a completely dynamic UI.        -->
+  <!--                                           -->
+  <body>
+
+    <!-- OPTIONAL: include this if you want history support -->
+    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+
+  </body>
+</html>
diff --git a/src/ui/gwt/www/morpho/morpho.fcgi b/src/ui/gwt/www/morpho/morpho.fcgi
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/www/morpho/morpho.fcgi
@@ -0,0 +1,1 @@
+ 
diff --git a/src/ui/gwt/www/translate/index.html b/src/ui/gwt/www/translate/index.html
new file mode 100644
--- /dev/null
+++ b/src/ui/gwt/www/translate/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
+<!-- above set at the top of the file will set     -->
+<!-- the browser's rendering engine into           -->
+<!-- "Quirks Mode". Replacing this declaration     -->
+<!-- with a "Standards Mode" doctype is supported, -->
+<!-- but may lead to some differences in layout.   -->
+
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <!--                                           -->
+    <!-- Any title is fine                         -->
+    <!--                                           -->
+    <title>Translate</title>
+    
+    <!--                                           -->
+    <!-- This script loads your compiled module.   -->
+    <!-- If you add any GWT meta tags, they must   -->
+    <!-- be added before this line.                -->
+    <!--                                           -->
+    <script type="text/javascript" language="javascript" src="org.grammaticalframework.ui.gwt.TranslateApp/org.grammaticalframework.ui.gwt.TranslateApp.nocache.js"></script>
+  </head>
+
+  <!--                                           -->
+  <!-- The body can have arbitrary html, or      -->
+  <!-- you can leave the body empty if you want  -->
+  <!-- to create a completely dynamic UI.        -->
+  <!--                                           -->
+  <body>
+
+    <!-- OPTIONAL: include this if you want history support -->
+    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+
+  </body>
+</html>
diff --git a/testsuite/compiler/check/abstract-operations/Nat.gf b/testsuite/compiler/check/abstract-operations/Nat.gf
new file mode 100644
--- /dev/null
+++ b/testsuite/compiler/check/abstract-operations/Nat.gf
@@ -0,0 +1,13 @@
+abstract Nat = {
+
+cat Nat ;
+data zero : Nat ;
+     succ : Nat -> Nat ;
+     
+oper plus : Nat -> Nat -> Nat ;
+def  plus zero     y = y ;
+     plus (succ x) y = succ (plus x y) ;
+
+oper twice : Nat -> Nat = \x -> plus x x ;
+
+}
diff --git a/testsuite/compiler/check/abstract-operations/abstract-operations.gfs b/testsuite/compiler/check/abstract-operations/abstract-operations.gfs
new file mode 100644
--- /dev/null
+++ b/testsuite/compiler/check/abstract-operations/abstract-operations.gfs
@@ -0,0 +1,5 @@
+-- here we test that the abstract operations are not used for proof search
+
+i testsuite\compiler\check\abstract-operations\Nat.gf
+gt -cat=Nat -number=10 -depth=10
+pt -compute (twice (succ zero))
diff --git a/testsuite/compiler/check/abstract-operations/abstract-operations.gfs.gold b/testsuite/compiler/check/abstract-operations/abstract-operations.gfs.gold
new file mode 100644
--- /dev/null
+++ b/testsuite/compiler/check/abstract-operations/abstract-operations.gfs.gold
@@ -0,0 +1,13 @@
+zero
+succ zero
+succ (succ zero)
+succ (succ (succ zero))
+succ (succ (succ (succ zero)))
+succ (succ (succ (succ (succ zero))))
+succ (succ (succ (succ (succ (succ zero)))))
+succ (succ (succ (succ (succ (succ (succ zero))))))
+succ (succ (succ (succ (succ (succ (succ (succ zero)))))))
+succ (succ (succ (succ (succ (succ (succ (succ (succ zero))))))))
+
+succ (succ zero)
+
diff --git a/testsuite/compiler/check/cyclic/abs-types/test1.gfs.gold b/testsuite/compiler/check/cyclic/abs-types/test1.gfs.gold
--- a/testsuite/compiler/check/cyclic/abs-types/test1.gfs.gold
+++ b/testsuite/compiler/check/cyclic/abs-types/test1.gfs.gold
@@ -1,4 +1,4 @@
-
-
-checking module Test1Abs
-   circular definitions: A B
+
+
+checking module Test1Abs
+   circular definitions: A B
diff --git a/testsuite/compiler/check/cyclic/abs-types/test2.gfs.gold b/testsuite/compiler/check/cyclic/abs-types/test2.gfs.gold
--- a/testsuite/compiler/check/cyclic/abs-types/test2.gfs.gold
+++ b/testsuite/compiler/check/cyclic/abs-types/test2.gfs.gold
@@ -1,4 +1,4 @@
-
-
-checking module Test2Abs
-   circular definitions: f g
+
+
+checking module Test2Abs
+   circular definitions: f g
diff --git a/testsuite/compiler/check/cyclic/opers/test.gfs.gold b/testsuite/compiler/check/cyclic/opers/test.gfs.gold
--- a/testsuite/compiler/check/cyclic/opers/test.gfs.gold
+++ b/testsuite/compiler/check/cyclic/opers/test.gfs.gold
@@ -1,8 +1,8 @@
-
-
-checking module TestOpers
-   circular definitions: A B
-
-
-checking module TestOperTypes
-   circular definitions: A T
+
+
+checking module TestOpers
+   circular definitions: A B
+
+
+checking module TestOperTypes
+   circular definitions: A T
diff --git a/testsuite/compiler/check/cyclic/params/test.gfs.gold b/testsuite/compiler/check/cyclic/params/test.gfs.gold
--- a/testsuite/compiler/check/cyclic/params/test.gfs.gold
+++ b/testsuite/compiler/check/cyclic/params/test.gfs.gold
@@ -1,4 +1,4 @@
-
-
-checking module TestParams
-   circular definitions: A B
+
+
+checking module TestParams
+   circular definitions: A B
diff --git a/testsuite/compiler/check/lincat-types/test.gfs.gold b/testsuite/compiler/check/lincat-types/test.gfs.gold
--- a/testsuite/compiler/check/lincat-types/test.gfs.gold
+++ b/testsuite/compiler/check/lincat-types/test.gfs.gold
@@ -1,7 +1,7 @@
-
-
-checking module TestCnc
-   Happened in linearization type of S in TestCnc.gf, line 3:
-       type of PTrue
-      expected: Type
-      inferred: PBool
+
+
+checking module TestCnc
+   Happened in linearization type of S in TestCnc.gf, line 3:
+       type of PTrue
+      expected: Type
+      inferred: PBool
diff --git a/testsuite/compiler/check/lins/lins.gfs.gold b/testsuite/compiler/check/lins/lins.gfs.gold
--- a/testsuite/compiler/check/lins/lins.gfs.gold
+++ b/testsuite/compiler/check/lins/lins.gfs.gold
@@ -1,37 +1,39 @@
-checking module linsCnc
-   Warning: no linearization type for C, inserting default {s : Str}
-   Warning: no linearization of test
-abstract lins {
-  cat C Nat
-  cat Float
-  cat Int
-  cat Nat
-  cat String
-  fun test : C zero
-  fun zero : Nat
-}
-concrete linsCnc {
-  productions
-    C0 -> F0[CVar]
-    C1 -> F1[CVar]
-    C1 -> F2[]
-  functions
-    F0 := (S0) [__gfV]
-    F1 := () [__gfV]
-    F2 := () [zero]
-  sequences
-    S0 := <0,0>
-  categories
-    C := range  [C0 .. C0]
-         labels ["s"]
-    Float := range  [CFloat .. CFloat]
-             labels ["s"]
-    Int := range  [CInt .. CInt]
-           labels ["s"]
-    Nat := range  [C1 .. C1]
-           labels []
-    String := range  [CString .. CString]
-              labels ["s"]
-    __gfVar := range  [CVar .. CVar]
-               labels ["s"]
-}
+checking module linsCnc
+   Warning: no linearization type for C, inserting default {s : Str}
+   Warning: no linearization of test
+abstract lins {
+  cat C Nat ;
+  cat Float ;
+  cat Int ;
+  cat Nat ;
+  cat String ;
+  fun test : C zero ;
+  fun zero : Nat ;
+}
+concrete linsCnc {
+  productions
+    C1 -> F2[]
+  lindefs
+    C0 -> F0
+    C1 -> F1
+  lin
+    F0 := (S0) [lindef C]
+    F1 := () [lindef Nat]
+    F2 := () [zero]
+  sequences
+    S0 := {0,0}
+  categories
+    C := range  [C0 .. C0]
+         labels ["s"]
+    Float := range  [CFloat .. CFloat]
+             labels ["s"]
+    Int := range  [CInt .. CInt]
+           labels ["s"]
+    Nat := range  [C1 .. C1]
+           labels []
+    String := range  [CString .. CString]
+              labels ["s"]
+    __gfVar := range  [CVar .. CVar]
+               labels [""]
+  printnames
+}
diff --git a/testsuite/compiler/check/oper-definition/test.gfs.gold b/testsuite/compiler/check/oper-definition/test.gfs.gold
--- a/testsuite/compiler/check/oper-definition/test.gfs.gold
+++ b/testsuite/compiler/check/oper-definition/test.gfs.gold
@@ -1,5 +1,5 @@
-
-
-checking module Res
-   Happened in operation my_oper in Res.gf, line 3:
-      No definition given to the operation
+
+
+checking module Res
+   Happened in operation my_oper in Res.gf, line 3:
+      No definition given to the operation
diff --git a/testsuite/compiler/renamer/funpatt.gfs.gold b/testsuite/compiler/renamer/funpatt.gfs.gold
--- a/testsuite/compiler/renamer/funpatt.gfs.gold
+++ b/testsuite/compiler/renamer/funpatt.gfs.gold
@@ -1,5 +1,5 @@
-
-
-renaming module funpatt
-   renaming definition of d in funpatt.gf, line 12
-      data constructor expected but funpatt.D1 is found instead
+
+
+renaming module funpatt
+   renaming of d in funpatt.gf, line 11
+      data constructor expected but funpatt.D1 is found instead
diff --git a/testsuite/compiler/renamer/varpatt.gfs.gold b/testsuite/compiler/renamer/varpatt.gfs.gold
--- a/testsuite/compiler/renamer/varpatt.gfs.gold
+++ b/testsuite/compiler/renamer/varpatt.gfs.gold
@@ -1,4 +1,4 @@
-1
-
-1
-
+1
+
+1
+
diff --git a/testsuite/compiler/typecheck/abstract/LetInTypesAbs.gfs.gold b/testsuite/compiler/typecheck/abstract/LetInTypesAbs.gfs.gold
--- a/testsuite/compiler/typecheck/abstract/LetInTypesAbs.gfs.gold
+++ b/testsuite/compiler/typecheck/abstract/LetInTypesAbs.gfs.gold
@@ -1,1 +1,1 @@
-fun f : (Int -> Int) -> Int -> Int
+fun f : (Int -> Int) -> Int -> Int
diff --git a/testsuite/compiler/typecheck/abstract/test_A.gfs.gold b/testsuite/compiler/typecheck/abstract/test_A.gfs.gold
--- a/testsuite/compiler/typecheck/abstract/test_A.gfs.gold
+++ b/testsuite/compiler/typecheck/abstract/test_A.gfs.gold
@@ -1,5 +1,5 @@
-
-
-checking module A
-   Prod expected for function A instead of Type
-   in category B in A.gf, line 4
+
+
+checking module A
+   Prod expected for function A instead of Type
+   in category B in A.gf, line 4
diff --git a/testsuite/compiler/typecheck/abstract/test_B.gfs.gold b/testsuite/compiler/typecheck/abstract/test_B.gfs.gold
--- a/testsuite/compiler/typecheck/abstract/test_B.gfs.gold
+++ b/testsuite/compiler/typecheck/abstract/test_B.gfs.gold
@@ -1,5 +1,5 @@
-
-
-checking module B
-   Prod expected for function S instead of Type
-   in type of function f in B.gf, line 5
+
+
+checking module B
+   Prod expected for function S instead of Type
+   in type of function f in B.gf, line 5
diff --git a/testsuite/compiler/typecheck/abstract/test_C.gfs.gold b/testsuite/compiler/typecheck/abstract/test_C.gfs.gold
--- a/testsuite/compiler/typecheck/abstract/test_C.gfs.gold
+++ b/testsuite/compiler/typecheck/abstract/test_C.gfs.gold
@@ -1,5 +1,5 @@
-
-
-checking module C
-   {Int <> S}
-   in definition of function f in C.gf, line 6
+
+
+checking module C
+   {Int <> S}
+   in definition of function f in C.gf, line 6
diff --git a/testsuite/compiler/typecheck/concrete/test_A.gfs.gold b/testsuite/compiler/typecheck/concrete/test_A.gfs.gold
--- a/testsuite/compiler/typecheck/concrete/test_A.gfs.gold
+++ b/testsuite/compiler/typecheck/concrete/test_A.gfs.gold
@@ -1,5 +1,5 @@
-
-
-checking module A
-   Happened in operation silly in A.gf, line 5:
-      A function type is expected for a_Det instead of type Str
+
+
+checking module A
+   Happened in operation silly in A.gf, line 5:
+      A function type is expected for a_Det instead of type Str
diff --git a/testsuite/compiler/update/ArrityCheck.gfs.gold b/testsuite/compiler/update/ArrityCheck.gfs.gold
--- a/testsuite/compiler/update/ArrityCheck.gfs.gold
+++ b/testsuite/compiler/update/ArrityCheck.gfs.gold
@@ -1,8 +1,8 @@
-
-
-C:\gf_3\testsuite\compiler\update\ArrityCheck.gf:6:1: cannot unify the informations
-    fun f : Int -> Int -> Int ;
-    def f 0 = \x -> x ;
-and
-    def f 1 1 = 0 ;
-in module ArrityCheck
+
+
+C:\gf\testsuite\compiler\update\ArrityCheck.gf:6:1: cannot unify the informations
+    fun f : Int -> Int -> Int ;
+    def f 0 = \x -> x ;
+and
+    def f 1 1 = 0 ;
+in module ArrityCheck
diff --git a/testsuite/libraries/exx-resource.gfs b/testsuite/libraries/exx-resource.gfs
--- a/testsuite/libraries/exx-resource.gfs
+++ b/testsuite/libraries/exx-resource.gfs
@@ -2,7 +2,6 @@
 i alltenses/LangEng.gfo
 i alltenses/LangSwe.gfo
 i alltenses/LangBul.gfo
-
 -- Adjective
 
 l -treebank PositA warm_A
diff --git a/testsuite/runtime/eval/eval.gfs.gold b/testsuite/runtime/eval/eval.gfs.gold
--- a/testsuite/runtime/eval/eval.gfs.gold
+++ b/testsuite/runtime/eval/eval.gfs.gold
@@ -1,64 +1,64 @@
-\x -> x 1
-
-?1 1
-
-?3 1
-
-f 1 2
-
-\x -> x
-
-?1
-
-f
-
-f 1 2
-
-2
-
-g 0
-
-\x -> g x
-
-g ?1
-
-5
-
-3
-
-g2
-
-f 32
-
-g2 23
-
-3.14
-
-succ zero
-
-?1
-
-zeroF
-
-dec (succF zeroF)
-
-dec zeroF
-
-\x -> dec x
-
-dec ?1
-
-g3 ?3 0
-
-g (g2 ?1 0)
-
-succ (succ zero)
-
-zero
-
-dec2 0 err
-
-succ err
-
-\x -> dec (dec x)
-
+\v0 -> v0 1
+
+?1 1
+
+?3 1
+
+f 1 2
+
+\v0 -> v0
+
+?1
+
+f
+
+f 1 2
+
+2
+
+g 0
+
+\v0 -> g v0
+
+g ?1
+
+5
+
+3
+
+g2
+
+f 32
+
+g2 23
+
+3.14
+
+succ zero
+
+?1
+
+zeroF
+
+dec (succF zeroF)
+
+dec zeroF
+
+\v0 -> dec v0
+
+dec ?1
+
+g3 ?3 0
+
+g (g2 ?1 0)
+
+succ (succ zero)
+
+zero
+
+dec2 0 err
+
+succ err
+
+\v0 -> dec (dec v0)
+
diff --git a/testsuite/runtime/eval/lazy.gfs.gold b/testsuite/runtime/eval/lazy.gfs.gold
--- a/testsuite/runtime/eval/lazy.gfs.gold
+++ b/testsuite/runtime/eval/lazy.gfs.gold
@@ -1,2 +1,2 @@
-succ (succ (succ zero))
-
+succ (succ (succ zero))
+
diff --git a/testsuite/runtime/linearize/brackets.gfs b/testsuite/runtime/linearize/brackets.gfs
new file mode 100644
--- /dev/null
+++ b/testsuite/runtime/linearize/brackets.gfs
@@ -0,0 +1,12 @@
+i -src testsuite/runtime/linearize/TestCnc.gf
+
+l -bracket Even ?
+l -bracket Exist (\x -> <Even : E -> S> x)
+l -bracket f  a
+l -bracket fa a
+l -bracket fb a
+l -bracket IsString "abcd"
+l -bracket IsInteger 100
+l -bracket IsFloat   12.4
+l -bracket <IsString "xyz" : S>
+l -bracket <\x -> x : S -> S>
diff --git a/testsuite/runtime/linearize/brackets.gfs.gold b/testsuite/runtime/linearize/brackets.gfs.gold
new file mode 100644
--- /dev/null
+++ b/testsuite/runtime/linearize/brackets.gfs.gold
@@ -0,0 +1,28 @@
+(S:2 (E:1 (_:0 ?1)) is even)
+
+
+(S:3 exists x such that (S:2 (E:1 (_:0 x)) is even))
+
+
+(S:1 (E:0 a))
+
+
+(S:1 (E:0 aa) a)
+
+
+(S:1 (E:0 a) b)
+
+
+(S:1 (String:0 abcd) is string)
+
+
+(S:1 (Int:0 100) is integer)
+
+
+(S:1 (Float:0 12.4) is float)
+
+
+(S:1 (String:0 xyz) is string)
+
+
+cannot linearize
diff --git a/testsuite/runtime/linearize/linearize.gfs.gold b/testsuite/runtime/linearize/linearize.gfs.gold
--- a/testsuite/runtime/linearize/linearize.gfs.gold
+++ b/testsuite/runtime/linearize/linearize.gfs.gold
@@ -1,30 +1,30 @@
-?1 is even
-
-
-exists x such that x is even
-
-
-a
-
-
-aa a
-
-
-a b
-
-
-abcd is string
-
-
-100 is integer
-
-
-12.4 is float
-
-
-xyz is string
-
-
-
-
-
+?1 is even
+
+
+exists x such that x is even
+
+
+a
+
+
+aa a
+
+
+a b
+
+
+abcd is string
+
+
+100 is integer
+
+
+12.4 is float
+
+
+xyz is string
+
+
+
+
+
diff --git a/testsuite/runtime/paraphrase/lambda.gfs.gold b/testsuite/runtime/paraphrase/lambda.gfs.gold
--- a/testsuite/runtime/paraphrase/lambda.gfs.gold
+++ b/testsuite/runtime/paraphrase/lambda.gfs.gold
@@ -1,12 +1,12 @@
-\x -> x
-
-1
-
-\x -> x
-
-\x -> 2
-
-1
-
-2
-
+\v0 -> v0
+
+1
+
+\v0 -> v0
+
+\v0 -> 2
+
+1
+
+2
+
diff --git a/testsuite/runtime/parser/Literals.gf b/testsuite/runtime/parser/Literals.gf
--- a/testsuite/runtime/parser/Literals.gf
+++ b/testsuite/runtime/parser/Literals.gf
@@ -4,5 +4,7 @@
   fun IsString  : String -> S ;
       IsInteger : Int    -> S ;
       IsFloat   : Float  -> S ;
+      
+      IsEq : Int -> S ;
 
 }
diff --git a/testsuite/runtime/parser/LiteralsCnc.gf b/testsuite/runtime/parser/LiteralsCnc.gf
--- a/testsuite/runtime/parser/LiteralsCnc.gf
+++ b/testsuite/runtime/parser/LiteralsCnc.gf
@@ -5,5 +5,6 @@
 lin IsString  x = x.s ++ "is string" ;
 lin IsInteger x = x.s ++ "is integer" ;
 lin IsFloat   x = x.s ++ "is float" ;
+lin IsEq      x = x.s ++ "=" ++ x.s ;
 
 }
diff --git a/testsuite/runtime/parser/Parse.hs b/testsuite/runtime/parser/Parse.hs
--- a/testsuite/runtime/parser/Parse.hs
+++ b/testsuite/runtime/parser/Parse.hs
@@ -2,6 +2,7 @@
 import Data.Maybe
 import System.IO
 import System.CPUTime
+import System.Random
 import Control.Monad
 import Data.Set as Set (fromList,toList)
 
@@ -9,14 +10,15 @@
 
 main = do
   pgf <- readPGF "Lang.pgf"
-  trees0 <- generateRandom pgf start_cat
+  g <- newStdGen
+  let trees0 = generateRandomDepth g pgf start_cat (Just 5)
   let trees = Set.toList (Set.fromList (take 5000 trees0))
   hPutStrLn stderr ("Number of trees: "++show (length trees))
   mapM_ (\l -> doTestLang pgf l trees) (languages pgf)
 
 doTestLang pgf l ts = do
   hPutStrLn stderr (show l)
-  ss <- foldM (doTest pgf l (fromJust (readType "Phr"))) [] ts
+  ss <- foldM (doTest pgf l start_cat) [] ts
   mapM_ (hPutStrLn stderr . show) [(fromIntegral s / fromIntegral n)/1000000000 | (s,n) <- ss]
   putStrLn "Done."
   
@@ -34,7 +36,7 @@
 
 doParse st t1 ts []       = return (Just (st,reverse ts))
 doParse st t1 ts (tk:tks) = do
-  case nextState st tk of
+  case nextState st (simpleParseInput tk) of
     Left _   -> return Nothing
     Right st -> do t2 <- getCPUTime
                    doParse st t1 ((t2-t1):ts) tks
diff --git a/testsuite/runtime/typecheck/Hard.gf b/testsuite/runtime/typecheck/Hard.gf
new file mode 100644
--- /dev/null
+++ b/testsuite/runtime/typecheck/Hard.gf
@@ -0,0 +1,14 @@
+abstract Hard = {
+
+cat I ;
+    F (I -> I) ;
+    A (I -> I) I ;
+    S ;
+
+fun
+  app : (f : I -> I) -> A f (f i) ;
+  ex  : F (\x -> x) ;
+  i   : I ;
+  s   : (f : I -> I) -> A f i -> F f -> S ;
+
+}
diff --git a/testsuite/runtime/typecheck/hard-unification.gfs b/testsuite/runtime/typecheck/hard-unification.gfs
new file mode 100644
--- /dev/null
+++ b/testsuite/runtime/typecheck/hard-unification.gfs
@@ -0,0 +1,3 @@
+i testsuite/runtime/typecheck/Hard.gf
+ai s ? (app ?) ex
+ai s ? (app ?) ?
diff --git a/testsuite/runtime/typecheck/hard-unification.gfs.gold b/testsuite/runtime/typecheck/hard-unification.gfs.gold
new file mode 100644
--- /dev/null
+++ b/testsuite/runtime/typecheck/hard-unification.gfs.gold
@@ -0,0 +1,5 @@
+Expression: s (\v0 -> v0) (app (\v0 -> v0)) ex
+Type:       S
+
+Meta variable(s) ?2 should be resolved
+in the expression: s ?2 (app ?2) ?4
diff --git a/testsuite/runtime/typecheck/implicit-arguments.gfs.gold b/testsuite/runtime/typecheck/implicit-arguments.gfs.gold
--- a/testsuite/runtime/typecheck/implicit-arguments.gfs.gold
+++ b/testsuite/runtime/typecheck/implicit-arguments.gfs.gold
@@ -1,22 +1,22 @@
-Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
-Type:       Path n1 n3
-
-Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
-Type:       Path n1 n3
-
-Expression: <?2 : Label {?1}>
-Type:       Label {?1}
-
-Expression: <?2 : Label {n1}>
-Type:       Label {n1}
-
-{n1} is implicit argument but not implicit argument is expected here
-Expression: <\{_1}, x -> x : ({m} : Node) -> (n : Node) -> Node>
-Type:       ({m} : Node) -> (n : Node) -> Node
-
-Expression: <\{_1} -> n1 : ({m} : Node) -> Node>
-Type:       ({m} : Node) -> Node
-
-Expression: <\{_1} -> ?1 : ({m} : Node) -> Node>
-Type:       ({m} : Node) -> Node
-
+Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
+Type:       Path n1 n3
+
+Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
+Type:       Path n1 n3
+
+Expression: <?2 : Label {?1}>
+Type:       Label {?1}
+
+Expression: <?2 : Label {n1}>
+Type:       Label {n1}
+
+{n1} is implicit argument but not implicit argument is expected here
+Expression: <\{_1}, x -> x : ({m} : Node) -> (n : Node) -> Node>
+Type:       ({m} : Node) -> (n : Node) -> Node
+
+Expression: <\{_1} -> n1 : ({m} : Node) -> Node>
+Type:       ({m} : Node) -> Node
+
+Expression: <\{_1} -> ?1 : ({m} : Node) -> Node>
+Type:       ({m} : Node) -> Node
+
diff --git a/testsuite/runtime/typecheck/typecheck.gfs.gold b/testsuite/runtime/typecheck/typecheck.gfs.gold
--- a/testsuite/runtime/typecheck/typecheck.gfs.gold
+++ b/testsuite/runtime/typecheck/typecheck.gfs.gold
@@ -1,74 +1,74 @@
-Couldn't match expected type Nat
-       against inferred type String
-In the expression: "0"
-Category Int should have 0 argument(s), but has been given 1
-In the type: Int 0
-A function type is expected for the expression 1 instead of type Int
-Couldn't match expected type Int -> Int
-       against inferred type Int
-In the expression: 1
-unknown category of function identifier unknown_fun
-
-Category unknown_cat is not in scope
-Cannot infer the type of expression \x -> x
-A function type is expected for the expression \x -> x instead of type Int
-Expression: append (succ (succ zero)) (succ zero) (vector (succ (succ zero))) (vector (succ zero))
-Type:       Vector (succ (succ (succ zero)))
-
-Expression: <\m, n -> vector (plus m n) : (m : Nat) -> (n : Nat) -> Vector (plus m n)>
-Type:       (m : Nat) -> (n : Nat) -> Vector (plus m n)
-
-Expression: mkMorph (\x -> succ zero)
-Type:       Morph (\x -> succ zero)
-
-Expression: idMorph (mkMorph (\x -> x))
-Type:       Nat
-
-Couldn't match expected type Morph (\x -> x)
-       against inferred type Morph (\x -> succ zero)
-In the expression: mkMorph (\x -> succ zero)
-Expression: <append zero (succ zero) : Vector zero -> Vector (succ zero) -> Vector (succ zero)>
-Type:       Vector zero -> Vector (succ zero) -> Vector (succ zero)
-
-Expression: <\n, v1, n1, v2 -> append n n1 v1 v2 : (n : Nat) -> Vector n -> (m : Nat) -> Vector m -> Vector (plus n m)>
-Type:       (n : Nat) -> Vector n -> (m : Nat) -> Vector m -> Vector (plus n m)
-
-Category EQ is not in scope
-Expression: <\v1, v2 -> cmpVector ?7 v1 v2 : Vector ?7 -> Vector ?7 -> Int> (vector ?7)
-Type:       Vector ?7 -> Int
-
-Couldn't match expected type (m : Nat) -> Vector ?1
-       against inferred type (n : Nat) -> Vector n
-In the expression: vector
-Expression: f1 (\v -> v) vector
-Type:       Int
-
-Expression: f1 (\v -> succ v) (\x -> vector (succ x))
-Type:       Int
-
-Couldn't match expected type Vector x
-       against inferred type Vector (succ x)
-In the expression: vector (succ x)
-Couldn't match expected type Vector n
-       against inferred type Vector (succ n)
-In the expression: vector (succ n)
-Expression: h ?2 (u0 ?2)
-Type:       Int
-
-Couldn't match expected type U ?2 ?2
-       against inferred type U ?2 (succ ?2)
-In the expression: u1 ?2
-Meta variable(s) ?11 should be resolved
-in the expression: cmpVector (succ (succ zero)) (vector (succ (succ zero))) (append ?11 (succ zero) (vector ?11) (vector (succ zero)))
-Expression: diff (succ (succ (succ zero))) (succ (succ zero)) (vector (succ (succ (succ (succ (succ zero)))))) (vector (succ (succ (succ zero))))
-Type:       Vector (succ (succ zero))
-
-Couldn't match expected type Vector (plus (succ (succ (succ zero))) (succ (succ zero)))
-       against inferred type Vector (succ (succ (succ (succ zero))))
-In the expression: vector (succ (succ (succ (succ zero))))
-Couldn't match expected type Vector ?1
-       against inferred type Vector zero
-In the expression: vector zero
-Couldn't match expected type Vector zero
-       against inferred type Vector n
-In the expression: x
+Couldn't match expected type Nat
+       against inferred type String
+In the expression: "0"
+Category Int should have 0 argument(s), but has been given 1
+In the type: Int 0
+A function type is expected for the expression 1 instead of type Int
+Couldn't match expected type Int -> Int
+       against inferred type Int
+In the expression: 1
+unknown category of function identifier unknown_fun
+
+Category unknown_cat is not in scope
+Cannot infer the type of expression \x -> x
+A function type is expected for the expression \x -> x instead of type Int
+Expression: append (succ (succ zero)) (succ zero) (vector (succ (succ zero))) (vector (succ zero))
+Type:       Vector (succ (succ (succ zero)))
+
+Expression: <\m, n -> vector (plus m n) : (m : Nat) -> (n : Nat) -> Vector (plus m n)>
+Type:       (m : Nat) -> (n : Nat) -> Vector (plus m n)
+
+Expression: mkMorph (\x -> succ zero)
+Type:       Morph (\v0 -> succ zero)
+
+Expression: idMorph (mkMorph (\x -> x))
+Type:       Nat
+
+Couldn't match expected type Morph (\v0 -> v0)
+       against inferred type Morph (\v0 -> succ zero)
+In the expression: mkMorph (\x -> succ zero)
+Expression: <append zero (succ zero) : Vector zero -> Vector (succ zero) -> Vector (succ zero)>
+Type:       Vector zero -> Vector (succ zero) -> Vector (succ zero)
+
+Expression: <\n, v1, n1, v2 -> append n n1 v1 v2 : (n : Nat) -> Vector n -> (m : Nat) -> Vector m -> Vector (plus n m)>
+Type:       (n : Nat) -> Vector n -> (m : Nat) -> Vector m -> Vector (plus n m)
+
+Category EQ is not in scope
+Expression: <\v1, v2 -> cmpVector ?7 v1 v2 : Vector ?7 -> Vector ?7 -> Int> (vector ?7)
+Type:       Vector ?7 -> Int
+
+Couldn't match expected type (m : Nat) -> Vector ?1
+       against inferred type (n : Nat) -> Vector n
+In the expression: vector
+Expression: f1 (\v -> v) vector
+Type:       Int
+
+Expression: f1 (\v -> succ v) (\x -> vector (succ x))
+Type:       Int
+
+Couldn't match expected type Vector x
+       against inferred type Vector (succ x)
+In the expression: vector (succ x)
+Couldn't match expected type Vector n
+       against inferred type Vector (succ n)
+In the expression: vector (succ n)
+Expression: h ?2 (u0 ?2)
+Type:       Int
+
+Couldn't match expected type U ?2 ?2
+       against inferred type U ?2 (succ ?2)
+In the expression: u1 ?2
+Meta variable(s) ?11 should be resolved
+in the expression: cmpVector (succ (succ zero)) (vector (succ (succ zero))) (append ?11 (succ zero) (vector ?11) (vector (succ zero)))
+Expression: diff (succ (succ (succ zero))) (succ (succ zero)) (vector (succ (succ (succ (succ (succ zero)))))) (vector (succ (succ (succ zero))))
+Type:       Vector (succ (succ zero))
+
+Couldn't match expected type Vector (plus (succ (succ (succ zero))) (succ (succ zero)))
+       against inferred type Vector (succ (succ (succ (succ zero))))
+In the expression: vector (succ (succ (succ (succ zero))))
+Expression: idMorph (mkMorph2 (\x -> x) (vector zero))
+Type:       Nat
+
+Couldn't match expected type Vector zero
+       against inferred type Vector n
+In the expression: x
